@univerjs/ui 0.2.7 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/lib/cjs/index.js +2 -2
  2. package/lib/es/index.js +119 -10
  3. package/lib/types/commands/operations/editor/set-editor-resize.operation.d.ts +0 -1
  4. package/lib/types/commands/operations/toggle-shortcut-panel.operation.d.ts +0 -1
  5. package/lib/types/common/component-manager.d.ts +0 -1
  6. package/lib/types/common/lifecycle.d.ts +0 -1
  7. package/lib/types/common/menu-hidden-observable.d.ts +0 -1
  8. package/lib/types/common/menu-merge-configs.d.ts +0 -1
  9. package/lib/types/components/custom-label/CustomLabel.d.ts +0 -1
  10. package/lib/types/components/editor/TextEditor.d.ts +0 -1
  11. package/lib/types/components/font-family/FontFamily.d.ts +0 -1
  12. package/lib/types/components/font-family/FontFamilyItem.d.ts +0 -1
  13. package/lib/types/components/font-family/interface.d.ts +0 -1
  14. package/lib/types/components/font-size/FontSize.d.ts +0 -1
  15. package/lib/types/components/font-size/interface.d.ts +0 -1
  16. package/lib/types/components/hooks/layout.d.ts +0 -1
  17. package/lib/types/components/hooks/locale.d.ts +0 -1
  18. package/lib/types/components/hooks/observable.d.ts +0 -1
  19. package/lib/types/components/hooks/virtual-list.d.ts +35 -0
  20. package/lib/types/components/menu/common/hook.d.ts +0 -1
  21. package/lib/types/components/menu/desktop/Menu.d.ts +0 -1
  22. package/lib/types/components/menu/mobile/MobileMenu.d.ts +0 -1
  23. package/lib/types/components/menu/mobile/MobileMenu.stories.d.ts +0 -1
  24. package/lib/types/components/notification/Notification.d.ts +0 -1
  25. package/lib/types/components/notification/Notification.stories.d.ts +0 -1
  26. package/lib/types/components/progress-bar/ProgressBar.d.ts +0 -1
  27. package/lib/types/components/range-selector/RangeSelector.d.ts +0 -1
  28. package/lib/types/controllers/error/error.controller.d.ts +0 -1
  29. package/lib/types/controllers/menus/menus.d.ts +0 -1
  30. package/lib/types/controllers/shared-shortcut.controller.d.ts +0 -1
  31. package/lib/types/controllers/shortcut-display/menu.d.ts +0 -1
  32. package/lib/types/controllers/shortcut-display/shortcut-panel.controller.d.ts +0 -1
  33. package/lib/types/controllers/ui/ui-desktop.controller.d.ts +0 -1
  34. package/lib/types/controllers/ui/ui-mobile.controller.d.ts +0 -1
  35. package/lib/types/controllers/ui/ui.controller.d.ts +0 -1
  36. package/lib/types/index.d.ts +1 -0
  37. package/lib/types/locale/en-US.d.ts +0 -1
  38. package/lib/types/locale/ru-RU.d.ts +0 -1
  39. package/lib/types/locale/vi-VN.d.ts +0 -1
  40. package/lib/types/locale/zh-TW.d.ts +0 -1
  41. package/lib/types/mobile-ui-plugin.d.ts +0 -1
  42. package/lib/types/services/before-close/before-close.service.d.ts +0 -1
  43. package/lib/types/services/clipboard/clipboard-interface.service.d.ts +0 -1
  44. package/lib/types/services/clipboard/clipboard.command.d.ts +0 -1
  45. package/lib/types/services/confirm/confirm.service.d.ts +0 -1
  46. package/lib/types/services/confirm/desktop-confirm.service.d.ts +0 -1
  47. package/lib/types/services/contextmenu/contextmenu.service.d.ts +0 -1
  48. package/lib/types/services/dialog/desktop-dialog.service.d.ts +0 -1
  49. package/lib/types/services/dialog/dialog.service.d.ts +0 -1
  50. package/lib/types/services/dom/canvas-dom-layer.service.d.ts +0 -1
  51. package/lib/types/services/editor/editor.service.d.ts +0 -1
  52. package/lib/types/services/global-zone/desktop-global-zone.service.d.ts +0 -1
  53. package/lib/types/services/global-zone/global-zone.service.d.ts +0 -1
  54. package/lib/types/services/layout/layout.service.d.ts +0 -1
  55. package/lib/types/services/local-storage/local-storage.service.d.ts +0 -1
  56. package/lib/types/services/menu/menu.d.ts +0 -1
  57. package/lib/types/services/menu/menu.service.d.ts +1 -1
  58. package/lib/types/services/message/__testing__/mock-message.service.d.ts +0 -1
  59. package/lib/types/services/message/desktop-message.service.d.ts +0 -1
  60. package/lib/types/services/message/message.service.d.ts +0 -1
  61. package/lib/types/services/notification/desktop-notification.service.d.ts +0 -1
  62. package/lib/types/services/notification/notification.service.d.ts +0 -1
  63. package/lib/types/services/parts/parts.service.d.ts +0 -1
  64. package/lib/types/services/popup/canvas-popup.service.d.ts +2 -1
  65. package/lib/types/services/progress/progress.service.d.ts +0 -1
  66. package/lib/types/services/range-selector/range-selector.service.d.ts +0 -1
  67. package/lib/types/services/shortcut/shortcut-panel.service.d.ts +0 -1
  68. package/lib/types/services/shortcut/shortcut.service.d.ts +0 -1
  69. package/lib/types/services/sidebar/desktop-sidebar.service.d.ts +0 -1
  70. package/lib/types/services/sidebar/sidebar.service.d.ts +0 -1
  71. package/lib/types/services/zen-zone/desktop-zen-zone.service.d.ts +0 -1
  72. package/lib/types/services/zen-zone/zen-zone.service.d.ts +0 -1
  73. package/lib/types/ui-plugin.d.ts +0 -1
  74. package/lib/types/utils/cell.d.ts +0 -1
  75. package/lib/types/views/MobileApp.d.ts +0 -1
  76. package/lib/types/views/components/ComponentContainer.d.ts +0 -1
  77. package/lib/types/views/components/confirm-part/ConfirmPart.d.ts +0 -1
  78. package/lib/types/views/components/confirm-part/interface.d.ts +0 -1
  79. package/lib/types/views/components/context-menu/ContextMenu.d.ts +0 -1
  80. package/lib/types/views/components/context-menu/MobileContextMenu.d.ts +0 -1
  81. package/lib/types/views/components/dialog-part/DialogPart.d.ts +0 -1
  82. package/lib/types/views/components/dialog-part/interface.d.ts +0 -1
  83. package/lib/types/views/components/doc-bars/Button/ToolbarButton.d.ts +0 -1
  84. package/lib/types/views/components/doc-bars/Toolbar.d.ts +0 -1
  85. package/lib/types/views/components/doc-bars/ToolbarItem.d.ts +0 -1
  86. package/lib/types/views/components/doc-bars/hook.d.ts +0 -1
  87. package/lib/types/views/components/dom/FloatDom.d.ts +0 -1
  88. package/lib/types/views/components/global-zone/GlobalZone.d.ts +0 -1
  89. package/lib/types/views/components/popup/CanvasPopup.d.ts +0 -1
  90. package/lib/types/views/components/shortcut-panel/ShortcutPanel.d.ts +0 -1
  91. package/lib/types/views/components/sidebar/Sidebar.d.ts +0 -1
  92. package/lib/types/views/components/sidebar/interface.d.ts +0 -1
  93. package/lib/types/views/components/zen-zone/ZenZone.d.ts +0 -1
  94. package/lib/types/views/parts.d.ts +0 -1
  95. package/lib/types/views/workbench/Workbench.d.ts +0 -1
  96. package/lib/umd/index.js +2 -2
  97. package/package.json +14 -14
package/lib/cjs/index.js CHANGED
@@ -6,7 +6,7 @@
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$1=React,k$1=Symbol.for("react.element"),l$1=Symbol.for("react.fragment"),m$1=Object.prototype.hasOwnProperty,n$1=f$1.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p$1={key:!0,ref:!0,__self:!0,__source:!0};function q$1(c2,a,g2){var b2,d2={},e2=null,h2=null;g2!==void 0&&(e2=""+g2),a.key!==void 0&&(e2=""+a.key),a.ref!==void 0&&(h2=a.ref);for(b2 in a)m$1.call(a,b2)&&!p$1.hasOwnProperty(b2)&&(d2[b2]=a[b2]);if(c2&&c2.defaultProps)for(b2 in a=c2.defaultProps,a)d2[b2]===void 0&&(d2[b2]=a[b2]);return{$$typeof:k$1,type:c2,key:e2,ref:h2,props:d2,_owner:n$1.current}}__name(q$1,"q$1");reactJsxRuntime_production_min.Fragment=l$1;reactJsxRuntime_production_min.jsx=q$1;reactJsxRuntime_production_min.jsxs=q$1;jsxRuntime.exports=reactJsxRuntime_production_min;var jsxRuntimeExports=jsxRuntime.exports;function unwrap(o){return typeof o=="function"?o():o}__name(unwrap,"unwrap");function useObservable(observable,defaultValue,shouldHaveSyncValue,deps){if(typeof observable=="function"&&!deps)throw new Error("[useObservable]: expect deps when observable is a function! Otherwise it would cause an infinite loop.");const observableRef=React.useRef(null),initializedRef=React.useRef(!1),destObservable=React.useMemo(()=>observable,[...typeof deps<"u"?deps:[observable]]),[_,setRenderCounter]=React.useState(0),valueRef=React.useRef((()=>{let innerDefaultValue;return destObservable&&unwrap(destObservable).subscribe(value=>{initializedRef.current=!0,innerDefaultValue=value}).unsubscribe(),innerDefaultValue!=null?innerDefaultValue:defaultValue})());if(React.useEffect(()=>{let subscription=null;return destObservable&&(observableRef.current=unwrap(destObservable),subscription=observableRef.current.subscribe(value=>{valueRef.current=value,setRenderCounter(prev=>prev+1)})),()=>subscription==null?void 0:subscription.unsubscribe()},[destObservable]),shouldHaveSyncValue&&!initializedRef.current)throw new Error("[useObservable]: expect shouldHaveSyncValue but not getting a sync value!");return valueRef.current}__name(useObservable,"useObservable");function CustomLabel(props){const{title,icon,label,value,value$}=props,localeService=core.useDependency(core.LocaleService),componentManager=core.useDependency(ComponentManager),nodes=[];let index=0,realValue=value;value$&&(realValue=useObservable(value$,void 0,!0));let realIcon;rxjs.isObservable(icon)?realIcon=useObservable(icon,void 0,!0):realIcon=icon;let isValid=!1;if(realValue&&typeof realValue=="string"&&(isValid=new core.ColorKit(realValue).isValid),icon){const Icon=componentManager.get(realIcon!=null?realIcon:"");Icon&&nodes.push(jsxRuntimeExports.jsx(Icon,{extend:{colorChannel1:isValid?realValue:"rgb(var(--primary-color))"}},index++))}if(label){const isStringLabel=typeof label=="string",customProps=isStringLabel?{...props}:{...label==null?void 0:label.props,...props},labelName=isStringLabel?label:label==null?void 0:label.name,CustomComponent=componentManager.get(labelName);CustomComponent?nodes.push(jsxRuntimeExports.jsx(CustomComponent,{...customProps,value:realValue},index++)):nodes.push(jsxRuntimeExports.jsx("span",{children:localeService.t(labelName)},index++))}return title&&nodes.push(jsxRuntimeExports.jsx("span",{children:typeof title=="string"?localeService.t(title):title},index++)),jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:nodes})}__name(CustomLabel,"CustomLabel");const uiPluginSheetsFontFamily="univer-ui-plugin-sheets-font-family",uiPluginSheetsFontFamilyItem="univer-ui-plugin-sheets-font-family-item",styles$g={uiPluginSheetsFontFamily,uiPluginSheetsFontFamilyItem},FontFamily=__name(props=>{const{value}=props,localeService=core.useDependency(core.LocaleService),viewValue=React.useMemo(()=>{if(value==null)return"";let fontFamily=localeService.t(`fontFamily.${`${value!=null?value:""}`.replace(/\s/g,"")}`);return fontFamily.startsWith("fontFamily.")&&typeof value=="string"&&(fontFamily=value.split(",")[0]),fontFamily},[value]);return jsxRuntimeExports.jsx("div",{className:styles$g.uiPluginSheetsFontFamily,style:{fontFamily:value},children:viewValue})},"FontFamily"),FontFamilyItem=__name(props=>{var _a18;const{value}=props,localeService=core.useDependency(core.LocaleService);return jsxRuntimeExports.jsx("span",{className:styles$g.uiPluginSheetsFontFamilyItem,style:{fontFamily:value},children:localeService.t(`fontFamily.${((_a18=`${value}`)!=null?_a18:"").replace(/\s/g,"")}`)})},"FontFamilyItem"),FONT_FAMILY_LIST=[{value:"Arial"},{value:"Times New Roman"},{value:"Tahoma"},{value:"Verdana"},{value:"Microsoft YaHei"},{value:"SimSun"},{value:"SimHei"},{value:"Kaiti"},{value:"FangSong"},{value:"NSimSun"},{value:"STXinwei"},{value:"STXingkai"},{value:"STLiti"}],uiPluginSheetsFontSize="univer-ui-plugin-sheets-font-size",uiPluginSheetsFontSizeInput="univer-ui-plugin-sheets-font-size-input",styles$f={uiPluginSheetsFontSize,uiPluginSheetsFontSizeInput},FontSize=__name(props=>{const{value,min,max,onChange,disabled$}=props,disabled=useObservable(disabled$),[realValue,setRealValue]=React.useState(Number(value!=null?value:0)),_value=React.useMemo(()=>Number(value!=null?value:realValue),[value]);function handleChange(value2){value2!==null&&setRealValue(value2)}__name(handleChange,"handleChange");function handleStopPropagation(e2){e2.stopPropagation(),e2.code==="Enter"&&onChange(realValue.toString())}return __name(handleStopPropagation,"handleStopPropagation"),jsxRuntimeExports.jsx("div",{className:styles$f.uiPluginSheetsFontSize,children:jsxRuntimeExports.jsx(design.InputNumber,{className:styles$f.uiPluginSheetsFontSizeInput,value:_value,controls:!1,min,max,onKeyDown:handleStopPropagation,onChange:handleChange,disabled})})},"FontSize"),FONT_SIZE_LIST=[{label:"9",value:9},{label:"10",value:10},{label:"11",value:11},{label:"12",value:12},{label:"14",value:14},{label:"16",value:16},{label:"18",value:18},{label:"20",value:20},{label:"22",value:22},{label:"24",value:24},{label:"26",value:26},{label:"28",value:28},{label:"36",value:36},{label:"48",value:48},{label:"72",value:72}];var canUseDom$2={};Object.defineProperty(canUseDom$2,"__esModule",{value:!0});var _default=canUseDom$2.default=canUseDom$1;function canUseDom$1(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}__name(canUseDom$1,"canUseDom$1");function useEvent$1(func){const funcRef=React.useRef(func);return funcRef.current=func,React.useCallback((...params)=>funcRef.current(...params),[])}__name(useEvent$1,"useEvent$1");function useScrollYOverContainer(element2,container){const updater=useEvent$1(()=>{if(!element2||!container)return;const elStyle=element2.style,elRect=element2.getBoundingClientRect(),{y}=elRect,containerRect=container.getBoundingClientRect(),scrolled=element2.scrollHeight>elRect.height,isOverViewport=y<0||y+elRect.height>containerRect.height;if(!isOverViewport&&!scrolled){elStyle.overflowY="",elStyle.maxHeight="";return}isOverViewport&&(elStyle.overflowY="scroll",elStyle.maxHeight=y<0?`${element2.scrollHeight+y}px`:`${containerRect.height-y}px`)});React.useEffect(()=>{if(!_default()||!element2||!container)return;updater();const resizeObserver=design.resizeObserverCtor(updater);return resizeObserver.observe(element2),()=>{resizeObserver.unobserve(element2)}},[element2,container])}__name(useScrollYOverContainer,"useScrollYOverContainer");function t$1(localeService,key,...args){return localeService.t(key)}__name(t$1,"t$1");const CopyCommandName="univer.command.copy",CopyCommand={id:CopyCommandName,name:CopyCommandName,multi:!0,priority:0,type:core.CommandType.COMMAND,preconditions:__name(()=>!1,"preconditions"),handler:__name(async()=>!0,"handler")},CutCommandName="univer.command.cut",CutCommand={id:CutCommandName,name:CutCommandName,multi:!0,priority:0,type:core.CommandType.COMMAND,preconditions:__name(()=>!1,"preconditions"),handler:__name(async()=>!0,"handler")},PasteCommandName="univer.command.paste",PasteCommand={id:PasteCommandName,name:PasteCommandName,multi:!0,priority:0,type:core.CommandType.COMMAND,preconditions:__name(()=>!1,"preconditions"),handler:__name(async()=>!0,"handler")};function fromGlobalEvent(type,listener,options){return window.addEventListener(type,listener,options),core.toDisposable(()=>window.removeEventListener(type,listener,options))}__name(fromGlobalEvent,"fromGlobalEvent");var __defProp$h=Object.defineProperty,__getOwnPropDesc$h=Object.getOwnPropertyDescriptor,__decorateClass$h=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$h(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$h(target,key,result),result},"__decorateClass$h"),__decorateParam$h=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$h");const _Editor=class _Editor{constructor(_param){__publicField(this,"_focus",!1);__publicField(this,"_valueLegality",!0);__publicField(this,"_openForSheetUnitId");__publicField(this,"_openForSheetSubUnitId");this._param=_param,this._openForSheetUnitId=this._param.openForSheetUnitId,this._openForSheetSubUnitId=this._param.openForSheetSubUnitId}get documentDataModel(){return this._param.documentDataModel}get editorUnitId(){return this._param.editorUnitId}get cancelDefaultResizeListener(){return this._param.cancelDefaultResizeListener}get render(){return this._param.render}isSingleChoice(){return this._param.isSingleChoice}setOpenForSheetUnitId(unitId){this._openForSheetUnitId=unitId}getOpenForSheetUnitId(){return this._openForSheetUnitId}setOpenForSheetSubUnitId(subUnitId){this._openForSheetSubUnitId=subUnitId}getOpenForSheetSubUnitId(){return this._openForSheetSubUnitId}isValueLegality(){return this._valueLegality===!0}setValueLegality(state=!0){this._valueLegality=state}isFocus(){return this._focus}setFocus(state=!1){this._focus=state}isSingle(){return this._param.isSingle===!0||this.onlyInputRange()}isReadOnly(){return this._param.isReadonly===!0}onlyInputContent(){return this._param.onlyInputContent===!0}onlyInputFormula(){return this._param.onlyInputFormula===!0}onlyInputRange(){return this._param.onlyInputRange===!0}getBoundingClientRect(){return this._param.editorDom.getBoundingClientRect()}isVisible(){return this._param.visible}isSheetEditor(){return this._param.isSheetEditor===!0}isFormulaEditor(){return this._param.isFormulaEditor===!0}getValue(){var _a18;return(((_a18=this._param.documentDataModel.getBody())==null?void 0:_a18.dataStream)||"").replace(/\r\n/g,"").replace(/\n/g,"").replace(/\n/g,"")}getBody(){return this._param.documentDataModel.getBody()}update(param){this._param={...this._param,...param}}verticalAlign(){var _a18,_b2;const documentDataModel=(_a18=this._param)==null?void 0:_a18.documentDataModel;if(documentDataModel==null)return;const{width,height}=this._param.editorDom.getBoundingClientRect();if(height===0||width===0)return;if(!this.isSingle()){documentDataModel.updateDocumentDataPageSize(width,void 0);return}let fontSize=core.DEFAULT_STYLES.fs;(_b2=this._param.canvasStyle)!=null&&_b2.fontSize&&(fontSize=this._param.canvasStyle.fontSize);const top=(height-fontSize*4/3)/2-2;documentDataModel.updateDocumentDataMargin({t:top<0?0:top}),documentDataModel.updateDocumentDataPageSize(void 0,void 0)}updateCanvasStyle(){var _a18;const documentDataModel=this._param.documentDataModel;if(documentDataModel==null)return;const documentStyle={};(_a18=this._param.canvasStyle)!=null&&_a18.fontSize&&(documentStyle.textStyle==null&&(documentStyle.textStyle={}),documentStyle.textStyle.fs=this._param.canvasStyle.fontSize),documentDataModel.updateDocumentStyle(documentStyle)}};__name(_Editor,"Editor");let Editor=_Editor;var _b;exports.EditorService=(_b=class extends core.Disposable{constructor(_univerInstanceService,_renderManagerService,_lexerTreeBuilder,_contextService){super();__publicField(this,"_editors",new Map);__publicField(this,"_focusEditorUnitId");__publicField(this,"_state$",new rxjs.Subject);__publicField(this,"state$",this._state$.asObservable());__publicField(this,"_currentSheetUnitId");__publicField(this,"_currentSheetSubUnitId");__publicField(this,"_inputFormula$",new rxjs.Subject);__publicField(this,"inputFormula$",this._inputFormula$.asObservable());__publicField(this,"_resize$",new rxjs.Subject);__publicField(this,"resize$",this._resize$.asObservable());__publicField(this,"_closeRangePrompt$",new rxjs.Subject);__publicField(this,"closeRangePrompt$",this._closeRangePrompt$.asObservable());__publicField(this,"_blur$",new rxjs.Subject);__publicField(this,"blur$",this._blur$.asObservable());__publicField(this,"_focus$",new rxjs.Subject);__publicField(this,"focus$",this._focus$.asObservable());__publicField(this,"_setValue$",new rxjs.Subject);__publicField(this,"setValue$",this._setValue$.asObservable());__publicField(this,"_valueChange$",new rxjs.Subject);__publicField(this,"valueChange$",this._valueChange$.asObservable());__publicField(this,"_focusStyle$",new rxjs.Subject);__publicField(this,"focusStyle$",this._focusStyle$.asObservable());__publicField(this,"_singleSelection$",new rxjs.Subject);__publicField(this,"singleSelection$",this._singleSelection$.asObservable());__publicField(this,"_spreadsheetFocusState",!1);this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._lexerTreeBuilder=_lexerTreeBuilder,this._contextService=_contextService}setFocusId(id){this._focusEditorUnitId=id}getFocusId(){return this._focusEditorUnitId}getFocusEditor(){if(this._focusEditorUnitId)return this.getEditor(this._focusEditorUnitId)}isEditor(editorUnitId){return this._editors.has(editorUnitId)}isSheetEditor(editorUnitId){const editor=this._editors.get(editorUnitId);return!!(editor&&editor.isSheetEditor())}closeRangePrompt(){const documentDataModel=this._univerInstanceService.getCurrentUniverDocInstance();if(!documentDataModel)return;const editorUnitId=documentDataModel.getUnitId();this._contextService.setContextValue(core.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(core.FOCUSING_EDITOR_STANDALONE,!1),!(!this.isEditor(editorUnitId)||this.isSheetEditor(editorUnitId))&&(this.changeSpreadsheetFocusState(!1),this.blur())}changeSpreadsheetFocusState(state){this._spreadsheetFocusState=state}getSpreadsheetFocusState(){return this._spreadsheetFocusState}focusStyle(editorUnitId){const editor=this.getEditor(editorUnitId);if(!editor)return!1;editor.setFocus(!0),this._contextService.setContextValue(core.EDITOR_ACTIVATED,!0),this._contextService.setContextValue(core.FOCUSING_EDITOR_STANDALONE,!0),this._contextService.setContextValue(core.FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE,editor.isSingle()),this._spreadsheetFocusState||this.singleSelection(editor.isSingleChoice()),this._focusStyle$.next(editorUnitId),this.setFocusId(editorUnitId)}singleSelection(state){this._singleSelection$.next(state)}selectionChangingState(){const editorUnitId=this.getFocusId();if(editorUnitId==null)return!0;const editor=this.getEditor(editorUnitId);return!editor||editor.isSheetEditor()||editor.isFormulaEditor()?!0:editor.onlyInputRange()!==!0&&editor.onlyInputFormula()!==!0?(this.blur(),!0):editor.onlyInputFormula()===!0&&this._contextService.getContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA)!==!0?(this.blur(),!0):!this.getSpreadsheetFocusState()}blur(){this._spreadsheetFocusState||(this._closeRangePrompt$.next(null),this.singleSelection(!1),this.setFocusId(null),this._contextService.setContextValue(core.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(core.FOCUSING_EDITOR_STANDALONE,!1)),this.getAllEditor().forEach(editor=>{editor.setFocus(!1)}),this._focusStyle$.next(),this._blur$.next(null)}focus(editorUnitId=(_a18=>(_a18=this._univerInstanceService.getCurrentUniverDocInstance())==null?void 0:_a18.getUnitId())()){if(editorUnitId==null)return;const editor=this.getEditor(editorUnitId);if(editor==null)return;this._univerInstanceService.setCurrentUnitForType(editorUnitId);const valueCount=editor.getValue().length;this.focusStyle(editorUnitId),this._focus$.next({startOffset:valueCount-2,endOffset:valueCount-2})}setFormula(formulaString,editorUnitId=this._getCurrentEditorUnitId()){this._inputFormula$.next({formulaString,editorUnitId})}setValue(val,editorUnitId=this._getCurrentEditorUnitId()){this.setValueNoRefresh(val,editorUnitId),this._refreshValueChange(editorUnitId)}setValueNoRefresh(val,editorUnitId){this._setValue$.next({body:{dataStream:val},editorUnitId}),this.resize(editorUnitId)}getValue(id){const editor=this.getEditor(id);if(editor!=null)return editor.getValue()}setRichValue(body,editorUnitId=this._getCurrentEditorUnitId()){this._setValue$.next({body,editorUnitId}),this._refreshValueChange(editorUnitId)}getRichValue(id){const editor=this.getEditor(id);if(editor!=null)return editor.getBody()}dispose(){this._state$.complete(),this._editors.clear(),super.dispose()}getEditor(id=this._getCurrentEditorUnitId()){return this._editors.get(id)}getAllEditor(){return this._editors}getFirstEditor(){return[...this.getAllEditor().values()][0]}resize(unitId){const editor=this.getEditor(unitId);editor!=null&&(editor.verticalAlign(),this._resize$.next(unitId))}isVisible(id){var _a18;return(_a18=this.getEditor(id))==null?void 0:_a18.isVisible()}setOperationSheetUnitId(unitId){this._currentSheetUnitId=unitId}getOperationSheetUnitId(){return this._currentSheetUnitId}setOperationSheetSubUnitId(sheetId){this._currentSheetSubUnitId=sheetId}getOperationSheetSubUnitId(){return this._currentSheetSubUnitId}register(config,container){var _a18,_b2,_c,_d,_e;const{initialSnapshot,editorUnitId,canvasStyle={}}=config,documentDataModel=(_a18=this._univerInstanceService.getUnit(editorUnitId,core.UniverInstanceType.UNIVER_DOC))!=null?_a18:this._univerInstanceService.createUnit(core.UniverInstanceType.UNIVER_DOC,initialSnapshot||this._getBlank(editorUnitId),{makeCurrent:!1});let render2=this._renderManagerService.getRenderById(editorUnitId);if(render2==null&&(this._renderManagerService.create(editorUnitId),render2=this._renderManagerService.getRenderById(editorUnitId)),render2){render2.engine.setContainer(container);const editor=new Editor({...config,render:render2,documentDataModel,editorDom:container,canvasStyle});this._editors.set(editorUnitId,editor),(_e=(_d=(_c=(_b2=render2.mainComponent)==null?void 0:_b2.getScene())==null?void 0:_c.getViewports())==null?void 0:_d[0].getScrollBar())==null||_e.dispose(),editor.isSheetEditor()||(editor.verticalAlign(),editor.updateCanvasStyle())}return core.toDisposable(()=>{this._unRegister(editorUnitId)})}_unRegister(editorUnitId){const editor=this._editors.get(editorUnitId);if(editor==null||(this._renderManagerService.removeRender(editorUnitId),editor.documentDataModel.dispose(),this._editors.delete(editorUnitId),this._univerInstanceService.disposeUnit(editorUnitId),this._contextService.setContextValue(core.FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE,!1),!this.isSheetEditor(editorUnitId)))return;if(this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET).length>0){const current=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);current&&this._univerInstanceService.focusUnit(current.getUnitId())}}refreshValueChange(editorUnitId){this._refreshValueChange(editorUnitId)}checkValueLegality(editorUnitId){const editor=this._editors.get(editorUnitId);if(editor==null)return!0;let value=editor.getValue();if(editor.setValueLegality(),value=value.replace(/\r\n/g,"").replace(/\n/g,"").replace(/\n/g,""),value.length===0)return!0;if(editor.onlyInputFormula()){if(value.substring(0,1)!==engineFormula.operatorToken.EQUALS)return editor.setValueLegality(!1),!1;const bracketCount=this._lexerTreeBuilder.checkIfAddBracket(value);editor.setValueLegality(bracketCount===0)}else if(editor.onlyInputRange()){const valueArray=value.split(",");if(editor.isSingleChoice()&&valueArray.length>1)return editor.setValueLegality(!1),!1;editor.setValueLegality(engineFormula.isReferenceStrings(value))}return editor.isValueLegality()}_refreshValueChange(editorId){const editor=this.getEditor(editorId);editor!=null&&this._valueChange$.next(editor)}_getCurrentEditorUnitId(){return this._univerInstanceService.getCurrentUniverDocInstance().getUnitId()}_getBlank(id){return{id,body:{dataStream:`${core.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[],paragraphs:[{startIndex:0}]},documentStyle:{renderConfig:{verticalAlign:core.VerticalAlign.TOP,horizontalAlign:core.HorizontalAlign.LEFT},marginLeft:3,marginTop:0,marginRight:3}}}},__name(_b,"EditorService"),_b);exports.EditorService=__decorateClass$h([__decorateParam$h(0,core.IUniverInstanceService),__decorateParam$h(1,engineRender.IRenderManagerService),__decorateParam$h(2,core.Inject(engineFormula.LexerTreeBuilder)),__decorateParam$h(3,core.IContextService)],exports.EditorService);const IEditorService=core.createIdentifier("univer.editor.service");var __defProp$g=Object.defineProperty,__getOwnPropDesc$g=Object.getOwnPropertyDescriptor,__decorateClass$g=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$g(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$g(target,key,result),result},"__decorateClass$g"),__decorateParam$g=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$g");const FOCUSING_UNIVER="FOCUSING_UNIVER",givingBackFocusElements=["univer-app-layout","univer-toolbar-btn","univer-menu-item","univer-button","univer-sheet-bar-btn","univer-render-canvas","univer-workbench-layout"],editorFocusInElements=["univer-editor","univer-range-selector","univer-range-selector-editor","univer-render-canvas","univer-text-editor-container-placeholder"],ILayoutService=core.createIdentifier("ui.layout-service");var _a;exports.DesktopLayoutService=(_a=class extends core.Disposable{constructor(_contextService,_univerInstanceService,_editorService){super();__publicField(this,"_rootContainerElement",null);__publicField(this,"_isFocused",!1);__publicField(this,"_focusHandlers",new Map);__publicField(this,"_contentElements",[]);__publicField(this,"_allContainers",[]);this._contextService=_contextService,this._univerInstanceService=_univerInstanceService,this._editorService=_editorService,this._initUniverFocusListener(),this._initEditorStatus()}get isFocused(){return this._isFocused}get rootContainerElement(){return this._rootContainerElement}focus(){const currentFocused=this._univerInstanceService.getFocusedUnit();if(!currentFocused)return;let handler;currentFocused instanceof core.Workbook?handler=this._focusHandlers.get(core.UniverInstanceType.UNIVER_SHEET):currentFocused instanceof core.DocumentDataModel?handler=this._focusHandlers.get(core.UniverInstanceType.UNIVER_DOC):currentFocused instanceof core.SlideDataModel&&(handler=this._focusHandlers.get(core.UniverInstanceType.UNIVER_SLIDE)),handler&&handler(currentFocused.getUnitId())}registerFocusHandler(type,handler){if(this._focusHandlers.has(type))throw new Error(`[DesktopLayoutService]: handler of type ${type} bas been registered!`);return this._focusHandlers.set(type,handler),core.toDisposable(()=>this._focusHandlers.delete(type))}registerContentElement(container){if(this._contentElements.indexOf(container)===-1)return this._contentElements.push(container),core.toDisposable(()=>core.remove(this._contentElements,container));throw new Error("[DesktopLayoutService]: content container already registered!")}getContentElement(){return this._contentElements[0]}registerRootContainerElement(container){if(this._rootContainerElement)throw new Error("[DesktopLayoutService]: root container already registered!");this._rootContainerElement=container;const dis=this.registerContainerElement(container);return core.toDisposable(()=>{this._rootContainerElement=null,dis.dispose()})}registerContainerElement(container){if(this._allContainers.indexOf(container)===-1)return this._allContainers.push(container),core.toDisposable(()=>core.remove(this._allContainers,container));throw new Error("[LayoutService]: container already registered!")}checkElementInCurrentContainers(element2){return this._allContainers.some(container=>container.contains(element2))}checkContentIsFocused(){return this._contentElements.some(contentEl=>contentEl===document.activeElement||contentEl.contains(document.activeElement))}_initUniverFocusListener(){this.disposeWithMe(rxjs.fromEvent(window,"focusin").subscribe(event=>{const target=event.target;if(this._blurSheetEditor(target),givingBackFocusElements.some(item=>target.classList.contains(item))){queueMicrotask(()=>this.focus());return}target&&this.checkElementInCurrentContainers(target)?this._isFocused=!0:this._isFocused=!1,this._contextService.setContextValue(FOCUSING_UNIVER,this._isFocused),this._contextService.setContextValue(core.FOCUSING_UNIVER_EDITOR,getFocusingUniverEditorStatus())}))}_initEditorStatus(){this._contextService.setContextValue(core.FOCUSING_UNIVER_EDITOR,getFocusingUniverEditorStatus())}_blurSheetEditor(target){if(editorFocusInElements.some(item=>target.classList.contains(item)))return;const focusEditor=this._editorService.getFocusEditor();focusEditor&&focusEditor.isSheetEditor()!==!0&&this._editorService.blur()}},__name(_a,"DesktopLayoutService"),_a);exports.DesktopLayoutService=__decorateClass$g([core.OnLifecycle(core.LifecycleStages.Ready,ILayoutService),__decorateParam$g(0,core.IContextService),__decorateParam$g(1,core.IUniverInstanceService),__decorateParam$g(2,IEditorService)],exports.DesktopLayoutService);function getFocusingUniverEditorStatus(){var _a18;return!!((_a18=document.activeElement)!=null&&_a18.classList.contains("univer-editor"))}__name(getFocusingUniverEditorStatus,"getFocusingUniverEditorStatus");const IPlatformService=core.createIdentifier("ui.platform.service"),_PlatformService=class _PlatformService{get isMac(){return/Mac/.test(navigator.appVersion)}get isWindows(){return/Windows/.test(navigator.appVersion)}get isLinux(){return/Linux/.test(navigator.appVersion)}};__name(_PlatformService,"PlatformService");let PlatformService=_PlatformService;var KeyCode$1=(KeyCode2=>(KeyCode2[KeyCode2.UNKNOWN=0]="UNKNOWN",KeyCode2[KeyCode2.BACKSPACE=8]="BACKSPACE",KeyCode2[KeyCode2.TAB=9]="TAB",KeyCode2[KeyCode2.ENTER=13]="ENTER",KeyCode2[KeyCode2.SHIFT=16]="SHIFT",KeyCode2[KeyCode2.CTRL=17]="CTRL",KeyCode2[KeyCode2.ESC=27]="ESC",KeyCode2[KeyCode2.SPACE=32]="SPACE",KeyCode2[KeyCode2.ARROW_LEFT=37]="ARROW_LEFT",KeyCode2[KeyCode2.ARROW_UP=38]="ARROW_UP",KeyCode2[KeyCode2.ARROW_RIGHT=39]="ARROW_RIGHT",KeyCode2[KeyCode2.ARROW_DOWN=40]="ARROW_DOWN",KeyCode2[KeyCode2.INSERT=45]="INSERT",KeyCode2[KeyCode2.DELETE=46]="DELETE",KeyCode2[KeyCode2.Digit0=48]="Digit0",KeyCode2[KeyCode2.Digit1=49]="Digit1",KeyCode2[KeyCode2.Digit2=50]="Digit2",KeyCode2[KeyCode2.Digit3=51]="Digit3",KeyCode2[KeyCode2.Digit4=52]="Digit4",KeyCode2[KeyCode2.Digit5=53]="Digit5",KeyCode2[KeyCode2.Digit6=54]="Digit6",KeyCode2[KeyCode2.Digit7=55]="Digit7",KeyCode2[KeyCode2.Digit8=56]="Digit8",KeyCode2[KeyCode2.Digit9=57]="Digit9",KeyCode2[KeyCode2.A=65]="A",KeyCode2[KeyCode2.B=66]="B",KeyCode2[KeyCode2.C=67]="C",KeyCode2[KeyCode2.D=68]="D",KeyCode2[KeyCode2.E=69]="E",KeyCode2[KeyCode2.F=70]="F",KeyCode2[KeyCode2.G=71]="G",KeyCode2[KeyCode2.H=72]="H",KeyCode2[KeyCode2.I=73]="I",KeyCode2[KeyCode2.J=74]="J",KeyCode2[KeyCode2.K=75]="K",KeyCode2[KeyCode2.L=76]="L",KeyCode2[KeyCode2.M=77]="M",KeyCode2[KeyCode2.N=78]="N",KeyCode2[KeyCode2.O=79]="O",KeyCode2[KeyCode2.P=80]="P",KeyCode2[KeyCode2.Q=81]="Q",KeyCode2[KeyCode2.R=82]="R",KeyCode2[KeyCode2.S=83]="S",KeyCode2[KeyCode2.T=84]="T",KeyCode2[KeyCode2.U=85]="U",KeyCode2[KeyCode2.V=86]="V",KeyCode2[KeyCode2.W=87]="W",KeyCode2[KeyCode2.X=88]="X",KeyCode2[KeyCode2.Y=89]="Y",KeyCode2[KeyCode2.Z=90]="Z",KeyCode2[KeyCode2.F1=112]="F1",KeyCode2[KeyCode2.F2=113]="F2",KeyCode2[KeyCode2.F3=114]="F3",KeyCode2[KeyCode2.F4=115]="F4",KeyCode2[KeyCode2.F5=116]="F5",KeyCode2[KeyCode2.F6=117]="F6",KeyCode2[KeyCode2.F7=118]="F7",KeyCode2[KeyCode2.F8=119]="F8",KeyCode2[KeyCode2.F9=120]="F9",KeyCode2[KeyCode2.F10=121]="F10",KeyCode2[KeyCode2.F11=122]="F11",KeyCode2[KeyCode2.F12=123]="F12",KeyCode2[KeyCode2.NUM_LOCK=144]="NUM_LOCK",KeyCode2[KeyCode2.SCROLL_LOCK=145]="SCROLL_LOCK",KeyCode2[KeyCode2.EQUAL=187]="EQUAL",KeyCode2[KeyCode2.COMMA=188]="COMMA",KeyCode2[KeyCode2.MINUS=189]="MINUS",KeyCode2[KeyCode2.PERIOD=190]="PERIOD",KeyCode2[KeyCode2.BACK_SLASH=220]="BACK_SLASH",KeyCode2))(KeyCode$1||{});const KeyCodeToChar={8:"Backspace",9:"Tab",13:"Enter",46:"Del",27:"Esc",32:"Space",37:"←",39:"→",38:"↑",40:"↓",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",189:"-",187:"=",190:".",188:",",220:"\\"};var MetaKeys=(MetaKeys2=>(MetaKeys2[MetaKeys2.SHIFT=1024]="SHIFT",MetaKeys2[MetaKeys2.ALT=2048]="ALT",MetaKeys2[MetaKeys2.CTRL_COMMAND=4096]="CTRL_COMMAND",MetaKeys2[MetaKeys2.MAC_CTRL=8192]="MAC_CTRL",MetaKeys2))(MetaKeys||{}),__defProp$f=Object.defineProperty,__getOwnPropDesc$f=Object.getOwnPropertyDescriptor,__decorateClass$f=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$f(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$f(target,key,result),result},"__decorateClass$f"),__decorateParam$f=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$f");const IShortcutService=core.createIdentifier("univer.shortcut");var _a2;exports.ShortcutService=(_a2=class extends core.Disposable{constructor(_commandService,_platformService,_contextService,_layoutService){super();__publicField(this,"_shortCutMapping",new Map);__publicField(this,"_commandIDMapping",new Map);__publicField(this,"_shortcutChanged$",new rxjs.Subject);__publicField(this,"shortcutChanged$",this._shortcutChanged$.asObservable());__publicField(this,"_forceEscaped",!1);__publicField(this,"_disable",!1);this._commandService=_commandService,this._platformService=_platformService,this._contextService=_contextService,this._layoutService=_layoutService,this.disposeWithMe(fromGlobalEvent("keydown",e2=>{this._resolveKeyboardEvent(e2)},{capture:!0}))}setDisable(disable){this._disable=disable}getAllShortcuts(){return Array.from(this._shortCutMapping.values()).map(v2=>Array.from(v2.values())).flat()}registerShortcut(shortcut){const binding=this._getBindingFromItem(shortcut),bindingSet=this._shortCutMapping.get(binding);bindingSet?bindingSet.add(shortcut):this._shortCutMapping.set(binding,new Set([shortcut]));const commandID=shortcut.id,commandIDSet=this._commandIDMapping.get(commandID);return commandIDSet?commandIDSet.add(shortcut):this._commandIDMapping.set(commandID,new Set([shortcut])),this._emitShortcutChanged(),core.toDisposable(()=>{var _a18,_b2,_c,_d;(_a18=this._shortCutMapping.get(binding))==null||_a18.delete(shortcut),((_b2=this._shortCutMapping.get(binding))==null?void 0:_b2.size)===0&&this._shortCutMapping.delete(binding),(_c=this._commandIDMapping.get(commandID))==null||_c.delete(shortcut),((_d=this._commandIDMapping.get(commandID))==null?void 0:_d.size)===0&&this._commandIDMapping.delete(commandID),this._emitShortcutChanged()})}getShortcutDisplayOfCommand(id){const set=this._commandIDMapping.get(id);return set?this.getShortcutDisplay(set.values().next().value):null}getShortcutDisplay(shortcut){var _a18;const binding=this._getBindingFromItem(shortcut),ctrlKey=binding&MetaKeys.CTRL_COMMAND,shiftKey=binding&MetaKeys.SHIFT,altKey=binding&MetaKeys.ALT,macCtrl=binding&MetaKeys.MAC_CTRL,body=(_a18=KeyCodeToChar[binding&255])!=null?_a18:"<->";return this._platformService.isMac?`${ctrlKey?"⌘":""}${shiftKey?"⇧":""}${altKey?"⌥":""}${macCtrl?"⌃":""}${body}`:`${ctrlKey?"Ctrl+":""}${shiftKey?"Shift+":""}${altKey?"Alt+":""}${body}`}_emitShortcutChanged(){this._shortcutChanged$.next()}forceEscape(){return this._forceEscaped=!0,core.toDisposable(()=>this._forceEscaped=!1)}_resolveKeyboardEvent(e2){if(this._forceEscaped||this._disable||this._layoutService&&!this._layoutService.checkElementInCurrentContainers(e2.target))return;this._dispatch(e2)&&e2.preventDefault()}_dispatch(e2){const binding=this._deriveBindingFromEvent(e2);if(binding===null)return!1;const shortcuts=this._shortCutMapping.get(binding);if(shortcuts===void 0)return!1;const shouldTrigger=Array.from(shortcuts).sort((s1,s2)=>{var _a18,_b2;return((_a18=s2.priority)!=null?_a18:0)-((_b2=s1.priority)!=null?_b2:0)}).find(s=>{var _a18,_b2;return(_b2=(_a18=s.preconditions)==null?void 0:_a18.call(s,this._contextService))!=null?_b2:!0});return shouldTrigger?(this._commandService.executeCommand(shouldTrigger.id,shouldTrigger.staticParameters),!0):!1}_getBindingFromItem(item){return this._platformService.isMac&&item.mac?item.mac:this._platformService.isWindows&&item.win?item.win:this._platformService.isLinux&&item.linux?item.linux:item.binding}_deriveBindingFromEvent(e2){const{shiftKey,metaKey,altKey,keyCode}=e2;let binding=keyCode;return shiftKey&&(binding|=MetaKeys.SHIFT),altKey&&(binding|=MetaKeys.ALT),(this._platformService.isMac?metaKey:e2.ctrlKey)&&(binding|=MetaKeys.CTRL_COMMAND),this._platformService.isMac&&e2.ctrlKey&&(binding|=MetaKeys.MAC_CTRL),binding}},__name(_a2,"ShortcutService"),_a2);exports.ShortcutService=__decorateClass$f([__decorateParam$f(0,core.ICommandService),__decorateParam$f(1,IPlatformService),__decorateParam$f(2,core.IContextService),__decorateParam$f(3,core.Optional(ILayoutService))],exports.ShortcutService);function mergeMenuConfigs(baseConfig,additionalConfig){return!additionalConfig||!baseConfig||(["group","type","icon","title","tooltip","positions"].forEach(prop=>{additionalConfig[prop]!==void 0&&(baseConfig[prop]=additionalConfig[prop])}),["hidden","disabled","activated"].forEach(prop=>{updateReactiveProperty(baseConfig,`${prop}$`,additionalConfig[prop])})),baseConfig}__name(mergeMenuConfigs,"mergeMenuConfigs");function updateReactiveProperty(baseConfig,key,value){if(value!==void 0&&baseConfig[key]){const subject$=baseConfig[key].pipe(rxjs.switchMap(()=>new rxjs.BehaviorSubject(value)));baseConfig[key]=subject$}}__name(updateReactiveProperty,"updateReactiveProperty");var __defProp$e=Object.defineProperty,__getOwnPropDesc$e=Object.getOwnPropertyDescriptor,__decorateClass$e=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$e(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$e(target,key,result),result},"__decorateClass$e"),__decorateParam$e=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$e");const IMenuService=core.createIdentifier("univer.menu-service");var _a3;exports.MenuService=(_a3=class extends core.Disposable{constructor(_shortcutService){super();__publicField(this,"_menuItemMap",new Map);__publicField(this,"_menuByPositions",new Map);__publicField(this,"_menuConfigs",new Map);__publicField(this,"_menuChanged$",new rxjs.BehaviorSubject(void 0));__publicField(this,"menuChanged$",this._menuChanged$.asObservable());this._shortcutService=_shortcutService}dispose(){this._menuItemMap.clear(),this._menuChanged$.complete()}addMenuItem(item,config){if(this._menuItemMap.has(item.id))throw new Error(`Menu item with the same id ${item.id} has already been added!`);const menuItemConfig=config==null?void 0:config[item.id];return this._menuItemMap.set(item.id,mergeMenuConfigs(item,menuItemConfig)),Array.isArray(item.positions)?item.positions.forEach(menu=>this._appendMenuToPosition(item,menu)):this._appendMenuToPosition(item,item.positions),this._menuChanged$.next(),core.toDisposable(()=>{if(this._menuItemMap.delete(item.id),Array.isArray(item.positions))item.positions.forEach(menu=>{const menus=this._menuByPositions.get(menu);if(!menus)return;const index=menus.findIndex(m2=>m2[0]===item.id);index>-1&&menus.splice(index,1)});else{const menus=this._menuByPositions.get(item.positions);if(!menus)return;const index=menus.findIndex(m2=>m2[0]===item.id);index>-1&&menus.splice(index,1)}this._menuChanged$.next()})}getMenuItems(positions){if(this._menuByPositions.has(positions)){const menuItems=this._menuByPositions.get(positions);if(menuItems)return[...menuItems.values()].map(menu=>this._getDisplayMenuItems(menu[1]))}return[]}setMenuItem(item){this._menuItemMap.set(item.id,item),this._menuChanged$.next()}getMenuItem(id){return this._menuItemMap.has(id)?this._menuItemMap.get(id):null}setMenuConfigs(id,config){this._menuConfigs.set(id,config)}getMenuConfig(id){return this._menuConfigs.has(id)?this._menuConfigs.get(id):null}_getDisplayMenuItems(menuItem){const shortcut=this._shortcutService.getShortcutDisplayOfCommand(menuItem.id);return shortcut?{...menuItem,shortcut}:menuItem}_appendMenuToPosition(menu,position){this._menuByPositions.has(position)||this._menuByPositions.set(position,[]);const menuList=this._menuByPositions.get(position);if(menuList.findIndex(m2=>m2[0]===menu.id)>-1)throw new Error(`Menu item with the same id ${menu.id} has already been added!`);menuList.push([menu.id,menu])}},__name(_a3,"MenuService"),_a3);exports.MenuService=__decorateClass$e([__decorateParam$e(0,IShortcutService)],exports.MenuService);const SetEditorResizeOperation={id:"sheet.operation.set-editor-resize",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>!0,"handler")};var MenuPosition=(MenuPosition2=>(MenuPosition2.VOID="void",MenuPosition2.TOOLBAR_START="uiToolbar.start",MenuPosition2.TOOLBAR_INSERT="uiToolbar.insert",MenuPosition2.TOOLBAR_FORMULAS="uiToolbar.formulas",MenuPosition2.TOOLBAR_DATA="uiToolbar.data",MenuPosition2.TOOLBAR_VIEW="uiToolbar.view",MenuPosition2.TOOLBAR_OTHERS="uiToolbar.others",MenuPosition2.CONTEXT_MENU="contextMenu",MenuPosition2))(MenuPosition||{}),MenuGroup=(MenuGroup2=>(MenuGroup2[MenuGroup2.TOOLBAR_HISTORY=0]="TOOLBAR_HISTORY",MenuGroup2[MenuGroup2.TOOLBAR_FORMAT=1]="TOOLBAR_FORMAT",MenuGroup2[MenuGroup2.TOOLBAR_LAYOUT=2]="TOOLBAR_LAYOUT",MenuGroup2[MenuGroup2.TOOLBAR_FORMULAS_INSERT=3]="TOOLBAR_FORMULAS_INSERT",MenuGroup2[MenuGroup2.TOOLBAR_FORMULAS_VIEW=4]="TOOLBAR_FORMULAS_VIEW",MenuGroup2[MenuGroup2.TOOLBAR_FILE=5]="TOOLBAR_FILE",MenuGroup2[MenuGroup2.TOOLBAR_OTHERS=6]="TOOLBAR_OTHERS",MenuGroup2[MenuGroup2.CONTEXT_MENU_FORMAT=7]="CONTEXT_MENU_FORMAT",MenuGroup2[MenuGroup2.CONTEXT_MENU_LAYOUT=8]="CONTEXT_MENU_LAYOUT",MenuGroup2[MenuGroup2.CONTEXT_MENU_DATA=9]="CONTEXT_MENU_DATA",MenuGroup2[MenuGroup2.CONTEXT_MENU_OTHERS=10]="CONTEXT_MENU_OTHERS",MenuGroup2))(MenuGroup||{}),MenuItemType=(MenuItemType2=>(MenuItemType2[MenuItemType2.BUTTON=0]="BUTTON",MenuItemType2[MenuItemType2.SELECTOR=1]="SELECTOR",MenuItemType2[MenuItemType2.BUTTON_SELECTOR=2]="BUTTON_SELECTOR",MenuItemType2[MenuItemType2.SUBITEMS=3]="SUBITEMS",MenuItemType2))(MenuItemType||{});function UndoMenuItemFactory(accessor){const undoRedoService=accessor.get(core.IUndoRedoService);return{id:core.UndoCommand.id,group:MenuGroup.TOOLBAR_HISTORY,type:MenuItemType.BUTTON,icon:"UndoSingle",title:"Undo",tooltip:"toolbar.undo",positions:[MenuPosition.TOOLBAR_START],disabled$:undoRedoService.undoRedoStatus$.pipe(operators.map(v2=>v2.undos<=0))}}__name(UndoMenuItemFactory,"UndoMenuItemFactory");function RedoMenuItemFactory(accessor){const undoRedoService=accessor.get(core.IUndoRedoService);return{id:core.RedoCommand.id,group:MenuGroup.TOOLBAR_HISTORY,type:MenuItemType.BUTTON,icon:"RedoSingle",title:"Redo",tooltip:"toolbar.redo",positions:[MenuPosition.TOOLBAR_START],disabled$:undoRedoService.undoRedoStatus$.pipe(operators.map(v2=>v2.redos<=0))}}__name(RedoMenuItemFactory,"RedoMenuItemFactory");var __defProp$d=Object.defineProperty,__getOwnPropDesc$d=Object.getOwnPropertyDescriptor,__decorateClass$d=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$d(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$d(target,key,result),result},"__decorateClass$d"),__decorateParam$d=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$d");function whenEditorFocused(contextService){return contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)}__name(whenEditorFocused,"whenEditorFocused");const CopyShortcutItem={id:CopyCommand.id,description:"shortcut.copy",group:"1_common-edit",binding:KeyCode$1.C|MetaKeys.CTRL_COMMAND,preconditions:whenEditorFocused},CutShortcutItem={id:CutCommand.id,description:"shortcut.cut",group:"1_common-edit",binding:KeyCode$1.X|MetaKeys.CTRL_COMMAND,preconditions:whenEditorFocused},OnlyDisplayPasteShortcutItem={id:PasteCommand.id,description:"shortcut.paste",group:"1_common-edit",binding:KeyCode$1.V|MetaKeys.CTRL_COMMAND,preconditions:__name(()=>!1,"preconditions")},UndoShortcutItem={id:core.UndoCommand.id,description:"shortcut.undo",group:"1_common-edit",binding:KeyCode$1.Z|MetaKeys.CTRL_COMMAND,preconditions:whenEditorFocused},RedoShortcutItem={id:core.RedoCommand.id,description:"shortcut.redo",group:"1_common-edit",binding:KeyCode$1.Y|MetaKeys.CTRL_COMMAND,preconditions:whenEditorFocused};var _a4;exports.SharedController=(_a4=class extends core.Disposable{constructor(_config,_injector,_menuService,_shortcutService,_commandService){super(),this._config=_config,this._injector=_injector,this._menuService=_menuService,this._shortcutService=_shortcutService,this._commandService=_commandService,this.initialize()}initialize(){this._registerCommands(),this._registerShortcuts(),this._registerMenus()}_registerMenus(){var _a18,_b2;const menu=(_b2=(_a18=this._config)==null?void 0:_a18.menu)!=null?_b2:{};[UndoMenuItemFactory,RedoMenuItemFactory].forEach(factory=>{this.disposeWithMe(this._menuService.addMenuItem(this._injector.invoke(factory),menu))})}_registerCommands(){[CutCommand,CopyCommand,PasteCommand,SetEditorResizeOperation].forEach(command=>this.disposeWithMe(this._commandService.registerMultipleCommand(command)))}_registerShortcuts(){const shortcutItems=[UndoShortcutItem,RedoShortcutItem];shortcutItems.push(CutShortcutItem,CopyShortcutItem,OnlyDisplayPasteShortcutItem),shortcutItems.forEach(shortcut=>this.disposeWithMe(this._shortcutService.registerShortcut(shortcut)))}},__name(_a4,"SharedController"),_a4);exports.SharedController=__decorateClass$d([core.OnLifecycle(core.LifecycleStages.Ready,exports.SharedController),__decorateParam$d(1,core.Inject(core.Injector)),__decorateParam$d(2,IMenuService),__decorateParam$d(3,IShortcutService),__decorateParam$d(4,core.ICommandService)],exports.SharedController);const IUIController=core.createIdentifier("univer.ui.ui-controller");core.runOnLifecycle(core.LifecycleStages.Ready,IUIController);const UI_CONFIG_KEY="UNIVER_UI_CONFIG_KEY";var render$1={},interopRequireWildcard={exports:{}},_typeof$1={exports:{}};(function(module2){function _typeof3(o){"@babel/helpers - typeof";return module2.exports=_typeof3=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(o2){return typeof o2}:function(o2){return o2&&typeof Symbol=="function"&&o2.constructor===Symbol&&o2!==Symbol.prototype?"symbol":typeof o2},module2.exports.__esModule=!0,module2.exports.default=module2.exports,_typeof3(o)}__name(_typeof3,"_typeof"),module2.exports=_typeof3,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(_typeof$1);var _typeofExports=_typeof$1.exports;(function(module2){var _typeof3=_typeofExports.default;function _getRequireWildcardCache(e2){if(typeof WeakMap!="function")return null;var r=new WeakMap,t2=new WeakMap;return(_getRequireWildcardCache=__name(function(e3){return e3?t2:r},"_getRequireWildcardCache"))(e2)}__name(_getRequireWildcardCache,"_getRequireWildcardCache");function _interopRequireWildcard2(e2,r){if(!r&&e2&&e2.__esModule)return e2;if(e2===null||_typeof3(e2)!="object"&&typeof e2!="function")return{default:e2};var t2=_getRequireWildcardCache(r);if(t2&&t2.has(e2))return t2.get(e2);var n2={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u2 in e2)if(u2!=="default"&&{}.hasOwnProperty.call(e2,u2)){var i=a?Object.getOwnPropertyDescriptor(e2,u2):null;i&&(i.get||i.set)?Object.defineProperty(n2,u2,i):n2[u2]=e2[u2]}return n2.default=e2,t2&&t2.set(e2,n2),n2}__name(_interopRequireWildcard2,"_interopRequireWildcard"),module2.exports=_interopRequireWildcard2,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(interopRequireWildcard);var interopRequireWildcardExports=interopRequireWildcard.exports,interopRequireDefault={exports:{}};(function(module2){function _interopRequireDefault2(e2){return e2&&e2.__esModule?e2:{default:e2}}__name(_interopRequireDefault2,"_interopRequireDefault"),module2.exports=_interopRequireDefault2,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(interopRequireDefault);var interopRequireDefaultExports=interopRequireDefault.exports,regeneratorRuntime={exports:{}};(function(module2){var _typeof3=_typeofExports.default;function _regeneratorRuntime(){module2.exports=_regeneratorRuntime=__name(function(){return e2},"_regeneratorRuntime"),module2.exports.__esModule=!0,module2.exports.default=module2.exports;var t2,e2={},r=Object.prototype,n2=r.hasOwnProperty,o=Object.defineProperty||function(t3,e3,r2){t3[e3]=r2.value},i=typeof Symbol=="function"?Symbol:{},a=i.iterator||"@@iterator",c2=i.asyncIterator||"@@asyncIterator",u2=i.toStringTag||"@@toStringTag";function define(t3,e3,r2){return Object.defineProperty(t3,e3,{value:r2,enumerable:!0,configurable:!0,writable:!0}),t3[e3]}__name(define,"define");try{define({},"")}catch{define=__name(function(t4,e3,r2){return t4[e3]=r2},"define")}function wrap(t3,e3,r2,n3){var i2=e3&&e3.prototype instanceof Generator?e3:Generator,a2=Object.create(i2.prototype),c3=new Context2(n3||[]);return o(a2,"_invoke",{value:makeInvokeMethod(t3,r2,c3)}),a2}__name(wrap,"wrap");function tryCatch(t3,e3,r2){try{return{type:"normal",arg:t3.call(e3,r2)}}catch(t4){return{type:"throw",arg:t4}}}__name(tryCatch,"tryCatch"),e2.wrap=wrap;var h2="suspendedStart",l2="suspendedYield",f2="executing",s="completed",y={};function Generator(){}__name(Generator,"Generator");function GeneratorFunction(){}__name(GeneratorFunction,"GeneratorFunction");function GeneratorFunctionPrototype(){}__name(GeneratorFunctionPrototype,"GeneratorFunctionPrototype");var p2={};define(p2,a,function(){return this});var d2=Object.getPrototypeOf,v2=d2&&d2(d2(values([])));v2&&v2!==r&&n2.call(v2,a)&&(p2=v2);var g2=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(p2);function defineIteratorMethods(t3){["next","throw","return"].forEach(function(e3){define(t3,e3,function(t4){return this._invoke(e3,t4)})})}__name(defineIteratorMethods,"defineIteratorMethods");function AsyncIterator(t3,e3){function invoke(r3,o2,i2,a2){var c3=tryCatch(t3[r3],t3,o2);if(c3.type!=="throw"){var u3=c3.arg,h3=u3.value;return h3&&_typeof3(h3)=="object"&&n2.call(h3,"__await")?e3.resolve(h3.__await).then(function(t4){invoke("next",t4,i2,a2)},function(t4){invoke("throw",t4,i2,a2)}):e3.resolve(h3).then(function(t4){u3.value=t4,i2(u3)},function(t4){return invoke("throw",t4,i2,a2)})}a2(c3.arg)}__name(invoke,"invoke");var r2;o(this,"_invoke",{value:__name(function(t4,n3){function callInvokeWithMethodAndArg(){return new e3(function(e4,r3){invoke(t4,n3,e4,r3)})}return __name(callInvokeWithMethodAndArg,"callInvokeWithMethodAndArg"),r2=r2?r2.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()},"value")})}__name(AsyncIterator,"AsyncIterator");function makeInvokeMethod(e3,r2,n3){var o2=h2;return function(i2,a2){if(o2===f2)throw Error("Generator is already running");if(o2===s){if(i2==="throw")throw a2;return{value:t2,done:!0}}for(n3.method=i2,n3.arg=a2;;){var c3=n3.delegate;if(c3){var u3=maybeInvokeDelegate(c3,n3);if(u3){if(u3===y)continue;return u3}}if(n3.method==="next")n3.sent=n3._sent=n3.arg;else if(n3.method==="throw"){if(o2===h2)throw o2=s,n3.arg;n3.dispatchException(n3.arg)}else n3.method==="return"&&n3.abrupt("return",n3.arg);o2=f2;var p3=tryCatch(e3,r2,n3);if(p3.type==="normal"){if(o2=n3.done?s:l2,p3.arg===y)continue;return{value:p3.arg,done:n3.done}}p3.type==="throw"&&(o2=s,n3.method="throw",n3.arg=p3.arg)}}}__name(makeInvokeMethod,"makeInvokeMethod");function maybeInvokeDelegate(e3,r2){var n3=r2.method,o2=e3.iterator[n3];if(o2===t2)return r2.delegate=null,n3==="throw"&&e3.iterator.return&&(r2.method="return",r2.arg=t2,maybeInvokeDelegate(e3,r2),r2.method==="throw")||n3!=="return"&&(r2.method="throw",r2.arg=new TypeError("The iterator does not provide a '"+n3+"' method")),y;var i2=tryCatch(o2,e3.iterator,r2.arg);if(i2.type==="throw")return r2.method="throw",r2.arg=i2.arg,r2.delegate=null,y;var a2=i2.arg;return a2?a2.done?(r2[e3.resultName]=a2.value,r2.next=e3.nextLoc,r2.method!=="return"&&(r2.method="next",r2.arg=t2),r2.delegate=null,y):a2:(r2.method="throw",r2.arg=new TypeError("iterator result is not an object"),r2.delegate=null,y)}__name(maybeInvokeDelegate,"maybeInvokeDelegate");function pushTryEntry(t3){var e3={tryLoc:t3[0]};1 in t3&&(e3.catchLoc=t3[1]),2 in t3&&(e3.finallyLoc=t3[2],e3.afterLoc=t3[3]),this.tryEntries.push(e3)}__name(pushTryEntry,"pushTryEntry");function resetTryEntry(t3){var e3=t3.completion||{};e3.type="normal",delete e3.arg,t3.completion=e3}__name(resetTryEntry,"resetTryEntry");function Context2(t3){this.tryEntries=[{tryLoc:"root"}],t3.forEach(pushTryEntry,this),this.reset(!0)}__name(Context2,"Context");function values(e3){if(e3||e3===""){var r2=e3[a];if(r2)return r2.call(e3);if(typeof e3.next=="function")return e3;if(!isNaN(e3.length)){var o2=-1,i2=__name(function next(){for(;++o2<e3.length;)if(n2.call(e3,o2))return next.value=e3[o2],next.done=!1,next;return next.value=t2,next.done=!0,next},"next");return i2.next=i2}}throw new TypeError(_typeof3(e3)+" is not iterable")}return __name(values,"values"),GeneratorFunction.prototype=GeneratorFunctionPrototype,o(g2,"constructor",{value:GeneratorFunctionPrototype,configurable:!0}),o(GeneratorFunctionPrototype,"constructor",{value:GeneratorFunction,configurable:!0}),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,u2,"GeneratorFunction"),e2.isGeneratorFunction=function(t3){var e3=typeof t3=="function"&&t3.constructor;return!!e3&&(e3===GeneratorFunction||(e3.displayName||e3.name)==="GeneratorFunction")},e2.mark=function(t3){return Object.setPrototypeOf?Object.setPrototypeOf(t3,GeneratorFunctionPrototype):(t3.__proto__=GeneratorFunctionPrototype,define(t3,u2,"GeneratorFunction")),t3.prototype=Object.create(g2),t3},e2.awrap=function(t3){return{__await:t3}},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,c2,function(){return this}),e2.AsyncIterator=AsyncIterator,e2.async=function(t3,r2,n3,o2,i2){i2===void 0&&(i2=Promise);var a2=new AsyncIterator(wrap(t3,r2,n3,o2),i2);return e2.isGeneratorFunction(r2)?a2:a2.next().then(function(t4){return t4.done?t4.value:a2.next()})},defineIteratorMethods(g2),define(g2,u2,"Generator"),define(g2,a,function(){return this}),define(g2,"toString",function(){return"[object Generator]"}),e2.keys=function(t3){var e3=Object(t3),r2=[];for(var n3 in e3)r2.push(n3);return r2.reverse(),__name(function next(){for(;r2.length;){var t4=r2.pop();if(t4 in e3)return next.value=t4,next.done=!1,next}return next.done=!0,next},"next")},e2.values=values,Context2.prototype={constructor:Context2,reset:__name(function(e3){if(this.prev=0,this.next=0,this.sent=this._sent=t2,this.done=!1,this.delegate=null,this.method="next",this.arg=t2,this.tryEntries.forEach(resetTryEntry),!e3)for(var r2 in this)r2.charAt(0)==="t"&&n2.call(this,r2)&&!isNaN(+r2.slice(1))&&(this[r2]=t2)},"reset"),stop:__name(function(){this.done=!0;var t3=this.tryEntries[0].completion;if(t3.type==="throw")throw t3.arg;return this.rval},"stop"),dispatchException:__name(function(e3){if(this.done)throw e3;var r2=this;function handle(n3,o3){return a2.type="throw",a2.arg=e3,r2.next=n3,o3&&(r2.method="next",r2.arg=t2),!!o3}__name(handle,"handle");for(var o2=this.tryEntries.length-1;o2>=0;--o2){var i2=this.tryEntries[o2],a2=i2.completion;if(i2.tryLoc==="root")return handle("end");if(i2.tryLoc<=this.prev){var c3=n2.call(i2,"catchLoc"),u3=n2.call(i2,"finallyLoc");if(c3&&u3){if(this.prev<i2.catchLoc)return handle(i2.catchLoc,!0);if(this.prev<i2.finallyLoc)return handle(i2.finallyLoc)}else if(c3){if(this.prev<i2.catchLoc)return handle(i2.catchLoc,!0)}else{if(!u3)throw Error("try statement without catch or finally");if(this.prev<i2.finallyLoc)return handle(i2.finallyLoc)}}}},"dispatchException"),abrupt:__name(function(t3,e3){for(var r2=this.tryEntries.length-1;r2>=0;--r2){var o2=this.tryEntries[r2];if(o2.tryLoc<=this.prev&&n2.call(o2,"finallyLoc")&&this.prev<o2.finallyLoc){var i2=o2;break}}i2&&(t3==="break"||t3==="continue")&&i2.tryLoc<=e3&&e3<=i2.finallyLoc&&(i2=null);var a2=i2?i2.completion:{};return a2.type=t3,a2.arg=e3,i2?(this.method="next",this.next=i2.finallyLoc,y):this.complete(a2)},"abrupt"),complete:__name(function(t3,e3){if(t3.type==="throw")throw t3.arg;return t3.type==="break"||t3.type==="continue"?this.next=t3.arg:t3.type==="return"?(this.rval=this.arg=t3.arg,this.method="return",this.next="end"):t3.type==="normal"&&e3&&(this.next=e3),y},"complete"),finish:__name(function(t3){for(var e3=this.tryEntries.length-1;e3>=0;--e3){var r2=this.tryEntries[e3];if(r2.finallyLoc===t3)return this.complete(r2.completion,r2.afterLoc),resetTryEntry(r2),y}},"finish"),catch:__name(function(t3){for(var e3=this.tryEntries.length-1;e3>=0;--e3){var r2=this.tryEntries[e3];if(r2.tryLoc===t3){var n3=r2.completion;if(n3.type==="throw"){var o2=n3.arg;resetTryEntry(r2)}return o2}}throw Error("illegal catch attempt")},"_catch"),delegateYield:__name(function(e3,r2,n3){return this.delegate={iterator:values(e3),resultName:r2,nextLoc:n3},this.method==="next"&&(this.arg=t2),y},"delegateYield")},e2}__name(_regeneratorRuntime,"_regeneratorRuntime"),module2.exports=_regeneratorRuntime,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(regeneratorRuntime);var regeneratorRuntimeExports=regeneratorRuntime.exports,asyncToGenerator={exports:{}};(function(module2){function asyncGeneratorStep(n2,t2,e2,r,o,a,c2){try{var i=n2[a](c2),u2=i.value}catch(n3){return void e2(n3)}i.done?t2(u2):Promise.resolve(u2).then(r,o)}__name(asyncGeneratorStep,"asyncGeneratorStep");function _asyncToGenerator(n2){return function(){var t2=this,e2=arguments;return new Promise(function(r,o){var a=n2.apply(t2,e2);function _next(n3){asyncGeneratorStep(a,r,o,_next,_throw,"next",n3)}__name(_next,"_next");function _throw(n3){asyncGeneratorStep(a,r,o,_next,_throw,"throw",n3)}__name(_throw,"_throw"),_next(void 0)})}}__name(_asyncToGenerator,"_asyncToGenerator"),module2.exports=_asyncToGenerator,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(asyncToGenerator);var asyncToGeneratorExports=asyncToGenerator.exports,objectSpread2={exports:{}},defineProperty={exports:{}},toPropertyKey$1={exports:{}},toPrimitive$1={exports:{}};(function(module2){var _typeof3=_typeofExports.default;function toPrimitive2(t2,r){if(_typeof3(t2)!="object"||!t2)return t2;var e2=t2[Symbol.toPrimitive];if(e2!==void 0){var i=e2.call(t2,r||"default");if(_typeof3(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(t2)}__name(toPrimitive2,"toPrimitive"),module2.exports=toPrimitive2,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(toPrimitive$1);var toPrimitiveExports=toPrimitive$1.exports;(function(module2){var _typeof3=_typeofExports.default,toPrimitive2=toPrimitiveExports;function toPropertyKey2(t2){var i=toPrimitive2(t2,"string");return _typeof3(i)=="symbol"?i:i+""}__name(toPropertyKey2,"toPropertyKey"),module2.exports=toPropertyKey2,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(toPropertyKey$1);var toPropertyKeyExports=toPropertyKey$1.exports;(function(module2){var toPropertyKey2=toPropertyKeyExports;function _defineProperty2(e2,r,t2){return(r=toPropertyKey2(r))in e2?Object.defineProperty(e2,r,{value:t2,enumerable:!0,configurable:!0,writable:!0}):e2[r]=t2,e2}__name(_defineProperty2,"_defineProperty"),module2.exports=_defineProperty2,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(defineProperty);var definePropertyExports=defineProperty.exports;(function(module2){var defineProperty2=definePropertyExports;function ownKeys2(e2,r){var t2=Object.keys(e2);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e2);r&&(o=o.filter(function(r2){return Object.getOwnPropertyDescriptor(e2,r2).enumerable})),t2.push.apply(t2,o)}return t2}__name(ownKeys2,"ownKeys");function _objectSpread22(e2){for(var r=1;r<arguments.length;r++){var t2=arguments[r]!=null?arguments[r]:{};r%2?ownKeys2(Object(t2),!0).forEach(function(r2){defineProperty2(e2,r2,t2[r2])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e2,Object.getOwnPropertyDescriptors(t2)):ownKeys2(Object(t2)).forEach(function(r2){Object.defineProperty(e2,r2,Object.getOwnPropertyDescriptor(t2,r2))})}return e2}__name(_objectSpread22,"_objectSpread2"),module2.exports=_objectSpread22,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(objectSpread2);var objectSpread2Exports=objectSpread2.exports,_interopRequireWildcard=interopRequireWildcardExports.default,_interopRequireDefault=interopRequireDefaultExports.default;Object.defineProperty(render$1,"__esModule",{value:!0});render$1._r=_r;render$1._u=_u;var render_2=render$1.render=render,unmount_1=render$1.unmount=unmount,_regeneratorRuntime2=_interopRequireDefault(regeneratorRuntimeExports),_asyncToGenerator2=_interopRequireDefault(asyncToGeneratorExports),_typeof2=_interopRequireDefault(_typeofExports),_objectSpread2$1=_interopRequireDefault(objectSpread2Exports),ReactDOM=_interopRequireWildcard(ReactDOM$1),fullClone=(0,_objectSpread2$1.default)({},ReactDOM),version=fullClone.version,reactRender=fullClone.render,unmountComponentAtNode=fullClone.unmountComponentAtNode,createRoot;try{var mainVersion=Number((version||"").split(".")[0]);mainVersion>=18&&(createRoot=fullClone.createRoot)}catch{}function toggleWarning(skip){var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED&&(0,_typeof2.default)(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)==="object"&&(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint=skip)}__name(toggleWarning,"toggleWarning");var MARK="__rc_react_root__";function modernRender(node,container){toggleWarning(!0);var root=container[MARK]||createRoot(container);toggleWarning(!1),root.render(node),container[MARK]=root}__name(modernRender,"modernRender");function legacyRender(node,container){reactRender(node,container)}__name(legacyRender,"legacyRender");function _r(node,container){}__name(_r,"_r");function render(node,container){if(createRoot){modernRender(node,container);return}legacyRender(node,container)}__name(render,"render");function modernUnmount(_x){return _modernUnmount.apply(this,arguments)}__name(modernUnmount,"modernUnmount");function _modernUnmount(){return _modernUnmount=(0,_asyncToGenerator2.default)((0,_regeneratorRuntime2.default)().mark(__name(function _callee(container){return(0,_regeneratorRuntime2.default)().wrap(__name(function(_context){for(;;)switch(_context.prev=_context.next){case 0:return _context.abrupt("return",Promise.resolve().then(function(){var _container$MARK;(_container$MARK=container[MARK])===null||_container$MARK===void 0||_container$MARK.unmount(),delete container[MARK]}));case 1:case"end":return _context.stop()}},"_callee$"),_callee)},"_callee"))),_modernUnmount.apply(this,arguments)}__name(_modernUnmount,"_modernUnmount");function legacyUnmount(container){unmountComponentAtNode(container)}__name(legacyUnmount,"legacyUnmount");function _u(container){}__name(_u,"_u");function unmount(_x2){return _unmount.apply(this,arguments)}__name(unmount,"unmount");function _unmount(){return _unmount=(0,_asyncToGenerator2.default)((0,_regeneratorRuntime2.default)().mark(__name(function _callee2(container){return(0,_regeneratorRuntime2.default)().wrap(__name(function(_context2){for(;;)switch(_context2.prev=_context2.next){case 0:if(createRoot===void 0){_context2.next=2;break}return _context2.abrupt("return",modernUnmount(container));case 2:legacyUnmount(container);case 3:case"end":return _context2.stop()}},"_callee2$"),_callee2)},"_callee2"))),_unmount.apply(this,arguments)}__name(_unmount,"_unmount");var BuiltInUIPart=(BuiltInUIPart2=>(BuiltInUIPart2.GLOBAL="global",BuiltInUIPart2.HEADER="header",BuiltInUIPart2.HEADER_MENU="header-menu",BuiltInUIPart2.CONTENT="content",BuiltInUIPart2.FOOTER="footer",BuiltInUIPart2.LEFT_SIDEBAR="left-sidebar",BuiltInUIPart2.FLOATING="floating",BuiltInUIPart2))(BuiltInUIPart||{});const IUIPartsService=core.createIdentifier("ui.parts.service"),_UIPartsService=class _UIPartsService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_componentsByPart",new Map);__publicField(this,"_componentRegistered$",new rxjs.Subject);__publicField(this,"componentRegistered$",this._componentRegistered$.asObservable())}dispose(){super.dispose(),this._componentRegistered$.complete()}registerComponent(part,componentFactory){const componentType=componentFactory(),components=(this._componentsByPart.get(part)||this._componentsByPart.set(part,new Set).get(part)).add(componentType);return this._componentRegistered$.next(part),core.toDisposable(()=>{components.delete(componentType),components.size===0&&this._componentsByPart.delete(part),this._componentRegistered$.next(part)})}getComponents(part){return new Set([...this._componentsByPart.get(part)||new Set])}};__name(_UIPartsService,"UIPartsService");let UIPartsService=_UIPartsService;const ICanvasPopupService=core.createIdentifier("ui.popup.service"),_CanvasPopupService=class _CanvasPopupService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_popupMap",new Map);__publicField(this,"_popups$",new rxjs.BehaviorSubject([]));__publicField(this,"popups$",this._popups$.asObservable())}get popups(){return Array.from(this._popupMap.entries())}_update(){this._popups$.next(Array.from(this._popupMap.entries()))}dispose(){super.dispose(),this._popups$.next([]),this._popups$.complete(),this._popupMap.clear()}addPopup(item){const id=core.Tools.generateRandomId();return this._popupMap.set(id,item),this._update(),id}removePopup(id){this._popupMap.delete(id)&&this._update()}removeAll(){this._popupMap.clear(),this._update()}};__name(_CanvasPopupService,"CanvasPopupService");let CanvasPopupService=_CanvasPopupService;const SingleCanvasPopup=__name(({popup,children})=>{const anchorRect=useObservable(popup.anchorRect$,popup.anchorRect),excludeRects=useObservable(popup.excludeRects$,popup.excludeRects),{bottom,left,right,top}=anchorRect,{offset}=popup,rectWithOffset=React.useMemo(()=>{const[x=0,y=0]=offset!=null?offset:[];return{left:left-x,right:right+x,top:top-y,bottom:bottom+y}},[bottom,left,right,top,offset]);return jsxRuntimeExports.jsx(design.RectPopup,{anchorRect:rectWithOffset,direction:popup.direction,onClickOutside:popup.onClickOutside,excludeOutside:popup.excludeOutside,excludeRects,closeOnSelfTarget:popup.closeOnSelfTarget,children})},"SingleCanvasPopup");function CanvasPopup(){const popupService=core.useDependency(ICanvasPopupService),componentManager=core.useDependency(ComponentManager);return useObservable(popupService.popups$,void 0,!0).map(item=>{const[key,popup]=item,Component=componentManager.get(popup.componentKey);return jsxRuntimeExports.jsx(SingleCanvasPopup,{popup,children:Component?jsxRuntimeExports.jsx(Component,{popup}):null},key)})}__name(CanvasPopup,"CanvasPopup");const _CanvasFloatDomService=class _CanvasFloatDomService{constructor(){__publicField(this,"_domLayerMap",new Map);__publicField(this,"_domLayers$",new rxjs.BehaviorSubject([]));__publicField(this,"domLayers$",this._domLayers$.asObservable())}get domLayers(){return Array.from(this._domLayerMap.entries())}_notice(){this._domLayers$.next(Array.from(this._domLayerMap.entries()))}addFloatDom(item){this._domLayerMap.set(item.id,item),this._notice()}removeFloatDom(id){this._domLayerMap.delete(id)&&this._notice()}removeAll(){this._domLayerMap.clear(),this._notice()}};__name(_CanvasFloatDomService,"CanvasFloatDomService");let CanvasFloatDomService=_CanvasFloatDomService;const floatDomWrapper="univer-float-dom-wrapper",floatDom="univer-float-dom",styles$e={floatDomWrapper,floatDom},FloatDomSingle=React.memo(props=>{const{layer,id}=props,componentManager=core.useDependency(ComponentManager),position=useObservable(layer.position$),Component=typeof layer.componentKey=="string"?componentManager.get(layer.componentKey):layer.componentKey,layerProps={data:layer.data,...layer.props};return position?jsxRuntimeExports.jsx("div",{className:styles$e.floatDomWrapper,style:{position:"absolute",top:position.startY,left:position.startX,width:Math.max(position.endX-position.startX-2,0),height:Math.max(position.endY-position.startY-2,0),transform:`rotate(${position.rotate}deg)`,overflow:"hidden"},onPointerMove:__name(e2=>{layer.onPointerMove(e2.nativeEvent)},"onPointerMove"),onPointerDown:__name(e2=>{layer.onPointerDown(e2.nativeEvent)},"onPointerDown"),onPointerUp:__name(e2=>{layer.onPointerUp(e2.nativeEvent)},"onPointerUp"),onWheel:__name(e2=>{layer.onWheel(e2.nativeEvent)},"onWheel"),children:jsxRuntimeExports.jsx("div",{id,className:styles$e.floatDom,style:{width:position.width,height:position.height,position:"absolute",...position.absolute.left?{left:0}:{right:0},...position.absolute.top?{top:0}:{bottom:0}},children:Component?jsxRuntimeExports.jsx(Component,{...layerProps}):null})}):null}),FloatDom=__name(()=>{const domLayerService=core.useDependency(CanvasFloatDomService),layers=useObservable(domLayerService.domLayers$);return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:layers==null?void 0:layers.map(layer=>jsxRuntimeExports.jsx(FloatDomSingle,{id:layer[0],layer:layer[1]},layer[0]))})},"FloatDom"),IMessageService=core.createIdentifier("ui.message.service");function ComponentContainer(props){const{components,fallback,sharedProps}=props;return!components||components.size===0?fallback!=null?fallback:null:Array.from(components.values()).map((component,index)=>{var _a18;return React.createElement(component,{key:`${(_a18=component.displayName)!=null?_a18:index}`,...sharedProps})})}__name(ComponentContainer,"ComponentContainer");function useComponentsOfPart(part,injector){var _a18;const uiPartsService=(_a18=injector==null?void 0:injector.get(IUIPartsService))!=null?_a18:core.useDependency(IUIPartsService),updateCounterRef=React.useRef(0),componentPartUpdateCount=useObservable(()=>uiPartsService.componentRegistered$.pipe(rxjs.filter(key=>key===part),rxjs.map(()=>updateCounterRef.current+=1),rxjs.startWith(updateCounterRef.current+=1)),void 0,void 0,[uiPartsService,part]);return React.useMemo(()=>uiPartsService.getComponents(part),[componentPartUpdateCount])}__name(useComponentsOfPart,"useComponentsOfPart");const menuItemNoHover="univer-menu-item-no-hover",menuItemActive="univer-menu-item-active",menuItemActivated="univer-menu-item-activated",menuItemContent="univer-menu-item-content",menuItemSelectable="univer-menu-item-selectable",menuItemSelectableIcon="univer-menu-item-selectable-icon",menuItemMoreIcon="univer-menu-item-more-icon",styles$d={menuItemNoHover,menuItemActive,menuItemActivated,menuItemContent,menuItemSelectable,menuItemSelectableIcon,menuItemMoreIcon};function MenuWrapper(props){const{menuType,onOptionSelect}=props,menuService=core.useDependency(IMenuService);if(!menuType)return null;if(Array.isArray(menuType)){const group=menuType.map(type=>menuService.getMenuItems(type)).map(menuItems2=>menuItems2.reduce((acc,item)=>{var _a18,_b2;return item.group?(acc[item.group]=(_a18=acc[item.group])!=null?_a18:[],acc[item.group].push(item)):(acc[MenuGroup.CONTEXT_MENU_OTHERS]=(_b2=acc[MenuGroup.CONTEXT_MENU_OTHERS])!=null?_b2:[],acc[MenuGroup.CONTEXT_MENU_OTHERS].push(item)),acc},{}));return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:group.map(groupItem=>Object.keys(groupItem).map(groupKey=>jsxRuntimeExports.jsx(design.MenuItemGroup,{eventKey:groupKey,children:groupItem[groupKey].map(item=>jsxRuntimeExports.jsx(MenuItem,{menuItem:item,onClick:__name(object=>{onOptionSelect==null||onOptionSelect({value:"",label:item.id,...object})},"onClick")},item.id))},groupKey)))})}return menuService.getMenuItems(menuType).map(item=>jsxRuntimeExports.jsx(MenuItem,{menuItem:item,onClick:__name(object=>{onOptionSelect==null||onOptionSelect({value:"",label:item.id,...object})},"onClick")},item.id))}__name(MenuWrapper,"MenuWrapper");function MenuOptionsWrapper(props){var _a18;const{options,value,onOptionSelect,parentKey}=props;return(_a18=options==null?void 0:options.map((option,index)=>{var _a19,_b2,_c;const key=`${parentKey}-${(_a19=option.label)!=null?_a19:option.id}-${index}`,onChange=__name(v2=>{onOptionSelect==null||onOptionSelect({value:v2,label:option==null?void 0:option.label,commandId:option==null?void 0:option.commandId})},"onChange"),handleClick=__name(()=>{typeof option.value>"u"||onOptionSelect==null||onOptionSelect({...option})},"handleClick"),_className=clsx$1({[styles$d.menuItemNoHover]:typeof option.label!="string"&&!((_b2=option.label)!=null&&_b2.hoverable)});return jsxRuntimeExports.jsx(design.MenuItem,{disabled:option.disabled,eventKey:key,className:_className,onClick:handleClick,children:jsxRuntimeExports.jsxs("span",{className:clsx$1(styles$d.menuItemContent,{[styles$d.menuItemSelectable]:!(typeof option.label!="string"&&!((_c=option.label)!=null&&_c.hoverable))}),children:[typeof value<"u"&&String(value)===String(option.value)&&jsxRuntimeExports.jsx("span",{className:styles$d.menuItemSelectableIcon,children:jsxRuntimeExports.jsx(CheckMarkSingle,{style:{color:"rgb(var(--success-color))"}})}),jsxRuntimeExports.jsx(CustomLabel,{value$:option.value$,value:option.value,label:option.label,icon:option.icon,onChange})]})},key)}))!=null?_a18:jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}__name(MenuOptionsWrapper,"MenuOptionsWrapper");const Menu=__name(props=>{const{overViewport,...restProps}=props,[menuEl,setMenuEl]=React.useState(),layoutService=core.useDependency(ILayoutService);return useScrollYOverContainer(overViewport==="scroll"?menuEl:null,layoutService.rootContainerElement),jsxRuntimeExports.jsxs(design.Menu,{ref:__name(ref=>(ref==null?void 0:ref.list)&&setMenuEl(ref.list),"ref"),selectable:!1,children:[jsxRuntimeExports.jsx(MenuOptionsWrapper,{...restProps}),jsxRuntimeExports.jsx(MenuWrapper,{...restProps})]})},"Menu");function MenuItem({menuItem,onClick}){const menuService=core.useDependency(IMenuService),disabled=useObservable(menuItem.disabled$,!1),activated=useObservable(menuItem.activated$,!1),hidden=useObservable(menuItem.hidden$,!1),value=useObservable(menuItem.value$),item=menuItem,selectionsFromObservable=useObservable(rxjs.isObservable(item.selections)?item.selections:void 0),[inputValue,setInputValue]=React.useState(value);if(hidden)return null;const onChange=__name(v2=>{const newValue=core.isRealNum(v2)&&typeof v2=="string"?Number.parseInt(v2):v2;setInputValue(newValue)},"onChange"),renderButtonType=__name(()=>{const item2=menuItem,{title,label}=item2;return jsxRuntimeExports.jsx(design.MenuItem,{eventKey:item2.id,disabled,className:clsx$1({[styles$d.menuItemActivated]:activated}),onClick:__name(()=>{onClick({commandId:item2.commandId,value:inputValue,id:item2.id})},"onClick"),children:jsxRuntimeExports.jsx("span",{className:styles$d.menuItemContent,children:jsxRuntimeExports.jsx(CustomLabel,{value,title,label,icon:item2.icon,onChange})})},item2.id)},"renderButtonType"),renderSelectorType=__name(()=>{var _a18;const selections=(_a18=selectionsFromObservable!=null?selectionsFromObservable:item.selections)!=null?_a18:[];return selections.length>0?jsxRuntimeExports.jsx(design.SubMenu,{eventKey:item.id,popupOffset:[18,0],title:jsxRuntimeExports.jsxs("span",{className:styles$d.menuItemContent,children:[jsxRuntimeExports.jsx(CustomLabel,{title:item.title,value:inputValue,onChange,icon:item.icon,label:item.label}),item.shortcut&&` (${item.shortcut})`]}),expandIcon:jsxRuntimeExports.jsx(MoreSingle,{className:styles$d.menuItemMoreIcon}),children:selections.length>0&&jsxRuntimeExports.jsx(MenuOptionsWrapper,{parentKey:item.id,menuType:item.id,options:selections,onOptionSelect:__name(v2=>{onClick({value:v2.value,id:item.id,commandId:v2.commandId})},"onOptionSelect")})},item.id):jsxRuntimeExports.jsx(design.MenuItem,{eventKey:item.id,children:jsxRuntimeExports.jsxs("span",{className:styles$d.menuItemContent,children:[jsxRuntimeExports.jsx(CustomLabel,{title:item.title,value:inputValue,icon:item.icon,label:item.label,onChange}),item.shortcut&&` (${item.shortcut})`]})},item.id)},"renderSelectorType"),subMenuItems=menuItem.id?menuService.getMenuItems(menuItem.id):[],renderSubItemsType=__name(()=>{const item2=menuItem;return jsxRuntimeExports.jsx(design.SubMenu,{eventKey:item2.id,popupOffset:[18,0],title:jsxRuntimeExports.jsx("span",{className:styles$d.menuItemContent,children:jsxRuntimeExports.jsx(CustomLabel,{title:item2.title,icon:item2.icon,label:item2.label,onChange})}),expandIcon:jsxRuntimeExports.jsx(MoreSingle,{className:styles$d.menuItemMoreIcon}),children:subMenuItems.length&&jsxRuntimeExports.jsx(MenuWrapper,{menuType:item2.id,parentKey:item2.id,onOptionSelect:onClick})},item2.id)},"renderSubItemsType");return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[menuItem.type===MenuItemType.SELECTOR&&renderSelectorType(),menuItem.type===MenuItemType.SUBITEMS&&renderSubItemsType(),menuItem.type===MenuItemType.BUTTON&&renderButtonType()]})}__name(MenuItem,"MenuItem");const IContextMenuService=core.createIdentifier("ui.contextmenu.service"),_ContextMenuService=class _ContextMenuService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_currentHandler",null);__publicField(this,"disabled",!1)}get visible(){var _a18,_b2;return(_b2=(_a18=this._currentHandler)==null?void 0:_a18.visible)!=null?_b2:!1}disable(){this.disabled=!0}enable(){this.disabled=!1}triggerContextMenu(event,menuType){var _a18;event.stopPropagation(),!this.disabled&&((_a18=this._currentHandler)==null||_a18.handleContextMenu(event,menuType))}hideContextMenu(){var _a18;(_a18=this._currentHandler)==null||_a18.hideContextMenu()}registerContextMenuHandler(handler){if(this._currentHandler)throw new Error("There is already a context menu handler!");return this._currentHandler=handler,core.toDisposable(()=>this._currentHandler=null)}};__name(_ContextMenuService,"ContextMenuService");let ContextMenuService=_ContextMenuService;function DesktopContextMenu(){const contentRef=React.useRef(null),[visible,setVisible]=React.useState(!1),[menuType,setMenuType]=React.useState(""),[offset,setOffset]=React.useState([0,0]),visibleRef=React.useRef(visible),contextMenuService=core.useDependency(IContextMenuService),commandService=core.useDependency(core.ICommandService),injector=core.useInjector();visibleRef.current=visible,React.useEffect(()=>{const disposables=contextMenuService.registerContextMenuHandler({handleContextMenu,hideContextMenu(){setVisible(!1)},get visible(){return visibleRef.current}});function handleClickOutside(event){contentRef.current&&!contentRef.current.contains(event.target)&&handleClose()}return __name(handleClickOutside,"handleClickOutside"),document.addEventListener("pointerdown",handleClickOutside),document.addEventListener("wheel",handleClose),()=>{document.removeEventListener("pointerdown",handleClickOutside),document.removeEventListener("wheel",handleClose),disposables.dispose()}},[contextMenuService]);function handleContextMenu(event,menuType2){setMenuType(menuType2),setOffset([event.clientX,event.clientY]),setVisible(!0)}__name(handleContextMenu,"handleContextMenu");function handleClose(){setVisible(!1)}return __name(handleClose,"handleClose"),jsxRuntimeExports.jsx(design.Popup,{visible,offset,children:jsxRuntimeExports.jsx("section",{ref:contentRef,children:menuType&&jsxRuntimeExports.jsx(Menu,{menuType:[menuType],onOptionSelect:__name(params=>{const{label:id,commandId,value}=params;commandService&&commandService.executeCommand(commandId!=null?commandId:id,{value}),injector.get(engineRender.ITextSelectionRenderManager).focus(),setVisible(!1)},"onOptionSelect")})})})}__name(DesktopContextMenu,"DesktopContextMenu");const toolbarBtn="univer-toolbar-btn",toolbarBtnActive="univer-toolbar-btn-active",styles$c={toolbarBtn,toolbarBtnActive};function ToolbarButton(props){const{children,className,style:style2,disabled=!1,active=!1,onClick,onDoubleClick,...restProps}=props,handleClick=__name(e2=>{if(disabled){e2.preventDefault();return}onClick&&onClick(e2)},"handleClick"),handleDoubleClick=__name(e2=>{if(disabled){e2.preventDefault();return}onDoubleClick&&onDoubleClick(e2)},"handleDoubleClick"),_className=clsx$1(styles$c.toolbarBtn,{[`${styles$c.toolbarBtn}-active`]:active},className);return jsxRuntimeExports.jsx("button",{className:_className,style:style2,disabled,onClick:handleClick,onDoubleClick:handleDoubleClick,...restProps,children})}__name(ToolbarButton,"ToolbarButton");const headerbar="univer-headerbar",headerMenu="univer-header-menu",menubar="univer-menubar",menubarItem="univer-menubar-item",menubarItemActive="univer-menubar-item-active",toolbar="univer-toolbar",toolbarContainer="univer-toolbar-container",toolbarMore="univer-toolbar-more",toolbarMoreContainer="univer-toolbar-more-container",toolbarGroup="univer-toolbar-group",toolbarItemSelectButton="univer-toolbar-item-select-button",toolbarItemSelectButtonDisabled="univer-toolbar-item-select-button-disabled",toolbarItemSelectButtonActivated="univer-toolbar-item-select-button-activated",toolbarItemSelectButtonLabel="univer-toolbar-item-select-button-label",toolbarItemSelectButtonArrow="univer-toolbar-item-select-button-arrow",toolbarItemSelect="univer-toolbar-item-select",toolbarItemSelectDisabled="univer-toolbar-item-select-disabled",toolbarItemSelectActivated="univer-toolbar-item-select-activated",toolbarItemSelectArrow="univer-toolbar-item-select-arrow",toolbarItemSelectArrowDisabled="univer-toolbar-item-select-arrow-disabled",toolbarItemSelectArrowActivated="univer-toolbar-item-select-arrow-activated",styles$b={headerbar,headerMenu,menubar,menubarItem,menubarItemActive,toolbar,toolbarContainer,toolbarMore,toolbarMoreContainer,toolbarGroup,toolbarItemSelectButton,toolbarItemSelectButtonDisabled,toolbarItemSelectButtonActivated,toolbarItemSelectButtonLabel,toolbarItemSelectButtonArrow,toolbarItemSelect,toolbarItemSelectDisabled,toolbarItemSelectActivated,toolbarItemSelectArrow,toolbarItemSelectArrowDisabled,toolbarItemSelectArrowActivated};function useToolbarGroups(categories,initCategory){const menuService=core.useDependency(IMenuService),[category,setCategory]=React.useState(initCategory!=null?initCategory:MenuPosition.TOOLBAR_START),[groups,setGroups]=React.useState([]),[visibleItems,setVisibleItems]=React.useState([]);React.useEffect(()=>{var _a18,_b2;const activeItems=(_b2=(_a18=groups.find(g2=>g2.name===category))==null?void 0:_a18.menuItems)!=null?_b2:[],s=rxjs.combineLatest(activeItems.map(item=>{var _a19;return(_a19=item.hidden$)!=null?_a19:new rxjs.Observable(observer=>observer.next(!1))})).pipe(rxjs.map(hiddenValues=>activeItems.filter((_,index)=>!hiddenValues[index]))).subscribe(items=>setVisibleItems(items));return()=>s.unsubscribe()},[groups,category]),React.useEffect(()=>{const s=menuService.menuChanged$.subscribe(()=>{const group=[];for(const position of categories){const menuItems=menuService.getMenuItems(position);menuItems.length&&group.push({name:position,menuItems})}setGroups(group)});return()=>s.unsubscribe()},[menuService,category,categories]);const groupsByKey=React.useMemo(()=>{var _a18,_b2;return(_b2=(_a18=groups.find(g2=>g2.name===category))==null?void 0:_a18.menuItems.reduce((acc,item)=>{var _a19;const key=(_a19=item.group)!=null?_a19:MenuGroup.TOOLBAR_OTHERS;return acc[key]||(acc[key]=[]),acc[key].push(item),acc},{}))!=null?_b2:{}},[groups,category]);return{setCategory,category,visibleItems,groups,groupsByKey}}__name(useToolbarGroups,"useToolbarGroups");function useToolbarItemStatus(menuItem){const{disabled$,hidden$,activated$,value$}=menuItem,[value,setValue]=React.useState(),[disabled,setDisabled]=React.useState(!1),[activated,setActivated]=React.useState(!1),[hidden,setHidden]=React.useState(!1);return React.useEffect(()=>{const subscriptions=[];return disabled$&&subscriptions.push(disabled$.subscribe(disabled2=>setDisabled(disabled2))),hidden$&&subscriptions.push(hidden$.subscribe(hidden2=>setHidden(hidden2))),activated$&&subscriptions.push(activated$.subscribe(activated2=>setActivated(activated2))),value$&&subscriptions.push(value$.subscribe(value2=>setValue(value2))),()=>subscriptions.forEach(subscription=>subscription.unsubscribe())},[activated$,disabled$,hidden$,value$]),{disabled,value,activated,hidden}}__name(useToolbarItemStatus,"useToolbarItemStatus");function useToolbarCollapseObserver(visibleItems){const toolbarItemRefs=React.useRef({}),toolbarRef=React.useRef(null),[collapsedId,setCollapsedId]=React.useState([]);return React.useEffect(()=>{function resize(){var _a18,_b2;const wrapperWidth=(_b2=(_a18=toolbarRef.current)==null?void 0:_a18.clientWidth)!=null?_b2:0;let GAP=0;if(toolbarRef.current){const gapValue=Number.parseInt(getComputedStyle(toolbarRef.current.firstElementChild).gap,10);GAP=Number.isNaN(gapValue)?0:gapValue}const itemWidths=Object.entries(toolbarItemRefs.current).filter(([_,ref])=>ref.el&&ref.key&&visibleItems.find(item=>item.id===ref.key)).map(([_,ref])=>{var _a19;return{key:ref.key,width:((_a19=ref.el)==null?void 0:_a19.clientWidth)+GAP}}),collapsedId2=[];let currentWidth=182;for(const item of itemWidths)currentWidth+=item.width,currentWidth>wrapperWidth&&collapsedId2.push(item.key);setCollapsedId(collapsedId2)}__name(resize,"resize"),resize();const observer=new ResizeObserver(()=>resize()),toolbarDom=toolbarRef.current;return toolbarDom&&observer.observe(toolbarDom),()=>{toolbarDom&&observer.unobserve(toolbarDom)}},[visibleItems]),{toolbarRef,toolbarItemRefs,collapsedId}}__name(useToolbarCollapseObserver,"useToolbarCollapseObserver");const ToolbarItem=React.forwardRef((props,ref)=>{const localeService=core.useDependency(core.LocaleService),commandService=core.useDependency(core.ICommandService),layoutService=core.useDependency(ILayoutService),componentManager=core.useDependency(ComponentManager),[tooltipVisible,setTooltipVisible]=React.useState(!1),[dropdownVisible,setDropdownVisible]=React.useState(!1),{value,hidden,disabled,activated}=useToolbarItemStatus(props),handleCommandExecuted=__name((commandId,params)=>{layoutService.focus(),commandService.executeCommand(commandId,params)},"handleCommandExecuted");function handleVisibleChange(visible){setTooltipVisible(visible)}__name(handleVisibleChange,"handleVisibleChange");function handleDropdownVisibleChange(visible){setDropdownVisible(visible),visible||setTooltipVisible(!1)}__name(handleDropdownVisibleChange,"handleDropdownVisibleChange");const{tooltip,shortcut,icon,title,label,id}=props,tooltipTitle=localeService.t(tooltip!=null?tooltip:"")+(shortcut?` (${shortcut})`:""),{selections}=props,selections$=React.useMemo(()=>rxjs.isObservable(selections)?selections:new rxjs.Observable(subscribe=>{subscribe.next(selections)}),[selections]),options=useObservable(selections$),icon$=React.useMemo(()=>rxjs.isObservable(icon)?icon:new rxjs.Observable(subscribe=>{var _a18,_b2;const v2=(_b2=(_a18=options==null?void 0:options.find(o=>o.value===value))==null?void 0:_a18.icon)!=null?_b2:icon;subscribe.next(v2)}),[icon,options,value]),iconToDisplay=useObservable(icon$,void 0,!0);function renderSelectorType(menuType){function handleSelect(option){if(disabled)return;let commandId=id;const value2=option;option.id&&(commandId=option.id),handleCommandExecuted(commandId,value2)}__name(handleSelect,"handleSelect");function handleChange(value2){if(disabled)return;handleCommandExecuted(id,{value:value2})}__name(handleChange,"handleChange");function handleClick(){disabled||menuType===MenuItemType.BUTTON_SELECTOR&&handleCommandExecuted(id,{value})}return __name(handleClick,"handleClick"),menuType===MenuItemType.BUTTON_SELECTOR?jsxRuntimeExports.jsxs("div",{className:clsx$1(styles$b.toolbarItemSelectButton,{[styles$b.toolbarItemSelectButtonDisabled]:disabled,[styles$b.toolbarItemSelectButtonActivated]:activated}),"data-disabled":disabled,children:[jsxRuntimeExports.jsx("div",{className:styles$b.toolbarItemSelectButtonLabel,onClick:handleClick,children:jsxRuntimeExports.jsx(CustomLabel,{icon:iconToDisplay,title,value,label,onChange:handleChange})}),jsxRuntimeExports.jsx(design.Dropdown,{overlay:jsxRuntimeExports.jsx(Menu,{overViewport:"scroll",menuType:id,options,onOptionSelect:handleSelect,value}),onVisibleChange:handleDropdownVisibleChange,disabled,children:jsxRuntimeExports.jsx("div",{className:clsx$1(styles$b.toolbarItemSelectButtonArrow,{[styles$b.toolbarItemSelectButtonArrowDisabled]:disabled,[styles$b.toolbarItemSelectButtonArrowActivated]:activated}),"data-disabled":disabled,children:jsxRuntimeExports.jsx(MoreDownSingle,{})})})]}):jsxRuntimeExports.jsx(design.Dropdown,{overlay:jsxRuntimeExports.jsx(Menu,{overViewport:"scroll",menuType:id,options,onOptionSelect:handleSelect,value}),onVisibleChange:handleDropdownVisibleChange,disabled,children:jsxRuntimeExports.jsxs("div",{className:clsx$1(styles$b.toolbarItemSelect,{[styles$b.toolbarItemSelectDisabled]:disabled,[styles$b.toolbarItemSelectActivated]:activated}),children:[jsxRuntimeExports.jsx(CustomLabel,{icon:iconToDisplay,title,value,label,onChange:handleChange}),jsxRuntimeExports.jsx("div",{className:clsx$1(styles$b.toolbarItemSelectArrow,{[styles$b.toolbarItemSelectArrowDisabled]:disabled}),children:jsxRuntimeExports.jsx(MoreDownSingle,{})})]})})}__name(renderSelectorType,"renderSelectorType");function renderButtonType(){var _a18;const isCustomComponent=componentManager.get(typeof label=="string"?label:(_a18=label==null?void 0:label.name)!=null?_a18:"");return jsxRuntimeExports.jsx(ToolbarButton,{className:styles$b.toolbarItemTextButton,active:activated,disabled,onClick:__name(()=>{var _a19;return handleCommandExecuted((_a19=props.commandId)!=null?_a19:props.id)},"onClick"),onDoubleClick:__name(()=>props.subId&&handleCommandExecuted(props.subId),"onDoubleClick"),children:isCustomComponent?jsxRuntimeExports.jsx(CustomLabel,{title,value,label}):jsxRuntimeExports.jsx(CustomLabel,{icon})})}__name(renderButtonType,"renderButtonType");function renderItem(){switch(props.type){case MenuItemType.BUTTON_SELECTOR:case MenuItemType.SELECTOR:case MenuItemType.SUBITEMS:return renderSelectorType(props.type);case MenuItemType.BUTTON:default:return renderButtonType()}}return __name(renderItem,"renderItem"),hidden?null:jsxRuntimeExports.jsx(design.Tooltip,{ref,visible:dropdownVisible?!1:tooltipVisible,title:tooltipTitle,placement:"bottom",onVisibleChange:handleVisibleChange,children:jsxRuntimeExports.jsx("div",{children:renderItem()})})}),MENU_POSITIONS=[MenuPosition.TOOLBAR_START,MenuPosition.TOOLBAR_INSERT,MenuPosition.TOOLBAR_FORMULAS,MenuPosition.TOOLBAR_DATA,MenuPosition.TOOLBAR_VIEW,MenuPosition.TOOLBAR_OTHERS];function Toolbar(props){const{headerMenuComponents}=props,localeService=core.useDependency(core.LocaleService),{setCategory,visibleItems,groups,category,groupsByKey}=useToolbarGroups(MENU_POSITIONS),{toolbarItemRefs,toolbarRef,collapsedId}=useToolbarCollapseObserver(visibleItems),hasHeaderMenu=React.useMemo(()=>headerMenuComponents&&headerMenuComponents.size>0||groups.length>1,[headerMenuComponents,groups]);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[hasHeaderMenu?jsxRuntimeExports.jsxs("header",{className:styles$b.headerbar,children:[jsxRuntimeExports.jsx("div",{className:styles$b.menubar,children:groups.length>1&&groups.map((item,index)=>jsxRuntimeExports.jsx("a",{className:clsx$1(styles$b.menubarItem,{[styles$b.menubarItemActive]:item.name===category}),onClick:__name(()=>{setCategory(item.name)},"onClick"),children:localeService.t(item.name)},index))}),jsxRuntimeExports.jsx("div",{className:styles$b.headerMenu,children:jsxRuntimeExports.jsx(ComponentContainer,{components:headerMenuComponents})})]}):null,jsxRuntimeExports.jsx("div",{ref:toolbarRef,className:styles$b.toolbar,children:jsxRuntimeExports.jsxs("div",{className:styles$b.toolbarContainer,children:[Object.entries(groupsByKey).filter(([_,item])=>item.filter(subItem=>!collapsedId.includes(subItem.id)).length).map(([key,item])=>jsxRuntimeExports.jsx("div",{className:styles$b.toolbarGroup,children:item.map(subItem=>!collapsedId.includes(subItem.id)&&jsxRuntimeExports.jsx(ToolbarItem,{...subItem},subItem.id))},key)),collapsedId.length>0&&jsxRuntimeExports.jsx(design.Tooltip,{title:localeService.t("more"),placement:"bottom",children:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(design.Dropdown,{forceRender:!0,className:styles$b.toolbarMore,overlay:jsxRuntimeExports.jsx("div",{className:styles$b.toolbarMoreContainer,onClick:__name(e2=>e2.stopPropagation(),"onClick"),children:Object.entries(groupsByKey).map(([key,item])=>jsxRuntimeExports.jsx("div",{className:styles$b.toolbarGroup,children:item.map(subItem=>collapsedId.includes(subItem.id)&&jsxRuntimeExports.jsx(ToolbarItem,{...subItem},subItem.id))},key))}),children:jsxRuntimeExports.jsx("span",{children:jsxRuntimeExports.jsx(ToolbarButton,{className:styles$b.toolbarItemTextButton,children:jsxRuntimeExports.jsx(MoreFunctionSingle,{})})})})})})]})}),jsxRuntimeExports.jsx("div",{className:styles$b.toolbarContainer,style:{position:"absolute",top:-9999,left:-9999,opacity:0},children:Object.entries(groupsByKey).map(([key,item])=>jsxRuntimeExports.jsx("div",{className:styles$b.toolbarGroup,children:item.map(subItem=>jsxRuntimeExports.jsx(ToolbarItem,{ref:__name(ref=>{toolbarItemRefs.current[subItem.id]={el:ref==null?void 0:ref.nativeElement,key:subItem.id}},"ref"),...subItem},subItem.id))},key))})]})}__name(Toolbar,"Toolbar");const ILeftSidebarService=core.createIdentifier("ui.left-sidebar.service"),ISidebarService=core.createIdentifier("ui.sidebar.service"),sidebar="univer-sidebar",sidebarOpen="univer-sidebar-open",sidebarContainer="univer-sidebar-container",sidebarHeader="univer-sidebar-header",sidebarHeaderClose="univer-sidebar-header-close",sidebarBody="univer-sidebar-body",sidebarFooter="univer-sidebar-footer",styles$a={sidebar,sidebarOpen,sidebarContainer,sidebarHeader,sidebarHeaderClose,sidebarBody,sidebarFooter};function Sidebar(){const sidebarService=core.useDependency(ISidebarService),sidebarOptions=useObservable(sidebarService.sidebarOptions$),scrollRef=React.useRef(null),options=React.useMemo(()=>{if(!sidebarOptions)return null;const copy={...sidebarOptions};for(const key of["children","header","footer"]){const k2=key;if(sidebarOptions[k2]){const props=sidebarOptions[k2];props&&(copy[k2]=jsxRuntimeExports.jsx(CustomLabel,{...props}))}}return copy},[sidebarOptions]);React.useEffect(()=>{const handleScroll=__name(e2=>{sidebarService.scrollEvent$.next(e2)},"handleScroll"),scrollElement=scrollRef.current;return scrollElement&&scrollElement.addEventListener("scroll",handleScroll),()=>{scrollElement==null||scrollElement.removeEventListener("scroll",handleScroll)}},[sidebarService]);const _className=clsx$1(styles$a.sidebar,{[styles$a.sidebarOpen]:options==null?void 0:options.visible}),width=React.useMemo(()=>options!=null&&options.visible?typeof options.width=="number"?`${options.width}px`:options.width:0,[options]);function handleClose(){var _a18;const options2={...sidebarOptions,visible:!1};sidebarService.sidebarOptions$.next(options2),(_a18=options2==null?void 0:options2.onClose)==null||_a18.call(options2)}return __name(handleClose,"handleClose"),jsxRuntimeExports.jsx("section",{className:_className,style:{width},children:jsxRuntimeExports.jsxs("section",{className:styles$a.sidebarContainer,ref:scrollRef,children:[jsxRuntimeExports.jsxs("header",{className:styles$a.sidebarHeader,children:[options==null?void 0:options.header,jsxRuntimeExports.jsx("a",{className:styles$a.sidebarHeaderClose,onClick:handleClose,children:jsxRuntimeExports.jsx(CloseSingle,{})})]}),jsxRuntimeExports.jsx("section",{className:styles$a.sidebarBody,children:options==null?void 0:options.children}),(options==null?void 0:options.footer)&&jsxRuntimeExports.jsx("footer",{className:styles$a.sidebarFooter,children:options.footer})]})})}__name(Sidebar,"Sidebar");const IZenZoneService=core.createIdentifier("univer.zen-zone-service"),zenZone="univer-zen-zone",zenZoneOpen="univer-zen-zone-open",zenZoneClose="univer-zen-zone-close",styles$9={zenZone,zenZoneOpen,zenZoneClose};function ZenZone(){const zenZoneService=core.useDependency(IZenZoneService),[visible,setVisible]=React.useState(!1),[componentKey,setComponentKey]=React.useState(),componentManager=core.useDependency(ComponentManager);React.useEffect(()=>{const subscriptions=[zenZoneService.visible$.subscribe(visible2=>{setVisible(visible2)}),zenZoneService.componentKey$.subscribe(componentKey2=>{setComponentKey(componentKey2)})];return()=>{subscriptions.forEach(subscription=>{subscription.unsubscribe()})}},[]);const _className=clsx$1(styles$9.zenZone,visible?styles$9.zenZoneOpen:styles$9.zenZoneClose),Component=React.useMemo(()=>{const Component2=componentManager.get(componentKey!=null?componentKey:"");if(Component2)return Component2},[componentKey]);return jsxRuntimeExports.jsx("section",{className:_className,children:Component&&jsxRuntimeExports.jsx(Component,{})})}__name(ZenZone,"ZenZone");const IGlobalZoneService=core.createIdentifier("univer.global-zone-service"),globalZone="univer-global-zone",globalZoneOpen="univer-global-zone-open",globalZoneClose="univer-global-zone-close",styles$8={globalZone,globalZoneOpen,globalZoneClose};function GlobalZone(){const globalZoneService=core.useDependency(IGlobalZoneService),[visible,setVisible]=React.useState(!1),componentKey=useObservable(globalZoneService.componentKey$,globalZoneService.componentKey),componentManager=core.useDependency(ComponentManager),_className=clsx$1(styles$8.globalZone,styles$8.globalZoneOpen),Component=React.useMemo(()=>{const Component2=componentManager.get(componentKey!=null?componentKey:"");if(Component2)return Component2},[componentKey,componentManager]);return React.useEffect(()=>{const subscription=globalZoneService.visible$.subscribe(val=>{setVisible(val)});return()=>{subscription.unsubscribe()}},[globalZoneService.visible$]),visible?jsxRuntimeExports.jsx("section",{className:_className,children:Component&&jsxRuntimeExports.jsx(Component,{})}):null}__name(GlobalZone,"GlobalZone");const builtInGlobalComponents=new Set([GlobalZone]),workbenchLayout="univer-workbench-layout",workbenchContainer="univer-workbench-container",workbenchContainerHeader="univer-workbench-container-header",workbenchContainerWrapper="univer-workbench-container-wrapper",workbenchContainerContent="univer-workbench-container-content",workbenchContainerCanvas="univer-workbench-container-canvas",workbenchContainerLeftSidebar="univer-workbench-container-left-sidebar",workbenchContainerSidebar="univer-workbench-container-sidebar",styles$7={workbenchLayout,workbenchContainer,workbenchContainerHeader,workbenchContainerWrapper,workbenchContainerContent,workbenchContainerCanvas,workbenchContainerLeftSidebar,workbenchContainerSidebar};function DesktopWorkbench(props){const{header=!0,toolbar:toolbar2=!0,footer=!0,contextMenu=!0,mountContainer,onRendered}=props,localeService=core.useDependency(core.LocaleService),themeService=core.useDependency(core.ThemeService),messageService=core.useDependency(IMessageService),contentRef=React.useRef(null),footerComponents=useComponentsOfPart(BuiltInUIPart.FOOTER),headerComponents=useComponentsOfPart(BuiltInUIPart.HEADER),headerMenuComponents=useComponentsOfPart(BuiltInUIPart.HEADER_MENU),contentComponents=useComponentsOfPart(BuiltInUIPart.CONTENT),leftSidebarComponents=useComponentsOfPart(BuiltInUIPart.LEFT_SIDEBAR),globalComponents=useComponentsOfPart(BuiltInUIPart.GLOBAL);React.useEffect(()=>{themeService.getCurrentTheme()||themeService.setTheme(design.defaultTheme)},[]),React.useEffect(()=>{contentRef.current&&(onRendered==null||onRendered(contentRef.current))},[onRendered]);const[locale,setLocale]=React.useState(localeService.getLocales()),portalContainer=React.useMemo(()=>document.createElement("div"),[]);return React.useEffect(()=>{document.body.appendChild(portalContainer),messageService.setContainer(portalContainer);const subscriptions=[localeService.localeChanged$.subscribe(()=>{setLocale(localeService.getLocales())}),themeService.currentTheme$.subscribe(theme=>{design.themeInstance.setTheme(mountContainer,theme),portalContainer&&design.themeInstance.setTheme(portalContainer,theme)})];return()=>{subscriptions.forEach(subscription=>subscription.unsubscribe()),document.body.removeChild(portalContainer)}},[localeService,messageService,mountContainer,portalContainer,themeService.currentTheme$]),jsxRuntimeExports.jsxs(design.ConfigProvider,{locale:locale==null?void 0:locale.design,mountContainer:portalContainer,children:[jsxRuntimeExports.jsxs("div",{className:styles$7.workbenchLayout,tabIndex:-1,onBlur:__name(e2=>e2.stopPropagation(),"onBlur"),children:[header&&toolbar2&&jsxRuntimeExports.jsx("header",{className:styles$7.workbenchContainerHeader,children:jsxRuntimeExports.jsx(Toolbar,{headerMenuComponents})}),jsxRuntimeExports.jsxs("section",{className:styles$7.workbenchContainer,children:[jsxRuntimeExports.jsxs("div",{className:styles$7.workbenchContainerWrapper,children:[jsxRuntimeExports.jsx("aside",{className:styles$7.workbenchContainerLeftSidebar,children:jsxRuntimeExports.jsx(ComponentContainer,{components:leftSidebarComponents},"left-sidebar")}),jsxRuntimeExports.jsxs("section",{className:styles$7.workbenchContainerContent,children:[jsxRuntimeExports.jsx("header",{children:header&&jsxRuntimeExports.jsx(ComponentContainer,{components:headerComponents},"header")}),jsxRuntimeExports.jsx("section",{className:styles$7.workbenchContainerCanvas,ref:contentRef,"data-range-selector":!0,onContextMenu:__name(e2=>e2.preventDefault(),"onContextMenu"),children:jsxRuntimeExports.jsx(ComponentContainer,{components:contentComponents},"content")})]}),jsxRuntimeExports.jsx("aside",{className:styles$7.workbenchContainerSidebar,children:jsxRuntimeExports.jsx(Sidebar,{})})]}),footer&&jsxRuntimeExports.jsx("footer",{className:styles$7.workbenchFooter,children:jsxRuntimeExports.jsx(ComponentContainer,{components:footerComponents,sharedProps:{contextMenu}},"footer")}),jsxRuntimeExports.jsx(ZenZone,{})]})]}),jsxRuntimeExports.jsx(ComponentContainer,{components:globalComponents},"global"),jsxRuntimeExports.jsx(ComponentContainer,{components:builtInGlobalComponents},"built-in-global"),contextMenu&&jsxRuntimeExports.jsx(DesktopContextMenu,{}),jsxRuntimeExports.jsx(FloatingContainer,{})]})}__name(DesktopWorkbench,"DesktopWorkbench");function FloatingContainer(){const{mountContainer}=React.useContext(design.ConfigContext),floatingComponents=useComponentsOfPart(BuiltInUIPart.FLOATING);return ReactDOM$1.createPortal(jsxRuntimeExports.jsx(ComponentContainer,{components:floatingComponents},"floating"),mountContainer)}__name(FloatingContainer,"FloatingContainer");var __defProp$c=Object.defineProperty,__getOwnPropDesc$c=Object.getOwnPropertyDescriptor,__decorateClass$c=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$c(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$c(target,key,result),result},"__decorateClass$c"),__decorateParam$c=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$c");const STEADY_TIMEOUT$1=3e3;var _a5;exports.DesktopUIController=(_a5=class extends core.Disposable{constructor(_config,_renderManagerService,_injector,_lifecycleService,_uiPartsService,_configService,_layoutService){super(),this._config=_config,this._renderManagerService=_renderManagerService,this._injector=_injector,this._lifecycleService=_lifecycleService,this._uiPartsService=_uiPartsService,this._configService=_configService,this._layoutService=_layoutService,this._configService.setConfig(UI_CONFIG_KEY,this._config),this._initBuiltinComponents(),Promise.resolve().then(()=>this._bootstrapWorkbench())}_bootstrapWorkbench(){this.disposeWithMe(bootstrap$1(this._injector,this._config,(contentElement,containerElement)=>{this._layoutService&&(this.disposeWithMe(this._layoutService.registerRootContainerElement(containerElement)),this.disposeWithMe(this._layoutService.registerContentElement(contentElement))),this._renderManagerService.currentRender$.subscribe(renderId=>{if(renderId){const render2=this._renderManagerService.getRenderById(renderId);if(!render2.unitId||core.isInternalEditorID(render2.unitId))return;render2.engine.setContainer(contentElement)}}),setTimeout(()=>{const allRenders=this._renderManagerService.getRenderAll();for(const[key,render2]of allRenders)core.isInternalEditorID(key)||!render2.isRenderUnit||render2.engine.setContainer(contentElement);this._lifecycleService.stage=core.LifecycleStages.Rendered,setTimeout(()=>this._lifecycleService.stage=core.LifecycleStages.Steady,STEADY_TIMEOUT$1)},300)}))}_initBuiltinComponents(){this.disposeWithMe(this._uiPartsService.registerComponent(BuiltInUIPart.FLOATING,()=>core.connectInjector(CanvasPopup,this._injector))),this.disposeWithMe(this._uiPartsService.registerComponent(BuiltInUIPart.CONTENT,()=>core.connectInjector(FloatDom,this._injector)))}},__name(_a5,"DesktopUIController"),_a5);exports.DesktopUIController=__decorateClass$c([core.OnLifecycle(core.LifecycleStages.Ready,exports.DesktopUIController),__decorateParam$c(1,engineRender.IRenderManagerService),__decorateParam$c(2,core.Inject(core.Injector)),__decorateParam$c(3,core.Inject(core.LifecycleService)),__decorateParam$c(4,IUIPartsService),__decorateParam$c(5,core.IConfigService),__decorateParam$c(6,core.Optional(ILayoutService))],exports.DesktopUIController);function bootstrap$1(injector,options,callback){let mountContainer;const container=options.container;if(typeof container=="string"){const containerElement=document.getElementById(container);containerElement?mountContainer=containerElement:mountContainer=createContainer$1(container)}else container instanceof HTMLElement?mountContainer=container:mountContainer=createContainer$1("univer");const ConnectedApp=core.connectInjector(DesktopWorkbench,injector),onRendered=__name(contentElement=>callback(contentElement,mountContainer),"onRendered");function render2(){render_2(jsxRuntimeExports.jsx(ConnectedApp,{...options,mountContainer,onRendered}),mountContainer)}return __name(render2,"render"),render2(),core.toDisposable(()=>{render_2(jsxRuntimeExports.jsx("div",{}),mountContainer),setTimeout(()=>render_2(jsxRuntimeExports.jsx("div",{}),mountContainer),200),setTimeout(()=>unmount_1(mountContainer),500)})}__name(bootstrap$1,"bootstrap$1");function createContainer$1(id){const element2=document.createElement("div");return element2.id=id,element2}__name(createContainer$1,"createContainer$1");const INotificationService=core.createIdentifier("ui.notification.service");var __defProp$b=Object.defineProperty,__getOwnPropDesc$b=Object.getOwnPropertyDescriptor,__decorateClass$b=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$b(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$b(target,key,result),result},"__decorateClass$b"),__decorateParam$b=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$b");const IBeforeCloseService=core.createIdentifier("univer.ui.before-close-service");var _a6;exports.DesktopBeforeCloseService=(_a6=class{constructor(_notificationService){__publicField(this,"_beforeUnloadCallbacks",[]);__publicField(this,"_onCloseCallbacks",[]);this._notificationService=_notificationService,this._init()}registerBeforeClose(callback){return this._beforeUnloadCallbacks.push(callback),{dispose:__name(()=>{this._beforeUnloadCallbacks=this._beforeUnloadCallbacks.filter(cb=>cb!==callback)},"dispose")}}registerOnClose(callback){return this._onCloseCallbacks.push(callback),{dispose:__name(()=>{this._onCloseCallbacks=this._onCloseCallbacks.filter(cb=>cb!==callback)},"dispose")}}_init(){window.addEventListener("beforeunload",_event=>{let event=_event;const message=this._beforeUnloadCallbacks.map(callback=>callback()).filter(m2=>!!m2).join(`
9
+ */var f$1=React,k$1=Symbol.for("react.element"),l$1=Symbol.for("react.fragment"),m$1=Object.prototype.hasOwnProperty,n$1=f$1.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p$1={key:!0,ref:!0,__self:!0,__source:!0};function q$1(c2,a,g2){var b2,d2={},e2=null,h2=null;g2!==void 0&&(e2=""+g2),a.key!==void 0&&(e2=""+a.key),a.ref!==void 0&&(h2=a.ref);for(b2 in a)m$1.call(a,b2)&&!p$1.hasOwnProperty(b2)&&(d2[b2]=a[b2]);if(c2&&c2.defaultProps)for(b2 in a=c2.defaultProps,a)d2[b2]===void 0&&(d2[b2]=a[b2]);return{$$typeof:k$1,type:c2,key:e2,ref:h2,props:d2,_owner:n$1.current}}__name(q$1,"q$1");reactJsxRuntime_production_min.Fragment=l$1;reactJsxRuntime_production_min.jsx=q$1;reactJsxRuntime_production_min.jsxs=q$1;jsxRuntime.exports=reactJsxRuntime_production_min;var jsxRuntimeExports=jsxRuntime.exports;function unwrap(o){return typeof o=="function"?o():o}__name(unwrap,"unwrap");function useObservable(observable,defaultValue,shouldHaveSyncValue,deps){if(typeof observable=="function"&&!deps)throw new Error("[useObservable]: expect deps when observable is a function! Otherwise it would cause an infinite loop.");const observableRef=React.useRef(null),initializedRef=React.useRef(!1),destObservable=React.useMemo(()=>observable,[...typeof deps<"u"?deps:[observable]]),[_,setRenderCounter]=React.useState(0),valueRef=React.useRef((()=>{let innerDefaultValue;return destObservable&&unwrap(destObservable).subscribe(value=>{initializedRef.current=!0,innerDefaultValue=value}).unsubscribe(),innerDefaultValue!=null?innerDefaultValue:defaultValue})());if(React.useEffect(()=>{let subscription=null;return destObservable&&(observableRef.current=unwrap(destObservable),subscription=observableRef.current.subscribe(value=>{valueRef.current=value,setRenderCounter(prev=>prev+1)})),()=>subscription==null?void 0:subscription.unsubscribe()},[destObservable]),shouldHaveSyncValue&&!initializedRef.current)throw new Error("[useObservable]: expect shouldHaveSyncValue but not getting a sync value!");return valueRef.current}__name(useObservable,"useObservable");function CustomLabel(props){const{title,icon,label,value,value$}=props,localeService=core.useDependency(core.LocaleService),componentManager=core.useDependency(ComponentManager),nodes=[];let index=0,realValue=value;value$&&(realValue=useObservable(value$,void 0,!0));let realIcon;rxjs.isObservable(icon)?realIcon=useObservable(icon,void 0,!0):realIcon=icon;let isValid=!1;if(realValue&&typeof realValue=="string"&&(isValid=new core.ColorKit(realValue).isValid),icon){const Icon=componentManager.get(realIcon!=null?realIcon:"");Icon&&nodes.push(jsxRuntimeExports.jsx(Icon,{extend:{colorChannel1:isValid?realValue:"rgb(var(--primary-color))"}},index++))}if(label){const isStringLabel=typeof label=="string",customProps=isStringLabel?{...props}:{...label==null?void 0:label.props,...props},labelName=isStringLabel?label:label==null?void 0:label.name,CustomComponent=componentManager.get(labelName);CustomComponent?nodes.push(jsxRuntimeExports.jsx(CustomComponent,{...customProps,value:realValue},index++)):nodes.push(jsxRuntimeExports.jsx("span",{children:localeService.t(labelName)},index++))}return title&&nodes.push(jsxRuntimeExports.jsx("span",{children:typeof title=="string"?localeService.t(title):title},index++)),jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:nodes})}__name(CustomLabel,"CustomLabel");const uiPluginSheetsFontFamily="univer-ui-plugin-sheets-font-family",uiPluginSheetsFontFamilyItem="univer-ui-plugin-sheets-font-family-item",styles$g={uiPluginSheetsFontFamily,uiPluginSheetsFontFamilyItem},FontFamily=__name(props=>{const{value}=props,localeService=core.useDependency(core.LocaleService),viewValue=React.useMemo(()=>{if(value==null)return"";let fontFamily=localeService.t(`fontFamily.${`${value!=null?value:""}`.replace(/\s/g,"")}`);return fontFamily.startsWith("fontFamily.")&&typeof value=="string"&&(fontFamily=value.split(",")[0]),fontFamily},[value]);return jsxRuntimeExports.jsx("div",{className:styles$g.uiPluginSheetsFontFamily,style:{fontFamily:value},children:viewValue})},"FontFamily"),FontFamilyItem=__name(props=>{var _a18;const{value}=props,localeService=core.useDependency(core.LocaleService);return jsxRuntimeExports.jsx("span",{className:styles$g.uiPluginSheetsFontFamilyItem,style:{fontFamily:value},children:localeService.t(`fontFamily.${((_a18=`${value}`)!=null?_a18:"").replace(/\s/g,"")}`)})},"FontFamilyItem"),FONT_FAMILY_LIST=[{value:"Arial"},{value:"Times New Roman"},{value:"Tahoma"},{value:"Verdana"},{value:"Microsoft YaHei"},{value:"SimSun"},{value:"SimHei"},{value:"Kaiti"},{value:"FangSong"},{value:"NSimSun"},{value:"STXinwei"},{value:"STXingkai"},{value:"STLiti"}],uiPluginSheetsFontSize="univer-ui-plugin-sheets-font-size",uiPluginSheetsFontSizeInput="univer-ui-plugin-sheets-font-size-input",styles$f={uiPluginSheetsFontSize,uiPluginSheetsFontSizeInput},FontSize=__name(props=>{const{value,min,max,onChange,disabled$}=props,disabled=useObservable(disabled$),[realValue,setRealValue]=React.useState(Number(value!=null?value:0)),_value=React.useMemo(()=>Number(value!=null?value:realValue),[value]);function handleChange(value2){value2!==null&&setRealValue(value2)}__name(handleChange,"handleChange");function handleStopPropagation(e2){e2.stopPropagation(),e2.code==="Enter"&&onChange(realValue.toString())}return __name(handleStopPropagation,"handleStopPropagation"),jsxRuntimeExports.jsx("div",{className:styles$f.uiPluginSheetsFontSize,children:jsxRuntimeExports.jsx(design.InputNumber,{className:styles$f.uiPluginSheetsFontSizeInput,value:_value,controls:!1,min,max,onKeyDown:handleStopPropagation,onChange:handleChange,disabled})})},"FontSize"),FONT_SIZE_LIST=[{label:"9",value:9},{label:"10",value:10},{label:"11",value:11},{label:"12",value:12},{label:"14",value:14},{label:"16",value:16},{label:"18",value:18},{label:"20",value:20},{label:"22",value:22},{label:"24",value:24},{label:"26",value:26},{label:"28",value:28},{label:"36",value:36},{label:"48",value:48},{label:"72",value:72}];var canUseDom$2={};Object.defineProperty(canUseDom$2,"__esModule",{value:!0});var _default=canUseDom$2.default=canUseDom$1;function canUseDom$1(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}__name(canUseDom$1,"canUseDom$1");function useEvent$1(func){const funcRef=React.useRef(func);return funcRef.current=func,React.useCallback((...params)=>funcRef.current(...params),[])}__name(useEvent$1,"useEvent$1");function useScrollYOverContainer(element2,container){const updater=useEvent$1(()=>{if(!element2||!container)return;const elStyle=element2.style,elRect=element2.getBoundingClientRect(),{y}=elRect,containerRect=container.getBoundingClientRect(),scrolled=element2.scrollHeight>elRect.height,isOverViewport=y<0||y+elRect.height>containerRect.height;if(!isOverViewport&&!scrolled){elStyle.overflowY="",elStyle.maxHeight="";return}isOverViewport&&(elStyle.overflowY="scroll",elStyle.maxHeight=y<0?`${element2.scrollHeight+y}px`:`${containerRect.height-y}px`)});React.useEffect(()=>{if(!_default()||!element2||!container)return;updater();const resizeObserver=design.resizeObserverCtor(updater);return resizeObserver.observe(element2),()=>{resizeObserver.unobserve(element2)}},[element2,container])}__name(useScrollYOverContainer,"useScrollYOverContainer");function t$1(localeService,key,...args){return localeService.t(key)}__name(t$1,"t$1");const isNumber=__name(value=>typeof value=="number","isNumber");function useLatest(value){const ref=React.useRef(value);return ref.current=value,ref}__name(useLatest,"useLatest");const useVirtualList=__name((list,options)=>{const{containerTarget,itemHeight,overscan=5}=options,itemHeightRef=useLatest(itemHeight),[size,setSize]=React.useState(null),scrollTriggerByScrollToFunc=React.useRef(!1),[targetList,setTargetList]=React.useState([]),[wrapperStyle,setWrapperStyle]=React.useState({height:void 0,marginTop:void 0}),getVisibleCount=__name((containerHeight,fromIndex)=>{if(typeof itemHeightRef.current=="number")return Math.ceil(containerHeight/itemHeightRef.current);let sum=0,endIndex=0;for(let i=fromIndex;i<list.length;i++){const height=itemHeightRef.current(i,list[i]);if(sum+=height,endIndex=i,sum>=containerHeight)break}return endIndex-fromIndex},"getVisibleCount"),getOffset=__name(scrollTop=>{if(isNumber(itemHeightRef.current))return Math.floor(scrollTop/itemHeightRef.current);let sum=0,offset=0;for(let i=0;i<list.length;i++){const height=itemHeightRef.current(i,list[i]);if(sum+=height,sum>=scrollTop){offset=i;break}}return offset+1},"getOffset"),getDistanceTop=__name(index=>typeof itemHeightRef.current=="number"?index*itemHeightRef.current:list.slice(0,index).reduce((sum,_,i)=>sum+itemHeightRef.current(i,list[i]),0),"getDistanceTop"),totalHeight=React.useMemo(()=>isNumber(itemHeightRef.current)?list.length*itemHeightRef.current:list.reduce((sum,_,index)=>sum+itemHeightRef.current(index,list[index]),0),[list]),calculateRange=__name(()=>{const container=containerTarget.current;if(container){const{scrollTop,clientHeight}=container,offset=getOffset(scrollTop),visibleCount=getVisibleCount(clientHeight,offset),start=Math.max(0,offset-overscan),end=Math.min(list.length,offset+visibleCount+overscan),offsetTop=getDistanceTop(start);setWrapperStyle({height:`${totalHeight-offsetTop}px`,marginTop:`${offsetTop}px`}),setTargetList(list.slice(start,end).map((ele,index)=>({data:ele,index:index+start})))}},"calculateRange");return React.useEffect(()=>{if(containerTarget.current){const getSize=__name(()=>{const width=containerTarget.current.clientWidth,height=containerTarget.current.clientHeight;(width!==(size==null?void 0:size.width)||height!==(size==null?void 0:size.height))&&setSize({width,height})},"getSize");getSize();const ob=new ResizeObserver(getSize);return ob.observe(containerTarget.current),()=>{ob.disconnect()}}},[]),React.useEffect(()=>{!(size!=null&&size.width)||!(size!=null&&size.height)||calculateRange()},[size==null?void 0:size.width,size==null?void 0:size.height,list]),[targetList,{wrapperStyle,scrollTo:useEvent$1(__name(index=>{const container=containerTarget.current;container&&(scrollTriggerByScrollToFunc.current=!0,container.scrollTop=getDistanceTop(index),calculateRange())},"scrollTo")),containerProps:{onScroll:__name(e2=>{if(scrollTriggerByScrollToFunc.current){scrollTriggerByScrollToFunc.current=!1;return}e2.preventDefault(),calculateRange()},"onScroll")}}]},"useVirtualList"),CopyCommandName="univer.command.copy",CopyCommand={id:CopyCommandName,name:CopyCommandName,multi:!0,priority:0,type:core.CommandType.COMMAND,preconditions:__name(()=>!1,"preconditions"),handler:__name(async()=>!0,"handler")},CutCommandName="univer.command.cut",CutCommand={id:CutCommandName,name:CutCommandName,multi:!0,priority:0,type:core.CommandType.COMMAND,preconditions:__name(()=>!1,"preconditions"),handler:__name(async()=>!0,"handler")},PasteCommandName="univer.command.paste",PasteCommand={id:PasteCommandName,name:PasteCommandName,multi:!0,priority:0,type:core.CommandType.COMMAND,preconditions:__name(()=>!1,"preconditions"),handler:__name(async()=>!0,"handler")};function fromGlobalEvent(type,listener,options){return window.addEventListener(type,listener,options),core.toDisposable(()=>window.removeEventListener(type,listener,options))}__name(fromGlobalEvent,"fromGlobalEvent");var __defProp$h=Object.defineProperty,__getOwnPropDesc$h=Object.getOwnPropertyDescriptor,__decorateClass$h=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$h(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$h(target,key,result),result},"__decorateClass$h"),__decorateParam$h=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$h");const _Editor=class _Editor{constructor(_param){__publicField(this,"_focus",!1);__publicField(this,"_valueLegality",!0);__publicField(this,"_openForSheetUnitId");__publicField(this,"_openForSheetSubUnitId");this._param=_param,this._openForSheetUnitId=this._param.openForSheetUnitId,this._openForSheetSubUnitId=this._param.openForSheetSubUnitId}get documentDataModel(){return this._param.documentDataModel}get editorUnitId(){return this._param.editorUnitId}get cancelDefaultResizeListener(){return this._param.cancelDefaultResizeListener}get render(){return this._param.render}isSingleChoice(){return this._param.isSingleChoice}setOpenForSheetUnitId(unitId){this._openForSheetUnitId=unitId}getOpenForSheetUnitId(){return this._openForSheetUnitId}setOpenForSheetSubUnitId(subUnitId){this._openForSheetSubUnitId=subUnitId}getOpenForSheetSubUnitId(){return this._openForSheetSubUnitId}isValueLegality(){return this._valueLegality===!0}setValueLegality(state=!0){this._valueLegality=state}isFocus(){return this._focus}setFocus(state=!1){this._focus=state}isSingle(){return this._param.isSingle===!0||this.onlyInputRange()}isReadOnly(){return this._param.isReadonly===!0}onlyInputContent(){return this._param.onlyInputContent===!0}onlyInputFormula(){return this._param.onlyInputFormula===!0}onlyInputRange(){return this._param.onlyInputRange===!0}getBoundingClientRect(){return this._param.editorDom.getBoundingClientRect()}isVisible(){return this._param.visible}isSheetEditor(){return this._param.isSheetEditor===!0}isFormulaEditor(){return this._param.isFormulaEditor===!0}getValue(){var _a18;return(((_a18=this._param.documentDataModel.getBody())==null?void 0:_a18.dataStream)||"").replace(/\r\n/g,"").replace(/\n/g,"").replace(/\n/g,"")}getBody(){return this._param.documentDataModel.getBody()}update(param){this._param={...this._param,...param}}verticalAlign(){var _a18,_b2;const documentDataModel=(_a18=this._param)==null?void 0:_a18.documentDataModel;if(documentDataModel==null)return;const{width,height}=this._param.editorDom.getBoundingClientRect();if(height===0||width===0)return;if(!this.isSingle()){documentDataModel.updateDocumentDataPageSize(width,void 0);return}let fontSize=core.DEFAULT_STYLES.fs;(_b2=this._param.canvasStyle)!=null&&_b2.fontSize&&(fontSize=this._param.canvasStyle.fontSize);const top=(height-fontSize*4/3)/2-2;documentDataModel.updateDocumentDataMargin({t:top<0?0:top}),documentDataModel.updateDocumentDataPageSize(void 0,void 0)}updateCanvasStyle(){var _a18;const documentDataModel=this._param.documentDataModel;if(documentDataModel==null)return;const documentStyle={};(_a18=this._param.canvasStyle)!=null&&_a18.fontSize&&(documentStyle.textStyle==null&&(documentStyle.textStyle={}),documentStyle.textStyle.fs=this._param.canvasStyle.fontSize),documentDataModel.updateDocumentStyle(documentStyle)}};__name(_Editor,"Editor");let Editor=_Editor;var _b;exports.EditorService=(_b=class extends core.Disposable{constructor(_univerInstanceService,_renderManagerService,_lexerTreeBuilder,_contextService){super();__publicField(this,"_editors",new Map);__publicField(this,"_focusEditorUnitId");__publicField(this,"_state$",new rxjs.Subject);__publicField(this,"state$",this._state$.asObservable());__publicField(this,"_currentSheetUnitId");__publicField(this,"_currentSheetSubUnitId");__publicField(this,"_inputFormula$",new rxjs.Subject);__publicField(this,"inputFormula$",this._inputFormula$.asObservable());__publicField(this,"_resize$",new rxjs.Subject);__publicField(this,"resize$",this._resize$.asObservable());__publicField(this,"_closeRangePrompt$",new rxjs.Subject);__publicField(this,"closeRangePrompt$",this._closeRangePrompt$.asObservable());__publicField(this,"_blur$",new rxjs.Subject);__publicField(this,"blur$",this._blur$.asObservable());__publicField(this,"_focus$",new rxjs.Subject);__publicField(this,"focus$",this._focus$.asObservable());__publicField(this,"_setValue$",new rxjs.Subject);__publicField(this,"setValue$",this._setValue$.asObservable());__publicField(this,"_valueChange$",new rxjs.Subject);__publicField(this,"valueChange$",this._valueChange$.asObservable());__publicField(this,"_focusStyle$",new rxjs.Subject);__publicField(this,"focusStyle$",this._focusStyle$.asObservable());__publicField(this,"_singleSelection$",new rxjs.Subject);__publicField(this,"singleSelection$",this._singleSelection$.asObservable());__publicField(this,"_spreadsheetFocusState",!1);this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._lexerTreeBuilder=_lexerTreeBuilder,this._contextService=_contextService}setFocusId(id){this._focusEditorUnitId=id}getFocusId(){return this._focusEditorUnitId}getFocusEditor(){if(this._focusEditorUnitId)return this.getEditor(this._focusEditorUnitId)}isEditor(editorUnitId){return this._editors.has(editorUnitId)}isSheetEditor(editorUnitId){const editor=this._editors.get(editorUnitId);return!!(editor&&editor.isSheetEditor())}closeRangePrompt(){const documentDataModel=this._univerInstanceService.getCurrentUniverDocInstance();if(!documentDataModel)return;const editorUnitId=documentDataModel.getUnitId();this._contextService.setContextValue(core.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(core.FOCUSING_EDITOR_STANDALONE,!1),!(!this.isEditor(editorUnitId)||this.isSheetEditor(editorUnitId))&&(this.changeSpreadsheetFocusState(!1),this.blur())}changeSpreadsheetFocusState(state){this._spreadsheetFocusState=state}getSpreadsheetFocusState(){return this._spreadsheetFocusState}focusStyle(editorUnitId){const editor=this.getEditor(editorUnitId);if(!editor)return!1;editor.setFocus(!0),this._contextService.setContextValue(core.EDITOR_ACTIVATED,!0),this._contextService.setContextValue(core.FOCUSING_EDITOR_STANDALONE,!0),this._contextService.setContextValue(core.FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE,editor.isSingle()),this._spreadsheetFocusState||this.singleSelection(editor.isSingleChoice()),this._focusStyle$.next(editorUnitId),this.setFocusId(editorUnitId)}singleSelection(state){this._singleSelection$.next(state)}selectionChangingState(){const editorUnitId=this.getFocusId();if(editorUnitId==null)return!0;const editor=this.getEditor(editorUnitId);return!editor||editor.isSheetEditor()||editor.isFormulaEditor()?!0:editor.onlyInputRange()!==!0&&editor.onlyInputFormula()!==!0?(this.blur(),!0):editor.onlyInputFormula()===!0&&this._contextService.getContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA)!==!0?(this.blur(),!0):!this.getSpreadsheetFocusState()}blur(){this._spreadsheetFocusState||(this._closeRangePrompt$.next(null),this.singleSelection(!1),this.setFocusId(null),this._contextService.setContextValue(core.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(core.FOCUSING_EDITOR_STANDALONE,!1)),this.getAllEditor().forEach(editor=>{editor.setFocus(!1)}),this._focusStyle$.next(),this._blur$.next(null)}focus(editorUnitId=(_a18=>(_a18=this._univerInstanceService.getCurrentUniverDocInstance())==null?void 0:_a18.getUnitId())()){if(editorUnitId==null)return;const editor=this.getEditor(editorUnitId);if(editor==null)return;this._univerInstanceService.setCurrentUnitForType(editorUnitId);const valueCount=editor.getValue().length;this.focusStyle(editorUnitId),this._focus$.next({startOffset:valueCount-2,endOffset:valueCount-2})}setFormula(formulaString,editorUnitId=this._getCurrentEditorUnitId()){this._inputFormula$.next({formulaString,editorUnitId})}setValue(val,editorUnitId=this._getCurrentEditorUnitId()){this.setValueNoRefresh(val,editorUnitId),this._refreshValueChange(editorUnitId)}setValueNoRefresh(val,editorUnitId){this._setValue$.next({body:{dataStream:val},editorUnitId}),this.resize(editorUnitId)}getValue(id){const editor=this.getEditor(id);if(editor!=null)return editor.getValue()}setRichValue(body,editorUnitId=this._getCurrentEditorUnitId()){this._setValue$.next({body,editorUnitId}),this._refreshValueChange(editorUnitId)}getRichValue(id){const editor=this.getEditor(id);if(editor!=null)return editor.getBody()}dispose(){this._state$.complete(),this._editors.clear(),super.dispose()}getEditor(id=this._getCurrentEditorUnitId()){return this._editors.get(id)}getAllEditor(){return this._editors}getFirstEditor(){return[...this.getAllEditor().values()][0]}resize(unitId){const editor=this.getEditor(unitId);editor!=null&&(editor.verticalAlign(),this._resize$.next(unitId))}isVisible(id){var _a18;return(_a18=this.getEditor(id))==null?void 0:_a18.isVisible()}setOperationSheetUnitId(unitId){this._currentSheetUnitId=unitId}getOperationSheetUnitId(){return this._currentSheetUnitId}setOperationSheetSubUnitId(sheetId){this._currentSheetSubUnitId=sheetId}getOperationSheetSubUnitId(){return this._currentSheetSubUnitId}register(config,container){var _a18,_b2,_c,_d,_e;const{initialSnapshot,editorUnitId,canvasStyle={}}=config,documentDataModel=(_a18=this._univerInstanceService.getUnit(editorUnitId,core.UniverInstanceType.UNIVER_DOC))!=null?_a18:this._univerInstanceService.createUnit(core.UniverInstanceType.UNIVER_DOC,initialSnapshot||this._getBlank(editorUnitId),{makeCurrent:!1});let render2=this._renderManagerService.getRenderById(editorUnitId);if(render2==null&&(this._renderManagerService.create(editorUnitId),render2=this._renderManagerService.getRenderById(editorUnitId)),render2){render2.engine.setContainer(container);const editor=new Editor({...config,render:render2,documentDataModel,editorDom:container,canvasStyle});this._editors.set(editorUnitId,editor),(_e=(_d=(_c=(_b2=render2.mainComponent)==null?void 0:_b2.getScene())==null?void 0:_c.getViewports())==null?void 0:_d[0].getScrollBar())==null||_e.dispose(),editor.isSheetEditor()||(editor.verticalAlign(),editor.updateCanvasStyle())}return core.toDisposable(()=>{this._unRegister(editorUnitId)})}_unRegister(editorUnitId){const editor=this._editors.get(editorUnitId);if(editor==null||(this._renderManagerService.removeRender(editorUnitId),editor.documentDataModel.dispose(),this._editors.delete(editorUnitId),this._univerInstanceService.disposeUnit(editorUnitId),this._contextService.setContextValue(core.FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE,!1),!this.isSheetEditor(editorUnitId)))return;if(this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET).length>0){const current=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);current&&this._univerInstanceService.focusUnit(current.getUnitId())}}refreshValueChange(editorUnitId){this._refreshValueChange(editorUnitId)}checkValueLegality(editorUnitId){const editor=this._editors.get(editorUnitId);if(editor==null)return!0;let value=editor.getValue();if(editor.setValueLegality(),value=value.replace(/\r\n/g,"").replace(/\n/g,"").replace(/\n/g,""),value.length===0)return!0;if(editor.onlyInputFormula()){if(value.substring(0,1)!==engineFormula.operatorToken.EQUALS)return editor.setValueLegality(!1),!1;const bracketCount=this._lexerTreeBuilder.checkIfAddBracket(value);editor.setValueLegality(bracketCount===0)}else if(editor.onlyInputRange()){const valueArray=value.split(",");if(editor.isSingleChoice()&&valueArray.length>1)return editor.setValueLegality(!1),!1;editor.setValueLegality(engineFormula.isReferenceStrings(value))}return editor.isValueLegality()}_refreshValueChange(editorId){const editor=this.getEditor(editorId);editor!=null&&this._valueChange$.next(editor)}_getCurrentEditorUnitId(){return this._univerInstanceService.getCurrentUniverDocInstance().getUnitId()}_getBlank(id){return{id,body:{dataStream:`${core.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[],paragraphs:[{startIndex:0}]},documentStyle:{renderConfig:{verticalAlign:core.VerticalAlign.TOP,horizontalAlign:core.HorizontalAlign.LEFT},marginLeft:3,marginTop:0,marginRight:3}}}},__name(_b,"EditorService"),_b);exports.EditorService=__decorateClass$h([__decorateParam$h(0,core.IUniverInstanceService),__decorateParam$h(1,engineRender.IRenderManagerService),__decorateParam$h(2,core.Inject(engineFormula.LexerTreeBuilder)),__decorateParam$h(3,core.IContextService)],exports.EditorService);const IEditorService=core.createIdentifier("univer.editor.service");var __defProp$g=Object.defineProperty,__getOwnPropDesc$g=Object.getOwnPropertyDescriptor,__decorateClass$g=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$g(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$g(target,key,result),result},"__decorateClass$g"),__decorateParam$g=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$g");const FOCUSING_UNIVER="FOCUSING_UNIVER",givingBackFocusElements=["univer-app-layout","univer-toolbar-btn","univer-menu-item","univer-button","univer-sheet-bar-btn","univer-render-canvas","univer-workbench-layout"],editorFocusInElements=["univer-editor","univer-range-selector","univer-range-selector-editor","univer-render-canvas","univer-text-editor-container-placeholder"],ILayoutService=core.createIdentifier("ui.layout-service");var _a;exports.DesktopLayoutService=(_a=class extends core.Disposable{constructor(_contextService,_univerInstanceService,_editorService){super();__publicField(this,"_rootContainerElement",null);__publicField(this,"_isFocused",!1);__publicField(this,"_focusHandlers",new Map);__publicField(this,"_contentElements",[]);__publicField(this,"_allContainers",[]);this._contextService=_contextService,this._univerInstanceService=_univerInstanceService,this._editorService=_editorService,this._initUniverFocusListener(),this._initEditorStatus()}get isFocused(){return this._isFocused}get rootContainerElement(){return this._rootContainerElement}focus(){const currentFocused=this._univerInstanceService.getFocusedUnit();if(!currentFocused)return;let handler;currentFocused instanceof core.Workbook?handler=this._focusHandlers.get(core.UniverInstanceType.UNIVER_SHEET):currentFocused instanceof core.DocumentDataModel?handler=this._focusHandlers.get(core.UniverInstanceType.UNIVER_DOC):currentFocused instanceof core.SlideDataModel&&(handler=this._focusHandlers.get(core.UniverInstanceType.UNIVER_SLIDE)),handler&&handler(currentFocused.getUnitId())}registerFocusHandler(type,handler){if(this._focusHandlers.has(type))throw new Error(`[DesktopLayoutService]: handler of type ${type} bas been registered!`);return this._focusHandlers.set(type,handler),core.toDisposable(()=>this._focusHandlers.delete(type))}registerContentElement(container){if(this._contentElements.indexOf(container)===-1)return this._contentElements.push(container),core.toDisposable(()=>core.remove(this._contentElements,container));throw new Error("[DesktopLayoutService]: content container already registered!")}getContentElement(){return this._contentElements[0]}registerRootContainerElement(container){if(this._rootContainerElement)throw new Error("[DesktopLayoutService]: root container already registered!");this._rootContainerElement=container;const dis=this.registerContainerElement(container);return core.toDisposable(()=>{this._rootContainerElement=null,dis.dispose()})}registerContainerElement(container){if(this._allContainers.indexOf(container)===-1)return this._allContainers.push(container),core.toDisposable(()=>core.remove(this._allContainers,container));throw new Error("[LayoutService]: container already registered!")}checkElementInCurrentContainers(element2){return this._allContainers.some(container=>container.contains(element2))}checkContentIsFocused(){return this._contentElements.some(contentEl=>contentEl===document.activeElement||contentEl.contains(document.activeElement))}_initUniverFocusListener(){this.disposeWithMe(rxjs.fromEvent(window,"focusin").subscribe(event=>{const target=event.target;if(this._blurSheetEditor(target),givingBackFocusElements.some(item=>target.classList.contains(item))){queueMicrotask(()=>this.focus());return}target&&this.checkElementInCurrentContainers(target)?this._isFocused=!0:this._isFocused=!1,this._contextService.setContextValue(FOCUSING_UNIVER,this._isFocused),this._contextService.setContextValue(core.FOCUSING_UNIVER_EDITOR,getFocusingUniverEditorStatus())}))}_initEditorStatus(){this._contextService.setContextValue(core.FOCUSING_UNIVER_EDITOR,getFocusingUniverEditorStatus())}_blurSheetEditor(target){if(editorFocusInElements.some(item=>target.classList.contains(item)))return;const focusEditor=this._editorService.getFocusEditor();focusEditor&&focusEditor.isSheetEditor()!==!0&&this._editorService.blur()}},__name(_a,"DesktopLayoutService"),_a);exports.DesktopLayoutService=__decorateClass$g([core.OnLifecycle(core.LifecycleStages.Ready,ILayoutService),__decorateParam$g(0,core.IContextService),__decorateParam$g(1,core.IUniverInstanceService),__decorateParam$g(2,IEditorService)],exports.DesktopLayoutService);function getFocusingUniverEditorStatus(){var _a18;return!!((_a18=document.activeElement)!=null&&_a18.classList.contains("univer-editor"))}__name(getFocusingUniverEditorStatus,"getFocusingUniverEditorStatus");const IPlatformService=core.createIdentifier("ui.platform.service"),_PlatformService=class _PlatformService{get isMac(){return/Mac/.test(navigator.appVersion)}get isWindows(){return/Windows/.test(navigator.appVersion)}get isLinux(){return/Linux/.test(navigator.appVersion)}};__name(_PlatformService,"PlatformService");let PlatformService=_PlatformService;var KeyCode$1=(KeyCode2=>(KeyCode2[KeyCode2.UNKNOWN=0]="UNKNOWN",KeyCode2[KeyCode2.BACKSPACE=8]="BACKSPACE",KeyCode2[KeyCode2.TAB=9]="TAB",KeyCode2[KeyCode2.ENTER=13]="ENTER",KeyCode2[KeyCode2.SHIFT=16]="SHIFT",KeyCode2[KeyCode2.CTRL=17]="CTRL",KeyCode2[KeyCode2.ESC=27]="ESC",KeyCode2[KeyCode2.SPACE=32]="SPACE",KeyCode2[KeyCode2.ARROW_LEFT=37]="ARROW_LEFT",KeyCode2[KeyCode2.ARROW_UP=38]="ARROW_UP",KeyCode2[KeyCode2.ARROW_RIGHT=39]="ARROW_RIGHT",KeyCode2[KeyCode2.ARROW_DOWN=40]="ARROW_DOWN",KeyCode2[KeyCode2.INSERT=45]="INSERT",KeyCode2[KeyCode2.DELETE=46]="DELETE",KeyCode2[KeyCode2.Digit0=48]="Digit0",KeyCode2[KeyCode2.Digit1=49]="Digit1",KeyCode2[KeyCode2.Digit2=50]="Digit2",KeyCode2[KeyCode2.Digit3=51]="Digit3",KeyCode2[KeyCode2.Digit4=52]="Digit4",KeyCode2[KeyCode2.Digit5=53]="Digit5",KeyCode2[KeyCode2.Digit6=54]="Digit6",KeyCode2[KeyCode2.Digit7=55]="Digit7",KeyCode2[KeyCode2.Digit8=56]="Digit8",KeyCode2[KeyCode2.Digit9=57]="Digit9",KeyCode2[KeyCode2.A=65]="A",KeyCode2[KeyCode2.B=66]="B",KeyCode2[KeyCode2.C=67]="C",KeyCode2[KeyCode2.D=68]="D",KeyCode2[KeyCode2.E=69]="E",KeyCode2[KeyCode2.F=70]="F",KeyCode2[KeyCode2.G=71]="G",KeyCode2[KeyCode2.H=72]="H",KeyCode2[KeyCode2.I=73]="I",KeyCode2[KeyCode2.J=74]="J",KeyCode2[KeyCode2.K=75]="K",KeyCode2[KeyCode2.L=76]="L",KeyCode2[KeyCode2.M=77]="M",KeyCode2[KeyCode2.N=78]="N",KeyCode2[KeyCode2.O=79]="O",KeyCode2[KeyCode2.P=80]="P",KeyCode2[KeyCode2.Q=81]="Q",KeyCode2[KeyCode2.R=82]="R",KeyCode2[KeyCode2.S=83]="S",KeyCode2[KeyCode2.T=84]="T",KeyCode2[KeyCode2.U=85]="U",KeyCode2[KeyCode2.V=86]="V",KeyCode2[KeyCode2.W=87]="W",KeyCode2[KeyCode2.X=88]="X",KeyCode2[KeyCode2.Y=89]="Y",KeyCode2[KeyCode2.Z=90]="Z",KeyCode2[KeyCode2.F1=112]="F1",KeyCode2[KeyCode2.F2=113]="F2",KeyCode2[KeyCode2.F3=114]="F3",KeyCode2[KeyCode2.F4=115]="F4",KeyCode2[KeyCode2.F5=116]="F5",KeyCode2[KeyCode2.F6=117]="F6",KeyCode2[KeyCode2.F7=118]="F7",KeyCode2[KeyCode2.F8=119]="F8",KeyCode2[KeyCode2.F9=120]="F9",KeyCode2[KeyCode2.F10=121]="F10",KeyCode2[KeyCode2.F11=122]="F11",KeyCode2[KeyCode2.F12=123]="F12",KeyCode2[KeyCode2.NUM_LOCK=144]="NUM_LOCK",KeyCode2[KeyCode2.SCROLL_LOCK=145]="SCROLL_LOCK",KeyCode2[KeyCode2.EQUAL=187]="EQUAL",KeyCode2[KeyCode2.COMMA=188]="COMMA",KeyCode2[KeyCode2.MINUS=189]="MINUS",KeyCode2[KeyCode2.PERIOD=190]="PERIOD",KeyCode2[KeyCode2.BACK_SLASH=220]="BACK_SLASH",KeyCode2))(KeyCode$1||{});const KeyCodeToChar={8:"Backspace",9:"Tab",13:"Enter",46:"Del",27:"Esc",32:"Space",37:"←",39:"→",38:"↑",40:"↓",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",189:"-",187:"=",190:".",188:",",220:"\\"};var MetaKeys=(MetaKeys2=>(MetaKeys2[MetaKeys2.SHIFT=1024]="SHIFT",MetaKeys2[MetaKeys2.ALT=2048]="ALT",MetaKeys2[MetaKeys2.CTRL_COMMAND=4096]="CTRL_COMMAND",MetaKeys2[MetaKeys2.MAC_CTRL=8192]="MAC_CTRL",MetaKeys2))(MetaKeys||{}),__defProp$f=Object.defineProperty,__getOwnPropDesc$f=Object.getOwnPropertyDescriptor,__decorateClass$f=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$f(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$f(target,key,result),result},"__decorateClass$f"),__decorateParam$f=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$f");const IShortcutService=core.createIdentifier("univer.shortcut");var _a2;exports.ShortcutService=(_a2=class extends core.Disposable{constructor(_commandService,_platformService,_contextService,_layoutService){super();__publicField(this,"_shortCutMapping",new Map);__publicField(this,"_commandIDMapping",new Map);__publicField(this,"_shortcutChanged$",new rxjs.Subject);__publicField(this,"shortcutChanged$",this._shortcutChanged$.asObservable());__publicField(this,"_forceEscaped",!1);__publicField(this,"_disable",!1);this._commandService=_commandService,this._platformService=_platformService,this._contextService=_contextService,this._layoutService=_layoutService,this.disposeWithMe(fromGlobalEvent("keydown",e2=>{this._resolveKeyboardEvent(e2)},{capture:!0}))}setDisable(disable){this._disable=disable}getAllShortcuts(){return Array.from(this._shortCutMapping.values()).map(v2=>Array.from(v2.values())).flat()}registerShortcut(shortcut){const binding=this._getBindingFromItem(shortcut),bindingSet=this._shortCutMapping.get(binding);bindingSet?bindingSet.add(shortcut):this._shortCutMapping.set(binding,new Set([shortcut]));const commandID=shortcut.id,commandIDSet=this._commandIDMapping.get(commandID);return commandIDSet?commandIDSet.add(shortcut):this._commandIDMapping.set(commandID,new Set([shortcut])),this._emitShortcutChanged(),core.toDisposable(()=>{var _a18,_b2,_c,_d;(_a18=this._shortCutMapping.get(binding))==null||_a18.delete(shortcut),((_b2=this._shortCutMapping.get(binding))==null?void 0:_b2.size)===0&&this._shortCutMapping.delete(binding),(_c=this._commandIDMapping.get(commandID))==null||_c.delete(shortcut),((_d=this._commandIDMapping.get(commandID))==null?void 0:_d.size)===0&&this._commandIDMapping.delete(commandID),this._emitShortcutChanged()})}getShortcutDisplayOfCommand(id){const set=this._commandIDMapping.get(id);return set?this.getShortcutDisplay(set.values().next().value):null}getShortcutDisplay(shortcut){var _a18;const binding=this._getBindingFromItem(shortcut),ctrlKey=binding&MetaKeys.CTRL_COMMAND,shiftKey=binding&MetaKeys.SHIFT,altKey=binding&MetaKeys.ALT,macCtrl=binding&MetaKeys.MAC_CTRL,body=(_a18=KeyCodeToChar[binding&255])!=null?_a18:"<->";return this._platformService.isMac?`${ctrlKey?"⌘":""}${shiftKey?"⇧":""}${altKey?"⌥":""}${macCtrl?"⌃":""}${body}`:`${ctrlKey?"Ctrl+":""}${shiftKey?"Shift+":""}${altKey?"Alt+":""}${body}`}_emitShortcutChanged(){this._shortcutChanged$.next()}forceEscape(){return this._forceEscaped=!0,core.toDisposable(()=>this._forceEscaped=!1)}_resolveKeyboardEvent(e2){if(this._forceEscaped||this._disable||this._layoutService&&!this._layoutService.checkElementInCurrentContainers(e2.target))return;this._dispatch(e2)&&e2.preventDefault()}_dispatch(e2){const binding=this._deriveBindingFromEvent(e2);if(binding===null)return!1;const shortcuts=this._shortCutMapping.get(binding);if(shortcuts===void 0)return!1;const shouldTrigger=Array.from(shortcuts).sort((s1,s2)=>{var _a18,_b2;return((_a18=s2.priority)!=null?_a18:0)-((_b2=s1.priority)!=null?_b2:0)}).find(s=>{var _a18,_b2;return(_b2=(_a18=s.preconditions)==null?void 0:_a18.call(s,this._contextService))!=null?_b2:!0});return shouldTrigger?(this._commandService.executeCommand(shouldTrigger.id,shouldTrigger.staticParameters),!0):!1}_getBindingFromItem(item){return this._platformService.isMac&&item.mac?item.mac:this._platformService.isWindows&&item.win?item.win:this._platformService.isLinux&&item.linux?item.linux:item.binding}_deriveBindingFromEvent(e2){const{shiftKey,metaKey,altKey,keyCode}=e2;let binding=keyCode;return shiftKey&&(binding|=MetaKeys.SHIFT),altKey&&(binding|=MetaKeys.ALT),(this._platformService.isMac?metaKey:e2.ctrlKey)&&(binding|=MetaKeys.CTRL_COMMAND),this._platformService.isMac&&e2.ctrlKey&&(binding|=MetaKeys.MAC_CTRL),binding}},__name(_a2,"ShortcutService"),_a2);exports.ShortcutService=__decorateClass$f([__decorateParam$f(0,core.ICommandService),__decorateParam$f(1,IPlatformService),__decorateParam$f(2,core.IContextService),__decorateParam$f(3,core.Optional(ILayoutService))],exports.ShortcutService);function mergeMenuConfigs(baseConfig,additionalConfig){return!additionalConfig||!baseConfig||(["group","type","icon","title","tooltip","positions"].forEach(prop=>{additionalConfig[prop]!==void 0&&(baseConfig[prop]=additionalConfig[prop])}),["hidden","disabled","activated"].forEach(prop=>{updateReactiveProperty(baseConfig,`${prop}$`,additionalConfig[prop])})),baseConfig}__name(mergeMenuConfigs,"mergeMenuConfigs");function updateReactiveProperty(baseConfig,key,value){if(value!==void 0&&baseConfig[key]){const subject$=baseConfig[key].pipe(rxjs.switchMap(()=>new rxjs.BehaviorSubject(value)));baseConfig[key]=subject$}}__name(updateReactiveProperty,"updateReactiveProperty");var __defProp$e=Object.defineProperty,__getOwnPropDesc$e=Object.getOwnPropertyDescriptor,__decorateClass$e=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$e(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$e(target,key,result),result},"__decorateClass$e"),__decorateParam$e=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$e");const IMenuService=core.createIdentifier("univer.menu-service");var _a3;exports.MenuService=(_a3=class extends core.Disposable{constructor(_shortcutService){super();__publicField(this,"_menuItemMap",new Map);__publicField(this,"_menuByPositions",new Map);__publicField(this,"_menuConfigs",new Map);__publicField(this,"_menuChanged$",new rxjs.BehaviorSubject(void 0));__publicField(this,"menuChanged$",this._menuChanged$.asObservable());this._shortcutService=_shortcutService}dispose(){this._menuItemMap.clear(),this._menuChanged$.complete()}addMenuItem(item,config){if(this._menuItemMap.has(item.id))throw new Error(`Menu item with the same id ${item.id} has already been added!`);const menuItemConfig=config==null?void 0:config[item.id];return this._menuItemMap.set(item.id,mergeMenuConfigs(item,menuItemConfig)),Array.isArray(item.positions)?item.positions.forEach(menu=>this._appendMenuToPosition(item,menu)):this._appendMenuToPosition(item,item.positions),this._menuChanged$.next(),core.toDisposable(()=>{if(this._menuItemMap.delete(item.id),Array.isArray(item.positions))item.positions.forEach(menu=>{const menus=this._menuByPositions.get(menu);if(!menus)return;const index=menus.findIndex(m2=>m2[0]===item.id);index>-1&&menus.splice(index,1)});else{const menus=this._menuByPositions.get(item.positions);if(!menus)return;const index=menus.findIndex(m2=>m2[0]===item.id);index>-1&&menus.splice(index,1)}this._menuChanged$.next()})}getMenuItems(positions){if(this._menuByPositions.has(positions)){const menuItems=this._menuByPositions.get(positions);if(menuItems)return[...menuItems.values()].map(menu=>this._getDisplayMenuItems(menu[1]))}return[]}setMenuItem(item){this._menuItemMap.set(item.id,item),Array.isArray(item.positions)?item.positions.forEach(menu=>this._updateMenuItems(item,menu)):this._updateMenuItems(item,item.positions),this._menuChanged$.next()}getMenuItem(id){return this._menuItemMap.has(id)?this._menuItemMap.get(id):null}setMenuConfigs(id,config){this._menuConfigs.set(id,config)}getMenuConfig(id){return this._menuConfigs.has(id)?this._menuConfigs.get(id):null}_getDisplayMenuItems(menuItem){const shortcut=this._shortcutService.getShortcutDisplayOfCommand(menuItem.id);return shortcut?{...menuItem,shortcut}:menuItem}_appendMenuToPosition(menu,position){this._menuByPositions.has(position)||this._menuByPositions.set(position,[]);const menuList=this._menuByPositions.get(position);if(menuList.findIndex(m2=>m2[0]===menu.id)>-1)throw new Error(`Menu item with the same id ${menu.id} has already been added!`);menuList.push([menu.id,menu])}_updateMenuItems(menu,position){this._menuByPositions.has(position)||this._menuByPositions.set(position,[]);const menuList=this._menuByPositions.get(position),index=menuList.findIndex(m2=>m2[0]===menu.id);index>-1?menuList[index]=[menu.id,menu]:menuList.push([menu.id,menu])}},__name(_a3,"MenuService"),_a3);exports.MenuService=__decorateClass$e([__decorateParam$e(0,IShortcutService)],exports.MenuService);const SetEditorResizeOperation={id:"sheet.operation.set-editor-resize",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>!0,"handler")};var MenuPosition=(MenuPosition2=>(MenuPosition2.VOID="void",MenuPosition2.TOOLBAR_START="uiToolbar.start",MenuPosition2.TOOLBAR_INSERT="uiToolbar.insert",MenuPosition2.TOOLBAR_FORMULAS="uiToolbar.formulas",MenuPosition2.TOOLBAR_DATA="uiToolbar.data",MenuPosition2.TOOLBAR_VIEW="uiToolbar.view",MenuPosition2.TOOLBAR_OTHERS="uiToolbar.others",MenuPosition2.CONTEXT_MENU="contextMenu",MenuPosition2))(MenuPosition||{}),MenuGroup=(MenuGroup2=>(MenuGroup2[MenuGroup2.TOOLBAR_HISTORY=0]="TOOLBAR_HISTORY",MenuGroup2[MenuGroup2.TOOLBAR_FORMAT=1]="TOOLBAR_FORMAT",MenuGroup2[MenuGroup2.TOOLBAR_LAYOUT=2]="TOOLBAR_LAYOUT",MenuGroup2[MenuGroup2.TOOLBAR_FORMULAS_INSERT=3]="TOOLBAR_FORMULAS_INSERT",MenuGroup2[MenuGroup2.TOOLBAR_FORMULAS_VIEW=4]="TOOLBAR_FORMULAS_VIEW",MenuGroup2[MenuGroup2.TOOLBAR_FILE=5]="TOOLBAR_FILE",MenuGroup2[MenuGroup2.TOOLBAR_OTHERS=6]="TOOLBAR_OTHERS",MenuGroup2[MenuGroup2.CONTEXT_MENU_FORMAT=7]="CONTEXT_MENU_FORMAT",MenuGroup2[MenuGroup2.CONTEXT_MENU_LAYOUT=8]="CONTEXT_MENU_LAYOUT",MenuGroup2[MenuGroup2.CONTEXT_MENU_DATA=9]="CONTEXT_MENU_DATA",MenuGroup2[MenuGroup2.CONTEXT_MENU_OTHERS=10]="CONTEXT_MENU_OTHERS",MenuGroup2))(MenuGroup||{}),MenuItemType=(MenuItemType2=>(MenuItemType2[MenuItemType2.BUTTON=0]="BUTTON",MenuItemType2[MenuItemType2.SELECTOR=1]="SELECTOR",MenuItemType2[MenuItemType2.BUTTON_SELECTOR=2]="BUTTON_SELECTOR",MenuItemType2[MenuItemType2.SUBITEMS=3]="SUBITEMS",MenuItemType2))(MenuItemType||{});function UndoMenuItemFactory(accessor){const undoRedoService=accessor.get(core.IUndoRedoService);return{id:core.UndoCommand.id,group:MenuGroup.TOOLBAR_HISTORY,type:MenuItemType.BUTTON,icon:"UndoSingle",title:"Undo",tooltip:"toolbar.undo",positions:[MenuPosition.TOOLBAR_START],disabled$:undoRedoService.undoRedoStatus$.pipe(operators.map(v2=>v2.undos<=0))}}__name(UndoMenuItemFactory,"UndoMenuItemFactory");function RedoMenuItemFactory(accessor){const undoRedoService=accessor.get(core.IUndoRedoService);return{id:core.RedoCommand.id,group:MenuGroup.TOOLBAR_HISTORY,type:MenuItemType.BUTTON,icon:"RedoSingle",title:"Redo",tooltip:"toolbar.redo",positions:[MenuPosition.TOOLBAR_START],disabled$:undoRedoService.undoRedoStatus$.pipe(operators.map(v2=>v2.redos<=0))}}__name(RedoMenuItemFactory,"RedoMenuItemFactory");var __defProp$d=Object.defineProperty,__getOwnPropDesc$d=Object.getOwnPropertyDescriptor,__decorateClass$d=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$d(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$d(target,key,result),result},"__decorateClass$d"),__decorateParam$d=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$d");function whenEditorFocused(contextService){return contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)}__name(whenEditorFocused,"whenEditorFocused");const CopyShortcutItem={id:CopyCommand.id,description:"shortcut.copy",group:"1_common-edit",binding:KeyCode$1.C|MetaKeys.CTRL_COMMAND,preconditions:whenEditorFocused},CutShortcutItem={id:CutCommand.id,description:"shortcut.cut",group:"1_common-edit",binding:KeyCode$1.X|MetaKeys.CTRL_COMMAND,preconditions:whenEditorFocused},OnlyDisplayPasteShortcutItem={id:PasteCommand.id,description:"shortcut.paste",group:"1_common-edit",binding:KeyCode$1.V|MetaKeys.CTRL_COMMAND,preconditions:__name(()=>!1,"preconditions")},UndoShortcutItem={id:core.UndoCommand.id,description:"shortcut.undo",group:"1_common-edit",binding:KeyCode$1.Z|MetaKeys.CTRL_COMMAND,preconditions:whenEditorFocused},RedoShortcutItem={id:core.RedoCommand.id,description:"shortcut.redo",group:"1_common-edit",binding:KeyCode$1.Y|MetaKeys.CTRL_COMMAND,preconditions:whenEditorFocused};var _a4;exports.SharedController=(_a4=class extends core.Disposable{constructor(_config,_injector,_menuService,_shortcutService,_commandService){super(),this._config=_config,this._injector=_injector,this._menuService=_menuService,this._shortcutService=_shortcutService,this._commandService=_commandService,this.initialize()}initialize(){this._registerCommands(),this._registerShortcuts(),this._registerMenus()}_registerMenus(){var _a18,_b2;const menu=(_b2=(_a18=this._config)==null?void 0:_a18.menu)!=null?_b2:{};[UndoMenuItemFactory,RedoMenuItemFactory].forEach(factory=>{this.disposeWithMe(this._menuService.addMenuItem(this._injector.invoke(factory),menu))})}_registerCommands(){[CutCommand,CopyCommand,PasteCommand,SetEditorResizeOperation].forEach(command=>this.disposeWithMe(this._commandService.registerMultipleCommand(command)))}_registerShortcuts(){const shortcutItems=[UndoShortcutItem,RedoShortcutItem];shortcutItems.push(CutShortcutItem,CopyShortcutItem,OnlyDisplayPasteShortcutItem),shortcutItems.forEach(shortcut=>this.disposeWithMe(this._shortcutService.registerShortcut(shortcut)))}},__name(_a4,"SharedController"),_a4);exports.SharedController=__decorateClass$d([core.OnLifecycle(core.LifecycleStages.Ready,exports.SharedController),__decorateParam$d(1,core.Inject(core.Injector)),__decorateParam$d(2,IMenuService),__decorateParam$d(3,IShortcutService),__decorateParam$d(4,core.ICommandService)],exports.SharedController);const IUIController=core.createIdentifier("univer.ui.ui-controller");core.runOnLifecycle(core.LifecycleStages.Ready,IUIController);const UI_CONFIG_KEY="UNIVER_UI_CONFIG_KEY";var render$1={},interopRequireWildcard={exports:{}},_typeof$1={exports:{}};(function(module2){function _typeof3(o){"@babel/helpers - typeof";return module2.exports=_typeof3=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(o2){return typeof o2}:function(o2){return o2&&typeof Symbol=="function"&&o2.constructor===Symbol&&o2!==Symbol.prototype?"symbol":typeof o2},module2.exports.__esModule=!0,module2.exports.default=module2.exports,_typeof3(o)}__name(_typeof3,"_typeof"),module2.exports=_typeof3,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(_typeof$1);var _typeofExports=_typeof$1.exports;(function(module2){var _typeof3=_typeofExports.default;function _getRequireWildcardCache(e2){if(typeof WeakMap!="function")return null;var r=new WeakMap,t2=new WeakMap;return(_getRequireWildcardCache=__name(function(e3){return e3?t2:r},"_getRequireWildcardCache"))(e2)}__name(_getRequireWildcardCache,"_getRequireWildcardCache");function _interopRequireWildcard2(e2,r){if(!r&&e2&&e2.__esModule)return e2;if(e2===null||_typeof3(e2)!="object"&&typeof e2!="function")return{default:e2};var t2=_getRequireWildcardCache(r);if(t2&&t2.has(e2))return t2.get(e2);var n2={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u2 in e2)if(u2!=="default"&&{}.hasOwnProperty.call(e2,u2)){var i=a?Object.getOwnPropertyDescriptor(e2,u2):null;i&&(i.get||i.set)?Object.defineProperty(n2,u2,i):n2[u2]=e2[u2]}return n2.default=e2,t2&&t2.set(e2,n2),n2}__name(_interopRequireWildcard2,"_interopRequireWildcard"),module2.exports=_interopRequireWildcard2,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(interopRequireWildcard);var interopRequireWildcardExports=interopRequireWildcard.exports,interopRequireDefault={exports:{}};(function(module2){function _interopRequireDefault2(e2){return e2&&e2.__esModule?e2:{default:e2}}__name(_interopRequireDefault2,"_interopRequireDefault"),module2.exports=_interopRequireDefault2,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(interopRequireDefault);var interopRequireDefaultExports=interopRequireDefault.exports,regeneratorRuntime={exports:{}};(function(module2){var _typeof3=_typeofExports.default;function _regeneratorRuntime(){module2.exports=_regeneratorRuntime=__name(function(){return e2},"_regeneratorRuntime"),module2.exports.__esModule=!0,module2.exports.default=module2.exports;var t2,e2={},r=Object.prototype,n2=r.hasOwnProperty,o=Object.defineProperty||function(t3,e3,r2){t3[e3]=r2.value},i=typeof Symbol=="function"?Symbol:{},a=i.iterator||"@@iterator",c2=i.asyncIterator||"@@asyncIterator",u2=i.toStringTag||"@@toStringTag";function define(t3,e3,r2){return Object.defineProperty(t3,e3,{value:r2,enumerable:!0,configurable:!0,writable:!0}),t3[e3]}__name(define,"define");try{define({},"")}catch{define=__name(function(t4,e3,r2){return t4[e3]=r2},"define")}function wrap(t3,e3,r2,n3){var i2=e3&&e3.prototype instanceof Generator?e3:Generator,a2=Object.create(i2.prototype),c3=new Context2(n3||[]);return o(a2,"_invoke",{value:makeInvokeMethod(t3,r2,c3)}),a2}__name(wrap,"wrap");function tryCatch(t3,e3,r2){try{return{type:"normal",arg:t3.call(e3,r2)}}catch(t4){return{type:"throw",arg:t4}}}__name(tryCatch,"tryCatch"),e2.wrap=wrap;var h2="suspendedStart",l2="suspendedYield",f2="executing",s="completed",y={};function Generator(){}__name(Generator,"Generator");function GeneratorFunction(){}__name(GeneratorFunction,"GeneratorFunction");function GeneratorFunctionPrototype(){}__name(GeneratorFunctionPrototype,"GeneratorFunctionPrototype");var p2={};define(p2,a,function(){return this});var d2=Object.getPrototypeOf,v2=d2&&d2(d2(values([])));v2&&v2!==r&&n2.call(v2,a)&&(p2=v2);var g2=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(p2);function defineIteratorMethods(t3){["next","throw","return"].forEach(function(e3){define(t3,e3,function(t4){return this._invoke(e3,t4)})})}__name(defineIteratorMethods,"defineIteratorMethods");function AsyncIterator(t3,e3){function invoke(r3,o2,i2,a2){var c3=tryCatch(t3[r3],t3,o2);if(c3.type!=="throw"){var u3=c3.arg,h3=u3.value;return h3&&_typeof3(h3)=="object"&&n2.call(h3,"__await")?e3.resolve(h3.__await).then(function(t4){invoke("next",t4,i2,a2)},function(t4){invoke("throw",t4,i2,a2)}):e3.resolve(h3).then(function(t4){u3.value=t4,i2(u3)},function(t4){return invoke("throw",t4,i2,a2)})}a2(c3.arg)}__name(invoke,"invoke");var r2;o(this,"_invoke",{value:__name(function(t4,n3){function callInvokeWithMethodAndArg(){return new e3(function(e4,r3){invoke(t4,n3,e4,r3)})}return __name(callInvokeWithMethodAndArg,"callInvokeWithMethodAndArg"),r2=r2?r2.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()},"value")})}__name(AsyncIterator,"AsyncIterator");function makeInvokeMethod(e3,r2,n3){var o2=h2;return function(i2,a2){if(o2===f2)throw Error("Generator is already running");if(o2===s){if(i2==="throw")throw a2;return{value:t2,done:!0}}for(n3.method=i2,n3.arg=a2;;){var c3=n3.delegate;if(c3){var u3=maybeInvokeDelegate(c3,n3);if(u3){if(u3===y)continue;return u3}}if(n3.method==="next")n3.sent=n3._sent=n3.arg;else if(n3.method==="throw"){if(o2===h2)throw o2=s,n3.arg;n3.dispatchException(n3.arg)}else n3.method==="return"&&n3.abrupt("return",n3.arg);o2=f2;var p3=tryCatch(e3,r2,n3);if(p3.type==="normal"){if(o2=n3.done?s:l2,p3.arg===y)continue;return{value:p3.arg,done:n3.done}}p3.type==="throw"&&(o2=s,n3.method="throw",n3.arg=p3.arg)}}}__name(makeInvokeMethod,"makeInvokeMethod");function maybeInvokeDelegate(e3,r2){var n3=r2.method,o2=e3.iterator[n3];if(o2===t2)return r2.delegate=null,n3==="throw"&&e3.iterator.return&&(r2.method="return",r2.arg=t2,maybeInvokeDelegate(e3,r2),r2.method==="throw")||n3!=="return"&&(r2.method="throw",r2.arg=new TypeError("The iterator does not provide a '"+n3+"' method")),y;var i2=tryCatch(o2,e3.iterator,r2.arg);if(i2.type==="throw")return r2.method="throw",r2.arg=i2.arg,r2.delegate=null,y;var a2=i2.arg;return a2?a2.done?(r2[e3.resultName]=a2.value,r2.next=e3.nextLoc,r2.method!=="return"&&(r2.method="next",r2.arg=t2),r2.delegate=null,y):a2:(r2.method="throw",r2.arg=new TypeError("iterator result is not an object"),r2.delegate=null,y)}__name(maybeInvokeDelegate,"maybeInvokeDelegate");function pushTryEntry(t3){var e3={tryLoc:t3[0]};1 in t3&&(e3.catchLoc=t3[1]),2 in t3&&(e3.finallyLoc=t3[2],e3.afterLoc=t3[3]),this.tryEntries.push(e3)}__name(pushTryEntry,"pushTryEntry");function resetTryEntry(t3){var e3=t3.completion||{};e3.type="normal",delete e3.arg,t3.completion=e3}__name(resetTryEntry,"resetTryEntry");function Context2(t3){this.tryEntries=[{tryLoc:"root"}],t3.forEach(pushTryEntry,this),this.reset(!0)}__name(Context2,"Context");function values(e3){if(e3||e3===""){var r2=e3[a];if(r2)return r2.call(e3);if(typeof e3.next=="function")return e3;if(!isNaN(e3.length)){var o2=-1,i2=__name(function next(){for(;++o2<e3.length;)if(n2.call(e3,o2))return next.value=e3[o2],next.done=!1,next;return next.value=t2,next.done=!0,next},"next");return i2.next=i2}}throw new TypeError(_typeof3(e3)+" is not iterable")}return __name(values,"values"),GeneratorFunction.prototype=GeneratorFunctionPrototype,o(g2,"constructor",{value:GeneratorFunctionPrototype,configurable:!0}),o(GeneratorFunctionPrototype,"constructor",{value:GeneratorFunction,configurable:!0}),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,u2,"GeneratorFunction"),e2.isGeneratorFunction=function(t3){var e3=typeof t3=="function"&&t3.constructor;return!!e3&&(e3===GeneratorFunction||(e3.displayName||e3.name)==="GeneratorFunction")},e2.mark=function(t3){return Object.setPrototypeOf?Object.setPrototypeOf(t3,GeneratorFunctionPrototype):(t3.__proto__=GeneratorFunctionPrototype,define(t3,u2,"GeneratorFunction")),t3.prototype=Object.create(g2),t3},e2.awrap=function(t3){return{__await:t3}},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,c2,function(){return this}),e2.AsyncIterator=AsyncIterator,e2.async=function(t3,r2,n3,o2,i2){i2===void 0&&(i2=Promise);var a2=new AsyncIterator(wrap(t3,r2,n3,o2),i2);return e2.isGeneratorFunction(r2)?a2:a2.next().then(function(t4){return t4.done?t4.value:a2.next()})},defineIteratorMethods(g2),define(g2,u2,"Generator"),define(g2,a,function(){return this}),define(g2,"toString",function(){return"[object Generator]"}),e2.keys=function(t3){var e3=Object(t3),r2=[];for(var n3 in e3)r2.push(n3);return r2.reverse(),__name(function next(){for(;r2.length;){var t4=r2.pop();if(t4 in e3)return next.value=t4,next.done=!1,next}return next.done=!0,next},"next")},e2.values=values,Context2.prototype={constructor:Context2,reset:__name(function(e3){if(this.prev=0,this.next=0,this.sent=this._sent=t2,this.done=!1,this.delegate=null,this.method="next",this.arg=t2,this.tryEntries.forEach(resetTryEntry),!e3)for(var r2 in this)r2.charAt(0)==="t"&&n2.call(this,r2)&&!isNaN(+r2.slice(1))&&(this[r2]=t2)},"reset"),stop:__name(function(){this.done=!0;var t3=this.tryEntries[0].completion;if(t3.type==="throw")throw t3.arg;return this.rval},"stop"),dispatchException:__name(function(e3){if(this.done)throw e3;var r2=this;function handle(n3,o3){return a2.type="throw",a2.arg=e3,r2.next=n3,o3&&(r2.method="next",r2.arg=t2),!!o3}__name(handle,"handle");for(var o2=this.tryEntries.length-1;o2>=0;--o2){var i2=this.tryEntries[o2],a2=i2.completion;if(i2.tryLoc==="root")return handle("end");if(i2.tryLoc<=this.prev){var c3=n2.call(i2,"catchLoc"),u3=n2.call(i2,"finallyLoc");if(c3&&u3){if(this.prev<i2.catchLoc)return handle(i2.catchLoc,!0);if(this.prev<i2.finallyLoc)return handle(i2.finallyLoc)}else if(c3){if(this.prev<i2.catchLoc)return handle(i2.catchLoc,!0)}else{if(!u3)throw Error("try statement without catch or finally");if(this.prev<i2.finallyLoc)return handle(i2.finallyLoc)}}}},"dispatchException"),abrupt:__name(function(t3,e3){for(var r2=this.tryEntries.length-1;r2>=0;--r2){var o2=this.tryEntries[r2];if(o2.tryLoc<=this.prev&&n2.call(o2,"finallyLoc")&&this.prev<o2.finallyLoc){var i2=o2;break}}i2&&(t3==="break"||t3==="continue")&&i2.tryLoc<=e3&&e3<=i2.finallyLoc&&(i2=null);var a2=i2?i2.completion:{};return a2.type=t3,a2.arg=e3,i2?(this.method="next",this.next=i2.finallyLoc,y):this.complete(a2)},"abrupt"),complete:__name(function(t3,e3){if(t3.type==="throw")throw t3.arg;return t3.type==="break"||t3.type==="continue"?this.next=t3.arg:t3.type==="return"?(this.rval=this.arg=t3.arg,this.method="return",this.next="end"):t3.type==="normal"&&e3&&(this.next=e3),y},"complete"),finish:__name(function(t3){for(var e3=this.tryEntries.length-1;e3>=0;--e3){var r2=this.tryEntries[e3];if(r2.finallyLoc===t3)return this.complete(r2.completion,r2.afterLoc),resetTryEntry(r2),y}},"finish"),catch:__name(function(t3){for(var e3=this.tryEntries.length-1;e3>=0;--e3){var r2=this.tryEntries[e3];if(r2.tryLoc===t3){var n3=r2.completion;if(n3.type==="throw"){var o2=n3.arg;resetTryEntry(r2)}return o2}}throw Error("illegal catch attempt")},"_catch"),delegateYield:__name(function(e3,r2,n3){return this.delegate={iterator:values(e3),resultName:r2,nextLoc:n3},this.method==="next"&&(this.arg=t2),y},"delegateYield")},e2}__name(_regeneratorRuntime,"_regeneratorRuntime"),module2.exports=_regeneratorRuntime,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(regeneratorRuntime);var regeneratorRuntimeExports=regeneratorRuntime.exports,asyncToGenerator={exports:{}};(function(module2){function asyncGeneratorStep(n2,t2,e2,r,o,a,c2){try{var i=n2[a](c2),u2=i.value}catch(n3){return void e2(n3)}i.done?t2(u2):Promise.resolve(u2).then(r,o)}__name(asyncGeneratorStep,"asyncGeneratorStep");function _asyncToGenerator(n2){return function(){var t2=this,e2=arguments;return new Promise(function(r,o){var a=n2.apply(t2,e2);function _next(n3){asyncGeneratorStep(a,r,o,_next,_throw,"next",n3)}__name(_next,"_next");function _throw(n3){asyncGeneratorStep(a,r,o,_next,_throw,"throw",n3)}__name(_throw,"_throw"),_next(void 0)})}}__name(_asyncToGenerator,"_asyncToGenerator"),module2.exports=_asyncToGenerator,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(asyncToGenerator);var asyncToGeneratorExports=asyncToGenerator.exports,objectSpread2={exports:{}},defineProperty={exports:{}},toPropertyKey$1={exports:{}},toPrimitive$1={exports:{}};(function(module2){var _typeof3=_typeofExports.default;function toPrimitive2(t2,r){if(_typeof3(t2)!="object"||!t2)return t2;var e2=t2[Symbol.toPrimitive];if(e2!==void 0){var i=e2.call(t2,r||"default");if(_typeof3(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(t2)}__name(toPrimitive2,"toPrimitive"),module2.exports=toPrimitive2,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(toPrimitive$1);var toPrimitiveExports=toPrimitive$1.exports;(function(module2){var _typeof3=_typeofExports.default,toPrimitive2=toPrimitiveExports;function toPropertyKey2(t2){var i=toPrimitive2(t2,"string");return _typeof3(i)=="symbol"?i:i+""}__name(toPropertyKey2,"toPropertyKey"),module2.exports=toPropertyKey2,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(toPropertyKey$1);var toPropertyKeyExports=toPropertyKey$1.exports;(function(module2){var toPropertyKey2=toPropertyKeyExports;function _defineProperty2(e2,r,t2){return(r=toPropertyKey2(r))in e2?Object.defineProperty(e2,r,{value:t2,enumerable:!0,configurable:!0,writable:!0}):e2[r]=t2,e2}__name(_defineProperty2,"_defineProperty"),module2.exports=_defineProperty2,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(defineProperty);var definePropertyExports=defineProperty.exports;(function(module2){var defineProperty2=definePropertyExports;function ownKeys2(e2,r){var t2=Object.keys(e2);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e2);r&&(o=o.filter(function(r2){return Object.getOwnPropertyDescriptor(e2,r2).enumerable})),t2.push.apply(t2,o)}return t2}__name(ownKeys2,"ownKeys");function _objectSpread22(e2){for(var r=1;r<arguments.length;r++){var t2=arguments[r]!=null?arguments[r]:{};r%2?ownKeys2(Object(t2),!0).forEach(function(r2){defineProperty2(e2,r2,t2[r2])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e2,Object.getOwnPropertyDescriptors(t2)):ownKeys2(Object(t2)).forEach(function(r2){Object.defineProperty(e2,r2,Object.getOwnPropertyDescriptor(t2,r2))})}return e2}__name(_objectSpread22,"_objectSpread2"),module2.exports=_objectSpread22,module2.exports.__esModule=!0,module2.exports.default=module2.exports})(objectSpread2);var objectSpread2Exports=objectSpread2.exports,_interopRequireWildcard=interopRequireWildcardExports.default,_interopRequireDefault=interopRequireDefaultExports.default;Object.defineProperty(render$1,"__esModule",{value:!0});render$1._r=_r;render$1._u=_u;var render_2=render$1.render=render,unmount_1=render$1.unmount=unmount,_regeneratorRuntime2=_interopRequireDefault(regeneratorRuntimeExports),_asyncToGenerator2=_interopRequireDefault(asyncToGeneratorExports),_typeof2=_interopRequireDefault(_typeofExports),_objectSpread2$1=_interopRequireDefault(objectSpread2Exports),ReactDOM=_interopRequireWildcard(ReactDOM$1),fullClone=(0,_objectSpread2$1.default)({},ReactDOM),version=fullClone.version,reactRender=fullClone.render,unmountComponentAtNode=fullClone.unmountComponentAtNode,createRoot;try{var mainVersion=Number((version||"").split(".")[0]);mainVersion>=18&&(createRoot=fullClone.createRoot)}catch{}function toggleWarning(skip){var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED&&(0,_typeof2.default)(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)==="object"&&(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint=skip)}__name(toggleWarning,"toggleWarning");var MARK="__rc_react_root__";function modernRender(node,container){toggleWarning(!0);var root=container[MARK]||createRoot(container);toggleWarning(!1),root.render(node),container[MARK]=root}__name(modernRender,"modernRender");function legacyRender(node,container){reactRender(node,container)}__name(legacyRender,"legacyRender");function _r(node,container){}__name(_r,"_r");function render(node,container){if(createRoot){modernRender(node,container);return}legacyRender(node,container)}__name(render,"render");function modernUnmount(_x){return _modernUnmount.apply(this,arguments)}__name(modernUnmount,"modernUnmount");function _modernUnmount(){return _modernUnmount=(0,_asyncToGenerator2.default)((0,_regeneratorRuntime2.default)().mark(__name(function _callee(container){return(0,_regeneratorRuntime2.default)().wrap(__name(function(_context){for(;;)switch(_context.prev=_context.next){case 0:return _context.abrupt("return",Promise.resolve().then(function(){var _container$MARK;(_container$MARK=container[MARK])===null||_container$MARK===void 0||_container$MARK.unmount(),delete container[MARK]}));case 1:case"end":return _context.stop()}},"_callee$"),_callee)},"_callee"))),_modernUnmount.apply(this,arguments)}__name(_modernUnmount,"_modernUnmount");function legacyUnmount(container){unmountComponentAtNode(container)}__name(legacyUnmount,"legacyUnmount");function _u(container){}__name(_u,"_u");function unmount(_x2){return _unmount.apply(this,arguments)}__name(unmount,"unmount");function _unmount(){return _unmount=(0,_asyncToGenerator2.default)((0,_regeneratorRuntime2.default)().mark(__name(function _callee2(container){return(0,_regeneratorRuntime2.default)().wrap(__name(function(_context2){for(;;)switch(_context2.prev=_context2.next){case 0:if(createRoot===void 0){_context2.next=2;break}return _context2.abrupt("return",modernUnmount(container));case 2:legacyUnmount(container);case 3:case"end":return _context2.stop()}},"_callee2$"),_callee2)},"_callee2"))),_unmount.apply(this,arguments)}__name(_unmount,"_unmount");var BuiltInUIPart=(BuiltInUIPart2=>(BuiltInUIPart2.GLOBAL="global",BuiltInUIPart2.HEADER="header",BuiltInUIPart2.HEADER_MENU="header-menu",BuiltInUIPart2.CONTENT="content",BuiltInUIPart2.FOOTER="footer",BuiltInUIPart2.LEFT_SIDEBAR="left-sidebar",BuiltInUIPart2.FLOATING="floating",BuiltInUIPart2))(BuiltInUIPart||{});const IUIPartsService=core.createIdentifier("ui.parts.service"),_UIPartsService=class _UIPartsService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_componentsByPart",new Map);__publicField(this,"_componentRegistered$",new rxjs.Subject);__publicField(this,"componentRegistered$",this._componentRegistered$.asObservable())}dispose(){super.dispose(),this._componentRegistered$.complete()}registerComponent(part,componentFactory){const componentType=componentFactory(),components=(this._componentsByPart.get(part)||this._componentsByPart.set(part,new Set).get(part)).add(componentType);return this._componentRegistered$.next(part),core.toDisposable(()=>{components.delete(componentType),components.size===0&&this._componentsByPart.delete(part),this._componentRegistered$.next(part)})}getComponents(part){return new Set([...this._componentsByPart.get(part)||new Set])}};__name(_UIPartsService,"UIPartsService");let UIPartsService=_UIPartsService;const ICanvasPopupService=core.createIdentifier("ui.popup.service"),_CanvasPopupService=class _CanvasPopupService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_popupMap",new Map);__publicField(this,"_popups$",new rxjs.BehaviorSubject([]));__publicField(this,"popups$",this._popups$.asObservable())}get popups(){return Array.from(this._popupMap.entries())}_update(){this._popups$.next(Array.from(this._popupMap.entries()))}dispose(){super.dispose(),this._popups$.next([]),this._popups$.complete(),this._popupMap.clear()}addPopup(item){const id=core.Tools.generateRandomId();return this._popupMap.set(id,item),this._update(),id}removePopup(id){this._popupMap.delete(id)&&this._update()}removeAll(){this._popupMap.clear(),this._update()}};__name(_CanvasPopupService,"CanvasPopupService");let CanvasPopupService=_CanvasPopupService;const SingleCanvasPopup=__name(({popup,children})=>{const[hidden,setHidden]=React.useState(!1),anchorRect$=React.useMemo(()=>popup.anchorRect$.pipe(rxjs.throttleTime(16)),[popup.anchorRect$]),excludeRects$=React.useMemo(()=>{var _a18;return(_a18=popup.excludeRects$)==null?void 0:_a18.pipe(rxjs.throttleTime(16))},[popup.excludeRects$]),anchorRect=useObservable(anchorRect$,popup.anchorRect),excludeRects=useObservable(excludeRects$,popup.excludeRects),{bottom,left,right,top}=anchorRect,{offset,canvasElement,hideOnInvisible=!0}=popup,rectWithOffset=React.useMemo(()=>{const[x=0,y=0]=offset!=null?offset:[];return{left:left-x,right:right+x,top:top-y,bottom:bottom+y}},[bottom,left,right,top,offset]);return React.useEffect(()=>{if(!hideOnInvisible)return;const rect=canvasElement.getBoundingClientRect(),{top:top2,left:left2,bottom:bottom2,right:right2}=rect;rectWithOffset.bottom<top2||rectWithOffset.top>bottom2||rectWithOffset.right<left2||rectWithOffset.left>right2?setHidden(!0):setHidden(!1)},[rectWithOffset,canvasElement,hideOnInvisible]),hidden?null:jsxRuntimeExports.jsx(design.RectPopup,{anchorRect:rectWithOffset,direction:popup.direction,onClickOutside:popup.onClickOutside,excludeOutside:popup.excludeOutside,excludeRects,closeOnSelfTarget:popup.closeOnSelfTarget,children})},"SingleCanvasPopup");function CanvasPopup(){const popupService=core.useDependency(ICanvasPopupService),componentManager=core.useDependency(ComponentManager);return useObservable(popupService.popups$,void 0,!0).map(item=>{const[key,popup]=item,Component=componentManager.get(popup.componentKey);return jsxRuntimeExports.jsx(SingleCanvasPopup,{popup,children:Component?jsxRuntimeExports.jsx(Component,{popup}):null},key)})}__name(CanvasPopup,"CanvasPopup");const _CanvasFloatDomService=class _CanvasFloatDomService{constructor(){__publicField(this,"_domLayerMap",new Map);__publicField(this,"_domLayers$",new rxjs.BehaviorSubject([]));__publicField(this,"domLayers$",this._domLayers$.asObservable())}get domLayers(){return Array.from(this._domLayerMap.entries())}_notice(){this._domLayers$.next(Array.from(this._domLayerMap.entries()))}addFloatDom(item){this._domLayerMap.set(item.id,item),this._notice()}removeFloatDom(id){this._domLayerMap.delete(id)&&this._notice()}removeAll(){this._domLayerMap.clear(),this._notice()}};__name(_CanvasFloatDomService,"CanvasFloatDomService");let CanvasFloatDomService=_CanvasFloatDomService;const floatDomWrapper="univer-float-dom-wrapper",floatDom="univer-float-dom",styles$e={floatDomWrapper,floatDom},FloatDomSingle=React.memo(props=>{const{layer,id}=props,componentManager=core.useDependency(ComponentManager),position=useObservable(layer.position$),Component=typeof layer.componentKey=="string"?componentManager.get(layer.componentKey):layer.componentKey,layerProps={data:layer.data,...layer.props};return position?jsxRuntimeExports.jsx("div",{className:styles$e.floatDomWrapper,style:{position:"absolute",top:position.startY,left:position.startX,width:Math.max(position.endX-position.startX-2,0),height:Math.max(position.endY-position.startY-2,0),transform:`rotate(${position.rotate}deg)`,overflow:"hidden"},onPointerMove:__name(e2=>{layer.onPointerMove(e2.nativeEvent)},"onPointerMove"),onPointerDown:__name(e2=>{layer.onPointerDown(e2.nativeEvent)},"onPointerDown"),onPointerUp:__name(e2=>{layer.onPointerUp(e2.nativeEvent)},"onPointerUp"),onWheel:__name(e2=>{layer.onWheel(e2.nativeEvent)},"onWheel"),children:jsxRuntimeExports.jsx("div",{id,className:styles$e.floatDom,style:{width:position.width,height:position.height,position:"absolute",...position.absolute.left?{left:0}:{right:0},...position.absolute.top?{top:0}:{bottom:0}},children:Component?jsxRuntimeExports.jsx(Component,{...layerProps}):null})}):null}),FloatDom=__name(()=>{const domLayerService=core.useDependency(CanvasFloatDomService),layers=useObservable(domLayerService.domLayers$);return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:layers==null?void 0:layers.map(layer=>jsxRuntimeExports.jsx(FloatDomSingle,{id:layer[0],layer:layer[1]},layer[0]))})},"FloatDom"),IMessageService=core.createIdentifier("ui.message.service");function ComponentContainer(props){const{components,fallback,sharedProps}=props;return!components||components.size===0?fallback!=null?fallback:null:Array.from(components.values()).map((component,index)=>{var _a18;return React.createElement(component,{key:`${(_a18=component.displayName)!=null?_a18:index}`,...sharedProps})})}__name(ComponentContainer,"ComponentContainer");function useComponentsOfPart(part,injector){var _a18;const uiPartsService=(_a18=injector==null?void 0:injector.get(IUIPartsService))!=null?_a18:core.useDependency(IUIPartsService),updateCounterRef=React.useRef(0),componentPartUpdateCount=useObservable(()=>uiPartsService.componentRegistered$.pipe(rxjs.filter(key=>key===part),rxjs.map(()=>updateCounterRef.current+=1),rxjs.startWith(updateCounterRef.current+=1)),void 0,void 0,[uiPartsService,part]);return React.useMemo(()=>uiPartsService.getComponents(part),[componentPartUpdateCount])}__name(useComponentsOfPart,"useComponentsOfPart");const menuItemNoHover="univer-menu-item-no-hover",menuItemActive="univer-menu-item-active",menuItemActivated="univer-menu-item-activated",menuItemContent="univer-menu-item-content",menuItemSelectable="univer-menu-item-selectable",menuItemSelectableIcon="univer-menu-item-selectable-icon",menuItemMoreIcon="univer-menu-item-more-icon",styles$d={menuItemNoHover,menuItemActive,menuItemActivated,menuItemContent,menuItemSelectable,menuItemSelectableIcon,menuItemMoreIcon};function MenuWrapper(props){const{menuType,onOptionSelect}=props,menuService=core.useDependency(IMenuService);if(!menuType)return null;if(Array.isArray(menuType)){let filterData=__name(function(data){return data.map(group2=>{const filteredGroup2={};return Object.entries(group2).forEach(([key,items])=>{const hiddenObservables=items.map(item=>item.hidden$).filter(item=>!!item);rxjs.combineLatest(hiddenObservables).pipe(rxjs.map(hiddenValues=>hiddenValues.every(hidden=>hidden===!0))).subscribe(allHidden=>{allHidden||(filteredGroup2[key]=items)}).unsubscribe()}),filteredGroup2}).filter(group2=>Object.keys(group2).length>0)},"filterData");const group=menuType.map(type=>menuService.getMenuItems(type)).map(menuItems2=>menuItems2.reduce((acc,item)=>{var _a18,_b2;return item.group?(acc[item.group]=(_a18=acc[item.group])!=null?_a18:[],acc[item.group].push(item)):(acc[MenuGroup.CONTEXT_MENU_OTHERS]=(_b2=acc[MenuGroup.CONTEXT_MENU_OTHERS])!=null?_b2:[],acc[MenuGroup.CONTEXT_MENU_OTHERS].push(item)),acc},{})),filteredGroup=React.useMemo(()=>filterData(group),[group]);return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:filteredGroup.map(groupItem=>Object.keys(groupItem).map(groupKey=>jsxRuntimeExports.jsx(design.MenuItemGroup,{eventKey:groupKey,children:groupItem[groupKey].map(item=>jsxRuntimeExports.jsx(MenuItem,{menuItem:item,onClick:__name(object=>{onOptionSelect==null||onOptionSelect({value:"",label:item.id,...object})},"onClick")},item.id))},groupKey)))})}return menuService.getMenuItems(menuType).map(item=>jsxRuntimeExports.jsx(MenuItem,{menuItem:item,onClick:__name(object=>{onOptionSelect==null||onOptionSelect({value:"",label:item.id,...object})},"onClick")},item.id))}__name(MenuWrapper,"MenuWrapper");function MenuOptionsWrapper(props){var _a18;const{options,value,onOptionSelect,parentKey}=props;return(_a18=options==null?void 0:options.map((option,index)=>{var _a19,_b2,_c;const key=`${parentKey}-${(_a19=option.label)!=null?_a19:option.id}-${index}`,onChange=__name(v2=>{onOptionSelect==null||onOptionSelect({value:v2,label:option==null?void 0:option.label,commandId:option==null?void 0:option.commandId})},"onChange"),handleClick=__name(()=>{typeof option.value>"u"||onOptionSelect==null||onOptionSelect({...option})},"handleClick"),_className=clsx$1({[styles$d.menuItemNoHover]:typeof option.label!="string"&&!((_b2=option.label)!=null&&_b2.hoverable)});return jsxRuntimeExports.jsx(design.MenuItem,{disabled:option.disabled,eventKey:key,className:_className,onClick:handleClick,children:jsxRuntimeExports.jsxs("span",{className:clsx$1(styles$d.menuItemContent,{[styles$d.menuItemSelectable]:!(typeof option.label!="string"&&!((_c=option.label)!=null&&_c.hoverable))}),children:[typeof value<"u"&&String(value)===String(option.value)&&jsxRuntimeExports.jsx("span",{className:styles$d.menuItemSelectableIcon,children:jsxRuntimeExports.jsx(CheckMarkSingle,{style:{color:"rgb(var(--success-color))"}})}),jsxRuntimeExports.jsx(CustomLabel,{value$:option.value$,value:option.value,label:option.label,icon:option.icon,onChange})]})},key)}))!=null?_a18:null}__name(MenuOptionsWrapper,"MenuOptionsWrapper");const Menu=__name(props=>{const{overViewport,...restProps}=props,[menuEl,setMenuEl]=React.useState(),layoutService=core.useDependency(ILayoutService);return useScrollYOverContainer(overViewport==="scroll"?menuEl:null,layoutService.rootContainerElement),jsxRuntimeExports.jsxs(design.Menu,{ref:__name(ref=>(ref==null?void 0:ref.list)&&setMenuEl(ref.list),"ref"),selectable:!1,children:[jsxRuntimeExports.jsx(MenuOptionsWrapper,{...restProps}),jsxRuntimeExports.jsx(MenuWrapper,{...restProps})]})},"Menu");function MenuItem({menuItem,onClick}){const menuService=core.useDependency(IMenuService),disabled=useObservable(menuItem.disabled$,!1),activated=useObservable(menuItem.activated$,!1),hidden=useObservable(menuItem.hidden$,!1),value=useObservable(menuItem.value$),item=menuItem,selectionsFromObservable=useObservable(rxjs.isObservable(item.selections)?item.selections:void 0),[inputValue,setInputValue]=React.useState(value);if(hidden)return null;const onChange=__name(v2=>{const newValue=core.isRealNum(v2)&&typeof v2=="string"?Number.parseInt(v2):v2;setInputValue(newValue)},"onChange"),renderButtonType=__name(()=>{const item2=menuItem,{title,label}=item2;return jsxRuntimeExports.jsx(design.MenuItem,{eventKey:item2.id,disabled,className:clsx$1({[styles$d.menuItemActivated]:activated}),onClick:__name(()=>{onClick({commandId:item2.commandId,value:inputValue,id:item2.id})},"onClick"),children:jsxRuntimeExports.jsx("span",{className:styles$d.menuItemContent,children:jsxRuntimeExports.jsx(CustomLabel,{value,title,label,icon:item2.icon,onChange})})},item2.id)},"renderButtonType"),renderSelectorType=__name(()=>{var _a18;const selections=(_a18=selectionsFromObservable!=null?selectionsFromObservable:item.selections)!=null?_a18:[];return selections.length>0?jsxRuntimeExports.jsx(design.SubMenu,{eventKey:item.id,popupOffset:[18,0],title:jsxRuntimeExports.jsxs("span",{className:styles$d.menuItemContent,children:[jsxRuntimeExports.jsx(CustomLabel,{title:item.title,value:inputValue,onChange,icon:item.icon,label:item.label}),item.shortcut&&` (${item.shortcut})`]}),expandIcon:jsxRuntimeExports.jsx(MoreSingle,{className:styles$d.menuItemMoreIcon}),children:selections.length>0&&jsxRuntimeExports.jsx(MenuOptionsWrapper,{parentKey:item.id,menuType:item.id,options:selections,onOptionSelect:__name(v2=>{onClick({value:v2.value,id:item.id,commandId:v2.commandId})},"onOptionSelect")})},item.id):jsxRuntimeExports.jsx(design.MenuItem,{eventKey:item.id,children:jsxRuntimeExports.jsxs("span",{className:styles$d.menuItemContent,children:[jsxRuntimeExports.jsx(CustomLabel,{title:item.title,value:inputValue,icon:item.icon,label:item.label,onChange}),item.shortcut&&` (${item.shortcut})`]})},item.id)},"renderSelectorType"),subMenuItems=menuItem.id?menuService.getMenuItems(menuItem.id):[],renderSubItemsType=__name(()=>{const item2=menuItem;return jsxRuntimeExports.jsx(design.SubMenu,{eventKey:item2.id,popupOffset:[18,0],title:jsxRuntimeExports.jsx("span",{className:styles$d.menuItemContent,children:jsxRuntimeExports.jsx(CustomLabel,{title:item2.title,icon:item2.icon,label:item2.label,onChange})}),expandIcon:jsxRuntimeExports.jsx(MoreSingle,{className:styles$d.menuItemMoreIcon}),children:subMenuItems.length&&jsxRuntimeExports.jsx(MenuWrapper,{menuType:item2.id,parentKey:item2.id,onOptionSelect:onClick})},item2.id)},"renderSubItemsType");return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[menuItem.type===MenuItemType.SELECTOR&&renderSelectorType(),menuItem.type===MenuItemType.SUBITEMS&&renderSubItemsType(),menuItem.type===MenuItemType.BUTTON&&renderButtonType()]})}__name(MenuItem,"MenuItem");const IContextMenuService=core.createIdentifier("ui.contextmenu.service"),_ContextMenuService=class _ContextMenuService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_currentHandler",null);__publicField(this,"disabled",!1)}get visible(){var _a18,_b2;return(_b2=(_a18=this._currentHandler)==null?void 0:_a18.visible)!=null?_b2:!1}disable(){this.disabled=!0}enable(){this.disabled=!1}triggerContextMenu(event,menuType){var _a18;event.stopPropagation(),!this.disabled&&((_a18=this._currentHandler)==null||_a18.handleContextMenu(event,menuType))}hideContextMenu(){var _a18;(_a18=this._currentHandler)==null||_a18.hideContextMenu()}registerContextMenuHandler(handler){if(this._currentHandler)throw new Error("There is already a context menu handler!");return this._currentHandler=handler,core.toDisposable(()=>this._currentHandler=null)}};__name(_ContextMenuService,"ContextMenuService");let ContextMenuService=_ContextMenuService;function DesktopContextMenu(){const contentRef=React.useRef(null),[visible,setVisible]=React.useState(!1),[menuType,setMenuType]=React.useState(""),[offset,setOffset]=React.useState([0,0]),visibleRef=React.useRef(visible),contextMenuService=core.useDependency(IContextMenuService),commandService=core.useDependency(core.ICommandService),injector=core.useInjector();visibleRef.current=visible,React.useEffect(()=>{const disposables=contextMenuService.registerContextMenuHandler({handleContextMenu,hideContextMenu(){setVisible(!1)},get visible(){return visibleRef.current}});function handleClickOutside(event){contentRef.current&&!contentRef.current.contains(event.target)&&handleClose()}return __name(handleClickOutside,"handleClickOutside"),document.addEventListener("pointerdown",handleClickOutside),document.addEventListener("wheel",handleClose),()=>{document.removeEventListener("pointerdown",handleClickOutside),document.removeEventListener("wheel",handleClose),disposables.dispose()}},[contextMenuService]);function handleContextMenu(event,menuType2){setMenuType(menuType2),setOffset([event.clientX,event.clientY]),setVisible(!0)}__name(handleContextMenu,"handleContextMenu");function handleClose(){setVisible(!1)}return __name(handleClose,"handleClose"),jsxRuntimeExports.jsx(design.Popup,{visible,offset,children:jsxRuntimeExports.jsx("section",{ref:contentRef,children:menuType&&jsxRuntimeExports.jsx(Menu,{menuType:[menuType],onOptionSelect:__name(params=>{const{label:id,commandId,value}=params;commandService&&commandService.executeCommand(commandId!=null?commandId:id,{value}),injector.get(engineRender.ITextSelectionRenderManager).focus(),setVisible(!1)},"onOptionSelect")})})})}__name(DesktopContextMenu,"DesktopContextMenu");const toolbarBtn="univer-toolbar-btn",toolbarBtnActive="univer-toolbar-btn-active",styles$c={toolbarBtn,toolbarBtnActive};function ToolbarButton(props){const{children,className,style:style2,disabled=!1,active=!1,onClick,onDoubleClick,...restProps}=props,handleClick=__name(e2=>{if(disabled){e2.preventDefault();return}onClick&&onClick(e2)},"handleClick"),handleDoubleClick=__name(e2=>{if(disabled){e2.preventDefault();return}onDoubleClick&&onDoubleClick(e2)},"handleDoubleClick"),_className=clsx$1(styles$c.toolbarBtn,{[`${styles$c.toolbarBtn}-active`]:active},className);return jsxRuntimeExports.jsx("button",{className:_className,style:style2,disabled,onClick:handleClick,onDoubleClick:handleDoubleClick,...restProps,children})}__name(ToolbarButton,"ToolbarButton");const headerbar="univer-headerbar",headerMenu="univer-header-menu",menubar="univer-menubar",menubarItem="univer-menubar-item",menubarItemActive="univer-menubar-item-active",toolbar="univer-toolbar",toolbarContainer="univer-toolbar-container",toolbarMore="univer-toolbar-more",toolbarMoreContainer="univer-toolbar-more-container",toolbarGroup="univer-toolbar-group",toolbarItemSelectButton="univer-toolbar-item-select-button",toolbarItemSelectButtonDisabled="univer-toolbar-item-select-button-disabled",toolbarItemSelectButtonActivated="univer-toolbar-item-select-button-activated",toolbarItemSelectButtonLabel="univer-toolbar-item-select-button-label",toolbarItemSelectButtonArrow="univer-toolbar-item-select-button-arrow",toolbarItemSelect="univer-toolbar-item-select",toolbarItemSelectDisabled="univer-toolbar-item-select-disabled",toolbarItemSelectActivated="univer-toolbar-item-select-activated",toolbarItemSelectArrow="univer-toolbar-item-select-arrow",toolbarItemSelectArrowDisabled="univer-toolbar-item-select-arrow-disabled",toolbarItemSelectArrowActivated="univer-toolbar-item-select-arrow-activated",styles$b={headerbar,headerMenu,menubar,menubarItem,menubarItemActive,toolbar,toolbarContainer,toolbarMore,toolbarMoreContainer,toolbarGroup,toolbarItemSelectButton,toolbarItemSelectButtonDisabled,toolbarItemSelectButtonActivated,toolbarItemSelectButtonLabel,toolbarItemSelectButtonArrow,toolbarItemSelect,toolbarItemSelectDisabled,toolbarItemSelectActivated,toolbarItemSelectArrow,toolbarItemSelectArrowDisabled,toolbarItemSelectArrowActivated};function useToolbarGroups(categories,initCategory){const menuService=core.useDependency(IMenuService),[category,setCategory]=React.useState(initCategory!=null?initCategory:MenuPosition.TOOLBAR_START),[groups,setGroups]=React.useState([]),[visibleItems,setVisibleItems]=React.useState([]);React.useEffect(()=>{var _a18,_b2;const activeItems=(_b2=(_a18=groups.find(g2=>g2.name===category))==null?void 0:_a18.menuItems)!=null?_b2:[],s=rxjs.combineLatest(activeItems.map(item=>{var _a19;return(_a19=item.hidden$)!=null?_a19:new rxjs.Observable(observer=>observer.next(!1))})).pipe(rxjs.map(hiddenValues=>activeItems.filter((_,index)=>!hiddenValues[index]))).subscribe(items=>setVisibleItems(items));return()=>s.unsubscribe()},[groups,category]),React.useEffect(()=>{const s=menuService.menuChanged$.subscribe(()=>{const group=[];for(const position of categories){const menuItems=menuService.getMenuItems(position);menuItems.length&&group.push({name:position,menuItems})}setGroups(group)});return()=>s.unsubscribe()},[menuService,category,categories]);const groupsByKey=React.useMemo(()=>{var _a18,_b2;return(_b2=(_a18=groups.find(g2=>g2.name===category))==null?void 0:_a18.menuItems.reduce((acc,item)=>{var _a19;const key=(_a19=item.group)!=null?_a19:MenuGroup.TOOLBAR_OTHERS;return acc[key]||(acc[key]=[]),acc[key].push(item),acc},{}))!=null?_b2:{}},[groups,category]);return{setCategory,category,visibleItems,groups,groupsByKey}}__name(useToolbarGroups,"useToolbarGroups");function useToolbarItemStatus(menuItem){const{disabled$,hidden$,activated$,value$}=menuItem,[value,setValue]=React.useState(),[disabled,setDisabled]=React.useState(!1),[activated,setActivated]=React.useState(!1),[hidden,setHidden]=React.useState(!1);return React.useEffect(()=>{const subscriptions=[];return disabled$&&subscriptions.push(disabled$.subscribe(disabled2=>setDisabled(disabled2))),hidden$&&subscriptions.push(hidden$.subscribe(hidden2=>setHidden(hidden2))),activated$&&subscriptions.push(activated$.subscribe(activated2=>setActivated(activated2))),value$&&subscriptions.push(value$.subscribe(value2=>setValue(value2))),()=>subscriptions.forEach(subscription=>subscription.unsubscribe())},[activated$,disabled$,hidden$,value$]),{disabled,value,activated,hidden}}__name(useToolbarItemStatus,"useToolbarItemStatus");function useToolbarCollapseObserver(visibleItems){const toolbarItemRefs=React.useRef({}),toolbarRef=React.useRef(null),[collapsedId,setCollapsedId]=React.useState([]);return React.useEffect(()=>{function resize(){var _a18,_b2;const wrapperWidth=(_b2=(_a18=toolbarRef.current)==null?void 0:_a18.clientWidth)!=null?_b2:0;let GAP=0;if(toolbarRef.current){const gapValue=Number.parseInt(getComputedStyle(toolbarRef.current.firstElementChild).gap,10);GAP=Number.isNaN(gapValue)?0:gapValue}const itemWidths=Object.entries(toolbarItemRefs.current).filter(([_,ref])=>ref.el&&ref.key&&visibleItems.find(item=>item.id===ref.key)).map(([_,ref])=>{var _a19;return{key:ref.key,width:((_a19=ref.el)==null?void 0:_a19.clientWidth)+GAP}}),collapsedId2=[];let currentWidth=182;for(const item of itemWidths)currentWidth+=item.width,currentWidth>wrapperWidth&&collapsedId2.push(item.key);setCollapsedId(collapsedId2)}__name(resize,"resize"),resize();const observer=new ResizeObserver(()=>resize()),toolbarDom=toolbarRef.current;return toolbarDom&&observer.observe(toolbarDom),()=>{toolbarDom&&observer.unobserve(toolbarDom)}},[visibleItems]),{toolbarRef,toolbarItemRefs,collapsedId}}__name(useToolbarCollapseObserver,"useToolbarCollapseObserver");const ToolbarItem=React.forwardRef((props,ref)=>{const localeService=core.useDependency(core.LocaleService),commandService=core.useDependency(core.ICommandService),layoutService=core.useDependency(ILayoutService),componentManager=core.useDependency(ComponentManager),[tooltipVisible,setTooltipVisible]=React.useState(!1),[dropdownVisible,setDropdownVisible]=React.useState(!1),{value,hidden,disabled,activated}=useToolbarItemStatus(props),handleCommandExecuted=__name((commandId,params)=>{layoutService.focus(),commandService.executeCommand(commandId,params)},"handleCommandExecuted");function handleVisibleChange(visible){setTooltipVisible(visible)}__name(handleVisibleChange,"handleVisibleChange");function handleDropdownVisibleChange(visible){setDropdownVisible(visible),visible||setTooltipVisible(!1)}__name(handleDropdownVisibleChange,"handleDropdownVisibleChange");const{tooltip,shortcut,icon,title,label,id}=props,tooltipTitle=localeService.t(tooltip!=null?tooltip:"")+(shortcut?` (${shortcut})`:""),{selections}=props,selections$=React.useMemo(()=>rxjs.isObservable(selections)?selections:new rxjs.Observable(subscribe=>{subscribe.next(selections)}),[selections]),options=useObservable(selections$),icon$=React.useMemo(()=>rxjs.isObservable(icon)?icon:new rxjs.Observable(subscribe=>{var _a18,_b2;const v2=(_b2=(_a18=options==null?void 0:options.find(o=>o.value===value))==null?void 0:_a18.icon)!=null?_b2:icon;subscribe.next(v2)}),[icon,options,value]),iconToDisplay=useObservable(icon$,void 0,!0);function renderSelectorType(menuType){function handleSelect(option){if(disabled)return;let commandId=id;const value2=option;option.id&&(commandId=option.id),handleCommandExecuted(commandId,value2)}__name(handleSelect,"handleSelect");function handleChange(value2){if(disabled)return;handleCommandExecuted(id,{value:value2})}__name(handleChange,"handleChange");function handleClick(){disabled||menuType===MenuItemType.BUTTON_SELECTOR&&handleCommandExecuted(id,{value})}return __name(handleClick,"handleClick"),menuType===MenuItemType.BUTTON_SELECTOR?jsxRuntimeExports.jsxs("div",{className:clsx$1(styles$b.toolbarItemSelectButton,{[styles$b.toolbarItemSelectButtonDisabled]:disabled,[styles$b.toolbarItemSelectButtonActivated]:activated}),"data-disabled":disabled,children:[jsxRuntimeExports.jsx("div",{className:styles$b.toolbarItemSelectButtonLabel,onClick:handleClick,children:jsxRuntimeExports.jsx(CustomLabel,{icon:iconToDisplay,title,value,label,onChange:handleChange})}),jsxRuntimeExports.jsx(design.Dropdown,{overlay:jsxRuntimeExports.jsx(Menu,{overViewport:"scroll",menuType:id,options,onOptionSelect:handleSelect,value}),onVisibleChange:handleDropdownVisibleChange,disabled,children:jsxRuntimeExports.jsx("div",{className:clsx$1(styles$b.toolbarItemSelectButtonArrow,{[styles$b.toolbarItemSelectButtonArrowDisabled]:disabled,[styles$b.toolbarItemSelectButtonArrowActivated]:activated}),"data-disabled":disabled,onClick:__name(e2=>e2.stopPropagation(),"onClick"),children:jsxRuntimeExports.jsx(MoreDownSingle,{})})})]}):jsxRuntimeExports.jsx(design.Dropdown,{overlay:jsxRuntimeExports.jsx(Menu,{overViewport:"scroll",menuType:id,options,onOptionSelect:handleSelect,value}),onVisibleChange:handleDropdownVisibleChange,disabled,children:jsxRuntimeExports.jsxs("div",{className:clsx$1(styles$b.toolbarItemSelect,{[styles$b.toolbarItemSelectDisabled]:disabled,[styles$b.toolbarItemSelectActivated]:activated}),onClick:__name(e2=>e2.stopPropagation(),"onClick"),children:[jsxRuntimeExports.jsx(CustomLabel,{icon:iconToDisplay,title,value,label,onChange:handleChange}),jsxRuntimeExports.jsx("div",{className:clsx$1(styles$b.toolbarItemSelectArrow,{[styles$b.toolbarItemSelectArrowDisabled]:disabled}),children:jsxRuntimeExports.jsx(MoreDownSingle,{})})]})})}__name(renderSelectorType,"renderSelectorType");function renderButtonType(){var _a18;const isCustomComponent=componentManager.get(typeof label=="string"?label:(_a18=label==null?void 0:label.name)!=null?_a18:"");return jsxRuntimeExports.jsx(ToolbarButton,{className:styles$b.toolbarItemTextButton,active:activated,disabled,onClick:__name(()=>{var _a19;return handleCommandExecuted((_a19=props.commandId)!=null?_a19:props.id)},"onClick"),onDoubleClick:__name(()=>props.subId&&handleCommandExecuted(props.subId),"onDoubleClick"),children:isCustomComponent?jsxRuntimeExports.jsx(CustomLabel,{title,value,label}):jsxRuntimeExports.jsx(CustomLabel,{icon})})}__name(renderButtonType,"renderButtonType");function renderItem(){switch(props.type){case MenuItemType.BUTTON_SELECTOR:case MenuItemType.SELECTOR:case MenuItemType.SUBITEMS:return renderSelectorType(props.type);case MenuItemType.BUTTON:default:return renderButtonType()}}return __name(renderItem,"renderItem"),hidden?null:jsxRuntimeExports.jsx(design.Tooltip,{ref,visible:dropdownVisible?!1:tooltipVisible,title:tooltipTitle,placement:"bottom",onVisibleChange:handleVisibleChange,children:jsxRuntimeExports.jsx("div",{children:renderItem()})})}),MENU_POSITIONS=[MenuPosition.TOOLBAR_START,MenuPosition.TOOLBAR_INSERT,MenuPosition.TOOLBAR_FORMULAS,MenuPosition.TOOLBAR_DATA,MenuPosition.TOOLBAR_VIEW,MenuPosition.TOOLBAR_OTHERS];function Toolbar(props){const{headerMenuComponents}=props,localeService=core.useDependency(core.LocaleService),{setCategory,visibleItems,groups,category,groupsByKey}=useToolbarGroups(MENU_POSITIONS),{toolbarItemRefs,toolbarRef,collapsedId}=useToolbarCollapseObserver(visibleItems),hasHeaderMenu=React.useMemo(()=>headerMenuComponents&&headerMenuComponents.size>0||groups.length>1,[headerMenuComponents,groups]);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[hasHeaderMenu?jsxRuntimeExports.jsxs("header",{className:styles$b.headerbar,children:[jsxRuntimeExports.jsx("div",{className:styles$b.menubar,children:groups.length>1&&groups.map((item,index)=>jsxRuntimeExports.jsx("a",{className:clsx$1(styles$b.menubarItem,{[styles$b.menubarItemActive]:item.name===category}),onClick:__name(()=>{setCategory(item.name)},"onClick"),children:localeService.t(item.name)},index))}),jsxRuntimeExports.jsx("div",{className:styles$b.headerMenu,children:jsxRuntimeExports.jsx(ComponentContainer,{components:headerMenuComponents})})]}):null,jsxRuntimeExports.jsx("div",{ref:toolbarRef,className:styles$b.toolbar,children:jsxRuntimeExports.jsxs("div",{className:styles$b.toolbarContainer,children:[Object.entries(groupsByKey).filter(([_,item])=>item.filter(subItem=>!collapsedId.includes(subItem.id)).length).map(([key,item])=>jsxRuntimeExports.jsx("div",{className:styles$b.toolbarGroup,children:item.map(subItem=>!collapsedId.includes(subItem.id)&&jsxRuntimeExports.jsx(ToolbarItem,{...subItem},subItem.id))},key)),collapsedId.length>0&&jsxRuntimeExports.jsx(design.Tooltip,{title:localeService.t("more"),placement:"bottom",children:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(design.Dropdown,{forceRender:!0,className:styles$b.toolbarMore,overlay:jsxRuntimeExports.jsx("div",{className:styles$b.toolbarMoreContainer,children:Object.entries(groupsByKey).map(([key,item])=>jsxRuntimeExports.jsx("div",{className:styles$b.toolbarGroup,children:item.map(subItem=>collapsedId.includes(subItem.id)&&jsxRuntimeExports.jsx(ToolbarItem,{...subItem},subItem.id))},key))}),children:jsxRuntimeExports.jsx("span",{children:jsxRuntimeExports.jsx(ToolbarButton,{className:styles$b.toolbarItemTextButton,children:jsxRuntimeExports.jsx(MoreFunctionSingle,{})})})})})})]})}),jsxRuntimeExports.jsx("div",{className:styles$b.toolbarContainer,style:{position:"absolute",top:-9999,left:-9999,opacity:0},children:Object.entries(groupsByKey).map(([key,item])=>jsxRuntimeExports.jsx("div",{className:styles$b.toolbarGroup,children:item.map(subItem=>jsxRuntimeExports.jsx(ToolbarItem,{ref:__name(ref=>{toolbarItemRefs.current[subItem.id]={el:ref==null?void 0:ref.nativeElement,key:subItem.id}},"ref"),...subItem},subItem.id))},key))})]})}__name(Toolbar,"Toolbar");const ILeftSidebarService=core.createIdentifier("ui.left-sidebar.service"),ISidebarService=core.createIdentifier("ui.sidebar.service"),sidebar="univer-sidebar",sidebarOpen="univer-sidebar-open",sidebarContainer="univer-sidebar-container",sidebarHeader="univer-sidebar-header",sidebarHeaderClose="univer-sidebar-header-close",sidebarBody="univer-sidebar-body",sidebarFooter="univer-sidebar-footer",styles$a={sidebar,sidebarOpen,sidebarContainer,sidebarHeader,sidebarHeaderClose,sidebarBody,sidebarFooter};function Sidebar(){const sidebarService=core.useDependency(ISidebarService),sidebarOptions=useObservable(sidebarService.sidebarOptions$),scrollRef=React.useRef(null),options=React.useMemo(()=>{if(!sidebarOptions)return null;const copy={...sidebarOptions};for(const key of["children","header","footer"]){const k2=key;if(sidebarOptions[k2]){const props=sidebarOptions[k2];props&&(copy[k2]=jsxRuntimeExports.jsx(CustomLabel,{...props}))}}return copy},[sidebarOptions]);React.useEffect(()=>{const handleScroll=__name(e2=>{sidebarService.scrollEvent$.next(e2)},"handleScroll"),scrollElement=scrollRef.current;return scrollElement&&scrollElement.addEventListener("scroll",handleScroll),()=>{scrollElement==null||scrollElement.removeEventListener("scroll",handleScroll)}},[sidebarService]);const _className=clsx$1(styles$a.sidebar,{[styles$a.sidebarOpen]:options==null?void 0:options.visible}),width=React.useMemo(()=>options!=null&&options.visible?typeof options.width=="number"?`${options.width}px`:options.width:0,[options]);function handleClose(){var _a18;const options2={...sidebarOptions,visible:!1};sidebarService.sidebarOptions$.next(options2),(_a18=options2==null?void 0:options2.onClose)==null||_a18.call(options2)}return __name(handleClose,"handleClose"),jsxRuntimeExports.jsx("section",{className:_className,style:{width},children:jsxRuntimeExports.jsxs("section",{className:styles$a.sidebarContainer,ref:scrollRef,children:[jsxRuntimeExports.jsxs("header",{className:styles$a.sidebarHeader,children:[options==null?void 0:options.header,jsxRuntimeExports.jsx("a",{className:styles$a.sidebarHeaderClose,onClick:handleClose,children:jsxRuntimeExports.jsx(CloseSingle,{})})]}),jsxRuntimeExports.jsx("section",{className:styles$a.sidebarBody,children:options==null?void 0:options.children}),(options==null?void 0:options.footer)&&jsxRuntimeExports.jsx("footer",{className:styles$a.sidebarFooter,children:options.footer})]})})}__name(Sidebar,"Sidebar");const IZenZoneService=core.createIdentifier("univer.zen-zone-service"),zenZone="univer-zen-zone",zenZoneOpen="univer-zen-zone-open",zenZoneClose="univer-zen-zone-close",styles$9={zenZone,zenZoneOpen,zenZoneClose};function ZenZone(){const zenZoneService=core.useDependency(IZenZoneService),[visible,setVisible]=React.useState(!1),[componentKey,setComponentKey]=React.useState(),componentManager=core.useDependency(ComponentManager);React.useEffect(()=>{const subscriptions=[zenZoneService.visible$.subscribe(visible2=>{setVisible(visible2)}),zenZoneService.componentKey$.subscribe(componentKey2=>{setComponentKey(componentKey2)})];return()=>{subscriptions.forEach(subscription=>{subscription.unsubscribe()})}},[]);const _className=clsx$1(styles$9.zenZone,visible?styles$9.zenZoneOpen:styles$9.zenZoneClose),Component=React.useMemo(()=>{const Component2=componentManager.get(componentKey!=null?componentKey:"");if(Component2)return Component2},[componentKey]);return jsxRuntimeExports.jsx("section",{className:_className,children:Component&&jsxRuntimeExports.jsx(Component,{})})}__name(ZenZone,"ZenZone");const IGlobalZoneService=core.createIdentifier("univer.global-zone-service"),globalZone="univer-global-zone",globalZoneOpen="univer-global-zone-open",globalZoneClose="univer-global-zone-close",styles$8={globalZone,globalZoneOpen,globalZoneClose};function GlobalZone(){const globalZoneService=core.useDependency(IGlobalZoneService),[visible,setVisible]=React.useState(!1),componentKey=useObservable(globalZoneService.componentKey$,globalZoneService.componentKey),componentManager=core.useDependency(ComponentManager),_className=clsx$1(styles$8.globalZone,styles$8.globalZoneOpen),Component=React.useMemo(()=>{const Component2=componentManager.get(componentKey!=null?componentKey:"");if(Component2)return Component2},[componentKey,componentManager]);return React.useEffect(()=>{const subscription=globalZoneService.visible$.subscribe(val=>{setVisible(val)});return()=>{subscription.unsubscribe()}},[globalZoneService.visible$]),visible?jsxRuntimeExports.jsx("section",{className:_className,children:Component&&jsxRuntimeExports.jsx(Component,{})}):null}__name(GlobalZone,"GlobalZone");const builtInGlobalComponents=new Set([GlobalZone]),workbenchLayout="univer-workbench-layout",workbenchContainer="univer-workbench-container",workbenchContainerHeader="univer-workbench-container-header",workbenchContainerWrapper="univer-workbench-container-wrapper",workbenchContainerContent="univer-workbench-container-content",workbenchContainerCanvas="univer-workbench-container-canvas",workbenchContainerLeftSidebar="univer-workbench-container-left-sidebar",workbenchContainerSidebar="univer-workbench-container-sidebar",styles$7={workbenchLayout,workbenchContainer,workbenchContainerHeader,workbenchContainerWrapper,workbenchContainerContent,workbenchContainerCanvas,workbenchContainerLeftSidebar,workbenchContainerSidebar};function DesktopWorkbench(props){const{header=!0,toolbar:toolbar2=!0,footer=!0,contextMenu=!0,mountContainer,onRendered}=props,localeService=core.useDependency(core.LocaleService),themeService=core.useDependency(core.ThemeService),messageService=core.useDependency(IMessageService),contentRef=React.useRef(null),footerComponents=useComponentsOfPart(BuiltInUIPart.FOOTER),headerComponents=useComponentsOfPart(BuiltInUIPart.HEADER),headerMenuComponents=useComponentsOfPart(BuiltInUIPart.HEADER_MENU),contentComponents=useComponentsOfPart(BuiltInUIPart.CONTENT),leftSidebarComponents=useComponentsOfPart(BuiltInUIPart.LEFT_SIDEBAR),globalComponents=useComponentsOfPart(BuiltInUIPart.GLOBAL);React.useEffect(()=>{themeService.getCurrentTheme()||themeService.setTheme(design.defaultTheme)},[]),React.useEffect(()=>{contentRef.current&&(onRendered==null||onRendered(contentRef.current))},[onRendered]);const[locale,setLocale]=React.useState(localeService.getLocales()),portalContainer=React.useMemo(()=>document.createElement("div"),[]);return React.useEffect(()=>{document.body.appendChild(portalContainer),messageService.setContainer(portalContainer);const subscriptions=[localeService.localeChanged$.subscribe(()=>{setLocale(localeService.getLocales())}),themeService.currentTheme$.subscribe(theme=>{design.themeInstance.setTheme(mountContainer,theme),portalContainer&&design.themeInstance.setTheme(portalContainer,theme)})];return()=>{subscriptions.forEach(subscription=>subscription.unsubscribe()),document.body.removeChild(portalContainer)}},[localeService,messageService,mountContainer,portalContainer,themeService.currentTheme$]),jsxRuntimeExports.jsxs(design.ConfigProvider,{locale:locale==null?void 0:locale.design,mountContainer:portalContainer,children:[jsxRuntimeExports.jsxs("div",{className:styles$7.workbenchLayout,tabIndex:-1,onBlur:__name(e2=>e2.stopPropagation(),"onBlur"),children:[header&&toolbar2&&jsxRuntimeExports.jsx("header",{className:styles$7.workbenchContainerHeader,children:jsxRuntimeExports.jsx(Toolbar,{headerMenuComponents})}),jsxRuntimeExports.jsxs("section",{className:styles$7.workbenchContainer,children:[jsxRuntimeExports.jsxs("div",{className:styles$7.workbenchContainerWrapper,children:[jsxRuntimeExports.jsx("aside",{className:styles$7.workbenchContainerLeftSidebar,children:jsxRuntimeExports.jsx(ComponentContainer,{components:leftSidebarComponents},"left-sidebar")}),jsxRuntimeExports.jsxs("section",{className:styles$7.workbenchContainerContent,children:[jsxRuntimeExports.jsx("header",{children:header&&jsxRuntimeExports.jsx(ComponentContainer,{components:headerComponents},"header")}),jsxRuntimeExports.jsx("section",{className:styles$7.workbenchContainerCanvas,ref:contentRef,"data-range-selector":!0,onContextMenu:__name(e2=>e2.preventDefault(),"onContextMenu"),children:jsxRuntimeExports.jsx(ComponentContainer,{components:contentComponents},"content")})]}),jsxRuntimeExports.jsx("aside",{className:styles$7.workbenchContainerSidebar,children:jsxRuntimeExports.jsx(Sidebar,{})})]}),footer&&jsxRuntimeExports.jsx("footer",{className:styles$7.workbenchFooter,children:jsxRuntimeExports.jsx(ComponentContainer,{components:footerComponents,sharedProps:{contextMenu}},"footer")}),jsxRuntimeExports.jsx(ZenZone,{})]})]}),jsxRuntimeExports.jsx(ComponentContainer,{components:globalComponents},"global"),jsxRuntimeExports.jsx(ComponentContainer,{components:builtInGlobalComponents},"built-in-global"),contextMenu&&jsxRuntimeExports.jsx(DesktopContextMenu,{}),jsxRuntimeExports.jsx(FloatingContainer,{})]})}__name(DesktopWorkbench,"DesktopWorkbench");function FloatingContainer(){const{mountContainer}=React.useContext(design.ConfigContext),floatingComponents=useComponentsOfPart(BuiltInUIPart.FLOATING);return ReactDOM$1.createPortal(jsxRuntimeExports.jsx(ComponentContainer,{components:floatingComponents},"floating"),mountContainer)}__name(FloatingContainer,"FloatingContainer");var __defProp$c=Object.defineProperty,__getOwnPropDesc$c=Object.getOwnPropertyDescriptor,__decorateClass$c=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$c(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$c(target,key,result),result},"__decorateClass$c"),__decorateParam$c=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$c");const STEADY_TIMEOUT$1=3e3;var _a5;exports.DesktopUIController=(_a5=class extends core.Disposable{constructor(_config,_renderManagerService,_injector,_lifecycleService,_uiPartsService,_configService,_layoutService){super(),this._config=_config,this._renderManagerService=_renderManagerService,this._injector=_injector,this._lifecycleService=_lifecycleService,this._uiPartsService=_uiPartsService,this._configService=_configService,this._layoutService=_layoutService,this._configService.setConfig(UI_CONFIG_KEY,this._config),this._initBuiltinComponents(),Promise.resolve().then(()=>this._bootstrapWorkbench())}_bootstrapWorkbench(){this.disposeWithMe(bootstrap$1(this._injector,this._config,(contentElement,containerElement)=>{this._layoutService&&(this.disposeWithMe(this._layoutService.registerRootContainerElement(containerElement)),this.disposeWithMe(this._layoutService.registerContentElement(contentElement))),this._renderManagerService.currentRender$.subscribe(renderId=>{if(renderId){const render2=this._renderManagerService.getRenderById(renderId);if(!render2.unitId||core.isInternalEditorID(render2.unitId))return;render2.engine.setContainer(contentElement)}}),setTimeout(()=>{const allRenders=this._renderManagerService.getRenderAll();for(const[key,render2]of allRenders)core.isInternalEditorID(key)||!render2.isRenderUnit||render2.engine.setContainer(contentElement);this._lifecycleService.stage=core.LifecycleStages.Rendered,setTimeout(()=>this._lifecycleService.stage=core.LifecycleStages.Steady,STEADY_TIMEOUT$1)},300)}))}_initBuiltinComponents(){this.disposeWithMe(this._uiPartsService.registerComponent(BuiltInUIPart.FLOATING,()=>core.connectInjector(CanvasPopup,this._injector))),this.disposeWithMe(this._uiPartsService.registerComponent(BuiltInUIPart.CONTENT,()=>core.connectInjector(FloatDom,this._injector)))}},__name(_a5,"DesktopUIController"),_a5);exports.DesktopUIController=__decorateClass$c([core.OnLifecycle(core.LifecycleStages.Ready,exports.DesktopUIController),__decorateParam$c(1,engineRender.IRenderManagerService),__decorateParam$c(2,core.Inject(core.Injector)),__decorateParam$c(3,core.Inject(core.LifecycleService)),__decorateParam$c(4,IUIPartsService),__decorateParam$c(5,core.IConfigService),__decorateParam$c(6,core.Optional(ILayoutService))],exports.DesktopUIController);function bootstrap$1(injector,options,callback){let mountContainer;const container=options.container;if(typeof container=="string"){const containerElement=document.getElementById(container);containerElement?mountContainer=containerElement:mountContainer=createContainer$1(container)}else container instanceof HTMLElement?mountContainer=container:mountContainer=createContainer$1("univer");const ConnectedApp=core.connectInjector(DesktopWorkbench,injector),onRendered=__name(contentElement=>callback(contentElement,mountContainer),"onRendered");function render2(){render_2(jsxRuntimeExports.jsx(ConnectedApp,{...options,mountContainer,onRendered}),mountContainer)}return __name(render2,"render"),render2(),core.toDisposable(()=>{render_2(jsxRuntimeExports.jsx("div",{}),mountContainer),setTimeout(()=>render_2(jsxRuntimeExports.jsx("div",{}),mountContainer),200),setTimeout(()=>unmount_1(mountContainer),500)})}__name(bootstrap$1,"bootstrap$1");function createContainer$1(id){const element2=document.createElement("div");return element2.id=id,element2}__name(createContainer$1,"createContainer$1");const INotificationService=core.createIdentifier("ui.notification.service");var __defProp$b=Object.defineProperty,__getOwnPropDesc$b=Object.getOwnPropertyDescriptor,__decorateClass$b=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$b(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$b(target,key,result),result},"__decorateClass$b"),__decorateParam$b=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$b");const IBeforeCloseService=core.createIdentifier("univer.ui.before-close-service");var _a6;exports.DesktopBeforeCloseService=(_a6=class{constructor(_notificationService){__publicField(this,"_beforeUnloadCallbacks",[]);__publicField(this,"_onCloseCallbacks",[]);this._notificationService=_notificationService,this._init()}registerBeforeClose(callback){return this._beforeUnloadCallbacks.push(callback),{dispose:__name(()=>{this._beforeUnloadCallbacks=this._beforeUnloadCallbacks.filter(cb=>cb!==callback)},"dispose")}}registerOnClose(callback){return this._onCloseCallbacks.push(callback),{dispose:__name(()=>{this._onCloseCallbacks=this._onCloseCallbacks.filter(cb=>cb!==callback)},"dispose")}}_init(){window.addEventListener("beforeunload",_event=>{let event=_event;const message=this._beforeUnloadCallbacks.map(callback=>callback()).filter(m2=>!!m2).join(`
10
10
  `);if(message)return this._notificationService.show({type:"error",title:"Some changes are not saved",content:message}),typeof event>"u"&&(event=window.event),event.returnValue=message,message}),window.addEventListener("unload",()=>{this._onCloseCallbacks.forEach(callback=>callback())})}},__name(_a6,"DesktopBeforeCloseService"),_a6);exports.DesktopBeforeCloseService=__decorateClass$b([__decorateParam$b(0,INotificationService)],exports.DesktopBeforeCloseService);function supportClipboardAPI(){return typeof navigator.clipboard<"u"&&typeof navigator.clipboard.readText<"u"}__name(supportClipboardAPI,"supportClipboardAPI");var __defProp$a=Object.defineProperty,__getOwnPropDesc$a=Object.getOwnPropertyDescriptor,__decorateClass$a=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$a(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$a(target,key,result),result},"__decorateClass$a"),__decorateParam$a=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$a");const PLAIN_TEXT_CLIPBOARD_MIME_TYPE="text/plain",HTML_CLIPBOARD_MIME_TYPE="text/html",IClipboardInterfaceService=core.createIdentifier("univer.clipboard-interface-service");var _a7;exports.BrowserClipboardService=(_a7=class extends core.Disposable{constructor(_localeService,_logService,_notificationService){super(),this._localeService=_localeService,this._logService=_logService,this._notificationService=_notificationService}get supportClipboard(){return supportClipboardAPI()}async write(text,html){if(!this.supportClipboard)return this._legacyCopyHtml(html);try{return await navigator.clipboard.write([new ClipboardItem({[PLAIN_TEXT_CLIPBOARD_MIME_TYPE]:new Blob([text],{type:PLAIN_TEXT_CLIPBOARD_MIME_TYPE}),[HTML_CLIPBOARD_MIME_TYPE]:new Blob([html],{type:HTML_CLIPBOARD_MIME_TYPE})})])}catch(error){this._logService.error("[BrowserClipboardService]",error),this._showClipboardAuthenticationNotification()}}async writeText(text){if(!this.supportClipboard)return this._legacyCopyText(text);try{return await navigator.clipboard.writeText(text)}catch(error){this._logService.error("[BrowserClipboardService]",error),this._showClipboardAuthenticationNotification()}}async read(){if(!this.supportClipboard)throw new Error("[BrowserClipboardService] read() is not supported on this platform.");try{return navigator.clipboard.read()}catch(e2){return this._logService.error("[BrowserClipboardService]",e2),this._showClipboardAuthenticationNotification(),[]}}async readText(){if(!this.supportClipboard)throw new Error("[BrowserClipboardService] read() is not supported on this platform.");try{return await navigator.clipboard.readText()}catch(e2){return this._logService.error("[BrowserClipboardService]",e2),this._showClipboardAuthenticationNotification(),""}}_legacyCopyHtml(html){const activeElement=document.activeElement,container=createCopyHtmlContainer();document.body.appendChild(container),container.innerHTML=html;try{select(container),document.execCommand("copy")}finally{activeElement instanceof HTMLElement&&activeElement.focus(),document.body.removeChild(container)}}_legacyCopyText(text){const activeElement=document.activeElement,container=createCopyTextContainer();document.body.appendChild(container),container.value=text;try{select(container),document.execCommand("copy")}finally{activeElement instanceof HTMLElement&&activeElement.focus(),document.body.removeChild(container)}}_showClipboardAuthenticationNotification(){var _a18;(_a18=this._notificationService)==null||_a18.show({type:"warning",title:this._localeService.t("clipboard.authentication.title"),content:this._localeService.t("clipboard.authentication.content")})}},__name(_a7,"BrowserClipboardService"),_a7);exports.BrowserClipboardService=__decorateClass$a([__decorateParam$a(0,core.Inject(core.LocaleService)),__decorateParam$a(1,core.ILogService),__decorateParam$a(2,core.Optional(INotificationService))],exports.BrowserClipboardService);function createCopyTextContainer(){const textArea=document.createElement("textarea");return textArea.style.position="absolute",textArea.style.height="1px",textArea.style.width="1px",textArea.style.opacity="0",textArea.readOnly=!0,textArea}__name(createCopyTextContainer,"createCopyTextContainer");function createCopyHtmlContainer(){const div=document.createElement("div");return div.contentEditable="true",div.style.position="absolute",div.style.opacity="0",div.style.height="1px",div.style.width="1px",div}__name(createCopyHtmlContainer,"createCopyHtmlContainer");function select(element2){if(element2 instanceof HTMLTextAreaElement){const isReadOnly=element2.hasAttribute("readonly");return isReadOnly||element2.setAttribute("readonly",""),element2.select(),element2.setSelectionRange(0,element2.value.length),isReadOnly||element2.removeAttribute("readonly"),element2.value}element2.hasAttribute("contenteditable")&&element2.focus();const range=document.createRange();range.selectNodeContents(element2);const selection=window.getSelection();if(!selection)throw new Error;return selection.removeAllRanges(),selection.addRange(range),selection.toString()}__name(select,"select");const IConfirmService=core.createIdentifier("univer.confirm-service");core.runOnLifecycle(core.LifecycleStages.Rendered,IConfirmService);function ConfirmPart(){const confirmService=core.useDependency(IConfirmService),[confirmOptions,setConfirmOptions]=React.useState([]);React.useEffect(()=>{const subscription=confirmService.confirmOptions$.subscribe(options=>{setConfirmOptions(options)});return()=>{subscription.unsubscribe()}},[]);const props=confirmOptions.map(options=>{const{children,title,...restProps}=options,confirmProps=restProps;for(const key of["children","title"]){const k2=key,props2=options[k2];props2&&(confirmProps[k2]=jsxRuntimeExports.jsx(CustomLabel,{...props2}))}return confirmProps});return props==null?void 0:props.map((options,index)=>jsxRuntimeExports.jsx(design.Confirm,{...options},index))}__name(ConfirmPart,"ConfirmPart");var __defProp$9=Object.defineProperty,__getOwnPropDesc$9=Object.getOwnPropertyDescriptor,__decorateClass$9=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$9(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$9(target,key,result),result},"__decorateClass$9"),__decorateParam$9=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$9"),_a8;exports.DesktopConfirmService=(_a8=class extends core.Disposable{constructor(_injector,_uiPartsService){super();__publicField(this,"_confirmOptions",[]);__publicField(this,"confirmOptions$",new rxjs.Subject);this._injector=_injector,this._uiPartsService=_uiPartsService,this._initUIPart()}open(option){return this._confirmOptions.find(item=>item.id===option.id)?this._confirmOptions=this._confirmOptions.map(item=>({...item.id===option.id?option:item,visible:item.id===option.id?!0:item.visible})):this._confirmOptions.push({...option,visible:!0}),this.confirmOptions$.next(this._confirmOptions),core.toDisposable(()=>{this._confirmOptions=[],this.confirmOptions$.next([])})}confirm(params){return new Promise(resolve=>{const disposeHandler=this.open({...params,onConfirm:__name(()=>{disposeHandler.dispose(),resolve(!0)},"onConfirm"),onClose:__name(()=>{disposeHandler.dispose(),resolve(!1)},"onClose")})})}close(id){this._confirmOptions=this._confirmOptions.map(item=>({...item,visible:item.id===id?!1:item.visible})),this.confirmOptions$.next([...this._confirmOptions])}_initUIPart(){this.disposeWithMe(this._uiPartsService.registerComponent(BuiltInUIPart.GLOBAL,()=>core.connectInjector(ConfirmPart,this._injector)))}},__name(_a8,"DesktopConfirmService"),_a8);exports.DesktopConfirmService=__decorateClass$9([__decorateParam$9(0,core.Inject(core.Injector)),__decorateParam$9(1,IUIPartsService)],exports.DesktopConfirmService);const IDialogService=core.createIdentifier("univer.ui.dialog-service");function DialogPart(){const dialogService=core.useDependency(IDialogService),[dialogOptions,setDialogOptions]=React.useState([]);React.useEffect(()=>{const subscription=dialogService.getDialogs$().subscribe(options=>{setDialogOptions(options)});return()=>subscription.unsubscribe()},[dialogService]);const attrs=dialogOptions.map(options=>{const{children,title,closeIcon,footer,...restProps}=options,dialogProps=restProps;for(const key of["children","title","closeIcon","footer"]){const k2=key,props=options[k2];props&&(dialogProps[k2]=jsxRuntimeExports.jsx(CustomLabel,{...props}))}return dialogProps});return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:attrs==null?void 0:attrs.map(options=>jsxRuntimeExports.jsx(design.Dialog,{...options},options.id))})}__name(DialogPart,"DialogPart");var __defProp$8=Object.defineProperty,__getOwnPropDesc$8=Object.getOwnPropertyDescriptor,__decorateClass$8=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$8(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$8(target,key,result),result},"__decorateClass$8"),__decorateParam$8=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$8"),_a9;exports.DesktopDialogService=(_a9=class extends core.Disposable{constructor(_injector,_uiPartsService){super();__publicField(this,"_dialogOptions",[]);__publicField(this,"_dialogOptions$",new rxjs.Subject);this._injector=_injector,this._uiPartsService=_uiPartsService,this._initUIPart()}dispose(){super.dispose(),this._dialogOptions$.complete()}open(option){return this._dialogOptions.find(item=>item.id===option.id)?this._dialogOptions=this._dialogOptions.map(item=>({...item.id===option.id?option:item,visible:item.id===option.id?!0:item.visible})):this._dialogOptions.push({...option,visible:!0}),this._dialogOptions$.next(this._dialogOptions),core.toDisposable(()=>{this._dialogOptions=[],this._dialogOptions$.next([])})}close(id){this._dialogOptions=this._dialogOptions.map(item=>({...item,visible:item.id===id?!1:item.visible})),this._dialogOptions$.next([...this._dialogOptions])}getDialogs$(){return this._dialogOptions$.asObservable()}_initUIPart(){this.disposeWithMe(this._uiPartsService.registerComponent(BuiltInUIPart.GLOBAL,()=>core.connectInjector(DialogPart,this._injector)))}},__name(_a9,"DesktopDialogService"),_a9);exports.DesktopDialogService=__decorateClass$8([__decorateParam$8(0,core.Inject(core.Injector)),__decorateParam$8(1,IUIPartsService)],exports.DesktopDialogService);const _DesktopMessageService=class _DesktopMessageService{constructor(){__publicField(this,"_portalContainer",_default()?document.body:void 0);__publicField(this,"_message")}dispose(){var _a18;(_a18=this._message)==null||_a18.dispose()}setContainer(container){this._message||(this._portalContainer=container,this._message=new design.Message(container))}getContainer(){return this._portalContainer}show(options){if(!this._portalContainer)throw new Error("[DesktopMessageService]: no container to show message!");if(!this._message)throw new Error("[DesktopMessageService]: no message implementation!");const{type,...rest}=options;return this._message[type](rest)}};__name(_DesktopMessageService,"DesktopMessageService");let DesktopMessageService=_DesktopMessageService;function _arrayLikeToArray(r,a){(a==null||a>r.length)&&(a=r.length);for(var e2=0,n2=Array(a);e2<a;e2++)n2[e2]=r[e2];return n2}__name(_arrayLikeToArray,"_arrayLikeToArray");function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}__name(_arrayWithoutHoles,"_arrayWithoutHoles");function _iterableToArray(r){if(typeof Symbol<"u"&&r[Symbol.iterator]!=null||r["@@iterator"]!=null)return Array.from(r)}__name(_iterableToArray,"_iterableToArray");function _unsupportedIterableToArray(r,a){if(r){if(typeof r=="string")return _arrayLikeToArray(r,a);var t2={}.toString.call(r).slice(8,-1);return t2==="Object"&&r.constructor&&(t2=r.constructor.name),t2==="Map"||t2==="Set"?Array.from(r):t2==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t2)?_arrayLikeToArray(r,a):void 0}}__name(_unsupportedIterableToArray,"_unsupportedIterableToArray");function _nonIterableSpread(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
11
11
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}__name(_nonIterableSpread,"_nonIterableSpread");function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}__name(_toConsumableArray,"_toConsumableArray");function _arrayWithHoles(r){if(Array.isArray(r))return r}__name(_arrayWithHoles,"_arrayWithHoles");function _iterableToArrayLimit(r,l2){var t2=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(t2!=null){var e2,n2,i,u2,a=[],f2=!0,o=!1;try{if(i=(t2=t2.call(r)).next,l2===0){if(Object(t2)!==t2)return;f2=!1}else for(;!(f2=(e2=i.call(t2)).done)&&(a.push(e2.value),a.length!==l2);f2=!0);}catch(r2){o=!0,n2=r2}finally{try{if(!f2&&t2.return!=null&&(u2=t2.return(),Object(u2)!==u2))return}finally{if(o)throw n2}}return a}}__name(_iterableToArrayLimit,"_iterableToArrayLimit");function _nonIterableRest(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
12
12
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}__name(_nonIterableRest,"_nonIterableRest");function _slicedToArray(r,e2){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e2)||_unsupportedIterableToArray(r,e2)||_nonIterableRest()}__name(_slicedToArray,"_slicedToArray");function _objectWithoutPropertiesLoose(r,e2){if(r==null)return{};var t2={};for(var n2 in r)if({}.hasOwnProperty.call(r,n2)){if(e2.indexOf(n2)>=0)continue;t2[n2]=r[n2]}return t2}__name(_objectWithoutPropertiesLoose,"_objectWithoutPropertiesLoose");function _objectWithoutProperties(e2,t2){if(e2==null)return{};var o,r,i=_objectWithoutPropertiesLoose(e2,t2);if(Object.getOwnPropertySymbols){var n2=Object.getOwnPropertySymbols(e2);for(r=0;r<n2.length;r++)o=n2[r],t2.indexOf(o)>=0||{}.propertyIsEnumerable.call(e2,o)&&(i[o]=e2[o])}return i}__name(_objectWithoutProperties,"_objectWithoutProperties");function _typeof(o){"@babel/helpers - typeof";return _typeof=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(o2){return typeof o2}:function(o2){return o2&&typeof Symbol=="function"&&o2.constructor===Symbol&&o2!==Symbol.prototype?"symbol":typeof o2},_typeof(o)}__name(_typeof,"_typeof");function toPrimitive(t2,r){if(_typeof(t2)!="object"||!t2)return t2;var e2=t2[Symbol.toPrimitive];if(e2!==void 0){var i=e2.call(t2,r||"default");if(_typeof(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(t2)}__name(toPrimitive,"toPrimitive");function toPropertyKey(t2){var i=toPrimitive(t2,"string");return _typeof(i)=="symbol"?i:i+""}__name(toPropertyKey,"toPropertyKey");function _defineProperty(e2,r,t2){return(r=toPropertyKey(r))in e2?Object.defineProperty(e2,r,{value:t2,enumerable:!0,configurable:!0,writable:!0}):e2[r]=t2,e2}__name(_defineProperty,"_defineProperty");function ownKeys(e2,r){var t2=Object.keys(e2);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e2);r&&(o=o.filter(function(r2){return Object.getOwnPropertyDescriptor(e2,r2).enumerable})),t2.push.apply(t2,o)}return t2}__name(ownKeys,"ownKeys");function _objectSpread2(e2){for(var r=1;r<arguments.length;r++){var t2=arguments[r]!=null?arguments[r]:{};r%2?ownKeys(Object(t2),!0).forEach(function(r2){_defineProperty(e2,r2,t2[r2])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e2,Object.getOwnPropertyDescriptors(t2)):ownKeys(Object(t2)).forEach(function(r2){Object.defineProperty(e2,r2,Object.getOwnPropertyDescriptor(t2,r2))})}return e2}__name(_objectSpread2,"_objectSpread2");function _extends(){return _extends=Object.assign?Object.assign.bind():function(n2){for(var e2=1;e2<arguments.length;e2++){var t2=arguments[e2];for(var r in t2)({}).hasOwnProperty.call(t2,r)&&(n2[r]=t2[r])}return n2},_extends.apply(null,arguments)}__name(_extends,"_extends");var classnames={exports:{}};/*!
@@ -47,4 +47,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
47
47
  `;for(let i=0;i<nodeList.length;i++){let span=nodeList[`${i}`],str;span.nodeName==="#text"?(str=(_a18=span.textContent)!=null?_a18:"",span=span.parentElement):str=span.innerText;const textStyle=handleStringToStyle(span);splitSpanText(str).forEach(item=>{const length=item.length;ed+=length,st=ed-length;const sId=core.Tools.generateRandomId(6);textRuns.push({sId,st,ed:ed-1,ts:textStyle})})}return core.Tools.generateRandomId(6),{id:core.Tools.generateRandomId(6),body:{dataStream,textRuns},documentStyle:{}}}__name(handleDomToJson,"handleDomToJson");function handleStringToStyle($dom,cssStyle=""){var _a18,_b2;let cssText=(_b2=(_a18=$dom==null?void 0:$dom.style)==null?void 0:_a18.cssText)!=null?_b2:"";if(cssText+=cssStyle,cssText=cssText.replace(/[\r\n]+/g,""),cssText.length===0)return{};const cssTextArray=cssText.split(";"),styleList={},borderInfo={t:"",r:"",b:"",l:""};return cssTextArray.forEach(originStr=>{var _a19;const s=originStr.toLowerCase(),key=textTrim(s.substr(0,s.indexOf(":"))),value=textTrim(s.substr(s.indexOf(":")+1));if(key==="font-weight")value==="bold"||value==="700"?styleList.bl=1:styleList.bl=0;else if(key==="font-style")value==="italic"?styleList.it=1:styleList.it=0;else if(key==="font-family"){const trimValue=textTrim(originStr),fontFamily=extractFontFamily(trimValue);styleList.ff=fontFamily}else if(key==="font-size"){let fs=Number.parseInt(value);cssText.indexOf("vertical-align")>-1&&(cssText.indexOf("sub")>-1||cssText.indexOf("sup")>-1)&&(fs*=2),value.indexOf("px")!==-1&&(fs=getPtFontSizeByPx(Number.parseInt(value,10))),styleList.fs=fs}else if(key==="color"){const colorKit=new core.ColorKit(value);styleList.cl={rgb:colorKit.isValid?colorKit.toRgbString():"rgb(0,0,0)"}}else if(key==="background"||key==="background-color"){const backgroundColor=new core.ColorKit(value);if(backgroundColor){const backgroundStr=backgroundColor.toRgbString();backgroundStr!==DEFAULT_BACKGROUND_COLOR_RGBA&&backgroundStr!==DEFAULT_BACKGROUND_COLOR_RGB&&(styleList.bg={rgb:backgroundColor.toRgbString()})}}else if(key==="text-decoration-line")value==="underline"?(styleList.ul||(styleList.ul={s:1}),styleList.ul.s=1):value==="line-through"?(styleList.st||(styleList.st={s:1}),styleList.st.s=1):value==="overline"&&(styleList.ol||(styleList.ol={s:1}),styleList.ol.s=1);else if(key==="text-decoration-color")styleList.hasOwnProperty("ul")&&(styleList.ul||(styleList.ul={s:1,cl:{rgb:value}}),styleList.ul.cl={rgb:value}),styleList.hasOwnProperty("st")&&(styleList.st||(styleList.st={s:1,cl:{rgb:value}}),styleList.st.cl={rgb:value}),styleList.hasOwnProperty("ol")&&(styleList.ol||(styleList.ol={s:1,cl:{rgb:value}}),styleList.ol.cl={rgb:value});else if(key==="text-decoration-style")styleList.hasOwnProperty("ul")&&(styleList.ul||(styleList.ul={s:1,t:Number(value)}),styleList.ul.t=Number(value)),styleList.hasOwnProperty("st")&&(styleList.st||(styleList.st={s:1,t:Number(value)}),styleList.st.t=Number(value)),styleList.hasOwnProperty("ol")&&(styleList.ol||(styleList.ol={s:1,t:Number(value)}),styleList.ol.t=Number(value));else if(key==="text-decoration"||key==="univer-strike"){const lineValue=(_a19=value.split(" "))==null?void 0:_a19[0];lineValue==="underline"?(styleList.ul||(styleList.ul={s:1}),styleList.ul.s=1):lineValue==="line-through"?(styleList.st||(styleList.st={s:1}),styleList.st.s=1):lineValue==="overline"&&(styleList.ol||(styleList.ol={s:1}),styleList.ol.s=1)}if(key==="univer-underline"&&(styleList.ul={s:1}),key==="vertical-align"&&(value==="sub"?styleList.va=core.BaselineOffset.SUBSCRIPT:value==="super"?styleList.va=core.BaselineOffset.SUPERSCRIPT:value==="top"?styleList.vt=1:value==="middle"?styleList.vt=2:value==="bottom"?styleList.vt=3:styleList.va=core.BaselineOffset.NORMAL),key==="transform"){const values=value.split(")"),index=values.findIndex(item=>item.includes("rotate"));if(index>-1){const match2=values[index].match(/\d+/g);let angle=0,ver=0;match2!=null&&match2.length&&(angle=+match2[0]),$dom!=null&&$dom.dataset.vertical&&(ver=+$dom.dataset.vertical),styleList.tr={a:angle,v:ver}}}if(key==="text-align"&&(value==="left"?styleList.ht=1:value==="center"?styleList.ht=2:value==="right"?styleList.ht=3:value==="justify"?styleList.ht=4:styleList.ht=0),styleList.tb!==1&&(key==="overflow-wrap"||key==="word-wrap"?value==="break-word"&&(styleList.tb=3):key==="text-overflow"?value==="clip"&&(styleList.tb=2):key==="text-break"&&value==="overflow"&&(styleList.tb=1)),key==="white-space"&&(value==="nowrap"?styleList.tb=1:value==="normal"?styleList.tb=3:value==="clip"&&(styleList.tb=2)),key==="border-color"){const colors=handleBorder(value,")");if(styleList.bd)for(const k2 in colors)styleList.bd[k2].cl.rgb=colors[k2];else{styleList.bd={b:{cl:{rgb:"#000"},s:0},t:{cl:{rgb:"#000"},s:0},l:{cl:{rgb:"#000"},s:0},r:{cl:{rgb:"#000"},s:0}};for(const k2 in colors)styleList.bd[k2].cl.rgb=colors[k2]}}if(key==="border-width"||key==="border-style"){const width=handleBorder(value," ");for(const k2 in width)borderInfo[k2]+=` ${width[k2]}`;styleList.bd?(styleList.bd.b.s=core.getBorderStyleType(borderInfo.b),styleList.bd.t.s=core.getBorderStyleType(borderInfo.t),styleList.bd.l.s=core.getBorderStyleType(borderInfo.l),styleList.bd.r.s=core.getBorderStyleType(borderInfo.r)):styleList.bd={b:{cl:{rgb:"#000"},s:core.getBorderStyleType(borderInfo.b)},t:{cl:{rgb:"#000"},s:core.getBorderStyleType(borderInfo.t)},l:{cl:{rgb:"#000"},s:core.getBorderStyleType(borderInfo.l)},r:{cl:{rgb:"#000"},s:core.getBorderStyleType(borderInfo.r)}}}if(key==="border-bottom"||key==="border-top"||key==="border-left"||key==="border-right"||key==="border"){styleList.bd||(styleList.bd={});const arr=value.split(" "),type=`${arr[0]} ${arr[1]}`;arr.splice(0,2);const color=arr.join("");if(core.getBorderStyleType(type)!==core.BorderStyleTypes.NONE&&color){const obj={cl:{rgb:color},s:core.getBorderStyleType(type)};key==="border-bottom"?styleList.bd.b=value==="none"?null:obj:key==="border-top"?styleList.bd.t=value==="none"?null:obj:key==="border-left"?styleList.bd.l=value==="none"?null:obj:key==="border-right"?styleList.bd.r=value==="none"?null:obj:key==="border"&&(styleList.bd={r:value==="none"?null:obj,t:value==="none"?null:obj,b:value==="none"?null:obj,l:value==="none"?null:obj})}}else if(key==="--data-rotate"){const regex=/[+-]?\d+/,match2=value.match(regex);value==="(0deg ,1)"?styleList.tr={a:0,v:1}:match2&&(styleList.tr={a:Number(match2[0])})}}),Object.keys(styleList).forEach(key=>{typeof styleList[key]=="object"&&!Object.keys(styleList[key]).length&&delete styleList[key]}),styleList}__name(handleStringToStyle,"handleStringToStyle");function handleBorder(border,param){let arr;param===" "?arr=border.trim().split(param):arr=border.trim().split(param).slice(0,-1),arr.forEach(item=>`${item.trim()})`);let obj={};return arr.length===1?obj={t:arr[0],r:arr[0],b:arr[0],l:arr[0]}:arr.length===2?obj={t:arr[0],r:arr[1],b:arr[0],l:arr[1]}:arr.length===3?obj={t:arr[0],r:arr[1],b:arr[2],l:arr[1]}:arr.length===4&&(obj={t:arr[0],r:arr[1],b:arr[2],l:arr[3]}),obj}__name(handleBorder,"handleBorder");function splitSpanText(text){if(text==="")return[text];const regex=/(?:(\n+.+)|(.+))/g;return text.match(regex).map(item=>item.replace(/\n/g,`\r
48
48
  `))}__name(splitSpanText,"splitSpanText");function handleTableColgroup(table){const content=document.createElement("DIV"),data=[];content.innerHTML=table;const colgroup=content.querySelectorAll("table col");if(!colgroup.length)return[];for(let i=0;i<colgroup.length;i++){const col=colgroup[i],colSpan=col.getAttribute("span");if(colSpan&&+colSpan>1)for(let j=0;j<+colSpan;j++){const width=getTdHeight(col.getAttribute("width"),72);data.push(width)}else{const width=getTdHeight(col.getAttribute("width"),72);data.push(width)}}return data}__name(handleTableColgroup,"handleTableColgroup");function getTdHeight(height,defaultHeight){if(!height)return defaultHeight;let firstHeight;return height.includes("pt")?firstHeight=engineRender.ptToPx(Number.parseFloat(height)):height.includes("px")?firstHeight=Number.parseFloat(height):firstHeight=Number.parseFloat(height)*72/96,firstHeight}__name(getTdHeight,"getTdHeight");function handleTableRowGroup(table){const content=document.createElement("DIV"),data=[];content.innerHTML=table;const rowGroup=content.querySelectorAll("table tr");if(!rowGroup.length)return[];for(let i=0;i<rowGroup.length;i++){const tds=rowGroup[i].querySelectorAll("td");let firstHeight=getTdHeight(tds[0].style.height,19);for(let k2=0;k2<tds.length;k2++){const rowSpan=tds[k2].getAttribute("rowSpan");if(!(rowSpan&&+rowSpan>1)){firstHeight=getTdHeight(tds[k2].style.height,19);break}}data.push(firstHeight)}return data}__name(handleTableRowGroup,"handleTableRowGroup");function handelTableToJson(table){let data=[];const content=document.createElement("DIV");if(content.innerHTML=table,data=new Array(content.querySelectorAll("table tr").length),!data.length)return[];let colLen=0;const trs=content.querySelectorAll("table tr");trs[0].querySelectorAll("td").forEach(item=>{let colSpan=0;const attr=item.getAttribute("colSpan");attr!==null?colSpan=+attr:colSpan=1,colLen+=colSpan});for(let i=0;i<data.length;i++)data[i]=new Array(colLen);let r=0;return trs.forEach(item=>{let c2=0;item.querySelectorAll("td").forEach(td=>{var _a18,_b2;const cell={};if(td.querySelectorAll("span").length||td.querySelectorAll("font").length){const spanStyle=handleDomToJson(td);typeof spanStyle!="string"&&(cell.p=spanStyle)}const txt=td.innerText;txt.trim().length===0?cell.v="":cell.v=txt;const style2=handleStringToStyle(td);for(core.Tools.isPlainObject(style2)&&(cell.s=style2);c2<colLen&&data[r][c2]!=null;)c2++;if(c2!==colLen){if(data[r][c2]==null){data[r][c2]=cell;const rowSpan=(_a18=Number(td.getAttribute("rowSpan")))!=null?_a18:1,colSpan=(_b2=Number(td.getAttribute("colSpan")))!=null?_b2:1;if(rowSpan>1||colSpan>1){const first={rs:+rowSpan-1,cs:+colSpan-1,r,c:c2};data[r][c2].mc=first;for(let rp=0;rp<rowSpan;rp++)for(let cp=0;cp<colSpan;cp++)rp===0&&cp===0||(data[r+rp][c2+cp]={mc:null})}}c2++}}),r++}),data}__name(handelTableToJson,"handelTableToJson");function handlePlainToJson(plain){const data=[],content=document.createElement("DIV");content.innerHTML=plain;const che=plain.replace(/\r/g,"").split(`
49
49
  `),colCheLen=che[0].split(" ").length;for(let i=0;i<che.length;i++)che[i].split(" ").length<colCheLen||data.push(che[i].split(" "));for(let i=0;i<data.length;i++)for(let j=0;j<data[i].length;j++)data[i][j].length?data[i][j]={v:data[i][j]||"",m:data[i][j]||""}:data[i][j]=null;return data}__name(handlePlainToJson,"handlePlainToJson");function handleTableMergeData(data,selection){data.length,data[0].length;let minH=0,minC=0;selection&&(minH=selection.startRow,minC=selection.startColumn);const mergeData=[];for(let i=0;i<data.length;i++)for(let j=0;j<data[i].length;j++)if(data[i][j]&&typeof data[i][j]=="object"&&"mc"in data[i][j])if(data[i][j].mc){const mc=data[i][j].mc,startRow=mc.r+minH,endRow=startRow+mc.rs,startColumn=mc.c+minC,endColumn=startColumn+mc.cs;mergeData.push({startRow,endRow,startColumn,endColumn}),delete data[i][j].mc}else data[i][j]=null;return{data,mergeData}}__name(handleTableMergeData,"handleTableMergeData");function handelExcelToJson(html){var _a18;let data=[];const content=document.createElement("html");content.innerHTML=html;const styleText=(_a18=content.querySelector("style"))==null?void 0:_a18.innerText;if(!styleText)return;const excelStyle=getStyles(styleText);if(data=new Array(content.querySelectorAll("table tr").length),!data.length)return[];let colLen=0;const trs=content.querySelectorAll("table tr");trs[0].querySelectorAll("td").forEach(item=>{let colSpan=0;const attr=item.getAttribute("colSpan");attr!==null?colSpan=+attr:colSpan=1,colLen+=colSpan});for(let i=0;i<data.length;i++)data[i]=new Array(colLen);let r=0;return trs.forEach(item=>{let c2=0;item.querySelectorAll("td").forEach(td=>{var _a19,_b2;const cell={};if(td.querySelectorAll("span").length||td.querySelectorAll("font").length){const spanStyle=handleDomToJson(td);typeof spanStyle!="string"&&(cell.p=spanStyle)}const txt=td.innerText;txt.trim().length===0?cell.v="":cell.v=txt;let cssText="";for(const attr in excelStyle)td.classList.contains(attr)&&(cssText+=excelStyle[attr]);const style2=handleStringToStyle(td,cssText);for(core.Tools.isPlainObject(style2)&&(cell.s=style2);c2<colLen&&data[r][c2]!=null;)c2++;if(c2!==colLen){if(data[r][c2]==null){data[r][c2]=cell;const rowSpan=(_a19=Number(td.getAttribute("rowSpan")))!=null?_a19:1,colSpan=(_b2=Number(td.getAttribute("colSpan")))!=null?_b2:1;if(rowSpan>1||colSpan>1){const first={rs:+rowSpan-1,cs:+colSpan-1,r,c:c2};data[r][c2].mc=first;for(let rp=0;rp<rowSpan;rp++)for(let cp=0;cp<colSpan;cp++)rp===0&&cp===0||(data[r+rp][c2+cp]={mc:null})}}c2++}}),r++}),data}__name(handelExcelToJson,"handelExcelToJson");function getStyles(styleText){const output={},string=styleText.replaceAll("<!--","").replaceAll("-->","").trim(),style2=string==null?void 0:string.replaceAll(" ","").replaceAll(`
50
- `,"").split("}");for(let i=0;i<style2.length;i++){if(!style2[i])continue;let attr=style2[i].split("{")[0].trim();attr.includes(".")&&(attr=attr.slice(1));const value=style2[i].split("{")[1].trim();output[attr]=value}return output}__name(getStyles,"getStyles");function getPtFontSizeByPx(size){const ptSize=Math.round(size*PX_TO_PT_RATIO);return ptSize<MIN_FONT_SIZE?MIN_FONT_SIZE:ptSize>MAX_FONT_SIZE?MAX_FONT_SIZE:ptSize}__name(getPtFontSizeByPx,"getPtFontSizeByPx");function extractFontFamily(styleStr){const regex=/font-family:\s*(?:"([^"]+)"|'([^']+)'|([^;]+))/i,matches=styleStr.match(regex);return matches?(matches[1]||matches[2]||matches[3]).trim():null}__name(extractFontFamily,"extractFontFamily");const textEditorContainer="univer-text-editor-container",textEditorContainerActive="univer-text-editor-container-active",textEditorContainerError="univer-text-editor-container-error",textEditorContainerDisabled="univer-text-editor-container-disabled",textEditorContainerPlaceholder="univer-text-editor-container-placeholder",textEditorValidationError="univer-text-editor-validation-error",styles$2={textEditorContainer,textEditorContainerActive,textEditorContainerError,textEditorContainerDisabled,textEditorContainerPlaceholder,textEditorValidationError},excludeProps=new Set(["snapshot","resizeCallBack","cancelDefaultResizeListener","isSheetEditor","canvasStyle","isFormulaEditor","isSingle","isReadonly","onlyInputFormula","onlyInputRange","value","onlyInputContent","isSingleChoice","openForSheetUnitId","openForSheetSubUnitId","onChange","onActive","onValid","placeholder"]);function TextEditor(props){const{id,snapshot,resizeCallBack,cancelDefaultResizeListener,isSheetEditor=!1,canvasStyle={},value,isSingle=!0,isReadonly=!1,isFormulaEditor=!1,onlyInputFormula=!1,onlyInputRange=!1,onlyInputContent=!1,isSingleChoice=!1,openForSheetUnitId,openForSheetSubUnitId,onChange,onActive,onValid,isValueValid=!0,placeholder}=props,editorService=core.useDependency(IEditorService),localeService=core.useDependency(core.LocaleService),[placeholderValue,placeholderSet]=React.useState(""),[validationContent,setValidationContent]=React.useState(""),[validationVisible,setValidationVisible]=React.useState(isValueValid),[validationOffset,setValidationOffset]=React.useState([0,0]),editorRef=React.useRef(null),[active,setActive]=React.useState(!1);if(!core.isInternalEditorID(id))throw new Error("Invalid editor ID");React.useEffect(()=>{const editorDom=editorRef.current;if(!editorDom)return;const resizeObserver=new ResizeObserver(()=>{cancelDefaultResizeListener!==!0&&editorService.resize(id),resizeCallBack&&resizeCallBack(editorDom)});resizeObserver.observe(editorDom);const registerSubscription=editorService.register({editorUnitId:id,initialSnapshot:snapshot,cancelDefaultResizeListener,isSheetEditor,canvasStyle,isSingle,isReadonly,isSingleChoice,onlyInputFormula,onlyInputRange,onlyInputContent,openForSheetUnitId,openForSheetSubUnitId,isFormulaEditor},editorDom);editorService.setValueNoRefresh(value||"",id),placeholderSet(placeholder||"");const activeChange=core.debounce(state=>{setActive(state),onActive&&onActive(state)},30),ANIMATION_DELAY=160,valueChange=core.debounce(editor=>{const unitId=editor.editorUnitId,isLegality=editorService.checkValueLegality(unitId);setTimeout(()=>{const rect=editor.getBoundingClientRect();setValidationOffset([rect.left,rect.top-16]),rect.left+rect.top>0&&setValidationVisible(isLegality),editor.onlyInputFormula()?setValidationContent(localeService.t("textEditor.formulaError")):setValidationContent(localeService.t("textEditor.rangeError"))},ANIMATION_DELAY),editorService.getValue(unitId)!==value&&(onValid&&onValid(isLegality),onChange&&onChange(editorService.getValue(id)))},30),focusStyleSubscription=editorService.focusStyle$.subscribe(unitId=>{let state=!1;unitId===id&&(state=!0),activeChange(state),setTimeout(()=>{if(!isElementVisible(editorDom))setValidationVisible(!0);else{const editor=editorService.getEditor(id);editor&&valueChange(editor)}},ANIMATION_DELAY)}),valueChangeSubscription=editorService.valueChange$.subscribe(editor=>{editor.isSheetEditor()||editor.editorUnitId===id&&valueChange(editor)});return()=>{resizeObserver.unobserve(editorDom),resizeObserver.disconnect(),registerSubscription.dispose(),focusStyleSubscription==null||focusStyleSubscription.unsubscribe(),valueChangeSubscription==null||valueChangeSubscription.unsubscribe()}},[]),React.useEffect(()=>{const editor=editorService.getEditor(id);editor!=null&&editor.update({isReadonly,isSingle,isSingleChoice,onlyInputContent,onlyInputFormula,onlyInputRange,openForSheetSubUnitId,openForSheetUnitId})},[isReadonly,isSingle,isSingleChoice,onlyInputContent,onlyInputFormula,onlyInputRange,openForSheetSubUnitId,openForSheetUnitId]),React.useEffect(()=>{value!=null&&editorService.setValueNoRefresh(value,id)},[value]),React.useEffect(()=>{setValidationVisible(isValueValid)},[isValueValid]);function hasValue(){const value2=editorService.getValue(id);return!(value2==null||value2==="")}__name(hasValue,"hasValue");const propsNew=Object.fromEntries(Object.entries(props).filter(([key])=>!excludeProps.has(key)));let className=styles$2.textEditorContainer;props.className!=null&&(className=props.className);let borderStyle="";return props.className==null&&(isReadonly?borderStyle=` ${styles$2.textEditorContainerDisabled}`:validationVisible?active&&(borderStyle=` ${styles$2.textEditorContainerActive}`):borderStyle=` ${styles$2.textEditorContainerError}`),jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsxs("div",{...propsNew,className:className+borderStyle,ref:editorRef,children:[jsxRuntimeExports.jsx("div",{style:{display:validationVisible?"none":"block"},className:styles$2.textEditorValidationError,children:validationContent}),jsxRuntimeExports.jsx("div",{style:{display:hasValue()?"none":"unset"},className:styles$2.textEditorContainerPlaceholder,children:placeholderValue})]})})}__name(TextEditor,"TextEditor");const rangeSelector="univer-range-selector",rangeSelectorEditor="univer-range-selector-editor",rangeSelectorIcon="univer-range-selector-icon",rangeSelectorActive="univer-range-selector-active",rangeSelectorError="univer-range-selector-error",rangeSelectorDisabled="univer-range-selector-disabled",rangeSelectorModal="univer-range-selector-modal",rangeSelectorModalContainer="univer-range-selector-modal-container",rangeSelectorModalContainerInput="univer-range-selector-modal-container-input",rangeSelectorModalContainerInputActive="univer-range-selector-modal-container-input-active",rangeSelectorModalContainerButton="univer-range-selector-modal-container-button",rangeSelectorModalContainerDeleteButton="univer-range-selector-modal-container-delete-button",rangeSelectorModalAdd="univer-range-selector-modal-add",rangeSelectorModalAddButton="univer-range-selector-modal-add-button",styles$1={rangeSelector,rangeSelectorEditor,rangeSelectorIcon,rangeSelectorActive,rangeSelectorError,rangeSelectorDisabled,rangeSelectorModal,rangeSelectorModalContainer,rangeSelectorModalContainerInput,rangeSelectorModalContainerInputActive,rangeSelectorModalContainerButton,rangeSelectorModalContainerDeleteButton,rangeSelectorModalAdd,rangeSelectorModalAddButton};function RangeSelector(props){const{onChange,id,value="",width=220,placeholder="",size="middle",onActive,onValid,isSingleChoice=!1,openForSheetUnitId,openForSheetSubUnitId,isReadonly=!1,className,textEditorClassName}=props,[rangeDataList,setRangeDataList]=React.useState([""]),addNewItem=__name(newValue=>{setRangeDataList(prevRangeDataList=>[...prevRangeDataList,newValue])},"addNewItem"),removeItem=__name(indexToRemove=>{setRangeDataList(prevRangeDataList=>prevRangeDataList.filter((_,index)=>index!==indexToRemove))},"removeItem"),changeItem=__name((indexToChange,newValue)=>{setRangeDataList(prevRangeDataList=>prevRangeDataList.map((item,index)=>index===indexToChange?newValue:item))},"changeItem"),changeLastItem=__name(newValue=>{setRangeDataList(prevRangeDataList=>{const newList=[...prevRangeDataList];return newList.length>0&&(newList[newList.length-1]=newValue),newList})},"changeLastItem"),editorService=core.useDependency(IEditorService),rangeSelectorService=core.useDependency(IRangeSelectorService),univerInstanceService=core.useDependency(core.IUniverInstanceService),[selectorVisible,setSelectorVisible]=React.useState(!1),localeService=core.useDependency(core.LocaleService),[active,setActive]=React.useState(!1),[valid,setValid]=React.useState(!0),[rangeValue,setRangeValue]=React.useState(value),[currentInputIndex,setCurrentInputIndex]=React.useState(-1),selectorRef=React.useRef(null),currentInputIndexRef=React.useRef(-1),openForSheetUnitIdRef=React.useRef(openForSheetUnitId),openForSheetSubUnitIdRef=React.useRef(openForSheetSubUnitId),isSingleChoiceRef=React.useRef(isSingleChoice),isReadonlyRef=React.useRef(isReadonly);React.useEffect(()=>{const selector=selectorRef.current;if(!selector)return;const resizeObserver=new ResizeObserver(()=>{editorService.resize(id)});resizeObserver.observe(selector);let prevRangesCount=1;const valueChangeSubscription=rangeSelectorService.selectionChange$.subscribe(ranges=>{if(rangeSelectorService.getCurrentSelectorId()!==id)return;if(ranges.length===0){prevRangesCount=0;return}const addItemCount=ranges.length-prevRangesCount;if(prevRangesCount=ranges.length,addItemCount<0)return;const lastRange=ranges[ranges.length-1];let rangeRef="";lastRange.unitId===openForSheetUnitIdRef.current&&lastRange.sheetId===openForSheetSubUnitIdRef.current?rangeRef=engineFormula.serializeRange(lastRange.range):lastRange.unitId===openForSheetUnitIdRef.current?rangeRef=engineFormula.serializeRangeWithSheet(lastRange.sheetName,lastRange.range):rangeRef=engineFormula.serializeRangeWithSpreadsheet(lastRange.unitId,lastRange.sheetName,lastRange.range),addItemCount>=1&&!isSingleChoiceRef.current?(addNewItem(rangeRef),setCurrentInputIndex(-1)):currentInputIndexRef.current===-1?changeLastItem(rangeRef):changeItem(currentInputIndexRef.current,rangeRef)});return()=>{valueChangeSubscription.unsubscribe(),resizeObserver.unobserve(selector)}},[]),React.useEffect(()=>{openForSheetUnitIdRef.current=openForSheetUnitId,openForSheetSubUnitIdRef.current=openForSheetSubUnitId,isSingleChoiceRef.current=isSingleChoice,isReadonlyRef.current=isReadonly},[openForSheetUnitId,openForSheetSubUnitId,isSingleChoice,isReadonly]),React.useEffect(()=>{currentInputIndexRef.current=currentInputIndex},[currentInputIndex]);function handleCloseModal(){setSelectorVisible(!1),rangeSelectorService.setCurrentSelectorId(null)}__name(handleCloseModal,"handleCloseModal");function handleOpenModal(){isReadonlyRef.current!==!0&&(editorService.closeRangePrompt(),rangeSelectorService.setCurrentSelectorId(id),setSelectorVisible(!0),rangeValue.length>0?setRangeDataList(valid?rangeValue.split(","):[""]):rangeSelectorService.openSelector())}__name(handleOpenModal,"handleOpenModal");function onEditorActive(state){setActive(state),onActive&&onActive(state)}__name(onEditorActive,"onEditorActive");function onEditorValid(state){setValid(state),onValid&&onValid(state)}__name(onEditorValid,"onEditorValid");function handleConform(){if(isReadonlyRef.current===!0){handleCloseModal();return}let result="";const list=rangeDataList.filter(rangeRef=>engineFormula.isReferenceStringWithEffectiveColumn(rangeRef.trim()));if(list.length===1){const rangeRef=list[0];engineFormula.isReferenceStringWithEffectiveColumn(rangeRef.trim())&&(result=rangeRef.trim())}else result=list.join(",");editorService.setValue(result,id),handleCloseModal()}__name(handleConform,"handleConform");function handleAddRange(){addNewItem(""),setCurrentInputIndex(-1)}__name(handleAddRange,"handleAddRange");function getSheetIdByName(name){var _a18,_b2;return((_b2=(_a18=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET))==null?void 0:_a18.getSheetBySheetName(name))==null?void 0:_b2.getSheetId())||""}__name(getSheetIdByName,"getSheetIdByName");function handleTextValueChange(value2){if(setRangeValue(value2||""),value2==null){onChange&&onChange([]);return}const ranges=engineFormula.getRangeWithRefsString(value2,getSheetIdByName);onChange&&onChange(ranges||[])}__name(handleTextValueChange,"handleTextValueChange");let sClassName=styles$1.rangeSelector;isReadonly?sClassName=`${styles$1.rangeSelector} ${styles$1.rangeSelectorDisabled}`:valid?active&&(sClassName=`${styles$1.rangeSelector} ${styles$1.rangeSelectorActive}`):sClassName=`${styles$1.rangeSelector} ${styles$1.rangeSelectorError}`,textEditorClassName&&(sClassName=`${sClassName} ${textEditorClassName}`);let height=28;return size==="mini"?height=20:size==="small"?height=24:size==="large"&&(height=32),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:sClassName,ref:selectorRef,style:{width,height},children:[jsxRuntimeExports.jsx(TextEditor,{placeholder,value,isReadonly,isSingleChoice,openForSheetUnitId,openForSheetSubUnitId,onValid:onEditorValid,onActive:onEditorActive,onChange:handleTextValueChange,id,onlyInputRange:!0,canvasStyle:{fontSize:10},className:styles$1.rangeSelectorEditor}),jsxRuntimeExports.jsx(design.Tooltip,{title:localeService.t("rangeSelector.buttonTooltip"),placement:"bottom",children:jsxRuntimeExports.jsx("button",{className:styles$1.rangeSelectorIcon,onClick:handleOpenModal,children:jsxRuntimeExports.jsx(SelectRangeSingle,{})})})]}),jsxRuntimeExports.jsx(design.Dialog,{width:"328px",visible:selectorVisible,title:localeService.t("rangeSelector.title"),draggable:!0,closeIcon:jsxRuntimeExports.jsx(CloseSingle,{}),footer:jsxRuntimeExports.jsxs("footer",{children:[jsxRuntimeExports.jsx(design.Button,{onClick:handleCloseModal,children:localeService.t("rangeSelector.cancel")}),jsxRuntimeExports.jsx(design.Button,{style:{marginLeft:10},onClick:handleConform,type:"primary",children:localeService.t("rangeSelector.confirm")})]}),onClose:handleCloseModal,children:jsxRuntimeExports.jsxs("div",{className:clsx$1(styles$1.rangeSelectorModal,className),children:[rangeDataList.map((item,index)=>jsxRuntimeExports.jsxs("div",{className:styles$1.rangeSelectorModalContainer,children:[jsxRuntimeExports.jsx("div",{style:{width:rangeDataList.length===1?"280px":"252px"},className:styles$1.rangeSelectorModalContainerInput,children:jsxRuntimeExports.jsx(design.Input,{className:currentInputIndex===index||rangeDataList.length-1===index&&currentInputIndex===-1?styles$1.rangeSelectorModalContainerInputActive:"",placeholder:localeService.t("rangeSelector.placeHolder"),affixWrapperStyle:{width:"100%"},onClick:__name(()=>setCurrentInputIndex(index),"onClick"),value:item,onChange:__name(value2=>changeItem(index,value2),"onChange")},`input${index}`)}),jsxRuntimeExports.jsx("div",{style:{display:rangeDataList.length===1?"none":"inline-block"},className:styles$1.rangeSelectorModalContainerButton,children:jsxRuntimeExports.jsx(DeleteSingle,{className:styles$1.rangeSelectorModalContainerDeleteButton,onClick:__name(()=>removeItem(index),"onClick")})})]},index)),jsxRuntimeExports.jsx("div",{style:{display:isSingleChoice?"none":"unset"},className:styles$1.rangeSelectorModalAdd,children:jsxRuntimeExports.jsxs(design.Button,{type:"link",size:"small",onClick:handleAddRange,className:styles$1.rangeSelectorModalAddButton,children:[jsxRuntimeExports.jsx(IncreaseSingle,{}),jsxRuntimeExports.jsx("span",{children:localeService.t("rangeSelector.addAnotherRange")})]})})]})})]})}__name(RangeSelector,"RangeSelector");const progressBar="univer-progress-bar",progressBarContainer="univer-progress-bar-container",progressBarInner="univer-progress-bar-inner",progressBarCloseButton="univer-progress-bar-close-button",styles={progressBar,progressBarContainer,progressBarInner,progressBarCloseButton};function ProgressBar(props){const{barColor}=props,progressService=core.useDependency(IProgressService),progressBarInnerRef=React.useRef(null),[visible,setVisible]=React.useState(!1);React.useEffect(()=>{const progressVisible=progressService.progressVisible$.subscribe(isVisible=>{isVisible?setVisible(isVisible):setTimeout(()=>{setVisible(isVisible),progressBarInnerRef.current&&(progressBarInnerRef.current.style.width="0%")},500)}),progressChange=progressService.progressChange$.subscribe(task=>{const{step}=task;if(progressBarInnerRef.current){const currentProgress=Number.parseFloat(progressBarInnerRef.current.style.width)||0,newProgress=currentProgress+(100-currentProgress)*step;progressBarInnerRef.current.style.width=`${newProgress}%`}});return()=>{progressVisible.unsubscribe(),progressChange.unsubscribe()}},[]);function handleClose(){progressService.stop()}return __name(handleClose,"handleClose"),jsxRuntimeExports.jsxs("div",{className:styles.progressBarContainer,style:{display:visible?"flex":"none"},children:[jsxRuntimeExports.jsx("div",{className:styles.progressBar,children:jsxRuntimeExports.jsx("div",{ref:progressBarInnerRef,className:styles.progressBarInner,style:{backgroundColor:barColor}})}),jsxRuntimeExports.jsx("div",{className:styles.progressBarCloseButton,onClick:handleClose,children:jsxRuntimeExports.jsx(CloseSingle,{})})]})}__name(ProgressBar,"ProgressBar");const UNI_DISABLE_CHANGING_FOCUS_KEY="UNI_DISABLE_CHANGING_FOCUS";exports.BuiltInUIPart=BuiltInUIPart;exports.CanvasFloatDomService=CanvasFloatDomService;exports.CanvasPopup=CanvasPopup;exports.CanvasPopupService=CanvasPopupService;exports.ComponentContainer=ComponentContainer;exports.ComponentManager=ComponentManager;exports.ContextMenu=DesktopContextMenu;exports.ContextMenuService=ContextMenuService;exports.CopyCommand=CopyCommand;exports.CopyShortcutItem=CopyShortcutItem;exports.CustomLabel=CustomLabel;exports.CutCommand=CutCommand;exports.CutShortcutItem=CutShortcutItem;exports.DEFAULT_BACKGROUND_COLOR_RGB=DEFAULT_BACKGROUND_COLOR_RGB;exports.DEFAULT_BACKGROUND_COLOR_RGBA=DEFAULT_BACKGROUND_COLOR_RGBA;exports.DISABLE_AUTO_FOCUS_KEY=DISABLE_AUTO_FOCUS_KEY;exports.DesktopLocalStorageService=DesktopLocalStorageService;exports.DesktopMessageService=DesktopMessageService;exports.DesktopSidebarService=DesktopSidebarService;exports.Editor=Editor;exports.FONT_FAMILY_LIST=FONT_FAMILY_LIST;exports.FONT_SIZE_LIST=FONT_SIZE_LIST;exports.FloatDom=FloatDom;exports.FontFamily=FontFamily;exports.FontFamilyItem=FontFamilyItem;exports.FontSize=FontSize;exports.GlobalZone=GlobalZone;exports.HTML_CLIPBOARD_MIME_TYPE=HTML_CLIPBOARD_MIME_TYPE;exports.IBeforeCloseService=IBeforeCloseService;exports.ICanvasPopupService=ICanvasPopupService;exports.IClipboardInterfaceService=IClipboardInterfaceService;exports.IConfirmService=IConfirmService;exports.IContextMenuService=IContextMenuService;exports.IDialogService=IDialogService;exports.IEditorService=IEditorService;exports.IGlobalZoneService=IGlobalZoneService;exports.ILayoutService=ILayoutService;exports.ILeftSidebarService=ILeftSidebarService;exports.IMenuService=IMenuService;exports.IMessageService=IMessageService;exports.INotificationService=INotificationService;exports.IPlatformService=IPlatformService;exports.IProgressService=IProgressService;exports.IRangeSelectorService=IRangeSelectorService;exports.IShortcutService=IShortcutService;exports.ISidebarService=ISidebarService;exports.IUIController=IUIController;exports.IUIPartsService=IUIPartsService;exports.IZenZoneService=IZenZoneService;exports.KeyCode=KeyCode$1;exports.Menu=Menu;exports.MenuGroup=MenuGroup;exports.MenuItemType=MenuItemType;exports.MenuPosition=MenuPosition;exports.MetaKeys=MetaKeys;exports.MobileContextMenu=MobileContextMenu;exports.PLAIN_TEXT_CLIPBOARD_MIME_TYPE=PLAIN_TEXT_CLIPBOARD_MIME_TYPE;exports.PasteCommand=PasteCommand;exports.PlatformService=PlatformService;exports.ProgressBar=ProgressBar;exports.ProgressService=ProgressService;exports.RangeSelector=RangeSelector;exports.RangeSelectorService=RangeSelectorService;exports.RedoShortcutItem=RedoShortcutItem;exports.SetEditorResizeOperation=SetEditorResizeOperation;exports.ShortcutPanelService=ShortcutPanelService;exports.Sidebar=Sidebar;exports.TextEditor=TextEditor;exports.ToggleShortcutPanelOperation=ToggleShortcutPanelOperation;exports.Toolbar=Toolbar;exports.ToolbarButton=ToolbarButton;exports.ToolbarItem=ToolbarItem;exports.UIPartsService=UIPartsService;exports.UI_CONFIG_KEY=UI_CONFIG_KEY;exports.UNIVER_UI_PLUGIN_NAME=UNIVER_UI_PLUGIN_NAME;exports.UNI_DISABLE_CHANGING_FOCUS_KEY=UNI_DISABLE_CHANGING_FOCUS_KEY;exports.UndoShortcutItem=UndoShortcutItem;exports.VueComponentWrapper=VueComponentWrapper;exports.ZIndexManager=ZIndexManager;exports.ZenZone=ZenZone;exports.builtInGlobalComponents=builtInGlobalComponents;exports.getHeaderFooterMenuHiddenObservable=getHeaderFooterMenuHiddenObservable;exports.getMenuHiddenObservable=getMenuHiddenObservable;exports.handelExcelToJson=handelExcelToJson;exports.handelTableToJson=handelTableToJson;exports.handleDomToJson=handleDomToJson;exports.handlePlainToJson=handlePlainToJson;exports.handleStringToStyle=handleStringToStyle;exports.handleTableColgroup=handleTableColgroup;exports.handleTableMergeData=handleTableMergeData;exports.handleTableRowGroup=handleTableRowGroup;exports.isElementVisible=isElementVisible;exports.mergeMenuConfigs=mergeMenuConfigs;exports.splitSpanText=splitSpanText;exports.t=t$1;exports.textTrim=textTrim;exports.useComponentsOfPart=useComponentsOfPart;exports.useEvent=useEvent$1;exports.useObservable=useObservable;exports.useScrollYOverContainer=useScrollYOverContainer;exports.useToolbarCollapseObserver=useToolbarCollapseObserver;exports.useToolbarGroups=useToolbarGroups;exports.useToolbarItemStatus=useToolbarItemStatus;
50
+ `,"").split("}");for(let i=0;i<style2.length;i++){if(!style2[i])continue;let attr=style2[i].split("{")[0].trim();attr.includes(".")&&(attr=attr.slice(1));const value=style2[i].split("{")[1].trim();output[attr]=value}return output}__name(getStyles,"getStyles");function getPtFontSizeByPx(size){const ptSize=Math.round(size*PX_TO_PT_RATIO);return ptSize<MIN_FONT_SIZE?MIN_FONT_SIZE:ptSize>MAX_FONT_SIZE?MAX_FONT_SIZE:ptSize}__name(getPtFontSizeByPx,"getPtFontSizeByPx");function extractFontFamily(styleStr){const regex=/font-family:\s*(?:"([^"]+)"|'([^']+)'|([^;]+))/i,matches=styleStr.match(regex);return matches?(matches[1]||matches[2]||matches[3]).trim():null}__name(extractFontFamily,"extractFontFamily");const textEditorContainer="univer-text-editor-container",textEditorContainerActive="univer-text-editor-container-active",textEditorContainerError="univer-text-editor-container-error",textEditorContainerDisabled="univer-text-editor-container-disabled",textEditorContainerPlaceholder="univer-text-editor-container-placeholder",textEditorValidationError="univer-text-editor-validation-error",styles$2={textEditorContainer,textEditorContainerActive,textEditorContainerError,textEditorContainerDisabled,textEditorContainerPlaceholder,textEditorValidationError},excludeProps=new Set(["snapshot","resizeCallBack","cancelDefaultResizeListener","isSheetEditor","canvasStyle","isFormulaEditor","isSingle","isReadonly","onlyInputFormula","onlyInputRange","value","onlyInputContent","isSingleChoice","openForSheetUnitId","openForSheetSubUnitId","onChange","onActive","onValid","placeholder"]);function TextEditor(props){const{id,snapshot,resizeCallBack,cancelDefaultResizeListener,isSheetEditor=!1,canvasStyle={},value,isSingle=!0,isReadonly=!1,isFormulaEditor=!1,onlyInputFormula=!1,onlyInputRange=!1,onlyInputContent=!1,isSingleChoice=!1,openForSheetUnitId,openForSheetSubUnitId,onChange,onActive,onValid,isValueValid=!0,placeholder}=props,editorService=core.useDependency(IEditorService),localeService=core.useDependency(core.LocaleService),[placeholderValue,placeholderSet]=React.useState(""),[validationContent,setValidationContent]=React.useState(""),[validationVisible,setValidationVisible]=React.useState(isValueValid),[validationOffset,setValidationOffset]=React.useState([0,0]),editorRef=React.useRef(null),[active,setActive]=React.useState(!1);if(!core.isInternalEditorID(id))throw new Error("Invalid editor ID");React.useEffect(()=>{const editorDom=editorRef.current;if(!editorDom)return;const resizeObserver=new ResizeObserver(()=>{cancelDefaultResizeListener!==!0&&editorService.resize(id),resizeCallBack&&resizeCallBack(editorDom)});resizeObserver.observe(editorDom);const registerSubscription=editorService.register({editorUnitId:id,initialSnapshot:snapshot,cancelDefaultResizeListener,isSheetEditor,canvasStyle,isSingle,isReadonly,isSingleChoice,onlyInputFormula,onlyInputRange,onlyInputContent,openForSheetUnitId,openForSheetSubUnitId,isFormulaEditor},editorDom);editorService.setValueNoRefresh(value||"",id),placeholderSet(placeholder||"");const activeChange=core.debounce(state=>{setActive(state),onActive&&onActive(state)},30),ANIMATION_DELAY=160,valueChange=core.debounce(editor=>{const unitId=editor.editorUnitId,isLegality=editorService.checkValueLegality(unitId);setTimeout(()=>{const rect=editor.getBoundingClientRect();setValidationOffset([rect.left,rect.top-16]),rect.left+rect.top>0&&setValidationVisible(isLegality),editor.onlyInputFormula()?setValidationContent(localeService.t("textEditor.formulaError")):setValidationContent(localeService.t("textEditor.rangeError"))},ANIMATION_DELAY),editorService.getValue(unitId)!==value&&(onValid&&onValid(isLegality),onChange&&onChange(editorService.getValue(id)))},30),focusStyleSubscription=editorService.focusStyle$.subscribe(unitId=>{let state=!1;unitId===id&&(state=!0),activeChange(state),setTimeout(()=>{if(!isElementVisible(editorDom))setValidationVisible(!0);else{const editor=editorService.getEditor(id);editor&&valueChange(editor)}},ANIMATION_DELAY)}),valueChangeSubscription=editorService.valueChange$.subscribe(editor=>{editor.isSheetEditor()||editor.editorUnitId===id&&valueChange(editor)});return()=>{resizeObserver.unobserve(editorDom),resizeObserver.disconnect(),registerSubscription.dispose(),focusStyleSubscription==null||focusStyleSubscription.unsubscribe(),valueChangeSubscription==null||valueChangeSubscription.unsubscribe()}},[]),React.useEffect(()=>{const editor=editorService.getEditor(id);editor!=null&&editor.update({isReadonly,isSingle,isSingleChoice,onlyInputContent,onlyInputFormula,onlyInputRange,openForSheetSubUnitId,openForSheetUnitId})},[isReadonly,isSingle,isSingleChoice,onlyInputContent,onlyInputFormula,onlyInputRange,openForSheetSubUnitId,openForSheetUnitId]),React.useEffect(()=>{value!=null&&editorService.setValueNoRefresh(value,id)},[value]),React.useEffect(()=>{setValidationVisible(isValueValid)},[isValueValid]);function hasValue(){const value2=editorService.getValue(id);return!(value2==null||value2==="")}__name(hasValue,"hasValue");const propsNew=Object.fromEntries(Object.entries(props).filter(([key])=>!excludeProps.has(key)));let className=styles$2.textEditorContainer;props.className!=null&&(className=props.className);let borderStyle="";return props.className==null&&(isReadonly?borderStyle=` ${styles$2.textEditorContainerDisabled}`:validationVisible?active&&(borderStyle=` ${styles$2.textEditorContainerActive}`):borderStyle=` ${styles$2.textEditorContainerError}`),jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsxs("div",{...propsNew,className:className+borderStyle,ref:editorRef,children:[jsxRuntimeExports.jsx("div",{style:{display:validationVisible?"none":"block"},className:styles$2.textEditorValidationError,children:validationContent}),jsxRuntimeExports.jsx("div",{style:{display:hasValue()?"none":"unset"},className:styles$2.textEditorContainerPlaceholder,children:placeholderValue})]})})}__name(TextEditor,"TextEditor");const rangeSelector="univer-range-selector",rangeSelectorEditor="univer-range-selector-editor",rangeSelectorIcon="univer-range-selector-icon",rangeSelectorActive="univer-range-selector-active",rangeSelectorError="univer-range-selector-error",rangeSelectorDisabled="univer-range-selector-disabled",rangeSelectorModal="univer-range-selector-modal",rangeSelectorModalContainer="univer-range-selector-modal-container",rangeSelectorModalContainerInput="univer-range-selector-modal-container-input",rangeSelectorModalContainerInputActive="univer-range-selector-modal-container-input-active",rangeSelectorModalContainerButton="univer-range-selector-modal-container-button",rangeSelectorModalContainerDeleteButton="univer-range-selector-modal-container-delete-button",rangeSelectorModalAdd="univer-range-selector-modal-add",rangeSelectorModalAddButton="univer-range-selector-modal-add-button",styles$1={rangeSelector,rangeSelectorEditor,rangeSelectorIcon,rangeSelectorActive,rangeSelectorError,rangeSelectorDisabled,rangeSelectorModal,rangeSelectorModalContainer,rangeSelectorModalContainerInput,rangeSelectorModalContainerInputActive,rangeSelectorModalContainerButton,rangeSelectorModalContainerDeleteButton,rangeSelectorModalAdd,rangeSelectorModalAddButton};function RangeSelector(props){const{onChange,id,value="",width=220,placeholder="",size="middle",onActive,onValid,isSingleChoice=!1,openForSheetUnitId,openForSheetSubUnitId,isReadonly=!1,className,textEditorClassName}=props,[rangeDataList,setRangeDataList]=React.useState([""]),addNewItem=__name(newValue=>{setRangeDataList(prevRangeDataList=>[...prevRangeDataList,newValue])},"addNewItem"),removeItem=__name(indexToRemove=>{setRangeDataList(prevRangeDataList=>prevRangeDataList.filter((_,index)=>index!==indexToRemove))},"removeItem"),changeItem=__name((indexToChange,newValue)=>{setRangeDataList(prevRangeDataList=>prevRangeDataList.map((item,index)=>index===indexToChange?newValue:item))},"changeItem"),changeLastItem=__name(newValue=>{setRangeDataList(prevRangeDataList=>{const newList=[...prevRangeDataList];return newList.length>0&&(newList[newList.length-1]=newValue),newList})},"changeLastItem"),editorService=core.useDependency(IEditorService),rangeSelectorService=core.useDependency(IRangeSelectorService),univerInstanceService=core.useDependency(core.IUniverInstanceService),[selectorVisible,setSelectorVisible]=React.useState(!1),localeService=core.useDependency(core.LocaleService),[active,setActive]=React.useState(!1),[valid,setValid]=React.useState(!0),[rangeValue,setRangeValue]=React.useState(value),[currentInputIndex,setCurrentInputIndex]=React.useState(-1),selectorRef=React.useRef(null),currentInputIndexRef=React.useRef(-1),openForSheetUnitIdRef=React.useRef(openForSheetUnitId),openForSheetSubUnitIdRef=React.useRef(openForSheetSubUnitId),isSingleChoiceRef=React.useRef(isSingleChoice),isReadonlyRef=React.useRef(isReadonly);React.useEffect(()=>{const selector=selectorRef.current;if(!selector)return;const resizeObserver=new ResizeObserver(()=>{editorService.resize(id)});resizeObserver.observe(selector);let prevRangesCount=1;const valueChangeSubscription=rangeSelectorService.selectionChange$.subscribe(ranges=>{if(rangeSelectorService.getCurrentSelectorId()!==id)return;if(ranges.length===0){prevRangesCount=0;return}const addItemCount=ranges.length-prevRangesCount;if(prevRangesCount=ranges.length,addItemCount<0)return;const lastRange=ranges[ranges.length-1];let rangeRef="";lastRange.unitId===openForSheetUnitIdRef.current&&lastRange.sheetId===openForSheetSubUnitIdRef.current?rangeRef=engineFormula.serializeRange(lastRange.range):lastRange.unitId===openForSheetUnitIdRef.current?rangeRef=engineFormula.serializeRangeWithSheet(lastRange.sheetName,lastRange.range):rangeRef=engineFormula.serializeRangeWithSpreadsheet(lastRange.unitId,lastRange.sheetName,lastRange.range),addItemCount>=1&&!isSingleChoiceRef.current?(addNewItem(rangeRef),setCurrentInputIndex(-1)):currentInputIndexRef.current===-1?changeLastItem(rangeRef):changeItem(currentInputIndexRef.current,rangeRef)});return()=>{valueChangeSubscription.unsubscribe(),resizeObserver.unobserve(selector)}},[]),React.useEffect(()=>{openForSheetUnitIdRef.current=openForSheetUnitId,openForSheetSubUnitIdRef.current=openForSheetSubUnitId,isSingleChoiceRef.current=isSingleChoice,isReadonlyRef.current=isReadonly},[openForSheetUnitId,openForSheetSubUnitId,isSingleChoice,isReadonly]),React.useEffect(()=>{currentInputIndexRef.current=currentInputIndex},[currentInputIndex]);function handleCloseModal(){setSelectorVisible(!1),rangeSelectorService.setCurrentSelectorId(null)}__name(handleCloseModal,"handleCloseModal");function handleOpenModal(){isReadonlyRef.current!==!0&&(editorService.closeRangePrompt(),rangeSelectorService.setCurrentSelectorId(id),setSelectorVisible(!0),rangeValue.length>0?setRangeDataList(valid?rangeValue.split(","):[""]):rangeSelectorService.openSelector())}__name(handleOpenModal,"handleOpenModal");function onEditorActive(state){setActive(state),onActive&&onActive(state)}__name(onEditorActive,"onEditorActive");function onEditorValid(state){setValid(state),onValid&&onValid(state)}__name(onEditorValid,"onEditorValid");function handleConform(){if(isReadonlyRef.current===!0){handleCloseModal();return}let result="";const list=rangeDataList.filter(rangeRef=>engineFormula.isReferenceStringWithEffectiveColumn(rangeRef.trim()));if(list.length===1){const rangeRef=list[0];engineFormula.isReferenceStringWithEffectiveColumn(rangeRef.trim())&&(result=rangeRef.trim())}else result=list.join(",");editorService.setValue(result,id),handleCloseModal()}__name(handleConform,"handleConform");function handleAddRange(){addNewItem(""),setCurrentInputIndex(-1)}__name(handleAddRange,"handleAddRange");function getSheetIdByName(name){var _a18,_b2;return((_b2=(_a18=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET))==null?void 0:_a18.getSheetBySheetName(name))==null?void 0:_b2.getSheetId())||""}__name(getSheetIdByName,"getSheetIdByName");function handleTextValueChange(value2){if(setRangeValue(value2||""),value2==null){onChange&&onChange([]);return}const ranges=engineFormula.getRangeWithRefsString(value2,getSheetIdByName);onChange&&onChange(ranges||[])}__name(handleTextValueChange,"handleTextValueChange");let sClassName=styles$1.rangeSelector;isReadonly?sClassName=`${styles$1.rangeSelector} ${styles$1.rangeSelectorDisabled}`:valid?active&&(sClassName=`${styles$1.rangeSelector} ${styles$1.rangeSelectorActive}`):sClassName=`${styles$1.rangeSelector} ${styles$1.rangeSelectorError}`,textEditorClassName&&(sClassName=`${sClassName} ${textEditorClassName}`);let height=28;return size==="mini"?height=20:size==="small"?height=24:size==="large"&&(height=32),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:sClassName,ref:selectorRef,style:{width,height},children:[jsxRuntimeExports.jsx(TextEditor,{placeholder,value,isReadonly,isSingleChoice,openForSheetUnitId,openForSheetSubUnitId,onValid:onEditorValid,onActive:onEditorActive,onChange:handleTextValueChange,id,onlyInputRange:!0,canvasStyle:{fontSize:10},className:styles$1.rangeSelectorEditor}),jsxRuntimeExports.jsx(design.Tooltip,{title:localeService.t("rangeSelector.buttonTooltip"),placement:"bottom",children:jsxRuntimeExports.jsx("button",{className:styles$1.rangeSelectorIcon,onClick:handleOpenModal,children:jsxRuntimeExports.jsx(SelectRangeSingle,{})})})]}),jsxRuntimeExports.jsx(design.Dialog,{width:"328px",visible:selectorVisible,title:localeService.t("rangeSelector.title"),draggable:!0,closeIcon:jsxRuntimeExports.jsx(CloseSingle,{}),footer:jsxRuntimeExports.jsxs("footer",{children:[jsxRuntimeExports.jsx(design.Button,{onClick:handleCloseModal,children:localeService.t("rangeSelector.cancel")}),jsxRuntimeExports.jsx(design.Button,{style:{marginLeft:10},onClick:handleConform,type:"primary",children:localeService.t("rangeSelector.confirm")})]}),onClose:handleCloseModal,children:jsxRuntimeExports.jsxs("div",{className:clsx$1(styles$1.rangeSelectorModal,className),children:[rangeDataList.map((item,index)=>jsxRuntimeExports.jsxs("div",{className:styles$1.rangeSelectorModalContainer,children:[jsxRuntimeExports.jsx("div",{style:{width:rangeDataList.length===1?"280px":"252px"},className:styles$1.rangeSelectorModalContainerInput,children:jsxRuntimeExports.jsx(design.Input,{className:currentInputIndex===index||rangeDataList.length-1===index&&currentInputIndex===-1?styles$1.rangeSelectorModalContainerInputActive:"",placeholder:localeService.t("rangeSelector.placeHolder"),affixWrapperStyle:{width:"100%"},onClick:__name(()=>setCurrentInputIndex(index),"onClick"),value:item,onChange:__name(value2=>changeItem(index,value2),"onChange")},`input${index}`)}),jsxRuntimeExports.jsx("div",{style:{display:rangeDataList.length===1?"none":"inline-block"},className:styles$1.rangeSelectorModalContainerButton,children:jsxRuntimeExports.jsx(DeleteSingle,{className:styles$1.rangeSelectorModalContainerDeleteButton,onClick:__name(()=>removeItem(index),"onClick")})})]},index)),jsxRuntimeExports.jsx("div",{style:{display:isSingleChoice?"none":"unset"},className:styles$1.rangeSelectorModalAdd,children:jsxRuntimeExports.jsxs(design.Button,{type:"link",size:"small",onClick:handleAddRange,className:styles$1.rangeSelectorModalAddButton,children:[jsxRuntimeExports.jsx(IncreaseSingle,{}),jsxRuntimeExports.jsx("span",{children:localeService.t("rangeSelector.addAnotherRange")})]})})]})})]})}__name(RangeSelector,"RangeSelector");const progressBar="univer-progress-bar",progressBarContainer="univer-progress-bar-container",progressBarInner="univer-progress-bar-inner",progressBarCloseButton="univer-progress-bar-close-button",styles={progressBar,progressBarContainer,progressBarInner,progressBarCloseButton};function ProgressBar(props){const{barColor}=props,progressService=core.useDependency(IProgressService),progressBarInnerRef=React.useRef(null),[visible,setVisible]=React.useState(!1);React.useEffect(()=>{const progressVisible=progressService.progressVisible$.subscribe(isVisible=>{isVisible?setVisible(isVisible):setTimeout(()=>{setVisible(isVisible),progressBarInnerRef.current&&(progressBarInnerRef.current.style.width="0%")},500)}),progressChange=progressService.progressChange$.subscribe(task=>{const{step}=task;if(progressBarInnerRef.current){const currentProgress=Number.parseFloat(progressBarInnerRef.current.style.width)||0,newProgress=currentProgress+(100-currentProgress)*step;progressBarInnerRef.current.style.width=`${newProgress}%`}});return()=>{progressVisible.unsubscribe(),progressChange.unsubscribe()}},[]);function handleClose(){progressService.stop()}return __name(handleClose,"handleClose"),jsxRuntimeExports.jsxs("div",{className:styles.progressBarContainer,style:{display:visible?"flex":"none"},children:[jsxRuntimeExports.jsx("div",{className:styles.progressBar,children:jsxRuntimeExports.jsx("div",{ref:progressBarInnerRef,className:styles.progressBarInner,style:{backgroundColor:barColor}})}),jsxRuntimeExports.jsx("div",{className:styles.progressBarCloseButton,onClick:handleClose,children:jsxRuntimeExports.jsx(CloseSingle,{})})]})}__name(ProgressBar,"ProgressBar");const UNI_DISABLE_CHANGING_FOCUS_KEY="UNI_DISABLE_CHANGING_FOCUS";exports.BuiltInUIPart=BuiltInUIPart;exports.CanvasFloatDomService=CanvasFloatDomService;exports.CanvasPopup=CanvasPopup;exports.CanvasPopupService=CanvasPopupService;exports.ComponentContainer=ComponentContainer;exports.ComponentManager=ComponentManager;exports.ContextMenu=DesktopContextMenu;exports.ContextMenuService=ContextMenuService;exports.CopyCommand=CopyCommand;exports.CopyShortcutItem=CopyShortcutItem;exports.CustomLabel=CustomLabel;exports.CutCommand=CutCommand;exports.CutShortcutItem=CutShortcutItem;exports.DEFAULT_BACKGROUND_COLOR_RGB=DEFAULT_BACKGROUND_COLOR_RGB;exports.DEFAULT_BACKGROUND_COLOR_RGBA=DEFAULT_BACKGROUND_COLOR_RGBA;exports.DISABLE_AUTO_FOCUS_KEY=DISABLE_AUTO_FOCUS_KEY;exports.DesktopLocalStorageService=DesktopLocalStorageService;exports.DesktopMessageService=DesktopMessageService;exports.DesktopSidebarService=DesktopSidebarService;exports.Editor=Editor;exports.FONT_FAMILY_LIST=FONT_FAMILY_LIST;exports.FONT_SIZE_LIST=FONT_SIZE_LIST;exports.FloatDom=FloatDom;exports.FontFamily=FontFamily;exports.FontFamilyItem=FontFamilyItem;exports.FontSize=FontSize;exports.GlobalZone=GlobalZone;exports.HTML_CLIPBOARD_MIME_TYPE=HTML_CLIPBOARD_MIME_TYPE;exports.IBeforeCloseService=IBeforeCloseService;exports.ICanvasPopupService=ICanvasPopupService;exports.IClipboardInterfaceService=IClipboardInterfaceService;exports.IConfirmService=IConfirmService;exports.IContextMenuService=IContextMenuService;exports.IDialogService=IDialogService;exports.IEditorService=IEditorService;exports.IGlobalZoneService=IGlobalZoneService;exports.ILayoutService=ILayoutService;exports.ILeftSidebarService=ILeftSidebarService;exports.IMenuService=IMenuService;exports.IMessageService=IMessageService;exports.INotificationService=INotificationService;exports.IPlatformService=IPlatformService;exports.IProgressService=IProgressService;exports.IRangeSelectorService=IRangeSelectorService;exports.IShortcutService=IShortcutService;exports.ISidebarService=ISidebarService;exports.IUIController=IUIController;exports.IUIPartsService=IUIPartsService;exports.IZenZoneService=IZenZoneService;exports.KeyCode=KeyCode$1;exports.Menu=Menu;exports.MenuGroup=MenuGroup;exports.MenuItemType=MenuItemType;exports.MenuPosition=MenuPosition;exports.MetaKeys=MetaKeys;exports.MobileContextMenu=MobileContextMenu;exports.PLAIN_TEXT_CLIPBOARD_MIME_TYPE=PLAIN_TEXT_CLIPBOARD_MIME_TYPE;exports.PasteCommand=PasteCommand;exports.PlatformService=PlatformService;exports.ProgressBar=ProgressBar;exports.ProgressService=ProgressService;exports.RangeSelector=RangeSelector;exports.RangeSelectorService=RangeSelectorService;exports.RedoShortcutItem=RedoShortcutItem;exports.SetEditorResizeOperation=SetEditorResizeOperation;exports.ShortcutPanelService=ShortcutPanelService;exports.Sidebar=Sidebar;exports.TextEditor=TextEditor;exports.ToggleShortcutPanelOperation=ToggleShortcutPanelOperation;exports.Toolbar=Toolbar;exports.ToolbarButton=ToolbarButton;exports.ToolbarItem=ToolbarItem;exports.UIPartsService=UIPartsService;exports.UI_CONFIG_KEY=UI_CONFIG_KEY;exports.UNIVER_UI_PLUGIN_NAME=UNIVER_UI_PLUGIN_NAME;exports.UNI_DISABLE_CHANGING_FOCUS_KEY=UNI_DISABLE_CHANGING_FOCUS_KEY;exports.UndoShortcutItem=UndoShortcutItem;exports.VueComponentWrapper=VueComponentWrapper;exports.ZIndexManager=ZIndexManager;exports.ZenZone=ZenZone;exports.builtInGlobalComponents=builtInGlobalComponents;exports.getHeaderFooterMenuHiddenObservable=getHeaderFooterMenuHiddenObservable;exports.getMenuHiddenObservable=getMenuHiddenObservable;exports.handelExcelToJson=handelExcelToJson;exports.handelTableToJson=handelTableToJson;exports.handleDomToJson=handleDomToJson;exports.handlePlainToJson=handlePlainToJson;exports.handleStringToStyle=handleStringToStyle;exports.handleTableColgroup=handleTableColgroup;exports.handleTableMergeData=handleTableMergeData;exports.handleTableRowGroup=handleTableRowGroup;exports.isElementVisible=isElementVisible;exports.mergeMenuConfigs=mergeMenuConfigs;exports.splitSpanText=splitSpanText;exports.t=t$1;exports.textTrim=textTrim;exports.useComponentsOfPart=useComponentsOfPart;exports.useEvent=useEvent$1;exports.useObservable=useObservable;exports.useScrollYOverContainer=useScrollYOverContainer;exports.useToolbarCollapseObserver=useToolbarCollapseObserver;exports.useToolbarGroups=useToolbarGroups;exports.useToolbarItemStatus=useToolbarItemStatus;exports.useVirtualList=useVirtualList;