@univerjs/sheets-ui 0.5.5-nightly.202501220324 → 0.5.5-nightly.202501221606

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const docsUi=require("@univerjs/docs-ui"),core=require("@univerjs/core"),engineRender=require("@univerjs/engine-render"),ui=require("@univerjs/ui"),React=require("react"),rxjs=require("rxjs"),sheets=require("@univerjs/sheets"),docs=require("@univerjs/docs"),engineFormula=require("@univerjs/engine-formula"),engineNumfmt=require("@univerjs/engine-numfmt"),design=require("@univerjs/design"),jsxRuntime=require("react/jsx-runtime"),telemetry=require("@univerjs/telemetry"),operators=require("rxjs/operators");function getEditorObject(unitId,renderManagerService){if(unitId==null)return;const currentRender=renderManagerService.getRenderById(unitId);if(currentRender==null)return;const{mainComponent,scene,engine,components}=currentRender,document2=mainComponent,docBackground=components.get(docsUi.DOCS_VIEW_KEY.BACKGROUND);return{document:document2,docBackground,scene,engine}}__name(getEditorObject,"getEditorObject");const SHEET_ZOOM_RANGE=[10,400],RANGE_SELECTOR_COMPONENT_KEY="RANGE_SELECTOR_COMPONENT_KEY",EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY="EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY";var SHEET_VIEW_KEY=(SHEET_VIEW_KEY2=>(SHEET_VIEW_KEY2.MAIN="__SpreadsheetRender__",SHEET_VIEW_KEY2.ROW="__SpreadsheetRowHeader__",SHEET_VIEW_KEY2.COLUMN="__SpreadsheetColumnHeader__",SHEET_VIEW_KEY2.LEFT_TOP="__SpreadsheetLeftTopPlaceholder__",SHEET_VIEW_KEY2))(SHEET_VIEW_KEY||{});const SHEET_COMPONENT_MAIN_LAYER_INDEX=0,SHEET_COMPONENT_SELECTION_LAYER_INDEX=1,SHEET_COMPONENT_HEADER_LAYER_INDEX=10,SHEET_COMPONENT_HEADER_SELECTION_LAYER_INDEX=11,SHEET_COMPONENT_UNHIDE_LAYER_INDEX=12,RANGE_MOVE_PERMISSION_CHECK=core.createInterceptorKey("rangeMovePermissionCheck"),RANGE_FILL_PERMISSION_CHECK=core.createInterceptorKey("rangeFillPermissionCheck");var SELECTION_SHAPE_DEPTH=(SELECTION_SHAPE_DEPTH2=>(SELECTION_SHAPE_DEPTH2[SELECTION_SHAPE_DEPTH2.FORMULA_EDITOR_SHOW=100]="FORMULA_EDITOR_SHOW",SELECTION_SHAPE_DEPTH2[SELECTION_SHAPE_DEPTH2.MARK_SELECTION=1e4]="MARK_SELECTION",SELECTION_SHAPE_DEPTH2))(SELECTION_SHAPE_DEPTH||{});function genNormalSelectionStyle(themeService){const styleSheet=themeService.getCurrentTheme(),fill=new core.ColorKit(styleSheet.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:styleSheet.primaryColor,fill,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:styleSheet.colorWhite,autofillSize:6,autofillStrokeWidth:1,autofillStroke:styleSheet.colorWhite,rowHeaderFill:fill,rowHeaderStroke:styleSheet.primaryColor,rowHeaderStrokeWidth:1,columnHeaderFill:fill,columnHeaderStroke:styleSheet.primaryColor,columnHeaderStrokeWidth:1,expandCornerSize:40}}__name(genNormalSelectionStyle,"genNormalSelectionStyle");const _SelectionRenderModel=class _SelectionRenderModel{constructor(){__publicField(this,"_startColumn",-1);__publicField(this,"_startRow",-1);__publicField(this,"_endColumn",-1);__publicField(this,"_endRow",-1);__publicField(this,"_startX",0);__publicField(this,"_startY",0);__publicField(this,"_endX",0);__publicField(this,"_endY",0);__publicField(this,"_primary");__publicField(this,"_rangeType",core.RANGE_TYPE.NORMAL)}get startColumn(){return this._startColumn}get startRow(){return this._startRow}get endColumn(){return this._endColumn}get endRow(){return this._endRow}get startX(){return this._startX}get startY(){return this._startY}get endX(){return this._endX}get endY(){return this._endY}get currentCell(){return this._primary}get rangeType(){return this._rangeType}isEqual(rangeWithCoord){const{startColumn,startRow,endColumn,endRow}=this,{startColumn:newStartColumn,startRow:newStartRow,endColumn:newEndColumn,endRow:newEndRow}=rangeWithCoord;return startColumn===newStartColumn&&startRow===newStartRow&&endColumn===newEndColumn&&endRow===newEndRow}isInclude(rangeWithCoord){const{startColumn,startRow,endColumn,endRow}=this,{startColumn:newStartColumn,startRow:newStartRow,endColumn:newEndColumn,endRow:newEndRow}=rangeWithCoord;return!(newEndColumn<startColumn||newStartColumn>endColumn||newStartRow>endRow||newEndRow<startRow)}highlightToSelection(){if(this._primary)return core.convertCellToRange(this._primary)}getRange(){return{startColumn:this._startColumn,startRow:this._startRow,endColumn:this._endColumn,endRow:this._endRow,startX:this._startX,startY:this._startY,endX:this._endX,endY:this._endY,rangeType:this.rangeType}}getCell(){return this._primary}getRangeType(){return this._rangeType}setRangeType(rangeType){this._rangeType=rangeType}getValue(){return{rangeWithCoord:this.getRange(),primaryWithCoord:this._primary}}setValue(newSelectionRange,currentCell){const{startColumn,startRow,endColumn,endRow,startX,startY,endX,endY,rangeType}=newSelectionRange;this._startColumn=startColumn,this._startRow=startRow,this._endColumn=endColumn,this._endRow=endRow,this._startX=startX,this._startY=startY,this._endX=endX,this._endY=endY,rangeType!==void 0&&(this._rangeType=rangeType),currentCell!==void 0&&this.setCurrentCell(currentCell)}setCurrentCell(currentCell){this._primary=currentCell}clearCurrentCell(){this._primary=null}};__name(_SelectionRenderModel,"SelectionRenderModel");let SelectionRenderModel=_SelectionRenderModel;function attachRangeWithCoord(skeleton,range){const{startRow,startColumn,endRow,endColumn,rangeType}=range,_startRow=endRow<startRow?endRow:startRow,_endRow=endRow<startRow?startRow:endRow,_startColumn=endColumn<startColumn?endColumn:startColumn,_endColumn=endColumn<startColumn?startColumn:endColumn,startCell=skeleton.getNoMergeCellPositionByIndex(_startRow,_startColumn),endCell=skeleton.getNoMergeCellPositionByIndex(_endRow,_endColumn);return{startRow,startColumn,endRow,endColumn,rangeType,startY:(startCell==null?void 0:startCell.startY)||0,endY:(endCell==null?void 0:endCell.endY)||0,startX:(startCell==null?void 0:startCell.startX)||0,endX:(endCell==null?void 0:endCell.endX)||0}}__name(attachRangeWithCoord,"attachRangeWithCoord");function attachSelectionWithCoord(selection,skeleton){const{range,primary,style}=selection,rangeWithCoord=attachRangeWithCoord(skeleton,range),primaryWithCoord=primary&&attachPrimaryWithCoord(skeleton,primary);return{rangeWithCoord,primaryWithCoord,style}}__name(attachSelectionWithCoord,"attachSelectionWithCoord");function attachPrimaryWithCoord(skeleton,primary){const{actualRow,actualColumn,isMerged,isMergedMainCell,startRow,startColumn,endRow,endColumn}=primary,cellPosition=skeleton.getNoMergeCellPositionByIndex(actualRow,actualColumn),startCell=skeleton.getNoMergeCellPositionByIndex(startRow,startColumn),endCell=skeleton.getNoMergeCellPositionByIndex(endRow,endColumn);return{actualRow,actualColumn,isMerged,isMergedMainCell,startX:cellPosition.startX,startY:cellPosition.startY,endX:cellPosition.endX,endY:cellPosition.endY,mergeInfo:{startRow,startColumn,endRow,endColumn,startY:(startCell==null?void 0:startCell.startY)||0,endY:(endCell==null?void 0:endCell.endY)||0,startX:(startCell==null?void 0:startCell.startX)||0,endX:(endCell==null?void 0:endCell.endX)||0}}}__name(attachPrimaryWithCoord,"attachPrimaryWithCoord");const HELPER_SELECTION_TEMP_NAME="__SpreadsheetHelperSelectionTempRect",SELECTION_CONTROL_DELETING_LIGHTEN=35,_SelectionShapeExtension=class _SelectionShapeExtension{constructor(_control,options){__publicField(this,"_startOffsetX",0);__publicField(this,"_startOffsetY",0);__publicField(this,"_relativeSelectionPositionRow",0);__publicField(this,"_relativeSelectionPositionColumn",0);__publicField(this,"_relativeSelectionRowLength",0);__publicField(this,"_relativeSelectionColumnLength",0);__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_helperSelection");__publicField(this,"_scrollTimer");__publicField(this,"_activeViewport");__publicField(this,"_targetSelection",{startY:0,endY:0,startX:0,endX:0,startRow:-1,endRow:-1,startColumn:-1,endColumn:-1});__publicField(this,"_isInMergeState",!1);__publicField(this,"_fillControlColors",[]);__publicField(this,"_skeleton");__publicField(this,"_scene");__publicField(this,"_themeService");__publicField(this,"_injector");__publicField(this,"_selectionHooks");this._control=_control,this._skeleton=options.skeleton,this._scene=options.scene,this._themeService=options.themeService,this._injector=options.injector,this._selectionHooks=options.selectionHooks,this._initialControl(),this._initialWidget(),this._initialAutoFill(),this._control.dispose$.subscribe(()=>{this.dispose()})}get isHelperSelection(){return this._control.isHelperSelection}dispose(){var _a61,_b;(_a61=this._scrollTimer)==null||_a61.dispose(),this._fillControlColors=[],this._clearObserverEvent(),(_b=this._helperSelection)==null||_b.dispose()}_getFreeze(){var _a61,_b;return(_b=(_a61=this._injector.get(engineRender.IRenderManagerService).withCurrentTypeOfUnit(core.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:_a61.getCurrent())==null?void 0:_b.skeleton.getWorksheetConfig().freeze}_isSelectionInViewport(selection,viewport){const freeze=this._getFreeze()||{startRow:-1,startColumn:-1,xSplit:0,ySplit:0};switch(viewport.viewportKey){case engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN:return selection.endRow>=freeze.startRow&&selection.endColumn>=freeze.startColumn;case engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP:case engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT:return selection.endColumn>=freeze.startColumn&&selection.startRow<freeze.startRow;case engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT:case engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM:return selection.endRow>=freeze.startRow&&selection.startColumn<freeze.startColumn;case engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP:case engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT:case engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP:case engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP:return selection.startRow<freeze.startRow&&selection.startColumn<freeze.startColumn}}_clearObserverEvent(){var _a61,_b;(_a61=this._scenePointerMoveSub)==null||_a61.unsubscribe(),(_b=this._scenePointerUpSub)==null||_b.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}_initialControl(){const{leftControl,rightControl,topControl,bottomControl}=this._control;[leftControl,rightControl,topControl,bottomControl].forEach(control=>{control.onPointerEnter$.subscribeEvent(()=>{var _a61;((_a61=this._injector.get(ISheetSelectionRenderService,core.Quantity.OPTIONAL))==null?void 0:_a61.interceptor.fetchThroughInterceptors(RANGE_MOVE_PERMISSION_CHECK)(!1,null))!==!1&&control.setCursor(engineRender.CURSOR_TYPE.MOVE)}),control.onPointerLeave$.subscribeEvent(()=>{control.resetCursor()}),control.onPointerDown$.subscribeEvent(this._controlPointerDownHandler.bind(this))})}_controlMoving(moveOffsetX,moveOffsetY){var _a61;const scene=this._scene,scrollXY=scene.getScrollXYInfoByViewport(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY])),{scaleX,scaleY}=scene.getAncestorScale(),actualCellIndex=this._skeleton.getCellIndexByOffset(moveOffsetX,moveOffsetY,scaleX,scaleY,scrollXY),{row,column}=actualCellIndex,maxRow=this._skeleton.getRowCount()-1,maxColumn=this._skeleton.getColumnCount()-1;let startRow=Math.max(0,row+this._relativeSelectionPositionRow),endRow=startRow+this._relativeSelectionRowLength;endRow>maxRow&&(endRow=maxRow,endRow-startRow<this._relativeSelectionRowLength&&(startRow=endRow-this._relativeSelectionRowLength));let startColumn=Math.max(0,column+this._relativeSelectionPositionColumn),endColumn=startColumn+this._relativeSelectionColumnLength;endColumn>maxColumn&&(endColumn=maxColumn,endColumn-startColumn<this._relativeSelectionColumnLength&&(startColumn=endColumn-this._relativeSelectionColumnLength));const primaryCell=this._skeleton.worksheet.getCellInfoInMergeData(startRow,startColumn),selectionWithCoord=attachSelectionWithCoord({range:{startRow,endRow,startColumn,endColumn},primary:primaryCell,style:null},this._skeleton),startCell=this._skeleton.getNoMergeCellPositionByIndex(startRow,startColumn),endCell=this._skeleton.getNoMergeCellPositionByIndex(endRow,endColumn),startY=(startCell==null?void 0:startCell.startY)||0,endY=(endCell==null?void 0:endCell.endY)||0,startX=(startCell==null?void 0:startCell.startX)||0,endX=(endCell==null?void 0:endCell.endX)||0;(_a61=this._helperSelection)==null||_a61.transformByState({left:startX,top:startY,width:endX-startX,height:endY-startY}),this._targetSelection={...selectionWithCoord.rangeWithCoord},this._control.selectionMoving$.next(selectionWithCoord.rangeWithCoord)}_controlPointerDownHandler(evt){const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,scene=this._scene,relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords,scrollXY=scene.getScrollXYInfoByViewport(relativeCoords),{scaleX,scaleY}=scene.getAncestorScale(),actualSelection=this._skeleton.getCellIndexByOffset(newEvtOffsetX,newEvtOffsetY,scaleX,scaleY,scrollXY);this._startOffsetX=newEvtOffsetX,this._startOffsetY=newEvtOffsetY;const{row,column}=actualSelection,{startRow:originStartRow,startColumn:originStartColumn,endRow:originEndRow,endColumn:originEndColumn}=this._control.model;let fixRow=0,fixColumn=0;row<originStartRow?fixRow-=1:row>originEndRow&&(fixRow+=1),column<originStartColumn?fixColumn-=1:column>originEndColumn&&(fixColumn+=1),this._relativeSelectionPositionRow=originStartRow-row+fixRow,this._relativeSelectionPositionColumn=originStartColumn-column+fixColumn,this._relativeSelectionRowLength=originEndRow-originStartRow,this._relativeSelectionColumnLength=originEndColumn-originStartColumn;const style=this._control.currentStyle,scale=this._getScale();this.isHelperSelection&&(this._helperSelection=new engineRender.Rect(HELPER_SELECTION_TEMP_NAME,{stroke:style.stroke,strokeWidth:style.strokeWidth/scale}),scene.addObject(this._helperSelection));const viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),scrollTimer=engineRender.ScrollTimer.create(scene);this._scrollTimer=scrollTimer,scrollTimer.startScroll(newEvtOffsetX,newEvtOffsetY,viewMain),scene.disableObjectsEvent(),this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{var _a61;const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt;if(((_a61=this._injector.get(ISheetSelectionRenderService,core.Quantity.OPTIONAL))==null?void 0:_a61.interceptor.fetchThroughInterceptors(RANGE_MOVE_PERMISSION_CHECK)(!1,null))===!1)return;const{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._controlMoving(newMoveOffsetX,newMoveOffsetY),scene.setCursor(engineRender.CURSOR_TYPE.MOVE),scrollTimer.scrolling(newMoveOffsetX,newMoveOffsetY,()=>{this._controlMoving(newMoveOffsetX,newMoveOffsetY)})}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a61,_b,_c,_d;(_a61=this._helperSelection)==null||_a61.dispose();const scene2=this._scene;scene2.resetCursor(),this._clearObserverEvent(),scene2.enableObjectsEvent(),(_b=this._scrollTimer)==null||_b.dispose(),this._control.selectionMoveEnd$.next(this._targetSelection),(_d=(_c=this._selectionHooks).selectionMoveEnd)==null||_d.call(_c)})}_initialWidget(){const{topLeftWidget,topCenterWidget,topRightWidget,middleLeftWidget,middleRightWidget,bottomLeftWidget,bottomCenterWidget,bottomRightWidget}=this._control,cursors=[engineRender.CURSOR_TYPE.NORTH_WEST_RESIZE,engineRender.CURSOR_TYPE.NORTH_RESIZE,engineRender.CURSOR_TYPE.NORTH_EAST_RESIZE,engineRender.CURSOR_TYPE.WEST_RESIZE,engineRender.CURSOR_TYPE.EAST_RESIZE,engineRender.CURSOR_TYPE.SOUTH_WEST_RESIZE,engineRender.CURSOR_TYPE.SOUTH_RESIZE,engineRender.CURSOR_TYPE.SOUTH_EAST_RESIZE];[topLeftWidget,topCenterWidget,topRightWidget,middleLeftWidget,middleRightWidget,bottomLeftWidget,bottomCenterWidget,bottomRightWidget].forEach((control,index)=>{control.onPointerEnter$.subscribeEvent(()=>{control.setCursor(cursors[index])}),control.onPointerLeave$.subscribeEvent(()=>{control.resetCursor()}),control.onPointerDown$.subscribeEvent(evt=>{this._widgetPointerDownEvent(evt,cursors[index])})})}_widgetPointerDownEvent(evt,cursor){const scene=this._scene,{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords;this._startOffsetX=evtOffsetX,this._startOffsetY=evtOffsetY;const{startRow:originStartRow,startColumn:originStartColumn,endRow:originEndRow,endColumn:originEndColumn}=this._control.model,startRow=Math.min(originStartRow,originEndRow),startColumn=Math.min(originStartColumn,originEndColumn),endRow=Math.max(originStartRow,originEndRow),endColumn=Math.max(originStartColumn,originEndColumn);this._relativeSelectionPositionRow=startRow,this._relativeSelectionPositionColumn=startColumn,this._relativeSelectionRowLength=endRow-startRow,this._relativeSelectionColumnLength=endColumn-startColumn,cursor===engineRender.CURSOR_TYPE.NORTH_WEST_RESIZE?(this._relativeSelectionPositionRow=endRow,this._relativeSelectionPositionColumn=endColumn):cursor===engineRender.CURSOR_TYPE.NORTH_RESIZE?this._relativeSelectionPositionRow=endRow:cursor===engineRender.CURSOR_TYPE.NORTH_EAST_RESIZE?this._relativeSelectionPositionRow=endRow:cursor===engineRender.CURSOR_TYPE.WEST_RESIZE?this._relativeSelectionPositionColumn=endColumn:cursor===engineRender.CURSOR_TYPE.SOUTH_WEST_RESIZE?this._relativeSelectionPositionColumn=endColumn:cursor===engineRender.CURSOR_TYPE.SOUTH_RESIZE&&(this._relativeSelectionPositionRow=startRow);const scrollTimer=engineRender.ScrollTimer.create(scene),viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);scrollTimer.startScroll(newEvtOffsetX,newEvtOffsetY,viewMain),this._scrollTimer=scrollTimer,scene.disableObjectsEvent(),this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt,{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._widgetMoving(newMoveOffsetX,newMoveOffsetY,cursor),scene.setCursor(cursor),scrollTimer.scrolling(newMoveOffsetX,newMoveOffsetY,()=>{this._widgetMoving(newMoveOffsetX,newMoveOffsetY,cursor)})}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a61,_b,_c;const scene2=this._scene;scene2.resetCursor(),this._clearObserverEvent(),scene2.enableObjectsEvent(),(_a61=this._scrollTimer)==null||_a61.dispose(),this._control.selectionScaled$.next(this._targetSelection),(_c=(_b=this._selectionHooks).selectionMoveEnd)==null||_c.call(_b)})}_widgetMoving(moveOffsetX,moveOffsetY,cursor){const scene=this._scene,scrollXY=scene.getScrollXYInfoByViewport(engineRender.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),{scaleX,scaleY}=scene.getAncestorScale(),moveActualSelection=this._skeleton.getCellIndexByOffset(moveOffsetX,moveOffsetY,scaleX,scaleY,scrollXY),{row,column}=moveActualSelection;let startRow=this._relativeSelectionPositionRow,startColumn=this._relativeSelectionPositionColumn,endRow=row,endColumn=column;cursor===engineRender.CURSOR_TYPE.NORTH_WEST_RESIZE?(startRow=row,startColumn=column,endRow=this._relativeSelectionPositionRow,endColumn=this._relativeSelectionPositionColumn):cursor===engineRender.CURSOR_TYPE.NORTH_RESIZE?(startRow=row,startColumn=this._relativeSelectionPositionColumn,endRow=this._relativeSelectionPositionRow,endColumn=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength):cursor===engineRender.CURSOR_TYPE.NORTH_EAST_RESIZE?(startRow=row,startColumn=this._relativeSelectionPositionColumn,endRow=this._relativeSelectionPositionRow,endColumn=column):cursor===engineRender.CURSOR_TYPE.WEST_RESIZE?(startRow=this._relativeSelectionPositionRow,startColumn=column,endRow=this._relativeSelectionPositionRow+this._relativeSelectionRowLength,endColumn=this._relativeSelectionPositionColumn):cursor===engineRender.CURSOR_TYPE.EAST_RESIZE?endRow=this._relativeSelectionPositionRow+this._relativeSelectionRowLength:cursor===engineRender.CURSOR_TYPE.SOUTH_WEST_RESIZE?(startRow=this._relativeSelectionPositionRow,startColumn=column,endRow=row,endColumn=this._relativeSelectionPositionColumn):cursor===engineRender.CURSOR_TYPE.SOUTH_RESIZE&&(startRow=this._relativeSelectionPositionRow,startColumn=this._relativeSelectionPositionColumn,endRow=row,endColumn=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength);const range=this._swapPositions(startRow,startColumn,endRow,endColumn),primaryCell=this._skeleton.getCellWithMergeInfoByIndex(startRow,startColumn),selectionRangeWithCoord=attachSelectionWithCoord({range,primary:primaryCell,style:null},this._skeleton);this._targetSelection={...selectionRangeWithCoord.rangeWithCoord},this._control.updateRangeBySelectionWithCoord(selectionRangeWithCoord),this._control.selectionScaling$.next(this._targetSelection)}_initialAutoFill(){const{fillControl}=this._control;fillControl.onPointerEnter$.subscribeEvent(evt=>{this._injector.get(ISheetSelectionRenderService).interceptor.fetchThroughInterceptors(RANGE_FILL_PERMISSION_CHECK)(!1,{x:evt.offsetX,y:evt.offsetY,skeleton:this._skeleton,scene:this._scene})&&fillControl.setCursor(engineRender.CURSOR_TYPE.CROSSHAIR)}),fillControl.onPointerLeave$.subscribeEvent(()=>{fillControl.resetCursor()}),fillControl.onPointerDown$.subscribeEvent(this._autoFillForPointerdown.bind(this))}_autoFillMoving(moveOffsetX,moveOffsetY){var _a61,_b,_c;const scene=this._scene,scrollXY=scene.getViewportScrollXY(this._activeViewport),{scaleX,scaleY}=scene.getAncestorScale(),moveActualSelection=this._skeleton.getCellIndexByOffset(moveOffsetX,moveOffsetY,scaleX,scaleY,scrollXY),{row,column}=moveActualSelection,moveRelativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY])),maxRow=this._skeleton.getRowCount()-1,maxColumn=this._skeleton.getColumnCount()-1;let startRow=this._relativeSelectionPositionRow,startColumn=this._relativeSelectionPositionColumn,endRow=this._relativeSelectionPositionRow+this._relativeSelectionRowLength,endColumn=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength,isLighten=!1,isRowDropping=!0;if((column<startColumn||column>endColumn)&&row>=startRow&&row<=endRow){const rulerValue=this._fillRuler(column,startColumn,endColumn,this._relativeSelectionColumnLength,maxColumn);startColumn=rulerValue.startRowOrColumn,endColumn=rulerValue.endRowOrColumn,isLighten=rulerValue.isLighten,isRowDropping=!1}else if((row<startRow||row>endRow)&&column>=startColumn&&column<=endColumn){const rulerValue=this._fillRuler(row,startRow,endRow,this._relativeSelectionRowLength,maxRow);startRow=rulerValue.startRowOrColumn,endRow=rulerValue.endRowOrColumn,isLighten=rulerValue.isLighten}else if(Math.abs(this._startOffsetX-moveRelativeCoords.x-scrollXY.x)/2>Math.abs(this._startOffsetY-moveRelativeCoords.y-scrollXY.y)){const rulerValue=this._fillRuler(column,startColumn,endColumn,this._relativeSelectionColumnLength,maxColumn);startColumn=rulerValue.startRowOrColumn,endColumn=rulerValue.endRowOrColumn,isLighten=rulerValue.isLighten,isRowDropping=!1}else{const rulerValue=this._fillRuler(row,startRow,endRow,this._relativeSelectionRowLength,maxRow);startRow=rulerValue.startRowOrColumn,endRow=rulerValue.endRowOrColumn,isLighten=rulerValue.isLighten}const startCell=this._skeleton.getNoMergeCellPositionByIndex(startRow,startColumn),endCell=this._skeleton.getNoMergeCellPositionByIndex(endRow,endColumn),startY=(startCell==null?void 0:startCell.startY)||0,endY=(endCell==null?void 0:endCell.endY)||0,startX=(startCell==null?void 0:startCell.startX)||0,endX=(endCell==null?void 0:endCell.endX)||0;isLighten?this._controlHandler((o,index)=>{const newColor=new core.ColorKit(this._fillControlColors[index]).lighten(SELECTION_CONTROL_DELETING_LIGHTEN).toRgbString();o.setProps({fill:newColor})}):this._controlHandler((o,index)=>{o.setProps({fill:this._fillControlColors[index]})});const SELECTION_CONTROL_BORDER_BUFFER_WIDTH_SCALE=sheets.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/this._getScale();startRow===endRow&&isRowDropping===!0||startColumn===endColumn&&isRowDropping===!1?(_a61=this._helperSelection)==null||_a61.hide():((_b=this._helperSelection)==null||_b.transformByState({left:startX-SELECTION_CONTROL_BORDER_BUFFER_WIDTH_SCALE/2,top:startY-SELECTION_CONTROL_BORDER_BUFFER_WIDTH_SCALE/2,width:endX-startX,height:endY-startY}),(_c=this._helperSelection)==null||_c.show()),this._targetSelection={startY,endY,startX,endX,startRow,endRow,startColumn,endColumn},this._control.selectionFilling$.next(this._targetSelection)}_autoFillForPointerdown(evt){const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,scene=this._scene,relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords;this._startOffsetX=newEvtOffsetX,this._startOffsetY=newEvtOffsetY;const{startRow:originStartRow,startColumn:originStartColumn,endRow:originEndRow,endColumn:originEndColumn}=this._control.model;this._isInMergeState=this._hasMergeInRange(originStartRow,originStartColumn,originEndRow,originEndColumn),this._relativeSelectionPositionRow=originStartRow,this._relativeSelectionPositionColumn=originStartColumn,this._relativeSelectionRowLength=originEndRow-originStartRow,this._relativeSelectionColumnLength=originEndColumn-originStartColumn;const style=this._control.currentStyle;let stroke=style==null?void 0:style.stroke,strokeWidth=style==null?void 0:style.strokeWidth;const defaultStyle=genNormalSelectionStyle(this._themeService);stroke==null&&(stroke=defaultStyle.stroke),strokeWidth==null&&(strokeWidth=defaultStyle.strokeWidth);const scale=this._getScale();strokeWidth/=scale;const SELECTION_CONTROL_BORDER_BUFFER_WIDTH_SCALE=sheets.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/scale,darkenColor=new core.ColorKit(stroke).darken(2).toRgbString();this.isHelperSelection&&(this._helperSelection=new engineRender.Rect(HELPER_SELECTION_TEMP_NAME,{stroke:darkenColor,strokeWidth:strokeWidth+SELECTION_CONTROL_BORDER_BUFFER_WIDTH_SCALE/2}),scene.addObject(this._helperSelection)),this._activeViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY]));const viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),scrollTimer=engineRender.ScrollTimer.create(scene,this._activeViewport.viewportKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN?engineRender.ScrollTimerType.ALL:engineRender.ScrollTimerType.NONE);scrollTimer.startScroll(newEvtOffsetX,newEvtOffsetY,viewportMain),this._scrollTimer=scrollTimer,scene.disableObjectsEvent(),this._controlHandler(o=>{this._fillControlColors.push(o.fill)}),this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{var _a61;const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt,currentViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));if(!this._injector.get(ISheetSelectionRenderService).interceptor.fetchThroughInterceptors(RANGE_FILL_PERMISSION_CHECK)(!1,{x:evt.offsetX,y:evt.offsetY,skeleton:this._skeleton,scene:this._scene}))return;const{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._autoFillMoving(newMoveOffsetX,newMoveOffsetY),scene.setCursor(engineRender.CURSOR_TYPE.CROSSHAIR);const newSelection=this._targetSelection;if(viewportMain&&currentViewport&&((_a61=this._activeViewport)==null?void 0:_a61.viewportKey)!==(currentViewport==null?void 0:currentViewport.viewportKey)){let movingRange;newSelection.startRow!==originStartRow?(scrollTimer.scrollTimerType=engineRender.ScrollTimerType.Y,movingRange={...newSelection,endRow:newSelection.startRow}):newSelection.endRow!==originEndRow?(scrollTimer.scrollTimerType=engineRender.ScrollTimerType.Y,movingRange={...newSelection,startRow:newSelection.endRow}):newSelection.startColumn!==originStartColumn?(scrollTimer.scrollTimerType=engineRender.ScrollTimerType.X,movingRange={...newSelection,endColumn:newSelection.startColumn}):(scrollTimer.scrollTimerType=engineRender.ScrollTimerType.X,movingRange={...newSelection,startColumn:newSelection.endColumn}),this._isSelectionInViewport(movingRange,currentViewport)&&(viewportMain.scrollToBarPos({x:scrollTimer.scrollTimerType===engineRender.ScrollTimerType.X?0:void 0,y:scrollTimer.scrollTimerType===engineRender.ScrollTimerType.Y?0:void 0}),this._activeViewport=currentViewport)}scrollTimer.scrolling(newMoveOffsetX,newMoveOffsetY,()=>{this._autoFillMoving(newMoveOffsetX,newMoveOffsetY)})}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a61,_b;(_a61=this._helperSelection)==null||_a61.dispose();const scene2=this._scene;scene2.resetCursor(),this._clearObserverEvent(),scene2.enableObjectsEvent(),(_b=this._scrollTimer)==null||_b.dispose(),this._control.refreshSelectionFilled(this._targetSelection),this._isInMergeState=!1,this._controlHandler((o,index)=>{o.setProps({fill:this._fillControlColors[index]})}),this._fillControlColors=[]})}_hasMergeInRange(startRow,startColumn,endRow,endColumn){return this._skeleton.worksheet.getMergedCellRange(startRow,startColumn,endRow,endColumn).length>0}_swapPositions(startRow,startColumn,endRow,endColumn){const finalStartRow=Math.min(startRow,endRow),finalStartColumn=Math.min(startColumn,endColumn),finalEndRow=Math.max(startRow,endRow),finalEndColumn=Math.max(startColumn,endColumn);return{startRow:finalStartRow,startColumn:finalStartColumn,endRow:finalEndRow,endColumn:finalEndColumn}}_controlHandler(func){const{leftControl,rightControl,topControl,bottomControl,backgroundControlTop,backgroundControlMiddleLeft,backgroundControlMiddleRight,backgroundControlBottom,fillControl}=this._control,objects=[leftControl,rightControl,topControl,bottomControl,backgroundControlTop,backgroundControlMiddleLeft,backgroundControlMiddleRight,backgroundControlBottom,fillControl];for(let i=0,len=objects.length;i<len;i++){const object=objects[i];func(object,i)}}_fillRuler(rowOrColumn,startRowOrColumn,endRowOrColumn,rowOrColumnLength,maxRowOrColumn){let isLighten=!1;if(rowOrColumn<startRowOrColumn)if(this._isInMergeState&&rowOrColumn<startRowOrColumn){const current=startRowOrColumn-rowOrColumn,rangeRowCount=rowOrColumnLength+1,step=Math.ceil(current/rangeRowCount);let newStartRow=startRowOrColumn-step*rangeRowCount;newStartRow<0&&(newStartRow=startRowOrColumn-(step-1)*rangeRowCount),startRowOrColumn=newStartRow}else startRowOrColumn=rowOrColumn;else if(rowOrColumn>=startRowOrColumn&&rowOrColumn<=endRowOrColumn)isLighten=!0,this._isInMergeState||(endRowOrColumn=rowOrColumn);else if(this._isInMergeState&&rowOrColumn>endRowOrColumn){const current=rowOrColumn-endRowOrColumn,rangeRowCount=rowOrColumnLength+1,step=Math.ceil(current/rangeRowCount);let newEndRow=endRowOrColumn+step*rangeRowCount;newEndRow>maxRowOrColumn&&(newEndRow=endRowOrColumn+(step-1)*rangeRowCount),endRowOrColumn=newEndRow}else endRowOrColumn=rowOrColumn;return{rowOrColumn,startRowOrColumn,endRowOrColumn,isLighten}}_getScale(){const{scaleX,scaleY}=this._scene.getAncestorScale();return Math.max(scaleX,scaleY)}};__name(_SelectionShapeExtension,"SelectionShapeExtension");let SelectionShapeExtension=_SelectionShapeExtension;var SELECTION_MANAGER_KEY=(SELECTION_MANAGER_KEY2=>(SELECTION_MANAGER_KEY2.Selection="__SpreadsheetSelectionShape__",SELECTION_MANAGER_KEY2.top="__SpreadsheetSelectionTopControl__",SELECTION_MANAGER_KEY2.bottom="__SpreadsheetSelectionBottomControl__",SELECTION_MANAGER_KEY2.left="__SpreadsheetSelectionShapeLeftControl__",SELECTION_MANAGER_KEY2.right="__SpreadsheetSelectionShapeRightControl__",SELECTION_MANAGER_KEY2.backgroundTop="__SpreadsheetSelectionBackgroundControlTop__",SELECTION_MANAGER_KEY2.backgroundMiddleLeft="__SpreadsheetSelectionBackgroundControlMiddleLeft__",SELECTION_MANAGER_KEY2.backgroundMiddleRight="__SpreadsheetSelectionBackgroundControlMiddleRight__",SELECTION_MANAGER_KEY2.backgroundBottom="__SpreadsheetSelectionBackgroundControlBottom__",SELECTION_MANAGER_KEY2.fill="__SpreadsheetSelectionFillControl__",SELECTION_MANAGER_KEY2.fillTopLeft="__SpreadsheetSelectionFillControlTopLeft__",SELECTION_MANAGER_KEY2.fillBottomRight="__SpreadsheetSelectionFillControlBottomRight__",SELECTION_MANAGER_KEY2.fillTopLeftInner="__SpreadsheetSelectionFillControlTopLeftInner__",SELECTION_MANAGER_KEY2.fillBottomRightInner="__SpreadsheetSelectionFillControlBottomRightInner__",SELECTION_MANAGER_KEY2.lineMain="__SpreadsheetDragLineMainControl__",SELECTION_MANAGER_KEY2.lineContent="__SpreadsheetDragLineContentControl__",SELECTION_MANAGER_KEY2.line="__SpreadsheetDragLineControl__",SELECTION_MANAGER_KEY2.dash="__SpreadsheetDragDashControl__",SELECTION_MANAGER_KEY2.rowHeaderBackground="__SpreadSheetSelectionRowHeaderBackground__",SELECTION_MANAGER_KEY2.rowHeaderBorder="__SpreadSheetSelectionRowHeaderBorder__",SELECTION_MANAGER_KEY2.rowHeaderGroup="__SpreadSheetSelectionRowHeaderGroup__",SELECTION_MANAGER_KEY2.columnHeaderBackground="__SpreadSheetSelectionColumnHeaderBackground__",SELECTION_MANAGER_KEY2.columnHeaderBorder="__SpreadSheetSelectionColumnHeaderBorder__",SELECTION_MANAGER_KEY2.columnHeaderGroup="__SpreadSheetSelectionColumnHeaderGroup__",SELECTION_MANAGER_KEY2.topLeftWidget="__SpreadSheetSelectionTopLeftWidget__",SELECTION_MANAGER_KEY2.topCenterWidget="__SpreadSheetSelectionTopCenterWidget__",SELECTION_MANAGER_KEY2.topRightWidget="__SpreadSheetSelectionTopRightWidget__",SELECTION_MANAGER_KEY2.middleLeftWidget="__SpreadSheetSelectionMiddleLeftWidget__",SELECTION_MANAGER_KEY2.middleRightWidget="__SpreadSheetSelectionMiddleRightWidget__",SELECTION_MANAGER_KEY2.bottomLeftWidget="__SpreadSheetSelectionBottomLeftWidget__",SELECTION_MANAGER_KEY2.bottomCenterWidget="__SpreadSheetSelectionBottomCenterWidget__",SELECTION_MANAGER_KEY2.bottomRightWidget="__SpreadSheetSelectionBottomRightWidget__",SELECTION_MANAGER_KEY2))(SELECTION_MANAGER_KEY||{});const SELECTION_TITLE_HIGHLIGHT_ALPHA=.3,_SelectionControl=class _SelectionControl extends core.Disposable{constructor(_scene,_zIndex,_themeService,options){var _a61,_b,_c,_d;super();__publicField(this,"_isHelperSelection",!0);__publicField(this,"_enableAutoFill",!0);__publicField(this,"_showAutoFill",!1);__publicField(this,"_highlightHeader",!0);__publicField(this,"_selectionRenderModel");__publicField(this,"_leftBorder");__publicField(this,"_rightBorder");__publicField(this,"_topBorder");__publicField(this,"_bottomBorder");__publicField(this,"_backgroundControlTop");__publicField(this,"_backgroundControlBottom");__publicField(this,"_backgroundControlMiddleLeft");__publicField(this,"_backgroundControlMiddleRight");__publicField(this,"_autoFillControl");__publicField(this,"_selectionShapeGroup");__publicField(this,"_rowHeaderBackground");__publicField(this,"_rowHeaderBorder");__publicField(this,"_rowHeaderGroup");__publicField(this,"_columnHeaderBackground");__publicField(this,"_columnHeaderBorder");__publicField(this,"_columnHeaderGroup");__publicField(this,"_dashedRect");__publicField(this,"_topLeftWidget");__publicField(this,"_topCenterWidget");__publicField(this,"_topRightWidget");__publicField(this,"_middleLeftWidget");__publicField(this,"_middleRightWidget");__publicField(this,"_bottomLeftWidget");__publicField(this,"_bottomCenterWidget");__publicField(this,"_bottomRightWidget");__publicField(this,"_defaultStyle");__publicField(this,"_currentStyle");__publicField(this,"_rowHeaderWidth",0);__publicField(this,"_columnHeaderHeight",0);__publicField(this,"_widgetRects",[]);__publicField(this,"_controlExtension");__publicField(this,"_dispose$",new rxjs.BehaviorSubject(this));__publicField(this,"dispose$",this._dispose$.asObservable());__publicField(this,"selectionMoving$",new rxjs.Subject);__publicField(this,"selectionMoveEnd$",new rxjs.Subject);__publicField(this,"selectionScaling$",new rxjs.Subject);__publicField(this,"selectionScaled$",new rxjs.Subject);__publicField(this,"selectionFilling$",new rxjs.Subject);__publicField(this,"_selectionFilled$",new rxjs.Subject);__publicField(this,"selectionFilled$",this._selectionFilled$.asObservable());__publicField(this,"_antLineOffset",0);__publicField(this,"_antRequestNewFrame",-1);this._scene=_scene,this._zIndex=_zIndex,this._themeService=_themeService,this._enableAutoFill=(_a61=options==null?void 0:options.enableAutoFill)!=null?_a61:!0,this._highlightHeader=(_b=options==null?void 0:options.highlightHeader)!=null?_b:!0,this._rowHeaderWidth=(_c=options==null?void 0:options.rowHeaderWidth)!=null?_c:0,this._columnHeaderHeight=(_d=options==null?void 0:options.columnHeaderHeight)!=null?_d:0,this._initializeSheetBody(),this._initialHeader()}_initializeSheetBody(){this._defaultStyle=genNormalSelectionStyle(this._themeService),this._currentStyle=genNormalSelectionStyle(this._themeService),this._selectionRenderModel=new SelectionRenderModel;const zIndex=this._zIndex;this._leftBorder=new engineRender.Rect("__SpreadsheetSelectionShapeLeftControl__"+zIndex,{zIndex}),this._rightBorder=new engineRender.Rect("__SpreadsheetSelectionShapeRightControl__"+zIndex,{zIndex}),this._topBorder=new engineRender.Rect("__SpreadsheetSelectionTopControl__"+zIndex,{zIndex}),this._bottomBorder=new engineRender.Rect("__SpreadsheetSelectionBottomControl__"+zIndex,{zIndex}),this._backgroundControlTop=new engineRender.Rect("__SpreadsheetSelectionBackgroundControlTop__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._backgroundControlBottom=new engineRender.Rect("__SpreadsheetSelectionBackgroundControlBottom__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._backgroundControlMiddleLeft=new engineRender.Rect("__SpreadsheetSelectionBackgroundControlMiddleLeft__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._backgroundControlMiddleRight=new engineRender.Rect("__SpreadsheetSelectionBackgroundControlMiddleRight__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._autoFillControl=new engineRender.Rect("__SpreadsheetSelectionFillControl__"+zIndex,{zIndex:zIndex+1}),this._autoFillControl.hide(),this._dashedRect=new engineRender.DashedRect("__SpreadsheetDragDashControl__"+zIndex,{zIndex:zIndex+2,evented:!1,stroke:"#fff"});const shapes=[this._autoFillControl,this._leftBorder,this._rightBorder,this._topBorder,this._bottomBorder,this._backgroundControlTop,this._backgroundControlMiddleLeft,this._backgroundControlMiddleRight,this._backgroundControlBottom,this._dashedRect];this._widgetRects=this._initialWidget(),this._selectionShapeGroup=new engineRender.Group("__SpreadsheetSelectionShape__"+zIndex,...shapes,...this._widgetRects),this._selectionShapeGroup.hide(),this._selectionShapeGroup.evented=!1,this._selectionShapeGroup.zIndex=zIndex;const scene=this.getScene();scene.addObject(this._selectionShapeGroup,SHEET_COMPONENT_SELECTION_LAYER_INDEX),this.disposeWithMe(core.toDisposable(scene.onTransformChange$.subscribeEvent(state=>{state.type===engineRender.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale&&(this._updateLayoutOfSelectionControl(this._currentStyle),this._updateControlCoord())})))}_initialHeader(){const zIndex=this._zIndex;this._rowHeaderBackground=new engineRender.Rect("__SpreadSheetSelectionRowHeaderBackground__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._rowHeaderBorder=new engineRender.Rect("__SpreadSheetSelectionRowHeaderBorder__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._rowHeaderGroup=new engineRender.Group("__SpreadSheetSelectionRowHeaderGroup__"+zIndex,this._rowHeaderBackground,this._rowHeaderBorder),this._rowHeaderGroup.hide(),this._rowHeaderGroup.evented=!1,this._rowHeaderGroup.zIndex=zIndex,this._columnHeaderBackground=new engineRender.Rect("__SpreadSheetSelectionColumnHeaderBackground__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._columnHeaderBorder=new engineRender.Rect("__SpreadSheetSelectionColumnHeaderBorder__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._columnHeaderGroup=new engineRender.Group("__SpreadSheetSelectionColumnHeaderGroup__"+zIndex,this._columnHeaderBackground,this._columnHeaderBorder),this._columnHeaderGroup.hide(),this._columnHeaderGroup.evented=!1,this._columnHeaderGroup.zIndex=zIndex,this.getScene().addObjects([this._rowHeaderGroup,this._columnHeaderGroup],SHEET_COMPONENT_HEADER_SELECTION_LAYER_INDEX)}_initialWidget(){const zIndex=this._zIndex;return this._topLeftWidget=new engineRender.Rect("__SpreadSheetSelectionTopLeftWidget__"+zIndex,{zIndex:zIndex+1}),this._topCenterWidget=new engineRender.Rect("__SpreadSheetSelectionTopCenterWidget__"+zIndex,{zIndex:zIndex+1}),this._topRightWidget=new engineRender.Rect("__SpreadSheetSelectionTopRightWidget__"+zIndex,{zIndex:zIndex+1}),this._middleLeftWidget=new engineRender.Rect("__SpreadSheetSelectionMiddleLeftWidget__"+zIndex,{zIndex:zIndex+1}),this._middleRightWidget=new engineRender.Rect("__SpreadSheetSelectionMiddleRightWidget__"+zIndex,{zIndex:zIndex+1}),this._bottomLeftWidget=new engineRender.Rect("__SpreadSheetSelectionBottomLeftWidget__"+zIndex,{zIndex:zIndex+1}),this._bottomCenterWidget=new engineRender.Rect("__SpreadSheetSelectionBottomCenterWidget__"+zIndex,{zIndex:zIndex+1}),this._bottomRightWidget=new engineRender.Rect("__SpreadSheetSelectionBottomRightWidget__"+zIndex,{zIndex:zIndex+1}),[this._topLeftWidget,this._topCenterWidget,this._topRightWidget,this._middleLeftWidget,this._middleRightWidget,this._bottomLeftWidget,this._bottomCenterWidget,this._bottomRightWidget]}get zIndex(){return this._zIndex}get leftControl(){return this._leftBorder}get rightControl(){return this._rightBorder}get topControl(){return this._topBorder}get bottomControl(){return this._bottomBorder}get fillControl(){return this._autoFillControl}get backgroundControlTop(){return this._backgroundControlTop}get backgroundControlBottom(){return this._backgroundControlBottom}get backgroundControlMiddleLeft(){return this._backgroundControlMiddleLeft}get backgroundControlMiddleRight(){return this._backgroundControlMiddleRight}get selectionShape(){return this._selectionShapeGroup}get columnHeaderGroup(){return this._columnHeaderGroup}get rowHeaderGroup(){return this._rowHeaderGroup}get selectionShapeGroup(){return this._selectionShapeGroup}get model(){return this._selectionRenderModel}get topLeftWidget(){return this._topLeftWidget}get topCenterWidget(){return this._topCenterWidget}get topRightWidget(){return this._topRightWidget}get middleLeftWidget(){return this._middleLeftWidget}get middleRightWidget(){return this._middleRightWidget}get bottomLeftWidget(){return this._bottomLeftWidget}get bottomCenterWidget(){return this._bottomCenterWidget}get bottomRightWidget(){return this._bottomRightWidget}get themeService(){return this._themeService}get selectionModel(){return this._selectionRenderModel}set selectionModel(model){this._selectionRenderModel=model}get currentStyle(){return this._currentStyle}set currentStyle(style){this._currentStyle=style}get dashedRect(){return this._dashedRect}get isHelperSelection(){return this._isHelperSelection}get rowHeaderWidth(){return this._rowHeaderWidth}set rowHeaderWidth(width){this._rowHeaderWidth=width}get columnHeaderHeight(){return this._columnHeaderHeight}set columnHeaderHeight(height){this._columnHeaderHeight=height}setControlExtension(options){this._controlExtension=new SelectionShapeExtension(this,options)}setEvent(state){this.leftControl.evented=state,this.rightControl.evented=state,this.topControl.evented=state,this.bottomControl.evented=state}refreshSelectionFilled(val){this._selectionFilled$.next(val)}_updateLayoutOfSelectionControl(selectionStyle){selectionStyle&&(this.currentStyle=Object.assign({},this._defaultStyle,selectionStyle));const currentStyle=this.currentStyle,{stroke,widgets,autofillStroke:AutofillStroke,strokeDash,isAnimationDash}=currentStyle;let autofillSize=currentStyle.autofillSize,strokeWidth=currentStyle.strokeWidth,autofillStrokeWidth=currentStyle.autofillStrokeWidth;const scale=this._getScale(),leftAdjustWidth=(strokeWidth+sheets.SELECTION_CONTROL_BORDER_BUFFER_WIDTH)/2/scale;strokeWidth/=scale,autofillSize/=scale,autofillStrokeWidth/=scale<1?1:scale;const borderBuffer=sheets.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/scale,fixOnePixelBlurOffset=engineRender.FIX_ONE_PIXEL_BLUR_OFFSET/scale,{startX,startY,endX,endY}=this._selectionRenderModel;if(this.leftControl.transformByState({height:endY-startY,left:-leftAdjustWidth+fixOnePixelBlurOffset,width:strokeWidth,strokeWidth:borderBuffer,top:-borderBuffer/2+fixOnePixelBlurOffset}),this.leftControl.setProps({fill:stroke,stroke:sheets.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.rightControl.transformByState({height:endY-startY,left:endX-startX-leftAdjustWidth+fixOnePixelBlurOffset,width:strokeWidth,strokeWidth:borderBuffer,top:-borderBuffer/2+fixOnePixelBlurOffset}),this.rightControl.setProps({fill:stroke,stroke:sheets.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.topControl.transformByState({width:endX-startX+strokeWidth,top:-leftAdjustWidth+fixOnePixelBlurOffset,left:-leftAdjustWidth+fixOnePixelBlurOffset,height:strokeWidth,strokeWidth:borderBuffer}),this.topControl.setProps({fill:stroke,stroke:sheets.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.bottomControl.transformByState({width:endX-startX+strokeWidth,top:endY-startY-leftAdjustWidth+fixOnePixelBlurOffset,height:strokeWidth,left:-leftAdjustWidth+fixOnePixelBlurOffset,strokeWidth:borderBuffer}),this.bottomControl.setProps({fill:stroke,stroke:sheets.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),strokeDash==null)this.dashedRect.hide(),this._stopAntLineAnimation();else{const dashRectBorderWidth=currentStyle.strokeWidth*2/scale;this.dashedRect.transformByState({height:endY-startY,width:endX-startX,strokeWidth:dashRectBorderWidth,left:-dashRectBorderWidth/2+fixOnePixelBlurOffset,top:-dashRectBorderWidth/2+fixOnePixelBlurOffset}),this.dashedRect.setProps({strokeDashArray:[0,strokeDash/scale]}),this._stopAntLineAnimation(),isAnimationDash!==!1&&this._startAntLineAnimation(),this.dashedRect.show()}if(this._showAutoFill=this._showAutoFill&&this._enableAutoFill,this._showAutoFill&&!this._hasWidgets(widgets)){const fillProps={fill:stroke,stroke:AutofillStroke,strokeScaleEnabled:!1},sizeState={width:autofillSize-autofillStrokeWidth,height:autofillSize-autofillStrokeWidth,left:endX-startX-autofillSize/2+autofillStrokeWidth/2-fixOnePixelBlurOffset,top:endY-startY-autofillSize/2+autofillStrokeWidth/2-fixOnePixelBlurOffset,strokeWidth:autofillStrokeWidth};this._autoFillControl.setProps(fillProps),this._autoFillControl.transformByState(sizeState),this._autoFillControl.show()}else this._autoFillControl.hide();this._updateBackgroundControl(currentStyle),this._updateHeaderBackground(currentStyle),this._updateWidgets(currentStyle)}_updateControlCoord(){const{startX,startY}=this._selectionRenderModel;this.selectionShapeGroup.show(),this.selectionShapeGroup.translate(startX,startY),this.selectionShapeGroup.makeDirtyNoDebounce(!0)}updateStyle(style){this._updateLayoutOfSelectionControl(style),this._updateControlCoord()}updateRange(rangeWithCoord,primaryWithCoord){this._selectionRenderModel.setValue(rangeWithCoord,primaryWithCoord),this._showAutoFill=primaryWithCoord!==null,this._updateLayoutOfSelectionControl(),this._updateControlCoord()}updateRangeBySelectionWithCoord(selectionWthCoord,sk){sk&&(this._rowHeaderWidth=sk.getWorksheetConfig().rowHeader.width,this._columnHeaderHeight=sk.getWorksheetConfig().columnHeader.height),this._selectionRenderModel.setValue(selectionWthCoord.rangeWithCoord,selectionWthCoord.primaryWithCoord),this._showAutoFill=selectionWthCoord.primaryWithCoord!==null,this._updateLayoutOfSelectionControl(selectionWthCoord.style),this._updateControlCoord()}update(newSelectionRange,rowHeaderWidth=0,columnHeaderHeight=0,style,primaryCell){this._rowHeaderWidth=rowHeaderWidth,this._columnHeaderHeight=columnHeaderHeight,this.updateRangeBySelectionWithCoord({rangeWithCoord:newSelectionRange,primaryWithCoord:primaryCell,style}),style&&this.updateStyle(style)}updateCurrCell(primaryCell){this._showAutoFill=primaryCell!==null,this._selectionRenderModel.setCurrentCell(primaryCell)}clearHighlight(){this._showAutoFill=!1,this._selectionRenderModel.clearCurrentCell(),this._updateLayoutOfSelectionControl(this._currentStyle)}getScene(){return this._scene}dispose(){var _a61,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o,_p,_q,_r,_s,_t,_u,_v,_w,_x,_y;(_a61=this._leftBorder)==null||_a61.dispose(),(_b=this._rightBorder)==null||_b.dispose(),(_c=this._topBorder)==null||_c.dispose(),(_d=this._bottomBorder)==null||_d.dispose(),(_e=this._backgroundControlTop)==null||_e.dispose(),(_f=this._backgroundControlMiddleLeft)==null||_f.dispose(),(_g=this._backgroundControlMiddleRight)==null||_g.dispose(),(_h=this._backgroundControlBottom)==null||_h.dispose(),this._autoFillControl.dispose(),(_i=this._selectionShapeGroup)==null||_i.dispose(),(_j=this._rowHeaderBackground)==null||_j.dispose(),(_k=this._rowHeaderBorder)==null||_k.dispose(),(_l=this._rowHeaderGroup)==null||_l.dispose(),(_m=this._rowHeaderBackground)==null||_m.dispose(),(_n=this._columnHeaderBackground)==null||_n.dispose(),(_o=this._columnHeaderBorder)==null||_o.dispose(),(_p=this._columnHeaderGroup)==null||_p.dispose(),(_q=this._topLeftWidget)==null||_q.dispose(),(_r=this._topCenterWidget)==null||_r.dispose(),(_s=this._topRightWidget)==null||_s.dispose(),(_t=this._middleLeftWidget)==null||_t.dispose(),(_u=this._middleRightWidget)==null||_u.dispose(),(_v=this._bottomLeftWidget)==null||_v.dispose(),(_w=this._bottomCenterWidget)==null||_w.dispose(),(_x=this._bottomRightWidget)==null||_x.dispose(),(_y=this._controlExtension)==null||_y.dispose(),super.dispose(),this._dispose$.next(this),this._dispose$.complete()}getCurrentCellInfo(){const currentCell=this.model.currentCell;if(currentCell){let currentRangeData;if(currentCell.isMerged){const mergeInfo=currentCell.mergeInfo;currentRangeData={startRow:mergeInfo.startRow,endRow:mergeInfo.endRow,startColumn:mergeInfo.startColumn,endColumn:mergeInfo.endColumn,startX:mergeInfo.startX,endX:mergeInfo.endX,startY:mergeInfo.startY,endY:mergeInfo.endY}}else{const{actualRow,actualColumn,startX,endX,startY,endY}=currentCell;currentRangeData={startRow:actualRow,endRow:actualRow,startColumn:actualColumn,endColumn:actualColumn,startX,endX,startY,endY}}return currentRangeData}}getValue(){return{...this._selectionRenderModel.getValue(),style:this._currentStyle}}getRange(){return this._selectionRenderModel.getValue().rangeWithCoord}enableHelperSelection(){this._isHelperSelection=!0}disableHelperSelection(){this._isHelperSelection=!1}_updateHeaderBackground(style){const{startX,startY,endX,endY,rangeType}=this._selectionRenderModel,defaultStyle=this._currentStyle,scale=this._getScale(),{stroke,rowHeaderFill=defaultStyle.rowHeaderFill,rowHeaderStroke=defaultStyle.rowHeaderStroke,columnHeaderFill=defaultStyle.columnHeaderFill,columnHeaderStroke=defaultStyle.columnHeaderStroke}=style;let{rowHeaderStrokeWidth=defaultStyle.rowHeaderStrokeWidth,columnHeaderStrokeWidth=defaultStyle.columnHeaderStrokeWidth}=style;rowHeaderStrokeWidth/=scale,columnHeaderStrokeWidth/=scale;const rowHeaderWidth=this._rowHeaderWidth,columnHeaderHeight=this._columnHeaderHeight;if(this._highlightHeader&&columnHeaderHeight>0){let highlightTitleColor=columnHeaderFill;rangeType===core.RANGE_TYPE.COLUMN&&(highlightTitleColor=new core.ColorKit(stroke).setAlpha(SELECTION_TITLE_HIGHLIGHT_ALPHA).toString()),this._columnHeaderBackground.setProps({fill:highlightTitleColor}),this._columnHeaderBackground.resize(endX-startX,columnHeaderHeight),this._columnHeaderBorder.setProps({fill:columnHeaderStroke}),this._columnHeaderBorder.transformByState({width:endX-startX,height:columnHeaderStrokeWidth,top:columnHeaderHeight-columnHeaderStrokeWidth+1/scale}),this._columnHeaderGroup.show(),this._columnHeaderGroup.translate(startX,0)}else this._columnHeaderGroup.hide();if(this._columnHeaderGroup.makeDirty(!0),this._highlightHeader&&rowHeaderWidth>0){let highlightTitleColor=rowHeaderFill;rangeType===core.RANGE_TYPE.ROW&&(highlightTitleColor=new core.ColorKit(stroke).setAlpha(SELECTION_TITLE_HIGHLIGHT_ALPHA).toString()),this._rowHeaderBackground.setProps({fill:highlightTitleColor}),this._rowHeaderBackground.resize(rowHeaderWidth,endY-startY),this._rowHeaderBorder.setProps({fill:rowHeaderStroke}),this._rowHeaderBorder.transformByState({width:rowHeaderStrokeWidth,height:endY-startY,left:rowHeaderWidth-rowHeaderStrokeWidth+1/scale}),this._rowHeaderGroup.show(),this._rowHeaderGroup.translate(0,startY)}else this._rowHeaderGroup.hide();this._rowHeaderGroup.makeDirty(!0)}_updateBackgroundControl(style){const{startX,startY,endX,endY}=this._selectionRenderModel,scale=this._getScale(),{fill=style.fill}=style;let{strokeWidth}=style;strokeWidth/=scale;const highlightSelection=this._selectionRenderModel.highlightToSelection();if(!highlightSelection){this._backgroundControlTop.resize(endX-startX,endY-startY),this._backgroundControlTop.setProps({fill}),this._backgroundControlBottom.resize(0,0),this._backgroundControlMiddleLeft.resize(0,0),this._backgroundControlMiddleRight.resize(0,0);return}const{startX:h_startX,startY:h_startY,endX:h_endX,endY:h_endY}=highlightSelection,strokeOffset=strokeWidth/2,topConfig={left:-strokeOffset,top:-strokeOffset,width:endX-startX+strokeOffset*2,height:h_startY-startY+strokeOffset};topConfig.height<0&&(topConfig.width=0,topConfig.height=0),this._backgroundControlTop.transformByState(topConfig);const middleLeftConfig={left:-strokeOffset,top:h_startY-startY,width:h_startX-startX+strokeOffset,height:h_endY-h_startY};middleLeftConfig.width<0&&(middleLeftConfig.width=0,middleLeftConfig.height=0),this._backgroundControlMiddleLeft.transformByState(middleLeftConfig);const middleRightConfig={left:h_endX-startX-strokeOffset,top:h_startY-startY,width:endX-h_endX+strokeOffset*2,height:h_endY-h_startY};middleRightConfig.width<0&&(middleRightConfig.width=0,middleRightConfig.height=0),this._backgroundControlMiddleRight.transformByState(middleRightConfig);const middleBottomConfig={left:-strokeOffset,top:h_endY-startY,width:endX-startX+strokeOffset*2,height:endY-h_endY+strokeOffset};middleBottomConfig.height<0&&(middleBottomConfig.width=0,middleBottomConfig.height=0),this._backgroundControlBottom.transformByState(middleBottomConfig),this._backgroundControlTop.setProps({fill}),this._backgroundControlMiddleLeft.setProps({fill}),this._backgroundControlMiddleRight.setProps({fill}),this._backgroundControlBottom.setProps({fill})}_updateWidgets(style){const{startX,startY,endX,endY}=this._selectionRenderModel,{stroke=style.stroke,widgets=style.widgets,widgetStroke=style.widgetStroke}=style,scale=this._getScale();let{widgetSize,widgetStrokeWidth}=style;widgetSize/=scale,widgetStrokeWidth/=scale;const position={left:-widgetSize/2+widgetStrokeWidth/2,center:(endX-startX)/2-widgetSize/2+widgetStrokeWidth/2,right:endX-startX-widgetSize/2+widgetStrokeWidth/2,top:-widgetSize/2,middle:(endY-startY)/2-widgetSize/2,bottom:endY-startY-widgetSize/2+widgetStrokeWidth/2},size=widgetSize-widgetStrokeWidth;this._widgetRects.forEach(widget=>{widget.setProps({fill:stroke,stroke:widgetStroke})}),widgets.tl===!0?(this._topLeftWidget.transformByState({height:size,width:size,left:position.left,top:position.top,strokeWidth:widgetStrokeWidth}),this._topLeftWidget.show()):this._topLeftWidget.hide(),widgets.tc===!0?(this._topCenterWidget.transformByState({height:size,width:size,left:position.center,top:position.top,strokeWidth:widgetStrokeWidth}),this._topCenterWidget.show()):this._topCenterWidget.hide(),widgets.tr===!0?(this._topRightWidget.transformByState({height:size,width:size,left:position.right,top:position.top,strokeWidth:widgetStrokeWidth}),this._topRightWidget.show()):this._topRightWidget.hide(),widgets.ml===!0?(this._middleLeftWidget.transformByState({height:size,width:size,left:position.left,top:position.middle,strokeWidth:widgetStrokeWidth}),this._middleLeftWidget.show()):this._middleLeftWidget.hide(),widgets.mr===!0?(this._middleRightWidget.transformByState({height:size,width:size,left:position.right,top:position.middle,strokeWidth:widgetStrokeWidth}),this._middleRightWidget.show()):this._middleRightWidget.hide(),widgets.bl===!0?(this._bottomLeftWidget.transformByState({height:size,width:size,left:position.left,top:position.bottom,strokeWidth:widgetStrokeWidth}),this._bottomLeftWidget.show()):this._bottomLeftWidget.hide(),widgets.bc===!0?(this._bottomCenterWidget.transformByState({height:size,width:size,left:position.center,top:position.bottom,strokeWidth:widgetStrokeWidth}),this._bottomCenterWidget.show()):this._bottomCenterWidget.hide(),widgets.br===!0?(this._bottomRightWidget.transformByState({height:size,width:size,left:position.right,top:position.bottom,strokeWidth:widgetStrokeWidth}),this._bottomRightWidget.show()):this._bottomRightWidget.hide()}_hasWidgets(widgets){if(widgets==null)return!1;const keys=Object.keys(widgets);if(keys.length===0)return!1;for(const key of keys)if(widgets[key]===!0)return!0;return!1}_getScale(){const{scaleX,scaleY}=this._scene.getAncestorScale();return Math.max(scaleX,scaleY)}_stopAntLineAnimation(){this._antLineOffset=0,engineRender.cancelRequestFrame(this._antRequestNewFrame)}_startAntLineAnimation(){const scale=this._getScale();this._antLineOffset+=.6/scale,this._antLineOffset>160/scale&&(this._antLineOffset=0),this.dashedRect.setProps({strokeDashOffset:-this._antLineOffset}),this._antRequestNewFrame=engineRender.requestNewFrame(()=>{this._startAntLineAnimation()})}};__name(_SelectionControl,"SelectionControl");let SelectionControl=_SelectionControl;const _SelectionLayer=class _SelectionLayer extends engineRender.Layer{render(ctx,isMaxLayer=!1){const startTime=core.Tools.now();return super.render(ctx,isMaxLayer),this._afterRender(startTime),this}_afterRender(startTime){this.scene.getEngine().renderFrameTimeMetric$.next(["selectionLayer",core.Tools.now()-startTime])}};__name(_SelectionLayer,"SelectionLayer");let SelectionLayer=_SelectionLayer;const ISheetSelectionRenderService=core.createIdentifier("univer.sheet.selection-render-service"),_BaseSelectionRenderService=class _BaseSelectionRenderService extends core.Disposable{constructor(_injector,_themeService,_shortcutService,_sheetSkeletonManagerService,contextService){super();__publicField(this,"_downObserver");__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_controlFillConfig$",new rxjs.BehaviorSubject(null));__publicField(this,"controlFillConfig$",this._controlFillConfig$.asObservable());__publicField(this,"_selectionControls",[]);__publicField(this,"_startRangeWhenPointerDown",{startY:0,endY:0,startX:0,endX:0,startRow:-1,endRow:-1,startColumn:-1,endColumn:-1});__publicField(this,"_activeControlIndex",-1);__publicField(this,"_startViewportPosX",0);__publicField(this,"_startViewportPosY",0);__publicField(this,"_scrollTimer");__publicField(this,"_cancelDownSubscription");__publicField(this,"_cancelUpSubscription");__publicField(this,"_skeleton");__publicField(this,"_scene");__publicField(this,"_highlightHeader",!0);__publicField(this,"_rangeType",core.RANGE_TYPE.NORMAL);__publicField(this,"_selectionStyle");__publicField(this,"_remainLastEnabled",!1);__publicField(this,"_skipLastEnabled",!1);__publicField(this,"_singleSelectionEnabled",!1);__publicField(this,"_selectionMoveEnd$",new rxjs.BehaviorSubject([]));__publicField(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());__publicField(this,"_selectionMoving$",new rxjs.Subject);__publicField(this,"selectionMoving$",this._selectionMoving$.asObservable());__publicField(this,"_selectionMoveStart$",new rxjs.Subject);__publicField(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());__publicField(this,"_selectionMoving",!1);__publicField(this,"_selectionTheme");__publicField(this,"_activeViewport");__publicField(this,"interceptor",new core.InterceptorManager({RANGE_MOVE_PERMISSION_CHECK,RANGE_FILL_PERMISSION_CHECK}));__publicField(this,"_escapeShortcutDisposable",null);this._injector=_injector,this._themeService=_themeService,this._shortcutService=_shortcutService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this.contextService=contextService,this._initSelectionThemeFromThemeService(),this._initMoving()}get selectionMoving(){return this._selectionMoving}get _shouldDetectMergedCells(){return this._rangeType===core.RANGE_TYPE.NORMAL}_initMoving(){this.disposeWithMe(this._selectionMoving$.subscribe(()=>{this._selectionMoving=!0})),this.disposeWithMe(this._selectionMoveEnd$.subscribe(()=>{this._selectionMoving=!1}))}_setSelectionStyle(style){this._selectionStyle=style}getViewPort(){return this._activeViewport}setSingleSelectionEnabled(enabled=!1){this._singleSelectionEnabled=enabled}newSelectionControl(scene,skeleton,selection){const zIndex=this.getSelectionControls().length,{rowHeaderWidth,columnHeaderHeight}=skeleton,control=new SelectionControl(scene,zIndex,this._selectionTheme,{highlightHeader:this._highlightHeader,rowHeaderWidth,columnHeaderHeight});this._selectionControls.push(control);const selectionWithCoord=attachSelectionWithCoord(selection,skeleton);return control.updateRangeBySelectionWithCoord(selectionWithCoord,skeleton),control.setControlExtension({skeleton,scene,themeService:this._selectionTheme,injector:this._injector,selectionHooks:{selectionMoveEnd:__name(()=>{this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())},"selectionMoveEnd")}}),control}resetSelectionsByModelData(selectionsWithStyleList){const allSelectionControls=this.getSelectionControls(),skeleton=this._skeleton;if(!(!allSelectionControls||!skeleton)){for(let i=0,len=selectionsWithStyleList.length;i<len;i++){const selectionWithStyle=selectionsWithStyleList[i],selectionWithCoord=attachSelectionWithCoord(selectionWithStyle,this._skeleton),control=allSelectionControls[i];control?control.updateRangeBySelectionWithCoord(selectionWithCoord,skeleton):this.isSelectionEnabled()&&this.newSelectionControl(this._scene,skeleton,selectionWithStyle)}selectionsWithStyleList.length<allSelectionControls.length&&allSelectionControls.splice(selectionsWithStyleList.length).forEach(control=>control.dispose())}}refreshSelectionMoveStart(){this._selectionMoveStart$.next(this.getSelectionDataWithStyle())}refreshSelectionMoveEnd(){this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}_initSelectionThemeFromThemeService(){const currTheme=this._themeService.getCurrentTheme();this._selectionTheme=new core.ThemeService,this._selectionTheme.setTheme(currTheme)}setSelectionTheme(prop){this._selectionTheme.setTheme(prop)}_changeRuntime(skeleton,scene,viewport){this._skeleton=skeleton,this._scene=scene,this._activeViewport=viewport||(scene==null?void 0:scene.getViewports()[0]),scene.findLayerByZIndex(SHEET_COMPONENT_SELECTION_LAYER_INDEX)||scene.addLayer(new SelectionLayer(scene,[],SHEET_COMPONENT_SELECTION_LAYER_INDEX))}getSkeleton(){return this._skeleton}getSelectionDataWithStyle(){const selectionControls=this._selectionControls,[unitId,sheetId]=this._skeleton.getLocation();return selectionControls.map(control=>{const v=control.getValue();return v.rangeWithCoord.sheetId=sheetId,v.rangeWithCoord.unitId=unitId,v})}getSelectionControls(){return this._selectionControls}_addSelectionControlByModelData(selectionWithStyle){var _a61;const skeleton=this._skeleton,style=(_a61=selectionWithStyle.style)!=null?_a61:genNormalSelectionStyle(this._selectionTheme),scene=this._scene;return selectionWithStyle.style=style,this.newSelectionControl(scene,skeleton,selectionWithStyle)}_clearAllSelectionControls(){const allSelectionControls=this._selectionControls;for(const control of allSelectionControls)control.dispose();this._selectionControls.length=0}_getFreeze(){var _a61;return(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton.getWorksheetConfig().freeze}_getViewportByCell(row,column){if(row===void 0||column===void 0)return null;const freeze=this._getFreeze();if(!freeze||freeze.startRow<=0&&freeze.startColumn<=0)return this._scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(row>freeze.startRow&&column>freeze.startColumn)return this._scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(row<=freeze.startRow&&column<=freeze.startColumn)return this._scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(row<=freeze.startRow&&column>freeze.startColumn)return this._scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(row>freeze.startRow&&column<=freeze.startColumn)return this._scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)}getActiveRange(){const controls=this.getSelectionControls(),model=controls&&controls[controls.length-1].model;return model&&{startRow:model.startRow,startColumn:model.startColumn,endRow:model.endRow,endColumn:model.endColumn}}setActiveSelectionIndex(index){this._activeControlIndex=index}resetActiveSelectionIndex(){this._activeControlIndex=-1}getActiveSelectionControl(){const controls=this.getSelectionControls();if(controls)return this._activeControlIndex<0?controls[controls.length-1]:controls[this._activeControlIndex]}endSelection(){var _a61;this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),(_a61=this._escapeShortcutDisposable)==null||_a61.dispose(),this._escapeShortcutDisposable=null}_reset(){var _a61;this._clearAllSelectionControls(),(_a61=this._downObserver)==null||_a61.unsubscribe(),this._downObserver=null}_setupPointerMoveListener(viewportMain,activeSelectionControl,rangeType,scrollTimerType=engineRender.ScrollTimerType.ALL,moveStartPosX,moveStartPosY){var _a61,_b;let xCrossTime=0,yCrossTime=0,lastX=moveStartPosX,lastY=moveStartPosY;this._scrollTimer=engineRender.ScrollTimer.create(this._scene,scrollTimerType),this._scrollTimer.startScroll((_a61=viewportMain==null?void 0:viewportMain.left)!=null?_a61:0,(_b=viewportMain==null?void 0:viewportMain.top)!=null?_b:0,viewportMain);const scene=this._scene,startViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([moveStartPosX,moveStartPosY]));this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{var _a62,_b2,_c,_d,_e,_f,_g,_h,_i;const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt,{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._movingHandler(newMoveOffsetX,newMoveOffsetY,activeSelectionControl,rangeType);let scrollOffsetX=newMoveOffsetX,scrollOffsetY=newMoveOffsetY;const currentSelection=this.getActiveSelectionControl(),freeze=this._getFreeze(),selection=currentSelection==null?void 0:currentSelection.model,endViewport=(_a62=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY])))!=null?_a62:this._getViewportByCell(selection==null?void 0:selection.endRow,selection==null?void 0:selection.endColumn);if(__name(()=>{if(!startViewport||!endViewport||!viewportMain)return!1;const crossableViewports=[engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN,engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP,engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP,engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT];return crossableViewports.includes(startViewport.viewportKey)&&crossableViewports.includes(endViewport.viewportKey)},"isCrossableViewports")()){if(!startViewport||!endViewport||!viewportMain)return!1;const isCrossingX=lastX<viewportMain.left&&newMoveOffsetX>viewportMain.left||lastX>viewportMain.left&&newMoveOffsetX<viewportMain.left,isCrossingY=lastY<viewportMain.top&&newMoveOffsetY>viewportMain.top||lastY>viewportMain.top&&newMoveOffsetY<viewportMain.top;isCrossingX&&(xCrossTime+=1),isCrossingY&&(yCrossTime+=1);const startKey=startViewport.viewportKey,endKey=endViewport.viewportKey;if(startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP)moveOffsetY<viewportMain.top&&((_b2=selection==null?void 0:selection.endRow)!=null?_b2:0)<((_c=freeze==null?void 0:freeze.startRow)!=null?_c:0)?scrollOffsetY=viewportMain.top:isCrossingY&&yCrossTime%2===1&&viewportMain.scrollToViewportPos({viewportScrollY:0});else if(startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT)moveOffsetX<viewportMain.left&&((_d=selection==null?void 0:selection.endColumn)!=null?_d:0)<((_e=freeze==null?void 0:freeze.startColumn)!=null?_e:0)?scrollOffsetX=viewportMain.left:isCrossingX&&xCrossTime%2===1&&viewportMain.scrollToViewportPos({viewportScrollX:0});else if(startKey===endKey){let disableX=!1,disableY=!1;startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP?(disableX=!0,disableY=!0):startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP?disableY=!0:startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT&&(disableX=!0),((_f=selection==null?void 0:selection.endRow)!=null?_f:0)>((_g=freeze==null?void 0:freeze.startRow)!=null?_g:0)&&(disableY=!1),((_h=selection==null?void 0:selection.endColumn)!=null?_h:0)>((_i=freeze==null?void 0:freeze.startColumn)!=null?_i:0)&&(disableX=!1),disableX&&(scrollOffsetX=viewportMain.left),disableY&&(scrollOffsetY=viewportMain.top)}else{const startXY={x:startViewport.scrollX,y:startViewport.scrollY},endXY={x:endViewport.scrollX,y:endViewport.scrollY},shouldResetX=startXY.x!==endXY.x&&isCrossingX&&xCrossTime%2===1,shouldResetY=startXY.y!==endXY.y&&isCrossingY&&yCrossTime%2===1;(shouldResetX||shouldResetY)&&(viewportMain.scrollToBarPos({x:shouldResetX?startXY.x:void 0,y:shouldResetY?startXY.y:void 0}),shouldResetX||(scrollOffsetX=viewportMain.left),shouldResetY||(scrollOffsetY=viewportMain.top)),(startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&endKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||endKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)&&(scrollOffsetX=viewportMain.left),(startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&endKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||endKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP)&&(scrollOffsetY=viewportMain.top)}lastX=newMoveOffsetX,lastY=newMoveOffsetY}this._scrollTimer.scrolling(scrollOffsetX,scrollOffsetY,()=>{this._movingHandler(newMoveOffsetX,newMoveOffsetY,activeSelectionControl,rangeType)})})}attachSelectionWithCoord(selectionWithStyle){return attachSelectionWithCoord(selectionWithStyle,this._skeleton)}attachPrimaryWithCoord(primary){return attachPrimaryWithCoord(this._skeleton,primary)}getSelectionCellByPosition(x,y){return this.getCellWithCoordByOffset(x,y)}getCellWithCoordByOffset(x,y,skeletonParam){const scene=this._scene,skeleton=skeletonParam!=null?skeletonParam:this._skeleton,scrollXY=scene.getViewportScrollXY(scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX,scaleY}=scene.getAncestorScale();return skeleton.getCellWithCoordByOffset(x,y,scaleX,scaleY,scrollXY)}_movingHandler(offsetX,offsetY,activeSelectionControl,rangeType){var _a61,_b,_c,_d,_e;const skeleton=this._skeleton,scene=this._scene,[unitId,sheetId]=skeleton.getLocation(),currSelectionRange={startRow:(_a61=activeSelectionControl==null?void 0:activeSelectionControl.model.startRow)!=null?_a61:-1,endRow:(_b=activeSelectionControl==null?void 0:activeSelectionControl.model.endRow)!=null?_b:-1,startColumn:(_c=activeSelectionControl==null?void 0:activeSelectionControl.model.startColumn)!=null?_c:-1,endColumn:(_d=activeSelectionControl==null?void 0:activeSelectionControl.model.endColumn)!=null?_d:-1,unitId,sheetId},viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),targetViewport=(_e=this._getViewportByCell(currSelectionRange.endRow,currSelectionRange.endColumn))!=null?_e:viewportMain,scrollXY=scene.getScrollXYInfoByViewport(engineRender.Vector2.FromArray([this._startViewportPosX,this._startViewportPosY]),targetViewport),{scaleX,scaleY}=scene.getAncestorScale();rangeType===core.RANGE_TYPE.ROW?offsetX=Number.POSITIVE_INFINITY:rangeType===core.RANGE_TYPE.COLUMN&&(offsetY=Number.POSITIVE_INFINITY);const currCell=this._skeleton.getCellByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY);if(!currCell)return;let newSelectionRange={startRow:Math.min(currCell.startRow,this._startRangeWhenPointerDown.startRow),startColumn:Math.min(currCell.startColumn,this._startRangeWhenPointerDown.startColumn),endRow:Math.max(currCell.endRow,this._startRangeWhenPointerDown.endRow),endColumn:Math.max(currCell.endColumn,this._startRangeWhenPointerDown.endColumn)};this._shouldDetectMergedCells&&(newSelectionRange=skeleton.expandRangeByMerge(newSelectionRange));const newSelectionRangeWithCoord=attachSelectionWithCoord({range:newSelectionRange,primary:void 0,style:null},skeleton);newSelectionRangeWithCoord.rangeWithCoord.unitId=unitId,newSelectionRangeWithCoord.rangeWithCoord.sheetId=sheetId,newSelectionRangeWithCoord.rangeWithCoord.rangeType=rangeType;const rangeChanged=currSelectionRange.startRow!==newSelectionRange.startRow||currSelectionRange.startColumn!==newSelectionRange.startColumn||currSelectionRange.endRow!==newSelectionRange.endRow||currSelectionRange.endColumn!==newSelectionRange.endColumn;activeSelectionControl!=null&&rangeChanged&&(activeSelectionControl.updateRangeBySelectionWithCoord(newSelectionRangeWithCoord),this._selectionMoving$.next(this.getSelectionDataWithStyle()))}_clearUpdatingListeners(){var _a61,_b,_c,_d,_e;this._scene.enableObjectsEvent(),(_a61=this._scenePointerMoveSub)==null||_a61.unsubscribe(),this._scenePointerMoveSub=null,(_b=this._scenePointerUpSub)==null||_b.unsubscribe(),this._scenePointerUpSub=null,(_c=this._cancelDownSubscription)==null||_c.unsubscribe(),this._cancelDownSubscription=null,(_d=this._cancelUpSubscription)==null||_d.unsubscribe(),this._cancelUpSubscription=null,(_e=this._scrollTimer)==null||_e.dispose()}_addEndingListeners(){var _a61,_b,_c;const scene=this._scene,mainScene=(_a61=scene.getEngine())==null?void 0:_a61.activeScene;!mainScene||mainScene===scene||((_b=this._cancelDownSubscription)==null||_b.unsubscribe(),this._cancelDownSubscription=null,(_c=this._cancelUpSubscription)==null||_c.unsubscribe(),this._cancelUpSubscription=null,this._cancelDownSubscription=mainScene.onPointerDown$.subscribeEvent(()=>this._clearUpdatingListeners()),this._cancelUpSubscription=mainScene.onPointerUp$.subscribeEvent(()=>this._clearUpdatingListeners()))}_getSelectionWithCoordByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY){const skeleton=this._skeleton;if(skeleton==null)return null;if(this._shouldDetectMergedCells){const primaryWithCoord2=skeleton==null?void 0:skeleton.getCellWithCoordByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY,{firstMatch:!0});if(!primaryWithCoord2)return;const rangeWithCoord2=core.convertCellToRange(primaryWithCoord2);return{primaryWithCoord:primaryWithCoord2,rangeWithCoord:rangeWithCoord2}}const{row,column}=skeleton.getCellIndexByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY),startCell=skeleton.getNoMergeCellPositionByIndex(row,column),{startX,startY,endX,endY}=startCell,rangeWithCoord={startY,endY,startX,endX,startRow:row,endRow:row,startColumn:column,endColumn:column};return{primaryWithCoord:{mergeInfo:rangeWithCoord,actualRow:row,actualColumn:column,isMerged:!1,isMergedMainCell:!1,startY,endY,startX,endX},rangeWithCoord}}_checkClearPreviousControls(evt){this.getSelectionControls().length!==0&&(!evt.ctrlKey&&!evt.shiftKey&&!this._remainLastEnabled||this._singleSelectionEnabled&&!evt.shiftKey)&&this._clearAllSelectionControls()}_makeSelectionByTwoCells(currentCell,startSelectionRange,skeleton,rangeType,activeControl){const{actualRow,actualColumn,mergeInfo:actualMergeInfo}=currentCell;this._startRangeWhenPointerDown={...currentCell.mergeInfo};const newStartRow=Math.min(actualRow,startSelectionRange.startRow,actualMergeInfo.startRow),newEndRow=Math.max(actualRow,startSelectionRange.endRow,actualMergeInfo.endRow),newStartColumn=Math.min(actualColumn,startSelectionRange.startColumn,actualMergeInfo.startColumn),newEndColumn=Math.max(actualColumn,startSelectionRange.endColumn,actualMergeInfo.endColumn),selectionWithStyle={range:skeleton.expandRangeByMerge({startRow:newStartRow,startColumn:newStartColumn,endRow:newEndRow,endColumn:newEndColumn}),primary:null,style:null},selectionWithCoord=attachSelectionWithCoord(selectionWithStyle,skeleton);activeControl.updateRangeBySelectionWithCoord(selectionWithCoord)}isSelectionEnabled(){return this.contextService.getContextValue(sheets.SELECTIONS_ENABLED)}isSelectionDisabled(){return this.contextService.getContextValue(sheets.SELECTIONS_ENABLED)===!1}inRefSelectionMode(){return this.contextService.getContextValue(sheets.REF_SELECTIONS_ENABLED)}};__name(_BaseSelectionRenderService,"BaseSelectionRenderService");let BaseSelectionRenderService=_BaseSelectionRenderService;function selectionDataForSelectAll(skeleton){return{range:{startRow:0,startColumn:0,endRow:skeleton.getRowCount()-1,endColumn:skeleton.getColumnCount()-1,rangeType:core.RANGE_TYPE.ALL},primary:getTopLeftSelectionOfCurrSheet(skeleton).primary,style:null}}__name(selectionDataForSelectAll,"selectionDataForSelectAll");function getTopLeftSelectionOfCurrSheet(skeleton){return genSelectionByRange(skeleton,{startRow:0,startColumn:0,endRow:0,endColumn:0})}__name(getTopLeftSelectionOfCurrSheet,"getTopLeftSelectionOfCurrSheet");function genSelectionByRange(skeleton,range){const topLeftCell=skeleton.worksheet.getCellInfoInMergeData(range.startRow,range.startColumn),bottomRightCell=skeleton.worksheet.getCellInfoInMergeData(range.endRow,range.endColumn);return{range:{startRow:topLeftCell.startRow,startColumn:topLeftCell.startColumn,endRow:bottomRightCell.endRow,endColumn:bottomRightCell.endColumn,rangeType:core.RANGE_TYPE.NORMAL},primary:{actualRow:topLeftCell.startRow,actualColumn:topLeftCell.startColumn,startRow:topLeftCell.startRow,startColumn:topLeftCell.startColumn,endRow:topLeftCell.endRow,endColumn:topLeftCell.endColumn,isMerged:topLeftCell.isMerged,isMergedMainCell:topLeftCell.isMergedMainCell},style:null}}__name(genSelectionByRange,"genSelectionByRange");var __defProp$V=Object.defineProperty,__getOwnPropDesc$V=Object.getOwnPropertyDescriptor,__decorateClass$V=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$V(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$V(target,key,result),result},"__decorateClass$V"),__decorateParam$V=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$V"),_a;exports.SheetSkeletonManagerService=(_a=class extends core.Disposable{constructor(_context,_injector){super();__publicField(this,"_currentSkeletonSearchParam",{sheetId:""});__publicField(this,"_sheetSkeletonParam",[]);__publicField(this,"_currentSkeleton$",new rxjs.BehaviorSubject(null));__publicField(this,"currentSkeleton$",this._currentSkeleton$.asObservable());__publicField(this,"_currentSkeletonBefore$",new rxjs.BehaviorSubject(null));__publicField(this,"currentSkeletonBefore$",this._currentSkeletonBefore$.asObservable());this._context=_context,this._injector=_injector,this.disposeWithMe(()=>{this._currentSkeletonBefore$.complete(),this._currentSkeleton$.complete(),this._sheetSkeletonParam=[]}),this._initRemoveSheet()}_initRemoveSheet(){this.disposeWithMe(this._context.unit.sheetDisposed$.subscribe(sheet=>{this.disposeSkeleton({sheetId:sheet.getSheetId()})}))}getCurrentSkeleton(){var _a61;return(_a61=this.getCurrent())==null?void 0:_a61.skeleton}getCurrent(){return this._getSkeleton(this._currentSkeletonSearchParam)}getWorksheetSkeleton(sheetId){return this._getSkeleton({sheetId})}getUnitSkeleton(unitId,sheetId){const param=this._getSkeleton({sheetId});return param!=null&&(param.unitId=unitId),param}setCurrent(searchParam){this._setCurrent(searchParam)}_setCurrent(searchParam){const param=this._getSkeleton(searchParam),unitId=this._context.unitId;if(param!=null)this._reCalculate(param);else{const{sheetId:sheetId2}=searchParam,worksheet=this._context.unit.getSheetBySheetId(searchParam.sheetId);if(worksheet==null)return;const skeleton=this._buildSkeleton(worksheet);this._sheetSkeletonParam.push({unitId,sheetId:sheetId2,skeleton,dirty:!1})}this._currentSkeletonSearchParam=searchParam;const sheetId=this._currentSkeletonSearchParam.sheetId,sheetSkeletonManagerParam=this.getUnitSkeleton(unitId,sheetId);this._currentSkeletonBefore$.next(sheetSkeletonManagerParam),this._currentSkeleton$.next(sheetSkeletonManagerParam)}reCalculate(){const param=this.getCurrent();param!=null&&this._reCalculate(param)}_reCalculate(param){param.dirty&&(param.skeleton.makeDirty(!0),param.dirty=!1),param.skeleton.calculate()}makeDirty(searchParm,state=!0){const param=this._getSkeleton(searchParm);param!=null&&(param.dirty=state)}getOrCreateSkeleton(searchParam){const skeleton=this._getSkeleton(searchParam);if(skeleton)return skeleton.skeleton;const worksheet=this._context.unit.getSheetBySheetId(searchParam.sheetId);if(!worksheet)return;const newSkeleton=this._buildSkeleton(worksheet);return this._sheetSkeletonParam.push({unitId:this._context.unitId,sheetId:searchParam.sheetId,skeleton:newSkeleton,dirty:!1}),newSkeleton}disposeSkeleton(searchParm){const index=this._sheetSkeletonParam.findIndex(param=>param.sheetId===searchParm.sheetId);index>-1&&(this._sheetSkeletonParam[index].skeleton.dispose(),this._sheetSkeletonParam.splice(index,1))}attachRangeWithCoord(range){const skeleton=this.getCurrentSkeleton();return skeleton?attachRangeWithCoord(skeleton,range):null}_getSkeleton(searchParm){const item=this._sheetSkeletonParam.find(param=>param.sheetId===searchParm.sheetId);return item!=null&&(item.commandId=searchParm.commandId),item}_buildSkeleton(worksheet){return this._injector.createInstance(engineRender.SpreadsheetSkeleton,worksheet,this._context.unit.getStyles())}setColumnHeaderSize(sheetId,render2,size){var _a61;const skeleton=(_a61=this.getWorksheetSkeleton(sheetId))==null?void 0:_a61.skeleton;if(skeleton){skeleton.columnHeaderHeight=size,render2.scene.getViewports()[0].top=size,render2.scene.getViewport("viewColumnRight").setViewportSize({height:size}),render2.scene.getViewport("viewColumnLeft").setViewportSize({height:size}),render2.scene.getViewport("viewRowBottom").setViewportSize({top:size}),render2.scene.getViewport("viewRowTop").setViewportSize({top:size}),render2.scene.getViewport("viewLeftTop").setViewportSize({height:size});const selectionService=render2==null?void 0:render2.with(sheets.SheetsSelectionsService),selectionRenderService=render2==null?void 0:render2.with(ISheetSelectionRenderService),currSelections=selectionService.getCurrentSelections();selectionRenderService.resetSelectionsByModelData(currSelections)}}},__name(_a,"SheetSkeletonManagerService"),_a);exports.SheetSkeletonManagerService=__decorateClass$V([__decorateParam$V(1,core.Inject(core.Injector))],exports.SheetSkeletonManagerService);function useActiveWorkbook(){const univerInstanceService=core.useDependency(core.IUniverInstanceService),workbook=ui.useObservable(()=>univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),void 0,void 0,[]);return workbook!=null?workbook:null}__name(useActiveWorkbook,"useActiveWorkbook");function useActiveWorksheet(workbook){return ui.useObservable(()=>{var _a61;return(_a61=workbook==null?void 0:workbook.activeSheet$)!=null?_a61:rxjs.of(null)},void 0,void 0,[workbook])}__name(useActiveWorksheet,"useActiveWorksheet");function useWorkbooks(){const univerInstanceService=core.useDependency(core.IUniverInstanceService);return ui.useObservable(()=>rxjs.merge([univerInstanceService.getTypeOfUnitAdded$(core.UniverInstanceType.UNIVER_SHEET),univerInstanceService.getTypeOfUnitDisposed$(core.UniverInstanceType.UNIVER_SHEET)]).pipe(rxjs.map(()=>univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET)),rxjs.startWith(univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET))),[],void 0,[univerInstanceService])}__name(useWorkbooks,"useWorkbooks");function useSheetSkeleton(){const renderManagerService=core.useDependency(engineRender.IRenderManagerService),workbook=useActiveWorkbook(),{sheetSkeletonManagerService}=React.useMemo(()=>{if(workbook){const ru=renderManagerService.getRenderById(workbook.getUnitId());return{sheetSkeletonManagerService:ru==null?void 0:ru.with(exports.SheetSkeletonManagerService)}}return{sheetSkeletonManagerService:null}},[workbook,renderManagerService]);return sheetSkeletonManagerService}__name(useSheetSkeleton,"useSheetSkeleton");const SHEET_UI_PLUGIN_NAME="SheetUI";var SheetsUIPart=(SheetsUIPart2=>(SheetsUIPart2.FILTER_PANEL_EMBED_POINT="filter-panel-embed-point",SheetsUIPart2.SHEETS_FOOTER="sheets-footer",SheetsUIPart2.FORMULA_AUX="formula-aux",SheetsUIPart2))(SheetsUIPart||{}),__defProp$U=Object.defineProperty,__getOwnPropDesc$U=Object.getOwnPropertyDescriptor,__decorateClass$U=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$U(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$U(target,key,result),result},"__decorateClass$U"),__decorateParam$U=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$U");const AFFECT_LAYOUT_STYLES=["ff","fs","tr","tb"];var _a2;exports.AutoHeightController=(_a2=class extends core.Disposable{constructor(_renderManagerService,_sheetInterceptorService,_selectionManagerService,_univerInstanceService){super(),this._renderManagerService=_renderManagerService,this._sheetInterceptorService=_sheetInterceptorService,this._selectionManagerService=_selectionManagerService,this._univerInstanceService=_univerInstanceService,this._initialize()}getUndoRedoParamsOfAutoHeight(ranges){const{_univerInstanceService:univerInstanceService}=this,workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),sheetSkeletonService=this._renderManagerService.getRenderById(unitId).with(exports.SheetSkeletonManagerService);if(!subUnitId||!sheetSkeletonService.getCurrent())return{redos:[],undos:[]};const{skeleton}=sheetSkeletonService.getCurrent(),rowsAutoHeightInfo=skeleton.calculateAutoHeightInRange(ranges),redoParams={subUnitId,unitId,rowsAutoHeightInfo},undoParams=sheets.SetWorksheetRowAutoHeightMutationFactory(redoParams,worksheet);return{undos:[{id:sheets.SetWorksheetRowAutoHeightMutation.id,params:undoParams}],redos:[{id:sheets.SetWorksheetRowAutoHeightMutation.id,params:redoParams}]}}_initialize(){const{_sheetInterceptorService:sheetInterceptorService,_selectionManagerService:selectionManagerService}=this;this.disposeWithMe(sheetInterceptorService.interceptCommand({getMutations:__name(command=>{if(command.id===sheets.SetRangeValuesCommand.id){const params=command.params;return this.getUndoRedoParamsOfAutoHeight(params.range)}return{redos:[],undos:[]}},"getMutations")})),this.disposeWithMe(sheetInterceptorService.interceptCommand({getMutations:__name(command=>command.id!==sheets.SetWorksheetRowIsAutoHeightCommand.id?{redos:[],undos:[]}:this.getUndoRedoParamsOfAutoHeight(command.params.ranges),"getMutations")})),this.disposeWithMe(sheetInterceptorService.interceptCommand({getMutations:__name(command=>{var _a61,_b;if(command.id!==sheets.SetStyleCommand.id)return{redos:[],undos:[]};if(!AFFECT_LAYOUT_STYLES.includes((_a61=command.params)==null?void 0:_a61.style.type))return{redos:[],undos:[]};const selections=(_b=selectionManagerService.getCurrentSelections())==null?void 0:_b.map(s=>s.range);return selections!=null&&selections.length?this.getUndoRedoParamsOfAutoHeight(selections):{redos:[],undos:[]}},"getMutations")})),this.disposeWithMe(sheetInterceptorService.interceptAfterCommand({getMutations:__name(command=>{if(command.id===sheets.MoveRangeCommand.id){const params=command.params;return this.getUndoRedoParamsOfAutoHeight([params.fromRange,params.toRange])}if(command.id===sheets.ReorderRangeCommand.id){const params=command.params;return this.getUndoRedoParamsOfAutoHeight([params.range])}return{redos:[],undos:[]}},"getMutations")}))}},__name(_a2,"AutoHeightController"),_a2);exports.AutoHeightController=__decorateClass$U([__decorateParam$U(0,engineRender.IRenderManagerService),__decorateParam$U(1,core.Inject(sheets.SheetInterceptorService)),__decorateParam$U(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$U(3,core.Inject(core.IUniverInstanceService))],exports.AutoHeightController);function rangeToDiscreteRange(range,accessor,unitId,subUnitId){const univerInstanceService=accessor.get(core.IUniverInstanceService),workbook=unitId?univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_SHEET):univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=subUnitId?workbook==null?void 0:workbook.getSheetBySheetId(subUnitId):workbook==null?void 0:workbook.getActiveSheet();if(!worksheet)return null;const{startRow,endRow,startColumn,endColumn}=range,rows=[],cols=[];for(let r2=startRow;r2<=endRow;r2++)worksheet.getRowFiltered(r2)||rows.push(r2);for(let c=startColumn;c<=endColumn;c++)cols.push(c);return{rows,cols}}__name(rangeToDiscreteRange,"rangeToDiscreteRange");function discreteRangeToRange(discreteRange){const{rows,cols}=discreteRange;return{startRow:rows[0],endRow:rows[rows.length-1],startColumn:cols[0],endColumn:cols[cols.length-1]}}__name(discreteRangeToRange,"discreteRangeToRange");function virtualizeDiscreteRanges(ranges){let totalRows=[],totalCols=[];const totalRanges=[];return ranges.forEach(r2=>{totalRows=totalRows.concat(r2.rows),totalCols=totalCols.concat(r2.cols)}),totalRows=Array.from(new Set(totalRows)).sort((a,b)=>a-b),totalCols=Array.from(new Set(totalCols)).sort((a,b)=>a-b),ranges.forEach(r2=>{totalRanges.push({startRow:totalRows.findIndex(row=>row===r2.rows[0]),endRow:totalRows.findIndex(row=>row===r2.rows[r2.rows.length-1]),startColumn:totalCols.findIndex(col=>col===r2.cols[0]),endColumn:totalCols.findIndex(col=>col===r2.cols[r2.cols.length-1])})}),{ranges:totalRanges,mapFunc:__name((row,col)=>({row:totalRows[row],col:totalCols[col]}),"mapFunc")}}__name(virtualizeDiscreteRanges,"virtualizeDiscreteRanges");function generateNullCellValueRowCol(range){const cellValue=new core.ObjectMatrix;return range.forEach(r2=>{const{rows,cols}=r2;rows.forEach(i=>{cols.forEach(j=>{cellValue.setValue(i,j,{v:null,p:null,f:null,si:null,custom:null})})})}),cellValue.getData()}__name(generateNullCellValueRowCol,"generateNullCellValueRowCol");const chnNumChar={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},chnNumChar2=["零","一","二","三","四","五","六","七","八","九"],chnUnitSection=["","万","亿","万亿","亿亿"],chnUnitChar=["","十","百","千"],chnNameValue={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function chineseToNumber(chnStr){if(!chnStr)return 0;let rtn=0,section=0,number=0,secUnit=!1;const str=chnStr.split("");for(let i=0;i<str.length;i++){const num=chnNumChar[str[i]];if(typeof num<"u")number=num,i===str.length-1&&(section+=number);else{const obj=chnNameValue[str[i]],unit=obj.value;secUnit=obj.secUnit,secUnit?(section=(section+number)*unit,rtn+=section,section=0):section+=number*unit,number=0}}return rtn+section}__name(chineseToNumber,"chineseToNumber");function sectionToChinese(section){let strIns="",chnStr="",unitPos=0,zero=!0;for(;section>0;){const v=section%10;v===0?zero||(zero=!0,chnStr=chnNumChar2[v]+chnStr):(zero=!1,strIns=chnNumChar2[v],strIns+=chnUnitChar[unitPos],chnStr=strIns+chnStr),unitPos++,section=Math.floor(section/10)}return chnStr}__name(sectionToChinese,"sectionToChinese");function numberToChinese(num){let unitPos=0,strIns="",chnStr="",needZero=!1;if(num===0)return chnNumChar2[0];for(;num>0;){const section=num%1e4;needZero&&(chnStr=chnNumChar2[0]+chnStr),strIns=sectionToChinese(section),strIns+=section!==0?chnUnitSection[unitPos]:chnUnitSection[0],chnStr=strIns+chnStr,needZero=section<1e3&&section>0,num=Math.floor(num/1e4),unitPos++}return chnStr}__name(numberToChinese,"numberToChinese");function isChnNumber(txt){if(!txt)return!1;let isChnNumber2=!0;if(txt)if(txt.length===1)txt==="日"||txt in chnNumChar?isChnNumber2=!0:isChnNumber2=!1;else{const str=txt.split("");for(let i=0;i<str.length;i++)if(!(str[i]in chnNumChar||str[i]in chnNameValue)){isChnNumber2=!1;break}}return isChnNumber2}__name(isChnNumber,"isChnNumber");function matchExtendNumber(txt){if(!txt)return{isExtendNumber:!1};const reg=/0|([1-9]+[0-9]*)/g,isExtendNumber=reg.test(txt);if(isExtendNumber){const match=txt.match(reg);if(match&&match.length>0){const matchTxt=match[match.length-1],matchIndex=txt.lastIndexOf(matchTxt),beforeTxt=txt.substr(0,matchIndex),afterTxt=txt.substr(matchIndex+matchTxt.length);return{isExtendNumber:!0,matchTxt:Number(matchTxt),beforeTxt,afterTxt}}return{isExtendNumber:!1}}return{isExtendNumber}}__name(matchExtendNumber,"matchExtendNumber");function isChnWeek2(txt){let isChnWeek22;return txt.length===2&&(txt==="周一"||txt==="周二"||txt==="周三"||txt==="周四"||txt==="周五"||txt==="周六"||txt==="周日")?isChnWeek22=!0:isChnWeek22=!1,isChnWeek22}__name(isChnWeek2,"isChnWeek2");function isChnWeek3(txt){let isChnWeek32;return txt.length===3&&(txt==="星期一"||txt==="星期二"||txt==="星期三"||txt==="星期四"||txt==="星期五"||txt==="星期六"||txt==="星期日")?isChnWeek32=!0:isChnWeek32=!1,isChnWeek32}__name(isChnWeek3,"isChnWeek3");function getLenS(indexArr,rsd){let s=0;for(let j=0;j<indexArr.length&&indexArr[j]<rsd;j++)s++;return s}__name(getLenS,"getLenS");function isEqualDiff(arr){let diff=!0;const step=arr[1]-arr[0];for(let i=1;i<arr.length;i++)if(arr[i]-arr[i-1]!==step){diff=!1;break}return diff}__name(isEqualDiff,"isEqualDiff");function getDataIndex(csLen,asLen,indexArr){const obj=[],num=Math.floor(asLen/csLen),rsd=asLen%csLen;let sum=0;if(num>0){for(let i=0;i<num;i++)for(let j=0;j<indexArr.length;j++)obj[indexArr[j]+i*csLen]=sum,sum++;for(let a=0;a<indexArr.length&&indexArr[a]<rsd;a++)obj[indexArr[a]+csLen*num]=sum,sum++}else for(let a=0;a<indexArr.length&&indexArr[a]<rsd;a++)obj[indexArr[a]]=sum,sum++;return obj}__name(getDataIndex,"getDataIndex");function fillCopy(data,len){const applyData=[];for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]);removeCellCustom(d),applyData.push({v:null,s:null,p:null,f:null,si:null,t:null,...d})}return applyData}__name(fillCopy,"fillCopy");function fillCopyStyles(data,len){var _a61;const applyData=[];for(let i=1;i<=len;i++){const index=(i-1)%data.length,d={s:(_a61=data[index])==null?void 0:_a61.s};applyData.push(d)}return applyData}__name(fillCopyStyles,"fillCopyStyles");function isEqualRatio(arr){let ratio=!0;const step=arr[1]/arr[0];for(let i=1;i<arr.length;i++)if(arr[i]/arr[i-1]!==step){ratio=!1;break}return ratio}__name(isEqualRatio,"isEqualRatio");function getXArr(len){const xArr=[];for(let i=1;i<=len;i++)xArr.push(i);return xArr}__name(getXArr,"getXArr");function fillSeries(data,len,direction){var _a61,_b,_c,_d;const applyData=[],dataNumArr=[];for(let j=0;j<data.length;j++)dataNumArr.push(Number((_a61=data[j])==null?void 0:_a61.v));if(data.length>2&&isEqualRatio(dataNumArr))for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]);removeCellCustom(d);const num=Number((_b=data[data.length-1])==null?void 0:_b.v)*(Number((_c=data[1])==null?void 0:_c.v)/Number((_d=data[0])==null?void 0:_d.v))**i;d&&(needsUpdateCellValue(d)&&(d.v=num),applyData.push(d))}else{const xArr=getXArr(data.length);for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]);removeCellCustom(d);const forward=direction===core.Direction.DOWN||direction===core.Direction.RIGHT,y=forecast(data.length+i,dataNumArr,xArr,forward);d&&(needsUpdateCellValue(d)&&(d.v=y),applyData.push(d))}}return applyData}__name(fillSeries,"fillSeries");function forecast(x,yArr,xArr,forward=!0){function getAverage(arr){let sum=0;for(let i=0;i<arr.length;i++)sum+=arr[i];return sum/arr.length}__name(getAverage,"getAverage");const ax=getAverage(xArr),ay=getAverage(yArr);let sum_d=0,sum_n=0;for(let j=0;j<xArr.length;j++)sum_d+=(xArr[j]-ax)*(yArr[j]-ay),sum_n+=(xArr[j]-ax)*(xArr[j]-ax);let b;sum_n===0?b=forward?1:-1:b=sum_d/sum_n;const a=ay-b*ax;return Math.round((a+b*x)*1e5)/1e5}__name(forecast,"forecast");function fillExtendNumber(data,len,step){var _a61;const applyData=[],reg=/0|([1-9]+[0-9]*)/g;for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]);removeCellCustom(d);const last=`${(_a61=data[data.length-1])==null?void 0:_a61.v}`,match=last==null?void 0:last.match(reg),lastTxt=match==null?void 0:match[match.length-1],num=Math.abs(Number(lastTxt)+step*i);if(!last||!lastTxt)continue;const lastIndex=last.lastIndexOf(lastTxt),valueTxt=last.substr(0,lastIndex)+num.toString()+last.substr(lastIndex+lastTxt.length);d&&(d.v=valueTxt,applyData.push(d))}return applyData}__name(fillExtendNumber,"fillExtendNumber");function fillChnWeek(data,len,step,weekType=0){var _a61,_b;const keywordMap=[["日","一","二","三","四","五","六"],["周日","周一","周二","周三","周四","周五","周六"],["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]];if(weekType>=keywordMap.length)return[];const keyword=keywordMap[weekType],applyData=[];for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]);removeCellCustom(d);let num=0;if(((_a61=data[data.length-1])==null?void 0:_a61.v)===keyword[0])num=7+step*i;else{const last=`${(_b=data[data.length-1])==null?void 0:_b.v}`;if(last){const txt=last.substr(last.length-1,1);num=chineseToNumber(txt)+step*i}}num<0&&(num=Math.ceil(Math.abs(num)/7)*7+num);const rsd=num%7;d&&(d.v=keyword[rsd],applyData.push(d))}return applyData}__name(fillChnWeek,"fillChnWeek");function fillChnNumber(data,len,step){var _a61;const applyData=[];for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]);removeCellCustom(d);const formattedValue=`${(_a61=data[data.length-1])==null?void 0:_a61.v}`,num=chineseToNumber(formattedValue)+step*i;let txt;num<=0?txt="零":txt=numberToChinese(num),d&&(d.v=txt,applyData.push(d))}return applyData}__name(fillChnNumber,"fillChnNumber");const LOOP_SERIES={enWeek1:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],enWeek2:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],enMonth1:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],enMonth2:["January","February","March","April","May","June","July","August","September","October","November","December"],chnMonth1:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],chnMonth2:["正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","腊月"],chHour1:["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"],chHour2:["子时","丑时","寅时","卯时","辰时","巳时","午时","未时","申时","酉时","戌时","亥时"],chYear1:["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],chSeason1:["春","夏","秋","冬"],chSeason2:["春季","夏季","秋季","冬季"]};function isLoopSeries(txt){let isLoopSeries2=!1;return Object.keys(LOOP_SERIES).forEach(key=>{LOOP_SERIES[key].includes(txt)&&(isLoopSeries2=!0)}),isLoopSeries2}__name(isLoopSeries,"isLoopSeries");function getLoopSeriesInfo(txt){let name="";const series=[];return Object.keys(LOOP_SERIES).forEach(key=>{LOOP_SERIES[key].includes(txt)&&(name=key,series.push(...LOOP_SERIES[key]))}),{name,series}}__name(getLoopSeriesInfo,"getLoopSeriesInfo");function fillLoopSeries(data,len,step,series){var _a61;const seriesLen=series.length,applyData=[];for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]);removeCellCustom(d);const last=`${(_a61=data[data.length-1])==null?void 0:_a61.v}`;let num=series.indexOf(last)+step*i;num<0&&(num+=Math.abs(step)*seriesLen);const rsd=num%seriesLen;d&&(d.v=series[rsd],applyData.push(d))}return applyData}__name(fillLoopSeries,"fillLoopSeries");function getAutoFillRepeatRange(sourceRange,targetRange){const repeats=[];let direction;if(targetRange.startRow<sourceRange.startRow)direction=core.Direction.UP;else if(targetRange.endRow>sourceRange.endRow)direction=core.Direction.DOWN;else if(targetRange.startColumn<sourceRange.startColumn)direction=core.Direction.LEFT;else if(targetRange.endColumn>sourceRange.endColumn)direction=core.Direction.RIGHT;else return[];if(direction===core.Direction.DOWN||direction===core.Direction.UP){const sourceLength=sourceRange.endRow-sourceRange.startRow+1,targetLength=targetRange.endRow-targetRange.startRow+1,mod=Math.floor(targetLength/sourceLength),rest=targetLength%sourceLength,relativeRange={startRow:0,startColumn:0,endRow:sourceRange.endRow-sourceRange.startRow,endColumn:sourceRange.endColumn-sourceRange.startColumn};if(direction===core.Direction.DOWN){for(let i=0;i<mod;i++)repeats.push({repeatStartCell:{row:sourceRange.startRow+(i+1)*sourceLength,col:sourceRange.startColumn},relativeRange});rest>0&&repeats.push({repeatStartCell:{row:sourceRange.startRow+(mod+1)*sourceLength,col:sourceRange.startColumn},relativeRange:{startRow:0,startColumn:0,endRow:rest-1,endColumn:sourceRange.endColumn-sourceRange.startColumn}})}else{for(let i=0;i<mod;i++)repeats.push({repeatStartCell:{row:sourceRange.startRow-(i+1)*sourceLength,col:sourceRange.startColumn},relativeRange});rest>0&&repeats.push({repeatStartCell:{row:sourceRange.startRow-(mod+1)*sourceLength,col:sourceRange.startColumn},relativeRange:{startRow:sourceLength-rest,endRow:sourceLength-1,startColumn:0,endColumn:sourceRange.endColumn-sourceRange.startColumn}})}}if(direction===core.Direction.RIGHT||direction===core.Direction.LEFT){const sourceLength=sourceRange.endColumn-sourceRange.startColumn+1,targetLength=targetRange.endColumn-targetRange.startColumn+1,mod=Math.floor(targetLength/sourceLength),rest=targetLength%sourceLength,relativeRange={startRow:0,startColumn:0,endRow:sourceRange.endRow-sourceRange.startRow,endColumn:sourceRange.endColumn-sourceRange.startColumn};if(direction===core.Direction.RIGHT){for(let i=0;i<mod;i++)repeats.push({repeatStartCell:{row:sourceRange.startRow,col:sourceRange.startColumn+(i+1)*sourceLength},relativeRange});rest>0&&repeats.push({repeatStartCell:{row:sourceRange.startRow,col:sourceRange.startColumn+(mod+1)*sourceLength},relativeRange:{startRow:0,startColumn:0,endRow:sourceRange.endRow-sourceRange.startRow,endColumn:rest-1}})}else{for(let i=0;i<mod;i++)repeats.push({repeatStartCell:{row:sourceRange.startRow,col:sourceRange.startColumn-(i+1)*sourceLength},relativeRange});rest>0&&repeats.push({repeatStartCell:{row:sourceRange.startRow,col:sourceRange.startColumn-(mod+1)*sourceLength},relativeRange:{startRow:0,startColumn:sourceLength-rest,endRow:sourceRange.endRow-sourceRange.startRow,endColumn:sourceLength-1}})}}return repeats}__name(getAutoFillRepeatRange,"getAutoFillRepeatRange");function needsUpdateCellValue(cell){return!(core.isFormulaString(cell.f)||core.isFormulaId(cell.si)||cell.t===core.CellValueType.BOOLEAN)}__name(needsUpdateCellValue,"needsUpdateCellValue");function removeCellCustom(cell){cell&&"custom"in cell&&delete cell.custom}__name(removeCellCustom,"removeCellCustom");var AutoFillHookType=(AutoFillHookType2=>(AutoFillHookType2.Append="APPEND",AutoFillHookType2.Default="DEFAULT",AutoFillHookType2.Only="ONLY",AutoFillHookType2))(AutoFillHookType||{}),DATA_TYPE=(DATA_TYPE2=>(DATA_TYPE2.NUMBER="number",DATA_TYPE2.DATE="date",DATA_TYPE2.EXTEND_NUMBER="extendNumber",DATA_TYPE2.CHN_NUMBER="chnNumber",DATA_TYPE2.CHN_WEEK2="chnWeek2",DATA_TYPE2.CHN_WEEK3="chnWeek3",DATA_TYPE2.LOOP_SERIES="loopSeries",DATA_TYPE2.FORMULA="formula",DATA_TYPE2.OTHER="other",DATA_TYPE2))(DATA_TYPE||{}),APPLY_TYPE=(APPLY_TYPE2=>(APPLY_TYPE2.COPY="COPY",APPLY_TYPE2.SERIES="SERIES",APPLY_TYPE2.ONLY_FORMAT="ONLY_FORMAT",APPLY_TYPE2.NO_FORMAT="NO_FORMAT",APPLY_TYPE2))(APPLY_TYPE||{});const dateRule={type:DATA_TYPE.DATE,priority:1100,match:__name((cellData,accessor)=>{var _a61;if(cellData!=null&&cellData.f||cellData!=null&&cellData.si)return!1;if((typeof(cellData==null?void 0:cellData.v)=="number"||(cellData==null?void 0:cellData.t)===core.CellValueType.NUMBER)&&cellData.s){if(typeof cellData.s=="string"){const style=accessor.get(core.IUniverInstanceService).getFocusedUnit().getStyles().get(cellData.s),pattern=(_a61=style==null?void 0:style.n)==null?void 0:_a61.pattern;if(pattern)return core.numfmt.getInfo(pattern).isDate}else if(cellData.s.n&&core.numfmt.getInfo(cellData.s.n.pattern).isDate)return!0}return!1},"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.DATE,"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{const{data}=dataWithIndex;return direction===core.Direction.LEFT||direction===core.Direction.UP?(data.reverse(),fillSeries(data,len,direction).reverse()):fillSeries(data,len,direction)}}},numberRule={type:DATA_TYPE.NUMBER,priority:1e3,match:__name(cellData=>typeof(cellData==null?void 0:cellData.v)=="number"||(cellData==null?void 0:cellData.t)===core.CellValueType.NUMBER,"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.NUMBER,"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{const{data}=dataWithIndex;return direction===core.Direction.LEFT||direction===core.Direction.UP?(data.reverse(),fillSeries(data,len,direction).reverse()):fillSeries(data,len,direction)}}},otherRule={type:DATA_TYPE.OTHER,priority:0,match:__name(()=>!0,"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.OTHER,"isContinue")},extendNumberRule={type:DATA_TYPE.EXTEND_NUMBER,priority:900,match:__name(cellData=>matchExtendNumber(`${cellData==null?void 0:cellData.v}`||"").isExtendNumber,"match"),isContinue:__name((prev,cur)=>{var _a61;if(prev.type===DATA_TYPE.EXTEND_NUMBER){const{beforeTxt,afterTxt}=matchExtendNumber(`${(_a61=prev.cellData)==null?void 0:_a61.v}`||""),{beforeTxt:curBeforeTxt,afterTxt:curAfterTxt}=matchExtendNumber(`${cur==null?void 0:cur.v}`||"");if(beforeTxt===curBeforeTxt&&afterTxt===curAfterTxt)return!0}return!1},"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{var _a61;const{data}=dataWithIndex,isReverse=direction===core.Direction.UP||direction===core.Direction.LEFT;let step;if(data.length===1)return step=isReverse?-1:1,reverseIfNeed(fillExtendNumber(data,len,step),isReverse);const dataNumArr=[];for(let i=0;i<data.length;i++){const txt=`${(_a61=data[i])==null?void 0:_a61.v}`;txt&&dataNumArr.push(Number(matchExtendNumber(txt).matchTxt))}return isReverse&&(data.reverse(),dataNumArr.reverse()),isEqualDiff(dataNumArr)?(step=dataNumArr[1]-dataNumArr[0],reverseIfNeed(fillExtendNumber(data,len,step),isReverse)):fillCopy(data,len)}}},chnNumberRule={type:DATA_TYPE.CHN_NUMBER,priority:830,match:__name(cellData=>!!isChnNumber(`${cellData==null?void 0:cellData.v}`||""),"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.CHN_NUMBER,"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{var _a61,_b,_c;const{data}=dataWithIndex,isReverse=direction===core.Direction.LEFT||direction===core.Direction.UP;if(data.length===1){const formattedValue=`${(_a61=data[0])==null?void 0:_a61.v}`;let step;return isReverse?step=-1:step=1,formattedValue&&(formattedValue==="日"||chineseToNumber(formattedValue)<7)?reverseIfNeed(fillChnWeek(data,len,step),isReverse):reverseIfNeed(fillChnNumber(data,len,step),isReverse)}let hasWeek=!1;for(let i=0;i<data.length;i++)if(((_b=data[i])==null?void 0:_b.v)==="日"){hasWeek=!0;break}const dataNumArr=[];let weekIndex=0;for(let i=0;i<data.length;i++){const formattedValue=`${(_c=data[i])==null?void 0:_c.v}`;formattedValue==="日"?i===0?dataNumArr.push(0):(weekIndex++,dataNumArr.push(weekIndex*7)):hasWeek&&chineseToNumber(formattedValue)>0&&chineseToNumber(formattedValue)<7?dataNumArr.push(chineseToNumber(formattedValue)+weekIndex*7):dataNumArr.push(chineseToNumber(formattedValue))}if(isReverse&&(data.reverse(),dataNumArr.reverse()),isEqualDiff(dataNumArr)){if(hasWeek||dataNumArr[dataNumArr.length-1]<6&&dataNumArr[0]>0||dataNumArr[0]<6&&dataNumArr[dataNumArr.length-1]>0){const step2=dataNumArr[1]-dataNumArr[0];return reverseIfNeed(fillChnWeek(data,len,step2),isReverse)}const step=dataNumArr[1]-dataNumArr[0];return reverseIfNeed(fillChnNumber(data,len,step),isReverse)}return fillCopy(data,len)}}},chnWeek2Rule={type:DATA_TYPE.CHN_WEEK2,priority:820,match:__name(cellData=>!!isChnWeek2(`${cellData==null?void 0:cellData.v}`||""),"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.CHN_WEEK2,"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{var _a61;const{data}=dataWithIndex,isReverse=direction===core.Direction.LEFT||direction===core.Direction.UP;if(data.length===1){let step;return isReverse?step=-1:step=1,reverseIfNeed(fillChnWeek(data,len,step,1),isReverse)}const dataNumArr=[];let weekIndex=0;for(let i=0;i<data.length;i++){const formattedValue=`${(_a61=data[i])==null?void 0:_a61.v}`,lastTxt=formattedValue==null?void 0:formattedValue.substr(formattedValue.length-1,1);formattedValue==="周日"?i===0?dataNumArr.push(0):(weekIndex++,dataNumArr.push(weekIndex*7)):dataNumArr.push(chineseToNumber(lastTxt)+weekIndex*7)}if(isReverse&&(data.reverse(),dataNumArr.reverse()),isEqualDiff(dataNumArr)){const step=dataNumArr[1]-dataNumArr[0];return reverseIfNeed(fillChnWeek(data,len,step,1),isReverse)}return fillCopy(data,len)}}},chnWeek3Rule={type:DATA_TYPE.CHN_WEEK3,priority:810,match:__name(cellData=>isChnWeek3(`${cellData==null?void 0:cellData.v}`||""),"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.CHN_WEEK3,"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{var _a61;const{data}=dataWithIndex,isReverse=direction===core.Direction.LEFT||direction===core.Direction.UP;if(data.length===1){let step;return isReverse?step=-1:step=1,reverseIfNeed(fillChnWeek(data,len,step,2),isReverse)}const dataNumArr=[];let weekIndex=0;for(let i=0;i<data.length;i++){const formattedValue=`${(_a61=data[i])==null?void 0:_a61.v}`;if(formattedValue){const lastTxt=formattedValue.substr(formattedValue.length-1,1);formattedValue==="星期日"?i===0?dataNumArr.push(0):(weekIndex++,dataNumArr.push(weekIndex*7)):dataNumArr.push(chineseToNumber(lastTxt)+weekIndex*7)}}if(isReverse&&(data.reverse(),dataNumArr.reverse()),isEqualDiff(dataNumArr)){const step=dataNumArr[1]-dataNumArr[0];return reverseIfNeed(fillChnWeek(data,len,step,2),isReverse)}return fillCopy(data,len)}}},loopSeriesRule={type:DATA_TYPE.LOOP_SERIES,priority:800,match:__name(cellData=>isLoopSeries(`${cellData==null?void 0:cellData.v}`||""),"match"),isContinue:__name((prev,cur)=>{var _a61;return prev.type===DATA_TYPE.LOOP_SERIES?getLoopSeriesInfo(`${(_a61=prev.cellData)==null?void 0:_a61.v}`||"").name===getLoopSeriesInfo(`${cur==null?void 0:cur.v}`||"").name:!1},"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{var _a61,_b;const{data}=dataWithIndex,isReverse=direction===core.Direction.LEFT||direction===core.Direction.UP,{series}=getLoopSeriesInfo(`${(_a61=data[0])==null?void 0:_a61.v}`||"");if(data.length===1){let step;return isReverse?step=-1:step=1,reverseIfNeed(fillLoopSeries(data,len,step,series),isReverse)}const dataNumArr=[];let cycleIndex=0;for(let i=0;i<data.length;i++){const formattedValue=`${(_b=data[i])==null?void 0:_b.v}`;formattedValue&&(formattedValue===series[0]?i===0?dataNumArr.push(0):(cycleIndex++,dataNumArr.push(cycleIndex*series.length)):dataNumArr.push(series.indexOf(formattedValue)+cycleIndex*7))}if(isReverse&&(data.reverse(),dataNumArr.reverse()),isEqualDiff(dataNumArr)){const step=dataNumArr[1]-dataNumArr[0];return reverseIfNeed(fillLoopSeries(data,len,step,series),isReverse)}return fillCopy(data,len)}}};function reverseIfNeed(data,reverse){return reverse?data.reverse():data}__name(reverseIfNeed,"reverseIfNeed");var __defProp$T=Object.defineProperty,__getOwnPropDesc$T=Object.getOwnPropertyDescriptor,__decorateClass$T=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$T(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$T(target,key,result),result},"__decorateClass$T"),__decorateParam$T=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$T"),_a3;exports.AutoFillService=(_a3=class extends core.Disposable{constructor(_commandService,_undoRedoService,_renderManagerService,_univerInstanceService,_selectionManagerService,_injector){super();__publicField(this,"_rules",[]);__publicField(this,"_hooks",[]);__publicField(this,"_applyType$",new rxjs.BehaviorSubject(APPLY_TYPE.SERIES));__publicField(this,"_isFillingStyle",!0);__publicField(this,"_prevUndos",[]);__publicField(this,"_autoFillLocation$",new rxjs.BehaviorSubject(null));__publicField(this,"autoFillLocation$",this._autoFillLocation$.asObservable());__publicField(this,"_showMenu$",new rxjs.BehaviorSubject(!1));__publicField(this,"showMenu$",this._showMenu$.asObservable());__publicField(this,"_direction",core.Direction.DOWN);__publicField(this,"applyType$",this._applyType$.asObservable());__publicField(this,"_menu$",new rxjs.BehaviorSubject([{label:"autoFill.copy",value:APPLY_TYPE.COPY,disable:!1},{label:"autoFill.series",value:APPLY_TYPE.SERIES,disable:!1},{label:"autoFill.formatOnly",value:APPLY_TYPE.ONLY_FORMAT,disable:!1},{label:"autoFill.noFormat",value:APPLY_TYPE.NO_FORMAT,disable:!1}]));__publicField(this,"menu$",this._menu$.asObservable());this._commandService=_commandService,this._undoRedoService=_undoRedoService,this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService,this._selectionManagerService=_selectionManagerService,this._injector=_injector,this._init()}_init(){this._rules=[dateRule,numberRule,extendNumberRule,chnNumberRule,chnWeek2Rule,chnWeek3Rule,loopSeriesRule,otherRule].sort((a,b)=>b.priority-a.priority),this._isFillingStyle=!0}_getOneByPriority(items){return items.length<=0?[]:[items.reduce((maxItem,currentItem)=>(currentItem.priority||0)>(maxItem.priority||0)?currentItem:maxItem,items[0])]}_initPrevUndo(){this._prevUndos=[]}async triggerAutoFill(unitId,subUnitId,source,selection){var _a61;if(source.startColumn===selection.startColumn&&source.startRow===selection.startRow&&source.endColumn===selection.endColumn&&source.endRow===selection.endRow)return!1;if(selection.endColumn<source.endColumn&&selection.endColumn>source.startColumn)return this._commandService.executeCommand(AutoClearContentCommand.id,{clearRange:{startRow:selection.startRow,endRow:selection.endRow,startColumn:selection.endColumn+1,endColumn:source.endColumn},selectionRange:selection});if(selection.endRow<source.endRow&&selection.endRow>source.startRow)return this._commandService.executeCommand(AutoClearContentCommand.id,{clearRange:{startRow:selection.endRow+1,endRow:source.endRow,startColumn:selection.startColumn,endColumn:selection.endColumn},selectionRange:selection});const target={startRow:selection.startRow,endRow:selection.endRow,startColumn:selection.startColumn,endColumn:selection.endColumn};let direction=null;if(selection.startRow<source.startRow)direction=core.Direction.UP,target.endRow=source.startRow-1;else if(selection.endRow>source.endRow)direction=core.Direction.DOWN,target.startRow=source.endRow+1;else if(selection.startColumn<source.startColumn)direction=core.Direction.LEFT,target.endColumn=source.startColumn-1;else if(selection.endColumn>source.endColumn)direction=core.Direction.RIGHT,target.startColumn=source.endColumn+1;else return!1;this.direction=direction;const autoFillSource=this._injector.invoke(accessor=>rangeToDiscreteRange(source,accessor)),autoFillTarget=this._injector.invoke(accessor=>rangeToDiscreteRange(target,accessor));if(!autoFillSource||!autoFillTarget)return!1;this.autoFillLocation={source:autoFillSource,target:autoFillTarget,unitId,subUnitId};const preferTypes=[];this.getActiveHooks().forEach(hook=>{var _a62;const type=(_a62=hook==null?void 0:hook.onBeforeFillData)==null?void 0:_a62.call(hook,{source:autoFillSource,target:autoFillTarget,unitId,subUnitId},direction);type&&preferTypes.unshift(type)}),this._initPrevUndo();for(let i=0;i<preferTypes.length;i++){const menuItem=this.menu.find(m=>m.value===preferTypes[i]);if(menuItem&&!menuItem.disable)return this.fillData(preferTypes[i])}const first=(_a61=this.menu.find(m=>m.disable===!1))==null?void 0:_a61.value;return first?this.fillData(first):!1}addHook(hook){if(this._hooks.find(h=>h.id===hook.id))throw new Error(`Add hook failed, hook id '${hook.id}' already exist!`);return hook.priority===void 0&&(hook.priority=0),hook.type===void 0&&(hook.type=AutoFillHookType.Append),this._hooks.push(hook),core.toDisposable(()=>{const index=this._hooks.findIndex(item=>item===hook);index>-1&&this._hooks.splice(index,1)})}registerRule(rule){if(this._rules.find(r2=>r2.type===rule.type))throw new Error(`Registry rule failed, type '${rule.type}' already exist!`);const index=this._rules.findIndex(r2=>r2.priority<rule.priority);this._rules.splice(index===-1?this._rules.length:index,0,rule)}getRules(){return this._rules}getAllHooks(){return this._hooks}getActiveHooks(){const{source,target,unitId,subUnitId}=this.autoFillLocation||{};if(!source||!target||!unitId||!subUnitId)return[];const enabledHooks=this._hooks.filter(h=>{var _a61;return!((_a61=h.disable)!=null&&_a61.call(h,{source,target,unitId,subUnitId},this._direction,this.applyType))}),onlyHooks=enabledHooks.filter(h=>h.type===AutoFillHookType.Only);if(onlyHooks.length>0)return this._getOneByPriority(onlyHooks);const defaultHooks=this._getOneByPriority(enabledHooks.filter(h=>h.type===AutoFillHookType.Default)),appendHooks=enabledHooks.filter(h=>h.type===AutoFillHookType.Append)||[];return[...defaultHooks,...appendHooks]}get applyType(){return this._applyType$.getValue()}set applyType(type){this._applyType$.next(type)}get menu(){return this._menu$.getValue()}get direction(){return this._direction}set direction(direction){this._direction=direction}isFillingStyle(){return this._isFillingStyle}setFillingStyle(isFillingStyle){this._isFillingStyle=isFillingStyle}get autoFillLocation(){return this._autoFillLocation$.getValue()}set autoFillLocation(location){this._autoFillLocation$.next(location)}setDisableApplyType(type,disable){this._menu$.next(this._menu$.getValue().map(item=>item.value===type?{...item,disable}:item))}setShowMenu(show){this._showMenu$.next(show)}fillData(applyType){var _a61,_b,_c;this.applyType=applyType;const{source,target,unitId=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId(),subUnitId=(_a61=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:_a61.getSheetId()}=this.autoFillLocation||{};if(!source||!target||!unitId||!subUnitId)return!1;const direction=this.direction;this._prevUndos.length>0&&this._prevUndos.forEach(undo=>{this._commandService.syncExecuteCommand(undo.id,undo.params)}),this._prevUndos=[];const selection=core.Rectangle.union(discreteRangeToRange(source),discreteRangeToRange(target)),activeHooks=this.getActiveHooks(),workbook=this._univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_SHEET);this._commandService.syncExecuteCommand(sheets.SetSelectionsOperation.id,{selections:[{primary:{...(_c=(_b=this._selectionManagerService.getCurrentLastSelection())==null?void 0:_b.primary)!=null?_c:selection},range:{...selection,rangeType:core.RANGE_TYPE.NORMAL}}],unitId,subUnitId});const undos=[],redos=[];activeHooks.forEach(hook=>{var _a62;const{undos:hookUndos,redos:hookRedos}=((_a62=hook.onFillData)==null?void 0:_a62.call(hook,{source,target,unitId,subUnitId},direction,applyType))||{};hookUndos&&undos.push(...hookUndos),hookRedos&&redos.push(...hookRedos)});const result=redos.every(m=>this._commandService.syncExecuteCommand(m.id,m.params)),autoHeightRanges=[];applyType!==APPLY_TYPE.NO_FORMAT&&redos.forEach(m=>{if(m.id===sheets.SetRangeValuesMutation.id){const{cellValue}=m.params;new core.ObjectMatrix(cellValue).forValue((row,col,value)=>{const style=Object.keys(workbook.getStyles().get(value==null?void 0:value.s)||{});(value!=null&&value.p||style.length&&AFFECT_LAYOUT_STYLES.some(s=>style.includes(s)))&&autoHeightRanges.push({startRow:row,endRow:row,startColumn:col,endColumn:col})})}});const autoHeightUndoRedos=this._getAutoHeightUndoRedos(unitId,subUnitId,autoHeightRanges);return autoHeightUndoRedos.redos.every(m=>this._commandService.syncExecuteCommand(m.id,m.params))&&(undos.push(...autoHeightUndoRedos.undos),redos.push(...autoHeightUndoRedos.redos)),result&&(this._prevUndos=undos,this._undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:undos,redoMutations:redos})),activeHooks.forEach(hook=>{var _a62;(_a62=hook.onAfterFillData)==null||_a62.call(hook,{source,target,unitId,subUnitId},direction,applyType)}),this.setShowMenu(!0),!0}_getAutoHeightUndoRedos(unitId,subUnitId,ranges){var _a61,_b;const sheetSkeletonService=(_a61=this._renderManagerService.getRenderById(unitId))==null?void 0:_a61.with(exports.SheetSkeletonManagerService),skeleton=(_b=sheetSkeletonService==null?void 0:sheetSkeletonService.getCurrent())==null?void 0:_b.skeleton;if(!skeleton)return{redos:[],undos:[]};const rowsAutoHeightInfo=skeleton.calculateAutoHeightInRange(ranges),redoParams={subUnitId,unitId,rowsAutoHeightInfo},worksheet=skeleton.worksheet,undoParams=sheets.SetWorksheetRowAutoHeightMutationFactory(redoParams,worksheet);return{undos:[{id:sheets.SetWorksheetRowAutoHeightMutation.id,params:undoParams}],redos:[{id:sheets.SetWorksheetRowAutoHeightMutation.id,params:redoParams}]}}},__name(_a3,"AutoFillService"),_a3);exports.AutoFillService=__decorateClass$T([__decorateParam$T(0,core.ICommandService),__decorateParam$T(1,core.IUndoRedoService),__decorateParam$T(2,engineRender.IRenderManagerService),__decorateParam$T(3,core.Inject(core.IUniverInstanceService)),__decorateParam$T(4,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$T(5,core.Inject(core.Injector))],exports.AutoFillService);const IAutoFillService=core.createIdentifier("univer.auto-fill-service"),AutoFillCommand={type:core.CommandType.COMMAND,id:"sheet.command.auto-fill",handler:__name(async(accessor,params)=>{const autoFillService=accessor.get(IAutoFillService),univerInstanceService=accessor.get(core.IUniverInstanceService),{sourceRange,targetRange}=params,commandTarget=sheets.getSheetCommandTarget(univerInstanceService);if(!commandTarget)return!1;const{subUnitId,unitId}=commandTarget;return autoFillService.triggerAutoFill(unitId,subUnitId,sourceRange,targetRange)},"handler")},AutoClearContentCommand={id:"sheet.command.auto-clear-content",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),sheetInterceptorService=accessor.get(sheets.SheetInterceptorService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{unitId,subUnitId}=target,{clearRange,selectionRange}=params,clearMutationParams={subUnitId,unitId,cellValue:sheets.generateNullCellValue([clearRange])},undoClearMutationParams=sheets.SetRangeValuesUndoMutationFactory(accessor,clearMutationParams),{startColumn,startRow}=selectionRange,param={selections:[{primary:{startColumn,startRow,endColumn:startColumn,endRow:startRow,actualRow:startRow,actualColumn:startColumn,isMerged:!1,isMergedMainCell:!1},range:{...selectionRange}}],unitId,subUnitId};if(commandService.executeCommand(sheets.SetSelectionsOperation.id,param),commandService.syncExecuteCommand(sheets.SetRangeValuesMutation.id,clearMutationParams)){const afterInterceptors=sheetInterceptorService.afterCommandExecute({id:sheets.SetRangeValuesMutation.id,params:clearMutationParams});return core.sequenceExecute(afterInterceptors.redos,commandService),undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:[{id:sheets.SetRangeValuesMutation.id,params:undoClearMutationParams},...afterInterceptors.undos],redoMutations:[{id:sheets.SetRangeValuesMutation.id,params:clearMutationParams},...afterInterceptors.redos]}),!0}return!1},"handler")},RefillCommand={id:"sheet.command.refill",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>accessor.get(IAutoFillService).fillData(params.type),"handler")};var __defProp$S=Object.defineProperty,__getOwnPropDesc$S=Object.getOwnPropertyDescriptor,__decorateClass$S=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$S(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$S(target,key,result),result},"__decorateClass$S"),__decorateParam$S=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$S"),_a4;exports.EditorBridgeService=(_a4=class extends core.Disposable{constructor(_sheetInterceptorService,_renderManagerService,_themeService,_univerInstanceService,_editorService,_refSelectionsService,_contextService){super();__publicField(this,"_editorUnitId",core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);__publicField(this,"_editorIsDirty",!1);__publicField(this,"_isDisabled",!1);__publicField(this,"_visible",{visible:!1,eventType:engineRender.DeviceInputEventType.Dblclick,unitId:""});__publicField(this,"_currentEditCell",null);__publicField(this,"_currentEditCellState",null);__publicField(this,"_currentEditCellLayout",null);__publicField(this,"_currentEditCellState$",new rxjs.BehaviorSubject(null));__publicField(this,"currentEditCellState$",this._currentEditCellState$.asObservable());__publicField(this,"_currentEditCellLayout$",new rxjs.BehaviorSubject(null));__publicField(this,"currentEditCellLayout$",this._currentEditCellLayout$.asObservable());__publicField(this,"currentEditCell$",this._currentEditCellState$.pipe(rxjs.switchMap(editCellState=>this._currentEditCellLayout$.pipe(rxjs.map(layout=>editCellState&&layout?{...editCellState,...layout}:null)))));__publicField(this,"_visible$",new rxjs.BehaviorSubject(this._visible));__publicField(this,"visible$",this._visible$.asObservable());__publicField(this,"_afterVisible$",new rxjs.BehaviorSubject(this._visible));__publicField(this,"afterVisible$",this._afterVisible$.asObservable());__publicField(this,"_forceKeepVisible$",new rxjs.BehaviorSubject(!1));__publicField(this,"forceKeepVisible$",this._forceKeepVisible$.asObservable());this._sheetInterceptorService=_sheetInterceptorService,this._renderManagerService=_renderManagerService,this._themeService=_themeService,this._univerInstanceService=_univerInstanceService,this._editorService=_editorService,this._refSelectionsService=_refSelectionsService,this._contextService=_contextService,this.disposeWithMe(core.toDisposable(()=>{this._currentEditCellState$.complete(),this._currentEditCell=null})),this._univerInstanceService.getTypeOfUnitDisposed$(core.UniverInstanceType.UNIVER_SHEET).subscribe(unit=>{var _a61;unit.getUnitId()===((_a61=this._currentEditCellState)==null?void 0:_a61.unitId)&&this._clearCurrentEditCellState()})}refreshEditCellState(){const editCellState=this.getLatestEditCellState();if(!editCellState){this._currentEditCellState=null,this._currentEditCellLayout=null,this._currentEditCellState$.next(null),this._currentEditCellLayout$.next(null);return}const{position,scaleX,scaleY,canvasOffset,...rest}=editCellState;this._currentEditCellState=rest,this._currentEditCellLayout={position,scaleX,scaleY,canvasOffset},this._currentEditCellState$.next(this._currentEditCellState),this._currentEditCellLayout$.next(this._currentEditCellLayout)}refreshEditCellPosition(resetSizeOnly){var _a61;const currentEditCell=this._currentEditCell;if(currentEditCell==null)return;const ru=this._renderManagerService.getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_SHEET);if(!ru)return;const skeleton=(_a61=ru.with(exports.SheetSkeletonManagerService).getWorksheetSkeleton(currentEditCell.sheetId))==null?void 0:_a61.skeleton,selectionRenderService=ru.with(ISheetSelectionRenderService);if(!skeleton||!this._currentEditCellState)return;const{primary,unitId,sheetId,scene,engine}=currentEditCell,primaryWithCoord=attachPrimaryWithCoord(skeleton,primary);if(primaryWithCoord==null)return;const actualRangeWithCoord=core.convertCellToRange(primaryWithCoord),canvasOffset=docsUi.getCanvasOffsetByEngine(engine);let{startX,startY,endX,endY}=actualRangeWithCoord;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY=scene.getViewportScrollXY(selectionRenderService.getViewPort());startX=skeleton.convertTransformToOffsetX(startX,scaleX,scrollXY),startY=skeleton.convertTransformToOffsetY(startY,scaleY,scrollXY),endX=skeleton.convertTransformToOffsetX(endX,scaleX,scrollXY),endY=skeleton.convertTransformToOffsetY(endY,scaleY,scrollXY),resetSizeOnly&&this._currentEditCellLayout&&(endX=endX-startX+this._currentEditCellLayout.position.startX,endY=endY-startY+this._currentEditCellLayout.position.startY,startX=this._currentEditCellLayout.position.startX,startY=this._currentEditCellLayout.position.startY),this._currentEditCellLayout={position:{startX,startY,endX,endY},canvasOffset,scaleX,scaleY},this._currentEditCellLayout$.next(this._currentEditCellLayout)}setEditCell(param){this._currentEditCell=param,this._editorService.getFocusEditor()||(this._editorService.focus(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._contextService.setContextValue(core.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(core.FOCUSING_EDITOR_STANDALONE,!1));const editCellState=this.getLatestEditCellState();if(!editCellState){this._currentEditCellState=editCellState,this._currentEditCellLayout=editCellState,this._currentEditCellState$.next(editCellState),this._currentEditCellLayout$.next(editCellState);return}const{position,canvasOffset,scaleX,scaleY,...rest}=editCellState;this._currentEditCellState=rest,this._currentEditCellLayout={position,canvasOffset,scaleX,scaleY},this._currentEditCellState$.next(this._currentEditCellState),this._currentEditCellLayout$.next(this._currentEditCellLayout)}_clearCurrentEditCellState(){this._currentEditCellState=null,this._currentEditCellState$.next(null),this._currentEditCellLayout=null,this._currentEditCellLayout$.next(null)}getEditCellState(){return this._currentEditCellState==null||this._currentEditCellLayout==null?null:{...this._currentEditCellState,...this._currentEditCellLayout}}getEditCellLayout(){return this._currentEditCellLayout}getEditLocation(){return this._currentEditCellState}getLatestEditCellState(){var _a61,_b,_c;const currentEditCell=this._currentEditCell;if(currentEditCell==null)return;const ru=this._renderManagerService.getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_SHEET);if(!ru)return;const skeleton=ru.with(exports.SheetSkeletonManagerService).getCurrentSkeleton(),selectionRenderService=ru.with(ISheetSelectionRenderService);if(!skeleton)return;const{primary,unitId,sheetId,scene,engine}=currentEditCell,{startRow,startColumn}=primary,primaryWithCoord=attachPrimaryWithCoord(skeleton,primary);if(primaryWithCoord==null)return;const actualRangeWithCoord=core.convertCellToRange(primaryWithCoord),canvasOffset=docsUi.getCanvasOffsetByEngine(engine);let{startX,startY,endX,endY}=actualRangeWithCoord;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY=scene.getViewportScrollXY(selectionRenderService.getViewPort());startX=skeleton.convertTransformToOffsetX(startX,scaleX,scrollXY),startY=skeleton.convertTransformToOffsetY(startY,scaleY,scrollXY),endX=skeleton.convertTransformToOffsetX(endX,scaleX,scrollXY),endY=skeleton.convertTransformToOffsetY(endY,scaleY,scrollXY);const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return;const location={workbook,worksheet,unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),row:startRow,col:startColumn,origin:worksheet.getCellRaw(startRow,startColumn)};let documentLayoutObject;const cell=this._sheetInterceptorService.writeCellInterceptor.fetchThroughInterceptors(sheets.BEFORE_CELL_EDIT)(worksheet.getCell(startRow,startColumn),location);documentLayoutObject=cell&&skeleton.getCellDocumentModelWithFormula(cell);const renderConfig=(_a61=documentLayoutObject==null?void 0:documentLayoutObject.documentModel)==null?void 0:_a61.documentStyle.renderConfig;if(renderConfig!=null&&(renderConfig.cellValueType=core.CellValueType.STRING),!documentLayoutObject||documentLayoutObject.documentModel==null){const blankModel=skeleton.getBlankCellDocumentModel(cell);if(documentLayoutObject!=null){const{verticalAlign,horizontalAlign,wrapStrategy,textRotation,fill}=documentLayoutObject,{centerAngle,vertexAngle}=engineRender.convertTextRotation(textRotation);blankModel.documentModel.documentStyle.renderConfig={...renderConfig,verticalAlign,horizontalAlign,wrapStrategy,background:{rgb:fill},centerAngle,vertexAngle}}documentLayoutObject=blankModel}if(documentLayoutObject.fill=documentLayoutObject.fill||"#fff",(_b=documentLayoutObject.documentModel)==null||_b.setZoomRatio(Math.max(scaleX,scaleY)),(cell==null?void 0:cell.isInArrayFormulaRange)===!0){const body=(_c=documentLayoutObject.documentModel)==null?void 0:_c.getBody();body&&(body.textRuns=[{st:0,ed:body.dataStream.length-2,ts:{cl:{rgb:this._themeService.getCurrentTheme().textColorSecondary}}}])}return{position:{startX,startY,endX,endY},scaleX,scaleY,canvasOffset,row:startRow,column:startColumn,unitId,sheetId,documentLayoutObject,editorUnitId:this._editorUnitId,isInArrayFormulaRange:cell==null?void 0:cell.isInArrayFormulaRange}}getCurrentEditorId(){return this._editorUnitId}changeVisible(param){this._visible=param,param.visible&&(this._editorIsDirty=!1),this._visible$.next(this._visible),this._afterVisible$.next(this._visible)}isVisible(){return this._visible}enableForceKeepVisible(){this._forceKeepVisible$.next(!0)}disableForceKeepVisible(){this._forceKeepVisible$.next(!1)}isForceKeepVisible(){return this._forceKeepVisible$.getValue()}changeEditorDirty(dirtyStatus){this._editorIsDirty=dirtyStatus}getEditorDirty(){return this._editorIsDirty}},__name(_a4,"EditorBridgeService"),_a4);exports.EditorBridgeService=__decorateClass$S([__decorateParam$S(0,core.Inject(sheets.SheetInterceptorService)),__decorateParam$S(1,engineRender.IRenderManagerService),__decorateParam$S(2,core.Inject(core.ThemeService)),__decorateParam$S(3,core.IUniverInstanceService),__decorateParam$S(4,docsUi.IEditorService),__decorateParam$S(5,sheets.IRefSelectionsService),__decorateParam$S(6,core.IContextService)],exports.EditorBridgeService);const IEditorBridgeService=core.createIdentifier("univer.sheet-editor-bridge.service"),SetCellEditVisibleOperation={id:"sheet.operation.set-cell-edit-visible",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>params?(accessor.get(IEditorBridgeService).changeVisible(params),!0):!1,"handler")},SetCellEditVisibleWithF2Operation={id:"sheet.operation.set-cell-edit-visible-f2",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>{const commandService=accessor.get(core.ICommandService),workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);return workbook?(commandService.syncExecuteCommand(SetCellEditVisibleOperation.id,{...params,unitId:workbook.getUnitId()}),!0):!1},"handler")},SetCellEditVisibleArrowOperation={id:"sheet.operation.set-cell-edit-visible-arrow",type:core.CommandType.OPERATION,handler:__name(()=>!0,"handler")},ChangeZoomRatioCommand={id:"sheet.command.change-zoom-ratio",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{if(!params)return!1;const univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet,subUnitId,unitId}=target,{delta,reset}=params;let zoom=reset?100:Math.round((worksheet.getConfig().zoomRatio+delta)*100);zoom=Math.max(SHEET_ZOOM_RANGE[0],zoom),zoom=Math.min(SHEET_ZOOM_RANGE[1],zoom);const zoomRatio=zoom/100,state=accessor.get(IEditorBridgeService).isVisible();return(state.unitId===unitId||state.unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)&&state.visible?!1:accessor.get(core.ICommandService).executeCommand(SetZoomRatioOperation.id,{unitId,subUnitId,zoomRatio})},"handler")},SetZoomRatioCommand={id:"sheet.command.set-zoom-ratio",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{if(!params)return!1;const{unitId,subUnitId,zoomRatio}=params,state=accessor.get(IEditorBridgeService).isVisible();return(state.unitId===unitId||state.unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)&&state.visible?!1:accessor.get(core.ICommandService).executeCommand(SetZoomRatioOperation.id,{unitId,subUnitId,zoomRatio})},"handler")};function isRenderManagerService(renderManagerService){return typeof renderManagerService.isMainScene>"u"}__name(isRenderManagerService,"isRenderManagerService");function getSheetObject(univerInstanceService,renderManagerService){const workbook=univerInstanceService instanceof core.Workbook?univerInstanceService:univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return null;const unitId=workbook.getUnitId();let components,mainComponent,scene,engine;if(isRenderManagerService(renderManagerService)){const currentRender=renderManagerService.getRenderById(unitId);if(currentRender==null)return null;components=currentRender.components,components=currentRender.components,mainComponent=currentRender.mainComponent,scene=currentRender.scene,engine=currentRender.engine}else components=renderManagerService.components,mainComponent=renderManagerService.mainComponent,scene=renderManagerService.scene,engine=renderManagerService.engine;if(!components||!mainComponent)return null;const spreadsheet=mainComponent,spreadsheetRowHeader=components.get(SHEET_VIEW_KEY.ROW),spreadsheetColumnHeader=components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetLeftTopPlaceholder=components.get(SHEET_VIEW_KEY.LEFT_TOP);return{spreadsheet,spreadsheetRowHeader,spreadsheetColumnHeader,spreadsheetLeftTopPlaceholder,scene,engine}}__name(getSheetObject,"getSheetObject");function getCoordByCell(row,col,scene,skeleton){const{startX,startY,endX,endY}=skeleton.getCellWithCoordByIndex(row,col);return{startX,startY,endX,endY}}__name(getCoordByCell,"getCoordByCell");function getCoordByOffset(evtOffsetX,evtOffsetY,scene,skeleton,viewport,closeFirst){const relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords,scrollXY=scene.getScrollXYInfoByViewport(relativeCoords,viewport),{scaleX,scaleY}=scene.getAncestorScale(),moveActualSelection=skeleton.getCellIndexByOffset(newEvtOffsetX,newEvtOffsetY,scaleX,scaleY,scrollXY,{closeFirst}),{row,column}=moveActualSelection,startCell=skeleton.getNoMergeCellPositionByIndex(row,column),{startX,startY,endX,endY}=startCell;return{startX,startY,endX,endY,row,column}}__name(getCoordByOffset,"getCoordByOffset");function getTransformCoord(evtOffsetX,evtOffsetY,scene,skeleton){const relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),scrollXY=scene.getScrollXYInfoByViewport(relativeCoords,viewMain),{scaleX,scaleY}=scene.getAncestorScale(),{x:scrollX,y:scrollY}=scrollXY,offsetX=evtOffsetX/scaleX+scrollX,offsetY=evtOffsetY/scaleY+scrollY;return{x:offsetX,y:offsetY}}__name(getTransformCoord,"getTransformCoord");var __defProp$R=Object.defineProperty,__getOwnPropDesc$R=Object.getOwnPropertyDescriptor,__decorateClass$R=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$R(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$R(target,key,result),result},"__decorateClass$R"),__decorateParam$R=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$R"),_a5;let SheetsZoomRenderController=(_a5=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_commandService,_contextService,_editorBridgeService){super(),this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._contextService=_contextService,this._editorBridgeService=_editorBridgeService,this._initSkeletonListener(),this._initZoomEventListener()}updateZoom(worksheetId,zoomRatio){const worksheet=this._context.unit.getSheetBySheetId(worksheetId);return worksheet?(worksheet.getConfig().zoomRatio=zoomRatio,worksheet===this._context.unit.getActiveSheet()&&this._updateViewZoom(zoomRatio),!0):!1}_initZoomEventListener(){const scene=this._getSheetObject().scene;this.disposeWithMe(scene.onMouseWheel$.subscribeEvent(e=>{if(!e.ctrlKey||!this._contextService.getContextValue(core.FOCUSING_SHEET))return;if(this._editorBridgeService){const state=this._editorBridgeService.isVisible();if((state.unitId===this._context.unitId||state.unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)&&state.visible)return}const deltaFactor=Math.abs(e.deltaX);let ratioDelta=deltaFactor<40?.2:deltaFactor<80?.4:.2;ratioDelta*=e.deltaY>0?-1:1,scene.scaleX<1&&(ratioDelta/=2);const workbook=this._context.unit,sheet=workbook.getActiveSheet();if(!sheet)return;const currentRatio=sheet.getZoomRatio();let nextRatio=+Number.parseFloat(`${currentRatio+ratioDelta}`).toFixed(1);nextRatio=nextRatio>=4?4:nextRatio<=.1?.1:nextRatio,this._commandService.executeCommand(SetZoomRatioCommand.id,{zoomRatio:Math.round(nextRatio*10)/10,unitId:workbook.getUnitId(),subUnitId:sheet.getSheetId()}),e.preventDefault()}))}_initSkeletonListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(param=>{if(param==null)return;const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const zoomRatio=worksheet.getZoomRatio()||1;this._updateViewZoom(zoomRatio)}))}_updateViewZoom(zoomRatio){const sheetObject=this._getSheetObject();sheetObject==null||sheetObject.scene.scale(zoomRatio,zoomRatio),sheetObject==null||sheetObject.spreadsheet.makeForceDirty()}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}},__name(_a5,"SheetsZoomRenderController"),_a5);SheetsZoomRenderController=__decorateClass$R([__decorateParam$R(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$R(2,core.ICommandService),__decorateParam$R(3,core.IContextService),__decorateParam$R(4,core.Optional(IEditorBridgeService))],SheetsZoomRenderController);const SetZoomRatioOperation={id:"sheet.operation.set-zoom-ratio",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>{const renderUnit=accessor.get(engineRender.IRenderManagerService).getRenderById(params.unitId);return renderUnit?renderUnit.with(SheetsZoomRenderController).updateZoom(params.subUnitId,params.zoomRatio):!1},"handler")};var __defProp$Q=Object.defineProperty,__getOwnPropDesc$Q=Object.getOwnPropertyDescriptor,__decorateClass$Q=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$Q(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$Q(target,key,result),result},"__decorateClass$Q"),__decorateParam$Q=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$Q");const SHEET_MAIN_CANVAS_ID="univer-sheet-main-canvas";var _a6;exports.SheetsRenderService=(_a6=class extends core.RxDisposable{constructor(_contextService,_instanceSrv,_renderManagerService){super();__publicField(this,"_skeletonChangeMutations",new Set);this._contextService=_contextService,this._instanceSrv=_instanceSrv,this._renderManagerService=_renderManagerService,Promise.resolve().then(()=>this._init())}registerSkeletonChangingMutations(mutationId){return this._skeletonChangeMutations.has(mutationId)?core.toDisposable(()=>{}):(this._skeletonChangeMutations.add(mutationId),core.toDisposable(()=>this._skeletonChangeMutations.delete(mutationId)))}checkMutationShouldTriggerRerender(id){return this._skeletonChangeMutations.has(id)}_init(){this._initWorkbookListener(),this._initContextListener()}_initWorkbookListener(){this._instanceSrv.getTypeOfUnitAdded$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.takeUntil(this.dispose$)).subscribe(workbook=>this._createRenderer(workbook)),this._instanceSrv.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET).forEach(workbook=>this._createRenderer(workbook)),this._instanceSrv.getTypeOfUnitDisposed$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.takeUntil(this.dispose$)).subscribe(workbook=>this._disposeRenderer(workbook))}_createRenderer(workbook){const unitId=workbook.getUnitId();this._renderManagerService.created$.subscribe(renderer=>{renderer.unitId===unitId&&(renderer.engine.getCanvas().setId(`${SHEET_MAIN_CANVAS_ID}_${unitId}`),renderer.engine.getCanvas().getContext().setId(`${SHEET_MAIN_CANVAS_ID}_${unitId}`))}),this._renderManagerService.createRender(unitId),this._renderManagerService.setCurrent(unitId)}_disposeRenderer(workbook){const unitId=workbook.getUnitId();this._renderManagerService.removeRender(unitId)}_initContextListener(){this.disposeWithMe(this._contextService.subscribeContextValue$(engineRender.RENDER_RAW_FORMULA_KEY).pipe(rxjs.distinctUntilChanged()).subscribe(()=>{this._renderManagerService.getRenderAll().forEach(renderer=>{renderer.mainComponent instanceof engineRender.Spreadsheet&&renderer.mainComponent.makeForceDirty(!0)})}))}},__name(_a6,"SheetsRenderService"),_a6);exports.SheetsRenderService=__decorateClass$Q([__decorateParam$Q(0,core.IContextService),__decorateParam$Q(1,core.IUniverInstanceService),__decorateParam$Q(2,engineRender.IRenderManagerService)],exports.SheetsRenderService);var __defProp$P=Object.defineProperty,__getOwnPropDesc$P=Object.getOwnPropertyDescriptor,__decorateClass$P=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$P(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$P(target,key,result),result},"__decorateClass$P"),__decorateParam$P=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$P"),_a7;exports.AutoFillController=(_a7=class extends core.Disposable{constructor(_univerInstanceService,_commandService,_autoFillService,_editorBridgeService,_renderManagerService,_injector,_sheetsRenderService){super();__publicField(this,"_beforeApplyData",[]);__publicField(this,"_currentLocation",null);__publicField(this,"_copyData",[]);__publicField(this,"_defaultHook");this._univerInstanceService=_univerInstanceService,this._commandService=_commandService,this._autoFillService=_autoFillService,this._editorBridgeService=_editorBridgeService,this._renderManagerService=_renderManagerService,this._injector=_injector,this._sheetsRenderService=_sheetsRenderService,this._defaultHook={id:"default",type:AutoFillHookType.Default,priority:0,onBeforeFillData:__name((location,direction)=>this._presetAndCacheData(location,direction),"onBeforeFillData"),onFillData:__name((location,direction,applyType)=>this._fillData(location,direction,applyType),"onFillData")},this._init()}_init(){this._initDefaultHook(),this._onSelectionControlFillChanged(),this._initQuitListener(),this._initSkeletonChange()}_initSkeletonChange(){this.disposeWithMe(this._sheetsRenderService.registerSkeletonChangingMutations(AutoFillCommand.id))}_initDefaultHook(){this.disposeWithMe(this._autoFillService.addHook(this._defaultHook))}_initQuitListener(){const quitCommands=[SetCellEditVisibleOperation.id,AutoClearContentCommand.id,sheets.SetRangeValuesCommand.id,SetZoomRatioOperation.id,sheets.SetWorksheetActiveOperation.id,sheets.MoveRangeMutation.id,sheets.RemoveRowMutation.id,sheets.RemoveColMutation.id,sheets.InsertRowMutation.id,sheets.InsertColMutation.id,sheets.MoveRowsMutation.id,sheets.MoveColsMutation.id,sheets.SetWorksheetColWidthMutation.id,sheets.SetWorksheetRowHeightMutation.id,sheets.SetRangeValuesMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted((command,options)=>{var _a61,_b;const fromCollab=options==null?void 0:options.fromCollab,fromSync=options==null?void 0:options.fromSync,fromFormula=options==null?void 0:options.fromFormula;quitCommands.includes(command.id)&&!fromCollab&&!fromSync&&!fromFormula&&command.params.trigger!==AutoFillCommand.id&&command.params.trigger!==RefillCommand.id&&this._quit(),command.id===sheets.RemoveSheetMutation.id&&command.params.unitId===((_a61=this._currentLocation)==null?void 0:_a61.unitId)&&command.params.subUnitId===((_b=this._currentLocation)==null?void 0:_b.subUnitId)&&this._quit()})),this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(unit=>{var _a61;unit.getUnitId()===((_a61=this._currentLocation)==null?void 0:_a61.unitId)&&this._quit()}))}_quit(){this._currentLocation=null,this._beforeApplyData=[],this._copyData=[],this._autoFillService.setShowMenu(!1)}_onSelectionControlFillChanged(){const disposableCollection=new core.DisposableCollection,addListener=__name(disposableCollection2=>{disposableCollection2.dispose();const currentRenderer=this._renderManagerService.getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_SHEET);if(!currentRenderer)return;currentRenderer.with(ISheetSelectionRenderService).getSelectionControls().forEach(controlSelection=>{disposableCollection2.add(core.toDisposable(controlSelection.selectionFilled$.subscribe(filled=>{if(filled==null||filled.startColumn===-1||filled.startRow===-1||filled.endColumn===-1||filled.endRow===-1)return;const source={startColumn:controlSelection.model.startColumn,endColumn:controlSelection.model.endColumn,startRow:controlSelection.model.startRow,endRow:controlSelection.model.endRow},selection={startColumn:filled.startColumn,endColumn:filled.endColumn,startRow:filled.startRow,endRow:filled.endRow};this._commandService.executeCommand(AutoFillCommand.id,{sourceRange:source,targetRange:selection})}))),disposableCollection2.add(core.toDisposable(controlSelection.fillControl.onDblclick$.subscribeEvent(()=>{const source={startColumn:controlSelection.model.startColumn,endColumn:controlSelection.model.endColumn,startRow:controlSelection.model.startRow,endRow:controlSelection.model.endRow};this._handleDbClickFill(source)}))),disposableCollection2.add(core.toDisposable(controlSelection.fillControl.onPointerDown$.subscribeEvent(()=>{this._editorBridgeService.isVisible().visible&&this._editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.PointerDown,unitId:currentRenderer.unitId})})))})},"addListener");addListener(disposableCollection),this.disposeWithMe(this._commandService.onCommandExecuted(command=>{command.id===sheets.SetSelectionsOperation.id&&addListener(disposableCollection)}))}_handleDbClickFill(source){const selection=this._detectFillRange(source);selection.endRow<=source.endRow||this._commandService.executeCommand(AutoFillCommand.id,{sourceRange:source,targetRange:selection})}_detectFillRange(source){var _a61,_b,_c,_d,_e,_f;const{startRow,endRow,startColumn,endColumn}=source,worksheet=(_a61=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET))==null?void 0:_a61.getActiveSheet();if(!worksheet)return source;const matrix=worksheet.getCellMatrix(),maxRow=worksheet.getMaxRows()-1,maxColumn=worksheet.getMaxColumns()-1;let detectEndRow=endRow;if(startColumn>0&&((_b=matrix.getValue(startRow,startColumn-1))==null?void 0:_b.v)!=null){let cur=startRow;for(;((_c=matrix.getValue(cur,startColumn-1))==null?void 0:_c.v)!=null&&cur<maxRow;)cur+=1;detectEndRow=cur-1}else if(endColumn<maxColumn&&((_d=matrix.getValue(endRow,endColumn+1))==null?void 0:_d.v)!=null){let cur=startRow;for(;((_e=matrix.getValue(cur,endColumn+1))==null?void 0:_e.v)!=null&&cur<maxRow;)cur+=1;detectEndRow=cur-1}for(let i=endRow+1;i<=detectEndRow;i++)for(let j=startColumn;j<=endColumn;j++)if(((_f=matrix.getValue(i,j))==null?void 0:_f.v)!=null){detectEndRow=i-1;break}return{startColumn,endColumn,startRow,endRow:detectEndRow}}_getApplyData(copyDataPiece,csLen,asLen,direction,applyType,hasStyle=!0){const applyData=[],num=Math.floor(asLen/csLen),rsd=asLen%csLen,rules=this._autoFillService.getRules();if(!hasStyle&&applyType===APPLY_TYPE.ONLY_FORMAT)return console.error("ERROR: only format can not be applied when hasStyle is false"),[];const applyDataInTypes={};rules.forEach(r2=>{applyDataInTypes[r2.type]=[]}),rules.forEach(r2=>{const{type,applyFunctions:customApplyFunctions={}}=r2,copyDataInType=copyDataPiece[type];copyDataInType&&copyDataInType.forEach(copySquad=>{const s=getLenS(copySquad.index,rsd),len=copySquad.index.length*num+s,arrData=this._applyFunctions(copySquad,len,direction,applyType,customApplyFunctions,copyDataPiece),arrIndex=getDataIndex(csLen,asLen,copySquad.index);applyDataInTypes[type].push({data:arrData,index:arrIndex})})});for(let x=0;x<asLen;x++)rules.forEach(r2=>{const{type}=r2,applyDataInType=applyDataInTypes[type];for(let y=0;y<applyDataInType.length;y++)x in applyDataInType[y].index&&applyData.push(applyDataInType[y].data[applyDataInType[y].index[x]])});return applyData}_applyFunctions(copySquad,len,direction,applyType,customApplyFunctions,copyDataPiece){const{data}=copySquad,isReverse=direction===core.Direction.UP||direction===core.Direction.LEFT;if(applyType===APPLY_TYPE.COPY){const custom=customApplyFunctions==null?void 0:customApplyFunctions[APPLY_TYPE.COPY];return custom?custom(copySquad,len,direction,copyDataPiece):(isReverse&&data.reverse(),fillCopy(data,len))}if(applyType===APPLY_TYPE.SERIES){const custom=customApplyFunctions==null?void 0:customApplyFunctions[APPLY_TYPE.SERIES];return custom?custom(copySquad,len,direction,copyDataPiece):(isReverse&&data.reverse(),customApplyFunctions!=null&&customApplyFunctions[APPLY_TYPE.COPY]?customApplyFunctions[APPLY_TYPE.COPY](copySquad,len,direction,copyDataPiece):fillCopy(data,len))}if(applyType===APPLY_TYPE.ONLY_FORMAT){const custom=customApplyFunctions==null?void 0:customApplyFunctions[APPLY_TYPE.ONLY_FORMAT];return custom?custom(copySquad,len,direction,copyDataPiece):fillCopyStyles(data,len)}}_getCopyData(source,direction){const worksheet=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const currentCellDatas=worksheet.getCellMatrix(),rules=this._autoFillService.getRules(),copyData=[],isVertical=direction===core.Direction.DOWN||direction===core.Direction.UP;let aArray,bArray;return isVertical?(aArray=source.cols,bArray=source.rows):(aArray=source.rows,bArray=source.cols),aArray.forEach(a=>{const copyDataPiece=this._getEmptyCopyDataPiece(),prevData={type:void 0,cellData:void 0};bArray.forEach(b=>{let data;isVertical?data=currentCellDatas.getValue(b,a):data=currentCellDatas.getValue(a,b);const{type,isContinue}=rules.find(r2=>r2.match(data,this._injector))||otherRule;if(isContinue(prevData,data)){const typeInfo=copyDataPiece[type],last=typeInfo[typeInfo.length-1];last.data.push(data),last.index.push(b-bArray[0])}else{const typeInfo=copyDataPiece[type];typeInfo?typeInfo.push({data:[data],index:[b-bArray[0]]}):copyDataPiece[type]=[{data:[data],index:[b-bArray[0]]}]}prevData.type=type,prevData.cellData=data}),copyData.push(copyDataPiece)}),copyData}_getEmptyCopyDataPiece(){const copyDataPiece={};return this._autoFillService.getRules().forEach(r2=>{copyDataPiece[r2.type]=[]}),copyDataPiece}_getMergeApplyData(source,target,direction,csLen){const worksheet=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const applyMergeRanges=[];for(let i=source.startRow;i<=source.endRow;i++)for(let j=source.startColumn;j<=source.endColumn;j++){const{isMergedMainCell,startRow,startColumn,endRow,endColumn}=worksheet.getCellInfoInMergeData(i,j);if(isMergedMainCell){if(direction===core.Direction.DOWN){let windowStartRow=startRow+csLen,windowEndRow=endRow+csLen;for(;windowEndRow<=target.endRow;)applyMergeRanges.push({startRow:windowStartRow,startColumn,endRow:windowEndRow,endColumn}),windowStartRow+=csLen,windowEndRow+=csLen}else if(direction===core.Direction.UP){let windowStartRow=startRow-csLen,windowEndRow=endRow-csLen;for(;windowStartRow>=target.startRow;)applyMergeRanges.push({startRow:windowStartRow,startColumn,endRow:windowEndRow,endColumn}),windowStartRow-=csLen,windowEndRow-=csLen}else if(direction===core.Direction.RIGHT){let windowStartColumn=startColumn+csLen,windowEndColumn=endColumn+csLen;for(;windowEndColumn<=target.endColumn;)applyMergeRanges.push({startRow,startColumn:windowStartColumn,endRow,endColumn:windowEndColumn}),windowStartColumn+=csLen,windowEndColumn+=csLen}else if(direction===core.Direction.LEFT){let windowStartColumn=startColumn-csLen,windowEndColumn=endColumn-csLen;for(;windowStartColumn>=target.startColumn;)applyMergeRanges.push({startRow,startColumn:windowStartColumn,endRow,endColumn:windowEndColumn}),windowStartColumn-=csLen,windowEndColumn-=csLen}}}return applyMergeRanges}_presetAndCacheData(location,direction){const{source,target}=location,worksheet=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const currentCellDatas=worksheet.getCellMatrix(),applyData=[];return target.rows.forEach(i=>{const row=[];target.cols.forEach(j=>{row.push(core.Tools.deepClone(currentCellDatas.getValue(i,j)))}),applyData.push(row)}),this._beforeApplyData=applyData,this._copyData=this._getCopyData(source,direction),this._currentLocation=location,this._shouldDisableSeries(this._copyData)?(this._autoFillService.setDisableApplyType(APPLY_TYPE.SERIES,!0),APPLY_TYPE.COPY):(this._autoFillService.setDisableApplyType(APPLY_TYPE.SERIES,!1),this._getPreferredApplyType(this._copyData))}_fillData(location,direction,applyType){var _a61,_b;const undos=[],redos=[];let hasStyle=!0;applyType===APPLY_TYPE.NO_FORMAT&&(hasStyle=!1,applyType=APPLY_TYPE.SERIES);const{source,target,unitId,subUnitId}=location;if(!source||!target||direction==null)return{undos,redos};const sourceRange=discreteRangeToRange(source),targetRange=discreteRangeToRange(target),{cols:targetCols,rows:targetRows}=target,{cols:sourceCols,rows:sourceRows}=source,copyData=this._copyData;let csLen;direction===core.Direction.DOWN||direction===core.Direction.UP?csLen=sourceRows.length:csLen=sourceCols.length;const applyDatas=[];if(direction===core.Direction.DOWN||direction===core.Direction.UP){const asLen=targetRows.length,untransformedApplyDatas=[];targetCols.forEach((_2,i)=>{const copyD=copyData[i],applyData=this._getApplyData(copyD,csLen,asLen,direction,applyType,hasStyle);untransformedApplyDatas.push(applyData)});for(let i=0;i<untransformedApplyDatas[0].length;i++){const row=[];for(let j=0;j<untransformedApplyDatas.length;j++)row.push({s:null,...untransformedApplyDatas[j][i]});applyDatas.push(row)}}else{const asLen=targetCols.length;targetRows.forEach((_2,i)=>{const copyD=copyData[i],applyData=this._getApplyData(copyD,csLen,asLen,direction,applyType,hasStyle),row=[];for(let j=0;j<applyData.length;j++)row.push({s:null,...applyData[j]});applyDatas.push(row)})}let applyMergeRanges=[];const style=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getStyles();if(hasStyle?(applyMergeRanges=this._getMergeApplyData(sourceRange,targetRange,direction,csLen),applyDatas.forEach(row=>{row.forEach(cellData=>{cellData&&style&&style&&(cellData.s=style.getStyleByCell(cellData))})})):applyDatas.forEach((row,rowIndex)=>{row.forEach((cellData,colIndex)=>{cellData&&style&&(cellData.s=style.getStyleByCell(this._beforeApplyData[rowIndex][colIndex])||null)})}),applyType===APPLY_TYPE.ONLY_FORMAT&&applyDatas.forEach((row,rowIndex)=>{row.forEach((cellData,colIndex)=>{if(cellData){const old=this._beforeApplyData[rowIndex][colIndex]||{};cellData.f=old.f,cellData.si=old.si,cellData.t=old.t,cellData.v=old.v}})}),hasStyle){const deleteMergeRanges=[],mergeData=(_b=(_a61=this._univerInstanceService.getUniverSheetInstance(unitId))==null?void 0:_a61.getSheetBySheetId(subUnitId))==null?void 0:_b.getMergeData();mergeData&&mergeData.forEach(merge=>{core.Rectangle.intersects(merge,targetRange)&&deleteMergeRanges.push(merge)});const removeMergeMutationParams={unitId,subUnitId,ranges:deleteMergeRanges},undoRemoveMergeMutationParams=this._injector.invoke(sheets.RemoveMergeUndoMutationFactory,removeMergeMutationParams);deleteMergeRanges.length&&(redos.push({id:sheets.RemoveWorksheetMergeMutation.id,params:removeMergeMutationParams}),undos.unshift({id:sheets.AddWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams}))}const clearMutationParams={subUnitId,unitId,cellValue:generateNullCellValueRowCol([target])},undoClearMutationParams=this._injector.invoke(sheets.SetRangeValuesUndoMutationFactory,clearMutationParams);redos.push({id:sheets.SetRangeValuesMutation.id,params:clearMutationParams}),undos.unshift({id:sheets.SetRangeValuesMutation.id,params:undoClearMutationParams});const cellValue=new core.ObjectMatrix;targetRows.forEach((row,rowIndex)=>{targetCols.forEach((col,colIndex)=>{applyDatas[rowIndex][colIndex]&&cellValue.setValue(row,col,applyDatas[rowIndex][colIndex])})});const cellValueMatrix=cellValue.getMatrix(),setRangeValuesMutationParams={subUnitId,unitId,cellValue:cellValueMatrix},undoSetRangeValuesMutationParams=this._injector.invoke(sheets.SetRangeValuesUndoMutationFactory,setRangeValuesMutationParams);if(this._autoFillService.getActiveHooks().forEach(hook=>{var _a62;(_a62=hook.onBeforeSubmit)==null||_a62.call(hook,location,direction,applyType,cellValueMatrix)}),undos.unshift({id:sheets.SetRangeValuesMutation.id,params:undoSetRangeValuesMutationParams}),redos.push({id:sheets.SetRangeValuesMutation.id,params:setRangeValuesMutationParams}),applyMergeRanges!=null&&applyMergeRanges.length){const ranges=sheets.getAddMergeMutationRangeByType(applyMergeRanges),addMergeMutationParams={unitId,subUnitId,ranges},undoAddMergeMutationParams=this._injector.invoke(sheets.AddMergeUndoMutationFactory,addMergeMutationParams);undos.unshift({id:sheets.RemoveWorksheetMergeMutation.id,params:undoAddMergeMutationParams}),redos.push({id:sheets.AddWorksheetMergeMutation.id,params:addMergeMutationParams})}return{undos,redos}}_shouldDisableSeries(copyData){return copyData.every(copyDataPiece=>Object.keys(copyDataPiece).every(type=>{var _a61;return((_a61=copyDataPiece[type])==null?void 0:_a61.length)===0||[DATA_TYPE.OTHER,DATA_TYPE.FORMULA].includes(type)}))}_getPreferredApplyType(copyData){return copyData.every(copyDataPiece=>Object.keys(copyDataPiece).every(type=>{var _a61,_b;return((_a61=copyDataPiece[type])==null?void 0:_a61.length)===0||((_b=copyDataPiece[type])==null?void 0:_b.length)===1&&copyDataPiece[type][0].data.length===1&&DATA_TYPE.NUMBER===type}))?APPLY_TYPE.COPY:APPLY_TYPE.SERIES}},__name(_a7,"AutoFillController"),_a7);exports.AutoFillController=__decorateClass$P([__decorateParam$P(0,core.IUniverInstanceService),__decorateParam$P(1,core.ICommandService),__decorateParam$P(2,IAutoFillService),__decorateParam$P(3,IEditorBridgeService),__decorateParam$P(4,engineRender.IRenderManagerService),__decorateParam$P(5,core.Inject(core.Injector)),__decorateParam$P(6,core.Inject(exports.SheetsRenderService))],exports.AutoFillController);var __defProp$O=Object.defineProperty,__getOwnPropDesc$O=Object.getOwnPropertyDescriptor,__decorateClass$O=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$O(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$O(target,key,result),result},"__decorateClass$O"),__decorateParam$O=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$O"),_a8;exports.CellCustomRenderController=(_a8=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_renderManagerService,_permissionService){super();__publicField(this,"_enterActiveRender");this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._renderManagerService=_renderManagerService,this._permissionService=_permissionService,this._initEventBinding()}_initEventBinding(){const disposableCollection=new core.DisposableCollection,workbook=this._context.unit,handleSkeletonChange=__name(skeletonParam=>{if(disposableCollection.dispose(),!skeletonParam)return;const unitId=this._context.unitId,{skeleton}=skeletonParam,currentRender=this._renderManagerService.getRenderById(unitId);if(currentRender&&currentRender.mainComponent){const spreadsheet=currentRender.mainComponent,getActiveRender=__name(evt=>{const{offsetX,offsetY}=evt,scene=currentRender.scene,worksheet=workbook.getActiveSheet();if(!worksheet)return;const activeViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([offsetX,offsetY]));if(!activeViewport)return;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY},cellPos=skeleton.getCellIndexByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY),mergeCell=skeleton.worksheet.getMergedCell(cellPos.row,cellPos.column),cellIndex={actualRow:mergeCell?mergeCell.startRow:cellPos.row,actualCol:mergeCell?mergeCell.startColumn:cellPos.column,mergeCell,row:cellPos.row,col:cellPos.column};if(!cellIndex||!skeleton)return;const cellData=worksheet.getCell(cellIndex.actualRow,cellIndex.actualCol);if(!cellData)return;const renders=cellData.customRender;if(!(renders!=null&&renders.length))return;const row=cellIndex.actualRow,col=cellIndex.actualCol,sortedRenders=renders.sort(core.sortRules),subUnitId=worksheet.getSheetId(),info={data:cellData,style:skeleton.getsStyles().getStyleByCell(cellData),primaryWithCoord:skeleton.getCellWithCoordByIndex(cellIndex.actualRow,cellIndex.actualCol),unitId,subUnitId,row,col,workbook,worksheet},position={x:scrollXY.x+offsetX/scaleX,y:scrollXY.y+offsetY/scaleY},activeRender=sortedRenders.find(render2=>{var _a61;return(_a61=render2.isHit)==null?void 0:_a61.call(render2,position,info)});if(activeRender)return[activeRender,info]},"getActiveRender"),disposable=spreadsheet.onPointerDown$.subscribeEvent(evt=>{var _a61,_b,_c,_d;const activeRenderInfo=getActiveRender(evt);if(activeRenderInfo){const[activeRender,cellContext]=activeRenderInfo,{row,col,worksheet,unitId:unitId2,subUnitId}=cellContext;if(!((_a61=this._permissionService.composePermission([new sheets.WorkbookEditablePermission(unitId2).id,new sheets.WorksheetEditPermission(unitId2,subUnitId).id]))==null?void 0:_a61.every(permission2=>permission2.value)))return!1;const permission=(_c=(_b=worksheet.getCell(row,col))==null?void 0:_b.selectionProtection)==null?void 0:_c[0];if((permission==null?void 0:permission[sheets.UnitAction.Edit])===!1)return!1;(_d=activeRender.onPointerDown)==null||_d.call(activeRender,cellContext,evt)}}),moveDisposable=core.fromEventSubject(spreadsheet.onPointerMove$).pipe(rxjs.throttleTime(30)).subscribe(evt=>{var _a61,_b,_c,_d,_e,_f;const activeRenderInfo=getActiveRender(evt);if(activeRenderInfo){const[activeRender,cellContext]=activeRenderInfo;this._enterActiveRender?this._enterActiveRender.render!==activeRender&&((_b=(_a61=this._enterActiveRender.render).onPointerLeave)==null||_b.call(_a61,this._enterActiveRender.cellContext,evt),this._enterActiveRender={render:activeRender,cellContext},(_c=activeRender.onPointerEnter)==null||_c.call(activeRender,cellContext,evt)):(this._enterActiveRender={render:activeRender,cellContext},(_d=activeRender.onPointerEnter)==null||_d.call(activeRender,cellContext,evt))}else this._enterActiveRender&&((_f=(_e=this._enterActiveRender.render).onPointerLeave)==null||_f.call(_e,this._enterActiveRender.cellContext,evt),this._enterActiveRender=null)});disposable&&disposableCollection.add(disposable),moveDisposable&&disposableCollection.add(moveDisposable)}},"handleSkeletonChange");this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(handleSkeletonChange)),handleSkeletonChange(this._sheetSkeletonManagerService.getCurrent()),this.disposeWithMe(disposableCollection)}},__name(_a8,"CellCustomRenderController"),_a8);exports.CellCustomRenderController=__decorateClass$O([__decorateParam$O(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$O(2,engineRender.IRenderManagerService),__decorateParam$O(3,core.IPermissionService)],exports.CellCustomRenderController);const _SelectAllService=class _SelectAllService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"rangesStack",[]);__publicField(this,"selectedRangeWorksheet","")}};__name(_SelectAllService,"SelectAllService");let SelectAllService=_SelectAllService;var __defProp$N=Object.defineProperty,__getOwnPropDesc$N=Object.getOwnPropertyDescriptor,__decorateClass$N=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$N(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$N(target,key,result),result},"__decorateClass$N"),__decorateParam$N=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$N"),_a9;let ShortcutExperienceService=(_a9=class{constructor(_univerInstanceService,_localeService){__publicField(this,"_current",null);__publicField(this,"_shortcutParam",[]);this._univerInstanceService=_univerInstanceService,this._localeService=_localeService}dispose(){this._shortcutParam=[]}getCurrentBySearch(searchParm){return this._getCurrentBySearch(searchParm)}getCurrent(){return this._getCurrentBySearch(this._current)}addOrUpdate(insertParam){const param=this._getCurrentBySearch({unitId:insertParam.unitId,sheetId:insertParam.sheetId,keycode:insertParam.keycode});if(param!=null){const index=this._shortcutParam.indexOf(param);this._shortcutParam.splice(index,1)}return this._shortcutParam.push(insertParam),param}remove(searchParm){if(searchParm==null)return;const param=this._getCurrentBySearch(searchParm);if(param==null)return;const index=this._shortcutParam.indexOf(param);return this._shortcutParam.splice(index,1)[0]}_getCurrentBySearch(searchParm){return searchParm==null?void 0:this._shortcutParam.find(param=>param.unitId===searchParm.unitId&&param.sheetId===searchParm.sheetId&&param.keycode===searchParm.keycode)}},__name(_a9,"ShortcutExperienceService"),_a9);ShortcutExperienceService=__decorateClass$N([__decorateParam$N(0,core.IUniverInstanceService),__decorateParam$N(1,core.Inject(core.LocaleService))],ShortcutExperienceService);var MergeType=(MergeType2=>(MergeType2.MergeAll="mergeAll",MergeType2.MergeVertical="mergeVertical",MergeType2.MergeHorizontal="mergeHorizontal",MergeType2))(MergeType||{});function findNextRange(startRange,direction,worksheet,boundary,isFindNext=!0,nextStep=1,isGoBack=!0){let destRange={...startRange};boundary==null&&(boundary={startRow:0,endRow:worksheet.getRowCount()-1,startColumn:0,endColumn:worksheet.getColumnCount()-1});let next;switch(direction){case core.Direction.UP:for(next=startRange.startRow-nextStep;next>-1&&!worksheet.getRowVisible(next);)next-=1;next>=boundary.startRow?(destRange.startRow=next,destRange.endRow=next):isGoBack&&(destRange.startRow=boundary.endRow,destRange.endRow=boundary.endRow,isFindNext&&(destRange=findNextRange(destRange,core.Direction.LEFT,worksheet,boundary,!1)));break;case core.Direction.DOWN:for(next=startRange.endRow+nextStep;next<worksheet.getRowCount()&&!worksheet.getRowVisible(next);)next+=1;next<=boundary.endRow?(destRange.startRow=next,destRange.endRow=next):isGoBack&&(destRange.startRow=boundary.startRow,destRange.endRow=boundary.startRow,isFindNext&&(destRange=findNextRange(destRange,core.Direction.RIGHT,worksheet,boundary,!1)));break;case core.Direction.LEFT:for(next=startRange.startColumn-nextStep;next>-1&&!worksheet.getColVisible(next);)next-=1;next>=boundary.startColumn?(destRange.startColumn=next,destRange.endColumn=next):isGoBack&&(destRange.startColumn=boundary.endColumn,destRange.endColumn=boundary.endColumn,isFindNext&&(destRange=findNextRange(destRange,core.Direction.UP,worksheet,boundary,!1)));break;case core.Direction.RIGHT:for(next=startRange.endColumn+nextStep;next<worksheet.getColumnCount()&&!worksheet.getColVisible(next);)next+=1;next<=boundary.endColumn?(destRange.startColumn=next,destRange.endColumn=next):isGoBack&&(destRange.startColumn=boundary.startColumn,destRange.endColumn=boundary.startColumn,isFindNext&&(destRange=findNextRange(destRange,core.Direction.DOWN,worksheet,boundary,!1)));break}return destRange}__name(findNextRange,"findNextRange");function findNextGapRange(startRange,direction,worksheet){const destRange={...startRange},{startRow,startColumn,endRow,endColumn}=getEdgeOfRange(startRange,direction,worksheet);let currentPositionHasValue=rangeHasValue(worksheet,startRow,startColumn,endRow,endColumn).hasValue,firstMove=!0,shouldContinue=!0;for(;shouldContinue;){if(core.Direction.UP===direction){let next=destRange.startRow-1;for(;next>-1&&!worksheet.getRowVisible(next);)next-=1;if(next===-1){shouldContinue=!1;break}const{hasValue:nextRangeHasValue,matrix}=rangeHasValue(worksheet,next,destRange.startColumn,next,destRange.endColumn);if(currentPositionHasValue&&!nextRangeHasValue&&!firstMove){shouldContinue=!1;break}else{if(matrix.getLength()!==0){let min=next;matrix.forValue(row=>{min=Math.min(row,min)}),destRange.startRow=min}else destRange.startRow=next;if(destRange.endRow=destRange.startRow,!currentPositionHasValue&&nextRangeHasValue){shouldContinue=!1;break}currentPositionHasValue=nextRangeHasValue,firstMove=!1}}if(core.Direction.DOWN===direction){let next=destRange.endRow+1;for(;next<worksheet.getRowCount()&&!worksheet.getRowVisible(next);)next+=1;if(next===worksheet.getRowCount()){shouldContinue=!1;break}const{hasValue:nextRangeHasValue,matrix}=rangeHasValue(worksheet,next,destRange.startColumn,next,destRange.endColumn);if(currentPositionHasValue&&!nextRangeHasValue&&!firstMove){shouldContinue=!1;break}else{if(matrix.getLength()!==0){let max=next;matrix.forValue((row,_2,value)=>{max=Math.max(row+(value.rowSpan||1)-1,max)}),destRange.endRow=max}else destRange.endRow=next;if(destRange.startRow=destRange.endRow,!currentPositionHasValue&&nextRangeHasValue){shouldContinue=!1;break}currentPositionHasValue=nextRangeHasValue,firstMove=!1}}if(core.Direction.LEFT===direction){let next=destRange.startColumn-1;for(;next>-1&&!worksheet.getColVisible(next);)next-=1;if(next===-1){shouldContinue=!1;break}const{hasValue:nextRangeHasValue,matrix}=rangeHasValue(worksheet,destRange.startRow,next,destRange.endRow,next);if(currentPositionHasValue&&!nextRangeHasValue&&!firstMove){shouldContinue=!1;break}else{if(matrix.getLength()!==0){let min=next;matrix.forValue((_2,col)=>{min=Math.min(col,min)}),destRange.startColumn=min}else destRange.startColumn=next;if(destRange.endColumn=destRange.startColumn,!currentPositionHasValue&&nextRangeHasValue){shouldContinue=!1;break}currentPositionHasValue=nextRangeHasValue,firstMove=!1}}if(core.Direction.RIGHT===direction){let next=destRange.endColumn+1;for(;next<worksheet.getColumnCount()&&!worksheet.getColVisible(next);)next+=1;if(next===worksheet.getColumnCount()){shouldContinue=!1;break}const{hasValue:nextRangeHasValue,matrix}=rangeHasValue(worksheet,destRange.startRow,next,destRange.endRow,next);if(currentPositionHasValue&&!nextRangeHasValue&&!firstMove){shouldContinue=!1;break}else{if(matrix.getLength()!==0){let max=next;matrix.forValue((_2,col,value)=>{max=Math.max(col+(value.colSpan||1)-1,max)}),destRange.endColumn=max}else destRange.endColumn=next;if(destRange.startColumn=destRange.endColumn,!currentPositionHasValue&&nextRangeHasValue){shouldContinue=!1;break}currentPositionHasValue=nextRangeHasValue,firstMove=!1}}}return sheets.alignToMergedCellsBorders(destRange,worksheet,!0)}__name(findNextGapRange,"findNextGapRange");function findNextRangeExpand(startRange,direction,worksheet){return findNextRange(startRange,direction,worksheet,void 0,!1,1,!1)}__name(findNextRangeExpand,"findNextRangeExpand");function expandToNextGapRange(startRange,direction,worksheet){const next=findNextGapRange(startRange,direction,worksheet);return sheets.alignToMergedCellsBorders(core.Rectangle.union(next,startRange),worksheet,!0)}__name(expandToNextGapRange,"expandToNextGapRange");function expandToNextCell(startRange,direction,worksheet){const next=findNextRangeExpand(startRange,direction,worksheet),destRange={startRow:Math.min(startRange.startRow,next.startRow),startColumn:Math.min(startRange.startColumn,next.startColumn),endRow:Math.max(startRange.endRow,next.endRow),endColumn:Math.max(startRange.endColumn,next.endColumn)};return sheets.alignToMergedCellsBorders(core.Rectangle.union(startRange,destRange),worksheet)}__name(expandToNextCell,"expandToNextCell");function shrinkToNextGapRange(startRange,anchorRange,direction,worksheet){const reversedDirection=core.getReverseDirection(direction),nextGap=findNextGapRange(getEdgeOfRange(startRange,reversedDirection,worksheet),direction,worksheet);return direction===core.Direction.UP&&nextGap.startRow<=startRange.startRow?sheets.alignToMergedCellsBorders({...anchorRange,startColumn:startRange.startColumn,endColumn:startRange.endColumn},worksheet,!0):direction===core.Direction.DOWN&&nextGap.endRow>=startRange.endRow?sheets.alignToMergedCellsBorders({...anchorRange,startColumn:startRange.startColumn,endColumn:startRange.endColumn},worksheet,!0):direction===core.Direction.LEFT&&nextGap.startColumn<=startRange.startColumn?sheets.alignToMergedCellsBorders({...anchorRange,startRow:startRange.startRow,endRow:startRange.endRow},worksheet,!0):direction===core.Direction.RIGHT&&nextGap.endColumn>=startRange.endColumn?sheets.alignToMergedCellsBorders({...anchorRange,startRow:startRange.startRow,endRow:startRange.endRow},worksheet,!0):core.Rectangle.union(core.Rectangle.clone(anchorRange),nextGap)}__name(shrinkToNextGapRange,"shrinkToNextGapRange");function shrinkToNextCell(startRange,direction,worksheet){const reversedDirection=core.getReverseDirection(direction),shrinkFromEdge=getEdgeOfRange(startRange,reversedDirection,worksheet),otherEdge=getEdgeOfRange(startRange,direction,worksheet),next=findNextRangeExpand(shrinkFromEdge,direction,worksheet);return sheets.alignToMergedCellsBorders(core.Rectangle.union(otherEdge,next),worksheet,!1)}__name(shrinkToNextCell,"shrinkToNextCell");function expandToWholeSheet(worksheet){return{startRow:0,startColumn:0,endRow:worksheet.getRowCount()-1,endColumn:worksheet.getColumnCount()-1,rangeType:core.RANGE_TYPE.ALL}}__name(expandToWholeSheet,"expandToWholeSheet");function getEdgeOfRange(startRange,direction,worksheet){let destRange;switch(direction){case core.Direction.UP:destRange={startRow:startRange.startRow,startColumn:startRange.startColumn,endRow:startRange.startRow,endColumn:startRange.endColumn,rangeType:core.RANGE_TYPE.NORMAL};break;case core.Direction.DOWN:destRange={startRow:startRange.endRow,startColumn:startRange.startColumn,endRow:startRange.endRow,endColumn:startRange.endColumn,rangeType:core.RANGE_TYPE.NORMAL};break;case core.Direction.LEFT:destRange={startRow:startRange.startRow,startColumn:startRange.startColumn,endRow:startRange.endRow,endColumn:startRange.startColumn,rangeType:core.RANGE_TYPE.NORMAL};break;case core.Direction.RIGHT:destRange={startRow:startRange.startRow,startColumn:startRange.endColumn,endRow:startRange.endRow,endColumn:startRange.endColumn,rangeType:core.RANGE_TYPE.NORMAL};break;default:throw new Error("Invalid direction")}return sheets.alignToMergedCellsBorders(destRange,worksheet,!1)}__name(getEdgeOfRange,"getEdgeOfRange");function rangeHasValue(worksheet,row,col,rowEnd,colEnd){let hasValue=!1;const matrix=worksheet.getMatrixWithMergedCells(row,col,rowEnd,colEnd).forValue((_2,__,value)=>{if(cellHasValue(value))return hasValue=!0,!1});return{hasValue,matrix}}__name(rangeHasValue,"rangeHasValue");function getStartRange(range,primary,direction){const ret=core.Rectangle.clone(range);if(primary==null)return ret;switch(direction){case core.Direction.UP:case core.Direction.DOWN:ret.startColumn=ret.endColumn=primary.actualColumn;break;case core.Direction.LEFT:case core.Direction.RIGHT:ret.startRow=ret.endRow=primary.actualRow;break}return ret}__name(getStartRange,"getStartRange");function checkIfShrink(selection,direction,worksheet){var _a61,_b,_c,_d;const{primary,range}=selection,startRange=core.Rectangle.clone(range);switch(direction){case core.Direction.UP:case core.Direction.DOWN:startRange.startRow=(_a61=primary==null?void 0:primary.startRow)!=null?_a61:range.startRow,startRange.endRow=(_b=primary==null?void 0:primary.endRow)!=null?_b:range.startRow;break;case core.Direction.LEFT:case core.Direction.RIGHT:startRange.startColumn=(_c=primary==null?void 0:primary.startColumn)!=null?_c:range.startColumn,startRange.endColumn=(_d=primary==null?void 0:primary.endColumn)!=null?_d:range.startColumn;break}const anchorRange=getEdgeOfRange(startRange,direction,worksheet);switch(direction){case core.Direction.DOWN:return range.startRow<anchorRange.startRow;case core.Direction.UP:return range.endRow>anchorRange.endRow;case core.Direction.LEFT:return anchorRange.endColumn<range.endColumn;case core.Direction.RIGHT:return anchorRange.startColumn>range.startColumn}}__name(checkIfShrink,"checkIfShrink");function isAllRowsCovered(allRowRanges,ranges){let start=allRowRanges[0].startRow,end=allRowRanges[0].endRow;allRowRanges.forEach(range=>{const{startRow,endRow}=range;start=Math.min(start,startRow),end=Math.max(end,endRow)});const covered=new Array(end-start+1).fill(!1);return ranges.forEach(range=>{const{startRow,endRow}=range;for(let i=Math.max(startRow,start);i<=Math.min(endRow,end);i++)covered[i-start]=!0}),allRowRanges.every(range=>{const{startRow,endRow}=range;for(let i=startRow;i<=endRow;i++)if(!covered[i-start])return!1;return!0})}__name(isAllRowsCovered,"isAllRowsCovered");function isAllColumnsCovered(allColumnRanges,ranges){let start=allColumnRanges[0].startColumn,end=allColumnRanges[0].endColumn;allColumnRanges.forEach(range=>{const{startColumn,endColumn}=range;start=Math.min(start,startColumn),end=Math.max(end,endColumn)});const covered=new Array(end-start+1).fill(!1);return ranges.forEach(range=>{const{startColumn,endColumn}=range;for(let i=Math.max(startColumn,start);i<=Math.min(endColumn,end);i++)covered[i-start]=!0}),allColumnRanges.every(range=>{const{startColumn,endColumn}=range;for(let i=startColumn;i<=endColumn;i++)if(!covered[i-start])return!1;return!0})}__name(isAllColumnsCovered,"isAllColumnsCovered");function getMergeableSelectionsByType(type,selections){return selections?type==="mergeAll"?selections.filter(selection=>!(selection.startRow===selection.endRow&&selection.startColumn===selection.endColumn)):type==="mergeVertical"?selections.filter(selection=>selection.startRow!==selection.endRow):type==="mergeHorizontal"?selections.filter(selection=>selection.startColumn!==selection.endColumn):selections:null}__name(getMergeableSelectionsByType,"getMergeableSelectionsByType");function cellHasValue(cell){return cell.v!==void 0&&cell.v!==null&&cell.v!==""||cell.p!==void 0}__name(cellHasValue,"cellHasValue");var JumpOver=(JumpOver2=>(JumpOver2[JumpOver2.moveStopeOne=0]="moveStopeOne",JumpOver2[JumpOver2.moveGap=1]="moveGap",JumpOver2[JumpOver2.moveStepPage=2]="moveStepPage",JumpOver2[JumpOver2.moveStepEnd=3]="moveStepEnd",JumpOver2))(JumpOver||{});const MoveSelectionCommand={id:"sheet.command.move-selection",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{if(!params)return!1;const target=sheets.getSheetCommandTarget(accessor.get(core.IUniverInstanceService));if(!target)return!1;const{workbook,worksheet}=target,selection=sheets.getSelectionsService(accessor,params.fromCurrentSelection).getCurrentLastSelection();if(!selection)return!1;const{direction,jumpOver,extra}=params,{range,primary}=selection,startRange=getStartRange(range,primary,direction),next=jumpOver===1?findNextGapRange(startRange,direction,worksheet):findNextRange(startRange,direction,worksheet),destRange=sheets.getCellAtRowCol(next.startRow,next.startColumn,worksheet);if(core.Rectangle.equals(destRange,startRange))return!1;const unitId=workbook.getUnitId();accessor.get(ShortcutExperienceService).remove({unitId,sheetId:worksheet.getSheetId(),keycode:ui.KeyCode.TAB});const selections=[{range:core.Rectangle.clone(destRange),primary:{startRow:destRange.startRow,startColumn:destRange.startColumn,endRow:destRange.endRow,endColumn:destRange.endColumn,actualRow:next.startRow,actualColumn:next.startColumn,isMerged:destRange.isMerged,isMergedMainCell:destRange.startRow===next.startRow&&destRange.startColumn===next.startColumn}}];return accessor.get(core.ICommandService).executeCommand(sheets.SetSelectionsOperation.id,{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),selections,type:sheets.SelectionMoveType.MOVE_END,extra})},"handler")},MoveSelectionEnterAndTabCommand={id:"sheet.command.move-selection-enter-tab",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{var _a61;if(!params)return!1;const target=sheets.getSheetCommandTarget(accessor.get(core.IUniverInstanceService));if(!target)return!1;const{workbook,worksheet}=target,selectionsService=sheets.getSelectionsService(accessor),{direction,keycode}=params,isReverse=direction===core.Direction.LEFT||direction===core.Direction.UP,selections=selectionsService.getCurrentSelections().concat(),currentSelectionIndex=selections.findIndex(s=>s.primary),selection=selections[currentSelectionIndex];if(!selection)return!1;const delta=isReverse?-1:1,nextSelection=currentSelectionIndex+delta!==selections.length?selections[currentSelectionIndex+delta]:selections[0],nextSelectionIndex=selections.findIndex(s=>s===nextSelection),unitId=workbook.getUnitId(),sheetId=worksheet.getSheetId();if(!selection)return!1;const{range}=selection,primary=selection.primary;let startRange=getStartRange(range,primary,direction);const shortcutExperienceService=accessor.get(ShortcutExperienceService),shortcutExperienceParam=shortcutExperienceService.getCurrentBySearch({unitId,sheetId,keycode:ui.KeyCode.TAB});let resultRange;const{startRow,endRow,startColumn,endColumn}=range,isLastCell=isReverse?primary.startRow===startRow&&primary.startColumn===startColumn:primary.endRow===endRow&&primary.endColumn===endColumn;if(core.Rectangle.equals(range,primary)){if(keycode===ui.KeyCode.TAB)shortcutExperienceParam==null&&shortcutExperienceService.addOrUpdate({unitId,sheetId,keycode:ui.KeyCode.TAB,selection});else{const selectionRemain=shortcutExperienceParam==null?void 0:shortcutExperienceParam.selection;if(selectionRemain!=null){const{range:range2,primary:primary2}=selectionRemain;startRange=getStartRange(range2,primary2,direction)}shortcutExperienceService.remove({unitId,sheetId,keycode:ui.KeyCode.TAB})}const next=findNextRange(startRange,direction,worksheet),destRange=sheets.getCellAtRowCol(next.startRow,next.startColumn,worksheet);if(core.Rectangle.equals(destRange,startRange))return!1;resultRange={range:core.Rectangle.clone(destRange),primary:{startRow:destRange.startRow,startColumn:destRange.startColumn,endRow:destRange.endRow,endColumn:destRange.endColumn,actualRow:next.startRow,actualColumn:next.startColumn,isMerged:destRange.isMerged,isMergedMainCell:destRange.startRow===next.startRow&&destRange.startColumn===next.startColumn}}}else{shortcutExperienceService.remove({unitId,sheetId,keycode:ui.KeyCode.TAB});const newPrimary=core.Tools.deepClone(primary),next=isLastCell?nextSelection.range:findNextRange({startRow:newPrimary.startRow,startColumn:newPrimary.startColumn,endRow:newPrimary.endRow,endColumn:newPrimary.endColumn},direction,worksheet,{startRow,endRow,startColumn,endColumn}),useLeftTopAsDest=isLastCell&&isReverse,destRange=useLeftTopAsDest?sheets.getCellAtRowCol(next.endRow,next.endColumn,worksheet):sheets.getCellAtRowCol(next.startRow,next.startColumn,worksheet);resultRange={range:isLastCell?nextSelection.range:core.Rectangle.clone(range),primary:{startRow:destRange.startRow,startColumn:destRange.startColumn,endRow:destRange.endRow,endColumn:destRange.endColumn,actualRow:useLeftTopAsDest?destRange.startRow:next.startRow,actualColumn:useLeftTopAsDest?destRange.startColumn:next.startColumn,isMerged:destRange.isMerged,isMergedMainCell:destRange.startRow===next.startRow&&destRange.startColumn===next.startColumn},style:isLastCell?nextSelection.style:selection.style}}isLastCell?(selections[currentSelectionIndex].primary=null,selections[nextSelectionIndex]=resultRange,selectionsService.setSelections(unitId,sheetId,[],sheets.SelectionMoveType.MOVE_END)):selections[currentSelectionIndex]=resultRange;const rs=accessor.get(core.ICommandService).executeCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId:sheetId,type:sheets.SelectionMoveType.MOVE_END,selections,extra:params.extra}),selectionService=(_a61=accessor.get(engineRender.IRenderManagerService).getRenderById(unitId))==null?void 0:_a61.with(ISheetSelectionRenderService);return selectionService==null||selectionService.refreshSelectionMoveEnd(),rs},"handler")},ExpandSelectionCommand={id:"sheet.command.expand-selection",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{if(!params)return!1;const target=sheets.getSheetCommandTarget(accessor.get(core.IUniverInstanceService));if(!target)return!1;const{worksheet,unitId,subUnitId}=target,selection=sheets.getSelectionsService(accessor).getCurrentLastSelection();if(!selection)return!1;const{range:startRange,primary}=selection,{jumpOver,direction,extra}=params,destRange=checkIfShrink(selection,direction,worksheet)?jumpOver===1?shrinkToNextGapRange(startRange,{...core.Rectangle.clone(primary),rangeType:core.RANGE_TYPE.NORMAL},direction,worksheet):shrinkToNextCell(startRange,direction,worksheet):jumpOver===1?expandToNextGapRange(startRange,direction,worksheet):expandToNextCell(startRange,direction,worksheet);return destRange.rangeType=selection.range.rangeType,core.Rectangle.equals(destRange,startRange)?!1:accessor.get(core.ICommandService).syncExecuteCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId,type:sheets.SelectionMoveType.ONLY_SET,selections:[{range:destRange,primary}],extra})},"handler")},SelectAllCommand={id:"sheet.command.select-all",type:core.CommandType.COMMAND,handler:__name(async(accessor,params={expandToGapFirst:!0,loop:!1})=>{const target=sheets.getSheetCommandTarget(accessor.get(core.IUniverInstanceService));if(!target)return!1;const selection=sheets.getSelectionsService(accessor).getCurrentLastSelection();if(!selection)return!1;const selectAllService=accessor.get(SelectAllService),{worksheet,unitId,subUnitId}=target,id=`${unitId}|${subUnitId}`;id!==selectAllService.selectedRangeWorksheet&&(selectAllService.rangesStack=[],selectAllService.selectedRangeWorksheet=id);const maxRow=worksheet.getMaxRows(),maxCol=worksheet.getMaxColumns(),{expandToGapFirst,loop}=params,{range,primary}=selection,isWholeSheetSelected=range.endColumn===maxCol-1&&range.endRow===maxRow-1&&range.startRow===0&&range.startColumn===0;selectAllService.rangesStack.some(s=>core.Rectangle.equals(s,range))||(selectAllService.rangesStack=[],selectAllService.rangesStack.push(range));let destRange;if(isWholeSheetSelected)if(loop){if(selectAllService.rangesStack.findIndex(s=>core.Rectangle.equals(s,range))!==selectAllService.rangesStack.length-1)return!1;destRange=selectAllService.rangesStack[0]}else return!1;else expandToGapFirst?(destRange=sheets.expandToContinuousRange(range,{left:!0,right:!0,up:!0,down:!0},worksheet),core.Rectangle.equals(destRange,range)&&(destRange=expandToWholeSheet(worksheet))):destRange=expandToWholeSheet(worksheet);return selectAllService.rangesStack.some(s=>core.Rectangle.equals(s,destRange))||selectAllService.rangesStack.push(destRange),accessor.get(core.ICommandService).executeCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId,selections:[{range:destRange,primary}]})},"handler")};var __defProp$M=Object.defineProperty,__getOwnPropDesc$M=Object.getOwnPropertyDescriptor,__decorateClass$M=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$M(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$M(target,key,result),result},"__decorateClass$M"),__decorateParam$M=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$M"),_a10;exports.SheetScrollManagerService=(_a10=class{constructor(_context,_sheetSkeletonManagerService){__publicField(this,"_scrollStateMap",new Map);__publicField(this,"_rawScrollInfo$",new rxjs.BehaviorSubject(null));__publicField(this,"rawScrollInfo$",this._rawScrollInfo$.asObservable());__publicField(this,"validViewportScrollInfo$",new rxjs.BehaviorSubject(null));__publicField(this,"_searchParamForScroll",null);this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService}dispose(){this._rawScrollInfo$.complete()}setSearchParam(param){this._searchParamForScroll=param}setSearchParamAndRefresh(param){this._searchParamForScroll=param,this._scrollStateNext(param)}getScrollStateByParam(param){return this._getCurrentScroll(param)}getCurrentScrollState(){return this._getCurrentScroll(this._searchParamForScroll)}setScrollInfoAndEmitEvent(param){this._setScrollState(param),this._scrollStateNext(param)}setScrollStateToCurrSheet(scroll){this._searchParamForScroll!=null&&this._setScrollState({...this._searchParamForScroll,...scroll})}clear(){this._searchParamForScroll!=null&&this._clearByParamAndNotify(this._searchParamForScroll)}calcViewportScrollFromRowColOffset(scrollInfo){if(!scrollInfo)return{viewportScrollX:0,viewportScrollY:0};let{sheetViewStartColumn,sheetViewStartRow,offsetX,offsetY}=scrollInfo;sheetViewStartRow=sheetViewStartRow||0,offsetY=offsetY||0;const skeleton=this._sheetSkeletonManagerService.getCurrentSkeleton(),rowAcc=(skeleton==null?void 0:skeleton.rowHeightAccumulation[sheetViewStartRow-1])||0,viewportScrollX=((skeleton==null?void 0:skeleton.columnWidthAccumulation[sheetViewStartColumn-1])||0)+offsetX,viewportScrollY=rowAcc+offsetY;return{viewportScrollX,viewportScrollY}}_setScrollState(scrollInfo){const{unitId,sheetId,sheetViewStartColumn,sheetViewStartRow,offsetX,offsetY}=scrollInfo;this._scrollStateMap.has(unitId)||this._scrollStateMap.set(unitId,new Map);const worksheetScrollInfoMap=this._scrollStateMap.get(unitId),newScrollInfo={sheetViewStartRow,sheetViewStartColumn,offsetX,offsetY};worksheetScrollInfoMap.set(sheetId,newScrollInfo)}_clearByParamAndNotify(param){this._setScrollState({...param,sheetViewStartRow:0,sheetViewStartColumn:0,offsetX:0,offsetY:0}),this._scrollStateNext(param)}_getCurrentScroll(param){var _a61;const emptyState={sheetViewStartRow:0,sheetViewStartColumn:0,offsetX:0,offsetY:0};if(param==null)return emptyState;const{unitId,sheetId}=param;return((_a61=this._scrollStateMap.get(unitId))==null?void 0:_a61.get(sheetId))||emptyState}_scrollStateNext(param){const scrollInfo=this._getCurrentScroll(param);this._rawScrollInfo$.next(scrollInfo)}},__name(_a10,"SheetScrollManagerService"),_a10);exports.SheetScrollManagerService=__decorateClass$M([__decorateParam$M(1,core.Inject(exports.SheetSkeletonManagerService))],exports.SheetScrollManagerService);const SetScrollOperation={id:"sheet.operation.set-scroll",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>{if(!params)return!1;const{unitId,sheetId,offsetX,offsetY,sheetViewStartColumn,sheetViewStartRow}=params;return accessor.get(engineRender.IRenderManagerService).getRenderById(unitId).with(exports.SheetScrollManagerService).setScrollInfoAndEmitEvent({unitId,sheetId,offsetX,offsetY,sheetViewStartRow,sheetViewStartColumn}),!0},"handler")},SetScrollRelativeCommand={id:"sheet.command.set-scroll-relative",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),renderManagerSrv=accessor.get(engineRender.IRenderManagerService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{unitId,subUnitId}=target,currentScroll=renderManagerSrv.getRenderById(unitId).with(exports.SheetScrollManagerService).getCurrentScrollState(),{offsetX=0,offsetY=0}=params||{},{sheetViewStartRow=0,sheetViewStartColumn=0,offsetX:currentOffsetX=0,offsetY:currentOffsetY=0}=currentScroll||{};return commandService.executeCommand(SetScrollOperation.id,{unitId,sheetId:subUnitId,sheetViewStartRow,sheetViewStartColumn,offsetX:currentOffsetX+offsetX,offsetY:currentOffsetY+offsetY})},"handler")},ScrollCommand={id:"sheet.command.scroll-view",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{if(!params)return!1;const univerInstanceService=accessor.get(core.IUniverInstanceService),renderManagerSrv=accessor.get(engineRender.IRenderManagerService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{workbook,worksheet,unitId}=target,currentScroll=renderManagerSrv.getRenderById(unitId).with(exports.SheetScrollManagerService).getCurrentScrollState();if(!worksheet)return!1;const{sheetViewStartRow,sheetViewStartColumn,offsetX,offsetY}=params,{sheetViewStartColumn:currentColumn,sheetViewStartRow:currentRow,offsetX:currentOffsetX,offsetY:currentOffsetY}=currentScroll||{},{xSplit,ySplit}=target.worksheet.getConfig().freeze;return accessor.get(core.ICommandService).syncExecuteCommand(SetScrollOperation.id,{unitId:workbook.getUnitId(),sheetId:worksheet.getSheetId(),sheetViewStartRow:sheetViewStartRow!=null?sheetViewStartRow:currentRow!=null?currentRow:0+ySplit,sheetViewStartColumn:sheetViewStartColumn!=null?sheetViewStartColumn:currentColumn!=null?currentColumn:0+xSplit,offsetX:offsetX!=null?offsetX:currentOffsetX,offsetY:offsetY!=null?offsetY:currentOffsetY})},"handler")},ScrollToCellCommand={id:"sheet.command.scroll-to-cell",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{const instanceService=accessor.get(core.IUniverInstanceService);return accessor.get(engineRender.IRenderManagerService).getRenderById(instanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports.SheetsScrollRenderController).scrollToRange(params.range,params.forceTop,params.forceLeft)},"handler")},ResetScrollCommand={id:"sheet.command.scroll-view-reset",type:core.CommandType.COMMAND,handler:__name(async accessor=>{const univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{subUnitId,unitId}=target;return accessor.get(core.ICommandService).executeCommand(SetScrollOperation.id,{unitId,sheetId:subUnitId,sheetViewStartRow:0,sheetViewStartColumn:0})},"handler")};var __defProp$L=Object.defineProperty,__getOwnPropDesc$L=Object.getOwnPropertyDescriptor,__decorateClass$L=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$L(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$L(target,key,result),result},"__decorateClass$L"),__decorateParam$L=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$L");const SHEET_NAVIGATION_COMMANDS$1=[MoveSelectionCommand.id,MoveSelectionEnterAndTabCommand.id],MOUSE_WHEEL_SPEED_SMOOTHING_FACTOR=3;var _a11;exports.SheetsScrollRenderController=(_a11=class extends core.Disposable{constructor(_context,_injector,_sheetSkeletonManagerService,_contextService,_commandService,_renderManagerService,_scrollManagerService){super(),this._context=_context,this._injector=_injector,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._contextService=_contextService,this._commandService=_commandService,this._renderManagerService=_renderManagerService,this._scrollManagerService=_scrollManagerService,this._initCommandListener(),this._wheelEventListener(),this._scrollBarEventListener(),this._initSkeletonListener()}_wheelEventListener(){const{scene}=this._context;if(!scene)return;const viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);viewMain&&this.disposeWithMe(scene.onMouseWheel$.subscribeEvent((evt,state)=>{if(evt.ctrlKey||!this._contextService.getContextValue(core.FOCUSING_SHEET))return;let offsetX=0,offsetY=0;const isLimitedStore=viewMain.limitedScroll();offsetX=evt.deltaX,evt.shiftKey?offsetX=(evt.deltaY||evt.deltaX)*MOUSE_WHEEL_SPEED_SMOOTHING_FACTOR:offsetY=evt.deltaY,this._commandService.executeCommand(SetScrollRelativeCommand.id,{offsetX,offsetY}),this._context.scene.makeDirty(!0),isLimitedStore&&!isLimitedStore.isLimitedX&&!isLimitedStore.isLimitedY&&(evt.preventDefault(),scene.getParent().classType===engineRender.RENDER_CLASS_TYPE.SCENE_VIEWER&&state.stopPropagation()),viewMain.isWheelPreventDefaultX&&viewMain.isWheelPreventDefaultY&&evt.preventDefault()}))}_scrollBarEventListener(){const{scene}=this._context;if(scene==null)return;const viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);viewportMain&&(this.disposeWithMe(core.toDisposable(this._scrollManagerService.rawScrollInfo$.subscribe(rawScrollInfo=>{var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(!skeleton)return;if(rawScrollInfo==null){viewportMain.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0});return}const{sheetViewStartRow,sheetViewStartColumn,offsetX,offsetY}=rawScrollInfo,{startX,startY}=skeleton.getCellWithCoordByIndex(sheetViewStartRow,sheetViewStartColumn,!1),viewportScrollX=startX+offsetX,viewportScrollY=startY+offsetY;viewportMain.scrollToViewportPos({viewportScrollX,viewportScrollY})}))),this.disposeWithMe(viewportMain.onScrollAfter$.subscribeEvent(scrollAfterParam=>{var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null||scrollAfterParam.isTrigger===!1)return;const sheetObject=this._getSheetObject();if(skeleton==null||sheetObject==null)return;const{viewportScrollX,viewportScrollY,scrollX,scrollY}=scrollAfterParam,{row,column,rowOffset,columnOffset}=skeleton.getDecomposedOffset(viewportScrollX,viewportScrollY),scrollInfo={sheetViewStartRow:row,sheetViewStartColumn:column,offsetX:columnOffset,offsetY:rowOffset};this._scrollManagerService.setScrollStateToCurrSheet(scrollInfo),this._scrollManagerService.validViewportScrollInfo$.next({...scrollInfo,viewportScrollX,viewportScrollY,scrollX,scrollY})})),this.disposeWithMe(viewportMain.onScrollByBar$.subscribeEvent(param=>{var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null||param.isTrigger===!1)return;const sheetObject=this._getSheetObject();if(skeleton==null||sheetObject==null)return;const{viewportScrollX=0,viewportScrollY=0}=param,{row,column,rowOffset,columnOffset}=skeleton.getDecomposedOffset(viewportScrollX,viewportScrollY);this._commandService.executeCommand(ScrollCommand.id,{sheetViewStartRow:row,sheetViewStartColumn:column,offsetX:columnOffset,offsetY:rowOffset})})))}_initSkeletonListener(){this.disposeWithMe(core.toDisposable(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(param=>{if(param==null)return;const scrollParam={unitId:param.unitId,sheetId:param.sheetId};this._scrollManagerService.setSearchParam(scrollParam);const sheetObject=this._getSheetObject();if(!sheetObject)return;const viewportMain=sheetObject.scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),currScrollInfo=this._scrollManagerService.getScrollStateByParam(scrollParam),{viewportScrollX,viewportScrollY}=this._scrollManagerService.calcViewportScrollFromRowColOffset(currScrollInfo);viewportMain&&(currScrollInfo?(viewportMain.viewportScrollX=viewportScrollX,viewportMain.viewportScrollY=viewportScrollY):(viewportMain.viewportScrollX=0,viewportMain.viewportScrollY=0),this._updateSceneSize(param))})))}scrollToRange(range,forceTop,forceLeft){let{endRow,endColumn,startColumn,startRow}=range;const bounding=this._getViewportBounding();if(range.rangeType===core.RANGE_TYPE.ROW?(startColumn=0,endColumn=0):range.rangeType===core.RANGE_TYPE.COLUMN&&(startRow=0,endRow=0),bounding&&!forceTop&&!forceLeft){const row=bounding.startRow>endRow?startRow:endRow,col=bounding.startColumn>endColumn?startColumn:endColumn;return this._scrollToCell(row,col)}else return this._scrollToCell(startRow,startColumn,forceTop,forceLeft)}scrollToCell(row,column){const worksheet=this._context.unit.getActiveSheet(),{ySplit:freezeYSplit,xSplit:freezeXSplit}=worksheet.getFreeze();return this._commandService.syncExecuteCommand(ScrollCommand.id,{sheetViewStartRow:row-freezeYSplit,sheetViewStartColumn:column-freezeXSplit,offsetX:0,offsetY:0})}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(SHEET_NAVIGATION_COMMANDS$1.includes(command.id))this._scrollToSelection();else if(command.id===sheets.ScrollToCellOperation.id){const param=command.params;this.scrollToRange(param)}else if(command.id===ExpandSelectionCommand.id){const param=command.params;this._scrollToSelectionForExpand(param)}else command.id===sheets.SetSelectionsOperation.id&&command.params.reveal&&this._scrollToSelection()}))}_scrollToSelectionForExpand(param){setTimeout(()=>{const selection=this._getSelectionsService().getCurrentLastSelection();if(selection==null)return;const{startRow,startColumn,endRow,endColumn}=selection.range,bounds=this._getViewportBounding();if(bounds==null)return;const{startRow:viewportStartRow,startColumn:viewportStartColumn,endRow:viewportEndRow,endColumn:viewportEndColumn}=bounds;let row=0,column=0;startRow>viewportStartRow?row=endRow:endRow<viewportEndRow?row=startRow:row=viewportStartRow,startColumn>viewportStartColumn?column=endColumn:endColumn<viewportEndColumn?column=startColumn:column=viewportStartColumn,param.direction===core.Direction.DOWN?row=endRow:param.direction===core.Direction.UP?row=startRow:param.direction===core.Direction.RIGHT?column=endColumn:param.direction===core.Direction.LEFT&&(column=startColumn),this._scrollToCell(row,column)},0)}_getFreeze(){var _a61;const snapshot=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton.getWorksheetConfig();if(snapshot!=null)return snapshot.freeze}_updateSceneSize(param){var _a61;if(param==null)return;const{unitId}=this._context,{skeleton}=param,scene=(_a61=this._renderManagerService.getRenderById(unitId))==null?void 0:_a61.scene;if(skeleton==null||scene==null)return;const{rowTotalHeight,columnTotalWidth,rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton,worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const zoomRatio=worksheet.getZoomRatio()||1;scene==null||scene.setScaleValue(zoomRatio,zoomRatio),scene==null||scene.transformByState({width:rowHeaderWidthAndMarginLeft+columnTotalWidth,height:columnHeaderHeightAndMarginTop+rowTotalHeight})}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_scrollToSelectionByDirection(range){const bounds=this._getViewportBounding();if(bounds==null)return!1;const{startRow:viewportStartRow,startColumn:viewportStartColumn,endRow:viewportEndRow,endColumn:viewportEndColumn}=bounds;let row=0,column=0;const{startRow,startColumn,endRow,endColumn}=range;startRow>=viewportStartRow&&(row=endRow),endRow<=viewportEndRow&&(row=startRow),startColumn>=viewportStartColumn&&(column=endColumn),endColumn<=viewportEndColumn&&(column=startColumn),this._scrollToCell(row,column)}_scrollToSelection(targetIsActualRowAndColumn=!0){var _a61;const selection=this._getSelectionsService().getCurrentLastSelection();if(!selection)return;const{startRow,startColumn,actualRow,actualColumn}=(_a61=selection.primary)!=null?_a61:selection.range,selectionStartRow=targetIsActualRowAndColumn&&actualRow!=null?actualRow:startRow,selectionStartColumn=targetIsActualRowAndColumn&&actualColumn!=null?actualColumn:startColumn;this._scrollToCell(selectionStartRow,selectionStartColumn)}_getSelectionsService(){return sheets.getSelectionsService(this._injector)}_getViewportBounding(){var _a61,_b;const scene=(_a61=this._getSheetObject())==null?void 0:_a61.scene;if(scene==null)return;const viewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(viewport==null)return;const skeleton=(_b=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_b.skeleton;if(skeleton==null)return;const vpInfo=viewport.calcViewportInfo();return skeleton.getRangeByViewBound(vpInfo.viewBound)}_scrollToCell(row,column,forceTop=!1,forceLeft=!1){var _a61,_b,_c,_d;const{rowHeightAccumulation,columnWidthAccumulation}=(_b=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton)!=null?_b:{};if(rowHeightAccumulation==null||columnWidthAccumulation==null)return!1;const scene=(_c=this._getSheetObject())==null?void 0:_c.scene;if(scene==null)return!1;const viewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(viewport==null)return!1;const skeleton=(_d=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_d.skeleton;if(skeleton==null)return!1;const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return!1;row=core.Tools.clamp(row,0,rowHeightAccumulation.length-1),column=core.Tools.clamp(column,0,columnWidthAccumulation.length-1);const{startColumn:scrollableStartCol,startRow:scrollableStartRow,ySplit:freezedRowCount,xSplit:freezedColCount}=worksheet.getFreeze(),bounds=this._getViewportBounding();if(bounds==null)return!1;const{startRow:viewMainStartRow,startColumn:viewMainStartColumn,endRow:viewMainEndRow,endColumn:viewMainEndColumn}=bounds;skeleton.getVisibleRangeByViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);let startSheetViewRow,startSheetViewColumn;if(row>=scrollableStartRow&&column>=scrollableStartCol-freezedRowCount&&(row<=viewMainStartRow&&(startSheetViewRow=row,forceTop=!0),row>=viewMainEndRow)){const minRowAccumulation=rowHeightAccumulation[row]-viewport.height;for(let r2=viewMainStartRow;r2<=row&&(startSheetViewRow=r2+1,!(rowHeightAccumulation[r2]>=minRowAccumulation));r2++);}if(column>=scrollableStartCol&&row>=scrollableStartRow-freezedRowCount&&(column<=viewMainStartColumn&&(startSheetViewColumn=column,forceLeft=!0),column>=viewMainEndColumn)){const minColumnAccumulation=columnWidthAccumulation[column]-viewport.width;for(let c=viewMainStartColumn;c<=column&&(startSheetViewColumn=c+1,!(columnWidthAccumulation[c]>=minColumnAccumulation));c++);}if(startSheetViewRow===void 0&&startSheetViewColumn===void 0)return!1;let{offsetX,offsetY,sheetViewStartRow:preSheetViewStartRow,sheetViewStartColumn:preSheetViewStartColumn}=this._scrollManagerService.getCurrentScrollState()||{};if(startSheetViewRow=startSheetViewRow?Math.min(startSheetViewRow,row):preSheetViewStartRow+freezedRowCount,startSheetViewColumn=startSheetViewColumn?Math.min(startSheetViewColumn,column):preSheetViewStartColumn+freezedColCount,forceLeft){offsetX=0,startSheetViewColumn=column;const hiddenColumns=skeleton.getHiddenColumnsInRange({startColumn:startSheetViewColumn-freezedColCount,endColumn:startSheetViewColumn});startSheetViewColumn=startSheetViewColumn-hiddenColumns.length}if(forceTop){offsetY=0,startSheetViewRow=row;const hiddenRows=skeleton.getHiddenRowsInRange({startRow:startSheetViewRow-freezedRowCount,endRow:startSheetViewRow});startSheetViewRow=startSheetViewRow-hiddenRows.length}return this._commandService.syncExecuteCommand(ScrollCommand.id,{sheetViewStartRow:Math.max(0,startSheetViewRow-freezedRowCount),sheetViewStartColumn:Math.max(0,startSheetViewColumn-freezedColCount),offsetX,offsetY})}},__name(_a11,"SheetsScrollRenderController"),_a11);exports.SheetsScrollRenderController=__decorateClass$L([__decorateParam$L(1,core.Inject(core.Injector)),__decorateParam$L(2,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$L(3,core.IContextService),__decorateParam$L(4,core.ICommandService),__decorateParam$L(5,engineRender.IRenderManagerService),__decorateParam$L(6,core.Inject(exports.SheetScrollManagerService))],exports.SheetsScrollRenderController);const ScrollToRangeOperation={id:"sheet.operation.scroll-to-range",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>{if(!params)return!1;const instanceService=accessor.get(core.IUniverInstanceService);return accessor.get(engineRender.IRenderManagerService).getRenderById(instanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports.SheetsScrollRenderController).scrollToRange(params.range,params.forceTop,params.forceLeft)},"handler")},_CellEditorManagerService=class _CellEditorManagerService{constructor(){__publicField(this,"_state",null);__publicField(this,"_rect",null);__publicField(this,"_state$",new rxjs.BehaviorSubject(null));__publicField(this,"state$",this._state$.asObservable());__publicField(this,"_rect$",new rxjs.BehaviorSubject(null));__publicField(this,"rect$",this._rect$.asObservable());__publicField(this,"_focus",!1);__publicField(this,"_focus$",new rxjs.BehaviorSubject(this._focus));__publicField(this,"focus$",this._focus$.asObservable())}dispose(){this._state$.complete(),this._state=null,this._rect$.complete(),this._rect=null}setState(param){this._state=param,this._refresh(param)}getRect(){return this._rect}setRect(param){this._rect=param,this._rect$.next(param)}getState(){return this._state}setFocus(param=!1){this._focus=param,this._focus$.next(param)}_refresh(param){this._state$.next(param)}};__name(_CellEditorManagerService,"CellEditorManagerService");let CellEditorManagerService=_CellEditorManagerService;const ICellEditorManagerService=core.createIdentifier("univer.sheet-cell-editor-manager.service"),sheetFooterBarHeight$1="36",sheetContainer$1="univer-sheet-container",styles$l={sheetFooterBarHeight:sheetFooterBarHeight$1,sheetContainer:sheetContainer$1};var __defProp$K=Object.defineProperty,__getOwnPropDesc$K=Object.getOwnPropertyDescriptor,__decorateClass$K=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$K(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$K(target,key,result),result},"__decorateClass$K"),__decorateParam$K=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$K");const EDITOR_INPUT_SELF_EXTEND_GAP=5,EDITOR_BORDER_SIZE=2;var _a12;exports.SheetCellEditorResizeService=(_a12=class extends core.Disposable{constructor(_context,_layoutService,_cellEditorManagerService,_editorBridgeService,_renderManagerService,_sheetSkeletonManagerService,_univerInstanceService){super(),this._context=_context,this._layoutService=_layoutService,this._cellEditorManagerService=_cellEditorManagerService,this._editorBridgeService=_editorBridgeService,this._renderManagerService=_renderManagerService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._univerInstanceService=_univerInstanceService}fitTextSize(callback){var _a61,_b,_c,_d;const param=this._editorBridgeService.getEditCellState();if(!param)return;const{position,documentLayoutObject,canvasOffset,scaleX,scaleY}=param,{startX,startY,endX,endY}=position,documentDataModel=this._univerInstanceService.getUnit(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,core.UniverInstanceType.UNIVER_DOC);if(documentDataModel==null)return;const documentSkeleton=this._getEditorSkeleton();if(!documentSkeleton)return;const info=this._predictingSize(position,canvasOffset,documentSkeleton,documentLayoutObject,scaleX,scaleY);if(!info)return;let{actualWidth,actualHeight}=info;const{verticalAlign,horizontalAlign,paddingData,fill}=documentLayoutObject;actualWidth=actualWidth+((_a61=paddingData.l)!=null?_a61:0)+((_b=paddingData.r)!=null?_b:0),actualHeight=actualHeight+((_c=paddingData.t)!=null?_c:0)+((_d=paddingData.b)!=null?_d:0);let editorWidth=endX-startX,editorHeight=endY-startY;editorWidth<actualWidth&&(editorWidth=Math.ceil(actualWidth)),editorHeight<actualHeight&&(editorHeight=Math.ceil(actualHeight));let offsetTop=0;verticalAlign===core.VerticalAlign.MIDDLE?offsetTop=(editorHeight-actualHeight)/2/scaleY:verticalAlign===core.VerticalAlign.TOP?offsetTop=paddingData.t||0:offsetTop=(editorHeight-actualHeight)/scaleY;let offsetLeft=0;horizontalAlign===core.HorizontalAlign.CENTER?offsetLeft=(editorWidth-actualWidth)/2/scaleX:horizontalAlign===core.HorizontalAlign.RIGHT?offsetLeft=(editorWidth-actualWidth)/scaleX:offsetLeft=paddingData.l||0,offsetTop=offsetTop<(paddingData.t||0)?paddingData.t||0:offsetTop,offsetLeft=offsetLeft<(paddingData.l||0)?paddingData.l||0:offsetLeft,documentDataModel.updateDocumentDataMargin({t:offsetTop,l:offsetLeft}),documentSkeleton.calculate(),this._editAreaProcessing(editorWidth,editorHeight,position,canvasOffset,fill,scaleX,scaleY,horizontalAlign,callback)}_predictingSize(actualRangeWithCoord,canvasOffset,documentSkeleton,documentLayoutObject,scaleX=1,scaleY=1){const{startX,endX}=actualRangeWithCoord,{textRotation,wrapStrategy,paddingData}=documentLayoutObject,documentDataModel=this._univerInstanceService.getUnit(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,core.UniverInstanceType.UNIVER_DOC),{vertexAngle:angle}=engineRender.convertTextRotation(textRotation);if(wrapStrategy===core.WrapStrategy.WRAP&&angle===0){documentDataModel==null||documentDataModel.updateDocumentDataPageSize(endX-startX),documentDataModel==null||documentDataModel.updateDocumentDataMargin({l:paddingData.l,t:paddingData.t}),documentSkeleton.calculate();const{actualWidth,actualHeight}=documentSkeleton.getActualSize();return{actualWidth:actualWidth*scaleX,actualHeight:actualHeight*scaleY}}const maxSize=this._getEditorMaxSize(actualRangeWithCoord,canvasOffset,documentLayoutObject.horizontalAlign);if(!maxSize)return;documentDataModel==null||documentDataModel.updateDocumentDataPageSize(maxSize.width/scaleX),documentSkeleton.calculate();const size=documentSkeleton.getActualSize();let editorWidth=endX-startX;return editorWidth<size.actualWidth*scaleX+EDITOR_INPUT_SELF_EXTEND_GAP*scaleX&&(editorWidth=size.actualWidth*scaleX+EDITOR_INPUT_SELF_EXTEND_GAP*scaleX),documentDataModel==null||documentDataModel.updateDocumentDataPageSize(editorWidth/scaleX),documentDataModel==null||documentDataModel.updateDocumentRenderConfig({horizontalAlign:core.HorizontalAlign.UNSPECIFIED,cellValueType:void 0}),{actualWidth:size.actualWidth*scaleX,actualHeight:size.actualHeight*scaleY}}_getEditorMaxSize(position,canvasOffset,horizontalAlign){if(this._getEditorObject()==null)return;function pxToNum2(width2){return Number.parseInt(width2.replace("px",""))}__name(pxToNum2,"pxToNum");const canvasElement=this._context.engine.getCanvasElement(),canvasClientRect=canvasElement.getBoundingClientRect(),widthOfCanvas=pxToNum2(canvasElement.style.width),{width}=canvasClientRect,scaleAdjust=width/widthOfCanvas,{startX,startY,endX}=position,enginWidth=this._context.engine.width,clientHeight=document.body.clientHeight-startY-Number.parseFloat(styles$l.sheetFooterBarHeight)-canvasOffset.top-EDITOR_BORDER_SIZE*2;let clientWidth=width-startX;if(horizontalAlign===core.HorizontalAlign.CENTER){const rightGap=enginWidth-endX,leftGap=startX;clientWidth=endX-startX+Math.min(leftGap,rightGap)*2}else horizontalAlign===core.HorizontalAlign.RIGHT&&(clientWidth=endX);return{height:clientHeight,width:clientWidth-EDITOR_BORDER_SIZE,scaleAdjust}}_editAreaProcessing(editorWidth,editorHeight,actualRangeWithCoord,canvasOffset,fill,scaleX=1,scaleY=1,horizontalAlign,callback){var _a61;const editorObject=this._getEditorObject();if(editorObject==null)return;const canvasElement=this._context.engine.getCanvasElement();let{startX,startY}=actualRangeWithCoord;const{document:documentComponent,scene:editorScene,engine:docEngine}=editorObject,viewportMain=editorScene.getViewport(docsUi.VIEWPORT_KEY.VIEW_MAIN),info=this._getEditorMaxSize(actualRangeWithCoord,canvasOffset,horizontalAlign),{height:clientHeight,width:clientWidth,scaleAdjust}=info;let physicHeight=editorHeight,scrollBar=viewportMain==null?void 0:viewportMain.getScrollBar();physicHeight>clientHeight?(scrollBar==null?viewportMain&&new engineRender.ScrollBar(viewportMain,{enableHorizontal:!1,barSize:8}):viewportMain==null||viewportMain.resetCanvasSizeAndUpdateScroll(),viewportMain==null||viewportMain.scrollToViewportPos({viewportScrollY:physicHeight-clientHeight}),physicHeight=clientHeight):(scrollBar=null,(_a61=viewportMain==null?void 0:viewportMain.getScrollBar())==null||_a61.dispose()),editorWidth+=(scrollBar==null?void 0:scrollBar.barSize)||0,editorWidth>clientWidth&&(editorWidth=clientWidth),this._addBackground(editorScene,editorWidth/scaleX,editorHeight/scaleY,fill);const{scaleX:precisionScaleX,scaleY:precisionScaleY}=editorScene.getPrecisionScale();editorScene.transformByState({width:editorWidth*scaleAdjust/scaleX,height:editorHeight*scaleAdjust/scaleY,scaleX:scaleX*scaleAdjust,scaleY:scaleY*scaleAdjust}),documentComponent.resize(editorWidth*scaleAdjust/scaleX,editorHeight*scaleAdjust/scaleY),setTimeout(()=>{docEngine.resizeBySize(engineRender.fixLineWidthByScale(editorWidth,precisionScaleX),engineRender.fixLineWidthByScale(physicHeight,precisionScaleY)),callback==null||callback()},0);const contentBoundingRect=this._layoutService.getContentElement().getBoundingClientRect(),canvasBoundingRect=canvasElement.getBoundingClientRect();startX=startX*scaleAdjust+(canvasBoundingRect.left-contentBoundingRect.left),startY=startY*scaleAdjust+(canvasBoundingRect.top-contentBoundingRect.top);const cellWidth=actualRangeWithCoord.endX-actualRangeWithCoord.startX;horizontalAlign===core.HorizontalAlign.RIGHT?startX+=(cellWidth-editorWidth)*scaleAdjust:horizontalAlign===core.HorizontalAlign.CENTER&&(startX+=(cellWidth-editorWidth*scaleAdjust)/2),this._cellEditorManagerService.setState({startX,startY,endX:editorWidth*scaleAdjust+startX,endY:physicHeight*scaleAdjust+startY,show:!0})}_addBackground(scene,editorWidth,editorHeight,fill){const fillRectKey="_backgroundRectHelperColor_",rect=scene.getObject(fillRectKey);rect==null&&fill==null||(rect==null?scene.addObjects([new engineRender.Rect(fillRectKey,{width:editorWidth,height:editorHeight,fill,evented:!1})],docsUi.DOCS_COMPONENT_MAIN_LAYER_INDEX):fill==null?rect.dispose():(rect.setProps({fill}),rect.transformByState({width:editorWidth,height:editorHeight})))}resizeCellEditor(callback){var _a61;const state=this._cellEditorManagerService.getState();if(!state||!this._editorBridgeService.isVisible().visible)return;this._editorBridgeService.refreshEditCellPosition(!0);const editCellState=this._editorBridgeService.getEditCellState();if(!editCellState)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getWorksheetSkeleton(editCellState.sheetId))==null?void 0:_a61.skeleton;if(!skeleton)return;const{row,column,scaleX,scaleY,position,canvasOffset,documentLayoutObject}=editCellState,{horizontalAlign}=documentLayoutObject,maxSize=this._getEditorMaxSize(position,canvasOffset,horizontalAlign);if(!maxSize)return;const{height:clientHeight,width:clientWidth,scaleAdjust}=maxSize,cell=skeleton.getCellWithCoordByIndex(row,column),height=Math.min((cell.mergeInfo.endY-cell.mergeInfo.startY)*scaleY,clientHeight)*scaleAdjust,width=Math.min((cell.mergeInfo.endX-cell.mergeInfo.startX)*scaleX,clientWidth)*scaleAdjust,currentHeight=state.endY-state.startY,currentWidth=state.endX-state.startX;if(currentHeight!==height||currentWidth!==width){if(this._editorBridgeService.refreshEditCellPosition(!0),!this._getEditorSkeleton())return;this.fitTextSize(callback)}}_getEditorObject(){return getEditorObject(this._editorBridgeService.getCurrentEditorId(),this._renderManagerService)}_getEditorSkeleton(){var _a61;return(_a61=this._renderManagerService.getRenderById(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY))==null?void 0:_a61.with(docs.DocSkeletonManagerService).getSkeleton()}},__name(_a12,"SheetCellEditorResizeService"),_a12);exports.SheetCellEditorResizeService=__decorateClass$K([__decorateParam$K(1,ui.ILayoutService),__decorateParam$K(2,ICellEditorManagerService),__decorateParam$K(3,IEditorBridgeService),__decorateParam$K(4,engineRender.IRenderManagerService),__decorateParam$K(5,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$K(6,core.IUniverInstanceService)],exports.SheetCellEditorResizeService);function whenSheetFocused(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)}__name(whenSheetFocused,"whenSheetFocused");function whenSheetEditorFocused(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&!contextService.getContextValue(core.EDITOR_ACTIVATED)&&!contextService.getContextValue(core.FOCUSING_COMMON_DRAWINGS)}__name(whenSheetEditorFocused,"whenSheetEditorFocused");function whenSheetEditorFocusedAndFxNotFocused(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&!contextService.getContextValue(core.EDITOR_ACTIVATED)&&!contextService.getContextValue(core.FOCUSING_FX_BAR_EDITOR)&&!contextService.getContextValue(core.FOCUSING_COMMON_DRAWINGS)}__name(whenSheetEditorFocusedAndFxNotFocused,"whenSheetEditorFocusedAndFxNotFocused");function whenSheetEditorActivated(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&contextService.getContextValue(core.EDITOR_ACTIVATED)}__name(whenSheetEditorActivated,"whenSheetEditorActivated");function whenEditorActivated(contextService){return contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&contextService.getContextValue(core.EDITOR_ACTIVATED)}__name(whenEditorActivated,"whenEditorActivated");function whenFormulaEditorFocused(contextService){return contextService.getContextValue(core.FOCUSING_FX_BAR_EDITOR)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)}__name(whenFormulaEditorFocused,"whenFormulaEditorFocused");function whenFormulaEditorActivated(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)}__name(whenFormulaEditorActivated,"whenFormulaEditorActivated");function whenEditorDidNotInputFormulaActivated(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&!contextService.getContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA)&&!contextService.getContextValue(core.FOCUSING_EDITOR_STANDALONE)}__name(whenEditorDidNotInputFormulaActivated,"whenEditorDidNotInputFormulaActivated");const ARROW_SELECTION_KEYCODE_LIST=[ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP,ui.KeyCode.ARROW_LEFT,ui.KeyCode.ARROW_RIGHT],MOVE_SELECTION_KEYCODE_LIST=[ui.KeyCode.ENTER,ui.KeyCode.TAB,...ARROW_SELECTION_KEYCODE_LIST];function generateArrowSelectionShortCutItem(){const shortcutList=[];for(const keycode of ARROW_SELECTION_KEYCODE_LIST)shortcutList.push({id:SetCellEditVisibleArrowOperation.id,binding:keycode,preconditions:__name(contextService=>whenEditorDidNotInputFormulaActivated(contextService),"preconditions"),staticParameters:{visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,isShift:!1}}),shortcutList.push({id:SetCellEditVisibleArrowOperation.id,binding:keycode|ui.MetaKeys.SHIFT,preconditions:__name(contextService=>whenEditorDidNotInputFormulaActivated(contextService),"preconditions"),staticParameters:{visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,isShift:!0}});return shortcutList}__name(generateArrowSelectionShortCutItem,"generateArrowSelectionShortCutItem");const StartEditWithF2Shortcut={id:SetCellEditVisibleWithF2Operation.id,binding:ui.KeyCode.F2,description:"shortcut.sheet.start-editing",group:"4_sheet-edit",preconditions:whenSheetEditorFocused,staticParameters:{visible:!0,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.F2}},EditorCursorEnterShortcut={id:SetCellEditVisibleOperation.id,binding:ui.KeyCode.ENTER,description:"shortcut.sheet.toggle-editing",group:"4_sheet-edit",preconditions:__name(contextService=>whenEditorDidNotInputFormulaActivated(contextService),"preconditions"),staticParameters:{visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.ENTER}},EditorCursorTabShortcut={id:SetCellEditVisibleOperation.id,binding:ui.KeyCode.TAB,preconditions:__name(contextService=>whenEditorDidNotInputFormulaActivated(contextService),"preconditions"),staticParameters:{visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.TAB}},EditorCursorEscShortcut={id:SetCellEditVisibleOperation.id,binding:ui.KeyCode.ESC,description:"shortcut.sheet.abort-editing",group:"4_sheet-edit",preconditions:__name(contextService=>whenEditorDidNotInputFormulaActivated(contextService),"preconditions"),staticParameters:{visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.ESC}},EditorBreakLineShortcut={id:docsUi.BreakLineCommand.id,description:"shortcut.sheet.break-line",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorActivated(contextService),"preconditions"),binding:ui.KeyCode.ENTER|ui.MetaKeys.ALT},EditorDeleteLeftShortcut={id:docsUi.DeleteLeftCommand.id,preconditions:__name(contextService=>whenEditorActivated(contextService)||whenFormulaEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.BACKSPACE},EditorDeleteLeftShortcutInActive={id:SetCellEditVisibleOperation.id,description:"shortcut.sheet.delete-and-start-editing",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorFocused(contextService)&&!whenFormulaEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.BACKSPACE,staticParameters:{visible:!0,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.BACKSPACE}};function isForceString(str){return str.startsWith("'")}__name(isForceString,"isForceString");function extractStringFromForceString(str){return str.slice(1)}__name(extractStringFromForceString,"extractStringFromForceString");const fullWidthToHalfWidthMap={"0":"0","1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9",A:"A",B:"B",C:"C",D:"D",E:"E",F:"F",G:"G",H:"H",I:"I",J:"J",K:"K",L:"L",M:"M",N:"N",O:"O",P:"P",Q:"Q",R:"R",S:"S",T:"T",U:"U",V:"V",W:"W",X:"X",Y:"Y",Z:"Z",a:"a",b:"b",c:"c",d:"d",e:"e",f:"f",g:"g",h:"h",i:"i",j:"j",k:"k",l:"l",m:"m",n:"n",o:"o",p:"p",q:"q",r:"r",s:"s",t:"t",u:"u",v:"v",w:"w",x:"x",y:"y",z:"z","%":"%","-":"-",".":".",":":":","/":"/","+":"+","@":"@","&":"&","*":"*","#":"#","=":"=",">":">","<":"<","$":"$",""":'"',"'":"'","(":"(",")":")"," ":" ",",":",","!":"!","?":"?",";":";","[":"[","]":"]","{":"{","}":"}"},booleanMap={true:"TRUE",false:"FALSE"};function isCJKLocale(locale){return[core.LocaleType.ZH_CN,core.LocaleType.ZH_TW].includes(locale)}__name(isCJKLocale,"isCJKLocale");function normalizeString(str,lexerTreeBuilder,currentLocale,functionService){let normalStr=str;if(isCJKLocale(currentLocale)){if(str.startsWith("'")||str.startsWith("'"))return`'${str.slice(1)}`;normalStr=handleQuotedParts(normalStr)}if(normalStr.startsWith("="))return normalizeFormulaString(str,normalStr,lexerTreeBuilder,functionService);const lowerCaseStr=normalStr.toLowerCase();return booleanMap[lowerCaseStr]?booleanMap[lowerCaseStr]:core.numfmt.parseValue(normalStr)==null?str:normalStr}__name(normalizeString,"normalizeString");function handleQuotedParts(str){const sheetNamePattern=/['"].*?['"]/g,quotedParts=[],parts=str.split(sheetNamePattern);str.replace(sheetNamePattern,match=>(quotedParts.push(match),""));let normalStr=parts.join("").split("").map(toHalfWidth).join("");return quotedParts.forEach((part,idx)=>{normalStr=normalStr.slice(0,idx*2)+part+normalStr.slice((idx+1)*2)}),normalStr}__name(handleQuotedParts,"handleQuotedParts");function normalizeFormulaString(str,normalStr,lexerTreeBuilder,functionService){const nodes=lexerTreeBuilder.sequenceNodesBuilder(normalStr);if(!nodes)return str;let _normalStr=normalStr,totalOffset=0;return nodes.forEach((node,index)=>{if(typeof node=="object"){const token=node.token;if(booleanMap[token.toLowerCase()]){const startIndex=node.startIndex+totalOffset+1,endIndex=node.endIndex+totalOffset+2;_normalStr=replaceString(token.toLocaleUpperCase(),_normalStr,startIndex,endIndex)}else if(node.nodeType===engineFormula.sequenceNodeType.FUNCTION&&hasFunctionName(token,functionService,nodes,index)||node.nodeType===engineFormula.sequenceNodeType.REFERENCE){const sheetNameIndex=token.indexOf("!");if(sheetNameIndex>-1){const refBody=token.substring(sheetNameIndex+1),startIndex=node.startIndex+totalOffset+(sheetNameIndex+1)+1,endIndex=node.endIndex+totalOffset+2;_normalStr=replaceString(refBody.toLocaleUpperCase(),_normalStr,startIndex,endIndex)}else{const startIndex=node.startIndex+totalOffset+1,endIndex=node.endIndex+totalOffset+2;_normalStr=replaceString(token.toLocaleUpperCase(),_normalStr,startIndex,endIndex)}}else if(token.startsWith('"')&&token.endsWith('"')||token.startsWith("'")&&token.endsWith("'")){const startIndex=node.startIndex+totalOffset+2,endIndex=node.endIndex+totalOffset+1;_normalStr=replaceString(str.slice(startIndex,endIndex),_normalStr,startIndex,endIndex)}else if(node.nodeType!==engineFormula.sequenceNodeType.ARRAY){const parsedValue=core.numfmt.parseValue(token);if(parsedValue==null){const startIndex=node.startIndex+totalOffset+1,endIndex=node.endIndex+totalOffset+2;_normalStr=replaceString(str.slice(startIndex,endIndex),_normalStr,startIndex,endIndex)}else if(typeof parsedValue.v=="number"&&(parsedValue.z===void 0||!core.numfmt.isDate(parsedValue.z))){const v=`${parsedValue.v}`,startIndex=node.startIndex+totalOffset+1,endIndex=node.endIndex+totalOffset+2,{processedString,offset}=processNumberStringWithSpaces(token,v);_normalStr=replaceString(processedString,_normalStr,startIndex,endIndex),totalOffset+=offset}}}}),_normalStr}__name(normalizeFormulaString,"normalizeFormulaString");function hasFunctionName(name,functionService,nodes,index){const functionList=functionService.getDescriptions();return nodes[index+1]!==engineFormula.matchToken.OPEN_BRACKET?!1:functionList.get(removeLeadingAtSymbols(name).toLocaleUpperCase())!==void 0}__name(hasFunctionName,"hasFunctionName");function removeLeadingAtSymbols(str){const regex=/^@+/;return str.replace(regex,"")}__name(removeLeadingAtSymbols,"removeLeadingAtSymbols");function toHalfWidth(char){return fullWidthToHalfWidthMap[char]||char}__name(toHalfWidth,"toHalfWidth");function replaceString(replacedString,normalStr,startIndex,endIndex){return normalStr.substring(0,startIndex)+replacedString+normalStr.substring(endIndex)}__name(replaceString,"replaceString");function processNumberStringWithSpaces(token,numStr){var _a61,_b;const leadingSpaces=((_a61=token.match(/^\s*/))==null?void 0:_a61[0])||"",trailingSpaces=((_b=token.match(/\s*$/))==null?void 0:_b[0])||"",processedString=leadingSpaces+numStr+trailingSpaces,offset=processedString.length-token.length;return{processedString,offset}}__name(processNumberStringWithSpaces,"processNumberStringWithSpaces");const RANGE_SELECTOR_SYMBOLS="range_selector",isRangeSelector=__name(unitId=>unitId.includes(RANGE_SELECTOR_SYMBOLS),"isRangeSelector");var __defProp$J=Object.defineProperty,__getOwnPropDesc$J=Object.getOwnPropertyDescriptor,__decorateClass$J=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$J(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$J(target,key,result),result},"__decorateClass$J"),__decorateParam$J=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$J");const HIDDEN_EDITOR_POSITION$1=-1e3;var _a13;exports.EditingRenderController=(_a13=class extends core.Disposable{constructor(_context,selectionManagerService,_undoRedoService,_contextService,_renderManagerService,_editorBridgeService,_cellEditorManagerService,_lexerTreeBuilder,_functionService,_textSelectionManagerService,_commandService,_localService,_editorService,_sheetCellEditorResizeService,_univerInstanceService,_sheetInterceptorService){super();__publicField(this,"_cursorChange",0);__publicField(this,"_isUnitEditing",!1);__publicField(this,"_workbookSelections");__publicField(this,"_d");__publicField(this,"_cursorTimeout");this._context=_context,this._undoRedoService=_undoRedoService,this._contextService=_contextService,this._renderManagerService=_renderManagerService,this._editorBridgeService=_editorBridgeService,this._cellEditorManagerService=_cellEditorManagerService,this._lexerTreeBuilder=_lexerTreeBuilder,this._functionService=_functionService,this._textSelectionManagerService=_textSelectionManagerService,this._commandService=_commandService,this._localService=_localService,this._editorService=_editorService,this._sheetCellEditorResizeService=_sheetCellEditorResizeService,this._univerInstanceService=_univerInstanceService,this._sheetInterceptorService=_sheetInterceptorService,this._workbookSelections=selectionManagerService.getWorkbookSelections(this._context.unitId),this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).subscribe(workbook=>{(workbook==null?void 0:workbook.getUnitId())===this._context.unitId?this._d=this._init():(this._disposeCurrent(),this._isUnitEditing&&(this._handleEditorInvisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.ESC,unitId:this._context.unitId}),this._isUnitEditing=!1))})),this._initEditorVisibilityListener()}dispose(){super.dispose(),this._disposeCurrent()}_disposeCurrent(){var _a61;(_a61=this._d)==null||_a61.dispose(),this._d=null}_init(){const d=new core.DisposableCollection;return this._subscribeToCurrentCell(d),this._initialCursorSync(d),this._listenEditorFocus(d),this._commandExecutedListener(d),this._initSkeletonListener(d),this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(_unit=>{clearTimeout(this._cursorTimeout)})),this._cursorTimeout=setTimeout(()=>{this._cursorStateListener(d)},1e3),d}_initEditorVisibilityListener(){this.disposeWithMe(this._editorBridgeService.visible$.pipe(rxjs.distinctUntilChanged((prev,curr)=>prev.visible===curr.visible)).subscribe(param=>{(param.unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY||param.unitId===this._context.unitId)&&param.visible?(this._isUnitEditing=!0,this._handleEditorVisible(param)):this._isUnitEditing&&(this._handleEditorInvisible(param),this._isUnitEditing=!1)}))}_listenEditorFocus(d){const renderConfig=this._getEditorObject();renderConfig&&d.add(renderConfig.document.onPointerDown$.subscribeEvent(()=>{if(this._isUnitEditing&&this._editorBridgeService.isVisible()){const param=this._editorBridgeService.getEditCellState(),editorId=this._editorBridgeService.getCurrentEditorId();if(!param||!editorId)return;this._sheetCellEditorResizeService.fitTextSize()}}))}_initialCursorSync(d){d.add(this._cellEditorManagerService.focus$.pipe(rxjs.filter(f=>!!f)).subscribe(()=>{var _a61;const docSelectionRenderManager=(_a61=this._renderManagerService.getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_DOC))==null?void 0:_a61.with(docsUi.DocSelectionRenderService);docSelectionRenderManager&&docSelectionRenderManager.sync()}))}_initSkeletonListener(d){const commandList=new Set(sheets.COMMAND_LISTENER_SKELETON_CHANGE);commandList.delete(sheets.SetWorksheetActiveOperation.id),d.add(this._commandService.onCommandExecuted(commandInfo=>{commandList.has(commandInfo.id)&&this._sheetCellEditorResizeService.resizeCellEditor(()=>{this._textSelectionManagerService.refreshSelection({unitId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY})})}))}_subscribeToCurrentCell(d){d.add(this._editorBridgeService.currentEditCellState$.subscribe(editCellState=>{var _a61,_b;if(editCellState==null||this._editorBridgeService.isForceKeepVisible())return;const state=this._editorBridgeService.getEditCellState();if(state==null)return;const{position,documentLayoutObject,scaleX,editorUnitId}=state;if(this._contextService.getContextValue(core.FOCUSING_EDITOR_STANDALONE))return;const cellDocument=this._getDocumentDataModel();if(cellDocument==null)return;const{startX,endX}=position,{textRotation,wrapStrategy,documentModel}=documentLayoutObject,{vertexAngle:angle}=engineRender.convertTextRotation(textRotation);wrapStrategy===core.WrapStrategy.WRAP&&angle===0&&cellDocument.updateDocumentDataPageSize((endX-startX)/scaleX),this._commandService.syncExecuteCommand(docsUi.ReplaceSnapshotCommand.id,{unitId:editorUnitId,snapshot:documentModel.getSnapshot()}),this._contextService.setContextValue(core.FOCUSING_EDITOR_BUT_HIDDEN,!0),this._textSelectionManagerService.replaceDocRanges([{startOffset:0,endOffset:0}],{unitId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY});const cellSelectionRenderManager=(_a61=this._renderManagerService.getRenderById(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY))==null?void 0:_a61.with(docsUi.DocSelectionRenderService),formulaSelectionRenderManager=(_b=this._renderManagerService.getRenderById(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))==null?void 0:_b.with(docsUi.DocSelectionRenderService);(cellSelectionRenderManager!=null&&cellSelectionRenderManager.canFocusing||formulaSelectionRenderManager!=null&&formulaSelectionRenderManager.canFocusing)&&(this._univerInstanceService.setCurrentUnitForType(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),cellSelectionRenderManager==null||cellSelectionRenderManager.activate(HIDDEN_EDITOR_POSITION$1,HIDDEN_EDITOR_POSITION$1,!0))}))}_commandExecutedListener(d){d.add(this._commandService.onCommandExecuted(command=>{if(command.id===docs.RichTextEditingMutation.id){const params=command.params,{unitId:commandUnitId}=params;if(!this._isCurrentSheetFocused()||isRangeSelector(commandUnitId)||(this._editorBridgeService.changeEditorDirty(!0),!this._editorBridgeService.isVisible().visible))return;commandUnitId===core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY&&this._sheetCellEditorResizeService.fitTextSize()}}));const closeEditorOperation=[SetCellEditVisibleArrowOperation.id];d.add(this._commandService.onCommandExecuted(command=>{if(closeEditorOperation.includes(command.id)){const params=command.params,{keycode,isShift}=params;if(keycode!=null&&(this._cursorChange===2||this._contextService.getContextValue(core.FOCUSING_FX_BAR_EDITOR))){this._moveInEditor(keycode,isShift);return}this._editorBridgeService.changeVisible(params)}command.id===SetCellEditVisibleWithF2Operation.id&&(this._cursorChange=2)}))}_handleEditorVisible(param){var _a61,_b,_c;const{eventType,keycode}=param;this._cursorChange=eventType===engineRender.DeviceInputEventType.PointerDown||eventType===engineRender.DeviceInputEventType.Dblclick?2:1;const editCellState=this._editorBridgeService.getEditLocation();if(editCellState==null)return;this._commandService.syncExecuteCommand(ScrollToRangeOperation.id,{range:{startRow:editCellState.row,startColumn:editCellState.column,endRow:editCellState.row,endColumn:editCellState.column}}),this._editorBridgeService.refreshEditCellPosition(!1);const{unitId,isInArrayFormulaRange=!1}=editCellState,editorObject=this._getEditorObject();if(editorObject==null)return;const{document:document2,scene}=editorObject;this._contextService.setContextValue(core.EDITOR_ACTIVATED,!0);const documentDataModel=this._getDocumentDataModel(),skeleton=this._getEditorSkeleton(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);if(!(!skeleton||!documentDataModel)){if(this._sheetCellEditorResizeService.fitTextSize(()=>{const viewMain=scene.getViewport(docsUi.VIEWPORT_KEY.VIEW_MAIN);viewMain==null||viewMain.scrollToViewportPos({viewportScrollX:Number.POSITIVE_INFINITY,viewportScrollY:Number.POSITIVE_INFINITY})}),eventType===engineRender.DeviceInputEventType.Keyboard&&keycode===ui.KeyCode.F2){document2.makeDirty(),this._textSelectionManagerService.replaceDocRanges([{startOffset:0,endOffset:0}]);const endOffset=((_b=(_a61=documentDataModel.getBody())==null?void 0:_a61.dataStream.length)!=null?_b:2)-2;this._textSelectionManagerService.replaceDocRanges([{startOffset:endOffset,endOffset}],{unitId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY})}else if(eventType===engineRender.DeviceInputEventType.Keyboard||eventType===engineRender.DeviceInputEventType.Dblclick&&isInArrayFormulaRange)this._emptyDocumentDataModel(documentDataModel.getSnapshot().documentStyle,!!isInArrayFormulaRange),document2.makeDirty(),(keycode===ui.KeyCode.BACKSPACE||eventType===engineRender.DeviceInputEventType.Dblclick)&&(skeleton.calculate(),this._editorBridgeService.changeEditorDirty(!0)),this._textSelectionManagerService.replaceDocRanges([{startOffset:0,endOffset:0}],{unitId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY});else if(eventType===engineRender.DeviceInputEventType.Dblclick){if(this._contextService.getContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA))return;const cursor=documentDataModel.getBody().dataStream.length-2||0;this._textSelectionManagerService.replaceDocRanges([{startOffset:cursor,endOffset:cursor}])}(_c=this._renderManagerService.getRenderById(unitId))==null||_c.scene.resetCursor()}}async _handleEditorInvisible(param){const editCellState=this._editorBridgeService.getEditCellState(),documentDataModel=this._univerInstanceService.getUnit(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),snapshot=core.Tools.deepClone(documentDataModel==null?void 0:documentDataModel.getSnapshot());let{keycode}=param;if(this._cursorChange=0,this._exitInput(param),editCellState==null)return;this._editorBridgeService.getEditorDirty()===!1&&(keycode=ui.KeyCode.ESC);const worksheet=this._context.unit.getActiveSheet(),workbookId=this._context.unitId,worksheetId=worksheet.getSheetId(),{unitId,sheetId}=editCellState;if(workbookId===unitId&&sheetId!==worksheetId&&await this._commandService.executeCommand(sheets.SetWorksheetActivateCommand.id,{subUnitId:sheetId,unitId}),keycode===ui.KeyCode.ESC){this._editorBridgeService.isForceKeepVisible()&&this._editorBridgeService.disableForceKeepVisible();const selections=this._workbookSelections.getCurrentSelections();selections&&(this._contextService.setContextValue(sheets.REF_SELECTIONS_ENABLED,!1),this._commandService.syncExecuteCommand(sheets.SetSelectionsOperation.id,{unitId:this._context.unit.getUnitId(),subUnitId:sheetId,selections}));return}snapshot&&await this._submitCellData(snapshot),this._moveCursor(keycode)}_getEditorObject(){return getEditorObject(this._editorBridgeService.getCurrentEditorId(),this._renderManagerService)}submitCellData(documentDataModel){return this._submitCellData(documentDataModel.getSnapshot())}async _submitCellData(snapshot){const editCellState=this._editorBridgeService.getEditCellState();if(editCellState==null)return;const{unitId,sheetId,row,column}=editCellState,workbook=this._context.unit;let worksheet=workbook.getActiveSheet();if(!workbook.getSheetBySheetId(sheetId))return;worksheet=workbook.getActiveSheet();const cellData=getCellDataByInput({...worksheet.getCellRaw(row,column)||{}},snapshot,this._lexerTreeBuilder,this._localService,this._functionService,workbook.getStyles());if(!cellData)return;const finalCell=await this._sheetInterceptorService.onWriteCell(workbook,worksheet,row,column,cellData);finalCell!==worksheet.getCellRaw(row,column)&&this._commandService.executeCommand(sheets.SetRangeValuesCommand.id,{subUnitId:sheetId,unitId,range:{startRow:row,startColumn:column,endRow:row,endColumn:column},value:finalCell})}_exitInput(param){var _a61;this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(core.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(core.FOCUSING_EDITOR_BUT_HIDDEN,!1),this._contextService.setContextValue(core.FOCUSING_FX_BAR_EDITOR,!1),this._cellEditorManagerService.setState({show:param.visible});const editorObject=this._getEditorObject();(_a61=editorObject==null?void 0:editorObject.scene.getViewport(docsUi.VIEWPORT_KEY.VIEW_MAIN))==null||_a61.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0});const editorUnitId=this._editorBridgeService.getCurrentEditorId();editorUnitId==null||!this._editorService.isSheetEditor(editorUnitId)||(this._undoRedoService.clearUndoRedo(editorUnitId),this._undoRedoService.clearUndoRedo(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))}_moveCursor(keycode){if(keycode==null||!MOVE_SELECTION_KEYCODE_LIST.includes(keycode))return;let direction=core.Direction.LEFT;switch(keycode){case ui.KeyCode.ENTER:direction=core.Direction.DOWN;break;case ui.KeyCode.TAB:direction=core.Direction.RIGHT;break;case ui.KeyCode.ARROW_DOWN:direction=core.Direction.DOWN;break;case ui.KeyCode.ARROW_UP:direction=core.Direction.UP;break;case ui.KeyCode.ARROW_LEFT:direction=core.Direction.LEFT;break;case ui.KeyCode.ARROW_RIGHT:direction=core.Direction.RIGHT;break}keycode===ui.KeyCode.ENTER||keycode===ui.KeyCode.TAB?this._commandService.executeCommand(MoveSelectionEnterAndTabCommand.id,{keycode,direction}):this._commandService.executeCommand(MoveSelectionCommand.id,{direction})}_cursorStateListener(d){const editorObject=this._getEditorObject();if(!(editorObject!=null&&editorObject.document))return;const{document:documentComponent}=editorObject;d.add(core.toDisposable(documentComponent.onPointerDown$.subscribeEvent(()=>{this._cursorChange===1&&(this._cursorChange=2)})))}_moveInEditor(keycode,isShift){let direction=core.Direction.LEFT;keycode===ui.KeyCode.ARROW_DOWN?direction=core.Direction.DOWN:keycode===ui.KeyCode.ARROW_UP?direction=core.Direction.UP:keycode===ui.KeyCode.ARROW_RIGHT&&(direction=core.Direction.RIGHT),isShift?this._commandService.executeCommand(docsUi.MoveSelectionOperation.id,{direction}):this._commandService.executeCommand(docsUi.MoveCursorOperation.id,{direction})}_getDocumentDataModel(){return this._univerInstanceService.getUnit(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,core.UniverInstanceType.UNIVER_DOC)}_isCurrentSheetFocused(){var _a61;return((_a61=this._univerInstanceService.getFocusedUnit())==null?void 0:_a61.getUnitId())===this._context.unitId}_getEditorSkeleton(editorId){var _a61;return(_a61=this._renderManagerService.getRenderById(editorId))==null?void 0:_a61.with(docs.DocSkeletonManagerService).getSkeleton()}_getEditorViewModel(editorId){var _a61;return(_a61=this._renderManagerService.getRenderById(editorId))==null?void 0:_a61.with(docs.DocSkeletonManagerService).getViewModel()}_emptyDocumentDataModel(documentStyle,removeStyle){const empty=__name((documentDataModel2,resetDocumentStyle)=>{const snapshot=core.Tools.deepClone(documentDataModel2.getSnapshot()),documentViewModel=this._getEditorViewModel(documentDataModel2.getUnitId());documentViewModel!=null&&(emptyBody(snapshot.body,removeStyle),resetDocumentStyle&&(snapshot.documentStyle=documentStyle),snapshot.drawings={},snapshot.drawingsOrder=[],documentDataModel2.reset(snapshot),documentViewModel.reset(documentDataModel2))},"empty"),documentDataModel=this._getDocumentDataModel();documentDataModel&&empty(documentDataModel,!0);const formulaDocument=this._univerInstanceService.getUnit(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,core.UniverInstanceType.UNIVER_DOC);formulaDocument&&empty(formulaDocument)}},__name(_a13,"EditingRenderController"),_a13);exports.EditingRenderController=__decorateClass$J([__decorateParam$J(1,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$J(2,core.IUndoRedoService),__decorateParam$J(3,core.IContextService),__decorateParam$J(4,engineRender.IRenderManagerService),__decorateParam$J(5,IEditorBridgeService),__decorateParam$J(6,ICellEditorManagerService),__decorateParam$J(7,core.Inject(engineFormula.LexerTreeBuilder)),__decorateParam$J(8,engineFormula.IFunctionService),__decorateParam$J(9,core.Inject(docs.DocSelectionManagerService)),__decorateParam$J(10,core.ICommandService),__decorateParam$J(11,core.Inject(core.LocaleService)),__decorateParam$J(12,docsUi.IEditorService),__decorateParam$J(13,core.Inject(exports.SheetCellEditorResizeService)),__decorateParam$J(14,core.IUniverInstanceService),__decorateParam$J(15,core.Inject(sheets.SheetInterceptorService))],exports.EditingRenderController);function getCellDataByInput(cellData,snapshot,lexerTreeBuilder,localeService,functionService,styles2){var _a61,_b,_c;if((snapshot==null?void 0:snapshot.body)==null)return null;const{body}=snapshot;cellData.t=void 0;const data=body.dataStream;let newDataStream=data.substring(data.length-2,data.length)===core.DEFAULT_EMPTY_DOCUMENT_VALUE?data.substring(0,data.length-2):data;const currentLocale=localeService.getCurrentLocale();if(newDataStream=normalizeString(newDataStream,lexerTreeBuilder,currentLocale,functionService),(_a61=snapshot.drawingsOrder)!=null&&_a61.length)cellData.v="",cellData.f=null,cellData.si=null,cellData.p=snapshot,cellData.t=core.CellValueType.STRING;else if(cellData.s&&((_c=(_b=styles2==null?void 0:styles2.get(cellData.s))==null?void 0:_b.n)==null?void 0:_c.pattern)===engineNumfmt.DEFAULT_TEXT_FORMAT){cellData.v=newDataStream,cellData.f=null,cellData.si=null,cellData.p=null,cellData.t=core.CellValueType.STRING,isRichText(body)&&body.dataStream!==`\r
1
+ "use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const docsUi=require("@univerjs/docs-ui"),core=require("@univerjs/core"),engineRender=require("@univerjs/engine-render"),ui=require("@univerjs/ui"),React=require("react"),rxjs=require("rxjs"),sheets=require("@univerjs/sheets"),docs=require("@univerjs/docs"),engineFormula=require("@univerjs/engine-formula"),engineNumfmt=require("@univerjs/engine-numfmt"),design=require("@univerjs/design"),jsxRuntime=require("react/jsx-runtime"),telemetry=require("@univerjs/telemetry"),operators=require("rxjs/operators");function getEditorObject(unitId,renderManagerService){if(unitId==null)return;const currentRender=renderManagerService.getRenderById(unitId);if(currentRender==null)return;const{mainComponent,scene,engine,components}=currentRender,document2=mainComponent,docBackground=components.get(docsUi.DOCS_VIEW_KEY.BACKGROUND);return{document:document2,docBackground,scene,engine}}__name(getEditorObject,"getEditorObject");const SHEET_ZOOM_RANGE=[10,400],RANGE_SELECTOR_COMPONENT_KEY="RANGE_SELECTOR_COMPONENT_KEY",EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY="EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY";var SHEET_VIEW_KEY=(SHEET_VIEW_KEY2=>(SHEET_VIEW_KEY2.MAIN="__SpreadsheetRender__",SHEET_VIEW_KEY2.ROW="__SpreadsheetRowHeader__",SHEET_VIEW_KEY2.COLUMN="__SpreadsheetColumnHeader__",SHEET_VIEW_KEY2.LEFT_TOP="__SpreadsheetLeftTopPlaceholder__",SHEET_VIEW_KEY2))(SHEET_VIEW_KEY||{});const SHEET_COMPONENT_MAIN_LAYER_INDEX=0,SHEET_COMPONENT_SELECTION_LAYER_INDEX=1,SHEET_COMPONENT_HEADER_LAYER_INDEX=10,SHEET_COMPONENT_HEADER_SELECTION_LAYER_INDEX=11,SHEET_COMPONENT_UNHIDE_LAYER_INDEX=12,RANGE_MOVE_PERMISSION_CHECK=core.createInterceptorKey("rangeMovePermissionCheck"),RANGE_FILL_PERMISSION_CHECK=core.createInterceptorKey("rangeFillPermissionCheck");var SELECTION_SHAPE_DEPTH=(SELECTION_SHAPE_DEPTH2=>(SELECTION_SHAPE_DEPTH2[SELECTION_SHAPE_DEPTH2.FORMULA_EDITOR_SHOW=100]="FORMULA_EDITOR_SHOW",SELECTION_SHAPE_DEPTH2[SELECTION_SHAPE_DEPTH2.MARK_SELECTION=1e4]="MARK_SELECTION",SELECTION_SHAPE_DEPTH2))(SELECTION_SHAPE_DEPTH||{});function genNormalSelectionStyle(themeService){const styleSheet=themeService.getCurrentTheme(),fill=new core.ColorKit(styleSheet.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:styleSheet.primaryColor,fill,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:styleSheet.colorWhite,autofillSize:6,autofillStrokeWidth:1,autofillStroke:styleSheet.colorWhite,rowHeaderFill:fill,rowHeaderStroke:styleSheet.primaryColor,rowHeaderStrokeWidth:1,columnHeaderFill:fill,columnHeaderStroke:styleSheet.primaryColor,columnHeaderStrokeWidth:1,expandCornerSize:40}}__name(genNormalSelectionStyle,"genNormalSelectionStyle");const _SelectionRenderModel=class _SelectionRenderModel{constructor(){__publicField(this,"_startColumn",-1);__publicField(this,"_startRow",-1);__publicField(this,"_endColumn",-1);__publicField(this,"_endRow",-1);__publicField(this,"_startX",0);__publicField(this,"_startY",0);__publicField(this,"_endX",0);__publicField(this,"_endY",0);__publicField(this,"_primary");__publicField(this,"_rangeType",core.RANGE_TYPE.NORMAL)}get startColumn(){return this._startColumn}get startRow(){return this._startRow}get endColumn(){return this._endColumn}get endRow(){return this._endRow}get startX(){return this._startX}get startY(){return this._startY}get endX(){return this._endX}get endY(){return this._endY}get currentCell(){return this._primary}get rangeType(){return this._rangeType}isEqual(rangeWithCoord){const{startColumn,startRow,endColumn,endRow}=this,{startColumn:newStartColumn,startRow:newStartRow,endColumn:newEndColumn,endRow:newEndRow}=rangeWithCoord;return startColumn===newStartColumn&&startRow===newStartRow&&endColumn===newEndColumn&&endRow===newEndRow}isInclude(rangeWithCoord){const{startColumn,startRow,endColumn,endRow}=this,{startColumn:newStartColumn,startRow:newStartRow,endColumn:newEndColumn,endRow:newEndRow}=rangeWithCoord;return!(newEndColumn<startColumn||newStartColumn>endColumn||newStartRow>endRow||newEndRow<startRow)}highlightToSelection(){if(this._primary)return core.convertCellToRange(this._primary)}getRange(){return{startColumn:this._startColumn,startRow:this._startRow,endColumn:this._endColumn,endRow:this._endRow,startX:this._startX,startY:this._startY,endX:this._endX,endY:this._endY,rangeType:this.rangeType}}getCell(){return this._primary}getRangeType(){return this._rangeType}setRangeType(rangeType){this._rangeType=rangeType}getValue(){return{rangeWithCoord:this.getRange(),primaryWithCoord:this._primary}}setValue(newSelectionRange,currentCell){const{startColumn,startRow,endColumn,endRow,startX,startY,endX,endY,rangeType}=newSelectionRange;this._startColumn=startColumn,this._startRow=startRow,this._endColumn=endColumn,this._endRow=endRow,this._startX=startX,this._startY=startY,this._endX=endX,this._endY=endY,rangeType!==void 0&&(this._rangeType=rangeType),currentCell!==void 0&&this.setCurrentCell(currentCell)}setCurrentCell(currentCell){this._primary=currentCell}clearCurrentCell(){this._primary=null}};__name(_SelectionRenderModel,"SelectionRenderModel");let SelectionRenderModel=_SelectionRenderModel;function attachRangeWithCoord(skeleton,range){const{startRow,startColumn,endRow,endColumn,rangeType}=range,_startRow=endRow<startRow?endRow:startRow,_endRow=endRow<startRow?startRow:endRow,_startColumn=endColumn<startColumn?endColumn:startColumn,_endColumn=endColumn<startColumn?startColumn:endColumn,startCell=skeleton.getNoMergeCellPositionByIndex(_startRow,_startColumn),endCell=skeleton.getNoMergeCellPositionByIndex(_endRow,_endColumn);return{startRow,startColumn,endRow,endColumn,rangeType,startY:(startCell==null?void 0:startCell.startY)||0,endY:(endCell==null?void 0:endCell.endY)||0,startX:(startCell==null?void 0:startCell.startX)||0,endX:(endCell==null?void 0:endCell.endX)||0}}__name(attachRangeWithCoord,"attachRangeWithCoord");function attachSelectionWithCoord(selection,skeleton){const{range,primary,style}=selection,rangeWithCoord=attachRangeWithCoord(skeleton,range),primaryWithCoord=primary&&attachPrimaryWithCoord(skeleton,primary);return{rangeWithCoord,primaryWithCoord,style}}__name(attachSelectionWithCoord,"attachSelectionWithCoord");function attachPrimaryWithCoord(skeleton,primary){const{actualRow,actualColumn,isMerged,isMergedMainCell,startRow,startColumn,endRow,endColumn}=primary,cellPosition=skeleton.getNoMergeCellPositionByIndex(actualRow,actualColumn),startCell=skeleton.getNoMergeCellPositionByIndex(startRow,startColumn),endCell=skeleton.getNoMergeCellPositionByIndex(endRow,endColumn);return{actualRow,actualColumn,isMerged,isMergedMainCell,startX:cellPosition.startX,startY:cellPosition.startY,endX:cellPosition.endX,endY:cellPosition.endY,mergeInfo:{startRow,startColumn,endRow,endColumn,startY:(startCell==null?void 0:startCell.startY)||0,endY:(endCell==null?void 0:endCell.endY)||0,startX:(startCell==null?void 0:startCell.startX)||0,endX:(endCell==null?void 0:endCell.endX)||0}}}__name(attachPrimaryWithCoord,"attachPrimaryWithCoord");const HELPER_SELECTION_TEMP_NAME="__SpreadsheetHelperSelectionTempRect",SELECTION_CONTROL_DELETING_LIGHTEN=35,_SelectionShapeExtension=class _SelectionShapeExtension{constructor(_control,options){__publicField(this,"_startOffsetX",0);__publicField(this,"_startOffsetY",0);__publicField(this,"_relativeSelectionPositionRow",0);__publicField(this,"_relativeSelectionPositionColumn",0);__publicField(this,"_relativeSelectionRowLength",0);__publicField(this,"_relativeSelectionColumnLength",0);__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_helperSelection");__publicField(this,"_scrollTimer");__publicField(this,"_activeViewport");__publicField(this,"_targetSelection",{startY:0,endY:0,startX:0,endX:0,startRow:-1,endRow:-1,startColumn:-1,endColumn:-1});__publicField(this,"_isInMergeState",!1);__publicField(this,"_fillControlColors",[]);__publicField(this,"_skeleton");__publicField(this,"_scene");__publicField(this,"_themeService");__publicField(this,"_injector");__publicField(this,"_selectionHooks");this._control=_control,this._skeleton=options.skeleton,this._scene=options.scene,this._themeService=options.themeService,this._injector=options.injector,this._selectionHooks=options.selectionHooks,this._initialControl(),this._initialWidget(),this._initialAutoFill(),this._control.dispose$.subscribe(()=>{this.dispose()})}get isHelperSelection(){return this._control.isHelperSelection}dispose(){var _a61,_b;(_a61=this._scrollTimer)==null||_a61.dispose(),this._fillControlColors=[],this._clearObserverEvent(),(_b=this._helperSelection)==null||_b.dispose()}_getFreeze(){var _a61,_b;return(_b=(_a61=this._injector.get(engineRender.IRenderManagerService).withCurrentTypeOfUnit(core.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:_a61.getCurrent())==null?void 0:_b.skeleton.getWorksheetConfig().freeze}_isSelectionInViewport(selection,viewport){const freeze=this._getFreeze()||{startRow:-1,startColumn:-1,xSplit:0,ySplit:0};switch(viewport.viewportKey){case engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN:return selection.endRow>=freeze.startRow&&selection.endColumn>=freeze.startColumn;case engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP:case engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT:return selection.endColumn>=freeze.startColumn&&selection.startRow<freeze.startRow;case engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT:case engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM:return selection.endRow>=freeze.startRow&&selection.startColumn<freeze.startColumn;case engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP:case engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT:case engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP:case engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP:return selection.startRow<freeze.startRow&&selection.startColumn<freeze.startColumn}}_clearObserverEvent(){var _a61,_b;(_a61=this._scenePointerMoveSub)==null||_a61.unsubscribe(),(_b=this._scenePointerUpSub)==null||_b.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}_initialControl(){const{leftControl,rightControl,topControl,bottomControl}=this._control;[leftControl,rightControl,topControl,bottomControl].forEach(control=>{control.onPointerEnter$.subscribeEvent(()=>{var _a61;((_a61=this._injector.get(ISheetSelectionRenderService,core.Quantity.OPTIONAL))==null?void 0:_a61.interceptor.fetchThroughInterceptors(RANGE_MOVE_PERMISSION_CHECK)(!1,null))!==!1&&control.setCursor(engineRender.CURSOR_TYPE.MOVE)}),control.onPointerLeave$.subscribeEvent(()=>{control.resetCursor()}),control.onPointerDown$.subscribeEvent(this._controlPointerDownHandler.bind(this))})}_controlMoving(moveOffsetX,moveOffsetY){var _a61;const scene=this._scene,scrollXY=scene.getScrollXYInfoByViewport(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY])),{scaleX,scaleY}=scene.getAncestorScale(),actualCellIndex=this._skeleton.getCellIndexByOffset(moveOffsetX,moveOffsetY,scaleX,scaleY,scrollXY),{row,column}=actualCellIndex,maxRow=this._skeleton.getRowCount()-1,maxColumn=this._skeleton.getColumnCount()-1;let startRow=Math.max(0,row+this._relativeSelectionPositionRow),endRow=startRow+this._relativeSelectionRowLength;endRow>maxRow&&(endRow=maxRow,endRow-startRow<this._relativeSelectionRowLength&&(startRow=endRow-this._relativeSelectionRowLength));let startColumn=Math.max(0,column+this._relativeSelectionPositionColumn),endColumn=startColumn+this._relativeSelectionColumnLength;endColumn>maxColumn&&(endColumn=maxColumn,endColumn-startColumn<this._relativeSelectionColumnLength&&(startColumn=endColumn-this._relativeSelectionColumnLength));const primaryCell=this._skeleton.worksheet.getCellInfoInMergeData(startRow,startColumn),selectionWithCoord=attachSelectionWithCoord({range:{startRow,endRow,startColumn,endColumn},primary:primaryCell,style:null},this._skeleton),startCell=this._skeleton.getNoMergeCellPositionByIndex(startRow,startColumn),endCell=this._skeleton.getNoMergeCellPositionByIndex(endRow,endColumn),startY=(startCell==null?void 0:startCell.startY)||0,endY=(endCell==null?void 0:endCell.endY)||0,startX=(startCell==null?void 0:startCell.startX)||0,endX=(endCell==null?void 0:endCell.endX)||0;(_a61=this._helperSelection)==null||_a61.transformByState({left:startX,top:startY,width:endX-startX,height:endY-startY}),this._targetSelection={...selectionWithCoord.rangeWithCoord},this._control.selectionMoving$.next(selectionWithCoord.rangeWithCoord)}_controlPointerDownHandler(evt){const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,scene=this._scene,relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords,scrollXY=scene.getScrollXYInfoByViewport(relativeCoords),{scaleX,scaleY}=scene.getAncestorScale(),actualSelection=this._skeleton.getCellIndexByOffset(newEvtOffsetX,newEvtOffsetY,scaleX,scaleY,scrollXY);this._startOffsetX=newEvtOffsetX,this._startOffsetY=newEvtOffsetY;const{row,column}=actualSelection,{startRow:originStartRow,startColumn:originStartColumn,endRow:originEndRow,endColumn:originEndColumn}=this._control.model;let fixRow=0,fixColumn=0;row<originStartRow?fixRow-=1:row>originEndRow&&(fixRow+=1),column<originStartColumn?fixColumn-=1:column>originEndColumn&&(fixColumn+=1),this._relativeSelectionPositionRow=originStartRow-row+fixRow,this._relativeSelectionPositionColumn=originStartColumn-column+fixColumn,this._relativeSelectionRowLength=originEndRow-originStartRow,this._relativeSelectionColumnLength=originEndColumn-originStartColumn;const style=this._control.currentStyle,scale=this._getScale();this.isHelperSelection&&(this._helperSelection=new engineRender.Rect(HELPER_SELECTION_TEMP_NAME,{stroke:style.stroke,strokeWidth:style.strokeWidth/scale}),scene.addObject(this._helperSelection));const viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),scrollTimer=engineRender.ScrollTimer.create(scene);this._scrollTimer=scrollTimer,scrollTimer.startScroll(newEvtOffsetX,newEvtOffsetY,viewMain),scene.disableObjectsEvent(),this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{var _a61;const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt;if(((_a61=this._injector.get(ISheetSelectionRenderService,core.Quantity.OPTIONAL))==null?void 0:_a61.interceptor.fetchThroughInterceptors(RANGE_MOVE_PERMISSION_CHECK)(!1,null))===!1)return;const{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._controlMoving(newMoveOffsetX,newMoveOffsetY),scene.setCursor(engineRender.CURSOR_TYPE.MOVE),scrollTimer.scrolling(newMoveOffsetX,newMoveOffsetY,()=>{this._controlMoving(newMoveOffsetX,newMoveOffsetY)})}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a61,_b,_c,_d;(_a61=this._helperSelection)==null||_a61.dispose();const scene2=this._scene;scene2.resetCursor(),this._clearObserverEvent(),scene2.enableObjectsEvent(),(_b=this._scrollTimer)==null||_b.dispose(),this._control.selectionMoveEnd$.next(this._targetSelection),(_d=(_c=this._selectionHooks).selectionMoveEnd)==null||_d.call(_c)})}_initialWidget(){const{topLeftWidget,topCenterWidget,topRightWidget,middleLeftWidget,middleRightWidget,bottomLeftWidget,bottomCenterWidget,bottomRightWidget}=this._control,cursors=[engineRender.CURSOR_TYPE.NORTH_WEST_RESIZE,engineRender.CURSOR_TYPE.NORTH_RESIZE,engineRender.CURSOR_TYPE.NORTH_EAST_RESIZE,engineRender.CURSOR_TYPE.WEST_RESIZE,engineRender.CURSOR_TYPE.EAST_RESIZE,engineRender.CURSOR_TYPE.SOUTH_WEST_RESIZE,engineRender.CURSOR_TYPE.SOUTH_RESIZE,engineRender.CURSOR_TYPE.SOUTH_EAST_RESIZE];[topLeftWidget,topCenterWidget,topRightWidget,middleLeftWidget,middleRightWidget,bottomLeftWidget,bottomCenterWidget,bottomRightWidget].forEach((control,index)=>{control.onPointerEnter$.subscribeEvent(()=>{control.setCursor(cursors[index])}),control.onPointerLeave$.subscribeEvent(()=>{control.resetCursor()}),control.onPointerDown$.subscribeEvent(evt=>{this._widgetPointerDownEvent(evt,cursors[index])})})}_widgetPointerDownEvent(evt,cursor){const scene=this._scene,{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords;this._startOffsetX=evtOffsetX,this._startOffsetY=evtOffsetY;const{startRow:originStartRow,startColumn:originStartColumn,endRow:originEndRow,endColumn:originEndColumn}=this._control.model,startRow=Math.min(originStartRow,originEndRow),startColumn=Math.min(originStartColumn,originEndColumn),endRow=Math.max(originStartRow,originEndRow),endColumn=Math.max(originStartColumn,originEndColumn);this._relativeSelectionPositionRow=startRow,this._relativeSelectionPositionColumn=startColumn,this._relativeSelectionRowLength=endRow-startRow,this._relativeSelectionColumnLength=endColumn-startColumn,cursor===engineRender.CURSOR_TYPE.NORTH_WEST_RESIZE?(this._relativeSelectionPositionRow=endRow,this._relativeSelectionPositionColumn=endColumn):cursor===engineRender.CURSOR_TYPE.NORTH_RESIZE?this._relativeSelectionPositionRow=endRow:cursor===engineRender.CURSOR_TYPE.NORTH_EAST_RESIZE?this._relativeSelectionPositionRow=endRow:cursor===engineRender.CURSOR_TYPE.WEST_RESIZE?this._relativeSelectionPositionColumn=endColumn:cursor===engineRender.CURSOR_TYPE.SOUTH_WEST_RESIZE?this._relativeSelectionPositionColumn=endColumn:cursor===engineRender.CURSOR_TYPE.SOUTH_RESIZE&&(this._relativeSelectionPositionRow=startRow);const scrollTimer=engineRender.ScrollTimer.create(scene),viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);scrollTimer.startScroll(newEvtOffsetX,newEvtOffsetY,viewMain),this._scrollTimer=scrollTimer,scene.disableObjectsEvent(),this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt,{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._widgetMoving(newMoveOffsetX,newMoveOffsetY,cursor),scene.setCursor(cursor),scrollTimer.scrolling(newMoveOffsetX,newMoveOffsetY,()=>{this._widgetMoving(newMoveOffsetX,newMoveOffsetY,cursor)})}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a61,_b,_c;const scene2=this._scene;scene2.resetCursor(),this._clearObserverEvent(),scene2.enableObjectsEvent(),(_a61=this._scrollTimer)==null||_a61.dispose(),this._control.selectionScaled$.next(this._targetSelection),(_c=(_b=this._selectionHooks).selectionMoveEnd)==null||_c.call(_b)})}_widgetMoving(moveOffsetX,moveOffsetY,cursor){const scene=this._scene,scrollXY=scene.getScrollXYInfoByViewport(engineRender.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),{scaleX,scaleY}=scene.getAncestorScale(),moveActualSelection=this._skeleton.getCellIndexByOffset(moveOffsetX,moveOffsetY,scaleX,scaleY,scrollXY),{row,column}=moveActualSelection;let startRow=this._relativeSelectionPositionRow,startColumn=this._relativeSelectionPositionColumn,endRow=row,endColumn=column;cursor===engineRender.CURSOR_TYPE.NORTH_WEST_RESIZE?(startRow=row,startColumn=column,endRow=this._relativeSelectionPositionRow,endColumn=this._relativeSelectionPositionColumn):cursor===engineRender.CURSOR_TYPE.NORTH_RESIZE?(startRow=row,startColumn=this._relativeSelectionPositionColumn,endRow=this._relativeSelectionPositionRow,endColumn=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength):cursor===engineRender.CURSOR_TYPE.NORTH_EAST_RESIZE?(startRow=row,startColumn=this._relativeSelectionPositionColumn,endRow=this._relativeSelectionPositionRow,endColumn=column):cursor===engineRender.CURSOR_TYPE.WEST_RESIZE?(startRow=this._relativeSelectionPositionRow,startColumn=column,endRow=this._relativeSelectionPositionRow+this._relativeSelectionRowLength,endColumn=this._relativeSelectionPositionColumn):cursor===engineRender.CURSOR_TYPE.EAST_RESIZE?endRow=this._relativeSelectionPositionRow+this._relativeSelectionRowLength:cursor===engineRender.CURSOR_TYPE.SOUTH_WEST_RESIZE?(startRow=this._relativeSelectionPositionRow,startColumn=column,endRow=row,endColumn=this._relativeSelectionPositionColumn):cursor===engineRender.CURSOR_TYPE.SOUTH_RESIZE&&(startRow=this._relativeSelectionPositionRow,startColumn=this._relativeSelectionPositionColumn,endRow=row,endColumn=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength);const range=this._swapPositions(startRow,startColumn,endRow,endColumn),primaryCell=this._skeleton.getCellWithMergeInfoByIndex(startRow,startColumn),selectionRangeWithCoord=attachSelectionWithCoord({range,primary:primaryCell,style:null},this._skeleton);this._targetSelection={...selectionRangeWithCoord.rangeWithCoord},this._control.updateRangeBySelectionWithCoord(selectionRangeWithCoord),this._control.selectionScaling$.next(this._targetSelection)}_initialAutoFill(){const{fillControl}=this._control;fillControl.onPointerEnter$.subscribeEvent(evt=>{this._injector.get(ISheetSelectionRenderService).interceptor.fetchThroughInterceptors(RANGE_FILL_PERMISSION_CHECK)(!1,{x:evt.offsetX,y:evt.offsetY,skeleton:this._skeleton,scene:this._scene})&&fillControl.setCursor(engineRender.CURSOR_TYPE.CROSSHAIR)}),fillControl.onPointerLeave$.subscribeEvent(()=>{fillControl.resetCursor()}),fillControl.onPointerDown$.subscribeEvent(this._autoFillForPointerdown.bind(this))}_autoFillMoving(moveOffsetX,moveOffsetY){var _a61,_b,_c;const scene=this._scene,scrollXY=scene.getViewportScrollXY(this._activeViewport),{scaleX,scaleY}=scene.getAncestorScale(),moveActualSelection=this._skeleton.getCellIndexByOffset(moveOffsetX,moveOffsetY,scaleX,scaleY,scrollXY),{row,column}=moveActualSelection,moveRelativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY])),maxRow=this._skeleton.getRowCount()-1,maxColumn=this._skeleton.getColumnCount()-1;let startRow=this._relativeSelectionPositionRow,startColumn=this._relativeSelectionPositionColumn,endRow=this._relativeSelectionPositionRow+this._relativeSelectionRowLength,endColumn=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength,isLighten=!1,isRowDropping=!0;if((column<startColumn||column>endColumn)&&row>=startRow&&row<=endRow){const rulerValue=this._fillRuler(column,startColumn,endColumn,this._relativeSelectionColumnLength,maxColumn);startColumn=rulerValue.startRowOrColumn,endColumn=rulerValue.endRowOrColumn,isLighten=rulerValue.isLighten,isRowDropping=!1}else if((row<startRow||row>endRow)&&column>=startColumn&&column<=endColumn){const rulerValue=this._fillRuler(row,startRow,endRow,this._relativeSelectionRowLength,maxRow);startRow=rulerValue.startRowOrColumn,endRow=rulerValue.endRowOrColumn,isLighten=rulerValue.isLighten}else if(Math.abs(this._startOffsetX-moveRelativeCoords.x-scrollXY.x)/2>Math.abs(this._startOffsetY-moveRelativeCoords.y-scrollXY.y)){const rulerValue=this._fillRuler(column,startColumn,endColumn,this._relativeSelectionColumnLength,maxColumn);startColumn=rulerValue.startRowOrColumn,endColumn=rulerValue.endRowOrColumn,isLighten=rulerValue.isLighten,isRowDropping=!1}else{const rulerValue=this._fillRuler(row,startRow,endRow,this._relativeSelectionRowLength,maxRow);startRow=rulerValue.startRowOrColumn,endRow=rulerValue.endRowOrColumn,isLighten=rulerValue.isLighten}const startCell=this._skeleton.getNoMergeCellPositionByIndex(startRow,startColumn),endCell=this._skeleton.getNoMergeCellPositionByIndex(endRow,endColumn),startY=(startCell==null?void 0:startCell.startY)||0,endY=(endCell==null?void 0:endCell.endY)||0,startX=(startCell==null?void 0:startCell.startX)||0,endX=(endCell==null?void 0:endCell.endX)||0;isLighten?this._controlHandler((o,index)=>{const newColor=new core.ColorKit(this._fillControlColors[index]).lighten(SELECTION_CONTROL_DELETING_LIGHTEN).toRgbString();o.setProps({fill:newColor})}):this._controlHandler((o,index)=>{o.setProps({fill:this._fillControlColors[index]})});const SELECTION_CONTROL_BORDER_BUFFER_WIDTH_SCALE=sheets.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/this._getScale();startRow===endRow&&isRowDropping===!0||startColumn===endColumn&&isRowDropping===!1?(_a61=this._helperSelection)==null||_a61.hide():((_b=this._helperSelection)==null||_b.transformByState({left:startX-SELECTION_CONTROL_BORDER_BUFFER_WIDTH_SCALE/2,top:startY-SELECTION_CONTROL_BORDER_BUFFER_WIDTH_SCALE/2,width:endX-startX,height:endY-startY}),(_c=this._helperSelection)==null||_c.show()),this._targetSelection={startY,endY,startX,endX,startRow,endRow,startColumn,endColumn},this._control.selectionFilling$.next(this._targetSelection)}_autoFillForPointerdown(evt){const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,scene=this._scene,relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords;this._startOffsetX=newEvtOffsetX,this._startOffsetY=newEvtOffsetY;const{startRow:originStartRow,startColumn:originStartColumn,endRow:originEndRow,endColumn:originEndColumn}=this._control.model;this._isInMergeState=this._hasMergeInRange(originStartRow,originStartColumn,originEndRow,originEndColumn),this._relativeSelectionPositionRow=originStartRow,this._relativeSelectionPositionColumn=originStartColumn,this._relativeSelectionRowLength=originEndRow-originStartRow,this._relativeSelectionColumnLength=originEndColumn-originStartColumn;const style=this._control.currentStyle;let stroke=style==null?void 0:style.stroke,strokeWidth=style==null?void 0:style.strokeWidth;const defaultStyle=genNormalSelectionStyle(this._themeService);stroke==null&&(stroke=defaultStyle.stroke),strokeWidth==null&&(strokeWidth=defaultStyle.strokeWidth);const scale=this._getScale();strokeWidth/=scale;const SELECTION_CONTROL_BORDER_BUFFER_WIDTH_SCALE=sheets.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/scale,darkenColor=new core.ColorKit(stroke).darken(2).toRgbString();this.isHelperSelection&&(this._helperSelection=new engineRender.Rect(HELPER_SELECTION_TEMP_NAME,{stroke:darkenColor,strokeWidth:strokeWidth+SELECTION_CONTROL_BORDER_BUFFER_WIDTH_SCALE/2}),scene.addObject(this._helperSelection)),this._activeViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY]));const viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),scrollTimer=engineRender.ScrollTimer.create(scene,this._activeViewport.viewportKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN?engineRender.ScrollTimerType.ALL:engineRender.ScrollTimerType.NONE);scrollTimer.startScroll(newEvtOffsetX,newEvtOffsetY,viewportMain),this._scrollTimer=scrollTimer,scene.disableObjectsEvent(),this._controlHandler(o=>{this._fillControlColors.push(o.fill)}),this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{var _a61;const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt,currentViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));if(!this._injector.get(ISheetSelectionRenderService).interceptor.fetchThroughInterceptors(RANGE_FILL_PERMISSION_CHECK)(!1,{x:evt.offsetX,y:evt.offsetY,skeleton:this._skeleton,scene:this._scene}))return;const{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._autoFillMoving(newMoveOffsetX,newMoveOffsetY),scene.setCursor(engineRender.CURSOR_TYPE.CROSSHAIR);const newSelection=this._targetSelection;if(viewportMain&&currentViewport&&((_a61=this._activeViewport)==null?void 0:_a61.viewportKey)!==(currentViewport==null?void 0:currentViewport.viewportKey)){let movingRange;newSelection.startRow!==originStartRow?(scrollTimer.scrollTimerType=engineRender.ScrollTimerType.Y,movingRange={...newSelection,endRow:newSelection.startRow}):newSelection.endRow!==originEndRow?(scrollTimer.scrollTimerType=engineRender.ScrollTimerType.Y,movingRange={...newSelection,startRow:newSelection.endRow}):newSelection.startColumn!==originStartColumn?(scrollTimer.scrollTimerType=engineRender.ScrollTimerType.X,movingRange={...newSelection,endColumn:newSelection.startColumn}):(scrollTimer.scrollTimerType=engineRender.ScrollTimerType.X,movingRange={...newSelection,startColumn:newSelection.endColumn}),this._isSelectionInViewport(movingRange,currentViewport)&&(viewportMain.scrollToBarPos({x:scrollTimer.scrollTimerType===engineRender.ScrollTimerType.X?0:void 0,y:scrollTimer.scrollTimerType===engineRender.ScrollTimerType.Y?0:void 0}),this._activeViewport=currentViewport)}scrollTimer.scrolling(newMoveOffsetX,newMoveOffsetY,()=>{this._autoFillMoving(newMoveOffsetX,newMoveOffsetY)})}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a61,_b;(_a61=this._helperSelection)==null||_a61.dispose();const scene2=this._scene;scene2.resetCursor(),this._clearObserverEvent(),scene2.enableObjectsEvent(),(_b=this._scrollTimer)==null||_b.dispose(),this._control.refreshSelectionFilled(this._targetSelection),this._isInMergeState=!1,this._controlHandler((o,index)=>{o.setProps({fill:this._fillControlColors[index]})}),this._fillControlColors=[]})}_hasMergeInRange(startRow,startColumn,endRow,endColumn){return this._skeleton.worksheet.getMergedCellRange(startRow,startColumn,endRow,endColumn).length>0}_swapPositions(startRow,startColumn,endRow,endColumn){const finalStartRow=Math.min(startRow,endRow),finalStartColumn=Math.min(startColumn,endColumn),finalEndRow=Math.max(startRow,endRow),finalEndColumn=Math.max(startColumn,endColumn);return{startRow:finalStartRow,startColumn:finalStartColumn,endRow:finalEndRow,endColumn:finalEndColumn}}_controlHandler(func){const{leftControl,rightControl,topControl,bottomControl,backgroundControlTop,backgroundControlMiddleLeft,backgroundControlMiddleRight,backgroundControlBottom,fillControl}=this._control,objects=[leftControl,rightControl,topControl,bottomControl,backgroundControlTop,backgroundControlMiddleLeft,backgroundControlMiddleRight,backgroundControlBottom,fillControl];for(let i=0,len=objects.length;i<len;i++){const object=objects[i];func(object,i)}}_fillRuler(rowOrColumn,startRowOrColumn,endRowOrColumn,rowOrColumnLength,maxRowOrColumn){let isLighten=!1;if(rowOrColumn<startRowOrColumn)if(this._isInMergeState&&rowOrColumn<startRowOrColumn){const current=startRowOrColumn-rowOrColumn,rangeRowCount=rowOrColumnLength+1,step=Math.ceil(current/rangeRowCount);let newStartRow=startRowOrColumn-step*rangeRowCount;newStartRow<0&&(newStartRow=startRowOrColumn-(step-1)*rangeRowCount),startRowOrColumn=newStartRow}else startRowOrColumn=rowOrColumn;else if(rowOrColumn>=startRowOrColumn&&rowOrColumn<=endRowOrColumn)isLighten=!0,this._isInMergeState||(endRowOrColumn=rowOrColumn);else if(this._isInMergeState&&rowOrColumn>endRowOrColumn){const current=rowOrColumn-endRowOrColumn,rangeRowCount=rowOrColumnLength+1,step=Math.ceil(current/rangeRowCount);let newEndRow=endRowOrColumn+step*rangeRowCount;newEndRow>maxRowOrColumn&&(newEndRow=endRowOrColumn+(step-1)*rangeRowCount),endRowOrColumn=newEndRow}else endRowOrColumn=rowOrColumn;return{rowOrColumn,startRowOrColumn,endRowOrColumn,isLighten}}_getScale(){const{scaleX,scaleY}=this._scene.getAncestorScale();return Math.max(scaleX,scaleY)}};__name(_SelectionShapeExtension,"SelectionShapeExtension");let SelectionShapeExtension=_SelectionShapeExtension;var SELECTION_MANAGER_KEY=(SELECTION_MANAGER_KEY2=>(SELECTION_MANAGER_KEY2.Selection="__SpreadsheetSelectionShape__",SELECTION_MANAGER_KEY2.top="__SpreadsheetSelectionTopControl__",SELECTION_MANAGER_KEY2.bottom="__SpreadsheetSelectionBottomControl__",SELECTION_MANAGER_KEY2.left="__SpreadsheetSelectionShapeLeftControl__",SELECTION_MANAGER_KEY2.right="__SpreadsheetSelectionShapeRightControl__",SELECTION_MANAGER_KEY2.backgroundTop="__SpreadsheetSelectionBackgroundControlTop__",SELECTION_MANAGER_KEY2.backgroundMiddleLeft="__SpreadsheetSelectionBackgroundControlMiddleLeft__",SELECTION_MANAGER_KEY2.backgroundMiddleRight="__SpreadsheetSelectionBackgroundControlMiddleRight__",SELECTION_MANAGER_KEY2.backgroundBottom="__SpreadsheetSelectionBackgroundControlBottom__",SELECTION_MANAGER_KEY2.fill="__SpreadsheetSelectionFillControl__",SELECTION_MANAGER_KEY2.fillTopLeft="__SpreadsheetSelectionFillControlTopLeft__",SELECTION_MANAGER_KEY2.fillBottomRight="__SpreadsheetSelectionFillControlBottomRight__",SELECTION_MANAGER_KEY2.fillTopLeftInner="__SpreadsheetSelectionFillControlTopLeftInner__",SELECTION_MANAGER_KEY2.fillBottomRightInner="__SpreadsheetSelectionFillControlBottomRightInner__",SELECTION_MANAGER_KEY2.lineMain="__SpreadsheetDragLineMainControl__",SELECTION_MANAGER_KEY2.lineContent="__SpreadsheetDragLineContentControl__",SELECTION_MANAGER_KEY2.line="__SpreadsheetDragLineControl__",SELECTION_MANAGER_KEY2.dash="__SpreadsheetDragDashControl__",SELECTION_MANAGER_KEY2.rowHeaderBackground="__SpreadSheetSelectionRowHeaderBackground__",SELECTION_MANAGER_KEY2.rowHeaderBorder="__SpreadSheetSelectionRowHeaderBorder__",SELECTION_MANAGER_KEY2.rowHeaderGroup="__SpreadSheetSelectionRowHeaderGroup__",SELECTION_MANAGER_KEY2.columnHeaderBackground="__SpreadSheetSelectionColumnHeaderBackground__",SELECTION_MANAGER_KEY2.columnHeaderBorder="__SpreadSheetSelectionColumnHeaderBorder__",SELECTION_MANAGER_KEY2.columnHeaderGroup="__SpreadSheetSelectionColumnHeaderGroup__",SELECTION_MANAGER_KEY2.topLeftWidget="__SpreadSheetSelectionTopLeftWidget__",SELECTION_MANAGER_KEY2.topCenterWidget="__SpreadSheetSelectionTopCenterWidget__",SELECTION_MANAGER_KEY2.topRightWidget="__SpreadSheetSelectionTopRightWidget__",SELECTION_MANAGER_KEY2.middleLeftWidget="__SpreadSheetSelectionMiddleLeftWidget__",SELECTION_MANAGER_KEY2.middleRightWidget="__SpreadSheetSelectionMiddleRightWidget__",SELECTION_MANAGER_KEY2.bottomLeftWidget="__SpreadSheetSelectionBottomLeftWidget__",SELECTION_MANAGER_KEY2.bottomCenterWidget="__SpreadSheetSelectionBottomCenterWidget__",SELECTION_MANAGER_KEY2.bottomRightWidget="__SpreadSheetSelectionBottomRightWidget__",SELECTION_MANAGER_KEY2))(SELECTION_MANAGER_KEY||{});const SELECTION_TITLE_HIGHLIGHT_ALPHA=.3,_SelectionControl=class _SelectionControl extends core.Disposable{constructor(_scene,_zIndex,_themeService,options){var _a61,_b,_c,_d;super();__publicField(this,"_isHelperSelection",!0);__publicField(this,"_enableAutoFill",!0);__publicField(this,"_showAutoFill",!1);__publicField(this,"_highlightHeader",!0);__publicField(this,"_selectionRenderModel");__publicField(this,"_leftBorder");__publicField(this,"_rightBorder");__publicField(this,"_topBorder");__publicField(this,"_bottomBorder");__publicField(this,"_backgroundControlTop");__publicField(this,"_backgroundControlBottom");__publicField(this,"_backgroundControlMiddleLeft");__publicField(this,"_backgroundControlMiddleRight");__publicField(this,"_autoFillControl");__publicField(this,"_selectionShapeGroup");__publicField(this,"_rowHeaderBackground");__publicField(this,"_rowHeaderBorder");__publicField(this,"_rowHeaderGroup");__publicField(this,"_columnHeaderBackground");__publicField(this,"_columnHeaderBorder");__publicField(this,"_columnHeaderGroup");__publicField(this,"_dashedRect");__publicField(this,"_topLeftWidget");__publicField(this,"_topCenterWidget");__publicField(this,"_topRightWidget");__publicField(this,"_middleLeftWidget");__publicField(this,"_middleRightWidget");__publicField(this,"_bottomLeftWidget");__publicField(this,"_bottomCenterWidget");__publicField(this,"_bottomRightWidget");__publicField(this,"_defaultStyle");__publicField(this,"_currentStyle");__publicField(this,"_rowHeaderWidth",0);__publicField(this,"_columnHeaderHeight",0);__publicField(this,"_widgetRects",[]);__publicField(this,"_controlExtension");__publicField(this,"_dispose$",new rxjs.BehaviorSubject(this));__publicField(this,"dispose$",this._dispose$.asObservable());__publicField(this,"selectionMoving$",new rxjs.Subject);__publicField(this,"selectionMoveEnd$",new rxjs.Subject);__publicField(this,"selectionScaling$",new rxjs.Subject);__publicField(this,"selectionScaled$",new rxjs.Subject);__publicField(this,"selectionFilling$",new rxjs.Subject);__publicField(this,"_selectionFilled$",new rxjs.Subject);__publicField(this,"selectionFilled$",this._selectionFilled$.asObservable());__publicField(this,"_antLineOffset",0);__publicField(this,"_antRequestNewFrame",-1);this._scene=_scene,this._zIndex=_zIndex,this._themeService=_themeService,this._enableAutoFill=(_a61=options==null?void 0:options.enableAutoFill)!=null?_a61:!0,this._highlightHeader=(_b=options==null?void 0:options.highlightHeader)!=null?_b:!0,this._rowHeaderWidth=(_c=options==null?void 0:options.rowHeaderWidth)!=null?_c:0,this._columnHeaderHeight=(_d=options==null?void 0:options.columnHeaderHeight)!=null?_d:0,this._initializeSheetBody(),this._initialHeader()}_initializeSheetBody(){this._defaultStyle=genNormalSelectionStyle(this._themeService),this._currentStyle=genNormalSelectionStyle(this._themeService),this._selectionRenderModel=new SelectionRenderModel;const zIndex=this._zIndex;this._leftBorder=new engineRender.Rect("__SpreadsheetSelectionShapeLeftControl__"+zIndex,{zIndex}),this._rightBorder=new engineRender.Rect("__SpreadsheetSelectionShapeRightControl__"+zIndex,{zIndex}),this._topBorder=new engineRender.Rect("__SpreadsheetSelectionTopControl__"+zIndex,{zIndex}),this._bottomBorder=new engineRender.Rect("__SpreadsheetSelectionBottomControl__"+zIndex,{zIndex}),this._backgroundControlTop=new engineRender.Rect("__SpreadsheetSelectionBackgroundControlTop__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._backgroundControlBottom=new engineRender.Rect("__SpreadsheetSelectionBackgroundControlBottom__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._backgroundControlMiddleLeft=new engineRender.Rect("__SpreadsheetSelectionBackgroundControlMiddleLeft__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._backgroundControlMiddleRight=new engineRender.Rect("__SpreadsheetSelectionBackgroundControlMiddleRight__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._autoFillControl=new engineRender.Rect("__SpreadsheetSelectionFillControl__"+zIndex,{zIndex:zIndex+1}),this._autoFillControl.hide(),this._dashedRect=new engineRender.DashedRect("__SpreadsheetDragDashControl__"+zIndex,{zIndex:zIndex+2,evented:!1,stroke:"#fff"});const shapes=[this._autoFillControl,this._leftBorder,this._rightBorder,this._topBorder,this._bottomBorder,this._backgroundControlTop,this._backgroundControlMiddleLeft,this._backgroundControlMiddleRight,this._backgroundControlBottom,this._dashedRect];this._widgetRects=this._initialWidget(),this._selectionShapeGroup=new engineRender.Group("__SpreadsheetSelectionShape__"+zIndex,...shapes,...this._widgetRects),this._selectionShapeGroup.hide(),this._selectionShapeGroup.evented=!1,this._selectionShapeGroup.zIndex=zIndex;const scene=this.getScene();scene.addObject(this._selectionShapeGroup,SHEET_COMPONENT_SELECTION_LAYER_INDEX),this.disposeWithMe(core.toDisposable(scene.onTransformChange$.subscribeEvent(state=>{state.type===engineRender.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale&&(this._updateLayoutOfSelectionControl(this._currentStyle),this._updateControlCoord())})))}_initialHeader(){const zIndex=this._zIndex;this._rowHeaderBackground=new engineRender.Rect("__SpreadSheetSelectionRowHeaderBackground__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._rowHeaderBorder=new engineRender.Rect("__SpreadSheetSelectionRowHeaderBorder__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._rowHeaderGroup=new engineRender.Group("__SpreadSheetSelectionRowHeaderGroup__"+zIndex,this._rowHeaderBackground,this._rowHeaderBorder),this._rowHeaderGroup.hide(),this._rowHeaderGroup.evented=!1,this._rowHeaderGroup.zIndex=zIndex,this._columnHeaderBackground=new engineRender.Rect("__SpreadSheetSelectionColumnHeaderBackground__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._columnHeaderBorder=new engineRender.Rect("__SpreadSheetSelectionColumnHeaderBorder__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._columnHeaderGroup=new engineRender.Group("__SpreadSheetSelectionColumnHeaderGroup__"+zIndex,this._columnHeaderBackground,this._columnHeaderBorder),this._columnHeaderGroup.hide(),this._columnHeaderGroup.evented=!1,this._columnHeaderGroup.zIndex=zIndex,this.getScene().addObjects([this._rowHeaderGroup,this._columnHeaderGroup],SHEET_COMPONENT_HEADER_SELECTION_LAYER_INDEX)}_initialWidget(){const zIndex=this._zIndex;return this._topLeftWidget=new engineRender.Rect("__SpreadSheetSelectionTopLeftWidget__"+zIndex,{zIndex:zIndex+1}),this._topCenterWidget=new engineRender.Rect("__SpreadSheetSelectionTopCenterWidget__"+zIndex,{zIndex:zIndex+1}),this._topRightWidget=new engineRender.Rect("__SpreadSheetSelectionTopRightWidget__"+zIndex,{zIndex:zIndex+1}),this._middleLeftWidget=new engineRender.Rect("__SpreadSheetSelectionMiddleLeftWidget__"+zIndex,{zIndex:zIndex+1}),this._middleRightWidget=new engineRender.Rect("__SpreadSheetSelectionMiddleRightWidget__"+zIndex,{zIndex:zIndex+1}),this._bottomLeftWidget=new engineRender.Rect("__SpreadSheetSelectionBottomLeftWidget__"+zIndex,{zIndex:zIndex+1}),this._bottomCenterWidget=new engineRender.Rect("__SpreadSheetSelectionBottomCenterWidget__"+zIndex,{zIndex:zIndex+1}),this._bottomRightWidget=new engineRender.Rect("__SpreadSheetSelectionBottomRightWidget__"+zIndex,{zIndex:zIndex+1}),[this._topLeftWidget,this._topCenterWidget,this._topRightWidget,this._middleLeftWidget,this._middleRightWidget,this._bottomLeftWidget,this._bottomCenterWidget,this._bottomRightWidget]}get zIndex(){return this._zIndex}get leftControl(){return this._leftBorder}get rightControl(){return this._rightBorder}get topControl(){return this._topBorder}get bottomControl(){return this._bottomBorder}get fillControl(){return this._autoFillControl}get backgroundControlTop(){return this._backgroundControlTop}get backgroundControlBottom(){return this._backgroundControlBottom}get backgroundControlMiddleLeft(){return this._backgroundControlMiddleLeft}get backgroundControlMiddleRight(){return this._backgroundControlMiddleRight}get selectionShape(){return this._selectionShapeGroup}get columnHeaderGroup(){return this._columnHeaderGroup}get rowHeaderGroup(){return this._rowHeaderGroup}get selectionShapeGroup(){return this._selectionShapeGroup}get model(){return this._selectionRenderModel}get topLeftWidget(){return this._topLeftWidget}get topCenterWidget(){return this._topCenterWidget}get topRightWidget(){return this._topRightWidget}get middleLeftWidget(){return this._middleLeftWidget}get middleRightWidget(){return this._middleRightWidget}get bottomLeftWidget(){return this._bottomLeftWidget}get bottomCenterWidget(){return this._bottomCenterWidget}get bottomRightWidget(){return this._bottomRightWidget}get themeService(){return this._themeService}get selectionModel(){return this._selectionRenderModel}set selectionModel(model){this._selectionRenderModel=model}get currentStyle(){return this._currentStyle}set currentStyle(style){this._currentStyle=style}get dashedRect(){return this._dashedRect}get isHelperSelection(){return this._isHelperSelection}get rowHeaderWidth(){return this._rowHeaderWidth}set rowHeaderWidth(width){this._rowHeaderWidth=width}get columnHeaderHeight(){return this._columnHeaderHeight}set columnHeaderHeight(height){this._columnHeaderHeight=height}setControlExtension(options){this._controlExtension=new SelectionShapeExtension(this,options)}setEvent(state){this.leftControl.evented=state,this.rightControl.evented=state,this.topControl.evented=state,this.bottomControl.evented=state}refreshSelectionFilled(val){this._selectionFilled$.next(val)}_updateLayoutOfSelectionControl(selectionStyle){selectionStyle&&(this.currentStyle=Object.assign({},this._defaultStyle,selectionStyle));const currentStyle=this.currentStyle,{stroke,widgets,autofillStroke:AutofillStroke,strokeDash,isAnimationDash}=currentStyle;let autofillSize=currentStyle.autofillSize,strokeWidth=currentStyle.strokeWidth,autofillStrokeWidth=currentStyle.autofillStrokeWidth;const scale=this._getScale(),leftAdjustWidth=(strokeWidth+sheets.SELECTION_CONTROL_BORDER_BUFFER_WIDTH)/2/scale;strokeWidth/=scale,autofillSize/=scale,autofillStrokeWidth/=scale<1?1:scale;const borderBuffer=sheets.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/scale,fixOnePixelBlurOffset=engineRender.FIX_ONE_PIXEL_BLUR_OFFSET/scale,{startX,startY,endX,endY}=this._selectionRenderModel;if(this.leftControl.transformByState({height:endY-startY,left:-leftAdjustWidth+fixOnePixelBlurOffset,width:strokeWidth,strokeWidth:borderBuffer,top:-borderBuffer/2+fixOnePixelBlurOffset}),this.leftControl.setProps({fill:stroke,stroke:sheets.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.rightControl.transformByState({height:endY-startY,left:endX-startX-leftAdjustWidth+fixOnePixelBlurOffset,width:strokeWidth,strokeWidth:borderBuffer,top:-borderBuffer/2+fixOnePixelBlurOffset}),this.rightControl.setProps({fill:stroke,stroke:sheets.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.topControl.transformByState({width:endX-startX+strokeWidth,top:-leftAdjustWidth+fixOnePixelBlurOffset,left:-leftAdjustWidth+fixOnePixelBlurOffset,height:strokeWidth,strokeWidth:borderBuffer}),this.topControl.setProps({fill:stroke,stroke:sheets.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.bottomControl.transformByState({width:endX-startX+strokeWidth,top:endY-startY-leftAdjustWidth+fixOnePixelBlurOffset,height:strokeWidth,left:-leftAdjustWidth+fixOnePixelBlurOffset,strokeWidth:borderBuffer}),this.bottomControl.setProps({fill:stroke,stroke:sheets.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),strokeDash==null)this.dashedRect.hide(),this._stopAntLineAnimation();else{const dashRectBorderWidth=currentStyle.strokeWidth*2/scale;this.dashedRect.transformByState({height:endY-startY,width:endX-startX,strokeWidth:dashRectBorderWidth,left:-dashRectBorderWidth/2+fixOnePixelBlurOffset,top:-dashRectBorderWidth/2+fixOnePixelBlurOffset}),this.dashedRect.setProps({strokeDashArray:[0,strokeDash/scale]}),this._stopAntLineAnimation(),isAnimationDash!==!1&&this._startAntLineAnimation(),this.dashedRect.show()}if(this._showAutoFill=this._showAutoFill&&this._enableAutoFill,this._showAutoFill&&!this._hasWidgets(widgets)){const fillProps={fill:stroke,stroke:AutofillStroke,strokeScaleEnabled:!1},sizeState={width:autofillSize-autofillStrokeWidth,height:autofillSize-autofillStrokeWidth,left:endX-startX-autofillSize/2+autofillStrokeWidth/2-fixOnePixelBlurOffset,top:endY-startY-autofillSize/2+autofillStrokeWidth/2-fixOnePixelBlurOffset,strokeWidth:autofillStrokeWidth};this._autoFillControl.setProps(fillProps),this._autoFillControl.transformByState(sizeState),this._autoFillControl.show()}else this._autoFillControl.hide();this._updateBackgroundControl(currentStyle),this._updateHeaderBackground(currentStyle),this._updateWidgets(currentStyle)}_updateControlCoord(){const{startX,startY}=this._selectionRenderModel;this.selectionShapeGroup.show(),this.selectionShapeGroup.translate(startX,startY),this.selectionShapeGroup.makeDirtyNoDebounce(!0)}updateStyle(style){this._updateLayoutOfSelectionControl(style),this._updateControlCoord()}updateRange(rangeWithCoord,primaryWithCoord){this._selectionRenderModel.setValue(rangeWithCoord,primaryWithCoord),this._showAutoFill=primaryWithCoord!==null,this._updateLayoutOfSelectionControl(),this._updateControlCoord()}updateRangeBySelectionWithCoord(selectionWthCoord,sk){sk&&(this._rowHeaderWidth=sk.getWorksheetConfig().rowHeader.width,this._columnHeaderHeight=sk.getWorksheetConfig().columnHeader.height),this._selectionRenderModel.setValue(selectionWthCoord.rangeWithCoord,selectionWthCoord.primaryWithCoord),this._showAutoFill=selectionWthCoord.primaryWithCoord!==null,this._updateLayoutOfSelectionControl(selectionWthCoord.style),this._updateControlCoord()}update(newSelectionRange,rowHeaderWidth=0,columnHeaderHeight=0,style,primaryCell){this._rowHeaderWidth=rowHeaderWidth,this._columnHeaderHeight=columnHeaderHeight,this.updateRangeBySelectionWithCoord({rangeWithCoord:newSelectionRange,primaryWithCoord:primaryCell,style}),style&&this.updateStyle(style)}updateCurrCell(primaryCell){this._showAutoFill=primaryCell!==null,this._selectionRenderModel.setCurrentCell(primaryCell)}clearHighlight(){this._showAutoFill=!1,this._selectionRenderModel.clearCurrentCell(),this._updateLayoutOfSelectionControl(this._currentStyle)}getScene(){return this._scene}dispose(){var _a61,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o,_p,_q,_r,_s,_t,_u,_v,_w,_x,_y;(_a61=this._leftBorder)==null||_a61.dispose(),(_b=this._rightBorder)==null||_b.dispose(),(_c=this._topBorder)==null||_c.dispose(),(_d=this._bottomBorder)==null||_d.dispose(),(_e=this._backgroundControlTop)==null||_e.dispose(),(_f=this._backgroundControlMiddleLeft)==null||_f.dispose(),(_g=this._backgroundControlMiddleRight)==null||_g.dispose(),(_h=this._backgroundControlBottom)==null||_h.dispose(),this._autoFillControl.dispose(),(_i=this._selectionShapeGroup)==null||_i.dispose(),(_j=this._rowHeaderBackground)==null||_j.dispose(),(_k=this._rowHeaderBorder)==null||_k.dispose(),(_l=this._rowHeaderGroup)==null||_l.dispose(),(_m=this._rowHeaderBackground)==null||_m.dispose(),(_n=this._columnHeaderBackground)==null||_n.dispose(),(_o=this._columnHeaderBorder)==null||_o.dispose(),(_p=this._columnHeaderGroup)==null||_p.dispose(),(_q=this._topLeftWidget)==null||_q.dispose(),(_r=this._topCenterWidget)==null||_r.dispose(),(_s=this._topRightWidget)==null||_s.dispose(),(_t=this._middleLeftWidget)==null||_t.dispose(),(_u=this._middleRightWidget)==null||_u.dispose(),(_v=this._bottomLeftWidget)==null||_v.dispose(),(_w=this._bottomCenterWidget)==null||_w.dispose(),(_x=this._bottomRightWidget)==null||_x.dispose(),(_y=this._controlExtension)==null||_y.dispose(),super.dispose(),this._dispose$.next(this),this._dispose$.complete()}getCurrentCellInfo(){const currentCell=this.model.currentCell;if(currentCell){let currentRangeData;if(currentCell.isMerged){const mergeInfo=currentCell.mergeInfo;currentRangeData={startRow:mergeInfo.startRow,endRow:mergeInfo.endRow,startColumn:mergeInfo.startColumn,endColumn:mergeInfo.endColumn,startX:mergeInfo.startX,endX:mergeInfo.endX,startY:mergeInfo.startY,endY:mergeInfo.endY}}else{const{actualRow,actualColumn,startX,endX,startY,endY}=currentCell;currentRangeData={startRow:actualRow,endRow:actualRow,startColumn:actualColumn,endColumn:actualColumn,startX,endX,startY,endY}}return currentRangeData}}getValue(){return{...this._selectionRenderModel.getValue(),style:this._currentStyle}}getRange(){return this._selectionRenderModel.getValue().rangeWithCoord}enableHelperSelection(){this._isHelperSelection=!0}disableHelperSelection(){this._isHelperSelection=!1}_updateHeaderBackground(style){const{startX,startY,endX,endY,rangeType}=this._selectionRenderModel,defaultStyle=this._currentStyle,scale=this._getScale(),{stroke,rowHeaderFill=defaultStyle.rowHeaderFill,rowHeaderStroke=defaultStyle.rowHeaderStroke,columnHeaderFill=defaultStyle.columnHeaderFill,columnHeaderStroke=defaultStyle.columnHeaderStroke}=style;let{rowHeaderStrokeWidth=defaultStyle.rowHeaderStrokeWidth,columnHeaderStrokeWidth=defaultStyle.columnHeaderStrokeWidth}=style;rowHeaderStrokeWidth/=scale,columnHeaderStrokeWidth/=scale;const rowHeaderWidth=this._rowHeaderWidth,columnHeaderHeight=this._columnHeaderHeight;if(this._highlightHeader&&columnHeaderHeight>0){let highlightTitleColor=columnHeaderFill;rangeType===core.RANGE_TYPE.COLUMN&&(highlightTitleColor=new core.ColorKit(stroke).setAlpha(SELECTION_TITLE_HIGHLIGHT_ALPHA).toString()),this._columnHeaderBackground.setProps({fill:highlightTitleColor}),this._columnHeaderBackground.resize(endX-startX,columnHeaderHeight),this._columnHeaderBorder.setProps({fill:columnHeaderStroke}),this._columnHeaderBorder.transformByState({width:endX-startX,height:columnHeaderStrokeWidth,top:columnHeaderHeight-columnHeaderStrokeWidth+1/scale}),this._columnHeaderGroup.show(),this._columnHeaderGroup.translate(startX,0)}else this._columnHeaderGroup.hide();if(this._columnHeaderGroup.makeDirty(!0),this._highlightHeader&&rowHeaderWidth>0){let highlightTitleColor=rowHeaderFill;rangeType===core.RANGE_TYPE.ROW&&(highlightTitleColor=new core.ColorKit(stroke).setAlpha(SELECTION_TITLE_HIGHLIGHT_ALPHA).toString()),this._rowHeaderBackground.setProps({fill:highlightTitleColor}),this._rowHeaderBackground.resize(rowHeaderWidth,endY-startY),this._rowHeaderBorder.setProps({fill:rowHeaderStroke}),this._rowHeaderBorder.transformByState({width:rowHeaderStrokeWidth,height:endY-startY,left:rowHeaderWidth-rowHeaderStrokeWidth+1/scale}),this._rowHeaderGroup.show(),this._rowHeaderGroup.translate(0,startY)}else this._rowHeaderGroup.hide();this._rowHeaderGroup.makeDirty(!0)}_updateBackgroundControl(style){const{startX,startY,endX,endY}=this._selectionRenderModel,scale=this._getScale(),{fill=style.fill}=style;let{strokeWidth}=style;strokeWidth/=scale;const highlightSelection=this._selectionRenderModel.highlightToSelection();if(!highlightSelection){this._backgroundControlTop.resize(endX-startX,endY-startY),this._backgroundControlTop.setProps({fill}),this._backgroundControlBottom.resize(0,0),this._backgroundControlMiddleLeft.resize(0,0),this._backgroundControlMiddleRight.resize(0,0);return}const{startX:h_startX,startY:h_startY,endX:h_endX,endY:h_endY}=highlightSelection,strokeOffset=strokeWidth/2,topConfig={left:-strokeOffset,top:-strokeOffset,width:endX-startX+strokeOffset*2,height:h_startY-startY+strokeOffset};topConfig.height<0&&(topConfig.width=0,topConfig.height=0),this._backgroundControlTop.transformByState(topConfig);const middleLeftConfig={left:-strokeOffset,top:h_startY-startY,width:h_startX-startX+strokeOffset,height:h_endY-h_startY};middleLeftConfig.width<0&&(middleLeftConfig.width=0,middleLeftConfig.height=0),this._backgroundControlMiddleLeft.transformByState(middleLeftConfig);const middleRightConfig={left:h_endX-startX-strokeOffset,top:h_startY-startY,width:endX-h_endX+strokeOffset*2,height:h_endY-h_startY};middleRightConfig.width<0&&(middleRightConfig.width=0,middleRightConfig.height=0),this._backgroundControlMiddleRight.transformByState(middleRightConfig);const middleBottomConfig={left:-strokeOffset,top:h_endY-startY,width:endX-startX+strokeOffset*2,height:endY-h_endY+strokeOffset};middleBottomConfig.height<0&&(middleBottomConfig.width=0,middleBottomConfig.height=0),this._backgroundControlBottom.transformByState(middleBottomConfig),this._backgroundControlTop.setProps({fill}),this._backgroundControlMiddleLeft.setProps({fill}),this._backgroundControlMiddleRight.setProps({fill}),this._backgroundControlBottom.setProps({fill})}_updateWidgets(style){const{startX,startY,endX,endY}=this._selectionRenderModel,{stroke=style.stroke,widgets=style.widgets,widgetStroke=style.widgetStroke}=style,scale=this._getScale();let{widgetSize,widgetStrokeWidth}=style;widgetSize/=scale,widgetStrokeWidth/=scale;const position={left:-widgetSize/2+widgetStrokeWidth/2,center:(endX-startX)/2-widgetSize/2+widgetStrokeWidth/2,right:endX-startX-widgetSize/2+widgetStrokeWidth/2,top:-widgetSize/2,middle:(endY-startY)/2-widgetSize/2,bottom:endY-startY-widgetSize/2+widgetStrokeWidth/2},size=widgetSize-widgetStrokeWidth;this._widgetRects.forEach(widget=>{widget.setProps({fill:stroke,stroke:widgetStroke})}),widgets.tl===!0?(this._topLeftWidget.transformByState({height:size,width:size,left:position.left,top:position.top,strokeWidth:widgetStrokeWidth}),this._topLeftWidget.show()):this._topLeftWidget.hide(),widgets.tc===!0?(this._topCenterWidget.transformByState({height:size,width:size,left:position.center,top:position.top,strokeWidth:widgetStrokeWidth}),this._topCenterWidget.show()):this._topCenterWidget.hide(),widgets.tr===!0?(this._topRightWidget.transformByState({height:size,width:size,left:position.right,top:position.top,strokeWidth:widgetStrokeWidth}),this._topRightWidget.show()):this._topRightWidget.hide(),widgets.ml===!0?(this._middleLeftWidget.transformByState({height:size,width:size,left:position.left,top:position.middle,strokeWidth:widgetStrokeWidth}),this._middleLeftWidget.show()):this._middleLeftWidget.hide(),widgets.mr===!0?(this._middleRightWidget.transformByState({height:size,width:size,left:position.right,top:position.middle,strokeWidth:widgetStrokeWidth}),this._middleRightWidget.show()):this._middleRightWidget.hide(),widgets.bl===!0?(this._bottomLeftWidget.transformByState({height:size,width:size,left:position.left,top:position.bottom,strokeWidth:widgetStrokeWidth}),this._bottomLeftWidget.show()):this._bottomLeftWidget.hide(),widgets.bc===!0?(this._bottomCenterWidget.transformByState({height:size,width:size,left:position.center,top:position.bottom,strokeWidth:widgetStrokeWidth}),this._bottomCenterWidget.show()):this._bottomCenterWidget.hide(),widgets.br===!0?(this._bottomRightWidget.transformByState({height:size,width:size,left:position.right,top:position.bottom,strokeWidth:widgetStrokeWidth}),this._bottomRightWidget.show()):this._bottomRightWidget.hide()}_hasWidgets(widgets){if(widgets==null)return!1;const keys=Object.keys(widgets);if(keys.length===0)return!1;for(const key of keys)if(widgets[key]===!0)return!0;return!1}_getScale(){const{scaleX,scaleY}=this._scene.getAncestorScale();return Math.max(scaleX,scaleY)}_stopAntLineAnimation(){this._antLineOffset=0,engineRender.cancelRequestFrame(this._antRequestNewFrame)}_startAntLineAnimation(){const scale=this._getScale();this._antLineOffset+=.6/scale,this._antLineOffset>160/scale&&(this._antLineOffset=0),this.dashedRect.setProps({strokeDashOffset:-this._antLineOffset}),this._antRequestNewFrame=engineRender.requestNewFrame(()=>{this._startAntLineAnimation()})}};__name(_SelectionControl,"SelectionControl");let SelectionControl=_SelectionControl;const _SelectionLayer=class _SelectionLayer extends engineRender.Layer{render(ctx,isMaxLayer=!1){const startTime=core.Tools.now();return super.render(ctx,isMaxLayer),this._afterRender(startTime),this}_afterRender(startTime){this.scene.getEngine().renderFrameTimeMetric$.next(["selectionLayer",core.Tools.now()-startTime])}};__name(_SelectionLayer,"SelectionLayer");let SelectionLayer=_SelectionLayer;const ISheetSelectionRenderService=core.createIdentifier("univer.sheet.selection-render-service"),_BaseSelectionRenderService=class _BaseSelectionRenderService extends core.Disposable{constructor(_injector,_themeService,_shortcutService,_sheetSkeletonManagerService,contextService){super();__publicField(this,"_downObserver");__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_controlFillConfig$",new rxjs.BehaviorSubject(null));__publicField(this,"controlFillConfig$",this._controlFillConfig$.asObservable());__publicField(this,"_selectionControls",[]);__publicField(this,"_startRangeWhenPointerDown",{startY:0,endY:0,startX:0,endX:0,startRow:-1,endRow:-1,startColumn:-1,endColumn:-1});__publicField(this,"_activeControlIndex",-1);__publicField(this,"_startViewportPosX",0);__publicField(this,"_startViewportPosY",0);__publicField(this,"_scrollTimer");__publicField(this,"_cancelDownSubscription");__publicField(this,"_cancelUpSubscription");__publicField(this,"_skeleton");__publicField(this,"_scene");__publicField(this,"_highlightHeader",!0);__publicField(this,"_rangeType",core.RANGE_TYPE.NORMAL);__publicField(this,"_selectionStyle");__publicField(this,"_remainLastEnabled",!1);__publicField(this,"_skipLastEnabled",!1);__publicField(this,"_singleSelectionEnabled",!1);__publicField(this,"_selectionMoveEnd$",new rxjs.BehaviorSubject([]));__publicField(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());__publicField(this,"_selectionMoving$",new rxjs.Subject);__publicField(this,"selectionMoving$",this._selectionMoving$.asObservable());__publicField(this,"_selectionMoveStart$",new rxjs.Subject);__publicField(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());__publicField(this,"_selectionMoving",!1);__publicField(this,"_selectionTheme");__publicField(this,"_activeViewport");__publicField(this,"interceptor",new core.InterceptorManager({RANGE_MOVE_PERMISSION_CHECK,RANGE_FILL_PERMISSION_CHECK}));__publicField(this,"_escapeShortcutDisposable",null);this._injector=_injector,this._themeService=_themeService,this._shortcutService=_shortcutService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this.contextService=contextService,this._initSelectionThemeFromThemeService(),this._initMoving()}get selectionMoving(){return this._selectionMoving}get _shouldDetectMergedCells(){return this._rangeType===core.RANGE_TYPE.NORMAL}_initMoving(){this.disposeWithMe(this._selectionMoving$.subscribe(()=>{this._selectionMoving=!0})),this.disposeWithMe(this._selectionMoveEnd$.subscribe(()=>{this._selectionMoving=!1}))}_setSelectionStyle(style){this._selectionStyle=style}getViewPort(){return this._activeViewport}setSingleSelectionEnabled(enabled=!1){this._singleSelectionEnabled=enabled}newSelectionControl(scene,skeleton,selection){const zIndex=this.getSelectionControls().length,{rowHeaderWidth,columnHeaderHeight}=skeleton,control=new SelectionControl(scene,zIndex,this._selectionTheme,{highlightHeader:this._highlightHeader,rowHeaderWidth,columnHeaderHeight});this._selectionControls.push(control);const selectionWithCoord=attachSelectionWithCoord(selection,skeleton);return control.updateRangeBySelectionWithCoord(selectionWithCoord,skeleton),control.setControlExtension({skeleton,scene,themeService:this._selectionTheme,injector:this._injector,selectionHooks:{selectionMoveEnd:__name(()=>{this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())},"selectionMoveEnd")}}),control}resetSelectionsByModelData(selectionsWithStyleList){const allSelectionControls=this.getSelectionControls(),skeleton=this._skeleton;if(!(!allSelectionControls||!skeleton)){for(let i=0,len=selectionsWithStyleList.length;i<len;i++){const selectionWithStyle=selectionsWithStyleList[i],selectionWithCoord=attachSelectionWithCoord(selectionWithStyle,this._skeleton),control=allSelectionControls[i];control?control.updateRangeBySelectionWithCoord(selectionWithCoord,skeleton):this.isSelectionEnabled()&&this.newSelectionControl(this._scene,skeleton,selectionWithStyle)}selectionsWithStyleList.length<allSelectionControls.length&&allSelectionControls.splice(selectionsWithStyleList.length).forEach(control=>control.dispose())}}refreshSelectionMoveStart(){this._selectionMoveStart$.next(this.getSelectionDataWithStyle())}refreshSelectionMoveEnd(){this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}_initSelectionThemeFromThemeService(){const currTheme=this._themeService.getCurrentTheme();this._selectionTheme=new core.ThemeService,this._selectionTheme.setTheme(currTheme)}setSelectionTheme(prop){this._selectionTheme.setTheme(prop)}_changeRuntime(skeleton,scene,viewport){this._skeleton=skeleton,this._scene=scene,this._activeViewport=viewport||(scene==null?void 0:scene.getViewports()[0]),scene.findLayerByZIndex(SHEET_COMPONENT_SELECTION_LAYER_INDEX)||scene.addLayer(new SelectionLayer(scene,[],SHEET_COMPONENT_SELECTION_LAYER_INDEX))}getSkeleton(){return this._skeleton}getSelectionDataWithStyle(){const selectionControls=this._selectionControls,[unitId,sheetId]=this._skeleton.getLocation();return selectionControls.map(control=>{const v=control.getValue();return v.rangeWithCoord.sheetId=sheetId,v.rangeWithCoord.unitId=unitId,v})}getSelectionControls(){return this._selectionControls}_addSelectionControlByModelData(selectionWithStyle){var _a61;const skeleton=this._skeleton,style=(_a61=selectionWithStyle.style)!=null?_a61:genNormalSelectionStyle(this._selectionTheme),scene=this._scene;return selectionWithStyle.style=style,this.newSelectionControl(scene,skeleton,selectionWithStyle)}_clearAllSelectionControls(){const allSelectionControls=this._selectionControls;for(const control of allSelectionControls)control.dispose();this._selectionControls.length=0}_getFreeze(){var _a61;return(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton.getWorksheetConfig().freeze}_getViewportByCell(row,column){if(row===void 0||column===void 0)return null;const freeze=this._getFreeze();if(!freeze||freeze.startRow<=0&&freeze.startColumn<=0)return this._scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(row>freeze.startRow&&column>freeze.startColumn)return this._scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(row<=freeze.startRow&&column<=freeze.startColumn)return this._scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(row<=freeze.startRow&&column>freeze.startColumn)return this._scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(row>freeze.startRow&&column<=freeze.startColumn)return this._scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)}getActiveRange(){const controls=this.getSelectionControls(),model=controls&&controls[controls.length-1].model;return model&&{startRow:model.startRow,startColumn:model.startColumn,endRow:model.endRow,endColumn:model.endColumn}}setActiveSelectionIndex(index){this._activeControlIndex=index}resetActiveSelectionIndex(){this._activeControlIndex=-1}getActiveSelectionControl(){const controls=this.getSelectionControls();if(controls)return this._activeControlIndex<0?controls[controls.length-1]:controls[this._activeControlIndex]}endSelection(){var _a61;this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),(_a61=this._escapeShortcutDisposable)==null||_a61.dispose(),this._escapeShortcutDisposable=null}_reset(){var _a61;this._clearAllSelectionControls(),(_a61=this._downObserver)==null||_a61.unsubscribe(),this._downObserver=null}_setupPointerMoveListener(viewportMain,activeSelectionControl,rangeType,scrollTimerType=engineRender.ScrollTimerType.ALL,moveStartPosX,moveStartPosY){var _a61,_b;let xCrossTime=0,yCrossTime=0,lastX=moveStartPosX,lastY=moveStartPosY;this._scrollTimer=engineRender.ScrollTimer.create(this._scene,scrollTimerType),this._scrollTimer.startScroll((_a61=viewportMain==null?void 0:viewportMain.left)!=null?_a61:0,(_b=viewportMain==null?void 0:viewportMain.top)!=null?_b:0,viewportMain);const scene=this._scene,startViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([moveStartPosX,moveStartPosY]));this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{var _a62,_b2,_c,_d,_e,_f,_g,_h,_i;const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt,{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._movingHandler(newMoveOffsetX,newMoveOffsetY,activeSelectionControl,rangeType);let scrollOffsetX=newMoveOffsetX,scrollOffsetY=newMoveOffsetY;const currentSelection=this.getActiveSelectionControl(),freeze=this._getFreeze(),selection=currentSelection==null?void 0:currentSelection.model,endViewport=(_a62=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY])))!=null?_a62:this._getViewportByCell(selection==null?void 0:selection.endRow,selection==null?void 0:selection.endColumn);if(__name(()=>{if(!startViewport||!endViewport||!viewportMain)return!1;const crossableViewports=[engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN,engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP,engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP,engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT];return crossableViewports.includes(startViewport.viewportKey)&&crossableViewports.includes(endViewport.viewportKey)},"isCrossableViewports")()){if(!startViewport||!endViewport||!viewportMain)return!1;const isCrossingX=lastX<viewportMain.left&&newMoveOffsetX>viewportMain.left||lastX>viewportMain.left&&newMoveOffsetX<viewportMain.left,isCrossingY=lastY<viewportMain.top&&newMoveOffsetY>viewportMain.top||lastY>viewportMain.top&&newMoveOffsetY<viewportMain.top;isCrossingX&&(xCrossTime+=1),isCrossingY&&(yCrossTime+=1);const startKey=startViewport.viewportKey,endKey=endViewport.viewportKey;if(startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP)moveOffsetY<viewportMain.top&&((_b2=selection==null?void 0:selection.endRow)!=null?_b2:0)<((_c=freeze==null?void 0:freeze.startRow)!=null?_c:0)?scrollOffsetY=viewportMain.top:isCrossingY&&yCrossTime%2===1&&viewportMain.scrollToViewportPos({viewportScrollY:0});else if(startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT)moveOffsetX<viewportMain.left&&((_d=selection==null?void 0:selection.endColumn)!=null?_d:0)<((_e=freeze==null?void 0:freeze.startColumn)!=null?_e:0)?scrollOffsetX=viewportMain.left:isCrossingX&&xCrossTime%2===1&&viewportMain.scrollToViewportPos({viewportScrollX:0});else if(startKey===endKey){let disableX=!1,disableY=!1;startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP?(disableX=!0,disableY=!0):startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP?disableY=!0:startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT&&(disableX=!0),((_f=selection==null?void 0:selection.endRow)!=null?_f:0)>((_g=freeze==null?void 0:freeze.startRow)!=null?_g:0)&&(disableY=!1),((_h=selection==null?void 0:selection.endColumn)!=null?_h:0)>((_i=freeze==null?void 0:freeze.startColumn)!=null?_i:0)&&(disableX=!1),disableX&&(scrollOffsetX=viewportMain.left),disableY&&(scrollOffsetY=viewportMain.top)}else{const startXY={x:startViewport.scrollX,y:startViewport.scrollY},endXY={x:endViewport.scrollX,y:endViewport.scrollY},shouldResetX=startXY.x!==endXY.x&&isCrossingX&&xCrossTime%2===1,shouldResetY=startXY.y!==endXY.y&&isCrossingY&&yCrossTime%2===1;(shouldResetX||shouldResetY)&&(viewportMain.scrollToBarPos({x:shouldResetX?startXY.x:void 0,y:shouldResetY?startXY.y:void 0}),shouldResetX||(scrollOffsetX=viewportMain.left),shouldResetY||(scrollOffsetY=viewportMain.top)),(startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&endKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||endKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)&&(scrollOffsetX=viewportMain.left),(startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&endKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||endKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP)&&(scrollOffsetY=viewportMain.top)}lastX=newMoveOffsetX,lastY=newMoveOffsetY}this._scrollTimer.scrolling(scrollOffsetX,scrollOffsetY,()=>{this._movingHandler(newMoveOffsetX,newMoveOffsetY,activeSelectionControl,rangeType)})})}attachSelectionWithCoord(selectionWithStyle){return attachSelectionWithCoord(selectionWithStyle,this._skeleton)}attachPrimaryWithCoord(primary){return attachPrimaryWithCoord(this._skeleton,primary)}getSelectionCellByPosition(x,y){return this.getCellWithCoordByOffset(x,y)}getCellWithCoordByOffset(x,y,skeletonParam){const scene=this._scene,skeleton=skeletonParam!=null?skeletonParam:this._skeleton,scrollXY=scene.getViewportScrollXY(scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX,scaleY}=scene.getAncestorScale();return skeleton.getCellWithCoordByOffset(x,y,scaleX,scaleY,scrollXY)}_movingHandler(offsetX,offsetY,activeSelectionControl,rangeType){var _a61,_b,_c,_d,_e;const skeleton=this._skeleton,scene=this._scene,[unitId,sheetId]=skeleton.getLocation(),currSelectionRange={startRow:(_a61=activeSelectionControl==null?void 0:activeSelectionControl.model.startRow)!=null?_a61:-1,endRow:(_b=activeSelectionControl==null?void 0:activeSelectionControl.model.endRow)!=null?_b:-1,startColumn:(_c=activeSelectionControl==null?void 0:activeSelectionControl.model.startColumn)!=null?_c:-1,endColumn:(_d=activeSelectionControl==null?void 0:activeSelectionControl.model.endColumn)!=null?_d:-1,unitId,sheetId},viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),targetViewport=(_e=this._getViewportByCell(currSelectionRange.endRow,currSelectionRange.endColumn))!=null?_e:viewportMain,scrollXY=scene.getScrollXYInfoByViewport(engineRender.Vector2.FromArray([this._startViewportPosX,this._startViewportPosY]),targetViewport),{scaleX,scaleY}=scene.getAncestorScale();rangeType===core.RANGE_TYPE.ROW?offsetX=Number.POSITIVE_INFINITY:rangeType===core.RANGE_TYPE.COLUMN&&(offsetY=Number.POSITIVE_INFINITY);const currCell=this._skeleton.getCellByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY);if(!currCell)return;let newSelectionRange={startRow:Math.min(currCell.startRow,this._startRangeWhenPointerDown.startRow),startColumn:Math.min(currCell.startColumn,this._startRangeWhenPointerDown.startColumn),endRow:Math.max(currCell.endRow,this._startRangeWhenPointerDown.endRow),endColumn:Math.max(currCell.endColumn,this._startRangeWhenPointerDown.endColumn)};this._shouldDetectMergedCells&&(newSelectionRange=skeleton.expandRangeByMerge(newSelectionRange));const newSelectionRangeWithCoord=attachSelectionWithCoord({range:newSelectionRange,primary:void 0,style:null},skeleton);newSelectionRangeWithCoord.rangeWithCoord.unitId=unitId,newSelectionRangeWithCoord.rangeWithCoord.sheetId=sheetId,newSelectionRangeWithCoord.rangeWithCoord.rangeType=rangeType;const rangeChanged=currSelectionRange.startRow!==newSelectionRange.startRow||currSelectionRange.startColumn!==newSelectionRange.startColumn||currSelectionRange.endRow!==newSelectionRange.endRow||currSelectionRange.endColumn!==newSelectionRange.endColumn;activeSelectionControl!=null&&rangeChanged&&(activeSelectionControl.updateRangeBySelectionWithCoord(newSelectionRangeWithCoord),this._selectionMoving$.next(this.getSelectionDataWithStyle()))}_clearUpdatingListeners(){var _a61,_b,_c,_d,_e;this._scene.enableObjectsEvent(),(_a61=this._scenePointerMoveSub)==null||_a61.unsubscribe(),this._scenePointerMoveSub=null,(_b=this._scenePointerUpSub)==null||_b.unsubscribe(),this._scenePointerUpSub=null,(_c=this._cancelDownSubscription)==null||_c.unsubscribe(),this._cancelDownSubscription=null,(_d=this._cancelUpSubscription)==null||_d.unsubscribe(),this._cancelUpSubscription=null,(_e=this._scrollTimer)==null||_e.dispose()}_addEndingListeners(){var _a61,_b,_c;const scene=this._scene,mainScene=(_a61=scene.getEngine())==null?void 0:_a61.activeScene;!mainScene||mainScene===scene||((_b=this._cancelDownSubscription)==null||_b.unsubscribe(),this._cancelDownSubscription=null,(_c=this._cancelUpSubscription)==null||_c.unsubscribe(),this._cancelUpSubscription=null,this._cancelDownSubscription=mainScene.onPointerDown$.subscribeEvent(()=>this._clearUpdatingListeners()),this._cancelUpSubscription=mainScene.onPointerUp$.subscribeEvent(()=>this._clearUpdatingListeners()))}_getSelectionWithCoordByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY){const skeleton=this._skeleton;if(skeleton==null)return null;if(this._shouldDetectMergedCells){const primaryWithCoord2=skeleton==null?void 0:skeleton.getCellWithCoordByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY,{firstMatch:!0});if(!primaryWithCoord2)return;const rangeWithCoord2=core.convertCellToRange(primaryWithCoord2);return{primaryWithCoord:primaryWithCoord2,rangeWithCoord:rangeWithCoord2}}const{row,column}=skeleton.getCellIndexByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY),startCell=skeleton.getNoMergeCellPositionByIndex(row,column),{startX,startY,endX,endY}=startCell,rangeWithCoord={startY,endY,startX,endX,startRow:row,endRow:row,startColumn:column,endColumn:column};return{primaryWithCoord:{mergeInfo:rangeWithCoord,actualRow:row,actualColumn:column,isMerged:!1,isMergedMainCell:!1,startY,endY,startX,endX},rangeWithCoord}}_checkClearPreviousControls(evt){this.getSelectionControls().length!==0&&(!evt.ctrlKey&&!evt.shiftKey&&!this._remainLastEnabled||this._singleSelectionEnabled&&!evt.shiftKey)&&this._clearAllSelectionControls()}_makeSelectionByTwoCells(currentCell,startSelectionRange,skeleton,rangeType,activeControl){const{actualRow,actualColumn,mergeInfo:actualMergeInfo}=currentCell;this._startRangeWhenPointerDown={...currentCell.mergeInfo};const newStartRow=Math.min(actualRow,startSelectionRange.startRow,actualMergeInfo.startRow),newEndRow=Math.max(actualRow,startSelectionRange.endRow,actualMergeInfo.endRow),newStartColumn=Math.min(actualColumn,startSelectionRange.startColumn,actualMergeInfo.startColumn),newEndColumn=Math.max(actualColumn,startSelectionRange.endColumn,actualMergeInfo.endColumn),selectionWithStyle={range:skeleton.expandRangeByMerge({startRow:newStartRow,startColumn:newStartColumn,endRow:newEndRow,endColumn:newEndColumn}),primary:null,style:null},selectionWithCoord=attachSelectionWithCoord(selectionWithStyle,skeleton);activeControl.updateRangeBySelectionWithCoord(selectionWithCoord)}isSelectionEnabled(){return this.contextService.getContextValue(sheets.SELECTIONS_ENABLED)}isSelectionDisabled(){return this.contextService.getContextValue(sheets.SELECTIONS_ENABLED)===!1}inRefSelectionMode(){return this.contextService.getContextValue(sheets.REF_SELECTIONS_ENABLED)}};__name(_BaseSelectionRenderService,"BaseSelectionRenderService");let BaseSelectionRenderService=_BaseSelectionRenderService;function selectionDataForSelectAll(skeleton){return{range:{startRow:0,startColumn:0,endRow:skeleton.getRowCount()-1,endColumn:skeleton.getColumnCount()-1,rangeType:core.RANGE_TYPE.ALL},primary:getTopLeftSelectionOfCurrSheet(skeleton).primary,style:null}}__name(selectionDataForSelectAll,"selectionDataForSelectAll");function getTopLeftSelectionOfCurrSheet(skeleton){return genSelectionByRange(skeleton,{startRow:0,startColumn:0,endRow:0,endColumn:0})}__name(getTopLeftSelectionOfCurrSheet,"getTopLeftSelectionOfCurrSheet");function genSelectionByRange(skeleton,range){const topLeftCell=skeleton.worksheet.getCellInfoInMergeData(range.startRow,range.startColumn),bottomRightCell=skeleton.worksheet.getCellInfoInMergeData(range.endRow,range.endColumn);return{range:{startRow:topLeftCell.startRow,startColumn:topLeftCell.startColumn,endRow:bottomRightCell.endRow,endColumn:bottomRightCell.endColumn,rangeType:core.RANGE_TYPE.NORMAL},primary:{actualRow:topLeftCell.startRow,actualColumn:topLeftCell.startColumn,startRow:topLeftCell.startRow,startColumn:topLeftCell.startColumn,endRow:topLeftCell.endRow,endColumn:topLeftCell.endColumn,isMerged:topLeftCell.isMerged,isMergedMainCell:topLeftCell.isMergedMainCell},style:null}}__name(genSelectionByRange,"genSelectionByRange");var __defProp$V=Object.defineProperty,__getOwnPropDesc$V=Object.getOwnPropertyDescriptor,__decorateClass$V=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$V(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$V(target,key,result),result},"__decorateClass$V"),__decorateParam$V=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$V"),_a;exports.SheetSkeletonManagerService=(_a=class extends core.Disposable{constructor(_context,_injector){super();__publicField(this,"_currentSkeletonSearchParam",{sheetId:""});__publicField(this,"_sheetSkeletonParam",[]);__publicField(this,"_currentSkeleton$",new rxjs.BehaviorSubject(null));__publicField(this,"currentSkeleton$",this._currentSkeleton$.asObservable());__publicField(this,"_currentSkeletonBefore$",new rxjs.BehaviorSubject(null));__publicField(this,"currentSkeletonBefore$",this._currentSkeletonBefore$.asObservable());this._context=_context,this._injector=_injector,this.disposeWithMe(()=>{this._currentSkeletonBefore$.complete(),this._currentSkeleton$.complete(),this._sheetSkeletonParam=[]}),this._initRemoveSheet()}_initRemoveSheet(){this.disposeWithMe(this._context.unit.sheetDisposed$.subscribe(sheet=>{this.disposeSkeleton({sheetId:sheet.getSheetId()})}))}getCurrentSkeleton(){var _a61;return(_a61=this.getCurrent())==null?void 0:_a61.skeleton}getCurrent(){return this._getSkeleton(this._currentSkeletonSearchParam)}getWorksheetSkeleton(sheetId){return this._getSkeleton({sheetId})}getUnitSkeleton(unitId,sheetId){const param=this._getSkeleton({sheetId});return param!=null&&(param.unitId=unitId),param}setCurrent(searchParam){this._setCurrent(searchParam)}_setCurrent(searchParam){const param=this._getSkeleton(searchParam),unitId=this._context.unitId;if(param!=null)this._reCalculate(param);else{const{sheetId:sheetId2}=searchParam,worksheet=this._context.unit.getSheetBySheetId(searchParam.sheetId);if(worksheet==null)return;const skeleton=this._buildSkeleton(worksheet);this._sheetSkeletonParam.push({unitId,sheetId:sheetId2,skeleton,dirty:!1})}this._currentSkeletonSearchParam=searchParam;const sheetId=this._currentSkeletonSearchParam.sheetId,sheetSkeletonManagerParam=this.getUnitSkeleton(unitId,sheetId);this._currentSkeletonBefore$.next(sheetSkeletonManagerParam),this._currentSkeleton$.next(sheetSkeletonManagerParam)}reCalculate(){const param=this.getCurrent();param!=null&&this._reCalculate(param)}_reCalculate(param){param.dirty&&(param.skeleton.makeDirty(!0),param.dirty=!1),param.skeleton.calculate()}makeDirty(searchParm,state=!0){const param=this._getSkeleton(searchParm);param!=null&&(param.dirty=state)}getOrCreateSkeleton(searchParam){const skeleton=this._getSkeleton(searchParam);if(skeleton)return skeleton.skeleton;const worksheet=this._context.unit.getSheetBySheetId(searchParam.sheetId);if(!worksheet)return;const newSkeleton=this._buildSkeleton(worksheet);return this._sheetSkeletonParam.push({unitId:this._context.unitId,sheetId:searchParam.sheetId,skeleton:newSkeleton,dirty:!1}),newSkeleton}disposeSkeleton(searchParm){const index=this._sheetSkeletonParam.findIndex(param=>param.sheetId===searchParm.sheetId);index>-1&&(this._sheetSkeletonParam[index].skeleton.dispose(),this._sheetSkeletonParam.splice(index,1))}attachRangeWithCoord(range){const skeleton=this.getCurrentSkeleton();return skeleton?attachRangeWithCoord(skeleton,range):null}_getSkeleton(searchParm){const item=this._sheetSkeletonParam.find(param=>param.sheetId===searchParm.sheetId);return item!=null&&(item.commandId=searchParm.commandId),item}_buildSkeleton(worksheet){return this._injector.createInstance(engineRender.SpreadsheetSkeleton,worksheet,this._context.unit.getStyles())}setColumnHeaderSize(render2,sheetId,size){var _a61;const skeleton=(_a61=this.getWorksheetSkeleton(sheetId))==null?void 0:_a61.skeleton;if(skeleton){skeleton.columnHeaderHeight=size,render2.scene.getViewports()[0].top=size,render2.scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT).setViewportSize({height:size}),render2.scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT).setViewportSize({height:size}),render2.scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM).setViewportSize({top:size}),render2.scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP).setViewportSize({top:size}),render2.scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP).setViewportSize({height:size});const selectionService=render2==null?void 0:render2.with(sheets.SheetsSelectionsService),selectionRenderService=render2==null?void 0:render2.with(ISheetSelectionRenderService),currSelections=selectionService.getCurrentSelections();selectionRenderService.resetSelectionsByModelData(currSelections);const sheetSkeletonManagerParam=this.getUnitSkeleton(render2.unitId,sheetId);this._currentSkeleton$.next(sheetSkeletonManagerParam)}}},__name(_a,"SheetSkeletonManagerService"),_a);exports.SheetSkeletonManagerService=__decorateClass$V([__decorateParam$V(1,core.Inject(core.Injector))],exports.SheetSkeletonManagerService);function useActiveWorkbook(){const univerInstanceService=core.useDependency(core.IUniverInstanceService),workbook=ui.useObservable(()=>univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),void 0,void 0,[]);return workbook!=null?workbook:null}__name(useActiveWorkbook,"useActiveWorkbook");function useActiveWorksheet(workbook){return ui.useObservable(()=>{var _a61;return(_a61=workbook==null?void 0:workbook.activeSheet$)!=null?_a61:rxjs.of(null)},void 0,void 0,[workbook])}__name(useActiveWorksheet,"useActiveWorksheet");function useWorkbooks(){const univerInstanceService=core.useDependency(core.IUniverInstanceService);return ui.useObservable(()=>rxjs.merge([univerInstanceService.getTypeOfUnitAdded$(core.UniverInstanceType.UNIVER_SHEET),univerInstanceService.getTypeOfUnitDisposed$(core.UniverInstanceType.UNIVER_SHEET)]).pipe(rxjs.map(()=>univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET)),rxjs.startWith(univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET))),[],void 0,[univerInstanceService])}__name(useWorkbooks,"useWorkbooks");function useSheetSkeleton(){const renderManagerService=core.useDependency(engineRender.IRenderManagerService),workbook=useActiveWorkbook(),{sheetSkeletonManagerService}=React.useMemo(()=>{if(workbook){const ru=renderManagerService.getRenderById(workbook.getUnitId());return{sheetSkeletonManagerService:ru==null?void 0:ru.with(exports.SheetSkeletonManagerService)}}return{sheetSkeletonManagerService:null}},[workbook,renderManagerService]);return sheetSkeletonManagerService}__name(useSheetSkeleton,"useSheetSkeleton");const SHEET_UI_PLUGIN_NAME="SheetUI";var SheetsUIPart=(SheetsUIPart2=>(SheetsUIPart2.FILTER_PANEL_EMBED_POINT="filter-panel-embed-point",SheetsUIPart2.SHEETS_FOOTER="sheets-footer",SheetsUIPart2.FORMULA_AUX="formula-aux",SheetsUIPart2))(SheetsUIPart||{}),__defProp$U=Object.defineProperty,__getOwnPropDesc$U=Object.getOwnPropertyDescriptor,__decorateClass$U=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$U(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$U(target,key,result),result},"__decorateClass$U"),__decorateParam$U=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$U");const AFFECT_LAYOUT_STYLES=["ff","fs","tr","tb"];var _a2;exports.AutoHeightController=(_a2=class extends core.Disposable{constructor(_renderManagerService,_sheetInterceptorService,_selectionManagerService,_univerInstanceService){super(),this._renderManagerService=_renderManagerService,this._sheetInterceptorService=_sheetInterceptorService,this._selectionManagerService=_selectionManagerService,this._univerInstanceService=_univerInstanceService,this._initialize()}getUndoRedoParamsOfAutoHeight(ranges){const{_univerInstanceService:univerInstanceService}=this,workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),sheetSkeletonService=this._renderManagerService.getRenderById(unitId).with(exports.SheetSkeletonManagerService);if(!subUnitId||!sheetSkeletonService.getCurrent())return{redos:[],undos:[]};const{skeleton}=sheetSkeletonService.getCurrent(),rowsAutoHeightInfo=skeleton.calculateAutoHeightInRange(ranges),redoParams={subUnitId,unitId,rowsAutoHeightInfo},undoParams=sheets.SetWorksheetRowAutoHeightMutationFactory(redoParams,worksheet);return{undos:[{id:sheets.SetWorksheetRowAutoHeightMutation.id,params:undoParams}],redos:[{id:sheets.SetWorksheetRowAutoHeightMutation.id,params:redoParams}]}}_initialize(){const{_sheetInterceptorService:sheetInterceptorService,_selectionManagerService:selectionManagerService}=this;this.disposeWithMe(sheetInterceptorService.interceptCommand({getMutations:__name(command=>{if(command.id===sheets.SetRangeValuesCommand.id){const params=command.params;return this.getUndoRedoParamsOfAutoHeight(params.range)}return{redos:[],undos:[]}},"getMutations")})),this.disposeWithMe(sheetInterceptorService.interceptCommand({getMutations:__name(command=>command.id!==sheets.SetWorksheetRowIsAutoHeightCommand.id?{redos:[],undos:[]}:this.getUndoRedoParamsOfAutoHeight(command.params.ranges),"getMutations")})),this.disposeWithMe(sheetInterceptorService.interceptCommand({getMutations:__name(command=>{var _a61,_b;if(command.id!==sheets.SetStyleCommand.id)return{redos:[],undos:[]};if(!AFFECT_LAYOUT_STYLES.includes((_a61=command.params)==null?void 0:_a61.style.type))return{redos:[],undos:[]};const selections=(_b=selectionManagerService.getCurrentSelections())==null?void 0:_b.map(s=>s.range);return selections!=null&&selections.length?this.getUndoRedoParamsOfAutoHeight(selections):{redos:[],undos:[]}},"getMutations")})),this.disposeWithMe(sheetInterceptorService.interceptAfterCommand({getMutations:__name(command=>{if(command.id===sheets.MoveRangeCommand.id){const params=command.params;return this.getUndoRedoParamsOfAutoHeight([params.fromRange,params.toRange])}if(command.id===sheets.ReorderRangeCommand.id){const params=command.params;return this.getUndoRedoParamsOfAutoHeight([params.range])}return{redos:[],undos:[]}},"getMutations")}))}},__name(_a2,"AutoHeightController"),_a2);exports.AutoHeightController=__decorateClass$U([__decorateParam$U(0,engineRender.IRenderManagerService),__decorateParam$U(1,core.Inject(sheets.SheetInterceptorService)),__decorateParam$U(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$U(3,core.Inject(core.IUniverInstanceService))],exports.AutoHeightController);function rangeToDiscreteRange(range,accessor,unitId,subUnitId){const univerInstanceService=accessor.get(core.IUniverInstanceService),workbook=unitId?univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_SHEET):univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=subUnitId?workbook==null?void 0:workbook.getSheetBySheetId(subUnitId):workbook==null?void 0:workbook.getActiveSheet();if(!worksheet)return null;const{startRow,endRow,startColumn,endColumn}=range,rows=[],cols=[];for(let r2=startRow;r2<=endRow;r2++)worksheet.getRowFiltered(r2)||rows.push(r2);for(let c=startColumn;c<=endColumn;c++)cols.push(c);return{rows,cols}}__name(rangeToDiscreteRange,"rangeToDiscreteRange");function discreteRangeToRange(discreteRange){const{rows,cols}=discreteRange;return{startRow:rows[0],endRow:rows[rows.length-1],startColumn:cols[0],endColumn:cols[cols.length-1]}}__name(discreteRangeToRange,"discreteRangeToRange");function virtualizeDiscreteRanges(ranges){let totalRows=[],totalCols=[];const totalRanges=[];return ranges.forEach(r2=>{totalRows=totalRows.concat(r2.rows),totalCols=totalCols.concat(r2.cols)}),totalRows=Array.from(new Set(totalRows)).sort((a,b)=>a-b),totalCols=Array.from(new Set(totalCols)).sort((a,b)=>a-b),ranges.forEach(r2=>{totalRanges.push({startRow:totalRows.findIndex(row=>row===r2.rows[0]),endRow:totalRows.findIndex(row=>row===r2.rows[r2.rows.length-1]),startColumn:totalCols.findIndex(col=>col===r2.cols[0]),endColumn:totalCols.findIndex(col=>col===r2.cols[r2.cols.length-1])})}),{ranges:totalRanges,mapFunc:__name((row,col)=>({row:totalRows[row],col:totalCols[col]}),"mapFunc")}}__name(virtualizeDiscreteRanges,"virtualizeDiscreteRanges");function generateNullCellValueRowCol(range){const cellValue=new core.ObjectMatrix;return range.forEach(r2=>{const{rows,cols}=r2;rows.forEach(i=>{cols.forEach(j=>{cellValue.setValue(i,j,{v:null,p:null,f:null,si:null,custom:null})})})}),cellValue.getData()}__name(generateNullCellValueRowCol,"generateNullCellValueRowCol");const chnNumChar={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},chnNumChar2=["零","一","二","三","四","五","六","七","八","九"],chnUnitSection=["","万","亿","万亿","亿亿"],chnUnitChar=["","十","百","千"],chnNameValue={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function chineseToNumber(chnStr){if(!chnStr)return 0;let rtn=0,section=0,number=0,secUnit=!1;const str=chnStr.split("");for(let i=0;i<str.length;i++){const num=chnNumChar[str[i]];if(typeof num<"u")number=num,i===str.length-1&&(section+=number);else{const obj=chnNameValue[str[i]],unit=obj.value;secUnit=obj.secUnit,secUnit?(section=(section+number)*unit,rtn+=section,section=0):section+=number*unit,number=0}}return rtn+section}__name(chineseToNumber,"chineseToNumber");function sectionToChinese(section){let strIns="",chnStr="",unitPos=0,zero=!0;for(;section>0;){const v=section%10;v===0?zero||(zero=!0,chnStr=chnNumChar2[v]+chnStr):(zero=!1,strIns=chnNumChar2[v],strIns+=chnUnitChar[unitPos],chnStr=strIns+chnStr),unitPos++,section=Math.floor(section/10)}return chnStr}__name(sectionToChinese,"sectionToChinese");function numberToChinese(num){let unitPos=0,strIns="",chnStr="",needZero=!1;if(num===0)return chnNumChar2[0];for(;num>0;){const section=num%1e4;needZero&&(chnStr=chnNumChar2[0]+chnStr),strIns=sectionToChinese(section),strIns+=section!==0?chnUnitSection[unitPos]:chnUnitSection[0],chnStr=strIns+chnStr,needZero=section<1e3&&section>0,num=Math.floor(num/1e4),unitPos++}return chnStr}__name(numberToChinese,"numberToChinese");function isChnNumber(txt){if(!txt)return!1;let isChnNumber2=!0;if(txt)if(txt.length===1)txt==="日"||txt in chnNumChar?isChnNumber2=!0:isChnNumber2=!1;else{const str=txt.split("");for(let i=0;i<str.length;i++)if(!(str[i]in chnNumChar||str[i]in chnNameValue)){isChnNumber2=!1;break}}return isChnNumber2}__name(isChnNumber,"isChnNumber");function matchExtendNumber(txt){if(!txt)return{isExtendNumber:!1};const reg=/0|([1-9]+[0-9]*)/g,isExtendNumber=reg.test(txt);if(isExtendNumber){const match=txt.match(reg);if(match&&match.length>0){const matchTxt=match[match.length-1],matchIndex=txt.lastIndexOf(matchTxt),beforeTxt=txt.substr(0,matchIndex),afterTxt=txt.substr(matchIndex+matchTxt.length);return{isExtendNumber:!0,matchTxt:Number(matchTxt),beforeTxt,afterTxt}}return{isExtendNumber:!1}}return{isExtendNumber}}__name(matchExtendNumber,"matchExtendNumber");function isChnWeek2(txt){let isChnWeek22;return txt.length===2&&(txt==="周一"||txt==="周二"||txt==="周三"||txt==="周四"||txt==="周五"||txt==="周六"||txt==="周日")?isChnWeek22=!0:isChnWeek22=!1,isChnWeek22}__name(isChnWeek2,"isChnWeek2");function isChnWeek3(txt){let isChnWeek32;return txt.length===3&&(txt==="星期一"||txt==="星期二"||txt==="星期三"||txt==="星期四"||txt==="星期五"||txt==="星期六"||txt==="星期日")?isChnWeek32=!0:isChnWeek32=!1,isChnWeek32}__name(isChnWeek3,"isChnWeek3");function getLenS(indexArr,rsd){let s=0;for(let j=0;j<indexArr.length&&indexArr[j]<rsd;j++)s++;return s}__name(getLenS,"getLenS");function isEqualDiff(arr){let diff=!0;const step=arr[1]-arr[0];for(let i=1;i<arr.length;i++)if(arr[i]-arr[i-1]!==step){diff=!1;break}return diff}__name(isEqualDiff,"isEqualDiff");function getDataIndex(csLen,asLen,indexArr){const obj=[],num=Math.floor(asLen/csLen),rsd=asLen%csLen;let sum=0;if(num>0){for(let i=0;i<num;i++)for(let j=0;j<indexArr.length;j++)obj[indexArr[j]+i*csLen]=sum,sum++;for(let a=0;a<indexArr.length&&indexArr[a]<rsd;a++)obj[indexArr[a]+csLen*num]=sum,sum++}else for(let a=0;a<indexArr.length&&indexArr[a]<rsd;a++)obj[indexArr[a]]=sum,sum++;return obj}__name(getDataIndex,"getDataIndex");function fillCopy(data,len){const applyData=[];for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]);removeCellCustom(d),applyData.push({v:null,s:null,p:null,f:null,si:null,t:null,...d})}return applyData}__name(fillCopy,"fillCopy");function fillCopyStyles(data,len){var _a61;const applyData=[];for(let i=1;i<=len;i++){const index=(i-1)%data.length,d={s:(_a61=data[index])==null?void 0:_a61.s};applyData.push(d)}return applyData}__name(fillCopyStyles,"fillCopyStyles");function isEqualRatio(arr){let ratio=!0;const step=arr[1]/arr[0];for(let i=1;i<arr.length;i++)if(arr[i]/arr[i-1]!==step){ratio=!1;break}return ratio}__name(isEqualRatio,"isEqualRatio");function getXArr(len){const xArr=[];for(let i=1;i<=len;i++)xArr.push(i);return xArr}__name(getXArr,"getXArr");function fillSeries(data,len,direction){var _a61,_b,_c,_d;const applyData=[],dataNumArr=[];for(let j=0;j<data.length;j++)dataNumArr.push(Number((_a61=data[j])==null?void 0:_a61.v));if(data.length>2&&isEqualRatio(dataNumArr))for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]);removeCellCustom(d);const num=Number((_b=data[data.length-1])==null?void 0:_b.v)*(Number((_c=data[1])==null?void 0:_c.v)/Number((_d=data[0])==null?void 0:_d.v))**i;d&&(needsUpdateCellValue(d)&&(d.v=num),applyData.push(d))}else{const xArr=getXArr(data.length);for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]);removeCellCustom(d);const forward=direction===core.Direction.DOWN||direction===core.Direction.RIGHT,y=forecast(data.length+i,dataNumArr,xArr,forward);d&&(needsUpdateCellValue(d)&&(d.v=y),applyData.push(d))}}return applyData}__name(fillSeries,"fillSeries");function forecast(x,yArr,xArr,forward=!0){function getAverage(arr){let sum=0;for(let i=0;i<arr.length;i++)sum+=arr[i];return sum/arr.length}__name(getAverage,"getAverage");const ax=getAverage(xArr),ay=getAverage(yArr);let sum_d=0,sum_n=0;for(let j=0;j<xArr.length;j++)sum_d+=(xArr[j]-ax)*(yArr[j]-ay),sum_n+=(xArr[j]-ax)*(xArr[j]-ax);let b;sum_n===0?b=forward?1:-1:b=sum_d/sum_n;const a=ay-b*ax;return Math.round((a+b*x)*1e5)/1e5}__name(forecast,"forecast");function fillExtendNumber(data,len,step){var _a61;const applyData=[],reg=/0|([1-9]+[0-9]*)/g;for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]);removeCellCustom(d);const last=`${(_a61=data[data.length-1])==null?void 0:_a61.v}`,match=last==null?void 0:last.match(reg),lastTxt=match==null?void 0:match[match.length-1],num=Math.abs(Number(lastTxt)+step*i);if(!last||!lastTxt)continue;const lastIndex=last.lastIndexOf(lastTxt),valueTxt=last.substr(0,lastIndex)+num.toString()+last.substr(lastIndex+lastTxt.length);d&&(d.v=valueTxt,applyData.push(d))}return applyData}__name(fillExtendNumber,"fillExtendNumber");function fillChnWeek(data,len,step,weekType=0){var _a61,_b;const keywordMap=[["日","一","二","三","四","五","六"],["周日","周一","周二","周三","周四","周五","周六"],["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]];if(weekType>=keywordMap.length)return[];const keyword=keywordMap[weekType],applyData=[];for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]);removeCellCustom(d);let num=0;if(((_a61=data[data.length-1])==null?void 0:_a61.v)===keyword[0])num=7+step*i;else{const last=`${(_b=data[data.length-1])==null?void 0:_b.v}`;if(last){const txt=last.substr(last.length-1,1);num=chineseToNumber(txt)+step*i}}num<0&&(num=Math.ceil(Math.abs(num)/7)*7+num);const rsd=num%7;d&&(d.v=keyword[rsd],applyData.push(d))}return applyData}__name(fillChnWeek,"fillChnWeek");function fillChnNumber(data,len,step){var _a61;const applyData=[];for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]);removeCellCustom(d);const formattedValue=`${(_a61=data[data.length-1])==null?void 0:_a61.v}`,num=chineseToNumber(formattedValue)+step*i;let txt;num<=0?txt="零":txt=numberToChinese(num),d&&(d.v=txt,applyData.push(d))}return applyData}__name(fillChnNumber,"fillChnNumber");const LOOP_SERIES={enWeek1:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],enWeek2:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],enMonth1:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],enMonth2:["January","February","March","April","May","June","July","August","September","October","November","December"],chnMonth1:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],chnMonth2:["正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","腊月"],chHour1:["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"],chHour2:["子时","丑时","寅时","卯时","辰时","巳时","午时","未时","申时","酉时","戌时","亥时"],chYear1:["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],chSeason1:["春","夏","秋","冬"],chSeason2:["春季","夏季","秋季","冬季"]};function isLoopSeries(txt){let isLoopSeries2=!1;return Object.keys(LOOP_SERIES).forEach(key=>{LOOP_SERIES[key].includes(txt)&&(isLoopSeries2=!0)}),isLoopSeries2}__name(isLoopSeries,"isLoopSeries");function getLoopSeriesInfo(txt){let name="";const series=[];return Object.keys(LOOP_SERIES).forEach(key=>{LOOP_SERIES[key].includes(txt)&&(name=key,series.push(...LOOP_SERIES[key]))}),{name,series}}__name(getLoopSeriesInfo,"getLoopSeriesInfo");function fillLoopSeries(data,len,step,series){var _a61;const seriesLen=series.length,applyData=[];for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]);removeCellCustom(d);const last=`${(_a61=data[data.length-1])==null?void 0:_a61.v}`;let num=series.indexOf(last)+step*i;num<0&&(num+=Math.abs(step)*seriesLen);const rsd=num%seriesLen;d&&(d.v=series[rsd],applyData.push(d))}return applyData}__name(fillLoopSeries,"fillLoopSeries");function getAutoFillRepeatRange(sourceRange,targetRange){const repeats=[];let direction;if(targetRange.startRow<sourceRange.startRow)direction=core.Direction.UP;else if(targetRange.endRow>sourceRange.endRow)direction=core.Direction.DOWN;else if(targetRange.startColumn<sourceRange.startColumn)direction=core.Direction.LEFT;else if(targetRange.endColumn>sourceRange.endColumn)direction=core.Direction.RIGHT;else return[];if(direction===core.Direction.DOWN||direction===core.Direction.UP){const sourceLength=sourceRange.endRow-sourceRange.startRow+1,targetLength=targetRange.endRow-targetRange.startRow+1,mod=Math.floor(targetLength/sourceLength),rest=targetLength%sourceLength,relativeRange={startRow:0,startColumn:0,endRow:sourceRange.endRow-sourceRange.startRow,endColumn:sourceRange.endColumn-sourceRange.startColumn};if(direction===core.Direction.DOWN){for(let i=0;i<mod;i++)repeats.push({repeatStartCell:{row:sourceRange.startRow+(i+1)*sourceLength,col:sourceRange.startColumn},relativeRange});rest>0&&repeats.push({repeatStartCell:{row:sourceRange.startRow+(mod+1)*sourceLength,col:sourceRange.startColumn},relativeRange:{startRow:0,startColumn:0,endRow:rest-1,endColumn:sourceRange.endColumn-sourceRange.startColumn}})}else{for(let i=0;i<mod;i++)repeats.push({repeatStartCell:{row:sourceRange.startRow-(i+1)*sourceLength,col:sourceRange.startColumn},relativeRange});rest>0&&repeats.push({repeatStartCell:{row:sourceRange.startRow-(mod+1)*sourceLength,col:sourceRange.startColumn},relativeRange:{startRow:sourceLength-rest,endRow:sourceLength-1,startColumn:0,endColumn:sourceRange.endColumn-sourceRange.startColumn}})}}if(direction===core.Direction.RIGHT||direction===core.Direction.LEFT){const sourceLength=sourceRange.endColumn-sourceRange.startColumn+1,targetLength=targetRange.endColumn-targetRange.startColumn+1,mod=Math.floor(targetLength/sourceLength),rest=targetLength%sourceLength,relativeRange={startRow:0,startColumn:0,endRow:sourceRange.endRow-sourceRange.startRow,endColumn:sourceRange.endColumn-sourceRange.startColumn};if(direction===core.Direction.RIGHT){for(let i=0;i<mod;i++)repeats.push({repeatStartCell:{row:sourceRange.startRow,col:sourceRange.startColumn+(i+1)*sourceLength},relativeRange});rest>0&&repeats.push({repeatStartCell:{row:sourceRange.startRow,col:sourceRange.startColumn+(mod+1)*sourceLength},relativeRange:{startRow:0,startColumn:0,endRow:sourceRange.endRow-sourceRange.startRow,endColumn:rest-1}})}else{for(let i=0;i<mod;i++)repeats.push({repeatStartCell:{row:sourceRange.startRow,col:sourceRange.startColumn-(i+1)*sourceLength},relativeRange});rest>0&&repeats.push({repeatStartCell:{row:sourceRange.startRow,col:sourceRange.startColumn-(mod+1)*sourceLength},relativeRange:{startRow:0,startColumn:sourceLength-rest,endRow:sourceRange.endRow-sourceRange.startRow,endColumn:sourceLength-1}})}}return repeats}__name(getAutoFillRepeatRange,"getAutoFillRepeatRange");function needsUpdateCellValue(cell){return!(core.isFormulaString(cell.f)||core.isFormulaId(cell.si)||cell.t===core.CellValueType.BOOLEAN)}__name(needsUpdateCellValue,"needsUpdateCellValue");function removeCellCustom(cell){cell&&"custom"in cell&&delete cell.custom}__name(removeCellCustom,"removeCellCustom");var AutoFillHookType=(AutoFillHookType2=>(AutoFillHookType2.Append="APPEND",AutoFillHookType2.Default="DEFAULT",AutoFillHookType2.Only="ONLY",AutoFillHookType2))(AutoFillHookType||{}),DATA_TYPE=(DATA_TYPE2=>(DATA_TYPE2.NUMBER="number",DATA_TYPE2.DATE="date",DATA_TYPE2.EXTEND_NUMBER="extendNumber",DATA_TYPE2.CHN_NUMBER="chnNumber",DATA_TYPE2.CHN_WEEK2="chnWeek2",DATA_TYPE2.CHN_WEEK3="chnWeek3",DATA_TYPE2.LOOP_SERIES="loopSeries",DATA_TYPE2.FORMULA="formula",DATA_TYPE2.OTHER="other",DATA_TYPE2))(DATA_TYPE||{}),APPLY_TYPE=(APPLY_TYPE2=>(APPLY_TYPE2.COPY="COPY",APPLY_TYPE2.SERIES="SERIES",APPLY_TYPE2.ONLY_FORMAT="ONLY_FORMAT",APPLY_TYPE2.NO_FORMAT="NO_FORMAT",APPLY_TYPE2))(APPLY_TYPE||{});const dateRule={type:DATA_TYPE.DATE,priority:1100,match:__name((cellData,accessor)=>{var _a61;if(cellData!=null&&cellData.f||cellData!=null&&cellData.si)return!1;if((typeof(cellData==null?void 0:cellData.v)=="number"||(cellData==null?void 0:cellData.t)===core.CellValueType.NUMBER)&&cellData.s){if(typeof cellData.s=="string"){const style=accessor.get(core.IUniverInstanceService).getFocusedUnit().getStyles().get(cellData.s),pattern=(_a61=style==null?void 0:style.n)==null?void 0:_a61.pattern;if(pattern)return core.numfmt.getInfo(pattern).isDate}else if(cellData.s.n&&core.numfmt.getInfo(cellData.s.n.pattern).isDate)return!0}return!1},"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.DATE,"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{const{data}=dataWithIndex;return direction===core.Direction.LEFT||direction===core.Direction.UP?(data.reverse(),fillSeries(data,len,direction).reverse()):fillSeries(data,len,direction)}}},numberRule={type:DATA_TYPE.NUMBER,priority:1e3,match:__name(cellData=>typeof(cellData==null?void 0:cellData.v)=="number"||(cellData==null?void 0:cellData.t)===core.CellValueType.NUMBER,"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.NUMBER,"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{const{data}=dataWithIndex;return direction===core.Direction.LEFT||direction===core.Direction.UP?(data.reverse(),fillSeries(data,len,direction).reverse()):fillSeries(data,len,direction)}}},otherRule={type:DATA_TYPE.OTHER,priority:0,match:__name(()=>!0,"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.OTHER,"isContinue")},extendNumberRule={type:DATA_TYPE.EXTEND_NUMBER,priority:900,match:__name(cellData=>matchExtendNumber(`${cellData==null?void 0:cellData.v}`||"").isExtendNumber,"match"),isContinue:__name((prev,cur)=>{var _a61;if(prev.type===DATA_TYPE.EXTEND_NUMBER){const{beforeTxt,afterTxt}=matchExtendNumber(`${(_a61=prev.cellData)==null?void 0:_a61.v}`||""),{beforeTxt:curBeforeTxt,afterTxt:curAfterTxt}=matchExtendNumber(`${cur==null?void 0:cur.v}`||"");if(beforeTxt===curBeforeTxt&&afterTxt===curAfterTxt)return!0}return!1},"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{var _a61;const{data}=dataWithIndex,isReverse=direction===core.Direction.UP||direction===core.Direction.LEFT;let step;if(data.length===1)return step=isReverse?-1:1,reverseIfNeed(fillExtendNumber(data,len,step),isReverse);const dataNumArr=[];for(let i=0;i<data.length;i++){const txt=`${(_a61=data[i])==null?void 0:_a61.v}`;txt&&dataNumArr.push(Number(matchExtendNumber(txt).matchTxt))}return isReverse&&(data.reverse(),dataNumArr.reverse()),isEqualDiff(dataNumArr)?(step=dataNumArr[1]-dataNumArr[0],reverseIfNeed(fillExtendNumber(data,len,step),isReverse)):fillCopy(data,len)}}},chnNumberRule={type:DATA_TYPE.CHN_NUMBER,priority:830,match:__name(cellData=>!!isChnNumber(`${cellData==null?void 0:cellData.v}`||""),"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.CHN_NUMBER,"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{var _a61,_b,_c;const{data}=dataWithIndex,isReverse=direction===core.Direction.LEFT||direction===core.Direction.UP;if(data.length===1){const formattedValue=`${(_a61=data[0])==null?void 0:_a61.v}`;let step;return isReverse?step=-1:step=1,formattedValue&&(formattedValue==="日"||chineseToNumber(formattedValue)<7)?reverseIfNeed(fillChnWeek(data,len,step),isReverse):reverseIfNeed(fillChnNumber(data,len,step),isReverse)}let hasWeek=!1;for(let i=0;i<data.length;i++)if(((_b=data[i])==null?void 0:_b.v)==="日"){hasWeek=!0;break}const dataNumArr=[];let weekIndex=0;for(let i=0;i<data.length;i++){const formattedValue=`${(_c=data[i])==null?void 0:_c.v}`;formattedValue==="日"?i===0?dataNumArr.push(0):(weekIndex++,dataNumArr.push(weekIndex*7)):hasWeek&&chineseToNumber(formattedValue)>0&&chineseToNumber(formattedValue)<7?dataNumArr.push(chineseToNumber(formattedValue)+weekIndex*7):dataNumArr.push(chineseToNumber(formattedValue))}if(isReverse&&(data.reverse(),dataNumArr.reverse()),isEqualDiff(dataNumArr)){if(hasWeek||dataNumArr[dataNumArr.length-1]<6&&dataNumArr[0]>0||dataNumArr[0]<6&&dataNumArr[dataNumArr.length-1]>0){const step2=dataNumArr[1]-dataNumArr[0];return reverseIfNeed(fillChnWeek(data,len,step2),isReverse)}const step=dataNumArr[1]-dataNumArr[0];return reverseIfNeed(fillChnNumber(data,len,step),isReverse)}return fillCopy(data,len)}}},chnWeek2Rule={type:DATA_TYPE.CHN_WEEK2,priority:820,match:__name(cellData=>!!isChnWeek2(`${cellData==null?void 0:cellData.v}`||""),"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.CHN_WEEK2,"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{var _a61;const{data}=dataWithIndex,isReverse=direction===core.Direction.LEFT||direction===core.Direction.UP;if(data.length===1){let step;return isReverse?step=-1:step=1,reverseIfNeed(fillChnWeek(data,len,step,1),isReverse)}const dataNumArr=[];let weekIndex=0;for(let i=0;i<data.length;i++){const formattedValue=`${(_a61=data[i])==null?void 0:_a61.v}`,lastTxt=formattedValue==null?void 0:formattedValue.substr(formattedValue.length-1,1);formattedValue==="周日"?i===0?dataNumArr.push(0):(weekIndex++,dataNumArr.push(weekIndex*7)):dataNumArr.push(chineseToNumber(lastTxt)+weekIndex*7)}if(isReverse&&(data.reverse(),dataNumArr.reverse()),isEqualDiff(dataNumArr)){const step=dataNumArr[1]-dataNumArr[0];return reverseIfNeed(fillChnWeek(data,len,step,1),isReverse)}return fillCopy(data,len)}}},chnWeek3Rule={type:DATA_TYPE.CHN_WEEK3,priority:810,match:__name(cellData=>isChnWeek3(`${cellData==null?void 0:cellData.v}`||""),"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.CHN_WEEK3,"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{var _a61;const{data}=dataWithIndex,isReverse=direction===core.Direction.LEFT||direction===core.Direction.UP;if(data.length===1){let step;return isReverse?step=-1:step=1,reverseIfNeed(fillChnWeek(data,len,step,2),isReverse)}const dataNumArr=[];let weekIndex=0;for(let i=0;i<data.length;i++){const formattedValue=`${(_a61=data[i])==null?void 0:_a61.v}`;if(formattedValue){const lastTxt=formattedValue.substr(formattedValue.length-1,1);formattedValue==="星期日"?i===0?dataNumArr.push(0):(weekIndex++,dataNumArr.push(weekIndex*7)):dataNumArr.push(chineseToNumber(lastTxt)+weekIndex*7)}}if(isReverse&&(data.reverse(),dataNumArr.reverse()),isEqualDiff(dataNumArr)){const step=dataNumArr[1]-dataNumArr[0];return reverseIfNeed(fillChnWeek(data,len,step,2),isReverse)}return fillCopy(data,len)}}},loopSeriesRule={type:DATA_TYPE.LOOP_SERIES,priority:800,match:__name(cellData=>isLoopSeries(`${cellData==null?void 0:cellData.v}`||""),"match"),isContinue:__name((prev,cur)=>{var _a61;return prev.type===DATA_TYPE.LOOP_SERIES?getLoopSeriesInfo(`${(_a61=prev.cellData)==null?void 0:_a61.v}`||"").name===getLoopSeriesInfo(`${cur==null?void 0:cur.v}`||"").name:!1},"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{var _a61,_b;const{data}=dataWithIndex,isReverse=direction===core.Direction.LEFT||direction===core.Direction.UP,{series}=getLoopSeriesInfo(`${(_a61=data[0])==null?void 0:_a61.v}`||"");if(data.length===1){let step;return isReverse?step=-1:step=1,reverseIfNeed(fillLoopSeries(data,len,step,series),isReverse)}const dataNumArr=[];let cycleIndex=0;for(let i=0;i<data.length;i++){const formattedValue=`${(_b=data[i])==null?void 0:_b.v}`;formattedValue&&(formattedValue===series[0]?i===0?dataNumArr.push(0):(cycleIndex++,dataNumArr.push(cycleIndex*series.length)):dataNumArr.push(series.indexOf(formattedValue)+cycleIndex*7))}if(isReverse&&(data.reverse(),dataNumArr.reverse()),isEqualDiff(dataNumArr)){const step=dataNumArr[1]-dataNumArr[0];return reverseIfNeed(fillLoopSeries(data,len,step,series),isReverse)}return fillCopy(data,len)}}};function reverseIfNeed(data,reverse){return reverse?data.reverse():data}__name(reverseIfNeed,"reverseIfNeed");var __defProp$T=Object.defineProperty,__getOwnPropDesc$T=Object.getOwnPropertyDescriptor,__decorateClass$T=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$T(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$T(target,key,result),result},"__decorateClass$T"),__decorateParam$T=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$T"),_a3;exports.AutoFillService=(_a3=class extends core.Disposable{constructor(_commandService,_undoRedoService,_renderManagerService,_univerInstanceService,_selectionManagerService,_injector){super();__publicField(this,"_rules",[]);__publicField(this,"_hooks",[]);__publicField(this,"_applyType$",new rxjs.BehaviorSubject(APPLY_TYPE.SERIES));__publicField(this,"_isFillingStyle",!0);__publicField(this,"_prevUndos",[]);__publicField(this,"_autoFillLocation$",new rxjs.BehaviorSubject(null));__publicField(this,"autoFillLocation$",this._autoFillLocation$.asObservable());__publicField(this,"_showMenu$",new rxjs.BehaviorSubject(!1));__publicField(this,"showMenu$",this._showMenu$.asObservable());__publicField(this,"_direction",core.Direction.DOWN);__publicField(this,"applyType$",this._applyType$.asObservable());__publicField(this,"_menu$",new rxjs.BehaviorSubject([{label:"autoFill.copy",value:APPLY_TYPE.COPY,disable:!1},{label:"autoFill.series",value:APPLY_TYPE.SERIES,disable:!1},{label:"autoFill.formatOnly",value:APPLY_TYPE.ONLY_FORMAT,disable:!1},{label:"autoFill.noFormat",value:APPLY_TYPE.NO_FORMAT,disable:!1}]));__publicField(this,"menu$",this._menu$.asObservable());this._commandService=_commandService,this._undoRedoService=_undoRedoService,this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService,this._selectionManagerService=_selectionManagerService,this._injector=_injector,this._init()}_init(){this._rules=[dateRule,numberRule,extendNumberRule,chnNumberRule,chnWeek2Rule,chnWeek3Rule,loopSeriesRule,otherRule].sort((a,b)=>b.priority-a.priority),this._isFillingStyle=!0}_getOneByPriority(items){return items.length<=0?[]:[items.reduce((maxItem,currentItem)=>(currentItem.priority||0)>(maxItem.priority||0)?currentItem:maxItem,items[0])]}_initPrevUndo(){this._prevUndos=[]}async triggerAutoFill(unitId,subUnitId,source,selection){var _a61;if(source.startColumn===selection.startColumn&&source.startRow===selection.startRow&&source.endColumn===selection.endColumn&&source.endRow===selection.endRow)return!1;if(selection.endColumn<source.endColumn&&selection.endColumn>source.startColumn)return this._commandService.executeCommand(AutoClearContentCommand.id,{clearRange:{startRow:selection.startRow,endRow:selection.endRow,startColumn:selection.endColumn+1,endColumn:source.endColumn},selectionRange:selection});if(selection.endRow<source.endRow&&selection.endRow>source.startRow)return this._commandService.executeCommand(AutoClearContentCommand.id,{clearRange:{startRow:selection.endRow+1,endRow:source.endRow,startColumn:selection.startColumn,endColumn:selection.endColumn},selectionRange:selection});const target={startRow:selection.startRow,endRow:selection.endRow,startColumn:selection.startColumn,endColumn:selection.endColumn};let direction=null;if(selection.startRow<source.startRow)direction=core.Direction.UP,target.endRow=source.startRow-1;else if(selection.endRow>source.endRow)direction=core.Direction.DOWN,target.startRow=source.endRow+1;else if(selection.startColumn<source.startColumn)direction=core.Direction.LEFT,target.endColumn=source.startColumn-1;else if(selection.endColumn>source.endColumn)direction=core.Direction.RIGHT,target.startColumn=source.endColumn+1;else return!1;this.direction=direction;const autoFillSource=this._injector.invoke(accessor=>rangeToDiscreteRange(source,accessor)),autoFillTarget=this._injector.invoke(accessor=>rangeToDiscreteRange(target,accessor));if(!autoFillSource||!autoFillTarget)return!1;this.autoFillLocation={source:autoFillSource,target:autoFillTarget,unitId,subUnitId};const preferTypes=[];this.getActiveHooks().forEach(hook=>{var _a62;const type=(_a62=hook==null?void 0:hook.onBeforeFillData)==null?void 0:_a62.call(hook,{source:autoFillSource,target:autoFillTarget,unitId,subUnitId},direction);type&&preferTypes.unshift(type)}),this._initPrevUndo();for(let i=0;i<preferTypes.length;i++){const menuItem=this.menu.find(m=>m.value===preferTypes[i]);if(menuItem&&!menuItem.disable)return this.fillData(preferTypes[i])}const first=(_a61=this.menu.find(m=>m.disable===!1))==null?void 0:_a61.value;return first?this.fillData(first):!1}addHook(hook){if(this._hooks.find(h=>h.id===hook.id))throw new Error(`Add hook failed, hook id '${hook.id}' already exist!`);return hook.priority===void 0&&(hook.priority=0),hook.type===void 0&&(hook.type=AutoFillHookType.Append),this._hooks.push(hook),core.toDisposable(()=>{const index=this._hooks.findIndex(item=>item===hook);index>-1&&this._hooks.splice(index,1)})}registerRule(rule){if(this._rules.find(r2=>r2.type===rule.type))throw new Error(`Registry rule failed, type '${rule.type}' already exist!`);const index=this._rules.findIndex(r2=>r2.priority<rule.priority);this._rules.splice(index===-1?this._rules.length:index,0,rule)}getRules(){return this._rules}getAllHooks(){return this._hooks}getActiveHooks(){const{source,target,unitId,subUnitId}=this.autoFillLocation||{};if(!source||!target||!unitId||!subUnitId)return[];const enabledHooks=this._hooks.filter(h=>{var _a61;return!((_a61=h.disable)!=null&&_a61.call(h,{source,target,unitId,subUnitId},this._direction,this.applyType))}),onlyHooks=enabledHooks.filter(h=>h.type===AutoFillHookType.Only);if(onlyHooks.length>0)return this._getOneByPriority(onlyHooks);const defaultHooks=this._getOneByPriority(enabledHooks.filter(h=>h.type===AutoFillHookType.Default)),appendHooks=enabledHooks.filter(h=>h.type===AutoFillHookType.Append)||[];return[...defaultHooks,...appendHooks]}get applyType(){return this._applyType$.getValue()}set applyType(type){this._applyType$.next(type)}get menu(){return this._menu$.getValue()}get direction(){return this._direction}set direction(direction){this._direction=direction}isFillingStyle(){return this._isFillingStyle}setFillingStyle(isFillingStyle){this._isFillingStyle=isFillingStyle}get autoFillLocation(){return this._autoFillLocation$.getValue()}set autoFillLocation(location){this._autoFillLocation$.next(location)}setDisableApplyType(type,disable){this._menu$.next(this._menu$.getValue().map(item=>item.value===type?{...item,disable}:item))}setShowMenu(show){this._showMenu$.next(show)}fillData(applyType){var _a61,_b,_c;this.applyType=applyType;const{source,target,unitId=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId(),subUnitId=(_a61=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:_a61.getSheetId()}=this.autoFillLocation||{};if(!source||!target||!unitId||!subUnitId)return!1;const direction=this.direction;this._prevUndos.length>0&&this._prevUndos.forEach(undo=>{this._commandService.syncExecuteCommand(undo.id,undo.params)}),this._prevUndos=[];const selection=core.Rectangle.union(discreteRangeToRange(source),discreteRangeToRange(target)),activeHooks=this.getActiveHooks(),workbook=this._univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_SHEET);this._commandService.syncExecuteCommand(sheets.SetSelectionsOperation.id,{selections:[{primary:{...(_c=(_b=this._selectionManagerService.getCurrentLastSelection())==null?void 0:_b.primary)!=null?_c:selection},range:{...selection,rangeType:core.RANGE_TYPE.NORMAL}}],unitId,subUnitId});const undos=[],redos=[];activeHooks.forEach(hook=>{var _a62;const{undos:hookUndos,redos:hookRedos}=((_a62=hook.onFillData)==null?void 0:_a62.call(hook,{source,target,unitId,subUnitId},direction,applyType))||{};hookUndos&&undos.push(...hookUndos),hookRedos&&redos.push(...hookRedos)});const result=redos.every(m=>this._commandService.syncExecuteCommand(m.id,m.params)),autoHeightRanges=[];applyType!==APPLY_TYPE.NO_FORMAT&&redos.forEach(m=>{if(m.id===sheets.SetRangeValuesMutation.id){const{cellValue}=m.params;new core.ObjectMatrix(cellValue).forValue((row,col,value)=>{const style=Object.keys(workbook.getStyles().get(value==null?void 0:value.s)||{});(value!=null&&value.p||style.length&&AFFECT_LAYOUT_STYLES.some(s=>style.includes(s)))&&autoHeightRanges.push({startRow:row,endRow:row,startColumn:col,endColumn:col})})}});const autoHeightUndoRedos=this._getAutoHeightUndoRedos(unitId,subUnitId,autoHeightRanges);return autoHeightUndoRedos.redos.every(m=>this._commandService.syncExecuteCommand(m.id,m.params))&&(undos.push(...autoHeightUndoRedos.undos),redos.push(...autoHeightUndoRedos.redos)),result&&(this._prevUndos=undos,this._undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:undos,redoMutations:redos})),activeHooks.forEach(hook=>{var _a62;(_a62=hook.onAfterFillData)==null||_a62.call(hook,{source,target,unitId,subUnitId},direction,applyType)}),this.setShowMenu(!0),!0}_getAutoHeightUndoRedos(unitId,subUnitId,ranges){var _a61,_b;const sheetSkeletonService=(_a61=this._renderManagerService.getRenderById(unitId))==null?void 0:_a61.with(exports.SheetSkeletonManagerService),skeleton=(_b=sheetSkeletonService==null?void 0:sheetSkeletonService.getCurrent())==null?void 0:_b.skeleton;if(!skeleton)return{redos:[],undos:[]};const rowsAutoHeightInfo=skeleton.calculateAutoHeightInRange(ranges),redoParams={subUnitId,unitId,rowsAutoHeightInfo},worksheet=skeleton.worksheet,undoParams=sheets.SetWorksheetRowAutoHeightMutationFactory(redoParams,worksheet);return{undos:[{id:sheets.SetWorksheetRowAutoHeightMutation.id,params:undoParams}],redos:[{id:sheets.SetWorksheetRowAutoHeightMutation.id,params:redoParams}]}}},__name(_a3,"AutoFillService"),_a3);exports.AutoFillService=__decorateClass$T([__decorateParam$T(0,core.ICommandService),__decorateParam$T(1,core.IUndoRedoService),__decorateParam$T(2,engineRender.IRenderManagerService),__decorateParam$T(3,core.Inject(core.IUniverInstanceService)),__decorateParam$T(4,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$T(5,core.Inject(core.Injector))],exports.AutoFillService);const IAutoFillService=core.createIdentifier("univer.auto-fill-service"),AutoFillCommand={type:core.CommandType.COMMAND,id:"sheet.command.auto-fill",handler:__name(async(accessor,params)=>{const autoFillService=accessor.get(IAutoFillService),univerInstanceService=accessor.get(core.IUniverInstanceService),{sourceRange,targetRange}=params,commandTarget=sheets.getSheetCommandTarget(univerInstanceService);if(!commandTarget)return!1;const{subUnitId,unitId}=commandTarget;return autoFillService.triggerAutoFill(unitId,subUnitId,sourceRange,targetRange)},"handler")},AutoClearContentCommand={id:"sheet.command.auto-clear-content",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),sheetInterceptorService=accessor.get(sheets.SheetInterceptorService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{unitId,subUnitId}=target,{clearRange,selectionRange}=params,clearMutationParams={subUnitId,unitId,cellValue:sheets.generateNullCellValue([clearRange])},undoClearMutationParams=sheets.SetRangeValuesUndoMutationFactory(accessor,clearMutationParams),{startColumn,startRow}=selectionRange,param={selections:[{primary:{startColumn,startRow,endColumn:startColumn,endRow:startRow,actualRow:startRow,actualColumn:startColumn,isMerged:!1,isMergedMainCell:!1},range:{...selectionRange}}],unitId,subUnitId};if(commandService.executeCommand(sheets.SetSelectionsOperation.id,param),commandService.syncExecuteCommand(sheets.SetRangeValuesMutation.id,clearMutationParams)){const afterInterceptors=sheetInterceptorService.afterCommandExecute({id:sheets.SetRangeValuesMutation.id,params:clearMutationParams});return core.sequenceExecute(afterInterceptors.redos,commandService),undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:[{id:sheets.SetRangeValuesMutation.id,params:undoClearMutationParams},...afterInterceptors.undos],redoMutations:[{id:sheets.SetRangeValuesMutation.id,params:clearMutationParams},...afterInterceptors.redos]}),!0}return!1},"handler")},RefillCommand={id:"sheet.command.refill",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>accessor.get(IAutoFillService).fillData(params.type),"handler")};var __defProp$S=Object.defineProperty,__getOwnPropDesc$S=Object.getOwnPropertyDescriptor,__decorateClass$S=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$S(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$S(target,key,result),result},"__decorateClass$S"),__decorateParam$S=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$S"),_a4;exports.EditorBridgeService=(_a4=class extends core.Disposable{constructor(_sheetInterceptorService,_renderManagerService,_themeService,_univerInstanceService,_editorService,_refSelectionsService,_contextService){super();__publicField(this,"_editorUnitId",core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);__publicField(this,"_editorIsDirty",!1);__publicField(this,"_isDisabled",!1);__publicField(this,"_visible",{visible:!1,eventType:engineRender.DeviceInputEventType.Dblclick,unitId:""});__publicField(this,"_currentEditCell",null);__publicField(this,"_currentEditCellState",null);__publicField(this,"_currentEditCellLayout",null);__publicField(this,"_currentEditCellState$",new rxjs.BehaviorSubject(null));__publicField(this,"currentEditCellState$",this._currentEditCellState$.asObservable());__publicField(this,"_currentEditCellLayout$",new rxjs.BehaviorSubject(null));__publicField(this,"currentEditCellLayout$",this._currentEditCellLayout$.asObservable());__publicField(this,"currentEditCell$",this._currentEditCellState$.pipe(rxjs.switchMap(editCellState=>this._currentEditCellLayout$.pipe(rxjs.map(layout=>editCellState&&layout?{...editCellState,...layout}:null)))));__publicField(this,"_visible$",new rxjs.BehaviorSubject(this._visible));__publicField(this,"visible$",this._visible$.asObservable());__publicField(this,"_afterVisible$",new rxjs.BehaviorSubject(this._visible));__publicField(this,"afterVisible$",this._afterVisible$.asObservable());__publicField(this,"_forceKeepVisible$",new rxjs.BehaviorSubject(!1));__publicField(this,"forceKeepVisible$",this._forceKeepVisible$.asObservable());this._sheetInterceptorService=_sheetInterceptorService,this._renderManagerService=_renderManagerService,this._themeService=_themeService,this._univerInstanceService=_univerInstanceService,this._editorService=_editorService,this._refSelectionsService=_refSelectionsService,this._contextService=_contextService,this.disposeWithMe(core.toDisposable(()=>{this._currentEditCellState$.complete(),this._currentEditCell=null})),this._univerInstanceService.getTypeOfUnitDisposed$(core.UniverInstanceType.UNIVER_SHEET).subscribe(unit=>{var _a61;unit.getUnitId()===((_a61=this._currentEditCellState)==null?void 0:_a61.unitId)&&this._clearCurrentEditCellState()})}refreshEditCellState(){const editCellState=this.getLatestEditCellState();if(!editCellState){this._currentEditCellState=null,this._currentEditCellLayout=null,this._currentEditCellState$.next(null),this._currentEditCellLayout$.next(null);return}const{position,scaleX,scaleY,canvasOffset,...rest}=editCellState;this._currentEditCellState=rest,this._currentEditCellLayout={position,scaleX,scaleY,canvasOffset},this._currentEditCellState$.next(this._currentEditCellState),this._currentEditCellLayout$.next(this._currentEditCellLayout)}refreshEditCellPosition(resetSizeOnly){var _a61;const currentEditCell=this._currentEditCell;if(currentEditCell==null)return;const ru=this._renderManagerService.getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_SHEET);if(!ru)return;const skeleton=(_a61=ru.with(exports.SheetSkeletonManagerService).getWorksheetSkeleton(currentEditCell.sheetId))==null?void 0:_a61.skeleton,selectionRenderService=ru.with(ISheetSelectionRenderService);if(!skeleton||!this._currentEditCellState)return;const{primary,unitId,sheetId,scene,engine}=currentEditCell,primaryWithCoord=attachPrimaryWithCoord(skeleton,primary);if(primaryWithCoord==null)return;const actualRangeWithCoord=core.convertCellToRange(primaryWithCoord),canvasOffset=docsUi.getCanvasOffsetByEngine(engine);let{startX,startY,endX,endY}=actualRangeWithCoord;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY=scene.getViewportScrollXY(selectionRenderService.getViewPort());startX=skeleton.convertTransformToOffsetX(startX,scaleX,scrollXY),startY=skeleton.convertTransformToOffsetY(startY,scaleY,scrollXY),endX=skeleton.convertTransformToOffsetX(endX,scaleX,scrollXY),endY=skeleton.convertTransformToOffsetY(endY,scaleY,scrollXY),resetSizeOnly&&this._currentEditCellLayout&&(endX=endX-startX+this._currentEditCellLayout.position.startX,endY=endY-startY+this._currentEditCellLayout.position.startY,startX=this._currentEditCellLayout.position.startX,startY=this._currentEditCellLayout.position.startY),this._currentEditCellLayout={position:{startX,startY,endX,endY},canvasOffset,scaleX,scaleY},this._currentEditCellLayout$.next(this._currentEditCellLayout)}setEditCell(param){this._currentEditCell=param,this._editorService.getFocusEditor()||(this._editorService.focus(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._contextService.setContextValue(core.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(core.FOCUSING_EDITOR_STANDALONE,!1));const editCellState=this.getLatestEditCellState();if(!editCellState){this._currentEditCellState=editCellState,this._currentEditCellLayout=editCellState,this._currentEditCellState$.next(editCellState),this._currentEditCellLayout$.next(editCellState);return}const{position,canvasOffset,scaleX,scaleY,...rest}=editCellState;this._currentEditCellState=rest,this._currentEditCellLayout={position,canvasOffset,scaleX,scaleY},this._currentEditCellState$.next(this._currentEditCellState),this._currentEditCellLayout$.next(this._currentEditCellLayout)}_clearCurrentEditCellState(){this._currentEditCellState=null,this._currentEditCellState$.next(null),this._currentEditCellLayout=null,this._currentEditCellLayout$.next(null)}getEditCellState(){return this._currentEditCellState==null||this._currentEditCellLayout==null?null:{...this._currentEditCellState,...this._currentEditCellLayout}}getEditCellLayout(){return this._currentEditCellLayout}getEditLocation(){return this._currentEditCellState}getLatestEditCellState(){var _a61,_b,_c;const currentEditCell=this._currentEditCell;if(currentEditCell==null)return;const ru=this._renderManagerService.getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_SHEET);if(!ru)return;const skeleton=ru.with(exports.SheetSkeletonManagerService).getCurrentSkeleton(),selectionRenderService=ru.with(ISheetSelectionRenderService);if(!skeleton)return;const{primary,unitId,sheetId,scene,engine}=currentEditCell,{startRow,startColumn}=primary,primaryWithCoord=attachPrimaryWithCoord(skeleton,primary);if(primaryWithCoord==null)return;const actualRangeWithCoord=core.convertCellToRange(primaryWithCoord),canvasOffset=docsUi.getCanvasOffsetByEngine(engine);let{startX,startY,endX,endY}=actualRangeWithCoord;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY=scene.getViewportScrollXY(selectionRenderService.getViewPort());startX=skeleton.convertTransformToOffsetX(startX,scaleX,scrollXY),startY=skeleton.convertTransformToOffsetY(startY,scaleY,scrollXY),endX=skeleton.convertTransformToOffsetX(endX,scaleX,scrollXY),endY=skeleton.convertTransformToOffsetY(endY,scaleY,scrollXY);const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return;const location={workbook,worksheet,unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),row:startRow,col:startColumn,origin:worksheet.getCellRaw(startRow,startColumn)};let documentLayoutObject;const cell=this._sheetInterceptorService.writeCellInterceptor.fetchThroughInterceptors(sheets.BEFORE_CELL_EDIT)(worksheet.getCell(startRow,startColumn),location);documentLayoutObject=cell&&skeleton.getCellDocumentModelWithFormula(cell);const renderConfig=(_a61=documentLayoutObject==null?void 0:documentLayoutObject.documentModel)==null?void 0:_a61.documentStyle.renderConfig;if(renderConfig!=null&&(renderConfig.cellValueType=core.CellValueType.STRING),!documentLayoutObject||documentLayoutObject.documentModel==null){const blankModel=skeleton.getBlankCellDocumentModel(cell);if(documentLayoutObject!=null){const{verticalAlign,horizontalAlign,wrapStrategy,textRotation,fill}=documentLayoutObject,{centerAngle,vertexAngle}=engineRender.convertTextRotation(textRotation);blankModel.documentModel.documentStyle.renderConfig={...renderConfig,verticalAlign,horizontalAlign,wrapStrategy,background:{rgb:fill},centerAngle,vertexAngle}}documentLayoutObject=blankModel}if(documentLayoutObject.fill=documentLayoutObject.fill||"#fff",(_b=documentLayoutObject.documentModel)==null||_b.setZoomRatio(Math.max(scaleX,scaleY)),(cell==null?void 0:cell.isInArrayFormulaRange)===!0){const body=(_c=documentLayoutObject.documentModel)==null?void 0:_c.getBody();body&&(body.textRuns=[{st:0,ed:body.dataStream.length-2,ts:{cl:{rgb:this._themeService.getCurrentTheme().textColorSecondary}}}])}return{position:{startX,startY,endX,endY},scaleX,scaleY,canvasOffset,row:startRow,column:startColumn,unitId,sheetId,documentLayoutObject,editorUnitId:this._editorUnitId,isInArrayFormulaRange:cell==null?void 0:cell.isInArrayFormulaRange}}getCurrentEditorId(){return this._editorUnitId}changeVisible(param){this._visible=param,param.visible&&(this._editorIsDirty=!1),this._visible$.next(this._visible),this._afterVisible$.next(this._visible)}isVisible(){return this._visible}enableForceKeepVisible(){this._forceKeepVisible$.next(!0)}disableForceKeepVisible(){this._forceKeepVisible$.next(!1)}isForceKeepVisible(){return this._forceKeepVisible$.getValue()}changeEditorDirty(dirtyStatus){this._editorIsDirty=dirtyStatus}getEditorDirty(){return this._editorIsDirty}},__name(_a4,"EditorBridgeService"),_a4);exports.EditorBridgeService=__decorateClass$S([__decorateParam$S(0,core.Inject(sheets.SheetInterceptorService)),__decorateParam$S(1,engineRender.IRenderManagerService),__decorateParam$S(2,core.Inject(core.ThemeService)),__decorateParam$S(3,core.IUniverInstanceService),__decorateParam$S(4,docsUi.IEditorService),__decorateParam$S(5,sheets.IRefSelectionsService),__decorateParam$S(6,core.IContextService)],exports.EditorBridgeService);const IEditorBridgeService=core.createIdentifier("univer.sheet-editor-bridge.service"),SetCellEditVisibleOperation={id:"sheet.operation.set-cell-edit-visible",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>params?(accessor.get(IEditorBridgeService).changeVisible(params),!0):!1,"handler")},SetCellEditVisibleWithF2Operation={id:"sheet.operation.set-cell-edit-visible-f2",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>{const commandService=accessor.get(core.ICommandService),workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);return workbook?(commandService.syncExecuteCommand(SetCellEditVisibleOperation.id,{...params,unitId:workbook.getUnitId()}),!0):!1},"handler")},SetCellEditVisibleArrowOperation={id:"sheet.operation.set-cell-edit-visible-arrow",type:core.CommandType.OPERATION,handler:__name(()=>!0,"handler")},ChangeZoomRatioCommand={id:"sheet.command.change-zoom-ratio",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{if(!params)return!1;const univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet,subUnitId,unitId}=target,{delta,reset}=params;let zoom=reset?100:Math.round((worksheet.getConfig().zoomRatio+delta)*100);zoom=Math.max(SHEET_ZOOM_RANGE[0],zoom),zoom=Math.min(SHEET_ZOOM_RANGE[1],zoom);const zoomRatio=zoom/100,state=accessor.get(IEditorBridgeService).isVisible();return(state.unitId===unitId||state.unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)&&state.visible?!1:accessor.get(core.ICommandService).executeCommand(SetZoomRatioOperation.id,{unitId,subUnitId,zoomRatio})},"handler")},SetZoomRatioCommand={id:"sheet.command.set-zoom-ratio",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{if(!params)return!1;const{unitId,subUnitId,zoomRatio}=params,state=accessor.get(IEditorBridgeService).isVisible();return(state.unitId===unitId||state.unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)&&state.visible?!1:accessor.get(core.ICommandService).executeCommand(SetZoomRatioOperation.id,{unitId,subUnitId,zoomRatio})},"handler")};function isRenderManagerService(renderManagerService){return typeof renderManagerService.isMainScene>"u"}__name(isRenderManagerService,"isRenderManagerService");function getSheetObject(univerInstanceService,renderManagerService){const workbook=univerInstanceService instanceof core.Workbook?univerInstanceService:univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return null;const unitId=workbook.getUnitId();let components,mainComponent,scene,engine;if(isRenderManagerService(renderManagerService)){const currentRender=renderManagerService.getRenderById(unitId);if(currentRender==null)return null;components=currentRender.components,components=currentRender.components,mainComponent=currentRender.mainComponent,scene=currentRender.scene,engine=currentRender.engine}else components=renderManagerService.components,mainComponent=renderManagerService.mainComponent,scene=renderManagerService.scene,engine=renderManagerService.engine;if(!components||!mainComponent)return null;const spreadsheet=mainComponent,spreadsheetRowHeader=components.get(SHEET_VIEW_KEY.ROW),spreadsheetColumnHeader=components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetLeftTopPlaceholder=components.get(SHEET_VIEW_KEY.LEFT_TOP);return{spreadsheet,spreadsheetRowHeader,spreadsheetColumnHeader,spreadsheetLeftTopPlaceholder,scene,engine}}__name(getSheetObject,"getSheetObject");function getCoordByCell(row,col,scene,skeleton){const{startX,startY,endX,endY}=skeleton.getCellWithCoordByIndex(row,col);return{startX,startY,endX,endY}}__name(getCoordByCell,"getCoordByCell");function getCoordByOffset(evtOffsetX,evtOffsetY,scene,skeleton,viewport,closeFirst){const relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords,scrollXY=scene.getScrollXYInfoByViewport(relativeCoords,viewport),{scaleX,scaleY}=scene.getAncestorScale(),moveActualSelection=skeleton.getCellIndexByOffset(newEvtOffsetX,newEvtOffsetY,scaleX,scaleY,scrollXY,{closeFirst}),{row,column}=moveActualSelection,startCell=skeleton.getNoMergeCellPositionByIndex(row,column),{startX,startY,endX,endY}=startCell;return{startX,startY,endX,endY,row,column}}__name(getCoordByOffset,"getCoordByOffset");function getTransformCoord(evtOffsetX,evtOffsetY,scene,skeleton){const relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),scrollXY=scene.getScrollXYInfoByViewport(relativeCoords,viewMain),{scaleX,scaleY}=scene.getAncestorScale(),{x:scrollX,y:scrollY}=scrollXY,offsetX=evtOffsetX/scaleX+scrollX,offsetY=evtOffsetY/scaleY+scrollY;return{x:offsetX,y:offsetY}}__name(getTransformCoord,"getTransformCoord");var __defProp$R=Object.defineProperty,__getOwnPropDesc$R=Object.getOwnPropertyDescriptor,__decorateClass$R=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$R(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$R(target,key,result),result},"__decorateClass$R"),__decorateParam$R=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$R"),_a5;let SheetsZoomRenderController=(_a5=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_commandService,_contextService,_editorBridgeService){super(),this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._contextService=_contextService,this._editorBridgeService=_editorBridgeService,this._initSkeletonListener(),this._initZoomEventListener()}updateZoom(worksheetId,zoomRatio){const worksheet=this._context.unit.getSheetBySheetId(worksheetId);return worksheet?(worksheet.getConfig().zoomRatio=zoomRatio,worksheet===this._context.unit.getActiveSheet()&&this._updateViewZoom(zoomRatio),!0):!1}_initZoomEventListener(){const scene=this._getSheetObject().scene;this.disposeWithMe(scene.onMouseWheel$.subscribeEvent(e=>{if(!e.ctrlKey||!this._contextService.getContextValue(core.FOCUSING_SHEET))return;if(this._editorBridgeService){const state=this._editorBridgeService.isVisible();if((state.unitId===this._context.unitId||state.unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)&&state.visible)return}const deltaFactor=Math.abs(e.deltaX);let ratioDelta=deltaFactor<40?.2:deltaFactor<80?.4:.2;ratioDelta*=e.deltaY>0?-1:1,scene.scaleX<1&&(ratioDelta/=2);const workbook=this._context.unit,sheet=workbook.getActiveSheet();if(!sheet)return;const currentRatio=sheet.getZoomRatio();let nextRatio=+Number.parseFloat(`${currentRatio+ratioDelta}`).toFixed(1);nextRatio=nextRatio>=4?4:nextRatio<=.1?.1:nextRatio,this._commandService.executeCommand(SetZoomRatioCommand.id,{zoomRatio:Math.round(nextRatio*10)/10,unitId:workbook.getUnitId(),subUnitId:sheet.getSheetId()}),e.preventDefault()}))}_initSkeletonListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(param=>{if(param==null)return;const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const zoomRatio=worksheet.getZoomRatio()||1;this._updateViewZoom(zoomRatio)}))}_updateViewZoom(zoomRatio){const sheetObject=this._getSheetObject();sheetObject==null||sheetObject.scene.scale(zoomRatio,zoomRatio),sheetObject==null||sheetObject.spreadsheet.makeForceDirty()}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}},__name(_a5,"SheetsZoomRenderController"),_a5);SheetsZoomRenderController=__decorateClass$R([__decorateParam$R(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$R(2,core.ICommandService),__decorateParam$R(3,core.IContextService),__decorateParam$R(4,core.Optional(IEditorBridgeService))],SheetsZoomRenderController);const SetZoomRatioOperation={id:"sheet.operation.set-zoom-ratio",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>{const renderUnit=accessor.get(engineRender.IRenderManagerService).getRenderById(params.unitId);return renderUnit?renderUnit.with(SheetsZoomRenderController).updateZoom(params.subUnitId,params.zoomRatio):!1},"handler")};var __defProp$Q=Object.defineProperty,__getOwnPropDesc$Q=Object.getOwnPropertyDescriptor,__decorateClass$Q=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$Q(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$Q(target,key,result),result},"__decorateClass$Q"),__decorateParam$Q=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$Q");const SHEET_MAIN_CANVAS_ID="univer-sheet-main-canvas";var _a6;exports.SheetsRenderService=(_a6=class extends core.RxDisposable{constructor(_contextService,_instanceSrv,_renderManagerService){super();__publicField(this,"_skeletonChangeMutations",new Set);this._contextService=_contextService,this._instanceSrv=_instanceSrv,this._renderManagerService=_renderManagerService,Promise.resolve().then(()=>this._init())}registerSkeletonChangingMutations(mutationId){return this._skeletonChangeMutations.has(mutationId)?core.toDisposable(()=>{}):(this._skeletonChangeMutations.add(mutationId),core.toDisposable(()=>this._skeletonChangeMutations.delete(mutationId)))}checkMutationShouldTriggerRerender(id){return this._skeletonChangeMutations.has(id)}_init(){this._initWorkbookListener(),this._initContextListener()}_initWorkbookListener(){this._instanceSrv.getTypeOfUnitAdded$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.takeUntil(this.dispose$)).subscribe(workbook=>this._createRenderer(workbook)),this._instanceSrv.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET).forEach(workbook=>this._createRenderer(workbook)),this._instanceSrv.getTypeOfUnitDisposed$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.takeUntil(this.dispose$)).subscribe(workbook=>this._disposeRenderer(workbook))}_createRenderer(workbook){const unitId=workbook.getUnitId();this._renderManagerService.created$.subscribe(renderer=>{renderer.unitId===unitId&&(renderer.engine.getCanvas().setId(`${SHEET_MAIN_CANVAS_ID}_${unitId}`),renderer.engine.getCanvas().getContext().setId(`${SHEET_MAIN_CANVAS_ID}_${unitId}`))}),this._renderManagerService.createRender(unitId),this._renderManagerService.setCurrent(unitId)}_disposeRenderer(workbook){const unitId=workbook.getUnitId();this._renderManagerService.removeRender(unitId)}_initContextListener(){this.disposeWithMe(this._contextService.subscribeContextValue$(engineRender.RENDER_RAW_FORMULA_KEY).pipe(rxjs.distinctUntilChanged()).subscribe(()=>{this._renderManagerService.getRenderAll().forEach(renderer=>{renderer.mainComponent instanceof engineRender.Spreadsheet&&renderer.mainComponent.makeForceDirty(!0)})}))}},__name(_a6,"SheetsRenderService"),_a6);exports.SheetsRenderService=__decorateClass$Q([__decorateParam$Q(0,core.IContextService),__decorateParam$Q(1,core.IUniverInstanceService),__decorateParam$Q(2,engineRender.IRenderManagerService)],exports.SheetsRenderService);var __defProp$P=Object.defineProperty,__getOwnPropDesc$P=Object.getOwnPropertyDescriptor,__decorateClass$P=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$P(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$P(target,key,result),result},"__decorateClass$P"),__decorateParam$P=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$P"),_a7;exports.AutoFillController=(_a7=class extends core.Disposable{constructor(_univerInstanceService,_commandService,_autoFillService,_editorBridgeService,_renderManagerService,_injector,_sheetsRenderService){super();__publicField(this,"_beforeApplyData",[]);__publicField(this,"_currentLocation",null);__publicField(this,"_copyData",[]);__publicField(this,"_defaultHook");this._univerInstanceService=_univerInstanceService,this._commandService=_commandService,this._autoFillService=_autoFillService,this._editorBridgeService=_editorBridgeService,this._renderManagerService=_renderManagerService,this._injector=_injector,this._sheetsRenderService=_sheetsRenderService,this._defaultHook={id:"default",type:AutoFillHookType.Default,priority:0,onBeforeFillData:__name((location,direction)=>this._presetAndCacheData(location,direction),"onBeforeFillData"),onFillData:__name((location,direction,applyType)=>this._fillData(location,direction,applyType),"onFillData")},this._init()}_init(){this._initDefaultHook(),this._onSelectionControlFillChanged(),this._initQuitListener(),this._initSkeletonChange()}_initSkeletonChange(){this.disposeWithMe(this._sheetsRenderService.registerSkeletonChangingMutations(AutoFillCommand.id))}_initDefaultHook(){this.disposeWithMe(this._autoFillService.addHook(this._defaultHook))}_initQuitListener(){const quitCommands=[SetCellEditVisibleOperation.id,AutoClearContentCommand.id,sheets.SetRangeValuesCommand.id,SetZoomRatioOperation.id,sheets.SetWorksheetActiveOperation.id,sheets.MoveRangeMutation.id,sheets.RemoveRowMutation.id,sheets.RemoveColMutation.id,sheets.InsertRowMutation.id,sheets.InsertColMutation.id,sheets.MoveRowsMutation.id,sheets.MoveColsMutation.id,sheets.SetWorksheetColWidthMutation.id,sheets.SetWorksheetRowHeightMutation.id,sheets.SetRangeValuesMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted((command,options)=>{var _a61,_b;const fromCollab=options==null?void 0:options.fromCollab,fromSync=options==null?void 0:options.fromSync,fromFormula=options==null?void 0:options.fromFormula;quitCommands.includes(command.id)&&!fromCollab&&!fromSync&&!fromFormula&&command.params.trigger!==AutoFillCommand.id&&command.params.trigger!==RefillCommand.id&&this._quit(),command.id===sheets.RemoveSheetMutation.id&&command.params.unitId===((_a61=this._currentLocation)==null?void 0:_a61.unitId)&&command.params.subUnitId===((_b=this._currentLocation)==null?void 0:_b.subUnitId)&&this._quit()})),this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(unit=>{var _a61;unit.getUnitId()===((_a61=this._currentLocation)==null?void 0:_a61.unitId)&&this._quit()}))}_quit(){this._currentLocation=null,this._beforeApplyData=[],this._copyData=[],this._autoFillService.setShowMenu(!1)}_onSelectionControlFillChanged(){const disposableCollection=new core.DisposableCollection,addListener=__name(disposableCollection2=>{disposableCollection2.dispose();const currentRenderer=this._renderManagerService.getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_SHEET);if(!currentRenderer)return;currentRenderer.with(ISheetSelectionRenderService).getSelectionControls().forEach(controlSelection=>{disposableCollection2.add(core.toDisposable(controlSelection.selectionFilled$.subscribe(filled=>{if(filled==null||filled.startColumn===-1||filled.startRow===-1||filled.endColumn===-1||filled.endRow===-1)return;const source={startColumn:controlSelection.model.startColumn,endColumn:controlSelection.model.endColumn,startRow:controlSelection.model.startRow,endRow:controlSelection.model.endRow},selection={startColumn:filled.startColumn,endColumn:filled.endColumn,startRow:filled.startRow,endRow:filled.endRow};this._commandService.executeCommand(AutoFillCommand.id,{sourceRange:source,targetRange:selection})}))),disposableCollection2.add(core.toDisposable(controlSelection.fillControl.onDblclick$.subscribeEvent(()=>{const source={startColumn:controlSelection.model.startColumn,endColumn:controlSelection.model.endColumn,startRow:controlSelection.model.startRow,endRow:controlSelection.model.endRow};this._handleDbClickFill(source)}))),disposableCollection2.add(core.toDisposable(controlSelection.fillControl.onPointerDown$.subscribeEvent(()=>{this._editorBridgeService.isVisible().visible&&this._editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.PointerDown,unitId:currentRenderer.unitId})})))})},"addListener");addListener(disposableCollection),this.disposeWithMe(this._commandService.onCommandExecuted(command=>{command.id===sheets.SetSelectionsOperation.id&&addListener(disposableCollection)}))}_handleDbClickFill(source){const selection=this._detectFillRange(source);selection.endRow<=source.endRow||this._commandService.executeCommand(AutoFillCommand.id,{sourceRange:source,targetRange:selection})}_detectFillRange(source){var _a61,_b,_c,_d,_e,_f;const{startRow,endRow,startColumn,endColumn}=source,worksheet=(_a61=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET))==null?void 0:_a61.getActiveSheet();if(!worksheet)return source;const matrix=worksheet.getCellMatrix(),maxRow=worksheet.getMaxRows()-1,maxColumn=worksheet.getMaxColumns()-1;let detectEndRow=endRow;if(startColumn>0&&((_b=matrix.getValue(startRow,startColumn-1))==null?void 0:_b.v)!=null){let cur=startRow;for(;((_c=matrix.getValue(cur,startColumn-1))==null?void 0:_c.v)!=null&&cur<maxRow;)cur+=1;detectEndRow=cur-1}else if(endColumn<maxColumn&&((_d=matrix.getValue(endRow,endColumn+1))==null?void 0:_d.v)!=null){let cur=startRow;for(;((_e=matrix.getValue(cur,endColumn+1))==null?void 0:_e.v)!=null&&cur<maxRow;)cur+=1;detectEndRow=cur-1}for(let i=endRow+1;i<=detectEndRow;i++)for(let j=startColumn;j<=endColumn;j++)if(((_f=matrix.getValue(i,j))==null?void 0:_f.v)!=null){detectEndRow=i-1;break}return{startColumn,endColumn,startRow,endRow:detectEndRow}}_getApplyData(copyDataPiece,csLen,asLen,direction,applyType,hasStyle=!0){const applyData=[],num=Math.floor(asLen/csLen),rsd=asLen%csLen,rules=this._autoFillService.getRules();if(!hasStyle&&applyType===APPLY_TYPE.ONLY_FORMAT)return console.error("ERROR: only format can not be applied when hasStyle is false"),[];const applyDataInTypes={};rules.forEach(r2=>{applyDataInTypes[r2.type]=[]}),rules.forEach(r2=>{const{type,applyFunctions:customApplyFunctions={}}=r2,copyDataInType=copyDataPiece[type];copyDataInType&&copyDataInType.forEach(copySquad=>{const s=getLenS(copySquad.index,rsd),len=copySquad.index.length*num+s,arrData=this._applyFunctions(copySquad,len,direction,applyType,customApplyFunctions,copyDataPiece),arrIndex=getDataIndex(csLen,asLen,copySquad.index);applyDataInTypes[type].push({data:arrData,index:arrIndex})})});for(let x=0;x<asLen;x++)rules.forEach(r2=>{const{type}=r2,applyDataInType=applyDataInTypes[type];for(let y=0;y<applyDataInType.length;y++)x in applyDataInType[y].index&&applyData.push(applyDataInType[y].data[applyDataInType[y].index[x]])});return applyData}_applyFunctions(copySquad,len,direction,applyType,customApplyFunctions,copyDataPiece){const{data}=copySquad,isReverse=direction===core.Direction.UP||direction===core.Direction.LEFT;if(applyType===APPLY_TYPE.COPY){const custom=customApplyFunctions==null?void 0:customApplyFunctions[APPLY_TYPE.COPY];return custom?custom(copySquad,len,direction,copyDataPiece):(isReverse&&data.reverse(),fillCopy(data,len))}if(applyType===APPLY_TYPE.SERIES){const custom=customApplyFunctions==null?void 0:customApplyFunctions[APPLY_TYPE.SERIES];return custom?custom(copySquad,len,direction,copyDataPiece):(isReverse&&data.reverse(),customApplyFunctions!=null&&customApplyFunctions[APPLY_TYPE.COPY]?customApplyFunctions[APPLY_TYPE.COPY](copySquad,len,direction,copyDataPiece):fillCopy(data,len))}if(applyType===APPLY_TYPE.ONLY_FORMAT){const custom=customApplyFunctions==null?void 0:customApplyFunctions[APPLY_TYPE.ONLY_FORMAT];return custom?custom(copySquad,len,direction,copyDataPiece):fillCopyStyles(data,len)}}_getCopyData(source,direction){const worksheet=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const currentCellDatas=worksheet.getCellMatrix(),rules=this._autoFillService.getRules(),copyData=[],isVertical=direction===core.Direction.DOWN||direction===core.Direction.UP;let aArray,bArray;return isVertical?(aArray=source.cols,bArray=source.rows):(aArray=source.rows,bArray=source.cols),aArray.forEach(a=>{const copyDataPiece=this._getEmptyCopyDataPiece(),prevData={type:void 0,cellData:void 0};bArray.forEach(b=>{let data;isVertical?data=currentCellDatas.getValue(b,a):data=currentCellDatas.getValue(a,b);const{type,isContinue}=rules.find(r2=>r2.match(data,this._injector))||otherRule;if(isContinue(prevData,data)){const typeInfo=copyDataPiece[type],last=typeInfo[typeInfo.length-1];last.data.push(data),last.index.push(b-bArray[0])}else{const typeInfo=copyDataPiece[type];typeInfo?typeInfo.push({data:[data],index:[b-bArray[0]]}):copyDataPiece[type]=[{data:[data],index:[b-bArray[0]]}]}prevData.type=type,prevData.cellData=data}),copyData.push(copyDataPiece)}),copyData}_getEmptyCopyDataPiece(){const copyDataPiece={};return this._autoFillService.getRules().forEach(r2=>{copyDataPiece[r2.type]=[]}),copyDataPiece}_getMergeApplyData(source,target,direction,csLen){const worksheet=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const applyMergeRanges=[];for(let i=source.startRow;i<=source.endRow;i++)for(let j=source.startColumn;j<=source.endColumn;j++){const{isMergedMainCell,startRow,startColumn,endRow,endColumn}=worksheet.getCellInfoInMergeData(i,j);if(isMergedMainCell){if(direction===core.Direction.DOWN){let windowStartRow=startRow+csLen,windowEndRow=endRow+csLen;for(;windowEndRow<=target.endRow;)applyMergeRanges.push({startRow:windowStartRow,startColumn,endRow:windowEndRow,endColumn}),windowStartRow+=csLen,windowEndRow+=csLen}else if(direction===core.Direction.UP){let windowStartRow=startRow-csLen,windowEndRow=endRow-csLen;for(;windowStartRow>=target.startRow;)applyMergeRanges.push({startRow:windowStartRow,startColumn,endRow:windowEndRow,endColumn}),windowStartRow-=csLen,windowEndRow-=csLen}else if(direction===core.Direction.RIGHT){let windowStartColumn=startColumn+csLen,windowEndColumn=endColumn+csLen;for(;windowEndColumn<=target.endColumn;)applyMergeRanges.push({startRow,startColumn:windowStartColumn,endRow,endColumn:windowEndColumn}),windowStartColumn+=csLen,windowEndColumn+=csLen}else if(direction===core.Direction.LEFT){let windowStartColumn=startColumn-csLen,windowEndColumn=endColumn-csLen;for(;windowStartColumn>=target.startColumn;)applyMergeRanges.push({startRow,startColumn:windowStartColumn,endRow,endColumn:windowEndColumn}),windowStartColumn-=csLen,windowEndColumn-=csLen}}}return applyMergeRanges}_presetAndCacheData(location,direction){const{source,target}=location,worksheet=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const currentCellDatas=worksheet.getCellMatrix(),applyData=[];return target.rows.forEach(i=>{const row=[];target.cols.forEach(j=>{row.push(core.Tools.deepClone(currentCellDatas.getValue(i,j)))}),applyData.push(row)}),this._beforeApplyData=applyData,this._copyData=this._getCopyData(source,direction),this._currentLocation=location,this._shouldDisableSeries(this._copyData)?(this._autoFillService.setDisableApplyType(APPLY_TYPE.SERIES,!0),APPLY_TYPE.COPY):(this._autoFillService.setDisableApplyType(APPLY_TYPE.SERIES,!1),this._getPreferredApplyType(this._copyData))}_fillData(location,direction,applyType){var _a61,_b;const undos=[],redos=[];let hasStyle=!0;applyType===APPLY_TYPE.NO_FORMAT&&(hasStyle=!1,applyType=APPLY_TYPE.SERIES);const{source,target,unitId,subUnitId}=location;if(!source||!target||direction==null)return{undos,redos};const sourceRange=discreteRangeToRange(source),targetRange=discreteRangeToRange(target),{cols:targetCols,rows:targetRows}=target,{cols:sourceCols,rows:sourceRows}=source,copyData=this._copyData;let csLen;direction===core.Direction.DOWN||direction===core.Direction.UP?csLen=sourceRows.length:csLen=sourceCols.length;const applyDatas=[];if(direction===core.Direction.DOWN||direction===core.Direction.UP){const asLen=targetRows.length,untransformedApplyDatas=[];targetCols.forEach((_2,i)=>{const copyD=copyData[i],applyData=this._getApplyData(copyD,csLen,asLen,direction,applyType,hasStyle);untransformedApplyDatas.push(applyData)});for(let i=0;i<untransformedApplyDatas[0].length;i++){const row=[];for(let j=0;j<untransformedApplyDatas.length;j++)row.push({s:null,...untransformedApplyDatas[j][i]});applyDatas.push(row)}}else{const asLen=targetCols.length;targetRows.forEach((_2,i)=>{const copyD=copyData[i],applyData=this._getApplyData(copyD,csLen,asLen,direction,applyType,hasStyle),row=[];for(let j=0;j<applyData.length;j++)row.push({s:null,...applyData[j]});applyDatas.push(row)})}let applyMergeRanges=[];const style=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getStyles();if(hasStyle?(applyMergeRanges=this._getMergeApplyData(sourceRange,targetRange,direction,csLen),applyDatas.forEach(row=>{row.forEach(cellData=>{cellData&&style&&style&&(cellData.s=style.getStyleByCell(cellData))})})):applyDatas.forEach((row,rowIndex)=>{row.forEach((cellData,colIndex)=>{cellData&&style&&(cellData.s=style.getStyleByCell(this._beforeApplyData[rowIndex][colIndex])||null)})}),applyType===APPLY_TYPE.ONLY_FORMAT&&applyDatas.forEach((row,rowIndex)=>{row.forEach((cellData,colIndex)=>{if(cellData){const old=this._beforeApplyData[rowIndex][colIndex]||{};cellData.f=old.f,cellData.si=old.si,cellData.t=old.t,cellData.v=old.v}})}),hasStyle){const deleteMergeRanges=[],mergeData=(_b=(_a61=this._univerInstanceService.getUniverSheetInstance(unitId))==null?void 0:_a61.getSheetBySheetId(subUnitId))==null?void 0:_b.getMergeData();mergeData&&mergeData.forEach(merge=>{core.Rectangle.intersects(merge,targetRange)&&deleteMergeRanges.push(merge)});const removeMergeMutationParams={unitId,subUnitId,ranges:deleteMergeRanges},undoRemoveMergeMutationParams=this._injector.invoke(sheets.RemoveMergeUndoMutationFactory,removeMergeMutationParams);deleteMergeRanges.length&&(redos.push({id:sheets.RemoveWorksheetMergeMutation.id,params:removeMergeMutationParams}),undos.unshift({id:sheets.AddWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams}))}const clearMutationParams={subUnitId,unitId,cellValue:generateNullCellValueRowCol([target])},undoClearMutationParams=this._injector.invoke(sheets.SetRangeValuesUndoMutationFactory,clearMutationParams);redos.push({id:sheets.SetRangeValuesMutation.id,params:clearMutationParams}),undos.unshift({id:sheets.SetRangeValuesMutation.id,params:undoClearMutationParams});const cellValue=new core.ObjectMatrix;targetRows.forEach((row,rowIndex)=>{targetCols.forEach((col,colIndex)=>{applyDatas[rowIndex][colIndex]&&cellValue.setValue(row,col,applyDatas[rowIndex][colIndex])})});const cellValueMatrix=cellValue.getMatrix(),setRangeValuesMutationParams={subUnitId,unitId,cellValue:cellValueMatrix},undoSetRangeValuesMutationParams=this._injector.invoke(sheets.SetRangeValuesUndoMutationFactory,setRangeValuesMutationParams);if(this._autoFillService.getActiveHooks().forEach(hook=>{var _a62;(_a62=hook.onBeforeSubmit)==null||_a62.call(hook,location,direction,applyType,cellValueMatrix)}),undos.unshift({id:sheets.SetRangeValuesMutation.id,params:undoSetRangeValuesMutationParams}),redos.push({id:sheets.SetRangeValuesMutation.id,params:setRangeValuesMutationParams}),applyMergeRanges!=null&&applyMergeRanges.length){const ranges=sheets.getAddMergeMutationRangeByType(applyMergeRanges),addMergeMutationParams={unitId,subUnitId,ranges},undoAddMergeMutationParams=this._injector.invoke(sheets.AddMergeUndoMutationFactory,addMergeMutationParams);undos.unshift({id:sheets.RemoveWorksheetMergeMutation.id,params:undoAddMergeMutationParams}),redos.push({id:sheets.AddWorksheetMergeMutation.id,params:addMergeMutationParams})}return{undos,redos}}_shouldDisableSeries(copyData){return copyData.every(copyDataPiece=>Object.keys(copyDataPiece).every(type=>{var _a61;return((_a61=copyDataPiece[type])==null?void 0:_a61.length)===0||[DATA_TYPE.OTHER,DATA_TYPE.FORMULA].includes(type)}))}_getPreferredApplyType(copyData){return copyData.every(copyDataPiece=>Object.keys(copyDataPiece).every(type=>{var _a61,_b;return((_a61=copyDataPiece[type])==null?void 0:_a61.length)===0||((_b=copyDataPiece[type])==null?void 0:_b.length)===1&&copyDataPiece[type][0].data.length===1&&DATA_TYPE.NUMBER===type}))?APPLY_TYPE.COPY:APPLY_TYPE.SERIES}},__name(_a7,"AutoFillController"),_a7);exports.AutoFillController=__decorateClass$P([__decorateParam$P(0,core.IUniverInstanceService),__decorateParam$P(1,core.ICommandService),__decorateParam$P(2,IAutoFillService),__decorateParam$P(3,IEditorBridgeService),__decorateParam$P(4,engineRender.IRenderManagerService),__decorateParam$P(5,core.Inject(core.Injector)),__decorateParam$P(6,core.Inject(exports.SheetsRenderService))],exports.AutoFillController);var __defProp$O=Object.defineProperty,__getOwnPropDesc$O=Object.getOwnPropertyDescriptor,__decorateClass$O=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$O(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$O(target,key,result),result},"__decorateClass$O"),__decorateParam$O=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$O"),_a8;exports.CellCustomRenderController=(_a8=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_renderManagerService,_permissionService){super();__publicField(this,"_enterActiveRender");this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._renderManagerService=_renderManagerService,this._permissionService=_permissionService,this._initEventBinding()}_initEventBinding(){const disposableCollection=new core.DisposableCollection,workbook=this._context.unit,handleSkeletonChange=__name(skeletonParam=>{if(disposableCollection.dispose(),!skeletonParam)return;const unitId=this._context.unitId,{skeleton}=skeletonParam,currentRender=this._renderManagerService.getRenderById(unitId);if(currentRender&&currentRender.mainComponent){const spreadsheet=currentRender.mainComponent,getActiveRender=__name(evt=>{const{offsetX,offsetY}=evt,scene=currentRender.scene,worksheet=workbook.getActiveSheet();if(!worksheet)return;const activeViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([offsetX,offsetY]));if(!activeViewport)return;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY},cellPos=skeleton.getCellIndexByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY),mergeCell=skeleton.worksheet.getMergedCell(cellPos.row,cellPos.column),cellIndex={actualRow:mergeCell?mergeCell.startRow:cellPos.row,actualCol:mergeCell?mergeCell.startColumn:cellPos.column,mergeCell,row:cellPos.row,col:cellPos.column};if(!cellIndex||!skeleton)return;const cellData=worksheet.getCell(cellIndex.actualRow,cellIndex.actualCol);if(!cellData)return;const renders=cellData.customRender;if(!(renders!=null&&renders.length))return;const row=cellIndex.actualRow,col=cellIndex.actualCol,sortedRenders=renders.sort(core.sortRules),subUnitId=worksheet.getSheetId(),info={data:cellData,style:skeleton.getsStyles().getStyleByCell(cellData),primaryWithCoord:skeleton.getCellWithCoordByIndex(cellIndex.actualRow,cellIndex.actualCol),unitId,subUnitId,row,col,workbook,worksheet},position={x:scrollXY.x+offsetX/scaleX,y:scrollXY.y+offsetY/scaleY},activeRender=sortedRenders.find(render2=>{var _a61;return(_a61=render2.isHit)==null?void 0:_a61.call(render2,position,info)});if(activeRender)return[activeRender,info]},"getActiveRender"),disposable=spreadsheet.onPointerDown$.subscribeEvent(evt=>{var _a61,_b,_c,_d;const activeRenderInfo=getActiveRender(evt);if(activeRenderInfo){const[activeRender,cellContext]=activeRenderInfo,{row,col,worksheet,unitId:unitId2,subUnitId}=cellContext;if(!((_a61=this._permissionService.composePermission([new sheets.WorkbookEditablePermission(unitId2).id,new sheets.WorksheetEditPermission(unitId2,subUnitId).id]))==null?void 0:_a61.every(permission2=>permission2.value)))return!1;const permission=(_c=(_b=worksheet.getCell(row,col))==null?void 0:_b.selectionProtection)==null?void 0:_c[0];if((permission==null?void 0:permission[sheets.UnitAction.Edit])===!1)return!1;(_d=activeRender.onPointerDown)==null||_d.call(activeRender,cellContext,evt)}}),moveDisposable=core.fromEventSubject(spreadsheet.onPointerMove$).pipe(rxjs.throttleTime(30)).subscribe(evt=>{var _a61,_b,_c,_d,_e,_f;const activeRenderInfo=getActiveRender(evt);if(activeRenderInfo){const[activeRender,cellContext]=activeRenderInfo;this._enterActiveRender?this._enterActiveRender.render!==activeRender&&((_b=(_a61=this._enterActiveRender.render).onPointerLeave)==null||_b.call(_a61,this._enterActiveRender.cellContext,evt),this._enterActiveRender={render:activeRender,cellContext},(_c=activeRender.onPointerEnter)==null||_c.call(activeRender,cellContext,evt)):(this._enterActiveRender={render:activeRender,cellContext},(_d=activeRender.onPointerEnter)==null||_d.call(activeRender,cellContext,evt))}else this._enterActiveRender&&((_f=(_e=this._enterActiveRender.render).onPointerLeave)==null||_f.call(_e,this._enterActiveRender.cellContext,evt),this._enterActiveRender=null)});disposable&&disposableCollection.add(disposable),moveDisposable&&disposableCollection.add(moveDisposable)}},"handleSkeletonChange");this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(handleSkeletonChange)),handleSkeletonChange(this._sheetSkeletonManagerService.getCurrent()),this.disposeWithMe(disposableCollection)}},__name(_a8,"CellCustomRenderController"),_a8);exports.CellCustomRenderController=__decorateClass$O([__decorateParam$O(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$O(2,engineRender.IRenderManagerService),__decorateParam$O(3,core.IPermissionService)],exports.CellCustomRenderController);const _SelectAllService=class _SelectAllService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"rangesStack",[]);__publicField(this,"selectedRangeWorksheet","")}};__name(_SelectAllService,"SelectAllService");let SelectAllService=_SelectAllService;var __defProp$N=Object.defineProperty,__getOwnPropDesc$N=Object.getOwnPropertyDescriptor,__decorateClass$N=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$N(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$N(target,key,result),result},"__decorateClass$N"),__decorateParam$N=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$N"),_a9;let ShortcutExperienceService=(_a9=class{constructor(_univerInstanceService,_localeService){__publicField(this,"_current",null);__publicField(this,"_shortcutParam",[]);this._univerInstanceService=_univerInstanceService,this._localeService=_localeService}dispose(){this._shortcutParam=[]}getCurrentBySearch(searchParm){return this._getCurrentBySearch(searchParm)}getCurrent(){return this._getCurrentBySearch(this._current)}addOrUpdate(insertParam){const param=this._getCurrentBySearch({unitId:insertParam.unitId,sheetId:insertParam.sheetId,keycode:insertParam.keycode});if(param!=null){const index=this._shortcutParam.indexOf(param);this._shortcutParam.splice(index,1)}return this._shortcutParam.push(insertParam),param}remove(searchParm){if(searchParm==null)return;const param=this._getCurrentBySearch(searchParm);if(param==null)return;const index=this._shortcutParam.indexOf(param);return this._shortcutParam.splice(index,1)[0]}_getCurrentBySearch(searchParm){return searchParm==null?void 0:this._shortcutParam.find(param=>param.unitId===searchParm.unitId&&param.sheetId===searchParm.sheetId&&param.keycode===searchParm.keycode)}},__name(_a9,"ShortcutExperienceService"),_a9);ShortcutExperienceService=__decorateClass$N([__decorateParam$N(0,core.IUniverInstanceService),__decorateParam$N(1,core.Inject(core.LocaleService))],ShortcutExperienceService);var MergeType=(MergeType2=>(MergeType2.MergeAll="mergeAll",MergeType2.MergeVertical="mergeVertical",MergeType2.MergeHorizontal="mergeHorizontal",MergeType2))(MergeType||{});function findNextRange(startRange,direction,worksheet,boundary,isFindNext=!0,nextStep=1,isGoBack=!0){let destRange={...startRange};boundary==null&&(boundary={startRow:0,endRow:worksheet.getRowCount()-1,startColumn:0,endColumn:worksheet.getColumnCount()-1});let next;switch(direction){case core.Direction.UP:for(next=startRange.startRow-nextStep;next>-1&&!worksheet.getRowVisible(next);)next-=1;next>=boundary.startRow?(destRange.startRow=next,destRange.endRow=next):isGoBack&&(destRange.startRow=boundary.endRow,destRange.endRow=boundary.endRow,isFindNext&&(destRange=findNextRange(destRange,core.Direction.LEFT,worksheet,boundary,!1)));break;case core.Direction.DOWN:for(next=startRange.endRow+nextStep;next<worksheet.getRowCount()&&!worksheet.getRowVisible(next);)next+=1;next<=boundary.endRow?(destRange.startRow=next,destRange.endRow=next):isGoBack&&(destRange.startRow=boundary.startRow,destRange.endRow=boundary.startRow,isFindNext&&(destRange=findNextRange(destRange,core.Direction.RIGHT,worksheet,boundary,!1)));break;case core.Direction.LEFT:for(next=startRange.startColumn-nextStep;next>-1&&!worksheet.getColVisible(next);)next-=1;next>=boundary.startColumn?(destRange.startColumn=next,destRange.endColumn=next):isGoBack&&(destRange.startColumn=boundary.endColumn,destRange.endColumn=boundary.endColumn,isFindNext&&(destRange=findNextRange(destRange,core.Direction.UP,worksheet,boundary,!1)));break;case core.Direction.RIGHT:for(next=startRange.endColumn+nextStep;next<worksheet.getColumnCount()&&!worksheet.getColVisible(next);)next+=1;next<=boundary.endColumn?(destRange.startColumn=next,destRange.endColumn=next):isGoBack&&(destRange.startColumn=boundary.startColumn,destRange.endColumn=boundary.startColumn,isFindNext&&(destRange=findNextRange(destRange,core.Direction.DOWN,worksheet,boundary,!1)));break}return destRange}__name(findNextRange,"findNextRange");function findNextGapRange(startRange,direction,worksheet){const destRange={...startRange},{startRow,startColumn,endRow,endColumn}=getEdgeOfRange(startRange,direction,worksheet);let currentPositionHasValue=rangeHasValue(worksheet,startRow,startColumn,endRow,endColumn).hasValue,firstMove=!0,shouldContinue=!0;for(;shouldContinue;){if(core.Direction.UP===direction){let next=destRange.startRow-1;for(;next>-1&&!worksheet.getRowVisible(next);)next-=1;if(next===-1){shouldContinue=!1;break}const{hasValue:nextRangeHasValue,matrix}=rangeHasValue(worksheet,next,destRange.startColumn,next,destRange.endColumn);if(currentPositionHasValue&&!nextRangeHasValue&&!firstMove){shouldContinue=!1;break}else{if(matrix.getLength()!==0){let min=next;matrix.forValue(row=>{min=Math.min(row,min)}),destRange.startRow=min}else destRange.startRow=next;if(destRange.endRow=destRange.startRow,!currentPositionHasValue&&nextRangeHasValue){shouldContinue=!1;break}currentPositionHasValue=nextRangeHasValue,firstMove=!1}}if(core.Direction.DOWN===direction){let next=destRange.endRow+1;for(;next<worksheet.getRowCount()&&!worksheet.getRowVisible(next);)next+=1;if(next===worksheet.getRowCount()){shouldContinue=!1;break}const{hasValue:nextRangeHasValue,matrix}=rangeHasValue(worksheet,next,destRange.startColumn,next,destRange.endColumn);if(currentPositionHasValue&&!nextRangeHasValue&&!firstMove){shouldContinue=!1;break}else{if(matrix.getLength()!==0){let max=next;matrix.forValue((row,_2,value)=>{max=Math.max(row+(value.rowSpan||1)-1,max)}),destRange.endRow=max}else destRange.endRow=next;if(destRange.startRow=destRange.endRow,!currentPositionHasValue&&nextRangeHasValue){shouldContinue=!1;break}currentPositionHasValue=nextRangeHasValue,firstMove=!1}}if(core.Direction.LEFT===direction){let next=destRange.startColumn-1;for(;next>-1&&!worksheet.getColVisible(next);)next-=1;if(next===-1){shouldContinue=!1;break}const{hasValue:nextRangeHasValue,matrix}=rangeHasValue(worksheet,destRange.startRow,next,destRange.endRow,next);if(currentPositionHasValue&&!nextRangeHasValue&&!firstMove){shouldContinue=!1;break}else{if(matrix.getLength()!==0){let min=next;matrix.forValue((_2,col)=>{min=Math.min(col,min)}),destRange.startColumn=min}else destRange.startColumn=next;if(destRange.endColumn=destRange.startColumn,!currentPositionHasValue&&nextRangeHasValue){shouldContinue=!1;break}currentPositionHasValue=nextRangeHasValue,firstMove=!1}}if(core.Direction.RIGHT===direction){let next=destRange.endColumn+1;for(;next<worksheet.getColumnCount()&&!worksheet.getColVisible(next);)next+=1;if(next===worksheet.getColumnCount()){shouldContinue=!1;break}const{hasValue:nextRangeHasValue,matrix}=rangeHasValue(worksheet,destRange.startRow,next,destRange.endRow,next);if(currentPositionHasValue&&!nextRangeHasValue&&!firstMove){shouldContinue=!1;break}else{if(matrix.getLength()!==0){let max=next;matrix.forValue((_2,col,value)=>{max=Math.max(col+(value.colSpan||1)-1,max)}),destRange.endColumn=max}else destRange.endColumn=next;if(destRange.startColumn=destRange.endColumn,!currentPositionHasValue&&nextRangeHasValue){shouldContinue=!1;break}currentPositionHasValue=nextRangeHasValue,firstMove=!1}}}return sheets.alignToMergedCellsBorders(destRange,worksheet,!0)}__name(findNextGapRange,"findNextGapRange");function findNextRangeExpand(startRange,direction,worksheet){return findNextRange(startRange,direction,worksheet,void 0,!1,1,!1)}__name(findNextRangeExpand,"findNextRangeExpand");function expandToNextGapRange(startRange,direction,worksheet){const next=findNextGapRange(startRange,direction,worksheet);return sheets.alignToMergedCellsBorders(core.Rectangle.union(next,startRange),worksheet,!0)}__name(expandToNextGapRange,"expandToNextGapRange");function expandToNextCell(startRange,direction,worksheet){const next=findNextRangeExpand(startRange,direction,worksheet),destRange={startRow:Math.min(startRange.startRow,next.startRow),startColumn:Math.min(startRange.startColumn,next.startColumn),endRow:Math.max(startRange.endRow,next.endRow),endColumn:Math.max(startRange.endColumn,next.endColumn)};return sheets.alignToMergedCellsBorders(core.Rectangle.union(startRange,destRange),worksheet)}__name(expandToNextCell,"expandToNextCell");function shrinkToNextGapRange(startRange,anchorRange,direction,worksheet){const reversedDirection=core.getReverseDirection(direction),nextGap=findNextGapRange(getEdgeOfRange(startRange,reversedDirection,worksheet),direction,worksheet);return direction===core.Direction.UP&&nextGap.startRow<=startRange.startRow?sheets.alignToMergedCellsBorders({...anchorRange,startColumn:startRange.startColumn,endColumn:startRange.endColumn},worksheet,!0):direction===core.Direction.DOWN&&nextGap.endRow>=startRange.endRow?sheets.alignToMergedCellsBorders({...anchorRange,startColumn:startRange.startColumn,endColumn:startRange.endColumn},worksheet,!0):direction===core.Direction.LEFT&&nextGap.startColumn<=startRange.startColumn?sheets.alignToMergedCellsBorders({...anchorRange,startRow:startRange.startRow,endRow:startRange.endRow},worksheet,!0):direction===core.Direction.RIGHT&&nextGap.endColumn>=startRange.endColumn?sheets.alignToMergedCellsBorders({...anchorRange,startRow:startRange.startRow,endRow:startRange.endRow},worksheet,!0):core.Rectangle.union(core.Rectangle.clone(anchorRange),nextGap)}__name(shrinkToNextGapRange,"shrinkToNextGapRange");function shrinkToNextCell(startRange,direction,worksheet){const reversedDirection=core.getReverseDirection(direction),shrinkFromEdge=getEdgeOfRange(startRange,reversedDirection,worksheet),otherEdge=getEdgeOfRange(startRange,direction,worksheet),next=findNextRangeExpand(shrinkFromEdge,direction,worksheet);return sheets.alignToMergedCellsBorders(core.Rectangle.union(otherEdge,next),worksheet,!1)}__name(shrinkToNextCell,"shrinkToNextCell");function expandToWholeSheet(worksheet){return{startRow:0,startColumn:0,endRow:worksheet.getRowCount()-1,endColumn:worksheet.getColumnCount()-1,rangeType:core.RANGE_TYPE.ALL}}__name(expandToWholeSheet,"expandToWholeSheet");function getEdgeOfRange(startRange,direction,worksheet){let destRange;switch(direction){case core.Direction.UP:destRange={startRow:startRange.startRow,startColumn:startRange.startColumn,endRow:startRange.startRow,endColumn:startRange.endColumn,rangeType:core.RANGE_TYPE.NORMAL};break;case core.Direction.DOWN:destRange={startRow:startRange.endRow,startColumn:startRange.startColumn,endRow:startRange.endRow,endColumn:startRange.endColumn,rangeType:core.RANGE_TYPE.NORMAL};break;case core.Direction.LEFT:destRange={startRow:startRange.startRow,startColumn:startRange.startColumn,endRow:startRange.endRow,endColumn:startRange.startColumn,rangeType:core.RANGE_TYPE.NORMAL};break;case core.Direction.RIGHT:destRange={startRow:startRange.startRow,startColumn:startRange.endColumn,endRow:startRange.endRow,endColumn:startRange.endColumn,rangeType:core.RANGE_TYPE.NORMAL};break;default:throw new Error("Invalid direction")}return sheets.alignToMergedCellsBorders(destRange,worksheet,!1)}__name(getEdgeOfRange,"getEdgeOfRange");function rangeHasValue(worksheet,row,col,rowEnd,colEnd){let hasValue=!1;const matrix=worksheet.getMatrixWithMergedCells(row,col,rowEnd,colEnd).forValue((_2,__,value)=>{if(cellHasValue(value))return hasValue=!0,!1});return{hasValue,matrix}}__name(rangeHasValue,"rangeHasValue");function getStartRange(range,primary,direction){const ret=core.Rectangle.clone(range);if(primary==null)return ret;switch(direction){case core.Direction.UP:case core.Direction.DOWN:ret.startColumn=ret.endColumn=primary.actualColumn;break;case core.Direction.LEFT:case core.Direction.RIGHT:ret.startRow=ret.endRow=primary.actualRow;break}return ret}__name(getStartRange,"getStartRange");function checkIfShrink(selection,direction,worksheet){var _a61,_b,_c,_d;const{primary,range}=selection,startRange=core.Rectangle.clone(range);switch(direction){case core.Direction.UP:case core.Direction.DOWN:startRange.startRow=(_a61=primary==null?void 0:primary.startRow)!=null?_a61:range.startRow,startRange.endRow=(_b=primary==null?void 0:primary.endRow)!=null?_b:range.startRow;break;case core.Direction.LEFT:case core.Direction.RIGHT:startRange.startColumn=(_c=primary==null?void 0:primary.startColumn)!=null?_c:range.startColumn,startRange.endColumn=(_d=primary==null?void 0:primary.endColumn)!=null?_d:range.startColumn;break}const anchorRange=getEdgeOfRange(startRange,direction,worksheet);switch(direction){case core.Direction.DOWN:return range.startRow<anchorRange.startRow;case core.Direction.UP:return range.endRow>anchorRange.endRow;case core.Direction.LEFT:return anchorRange.endColumn<range.endColumn;case core.Direction.RIGHT:return anchorRange.startColumn>range.startColumn}}__name(checkIfShrink,"checkIfShrink");function isAllRowsCovered(allRowRanges,ranges){let start=allRowRanges[0].startRow,end=allRowRanges[0].endRow;allRowRanges.forEach(range=>{const{startRow,endRow}=range;start=Math.min(start,startRow),end=Math.max(end,endRow)});const covered=new Array(end-start+1).fill(!1);return ranges.forEach(range=>{const{startRow,endRow}=range;for(let i=Math.max(startRow,start);i<=Math.min(endRow,end);i++)covered[i-start]=!0}),allRowRanges.every(range=>{const{startRow,endRow}=range;for(let i=startRow;i<=endRow;i++)if(!covered[i-start])return!1;return!0})}__name(isAllRowsCovered,"isAllRowsCovered");function isAllColumnsCovered(allColumnRanges,ranges){let start=allColumnRanges[0].startColumn,end=allColumnRanges[0].endColumn;allColumnRanges.forEach(range=>{const{startColumn,endColumn}=range;start=Math.min(start,startColumn),end=Math.max(end,endColumn)});const covered=new Array(end-start+1).fill(!1);return ranges.forEach(range=>{const{startColumn,endColumn}=range;for(let i=Math.max(startColumn,start);i<=Math.min(endColumn,end);i++)covered[i-start]=!0}),allColumnRanges.every(range=>{const{startColumn,endColumn}=range;for(let i=startColumn;i<=endColumn;i++)if(!covered[i-start])return!1;return!0})}__name(isAllColumnsCovered,"isAllColumnsCovered");function getMergeableSelectionsByType(type,selections){return selections?type==="mergeAll"?selections.filter(selection=>!(selection.startRow===selection.endRow&&selection.startColumn===selection.endColumn)):type==="mergeVertical"?selections.filter(selection=>selection.startRow!==selection.endRow):type==="mergeHorizontal"?selections.filter(selection=>selection.startColumn!==selection.endColumn):selections:null}__name(getMergeableSelectionsByType,"getMergeableSelectionsByType");function cellHasValue(cell){return cell.v!==void 0&&cell.v!==null&&cell.v!==""||cell.p!==void 0}__name(cellHasValue,"cellHasValue");var JumpOver=(JumpOver2=>(JumpOver2[JumpOver2.moveStopeOne=0]="moveStopeOne",JumpOver2[JumpOver2.moveGap=1]="moveGap",JumpOver2[JumpOver2.moveStepPage=2]="moveStepPage",JumpOver2[JumpOver2.moveStepEnd=3]="moveStepEnd",JumpOver2))(JumpOver||{});const MoveSelectionCommand={id:"sheet.command.move-selection",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{if(!params)return!1;const target=sheets.getSheetCommandTarget(accessor.get(core.IUniverInstanceService));if(!target)return!1;const{workbook,worksheet}=target,selection=sheets.getSelectionsService(accessor,params.fromCurrentSelection).getCurrentLastSelection();if(!selection)return!1;const{direction,jumpOver,extra}=params,{range,primary}=selection,startRange=getStartRange(range,primary,direction),next=jumpOver===1?findNextGapRange(startRange,direction,worksheet):findNextRange(startRange,direction,worksheet),destRange=sheets.getCellAtRowCol(next.startRow,next.startColumn,worksheet);if(core.Rectangle.equals(destRange,startRange))return!1;const unitId=workbook.getUnitId();accessor.get(ShortcutExperienceService).remove({unitId,sheetId:worksheet.getSheetId(),keycode:ui.KeyCode.TAB});const selections=[{range:core.Rectangle.clone(destRange),primary:{startRow:destRange.startRow,startColumn:destRange.startColumn,endRow:destRange.endRow,endColumn:destRange.endColumn,actualRow:next.startRow,actualColumn:next.startColumn,isMerged:destRange.isMerged,isMergedMainCell:destRange.startRow===next.startRow&&destRange.startColumn===next.startColumn}}];return accessor.get(core.ICommandService).executeCommand(sheets.SetSelectionsOperation.id,{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),selections,type:sheets.SelectionMoveType.MOVE_END,extra})},"handler")},MoveSelectionEnterAndTabCommand={id:"sheet.command.move-selection-enter-tab",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{var _a61;if(!params)return!1;const target=sheets.getSheetCommandTarget(accessor.get(core.IUniverInstanceService));if(!target)return!1;const{workbook,worksheet}=target,selectionsService=sheets.getSelectionsService(accessor),{direction,keycode}=params,isReverse=direction===core.Direction.LEFT||direction===core.Direction.UP,selections=selectionsService.getCurrentSelections().concat(),currentSelectionIndex=selections.findIndex(s=>s.primary),selection=selections[currentSelectionIndex];if(!selection)return!1;const delta=isReverse?-1:1,nextSelection=currentSelectionIndex+delta!==selections.length?selections[currentSelectionIndex+delta]:selections[0],nextSelectionIndex=selections.findIndex(s=>s===nextSelection),unitId=workbook.getUnitId(),sheetId=worksheet.getSheetId();if(!selection)return!1;const{range}=selection,primary=selection.primary;let startRange=getStartRange(range,primary,direction);const shortcutExperienceService=accessor.get(ShortcutExperienceService),shortcutExperienceParam=shortcutExperienceService.getCurrentBySearch({unitId,sheetId,keycode:ui.KeyCode.TAB});let resultRange;const{startRow,endRow,startColumn,endColumn}=range,isLastCell=isReverse?primary.startRow===startRow&&primary.startColumn===startColumn:primary.endRow===endRow&&primary.endColumn===endColumn;if(core.Rectangle.equals(range,primary)){if(keycode===ui.KeyCode.TAB)shortcutExperienceParam==null&&shortcutExperienceService.addOrUpdate({unitId,sheetId,keycode:ui.KeyCode.TAB,selection});else{const selectionRemain=shortcutExperienceParam==null?void 0:shortcutExperienceParam.selection;if(selectionRemain!=null){const{range:range2,primary:primary2}=selectionRemain;startRange=getStartRange(range2,primary2,direction)}shortcutExperienceService.remove({unitId,sheetId,keycode:ui.KeyCode.TAB})}const next=findNextRange(startRange,direction,worksheet),destRange=sheets.getCellAtRowCol(next.startRow,next.startColumn,worksheet);if(core.Rectangle.equals(destRange,startRange))return!1;resultRange={range:core.Rectangle.clone(destRange),primary:{startRow:destRange.startRow,startColumn:destRange.startColumn,endRow:destRange.endRow,endColumn:destRange.endColumn,actualRow:next.startRow,actualColumn:next.startColumn,isMerged:destRange.isMerged,isMergedMainCell:destRange.startRow===next.startRow&&destRange.startColumn===next.startColumn}}}else{shortcutExperienceService.remove({unitId,sheetId,keycode:ui.KeyCode.TAB});const newPrimary=core.Tools.deepClone(primary),next=isLastCell?nextSelection.range:findNextRange({startRow:newPrimary.startRow,startColumn:newPrimary.startColumn,endRow:newPrimary.endRow,endColumn:newPrimary.endColumn},direction,worksheet,{startRow,endRow,startColumn,endColumn}),useLeftTopAsDest=isLastCell&&isReverse,destRange=useLeftTopAsDest?sheets.getCellAtRowCol(next.endRow,next.endColumn,worksheet):sheets.getCellAtRowCol(next.startRow,next.startColumn,worksheet);resultRange={range:isLastCell?nextSelection.range:core.Rectangle.clone(range),primary:{startRow:destRange.startRow,startColumn:destRange.startColumn,endRow:destRange.endRow,endColumn:destRange.endColumn,actualRow:useLeftTopAsDest?destRange.startRow:next.startRow,actualColumn:useLeftTopAsDest?destRange.startColumn:next.startColumn,isMerged:destRange.isMerged,isMergedMainCell:destRange.startRow===next.startRow&&destRange.startColumn===next.startColumn},style:isLastCell?nextSelection.style:selection.style}}isLastCell?(selections[currentSelectionIndex].primary=null,selections[nextSelectionIndex]=resultRange,selectionsService.setSelections(unitId,sheetId,[],sheets.SelectionMoveType.MOVE_END)):selections[currentSelectionIndex]=resultRange;const rs=accessor.get(core.ICommandService).executeCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId:sheetId,type:sheets.SelectionMoveType.MOVE_END,selections,extra:params.extra}),selectionService=(_a61=accessor.get(engineRender.IRenderManagerService).getRenderById(unitId))==null?void 0:_a61.with(ISheetSelectionRenderService);return selectionService==null||selectionService.refreshSelectionMoveEnd(),rs},"handler")},ExpandSelectionCommand={id:"sheet.command.expand-selection",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{if(!params)return!1;const target=sheets.getSheetCommandTarget(accessor.get(core.IUniverInstanceService));if(!target)return!1;const{worksheet,unitId,subUnitId}=target,selection=sheets.getSelectionsService(accessor).getCurrentLastSelection();if(!selection)return!1;const{range:startRange,primary}=selection,{jumpOver,direction,extra}=params,destRange=checkIfShrink(selection,direction,worksheet)?jumpOver===1?shrinkToNextGapRange(startRange,{...core.Rectangle.clone(primary),rangeType:core.RANGE_TYPE.NORMAL},direction,worksheet):shrinkToNextCell(startRange,direction,worksheet):jumpOver===1?expandToNextGapRange(startRange,direction,worksheet):expandToNextCell(startRange,direction,worksheet);return destRange.rangeType=selection.range.rangeType,core.Rectangle.equals(destRange,startRange)?!1:accessor.get(core.ICommandService).syncExecuteCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId,type:sheets.SelectionMoveType.ONLY_SET,selections:[{range:destRange,primary}],extra})},"handler")},SelectAllCommand={id:"sheet.command.select-all",type:core.CommandType.COMMAND,handler:__name(async(accessor,params={expandToGapFirst:!0,loop:!1})=>{const target=sheets.getSheetCommandTarget(accessor.get(core.IUniverInstanceService));if(!target)return!1;const selection=sheets.getSelectionsService(accessor).getCurrentLastSelection();if(!selection)return!1;const selectAllService=accessor.get(SelectAllService),{worksheet,unitId,subUnitId}=target,id=`${unitId}|${subUnitId}`;id!==selectAllService.selectedRangeWorksheet&&(selectAllService.rangesStack=[],selectAllService.selectedRangeWorksheet=id);const maxRow=worksheet.getMaxRows(),maxCol=worksheet.getMaxColumns(),{expandToGapFirst,loop}=params,{range,primary}=selection,isWholeSheetSelected=range.endColumn===maxCol-1&&range.endRow===maxRow-1&&range.startRow===0&&range.startColumn===0;selectAllService.rangesStack.some(s=>core.Rectangle.equals(s,range))||(selectAllService.rangesStack=[],selectAllService.rangesStack.push(range));let destRange;if(isWholeSheetSelected)if(loop){if(selectAllService.rangesStack.findIndex(s=>core.Rectangle.equals(s,range))!==selectAllService.rangesStack.length-1)return!1;destRange=selectAllService.rangesStack[0]}else return!1;else expandToGapFirst?(destRange=sheets.expandToContinuousRange(range,{left:!0,right:!0,up:!0,down:!0},worksheet),core.Rectangle.equals(destRange,range)&&(destRange=expandToWholeSheet(worksheet))):destRange=expandToWholeSheet(worksheet);return selectAllService.rangesStack.some(s=>core.Rectangle.equals(s,destRange))||selectAllService.rangesStack.push(destRange),accessor.get(core.ICommandService).executeCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId,selections:[{range:destRange,primary}]})},"handler")};var __defProp$M=Object.defineProperty,__getOwnPropDesc$M=Object.getOwnPropertyDescriptor,__decorateClass$M=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$M(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$M(target,key,result),result},"__decorateClass$M"),__decorateParam$M=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$M"),_a10;exports.SheetScrollManagerService=(_a10=class{constructor(_context,_sheetSkeletonManagerService){__publicField(this,"_scrollStateMap",new Map);__publicField(this,"_rawScrollInfo$",new rxjs.BehaviorSubject(null));__publicField(this,"rawScrollInfo$",this._rawScrollInfo$.asObservable());__publicField(this,"validViewportScrollInfo$",new rxjs.BehaviorSubject(null));__publicField(this,"_searchParamForScroll",null);this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService}dispose(){this._rawScrollInfo$.complete()}setSearchParam(param){this._searchParamForScroll=param}setSearchParamAndRefresh(param){this._searchParamForScroll=param,this._scrollStateNext(param)}getScrollStateByParam(param){return this._getCurrentScroll(param)}getCurrentScrollState(){return this._getCurrentScroll(this._searchParamForScroll)}setScrollInfoAndEmitEvent(param){this._setScrollState(param),this._scrollStateNext(param)}setScrollStateToCurrSheet(scroll){this._searchParamForScroll!=null&&this._setScrollState({...this._searchParamForScroll,...scroll})}clear(){this._searchParamForScroll!=null&&this._clearByParamAndNotify(this._searchParamForScroll)}calcViewportScrollFromRowColOffset(scrollInfo){if(!scrollInfo)return{viewportScrollX:0,viewportScrollY:0};let{sheetViewStartColumn,sheetViewStartRow,offsetX,offsetY}=scrollInfo;sheetViewStartRow=sheetViewStartRow||0,offsetY=offsetY||0;const skeleton=this._sheetSkeletonManagerService.getCurrentSkeleton(),rowAcc=(skeleton==null?void 0:skeleton.rowHeightAccumulation[sheetViewStartRow-1])||0,viewportScrollX=((skeleton==null?void 0:skeleton.columnWidthAccumulation[sheetViewStartColumn-1])||0)+offsetX,viewportScrollY=rowAcc+offsetY;return{viewportScrollX,viewportScrollY}}_setScrollState(scrollInfo){const{unitId,sheetId,sheetViewStartColumn,sheetViewStartRow,offsetX,offsetY}=scrollInfo;this._scrollStateMap.has(unitId)||this._scrollStateMap.set(unitId,new Map);const worksheetScrollInfoMap=this._scrollStateMap.get(unitId),newScrollInfo={sheetViewStartRow,sheetViewStartColumn,offsetX,offsetY};worksheetScrollInfoMap.set(sheetId,newScrollInfo)}_clearByParamAndNotify(param){this._setScrollState({...param,sheetViewStartRow:0,sheetViewStartColumn:0,offsetX:0,offsetY:0}),this._scrollStateNext(param)}_getCurrentScroll(param){var _a61;const emptyState={sheetViewStartRow:0,sheetViewStartColumn:0,offsetX:0,offsetY:0};if(param==null)return emptyState;const{unitId,sheetId}=param;return((_a61=this._scrollStateMap.get(unitId))==null?void 0:_a61.get(sheetId))||emptyState}_scrollStateNext(param){const scrollInfo=this._getCurrentScroll(param);this._rawScrollInfo$.next(scrollInfo)}},__name(_a10,"SheetScrollManagerService"),_a10);exports.SheetScrollManagerService=__decorateClass$M([__decorateParam$M(1,core.Inject(exports.SheetSkeletonManagerService))],exports.SheetScrollManagerService);const SetScrollOperation={id:"sheet.operation.set-scroll",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>{if(!params)return!1;const{unitId,sheetId,offsetX,offsetY,sheetViewStartColumn,sheetViewStartRow}=params;return accessor.get(engineRender.IRenderManagerService).getRenderById(unitId).with(exports.SheetScrollManagerService).setScrollInfoAndEmitEvent({unitId,sheetId,offsetX,offsetY,sheetViewStartRow,sheetViewStartColumn}),!0},"handler")},SetScrollRelativeCommand={id:"sheet.command.set-scroll-relative",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),renderManagerSrv=accessor.get(engineRender.IRenderManagerService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{unitId,subUnitId}=target,currentScroll=renderManagerSrv.getRenderById(unitId).with(exports.SheetScrollManagerService).getCurrentScrollState(),{offsetX=0,offsetY=0}=params||{},{sheetViewStartRow=0,sheetViewStartColumn=0,offsetX:currentOffsetX=0,offsetY:currentOffsetY=0}=currentScroll||{};return commandService.executeCommand(SetScrollOperation.id,{unitId,sheetId:subUnitId,sheetViewStartRow,sheetViewStartColumn,offsetX:currentOffsetX+offsetX,offsetY:currentOffsetY+offsetY})},"handler")},ScrollCommand={id:"sheet.command.scroll-view",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{if(!params)return!1;const univerInstanceService=accessor.get(core.IUniverInstanceService),renderManagerSrv=accessor.get(engineRender.IRenderManagerService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{workbook,worksheet,unitId}=target,currentScroll=renderManagerSrv.getRenderById(unitId).with(exports.SheetScrollManagerService).getCurrentScrollState();if(!worksheet)return!1;const{sheetViewStartRow,sheetViewStartColumn,offsetX,offsetY}=params,{sheetViewStartColumn:currentColumn,sheetViewStartRow:currentRow,offsetX:currentOffsetX,offsetY:currentOffsetY}=currentScroll||{},{xSplit,ySplit}=target.worksheet.getConfig().freeze;return accessor.get(core.ICommandService).syncExecuteCommand(SetScrollOperation.id,{unitId:workbook.getUnitId(),sheetId:worksheet.getSheetId(),sheetViewStartRow:sheetViewStartRow!=null?sheetViewStartRow:currentRow!=null?currentRow:0+ySplit,sheetViewStartColumn:sheetViewStartColumn!=null?sheetViewStartColumn:currentColumn!=null?currentColumn:0+xSplit,offsetX:offsetX!=null?offsetX:currentOffsetX,offsetY:offsetY!=null?offsetY:currentOffsetY})},"handler")},ScrollToCellCommand={id:"sheet.command.scroll-to-cell",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{const instanceService=accessor.get(core.IUniverInstanceService);return accessor.get(engineRender.IRenderManagerService).getRenderById(instanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports.SheetsScrollRenderController).scrollToRange(params.range,params.forceTop,params.forceLeft)},"handler")},ResetScrollCommand={id:"sheet.command.scroll-view-reset",type:core.CommandType.COMMAND,handler:__name(async accessor=>{const univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{subUnitId,unitId}=target;return accessor.get(core.ICommandService).executeCommand(SetScrollOperation.id,{unitId,sheetId:subUnitId,sheetViewStartRow:0,sheetViewStartColumn:0})},"handler")};var __defProp$L=Object.defineProperty,__getOwnPropDesc$L=Object.getOwnPropertyDescriptor,__decorateClass$L=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$L(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$L(target,key,result),result},"__decorateClass$L"),__decorateParam$L=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$L");const SHEET_NAVIGATION_COMMANDS$1=[MoveSelectionCommand.id,MoveSelectionEnterAndTabCommand.id],MOUSE_WHEEL_SPEED_SMOOTHING_FACTOR=3;var _a11;exports.SheetsScrollRenderController=(_a11=class extends core.Disposable{constructor(_context,_injector,_sheetSkeletonManagerService,_contextService,_commandService,_renderManagerService,_scrollManagerService){super(),this._context=_context,this._injector=_injector,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._contextService=_contextService,this._commandService=_commandService,this._renderManagerService=_renderManagerService,this._scrollManagerService=_scrollManagerService,this._initCommandListener(),this._wheelEventListener(),this._scrollBarEventListener(),this._initSkeletonListener()}_wheelEventListener(){const{scene}=this._context;if(!scene)return;const viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);viewMain&&this.disposeWithMe(scene.onMouseWheel$.subscribeEvent((evt,state)=>{if(evt.ctrlKey||!this._contextService.getContextValue(core.FOCUSING_SHEET))return;let offsetX=0,offsetY=0;const isLimitedStore=viewMain.limitedScroll();offsetX=evt.deltaX,evt.shiftKey?offsetX=(evt.deltaY||evt.deltaX)*MOUSE_WHEEL_SPEED_SMOOTHING_FACTOR:offsetY=evt.deltaY,this._commandService.executeCommand(SetScrollRelativeCommand.id,{offsetX,offsetY}),this._context.scene.makeDirty(!0),isLimitedStore&&!isLimitedStore.isLimitedX&&!isLimitedStore.isLimitedY&&(evt.preventDefault(),scene.getParent().classType===engineRender.RENDER_CLASS_TYPE.SCENE_VIEWER&&state.stopPropagation()),viewMain.isWheelPreventDefaultX&&viewMain.isWheelPreventDefaultY&&evt.preventDefault()}))}_scrollBarEventListener(){const{scene}=this._context;if(scene==null)return;const viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);viewportMain&&(this.disposeWithMe(core.toDisposable(this._scrollManagerService.rawScrollInfo$.subscribe(rawScrollInfo=>{var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(!skeleton)return;if(rawScrollInfo==null){viewportMain.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0});return}const{sheetViewStartRow,sheetViewStartColumn,offsetX,offsetY}=rawScrollInfo,{startX,startY}=skeleton.getCellWithCoordByIndex(sheetViewStartRow,sheetViewStartColumn,!1),viewportScrollX=startX+offsetX,viewportScrollY=startY+offsetY;viewportMain.scrollToViewportPos({viewportScrollX,viewportScrollY})}))),this.disposeWithMe(viewportMain.onScrollAfter$.subscribeEvent(scrollAfterParam=>{var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null||scrollAfterParam.isTrigger===!1)return;const sheetObject=this._getSheetObject();if(skeleton==null||sheetObject==null)return;const{viewportScrollX,viewportScrollY,scrollX,scrollY}=scrollAfterParam,{row,column,rowOffset,columnOffset}=skeleton.getDecomposedOffset(viewportScrollX,viewportScrollY),scrollInfo={sheetViewStartRow:row,sheetViewStartColumn:column,offsetX:columnOffset,offsetY:rowOffset};this._scrollManagerService.setScrollStateToCurrSheet(scrollInfo),this._scrollManagerService.validViewportScrollInfo$.next({...scrollInfo,viewportScrollX,viewportScrollY,scrollX,scrollY})})),this.disposeWithMe(viewportMain.onScrollByBar$.subscribeEvent(param=>{var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null||param.isTrigger===!1)return;const sheetObject=this._getSheetObject();if(skeleton==null||sheetObject==null)return;const{viewportScrollX=0,viewportScrollY=0}=param,{row,column,rowOffset,columnOffset}=skeleton.getDecomposedOffset(viewportScrollX,viewportScrollY);this._commandService.executeCommand(ScrollCommand.id,{sheetViewStartRow:row,sheetViewStartColumn:column,offsetX:columnOffset,offsetY:rowOffset})})))}_initSkeletonListener(){this.disposeWithMe(core.toDisposable(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(param=>{if(param==null)return;const scrollParam={unitId:param.unitId,sheetId:param.sheetId};this._scrollManagerService.setSearchParam(scrollParam);const sheetObject=this._getSheetObject();if(!sheetObject)return;const viewportMain=sheetObject.scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),currScrollInfo=this._scrollManagerService.getScrollStateByParam(scrollParam),{viewportScrollX,viewportScrollY}=this._scrollManagerService.calcViewportScrollFromRowColOffset(currScrollInfo);viewportMain&&(currScrollInfo?(viewportMain.viewportScrollX=viewportScrollX,viewportMain.viewportScrollY=viewportScrollY):(viewportMain.viewportScrollX=0,viewportMain.viewportScrollY=0),this._updateSceneSize(param))})))}scrollToRange(range,forceTop,forceLeft){let{endRow,endColumn,startColumn,startRow}=range;const bounding=this._getViewportBounding();if(range.rangeType===core.RANGE_TYPE.ROW?(startColumn=0,endColumn=0):range.rangeType===core.RANGE_TYPE.COLUMN&&(startRow=0,endRow=0),bounding&&!forceTop&&!forceLeft){const row=bounding.startRow>endRow?startRow:endRow,col=bounding.startColumn>endColumn?startColumn:endColumn;return this._scrollToCell(row,col)}else return this._scrollToCell(startRow,startColumn,forceTop,forceLeft)}scrollToCell(row,column){const worksheet=this._context.unit.getActiveSheet(),{ySplit:freezeYSplit,xSplit:freezeXSplit}=worksheet.getFreeze();return this._commandService.syncExecuteCommand(ScrollCommand.id,{sheetViewStartRow:row-freezeYSplit,sheetViewStartColumn:column-freezeXSplit,offsetX:0,offsetY:0})}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(SHEET_NAVIGATION_COMMANDS$1.includes(command.id))this._scrollToSelection();else if(command.id===sheets.ScrollToCellOperation.id){const param=command.params;this.scrollToRange(param)}else if(command.id===ExpandSelectionCommand.id){const param=command.params;this._scrollToSelectionForExpand(param)}else command.id===sheets.SetSelectionsOperation.id&&command.params.reveal&&this._scrollToSelection()}))}_scrollToSelectionForExpand(param){setTimeout(()=>{const selection=this._getSelectionsService().getCurrentLastSelection();if(selection==null)return;const{startRow,startColumn,endRow,endColumn}=selection.range,bounds=this._getViewportBounding();if(bounds==null)return;const{startRow:viewportStartRow,startColumn:viewportStartColumn,endRow:viewportEndRow,endColumn:viewportEndColumn}=bounds;let row=0,column=0;startRow>viewportStartRow?row=endRow:endRow<viewportEndRow?row=startRow:row=viewportStartRow,startColumn>viewportStartColumn?column=endColumn:endColumn<viewportEndColumn?column=startColumn:column=viewportStartColumn,param.direction===core.Direction.DOWN?row=endRow:param.direction===core.Direction.UP?row=startRow:param.direction===core.Direction.RIGHT?column=endColumn:param.direction===core.Direction.LEFT&&(column=startColumn),this._scrollToCell(row,column)},0)}_getFreeze(){var _a61;const snapshot=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton.getWorksheetConfig();if(snapshot!=null)return snapshot.freeze}_updateSceneSize(param){var _a61;if(param==null)return;const{unitId}=this._context,{skeleton}=param,scene=(_a61=this._renderManagerService.getRenderById(unitId))==null?void 0:_a61.scene;if(skeleton==null||scene==null)return;const{rowTotalHeight,columnTotalWidth,rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton,worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const zoomRatio=worksheet.getZoomRatio()||1;scene==null||scene.setScaleValue(zoomRatio,zoomRatio),scene==null||scene.transformByState({width:rowHeaderWidthAndMarginLeft+columnTotalWidth,height:columnHeaderHeightAndMarginTop+rowTotalHeight})}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_scrollToSelectionByDirection(range){const bounds=this._getViewportBounding();if(bounds==null)return!1;const{startRow:viewportStartRow,startColumn:viewportStartColumn,endRow:viewportEndRow,endColumn:viewportEndColumn}=bounds;let row=0,column=0;const{startRow,startColumn,endRow,endColumn}=range;startRow>=viewportStartRow&&(row=endRow),endRow<=viewportEndRow&&(row=startRow),startColumn>=viewportStartColumn&&(column=endColumn),endColumn<=viewportEndColumn&&(column=startColumn),this._scrollToCell(row,column)}_scrollToSelection(targetIsActualRowAndColumn=!0){var _a61;const selection=this._getSelectionsService().getCurrentLastSelection();if(!selection)return;const{startRow,startColumn,actualRow,actualColumn}=(_a61=selection.primary)!=null?_a61:selection.range,selectionStartRow=targetIsActualRowAndColumn&&actualRow!=null?actualRow:startRow,selectionStartColumn=targetIsActualRowAndColumn&&actualColumn!=null?actualColumn:startColumn;this._scrollToCell(selectionStartRow,selectionStartColumn)}_getSelectionsService(){return sheets.getSelectionsService(this._injector)}_getViewportBounding(){var _a61,_b;const scene=(_a61=this._getSheetObject())==null?void 0:_a61.scene;if(scene==null)return;const viewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(viewport==null)return;const skeleton=(_b=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_b.skeleton;if(skeleton==null)return;const vpInfo=viewport.calcViewportInfo();return skeleton.getRangeByViewBound(vpInfo.viewBound)}_scrollToCell(row,column,forceTop=!1,forceLeft=!1){var _a61,_b,_c,_d;const{rowHeightAccumulation,columnWidthAccumulation}=(_b=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton)!=null?_b:{};if(rowHeightAccumulation==null||columnWidthAccumulation==null)return!1;const scene=(_c=this._getSheetObject())==null?void 0:_c.scene;if(scene==null)return!1;const viewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(viewport==null)return!1;const skeleton=(_d=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_d.skeleton;if(skeleton==null)return!1;const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return!1;row=core.Tools.clamp(row,0,rowHeightAccumulation.length-1),column=core.Tools.clamp(column,0,columnWidthAccumulation.length-1);const{startColumn:scrollableStartCol,startRow:scrollableStartRow,ySplit:freezedRowCount,xSplit:freezedColCount}=worksheet.getFreeze(),bounds=this._getViewportBounding();if(bounds==null)return!1;const{startRow:viewMainStartRow,startColumn:viewMainStartColumn,endRow:viewMainEndRow,endColumn:viewMainEndColumn}=bounds;skeleton.getVisibleRangeByViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);let startSheetViewRow,startSheetViewColumn;if(row>=scrollableStartRow&&column>=scrollableStartCol-freezedRowCount&&(row<=viewMainStartRow&&(startSheetViewRow=row,forceTop=!0),row>=viewMainEndRow)){const minRowAccumulation=rowHeightAccumulation[row]-viewport.height;for(let r2=viewMainStartRow;r2<=row&&(startSheetViewRow=r2+1,!(rowHeightAccumulation[r2]>=minRowAccumulation));r2++);}if(column>=scrollableStartCol&&row>=scrollableStartRow-freezedRowCount&&(column<=viewMainStartColumn&&(startSheetViewColumn=column,forceLeft=!0),column>=viewMainEndColumn)){const minColumnAccumulation=columnWidthAccumulation[column]-viewport.width;for(let c=viewMainStartColumn;c<=column&&(startSheetViewColumn=c+1,!(columnWidthAccumulation[c]>=minColumnAccumulation));c++);}if(startSheetViewRow===void 0&&startSheetViewColumn===void 0)return!1;let{offsetX,offsetY,sheetViewStartRow:preSheetViewStartRow,sheetViewStartColumn:preSheetViewStartColumn}=this._scrollManagerService.getCurrentScrollState()||{};if(startSheetViewRow=startSheetViewRow?Math.min(startSheetViewRow,row):preSheetViewStartRow+freezedRowCount,startSheetViewColumn=startSheetViewColumn?Math.min(startSheetViewColumn,column):preSheetViewStartColumn+freezedColCount,forceLeft){offsetX=0,startSheetViewColumn=column;const hiddenColumns=skeleton.getHiddenColumnsInRange({startColumn:startSheetViewColumn-freezedColCount,endColumn:startSheetViewColumn});startSheetViewColumn=startSheetViewColumn-hiddenColumns.length}if(forceTop){offsetY=0,startSheetViewRow=row;const hiddenRows=skeleton.getHiddenRowsInRange({startRow:startSheetViewRow-freezedRowCount,endRow:startSheetViewRow});startSheetViewRow=startSheetViewRow-hiddenRows.length}return this._commandService.syncExecuteCommand(ScrollCommand.id,{sheetViewStartRow:Math.max(0,startSheetViewRow-freezedRowCount),sheetViewStartColumn:Math.max(0,startSheetViewColumn-freezedColCount),offsetX,offsetY})}},__name(_a11,"SheetsScrollRenderController"),_a11);exports.SheetsScrollRenderController=__decorateClass$L([__decorateParam$L(1,core.Inject(core.Injector)),__decorateParam$L(2,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$L(3,core.IContextService),__decorateParam$L(4,core.ICommandService),__decorateParam$L(5,engineRender.IRenderManagerService),__decorateParam$L(6,core.Inject(exports.SheetScrollManagerService))],exports.SheetsScrollRenderController);const ScrollToRangeOperation={id:"sheet.operation.scroll-to-range",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>{if(!params)return!1;const instanceService=accessor.get(core.IUniverInstanceService);return accessor.get(engineRender.IRenderManagerService).getRenderById(instanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports.SheetsScrollRenderController).scrollToRange(params.range,params.forceTop,params.forceLeft)},"handler")},_CellEditorManagerService=class _CellEditorManagerService{constructor(){__publicField(this,"_state",null);__publicField(this,"_rect",null);__publicField(this,"_state$",new rxjs.BehaviorSubject(null));__publicField(this,"state$",this._state$.asObservable());__publicField(this,"_rect$",new rxjs.BehaviorSubject(null));__publicField(this,"rect$",this._rect$.asObservable());__publicField(this,"_focus",!1);__publicField(this,"_focus$",new rxjs.BehaviorSubject(this._focus));__publicField(this,"focus$",this._focus$.asObservable())}dispose(){this._state$.complete(),this._state=null,this._rect$.complete(),this._rect=null}setState(param){this._state=param,this._refresh(param)}getRect(){return this._rect}setRect(param){this._rect=param,this._rect$.next(param)}getState(){return this._state}setFocus(param=!1){this._focus=param,this._focus$.next(param)}_refresh(param){this._state$.next(param)}};__name(_CellEditorManagerService,"CellEditorManagerService");let CellEditorManagerService=_CellEditorManagerService;const ICellEditorManagerService=core.createIdentifier("univer.sheet-cell-editor-manager.service"),sheetFooterBarHeight$1="36",sheetContainer$1="univer-sheet-container",styles$l={sheetFooterBarHeight:sheetFooterBarHeight$1,sheetContainer:sheetContainer$1};var __defProp$K=Object.defineProperty,__getOwnPropDesc$K=Object.getOwnPropertyDescriptor,__decorateClass$K=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$K(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$K(target,key,result),result},"__decorateClass$K"),__decorateParam$K=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$K");const EDITOR_INPUT_SELF_EXTEND_GAP=5,EDITOR_BORDER_SIZE=2;var _a12;exports.SheetCellEditorResizeService=(_a12=class extends core.Disposable{constructor(_context,_layoutService,_cellEditorManagerService,_editorBridgeService,_renderManagerService,_sheetSkeletonManagerService,_univerInstanceService){super(),this._context=_context,this._layoutService=_layoutService,this._cellEditorManagerService=_cellEditorManagerService,this._editorBridgeService=_editorBridgeService,this._renderManagerService=_renderManagerService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._univerInstanceService=_univerInstanceService}fitTextSize(callback){var _a61,_b,_c,_d;const param=this._editorBridgeService.getEditCellState();if(!param)return;const{position,documentLayoutObject,canvasOffset,scaleX,scaleY}=param,{startX,startY,endX,endY}=position,documentDataModel=this._univerInstanceService.getUnit(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,core.UniverInstanceType.UNIVER_DOC);if(documentDataModel==null)return;const documentSkeleton=this._getEditorSkeleton();if(!documentSkeleton)return;const info=this._predictingSize(position,canvasOffset,documentSkeleton,documentLayoutObject,scaleX,scaleY);if(!info)return;let{actualWidth,actualHeight}=info;const{verticalAlign,horizontalAlign,paddingData,fill}=documentLayoutObject;actualWidth=actualWidth+((_a61=paddingData.l)!=null?_a61:0)+((_b=paddingData.r)!=null?_b:0),actualHeight=actualHeight+((_c=paddingData.t)!=null?_c:0)+((_d=paddingData.b)!=null?_d:0);let editorWidth=endX-startX,editorHeight=endY-startY;editorWidth<actualWidth&&(editorWidth=Math.ceil(actualWidth)),editorHeight<actualHeight&&(editorHeight=Math.ceil(actualHeight));let offsetTop=0;verticalAlign===core.VerticalAlign.MIDDLE?offsetTop=(editorHeight-actualHeight)/2/scaleY:verticalAlign===core.VerticalAlign.TOP?offsetTop=paddingData.t||0:offsetTop=(editorHeight-actualHeight)/scaleY;let offsetLeft=0;horizontalAlign===core.HorizontalAlign.CENTER?offsetLeft=(editorWidth-actualWidth)/2/scaleX:horizontalAlign===core.HorizontalAlign.RIGHT?offsetLeft=(editorWidth-actualWidth)/scaleX:offsetLeft=paddingData.l||0,offsetTop=offsetTop<(paddingData.t||0)?paddingData.t||0:offsetTop,offsetLeft=offsetLeft<(paddingData.l||0)?paddingData.l||0:offsetLeft,documentDataModel.updateDocumentDataMargin({t:offsetTop,l:offsetLeft}),documentSkeleton.calculate(),this._editAreaProcessing(editorWidth,editorHeight,position,canvasOffset,fill,scaleX,scaleY,horizontalAlign,callback)}_predictingSize(actualRangeWithCoord,canvasOffset,documentSkeleton,documentLayoutObject,scaleX=1,scaleY=1){const{startX,endX}=actualRangeWithCoord,{textRotation,wrapStrategy,paddingData}=documentLayoutObject,documentDataModel=this._univerInstanceService.getUnit(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,core.UniverInstanceType.UNIVER_DOC),{vertexAngle:angle}=engineRender.convertTextRotation(textRotation);if(wrapStrategy===core.WrapStrategy.WRAP&&angle===0){documentDataModel==null||documentDataModel.updateDocumentDataPageSize(endX-startX),documentDataModel==null||documentDataModel.updateDocumentDataMargin({l:paddingData.l,t:paddingData.t}),documentSkeleton.calculate();const{actualWidth,actualHeight}=documentSkeleton.getActualSize();return{actualWidth:actualWidth*scaleX,actualHeight:actualHeight*scaleY}}const maxSize=this._getEditorMaxSize(actualRangeWithCoord,canvasOffset,documentLayoutObject.horizontalAlign);if(!maxSize)return;documentDataModel==null||documentDataModel.updateDocumentDataPageSize(maxSize.width/scaleX),documentSkeleton.calculate();const size=documentSkeleton.getActualSize();let editorWidth=endX-startX;return editorWidth<size.actualWidth*scaleX+EDITOR_INPUT_SELF_EXTEND_GAP*scaleX&&(editorWidth=size.actualWidth*scaleX+EDITOR_INPUT_SELF_EXTEND_GAP*scaleX),documentDataModel==null||documentDataModel.updateDocumentDataPageSize(editorWidth/scaleX),documentDataModel==null||documentDataModel.updateDocumentRenderConfig({horizontalAlign:core.HorizontalAlign.UNSPECIFIED,cellValueType:void 0}),{actualWidth:size.actualWidth*scaleX,actualHeight:size.actualHeight*scaleY}}_getEditorMaxSize(position,canvasOffset,horizontalAlign){if(this._getEditorObject()==null)return;function pxToNum2(width2){return Number.parseInt(width2.replace("px",""))}__name(pxToNum2,"pxToNum");const canvasElement=this._context.engine.getCanvasElement(),canvasClientRect=canvasElement.getBoundingClientRect(),widthOfCanvas=pxToNum2(canvasElement.style.width),{width}=canvasClientRect,scaleAdjust=width/widthOfCanvas,{startX,startY,endX}=position,enginWidth=this._context.engine.width,clientHeight=document.body.clientHeight-startY-Number.parseFloat(styles$l.sheetFooterBarHeight)-canvasOffset.top-EDITOR_BORDER_SIZE*2;let clientWidth=width-startX;if(horizontalAlign===core.HorizontalAlign.CENTER){const rightGap=enginWidth-endX,leftGap=startX;clientWidth=endX-startX+Math.min(leftGap,rightGap)*2}else horizontalAlign===core.HorizontalAlign.RIGHT&&(clientWidth=endX);return{height:clientHeight,width:clientWidth-EDITOR_BORDER_SIZE,scaleAdjust}}_editAreaProcessing(editorWidth,editorHeight,actualRangeWithCoord,canvasOffset,fill,scaleX=1,scaleY=1,horizontalAlign,callback){var _a61;const editorObject=this._getEditorObject();if(editorObject==null)return;const canvasElement=this._context.engine.getCanvasElement();let{startX,startY}=actualRangeWithCoord;const{document:documentComponent,scene:editorScene,engine:docEngine}=editorObject,viewportMain=editorScene.getViewport(docsUi.VIEWPORT_KEY.VIEW_MAIN),info=this._getEditorMaxSize(actualRangeWithCoord,canvasOffset,horizontalAlign),{height:clientHeight,width:clientWidth,scaleAdjust}=info;let physicHeight=editorHeight,scrollBar=viewportMain==null?void 0:viewportMain.getScrollBar();physicHeight>clientHeight?(scrollBar==null?viewportMain&&new engineRender.ScrollBar(viewportMain,{enableHorizontal:!1,barSize:8}):viewportMain==null||viewportMain.resetCanvasSizeAndUpdateScroll(),viewportMain==null||viewportMain.scrollToViewportPos({viewportScrollY:physicHeight-clientHeight}),physicHeight=clientHeight):(scrollBar=null,(_a61=viewportMain==null?void 0:viewportMain.getScrollBar())==null||_a61.dispose()),editorWidth+=(scrollBar==null?void 0:scrollBar.barSize)||0,editorWidth>clientWidth&&(editorWidth=clientWidth),this._addBackground(editorScene,editorWidth/scaleX,editorHeight/scaleY,fill);const{scaleX:precisionScaleX,scaleY:precisionScaleY}=editorScene.getPrecisionScale();editorScene.transformByState({width:editorWidth*scaleAdjust/scaleX,height:editorHeight*scaleAdjust/scaleY,scaleX:scaleX*scaleAdjust,scaleY:scaleY*scaleAdjust}),documentComponent.resize(editorWidth*scaleAdjust/scaleX,editorHeight*scaleAdjust/scaleY),setTimeout(()=>{docEngine.resizeBySize(engineRender.fixLineWidthByScale(editorWidth,precisionScaleX),engineRender.fixLineWidthByScale(physicHeight,precisionScaleY)),callback==null||callback()},0);const contentBoundingRect=this._layoutService.getContentElement().getBoundingClientRect(),canvasBoundingRect=canvasElement.getBoundingClientRect();startX=startX*scaleAdjust+(canvasBoundingRect.left-contentBoundingRect.left),startY=startY*scaleAdjust+(canvasBoundingRect.top-contentBoundingRect.top);const cellWidth=actualRangeWithCoord.endX-actualRangeWithCoord.startX;horizontalAlign===core.HorizontalAlign.RIGHT?startX+=(cellWidth-editorWidth)*scaleAdjust:horizontalAlign===core.HorizontalAlign.CENTER&&(startX+=(cellWidth-editorWidth*scaleAdjust)/2),this._cellEditorManagerService.setState({startX,startY,endX:editorWidth*scaleAdjust+startX,endY:physicHeight*scaleAdjust+startY,show:!0})}_addBackground(scene,editorWidth,editorHeight,fill){const fillRectKey="_backgroundRectHelperColor_",rect=scene.getObject(fillRectKey);rect==null&&fill==null||(rect==null?scene.addObjects([new engineRender.Rect(fillRectKey,{width:editorWidth,height:editorHeight,fill,evented:!1})],docsUi.DOCS_COMPONENT_MAIN_LAYER_INDEX):fill==null?rect.dispose():(rect.setProps({fill}),rect.transformByState({width:editorWidth,height:editorHeight})))}resizeCellEditor(callback){var _a61;const state=this._cellEditorManagerService.getState();if(!state||!this._editorBridgeService.isVisible().visible)return;this._editorBridgeService.refreshEditCellPosition(!0);const editCellState=this._editorBridgeService.getEditCellState();if(!editCellState)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getWorksheetSkeleton(editCellState.sheetId))==null?void 0:_a61.skeleton;if(!skeleton)return;const{row,column,scaleX,scaleY,position,canvasOffset,documentLayoutObject}=editCellState,{horizontalAlign}=documentLayoutObject,maxSize=this._getEditorMaxSize(position,canvasOffset,horizontalAlign);if(!maxSize)return;const{height:clientHeight,width:clientWidth,scaleAdjust}=maxSize,cell=skeleton.getCellWithCoordByIndex(row,column),height=Math.min((cell.mergeInfo.endY-cell.mergeInfo.startY)*scaleY,clientHeight)*scaleAdjust,width=Math.min((cell.mergeInfo.endX-cell.mergeInfo.startX)*scaleX,clientWidth)*scaleAdjust,currentHeight=state.endY-state.startY,currentWidth=state.endX-state.startX;if(currentHeight!==height||currentWidth!==width){if(this._editorBridgeService.refreshEditCellPosition(!0),!this._getEditorSkeleton())return;this.fitTextSize(callback)}}_getEditorObject(){return getEditorObject(this._editorBridgeService.getCurrentEditorId(),this._renderManagerService)}_getEditorSkeleton(){var _a61;return(_a61=this._renderManagerService.getRenderById(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY))==null?void 0:_a61.with(docs.DocSkeletonManagerService).getSkeleton()}},__name(_a12,"SheetCellEditorResizeService"),_a12);exports.SheetCellEditorResizeService=__decorateClass$K([__decorateParam$K(1,ui.ILayoutService),__decorateParam$K(2,ICellEditorManagerService),__decorateParam$K(3,IEditorBridgeService),__decorateParam$K(4,engineRender.IRenderManagerService),__decorateParam$K(5,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$K(6,core.IUniverInstanceService)],exports.SheetCellEditorResizeService);function whenSheetFocused(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)}__name(whenSheetFocused,"whenSheetFocused");function whenSheetEditorFocused(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&!contextService.getContextValue(core.EDITOR_ACTIVATED)&&!contextService.getContextValue(core.FOCUSING_COMMON_DRAWINGS)}__name(whenSheetEditorFocused,"whenSheetEditorFocused");function whenSheetEditorFocusedAndFxNotFocused(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&!contextService.getContextValue(core.EDITOR_ACTIVATED)&&!contextService.getContextValue(core.FOCUSING_FX_BAR_EDITOR)&&!contextService.getContextValue(core.FOCUSING_COMMON_DRAWINGS)}__name(whenSheetEditorFocusedAndFxNotFocused,"whenSheetEditorFocusedAndFxNotFocused");function whenSheetEditorActivated(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&contextService.getContextValue(core.EDITOR_ACTIVATED)}__name(whenSheetEditorActivated,"whenSheetEditorActivated");function whenEditorActivated(contextService){return contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&contextService.getContextValue(core.EDITOR_ACTIVATED)}__name(whenEditorActivated,"whenEditorActivated");function whenFormulaEditorFocused(contextService){return contextService.getContextValue(core.FOCUSING_FX_BAR_EDITOR)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)}__name(whenFormulaEditorFocused,"whenFormulaEditorFocused");function whenFormulaEditorActivated(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)}__name(whenFormulaEditorActivated,"whenFormulaEditorActivated");function whenEditorDidNotInputFormulaActivated(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&!contextService.getContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA)&&!contextService.getContextValue(core.FOCUSING_EDITOR_STANDALONE)}__name(whenEditorDidNotInputFormulaActivated,"whenEditorDidNotInputFormulaActivated");const ARROW_SELECTION_KEYCODE_LIST=[ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP,ui.KeyCode.ARROW_LEFT,ui.KeyCode.ARROW_RIGHT],MOVE_SELECTION_KEYCODE_LIST=[ui.KeyCode.ENTER,ui.KeyCode.TAB,...ARROW_SELECTION_KEYCODE_LIST];function generateArrowSelectionShortCutItem(){const shortcutList=[];for(const keycode of ARROW_SELECTION_KEYCODE_LIST)shortcutList.push({id:SetCellEditVisibleArrowOperation.id,binding:keycode,preconditions:__name(contextService=>whenEditorDidNotInputFormulaActivated(contextService),"preconditions"),staticParameters:{visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,isShift:!1}}),shortcutList.push({id:SetCellEditVisibleArrowOperation.id,binding:keycode|ui.MetaKeys.SHIFT,preconditions:__name(contextService=>whenEditorDidNotInputFormulaActivated(contextService),"preconditions"),staticParameters:{visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,isShift:!0}});return shortcutList}__name(generateArrowSelectionShortCutItem,"generateArrowSelectionShortCutItem");const StartEditWithF2Shortcut={id:SetCellEditVisibleWithF2Operation.id,binding:ui.KeyCode.F2,description:"shortcut.sheet.start-editing",group:"4_sheet-edit",preconditions:whenSheetEditorFocused,staticParameters:{visible:!0,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.F2}},EditorCursorEnterShortcut={id:SetCellEditVisibleOperation.id,binding:ui.KeyCode.ENTER,description:"shortcut.sheet.toggle-editing",group:"4_sheet-edit",preconditions:__name(contextService=>whenEditorDidNotInputFormulaActivated(contextService),"preconditions"),staticParameters:{visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.ENTER}},EditorCursorTabShortcut={id:SetCellEditVisibleOperation.id,binding:ui.KeyCode.TAB,preconditions:__name(contextService=>whenEditorDidNotInputFormulaActivated(contextService),"preconditions"),staticParameters:{visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.TAB}},EditorCursorEscShortcut={id:SetCellEditVisibleOperation.id,binding:ui.KeyCode.ESC,description:"shortcut.sheet.abort-editing",group:"4_sheet-edit",preconditions:__name(contextService=>whenEditorDidNotInputFormulaActivated(contextService),"preconditions"),staticParameters:{visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.ESC}},EditorBreakLineShortcut={id:docsUi.BreakLineCommand.id,description:"shortcut.sheet.break-line",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorActivated(contextService),"preconditions"),binding:ui.KeyCode.ENTER|ui.MetaKeys.ALT},EditorDeleteLeftShortcut={id:docsUi.DeleteLeftCommand.id,preconditions:__name(contextService=>whenEditorActivated(contextService)||whenFormulaEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.BACKSPACE},EditorDeleteLeftShortcutInActive={id:SetCellEditVisibleOperation.id,description:"shortcut.sheet.delete-and-start-editing",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorFocused(contextService)&&!whenFormulaEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.BACKSPACE,staticParameters:{visible:!0,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.BACKSPACE}};function isForceString(str){return str.startsWith("'")}__name(isForceString,"isForceString");function extractStringFromForceString(str){return str.slice(1)}__name(extractStringFromForceString,"extractStringFromForceString");const fullWidthToHalfWidthMap={"0":"0","1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9",A:"A",B:"B",C:"C",D:"D",E:"E",F:"F",G:"G",H:"H",I:"I",J:"J",K:"K",L:"L",M:"M",N:"N",O:"O",P:"P",Q:"Q",R:"R",S:"S",T:"T",U:"U",V:"V",W:"W",X:"X",Y:"Y",Z:"Z",a:"a",b:"b",c:"c",d:"d",e:"e",f:"f",g:"g",h:"h",i:"i",j:"j",k:"k",l:"l",m:"m",n:"n",o:"o",p:"p",q:"q",r:"r",s:"s",t:"t",u:"u",v:"v",w:"w",x:"x",y:"y",z:"z","%":"%","-":"-",".":".",":":":","/":"/","+":"+","@":"@","&":"&","*":"*","#":"#","=":"=",">":">","<":"<","$":"$",""":'"',"'":"'","(":"(",")":")"," ":" ",",":",","!":"!","?":"?",";":";","[":"[","]":"]","{":"{","}":"}"},booleanMap={true:"TRUE",false:"FALSE"};function isCJKLocale(locale){return[core.LocaleType.ZH_CN,core.LocaleType.ZH_TW].includes(locale)}__name(isCJKLocale,"isCJKLocale");function normalizeString(str,lexerTreeBuilder,currentLocale,functionService){let normalStr=str;if(isCJKLocale(currentLocale)){if(str.startsWith("'")||str.startsWith("'"))return`'${str.slice(1)}`;normalStr=handleQuotedParts(normalStr)}if(normalStr.startsWith("="))return normalizeFormulaString(str,normalStr,lexerTreeBuilder,functionService);const lowerCaseStr=normalStr.toLowerCase();return booleanMap[lowerCaseStr]?booleanMap[lowerCaseStr]:core.numfmt.parseValue(normalStr)==null?str:normalStr}__name(normalizeString,"normalizeString");function handleQuotedParts(str){const sheetNamePattern=/['"].*?['"]/g,quotedParts=[],parts=str.split(sheetNamePattern);str.replace(sheetNamePattern,match=>(quotedParts.push(match),""));let normalStr=parts.join("").split("").map(toHalfWidth).join("");return quotedParts.forEach((part,idx)=>{normalStr=normalStr.slice(0,idx*2)+part+normalStr.slice((idx+1)*2)}),normalStr}__name(handleQuotedParts,"handleQuotedParts");function normalizeFormulaString(str,normalStr,lexerTreeBuilder,functionService){const nodes=lexerTreeBuilder.sequenceNodesBuilder(normalStr);if(!nodes)return str;let _normalStr=normalStr,totalOffset=0;return nodes.forEach((node,index)=>{if(typeof node=="object"){const token=node.token;if(booleanMap[token.toLowerCase()]){const startIndex=node.startIndex+totalOffset+1,endIndex=node.endIndex+totalOffset+2;_normalStr=replaceString(token.toLocaleUpperCase(),_normalStr,startIndex,endIndex)}else if(node.nodeType===engineFormula.sequenceNodeType.FUNCTION&&hasFunctionName(token,functionService,nodes,index)||node.nodeType===engineFormula.sequenceNodeType.REFERENCE){const sheetNameIndex=token.indexOf("!");if(sheetNameIndex>-1){const refBody=token.substring(sheetNameIndex+1),startIndex=node.startIndex+totalOffset+(sheetNameIndex+1)+1,endIndex=node.endIndex+totalOffset+2;_normalStr=replaceString(refBody.toLocaleUpperCase(),_normalStr,startIndex,endIndex)}else{const startIndex=node.startIndex+totalOffset+1,endIndex=node.endIndex+totalOffset+2;_normalStr=replaceString(token.toLocaleUpperCase(),_normalStr,startIndex,endIndex)}}else if(token.startsWith('"')&&token.endsWith('"')||token.startsWith("'")&&token.endsWith("'")){const startIndex=node.startIndex+totalOffset+2,endIndex=node.endIndex+totalOffset+1;_normalStr=replaceString(str.slice(startIndex,endIndex),_normalStr,startIndex,endIndex)}else if(node.nodeType!==engineFormula.sequenceNodeType.ARRAY){const parsedValue=core.numfmt.parseValue(token);if(parsedValue==null){const startIndex=node.startIndex+totalOffset+1,endIndex=node.endIndex+totalOffset+2;_normalStr=replaceString(str.slice(startIndex,endIndex),_normalStr,startIndex,endIndex)}else if(typeof parsedValue.v=="number"&&(parsedValue.z===void 0||!core.numfmt.isDate(parsedValue.z))){const v=`${parsedValue.v}`,startIndex=node.startIndex+totalOffset+1,endIndex=node.endIndex+totalOffset+2,{processedString,offset}=processNumberStringWithSpaces(token,v);_normalStr=replaceString(processedString,_normalStr,startIndex,endIndex),totalOffset+=offset}}}}),_normalStr}__name(normalizeFormulaString,"normalizeFormulaString");function hasFunctionName(name,functionService,nodes,index){const functionList=functionService.getDescriptions();return nodes[index+1]!==engineFormula.matchToken.OPEN_BRACKET?!1:functionList.get(removeLeadingAtSymbols(name).toLocaleUpperCase())!==void 0}__name(hasFunctionName,"hasFunctionName");function removeLeadingAtSymbols(str){const regex=/^@+/;return str.replace(regex,"")}__name(removeLeadingAtSymbols,"removeLeadingAtSymbols");function toHalfWidth(char){return fullWidthToHalfWidthMap[char]||char}__name(toHalfWidth,"toHalfWidth");function replaceString(replacedString,normalStr,startIndex,endIndex){return normalStr.substring(0,startIndex)+replacedString+normalStr.substring(endIndex)}__name(replaceString,"replaceString");function processNumberStringWithSpaces(token,numStr){var _a61,_b;const leadingSpaces=((_a61=token.match(/^\s*/))==null?void 0:_a61[0])||"",trailingSpaces=((_b=token.match(/\s*$/))==null?void 0:_b[0])||"",processedString=leadingSpaces+numStr+trailingSpaces,offset=processedString.length-token.length;return{processedString,offset}}__name(processNumberStringWithSpaces,"processNumberStringWithSpaces");const RANGE_SELECTOR_SYMBOLS="range_selector",isRangeSelector=__name(unitId=>unitId.includes(RANGE_SELECTOR_SYMBOLS),"isRangeSelector");var __defProp$J=Object.defineProperty,__getOwnPropDesc$J=Object.getOwnPropertyDescriptor,__decorateClass$J=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$J(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$J(target,key,result),result},"__decorateClass$J"),__decorateParam$J=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$J");const HIDDEN_EDITOR_POSITION$1=-1e3;var _a13;exports.EditingRenderController=(_a13=class extends core.Disposable{constructor(_context,selectionManagerService,_undoRedoService,_contextService,_renderManagerService,_editorBridgeService,_cellEditorManagerService,_lexerTreeBuilder,_functionService,_textSelectionManagerService,_commandService,_localService,_editorService,_sheetCellEditorResizeService,_univerInstanceService,_sheetInterceptorService){super();__publicField(this,"_cursorChange",0);__publicField(this,"_isUnitEditing",!1);__publicField(this,"_workbookSelections");__publicField(this,"_d");__publicField(this,"_cursorTimeout");this._context=_context,this._undoRedoService=_undoRedoService,this._contextService=_contextService,this._renderManagerService=_renderManagerService,this._editorBridgeService=_editorBridgeService,this._cellEditorManagerService=_cellEditorManagerService,this._lexerTreeBuilder=_lexerTreeBuilder,this._functionService=_functionService,this._textSelectionManagerService=_textSelectionManagerService,this._commandService=_commandService,this._localService=_localService,this._editorService=_editorService,this._sheetCellEditorResizeService=_sheetCellEditorResizeService,this._univerInstanceService=_univerInstanceService,this._sheetInterceptorService=_sheetInterceptorService,this._workbookSelections=selectionManagerService.getWorkbookSelections(this._context.unitId),this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).subscribe(workbook=>{(workbook==null?void 0:workbook.getUnitId())===this._context.unitId?this._d=this._init():(this._disposeCurrent(),this._isUnitEditing&&(this._handleEditorInvisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.ESC,unitId:this._context.unitId}),this._isUnitEditing=!1))})),this._initEditorVisibilityListener()}dispose(){super.dispose(),this._disposeCurrent()}_disposeCurrent(){var _a61;(_a61=this._d)==null||_a61.dispose(),this._d=null}_init(){const d=new core.DisposableCollection;return this._subscribeToCurrentCell(d),this._initialCursorSync(d),this._listenEditorFocus(d),this._commandExecutedListener(d),this._initSkeletonListener(d),this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(_unit=>{clearTimeout(this._cursorTimeout)})),this._cursorTimeout=setTimeout(()=>{this._cursorStateListener(d)},1e3),d}_initEditorVisibilityListener(){this.disposeWithMe(this._editorBridgeService.visible$.pipe(rxjs.distinctUntilChanged((prev,curr)=>prev.visible===curr.visible)).subscribe(param=>{(param.unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY||param.unitId===this._context.unitId)&&param.visible?(this._isUnitEditing=!0,this._handleEditorVisible(param)):this._isUnitEditing&&(this._handleEditorInvisible(param),this._isUnitEditing=!1)}))}_listenEditorFocus(d){const renderConfig=this._getEditorObject();renderConfig&&d.add(renderConfig.document.onPointerDown$.subscribeEvent(()=>{if(this._isUnitEditing&&this._editorBridgeService.isVisible()){const param=this._editorBridgeService.getEditCellState(),editorId=this._editorBridgeService.getCurrentEditorId();if(!param||!editorId)return;this._sheetCellEditorResizeService.fitTextSize()}}))}_initialCursorSync(d){d.add(this._cellEditorManagerService.focus$.pipe(rxjs.filter(f=>!!f)).subscribe(()=>{var _a61;const docSelectionRenderManager=(_a61=this._renderManagerService.getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_DOC))==null?void 0:_a61.with(docsUi.DocSelectionRenderService);docSelectionRenderManager&&docSelectionRenderManager.sync()}))}_initSkeletonListener(d){const commandList=new Set(sheets.COMMAND_LISTENER_SKELETON_CHANGE);commandList.delete(sheets.SetWorksheetActiveOperation.id),d.add(this._commandService.onCommandExecuted(commandInfo=>{commandList.has(commandInfo.id)&&this._sheetCellEditorResizeService.resizeCellEditor(()=>{this._textSelectionManagerService.refreshSelection({unitId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY})})}))}_subscribeToCurrentCell(d){d.add(this._editorBridgeService.currentEditCellState$.subscribe(editCellState=>{var _a61,_b;if(editCellState==null||this._editorBridgeService.isForceKeepVisible())return;const state=this._editorBridgeService.getEditCellState();if(state==null)return;const{position,documentLayoutObject,scaleX,editorUnitId}=state;if(this._contextService.getContextValue(core.FOCUSING_EDITOR_STANDALONE))return;const cellDocument=this._getDocumentDataModel();if(cellDocument==null)return;const{startX,endX}=position,{textRotation,wrapStrategy,documentModel}=documentLayoutObject,{vertexAngle:angle}=engineRender.convertTextRotation(textRotation);wrapStrategy===core.WrapStrategy.WRAP&&angle===0&&cellDocument.updateDocumentDataPageSize((endX-startX)/scaleX),this._commandService.syncExecuteCommand(docsUi.ReplaceSnapshotCommand.id,{unitId:editorUnitId,snapshot:documentModel.getSnapshot()}),this._contextService.setContextValue(core.FOCUSING_EDITOR_BUT_HIDDEN,!0),this._textSelectionManagerService.replaceDocRanges([{startOffset:0,endOffset:0}],{unitId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY});const cellSelectionRenderManager=(_a61=this._renderManagerService.getRenderById(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY))==null?void 0:_a61.with(docsUi.DocSelectionRenderService),formulaSelectionRenderManager=(_b=this._renderManagerService.getRenderById(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))==null?void 0:_b.with(docsUi.DocSelectionRenderService);(cellSelectionRenderManager!=null&&cellSelectionRenderManager.canFocusing||formulaSelectionRenderManager!=null&&formulaSelectionRenderManager.canFocusing)&&(this._univerInstanceService.setCurrentUnitForType(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),cellSelectionRenderManager==null||cellSelectionRenderManager.activate(HIDDEN_EDITOR_POSITION$1,HIDDEN_EDITOR_POSITION$1,!0))}))}_commandExecutedListener(d){d.add(this._commandService.onCommandExecuted(command=>{if(command.id===docs.RichTextEditingMutation.id){const params=command.params,{unitId:commandUnitId}=params;if(!this._isCurrentSheetFocused()||isRangeSelector(commandUnitId)||(this._editorBridgeService.changeEditorDirty(!0),!this._editorBridgeService.isVisible().visible))return;commandUnitId===core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY&&this._sheetCellEditorResizeService.fitTextSize()}}));const closeEditorOperation=[SetCellEditVisibleArrowOperation.id];d.add(this._commandService.onCommandExecuted(command=>{if(closeEditorOperation.includes(command.id)){const params=command.params,{keycode,isShift}=params;if(keycode!=null&&(this._cursorChange===2||this._contextService.getContextValue(core.FOCUSING_FX_BAR_EDITOR))){this._moveInEditor(keycode,isShift);return}this._editorBridgeService.changeVisible(params)}command.id===SetCellEditVisibleWithF2Operation.id&&(this._cursorChange=2)}))}_handleEditorVisible(param){var _a61,_b,_c;const{eventType,keycode}=param;this._cursorChange=eventType===engineRender.DeviceInputEventType.PointerDown||eventType===engineRender.DeviceInputEventType.Dblclick?2:1;const editCellState=this._editorBridgeService.getEditLocation();if(editCellState==null)return;this._commandService.syncExecuteCommand(ScrollToRangeOperation.id,{range:{startRow:editCellState.row,startColumn:editCellState.column,endRow:editCellState.row,endColumn:editCellState.column}}),this._editorBridgeService.refreshEditCellPosition(!1);const{unitId,isInArrayFormulaRange=!1}=editCellState,editorObject=this._getEditorObject();if(editorObject==null)return;const{document:document2,scene}=editorObject;this._contextService.setContextValue(core.EDITOR_ACTIVATED,!0);const documentDataModel=this._getDocumentDataModel(),skeleton=this._getEditorSkeleton(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);if(!(!skeleton||!documentDataModel)){if(this._sheetCellEditorResizeService.fitTextSize(()=>{const viewMain=scene.getViewport(docsUi.VIEWPORT_KEY.VIEW_MAIN);viewMain==null||viewMain.scrollToViewportPos({viewportScrollX:Number.POSITIVE_INFINITY,viewportScrollY:Number.POSITIVE_INFINITY})}),eventType===engineRender.DeviceInputEventType.Keyboard&&keycode===ui.KeyCode.F2){document2.makeDirty(),this._textSelectionManagerService.replaceDocRanges([{startOffset:0,endOffset:0}]);const endOffset=((_b=(_a61=documentDataModel.getBody())==null?void 0:_a61.dataStream.length)!=null?_b:2)-2;this._textSelectionManagerService.replaceDocRanges([{startOffset:endOffset,endOffset}],{unitId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY})}else if(eventType===engineRender.DeviceInputEventType.Keyboard||eventType===engineRender.DeviceInputEventType.Dblclick&&isInArrayFormulaRange)this._emptyDocumentDataModel(documentDataModel.getSnapshot().documentStyle,!!isInArrayFormulaRange),document2.makeDirty(),(keycode===ui.KeyCode.BACKSPACE||eventType===engineRender.DeviceInputEventType.Dblclick)&&(skeleton.calculate(),this._editorBridgeService.changeEditorDirty(!0)),this._textSelectionManagerService.replaceDocRanges([{startOffset:0,endOffset:0}],{unitId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY});else if(eventType===engineRender.DeviceInputEventType.Dblclick){if(this._contextService.getContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA))return;const cursor=documentDataModel.getBody().dataStream.length-2||0;this._textSelectionManagerService.replaceDocRanges([{startOffset:cursor,endOffset:cursor}])}(_c=this._renderManagerService.getRenderById(unitId))==null||_c.scene.resetCursor()}}async _handleEditorInvisible(param){const editCellState=this._editorBridgeService.getEditCellState(),documentDataModel=this._univerInstanceService.getUnit(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),snapshot=core.Tools.deepClone(documentDataModel==null?void 0:documentDataModel.getSnapshot());let{keycode}=param;if(this._cursorChange=0,this._exitInput(param),editCellState==null)return;this._editorBridgeService.getEditorDirty()===!1&&(keycode=ui.KeyCode.ESC);const worksheet=this._context.unit.getActiveSheet(),workbookId=this._context.unitId,worksheetId=worksheet.getSheetId(),{unitId,sheetId}=editCellState;if(workbookId===unitId&&sheetId!==worksheetId&&await this._commandService.executeCommand(sheets.SetWorksheetActivateCommand.id,{subUnitId:sheetId,unitId}),keycode===ui.KeyCode.ESC){this._editorBridgeService.isForceKeepVisible()&&this._editorBridgeService.disableForceKeepVisible();const selections=this._workbookSelections.getCurrentSelections();selections&&(this._contextService.setContextValue(sheets.REF_SELECTIONS_ENABLED,!1),this._commandService.syncExecuteCommand(sheets.SetSelectionsOperation.id,{unitId:this._context.unit.getUnitId(),subUnitId:sheetId,selections}));return}snapshot&&await this._submitCellData(snapshot),this._moveCursor(keycode)}_getEditorObject(){return getEditorObject(this._editorBridgeService.getCurrentEditorId(),this._renderManagerService)}submitCellData(documentDataModel){return this._submitCellData(documentDataModel.getSnapshot())}async _submitCellData(snapshot){const editCellState=this._editorBridgeService.getEditCellState();if(editCellState==null)return;const{unitId,sheetId,row,column}=editCellState,workbook=this._context.unit;let worksheet=workbook.getActiveSheet();if(!workbook.getSheetBySheetId(sheetId))return;worksheet=workbook.getActiveSheet();const cellData=getCellDataByInput({...worksheet.getCellRaw(row,column)||{}},snapshot,this._lexerTreeBuilder,this._localService,this._functionService,workbook.getStyles());if(!cellData)return;const finalCell=await this._sheetInterceptorService.onWriteCell(workbook,worksheet,row,column,cellData);finalCell!==worksheet.getCellRaw(row,column)&&this._commandService.executeCommand(sheets.SetRangeValuesCommand.id,{subUnitId:sheetId,unitId,range:{startRow:row,startColumn:column,endRow:row,endColumn:column},value:finalCell})}_exitInput(param){var _a61;this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(core.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(core.FOCUSING_EDITOR_BUT_HIDDEN,!1),this._contextService.setContextValue(core.FOCUSING_FX_BAR_EDITOR,!1),this._cellEditorManagerService.setState({show:param.visible});const editorObject=this._getEditorObject();(_a61=editorObject==null?void 0:editorObject.scene.getViewport(docsUi.VIEWPORT_KEY.VIEW_MAIN))==null||_a61.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0});const editorUnitId=this._editorBridgeService.getCurrentEditorId();editorUnitId==null||!this._editorService.isSheetEditor(editorUnitId)||(this._undoRedoService.clearUndoRedo(editorUnitId),this._undoRedoService.clearUndoRedo(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))}_moveCursor(keycode){if(keycode==null||!MOVE_SELECTION_KEYCODE_LIST.includes(keycode))return;let direction=core.Direction.LEFT;switch(keycode){case ui.KeyCode.ENTER:direction=core.Direction.DOWN;break;case ui.KeyCode.TAB:direction=core.Direction.RIGHT;break;case ui.KeyCode.ARROW_DOWN:direction=core.Direction.DOWN;break;case ui.KeyCode.ARROW_UP:direction=core.Direction.UP;break;case ui.KeyCode.ARROW_LEFT:direction=core.Direction.LEFT;break;case ui.KeyCode.ARROW_RIGHT:direction=core.Direction.RIGHT;break}keycode===ui.KeyCode.ENTER||keycode===ui.KeyCode.TAB?this._commandService.executeCommand(MoveSelectionEnterAndTabCommand.id,{keycode,direction}):this._commandService.executeCommand(MoveSelectionCommand.id,{direction})}_cursorStateListener(d){const editorObject=this._getEditorObject();if(!(editorObject!=null&&editorObject.document))return;const{document:documentComponent}=editorObject;d.add(core.toDisposable(documentComponent.onPointerDown$.subscribeEvent(()=>{this._cursorChange===1&&(this._cursorChange=2)})))}_moveInEditor(keycode,isShift){let direction=core.Direction.LEFT;keycode===ui.KeyCode.ARROW_DOWN?direction=core.Direction.DOWN:keycode===ui.KeyCode.ARROW_UP?direction=core.Direction.UP:keycode===ui.KeyCode.ARROW_RIGHT&&(direction=core.Direction.RIGHT),isShift?this._commandService.executeCommand(docsUi.MoveSelectionOperation.id,{direction}):this._commandService.executeCommand(docsUi.MoveCursorOperation.id,{direction})}_getDocumentDataModel(){return this._univerInstanceService.getUnit(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,core.UniverInstanceType.UNIVER_DOC)}_isCurrentSheetFocused(){var _a61;return((_a61=this._univerInstanceService.getFocusedUnit())==null?void 0:_a61.getUnitId())===this._context.unitId}_getEditorSkeleton(editorId){var _a61;return(_a61=this._renderManagerService.getRenderById(editorId))==null?void 0:_a61.with(docs.DocSkeletonManagerService).getSkeleton()}_getEditorViewModel(editorId){var _a61;return(_a61=this._renderManagerService.getRenderById(editorId))==null?void 0:_a61.with(docs.DocSkeletonManagerService).getViewModel()}_emptyDocumentDataModel(documentStyle,removeStyle){const empty=__name((documentDataModel2,resetDocumentStyle)=>{const snapshot=core.Tools.deepClone(documentDataModel2.getSnapshot()),documentViewModel=this._getEditorViewModel(documentDataModel2.getUnitId());documentViewModel!=null&&(emptyBody(snapshot.body,removeStyle),resetDocumentStyle&&(snapshot.documentStyle=documentStyle),snapshot.drawings={},snapshot.drawingsOrder=[],documentDataModel2.reset(snapshot),documentViewModel.reset(documentDataModel2))},"empty"),documentDataModel=this._getDocumentDataModel();documentDataModel&&empty(documentDataModel,!0);const formulaDocument=this._univerInstanceService.getUnit(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,core.UniverInstanceType.UNIVER_DOC);formulaDocument&&empty(formulaDocument)}},__name(_a13,"EditingRenderController"),_a13);exports.EditingRenderController=__decorateClass$J([__decorateParam$J(1,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$J(2,core.IUndoRedoService),__decorateParam$J(3,core.IContextService),__decorateParam$J(4,engineRender.IRenderManagerService),__decorateParam$J(5,IEditorBridgeService),__decorateParam$J(6,ICellEditorManagerService),__decorateParam$J(7,core.Inject(engineFormula.LexerTreeBuilder)),__decorateParam$J(8,engineFormula.IFunctionService),__decorateParam$J(9,core.Inject(docs.DocSelectionManagerService)),__decorateParam$J(10,core.ICommandService),__decorateParam$J(11,core.Inject(core.LocaleService)),__decorateParam$J(12,docsUi.IEditorService),__decorateParam$J(13,core.Inject(exports.SheetCellEditorResizeService)),__decorateParam$J(14,core.IUniverInstanceService),__decorateParam$J(15,core.Inject(sheets.SheetInterceptorService))],exports.EditingRenderController);function getCellDataByInput(cellData,snapshot,lexerTreeBuilder,localeService,functionService,styles2){var _a61,_b,_c;if((snapshot==null?void 0:snapshot.body)==null)return null;const{body}=snapshot;cellData.t=void 0;const data=body.dataStream;let newDataStream=data.substring(data.length-2,data.length)===core.DEFAULT_EMPTY_DOCUMENT_VALUE?data.substring(0,data.length-2):data;const currentLocale=localeService.getCurrentLocale();if(newDataStream=normalizeString(newDataStream,lexerTreeBuilder,currentLocale,functionService),(_a61=snapshot.drawingsOrder)!=null&&_a61.length)cellData.v="",cellData.f=null,cellData.si=null,cellData.p=snapshot,cellData.t=core.CellValueType.STRING;else if(cellData.s&&((_c=(_b=styles2==null?void 0:styles2.get(cellData.s))==null?void 0:_b.n)==null?void 0:_c.pattern)===engineNumfmt.DEFAULT_TEXT_FORMAT){cellData.v=newDataStream,cellData.f=null,cellData.si=null,cellData.p=null,cellData.t=core.CellValueType.STRING,isRichText(body)&&body.dataStream!==`\r
2
2
  `&&(cellData.p=snapshot);const style=getCellStyleBySnapshot(snapshot);style&&(cellData.s=style)}else if(core.isFormulaString(newDataStream)){if(cellData.f===newDataStream)return null;const bracketCount=lexerTreeBuilder.checkIfAddBracket(newDataStream);for(let i=0;i<bracketCount;i++)newDataStream+=engineFormula.matchToken.CLOSE_BRACKET;cellData.f=newDataStream,cellData.si=null,cellData.v=null,cellData.p=null}else if(isForceString(newDataStream)){const v=extractStringFromForceString(newDataStream);cellData.v=v,cellData.f=null,cellData.si=null,cellData.p=null,cellData.t=core.CellValueType.FORCE_STRING}else if(isRichText(body))body.dataStream===`\r
3
3
  `?(cellData.v="",cellData.f=null,cellData.si=null,cellData.p=null):(cellData.p=snapshot,cellData.v=null,cellData.f=null,cellData.si=null);else{if(newDataStream===""&&cellData.v==null&&cellData.p==null)return null;cellData.v=newDataStream,cellData.f=null,cellData.si=null,cellData.p=null;const style=getCellStyleBySnapshot(snapshot);style&&(cellData.s=style)}return cellData}__name(getCellDataByInput,"getCellDataByInput");function isRichText(body){const{textRuns=[],paragraphs=[],customRanges,customBlocks=[]}=body,bodyNoLineBreak=body.dataStream.replace(/(\r\n)+$/,""),richTextStyle=["va"];return textRuns.filter(ts=>ts.st<bodyNoLineBreak.length).some(textRun=>{var _a61;return!!(textRun.ts&&Object.keys(textRun.ts).some(property=>richTextStyle.includes(property)))||Object.keys((_a61=textRun.ts)!=null?_a61:{}).length&&textRun.ed-textRun.st<bodyNoLineBreak.length})||paragraphs.some(paragraph=>paragraph.bullet)||paragraphs.length>=2||!!(customRanges!=null&&customRanges.length)||customBlocks.length>0}__name(isRichText,"isRichText");function getCellStyleBySnapshot(snapshot){const{body}=snapshot;if(!body)return null;const{textRuns=[]}=body;let style={};const bodyNoLineBreak=body.dataStream.replace(`\r
4
4
  `,"");return textRuns.forEach(textRun=>{const{st,ed,ts}=textRun;ed-st>=bodyNoLineBreak.length&&(style={...style,...ts})}),Object.keys(style).length?style:null}__name(getCellStyleBySnapshot,"getCellStyleBySnapshot");function emptyBody(body,removeStyle=!1){body.dataStream=core.DEFAULT_EMPTY_DOCUMENT_VALUE,body.textRuns!=null&&(body.textRuns.length===1&&!removeStyle?(body.textRuns[0].st=0,body.textRuns[0].ed=1):body.textRuns=void 0),body.paragraphs!=null&&(body.paragraphs=[{startIndex:0}]),body.sectionBreaks!=null&&(body.sectionBreaks=void 0),body.tables!=null&&(body.tables=void 0),body.customRanges!=null&&(body.customRanges=void 0),body.customBlocks!=null&&(body.customBlocks=void 0)}__name(emptyBody,"emptyBody");var __defProp$I=Object.defineProperty,__getOwnPropDesc$I=Object.getOwnPropertyDescriptor,__decorateClass$I=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$I(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$I(target,key,result),result},"__decorateClass$I"),__decorateParam$I=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$I");const DEFAULT_Z_INDEX=SELECTION_SHAPE_DEPTH.MARK_SELECTION,IMarkSelectionService=core.createIdentifier("univer.mark-selection-service");var _a14;exports.MarkSelectionService=(_a14=class extends core.Disposable{constructor(_currentService,_renderManagerService,_themeService){super();__publicField(this,"_shapeMap",new Map);this._currentService=_currentService,this._renderManagerService=_renderManagerService,this._themeService=_themeService}addShape(selection,exits=[],zIndex=DEFAULT_Z_INDEX){var _a61;const workbook=this._currentService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),subUnitId=(_a61=workbook.getActiveSheet())==null?void 0:_a61.getSheetId();if(!subUnitId)return null;const id=core.Tools.generateRandomId(),markSelectionInfo={selection,subUnitId,unitId:workbook.getUnitId(),zIndex,control:null,exits};return this._shapeMap.set(id,markSelectionInfo),this.refreshShapes(),id}addShapeWithNoFresh(selection,exits=[],zIndex=DEFAULT_Z_INDEX){var _a61;const workbook=this._currentService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),subUnitId=(_a61=workbook.getActiveSheet())==null?void 0:_a61.getSheetId();if(!subUnitId)return null;const id=core.Tools.generateRandomId();return this._shapeMap.set(id,{selection,subUnitId,unitId:workbook.getUnitId(),zIndex,control:null,exits}),id}refreshShapes(){var _a61;const currentSheet=this._currentService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!currentSheet)return;const currentUnitId=currentSheet.getUnitId(),currentSubUnitId=(_a61=currentSheet.getActiveSheet())==null?void 0:_a61.getSheetId();this._shapeMap.forEach(shape=>{var _a62;const{unitId,subUnitId,selection,control:oldControl,zIndex}=shape;if(oldControl==null||oldControl.dispose(),unitId!==currentUnitId||subUnitId!==currentSubUnitId)return;const renderUnit=this._renderManagerService.getRenderById(unitId);if(!renderUnit)return;const skeleton=(_a62=this._renderManagerService.withCurrentTypeOfUnit(core.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:_a62.getCurrentSkeleton();if(!skeleton)return;const{scene}=renderUnit,{rowHeaderWidth,columnHeaderHeight}=skeleton,control=new SelectionControl(scene,zIndex,this._themeService,{enableAutoFill:!1,highlightHeader:!1,rowHeaderWidth,columnHeaderHeight}),selectionWithCoord=attachSelectionWithCoord(selection,skeleton);control.updateRangeBySelectionWithCoord(selectionWithCoord),shape.control=control})}getShapeMap(){return this._shapeMap}removeShape(id){const shapeInfo=this._shapeMap.get(id);if(!shapeInfo)return;const{control}=shapeInfo;control==null||control.dispose(),this._shapeMap.delete(id)}removeAllShapes(){for(const shape of this._shapeMap.values()){const{control}=shape;control==null||control.dispose()}this._shapeMap.clear()}},__name(_a14,"MarkSelectionService"),_a14);exports.MarkSelectionService=__decorateClass$I([__decorateParam$I(0,core.IUniverInstanceService),__decorateParam$I(1,engineRender.IRenderManagerService),__decorateParam$I(2,core.Inject(core.ThemeService))],exports.MarkSelectionService);function createCopyPasteSelectionStyle(themeService){return{strokeWidth:1.5,stroke:themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},strokeDash:8}}__name(createCopyPasteSelectionStyle,"createCopyPasteSelectionStyle");const COPY_CONTENT_CACHE_LIMIT=10,ID_LENGTH=6;function genId(){return core.Tools.generateRandomId(ID_LENGTH)}__name(genId,"genId");function extractId(html){const match=html.match(/data-copy-id="([^\s]+)"/);return match&&match[1]?match[1]:null}__name(extractId,"extractId");const _CopyContentCache=class _CopyContentCache{constructor(){__publicField(this,"_cache",new core.LRUMap(COPY_CONTENT_CACHE_LIMIT))}set(id,clipboardData){this._cache.set(id,clipboardData)}get(id){return this._cache.get(id)}del(id){this._cache.delete(id)}clear(){this._cache.clear()}clearWithUnitId(unitId){this._cache.forEach((value,key)=>{value.unitId===unitId&&this._cache.delete(key)})}};__name(_CopyContentCache,"CopyContentCache");let CopyContentCache=_CopyContentCache;function extractNodeStyle(node,predefinedStyles){const styles2=predefinedStyles!=null?predefinedStyles:node.style,docStyles={},tagName=node.tagName.toLowerCase();switch(tagName){case"b":case"em":case"strong":{docStyles.bl=core.BooleanNumber.TRUE;break}case"s":{docStyles.st={s:core.BooleanNumber.TRUE};break}case"u":{docStyles.ul={s:core.BooleanNumber.TRUE};break}case"i":{docStyles.it=core.BooleanNumber.TRUE;break}case"sub":case"sup":{docStyles.va=tagName==="sup"?core.BaselineOffset.SUPERSCRIPT:core.BaselineOffset.SUBSCRIPT;break}}return parseStyleByProperty(styles2,docStyles),docStyles}__name(extractNodeStyle,"extractNodeStyle");function parseStyleByProperty(styles2,docStyles){if(styles2 instanceof CSSStyleDeclaration)for(let i=0;i<styles2.length;i++){const cssRule=styles2[i],cssValue=styles2.getPropertyValue(cssRule);handleStyle(cssRule,cssValue,docStyles)}else for(const cssRule in styles2){const cssValue=styles2[cssRule];handleStyle(cssRule,cssValue,docStyles)}}__name(parseStyleByProperty,"parseStyleByProperty");function handleStyle(cssRule,cssValue,docStyles){switch(cssRule){case"font-family":docStyles.ff=cssValue;break;case"font-size":{const fontSize=Number.parseInt(cssValue);Number.isNaN(fontSize)||(cssValue.endsWith("pt")?docStyles.fs=fontSize:cssValue.endsWith("px")&&(docStyles.fs=fontSize*.75));break}case"font-style":cssValue==="italic"&&(docStyles.it=core.BooleanNumber.TRUE);break;case"font-weight":{(Number(cssValue)>400||cssValue==="bold")&&(docStyles.bl=core.BooleanNumber.TRUE);break}case"text-decoration":{/underline/.test(cssValue)?docStyles.ul={s:core.BooleanNumber.TRUE}:/overline/.test(cssValue)?docStyles.ol={s:core.BooleanNumber.TRUE}:/line-through/.test(cssValue)&&(docStyles.st={s:core.BooleanNumber.TRUE});break}case"color":{try{const color=new core.ColorKit(cssValue);color.isValid&&(docStyles.cl={rgb:color.toRgbString()})}catch{}break}case"background-color":{const color=new core.ColorKit(cssValue),bgColor=color.isValid?color.toRgbString():"";bgColor!==ui.DEFAULT_BACKGROUND_COLOR_RGB&&bgColor!==ui.DEFAULT_BACKGROUND_COLOR_RGBA&&(docStyles.bg={rgb:bgColor});break}}}__name(handleStyle,"handleStyle");function parseToDom(rawHtml){const template=document.createElement("body");return template.innerHTML=rawHtml,template}__name(parseToDom,"parseToDom");function getParagraphStyle(el){const styles2=el.style,paragraphStyle={};for(let i=0;i<styles2.length;i++){const cssRule=styles2[i],cssValue=styles2.getPropertyValue(cssRule);switch(cssRule){case"margin-top":{const marginTopValue=Number.parseInt(cssValue);paragraphStyle.spaceAbove={v:/pt/.test(cssValue)?engineRender.ptToPixel(marginTopValue):marginTopValue};break}case"margin-bottom":{const marginBottomValue=Number.parseInt(cssValue);paragraphStyle.spaceBelow={v:/pt/.test(cssValue)?engineRender.ptToPixel(marginBottomValue):marginBottomValue};break}case"line-height":{const lineHeightValue=Number.parseFloat(cssValue);paragraphStyle.lineSpacing=lineHeightValue;break}}}return Object.getOwnPropertyNames(paragraphStyle).length?paragraphStyle:null}__name(getParagraphStyle,"getParagraphStyle");function generateParagraphs(dataStream,prevParagraph){const paragraphs=[];for(let i=0,len=dataStream.length;i<len;i++)dataStream[i]===core.DataStreamTreeTokenType.PARAGRAPH&&paragraphs.push({startIndex:i});return paragraphs}__name(generateParagraphs,"generateParagraphs");function convertToCellStyle(cell,dataStream,textRuns){var _a61,_b,_c;const dataStreamLength=dataStream.length,canConvertToCellStyle=((_a61=textRuns==null?void 0:textRuns.length)!=null?_a61:0)===1&&textRuns[0].st===0&&textRuns[0].ed===dataStreamLength;return cell.p?canConvertToCellStyle&&((_c=(_b=cell.p.body)==null?void 0:_b.textRuns)!=null&&_c.length)?(cell.p.body.textRuns=[],{...cell,s:textRuns[0].ts}):cell:canConvertToCellStyle?{...cell,s:textRuns[0].ts}:cell}__name(convertToCellStyle,"convertToCellStyle");const sheetStyleRules=["color","background","font-size","text-align","vertical-align","font-weight","font-style","font-family","text-decoration","white-space","word-wrap","border-left","border-right","border-top","border-bottom","--data-rotate"];function matchFilter(node,filter){const tagName=node.tagName.toLowerCase();return typeof filter=="string"?tagName===filter:Array.isArray(filter)?filter.some(name=>name===tagName):filter(node)}__name(matchFilter,"matchFilter");const _HtmlToUSMService=class _HtmlToUSMService{constructor(props){__publicField(this,"_styleMap",new Map);__publicField(this,"_styleCache",new Map);__publicField(this,"_styleRules",[]);__publicField(this,"_afterProcessRules",[]);__publicField(this,"_dom",null);__publicField(this,"_getCurrentSkeleton");this._getCurrentSkeleton=props.getCurrentSkeleton}static use(plugin){if(this._pluginList.includes(plugin))throw new Error(`Univer paste plugin ${plugin.name} already added`);this._pluginList.push(plugin)}convert(html){const pastePlugin=_HtmlToUSMService._pluginList.find(plugin=>plugin.checkPasteType(html));pastePlugin&&(this._styleRules=[...pastePlugin.stylesRules],this._afterProcessRules=[...pastePlugin.afterProcessRules]);const valueMatrix=new core.ObjectMatrix;this._dom=parseToDom(html);const style=this._dom.querySelector("style");if(style){const shadowHost=document.createElement("div"),shadowRoot=shadowHost.attachShadow({mode:"open"});document.body.appendChild(shadowHost),shadowRoot.appendChild(style);for(const rule of style.sheet.cssRules){const cssRule=rule,selectorText=cssRule.selectorText,style2=cssRule.style;this._styleMap.set(selectorText,style2)}style.remove(),shadowHost.remove()}const newDocBody={dataStream:"",textRuns:[]},rowProperties=[],colProperties=[],tableStrings=html.match(/<table\b[^>]*>([\s\S]*?)<\/table>/gi),tables=[];this.process(null,this._dom.childNodes,newDocBody,tables);const{paragraphs,dataStream,textRuns,payloads,customRanges}=newDocBody;if(paragraphs){const starts=paragraphs.map(p=>p.startIndex+1);starts.unshift(0);for(let i=0;i<starts.length;i++){let cellDataStream;if(i===starts.length-1){if(cellDataStream=`${dataStream.substring(starts[i])}\r
@@ -9,7 +9,7 @@
9
9
  `,documentData={...p,body:{dataStream:singleDataStream,textRuns:newDocBody.textRuns,paragraphs:generateParagraphs(singleDataStream)}};documentModel==null||documentModel.reset(documentData),cellRichStyle=documentModel==null?void 0:documentModel.getSnapshot(),cellText=newDocBody.dataStream}else cellText=decodeHTMLEntities(cell.innerHTML.replace(/[\r\n]/g,""));return{cellText,cellRichStyle}}_generateDocumentDataModelSnapshot(snapshot){var _a61;const currentSkeleton=this._getCurrentSkeleton();if(currentSkeleton==null)return null;const{skeleton}=currentSkeleton,documentModel=(_a61=skeleton.getBlankCellDocumentModel())==null?void 0:_a61.documentModel,documentData={...documentModel==null?void 0:documentModel.getSnapshot(),...snapshot};return documentModel==null||documentModel.reset(documentData),documentModel==null?void 0:documentModel.getSnapshot()}process(parent,nodes,doc,tables){var _a61,_b,_c;for(const node of nodes)if(node.nodeName.toLowerCase()==="table")tables.push({index:((_a61=doc==null?void 0:doc.paragraphs)==null?void 0:_a61.length)||0});else if(node.nodeType===Node.TEXT_NODE){if(((_b=node.nodeValue)==null?void 0:_b.trim())==="")continue;const text=(_c=node.nodeValue)==null?void 0:_c.replace(/[\r\n]/g,"");let style;parent&&this._styleCache.has(parent)&&(style=this._styleCache.get(parent));const newDoc={dataStream:"",textRuns:[]};doc.dataStream+=text,newDoc.dataStream+=text,style&&Object.getOwnPropertyNames(style).length&&(doc.textRuns.push({st:doc.dataStream.length-text.length,ed:doc.dataStream.length,ts:style}),newDoc.textRuns.push({st:doc.dataStream.length-text.length,ed:doc.dataStream.length,ts:style}))}else{if(core.skipParseTagNames.includes(node.nodeName.toLowerCase()))continue;if(node.nodeName.toLowerCase()==="br")doc.paragraphs||(doc.paragraphs=[]),doc.paragraphs.push({startIndex:doc.dataStream.length}),doc.dataStream+="\r";else if(node.nodeType===Node.ELEMENT_NODE){if(node.nodeName==="STYLE")continue;const element2=node,linkStart=this._processBeforeLink(element2,{body:doc}),parentStyles=parent?this._styleCache.get(parent):{},styleRule=this._styleRules.find(({filter})=>matchFilter(node,filter)),nodeStyles=styleRule?styleRule.getStyle(node):extractNodeStyle(node);this._styleCache.set(node,{...parentStyles,...nodeStyles});const{childNodes}=node;this.process(node,childNodes,doc,tables);const afterProcessRule=this._afterProcessRules.find(({filter})=>matchFilter(node,filter));afterProcessRule&&afterProcessRule.handler(doc,node),this._processAfterLink(element2,{body:doc},linkStart)}}}_processBeforeLink(node,doc){return doc.body.dataStream.length}_processAfterLink(node,doc,start){var _a61,_b;const body=doc.body,element2=node;element2.tagName.toUpperCase()==="A"&&(body.customRanges=(_a61=body.customRanges)!=null?_a61:[],body.customRanges.push({startIndex:start,endIndex:body.dataStream.length-1,rangeId:(_b=element2.dataset.rangeid)!=null?_b:core.generateRandomId(),rangeType:core.CustomRangeType.HYPERLINK,properties:{url:element2.href}}))}dispose(){this._dom=null,this._styleCache.clear(),this._styleMap.clear()}};__name(_HtmlToUSMService,"HtmlToUSMService"),__publicField(_HtmlToUSMService,"_pluginList",[]);let HtmlToUSMService=_HtmlToUSMService;function parseTableRows(html){const ROWS_REGEX=/<tr([\s\S]*?)>([\s\S]*?)<\/tr>/gi,rowMatches=html.matchAll(ROWS_REGEX);if(!rowMatches)return{rowProperties:[],rowCount:0};const rowProperties=Array.from(rowMatches).map(rowMatch=>parseProperties(rowMatch[1])).map(properties=>{if(!properties.height){const style=properties.style,match=style&&style.match(/height\s*:\s*(\d+(\.\d+)?)px/);properties.height=`${match?Number.parseInt(match[1],10):core.DEFAULT_WORKSHEET_ROW_HEIGHT}`}return properties});return{rowProperties,rowCount:rowProperties.length}}__name(parseTableRows,"parseTableRows");function turnToStyleObject(styleStr){const styleObj={};return styleStr.split(";").forEach(style=>{const[key,value]=style.split(":");styleObj[key]=value}),styleObj}__name(turnToStyleObject,"turnToStyleObject");function parseProperties(propertyStr){if(!propertyStr)return{};const property={},PROPERTY_REGEX=/([\w-]+)\s*=\s*(?:(['"])([^'"]*)\2|(\S+))/g;let match;for(;(match=PROPERTY_REGEX.exec(propertyStr))!==null;){const[,attributeName,,attributeValue1,attributeValue2]=match,attributeValue=attributeValue1!==void 0?attributeValue1:attributeValue2;property[attributeName]=attributeValue}return property}__name(parseProperties,"parseProperties");function parseColGroup(raw){const COLGROUP_TAG_REGEX=/<colgroup([\s\S]*?)>(.*?)<\/colgroup>/,colgroupMatch=raw.match(COLGROUP_TAG_REGEX),COL_TAG_REGEX=/<col([\s\S]*?)>/g;let colMatches;if(colgroupMatch!=null&&colgroupMatch[2]?colMatches=colgroupMatch[2].matchAll(COL_TAG_REGEX):colMatches=raw.matchAll(COL_TAG_REGEX),!colMatches)return null;const colPropertiesWithSpan=Array.from(colMatches).map(colMatch=>parseProperties(colMatch[1])),colProperties=[];return colPropertiesWithSpan.forEach(propertiesWithSpan=>{const span=Number(propertiesWithSpan.span);if(span)for(let i=0;i<span;i++){const propertiesWithoutSpan={...propertiesWithSpan};delete propertiesWithoutSpan.span,colProperties.push(propertiesWithoutSpan)}else colProperties.push(propertiesWithSpan)}),colProperties}__name(parseColGroup,"parseColGroup");function decodeHTMLEntities(input){const entities={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&#39;":"'","&nbsp;":" "};return input.replace(/&lt;|&gt;|&amp;|&quot;|&#39;|&nbsp;|<br>/g,match=>entities[match])}__name(decodeHTMLEntities,"decodeHTMLEntities");function extractStyleProperty(styleString,propertyName){if(!styleString||!propertyName)return null;const regex=new RegExp(`(${propertyName}\\s*:\\s*[^;]+);`,"i"),match=styleString.match(regex);return match?match[1]:null}__name(extractStyleProperty,"extractStyleProperty");function setMergedCellStyle(cellMatrix,cellStyle,cellValue,indexParams){const{rowSpan,colSpan,rowIndex,colSetValueIndex}=indexParams;for(let i=rowIndex;i<rowIndex+rowSpan;i++)for(let j=colSetValueIndex;j<colSetValueIndex+colSpan;j++)i===rowIndex&&j===colSetValueIndex?cellMatrix.setValue(i,j,{...cellValue,style:cellStyle}):cellMatrix.setValue(i,j,{style:cellStyle})}__name(setMergedCellStyle,"setMergedCellStyle");const LarkPastePlugin={name:"univer-doc-paste-plugin-lark",checkPasteType(html){return/lark-record-clipboard/i.test(html)},stylesRules:[{filter:["s"],getStyle(node){const inlineStyle=extractNodeStyle(node);return{st:{s:core.BooleanNumber.TRUE},...inlineStyle}}}],afterProcessRules:[{filter(el){return el.tagName==="DIV"&&/ace-line/i.test(el.className)},handler(doc){doc.paragraphs==null&&(doc.paragraphs=[]),doc.paragraphs.push({startIndex:doc.dataStream.length}),doc.dataStream+="\r"}}]},UniverPastePlugin={name:"univer-doc-paste-plugin-univer",checkPasteType(html){return/UniverNormal/i.test(html)},stylesRules:[],afterProcessRules:[{filter(el){return el.tagName==="P"&&/UniverNormal/i.test(el.className)},handler(doc,el){doc.paragraphs==null&&(doc.paragraphs=[]);const paragraph={startIndex:doc.dataStream.length},paragraphStyle=getParagraphStyle(el);paragraphStyle&&(paragraph.paragraphStyle=paragraphStyle),doc.paragraphs.push(paragraph),doc.dataStream+="\r"}}]},WordPastePlugin={name:"univer-doc-paste-plugin-word",checkPasteType(html){return/word|mso/i.test(html)},stylesRules:[{filter:["b"],getStyle(node){const inlineStyle=extractNodeStyle(node);return{bl:core.BooleanNumber.TRUE,...inlineStyle}}}],afterProcessRules:[{filter(el){return el.tagName==="P"&&/mso/i.test(el.className)},handler(doc,el){doc.paragraphs==null&&(doc.paragraphs=[]);const paragraph={startIndex:doc.dataStream.length},paragraphStyle=getParagraphStyle(el);paragraphStyle&&(paragraph.paragraphStyle=paragraphStyle),doc.paragraphs.push(paragraph),doc.dataStream+="\r"}}]};var COPY_TYPE=(COPY_TYPE2=>(COPY_TYPE2.COPY="COPY",COPY_TYPE2.CUT="CUT",COPY_TYPE2))(COPY_TYPE||{});function getRowContent(row,cols,hooks,matrix,mergeSet){const properties=hooks.map(hook=>{var _a61;return(_a61=hook.onCopyRow)==null?void 0:_a61.call(hook,row)}).filter(v=>!!v),mergedProperties=mergeProperties(properties),str=zipClipboardPropertyItemToString(mergedProperties),tds=cols.map(col=>{if(!mergeSet.has(`${row}-${col}`)){const v=matrix.getValue(row,col);if(v!=null&&v.rowSpan&&(v!=null&&v.colSpan))for(let i=row;i<row+v.rowSpan;i++)for(let j=col;j<col+v.colSpan;j++)mergeSet.add(`${i}-${j}`);return getTDContent(row,col,hooks,matrix)}return null}).filter(v=>!!v).join("");return`<tr${str}>${tds}</tr>`}__name(getRowContent,"getRowContent");function getTDContent(row,col,hooks,matrix){const v=matrix.getValue(row,col),properties=hooks.map(hook=>{var _a61;return(_a61=hook.onCopyCellStyle)==null?void 0:_a61.call(hook,row,col,v==null?void 0:v.rowSpan,v==null?void 0:v.colSpan)}).filter(v2=>!!v2),mergedProperties=mergeProperties(properties),str=zipClipboardPropertyItemToString(mergedProperties),content=hooks.reduce((acc,hook)=>{var _a61;return acc||((_a61=hook.onCopyCellContent)==null?void 0:_a61.call(hook,row,col))||""},"");return`<td${str}>${content}</td>`}__name(getTDContent,"getTDContent");function getColStyle(cols,hooks){return`<colgroup>${cols.map(col=>{const properties=hooks.map(hook=>{var _a61;return(_a61=hook.onCopyColumn)==null?void 0:_a61.call(hook,col)}).filter(v=>!!v),mergedProperties=mergeProperties(properties);return`<col ${zipClipboardPropertyItemToString(mergedProperties)}>`}).join("")}</colgroup>`}__name(getColStyle,"getColStyle");function mergeProperties(properties){return properties.reduce((acc,cur)=>(Object.keys(cur).forEach(key=>{acc[key]?acc[key]+=`;${cur[key]}`:acc[key]=cur[key]}),acc),{})}__name(mergeProperties,"mergeProperties");function zipClipboardPropertyItemToString(item){return Object.keys(item).reduce((acc,cur)=>(acc+=` ${cur}="${item[cur]}"`,acc),"")}__name(zipClipboardPropertyItemToString,"zipClipboardPropertyItemToString");const _USMToHtmlService=class _USMToHtmlService{convert(matrix,range,hooks){const{cols,rows}=range;if(!cols.length)return"";const colStyles=getColStyle(cols,hooks),rowContents=[],mergeSet=new Set;return rows.forEach(row=>{rowContents.push(getRowContent(row,cols,hooks,matrix,mergeSet))}),`<google-sheets-html-origin><table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" cellpadding="0" dir="ltr" style="table-layout:fixed;font-size:10pt;font-family:Arial;width:0px;border-collapse:collapse;border:none">${colStyles}
10
10
  <tbody>${rowContents.join("")}</tbody></table>`}};__name(_USMToHtmlService,"USMToHtmlService");let USMToHtmlService=_USMToHtmlService;const getRepeatRange=__name((sourceRange,targetRange,isStrictMode=!1)=>{const getRowLength=__name(range=>range.endRow-range.startRow+1,"getRowLength"),getColLength=__name(range=>range.endColumn-range.startColumn+1,"getColLength"),rowMod=getRowLength(targetRange)%getRowLength(sourceRange),colMod=getColLength(targetRange)%getColLength(sourceRange),repeatRelativeRange={startRow:0,endRow:getRowLength(sourceRange)-1,startColumn:0,endColumn:getColLength(sourceRange)-1},repeatRow=Math.floor(getRowLength(targetRange)/getRowLength(sourceRange)),repeatCol=Math.floor(getColLength(targetRange)/getColLength(sourceRange)),repeatList=[];if(!rowMod&&!colMod)for(let countRow=1;countRow<=repeatRow;countRow++)for(let countCol=1;countCol<=repeatCol;countCol++){const row=getRowLength(sourceRange)*(countRow-1),col=getColLength(sourceRange)*(countCol-1),startRange={startRow:row+targetRange.startRow,endRow:row+targetRange.startRow,startColumn:col+targetRange.startColumn,endColumn:col+targetRange.startColumn};repeatList.push({repeatRelativeRange,startRange})}else if(!rowMod&&colMod&&!isStrictMode)for(let countRow=1;countRow<=repeatRow;countRow++){const row=getRowLength(sourceRange)*(countRow-1),col=0,startRange={startRow:row+targetRange.startRow,endRow:row+targetRange.startRow,startColumn:col+targetRange.startColumn,endColumn:col+targetRange.startColumn};repeatList.push({repeatRelativeRange,startRange})}else if(rowMod&&!colMod&&!isStrictMode)for(let countCol=1;countCol<=repeatCol;countCol++){const col=getColLength(sourceRange)*(countCol-1),startRange={startRow:0+targetRange.startRow,endRow:0+targetRange.startRow,startColumn:col+targetRange.startColumn,endColumn:col+targetRange.startColumn};repeatList.push({repeatRelativeRange,startRange})}else{const startRange={startRow:targetRange.startRow,endRow:targetRange.startRow,startColumn:targetRange.startColumn,endColumn:targetRange.startColumn};repeatList.push({startRange,repeatRelativeRange})}return repeatList},"getRepeatRange");async function clipboardItemIsFromExcel(html){return html?/<td[^>]*class=".*?xl.*?"[^>]*>.*?<\/td>/.test(html):!1}__name(clipboardItemIsFromExcel,"clipboardItemIsFromExcel");function mergeCellValues(...cellValues){if(cellValues.length===1)return cellValues[0];const newMatrix=new core.ObjectMatrix;return cellValues.forEach(cellValue=>{cellValue&&new core.ObjectMatrix(cellValue).forValue((row,col,value)=>{newMatrix.setValue(row,col,{...newMatrix.getValue(row,col),...value})})}),newMatrix.getMatrix()}__name(mergeCellValues,"mergeCellValues");function getRangeValuesMergeable(m1,m2){return m1.id===m2.id&&m1.params.unitId===m2.params.unitId&&m1.params.subUnitId===m2.params.subUnitId}__name(getRangeValuesMergeable,"getRangeValuesMergeable");function mergeSetRangeValues(mutations){const newMutations=[];for(let i=0;i<mutations.length;){let cursor=1;if(mutations[i].id===sheets.SetRangeValuesMutation.id){const current=mutations[i],toMerge=[current];for(;i+cursor<mutations.length&&getRangeValuesMergeable(current,mutations[i+cursor]);)toMerge.push(mutations[i+cursor]),cursor+=1;const merged=mergeCellValues(...toMerge.map(m=>m.params.cellValue||{}));newMutations.push({...current,params:{...current.params,cellValue:merged}})}else newMutations.push(mutations[i]);i+=cursor}return newMutations}__name(mergeSetRangeValues,"mergeSetRangeValues");function rangeIntersectWithDiscreteRange(range,discrete){const{startRow,endRow,startColumn,endColumn}=range;for(let i=startRow;i<=endRow;i++)for(let j=startColumn;j<=endColumn;j++)if(discrete.rows.includes(i)&&discrete.cols.includes(j))return!0}__name(rangeIntersectWithDiscreteRange,"rangeIntersectWithDiscreteRange");function discreteRangeContainsRange(discrete,range){const{startRow,endRow,startColumn,endColumn}=range;for(let i=startRow;i<=endRow;i++)if(!discrete.rows.includes(i))return!1;for(let j=startColumn;j<=endColumn;j++)if(!discrete.cols.includes(j))return!1;return!0}__name(discreteRangeContainsRange,"discreteRangeContainsRange");function convertTextToTable(text){const rows=text.trim().split(`
11
11
  `);let html="<table>";return rows.forEach(row=>{const columns=row.split(" ");html+="<tr>",columns.forEach(column=>{html+=`<td>${column}</td>`}),html+="</tr>"}),html+="</table>",html}__name(convertTextToTable,"convertTextToTable");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 PREDEFINED_HOOK_NAME={DEFAULT_COPY:"default-copy",DEFAULT_PASTE:"default-paste",SPECIAL_PASTE_VALUE:"special-paste-value",SPECIAL_PASTE_FORMAT:"special-paste-format",SPECIAL_PASTE_COL_WIDTH:"special-paste-col-width",SPECIAL_PASTE_BESIDES_BORDER:"special-paste-besides-border",SPECIAL_PASTE_FORMULA:"special-paste-formula"},IMAGE_MIME_TO_EXTENSION={[ui.FILE_PNG_CLIPBOARD_MIME_TYPE]:"png",[ui.FILE__JPEG_CLIPBOARD_MIME_TYPE]:"jpg",[ui.FILE__WEBP_CLIPBOARD_MIME_TYPE]:"webp",[ui.FILE__BMP_CLIPBOARD_MIME_TYPE]:"bmp"};HtmlToUSMService.use(WordPastePlugin);HtmlToUSMService.use(LarkPastePlugin);HtmlToUSMService.use(UniverPastePlugin);const ISheetClipboardService=core.createIdentifier("sheet.clipboard-service");var _a15;exports.SheetClipboardService=(_a15=class extends core.Disposable{constructor(_logService,_univerInstanceService,_selectionManagerService,_clipboardInterfaceService,_undoRedoService,_commandService,_markSelectionService,_notificationService,_platformService,_renderManagerService,_themeService,_localeService,_errorService,_injector){super();__publicField(this,"_clipboardHooks",[]);__publicField(this,"_clipboardHooks$",new rxjs.BehaviorSubject([]));__publicField(this,"clipboardHooks$",this._clipboardHooks$.asObservable());__publicField(this,"_htmlToUSM");__publicField(this,"_usmToHtml");__publicField(this,"_copyContentCache");__publicField(this,"_copyMarkId",null);__publicField(this,"_pasteOptionsCache$",new rxjs.BehaviorSubject(null));__publicField(this,"pasteOptionsCache$",this._pasteOptionsCache$.asObservable());__publicField(this,"_showMenu$",new rxjs.Subject);__publicField(this,"showMenu$",this._showMenu$.asObservable());this._logService=_logService,this._univerInstanceService=_univerInstanceService,this._selectionManagerService=_selectionManagerService,this._clipboardInterfaceService=_clipboardInterfaceService,this._undoRedoService=_undoRedoService,this._commandService=_commandService,this._markSelectionService=_markSelectionService,this._notificationService=_notificationService,this._platformService=_platformService,this._renderManagerService=_renderManagerService,this._themeService=_themeService,this._localeService=_localeService,this._errorService=_errorService,this._injector=_injector,this._htmlToUSM=new HtmlToUSMService({getCurrentSkeleton:__name(()=>{var _a61;return(_a61=this._renderManagerService.withCurrentTypeOfUnit(core.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:_a61.getCurrent()},"getCurrentSkeleton")}),this._usmToHtml=new USMToHtmlService,this._copyContentCache=new CopyContentCache,this.disposeWithMe(this._htmlToUSM),this._initUnitDisposed()}setShowMenu(show){this._showMenu$.next(show)}copyContentCache(){return this._copyContentCache}generateCopyContent(workbookId,worksheetId,range){return this._generateCopyContent(workbookId,worksheetId,range,this._clipboardHooks)}async copy(copyType=COPY_TYPE.COPY){const selection=this._selectionManagerService.getCurrentLastSelection();if(!selection)return!1;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return!1;const hooks=this._clipboardHooks,workbookId=workbook.getUnitId(),worksheetId=worksheet.getSheetId();hooks.forEach(h=>{var _a61;return(_a61=h.onBeforeCopy)==null?void 0:_a61.call(h,workbookId,worksheetId,selection.range,copyType)});const copyContent=this.generateCopyContent(workbookId,worksheetId,selection.range);if(hooks.forEach(h=>{var _a61;return(_a61=h.onAfterCopy)==null?void 0:_a61.call(h)}),!copyContent)return!1;const{html,plain,matrixFragment,copyId,discreteRange}=copyContent;this._copyContentCache.set(copyId,{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),range:discreteRange,matrix:matrixFragment,copyType}),await this._clipboardInterfaceService.write(plain,html),this._markSelectionService.removeAllShapes();const style=createCopyPasteSelectionStyle(this._themeService);return this._copyMarkId=this._markSelectionService.addShape({...selection,style}),!0}async cut(){return this.copy(COPY_TYPE.CUT)}async paste(item,pasteType=PREDEFINED_HOOK_NAME.DEFAULT_PASTE){const types=item.types,text=types.indexOf(ui.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await item.getType(ui.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(blob=>blob&&blob.text()):"",html=types.indexOf(ui.HTML_CLIPBOARD_MIME_TYPE)!==-1?await item.getType(ui.HTML_CLIPBOARD_MIME_TYPE).then(blob=>blob&&blob.text()):"",imageIndex=types.findIndex(type=>ui.imageMimeTypeSet.has(type));if(imageIndex!==-1){const imageMimeType=types[imageIndex],imageBlob=await item.getType(imageMimeType);if(imageBlob){const file=new File([imageBlob],`clipboard-image.${IMAGE_MIME_TO_EXTENSION[imageMimeType]}`,{type:imageMimeType});return this._pasteFiles([file],pasteType)}}return html?(this._platformService.isWindows&&await clipboardItemIsFromExcel(html)&&this._notificationService.show({type:"warning",title:this._localeService.t("clipboard.shortCutNotify.title"),content:this._localeService.t("clipboard.shortCutNotify.useShortCutInstead")}),this._pasteHTML(html,pasteType)):text?this._pastePlainText(text,pasteType):(this._logService.error("[SheetClipboardService]","No valid data on clipboard"),!1)}legacyPaste(html,text,files){return files?this._pasteFiles(files,PREDEFINED_HOOK_NAME.DEFAULT_PASTE):html?this._pasteHTML(html,PREDEFINED_HOOK_NAME.DEFAULT_PASTE):text?/[\n\t]/.test(text)?this._pasteHTML(convertTextToTable(text),PREDEFINED_HOOK_NAME.DEFAULT_PASTE):this._pastePlainText(text,PREDEFINED_HOOK_NAME.DEFAULT_PASTE):this._pasteUnrecognized()}rePasteWithPasteType(type){const pasteOptionsCache=this._pasteOptionsCache$.getValue();if(!pasteOptionsCache)return!1;const undoRedoService=this._injector.get(core.IUndoRedoService),element2=undoRedoService.pitchTopUndoElement();element2&&core.sequenceExecute(element2.undoMutations,this._commandService)&&undoRedoService.popUndoToRedo();const{cellMatrix,rowProperties=[],colProperties=[],source,target}=pasteOptionsCache;return this._pasteUSM({cellMatrix,colProperties,rowProperties},target,PREDEFINED_HOOK_NAME[type],source),!0}updatePasteOptionsCache(cache){this._pasteOptionsCache$.next(cache)}addClipboardHook(hook){if(this._clipboardHooks.findIndex(h=>h.id===hook.id)!==-1)return this._logService.error("[SheetClipboardService]","hook already exists",hook.id),{dispose:__name(()=>{},"dispose")};const insertIndex=this._clipboardHooks.findIndex(existingHook=>{const existingHookPriority=existingHook.priority||0;return(hook.priority||0)<existingHookPriority});return this._clipboardHooks.splice(insertIndex!==-1?insertIndex:this._clipboardHooks.length,0,hook),this._notifyClipboardHook(),core.toDisposable(()=>{const index=this._clipboardHooks.indexOf(hook);index>-1&&(this._clipboardHooks.splice(index,1),this._notifyClipboardHook())})}getClipboardHooks(){return this._clipboardHooks}_generateCopyContent(unitId,subUnitId,range,hooks){const workbook=this._univerInstanceService.getUniverSheetInstance(unitId),worksheet=workbook==null?void 0:workbook.getSheetBySheetId(subUnitId);if(!workbook||!worksheet)return null;const filteredRows=hooks.reduce((acc,cur)=>{var _a61;const rows=(_a61=cur.getFilteredOutRows)==null?void 0:_a61.call(cur,range);return rows==null||rows.forEach(r2=>acc.add(r2)),acc},new Set),{startColumn,startRow,endColumn,endRow}=range,matrix=worksheet.getMatrixWithMergedCells(startRow,startColumn,endRow,endColumn,core.CellModeEnum.Both),matrixFragment=new core.ObjectMatrix;let rowIndex=startRow;const plainMatrix=new core.ObjectMatrix,discreteRange={rows:[],cols:[]};for(let r2=startRow;r2<=endRow;r2++)if(!filteredRows.has(r2)){discreteRange.rows.push(r2);for(let c=startColumn;c<=endColumn;c++){const cellData=matrix.getValue(r2,c);if(cellData){const newCellData=core.Tools.deepClone(cellData);plainMatrix.setValue(rowIndex-startRow,c-startColumn,{...getEmptyCell(),...newCellData}),delete newCellData.displayV,matrixFragment.setValue(rowIndex-startRow,c-startColumn,{...getEmptyCell(),...newCellData})}else plainMatrix.setValue(rowIndex-startRow,c-startColumn,getEmptyCell()),matrixFragment.setValue(rowIndex-startRow,c-startColumn,getEmptyCell()),matrix.setValue(r2,c,getEmptyCell())}rowIndex+=1}for(let c=startColumn;c<=endColumn;c++)discreteRange.cols.push(c);let html=this._usmToHtml.convert(matrix,discreteRange,hooks);const plain=getMatrixPlainText(plainMatrix),copyId=genId();return html=html.replace(/(<[a-z]+)/,(_p0,p1)=>`${p1} data-copy-id="${copyId}"`),{copyId,plain,html,matrixFragment,discreteRange}}_notifyClipboardHook(){this._clipboardHooks$.next(this._clipboardHooks)}async _executePaste(generateMutations){const target=this._getPastingTarget();if(!target.subUnitId||!target.selection)return!1;const range=this._injector.invoke(accessor=>rangeToDiscreteRange(target.selection.range,accessor,target.unitId,target.subUnitId));if(!range)return!1;const{unitId,subUnitId}=target,hooks=this._clipboardHooks,enabledHooks=[];if(hooks.some(h=>{var _a61;return enabledHooks.push(h)&&((_a61=h.onBeforePaste)==null?void 0:_a61.call(h,{unitId,subUnitId,range}))===!1}))return enabledHooks.forEach(h=>{var _a61;return(_a61=h.onAfterPaste)==null?void 0:_a61.call(h,!1)}),!1;const redoMutationsInfo=[],undoMutationsInfo=[];enabledHooks.forEach(h=>{const contentReturn=generateMutations(h,{unitId,subUnitId,range});contentReturn&&(redoMutationsInfo.push(...contentReturn.redos),undoMutationsInfo.push(...contentReturn.undos))});const result=redoMutationsInfo.every(m=>this._commandService.executeCommand(m.id,m.params));return result&&this._undoRedoService.pushUndoRedo({unitID:this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId(),undoMutations:undoMutationsInfo,redoMutations:redoMutationsInfo}),result}async _pasteFiles(files,pasteType){return this._executePaste((h,payload)=>{var _a61;return(_a61=h.onPasteFiles)==null?void 0:_a61.call(h,payload,files,{pasteType})})}async _pastePlainText(text,pasteType){return this._executePaste((h,payload)=>{var _a61;return(_a61=h.onPastePlainText)==null?void 0:_a61.call(h,payload,text,{pasteType})})}_pasteUnrecognized(){return this._executePaste((h,payload)=>{var _a61;return(_a61=h.onPasteUnrecognized)==null?void 0:_a61.call(h,payload)})}async _pasteHTML(html,pasteType){const copyId=extractId(html);return copyId&&this._copyContentCache.get(copyId)?this._pasteInternal(copyId,pasteType):this._pasteExternal(html,pasteType)}async _pasteExternal(html,pasteType){var _a61;const{rowProperties,colProperties,cellMatrix}=this._htmlToUSM.convert(html);if(!cellMatrix)return!1;const pasteTarget=this._getPastedRange(cellMatrix);if(!pasteTarget)return!1;const worksheet=(_a61=this._univerInstanceService.getUniverSheetInstance(pasteTarget.unitId))==null?void 0:_a61.getSheetBySheetId(pasteTarget.subUnitId);if(!worksheet)return!1;const mergeData=worksheet==null?void 0:worksheet.getMergeData();return mergeData.length&&mergeData.some(m=>rangeIntersectWithDiscreteRange(m,pasteTarget.pastedRange)&&!discreteRangeContainsRange(pasteTarget.pastedRange,m))?(this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1):this._pasteUSM({rowProperties,colProperties,cellMatrix},pasteTarget,pasteType)}async _pasteInternal(copyId,pasteType){var _a61,_b;const cachedData=core.Tools.deepClone(this._copyContentCache.get(copyId)),{range,matrix:cellMatrix,unitId:copyUnitId,subUnitId:copySubUnitId}=cachedData||{};if(!cellMatrix||!cachedData||!range||!copyUnitId||!copySubUnitId||!cellMatrix||!cachedData)return!1;const styles2=(_a61=this._univerInstanceService.getUniverSheetInstance(copyUnitId))==null?void 0:_a61.getStyles();cellMatrix.forValue((row,col,value)=>{if(typeof value.s=="string"){const newValue=core.Tools.deepClone(value);newValue.s=styles2==null?void 0:styles2.getStyleByCell(value),cellMatrix.setValue(row,col,newValue)}if(value.colSpan||value.rowSpan)for(let rStart=0;rStart<value.rowSpan;rStart++)for(let cStart=0;cStart<value.colSpan;cStart++){if(rStart===0&&cStart===0)continue;const r2=row+rStart,c=col+cStart;cellMatrix.setValue(r2,c,{s:styles2==null?void 0:styles2.getStyleByCell(value)})}});const pasteTarget=this._getPastedRange(cellMatrix);if(!pasteTarget)return!1;const pasteToWorksheet=(_b=this._univerInstanceService.getUniverSheetInstance(pasteTarget.unitId))==null?void 0:_b.getSheetBySheetId(pasteTarget.subUnitId);if(!pasteToWorksheet)return!1;const mergeData=pasteToWorksheet==null?void 0:pasteToWorksheet.getMergeData();if(mergeData&&mergeData.some(m=>rangeIntersectWithDiscreteRange(m,pasteTarget.pastedRange)&&!discreteRangeContainsRange(pasteTarget.pastedRange,m)))return this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1;const pasteFromWorkbook=this._univerInstanceService.getUnit(copyUnitId);if(!pasteFromWorkbook)return!1;const pasteFromWorksheet=pasteFromWorkbook.getSheetBySheetId(copySubUnitId);if(!pasteFromWorksheet)return!1;const colManager=pasteFromWorksheet.getColumnManager(),rowManager=pasteFromWorksheet.getRowManager(),defaultColumnWidth=pasteFromWorksheet.getConfig().defaultColumnWidth,defaultRowHeight=pasteFromWorksheet.getConfig().defaultRowHeight,colProperties=[],rowProperties=[];if(range.cols.forEach(i=>{const column=colManager.getColumnOrCreate(i);colProperties.push({width:`${column.w||defaultColumnWidth}`})}),range.rows.forEach(j=>{const row=rowManager.getRowOrCreate(j),{ah=defaultRowHeight,h=defaultRowHeight}=row,height=Math.max(ah,h);rowProperties.push({height:`${height}`})}),cachedData.copyType===COPY_TYPE.CUT){const start=pasteTarget.pastedRange.rows[0],end=range.rows[range.rows.length-1]-range.rows[0]+start;pasteTarget.pastedRange.rows=Array.from(new Array(end+1).keys()).slice(start)}const pasteRes=this._pasteUSM({cellMatrix,colProperties,rowProperties},pasteTarget,pasteType,{range,unitId:cachedData.unitId,subUnitId:cachedData.subUnitId,copyType:cachedData.copyType,copyId});return cachedData.copyType===COPY_TYPE.CUT&&(this._copyContentCache.set(copyId,{...cachedData,matrix:null}),this._copyMarkId&&this._markSelectionService.removeShape(this._copyMarkId),this._copyMarkId=null),pasteRes}_pasteUSM(data,target,pasteType,source){const{rowProperties,colProperties,cellMatrix}=data,{unitId,subUnitId,pastedRange}=target,colCount=pastedRange.cols.length,hooks=this._clipboardHooks,enabledHooks=[];if(hooks.some(h=>{var _a61;return enabledHooks.push(h)&&((_a61=h.onBeforePaste)==null?void 0:_a61.call(h,{unitId,subUnitId,range:pastedRange}))===!1}))return enabledHooks.forEach(h=>{var _a61;return(_a61=h.onAfterPaste)==null?void 0:_a61.call(h,!1)}),!1;if(!cellMatrix)return!1;const pasteFrom=source?{unitId:source.unitId,subUnitId:source.subUnitId,range:source.range}:null,payload={copyType:(source==null?void 0:source.copyType)||COPY_TYPE.COPY,copyId:source==null?void 0:source.copyId,pasteType};let redoMutationsInfo=[],undoMutationsInfo=[];const filteredHooks=enabledHooks.filter(h=>!h.specialPasteInfo&&h.id!==PREDEFINED_HOOK_NAME.DEFAULT_PASTE||pasteType===h.id);filteredHooks.forEach(h=>{var _a61,_b,_c;if(rowProperties){const rowReturn=(_a61=h.onPasteRows)==null?void 0:_a61.call(h,{range:pastedRange,unitId,subUnitId},rowProperties,{pasteType});rowReturn&&(redoMutationsInfo.push(...rowReturn.redos),undoMutationsInfo.push(...rowReturn.undos))}const colReturn=(_b=h.onPasteColumns)==null?void 0:_b.call(h,{range:pastedRange,unitId,subUnitId},colProperties||new Array(colCount).map(()=>({})),{pasteType});colReturn&&(redoMutationsInfo.push(...colReturn.redos),undoMutationsInfo.push(...colReturn.undos));const contentReturn=(_c=h.onPasteCells)==null?void 0:_c.call(h,pasteFrom,{range:pastedRange,unitId,subUnitId},cellMatrix,payload);contentReturn&&(redoMutationsInfo.push(...contentReturn.redos),undoMutationsInfo.push(...contentReturn.undos))});const setSelectionOperation=this._getSetSelectionOperation(unitId,subUnitId,pastedRange,cellMatrix,pasteType);setSelectionOperation&&redoMutationsInfo.push(setSelectionOperation),redoMutationsInfo=mergeSetRangeValues(redoMutationsInfo),undoMutationsInfo=mergeSetRangeValues(undoMutationsInfo),undoMutationsInfo.push({id:sheets.SetWorksheetActiveOperation.id,params:{unitId:target.unitId,subUnitId:target.subUnitId}}),this._logService.log("[SheetClipboardService]","pasting mutations",{undoMutationsInfo,redoMutationsInfo});const result=redoMutationsInfo.every(m=>this._commandService.syncExecuteCommand(m.id,m.params));return result&&(this._undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:undoMutationsInfo,redoMutations:redoMutationsInfo}),this.updatePasteOptionsCache({target:{pastedRange,unitId,subUnitId},cellMatrix,rowProperties,colProperties,pasteType,source}),this.setShowMenu(!0)),filteredHooks.forEach(h=>{var _a61;return(_a61=h.onAfterPaste)==null?void 0:_a61.call(h,result)}),result}_getSetSelectionOperation(unitId,subUnitId,range,cellMatrix,pasteType){var _a61;const worksheet=(_a61=this._univerInstanceService.getUniverSheetInstance(unitId))==null?void 0:_a61.getSheetBySheetId(subUnitId);if(!worksheet)return null;const{rows,cols}=range,startRow=rows[0],startColumn=cols[0],endRow=rows[rows.length-1],endColumn=cols[cols.length-1],primaryCell={startRow,endRow:startRow,startColumn,endColumn:startColumn},primary=sheets.getPrimaryForRange(primaryCell,worksheet),mainCell=cellMatrix.getValue(0,0),rowSpan=(mainCell==null?void 0:mainCell.rowSpan)||1,colSpan=(mainCell==null?void 0:mainCell.colSpan)||1;if((pasteType===PREDEFINED_HOOK_NAME.DEFAULT_PASTE||pasteType===PREDEFINED_HOOK_NAME.SPECIAL_PASTE_BESIDES_BORDER||pasteType===PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT)&&(rowSpan>1||colSpan>1)){const mergeRange={startRow,endRow:startRow+rowSpan-1,startColumn,endColumn:startColumn+colSpan-1};primary.startRow=mergeRange.startRow,primary.endRow=mergeRange.endRow,primary.startColumn=mergeRange.startColumn,primary.endColumn=mergeRange.endColumn,primary.isMerged=!0,primary.isMergedMainCell=!0}const setSelectionsParam={unitId,subUnitId,selections:[{range:{startRow,endRow,startColumn,endColumn},primary,style:null}]};return{id:sheets.SetSelectionsOperation.id,params:setSelectionsParam}}_getPastingTarget(){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),selection=this._selectionManagerService.getCurrentLastSelection();return{unitId:workbook.getUnitId(),subUnitId:worksheet==null?void 0:worksheet.getSheetId(),selection}}_transformPastedData(rowCount,colCount,cellMatrix){const target=this._getPastingTarget(),{selection,unitId,subUnitId}=target;if(!subUnitId||!selection)return null;const discreteRange=this._injector.invoke(accessor=>rangeToDiscreteRange(selection.range,accessor,unitId,subUnitId));if(!discreteRange)return null;const{ranges:[vRange],mapFunc}=virtualizeDiscreteRanges([discreteRange]),{startRow,startColumn,endRow,endColumn}=vRange,destinationRows=endRow-startRow+1,destinationColumns=endColumn-startColumn+1,workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!worksheet)return null;const mergedCellsInRange=worksheet.getMergeData().filter(rect=>discreteRange.rows.includes(rect.startRow)&&discreteRange.cols.includes(rect.startColumn)),mergedRange=mergedCellsInRange[0];let mergedRangeStartRow=0,mergedRangeStartColumn=0,mergedRangeEndRow=0,mergedRangeEndColumn=0;if(mergedRange&&(mergedRangeStartRow=mergedRange.startRow,mergedRangeStartColumn=mergedRange.startColumn,mergedRangeEndRow=mergedRange.endRow,mergedRangeEndColumn=mergedRange.endColumn),destinationRows%rowCount===0&&destinationColumns%colCount===0)if(mergedCellsInRange.length>0&&(destinationRows!==rowCount||destinationColumns!==colCount))if(mergedRangeStartRow===discreteRange.rows[0]&&mergedRangeStartColumn===discreteRange.cols[0]&&mergedRangeEndRow===discreteRange.rows[destinationRows-1]&&mergedRangeEndColumn===discreteRange.cols[destinationColumns-1])if(isMultipleCells(cellMatrix))for(let r2=0;r2<destinationRows;r2++)for(let c=0;c<destinationColumns;c++){const cell=cellMatrix.getValue(r2%rowCount,c%colCount);cell&&cellMatrix.setValue(r2,c,cell)}else cellMatrix.forValue((row,col,cell)=>{cell.s=null,delete cell.colSpan,delete cell.rowSpan});else for(let r2=0;r2<destinationRows;r2++)for(let c=0;c<destinationColumns;c++){const cell=cellMatrix.getValue(r2%rowCount,c%colCount);cell&&cellMatrix.setValue(r2,c,cell)}else for(let r2=0;r2<destinationRows;r2++)for(let c=0;c<destinationColumns;c++){const cell=cellMatrix.getValue(r2%rowCount,c%colCount);cell&&cellMatrix.setValue(r2,c,cell)}else if(mergedCellsInRange.length>0){const{row:topRow,col:leftCol}=mapFunc(startRow,startColumn);if(this._topLeftCellsMatch(rowCount,colCount,{topRow,leftCol})){const newDiscreteRange=this._expandOrShrinkRowsCols(unitId,subUnitId,discreteRange,colCount,rowCount);discreteRange.rows=newDiscreteRange.rows,discreteRange.cols=newDiscreteRange.cols}else{if(endRow>mergedRange.endRow||endColumn>mergedRange.endColumn)return null;cellMatrix.forValue((row,col,cell)=>{cell.s=null,delete cell.colSpan,delete cell.rowSpan})}}else{const newDiscreteRange=this._expandOrShrinkRowsCols(unitId,subUnitId,discreteRange,colCount,rowCount);discreteRange.rows=newDiscreteRange.rows,discreteRange.cols=newDiscreteRange.cols}return{pastedRange:discreteRange,unitId,subUnitId}}_getPastedRange(cellMatrix){var _a61;const target=this._getPastingTarget(),{selection,unitId,subUnitId}=target;if(!subUnitId||!selection)return null;const discreteRange=this._injector.invoke(accessor=>rangeToDiscreteRange(selection.range,accessor,unitId,subUnitId));if(!discreteRange)return null;const{startColumn,endColumn,startRow,endRow}=cellMatrix.getDataRange(),rowCount=endRow-startRow+1,colCount=endColumn-startColumn+1;if(rowCount<=0||colCount<=0)return null;const pasteSelectionRangeRowLen=discreteRange.rows.length,pasteSelectionRangeColLen=discreteRange.cols.length,worksheet=(_a61=this._univerInstanceService.getUniverSheetInstance(unitId))==null?void 0:_a61.getSheetBySheetId(subUnitId);if(!worksheet)return null;const mergeData=worksheet==null?void 0:worksheet.getMergeData();if(pasteSelectionRangeRowLen%rowCount===0&&pasteSelectionRangeColLen%colCount===0&&!(mergeData==null?void 0:mergeData.some(merge=>rangeIntersectWithDiscreteRange(merge,discreteRange)))){for(let r2=0;r2<pasteSelectionRangeRowLen;r2++)for(let c=0;c<pasteSelectionRangeColLen;c++){const cell=cellMatrix.getValue(r2%rowCount,c%colCount);cell&&cellMatrix.setValue(r2,c,cell)}return{pastedRange:discreteRange,unitId,subUnitId}}const newDiscreteRange=this._expandOrShrinkRowsCols(unitId,subUnitId,discreteRange,colCount,rowCount);return discreteRange.rows=newDiscreteRange.rows,discreteRange.cols=newDiscreteRange.cols,{pastedRange:discreteRange,unitId,subUnitId}}_expandOrShrinkRowsCols(unitId,subUnitId,range,colCount,rowCount){const{rows,cols}=range,workbook=this._univerInstanceService.getUniverSheetInstance(unitId),worksheet=workbook==null?void 0:workbook.getSheetBySheetId(subUnitId);let newRows,newCols;if(rows.length>=rowCount)newRows=rows.slice(0,rowCount);else{newRows=rows.slice(0);let rowIndex=rows[rows.length-1]+1;for(;newRows.length<rowCount;)worksheet.getRowFiltered(rowIndex)||newRows.push(rowIndex),rowIndex++}if(cols.length>=colCount)newCols=cols.slice(0,colCount);else{newCols=cols.slice(0);let colIndex=cols[cols.length-1]+1;for(;newCols.length<colCount;)newCols.push(colIndex),colIndex++}return{rows:newRows,cols:newCols}}_topLeftCellsMatch(rowCount,colCount,range){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!worksheet)return!1;const{topRow,leftCol}=range,isRowAcross=rowAcrossMergedCell(topRow+rowCount-1,leftCol,leftCol+colCount-1,worksheet),isColAcross=columnAcrossMergedCell(leftCol+colCount-1,topRow,topRow+rowCount-1,worksheet);return!isRowAcross&&!isColAcross}removeMarkSelection(){this._copyMarkId&&(this._markSelectionService.removeShape(this._copyMarkId),this._copyMarkId=null)}_initUnitDisposed(){this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(core.UniverInstanceType.UNIVER_SHEET).subscribe(workbook=>{workbook&&this.copyContentCache().clearWithUnitId(workbook.getUnitId())}))}disposePasteOptionsCache(){this.setShowMenu(!1),this.updatePasteOptionsCache(null)}},__name(_a15,"SheetClipboardService"),_a15);exports.SheetClipboardService=__decorateClass$H([__decorateParam$H(0,core.ILogService),__decorateParam$H(1,core.IUniverInstanceService),__decorateParam$H(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$H(3,ui.IClipboardInterfaceService),__decorateParam$H(4,core.IUndoRedoService),__decorateParam$H(5,core.ICommandService),__decorateParam$H(6,IMarkSelectionService),__decorateParam$H(7,ui.INotificationService),__decorateParam$H(8,ui.IPlatformService),__decorateParam$H(9,engineRender.IRenderManagerService),__decorateParam$H(10,core.Inject(core.ThemeService)),__decorateParam$H(11,core.Inject(core.LocaleService)),__decorateParam$H(12,core.Inject(core.ErrorService)),__decorateParam$H(13,core.Inject(core.Injector))],exports.SheetClipboardService);function getMatrixPlainText(matrix){let plain="";const matrixLength=matrix.getLength();return matrix.forRow((row,cols)=>{const arr=[];cols.forEach(col=>{const cell=matrix.getValue(row,col);if(cell){const cellText=getCellTextForClipboard(cell);arr.push(cellText)}}),plain+=arr.join(" "),row!==matrixLength-1&&(plain+=`
12
- `)}),plain}__name(getMatrixPlainText,"getMatrixPlainText");function getCellTextForClipboard(cell){return core.isNotNullOrUndefined(cell.displayV)?cell.displayV:core.extractPureTextFromCell(cell)}__name(getCellTextForClipboard,"getCellTextForClipboard");function rowAcrossMergedCell(row,startColumn,endColumn,worksheet){return worksheet.getMergeData().some(mergedCell=>mergedCell.startRow<=row&&row<mergedCell.endRow&&startColumn<=mergedCell.startColumn&&mergedCell.startColumn<=endColumn)}__name(rowAcrossMergedCell,"rowAcrossMergedCell");function columnAcrossMergedCell(col,startRow,endRow,worksheet){return worksheet.getMergeData().some(mergedCell=>mergedCell.startColumn<=col&&col<mergedCell.endColumn&&startRow<=mergedCell.startRow&&mergedCell.startRow<=endRow)}__name(columnAcrossMergedCell,"columnAcrossMergedCell");function isMultipleCells(cellMatrix){let count=0;return cellMatrix.forValue((row,col,cell)=>{if(cell&&count++,count>1)return!1}),count>1}__name(isMultipleCells,"isMultipleCells");function getEmptyCell(){return{p:null,v:null,s:null,f:null,si:null,t:null}}__name(getEmptyCell,"getEmptyCell");const SHEET_CLIPBOARD_PRIORITY=998,SheetCopyCommand={id:ui.CopyCommand.id,name:"sheet.command.copy",type:core.CommandType.COMMAND,multi:!0,priority:SHEET_CLIPBOARD_PRIORITY,preconditions:whenSheetFocused,handler:__name(async accessor=>accessor.get(ISheetClipboardService).copy(),"handler")},SheetCutCommand={id:ui.CutCommand.id,name:"sheet.command.cut",type:core.CommandType.COMMAND,multi:!0,priority:SHEET_CLIPBOARD_PRIORITY,preconditions:whenSheetFocused,handler:__name(async accessor=>accessor.get(ISheetClipboardService).cut(),"handler")},SheetPasteCommand={id:ui.PasteCommand.id,type:core.CommandType.COMMAND,multi:!0,name:"sheet.command.paste",priority:SHEET_CLIPBOARD_PRIORITY,preconditions:whenSheetFocused,handler:__name(async(accessor,params)=>{const clipboardItems=await accessor.get(ui.IClipboardInterfaceService).read(),sheetClipboardService=accessor.get(ISheetClipboardService);return clipboardItems.length!==0?sheetClipboardService.paste(clipboardItems[0],params==null?void 0:params.value):!1},"handler")},SheetPasteShortKeyCommand={id:ui.SheetPasteShortKeyCommandName,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const clipboardService=accessor.get(ISheetClipboardService),{htmlContent,textContent,files}=params;return clipboardService.legacyPaste(htmlContent,textContent,files),!0},"handler")},SheetPasteValueCommand={id:"sheet.command.paste-value",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE}),"handler")},SheetPasteFormatCommand={id:"sheet.command.paste-format",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT}),"handler")},SheetPasteColWidthCommand={id:"sheet.command.paste-col-width",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH}),"handler")},SheetPasteBesidesBorderCommand={id:"sheet.command.paste-besides-border",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_BESIDES_BORDER}),"handler")},SheetOptionalPasteCommand={id:"sheet.command.optional-paste",type:core.CommandType.COMMAND,handler:__name(async(accessor,{type})=>accessor.get(ISheetClipboardService).rePasteWithPasteType(type),"handler")},HideRowConfirmCommand={id:"sheet.command.hide-row-confirm",type:core.CommandType.COMMAND,handler:__name(async accessor=>{var _a61;const ranges=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range);if(!(ranges!=null&&ranges.length))return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allRowRanges=worksheet.getVisibleRows();if(isAllRowsCovered(allRowRanges,ranges)){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.hide-row",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.hideAllRowsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.SetRowHiddenCommand.id),!0},"handler")},HideColConfirmCommand={id:"sheet.command.hide-col-confirm",type:core.CommandType.COMMAND,handler:__name(async accessor=>{var _a61;const ranges=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range);if(!(ranges!=null&&ranges.length))return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allColumnRanges=worksheet.getVisibleCols();if(isAllColumnsCovered(allColumnRanges,ranges)){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.hide-col",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.hideAllColumnsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.SetColHiddenCommand.id),!0},"handler")},SetRangeBoldCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-bold",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatBoldCommand.id):commandService.executeCommand(sheets.SetBoldCommand.id)},"handler")},SetRangeItalicCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-italic",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatItalicCommand.id):commandService.executeCommand(sheets.SetItalicCommand.id)},"handler")},SetRangeUnderlineCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-underline",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatUnderlineCommand.id):commandService.executeCommand(sheets.SetUnderlineCommand.id)},"handler")},SetRangeStrickThroughCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-stroke",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatStrikethroughCommand.id):commandService.executeCommand(sheets.SetStrikeThroughCommand.id)},"handler")},SetRangeSubscriptCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-subscript",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatSubscriptCommand.id):!1},"handler")},SetRangeSuperscriptCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-superscript",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatSuperscriptCommand.id):!1},"handler")},SetRangeFontSizeCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-fontsize",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatFontSizeCommand.id,params):commandService.executeCommand(sheets.SetFontSizeCommand.id,params)},"handler")},SetRangeFontFamilyCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-font-family",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatFontFamilyCommand.id,params):commandService.executeCommand(sheets.SetFontFamilyCommand.id,params)},"handler")},SetRangeTextColorCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-text-color",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatTextColorCommand.id,params):commandService.executeCommand(sheets.SetTextColorCommand.id,params)},"handler")},ResetRangeTextColorCommand={type:core.CommandType.COMMAND,id:"sheet.command.reset-range-text-color",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService),isCellEditorFocus=accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED),themeService=accessor.get(core.ThemeService);return isCellEditorFocus?commandService.executeCommand(docsUi.SetInlineFormatTextColorCommand.id,{value:null}):commandService.executeCommand(sheets.SetTextColorCommand.id,{value:themeService.getCurrentTheme().textColor})},"handler")};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"),FormatPainterStatus=(FormatPainterStatus2=>(FormatPainterStatus2[FormatPainterStatus2.OFF=0]="OFF",FormatPainterStatus2[FormatPainterStatus2.ONCE=1]="ONCE",FormatPainterStatus2[FormatPainterStatus2.INFINITE=2]="INFINITE",FormatPainterStatus2))(FormatPainterStatus||{});const IFormatPainterService=core.createIdentifier("univer.format-painter-service");var _a16;let FormatPainterService=(_a16=class extends core.Disposable{constructor(_selectionManagerService,_themeService,_markSelectionService,_logService,_commandService,_undoRedoService){super();__publicField(this,"status$");__publicField(this,"_selectionFormat");__publicField(this,"_markId",null);__publicField(this,"_status$");__publicField(this,"_defaultHook",null);__publicField(this,"_extendHooks",[]);this._selectionManagerService=_selectionManagerService,this._themeService=_themeService,this._markSelectionService=_markSelectionService,this._logService=_logService,this._commandService=_commandService,this._undoRedoService=_undoRedoService,this._status$=new rxjs.BehaviorSubject(0),this.status$=this._status$.asObservable(),this._selectionFormat={styles:new core.ObjectMatrix,merges:[]}}addHook(hook){var _a61,_b,_c;hook.isDefaultHook&&((_a61=hook.priority)!=null?_a61:0)>((_c=(_b=this._defaultHook)==null?void 0:_b.priority)!=null?_c:-1)?this._defaultHook=hook:(this._extendHooks.push(hook),this._extendHooks.sort((a,b)=>(a.priority||0)-(b.priority||0)))}getHooks(){return this._defaultHook?[this._defaultHook,...this._extendHooks]:this._extendHooks}setStatus(status){this._updateRangeMark(status),this._status$.next(status),this.getHooks().forEach(hook=>{hook.onStatusChange!==void 0&&hook.onStatusChange(status)})}getStatus(){return this._status$.getValue()}setSelectionFormat(format){this._selectionFormat=format}getSelectionFormat(){return this._selectionFormat}applyFormatPainter(unitId,subUnitId,range){const hooks=this.getHooks(),redoMutationsInfo=[],undoMutationsInfo=[];hooks.forEach(h=>{if(h.onApply!==void 0){const applyReturn=h.onApply(unitId,subUnitId,range,this._selectionFormat);applyReturn&&(redoMutationsInfo.push(...applyReturn.redos),undoMutationsInfo.push(...applyReturn.undos))}});for(const beforeHook of hooks)if(beforeHook.onBeforeApply!==void 0&&!beforeHook.onBeforeApply({unitId,subUnitId,range,redoMutationsInfo,format:this._selectionFormat,undoMutationsInfo}))return!1;this._logService.log("[FormatPainterService]","apply mutations",{undoMutationsInfo,redoMutationsInfo});const result=redoMutationsInfo.every(m=>this._commandService.executeCommand(m.id,m.params));return result&&this._undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:undoMutationsInfo,redoMutations:redoMutationsInfo}),result}_updateRangeMark(status){if(this._markSelectionService.removeAllShapes(),status!==0){const selection=this._selectionManagerService.getCurrentLastSelection();if(selection){const style=createCopyPasteSelectionStyle(this._themeService);status===2?this._markId=this._markSelectionService.addShape({...selection,style}):this._markId=this._markSelectionService.addShape({...selection,style},[sheets.SetRangeValuesMutation.id])}}}},__name(_a16,"FormatPainterService"),_a16);FormatPainterService=__decorateClass$G([__decorateParam$G(0,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$G(1,core.Inject(core.ThemeService)),__decorateParam$G(2,IMarkSelectionService),__decorateParam$G(3,core.ILogService),__decorateParam$G(4,core.ICommandService),__decorateParam$G(5,core.IUndoRedoService)],FormatPainterService);const SetFormatPainterOperation={id:"sheet.operation.set-format-painter",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>params?(accessor.get(IFormatPainterService).setStatus(params.status),!0):!1,"handler")},SetInfiniteFormatPainterCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-infinite-format-painter",handler:__name(async accessor=>{const status=accessor.get(IFormatPainterService).getStatus();let newStatus;return status!==FormatPainterStatus.OFF?newStatus=FormatPainterStatus.OFF:newStatus=FormatPainterStatus.INFINITE,accessor.get(core.ICommandService).executeCommand(SetFormatPainterOperation.id,{status:newStatus})},"handler")},SetOnceFormatPainterCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-once-format-painter",handler:__name(async accessor=>{const status=accessor.get(IFormatPainterService).getStatus();let newStatus;return status!==FormatPainterStatus.OFF?newStatus=FormatPainterStatus.OFF:newStatus=FormatPainterStatus.ONCE,accessor.get(core.ICommandService).executeCommand(SetFormatPainterOperation.id,{status:newStatus})},"handler")},ApplyFormatPainterCommand={type:core.CommandType.COMMAND,id:"sheet.command.apply-format-painter",handler:__name(async(accessor,params)=>accessor.get(IFormatPainterService).applyFormatPainter(params.unitId,params.subUnitId,params.range),"handler")},SetSelectionFrozenCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-selection-frozen",handler:__name(async(accessor,params)=>{const{type}=params||{},univerInstanceService=accessor.get(core.IUniverInstanceService),undoRedoService=accessor.get(core.IUndoRedoService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{unitId,subUnitId}=target,commandService=accessor.get(core.ICommandService),selections=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections();if(!selections)return!1;const currentSelection=selections[(selections==null?void 0:selections.length)-1],{range}=currentSelection,scrollManagerService=accessor.get(engineRender.IRenderManagerService).getRenderById(unitId).with(exports.SheetScrollManagerService),{sheetViewStartRow=0,sheetViewStartColumn=0}=scrollManagerService.getCurrentScrollState()||{};let startRow,startColumn,freezedRowCount,freezedColCount;const{startRow:selectRow,startColumn:selectColumn,rangeType}=range;if(rangeType===core.RANGE_TYPE.ROW||type===1)startRow=selectRow,freezedRowCount=selectRow-sheetViewStartRow,startColumn=-1,freezedColCount=0;else if(rangeType===core.RANGE_TYPE.COLUMN||type===2)startRow=-1,freezedRowCount=0,startColumn=selectColumn,freezedColCount=selectColumn-sheetViewStartColumn;else if(rangeType===core.RANGE_TYPE.NORMAL)startRow=selectRow,freezedRowCount=selectRow-sheetViewStartRow,startColumn=selectColumn,freezedColCount=selectColumn-sheetViewStartColumn;else return!1;const redoMutationParams={unitId,subUnitId,startRow,startColumn,xSplit:startColumn>0?Math.max(1,freezedColCount):freezedColCount,ySplit:startRow>0?Math.max(1,freezedRowCount):freezedRowCount},undoMutationParams=sheets.SetFrozenMutationFactory(accessor,redoMutationParams);return commandService.syncExecuteCommand(sheets.SetFrozenMutation.id,redoMutationParams)&&undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:[{id:sheets.SetFrozenMutation.id,params:undoMutationParams}],redoMutations:[{id:sheets.SetFrozenMutation.id,params:redoMutationParams}]}),!0},"handler")},SetRowFrozenCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-row-frozen",handler:__name(async accessor=>(accessor.get(core.ICommandService).executeCommand(SetSelectionFrozenCommand.id,{type:1}),!0),"handler")},SetColumnFrozenCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-col-frozen",handler:__name(async accessor=>(accessor.get(core.ICommandService).executeCommand(SetSelectionFrozenCommand.id,{type:2}),!0),"handler")};var __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 createAutoColWidthUndoMutationsByRedos=__name((params,worksheet)=>{const{unitId,subUnitId,ranges}=params,colWidthObj={},manager=worksheet.getColumnManager();for(let i=0;i<ranges.length;i++){const range=ranges[i];for(let j=range.startColumn;j<range.endColumn+1;j++){const col=manager.getColumnOrCreate(j);colWidthObj[j]=col.w}}return{unitId,subUnitId,ranges,colWidth:colWidthObj}},"createAutoColWidthUndoMutationsByRedos");var _a17;exports.AutoWidthController=(_a17=class extends core.Disposable{constructor(_renderManagerService,_univerInstanceService){super(),this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService}getUndoRedoParamsOfColWidth(params){const defaultValue={redos:[],undos:[]},{_univerInstanceService:univerInstanceService}=this,target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return defaultValue;const{unitId,subUnitId,worksheet}=target,sheetSkeletonService=this._renderManagerService.getRenderById(unitId).with(exports.SheetSkeletonManagerService);if(!sheetSkeletonService.getCurrent())return defaultValue;const{skeleton}=sheetSkeletonService.getCurrent(),colsAutoWidthInfo=skeleton.calculateAutoWidthInRange(params.ranges),colWidthObject={};for(const{col,width}of colsAutoWidthInfo)colWidthObject[col]=width;const redoParams={subUnitId,unitId,ranges:params.ranges,colWidth:colWidthObject},undoParams=createAutoColWidthUndoMutationsByRedos(redoParams,worksheet);return{undos:[{id:sheets.SetWorksheetColWidthMutation.id,params:undoParams}],redos:[{id:sheets.SetWorksheetColWidthMutation.id,params:redoParams}]}}},__name(_a17,"AutoWidthController"),_a17);exports.AutoWidthController=__decorateClass$F([__decorateParam$F(0,engineRender.IRenderManagerService),__decorateParam$F(1,core.Inject(core.IUniverInstanceService))],exports.AutoWidthController);const SetWorksheetColAutoWidthCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-col-auto-width",handler:__name((accessor,params)=>{const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService,params);if(!target)return!1;const{unitId,subUnitId}=target;let ranges=[];if(params!=null&&params.ranges)ranges=[...params.ranges];else{const selections=selectionManagerService.getCurrentSelections();for(let i=0;i<selections.length;i++)ranges.push(selections[i].range)}if(!(ranges!=null&&ranges.length))return!1;const redoMutationParams={unitId,subUnitId,ranges},{redos,undos}=accessor.get(exports.AutoWidthController).getUndoRedoParamsOfColWidth(redoMutationParams);return core.sequenceExecute([...redos],commandService).result?(undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:[...undos],redoMutations:[...redos]}),!0):!1},"handler")},COMPONENT_PREFIX="UI_PLUGIN_SHEETS",COLOR_PICKER_COMPONENT=`${COMPONENT_PREFIX}_COLOR_PICKER_COMPONENT`,FONT_FAMILY_COMPONENT=`${COMPONENT_PREFIX}_FONT_FAMILY_COMPONENT`,FONT_FAMILY_ITEM_COMPONENT=`${COMPONENT_PREFIX}_FONT_FAMILY_ITEM_COMPONENT`,FONT_SIZE_COMPONENT=`${COMPONENT_PREFIX}_FONT_SIZE_COMPONENT`,MENU_ITEM_INPUT_COMPONENT=`${COMPONENT_PREFIX}_MENU_ITEM_INPUT_COMPONENT`,sheetsUiContextMenuInput="univer-sheets-ui-context-menu-input",sheetsUiContextMenuInputContainer="univer-sheets-ui-context-menu-input-container",sheetsUiContextMenuInputNumber="univer-sheets-ui-context-menu-input-number",styles$k={sheetsUiContextMenuInput,sheetsUiContextMenuInputContainer,sheetsUiContextMenuInputNumber},MenuItemInput=__name(props=>{const{prefix,suffix,value,onChange,min=Number.MIN_SAFE_INTEGER,max=Number.MAX_SAFE_INTEGER}=props,localeService=core.useDependency(core.LocaleService),contextMenuService=core.useDependency(ui.IContextMenuService),[inputValue,setInputValue]=React.useState(),handleChange=__name(value2=>{var _a61;setInputValue(value2==null?void 0:value2.toString()),onChange((_a61=value2==null?void 0:value2.toString())!=null?_a61:"")},"handleChange");React.useEffect(()=>{contextMenuService.visible||setInputValue(value)},[contextMenuService.visible]),React.useEffect(()=>{setInputValue(value)},[value]);function handleKeyDown(e){e.key==="Backspace"&&e.stopPropagation()}return __name(handleKeyDown,"handleKeyDown"),jsxRuntime.jsxs("div",{className:styles$k.sheetsUiContextMenuInput,children:[localeService.t(prefix),jsxRuntime.jsx("span",{className:styles$k.sheetsUiContextMenuInputContainer,onClick:__name(e=>e.stopPropagation(),"onClick"),children:jsxRuntime.jsx(design.InputNumber,{className:styles$k.sheetsUiContextMenuInputNumber,value:Number(inputValue),precision:0,onKeyDown:handleKeyDown,onChange:handleChange,min,max})}),localeService.t(suffix)]})},"MenuItemInput");function getActiveSheet$(univerInstanceService){return univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.switchMap(workbook=>workbook?workbook.activeSheet$.pipe(rxjs.map(worksheet=>worksheet?{workbook,worksheet}:null)):rxjs.of(null)))}__name(getActiveSheet$,"getActiveSheet$");function deriveStateFromActiveSheet$(univerInstanceService,defaultValue,callback){return getActiveSheet$(univerInstanceService).pipe(rxjs.switchMap(active=>active?callback(active):rxjs.of(defaultValue)))}__name(deriveStateFromActiveSheet$,"deriveStateFromActiveSheet$");function getCurrentExclusiveRangeInterest$(accessor,disableGroupSet){const univerInstanceService=accessor.get(core.IUniverInstanceService),exclusiveRangeService=accessor.get(sheets.IExclusiveRangeService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService);return univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.switchMap(workbook=>workbook?rxjs.combineLatest([selectionManagerService.selectionMoveEnd$,workbook.activeSheet$]).pipe(rxjs.switchMap(([selections,worksheet])=>{if(!worksheet||selections.length===0)return rxjs.of(!1);const interestGroupIds=exclusiveRangeService.getInterestGroupId(selections);if(disableGroupSet){const disableGroup=interestGroupIds.filter(groupId=>disableGroupSet.has(groupId));return rxjs.of(disableGroup.length>0)}else return rxjs.of(interestGroupIds.length>0)})):rxjs.of(!1)))}__name(getCurrentExclusiveRangeInterest$,"getCurrentExclusiveRangeInterest$");function getObservableWithExclusiveRange$(accessor,observable$,disableGroupSet){return rxjs.combineLatest([observable$,getCurrentExclusiveRangeInterest$(accessor,disableGroupSet)]).pipe(rxjs.map(([observable,exclusiveRangeDisable])=>observable||exclusiveRangeDisable))}__name(getObservableWithExclusiveRange$,"getObservableWithExclusiveRange$");function getCurrentRangeDisable$(accessor,permissionTypes={},supportCellEdit=!1){var _a61;const workbook$=accessor.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService),editorBridgeService=accessor.has(IEditorBridgeService)?accessor.get(IEditorBridgeService):null,formulaEditorFocus$=accessor.get(core.IContextService).subscribeContextValue$(core.FOCUSING_FX_BAR_EDITOR),editorVisible$=(_a61=editorBridgeService==null?void 0:editorBridgeService.visible$)!=null?_a61:rxjs.of(null);return rxjs.combineLatest([userManagerService.currentUser$,workbook$,editorVisible$,formulaEditorFocus$]).pipe(rxjs.switchMap(([_2,workbook,visible,formulaEditorFocus])=>!workbook||visible!=null&&visible.visible&&visible.unitId===workbook.getUnitId()&&!supportCellEdit||formulaEditorFocus&&!supportCellEdit?rxjs.of(!0):workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{if(!worksheet)return rxjs.of(!0);const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),focusedOnDrawing$=accessor.get(core.IContextService).subscribeContextValue$(core.FOCUSING_COMMON_DRAWINGS).pipe(rxjs.startWith(!1));return rxjs.combineLatest([selectionManagerService.selectionMoveEnd$,focusedOnDrawing$]).pipe(rxjs.switchMap(([selection,focusOnDrawings])=>{if(focusOnDrawings)return rxjs.of(!0);const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionService=accessor.get(core.IPermissionService),{workbookTypes=[sheets.WorkbookEditablePermission],worksheetTypes,rangeTypes}=permissionTypes,permissionIds=[];if(workbookTypes==null||workbookTypes.forEach(F=>{permissionIds.push(new F(unitId).id)}),worksheetTypes==null||worksheetTypes.forEach(F=>{permissionIds.push(new F(unitId,subUnitId).id)}),worksheetRuleModel.getRule(unitId,subUnitId))return permissionService.composePermission$(permissionIds).pipe(rxjs.map(list=>list.some(item=>item.value===!1)));const selectionRanges=selection==null?void 0:selection.map(selection2=>selection2.range),rules=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>selectionRanges==null?void 0:selectionRanges.some(range=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(range,ruleRange))));return rangeTypes==null||rangeTypes.forEach(F=>{rules.forEach(rule=>{permissionIds.push(new F(unitId,subUnitId,rule.permissionId).id)})}),permissionService.composePermission$(permissionIds).pipe(rxjs.map(list=>list.some(item=>item.value===!1)))}))}))))}__name(getCurrentRangeDisable$,"getCurrentRangeDisable$");function getBaseRangeMenuHidden$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id];return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(range,ruleRange))).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getBaseRangeMenuHidden$,"getBaseRangeMenuHidden$");function getInsertAfterMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id];return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>type==="row"?rule.ranges.some(ruleRange=>range.endRow>ruleRange.startRow&&range.endRow<=ruleRange.endRow):rule.ranges.some(ruleRange=>range.endColumn>ruleRange.startColumn&&range.endColumn<=ruleRange.endColumn)).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getInsertAfterMenuHidden$,"getInsertAfterMenuHidden$");function getInsertBeforeMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id];return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>type==="row"?rule.ranges.some(ruleRange=>range.startRow>ruleRange.startRow&&range.startRow<=ruleRange.endRow):rule.ranges.some(ruleRange=>range.startColumn>ruleRange.startColumn&&range.startColumn<=ruleRange.endColumn)).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getInsertBeforeMenuHidden$,"getInsertBeforeMenuHidden$");function getDeleteMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id],rowColRangeExpand=core.Tools.deepClone(range);return type==="row"?(rowColRangeExpand.startColumn=0,rowColRangeExpand.endColumn=worksheet.getColumnCount()-1):(rowColRangeExpand.startRow=0,rowColRangeExpand.endRow=worksheet.getRowCount()-1),rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(rowColRangeExpand,ruleRange))).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getDeleteMenuHidden$,"getDeleteMenuHidden$");function getCellMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id],rowColRangeExpand=core.Tools.deepClone(range);return type==="row"?rowColRangeExpand.endRow=worksheet.getRowCount()-1:rowColRangeExpand.endColumn=worksheet.getColumnCount()-1,rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(rowColRangeExpand,ruleRange))).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getCellMenuHidden$,"getCellMenuHidden$");function getWorkbookPermissionDisable$(accessor,workbookPermissionTypes){const workbook$=accessor.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),selectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([userManagerService.currentUser$,workbook$]).pipe(rxjs.switchMap(([_user,workbook])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(activeSheet=>{if(!activeSheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),workbookPermissionIds=[];return workbookPermissionTypes.forEach(F=>workbookPermissionIds.push(new F(unitId).id)),permissionService.composePermission$(workbookPermissionIds).pipe(rxjs.map(list=>list.every(item=>item.value===!0))).pipe(rxjs.map(basePermission=>{if(!basePermission)return!0;const subUnitId=activeSheet.getSheetId(),worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId),rangeRuleList=selectionRuleModel.getSubunitRuleList(unitId,subUnitId);return!!(worksheetRule||rangeRuleList.length)}))})):rxjs.of(!0)))}__name(getWorkbookPermissionDisable$,"getWorkbookPermissionDisable$");var SheetMenuPosition=(SheetMenuPosition2=>(SheetMenuPosition2.ROW_HEADER_CONTEXT_MENU="ROW_HEADER_CONTEXT_MENU",SheetMenuPosition2.COL_HEADER_CONTEXT_MENU="COL_HEADER_CONTEXT_MENU",SheetMenuPosition2.SHEET_BAR="SHEET_BAR",SheetMenuPosition2.SHEET_FOOTER="SHEET_FOOTER",SheetMenuPosition2))(SheetMenuPosition||{});function FormatPainterMenuItemFactory(accessor){const formatPainterService=accessor.get(IFormatPainterService);return{id:SetOnceFormatPainterCommand.id,subId:SetInfiniteFormatPainterCommand.id,type:ui.MenuItemType.BUTTON,icon:"BrushSingle",title:"Format Painter",tooltip:"toolbar.formatPainter",activated$:new rxjs.Observable(subscriber=>{let active=!1;const status$=formatPainterService.status$.subscribe(s=>{active=s!==FormatPainterStatus.OFF,subscriber.next(active)});return subscriber.next(active),()=>{status$.unsubscribe()}}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetCopyPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0)}}__name(FormatPainterMenuItemFactory,"FormatPainterMenuItemFactory");function BoldMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),contextService=accessor.get(core.IContextService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService);return{id:SetRangeBoldCommand.id,type:ui.MenuItemType.BUTTON,icon:"BoldSingle",title:"Set bold",tooltip:"toolbar.bold",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let isBold2=core.FontWeight.NORMAL;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);isBold2=range==null?void 0:range.getFontWeight()}subscriber.next(isBold2===core.FontWeight.BOLD)}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const bl=(_b=textRun.ts)==null?void 0:_b.bl;subscriber.next(bl===core.BooleanNumber.TRUE)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;if(!worksheet){subscriber.next(!1);return}let isBold=core.FontWeight.NORMAL;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);isBold=range==null?void 0:range.getFontWeight()}return subscriber.next(isBold===core.FontWeight.BOLD),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(BoldMenuItemFactory,"BoldMenuItemFactory");function ItalicMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService);return{id:SetRangeItalicCommand.id,type:ui.MenuItemType.BUTTON,icon:"ItalicSingle",title:"Set italic",tooltip:"toolbar.italic",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let isItalic2=core.FontItalic.NORMAL;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);isItalic2=range==null?void 0:range.getFontStyle()}subscriber.next(isItalic2===core.FontItalic.ITALIC)}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const it=(_b=textRun.ts)==null?void 0:_b.it;subscriber.next(it===core.BooleanNumber.TRUE)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let isItalic=core.FontItalic.NORMAL;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);isItalic=range==null?void 0:range.getFontStyle()}return subscriber.next(isItalic===core.FontItalic.ITALIC),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ItalicMenuItemFactory,"ItalicMenuItemFactory");function UnderlineMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService);return{id:SetRangeUnderlineCommand.id,type:ui.MenuItemType.BUTTON,icon:"UnderlineSingle",title:"Set underline",tooltip:"toolbar.underline",activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let isUnderline2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);isUnderline2=range==null?void 0:range.getUnderline()}subscriber.next(!!(isUnderline2&&isUnderline2.s))}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const ul=(_b=textRun.ts)==null?void 0:_b.ul;subscriber.next((ul==null?void 0:ul.s)===core.BooleanNumber.TRUE)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let isUnderline;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);isUnderline=range==null?void 0:range.getUnderline()}return subscriber.next(!!(isUnderline&&isUnderline.s)),disposable.dispose})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(UnderlineMenuItemFactory,"UnderlineMenuItemFactory");function StrikeThroughMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService);return{id:SetRangeStrickThroughCommand.id,type:ui.MenuItemType.BUTTON,icon:"StrikethroughSingle",title:"Set strike through",tooltip:"toolbar.strikethrough",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let st2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);st2=range==null?void 0:range.getStrikeThrough()}subscriber.next(!!(st2&&st2.s))}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const st2=(_b=textRun.ts)==null?void 0:_b.st;subscriber.next((st2==null?void 0:st2.s)===core.BooleanNumber.TRUE)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let st;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);st=range==null?void 0:range.getStrikeThrough()}return subscriber.next(!!(st&&st.s)),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(StrikeThroughMenuItemFactory,"StrikeThroughMenuItemFactory");function FontFamilySelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=core.DEFAULT_STYLES.ff;return{id:SetRangeFontFamilyCommand.id,tooltip:"toolbar.font",type:ui.MenuItemType.SELECTOR,label:FONT_FAMILY_COMPONENT,selections:ui.FONT_FAMILY_LIST.map(item=>({label:{name:FONT_FAMILY_ITEM_COMPONENT,hoverable:!0},value:item.value})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62;const id=c.id;if(id!==sheets.SetRangeValuesMutation.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let ff2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);ff2=range==null?void 0:range.getFontFamily()}subscriber.next(ff2!=null?ff2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let ff;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);ff=range==null?void 0:range.getFontFamily()}return subscriber.next(ff!=null?ff:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FontFamilySelectorMenuItemFactory,"FontFamilySelectorMenuItemFactory");function FontSizeSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService),defaultValue=core.DEFAULT_STYLES.fs,disabled$=getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0);return{id:SetRangeFontSizeCommand.id,type:ui.MenuItemType.SELECTOR,tooltip:"toolbar.fontSize",label:{name:FONT_SIZE_COMPONENT,props:{min:1,max:400,disabled$}},selections:ui.FONT_SIZE_LIST,disabled$,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let fs2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);fs2=range==null?void 0:range.getFontSize()}subscriber.next(fs2!=null?fs2:defaultValue)}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const fs2=(_b=textRun.ts)==null?void 0:_b.fs;subscriber.next(fs2!=null?fs2:defaultValue)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let fs;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);fs=range==null?void 0:range.getFontSize()}return subscriber.next(fs!=null?fs:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FontSizeSelectorMenuItemFactory,"FontSizeSelectorMenuItemFactory");function ResetTextColorMenuItemFactory(accessor){return{id:ResetRangeTextColorCommand.id,type:ui.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ResetTextColorMenuItemFactory,"ResetTextColorMenuItemFactory");function TextColorSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),themeService=accessor.get(core.ThemeService);return{id:SetRangeTextColorCommand.id,icon:"FontColor",tooltip:"toolbar.textColor.main",type:ui.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:COLOR_PICKER_COMPONENT,hoverable:!1}}],value$:new rxjs.Observable(subscriber=>{const defaultValue=themeService.getCurrentTheme().textColor,disposable=commandService.onCommandExecuted(c=>{if(c.id===SetRangeTextColorCommand.id){const color=c.params.value;subscriber.next(color!=null?color:defaultValue)}});return subscriber.next(defaultValue),disposable.dispose}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0)}}__name(TextColorSelectorMenuItemFactory,"TextColorSelectorMenuItemFactory");function ResetBackgroundColorMenuItemFactory(accessor){return{id:sheets.ResetBackgroundColorCommand.id,type:ui.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(ResetBackgroundColorMenuItemFactory,"ResetBackgroundColorMenuItemFactory");function BackgroundColorSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),themeService=accessor.get(core.ThemeService);return{id:sheets.SetBackgroundColorCommand.id,tooltip:"toolbar.fillColor.main",type:ui.MenuItemType.BUTTON_SELECTOR,icon:"PaintBucket",selections:[{label:{name:COLOR_PICKER_COMPONENT,hoverable:!1}}],value$:new rxjs.Observable(subscriber=>{const defaultValue=themeService.getCurrentTheme().primaryColor,disposable=commandService.onCommandExecuted(c=>{if(c.id===sheets.SetBackgroundColorCommand.id){const color=c.params.value;subscriber.next(color!=null?color:defaultValue)}});return subscriber.next(defaultValue),disposable.dispose}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(BackgroundColorSelectorMenuItemFactory,"BackgroundColorSelectorMenuItemFactory");const HORIZONTAL_ALIGN_CHILDREN=[{label:"align.left",icon:"LeftJustifyingSingle",value:core.HorizontalAlign.LEFT},{label:"align.center",icon:"HorizontallySingle",value:core.HorizontalAlign.CENTER},{label:"align.right",icon:"RightJustifyingSingle",value:core.HorizontalAlign.RIGHT}];function HorizontalAlignMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=core.HorizontalAlign.LEFT;return{id:sheets.SetHorizontalTextAlignCommand.id,icon:HORIZONTAL_ALIGN_CHILDREN[0].icon,tooltip:"toolbar.horizontalAlignMode.main",type:ui.MenuItemType.SELECTOR,selections:HORIZONTAL_ALIGN_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a62;const id=c.id;if(id!==sheets.SetHorizontalTextAlignCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let ha2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);ha2=range==null?void 0:range.getHorizontalAlignment()}subscriber.next(ha2!=null?ha2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let ha;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);ha=range==null?void 0:range.getHorizontalAlignment()}return subscriber.next(ha!=null?ha:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(HorizontalAlignMenuItemFactory,"HorizontalAlignMenuItemFactory");const VERTICAL_ALIGN_CHILDREN=[{label:"align.top",icon:"AlignTopSingle",value:core.VerticalAlign.TOP},{label:"align.middle",icon:"VerticalCenterSingle",value:core.VerticalAlign.MIDDLE},{label:"align.bottom",icon:"AlignBottomSingle",value:core.VerticalAlign.BOTTOM}];function VerticalAlignMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=core.VerticalAlign.BOTTOM;return{id:sheets.SetVerticalTextAlignCommand.id,icon:VERTICAL_ALIGN_CHILDREN[2].icon,tooltip:"toolbar.verticalAlignMode.main",type:ui.MenuItemType.SELECTOR,selections:VERTICAL_ALIGN_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a62;const id=c.id;if(id!==sheets.SetVerticalTextAlignCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let va2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);va2=range==null?void 0:range.getVerticalAlignment()}subscriber.next(va2!=null?va2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let va;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);va=range==null?void 0:range.getVerticalAlignment()}return subscriber.next(va!=null?va:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(VerticalAlignMenuItemFactory,"VerticalAlignMenuItemFactory");const TEXT_WRAP_CHILDREN=[{label:"textWrap.overflow",icon:"OverflowSingle",value:core.WrapStrategy.OVERFLOW},{label:"textWrap.wrap",icon:"AutowrapSingle",value:core.WrapStrategy.WRAP},{label:"textWrap.clip",icon:"TruncationSingle",value:core.WrapStrategy.CLIP}];function WrapTextMenuItemFactory(accessor){const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),defaultValue=core.WrapStrategy.OVERFLOW;return{id:sheets.SetTextWrapCommand.id,tooltip:"toolbar.textWrapMode.main",icon:TEXT_WRAP_CHILDREN[0].icon,type:ui.MenuItemType.SELECTOR,selections:TEXT_WRAP_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a62;const id=c.id;if(id!==sheets.SetTextWrapCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let ws2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);ws2=range==null?void 0:range.getWrapStrategy()}subscriber.next(ws2!=null?ws2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let ws;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);ws=range==null?void 0:range.getWrapStrategy()}return subscriber.next(ws!=null?ws:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(WrapTextMenuItemFactory,"WrapTextMenuItemFactory");const TEXT_ROTATE_CHILDREN=[{label:"textRotate.none",icon:"NoRotationSingle",value:0},{label:"textRotate.angleUp",icon:"LeftRotationFortyFiveDegreesSingle",value:-45},{label:"textRotate.angleDown",icon:"RightRotationFortyFiveDegreesSingle",value:45},{label:"textRotate.vertical",icon:"VerticalTextSingle",value:"v"},{label:"textRotate.rotationUp",icon:"LeftRotationNinetyDegreesSingle",value:-90},{label:"textRotate.rotationDown",icon:"RightRotationNinetyDegreesSingle",value:90}];function TextRotateMenuItemFactory(accessor){const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),defaultValue=0;return{id:sheets.SetTextRotationCommand.id,tooltip:"toolbar.textRotateMode.main",icon:TEXT_ROTATE_CHILDREN[0].icon,type:ui.MenuItemType.SELECTOR,selections:TEXT_ROTATE_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61,_b;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a62,_b2;const id=c.id;if(id!==sheets.SetTextRotationCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let tr2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);tr2=range==null?void 0:range.getTextRotation()}(tr2==null?void 0:tr2.v)===core.BooleanNumber.TRUE?subscriber.next("v"):subscriber.next((_b2=tr2&&tr2.a)!=null?_b2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let tr;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);tr=range==null?void 0:range.getTextRotation()}return(tr==null?void 0:tr.v)===core.BooleanNumber.TRUE?subscriber.next("v"):subscriber.next((_b=tr&&tr.a)!=null?_b:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(TextRotateMenuItemFactory,"TextRotateMenuItemFactory");function menuClipboardDisabledObservable(injector){return new rxjs.Observable(subscriber=>subscriber.next(!injector.get(ui.IClipboardInterfaceService).supportClipboard))}__name(menuClipboardDisabledObservable,"menuClipboardDisabledObservable");function CopyMenuItemFactory(accessor){return{id:SheetCopyCommand.name,commandId:SheetCopyCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.copy",icon:"Copy",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookCopyPermission],worksheetTypes:[sheets.WorksheetCopyPermission],rangeTypes:[sheets.RangeProtectionPermissionViewPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CopyMenuItemFactory,"CopyMenuItemFactory");function PasteMenuItemFactory(accessor){return{id:SheetPasteCommand.name,commandId:SheetPasteCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.paste",icon:"PasteSpecial",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission,sheets.WorksheetSetCellValuePermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteMenuItemFactory,"PasteMenuItemFactory");const PASTE_SPECIAL_MENU_ID="sheet.menu.paste-special";function PasteSpacialMenuItemFactory(accessor){return{id:PASTE_SPECIAL_MENU_ID,type:ui.MenuItemType.SUBITEMS,icon:"PasteSpecial",title:"rightClick.pasteSpecial",hidden$:getObservableWithExclusiveRange$(accessor,ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET))}}__name(PasteSpacialMenuItemFactory,"PasteSpacialMenuItemFactory");function PasteValueMenuItemFactory(accessor){return{id:SheetPasteValueCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteValue",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteValueMenuItemFactory,"PasteValueMenuItemFactory");function PasteFormatMenuItemFactory(accessor){return{id:SheetPasteFormatCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteFormat",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteFormatMenuItemFactory,"PasteFormatMenuItemFactory");function PasteColWidthMenuItemFactory(accessor){return{id:SheetPasteColWidthCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteColWidth",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetColumnStylePermission,sheets.WorksheetEditPermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2))}}__name(PasteColWidthMenuItemFactory,"PasteColWidthMenuItemFactory");function PasteBesidesBorderMenuItemFactory(accessor){return{id:SheetPasteBesidesBorderCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteBesidesBorder",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission,sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetRowStylePermission,sheets.WorksheetSetColumnStylePermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteBesidesBorderMenuItemFactory,"PasteBesidesBorderMenuItemFactory");function FitContentMenuItemFactory(accessor){return{id:sheets.SetWorksheetRowIsAutoHeightCommand.id,type:ui.MenuItemType.BUTTON,icon:"AutoHeight",title:"rightClick.fitContent",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetRowStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FitContentMenuItemFactory,"FitContentMenuItemFactory");function ColAutoWidthMenuItemFactory(accessor){return{id:SetWorksheetColAutoWidthCommand.id,type:ui.MenuItemType.BUTTON,icon:"AutoWidth",title:"rightClick.fitContent",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetRowStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ColAutoWidthMenuItemFactory,"ColAutoWidthMenuItemFactory");const SHEET_FROZEN_MENU_ID="sheet.menu.sheet-frozen";function SheetFrozenMenuItemFactory(accessor){return{id:SHEET_FROZEN_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(SheetFrozenMenuItemFactory,"SheetFrozenMenuItemFactory");const SHEET_FROZEN_HEADER_MENU_ID="sheet.header-menu.sheet-frozen";function SheetFrozenHeaderMenuItemFactory(accessor){return{id:SHEET_FROZEN_HEADER_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(SheetFrozenHeaderMenuItemFactory,"SheetFrozenHeaderMenuItemFactory");function FrozenMenuItemFactory(accessor){return{id:SetSelectionFrozenCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FrozenMenuItemFactory,"FrozenMenuItemFactory");function FrozenRowMenuItemFactory(accessor){return{id:SetRowFrozenCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.freezeRow",icon:"FreezeRowSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FrozenRowMenuItemFactory,"FrozenRowMenuItemFactory");function FrozenColMenuItemFactory(accessor){return{id:SetColumnFrozenCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.freezeCol",icon:"FreezeColumnSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FrozenColMenuItemFactory,"FrozenColMenuItemFactory");function CancelFrozenMenuItemFactory(accessor){return{id:sheets.CancelFrozenCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.cancelFreeze",icon:"CancelFreezeSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CancelFrozenMenuItemFactory,"CancelFrozenMenuItemFactory");function HideRowMenuItemFactory(accessor){return{id:HideRowConfirmCommand.id,type:ui.MenuItemType.BUTTON,icon:"Hide",title:"rightClick.hideSelectedRow",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetRowStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(HideRowMenuItemFactory,"HideRowMenuItemFactory");function HideColMenuItemFactory(accessor){return{id:HideColConfirmCommand.id,type:ui.MenuItemType.BUTTON,icon:"Hide",title:"rightClick.hideSelectedColumn",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetColumnStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(HideColMenuItemFactory,"HideColMenuItemFactory");function ShowRowMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),commandService=accessor.get(core.ICommandService),affectedCommands=[sheets.SetSelectionsOperation,sheets.SetRowHiddenMutation,sheets.SetRowVisibleMutation].map(c=>c.id);return{id:sheets.SetSelectedRowsVisibleCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.showHideRow",hidden$:deriveStateFromActiveSheet$(univerInstanceService,!0,({worksheet})=>new rxjs.Observable(subscriber=>{function hasHiddenRowsInSelections(){var _a61;const rowRanges=(_a61=selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(s=>s.range).filter(r2=>r2.rangeType===core.RANGE_TYPE.ROW);return!!(rowRanges!=null&&rowRanges.some(range=>{for(let r2=range.startRow;r2<=range.endRow;r2++)if(!worksheet.getRowRawVisible(r2))return!0;return!1}))}__name(hasHiddenRowsInSelections,"hasHiddenRowsInSelections");const disposable=commandService.onCommandExecuted(command=>{affectedCommands.findIndex(c=>c===command.id)!==-1&&subscriber.next(!hasHiddenRowsInSelections())});return subscriber.next(!hasHiddenRowsInSelections()),()=>disposable.dispose()})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetRowStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(ShowRowMenuItemFactory,"ShowRowMenuItemFactory");function ShowColMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),commandService=accessor.get(core.ICommandService),affectedCommands=[sheets.SetSelectionsOperation,sheets.SetColHiddenMutation,sheets.SetColVisibleMutation].map(c=>c.id);return{id:sheets.SetSelectedColsVisibleCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.showHideColumn",hidden$:deriveStateFromActiveSheet$(univerInstanceService,!0,({worksheet})=>new rxjs.Observable(subscriber=>{function hasHiddenColsInSelections(){var _a61;const colRanges=(_a61=selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(s=>s.range).filter(r2=>r2.rangeType===core.RANGE_TYPE.COLUMN);return!colRanges||colRanges.length===0?!1:!!colRanges.some(range=>{for(let r2=range.startColumn;r2<=range.endColumn;r2++)if(!worksheet.getColVisible(r2))return!0;return!1})}__name(hasHiddenColsInSelections,"hasHiddenColsInSelections");const disposable=commandService.onCommandExecuted(commandInfo=>{affectedCommands.findIndex(c=>c===commandInfo.id)!==-1&&subscriber.next(!hasHiddenColsInSelections())});return subscriber.next(!hasHiddenColsInSelections()),()=>disposable.dispose()})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetColumnStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(ShowColMenuItemFactory,"ShowColMenuItemFactory");function SetRowHeightMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=0;return{id:sheets.SetRowHeightCommand.id,type:ui.MenuItemType.BUTTON,icon:"AdjustHeight",label:{name:MENU_ITEM_INPUT_COMPONENT,props:{prefix:"rightClick.rowHeight",suffix:"px",min:2,max:1e3}},value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{function update(){var _a61;const primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary,rowHeight=primary?worksheet.getRowHeight(primary.startRow):defaultValue;subscriber.next(rowHeight)}__name(update,"update");const disposable=commandService.onCommandExecuted(c=>{const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetRowIsAutoHeightMutation.id)return update()});return update(),disposable.dispose})),hidden$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetRowStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(SetRowHeightMenuItemFactory,"SetRowHeightMenuItemFactory");function SetColWidthMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=0;return{id:sheets.SetColWidthCommand.id,type:ui.MenuItemType.BUTTON,icon:"AdjustWidth",label:{name:MENU_ITEM_INPUT_COMPONENT,props:{prefix:"rightClick.columnWidth",suffix:"px",min:2,max:1e3}},value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{function update(){var _a61;const primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let colWidth=defaultValue;primary!=null&&(colWidth=worksheet.getColumnWidth(primary.startColumn)),subscriber.next(colWidth)}__name(update,"update");const disposable=commandService.onCommandExecuted(c=>{const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetColWidthMutation.id)return update()});return update(),disposable.dispose})),hidden$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetColumnStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(SetColWidthMenuItemFactory,"SetColWidthMenuItemFactory");function getFontStyleAtCursor(accessor){var _a61;const univerInstanceService=accessor.get(core.IUniverInstanceService),textSelectionService=accessor.get(docs.DocSelectionManagerService),editorDataModel=univerInstanceService.getUniverDocInstance(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),activeTextRange=textSelectionService.getActiveTextRange();if(editorDataModel==null||activeTextRange==null)return null;const textRuns=(_a61=editorDataModel.getBody())==null?void 0:_a61.textRuns;if(textRuns==null)return;const{startOffset}=activeTextRange;return textRuns.find(({st,ed})=>startOffset>=st&&startOffset<=ed)}__name(getFontStyleAtCursor,"getFontStyleAtCursor");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 FREEZE_ROW_MAIN_NAME="__SpreadsheetFreezeRowMainName__",FREEZE_ROW_HEADER_NAME="__SpreadsheetFreezeRowHeaderName__",FREEZE_COLUMN_MAIN_NAME="__SpreadsheetFreezeColumnMainName__",FREEZE_COLUMN_HEADER_NAME="__SpreadsheetFreezeColumnHeaderName__",FREEZE_SIZE_NORMAL=2,AUXILIARY_CLICK_HIDDEN_OBJECT_TRANSPARENCY=.01,FREEZE_PERMISSION_CHECK=core.createInterceptorKey("freezePermissionCheck");var _a18;exports.HeaderFreezeRenderController=(_a18=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_commandService,_selectionManagerService,_scrollManagerService,_themeService,_sheetInterceptorService,_injector){super();__publicField(this,"_rowFreezeHeaderRect");__publicField(this,"_rowFreezeMainRect");__publicField(this,"_columnFreezeHeaderRect");__publicField(this,"_columnFreezeMainRect");__publicField(this,"_freezeDownSubs");__publicField(this,"_freezePointerEnterSubs");__publicField(this,"_freezePointerLeaveSubs");__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_changeToRow",-1);__publicField(this,"_changeToColumn",-1);__publicField(this,"_changeToOffsetX",0);__publicField(this,"_changeToOffsetY",0);__publicField(this,"_activeViewport",null);__publicField(this,"_freezeNormalHeaderColor","");__publicField(this,"_freezeNormalMainColor","");__publicField(this,"_freezeActiveColor","");__publicField(this,"_freezeHoverColor","");__publicField(this,"_lastFreeze");__publicField(this,"interceptor",new core.InterceptorManager({FREEZE_PERMISSION_CHECK}));this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._selectionManagerService=_selectionManagerService,this._scrollManagerService=_scrollManagerService,this._themeService=_themeService,this._sheetInterceptorService=_sheetInterceptorService,this._injector=_injector,this._initialize()}dispose(){super.dispose()}_initialize(){this._skeletonListener(),this._commandExecutedListener(),this._themeChangeListener(),this._interceptorCommands(),this._bindViewportScroll(),this._zoomRefresh()}_createFreeze(freezeDirectionType=0,freezeConfig){var _a61;const config=freezeConfig!=null?freezeConfig:this._getFreeze();if(config==null)return null;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton,{startRow:freezeRow,startColumn:freezeColumn}=config,position=this._getPositionByIndex(freezeRow,freezeColumn);if(position==null||skeleton==null)return null;const sheetObject=this._getSheetObject(),engine=sheetObject.engine,canvasMaxWidth=(engine==null?void 0:engine.width)||0,canvasMaxHeight=(engine==null?void 0:engine.height)||0,scene=sheetObject.scene,{startX,startY}=position,{rowTotalHeight,columnTotalWidth,rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton,shapeWidth=canvasMaxWidth>columnTotalWidth+rowHeaderWidthAndMarginLeft?canvasMaxWidth:columnTotalWidth+columnHeaderHeightAndMarginTop,shapeHeight=canvasMaxHeight>rowTotalHeight+columnHeaderHeightAndMarginTop?canvasMaxHeight:rowTotalHeight+columnHeaderHeightAndMarginTop;this._changeToRow=freezeRow,this._changeToColumn=freezeColumn,this._changeToOffsetX=startX,this._changeToOffsetY=startY;const scale=Math.max(scene.scaleX,scene.scaleY);let FREEZE_SIZE=FREEZE_SIZE_NORMAL/(scale<1?1:scale);if(freezeDirectionType===0){(freezeRow===-1||freezeRow===0)&&(FREEZE_SIZE=FREEZE_SIZE*2);const FREEZE_OFFSET=FREEZE_SIZE;this._rowFreezeHeaderRect=new engineRender.Rect(FREEZE_ROW_HEADER_NAME,{fill:this._freezeNormalHeaderColor,width:rowHeaderWidthAndMarginLeft,height:FREEZE_SIZE,left:0,top:startY-FREEZE_OFFSET,zIndex:3});let fill=this._freezeNormalHeaderColor;(freezeRow===-1||freezeRow===0)&&(fill=this._freezeNormalMainColor),this._rowFreezeMainRect=new engineRender.Rect(FREEZE_ROW_MAIN_NAME,{fill,width:shapeWidth*2/scale,height:FREEZE_SIZE,left:rowHeaderWidthAndMarginLeft,top:startY-FREEZE_OFFSET,zIndex:3}),scene.addObjects([this._rowFreezeHeaderRect,this._rowFreezeMainRect],SHEET_COMPONENT_HEADER_LAYER_INDEX)}else{(freezeColumn===-1||freezeColumn===0)&&(FREEZE_SIZE=FREEZE_SIZE*2);const FREEZE_OFFSET=FREEZE_SIZE;this._columnFreezeHeaderRect=new engineRender.Rect(FREEZE_COLUMN_HEADER_NAME,{fill:this._freezeNormalHeaderColor,width:FREEZE_SIZE,height:columnHeaderHeightAndMarginTop,left:startX-FREEZE_OFFSET,top:0,zIndex:3});let fill=this._freezeNormalHeaderColor;(freezeColumn===-1||freezeColumn===0)&&(fill=this._freezeNormalMainColor),this._columnFreezeMainRect=new engineRender.Rect(FREEZE_COLUMN_MAIN_NAME,{fill,width:FREEZE_SIZE,height:shapeHeight*2/scale,left:startX-FREEZE_OFFSET,top:columnHeaderHeightAndMarginTop,zIndex:3}),scene.addObjects([this._columnFreezeHeaderRect,this._columnFreezeMainRect],SHEET_COMPONENT_HEADER_LAYER_INDEX)}this._eventBinding(freezeDirectionType)}_eventBinding(freezeDirectionType=0){let freezeObjectHeaderRect=this._rowFreezeHeaderRect,freezeObjectMainRect=this._rowFreezeMainRect;freezeDirectionType===1&&(freezeObjectHeaderRect=this._columnFreezeHeaderRect,freezeObjectMainRect=this._columnFreezeMainRect);const sheetObject=this._getSheetObject();if(sheetObject==null)return;const{scene}=sheetObject;if(this._freezePointerEnterSubs=new rxjs.Subscription,this._freezePointerLeaveSubs=new rxjs.Subscription,this._freezeDownSubs=new rxjs.Subscription,freezeObjectMainRect){const _freezeObjectMainRectEnterSub=freezeObjectMainRect.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(!0,null))return!1;freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeHoverColor,zIndex:4}),scene.setCursor(engineRender.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(_freezeObjectMainRectEnterSub);const _freezeObjectMainPointerLeaveSub=freezeObjectMainRect.onPointerLeave$.subscribeEvent(()=>{freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),scene.resetCursor()});this._freezePointerLeaveSubs.add(_freezeObjectMainPointerLeaveSub)}if(freezeObjectHeaderRect){const _freezeObjHeaderPointerEnterSub=freezeObjectHeaderRect.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(!0,null))return!1;freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeHoverColor,zIndex:4}),scene.setCursor(engineRender.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(_freezeObjHeaderPointerEnterSub);const _freezeObjHeaderPointerLeaveSub=freezeObjectHeaderRect.onPointerLeave$.subscribeEvent(()=>{freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),scene.resetCursor()});this._freezePointerLeaveSubs.add(_freezeObjHeaderPointerLeaveSub)}const s1=freezeObjectHeaderRect==null?void 0:freezeObjectHeaderRect.onPointerDown$.subscribeEvent(evt=>{this._freezeDown(evt,freezeObjectHeaderRect,freezeObjectMainRect,freezeDirectionType)});s1&&this._freezeDownSubs.add(s1);const s2=freezeObjectMainRect==null?void 0:freezeObjectMainRect.onPointerDown$.subscribeEvent(evt=>{this._freezeDown(evt,freezeObjectHeaderRect,freezeObjectMainRect,freezeDirectionType)});s2&&this._freezeDownSubs.add(s2)}_getCurrentLastVisible(){var _a61,_b,_c,_d,_e,_f,_g;const sheetObject=this._getSheetObject();if(sheetObject==null)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const scene=sheetObject.scene,scale=Math.max(scene.scaleX,scene.scaleY),currentScroll=this._scrollManagerService.getCurrentScrollState(),skeletonViewHeight=(sheetObject.engine.height-skeleton.columnHeaderHeight)/scale,skeletonViewWidth=(sheetObject.engine.width-skeleton.rowHeaderWidth)/scale,startRow=(_b=currentScroll==null?void 0:currentScroll.sheetViewStartRow)!=null?_b:0,startHeight=startRow===0?-((_c=currentScroll==null?void 0:currentScroll.offsetY)!=null?_c:0):skeleton.rowHeightAccumulation[startRow-1]-((_d=currentScroll==null?void 0:currentScroll.offsetY)!=null?_d:0);let lastRow=0,hadFind=!1;for(let i=startRow,len=skeleton.rowHeightAccumulation.length;i<len;i++)if(skeleton.rowHeightAccumulation[i]-startHeight>skeletonViewHeight){lastRow=i,hadFind=!0;break}hadFind||(lastRow=skeleton.rowHeightAccumulation.length-1);const startColumn=(_e=currentScroll==null?void 0:currentScroll.sheetViewStartColumn)!=null?_e:0,startWidth=startColumn===0?-((_f=currentScroll==null?void 0:currentScroll.offsetX)!=null?_f:0):skeleton.columnWidthAccumulation[startColumn-1]-((_g=currentScroll==null?void 0:currentScroll.offsetX)!=null?_g:0);let lastColumn=0,hadFindCol=!1;for(let i=startColumn,len=skeleton.columnWidthAccumulation.length;i<len;i++)if(skeleton.columnWidthAccumulation[i]-startWidth>skeletonViewWidth){lastColumn=i,hadFindCol=!0;break}return hadFindCol||(lastColumn=skeleton.columnWidthAccumulation.length-1),{lastRow,lastColumn}}_getActiveViewport(evt){var _a61;const viewports=(_a61=this._getSheetObject())==null?void 0:_a61.scene.getViewports();return viewports&&viewports.find(i=>i.isHit(new engineRender.Vector2(evt.offsetX,evt.offsetY)))||null}_freezeDown(evt,freezeObjectHeaderRect,freezeObjectMainRect,freezeDirectionType=0){var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const sheetObject=this._getSheetObject();if(sheetObject==null)return;if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(!0,null))return!1;const{scene}=sheetObject;scene.setCursor(engineRender.CURSOR_TYPE.GRABBING),scene.disableObjectsEvent();const last=this._getCurrentLastVisible(),lastRowY=last===void 0?Number.POSITIVE_INFINITY:skeleton.rowHeightAccumulation[last.lastRow],lastColumnX=last===void 0?Number.POSITIVE_INFINITY:skeleton.columnWidthAccumulation[last.lastColumn-1]+skeleton.rowHeaderWidth;this._activeViewport=null;const oldFreeze=this._getFreeze();oldFreeze&&(this._changeToColumn=oldFreeze.startColumn,this._changeToRow=oldFreeze.startRow),this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{var _a62,_b,_c,_d;const activeViewport=this._getActiveViewport(moveEvt),{startX,startY,row,column}=getCoordByOffset(moveEvt.offsetX,moveEvt.offsetY,scene,skeleton,activeViewport||void 0,!0);if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(!0,null))return!1;scene.setCursor(engineRender.CURSOR_TYPE.GRABBING);const FREEZE_SIZE=FREEZE_SIZE_NORMAL/Math.max(scene.scaleX,scene.scaleY);freezeDirectionType===0?((_a62=freezeObjectHeaderRect.transformByState({top:Math.min(startY,lastRowY)-FREEZE_SIZE/2}))==null||_a62.setProps({fill:this._freezeActiveColor}),(_b=freezeObjectMainRect.transformByState({top:Math.min(startY,lastRowY)-FREEZE_SIZE/2}))==null||_b.setProps({fill:this._freezeNormalHeaderColor}),this._changeToRow=last===void 0?row:Math.min(row,last.lastRow),this._changeToOffsetY=Math.min(startY,lastRowY),this._activeViewport=activeViewport):((_c=freezeObjectHeaderRect.transformByState({left:Math.min(startX,lastColumnX)-FREEZE_SIZE/2}))==null||_c.setProps({fill:this._freezeActiveColor}),(_d=freezeObjectMainRect.transformByState({left:Math.min(startX,lastColumnX)-FREEZE_SIZE/2}))==null||_d.setProps({fill:this._freezeNormalHeaderColor}),this._changeToColumn=last===void 0?column:Math.min(column,last.lastColumn),this._changeToOffsetX=startX,this._activeViewport=activeViewport)}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a62,_b;scene.resetCursor(),scene.enableObjectsEvent(),this._clearObserverEvent();const{rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton;freezeDirectionType===0&&(this._changeToRow===0||this._changeToRow===-1)||freezeDirectionType===1&&(this._changeToColumn===0||this._changeToColumn===-1)?(freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor}),freezeObjectMainRect.setProps({fill:this._freezeNormalMainColor})):(freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor}),freezeObjectMainRect==null||freezeObjectMainRect.setProps({fill:this._freezeNormalHeaderColor}));const FREEZE_SIZE=FREEZE_SIZE_NORMAL/Math.max(scene.scaleX,scene.scaleY);freezeDirectionType===0?(this._changeToRow===0||this._changeToRow===-1)&&(freezeObjectHeaderRect.transformByState({top:columnHeaderHeightAndMarginTop-FREEZE_SIZE}),freezeObjectMainRect.transformByState({top:columnHeaderHeightAndMarginTop-FREEZE_SIZE})):(this._changeToColumn===0||this._changeToColumn===-1)&&(freezeObjectHeaderRect.transformByState({left:rowHeaderWidthAndMarginLeft-FREEZE_SIZE}),freezeObjectMainRect.transformByState({left:rowHeaderWidthAndMarginLeft-FREEZE_SIZE}));const sheetViewScroll=this._scrollManagerService.getCurrentScrollState()||{sheetViewStartRow:0,sheetViewStartColumn:0},{sheetViewStartRow,sheetViewStartColumn}=sheetViewScroll;if(sheetViewStartColumn==null||sheetViewStartRow==null)return;const workbook=this._context.unit,worksheet=workbook.getActiveSheet();if(!worksheet)return;const oldFreeze2=(_a62=worksheet.getConfig())==null?void 0:_a62.freeze;let xSplit=(oldFreeze2==null?void 0:oldFreeze2.xSplit)||0,ySplit=(oldFreeze2==null?void 0:oldFreeze2.ySplit)||0;const viewPortKey=(_b=this._activeViewport)==null?void 0:_b.viewportKey;freezeDirectionType===0&&(!viewPortKey||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP?ySplit=this._changeToRow-(oldFreeze2.startRow-oldFreeze2.ySplit):ySplit=this._changeToRow-sheetViewStartRow,ySplit=ySplit<0?0:ySplit),freezeDirectionType===1&&(!viewPortKey||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT?xSplit=this._changeToColumn-(oldFreeze2.startColumn-oldFreeze2.xSplit):xSplit=this._changeToColumn-sheetViewStartColumn,xSplit=xSplit<0?0:xSplit),this._commandService.executeCommand(sheets.SetFrozenCommand.id,{startRow:ySplit===0?-1:this._changeToRow,startColumn:xSplit===0?-1:this._changeToColumn,ySplit,xSplit,unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId()})})}_getViewports(){const sheetObject=this._getSheetObject();if(sheetObject==null)return;const{scene}=sheetObject,viewColumnLeft=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT),viewColumnRight=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT),viewRowTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP),viewRowBottom=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM),viewLeftTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP),viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),viewMainLeftTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP),viewMainLeft=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT),viewMainTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(!(viewColumnLeft==null||viewColumnRight==null||viewRowTop==null||viewRowBottom==null||viewLeftTop==null||viewMain==null||viewMainLeftTop==null||viewMainLeft==null||viewMainTop==null))return{viewMain,viewMainLeftTop,viewMainLeft,viewMainTop,viewColumnLeft,viewColumnRight,viewRowTop,viewRowBottom,viewLeftTop}}_bindViewportScroll(){const viewports=this._getViewports();if(!viewports)return;const{viewRowBottom,viewColumnRight,viewMainLeft,viewMainTop}=viewports;this.disposeWithMe(this._scrollManagerService.validViewportScrollInfo$.subscribe(param=>{if(!param)return;const{scrollX,scrollY,viewportScrollX,viewportScrollY}=param;viewRowBottom.isActive&&viewRowBottom.updateScrollVal({scrollY,viewportScrollY}),viewColumnRight.isActive&&viewColumnRight.updateScrollVal({scrollX,viewportScrollX}),viewMainLeft.isActive&&viewMainLeft.updateScrollVal({scrollY,viewportScrollY}),viewMainTop.isActive&&viewMainTop.updateScrollVal({scrollX,viewportScrollX})}))}_updateViewport(row=-1,column=-1,ySplit=0,xSplit=0,resetScroll=3){var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const{rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton,viewports=this._getViewports();if(!viewports)return;const{viewMain,viewMainLeftTop,viewMainLeft,viewMainTop,viewColumnLeft,viewColumnRight,viewRowTop,viewRowBottom,viewLeftTop}=viewports;viewColumnRight.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:0,height:columnHeaderHeightAndMarginTop,right:0}),viewRowBottom.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop,bottom:0,width:rowHeaderWidthAndMarginLeft}),viewLeftTop.resizeWhenFreezeChange({left:0,top:0,width:rowHeaderWidthAndMarginLeft,height:columnHeaderHeightAndMarginTop});let isTopView=!0,isLeftView=!0;viewMainLeftTop.enable(),(row===-1||row===0)&&(isTopView=!1),(column===-1||column===0)&&(isLeftView=!1);const startSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(row-ySplit,column-xSplit),endSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(row,column);if(viewMainLeftTop.disable(),viewMainTop.disable(),viewMainLeft.disable(),viewRowTop.disable(),viewColumnLeft.disable(),viewMainLeftTop.resetPadding(),viewMainTop.resetPadding(),viewMainLeft.resetPadding(),viewRowTop.resetPadding(),viewColumnLeft.resetPadding(),isTopView===!1&&isLeftView===!1)viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,bottom:0,right:0}),viewMain.resetPadding();else if(isTopView===!0&&isLeftView===!1){const topGap=endSheetView.startY-startSheetView.startY;viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,right:0}),viewMain.setPadding({startY:startSheetView.startY,endY:endSheetView.startY,startX:0,endX:0}),resetScroll&2&&this._commandService.executeCommand(ScrollCommand.id,{sheetViewStartRow:0,offsetY:0}),viewMainTop.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,height:topGap,right:0}),viewMainTop.updateScrollVal({viewportScrollY:startSheetView.startY,rawScrollX:viewMain.scrollX,viewportScrollX:viewMain.viewportScrollX}),viewRowTop.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop,width:rowHeaderWidthAndMarginLeft,height:topGap}),viewRowTop.updateScrollVal({viewportScrollY:startSheetView.startY}),viewRowBottom.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,width:rowHeaderWidthAndMarginLeft}),viewMainTop.enable(),viewRowTop.enable()}else if(isTopView===!1&&isLeftView===!0){const leftGap=endSheetView.startX-startSheetView.startX;viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:columnHeaderHeightAndMarginTop,bottom:0,right:0}),viewMain.setPadding({startX:startSheetView.startX,endX:endSheetView.startX,startY:0,endY:0}),resetScroll&1&&this._commandService.executeCommand(ScrollCommand.id,{sheetViewStartColumn:0,offsetX:0}),viewMainLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,width:leftGap,bottom:0,right:0}),viewMainLeft.updateScrollVal({viewportScrollX:startSheetView.startX,rawScrollY:viewMain.scrollY,viewportScrollY:viewMain.viewportScrollY}),viewColumnLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:0,width:leftGap,height:columnHeaderHeightAndMarginTop}),viewColumnLeft.updateScrollVal({viewportScrollX:startSheetView.startX}),viewColumnRight.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:0,height:columnHeaderHeightAndMarginTop,right:0}),viewMainLeft.enable(),viewColumnLeft.enable()}else{const leftGap=endSheetView.startX-startSheetView.startX,topGap=endSheetView.startY-startSheetView.startY;viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,right:0}),viewMain.setPadding({startY:startSheetView.startY,endY:endSheetView.startY,startX:startSheetView.startX,endX:endSheetView.startX}),resetScroll&&this._commandService.executeCommand(ScrollCommand.id,{...resetScroll&1?{sheetViewStartColumn:0,offsetX:0}:null,...resetScroll&2?{sheetViewStartRow:0,offsetY:0}:null}),viewMainLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop+topGap,width:leftGap,bottom:0}),viewMainLeft.updateScrollVal({viewportScrollX:startSheetView.startX,rawScrollY:viewMain.scrollY,viewportScrollY:viewMain.viewportScrollY}),viewMainTop.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:columnHeaderHeightAndMarginTop,height:topGap,right:0}),viewMainTop.updateScrollVal({viewportScrollY:startSheetView.startY,rawScrollX:viewMain.scrollX,viewportScrollX:viewMain.viewportScrollX}),viewMainLeftTop.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,width:leftGap,height:topGap}),viewMainLeftTop.updateScrollVal({viewportScrollX:startSheetView.startX,viewportScrollY:startSheetView.startY}),viewRowTop.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop,width:rowHeaderWidthAndMarginLeft,height:topGap}),viewRowTop.updateScrollVal({viewportScrollY:startSheetView.startY}),viewRowBottom.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,width:rowHeaderWidthAndMarginLeft}),viewColumnLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:0,width:leftGap,height:columnHeaderHeightAndMarginTop}),viewColumnLeft.updateScrollVal({viewportScrollX:startSheetView.startX}),viewColumnRight.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:0,height:columnHeaderHeightAndMarginTop,right:0}),viewMainLeftTop.enable(),viewMainTop.enable(),viewMainLeft.enable(),viewRowTop.enable(),viewColumnLeft.enable()}}_skeletonListener(){this.disposeWithMe(core.toDisposable(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{[sheets.SetWorksheetActiveOperation.id,sheets.InsertRangeMoveDownCommand.id,sheets.InsertRangeMoveRightCommand.id].includes((param==null?void 0:param.commandId)||"")&&this._refreshCurrent()})))}_refreshCurrent(){const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const freeze=worksheet.getConfig().freeze,{startRow=-1,startColumn=-1,ySplit=0,xSplit=0}=freeze;this._refreshFreeze(startRow,startColumn,ySplit,xSplit,0)}_themeChangeListener(){this._themeChange(this._themeService.getCurrentTheme()),this.disposeWithMe(this._themeService.currentTheme$.subscribe(style=>{this._clearFreeze(),this._themeChange(style),this._refreshCurrent()}))}_themeChange(style){this._freezeNormalHeaderColor=style.grey400,this._freezeNormalMainColor=new core.ColorKit(style.grey400).setAlpha(AUXILIARY_CLICK_HIDDEN_OBJECT_TRANSPARENCY).toRgbString(),this._freezeActiveColor=style.primaryColor,this._freezeHoverColor=style.grey500}_interceptorCommands(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:__name(command=>{const empty={redos:[],undos:[]},freeze=this._getFreeze();if(!freeze)return empty;const createFreezeMutationAndRefresh=__name(newFreeze=>{const workbook=this._context.unit,unitId=workbook.getUnitId(),worksheet=workbook.getActiveSheet();if(!worksheet)return empty;const subUnitId=worksheet.getSheetId();this._refreshFreeze(newFreeze.startRow,newFreeze.startColumn,newFreeze.ySplit,newFreeze.xSplit,0);const redoMutationParams={...newFreeze,unitId,subUnitId,resetScroll:!1},undoMutationParams=sheets.SetFrozenMutationFactory(this._injector,redoMutationParams);return{undos:[{id:sheets.SetFrozenMutation.id,params:undoMutationParams}],redos:[{id:sheets.SetFrozenMutation.id,params:redoMutationParams}]}},"createFreezeMutationAndRefresh");if(command.id===sheets.InsertRowCommand.id){const params=command.params,{range,direction}=params,insertCount=range.endRow-range.startRow+1;if(range.startRow+1<freeze.startRow||range.startRow+1===freeze.startRow&&direction===core.Direction.UP){const newFreeze={...freeze,startRow:Math.max(1,freeze.startRow+insertCount),ySplit:Math.max(1,freeze.ySplit+insertCount)};return createFreezeMutationAndRefresh(newFreeze)}}if(command.id===sheets.InsertColCommand.id){const params=command.params,{range,direction}=params,insertCount=range.endColumn-range.startColumn+1;if(range.startColumn+1<freeze.startColumn||range.startColumn+1===freeze.startColumn&&direction===core.Direction.LEFT){const newFreeze={...freeze,startColumn:Math.max(1,freeze.startColumn+insertCount),xSplit:Math.max(1,freeze.xSplit+insertCount)};return createFreezeMutationAndRefresh(newFreeze)}}if(command.id===sheets.MoveColsCommand.id){const selections=this._selectionManagerService.getCurrentSelections(),{fromRange:{startColumn:fromCol},toRange:{startColumn:toCol}}=command.params,filteredSelections=selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.COLUMN&&selection.range.startColumn<=fromCol&&fromCol<=selection.range.endColumn);if(!(filteredSelections!=null&&filteredSelections.length))return empty;const sourceRange=filteredSelections[0].range,targetRange={...sourceRange,startColumn:toCol,endColumn:toCol+sourceRange.endColumn-sourceRange.startColumn};if(!freeze||freeze.startColumn<=0||sourceRange.startColumn>=freeze.startColumn&&targetRange.startColumn>=freeze.startColumn||sourceRange.startColumn===targetRange.startColumn||sourceRange.endColumn<freeze.startColumn&&targetRange.startColumn<freeze.startColumn)return empty;const totalColCount=sourceRange.endColumn-sourceRange.startColumn+1,moveFreezeColCount=Math.max(Math.min(freeze.startColumn,sourceRange.endColumn+1)-sourceRange.startColumn,0);let newStartColumn,newXSplit;targetRange.startColumn>=freeze.startColumn?(newStartColumn=Math.max(freeze.startColumn-moveFreezeColCount,1),newXSplit=Math.max(freeze.xSplit-moveFreezeColCount,1)):(newStartColumn=freeze.startColumn+totalColCount-moveFreezeColCount,newXSplit=freeze.xSplit+totalColCount-moveFreezeColCount);const redoMutationParams={...freeze,startColumn:newStartColumn,xSplit:newXSplit};return createFreezeMutationAndRefresh(redoMutationParams)}if(command.id===sheets.MoveRowsCommand.id){const selections=this._selectionManagerService.getCurrentSelections(),{fromRange:{startRow:fromRow},toRange:{startRow:toRow}}=command.params,filteredSelections=selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.ROW&&selection.range.startRow<=fromRow&&fromRow<=selection.range.endRow);if(!(filteredSelections!=null&&filteredSelections.length))return empty;const sourceRange=filteredSelections[0].range,targetRange={...sourceRange,startRow:toRow,endRow:toRow+sourceRange.endRow-sourceRange.startRow};if(!freeze||freeze.startRow<=0||sourceRange.startRow>=freeze.startRow&&targetRange.startRow>=freeze.startRow||sourceRange.startRow===targetRange.startRow||sourceRange.endRow<freeze.startRow&&targetRange.startRow<freeze.startRow)return empty;const totalColCount=sourceRange.endRow-sourceRange.startRow+1,moveFreezeColCount=Math.max(Math.min(freeze.startRow,sourceRange.endRow+1)-sourceRange.startRow,0);let newStartRow,newYSplit;targetRange.startRow>=freeze.startRow?(newStartRow=Math.max(freeze.startRow-moveFreezeColCount,1),newYSplit=Math.max(freeze.ySplit-moveFreezeColCount,1)):(newStartRow=freeze.startRow+totalColCount-moveFreezeColCount,newYSplit=freeze.ySplit+totalColCount-moveFreezeColCount);const redoMutationParams={...freeze,startRow:newStartRow,ySplit:newYSplit};return createFreezeMutationAndRefresh(redoMutationParams)}if(command.id===sheets.RemoveColCommand.id||command.id===sheets.RemoveRowCommand.id){const params=command.params,range=params.range;if(range.rangeType===core.RANGE_TYPE.COLUMN&&range.startColumn<freeze.startColumn){const deleteFreezeColCount=Math.min(freeze.startColumn,range.endColumn+1)-range.startColumn,newFreeze={...freeze,startColumn:Math.max(1,freeze.startColumn-deleteFreezeColCount),xSplit:Math.max(1,freeze.xSplit-deleteFreezeColCount)};return createFreezeMutationAndRefresh(newFreeze)}if(params.range.rangeType===core.RANGE_TYPE.ROW&&range.startRow<freeze.startRow){const deleteFreezeRowCount=Math.min(freeze.startRow,range.endRow+1)-range.startRow,newFreeze={...freeze,startRow:Math.max(1,freeze.startRow-deleteFreezeRowCount),ySplit:Math.max(1,freeze.ySplit-deleteFreezeRowCount)};return createFreezeMutationAndRefresh(newFreeze)}}return empty},"getMutations")}))}_commandExecutedListener(){const updateCommandList=[sheets.SetFrozenMutation.id,SetZoomRatioOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(updateCommandList.includes(command.id)){const lastFreeze=this._lastFreeze,workbook=this._context.unit,worksheet=workbook.getActiveSheet(),params=command.params,{unitId,subUnitId}=params;if(!(unitId===workbook.getUnitId()&&subUnitId===(worksheet==null?void 0:worksheet.getSheetId())))return;const freeze=worksheet.getConfig().freeze;if(this._lastFreeze=freeze,freeze==null)return;let resetScroll=0;const{startRow=-1,startColumn=-1,ySplit=0,xSplit=0}=freeze;(!lastFreeze||lastFreeze.startRow!==startRow||lastFreeze.ySplit!==ySplit)&&(resetScroll|=2),(!lastFreeze||lastFreeze.startColumn!==startColumn||lastFreeze.xSplit!==xSplit)&&(resetScroll|=1),params.resetScroll===!1&&(resetScroll=0),this._refreshFreeze(startRow,startColumn,ySplit,xSplit,resetScroll)}else if(command.id===sheets.SetWorksheetRowHeightMutation.id){const freeze=this._getFreeze(),isRefresh=freeze&&command.params.ranges.some(i=>i.startRow<freeze.startRow);command.params&&isRefresh&&this._refreshCurrent()}else if(command.id===sheets.SetWorksheetColWidthMutation.id){const freeze=this._getFreeze();command.params&&freeze&&command.params.ranges.some(i=>i.startColumn<freeze.startColumn)&&this._refreshCurrent()}else if(command.id===sheets.SetWorksheetRowAutoHeightMutation.id){const params=command.params,freeze=this._getFreeze();if(freeze&&freeze.startRow>-1&&params.rowsAutoHeightInfo.some(info=>info.row<freeze.startRow)){const subscription=this._sheetSkeletonManagerService.currentSkeleton$.subscribe(()=>{this._refreshCurrent(),setTimeout(()=>{subscription.unsubscribe()})})}}else if(command.id===sheets.SetColHiddenMutation.id||command.id===sheets.SetColVisibleMutation.id){const params=command.params,freeze=this._getFreeze(),ranges=params.ranges;freeze&&freeze.startColumn>-1&&ranges.some(range=>range.startColumn<freeze.startColumn)&&this._refreshCurrent()}else if(command.id===sheets.SetRowHiddenMutation.id||command.id===sheets.SetRowVisibleMutation.id){const params=command.params,freeze=this._getFreeze(),ranges=params.ranges;freeze&&freeze.startRow>-1&&ranges.some(range=>range.startRow<freeze.startRow)&&this._refreshCurrent()}}))}_zoomRefresh(){const sheetObject=this._getSheetObject();if(sheetObject==null)return;const{scene}=sheetObject;scene.onTransformChange$.subscribeEvent(state=>{state.type===engineRender.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale&&this._refreshCurrent()})}_clearObserverEvent(){var _a61,_b;this._getSheetObject()!=null&&((_a61=this._scenePointerMoveSub)==null||_a61.unsubscribe(),(_b=this._scenePointerUpSub)==null||_b.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_clearFreeze(){var _a61,_b,_c,_d,_e,_f;(_a61=this._rowFreezeHeaderRect)==null||_a61.dispose(),(_b=this._rowFreezeMainRect)==null||_b.dispose(),(_c=this._columnFreezeHeaderRect)==null||_c.dispose(),(_d=this._columnFreezeMainRect)==null||_d.dispose(),this._getSheetObject()!=null&&([this._freezeDownSubs,this._freezePointerEnterSubs,this._freezePointerLeaveSubs].forEach(s=>{s==null||s.unsubscribe()}),this._freezeDownSubs=null,this._freezePointerEnterSubs=null,this._freezePointerLeaveSubs=null,(_e=this._scenePointerMoveSub)==null||_e.unsubscribe(),(_f=this._scenePointerUpSub)==null||_f.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_getPositionByIndex(row,column){var _a61;if(this._getSheetObject()==null)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton,position=skeleton==null?void 0:skeleton.getNoMergeCellPositionByIndex(row,column);if(skeleton==null)return;if(position!=null&&(!isNaN(position.endX)||!isNaN(position.endY)))return position;const{rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton;return{startX:rowHeaderWidthAndMarginLeft,endX:rowHeaderWidthAndMarginLeft,startY:columnHeaderHeightAndMarginTop,endY:columnHeaderHeightAndMarginTop}}_getFreeze(){var _a61;const config=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton.getWorksheetConfig();if(config!=null)return config.freeze}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_refreshFreeze(startRow,startColumn,ySplit,xSplit,resetScroll){var _a61;const newFreeze={startRow,startColumn,ySplit,xSplit};this._clearFreeze(),this._createFreeze(0,newFreeze),this._createFreeze(1,newFreeze),this._updateViewport(startRow,startColumn,ySplit,xSplit,resetScroll),(_a61=this._getSheetObject())==null||_a61.spreadsheet.makeForceDirty()}},__name(_a18,"HeaderFreezeRenderController"),_a18);exports.HeaderFreezeRenderController=__decorateClass$E([__decorateParam$E(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$E(2,core.ICommandService),__decorateParam$E(3,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$E(4,core.Inject(exports.SheetScrollManagerService)),__decorateParam$E(5,core.Inject(core.ThemeService)),__decorateParam$E(6,core.Inject(sheets.SheetInterceptorService)),__decorateParam$E(7,core.Inject(core.Injector))],exports.HeaderFreezeRenderController);function getSheetSelectionsDisabled$(accessor){const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),univerInstanceService=accessor.get(core.IUniverInstanceService),mergeCellController=accessor.get(sheets.MergeCellController),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET);return rxjs.combineLatest([selectionManagerService.selectionMoveEnd$,workbook$.pipe(rxjs.map(workbook=>{var _a61;return(_a61=workbook==null?void 0:workbook.getUnitId())!=null?_a61:""})),workbook$.pipe(rxjs.switchMap(workbook=>{var _a61;return(_a61=workbook==null?void 0:workbook.activeSheet$)!=null?_a61:rxjs.of(null)}))]).pipe(rxjs.map(([selection,unitId,sheet])=>{if(!sheet||!selection||selection.length===0)return!1;const subUnitId=sheet.getSheetId(),selectionRanges=selection.map(sel=>sel.range);if(mergeCellController.interceptor.fetchThroughInterceptors(sheets.MERGE_CELL_INTERCEPTOR_CHECK)(!1,selectionRanges))return!0;const subUnitRuleRange=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).map(rule=>rule.ranges).flat();if(selection.length<2){const range=selection[0].range;return subUnitRuleRange.some(ruleRange=>core.Rectangle.intersects(ruleRange,range)&&!core.Rectangle.contains(ruleRange,range))}for(let i=0;i<selection.length;i++)for(let j=i+1;j<selection.length;j++)if(core.Rectangle.intersects(selection[i].range,selection[j].range))return!0;return!1}))}__name(getSheetSelectionsDisabled$,"getSheetSelectionsDisabled$");function isThisRowSelected(selections,rowIndex){return!!matchedSelectionByRowColIndex(selections,rowIndex,core.RANGE_TYPE.ROW)}__name(isThisRowSelected,"isThisRowSelected");function isThisColSelected(selections,colIndex){return!!matchedSelectionByRowColIndex(selections,colIndex,core.RANGE_TYPE.COLUMN)}__name(isThisColSelected,"isThisColSelected");function matchedSelectionByRowColIndex(selections,indexOfRowCol,rowOrCol){return selections.find(sel=>{const range=sel.range,{startRow:startRowOfCurrSel,endRow:endRowOfCurrSel,startColumn:startColumnOfCurrSel,endColumn:endColumnOfCurrSel,rangeType:rangeTypeOfCurrSelection}=range;return rangeTypeOfCurrSelection===core.RANGE_TYPE.ALL||rangeTypeOfCurrSelection===core.RANGE_TYPE.NORMAL?!1:rangeTypeOfCurrSelection===rowOrCol&&(rowOrCol===core.RANGE_TYPE.COLUMN&&startColumnOfCurrSel<=indexOfRowCol&&indexOfRowCol<=endColumnOfCurrSel||rowOrCol===core.RANGE_TYPE.ROW&&startRowOfCurrSel<=indexOfRowCol&&indexOfRowCol<=endRowOfCurrSel)})}__name(matchedSelectionByRowColIndex,"matchedSelectionByRowColIndex");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");const HEADER_MOVE_CONTROLLER_BACKGROUND="__SpreadsheetHeaderMoveControllerBackground__",HEADER_MOVE_CONTROLLER_LINE="__SpreadsheetHeaderMoveControllerShapeLine__",HEADER_MOVE_CONTROLLER_BACKGROUND_FILL="rgba(0, 0, 0, 0.1)",HEADER_MOVE_CONTROLLER_LINE_FILL="rgb(119, 119, 119)",HEADER_MOVE_CONTROLLER_LINE_SIZE=4,HEADER_MOVE_PERMISSION_CHECK=core.createInterceptorKey("headerMovePermissionCheck");var _a19;exports.HeaderMoveRenderController=(_a19=class extends core.Disposable{constructor(_context,selectionManagerService,_sheetSkeletonManagerService,_commandService){super();__publicField(this,"_startOffsetX",Number.NEGATIVE_INFINITY);__publicField(this,"_startOffsetY",Number.NEGATIVE_INFINITY);__publicField(this,"_moveHelperBackgroundShape");__publicField(this,"_moveHelperLineShape");__publicField(this,"_headerPointerDownSubs");__publicField(this,"_headerPointerMoveSubs");__publicField(this,"_headerPointerLeaveSubs");__publicField(this,"_dragHeaderMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_scrollTimer");__publicField(this,"_changeFromColumn",-1);__publicField(this,"_changeFromRow",-1);__publicField(this,"_changeToColumn",-1);__publicField(this,"_changeToRow",-1);__publicField(this,"interceptor",new core.InterceptorManager({HEADER_MOVE_PERMISSION_CHECK}));__publicField(this,"_workbookSelections");this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._workbookSelections=selectionManagerService.getWorkbookSelections(this._context.unitId),this._init()}dispose(){var _a61,_b,_c,_d,_e,_f,_g,_h;(_a61=this._moveHelperBackgroundShape)==null||_a61.dispose(),(_b=this._moveHelperLineShape)==null||_b.dispose(),(_c=this._headerPointerMoveSubs)==null||_c.unsubscribe(),(_d=this._headerPointerLeaveSubs)==null||_d.unsubscribe(),(_e=this._headerPointerDownSubs)==null||_e.unsubscribe(),this._headerPointerMoveSubs=null,this._headerPointerLeaveSubs=null,this._headerPointerDownSubs=null,(_f=this._dragHeaderMoveSub)==null||_f.unsubscribe(),(_g=this._scenePointerUpSub)==null||_g.unsubscribe(),this._dragHeaderMoveSub=null,this._scenePointerUpSub=null,(_h=this._scrollTimer)==null||_h.dispose()}_init(){this._initialRowOrColumn(core.RANGE_TYPE.ROW),this._initialRowOrColumn(core.RANGE_TYPE.COLUMN)}_initialRowOrColumn(initialType=core.RANGE_TYPE.ROW){const spreadsheetColumnHeader=this._context.components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetRowHeader=this._context.components.get(SHEET_VIEW_KEY.ROW),scene=this._context.scene,eventBindingObject=initialType===core.RANGE_TYPE.ROW?spreadsheetRowHeader:spreadsheetColumnHeader,pointerMoveHandler=__name(evt=>{var _a61,_b;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const selectionRange=(_b=this._workbookSelections.getCurrentLastSelection())==null?void 0:_b.range;if(!selectionRange||!this.interceptor.fetchThroughInterceptors(HEADER_MOVE_PERMISSION_CHECK)(!1,selectionRange))return;const currentSelections=this._workbookSelections.getCurrentSelections(),{row,column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);if(!matchedSelectionByRowColIndex(currentSelections,initialType===core.RANGE_TYPE.ROW?row:column,initialType)){scene.resetCursor();return}scene.setCursor(engineRender.CURSOR_TYPE.GRAB)},"pointerMoveHandler"),pointerLeaveHandler=__name(()=>{var _a61,_b;(_a61=this._moveHelperBackgroundShape)==null||_a61.hide(),(_b=this._moveHelperLineShape)==null||_b.hide(),scene.resetCursor()},"pointerLeaveHandler"),pointerDownHandler=__name((evt,state)=>{var _a61,_b;if(state.isStopPropagation)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const selectionRange=(_b=this._workbookSelections.getCurrentLastSelection())==null?void 0:_b.range;if(!selectionRange||!this.interceptor.fetchThroughInterceptors(HEADER_MOVE_PERMISSION_CHECK)(!1,selectionRange))return;const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords;this._startOffsetX=newEvtOffsetX,this._startOffsetY=newEvtOffsetY;const{row,column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);let scrollType;initialType===core.RANGE_TYPE.ROW?(this._changeFromRow=row,scrollType=engineRender.ScrollTimerType.Y):(this._changeFromColumn=column,scrollType=engineRender.ScrollTimerType.X);const currentSelections=this._workbookSelections.getCurrentSelections(),matchSelectionData=matchedSelectionByRowColIndex(currentSelections,initialType===core.RANGE_TYPE.ROW?row:column,initialType);if(!matchSelectionData)return;const startScrollXY=scene.getScrollXYInfoByViewport(engineRender.Vector2.FromArray([this._startOffsetX,this._startOffsetY]));this._newBackgroundAndLine(),scene.setCursor(engineRender.CURSOR_TYPE.GRABBING),scene.disableObjectsEvent();let scrollTimerInitd=!1,scrollTimer;const initScrollTimer=__name(()=>{if(scrollTimerInitd)return;scrollTimer=engineRender.ScrollTimer.create(scene,scrollType),this._scrollTimer=scrollTimer;const mainViewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);scrollTimer.startScroll(newEvtOffsetX,newEvtOffsetY,mainViewport),scrollTimerInitd=!0},"initScrollTimer");this._dragHeaderMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{initScrollTimer();const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt,{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._rowColumnMoving(newMoveOffsetX,newMoveOffsetY,matchSelectionData,startScrollXY,initialType),scrollTimer.scrolling(newMoveOffsetX,newMoveOffsetY,()=>{this._rowColumnMoving(newMoveOffsetX,newMoveOffsetY,matchSelectionData,startScrollXY,initialType)})}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a62,_b2,_c;this._disposeBackgroundAndLine(),scene.resetCursor(),scene.enableObjectsEvent(),this._clearObserverEvent(),(_a62=this._scrollTimer)==null||_a62.dispose();const selections=this._workbookSelections.getCurrentSelections();if(initialType===core.RANGE_TYPE.ROW){if(this._changeFromRow!==this._changeToRow&&this._changeToRow!==-1){const range=(_b2=((selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.ROW&&selection.range.startRow<=this._changeFromRow&&this._changeFromRow<=selection.range.endRow))||[])[0])==null?void 0:_b2.range;range&&this._commandService.executeCommand(sheets.MoveRowsCommand.id,{fromRange:range,toRange:{...range,startRow:this._changeToRow,endRow:this._changeToRow+range.endRow-range.startRow}})}this._changeToRow=this._changeFromRow=-1}else{if(this._changeFromColumn!==this._changeToColumn&&this._changeToColumn!==-1){const range=(_c=((selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.COLUMN&&selection.range.startColumn<=this._changeFromColumn&&this._changeFromColumn<=selection.range.endColumn))||[])[0])==null?void 0:_c.range;range&&this._commandService.executeCommand(sheets.MoveColsCommand.id,{fromRange:range,toRange:{...range,startColumn:this._changeToColumn,endColumn:this._changeToColumn+range.endColumn-range.startColumn}})}this._changeToColumn=this._changeFromColumn=-1}})},"pointerDownHandler");this._headerPointerMoveSubs=new rxjs.Subscription,this._headerPointerMoveSubs.add(eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveHandler)),this._headerPointerLeaveSubs=new rxjs.Subscription,this._headerPointerLeaveSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveHandler)),this._headerPointerDownSubs=new rxjs.Subscription,this._headerPointerDownSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerDown$.subscribeEvent(pointerDownHandler))}_rowColumnMoving(moveOffsetX,moveOffsetY,matchSelectionData,startScrollXY,initialType){var _a61,_b,_c,_d,_e,_f,_g;const scene=this._context.scene,skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const{rowHeaderWidth,columnHeaderHeight,rowTotalHeight,columnTotalWidth}=skeleton,scrollXY=scene.getViewportScrollXY(scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX,scaleY}=scene.getAncestorScale(),moveActualSelection=skeleton.getCellIndexByOffset(moveOffsetX,moveOffsetY,scaleX,scaleY,scrollXY),{row,column}=moveActualSelection,startCell=skeleton.getNoMergeCellPositionByIndex(row,column),{startX:cellStartX,startY:cellStartY,endX:cellEndX,endY:cellEndY}=startCell,selectionWithCoord=this._sheetSkeletonManagerService.attachRangeWithCoord(matchSelectionData.range);if(selectionWithCoord==null)return;const scale=Math.max(scaleX,scaleX),{startX:selectedStartX,endX:selectedEndX,startY:selectedStartY,endY:selectedEndY,startRow:selectedStartRow,startColumn:selectedStartColumn,endRow:selectedEndRow,endColumn:selectedEndColumn}=selectionWithCoord;initialType===core.RANGE_TYPE.ROW?(_b=this._moveHelperBackgroundShape)==null||_b.transformByState({height:selectedEndY-selectedStartY,width:columnTotalWidth+rowHeaderWidth,left:0,top:selectedStartY+(moveOffsetY-this._startOffsetY)/scale+scrollXY.y-startScrollXY.y}):(_c=this._moveHelperBackgroundShape)==null||_c.transformByState({height:rowTotalHeight+columnHeaderHeight,width:selectedEndX-selectedStartX,left:selectedStartX+(moveOffsetX-this._startOffsetX)/scale+scrollXY.x-startScrollXY.x,top:0}),(_d=this._moveHelperBackgroundShape)==null||_d.show();const HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE=HEADER_MOVE_CONTROLLER_LINE_SIZE/scale;if(initialType===core.RANGE_TYPE.ROW){let top=0;if(row<=selectedStartRow)top=cellStartY-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToRow=row;else if(row>selectedEndRow)top=cellEndY-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToRow=row+1;else return;(_e=this._moveHelperLineShape)==null||_e.transformByState({height:HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE,width:columnTotalWidth,left:rowHeaderWidth,top})}else{let left=0;if(column<=selectedStartColumn)left=cellStartX-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToColumn=column;else if(column>selectedEndColumn)left=cellEndX-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToColumn=column+1;else return;(_f=this._moveHelperLineShape)==null||_f.transformByState({height:rowTotalHeight,width:HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE,left,top:columnHeaderHeight})}(_g=this._moveHelperLineShape)==null||_g.show()}_clearObserverEvent(){var _a61,_b;(_a61=this._dragHeaderMoveSub)==null||_a61.unsubscribe(),(_b=this._scenePointerUpSub)==null||_b.unsubscribe(),this._dragHeaderMoveSub=null,this._scenePointerUpSub=null}_newBackgroundAndLine(){const scene=this._context.scene;this._moveHelperBackgroundShape=new engineRender.Rect(HEADER_MOVE_CONTROLLER_BACKGROUND,{fill:HEADER_MOVE_CONTROLLER_BACKGROUND_FILL,evented:!1,zIndex:100}),this._moveHelperLineShape=new engineRender.Rect(HEADER_MOVE_CONTROLLER_LINE,{fill:HEADER_MOVE_CONTROLLER_LINE_FILL,evented:!1,zIndex:100}),scene.addObjects([this._moveHelperBackgroundShape,this._moveHelperLineShape],SHEET_COMPONENT_HEADER_LAYER_INDEX)}_disposeBackgroundAndLine(){var _a61,_b;(_a61=this._moveHelperBackgroundShape)==null||_a61.dispose(),(_b=this._moveHelperLineShape)==null||_b.dispose()}},__name(_a19,"HeaderMoveRenderController"),_a19);exports.HeaderMoveRenderController=__decorateClass$D([__decorateParam$D(1,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$D(2,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$D(3,core.ICommandService)],exports.HeaderMoveRenderController);var HEADER_RESIZE_SHAPE_TYPE=(HEADER_RESIZE_SHAPE_TYPE2=>(HEADER_RESIZE_SHAPE_TYPE2[HEADER_RESIZE_SHAPE_TYPE2.VERTICAL=0]="VERTICAL",HEADER_RESIZE_SHAPE_TYPE2[HEADER_RESIZE_SHAPE_TYPE2.HORIZONTAL=1]="HORIZONTAL",HEADER_RESIZE_SHAPE_TYPE2))(HEADER_RESIZE_SHAPE_TYPE||{});const HEADER_MENU_SHAPE_RECT_BACKGROUND_FILL="rgba(120, 120, 120, 0.01)",HEADER_MENU_SHAPE_RECT_FILL="rgb(68, 71, 70)",HEADER_MENU_SHAPE_SIZE=12,MAX_HEADER_MENU_SHAPE_SIZE=44,HEADER_MENU_SHAPE_THUMB_SIZE=4,_HeaderMenuResizeShape=class _HeaderMenuResizeShape extends engineRender.Shape{constructor(key,props){super(key,props);__publicField(this,"_size",HEADER_MENU_SHAPE_SIZE);__publicField(this,"_color",HEADER_MENU_SHAPE_RECT_FILL);__publicField(this,"_mode",0);this.setShapeProps(props)}get size(){return this._size}get mode(){return this._mode}get color(){return this._color}_draw(ctx){const scene=this.getScene();if(!scene)return;const{scaleX,scaleY}=scene.getAncestorScale(),scale=Math.max(scaleX,scaleY),HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE=HEADER_MENU_SHAPE_SIZE/scale,HEADER_MENU_SHAPE_THUMB_SIZE_SCALE=HEADER_MENU_SHAPE_THUMB_SIZE/scale;let{width,height}=this,left=0,top=0;this.mode===0?(width=HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,left=HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE):(height=HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,top=HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE),engineRender.Rect.drawWith(ctx,{width:this.width,height:this.height,left:0,top:0,fill:HEADER_MENU_SHAPE_RECT_BACKGROUND_FILL}),engineRender.Rect.drawWith(ctx,{width,height,fill:HEADER_MENU_SHAPE_RECT_FILL,radius:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE}),ctx.save(),ctx.transform(1,0,0,1,left,top),engineRender.Rect.drawWith(ctx,{width,height,fill:HEADER_MENU_SHAPE_RECT_FILL,radius:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE}),ctx.restore()}setShapeProps(props){return props!=null&&props.size&&(this._size=props.size),props!=null&&props.mode&&(this._mode=props.mode),props!=null&&props.color&&(this._color=props.color),this.mode===0?this.transformByState({width:HEADER_MENU_SHAPE_SIZE,height:this.size}):this.transformByState({width:this.size,height:HEADER_MENU_SHAPE_SIZE}),this}};__name(_HeaderMenuResizeShape,"HeaderMenuResizeShape");let HeaderMenuResizeShape=_HeaderMenuResizeShape;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 HEADER_RESIZE_CONTROLLER_SHAPE_ROW="__SpreadsheetHeaderResizeControllerShapeRow__",HEADER_RESIZE_CONTROLLER_SHAPE_COLUMN="__SpreadsheetHeaderResizeControllerShapeColumn__",HEADER_RESIZE_CONTROLLER_SHAPE_HELPER="__SpreadsheetHeaderResizeControllerShapeHelper__",HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR="rgb(199, 199, 199)",MINIMAL_OFFSET=2,HEADER_RESIZE_PERMISSION_CHECK=core.createInterceptorKey("headerResizePermissionCheck");var _a20;exports.HeaderResizeRenderController=(_a20=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_selectionManagerService,_commandService){super();__publicField(this,"_currentRow",0);__publicField(this,"_currentColumn",0);__publicField(this,"_rowResizeRect");__publicField(this,"_columnResizeRect");__publicField(this,"_headerPointerSubs");__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_resizeHelperShape");__publicField(this,"_startOffsetX",Number.POSITIVE_INFINITY);__publicField(this,"_startOffsetY",Number.POSITIVE_INFINITY);__publicField(this,"interceptor",new core.InterceptorManager({HEADER_RESIZE_PERMISSION_CHECK}));this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._selectionManagerService=_selectionManagerService,this._commandService=_commandService,this._init()}dispose(){var _a61,_b,_c;(_a61=this._rowResizeRect)==null||_a61.dispose(),this._rowResizeRect=null,(_b=this._columnResizeRect)==null||_b.dispose(),this._columnResizeRect=null,(_c=this._headerPointerSubs)==null||_c.unsubscribe(),this._headerPointerSubs=null}_init(){const scene=this._context.scene;this._rowResizeRect=new HeaderMenuResizeShape(HEADER_RESIZE_CONTROLLER_SHAPE_ROW,{visible:!1,mode:HEADER_RESIZE_SHAPE_TYPE.HORIZONTAL,zIndex:100}),this._columnResizeRect=new HeaderMenuResizeShape(HEADER_RESIZE_CONTROLLER_SHAPE_COLUMN,{visible:!1,mode:HEADER_RESIZE_SHAPE_TYPE.VERTICAL,zIndex:100}),scene.addObjects([this._rowResizeRect,this._columnResizeRect],SHEET_COMPONENT_HEADER_LAYER_INDEX),this._initialHover(0),this._initialHover(1),this._initialHoverResize(0),this._initialHoverResize(1)}_initialHover(initialType=0){const spreadsheetColumnHeader=this._context.components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetRowHeader=this._context.components.get(SHEET_VIEW_KEY.ROW),scene=this._context.scene,eventBindingObject=initialType===0?spreadsheetRowHeader:spreadsheetColumnHeader,pointerLeaveEvent=__name((_evt,_state)=>{var _a61,_b;(_a61=this._rowResizeRect)==null||_a61.hide(),(_b=this._columnResizeRect)==null||_b.hide()},"pointerLeaveEvent"),pointerMoveEvent=__name((evt,_state)=>{var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null||this._rowResizeRect==null||this._columnResizeRect==null)return;const{rowHeaderWidth,columnHeaderHeight}=skeleton,{startX,startY,endX,endY,row,column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton),transformCoord=getTransformCoord(evt.offsetX,evt.offsetY,scene),{scaleX,scaleY}=scene.getAncestorScale(),scale=Math.max(scaleX,scaleY),HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE=HEADER_MENU_SHAPE_SIZE/scale;if(initialType===0){let top=startY-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;if(transformCoord.y<=startY+HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.y>=startY)this._currentRow=row-1;else if(transformCoord.y>=endY-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.y<=endY)this._currentRow=row,top=endY-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;else{this._rowResizeRect.hide();return}if(this._currentRow===-1)return;if(!this.interceptor.fetchThroughInterceptors(HEADER_RESIZE_PERMISSION_CHECK)(null,{row:this._currentRow}))return!1;const rowSize=Math.min(MAX_HEADER_MENU_SHAPE_SIZE,rowHeaderWidth/3);this._rowResizeRect.transformByState({left:rowHeaderWidth/2-rowSize/2,top}),this._rowResizeRect.setShapeProps({size:rowSize}),this._rowResizeRect.show()}else{let left=startX-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;if(transformCoord.x<=startX+HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.x>=startX)this._currentColumn=column-1;else if(transformCoord.x>=endX-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.x<=endX)this._currentColumn=column,left=endX-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;else{this._columnResizeRect.hide();return}if(this._currentColumn===-1)return;if(!this.interceptor.fetchThroughInterceptors(HEADER_RESIZE_PERMISSION_CHECK)(null,{col:this._currentColumn}))return!1;const columnSize=columnHeaderHeight*.7;this._columnResizeRect.transformByState({left,top:columnHeaderHeight/2-columnSize/2}),this._columnResizeRect.setShapeProps({size:columnSize}),this._columnResizeRect.show()}},"pointerMoveEvent");this._headerPointerSubs=new rxjs.Subscription,this._headerPointerSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveEvent)),this._headerPointerSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveEvent))}_initialHoverResize(initialType=0){const scene=this._context.scene,eventBindingObject=initialType===0?this._rowResizeRect:this._columnResizeRect;eventBindingObject!=null&&(this.disposeWithMe(eventBindingObject.onPointerEnter$.subscribeEvent(()=>{eventBindingObject!=null&&(eventBindingObject.show(),scene.setCursor(initialType===0?engineRender.CURSOR_TYPE.ROW_RESIZE:engineRender.CURSOR_TYPE.COLUMN_RESIZE))})),this.disposeWithMe(eventBindingObject.onPointerLeave$.subscribeEvent(()=>{eventBindingObject!=null&&(eventBindingObject.hide(),scene.resetCursor())})),this.disposeWithMe(eventBindingObject.onPointerDown$.subscribeEvent(evt=>{var _a61,_b,_c,_d,_e,_f,_g;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const scene2=this._context.scene,engine=scene2.getEngine(),canvasMaxHeight=(engine==null?void 0:engine.height)||0,canvasMaxWidth=(engine==null?void 0:engine.width)||0,viewPort=scene2.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),scrollBarHorizontalHeight=(((_c=(_b=viewPort==null?void 0:viewPort.getScrollBar())==null?void 0:_b.horizonScrollTrack)==null?void 0:_c.height)||0)+10,scrollBarVerticalWidth=(((_e=(_d=viewPort==null?void 0:viewPort.getScrollBar())==null?void 0:_d.verticalScrollTrack)==null?void 0:_e.width)||0)+10,transformCoord=getTransformCoord(evt.offsetX,evt.offsetY,scene2),{scaleX,scaleY}=scene2.getAncestorScale();this._startOffsetX=transformCoord.x,this._startOffsetY=transformCoord.y;const currentOffsetX=skeleton.getOffsetByPositionX(this._currentColumn),currentOffsetY=skeleton.getOffsetByPositionY(this._currentRow),cell=skeleton.getNoMergeCellPositionByIndex(this._currentRow,this._currentColumn);let isStartMove=!1,moveChangeX=0,moveChangeY=0;const{columnTotalWidth,rowHeaderWidth,rowTotalHeight,columnHeaderHeight}=skeleton,shapeWidth=canvasMaxWidth>columnTotalWidth+rowHeaderWidth?canvasMaxWidth:columnTotalWidth+rowHeaderWidth,shapeHeight=canvasMaxHeight>rowTotalHeight+columnHeaderHeight?canvasMaxHeight:rowTotalHeight+columnHeaderHeight,scale=Math.max(scaleX,scaleY),HEADER_MENU_SHAPE_THUMB_SIZE_SCALE=HEADER_MENU_SHAPE_THUMB_SIZE/scale;initialType===0?this._resizeHelperShape=new engineRender.Rect(HEADER_RESIZE_CONTROLLER_SHAPE_HELPER,{width:shapeWidth,height:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,fill:HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR,left:0,top:currentOffsetY-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE/2}):this._resizeHelperShape=new engineRender.Rect(HEADER_RESIZE_CONTROLLER_SHAPE_HELPER,{width:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,height:shapeHeight,fill:HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR,left:currentOffsetX-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE/2,top:0});const rowResizeRectX=((_f=this._columnResizeRect)==null?void 0:_f.left)||0,rowResizeRectY=((_g=this._rowResizeRect)==null?void 0:_g.top)||0;scene2.addObject(this._resizeHelperShape,SHEET_COMPONENT_HEADER_LAYER_INDEX),scene2.disableObjectsEvent(),this._scenePointerMoveSub=scene2.onPointerMove$.subscribeEvent(moveEvt=>{var _a62,_b2,_c2,_d2,_e2,_f2;const relativeCoords=scene2.getCoordRelativeToViewport(engineRender.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),scrollXY=scene2.getScrollXYInfoByViewport(relativeCoords,viewPort),transformCoord2=getTransformCoord(moveEvt.offsetX,moveEvt.offsetY,scene2),{x:moveOffsetX,y:moveOffsetY}=transformCoord2,{scaleX:scaleX2,scaleY:scaleY2}=scene2.getAncestorScale(),scale2=Math.max(scaleX2,scaleY2),HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2=HEADER_MENU_SHAPE_THUMB_SIZE/scale2;moveChangeX=moveOffsetX-this._startOffsetX-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2,moveChangeY=moveOffsetY-this._startOffsetY-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2,Math.abs(initialType===0?moveChangeY:moveChangeX)>=MINIMAL_OFFSET&&(isStartMove=!0),initialType===0?(moveChangeY>canvasMaxHeight-scrollBarHorizontalHeight+scrollXY.y-cell.startY&&(moveChangeY=canvasMaxHeight-scrollBarHorizontalHeight+scrollXY.y-cell.startY),moveChangeY<-(cell.endY-cell.startY)+2&&(moveChangeY=-(cell.endY-cell.startY)+2),isStartMove&&((_a62=this._resizeHelperShape)==null||_a62.transformByState({top:currentOffsetY+moveChangeY}),(_b2=this._rowResizeRect)==null||_b2.transformByState({top:rowResizeRectY+moveChangeY+HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2}),(_c2=this._rowResizeRect)==null||_c2.show(),scene2.setCursor(engineRender.CURSOR_TYPE.ROW_RESIZE))):(moveChangeX>canvasMaxWidth-scrollBarVerticalWidth+scrollXY.x-cell.startX&&(moveChangeX=canvasMaxWidth-scrollBarVerticalWidth+scrollXY.x-cell.startX),moveChangeX<-(cell.endX-cell.startX)+2&&(moveChangeX=-(cell.endX-cell.startX)+2),isStartMove&&((_d2=this._resizeHelperShape)==null||_d2.transformByState({left:currentOffsetX+moveChangeX}),(_e2=this._columnResizeRect)==null||_e2.transformByState({left:rowResizeRectX+moveChangeX+HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2}),(_f2=this._columnResizeRect)==null||_f2.show(),scene2.setCursor(engineRender.CURSOR_TYPE.COLUMN_RESIZE)))}),this._scenePointerUpSub=scene2.onPointerUp$.subscribeEvent(upEvt=>{var _a62,_b2,_c2;const scene3=this._context.scene;this._clearObserverEvent(),(_a62=this._resizeHelperShape)==null||_a62.dispose(),this._resizeHelperShape=null,scene3.enableObjectsEvent(),isStartMove&&(scene3.resetCursor(),(_b2=this._rowResizeRect)==null||_b2.hide(),(_c2=this._columnResizeRect)==null||_c2.hide(),initialType===0?this._commandService.executeCommand(sheets.DeltaRowHeightCommand.id,{deltaY:moveChangeY,anchorRow:this._currentRow}):this._commandService.executeCommand(sheets.DeltaColumnWidthCommand.id,{deltaX:moveChangeX,anchorCol:this._currentColumn}))})})),this.disposeWithMe(eventBindingObject.onDblclick$.subscribeEvent(()=>{var _a61,_b,_c;this._context.scene.resetCursor();const sk=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(!sk)return;const startRow=0,startColumn=0,endRow=sk.worksheet.getRowCount()-1||0,endColumn=sk.worksheet.getColumnCount()-1||0;switch(initialType){case 1:{const curSelections=this._selectionManagerService.getCurrentSelections(),ranges=[];for(let i=0;i<curSelections.length;i++){const selection=curSelections[i];selection.range.rangeType===core.RANGE_TYPE.COLUMN&&this._currentColumn<=selection.range.endColumn&&this._currentColumn>=selection.range.startColumn&&ranges.push({startColumn:selection.range.startColumn,endColumn:selection.range.endColumn,startRow,endRow})}ranges.length===0&&ranges.push({startColumn:this._currentColumn,endColumn:this._currentColumn,startRow,endRow}),this._commandService.executeCommand(SetWorksheetColAutoWidthCommand.id,{ranges}),(_b=this._columnResizeRect)==null||_b.hide();break}case 0:this._commandService.executeCommand(sheets.SetWorksheetRowIsAutoHeightCommand.id,{ranges:[{startRow:this._currentRow,endRow:this._currentRow,startColumn,endColumn}]}),(_c=this._rowResizeRect)==null||_c.hide();break}})))}_clearObserverEvent(){var _a61,_b;(_a61=this._scenePointerMoveSub)==null||_a61.unsubscribe(),(_b=this._scenePointerUpSub)==null||_b.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}},__name(_a20,"HeaderResizeRenderController"),_a20);exports.HeaderResizeRenderController=__decorateClass$C([__decorateParam$C(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$C(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$C(3,core.ICommandService)],exports.HeaderResizeRenderController);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 FRAME_STACK_THRESHOLD=60;var _a21;exports.SheetRenderController=(_a21=class extends core.RxDisposable{constructor(_context,_sheetSkeletonManagerService,_sheetRenderService,_commandService,_telemetryService){super();__publicField(this,"_renderFrameTimeMetric",null);__publicField(this,"_renderFrameTags",{});__publicField(this,"_afterRenderMetric$",new rxjs.Subject);this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._sheetRenderService=_sheetRenderService,this._commandService=_commandService,this._telemetryService=_telemetryService,this._addNewRender(),this._initRenderMetricSubscriber()}_addNewRender(){const{scene,engine,unit:workbook}=this._context;this._addComponent(workbook),this._initRerenderScheduler(),this._initCommandListener();const worksheet=this._context.unit.getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const sheetId=worksheet.getSheetId();this._sheetSkeletonManagerService.setCurrent({sheetId}),engine.runRenderLoop(()=>scene.render())}_initRenderMetricSubscriber(){if(!this._telemetryService)return;const{engine}=this._context;engine.beginFrame$.subscribe(()=>{this._renderFrameTimeMetric=null,this._renderFrameTags={}}),engine.endFrame$.subscribe(()=>{this._renderFrameTimeMetric&&Object.keys(this._renderFrameTimeMetric).filter(key=>key.startsWith(engineRender.SHEET_EXTENSION_PREFIX)).length>0&&this._afterRenderMetric$.next({frameTimeMetric:this._renderFrameTimeMetric,tags:this._renderFrameTags})}),engine.renderFrameTimeMetric$.subscribe(([key,value])=>{this._renderFrameTimeMetric||(this._renderFrameTimeMetric={}),this._renderFrameTimeMetric[key]||(this._renderFrameTimeMetric[key]=[]),this._renderFrameTimeMetric[key].push(Math.round(value*100)/100)}),engine.renderFrameTags$.subscribe(([key,value])=>{this._renderFrameTags[key]=value});const frameInfoList=[];this._afterRenderMetric$.pipe(rxjs.withLatestFrom(engine.endFrame$)).subscribe(([sceneRenderDetail,basicFrameTimeInfo])=>{frameInfoList.push({FPS:basicFrameTimeInfo.FPS,elapsedTime:basicFrameTimeInfo.elapsedTime,frameTime:Math.round(basicFrameTimeInfo.frameTime*100)/100,...sceneRenderDetail.frameTimeMetric,...sceneRenderDetail.tags}),frameInfoList.length>FRAME_STACK_THRESHOLD&&(this._renderMetricCapture(frameInfoList),frameInfoList.length=0)})}_renderMetricCapture(frameInfoList){const filteredFrameInfo=frameInfoList;if(filteredFrameInfo.length===0)return;const sumValueForNumListFields=__name(data=>{let totalSum=0;const sums=Object.entries(data).filter(([_2,value])=>Array.isArray(value)).map(([key])=>key).reduce((acc,key)=>{const keySum=data[key].reduce((sum,num)=>sum+num,0);return acc[key]=keySum,acc},{});return Object.keys(data).filter(key=>key.startsWith(engineRender.SHEET_EXTENSION_PREFIX)).forEach(key=>{totalSum+=sums[key]}),{...sums,extensionTotal:totalSum}},"sumValueForNumListFields"),frameTimeListAfterSum=frameInfoList.map(info=>({...info,...sumValueForNumListFields(info)})),summaryFrameStats=__name(list=>Object.entries(list[0]).filter(([key,_2])=>!["elapsedTime"].includes(key)).filter(([_2,value])=>typeof value=="number").map(([key])=>key).reduce((acc,key)=>{const values=list.map(obj=>obj[key]),max=Math.max(...values),min=Math.min(...values),avg=values.reduce((sum,val)=>sum+val,0)/values.length;return acc[key]={max:Math.round(max*100)/100,min:Math.round(min*100)/100,avg:Math.round(avg*100)/100},acc},{}),"getSummaryStats")(frameTimeListAfterSum),elapsedTimeToStart=filteredFrameInfo[filteredFrameInfo.length-1].elapsedTime,sheetId=this._context.unit.getActiveSheet().getSheetId(),unitId=this._context.unit.getUnitId(),telemetryData={sheetId,unitId,elapsedTimeToStart,...summaryFrameStats};this._telemetryService.capture("sheet_render_cost",telemetryData)}_addComponent(workbook){const{scene,components}=this._context,worksheet=workbook.getActiveSheet(),spreadsheet=new engineRender.Spreadsheet(SHEET_VIEW_KEY.MAIN);this._addViewport(worksheet);const spreadsheetRowHeader=new engineRender.SpreadsheetRowHeader(SHEET_VIEW_KEY.ROW),spreadsheetColumnHeader=new engineRender.SpreadsheetColumnHeader(SHEET_VIEW_KEY.COLUMN),SpreadsheetLeftTopPlaceholder=new engineRender.Rect(SHEET_VIEW_KEY.LEFT_TOP,{zIndex:2,left:-1,top:-1,fill:"rgb(248, 249, 250)",stroke:"rgb(217, 217, 217)",strokeWidth:1});this._context.mainComponent=spreadsheet,components.set(SHEET_VIEW_KEY.MAIN,spreadsheet),components.set(SHEET_VIEW_KEY.ROW,spreadsheetRowHeader),components.set(SHEET_VIEW_KEY.COLUMN,spreadsheetColumnHeader),components.set(SHEET_VIEW_KEY.LEFT_TOP,SpreadsheetLeftTopPlaceholder),scene.addObjects([spreadsheet],SHEET_COMPONENT_MAIN_LAYER_INDEX),scene.addObjects([spreadsheetRowHeader,spreadsheetColumnHeader,SpreadsheetLeftTopPlaceholder],SHEET_COMPONENT_HEADER_LAYER_INDEX),scene.enableLayerCache(SHEET_COMPONENT_MAIN_LAYER_INDEX,SHEET_COMPONENT_HEADER_LAYER_INDEX)}_initViewports(scene,rowHeader,columnHeader){const viewMain=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN,scene,{left:rowHeader.width,top:columnHeader.height,bottom:0,right:0,isWheelPreventDefaultX:!0,allowCache:!0,bufferEdgeX:100,bufferEdgeY:100}),viewMainLeftTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP,scene,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:0,bufferEdgeY:0}),viewMainLeft=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT,scene,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:0,bufferEdgeY:100}),viewMainTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP,scene,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:100,bufferEdgeY:0}),viewRowTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP,scene,{active:!1,isWheelPreventDefaultX:!0}),viewRowBottom=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM,scene,{left:0,top:columnHeader.height,bottom:0,width:rowHeader.width,isWheelPreventDefaultX:!0}),viewColumnLeft=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT,scene,{active:!1,isWheelPreventDefaultX:!0}),viewColumnRight=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT,scene,{left:rowHeader.width,top:0,height:columnHeader.height,right:0,isWheelPreventDefaultX:!0}),viewLeftTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP,scene,{left:0,top:0,width:rowHeader.width,height:columnHeader.height,isWheelPreventDefaultX:!0});return{viewMain,viewLeftTop,viewMainLeftTop,viewMainLeft,viewMainTop,viewColumnLeft,viewRowTop,viewRowBottom,viewColumnRight}}_addViewport(worksheet){const scene=this._context.scene,{rowHeader,columnHeader}=worksheet.getConfig(),{viewMain}=this._initViewports(scene,rowHeader,columnHeader);return new engineRender.ScrollBar(viewMain),scene.attachControl(),viewMain}_initRerenderScheduler(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{if(!param)return null;const{skeleton:spreadsheetSkeleton,sheetId}=param,workbook=this._context.unit,worksheet=workbook==null?void 0:workbook.getSheetBySheetId(sheetId);if(workbook==null||worksheet==null)return;const{mainComponent,components}=this._context,spreadsheet=mainComponent,spreadsheetRowHeader=components.get(SHEET_VIEW_KEY.ROW),spreadsheetColumnHeader=components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetLeftTopPlaceholder=components.get(SHEET_VIEW_KEY.LEFT_TOP),{rowHeaderWidth,columnHeaderHeight}=spreadsheetSkeleton;spreadsheet==null||spreadsheet.updateSkeleton(spreadsheetSkeleton),spreadsheetRowHeader==null||spreadsheetRowHeader.updateSkeleton(spreadsheetSkeleton),spreadsheetColumnHeader==null||spreadsheetColumnHeader.updateSkeleton(spreadsheetSkeleton),spreadsheetLeftTopPlaceholder==null||spreadsheetLeftTopPlaceholder.transformByState({width:rowHeaderWidth,height:columnHeaderHeight})}))}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{const{unit:workbook}=this._context,{id:commandId}=command;if(sheets.COMMAND_LISTENER_SKELETON_CHANGE.includes(commandId)||this._sheetRenderService.checkMutationShouldTriggerRerender(commandId)){const params=command.params,{unitId,subUnitId}=params,worksheet=workbook.getActiveSheet();if(!worksheet)return;const workbookId=this._context.unitId,worksheetId=worksheet.getSheetId();if(unitId!==workbookId||subUnitId!==worksheetId)return;this._sheetSkeletonManagerService.makeDirty({sheetId:worksheetId,commandId},!0),this._sheetSkeletonManagerService.setCurrent({sheetId:worksheetId,commandId})}else sheets.COMMAND_LISTENER_VALUE_CHANGE.includes(commandId)&&this._sheetSkeletonManagerService.reCalculate();command.type===core.CommandType.MUTATION&&this._markUnitDirty(command)}))}_markUnitDirty(command){const{mainComponent:spreadsheet,scene}=this._context;if(command.id===engineFormula.SetFormulaCalculationNotificationMutation.id&&command.params.stageInfo!=null||(spreadsheet&&spreadsheet.makeDirty(),scene.makeDirty(),!command.params))return;const cmdParams=command.params,viewports=this._spreadsheetViewports(scene);if(command.id===sheets.SetRangeValuesMutation.id&&cmdParams.cellValue){const dirtyRange=this._cellValueToRange(cmdParams.cellValue),dirtyBounds=this._rangeToBounds([dirtyRange]);this._markViewportDirty(viewports,dirtyBounds),spreadsheet.setDirtyArea(dirtyBounds)}if(command.id===sheets.MoveRangeMutation.id&&cmdParams.from&&cmdParams.to){const fromRange=cmdParams.fromRange||this._cellValueToRange(cmdParams.from.value),toRange=cmdParams.toRange||this._cellValueToRange(cmdParams.to.value),dirtyBounds=this._rangeToBounds([fromRange,toRange]);this._markViewportDirty(viewports,dirtyBounds),spreadsheet.setDirtyArea(dirtyBounds)}}_cellValueToRange(cellValue){let minCol=0,maxCol=0,minRow=0,maxRow=0;for(const[_row,columnObj]of Object.entries(cellValue)){for(const column in columnObj)minCol>Number(column)&&(minCol=Number(column)),maxCol<Number(column)&&(maxCol=Number(column));minRow>Number(_row)&&(minRow=Number(_row)),maxRow<Number(_row)&&(maxRow=Number(_row))}return{startRow:minRow,endRow:maxRow,startColumn:minCol,endColumn:maxCol}}_rangeToBounds(ranges){const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{rowHeightAccumulation,columnWidthAccumulation,rowHeaderWidth,columnHeaderHeight}=skeleton,dirtyBounds=[];for(const r2 of ranges){const{startRow,endRow,startColumn,endColumn}=r2,top=startRow===0?0:rowHeightAccumulation[startRow-1]+columnHeaderHeight,bottom=rowHeightAccumulation[endRow]+columnHeaderHeight,left=startColumn===0?0:columnWidthAccumulation[startColumn-1]+rowHeaderWidth,right=columnWidthAccumulation[endColumn]+rowHeaderWidth;dirtyBounds.push({top,left,bottom,right,width:right-left,height:bottom-top})}return dirtyBounds}_markViewportDirty(viewports,dirtyBounds){const activeViewports=viewports.filter(vp=>vp.isActive&&vp.cacheBound);for(const vp of activeViewports)for(const b of dirtyBounds)core.Rectangle.hasIntersectionBetweenTwoRect(vp.cacheBound,b)&&vp.markDirty(!0)}_spreadsheetViewports(scene){return scene.getViewports().filter(v=>["viewMain","viewMainLeftTop","viewMainTop","viewMainLeft"].includes(v.viewportKey))}},__name(_a21,"SheetRenderController"),_a21);exports.SheetRenderController=__decorateClass$B([__decorateParam$B(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$B(2,core.Inject(exports.SheetsRenderService)),__decorateParam$B(3,core.ICommandService),__decorateParam$B(4,core.Optional(telemetry.ITelemetryService))],exports.SheetRenderController);var __assign=function(){return __assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p])}return t},__assign.apply(this,arguments)},__rest=function(s,e){var t={};for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0&&(t[p]=s[p]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++)e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i])&&(t[p[i]]=s[p[i]]);return t},IconBase=React.forwardRef(function(props,ref){var icon=props.icon,id=props.id,className=props.className,extend=props.extend,restProps=__rest(props,["icon","id","className","extend"]),cls="univerjs-icon univerjs-icon-".concat(id," ").concat(className||"").trim(),idSuffix=React.useRef("_".concat(generateShortUuid()));return render(icon,"".concat(id),{defIds:icon.defIds,idSuffix:idSuffix.current},__assign({ref,className:cls},restProps),extend)});function render(node,id,runtimeProps,rootProps,extend){return React.createElement(node.tag,__assign(__assign({key:id},replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend)),rootProps),(replaceRuntimeIdsInDefs(node,runtimeProps).children||[]).map(function(child,index){return render(child,"".concat(id,"-").concat(node.tag,"-").concat(index),runtimeProps,void 0,extend)}))}__name(render,"render");function replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend){var attrs=__assign({},node.attrs);extend!=null&&extend.colorChannel1&&attrs.fill==="colorChannel1"&&(attrs.fill=extend.colorChannel1);var defIds=runtimeProps.defIds;return!defIds||defIds.length===0||(node.tag==="use"&&attrs["xlink:href"]&&(attrs["xlink:href"]=attrs["xlink:href"]+runtimeProps.idSuffix),Object.entries(attrs).forEach(function(_a61){var key=_a61[0],value=_a61[1];typeof value=="string"&&(attrs[key]=value.replace(/url\(#(.*)\)/,"url(#$1".concat(runtimeProps.idSuffix,")")))})),attrs}__name(replaceRuntimeIdsAndExtInAttrs,"replaceRuntimeIdsAndExtInAttrs");function replaceRuntimeIdsInDefs(node,runtimeProps){var _a61,defIds=runtimeProps.defIds;return!defIds||defIds.length===0?node:node.tag==="defs"&&(!((_a61=node.children)===null||_a61===void 0)&&_a61.length)?__assign(__assign({},node),{children:node.children.map(function(child){return typeof child.attrs.id=="string"&&defIds&&defIds.indexOf(child.attrs.id)>-1?__assign(__assign({},child),{attrs:__assign(__assign({},child.attrs),{id:child.attrs.id+runtimeProps.idSuffix})}):child})}):node}__name(replaceRuntimeIdsInDefs,"replaceRuntimeIdsInDefs");function generateShortUuid(){return Math.random().toString(36).substring(2,8)}__name(generateShortUuid,"generateShortUuid");IconBase.displayName="UniverIcon";var element$i={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"colorChannel1",d:"M11.0363 12.2367V14.0367C11.0363 14.3681 11.3049 14.6367 11.6363 14.6367C11.9676 14.6367 12.2363 14.3681 12.2363 14.0367V12.2367H14.0364C14.3677 12.2367 14.6364 11.9681 14.6364 11.6367C14.6364 11.3054 14.3677 11.0367 14.0364 11.0367H12.2363V9.23672C12.2363 8.90535 11.9676 8.63672 11.6363 8.63672C11.3049 8.63672 11.0363 8.90535 11.0363 9.23672V11.0367H9.23635C8.90498 11.0367 8.63635 11.3054 8.63635 11.6367C8.63635 11.9681 8.90498 12.2367 9.23635 12.2367H11.0363Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M2.56365 1.36377C1.90091 1.36377 1.36365 1.90103 1.36365 2.56377V6.16377C1.36365 6.82651 1.90091 7.36377 2.56365 7.36377H6.16365C6.82639 7.36377 7.36365 6.82651 7.36365 6.16377V2.56377C7.36365 1.90103 6.82639 1.36377 6.16365 1.36377H2.56365zM6.16365 2.56377H2.56365L2.56365 6.16377H6.16365V2.56377zM2.56365 8.63647C1.90091 8.63647 1.36365 9.17373 1.36365 9.83647V13.4365C1.36365 14.0992 1.90091 14.6365 2.56365 14.6365H6.16365C6.82639 14.6365 7.36365 14.0992 7.36365 13.4365V9.83647C7.36365 9.17373 6.82639 8.63647 6.16365 8.63647H2.56365zM6.16365 9.83647H2.56365L2.56365 13.4365H6.16365V9.83647zM9.83635 7.36377C9.17361 7.36377 8.63635 6.82651 8.63635 6.16377V2.56377C8.63635 1.90103 9.17361 1.36377 9.83635 1.36377H13.4364C14.0991 1.36377 14.6364 1.90103 14.6364 2.56377V6.16377C14.6364 6.82651 14.0991 7.36377 13.4364 7.36377H9.83635zM9.83635 6.16377V2.56377L13.4364 2.56377V6.16377H9.83635z",fillRule:"evenodd",clipRule:"evenodd"}}]},Autofill=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"autofill",ref,icon:element$i}))});Autofill.displayName="Autofill";var element$h={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},CheckMarkSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"check-mark-single",ref,icon:element$h}))});CheckMarkSingle.displayName="CheckMarkSingle";var element$g={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},CloseSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"close-single",ref,icon:element$g}))});CloseSingle.displayName="CloseSingle";var element$f={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"g",attrs:{fill:"currentColor",clipPath:"url(#convert-single_clip0_911_593)"},children:[{tag:"path",attrs:{d:"M2.44766.848145C1.564.848145.847656 1.56449.847656 2.44814V6.44814C.847656 7.3318 1.564 8.04814 2.44766 8.04814H6.44766C7.33131 8.04814 8.04766 7.3318 8.04766 6.44814V2.44814C8.04766 1.56449 7.33131.848145 6.44766.848145H2.44766zM2.04766 6.44814V5.04824H3.84775V6.84814H2.44766C2.22674 6.84814 2.04766 6.66906 2.04766 6.44814zM2.04766 3.84824H3.84775V2.04814H2.44766C2.22674 2.04814 2.04766 2.22723 2.04766 2.44814V3.84824zM5.04775 6.84814V5.04824H6.84766V6.44814C6.84766 6.66906 6.66857 6.84814 6.44766 6.84814H5.04775zM5.04775 3.84824H6.84766V2.44814C6.84766 2.22723 6.66857 2.04814 6.44766 2.04814H5.04775V3.84824zM9.55215 7.95166C8.66849 7.95166 7.95215 8.668 7.95215 9.55166V13.5517C7.95215 14.4353 8.66849 15.1517 9.55215 15.1517L11.5522 15.1517 13.5521 15.1517C14.4358 15.1517 15.1521 14.4353 15.1521 13.5517L15.1521 11.5518 15.1521 9.55166C15.1521 8.668 14.4358 7.95166 13.5521 7.95166H9.55215zM13.9521 10.9518V9.55166C13.9521 9.33075 13.7731 9.15166 13.5521 9.15166H12.1522V10.9518H13.9521zM10.9522 10.9518V9.15166H9.55215C9.33123 9.15166 9.15215 9.33075 9.15215 9.55166V10.9518H10.9522zM9.15215 12.1518H10.9522V13.9517H9.55215C9.33123 13.9517 9.15215 13.7726 9.15215 13.5517V12.1518zM12.1522 12.1518H13.9521V13.5517C13.9521 13.7726 13.7731 13.9517 13.5521 13.9517H12.1522V12.1518z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{d:"M9.62158 2.44912C9.62158 2.11775 9.89021 1.84912 10.2216 1.84912H12.7516C13.6352 1.84912 14.3516 2.56547 14.3516 3.44912V5.9791C14.3516 6.31047 14.0829 6.5791 13.7516 6.5791 13.4202 6.5791 13.1516 6.31047 13.1516 5.9791V3.44912C13.1516 3.22821 12.9725 3.04912 12.7516 3.04912H10.2216C9.89021 3.04912 9.62158 2.78049 9.62158 2.44912zM5.77871 14.1507C6.11008 14.1507 6.37871 13.8821 6.37871 13.5507 6.37871 13.2193 6.11008 12.9507 5.77871 12.9507L3.24873 12.9507C3.02782 12.9507 2.84873 12.7716 2.84873 12.5507L2.84873 10.0207C2.84873 9.68933 2.5801 9.4207 2.24873 9.4207 1.91736 9.4207 1.64873 9.68933 1.64873 10.0207L1.64873 12.5507C1.64873 13.4343 2.36507 14.1507 3.24873 14.1507H5.77871z"}}]},{tag:"defs",attrs:{},children:[{tag:"clipPath",attrs:{id:"convert-single_clip0_911_593"},children:[{tag:"path",attrs:{fill:"#fff",d:"M0 0H16V16H0z"}}]}]}],defIds:["convert-single_clip0_911_593"]},ConvertSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"convert-single",ref,icon:element$f}))});ConvertSingle.displayName="ConvertSingle";var element$e={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.3313 1.4667C5.3313 1.13533 5.59993.866699 5.9313.866699H10.069C10.4004.866699 10.669 1.13533 10.669 1.4667 10.669 1.79807 10.4004 2.0667 10.069 2.0667H5.9313C5.59993 2.0667 5.3313 1.79807 5.3313 1.4667zM1.09985 3.64443C1.09985 3.31306 1.36848 3.04443 1.69985 3.04443H14.2999C14.6312 3.04443 14.8999 3.31306 14.8999 3.64443 14.8999 3.9758 14.6312 4.24443 14.2999 4.24443H1.69985C1.36848 4.24443 1.09985 3.9758 1.09985 3.64443zM6.12398 8.30171C6.35829 8.0674 6.73819 8.0674 6.97251 8.30171L8.00007 9.32928 9.02764 8.30171C9.26195 8.0674 9.64185 8.0674 9.87617 8.30171 10.1105 8.53603 10.1105 8.91593 9.87617 9.15024L8.8486 10.1778 9.87617 11.2054C10.1105 11.4397 10.1105 11.8196 9.87617 12.0539 9.64185 12.2882 9.26195 12.2882 9.02764 12.0539L8.00007 11.0263 6.97251 12.0539C6.73819 12.2882 6.35829 12.2882 6.12398 12.0539 5.88966 11.8196 5.88966 11.4397 6.12398 11.2054L7.15154 10.1778 6.12398 9.15024C5.88966 8.91593 5.88966 8.53603 6.12398 8.30171z"}},{tag:"path",attrs:{fill:"currentColor",d:"M4.75332 5.22217C3.86966 5.22217 3.15332 5.93851 3.15332 6.82217V12.5331C3.15332 13.9691 4.31738 15.1332 5.75332 15.1332H10.2465C11.6825 15.1332 12.8465 13.9691 12.8465 12.5331V6.82217C12.8465 5.93851 12.1302 5.22217 11.2465 5.22217H4.75332ZM4.35332 6.82217C4.35332 6.60125 4.53241 6.42217 4.75332 6.42217H11.2465C11.4674 6.42217 11.6465 6.60125 11.6465 6.82217V12.5331C11.6465 13.3063 11.0197 13.9332 10.2465 13.9332H5.75332C4.98012 13.9332 4.35332 13.3063 4.35332 12.5331V6.82217Z",fillRule:"evenodd",clipRule:"evenodd"}}]},DeleteSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"delete-single",ref,icon:element$e}))});DeleteSingle.displayName="DeleteSingle";var element$d={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_371_77",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#DCDCDC",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_371_77)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.85869 12.9216C8.38445 13.4708 7.61555 13.4708 7.14131 12.9216L0.358114 5.06726C-0.406895 4.18144 0.134916 2.66683 1.2168 2.66683L14.7832 2.66683C15.8651 2.66683 16.4069 4.18144 15.6419 5.06726L8.85869 12.9216Z"}}]}]},DropdownSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"dropdown-single",ref,icon:element$d}))});DropdownSingle.displayName="DropdownSingle";var element$c={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM10.3097 5.69014C10.544 5.92445 10.544 6.30435 10.3097 6.53867L8.84843 7.9999L10.3099 9.46137C10.5442 9.69569 10.5442 10.0756 10.3099 10.3099C10.0756 10.5442 9.69569 10.5442 9.46137 10.3099L7.9999 8.84843L6.53842 10.3099C6.30411 10.5442 5.92421 10.5442 5.6899 10.3099C5.45558 10.0756 5.45558 9.69569 5.6899 9.46137L7.15137 7.9999L5.69014 6.53867C5.45583 6.30435 5.45583 5.92445 5.69014 5.69014C5.92445 5.45583 6.30435 5.45583 6.53867 5.69014L7.9999 7.15137L9.46113 5.69014C9.69544 5.45583 10.0753 5.45583 10.3097 5.69014Z",fillRule:"evenodd",clipRule:"evenodd"}}]},ErrorSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"error-single",ref,icon:element$c}))});ErrorSingle.displayName="ErrorSingle";var element$b={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1.28096 4.6541C1.57489 4.50109 1.93721 4.61533 2.09022 4.90926C2.27315 5.26067 2.55999 5.60455 2.94829 5.92278C4.04628 6.82266 5.87505 7.44865 7.99828 7.44865C10.1215 7.44865 11.9503 6.82267 13.0482 5.92279C13.4366 5.60455 13.7234 5.26067 13.9063 4.90927C14.0594 4.61533 14.4217 4.50109 14.7156 4.65409C15.0095 4.8071 15.1238 5.16941 14.9708 5.46334C14.6995 5.98445 14.2981 6.44997 13.8089 6.8509C13.7298 6.91575 13.6481 6.97914 13.564 7.041L15.2245 8.70153C15.4588 8.93585 15.4588 9.31575 15.2245 9.55006C14.9902 9.78438 14.6103 9.78438 14.376 9.55006L12.5041 7.67822C11.8977 7.97568 11.2181 8.21208 10.4884 8.37706L11.0996 10.6581C11.1853 10.9782 10.9954 11.3072 10.6753 11.393C10.3552 11.4787 10.0262 11.2888 9.94045 10.9687L9.29949 8.57652C8.8758 8.62404 8.44081 8.64865 7.99828 8.64865C7.55276 8.64865 7.11487 8.62371 6.68846 8.57555L6.04723 10.9687C5.96147 11.2888 5.63247 11.4788 5.31239 11.393C4.99231 11.3073 4.80236 10.9783 4.88812 10.6582L5.49983 8.37516C4.7743 8.2105 4.09843 7.9752 3.49498 7.67947L1.62436 9.55009C1.39005 9.78441 1.01015 9.78441 0.775835 9.5501C0.54152 9.31578 0.541518 8.93588 0.775832 8.70157L2.43478 7.04261C2.34987 6.98024 2.26746 6.91632 2.18764 6.8509C1.69842 6.44997 1.29706 5.98445 1.0258 5.46335C0.872791 5.16942 0.987031 4.80711 1.28096 4.6541Z"}}]},EyelashSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"eyelash-single",ref,icon:element$b}))});EyelashSingle.displayName="EyelashSingle";var element$a={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M6.06409 5.53454C5.93592 5.53454 5.84083 5.41567 5.86897 5.29063L5.95442 4.9109C6.05444 4.48178 6.23806 4.11547 6.51182 3.81952 6.81082 3.49628 7.25398 3.35405 7.79738 3.35405 7.99847 3.35405 8.21359 3.37775 8.44188 3.42245 8.46089 3.42617 8.47974 3.43006 8.49846 3.4341 8.7099 3.4798 8.93698 3.38478 9.02031 3.18514L9.24767 2.6404C9.33457 2.43219 9.23178 2.19404 9.01582 2.12874 8.98358 2.11899 8.95028 2.10912 8.91591 2.09914 8.62745 2.01631 8.28392 1.97217 7.88074 1.97217 6.82015 1.97217 6.02714 2.23936 5.4746 2.7444 4.90987 3.26069 4.50889 3.99917 4.28413 4.9762L2.83703 11.1909C2.76126 11.5286 2.666 11.8917 2.54844 12.2812 2.42975 12.6734 2.2873 13.0595 2.12221 13.4373 1.95577 13.8159 1.76813 14.1762 1.55955 14.5171 1.49345 14.6251 1.42515 14.7282 1.35467 14.8263 1.26508 14.9509 1.3347 15.133 1.48655 15.1554 2.13635 15.2509 2.8179 15.0763 3.18197 14.5296 3.32661 14.3124 3.46779 14.0646 3.60509 13.7851 3.96635 13.0497 4.30522 12.0103 4.61867 10.6574L5.469 7.01534C5.49013 6.92483 5.57082 6.86081 5.66376 6.86081H7.62478C7.8097 6.86081 7.97051 6.73405 8.01371 6.55425L8.14014 6.02798C8.20057 5.77642 8.00992 5.53454 7.75121 5.53454H6.06409zM14.3211 5.72037L12.5124 7.96963 11.4089 5.77754C11.3422 5.63012 11.1954 5.5354 11.0336 5.5354H10.3129C10.0085 5.5354 9.80921 5.85428 9.9427 6.1279L11.4089 9.05502 8.79783 12.1493C8.56587 12.4158 8.75519 12.8315 9.10855 12.8315H9.68607C9.80672 12.8315 9.9605 12.7822 10.0388 12.6904L12.1108 10.2648 13.1176 12.561C13.1786 12.7231 13.333 12.8315 13.5061 12.8315H14.3C14.5831 12.8315 14.7417 12.6175 14.6426 12.3524L13.1728 9.28628C13.1728 9.28628 15.4009 6.45542 15.6013 6.17892 15.7966 5.90929 15.6023 5.5354 15.2693 5.5354H14.6661C14.5275 5.5354 14.4333 5.58887 14.3211 5.72037z"}}]},FxSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"fx-single",ref,icon:element$a}))});FxSingle.displayName="FxSingle";var element$9={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"colorChannel1",d:"M6.4833 1.65005C6.4833 1.31868 6.21467 1.05005 5.8833 1.05005C5.55193 1.05005 5.2833 1.31868 5.2833 1.65005V5.28345H1.65029C1.31892 5.28345 1.05029 5.55208 1.05029 5.88345C1.05029 6.21482 1.31892 6.48345 1.65029 6.48345H5.2833V9.51684H1.65029C1.31892 9.51684 1.05029 9.78547 1.05029 10.1168C1.05029 10.4482 1.31892 10.7168 1.65029 10.7168H5.2833V14.35C5.2833 14.6814 5.55193 14.95 5.8833 14.95C6.21467 14.95 6.4833 14.6814 6.4833 14.35V10.7168H9.5167V14.35C9.5167 14.6814 9.78533 14.95 10.1167 14.95C10.4481 14.95 10.7167 14.6814 10.7167 14.35V10.7168H14.3503C14.6817 10.7168 14.9503 10.4482 14.9503 10.1168C14.9503 9.78547 14.6817 9.51685 14.3503 9.51685H10.7167V6.48345H14.3503C14.6817 6.48345 14.9503 6.21482 14.9503 5.88345C14.9503 5.55208 14.6817 5.28345 14.3503 5.28345H10.7167V1.65005C10.7167 1.31868 10.4481 1.05005 10.1167 1.05005C9.78533 1.05005 9.5167 1.31868 9.5167 1.65005V5.28345L6.4833 5.28345V1.65005ZM6.4833 6.48345V9.51684L9.5167 9.51685V6.48345L6.4833 6.48345Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.0498 3.65005C1.0498 2.21411 2.21386 1.05005 3.6498 1.05005H12.3498C13.7857 1.05005 14.9498 2.21411 14.9498 3.65005V12.3501C14.9498 13.786 13.7857 14.95 12.3498 14.95H3.6498C2.21386 14.95 1.0498 13.786 1.0498 12.35V3.65005ZM3.6498 2.25005C2.87661 2.25005 2.2498 2.87685 2.2498 3.65005V12.35C2.2498 13.1232 2.87661 13.75 3.6498 13.75H12.3498C13.123 13.75 13.7498 13.1232 13.7498 12.3501V3.65005C13.7498 2.87685 13.123 2.25005 12.3498 2.25005H3.6498Z",fillRule:"evenodd",clipRule:"evenodd"}}]},HideGridlines=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"hide-gridlines",ref,icon:element$9}))});HideGridlines.displayName="HideGridlines";var element$8={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.6 1.99991C8.60001 1.66854 8.33138 1.39991 8.00001 1.3999C7.66864 1.3999 7.40001 1.66853 7.4 1.9999L7.39996 7.3999H1.9999C1.66853 7.3999 1.3999 7.66853 1.3999 7.9999C1.3999 8.33127 1.66853 8.5999 1.9999 8.5999H7.39995L7.3999 13.9999C7.3999 14.3313 7.66853 14.5999 7.9999 14.5999C8.33127 14.5999 8.5999 14.3313 8.5999 13.9999L8.59995 8.5999H13.9999C14.3313 8.5999 14.5999 8.33127 14.5999 7.9999C14.5999 7.66853 14.3313 7.3999 13.9999 7.3999H8.59996L8.6 1.99991Z"}}]},IncreaseSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"increase-single",ref,icon:element$8}))});IncreaseSingle.displayName="IncreaseSingle";var element$7={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M2.62402 7.72905C2.58427 7.72905 2.55205 7.76127 2.55205 7.80102V13.6782C2.55205 13.7179 2.58427 13.7502 2.62402 13.7502H13.3755C13.4152 13.7502 13.4474 13.7179 13.4474 13.6782V7.80102C13.4474 7.76127 13.4152 7.72905 13.3755 7.72905H2.62402ZM1.35205 7.80102C1.35205 7.09853 1.92153 6.52905 2.62402 6.52905H13.3755C14.0779 6.52905 14.6474 7.09853 14.6474 7.80102V13.6782C14.6474 14.3807 14.0779 14.9502 13.3755 14.9502H2.62402C1.92153 14.9502 1.35205 14.3807 1.35205 13.6782V7.80102Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M8 2.25005C6.69847 2.25003 5.64336 3.30513 5.64336 4.60666V7.12895C5.64336 7.46032 5.37473 7.72895 5.04336 7.72895 4.71199 7.72895 4.44336 7.46032 4.44336 7.12895V4.60666C4.44336 2.64239 6.04451 1.05565 8.00879 1.05566M8 2.25005L8.00879 1.05566 8 2.25005zM8.00879 1.05566L8 2.25005C9.30154 2.25003 10.3567 3.30513 10.3567 4.60666V7.12895C10.3567 7.46032 10.6253 7.72895 10.9567 7.72895 11.288 7.72895 11.5567 7.46032 11.5567 7.12895V4.60666C11.5567 2.64239 9.97306 1.05565 8.00879 1.05566zM8.00039 9.4668C8.33176 9.4668 8.60039 9.73543 8.60039 10.0668V12.0827C8.60039 12.4141 8.33176 12.6827 8.00039 12.6827 7.66902 12.6827 7.40039 12.4141 7.40039 12.0827V10.0668C7.40039 9.73543 7.66902 9.4668 8.00039 9.4668z",fillRule:"evenodd",clipRule:"evenodd"}}]},LockSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"lock-single",ref,icon:element$7}))});LockSingle.displayName="LockSingle";var element$6={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M11.3536 6.14645C11.5488 6.34171 11.5488 6.65829 11.3536 6.85355L8.35355 9.85355C8.15829 10.0488 7.84171 10.0488 7.64645 9.85355L4.64645 6.85355C4.45118 6.65829 4.45118 6.34171 4.64645 6.14645C4.84171 5.95118 5.15829 5.95118 5.35355 6.14645L8 8.79289L10.6464 6.14645C10.8417 5.95118 11.1583 5.95118 11.3536 6.14645Z",fillRule:"evenodd",clipRule:"evenodd"}}]},MoreDownSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"more-down-single",ref,icon:element$6}))});MoreDownSingle.displayName="MoreDownSingle";var element$5={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.90913 3.57564C6.14345 3.34132 6.52335 3.34132 6.75766 3.57564L10.7577 7.57564C10.992 7.80995 10.992 8.18985 10.7577 8.42417L6.75766 12.4242C6.52335 12.6585 6.14345 12.6585 5.90913 12.4242C5.67482 12.1899 5.67482 11.81 5.90913 11.5756L9.48487 7.9999L5.90913 4.42417C5.67482 4.18985 5.67482 3.80995 5.90913 3.57564Z",fillRule:"evenodd",clipRule:"evenodd"}}]},MoreSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"more-single",ref,icon:element$5}))});MoreSingle.displayName="MoreSingle";var element$4={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_1204",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#DCDCDC",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_1204)"},children:[{tag:"rect",attrs:{width:12.62,height:2.79,x:1.69,y:12.25,fill:"colorChannel1",rx:1.4}},{tag:"path",attrs:{fill:"currentColor",d:"M7.74646 2.1642C7.34284 1.65121 6.85947 1.28205 6.38447 1.09593C5.86863 0.893787 5.15166 0.852126 4.70047 1.42917C4.29842 1.94344 4.33082 2.70249 4.57691 3.50395C4.68808 3.8661 4.86846 4.22254 5.12522 4.56617C5.13695 4.58185 5.14927 4.5968 5.16211 4.61102C5.17152 4.6214 5.18122 4.63139 5.19115 4.64096C5.20459 4.65393 5.21855 4.66618 5.23296 4.6777L3.5064 6.40422C3.26756 6.64306 3.26756 7.03033 3.5064 7.26919L7.23756 11.0004C7.47648 11.2392 7.86375 11.2392 8.1026 11.0004L12.8329 6.27001C13.0717 6.03117 13.0717 5.6439 12.8329 5.40505L9.10172 1.67387C8.86288 1.43503 8.47561 1.43503 8.23676 1.67387L7.74646 2.1642ZM7.46162 4.50638C7.47252 4.57574 7.48163 4.64652 7.4888 4.71868C7.52232 5.05481 7.82194 5.30013 8.15807 5.26661C8.4942 5.23311 8.73954 4.93345 8.70601 4.59732C8.65786 4.11463 8.54251 3.6666 8.37892 3.26169L8.66928 2.97135L11.5354 5.83753L10.6106 6.76237H4.87824L7.40802 4.2326C7.42885 4.32128 7.44684 4.41255 7.46162 4.50638ZM6.87284 3.03784C6.57441 2.62008 6.22261 2.34634 5.93815 2.23487C5.80233 2.18165 5.71528 2.17827 5.67638 2.18335C5.6725 2.18387 5.66929 2.18443 5.6666 2.18497L5.6619 2.18607C5.64166 2.21954 5.53594 2.45979 5.74626 3.1449C5.81241 3.36036 5.92262 3.58602 6.09307 3.81761L6.87284 3.03784Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M12.1932 11.5463C12.6454 11.5463 13.012 11.1797 13.012 10.7275C13.012 10.4475 12.6981 9.92821 12.459 9.5733C12.3299 9.38173 12.0564 9.38174 11.9274 9.57331C11.6883 9.92822 11.3744 10.4475 11.3744 10.7275C11.3744 11.1797 11.741 11.5463 12.1932 11.5463Z"}}]}]},PaintBucket=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"paint-bucket",ref,icon:element$4}))});PaintBucket.displayName="PaintBucket";var element$3={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_1138",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#DCDCDC",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_1138)"},children:[{tag:"path",attrs:{fill:"colorChannel1",d:"M7.74692 9.12463C7.74692 9.46018 8.01893 9.73219 8.35448 9.73219H11.4933C11.8288 9.73219 12.1009 9.46018 12.1009 9.12463 12.1009 8.78909 11.8288 8.51707 11.4933 8.51707H8.35448C8.01893 8.51707 7.74692 8.78909 7.74692 9.12463zM10.8636 10.8523C10.8636 11.1879 10.5915 11.4599 10.256 11.4599H8.35448C8.01893 11.4599 7.74692 11.1879 7.74692 10.8523 7.74692 10.5168 8.01893 10.2447 8.35448 10.2447H10.256C10.5915 10.2447 10.8636 10.5168 10.8636 10.8523z"}},{tag:"path",attrs:{fill:"currentColor",d:"M5.4791 1.98268C5.47913 1.71529 5.87912 1.49854 6.37252 1.49854C6.86593 1.49854 7.26592 1.71529 7.26595 1.98268H7.62187C8.22277 1.98268 8.72459 2.39534 8.84412 2.9452H9.39563C10.0856 2.9452 10.6449 3.48923 10.6449 4.16032V6.00569H12.1261C13.161 6.00569 14 6.82174 14 7.82838V11.334C14 11.8174 13.8025 12.281 13.4511 12.6228L12.0693 13.9647C11.7179 14.3065 11.2412 14.4985 10.7442 14.4985H7.91116C7.05024 14.4985 6.32492 14.0431 6.10535 13.2737H3.34925C2.6593 13.2737 2.09998 12.7297 2.09998 12.0586V4.16032C2.09998 3.48923 2.6593 2.9452 3.34925 2.9452H3.90107C4.0206 2.39534 4.52241 1.98268 5.12332 1.98268H5.4791ZM3.97249 4.16032H3.24925L3.24925 12.0586H6.03725V7.82838C6.03725 6.82174 6.87623 6.00569 7.91116 6.00569H9.49563V4.16032H8.7727C8.58289 4.59611 8.13909 4.90183 7.62187 4.90183H5.12332C4.6061 4.90183 4.1623 4.59611 3.97249 4.16032ZM5.12332 2.89403H7.62187C7.79436 2.89403 7.93419 3.03003 7.93419 3.19781V3.68671C7.93419 3.85448 7.79436 3.99049 7.62187 3.99049H5.12332C4.95083 3.99049 4.811 3.85448 4.811 3.68671V3.19781C4.811 3.03003 4.95083 2.89403 5.12332 2.89403ZM7.91116 7.11157C7.56618 7.11157 7.28652 7.38359 7.28652 7.71913V12.7851C7.28652 13.1206 7.56618 13.3927 7.91116 13.3927H10.7442C10.8401 13.3927 10.9337 13.3712 11.0182 13.3311C11.1373 13.2746 11.1859 13.1423 11.1859 13.0134V12.0066C11.1859 11.8724 11.2978 11.7636 11.4358 11.7636H12.4709C12.6034 11.7636 12.7394 11.7163 12.7975 11.6004C12.8388 11.5182 12.8608 11.4272 12.8608 11.334V7.71913C12.8608 7.38359 12.5811 7.11157 12.2362 7.11157H7.91116Z",fillRule:"evenodd",clipRule:"evenodd"}}]}]},PasteSpecial=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"paste-special",ref,icon:element$3}))});PasteSpecial.displayName="PasteSpecial";var element$2={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.785 6.77762C5.78908 6.7777 5.79316 6.77774 5.79725 6.77774C5.80134 6.77774 5.80543 6.7777 5.8095 6.77762H10.0184C10.0225 6.7777 10.0266 6.77774 10.0307 6.77774C10.0347 6.77774 10.0388 6.7777 10.0429 6.77762H13.6638V7.63727C13.6638 7.96864 13.9324 8.23727 14.2638 8.23727C14.5951 8.23727 14.8638 7.96864 14.8638 7.63727V3.9999C14.8638 2.56395 13.6997 1.39989 12.2637 1.3999L3.56389 1.39999C2.12797 1.40001 0.96393 2.56405 0.96392 3.99998L0.963867 11.6666C0.963857 13.1025 2.12792 14.2666 3.56387 14.2666H8.0542C8.38557 14.2666 8.6542 13.9979 8.6542 13.6666C8.6542 13.3352 8.38557 13.0666 8.0542 13.0666H3.56387C2.79067 13.0666 2.16386 12.4398 2.16387 11.6666L2.1639 6.77762H5.785ZM6.39725 2.59996L9.43065 2.59993V5.57762H6.39725V2.59996ZM5.19725 5.57762V2.59998L3.56391 2.59999C2.79072 2.6 2.16393 3.22679 2.16392 3.99998L2.16391 5.57762H5.19725ZM13.6638 5.57762V3.9999C13.6638 3.2267 13.037 2.59989 12.2638 2.5999L10.6307 2.59992V5.57762H13.6638Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M14.1223 10.2333V10.7496C14.7087 10.9869 15.1223 11.5618 15.1223 12.2333V12.8999C15.1223 13.7836 14.406 14.4999 13.5223 14.4999H11.5223C10.6387 14.4999 9.92235 13.7836 9.92235 12.8999V12.2333C9.92235 11.5618 10.336 10.9869 10.9223 10.7496V10.2333C10.9223 9.34961 11.6387 8.63328 12.5223 8.63328C13.406 8.63328 14.1223 9.34961 14.1223 10.2333ZM11.1223 12.2333C11.1223 12.0124 11.3014 11.8333 11.5223 11.8333H13.5223C13.7433 11.8333 13.9223 12.0124 13.9223 12.2333V12.8999C13.9223 13.1209 13.7433 13.2999 13.5223 13.2999H11.5223C11.3014 13.2999 11.1223 13.1209 11.1223 12.8999V12.2333ZM12.9223 10.2333V10.6333H12.1223V10.2333C12.1223 10.0124 12.3014 9.83328 12.5223 9.83328C12.7433 9.83328 12.9223 10.0124 12.9223 10.2333Z",fillRule:"evenodd",clipRule:"evenodd"}}]},ProtectSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"protect-single",ref,icon:element$2}))});ProtectSingle.displayName="ProtectSingle";var element$1={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM8.00008 12.3671C8.46031 12.3671 8.83342 11.994 8.83342 11.5338C8.83342 11.0735 8.46031 10.7004 8.00008 10.7004C7.53985 10.7004 7.16675 11.0735 7.16675 11.5338C7.16675 11.994 7.53985 12.3671 8.00008 12.3671ZM8.5999 4.4335C8.5999 4.10213 8.33127 3.8335 7.9999 3.8335C7.66853 3.8335 7.3999 4.10213 7.3999 4.4335V9.36683C7.3999 9.6982 7.66853 9.96683 7.9999 9.96683C8.33127 9.96683 8.5999 9.6982 8.5999 9.36683V4.4335Z",fillRule:"evenodd",clipRule:"evenodd"}}]},WarningSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"warning-single",ref,icon:element$1}))});WarningSingle.displayName="WarningSingle";var element={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.6551 1.98906C11.7476 1.08113 10.2757 1.08149 9.3686 1.98987L4.82542 6.53955C4.75087 6.61421 4.69336 6.70411 4.65682 6.80309L3.2461 10.625C3.16506 10.8446 3.21909 11.0912 3.3845 11.2568C3.54991 11.4224 3.79651 11.4767 4.01616 11.3959L7.85031 9.98517C7.94979 9.94856 8.04014 9.89077 8.11508 9.81579L12.6552 5.27327C13.5618 4.36621 13.5618 2.89607 12.6551 1.98906ZM10.2177 2.83779C10.6562 2.39869 11.3677 2.39851 11.8064 2.8374C12.2447 3.27584 12.2447 3.9865 11.8065 4.42497L7.3392 8.89457L4.82213 9.82068L5.74706 7.31487L10.2177 2.83779Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.79238 13.2999C1.46101 13.2999 1.19238 13.5685 1.19238 13.8999C1.19238 14.2313 1.46101 14.4999 1.79238 14.4999H14.4924C14.8238 14.4999 15.0924 14.2313 15.0924 13.8999C15.0924 13.5685 14.8238 13.2999 14.4924 13.2999H1.79238Z"}}]},WriteSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"write-single",ref,icon:element}))});WriteSingle.displayName="WriteSingle";function getUserListEqual(userList1,userList2){if(userList1.length!==userList2.length)return!1;const sorted1=userList1.sort((a,b)=>a.id.localeCompare(b.id)),sorted2=userList2.sort((a,b)=>a.id.localeCompare(b.id));return sorted1.every((user,index)=>{var _a61,_b;return((_a61=user.subject)==null?void 0:_a61.userID)===((_b=sorted2[index].subject)==null?void 0:_b.userID)&&user.role===sorted2[index].role})}__name(getUserListEqual,"getUserListEqual");function checkCellContentInRanges(worksheet,ranges){return ranges.some(range=>checkCellContentInRange(worksheet,range))}__name(checkCellContentInRanges,"checkCellContentInRanges");function checkCellContentInRange(worksheet,range){const{startRow,startColumn,endColumn,endRow}=range,cellMatrix=worksheet.getMatrixWithMergedCells(startRow,startColumn,endRow,endColumn);let someCellGoingToBeRemoved=!1;return cellMatrix.forValue((row,col,cellData)=>{if(cellData&&(row!==startRow||col!==startColumn)&&worksheet.cellHasValue(cellData))return someCellGoingToBeRemoved=!0,!1}),someCellGoingToBeRemoved}__name(checkCellContentInRange,"checkCellContentInRange");function getClearContentMutationParamsForRanges(accessor,unitId,worksheet,ranges){const undos=[],redos=[],subUnitId=worksheet.getSheetId();return ranges.forEach(range=>{const redoMatrix=getClearContentMutationParamForRange(worksheet,range),redoMutationParams={unitId,subUnitId,cellValue:redoMatrix.getData()},undoMutationParams=sheets.SetRangeValuesUndoMutationFactory(accessor,redoMutationParams);undos.push({id:sheets.SetRangeValuesMutation.id,params:undoMutationParams}),redos.push({id:sheets.SetRangeValuesMutation.id,params:redoMutationParams})}),{undos,redos}}__name(getClearContentMutationParamsForRanges,"getClearContentMutationParamsForRanges");function getClearContentMutationParamForRange(worksheet,range){const{startRow,startColumn,endColumn,endRow}=range,cellMatrix=worksheet.getMatrixWithMergedCells(startRow,startColumn,endRow,endColumn,core.CellModeEnum.Intercepted),redoMatrix=new core.ObjectMatrix;let leftTopCellValue=null;return cellMatrix.forValue((row,col,cellData)=>{var _a61,_b,_c,_d;cellData&&row>=startRow&&col>=startColumn&&(!leftTopCellValue&&worksheet.cellHasValue(cellData)&&(cellData.v!==""||((_d=(_c=(_b=(_a61=cellData.p)==null?void 0:_a61.body)==null?void 0:_b.dataStream)==null?void 0:_c.length)!=null?_d:0)>2)&&(leftTopCellValue=cellData),redoMatrix.setValue(row,col,null))}),redoMatrix.setValue(startRow,startColumn,leftTopCellValue),redoMatrix}__name(getClearContentMutationParamForRange,"getClearContentMutationParamForRange");function getCellIndexByOffsetWithMerge(offsetX,offsetY,scene,skeleton){const activeViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([offsetX,offsetY]));if(!activeViewport)return;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY},cellIndex=skeleton.getCellIndexByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY),mergeCell=skeleton.worksheet.getMergedCell(cellIndex.row,cellIndex.column);return{actualRow:mergeCell?mergeCell.startRow:cellIndex.row,actualCol:mergeCell?mergeCell.startColumn:cellIndex.column,mergeCell,row:cellIndex.row,col:cellIndex.column}}__name(getCellIndexByOffsetWithMerge,"getCellIndexByOffsetWithMerge");function getViewportByCell(row,column,scene,worksheet){const freeze=worksheet.getFreeze();if(!freeze||freeze.startRow<=0&&freeze.startColumn<=0||row>=freeze.startRow&&column>=freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(row<freeze.startRow&&column<freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(row<freeze.startRow&&column>=freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(row>=freeze.startRow&&column<freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)}__name(getViewportByCell,"getViewportByCell");function transformBound2OffsetBound(originBound,scene,skeleton,worksheet){const topLeft=transformPosition2Offset(originBound.left,originBound.top,scene,skeleton,worksheet),bottomRight=transformPosition2Offset(originBound.right,originBound.bottom,scene,skeleton,worksheet);return{left:topLeft.x,top:topLeft.y,right:bottomRight.x,bottom:bottomRight.y}}__name(transformBound2OffsetBound,"transformBound2OffsetBound");function transformPosition2Offset(x,y,scene,skeleton,worksheet){const{scaleX,scaleY}=scene.getAncestorScale(),viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!viewMain)return{x,y};const freeze=worksheet.getFreeze(),{startColumn,startRow,xSplit,ySplit}=freeze,startSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(startRow-ySplit,startColumn-xSplit),endSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(startRow,startColumn),{rowHeaderWidth,columnHeaderHeight}=skeleton,freezeWidth=endSheetView.startX-startSheetView.startX,freezeHeight=endSheetView.startY-startSheetView.startY,{top,left,viewportScrollX,viewportScrollY}=viewMain;let offsetX;x>left?offsetX=(x-viewportScrollX)*scaleX:offsetX=(freezeWidth+rowHeaderWidth-(left-x))*scaleX;let offsetY;return y>top?offsetY=(y-viewportScrollY)*scaleY:offsetY=(freezeHeight+columnHeaderHeight-(top-y))*scaleX,{x:offsetX,y:offsetY}}__name(transformPosition2Offset,"transformPosition2Offset");function getCellRealRange(workbook,worksheet,skeleton,row,col){let actualRow=row,actualCol=col;skeleton.overflowCache.forValue((r2,c,range)=>{range.startRow<=actualRow&&range.endRow>=actualRow&&range.startColumn<=actualCol&&range.endColumn>=actualCol&&(actualCol=c,actualRow=r2)});const actualCell=skeleton.getCellWithCoordByIndex(actualRow,actualCol);return{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),workbook,worksheet,row:actualCell.actualRow,col:actualCell.actualColumn}}__name(getCellRealRange,"getCellRealRange");function getHoverCellPosition(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY){const{scene}=currentRender,unitId=workbook.getUnitId(),{skeleton,sheetId}=skeletonParam,cellIndex=getCellIndexByOffsetWithMerge(offsetX,offsetY,scene,skeleton);if(!cellIndex)return null;let{actualCol,actualRow}=cellIndex;const originLocation={unitId,subUnitId:sheetId,workbook,worksheet,row:actualRow,col:actualCol};skeleton.overflowCache.forValue((r2,c,range)=>{range.startRow<=actualRow&&range.endRow>=actualRow&&range.startColumn<=actualCol&&range.endColumn>=actualCol&&(actualCol=c,actualRow=r2)});const actualCell=skeleton.getCellWithCoordByIndex(actualRow,actualCol),location=getCellRealRange(workbook,worksheet,skeleton,actualRow,actualCol);let anchorCell;actualCell.mergeInfo?anchorCell=actualCell.mergeInfo:anchorCell={startRow:location.row,endRow:location.row,startColumn:location.col,endColumn:location.col};const activeViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([offsetX,offsetY]));if(!activeViewport)return;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY};return{position:{startX:(skeleton.getOffsetByPositionX(anchorCell.startColumn-1)-scrollXY.x)*scaleX,endX:(skeleton.getOffsetByPositionX(anchorCell.endColumn)-scrollXY.x)*scaleX,startY:(skeleton.getOffsetByPositionY(anchorCell.startRow-1)-scrollXY.y)*scaleY,endY:(skeleton.getOffsetByPositionY(anchorCell.endRow)-scrollXY.y)*scaleY},location:originLocation,overflowLocation:location}}__name(getHoverCellPosition,"getHoverCellPosition");const AddWorksheetMergeCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),univerInstanceService=accessor.get(core.IUniverInstanceService),confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService),unitId=params.unitId,subUnitId=params.subUnitId,selections=params.selections,ranges=sheets.getAddMergeMutationRangeByType(selections,params.value),worksheet=univerInstanceService.getUniverSheetInstance(unitId).getSheetBySheetId(subUnitId),redoMutations=[],undoMutations=[],willClearSomeCell=checkCellContentInRanges(worksheet,ranges);if(willClearSomeCell&&!params.defaultMerge&&!await confirmService.confirm({id:"merge.confirm.add-worksheet-merge",title:{title:"merge.confirm.title"},cancelText:localeService.t("merge.confirm.cancel"),confirmText:localeService.t("merge.confirm.confirm")}))return!1;const removeMergeMutationParams={unitId,subUnitId,ranges:core.Tools.deepClone(ranges)},addMergeMutationParams={unitId,subUnitId,ranges:core.Tools.deepClone(ranges)},undoRemoveMergeMutationParams=sheets.RemoveMergeUndoMutationFactory(accessor,removeMergeMutationParams),undoMutationParams=sheets.AddMergeUndoMutationFactory(accessor,addMergeMutationParams);if(undoRemoveMergeMutationParams.ranges.length>0&&redoMutations.push({id:sheets.RemoveWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams}),redoMutations.push({id:sheets.AddWorksheetMergeMutation.id,params:addMergeMutationParams}),undoMutations.push({id:sheets.RemoveWorksheetMergeMutation.id,params:undoMutationParams}),undoRemoveMergeMutationParams.ranges.length>0&&undoMutations.push({id:sheets.AddWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams}),willClearSomeCell){const data=getClearContentMutationParamsForRanges(accessor,unitId,worksheet,ranges);redoMutations.unshift(...data.redos),undoMutations.push(...data.undos)}const addMergeRedoSelectionsMutation=sheets.AddMergeRedoSelectionsOperationFactory(accessor,params,ranges);addMergeRedoSelectionsMutation&&redoMutations.push(addMergeRedoSelectionsMutation);const addMergeUndoSelectionsMutation=sheets.AddMergeUndoSelectionsOperationFactory(accessor,params);addMergeUndoSelectionsMutation&&undoMutations.push(addMergeUndoSelectionsMutation);const interceptor=accessor.get(sheets.SheetInterceptorService).onCommandExecute({id:AddWorksheetMergeCommand.id,params:{unitId,subUnitId,ranges}});return redoMutations.push(...interceptor.redos),undoMutations.push(...interceptor.undos),core.sequenceExecute(redoMutations,commandService).result?(undoRedoService.pushUndoRedo({unitID:unitId,undoMutations,redoMutations}),!0):!1},"handler")},AddWorksheetMergeAllCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-all",handler:__name(async accessor=>{var _a61;const commandService=accessor.get(core.ICommandService),selections=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range),mergeableSelections=getMergeableSelectionsByType(MergeType.MergeAll,selections);if(!(mergeableSelections!=null&&mergeableSelections.length))return!1;const workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return!1;const workSheet=workbook.getActiveSheet();if(!workSheet)return!1;const unitId=workbook.getUnitId(),subUnitId=workSheet.getSheetId();return commandService.executeCommand(AddWorksheetMergeCommand.id,{selections:mergeableSelections,unitId,subUnitId})},"handler")},AddWorksheetMergeVerticalCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-vertical",handler:__name(async accessor=>{var _a61;const commandService=accessor.get(core.ICommandService),selections=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range),mergeableSelections=getMergeableSelectionsByType(MergeType.MergeVertical,selections);if(!(mergeableSelections!=null&&mergeableSelections.length))return!1;const workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return!1;const workSheet=workbook.getActiveSheet();if(!workSheet)return!1;const unitId=workbook.getUnitId(),subUnitId=workSheet.getSheetId();return commandService.executeCommand(AddWorksheetMergeCommand.id,{value:core.Dimension.COLUMNS,selections:mergeableSelections,unitId,subUnitId})},"handler")},AddWorksheetMergeHorizontalCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-horizontal",handler:__name(async accessor=>{var _a61;const commandService=accessor.get(core.ICommandService),selections=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range),mergeableSelections=getMergeableSelectionsByType(MergeType.MergeHorizontal,selections);if(!(mergeableSelections!=null&&mergeableSelections.length))return!1;const workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return!1;const workSheet=workbook.getActiveSheet();if(!workSheet)return!1;const unitId=workbook.getUnitId(),subUnitId=workSheet.getSheetId();return commandService.executeCommand(AddWorksheetMergeCommand.id,{value:core.Dimension.ROWS,selections:mergeableSelections,unitId,subUnitId})},"handler")},DeleteRangeMoveLeftConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-range-move-left-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endColumn:worksheet.getColumnCount()-1};const getRowLength=__name(range2=>range2.endRow-range2.startRow,"getRowLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getRowLength(mergeRange)>getRowLength(interSectedRange):!1})||await confirmService.confirm({id:DeleteRangeMoveLeftConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.DeleteRangeMoveLeftCommand.id):!0},"handler")},DeleteRangeMoveUpConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-range-move-up-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endRow:worksheet.getRowCount()-1};for(let i=range.startRow;i<=range.endRow;i++)if(worksheet.getRowFiltered(i)&&await confirmService.confirm({id:DeleteRangeMoveUpConfirmCommand.id,title:{title:localeService.t("filter.confirm.error")},children:{title:localeService.t("filter.confirm.notAllowedToInsertRange")},confirmText:localeService.t("button.confirm")}))return!1;const getColLength=__name(range2=>range2.endColumn-range2.startColumn,"getColLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getColLength(mergeRange)>getColLength(interSectedRange):!1})||await confirmService.confirm({id:DeleteRangeMoveUpConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.DeleteRangeMoveUpCommand.id):!0},"handler")},InsertRangeMoveDownConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.insert-range-move-down-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endRow:worksheet.getRowCount()-1};for(let i=range.startRow;i<=range.endRow;i++)if(worksheet.getRowFiltered(i)&&await confirmService.confirm({id:InsertRangeMoveDownConfirmCommand.id,title:{title:localeService.t("filter.confirm.error")},children:{title:localeService.t("filter.confirm.notAllowedToInsertRange")},confirmText:localeService.t("button.confirm")}))return!1;const getColLength=__name(range2=>range2.endColumn-range2.startColumn,"getColLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getColLength(mergeRange)>getColLength(interSectedRange):!1})||await confirmService.confirm({id:InsertRangeMoveDownConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.InsertRangeMoveDownCommand.id):!0},"handler")},InsertRangeMoveRightConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.insert-range-move-right-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endColumn:worksheet.getColumnCount()-1};const getRowLength=__name(range2=>range2.endRow-range2.startRow,"getRowLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getRowLength(mergeRange)>getRowLength(interSectedRange):!1})||await confirmService.confirm({id:InsertRangeMoveRightConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.InsertRangeMoveRightCommand.id):!0},"handler")};var _=(E=>(E[E.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",E[E.UNIVER_DOC=1]="UNIVER_DOC",E[E.UNIVER_SHEET=2]="UNIVER_SHEET",E[E.UNIVER_SLIDE=3]="UNIVER_SLIDE",E[E.UNIVER_PROJECT=4]="UNIVER_PROJECT",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(_||{}),R=(E=>(E[E.View=0]="View",E[E.Edit=1]="Edit",E[E.ManageCollaborator=2]="ManageCollaborator",E[E.Print=3]="Print",E[E.Duplicate=4]="Duplicate",E[E.Comment=5]="Comment",E[E.Copy=6]="Copy",E[E.Share=7]="Share",E[E.Export=8]="Export",E[E.MoveWorksheet=9]="MoveWorksheet",E[E.DeleteWorksheet=10]="DeleteWorksheet",E[E.HideWorksheet=11]="HideWorksheet",E[E.RenameWorksheet=12]="RenameWorksheet",E[E.CreateWorksheet=13]="CreateWorksheet",E[E.SetWorksheetStyle=14]="SetWorksheetStyle",E[E.EditWorksheetCell=15]="EditWorksheetCell",E[E.InsertHyperlink=16]="InsertHyperlink",E[E.Sort=17]="Sort",E[E.Filter=18]="Filter",E[E.PivotTable=19]="PivotTable",E[E.FloatImg=20]="FloatImg",E[E.History=21]="History",E[E.RwHgtClWdt=22]="RwHgtClWdt",E[E.ViemRwHgtClWdt=23]="ViemRwHgtClWdt",E[E.ViewFilter=24]="ViewFilter",E[E.MoveSheet=25]="MoveSheet",E[E.DeleteSheet=26]="DeleteSheet",E[E.HideSheet=27]="HideSheet",E[E.CopySheet=28]="CopySheet",E[E.RenameSheet=29]="RenameSheet",E[E.CreateSheet=30]="CreateSheet",E[E.SelectProtectedCells=31]="SelectProtectedCells",E[E.SelectUnProtectedCells=32]="SelectUnProtectedCells",E[E.SetCellStyle=33]="SetCellStyle",E[E.SetCellValue=34]="SetCellValue",E[E.SetRowStyle=35]="SetRowStyle",E[E.SetColumnStyle=36]="SetColumnStyle",E[E.InsertRow=37]="InsertRow",E[E.InsertColumn=38]="InsertColumn",E[E.DeleteRow=39]="DeleteRow",E[E.DeleteColumn=40]="DeleteColumn",E[E.EditExtraObject=41]="EditExtraObject",E[E.Delete=42]="Delete",E[E.RecoverHistory=43]="RecoverHistory",E[E.ViewHistory=44]="ViewHistory",E[E.CreatePermissionObject=45]="CreatePermissionObject",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(R||{}),S=(E=>(E[E.Reader=0]="Reader",E[E.Editor=1]="Editor",E[E.Owner=2]="Owner",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(S||{}),L=(E=>(E[E.Unkonwn=0]="Unkonwn",E[E.Workbook=1]="Workbook",E[E.Worksheet=2]="Worksheet",E[E.SelectRange=3]="SelectRange",E[E.Document=4]="Document",E[E.Slide=5]="Slide",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(L||{}),M=(E=>(E[E.SomeCollaborator=0]="SomeCollaborator",E[E.AllCollaborator=1]="AllCollaborator",E[E.OneSelf=2]="OneSelf",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(M||{});const UNIVER_SHEET_PERMISSION_PANEL="UNIVER_SHEET_PERMISSION_PANEL",UNIVER_SHEET_PERMISSION_USER_PART="UNIVER_SHEET_PERMISSION_USER_PART",UNIVER_SHEET_PERMISSION_BACKGROUND="UNIVER_SHEET_PERMISSION_BACKGROUND",UNIVER_SHEET_PERMISSION_USER_DIALOG="UNIVER_SHEET_PERMISSION_USER_DIALOG",UNIVER_SHEET_PERMISSION_DIALOG="UNIVER_SHEET_PERMISSION_DIALOG",UNIVER_SHEET_PERMISSION_USER_DIALOG_ID="UNIVER_SHEET_PERMISSION_USER_DIALOG_ID",UNIVER_SHEET_PERMISSION_DIALOG_ID="UNIVER_SHEET_PERMISSION_DIALOG_ID",subUnitPermissionTypeMap={[R.Copy]:"Copy",[R.SetCellStyle]:"SetCellStyle",[R.SetCellValue]:"SetCellValue",[R.SetRowStyle]:"SetRowStyle",[R.SetColumnStyle]:"SetColumnStyle",[R.InsertRow]:"InsertRow",[R.InsertColumn]:"InsertColumn",[R.InsertHyperlink]:"InsertHyperlink",[R.DeleteRow]:"DeleteRow",[R.DeleteColumn]:"DeleteColumn",[R.Sort]:"Sort",[R.Filter]:"Filter",[R.PivotTable]:"PivotTable",[R.EditExtraObject]:"EditExtraObject"},defaultWorksheetUnitActionList=[R.Copy,R.SetCellStyle,R.SetCellValue,R.SetRowStyle,R.SetColumnStyle,R.InsertRow,R.InsertColumn,R.InsertHyperlink,R.DeleteRow,R.DeleteColumn,R.Sort,R.Filter,R.PivotTable,R.EditExtraObject,R.View],permissionMenuIconKey="sheet-permission-menu-icon",permissionDeleteIconKey="sheet-permission-delete-icon",permissionEditIconKey="sheet-permission-edit-icon",permissionCheckIconKey="sheet-permission-check-icon",permissionLockIconKey="sheet-permission-lock-icon",DEFAULT_RANGE_RULE={unitId:"",subUnitId:"",permissionId:"",unitType:sheets.UnitObject.SelectRange,id:"",ranges:[],viewState:sheets.ViewStateEnum.OthersCanView,editState:sheets.EditStateEnum.OnlyMe},_SheetPermissionPanelModel=class _SheetPermissionPanelModel{constructor(){__publicField(this,"_rule",DEFAULT_RANGE_RULE);__publicField(this,"_visible",!1)}setVisible(v){this._visible=v}getVisible(){return this._visible}reset(){this.setVisible(!1)}};__name(_SheetPermissionPanelModel,"SheetPermissionPanelModel");let SheetPermissionPanelModel=_SheetPermissionPanelModel;const _SheetPermissionUserManagerService=class _SheetPermissionUserManagerService{constructor(){__publicField(this,"_userList",[]);__publicField(this,"_oldCollaboratorList",[]);__publicField(this,"_selectUserList",[]);__publicField(this,"_selectUserList$",new rxjs.BehaviorSubject(this._selectUserList));__publicField(this,"selectUserList$",this._selectUserList$.asObservable())}get userList(){return this._userList}setCanEditUserList(userList){this._userList=userList}reset(){this._userList=[],this._oldCollaboratorList=[],this._selectUserList=[],this._selectUserList$.next([])}get oldCollaboratorList(){return this._oldCollaboratorList}setOldCollaboratorList(userList){this._oldCollaboratorList=userList}get selectUserList(){return this._selectUserList}setSelectUserList(userList){this._selectUserList=userList,this._selectUserList$.next(userList)}};__name(_SheetPermissionUserManagerService,"SheetPermissionUserManagerService");let SheetPermissionUserManagerService=_SheetPermissionUserManagerService;const SheetPermissionOpenPanelOperation={type:core.CommandType.OPERATION,id:"sheet-permission.operation.openPanel",async handler(accessor,_params={}){const sidebarService=accessor.get(ui.ISidebarService),sheetPermissionPanelModel=accessor.get(SheetPermissionPanelModel),sheetPermissionUserManagerService=accessor.get(SheetPermissionUserManagerService),{showDetail=!0,fromSheetBar=!1,rule,oldRule}=_params,sidebarProps={header:{title:"permission.panel.title"},children:{label:UNIVER_SHEET_PERMISSION_PANEL,showDetail,fromSheetBar,rule,oldRule},width:330,onClose:__name(()=>{sheetPermissionPanelModel.reset(),sheetPermissionUserManagerService.reset()},"onClose")};return sheetPermissionPanelModel.setVisible(!0),sidebarService.open(sidebarProps),!0}},AddRangeProtectionFromToolbarCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-toolbar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0}),!0}},AddRangeProtectionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-context-menu",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0}),!0}},ViewSheetPermissionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-context-menu",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!1}),!0}},AddRangeProtectionFromSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-sheet-bar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{fromSheetBar:!0,showDetail:!0}),!0}},ViewSheetPermissionFromSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-sheet-bar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!1}),!0}},DeleteRangeProtectionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-range-protection-from-context-menu",async handler(accessor){var _a61;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),undoRedoService=accessor.get(core.IUndoRedoService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId)return commandService.executeCommand(sheets.DeleteWorksheetProtectionCommand.id,{unitId,subUnitId,rule:worksheetRule});{const selectRange=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!selectRange)return!1;const rule=accessor.get(sheets.RangeProtectionRuleModel).getSubunitRuleList(unitId,subUnitId).find(item=>item.ranges.some(range=>core.Rectangle.intersects(range,selectRange)));if(rule){const redoMutationParam={unitId,subUnitId,ruleIds:[rule.id]};return await commandService.executeCommand(sheets.DeleteRangeProtectionMutation.id,redoMutationParam)&&undoRedoService.pushUndoRedo({unitID:unitId,redoMutations:[{id:sheets.DeleteRangeProtectionMutation.id,params:redoMutationParam}],undoMutations:[{id:sheets.AddRangeProtectionMutation.id,params:{unitId,subUnitId,rules:[rule]}}]}),!0}else return!1}}},SetRangeProtectionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-protection-from-context-menu",async handler(accessor){var _a61;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId){const oldRule={...worksheetRule,unitId,subUnitId,ranges:[]};return await commandService.executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0,rule:core.Tools.deepClone(oldRule),oldRule:core.Tools.deepClone(oldRule)}),!0}else{const selectRange=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!selectRange)return!1;const rule=accessor.get(sheets.RangeProtectionRuleModel).getSubunitRuleList(unitId,subUnitId).find(item=>{var _a62;return(_a62=item==null?void 0:item.ranges)==null?void 0:_a62.some(range=>core.Rectangle.intersects(range,selectRange))});if(rule){const oldRule={...rule,unitId,subUnitId};return await commandService.executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0,rule:core.Tools.deepClone(oldRule),oldRule:core.Tools.deepClone(oldRule)}),!0}else return!1}}},RemoveRowConfirmCommand={id:"sheet.command.remove-row-confirm",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a61;const selectionManagerService=accessor.get(sheets.SheetsSelectionsService);let range=params==null?void 0:params.range;if(range||(range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range),!range)return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allRowRanges=worksheet.getVisibleRows();if(isAllRowsCovered(allRowRanges,[range])){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.remove-row",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.deleteAllRowsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.RemoveRowCommand.id,{range}),!0},"handler")},RemoveColConfirmCommand={id:"sheet.command.remove-col-confirm",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a61;const selectionManagerService=accessor.get(sheets.SheetsSelectionsService);let range=params==null?void 0:params.range;if(range||(range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range),!range)return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allColumnRanges=worksheet.getVisibleCols();if(isAllColumnsCovered(allColumnRanges,[range])){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.remove-col",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.deleteAllColumnsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.RemoveColCommand.id,{range}),!0},"handler")},RemoveSheetConfirmCommand={id:"sheet.command.remove-sheet-confirm",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const{subUnitId}=params,confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.remove-sheet",title:{title:localeService.t("sheetConfig.deleteSheet")},children:{title:localeService.t("sheetConfig.deleteSheetContent")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?(await commandService.executeCommand(sheets.RemoveSheetCommand.id,{subUnitId}),!0):!1},"handler")},ISheetBarService=core.createIdentifier("univer.sheetbar-service"),_SheetBarService=class _SheetBarService extends core.Disposable{constructor(){super();__publicField(this,"renameId$");__publicField(this,"removeId$");__publicField(this,"scroll$");__publicField(this,"scrollX$");__publicField(this,"addSheet$");__publicField(this,"_renameId$");__publicField(this,"_removeId$");__publicField(this,"_scroll$");__publicField(this,"_scrollX$");__publicField(this,"_addSheet$");__publicField(this,"_currentHandler",null);this._renameId$=new rxjs.Subject,this.renameId$=this._renameId$.asObservable(),this._removeId$=new rxjs.Subject,this.removeId$=this._removeId$.asObservable(),this._scroll$=new rxjs.Subject,this.scroll$=this._scroll$.asObservable(),this._scrollX$=new rxjs.Subject,this.scrollX$=this._scrollX$.asObservable(),this._addSheet$=new rxjs.Subject,this.addSheet$=this._addSheet$.asObservable()}setRenameId(renameId){this._renameId$.next(renameId)}setRemoveId(removeId){this._removeId$.next(removeId)}setScroll(state){this._scroll$.next(state)}setScrollX(x){this._scrollX$.next(x)}setAddSheet(index){this._addSheet$.next(index)}triggerSheetBarMenu(){var _a61;(_a61=this._currentHandler)==null||_a61.handleSheetBarMenu()}registerSheetBarMenuHandler(handler){if(this._currentHandler)throw new Error("There is already a context menu handler!");return this._currentHandler=handler,core.toDisposable(()=>{this._currentHandler=null})}};__name(_SheetBarService,"SheetBarService");let SheetBarService=_SheetBarService;const ShowMenuListCommand={id:"ui-sheet.command.show-menu-list",type:core.CommandType.OPERATION,handler:__name(async accessor=>(accessor.get(ISheetBarService).triggerSheetBarMenu(),!0),"handler")},DeleteWorksheetProtectionFormSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-worksheet-protection-from-sheet-bar",async handler(accessor,params){if(!params)return!1;const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(_.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet(),unitId=workbook.getUnitId();if(!worksheet)return!1;const subUnitId=worksheet.getSheetId(),rule=worksheetProtectionRuleModel.getRule(unitId,subUnitId);if(await commandService.executeCommand(sheets.DeleteWorksheetProtectionCommand.id,{unitId,subUnitId})){const redoMutations=[{id:sheets.DeleteWorksheetProtectionCommand.id,params:{unitId,subUnitId}}],undoMutations=[{id:sheets.AddWorksheetProtectionCommand.id,params:{unitId,rule}}];undoRedoService.pushUndoRedo({unitID:unitId,redoMutations,undoMutations})}return!0}},ChangeSheetProtectionFromSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.change-sheet-protection-from-sheet-bar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand("sheet-permission.operation.openDialog"),!0}},SetActivateCellEditOperation={id:"sheet.operation.set-activate-cell-edit",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>(accessor.get(IEditorBridgeService).setEditCell(params),!0),"handler")},RenameSheetOperation={id:"sheet.operation.rename-sheet",type:core.CommandType.OPERATION,handler:__name(async(accessor,params)=>{const sheetBarService=accessor.get(ISheetBarService);return params&&sheetBarService.setRenameId(params.subUnitId),!0},"handler")},SheetPermissionOpenDialogOperation={type:core.CommandType.OPERATION,id:"sheet-permission.operation.openDialog",async handler(accessor,_params){const dialogService=accessor.get(ui.IDialogService);return dialogService.close("DESKTOP_FIND_REPLACE_DIALOG"),dialogService.open({id:UNIVER_SHEET_PERMISSION_DIALOG_ID,title:{title:"permission.dialog.allowedPermissionType"},children:{label:UNIVER_SHEET_PERMISSION_DIALOG},width:393,destroyOnClose:!0,onClose:__name(()=>dialogService.close(UNIVER_SHEET_PERMISSION_DIALOG_ID),"onClose")}),!0}},DEFINED_NAME_CONTAINER="DefinedNameContainer",SidebarDefinedNameOperation={id:"sidebar.operation.defined-name",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const sidebarService=accessor.get(ui.ISidebarService);accessor.get(docsUi.IEditorService);const localeService=accessor.get(core.LocaleService),univerInstanceService=accessor.get(core.IUniverInstanceService);if(!sheets.getSheetCommandTarget(univerInstanceService))return!1;switch(params.value){case"open":sidebarService.open({id:DEFINED_NAME_CONTAINER,header:{title:localeService.t("definedName.featureTitle")},children:{label:DEFINED_NAME_CONTAINER},onClose:__name(()=>{},"onClose"),width:333});break;case"close":default:sidebarService.close();break}return!0},"handler")},BorderDashDot=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M0.98999 1.08218H-0.0100098V0.0821838H0.98999V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M5.78992 1.08218H2.78992V0.0821838H5.78992V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M7.58984 1.08218H8.58984V0.0821838H7.58984V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M14.9152 1.08218H13.9152V0.0821838H14.9152V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M16.7151 1.08218H19.7151V0.0821838H16.7151V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M22.515 1.08218H21.515V0.0821838H22.515V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M27.8405 1.08218H28.8405V0.0821838H27.8405V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M33.6404 1.08218H30.6404V0.0821838H33.6404V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M35.4403 1.08218H36.4403V0.0821838H35.4403V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M42.7657 1.08218H41.7657V0.0821838H42.7657V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M44.5657 1.08218H47.5657V0.0821838H44.5657V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M50.3656 1.08218H49.3656V0.0821838H50.3656V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M55.691 1.08218H56.691V0.0821838H55.691V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M61.491 1.08218H58.491V0.0821838H61.491V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M63.2909 1.08218H64.2909V0.0821838H63.2909V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M70.6163 1.08218H69.6163V0.0821838H70.6163V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M72.4163 1.08218H75.4163V0.0821838H72.4163V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M78.2162 1.08218H77.2162V0.0821838H78.2162V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M83.5416 1.08218H84.5416V0.0821838H83.5416V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M89.3416 1.08218H86.3416V0.0821838H89.3416V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M91.1415 1.08218H92.1415V0.0821838H91.1415V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M98.4669 1.08218H97.4669V0.0821838H98.4669V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M100.267 1.08218H103.267V0.0821838H100.267V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M106.067 1.08218H105.067V0.0821838H106.067V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M111.392 1.08218H112.392V0.0821838H111.392V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.192 1.08218H114.192V0.0821838H117.192V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M118.992 1.08218H119.992V0.0821838H118.992V1.08218Z",fill:"black"})]}),"BorderDashDot"),BorderDashDotDot=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.0100098 1.15771H0.98999V0.157715H-0.0100098V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M2.78992 1.15771H5.78992V0.157715H2.78992V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M8.58984 1.15771H7.58984V0.157715H8.58984V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M10.3899 1.15771H11.3899V0.157715H10.3899V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M19.0903 1.15771H18.0903V0.157715H19.0903V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M20.8903 1.15771H23.8903V0.157715H20.8903V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M26.6902 1.15771H25.6902V0.157715H26.6902V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M28.4902 1.15771H29.4902V0.157715H28.4902V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M37.1907 1.15771H36.1907V0.157715H37.1907V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M38.9906 1.15771H41.9906V0.157715H38.9906V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M44.7905 1.15771H43.7905V0.157715H44.7905V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M46.5906 1.15771H47.5906V0.157715H46.5906V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M55.291 1.15771H54.291V0.157715H55.291V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M57.0909 1.15771H60.0909V0.157715H57.0909V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M62.8909 1.15771H61.8909V0.157715H62.8909V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M64.6909 1.15771H65.6909V0.157715H64.6909V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M73.3914 1.15771H72.3914V0.157715H73.3914V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M75.1913 1.15771H78.1913V0.157715H75.1913V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M80.9912 1.15771H79.9912V0.157715H80.9912V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M82.7913 1.15771H83.7913V0.157715H82.7913V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M91.4917 1.15771H90.4917V0.157715H91.4917V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M93.2916 1.15771H96.2916V0.157715H93.2916V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M99.0916 1.15771H98.0916V0.157715H99.0916V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M100.892 1.15771H101.892V0.157715H100.892V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M109.592 1.15771H108.592V0.157715H109.592V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M111.392 1.15771H114.392V0.157715H111.392V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.192 1.15771H116.192V0.157715H117.192V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M118.992 1.15771H119.992V0.157715H118.992V1.15771Z",fill:"black"})]}),"BorderDashDotDot"),BorderDashed=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.00842285 1.22449H2.99158V0.224487H-0.00842285V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M6.14941 1.22449H9.14941V0.224487H6.14941V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M15.3073 1.22449H12.3073V0.224487H15.3073V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M18.4651 1.22449H21.4651V0.224487H18.4651V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M27.6229 1.22449H24.6229V0.224487H27.6229V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M30.7808 1.22449H33.7808V0.224487H30.7808V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M39.9386 1.22449H36.9386V0.224487H39.9386V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M43.0964 1.22449H46.0964V0.224487H43.0964V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M52.2543 1.22449H49.2543V0.224487H52.2543V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M55.4121 1.22449H58.4121V0.224487H55.4121V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M64.5699 1.22449H61.5699V0.224487H64.5699V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M67.7278 1.22449H70.7278V0.224487H67.7278V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M76.8856 1.22449H73.8856V0.224487H76.8856V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M80.0435 1.22449H83.0435V0.224487H80.0435V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M89.2013 1.22449H86.2013V0.224487H89.2013V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M92.3591 1.22449H95.3591V0.224487H92.3591V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M101.517 1.22449H98.517V0.224487H101.517V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M104.675 1.22449H107.675V0.224487H104.675V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M113.833 1.22449H110.833V0.224487H113.833V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M116.99 1.22449H119.99V0.224487H116.99V1.22449Z",fill:"black"})]}),"BorderDashed"),BorderHair=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.00976562 1.65707H0.990234V0.657074H-0.00976562V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M2.32361 1.65707H3.32361V0.657074H2.32361V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M5.65698 1.65707H4.65698V0.657074H5.65698V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M6.99036 1.65707H7.99036V0.657074H6.99036V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M10.3237 1.65707H9.32373V0.657074H10.3237V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M11.6571 1.65707H12.6571V0.657074H11.6571V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M14.9905 1.65707H13.9905V0.657074H14.9905V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M16.3239 1.65707H17.3239V0.657074H16.3239V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M19.6572 1.65707H18.6572V0.657074H19.6572V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M20.9906 1.65707H21.9906V0.657074H20.9906V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M24.324 1.65707H23.324V0.657074H24.324V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M25.6573 1.65707H26.6573V0.657074H25.6573V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M28.9907 1.65707H27.9907V0.657074H28.9907V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M30.3241 1.65707H31.3241V0.657074H30.3241V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M33.6575 1.65707H32.6575V0.657074H33.6575V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M34.9908 1.65707H35.9908V0.657074H34.9908V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M38.3242 1.65707H37.3242V0.657074H38.3242V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M39.6576 1.65707H40.6576V0.657074H39.6576V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M42.991 1.65707H41.991V0.657074H42.991V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M44.3243 1.65707H45.3243V0.657074H44.3243V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M47.6577 1.65707H46.6577V0.657074H47.6577V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M48.9911 1.65707H49.9911V0.657074H48.9911V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M52.3245 1.65707H51.3245V0.657074H52.3245V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M53.6578 1.65707H54.6578V0.657074H53.6578V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M56.9912 1.65707H55.9912V0.657074H56.9912V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M58.3246 1.65707H59.3246V0.657074H58.3246V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M61.658 1.65707H60.658V0.657074H61.658V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M62.9913 1.65707H63.9913V0.657074H62.9913V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M66.3247 1.65707H65.3247V0.657074H66.3247V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M67.6581 1.65707H68.6581V0.657074H67.6581V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M70.9915 1.65707H69.9915V0.657074H70.9915V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M72.3248 1.65707H73.3248V0.657074H72.3248V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M75.6582 1.65707H74.6582V0.657074H75.6582V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M76.9916 1.65707H77.9916V0.657074H76.9916V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M80.325 1.65707H79.325V0.657074H80.325V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M81.6583 1.65707H82.6583V0.657074H81.6583V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M84.9917 1.65707H83.9917V0.657074H84.9917V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M86.3251 1.65707H87.3251V0.657074H86.3251V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M89.6584 1.65707H88.6584V0.657074H89.6584V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M90.9918 1.65707H91.9918V0.657074H90.9918V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M94.3252 1.65707H93.3252V0.657074H94.3252V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M95.6586 1.65707H96.6586V0.657074H95.6586V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M98.9919 1.65707H97.9919V0.657074H98.9919V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M100.325 1.65707H101.325V0.657074H100.325V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M103.659 1.65707H102.659V0.657074H103.659V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M104.992 1.65707H105.992V0.657074H104.992V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M108.325 1.65707H107.325V0.657074H108.325V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M109.659 1.65707H110.659V0.657074H109.659V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M112.992 1.65707H111.992V0.657074H112.992V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M114.325 1.65707H115.325V0.657074H114.325V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.659 1.65707H116.659V0.657074H117.659V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M118.992 1.65707H119.992V0.657074H118.992V1.65707Z",fill:"black"})]}),"BorderHair"),BorderMedium=__name(()=>jsxRuntime.jsx("svg",{width:"120",height:"3",viewBox:"0 0 120 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 2.42035H-0.0090332V0.420349H119.991V2.42035Z",fill:"black"})}),"BorderMedium"),BorderMediumDashDot=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"3",viewBox:"0 0 120 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.0100098 2.47614H1.98999V0.476135H-0.0100098V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M3.99014 2.47614H9.99014V0.476135H3.99014V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M13.9901 2.47614H11.9901V0.476135H13.9901V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M21.1904 2.47614H23.1904V0.476135H21.1904V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M31.1906 2.47614H25.1906V0.476135H31.1906V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M33.1906 2.47614H35.1906V0.476135H33.1906V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M44.3909 2.47614H42.3909V0.476135H44.3909V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M46.391 2.47614H52.391V0.476135H46.391V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M56.391 2.47614H54.391V0.476135H56.391V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M63.5913 2.47614H65.5913V0.476135H63.5913V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M73.5915 2.47614H67.5915V0.476135H73.5915V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M75.5915 2.47614H77.5915V0.476135H75.5915V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M86.7917 2.47614H84.7917V0.476135H86.7917V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M88.7919 2.47614H94.7919V0.476135H88.7919V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M98.7919 2.47614H96.7919V0.476135H98.7919V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M105.992 2.47614H107.992V0.476135H105.992V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M115.992 2.47614H109.992V0.476135H115.992V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.992 2.47614H119.992V0.476135H117.992V2.47614Z",fill:"black"})]}),"BorderMediumDashDot"),BorderMediumDashDotDot=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.0100098 2.00415H1.98999V0.00415039H-0.0100098V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M3.99014 2.00415H9.99014V0.00415039H3.99014V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M13.9901 2.00415H11.9901V0.00415039H13.9901V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M15.9901 2.00415H17.9901V0.00415039H15.9901V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M27.4905 2.00415H25.4905V0.00415039H27.4905V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M29.4906 2.00415H35.4906V0.00415039H29.4906V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M39.4906 2.00415H37.4906V0.00415039H39.4906V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M41.4906 2.00415H43.4906V0.00415039H41.4906V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M52.991 2.00415H50.991V0.00415039H52.991V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M54.9911 2.00415H60.9911V0.00415039H54.9911V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M64.9911 2.00415H62.9911V0.00415039H64.9911V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M66.9911 2.00415H68.9911V0.00415039H66.9911V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M78.4915 2.00415H76.4915V0.00415039H78.4915V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M80.4916 2.00415H86.4916V0.00415039H80.4916V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M90.4916 2.00415H88.4916V0.00415039H90.4916V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M92.4916 2.00415H94.4916V0.00415039H92.4916V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M103.992 2.00415H101.992V0.00415039H103.992V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M105.992 2.00415H111.992V0.00415039H105.992V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M115.992 2.00415H113.992V0.00415039H115.992V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.992 2.00415H119.992V0.00415039H117.992V2.00415Z",fill:"black"})]}),"BorderMediumDashDotDot"),BorderMediumDashed=__name(()=>jsxRuntime.jsxs("svg",{width:"118",height:"3",viewBox:"0 0 118 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.00854492 2.94815H1.99146V0.948151H-0.00854492V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M6.09668 2.94815H8.09668V0.948151H6.09668V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M14.2019 2.94815H12.2019V0.948151H14.2019V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M18.3071 2.94815H20.3071V0.948151H18.3071V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M26.4124 2.94815H24.4124V0.948151H26.4124V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M30.5176 2.94815H32.5176V0.948151H30.5176V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M38.6228 2.94815H36.6228V0.948151H38.6228V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M42.728 2.94815H44.728V0.948151H42.728V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M50.8333 2.94815H48.8333V0.948151H50.8333V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M54.9385 2.94815H56.9385V0.948151H54.9385V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M63.0437 2.94815H61.0437V0.948151H63.0437V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M67.1489 2.94815H69.1489V0.948151H67.1489V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M75.2542 2.94815H73.2542V0.948151H75.2542V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M79.3594 2.94815H81.3594V0.948151H79.3594V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M87.4645 2.94815H85.4645V0.948151H87.4645V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M91.5697 2.94815H93.5697V0.948151H91.5697V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M99.6749 2.94815H97.6749V0.948151H99.6749V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M103.78 2.94815H105.78V0.948151H103.78V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M111.885 2.94815H109.885V0.948151H111.885V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M115.991 2.94815H117.991V0.948151H115.991V2.94815Z",fill:"black"})]}),"BorderMediumDashed"),BorderThick=__name(()=>jsxRuntime.jsx("svg",{width:"120",height:"4",viewBox:"0 0 120 4",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 3.86215H-0.0090332V0.862152H119.991V3.86215Z",fill:"black"})}),"BorderThick"),BorderThin=__name(()=>jsxRuntime.jsx("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 1.15668H-0.0090332V0.156677H119.991V1.15668Z",fill:"black"})}),"BorderThin");function BorderLine(props){const{type=core.BorderStyleTypes.THIN}=props;switch(type){case core.BorderStyleTypes.DASH_DOT:return jsxRuntime.jsx(BorderDashDot,{});case core.BorderStyleTypes.DASH_DOT_DOT:return jsxRuntime.jsx(BorderDashDotDot,{});case core.BorderStyleTypes.DASHED:return jsxRuntime.jsx(BorderDashed,{});case core.BorderStyleTypes.HAIR:return jsxRuntime.jsx(BorderHair,{});case core.BorderStyleTypes.MEDIUM:return jsxRuntime.jsx(BorderMedium,{});case core.BorderStyleTypes.MEDIUM_DASH_DOT:return jsxRuntime.jsx(BorderMediumDashDot,{});case core.BorderStyleTypes.MEDIUM_DASH_DOT_DOT:return jsxRuntime.jsx(BorderMediumDashDotDot,{});case core.BorderStyleTypes.MEDIUM_DASHED:return jsxRuntime.jsx(BorderMediumDashed,{});case core.BorderStyleTypes.THICK:return jsxRuntime.jsx(BorderThick,{});case core.BorderStyleTypes.THIN:return jsxRuntime.jsx(BorderThin,{});default:return jsxRuntime.jsx(BorderThin,{})}}__name(BorderLine,"BorderLine");const uiPluginSheetsBorderPanel="univer-ui-plugin-sheets-border-panel",uiPluginSheetsBorderPanelPosition="univer-ui-plugin-sheets-border-panel-position",uiPluginSheetsBorderPanelPositionItem="univer-ui-plugin-sheets-border-panel-position-item",uiPluginSheetsBorderPanelPositionItemActive="univer-ui-plugin-sheets-border-panel-position-item-active",uiPluginSheetsBorderPanelStyles="univer-ui-plugin-sheets-border-panel-styles",uiPluginSheetsBorderPanelBoard="univer-ui-plugin-sheets-border-panel-board",uiPluginSheetsBorderPanelButton="univer-ui-plugin-sheets-border-panel-button",uiPluginSheetsBorderPanelMoreIcon="univer-ui-plugin-sheets-border-panel-more-icon",styles$j={uiPluginSheetsBorderPanel,uiPluginSheetsBorderPanelPosition,uiPluginSheetsBorderPanelPositionItem,uiPluginSheetsBorderPanelPositionItemActive,uiPluginSheetsBorderPanelStyles,uiPluginSheetsBorderPanelBoard,uiPluginSheetsBorderPanelButton,uiPluginSheetsBorderPanelMoreIcon},BORDER_PANEL_COMPONENT=`${COMPONENT_PREFIX}_BORDER_PANEL_COMPONENT`,BORDER_LINE_CHILDREN=[{label:"borderLine.borderTop",icon:"UpBorder",value:"top"},{label:"borderLine.borderBottom",icon:"DownBorder",value:"bottom"},{label:"borderLine.borderLeft",icon:"LeftBorder",value:"left"},{label:"borderLine.borderRight",icon:"RightBorder",value:"right"},{label:"borderLine.borderNone",icon:"NoBorderSingle",value:"none"},{label:"borderLine.borderAll",icon:"AllBorderSingle",value:"all"},{label:"borderLine.borderOutside",icon:"OuterBorder",value:"outside"},{label:"borderLine.borderInside",icon:"InnerBorder",value:"inside"},{label:"borderLine.borderHorizontal",icon:"HorizontalBorder",value:"horizontal"},{label:"borderLine.borderVertical",icon:"VerticalBorder",value:"vertical"},{label:"borderLine.borderTlbr",icon:"BackSlashSingle",value:"tlbr"},{label:"borderLine.borderTlbcTlmr",icon:"LeftDoubleDiagonalSingle",value:"tlbc_tlmr"},{label:"borderLine.borderTlbrTlbcTlmr",icon:"LeftTridiagonalSingle",value:"tlbr_tlbc_tlmr"},{label:"borderLine.borderBlTr",icon:"SlashSingle",value:"bltr"},{label:"borderLine.borderMltrBctr",icon:"RightDoubleDiagonalSingle",value:"mltr_bctr"}],BORDER_SIZE_CHILDREN=[{label:core.BorderStyleTypes.THIN,value:core.BorderStyleTypes.THIN},{label:core.BorderStyleTypes.HAIR,value:core.BorderStyleTypes.HAIR},{label:core.BorderStyleTypes.DOTTED,value:core.BorderStyleTypes.DOTTED},{label:core.BorderStyleTypes.DASHED,value:core.BorderStyleTypes.DASHED},{label:core.BorderStyleTypes.DASH_DOT,value:core.BorderStyleTypes.DASH_DOT},{label:core.BorderStyleTypes.DASH_DOT_DOT,value:core.BorderStyleTypes.DASH_DOT_DOT},{label:core.BorderStyleTypes.MEDIUM,value:core.BorderStyleTypes.MEDIUM},{label:core.BorderStyleTypes.MEDIUM_DASHED,value:core.BorderStyleTypes.MEDIUM_DASHED},{label:core.BorderStyleTypes.MEDIUM_DASH_DOT,value:core.BorderStyleTypes.MEDIUM_DASH_DOT},{label:core.BorderStyleTypes.MEDIUM_DASH_DOT_DOT,value:core.BorderStyleTypes.MEDIUM_DASH_DOT_DOT},{label:core.BorderStyleTypes.THICK,value:core.BorderStyleTypes.THICK}];function BorderPanel(props){var _a61;const componentManager=core.useDependency(ui.ComponentManager),borderStyleManagerService=core.useDependency(sheets.BorderStyleManagerService),{onChange,value}=props;function handleClick(v,type){onChange==null||onChange({...value,[type]:v})}__name(handleClick,"handleClick");function renderIcon(icon){const Icon=componentManager.get(icon);return Icon&&jsxRuntime.jsx(Icon,{extend:{colorChannel1:"rgb(var(--primary-color))"}})}__name(renderIcon,"renderIcon");function stopPropagation(e){e.stopPropagation()}return __name(stopPropagation,"stopPropagation"),jsxRuntime.jsxs("section",{className:styles$j.uiPluginSheetsBorderPanel,children:[jsxRuntime.jsx("div",{className:styles$j.uiPluginSheetsBorderPanelPosition,children:BORDER_LINE_CHILDREN.map(item=>jsxRuntime.jsx("div",{className:borderStyleManagerService.getBorderInfo().type===item.value?`
12
+ `)}),plain}__name(getMatrixPlainText,"getMatrixPlainText");function getCellTextForClipboard(cell){return core.isNotNullOrUndefined(cell.displayV)?cell.displayV:core.extractPureTextFromCell(cell)}__name(getCellTextForClipboard,"getCellTextForClipboard");function rowAcrossMergedCell(row,startColumn,endColumn,worksheet){return worksheet.getMergeData().some(mergedCell=>mergedCell.startRow<=row&&row<mergedCell.endRow&&startColumn<=mergedCell.startColumn&&mergedCell.startColumn<=endColumn)}__name(rowAcrossMergedCell,"rowAcrossMergedCell");function columnAcrossMergedCell(col,startRow,endRow,worksheet){return worksheet.getMergeData().some(mergedCell=>mergedCell.startColumn<=col&&col<mergedCell.endColumn&&startRow<=mergedCell.startRow&&mergedCell.startRow<=endRow)}__name(columnAcrossMergedCell,"columnAcrossMergedCell");function isMultipleCells(cellMatrix){let count=0;return cellMatrix.forValue((row,col,cell)=>{if(cell&&count++,count>1)return!1}),count>1}__name(isMultipleCells,"isMultipleCells");function getEmptyCell(){return{p:null,v:null,s:null,f:null,si:null,t:null}}__name(getEmptyCell,"getEmptyCell");const SHEET_CLIPBOARD_PRIORITY=998,SheetCopyCommand={id:ui.CopyCommand.id,name:"sheet.command.copy",type:core.CommandType.COMMAND,multi:!0,priority:SHEET_CLIPBOARD_PRIORITY,preconditions:whenSheetFocused,handler:__name(async accessor=>accessor.get(ISheetClipboardService).copy(),"handler")},SheetCutCommand={id:ui.CutCommand.id,name:"sheet.command.cut",type:core.CommandType.COMMAND,multi:!0,priority:SHEET_CLIPBOARD_PRIORITY,preconditions:whenSheetFocused,handler:__name(async accessor=>accessor.get(ISheetClipboardService).cut(),"handler")},SheetPasteCommand={id:ui.PasteCommand.id,type:core.CommandType.COMMAND,multi:!0,name:"sheet.command.paste",priority:SHEET_CLIPBOARD_PRIORITY,preconditions:whenSheetFocused,handler:__name(async(accessor,params)=>{const clipboardItems=await accessor.get(ui.IClipboardInterfaceService).read(),sheetClipboardService=accessor.get(ISheetClipboardService);return clipboardItems.length!==0?sheetClipboardService.paste(clipboardItems[0],params==null?void 0:params.value):!1},"handler")},SheetPasteShortKeyCommand={id:ui.SheetPasteShortKeyCommandName,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const clipboardService=accessor.get(ISheetClipboardService),{htmlContent,textContent,files}=params;return clipboardService.legacyPaste(htmlContent,textContent,files),!0},"handler")},SheetPasteValueCommand={id:"sheet.command.paste-value",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE}),"handler")},SheetPasteFormatCommand={id:"sheet.command.paste-format",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT}),"handler")},SheetPasteColWidthCommand={id:"sheet.command.paste-col-width",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH}),"handler")},SheetPasteBesidesBorderCommand={id:"sheet.command.paste-besides-border",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_BESIDES_BORDER}),"handler")},SheetOptionalPasteCommand={id:"sheet.command.optional-paste",type:core.CommandType.COMMAND,handler:__name(async(accessor,{type})=>accessor.get(ISheetClipboardService).rePasteWithPasteType(type),"handler")},HideRowConfirmCommand={id:"sheet.command.hide-row-confirm",type:core.CommandType.COMMAND,handler:__name(async accessor=>{var _a61;const ranges=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range);if(!(ranges!=null&&ranges.length))return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allRowRanges=worksheet.getVisibleRows();if(isAllRowsCovered(allRowRanges,ranges)){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.hide-row",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.hideAllRowsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.SetRowHiddenCommand.id),!0},"handler")},HideColConfirmCommand={id:"sheet.command.hide-col-confirm",type:core.CommandType.COMMAND,handler:__name(async accessor=>{var _a61;const ranges=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range);if(!(ranges!=null&&ranges.length))return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allColumnRanges=worksheet.getVisibleCols();if(isAllColumnsCovered(allColumnRanges,ranges)){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.hide-col",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.hideAllColumnsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.SetColHiddenCommand.id),!0},"handler")},SetRangeBoldCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-bold",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatBoldCommand.id):commandService.executeCommand(sheets.SetBoldCommand.id)},"handler")},SetRangeItalicCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-italic",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatItalicCommand.id):commandService.executeCommand(sheets.SetItalicCommand.id)},"handler")},SetRangeUnderlineCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-underline",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatUnderlineCommand.id):commandService.executeCommand(sheets.SetUnderlineCommand.id)},"handler")},SetRangeStrickThroughCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-stroke",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatStrikethroughCommand.id):commandService.executeCommand(sheets.SetStrikeThroughCommand.id)},"handler")},SetRangeSubscriptCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-subscript",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatSubscriptCommand.id):!1},"handler")},SetRangeSuperscriptCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-superscript",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatSuperscriptCommand.id):!1},"handler")},SetRangeFontSizeCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-fontsize",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatFontSizeCommand.id,params):commandService.executeCommand(sheets.SetFontSizeCommand.id,params)},"handler")},SetRangeFontFamilyCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-font-family",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatFontFamilyCommand.id,params):commandService.executeCommand(sheets.SetFontFamilyCommand.id,params)},"handler")},SetRangeTextColorCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-text-color",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatTextColorCommand.id,params):commandService.executeCommand(sheets.SetTextColorCommand.id,params)},"handler")},ResetRangeTextColorCommand={type:core.CommandType.COMMAND,id:"sheet.command.reset-range-text-color",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService),isCellEditorFocus=accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED),themeService=accessor.get(core.ThemeService);return isCellEditorFocus?commandService.executeCommand(docsUi.SetInlineFormatTextColorCommand.id,{value:null}):commandService.executeCommand(sheets.SetTextColorCommand.id,{value:themeService.getCurrentTheme().textColor})},"handler")};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"),FormatPainterStatus=(FormatPainterStatus2=>(FormatPainterStatus2[FormatPainterStatus2.OFF=0]="OFF",FormatPainterStatus2[FormatPainterStatus2.ONCE=1]="ONCE",FormatPainterStatus2[FormatPainterStatus2.INFINITE=2]="INFINITE",FormatPainterStatus2))(FormatPainterStatus||{});const IFormatPainterService=core.createIdentifier("univer.format-painter-service");var _a16;let FormatPainterService=(_a16=class extends core.Disposable{constructor(_selectionManagerService,_themeService,_markSelectionService,_logService,_commandService,_undoRedoService){super();__publicField(this,"status$");__publicField(this,"_selectionFormat");__publicField(this,"_markId",null);__publicField(this,"_status$");__publicField(this,"_defaultHook",null);__publicField(this,"_extendHooks",[]);this._selectionManagerService=_selectionManagerService,this._themeService=_themeService,this._markSelectionService=_markSelectionService,this._logService=_logService,this._commandService=_commandService,this._undoRedoService=_undoRedoService,this._status$=new rxjs.BehaviorSubject(0),this.status$=this._status$.asObservable(),this._selectionFormat={styles:new core.ObjectMatrix,merges:[]}}addHook(hook){var _a61,_b,_c;hook.isDefaultHook&&((_a61=hook.priority)!=null?_a61:0)>((_c=(_b=this._defaultHook)==null?void 0:_b.priority)!=null?_c:-1)?this._defaultHook=hook:(this._extendHooks.push(hook),this._extendHooks.sort((a,b)=>(a.priority||0)-(b.priority||0)))}getHooks(){return this._defaultHook?[this._defaultHook,...this._extendHooks]:this._extendHooks}setStatus(status){this._updateRangeMark(status),this._status$.next(status),this.getHooks().forEach(hook=>{hook.onStatusChange!==void 0&&hook.onStatusChange(status)})}getStatus(){return this._status$.getValue()}setSelectionFormat(format){this._selectionFormat=format}getSelectionFormat(){return this._selectionFormat}applyFormatPainter(unitId,subUnitId,range){const hooks=this.getHooks(),redoMutationsInfo=[],undoMutationsInfo=[];hooks.forEach(h=>{if(h.onApply!==void 0){const applyReturn=h.onApply(unitId,subUnitId,range,this._selectionFormat);applyReturn&&(redoMutationsInfo.push(...applyReturn.redos),undoMutationsInfo.push(...applyReturn.undos))}});for(const beforeHook of hooks)if(beforeHook.onBeforeApply!==void 0&&!beforeHook.onBeforeApply({unitId,subUnitId,range,redoMutationsInfo,format:this._selectionFormat,undoMutationsInfo}))return!1;this._logService.log("[FormatPainterService]","apply mutations",{undoMutationsInfo,redoMutationsInfo});const result=redoMutationsInfo.every(m=>this._commandService.executeCommand(m.id,m.params));return result&&this._undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:undoMutationsInfo,redoMutations:redoMutationsInfo}),result}_updateRangeMark(status){if(this._markSelectionService.removeAllShapes(),status!==0){const selection=this._selectionManagerService.getCurrentLastSelection();if(selection){const style=createCopyPasteSelectionStyle(this._themeService);status===2?this._markId=this._markSelectionService.addShape({...selection,style}):this._markId=this._markSelectionService.addShape({...selection,style},[sheets.SetRangeValuesMutation.id])}}}},__name(_a16,"FormatPainterService"),_a16);FormatPainterService=__decorateClass$G([__decorateParam$G(0,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$G(1,core.Inject(core.ThemeService)),__decorateParam$G(2,IMarkSelectionService),__decorateParam$G(3,core.ILogService),__decorateParam$G(4,core.ICommandService),__decorateParam$G(5,core.IUndoRedoService)],FormatPainterService);const SetFormatPainterOperation={id:"sheet.operation.set-format-painter",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>params?(accessor.get(IFormatPainterService).setStatus(params.status),!0):!1,"handler")},SetInfiniteFormatPainterCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-infinite-format-painter",handler:__name(async accessor=>{const status=accessor.get(IFormatPainterService).getStatus();let newStatus;return status!==FormatPainterStatus.OFF?newStatus=FormatPainterStatus.OFF:newStatus=FormatPainterStatus.INFINITE,accessor.get(core.ICommandService).executeCommand(SetFormatPainterOperation.id,{status:newStatus})},"handler")},SetOnceFormatPainterCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-once-format-painter",handler:__name(async accessor=>{const status=accessor.get(IFormatPainterService).getStatus();let newStatus;return status!==FormatPainterStatus.OFF?newStatus=FormatPainterStatus.OFF:newStatus=FormatPainterStatus.ONCE,accessor.get(core.ICommandService).executeCommand(SetFormatPainterOperation.id,{status:newStatus})},"handler")},ApplyFormatPainterCommand={type:core.CommandType.COMMAND,id:"sheet.command.apply-format-painter",handler:__name(async(accessor,params)=>accessor.get(IFormatPainterService).applyFormatPainter(params.unitId,params.subUnitId,params.range),"handler")},SetSelectionFrozenCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-selection-frozen",handler:__name(async(accessor,params)=>{const{type}=params||{},univerInstanceService=accessor.get(core.IUniverInstanceService),undoRedoService=accessor.get(core.IUndoRedoService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{unitId,subUnitId}=target,commandService=accessor.get(core.ICommandService),selections=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections();if(!selections)return!1;const currentSelection=selections[(selections==null?void 0:selections.length)-1],{range}=currentSelection,scrollManagerService=accessor.get(engineRender.IRenderManagerService).getRenderById(unitId).with(exports.SheetScrollManagerService),{sheetViewStartRow=0,sheetViewStartColumn=0}=scrollManagerService.getCurrentScrollState()||{};let startRow,startColumn,freezedRowCount,freezedColCount;const{startRow:selectRow,startColumn:selectColumn,rangeType}=range;if(rangeType===core.RANGE_TYPE.ROW||type===1)startRow=selectRow,freezedRowCount=selectRow-sheetViewStartRow,startColumn=-1,freezedColCount=0;else if(rangeType===core.RANGE_TYPE.COLUMN||type===2)startRow=-1,freezedRowCount=0,startColumn=selectColumn,freezedColCount=selectColumn-sheetViewStartColumn;else if(rangeType===core.RANGE_TYPE.NORMAL)startRow=selectRow,freezedRowCount=selectRow-sheetViewStartRow,startColumn=selectColumn,freezedColCount=selectColumn-sheetViewStartColumn;else return!1;const redoMutationParams={unitId,subUnitId,startRow,startColumn,xSplit:startColumn>0?Math.max(1,freezedColCount):freezedColCount,ySplit:startRow>0?Math.max(1,freezedRowCount):freezedRowCount},undoMutationParams=sheets.SetFrozenMutationFactory(accessor,redoMutationParams);return commandService.syncExecuteCommand(sheets.SetFrozenMutation.id,redoMutationParams)&&undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:[{id:sheets.SetFrozenMutation.id,params:undoMutationParams}],redoMutations:[{id:sheets.SetFrozenMutation.id,params:redoMutationParams}]}),!0},"handler")},SetRowFrozenCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-row-frozen",handler:__name(async accessor=>(accessor.get(core.ICommandService).executeCommand(SetSelectionFrozenCommand.id,{type:1}),!0),"handler")},SetColumnFrozenCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-col-frozen",handler:__name(async accessor=>(accessor.get(core.ICommandService).executeCommand(SetSelectionFrozenCommand.id,{type:2}),!0),"handler")};var __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 createAutoColWidthUndoMutationsByRedos=__name((params,worksheet)=>{const{unitId,subUnitId,ranges}=params,colWidthObj={},manager=worksheet.getColumnManager();for(let i=0;i<ranges.length;i++){const range=ranges[i];for(let j=range.startColumn;j<range.endColumn+1;j++){const col=manager.getColumnOrCreate(j);colWidthObj[j]=col.w}}return{unitId,subUnitId,ranges,colWidth:colWidthObj}},"createAutoColWidthUndoMutationsByRedos");var _a17;exports.AutoWidthController=(_a17=class extends core.Disposable{constructor(_renderManagerService,_univerInstanceService){super(),this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService}getUndoRedoParamsOfColWidth(params){const defaultValue={redos:[],undos:[]},{_univerInstanceService:univerInstanceService}=this,target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return defaultValue;const{unitId,subUnitId,worksheet}=target,sheetSkeletonService=this._renderManagerService.getRenderById(unitId).with(exports.SheetSkeletonManagerService);if(!sheetSkeletonService.getCurrent())return defaultValue;const{skeleton}=sheetSkeletonService.getCurrent(),colsAutoWidthInfo=skeleton.calculateAutoWidthInRange(params.ranges),colWidthObject={};for(const{col,width}of colsAutoWidthInfo)colWidthObject[col]=width;const redoParams={subUnitId,unitId,ranges:params.ranges,colWidth:colWidthObject},undoParams=createAutoColWidthUndoMutationsByRedos(redoParams,worksheet);return{undos:[{id:sheets.SetWorksheetColWidthMutation.id,params:undoParams}],redos:[{id:sheets.SetWorksheetColWidthMutation.id,params:redoParams}]}}},__name(_a17,"AutoWidthController"),_a17);exports.AutoWidthController=__decorateClass$F([__decorateParam$F(0,engineRender.IRenderManagerService),__decorateParam$F(1,core.Inject(core.IUniverInstanceService))],exports.AutoWidthController);const SetWorksheetColAutoWidthCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-col-auto-width",handler:__name((accessor,params)=>{const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService,params);if(!target)return!1;const{unitId,subUnitId}=target;let ranges=[];if(params!=null&&params.ranges)ranges=[...params.ranges];else{const selections=selectionManagerService.getCurrentSelections();for(let i=0;i<selections.length;i++)ranges.push(selections[i].range)}if(!(ranges!=null&&ranges.length))return!1;const redoMutationParams={unitId,subUnitId,ranges},{redos,undos}=accessor.get(exports.AutoWidthController).getUndoRedoParamsOfColWidth(redoMutationParams);return core.sequenceExecute([...redos],commandService).result?(undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:[...undos],redoMutations:[...redos]}),!0):!1},"handler")},COMPONENT_PREFIX="UI_PLUGIN_SHEETS",COLOR_PICKER_COMPONENT=`${COMPONENT_PREFIX}_COLOR_PICKER_COMPONENT`,FONT_FAMILY_COMPONENT=`${COMPONENT_PREFIX}_FONT_FAMILY_COMPONENT`,FONT_FAMILY_ITEM_COMPONENT=`${COMPONENT_PREFIX}_FONT_FAMILY_ITEM_COMPONENT`,FONT_SIZE_COMPONENT=`${COMPONENT_PREFIX}_FONT_SIZE_COMPONENT`,MENU_ITEM_INPUT_COMPONENT=`${COMPONENT_PREFIX}_MENU_ITEM_INPUT_COMPONENT`,sheetsUiContextMenuInput="univer-sheets-ui-context-menu-input",sheetsUiContextMenuInputContainer="univer-sheets-ui-context-menu-input-container",sheetsUiContextMenuInputNumber="univer-sheets-ui-context-menu-input-number",styles$k={sheetsUiContextMenuInput,sheetsUiContextMenuInputContainer,sheetsUiContextMenuInputNumber},MenuItemInput=__name(props=>{const{prefix,suffix,value,onChange,min=Number.MIN_SAFE_INTEGER,max=Number.MAX_SAFE_INTEGER}=props,localeService=core.useDependency(core.LocaleService),contextMenuService=core.useDependency(ui.IContextMenuService),[inputValue,setInputValue]=React.useState(),handleChange=__name(value2=>{var _a61;setInputValue(value2==null?void 0:value2.toString()),onChange((_a61=value2==null?void 0:value2.toString())!=null?_a61:"")},"handleChange");React.useEffect(()=>{contextMenuService.visible||setInputValue(value)},[contextMenuService.visible]),React.useEffect(()=>{setInputValue(value)},[value]);function handleKeyDown(e){e.key==="Backspace"&&e.stopPropagation()}return __name(handleKeyDown,"handleKeyDown"),jsxRuntime.jsxs("div",{className:styles$k.sheetsUiContextMenuInput,children:[localeService.t(prefix),jsxRuntime.jsx("span",{className:styles$k.sheetsUiContextMenuInputContainer,onClick:__name(e=>e.stopPropagation(),"onClick"),children:jsxRuntime.jsx(design.InputNumber,{className:styles$k.sheetsUiContextMenuInputNumber,value:Number(inputValue),precision:0,onKeyDown:handleKeyDown,onChange:handleChange,min,max})}),localeService.t(suffix)]})},"MenuItemInput");function getActiveSheet$(univerInstanceService){return univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.switchMap(workbook=>workbook?workbook.activeSheet$.pipe(rxjs.map(worksheet=>worksheet?{workbook,worksheet}:null)):rxjs.of(null)))}__name(getActiveSheet$,"getActiveSheet$");function deriveStateFromActiveSheet$(univerInstanceService,defaultValue,callback){return getActiveSheet$(univerInstanceService).pipe(rxjs.switchMap(active=>active?callback(active):rxjs.of(defaultValue)))}__name(deriveStateFromActiveSheet$,"deriveStateFromActiveSheet$");function getCurrentExclusiveRangeInterest$(accessor,disableGroupSet){const univerInstanceService=accessor.get(core.IUniverInstanceService),exclusiveRangeService=accessor.get(sheets.IExclusiveRangeService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService);return univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.switchMap(workbook=>workbook?rxjs.combineLatest([selectionManagerService.selectionMoveEnd$,workbook.activeSheet$]).pipe(rxjs.switchMap(([selections,worksheet])=>{if(!worksheet||selections.length===0)return rxjs.of(!1);const interestGroupIds=exclusiveRangeService.getInterestGroupId(selections);if(disableGroupSet){const disableGroup=interestGroupIds.filter(groupId=>disableGroupSet.has(groupId));return rxjs.of(disableGroup.length>0)}else return rxjs.of(interestGroupIds.length>0)})):rxjs.of(!1)))}__name(getCurrentExclusiveRangeInterest$,"getCurrentExclusiveRangeInterest$");function getObservableWithExclusiveRange$(accessor,observable$,disableGroupSet){return rxjs.combineLatest([observable$,getCurrentExclusiveRangeInterest$(accessor,disableGroupSet)]).pipe(rxjs.map(([observable,exclusiveRangeDisable])=>observable||exclusiveRangeDisable))}__name(getObservableWithExclusiveRange$,"getObservableWithExclusiveRange$");function getCurrentRangeDisable$(accessor,permissionTypes={},supportCellEdit=!1){var _a61;const workbook$=accessor.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService),editorBridgeService=accessor.has(IEditorBridgeService)?accessor.get(IEditorBridgeService):null,formulaEditorFocus$=accessor.get(core.IContextService).subscribeContextValue$(core.FOCUSING_FX_BAR_EDITOR),editorVisible$=(_a61=editorBridgeService==null?void 0:editorBridgeService.visible$)!=null?_a61:rxjs.of(null);return rxjs.combineLatest([userManagerService.currentUser$,workbook$,editorVisible$,formulaEditorFocus$]).pipe(rxjs.switchMap(([_2,workbook,visible,formulaEditorFocus])=>!workbook||visible!=null&&visible.visible&&visible.unitId===workbook.getUnitId()&&!supportCellEdit||formulaEditorFocus&&!supportCellEdit?rxjs.of(!0):workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{if(!worksheet)return rxjs.of(!0);const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),focusedOnDrawing$=accessor.get(core.IContextService).subscribeContextValue$(core.FOCUSING_COMMON_DRAWINGS).pipe(rxjs.startWith(!1));return rxjs.combineLatest([selectionManagerService.selectionMoveEnd$,focusedOnDrawing$]).pipe(rxjs.switchMap(([selection,focusOnDrawings])=>{if(focusOnDrawings)return rxjs.of(!0);const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionService=accessor.get(core.IPermissionService),{workbookTypes=[sheets.WorkbookEditablePermission],worksheetTypes,rangeTypes}=permissionTypes,permissionIds=[];if(workbookTypes==null||workbookTypes.forEach(F=>{permissionIds.push(new F(unitId).id)}),worksheetTypes==null||worksheetTypes.forEach(F=>{permissionIds.push(new F(unitId,subUnitId).id)}),worksheetRuleModel.getRule(unitId,subUnitId))return permissionService.composePermission$(permissionIds).pipe(rxjs.map(list=>list.some(item=>item.value===!1)));const selectionRanges=selection==null?void 0:selection.map(selection2=>selection2.range),rules=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>selectionRanges==null?void 0:selectionRanges.some(range=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(range,ruleRange))));return rangeTypes==null||rangeTypes.forEach(F=>{rules.forEach(rule=>{permissionIds.push(new F(unitId,subUnitId,rule.permissionId).id)})}),permissionService.composePermission$(permissionIds).pipe(rxjs.map(list=>list.some(item=>item.value===!1)))}))}))))}__name(getCurrentRangeDisable$,"getCurrentRangeDisable$");function getBaseRangeMenuHidden$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id];return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(range,ruleRange))).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getBaseRangeMenuHidden$,"getBaseRangeMenuHidden$");function getInsertAfterMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id];return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>type==="row"?rule.ranges.some(ruleRange=>range.endRow>ruleRange.startRow&&range.endRow<=ruleRange.endRow):rule.ranges.some(ruleRange=>range.endColumn>ruleRange.startColumn&&range.endColumn<=ruleRange.endColumn)).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getInsertAfterMenuHidden$,"getInsertAfterMenuHidden$");function getInsertBeforeMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id];return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>type==="row"?rule.ranges.some(ruleRange=>range.startRow>ruleRange.startRow&&range.startRow<=ruleRange.endRow):rule.ranges.some(ruleRange=>range.startColumn>ruleRange.startColumn&&range.startColumn<=ruleRange.endColumn)).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getInsertBeforeMenuHidden$,"getInsertBeforeMenuHidden$");function getDeleteMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id],rowColRangeExpand=core.Tools.deepClone(range);return type==="row"?(rowColRangeExpand.startColumn=0,rowColRangeExpand.endColumn=worksheet.getColumnCount()-1):(rowColRangeExpand.startRow=0,rowColRangeExpand.endRow=worksheet.getRowCount()-1),rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(rowColRangeExpand,ruleRange))).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getDeleteMenuHidden$,"getDeleteMenuHidden$");function getCellMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id],rowColRangeExpand=core.Tools.deepClone(range);return type==="row"?rowColRangeExpand.endRow=worksheet.getRowCount()-1:rowColRangeExpand.endColumn=worksheet.getColumnCount()-1,rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(rowColRangeExpand,ruleRange))).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getCellMenuHidden$,"getCellMenuHidden$");function getWorkbookPermissionDisable$(accessor,workbookPermissionTypes){const workbook$=accessor.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),selectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([userManagerService.currentUser$,workbook$]).pipe(rxjs.switchMap(([_user,workbook])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(activeSheet=>{if(!activeSheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),workbookPermissionIds=[];return workbookPermissionTypes.forEach(F=>workbookPermissionIds.push(new F(unitId).id)),permissionService.composePermission$(workbookPermissionIds).pipe(rxjs.map(list=>list.every(item=>item.value===!0))).pipe(rxjs.map(basePermission=>{if(!basePermission)return!0;const subUnitId=activeSheet.getSheetId(),worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId),rangeRuleList=selectionRuleModel.getSubunitRuleList(unitId,subUnitId);return!!(worksheetRule||rangeRuleList.length)}))})):rxjs.of(!0)))}__name(getWorkbookPermissionDisable$,"getWorkbookPermissionDisable$");var SheetMenuPosition=(SheetMenuPosition2=>(SheetMenuPosition2.ROW_HEADER_CONTEXT_MENU="ROW_HEADER_CONTEXT_MENU",SheetMenuPosition2.COL_HEADER_CONTEXT_MENU="COL_HEADER_CONTEXT_MENU",SheetMenuPosition2.SHEET_BAR="SHEET_BAR",SheetMenuPosition2.SHEET_FOOTER="SHEET_FOOTER",SheetMenuPosition2))(SheetMenuPosition||{});function FormatPainterMenuItemFactory(accessor){const formatPainterService=accessor.get(IFormatPainterService);return{id:SetOnceFormatPainterCommand.id,subId:SetInfiniteFormatPainterCommand.id,type:ui.MenuItemType.BUTTON,icon:"BrushSingle",title:"Format Painter",tooltip:"toolbar.formatPainter",activated$:new rxjs.Observable(subscriber=>{let active=!1;const status$=formatPainterService.status$.subscribe(s=>{active=s!==FormatPainterStatus.OFF,subscriber.next(active)});return subscriber.next(active),()=>{status$.unsubscribe()}}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetCopyPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0)}}__name(FormatPainterMenuItemFactory,"FormatPainterMenuItemFactory");function BoldMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),contextService=accessor.get(core.IContextService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService);return{id:SetRangeBoldCommand.id,type:ui.MenuItemType.BUTTON,icon:"BoldSingle",title:"Set bold",tooltip:"toolbar.bold",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let isBold2=core.FontWeight.NORMAL;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);isBold2=range==null?void 0:range.getFontWeight()}subscriber.next(isBold2===core.FontWeight.BOLD)}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const bl=(_b=textRun.ts)==null?void 0:_b.bl;subscriber.next(bl===core.BooleanNumber.TRUE)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;if(!worksheet){subscriber.next(!1);return}let isBold=core.FontWeight.NORMAL;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);isBold=range==null?void 0:range.getFontWeight()}return subscriber.next(isBold===core.FontWeight.BOLD),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(BoldMenuItemFactory,"BoldMenuItemFactory");function ItalicMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService);return{id:SetRangeItalicCommand.id,type:ui.MenuItemType.BUTTON,icon:"ItalicSingle",title:"Set italic",tooltip:"toolbar.italic",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let isItalic2=core.FontItalic.NORMAL;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);isItalic2=range==null?void 0:range.getFontStyle()}subscriber.next(isItalic2===core.FontItalic.ITALIC)}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const it=(_b=textRun.ts)==null?void 0:_b.it;subscriber.next(it===core.BooleanNumber.TRUE)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let isItalic=core.FontItalic.NORMAL;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);isItalic=range==null?void 0:range.getFontStyle()}return subscriber.next(isItalic===core.FontItalic.ITALIC),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ItalicMenuItemFactory,"ItalicMenuItemFactory");function UnderlineMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService);return{id:SetRangeUnderlineCommand.id,type:ui.MenuItemType.BUTTON,icon:"UnderlineSingle",title:"Set underline",tooltip:"toolbar.underline",activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let isUnderline2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);isUnderline2=range==null?void 0:range.getUnderline()}subscriber.next(!!(isUnderline2&&isUnderline2.s))}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const ul=(_b=textRun.ts)==null?void 0:_b.ul;subscriber.next((ul==null?void 0:ul.s)===core.BooleanNumber.TRUE)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let isUnderline;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);isUnderline=range==null?void 0:range.getUnderline()}return subscriber.next(!!(isUnderline&&isUnderline.s)),disposable.dispose})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(UnderlineMenuItemFactory,"UnderlineMenuItemFactory");function StrikeThroughMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService);return{id:SetRangeStrickThroughCommand.id,type:ui.MenuItemType.BUTTON,icon:"StrikethroughSingle",title:"Set strike through",tooltip:"toolbar.strikethrough",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let st2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);st2=range==null?void 0:range.getStrikeThrough()}subscriber.next(!!(st2&&st2.s))}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const st2=(_b=textRun.ts)==null?void 0:_b.st;subscriber.next((st2==null?void 0:st2.s)===core.BooleanNumber.TRUE)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let st;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);st=range==null?void 0:range.getStrikeThrough()}return subscriber.next(!!(st&&st.s)),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(StrikeThroughMenuItemFactory,"StrikeThroughMenuItemFactory");function FontFamilySelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=core.DEFAULT_STYLES.ff;return{id:SetRangeFontFamilyCommand.id,tooltip:"toolbar.font",type:ui.MenuItemType.SELECTOR,label:FONT_FAMILY_COMPONENT,selections:ui.FONT_FAMILY_LIST.map(item=>({label:{name:FONT_FAMILY_ITEM_COMPONENT,hoverable:!0},value:item.value})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62;const id=c.id;if(id!==sheets.SetRangeValuesMutation.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let ff2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);ff2=range==null?void 0:range.getFontFamily()}subscriber.next(ff2!=null?ff2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let ff;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);ff=range==null?void 0:range.getFontFamily()}return subscriber.next(ff!=null?ff:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FontFamilySelectorMenuItemFactory,"FontFamilySelectorMenuItemFactory");function FontSizeSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService),defaultValue=core.DEFAULT_STYLES.fs,disabled$=getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0);return{id:SetRangeFontSizeCommand.id,type:ui.MenuItemType.SELECTOR,tooltip:"toolbar.fontSize",label:{name:FONT_SIZE_COMPONENT,props:{min:1,max:400,disabled$}},selections:ui.FONT_SIZE_LIST,disabled$,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let fs2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);fs2=range==null?void 0:range.getFontSize()}subscriber.next(fs2!=null?fs2:defaultValue)}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const fs2=(_b=textRun.ts)==null?void 0:_b.fs;subscriber.next(fs2!=null?fs2:defaultValue)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let fs;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);fs=range==null?void 0:range.getFontSize()}return subscriber.next(fs!=null?fs:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FontSizeSelectorMenuItemFactory,"FontSizeSelectorMenuItemFactory");function ResetTextColorMenuItemFactory(accessor){return{id:ResetRangeTextColorCommand.id,type:ui.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ResetTextColorMenuItemFactory,"ResetTextColorMenuItemFactory");function TextColorSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),themeService=accessor.get(core.ThemeService);return{id:SetRangeTextColorCommand.id,icon:"FontColor",tooltip:"toolbar.textColor.main",type:ui.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:COLOR_PICKER_COMPONENT,hoverable:!1}}],value$:new rxjs.Observable(subscriber=>{const defaultValue=themeService.getCurrentTheme().textColor,disposable=commandService.onCommandExecuted(c=>{if(c.id===SetRangeTextColorCommand.id){const color=c.params.value;subscriber.next(color!=null?color:defaultValue)}});return subscriber.next(defaultValue),disposable.dispose}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0)}}__name(TextColorSelectorMenuItemFactory,"TextColorSelectorMenuItemFactory");function ResetBackgroundColorMenuItemFactory(accessor){return{id:sheets.ResetBackgroundColorCommand.id,type:ui.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(ResetBackgroundColorMenuItemFactory,"ResetBackgroundColorMenuItemFactory");function BackgroundColorSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),themeService=accessor.get(core.ThemeService);return{id:sheets.SetBackgroundColorCommand.id,tooltip:"toolbar.fillColor.main",type:ui.MenuItemType.BUTTON_SELECTOR,icon:"PaintBucket",selections:[{label:{name:COLOR_PICKER_COMPONENT,hoverable:!1}}],value$:new rxjs.Observable(subscriber=>{const defaultValue=themeService.getCurrentTheme().primaryColor,disposable=commandService.onCommandExecuted(c=>{if(c.id===sheets.SetBackgroundColorCommand.id){const color=c.params.value;subscriber.next(color!=null?color:defaultValue)}});return subscriber.next(defaultValue),disposable.dispose}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(BackgroundColorSelectorMenuItemFactory,"BackgroundColorSelectorMenuItemFactory");const HORIZONTAL_ALIGN_CHILDREN=[{label:"align.left",icon:"LeftJustifyingSingle",value:core.HorizontalAlign.LEFT},{label:"align.center",icon:"HorizontallySingle",value:core.HorizontalAlign.CENTER},{label:"align.right",icon:"RightJustifyingSingle",value:core.HorizontalAlign.RIGHT}];function HorizontalAlignMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=core.HorizontalAlign.LEFT;return{id:sheets.SetHorizontalTextAlignCommand.id,icon:HORIZONTAL_ALIGN_CHILDREN[0].icon,tooltip:"toolbar.horizontalAlignMode.main",type:ui.MenuItemType.SELECTOR,selections:HORIZONTAL_ALIGN_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a62;const id=c.id;if(id!==sheets.SetHorizontalTextAlignCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let ha2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);ha2=range==null?void 0:range.getHorizontalAlignment()}subscriber.next(ha2!=null?ha2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let ha;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);ha=range==null?void 0:range.getHorizontalAlignment()}return subscriber.next(ha!=null?ha:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(HorizontalAlignMenuItemFactory,"HorizontalAlignMenuItemFactory");const VERTICAL_ALIGN_CHILDREN=[{label:"align.top",icon:"AlignTopSingle",value:core.VerticalAlign.TOP},{label:"align.middle",icon:"VerticalCenterSingle",value:core.VerticalAlign.MIDDLE},{label:"align.bottom",icon:"AlignBottomSingle",value:core.VerticalAlign.BOTTOM}];function VerticalAlignMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=core.VerticalAlign.BOTTOM;return{id:sheets.SetVerticalTextAlignCommand.id,icon:VERTICAL_ALIGN_CHILDREN[2].icon,tooltip:"toolbar.verticalAlignMode.main",type:ui.MenuItemType.SELECTOR,selections:VERTICAL_ALIGN_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a62;const id=c.id;if(id!==sheets.SetVerticalTextAlignCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let va2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);va2=range==null?void 0:range.getVerticalAlignment()}subscriber.next(va2!=null?va2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let va;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);va=range==null?void 0:range.getVerticalAlignment()}return subscriber.next(va!=null?va:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(VerticalAlignMenuItemFactory,"VerticalAlignMenuItemFactory");const TEXT_WRAP_CHILDREN=[{label:"textWrap.overflow",icon:"OverflowSingle",value:core.WrapStrategy.OVERFLOW},{label:"textWrap.wrap",icon:"AutowrapSingle",value:core.WrapStrategy.WRAP},{label:"textWrap.clip",icon:"TruncationSingle",value:core.WrapStrategy.CLIP}];function WrapTextMenuItemFactory(accessor){const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),defaultValue=core.WrapStrategy.OVERFLOW;return{id:sheets.SetTextWrapCommand.id,tooltip:"toolbar.textWrapMode.main",icon:TEXT_WRAP_CHILDREN[0].icon,type:ui.MenuItemType.SELECTOR,selections:TEXT_WRAP_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a62;const id=c.id;if(id!==sheets.SetTextWrapCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let ws2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);ws2=range==null?void 0:range.getWrapStrategy()}subscriber.next(ws2!=null?ws2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let ws;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);ws=range==null?void 0:range.getWrapStrategy()}return subscriber.next(ws!=null?ws:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(WrapTextMenuItemFactory,"WrapTextMenuItemFactory");const TEXT_ROTATE_CHILDREN=[{label:"textRotate.none",icon:"NoRotationSingle",value:0},{label:"textRotate.angleUp",icon:"LeftRotationFortyFiveDegreesSingle",value:-45},{label:"textRotate.angleDown",icon:"RightRotationFortyFiveDegreesSingle",value:45},{label:"textRotate.vertical",icon:"VerticalTextSingle",value:"v"},{label:"textRotate.rotationUp",icon:"LeftRotationNinetyDegreesSingle",value:-90},{label:"textRotate.rotationDown",icon:"RightRotationNinetyDegreesSingle",value:90}];function TextRotateMenuItemFactory(accessor){const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),defaultValue=0;return{id:sheets.SetTextRotationCommand.id,tooltip:"toolbar.textRotateMode.main",icon:TEXT_ROTATE_CHILDREN[0].icon,type:ui.MenuItemType.SELECTOR,selections:TEXT_ROTATE_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61,_b;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a62,_b2;const id=c.id;if(id!==sheets.SetTextRotationCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let tr2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);tr2=range==null?void 0:range.getTextRotation()}(tr2==null?void 0:tr2.v)===core.BooleanNumber.TRUE?subscriber.next("v"):subscriber.next((_b2=tr2&&tr2.a)!=null?_b2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let tr;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);tr=range==null?void 0:range.getTextRotation()}return(tr==null?void 0:tr.v)===core.BooleanNumber.TRUE?subscriber.next("v"):subscriber.next((_b=tr&&tr.a)!=null?_b:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(TextRotateMenuItemFactory,"TextRotateMenuItemFactory");function menuClipboardDisabledObservable(injector){return new rxjs.Observable(subscriber=>subscriber.next(!injector.get(ui.IClipboardInterfaceService).supportClipboard))}__name(menuClipboardDisabledObservable,"menuClipboardDisabledObservable");function CopyMenuItemFactory(accessor){return{id:SheetCopyCommand.name,commandId:SheetCopyCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.copy",icon:"Copy",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookCopyPermission],worksheetTypes:[sheets.WorksheetCopyPermission],rangeTypes:[sheets.RangeProtectionPermissionViewPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CopyMenuItemFactory,"CopyMenuItemFactory");function PasteMenuItemFactory(accessor){return{id:SheetPasteCommand.name,commandId:SheetPasteCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.paste",icon:"PasteSpecial",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission,sheets.WorksheetSetCellValuePermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteMenuItemFactory,"PasteMenuItemFactory");const PASTE_SPECIAL_MENU_ID="sheet.menu.paste-special";function PasteSpacialMenuItemFactory(accessor){return{id:PASTE_SPECIAL_MENU_ID,type:ui.MenuItemType.SUBITEMS,icon:"PasteSpecial",title:"rightClick.pasteSpecial",hidden$:getObservableWithExclusiveRange$(accessor,ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET))}}__name(PasteSpacialMenuItemFactory,"PasteSpacialMenuItemFactory");function PasteValueMenuItemFactory(accessor){return{id:SheetPasteValueCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteValue",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteValueMenuItemFactory,"PasteValueMenuItemFactory");function PasteFormatMenuItemFactory(accessor){return{id:SheetPasteFormatCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteFormat",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteFormatMenuItemFactory,"PasteFormatMenuItemFactory");function PasteColWidthMenuItemFactory(accessor){return{id:SheetPasteColWidthCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteColWidth",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetColumnStylePermission,sheets.WorksheetEditPermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2))}}__name(PasteColWidthMenuItemFactory,"PasteColWidthMenuItemFactory");function PasteBesidesBorderMenuItemFactory(accessor){return{id:SheetPasteBesidesBorderCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteBesidesBorder",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission,sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetRowStylePermission,sheets.WorksheetSetColumnStylePermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteBesidesBorderMenuItemFactory,"PasteBesidesBorderMenuItemFactory");function FitContentMenuItemFactory(accessor){return{id:sheets.SetWorksheetRowIsAutoHeightCommand.id,type:ui.MenuItemType.BUTTON,icon:"AutoHeight",title:"rightClick.fitContent",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetRowStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FitContentMenuItemFactory,"FitContentMenuItemFactory");function ColAutoWidthMenuItemFactory(accessor){return{id:SetWorksheetColAutoWidthCommand.id,type:ui.MenuItemType.BUTTON,icon:"AutoWidth",title:"rightClick.fitContent",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetRowStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ColAutoWidthMenuItemFactory,"ColAutoWidthMenuItemFactory");const SHEET_FROZEN_MENU_ID="sheet.menu.sheet-frozen";function SheetFrozenMenuItemFactory(accessor){return{id:SHEET_FROZEN_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(SheetFrozenMenuItemFactory,"SheetFrozenMenuItemFactory");const SHEET_FROZEN_HEADER_MENU_ID="sheet.header-menu.sheet-frozen";function SheetFrozenHeaderMenuItemFactory(accessor){return{id:SHEET_FROZEN_HEADER_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(SheetFrozenHeaderMenuItemFactory,"SheetFrozenHeaderMenuItemFactory");function FrozenMenuItemFactory(accessor){return{id:SetSelectionFrozenCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FrozenMenuItemFactory,"FrozenMenuItemFactory");function FrozenRowMenuItemFactory(accessor){return{id:SetRowFrozenCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.freezeRow",icon:"FreezeRowSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FrozenRowMenuItemFactory,"FrozenRowMenuItemFactory");function FrozenColMenuItemFactory(accessor){return{id:SetColumnFrozenCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.freezeCol",icon:"FreezeColumnSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FrozenColMenuItemFactory,"FrozenColMenuItemFactory");function CancelFrozenMenuItemFactory(accessor){return{id:sheets.CancelFrozenCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.cancelFreeze",icon:"CancelFreezeSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CancelFrozenMenuItemFactory,"CancelFrozenMenuItemFactory");function HideRowMenuItemFactory(accessor){return{id:HideRowConfirmCommand.id,type:ui.MenuItemType.BUTTON,icon:"Hide",title:"rightClick.hideSelectedRow",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetRowStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(HideRowMenuItemFactory,"HideRowMenuItemFactory");function HideColMenuItemFactory(accessor){return{id:HideColConfirmCommand.id,type:ui.MenuItemType.BUTTON,icon:"Hide",title:"rightClick.hideSelectedColumn",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetColumnStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(HideColMenuItemFactory,"HideColMenuItemFactory");function ShowRowMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),commandService=accessor.get(core.ICommandService),affectedCommands=[sheets.SetSelectionsOperation,sheets.SetRowHiddenMutation,sheets.SetRowVisibleMutation].map(c=>c.id);return{id:sheets.SetSelectedRowsVisibleCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.showHideRow",hidden$:deriveStateFromActiveSheet$(univerInstanceService,!0,({worksheet})=>new rxjs.Observable(subscriber=>{function hasHiddenRowsInSelections(){var _a61;const rowRanges=(_a61=selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(s=>s.range).filter(r2=>r2.rangeType===core.RANGE_TYPE.ROW);return!!(rowRanges!=null&&rowRanges.some(range=>{for(let r2=range.startRow;r2<=range.endRow;r2++)if(!worksheet.getRowRawVisible(r2))return!0;return!1}))}__name(hasHiddenRowsInSelections,"hasHiddenRowsInSelections");const disposable=commandService.onCommandExecuted(command=>{affectedCommands.findIndex(c=>c===command.id)!==-1&&subscriber.next(!hasHiddenRowsInSelections())});return subscriber.next(!hasHiddenRowsInSelections()),()=>disposable.dispose()})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetRowStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(ShowRowMenuItemFactory,"ShowRowMenuItemFactory");function ShowColMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),commandService=accessor.get(core.ICommandService),affectedCommands=[sheets.SetSelectionsOperation,sheets.SetColHiddenMutation,sheets.SetColVisibleMutation].map(c=>c.id);return{id:sheets.SetSelectedColsVisibleCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.showHideColumn",hidden$:deriveStateFromActiveSheet$(univerInstanceService,!0,({worksheet})=>new rxjs.Observable(subscriber=>{function hasHiddenColsInSelections(){var _a61;const colRanges=(_a61=selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(s=>s.range).filter(r2=>r2.rangeType===core.RANGE_TYPE.COLUMN);return!colRanges||colRanges.length===0?!1:!!colRanges.some(range=>{for(let r2=range.startColumn;r2<=range.endColumn;r2++)if(!worksheet.getColVisible(r2))return!0;return!1})}__name(hasHiddenColsInSelections,"hasHiddenColsInSelections");const disposable=commandService.onCommandExecuted(commandInfo=>{affectedCommands.findIndex(c=>c===commandInfo.id)!==-1&&subscriber.next(!hasHiddenColsInSelections())});return subscriber.next(!hasHiddenColsInSelections()),()=>disposable.dispose()})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetColumnStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(ShowColMenuItemFactory,"ShowColMenuItemFactory");function SetRowHeightMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=0;return{id:sheets.SetRowHeightCommand.id,type:ui.MenuItemType.BUTTON,icon:"AdjustHeight",label:{name:MENU_ITEM_INPUT_COMPONENT,props:{prefix:"rightClick.rowHeight",suffix:"px",min:2,max:1e3}},value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{function update(){var _a61;const primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary,rowHeight=primary?worksheet.getRowHeight(primary.startRow):defaultValue;subscriber.next(rowHeight)}__name(update,"update");const disposable=commandService.onCommandExecuted(c=>{const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetRowIsAutoHeightMutation.id)return update()});return update(),disposable.dispose})),hidden$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetRowStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(SetRowHeightMenuItemFactory,"SetRowHeightMenuItemFactory");function SetColWidthMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=0;return{id:sheets.SetColWidthCommand.id,type:ui.MenuItemType.BUTTON,icon:"AdjustWidth",label:{name:MENU_ITEM_INPUT_COMPONENT,props:{prefix:"rightClick.columnWidth",suffix:"px",min:2,max:1e3}},value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{function update(){var _a61;const primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let colWidth=defaultValue;primary!=null&&(colWidth=worksheet.getColumnWidth(primary.startColumn)),subscriber.next(colWidth)}__name(update,"update");const disposable=commandService.onCommandExecuted(c=>{const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetColWidthMutation.id)return update()});return update(),disposable.dispose})),hidden$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetColumnStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(SetColWidthMenuItemFactory,"SetColWidthMenuItemFactory");function getFontStyleAtCursor(accessor){var _a61;const univerInstanceService=accessor.get(core.IUniverInstanceService),textSelectionService=accessor.get(docs.DocSelectionManagerService),editorDataModel=univerInstanceService.getUniverDocInstance(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),activeTextRange=textSelectionService.getActiveTextRange();if(editorDataModel==null||activeTextRange==null)return null;const textRuns=(_a61=editorDataModel.getBody())==null?void 0:_a61.textRuns;if(textRuns==null)return;const{startOffset}=activeTextRange;return textRuns.find(({st,ed})=>startOffset>=st&&startOffset<=ed)}__name(getFontStyleAtCursor,"getFontStyleAtCursor");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 FREEZE_ROW_MAIN_NAME="__SpreadsheetFreezeRowMainName__",FREEZE_ROW_HEADER_NAME="__SpreadsheetFreezeRowHeaderName__",FREEZE_COLUMN_MAIN_NAME="__SpreadsheetFreezeColumnMainName__",FREEZE_COLUMN_HEADER_NAME="__SpreadsheetFreezeColumnHeaderName__",FREEZE_SIZE_NORMAL=2,AUXILIARY_CLICK_HIDDEN_OBJECT_TRANSPARENCY=.01,FREEZE_PERMISSION_CHECK=core.createInterceptorKey("freezePermissionCheck");var _a18;exports.HeaderFreezeRenderController=(_a18=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_commandService,_selectionManagerService,_scrollManagerService,_themeService,_sheetInterceptorService,_injector){super();__publicField(this,"_rowFreezeHeaderRect");__publicField(this,"_rowFreezeMainRect");__publicField(this,"_columnFreezeHeaderRect");__publicField(this,"_columnFreezeMainRect");__publicField(this,"_freezeDownSubs");__publicField(this,"_freezePointerEnterSubs");__publicField(this,"_freezePointerLeaveSubs");__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_changeToRow",-1);__publicField(this,"_changeToColumn",-1);__publicField(this,"_changeToOffsetX",0);__publicField(this,"_changeToOffsetY",0);__publicField(this,"_activeViewport",null);__publicField(this,"_freezeNormalHeaderColor","");__publicField(this,"_freezeNormalMainColor","");__publicField(this,"_freezeActiveColor","");__publicField(this,"_freezeHoverColor","");__publicField(this,"_lastFreeze");__publicField(this,"interceptor",new core.InterceptorManager({FREEZE_PERMISSION_CHECK}));this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._selectionManagerService=_selectionManagerService,this._scrollManagerService=_scrollManagerService,this._themeService=_themeService,this._sheetInterceptorService=_sheetInterceptorService,this._injector=_injector,this._initialize()}dispose(){super.dispose()}_initialize(){this._skeletonListener(),this._commandExecutedListener(),this._themeChangeListener(),this._interceptorCommands(),this._bindViewportScroll(),this._zoomRefresh()}_createFreeze(freezeDirectionType=0,freezeConfig){var _a61;const config=freezeConfig!=null?freezeConfig:this._getFreeze();if(config==null)return null;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton,{startRow:freezeRow,startColumn:freezeColumn}=config,position=this._getPositionByIndex(freezeRow,freezeColumn);if(position==null||skeleton==null)return null;const sheetObject=this._getSheetObject(),engine=sheetObject.engine,canvasMaxWidth=(engine==null?void 0:engine.width)||0,canvasMaxHeight=(engine==null?void 0:engine.height)||0,scene=sheetObject.scene,{startX,startY}=position,{rowTotalHeight,columnTotalWidth,rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton,shapeWidth=canvasMaxWidth>columnTotalWidth+rowHeaderWidthAndMarginLeft?canvasMaxWidth:columnTotalWidth+columnHeaderHeightAndMarginTop,shapeHeight=canvasMaxHeight>rowTotalHeight+columnHeaderHeightAndMarginTop?canvasMaxHeight:rowTotalHeight+columnHeaderHeightAndMarginTop;this._changeToRow=freezeRow,this._changeToColumn=freezeColumn,this._changeToOffsetX=startX,this._changeToOffsetY=startY;const scale=Math.max(scene.scaleX,scene.scaleY);let FREEZE_SIZE=FREEZE_SIZE_NORMAL/(scale<1?1:scale);if(freezeDirectionType===0){(freezeRow===-1||freezeRow===0)&&(FREEZE_SIZE=FREEZE_SIZE*2);const FREEZE_OFFSET=FREEZE_SIZE;this._rowFreezeHeaderRect=new engineRender.Rect(FREEZE_ROW_HEADER_NAME,{fill:this._freezeNormalHeaderColor,width:rowHeaderWidthAndMarginLeft,height:FREEZE_SIZE,left:0,top:startY-FREEZE_OFFSET,zIndex:3});let fill=this._freezeNormalHeaderColor;(freezeRow===-1||freezeRow===0)&&(fill=this._freezeNormalMainColor),this._rowFreezeMainRect=new engineRender.Rect(FREEZE_ROW_MAIN_NAME,{fill,width:shapeWidth*2/scale,height:FREEZE_SIZE,left:rowHeaderWidthAndMarginLeft,top:startY-FREEZE_OFFSET,zIndex:3}),scene.addObjects([this._rowFreezeHeaderRect,this._rowFreezeMainRect],SHEET_COMPONENT_HEADER_LAYER_INDEX)}else{(freezeColumn===-1||freezeColumn===0)&&(FREEZE_SIZE=FREEZE_SIZE*2);const FREEZE_OFFSET=FREEZE_SIZE;this._columnFreezeHeaderRect=new engineRender.Rect(FREEZE_COLUMN_HEADER_NAME,{fill:this._freezeNormalHeaderColor,width:FREEZE_SIZE,height:columnHeaderHeightAndMarginTop,left:startX-FREEZE_OFFSET,top:0,zIndex:3});let fill=this._freezeNormalHeaderColor;(freezeColumn===-1||freezeColumn===0)&&(fill=this._freezeNormalMainColor),this._columnFreezeMainRect=new engineRender.Rect(FREEZE_COLUMN_MAIN_NAME,{fill,width:FREEZE_SIZE,height:shapeHeight*2/scale,left:startX-FREEZE_OFFSET,top:columnHeaderHeightAndMarginTop,zIndex:3}),scene.addObjects([this._columnFreezeHeaderRect,this._columnFreezeMainRect],SHEET_COMPONENT_HEADER_LAYER_INDEX)}this._eventBinding(freezeDirectionType)}_eventBinding(freezeDirectionType=0){let freezeObjectHeaderRect=this._rowFreezeHeaderRect,freezeObjectMainRect=this._rowFreezeMainRect;freezeDirectionType===1&&(freezeObjectHeaderRect=this._columnFreezeHeaderRect,freezeObjectMainRect=this._columnFreezeMainRect);const sheetObject=this._getSheetObject();if(sheetObject==null)return;const{scene}=sheetObject;if(this._freezePointerEnterSubs=new rxjs.Subscription,this._freezePointerLeaveSubs=new rxjs.Subscription,this._freezeDownSubs=new rxjs.Subscription,freezeObjectMainRect){const _freezeObjectMainRectEnterSub=freezeObjectMainRect.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(!0,null))return!1;freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeHoverColor,zIndex:4}),scene.setCursor(engineRender.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(_freezeObjectMainRectEnterSub);const _freezeObjectMainPointerLeaveSub=freezeObjectMainRect.onPointerLeave$.subscribeEvent(()=>{freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),scene.resetCursor()});this._freezePointerLeaveSubs.add(_freezeObjectMainPointerLeaveSub)}if(freezeObjectHeaderRect){const _freezeObjHeaderPointerEnterSub=freezeObjectHeaderRect.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(!0,null))return!1;freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeHoverColor,zIndex:4}),scene.setCursor(engineRender.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(_freezeObjHeaderPointerEnterSub);const _freezeObjHeaderPointerLeaveSub=freezeObjectHeaderRect.onPointerLeave$.subscribeEvent(()=>{freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),scene.resetCursor()});this._freezePointerLeaveSubs.add(_freezeObjHeaderPointerLeaveSub)}const s1=freezeObjectHeaderRect==null?void 0:freezeObjectHeaderRect.onPointerDown$.subscribeEvent(evt=>{this._freezeDown(evt,freezeObjectHeaderRect,freezeObjectMainRect,freezeDirectionType)});s1&&this._freezeDownSubs.add(s1);const s2=freezeObjectMainRect==null?void 0:freezeObjectMainRect.onPointerDown$.subscribeEvent(evt=>{this._freezeDown(evt,freezeObjectHeaderRect,freezeObjectMainRect,freezeDirectionType)});s2&&this._freezeDownSubs.add(s2)}_getCurrentLastVisible(){var _a61,_b,_c,_d,_e,_f,_g;const sheetObject=this._getSheetObject();if(sheetObject==null)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const scene=sheetObject.scene,scale=Math.max(scene.scaleX,scene.scaleY),currentScroll=this._scrollManagerService.getCurrentScrollState(),skeletonViewHeight=(sheetObject.engine.height-skeleton.columnHeaderHeight)/scale,skeletonViewWidth=(sheetObject.engine.width-skeleton.rowHeaderWidth)/scale,startRow=(_b=currentScroll==null?void 0:currentScroll.sheetViewStartRow)!=null?_b:0,startHeight=startRow===0?-((_c=currentScroll==null?void 0:currentScroll.offsetY)!=null?_c:0):skeleton.rowHeightAccumulation[startRow-1]-((_d=currentScroll==null?void 0:currentScroll.offsetY)!=null?_d:0);let lastRow=0,hadFind=!1;for(let i=startRow,len=skeleton.rowHeightAccumulation.length;i<len;i++)if(skeleton.rowHeightAccumulation[i]-startHeight>skeletonViewHeight){lastRow=i,hadFind=!0;break}hadFind||(lastRow=skeleton.rowHeightAccumulation.length-1);const startColumn=(_e=currentScroll==null?void 0:currentScroll.sheetViewStartColumn)!=null?_e:0,startWidth=startColumn===0?-((_f=currentScroll==null?void 0:currentScroll.offsetX)!=null?_f:0):skeleton.columnWidthAccumulation[startColumn-1]-((_g=currentScroll==null?void 0:currentScroll.offsetX)!=null?_g:0);let lastColumn=0,hadFindCol=!1;for(let i=startColumn,len=skeleton.columnWidthAccumulation.length;i<len;i++)if(skeleton.columnWidthAccumulation[i]-startWidth>skeletonViewWidth){lastColumn=i,hadFindCol=!0;break}return hadFindCol||(lastColumn=skeleton.columnWidthAccumulation.length-1),{lastRow,lastColumn}}_getActiveViewport(evt){var _a61;const viewports=(_a61=this._getSheetObject())==null?void 0:_a61.scene.getViewports();return viewports&&viewports.find(i=>i.isHit(new engineRender.Vector2(evt.offsetX,evt.offsetY)))||null}_freezeDown(evt,freezeObjectHeaderRect,freezeObjectMainRect,freezeDirectionType=0){var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const sheetObject=this._getSheetObject();if(sheetObject==null)return;if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(!0,null))return!1;const{scene}=sheetObject;scene.setCursor(engineRender.CURSOR_TYPE.GRABBING),scene.disableObjectsEvent();const last=this._getCurrentLastVisible(),lastRowY=last===void 0?Number.POSITIVE_INFINITY:skeleton.rowHeightAccumulation[last.lastRow],lastColumnX=last===void 0?Number.POSITIVE_INFINITY:skeleton.columnWidthAccumulation[last.lastColumn-1]+skeleton.rowHeaderWidth;this._activeViewport=null;const oldFreeze=this._getFreeze();oldFreeze&&(this._changeToColumn=oldFreeze.startColumn,this._changeToRow=oldFreeze.startRow),this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{var _a62,_b,_c,_d;const activeViewport=this._getActiveViewport(moveEvt),{startX,startY,row,column}=getCoordByOffset(moveEvt.offsetX,moveEvt.offsetY,scene,skeleton,activeViewport||void 0,!0);if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(!0,null))return!1;scene.setCursor(engineRender.CURSOR_TYPE.GRABBING);const FREEZE_SIZE=FREEZE_SIZE_NORMAL/Math.max(scene.scaleX,scene.scaleY);freezeDirectionType===0?((_a62=freezeObjectHeaderRect.transformByState({top:Math.min(startY,lastRowY)-FREEZE_SIZE/2}))==null||_a62.setProps({fill:this._freezeActiveColor}),(_b=freezeObjectMainRect.transformByState({top:Math.min(startY,lastRowY)-FREEZE_SIZE/2}))==null||_b.setProps({fill:this._freezeNormalHeaderColor}),this._changeToRow=last===void 0?row:Math.min(row,last.lastRow),this._changeToOffsetY=Math.min(startY,lastRowY),this._activeViewport=activeViewport):((_c=freezeObjectHeaderRect.transformByState({left:Math.min(startX,lastColumnX)-FREEZE_SIZE/2}))==null||_c.setProps({fill:this._freezeActiveColor}),(_d=freezeObjectMainRect.transformByState({left:Math.min(startX,lastColumnX)-FREEZE_SIZE/2}))==null||_d.setProps({fill:this._freezeNormalHeaderColor}),this._changeToColumn=last===void 0?column:Math.min(column,last.lastColumn),this._changeToOffsetX=startX,this._activeViewport=activeViewport)}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a62,_b;scene.resetCursor(),scene.enableObjectsEvent(),this._clearObserverEvent();const{rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton;freezeDirectionType===0&&(this._changeToRow===0||this._changeToRow===-1)||freezeDirectionType===1&&(this._changeToColumn===0||this._changeToColumn===-1)?(freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor}),freezeObjectMainRect.setProps({fill:this._freezeNormalMainColor})):(freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor}),freezeObjectMainRect==null||freezeObjectMainRect.setProps({fill:this._freezeNormalHeaderColor}));const FREEZE_SIZE=FREEZE_SIZE_NORMAL/Math.max(scene.scaleX,scene.scaleY);freezeDirectionType===0?(this._changeToRow===0||this._changeToRow===-1)&&(freezeObjectHeaderRect.transformByState({top:columnHeaderHeightAndMarginTop-FREEZE_SIZE}),freezeObjectMainRect.transformByState({top:columnHeaderHeightAndMarginTop-FREEZE_SIZE})):(this._changeToColumn===0||this._changeToColumn===-1)&&(freezeObjectHeaderRect.transformByState({left:rowHeaderWidthAndMarginLeft-FREEZE_SIZE}),freezeObjectMainRect.transformByState({left:rowHeaderWidthAndMarginLeft-FREEZE_SIZE}));const sheetViewScroll=this._scrollManagerService.getCurrentScrollState()||{sheetViewStartRow:0,sheetViewStartColumn:0},{sheetViewStartRow,sheetViewStartColumn}=sheetViewScroll;if(sheetViewStartColumn==null||sheetViewStartRow==null)return;const workbook=this._context.unit,worksheet=workbook.getActiveSheet();if(!worksheet)return;const oldFreeze2=(_a62=worksheet.getConfig())==null?void 0:_a62.freeze;let xSplit=(oldFreeze2==null?void 0:oldFreeze2.xSplit)||0,ySplit=(oldFreeze2==null?void 0:oldFreeze2.ySplit)||0;const viewPortKey=(_b=this._activeViewport)==null?void 0:_b.viewportKey;freezeDirectionType===0&&(!viewPortKey||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP?ySplit=this._changeToRow-(oldFreeze2.startRow-oldFreeze2.ySplit):ySplit=this._changeToRow-sheetViewStartRow,ySplit=ySplit<0?0:ySplit),freezeDirectionType===1&&(!viewPortKey||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT?xSplit=this._changeToColumn-(oldFreeze2.startColumn-oldFreeze2.xSplit):xSplit=this._changeToColumn-sheetViewStartColumn,xSplit=xSplit<0?0:xSplit),this._commandService.executeCommand(sheets.SetFrozenCommand.id,{startRow:ySplit===0?-1:this._changeToRow,startColumn:xSplit===0?-1:this._changeToColumn,ySplit,xSplit,unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId()})})}_getViewports(){const sheetObject=this._getSheetObject();if(sheetObject==null)return;const{scene}=sheetObject,viewColumnLeft=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT),viewColumnRight=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT),viewRowTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP),viewRowBottom=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM),viewLeftTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP),viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),viewMainLeftTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP),viewMainLeft=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT),viewMainTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(!(viewColumnLeft==null||viewColumnRight==null||viewRowTop==null||viewRowBottom==null||viewLeftTop==null||viewMain==null||viewMainLeftTop==null||viewMainLeft==null||viewMainTop==null))return{viewMain,viewMainLeftTop,viewMainLeft,viewMainTop,viewColumnLeft,viewColumnRight,viewRowTop,viewRowBottom,viewLeftTop}}_bindViewportScroll(){const viewports=this._getViewports();if(!viewports)return;const{viewRowBottom,viewColumnRight,viewMainLeft,viewMainTop}=viewports;this.disposeWithMe(this._scrollManagerService.validViewportScrollInfo$.subscribe(param=>{if(!param)return;const{scrollX,scrollY,viewportScrollX,viewportScrollY}=param;viewRowBottom.isActive&&viewRowBottom.updateScrollVal({scrollY,viewportScrollY}),viewColumnRight.isActive&&viewColumnRight.updateScrollVal({scrollX,viewportScrollX}),viewMainLeft.isActive&&viewMainLeft.updateScrollVal({scrollY,viewportScrollY}),viewMainTop.isActive&&viewMainTop.updateScrollVal({scrollX,viewportScrollX})}))}_updateViewport(row=-1,column=-1,ySplit=0,xSplit=0,resetScroll=3){var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const{rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton,viewports=this._getViewports();if(!viewports)return;const{viewMain,viewMainLeftTop,viewMainLeft,viewMainTop,viewColumnLeft,viewColumnRight,viewRowTop,viewRowBottom,viewLeftTop}=viewports;viewColumnRight.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:0,height:columnHeaderHeightAndMarginTop,right:0}),viewRowBottom.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop,bottom:0,width:rowHeaderWidthAndMarginLeft}),viewLeftTop.resizeWhenFreezeChange({left:0,top:0,width:rowHeaderWidthAndMarginLeft,height:columnHeaderHeightAndMarginTop});let isTopView=!0,isLeftView=!0;viewMainLeftTop.enable(),(row===-1||row===0)&&(isTopView=!1),(column===-1||column===0)&&(isLeftView=!1);const startSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(row-ySplit,column-xSplit),endSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(row,column);if(viewMainLeftTop.disable(),viewMainTop.disable(),viewMainLeft.disable(),viewRowTop.disable(),viewColumnLeft.disable(),viewMainLeftTop.resetPadding(),viewMainTop.resetPadding(),viewMainLeft.resetPadding(),viewRowTop.resetPadding(),viewColumnLeft.resetPadding(),isTopView===!1&&isLeftView===!1)viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,bottom:0,right:0}),viewMain.resetPadding();else if(isTopView===!0&&isLeftView===!1){const topGap=endSheetView.startY-startSheetView.startY;viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,right:0}),viewMain.setPadding({startY:startSheetView.startY,endY:endSheetView.startY,startX:0,endX:0}),resetScroll&2&&this._commandService.executeCommand(ScrollCommand.id,{sheetViewStartRow:0,offsetY:0}),viewMainTop.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,height:topGap,right:0}),viewMainTop.updateScrollVal({viewportScrollY:startSheetView.startY,rawScrollX:viewMain.scrollX,viewportScrollX:viewMain.viewportScrollX}),viewRowTop.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop,width:rowHeaderWidthAndMarginLeft,height:topGap}),viewRowTop.updateScrollVal({viewportScrollY:startSheetView.startY}),viewRowBottom.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,width:rowHeaderWidthAndMarginLeft}),viewMainTop.enable(),viewRowTop.enable()}else if(isTopView===!1&&isLeftView===!0){const leftGap=endSheetView.startX-startSheetView.startX;viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:columnHeaderHeightAndMarginTop,bottom:0,right:0}),viewMain.setPadding({startX:startSheetView.startX,endX:endSheetView.startX,startY:0,endY:0}),resetScroll&1&&this._commandService.executeCommand(ScrollCommand.id,{sheetViewStartColumn:0,offsetX:0}),viewMainLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,width:leftGap,bottom:0,right:0}),viewMainLeft.updateScrollVal({viewportScrollX:startSheetView.startX,rawScrollY:viewMain.scrollY,viewportScrollY:viewMain.viewportScrollY}),viewColumnLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:0,width:leftGap,height:columnHeaderHeightAndMarginTop}),viewColumnLeft.updateScrollVal({viewportScrollX:startSheetView.startX}),viewColumnRight.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:0,height:columnHeaderHeightAndMarginTop,right:0}),viewMainLeft.enable(),viewColumnLeft.enable()}else{const leftGap=endSheetView.startX-startSheetView.startX,topGap=endSheetView.startY-startSheetView.startY;viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,right:0}),viewMain.setPadding({startY:startSheetView.startY,endY:endSheetView.startY,startX:startSheetView.startX,endX:endSheetView.startX}),resetScroll&&this._commandService.executeCommand(ScrollCommand.id,{...resetScroll&1?{sheetViewStartColumn:0,offsetX:0}:null,...resetScroll&2?{sheetViewStartRow:0,offsetY:0}:null}),viewMainLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop+topGap,width:leftGap,bottom:0}),viewMainLeft.updateScrollVal({viewportScrollX:startSheetView.startX,rawScrollY:viewMain.scrollY,viewportScrollY:viewMain.viewportScrollY}),viewMainTop.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:columnHeaderHeightAndMarginTop,height:topGap,right:0}),viewMainTop.updateScrollVal({viewportScrollY:startSheetView.startY,rawScrollX:viewMain.scrollX,viewportScrollX:viewMain.viewportScrollX}),viewMainLeftTop.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,width:leftGap,height:topGap}),viewMainLeftTop.updateScrollVal({viewportScrollX:startSheetView.startX,viewportScrollY:startSheetView.startY}),viewRowTop.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop,width:rowHeaderWidthAndMarginLeft,height:topGap}),viewRowTop.updateScrollVal({viewportScrollY:startSheetView.startY}),viewRowBottom.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,width:rowHeaderWidthAndMarginLeft}),viewColumnLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:0,width:leftGap,height:columnHeaderHeightAndMarginTop}),viewColumnLeft.updateScrollVal({viewportScrollX:startSheetView.startX}),viewColumnRight.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:0,height:columnHeaderHeightAndMarginTop,right:0}),viewMainLeftTop.enable(),viewMainTop.enable(),viewMainLeft.enable(),viewRowTop.enable(),viewColumnLeft.enable()}}_skeletonListener(){this.disposeWithMe(core.toDisposable(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{[sheets.SetWorksheetActiveOperation.id,sheets.InsertRangeMoveDownCommand.id,sheets.InsertRangeMoveRightCommand.id].includes((param==null?void 0:param.commandId)||"")&&this._refreshCurrent()})))}_refreshCurrent(){const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const freeze=worksheet.getConfig().freeze,{startRow=-1,startColumn=-1,ySplit=0,xSplit=0}=freeze;this._refreshFreeze(startRow,startColumn,ySplit,xSplit,0)}_themeChangeListener(){this._themeChange(this._themeService.getCurrentTheme()),this.disposeWithMe(this._themeService.currentTheme$.subscribe(style=>{this._clearFreeze(),this._themeChange(style),this._refreshCurrent()}))}_themeChange(style){this._freezeNormalHeaderColor=style.grey400,this._freezeNormalMainColor=new core.ColorKit(style.grey400).setAlpha(AUXILIARY_CLICK_HIDDEN_OBJECT_TRANSPARENCY).toRgbString(),this._freezeActiveColor=style.primaryColor,this._freezeHoverColor=style.grey500}_interceptorCommands(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:__name(command=>{const empty={redos:[],undos:[]},freeze=this._getFreeze();if(!freeze)return empty;const createFreezeMutationAndRefresh=__name(newFreeze=>{const workbook=this._context.unit,unitId=workbook.getUnitId(),worksheet=workbook.getActiveSheet();if(!worksheet)return empty;const subUnitId=worksheet.getSheetId();this._refreshFreeze(newFreeze.startRow,newFreeze.startColumn,newFreeze.ySplit,newFreeze.xSplit,0);const redoMutationParams={...newFreeze,unitId,subUnitId,resetScroll:!1},undoMutationParams=sheets.SetFrozenMutationFactory(this._injector,redoMutationParams);return{undos:[{id:sheets.SetFrozenMutation.id,params:undoMutationParams}],redos:[{id:sheets.SetFrozenMutation.id,params:redoMutationParams}]}},"createFreezeMutationAndRefresh");if(command.id===sheets.InsertRowCommand.id){const params=command.params,{range,direction}=params,insertCount=range.endRow-range.startRow+1;if(range.startRow+1<freeze.startRow||range.startRow+1===freeze.startRow&&direction===core.Direction.UP){const newFreeze={...freeze,startRow:Math.max(1,freeze.startRow+insertCount),ySplit:Math.max(1,freeze.ySplit+insertCount)};return createFreezeMutationAndRefresh(newFreeze)}}if(command.id===sheets.InsertColCommand.id){const params=command.params,{range,direction}=params,insertCount=range.endColumn-range.startColumn+1;if(range.startColumn+1<freeze.startColumn||range.startColumn+1===freeze.startColumn&&direction===core.Direction.LEFT){const newFreeze={...freeze,startColumn:Math.max(1,freeze.startColumn+insertCount),xSplit:Math.max(1,freeze.xSplit+insertCount)};return createFreezeMutationAndRefresh(newFreeze)}}if(command.id===sheets.MoveColsCommand.id){const selections=this._selectionManagerService.getCurrentSelections(),{fromRange:{startColumn:fromCol},toRange:{startColumn:toCol}}=command.params,filteredSelections=selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.COLUMN&&selection.range.startColumn<=fromCol&&fromCol<=selection.range.endColumn);if(!(filteredSelections!=null&&filteredSelections.length))return empty;const sourceRange=filteredSelections[0].range,targetRange={...sourceRange,startColumn:toCol,endColumn:toCol+sourceRange.endColumn-sourceRange.startColumn};if(!freeze||freeze.startColumn<=0||sourceRange.startColumn>=freeze.startColumn&&targetRange.startColumn>=freeze.startColumn||sourceRange.startColumn===targetRange.startColumn||sourceRange.endColumn<freeze.startColumn&&targetRange.startColumn<freeze.startColumn)return empty;const totalColCount=sourceRange.endColumn-sourceRange.startColumn+1,moveFreezeColCount=Math.max(Math.min(freeze.startColumn,sourceRange.endColumn+1)-sourceRange.startColumn,0);let newStartColumn,newXSplit;targetRange.startColumn>=freeze.startColumn?(newStartColumn=Math.max(freeze.startColumn-moveFreezeColCount,1),newXSplit=Math.max(freeze.xSplit-moveFreezeColCount,1)):(newStartColumn=freeze.startColumn+totalColCount-moveFreezeColCount,newXSplit=freeze.xSplit+totalColCount-moveFreezeColCount);const redoMutationParams={...freeze,startColumn:newStartColumn,xSplit:newXSplit};return createFreezeMutationAndRefresh(redoMutationParams)}if(command.id===sheets.MoveRowsCommand.id){const selections=this._selectionManagerService.getCurrentSelections(),{fromRange:{startRow:fromRow},toRange:{startRow:toRow}}=command.params,filteredSelections=selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.ROW&&selection.range.startRow<=fromRow&&fromRow<=selection.range.endRow);if(!(filteredSelections!=null&&filteredSelections.length))return empty;const sourceRange=filteredSelections[0].range,targetRange={...sourceRange,startRow:toRow,endRow:toRow+sourceRange.endRow-sourceRange.startRow};if(!freeze||freeze.startRow<=0||sourceRange.startRow>=freeze.startRow&&targetRange.startRow>=freeze.startRow||sourceRange.startRow===targetRange.startRow||sourceRange.endRow<freeze.startRow&&targetRange.startRow<freeze.startRow)return empty;const totalColCount=sourceRange.endRow-sourceRange.startRow+1,moveFreezeColCount=Math.max(Math.min(freeze.startRow,sourceRange.endRow+1)-sourceRange.startRow,0);let newStartRow,newYSplit;targetRange.startRow>=freeze.startRow?(newStartRow=Math.max(freeze.startRow-moveFreezeColCount,1),newYSplit=Math.max(freeze.ySplit-moveFreezeColCount,1)):(newStartRow=freeze.startRow+totalColCount-moveFreezeColCount,newYSplit=freeze.ySplit+totalColCount-moveFreezeColCount);const redoMutationParams={...freeze,startRow:newStartRow,ySplit:newYSplit};return createFreezeMutationAndRefresh(redoMutationParams)}if(command.id===sheets.RemoveColCommand.id||command.id===sheets.RemoveRowCommand.id){const params=command.params,range=params.range;if(range.rangeType===core.RANGE_TYPE.COLUMN&&range.startColumn<freeze.startColumn){const deleteFreezeColCount=Math.min(freeze.startColumn,range.endColumn+1)-range.startColumn,newFreeze={...freeze,startColumn:Math.max(1,freeze.startColumn-deleteFreezeColCount),xSplit:Math.max(1,freeze.xSplit-deleteFreezeColCount)};return createFreezeMutationAndRefresh(newFreeze)}if(params.range.rangeType===core.RANGE_TYPE.ROW&&range.startRow<freeze.startRow){const deleteFreezeRowCount=Math.min(freeze.startRow,range.endRow+1)-range.startRow,newFreeze={...freeze,startRow:Math.max(1,freeze.startRow-deleteFreezeRowCount),ySplit:Math.max(1,freeze.ySplit-deleteFreezeRowCount)};return createFreezeMutationAndRefresh(newFreeze)}}return empty},"getMutations")}))}_commandExecutedListener(){const updateCommandList=[sheets.SetFrozenMutation.id,SetZoomRatioOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(updateCommandList.includes(command.id)){const lastFreeze=this._lastFreeze,workbook=this._context.unit,worksheet=workbook.getActiveSheet(),params=command.params,{unitId,subUnitId}=params;if(!(unitId===workbook.getUnitId()&&subUnitId===(worksheet==null?void 0:worksheet.getSheetId())))return;const freeze=worksheet.getConfig().freeze;if(this._lastFreeze=freeze,freeze==null)return;let resetScroll=0;const{startRow=-1,startColumn=-1,ySplit=0,xSplit=0}=freeze;(!lastFreeze||lastFreeze.startRow!==startRow||lastFreeze.ySplit!==ySplit)&&(resetScroll|=2),(!lastFreeze||lastFreeze.startColumn!==startColumn||lastFreeze.xSplit!==xSplit)&&(resetScroll|=1),params.resetScroll===!1&&(resetScroll=0),this._refreshFreeze(startRow,startColumn,ySplit,xSplit,resetScroll)}else if(command.id===sheets.SetWorksheetRowHeightMutation.id){const freeze=this._getFreeze(),isRefresh=freeze&&command.params.ranges.some(i=>i.startRow<freeze.startRow);command.params&&isRefresh&&this._refreshCurrent()}else if(command.id===sheets.SetWorksheetColWidthMutation.id){const freeze=this._getFreeze();command.params&&freeze&&command.params.ranges.some(i=>i.startColumn<freeze.startColumn)&&this._refreshCurrent()}else if(command.id===sheets.SetWorksheetRowAutoHeightMutation.id){const params=command.params,freeze=this._getFreeze();if(freeze&&freeze.startRow>-1&&params.rowsAutoHeightInfo.some(info=>info.row<freeze.startRow)){const subscription=this._sheetSkeletonManagerService.currentSkeleton$.subscribe(()=>{this._refreshCurrent(),setTimeout(()=>{subscription.unsubscribe()})})}}else if(command.id===sheets.SetColHiddenMutation.id||command.id===sheets.SetColVisibleMutation.id){const params=command.params,freeze=this._getFreeze(),ranges=params.ranges;freeze&&freeze.startColumn>-1&&ranges.some(range=>range.startColumn<freeze.startColumn)&&this._refreshCurrent()}else if(command.id===sheets.SetRowHiddenMutation.id||command.id===sheets.SetRowVisibleMutation.id){const params=command.params,freeze=this._getFreeze(),ranges=params.ranges;freeze&&freeze.startRow>-1&&ranges.some(range=>range.startRow<freeze.startRow)&&this._refreshCurrent()}}))}_zoomRefresh(){const sheetObject=this._getSheetObject();if(sheetObject==null)return;const{scene}=sheetObject;scene.onTransformChange$.subscribeEvent(state=>{state.type===engineRender.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale&&this._refreshCurrent()})}_clearObserverEvent(){var _a61,_b;this._getSheetObject()!=null&&((_a61=this._scenePointerMoveSub)==null||_a61.unsubscribe(),(_b=this._scenePointerUpSub)==null||_b.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_clearFreeze(){var _a61,_b,_c,_d,_e,_f;(_a61=this._rowFreezeHeaderRect)==null||_a61.dispose(),(_b=this._rowFreezeMainRect)==null||_b.dispose(),(_c=this._columnFreezeHeaderRect)==null||_c.dispose(),(_d=this._columnFreezeMainRect)==null||_d.dispose(),this._getSheetObject()!=null&&([this._freezeDownSubs,this._freezePointerEnterSubs,this._freezePointerLeaveSubs].forEach(s=>{s==null||s.unsubscribe()}),this._freezeDownSubs=null,this._freezePointerEnterSubs=null,this._freezePointerLeaveSubs=null,(_e=this._scenePointerMoveSub)==null||_e.unsubscribe(),(_f=this._scenePointerUpSub)==null||_f.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_getPositionByIndex(row,column){var _a61;if(this._getSheetObject()==null)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton,position=skeleton==null?void 0:skeleton.getNoMergeCellPositionByIndex(row,column);if(skeleton==null)return;if(position!=null&&(!isNaN(position.endX)||!isNaN(position.endY)))return position;const{rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton;return{startX:rowHeaderWidthAndMarginLeft,endX:rowHeaderWidthAndMarginLeft,startY:columnHeaderHeightAndMarginTop,endY:columnHeaderHeightAndMarginTop}}_getFreeze(){var _a61;const config=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton.getWorksheetConfig();if(config!=null)return config.freeze}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_refreshFreeze(startRow,startColumn,ySplit,xSplit,resetScroll){var _a61;const newFreeze={startRow,startColumn,ySplit,xSplit};this._clearFreeze(),this._createFreeze(0,newFreeze),this._createFreeze(1,newFreeze),this._updateViewport(startRow,startColumn,ySplit,xSplit,resetScroll),(_a61=this._getSheetObject())==null||_a61.spreadsheet.makeForceDirty()}},__name(_a18,"HeaderFreezeRenderController"),_a18);exports.HeaderFreezeRenderController=__decorateClass$E([__decorateParam$E(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$E(2,core.ICommandService),__decorateParam$E(3,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$E(4,core.Inject(exports.SheetScrollManagerService)),__decorateParam$E(5,core.Inject(core.ThemeService)),__decorateParam$E(6,core.Inject(sheets.SheetInterceptorService)),__decorateParam$E(7,core.Inject(core.Injector))],exports.HeaderFreezeRenderController);function getSheetSelectionsDisabled$(accessor){const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),univerInstanceService=accessor.get(core.IUniverInstanceService),mergeCellController=accessor.get(sheets.MergeCellController),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET);return rxjs.combineLatest([selectionManagerService.selectionMoveEnd$,workbook$.pipe(rxjs.map(workbook=>{var _a61;return(_a61=workbook==null?void 0:workbook.getUnitId())!=null?_a61:""})),workbook$.pipe(rxjs.switchMap(workbook=>{var _a61;return(_a61=workbook==null?void 0:workbook.activeSheet$)!=null?_a61:rxjs.of(null)}))]).pipe(rxjs.map(([selection,unitId,sheet])=>{if(!sheet||!selection||selection.length===0)return!1;const subUnitId=sheet.getSheetId(),selectionRanges=selection.map(sel=>sel.range);if(mergeCellController.interceptor.fetchThroughInterceptors(sheets.MERGE_CELL_INTERCEPTOR_CHECK)(!1,selectionRanges))return!0;const subUnitRuleRange=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).map(rule=>rule.ranges).flat();if(selection.length<2){const range=selection[0].range;return subUnitRuleRange.some(ruleRange=>core.Rectangle.intersects(ruleRange,range)&&!core.Rectangle.contains(ruleRange,range))}for(let i=0;i<selection.length;i++)for(let j=i+1;j<selection.length;j++)if(core.Rectangle.intersects(selection[i].range,selection[j].range))return!0;return!1}))}__name(getSheetSelectionsDisabled$,"getSheetSelectionsDisabled$");function isThisRowSelected(selections,rowIndex){return!!matchedSelectionByRowColIndex(selections,rowIndex,core.RANGE_TYPE.ROW)}__name(isThisRowSelected,"isThisRowSelected");function isThisColSelected(selections,colIndex){return!!matchedSelectionByRowColIndex(selections,colIndex,core.RANGE_TYPE.COLUMN)}__name(isThisColSelected,"isThisColSelected");function matchedSelectionByRowColIndex(selections,indexOfRowCol,rowOrCol){return selections.find(sel=>{const range=sel.range,{startRow:startRowOfCurrSel,endRow:endRowOfCurrSel,startColumn:startColumnOfCurrSel,endColumn:endColumnOfCurrSel,rangeType:rangeTypeOfCurrSelection}=range;return rangeTypeOfCurrSelection===core.RANGE_TYPE.ALL||rangeTypeOfCurrSelection===core.RANGE_TYPE.NORMAL?!1:rangeTypeOfCurrSelection===rowOrCol&&(rowOrCol===core.RANGE_TYPE.COLUMN&&startColumnOfCurrSel<=indexOfRowCol&&indexOfRowCol<=endColumnOfCurrSel||rowOrCol===core.RANGE_TYPE.ROW&&startRowOfCurrSel<=indexOfRowCol&&indexOfRowCol<=endRowOfCurrSel)})}__name(matchedSelectionByRowColIndex,"matchedSelectionByRowColIndex");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");const HEADER_MOVE_CONTROLLER_BACKGROUND="__SpreadsheetHeaderMoveControllerBackground__",HEADER_MOVE_CONTROLLER_LINE="__SpreadsheetHeaderMoveControllerShapeLine__",HEADER_MOVE_CONTROLLER_BACKGROUND_FILL="rgba(0, 0, 0, 0.1)",HEADER_MOVE_CONTROLLER_LINE_FILL="rgb(119, 119, 119)",HEADER_MOVE_CONTROLLER_LINE_SIZE=4,HEADER_MOVE_PERMISSION_CHECK=core.createInterceptorKey("headerMovePermissionCheck");var _a19;exports.HeaderMoveRenderController=(_a19=class extends core.Disposable{constructor(_context,selectionManagerService,_sheetSkeletonManagerService,_commandService){super();__publicField(this,"_startOffsetX",Number.NEGATIVE_INFINITY);__publicField(this,"_startOffsetY",Number.NEGATIVE_INFINITY);__publicField(this,"_moveHelperBackgroundShape");__publicField(this,"_moveHelperLineShape");__publicField(this,"_headerPointerDownSubs");__publicField(this,"_headerPointerMoveSubs");__publicField(this,"_headerPointerLeaveSubs");__publicField(this,"_dragHeaderMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_scrollTimer");__publicField(this,"_changeFromColumn",-1);__publicField(this,"_changeFromRow",-1);__publicField(this,"_changeToColumn",-1);__publicField(this,"_changeToRow",-1);__publicField(this,"interceptor",new core.InterceptorManager({HEADER_MOVE_PERMISSION_CHECK}));__publicField(this,"_workbookSelections");this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._workbookSelections=selectionManagerService.getWorkbookSelections(this._context.unitId),this._init()}dispose(){var _a61,_b,_c,_d,_e,_f,_g,_h;(_a61=this._moveHelperBackgroundShape)==null||_a61.dispose(),(_b=this._moveHelperLineShape)==null||_b.dispose(),(_c=this._headerPointerMoveSubs)==null||_c.unsubscribe(),(_d=this._headerPointerLeaveSubs)==null||_d.unsubscribe(),(_e=this._headerPointerDownSubs)==null||_e.unsubscribe(),this._headerPointerMoveSubs=null,this._headerPointerLeaveSubs=null,this._headerPointerDownSubs=null,(_f=this._dragHeaderMoveSub)==null||_f.unsubscribe(),(_g=this._scenePointerUpSub)==null||_g.unsubscribe(),this._dragHeaderMoveSub=null,this._scenePointerUpSub=null,(_h=this._scrollTimer)==null||_h.dispose()}_init(){this._initialRowOrColumn(core.RANGE_TYPE.ROW),this._initialRowOrColumn(core.RANGE_TYPE.COLUMN)}_initialRowOrColumn(initialType=core.RANGE_TYPE.ROW){const spreadsheetColumnHeader=this._context.components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetRowHeader=this._context.components.get(SHEET_VIEW_KEY.ROW),scene=this._context.scene,eventBindingObject=initialType===core.RANGE_TYPE.ROW?spreadsheetRowHeader:spreadsheetColumnHeader,pointerMoveHandler=__name(evt=>{var _a61,_b;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const selectionRange=(_b=this._workbookSelections.getCurrentLastSelection())==null?void 0:_b.range;if(!selectionRange||!this.interceptor.fetchThroughInterceptors(HEADER_MOVE_PERMISSION_CHECK)(!1,selectionRange))return;const currentSelections=this._workbookSelections.getCurrentSelections(),{row,column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);if(!matchedSelectionByRowColIndex(currentSelections,initialType===core.RANGE_TYPE.ROW?row:column,initialType)){scene.resetCursor();return}scene.setCursor(engineRender.CURSOR_TYPE.GRAB)},"pointerMoveHandler"),pointerLeaveHandler=__name(()=>{var _a61,_b;(_a61=this._moveHelperBackgroundShape)==null||_a61.hide(),(_b=this._moveHelperLineShape)==null||_b.hide(),scene.resetCursor()},"pointerLeaveHandler"),pointerDownHandler=__name((evt,state)=>{var _a61,_b;if(state.isStopPropagation)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const selectionRange=(_b=this._workbookSelections.getCurrentLastSelection())==null?void 0:_b.range;if(!selectionRange||!this.interceptor.fetchThroughInterceptors(HEADER_MOVE_PERMISSION_CHECK)(!1,selectionRange))return;const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords;this._startOffsetX=newEvtOffsetX,this._startOffsetY=newEvtOffsetY;const{row,column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);let scrollType;initialType===core.RANGE_TYPE.ROW?(this._changeFromRow=row,scrollType=engineRender.ScrollTimerType.Y):(this._changeFromColumn=column,scrollType=engineRender.ScrollTimerType.X);const currentSelections=this._workbookSelections.getCurrentSelections(),matchSelectionData=matchedSelectionByRowColIndex(currentSelections,initialType===core.RANGE_TYPE.ROW?row:column,initialType);if(!matchSelectionData)return;const startScrollXY=scene.getScrollXYInfoByViewport(engineRender.Vector2.FromArray([this._startOffsetX,this._startOffsetY]));this._newBackgroundAndLine(),scene.setCursor(engineRender.CURSOR_TYPE.GRABBING),scene.disableObjectsEvent();let scrollTimerInitd=!1,scrollTimer;const initScrollTimer=__name(()=>{if(scrollTimerInitd)return;scrollTimer=engineRender.ScrollTimer.create(scene,scrollType),this._scrollTimer=scrollTimer;const mainViewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);scrollTimer.startScroll(newEvtOffsetX,newEvtOffsetY,mainViewport),scrollTimerInitd=!0},"initScrollTimer");this._dragHeaderMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{initScrollTimer();const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt,{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._rowColumnMoving(newMoveOffsetX,newMoveOffsetY,matchSelectionData,startScrollXY,initialType),scrollTimer.scrolling(newMoveOffsetX,newMoveOffsetY,()=>{this._rowColumnMoving(newMoveOffsetX,newMoveOffsetY,matchSelectionData,startScrollXY,initialType)})}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a62,_b2,_c;this._disposeBackgroundAndLine(),scene.resetCursor(),scene.enableObjectsEvent(),this._clearObserverEvent(),(_a62=this._scrollTimer)==null||_a62.dispose();const selections=this._workbookSelections.getCurrentSelections();if(initialType===core.RANGE_TYPE.ROW){if(this._changeFromRow!==this._changeToRow&&this._changeToRow!==-1){const range=(_b2=((selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.ROW&&selection.range.startRow<=this._changeFromRow&&this._changeFromRow<=selection.range.endRow))||[])[0])==null?void 0:_b2.range;range&&this._commandService.executeCommand(sheets.MoveRowsCommand.id,{fromRange:range,toRange:{...range,startRow:this._changeToRow,endRow:this._changeToRow+range.endRow-range.startRow}})}this._changeToRow=this._changeFromRow=-1}else{if(this._changeFromColumn!==this._changeToColumn&&this._changeToColumn!==-1){const range=(_c=((selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.COLUMN&&selection.range.startColumn<=this._changeFromColumn&&this._changeFromColumn<=selection.range.endColumn))||[])[0])==null?void 0:_c.range;range&&this._commandService.executeCommand(sheets.MoveColsCommand.id,{fromRange:range,toRange:{...range,startColumn:this._changeToColumn,endColumn:this._changeToColumn+range.endColumn-range.startColumn}})}this._changeToColumn=this._changeFromColumn=-1}})},"pointerDownHandler");this._headerPointerMoveSubs=new rxjs.Subscription,this._headerPointerMoveSubs.add(eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveHandler)),this._headerPointerLeaveSubs=new rxjs.Subscription,this._headerPointerLeaveSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveHandler)),this._headerPointerDownSubs=new rxjs.Subscription,this._headerPointerDownSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerDown$.subscribeEvent(pointerDownHandler))}_rowColumnMoving(moveOffsetX,moveOffsetY,matchSelectionData,startScrollXY,initialType){var _a61,_b,_c,_d,_e,_f,_g;const scene=this._context.scene,skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const{rowHeaderWidth,columnHeaderHeight,rowTotalHeight,columnTotalWidth}=skeleton,scrollXY=scene.getViewportScrollXY(scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX,scaleY}=scene.getAncestorScale(),moveActualSelection=skeleton.getCellIndexByOffset(moveOffsetX,moveOffsetY,scaleX,scaleY,scrollXY),{row,column}=moveActualSelection,startCell=skeleton.getNoMergeCellPositionByIndex(row,column),{startX:cellStartX,startY:cellStartY,endX:cellEndX,endY:cellEndY}=startCell,selectionWithCoord=this._sheetSkeletonManagerService.attachRangeWithCoord(matchSelectionData.range);if(selectionWithCoord==null)return;const scale=Math.max(scaleX,scaleX),{startX:selectedStartX,endX:selectedEndX,startY:selectedStartY,endY:selectedEndY,startRow:selectedStartRow,startColumn:selectedStartColumn,endRow:selectedEndRow,endColumn:selectedEndColumn}=selectionWithCoord;initialType===core.RANGE_TYPE.ROW?(_b=this._moveHelperBackgroundShape)==null||_b.transformByState({height:selectedEndY-selectedStartY,width:columnTotalWidth+rowHeaderWidth,left:0,top:selectedStartY+(moveOffsetY-this._startOffsetY)/scale+scrollXY.y-startScrollXY.y}):(_c=this._moveHelperBackgroundShape)==null||_c.transformByState({height:rowTotalHeight+columnHeaderHeight,width:selectedEndX-selectedStartX,left:selectedStartX+(moveOffsetX-this._startOffsetX)/scale+scrollXY.x-startScrollXY.x,top:0}),(_d=this._moveHelperBackgroundShape)==null||_d.show();const HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE=HEADER_MOVE_CONTROLLER_LINE_SIZE/scale;if(initialType===core.RANGE_TYPE.ROW){let top=0;if(row<=selectedStartRow)top=cellStartY-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToRow=row;else if(row>selectedEndRow)top=cellEndY-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToRow=row+1;else return;(_e=this._moveHelperLineShape)==null||_e.transformByState({height:HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE,width:columnTotalWidth,left:rowHeaderWidth,top})}else{let left=0;if(column<=selectedStartColumn)left=cellStartX-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToColumn=column;else if(column>selectedEndColumn)left=cellEndX-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToColumn=column+1;else return;(_f=this._moveHelperLineShape)==null||_f.transformByState({height:rowTotalHeight,width:HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE,left,top:columnHeaderHeight})}(_g=this._moveHelperLineShape)==null||_g.show()}_clearObserverEvent(){var _a61,_b;(_a61=this._dragHeaderMoveSub)==null||_a61.unsubscribe(),(_b=this._scenePointerUpSub)==null||_b.unsubscribe(),this._dragHeaderMoveSub=null,this._scenePointerUpSub=null}_newBackgroundAndLine(){const scene=this._context.scene;this._moveHelperBackgroundShape=new engineRender.Rect(HEADER_MOVE_CONTROLLER_BACKGROUND,{fill:HEADER_MOVE_CONTROLLER_BACKGROUND_FILL,evented:!1,zIndex:100}),this._moveHelperLineShape=new engineRender.Rect(HEADER_MOVE_CONTROLLER_LINE,{fill:HEADER_MOVE_CONTROLLER_LINE_FILL,evented:!1,zIndex:100}),scene.addObjects([this._moveHelperBackgroundShape,this._moveHelperLineShape],SHEET_COMPONENT_HEADER_LAYER_INDEX)}_disposeBackgroundAndLine(){var _a61,_b;(_a61=this._moveHelperBackgroundShape)==null||_a61.dispose(),(_b=this._moveHelperLineShape)==null||_b.dispose()}},__name(_a19,"HeaderMoveRenderController"),_a19);exports.HeaderMoveRenderController=__decorateClass$D([__decorateParam$D(1,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$D(2,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$D(3,core.ICommandService)],exports.HeaderMoveRenderController);var HEADER_RESIZE_SHAPE_TYPE=(HEADER_RESIZE_SHAPE_TYPE2=>(HEADER_RESIZE_SHAPE_TYPE2[HEADER_RESIZE_SHAPE_TYPE2.VERTICAL=0]="VERTICAL",HEADER_RESIZE_SHAPE_TYPE2[HEADER_RESIZE_SHAPE_TYPE2.HORIZONTAL=1]="HORIZONTAL",HEADER_RESIZE_SHAPE_TYPE2))(HEADER_RESIZE_SHAPE_TYPE||{});const HEADER_MENU_SHAPE_RECT_BACKGROUND_FILL="rgba(120, 120, 120, 0.01)",HEADER_MENU_SHAPE_RECT_FILL="rgb(68, 71, 70)",HEADER_MENU_SHAPE_SIZE=12,MAX_HEADER_MENU_SHAPE_SIZE=44,HEADER_MENU_SHAPE_THUMB_SIZE=4,_HeaderMenuResizeShape=class _HeaderMenuResizeShape extends engineRender.Shape{constructor(key,props){super(key,props);__publicField(this,"_size",HEADER_MENU_SHAPE_SIZE);__publicField(this,"_color",HEADER_MENU_SHAPE_RECT_FILL);__publicField(this,"_mode",0);this.setShapeProps(props)}get size(){return this._size}get mode(){return this._mode}get color(){return this._color}_draw(ctx){const scene=this.getScene();if(!scene)return;const{scaleX,scaleY}=scene.getAncestorScale(),scale=Math.max(scaleX,scaleY),HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE=HEADER_MENU_SHAPE_SIZE/scale,HEADER_MENU_SHAPE_THUMB_SIZE_SCALE=HEADER_MENU_SHAPE_THUMB_SIZE/scale;let{width,height}=this,left=0,top=0;this.mode===0?(width=HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,left=HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE):(height=HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,top=HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE),engineRender.Rect.drawWith(ctx,{width:this.width,height:this.height,left:0,top:0,fill:HEADER_MENU_SHAPE_RECT_BACKGROUND_FILL}),engineRender.Rect.drawWith(ctx,{width,height,fill:HEADER_MENU_SHAPE_RECT_FILL,radius:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE}),ctx.save(),ctx.transform(1,0,0,1,left,top),engineRender.Rect.drawWith(ctx,{width,height,fill:HEADER_MENU_SHAPE_RECT_FILL,radius:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE}),ctx.restore()}setShapeProps(props){return props!=null&&props.size&&(this._size=props.size),props!=null&&props.mode&&(this._mode=props.mode),props!=null&&props.color&&(this._color=props.color),this.mode===0?this.transformByState({width:HEADER_MENU_SHAPE_SIZE,height:this.size}):this.transformByState({width:this.size,height:HEADER_MENU_SHAPE_SIZE}),this}};__name(_HeaderMenuResizeShape,"HeaderMenuResizeShape");let HeaderMenuResizeShape=_HeaderMenuResizeShape;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 HEADER_RESIZE_CONTROLLER_SHAPE_ROW="__SpreadsheetHeaderResizeControllerShapeRow__",HEADER_RESIZE_CONTROLLER_SHAPE_COLUMN="__SpreadsheetHeaderResizeControllerShapeColumn__",HEADER_RESIZE_CONTROLLER_SHAPE_HELPER="__SpreadsheetHeaderResizeControllerShapeHelper__",HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR="rgb(199, 199, 199)",MINIMAL_OFFSET=2,HEADER_RESIZE_PERMISSION_CHECK=core.createInterceptorKey("headerResizePermissionCheck");var _a20;exports.HeaderResizeRenderController=(_a20=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_selectionManagerService,_commandService){super();__publicField(this,"_currentRow",0);__publicField(this,"_currentColumn",0);__publicField(this,"_rowResizeRect");__publicField(this,"_columnResizeRect");__publicField(this,"_headerPointerSubs");__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_resizeHelperShape");__publicField(this,"_startOffsetX",Number.POSITIVE_INFINITY);__publicField(this,"_startOffsetY",Number.POSITIVE_INFINITY);__publicField(this,"interceptor",new core.InterceptorManager({HEADER_RESIZE_PERMISSION_CHECK}));this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._selectionManagerService=_selectionManagerService,this._commandService=_commandService,this._init()}dispose(){var _a61,_b,_c;(_a61=this._rowResizeRect)==null||_a61.dispose(),this._rowResizeRect=null,(_b=this._columnResizeRect)==null||_b.dispose(),this._columnResizeRect=null,(_c=this._headerPointerSubs)==null||_c.unsubscribe(),this._headerPointerSubs=null}_init(){const scene=this._context.scene;this._rowResizeRect=new HeaderMenuResizeShape(HEADER_RESIZE_CONTROLLER_SHAPE_ROW,{visible:!1,mode:HEADER_RESIZE_SHAPE_TYPE.HORIZONTAL,zIndex:100}),this._columnResizeRect=new HeaderMenuResizeShape(HEADER_RESIZE_CONTROLLER_SHAPE_COLUMN,{visible:!1,mode:HEADER_RESIZE_SHAPE_TYPE.VERTICAL,zIndex:100}),scene.addObjects([this._rowResizeRect,this._columnResizeRect],SHEET_COMPONENT_HEADER_LAYER_INDEX),this._initialHover(0),this._initialHover(1),this._initialHoverResize(0),this._initialHoverResize(1)}_initialHover(initialType=0){const spreadsheetColumnHeader=this._context.components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetRowHeader=this._context.components.get(SHEET_VIEW_KEY.ROW),scene=this._context.scene,eventBindingObject=initialType===0?spreadsheetRowHeader:spreadsheetColumnHeader,pointerLeaveEvent=__name((_evt,_state)=>{var _a61,_b;(_a61=this._rowResizeRect)==null||_a61.hide(),(_b=this._columnResizeRect)==null||_b.hide()},"pointerLeaveEvent"),pointerMoveEvent=__name((evt,_state)=>{var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null||this._rowResizeRect==null||this._columnResizeRect==null)return;const{rowHeaderWidth,columnHeaderHeight}=skeleton,{startX,startY,endX,endY,row,column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton),transformCoord=getTransformCoord(evt.offsetX,evt.offsetY,scene),{scaleX,scaleY}=scene.getAncestorScale(),scale=Math.max(scaleX,scaleY),HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE=HEADER_MENU_SHAPE_SIZE/scale;if(initialType===0){let top=startY-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;if(transformCoord.y<=startY+HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.y>=startY)this._currentRow=row-1;else if(transformCoord.y>=endY-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.y<=endY)this._currentRow=row,top=endY-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;else{this._rowResizeRect.hide();return}if(this._currentRow===-1)return;if(!this.interceptor.fetchThroughInterceptors(HEADER_RESIZE_PERMISSION_CHECK)(null,{row:this._currentRow}))return!1;const rowSize=Math.min(MAX_HEADER_MENU_SHAPE_SIZE,rowHeaderWidth/3);this._rowResizeRect.transformByState({left:rowHeaderWidth/2-rowSize/2,top}),this._rowResizeRect.setShapeProps({size:rowSize}),this._rowResizeRect.show()}else{let left=startX-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;if(transformCoord.x<=startX+HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.x>=startX)this._currentColumn=column-1;else if(transformCoord.x>=endX-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.x<=endX)this._currentColumn=column,left=endX-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;else{this._columnResizeRect.hide();return}if(this._currentColumn===-1)return;if(!this.interceptor.fetchThroughInterceptors(HEADER_RESIZE_PERMISSION_CHECK)(null,{col:this._currentColumn}))return!1;const columnSize=columnHeaderHeight*.7;this._columnResizeRect.transformByState({left,top:columnHeaderHeight/2-columnSize/2}),this._columnResizeRect.setShapeProps({size:columnSize}),this._columnResizeRect.show()}},"pointerMoveEvent");this._headerPointerSubs=new rxjs.Subscription,this._headerPointerSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveEvent)),this._headerPointerSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveEvent))}_initialHoverResize(initialType=0){const scene=this._context.scene,eventBindingObject=initialType===0?this._rowResizeRect:this._columnResizeRect;eventBindingObject!=null&&(this.disposeWithMe(eventBindingObject.onPointerEnter$.subscribeEvent(()=>{eventBindingObject!=null&&(eventBindingObject.show(),scene.setCursor(initialType===0?engineRender.CURSOR_TYPE.ROW_RESIZE:engineRender.CURSOR_TYPE.COLUMN_RESIZE))})),this.disposeWithMe(eventBindingObject.onPointerLeave$.subscribeEvent(()=>{eventBindingObject!=null&&(eventBindingObject.hide(),scene.resetCursor())})),this.disposeWithMe(eventBindingObject.onPointerDown$.subscribeEvent(evt=>{var _a61,_b,_c,_d,_e,_f,_g;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const scene2=this._context.scene,engine=scene2.getEngine(),canvasMaxHeight=(engine==null?void 0:engine.height)||0,canvasMaxWidth=(engine==null?void 0:engine.width)||0,viewPort=scene2.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),scrollBarHorizontalHeight=(((_c=(_b=viewPort==null?void 0:viewPort.getScrollBar())==null?void 0:_b.horizonScrollTrack)==null?void 0:_c.height)||0)+10,scrollBarVerticalWidth=(((_e=(_d=viewPort==null?void 0:viewPort.getScrollBar())==null?void 0:_d.verticalScrollTrack)==null?void 0:_e.width)||0)+10,transformCoord=getTransformCoord(evt.offsetX,evt.offsetY,scene2),{scaleX,scaleY}=scene2.getAncestorScale();this._startOffsetX=transformCoord.x,this._startOffsetY=transformCoord.y;const currentOffsetX=skeleton.getOffsetByPositionX(this._currentColumn),currentOffsetY=skeleton.getOffsetByPositionY(this._currentRow),cell=skeleton.getNoMergeCellPositionByIndex(this._currentRow,this._currentColumn);let isStartMove=!1,moveChangeX=0,moveChangeY=0;const{columnTotalWidth,rowHeaderWidth,rowTotalHeight,columnHeaderHeight}=skeleton,shapeWidth=canvasMaxWidth>columnTotalWidth+rowHeaderWidth?canvasMaxWidth:columnTotalWidth+rowHeaderWidth,shapeHeight=canvasMaxHeight>rowTotalHeight+columnHeaderHeight?canvasMaxHeight:rowTotalHeight+columnHeaderHeight,scale=Math.max(scaleX,scaleY),HEADER_MENU_SHAPE_THUMB_SIZE_SCALE=HEADER_MENU_SHAPE_THUMB_SIZE/scale;initialType===0?this._resizeHelperShape=new engineRender.Rect(HEADER_RESIZE_CONTROLLER_SHAPE_HELPER,{width:shapeWidth,height:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,fill:HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR,left:0,top:currentOffsetY-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE/2}):this._resizeHelperShape=new engineRender.Rect(HEADER_RESIZE_CONTROLLER_SHAPE_HELPER,{width:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,height:shapeHeight,fill:HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR,left:currentOffsetX-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE/2,top:0});const rowResizeRectX=((_f=this._columnResizeRect)==null?void 0:_f.left)||0,rowResizeRectY=((_g=this._rowResizeRect)==null?void 0:_g.top)||0;scene2.addObject(this._resizeHelperShape,SHEET_COMPONENT_HEADER_LAYER_INDEX),scene2.disableObjectsEvent(),this._scenePointerMoveSub=scene2.onPointerMove$.subscribeEvent(moveEvt=>{var _a62,_b2,_c2,_d2,_e2,_f2;const relativeCoords=scene2.getCoordRelativeToViewport(engineRender.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),scrollXY=scene2.getScrollXYInfoByViewport(relativeCoords,viewPort),transformCoord2=getTransformCoord(moveEvt.offsetX,moveEvt.offsetY,scene2),{x:moveOffsetX,y:moveOffsetY}=transformCoord2,{scaleX:scaleX2,scaleY:scaleY2}=scene2.getAncestorScale(),scale2=Math.max(scaleX2,scaleY2),HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2=HEADER_MENU_SHAPE_THUMB_SIZE/scale2;moveChangeX=moveOffsetX-this._startOffsetX-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2,moveChangeY=moveOffsetY-this._startOffsetY-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2,Math.abs(initialType===0?moveChangeY:moveChangeX)>=MINIMAL_OFFSET&&(isStartMove=!0),initialType===0?(moveChangeY>canvasMaxHeight-scrollBarHorizontalHeight+scrollXY.y-cell.startY&&(moveChangeY=canvasMaxHeight-scrollBarHorizontalHeight+scrollXY.y-cell.startY),moveChangeY<-(cell.endY-cell.startY)+2&&(moveChangeY=-(cell.endY-cell.startY)+2),isStartMove&&((_a62=this._resizeHelperShape)==null||_a62.transformByState({top:currentOffsetY+moveChangeY}),(_b2=this._rowResizeRect)==null||_b2.transformByState({top:rowResizeRectY+moveChangeY+HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2}),(_c2=this._rowResizeRect)==null||_c2.show(),scene2.setCursor(engineRender.CURSOR_TYPE.ROW_RESIZE))):(moveChangeX>canvasMaxWidth-scrollBarVerticalWidth+scrollXY.x-cell.startX&&(moveChangeX=canvasMaxWidth-scrollBarVerticalWidth+scrollXY.x-cell.startX),moveChangeX<-(cell.endX-cell.startX)+2&&(moveChangeX=-(cell.endX-cell.startX)+2),isStartMove&&((_d2=this._resizeHelperShape)==null||_d2.transformByState({left:currentOffsetX+moveChangeX}),(_e2=this._columnResizeRect)==null||_e2.transformByState({left:rowResizeRectX+moveChangeX+HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2}),(_f2=this._columnResizeRect)==null||_f2.show(),scene2.setCursor(engineRender.CURSOR_TYPE.COLUMN_RESIZE)))}),this._scenePointerUpSub=scene2.onPointerUp$.subscribeEvent(upEvt=>{var _a62,_b2,_c2;const scene3=this._context.scene;this._clearObserverEvent(),(_a62=this._resizeHelperShape)==null||_a62.dispose(),this._resizeHelperShape=null,scene3.enableObjectsEvent(),isStartMove&&(scene3.resetCursor(),(_b2=this._rowResizeRect)==null||_b2.hide(),(_c2=this._columnResizeRect)==null||_c2.hide(),initialType===0?this._commandService.executeCommand(sheets.DeltaRowHeightCommand.id,{deltaY:moveChangeY,anchorRow:this._currentRow}):this._commandService.executeCommand(sheets.DeltaColumnWidthCommand.id,{deltaX:moveChangeX,anchorCol:this._currentColumn}))})})),this.disposeWithMe(eventBindingObject.onDblclick$.subscribeEvent(()=>{var _a61,_b,_c;this._context.scene.resetCursor();const sk=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(!sk)return;const startRow=0,startColumn=0,endRow=sk.worksheet.getRowCount()-1||0,endColumn=sk.worksheet.getColumnCount()-1||0;switch(initialType){case 1:{const curSelections=this._selectionManagerService.getCurrentSelections(),ranges=[];for(let i=0;i<curSelections.length;i++){const selection=curSelections[i];selection.range.rangeType===core.RANGE_TYPE.COLUMN&&this._currentColumn<=selection.range.endColumn&&this._currentColumn>=selection.range.startColumn&&ranges.push({startColumn:selection.range.startColumn,endColumn:selection.range.endColumn,startRow,endRow})}ranges.length===0&&ranges.push({startColumn:this._currentColumn,endColumn:this._currentColumn,startRow,endRow}),this._commandService.executeCommand(SetWorksheetColAutoWidthCommand.id,{ranges}),(_b=this._columnResizeRect)==null||_b.hide();break}case 0:this._commandService.executeCommand(sheets.SetWorksheetRowIsAutoHeightCommand.id,{ranges:[{startRow:this._currentRow,endRow:this._currentRow,startColumn,endColumn}]}),(_c=this._rowResizeRect)==null||_c.hide();break}})))}_clearObserverEvent(){var _a61,_b;(_a61=this._scenePointerMoveSub)==null||_a61.unsubscribe(),(_b=this._scenePointerUpSub)==null||_b.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}},__name(_a20,"HeaderResizeRenderController"),_a20);exports.HeaderResizeRenderController=__decorateClass$C([__decorateParam$C(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$C(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$C(3,core.ICommandService)],exports.HeaderResizeRenderController);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 FRAME_STACK_THRESHOLD=60;var _a21;exports.SheetRenderController=(_a21=class extends core.RxDisposable{constructor(_context,_sheetSkeletonManagerService,_sheetRenderService,_commandService,_telemetryService){super();__publicField(this,"_renderFrameTimeMetric",null);__publicField(this,"_renderFrameTags",{});__publicField(this,"_afterRenderMetric$",new rxjs.Subject);this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._sheetRenderService=_sheetRenderService,this._commandService=_commandService,this._telemetryService=_telemetryService,this._addNewRender(),this._initRenderMetricSubscriber()}_addNewRender(){const{scene,engine,unit:workbook}=this._context;this._addComponent(workbook),this._initRerenderScheduler(),this._initCommandListener();const worksheet=this._context.unit.getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const sheetId=worksheet.getSheetId();this._sheetSkeletonManagerService.setCurrent({sheetId}),engine.runRenderLoop(()=>scene.render())}_initRenderMetricSubscriber(){if(!this._telemetryService)return;const{engine}=this._context;engine.beginFrame$.subscribe(()=>{this._renderFrameTimeMetric=null,this._renderFrameTags={}}),engine.endFrame$.subscribe(()=>{this._renderFrameTimeMetric&&Object.keys(this._renderFrameTimeMetric).filter(key=>key.startsWith(engineRender.SHEET_EXTENSION_PREFIX)).length>0&&this._afterRenderMetric$.next({frameTimeMetric:this._renderFrameTimeMetric,tags:this._renderFrameTags})}),engine.renderFrameTimeMetric$.subscribe(([key,value])=>{this._renderFrameTimeMetric||(this._renderFrameTimeMetric={}),this._renderFrameTimeMetric[key]||(this._renderFrameTimeMetric[key]=[]),this._renderFrameTimeMetric[key].push(Math.round(value*100)/100)}),engine.renderFrameTags$.subscribe(([key,value])=>{this._renderFrameTags[key]=value});const frameInfoList=[];this._afterRenderMetric$.pipe(rxjs.withLatestFrom(engine.endFrame$)).subscribe(([sceneRenderDetail,basicFrameTimeInfo])=>{frameInfoList.push({FPS:basicFrameTimeInfo.FPS,elapsedTime:basicFrameTimeInfo.elapsedTime,frameTime:Math.round(basicFrameTimeInfo.frameTime*100)/100,...sceneRenderDetail.frameTimeMetric,...sceneRenderDetail.tags}),frameInfoList.length>FRAME_STACK_THRESHOLD&&(this._renderMetricCapture(frameInfoList),frameInfoList.length=0)})}_renderMetricCapture(frameInfoList){const filteredFrameInfo=frameInfoList;if(filteredFrameInfo.length===0)return;const sumValueForNumListFields=__name(data=>{let totalSum=0;const sums=Object.entries(data).filter(([_2,value])=>Array.isArray(value)).map(([key])=>key).reduce((acc,key)=>{const keySum=data[key].reduce((sum,num)=>sum+num,0);return acc[key]=keySum,acc},{});return Object.keys(data).filter(key=>key.startsWith(engineRender.SHEET_EXTENSION_PREFIX)).forEach(key=>{totalSum+=sums[key]}),{...sums,extensionTotal:totalSum}},"sumValueForNumListFields"),frameTimeListAfterSum=frameInfoList.map(info=>({...info,...sumValueForNumListFields(info)})),summaryFrameStats=__name(list=>Object.entries(list[0]).filter(([key,_2])=>!["elapsedTime"].includes(key)).filter(([_2,value])=>typeof value=="number").map(([key])=>key).reduce((acc,key)=>{const values=list.map(obj=>obj[key]),max=Math.max(...values),min=Math.min(...values),avg=values.reduce((sum,val)=>sum+val,0)/values.length;return acc[key]={max:Math.round(max*100)/100,min:Math.round(min*100)/100,avg:Math.round(avg*100)/100},acc},{}),"getSummaryStats")(frameTimeListAfterSum),elapsedTimeToStart=filteredFrameInfo[filteredFrameInfo.length-1].elapsedTime,sheetId=this._context.unit.getActiveSheet().getSheetId(),unitId=this._context.unit.getUnitId(),telemetryData={sheetId,unitId,elapsedTimeToStart,...summaryFrameStats};this._telemetryService.capture("sheet_render_cost",telemetryData)}_addComponent(workbook){const{scene,components}=this._context,worksheet=workbook.getActiveSheet(),spreadsheet=new engineRender.Spreadsheet(SHEET_VIEW_KEY.MAIN);this._addViewport(worksheet);const spreadsheetRowHeader=new engineRender.SpreadsheetRowHeader(SHEET_VIEW_KEY.ROW),spreadsheetColumnHeader=new engineRender.SpreadsheetColumnHeader(SHEET_VIEW_KEY.COLUMN),SpreadsheetLeftTopPlaceholder=new engineRender.Rect(SHEET_VIEW_KEY.LEFT_TOP,{zIndex:2,left:-1,top:-1,fill:"rgb(248, 249, 250)",stroke:"rgb(217, 217, 217)",strokeWidth:1});this._context.mainComponent=spreadsheet,components.set(SHEET_VIEW_KEY.MAIN,spreadsheet),components.set(SHEET_VIEW_KEY.ROW,spreadsheetRowHeader),components.set(SHEET_VIEW_KEY.COLUMN,spreadsheetColumnHeader),components.set(SHEET_VIEW_KEY.LEFT_TOP,SpreadsheetLeftTopPlaceholder),scene.addObjects([spreadsheet],SHEET_COMPONENT_MAIN_LAYER_INDEX),scene.addObjects([spreadsheetRowHeader,spreadsheetColumnHeader,SpreadsheetLeftTopPlaceholder],SHEET_COMPONENT_HEADER_LAYER_INDEX),scene.enableLayerCache(SHEET_COMPONENT_MAIN_LAYER_INDEX,SHEET_COMPONENT_HEADER_LAYER_INDEX)}_initViewports(scene,rowHeader,columnHeader){const viewMain=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN,scene,{left:rowHeader.width,top:columnHeader.height,bottom:0,right:0,isWheelPreventDefaultX:!0,allowCache:!0,bufferEdgeX:100,bufferEdgeY:100}),viewMainLeftTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP,scene,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:0,bufferEdgeY:0}),viewMainLeft=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT,scene,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:0,bufferEdgeY:100}),viewMainTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP,scene,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:100,bufferEdgeY:0}),viewRowTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP,scene,{active:!1,isWheelPreventDefaultX:!0}),viewRowBottom=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM,scene,{left:0,top:columnHeader.height,bottom:0,width:rowHeader.width,isWheelPreventDefaultX:!0}),viewColumnLeft=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT,scene,{active:!1,isWheelPreventDefaultX:!0}),viewColumnRight=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT,scene,{left:rowHeader.width,top:0,height:columnHeader.height,right:0,isWheelPreventDefaultX:!0}),viewLeftTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP,scene,{left:0,top:0,width:rowHeader.width,height:columnHeader.height,isWheelPreventDefaultX:!0});return{viewMain,viewLeftTop,viewMainLeftTop,viewMainLeft,viewMainTop,viewColumnLeft,viewRowTop,viewRowBottom,viewColumnRight}}_addViewport(worksheet){const scene=this._context.scene,{rowHeader,columnHeader}=worksheet.getConfig(),{viewMain}=this._initViewports(scene,rowHeader,columnHeader);return new engineRender.ScrollBar(viewMain),scene.attachControl(),viewMain}_initRerenderScheduler(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{if(!param)return null;const{skeleton:spreadsheetSkeleton,sheetId}=param,workbook=this._context.unit,worksheet=workbook==null?void 0:workbook.getSheetBySheetId(sheetId);if(workbook==null||worksheet==null)return;const{mainComponent,components}=this._context,spreadsheet=mainComponent,spreadsheetRowHeader=components.get(SHEET_VIEW_KEY.ROW),spreadsheetColumnHeader=components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetLeftTopPlaceholder=components.get(SHEET_VIEW_KEY.LEFT_TOP),{rowHeaderWidth,columnHeaderHeight}=spreadsheetSkeleton;spreadsheet==null||spreadsheet.updateSkeleton(spreadsheetSkeleton),spreadsheetRowHeader==null||spreadsheetRowHeader.updateSkeleton(spreadsheetSkeleton),spreadsheetColumnHeader==null||spreadsheetColumnHeader.updateSkeleton(spreadsheetSkeleton),spreadsheetLeftTopPlaceholder==null||spreadsheetLeftTopPlaceholder.transformByState({width:rowHeaderWidth,height:columnHeaderHeight});const rowFreezeHeaderRect=this._context.scene.getObject(FREEZE_ROW_HEADER_NAME);rowFreezeHeaderRect&&rowFreezeHeaderRect.transformByState({top:columnHeaderHeight-rowFreezeHeaderRect.height});const colFreezeHeaderRect=this._context.scene.getObject(FREEZE_COLUMN_HEADER_NAME);colFreezeHeaderRect&&colFreezeHeaderRect.transformByState({height:columnHeaderHeight})}))}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{const{unit:workbook}=this._context,{id:commandId}=command;if(sheets.COMMAND_LISTENER_SKELETON_CHANGE.includes(commandId)||this._sheetRenderService.checkMutationShouldTriggerRerender(commandId)){const params=command.params,{unitId,subUnitId}=params,worksheet=workbook.getActiveSheet();if(!worksheet)return;const workbookId=this._context.unitId,worksheetId=worksheet.getSheetId();if(unitId!==workbookId||subUnitId!==worksheetId)return;this._sheetSkeletonManagerService.makeDirty({sheetId:worksheetId,commandId},!0),this._sheetSkeletonManagerService.setCurrent({sheetId:worksheetId,commandId})}else sheets.COMMAND_LISTENER_VALUE_CHANGE.includes(commandId)&&this._sheetSkeletonManagerService.reCalculate();command.type===core.CommandType.MUTATION&&this._markUnitDirty(command)}))}_markUnitDirty(command){const{mainComponent:spreadsheet,scene}=this._context;if(command.id===engineFormula.SetFormulaCalculationNotificationMutation.id&&command.params.stageInfo!=null||(spreadsheet&&spreadsheet.makeDirty(),scene.makeDirty(),!command.params))return;const cmdParams=command.params,viewports=this._spreadsheetViewports(scene);if(command.id===sheets.SetRangeValuesMutation.id&&cmdParams.cellValue){const dirtyRange=this._cellValueToRange(cmdParams.cellValue),dirtyBounds=this._rangeToBounds([dirtyRange]);this._markViewportDirty(viewports,dirtyBounds),spreadsheet.setDirtyArea(dirtyBounds)}if(command.id===sheets.MoveRangeMutation.id&&cmdParams.from&&cmdParams.to){const fromRange=cmdParams.fromRange||this._cellValueToRange(cmdParams.from.value),toRange=cmdParams.toRange||this._cellValueToRange(cmdParams.to.value),dirtyBounds=this._rangeToBounds([fromRange,toRange]);this._markViewportDirty(viewports,dirtyBounds),spreadsheet.setDirtyArea(dirtyBounds)}}_cellValueToRange(cellValue){let minCol=0,maxCol=0,minRow=0,maxRow=0;for(const[_row,columnObj]of Object.entries(cellValue)){for(const column in columnObj)minCol>Number(column)&&(minCol=Number(column)),maxCol<Number(column)&&(maxCol=Number(column));minRow>Number(_row)&&(minRow=Number(_row)),maxRow<Number(_row)&&(maxRow=Number(_row))}return{startRow:minRow,endRow:maxRow,startColumn:minCol,endColumn:maxCol}}_rangeToBounds(ranges){const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{rowHeightAccumulation,columnWidthAccumulation,rowHeaderWidth,columnHeaderHeight}=skeleton,dirtyBounds=[];for(const r2 of ranges){const{startRow,endRow,startColumn,endColumn}=r2,top=startRow===0?0:rowHeightAccumulation[startRow-1]+columnHeaderHeight,bottom=rowHeightAccumulation[endRow]+columnHeaderHeight,left=startColumn===0?0:columnWidthAccumulation[startColumn-1]+rowHeaderWidth,right=columnWidthAccumulation[endColumn]+rowHeaderWidth;dirtyBounds.push({top,left,bottom,right,width:right-left,height:bottom-top})}return dirtyBounds}_markViewportDirty(viewports,dirtyBounds){const activeViewports=viewports.filter(vp=>vp.isActive&&vp.cacheBound);for(const vp of activeViewports)for(const b of dirtyBounds)core.Rectangle.hasIntersectionBetweenTwoRect(vp.cacheBound,b)&&vp.markDirty(!0)}_spreadsheetViewports(scene){return scene.getViewports().filter(v=>["viewMain","viewMainLeftTop","viewMainTop","viewMainLeft"].includes(v.viewportKey))}},__name(_a21,"SheetRenderController"),_a21);exports.SheetRenderController=__decorateClass$B([__decorateParam$B(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$B(2,core.Inject(exports.SheetsRenderService)),__decorateParam$B(3,core.ICommandService),__decorateParam$B(4,core.Optional(telemetry.ITelemetryService))],exports.SheetRenderController);var __assign=function(){return __assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p])}return t},__assign.apply(this,arguments)},__rest=function(s,e){var t={};for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0&&(t[p]=s[p]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++)e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i])&&(t[p[i]]=s[p[i]]);return t},IconBase=React.forwardRef(function(props,ref){var icon=props.icon,id=props.id,className=props.className,extend=props.extend,restProps=__rest(props,["icon","id","className","extend"]),cls="univerjs-icon univerjs-icon-".concat(id," ").concat(className||"").trim(),idSuffix=React.useRef("_".concat(generateShortUuid()));return render(icon,"".concat(id),{defIds:icon.defIds,idSuffix:idSuffix.current},__assign({ref,className:cls},restProps),extend)});function render(node,id,runtimeProps,rootProps,extend){return React.createElement(node.tag,__assign(__assign({key:id},replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend)),rootProps),(replaceRuntimeIdsInDefs(node,runtimeProps).children||[]).map(function(child,index){return render(child,"".concat(id,"-").concat(node.tag,"-").concat(index),runtimeProps,void 0,extend)}))}__name(render,"render");function replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend){var attrs=__assign({},node.attrs);extend!=null&&extend.colorChannel1&&attrs.fill==="colorChannel1"&&(attrs.fill=extend.colorChannel1);var defIds=runtimeProps.defIds;return!defIds||defIds.length===0||(node.tag==="use"&&attrs["xlink:href"]&&(attrs["xlink:href"]=attrs["xlink:href"]+runtimeProps.idSuffix),Object.entries(attrs).forEach(function(_a61){var key=_a61[0],value=_a61[1];typeof value=="string"&&(attrs[key]=value.replace(/url\(#(.*)\)/,"url(#$1".concat(runtimeProps.idSuffix,")")))})),attrs}__name(replaceRuntimeIdsAndExtInAttrs,"replaceRuntimeIdsAndExtInAttrs");function replaceRuntimeIdsInDefs(node,runtimeProps){var _a61,defIds=runtimeProps.defIds;return!defIds||defIds.length===0?node:node.tag==="defs"&&(!((_a61=node.children)===null||_a61===void 0)&&_a61.length)?__assign(__assign({},node),{children:node.children.map(function(child){return typeof child.attrs.id=="string"&&defIds&&defIds.indexOf(child.attrs.id)>-1?__assign(__assign({},child),{attrs:__assign(__assign({},child.attrs),{id:child.attrs.id+runtimeProps.idSuffix})}):child})}):node}__name(replaceRuntimeIdsInDefs,"replaceRuntimeIdsInDefs");function generateShortUuid(){return Math.random().toString(36).substring(2,8)}__name(generateShortUuid,"generateShortUuid");IconBase.displayName="UniverIcon";var element$i={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"colorChannel1",d:"M11.0363 12.2367V14.0367C11.0363 14.3681 11.3049 14.6367 11.6363 14.6367C11.9676 14.6367 12.2363 14.3681 12.2363 14.0367V12.2367H14.0364C14.3677 12.2367 14.6364 11.9681 14.6364 11.6367C14.6364 11.3054 14.3677 11.0367 14.0364 11.0367H12.2363V9.23672C12.2363 8.90535 11.9676 8.63672 11.6363 8.63672C11.3049 8.63672 11.0363 8.90535 11.0363 9.23672V11.0367H9.23635C8.90498 11.0367 8.63635 11.3054 8.63635 11.6367C8.63635 11.9681 8.90498 12.2367 9.23635 12.2367H11.0363Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M2.56365 1.36377C1.90091 1.36377 1.36365 1.90103 1.36365 2.56377V6.16377C1.36365 6.82651 1.90091 7.36377 2.56365 7.36377H6.16365C6.82639 7.36377 7.36365 6.82651 7.36365 6.16377V2.56377C7.36365 1.90103 6.82639 1.36377 6.16365 1.36377H2.56365zM6.16365 2.56377H2.56365L2.56365 6.16377H6.16365V2.56377zM2.56365 8.63647C1.90091 8.63647 1.36365 9.17373 1.36365 9.83647V13.4365C1.36365 14.0992 1.90091 14.6365 2.56365 14.6365H6.16365C6.82639 14.6365 7.36365 14.0992 7.36365 13.4365V9.83647C7.36365 9.17373 6.82639 8.63647 6.16365 8.63647H2.56365zM6.16365 9.83647H2.56365L2.56365 13.4365H6.16365V9.83647zM9.83635 7.36377C9.17361 7.36377 8.63635 6.82651 8.63635 6.16377V2.56377C8.63635 1.90103 9.17361 1.36377 9.83635 1.36377H13.4364C14.0991 1.36377 14.6364 1.90103 14.6364 2.56377V6.16377C14.6364 6.82651 14.0991 7.36377 13.4364 7.36377H9.83635zM9.83635 6.16377V2.56377L13.4364 2.56377V6.16377H9.83635z",fillRule:"evenodd",clipRule:"evenodd"}}]},Autofill=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"autofill",ref,icon:element$i}))});Autofill.displayName="Autofill";var element$h={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},CheckMarkSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"check-mark-single",ref,icon:element$h}))});CheckMarkSingle.displayName="CheckMarkSingle";var element$g={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},CloseSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"close-single",ref,icon:element$g}))});CloseSingle.displayName="CloseSingle";var element$f={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"g",attrs:{fill:"currentColor",clipPath:"url(#convert-single_clip0_911_593)"},children:[{tag:"path",attrs:{d:"M2.44766.848145C1.564.848145.847656 1.56449.847656 2.44814V6.44814C.847656 7.3318 1.564 8.04814 2.44766 8.04814H6.44766C7.33131 8.04814 8.04766 7.3318 8.04766 6.44814V2.44814C8.04766 1.56449 7.33131.848145 6.44766.848145H2.44766zM2.04766 6.44814V5.04824H3.84775V6.84814H2.44766C2.22674 6.84814 2.04766 6.66906 2.04766 6.44814zM2.04766 3.84824H3.84775V2.04814H2.44766C2.22674 2.04814 2.04766 2.22723 2.04766 2.44814V3.84824zM5.04775 6.84814V5.04824H6.84766V6.44814C6.84766 6.66906 6.66857 6.84814 6.44766 6.84814H5.04775zM5.04775 3.84824H6.84766V2.44814C6.84766 2.22723 6.66857 2.04814 6.44766 2.04814H5.04775V3.84824zM9.55215 7.95166C8.66849 7.95166 7.95215 8.668 7.95215 9.55166V13.5517C7.95215 14.4353 8.66849 15.1517 9.55215 15.1517L11.5522 15.1517 13.5521 15.1517C14.4358 15.1517 15.1521 14.4353 15.1521 13.5517L15.1521 11.5518 15.1521 9.55166C15.1521 8.668 14.4358 7.95166 13.5521 7.95166H9.55215zM13.9521 10.9518V9.55166C13.9521 9.33075 13.7731 9.15166 13.5521 9.15166H12.1522V10.9518H13.9521zM10.9522 10.9518V9.15166H9.55215C9.33123 9.15166 9.15215 9.33075 9.15215 9.55166V10.9518H10.9522zM9.15215 12.1518H10.9522V13.9517H9.55215C9.33123 13.9517 9.15215 13.7726 9.15215 13.5517V12.1518zM12.1522 12.1518H13.9521V13.5517C13.9521 13.7726 13.7731 13.9517 13.5521 13.9517H12.1522V12.1518z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{d:"M9.62158 2.44912C9.62158 2.11775 9.89021 1.84912 10.2216 1.84912H12.7516C13.6352 1.84912 14.3516 2.56547 14.3516 3.44912V5.9791C14.3516 6.31047 14.0829 6.5791 13.7516 6.5791 13.4202 6.5791 13.1516 6.31047 13.1516 5.9791V3.44912C13.1516 3.22821 12.9725 3.04912 12.7516 3.04912H10.2216C9.89021 3.04912 9.62158 2.78049 9.62158 2.44912zM5.77871 14.1507C6.11008 14.1507 6.37871 13.8821 6.37871 13.5507 6.37871 13.2193 6.11008 12.9507 5.77871 12.9507L3.24873 12.9507C3.02782 12.9507 2.84873 12.7716 2.84873 12.5507L2.84873 10.0207C2.84873 9.68933 2.5801 9.4207 2.24873 9.4207 1.91736 9.4207 1.64873 9.68933 1.64873 10.0207L1.64873 12.5507C1.64873 13.4343 2.36507 14.1507 3.24873 14.1507H5.77871z"}}]},{tag:"defs",attrs:{},children:[{tag:"clipPath",attrs:{id:"convert-single_clip0_911_593"},children:[{tag:"path",attrs:{fill:"#fff",d:"M0 0H16V16H0z"}}]}]}],defIds:["convert-single_clip0_911_593"]},ConvertSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"convert-single",ref,icon:element$f}))});ConvertSingle.displayName="ConvertSingle";var element$e={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.3313 1.4667C5.3313 1.13533 5.59993.866699 5.9313.866699H10.069C10.4004.866699 10.669 1.13533 10.669 1.4667 10.669 1.79807 10.4004 2.0667 10.069 2.0667H5.9313C5.59993 2.0667 5.3313 1.79807 5.3313 1.4667zM1.09985 3.64443C1.09985 3.31306 1.36848 3.04443 1.69985 3.04443H14.2999C14.6312 3.04443 14.8999 3.31306 14.8999 3.64443 14.8999 3.9758 14.6312 4.24443 14.2999 4.24443H1.69985C1.36848 4.24443 1.09985 3.9758 1.09985 3.64443zM6.12398 8.30171C6.35829 8.0674 6.73819 8.0674 6.97251 8.30171L8.00007 9.32928 9.02764 8.30171C9.26195 8.0674 9.64185 8.0674 9.87617 8.30171 10.1105 8.53603 10.1105 8.91593 9.87617 9.15024L8.8486 10.1778 9.87617 11.2054C10.1105 11.4397 10.1105 11.8196 9.87617 12.0539 9.64185 12.2882 9.26195 12.2882 9.02764 12.0539L8.00007 11.0263 6.97251 12.0539C6.73819 12.2882 6.35829 12.2882 6.12398 12.0539 5.88966 11.8196 5.88966 11.4397 6.12398 11.2054L7.15154 10.1778 6.12398 9.15024C5.88966 8.91593 5.88966 8.53603 6.12398 8.30171z"}},{tag:"path",attrs:{fill:"currentColor",d:"M4.75332 5.22217C3.86966 5.22217 3.15332 5.93851 3.15332 6.82217V12.5331C3.15332 13.9691 4.31738 15.1332 5.75332 15.1332H10.2465C11.6825 15.1332 12.8465 13.9691 12.8465 12.5331V6.82217C12.8465 5.93851 12.1302 5.22217 11.2465 5.22217H4.75332ZM4.35332 6.82217C4.35332 6.60125 4.53241 6.42217 4.75332 6.42217H11.2465C11.4674 6.42217 11.6465 6.60125 11.6465 6.82217V12.5331C11.6465 13.3063 11.0197 13.9332 10.2465 13.9332H5.75332C4.98012 13.9332 4.35332 13.3063 4.35332 12.5331V6.82217Z",fillRule:"evenodd",clipRule:"evenodd"}}]},DeleteSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"delete-single",ref,icon:element$e}))});DeleteSingle.displayName="DeleteSingle";var element$d={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_371_77",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#DCDCDC",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_371_77)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.85869 12.9216C8.38445 13.4708 7.61555 13.4708 7.14131 12.9216L0.358114 5.06726C-0.406895 4.18144 0.134916 2.66683 1.2168 2.66683L14.7832 2.66683C15.8651 2.66683 16.4069 4.18144 15.6419 5.06726L8.85869 12.9216Z"}}]}]},DropdownSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"dropdown-single",ref,icon:element$d}))});DropdownSingle.displayName="DropdownSingle";var element$c={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM10.3097 5.69014C10.544 5.92445 10.544 6.30435 10.3097 6.53867L8.84843 7.9999L10.3099 9.46137C10.5442 9.69569 10.5442 10.0756 10.3099 10.3099C10.0756 10.5442 9.69569 10.5442 9.46137 10.3099L7.9999 8.84843L6.53842 10.3099C6.30411 10.5442 5.92421 10.5442 5.6899 10.3099C5.45558 10.0756 5.45558 9.69569 5.6899 9.46137L7.15137 7.9999L5.69014 6.53867C5.45583 6.30435 5.45583 5.92445 5.69014 5.69014C5.92445 5.45583 6.30435 5.45583 6.53867 5.69014L7.9999 7.15137L9.46113 5.69014C9.69544 5.45583 10.0753 5.45583 10.3097 5.69014Z",fillRule:"evenodd",clipRule:"evenodd"}}]},ErrorSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"error-single",ref,icon:element$c}))});ErrorSingle.displayName="ErrorSingle";var element$b={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1.28096 4.6541C1.57489 4.50109 1.93721 4.61533 2.09022 4.90926C2.27315 5.26067 2.55999 5.60455 2.94829 5.92278C4.04628 6.82266 5.87505 7.44865 7.99828 7.44865C10.1215 7.44865 11.9503 6.82267 13.0482 5.92279C13.4366 5.60455 13.7234 5.26067 13.9063 4.90927C14.0594 4.61533 14.4217 4.50109 14.7156 4.65409C15.0095 4.8071 15.1238 5.16941 14.9708 5.46334C14.6995 5.98445 14.2981 6.44997 13.8089 6.8509C13.7298 6.91575 13.6481 6.97914 13.564 7.041L15.2245 8.70153C15.4588 8.93585 15.4588 9.31575 15.2245 9.55006C14.9902 9.78438 14.6103 9.78438 14.376 9.55006L12.5041 7.67822C11.8977 7.97568 11.2181 8.21208 10.4884 8.37706L11.0996 10.6581C11.1853 10.9782 10.9954 11.3072 10.6753 11.393C10.3552 11.4787 10.0262 11.2888 9.94045 10.9687L9.29949 8.57652C8.8758 8.62404 8.44081 8.64865 7.99828 8.64865C7.55276 8.64865 7.11487 8.62371 6.68846 8.57555L6.04723 10.9687C5.96147 11.2888 5.63247 11.4788 5.31239 11.393C4.99231 11.3073 4.80236 10.9783 4.88812 10.6582L5.49983 8.37516C4.7743 8.2105 4.09843 7.9752 3.49498 7.67947L1.62436 9.55009C1.39005 9.78441 1.01015 9.78441 0.775835 9.5501C0.54152 9.31578 0.541518 8.93588 0.775832 8.70157L2.43478 7.04261C2.34987 6.98024 2.26746 6.91632 2.18764 6.8509C1.69842 6.44997 1.29706 5.98445 1.0258 5.46335C0.872791 5.16942 0.987031 4.80711 1.28096 4.6541Z"}}]},EyelashSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"eyelash-single",ref,icon:element$b}))});EyelashSingle.displayName="EyelashSingle";var element$a={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M6.06409 5.53454C5.93592 5.53454 5.84083 5.41567 5.86897 5.29063L5.95442 4.9109C6.05444 4.48178 6.23806 4.11547 6.51182 3.81952 6.81082 3.49628 7.25398 3.35405 7.79738 3.35405 7.99847 3.35405 8.21359 3.37775 8.44188 3.42245 8.46089 3.42617 8.47974 3.43006 8.49846 3.4341 8.7099 3.4798 8.93698 3.38478 9.02031 3.18514L9.24767 2.6404C9.33457 2.43219 9.23178 2.19404 9.01582 2.12874 8.98358 2.11899 8.95028 2.10912 8.91591 2.09914 8.62745 2.01631 8.28392 1.97217 7.88074 1.97217 6.82015 1.97217 6.02714 2.23936 5.4746 2.7444 4.90987 3.26069 4.50889 3.99917 4.28413 4.9762L2.83703 11.1909C2.76126 11.5286 2.666 11.8917 2.54844 12.2812 2.42975 12.6734 2.2873 13.0595 2.12221 13.4373 1.95577 13.8159 1.76813 14.1762 1.55955 14.5171 1.49345 14.6251 1.42515 14.7282 1.35467 14.8263 1.26508 14.9509 1.3347 15.133 1.48655 15.1554 2.13635 15.2509 2.8179 15.0763 3.18197 14.5296 3.32661 14.3124 3.46779 14.0646 3.60509 13.7851 3.96635 13.0497 4.30522 12.0103 4.61867 10.6574L5.469 7.01534C5.49013 6.92483 5.57082 6.86081 5.66376 6.86081H7.62478C7.8097 6.86081 7.97051 6.73405 8.01371 6.55425L8.14014 6.02798C8.20057 5.77642 8.00992 5.53454 7.75121 5.53454H6.06409zM14.3211 5.72037L12.5124 7.96963 11.4089 5.77754C11.3422 5.63012 11.1954 5.5354 11.0336 5.5354H10.3129C10.0085 5.5354 9.80921 5.85428 9.9427 6.1279L11.4089 9.05502 8.79783 12.1493C8.56587 12.4158 8.75519 12.8315 9.10855 12.8315H9.68607C9.80672 12.8315 9.9605 12.7822 10.0388 12.6904L12.1108 10.2648 13.1176 12.561C13.1786 12.7231 13.333 12.8315 13.5061 12.8315H14.3C14.5831 12.8315 14.7417 12.6175 14.6426 12.3524L13.1728 9.28628C13.1728 9.28628 15.4009 6.45542 15.6013 6.17892 15.7966 5.90929 15.6023 5.5354 15.2693 5.5354H14.6661C14.5275 5.5354 14.4333 5.58887 14.3211 5.72037z"}}]},FxSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"fx-single",ref,icon:element$a}))});FxSingle.displayName="FxSingle";var element$9={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"colorChannel1",d:"M6.4833 1.65005C6.4833 1.31868 6.21467 1.05005 5.8833 1.05005C5.55193 1.05005 5.2833 1.31868 5.2833 1.65005V5.28345H1.65029C1.31892 5.28345 1.05029 5.55208 1.05029 5.88345C1.05029 6.21482 1.31892 6.48345 1.65029 6.48345H5.2833V9.51684H1.65029C1.31892 9.51684 1.05029 9.78547 1.05029 10.1168C1.05029 10.4482 1.31892 10.7168 1.65029 10.7168H5.2833V14.35C5.2833 14.6814 5.55193 14.95 5.8833 14.95C6.21467 14.95 6.4833 14.6814 6.4833 14.35V10.7168H9.5167V14.35C9.5167 14.6814 9.78533 14.95 10.1167 14.95C10.4481 14.95 10.7167 14.6814 10.7167 14.35V10.7168H14.3503C14.6817 10.7168 14.9503 10.4482 14.9503 10.1168C14.9503 9.78547 14.6817 9.51685 14.3503 9.51685H10.7167V6.48345H14.3503C14.6817 6.48345 14.9503 6.21482 14.9503 5.88345C14.9503 5.55208 14.6817 5.28345 14.3503 5.28345H10.7167V1.65005C10.7167 1.31868 10.4481 1.05005 10.1167 1.05005C9.78533 1.05005 9.5167 1.31868 9.5167 1.65005V5.28345L6.4833 5.28345V1.65005ZM6.4833 6.48345V9.51684L9.5167 9.51685V6.48345L6.4833 6.48345Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.0498 3.65005C1.0498 2.21411 2.21386 1.05005 3.6498 1.05005H12.3498C13.7857 1.05005 14.9498 2.21411 14.9498 3.65005V12.3501C14.9498 13.786 13.7857 14.95 12.3498 14.95H3.6498C2.21386 14.95 1.0498 13.786 1.0498 12.35V3.65005ZM3.6498 2.25005C2.87661 2.25005 2.2498 2.87685 2.2498 3.65005V12.35C2.2498 13.1232 2.87661 13.75 3.6498 13.75H12.3498C13.123 13.75 13.7498 13.1232 13.7498 12.3501V3.65005C13.7498 2.87685 13.123 2.25005 12.3498 2.25005H3.6498Z",fillRule:"evenodd",clipRule:"evenodd"}}]},HideGridlines=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"hide-gridlines",ref,icon:element$9}))});HideGridlines.displayName="HideGridlines";var element$8={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.6 1.99991C8.60001 1.66854 8.33138 1.39991 8.00001 1.3999C7.66864 1.3999 7.40001 1.66853 7.4 1.9999L7.39996 7.3999H1.9999C1.66853 7.3999 1.3999 7.66853 1.3999 7.9999C1.3999 8.33127 1.66853 8.5999 1.9999 8.5999H7.39995L7.3999 13.9999C7.3999 14.3313 7.66853 14.5999 7.9999 14.5999C8.33127 14.5999 8.5999 14.3313 8.5999 13.9999L8.59995 8.5999H13.9999C14.3313 8.5999 14.5999 8.33127 14.5999 7.9999C14.5999 7.66853 14.3313 7.3999 13.9999 7.3999H8.59996L8.6 1.99991Z"}}]},IncreaseSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"increase-single",ref,icon:element$8}))});IncreaseSingle.displayName="IncreaseSingle";var element$7={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M2.62402 7.72905C2.58427 7.72905 2.55205 7.76127 2.55205 7.80102V13.6782C2.55205 13.7179 2.58427 13.7502 2.62402 13.7502H13.3755C13.4152 13.7502 13.4474 13.7179 13.4474 13.6782V7.80102C13.4474 7.76127 13.4152 7.72905 13.3755 7.72905H2.62402ZM1.35205 7.80102C1.35205 7.09853 1.92153 6.52905 2.62402 6.52905H13.3755C14.0779 6.52905 14.6474 7.09853 14.6474 7.80102V13.6782C14.6474 14.3807 14.0779 14.9502 13.3755 14.9502H2.62402C1.92153 14.9502 1.35205 14.3807 1.35205 13.6782V7.80102Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M8 2.25005C6.69847 2.25003 5.64336 3.30513 5.64336 4.60666V7.12895C5.64336 7.46032 5.37473 7.72895 5.04336 7.72895 4.71199 7.72895 4.44336 7.46032 4.44336 7.12895V4.60666C4.44336 2.64239 6.04451 1.05565 8.00879 1.05566M8 2.25005L8.00879 1.05566 8 2.25005zM8.00879 1.05566L8 2.25005C9.30154 2.25003 10.3567 3.30513 10.3567 4.60666V7.12895C10.3567 7.46032 10.6253 7.72895 10.9567 7.72895 11.288 7.72895 11.5567 7.46032 11.5567 7.12895V4.60666C11.5567 2.64239 9.97306 1.05565 8.00879 1.05566zM8.00039 9.4668C8.33176 9.4668 8.60039 9.73543 8.60039 10.0668V12.0827C8.60039 12.4141 8.33176 12.6827 8.00039 12.6827 7.66902 12.6827 7.40039 12.4141 7.40039 12.0827V10.0668C7.40039 9.73543 7.66902 9.4668 8.00039 9.4668z",fillRule:"evenodd",clipRule:"evenodd"}}]},LockSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"lock-single",ref,icon:element$7}))});LockSingle.displayName="LockSingle";var element$6={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M11.3536 6.14645C11.5488 6.34171 11.5488 6.65829 11.3536 6.85355L8.35355 9.85355C8.15829 10.0488 7.84171 10.0488 7.64645 9.85355L4.64645 6.85355C4.45118 6.65829 4.45118 6.34171 4.64645 6.14645C4.84171 5.95118 5.15829 5.95118 5.35355 6.14645L8 8.79289L10.6464 6.14645C10.8417 5.95118 11.1583 5.95118 11.3536 6.14645Z",fillRule:"evenodd",clipRule:"evenodd"}}]},MoreDownSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"more-down-single",ref,icon:element$6}))});MoreDownSingle.displayName="MoreDownSingle";var element$5={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.90913 3.57564C6.14345 3.34132 6.52335 3.34132 6.75766 3.57564L10.7577 7.57564C10.992 7.80995 10.992 8.18985 10.7577 8.42417L6.75766 12.4242C6.52335 12.6585 6.14345 12.6585 5.90913 12.4242C5.67482 12.1899 5.67482 11.81 5.90913 11.5756L9.48487 7.9999L5.90913 4.42417C5.67482 4.18985 5.67482 3.80995 5.90913 3.57564Z",fillRule:"evenodd",clipRule:"evenodd"}}]},MoreSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"more-single",ref,icon:element$5}))});MoreSingle.displayName="MoreSingle";var element$4={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_1204",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#DCDCDC",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_1204)"},children:[{tag:"rect",attrs:{width:12.62,height:2.79,x:1.69,y:12.25,fill:"colorChannel1",rx:1.4}},{tag:"path",attrs:{fill:"currentColor",d:"M7.74646 2.1642C7.34284 1.65121 6.85947 1.28205 6.38447 1.09593C5.86863 0.893787 5.15166 0.852126 4.70047 1.42917C4.29842 1.94344 4.33082 2.70249 4.57691 3.50395C4.68808 3.8661 4.86846 4.22254 5.12522 4.56617C5.13695 4.58185 5.14927 4.5968 5.16211 4.61102C5.17152 4.6214 5.18122 4.63139 5.19115 4.64096C5.20459 4.65393 5.21855 4.66618 5.23296 4.6777L3.5064 6.40422C3.26756 6.64306 3.26756 7.03033 3.5064 7.26919L7.23756 11.0004C7.47648 11.2392 7.86375 11.2392 8.1026 11.0004L12.8329 6.27001C13.0717 6.03117 13.0717 5.6439 12.8329 5.40505L9.10172 1.67387C8.86288 1.43503 8.47561 1.43503 8.23676 1.67387L7.74646 2.1642ZM7.46162 4.50638C7.47252 4.57574 7.48163 4.64652 7.4888 4.71868C7.52232 5.05481 7.82194 5.30013 8.15807 5.26661C8.4942 5.23311 8.73954 4.93345 8.70601 4.59732C8.65786 4.11463 8.54251 3.6666 8.37892 3.26169L8.66928 2.97135L11.5354 5.83753L10.6106 6.76237H4.87824L7.40802 4.2326C7.42885 4.32128 7.44684 4.41255 7.46162 4.50638ZM6.87284 3.03784C6.57441 2.62008 6.22261 2.34634 5.93815 2.23487C5.80233 2.18165 5.71528 2.17827 5.67638 2.18335C5.6725 2.18387 5.66929 2.18443 5.6666 2.18497L5.6619 2.18607C5.64166 2.21954 5.53594 2.45979 5.74626 3.1449C5.81241 3.36036 5.92262 3.58602 6.09307 3.81761L6.87284 3.03784Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M12.1932 11.5463C12.6454 11.5463 13.012 11.1797 13.012 10.7275C13.012 10.4475 12.6981 9.92821 12.459 9.5733C12.3299 9.38173 12.0564 9.38174 11.9274 9.57331C11.6883 9.92822 11.3744 10.4475 11.3744 10.7275C11.3744 11.1797 11.741 11.5463 12.1932 11.5463Z"}}]}]},PaintBucket=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"paint-bucket",ref,icon:element$4}))});PaintBucket.displayName="PaintBucket";var element$3={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_1138",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#DCDCDC",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_1138)"},children:[{tag:"path",attrs:{fill:"colorChannel1",d:"M7.74692 9.12463C7.74692 9.46018 8.01893 9.73219 8.35448 9.73219H11.4933C11.8288 9.73219 12.1009 9.46018 12.1009 9.12463 12.1009 8.78909 11.8288 8.51707 11.4933 8.51707H8.35448C8.01893 8.51707 7.74692 8.78909 7.74692 9.12463zM10.8636 10.8523C10.8636 11.1879 10.5915 11.4599 10.256 11.4599H8.35448C8.01893 11.4599 7.74692 11.1879 7.74692 10.8523 7.74692 10.5168 8.01893 10.2447 8.35448 10.2447H10.256C10.5915 10.2447 10.8636 10.5168 10.8636 10.8523z"}},{tag:"path",attrs:{fill:"currentColor",d:"M5.4791 1.98268C5.47913 1.71529 5.87912 1.49854 6.37252 1.49854C6.86593 1.49854 7.26592 1.71529 7.26595 1.98268H7.62187C8.22277 1.98268 8.72459 2.39534 8.84412 2.9452H9.39563C10.0856 2.9452 10.6449 3.48923 10.6449 4.16032V6.00569H12.1261C13.161 6.00569 14 6.82174 14 7.82838V11.334C14 11.8174 13.8025 12.281 13.4511 12.6228L12.0693 13.9647C11.7179 14.3065 11.2412 14.4985 10.7442 14.4985H7.91116C7.05024 14.4985 6.32492 14.0431 6.10535 13.2737H3.34925C2.6593 13.2737 2.09998 12.7297 2.09998 12.0586V4.16032C2.09998 3.48923 2.6593 2.9452 3.34925 2.9452H3.90107C4.0206 2.39534 4.52241 1.98268 5.12332 1.98268H5.4791ZM3.97249 4.16032H3.24925L3.24925 12.0586H6.03725V7.82838C6.03725 6.82174 6.87623 6.00569 7.91116 6.00569H9.49563V4.16032H8.7727C8.58289 4.59611 8.13909 4.90183 7.62187 4.90183H5.12332C4.6061 4.90183 4.1623 4.59611 3.97249 4.16032ZM5.12332 2.89403H7.62187C7.79436 2.89403 7.93419 3.03003 7.93419 3.19781V3.68671C7.93419 3.85448 7.79436 3.99049 7.62187 3.99049H5.12332C4.95083 3.99049 4.811 3.85448 4.811 3.68671V3.19781C4.811 3.03003 4.95083 2.89403 5.12332 2.89403ZM7.91116 7.11157C7.56618 7.11157 7.28652 7.38359 7.28652 7.71913V12.7851C7.28652 13.1206 7.56618 13.3927 7.91116 13.3927H10.7442C10.8401 13.3927 10.9337 13.3712 11.0182 13.3311C11.1373 13.2746 11.1859 13.1423 11.1859 13.0134V12.0066C11.1859 11.8724 11.2978 11.7636 11.4358 11.7636H12.4709C12.6034 11.7636 12.7394 11.7163 12.7975 11.6004C12.8388 11.5182 12.8608 11.4272 12.8608 11.334V7.71913C12.8608 7.38359 12.5811 7.11157 12.2362 7.11157H7.91116Z",fillRule:"evenodd",clipRule:"evenodd"}}]}]},PasteSpecial=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"paste-special",ref,icon:element$3}))});PasteSpecial.displayName="PasteSpecial";var element$2={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.785 6.77762C5.78908 6.7777 5.79316 6.77774 5.79725 6.77774C5.80134 6.77774 5.80543 6.7777 5.8095 6.77762H10.0184C10.0225 6.7777 10.0266 6.77774 10.0307 6.77774C10.0347 6.77774 10.0388 6.7777 10.0429 6.77762H13.6638V7.63727C13.6638 7.96864 13.9324 8.23727 14.2638 8.23727C14.5951 8.23727 14.8638 7.96864 14.8638 7.63727V3.9999C14.8638 2.56395 13.6997 1.39989 12.2637 1.3999L3.56389 1.39999C2.12797 1.40001 0.96393 2.56405 0.96392 3.99998L0.963867 11.6666C0.963857 13.1025 2.12792 14.2666 3.56387 14.2666H8.0542C8.38557 14.2666 8.6542 13.9979 8.6542 13.6666C8.6542 13.3352 8.38557 13.0666 8.0542 13.0666H3.56387C2.79067 13.0666 2.16386 12.4398 2.16387 11.6666L2.1639 6.77762H5.785ZM6.39725 2.59996L9.43065 2.59993V5.57762H6.39725V2.59996ZM5.19725 5.57762V2.59998L3.56391 2.59999C2.79072 2.6 2.16393 3.22679 2.16392 3.99998L2.16391 5.57762H5.19725ZM13.6638 5.57762V3.9999C13.6638 3.2267 13.037 2.59989 12.2638 2.5999L10.6307 2.59992V5.57762H13.6638Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M14.1223 10.2333V10.7496C14.7087 10.9869 15.1223 11.5618 15.1223 12.2333V12.8999C15.1223 13.7836 14.406 14.4999 13.5223 14.4999H11.5223C10.6387 14.4999 9.92235 13.7836 9.92235 12.8999V12.2333C9.92235 11.5618 10.336 10.9869 10.9223 10.7496V10.2333C10.9223 9.34961 11.6387 8.63328 12.5223 8.63328C13.406 8.63328 14.1223 9.34961 14.1223 10.2333ZM11.1223 12.2333C11.1223 12.0124 11.3014 11.8333 11.5223 11.8333H13.5223C13.7433 11.8333 13.9223 12.0124 13.9223 12.2333V12.8999C13.9223 13.1209 13.7433 13.2999 13.5223 13.2999H11.5223C11.3014 13.2999 11.1223 13.1209 11.1223 12.8999V12.2333ZM12.9223 10.2333V10.6333H12.1223V10.2333C12.1223 10.0124 12.3014 9.83328 12.5223 9.83328C12.7433 9.83328 12.9223 10.0124 12.9223 10.2333Z",fillRule:"evenodd",clipRule:"evenodd"}}]},ProtectSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"protect-single",ref,icon:element$2}))});ProtectSingle.displayName="ProtectSingle";var element$1={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM8.00008 12.3671C8.46031 12.3671 8.83342 11.994 8.83342 11.5338C8.83342 11.0735 8.46031 10.7004 8.00008 10.7004C7.53985 10.7004 7.16675 11.0735 7.16675 11.5338C7.16675 11.994 7.53985 12.3671 8.00008 12.3671ZM8.5999 4.4335C8.5999 4.10213 8.33127 3.8335 7.9999 3.8335C7.66853 3.8335 7.3999 4.10213 7.3999 4.4335V9.36683C7.3999 9.6982 7.66853 9.96683 7.9999 9.96683C8.33127 9.96683 8.5999 9.6982 8.5999 9.36683V4.4335Z",fillRule:"evenodd",clipRule:"evenodd"}}]},WarningSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"warning-single",ref,icon:element$1}))});WarningSingle.displayName="WarningSingle";var element={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.6551 1.98906C11.7476 1.08113 10.2757 1.08149 9.3686 1.98987L4.82542 6.53955C4.75087 6.61421 4.69336 6.70411 4.65682 6.80309L3.2461 10.625C3.16506 10.8446 3.21909 11.0912 3.3845 11.2568C3.54991 11.4224 3.79651 11.4767 4.01616 11.3959L7.85031 9.98517C7.94979 9.94856 8.04014 9.89077 8.11508 9.81579L12.6552 5.27327C13.5618 4.36621 13.5618 2.89607 12.6551 1.98906ZM10.2177 2.83779C10.6562 2.39869 11.3677 2.39851 11.8064 2.8374C12.2447 3.27584 12.2447 3.9865 11.8065 4.42497L7.3392 8.89457L4.82213 9.82068L5.74706 7.31487L10.2177 2.83779Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.79238 13.2999C1.46101 13.2999 1.19238 13.5685 1.19238 13.8999C1.19238 14.2313 1.46101 14.4999 1.79238 14.4999H14.4924C14.8238 14.4999 15.0924 14.2313 15.0924 13.8999C15.0924 13.5685 14.8238 13.2999 14.4924 13.2999H1.79238Z"}}]},WriteSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"write-single",ref,icon:element}))});WriteSingle.displayName="WriteSingle";function getUserListEqual(userList1,userList2){if(userList1.length!==userList2.length)return!1;const sorted1=userList1.sort((a,b)=>a.id.localeCompare(b.id)),sorted2=userList2.sort((a,b)=>a.id.localeCompare(b.id));return sorted1.every((user,index)=>{var _a61,_b;return((_a61=user.subject)==null?void 0:_a61.userID)===((_b=sorted2[index].subject)==null?void 0:_b.userID)&&user.role===sorted2[index].role})}__name(getUserListEqual,"getUserListEqual");function checkCellContentInRanges(worksheet,ranges){return ranges.some(range=>checkCellContentInRange(worksheet,range))}__name(checkCellContentInRanges,"checkCellContentInRanges");function checkCellContentInRange(worksheet,range){const{startRow,startColumn,endColumn,endRow}=range,cellMatrix=worksheet.getMatrixWithMergedCells(startRow,startColumn,endRow,endColumn);let someCellGoingToBeRemoved=!1;return cellMatrix.forValue((row,col,cellData)=>{if(cellData&&(row!==startRow||col!==startColumn)&&worksheet.cellHasValue(cellData))return someCellGoingToBeRemoved=!0,!1}),someCellGoingToBeRemoved}__name(checkCellContentInRange,"checkCellContentInRange");function getClearContentMutationParamsForRanges(accessor,unitId,worksheet,ranges){const undos=[],redos=[],subUnitId=worksheet.getSheetId();return ranges.forEach(range=>{const redoMatrix=getClearContentMutationParamForRange(worksheet,range),redoMutationParams={unitId,subUnitId,cellValue:redoMatrix.getData()},undoMutationParams=sheets.SetRangeValuesUndoMutationFactory(accessor,redoMutationParams);undos.push({id:sheets.SetRangeValuesMutation.id,params:undoMutationParams}),redos.push({id:sheets.SetRangeValuesMutation.id,params:redoMutationParams})}),{undos,redos}}__name(getClearContentMutationParamsForRanges,"getClearContentMutationParamsForRanges");function getClearContentMutationParamForRange(worksheet,range){const{startRow,startColumn,endColumn,endRow}=range,cellMatrix=worksheet.getMatrixWithMergedCells(startRow,startColumn,endRow,endColumn,core.CellModeEnum.Intercepted),redoMatrix=new core.ObjectMatrix;let leftTopCellValue=null;return cellMatrix.forValue((row,col,cellData)=>{var _a61,_b,_c,_d;cellData&&row>=startRow&&col>=startColumn&&(!leftTopCellValue&&worksheet.cellHasValue(cellData)&&(cellData.v!==""||((_d=(_c=(_b=(_a61=cellData.p)==null?void 0:_a61.body)==null?void 0:_b.dataStream)==null?void 0:_c.length)!=null?_d:0)>2)&&(leftTopCellValue=cellData),redoMatrix.setValue(row,col,null))}),redoMatrix.setValue(startRow,startColumn,leftTopCellValue),redoMatrix}__name(getClearContentMutationParamForRange,"getClearContentMutationParamForRange");function getCellIndexByOffsetWithMerge(offsetX,offsetY,scene,skeleton){const activeViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([offsetX,offsetY]));if(!activeViewport)return;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY},cellIndex=skeleton.getCellIndexByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY),mergeCell=skeleton.worksheet.getMergedCell(cellIndex.row,cellIndex.column);return{actualRow:mergeCell?mergeCell.startRow:cellIndex.row,actualCol:mergeCell?mergeCell.startColumn:cellIndex.column,mergeCell,row:cellIndex.row,col:cellIndex.column}}__name(getCellIndexByOffsetWithMerge,"getCellIndexByOffsetWithMerge");function getViewportByCell(row,column,scene,worksheet){const freeze=worksheet.getFreeze();if(!freeze||freeze.startRow<=0&&freeze.startColumn<=0||row>=freeze.startRow&&column>=freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(row<freeze.startRow&&column<freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(row<freeze.startRow&&column>=freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(row>=freeze.startRow&&column<freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)}__name(getViewportByCell,"getViewportByCell");function transformBound2OffsetBound(originBound,scene,skeleton,worksheet){const topLeft=transformPosition2Offset(originBound.left,originBound.top,scene,skeleton,worksheet),bottomRight=transformPosition2Offset(originBound.right,originBound.bottom,scene,skeleton,worksheet);return{left:topLeft.x,top:topLeft.y,right:bottomRight.x,bottom:bottomRight.y}}__name(transformBound2OffsetBound,"transformBound2OffsetBound");function transformPosition2Offset(x,y,scene,skeleton,worksheet){const{scaleX,scaleY}=scene.getAncestorScale(),viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!viewMain)return{x,y};const freeze=worksheet.getFreeze(),{startColumn,startRow,xSplit,ySplit}=freeze,startSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(startRow-ySplit,startColumn-xSplit),endSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(startRow,startColumn),{rowHeaderWidth,columnHeaderHeight}=skeleton,freezeWidth=endSheetView.startX-startSheetView.startX,freezeHeight=endSheetView.startY-startSheetView.startY,{top,left,viewportScrollX,viewportScrollY}=viewMain;let offsetX;x>left?offsetX=(x-viewportScrollX)*scaleX:offsetX=(freezeWidth+rowHeaderWidth-(left-x))*scaleX;let offsetY;return y>top?offsetY=(y-viewportScrollY)*scaleY:offsetY=(freezeHeight+columnHeaderHeight-(top-y))*scaleX,{x:offsetX,y:offsetY}}__name(transformPosition2Offset,"transformPosition2Offset");function getCellRealRange(workbook,worksheet,skeleton,row,col){let actualRow=row,actualCol=col;skeleton.overflowCache.forValue((r2,c,range)=>{range.startRow<=actualRow&&range.endRow>=actualRow&&range.startColumn<=actualCol&&range.endColumn>=actualCol&&(actualCol=c,actualRow=r2)});const actualCell=skeleton.getCellWithCoordByIndex(actualRow,actualCol);return{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),workbook,worksheet,row:actualCell.actualRow,col:actualCell.actualColumn}}__name(getCellRealRange,"getCellRealRange");function getHoverCellPosition(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY){const{scene}=currentRender,unitId=workbook.getUnitId(),{skeleton,sheetId}=skeletonParam,cellIndex=getCellIndexByOffsetWithMerge(offsetX,offsetY,scene,skeleton);if(!cellIndex)return null;let{actualCol,actualRow}=cellIndex;const originLocation={unitId,subUnitId:sheetId,workbook,worksheet,row:actualRow,col:actualCol};skeleton.overflowCache.forValue((r2,c,range)=>{range.startRow<=actualRow&&range.endRow>=actualRow&&range.startColumn<=actualCol&&range.endColumn>=actualCol&&(actualCol=c,actualRow=r2)});const actualCell=skeleton.getCellWithCoordByIndex(actualRow,actualCol),location=getCellRealRange(workbook,worksheet,skeleton,actualRow,actualCol);let anchorCell;actualCell.mergeInfo?anchorCell=actualCell.mergeInfo:anchorCell={startRow:location.row,endRow:location.row,startColumn:location.col,endColumn:location.col};const activeViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([offsetX,offsetY]));if(!activeViewport)return;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY};return{position:{startX:(skeleton.getOffsetByPositionX(anchorCell.startColumn-1)-scrollXY.x)*scaleX,endX:(skeleton.getOffsetByPositionX(anchorCell.endColumn)-scrollXY.x)*scaleX,startY:(skeleton.getOffsetByPositionY(anchorCell.startRow-1)-scrollXY.y)*scaleY,endY:(skeleton.getOffsetByPositionY(anchorCell.endRow)-scrollXY.y)*scaleY},location:originLocation,overflowLocation:location}}__name(getHoverCellPosition,"getHoverCellPosition");const AddWorksheetMergeCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),univerInstanceService=accessor.get(core.IUniverInstanceService),confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService),unitId=params.unitId,subUnitId=params.subUnitId,selections=params.selections,ranges=sheets.getAddMergeMutationRangeByType(selections,params.value),worksheet=univerInstanceService.getUniverSheetInstance(unitId).getSheetBySheetId(subUnitId),redoMutations=[],undoMutations=[],willClearSomeCell=checkCellContentInRanges(worksheet,ranges);if(willClearSomeCell&&!params.defaultMerge&&!await confirmService.confirm({id:"merge.confirm.add-worksheet-merge",title:{title:"merge.confirm.title"},cancelText:localeService.t("merge.confirm.cancel"),confirmText:localeService.t("merge.confirm.confirm")}))return!1;const removeMergeMutationParams={unitId,subUnitId,ranges:core.Tools.deepClone(ranges)},addMergeMutationParams={unitId,subUnitId,ranges:core.Tools.deepClone(ranges)},undoRemoveMergeMutationParams=sheets.RemoveMergeUndoMutationFactory(accessor,removeMergeMutationParams),undoMutationParams=sheets.AddMergeUndoMutationFactory(accessor,addMergeMutationParams);if(undoRemoveMergeMutationParams.ranges.length>0&&redoMutations.push({id:sheets.RemoveWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams}),redoMutations.push({id:sheets.AddWorksheetMergeMutation.id,params:addMergeMutationParams}),undoMutations.push({id:sheets.RemoveWorksheetMergeMutation.id,params:undoMutationParams}),undoRemoveMergeMutationParams.ranges.length>0&&undoMutations.push({id:sheets.AddWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams}),willClearSomeCell){const data=getClearContentMutationParamsForRanges(accessor,unitId,worksheet,ranges);redoMutations.unshift(...data.redos),undoMutations.push(...data.undos)}const addMergeRedoSelectionsMutation=sheets.AddMergeRedoSelectionsOperationFactory(accessor,params,ranges);addMergeRedoSelectionsMutation&&redoMutations.push(addMergeRedoSelectionsMutation);const addMergeUndoSelectionsMutation=sheets.AddMergeUndoSelectionsOperationFactory(accessor,params);addMergeUndoSelectionsMutation&&undoMutations.push(addMergeUndoSelectionsMutation);const interceptor=accessor.get(sheets.SheetInterceptorService).onCommandExecute({id:AddWorksheetMergeCommand.id,params:{unitId,subUnitId,ranges}});return redoMutations.push(...interceptor.redos),undoMutations.push(...interceptor.undos),core.sequenceExecute(redoMutations,commandService).result?(undoRedoService.pushUndoRedo({unitID:unitId,undoMutations,redoMutations}),!0):!1},"handler")},AddWorksheetMergeAllCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-all",handler:__name(async accessor=>{var _a61;const commandService=accessor.get(core.ICommandService),selections=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range),mergeableSelections=getMergeableSelectionsByType(MergeType.MergeAll,selections);if(!(mergeableSelections!=null&&mergeableSelections.length))return!1;const workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return!1;const workSheet=workbook.getActiveSheet();if(!workSheet)return!1;const unitId=workbook.getUnitId(),subUnitId=workSheet.getSheetId();return commandService.executeCommand(AddWorksheetMergeCommand.id,{selections:mergeableSelections,unitId,subUnitId})},"handler")},AddWorksheetMergeVerticalCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-vertical",handler:__name(async accessor=>{var _a61;const commandService=accessor.get(core.ICommandService),selections=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range),mergeableSelections=getMergeableSelectionsByType(MergeType.MergeVertical,selections);if(!(mergeableSelections!=null&&mergeableSelections.length))return!1;const workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return!1;const workSheet=workbook.getActiveSheet();if(!workSheet)return!1;const unitId=workbook.getUnitId(),subUnitId=workSheet.getSheetId();return commandService.executeCommand(AddWorksheetMergeCommand.id,{value:core.Dimension.COLUMNS,selections:mergeableSelections,unitId,subUnitId})},"handler")},AddWorksheetMergeHorizontalCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-horizontal",handler:__name(async accessor=>{var _a61;const commandService=accessor.get(core.ICommandService),selections=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range),mergeableSelections=getMergeableSelectionsByType(MergeType.MergeHorizontal,selections);if(!(mergeableSelections!=null&&mergeableSelections.length))return!1;const workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return!1;const workSheet=workbook.getActiveSheet();if(!workSheet)return!1;const unitId=workbook.getUnitId(),subUnitId=workSheet.getSheetId();return commandService.executeCommand(AddWorksheetMergeCommand.id,{value:core.Dimension.ROWS,selections:mergeableSelections,unitId,subUnitId})},"handler")},DeleteRangeMoveLeftConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-range-move-left-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endColumn:worksheet.getColumnCount()-1};const getRowLength=__name(range2=>range2.endRow-range2.startRow,"getRowLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getRowLength(mergeRange)>getRowLength(interSectedRange):!1})||await confirmService.confirm({id:DeleteRangeMoveLeftConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.DeleteRangeMoveLeftCommand.id):!0},"handler")},DeleteRangeMoveUpConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-range-move-up-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endRow:worksheet.getRowCount()-1};for(let i=range.startRow;i<=range.endRow;i++)if(worksheet.getRowFiltered(i)&&await confirmService.confirm({id:DeleteRangeMoveUpConfirmCommand.id,title:{title:localeService.t("filter.confirm.error")},children:{title:localeService.t("filter.confirm.notAllowedToInsertRange")},confirmText:localeService.t("button.confirm")}))return!1;const getColLength=__name(range2=>range2.endColumn-range2.startColumn,"getColLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getColLength(mergeRange)>getColLength(interSectedRange):!1})||await confirmService.confirm({id:DeleteRangeMoveUpConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.DeleteRangeMoveUpCommand.id):!0},"handler")},InsertRangeMoveDownConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.insert-range-move-down-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endRow:worksheet.getRowCount()-1};for(let i=range.startRow;i<=range.endRow;i++)if(worksheet.getRowFiltered(i)&&await confirmService.confirm({id:InsertRangeMoveDownConfirmCommand.id,title:{title:localeService.t("filter.confirm.error")},children:{title:localeService.t("filter.confirm.notAllowedToInsertRange")},confirmText:localeService.t("button.confirm")}))return!1;const getColLength=__name(range2=>range2.endColumn-range2.startColumn,"getColLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getColLength(mergeRange)>getColLength(interSectedRange):!1})||await confirmService.confirm({id:InsertRangeMoveDownConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.InsertRangeMoveDownCommand.id):!0},"handler")},InsertRangeMoveRightConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.insert-range-move-right-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endColumn:worksheet.getColumnCount()-1};const getRowLength=__name(range2=>range2.endRow-range2.startRow,"getRowLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getRowLength(mergeRange)>getRowLength(interSectedRange):!1})||await confirmService.confirm({id:InsertRangeMoveRightConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.InsertRangeMoveRightCommand.id):!0},"handler")};var _=(E=>(E[E.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",E[E.UNIVER_DOC=1]="UNIVER_DOC",E[E.UNIVER_SHEET=2]="UNIVER_SHEET",E[E.UNIVER_SLIDE=3]="UNIVER_SLIDE",E[E.UNIVER_PROJECT=4]="UNIVER_PROJECT",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(_||{}),R=(E=>(E[E.View=0]="View",E[E.Edit=1]="Edit",E[E.ManageCollaborator=2]="ManageCollaborator",E[E.Print=3]="Print",E[E.Duplicate=4]="Duplicate",E[E.Comment=5]="Comment",E[E.Copy=6]="Copy",E[E.Share=7]="Share",E[E.Export=8]="Export",E[E.MoveWorksheet=9]="MoveWorksheet",E[E.DeleteWorksheet=10]="DeleteWorksheet",E[E.HideWorksheet=11]="HideWorksheet",E[E.RenameWorksheet=12]="RenameWorksheet",E[E.CreateWorksheet=13]="CreateWorksheet",E[E.SetWorksheetStyle=14]="SetWorksheetStyle",E[E.EditWorksheetCell=15]="EditWorksheetCell",E[E.InsertHyperlink=16]="InsertHyperlink",E[E.Sort=17]="Sort",E[E.Filter=18]="Filter",E[E.PivotTable=19]="PivotTable",E[E.FloatImg=20]="FloatImg",E[E.History=21]="History",E[E.RwHgtClWdt=22]="RwHgtClWdt",E[E.ViemRwHgtClWdt=23]="ViemRwHgtClWdt",E[E.ViewFilter=24]="ViewFilter",E[E.MoveSheet=25]="MoveSheet",E[E.DeleteSheet=26]="DeleteSheet",E[E.HideSheet=27]="HideSheet",E[E.CopySheet=28]="CopySheet",E[E.RenameSheet=29]="RenameSheet",E[E.CreateSheet=30]="CreateSheet",E[E.SelectProtectedCells=31]="SelectProtectedCells",E[E.SelectUnProtectedCells=32]="SelectUnProtectedCells",E[E.SetCellStyle=33]="SetCellStyle",E[E.SetCellValue=34]="SetCellValue",E[E.SetRowStyle=35]="SetRowStyle",E[E.SetColumnStyle=36]="SetColumnStyle",E[E.InsertRow=37]="InsertRow",E[E.InsertColumn=38]="InsertColumn",E[E.DeleteRow=39]="DeleteRow",E[E.DeleteColumn=40]="DeleteColumn",E[E.EditExtraObject=41]="EditExtraObject",E[E.Delete=42]="Delete",E[E.RecoverHistory=43]="RecoverHistory",E[E.ViewHistory=44]="ViewHistory",E[E.CreatePermissionObject=45]="CreatePermissionObject",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(R||{}),S=(E=>(E[E.Reader=0]="Reader",E[E.Editor=1]="Editor",E[E.Owner=2]="Owner",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(S||{}),L=(E=>(E[E.Unkonwn=0]="Unkonwn",E[E.Workbook=1]="Workbook",E[E.Worksheet=2]="Worksheet",E[E.SelectRange=3]="SelectRange",E[E.Document=4]="Document",E[E.Slide=5]="Slide",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(L||{}),M=(E=>(E[E.SomeCollaborator=0]="SomeCollaborator",E[E.AllCollaborator=1]="AllCollaborator",E[E.OneSelf=2]="OneSelf",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(M||{});const UNIVER_SHEET_PERMISSION_PANEL="UNIVER_SHEET_PERMISSION_PANEL",UNIVER_SHEET_PERMISSION_USER_PART="UNIVER_SHEET_PERMISSION_USER_PART",UNIVER_SHEET_PERMISSION_BACKGROUND="UNIVER_SHEET_PERMISSION_BACKGROUND",UNIVER_SHEET_PERMISSION_USER_DIALOG="UNIVER_SHEET_PERMISSION_USER_DIALOG",UNIVER_SHEET_PERMISSION_DIALOG="UNIVER_SHEET_PERMISSION_DIALOG",UNIVER_SHEET_PERMISSION_USER_DIALOG_ID="UNIVER_SHEET_PERMISSION_USER_DIALOG_ID",UNIVER_SHEET_PERMISSION_DIALOG_ID="UNIVER_SHEET_PERMISSION_DIALOG_ID",subUnitPermissionTypeMap={[R.Copy]:"Copy",[R.SetCellStyle]:"SetCellStyle",[R.SetCellValue]:"SetCellValue",[R.SetRowStyle]:"SetRowStyle",[R.SetColumnStyle]:"SetColumnStyle",[R.InsertRow]:"InsertRow",[R.InsertColumn]:"InsertColumn",[R.InsertHyperlink]:"InsertHyperlink",[R.DeleteRow]:"DeleteRow",[R.DeleteColumn]:"DeleteColumn",[R.Sort]:"Sort",[R.Filter]:"Filter",[R.PivotTable]:"PivotTable",[R.EditExtraObject]:"EditExtraObject"},defaultWorksheetUnitActionList=[R.Copy,R.SetCellStyle,R.SetCellValue,R.SetRowStyle,R.SetColumnStyle,R.InsertRow,R.InsertColumn,R.InsertHyperlink,R.DeleteRow,R.DeleteColumn,R.Sort,R.Filter,R.PivotTable,R.EditExtraObject,R.View],permissionMenuIconKey="sheet-permission-menu-icon",permissionDeleteIconKey="sheet-permission-delete-icon",permissionEditIconKey="sheet-permission-edit-icon",permissionCheckIconKey="sheet-permission-check-icon",permissionLockIconKey="sheet-permission-lock-icon",DEFAULT_RANGE_RULE={unitId:"",subUnitId:"",permissionId:"",unitType:sheets.UnitObject.SelectRange,id:"",ranges:[],viewState:sheets.ViewStateEnum.OthersCanView,editState:sheets.EditStateEnum.OnlyMe},_SheetPermissionPanelModel=class _SheetPermissionPanelModel{constructor(){__publicField(this,"_rule",DEFAULT_RANGE_RULE);__publicField(this,"_visible",!1)}setVisible(v){this._visible=v}getVisible(){return this._visible}reset(){this.setVisible(!1)}};__name(_SheetPermissionPanelModel,"SheetPermissionPanelModel");let SheetPermissionPanelModel=_SheetPermissionPanelModel;const _SheetPermissionUserManagerService=class _SheetPermissionUserManagerService{constructor(){__publicField(this,"_userList",[]);__publicField(this,"_oldCollaboratorList",[]);__publicField(this,"_selectUserList",[]);__publicField(this,"_selectUserList$",new rxjs.BehaviorSubject(this._selectUserList));__publicField(this,"selectUserList$",this._selectUserList$.asObservable())}get userList(){return this._userList}setCanEditUserList(userList){this._userList=userList}reset(){this._userList=[],this._oldCollaboratorList=[],this._selectUserList=[],this._selectUserList$.next([])}get oldCollaboratorList(){return this._oldCollaboratorList}setOldCollaboratorList(userList){this._oldCollaboratorList=userList}get selectUserList(){return this._selectUserList}setSelectUserList(userList){this._selectUserList=userList,this._selectUserList$.next(userList)}};__name(_SheetPermissionUserManagerService,"SheetPermissionUserManagerService");let SheetPermissionUserManagerService=_SheetPermissionUserManagerService;const SheetPermissionOpenPanelOperation={type:core.CommandType.OPERATION,id:"sheet-permission.operation.openPanel",async handler(accessor,_params={}){const sidebarService=accessor.get(ui.ISidebarService),sheetPermissionPanelModel=accessor.get(SheetPermissionPanelModel),sheetPermissionUserManagerService=accessor.get(SheetPermissionUserManagerService),{showDetail=!0,fromSheetBar=!1,rule,oldRule}=_params,sidebarProps={header:{title:"permission.panel.title"},children:{label:UNIVER_SHEET_PERMISSION_PANEL,showDetail,fromSheetBar,rule,oldRule},width:330,onClose:__name(()=>{sheetPermissionPanelModel.reset(),sheetPermissionUserManagerService.reset()},"onClose")};return sheetPermissionPanelModel.setVisible(!0),sidebarService.open(sidebarProps),!0}},AddRangeProtectionFromToolbarCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-toolbar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0}),!0}},AddRangeProtectionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-context-menu",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0}),!0}},ViewSheetPermissionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-context-menu",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!1}),!0}},AddRangeProtectionFromSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-sheet-bar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{fromSheetBar:!0,showDetail:!0}),!0}},ViewSheetPermissionFromSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-sheet-bar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!1}),!0}},DeleteRangeProtectionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-range-protection-from-context-menu",async handler(accessor){var _a61;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),undoRedoService=accessor.get(core.IUndoRedoService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId)return commandService.executeCommand(sheets.DeleteWorksheetProtectionCommand.id,{unitId,subUnitId,rule:worksheetRule});{const selectRange=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!selectRange)return!1;const rule=accessor.get(sheets.RangeProtectionRuleModel).getSubunitRuleList(unitId,subUnitId).find(item=>item.ranges.some(range=>core.Rectangle.intersects(range,selectRange)));if(rule){const redoMutationParam={unitId,subUnitId,ruleIds:[rule.id]};return await commandService.executeCommand(sheets.DeleteRangeProtectionMutation.id,redoMutationParam)&&undoRedoService.pushUndoRedo({unitID:unitId,redoMutations:[{id:sheets.DeleteRangeProtectionMutation.id,params:redoMutationParam}],undoMutations:[{id:sheets.AddRangeProtectionMutation.id,params:{unitId,subUnitId,rules:[rule]}}]}),!0}else return!1}}},SetRangeProtectionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-protection-from-context-menu",async handler(accessor){var _a61;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId){const oldRule={...worksheetRule,unitId,subUnitId,ranges:[]};return await commandService.executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0,rule:core.Tools.deepClone(oldRule),oldRule:core.Tools.deepClone(oldRule)}),!0}else{const selectRange=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!selectRange)return!1;const rule=accessor.get(sheets.RangeProtectionRuleModel).getSubunitRuleList(unitId,subUnitId).find(item=>{var _a62;return(_a62=item==null?void 0:item.ranges)==null?void 0:_a62.some(range=>core.Rectangle.intersects(range,selectRange))});if(rule){const oldRule={...rule,unitId,subUnitId};return await commandService.executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0,rule:core.Tools.deepClone(oldRule),oldRule:core.Tools.deepClone(oldRule)}),!0}else return!1}}},RemoveRowConfirmCommand={id:"sheet.command.remove-row-confirm",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a61;const selectionManagerService=accessor.get(sheets.SheetsSelectionsService);let range=params==null?void 0:params.range;if(range||(range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range),!range)return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allRowRanges=worksheet.getVisibleRows();if(isAllRowsCovered(allRowRanges,[range])){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.remove-row",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.deleteAllRowsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.RemoveRowCommand.id,{range}),!0},"handler")},RemoveColConfirmCommand={id:"sheet.command.remove-col-confirm",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a61;const selectionManagerService=accessor.get(sheets.SheetsSelectionsService);let range=params==null?void 0:params.range;if(range||(range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range),!range)return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allColumnRanges=worksheet.getVisibleCols();if(isAllColumnsCovered(allColumnRanges,[range])){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.remove-col",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.deleteAllColumnsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.RemoveColCommand.id,{range}),!0},"handler")},RemoveSheetConfirmCommand={id:"sheet.command.remove-sheet-confirm",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const{subUnitId}=params,confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.remove-sheet",title:{title:localeService.t("sheetConfig.deleteSheet")},children:{title:localeService.t("sheetConfig.deleteSheetContent")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?(await commandService.executeCommand(sheets.RemoveSheetCommand.id,{subUnitId}),!0):!1},"handler")},ISheetBarService=core.createIdentifier("univer.sheetbar-service"),_SheetBarService=class _SheetBarService extends core.Disposable{constructor(){super();__publicField(this,"renameId$");__publicField(this,"removeId$");__publicField(this,"scroll$");__publicField(this,"scrollX$");__publicField(this,"addSheet$");__publicField(this,"_renameId$");__publicField(this,"_removeId$");__publicField(this,"_scroll$");__publicField(this,"_scrollX$");__publicField(this,"_addSheet$");__publicField(this,"_currentHandler",null);this._renameId$=new rxjs.Subject,this.renameId$=this._renameId$.asObservable(),this._removeId$=new rxjs.Subject,this.removeId$=this._removeId$.asObservable(),this._scroll$=new rxjs.Subject,this.scroll$=this._scroll$.asObservable(),this._scrollX$=new rxjs.Subject,this.scrollX$=this._scrollX$.asObservable(),this._addSheet$=new rxjs.Subject,this.addSheet$=this._addSheet$.asObservable()}setRenameId(renameId){this._renameId$.next(renameId)}setRemoveId(removeId){this._removeId$.next(removeId)}setScroll(state){this._scroll$.next(state)}setScrollX(x){this._scrollX$.next(x)}setAddSheet(index){this._addSheet$.next(index)}triggerSheetBarMenu(){var _a61;(_a61=this._currentHandler)==null||_a61.handleSheetBarMenu()}registerSheetBarMenuHandler(handler){if(this._currentHandler)throw new Error("There is already a context menu handler!");return this._currentHandler=handler,core.toDisposable(()=>{this._currentHandler=null})}};__name(_SheetBarService,"SheetBarService");let SheetBarService=_SheetBarService;const ShowMenuListCommand={id:"ui-sheet.command.show-menu-list",type:core.CommandType.OPERATION,handler:__name(async accessor=>(accessor.get(ISheetBarService).triggerSheetBarMenu(),!0),"handler")},DeleteWorksheetProtectionFormSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-worksheet-protection-from-sheet-bar",async handler(accessor,params){if(!params)return!1;const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(_.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet(),unitId=workbook.getUnitId();if(!worksheet)return!1;const subUnitId=worksheet.getSheetId(),rule=worksheetProtectionRuleModel.getRule(unitId,subUnitId);if(await commandService.executeCommand(sheets.DeleteWorksheetProtectionCommand.id,{unitId,subUnitId})){const redoMutations=[{id:sheets.DeleteWorksheetProtectionCommand.id,params:{unitId,subUnitId}}],undoMutations=[{id:sheets.AddWorksheetProtectionCommand.id,params:{unitId,rule}}];undoRedoService.pushUndoRedo({unitID:unitId,redoMutations,undoMutations})}return!0}},ChangeSheetProtectionFromSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.change-sheet-protection-from-sheet-bar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand("sheet-permission.operation.openDialog"),!0}},SetActivateCellEditOperation={id:"sheet.operation.set-activate-cell-edit",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>(accessor.get(IEditorBridgeService).setEditCell(params),!0),"handler")},RenameSheetOperation={id:"sheet.operation.rename-sheet",type:core.CommandType.OPERATION,handler:__name(async(accessor,params)=>{const sheetBarService=accessor.get(ISheetBarService);return params&&sheetBarService.setRenameId(params.subUnitId),!0},"handler")},SheetPermissionOpenDialogOperation={type:core.CommandType.OPERATION,id:"sheet-permission.operation.openDialog",async handler(accessor,_params){const dialogService=accessor.get(ui.IDialogService);return dialogService.close("DESKTOP_FIND_REPLACE_DIALOG"),dialogService.open({id:UNIVER_SHEET_PERMISSION_DIALOG_ID,title:{title:"permission.dialog.allowedPermissionType"},children:{label:UNIVER_SHEET_PERMISSION_DIALOG},width:393,destroyOnClose:!0,onClose:__name(()=>dialogService.close(UNIVER_SHEET_PERMISSION_DIALOG_ID),"onClose")}),!0}},DEFINED_NAME_CONTAINER="DefinedNameContainer",SidebarDefinedNameOperation={id:"sidebar.operation.defined-name",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const sidebarService=accessor.get(ui.ISidebarService);accessor.get(docsUi.IEditorService);const localeService=accessor.get(core.LocaleService),univerInstanceService=accessor.get(core.IUniverInstanceService);if(!sheets.getSheetCommandTarget(univerInstanceService))return!1;switch(params.value){case"open":sidebarService.open({id:DEFINED_NAME_CONTAINER,header:{title:localeService.t("definedName.featureTitle")},children:{label:DEFINED_NAME_CONTAINER},onClose:__name(()=>{},"onClose"),width:333});break;case"close":default:sidebarService.close();break}return!0},"handler")},BorderDashDot=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M0.98999 1.08218H-0.0100098V0.0821838H0.98999V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M5.78992 1.08218H2.78992V0.0821838H5.78992V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M7.58984 1.08218H8.58984V0.0821838H7.58984V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M14.9152 1.08218H13.9152V0.0821838H14.9152V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M16.7151 1.08218H19.7151V0.0821838H16.7151V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M22.515 1.08218H21.515V0.0821838H22.515V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M27.8405 1.08218H28.8405V0.0821838H27.8405V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M33.6404 1.08218H30.6404V0.0821838H33.6404V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M35.4403 1.08218H36.4403V0.0821838H35.4403V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M42.7657 1.08218H41.7657V0.0821838H42.7657V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M44.5657 1.08218H47.5657V0.0821838H44.5657V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M50.3656 1.08218H49.3656V0.0821838H50.3656V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M55.691 1.08218H56.691V0.0821838H55.691V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M61.491 1.08218H58.491V0.0821838H61.491V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M63.2909 1.08218H64.2909V0.0821838H63.2909V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M70.6163 1.08218H69.6163V0.0821838H70.6163V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M72.4163 1.08218H75.4163V0.0821838H72.4163V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M78.2162 1.08218H77.2162V0.0821838H78.2162V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M83.5416 1.08218H84.5416V0.0821838H83.5416V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M89.3416 1.08218H86.3416V0.0821838H89.3416V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M91.1415 1.08218H92.1415V0.0821838H91.1415V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M98.4669 1.08218H97.4669V0.0821838H98.4669V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M100.267 1.08218H103.267V0.0821838H100.267V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M106.067 1.08218H105.067V0.0821838H106.067V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M111.392 1.08218H112.392V0.0821838H111.392V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.192 1.08218H114.192V0.0821838H117.192V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M118.992 1.08218H119.992V0.0821838H118.992V1.08218Z",fill:"black"})]}),"BorderDashDot"),BorderDashDotDot=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.0100098 1.15771H0.98999V0.157715H-0.0100098V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M2.78992 1.15771H5.78992V0.157715H2.78992V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M8.58984 1.15771H7.58984V0.157715H8.58984V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M10.3899 1.15771H11.3899V0.157715H10.3899V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M19.0903 1.15771H18.0903V0.157715H19.0903V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M20.8903 1.15771H23.8903V0.157715H20.8903V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M26.6902 1.15771H25.6902V0.157715H26.6902V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M28.4902 1.15771H29.4902V0.157715H28.4902V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M37.1907 1.15771H36.1907V0.157715H37.1907V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M38.9906 1.15771H41.9906V0.157715H38.9906V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M44.7905 1.15771H43.7905V0.157715H44.7905V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M46.5906 1.15771H47.5906V0.157715H46.5906V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M55.291 1.15771H54.291V0.157715H55.291V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M57.0909 1.15771H60.0909V0.157715H57.0909V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M62.8909 1.15771H61.8909V0.157715H62.8909V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M64.6909 1.15771H65.6909V0.157715H64.6909V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M73.3914 1.15771H72.3914V0.157715H73.3914V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M75.1913 1.15771H78.1913V0.157715H75.1913V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M80.9912 1.15771H79.9912V0.157715H80.9912V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M82.7913 1.15771H83.7913V0.157715H82.7913V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M91.4917 1.15771H90.4917V0.157715H91.4917V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M93.2916 1.15771H96.2916V0.157715H93.2916V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M99.0916 1.15771H98.0916V0.157715H99.0916V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M100.892 1.15771H101.892V0.157715H100.892V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M109.592 1.15771H108.592V0.157715H109.592V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M111.392 1.15771H114.392V0.157715H111.392V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.192 1.15771H116.192V0.157715H117.192V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M118.992 1.15771H119.992V0.157715H118.992V1.15771Z",fill:"black"})]}),"BorderDashDotDot"),BorderDashed=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.00842285 1.22449H2.99158V0.224487H-0.00842285V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M6.14941 1.22449H9.14941V0.224487H6.14941V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M15.3073 1.22449H12.3073V0.224487H15.3073V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M18.4651 1.22449H21.4651V0.224487H18.4651V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M27.6229 1.22449H24.6229V0.224487H27.6229V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M30.7808 1.22449H33.7808V0.224487H30.7808V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M39.9386 1.22449H36.9386V0.224487H39.9386V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M43.0964 1.22449H46.0964V0.224487H43.0964V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M52.2543 1.22449H49.2543V0.224487H52.2543V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M55.4121 1.22449H58.4121V0.224487H55.4121V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M64.5699 1.22449H61.5699V0.224487H64.5699V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M67.7278 1.22449H70.7278V0.224487H67.7278V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M76.8856 1.22449H73.8856V0.224487H76.8856V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M80.0435 1.22449H83.0435V0.224487H80.0435V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M89.2013 1.22449H86.2013V0.224487H89.2013V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M92.3591 1.22449H95.3591V0.224487H92.3591V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M101.517 1.22449H98.517V0.224487H101.517V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M104.675 1.22449H107.675V0.224487H104.675V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M113.833 1.22449H110.833V0.224487H113.833V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M116.99 1.22449H119.99V0.224487H116.99V1.22449Z",fill:"black"})]}),"BorderDashed"),BorderHair=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.00976562 1.65707H0.990234V0.657074H-0.00976562V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M2.32361 1.65707H3.32361V0.657074H2.32361V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M5.65698 1.65707H4.65698V0.657074H5.65698V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M6.99036 1.65707H7.99036V0.657074H6.99036V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M10.3237 1.65707H9.32373V0.657074H10.3237V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M11.6571 1.65707H12.6571V0.657074H11.6571V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M14.9905 1.65707H13.9905V0.657074H14.9905V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M16.3239 1.65707H17.3239V0.657074H16.3239V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M19.6572 1.65707H18.6572V0.657074H19.6572V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M20.9906 1.65707H21.9906V0.657074H20.9906V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M24.324 1.65707H23.324V0.657074H24.324V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M25.6573 1.65707H26.6573V0.657074H25.6573V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M28.9907 1.65707H27.9907V0.657074H28.9907V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M30.3241 1.65707H31.3241V0.657074H30.3241V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M33.6575 1.65707H32.6575V0.657074H33.6575V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M34.9908 1.65707H35.9908V0.657074H34.9908V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M38.3242 1.65707H37.3242V0.657074H38.3242V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M39.6576 1.65707H40.6576V0.657074H39.6576V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M42.991 1.65707H41.991V0.657074H42.991V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M44.3243 1.65707H45.3243V0.657074H44.3243V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M47.6577 1.65707H46.6577V0.657074H47.6577V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M48.9911 1.65707H49.9911V0.657074H48.9911V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M52.3245 1.65707H51.3245V0.657074H52.3245V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M53.6578 1.65707H54.6578V0.657074H53.6578V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M56.9912 1.65707H55.9912V0.657074H56.9912V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M58.3246 1.65707H59.3246V0.657074H58.3246V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M61.658 1.65707H60.658V0.657074H61.658V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M62.9913 1.65707H63.9913V0.657074H62.9913V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M66.3247 1.65707H65.3247V0.657074H66.3247V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M67.6581 1.65707H68.6581V0.657074H67.6581V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M70.9915 1.65707H69.9915V0.657074H70.9915V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M72.3248 1.65707H73.3248V0.657074H72.3248V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M75.6582 1.65707H74.6582V0.657074H75.6582V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M76.9916 1.65707H77.9916V0.657074H76.9916V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M80.325 1.65707H79.325V0.657074H80.325V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M81.6583 1.65707H82.6583V0.657074H81.6583V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M84.9917 1.65707H83.9917V0.657074H84.9917V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M86.3251 1.65707H87.3251V0.657074H86.3251V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M89.6584 1.65707H88.6584V0.657074H89.6584V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M90.9918 1.65707H91.9918V0.657074H90.9918V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M94.3252 1.65707H93.3252V0.657074H94.3252V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M95.6586 1.65707H96.6586V0.657074H95.6586V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M98.9919 1.65707H97.9919V0.657074H98.9919V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M100.325 1.65707H101.325V0.657074H100.325V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M103.659 1.65707H102.659V0.657074H103.659V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M104.992 1.65707H105.992V0.657074H104.992V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M108.325 1.65707H107.325V0.657074H108.325V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M109.659 1.65707H110.659V0.657074H109.659V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M112.992 1.65707H111.992V0.657074H112.992V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M114.325 1.65707H115.325V0.657074H114.325V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.659 1.65707H116.659V0.657074H117.659V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M118.992 1.65707H119.992V0.657074H118.992V1.65707Z",fill:"black"})]}),"BorderHair"),BorderMedium=__name(()=>jsxRuntime.jsx("svg",{width:"120",height:"3",viewBox:"0 0 120 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 2.42035H-0.0090332V0.420349H119.991V2.42035Z",fill:"black"})}),"BorderMedium"),BorderMediumDashDot=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"3",viewBox:"0 0 120 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.0100098 2.47614H1.98999V0.476135H-0.0100098V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M3.99014 2.47614H9.99014V0.476135H3.99014V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M13.9901 2.47614H11.9901V0.476135H13.9901V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M21.1904 2.47614H23.1904V0.476135H21.1904V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M31.1906 2.47614H25.1906V0.476135H31.1906V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M33.1906 2.47614H35.1906V0.476135H33.1906V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M44.3909 2.47614H42.3909V0.476135H44.3909V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M46.391 2.47614H52.391V0.476135H46.391V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M56.391 2.47614H54.391V0.476135H56.391V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M63.5913 2.47614H65.5913V0.476135H63.5913V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M73.5915 2.47614H67.5915V0.476135H73.5915V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M75.5915 2.47614H77.5915V0.476135H75.5915V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M86.7917 2.47614H84.7917V0.476135H86.7917V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M88.7919 2.47614H94.7919V0.476135H88.7919V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M98.7919 2.47614H96.7919V0.476135H98.7919V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M105.992 2.47614H107.992V0.476135H105.992V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M115.992 2.47614H109.992V0.476135H115.992V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.992 2.47614H119.992V0.476135H117.992V2.47614Z",fill:"black"})]}),"BorderMediumDashDot"),BorderMediumDashDotDot=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.0100098 2.00415H1.98999V0.00415039H-0.0100098V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M3.99014 2.00415H9.99014V0.00415039H3.99014V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M13.9901 2.00415H11.9901V0.00415039H13.9901V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M15.9901 2.00415H17.9901V0.00415039H15.9901V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M27.4905 2.00415H25.4905V0.00415039H27.4905V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M29.4906 2.00415H35.4906V0.00415039H29.4906V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M39.4906 2.00415H37.4906V0.00415039H39.4906V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M41.4906 2.00415H43.4906V0.00415039H41.4906V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M52.991 2.00415H50.991V0.00415039H52.991V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M54.9911 2.00415H60.9911V0.00415039H54.9911V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M64.9911 2.00415H62.9911V0.00415039H64.9911V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M66.9911 2.00415H68.9911V0.00415039H66.9911V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M78.4915 2.00415H76.4915V0.00415039H78.4915V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M80.4916 2.00415H86.4916V0.00415039H80.4916V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M90.4916 2.00415H88.4916V0.00415039H90.4916V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M92.4916 2.00415H94.4916V0.00415039H92.4916V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M103.992 2.00415H101.992V0.00415039H103.992V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M105.992 2.00415H111.992V0.00415039H105.992V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M115.992 2.00415H113.992V0.00415039H115.992V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.992 2.00415H119.992V0.00415039H117.992V2.00415Z",fill:"black"})]}),"BorderMediumDashDotDot"),BorderMediumDashed=__name(()=>jsxRuntime.jsxs("svg",{width:"118",height:"3",viewBox:"0 0 118 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.00854492 2.94815H1.99146V0.948151H-0.00854492V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M6.09668 2.94815H8.09668V0.948151H6.09668V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M14.2019 2.94815H12.2019V0.948151H14.2019V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M18.3071 2.94815H20.3071V0.948151H18.3071V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M26.4124 2.94815H24.4124V0.948151H26.4124V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M30.5176 2.94815H32.5176V0.948151H30.5176V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M38.6228 2.94815H36.6228V0.948151H38.6228V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M42.728 2.94815H44.728V0.948151H42.728V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M50.8333 2.94815H48.8333V0.948151H50.8333V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M54.9385 2.94815H56.9385V0.948151H54.9385V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M63.0437 2.94815H61.0437V0.948151H63.0437V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M67.1489 2.94815H69.1489V0.948151H67.1489V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M75.2542 2.94815H73.2542V0.948151H75.2542V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M79.3594 2.94815H81.3594V0.948151H79.3594V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M87.4645 2.94815H85.4645V0.948151H87.4645V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M91.5697 2.94815H93.5697V0.948151H91.5697V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M99.6749 2.94815H97.6749V0.948151H99.6749V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M103.78 2.94815H105.78V0.948151H103.78V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M111.885 2.94815H109.885V0.948151H111.885V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M115.991 2.94815H117.991V0.948151H115.991V2.94815Z",fill:"black"})]}),"BorderMediumDashed"),BorderThick=__name(()=>jsxRuntime.jsx("svg",{width:"120",height:"4",viewBox:"0 0 120 4",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 3.86215H-0.0090332V0.862152H119.991V3.86215Z",fill:"black"})}),"BorderThick"),BorderThin=__name(()=>jsxRuntime.jsx("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 1.15668H-0.0090332V0.156677H119.991V1.15668Z",fill:"black"})}),"BorderThin");function BorderLine(props){const{type=core.BorderStyleTypes.THIN}=props;switch(type){case core.BorderStyleTypes.DASH_DOT:return jsxRuntime.jsx(BorderDashDot,{});case core.BorderStyleTypes.DASH_DOT_DOT:return jsxRuntime.jsx(BorderDashDotDot,{});case core.BorderStyleTypes.DASHED:return jsxRuntime.jsx(BorderDashed,{});case core.BorderStyleTypes.HAIR:return jsxRuntime.jsx(BorderHair,{});case core.BorderStyleTypes.MEDIUM:return jsxRuntime.jsx(BorderMedium,{});case core.BorderStyleTypes.MEDIUM_DASH_DOT:return jsxRuntime.jsx(BorderMediumDashDot,{});case core.BorderStyleTypes.MEDIUM_DASH_DOT_DOT:return jsxRuntime.jsx(BorderMediumDashDotDot,{});case core.BorderStyleTypes.MEDIUM_DASHED:return jsxRuntime.jsx(BorderMediumDashed,{});case core.BorderStyleTypes.THICK:return jsxRuntime.jsx(BorderThick,{});case core.BorderStyleTypes.THIN:return jsxRuntime.jsx(BorderThin,{});default:return jsxRuntime.jsx(BorderThin,{})}}__name(BorderLine,"BorderLine");const uiPluginSheetsBorderPanel="univer-ui-plugin-sheets-border-panel",uiPluginSheetsBorderPanelPosition="univer-ui-plugin-sheets-border-panel-position",uiPluginSheetsBorderPanelPositionItem="univer-ui-plugin-sheets-border-panel-position-item",uiPluginSheetsBorderPanelPositionItemActive="univer-ui-plugin-sheets-border-panel-position-item-active",uiPluginSheetsBorderPanelStyles="univer-ui-plugin-sheets-border-panel-styles",uiPluginSheetsBorderPanelBoard="univer-ui-plugin-sheets-border-panel-board",uiPluginSheetsBorderPanelButton="univer-ui-plugin-sheets-border-panel-button",uiPluginSheetsBorderPanelMoreIcon="univer-ui-plugin-sheets-border-panel-more-icon",styles$j={uiPluginSheetsBorderPanel,uiPluginSheetsBorderPanelPosition,uiPluginSheetsBorderPanelPositionItem,uiPluginSheetsBorderPanelPositionItemActive,uiPluginSheetsBorderPanelStyles,uiPluginSheetsBorderPanelBoard,uiPluginSheetsBorderPanelButton,uiPluginSheetsBorderPanelMoreIcon},BORDER_PANEL_COMPONENT=`${COMPONENT_PREFIX}_BORDER_PANEL_COMPONENT`,BORDER_LINE_CHILDREN=[{label:"borderLine.borderTop",icon:"UpBorder",value:"top"},{label:"borderLine.borderBottom",icon:"DownBorder",value:"bottom"},{label:"borderLine.borderLeft",icon:"LeftBorder",value:"left"},{label:"borderLine.borderRight",icon:"RightBorder",value:"right"},{label:"borderLine.borderNone",icon:"NoBorderSingle",value:"none"},{label:"borderLine.borderAll",icon:"AllBorderSingle",value:"all"},{label:"borderLine.borderOutside",icon:"OuterBorder",value:"outside"},{label:"borderLine.borderInside",icon:"InnerBorder",value:"inside"},{label:"borderLine.borderHorizontal",icon:"HorizontalBorder",value:"horizontal"},{label:"borderLine.borderVertical",icon:"VerticalBorder",value:"vertical"},{label:"borderLine.borderTlbr",icon:"BackSlashSingle",value:"tlbr"},{label:"borderLine.borderTlbcTlmr",icon:"LeftDoubleDiagonalSingle",value:"tlbc_tlmr"},{label:"borderLine.borderTlbrTlbcTlmr",icon:"LeftTridiagonalSingle",value:"tlbr_tlbc_tlmr"},{label:"borderLine.borderBlTr",icon:"SlashSingle",value:"bltr"},{label:"borderLine.borderMltrBctr",icon:"RightDoubleDiagonalSingle",value:"mltr_bctr"}],BORDER_SIZE_CHILDREN=[{label:core.BorderStyleTypes.THIN,value:core.BorderStyleTypes.THIN},{label:core.BorderStyleTypes.HAIR,value:core.BorderStyleTypes.HAIR},{label:core.BorderStyleTypes.DOTTED,value:core.BorderStyleTypes.DOTTED},{label:core.BorderStyleTypes.DASHED,value:core.BorderStyleTypes.DASHED},{label:core.BorderStyleTypes.DASH_DOT,value:core.BorderStyleTypes.DASH_DOT},{label:core.BorderStyleTypes.DASH_DOT_DOT,value:core.BorderStyleTypes.DASH_DOT_DOT},{label:core.BorderStyleTypes.MEDIUM,value:core.BorderStyleTypes.MEDIUM},{label:core.BorderStyleTypes.MEDIUM_DASHED,value:core.BorderStyleTypes.MEDIUM_DASHED},{label:core.BorderStyleTypes.MEDIUM_DASH_DOT,value:core.BorderStyleTypes.MEDIUM_DASH_DOT},{label:core.BorderStyleTypes.MEDIUM_DASH_DOT_DOT,value:core.BorderStyleTypes.MEDIUM_DASH_DOT_DOT},{label:core.BorderStyleTypes.THICK,value:core.BorderStyleTypes.THICK}];function BorderPanel(props){var _a61;const componentManager=core.useDependency(ui.ComponentManager),borderStyleManagerService=core.useDependency(sheets.BorderStyleManagerService),{onChange,value}=props;function handleClick(v,type){onChange==null||onChange({...value,[type]:v})}__name(handleClick,"handleClick");function renderIcon(icon){const Icon=componentManager.get(icon);return Icon&&jsxRuntime.jsx(Icon,{extend:{colorChannel1:"rgb(var(--primary-color))"}})}__name(renderIcon,"renderIcon");function stopPropagation(e){e.stopPropagation()}return __name(stopPropagation,"stopPropagation"),jsxRuntime.jsxs("section",{className:styles$j.uiPluginSheetsBorderPanel,children:[jsxRuntime.jsx("div",{className:styles$j.uiPluginSheetsBorderPanelPosition,children:BORDER_LINE_CHILDREN.map(item=>jsxRuntime.jsx("div",{className:borderStyleManagerService.getBorderInfo().type===item.value?`
13
13
  ${styles$j.uiPluginSheetsBorderPanelPositionItemActive}
14
14
  ${styles$j.uiPluginSheetsBorderPanelPositionItem}
15
15
  `:styles$j.uiPluginSheetsBorderPanelPositionItem,onClick:__name(e=>{e.stopPropagation(),handleClick(item.value,"type")},"onClick"),children:renderIcon(item.icon)},item.value))}),jsxRuntime.jsxs("div",{className:styles$j.uiPluginSheetsBorderPanelStyles,children:[jsxRuntime.jsx("div",{children:jsxRuntime.jsx(design.DropdownLegacy,{align:{offset:[0,18]},overlay:jsxRuntime.jsx("section",{className:styles$j.uiPluginSheetsBorderPanelBoard,onClick:stopPropagation,children:jsxRuntime.jsx(design.ColorPicker,{onChange:__name(value2=>handleClick(value2,"color"),"onChange")})}),children:jsxRuntime.jsxs("a",{className:styles$j.uiPluginSheetsBorderPanelButton,onClick:stopPropagation,children:[jsxRuntime.jsx(PaintBucket,{extend:{colorChannel1:(_a61=value==null?void 0:value.color)!=null?_a61:"rgb(var(--primary-color))"}}),jsxRuntime.jsx("span",{className:styles$j.uiPluginSheetsBorderPanelMoreIcon,children:jsxRuntime.jsx(MoreDownSingle,{})})]})})}),jsxRuntime.jsx("div",{children:jsxRuntime.jsx(design.DropdownLegacy,{align:{offset:[0,18]},overlay:jsxRuntime.jsx("section",{onClick:stopPropagation,children:jsxRuntime.jsx(design.Menu,{children:BORDER_SIZE_CHILDREN.map(item=>jsxRuntime.jsx(design.MenuItem,{eventKey:item.value.toString(),onClick:__name(()=>handleClick(item.value,"style"),"onClick"),children:jsxRuntime.jsx(BorderLine,{type:item.value})},item.value))})}),children:jsxRuntime.jsxs("a",{className:styles$j.uiPluginSheetsBorderPanelButton,onClick:stopPropagation,children:[jsxRuntime.jsx(BorderLine,{type:core.BorderStyleTypes.THIN}),jsxRuntime.jsx("span",{className:styles$j.uiPluginSheetsBorderPanelMoreIcon,children:jsxRuntime.jsx(MoreDownSingle,{})})]})})})]})]})}__name(BorderPanel,"BorderPanel");function r(e){var t,f,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f)}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}__name(r,"r");function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}__name(clsx,"clsx");const definedName="univer-defined-name",definedNameOverlay="univer-defined-name-overlay",definedNameOverlayContainer="univer-defined-name-overlay-container",definedNameOverlayItem="univer-defined-name-overlay-item",definedNameOverlayItemName="univer-defined-name-overlay-item-name",definedNameOverlayItemNameForSheet="univer-defined-name-overlay-item-name-for-sheet",definedNameOverlayItemFormula="univer-defined-name-overlay-item-formula",definedNameOverlayManager="univer-defined-name-overlay-manager",definedNameOverlayManagerTitle="univer-defined-name-overlay-manager-title",definedNameOverlayManagerContent="univer-defined-name-overlay-manager-content",definedNameContainer="univer-defined-name-container",definedNameContainerScroll="univer-defined-name-container-scroll",definedNameContainerAddButton="univer-defined-name-container-addButton",definedNameContainerAddButtonText="univer-defined-name-container-addButton-text",definedNameContainerItem="univer-defined-name-container-item",definedNameContainerItemName="univer-defined-name-container-item-name",definedNameContainerItemNameForSheet="univer-defined-name-container-item-name-for-sheet",definedNameContainerItemFormulaOrRefString="univer-defined-name-container-item-formula-or-refString",definedNameContainerItemUpdate="univer-defined-name-container-item-update",definedNameContainerItemDelete="univer-defined-name-container-item-delete",definedNameContainerItemShow="univer-defined-name-container-item-show",definedNameInput="univer-defined-name-input",definedNameInputFormulaSelectorTextWrap="univer-defined-name-input-formula-selector-text-wrap",definedNameInputTextEditorContainer="univer-defined-name-input-text-editor-container",definedNameInputValidation="univer-defined-name-input-validation",definedNameInputDisable="univer-defined-name-input-disable",styles$i={definedName,definedNameOverlay,definedNameOverlayContainer,definedNameOverlayItem,definedNameOverlayItemName,definedNameOverlayItemNameForSheet,definedNameOverlayItemFormula,definedNameOverlayManager,definedNameOverlayManagerTitle,definedNameOverlayManagerContent,definedNameContainer,definedNameContainerScroll,definedNameContainerAddButton,definedNameContainerAddButtonText,definedNameContainerItem,definedNameContainerItemName,definedNameContainerItemNameForSheet,definedNameContainerItemFormulaOrRefString,definedNameContainerItemUpdate,definedNameContainerItemDelete,definedNameContainerItemShow,definedNameInput,definedNameInputFormulaSelectorTextWrap,definedNameInputTextEditorContainer,definedNameInputValidation,definedNameInputDisable},widthStyle={width:"100%"},DefinedNameInput=__name(props=>{const{inputId,state=!1,type="range",confirm,cancel,name,formulaOrRefString,comment="",localSheetId=sheets.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,hidden=!1,id}=props,workbook=core.useDependency(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),localeService=core.useDependency(core.LocaleService),definedNamesService=core.useDependency(engineFormula.IDefinedNamesService),functionService=core.useDependency(engineFormula.IFunctionService),lexerTreeBuilder=core.useDependency(engineFormula.LexerTreeBuilder),componentManager=core.useDependency(ui.ComponentManager),RangeSelector=React.useMemo(()=>componentManager.get(RANGE_SELECTOR_COMPONENT_KEY),[]),FormulaEditor=React.useMemo(()=>componentManager.get(EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY),[]);if(workbook==null)return;const unitId=React.useMemo(()=>workbook.getUnitId(),[]),subUnitId=React.useMemo(()=>workbook.getActiveSheet().getSheetId(),[]),[nameValue,setNameValue]=React.useState(name),[formulaOrRefStringValue,setFormulaOrRefStringValue]=React.useState(formulaOrRefString),[commentValue,setCommentValue]=React.useState(comment),[localSheetIdValue,setLocalSheetIdValue]=React.useState(localSheetId),[validString,setValidString]=React.useState(""),[typeValue,setTypeValue]=React.useState(type),[validFormulaOrRange,setValidFormulaOrRange]=React.useState(!0),rangeSelectorActionsRef=React.useRef({}),[isFocusRangeSelector,isFocusRangeSelectorSet]=React.useState(!1),options=[{label:localeService.t("definedName.scopeWorkbook"),value:sheets.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}],isFormula=__name(token=>!engineFormula.isReferenceStrings(token),"isFormula");React.useEffect(()=>{isFocusRangeSelectorSet(!1)},[subUnitId]),React.useEffect(()=>{setValidFormulaOrRange(!0),setNameValue(name),setCommentValue(comment),setLocalSheetIdValue(localSheetId);let formulaOrRefStringCache=formulaOrRefString;formulaOrRefString.substring(0,1)===engineFormula.operatorToken.EQUALS?setTypeValue("formula"):isFormula(formulaOrRefString)?(setTypeValue("formula"),formulaOrRefStringCache=engineFormula.operatorToken.EQUALS+formulaOrRefString):setTypeValue("range"),setFormulaOrRefStringValue(formulaOrRefStringCache),setValidString("")},[state]),workbook.getSheetOrders().forEach(sheetId=>{const sheet=workbook.getSheetBySheetId(sheetId);options.push({label:(sheet==null?void 0:sheet.getName())||"",value:sheetId})});const rangeSelectorChange=__name(rangesText=>{setFormulaOrRefStringValue(rangesText)},"rangeSelectorChange"),formulaEditorChange=__name(value=>{setFormulaOrRefStringValue(value||"")},"formulaEditorChange"),confirmChange=__name(()=>{if(nameValue.length===0){setValidString(localeService.t("definedName.nameEmpty"));return}if(definedNamesService.getValueByName(unitId,nameValue)!=null&&(id==null||id.length===0)){setValidString(localeService.t("definedName.nameDuplicate"));return}if(!core.Tools.isValidParameter(nameValue)||engineFormula.isReferenceStringWithEffectiveColumn(nameValue)||!core.Tools.isStartValidPosition(nameValue)&&!engineRender.hasCJKText(nameValue.substring(0,1))){setValidString(localeService.t("definedName.nameInvalid"));return}if(workbook.getSheetOrders().map(sheetId=>{var _a61;return((_a61=workbook.getSheetBySheetId(sheetId))==null?void 0:_a61.getName())||""}).includes(nameValue)){setValidString(localeService.t("definedName.nameSheetConflict"));return}if(formulaOrRefStringValue.length===0){setValidString(localeService.t("definedName.formulaOrRefStringEmpty"));return}if(!validFormulaOrRange){setValidString(localeService.t("definedName.formulaOrRefStringInvalid"));return}if(functionService.hasExecutor(nameValue.toUpperCase())){setValidString(localeService.t("definedName.nameConflict"));return}const currentSheetName=workbook.getActiveSheet().getName();confirm&&confirm({id:id||"",name:nameValue,formulaOrRefString:lexerTreeBuilder.convertRefersToAbsolute(formulaOrRefStringValue,core.AbsoluteRefType.ALL,core.AbsoluteRefType.ALL,currentSheetName),comment:commentValue,localSheetId:localSheetIdValue})},"confirmChange"),typeValueChange=__name(value=>{const type2=value;type2==="formula"?formulaOrRefString[0]===engineFormula.operatorToken.EQUALS?setFormulaOrRefStringValue(formulaOrRefString):setFormulaOrRefStringValue(`${engineFormula.operatorToken.EQUALS}`):formulaOrRefString[0]===engineFormula.operatorToken.EQUALS?setFormulaOrRefStringValue(""):setFormulaOrRefStringValue(formulaOrRefString),setTypeValue(type2)},"typeValueChange"),formulaEditorActionsRef=React.useRef({}),[isFocusFormulaEditor,isFocusFormulaEditorSet]=React.useState(!1);return ui.useSidebarClick(e=>{var _a61;const handleOutClick=(_a61=rangeSelectorActionsRef.current)==null?void 0:_a61.handleOutClick;handleOutClick&&handleOutClick(e,()=>isFocusRangeSelectorSet(!1))}),ui.useSidebarClick(e=>{var _a61;const handleOutClick=(_a61=formulaEditorActionsRef.current)==null?void 0:_a61.handleOutClick;handleOutClick&&handleOutClick(e,()=>isFocusFormulaEditorSet(!1))}),jsxRuntime.jsxs("div",{className:styles$i.definedNameInput,style:{display:state?"block":"none"},children:[jsxRuntime.jsx("div",{children:jsxRuntime.jsx(design.Input,{placeholder:localeService.t("definedName.inputNamePlaceholder"),value:nameValue,allowClear:!0,onChange:setNameValue,affixWrapperStyle:widthStyle})}),jsxRuntime.jsx("div",{children:jsxRuntime.jsxs(design.RadioGroup,{value:typeValue,onChange:typeValueChange,children:[jsxRuntime.jsx(design.Radio,{value:"range",children:localeService.t("definedName.ratioRange")}),jsxRuntime.jsx(design.Radio,{value:"formula",children:localeService.t("definedName.ratioFormula")})]})}),typeValue==="range"?RangeSelector&&jsxRuntime.jsx(RangeSelector,{unitId,subUnitId,initValue:formulaOrRefStringValue,onChange:rangeSelectorChange,isFocus:isFocusRangeSelector,onFocus:__name(()=>isFocusRangeSelectorSet(!0),"onFocus"),actions:rangeSelectorActionsRef.current,isSupportAcrossSheet:!0}):FormulaEditor&&jsxRuntime.jsx(FormulaEditor,{initValue:formulaOrRefStringValue,unitId,subUnitId,isFocus:isFocusFormulaEditor,isSupportAcrossSheet:!0,onChange:__name((v="")=>{formulaEditorChange(v||"")},"onChange"),onVerify:__name(res=>{setValidFormulaOrRange(res)},"onVerify"),onFocus:__name(()=>isFocusFormulaEditorSet(!0),"onFocus"),actions:formulaEditorActionsRef.current}),jsxRuntime.jsx("div",{children:jsxRuntime.jsx(design.Select,{style:widthStyle,value:localSheetIdValue,options,onChange:setLocalSheetIdValue})}),jsxRuntime.jsx("div",{children:jsxRuntime.jsx(design.Input,{affixWrapperStyle:widthStyle,placeholder:localeService.t("definedName.inputCommentPlaceholder"),value:commentValue,onChange:setCommentValue})}),jsxRuntime.jsxs("div",{style:{display:validString.length===0?"none":"flex"},className:styles$i.definedNameInputValidation,children:[jsxRuntime.jsx("span",{children:validString}),jsxRuntime.jsx(ErrorSingle,{})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(design.Button,{onClick:__name(()=>{cancel&&cancel()},"onClick"),children:localeService.t("definedName.cancel")}),jsxRuntime.jsx(design.Button,{style:{marginLeft:15},type:"primary",onClick:confirmChange,children:localeService.t("definedName.confirm")})]})]})},"DefinedNameInput"),DefinedNameContainer=__name(()=>{const commandService=core.useDependency(core.ICommandService),workbook=core.useDependency(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),localeService=core.useDependency(core.LocaleService),definedNamesService=core.useDependency(engineFormula.IDefinedNamesService),selectionManagerService=core.useDependency(sheets.SheetsSelectionsService);if(workbook==null)return;const unitId=workbook.getUnitId(),getDefinedNameMap=__name(()=>{const definedNameMap=definedNamesService.getDefinedNameMap(unitId);return definedNameMap?Array.from(Object.values(definedNameMap)):[]},"getDefinedNameMap"),[editState,setEditState]=React.useState(!1),[definedNames,setDefinedNames]=React.useState(getDefinedNameMap()),[editorKey,setEditorKey]=React.useState(null),[deleteConformKey,setDeleteConformKey]=React.useState();React.useEffect(()=>{const definedNamesSubscription=definedNamesService.update$.subscribe(()=>{setDefinedNames(getDefinedNameMap())});return()=>{definedNamesSubscription.unsubscribe()}},[]);const insertConfirm=__name(param=>{const{name,formulaOrRefString,comment,localSheetId,hidden}=param;let id=param.id;if(id==null||id.length===0)id=core.Tools.generateRandomId(10),commandService.executeCommand(sheets.InsertDefinedNameCommand.id,{id,unitId,name,formulaOrRefString,comment,localSheetId,hidden});else{const newDefinedName={id,unitId,name,formulaOrRefString,comment,localSheetId,hidden};commandService.executeCommand(sheets.SetDefinedNameCommand.id,newDefinedName)}setEditState(!1),setEditorKey(null)},"insertConfirm"),deleteDefinedName=__name(id=>{setDeleteConformKey(id)},"deleteDefinedName");function handleDeleteClose(){setDeleteConformKey(null)}__name(handleDeleteClose,"handleDeleteClose");function handleDeleteConfirm(id){const item=definedNamesService.getValueById(unitId,id);commandService.executeCommand(sheets.RemoveDefinedNameCommand.id,{...item,unitId}),setDeleteConformKey(null)}__name(handleDeleteConfirm,"handleDeleteConfirm");const focusDefinedName=__name(async definedName2=>{const{formulaOrRefString,id}=definedName2,worksheet=definedNamesService.getWorksheetByRef(unitId,formulaOrRefString);if(!worksheet)return;worksheet.isSheetHidden()&&await commandService.executeCommand(sheets.SetWorksheetShowCommand.id,{unitId,subUnitId:worksheet.getSheetId()}),definedNamesService.focusRange(unitId,id)},"focusDefinedName"),getInsertDefinedName=__name(()=>{const count=definedNames.length+1,name=localeService.t("definedName.defaultName")+count;if(definedNamesService.getValueByName(unitId,name)==null)return name;let i=count+1;for(;;){const newName=localeService.t("definedName.defaultName")+i;if(definedNamesService.getValueByName(unitId,newName)==null)return newName;i++}},"getInsertDefinedName"),getInertFormulaOrRefString=__name(()=>{var _a61;const sheetName=(_a61=workbook.getActiveSheet())==null?void 0:_a61.getName();if(!sheetName)return"";const selections=selectionManagerService.getCurrentSelections();return selections==null?"":selections.map(selection=>engineFormula.serializeRangeWithSheet(sheetName,selection.range)).join(",")},"getInertFormulaOrRefString"),closeInput=__name(()=>{setEditState(!1),setEditorKey(null)},"closeInput"),openInsertCloseKeyEditor=__name(()=>{setEditState(!0),setEditorKey(null)},"openInsertCloseKeyEditor"),closeInsertOpenKeyEditor=__name(id=>{setEditState(!1),setEditorKey(id)},"closeInsertOpenKeyEditor"),getSheetNameBySheetId=__name(sheetId=>{const sheet=workbook.getSheetBySheetId(sheetId);return sheet==null?"":sheet.getName()},"getSheetNameBySheetId");return jsxRuntime.jsx("div",{className:styles$i.definedNameContainer,children:jsxRuntime.jsxs("div",{className:styles$i.definedNameContainerScroll,children:[jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{onClick:openInsertCloseKeyEditor,className:styles$i.definedNameContainerAddButton,style:{display:editState?"none":"flex"},children:[jsxRuntime.jsx(IncreaseSingle,{}),jsxRuntime.jsx("span",{className:styles$i.definedNameContainerAddButtonText,children:localeService.t("definedName.addButton")})]}),editState&&jsxRuntime.jsx(DefinedNameInput,{confirm:insertConfirm,cancel:closeInput,state:editState,inputId:"insertDefinedName",name:getInsertDefinedName(),formulaOrRefString:getInertFormulaOrRefString()})]},"insertDefinedName"),definedNames.map((definedName2,index)=>jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{onClick:__name(()=>{focusDefinedName(definedName2)},"onClick"),className:styles$i.definedNameContainerItem,style:{display:definedName2.id===editorKey?"none":"flex"},children:[jsxRuntime.jsxs("div",{title:definedName2.comment,children:[jsxRuntime.jsxs("div",{className:styles$i.definedNameContainerItemName,children:[definedName2.name,jsxRuntime.jsx("span",{className:styles$i.definedNameContainerItemNameForSheet,children:definedName2.localSheetId===sheets.SCOPE_WORKBOOK_VALUE_DEFINED_NAME||definedName2.localSheetId==null?"":getSheetNameBySheetId(definedName2.localSheetId)})]}),jsxRuntime.jsx("div",{className:styles$i.definedNameContainerItemFormulaOrRefString,children:definedName2.formulaOrRefString})]}),jsxRuntime.jsx(design.Tooltip,{title:localeService.t("definedName.updateButton"),placement:"top",children:jsxRuntime.jsx("div",{className:clsx(styles$i.definedNameContainerItemUpdate,styles$i.definedNameContainerItemShow),onClick:__name(()=>{closeInsertOpenKeyEditor(definedName2.id)},"onClick"),children:jsxRuntime.jsx(CheckMarkSingle,{})})}),jsxRuntime.jsx(design.Tooltip,{title:localeService.t("definedName.deleteButton"),placement:"top",children:jsxRuntime.jsx("div",{className:clsx(styles$i.definedNameContainerItemDelete,styles$i.definedNameContainerItemShow),onClick:__name(()=>{deleteDefinedName(definedName2.id)},"onClick"),children:jsxRuntime.jsx(DeleteSingle,{})})})]}),jsxRuntime.jsx(design.Confirm,{visible:deleteConformKey===definedName2.id,onClose:handleDeleteClose,onConfirm:__name(()=>{handleDeleteConfirm(definedName2.id)},"onConfirm"),children:localeService.t("definedName.deleteConfirmText")}),definedName2.id===editorKey&&jsxRuntime.jsx(DefinedNameInput,{confirm:insertConfirm,cancel:closeInput,state:definedName2.id===editorKey,id:definedName2.id,inputId:definedName2.id+index,name:definedName2.name,formulaOrRefString:definedName2.formulaOrRefString,comment:definedName2.comment,localSheetId:definedName2.localSheetId})]},index))]})})},"DefinedNameContainer"),countBar="univer-count-bar",styles$h={countBar},ZOOM_MAP=[50,75,100,125,150,175,200,400];function ZoomSlider(){const commandService=core.useDependency(core.ICommandService),univerInstanceService=core.useDependency(core.IUniverInstanceService),workbook=useActiveWorkbook(),editorBridgeService=core.useDependency(IEditorBridgeService),visible=core.useObservable(editorBridgeService.visible$),getCurrentZoom=React.useCallback(()=>{if(!workbook)return 100;const worksheet=workbook.getActiveSheet(),currentZoom=worksheet&&worksheet.getZoomRatio()*100||100;return Math.round(currentZoom)},[workbook]),[zoom,setZoom]=React.useState(()=>getCurrentZoom());React.useEffect(()=>(setZoom(getCurrentZoom()),commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===SetZoomRatioOperation.id||commandInfo.id===sheets.SetWorksheetActiveOperation.id){const currentZoom=getCurrentZoom();setZoom(currentZoom)}}).dispose),[commandService,getCurrentZoom]);function handleChange(value){setZoom(value);const workbook2=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook2==null?void 0:workbook2.getActiveSheet();if(worksheet==null)return;const zoomRatio=value/100;commandService.executeCommand(SetZoomRatioCommand.id,{unitId:workbook2.getUnitId(),subUnitId:worksheet.getSheetId(),zoomRatio})}__name(handleChange,"handleChange");const disabled=(visible==null?void 0:visible.visible)&&(visible.unitId===(workbook==null?void 0:workbook.getUnitId())||visible.unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);return jsxRuntime.jsx(design.Slider,{disabled,min:SHEET_ZOOM_RANGE[0],value:zoom,shortcuts:ZOOM_MAP,onChange:handleChange})}__name(ZoomSlider,"ZoomSlider");function CountBar(props){return jsxRuntime.jsx("section",{className:styles$h.countBar,children:jsxRuntime.jsx(ZoomSlider,{})})}__name(CountBar,"CountBar");function useKeyEventConfig(isRefSelecting,unitId){const editorBridgeService=core.useDependency(IEditorBridgeService);return React.useMemo(()=>({keyCodes:[{keyCode:ui.KeyCode.ENTER},{keyCode:ui.KeyCode.ESC},{keyCode:ui.KeyCode.TAB}],handler:__name(keycode=>{(keycode===ui.KeyCode.ENTER||keycode===ui.KeyCode.ESC||keycode===ui.KeyCode.TAB)&&(editorBridgeService.disableForceKeepVisible(),editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,unitId}))},"handler")}),[editorBridgeService,unitId])}__name(useKeyEventConfig,"useKeyEventConfig");const editorContainer="univer-editor-container",editorInput="univer-editor-input",sheetEmbeddingFormulaEditorWrap$1="univer-sheet-embedding-formula-editor-wrap",styles$g={editorContainer,editorInput,sheetEmbeddingFormulaEditorWrap:sheetEmbeddingFormulaEditorWrap$1},HIDDEN_EDITOR_POSITION=-1e3,EDITOR_DEFAULT_POSITION={width:0,height:0,top:HIDDEN_EDITOR_POSITION,left:HIDDEN_EDITOR_POSITION},EditorContainer=__name(()=>{const[state,setState]=React.useState({...EDITOR_DEFAULT_POSITION}),cellEditorManagerService=core.useDependency(ICellEditorManagerService),editorService=core.useDependency(docsUi.IEditorService),contextService=core.useDependency(core.IContextService),componentManager=core.useDependency(ui.ComponentManager),editorBridgeService=core.useDependency(IEditorBridgeService),visible=ui.useObservable(editorBridgeService.visible$),commandService=core.useDependency(core.ICommandService),isRefSelecting=React.useRef(0),disableAutoFocus=ui.useObservable(()=>contextService.subscribeContextValue$(ui.DISABLE_AUTO_FOCUS_KEY),!1,void 0,[contextService,ui.DISABLE_AUTO_FOCUS_KEY]),FormulaEditor=componentManager.get(EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY),editState=editorBridgeService.getEditLocation();React.useEffect(()=>{const sub=cellEditorManagerService.state$.subscribe(param=>{if(param==null)return;const{startX=HIDDEN_EDITOR_POSITION,startY=HIDDEN_EDITOR_POSITION,endX=0,endY=0,show=!1}=param;if(!show)setState({...EDITOR_DEFAULT_POSITION});else{setState({width:endX-startX,height:endY-startY,left:startX,top:startY});const editor=editorService.getEditor(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);if(editor==null)return;const{left,top,width,height}=editor.getBoundingClientRect();cellEditorManagerService.setRect({left,top,width,height})}});return()=>{sub.unsubscribe()}},[]),React.useEffect(()=>{disableAutoFocus||cellEditorManagerService.setFocus(!0)},[disableAutoFocus,state]);const handleClickSideBar=ui.useEvent(()=>{editorBridgeService.isVisible().visible&&editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.PointerUp,unitId:editState.unitId})});ui.useSidebarClick(handleClickSideBar);const keyCodeConfig=useKeyEventConfig(isRefSelecting,editState==null?void 0:editState.unitId),onMoveInEditor=ui.useEvent((keycode,metaKey)=>{commandService.executeCommand(SetCellEditVisibleArrowOperation.id,{keycode,visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,isShift:metaKey===ui.MetaKeys.SHIFT||metaKey===(ui.MetaKeys.CTRL_COMMAND|ui.MetaKeys.SHIFT),unitId:editState==null?void 0:editState.unitId})});return jsxRuntime.jsx("div",{className:styles$g.editorContainer,style:{left:state.left,top:state.top,width:state.width,height:state.height},children:FormulaEditor&&jsxRuntime.jsx(FormulaEditor,{editorId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,className:styles$g.editorInput,initValue:"",onChange:__name(()=>{},"onChange"),isFocus:visible==null?void 0:visible.visible,unitId:editState==null?void 0:editState.unitId,subUnitId:editState==null?void 0:editState.sheetId,keyboradEventConfig:keyCodeConfig,onMoveInEditor,isSupportAcrossSheet:!0,resetSelectionOnBlur:!1,isSingle:!1,autoScrollbar:!1,onFormulaSelectingChange:__name(isSelecting=>{isRefSelecting.current=isSelecting,isSelecting?editorBridgeService.enableForceKeepVisible():editorBridgeService.disableForceKeepVisible()},"onFormulaSelectingChange"),disableSelectionOnClick:!0,disableContextMenu:!1})})},"EditorContainer"),_FormulaEditorManagerService=class _FormulaEditorManagerService{constructor(){__publicField(this,"_position",null);__publicField(this,"_position$",new rxjs.BehaviorSubject(null));__publicField(this,"position$",this._position$.asObservable());__publicField(this,"_focus",!1);__publicField(this,"_focus$",new rxjs.BehaviorSubject(this._focus));__publicField(this,"focus$",this._focus$.asObservable());__publicField(this,"_fxBtnClick$",new rxjs.Subject);__publicField(this,"fxBtnClick$",this._fxBtnClick$.asObservable());__publicField(this,"_foldBtnStatus$",new rxjs.Subject);__publicField(this,"foldBtnStatus$",this._foldBtnStatus$.asObservable())}dispose(){this._position$.complete(),this._focus$.complete(),this._position=null,this._focus=!1}setPosition(param){this._position=param,this._refresh(param)}getPosition(){return this._position}setFocus(param=!1){this._focus=param,this._focus$.next(param)}handleFxBtnClick(params){this._fxBtnClick$.next(params)}handleFoldBtnClick(params){this._foldBtnStatus$.next(params)}_refresh(param){this._position$.next(param)}};__name(_FormulaEditorManagerService,"FormulaEditorManagerService");let FormulaEditorManagerService=_FormulaEditorManagerService;const IFormulaEditorManagerService=core.createIdentifier("univer.sheet-formula-editor-manager.service");function DefinedNameOverlay(props){const commandService=core.useDependency(core.ICommandService),localeService=core.useDependency(core.LocaleService),definedNamesService=core.useDependency(engineFormula.IDefinedNamesService),univerInstanceService=core.useDependency(core.IUniverInstanceService),sidebarService=core.useDependency(ui.ISidebarService),unitId=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId(),getDefinedNameMap=__name(()=>{const definedNameMap=definedNamesService.getDefinedNameMap(unitId);return definedNameMap?Array.from(Object.values(definedNameMap)):[]},"getDefinedNameMap"),[definedNames,setDefinedNames]=React.useState(getDefinedNameMap());React.useEffect(()=>{const definedNamesSubscription=definedNamesService.update$.subscribe(()=>{setDefinedNames(getDefinedNameMap())});return()=>{definedNamesSubscription.unsubscribe()}},[]),React.useEffect(()=>{const d=sidebarService.sidebarOptions$.subscribe(info=>{info.id===DEFINED_NAME_CONTAINER&&(info.visible||setTimeout(()=>{sidebarService.sidebarOptions$.next({visible:!1})}))});return()=>{d.unsubscribe()}},[]);const openSlider=__name(()=>{commandService.executeCommand(SidebarDefinedNameOperation.id,{value:"open"})},"openSlider"),focusDefinedName=__name(async definedName2=>{const{formulaOrRefString,id}=definedName2,worksheet=definedNamesService.getWorksheetByRef(unitId,formulaOrRefString);if(!worksheet)return;worksheet.isSheetHidden()&&await commandService.executeCommand(sheets.SetWorksheetShowCommand.id,{unitId,subUnitId:worksheet.getSheetId()}),definedNamesService.focusRange(unitId,id)},"focusDefinedName");return jsxRuntime.jsxs("div",{className:"univer-w-[300px]",children:[jsxRuntime.jsx("ul",{className:`
@@ -52,7 +52,7 @@
52
52
  `:styles$a.slideTabItem,style:{backgroundColor:!currentSelected&&color?color:"",color:!currentSelected&&color?getTextColor(color):"",boxShadow:currentSelected&&color?`0px 0px 8px rgba(0, 0, 0, 0.08), inset 0px -2px 0px 0px ${color}`:""},children:jsxRuntime.jsx("div",{className:styles$a.slideTabDiv,children:label})},sheetId)}__name(SheetBarItem,"SheetBarItem");const Tween={easeOutStrong(t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b},backOut(t,b,c,d,s){return typeof s>"u"&&(s=.7),c*((t=t/d-1)*t*((s+1)*t+s)+1)+b}},CONFIG={loop:!1,begin:0,end:0,duration:300,delay:0,type:"easeOutStrong",receive(v){},success(v){},cancel(v){},complete(v){}},_Animate=class _Animate{constructor(config){__publicField(this,"_config");__publicField(this,"_status",0);__publicField(this,"_start",0);__publicField(this,"_handle",0);__publicField(this,"_delayHandle",null);this._config={...CONFIG,...config},this._config.loop&&(this._config.complete=()=>{},this._config.success=()=>{this.request()})}static success(...animates){let successNumber=0;return new Promise(resolve=>{for(let i=0;i<animates.length;i++){const animate=animates[i],config=animate._config,success=config.success;config.loop||(config.success=v=>{successNumber++,success&&success.call(animate,v),successNumber===animates.length&&resolve()})}})}request(){this._config.delay===0?(this._status=0,this._start=Date.now(),this._fakeHandle()):(this._delayHandle&&clearTimeout(this._delayHandle),this._delayHandle=setTimeout(()=>{this._status=0,this._start=Date.now(),this._fakeHandle()},this._config.delay))}cancel(){this._status=1,this._delayHandle&&clearTimeout(this._delayHandle),cancelAnimationFrame(this._handle)}_fakeHandle(){let times=Date.now()-this._start;times=times>=this._config.duration?this._config.duration:times;const fix=Tween[this._config.type](times,this._config.begin,this._config.end-this._config.begin,this._config.duration,.7).toFixed(2);if(this._config.receive(fix),this._status===1){this._config.cancel(fix),this._config.complete(fix);return}if(times===this._config.duration){this._config.success(fix),this._config.complete(fix);return}this._handle=requestAnimationFrame(()=>{this._fakeHandle()})}};__name(_Animate,"Animate");let Animate=_Animate;const _SlideTabItem=class _SlideTabItem{constructor(slideTabItem2,slideTabBar2){__publicField(this,"_slideTabItem");__publicField(this,"_animate");__publicField(this,"_midline",0);__publicField(this,"_translateX");__publicField(this,"_scrollbar");__publicField(this,"_slideTabBar");__publicField(this,"_editMode");__publicField(this,"_placeholder");this._slideTabItem=slideTabItem2,this._animate=null,this._translateX=0,this._editMode=!1,this._slideTabBar=slideTabBar2,this._placeholder=null,this._scrollbar=slideTabBar2.getScrollbar(),this.update()}static midline(item){return item.getBoundingRect().x+item.getBoundingRect().width/2}static leftLine(item){return item.getBoundingRect().x}static rightLine(item){return item.getBoundingRect().x+item.getBoundingRect().width}static make(nodeList,slideTabBar2){const result=[];return nodeList.forEach(item=>result.push(new _SlideTabItem(item,slideTabBar2))),result}getSlideTabItem(){return this._slideTabItem}getEditor(){return this._slideTabItem.querySelector("span")}focus(){var _a61;(_a61=this.getEditor())==null||_a61.focus()}selectAll(){const input=this.getEditor();input&&SlideTabBar.keepSelectAll(input)}isEditMode(){return this._editMode}classList(){return this._slideTabItem.classList}translateX(x){return this._translateX=x,this._slideTabItem.style.transform=`translateX(${x}px)`,this.getTranslateXDirection()}setEditor(callback){if(!this._slideTabBar.getConfig().onNameChangeCheck())return;let compositionFlag=!0;if(this._editMode===!1){const input=this._slideTabItem.querySelector("span"),blurAction=__name(focusEvent=>{if(!this.nameCheck()){if(this._editMode=!1,input&&(input.removeAttribute("contentEditable"),input.removeEventListener("focusout",blurAction),input.removeEventListener("compositionstart",compositionstartAction),input.removeEventListener("compositionend",compositionendAction),input.removeEventListener("input",inputAction),input.removeEventListener("keydown",keydownAction),input.classList.remove(this._slideTabBar.getConfig().slideTabBarSpanEditClassName)),this._slideTabBar.removeListener(),this._slideTabBar.updateItems(),this._slideTabBar.getConfig().onChangeName){const text=(input==null?void 0:input.innerText)||"",id=this.getId();this._slideTabBar.getConfig().onChangeName(id,text)}callback&&callback(focusEvent)}},"blurAction");let keydownAction=__name(e=>{input&&(e.stopPropagation(),e.key==="Enter"&&input.blur())},"keydownAction");const compositionstartAction=__name(e=>{compositionFlag=!1},"compositionstartAction"),compositionendAction=__name(e=>{compositionFlag=!0},"compositionendAction"),inputAction=__name(e=>{if(!input)return;const maxLength=31;setTimeout(()=>{if(compositionFlag){const text=input.innerText;text.length>maxLength&&(input.innerText=text.substring(0,maxLength),SlideTabBar.keepLastIndex(input))}},0)},"inputAction");input&&(input.setAttribute("contentEditable","true"),input.addEventListener("focusout",blurAction),input.addEventListener("compositionstart",compositionstartAction),input.addEventListener("compositionend",compositionendAction),input.addEventListener("input",inputAction),input.addEventListener("keydown",keydownAction),input.classList.add(this._slideTabBar.getConfig().slideTabBarSpanEditClassName),this._editMode=!0,SlideTabBar.keepSelectAll(input))}}nameCheck(){const input=this._slideTabItem.querySelector("span");if(!input)return!1;const text=input.innerText;return this._slideTabBar.getConfig().onNameCheckAlert(text)}animate(){return{translateX:__name(x=>{this._translateX!==x&&(this._animate&&(this._animate.cancel(),this._animate=null),this._animate=new Animate({begin:this._translateX,end:x,receive:__name(val=>{this._slideTabItem.style.transform=`translateX(${val}px)`},"receive")}),this._translateX=x,this._animate.request())},"translateX"),cancel:__name(()=>{this._animate&&(this._animate.cancel(),this._animate=null)},"cancel")}}after(other){this._slideTabItem.after(other._slideTabItem||other)}update(){this._midline=_SlideTabItem.midline(this)}disableFixed(){if(this._placeholder){const primeval=this._slideTabBar.primeval();this._slideTabItem.style.removeProperty("position"),this._slideTabItem.style.removeProperty("left"),this._slideTabItem.style.removeProperty("top"),this._slideTabItem.style.removeProperty("width"),this._slideTabItem.style.removeProperty("height"),this._slideTabItem.style.removeProperty("background"),this._slideTabItem.style.removeProperty("padding"),this._slideTabItem.style.removeProperty("box-sizing"),this._slideTabItem.style.removeProperty("font-size"),this._slideTabItem.style.removeProperty("font-family"),this._slideTabItem.style.removeProperty("font-weight"),this._slideTabItem.style.removeProperty("color"),this._slideTabItem.style.removeProperty("border-radius"),this._placeholder.after(this._slideTabItem),primeval.removeChild(this._placeholder),this._placeholder=null}}enableFixed(){const placeholder=document.createElement("div"),boundingRect=this.getBoundingRect(),computedStyles=getComputedStyle(this._slideTabItem),innerSpan=this._slideTabItem.querySelector("span");if(this._placeholder=placeholder,this._placeholder.style.width=`${boundingRect.width}px`,this._placeholder.style.height=`${boundingRect.height}px`,this._placeholder.style.flexShrink="0",this._placeholder.style.margin=computedStyles.margin,this._slideTabItem.style.background=computedStyles.background,innerSpan){const innerPadding=getComputedStyle(innerSpan).padding;this._slideTabItem.style.padding=innerPadding}this._slideTabItem.style.boxSizing=computedStyles.boxSizing,this._slideTabItem.style.fontSize=computedStyles.fontSize,this._slideTabItem.style.fontFamily=computedStyles.fontFamily,this._slideTabItem.style.fontWeight=computedStyles.fontWeight,this._slideTabItem.style.color=computedStyles.color,this._slideTabItem.style.borderRadius=computedStyles.borderRadius,this._slideTabItem.style.left=`${boundingRect.x-this.getScrollbar().getScrollX()}px`,this._slideTabItem.style.top=`${boundingRect.y}px`,this._slideTabItem.style.width=`${boundingRect.width}px`,this._slideTabItem.style.height=`${boundingRect.height}px`,this._slideTabItem.style.position="fixed",this._slideTabItem.after(placeholder),document.body.appendChild(this._slideTabItem)}addEventListener(type,action,options){this._slideTabItem.addEventListener(type,action,options)}removeEventListener(type,action,options){this._slideTabItem.removeEventListener(type,action,options)}getScrollbar(){return this._scrollbar}getMidLine(){return this._midline}getBoundingRect(){const boundingClientRect=this._slideTabItem.getBoundingClientRect();return boundingClientRect.x+=this._scrollbar.getScrollX(),boundingClientRect}getWidth(){return this.getBoundingRect().width}getTranslateXDirection(){const midline=_SlideTabItem.midline(this);return midline>this._midline?1:midline<this._midline?-1:0}equals(other){return other&&other._slideTabItem===this._slideTabItem}getId(){return this._slideTabItem.dataset.id||""}};__name(_SlideTabItem,"SlideTabItem");let SlideTabItem=_SlideTabItem;const _SlideScrollbar=class _SlideScrollbar{constructor(slideTabBar2){__publicField(this,"_slideTabBar");__publicField(this,"_scrollX");const primeval=slideTabBar2.primeval();this._scrollX=primeval.scrollLeft,this._slideTabBar=slideTabBar2}scrollX(x){const primeval=this._slideTabBar.primeval();primeval.scrollLeft=x,this._scrollX=primeval.scrollLeft}scrollRight(){const primeval=this._slideTabBar.primeval();primeval.scrollLeft=primeval.scrollWidth,this._scrollX=primeval.scrollLeft}getScrollX(){return this._scrollX}};__name(_SlideScrollbar,"SlideScrollbar");let SlideScrollbar=_SlideScrollbar;const _SlideTabBar=class _SlideTabBar{constructor(config){__publicField(this,"_activeTabItemIndex",0);__publicField(this,"_slideTabBar");__publicField(this,"_slideTabItems",[]);__publicField(this,"_config");__publicField(this,"_downActionX",0);__publicField(this,"_moveActionX",0);__publicField(this,"_compareIndex",0);__publicField(this,"_activeTabItem",null);__publicField(this,"_moveAction");__publicField(this,"_upAction");__publicField(this,"_downAction");__publicField(this,"_wheelAction");__publicField(this,"_scrollIncremental",0);__publicField(this,"_compareDirection",0);__publicField(this,"_autoScrollTime",null);__publicField(this,"_slideScrollbar");__publicField(this,"_longPressTimer",null);__publicField(this,"_leftBoundingLine",0);__publicField(this,"_rightBoundingLine",0);__publicField(this,"_leftMoveX",0);__publicField(this,"_rightMoveX",0);var _a61;if(config.slideTabBarContainer==null)throw new Error("not found slide-tab-bar root element");const slideTabBar2=config.slideTabBarContainer.querySelector(`.${(_a61=config.slideTabBarClassName)!=null?_a61:"slide-tab-bar"}`);if(slideTabBar2==null)throw new Error("not found slide-tab-bar");this._slideTabBar=slideTabBar2,this._slideScrollbar=new SlideScrollbar(this),this._config=config,this._initConfig();let lastPageX=0,lastPageY=0,lastTime=0;this._downAction=downEvent=>{var _a62,_b,_c,_d,_e,_f;if((_a62=this._activeTabItem)!=null&&_a62.isEditMode())return;this._longPressTimer&&(clearTimeout(this._longPressTimer),this._longPressTimer=null);const slideItemId=(_c=(_b=downEvent.target)==null?void 0:_b.closest(`.${config.slideTabBarItemClassName}`))==null?void 0:_c.getAttribute("data-id"),slideItemIndex=this._slideTabItems.findIndex(item=>item.getId()===slideItemId);if(slideItemId==null||slideItemIndex===-1)return;if(this._activeTabItemIndex!==slideItemIndex){(_d=this._activeTabItem)==null||_d.removeEventListener("pointermove",this._moveAction),(_e=this._activeTabItem)==null||_e.removeEventListener("pointerup",this._upAction),this.removeListener(),this._config.onChangeTab(downEvent,slideItemId);return}if(this._compareIndex=slideItemIndex,this._downActionX=downEvent.pageX,this._moveActionX=0,this._scrollIncremental=0,this._activeTabItem=this._slideTabItems[slideItemIndex],!this._activeTabItem){console.error("Not found active slide-tab-item in sheet bar");return}const activeSlideItemElement=this._activeTabItem.getSlideTabItem();activeSlideItemElement==null||activeSlideItemElement.setPointerCapture(downEvent.pointerId),(_f=this._activeTabItem)==null||_f.addEventListener("pointerup",this._upAction);const{x,width}=this._activeTabItem.getBoundingRect(),{x:containerX,width:containerWidth}=this.getBoundingRect(),scrollX=this._slideScrollbar.getScrollX();if(this._leftBoundingLine=this._downActionX-(x-scrollX),this._rightBoundingLine=x-scrollX+width-this._downActionX,this._leftMoveX=x-containerX-scrollX,this._rightMoveX=containerX+containerWidth-(x+width)+scrollX,downEvent.button===2||this._hasEditItem())return;const{pageX,pageY}=downEvent,current=Date.now(),diffTime=current-lastTime<=_SlideTabBar.DoubleClickDelay,diffPageX=Math.abs(pageX-lastPageX)<10,diffPageY=Math.abs(pageY-lastPageY)<10;diffTime&&diffPageX&&diffPageY&&this._activeTabItem.setEditor(),lastPageX=pageX,lastPageY=pageY,lastTime=current,this._longPressTimer=setTimeout(()=>{var _a63,_b2,_c2;!activeSlideItemElement||(_a63=this._activeTabItem)!=null&&_a63.isEditMode()||((_b2=this._activeTabItem)==null||_b2.enableFixed(),this._startAutoScroll(),activeSlideItemElement.setPointerCapture(downEvent.pointerId),activeSlideItemElement.style.cursor="move",(_c2=this._activeTabItem)==null||_c2.addEventListener("pointermove",this._moveAction))},_SlideTabBar.LongPressDelay)},this._upAction=upEvent=>{var _a62,_b,_c,_d;if((_a62=this._activeTabItem)!=null&&_a62.isEditMode()||(this._longPressTimer&&(clearTimeout(this._longPressTimer),this._longPressTimer=null),!this._activeTabItem))return;const isFromScroll=this._autoScrollTime!==null;this._closeAutoScroll(),this._activeTabItem.disableFixed(),this.updateItems();const activeSlideItemElement=(_b=this._activeTabItem)==null?void 0:_b.getSlideTabItem();activeSlideItemElement&&(activeSlideItemElement.style.cursor="",activeSlideItemElement.releasePointerCapture(upEvent.pointerId),(_c=this._activeTabItem)==null||_c.removeEventListener("pointermove",this._moveAction),(_d=this._activeTabItem)==null||_d.removeEventListener("pointerup",this._upAction),this._config.onSlideEnd&&this._activeTabItemIndex!==this._compareIndex&&isFromScroll&&(this.removeListener(),this._config.onSlideEnd(upEvent,this._compareIndex||0)),this._scrollIncremental=0,this._downActionX=0,this._moveActionX=0,this._compareIndex=0)},this._moveAction=moveEvent=>{this._activeTabItem&&(this._moveActionX=moveEvent.pageX-this._downActionX,this._moveActionX<=-this._leftMoveX?this._moveActionX=-this._leftMoveX:this._moveActionX>=this._rightMoveX&&(this._moveActionX=this._rightMoveX),this._scrollIncremental=0,this._scrollLeft(moveEvent),this._scrollRight(moveEvent))},this._wheelAction=wheelEvent=>{this.setScroll(wheelEvent.deltaY)},this.addListener()}static checkedSkipSlide(event){let parent=event.target;for(;parent!=null&&parent!==document.body;){if(parent.getAttribute("data-slide-skip"))return!0;parent=parent.parentElement}return!1}static keepLastIndex(inputHtml){setTimeout(()=>{const range=window.getSelection();range&&(range.selectAllChildren(inputHtml),range.collapseToEnd())})}static keepSelectAll(inputHtml){setTimeout(()=>{const selection=window.getSelection();if(!selection)return;const range=document.createRange();range.selectNodeContents(inputHtml),selection.removeAllRanges(),selection.addRange(range)})}update(currentIndex){this._config.currentIndex=currentIndex,this._initConfig(),this.removeListener(),this.addListener(),this.scrollToItem(currentIndex)}primeval(){return this._slideTabBar}updateItems(){for(let i=0;i<this._slideTabItems.length;i++)this._slideTabItems[i].animate().cancel(),this._slideTabItems[i].translateX(0),this._slideTabItems[i].update()}getScrollbar(){return this._slideScrollbar}getConfig(){return this._config}getBoundingRect(){return this._slideTabBar.getBoundingClientRect()}getSlideTabItems(){return this._slideTabItems}getActiveItem(){return this._activeTabItem}isLeftEnd(){return this._slideTabBar.scrollLeft===0}isRightEnd(){const parent=this._slideTabBar.parentElement;return parent?this._slideTabBar.scrollWidth-parent.clientWidth===this._slideTabBar.scrollLeft:!1}addListener(){this._slideTabBar.addEventListener("wheel",this._wheelAction),this._slideTabItems.forEach(item=>{item.addEventListener("pointerdown",this._downAction)})}removeListener(){this._slideTabBar.removeEventListener("wheel",this._wheelAction),this._slideTabItems.forEach(item=>{item.removeEventListener("pointerdown",this._downAction)})}setScroll(x){if(this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+x),x>0){const left=this.calculateLeftScrollX();this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+left)}else if(x<0){const right=this.calculateRightScrollX();this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+right)}this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}flipPage(x){if(x>0){const left=this.calculateLeftScrollX(!0);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+left)}else if(x<0){const right=this.calculateRightScrollX(!0);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+right)}this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}scrollToItem(index){if(index=index!=null?index:this._config.currentIndex,index<0||index>=this._slideTabItems.length){console.error("Index out of bounds");return}const right=this.calculateTabItemScrollX(index);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+right),this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}calculateLeftScrollX(shouldFlipPage){let scrollX=0;const padding=4;return this._slideTabItems.some(item=>{const containerRect=this._slideTabBar.getBoundingClientRect(),containerPosition=containerRect.left+containerRect.width,itemReact=item.getSlideTabItem().getBoundingClientRect(),itemLeft=itemReact.left,itemWidth=itemReact.width;return itemLeft<containerPosition&&itemLeft+itemWidth+padding*2>containerPosition?(scrollX=shouldFlipPage?itemLeft-containerRect.left-padding:itemLeft+itemWidth-containerPosition+padding,!0):!1}),scrollX}calculateRightScrollX(shouldFlipPage){let scrollX=0;const padding=4;return this._slideTabItems.some(item=>{const containerRect=this._slideTabBar.getBoundingClientRect(),containerPosition=containerRect.left,itemReact=item.getSlideTabItem().getBoundingClientRect(),itemLeft=itemReact.left,itemWidth=itemReact.width;return itemLeft-padding*2<containerPosition&&itemLeft+itemWidth>containerPosition?(scrollX=shouldFlipPage?itemLeft+itemWidth-containerRect.left-containerRect.width+padding:itemLeft-containerPosition-padding,!0):!1}),scrollX}calculateTabItemScrollX(index){let scrollX=0;const padding=4,containerRect=this._slideTabBar.getBoundingClientRect(),containerLeftPosition=containerRect.left,containerRightPosition=containerRect.left+containerRect.width,itemReact=this._slideTabItems[index].getSlideTabItem().getBoundingClientRect(),itemLeft=itemReact.left,itemWidth=itemReact.width;return itemLeft-padding*2<containerLeftPosition&&(scrollX=itemLeft-containerLeftPosition-padding),itemLeft+itemWidth+padding*2>containerRightPosition&&(scrollX=itemLeft+itemWidth-containerRightPosition+padding),scrollX}calculateActiveTabItemScrollX(){var _a61;let scrollX=0;const padding=4,containerRect=this._slideTabBar.getBoundingClientRect(),containerLeftPosition=containerRect.left,containerRightPosition=containerRect.left+containerRect.width,itemReact=(_a61=this._activeTabItem)==null?void 0:_a61.getSlideTabItem().getBoundingClientRect();if(!itemReact)return 0;const itemLeft=itemReact.left,itemWidth=itemReact.width;return itemLeft-padding*2<containerLeftPosition&&itemLeft+itemWidth>containerLeftPosition&&(scrollX=itemLeft-containerLeftPosition-padding),itemLeft<containerRightPosition&&itemLeft+itemWidth+padding*2>containerRightPosition&&(scrollX=itemLeft+itemWidth-containerRightPosition+padding),scrollX}destroy(){this.removeListener(),this._downActionX=0,this._moveActionX=0,this._compareDirection=0,this._compareIndex=0,this._slideTabItems=[],this._activeTabItem=null}_hasEditItem(){for(let index=0;index<this._slideTabItems.length;index++)if(this._slideTabItems[index].isEditMode())return!0;return!1}_autoScrollFrame(){if(this._activeTabItem)switch(this._compareDirection=this._activeTabItem.translateX(this._moveActionX),this._compareDirection){case 1:{this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+this._scrollIncremental),this._compareRight();break}case 0:{this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+this._scrollIncremental),this._compareIndex=this._activeTabItemIndex;break}case-1:{this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+this._scrollIncremental),this._compareLeft();break}}this._autoScrollTime=requestAnimationFrame(()=>{this._autoScrollFrame()})}_startAutoScroll(){this._autoScrollTime==null&&this._autoScrollFrame()}_closeAutoScroll(){this._autoScrollTime&&cancelAnimationFrame(this._autoScrollTime),this._autoScrollTime=null}_scrollLeft(event){const boundingRect=this.getBoundingRect(),x=event.pageX-boundingRect.x;x<this._leftBoundingLine&&(this._scrollIncremental=-Math.min(Math.abs(x-this._leftBoundingLine)*.1,50))}_scrollRight(event){const boundingRect=this.getBoundingRect(),x=event.pageX-boundingRect.x;x>boundingRect.width-this._rightBoundingLine&&(this._scrollIncremental=Math.min(Math.abs(x-(boundingRect.width-this._rightBoundingLine))*.1,50))}_sortedItems(){if(this._activeTabItem!=null&&this._activeTabItemIndex!=null&&this._compareIndex!=null&&(this._slideTabItems.splice(this._activeTabItemIndex,1),this._slideTabItems.splice(this._compareIndex,0,this._activeTabItem),this._config.slideTabBarItemAutoSort))for(let i=0;i<this._slideTabItems.length;i++){const item=this._slideTabItems[i],next=this._slideTabItems[i+1];next&&item.after(next)}}_compareLeft(){if(this._activeTabItem&&this._activeTabItemIndex){const splice=this._slideTabItems.findIndex(item=>item.equals(this._activeTabItem)),length=this._slideTabItems.length,collect=[];for(let i=0;i<splice&&!(i>=splice);i++)collect.push(this._slideTabItems[i]);for(let i=splice+1;i<length;i++)this._slideTabItems[i].animate().translateX(0);let notFound=!0;for(let i=collect.length-1;i>=0;i--){const item=collect[i];SlideTabItem.leftLine(this._activeTabItem)<item.getMidLine()?(item.animate().translateX(this._activeTabItem.getWidth()),this._compareIndex=i,notFound=!1):(item.animate().translateX(0),notFound&&(this._compareIndex=this._activeTabItemIndex))}}}_compareRight(){if(this._activeTabItem){const splice=this._slideTabItems.findIndex(item=>item.equals(this._activeTabItem)),length=this._slideTabItems.length,collect=[];for(let i=splice+1;i<length;i++)collect.push(this._slideTabItems[i]);for(let i=0;i<splice;i++)this._slideTabItems[i].animate().translateX(0);let notFound=!0;for(let i=0;i<collect.length;i++){const item=collect[i];SlideTabItem.rightLine(this._activeTabItem)>item.getMidLine()?(item.animate().translateX(-this._activeTabItem.getWidth()),this._compareIndex=splice+i+1,notFound=!1):(item.animate().translateX(0),notFound&&(this._compareIndex=this._activeTabItemIndex))}}}_initConfig(){var _a61;const slideTabItems=this._slideTabBar.querySelectorAll(`.${(_a61=this._config.slideTabBarItemClassName)!=null?_a61:"slide-tab-item"}`);this._downActionX=0,this._moveActionX=0,this._compareDirection=0,this._compareIndex=0,this._slideTabItems=SlideTabItem.make(slideTabItems,this),this._activeTabItemIndex=this._config.currentIndex,this._activeTabItem=this._slideTabItems[this._activeTabItemIndex]}};__name(_SlideTabBar,"SlideTabBar"),__publicField(_SlideTabBar,"LongPressDelay",500),__publicField(_SlideTabBar,"DoubleClickDelay",300);let SlideTabBar=_SlideTabBar;function SheetBarTabs(){var _a61;const[sheetList,setSheetList]=React.useState([]),[activeKey,setActiveKey]=React.useState(""),[boxShadow,setBoxShadow]=React.useState(""),[visible,setVisible]=React.useState(!1),[offset,setOffset]=React.useState([0,0]),slideTabBarRef=React.useRef({slideTabBar:null}),slideTabBarContainerRef=React.useRef(null),commandService=core.useDependency(core.ICommandService),sheetBarService=core.useDependency(ISheetBarService),localeService=core.useDependency(core.LocaleService),confirmService=core.useDependency(ui.IConfirmService),configService=core.useDependency(core.IConfigService),editorBridgeService=core.useDependency(IEditorBridgeService,core.Quantity.OPTIONAL),worksheetProtectionRuleModel=core.useDependency(sheets.WorksheetProtectionRuleModel),rangeProtectionRuleModel=core.useDependency(sheets.RangeProtectionRuleModel),resetOrder=ui.useObservable(worksheetProtectionRuleModel.resetOrder$),workbook=useActiveWorkbook(),permissionService=core.useDependency(core.IPermissionService),updateSheetItems=React.useCallback(()=>{var _a62;const currentSubUnitId=((_a62=workbook.getActiveSheet())==null?void 0:_a62.getSheetId())||"";setActiveKey(currentSubUnitId);const sheets2=workbook.getSheets(),activeSheet=workbook.getActiveSheet(),sheetListItems=sheets2.filter(sheet=>!sheet.isSheetHidden()).map((sheet,index)=>{var _a63;const worksheetRule=worksheetProtectionRuleModel.getRule(workbook.getUnitId(),sheet.getSheetId()),hasSelectionRule=rangeProtectionRuleModel.getSubunitRuleList(workbook.getUnitId(),sheet.getSheetId()).length>0,name=(worksheetRule==null?void 0:worksheetRule.permissionId)||hasSelectionRule?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(LockSingle,{}),jsxRuntime.jsx("span",{children:sheet.getName()})]}):jsxRuntime.jsx("span",{children:sheet.getName()});return{sheetId:sheet.getSheetId(),label:name,index,selected:activeSheet===sheet,color:(_a63=sheet.getTabColor())!=null?_a63:void 0}});setSheetList(sheetListItems),setActiveKey(currentSubUnitId)},[rangeProtectionRuleModel,workbook,worksheetProtectionRuleModel]);React.useEffect(()=>{updateSheetItems();const{slideTabBar:slideTabBar2,disconnectResizeObserver}=setupSlideTabBarInit(),disposable=setupStatusUpdate(),subscribeList=[setupSubscribeScroll(),setupSubscribeScrollX(),setupSubscribeRenameId()];return()=>{disposable.dispose(),slideTabBar2.destroy(),subscribeList.forEach(subscribe=>subscribe.unsubscribe()),disconnectResizeObserver&&disconnectResizeObserver()}},[resetOrder,workbook]),React.useEffect(()=>{sheetList.length>0&&setupSlideTabBarUpdate()},[sheetList]),React.useEffect(()=>{const subscription=rxjs.merge(worksheetProtectionRuleModel.ruleChange$,rangeProtectionRuleModel.ruleChange$).subscribe(()=>{updateSheetItems()});return()=>{subscription.unsubscribe()}},[worksheetProtectionRuleModel,updateSheetItems]);const setupSlideTabBarInit=__name(()=>{const slideTabBar2=new SlideTabBar({slideTabBarClassName:styles$a.slideTabBar,slideTabBarItemActiveClassName:styles$a.slideTabActive,slideTabBarItemClassName:styles$a.slideTabItem,slideTabBarSpanEditClassName:styles$a.slideTabDivEdit,slideTabBarItemAutoSort:!0,slideTabBarContainer:slideTabBarContainerRef.current,currentIndex:0,onChangeName:__name((subUnitId,worksheetName)=>{commandService.executeCommand(sheets.SetWorksheetNameCommand.id,{subUnitId,name:worksheetName})},"onChangeName"),onSlideEnd:__name(async(event,order)=>{await commandService.executeCommand(sheets.SetWorksheetOrderCommand.id,{order})},"onSlideEnd"),onChangeTab:__name((event,subUnitId)=>{commandService.executeCommand(sheets.SetWorksheetActiveOperation.id,{subUnitId,unitId:workbook.getUnitId()}).then(()=>{event.button===2&&onVisibleChange(!0)})},"onChangeTab"),onScroll:__name(state=>{sheetBarService.setScroll(state)},"onScroll"),onNameCheckAlert:__name(text=>nameEmptyCheck(text)||sheetNameSpecCharCheck(text)||nameRepeatCheck(text),"onNameCheckAlert"),onNameChangeCheck:__name(()=>{var _a62,_b,_c,_d;const unitId=workbook.getUnitId(),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const subUnitId=worksheet.getSheetId(),worksheetRule=worksheetProtectionRuleModel.getRule(unitId,subUnitId),selectionRule=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).length>0;return worksheetRule||selectionRule?(_b=(_a62=permissionService.getPermissionPoint(new sheets.WorkbookManageCollaboratorPermission(unitId).id))==null?void 0:_a62.value)!=null?_b:!1:(_d=(_c=permissionService.getPermissionPoint(new sheets.WorkbookRenameSheetPermission(unitId).id))==null?void 0:_c.value)!=null?_d:!1},"onNameChangeCheck")});slideTabBarRef.current.slideTabBar=slideTabBar2;const disconnectResizeObserver=resizeInit(slideTabBar2);return{slideTabBar:slideTabBar2,disconnectResizeObserver}},"setupSlideTabBarInit"),config=configService.getConfig(ui.UI_PLUGIN_CONFIG_KEY),showContextMenu=(_a61=config==null?void 0:config.contextMenu)!=null?_a61:!0,nameEmptyCheck=__name(name=>{if(name.trim()===""){const id="sheetNameEmptyAlert";return confirmService.open({id,title:{title:localeService.t("sheetConfig.sheetNameErrorTitle")},children:{title:localeService.t("sheetConfig.sheetNameCannotIsEmptyError")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm"),onClose(){focusTabEditor(),confirmService.close(id)},onConfirm(){focusTabEditor(),confirmService.close(id)}}),!0}return!1},"nameEmptyCheck"),sheetNameSpecCharCheck=__name(name=>{if(!core.nameCharacterCheck(name)){const id="sheetNameSpecCharAlert";return confirmService.open({id,title:{title:localeService.t("sheetConfig.sheetNameErrorTitle")},children:{title:localeService.t("sheetConfig.sheetNameSpecCharError")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm"),onClose(){focusTabEditor(),confirmService.close(id)},onConfirm(){focusTabEditor(),confirmService.close(id)}}),!0}return!1},"sheetNameSpecCharCheck"),nameRepeatCheck=__name(name=>{const worksheet=workbook.getActiveSheet();if((worksheet==null?void 0:worksheet.getName())===name)return!1;const checked=workbook.checkSheetName(name);if(checked){const id="sheetNameRepeatAlert";confirmService.open({id,title:{title:localeService.t("sheetConfig.sheetNameErrorTitle")},children:{title:localeService.t("sheetConfig.sheetNameAlreadyExistsError")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm"),onClose(){confirmService.close(id),focusTabEditor()},onConfirm(){confirmService.close(id),focusTabEditor()}})}return checked},"nameRepeatCheck"),focusTabEditor=__name(()=>{setTimeout(()=>{var _a62;const activeSlideTab=(_a62=slideTabBarRef.current.slideTabBar)==null?void 0:_a62.getActiveItem();activeSlideTab&&(activeSlideTab.focus(),activeSlideTab.selectAll())},0)},"focusTabEditor"),setTabEditor=__name(()=>{var _a62,_b;(_b=(_a62=slideTabBarRef.current.slideTabBar)==null?void 0:_a62.getActiveItem())==null||_b.setEditor()},"setTabEditor"),setupSlideTabBarUpdate=__name(()=>{var _a62;const currentIndex=sheetList.findIndex(item=>item.selected);(_a62=slideTabBarRef.current.slideTabBar)==null||_a62.update(currentIndex)},"setupSlideTabBarUpdate"),setupStatusUpdate=__name(()=>commandService.onCommandExecuted(commandInfo=>{switch(commandInfo.id){case sheets.SetTabColorMutation.id:case sheets.SetWorksheetHideMutation.id:case sheets.RemoveSheetMutation.id:case sheets.SetWorksheetNameMutation.id:case sheets.InsertSheetMutation.id:case sheets.SetWorksheetOrderMutation.id:case sheets.SetWorksheetActiveOperation.id:updateSheetItems();break}}),"setupStatusUpdate"),setupSubscribeScroll=__name(()=>sheetBarService.scroll$.subscribe(state=>{updateScrollButtonState(state)}),"setupSubscribeScroll"),setupSubscribeScrollX=__name(()=>sheetBarService.scrollX$.subscribe(x=>{var _a62;(_a62=slideTabBarRef.current.slideTabBar)==null||_a62.flipPage(x)}),"setupSubscribeScrollX"),setupSubscribeRenameId=__name(()=>sheetBarService.renameId$.subscribe(()=>{setTabEditor()}),"setupSubscribeRenameId"),updateScrollButtonState=__name(state=>{const{leftEnd,rightEnd}=state;let boxShadow2="";leftEnd&&rightEnd?boxShadow2="":leftEnd&&!rightEnd?boxShadow2="inset -10px 0px 10px -10px rgba(0, 0, 0, 0.2)":!leftEnd&&rightEnd?boxShadow2="inset 10px 0px 10px -10px rgba(0, 0, 0, 0.2)":!leftEnd&&!rightEnd&&(boxShadow2="inset 10px 0px 10px -10px rgba(0, 0, 0, 0.2), inset -10px 0px 10px -10px rgba(0, 0, 0, 0.2)"),setBoxShadow(boxShadow2)},"updateScrollButtonState"),buttonScroll=__name(slideTabBar2=>{const scrollX=slideTabBar2.calculateActiveTabItemScrollX();if(scrollX){const scrollBar=slideTabBar2.getScrollbar();scrollBar.scrollX(scrollBar.getScrollX()+scrollX)}sheetBarService.setScroll({leftEnd:slideTabBar2.isLeftEnd(),rightEnd:slideTabBar2.isRightEnd()})},"buttonScroll"),resizeInit=__name(slideTabBar2=>{var _a62;const slideTabBarContainer2=(_a62=slideTabBarContainerRef.current)==null?void 0:_a62.querySelector(`.${styles$a.slideTabBar}`);if(!slideTabBarContainer2)return;const observer=new ResizeObserver(()=>{buttonScroll(slideTabBar2)});return observer.observe(slideTabBarContainer2),()=>observer.disconnect()},"resizeInit"),onVisibleChange=__name(visible2=>{var _a62,_b,_c,_d,_e;if(showContextMenu&&!(editorBridgeService!=null&&editorBridgeService.isForceKeepVisible())){if(visible2){const{left:containerLeft}=(_b=(_a62=slideTabBarContainerRef.current)==null?void 0:_a62.getBoundingClientRect())!=null?_b:{},{left:activeTabLeft}=(_e=(_d=(_c=slideTabBarRef.current.slideTabBar)==null?void 0:_c.getActiveItem())==null?void 0:_d.getSlideTabItem().getBoundingClientRect())!=null?_e:{};containerLeft!==void 0&&activeTabLeft!==void 0&&setOffset([activeTabLeft-containerLeft,0])}setVisible(visible2)}},"onVisibleChange");return jsxRuntime.jsx(design.DropdownLegacy,{className:styles$a.slideTabItemDropdown,visible,align:{offset},trigger:["contextMenu"],overlay:jsxRuntime.jsx(ui.UIMenu,{menuType:ui.ContextMenuPosition.FOOTER_TABS,onOptionSelect:__name(params=>{const{label:id,value,commandId}=params;commandService.executeCommand(commandId!=null?commandId:id,{value,subUnitId:activeKey}),setVisible(!1)},"onOptionSelect")}),onVisibleChange,children:jsxRuntime.jsx("div",{className:styles$a.slideTabBarContainer,ref:slideTabBarContainerRef,onDragStart:__name(e=>e.preventDefault(),"onDragStart"),onContextMenu:__name(e=>e.preventDefault(),"onContextMenu"),children:jsxRuntime.jsx("div",{className:styles$a.slideTabBar,style:{boxShadow},children:sheetList.map(item=>React.createElement(SheetBarItem,{...item,key:item.sheetId,selected:activeKey===item.sheetId}))})})})}__name(SheetBarTabs,"SheetBarTabs");const SCROLL_WIDTH=100,SheetBar=__name(()=>{var _a61,_b;const[leftScrollState,setLeftScrollState]=React.useState(!0),[rightScrollState,setRightScrollState]=React.useState(!0),commandService=core.useDependency(core.ICommandService),sheetBarService=core.useDependency(ISheetBarService),permissionService=core.useDependency(core.IPermissionService),unitId=useActiveWorkbook().getUnitId(),workbookEditablePermission=ui.useObservable(permissionService.getPermissionPoint$((_a61=new sheets.WorkbookEditablePermission(unitId))==null?void 0:_a61.id)),workbookCreateSheetPermission=ui.useObservable(permissionService.getPermissionPoint$((_b=new sheets.WorkbookCreateSheetPermission(unitId))==null?void 0:_b.id));React.useEffect(()=>{const subscription=sheetBarService.scroll$.subscribe(state=>{updateScrollButtonState(state)});return()=>{subscription.unsubscribe()}},[]);const updateScrollButtonState=__name(state=>{const{leftEnd,rightEnd}=state;setLeftScrollState(leftEnd),setRightScrollState(rightEnd)},"updateScrollButtonState"),addSheet=__name(()=>{commandService.executeCommand(sheets.InsertSheetCommand.id),setTimeout(()=>{sheetBarService.setAddSheet(0)},0)},"addSheet"),handleScrollLeft=__name(()=>{sheetBarService.setScrollX(-100)},"handleScrollLeft"),handleScrollRight=__name(()=>{sheetBarService.setScrollX(SCROLL_WIDTH)},"handleScrollRight");return jsxRuntime.jsxs("div",{className:styles$d.sheetBar,children:[jsxRuntime.jsxs("div",{className:styles$d.sheetBarOptions,children:[jsxRuntime.jsx(SheetBarButton,{onClick:addSheet,disabled:!(workbookCreateSheetPermission!=null&&workbookCreateSheetPermission.value&&(workbookEditablePermission!=null&&workbookEditablePermission.value)),children:jsxRuntime.jsx(IncreaseSingle,{})}),jsxRuntime.jsx(SheetBarMenu,{})]}),jsxRuntime.jsx(SheetBarTabs,{}),(!leftScrollState||!rightScrollState)&&jsxRuntime.jsxs("div",{className:`
53
53
  ${styles$d.sheetBarOptions}
54
54
  ${styles$d.sheetBarOptionsDivider}
55
- `,children:[jsxRuntime.jsx(SheetBarButton,{disabled:leftScrollState,onClick:handleScrollLeft,children:jsxRuntime.jsx(MoreSingle,{style:{transform:"rotateZ(180deg)"}})}),jsxRuntime.jsx(SheetBarButton,{disabled:rightScrollState,onClick:handleScrollRight,children:jsxRuntime.jsx(MoreSingle,{})})]})]})},"SheetBar"),_StatusBarService=class _StatusBarService{constructor(){__publicField(this,"_functions",[{func:engineFormula.FUNCTION_NAMES_STATISTICAL.MAX,filter:__name(status=>{var _a61,_b,_c,_d;return((_b=(_a61=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a61.value)!=null?_b:0)>1&&((_d=(_c=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:_c.value)!=null?_d:0)>0},"filter")},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.MIN,filter:__name(status=>{var _a61,_b,_c,_d;return((_b=(_a61=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a61.value)!=null?_b:0)>1&&((_d=(_c=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:_c.value)!=null?_d:0)>0},"filter")},{func:engineFormula.FUNCTION_NAMES_MATH.SUM,filter:__name(status=>{var _a61,_b,_c,_d;return((_b=(_a61=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a61.value)!=null?_b:0)>1&&((_d=(_c=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:_c.value)!=null?_d:0)>0},"filter")},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA,filter:__name(status=>{var _a61,_b;return((_b=(_a61=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a61.value)!=null?_b:0)>1},"filter")},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT,filter:__name(status=>{var _a61,_b,_c,_d;return((_b=(_a61=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a61.value)!=null?_b:0)>1&&((_d=(_c=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:_c.value)!=null?_d:0)>0},"filter")},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.AVERAGE,filter:__name(status=>{var _a61,_b,_c,_d;return((_b=(_a61=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a61.value)!=null?_b:0)>1&&((_d=(_c=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:_c.value)!=null?_d:0)>0},"filter")}]);__publicField(this,"_state$",new rxjs.BehaviorSubject(null));__publicField(this,"state$",this._state$.asObservable())}dispose(){this._state$.complete()}setState(param){var _a61;const newState={values:[],pattern:null};param==null||param.values.forEach(item=>{const func=this._functions.find(func2=>func2.func===item.func);func&&(func.filter===void 0||func.filter(param))&&newState.values.push(item)}),newState.pattern=(_a61=param==null?void 0:param.pattern)!=null?_a61:null,this._state$.next(newState)}getState(){return this._state$.getValue()}getFunctions(){return this._functions}addFunctions(functions){this._functions.push(...functions)}};__name(_StatusBarService,"StatusBarService");let StatusBarService=_StatusBarService;const IStatusBarService=core.createIdentifier("univer.sheet-status-bar.service"),statusBar="univer-status-bar",singleMode="univer-single-mode",statusBarDiv="univer-status-bar-div",statisticList="univer-statistic-list",statisticListColumn="univer-statistic-list-column",statisticItem="univer-statistic-item",statisticPicker="univer-statistic-picker",statisticPickerItem="univer-statistic-picker-item",statisticMore="univer-statistic-more",styles$9={statusBar,singleMode,statusBarDiv,statisticList,statisticListColumn,statisticItem,statisticPicker,statisticPickerItem,statisticMore},allowPatternFunctions=[engineFormula.FUNCTION_NAMES_MATH.SUM,engineFormula.FUNCTION_NAMES_STATISTICAL.AVERAGE,engineFormula.FUNCTION_NAMES_STATISTICAL.MIN,engineFormula.FUNCTION_NAMES_STATISTICAL.MAX],functionDisplayNames={[engineFormula.FUNCTION_NAMES_MATH.SUM]:"statusbar.sum",[engineFormula.FUNCTION_NAMES_STATISTICAL.AVERAGE]:"statusbar.average",[engineFormula.FUNCTION_NAMES_STATISTICAL.MIN]:"statusbar.min",[engineFormula.FUNCTION_NAMES_STATISTICAL.MAX]:"statusbar.max",[engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT]:"statusbar.count",[engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA]:"statusbar.countA",[engineFormula.FUNCTION_NAMES_TEXT.CONCATENATE]:"concatenate"},CopyableStatisticItem=__name(item=>{const localeService=core.useDependency(core.LocaleService),messageService=core.useDependency(ui.IMessageService),clipboardService=core.useDependency(ui.IClipboardInterfaceService),formateValue=formatNumber(item),copyToClipboard=__name(async()=>{await clipboardService.writeText(item.value.toString()),messageService.show({type:design.MessageType.Success,content:localeService.t("statusbar.copied")})},"copyToClipboard");return jsxRuntime.jsx(design.Tooltip,{title:localeService.t("statusbar.clickToCopy"),placement:"top",children:jsxRuntime.jsx("div",{className:styles$9.statisticItem,onClick:copyToClipboard,children:jsxRuntime.jsx("span",{children:`${localeService.t((functionDisplayNames==null?void 0:functionDisplayNames[item.name])||item.name)}: ${formateValue}`})},item.name)})},"CopyableStatisticItem");function formatNumber(item){const{pattern,value:num}=item;return typeof num!="number"?0:num>=1e8?num.toExponential(2):pattern&&allowPatternFunctions.includes(item.name)?core.numfmt.format(pattern,num,{throws:!1}):num.toLocaleString()}__name(formatNumber,"formatNumber");const SINGLE_MODE_WIDTH=800,ROW_COUNT_THRESHOLD=3,StatusBar=__name(()=>{const[isSingle,setIsSingle]=React.useState(window.innerWidth<SINGLE_MODE_WIDTH),[show,setShow]=React.useState(!0),statusBarService=core.useDependency(IStatusBarService),items=statusBarService.getFunctions().map((item,index)=>({name:item.func,value:0,show:!0,disable:!1,pattern:null})),[statistics,setStatistics]=React.useState(items),firstItem=statistics.find(item=>item.show&&!item.disable),showList=isSingle&&firstItem?[firstItem]:statistics.filter(item=>item.show&&!item.disable);React.useEffect(()=>{const subscription=statusBarService.state$.subscribe(state=>{const item=state==null?void 0:state.values;if(!item||item.length===0)setShow(!1);else{setShow(!0);const newStatistics=statistics.map(stat=>{var _a61;const target=item.find(i=>i.func===stat.name);return target?(stat.value=target.value,stat.disable=!1):stat.disable=!0,stat.pattern=(_a61=state==null?void 0:state.pattern)!=null?_a61:null,stat});setStatistics(newStatistics)}});return()=>{subscription.unsubscribe()}},[statusBarService]);const handleResize=core.debounce(()=>{const newSingleState=window.innerWidth<SINGLE_MODE_WIDTH;isSingle!==newSingleState&&setIsSingle(newSingleState)},100);React.useEffect(()=>(window.addEventListener("resize",handleResize),()=>{window.removeEventListener("resize",handleResize)}),[isSingle]);let renderContent=null;if(showList.length>ROW_COUNT_THRESHOLD){const doubleLineList=[];showList.forEach((_2,index)=>{index%2===0&&doubleLineList.push(showList.slice(index,index+2))}),renderContent=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[" ",doubleLineList.map((item,index)=>jsxRuntime.jsxs("div",{className:styles$9.statisticListColumn,children:[(item==null?void 0:item[0])&&jsxRuntime.jsx(CopyableStatisticItem,{...item==null?void 0:item[0]},item==null?void 0:item[0].name),(item==null?void 0:item[1])&&jsxRuntime.jsx(CopyableStatisticItem,{...item==null?void 0:item[1]},item==null?void 0:item[1].name)]},`stat-col-${index}`))," "]})}else renderContent=jsxRuntime.jsx(jsxRuntime.Fragment,{children:showList.map(item=>jsxRuntime.jsx(CopyableStatisticItem,{...item},item.name))});return show&&jsxRuntime.jsxs("div",{className:clsx(styles$9.statusBar,{[styles$9.singleMode]:isSingle}),children:[jsxRuntime.jsx("div",{className:clsx(styles$9.statisticList),children:renderContent}),jsxRuntime.jsx("div",{className:styles$9.statusBarDiv})]})},"StatusBar");function RenderSheetFooter(){const menuManagerService=core.useDependency(ui.IMenuManagerService),workbook=useActiveWorkbook(),footerMenus=menuManagerService.getMenuByPositionKey(ui.ContextMenuPosition.FOOTER_MENU);return workbook?jsxRuntime.jsxs("section",{className:styles$l.sheetContainer,"data-range-selector":!0,children:[jsxRuntime.jsx(SheetBar,{}),jsxRuntime.jsx(StatusBar,{}),footerMenus.map(item=>{var _a61;return(_a61=item.children)==null?void 0:_a61.map(child=>(child==null?void 0:child.item)&&jsxRuntime.jsx(ui.ToolbarItem,{align:{offset:[-32,18]},...child.item},child.key))}),jsxRuntime.jsx(CountBar,{})]}):null}__name(RenderSheetFooter,"RenderSheetFooter");function RenderSheetHeader(){return useHasWorkbook()?jsxRuntime.jsx(FormulaBar,{}):null}__name(RenderSheetHeader,"RenderSheetHeader");function RenderSheetContent(){return useHasWorkbook()?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(EditorContainer,{}),jsxRuntime.jsx(OperateContainer,{})]}):null}__name(RenderSheetContent,"RenderSheetContent");function useHasWorkbook(){const univerInstanceService=core.useDependency(core.IUniverInstanceService),hasWorkbook=!!ui.useObservable(()=>univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),null,!1,[]);return React.useMemo(()=>univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET).length>0,[univerInstanceService,hasWorkbook])}__name(useHasWorkbook,"useHasWorkbook");const SHEETS_UI_PLUGIN_CONFIG_KEY="sheets-ui.config",defaultPluginConfig={formulaBar:!0};function CellBorderSelectorMenuItemFactory(accessor){const borderStyleManagerService=accessor.get(sheets.BorderStyleManagerService),disabled$=getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]});return{id:sheets.SetBorderBasicCommand.id,icon:new rxjs.Observable(subscriber=>{const defaultIcon="AllBorderSingle",borderManager=accessor.get(sheets.BorderStyleManagerService),disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a61;if(c.id!==sheets.SetBorderBasicCommand.id)return;const{type}=borderManager.getBorderInfo(),item=BORDER_LINE_CHILDREN.find(item2=>item2.value===type),icon=(_a61=item==null?void 0:item.icon)!=null?_a61:defaultIcon;subscriber.next(icon)});return subscriber.next(defaultIcon),disposable.dispose}),tooltip:"toolbar.border.main",type:ui.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:BORDER_PANEL_COMPONENT,hoverable:!1},value$:borderStyleManagerService.borderInfo$}],value$:borderStyleManagerService.borderInfo$,hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$}}__name(CellBorderSelectorMenuItemFactory,"CellBorderSelectorMenuItemFactory");const CLEAR_SELECTION_MENU_ID="sheet.menu.clear-selection";function ClearSelectionMenuItemFactory(accessor){return{id:CLEAR_SELECTION_MENU_ID,type:ui.MenuItemType.SUBITEMS,icon:"ClearFormat",title:"rightClick.clearSelection",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ClearSelectionMenuItemFactory,"ClearSelectionMenuItemFactory");function ClearSelectionContentMenuItemFactory(accessor){return{id:sheets.ClearSelectionContentCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.clearContent",disabled$:getObservableWithExclusiveRange$(accessor,getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ClearSelectionContentMenuItemFactory,"ClearSelectionContentMenuItemFactory");function ClearSelectionFormatMenuItemFactory(accessor){return{id:sheets.ClearSelectionFormatCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.clearFormat",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ClearSelectionFormatMenuItemFactory,"ClearSelectionFormatMenuItemFactory");function ClearSelectionAllMenuItemFactory(accessor){return{id:sheets.ClearSelectionAllCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.clearAll",disabled$:getObservableWithExclusiveRange$(accessor,getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ClearSelectionAllMenuItemFactory,"ClearSelectionAllMenuItemFactory");const DELETE_RANGE_MENU_ID="sheet.menu.delete";function DeleteRangeMenuItemFactory(accessor){return{id:DELETE_RANGE_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.delete",icon:"Reduce",hidden$:getObservableWithExclusiveRange$(accessor,getBaseRangeMenuHidden$(accessor)),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission]})}}__name(DeleteRangeMenuItemFactory,"DeleteRangeMenuItemFactory");function RemoveColMenuItemFactory(accessor){return{id:RemoveColConfirmCommand.id,type:ui.MenuItemType.BUTTON,icon:"DeleteColumn",title:"rightClick.deleteSelectedColumn",hidden$:getObservableWithExclusiveRange$(accessor,getDeleteMenuHidden$(accessor,"col")),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetDeleteColumnPermission]})}}__name(RemoveColMenuItemFactory,"RemoveColMenuItemFactory");function RemoveRowMenuItemFactory(accessor){return{id:RemoveRowConfirmCommand.id,type:ui.MenuItemType.BUTTON,icon:"DeleteRow",title:"rightClick.deleteSelectedRow",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetDeleteRowPermission]}),hidden$:getDeleteMenuHidden$(accessor,"row")}}__name(RemoveRowMenuItemFactory,"RemoveRowMenuItemFactory");function DeleteRangeMoveLeftMenuItemFactory(accessor){return{id:DeleteRangeMoveLeftConfirmCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.moveLeft",icon:"DeleteCellShiftLeft",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getCellMenuHidden$(accessor,"col")}}__name(DeleteRangeMoveLeftMenuItemFactory,"DeleteRangeMoveLeftMenuItemFactory");function DeleteRangeMoveUpMenuItemFactory(accessor){return{id:DeleteRangeMoveUpConfirmCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.moveUp",icon:"DeleteCellShiftUp",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getCellMenuHidden$(accessor,"row")}}__name(DeleteRangeMoveUpMenuItemFactory,"DeleteRangeMoveUpMenuItemFactory");function ToggleGridlinesMenuFactory(accessor){const commandService=accessor.get(core.ICommandService),instanceService=accessor.get(core.IUniverInstanceService);return{id:sheets.ToggleGridlinesCommand.id,type:ui.MenuItemType.BUTTON,tooltip:"toolbar.toggleGridlines",icon:"HideGridlines",activated$:new rxjs.Observable(observer=>{const getValue=__name(()=>{const workbook=instanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);return workbook?workbook.getActiveSheet().getConfig().showGridlines===core.BooleanNumber.TRUE:!1},"getValue"),disposable=new core.DisposableCollection;return disposable.add(commandService.onCommandExecuted(c=>{(c.id===sheets.ToggleGridlinesMutation.id||c.id===sheets.SetWorksheetActiveOperation.id)&&observer.next(getValue())})),disposable.add(instanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).subscribe(()=>{observer.next(getValue())})),observer.next(getValue()),()=>disposable.dispose()}),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission]})}}__name(ToggleGridlinesMenuFactory,"ToggleGridlinesMenuFactory");const COL_INSERT_MENU_ID="sheet.menu.col-insert";function ColInsertMenuItemFactory(accessor){return{id:COL_INSERT_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",hidden$:getBaseRangeMenuHidden$(accessor),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetInsertColumnPermission]})}}__name(ColInsertMenuItemFactory,"ColInsertMenuItemFactory");const ROW_INSERT_MENU_ID="sheet.menu.row-insert";function RowInsertMenuItemFactory(accessor){return{id:ROW_INSERT_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",hidden$:getBaseRangeMenuHidden$(accessor),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertRowPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(RowInsertMenuItemFactory,"RowInsertMenuItemFactory");const CELL_INSERT_MENU_ID="sheet.menu.cell-insert";function CellInsertMenuItemFactory(accessor){return{id:CELL_INSERT_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",hidden$:getObservableWithExclusiveRange$(accessor,getBaseRangeMenuHidden$(accessor)),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertColumnPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(CellInsertMenuItemFactory,"CellInsertMenuItemFactory");function InsertRowBeforeMenuItemFactory(accessor){return{id:sheets.InsertRowBeforeCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.insertRowBefore",icon:"InsertRowAbove",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertRowPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getInsertBeforeMenuHidden$(accessor,"row")}}__name(InsertRowBeforeMenuItemFactory,"InsertRowBeforeMenuItemFactory");function InsertRowAfterMenuItemFactory(accessor){return{id:sheets.InsertRowAfterCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.insertRow",icon:"InsertRowBelow",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertRowPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getInsertAfterMenuHidden$(accessor,"row")}}__name(InsertRowAfterMenuItemFactory,"InsertRowAfterMenuItemFactory");function InsertColBeforeMenuItemFactory(accessor){return{id:sheets.InsertColBeforeCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.insertColumnBefore",icon:"LeftInsertColumn",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertColumnPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getInsertBeforeMenuHidden$(accessor,"col")}}__name(InsertColBeforeMenuItemFactory,"InsertColBeforeMenuItemFactory");function InsertColAfterMenuItemFactory(accessor){return{id:sheets.InsertColAfterCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.insertColumn",icon:"RightInsertColumn",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertColumnPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getInsertAfterMenuHidden$(accessor,"col")}}__name(InsertColAfterMenuItemFactory,"InsertColAfterMenuItemFactory");function InsertRangeMoveRightMenuItemFactory(accessor){return{id:InsertRangeMoveRightConfirmCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.moveRight",icon:"InsertCellShiftRight",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getCellMenuHidden$(accessor,"col")}}__name(InsertRangeMoveRightMenuItemFactory,"InsertRangeMoveRightMenuItemFactory");function InsertRangeMoveDownMenuItemFactory(accessor){return{id:InsertRangeMoveDownConfirmCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.moveDown",icon:"InsertCellDown",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getCellMenuHidden$(accessor,"row")}}__name(InsertRangeMoveDownMenuItemFactory,"InsertRangeMoveDownMenuItemFactory");function CellMergeMenuItemFactory(accessor){const editDisabled$=getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),selectionsHasCross$=getSheetSelectionsDisabled$(accessor);return{id:AddWorksheetMergeCommand.id,icon:"MergeAllSingle",tooltip:"toolbar.mergeCell.main",type:ui.MenuItemType.SUBITEMS,hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:editDisabled$.pipe(rxjs.combineLatestWith(selectionsHasCross$),rxjs.map(([disable,hasCross])=>disable||hasCross))}}__name(CellMergeMenuItemFactory,"CellMergeMenuItemFactory");function CellMergeAllMenuItemFactory(accessor){return{id:AddWorksheetMergeAllCommand.id,type:ui.MenuItemType.BUTTON,title:"merge.all",icon:"MergeAllSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CellMergeAllMenuItemFactory,"CellMergeAllMenuItemFactory");function CellMergeVerticalMenuItemFactory(accessor){return{id:AddWorksheetMergeVerticalCommand.id,type:ui.MenuItemType.BUTTON,title:"merge.vertical",icon:"VerticalIntegrationSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CellMergeVerticalMenuItemFactory,"CellMergeVerticalMenuItemFactory");function CellMergeHorizontalMenuItemFactory(accessor){return{id:AddWorksheetMergeHorizontalCommand.id,type:ui.MenuItemType.BUTTON,title:"merge.horizontal",icon:"HorizontalMergeSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CellMergeHorizontalMenuItemFactory,"CellMergeHorizontalMenuItemFactory");function CellMergeCancelMenuItemFactory(accessor){return{id:sheets.RemoveWorksheetMergeCommand.id,type:ui.MenuItemType.BUTTON,title:"merge.cancel",icon:"CancelMergeSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CellMergeCancelMenuItemFactory,"CellMergeCancelMenuItemFactory");function getAddPermissionHidden$(accessor){const workbook$=accessor.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_2])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{if(!worksheet)return rxjs.of(!0);const rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),selectionManagerService=accessor.get(sheets.SheetsSelectionsService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,rangeProtectionRuleModel.ruleChange$,worksheetRuleModel.ruleChange$).pipe(rxjs.map(()=>{const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),subUnitRuleList=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId),selections=selectionManagerService.getCurrentSelections(),selectionsRanges=selections==null?void 0:selections.map(selection=>selection.range),ruleRanges=subUnitRuleList.map(rule=>rule.ranges).flat();if(!selectionsRanges)return!1;const worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId);return worksheetRule!=null&&worksheetRule.permissionId?!0:selectionsRanges==null?void 0:selectionsRanges.some(selectionRange=>ruleRanges.some(ruleRange=>core.Rectangle.intersects(selectionRange,ruleRange)))}))})):rxjs.of(!0)))}__name(getAddPermissionHidden$,"getAddPermissionHidden$");function getEditPermissionHidden$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),rangeRuleModel=accessor.get(sheets.RangeProtectionRuleModel),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_2])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{if(!worksheet)return rxjs.of(!0);const rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),permissionService=accessor.get(core.IPermissionService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,rangeProtectionRuleModel.ruleChange$,worksheetRuleModel.ruleChange$).pipe(rxjs.map(()=>{var _a61,_b;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),subUnitRuleList=rangeRuleModel.getSubunitRuleList(unitId,subUnitId),selectionRanges=(_a61=selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(selection=>selection.range);if(subUnitRuleList.map(rule=>rule.ranges).flat(),!(selectionRanges!=null&&selectionRanges.length)||selectionRanges.length>1)return!0;const selectionRange=selectionRanges[0];if((selectionRange==null?void 0:selectionRange.rangeType)===core.RANGE_TYPE.ALL||(selectionRange==null?void 0:selectionRange.rangeType)===core.RANGE_TYPE.COLUMN||(selectionRange==null?void 0:selectionRange.rangeType)===core.RANGE_TYPE.ROW)return!0;const worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId)return((_b=permissionService.getPermissionPoint(new sheets.WorksheetManageCollaboratorPermission(unitId,subUnitId).id))==null?void 0:_b.value)===!1;if(subUnitRuleList.filter(rule=>rule.ranges.some(range=>core.Rectangle.intersects(range,selectionRange))).length!==1)return!0;const{startRow,endRow,startColumn,endColumn}=selectionRange,rangeProtectionCache=accessor.get(sheets.RangeProtectionCache);for(let i=startRow;i<=endRow;i++)for(let j=startColumn;j<=endColumn;j++){const cellInfo=rangeProtectionCache.getCellInfo(unitId,subUnitId,i,j);if(cellInfo)return cellInfo[sheets.UnitAction.ManageCollaborator]===!1}return!1}))})):rxjs.of(!0)))}__name(getEditPermissionHidden$,"getEditPermissionHidden$");function getPermissionDisableBase$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_2])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a61;if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),selectionProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),permission$=(_a61=permissionService.composePermission$([new sheets.WorkbookEditablePermission(unitId).id]).pipe(rxjs.map(permissions=>permissions.every(permission=>permission.value))))!=null?_a61:rxjs.of(!1),ruleChange$=rxjs.merge(selectionProtectionRuleModel.ruleChange$,worksheetProtectionRuleModel.ruleChange$).pipe(rxjs.startWith(null));return rxjs.combineLatest([permission$,ruleChange$,selectionManagerService.selectionMoveEnd$]).pipe(rxjs.map(([permission,_22,__])=>{if(!permission)return!0;const selections=selectionManagerService.getCurrentSelections(),selectionRanges=selections==null?void 0:selections.map(selection=>selection.range);return selectionRanges!=null&&selectionRanges.length?selectionRanges.length>1:!1}))})):rxjs.of(!0)))}__name(getPermissionDisableBase$,"getPermissionDisableBase$");function getAddPermissionDisableBase$(accessor){var _a61;const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService),editorBridgeService=accessor.has(IEditorBridgeService)?accessor.get(IEditorBridgeService):null,formulaEditorFocus$=accessor.get(core.IContextService).subscribeContextValue$(core.FOCUSING_FX_BAR_EDITOR),editorVisible$=(_a61=editorBridgeService==null?void 0:editorBridgeService.visible$)!=null?_a61:rxjs.of(null);return rxjs.combineLatest([workbook$,userManagerService.currentUser$,editorVisible$,formulaEditorFocus$]).pipe(rxjs.switchMap(([workbook,_2,visible,formulaEditorFocus])=>!workbook||visible!=null&&visible.visible&&visible.unitId===workbook.getUnitId()||formulaEditorFocus?rxjs.of(!0):workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a62;if(!worksheet)return rxjs.of(!0);const focusingDrawing$=accessor.get(core.IContextService).subscribeContextValue$(core.FOCUSING_COMMON_DRAWINGS).pipe(rxjs.startWith(!1)),unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),selectionProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),permission$=(_a62=permissionService.composePermission$([new sheets.WorkbookCreateProtectPermission(unitId).id]).pipe(rxjs.map(permissions=>permissions.every(permission=>permission.value))))!=null?_a62:rxjs.of(!1),ruleChange$=rxjs.merge(selectionProtectionRuleModel.ruleChange$,worksheetProtectionRuleModel.ruleChange$).pipe(rxjs.startWith(null));return rxjs.combineLatest([permission$,ruleChange$,selectionManagerService.selectionMoveEnd$,focusingDrawing$]).pipe(rxjs.map(([permission,_22,__,focus])=>{if(!permission||focus)return!0;const selections=selectionManagerService.getCurrentSelections(),selectionRanges=selections==null?void 0:selections.map(selection=>selection.range);if(!(selectionRanges!=null&&selectionRanges.length))return!0;const worksheetRule=worksheetProtectionRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId)return!0;const subunitRuleList=selectionProtectionRuleModel.getSubunitRuleList(unitId,subUnitId);return selectionRanges==null?void 0:selectionRanges.some(selectionRange=>subunitRuleList.some(rule=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(selectionRange,ruleRange))))}))}))))}__name(getAddPermissionDisableBase$,"getAddPermissionDisableBase$");function getAddPermissionFromSheetBarDisable$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_2])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a61;if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),selectionProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),permission$=(_a61=permissionService.composePermission$([new sheets.WorkbookCreateProtectPermission(unitId).id]).pipe(rxjs.map(permissions=>permissions.every(permission=>permission.value))))!=null?_a61:rxjs.of(!1),ruleChange$=rxjs.merge(selectionProtectionRuleModel.ruleChange$,worksheetProtectionRuleModel.ruleChange$).pipe(rxjs.startWith(null));return rxjs.combineLatest([permission$,ruleChange$]).pipe(rxjs.map(([permission,_22])=>{var _a62;if(!permission)return!0;const worksheetRule=worksheetProtectionRuleModel.getRule(unitId,subUnitId);return worksheetRule!=null&&worksheetRule.permissionId?!0:((_a62=selectionProtectionRuleModel.getSubunitRuleList(unitId,subUnitId))==null?void 0:_a62.filter(item=>item==null?void 0:item.permissionId)).length>0}))})):rxjs.of(!0)))}__name(getAddPermissionFromSheetBarDisable$,"getAddPermissionFromSheetBarDisable$");function getRemovePermissionFromSheetBarDisable$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_2])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel);return worksheetProtectionRuleModel.ruleChange$.pipe(rxjs.startWith(null)).pipe(rxjs.map(()=>{var _a61;return worksheetProtectionRuleModel.getRule(unitId,subUnitId)?((_a61=permissionService.getPermissionPoint(new sheets.WorksheetDeleteProtectionPermission(unitId,subUnitId).id))==null?void 0:_a61.value)===!1:!0}))})):rxjs.of(!0)))}__name(getRemovePermissionFromSheetBarDisable$,"getRemovePermissionFromSheetBarDisable$");function getSetPermissionFromSheetBarDisable$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_2])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a61;if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),selectionProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),permission$=(_a61=permissionService.composePermission$([new sheets.WorkbookCreateProtectPermission(unitId).id,new sheets.WorkbookManageCollaboratorPermission(unitId).id]).pipe(rxjs.map(permissions=>permissions.every(permission=>permission.value))))!=null?_a61:rxjs.of(!1),worksheetRuleChange$=worksheetProtectionRuleModel.ruleChange$.pipe(rxjs.startWith(null)),selectionRuleChange$=selectionProtectionRuleModel.ruleChange$.pipe(rxjs.startWith(null));return rxjs.combineLatest([permission$,worksheetRuleChange$,selectionRuleChange$]).pipe(rxjs.map(([permission,_22,__])=>{if(!permission)return!0;const subUnitId=worksheet.getSheetId(),worksheetRule=worksheetProtectionRuleModel.getRule(unitId,subUnitId),selectionRuleList=selectionProtectionRuleModel.getSubunitRuleList(unitId,subUnitId);return!(worksheetRule||selectionRuleList.length)}))})):rxjs.of(!0)))}__name(getSetPermissionFromSheetBarDisable$,"getSetPermissionFromSheetBarDisable$");function getRemovePermissionDisable$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_2])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),sheetSelectionsService=accessor.get(sheets.SheetsSelectionsService),selectionProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),changes$=rxjs.merge(selectionProtectionRuleModel.ruleChange$,worksheetProtectionRuleModel.ruleChange$,sheetSelectionsService.selectionMoveEnd$).pipe(rxjs.startWith(null));return rxjs.combineLatest([changes$]).pipe(rxjs.map(([_22])=>{var _a61;const selections=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections(),selectionRanges=selections==null?void 0:selections.map(selection=>selection.range);if(!(selectionRanges!=null&&selectionRanges.length)||selectionRanges.length>1)return!0;const selectionRange=selectionRanges[0];if((selectionRange==null?void 0:selectionRange.rangeType)===core.RANGE_TYPE.ALL||(selectionRange==null?void 0:selectionRange.rangeType)===core.RANGE_TYPE.COLUMN||(selectionRange==null?void 0:selectionRange.rangeType)===core.RANGE_TYPE.ROW)return!0;const worksheetRule=worksheetProtectionRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId)return((_a61=permissionService.getPermissionPoint(new sheets.WorksheetDeleteProtectionPermission(unitId,subUnitId).id))==null?void 0:_a61.value)===!1;if(selectionProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.ranges.some(range=>core.Rectangle.intersects(range,selectionRange))).length!==1)return!0;const{startRow,endRow,startColumn,endColumn}=selectionRange,rangeProtectionCache=accessor.get(sheets.RangeProtectionCache);for(let i=startRow;i<=endRow;i++)for(let j=startColumn;j<=endColumn;j++){const cellInfo=rangeProtectionCache.getCellInfo(unitId,subUnitId,i,j);if(cellInfo)return cellInfo[sheets.UnitAction.Delete]===!1}return!1}))})):rxjs.of(!0)))}__name(getRemovePermissionDisable$,"getRemovePermissionDisable$");function getViewPermissionDisable$(accessor){var _a61;const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService),editorBridgeService=accessor.has(IEditorBridgeService)?accessor.get(IEditorBridgeService):null,formulaEditorFocus$=accessor.get(core.IContextService).subscribeContextValue$(core.FOCUSING_FX_BAR_EDITOR),editorVisible$=(_a61=editorBridgeService==null?void 0:editorBridgeService.visible$)!=null?_a61:rxjs.of(null);return rxjs.combineLatest([workbook$,userManagerService.currentUser$,editorVisible$,formulaEditorFocus$]).pipe(rxjs.switchMap(([workbook,_2,visible,formulaEditorFocus])=>!workbook||visible!=null&&visible.visible&&visible.unitId===workbook.getUnitId()||formulaEditorFocus?rxjs.of(!0):workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a62,_b;if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId();return((_b=(_a62=permissionService.getPermissionPoint$(new sheets.WorkbookEditablePermission(unitId).id))==null?void 0:_a62.pipe(rxjs.map(e=>!!e.value)))!=null?_b:rxjs.of(!1)).pipe(rxjs.map(permission=>!permission))}))))}__name(getViewPermissionDisable$,"getViewPermissionDisable$");const SHEET_PERMISSION_CONTEXT_MENU_ID="sheet.contextMenu.permission";function sheetPermissionToolbarMenuFactory(accessor){return{id:AddRangeProtectionFromToolbarCommand.id,type:ui.MenuItemType.BUTTON,icon:permissionMenuIconKey,tooltip:"permission.toolbarMenu",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getAddPermissionDisableBase$(accessor)}}__name(sheetPermissionToolbarMenuFactory,"sheetPermissionToolbarMenuFactory");function sheetPermissionContextMenuFactory(accessor){return{id:SHEET_PERMISSION_CONTEXT_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.protectRange",icon:permissionLockIconKey,hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionContextMenuFactory,"sheetPermissionContextMenuFactory");function sheetPermissionAddProtectContextMenuFactory(accessor){return{id:AddRangeProtectionFromContextMenuCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.turnOnProtectRange",hidden$:getAddPermissionHidden$(accessor),disabled$:getAddPermissionDisableBase$(accessor)}}__name(sheetPermissionAddProtectContextMenuFactory,"sheetPermissionAddProtectContextMenuFactory");function sheetPermissionEditProtectContextMenuFactory(accessor){return{id:SetRangeProtectionFromContextMenuCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.editProtectRange",disabled$:getPermissionDisableBase$(accessor),hidden$:getEditPermissionHidden$(accessor)}}__name(sheetPermissionEditProtectContextMenuFactory,"sheetPermissionEditProtectContextMenuFactory");function sheetPermissionRemoveProtectContextMenuFactory(accessor){return{id:DeleteRangeProtectionFromContextMenuCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.removeProtectRange",disabled$:getRemovePermissionDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionRemoveProtectContextMenuFactory,"sheetPermissionRemoveProtectContextMenuFactory");function sheetPermissionViewAllProtectRuleContextMenuFactory(accessor){return{id:ViewSheetPermissionFromContextMenuCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.viewAllProtectArea",disabled$:getViewPermissionDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionViewAllProtectRuleContextMenuFactory,"sheetPermissionViewAllProtectRuleContextMenuFactory");function sheetPermissionProtectSheetInSheetBarMenuFactory(accessor){return{id:AddRangeProtectionFromSheetBarCommand.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.addProtectSheet",disabled$:getAddPermissionFromSheetBarDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionProtectSheetInSheetBarMenuFactory,"sheetPermissionProtectSheetInSheetBarMenuFactory");function sheetPermissionRemoveProtectionSheetBarMenuFactory(accessor){return{id:DeleteWorksheetProtectionFormSheetBarCommand.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.removeProtectSheet",disabled$:getRemovePermissionFromSheetBarDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionRemoveProtectionSheetBarMenuFactory,"sheetPermissionRemoveProtectionSheetBarMenuFactory");function sheetPermissionChangeSheetPermissionSheetBarMenuFactory(accessor){return{id:ChangeSheetProtectionFromSheetBarCommand.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.changeSheetPermission",disabled$:getSetPermissionFromSheetBarDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionChangeSheetPermissionSheetBarMenuFactory,"sheetPermissionChangeSheetPermissionSheetBarMenuFactory");function sheetPermissionViewAllProtectRuleSheetBarMenuFactory(accessor){return{id:ViewSheetPermissionFromSheetBarCommand.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.viewAllProtectArea",disabled$:getViewPermissionDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionViewAllProtectRuleSheetBarMenuFactory,"sheetPermissionViewAllProtectRuleSheetBarMenuFactory");function DeleteSheetMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),defaultDisable$=new rxjs.Observable(subscriber=>{const disposable=commandService.onCommandExecuted(c=>{const id=c.id;(id===sheets.RemoveSheetMutation.id||id===sheets.InsertSheetMutation.id||id===sheets.SetWorksheetHideMutation.id)&&disableFunction(univerInstanceService,subscriber)});return disableFunction(univerInstanceService,subscriber),disposable.dispose}),permissionDisable$=getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission,sheets.WorkbookDeleteSheetPermission]);return{id:RemoveSheetConfirmCommand.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.delete",disabled$:rxjs.combineLatest([defaultDisable$,permissionDisable$]).pipe(rxjs.map(([defaultDisabled,permissionDisabled])=>defaultDisabled||permissionDisabled)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(DeleteSheetMenuItemFactory,"DeleteSheetMenuItemFactory");function CopySheetMenuItemFactory(accessor){return{id:sheets.CopySheetCommand.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.copy",disabled$:getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission,sheets.WorkbookCreateSheetPermission]),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CopySheetMenuItemFactory,"CopySheetMenuItemFactory");function RenameSheetMenuItemFactory(accessor){return{id:RenameSheetOperation.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.rename",disabled$:getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission,sheets.WorkbookRenameSheetPermission]),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(RenameSheetMenuItemFactory,"RenameSheetMenuItemFactory");function ChangeColorSheetMenuItemFactory(accessor){return{id:sheets.SetTabColorCommand.id,title:"sheetConfig.changeColor",type:ui.MenuItemType.SELECTOR,selections:[{label:{name:COLOR_PICKER_COMPONENT,hoverable:!1}}],hidden$:getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission])}}__name(ChangeColorSheetMenuItemFactory,"ChangeColorSheetMenuItemFactory");function HideSheetMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService);return{id:sheets.SetWorksheetHideCommand.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.hide",disabled$:new rxjs.Observable(subscriber=>{const disposable=commandService.onCommandExecuted(c=>{const id=c.id;(id===sheets.RemoveSheetMutation.id||id===sheets.InsertSheetMutation.id||id===sheets.SetWorksheetHideMutation.id)&&disableFunction(univerInstanceService,subscriber)});return disableFunction(univerInstanceService,subscriber),disposable.dispose}).pipe(rxjs.combineLatestWith(getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission,sheets.WorkbookHideSheetPermission])),rxjs.map(([defaultDisabled,permissionDisabled])=>defaultDisabled||permissionDisabled)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(HideSheetMenuItemFactory,"HideSheetMenuItemFactory");function ShowMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService);return{id:ShowMenuListCommand.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.unhide",disabled$:new rxjs.Observable(subscriber=>{function disableFunction2(){const worksheets=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getWorksheets(),visibleSheets=Array.from(worksheets.values());subscriber.next(visibleSheets.length===1)}__name(disableFunction2,"disableFunction2");const disposable=commandService.onCommandExecuted(c=>{const id=c.id;(id===sheets.RemoveSheetMutation.id||id===sheets.InsertSheetMutation.id||id===sheets.SetWorksheetHideMutation.id)&&disableFunction2()});return disableFunction2(),disposable.dispose}).pipe(rxjs.combineLatestWith(getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission,sheets.WorkbookHideSheetPermission])),rxjs.map(([defaultDisabled,permissionDisabled])=>defaultDisabled||permissionDisabled)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ShowMenuItemFactory,"ShowMenuItemFactory");function disableFunction(univerInstanceService,subscriber){const worksheets=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getWorksheets(),visibleSheets=Array.from(worksheets.values()).filter(sheet=>sheet.getConfig().hidden===core.BooleanNumber.FALSE);subscriber.next(visibleSheets.length===1)}__name(disableFunction,"disableFunction");const menuSchema$1={[ui.RibbonStartGroup.FORMAT]:{[SetOnceFormatPainterCommand.id]:{order:0,menuItemFactory:FormatPainterMenuItemFactory},[SetRangeBoldCommand.id]:{order:1,menuItemFactory:BoldMenuItemFactory},[SetRangeItalicCommand.id]:{order:2,menuItemFactory:ItalicMenuItemFactory},[SetRangeUnderlineCommand.id]:{order:3,menuItemFactory:UnderlineMenuItemFactory},[SetRangeStrickThroughCommand.id]:{order:4,menuItemFactory:StrikeThroughMenuItemFactory},[SetRangeFontFamilyCommand.id]:{order:5,menuItemFactory:FontFamilySelectorMenuItemFactory},[SetRangeFontSizeCommand.id]:{order:6,menuItemFactory:FontSizeSelectorMenuItemFactory},[SetRangeTextColorCommand.id]:{order:7,menuItemFactory:TextColorSelectorMenuItemFactory,[sheets.ResetTextColorCommand.id]:{order:0,menuItemFactory:ResetTextColorMenuItemFactory}},[sheets.SetBackgroundColorCommand.id]:{order:9,menuItemFactory:BackgroundColorSelectorMenuItemFactory,[sheets.ResetBackgroundColorCommand.id]:{order:0,menuItemFactory:ResetBackgroundColorMenuItemFactory}},[sheets.SetBorderBasicCommand.id]:{order:10,menuItemFactory:CellBorderSelectorMenuItemFactory}},[ui.RibbonStartGroup.LAYOUT]:{[sheets.AddWorksheetMergeCommand.id]:{order:0,menuItemFactory:CellMergeMenuItemFactory,[sheets.AddWorksheetMergeAllCommand.id]:{order:0,menuItemFactory:CellMergeAllMenuItemFactory},[sheets.AddWorksheetMergeVerticalCommand.id]:{order:1,menuItemFactory:CellMergeVerticalMenuItemFactory},[sheets.AddWorksheetMergeHorizontalCommand.id]:{order:2,menuItemFactory:CellMergeHorizontalMenuItemFactory},[sheets.RemoveWorksheetMergeCommand.id]:{order:3,menuItemFactory:CellMergeCancelMenuItemFactory}},[sheets.SetHorizontalTextAlignCommand.id]:{order:1,menuItemFactory:HorizontalAlignMenuItemFactory},[sheets.SetVerticalTextAlignCommand.id]:{order:1,menuItemFactory:VerticalAlignMenuItemFactory},[sheets.SetTextWrapCommand.id]:{order:2,menuItemFactory:WrapTextMenuItemFactory},[sheets.SetTextRotationCommand.id]:{order:3,menuItemFactory:TextRotateMenuItemFactory}},[ui.RibbonStartGroup.OTHERS]:{[AddRangeProtectionFromToolbarCommand.id]:{order:0,menuItemFactory:sheetPermissionToolbarMenuFactory}},[ui.ContextMenuPosition.MAIN_AREA]:{[ui.ContextMenuGroup.FORMAT]:{[SheetCopyCommand.name]:{order:0,menuItemFactory:CopyMenuItemFactory},[SheetPasteCommand.name]:{order:2,menuItemFactory:PasteMenuItemFactory},[PASTE_SPECIAL_MENU_ID]:{order:3,menuItemFactory:PasteSpacialMenuItemFactory,[SheetPasteValueCommand.id]:{order:0,menuItemFactory:PasteValueMenuItemFactory},[SheetPasteFormatCommand.id]:{order:1,menuItemFactory:PasteFormatMenuItemFactory},[SheetPasteColWidthCommand.id]:{order:2,menuItemFactory:PasteColWidthMenuItemFactory},[SheetPasteBesidesBorderCommand.id]:{order:3,menuItemFactory:PasteBesidesBorderMenuItemFactory}},[CLEAR_SELECTION_MENU_ID]:{order:4,menuItemFactory:ClearSelectionMenuItemFactory,[sheets.ClearSelectionContentCommand.id]:{order:0,menuItemFactory:ClearSelectionContentMenuItemFactory},[sheets.ClearSelectionFormatCommand.id]:{order:1,menuItemFactory:ClearSelectionFormatMenuItemFactory},[sheets.ClearSelectionAllCommand.id]:{order:2,menuItemFactory:ClearSelectionAllMenuItemFactory}}},[ui.ContextMenuGroup.LAYOUT]:{order:1,[CELL_INSERT_MENU_ID]:{order:0,menuItemFactory:CellInsertMenuItemFactory,[sheets.InsertRowBeforeCommand.id]:{order:0,menuItemFactory:InsertRowBeforeMenuItemFactory},[sheets.InsertColBeforeCommand.id]:{order:1,menuItemFactory:InsertColBeforeMenuItemFactory},[InsertRangeMoveRightConfirmCommand.id]:{order:2,menuItemFactory:InsertRangeMoveRightMenuItemFactory},[InsertRangeMoveDownConfirmCommand.id]:{order:3,menuItemFactory:InsertRangeMoveDownMenuItemFactory}},[DELETE_RANGE_MENU_ID]:{order:0,menuItemFactory:DeleteRangeMenuItemFactory,[RemoveColConfirmCommand.id]:{order:0,menuItemFactory:RemoveColMenuItemFactory},[RemoveRowConfirmCommand.id]:{order:1,menuItemFactory:RemoveRowMenuItemFactory},[DeleteRangeMoveLeftConfirmCommand.id]:{order:2,menuItemFactory:DeleteRangeMoveLeftMenuItemFactory},[DeleteRangeMoveUpConfirmCommand.id]:{order:3,menuItemFactory:DeleteRangeMoveUpMenuItemFactory}},[SHEET_FROZEN_MENU_ID]:{order:2,menuItemFactory:SheetFrozenMenuItemFactory,[SetSelectionFrozenCommand.id]:{order:0,menuItemFactory:FrozenMenuItemFactory},[SetRowFrozenCommand.id]:{order:1,menuItemFactory:FrozenRowMenuItemFactory},[SetColumnFrozenCommand.id]:{order:2,menuItemFactory:FrozenColMenuItemFactory},[sheets.CancelFrozenCommand.id]:{order:3,menuItemFactory:CancelFrozenMenuItemFactory}},[SHEET_PERMISSION_CONTEXT_MENU_ID]:{order:3,menuItemFactory:sheetPermissionContextMenuFactory,[AddRangeProtectionFromContextMenuCommand.id]:{order:0,menuItemFactory:sheetPermissionAddProtectContextMenuFactory},[SetRangeProtectionFromContextMenuCommand.id]:{order:1,menuItemFactory:sheetPermissionEditProtectContextMenuFactory},[DeleteRangeProtectionFromContextMenuCommand.id]:{order:2,menuItemFactory:sheetPermissionRemoveProtectContextMenuFactory},[ViewSheetPermissionFromContextMenuCommand.id]:{order:3,menuItemFactory:sheetPermissionViewAllProtectRuleContextMenuFactory}}},[ui.ContextMenuGroup.DATA]:{order:2},[ui.ContextMenuGroup.OTHERS]:{order:3}},[ui.ContextMenuPosition.COL_HEADER]:{[ui.ContextMenuGroup.FORMAT]:{[SheetCopyCommand.name]:{order:0,menuItemFactory:CopyMenuItemFactory},[SheetPasteCommand.name]:{order:2,menuItemFactory:PasteMenuItemFactory},[PASTE_SPECIAL_MENU_ID]:{order:3,menuItemFactory:PasteSpacialMenuItemFactory,[SheetPasteValueCommand.id]:{order:0,menuItemFactory:PasteValueMenuItemFactory},[SheetPasteFormatCommand.id]:{order:1,menuItemFactory:PasteFormatMenuItemFactory},[SheetPasteColWidthCommand.id]:{order:2,menuItemFactory:PasteColWidthMenuItemFactory},[SheetPasteBesidesBorderCommand.id]:{order:3,menuItemFactory:PasteBesidesBorderMenuItemFactory}},[CLEAR_SELECTION_MENU_ID]:{order:4,menuItemFactory:ClearSelectionMenuItemFactory,[sheets.ClearSelectionContentCommand.id]:{order:0,menuItemFactory:ClearSelectionContentMenuItemFactory},[sheets.ClearSelectionFormatCommand.id]:{order:1,menuItemFactory:ClearSelectionFormatMenuItemFactory},[sheets.ClearSelectionAllCommand.id]:{order:2,menuItemFactory:ClearSelectionAllMenuItemFactory}}},[ui.ContextMenuGroup.LAYOUT]:{order:1,[COL_INSERT_MENU_ID]:{order:0,menuItemFactory:ColInsertMenuItemFactory,[sheets.InsertColBeforeCommand.id]:{order:0,menuItemFactory:InsertColBeforeMenuItemFactory},[sheets.InsertColAfterCommand.id]:{order:1,menuItemFactory:InsertColAfterMenuItemFactory}},[HideColConfirmCommand.id]:{order:1,menuItemFactory:HideColMenuItemFactory},[sheets.SetSelectedColsVisibleCommand.id]:{order:2,menuItemFactory:ShowColMenuItemFactory},[RemoveColConfirmCommand.id]:{order:2,menuItemFactory:RemoveColMenuItemFactory},[sheets.SetColWidthCommand.id]:{order:3,menuItemFactory:SetColWidthMenuItemFactory},[SetWorksheetColAutoWidthCommand.id]:{order:4,menuItemFactory:ColAutoWidthMenuItemFactory},[SHEET_FROZEN_HEADER_MENU_ID]:{order:5,menuItemFactory:SheetFrozenHeaderMenuItemFactory,[SetSelectionFrozenCommand.id]:{order:0,menuItemFactory:FrozenMenuItemFactory},[sheets.CancelFrozenCommand.id]:{order:3,menuItemFactory:CancelFrozenMenuItemFactory}},[SHEET_PERMISSION_CONTEXT_MENU_ID]:{order:6,menuItemFactory:sheetPermissionContextMenuFactory,[AddRangeProtectionFromContextMenuCommand.id]:{order:0,menuItemFactory:sheetPermissionAddProtectContextMenuFactory},[SetRangeProtectionFromContextMenuCommand.id]:{order:1,menuItemFactory:sheetPermissionEditProtectContextMenuFactory},[DeleteRangeProtectionFromContextMenuCommand.id]:{order:2,menuItemFactory:sheetPermissionRemoveProtectContextMenuFactory},[ViewSheetPermissionFromContextMenuCommand.id]:{order:3,menuItemFactory:sheetPermissionViewAllProtectRuleContextMenuFactory}}},[ui.ContextMenuGroup.DATA]:{order:2},[ui.ContextMenuGroup.OTHERS]:{order:3}},[ui.ContextMenuPosition.ROW_HEADER]:{[ui.ContextMenuGroup.FORMAT]:{[SheetCopyCommand.name]:{order:0,menuItemFactory:CopyMenuItemFactory},[SheetPasteCommand.name]:{order:2,menuItemFactory:PasteMenuItemFactory},[PASTE_SPECIAL_MENU_ID]:{order:3,menuItemFactory:PasteSpacialMenuItemFactory,[SheetPasteValueCommand.id]:{order:0,menuItemFactory:PasteValueMenuItemFactory},[SheetPasteFormatCommand.id]:{order:1,menuItemFactory:PasteFormatMenuItemFactory},[SheetPasteColWidthCommand.id]:{order:2,menuItemFactory:PasteColWidthMenuItemFactory},[SheetPasteBesidesBorderCommand.id]:{order:3,menuItemFactory:PasteBesidesBorderMenuItemFactory}},[CLEAR_SELECTION_MENU_ID]:{order:4,menuItemFactory:ClearSelectionMenuItemFactory,[sheets.ClearSelectionContentCommand.id]:{order:0,menuItemFactory:ClearSelectionContentMenuItemFactory},[sheets.ClearSelectionFormatCommand.id]:{order:1,menuItemFactory:ClearSelectionFormatMenuItemFactory},[sheets.ClearSelectionAllCommand.id]:{order:2,menuItemFactory:ClearSelectionAllMenuItemFactory}}},[ui.ContextMenuGroup.LAYOUT]:{order:1,[ROW_INSERT_MENU_ID]:{order:0,menuItemFactory:RowInsertMenuItemFactory,[sheets.InsertRowBeforeCommand.id]:{order:0,menuItemFactory:InsertRowBeforeMenuItemFactory},[sheets.InsertRowAfterCommand.id]:{order:1,menuItemFactory:InsertRowAfterMenuItemFactory}},[RemoveRowConfirmCommand.id]:{order:1,menuItemFactory:RemoveRowMenuItemFactory},[HideRowConfirmCommand.id]:{order:2,menuItemFactory:HideRowMenuItemFactory},[sheets.SetSelectedRowsVisibleCommand.id]:{order:2,menuItemFactory:ShowRowMenuItemFactory},[sheets.SetRowHeightCommand.id]:{order:3,menuItemFactory:SetRowHeightMenuItemFactory},[sheets.SetWorksheetRowIsAutoHeightCommand.id]:{order:4,menuItemFactory:FitContentMenuItemFactory},[SHEET_FROZEN_HEADER_MENU_ID]:{order:5,menuItemFactory:SheetFrozenHeaderMenuItemFactory,[SetSelectionFrozenCommand.id]:{order:0,menuItemFactory:FrozenMenuItemFactory},[sheets.CancelFrozenCommand.id]:{order:3,menuItemFactory:CancelFrozenMenuItemFactory}},[SHEET_PERMISSION_CONTEXT_MENU_ID]:{order:6,menuItemFactory:sheetPermissionContextMenuFactory,[AddRangeProtectionFromContextMenuCommand.id]:{order:0,menuItemFactory:sheetPermissionAddProtectContextMenuFactory},[SetRangeProtectionFromContextMenuCommand.id]:{order:1,menuItemFactory:sheetPermissionEditProtectContextMenuFactory},[DeleteRangeProtectionFromContextMenuCommand.id]:{order:2,menuItemFactory:sheetPermissionRemoveProtectContextMenuFactory},[ViewSheetPermissionFromContextMenuCommand.id]:{order:3,menuItemFactory:sheetPermissionViewAllProtectRuleContextMenuFactory}}},[ui.ContextMenuGroup.DATA]:{order:2},[ui.ContextMenuGroup.OTHERS]:{order:3}},[ui.ContextMenuPosition.FOOTER_TABS]:{[ui.ContextMenuGroup.OTHERS]:{order:0,[RemoveSheetConfirmCommand.id]:{order:0,menuItemFactory:DeleteSheetMenuItemFactory},[sheets.CopySheetCommand.id]:{order:1,menuItemFactory:CopySheetMenuItemFactory},[RenameSheetOperation.id]:{order:2,menuItemFactory:RenameSheetMenuItemFactory},[sheets.SetTabColorCommand.id]:{order:3,menuItemFactory:ChangeColorSheetMenuItemFactory},[sheets.SetWorksheetHideCommand.id]:{order:4,menuItemFactory:HideSheetMenuItemFactory},[ShowMenuListCommand.id]:{order:6,menuItemFactory:ShowMenuItemFactory},[AddRangeProtectionFromSheetBarCommand.id]:{order:7,menuItemFactory:sheetPermissionProtectSheetInSheetBarMenuFactory},[DeleteWorksheetProtectionFormSheetBarCommand.id]:{order:8,menuItemFactory:sheetPermissionRemoveProtectionSheetBarMenuFactory},[ChangeSheetProtectionFromSheetBarCommand.id]:{order:9,menuItemFactory:sheetPermissionChangeSheetPermissionSheetBarMenuFactory},[ViewSheetPermissionFromSheetBarCommand.id]:{order:10,menuItemFactory:sheetPermissionViewAllProtectRuleSheetBarMenuFactory}}},[ui.ContextMenuPosition.FOOTER_MENU]:{[ui.ContextMenuGroup.OTHERS]:{[sheets.ToggleGridlinesCommand.id]:{order:1,menuItemFactory:ToggleGridlinesMenuFactory}}}},SetRowHiddenShortcutItem={id:sheets.SetRowHiddenCommand.id,preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.Digit9|ui.MetaKeys.CTRL_COMMAND},SetColHiddenShortcutItem={id:sheets.SetColHiddenCommand.id,preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.Digit0|ui.MetaKeys.CTRL_COMMAND|ui.MetaKeys.SHIFT},MoveSelectionDownShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-below-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_DOWN,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.DOWN}},MoveSelectionUpShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-up-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_UP,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.UP}},MoveSelectionLeftShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-left-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_LEFT,priority:100,preconditions:whenSheetEditorFocusedAndFxNotFocused,staticParameters:{direction:core.Direction.LEFT}},MoveSelectionRightShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-right-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_RIGHT,priority:100,preconditions:whenSheetEditorFocusedAndFxNotFocused,staticParameters:{direction:core.Direction.RIGHT}},MoveSelectionTabShortcutItem={id:MoveSelectionEnterAndTabCommand.id,description:"shortcut.sheet.select-next-cell",group:"3_sheet-view",binding:ui.KeyCode.TAB,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.RIGHT,keycode:ui.KeyCode.TAB}},MoveSelectionTabLeftShortcutItem={id:MoveSelectionEnterAndTabCommand.id,description:"shortcut.sheet.select-previous-cell",group:"3_sheet-view",binding:ui.KeyCode.TAB|ui.MetaKeys.SHIFT,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.LEFT,keycode:ui.KeyCode.TAB}},MoveSelectionEnterShortcutItem={id:MoveSelectionEnterAndTabCommand.id,description:"shortcut.sheet.select-below-cell",group:"3_sheet-view",binding:ui.KeyCode.ENTER,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.DOWN,keycode:ui.KeyCode.ENTER}},MoveSelectionEnterUpShortcutItem={id:MoveSelectionEnterAndTabCommand.id,description:"shortcut.sheet.select-up-cell",group:"3_sheet-view",binding:ui.KeyCode.ENTER|ui.MetaKeys.SHIFT,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.UP,keycode:ui.KeyCode.ENTER}},MoveSelectionEndDownShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-below-value-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_DOWN|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.DOWN,jumpOver:JumpOver.moveGap}},MoveSelectionEndUpShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-up-value-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_UP|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.UP,jumpOver:JumpOver.moveGap}},MoveSelectionEndLeftShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-left-value-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_LEFT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.LEFT,jumpOver:JumpOver.moveGap}},MoveSelectionEndRightShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-right-value-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_RIGHT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.RIGHT,jumpOver:JumpOver.moveGap}},ExpandSelectionDownShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-down",group:"3_sheet-view",binding:ui.KeyCode.ARROW_DOWN|ui.MetaKeys.SHIFT,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.DOWN}},ExpandSelectionUpShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-up",group:"3_sheet-view",binding:ui.KeyCode.ARROW_UP|ui.MetaKeys.SHIFT,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.UP}},ExpandSelectionLeftShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-left",group:"3_sheet-view",binding:ui.KeyCode.ARROW_LEFT|ui.MetaKeys.SHIFT,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.LEFT}},ExpandSelectionRightShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-right",group:"3_sheet-view",binding:ui.KeyCode.ARROW_RIGHT|ui.MetaKeys.SHIFT,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.RIGHT}},ExpandSelectionEndDownShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-to-below-gap",group:"3_sheet-view",binding:ui.KeyCode.ARROW_DOWN|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.DOWN,jumpOver:JumpOver.moveGap}},ExpandSelectionEndUpShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-to-up-gap",group:"3_sheet-view",binding:ui.KeyCode.ARROW_UP|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.UP,jumpOver:JumpOver.moveGap}},ExpandSelectionEndLeftShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-to-left-gap",group:"3_sheet-view",binding:ui.KeyCode.ARROW_LEFT|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.LEFT,jumpOver:JumpOver.moveGap}},ExpandSelectionEndRightShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-to-right-gap",group:"3_sheet-view",binding:ui.KeyCode.ARROW_RIGHT|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.RIGHT,jumpOver:JumpOver.moveGap}},SelectAllShortcutItem={id:SelectAllCommand.id,description:"shortcut.sheet.select-all",group:"3_sheet-view",binding:ui.KeyCode.A|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{expandToGapFirst:!0,loop:!0}},SetBoldShortcutItem={id:SetRangeBoldCommand.id,description:"shortcut.sheet.set-bold",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.B|ui.MetaKeys.CTRL_COMMAND},SetItalicShortcutItem={id:SetRangeItalicCommand.id,description:"shortcut.sheet.set-italic",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.I|ui.MetaKeys.CTRL_COMMAND},SetUnderlineShortcutItem={id:SetRangeUnderlineCommand.id,description:"shortcut.sheet.set-underline",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.U|ui.MetaKeys.CTRL_COMMAND},SetStrikeThroughShortcutItem={id:SetRangeStrickThroughCommand.id,description:"shortcut.sheet.set-strike-through",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.X|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND},ClearSelectionValueShortcutItem={id:sheets.ClearSelectionContentCommand.id,preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.DELETE,mac:ui.KeyCode.BACKSPACE},ZoomInShortcutItem={id:ChangeZoomRatioCommand.id,description:"shortcut.sheet.zoom-in",binding:ui.KeyCode.EQUAL|ui.MetaKeys.CTRL_COMMAND,group:"3_sheet-view",preconditions:whenSheetEditorFocused,priority:1,staticParameters:{delta:.2}},PreventDefaultZoomInShortcutItem={id:core.NilCommand.id,binding:ui.KeyCode.EQUAL|ui.MetaKeys.CTRL_COMMAND},ZoomOutShortcutItem={id:ChangeZoomRatioCommand.id,description:"shortcut.sheet.zoom-out",binding:ui.KeyCode.MINUS|ui.MetaKeys.CTRL_COMMAND,group:"3_sheet-view",preconditions:whenSheetEditorFocused,priority:1,staticParameters:{delta:-.2}},PreventDefaultZoomOutShortcutItem={id:core.NilCommand.id,binding:ui.KeyCode.MINUS|ui.MetaKeys.CTRL_COMMAND},ResetZoomShortcutItem={id:ChangeZoomRatioCommand.id,description:"shortcut.sheet.reset-zoom",binding:ui.KeyCode.Digit0|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,group:"3_sheet-view",priority:1,staticParameters:{reset:!0}},PreventDefaultResetZoomShortcutItem={id:core.NilCommand.id,binding:ui.KeyCode.Digit0|ui.MetaKeys.CTRL_COMMAND};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"),_a22;exports.SheetUIController=(_a22=class extends core.Disposable{constructor(_injector,_componentManager,_layoutService,_commandService,_shortcutService,_menuManagerService,_uiPartsService,_configService){super(),this._injector=_injector,this._componentManager=_componentManager,this._layoutService=_layoutService,this._commandService=_commandService,this._shortcutService=_shortcutService,this._menuManagerService=_menuManagerService,this._uiPartsService=_uiPartsService,this._configService=_configService,this._init()}_init(){this._initComponents(),this._initCommands(),this._initMenus(),this._initShortcuts(),this._initWorkbenchParts(),this._initFocusHandler()}_initComponents(){const componentManager=this._componentManager;this.disposeWithMe(componentManager.register(MENU_ITEM_INPUT_COMPONENT,MenuItemInput)),this.disposeWithMe(componentManager.register(BORDER_PANEL_COMPONENT,BorderPanel)),this.disposeWithMe(componentManager.register(COLOR_PICKER_COMPONENT,design.ColorPicker)),this.disposeWithMe(componentManager.register(FONT_FAMILY_COMPONENT,ui.FontFamily)),this.disposeWithMe(componentManager.register(FONT_FAMILY_ITEM_COMPONENT,ui.FontFamilyItem)),this.disposeWithMe(componentManager.register(FONT_SIZE_COMPONENT,ui.FontSize)),this.disposeWithMe(componentManager.register(DEFINED_NAME_CONTAINER,DefinedNameContainer)),this.disposeWithMe(componentManager.register("HideGridlines",HideGridlines))}_initCommands(){[AddWorksheetMergeAllCommand,AddWorksheetMergeCommand,AddWorksheetMergeHorizontalCommand,AddWorksheetMergeVerticalCommand,ChangeZoomRatioCommand,ExpandSelectionCommand,MoveSelectionCommand,MoveSelectionEnterAndTabCommand,RenameSheetOperation,RemoveSheetConfirmCommand,RemoveRowConfirmCommand,RemoveColConfirmCommand,HideRowConfirmCommand,HideColConfirmCommand,ScrollCommand,ScrollToCellCommand,SelectAllCommand,SetActivateCellEditOperation,sheets.SetBoldCommand,SetCellEditVisibleArrowOperation,SetCellEditVisibleOperation,SetCellEditVisibleWithF2Operation,SetRangeBoldCommand,SetRangeItalicCommand,SetRangeUnderlineCommand,SetRangeStrickThroughCommand,SetRangeSubscriptCommand,SetRangeSuperscriptCommand,SetRangeFontSizeCommand,SetRangeFontFamilyCommand,SetRangeTextColorCommand,ResetRangeTextColorCommand,sheets.SetItalicCommand,sheets.SetStrikeThroughCommand,sheets.SetFontFamilyCommand,sheets.SetFontSizeCommand,SetFormatPainterOperation,SetInfiniteFormatPainterCommand,SetOnceFormatPainterCommand,ApplyFormatPainterCommand,SetScrollOperation,SetScrollRelativeCommand,SetSelectionFrozenCommand,SetRowFrozenCommand,SetColumnFrozenCommand,ScrollToRangeOperation,sheets.SetUnderlineCommand,SetZoomRatioCommand,SetZoomRatioOperation,ShowMenuListCommand,RefillCommand,InsertRangeMoveDownConfirmCommand,DeleteRangeMoveUpConfirmCommand,InsertRangeMoveRightConfirmCommand,DeleteRangeMoveLeftConfirmCommand,SidebarDefinedNameOperation,AutoFillCommand,AutoClearContentCommand,SheetPermissionOpenPanelOperation,SheetPermissionOpenDialogOperation,AddRangeProtectionFromToolbarCommand,AddRangeProtectionFromContextMenuCommand,ViewSheetPermissionFromContextMenuCommand,AddRangeProtectionFromSheetBarCommand,ViewSheetPermissionFromSheetBarCommand,ChangeSheetProtectionFromSheetBarCommand,DeleteRangeProtectionFromContextMenuCommand,SetRangeProtectionFromContextMenuCommand,DeleteWorksheetProtectionFormSheetBarCommand,SetWorksheetColAutoWidthCommand].forEach(c=>{this.disposeWithMe(this._commandService.registerCommand(c))})}_initMenus(){this._menuManagerService.mergeMenu(menuSchema$1)}_initShortcuts(){[MoveSelectionDownShortcutItem,MoveSelectionUpShortcutItem,MoveSelectionLeftShortcutItem,MoveSelectionRightShortcutItem,MoveSelectionTabShortcutItem,MoveSelectionTabLeftShortcutItem,MoveSelectionEnterShortcutItem,MoveSelectionEnterUpShortcutItem,MoveSelectionEndDownShortcutItem,MoveSelectionEndUpShortcutItem,MoveSelectionEndLeftShortcutItem,MoveSelectionEndRightShortcutItem,ExpandSelectionDownShortcutItem,ExpandSelectionUpShortcutItem,ExpandSelectionLeftShortcutItem,ExpandSelectionRightShortcutItem,ExpandSelectionEndDownShortcutItem,ExpandSelectionEndUpShortcutItem,ExpandSelectionEndLeftShortcutItem,ExpandSelectionEndRightShortcutItem,SelectAllShortcutItem,ZoomInShortcutItem,ZoomOutShortcutItem,ResetZoomShortcutItem,PreventDefaultResetZoomShortcutItem,PreventDefaultZoomInShortcutItem,PreventDefaultZoomOutShortcutItem,SetBoldShortcutItem,SetItalicShortcutItem,SetUnderlineShortcutItem,SetStrikeThroughShortcutItem,ClearSelectionValueShortcutItem,...generateArrowSelectionShortCutItem(),EditorCursorEnterShortcut,StartEditWithF2Shortcut,EditorCursorTabShortcut,EditorBreakLineShortcut,EditorDeleteLeftShortcut,EditorDeleteLeftShortcutInActive,EditorCursorEscShortcut,SetRowHiddenShortcutItem,SetColHiddenShortcutItem].forEach(item=>{this.disposeWithMe(this._shortcutService.registerShortcut(item))})}_initWorkbenchParts(){const uiController=this._uiPartsService,injector=this._injector,config=this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);(config==null?void 0:config.formulaBar)!==!1&&this.disposeWithMe(uiController.registerComponent(ui.BuiltInUIPart.HEADER,()=>core.connectInjector(RenderSheetHeader,injector))),this.disposeWithMe(uiController.registerComponent(ui.BuiltInUIPart.FOOTER,()=>core.connectInjector(RenderSheetFooter,injector))),this.disposeWithMe(uiController.registerComponent(ui.BuiltInUIPart.CONTENT,()=>core.connectInjector(RenderSheetContent,injector)))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(core.UniverInstanceType.UNIVER_SHEET,_unitId=>{const currentEditorRender=this._injector.get(engineRender.IRenderManagerService).getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_DOC),docSelectionRenderService=currentEditorRender==null?void 0:currentEditorRender.with(docsUi.DocSelectionRenderService);docSelectionRenderService==null||docSelectionRenderService.focus()}))}},__name(_a22,"SheetUIController"),_a22);exports.SheetUIController=__decorateClass$A([__decorateParam$A(0,core.Inject(core.Injector)),__decorateParam$A(1,core.Inject(ui.ComponentManager)),__decorateParam$A(2,ui.ILayoutService),__decorateParam$A(3,core.ICommandService),__decorateParam$A(4,ui.IShortcutService),__decorateParam$A(5,ui.IMenuManagerService),__decorateParam$A(6,ui.IUIPartsService),__decorateParam$A(7,core.IConfigService)],exports.SheetUIController);const useHighlightRange=__name((ranges=[])=>{const markSelectionService=core.useDependency(IMarkSelectionService);React.useEffect(()=>{const ids=ranges.map(range=>markSelectionService.addShape({range,style:{fill:"rgba(73, 184, 17, 0.05)",strokeWidth:1,stroke:"#49B811",widgets:{}},primary:{startColumn:range.startColumn,endColumn:range.endColumn,startRow:range.startRow,endRow:range.endRow,actualRow:range.startRow,actualColumn:range.startColumn,isMerged:!1,isMergedMainCell:!1}}));return()=>{ids.forEach(id=>{id&&markSelectionService.removeShape(id)})}},[ranges])},"useHighlightRange");var __defProp$z=Object.defineProperty,__getOwnPropDesc$z=Object.getOwnPropertyDescriptor,__decorateClass$z=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$z(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$z(target,key,result),result},"__decorateClass$z"),__decorateParam$z=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$z"),_a23;let ActiveWorksheetController=(_a23=class extends core.Disposable{constructor(_commandService,_univerInstanceService){super();__publicField(this,"_previousSheetIndex",-1);this._commandService=_commandService,this._univerInstanceService=_univerInstanceService,this.disposeWithMe(this._commandService.beforeCommandExecuted(command=>{if(command.id===sheets.RemoveSheetMutation.id)return this._beforeAdjustActiveSheetOnRemoveSheet(command)})),this.disposeWithMe(this._commandService.onCommandExecuted((command,options)=>{if(command.id===sheets.RemoveSheetMutation.id)return this._adjustActiveSheetOnRemoveSheet(command);if(command.id===sheets.SetWorksheetHideMutation.id&&command.params.hidden)return this._adjustActiveSheetOnHideSheet(command);if(options!=null&&options.fromCollab)return!1;if(command.id===sheets.InsertSheetMutation.id)return this._adjustActiveSheetOnInsertSheet(command);if(command.id===sheets.SetWorksheetHideMutation.id&&!command.params.hidden)return this._adjustActiveSheetOnShowSheet(command);if(command.id===sheets.SetSelectionsOperation.id)return this._adjustActiveSheetOnSelection(command)}))}_adjustActiveSheetOnHideSheet(mutation){var _a61;const{unitId,subUnitId}=mutation.params,workbook=this._univerInstanceService.getUniverSheetInstance(unitId);if(!workbook||((_a61=workbook.getActiveSheet())==null?void 0:_a61.getSheetId())!==subUnitId)return;const activeIndex=workbook.getActiveSheetIndex(),nextId=findTheNextUnhiddenSheet(workbook,activeIndex);this._switchToNextSheet(unitId,nextId)}_beforeAdjustActiveSheetOnRemoveSheet(mutation){const{unitId,subUnitId}=mutation.params,workbook=this._univerInstanceService.getUniverSheetInstance(unitId);if(!workbook)return;const worksheet=workbook.getSheetBySheetId(subUnitId);worksheet&&(this._previousSheetIndex=workbook.getSheetIndex(worksheet))}_adjustActiveSheetOnRemoveSheet(mutation){if(this._previousSheetIndex===-1)return;const{unitId}=mutation.params,workbook=this._univerInstanceService.getUniverSheetInstance(unitId);if(!workbook)return;if(workbook.getActiveSheet().getSheetId()===mutation.params.subUnitId){const previousIndex=this._previousSheetIndex,nextIndex=previousIndex>=1?previousIndex-1:0,nextId=findTheNextUnhiddenSheet(workbook,nextIndex);this._switchToNextSheet(unitId,nextId)}}_adjustActiveSheetOnInsertSheet(mutation){const{unitId,sheet}=mutation.params;this._switchToNextSheet(unitId,sheet.id)}_adjustActiveSheetOnShowSheet(mutation){const{unitId,subUnitId}=mutation.params;this._switchToNextSheet(unitId,subUnitId)}_adjustActiveSheetOnSelection(operation){var _a61;const{unitId,subUnitId}=operation.params;subUnitId!==((_a61=this._univerInstanceService.getUnit(unitId))==null?void 0:_a61.getActiveSheet().getSheetId())&&this._switchToNextSheet(unitId,subUnitId)}_switchToNextSheet(unitId,subUnitId){this._commandService.executeCommand(sheets.SetWorksheetActiveOperation.id,{unitId,subUnitId})}},__name(_a23,"ActiveWorksheetController"),_a23);ActiveWorksheetController=__decorateClass$z([__decorateParam$z(0,core.ICommandService),__decorateParam$z(1,core.IUniverInstanceService)],ActiveWorksheetController);function findTheNextUnhiddenSheet(workbook,startIndex){const countOfSheets=workbook.getSheetSize();for(let i=startIndex;i>-1;i--){const sheet=workbook.getSheetByIndex(i);if(!sheet.getConfig().hidden)return sheet.getSheetId()}for(let i=startIndex;i<countOfSheets;i++){const sheet=workbook.getSheetByIndex(i);if(!sheet.getConfig().hidden)return sheet.getSheetId()}throw new Error("[ActiveWorksheetController]: could not find the next unhidden sheet! Collaboration error perhaps.")}__name(findTheNextUnhiddenSheet,"findTheNextUnhiddenSheet");var __defProp$y=Object.defineProperty,__getOwnPropDesc$y=Object.getOwnPropertyDescriptor,__decorateClass$y=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$y(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$y(target,key,result),result},"__decorateClass$y"),__decorateParam$y=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$y"),_a24;exports.SheetCanvasPopManagerService=(_a24=class extends core.Disposable{constructor(_globalPopupManagerService,_renderManagerService,_univerInstanceService,_refRangeService,_commandService,_refSelectionsService,_selectionManagerService){super();__publicField(this,"_popupMenuFeatureMap",new Map);__publicField(this,"_isSelectionMoving",!1);this._globalPopupManagerService=_globalPopupManagerService,this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService,this._refRangeService=_refRangeService,this._commandService=_commandService,this._refSelectionsService=_refSelectionsService,this._selectionManagerService=_selectionManagerService,this._initMoving()}_initMoving(){this.disposeWithMe(this._refSelectionsService.selectionMoving$.subscribe(()=>{this._isSelectionMoving=!0})),this.disposeWithMe(this._refSelectionsService.selectionMoveEnd$.subscribe(()=>{this._isSelectionMoving=!1})),this.disposeWithMe(this._selectionManagerService.selectionMoving$.subscribe(()=>{this._isSelectionMoving=!0})),this.disposeWithMe(this._selectionManagerService.selectionMoveEnd$.subscribe(()=>{this._isSelectionMoving=!1}))}registerFeatureMenu(type,getPopupMenuCallBack){this._popupMenuFeatureMap.set(type,getPopupMenuCallBack)}getFeatureMenu(unitId,subUnitId,drawingId,drawingType){const callback=this._popupMenuFeatureMap.get(drawingType);if(callback)return callback(unitId,subUnitId,drawingId,drawingType)}dispose(){super.dispose(),this._popupMenuFeatureMap.clear()}_createHiddenRectObserver(params){const{row,column,worksheet,skeleton,currentRender}=params,calc=__name(()=>{var _a61,_b;const freeze=worksheet.getFreeze(),{startRow:freezeStartRow,startColumn:freezeStartColumn,xSplit,ySplit}=freeze,startRow=freezeStartRow-ySplit,startColumn=freezeStartColumn-xSplit,{rowHeightAccumulation,columnWidthAccumulation,rowHeaderWidth,columnHeaderHeight}=skeleton,canvasFreezeWidth=rowHeaderWidth+(startColumn===-1?0:columnWidthAccumulation[startColumn+xSplit-1]-((_a61=columnWidthAccumulation[startColumn-1])!=null?_a61:0)),canvasFreezeHeight=columnHeaderHeight+(startRow===-1?0:rowHeightAccumulation[startRow+ySplit-1]-((_b=rowHeightAccumulation[startRow])!=null?_b:0)),canvasElement=currentRender.engine.getCanvasElement(),canvasClientRect=canvasElement.getBoundingClientRect(),widthOfCanvas=pxToNum(canvasElement.style.width),scaleAdjust=canvasClientRect.width/widthOfCanvas,canvasScale=currentRender.scene.getAncestorScale().scaleX,freezeWidth=canvasFreezeWidth*scaleAdjust*canvasScale,freezeHeight=canvasFreezeHeight*scaleAdjust*canvasScale,viewTopLeft={left:-1/0,top:-1/0,right:canvasClientRect.left+freezeWidth,bottom:canvasClientRect.top+freezeHeight},viewTopRight={left:canvasClientRect.left+freezeWidth,top:-1/0,right:1/0,bottom:canvasClientRect.top+freezeHeight},viewBottomLeft={left:-1/0,top:canvasClientRect.top+freezeHeight,right:canvasClientRect.left+freezeWidth,bottom:1/0};return row<freezeStartRow&&column<freezeStartColumn?[]:row<freezeStartRow?[viewTopLeft]:column<freezeStartColumn?[viewTopLeft]:[viewTopLeft,viewTopRight,viewBottomLeft]},"calc"),rects=calc(),rects$=new rxjs.BehaviorSubject(rects),disposable=new core.DisposableCollection;return disposable.add(this._commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===sheets.SetFrozenMutation.id){const newRects=calc();rects$.next(newRects)}})),{rects$,disposable}}_createPositionObserver(bound,currentRender,skeleton,worksheet){const calc=__name(()=>{const{scene}=currentRender,offsetBound=transformBound2OffsetBound(bound,scene,skeleton,worksheet),canvasElement=currentRender.engine.getCanvasElement(),canvasClientRect=canvasElement.getBoundingClientRect(),widthOfCanvas=pxToNum(canvasElement.style.width),scaleAdjust=canvasClientRect.width/widthOfCanvas;return{left:offsetBound.left*scaleAdjust+canvasClientRect.left,right:offsetBound.right*scaleAdjust+canvasClientRect.left,top:offsetBound.top*scaleAdjust+canvasClientRect.top,bottom:offsetBound.bottom*scaleAdjust+canvasClientRect.top}},"calc"),position=calc(),position$=new rxjs.BehaviorSubject(position),disposable=new core.DisposableCollection;return disposable.add(this._commandService.onCommandExecuted(commandInfo=>{(commandInfo.id===SetScrollOperation.id||commandInfo.id===SetZoomRatioOperation.id)&&position$.next(calc())})),{position,position$,disposable}}attachPopupToObject(targetObject,popup){var _a61;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet||this._isSelectionMoving&&!popup.showOnSelectionMoving)return{dispose:__name(()=>{},"dispose"),canDispose:__name(()=>!0,"canDispose")};const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),skeleton=(_a61=this._renderManagerService.getRenderById(unitId))==null?void 0:_a61.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:subUnitId}),currentRender=this._renderManagerService.getRenderById(unitId);if(!currentRender||!skeleton)return{dispose:__name(()=>{},"dispose"),canDispose:__name(()=>!0,"canDispose")};const{left,top,width,height}=targetObject,bound={left,right:left+width,top,bottom:top+height},{position,position$,disposable}=this._createPositionObserver(bound,currentRender,skeleton,worksheet),id=this._globalPopupManagerService.addPopup({...popup,unitId,subUnitId,anchorRect:position,anchorRect$:position$,canvasElement:currentRender.engine.getCanvasElement()});return{dispose:__name(()=>{this._globalPopupManagerService.removePopup(id),position$.complete(),disposable.dispose()},"dispose"),canDispose:__name(()=>this._globalPopupManagerService.activePopupId!==id,"canDispose")}}attachPopupByPosition(bound,popup,location){var _a61;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return null;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId();if(unitId!==location.unitId||location.subUnitId!==subUnitId)return null;if(this._isSelectionMoving&&!popup.showOnSelectionMoving)return;const skeleton=(_a61=this._renderManagerService.getRenderById(unitId))==null?void 0:_a61.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:subUnitId}),currentRender=this._renderManagerService.getRenderById(unitId);if(!currentRender||!skeleton)return null;const{position,position$,disposable}=this._createPositionObserver(bound,currentRender,skeleton,worksheet),{rects$,disposable:rectsObserverDisposable}=this._createHiddenRectObserver({row:location.row,column:location.col,worksheet,skeleton,currentRender}),id=this._globalPopupManagerService.addPopup({...popup,unitId,subUnitId,anchorRect:position,anchorRect$:position$,hiddenRects$:rects$,canvasElement:currentRender.engine.getCanvasElement()});return{dispose:__name(()=>{this._globalPopupManagerService.removePopup(id),position$.complete(),disposable.dispose(),rectsObserverDisposable.dispose()},"dispose"),canDispose:__name(()=>this._globalPopupManagerService.activePopupId!==id,"canDispose")}}attachPopupToAbsolutePosition(bound,popup,_unitId,_subUnitId){var _a61;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return null;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId();if(_unitId&&unitId!==_unitId||_subUnitId&&_subUnitId!==subUnitId)return null;const skeleton=(_a61=this._renderManagerService.getRenderById(unitId))==null?void 0:_a61.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:subUnitId}),currentRender=this._renderManagerService.getRenderById(unitId);if(!currentRender||!skeleton)return null;if(this._isSelectionMoving&&!popup.showOnSelectionMoving)return;const position$=new rxjs.BehaviorSubject(bound),id=this._globalPopupManagerService.addPopup({...popup,unitId,subUnitId,anchorRect:bound,anchorRect$:position$.asObservable(),canvasElement:currentRender.engine.getCanvasElement()});return{dispose:__name(()=>{this._globalPopupManagerService.removePopup(id),position$.complete()},"dispose"),canDispose:__name(()=>this._globalPopupManagerService.activePopupId!==id,"canDispose")}}attachPopupToCell(row,col,popup,_unitId,_subUnitId,viewport){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return null;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId();if(_unitId&&unitId!==_unitId||_subUnitId&&subUnitId!==_subUnitId)return null;const currentRender=this._renderManagerService.getRenderById(unitId),skeleton=currentRender==null?void 0:currentRender.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:subUnitId}),sheetSelectionRenderService=currentRender==null?void 0:currentRender.with(ISheetSelectionRenderService);if(!currentRender||!skeleton||!sheetSelectionRenderService)return null;if(this._isSelectionMoving&&!popup.showOnSelectionMoving)return;const activeViewport=viewport!=null?viewport:getViewportByCell(row,col,currentRender.scene,worksheet);if(!activeViewport)return null;const{position,position$,disposable:positionObserverDisposable,updateRowCol}=this._createCellPositionObserver(row,col,currentRender,skeleton,activeViewport),{rects$,disposable:rectsObserverDisposable}=this._createHiddenRectObserver({row,column:col,worksheet,skeleton,currentRender}),id=this._globalPopupManagerService.addPopup({...popup,unitId,subUnitId,anchorRect:position,anchorRect$:position$,canvasElement:currentRender.engine.getCanvasElement(),hiddenRects$:rects$}),disposableCollection=new core.DisposableCollection;disposableCollection.add(positionObserverDisposable),disposableCollection.add(core.toDisposable(()=>{this._globalPopupManagerService.removePopup(id),position$.complete()})),disposableCollection.add(rectsObserverDisposable);const watchedRange={startRow:row,endRow:row,startColumn:col,endColumn:col};return disposableCollection.add(this._refRangeService.watchRange(unitId,subUnitId,watchedRange,(_2,after)=>{after?updateRowCol(after.startRow,after.startColumn):disposableCollection.dispose()})),{dispose(){disposableCollection.dispose()},canDispose:__name(()=>this._globalPopupManagerService.activePopupId!==id,"canDispose")}}attachRangePopup(range,popup,_unitId,_subUnitId,viewport,showOnSelectionMoving=!1){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return null;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId();if(_unitId&&unitId!==_unitId||_subUnitId&&subUnitId!==_subUnitId)return null;const currentRender=this._renderManagerService.getRenderById(unitId),skeleton=currentRender==null?void 0:currentRender.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:subUnitId}),sheetSelectionRenderService=currentRender==null?void 0:currentRender.with(ISheetSelectionRenderService);if(!currentRender||!skeleton||!sheetSelectionRenderService)return null;if(sheetSelectionRenderService.selectionMoving&&!showOnSelectionMoving)return;const activeViewport=viewport!=null?viewport:getViewportByCell(range.startRow,range.startColumn,currentRender.scene,worksheet);if(!activeViewport)return null;const{position,position$,disposable:positionObserverDisposable,updateRowCol,topLeftPos$,rightBottomPos$}=this._createRangePositionObserver(range,currentRender,skeleton,activeViewport),{rects$,disposable:rectsObserverDisposable}=this._createHiddenRectObserver({row:range.startRow,column:range.startColumn,worksheet,skeleton,currentRender}),id=this._globalPopupManagerService.addPopup({...popup,unitId,subUnitId,anchorRect:position,anchorRect$:position$,canvasElement:currentRender.engine.getCanvasElement(),hiddenRects$:rects$}),disposableCollection=new core.DisposableCollection;disposableCollection.add(positionObserverDisposable),disposableCollection.add(core.toDisposable(()=>{this._globalPopupManagerService.removePopup(id),topLeftPos$.complete(),rightBottomPos$.complete()})),disposableCollection.add(rectsObserverDisposable);const watchedRange={...range};return disposableCollection.add(this._refRangeService.watchRange(unitId,subUnitId,watchedRange,(_2,after)=>{after?updateRowCol(after.startRow,after.startColumn):disposableCollection.dispose()})),{dispose(){disposableCollection.dispose()},canDispose:__name(()=>this._globalPopupManagerService.activePopupId!==id,"canDispose")}}_createCellPositionObserver(initialRow,initialCol,currentRender,skeleton,activeViewport){let row=initialRow,col=initialCol;const position=this._calcCellPositionByCell(row,col,currentRender,skeleton,activeViewport),position$=new rxjs.BehaviorSubject(position),updatePosition=__name(()=>position$.next(this._calcCellPositionByCell(row,col,currentRender,skeleton,activeViewport)),"updatePosition"),disposable=new core.DisposableCollection;return disposable.add(currentRender.engine.clientRect$.subscribe(()=>updatePosition())),disposable.add(this._commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===sheets.SetWorksheetRowAutoHeightMutation.id&&commandInfo.params.rowsAutoHeightInfo.findIndex(item=>item.row===row)>-1){updatePosition();return}(sheets.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(commandInfo.id)>-1||commandInfo.id===SetScrollOperation.id||commandInfo.id===SetZoomRatioOperation.id)&&updatePosition()})),{position$,disposable,position,updateRowCol:__name((newRow,newCol)=>{row=newRow,col=newCol,updatePosition()},"updateRowCol")}}_calcCellPositionByCell(row,col,currentRender,skeleton,activeViewport){const{scene,engine}=currentRender,primaryWithCoord=skeleton.getCellWithCoordByIndex(row,col),cellInfo=primaryWithCoord.isMergedMainCell?primaryWithCoord.mergeInfo:primaryWithCoord,{scaleX,scaleY}=scene.getAncestorScale(),scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY},canvasElement=engine.getCanvasElement(),canvasClientRect=canvasElement.getBoundingClientRect(),widthOfCanvas=pxToNum(canvasElement.style.width),{top,left,width}=canvasClientRect,scaleAdjust=width/widthOfCanvas;return{left:(cellInfo.startX-scrollXY.x)*scaleAdjust*scaleX+left,right:(cellInfo.endX-scrollXY.x)*scaleAdjust*scaleX+left,top:(cellInfo.startY-scrollXY.y)*scaleAdjust*scaleY+top,bottom:(cellInfo.endY-scrollXY.y)*scaleAdjust*scaleY+top}}_createRangePositionObserver(range,currentRender,skeleton,activeViewport){let{startRow,startColumn}=range;const topLeftCoord=this._calcCellPositionByCell(startRow,startColumn,currentRender,skeleton,activeViewport),topLeftPos$=new rxjs.BehaviorSubject(topLeftCoord),rightBottomCoord=this._calcCellPositionByCell(range.endRow,range.endColumn,currentRender,skeleton,activeViewport),rightBottomPos$=new rxjs.BehaviorSubject(rightBottomCoord),updatePosition=__name(()=>{const topLeftCoord2=this._calcCellPositionByCell(startRow,startColumn,currentRender,skeleton,activeViewport),rightBottomCoord2=this._calcCellPositionByCell(range.endRow,range.endColumn,currentRender,skeleton,activeViewport);topLeftPos$.next(topLeftCoord2),rightBottomPos$.next(rightBottomCoord2)},"updatePosition"),disposable=new core.DisposableCollection;disposable.add(currentRender.engine.clientRect$.subscribe(()=>updatePosition())),disposable.add(this._commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===sheets.SetWorksheetRowAutoHeightMutation.id&&commandInfo.params.rowsAutoHeightInfo.findIndex(item=>item.row===startRow)>-1){updatePosition();return}(sheets.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(commandInfo.id)>-1||commandInfo.id===SetScrollOperation.id||commandInfo.id===SetZoomRatioOperation.id)&&updatePosition()}));const updateRowCol=__name((newRow,newCol)=>{startRow=newRow,startColumn=newCol,updatePosition()},"updateRowCol"),position$=topLeftPos$.pipe(rxjs.map(topLeft=>{const rightBottomCoord2=this._calcCellPositionByCell(range.endRow,range.endColumn,currentRender,skeleton,activeViewport);return{top:topLeft.top,left:topLeft.left,right:rightBottomCoord2.right,bottom:rightBottomCoord2.bottom}})),position={top:topLeftCoord.top,left:topLeftCoord.left,right:rightBottomCoord.right,bottom:rightBottomCoord.bottom};return{position$,position,updateRowCol,topLeftPos$,rightBottomPos$,disposable}}},__name(_a24,"SheetCanvasPopManagerService"),_a24);exports.SheetCanvasPopManagerService=__decorateClass$y([__decorateParam$y(0,core.Inject(ui.ICanvasPopupService)),__decorateParam$y(1,engineRender.IRenderManagerService),__decorateParam$y(2,core.IUniverInstanceService),__decorateParam$y(3,core.Inject(sheets.RefRangeService)),__decorateParam$y(4,core.ICommandService),__decorateParam$y(5,sheets.IRefSelectionsService),__decorateParam$y(6,core.Inject(sheets.SheetsSelectionsService))],exports.SheetCanvasPopManagerService);function pxToNum(width){return Number.parseInt(width.replace("px",""))}__name(pxToNum,"pxToNum");var __defProp$x=Object.defineProperty,__getOwnPropDesc$x=Object.getOwnPropertyDescriptor,__decorateClass$x=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$x(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$x(target,key,result),result},"__decorateClass$x"),__decorateParam$x=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$x"),CellAlertType=(CellAlertType2=>(CellAlertType2[CellAlertType2.INFO=0]="INFO",CellAlertType2[CellAlertType2.WARNING=1]="WARNING",CellAlertType2[CellAlertType2.ERROR=2]="ERROR",CellAlertType2))(CellAlertType||{}),_a25;exports.CellAlertManagerService=(_a25=class extends core.Disposable{constructor(_renderManagerService,_canvasPopManagerService){super();__publicField(this,"_currentAlert$",new rxjs.Subject);__publicField(this,"_currentAlert",new Map);__publicField(this,"currentAlert$",this._currentAlert$.asObservable());this._renderManagerService=_renderManagerService,this._canvasPopManagerService=_canvasPopManagerService,this.disposeWithMe(()=>{this._currentAlert$.complete()})}get currentAlert(){return this._currentAlert}showAlert(alert){let lastPopup=this._currentAlert.get(alert.key);lastPopup&&lastPopup.dispose.dispose(),lastPopup?lastPopup.dispose.dispose():(lastPopup={alert,dispose:{dispose(){}}},this._currentAlert.set(alert.key,lastPopup));const{location}=alert,{row,col,unitId}=location;if(!this._renderManagerService.getRenderById(unitId))return;const disposable=this._canvasPopManagerService.attachPopupToCell(row,col,{componentKey:CELL_ALERT_KEY,direction:"horizontal",offset:[2,0],extraProps:{alert}});disposable&&(lastPopup.dispose=disposable),this._currentAlert$.next(Array.from(this._currentAlert.entries()))}removeAlert(key){const lastPopup=this._currentAlert.get(key);lastPopup&&(this._currentAlert.delete(key),lastPopup==null||lastPopup.dispose.dispose(),this._currentAlert$.next(Array.from(this._currentAlert.entries())))}clearAlert(){this._currentAlert.forEach(alert=>{alert.dispose.dispose()}),this._currentAlert.clear(),this._currentAlert$.next(Array.from(this._currentAlert.entries()))}},__name(_a25,"CellAlertManagerService"),_a25);exports.CellAlertManagerService=__decorateClass$x([__decorateParam$x(0,engineRender.IRenderManagerService),__decorateParam$x(1,core.Inject(exports.SheetCanvasPopManagerService))],exports.CellAlertManagerService);const cellAlert="univer-cell-alert",cellAlertTitle="univer-cell-alert-title",cellAlertIcon="univer-cell-alert-icon",cellAlertIconError="univer-cell-alert-icon-error",cellAlertIconInfo="univer-cell-alert-icon-info",cellAlertIconWarning="univer-cell-alert-icon-warning",cellAlertContent="univer-cell-alert-content",styles$8={cellAlert,cellAlertTitle,cellAlertIcon,cellAlertIconError,cellAlertIconInfo,cellAlertIconWarning,cellAlertContent};function CellAlert({popup}){var _a61;const alert=(_a61=popup.extraProps)==null?void 0:_a61.alert;if(!alert)return null;const{type,title,message}=alert,iconMap={[CellAlertType.ERROR]:jsxRuntime.jsx(ErrorSingle,{className:clsx(styles$8.cellAlertIcon,styles$8.cellAlertIconError)}),[CellAlertType.INFO]:jsxRuntime.jsx(WarningSingle,{className:clsx(styles$8.cellAlertIcon,styles$8.cellAlertIconInfo)}),[CellAlertType.WARNING]:jsxRuntime.jsx(WarningSingle,{className:clsx(styles$8.cellAlertIcon,styles$8.cellAlertIconWarning)})};return jsxRuntime.jsxs("div",{className:styles$8.cellAlert,children:[jsxRuntime.jsxs("div",{className:styles$8.cellAlertTitle,children:[type?iconMap[type]:null,title]}),jsxRuntime.jsx("div",{className:styles$8.cellAlertContent,children:message})]})}__name(CellAlert,"CellAlert");const CELL_ALERT_KEY="univer.sheet.cell-alert";var __defProp$w=Object.defineProperty,__getOwnPropDesc$w=Object.getOwnPropertyDescriptor,__decorateClass$w=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$w(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$w(target,key,result),result},"__decorateClass$w"),__decorateParam$w=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$w"),_a26;let CellAlertRenderController=(_a26=class extends core.Disposable{constructor(_context,_componentManager){super(),this._context=_context,this._componentManager=_componentManager,this._initComponent()}_initComponent(){this._componentManager.register(CELL_ALERT_KEY,CellAlert)}},__name(_a26,"CellAlertRenderController"),_a26);CellAlertRenderController=__decorateClass$w([__decorateParam$w(1,core.Inject(ui.ComponentManager))],CellAlertRenderController);const sheetPasteOptionsWrapper="univer-sheet-paste-options-wrapper",sheetPasteOptionsIconWrapper="univer-sheet-paste-options-icon-wrapper",sheetPasteOptionsMenu="univer-sheet-paste-options-menu",sheetPasteOptionsMenuItem="univer-sheet-paste-options-menu-item",sheetPasteOptionsMenuItemTitle="univer-sheet-paste-options-menu-item-title",sheetPasteOptionsMenuItemIcon="univer-sheet-paste-options-menu-item-icon",styles$7={sheetPasteOptionsWrapper,sheetPasteOptionsIconWrapper,sheetPasteOptionsMenu,sheetPasteOptionsMenuItem,sheetPasteOptionsMenuItemTitle,sheetPasteOptionsMenuItemIcon},DEFAULT_PADDING=2,SheetPasteOptions=[{value:"DEFAULT_PASTE",label:"rightClick.paste"},{value:"SPECIAL_PASTE_VALUE",label:"rightClick.pasteValue"},{value:"SPECIAL_PASTE_FORMAT",label:"rightClick.pasteFormat"},{value:"SPECIAL_PASTE_COL_WIDTH",label:"rightClick.pasteColWidth"},{value:"SPECIAL_PASTE_BESIDES_BORDER",label:"rightClick.pasteBesidesBorder"},{value:"SPECIAL_PASTE_FORMULA",label:"formula.operation.pasteFormula"}],useMenuPosition=__name(range=>{var _a61,_b,_c,_d,_e;const univerInstanceService=core.useDependency(core.IUniverInstanceService),renderManagerService=core.useDependency(engineRender.IRenderManagerService),workbook=useActiveWorkbook();if(!range||!workbook)return null;const anchor={startRow:range.rows[0],startCol:range.cols[0],endRow:range.rows[range.rows.length-1],endCol:range.cols[range.cols.length-1]};if(anchor.endRow<0||anchor.endCol<0)return null;const ru=renderManagerService.getRenderById(workbook.getUnitId()),sheetSkeletonManagerService=ru==null?void 0:ru.with(exports.SheetSkeletonManagerService),selectionRenderService=ru==null?void 0:ru.with(ISheetSelectionRenderService),sheetObject=getSheetObject(univerInstanceService,renderManagerService);if(!sheetObject||!selectionRenderService)return null;const{scene}=sheetObject,skeleton=sheetSkeletonManagerService==null?void 0:sheetSkeletonManagerService.getCurrentSkeleton(),viewport=selectionRenderService.getViewPort(),scaleX=scene==null?void 0:scene.scaleX,scaleY=scene==null?void 0:scene.scaleY,scrollXY=scene==null?void 0:scene.getViewportScrollXY(viewport),canvas=(_a61=scene.getEngine())==null?void 0:_a61.getCanvas();if(!scaleX||!scene||!scaleX||!scaleY||!scrollXY)return null;const endPosition=skeleton==null?void 0:skeleton.getNoMergeCellPositionByIndex(anchor.endRow,anchor.endCol),endX=(_b=endPosition==null?void 0:endPosition.endX)!=null?_b:0,endY=(_c=endPosition==null?void 0:endPosition.endY)!=null?_c:0,positionEndX=(_d=skeleton==null?void 0:skeleton.convertTransformToOffsetX(endX,scaleX,scrollXY))!=null?_d:-9999,positionEndY=(_e=skeleton==null?void 0:skeleton.convertTransformToOffsetY(endY,scaleY,scrollXY))!=null?_e:-9999,canvasWidth=canvas==null?void 0:canvas.getWidth(),canvasHeight=canvas==null?void 0:canvas.getHeight();if(!canvasWidth||!canvasHeight)return null;const XInSideView=positionEndX+50<=canvasWidth,YInSideView=positionEndY+50<=canvasHeight;let positionX=positionEndX,positionY=positionEndY;return XInSideView||(positionX=canvasWidth-100),YInSideView||(positionY=canvasHeight-100),{positionX,positionY}},"useMenuPosition"),ClipboardPopupMenu=__name(()=>{const clipboardService=core.useDependency(ISheetClipboardService),showMenu=core.useObservable(clipboardService.showMenu$,!0),pasteOptionsCache=core.useObservable(clipboardService.pasteOptionsCache$,null);core.useDependency(engineRender.IRenderManagerService);const localeService=core.useDependency(core.LocaleService),commandService=core.useDependency(core.ICommandService),[menuHovered,setMenuHovered]=React.useState(!1),[menuVisible,setMenuVisible]=React.useState(!1),[_2,setVersion]=React.useState(Math.random()),range=pasteOptionsCache==null?void 0:pasteOptionsCache.target.pastedRange,relativePosition=useMenuPosition(range),sheetSkeletonManagerService=useSheetSkeleton();React.useEffect(()=>{showMenu||(setMenuHovered(!1),setMenuVisible(!1))},[showMenu]);const forceUpdate=React.useCallback(()=>setVersion(Math.random()),[]);if(React.useEffect(()=>{const disposable=sheetSkeletonManagerService&&core.toDisposable(sheetSkeletonManagerService.currentSkeleton$.subscribe(skeleton=>{skeleton&&forceUpdate()}));return disposable==null?void 0:disposable.dispose},[sheetSkeletonManagerService,forceUpdate]),React.useEffect(()=>commandService.onCommandExecuted(command=>{command.id===SetScrollOperation.id&&forceUpdate()}).dispose,[forceUpdate,commandService]),!relativePosition||!showMenu||relativePosition.positionX<50||relativePosition.positionY<30)return null;const iconVisible=menuHovered||menuVisible,handleClick=__name(type=>{commandService.executeCommand(SheetOptionalPasteCommand.id,{type})},"handleClick");return jsxRuntime.jsx("div",{className:styles$7.sheetPasteOptionsWrapper,style:{left:relativePosition.positionX+DEFAULT_PADDING,top:relativePosition.positionY+DEFAULT_PADDING},onMouseEnter:__name(()=>setMenuHovered(!0),"onMouseEnter"),onMouseLeave:__name(()=>setMenuHovered(!1),"onMouseLeave"),children:jsxRuntime.jsxs(design.DropdownProvider,{children:[jsxRuntime.jsx(design.DropdownTrigger,{children:jsxRuntime.jsxs("div",{className:styles$7.sheetPasteOptionsIconWrapper,onClick:__name(()=>{setMenuVisible(!menuVisible)},"onClick"),children:[jsxRuntime.jsx(PasteSpecial,{style:{color:"#35322B"},extend:{colorChannel1:"rgb(var(--green-700))"}}),iconVisible&&jsxRuntime.jsx(MoreDownSingle,{})]})}),jsxRuntime.jsx(design.DropdownOverlay,{className:clsx(styles$7.sheetPasteOptionsMenu,`
55
+ `,children:[jsxRuntime.jsx(SheetBarButton,{disabled:leftScrollState,onClick:handleScrollLeft,children:jsxRuntime.jsx(MoreSingle,{style:{transform:"rotateZ(180deg)"}})}),jsxRuntime.jsx(SheetBarButton,{disabled:rightScrollState,onClick:handleScrollRight,children:jsxRuntime.jsx(MoreSingle,{})})]})]})},"SheetBar"),_StatusBarService=class _StatusBarService{constructor(){__publicField(this,"_functions",[{func:engineFormula.FUNCTION_NAMES_STATISTICAL.MAX,filter:__name(status=>{var _a61,_b,_c,_d;return((_b=(_a61=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a61.value)!=null?_b:0)>1&&((_d=(_c=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:_c.value)!=null?_d:0)>0},"filter")},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.MIN,filter:__name(status=>{var _a61,_b,_c,_d;return((_b=(_a61=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a61.value)!=null?_b:0)>1&&((_d=(_c=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:_c.value)!=null?_d:0)>0},"filter")},{func:engineFormula.FUNCTION_NAMES_MATH.SUM,filter:__name(status=>{var _a61,_b,_c,_d;return((_b=(_a61=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a61.value)!=null?_b:0)>1&&((_d=(_c=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:_c.value)!=null?_d:0)>0},"filter")},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA,filter:__name(status=>{var _a61,_b;return((_b=(_a61=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a61.value)!=null?_b:0)>1},"filter")},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT,filter:__name(status=>{var _a61,_b,_c,_d;return((_b=(_a61=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a61.value)!=null?_b:0)>1&&((_d=(_c=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:_c.value)!=null?_d:0)>0},"filter")},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.AVERAGE,filter:__name(status=>{var _a61,_b,_c,_d;return((_b=(_a61=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a61.value)!=null?_b:0)>1&&((_d=(_c=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:_c.value)!=null?_d:0)>0},"filter")}]);__publicField(this,"_state$",new rxjs.BehaviorSubject(null));__publicField(this,"state$",this._state$.asObservable())}dispose(){this._state$.complete()}setState(param){var _a61;const newState={values:[],pattern:null};param==null||param.values.forEach(item=>{const func=this._functions.find(func2=>func2.func===item.func);func&&(func.filter===void 0||func.filter(param))&&newState.values.push(item)}),newState.pattern=(_a61=param==null?void 0:param.pattern)!=null?_a61:null,this._state$.next(newState)}getState(){return this._state$.getValue()}getFunctions(){return this._functions}addFunctions(functions){this._functions.push(...functions)}};__name(_StatusBarService,"StatusBarService");let StatusBarService=_StatusBarService;const IStatusBarService=core.createIdentifier("univer.sheet-status-bar.service"),statusBar="univer-status-bar",singleMode="univer-single-mode",statusBarDiv="univer-status-bar-div",statisticList="univer-statistic-list",statisticListColumn="univer-statistic-list-column",statisticItem="univer-statistic-item",statisticPicker="univer-statistic-picker",statisticPickerItem="univer-statistic-picker-item",statisticMore="univer-statistic-more",styles$9={statusBar,singleMode,statusBarDiv,statisticList,statisticListColumn,statisticItem,statisticPicker,statisticPickerItem,statisticMore},allowPatternFunctions=[engineFormula.FUNCTION_NAMES_MATH.SUM,engineFormula.FUNCTION_NAMES_STATISTICAL.AVERAGE,engineFormula.FUNCTION_NAMES_STATISTICAL.MIN,engineFormula.FUNCTION_NAMES_STATISTICAL.MAX],functionDisplayNames={[engineFormula.FUNCTION_NAMES_MATH.SUM]:"statusbar.sum",[engineFormula.FUNCTION_NAMES_STATISTICAL.AVERAGE]:"statusbar.average",[engineFormula.FUNCTION_NAMES_STATISTICAL.MIN]:"statusbar.min",[engineFormula.FUNCTION_NAMES_STATISTICAL.MAX]:"statusbar.max",[engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT]:"statusbar.count",[engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA]:"statusbar.countA",[engineFormula.FUNCTION_NAMES_TEXT.CONCATENATE]:"concatenate"},CopyableStatisticItem=__name(item=>{const localeService=core.useDependency(core.LocaleService),messageService=core.useDependency(ui.IMessageService),clipboardService=core.useDependency(ui.IClipboardInterfaceService),formateValue=formatNumber(item),copyToClipboard=__name(async()=>{await clipboardService.writeText(item.value.toString()),messageService.show({type:design.MessageType.Success,content:localeService.t("statusbar.copied")})},"copyToClipboard");return jsxRuntime.jsx(design.Tooltip,{title:localeService.t("statusbar.clickToCopy"),placement:"top",children:jsxRuntime.jsx("div",{className:styles$9.statisticItem,onClick:copyToClipboard,children:jsxRuntime.jsx("span",{children:`${localeService.t((functionDisplayNames==null?void 0:functionDisplayNames[item.name])||item.name)}: ${formateValue}`})},item.name)})},"CopyableStatisticItem");function formatNumber(item){const{pattern,value:num}=item;return typeof num!="number"?0:num>=1e8?num.toExponential(2):pattern&&allowPatternFunctions.includes(item.name)?core.numfmt.format(pattern,num,{throws:!1}):num.toLocaleString()}__name(formatNumber,"formatNumber");const SINGLE_MODE_WIDTH=800,ROW_COUNT_THRESHOLD=3,StatusBar=__name(()=>{const[isSingle,setIsSingle]=React.useState(window.innerWidth<SINGLE_MODE_WIDTH),[show,setShow]=React.useState(!0),statusBarService=core.useDependency(IStatusBarService),items=statusBarService.getFunctions().map((item,index)=>({name:item.func,value:0,show:!0,disable:!1,pattern:null})),[statistics,setStatistics]=React.useState(items),firstItem=statistics.find(item=>item.show&&!item.disable),showList=isSingle&&firstItem?[firstItem]:statistics.filter(item=>item.show&&!item.disable);React.useEffect(()=>{const subscription=statusBarService.state$.subscribe(state=>{const item=state==null?void 0:state.values;if(!item||item.length===0)setShow(!1);else{setShow(!0);const newStatistics=statistics.map(stat=>{var _a61;const target=item.find(i=>i.func===stat.name);return target?(stat.value=target.value,stat.disable=!1):stat.disable=!0,stat.pattern=(_a61=state==null?void 0:state.pattern)!=null?_a61:null,stat});setStatistics(newStatistics)}});return()=>{subscription.unsubscribe()}},[statusBarService]);const handleResize=core.debounce(()=>{const newSingleState=window.innerWidth<SINGLE_MODE_WIDTH;isSingle!==newSingleState&&setIsSingle(newSingleState)},100);React.useEffect(()=>(window.addEventListener("resize",handleResize),()=>{window.removeEventListener("resize",handleResize)}),[isSingle]);let renderContent=null;if(showList.length>ROW_COUNT_THRESHOLD){const doubleLineList=[];showList.forEach((_2,index)=>{index%2===0&&doubleLineList.push(showList.slice(index,index+2))}),renderContent=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[" ",doubleLineList.map((item,index)=>jsxRuntime.jsxs("div",{className:styles$9.statisticListColumn,children:[(item==null?void 0:item[0])&&jsxRuntime.jsx(CopyableStatisticItem,{...item==null?void 0:item[0]},item==null?void 0:item[0].name),(item==null?void 0:item[1])&&jsxRuntime.jsx(CopyableStatisticItem,{...item==null?void 0:item[1]},item==null?void 0:item[1].name)]},`stat-col-${index}`))," "]})}else renderContent=jsxRuntime.jsx(jsxRuntime.Fragment,{children:showList.map(item=>jsxRuntime.jsx(CopyableStatisticItem,{...item},item.name))});return show&&jsxRuntime.jsxs("div",{className:clsx(styles$9.statusBar,{[styles$9.singleMode]:isSingle}),children:[jsxRuntime.jsx("div",{className:clsx(styles$9.statisticList),children:renderContent}),jsxRuntime.jsx("div",{className:styles$9.statusBarDiv})]})},"StatusBar");function RenderSheetFooter(){const menuManagerService=core.useDependency(ui.IMenuManagerService);if(!useActiveWorkbook())return null;const footerMenus=menuManagerService.getMenuByPositionKey(ui.ContextMenuPosition.FOOTER_MENU);return jsxRuntime.jsxs("section",{className:styles$l.sheetContainer,"data-range-selector":!0,children:[jsxRuntime.jsx(SheetBar,{}),jsxRuntime.jsx(StatusBar,{}),footerMenus.map(item=>{var _a61;return(_a61=item.children)==null?void 0:_a61.map(child=>(child==null?void 0:child.item)&&jsxRuntime.jsx(ui.ToolbarItem,{align:{offset:[-32,18]},...child.item},child.key))}),jsxRuntime.jsx(CountBar,{})]})}__name(RenderSheetFooter,"RenderSheetFooter");function RenderSheetHeader(){return useHasWorkbook()?jsxRuntime.jsx(FormulaBar,{}):null}__name(RenderSheetHeader,"RenderSheetHeader");function RenderSheetContent(){return useHasWorkbook()?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(EditorContainer,{}),jsxRuntime.jsx(OperateContainer,{})]}):null}__name(RenderSheetContent,"RenderSheetContent");function useHasWorkbook(){const univerInstanceService=core.useDependency(core.IUniverInstanceService),hasWorkbook=!!ui.useObservable(()=>univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),null,!1,[]);return React.useMemo(()=>univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET).length>0,[univerInstanceService,hasWorkbook])}__name(useHasWorkbook,"useHasWorkbook");const SHEETS_UI_PLUGIN_CONFIG_KEY="sheets-ui.config",defaultPluginConfig={formulaBar:!0};function CellBorderSelectorMenuItemFactory(accessor){const borderStyleManagerService=accessor.get(sheets.BorderStyleManagerService),disabled$=getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]});return{id:sheets.SetBorderBasicCommand.id,icon:new rxjs.Observable(subscriber=>{const defaultIcon="AllBorderSingle",borderManager=accessor.get(sheets.BorderStyleManagerService),disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a61;if(c.id!==sheets.SetBorderBasicCommand.id)return;const{type}=borderManager.getBorderInfo(),item=BORDER_LINE_CHILDREN.find(item2=>item2.value===type),icon=(_a61=item==null?void 0:item.icon)!=null?_a61:defaultIcon;subscriber.next(icon)});return subscriber.next(defaultIcon),disposable.dispose}),tooltip:"toolbar.border.main",type:ui.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:BORDER_PANEL_COMPONENT,hoverable:!1},value$:borderStyleManagerService.borderInfo$}],value$:borderStyleManagerService.borderInfo$,hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$}}__name(CellBorderSelectorMenuItemFactory,"CellBorderSelectorMenuItemFactory");const CLEAR_SELECTION_MENU_ID="sheet.menu.clear-selection";function ClearSelectionMenuItemFactory(accessor){return{id:CLEAR_SELECTION_MENU_ID,type:ui.MenuItemType.SUBITEMS,icon:"ClearFormat",title:"rightClick.clearSelection",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ClearSelectionMenuItemFactory,"ClearSelectionMenuItemFactory");function ClearSelectionContentMenuItemFactory(accessor){return{id:sheets.ClearSelectionContentCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.clearContent",disabled$:getObservableWithExclusiveRange$(accessor,getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ClearSelectionContentMenuItemFactory,"ClearSelectionContentMenuItemFactory");function ClearSelectionFormatMenuItemFactory(accessor){return{id:sheets.ClearSelectionFormatCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.clearFormat",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ClearSelectionFormatMenuItemFactory,"ClearSelectionFormatMenuItemFactory");function ClearSelectionAllMenuItemFactory(accessor){return{id:sheets.ClearSelectionAllCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.clearAll",disabled$:getObservableWithExclusiveRange$(accessor,getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ClearSelectionAllMenuItemFactory,"ClearSelectionAllMenuItemFactory");const DELETE_RANGE_MENU_ID="sheet.menu.delete";function DeleteRangeMenuItemFactory(accessor){return{id:DELETE_RANGE_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.delete",icon:"Reduce",hidden$:getObservableWithExclusiveRange$(accessor,getBaseRangeMenuHidden$(accessor)),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission]})}}__name(DeleteRangeMenuItemFactory,"DeleteRangeMenuItemFactory");function RemoveColMenuItemFactory(accessor){return{id:RemoveColConfirmCommand.id,type:ui.MenuItemType.BUTTON,icon:"DeleteColumn",title:"rightClick.deleteSelectedColumn",hidden$:getObservableWithExclusiveRange$(accessor,getDeleteMenuHidden$(accessor,"col")),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetDeleteColumnPermission]})}}__name(RemoveColMenuItemFactory,"RemoveColMenuItemFactory");function RemoveRowMenuItemFactory(accessor){return{id:RemoveRowConfirmCommand.id,type:ui.MenuItemType.BUTTON,icon:"DeleteRow",title:"rightClick.deleteSelectedRow",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetDeleteRowPermission]}),hidden$:getDeleteMenuHidden$(accessor,"row")}}__name(RemoveRowMenuItemFactory,"RemoveRowMenuItemFactory");function DeleteRangeMoveLeftMenuItemFactory(accessor){return{id:DeleteRangeMoveLeftConfirmCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.moveLeft",icon:"DeleteCellShiftLeft",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getCellMenuHidden$(accessor,"col")}}__name(DeleteRangeMoveLeftMenuItemFactory,"DeleteRangeMoveLeftMenuItemFactory");function DeleteRangeMoveUpMenuItemFactory(accessor){return{id:DeleteRangeMoveUpConfirmCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.moveUp",icon:"DeleteCellShiftUp",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getCellMenuHidden$(accessor,"row")}}__name(DeleteRangeMoveUpMenuItemFactory,"DeleteRangeMoveUpMenuItemFactory");function ToggleGridlinesMenuFactory(accessor){const commandService=accessor.get(core.ICommandService),instanceService=accessor.get(core.IUniverInstanceService);return{id:sheets.ToggleGridlinesCommand.id,type:ui.MenuItemType.BUTTON,tooltip:"toolbar.toggleGridlines",icon:"HideGridlines",activated$:new rxjs.Observable(observer=>{const getValue=__name(()=>{const workbook=instanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);return workbook?workbook.getActiveSheet().getConfig().showGridlines===core.BooleanNumber.TRUE:!1},"getValue"),disposable=new core.DisposableCollection;return disposable.add(commandService.onCommandExecuted(c=>{(c.id===sheets.ToggleGridlinesMutation.id||c.id===sheets.SetWorksheetActiveOperation.id)&&observer.next(getValue())})),disposable.add(instanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).subscribe(()=>{observer.next(getValue())})),observer.next(getValue()),()=>disposable.dispose()}),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission]})}}__name(ToggleGridlinesMenuFactory,"ToggleGridlinesMenuFactory");const COL_INSERT_MENU_ID="sheet.menu.col-insert";function ColInsertMenuItemFactory(accessor){return{id:COL_INSERT_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",hidden$:getBaseRangeMenuHidden$(accessor),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetInsertColumnPermission]})}}__name(ColInsertMenuItemFactory,"ColInsertMenuItemFactory");const ROW_INSERT_MENU_ID="sheet.menu.row-insert";function RowInsertMenuItemFactory(accessor){return{id:ROW_INSERT_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",hidden$:getBaseRangeMenuHidden$(accessor),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertRowPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(RowInsertMenuItemFactory,"RowInsertMenuItemFactory");const CELL_INSERT_MENU_ID="sheet.menu.cell-insert";function CellInsertMenuItemFactory(accessor){return{id:CELL_INSERT_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",hidden$:getObservableWithExclusiveRange$(accessor,getBaseRangeMenuHidden$(accessor)),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertColumnPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(CellInsertMenuItemFactory,"CellInsertMenuItemFactory");function InsertRowBeforeMenuItemFactory(accessor){return{id:sheets.InsertRowBeforeCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.insertRowBefore",icon:"InsertRowAbove",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertRowPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getInsertBeforeMenuHidden$(accessor,"row")}}__name(InsertRowBeforeMenuItemFactory,"InsertRowBeforeMenuItemFactory");function InsertRowAfterMenuItemFactory(accessor){return{id:sheets.InsertRowAfterCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.insertRow",icon:"InsertRowBelow",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertRowPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getInsertAfterMenuHidden$(accessor,"row")}}__name(InsertRowAfterMenuItemFactory,"InsertRowAfterMenuItemFactory");function InsertColBeforeMenuItemFactory(accessor){return{id:sheets.InsertColBeforeCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.insertColumnBefore",icon:"LeftInsertColumn",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertColumnPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getInsertBeforeMenuHidden$(accessor,"col")}}__name(InsertColBeforeMenuItemFactory,"InsertColBeforeMenuItemFactory");function InsertColAfterMenuItemFactory(accessor){return{id:sheets.InsertColAfterCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.insertColumn",icon:"RightInsertColumn",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertColumnPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getInsertAfterMenuHidden$(accessor,"col")}}__name(InsertColAfterMenuItemFactory,"InsertColAfterMenuItemFactory");function InsertRangeMoveRightMenuItemFactory(accessor){return{id:InsertRangeMoveRightConfirmCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.moveRight",icon:"InsertCellShiftRight",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getCellMenuHidden$(accessor,"col")}}__name(InsertRangeMoveRightMenuItemFactory,"InsertRangeMoveRightMenuItemFactory");function InsertRangeMoveDownMenuItemFactory(accessor){return{id:InsertRangeMoveDownConfirmCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.moveDown",icon:"InsertCellDown",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getCellMenuHidden$(accessor,"row")}}__name(InsertRangeMoveDownMenuItemFactory,"InsertRangeMoveDownMenuItemFactory");function CellMergeMenuItemFactory(accessor){const editDisabled$=getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),selectionsHasCross$=getSheetSelectionsDisabled$(accessor);return{id:AddWorksheetMergeCommand.id,icon:"MergeAllSingle",tooltip:"toolbar.mergeCell.main",type:ui.MenuItemType.SUBITEMS,hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:editDisabled$.pipe(rxjs.combineLatestWith(selectionsHasCross$),rxjs.map(([disable,hasCross])=>disable||hasCross))}}__name(CellMergeMenuItemFactory,"CellMergeMenuItemFactory");function CellMergeAllMenuItemFactory(accessor){return{id:AddWorksheetMergeAllCommand.id,type:ui.MenuItemType.BUTTON,title:"merge.all",icon:"MergeAllSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CellMergeAllMenuItemFactory,"CellMergeAllMenuItemFactory");function CellMergeVerticalMenuItemFactory(accessor){return{id:AddWorksheetMergeVerticalCommand.id,type:ui.MenuItemType.BUTTON,title:"merge.vertical",icon:"VerticalIntegrationSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CellMergeVerticalMenuItemFactory,"CellMergeVerticalMenuItemFactory");function CellMergeHorizontalMenuItemFactory(accessor){return{id:AddWorksheetMergeHorizontalCommand.id,type:ui.MenuItemType.BUTTON,title:"merge.horizontal",icon:"HorizontalMergeSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CellMergeHorizontalMenuItemFactory,"CellMergeHorizontalMenuItemFactory");function CellMergeCancelMenuItemFactory(accessor){return{id:sheets.RemoveWorksheetMergeCommand.id,type:ui.MenuItemType.BUTTON,title:"merge.cancel",icon:"CancelMergeSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CellMergeCancelMenuItemFactory,"CellMergeCancelMenuItemFactory");function getAddPermissionHidden$(accessor){const workbook$=accessor.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_2])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{if(!worksheet)return rxjs.of(!0);const rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),selectionManagerService=accessor.get(sheets.SheetsSelectionsService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,rangeProtectionRuleModel.ruleChange$,worksheetRuleModel.ruleChange$).pipe(rxjs.map(()=>{const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),subUnitRuleList=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId),selections=selectionManagerService.getCurrentSelections(),selectionsRanges=selections==null?void 0:selections.map(selection=>selection.range),ruleRanges=subUnitRuleList.map(rule=>rule.ranges).flat();if(!selectionsRanges)return!1;const worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId);return worksheetRule!=null&&worksheetRule.permissionId?!0:selectionsRanges==null?void 0:selectionsRanges.some(selectionRange=>ruleRanges.some(ruleRange=>core.Rectangle.intersects(selectionRange,ruleRange)))}))})):rxjs.of(!0)))}__name(getAddPermissionHidden$,"getAddPermissionHidden$");function getEditPermissionHidden$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),rangeRuleModel=accessor.get(sheets.RangeProtectionRuleModel),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_2])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{if(!worksheet)return rxjs.of(!0);const rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),permissionService=accessor.get(core.IPermissionService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,rangeProtectionRuleModel.ruleChange$,worksheetRuleModel.ruleChange$).pipe(rxjs.map(()=>{var _a61,_b;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),subUnitRuleList=rangeRuleModel.getSubunitRuleList(unitId,subUnitId),selectionRanges=(_a61=selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(selection=>selection.range);if(subUnitRuleList.map(rule=>rule.ranges).flat(),!(selectionRanges!=null&&selectionRanges.length)||selectionRanges.length>1)return!0;const selectionRange=selectionRanges[0];if((selectionRange==null?void 0:selectionRange.rangeType)===core.RANGE_TYPE.ALL||(selectionRange==null?void 0:selectionRange.rangeType)===core.RANGE_TYPE.COLUMN||(selectionRange==null?void 0:selectionRange.rangeType)===core.RANGE_TYPE.ROW)return!0;const worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId)return((_b=permissionService.getPermissionPoint(new sheets.WorksheetManageCollaboratorPermission(unitId,subUnitId).id))==null?void 0:_b.value)===!1;if(subUnitRuleList.filter(rule=>rule.ranges.some(range=>core.Rectangle.intersects(range,selectionRange))).length!==1)return!0;const{startRow,endRow,startColumn,endColumn}=selectionRange,rangeProtectionCache=accessor.get(sheets.RangeProtectionCache);for(let i=startRow;i<=endRow;i++)for(let j=startColumn;j<=endColumn;j++){const cellInfo=rangeProtectionCache.getCellInfo(unitId,subUnitId,i,j);if(cellInfo)return cellInfo[sheets.UnitAction.ManageCollaborator]===!1}return!1}))})):rxjs.of(!0)))}__name(getEditPermissionHidden$,"getEditPermissionHidden$");function getPermissionDisableBase$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_2])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a61;if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),selectionProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),permission$=(_a61=permissionService.composePermission$([new sheets.WorkbookEditablePermission(unitId).id]).pipe(rxjs.map(permissions=>permissions.every(permission=>permission.value))))!=null?_a61:rxjs.of(!1),ruleChange$=rxjs.merge(selectionProtectionRuleModel.ruleChange$,worksheetProtectionRuleModel.ruleChange$).pipe(rxjs.startWith(null));return rxjs.combineLatest([permission$,ruleChange$,selectionManagerService.selectionMoveEnd$]).pipe(rxjs.map(([permission,_22,__])=>{if(!permission)return!0;const selections=selectionManagerService.getCurrentSelections(),selectionRanges=selections==null?void 0:selections.map(selection=>selection.range);return selectionRanges!=null&&selectionRanges.length?selectionRanges.length>1:!1}))})):rxjs.of(!0)))}__name(getPermissionDisableBase$,"getPermissionDisableBase$");function getAddPermissionDisableBase$(accessor){var _a61;const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService),editorBridgeService=accessor.has(IEditorBridgeService)?accessor.get(IEditorBridgeService):null,formulaEditorFocus$=accessor.get(core.IContextService).subscribeContextValue$(core.FOCUSING_FX_BAR_EDITOR),editorVisible$=(_a61=editorBridgeService==null?void 0:editorBridgeService.visible$)!=null?_a61:rxjs.of(null);return rxjs.combineLatest([workbook$,userManagerService.currentUser$,editorVisible$,formulaEditorFocus$]).pipe(rxjs.switchMap(([workbook,_2,visible,formulaEditorFocus])=>!workbook||visible!=null&&visible.visible&&visible.unitId===workbook.getUnitId()||formulaEditorFocus?rxjs.of(!0):workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a62;if(!worksheet)return rxjs.of(!0);const focusingDrawing$=accessor.get(core.IContextService).subscribeContextValue$(core.FOCUSING_COMMON_DRAWINGS).pipe(rxjs.startWith(!1)),unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),selectionProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),permission$=(_a62=permissionService.composePermission$([new sheets.WorkbookCreateProtectPermission(unitId).id]).pipe(rxjs.map(permissions=>permissions.every(permission=>permission.value))))!=null?_a62:rxjs.of(!1),ruleChange$=rxjs.merge(selectionProtectionRuleModel.ruleChange$,worksheetProtectionRuleModel.ruleChange$).pipe(rxjs.startWith(null));return rxjs.combineLatest([permission$,ruleChange$,selectionManagerService.selectionMoveEnd$,focusingDrawing$]).pipe(rxjs.map(([permission,_22,__,focus])=>{if(!permission||focus)return!0;const selections=selectionManagerService.getCurrentSelections(),selectionRanges=selections==null?void 0:selections.map(selection=>selection.range);if(!(selectionRanges!=null&&selectionRanges.length))return!0;const worksheetRule=worksheetProtectionRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId)return!0;const subunitRuleList=selectionProtectionRuleModel.getSubunitRuleList(unitId,subUnitId);return selectionRanges==null?void 0:selectionRanges.some(selectionRange=>subunitRuleList.some(rule=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(selectionRange,ruleRange))))}))}))))}__name(getAddPermissionDisableBase$,"getAddPermissionDisableBase$");function getAddPermissionFromSheetBarDisable$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_2])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a61;if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),selectionProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),permission$=(_a61=permissionService.composePermission$([new sheets.WorkbookCreateProtectPermission(unitId).id]).pipe(rxjs.map(permissions=>permissions.every(permission=>permission.value))))!=null?_a61:rxjs.of(!1),ruleChange$=rxjs.merge(selectionProtectionRuleModel.ruleChange$,worksheetProtectionRuleModel.ruleChange$).pipe(rxjs.startWith(null));return rxjs.combineLatest([permission$,ruleChange$]).pipe(rxjs.map(([permission,_22])=>{var _a62;if(!permission)return!0;const worksheetRule=worksheetProtectionRuleModel.getRule(unitId,subUnitId);return worksheetRule!=null&&worksheetRule.permissionId?!0:((_a62=selectionProtectionRuleModel.getSubunitRuleList(unitId,subUnitId))==null?void 0:_a62.filter(item=>item==null?void 0:item.permissionId)).length>0}))})):rxjs.of(!0)))}__name(getAddPermissionFromSheetBarDisable$,"getAddPermissionFromSheetBarDisable$");function getRemovePermissionFromSheetBarDisable$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_2])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel);return worksheetProtectionRuleModel.ruleChange$.pipe(rxjs.startWith(null)).pipe(rxjs.map(()=>{var _a61;return worksheetProtectionRuleModel.getRule(unitId,subUnitId)?((_a61=permissionService.getPermissionPoint(new sheets.WorksheetDeleteProtectionPermission(unitId,subUnitId).id))==null?void 0:_a61.value)===!1:!0}))})):rxjs.of(!0)))}__name(getRemovePermissionFromSheetBarDisable$,"getRemovePermissionFromSheetBarDisable$");function getSetPermissionFromSheetBarDisable$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_2])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a61;if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),selectionProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),permission$=(_a61=permissionService.composePermission$([new sheets.WorkbookCreateProtectPermission(unitId).id,new sheets.WorkbookManageCollaboratorPermission(unitId).id]).pipe(rxjs.map(permissions=>permissions.every(permission=>permission.value))))!=null?_a61:rxjs.of(!1),worksheetRuleChange$=worksheetProtectionRuleModel.ruleChange$.pipe(rxjs.startWith(null)),selectionRuleChange$=selectionProtectionRuleModel.ruleChange$.pipe(rxjs.startWith(null));return rxjs.combineLatest([permission$,worksheetRuleChange$,selectionRuleChange$]).pipe(rxjs.map(([permission,_22,__])=>{if(!permission)return!0;const subUnitId=worksheet.getSheetId(),worksheetRule=worksheetProtectionRuleModel.getRule(unitId,subUnitId),selectionRuleList=selectionProtectionRuleModel.getSubunitRuleList(unitId,subUnitId);return!(worksheetRule||selectionRuleList.length)}))})):rxjs.of(!0)))}__name(getSetPermissionFromSheetBarDisable$,"getSetPermissionFromSheetBarDisable$");function getRemovePermissionDisable$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_2])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),sheetSelectionsService=accessor.get(sheets.SheetsSelectionsService),selectionProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),changes$=rxjs.merge(selectionProtectionRuleModel.ruleChange$,worksheetProtectionRuleModel.ruleChange$,sheetSelectionsService.selectionMoveEnd$).pipe(rxjs.startWith(null));return rxjs.combineLatest([changes$]).pipe(rxjs.map(([_22])=>{var _a61;const selections=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections(),selectionRanges=selections==null?void 0:selections.map(selection=>selection.range);if(!(selectionRanges!=null&&selectionRanges.length)||selectionRanges.length>1)return!0;const selectionRange=selectionRanges[0];if((selectionRange==null?void 0:selectionRange.rangeType)===core.RANGE_TYPE.ALL||(selectionRange==null?void 0:selectionRange.rangeType)===core.RANGE_TYPE.COLUMN||(selectionRange==null?void 0:selectionRange.rangeType)===core.RANGE_TYPE.ROW)return!0;const worksheetRule=worksheetProtectionRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId)return((_a61=permissionService.getPermissionPoint(new sheets.WorksheetDeleteProtectionPermission(unitId,subUnitId).id))==null?void 0:_a61.value)===!1;if(selectionProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.ranges.some(range=>core.Rectangle.intersects(range,selectionRange))).length!==1)return!0;const{startRow,endRow,startColumn,endColumn}=selectionRange,rangeProtectionCache=accessor.get(sheets.RangeProtectionCache);for(let i=startRow;i<=endRow;i++)for(let j=startColumn;j<=endColumn;j++){const cellInfo=rangeProtectionCache.getCellInfo(unitId,subUnitId,i,j);if(cellInfo)return cellInfo[sheets.UnitAction.Delete]===!1}return!1}))})):rxjs.of(!0)))}__name(getRemovePermissionDisable$,"getRemovePermissionDisable$");function getViewPermissionDisable$(accessor){var _a61;const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService),editorBridgeService=accessor.has(IEditorBridgeService)?accessor.get(IEditorBridgeService):null,formulaEditorFocus$=accessor.get(core.IContextService).subscribeContextValue$(core.FOCUSING_FX_BAR_EDITOR),editorVisible$=(_a61=editorBridgeService==null?void 0:editorBridgeService.visible$)!=null?_a61:rxjs.of(null);return rxjs.combineLatest([workbook$,userManagerService.currentUser$,editorVisible$,formulaEditorFocus$]).pipe(rxjs.switchMap(([workbook,_2,visible,formulaEditorFocus])=>!workbook||visible!=null&&visible.visible&&visible.unitId===workbook.getUnitId()||formulaEditorFocus?rxjs.of(!0):workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a62,_b;if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId();return((_b=(_a62=permissionService.getPermissionPoint$(new sheets.WorkbookEditablePermission(unitId).id))==null?void 0:_a62.pipe(rxjs.map(e=>!!e.value)))!=null?_b:rxjs.of(!1)).pipe(rxjs.map(permission=>!permission))}))))}__name(getViewPermissionDisable$,"getViewPermissionDisable$");const SHEET_PERMISSION_CONTEXT_MENU_ID="sheet.contextMenu.permission";function sheetPermissionToolbarMenuFactory(accessor){return{id:AddRangeProtectionFromToolbarCommand.id,type:ui.MenuItemType.BUTTON,icon:permissionMenuIconKey,tooltip:"permission.toolbarMenu",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getAddPermissionDisableBase$(accessor)}}__name(sheetPermissionToolbarMenuFactory,"sheetPermissionToolbarMenuFactory");function sheetPermissionContextMenuFactory(accessor){return{id:SHEET_PERMISSION_CONTEXT_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.protectRange",icon:permissionLockIconKey,hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionContextMenuFactory,"sheetPermissionContextMenuFactory");function sheetPermissionAddProtectContextMenuFactory(accessor){return{id:AddRangeProtectionFromContextMenuCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.turnOnProtectRange",hidden$:getAddPermissionHidden$(accessor),disabled$:getAddPermissionDisableBase$(accessor)}}__name(sheetPermissionAddProtectContextMenuFactory,"sheetPermissionAddProtectContextMenuFactory");function sheetPermissionEditProtectContextMenuFactory(accessor){return{id:SetRangeProtectionFromContextMenuCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.editProtectRange",disabled$:getPermissionDisableBase$(accessor),hidden$:getEditPermissionHidden$(accessor)}}__name(sheetPermissionEditProtectContextMenuFactory,"sheetPermissionEditProtectContextMenuFactory");function sheetPermissionRemoveProtectContextMenuFactory(accessor){return{id:DeleteRangeProtectionFromContextMenuCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.removeProtectRange",disabled$:getRemovePermissionDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionRemoveProtectContextMenuFactory,"sheetPermissionRemoveProtectContextMenuFactory");function sheetPermissionViewAllProtectRuleContextMenuFactory(accessor){return{id:ViewSheetPermissionFromContextMenuCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.viewAllProtectArea",disabled$:getViewPermissionDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionViewAllProtectRuleContextMenuFactory,"sheetPermissionViewAllProtectRuleContextMenuFactory");function sheetPermissionProtectSheetInSheetBarMenuFactory(accessor){return{id:AddRangeProtectionFromSheetBarCommand.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.addProtectSheet",disabled$:getAddPermissionFromSheetBarDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionProtectSheetInSheetBarMenuFactory,"sheetPermissionProtectSheetInSheetBarMenuFactory");function sheetPermissionRemoveProtectionSheetBarMenuFactory(accessor){return{id:DeleteWorksheetProtectionFormSheetBarCommand.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.removeProtectSheet",disabled$:getRemovePermissionFromSheetBarDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionRemoveProtectionSheetBarMenuFactory,"sheetPermissionRemoveProtectionSheetBarMenuFactory");function sheetPermissionChangeSheetPermissionSheetBarMenuFactory(accessor){return{id:ChangeSheetProtectionFromSheetBarCommand.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.changeSheetPermission",disabled$:getSetPermissionFromSheetBarDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionChangeSheetPermissionSheetBarMenuFactory,"sheetPermissionChangeSheetPermissionSheetBarMenuFactory");function sheetPermissionViewAllProtectRuleSheetBarMenuFactory(accessor){return{id:ViewSheetPermissionFromSheetBarCommand.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.viewAllProtectArea",disabled$:getViewPermissionDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionViewAllProtectRuleSheetBarMenuFactory,"sheetPermissionViewAllProtectRuleSheetBarMenuFactory");function DeleteSheetMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),defaultDisable$=new rxjs.Observable(subscriber=>{const disposable=commandService.onCommandExecuted(c=>{const id=c.id;(id===sheets.RemoveSheetMutation.id||id===sheets.InsertSheetMutation.id||id===sheets.SetWorksheetHideMutation.id)&&disableFunction(univerInstanceService,subscriber)});return disableFunction(univerInstanceService,subscriber),disposable.dispose}),permissionDisable$=getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission,sheets.WorkbookDeleteSheetPermission]);return{id:RemoveSheetConfirmCommand.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.delete",disabled$:rxjs.combineLatest([defaultDisable$,permissionDisable$]).pipe(rxjs.map(([defaultDisabled,permissionDisabled])=>defaultDisabled||permissionDisabled)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(DeleteSheetMenuItemFactory,"DeleteSheetMenuItemFactory");function CopySheetMenuItemFactory(accessor){return{id:sheets.CopySheetCommand.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.copy",disabled$:getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission,sheets.WorkbookCreateSheetPermission]),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CopySheetMenuItemFactory,"CopySheetMenuItemFactory");function RenameSheetMenuItemFactory(accessor){return{id:RenameSheetOperation.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.rename",disabled$:getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission,sheets.WorkbookRenameSheetPermission]),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(RenameSheetMenuItemFactory,"RenameSheetMenuItemFactory");function ChangeColorSheetMenuItemFactory(accessor){return{id:sheets.SetTabColorCommand.id,title:"sheetConfig.changeColor",type:ui.MenuItemType.SELECTOR,selections:[{label:{name:COLOR_PICKER_COMPONENT,hoverable:!1}}],hidden$:getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission])}}__name(ChangeColorSheetMenuItemFactory,"ChangeColorSheetMenuItemFactory");function HideSheetMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService);return{id:sheets.SetWorksheetHideCommand.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.hide",disabled$:new rxjs.Observable(subscriber=>{const disposable=commandService.onCommandExecuted(c=>{const id=c.id;(id===sheets.RemoveSheetMutation.id||id===sheets.InsertSheetMutation.id||id===sheets.SetWorksheetHideMutation.id)&&disableFunction(univerInstanceService,subscriber)});return disableFunction(univerInstanceService,subscriber),disposable.dispose}).pipe(rxjs.combineLatestWith(getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission,sheets.WorkbookHideSheetPermission])),rxjs.map(([defaultDisabled,permissionDisabled])=>defaultDisabled||permissionDisabled)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(HideSheetMenuItemFactory,"HideSheetMenuItemFactory");function ShowMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService);return{id:ShowMenuListCommand.id,type:ui.MenuItemType.BUTTON,title:"sheetConfig.unhide",disabled$:new rxjs.Observable(subscriber=>{function disableFunction2(){const worksheets=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getWorksheets(),visibleSheets=Array.from(worksheets.values());subscriber.next(visibleSheets.length===1)}__name(disableFunction2,"disableFunction2");const disposable=commandService.onCommandExecuted(c=>{const id=c.id;(id===sheets.RemoveSheetMutation.id||id===sheets.InsertSheetMutation.id||id===sheets.SetWorksheetHideMutation.id)&&disableFunction2()});return disableFunction2(),disposable.dispose}).pipe(rxjs.combineLatestWith(getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission,sheets.WorkbookHideSheetPermission])),rxjs.map(([defaultDisabled,permissionDisabled])=>defaultDisabled||permissionDisabled)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ShowMenuItemFactory,"ShowMenuItemFactory");function disableFunction(univerInstanceService,subscriber){const worksheets=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getWorksheets(),visibleSheets=Array.from(worksheets.values()).filter(sheet=>sheet.getConfig().hidden===core.BooleanNumber.FALSE);subscriber.next(visibleSheets.length===1)}__name(disableFunction,"disableFunction");const menuSchema$1={[ui.RibbonStartGroup.FORMAT]:{[SetOnceFormatPainterCommand.id]:{order:0,menuItemFactory:FormatPainterMenuItemFactory},[SetRangeBoldCommand.id]:{order:1,menuItemFactory:BoldMenuItemFactory},[SetRangeItalicCommand.id]:{order:2,menuItemFactory:ItalicMenuItemFactory},[SetRangeUnderlineCommand.id]:{order:3,menuItemFactory:UnderlineMenuItemFactory},[SetRangeStrickThroughCommand.id]:{order:4,menuItemFactory:StrikeThroughMenuItemFactory},[SetRangeFontFamilyCommand.id]:{order:5,menuItemFactory:FontFamilySelectorMenuItemFactory},[SetRangeFontSizeCommand.id]:{order:6,menuItemFactory:FontSizeSelectorMenuItemFactory},[SetRangeTextColorCommand.id]:{order:7,menuItemFactory:TextColorSelectorMenuItemFactory,[sheets.ResetTextColorCommand.id]:{order:0,menuItemFactory:ResetTextColorMenuItemFactory}},[sheets.SetBackgroundColorCommand.id]:{order:9,menuItemFactory:BackgroundColorSelectorMenuItemFactory,[sheets.ResetBackgroundColorCommand.id]:{order:0,menuItemFactory:ResetBackgroundColorMenuItemFactory}},[sheets.SetBorderBasicCommand.id]:{order:10,menuItemFactory:CellBorderSelectorMenuItemFactory}},[ui.RibbonStartGroup.LAYOUT]:{[sheets.AddWorksheetMergeCommand.id]:{order:0,menuItemFactory:CellMergeMenuItemFactory,[sheets.AddWorksheetMergeAllCommand.id]:{order:0,menuItemFactory:CellMergeAllMenuItemFactory},[sheets.AddWorksheetMergeVerticalCommand.id]:{order:1,menuItemFactory:CellMergeVerticalMenuItemFactory},[sheets.AddWorksheetMergeHorizontalCommand.id]:{order:2,menuItemFactory:CellMergeHorizontalMenuItemFactory},[sheets.RemoveWorksheetMergeCommand.id]:{order:3,menuItemFactory:CellMergeCancelMenuItemFactory}},[sheets.SetHorizontalTextAlignCommand.id]:{order:1,menuItemFactory:HorizontalAlignMenuItemFactory},[sheets.SetVerticalTextAlignCommand.id]:{order:1,menuItemFactory:VerticalAlignMenuItemFactory},[sheets.SetTextWrapCommand.id]:{order:2,menuItemFactory:WrapTextMenuItemFactory},[sheets.SetTextRotationCommand.id]:{order:3,menuItemFactory:TextRotateMenuItemFactory}},[ui.RibbonStartGroup.OTHERS]:{[AddRangeProtectionFromToolbarCommand.id]:{order:0,menuItemFactory:sheetPermissionToolbarMenuFactory}},[ui.ContextMenuPosition.MAIN_AREA]:{[ui.ContextMenuGroup.FORMAT]:{[SheetCopyCommand.name]:{order:0,menuItemFactory:CopyMenuItemFactory},[SheetPasteCommand.name]:{order:2,menuItemFactory:PasteMenuItemFactory},[PASTE_SPECIAL_MENU_ID]:{order:3,menuItemFactory:PasteSpacialMenuItemFactory,[SheetPasteValueCommand.id]:{order:0,menuItemFactory:PasteValueMenuItemFactory},[SheetPasteFormatCommand.id]:{order:1,menuItemFactory:PasteFormatMenuItemFactory},[SheetPasteColWidthCommand.id]:{order:2,menuItemFactory:PasteColWidthMenuItemFactory},[SheetPasteBesidesBorderCommand.id]:{order:3,menuItemFactory:PasteBesidesBorderMenuItemFactory}},[CLEAR_SELECTION_MENU_ID]:{order:4,menuItemFactory:ClearSelectionMenuItemFactory,[sheets.ClearSelectionContentCommand.id]:{order:0,menuItemFactory:ClearSelectionContentMenuItemFactory},[sheets.ClearSelectionFormatCommand.id]:{order:1,menuItemFactory:ClearSelectionFormatMenuItemFactory},[sheets.ClearSelectionAllCommand.id]:{order:2,menuItemFactory:ClearSelectionAllMenuItemFactory}}},[ui.ContextMenuGroup.LAYOUT]:{order:1,[CELL_INSERT_MENU_ID]:{order:0,menuItemFactory:CellInsertMenuItemFactory,[sheets.InsertRowBeforeCommand.id]:{order:0,menuItemFactory:InsertRowBeforeMenuItemFactory},[sheets.InsertColBeforeCommand.id]:{order:1,menuItemFactory:InsertColBeforeMenuItemFactory},[InsertRangeMoveRightConfirmCommand.id]:{order:2,menuItemFactory:InsertRangeMoveRightMenuItemFactory},[InsertRangeMoveDownConfirmCommand.id]:{order:3,menuItemFactory:InsertRangeMoveDownMenuItemFactory}},[DELETE_RANGE_MENU_ID]:{order:0,menuItemFactory:DeleteRangeMenuItemFactory,[RemoveColConfirmCommand.id]:{order:0,menuItemFactory:RemoveColMenuItemFactory},[RemoveRowConfirmCommand.id]:{order:1,menuItemFactory:RemoveRowMenuItemFactory},[DeleteRangeMoveLeftConfirmCommand.id]:{order:2,menuItemFactory:DeleteRangeMoveLeftMenuItemFactory},[DeleteRangeMoveUpConfirmCommand.id]:{order:3,menuItemFactory:DeleteRangeMoveUpMenuItemFactory}},[SHEET_FROZEN_MENU_ID]:{order:2,menuItemFactory:SheetFrozenMenuItemFactory,[SetSelectionFrozenCommand.id]:{order:0,menuItemFactory:FrozenMenuItemFactory},[SetRowFrozenCommand.id]:{order:1,menuItemFactory:FrozenRowMenuItemFactory},[SetColumnFrozenCommand.id]:{order:2,menuItemFactory:FrozenColMenuItemFactory},[sheets.CancelFrozenCommand.id]:{order:3,menuItemFactory:CancelFrozenMenuItemFactory}},[SHEET_PERMISSION_CONTEXT_MENU_ID]:{order:3,menuItemFactory:sheetPermissionContextMenuFactory,[AddRangeProtectionFromContextMenuCommand.id]:{order:0,menuItemFactory:sheetPermissionAddProtectContextMenuFactory},[SetRangeProtectionFromContextMenuCommand.id]:{order:1,menuItemFactory:sheetPermissionEditProtectContextMenuFactory},[DeleteRangeProtectionFromContextMenuCommand.id]:{order:2,menuItemFactory:sheetPermissionRemoveProtectContextMenuFactory},[ViewSheetPermissionFromContextMenuCommand.id]:{order:3,menuItemFactory:sheetPermissionViewAllProtectRuleContextMenuFactory}}},[ui.ContextMenuGroup.DATA]:{order:2},[ui.ContextMenuGroup.OTHERS]:{order:3}},[ui.ContextMenuPosition.COL_HEADER]:{[ui.ContextMenuGroup.FORMAT]:{[SheetCopyCommand.name]:{order:0,menuItemFactory:CopyMenuItemFactory},[SheetPasteCommand.name]:{order:2,menuItemFactory:PasteMenuItemFactory},[PASTE_SPECIAL_MENU_ID]:{order:3,menuItemFactory:PasteSpacialMenuItemFactory,[SheetPasteValueCommand.id]:{order:0,menuItemFactory:PasteValueMenuItemFactory},[SheetPasteFormatCommand.id]:{order:1,menuItemFactory:PasteFormatMenuItemFactory},[SheetPasteColWidthCommand.id]:{order:2,menuItemFactory:PasteColWidthMenuItemFactory},[SheetPasteBesidesBorderCommand.id]:{order:3,menuItemFactory:PasteBesidesBorderMenuItemFactory}},[CLEAR_SELECTION_MENU_ID]:{order:4,menuItemFactory:ClearSelectionMenuItemFactory,[sheets.ClearSelectionContentCommand.id]:{order:0,menuItemFactory:ClearSelectionContentMenuItemFactory},[sheets.ClearSelectionFormatCommand.id]:{order:1,menuItemFactory:ClearSelectionFormatMenuItemFactory},[sheets.ClearSelectionAllCommand.id]:{order:2,menuItemFactory:ClearSelectionAllMenuItemFactory}}},[ui.ContextMenuGroup.LAYOUT]:{order:1,[COL_INSERT_MENU_ID]:{order:0,menuItemFactory:ColInsertMenuItemFactory,[sheets.InsertColBeforeCommand.id]:{order:0,menuItemFactory:InsertColBeforeMenuItemFactory},[sheets.InsertColAfterCommand.id]:{order:1,menuItemFactory:InsertColAfterMenuItemFactory}},[HideColConfirmCommand.id]:{order:1,menuItemFactory:HideColMenuItemFactory},[sheets.SetSelectedColsVisibleCommand.id]:{order:2,menuItemFactory:ShowColMenuItemFactory},[RemoveColConfirmCommand.id]:{order:2,menuItemFactory:RemoveColMenuItemFactory},[sheets.SetColWidthCommand.id]:{order:3,menuItemFactory:SetColWidthMenuItemFactory},[SetWorksheetColAutoWidthCommand.id]:{order:4,menuItemFactory:ColAutoWidthMenuItemFactory},[SHEET_FROZEN_HEADER_MENU_ID]:{order:5,menuItemFactory:SheetFrozenHeaderMenuItemFactory,[SetSelectionFrozenCommand.id]:{order:0,menuItemFactory:FrozenMenuItemFactory},[sheets.CancelFrozenCommand.id]:{order:3,menuItemFactory:CancelFrozenMenuItemFactory}},[SHEET_PERMISSION_CONTEXT_MENU_ID]:{order:6,menuItemFactory:sheetPermissionContextMenuFactory,[AddRangeProtectionFromContextMenuCommand.id]:{order:0,menuItemFactory:sheetPermissionAddProtectContextMenuFactory},[SetRangeProtectionFromContextMenuCommand.id]:{order:1,menuItemFactory:sheetPermissionEditProtectContextMenuFactory},[DeleteRangeProtectionFromContextMenuCommand.id]:{order:2,menuItemFactory:sheetPermissionRemoveProtectContextMenuFactory},[ViewSheetPermissionFromContextMenuCommand.id]:{order:3,menuItemFactory:sheetPermissionViewAllProtectRuleContextMenuFactory}}},[ui.ContextMenuGroup.DATA]:{order:2},[ui.ContextMenuGroup.OTHERS]:{order:3}},[ui.ContextMenuPosition.ROW_HEADER]:{[ui.ContextMenuGroup.FORMAT]:{[SheetCopyCommand.name]:{order:0,menuItemFactory:CopyMenuItemFactory},[SheetPasteCommand.name]:{order:2,menuItemFactory:PasteMenuItemFactory},[PASTE_SPECIAL_MENU_ID]:{order:3,menuItemFactory:PasteSpacialMenuItemFactory,[SheetPasteValueCommand.id]:{order:0,menuItemFactory:PasteValueMenuItemFactory},[SheetPasteFormatCommand.id]:{order:1,menuItemFactory:PasteFormatMenuItemFactory},[SheetPasteColWidthCommand.id]:{order:2,menuItemFactory:PasteColWidthMenuItemFactory},[SheetPasteBesidesBorderCommand.id]:{order:3,menuItemFactory:PasteBesidesBorderMenuItemFactory}},[CLEAR_SELECTION_MENU_ID]:{order:4,menuItemFactory:ClearSelectionMenuItemFactory,[sheets.ClearSelectionContentCommand.id]:{order:0,menuItemFactory:ClearSelectionContentMenuItemFactory},[sheets.ClearSelectionFormatCommand.id]:{order:1,menuItemFactory:ClearSelectionFormatMenuItemFactory},[sheets.ClearSelectionAllCommand.id]:{order:2,menuItemFactory:ClearSelectionAllMenuItemFactory}}},[ui.ContextMenuGroup.LAYOUT]:{order:1,[ROW_INSERT_MENU_ID]:{order:0,menuItemFactory:RowInsertMenuItemFactory,[sheets.InsertRowBeforeCommand.id]:{order:0,menuItemFactory:InsertRowBeforeMenuItemFactory},[sheets.InsertRowAfterCommand.id]:{order:1,menuItemFactory:InsertRowAfterMenuItemFactory}},[RemoveRowConfirmCommand.id]:{order:1,menuItemFactory:RemoveRowMenuItemFactory},[HideRowConfirmCommand.id]:{order:2,menuItemFactory:HideRowMenuItemFactory},[sheets.SetSelectedRowsVisibleCommand.id]:{order:2,menuItemFactory:ShowRowMenuItemFactory},[sheets.SetRowHeightCommand.id]:{order:3,menuItemFactory:SetRowHeightMenuItemFactory},[sheets.SetWorksheetRowIsAutoHeightCommand.id]:{order:4,menuItemFactory:FitContentMenuItemFactory},[SHEET_FROZEN_HEADER_MENU_ID]:{order:5,menuItemFactory:SheetFrozenHeaderMenuItemFactory,[SetSelectionFrozenCommand.id]:{order:0,menuItemFactory:FrozenMenuItemFactory},[sheets.CancelFrozenCommand.id]:{order:3,menuItemFactory:CancelFrozenMenuItemFactory}},[SHEET_PERMISSION_CONTEXT_MENU_ID]:{order:6,menuItemFactory:sheetPermissionContextMenuFactory,[AddRangeProtectionFromContextMenuCommand.id]:{order:0,menuItemFactory:sheetPermissionAddProtectContextMenuFactory},[SetRangeProtectionFromContextMenuCommand.id]:{order:1,menuItemFactory:sheetPermissionEditProtectContextMenuFactory},[DeleteRangeProtectionFromContextMenuCommand.id]:{order:2,menuItemFactory:sheetPermissionRemoveProtectContextMenuFactory},[ViewSheetPermissionFromContextMenuCommand.id]:{order:3,menuItemFactory:sheetPermissionViewAllProtectRuleContextMenuFactory}}},[ui.ContextMenuGroup.DATA]:{order:2},[ui.ContextMenuGroup.OTHERS]:{order:3}},[ui.ContextMenuPosition.FOOTER_TABS]:{[ui.ContextMenuGroup.OTHERS]:{order:0,[RemoveSheetConfirmCommand.id]:{order:0,menuItemFactory:DeleteSheetMenuItemFactory},[sheets.CopySheetCommand.id]:{order:1,menuItemFactory:CopySheetMenuItemFactory},[RenameSheetOperation.id]:{order:2,menuItemFactory:RenameSheetMenuItemFactory},[sheets.SetTabColorCommand.id]:{order:3,menuItemFactory:ChangeColorSheetMenuItemFactory},[sheets.SetWorksheetHideCommand.id]:{order:4,menuItemFactory:HideSheetMenuItemFactory},[ShowMenuListCommand.id]:{order:6,menuItemFactory:ShowMenuItemFactory},[AddRangeProtectionFromSheetBarCommand.id]:{order:7,menuItemFactory:sheetPermissionProtectSheetInSheetBarMenuFactory},[DeleteWorksheetProtectionFormSheetBarCommand.id]:{order:8,menuItemFactory:sheetPermissionRemoveProtectionSheetBarMenuFactory},[ChangeSheetProtectionFromSheetBarCommand.id]:{order:9,menuItemFactory:sheetPermissionChangeSheetPermissionSheetBarMenuFactory},[ViewSheetPermissionFromSheetBarCommand.id]:{order:10,menuItemFactory:sheetPermissionViewAllProtectRuleSheetBarMenuFactory}}},[ui.ContextMenuPosition.FOOTER_MENU]:{[ui.ContextMenuGroup.OTHERS]:{[sheets.ToggleGridlinesCommand.id]:{order:1,menuItemFactory:ToggleGridlinesMenuFactory}}}},SetRowHiddenShortcutItem={id:sheets.SetRowHiddenCommand.id,preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.Digit9|ui.MetaKeys.CTRL_COMMAND},SetColHiddenShortcutItem={id:sheets.SetColHiddenCommand.id,preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.Digit0|ui.MetaKeys.CTRL_COMMAND|ui.MetaKeys.SHIFT},MoveSelectionDownShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-below-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_DOWN,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.DOWN}},MoveSelectionUpShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-up-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_UP,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.UP}},MoveSelectionLeftShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-left-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_LEFT,priority:100,preconditions:whenSheetEditorFocusedAndFxNotFocused,staticParameters:{direction:core.Direction.LEFT}},MoveSelectionRightShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-right-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_RIGHT,priority:100,preconditions:whenSheetEditorFocusedAndFxNotFocused,staticParameters:{direction:core.Direction.RIGHT}},MoveSelectionTabShortcutItem={id:MoveSelectionEnterAndTabCommand.id,description:"shortcut.sheet.select-next-cell",group:"3_sheet-view",binding:ui.KeyCode.TAB,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.RIGHT,keycode:ui.KeyCode.TAB}},MoveSelectionTabLeftShortcutItem={id:MoveSelectionEnterAndTabCommand.id,description:"shortcut.sheet.select-previous-cell",group:"3_sheet-view",binding:ui.KeyCode.TAB|ui.MetaKeys.SHIFT,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.LEFT,keycode:ui.KeyCode.TAB}},MoveSelectionEnterShortcutItem={id:MoveSelectionEnterAndTabCommand.id,description:"shortcut.sheet.select-below-cell",group:"3_sheet-view",binding:ui.KeyCode.ENTER,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.DOWN,keycode:ui.KeyCode.ENTER}},MoveSelectionEnterUpShortcutItem={id:MoveSelectionEnterAndTabCommand.id,description:"shortcut.sheet.select-up-cell",group:"3_sheet-view",binding:ui.KeyCode.ENTER|ui.MetaKeys.SHIFT,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.UP,keycode:ui.KeyCode.ENTER}},MoveSelectionEndDownShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-below-value-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_DOWN|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.DOWN,jumpOver:JumpOver.moveGap}},MoveSelectionEndUpShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-up-value-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_UP|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.UP,jumpOver:JumpOver.moveGap}},MoveSelectionEndLeftShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-left-value-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_LEFT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.LEFT,jumpOver:JumpOver.moveGap}},MoveSelectionEndRightShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-right-value-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_RIGHT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.RIGHT,jumpOver:JumpOver.moveGap}},ExpandSelectionDownShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-down",group:"3_sheet-view",binding:ui.KeyCode.ARROW_DOWN|ui.MetaKeys.SHIFT,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.DOWN}},ExpandSelectionUpShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-up",group:"3_sheet-view",binding:ui.KeyCode.ARROW_UP|ui.MetaKeys.SHIFT,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.UP}},ExpandSelectionLeftShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-left",group:"3_sheet-view",binding:ui.KeyCode.ARROW_LEFT|ui.MetaKeys.SHIFT,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.LEFT}},ExpandSelectionRightShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-right",group:"3_sheet-view",binding:ui.KeyCode.ARROW_RIGHT|ui.MetaKeys.SHIFT,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.RIGHT}},ExpandSelectionEndDownShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-to-below-gap",group:"3_sheet-view",binding:ui.KeyCode.ARROW_DOWN|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.DOWN,jumpOver:JumpOver.moveGap}},ExpandSelectionEndUpShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-to-up-gap",group:"3_sheet-view",binding:ui.KeyCode.ARROW_UP|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.UP,jumpOver:JumpOver.moveGap}},ExpandSelectionEndLeftShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-to-left-gap",group:"3_sheet-view",binding:ui.KeyCode.ARROW_LEFT|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.LEFT,jumpOver:JumpOver.moveGap}},ExpandSelectionEndRightShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-to-right-gap",group:"3_sheet-view",binding:ui.KeyCode.ARROW_RIGHT|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.RIGHT,jumpOver:JumpOver.moveGap}},SelectAllShortcutItem={id:SelectAllCommand.id,description:"shortcut.sheet.select-all",group:"3_sheet-view",binding:ui.KeyCode.A|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{expandToGapFirst:!0,loop:!0}},SetBoldShortcutItem={id:SetRangeBoldCommand.id,description:"shortcut.sheet.set-bold",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.B|ui.MetaKeys.CTRL_COMMAND},SetItalicShortcutItem={id:SetRangeItalicCommand.id,description:"shortcut.sheet.set-italic",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.I|ui.MetaKeys.CTRL_COMMAND},SetUnderlineShortcutItem={id:SetRangeUnderlineCommand.id,description:"shortcut.sheet.set-underline",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.U|ui.MetaKeys.CTRL_COMMAND},SetStrikeThroughShortcutItem={id:SetRangeStrickThroughCommand.id,description:"shortcut.sheet.set-strike-through",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.X|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND},ClearSelectionValueShortcutItem={id:sheets.ClearSelectionContentCommand.id,preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.DELETE,mac:ui.KeyCode.BACKSPACE},ZoomInShortcutItem={id:ChangeZoomRatioCommand.id,description:"shortcut.sheet.zoom-in",binding:ui.KeyCode.EQUAL|ui.MetaKeys.CTRL_COMMAND,group:"3_sheet-view",preconditions:whenSheetEditorFocused,priority:1,staticParameters:{delta:.2}},PreventDefaultZoomInShortcutItem={id:core.NilCommand.id,binding:ui.KeyCode.EQUAL|ui.MetaKeys.CTRL_COMMAND},ZoomOutShortcutItem={id:ChangeZoomRatioCommand.id,description:"shortcut.sheet.zoom-out",binding:ui.KeyCode.MINUS|ui.MetaKeys.CTRL_COMMAND,group:"3_sheet-view",preconditions:whenSheetEditorFocused,priority:1,staticParameters:{delta:-.2}},PreventDefaultZoomOutShortcutItem={id:core.NilCommand.id,binding:ui.KeyCode.MINUS|ui.MetaKeys.CTRL_COMMAND},ResetZoomShortcutItem={id:ChangeZoomRatioCommand.id,description:"shortcut.sheet.reset-zoom",binding:ui.KeyCode.Digit0|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,group:"3_sheet-view",priority:1,staticParameters:{reset:!0}},PreventDefaultResetZoomShortcutItem={id:core.NilCommand.id,binding:ui.KeyCode.Digit0|ui.MetaKeys.CTRL_COMMAND};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"),_a22;exports.SheetUIController=(_a22=class extends core.Disposable{constructor(_injector,_componentManager,_layoutService,_commandService,_shortcutService,_menuManagerService,_uiPartsService,_configService){super(),this._injector=_injector,this._componentManager=_componentManager,this._layoutService=_layoutService,this._commandService=_commandService,this._shortcutService=_shortcutService,this._menuManagerService=_menuManagerService,this._uiPartsService=_uiPartsService,this._configService=_configService,this._init()}_init(){this._initComponents(),this._initCommands(),this._initMenus(),this._initShortcuts(),this._initWorkbenchParts(),this._initFocusHandler()}_initComponents(){const componentManager=this._componentManager;this.disposeWithMe(componentManager.register(MENU_ITEM_INPUT_COMPONENT,MenuItemInput)),this.disposeWithMe(componentManager.register(BORDER_PANEL_COMPONENT,BorderPanel)),this.disposeWithMe(componentManager.register(COLOR_PICKER_COMPONENT,design.ColorPicker)),this.disposeWithMe(componentManager.register(FONT_FAMILY_COMPONENT,ui.FontFamily)),this.disposeWithMe(componentManager.register(FONT_FAMILY_ITEM_COMPONENT,ui.FontFamilyItem)),this.disposeWithMe(componentManager.register(FONT_SIZE_COMPONENT,ui.FontSize)),this.disposeWithMe(componentManager.register(DEFINED_NAME_CONTAINER,DefinedNameContainer)),this.disposeWithMe(componentManager.register("HideGridlines",HideGridlines))}_initCommands(){[AddWorksheetMergeAllCommand,AddWorksheetMergeCommand,AddWorksheetMergeHorizontalCommand,AddWorksheetMergeVerticalCommand,ChangeZoomRatioCommand,ExpandSelectionCommand,MoveSelectionCommand,MoveSelectionEnterAndTabCommand,RenameSheetOperation,RemoveSheetConfirmCommand,RemoveRowConfirmCommand,RemoveColConfirmCommand,HideRowConfirmCommand,HideColConfirmCommand,ScrollCommand,ScrollToCellCommand,SelectAllCommand,SetActivateCellEditOperation,sheets.SetBoldCommand,SetCellEditVisibleArrowOperation,SetCellEditVisibleOperation,SetCellEditVisibleWithF2Operation,SetRangeBoldCommand,SetRangeItalicCommand,SetRangeUnderlineCommand,SetRangeStrickThroughCommand,SetRangeSubscriptCommand,SetRangeSuperscriptCommand,SetRangeFontSizeCommand,SetRangeFontFamilyCommand,SetRangeTextColorCommand,ResetRangeTextColorCommand,sheets.SetItalicCommand,sheets.SetStrikeThroughCommand,sheets.SetFontFamilyCommand,sheets.SetFontSizeCommand,SetFormatPainterOperation,SetInfiniteFormatPainterCommand,SetOnceFormatPainterCommand,ApplyFormatPainterCommand,SetScrollOperation,SetScrollRelativeCommand,SetSelectionFrozenCommand,SetRowFrozenCommand,SetColumnFrozenCommand,ScrollToRangeOperation,sheets.SetUnderlineCommand,SetZoomRatioCommand,SetZoomRatioOperation,ShowMenuListCommand,RefillCommand,InsertRangeMoveDownConfirmCommand,DeleteRangeMoveUpConfirmCommand,InsertRangeMoveRightConfirmCommand,DeleteRangeMoveLeftConfirmCommand,SidebarDefinedNameOperation,AutoFillCommand,AutoClearContentCommand,SheetPermissionOpenPanelOperation,SheetPermissionOpenDialogOperation,AddRangeProtectionFromToolbarCommand,AddRangeProtectionFromContextMenuCommand,ViewSheetPermissionFromContextMenuCommand,AddRangeProtectionFromSheetBarCommand,ViewSheetPermissionFromSheetBarCommand,ChangeSheetProtectionFromSheetBarCommand,DeleteRangeProtectionFromContextMenuCommand,SetRangeProtectionFromContextMenuCommand,DeleteWorksheetProtectionFormSheetBarCommand,SetWorksheetColAutoWidthCommand].forEach(c=>{this.disposeWithMe(this._commandService.registerCommand(c))})}_initMenus(){this._menuManagerService.mergeMenu(menuSchema$1)}_initShortcuts(){[MoveSelectionDownShortcutItem,MoveSelectionUpShortcutItem,MoveSelectionLeftShortcutItem,MoveSelectionRightShortcutItem,MoveSelectionTabShortcutItem,MoveSelectionTabLeftShortcutItem,MoveSelectionEnterShortcutItem,MoveSelectionEnterUpShortcutItem,MoveSelectionEndDownShortcutItem,MoveSelectionEndUpShortcutItem,MoveSelectionEndLeftShortcutItem,MoveSelectionEndRightShortcutItem,ExpandSelectionDownShortcutItem,ExpandSelectionUpShortcutItem,ExpandSelectionLeftShortcutItem,ExpandSelectionRightShortcutItem,ExpandSelectionEndDownShortcutItem,ExpandSelectionEndUpShortcutItem,ExpandSelectionEndLeftShortcutItem,ExpandSelectionEndRightShortcutItem,SelectAllShortcutItem,ZoomInShortcutItem,ZoomOutShortcutItem,ResetZoomShortcutItem,PreventDefaultResetZoomShortcutItem,PreventDefaultZoomInShortcutItem,PreventDefaultZoomOutShortcutItem,SetBoldShortcutItem,SetItalicShortcutItem,SetUnderlineShortcutItem,SetStrikeThroughShortcutItem,ClearSelectionValueShortcutItem,...generateArrowSelectionShortCutItem(),EditorCursorEnterShortcut,StartEditWithF2Shortcut,EditorCursorTabShortcut,EditorBreakLineShortcut,EditorDeleteLeftShortcut,EditorDeleteLeftShortcutInActive,EditorCursorEscShortcut,SetRowHiddenShortcutItem,SetColHiddenShortcutItem].forEach(item=>{this.disposeWithMe(this._shortcutService.registerShortcut(item))})}_initWorkbenchParts(){const uiController=this._uiPartsService,injector=this._injector,config=this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);(config==null?void 0:config.formulaBar)!==!1&&this.disposeWithMe(uiController.registerComponent(ui.BuiltInUIPart.HEADER,()=>core.connectInjector(RenderSheetHeader,injector))),this.disposeWithMe(uiController.registerComponent(ui.BuiltInUIPart.FOOTER,()=>core.connectInjector(RenderSheetFooter,injector))),this.disposeWithMe(uiController.registerComponent(ui.BuiltInUIPart.CONTENT,()=>core.connectInjector(RenderSheetContent,injector)))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(core.UniverInstanceType.UNIVER_SHEET,_unitId=>{const currentEditorRender=this._injector.get(engineRender.IRenderManagerService).getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_DOC),docSelectionRenderService=currentEditorRender==null?void 0:currentEditorRender.with(docsUi.DocSelectionRenderService);docSelectionRenderService==null||docSelectionRenderService.focus()}))}},__name(_a22,"SheetUIController"),_a22);exports.SheetUIController=__decorateClass$A([__decorateParam$A(0,core.Inject(core.Injector)),__decorateParam$A(1,core.Inject(ui.ComponentManager)),__decorateParam$A(2,ui.ILayoutService),__decorateParam$A(3,core.ICommandService),__decorateParam$A(4,ui.IShortcutService),__decorateParam$A(5,ui.IMenuManagerService),__decorateParam$A(6,ui.IUIPartsService),__decorateParam$A(7,core.IConfigService)],exports.SheetUIController);const useHighlightRange=__name((ranges=[])=>{const markSelectionService=core.useDependency(IMarkSelectionService);React.useEffect(()=>{const ids=ranges.map(range=>markSelectionService.addShape({range,style:{fill:"rgba(73, 184, 17, 0.05)",strokeWidth:1,stroke:"#49B811",widgets:{}},primary:{startColumn:range.startColumn,endColumn:range.endColumn,startRow:range.startRow,endRow:range.endRow,actualRow:range.startRow,actualColumn:range.startColumn,isMerged:!1,isMergedMainCell:!1}}));return()=>{ids.forEach(id=>{id&&markSelectionService.removeShape(id)})}},[ranges])},"useHighlightRange");var __defProp$z=Object.defineProperty,__getOwnPropDesc$z=Object.getOwnPropertyDescriptor,__decorateClass$z=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$z(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$z(target,key,result),result},"__decorateClass$z"),__decorateParam$z=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$z"),_a23;let ActiveWorksheetController=(_a23=class extends core.Disposable{constructor(_commandService,_univerInstanceService){super();__publicField(this,"_previousSheetIndex",-1);this._commandService=_commandService,this._univerInstanceService=_univerInstanceService,this.disposeWithMe(this._commandService.beforeCommandExecuted(command=>{if(command.id===sheets.RemoveSheetMutation.id)return this._beforeAdjustActiveSheetOnRemoveSheet(command)})),this.disposeWithMe(this._commandService.onCommandExecuted((command,options)=>{if(command.id===sheets.RemoveSheetMutation.id)return this._adjustActiveSheetOnRemoveSheet(command);if(command.id===sheets.SetWorksheetHideMutation.id&&command.params.hidden)return this._adjustActiveSheetOnHideSheet(command);if(options!=null&&options.fromCollab)return!1;if(command.id===sheets.InsertSheetMutation.id)return this._adjustActiveSheetOnInsertSheet(command);if(command.id===sheets.SetWorksheetHideMutation.id&&!command.params.hidden)return this._adjustActiveSheetOnShowSheet(command);if(command.id===sheets.SetSelectionsOperation.id)return this._adjustActiveSheetOnSelection(command)}))}_adjustActiveSheetOnHideSheet(mutation){var _a61;const{unitId,subUnitId}=mutation.params,workbook=this._univerInstanceService.getUniverSheetInstance(unitId);if(!workbook||((_a61=workbook.getActiveSheet())==null?void 0:_a61.getSheetId())!==subUnitId)return;const activeIndex=workbook.getActiveSheetIndex(),nextId=findTheNextUnhiddenSheet(workbook,activeIndex);this._switchToNextSheet(unitId,nextId)}_beforeAdjustActiveSheetOnRemoveSheet(mutation){const{unitId,subUnitId}=mutation.params,workbook=this._univerInstanceService.getUniverSheetInstance(unitId);if(!workbook)return;const worksheet=workbook.getSheetBySheetId(subUnitId);worksheet&&(this._previousSheetIndex=workbook.getSheetIndex(worksheet))}_adjustActiveSheetOnRemoveSheet(mutation){if(this._previousSheetIndex===-1)return;const{unitId}=mutation.params,workbook=this._univerInstanceService.getUniverSheetInstance(unitId);if(!workbook)return;if(workbook.getActiveSheet().getSheetId()===mutation.params.subUnitId){const previousIndex=this._previousSheetIndex,nextIndex=previousIndex>=1?previousIndex-1:0,nextId=findTheNextUnhiddenSheet(workbook,nextIndex);this._switchToNextSheet(unitId,nextId)}}_adjustActiveSheetOnInsertSheet(mutation){const{unitId,sheet}=mutation.params;this._switchToNextSheet(unitId,sheet.id)}_adjustActiveSheetOnShowSheet(mutation){const{unitId,subUnitId}=mutation.params;this._switchToNextSheet(unitId,subUnitId)}_adjustActiveSheetOnSelection(operation){var _a61;const{unitId,subUnitId}=operation.params;subUnitId!==((_a61=this._univerInstanceService.getUnit(unitId))==null?void 0:_a61.getActiveSheet().getSheetId())&&this._switchToNextSheet(unitId,subUnitId)}_switchToNextSheet(unitId,subUnitId){this._commandService.executeCommand(sheets.SetWorksheetActiveOperation.id,{unitId,subUnitId})}},__name(_a23,"ActiveWorksheetController"),_a23);ActiveWorksheetController=__decorateClass$z([__decorateParam$z(0,core.ICommandService),__decorateParam$z(1,core.IUniverInstanceService)],ActiveWorksheetController);function findTheNextUnhiddenSheet(workbook,startIndex){const countOfSheets=workbook.getSheetSize();for(let i=startIndex;i>-1;i--){const sheet=workbook.getSheetByIndex(i);if(!sheet.getConfig().hidden)return sheet.getSheetId()}for(let i=startIndex;i<countOfSheets;i++){const sheet=workbook.getSheetByIndex(i);if(!sheet.getConfig().hidden)return sheet.getSheetId()}throw new Error("[ActiveWorksheetController]: could not find the next unhidden sheet! Collaboration error perhaps.")}__name(findTheNextUnhiddenSheet,"findTheNextUnhiddenSheet");var __defProp$y=Object.defineProperty,__getOwnPropDesc$y=Object.getOwnPropertyDescriptor,__decorateClass$y=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$y(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$y(target,key,result),result},"__decorateClass$y"),__decorateParam$y=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$y"),_a24;exports.SheetCanvasPopManagerService=(_a24=class extends core.Disposable{constructor(_globalPopupManagerService,_renderManagerService,_univerInstanceService,_refRangeService,_commandService,_refSelectionsService,_selectionManagerService){super();__publicField(this,"_popupMenuFeatureMap",new Map);__publicField(this,"_isSelectionMoving",!1);this._globalPopupManagerService=_globalPopupManagerService,this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService,this._refRangeService=_refRangeService,this._commandService=_commandService,this._refSelectionsService=_refSelectionsService,this._selectionManagerService=_selectionManagerService,this._initMoving()}_initMoving(){this.disposeWithMe(this._refSelectionsService.selectionMoving$.subscribe(()=>{this._isSelectionMoving=!0})),this.disposeWithMe(this._refSelectionsService.selectionMoveEnd$.subscribe(()=>{this._isSelectionMoving=!1})),this.disposeWithMe(this._selectionManagerService.selectionMoving$.subscribe(()=>{this._isSelectionMoving=!0})),this.disposeWithMe(this._selectionManagerService.selectionMoveEnd$.subscribe(()=>{this._isSelectionMoving=!1}))}registerFeatureMenu(type,getPopupMenuCallBack){this._popupMenuFeatureMap.set(type,getPopupMenuCallBack)}getFeatureMenu(unitId,subUnitId,drawingId,drawingType){const callback=this._popupMenuFeatureMap.get(drawingType);if(callback)return callback(unitId,subUnitId,drawingId,drawingType)}dispose(){super.dispose(),this._popupMenuFeatureMap.clear()}_createHiddenRectObserver(params){const{row,column,worksheet,skeleton,currentRender}=params,calc=__name(()=>{var _a61,_b;const freeze=worksheet.getFreeze(),{startRow:freezeStartRow,startColumn:freezeStartColumn,xSplit,ySplit}=freeze,startRow=freezeStartRow-ySplit,startColumn=freezeStartColumn-xSplit,{rowHeightAccumulation,columnWidthAccumulation,rowHeaderWidth,columnHeaderHeight}=skeleton,canvasFreezeWidth=rowHeaderWidth+(startColumn===-1?0:columnWidthAccumulation[startColumn+xSplit-1]-((_a61=columnWidthAccumulation[startColumn-1])!=null?_a61:0)),canvasFreezeHeight=columnHeaderHeight+(startRow===-1?0:rowHeightAccumulation[startRow+ySplit-1]-((_b=rowHeightAccumulation[startRow])!=null?_b:0)),canvasElement=currentRender.engine.getCanvasElement(),canvasClientRect=canvasElement.getBoundingClientRect(),widthOfCanvas=pxToNum(canvasElement.style.width),scaleAdjust=canvasClientRect.width/widthOfCanvas,canvasScale=currentRender.scene.getAncestorScale().scaleX,freezeWidth=canvasFreezeWidth*scaleAdjust*canvasScale,freezeHeight=canvasFreezeHeight*scaleAdjust*canvasScale,viewTopLeft={left:-1/0,top:-1/0,right:canvasClientRect.left+freezeWidth,bottom:canvasClientRect.top+freezeHeight},viewTopRight={left:canvasClientRect.left+freezeWidth,top:-1/0,right:1/0,bottom:canvasClientRect.top+freezeHeight},viewBottomLeft={left:-1/0,top:canvasClientRect.top+freezeHeight,right:canvasClientRect.left+freezeWidth,bottom:1/0};return row<freezeStartRow&&column<freezeStartColumn?[]:row<freezeStartRow?[viewTopLeft]:column<freezeStartColumn?[viewTopLeft]:[viewTopLeft,viewTopRight,viewBottomLeft]},"calc"),rects=calc(),rects$=new rxjs.BehaviorSubject(rects),disposable=new core.DisposableCollection;return disposable.add(this._commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===sheets.SetFrozenMutation.id){const newRects=calc();rects$.next(newRects)}})),{rects$,disposable}}_createPositionObserver(bound,currentRender,skeleton,worksheet){const calc=__name(()=>{const{scene}=currentRender,offsetBound=transformBound2OffsetBound(bound,scene,skeleton,worksheet),canvasElement=currentRender.engine.getCanvasElement(),canvasClientRect=canvasElement.getBoundingClientRect(),widthOfCanvas=pxToNum(canvasElement.style.width),scaleAdjust=canvasClientRect.width/widthOfCanvas;return{left:offsetBound.left*scaleAdjust+canvasClientRect.left,right:offsetBound.right*scaleAdjust+canvasClientRect.left,top:offsetBound.top*scaleAdjust+canvasClientRect.top,bottom:offsetBound.bottom*scaleAdjust+canvasClientRect.top}},"calc"),position=calc(),position$=new rxjs.BehaviorSubject(position),disposable=new core.DisposableCollection;return disposable.add(this._commandService.onCommandExecuted(commandInfo=>{(commandInfo.id===SetScrollOperation.id||commandInfo.id===SetZoomRatioOperation.id)&&position$.next(calc())})),{position,position$,disposable}}attachPopupToObject(targetObject,popup){var _a61;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet||this._isSelectionMoving&&!popup.showOnSelectionMoving)return{dispose:__name(()=>{},"dispose"),canDispose:__name(()=>!0,"canDispose")};const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),skeleton=(_a61=this._renderManagerService.getRenderById(unitId))==null?void 0:_a61.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:subUnitId}),currentRender=this._renderManagerService.getRenderById(unitId);if(!currentRender||!skeleton)return{dispose:__name(()=>{},"dispose"),canDispose:__name(()=>!0,"canDispose")};const{left,top,width,height}=targetObject,bound={left,right:left+width,top,bottom:top+height},{position,position$,disposable}=this._createPositionObserver(bound,currentRender,skeleton,worksheet),id=this._globalPopupManagerService.addPopup({...popup,unitId,subUnitId,anchorRect:position,anchorRect$:position$,canvasElement:currentRender.engine.getCanvasElement()});return{dispose:__name(()=>{this._globalPopupManagerService.removePopup(id),position$.complete(),disposable.dispose()},"dispose"),canDispose:__name(()=>this._globalPopupManagerService.activePopupId!==id,"canDispose")}}attachPopupByPosition(bound,popup,location){var _a61;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return null;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId();if(unitId!==location.unitId||location.subUnitId!==subUnitId)return null;if(this._isSelectionMoving&&!popup.showOnSelectionMoving)return;const skeleton=(_a61=this._renderManagerService.getRenderById(unitId))==null?void 0:_a61.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:subUnitId}),currentRender=this._renderManagerService.getRenderById(unitId);if(!currentRender||!skeleton)return null;const{position,position$,disposable}=this._createPositionObserver(bound,currentRender,skeleton,worksheet),{rects$,disposable:rectsObserverDisposable}=this._createHiddenRectObserver({row:location.row,column:location.col,worksheet,skeleton,currentRender}),id=this._globalPopupManagerService.addPopup({...popup,unitId,subUnitId,anchorRect:position,anchorRect$:position$,hiddenRects$:rects$,canvasElement:currentRender.engine.getCanvasElement()});return{dispose:__name(()=>{this._globalPopupManagerService.removePopup(id),position$.complete(),disposable.dispose(),rectsObserverDisposable.dispose()},"dispose"),canDispose:__name(()=>this._globalPopupManagerService.activePopupId!==id,"canDispose")}}attachPopupToAbsolutePosition(bound,popup,_unitId,_subUnitId){var _a61;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return null;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId();if(_unitId&&unitId!==_unitId||_subUnitId&&_subUnitId!==subUnitId)return null;const skeleton=(_a61=this._renderManagerService.getRenderById(unitId))==null?void 0:_a61.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:subUnitId}),currentRender=this._renderManagerService.getRenderById(unitId);if(!currentRender||!skeleton)return null;if(this._isSelectionMoving&&!popup.showOnSelectionMoving)return;const position$=new rxjs.BehaviorSubject(bound),id=this._globalPopupManagerService.addPopup({...popup,unitId,subUnitId,anchorRect:bound,anchorRect$:position$.asObservable(),canvasElement:currentRender.engine.getCanvasElement()});return{dispose:__name(()=>{this._globalPopupManagerService.removePopup(id),position$.complete()},"dispose"),canDispose:__name(()=>this._globalPopupManagerService.activePopupId!==id,"canDispose")}}attachPopupToCell(row,col,popup,_unitId,_subUnitId,viewport){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return null;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId();if(_unitId&&unitId!==_unitId||_subUnitId&&subUnitId!==_subUnitId)return null;const currentRender=this._renderManagerService.getRenderById(unitId),skeleton=currentRender==null?void 0:currentRender.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:subUnitId}),sheetSelectionRenderService=currentRender==null?void 0:currentRender.with(ISheetSelectionRenderService);if(!currentRender||!skeleton||!sheetSelectionRenderService)return null;if(this._isSelectionMoving&&!popup.showOnSelectionMoving)return;const activeViewport=viewport!=null?viewport:getViewportByCell(row,col,currentRender.scene,worksheet);if(!activeViewport)return null;const{position,position$,disposable:positionObserverDisposable,updateRowCol}=this._createCellPositionObserver(row,col,currentRender,skeleton,activeViewport),{rects$,disposable:rectsObserverDisposable}=this._createHiddenRectObserver({row,column:col,worksheet,skeleton,currentRender}),id=this._globalPopupManagerService.addPopup({...popup,unitId,subUnitId,anchorRect:position,anchorRect$:position$,canvasElement:currentRender.engine.getCanvasElement(),hiddenRects$:rects$}),disposableCollection=new core.DisposableCollection;disposableCollection.add(positionObserverDisposable),disposableCollection.add(core.toDisposable(()=>{this._globalPopupManagerService.removePopup(id),position$.complete()})),disposableCollection.add(rectsObserverDisposable);const watchedRange={startRow:row,endRow:row,startColumn:col,endColumn:col};return disposableCollection.add(this._refRangeService.watchRange(unitId,subUnitId,watchedRange,(_2,after)=>{after?updateRowCol(after.startRow,after.startColumn):disposableCollection.dispose()})),{dispose(){disposableCollection.dispose()},canDispose:__name(()=>this._globalPopupManagerService.activePopupId!==id,"canDispose")}}attachRangePopup(range,popup,_unitId,_subUnitId,viewport,showOnSelectionMoving=!1){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return null;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId();if(_unitId&&unitId!==_unitId||_subUnitId&&subUnitId!==_subUnitId)return null;const currentRender=this._renderManagerService.getRenderById(unitId),skeleton=currentRender==null?void 0:currentRender.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:subUnitId}),sheetSelectionRenderService=currentRender==null?void 0:currentRender.with(ISheetSelectionRenderService);if(!currentRender||!skeleton||!sheetSelectionRenderService)return null;if(sheetSelectionRenderService.selectionMoving&&!showOnSelectionMoving)return;const activeViewport=viewport!=null?viewport:getViewportByCell(range.startRow,range.startColumn,currentRender.scene,worksheet);if(!activeViewport)return null;const{position,position$,disposable:positionObserverDisposable,updateRowCol,topLeftPos$,rightBottomPos$}=this._createRangePositionObserver(range,currentRender,skeleton,activeViewport),{rects$,disposable:rectsObserverDisposable}=this._createHiddenRectObserver({row:range.startRow,column:range.startColumn,worksheet,skeleton,currentRender}),id=this._globalPopupManagerService.addPopup({...popup,unitId,subUnitId,anchorRect:position,anchorRect$:position$,canvasElement:currentRender.engine.getCanvasElement(),hiddenRects$:rects$}),disposableCollection=new core.DisposableCollection;disposableCollection.add(positionObserverDisposable),disposableCollection.add(core.toDisposable(()=>{this._globalPopupManagerService.removePopup(id),topLeftPos$.complete(),rightBottomPos$.complete()})),disposableCollection.add(rectsObserverDisposable);const watchedRange={...range};return disposableCollection.add(this._refRangeService.watchRange(unitId,subUnitId,watchedRange,(_2,after)=>{after?updateRowCol(after.startRow,after.startColumn):disposableCollection.dispose()})),{dispose(){disposableCollection.dispose()},canDispose:__name(()=>this._globalPopupManagerService.activePopupId!==id,"canDispose")}}_createCellPositionObserver(initialRow,initialCol,currentRender,skeleton,activeViewport){let row=initialRow,col=initialCol;const position=this._calcCellPositionByCell(row,col,currentRender,skeleton,activeViewport),position$=new rxjs.BehaviorSubject(position),updatePosition=__name(()=>position$.next(this._calcCellPositionByCell(row,col,currentRender,skeleton,activeViewport)),"updatePosition"),disposable=new core.DisposableCollection;return disposable.add(currentRender.engine.clientRect$.subscribe(()=>updatePosition())),disposable.add(this._commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===sheets.SetWorksheetRowAutoHeightMutation.id&&commandInfo.params.rowsAutoHeightInfo.findIndex(item=>item.row===row)>-1){updatePosition();return}(sheets.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(commandInfo.id)>-1||commandInfo.id===SetScrollOperation.id||commandInfo.id===SetZoomRatioOperation.id)&&updatePosition()})),{position$,disposable,position,updateRowCol:__name((newRow,newCol)=>{row=newRow,col=newCol,updatePosition()},"updateRowCol")}}_calcCellPositionByCell(row,col,currentRender,skeleton,activeViewport){const{scene,engine}=currentRender,primaryWithCoord=skeleton.getCellWithCoordByIndex(row,col),cellInfo=primaryWithCoord.isMergedMainCell?primaryWithCoord.mergeInfo:primaryWithCoord,{scaleX,scaleY}=scene.getAncestorScale(),scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY},canvasElement=engine.getCanvasElement(),canvasClientRect=canvasElement.getBoundingClientRect(),widthOfCanvas=pxToNum(canvasElement.style.width),{top,left,width}=canvasClientRect,scaleAdjust=width/widthOfCanvas;return{left:(cellInfo.startX-scrollXY.x)*scaleAdjust*scaleX+left,right:(cellInfo.endX-scrollXY.x)*scaleAdjust*scaleX+left,top:(cellInfo.startY-scrollXY.y)*scaleAdjust*scaleY+top,bottom:(cellInfo.endY-scrollXY.y)*scaleAdjust*scaleY+top}}_createRangePositionObserver(range,currentRender,skeleton,activeViewport){let{startRow,startColumn}=range;const topLeftCoord=this._calcCellPositionByCell(startRow,startColumn,currentRender,skeleton,activeViewport),topLeftPos$=new rxjs.BehaviorSubject(topLeftCoord),rightBottomCoord=this._calcCellPositionByCell(range.endRow,range.endColumn,currentRender,skeleton,activeViewport),rightBottomPos$=new rxjs.BehaviorSubject(rightBottomCoord),updatePosition=__name(()=>{const topLeftCoord2=this._calcCellPositionByCell(startRow,startColumn,currentRender,skeleton,activeViewport),rightBottomCoord2=this._calcCellPositionByCell(range.endRow,range.endColumn,currentRender,skeleton,activeViewport);topLeftPos$.next(topLeftCoord2),rightBottomPos$.next(rightBottomCoord2)},"updatePosition"),disposable=new core.DisposableCollection;disposable.add(currentRender.engine.clientRect$.subscribe(()=>updatePosition())),disposable.add(this._commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===sheets.SetWorksheetRowAutoHeightMutation.id&&commandInfo.params.rowsAutoHeightInfo.findIndex(item=>item.row===startRow)>-1){updatePosition();return}(sheets.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(commandInfo.id)>-1||commandInfo.id===SetScrollOperation.id||commandInfo.id===SetZoomRatioOperation.id)&&updatePosition()}));const updateRowCol=__name((newRow,newCol)=>{startRow=newRow,startColumn=newCol,updatePosition()},"updateRowCol"),position$=topLeftPos$.pipe(rxjs.map(topLeft=>{const rightBottomCoord2=this._calcCellPositionByCell(range.endRow,range.endColumn,currentRender,skeleton,activeViewport);return{top:topLeft.top,left:topLeft.left,right:rightBottomCoord2.right,bottom:rightBottomCoord2.bottom}})),position={top:topLeftCoord.top,left:topLeftCoord.left,right:rightBottomCoord.right,bottom:rightBottomCoord.bottom};return{position$,position,updateRowCol,topLeftPos$,rightBottomPos$,disposable}}},__name(_a24,"SheetCanvasPopManagerService"),_a24);exports.SheetCanvasPopManagerService=__decorateClass$y([__decorateParam$y(0,core.Inject(ui.ICanvasPopupService)),__decorateParam$y(1,engineRender.IRenderManagerService),__decorateParam$y(2,core.IUniverInstanceService),__decorateParam$y(3,core.Inject(sheets.RefRangeService)),__decorateParam$y(4,core.ICommandService),__decorateParam$y(5,sheets.IRefSelectionsService),__decorateParam$y(6,core.Inject(sheets.SheetsSelectionsService))],exports.SheetCanvasPopManagerService);function pxToNum(width){return Number.parseInt(width.replace("px",""))}__name(pxToNum,"pxToNum");var __defProp$x=Object.defineProperty,__getOwnPropDesc$x=Object.getOwnPropertyDescriptor,__decorateClass$x=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$x(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$x(target,key,result),result},"__decorateClass$x"),__decorateParam$x=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$x"),CellAlertType=(CellAlertType2=>(CellAlertType2[CellAlertType2.INFO=0]="INFO",CellAlertType2[CellAlertType2.WARNING=1]="WARNING",CellAlertType2[CellAlertType2.ERROR=2]="ERROR",CellAlertType2))(CellAlertType||{}),_a25;exports.CellAlertManagerService=(_a25=class extends core.Disposable{constructor(_renderManagerService,_canvasPopManagerService){super();__publicField(this,"_currentAlert$",new rxjs.Subject);__publicField(this,"_currentAlert",new Map);__publicField(this,"currentAlert$",this._currentAlert$.asObservable());this._renderManagerService=_renderManagerService,this._canvasPopManagerService=_canvasPopManagerService,this.disposeWithMe(()=>{this._currentAlert$.complete()})}get currentAlert(){return this._currentAlert}showAlert(alert){let lastPopup=this._currentAlert.get(alert.key);lastPopup&&lastPopup.dispose.dispose(),lastPopup?lastPopup.dispose.dispose():(lastPopup={alert,dispose:{dispose(){}}},this._currentAlert.set(alert.key,lastPopup));const{location}=alert,{row,col,unitId}=location;if(!this._renderManagerService.getRenderById(unitId))return;const disposable=this._canvasPopManagerService.attachPopupToCell(row,col,{componentKey:CELL_ALERT_KEY,direction:"horizontal",offset:[2,0],extraProps:{alert}});disposable&&(lastPopup.dispose=disposable),this._currentAlert$.next(Array.from(this._currentAlert.entries()))}removeAlert(key){const lastPopup=this._currentAlert.get(key);lastPopup&&(this._currentAlert.delete(key),lastPopup==null||lastPopup.dispose.dispose(),this._currentAlert$.next(Array.from(this._currentAlert.entries())))}clearAlert(){this._currentAlert.forEach(alert=>{alert.dispose.dispose()}),this._currentAlert.clear(),this._currentAlert$.next(Array.from(this._currentAlert.entries()))}},__name(_a25,"CellAlertManagerService"),_a25);exports.CellAlertManagerService=__decorateClass$x([__decorateParam$x(0,engineRender.IRenderManagerService),__decorateParam$x(1,core.Inject(exports.SheetCanvasPopManagerService))],exports.CellAlertManagerService);const cellAlert="univer-cell-alert",cellAlertTitle="univer-cell-alert-title",cellAlertIcon="univer-cell-alert-icon",cellAlertIconError="univer-cell-alert-icon-error",cellAlertIconInfo="univer-cell-alert-icon-info",cellAlertIconWarning="univer-cell-alert-icon-warning",cellAlertContent="univer-cell-alert-content",styles$8={cellAlert,cellAlertTitle,cellAlertIcon,cellAlertIconError,cellAlertIconInfo,cellAlertIconWarning,cellAlertContent};function CellAlert({popup}){var _a61;const alert=(_a61=popup.extraProps)==null?void 0:_a61.alert;if(!alert)return null;const{type,title,message}=alert,iconMap={[CellAlertType.ERROR]:jsxRuntime.jsx(ErrorSingle,{className:clsx(styles$8.cellAlertIcon,styles$8.cellAlertIconError)}),[CellAlertType.INFO]:jsxRuntime.jsx(WarningSingle,{className:clsx(styles$8.cellAlertIcon,styles$8.cellAlertIconInfo)}),[CellAlertType.WARNING]:jsxRuntime.jsx(WarningSingle,{className:clsx(styles$8.cellAlertIcon,styles$8.cellAlertIconWarning)})};return jsxRuntime.jsxs("div",{className:styles$8.cellAlert,children:[jsxRuntime.jsxs("div",{className:styles$8.cellAlertTitle,children:[type?iconMap[type]:null,title]}),jsxRuntime.jsx("div",{className:styles$8.cellAlertContent,children:message})]})}__name(CellAlert,"CellAlert");const CELL_ALERT_KEY="univer.sheet.cell-alert";var __defProp$w=Object.defineProperty,__getOwnPropDesc$w=Object.getOwnPropertyDescriptor,__decorateClass$w=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$w(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$w(target,key,result),result},"__decorateClass$w"),__decorateParam$w=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$w"),_a26;let CellAlertRenderController=(_a26=class extends core.Disposable{constructor(_context,_componentManager){super(),this._context=_context,this._componentManager=_componentManager,this._initComponent()}_initComponent(){this._componentManager.register(CELL_ALERT_KEY,CellAlert)}},__name(_a26,"CellAlertRenderController"),_a26);CellAlertRenderController=__decorateClass$w([__decorateParam$w(1,core.Inject(ui.ComponentManager))],CellAlertRenderController);const sheetPasteOptionsWrapper="univer-sheet-paste-options-wrapper",sheetPasteOptionsIconWrapper="univer-sheet-paste-options-icon-wrapper",sheetPasteOptionsMenu="univer-sheet-paste-options-menu",sheetPasteOptionsMenuItem="univer-sheet-paste-options-menu-item",sheetPasteOptionsMenuItemTitle="univer-sheet-paste-options-menu-item-title",sheetPasteOptionsMenuItemIcon="univer-sheet-paste-options-menu-item-icon",styles$7={sheetPasteOptionsWrapper,sheetPasteOptionsIconWrapper,sheetPasteOptionsMenu,sheetPasteOptionsMenuItem,sheetPasteOptionsMenuItemTitle,sheetPasteOptionsMenuItemIcon},DEFAULT_PADDING=2,SheetPasteOptions=[{value:"DEFAULT_PASTE",label:"rightClick.paste"},{value:"SPECIAL_PASTE_VALUE",label:"rightClick.pasteValue"},{value:"SPECIAL_PASTE_FORMAT",label:"rightClick.pasteFormat"},{value:"SPECIAL_PASTE_COL_WIDTH",label:"rightClick.pasteColWidth"},{value:"SPECIAL_PASTE_BESIDES_BORDER",label:"rightClick.pasteBesidesBorder"},{value:"SPECIAL_PASTE_FORMULA",label:"formula.operation.pasteFormula"}],useMenuPosition=__name(range=>{var _a61,_b,_c,_d,_e;const univerInstanceService=core.useDependency(core.IUniverInstanceService),renderManagerService=core.useDependency(engineRender.IRenderManagerService),workbook=useActiveWorkbook();if(!range||!workbook)return null;const anchor={startRow:range.rows[0],startCol:range.cols[0],endRow:range.rows[range.rows.length-1],endCol:range.cols[range.cols.length-1]};if(anchor.endRow<0||anchor.endCol<0)return null;const ru=renderManagerService.getRenderById(workbook.getUnitId()),sheetSkeletonManagerService=ru==null?void 0:ru.with(exports.SheetSkeletonManagerService),selectionRenderService=ru==null?void 0:ru.with(ISheetSelectionRenderService),sheetObject=getSheetObject(univerInstanceService,renderManagerService);if(!sheetObject||!selectionRenderService)return null;const{scene}=sheetObject,skeleton=sheetSkeletonManagerService==null?void 0:sheetSkeletonManagerService.getCurrentSkeleton(),viewport=selectionRenderService.getViewPort(),scaleX=scene==null?void 0:scene.scaleX,scaleY=scene==null?void 0:scene.scaleY,scrollXY=scene==null?void 0:scene.getViewportScrollXY(viewport),canvas=(_a61=scene.getEngine())==null?void 0:_a61.getCanvas();if(!scaleX||!scene||!scaleX||!scaleY||!scrollXY)return null;const endPosition=skeleton==null?void 0:skeleton.getNoMergeCellPositionByIndex(anchor.endRow,anchor.endCol),endX=(_b=endPosition==null?void 0:endPosition.endX)!=null?_b:0,endY=(_c=endPosition==null?void 0:endPosition.endY)!=null?_c:0,positionEndX=(_d=skeleton==null?void 0:skeleton.convertTransformToOffsetX(endX,scaleX,scrollXY))!=null?_d:-9999,positionEndY=(_e=skeleton==null?void 0:skeleton.convertTransformToOffsetY(endY,scaleY,scrollXY))!=null?_e:-9999,canvasWidth=canvas==null?void 0:canvas.getWidth(),canvasHeight=canvas==null?void 0:canvas.getHeight();if(!canvasWidth||!canvasHeight)return null;const XInSideView=positionEndX+50<=canvasWidth,YInSideView=positionEndY+50<=canvasHeight;let positionX=positionEndX,positionY=positionEndY;return XInSideView||(positionX=canvasWidth-100),YInSideView||(positionY=canvasHeight-100),{positionX,positionY}},"useMenuPosition"),ClipboardPopupMenu=__name(()=>{const clipboardService=core.useDependency(ISheetClipboardService),showMenu=core.useObservable(clipboardService.showMenu$,!0),pasteOptionsCache=core.useObservable(clipboardService.pasteOptionsCache$,null);core.useDependency(engineRender.IRenderManagerService);const localeService=core.useDependency(core.LocaleService),commandService=core.useDependency(core.ICommandService),[menuHovered,setMenuHovered]=React.useState(!1),[menuVisible,setMenuVisible]=React.useState(!1),[_2,setVersion]=React.useState(Math.random()),range=pasteOptionsCache==null?void 0:pasteOptionsCache.target.pastedRange,relativePosition=useMenuPosition(range),sheetSkeletonManagerService=useSheetSkeleton();React.useEffect(()=>{showMenu||(setMenuHovered(!1),setMenuVisible(!1))},[showMenu]);const forceUpdate=React.useCallback(()=>setVersion(Math.random()),[]);if(React.useEffect(()=>{const disposable=sheetSkeletonManagerService&&core.toDisposable(sheetSkeletonManagerService.currentSkeleton$.subscribe(skeleton=>{skeleton&&forceUpdate()}));return disposable==null?void 0:disposable.dispose},[sheetSkeletonManagerService,forceUpdate]),React.useEffect(()=>commandService.onCommandExecuted(command=>{command.id===SetScrollOperation.id&&forceUpdate()}).dispose,[forceUpdate,commandService]),!relativePosition||!showMenu||relativePosition.positionX<50||relativePosition.positionY<30)return null;const iconVisible=menuHovered||menuVisible,handleClick=__name(type=>{commandService.executeCommand(SheetOptionalPasteCommand.id,{type})},"handleClick");return jsxRuntime.jsx("div",{className:styles$7.sheetPasteOptionsWrapper,style:{left:relativePosition.positionX+DEFAULT_PADDING,top:relativePosition.positionY+DEFAULT_PADDING},onMouseEnter:__name(()=>setMenuHovered(!0),"onMouseEnter"),onMouseLeave:__name(()=>setMenuHovered(!1),"onMouseLeave"),children:jsxRuntime.jsxs(design.DropdownProvider,{children:[jsxRuntime.jsx(design.DropdownTrigger,{children:jsxRuntime.jsxs("div",{className:styles$7.sheetPasteOptionsIconWrapper,onClick:__name(()=>{setMenuVisible(!menuVisible)},"onClick"),children:[jsxRuntime.jsx(PasteSpecial,{style:{color:"#35322B"},extend:{colorChannel1:"rgb(var(--green-700))"}}),iconVisible&&jsxRuntime.jsx(MoreDownSingle,{})]})}),jsxRuntime.jsx(design.DropdownOverlay,{className:clsx(styles$7.sheetPasteOptionsMenu,`
56
56
  univer-border univer-border-gray-200 univer-border-solid
57
57
  `),children:jsxRuntime.jsx("ul",{children:SheetPasteOptions.map(item=>{const itemType=PREDEFINED_HOOK_NAME[item.value],selected=(pasteOptionsCache==null?void 0:pasteOptionsCache.pasteType)===itemType;return jsxRuntime.jsxs("li",{onClick:__name(()=>handleClick(item.value),"onClick"),className:clsx(styles$7.sheetPasteOptionsMenuItem,"hover:univer-bg-neutral-100"),children:[jsxRuntime.jsx("span",{children:selected&&jsxRuntime.jsx(CheckMarkSingle,{className:styles$7.sheetPasteOptionsMenuItemIcon,style:{color:"rgb(var(--green-700, #409f11))"}})}),jsxRuntime.jsx("div",{className:clsx(styles$7.sheetPasteOptionsMenuItemTitle,"univer-text-gray-700"),children:localeService.t(item.label)})]},item.value)})})})]})})},"ClipboardPopupMenu"),RemovePasteMenuCommands=[SetCellEditVisibleOperation.id,sheets.SetRangeValuesCommand.id,SetZoomRatioOperation.id,sheets.MoveRangeMutation.id,sheets.RemoveRowMutation.id,sheets.RemoveColMutation.id,sheets.InsertRowMutation.id,sheets.InsertColMutation.id,sheets.MoveRowsMutation.id,sheets.MoveColsMutation.id,sheets.SetWorksheetColWidthMutation.id,sheets.SetWorksheetRowHeightMutation.id,sheets.SetSelectionsOperation.id,core.UndoCommandId];function getDefaultOnPasteCellMutations(pasteFrom,pasteTo,data,payload,accessor){const redoMutationsInfo=[],undoMutationsInfo=[];if(payload.copyType===COPY_TYPE.CUT){const{undos,redos}=getMoveRangeMutations(pasteFrom,pasteTo,accessor);redoMutationsInfo.push(...redos),undoMutationsInfo.push(...undos)}else{const{undos:clearStyleUndos,redos:clearStyleRedos}=getClearCellStyleMutations(pasteTo,data,accessor);redoMutationsInfo.push(...clearStyleRedos),undoMutationsInfo.push(...clearStyleUndos);const{undos:clearValueUndos,redos:clearValueRedos}=getClearCellValueMutations(pasteTo,data,accessor);redoMutationsInfo.push(...clearValueRedos),undoMutationsInfo.push(...clearValueUndos);const{undos:setValuesUndos,redos:setValuesRedos}=getSetCellValueMutations(pasteTo,pasteFrom,data,accessor);redoMutationsInfo.push(...setValuesRedos),undoMutationsInfo.push(...setValuesUndos);const{undos:setStyleUndos,redos:setStyleRedos}=getSetCellStyleMutations(pasteTo,data,accessor,!0);redoMutationsInfo.push(...setStyleRedos),undoMutationsInfo.push(...setStyleUndos);const{undos:clearMergeUndos,redos:clearMergeRedos}=getClearAndSetMergeMutations(pasteTo,data,accessor);redoMutationsInfo.push(...clearMergeRedos),undoMutationsInfo.push(...clearMergeUndos)}return{undos:undoMutationsInfo,redos:redoMutationsInfo}}__name(getDefaultOnPasteCellMutations,"getDefaultOnPasteCellMutations");function getMoveRangeMutations(from,to,accessor){let redos=[],undos=[];const{range:fromDiscreteRange,subUnitId:fromSubUnitId,unitId}=from,{range:toDiscreteRange,subUnitId:toSubUnitId}=to,toRange=toDiscreteRange?discreteRangeToRange(toDiscreteRange):null,fromRange=fromDiscreteRange?discreteRangeToRange(fromDiscreteRange):null;if(fromRange&&toRange){const univerInstanceService=accessor.get(core.IUniverInstanceService),sheetInterceptorService=accessor.get(sheets.SheetInterceptorService),workbook=univerInstanceService.getUniverSheetInstance(unitId),fromWorksheet=workbook==null?void 0:workbook.getSheetBySheetId(fromSubUnitId),toWorksheet=workbook==null?void 0:workbook.getSheetBySheetId(toSubUnitId);if(fromWorksheet&&toWorksheet){const fromCellValue=new core.ObjectMatrix,newFromCellValue=new core.ObjectMatrix,fromCellMatrix=fromWorksheet.getCellMatrix(),toCellMatrix=toWorksheet.getCellMatrix();core.Range.foreach(fromRange,(row,col)=>{fromCellValue.setValue(row,col,core.Tools.deepClone(fromCellMatrix.getValue(row,col))),newFromCellValue.setValue(row,col,null)});const toCellValue=new core.ObjectMatrix;core.Range.foreach(toRange,(row,col)=>{toCellValue.setValue(row,col,core.Tools.deepClone(toCellMatrix.getValue(row,col)))});const newToCellValue=new core.ObjectMatrix;core.Range.foreach(fromRange,(row,col)=>{const cellRange=core.cellToRange(row,col),relativeRange=core.Rectangle.getRelativeRange(cellRange,fromRange),range=core.Rectangle.getPositionRange(relativeRange,toRange);newToCellValue.setValue(range.startRow,range.startColumn,fromCellMatrix.getValue(row,col))});const doMoveRangeMutation={fromRange,toRange,from:{value:newFromCellValue.getMatrix(),subUnitId:fromSubUnitId},to:{value:newToCellValue.getMatrix(),subUnitId:toSubUnitId},unitId},undoMoveRangeMutation={fromRange:toRange,toRange:fromRange,from:{value:fromCellValue.getMatrix(),subUnitId:fromSubUnitId},to:{value:toCellValue.getMatrix(),subUnitId:toSubUnitId},unitId},interceptorCommands=sheetInterceptorService.onCommandExecute({id:sheets.MoveRangeCommand.id,params:{toRange,fromRange}}),fromMergeData=fromWorksheet.getMergeData(),toMergeData=toWorksheet.getMergeData(),fromMergeRanges=fromMergeData.filter(item=>core.Rectangle.intersects(item,fromRange)),toMergeRanges=toMergeData.filter(item=>core.Rectangle.intersects(item,toRange)),willMoveToMergeRanges=fromMergeRanges.map(mergeRange=>core.Rectangle.getRelativeRange(mergeRange,fromRange)).map(relativeRange=>core.Rectangle.getPositionRange(relativeRange,toRange)),addMergeCellRanges=sheets.getAddMergeMutationRangeByType(willMoveToMergeRanges),mergeRedos=[{id:sheets.RemoveWorksheetMergeMutation.id,params:{unitId,subUnitId:fromSubUnitId,ranges:fromMergeRanges}},{id:sheets.RemoveWorksheetMergeMutation.id,params:{unitId,subUnitId:fromSubUnitId,ranges:toMergeRanges}},{id:sheets.AddWorksheetMergeMutation.id,params:{unitId,subUnitId:toSubUnitId,ranges:addMergeCellRanges}}],mergeUndos=[{id:sheets.RemoveWorksheetMergeMutation.id,params:{unitId,subUnitId:toSubUnitId,ranges:addMergeCellRanges}},{id:sheets.AddWorksheetMergeMutation.id,params:{unitId,subUnitId:toSubUnitId,ranges:toMergeRanges}},{id:sheets.AddWorksheetMergeMutation.id,params:{unitId,subUnitId:fromSubUnitId,ranges:fromMergeRanges}}];redos=[{id:sheets.MoveRangeMutation.id,params:doMoveRangeMutation},...interceptorCommands.redos,...mergeRedos,{id:sheets.SetSelectionsOperation.id,params:{unitId,subUnitId:toSubUnitId,selections:[{range:toRange}],type:sheets.SelectionMoveType.MOVE_END}}],undos=[{id:sheets.MoveRangeMutation.id,params:undoMoveRangeMutation},...interceptorCommands.undos,...mergeUndos,{id:sheets.SetSelectionsOperation.id,params:{unitId,subUnitId:fromSubUnitId,type:sheets.SelectionMoveType.MOVE_END,selections:[{range:fromRange}]}}]}}return{undos,redos}}__name(getMoveRangeMutations,"getMoveRangeMutations");function getSetCellValueMutations(pasteTo,pasteFrom,matrix,accessor){const{unitId,subUnitId,range}=pasteTo,redoMutationsInfo=[],undoMutationsInfo=[],{mapFunc}=virtualizeDiscreteRanges([range]),valueMatrix=new core.ObjectMatrix;matrix.forValue((row,col,value)=>{var _a61;let originNumberValue;if(!value.p&&value.v&&!pasteFrom){const content=String(value.v),numfmtValue=core.numfmt.parseValue(content);(numfmtValue==null?void 0:numfmtValue.v)!==void 0&&typeof numfmtValue.v=="number"&&(originNumberValue=numfmtValue.v)}const{row:realRow,col:realCol}=mapFunc(row,col);if((_a61=value.p)!=null&&_a61.body&&isRichText(value.p.body)){const newValue=core.Tools.deepClone({p:value.p,v:originNumberValue!=null?originNumberValue:value.v});valueMatrix.setValue(realRow,realCol,newValue)}else valueMatrix.setValue(realRow,realCol,core.Tools.deepClone({v:originNumberValue!=null?originNumberValue:value.v,t:value.t}))});const setValuesMutation={unitId,subUnitId,cellValue:core.Tools.deepClone(valueMatrix.getMatrix())};redoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:setValuesMutation});const undoSetValuesMutation=sheets.SetRangeValuesUndoMutationFactory(accessor,setValuesMutation);return undoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:undoSetValuesMutation}),{undos:undoMutationsInfo,redos:redoMutationsInfo}}__name(getSetCellValueMutations,"getSetCellValueMutations");function getSetCellStyleMutations(pasteTo,matrix,accessor,withRichFormat=!1){const redoMutationsInfo=[],undoMutationsInfo=[],{unitId,subUnitId,range}=pasteTo,valueMatrix=new core.ObjectMatrix,{mapFunc}=virtualizeDiscreteRanges([range]);matrix.forValue((row,col,value)=>{var _a61;const newValue={s:Object.assign({},{...core.DEFAULT_STYLES,pd:engineRender.DEFAULT_PADDING_DATA,bg:null,cl:null},value.s)},cellBd=newValue.s.bd;cellBd&&(Object.keys(cellBd).length>0||(newValue.s.bd={b:null,l:null,r:null,t:null}));const content=String(value.v),numfmtValue=core.numfmt.parseValue(content);numfmtValue!=null&&numfmtValue.z&&(newValue.s||(newValue.s={}),typeof newValue.s=="object"&&((_a61=newValue.s)!=null&&_a61.n?newValue.s.n.pattern=numfmtValue.z:newValue.s.n={pattern:numfmtValue.z}));const{row:actualRow,col:actualCol}=mapFunc(row,col);valueMatrix.setValue(actualRow,actualCol,newValue)});const setValuesMutation={unitId,subUnitId,cellValue:core.Tools.deepClone(valueMatrix.getMatrix())};redoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:setValuesMutation});const undoSetValuesMutation=sheets.SetRangeValuesUndoMutationFactory(accessor,setValuesMutation);return undoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:undoSetValuesMutation}),{undos:undoMutationsInfo,redos:redoMutationsInfo}}__name(getSetCellStyleMutations,"getSetCellStyleMutations");function getClearCellStyleMutations(pasteTo,matrix,accessor){const redoMutationsInfo=[],undoMutationsInfo=[],clearStyleMatrix=new core.ObjectMatrix,{unitId,subUnitId,range}=pasteTo,{mapFunc}=virtualizeDiscreteRanges([range]);if(matrix.forEach((rowIndex,row)=>{Object.keys(row).forEach(colIndexStr=>{const colIndex=Number(colIndexStr),{row:actualRow,col:actualCol}=mapFunc(rowIndex,colIndex);clearStyleMatrix.setValue(actualRow,actualCol,{s:null})})}),clearStyleMatrix.getLength()>0){const clearMutation={subUnitId,unitId,cellValue:core.Tools.deepClone(clearStyleMatrix.getMatrix())};redoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:clearMutation});const undoClearMutation=sheets.SetRangeValuesUndoMutationFactory(accessor,clearMutation);undoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:undoClearMutation})}return{undos:undoMutationsInfo,redos:redoMutationsInfo}}__name(getClearCellStyleMutations,"getClearCellStyleMutations");function getClearCellValueMutations(pasteTo,matrix,accessor){const redoMutationsInfo=[],undoMutationsInfo=[],clearValueMatrix=new core.ObjectMatrix,{unitId,subUnitId,range}=pasteTo,{mapFunc}=virtualizeDiscreteRanges([range]);if(matrix.forValue((row,col,_value)=>{const{row:actualRow,col:actualCol}=mapFunc(row,col);clearValueMatrix.setValue(actualRow,actualCol,{v:null,p:null})}),clearValueMatrix.getLength()>0){const clearMutation={subUnitId,unitId,cellValue:core.Tools.deepClone(clearValueMatrix.getMatrix())};redoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:clearMutation});const undoClearMutation=sheets.SetRangeValuesUndoMutationFactory(accessor,clearMutation);undoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:undoClearMutation})}return{undos:undoMutationsInfo,redos:redoMutationsInfo}}__name(getClearCellValueMutations,"getClearCellValueMutations");function getClearAndSetMergeMutations(pasteTo,matrix,accessor){const redoMutationsInfo=[],undoMutationsInfo=[],{unitId,subUnitId,range}=pasteTo,{startColumn,startRow,endColumn,endRow}=discreteRangeToRange(range),mergeRangeData=[];matrix.forValue((row,col,value)=>{if(value.rowSpan&&value.rowSpan>1){const colSpan=value.colSpan||1,mergeRange={startRow:startRow+row,endRow:startRow+row+value.rowSpan-1,startColumn:startColumn+col,endColumn:startColumn+col+colSpan-1};mergeRangeData.push(mergeRange)}else if(value.colSpan&&value.colSpan>1){const rowSpan=value.rowSpan||1,mergeRange={startRow:startRow+row,endRow:startRow+row+rowSpan-1,startColumn:startColumn+col,endColumn:startColumn+col+value.colSpan-1};mergeRangeData.push(mergeRange)}});const workbook=accessor.get(core.IUniverInstanceService).getUniverSheetInstance(unitId),worksheet=workbook==null?void 0:workbook.getSheetBySheetId(subUnitId);if(workbook&&worksheet){const mergedCellsInRange=worksheet.getMergeData().filter(rect=>core.Rectangle.intersects({startRow,startColumn,endRow,endColumn},rect)),removeMergeMutationParams={unitId,subUnitId,ranges:mergedCellsInRange};redoMutationsInfo.push({id:sheets.RemoveWorksheetMergeMutation.id,params:removeMergeMutationParams});const undoRemoveMergeMutationParams=sheets.RemoveMergeUndoMutationFactory(accessor,removeMergeMutationParams);undoMutationsInfo.push({id:sheets.AddWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams})}const addMergeMutationParams={unitId,subUnitId,ranges:mergeRangeData};mergeRangeData.length>0&&redoMutationsInfo.push({id:sheets.AddWorksheetMergeMutation.id,params:addMergeMutationParams});const undoAddMergeMutation=sheets.AddMergeUndoMutationFactory(accessor,addMergeMutationParams);return mergeRangeData.length>0&&undoMutationsInfo.push({id:sheets.RemoveWorksheetMergeMutation.id,params:undoAddMergeMutation}),{undos:undoMutationsInfo,redos:redoMutationsInfo}}__name(getClearAndSetMergeMutations,"getClearAndSetMergeMutations");function generateBody(text){if(!text.includes("\r")&&core.Tools.isLegalUrl(text)){const id=core.generateRandomId(),urlText=`${text}`,range={startIndex:0,endIndex:urlText.length-1,rangeId:id,rangeType:core.CustomRangeType.HYPERLINK,properties:{url:text}};return{dataStream:`${urlText}\r
58
58
  `,paragraphs:[{startIndex:urlText.length}],customRanges:[range]}}let dataStream=text.replace(/(\r\n|\n)/g,"\r");dataStream.endsWith(`\r