@univerjs/sheets-ui 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1,22 +1,22 @@
1
- "use strict";var gd=Object.defineProperty;var Sd=(n,r,e)=>r in n?gd(n,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[r]=e;var E=(n,r,e)=>Sd(n,typeof r!="symbol"?r+"":r,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const J=require("@univerjs/docs-ui"),a=require("@univerjs/core"),w=require("@univerjs/engine-render"),I=require("@univerjs/ui"),V=require("react"),O=require("rxjs"),m=require("@univerjs/sheets"),Re=require("@univerjs/docs"),G=require("@univerjs/engine-formula"),fd=require("@univerjs/engine-numfmt"),K=require("@univerjs/design"),_=require("react/jsx-runtime"),pd=require("@univerjs/telemetry"),Ga=require("rxjs/operators");function Tr(n,r){if(n==null)return;const e=r.getRenderById(n);if(e==null)return;const{mainComponent:t,scene:o,engine:i,components:s}=e,l=t,d=s.get(J.DOCS_VIEW_KEY.BACKGROUND);return{document:l,docBackground:d,scene:o,engine:i}}const Ni=[10,400],ds="RANGE_SELECTOR_COMPONENT_KEY",wr="EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY";var he=(n=>(n.MAIN="__SpreadsheetRender__",n.ROW="__SpreadsheetRowHeader__",n.COLUMN="__SpreadsheetColumnHeader__",n.LEFT_TOP="__SpreadsheetLeftTopPlaceholder__",n))(he||{});const Fs=0,Jo=1,bt=10,vd=11,js=12,yr={id:"sheet.command.set-row-header-width",type:a.CommandType.COMMAND,handler:async(n,r)=>{if(!r)return!1;const e=n.get(w.IRenderManagerService);if(!e)return!1;const{unitId:t,subUnitId:o,size:i}=r,s=e.getRenderById(t);if(s){e.getRenderById(t).with(exports.SheetSkeletonManagerService).setRowHeaderSize(s,o,i);const{components:d}=s,c=d.get(he.ROW);c&&c.setCustomHeader({headerStyle:{size:i}})}return!0}},Mr={id:"sheet.command.set-col-header-height",type:a.CommandType.COMMAND,handler:async(n,r)=>{if(!r)return!1;const e=n.get(w.IRenderManagerService);if(!e)return!1;const{unitId:t,subUnitId:o,size:i}=r,s=e.getRenderById(t);if(s){e.getRenderById(t).with(exports.SheetSkeletonManagerService).setColumnHeaderSize(s,o,i);const{components:d}=s,c=d.get(he.COLUMN);c&&c.setCustomHeader({headerStyle:{size:i}})}return!0}},Di=a.createInterceptorKey("rangeMovePermissionCheck"),Hi=a.createInterceptorKey("rangeFillPermissionCheck");var us=(n=>(n[n.FORMULA_EDITOR_SHOW=100]="FORMULA_EDITOR_SHOW",n[n.MARK_SELECTION=1e4]="MARK_SELECTION",n))(us||{});function Rt(n){const r=n.getCurrentTheme(),e=new a.ColorKit(r.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:r.primaryColor,fill:e,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:r.colorWhite,autofillSize:6,autofillStrokeWidth:1,autofillStroke:r.colorWhite,rowHeaderFill:e,rowHeaderStroke:r.primaryColor,rowHeaderStrokeWidth:1,columnHeaderFill:e,columnHeaderStroke:r.primaryColor,columnHeaderStrokeWidth:1,expandCornerSize:40}}class Cd{constructor(){E(this,"_startColumn",-1);E(this,"_startRow",-1);E(this,"_endColumn",-1);E(this,"_endRow",-1);E(this,"_startX",0);E(this,"_startY",0);E(this,"_endX",0);E(this,"_endY",0);E(this,"_primary");E(this,"_rangeType",a.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(r){const{startColumn:e,startRow:t,endColumn:o,endRow:i}=this,{startColumn:s,startRow:l,endColumn:d,endRow:c}=r;return e===s&&t===l&&o===d&&i===c}isInclude(r){const{startColumn:e,startRow:t,endColumn:o,endRow:i}=this,{startColumn:s,startRow:l,endColumn:d,endRow:c}=r;return!(d<e||s>o||l>i||c<t)}highlightToSelection(){if(this._primary)return a.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(r){this._rangeType=r}getValue(){return{rangeWithCoord:this.getRange(),primaryWithCoord:this._primary}}setValue(r,e){const{startColumn:t,startRow:o,endColumn:i,endRow:s,startX:l,startY:d,endX:c,endY:u,rangeType:h}=r;this._startColumn=t,this._startRow=o,this._endColumn=i,this._endRow=s,this._startX=l,this._startY=d,this._endX=c,this._endY=u,h!==void 0&&(this._rangeType=h),e!==void 0&&this.setCurrentCell(e)}setCurrentCell(r){this._primary=r}clearCurrentCell(){this._primary=null}}function bn(n,r){const{startRow:e,startColumn:t,endRow:o,endColumn:i,rangeType:s}=r,l=o<e?o:e,d=o<e?e:o,c=i<t?i:t,u=i<t?t:i,h=n.getNoMergeCellWithCoordByIndex(l,c),g=n.getNoMergeCellWithCoordByIndex(d,u);return{startRow:e,startColumn:t,endRow:o,endColumn:i,rangeType:s,startY:(h==null?void 0:h.startY)||0,endY:(g==null?void 0:g.endY)||0,startX:(h==null?void 0:h.startX)||0,endX:(g==null?void 0:g.endX)||0}}function Me(n,r){const{range:e,primary:t,style:o}=n,i=bn(r,e),s=t&&Jn(r,t);return{rangeWithCoord:i,primaryWithCoord:s,style:o}}function Jn(n,r){const{actualRow:e,actualColumn:t,isMerged:o,isMergedMainCell:i,startRow:s,startColumn:l,endRow:d,endColumn:c}=r,u=n.getNoMergeCellWithCoordByIndex(e,t),h=n.getNoMergeCellWithCoordByIndex(s,l),g=n.getNoMergeCellWithCoordByIndex(d,c);return{actualRow:e,actualColumn:t,isMerged:o,isMergedMainCell:i,startX:u.startX,startY:u.startY,endX:u.endX,endY:u.endY,mergeInfo:{startRow:s,startColumn:l,endRow:d,endColumn:c,startY:(h==null?void 0:h.startY)||0,endY:(g==null?void 0:g.endY)||0,startX:(h==null?void 0:h.startX)||0,endX:(g==null?void 0:g.endX)||0}}}const zs="__SpreadsheetHelperSelectionTempRect",Id=35;class Za{constructor(r,e){E(this,"_startOffsetX",0);E(this,"_startOffsetY",0);E(this,"_relativeSelectionPositionRow",0);E(this,"_relativeSelectionPositionColumn",0);E(this,"_relativeSelectionRowLength",0);E(this,"_relativeSelectionColumnLength",0);E(this,"_scenePointerMoveSub");E(this,"_scenePointerUpSub");E(this,"_helperSelection");E(this,"_scrollTimer");E(this,"_activeViewport");E(this,"_targetSelection",{startY:0,endY:0,startX:0,endX:0,startRow:-1,endRow:-1,startColumn:-1,endColumn:-1});E(this,"_isInMergeState",!1);E(this,"_fillControlColors",[]);E(this,"_skeleton");E(this,"_scene");E(this,"_themeService");E(this,"_injector");E(this,"_selectionHooks");this._control=r,this._skeleton=e.skeleton,this._scene=e.scene,this._themeService=e.themeService,this._injector=e.injector,this._selectionHooks=e.selectionHooks,this._initialControl(),this._initialWidget(),this._initialAutoFill(),this._control.dispose$.subscribe(()=>{this.dispose()})}get isHelperSelection(){return this._control.isHelperSelection}dispose(){var r,e;(r=this._scrollTimer)==null||r.dispose(),this._fillControlColors=[],this._clearObserverEvent(),(e=this._helperSelection)==null||e.dispose()}_getFreeze(){var t,o;return(o=(t=this._injector.get(w.IRenderManagerService).withCurrentTypeOfUnit(a.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:t.getCurrentParam())==null?void 0:o.skeleton.getWorksheetConfig().freeze}_isSelectionInViewport(r,e){const t=this._getFreeze()||{startRow:-1,startColumn:-1};switch(e.viewportKey){case w.SHEET_VIEWPORT_KEY.VIEW_MAIN:return r.endRow>=t.startRow&&r.endColumn>=t.startColumn;case w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP:case w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT:return r.endColumn>=t.startColumn&&r.startRow<t.startRow;case w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT:case w.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM:return r.endRow>=t.startRow&&r.startColumn<t.startColumn;case w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP:case w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT:case w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP:case w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP:return r.startRow<t.startRow&&r.startColumn<t.startColumn}}_clearObserverEvent(){var r,e;(r=this._scenePointerMoveSub)==null||r.unsubscribe(),(e=this._scenePointerUpSub)==null||e.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}_initialControl(){const{leftControl:r,rightControl:e,topControl:t,bottomControl:o}=this._control;[r,e,t,o].forEach(i=>{i.onPointerEnter$.subscribeEvent(()=>{var l;((l=this._injector.get(ve,a.Quantity.OPTIONAL))==null?void 0:l.interceptor.fetchThroughInterceptors(Di)(!1,null))!==!1&&i.setCursor(w.CURSOR_TYPE.MOVE)}),i.onPointerLeave$.subscribeEvent(()=>{i.resetCursor()}),i.onPointerDown$.subscribeEvent(this._controlPointerDownHandler.bind(this))})}_controlMoving(r,e){var A;const t=this._scene,o=t.getScrollXYInfoByViewport(w.Vector2.FromArray([r,e])),{scaleX:i,scaleY:s}=t.getAncestorScale(),l=this._skeleton.getCellIndexByOffset(r,e,i,s,o),{row:d,column:c}=l,u=this._skeleton.getRowCount()-1,h=this._skeleton.getColumnCount()-1;let g=Math.max(0,d+this._relativeSelectionPositionRow),S=g+this._relativeSelectionRowLength;S>u&&(S=u,S-g<this._relativeSelectionRowLength&&(g=S-this._relativeSelectionRowLength));let f=Math.max(0,c+this._relativeSelectionPositionColumn),p=f+this._relativeSelectionColumnLength;p>h&&(p=h,p-f<this._relativeSelectionColumnLength&&(f=p-this._relativeSelectionColumnLength));const v=this._skeleton.worksheet.getCellInfoInMergeData(g,f),b=Me({range:{startRow:g,endRow:S,startColumn:f,endColumn:p},primary:v,style:null},this._skeleton),R=this._skeleton.getNoMergeCellWithCoordByIndex(g,f),T=this._skeleton.getNoMergeCellWithCoordByIndex(S,p),M=(R==null?void 0:R.startY)||0,y=(T==null?void 0:T.endY)||0,P=(R==null?void 0:R.startX)||0,x=(T==null?void 0:T.endX)||0;(A=this._helperSelection)==null||A.transformByState({left:P,top:M,width:x-P,height:y-M}),this._targetSelection={...b.rangeWithCoord},this._control.selectionMoving$.next(b.rangeWithCoord)}_controlPointerDownHandler(r){const{offsetX:e,offsetY:t}=r,o=this._scene,i=o.getCoordRelativeToViewport(w.Vector2.FromArray([e,t])),{x:s,y:l}=i,d=o.getScrollXYInfoByViewport(i),{scaleX:c,scaleY:u}=o.getAncestorScale(),h=this._skeleton.getCellIndexByOffset(s,l,c,u,d);this._startOffsetX=s,this._startOffsetY=l;const{row:g,column:S}=h,{startRow:f,startColumn:p,endRow:v,endColumn:C}=this._control.model;let b=0,R=0;g<f?b-=1:g>v&&(b+=1),S<p?R-=1:S>C&&(R+=1),this._relativeSelectionPositionRow=f-g+b,this._relativeSelectionPositionColumn=p-S+R,this._relativeSelectionRowLength=v-f,this._relativeSelectionColumnLength=C-p;const T=this._control.currentStyle,M=this._getScale();this.isHelperSelection&&(this._helperSelection=new w.Rect(zs,{stroke:T.stroke,strokeWidth:T.strokeWidth/M}),o.addObject(this._helperSelection));const y=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),P=w.ScrollTimer.create(o);this._scrollTimer=P,P.startScroll(s,l,y),o.disableObjectsEvent(),this._scenePointerMoveSub=o.onPointerMove$.subscribeEvent(x=>{var H;const{offsetX:A,offsetY:k}=x;if(((H=this._injector.get(ve,a.Quantity.OPTIONAL))==null?void 0:H.interceptor.fetchThroughInterceptors(Di)(!1,null))===!1)return;const{x:D,y:W}=o.getCoordRelativeToViewport(w.Vector2.FromArray([A,k]));this._controlMoving(D,W),o.setCursor(w.CURSOR_TYPE.MOVE),P.scrolling(D,W,()=>{this._controlMoving(D,W)})}),this._scenePointerUpSub=o.onPointerUp$.subscribeEvent(()=>{var A,k,N,D;(A=this._helperSelection)==null||A.dispose();const x=this._scene;x.resetCursor(),this._clearObserverEvent(),x.enableObjectsEvent(),(k=this._scrollTimer)==null||k.dispose(),this._control.selectionMoveEnd$.next(this._targetSelection),(D=(N=this._selectionHooks).selectionMoveEnd)==null||D.call(N)})}_initialWidget(){const{topLeftWidget:r,topCenterWidget:e,topRightWidget:t,middleLeftWidget:o,middleRightWidget:i,bottomLeftWidget:s,bottomCenterWidget:l,bottomRightWidget:d}=this._control,c=[w.CURSOR_TYPE.NORTH_WEST_RESIZE,w.CURSOR_TYPE.NORTH_RESIZE,w.CURSOR_TYPE.NORTH_EAST_RESIZE,w.CURSOR_TYPE.WEST_RESIZE,w.CURSOR_TYPE.EAST_RESIZE,w.CURSOR_TYPE.SOUTH_WEST_RESIZE,w.CURSOR_TYPE.SOUTH_RESIZE,w.CURSOR_TYPE.SOUTH_EAST_RESIZE];[r,e,t,o,i,s,l,d].forEach((u,h)=>{u.onPointerEnter$.subscribeEvent(()=>{u.setCursor(c[h])}),u.onPointerLeave$.subscribeEvent(()=>{u.resetCursor()}),u.onPointerDown$.subscribeEvent(g=>{this._widgetPointerDownEvent(g,c[h])})})}_widgetPointerDownEvent(r,e){const t=this._scene,{offsetX:o,offsetY:i}=r,s=t.getCoordRelativeToViewport(w.Vector2.FromArray([o,i])),{x:l,y:d}=s;this._startOffsetX=o,this._startOffsetY=i;const{startRow:c,startColumn:u,endRow:h,endColumn:g}=this._control.model,S=Math.min(c,h),f=Math.min(u,g),p=Math.max(c,h),v=Math.max(u,g);this._relativeSelectionPositionRow=S,this._relativeSelectionPositionColumn=f,this._relativeSelectionRowLength=p-S,this._relativeSelectionColumnLength=v-f,e===w.CURSOR_TYPE.NORTH_WEST_RESIZE?(this._relativeSelectionPositionRow=p,this._relativeSelectionPositionColumn=v):e===w.CURSOR_TYPE.NORTH_RESIZE?this._relativeSelectionPositionRow=p:e===w.CURSOR_TYPE.NORTH_EAST_RESIZE?this._relativeSelectionPositionRow=p:e===w.CURSOR_TYPE.WEST_RESIZE?this._relativeSelectionPositionColumn=v:e===w.CURSOR_TYPE.SOUTH_WEST_RESIZE?this._relativeSelectionPositionColumn=v:e===w.CURSOR_TYPE.SOUTH_RESIZE&&(this._relativeSelectionPositionRow=S);const C=w.ScrollTimer.create(t),b=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);C.startScroll(l,d,b),this._scrollTimer=C,t.disableObjectsEvent(),this._scenePointerMoveSub=t.onPointerMove$.subscribeEvent(R=>{const{offsetX:T,offsetY:M}=R,{x:y,y:P}=t.getCoordRelativeToViewport(w.Vector2.FromArray([T,M]));this._widgetMoving(y,P,e),t.setCursor(e),C.scrolling(y,P,()=>{this._widgetMoving(y,P,e)})}),this._scenePointerUpSub=t.onPointerUp$.subscribeEvent(()=>{var T,M,y;const R=this._scene;R.resetCursor(),this._clearObserverEvent(),R.enableObjectsEvent(),(T=this._scrollTimer)==null||T.dispose(),this._control.selectionScaled$.next(this._targetSelection),(y=(M=this._selectionHooks).selectionMoveEnd)==null||y.call(M)})}_widgetMoving(r,e,t){const o=this._scene,i=o.getScrollXYInfoByViewport(w.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),{scaleX:s,scaleY:l}=o.getAncestorScale(),d=this._skeleton.getCellIndexByOffset(r,e,s,l,i),{row:c,column:u}=d;let h=this._relativeSelectionPositionRow,g=this._relativeSelectionPositionColumn,S=c,f=u;t===w.CURSOR_TYPE.NORTH_WEST_RESIZE?(h=c,g=u,S=this._relativeSelectionPositionRow,f=this._relativeSelectionPositionColumn):t===w.CURSOR_TYPE.NORTH_RESIZE?(h=c,g=this._relativeSelectionPositionColumn,S=this._relativeSelectionPositionRow,f=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength):t===w.CURSOR_TYPE.NORTH_EAST_RESIZE?(h=c,g=this._relativeSelectionPositionColumn,S=this._relativeSelectionPositionRow,f=u):t===w.CURSOR_TYPE.WEST_RESIZE?(h=this._relativeSelectionPositionRow,g=u,S=this._relativeSelectionPositionRow+this._relativeSelectionRowLength,f=this._relativeSelectionPositionColumn):t===w.CURSOR_TYPE.EAST_RESIZE?S=this._relativeSelectionPositionRow+this._relativeSelectionRowLength:t===w.CURSOR_TYPE.SOUTH_WEST_RESIZE?(h=this._relativeSelectionPositionRow,g=u,S=c,f=this._relativeSelectionPositionColumn):t===w.CURSOR_TYPE.SOUTH_RESIZE&&(h=this._relativeSelectionPositionRow,g=this._relativeSelectionPositionColumn,S=c,f=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength);const p=this._swapPositions(h,g,S,f),v=this._skeleton.getCellWithMergeInfoByIndex(h,g),b=Me({range:p,primary:v,style:null},this._skeleton);this._targetSelection={...b.rangeWithCoord},this._control.updateRangeBySelectionWithCoord(b),this._control.selectionScaling$.next(this._targetSelection)}_initialAutoFill(){const{fillControl:r}=this._control;r.onPointerEnter$.subscribeEvent(e=>{this._injector.get(ve).interceptor.fetchThroughInterceptors(Hi)(!1,{x:e.offsetX,y:e.offsetY,skeleton:this._skeleton,scene:this._scene})&&r.setCursor(w.CURSOR_TYPE.CROSSHAIR)}),r.onPointerLeave$.subscribeEvent(()=>{r.resetCursor()}),r.onPointerDown$.subscribeEvent(this._autoFillForPointerdown.bind(this))}_autoFillMoving(r,e){var k,N,D;const t=this._scene,o=t.getViewportScrollXY(this._activeViewport),{scaleX:i,scaleY:s}=t.getAncestorScale(),l=this._skeleton.getCellIndexByOffset(r,e,i,s,o),{row:d,column:c}=l,u=t.getCoordRelativeToViewport(w.Vector2.FromArray([r,e])),h=this._skeleton.getRowCount()-1,g=this._skeleton.getColumnCount()-1;let S=this._relativeSelectionPositionRow,f=this._relativeSelectionPositionColumn,p=this._relativeSelectionPositionRow+this._relativeSelectionRowLength,v=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength,C=!1,b=!0;if((c<f||c>v)&&d>=S&&d<=p){const W=this._fillRuler(c,f,v,this._relativeSelectionColumnLength,g);f=W.startRowOrColumn,v=W.endRowOrColumn,C=W.isLighten,b=!1}else if((d<S||d>p)&&c>=f&&c<=v){const W=this._fillRuler(d,S,p,this._relativeSelectionRowLength,h);S=W.startRowOrColumn,p=W.endRowOrColumn,C=W.isLighten}else if(Math.abs(this._startOffsetX-u.x-o.x)/2>Math.abs(this._startOffsetY-u.y-o.y)){const W=this._fillRuler(c,f,v,this._relativeSelectionColumnLength,g);f=W.startRowOrColumn,v=W.endRowOrColumn,C=W.isLighten,b=!1}else{const W=this._fillRuler(d,S,p,this._relativeSelectionRowLength,h);S=W.startRowOrColumn,p=W.endRowOrColumn,C=W.isLighten}const R=this._skeleton.getNoMergeCellWithCoordByIndex(S,f),T=this._skeleton.getNoMergeCellWithCoordByIndex(p,v),M=(R==null?void 0:R.startY)||0,y=(T==null?void 0:T.endY)||0,P=(R==null?void 0:R.startX)||0,x=(T==null?void 0:T.endX)||0;C?this._controlHandler((W,H)=>{const U=new a.ColorKit(this._fillControlColors[H]).lighten(Id).toRgbString();W.setProps({fill:U})}):this._controlHandler((W,H)=>{W.setProps({fill:this._fillControlColors[H]})});const A=m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/this._getScale();S===p&&b===!0||f===v&&b===!1?(k=this._helperSelection)==null||k.hide():((N=this._helperSelection)==null||N.transformByState({left:P-A/2,top:M-A/2,width:x-P,height:y-M}),(D=this._helperSelection)==null||D.show()),this._targetSelection={startY:M,endY:y,startX:P,endX:x,startRow:S,endRow:p,startColumn:f,endColumn:v},this._control.selectionFilling$.next(this._targetSelection)}_autoFillForPointerdown(r){const{offsetX:e,offsetY:t}=r,o=this._scene,i=o.getCoordRelativeToViewport(w.Vector2.FromArray([e,t])),{x:s,y:l}=i;this._startOffsetX=s,this._startOffsetY=l;const{startRow:d,startColumn:c,endRow:u,endColumn:h}=this._control.model;this._isInMergeState=this._hasMergeInRange(d,c,u,h),this._relativeSelectionPositionRow=d,this._relativeSelectionPositionColumn=c,this._relativeSelectionRowLength=u-d,this._relativeSelectionColumnLength=h-c;const g=this._control.currentStyle;let S=g==null?void 0:g.stroke,f=g==null?void 0:g.strokeWidth;const p=Rt(this._themeService);S==null&&(S=p.stroke),f==null&&(f=p.strokeWidth);const v=this._getScale();f/=v;const C=m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/v,b=new a.ColorKit(S).darken(2).toRgbString();this.isHelperSelection&&(this._helperSelection=new w.Rect(zs,{stroke:b,strokeWidth:f+C/2}),o.addObject(this._helperSelection)),this._activeViewport=o.getActiveViewportByCoord(w.Vector2.FromArray([e,t]));const R=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),T=w.ScrollTimer.create(o,this._activeViewport.viewportKey===w.SHEET_VIEWPORT_KEY.VIEW_MAIN?w.ScrollTimerType.ALL:w.ScrollTimerType.NONE);T.startScroll(s,l,R),this._scrollTimer=T,o.disableObjectsEvent(),this._controlHandler(M=>{this._fillControlColors.push(M.fill)}),this._scenePointerMoveSub=o.onPointerMove$.subscribeEvent(M=>{var W;const{offsetX:y,offsetY:P}=M,x=o.getActiveViewportByCoord(w.Vector2.FromArray([y,P]));if(!this._injector.get(ve).interceptor.fetchThroughInterceptors(Hi)(!1,{x:r.offsetX,y:r.offsetY,skeleton:this._skeleton,scene:this._scene}))return;const{x:k,y:N}=o.getCoordRelativeToViewport(w.Vector2.FromArray([y,P]));this._autoFillMoving(k,N),o.setCursor(w.CURSOR_TYPE.CROSSHAIR);const D=this._targetSelection;if(R&&x&&((W=this._activeViewport)==null?void 0:W.viewportKey)!==(x==null?void 0:x.viewportKey)){let H;D.startRow!==d?(T.scrollTimerType=w.ScrollTimerType.Y,H={...D,endRow:D.startRow}):D.endRow!==u?(T.scrollTimerType=w.ScrollTimerType.Y,H={...D,startRow:D.endRow}):D.startColumn!==c?(T.scrollTimerType=w.ScrollTimerType.X,H={...D,endColumn:D.startColumn}):(T.scrollTimerType=w.ScrollTimerType.X,H={...D,startColumn:D.endColumn}),this._isSelectionInViewport(H,x)&&(R.scrollToBarPos({x:T.scrollTimerType===w.ScrollTimerType.X?0:void 0,y:T.scrollTimerType===w.ScrollTimerType.Y?0:void 0}),this._activeViewport=x)}T.scrolling(k,N,()=>{this._autoFillMoving(k,N)})}),this._scenePointerUpSub=o.onPointerUp$.subscribeEvent(()=>{var y,P;(y=this._helperSelection)==null||y.dispose();const M=this._scene;M.resetCursor(),this._clearObserverEvent(),M.enableObjectsEvent(),(P=this._scrollTimer)==null||P.dispose(),this._control.refreshSelectionFilled(this._targetSelection),this._isInMergeState=!1,this._controlHandler((x,A)=>{x.setProps({fill:this._fillControlColors[A]})}),this._fillControlColors=[]})}_hasMergeInRange(r,e,t,o){return this._skeleton.worksheet.getMergedCellRange(r,e,t,o).length>0}_swapPositions(r,e,t,o){const i=Math.min(r,t),s=Math.min(e,o),l=Math.max(r,t),d=Math.max(e,o);return{startRow:i,startColumn:s,endRow:l,endColumn:d}}_controlHandler(r){const{leftControl:e,rightControl:t,topControl:o,bottomControl:i,backgroundControlTop:s,backgroundControlMiddleLeft:l,backgroundControlMiddleRight:d,backgroundControlBottom:c,fillControl:u}=this._control,h=[e,t,o,i,s,l,d,c,u];for(let g=0,S=h.length;g<S;g++){const f=h[g];r(f,g)}}_fillRuler(r,e,t,o,i){let s=!1;if(r<e)if(this._isInMergeState&&r<e){const l=e-r,d=o+1,c=Math.ceil(l/d);let u=e-c*d;u<0&&(u=e-(c-1)*d),e=u}else e=r;else if(r>=e&&r<=t)s=!0,this._isInMergeState||(t=r);else if(this._isInMergeState&&r>t){const l=r-t,d=o+1,c=Math.ceil(l/d);let u=t+c*d;u>i&&(u=t+(c-1)*d),t=u}else t=r;return{rowOrColumn:r,startRowOrColumn:e,endRowOrColumn:t,isLighten:s}}_getScale(){const{scaleX:r,scaleY:e}=this._scene.getAncestorScale();return Math.max(r,e)}}var Vi=(n=>(n.Selection="__SpreadsheetSelectionShape__",n.top="__SpreadsheetSelectionTopControl__",n.bottom="__SpreadsheetSelectionBottomControl__",n.left="__SpreadsheetSelectionShapeLeftControl__",n.right="__SpreadsheetSelectionShapeRightControl__",n.backgroundTop="__SpreadsheetSelectionBackgroundControlTop__",n.backgroundMiddleLeft="__SpreadsheetSelectionBackgroundControlMiddleLeft__",n.backgroundMiddleRight="__SpreadsheetSelectionBackgroundControlMiddleRight__",n.backgroundBottom="__SpreadsheetSelectionBackgroundControlBottom__",n.fill="__SpreadsheetSelectionFillControl__",n.fillTopLeft="__SpreadsheetSelectionFillControlTopLeft__",n.fillBottomRight="__SpreadsheetSelectionFillControlBottomRight__",n.fillTopLeftInner="__SpreadsheetSelectionFillControlTopLeftInner__",n.fillBottomRightInner="__SpreadsheetSelectionFillControlBottomRightInner__",n.lineMain="__SpreadsheetDragLineMainControl__",n.lineContent="__SpreadsheetDragLineContentControl__",n.line="__SpreadsheetDragLineControl__",n.dash="__SpreadsheetDragDashControl__",n.rowHeaderBackground="__SpreadSheetSelectionRowHeaderBackground__",n.rowHeaderBorder="__SpreadSheetSelectionRowHeaderBorder__",n.rowHeaderGroup="__SpreadSheetSelectionRowHeaderGroup__",n.columnHeaderBackground="__SpreadSheetSelectionColumnHeaderBackground__",n.columnHeaderBorder="__SpreadSheetSelectionColumnHeaderBorder__",n.columnHeaderGroup="__SpreadSheetSelectionColumnHeaderGroup__",n.topLeftWidget="__SpreadSheetSelectionTopLeftWidget__",n.topCenterWidget="__SpreadSheetSelectionTopCenterWidget__",n.topRightWidget="__SpreadSheetSelectionTopRightWidget__",n.middleLeftWidget="__SpreadSheetSelectionMiddleLeftWidget__",n.middleRightWidget="__SpreadSheetSelectionMiddleRightWidget__",n.bottomLeftWidget="__SpreadSheetSelectionBottomLeftWidget__",n.bottomCenterWidget="__SpreadSheetSelectionBottomCenterWidget__",n.bottomRightWidget="__SpreadSheetSelectionBottomRightWidget__",n))(Vi||{});const Xs=.3;class lo extends a.Disposable{constructor(e,t,o,i){var s,l,d,c;super();E(this,"_isHelperSelection",!0);E(this,"_enableAutoFill",!0);E(this,"_showAutoFill",!1);E(this,"_highlightHeader",!0);E(this,"_selectionRenderModel");E(this,"_leftBorder");E(this,"_rightBorder");E(this,"_topBorder");E(this,"_bottomBorder");E(this,"_backgroundControlTop");E(this,"_backgroundControlBottom");E(this,"_backgroundControlMiddleLeft");E(this,"_backgroundControlMiddleRight");E(this,"_autoFillControl");E(this,"_selectionShapeGroup");E(this,"_rowHeaderBackground");E(this,"_rowHeaderBorder");E(this,"_rowHeaderGroup");E(this,"_columnHeaderBackground");E(this,"_columnHeaderBorder");E(this,"_columnHeaderGroup");E(this,"_dashedRect");E(this,"_topLeftWidget");E(this,"_topCenterWidget");E(this,"_topRightWidget");E(this,"_middleLeftWidget");E(this,"_middleRightWidget");E(this,"_bottomLeftWidget");E(this,"_bottomCenterWidget");E(this,"_bottomRightWidget");E(this,"_defaultStyle");E(this,"_currentStyle");E(this,"_rowHeaderWidth",0);E(this,"_columnHeaderHeight",0);E(this,"_widgetRects",[]);E(this,"_controlExtension");E(this,"_dispose$",new O.BehaviorSubject(this));E(this,"dispose$",this._dispose$.asObservable());E(this,"selectionMoving$",new O.Subject);E(this,"selectionMoveEnd$",new O.Subject);E(this,"selectionScaling$",new O.Subject);E(this,"selectionScaled$",new O.Subject);E(this,"selectionFilling$",new O.Subject);E(this,"_selectionFilled$",new O.Subject);E(this,"selectionFilled$",this._selectionFilled$.asObservable());E(this,"_antLineOffset",0);E(this,"_antRequestNewFrame",-1);this._scene=e,this._zIndex=t,this._themeService=o,this._enableAutoFill=(s=i==null?void 0:i.enableAutoFill)!=null?s:!0,this._highlightHeader=(l=i==null?void 0:i.highlightHeader)!=null?l:!0,this._rowHeaderWidth=(d=i==null?void 0:i.rowHeaderWidth)!=null?d:0,this._columnHeaderHeight=(c=i==null?void 0:i.columnHeaderHeight)!=null?c:0,this._initializeSheetBody(),this._initialHeader()}_initializeSheetBody(){this._defaultStyle=Rt(this._themeService),this._currentStyle=Rt(this._themeService),this._selectionRenderModel=new Cd;const e=this._zIndex;this._leftBorder=new w.Rect("__SpreadsheetSelectionShapeLeftControl__"+e,{zIndex:e}),this._rightBorder=new w.Rect("__SpreadsheetSelectionShapeRightControl__"+e,{zIndex:e}),this._topBorder=new w.Rect("__SpreadsheetSelectionTopControl__"+e,{zIndex:e}),this._bottomBorder=new w.Rect("__SpreadsheetSelectionBottomControl__"+e,{zIndex:e}),this._backgroundControlTop=new w.Rect("__SpreadsheetSelectionBackgroundControlTop__"+e,{zIndex:e-1,evented:!1}),this._backgroundControlBottom=new w.Rect("__SpreadsheetSelectionBackgroundControlBottom__"+e,{zIndex:e-1,evented:!1}),this._backgroundControlMiddleLeft=new w.Rect("__SpreadsheetSelectionBackgroundControlMiddleLeft__"+e,{zIndex:e-1,evented:!1}),this._backgroundControlMiddleRight=new w.Rect("__SpreadsheetSelectionBackgroundControlMiddleRight__"+e,{zIndex:e-1,evented:!1}),this._autoFillControl=new w.Rect("__SpreadsheetSelectionFillControl__"+e,{zIndex:e+1}),this._autoFillControl.hide(),this._dashedRect=new w.DashedRect("__SpreadsheetDragDashControl__"+e,{zIndex:e+2,evented:!1,stroke:"#fff"});const t=[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 w.Group("__SpreadsheetSelectionShape__"+e,...t,...this._widgetRects),this._selectionShapeGroup.hide(),this._selectionShapeGroup.evented=!1,this._selectionShapeGroup.zIndex=e;const o=this.getScene();o.addObject(this._selectionShapeGroup,Jo),this.disposeWithMe(a.toDisposable(o.onTransformChange$.subscribeEvent(i=>{i.type===w.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale&&(this._updateLayoutOfSelectionControl(this._currentStyle),this._updateControlCoord())})))}_initialHeader(){const e=this._zIndex;this._rowHeaderBackground=new w.Rect("__SpreadSheetSelectionRowHeaderBackground__"+e,{zIndex:e-1,evented:!1}),this._rowHeaderBorder=new w.Rect("__SpreadSheetSelectionRowHeaderBorder__"+e,{zIndex:e-1,evented:!1}),this._rowHeaderGroup=new w.Group("__SpreadSheetSelectionRowHeaderGroup__"+e,this._rowHeaderBackground,this._rowHeaderBorder),this._rowHeaderGroup.hide(),this._rowHeaderGroup.evented=!1,this._rowHeaderGroup.zIndex=e,this._columnHeaderBackground=new w.Rect("__SpreadSheetSelectionColumnHeaderBackground__"+e,{zIndex:e-1,evented:!1}),this._columnHeaderBorder=new w.Rect("__SpreadSheetSelectionColumnHeaderBorder__"+e,{zIndex:e-1,evented:!1}),this._columnHeaderGroup=new w.Group("__SpreadSheetSelectionColumnHeaderGroup__"+e,this._columnHeaderBackground,this._columnHeaderBorder),this._columnHeaderGroup.hide(),this._columnHeaderGroup.evented=!1,this._columnHeaderGroup.zIndex=e,this.getScene().addObjects([this._rowHeaderGroup,this._columnHeaderGroup],vd)}_initialWidget(){const e=this._zIndex;return this._topLeftWidget=new w.Rect("__SpreadSheetSelectionTopLeftWidget__"+e,{zIndex:e+1}),this._topCenterWidget=new w.Rect("__SpreadSheetSelectionTopCenterWidget__"+e,{zIndex:e+1}),this._topRightWidget=new w.Rect("__SpreadSheetSelectionTopRightWidget__"+e,{zIndex:e+1}),this._middleLeftWidget=new w.Rect("__SpreadSheetSelectionMiddleLeftWidget__"+e,{zIndex:e+1}),this._middleRightWidget=new w.Rect("__SpreadSheetSelectionMiddleRightWidget__"+e,{zIndex:e+1}),this._bottomLeftWidget=new w.Rect("__SpreadSheetSelectionBottomLeftWidget__"+e,{zIndex:e+1}),this._bottomCenterWidget=new w.Rect("__SpreadSheetSelectionBottomCenterWidget__"+e,{zIndex:e+1}),this._bottomRightWidget=new w.Rect("__SpreadSheetSelectionBottomRightWidget__"+e,{zIndex:e+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(e){this._selectionRenderModel=e}get currentStyle(){return this._currentStyle}set currentStyle(e){this._currentStyle=e}get dashedRect(){return this._dashedRect}get isHelperSelection(){return this._isHelperSelection}get rowHeaderWidth(){return this._rowHeaderWidth}set rowHeaderWidth(e){this._rowHeaderWidth=e}get columnHeaderHeight(){return this._columnHeaderHeight}set columnHeaderHeight(e){this._columnHeaderHeight=e}setControlExtension(e){this._controlExtension=new Za(this,e)}setEvent(e){this.leftControl.evented=e,this.rightControl.evented=e,this.topControl.evented=e,this.bottomControl.evented=e}refreshSelectionFilled(e){this._selectionFilled$.next(e)}_updateLayoutOfSelectionControl(e){e&&(this.currentStyle=Object.assign({},this._defaultStyle,e));const t=this.currentStyle,{stroke:o,widgets:i,autofillStroke:s,strokeDash:l,isAnimationDash:d}=t;let c=t.autofillSize,u=t.strokeWidth,h=t.autofillStrokeWidth;const g=this._getScale(),S=(u+m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH)/2/g;u/=g,c/=g,h/=g<1?1:g;const f=m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/g,p=w.FIX_ONE_PIXEL_BLUR_OFFSET/g,{startX:v,startY:C,endX:b,endY:R}=this._selectionRenderModel;if(this.leftControl.transformByState({height:R-C,left:-S+p,width:u,strokeWidth:f,top:-f/2+p}),this.leftControl.setProps({fill:o,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.rightControl.transformByState({height:R-C,left:b-v-S+p,width:u,strokeWidth:f,top:-f/2+p}),this.rightControl.setProps({fill:o,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.topControl.transformByState({width:b-v+u,top:-S+p,left:-S+p,height:u,strokeWidth:f}),this.topControl.setProps({fill:o,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.bottomControl.transformByState({width:b-v+u,top:R-C-S+p,height:u,left:-S+p,strokeWidth:f}),this.bottomControl.setProps({fill:o,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),l==null)this.dashedRect.hide(),this._stopAntLineAnimation();else{const T=t.strokeWidth*2/g;this.dashedRect.transformByState({height:R-C,width:b-v,strokeWidth:T,left:-T/2+p,top:-T/2+p}),this.dashedRect.setProps({strokeDashArray:[0,l/g]}),this._stopAntLineAnimation(),d!==!1&&this._startAntLineAnimation(),this.dashedRect.show()}if(this._showAutoFill=this._showAutoFill&&this._enableAutoFill,this._showAutoFill&&!this._hasWidgets(i)){const T={fill:o,stroke:s,strokeScaleEnabled:!1},M={width:c-h,height:c-h,left:b-v-c/2+h/2-p,top:R-C-c/2+h/2-p,strokeWidth:h};this._autoFillControl.setProps(T),this._autoFillControl.transformByState(M),this._autoFillControl.show()}else this._autoFillControl.hide();this._updateBackgroundControl(t),this._updateHeaderBackground(t),this._updateWidgets(t)}_updateControlCoord(){const{startX:e,startY:t}=this._selectionRenderModel;this.selectionShapeGroup.show(),this.selectionShapeGroup.translate(e,t),this.selectionShapeGroup.makeDirtyNoDebounce(!0)}updateStyle(e){this._updateLayoutOfSelectionControl(e),this._updateControlCoord()}updateRange(e,t){this._selectionRenderModel.setValue(e,t),this._showAutoFill=t!==null,this._updateLayoutOfSelectionControl(),this._updateControlCoord()}updateRangeBySelectionWithCoord(e,t){t&&(this._rowHeaderWidth=t.getWorksheetConfig().rowHeader.width,this._columnHeaderHeight=t.getWorksheetConfig().columnHeader.height),this._selectionRenderModel.setValue(e.rangeWithCoord,e.primaryWithCoord),this._showAutoFill=e.primaryWithCoord!==null,this._updateLayoutOfSelectionControl(e.style),this._updateControlCoord()}update(e,t=0,o=0,i,s){this._rowHeaderWidth=t,this._columnHeaderHeight=o,this.updateRangeBySelectionWithCoord({rangeWithCoord:e,primaryWithCoord:s,style:i}),i&&this.updateStyle(i)}updateCurrCell(e){this._showAutoFill=e!==null,this._selectionRenderModel.setCurrentCell(e)}clearHighlight(){this._showAutoFill=!1,this._selectionRenderModel.clearCurrentCell(),this._updateLayoutOfSelectionControl(this._currentStyle)}getScene(){return this._scene}dispose(){var e,t,o,i,s,l,d,c,u,h,g,S,f,p,v,C,b,R,T,M,y,P,x,A,k;(e=this._leftBorder)==null||e.dispose(),(t=this._rightBorder)==null||t.dispose(),(o=this._topBorder)==null||o.dispose(),(i=this._bottomBorder)==null||i.dispose(),(s=this._backgroundControlTop)==null||s.dispose(),(l=this._backgroundControlMiddleLeft)==null||l.dispose(),(d=this._backgroundControlMiddleRight)==null||d.dispose(),(c=this._backgroundControlBottom)==null||c.dispose(),this._autoFillControl.dispose(),(u=this._selectionShapeGroup)==null||u.dispose(),(h=this._rowHeaderBackground)==null||h.dispose(),(g=this._rowHeaderBorder)==null||g.dispose(),(S=this._rowHeaderGroup)==null||S.dispose(),(f=this._rowHeaderBackground)==null||f.dispose(),(p=this._columnHeaderBackground)==null||p.dispose(),(v=this._columnHeaderBorder)==null||v.dispose(),(C=this._columnHeaderGroup)==null||C.dispose(),(b=this._topLeftWidget)==null||b.dispose(),(R=this._topCenterWidget)==null||R.dispose(),(T=this._topRightWidget)==null||T.dispose(),(M=this._middleLeftWidget)==null||M.dispose(),(y=this._middleRightWidget)==null||y.dispose(),(P=this._bottomLeftWidget)==null||P.dispose(),(x=this._bottomCenterWidget)==null||x.dispose(),(A=this._bottomRightWidget)==null||A.dispose(),(k=this._controlExtension)==null||k.dispose(),super.dispose(),this._dispose$.next(this),this._dispose$.complete()}getCurrentCellInfo(){const e=this.model.currentCell;if(e){let t;if(e.isMerged){const o=e.mergeInfo;t={startRow:o.startRow,endRow:o.endRow,startColumn:o.startColumn,endColumn:o.endColumn,startX:o.startX,endX:o.endX,startY:o.startY,endY:o.endY}}else{const{actualRow:o,actualColumn:i,startX:s,endX:l,startY:d,endY:c}=e;t={startRow:o,endRow:o,startColumn:i,endColumn:i,startX:s,endX:l,startY:d,endY:c}}return t}}getValue(){return{...this._selectionRenderModel.getValue(),style:this._currentStyle}}getRange(){return this._selectionRenderModel.getValue().rangeWithCoord}enableHelperSelection(){this._isHelperSelection=!0}disableHelperSelection(){this._isHelperSelection=!1}_updateHeaderBackground(e){const{startX:t,startY:o,endX:i,endY:s,rangeType:l}=this._selectionRenderModel,d=this._currentStyle,c=this._getScale(),{stroke:u,rowHeaderFill:h=d.rowHeaderFill,rowHeaderStroke:g=d.rowHeaderStroke,columnHeaderFill:S=d.columnHeaderFill,columnHeaderStroke:f=d.columnHeaderStroke}=e;let{rowHeaderStrokeWidth:p=d.rowHeaderStrokeWidth,columnHeaderStrokeWidth:v=d.columnHeaderStrokeWidth}=e;p/=c,v/=c;const C=this._rowHeaderWidth,b=this._columnHeaderHeight;if(this._highlightHeader&&b>0){let R=S;l===a.RANGE_TYPE.COLUMN&&(R=new a.ColorKit(u).setAlpha(Xs).toString()),this._columnHeaderBackground.setProps({fill:R}),this._columnHeaderBackground.resize(i-t,b),this._columnHeaderBorder.setProps({fill:f}),this._columnHeaderBorder.transformByState({width:i-t,height:v,top:b-v+1/c}),this._columnHeaderGroup.show(),this._columnHeaderGroup.translate(t,0)}else this._columnHeaderGroup.hide();if(this._columnHeaderGroup.makeDirty(!0),this._highlightHeader&&C>0){let R=h;l===a.RANGE_TYPE.ROW&&(R=new a.ColorKit(u).setAlpha(Xs).toString()),this._rowHeaderBackground.setProps({fill:R}),this._rowHeaderBackground.resize(C,s-o),this._rowHeaderBorder.setProps({fill:g}),this._rowHeaderBorder.transformByState({width:p,height:s-o,left:C-p+1/c}),this._rowHeaderGroup.show(),this._rowHeaderGroup.translate(0,o)}else this._rowHeaderGroup.hide();this._rowHeaderGroup.makeDirty(!0)}_updateBackgroundControl(e){const{startX:t,startY:o,endX:i,endY:s}=this._selectionRenderModel,l=this._getScale(),{fill:d=e.fill}=e;let{strokeWidth:c}=e;c/=l;const u=this._selectionRenderModel.highlightToSelection();if(!u){this._backgroundControlTop.resize(i-t,s-o),this._backgroundControlTop.setProps({fill:d}),this._backgroundControlBottom.resize(0,0),this._backgroundControlMiddleLeft.resize(0,0),this._backgroundControlMiddleRight.resize(0,0);return}const{startX:h,startY:g,endX:S,endY:f}=u,p=c/2,v={left:-p,top:-p,width:i-t+p*2,height:g-o+p};v.height<0&&(v.width=0,v.height=0),this._backgroundControlTop.transformByState(v);const C={left:-p,top:g-o,width:h-t+p,height:f-g};C.width<0&&(C.width=0,C.height=0),this._backgroundControlMiddleLeft.transformByState(C);const b={left:S-t-p,top:g-o,width:i-S+p*2,height:f-g};b.width<0&&(b.width=0,b.height=0),this._backgroundControlMiddleRight.transformByState(b);const R={left:-p,top:f-o,width:i-t+p*2,height:s-f+p};R.height<0&&(R.width=0,R.height=0),this._backgroundControlBottom.transformByState(R),this._backgroundControlTop.setProps({fill:d}),this._backgroundControlMiddleLeft.setProps({fill:d}),this._backgroundControlMiddleRight.setProps({fill:d}),this._backgroundControlBottom.setProps({fill:d})}_updateWidgets(e){const{startX:t,startY:o,endX:i,endY:s}=this._selectionRenderModel,{stroke:l=e.stroke,widgets:d=e.widgets,widgetStroke:c=e.widgetStroke}=e,u=this._getScale();let{widgetSize:h,widgetStrokeWidth:g}=e;h/=u,g/=u;const S={left:-h/2+g/2,center:(i-t)/2-h/2+g/2,right:i-t-h/2+g/2,top:-h/2,middle:(s-o)/2-h/2,bottom:s-o-h/2+g/2},f=h-g;this._widgetRects.forEach(p=>{p.setProps({fill:l,stroke:c})}),d.tl===!0?(this._topLeftWidget.transformByState({height:f,width:f,left:S.left,top:S.top,strokeWidth:g}),this._topLeftWidget.show()):this._topLeftWidget.hide(),d.tc===!0?(this._topCenterWidget.transformByState({height:f,width:f,left:S.center,top:S.top,strokeWidth:g}),this._topCenterWidget.show()):this._topCenterWidget.hide(),d.tr===!0?(this._topRightWidget.transformByState({height:f,width:f,left:S.right,top:S.top,strokeWidth:g}),this._topRightWidget.show()):this._topRightWidget.hide(),d.ml===!0?(this._middleLeftWidget.transformByState({height:f,width:f,left:S.left,top:S.middle,strokeWidth:g}),this._middleLeftWidget.show()):this._middleLeftWidget.hide(),d.mr===!0?(this._middleRightWidget.transformByState({height:f,width:f,left:S.right,top:S.middle,strokeWidth:g}),this._middleRightWidget.show()):this._middleRightWidget.hide(),d.bl===!0?(this._bottomLeftWidget.transformByState({height:f,width:f,left:S.left,top:S.bottom,strokeWidth:g}),this._bottomLeftWidget.show()):this._bottomLeftWidget.hide(),d.bc===!0?(this._bottomCenterWidget.transformByState({height:f,width:f,left:S.center,top:S.bottom,strokeWidth:g}),this._bottomCenterWidget.show()):this._bottomCenterWidget.hide(),d.br===!0?(this._bottomRightWidget.transformByState({height:f,width:f,left:S.right,top:S.bottom,strokeWidth:g}),this._bottomRightWidget.show()):this._bottomRightWidget.hide()}_hasWidgets(e){if(e==null)return!1;const t=Object.keys(e);if(t.length===0)return!1;for(const o of t)if(e[o]===!0)return!0;return!1}_getScale(){const{scaleX:e,scaleY:t}=this._scene.getAncestorScale();return Math.max(e,t)}_stopAntLineAnimation(){this._antLineOffset=0,w.cancelRequestFrame(this._antRequestNewFrame)}_startAntLineAnimation(){const e=this._getScale();this._antLineOffset+=.6/e,this._antLineOffset>160/e&&(this._antLineOffset=0),this.dashedRect.setProps({strokeDashOffset:-this._antLineOffset}),this._antRequestNewFrame=w.requestNewFrame(()=>{this._startAntLineAnimation()})}}class _d extends w.Layer{render(r,e=!1){const t=a.Tools.now();return super.render(r,e),this._afterRender(t),this}_afterRender(r){this.scene.getEngine().renderFrameTimeMetric$.next(["selectionLayer",a.Tools.now()-r])}}const ve=a.createIdentifier("univer.sheet.selection-render-service");class hs extends a.Disposable{constructor(e,t,o,i,s){super();E(this,"_downObserver");E(this,"_scenePointerMoveSub");E(this,"_scenePointerUpSub");E(this,"_controlFillConfig$",new O.BehaviorSubject(null));E(this,"controlFillConfig$",this._controlFillConfig$.asObservable());E(this,"_selectionControls",[]);E(this,"_startRangeWhenPointerDown",{startY:0,endY:0,startX:0,endX:0,startRow:-1,endRow:-1,startColumn:-1,endColumn:-1});E(this,"_activeControlIndex",-1);E(this,"_startViewportPosX",0);E(this,"_startViewportPosY",0);E(this,"_scrollTimer");E(this,"_cancelDownSubscription");E(this,"_cancelUpSubscription");E(this,"_skeleton");E(this,"_scene");E(this,"_highlightHeader",!0);E(this,"_rangeType",a.RANGE_TYPE.NORMAL);E(this,"_selectionStyle");E(this,"_remainLastEnabled",!1);E(this,"_skipLastEnabled",!1);E(this,"_singleSelectionEnabled",!1);E(this,"_selectionMoveEnd$",new O.BehaviorSubject([]));E(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());E(this,"_selectionMoving$",new O.Subject);E(this,"selectionMoving$",this._selectionMoving$.asObservable());E(this,"_selectionMoveStart$",new O.Subject);E(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());E(this,"_selectionMoving",!1);E(this,"_selectionTheme");E(this,"_activeViewport");E(this,"interceptor",new a.InterceptorManager({RANGE_MOVE_PERMISSION_CHECK:Di,RANGE_FILL_PERMISSION_CHECK:Hi}));E(this,"_escapeShortcutDisposable",null);this._injector=e,this._themeService=t,this._shortcutService=o,this._sheetSkeletonManagerService=i,this.contextService=s,this._initSelectionThemeFromThemeService(),this._initMoving()}get selectionMoving(){return this._selectionMoving}get _shouldDetectMergedCells(){return this._rangeType===a.RANGE_TYPE.NORMAL}_initMoving(){this.disposeWithMe(this._selectionMoving$.subscribe(()=>{this._selectionMoving=!0})),this.disposeWithMe(this._selectionMoveEnd$.subscribe(()=>{this._selectionMoving=!1}))}_setSelectionStyle(e){this._selectionStyle=e}getViewPort(){return this._activeViewport}setSingleSelectionEnabled(e=!1){this._singleSelectionEnabled=e}newSelectionControl(e,t,o){const i=this.getSelectionControls().length,{rowHeaderWidth:s,columnHeaderHeight:l}=t,d=new lo(e,i,this._selectionTheme,{highlightHeader:this._highlightHeader,rowHeaderWidth:s,columnHeaderHeight:l});this._selectionControls.push(d);const c=Me(o,t);return d.updateRangeBySelectionWithCoord(c,t),d.setControlExtension({skeleton:t,scene:e,themeService:this._selectionTheme,injector:this._injector,selectionHooks:{selectionMoveEnd:()=>{this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}}}),d}resetSelectionsByModelData(e){const t=this.getSelectionControls(),o=this._skeleton;if(!(!t||!o)){for(let i=0,s=e.length;i<s;i++){const l=e[i],d=Me(l,this._skeleton),c=t[i];c?c.updateRangeBySelectionWithCoord(d,o):this.isSelectionEnabled()&&this.newSelectionControl(this._scene,o,l)}e.length<t.length&&t.splice(e.length).forEach(s=>s.dispose())}}refreshSelectionMoveStart(){this._selectionMoveStart$.next(this.getSelectionDataWithStyle())}refreshSelectionMoveEnd(){this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}_initSelectionThemeFromThemeService(){const e=this._themeService.getCurrentTheme();this._selectionTheme=new a.ThemeService,this._selectionTheme.setTheme(e)}setSelectionTheme(e){this._selectionTheme.setTheme(e)}_changeRuntime(e,t,o){this._skeleton=e,this._scene=t,this._activeViewport=o||(t==null?void 0:t.getViewports()[0]),t.findLayerByZIndex(Jo)||t.addLayer(new _d(t,[],Jo))}getSkeleton(){return this._skeleton}getSelectionDataWithStyle(){const e=this._selectionControls,[t,o]=this._skeleton.getLocation();return e.map(i=>{const s=i.getValue();return s.rangeWithCoord.sheetId=o,s.rangeWithCoord.unitId=t,s})}getSelectionControls(){return this._selectionControls}_addSelectionControlByModelData(e){var l;const t=this._skeleton,o=(l=e.style)!=null?l:Rt(this._selectionTheme),i=this._scene;return e.style=o,this.newSelectionControl(i,t,e)}_clearAllSelectionControls(){const e=this._selectionControls;for(const t of e)t.dispose();this._selectionControls.length=0}_getFreeze(){var t;return(t=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:t.skeleton.getWorksheetConfig().freeze}_getViewportByCell(e,t){if(e===void 0||t===void 0)return null;const o=this._getFreeze();if(!o||o.startRow<=0&&o.startColumn<=0)return this._scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(e>o.startRow&&t>o.startColumn)return this._scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(e<=o.startRow&&t<=o.startColumn)return this._scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(e<=o.startRow&&t>o.startColumn)return this._scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(e>o.startRow&&t<=o.startColumn)return this._scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)}getActiveRange(){const e=this.getSelectionControls(),t=e&&e[e.length-1].model;return t&&{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn}}setActiveSelectionIndex(e){this._activeControlIndex=e}resetActiveSelectionIndex(){this._activeControlIndex=-1}getActiveSelectionControl(){const e=this.getSelectionControls();if(e)return this._activeControlIndex<0?e[e.length-1]:e[this._activeControlIndex]}endSelection(){var e;this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),(e=this._escapeShortcutDisposable)==null||e.dispose(),this._escapeShortcutDisposable=null}_reset(){var e;this._clearAllSelectionControls(),(e=this._downObserver)==null||e.unsubscribe(),this._downObserver=null}_setupPointerMoveListener(e,t,o,i=w.ScrollTimerType.ALL,s,l){var f,p;let d=0,c=0,u=s,h=l;this._scrollTimer=w.ScrollTimer.create(this._scene,i),this._scrollTimer.startScroll((f=e==null?void 0:e.left)!=null?f:0,(p=e==null?void 0:e.top)!=null?p:0,e);const g=this._scene,S=g.getActiveViewportByCoord(w.Vector2.FromArray([s,l]));this._scenePointerMoveSub=g.onPointerMove$.subscribeEvent(v=>{var D,W,H,U,B,F,L,z,X;const{offsetX:C,offsetY:b}=v,{x:R,y:T}=g.getCoordRelativeToViewport(w.Vector2.FromArray([C,b]));this._movingHandler(R,T,t,o);let M=R,y=T;const P=this.getActiveSelectionControl(),x=this._getFreeze(),A=P==null?void 0:P.model,k=(D=g.getActiveViewportByCoord(w.Vector2.FromArray([C,b])))!=null?D:this._getViewportByCell(A==null?void 0:A.endRow,A==null?void 0:A.endColumn);if((()=>{if(!S||!k||!e)return!1;const Z=[w.SHEET_VIEWPORT_KEY.VIEW_MAIN,w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP,w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP,w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT];return Z.includes(S.viewportKey)&&Z.includes(k.viewportKey)})()){if(!S||!k||!e)return!1;const Z=u<e.left&&R>e.left||u>e.left&&R<e.left,oe=h<e.top&&T>e.top||h>e.top&&T<e.top;Z&&(d+=1),oe&&(c+=1);const Q=S.viewportKey,ie=k.viewportKey;if(Q===w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP)b<e.top&&((W=A==null?void 0:A.endRow)!=null?W:0)<((H=x==null?void 0:x.startRow)!=null?H:0)?y=e.top:oe&&c%2===1&&e.scrollToViewportPos({viewportScrollY:0});else if(Q===w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT)C<e.left&&((U=A==null?void 0:A.endColumn)!=null?U:0)<((B=x==null?void 0:x.startColumn)!=null?B:0)?M=e.left:Z&&d%2===1&&e.scrollToViewportPos({viewportScrollX:0});else if(Q===ie){let $=!1,j=!1;Q===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP?($=!0,j=!0):Q===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP?j=!0:Q===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT&&($=!0),((F=A==null?void 0:A.endRow)!=null?F:0)>((L=x==null?void 0:x.startRow)!=null?L:0)&&(j=!1),((z=A==null?void 0:A.endColumn)!=null?z:0)>((X=x==null?void 0:x.startColumn)!=null?X:0)&&($=!1),$&&(M=e.left),j&&(y=e.top)}else{const $={x:S.scrollX,y:S.scrollY},j={x:k.scrollX,y:k.scrollY},Y=$.x!==j.x&&Z&&d%2===1,q=$.y!==j.y&&oe&&c%2===1;(Y||q)&&(e.scrollToBarPos({x:Y?$.x:void 0,y:q?$.y:void 0}),Y||(M=e.left),q||(y=e.top)),(Q===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&ie===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||ie===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&Q===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)&&(M=e.left),(Q===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&ie===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||ie===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&Q===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP)&&(y=e.top)}u=R,h=T}this._scrollTimer.scrolling(M,y,()=>{this._movingHandler(R,T,t,o)})})}attachSelectionWithCoord(e){return Me(e,this._skeleton)}attachPrimaryWithCoord(e){return Jn(this._skeleton,e)}getSelectionCellByPosition(e,t){return this.getCellWithCoordByOffset(e,t)}getCellWithCoordByOffset(e,t,o){const i=this._scene,s=o!=null?o:this._skeleton,l=i.getViewportScrollXY(i.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX:d,scaleY:c}=i.getAncestorScale();return s.getCellWithCoordByOffset(e,t,d,c,l)}_movingHandler(e,t,o,i){var M,y,P,x,A;const s=this._skeleton,l=this._scene,[d,c]=s.getLocation(),u={startRow:(M=o==null?void 0:o.model.startRow)!=null?M:-1,endRow:(y=o==null?void 0:o.model.endRow)!=null?y:-1,startColumn:(P=o==null?void 0:o.model.startColumn)!=null?P:-1,endColumn:(x=o==null?void 0:o.model.endColumn)!=null?x:-1},h=l.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),g=(A=this._getViewportByCell(u.endRow,u.endColumn))!=null?A:h,S=l.getScrollXYInfoByViewport(w.Vector2.FromArray([this._startViewportPosX,this._startViewportPosY]),g),{scaleX:f,scaleY:p}=l.getAncestorScale();i===a.RANGE_TYPE.ROW?e=Number.POSITIVE_INFINITY:i===a.RANGE_TYPE.COLUMN&&(t=Number.POSITIVE_INFINITY);const v=this._skeleton.getCellByOffset(e,t,f,p,S);if(!v)return;let C={startRow:Math.min(v.startRow,this._startRangeWhenPointerDown.startRow),startColumn:Math.min(v.startColumn,this._startRangeWhenPointerDown.startColumn),endRow:Math.max(v.endRow,this._startRangeWhenPointerDown.endRow),endColumn:Math.max(v.endColumn,this._startRangeWhenPointerDown.endColumn)};this._shouldDetectMergedCells&&(C=s.expandRangeByMerge(C));const R=Me({range:C,primary:void 0,style:null},s);R.rangeWithCoord.unitId=d,R.rangeWithCoord.sheetId=c,R.rangeWithCoord.rangeType=i;const T=u.startRow!==C.startRow||u.startColumn!==C.startColumn||u.endRow!==C.endRow||u.endColumn!==C.endColumn;o!=null&&T&&(o.updateRangeBySelectionWithCoord(R),this._selectionMoving$.next(this.getSelectionDataWithStyle()))}_clearUpdatingListeners(){var t,o,i,s,l;this._scene.enableObjectsEvent(),(t=this._scenePointerMoveSub)==null||t.unsubscribe(),this._scenePointerMoveSub=null,(o=this._scenePointerUpSub)==null||o.unsubscribe(),this._scenePointerUpSub=null,(i=this._cancelDownSubscription)==null||i.unsubscribe(),this._cancelDownSubscription=null,(s=this._cancelUpSubscription)==null||s.unsubscribe(),this._cancelUpSubscription=null,(l=this._scrollTimer)==null||l.dispose()}_addEndingListeners(){var o,i,s;const e=this._scene,t=(o=e.getEngine())==null?void 0:o.activeScene;!t||t===e||((i=this._cancelDownSubscription)==null||i.unsubscribe(),this._cancelDownSubscription=null,(s=this._cancelUpSubscription)==null||s.unsubscribe(),this._cancelUpSubscription=null,this._cancelDownSubscription=t.onPointerDown$.subscribeEvent(()=>this._clearUpdatingListeners()),this._cancelUpSubscription=t.onPointerUp$.subscribeEvent(()=>this._clearUpdatingListeners()))}_getSelectionWithCoordByOffset(e,t,o,i,s){const l=this._skeleton;if(l==null)return null;if(this._shouldDetectMergedCells){const C=l==null?void 0:l.getCellWithCoordByOffset(e,t,o,i,s,{firstMatch:!0});if(!C)return;const b=a.convertCellToRange(C);return{primaryWithCoord:C,rangeWithCoord:b}}const{row:d,column:c}=l.getCellIndexByOffset(e,t,o,i,s),u=l.getNoMergeCellWithCoordByIndex(d,c),{startX:h,startY:g,endX:S,endY:f}=u,p={startY:g,endY:f,startX:h,endX:S,startRow:d,endRow:d,startColumn:c,endColumn:c};return{primaryWithCoord:{mergeInfo:p,actualRow:d,actualColumn:c,isMerged:!1,isMergedMainCell:!1,startY:g,endY:f,startX:h,endX:S},rangeWithCoord:p}}_checkClearPreviousControls(e){this.getSelectionControls().length!==0&&(!e.ctrlKey&&!e.shiftKey&&!this._remainLastEnabled||this._singleSelectionEnabled&&!e.shiftKey)&&this._clearAllSelectionControls()}_makeSelectionByTwoCells(e,t,o,i,s){const{actualRow:l,actualColumn:d,mergeInfo:c}=e;this._startRangeWhenPointerDown={...e.mergeInfo};const u=Math.min(l,t.startRow,c.startRow),h=Math.max(l,t.endRow,c.endRow),g=Math.min(d,t.startColumn,c.startColumn),S=Math.max(d,t.endColumn,c.endColumn),p={range:o.expandRangeByMerge({startRow:u,startColumn:g,endRow:h,endColumn:S}),primary:null,style:null},v=Me(p,o);s.updateRangeBySelectionWithCoord(v)}isSelectionEnabled(){return this.contextService.getContextValue(m.SELECTIONS_ENABLED)}isSelectionDisabled(){return this.contextService.getContextValue(m.SELECTIONS_ENABLED)===!1}inRefSelectionMode(){return this.contextService.getContextValue(m.REF_SELECTIONS_ENABLED)}}function ms(n){return{range:{startRow:0,startColumn:0,endRow:n.getRowCount()-1,endColumn:n.getColumnCount()-1,rangeType:a.RANGE_TYPE.ALL},primary:Pr(n).primary,style:null}}function Pr(n){return Ka(n,{startRow:0,startColumn:0,endRow:0,endColumn:0})}function Ka(n,r){const e=n.worksheet.getCellInfoInMergeData(r.startRow,r.startColumn),t=n.worksheet.getCellInfoInMergeData(r.endRow,r.endColumn);return{range:{startRow:e.startRow,startColumn:e.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:a.RANGE_TYPE.NORMAL},primary:{actualRow:e.startRow,actualColumn:e.startColumn,startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,isMerged:e.isMerged,isMergedMainCell:e.isMergedMainCell},style:null}}var bd=Object.getOwnPropertyDescriptor,Rd=(n,r,e,t)=>{for(var o=t>1?void 0:t?bd(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ys=(n,r)=>(e,t)=>r(e,t,n);exports.SheetSkeletonManagerService=class extends a.Disposable{constructor(e,t,o){super();E(this,"_sheetId","");E(this,"_sheetSkeletonParamStore",new Map);E(this,"_currentSkeleton$",new O.BehaviorSubject(null));E(this,"currentSkeleton$",this._currentSkeleton$.asObservable());E(this,"_currentSkeletonBefore$",new O.BehaviorSubject(null));E(this,"currentSkeletonBefore$",this._currentSkeletonBefore$.asObservable());this._context=e,this._injector=t,this._sheetSkService=o,this.disposeWithMe(()=>{this._currentSkeletonBefore$.complete(),this._currentSkeleton$.complete(),this._sheetSkeletonParamStore.forEach(i=>this.disposeSkeleton(i.sheetId)),this._sheetSkeletonParamStore.clear()}),this._initRemoveSheet()}_initRemoveSheet(){this.disposeWithMe(this._context.unit.sheetDisposed$.subscribe(e=>{this.disposeSkeleton(e.getSheetId())}))}getCurrentSkeleton(){var e;return(e=this.getCurrentParam())==null?void 0:e.skeleton}getCurrent(){return this.getCurrentParam()}getCurrentParam(){return this._getSkeletonParam(this._sheetId)}getSkeleton(e){return this._getSkeleton(e)}getSkeletonParam(e){return this._getSkeletonParam(e)}getWorksheetSkeleton(e){return this.getSkeletonParam(e)}getUnitSkeleton(e,t){const o=this._getSkeletonParam(t);return o!=null&&(o.unitId=e),o}setCurrent(e){this._setCurrent(e.sheetId)}setSkeletonParam(e,t){this._sheetSkService.setSkeleton(t.unitId,e,t.skeleton),this._sheetSkeletonParamStore.set(e,t)}_setCurrent(e){this._sheetId=e;const t=this._getSkeletonParam(e),o=this._context.unitId;if(t!=null)this.reCalculate(t);else{const l=this._context.unit.getSheetBySheetId(e);if(l==null)return;const d=this._context.scene,c=this._buildSkeleton(l,d);this.setSkeletonParam(e,{unitId:o,sheetId:e,skeleton:c,dirty:!1})}const i=this._getSkeletonParam(e);this._currentSkeletonBefore$.next(i),this._currentSkeleton$.next(i)}reCalculate(e){e||(e=this.getCurrentParam()),e!=null&&(e.dirty&&(e.skeleton.makeDirty(!0),e.dirty=!1),e.skeleton.calculate())}makeDirty(e,t=!0){const o=this._getSkeletonParam(e.sheetId);o!=null&&(o.dirty=t)}getOrCreateSkeleton(e){return this.ensureSkeleton(e.sheetId)}ensureSkeleton(e){const t=this._getSkeletonParam(e);if(t)return t.skeleton;const i=this._context.unit.getSheetBySheetId(e);if(!i)return;const s=this._buildSkeleton(i);return this.setSkeletonParam(e,{unitId:this._context.unitId,sheetId:e,skeleton:s,dirty:!1}),s}disposeSkeleton(e){const t=this.getSkeletonParam(e);t&&(t.skeleton.dispose(),this._sheetSkeletonParamStore.delete(e),this._sheetSkService.deleteSkeleton(t.unitId,e))}attachRangeWithCoord(e){const t=this.getCurrentSkeleton();return t?bn(t,e):null}_getSkeletonParam(e){return this._sheetSkeletonParamStore.get(e)}_getSkeleton(e){const t=this._getSkeletonParam(e);return t?t.skeleton:null}_buildSkeleton(e,t){return this._injector.createInstance(w.SpreadsheetSkeleton,e,this._context.unit.getStyles())}setColumnHeaderSize(e,t,o){var u;if(!e)return;const i=(u=this.getWorksheetSkeleton(t))==null?void 0:u.skeleton;if(!i)return;i.columnHeaderHeight=o,e.scene.getViewports()[0].top=o,e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT).setViewportSize({height:o}),e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT).setViewportSize({height:o}),e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM).setViewportSize({top:o}),e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP).setViewportSize({top:o}),e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP).setViewportSize({height:o});const s=e==null?void 0:e.with(m.SheetsSelectionsService),l=e==null?void 0:e.with(ve),d=s.getCurrentSelections();l.resetSelectionsByModelData(d);const c=this.getUnitSkeleton(e.unitId,t);c&&(c.commandId=Mr.id,this._currentSkeleton$.next(c))}setRowHeaderSize(e,t,o){var f;const i=(f=this.getWorksheetSkeleton(t))==null?void 0:f.skeleton;if(!e||!i)return;i.rowHeaderWidth=o;const s=e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP).width||46,l=o-s,d=e.scene.getViewports()[0].left;e.scene.getViewports()[0].left=d+l,e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM).setViewportSize({width:o}),e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP).setViewportSize({width:o}),e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT).setViewportSize({left:o});const c=e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT).left||0;e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT).setViewportSize({left:c+l}),e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP).setViewportSize({width:o});const u=e==null?void 0:e.with(m.SheetsSelectionsService),h=e==null?void 0:e.with(ve),g=u.getCurrentSelections();h.resetSelectionsByModelData(g);const S=this.getCurrent();S&&(S.commandId=yr.id,this._currentSkeleton$.next(S))}};exports.SheetSkeletonManagerService=Rd([Ys(1,a.Inject(a.Injector)),Ys(2,a.Inject(m.SheetSkeletonService))],exports.SheetSkeletonManagerService);function mt(){const n=I.useDependency(a.IUniverInstanceService),r=I.useObservable(()=>n.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),void 0,void 0,[]);return r!=null?r:null}function Ed(n){return I.useObservable(()=>{var e;return(e=n==null?void 0:n.activeSheet$)!=null?e:O.of(null)},void 0,void 0,[n])}function Td(){const n=I.useDependency(a.IUniverInstanceService);return I.useObservable(()=>O.merge([n.getTypeOfUnitAdded$(a.UniverInstanceType.UNIVER_SHEET),n.getTypeOfUnitDisposed$(a.UniverInstanceType.UNIVER_SHEET)]).pipe(O.map(()=>n.getAllUnitsForType(a.UniverInstanceType.UNIVER_SHEET)),O.startWith(n.getAllUnitsForType(a.UniverInstanceType.UNIVER_SHEET))),[],void 0,[n])}const wd="SheetUI";var gs=(n=>(n.FILTER_PANEL_EMBED_POINT="filter-panel-embed-point",n.SHEETS_FOOTER="sheets-footer",n.FORMULA_AUX="formula-aux",n))(gs||{}),yd=Object.getOwnPropertyDescriptor,Md=(n,r,e,t)=>{for(var o=t>1?void 0:t?yd(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ho=(n,r)=>(e,t)=>r(e,t,n);const Ss=["ff","fs","tr","tb"];exports.AutoHeightController=class extends a.Disposable{constructor(r,e,t,o){super(),this._renderManagerService=r,this._sheetInterceptorService=e,this._selectionManagerService=t,this._univerInstanceService=o,this._initialize()}getUndoRedoParamsOfAutoHeight(r){const{_univerInstanceService:e}=this,t=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),o=t.getActiveSheet(),i=t.getUnitId(),s=o.getSheetId(),l=this._renderManagerService.getRenderById(i).with(exports.SheetSkeletonManagerService);if(!s||!l.getCurrentParam())return{redos:[],undos:[]};const{skeleton:d}=l.getCurrentParam(),c=d.calculateAutoHeightInRange(r),u={subUnitId:s,unitId:i,rowsAutoHeightInfo:c},h=m.SetWorksheetRowAutoHeightMutationFactory(u,o);return{undos:[{id:m.SetWorksheetRowAutoHeightMutation.id,params:h}],redos:[{id:m.SetWorksheetRowAutoHeightMutation.id,params:u}]}}_initialize(){const{_sheetInterceptorService:r,_selectionManagerService:e}=this;this.disposeWithMe(r.interceptCommand({getMutations:t=>{if(t.id===m.SetRangeValuesCommand.id){const o=t.params;return this.getUndoRedoParamsOfAutoHeight(o.range)}return{redos:[],undos:[]}}})),this.disposeWithMe(r.interceptCommand({getMutations:t=>t.id!==m.SetWorksheetRowIsAutoHeightCommand.id?{redos:[],undos:[]}:this.getUndoRedoParamsOfAutoHeight(t.params.ranges)})),this.disposeWithMe(r.interceptCommand({getMutations:t=>{var i,s;if(t.id!==m.SetStyleCommand.id)return{redos:[],undos:[]};if(!Ss.includes((i=t.params)==null?void 0:i.style.type))return{redos:[],undos:[]};const o=(s=e.getCurrentSelections())==null?void 0:s.map(l=>l.range);return o!=null&&o.length?this.getUndoRedoParamsOfAutoHeight(o):{redos:[],undos:[]}}})),this.disposeWithMe(r.interceptAfterCommand({getMutations:t=>{if(t.id===m.MoveRangeCommand.id){const o=t.params;return this.getUndoRedoParamsOfAutoHeight([o.fromRange,o.toRange])}if(t.id===m.ReorderRangeCommand.id){const o=t.params;return this.getUndoRedoParamsOfAutoHeight([o.range])}return{redos:[],undos:[]}}}))}};exports.AutoHeightController=Md([Ho(0,w.IRenderManagerService),Ho(1,a.Inject(m.SheetInterceptorService)),Ho(2,a.Inject(m.SheetsSelectionsService)),Ho(3,a.Inject(a.IUniverInstanceService))],exports.AutoHeightController);function Sn(n,r,e,t){const o=r.get(a.IUniverInstanceService),i=e?o.getUnit(e,a.UniverInstanceType.UNIVER_SHEET):o.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=t?i==null?void 0:i.getSheetBySheetId(t):i==null?void 0:i.getActiveSheet();if(!s)return null;const{startRow:l,endRow:d,startColumn:c,endColumn:u}=n,h=[],g=[];for(let S=l;S<=d;S++)s.getRowFiltered(S)||h.push(S);for(let S=c;S<=u;S++)g.push(S);return{rows:h,cols:g}}function Et(n){const{rows:r,cols:e}=n;return{startRow:r[0],endRow:r[r.length-1],startColumn:e[0],endColumn:e[e.length-1]}}function qt(n){let r=[],e=[];const t=[];return n.forEach(o=>{r=r.concat(o.rows),e=e.concat(o.cols)}),r=Array.from(new Set(r)).sort((o,i)=>o-i),e=Array.from(new Set(e)).sort((o,i)=>o-i),n.forEach(o=>{t.push({startRow:r.findIndex(i=>i===o.rows[0]),endRow:r.findIndex(i=>i===o.rows[o.rows.length-1]),startColumn:e.findIndex(i=>i===o.cols[0]),endColumn:e.findIndex(i=>i===o.cols[o.cols.length-1])})}),{ranges:t,mapFunc:(o,i)=>({row:r[o],col:e[i]})}}function Pd(n){const r=new a.ObjectMatrix;return n.forEach(e=>{const{rows:t,cols:o}=e;t.forEach(i=>{o.forEach(s=>{r.setValue(i,s,{v:null,p:null,f:null,si:null,custom:null})})})}),r.getData()}const Wi={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},$o=["零","一","二","三","四","五","六","七","八","九"],Gs=["","万","亿","万亿","亿亿"],Od=["","十","百","千"],qa={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function dt(n){if(!n)return 0;let r=0,e=0,t=0,o=!1;const i=n.split("");for(let s=0;s<i.length;s++){const l=Wi[i[s]];if(typeof l<"u")t=l,s===i.length-1&&(e+=t);else{const d=qa[i[s]],c=d.value;o=d.secUnit,o?(e=(e+t)*c,r+=e,e=0):e+=t*c,t=0}}return r+e}function xd(n){let r="",e="",t=0,o=!0;for(;n>0;){const i=n%10;i===0?o||(o=!0,e=$o[i]+e):(o=!1,r=$o[i],r+=Od[t],e=r+e),t++,n=Math.floor(n/10)}return e}function Ad(n){let r=0,e="",t="",o=!1;if(n===0)return $o[0];for(;n>0;){const i=n%1e4;o&&(t=$o[0]+t),e=xd(i),e+=i!==0?Gs[r]:Gs[0],t=e+t,o=i<1e3&&i>0,n=Math.floor(n/1e4),r++}return t}function kd(n){if(!n)return!1;let r=!0;if(n)if(n.length===1)n==="日"||n in Wi?r=!0:r=!1;else{const e=n.split("");for(let t=0;t<e.length;t++)if(!(e[t]in Wi||e[t]in qa)){r=!1;break}}return r}function Vo(n){if(!n)return{isExtendNumber:!1};const r=/0|([1-9]+[0-9]*)/g,e=r.test(n);if(e){const t=n.match(r);if(t&&t.length>0){const o=t[t.length-1],i=n.lastIndexOf(o),s=n.substr(0,i),l=n.substr(i+o.length);return{isExtendNumber:!0,matchTxt:Number(o),beforeTxt:s,afterTxt:l}}return{isExtendNumber:!1}}return{isExtendNumber:e}}function Nd(n){let r;return n.length===2&&(n==="周一"||n==="周二"||n==="周三"||n==="周四"||n==="周五"||n==="周六"||n==="周日")?r=!0:r=!1,r}function Dd(n){let r;return n.length===3&&(n==="星期一"||n==="星期二"||n==="星期三"||n==="星期四"||n==="星期五"||n==="星期六"||n==="星期日")?r=!0:r=!1,r}function Hd(n,r){let e=0;for(let t=0;t<n.length&&n[t]<r;t++)e++;return e}function co(n){let r=!0;const e=n[1]-n[0];for(let t=1;t<n.length;t++)if(n[t]-n[t-1]!==e){r=!1;break}return r}function Vd(n,r,e){const t=[],o=Math.floor(r/n),i=r%n;let s=0;if(o>0){for(let l=0;l<o;l++)for(let d=0;d<e.length;d++)t[e[d]+l*n]=s,s++;for(let l=0;l<e.length&&e[l]<i;l++)t[e[l]+n*o]=s,s++}else for(let l=0;l<e.length&&e[l]<i;l++)t[e[l]]=s,s++;return t}function jt(n,r){const e=[];for(let t=1;t<=r;t++){const o=(t-1)%n.length,i=a.Tools.deepClone(n[o]);zt(i),e.push({v:null,s:null,p:null,f:null,si:null,t:null,...i})}return e}function Wd(n,r){var t;const e=[];for(let o=1;o<=r;o++){const i=(o-1)%n.length,s={s:(t=n[i])==null?void 0:t.s};e.push(s)}return e}function Ud(n){let r=!0;const e=n[1]/n[0];for(let t=1;t<n.length;t++)if(n[t]/n[t-1]!==e){r=!1;break}return r}function Ld(n){const r=[];for(let e=1;e<=n;e++)r.push(e);return r}function er(n,r,e){var i,s,l,d;const t=[],o=[];for(let c=0;c<n.length;c++)o.push(Number((i=n[c])==null?void 0:i.v));if(n.length>2&&Ud(o))for(let c=1;c<=r;c++){const u=(c-1)%n.length,h=a.Tools.deepClone(n[u]);zt(h);const g=Number((s=n[n.length-1])==null?void 0:s.v)*(Number((l=n[1])==null?void 0:l.v)/Number((d=n[0])==null?void 0:d.v))**c;h&&(Qs(h)&&(h.v=g),t.push(h))}else{const c=Ld(n.length);for(let u=1;u<=r;u++){const h=(u-1)%n.length,g=a.Tools.deepClone(n[h]);zt(g);const S=e===a.Direction.DOWN||e===a.Direction.RIGHT,f=Bd(n.length+u,o,c,S);g&&(Qs(g)&&(g.v=f),t.push(g))}}return t}function Bd(n,r,e,t=!0){function o(h){let g=0;for(let S=0;S<h.length;S++)g+=h[S];return g/h.length}const i=o(e),s=o(r);let l=0,d=0;for(let h=0;h<e.length;h++)l+=(e[h]-i)*(r[h]-s),d+=(e[h]-i)*(e[h]-i);let c;d===0?c=t?1:-1:c=l/d;const u=s-c*i;return Math.round((u+c*n)*1e5)/1e5}function Zs(n,r,e){var i;const t=[],o=/0|([1-9]+[0-9]*)/g;for(let s=1;s<=r;s++){const l=(s-1)%n.length,d=a.Tools.deepClone(n[l]);zt(d);const c=`${(i=n[n.length-1])==null?void 0:i.v}`,u=c==null?void 0:c.match(o),h=u==null?void 0:u[u.length-1],g=Math.abs(Number(h)+e*s);if(!c||!h)continue;const S=c.lastIndexOf(h),f=c.substr(0,S)+g.toString()+c.substr(S+h.length);d&&(d.v=f,t.push(d))}return t}function Rn(n,r,e,t=0){var l,d;const o=[["日","一","二","三","四","五","六"],["周日","周一","周二","周三","周四","周五","周六"],["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]];if(t>=o.length)return[];const i=o[t],s=[];for(let c=1;c<=r;c++){const u=(c-1)%n.length,h=a.Tools.deepClone(n[u]);zt(h);let g=0;if(((l=n[n.length-1])==null?void 0:l.v)===i[0])g=7+e*c;else{const f=`${(d=n[n.length-1])==null?void 0:d.v}`;if(f){const p=f.substr(f.length-1,1);g=dt(p)+e*c}}g<0&&(g=Math.ceil(Math.abs(g)/7)*7+g);const S=g%7;h&&(h.v=i[S],s.push(h))}return s}function Ks(n,r,e){var o;const t=[];for(let i=1;i<=r;i++){const s=(i-1)%n.length,l=a.Tools.deepClone(n[s]);zt(l);const d=`${(o=n[n.length-1])==null?void 0:o.v}`,c=dt(d)+e*i;let u;c<=0?u="零":u=Ad(c),l&&(l.v=u,t.push(l))}return t}const Kn={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 Fd(n){let r=!1;return Object.keys(Kn).forEach(e=>{Kn[e].includes(n)&&(r=!0)}),r}function jr(n){let r="";const e=[];return Object.keys(Kn).forEach(t=>{Kn[t].includes(n)&&(r=t,e.push(...Kn[t]))}),{name:r,series:e}}function qs(n,r,e,t){var s;const o=t.length,i=[];for(let l=1;l<=r;l++){const d=(l-1)%n.length,c=a.Tools.deepClone(n[d]);zt(c);const u=`${(s=n[n.length-1])==null?void 0:s.v}`;let h=t.indexOf(u)+e*l;h<0&&(h+=Math.abs(e)*o);const g=h%o;c&&(c.v=t[g],i.push(c))}return i}function jd(n,r){const e=[];let t;if(r.startRow<n.startRow)t=a.Direction.UP;else if(r.endRow>n.endRow)t=a.Direction.DOWN;else if(r.startColumn<n.startColumn)t=a.Direction.LEFT;else if(r.endColumn>n.endColumn)t=a.Direction.RIGHT;else return[];if(t===a.Direction.DOWN||t===a.Direction.UP){const o=n.endRow-n.startRow+1,i=r.endRow-r.startRow+1,s=Math.floor(i/o),l=i%o,d={startRow:0,startColumn:0,endRow:n.endRow-n.startRow,endColumn:n.endColumn-n.startColumn};if(t===a.Direction.DOWN){for(let c=0;c<s;c++)e.push({repeatStartCell:{row:n.startRow+(c+1)*o,col:n.startColumn},relativeRange:d});l>0&&e.push({repeatStartCell:{row:n.startRow+(s+1)*o,col:n.startColumn},relativeRange:{startRow:0,startColumn:0,endRow:l-1,endColumn:n.endColumn-n.startColumn}})}else{for(let c=0;c<s;c++)e.push({repeatStartCell:{row:n.startRow-(c+1)*o,col:n.startColumn},relativeRange:d});l>0&&e.push({repeatStartCell:{row:n.startRow-(s+1)*o,col:n.startColumn},relativeRange:{startRow:o-l,endRow:o-1,startColumn:0,endColumn:n.endColumn-n.startColumn}})}}if(t===a.Direction.RIGHT||t===a.Direction.LEFT){const o=n.endColumn-n.startColumn+1,i=r.endColumn-r.startColumn+1,s=Math.floor(i/o),l=i%o,d={startRow:0,startColumn:0,endRow:n.endRow-n.startRow,endColumn:n.endColumn-n.startColumn};if(t===a.Direction.RIGHT){for(let c=0;c<s;c++)e.push({repeatStartCell:{row:n.startRow,col:n.startColumn+(c+1)*o},relativeRange:d});l>0&&e.push({repeatStartCell:{row:n.startRow,col:n.startColumn+(s+1)*o},relativeRange:{startRow:0,startColumn:0,endRow:n.endRow-n.startRow,endColumn:l-1}})}else{for(let c=0;c<s;c++)e.push({repeatStartCell:{row:n.startRow,col:n.startColumn-(c+1)*o},relativeRange:d});l>0&&e.push({repeatStartCell:{row:n.startRow,col:n.startColumn-(s+1)*o},relativeRange:{startRow:0,startColumn:o-l,endRow:n.endRow-n.startRow,endColumn:o-1}})}}return e}function Qs(n){return!(a.isFormulaString(n.f)||a.isFormulaId(n.si)||n.t===a.CellValueType.BOOLEAN)}function zt(n){n&&"custom"in n&&delete n.custom}var mn=(n=>(n.Append="APPEND",n.Default="DEFAULT",n.Only="ONLY",n))(mn||{}),_e=(n=>(n.NUMBER="number",n.DATE="date",n.EXTEND_NUMBER="extendNumber",n.CHN_NUMBER="chnNumber",n.CHN_WEEK2="chnWeek2",n.CHN_WEEK3="chnWeek3",n.LOOP_SERIES="loopSeries",n.FORMULA="formula",n.OTHER="other",n))(_e||{}),ae=(n=>(n.COPY="COPY",n.SERIES="SERIES",n.ONLY_FORMAT="ONLY_FORMAT",n.NO_FORMAT="NO_FORMAT",n))(ae||{});const zd={type:_e.DATE,priority:1100,match:(n,r)=>{var e;if(n!=null&&n.f||n!=null&&n.si)return!1;if((typeof(n==null?void 0:n.v)=="number"||(n==null?void 0:n.t)===a.CellValueType.NUMBER)&&n.s){if(typeof n.s=="string"){const o=r.get(a.IUniverInstanceService).getFocusedUnit().getStyles().get(n.s),i=(e=o==null?void 0:o.n)==null?void 0:e.pattern;if(i)return a.numfmt.getInfo(i).isDate}else if(n.s.n&&a.numfmt.getInfo(n.s.n.pattern).isDate)return!0}return!1},isContinue:(n,r)=>n.type===_e.DATE,applyFunctions:{[ae.SERIES]:(n,r,e)=>{const{data:t}=n;return e===a.Direction.LEFT||e===a.Direction.UP?(t.reverse(),er(t,r,e).reverse()):er(t,r,e)}}},Xd={type:_e.NUMBER,priority:1e3,match:n=>typeof(n==null?void 0:n.v)=="number"||(n==null?void 0:n.t)===a.CellValueType.NUMBER,isContinue:(n,r)=>n.type===_e.NUMBER,applyFunctions:{[ae.SERIES]:(n,r,e)=>{const{data:t}=n;return e===a.Direction.LEFT||e===a.Direction.UP?(t.reverse(),er(t,r,e).reverse()):er(t,r,e)}}},Qa={type:_e.OTHER,priority:0,match:()=>!0,isContinue:(n,r)=>n.type===_e.OTHER},Yd={type:_e.EXTEND_NUMBER,priority:900,match:n=>Vo(`${n==null?void 0:n.v}`||"").isExtendNumber,isContinue:(n,r)=>{var e;if(n.type===_e.EXTEND_NUMBER){const{beforeTxt:t,afterTxt:o}=Vo(`${(e=n.cellData)==null?void 0:e.v}`||""),{beforeTxt:i,afterTxt:s}=Vo(`${r==null?void 0:r.v}`||"");if(t===i&&o===s)return!0}return!1},applyFunctions:{[ae.SERIES]:(n,r,e)=>{var l;const{data:t}=n,o=e===a.Direction.UP||e===a.Direction.LEFT;let i;if(t.length===1)return i=o?-1:1,Ue(Zs(t,r,i),o);const s=[];for(let d=0;d<t.length;d++){const c=`${(l=t[d])==null?void 0:l.v}`;c&&s.push(Number(Vo(c).matchTxt))}return o&&(t.reverse(),s.reverse()),co(s)?(i=s[1]-s[0],Ue(Zs(t,r,i),o)):jt(t,r)}}},Gd={type:_e.CHN_NUMBER,priority:830,match:n=>!!kd(`${n==null?void 0:n.v}`||""),isContinue:(n,r)=>n.type===_e.CHN_NUMBER,applyFunctions:{[ae.SERIES]:(n,r,e)=>{var d,c,u;const{data:t}=n,o=e===a.Direction.LEFT||e===a.Direction.UP;if(t.length===1){const h=`${(d=t[0])==null?void 0:d.v}`;let g;return o?g=-1:g=1,h&&(h==="日"||dt(h)<7)?Ue(Rn(t,r,g),o):Ue(Ks(t,r,g),o)}let i=!1;for(let h=0;h<t.length;h++)if(((c=t[h])==null?void 0:c.v)==="日"){i=!0;break}const s=[];let l=0;for(let h=0;h<t.length;h++){const g=`${(u=t[h])==null?void 0:u.v}`;g==="日"?h===0?s.push(0):(l++,s.push(l*7)):i&&dt(g)>0&&dt(g)<7?s.push(dt(g)+l*7):s.push(dt(g))}if(o&&(t.reverse(),s.reverse()),co(s)){if(i||s[s.length-1]<6&&s[0]>0||s[0]<6&&s[s.length-1]>0){const g=s[1]-s[0];return Ue(Rn(t,r,g),o)}const h=s[1]-s[0];return Ue(Ks(t,r,h),o)}return jt(t,r)}}},Zd={type:_e.CHN_WEEK2,priority:820,match:n=>!!Nd(`${n==null?void 0:n.v}`||""),isContinue:(n,r)=>n.type===_e.CHN_WEEK2,applyFunctions:{[ae.SERIES]:(n,r,e)=>{var l;const{data:t}=n,o=e===a.Direction.LEFT||e===a.Direction.UP;if(t.length===1){let d;return o?d=-1:d=1,Ue(Rn(t,r,d,1),o)}const i=[];let s=0;for(let d=0;d<t.length;d++){const c=`${(l=t[d])==null?void 0:l.v}`,u=c==null?void 0:c.substr(c.length-1,1);c==="周日"?d===0?i.push(0):(s++,i.push(s*7)):i.push(dt(u)+s*7)}if(o&&(t.reverse(),i.reverse()),co(i)){const d=i[1]-i[0];return Ue(Rn(t,r,d,1),o)}return jt(t,r)}}},Kd={type:_e.CHN_WEEK3,priority:810,match:n=>Dd(`${n==null?void 0:n.v}`||""),isContinue:(n,r)=>n.type===_e.CHN_WEEK3,applyFunctions:{[ae.SERIES]:(n,r,e)=>{var l;const{data:t}=n,o=e===a.Direction.LEFT||e===a.Direction.UP;if(t.length===1){let d;return o?d=-1:d=1,Ue(Rn(t,r,d,2),o)}const i=[];let s=0;for(let d=0;d<t.length;d++){const c=`${(l=t[d])==null?void 0:l.v}`;if(c){const u=c.substr(c.length-1,1);c==="星期日"?d===0?i.push(0):(s++,i.push(s*7)):i.push(dt(u)+s*7)}}if(o&&(t.reverse(),i.reverse()),co(i)){const d=i[1]-i[0];return Ue(Rn(t,r,d,2),o)}return jt(t,r)}}},qd={type:_e.LOOP_SERIES,priority:800,match:n=>Fd(`${n==null?void 0:n.v}`||""),isContinue:(n,r)=>{var e;return n.type===_e.LOOP_SERIES?jr(`${(e=n.cellData)==null?void 0:e.v}`||"").name===jr(`${r==null?void 0:r.v}`||"").name:!1},applyFunctions:{[ae.SERIES]:(n,r,e)=>{var d,c;const{data:t}=n,o=e===a.Direction.LEFT||e===a.Direction.UP,{series:i}=jr(`${(d=t[0])==null?void 0:d.v}`||"");if(t.length===1){let u;return o?u=-1:u=1,Ue(qs(t,r,u,i),o)}const s=[];let l=0;for(let u=0;u<t.length;u++){const h=`${(c=t[u])==null?void 0:c.v}`;h&&(h===i[0]?u===0?s.push(0):(l++,s.push(l*i.length)):s.push(i.indexOf(h)+l*7))}if(o&&(t.reverse(),s.reverse()),co(s)){const u=s[1]-s[0];return Ue(qs(t,r,u,i),o)}return jt(t,r)}}};function Ue(n,r){return r?n.reverse():n}var Qd=Object.getOwnPropertyDescriptor,Jd=(n,r,e,t)=>{for(var o=t>1?void 0:t?Qd(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},rn=(n,r)=>(e,t)=>r(e,t,n);exports.AutoFillService=class extends a.Disposable{constructor(e,t,o,i,s,l){super();E(this,"_rules",[]);E(this,"_hooks",[]);E(this,"_applyType$",new O.BehaviorSubject(ae.SERIES));E(this,"_isFillingStyle",!0);E(this,"_prevUndos",[]);E(this,"_autoFillLocation$",new O.BehaviorSubject(null));E(this,"autoFillLocation$",this._autoFillLocation$.asObservable());E(this,"_showMenu$",new O.BehaviorSubject(!1));E(this,"showMenu$",this._showMenu$.asObservable());E(this,"_direction",a.Direction.DOWN);E(this,"applyType$",this._applyType$.asObservable());E(this,"_menu$",new O.BehaviorSubject([{label:"autoFill.copy",value:ae.COPY,disable:!1},{label:"autoFill.series",value:ae.SERIES,disable:!1},{label:"autoFill.formatOnly",value:ae.ONLY_FORMAT,disable:!1},{label:"autoFill.noFormat",value:ae.NO_FORMAT,disable:!1}]));E(this,"menu$",this._menu$.asObservable());this._commandService=e,this._undoRedoService=t,this._renderManagerService=o,this._univerInstanceService=i,this._selectionManagerService=s,this._injector=l,this._init()}_init(){this._rules=[zd,Xd,Yd,Gd,Zd,Kd,qd,Qa].sort((e,t)=>t.priority-e.priority),this._isFillingStyle=!0}_getOneByPriority(e){return e.length<=0?[]:[e.reduce((o,i)=>(i.priority||0)>(o.priority||0)?i:o,e[0])]}_initPrevUndo(){this._prevUndos=[]}async triggerAutoFill(e,t,o,i){var S;if(o.startColumn===i.startColumn&&o.startRow===i.startRow&&o.endColumn===i.endColumn&&o.endRow===i.endRow)return!1;if(i.endColumn<o.endColumn&&i.endColumn>o.startColumn)return this._commandService.executeCommand(En.id,{clearRange:{startRow:i.startRow,endRow:i.endRow,startColumn:i.endColumn+1,endColumn:o.endColumn},selectionRange:i});if(i.endRow<o.endRow&&i.endRow>o.startRow)return this._commandService.executeCommand(En.id,{clearRange:{startRow:i.endRow+1,endRow:o.endRow,startColumn:i.startColumn,endColumn:i.endColumn},selectionRange:i});const s={startRow:i.startRow,endRow:i.endRow,startColumn:i.startColumn,endColumn:i.endColumn};let l=null;if(i.startRow<o.startRow)l=a.Direction.UP,s.endRow=o.startRow-1;else if(i.endRow>o.endRow)l=a.Direction.DOWN,s.startRow=o.endRow+1;else if(i.startColumn<o.startColumn)l=a.Direction.LEFT,s.endColumn=o.startColumn-1;else if(i.endColumn>o.endColumn)l=a.Direction.RIGHT,s.startColumn=o.endColumn+1;else return!1;this.direction=l;const d=this._injector.invoke(f=>Sn(o,f)),c=this._injector.invoke(f=>Sn(s,f));if(!d||!c)return!1;this.autoFillLocation={source:d,target:c,unitId:e,subUnitId:t};const u=[];this.getActiveHooks().forEach(f=>{var v;const p=(v=f==null?void 0:f.onBeforeFillData)==null?void 0:v.call(f,{source:d,target:c,unitId:e,subUnitId:t},l);p&&u.unshift(p)}),this._initPrevUndo();for(let f=0;f<u.length;f++){const p=this.menu.find(v=>v.value===u[f]);if(p&&!p.disable)return this.fillData(u[f])}const g=(S=this.menu.find(f=>f.disable===!1))==null?void 0:S.value;return g?this.fillData(g):!1}addHook(e){if(this._hooks.find(t=>t.id===e.id))throw new Error(`Add hook failed, hook id '${e.id}' already exist!`);return e.priority===void 0&&(e.priority=0),e.type===void 0&&(e.type=mn.Append),this._hooks.push(e),a.toDisposable(()=>{const t=this._hooks.findIndex(o=>o===e);t>-1&&this._hooks.splice(t,1)})}registerRule(e){if(this._rules.find(o=>o.type===e.type))throw new Error(`Registry rule failed, type '${e.type}' already exist!`);const t=this._rules.findIndex(o=>o.priority<e.priority);this._rules.splice(t===-1?this._rules.length:t,0,e)}getRules(){return this._rules}getAllHooks(){return this._hooks}getActiveHooks(){const{source:e,target:t,unitId:o,subUnitId:i}=this.autoFillLocation||{};if(!e||!t||!o||!i)return[];const s=this._hooks.filter(u=>{var h;return!((h=u.disable)!=null&&h.call(u,{source:e,target:t,unitId:o,subUnitId:i},this._direction,this.applyType))}),l=s.filter(u=>u.type===mn.Only);if(l.length>0)return this._getOneByPriority(l);const d=this._getOneByPriority(s.filter(u=>u.type===mn.Default)),c=s.filter(u=>u.type===mn.Append)||[];return[...d,...c]}get applyType(){return this._applyType$.getValue()}set applyType(e){this._applyType$.next(e)}get menu(){return this._menu$.getValue()}get direction(){return this._direction}set direction(e){this._direction=e}isFillingStyle(){return this._isFillingStyle}setFillingStyle(e){this._isFillingStyle=e}get autoFillLocation(){return this._autoFillLocation$.getValue()}set autoFillLocation(e){this._autoFillLocation$.next(e)}setDisableApplyType(e,t){this._menu$.next(this._menu$.getValue().map(o=>o.value===e?{...o,disable:t}:o))}setShowMenu(e){this._showMenu$.next(e)}fillData(e){var C,b,R;this.applyType=e;const{source:t,target:o,unitId:i=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId(),subUnitId:s=(C=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:C.getSheetId()}=this.autoFillLocation||{};if(!t||!o||!i||!s)return!1;const l=this.direction;this._prevUndos.length>0&&this._prevUndos.forEach(T=>{this._commandService.syncExecuteCommand(T.id,T.params)}),this._prevUndos=[];const d=a.Rectangle.union(Et(t),Et(o)),c=this.getActiveHooks(),u=this._univerInstanceService.getUnit(i,a.UniverInstanceType.UNIVER_SHEET);this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{selections:[{primary:{...(R=(b=this._selectionManagerService.getCurrentLastSelection())==null?void 0:b.primary)!=null?R:d},range:{...d,rangeType:a.RANGE_TYPE.NORMAL}}],unitId:i,subUnitId:s});const h=[],g=[];c.forEach(T=>{var P;const{undos:M,redos:y}=((P=T.onFillData)==null?void 0:P.call(T,{source:t,target:o,unitId:i,subUnitId:s},l,e))||{};M&&h.push(...M),y&&g.push(...y)});const S=g.every(T=>this._commandService.syncExecuteCommand(T.id,T.params)),f=[];e!==ae.NO_FORMAT&&g.forEach(T=>{if(T.id===m.SetRangeValuesMutation.id){const{cellValue:M}=T.params;new a.ObjectMatrix(M).forValue((P,x,A)=>{const k=Object.keys(u.getStyles().get(A==null?void 0:A.s)||{});(A!=null&&A.p||k.length&&Ss.some(N=>k.includes(N)))&&f.push({startRow:P,endRow:P,startColumn:x,endColumn:x})})}});const p=this._getAutoHeightUndoRedos(i,s,f);return p.redos.every(T=>this._commandService.syncExecuteCommand(T.id,T.params))&&(h.push(...p.undos),g.push(...p.redos)),S&&(this._prevUndos=h,this._undoRedoService.pushUndoRedo({unitID:i,undoMutations:h,redoMutations:g})),c.forEach(T=>{var M;(M=T.onAfterFillData)==null||M.call(T,{source:t,target:o,unitId:i,subUnitId:s},l,e)}),this.setShowMenu(!0),!0}_getAutoHeightUndoRedos(e,t,o){var h,g;const i=(h=this._renderManagerService.getRenderById(e))==null?void 0:h.with(exports.SheetSkeletonManagerService),s=(g=i==null?void 0:i.getCurrentParam())==null?void 0:g.skeleton;if(!s)return{redos:[],undos:[]};const l=s.calculateAutoHeightInRange(o),d={subUnitId:t,unitId:e,rowsAutoHeightInfo:l},c=s.worksheet,u=m.SetWorksheetRowAutoHeightMutationFactory(d,c);return{undos:[{id:m.SetWorksheetRowAutoHeightMutation.id,params:u}],redos:[{id:m.SetWorksheetRowAutoHeightMutation.id,params:d}]}}};exports.AutoFillService=Jd([rn(0,a.ICommandService),rn(1,a.IUndoRedoService),rn(2,w.IRenderManagerService),rn(3,a.Inject(a.IUniverInstanceService)),rn(4,a.Inject(m.SheetsSelectionsService)),rn(5,a.Inject(a.Injector))],exports.AutoFillService);const Tt=a.createIdentifier("univer.auto-fill-service"),It={type:a.CommandType.COMMAND,id:"sheet.command.auto-fill",handler:async(n,r)=>{const e=n.get(Tt),t=n.get(a.IUniverInstanceService),{sourceRange:o,targetRange:i}=r,s=m.getSheetCommandTarget(t);if(!s)return!1;const{subUnitId:l,unitId:d}=s;return e.triggerAutoFill(d,l,o,i)}},En={id:"sheet.command.auto-clear-content",type:a.CommandType.COMMAND,handler:async(n,r)=>{const e=n.get(a.IUniverInstanceService),t=n.get(a.ICommandService),o=n.get(a.IUndoRedoService),i=n.get(m.SheetInterceptorService),s=m.getSheetCommandTarget(e);if(!s)return!1;const{unitId:l,subUnitId:d}=s,{clearRange:c,selectionRange:u}=r,h={subUnitId:d,unitId:l,cellValue:m.generateNullCellValue([c])},g=m.SetRangeValuesUndoMutationFactory(n,h),{startColumn:S,startRow:f}=u,p={selections:[{primary:{startColumn:S,startRow:f,endColumn:S,endRow:f,actualRow:f,actualColumn:S,isMerged:!1,isMergedMainCell:!1},range:{...u}}],unitId:l,subUnitId:d};if(t.executeCommand(m.SetSelectionsOperation.id,p),t.syncExecuteCommand(m.SetRangeValuesMutation.id,h)){const C=i.afterCommandExecute({id:m.SetRangeValuesMutation.id,params:h});return a.sequenceExecute(C.redos,t),o.pushUndoRedo({unitID:l,undoMutations:[{id:m.SetRangeValuesMutation.id,params:g},...C.undos],redoMutations:[{id:m.SetRangeValuesMutation.id,params:h},...C.redos]}),!0}return!1}},uo={id:"sheet.command.refill",type:a.CommandType.COMMAND,handler:async(n,r)=>n.get(Tt).fillData(r.type)};var $d=Object.getOwnPropertyDescriptor,eu=(n,r,e,t)=>{for(var o=t>1?void 0:t?$d(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Pt=(n,r)=>(e,t)=>r(e,t,n);exports.EditorBridgeService=class extends a.Disposable{constructor(e,t,o,i,s,l,d){super();E(this,"_editorUnitId",a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);E(this,"_editorIsDirty",!1);E(this,"_isDisabled",!1);E(this,"_visible",{visible:!1,eventType:w.DeviceInputEventType.Dblclick,unitId:""});E(this,"_currentEditCell",null);E(this,"_currentEditCellState",null);E(this,"_currentEditCellLayout",null);E(this,"_currentEditCellState$",new O.BehaviorSubject(null));E(this,"currentEditCellState$",this._currentEditCellState$.asObservable());E(this,"_currentEditCellLayout$",new O.BehaviorSubject(null));E(this,"currentEditCellLayout$",this._currentEditCellLayout$.asObservable());E(this,"currentEditCell$",this._currentEditCellState$.pipe(O.switchMap(e=>this._currentEditCellLayout$.pipe(O.map(t=>e&&t?{...e,...t}:null)))));E(this,"_visible$",new O.BehaviorSubject(this._visible));E(this,"visible$",this._visible$.asObservable());E(this,"_afterVisible$",new O.BehaviorSubject(this._visible));E(this,"afterVisible$",this._afterVisible$.asObservable());E(this,"_forceKeepVisible$",new O.BehaviorSubject(!1));E(this,"forceKeepVisible$",this._forceKeepVisible$.asObservable());this._sheetInterceptorService=e,this._renderManagerService=t,this._themeService=o,this._univerInstanceService=i,this._editorService=s,this._refSelectionsService=l,this._contextService=d,this.disposeWithMe(a.toDisposable(()=>{this._currentEditCellState$.complete(),this._currentEditCell=null})),this._univerInstanceService.getTypeOfUnitDisposed$(a.UniverInstanceType.UNIVER_SHEET).subscribe(c=>{var u;c.getUnitId()===((u=this._currentEditCellState)==null?void 0:u.unitId)&&this._clearCurrentEditCellState()})}refreshEditCellState(){const e=this.getLatestEditCellState();if(!e){this._currentEditCellState=null,this._currentEditCellLayout=null,this._currentEditCellState$.next(null),this._currentEditCellLayout$.next(null);return}const{position:t,scaleX:o,scaleY:i,canvasOffset:s,...l}=e;this._currentEditCellState=l,this._currentEditCellLayout={position:t,scaleX:o,scaleY:i,canvasOffset:s},this._currentEditCellState$.next(this._currentEditCellState),this._currentEditCellLayout$.next(this._currentEditCellLayout)}refreshEditCellPosition(e){var y;const t=this._currentEditCell;if(t==null)return;const o=this._renderManagerService.getCurrentTypeOfRenderer(a.UniverInstanceType.UNIVER_SHEET);if(!o)return;const i=(y=o.with(exports.SheetSkeletonManagerService).getSkeletonParam(t.sheetId))==null?void 0:y.skeleton,s=o.with(ve);if(!i||!this._currentEditCellState)return;const{primary:l,unitId:d,sheetId:c,scene:u,engine:h}=t,g=Jn(i,l);if(g==null)return;const S=a.convertCellToRange(g),f=J.getCanvasOffsetByEngine(h);let{startX:p,startY:v,endX:C,endY:b}=S;const{scaleX:R,scaleY:T}=u.getAncestorScale(),M=u.getViewportScrollXY(s.getViewPort());p=w.convertTransformToOffsetX(p,R,M),v=w.convertTransformToOffsetY(v,T,M),C=w.convertTransformToOffsetX(C,R,M),b=w.convertTransformToOffsetY(b,T,M),e&&this._currentEditCellLayout&&(C=C-p+this._currentEditCellLayout.position.startX,b=b-v+this._currentEditCellLayout.position.startY,p=this._currentEditCellLayout.position.startX,v=this._currentEditCellLayout.position.startY),this._currentEditCellLayout={position:{startX:p,startY:v,endX:C,endY:b},canvasOffset:f,scaleX:R,scaleY:T},this._currentEditCellLayout$.next(this._currentEditCellLayout)}setEditCell(e){this._currentEditCell=e,this._editorService.getFocusEditor()||(this._editorService.focus(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._contextService.setContextValue(a.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(a.FOCUSING_EDITOR_STANDALONE,!1));const t=this.getLatestEditCellState();if(!t){this._currentEditCellState=t,this._currentEditCellLayout=t,this._currentEditCellState$.next(t),this._currentEditCellLayout$.next(t);return}const{position:o,canvasOffset:i,scaleX:s,scaleY:l,...d}=t;this._currentEditCellState=d,this._currentEditCellLayout={position:o,canvasOffset:i,scaleX:s,scaleY:l},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}updateEditLocation(e,t){this._currentEditCellState&&(this._currentEditCellState={...this._currentEditCellState,row:e,column:t})}getLatestEditCellState(){var W,H,U;const e=this._currentEditCell;if(e==null)return;const t=this._renderManagerService.getCurrentTypeOfRenderer(a.UniverInstanceType.UNIVER_SHEET);if(!t)return;const o=t.with(exports.SheetSkeletonManagerService).getCurrentSkeleton(),i=t.with(ve);if(!o)return;const{primary:s,unitId:l,sheetId:d,scene:c,engine:u}=e,{startRow:h,startColumn:g}=s,S=Jn(o,s);if(S==null)return;const f=a.convertCellToRange(S),p=J.getCanvasOffsetByEngine(u);let{startX:v,startY:C,endX:b,endY:R}=f;const{scaleX:T,scaleY:M}=c.getAncestorScale(),y=c.getViewportScrollXY(i.getViewPort());v=w.convertTransformToOffsetX(v,T,y),C=w.convertTransformToOffsetY(C,M,y),b=w.convertTransformToOffsetX(b,T,y),R=w.convertTransformToOffsetY(R,M,y);const P=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),x=P.getActiveSheet();if(!x)return;const A={workbook:P,worksheet:x,unitId:P.getUnitId(),subUnitId:x.getSheetId(),row:h,col:g,origin:x.getCellRaw(h,g)};let k;const N=this._sheetInterceptorService.writeCellInterceptor.fetchThroughInterceptors(m.BEFORE_CELL_EDIT)(x.getCell(h,g),A);k=N&&o.getCellDocumentModelWithFormula(N);const D=(W=k==null?void 0:k.documentModel)==null?void 0:W.documentStyle.renderConfig;if(D!=null&&(D.cellValueType=a.CellValueType.STRING),!k||k.documentModel==null){const B=o.getBlankCellDocumentModel(N);if(k!=null){const{verticalAlign:F,horizontalAlign:L,wrapStrategy:z,textRotation:X,fill:Z}=k,{centerAngle:oe,vertexAngle:Q}=w.convertTextRotation(X);B.documentModel.documentStyle.renderConfig={...D,verticalAlign:F,horizontalAlign:L,wrapStrategy:z,background:{rgb:Z},centerAngle:oe,vertexAngle:Q}}k=B}if(k.fill=k.fill||"#fff",(H=k.documentModel)==null||H.setZoomRatio(Math.max(T,M)),(N==null?void 0:N.isInArrayFormulaRange)===!0){const B=(U=k.documentModel)==null?void 0:U.getBody();B&&(B.textRuns=[{st:0,ed:B.dataStream.length-2,ts:{cl:{rgb:this._themeService.getCurrentTheme().textColorSecondary}}}])}return{position:{startX:v,startY:C,endX:b,endY:R},scaleX:T,scaleY:M,canvasOffset:p,row:h,column:g,unitId:l,sheetId:d,documentLayoutObject:k,editorUnitId:this._editorUnitId,isInArrayFormulaRange:N==null?void 0:N.isInArrayFormulaRange}}getCurrentEditorId(){return this._editorUnitId}changeVisible(e){this._visible=e,e.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(e){this._editorIsDirty=e}getEditorDirty(){return this._editorIsDirty}};exports.EditorBridgeService=eu([Pt(0,a.Inject(m.SheetInterceptorService)),Pt(1,w.IRenderManagerService),Pt(2,a.Inject(a.ThemeService)),Pt(3,a.IUniverInstanceService),Pt(4,J.IEditorService),Pt(5,m.IRefSelectionsService),Pt(6,a.IContextService)],exports.EditorBridgeService);const Se=a.createIdentifier("univer.sheet-editor-bridge.service"),Ce={id:"sheet.operation.set-cell-edit-visible",type:a.CommandType.OPERATION,handler:(n,r)=>r?(n.get(Se).changeVisible(r),!0):!1},ho={id:"sheet.operation.set-cell-edit-visible-f2",type:a.CommandType.OPERATION,handler:(n,r)=>{const e=n.get(a.ICommandService),o=n.get(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);return o?(e.syncExecuteCommand(Ce.id,{...r,unitId:o.getUnitId()}),!0):!1}},Xt={id:"sheet.operation.set-cell-edit-visible-arrow",type:a.CommandType.OPERATION,handler:()=>!0},kn={id:"sheet.command.change-zoom-ratio",type:a.CommandType.COMMAND,handler:(n,r)=>{if(!r)return!1;const e=n.get(a.IUniverInstanceService),t=m.getSheetCommandTarget(e);if(!t)return!1;const{worksheet:o,subUnitId:i,unitId:s}=t,{delta:l,reset:d}=r;let c=d?100:Math.round((o.getConfig().zoomRatio+l)*100);c=Math.max(Ni[0],c),c=Math.min(Ni[1],c);const u=c/100,g=n.get(Se).isVisible();return(g.unitId===s||g.unitId===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)&&g.visible?!1:n.get(a.ICommandService).executeCommand(Le.id,{unitId:s,subUnitId:i,zoomRatio:u})}},Nn={id:"sheet.command.set-zoom-ratio",type:a.CommandType.COMMAND,handler:(n,r)=>{if(!r)return!1;const{unitId:e,subUnitId:t,zoomRatio:o}=r,s=n.get(Se).isVisible();return(s.unitId===e||s.unitId===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)&&s.visible?!1:n.get(a.ICommandService).executeCommand(Le.id,{unitId:e,subUnitId:t,zoomRatio:o})}};function tu(n){return typeof n.isMainScene>"u"}function Ge(n,r){const e=n instanceof a.Workbook?n:n.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!e)return null;const t=e.getUnitId();let o,i,s,l;if(tu(r)){const g=r.getRenderById(t);if(g==null)return null;o=g.components,o=g.components,i=g.mainComponent,s=g.scene,l=g.engine}else o=r.components,i=r.mainComponent,s=r.scene,l=r.engine;if(!o||!i)return null;const d=i,c=o.get(he.ROW),u=o.get(he.COLUMN),h=o.get(he.LEFT_TOP);return{spreadsheet:d,spreadsheetRowHeader:c,spreadsheetColumnHeader:u,spreadsheetLeftTopPlaceholder:h,scene:s,engine:l}}function Ui(n,r,e,t){const{startX:o,startY:i,endX:s,endY:l}=t.getCellWithCoordByIndex(n,r);return{startX:o,startY:i,endX:s,endY:l}}function qe(n,r,e,t,o,i){const s=e.getCoordRelativeToViewport(w.Vector2.FromArray([n,r])),{x:l,y:d}=s,c=e.getScrollXYInfoByViewport(s,o),{scaleX:u,scaleY:h}=e.getAncestorScale(),g=t.getCellIndexByOffset(l,d,u,h,c,{closeFirst:i}),{row:S,column:f}=g,p=t.getNoMergeCellWithCoordByIndex(S,f),{startX:v,startY:C,endX:b,endY:R}=p;return{startX:v,startY:C,endX:b,endY:R,row:S,column:f}}function qn(n,r,e,t){const o=e.getCoordRelativeToViewport(w.Vector2.FromArray([n,r])),i=e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),s=e.getScrollXYInfoByViewport(o,i),{scaleX:l,scaleY:d}=e.getAncestorScale(),{x:c,y:u}=s,h=n/l+c,g=r/d+u;return{x:h,y:g}}var nu=Object.getOwnPropertyDescriptor,ou=(n,r,e,t)=>{for(var o=t>1?void 0:t?nu(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Wo=(n,r)=>(e,t)=>r(e,t,n);let $n=class extends a.Disposable{constructor(r,e,t,o,i){super();E(this,"_zoom");this._context=r,this._sheetSkeletonManagerService=e,this._commandService=t,this._contextService=o,this._editorBridgeService=i,this._initSkeletonListener(),this._initZoomEventListener()}updateZoom(r,e){const t=this._context.unit.getSheetBySheetId(r);return t?(t.getConfig().zoomRatio=e,t===this._context.unit.getActiveSheet()&&this._updateViewZoom(e),!0):!1}_initZoomEventListener(){const r=this._getSheetObject().scene;this.disposeWithMe(r.onMouseWheel$.subscribeEvent(e=>{if(!e.ctrlKey||!this._contextService.getContextValue(a.FOCUSING_SHEET))return;if(this._editorBridgeService){const c=this._editorBridgeService.isVisible();if((c.unitId===this._context.unitId||c.unitId===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)&&c.visible)return}const t=Math.abs(e.deltaX);let o=t<40?.2:t<80?.4:.2;o*=e.deltaY>0?-1:1,r.scaleX<1&&(o/=2);const i=this._context.unit,s=i.getActiveSheet();if(!s)return;const l=s.getZoomRatio();let d=+Number.parseFloat(`${l+o}`).toFixed(1);d=d>=4?4:d<=.1?.1:d,this._commandService.executeCommand(Nn.id,{zoomRatio:Math.round(d*10)/10,unitId:i.getUnitId(),subUnitId:s.getSheetId()}),e.preventDefault()}))}_initSkeletonListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(r=>{if(r==null)return;const t=this._context.unit.getActiveSheet();if(!t)return;const o=t.getZoomRatio()||1;this._zoom!==o&&this._updateViewZoom(o),this._zoom=o}))}_updateViewZoom(r){const e=this._getSheetObject();e==null||e.scene.scale(r,r),e==null||e.spreadsheet.makeForceDirty()}_getSheetObject(){return Ge(this._context.unit,this._context)}};$n=ou([Wo(1,a.Inject(exports.SheetSkeletonManagerService)),Wo(2,a.ICommandService),Wo(3,a.IContextService),Wo(4,a.Optional(Se))],$n);const Le={id:"sheet.operation.set-zoom-ratio",type:a.CommandType.OPERATION,handler:(n,r)=>{const t=n.get(w.IRenderManagerService).getRenderById(r.unitId);return t?t.with($n).updateZoom(r.subUnitId,r.zoomRatio):!1}};var ru=Object.getOwnPropertyDescriptor,iu=(n,r,e,t)=>{for(var o=t>1?void 0:t?ru(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},zr=(n,r)=>(e,t)=>r(e,t,n);const Js="univer-sheet-main-canvas";exports.SheetsRenderService=class extends a.RxDisposable{constructor(e,t,o){super();E(this,"_skeletonChangeMutations",new Set);this._contextService=e,this._instanceSrv=t,this._renderManagerService=o,Promise.resolve().then(()=>this._init())}registerSkeletonChangingMutations(e){return this._skeletonChangeMutations.has(e)?a.toDisposable(()=>{}):(this._skeletonChangeMutations.add(e),a.toDisposable(()=>this._skeletonChangeMutations.delete(e)))}checkMutationShouldTriggerRerender(e){return this._skeletonChangeMutations.has(e)}_init(){this._initWorkbookListener(),this._initContextListener()}_initWorkbookListener(){this._instanceSrv.getTypeOfUnitAdded$(a.UniverInstanceType.UNIVER_SHEET).pipe(O.takeUntil(this.dispose$)).subscribe(e=>this._createRenderer(e)),this._instanceSrv.getAllUnitsForType(a.UniverInstanceType.UNIVER_SHEET).forEach(e=>this._createRenderer(e)),this._instanceSrv.getTypeOfUnitDisposed$(a.UniverInstanceType.UNIVER_SHEET).pipe(O.takeUntil(this.dispose$)).subscribe(e=>this._disposeRenderer(e)),this.disposeWithMe(this._instanceSrv.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{e&&this._renderManagerService.setCurrent(e.getUnitId())}))}_createRenderer(e){const t=e.getUnitId();this._renderManagerService.created$.subscribe(o=>{o.unitId===t&&(o.engine.getCanvas().setId(`${Js}_${t}`),o.engine.getCanvas().getContext().setId(`${Js}_${t}`))}),this._renderManagerService.createRender(t)}_disposeRenderer(e){const t=e.getUnitId();this._renderManagerService.removeRender(t)}_initContextListener(){this.disposeWithMe(this._contextService.subscribeContextValue$(w.RENDER_RAW_FORMULA_KEY).pipe(O.distinctUntilChanged()).subscribe(()=>{this._renderManagerService.getRenderAll().forEach(e=>{e.mainComponent instanceof w.Spreadsheet&&e.mainComponent.makeForceDirty(!0)})}))}};exports.SheetsRenderService=iu([zr(0,a.IContextService),zr(1,a.IUniverInstanceService),zr(2,w.IRenderManagerService)],exports.SheetsRenderService);var su=Object.getOwnPropertyDescriptor,au=(n,r,e,t)=>{for(var o=t>1?void 0:t?su(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ot=(n,r)=>(e,t)=>r(e,t,n);exports.AutoFillController=class extends a.Disposable{constructor(e,t,o,i,s,l,d){super();E(this,"_beforeApplyData",[]);E(this,"_currentLocation",null);E(this,"_copyData",[]);E(this,"_defaultHook");this._univerInstanceService=e,this._commandService=t,this._autoFillService=o,this._editorBridgeService=i,this._renderManagerService=s,this._injector=l,this._sheetsRenderService=d,this._defaultHook={id:"default",type:mn.Default,priority:0,onBeforeFillData:(c,u)=>this._presetAndCacheData(c,u),onFillData:(c,u,h)=>this._fillData(c,u,h)},this._init()}_init(){this._initDefaultHook(),this._initSelectionControlFillChanged(),this._initQuitListener(),this._initSkeletonChange()}_initSkeletonChange(){this.disposeWithMe(this._sheetsRenderService.registerSkeletonChangingMutations(It.id))}_initDefaultHook(){this.disposeWithMe(this._autoFillService.addHook(this._defaultHook))}_initQuitListener(){const e=[Ce.id,En.id,m.SetRangeValuesCommand.id,Le.id,m.SetWorksheetActiveOperation.id,m.MoveRangeMutation.id,m.RemoveRowMutation.id,m.RemoveColMutation.id,m.InsertRowMutation.id,m.InsertColMutation.id,m.MoveRowsMutation.id,m.MoveColsMutation.id,m.SetWorksheetColWidthMutation.id,m.SetWorksheetRowHeightMutation.id,m.SetRangeValuesMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted((t,o)=>{var d,c;const i=o==null?void 0:o.fromCollab,s=o==null?void 0:o.fromSync,l=o==null?void 0:o.fromFormula;e.includes(t.id)&&!i&&!s&&!l&&t.params.trigger!==It.id&&t.params.trigger!==uo.id&&this._quit(),t.id===m.RemoveSheetMutation.id&&t.params.unitId===((d=this._currentLocation)==null?void 0:d.unitId)&&t.params.subUnitId===((c=this._currentLocation)==null?void 0:c.subUnitId)&&this._quit()})),this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(t=>{var o;t.getUnitId()===((o=this._currentLocation)==null?void 0:o.unitId)&&this._quit()}))}_quit(){this._currentLocation=null,this._beforeApplyData=[],this._copyData=[],this._autoFillService.setShowMenu(!1)}_initSelectionControlFillChanged(){const e=new a.DisposableCollection,t=()=>{e.dispose();const o=this._renderManagerService.getCurrentTypeOfRenderer(a.UniverInstanceType.UNIVER_SHEET);if(!o)return;o.with(ve).getSelectionControls().forEach(l=>{e.add(l.selectionFilled$.subscribe(d=>{if(d==null||d.startColumn===-1||d.startRow===-1||d.endColumn===-1||d.endRow===-1)return;const c={startColumn:l.model.startColumn,endColumn:l.model.endColumn,startRow:l.model.startRow,endRow:l.model.endRow},u={startColumn:d.startColumn,endColumn:d.endColumn,startRow:d.startRow,endRow:d.endRow};this._commandService.executeCommand(It.id,{sourceRange:c,targetRange:u})})),e.add(l.fillControl.onDblclick$.subscribeEvent(()=>{const d={startColumn:l.model.startColumn,endColumn:l.model.endColumn,startRow:l.model.startRow,endRow:l.model.endRow};this._handleDbClickFill(d)})),e.add(l.fillControl.onPointerDown$.subscribeEvent(()=>{this._editorBridgeService.isVisible().visible&&this._commandService.syncExecuteCommand(Ce.id,{visible:!1,eventType:w.DeviceInputEventType.PointerDown,unitId:o.unitId})}))})};t(),this.disposeWithMe(this._commandService.onCommandExecuted(o=>{o.id===m.SetSelectionsOperation.id&&t()})),this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(()=>t()))}_handleDbClickFill(e){const t=this._detectFillRange(e);t.endRow<=e.endRow||this._commandService.executeCommand(It.id,{sourceRange:e,targetRange:t})}_detectFillRange(e){var g,S,f,p,v,C;const{startRow:t,endRow:o,startColumn:i,endColumn:s}=e,l=(g=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET))==null?void 0:g.getActiveSheet();if(!l)return e;const d=l.getCellMatrix(),c=l.getMaxRows()-1,u=l.getMaxColumns()-1;let h=o;if(i>0&&((S=d.getValue(t,i-1))==null?void 0:S.v)!=null){let b=t;for(;((f=d.getValue(b,i-1))==null?void 0:f.v)!=null&&b<c;)b+=1;h=b-1}else if(s<u&&((p=d.getValue(o,s+1))==null?void 0:p.v)!=null){let b=t;for(;((v=d.getValue(b,s+1))==null?void 0:v.v)!=null&&b<c;)b+=1;h=b-1}for(let b=o+1;b<=h;b++)for(let R=i;R<=s;R++)if(((C=d.getValue(b,R))==null?void 0:C.v)!=null){h=b-1;break}return{startColumn:i,endColumn:s,startRow:t,endRow:h}}_getApplyData(e,t,o,i,s,l=!0){const d=[],c=Math.floor(o/t),u=o%t,h=this._autoFillService.getRules();if(!l&&s===ae.ONLY_FORMAT)return console.error("ERROR: only format can not be applied when hasStyle is false"),[];const g={};h.forEach(S=>{g[S.type]=[]}),h.forEach(S=>{const{type:f,applyFunctions:p={}}=S,v=e[f];v&&v.forEach(C=>{const b=Hd(C.index,u),R=C.index.length*c+b,T=this._applyFunctions(C,R,i,s,p,e),M=Vd(t,o,C.index);g[f].push({data:T,index:M})})});for(let S=0;S<o;S++)h.forEach(f=>{const{type:p}=f,v=g[p];for(let C=0;C<v.length;C++)S in v[C].index&&d.push(v[C].data[v[C].index[S]])});return d}_applyFunctions(e,t,o,i,s,l){const{data:d}=e,c=o===a.Direction.UP||o===a.Direction.LEFT;if(i===ae.COPY){const u=s==null?void 0:s[ae.COPY];return u?u(e,t,o,l):(c&&d.reverse(),jt(d,t))}if(i===ae.SERIES){const u=s==null?void 0:s[ae.SERIES];return u?u(e,t,o,l):(c&&d.reverse(),s!=null&&s[ae.COPY]?s[ae.COPY](e,t,o,l):jt(d,t))}if(i===ae.ONLY_FORMAT){const u=s==null?void 0:s[ae.ONLY_FORMAT];return u?u(e,t,o,l):Wd(d,t)}}_getCopyData(e,t){const o=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!o)throw new Error("No active sheet found");const i=o.getCellMatrix(),s=this._autoFillService.getRules(),l=[],d=t===a.Direction.DOWN||t===a.Direction.UP;let c,u;return d?(c=e.cols,u=e.rows):(c=e.rows,u=e.cols),c.forEach(h=>{const g=this._getEmptyCopyDataPiece(),S={type:void 0,cellData:void 0};u.forEach(f=>{let p;d?p=i.getValue(f,h):p=i.getValue(h,f);const{type:v,isContinue:C}=s.find(b=>b.match(p,this._injector))||Qa;if(C(S,p)){const b=g[v],R=b[b.length-1];R.data.push(p),R.index.push(f-u[0])}else{const b=g[v];b?b.push({data:[p],index:[f-u[0]]}):g[v]=[{data:[p],index:[f-u[0]]}]}S.type=v,S.cellData=p}),l.push(g)}),l}_getEmptyCopyDataPiece(){const e={};return this._autoFillService.getRules().forEach(t=>{e[t.type]=[]}),e}_getMergeApplyData(e,t,o,i){const s=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!s)throw new Error("No active sheet found");const l=[];for(let d=e.startRow;d<=e.endRow;d++)for(let c=e.startColumn;c<=e.endColumn;c++){const{isMergedMainCell:u,startRow:h,startColumn:g,endRow:S,endColumn:f}=s.getCellInfoInMergeData(d,c);if(u){if(o===a.Direction.DOWN){let p=h+i,v=S+i;for(;v<=t.endRow;)l.push({startRow:p,startColumn:g,endRow:v,endColumn:f}),p+=i,v+=i}else if(o===a.Direction.UP){let p=h-i,v=S-i;for(;p>=t.startRow;)l.push({startRow:p,startColumn:g,endRow:v,endColumn:f}),p-=i,v-=i}else if(o===a.Direction.RIGHT){let p=g+i,v=f+i;for(;v<=t.endColumn;)l.push({startRow:h,startColumn:p,endRow:S,endColumn:v}),p+=i,v+=i}else if(o===a.Direction.LEFT){let p=g-i,v=f-i;for(;p>=t.startColumn;)l.push({startRow:h,startColumn:p,endRow:S,endColumn:v}),p-=i,v-=i}}}return l}_presetAndCacheData(e,t){const{source:o,target:i}=e,s=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!s)throw new Error("No active sheet found");const l=s.getCellMatrix(),d=[];return i.rows.forEach(c=>{const u=[];i.cols.forEach(h=>{u.push(a.Tools.deepClone(l.getValue(c,h)))}),d.push(u)}),this._beforeApplyData=d,this._copyData=this._getCopyData(o,t),this._currentLocation=e,this._shouldDisableSeries(this._copyData)?(this._autoFillService.setDisableApplyType(ae.SERIES,!0),ae.COPY):(this._autoFillService.setDisableApplyType(ae.SERIES,!1),this._getPreferredApplyType(this._copyData))}_fillData(e,t,o){var W,H;const i=[],s=[];let l=!0;o===ae.NO_FORMAT&&(l=!1,o=ae.SERIES);const{source:d,target:c,unitId:u,subUnitId:h}=e;if(!d||!c||t==null)return{undos:i,redos:s};const g=Et(d),S=Et(c),{cols:f,rows:p}=c,{cols:v,rows:C}=d,b=this._copyData;let R;t===a.Direction.DOWN||t===a.Direction.UP?R=C.length:R=v.length;const T=[];if(t===a.Direction.DOWN||t===a.Direction.UP){const U=p.length,B=[];f.forEach((F,L)=>{const z=b[L],X=this._getApplyData(z,R,U,t,o,l);B.push(X)});for(let F=0;F<B[0].length;F++){const L=[];for(let z=0;z<B.length;z++)L.push({s:null,...B[z][F]});T.push(L)}}else{const U=f.length;p.forEach((B,F)=>{const L=b[F],z=this._getApplyData(L,R,U,t,o,l),X=[];for(let Z=0;Z<z.length;Z++)X.push({s:null,...z[Z]});T.push(X)})}let M=[];const y=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getStyles();if(l?(M=this._getMergeApplyData(g,S,t,R),T.forEach(U=>{U.forEach(B=>{B&&y&&y&&(B.s=y.getStyleByCell(B))})})):T.forEach((U,B)=>{U.forEach((F,L)=>{F&&y&&(F.s=y.getStyleByCell(this._beforeApplyData[B][L])||null)})}),o===ae.ONLY_FORMAT&&T.forEach((U,B)=>{U.forEach((F,L)=>{if(F){const z=this._beforeApplyData[B][L]||{};F.f=z.f,F.si=z.si,F.t=z.t,F.v=z.v}})}),l){const U=[],B=(H=(W=this._univerInstanceService.getUniverSheetInstance(u))==null?void 0:W.getSheetBySheetId(h))==null?void 0:H.getMergeData();B&&B.forEach(z=>{a.Rectangle.intersects(z,S)&&U.push(z)});const F={unitId:u,subUnitId:h,ranges:U},L=this._injector.invoke(m.RemoveMergeUndoMutationFactory,F);U.length&&(s.push({id:m.RemoveWorksheetMergeMutation.id,params:F}),i.unshift({id:m.AddWorksheetMergeMutation.id,params:L}))}const P={subUnitId:h,unitId:u,cellValue:Pd([c])},x=this._injector.invoke(m.SetRangeValuesUndoMutationFactory,P);s.push({id:m.SetRangeValuesMutation.id,params:P}),i.unshift({id:m.SetRangeValuesMutation.id,params:x});const A=new a.ObjectMatrix;p.forEach((U,B)=>{f.forEach((F,L)=>{T[B][L]&&A.setValue(U,F,T[B][L])})});const k=A.getMatrix(),N={subUnitId:h,unitId:u,cellValue:k},D=this._injector.invoke(m.SetRangeValuesUndoMutationFactory,N);if(this._autoFillService.getActiveHooks().forEach(U=>{var B;(B=U.onBeforeSubmit)==null||B.call(U,e,t,o,k)}),i.unshift({id:m.SetRangeValuesMutation.id,params:D}),s.push({id:m.SetRangeValuesMutation.id,params:N}),M!=null&&M.length){const U=m.getAddMergeMutationRangeByType(M),B={unitId:u,subUnitId:h,ranges:U},F=this._injector.invoke(m.AddMergeUndoMutationFactory,B);i.unshift({id:m.RemoveWorksheetMergeMutation.id,params:F}),s.push({id:m.AddWorksheetMergeMutation.id,params:B})}return{undos:i,redos:s}}_shouldDisableSeries(e){return e.every(t=>Object.keys(t).every(o=>{var i;return((i=t[o])==null?void 0:i.length)===0||[_e.OTHER,_e.FORMULA].includes(o)}))}_getPreferredApplyType(e){return e.every(o=>Object.keys(o).every(i=>{var s,l;return((s=o[i])==null?void 0:s.length)===0||((l=o[i])==null?void 0:l.length)===1&&o[i][0].data.length===1&&_e.NUMBER===i}))?ae.COPY:ae.SERIES}};exports.AutoFillController=au([Ot(0,a.IUniverInstanceService),Ot(1,a.ICommandService),Ot(2,Tt),Ot(3,Se),Ot(4,w.IRenderManagerService),Ot(5,a.Inject(a.Injector)),Ot(6,a.Inject(exports.SheetsRenderService))],exports.AutoFillController);var lu=Object.getOwnPropertyDescriptor,cu=(n,r,e,t)=>{for(var o=t>1?void 0:t?lu(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Xr=(n,r)=>(e,t)=>r(e,t,n);exports.CellCustomRenderController=class extends a.Disposable{constructor(e,t,o,i){super();E(this,"_enterActiveRender");this._context=e,this._sheetSkeletonManagerService=t,this._renderManagerService=o,this._permissionService=i,this._initEventBinding()}_initEventBinding(){const e=new a.DisposableCollection,t=this._context.unit,o=i=>{if(e.dispose(),!i)return;const s=this._context.unitId,{skeleton:l}=i,d=this._renderManagerService.getRenderById(s);if(d&&d.mainComponent){const c=d.mainComponent,u=S=>{const{offsetX:f,offsetY:p}=S,v=d.scene,C=t.getActiveSheet();if(!C)return;const b=v.getActiveViewportByCoord(w.Vector2.FromArray([f,p]));if(!b)return;const{scaleX:R,scaleY:T}=v.getAncestorScale(),M={x:b.viewportScrollX,y:b.viewportScrollY},y=l.getCellIndexByOffset(f,p,R,T,M),P=l.worksheet.getMergedCell(y.row,y.column),x={actualRow:P?P.startRow:y.row,actualCol:P?P.startColumn:y.column,row:y.row,col:y.column};if(!x||!l)return;const A=C.getCell(x.actualRow,x.actualCol);if(!A)return;const k=A.customRender;if(!(k!=null&&k.length))return;const N=x.actualRow,D=x.actualCol,W=k.sort(a.sortRules),H=C.getSheetId(),U={data:A,style:l.getStyles().getStyleByCell(A),primaryWithCoord:l.getCellWithCoordByIndex(x.actualRow,x.actualCol),unitId:s,subUnitId:H,row:N,col:D,workbook:t,worksheet:C},B={x:M.x+f/R,y:M.y+p/T},F=W.find(L=>{var z;return(z=L.isHit)==null?void 0:z.call(L,B,U)});if(F)return[F,U]},h=c.onPointerDown$.subscribeEvent(S=>{var p,v,C,b;const f=u(S);if(f){const[R,T]=f,{row:M,col:y,worksheet:P,unitId:x,subUnitId:A}=T;if(!((p=this._permissionService.composePermission([new m.WorkbookEditablePermission(x).id,new m.WorksheetEditPermission(x,A).id]))==null?void 0:p.every(D=>D.value)))return!1;const N=(C=(v=P.getCell(M,y))==null?void 0:v.selectionProtection)==null?void 0:C[0];if((N==null?void 0:N[m.UnitAction.Edit])===!1)return!1;(b=R.onPointerDown)==null||b.call(R,T,S)}}),g=a.fromEventSubject(c.onPointerMove$).pipe(O.throttleTime(30)).subscribe(S=>{var p,v,C,b,R,T;const f=u(S);if(f){const[M,y]=f;this._enterActiveRender?this._enterActiveRender.render!==M&&((v=(p=this._enterActiveRender.render).onPointerLeave)==null||v.call(p,this._enterActiveRender.cellContext,S),this._enterActiveRender={render:M,cellContext:y},(C=M.onPointerEnter)==null||C.call(M,y,S)):(this._enterActiveRender={render:M,cellContext:y},(b=M.onPointerEnter)==null||b.call(M,y,S))}else this._enterActiveRender&&((T=(R=this._enterActiveRender.render).onPointerLeave)==null||T.call(R,this._enterActiveRender.cellContext,S),this._enterActiveRender=null)});h&&e.add(h),g&&e.add(g)}};this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(o)),o(this._sheetSkeletonManagerService.getCurrentParam()),this.disposeWithMe(e)}};exports.CellCustomRenderController=cu([Xr(1,a.Inject(exports.SheetSkeletonManagerService)),Xr(2,w.IRenderManagerService),Xr(3,a.IPermissionService)],exports.CellCustomRenderController);class fs extends a.Disposable{constructor(){super(...arguments);E(this,"rangesStack",[]);E(this,"selectedRangeWorksheet","")}}var du=Object.getOwnPropertyDescriptor,uu=(n,r,e,t)=>{for(var o=t>1?void 0:t?du(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},$s=(n,r)=>(e,t)=>r(e,t,n);let Tn=class{constructor(n,r){E(this,"_current",null);E(this,"_shortcutParam",[]);this._univerInstanceService=n,this._localeService=r}dispose(){this._shortcutParam=[]}getCurrentBySearch(n){return this._getCurrentBySearch(n)}getCurrent(){return this._getCurrentBySearch(this._current)}addOrUpdate(n){const r=this._getCurrentBySearch({unitId:n.unitId,sheetId:n.sheetId,keycode:n.keycode});if(r!=null){const e=this._shortcutParam.indexOf(r);this._shortcutParam.splice(e,1)}return this._shortcutParam.push(n),r}remove(n){if(n==null)return;const r=this._getCurrentBySearch(n);if(r==null)return;const e=this._shortcutParam.indexOf(r);return this._shortcutParam.splice(e,1)[0]}_getCurrentBySearch(n){return n==null?void 0:this._shortcutParam.find(e=>e.unitId===n.unitId&&e.sheetId===n.sheetId&&e.keycode===n.keycode)}};Tn=uu([$s(0,a.IUniverInstanceService),$s(1,a.Inject(a.LocaleService))],Tn);var Or=(n=>(n.MergeAll="mergeAll",n.MergeVertical="mergeVertical",n.MergeHorizontal="mergeHorizontal",n))(Or||{});function _t(n,r,e,t,o=!0,i=1,s=!0){let l={...n};t==null&&(t={startRow:0,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1});let d;switch(r){case a.Direction.UP:for(d=n.startRow-i;d>-1&&!e.getRowVisible(d);)d-=1;d>=t.startRow?(l.startRow=d,l.endRow=d):s&&(l.startRow=t.endRow,l.endRow=t.endRow,o&&(l=_t(l,a.Direction.LEFT,e,t,!1)));break;case a.Direction.DOWN:for(d=n.endRow+i;d<e.getRowCount()&&!e.getRowVisible(d);)d+=1;d<=t.endRow?(l.startRow=d,l.endRow=d):s&&(l.startRow=t.startRow,l.endRow=t.startRow,o&&(l=_t(l,a.Direction.RIGHT,e,t,!1)));break;case a.Direction.LEFT:for(d=n.startColumn-i;d>-1&&!e.getColVisible(d);)d-=1;d>=t.startColumn?(l.startColumn=d,l.endColumn=d):s&&(l.startColumn=t.endColumn,l.endColumn=t.endColumn,o&&(l=_t(l,a.Direction.UP,e,t,!1)));break;case a.Direction.RIGHT:for(d=n.endColumn+i;d<e.getColumnCount()&&!e.getColVisible(d);)d+=1;d<=t.endColumn?(l.startColumn=d,l.endColumn=d):s&&(l.startColumn=t.startColumn,l.endColumn=t.startColumn,o&&(l=_t(l,a.Direction.DOWN,e,t,!1)));break}return l}function ps(n,r,e){const t={...n},{startRow:o,startColumn:i,endRow:s,endColumn:l}=eo(n,r,e);let d=Ln(e,o,i,s,l).hasValue,c=!0,u=!0;for(;u;){if(a.Direction.UP===r){let h=t.startRow-1;for(;h>-1&&!e.getRowVisible(h);)h-=1;if(h===-1){u=!1;break}const{hasValue:g,matrix:S}=Ln(e,h,t.startColumn,h,t.endColumn);if(d&&!g&&!c){u=!1;break}else{if(S.getLength()!==0){let f=h;S.forValue(p=>{f=Math.min(p,f)}),t.startRow=f}else t.startRow=h;if(t.endRow=t.startRow,!d&&g){u=!1;break}d=g,c=!1}}if(a.Direction.DOWN===r){let h=t.endRow+1;for(;h<e.getRowCount()&&!e.getRowVisible(h);)h+=1;if(h===e.getRowCount()){u=!1;break}const{hasValue:g,matrix:S}=Ln(e,h,t.startColumn,h,t.endColumn);if(d&&!g&&!c){u=!1;break}else{if(S.getLength()!==0){let f=h;S.forValue((p,v,C)=>{f=Math.max(p+(C.rowSpan||1)-1,f)}),t.endRow=f}else t.endRow=h;if(t.startRow=t.endRow,!d&&g){u=!1;break}d=g,c=!1}}if(a.Direction.LEFT===r){let h=t.startColumn-1;for(;h>-1&&!e.getColVisible(h);)h-=1;if(h===-1){u=!1;break}const{hasValue:g,matrix:S}=Ln(e,t.startRow,h,t.endRow,h);if(d&&!g&&!c){u=!1;break}else{if(S.getLength()!==0){let f=h;S.forValue((p,v)=>{f=Math.min(v,f)}),t.startColumn=f}else t.startColumn=h;if(t.endColumn=t.startColumn,!d&&g){u=!1;break}d=g,c=!1}}if(a.Direction.RIGHT===r){let h=t.endColumn+1;for(;h<e.getColumnCount()&&!e.getColVisible(h);)h+=1;if(h===e.getColumnCount()){u=!1;break}const{hasValue:g,matrix:S}=Ln(e,t.startRow,h,t.endRow,h);if(d&&!g&&!c){u=!1;break}else{if(S.getLength()!==0){let f=h;S.forValue((p,v,C)=>{f=Math.max(v+(C.colSpan||1)-1,f)}),t.endColumn=f}else t.endColumn=h;if(t.startColumn=t.endColumn,!d&&g){u=!1;break}d=g,c=!1}}}return m.alignToMergedCellsBorders(t,e,!0)}function Ja(n,r,e){return _t(n,r,e,void 0,!1,1,!1)}function hu(n,r,e){const t=ps(n,r,e);return m.alignToMergedCellsBorders(a.Rectangle.union(t,n),e,!0)}function mu(n,r,e){const t=Ja(n,r,e),o={startRow:Math.min(n.startRow,t.startRow),startColumn:Math.min(n.startColumn,t.startColumn),endRow:Math.max(n.endRow,t.endRow),endColumn:Math.max(n.endColumn,t.endColumn)};return m.alignToMergedCellsBorders(a.Rectangle.union(n,o),e)}function gu(n,r,e,t){const o=a.getReverseDirection(e),i=ps(eo(n,o,t),e,t);return e===a.Direction.UP&&i.startRow<=n.startRow?m.alignToMergedCellsBorders({...r,startColumn:n.startColumn,endColumn:n.endColumn},t,!0):e===a.Direction.DOWN&&i.endRow>=n.endRow?m.alignToMergedCellsBorders({...r,startColumn:n.startColumn,endColumn:n.endColumn},t,!0):e===a.Direction.LEFT&&i.startColumn<=n.startColumn?m.alignToMergedCellsBorders({...r,startRow:n.startRow,endRow:n.endRow},t,!0):e===a.Direction.RIGHT&&i.endColumn>=n.endColumn?m.alignToMergedCellsBorders({...r,startRow:n.startRow,endRow:n.endRow},t,!0):a.Rectangle.union(a.Rectangle.clone(r),i)}function Su(n,r,e){const t=a.getReverseDirection(r),o=eo(n,t,e),i=eo(n,r,e),s=Ja(o,r,e);return m.alignToMergedCellsBorders(a.Rectangle.union(i,s),e,!1)}function ea(n){return{startRow:0,startColumn:0,endRow:n.getRowCount()-1,endColumn:n.getColumnCount()-1,rangeType:a.RANGE_TYPE.ALL}}function eo(n,r,e){let t;switch(r){case a.Direction.UP:t={startRow:n.startRow,startColumn:n.startColumn,endRow:n.startRow,endColumn:n.endColumn,rangeType:a.RANGE_TYPE.NORMAL};break;case a.Direction.DOWN:t={startRow:n.endRow,startColumn:n.startColumn,endRow:n.endRow,endColumn:n.endColumn,rangeType:a.RANGE_TYPE.NORMAL};break;case a.Direction.LEFT:t={startRow:n.startRow,startColumn:n.startColumn,endRow:n.endRow,endColumn:n.startColumn,rangeType:a.RANGE_TYPE.NORMAL};break;case a.Direction.RIGHT:t={startRow:n.startRow,startColumn:n.endColumn,endRow:n.endRow,endColumn:n.endColumn,rangeType:a.RANGE_TYPE.NORMAL};break;default:throw new Error("Invalid direction")}return m.alignToMergedCellsBorders(t,e,!1)}function Ln(n,r,e,t,o){let i=!1;const s=n.getMatrixWithMergedCells(r,e,t,o).forValue((l,d,c)=>{if(pu(c))return i=!0,!1});return{hasValue:i,matrix:s}}function Li(n,r,e){const t=a.Rectangle.clone(n);if(r==null)return t;switch(e){case a.Direction.UP:case a.Direction.DOWN:t.startColumn=t.endColumn=r.actualColumn;break;case a.Direction.LEFT:case a.Direction.RIGHT:t.startRow=t.endRow=r.actualRow;break}return t}function fu(n,r,e){var l,d,c,u;const{primary:t,range:o}=n,i=a.Rectangle.clone(o);switch(r){case a.Direction.UP:case a.Direction.DOWN:i.startRow=(l=t==null?void 0:t.startRow)!=null?l:o.startRow,i.endRow=(d=t==null?void 0:t.endRow)!=null?d:o.startRow;break;case a.Direction.LEFT:case a.Direction.RIGHT:i.startColumn=(c=t==null?void 0:t.startColumn)!=null?c:o.startColumn,i.endColumn=(u=t==null?void 0:t.endColumn)!=null?u:o.startColumn;break}const s=eo(i,r,e);switch(r){case a.Direction.DOWN:return o.startRow<s.startRow;case a.Direction.UP:return o.endRow>s.endRow;case a.Direction.LEFT:return s.endColumn<o.endColumn;case a.Direction.RIGHT:return s.startColumn>o.startColumn}}function $a(n,r){let e=n[0].startRow,t=n[0].endRow;n.forEach(i=>{const{startRow:s,endRow:l}=i;e=Math.min(e,s),t=Math.max(t,l)});const o=new Array(t-e+1).fill(!1);return r.forEach(i=>{const{startRow:s,endRow:l}=i;for(let d=Math.max(s,e);d<=Math.min(l,t);d++)o[d-e]=!0}),n.every(i=>{const{startRow:s,endRow:l}=i;for(let d=s;d<=l;d++)if(!o[d-e])return!1;return!0})}function el(n,r){let e=n[0].startColumn,t=n[0].endColumn;n.forEach(i=>{const{startColumn:s,endColumn:l}=i;e=Math.min(e,s),t=Math.max(t,l)});const o=new Array(t-e+1).fill(!1);return r.forEach(i=>{const{startColumn:s,endColumn:l}=i;for(let d=Math.max(s,e);d<=Math.min(l,t);d++)o[d-e]=!0}),n.every(i=>{const{startColumn:s,endColumn:l}=i;for(let d=s;d<=l;d++)if(!o[d-e])return!1;return!0})}function vs(n,r){return r?n==="mergeAll"?r.filter(e=>!(e.startRow===e.endRow&&e.startColumn===e.endColumn)):n==="mergeVertical"?r.filter(e=>e.startRow!==e.endRow):n==="mergeHorizontal"?r.filter(e=>e.startColumn!==e.endColumn):r:null}function pu(n){return n.v!==void 0&&n.v!==null&&n.v!==""||n.p!==void 0}var Je=(n=>(n[n.moveStopeOne=0]="moveStopeOne",n[n.moveGap=1]="moveGap",n[n.moveStepPage=2]="moveStepPage",n[n.moveStepEnd=3]="moveStepEnd",n))(Je||{});const xe={id:"sheet.command.move-selection",type:a.CommandType.COMMAND,handler:(n,r)=>{if(!r)return!1;const e=m.getSheetCommandTarget(n.get(a.IUniverInstanceService));if(!e)return!1;const{workbook:t,worksheet:o}=e,i=m.getSelectionsService(n,r.fromCurrentSelection).getCurrentLastSelection();if(!i)return!1;const{direction:s,jumpOver:l,extra:d}=r,{range:c,primary:u}=i,h=Li(c,u,s),g=l===1?ps(h,s,o):_t(h,s,o),S=m.getCellAtRowCol(g.startRow,g.startColumn,o);if(a.Rectangle.equals(S,h))return!1;const f=t.getUnitId();n.get(Tn).remove({unitId:f,sheetId:o.getSheetId(),keycode:I.KeyCode.TAB});const p=[{range:a.Rectangle.clone(S),primary:{startRow:S.startRow,startColumn:S.startColumn,endRow:S.endRow,endColumn:S.endColumn,actualRow:g.startRow,actualColumn:g.startColumn,isMerged:S.isMerged,isMergedMainCell:S.startRow===g.startRow&&S.startColumn===g.startColumn}}];return n.get(a.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:t.getUnitId(),subUnitId:o.getSheetId(),selections:p,type:m.SelectionMoveType.MOVE_END,extra:d})}},$e={id:"sheet.command.move-selection-enter-tab",type:a.CommandType.COMMAND,handler:(n,r)=>{var U;if(!r)return!1;const e=m.getSheetCommandTarget(n.get(a.IUniverInstanceService));if(!e)return!1;const{workbook:t,worksheet:o}=e,i=m.getSelectionsService(n),{direction:s,keycode:l}=r,d=s===a.Direction.LEFT||s===a.Direction.UP,c=i.getCurrentSelections().concat(),u=c.findIndex(B=>B.primary),h=c[u];if(!h)return!1;const g=d?-1:1,S=u+g!==c.length?c[u+g]:c[0],f=c.findIndex(B=>B===S),p=t.getUnitId(),v=o.getSheetId();if(!h)return!1;const{range:C}=h,b=h.primary;let R=Li(C,b,s);const T=n.get(Tn),M=T.getCurrentBySearch({unitId:p,sheetId:v,keycode:I.KeyCode.TAB});let y;const{startRow:P,endRow:x,startColumn:A,endColumn:k}=C,N=d?b.startRow===P&&b.startColumn===A:b.endRow===x&&b.endColumn===k;if(a.Rectangle.equals(C,b)){if(l===I.KeyCode.TAB)M==null&&T.addOrUpdate({unitId:p,sheetId:v,keycode:I.KeyCode.TAB,selection:h});else{const L=M==null?void 0:M.selection;if(L!=null){const{range:z,primary:X}=L;R=Li(z,X,s)}T.remove({unitId:p,sheetId:v,keycode:I.KeyCode.TAB})}const B=_t(R,s,o),F=m.getCellAtRowCol(B.startRow,B.startColumn,o);if(a.Rectangle.equals(F,R))return!1;y={range:a.Rectangle.clone(F),primary:{startRow:F.startRow,startColumn:F.startColumn,endRow:F.endRow,endColumn:F.endColumn,actualRow:B.startRow,actualColumn:B.startColumn,isMerged:F.isMerged,isMergedMainCell:F.startRow===B.startRow&&F.startColumn===B.startColumn}}}else{T.remove({unitId:p,sheetId:v,keycode:I.KeyCode.TAB});const B=a.Tools.deepClone(b),F=N?S.range:_t({startRow:B.startRow,startColumn:B.startColumn,endRow:B.endRow,endColumn:B.endColumn},s,o,{startRow:P,endRow:x,startColumn:A,endColumn:k}),L=N&&d,z=L?m.getCellAtRowCol(F.endRow,F.endColumn,o):m.getCellAtRowCol(F.startRow,F.startColumn,o);y={range:N?S.range:a.Rectangle.clone(C),primary:{startRow:z.startRow,startColumn:z.startColumn,endRow:z.endRow,endColumn:z.endColumn,actualRow:L?z.startRow:F.startRow,actualColumn:L?z.startColumn:F.startColumn,isMerged:z.isMerged,isMergedMainCell:z.startRow===F.startRow&&z.startColumn===F.startColumn},style:N?S.style:h.style}}N?(c[u].primary=null,c[f]=y,i.setSelections(p,v,[],m.SelectionMoveType.MOVE_END)):c[u]=y;const D=n.get(a.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:p,subUnitId:v,type:m.SelectionMoveType.MOVE_END,selections:c,extra:r.extra}),H=(U=n.get(w.IRenderManagerService).getRenderById(p))==null?void 0:U.with(ve);return H==null||H.refreshSelectionMoveEnd(),D}},De={id:"sheet.command.expand-selection",type:a.CommandType.COMMAND,handler:(n,r)=>{if(!r)return!1;const e=m.getSheetCommandTarget(n.get(a.IUniverInstanceService));if(!e)return!1;const{worksheet:t,unitId:o,subUnitId:i}=e,s=m.getSelectionsService(n).getCurrentLastSelection();if(!s)return!1;const{range:l,primary:d}=s,{jumpOver:c,direction:u,extra:h}=r,S=fu(s,u,t)?c===1?gu(l,{...a.Rectangle.clone(d),rangeType:a.RANGE_TYPE.NORMAL},u,t):Su(l,u,t):c===1?hu(l,u,t):mu(l,u,t);return S.rangeType=s.range.rangeType,a.Rectangle.equals(S,l)?!1:n.get(a.ICommandService).syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:o,subUnitId:i,type:m.SelectionMoveType.ONLY_SET,selections:[{range:S,primary:d}],extra:h})}},xr={id:"sheet.command.select-all",type:a.CommandType.COMMAND,handler:async(n,r={expandToGapFirst:!0,loop:!1})=>{const e=m.getSheetCommandTarget(n.get(a.IUniverInstanceService));if(!e)return!1;const t=m.getSelectionsService(n).getCurrentLastSelection();if(!t)return!1;const o=n.get(fs),{worksheet:i,unitId:s,subUnitId:l}=e,d=`${s}|${l}`;d!==o.selectedRangeWorksheet&&(o.rangesStack=[],o.selectedRangeWorksheet=d);const c=i.getMaxRows(),u=i.getMaxColumns(),{expandToGapFirst:h,loop:g}=r,{range:S,primary:f}=t,p=S.endColumn===u-1&&S.endRow===c-1&&S.startRow===0&&S.startColumn===0;o.rangesStack.some(C=>a.Rectangle.equals(C,S))||(o.rangesStack=[],o.rangesStack.push(S));let v;if(p)if(g){if(o.rangesStack.findIndex(b=>a.Rectangle.equals(b,S))!==o.rangesStack.length-1)return!1;v=o.rangesStack[0]}else return!1;else h?(v=m.expandToContinuousRange(S,{left:!0,right:!0,up:!0,down:!0},i),a.Rectangle.equals(v,S)&&(v=ea(i))):v=ea(i);return o.rangesStack.some(C=>a.Rectangle.equals(C,v))||o.rangesStack.push(v),n.get(a.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:s,subUnitId:l,selections:[{range:v,primary:f}]})}};var vu=Object.getOwnPropertyDescriptor,Cu=(n,r,e,t)=>{for(var o=t>1?void 0:t?vu(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Iu=(n,r)=>(e,t)=>r(e,t,n);exports.SheetScrollManagerService=class{constructor(r,e){E(this,"_scrollStateMap",new Map);E(this,"_rawScrollInfo$",new O.BehaviorSubject(null));E(this,"rawScrollInfo$",this._rawScrollInfo$.asObservable());E(this,"validViewportScrollInfo$",new O.BehaviorSubject(null));E(this,"_searchParamForScroll",null);this._context=r,this._sheetSkeletonManagerService=e}dispose(){this._rawScrollInfo$.complete()}calcViewportScrollFromRowColOffset(r){if(!r)return{viewportScrollX:0,viewportScrollY:0};let{sheetViewStartColumn:e,sheetViewStartRow:t,offsetX:o,offsetY:i}=r;t=t||0,i=i||0;const s=this._sheetSkeletonManagerService.getCurrentSkeleton(),l=(s==null?void 0:s.rowHeightAccumulation[t-1])||0,c=((s==null?void 0:s.columnWidthAccumulation[e-1])||0)+o,u=l+i;return{viewportScrollX:c,viewportScrollY:u}}setSearchParam(r){this._searchParamForScroll=r}getScrollStateByParam(r){return this._getCurrentScroll(r)}getCurrentScrollState(){return this._getCurrentScroll(this._searchParamForScroll)}setValidScrollState(r){this._setScrollState(r)}emitRawScrollParam(r){this._emitRawScroll(r)}setValidScrollStateToCurrSheet(r){if(this._searchParamForScroll==null)return;this._setScrollState({...this._searchParamForScroll,...r});const e=this._searchParamForScroll.sheetId,t=this._sheetSkeletonManagerService.getSkeleton(e);t&&t.setScroll(r.viewportScrollX,r.viewportScrollY)}clear(){this._searchParamForScroll!=null&&this._clearByParamAndNotify(this._searchParamForScroll)}_setScrollState(r){const{unitId:e,sheetId:t,sheetViewStartColumn:o,sheetViewStartRow:i,offsetX:s,offsetY:l}=r;this._scrollStateMap.has(e)||this._scrollStateMap.set(e,new Map);const d=this._scrollStateMap.get(e),c={sheetViewStartRow:i,sheetViewStartColumn:o,offsetX:s,offsetY:l};d.set(t,c)}_clearByParamAndNotify(r){this._setScrollState({...r,sheetViewStartRow:0,sheetViewStartColumn:0,offsetX:0,offsetY:0}),this._emitRawScroll({sheetViewStartRow:0,sheetViewStartColumn:0,offsetX:0,offsetY:0})}_getCurrentScroll(r){var s;const e={sheetViewStartRow:0,sheetViewStartColumn:0,offsetX:0,offsetY:0};if(r==null)return e;const{unitId:t,sheetId:o}=r;return((s=this._scrollStateMap.get(t))==null?void 0:s.get(o))||e}_emitRawScroll(r){this._rawScrollInfo$.next(r)}};exports.SheetScrollManagerService=Cu([Iu(1,a.Inject(exports.SheetSkeletonManagerService))],exports.SheetScrollManagerService);const je={id:"sheet.operation.set-scroll",type:a.CommandType.OPERATION,handler:(n,r)=>{if(!r)return!1;const{unitId:e,sheetId:t,offsetX:o,offsetY:i,sheetViewStartColumn:s,sheetViewStartRow:l}=r;return n.get(w.IRenderManagerService).getRenderById(e).with(exports.SheetScrollManagerService).emitRawScrollParam({unitId:e,sheetId:t,offsetX:o,offsetY:i,sheetViewStartRow:l,sheetViewStartColumn:s}),!0}},wn={id:"sheet.command.set-scroll-relative",type:a.CommandType.COMMAND,handler:async(n,r)=>{const e=n.get(a.ICommandService),t=n.get(a.IUniverInstanceService),o=n.get(w.IRenderManagerService),i=m.getSheetCommandTarget(t);if(!i)return!1;const{unitId:s,subUnitId:l}=i,c=o.getRenderById(s).with(exports.SheetScrollManagerService).getCurrentScrollState(),{offsetX:u=0,offsetY:h=0}=r||{},{sheetViewStartRow:g=0,sheetViewStartColumn:S=0,offsetX:f=0,offsetY:p=0}=c||{};return e.executeCommand(je.id,{unitId:s,sheetId:l,sheetViewStartRow:g,sheetViewStartColumn:S,offsetX:f+u,offsetY:p+h})}},ze={id:"sheet.command.scroll-view",type:a.CommandType.COMMAND,handler:(n,r)=>{if(!r)return!1;const e=n.get(a.IUniverInstanceService),t=n.get(w.IRenderManagerService),o=m.getSheetCommandTarget(e);if(!o)return!1;const{workbook:i,worksheet:s,unitId:l}=o,c=t.getRenderById(l).with(exports.SheetScrollManagerService).getCurrentScrollState();if(!s)return!1;const{sheetViewStartRow:u,sheetViewStartColumn:h,offsetX:g,offsetY:S}=r,{sheetViewStartColumn:f,sheetViewStartRow:p,offsetX:v,offsetY:C}=c||{},{xSplit:b,ySplit:R}=o.worksheet.getConfig().freeze;return n.get(a.ICommandService).syncExecuteCommand(je.id,{unitId:i.getUnitId(),sheetId:s.getSheetId(),sheetViewStartRow:u!=null?u:p!=null?p:0+R,sheetViewStartColumn:h!=null?h:f!=null?f:0+b,offsetX:g!=null?g:v,offsetY:S!=null?S:C})}},Cs={id:"sheet.command.scroll-to-cell",type:a.CommandType.COMMAND,handler:(n,r)=>{const e=n.get(a.IUniverInstanceService);return n.get(w.IRenderManagerService).getRenderById(e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports.SheetsScrollRenderController).scrollToRange(r.range,r.forceTop,r.forceLeft)}},_u={id:"sheet.command.scroll-view-reset",type:a.CommandType.COMMAND,handler:async n=>{const r=n.get(a.IUniverInstanceService),e=m.getSheetCommandTarget(r);if(!e)return!1;const{subUnitId:t,unitId:o}=e;return n.get(a.ICommandService).executeCommand(je.id,{unitId:o,sheetId:t,sheetViewStartRow:0,sheetViewStartColumn:0})}};var bu=Object.getOwnPropertyDescriptor,Ru=(n,r,e,t)=>{for(var o=t>1?void 0:t?bu(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},sn=(n,r)=>(e,t)=>r(e,t,n);const Eu=[xe.id,$e.id],Tu=3;exports.SheetsScrollRenderController=class extends a.Disposable{constructor(r,e,t,o,i,s,l){super(),this._context=r,this._injector=e,this._sheetSkeletonManagerService=t,this._contextService=o,this._commandService=i,this._renderManagerService=s,this._scrollManagerService=l,this._initCommandListener(),this._wheelEventListener(),this._scrollBarEventListener(),this._initSkeletonListener()}_wheelEventListener(){const{scene:r}=this._context;if(!r)return;const e=r.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);e&&this.disposeWithMe(r.onMouseWheel$.subscribeEvent((t,o)=>{if(t.ctrlKey||!this._contextService.getContextValue(a.FOCUSING_SHEET))return;let i=0,s=0;i=t.deltaX,t.shiftKey?i=(t.deltaY||t.deltaX)*Tu:s=t.deltaY,this._commandService.executeCommand(wn.id,{offsetX:i,offsetY:s}),this._context.scene.makeDirty(!0);const l=e.limitedScroll(e.scrollX+i,e.scrollY+s);l&&!l.isLimitedX&&!l.isLimitedY&&(t.preventDefault(),r.getParent().classType===w.RENDER_CLASS_TYPE.SCENE_VIEWER&&o.stopPropagation()),e.isWheelPreventDefaultX&&e.isWheelPreventDefaultY&&t.preventDefault()}))}_scrollBarEventListener(){const{scene:r}=this._context;if(r==null)return;const e=r.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);e&&(this.disposeWithMe(a.toDisposable(this._scrollManagerService.rawScrollInfo$.subscribe(t=>{var S;const o=(S=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:S.skeleton;if(!o)return;if(t==null){e.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0});return}const{sheetViewStartRow:i,sheetViewStartColumn:s,offsetX:l,offsetY:d}=t,{startX:c,startY:u}=o.getCellWithCoordByIndex(i,s,!1),h=c+l,g=u+d;e.scrollToViewportPos({viewportScrollX:h,viewportScrollY:g})}))),this.disposeWithMe(e.onScrollAfter$.subscribeEvent(t=>{var p;const o=(p=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:p.skeleton;if(o==null||t.isTrigger===!1)return;const i=this._getSheetObject();if(o==null||i==null)return;const{viewportScrollX:s,viewportScrollY:l,scrollX:d,scrollY:c}=t,{row:u,column:h,rowOffset:g,columnOffset:S}=o.getOffsetRelativeToRowCol(s,l),f={sheetViewStartRow:u,sheetViewStartColumn:h,offsetX:S,offsetY:g,viewportScrollX:s,viewportScrollY:l,scrollX:d,scrollY:c};this._scrollManagerService.setValidScrollStateToCurrSheet(f),this._scrollManagerService.validViewportScrollInfo$.next({...f,viewportScrollX:s,viewportScrollY:l,scrollX:d,scrollY:c})})),this.disposeWithMe(e.onScrollByBar$.subscribeEvent(t=>{var g;const o=(g=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:g.skeleton;if(o==null||t.isTrigger===!1)return;const i=this._getSheetObject();if(o==null||i==null)return;const{viewportScrollX:s=0,viewportScrollY:l=0}=t;this._getFreeze();const{row:d,column:c,rowOffset:u,columnOffset:h}=o.getOffsetRelativeToRowCol(s,l);this._commandService.executeCommand(ze.id,{sheetViewStartRow:d,sheetViewStartColumn:c,offsetX:h,offsetY:u})})))}_initSkeletonListener(){this.disposeWithMe(a.toDisposable(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(r=>{if(r==null)return;const e={unitId:r.unitId,sheetId:r.sheetId};if(this._scrollManagerService.setSearchParam(e),!this._getSheetObject())return;const o=this._scrollManagerService.getScrollStateByParam(e),{viewportScrollX:i,viewportScrollY:s}=this._scrollManagerService.calcViewportScrollFromRowColOffset(o);o&&this._updateViewportScroll(i,s)})))}_updateViewportScroll(r=0,e=0){const t=this._getSheetObject();if(!t)return;const o=t.scene,i=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),s=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT),l=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM),d=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT),c=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);i&&(i.viewportScrollX=r,i.viewportScrollY=e),l&&(l.viewportScrollY=e),s&&(s.viewportScrollX=r),d&&(d.viewportScrollY=e),c&&(c.viewportScrollX=r)}scrollToRange(r,e,t){let{endRow:o,endColumn:i,startColumn:s,startRow:l}=r;const d=this._getViewportBounding();if(r.rangeType===a.RANGE_TYPE.ROW?(s=0,i=0):r.rangeType===a.RANGE_TYPE.COLUMN&&(l=0,o=0),d&&!e&&!t){const c=d.startRow>o?l:o,u=d.startColumn>i?s:i;return this._scrollToCell(c,u)}else return this._scrollToCell(l,s,e,t)}scrollToCell(r,e){const t=this._context.unit.getActiveSheet(),{ySplit:o,xSplit:i}=t.getFreeze();return this._commandService.syncExecuteCommand(ze.id,{sheetViewStartRow:r-o,sheetViewStartColumn:e-i,offsetX:0,offsetY:0})}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(Eu.includes(r.id))this._scrollToSelection();else if(r.id===m.ScrollToCellOperation.id){const e=r.params;this.scrollToRange(e)}else if(r.id===De.id){const e=r.params;this._scrollToSelectionForExpand(e)}else r.id===m.SetSelectionsOperation.id&&r.params.reveal&&this._scrollToSelection()}))}_scrollToSelectionForExpand(r){setTimeout(()=>{const e=this._getSelectionsService().getCurrentLastSelection();if(e==null)return;const{startRow:t,startColumn:o,endRow:i,endColumn:s}=e.range,l=this._getViewportBounding();if(l==null)return;const{startRow:d,startColumn:c,endRow:u,endColumn:h}=l;let g=0,S=0;t>d?g=i:i<u?g=t:g=d,o>c?S=s:s<h?S=o:S=c,r.direction===a.Direction.DOWN?g=i:r.direction===a.Direction.UP?g=t:r.direction===a.Direction.RIGHT?S=s:r.direction===a.Direction.LEFT&&(S=o),this._scrollToCell(g,S)},0)}_getFreeze(){var e;const r=(e=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:e.skeleton.getWorksheetConfig();if(r!=null)return r.freeze}_updateSceneSize(r){var h;if(r==null)return;const{unitId:e}=this._context,{skeleton:t}=r,o=(h=this._renderManagerService.getRenderById(e))==null?void 0:h.scene;if(t==null||o==null)return;const{rowTotalHeight:i,columnTotalWidth:s,rowHeaderWidthAndMarginLeft:l,columnHeaderHeightAndMarginTop:d}=t;this._context.unit.getActiveSheet()&&(o==null||o.transformByState({width:l+s,height:d+i}))}_getSheetObject(){return Ge(this._context.unit,this._context)}_scrollToSelectionByDirection(r){const e=this._getViewportBounding();if(e==null)return!1;const{startRow:t,startColumn:o,endRow:i,endColumn:s}=e;let l=0,d=0;const{startRow:c,startColumn:u,endRow:h,endColumn:g}=r;c>=t&&(l=h),h<=i&&(l=c),u>=o&&(d=g),g<=s&&(d=u),this._scrollToCell(l,d)}_scrollToSelection(r=!0){var c;const e=this._getSelectionsService().getCurrentLastSelection();if(!e)return;const{startRow:t,startColumn:o,actualRow:i,actualColumn:s}=(c=e.primary)!=null?c:e.range,l=r&&i!=null?i:t,d=r&&s!=null?s:o;this._scrollToCell(l,d)}_getSelectionsService(){return m.getSelectionsService(this._injector)}_getViewportBounding(){var i,s;const r=(i=this._getSheetObject())==null?void 0:i.scene;if(r==null)return;const e=r.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(e==null)return;const t=(s=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:s.skeleton;if(t==null)return;const o=e.calcViewportInfo();return t.getRangeByViewBound(o.viewBound)}_scrollToCell(r,e,t=!1,o=!1){var k,N,D;const{rowHeightAccumulation:i,columnWidthAccumulation:s}=(k=this._sheetSkeletonManagerService.getCurrentSkeleton())!=null?k:{};if(i==null||s==null)return!1;const l=(N=this._getSheetObject())==null?void 0:N.scene;if(l==null)return!1;const d=l.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(d==null)return!1;const c=(D=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:D.skeleton;if(c==null)return!1;const u=this._context.unit.getActiveSheet();if(!u)return!1;r=a.Tools.clamp(r,0,i.length-1),e=a.Tools.clamp(e,0,s.length-1);const{startColumn:h,startRow:g,ySplit:S,xSplit:f}=u.getFreeze(),p=this._getViewportBounding();if(p==null)return!1;const{startRow:v,startColumn:C,endRow:b,endColumn:R}=p;c.getVisibleRangeByViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);let T,M;if(r>=g&&e>=h-S&&(r<=v&&(T=r,t=!0),r>=b)){const W=i[r]-d.height;for(let H=v;H<=r&&(T=H+1,!(i[H]>=W));H++);}if(e>=h&&r>=g-S&&(e<=C&&(M=e,o=!0),e>=R)){const W=s[e]-d.width;for(let H=C;H<=e&&(M=H+1,!(s[H]>=W));H++);}if(T===void 0&&M===void 0)return!1;let{offsetX:y,offsetY:P,sheetViewStartRow:x,sheetViewStartColumn:A}=this._scrollManagerService.getCurrentScrollState()||{};if(T=T?Math.min(T,r):x+S,M=M?Math.min(M,e):A+f,o){y=0,M=e;const W=c.getHiddenColumnsInRange({startColumn:M-f,endColumn:M});M=M-W.length}if(t){P=0,T=r;const W=c.getHiddenRowsInRange({startRow:T-S,endRow:T});T=T-W.length}return this._commandService.syncExecuteCommand(ze.id,{sheetViewStartRow:Math.max(0,T-S),sheetViewStartColumn:Math.max(0,M-f),offsetX:y,offsetY:P})}};exports.SheetsScrollRenderController=Ru([sn(1,a.Inject(a.Injector)),sn(2,a.Inject(exports.SheetSkeletonManagerService)),sn(3,a.IContextService),sn(4,a.ICommandService),sn(5,w.IRenderManagerService),sn(6,a.Inject(exports.SheetScrollManagerService))],exports.SheetsScrollRenderController);const Is={id:"sheet.operation.scroll-to-range",type:a.CommandType.OPERATION,handler:(n,r)=>{if(!r)return!1;const e=n.get(a.IUniverInstanceService);return n.get(w.IRenderManagerService).getRenderById(e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports.SheetsScrollRenderController).scrollToRange(r.range,r.forceTop,r.forceLeft)}};class tl{constructor(){E(this,"_state",null);E(this,"_rect",null);E(this,"_state$",new O.BehaviorSubject(null));E(this,"state$",this._state$.asObservable());E(this,"_rect$",new O.BehaviorSubject(null));E(this,"rect$",this._rect$.asObservable());E(this,"_focus",!1);E(this,"_focus$",new O.BehaviorSubject(this._focus));E(this,"focus$",this._focus$.asObservable())}dispose(){this._state$.complete(),this._state=null,this._rect$.complete(),this._rect=null}setState(r){this._state=r,this._refresh(r)}getRect(){return this._rect}setRect(r){this._rect=r,this._rect$.next(r)}getState(){return this._state}setFocus(r=!1){this._focus=r,this._focus$.next(r)}_refresh(r){this._state$.next(r)}}const mo=a.createIdentifier("univer.sheet-cell-editor-manager.service"),wu="36",yu="univer-sheet-container",nl={sheetFooterBarHeight:wu,sheetContainer:yu};var Mu=Object.getOwnPropertyDescriptor,Pu=(n,r,e,t)=>{for(var o=t>1?void 0:t?Mu(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},an=(n,r)=>(e,t)=>r(e,t,n);const ta=5,na=2;exports.SheetCellEditorResizeService=class extends a.Disposable{constructor(r,e,t,o,i,s,l){super(),this._context=r,this._layoutService=e,this._cellEditorManagerService=t,this._editorBridgeService=o,this._renderManagerService=i,this._sheetSkeletonManagerService=s,this._univerInstanceService=l}fitTextSize(r){var A,k,N,D;const e=this._editorBridgeService.getEditCellState();if(!e)return;const{position:t,documentLayoutObject:o,canvasOffset:i,scaleX:s,scaleY:l}=e,{startX:d,startY:c,endX:u,endY:h}=t,g=this._univerInstanceService.getUnit(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.UniverInstanceType.UNIVER_DOC);if(g==null)return;const S=this._getEditorSkeleton();if(!S)return;const f=this._predictingSize(t,i,S,o,s,l);if(!f)return;let{actualWidth:p,actualHeight:v}=f;const{verticalAlign:C,horizontalAlign:b,paddingData:R,fill:T}=o;p=p+((A=R.l)!=null?A:0)+((k=R.r)!=null?k:0),v=v+((N=R.t)!=null?N:0)+((D=R.b)!=null?D:0);let M=u-d,y=h-c;M<p&&(M=Math.ceil(p)),y<v&&(y=Math.ceil(v));let P=0;C===a.VerticalAlign.MIDDLE?P=(y-v)/2/l:C===a.VerticalAlign.TOP?P=R.t||0:P=(y-v)/l;let x=0;b===a.HorizontalAlign.CENTER?x=(M-p)/2/s:b===a.HorizontalAlign.RIGHT?x=(M-p)/s:x=R.l||0,P=P<(R.t||0)?R.t||0:P,x=x<(R.l||0)?R.l||0:x,g.updateDocumentDataMargin({t:P,l:x}),S.calculate(),this._editAreaProcessing(M,y,t,i,T,s,l,b,r)}_predictingSize(r,e,t,o,i=1,s=1){const{startX:l,endX:d}=r,{textRotation:c,wrapStrategy:u,paddingData:h}=o,g=this._univerInstanceService.getUnit(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.UniverInstanceType.UNIVER_DOC),{vertexAngle:S}=w.convertTextRotation(c);if(u===a.WrapStrategy.WRAP&&S===0){g==null||g.updateDocumentDataPageSize(d-l),g==null||g.updateDocumentDataMargin({l:h.l,t:h.t}),t.calculate();const{actualWidth:C,actualHeight:b}=t.getActualSize();return{actualWidth:C*i,actualHeight:b*s}}const f=this._getEditorMaxSize(r,e,o.horizontalAlign);if(!f)return;g==null||g.updateDocumentDataPageSize(f.width/i),t.calculate();const p=t.getActualSize();let v=d-l;return v<p.actualWidth*i+ta*i&&(v=p.actualWidth*i+ta*i),g==null||g.updateDocumentDataPageSize(v/i),g==null||g.updateDocumentRenderConfig({horizontalAlign:a.HorizontalAlign.UNSPECIFIED,cellValueType:void 0}),{actualWidth:p.actualWidth*i,actualHeight:p.actualHeight*s}}_getEditorMaxSize(r,e,t){if(this._getEditorObject()==null)return;function i(b){return Number.parseInt(b.replace("px",""))}const l=this._context.engine.getCanvasElement(),d=l.getBoundingClientRect(),c=i(l.style.width),{width:u}=d,h=u/c,{startX:g,startY:S,endX:f}=r,p=this._context.engine.width,v=document.body.clientHeight-S-Number.parseFloat(nl.sheetFooterBarHeight)-e.top-na*2;let C=u-g;if(t===a.HorizontalAlign.CENTER){const b=p-f,R=g;C=f-g+Math.min(R,b)*2}else t===a.HorizontalAlign.RIGHT&&(C=f);return{height:v,width:C-na,scaleAdjust:h}}_editAreaProcessing(r,e,t,o,i,s=1,l=1,d,c){var H;const u=this._getEditorObject();if(u==null)return;const g=this._context.engine.getCanvasElement();let{startX:S,startY:f}=t;const{document:p,scene:v,engine:C}=u,b=v.getViewport(J.VIEWPORT_KEY.VIEW_MAIN),R=this._getEditorMaxSize(t,o,d),{height:T,width:M,scaleAdjust:y}=R;let P=e,x=b==null?void 0:b.getScrollBar();P>T?(x==null?b&&new w.ScrollBar(b,{enableHorizontal:!1,barSize:8}):b==null||b.resetCanvasSizeAndUpdateScroll(),b==null||b.scrollToViewportPos({viewportScrollY:P-T}),P=T):(x=null,(H=b==null?void 0:b.getScrollBar())==null||H.dispose()),r+=(x==null?void 0:x.barSize)||0,r>M&&(r=M),this._addBackground(v,r/s,e/l,i);const{scaleX:A,scaleY:k}=v.getPrecisionScale();v.transformByState({width:r*y/s,height:e*y/l,scaleX:s*y,scaleY:l*y}),p.resize(r*y/s,e*y/l),setTimeout(()=>{C.resizeBySize(w.fixLineWidthByScale(r,A),w.fixLineWidthByScale(P,k)),c==null||c()},0);const N=this._layoutService.getContentElement().getBoundingClientRect(),D=g.getBoundingClientRect();S=S*y+(D.left-N.left),f=f*y+(D.top-N.top);const W=t.endX-t.startX;d===a.HorizontalAlign.RIGHT?S+=(W-r)*y:d===a.HorizontalAlign.CENTER&&(S+=(W-r*y)/2),this._cellEditorManagerService.setState({startX:S,startY:f,endX:r*y+S,endY:P*y+f,show:!0})}_addBackground(r,e,t,o){const i="_backgroundRectHelperColor_",s=r.getObject(i);s==null&&o==null||(s==null?r.addObjects([new w.Rect(i,{width:e,height:t,fill:o,evented:!1})],J.DOCS_COMPONENT_MAIN_LAYER_INDEX):o==null?s.dispose():(s.setProps({fill:o}),s.transformByState({width:e,height:t})))}resizeCellEditor(r){var y;const e=this._cellEditorManagerService.getState();if(!e||!this._editorBridgeService.isVisible().visible)return;this._editorBridgeService.refreshEditCellPosition(!0);const t=this._editorBridgeService.getEditCellState();if(!t)return;const o=(y=this._sheetSkeletonManagerService.getSkeletonParam(t.sheetId))==null?void 0:y.skeleton;if(!o)return;const{row:i,column:s,scaleX:l,scaleY:d,position:c,canvasOffset:u,documentLayoutObject:h}=t,{horizontalAlign:g}=h,S=this._getEditorMaxSize(c,u,g);if(!S)return;const{height:f,width:p,scaleAdjust:v}=S,C=o.getCellWithCoordByIndex(i,s),b=Math.min((C.mergeInfo.endY-C.mergeInfo.startY)*d,f)*v,R=Math.min((C.mergeInfo.endX-C.mergeInfo.startX)*l,p)*v,T=e.endY-e.startY,M=e.endX-e.startX;if(T!==b||M!==R){if(this._editorBridgeService.refreshEditCellPosition(!0),!this._getEditorSkeleton())return;this.fitTextSize(r)}}_getEditorObject(){return Tr(this._editorBridgeService.getCurrentEditorId(),this._renderManagerService)}_getEditorSkeleton(){var r;return(r=this._renderManagerService.getRenderById(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY))==null?void 0:r.with(Re.DocSkeletonManagerService).getSkeleton()}};exports.SheetCellEditorResizeService=Pu([an(1,I.ILayoutService),an(2,mo),an(3,Se),an(4,w.IRenderManagerService),an(5,a.Inject(exports.SheetSkeletonManagerService)),an(6,a.IUniverInstanceService)],exports.SheetCellEditorResizeService);function _s(n){return n.getContextValue(a.FOCUSING_SHEET)}function le(n){return n.getContextValue(a.FOCUSING_SHEET)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)&&!n.getContextValue(a.EDITOR_ACTIVATED)&&!n.getContextValue(a.FOCUSING_COMMON_DRAWINGS)}function ol(n){return n.getContextValue(a.FOCUSING_SHEET)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)&&!n.getContextValue(a.EDITOR_ACTIVATED)&&!n.getContextValue(a.FOCUSING_FX_BAR_EDITOR)&&!n.getContextValue(a.FOCUSING_COMMON_DRAWINGS)}function Ou(n){return n.getContextValue(a.FOCUSING_SHEET)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)&&n.getContextValue(a.EDITOR_ACTIVATED)}function xu(n){return n.getContextValue(a.FOCUSING_UNIVER_EDITOR)&&n.getContextValue(a.EDITOR_ACTIVATED)}function rl(n){return n.getContextValue(a.FOCUSING_FX_BAR_EDITOR)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)}function Au(n){return n.getContextValue(a.FOCUSING_SHEET)&&n.getContextValue(a.EDITOR_ACTIVATED)&&n.getContextValue(a.FOCUSING_EDITOR_INPUT_FORMULA)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)}function to(n){return n.getContextValue(a.FOCUSING_SHEET)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)&&n.getContextValue(a.EDITOR_ACTIVATED)&&!n.getContextValue(a.FOCUSING_EDITOR_INPUT_FORMULA)&&!n.getContextValue(a.FOCUSING_EDITOR_STANDALONE)}const il=[I.KeyCode.ARROW_DOWN,I.KeyCode.ARROW_UP,I.KeyCode.ARROW_LEFT,I.KeyCode.ARROW_RIGHT],ku=[I.KeyCode.ENTER,I.KeyCode.TAB,...il];function sl(){const n=[];for(const r of il)n.push({id:Xt.id,binding:r,preconditions:e=>to(e),staticParameters:{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:r,isShift:!1}}),n.push({id:Xt.id,binding:r|I.MetaKeys.SHIFT,preconditions:e=>to(e),staticParameters:{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:r,isShift:!0}});return n}const al={id:ho.id,binding:I.KeyCode.F2,description:"shortcut.sheet.start-editing",group:"4_sheet-edit",preconditions:le,staticParameters:{visible:!0,eventType:w.DeviceInputEventType.Keyboard,keycode:I.KeyCode.F2}},ll={id:Ce.id,binding:I.KeyCode.ENTER,description:"shortcut.sheet.toggle-editing",group:"4_sheet-edit",preconditions:n=>to(n),staticParameters:{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:I.KeyCode.ENTER}},cl={id:Ce.id,binding:I.KeyCode.TAB,preconditions:n=>to(n),staticParameters:{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:I.KeyCode.TAB}},dl={id:Ce.id,binding:I.KeyCode.ESC,description:"shortcut.sheet.abort-editing",group:"4_sheet-edit",preconditions:n=>to(n),staticParameters:{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:I.KeyCode.ESC}},ul={id:J.BreakLineCommand.id,description:"shortcut.sheet.break-line",group:"4_sheet-edit",preconditions:n=>Ou(n),binding:I.KeyCode.ENTER|I.MetaKeys.ALT},hl={id:J.DeleteLeftCommand.id,preconditions:n=>xu(n)||rl(n),binding:I.KeyCode.BACKSPACE},ml={id:Ce.id,description:"shortcut.sheet.delete-and-start-editing",group:"4_sheet-edit",preconditions:n=>le(n)&&!rl(n),binding:I.KeyCode.BACKSPACE,staticParameters:{visible:!0,eventType:w.DeviceInputEventType.Keyboard,keycode:I.KeyCode.BACKSPACE}};function Nu(n){return n.startsWith("'")}function Du(n){return n.slice(1)}const Hu={"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","%":"%","-":"-",".":".",":":":","/":"/","+":"+","@":"@","&":"&","*":"*","#":"#","=":"=",">":">","<":"<","$":"$",""":'"',"'":"'","(":"(",")":")"," ":" ",",":",","!":"!","?":"?",";":";","[":"[","]":"]","{":"{","}":"}"},Bi={true:"TRUE",false:"FALSE"};function Vu(n){return[a.LocaleType.ZH_CN,a.LocaleType.ZH_TW].includes(n)}function Wu(n,r,e,t){let o=n;if(Vu(e)){if(n.startsWith("'")||n.startsWith("'"))return`'${n.slice(1)}`;o=Uu(o)}if(o.startsWith("="))return Lu(n,o,r,t);const i=o.toLowerCase();return Bi[i]?Bi[i]:a.numfmt.parseValue(o)==null?n:o}function Uu(n){const r=/['"].*?['"]/g,e=[],t=n.split(r);n.replace(r,i=>(e.push(i),""));let o=t.join("").split("").map(ju).join("");return e.forEach((i,s)=>{o=o.slice(0,s*2)+i+o.slice((s+1)*2)}),o}function Lu(n,r,e,t){const o=e.sequenceNodesBuilder(r);if(!o)return n;let i=r,s=0;return o.forEach((l,d)=>{if(typeof l=="object"){const c=l.token;if(Bi[c.toLowerCase()]){const u=l.startIndex+s+1,h=l.endIndex+s+2;i=ln(c.toLocaleUpperCase(),i,u,h)}else if(l.nodeType===G.sequenceNodeType.FUNCTION&&Bu(c,t,o,d)||l.nodeType===G.sequenceNodeType.REFERENCE){const u=c.indexOf("!");if(u>-1){const h=c.substring(u+1),g=l.startIndex+s+(u+1)+1,S=l.endIndex+s+2;i=ln(h.toLocaleUpperCase(),i,g,S)}else{const h=l.startIndex+s+1,g=l.endIndex+s+2;i=ln(c.toLocaleUpperCase(),i,h,g)}}else if(c.startsWith('"')&&c.endsWith('"')||c.startsWith("'")&&c.endsWith("'")){const u=l.startIndex+s+2,h=l.endIndex+s+1;i=ln(n.slice(u,h),i,u,h)}else if(l.nodeType!==G.sequenceNodeType.ARRAY){const u=a.numfmt.parseValue(c);if(u==null){const h=l.startIndex+s+1,g=l.endIndex+s+2;i=ln(n.slice(h,g),i,h,g)}else if(typeof u.v=="number"&&(u.z===void 0||!a.numfmt.isDate(u.z))){const h=`${u.v}`,g=l.startIndex+s+1,S=l.endIndex+s+2,{processedString:f,offset:p}=zu(c,h);i=ln(f,i,g,S),s+=p}}}}),i}function Bu(n,r,e,t){const o=r.getDescriptions();return e[t+1]!==G.matchToken.OPEN_BRACKET?!1:o.get(Fu(n).toLocaleUpperCase())!==void 0}function Fu(n){const r=/^@+/;return n.replace(r,"")}function ju(n){return Hu[n]||n}function ln(n,r,e,t){return r.substring(0,e)+n+r.substring(t)}function zu(n,r){var s,l;const e=((s=n.match(/^\s*/))==null?void 0:s[0])||"",t=((l=n.match(/\s*$/))==null?void 0:l[0])||"",o=e+r+t,i=o.length-n.length;return{processedString:o,offset:i}}const gl="range_selector",Sl=n=>n.includes(gl);var Xu=Object.getOwnPropertyDescriptor,Yu=(n,r,e,t)=>{for(var o=t>1?void 0:t?Xu(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},ye=(n,r)=>(e,t)=>r(e,t,n);const oa=-1e3;exports.EditingRenderController=class extends a.Disposable{constructor(e,t,o,i,s,l,d,c,u,h,g,S,f,p,v,C){super();E(this,"_cursorChange",0);E(this,"_isUnitEditing",!1);E(this,"_workbookSelections");E(this,"_d");E(this,"_cursorTimeout");this._context=e,this._undoRedoService=o,this._contextService=i,this._renderManagerService=s,this._editorBridgeService=l,this._cellEditorManagerService=d,this._lexerTreeBuilder=c,this._functionService=u,this._textSelectionManagerService=h,this._commandService=g,this._localService=S,this._editorService=f,this._sheetCellEditorResizeService=p,this._univerInstanceService=v,this._sheetInterceptorService=C,this._workbookSelections=t.getWorkbookSelections(this._context.unitId),this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(b=>{(b==null?void 0:b.getUnitId())===this._context.unitId?this._d=this._init():(this._disposeCurrent(),this._isUnitEditing&&(this._handleEditorInvisible({visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:I.KeyCode.ESC,unitId:this._context.unitId}),this._isUnitEditing=!1))})),this._initEditorVisibilityListener()}dispose(){super.dispose(),this._disposeCurrent()}_disposeCurrent(){var e;(e=this._d)==null||e.dispose(),this._d=null}_init(){const e=new a.DisposableCollection;return this._subscribeToCurrentCell(e),this._initialCursorSync(e),this._listenEditorFocus(e),this._commandExecutedListener(e),this._initSkeletonListener(e),e.add(()=>{clearTimeout(this._cursorTimeout)}),this._cursorTimeout=setTimeout(()=>{this._cursorStateListener(e)},1e3),e}_initEditorVisibilityListener(){this.disposeWithMe(this._editorBridgeService.visible$.pipe(O.distinctUntilChanged((e,t)=>e.visible===t.visible)).subscribe(e=>{(e.unitId===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY||e.unitId===a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY||e.unitId===this._context.unitId)&&e.visible?(this._isUnitEditing=!0,this._handleEditorVisible(e)):this._isUnitEditing&&(this._handleEditorInvisible(e),this._isUnitEditing=!1)}))}_listenEditorFocus(e){const t=this._getEditorObject();t&&e.add(t.document.onPointerDown$.subscribeEvent(()=>{if(this._isUnitEditing&&this._editorBridgeService.isVisible()){const o=this._editorBridgeService.getEditCellState(),i=this._editorBridgeService.getCurrentEditorId();if(!o||!i)return;this._sheetCellEditorResizeService.fitTextSize()}}))}_initialCursorSync(e){e.add(this._cellEditorManagerService.focus$.pipe(O.filter(t=>!!t)).subscribe(()=>{var o;const t=(o=this._renderManagerService.getCurrentTypeOfRenderer(a.UniverInstanceType.UNIVER_DOC))==null?void 0:o.with(J.DocSelectionRenderService);t&&t.sync()}))}_initSkeletonListener(e){const t=new Set(m.COMMAND_LISTENER_SKELETON_CHANGE);t.delete(m.SetWorksheetActiveOperation.id),e.add(this._commandService.onCommandExecuted(o=>{if(t.has(o.id)){switch(o.id){case m.MoveRowsMutation.id:case m.MoveColsMutation.id:case m.RemoveColMutation.id:case m.RemoveRowMutation.id:case m.InsertColMutation.id:case m.InsertRowMutation.id:{const i=this._editorBridgeService.getEditLocation();if(!i)break;const s={startRow:i.row,startColumn:i.column,endRow:i.row,endColumn:i.column},l=m.adjustRangeOnMutation(s,o);if(!l)break;const d=l.startRow,c=l.startColumn;this._editorBridgeService.updateEditLocation(d,c);break}}this._sheetCellEditorResizeService.resizeCellEditor(()=>{this._textSelectionManagerService.refreshSelection({unitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY})})}}))}_subscribeToCurrentCell(e){e.add(this._editorBridgeService.currentEditCellState$.subscribe(t=>{var b,R;if(t==null||this._editorBridgeService.isForceKeepVisible())return;const o=this._editorBridgeService.getEditCellState();if(o==null)return;const{position:i,documentLayoutObject:s,scaleX:l,editorUnitId:d}=o;if(this._contextService.getContextValue(a.FOCUSING_EDITOR_STANDALONE))return;const c=this._getDocumentDataModel();if(c==null)return;const{startX:u,endX:h}=i,{textRotation:g,wrapStrategy:S,documentModel:f}=s,{vertexAngle:p}=w.convertTextRotation(g);S===a.WrapStrategy.WRAP&&p===0&&c.updateDocumentDataPageSize((h-u)/l),this._commandService.syncExecuteCommand(J.ReplaceSnapshotCommand.id,{unitId:d,snapshot:f.getSnapshot()}),this._contextService.setContextValue(a.FOCUSING_EDITOR_BUT_HIDDEN,!0),this._textSelectionManagerService.replaceDocRanges([{startOffset:0,endOffset:0}],{unitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY});const v=(b=this._renderManagerService.getRenderById(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY))==null?void 0:b.with(J.DocSelectionRenderService),C=(R=this._renderManagerService.getRenderById(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))==null?void 0:R.with(J.DocSelectionRenderService);(v!=null&&v.canFocusing||C!=null&&C.canFocusing)&&(this._univerInstanceService.setCurrentUnitForType(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),v==null||v.activate(oa,oa,!0))}))}_commandExecutedListener(e){e.add(this._commandService.onCommandExecuted(o=>{if(o.id===Re.RichTextEditingMutation.id){const i=o.params,{unitId:s}=i;if(!this._isCurrentSheetFocused()||Sl(s)||(this._editorBridgeService.changeEditorDirty(!0),!this._editorBridgeService.isVisible().visible))return;s===a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY&&this._sheetCellEditorResizeService.fitTextSize()}}));const t=[Xt.id];e.add(this._commandService.onCommandExecuted(o=>{if(t.includes(o.id)){const i=o.params,{keycode:s,isShift:l}=i;if(s!=null&&(this._cursorChange===2||this._contextService.getContextValue(a.FOCUSING_FX_BAR_EDITOR))){this._moveInEditor(s,l);return}this._commandService.syncExecuteCommand(Ce.id,i)}o.id===ho.id&&(this._cursorChange=2)}))}_handleEditorVisible(e){var S,f,p;const{eventType:t,keycode:o}=e;this._cursorChange=t===w.DeviceInputEventType.PointerDown||t===w.DeviceInputEventType.Dblclick?2:1;const i=this._editorBridgeService.getEditLocation();if(i==null)return;this._commandService.syncExecuteCommand(Is.id,{range:{startRow:i.row,startColumn:i.column,endRow:i.row,endColumn:i.column}}),this._editorBridgeService.refreshEditCellPosition(!1);const{unitId:s,isInArrayFormulaRange:l=!1}=i,d=this._getEditorObject();if(d==null)return;const{document:c,scene:u}=d;this._contextService.setContextValue(a.EDITOR_ACTIVATED,!0);const h=this._getDocumentDataModel(),g=this._getEditorSkeleton(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);if(!(!g||!h)){if(this._sheetCellEditorResizeService.fitTextSize(()=>{const v=u.getViewport(J.VIEWPORT_KEY.VIEW_MAIN);v==null||v.scrollToViewportPos({viewportScrollX:Number.POSITIVE_INFINITY,viewportScrollY:Number.POSITIVE_INFINITY})}),t===w.DeviceInputEventType.Keyboard&&o===I.KeyCode.F2){c.makeDirty(),this._textSelectionManagerService.replaceDocRanges([{startOffset:0,endOffset:0}]);const v=((f=(S=h.getBody())==null?void 0:S.dataStream.length)!=null?f:2)-2;this._textSelectionManagerService.replaceDocRanges([{startOffset:v,endOffset:v}],{unitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY})}else if(t===w.DeviceInputEventType.Keyboard||t===w.DeviceInputEventType.Dblclick&&l)this._emptyDocumentDataModel(h.getSnapshot().documentStyle,!!l),c.makeDirty(),(o===I.KeyCode.BACKSPACE||t===w.DeviceInputEventType.Dblclick)&&(g.calculate(),this._editorBridgeService.changeEditorDirty(!0)),this._textSelectionManagerService.replaceDocRanges([{startOffset:0,endOffset:0}],{unitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY});else if(t===w.DeviceInputEventType.Dblclick){if(this._contextService.getContextValue(a.FOCUSING_EDITOR_INPUT_FORMULA))return;const v=h.getBody().dataStream.length-2||0;this._textSelectionManagerService.replaceDocRanges([{startOffset:v,endOffset:v}])}(p=this._renderManagerService.getRenderById(s))==null||p.scene.resetCursor()}}async _handleEditorInvisible(e){const t=this._editorBridgeService.getEditCellState(),o=this._univerInstanceService.getUnit(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),i=a.Tools.deepClone(o==null?void 0:o.getSnapshot());let{keycode:s}=e;if(this._cursorChange=0,this._exitInput(e),t==null)return;this._editorBridgeService.getEditorDirty()===!1&&(s=I.KeyCode.ESC);const c=this._context.unit.getActiveSheet(),u=this._context.unitId,h=c.getSheetId(),{unitId:g,sheetId:S}=t;if(u===g&&S!==h&&await this._commandService.executeCommand(m.SetWorksheetActivateCommand.id,{subUnitId:S,unitId:g}),s===I.KeyCode.ESC){this._editorBridgeService.isForceKeepVisible()&&this._editorBridgeService.disableForceKeepVisible();const f=this._workbookSelections.getCurrentSelections();f&&(this._contextService.setContextValue(m.REF_SELECTIONS_ENABLED,!1),this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:this._context.unit.getUnitId(),subUnitId:S,selections:f}));return}i&&await this._submitCellData(i),this._moveCursor(s)}_getEditorObject(){return Tr(this._editorBridgeService.getCurrentEditorId(),this._renderManagerService)}submitCellData(e){return this._submitCellData(e.getSnapshot())}async _submitCellData(e){const t=this._editorBridgeService.getEditCellState();if(t==null)return;const{unitId:o,sheetId:i,row:s,column:l}=t,d=this._context.unit;let c=d.getActiveSheet();if(!d.getSheetBySheetId(i))return;c=d.getActiveSheet();const h=Gu({...c.getCellRaw(s,l)||{}},e,this._lexerTreeBuilder,this._localService,this._functionService,d.getStyles());if(!h)return;const g=await this._sheetInterceptorService.onWriteCell(d,c,s,l,h);g!==c.getCellRaw(s,l)&&this._commandService.executeCommand(m.SetRangeValuesCommand.id,{subUnitId:i,unitId:o,range:{startRow:s,startColumn:l,endRow:s,endColumn:l},value:g})}_exitInput(e){var i;this._contextService.setContextValue(a.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(a.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(a.FOCUSING_EDITOR_BUT_HIDDEN,!1),this._contextService.setContextValue(a.FOCUSING_FX_BAR_EDITOR,!1),this._cellEditorManagerService.setState({show:e.visible});const t=this._getEditorObject();(i=t==null?void 0:t.scene.getViewport(J.VIEWPORT_KEY.VIEW_MAIN))==null||i.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0});const o=this._editorBridgeService.getCurrentEditorId();o==null||!this._editorService.isSheetEditor(o)||(this._undoRedoService.clearUndoRedo(o),this._undoRedoService.clearUndoRedo(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))}_moveCursor(e){if(e==null||!ku.includes(e))return;let t=a.Direction.LEFT;switch(e){case I.KeyCode.ENTER:t=a.Direction.DOWN;break;case I.KeyCode.TAB:t=a.Direction.RIGHT;break;case I.KeyCode.ARROW_DOWN:t=a.Direction.DOWN;break;case I.KeyCode.ARROW_UP:t=a.Direction.UP;break;case I.KeyCode.ARROW_LEFT:t=a.Direction.LEFT;break;case I.KeyCode.ARROW_RIGHT:t=a.Direction.RIGHT;break}e===I.KeyCode.ENTER||e===I.KeyCode.TAB?this._commandService.executeCommand($e.id,{keycode:e,direction:t}):this._commandService.executeCommand(xe.id,{direction:t})}_cursorStateListener(e){const t=this._getEditorObject();if(!(t!=null&&t.document))return;const{document:o}=t;e.add(a.toDisposable(o.onPointerDown$.subscribeEvent(()=>{this._cursorChange===1&&(this._cursorChange=2)})))}_moveInEditor(e,t){let o=a.Direction.LEFT;e===I.KeyCode.ARROW_DOWN?o=a.Direction.DOWN:e===I.KeyCode.ARROW_UP?o=a.Direction.UP:e===I.KeyCode.ARROW_RIGHT&&(o=a.Direction.RIGHT),t?this._commandService.executeCommand(J.MoveSelectionOperation.id,{direction:o}):this._commandService.executeCommand(J.MoveCursorOperation.id,{direction:o})}_getDocumentDataModel(){return this._univerInstanceService.getUnit(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.UniverInstanceType.UNIVER_DOC)}_isCurrentSheetFocused(){var e;return((e=this._univerInstanceService.getFocusedUnit())==null?void 0:e.getUnitId())===this._context.unitId}_getEditorSkeleton(e){var t;return(t=this._renderManagerService.getRenderById(e))==null?void 0:t.with(Re.DocSkeletonManagerService).getSkeleton()}_getEditorViewModel(e){var t;return(t=this._renderManagerService.getRenderById(e))==null?void 0:t.with(Re.DocSkeletonManagerService).getViewModel()}_emptyDocumentDataModel(e,t){const o=(l,d)=>{const c=a.Tools.deepClone(l.getSnapshot()),u=this._getEditorViewModel(l.getUnitId());u!=null&&(Zu(c.body,t),d&&(c.documentStyle=e),c.drawings={},c.drawingsOrder=[],l.reset(c),u.reset(l))},i=this._getDocumentDataModel();i&&o(i,!0);const s=this._univerInstanceService.getUnit(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,a.UniverInstanceType.UNIVER_DOC);s&&o(s)}};exports.EditingRenderController=Yu([ye(1,a.Inject(m.SheetsSelectionsService)),ye(2,a.IUndoRedoService),ye(3,a.IContextService),ye(4,w.IRenderManagerService),ye(5,Se),ye(6,mo),ye(7,a.Inject(G.LexerTreeBuilder)),ye(8,G.IFunctionService),ye(9,a.Inject(Re.DocSelectionManagerService)),ye(10,a.ICommandService),ye(11,a.Inject(a.LocaleService)),ye(12,J.IEditorService),ye(13,a.Inject(exports.SheetCellEditorResizeService)),ye(14,a.IUniverInstanceService),ye(15,a.Inject(m.SheetInterceptorService))],exports.EditingRenderController);function Gu(n,r,e,t,o,i){var h,g,S;if((r==null?void 0:r.body)==null)return null;const{body:s}=r;n.t=void 0;const l=s.dataStream;let c=l.substring(l.length-2,l.length)===a.DEFAULT_EMPTY_DOCUMENT_VALUE?l.substring(0,l.length-2):l;const u=t.getCurrentLocale();if(c=Wu(c,e,u,o),(h=r.drawingsOrder)!=null&&h.length)n.v="",n.f=null,n.si=null,n.p=r,n.t=a.CellValueType.STRING;else if(n.s&&((S=(g=i==null?void 0:i.get(n.s))==null?void 0:g.n)==null?void 0:S.pattern)===fd.DEFAULT_TEXT_FORMAT){n.v=c,n.f=null,n.si=null,n.p=null,n.t=a.CellValueType.STRING,Fi(s)&&s.dataStream!==`\r
2
- `&&(n.p=r);const f=ra(r);f&&(n.s=f)}else if(a.isFormulaString(c)){if(n.f===c)return null;const f=e.checkIfAddBracket(c);for(let p=0;p<f;p++)c+=G.matchToken.CLOSE_BRACKET;n.f=c,n.si=null,n.v=null,n.p=null}else if(Nu(c)){const f=Du(c);n.v=f,n.f=null,n.si=null,n.p=null,n.t=a.CellValueType.FORCE_STRING}else if(Fi(s))s.dataStream===`\r
3
- `?(n.v="",n.f=null,n.si=null,n.p=null):(n.p=r,n.v=null,n.f=null,n.si=null);else{if(c===""&&n.v==null&&n.p==null)return null;n.v=c,n.f=null,n.si=null,n.p=null;const f=ra(r);f&&(n.s=f)}return n}function Fi(n){const{textRuns:r=[],paragraphs:e=[],customRanges:t,customBlocks:o=[]}=n,i=n.dataStream.replace(/(\r\n)+$/,""),s=["va"];return r.filter(l=>l.st<i.length).some(l=>{var c;return!!(l.ts&&Object.keys(l.ts).some(u=>s.includes(u)))||Object.keys((c=l.ts)!=null?c:{}).length&&l.ed-l.st<i.length})||e.some(l=>l.bullet)||e.length>=2||!!(t!=null&&t.length)||o.length>0}function ra(n){const{body:r}=n;if(!r)return null;const{textRuns:e=[]}=r;let t={};const o=r.dataStream.replace(`\r
4
- `,"");return e.forEach(i=>{const{st:s,ed:l,ts:d}=i;l-s>=o.length&&(t={...t,...d})}),Object.keys(t).length?t:null}function Zu(n,r=!1){n.dataStream=a.DEFAULT_EMPTY_DOCUMENT_VALUE,n.textRuns!=null&&(n.textRuns.length===1&&!r?(n.textRuns[0].st=0,n.textRuns[0].ed=1):n.textRuns=void 0),n.paragraphs!=null&&(n.paragraphs=[{startIndex:0}]),n.sectionBreaks!=null&&(n.sectionBreaks=void 0),n.tables!=null&&(n.tables=void 0),n.customRanges!=null&&(n.customRanges=void 0),n.customBlocks!=null&&(n.customBlocks=void 0)}var Ku=Object.getOwnPropertyDescriptor,qu=(n,r,e,t)=>{for(var o=t>1?void 0:t?Ku(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Yr=(n,r)=>(e,t)=>r(e,t,n);const ia=us.MARK_SELECTION,Qt=a.createIdentifier("univer.mark-selection-service");exports.MarkSelectionService=class extends a.Disposable{constructor(e,t,o){super();E(this,"_shapeMap",new Map);this._currentService=e,this._renderManagerService=t,this._themeService=o}addShape(e,t=[],o=ia){var c;const i=this._currentService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=(c=i.getActiveSheet())==null?void 0:c.getSheetId();if(!s)return null;const l=a.Tools.generateRandomId(),d={selection:e,subUnitId:s,unitId:i.getUnitId(),zIndex:o,control:null,exits:t};return this._shapeMap.set(l,d),this.refreshShapes(),l}addShapeWithNoFresh(e,t=[],o=ia){var d;const i=this._currentService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=(d=i.getActiveSheet())==null?void 0:d.getSheetId();if(!s)return null;const l=a.Tools.generateRandomId();return this._shapeMap.set(l,{selection:e,subUnitId:s,unitId:i.getUnitId(),zIndex:o,control:null,exits:t}),l}refreshShapes(){var i;const e=this._currentService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!e)return;const t=e.getUnitId(),o=(i=e.getActiveSheet())==null?void 0:i.getSheetId();this._shapeMap.forEach(s=>{var R;const{unitId:l,subUnitId:d,selection:c,control:u,zIndex:h}=s;if(u==null||u.dispose(),l!==t||d!==o)return;const g=this._renderManagerService.getRenderById(l);if(!g)return;const S=(R=this._renderManagerService.withCurrentTypeOfUnit(a.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:R.getCurrentSkeleton();if(!S)return;const{scene:f}=g,{rowHeaderWidth:p,columnHeaderHeight:v}=S,C=new lo(f,h,this._themeService,{enableAutoFill:!1,highlightHeader:!1,rowHeaderWidth:p,columnHeaderHeight:v}),b=Me(c,S);C.updateRangeBySelectionWithCoord(b),s.control=C})}getShapeMap(){return this._shapeMap}removeShape(e){const t=this._shapeMap.get(e);if(!t)return;const{control:o}=t;o==null||o.dispose(),this._shapeMap.delete(e)}removeAllShapes(){for(const e of this._shapeMap.values()){const{control:t}=e;t==null||t.dispose()}this._shapeMap.clear()}};exports.MarkSelectionService=qu([Yr(0,a.IUniverInstanceService),Yr(1,w.IRenderManagerService),Yr(2,a.Inject(a.ThemeService))],exports.MarkSelectionService);function fl(n){return{strokeWidth:1.5,stroke:n.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},strokeDash:8}}const Qu=10,Ju=6;function $u(){return a.Tools.generateRandomId(Ju)}function eh(n){const r=n.match(/data-copy-id="([^\s]+)"/);return r&&r[1]?r[1]:null}class th{constructor(){E(this,"_cache",new a.LRUMap(Qu))}set(r,e){this._cache.set(r,e)}get(r){return this._cache.get(r)}del(r){this._cache.delete(r)}clear(){this._cache.clear()}clearWithUnitId(r){this._cache.forEach((e,t)=>{e.unitId===r&&this._cache.delete(t)})}}function tr(n,r){const e=r!=null?r:n.style,t={},o=n.tagName.toLowerCase();switch(o){case"b":case"em":case"strong":{t.bl=a.BooleanNumber.TRUE;break}case"s":{t.st={s:a.BooleanNumber.TRUE};break}case"u":{t.ul={s:a.BooleanNumber.TRUE};break}case"i":{t.it=a.BooleanNumber.TRUE;break}case"sub":case"sup":{t.va=o==="sup"?a.BaselineOffset.SUPERSCRIPT:a.BaselineOffset.SUBSCRIPT;break}}return nh(e,t),t}function nh(n,r){if(n instanceof CSSStyleDeclaration)for(let e=0;e<n.length;e++){const t=n[e],o=n.getPropertyValue(t);sa(t,o,r)}else for(const e in n){const t=n[e];sa(e,t,r)}}function sa(n,r,e){switch(n){case"font-family":e.ff=r;break;case"font-size":{const t=Number.parseInt(r);Number.isNaN(t)||(r.endsWith("pt")?e.fs=t:r.endsWith("px")&&(e.fs=t*.75));break}case"font-style":r==="italic"&&(e.it=a.BooleanNumber.TRUE);break;case"font-weight":{(Number(r)>400||r==="bold")&&(e.bl=a.BooleanNumber.TRUE);break}case"text-decoration":{/underline/.test(r)?e.ul={s:a.BooleanNumber.TRUE}:/overline/.test(r)?e.ol={s:a.BooleanNumber.TRUE}:/line-through/.test(r)&&(e.st={s:a.BooleanNumber.TRUE});break}case"color":{try{const t=new a.ColorKit(r);t.isValid&&(e.cl={rgb:t.toRgbString()})}catch{}break}case"background-color":{const t=new a.ColorKit(r),o=t.isValid?t.toRgbString():"";o!==I.DEFAULT_BACKGROUND_COLOR_RGB&&o!==I.DEFAULT_BACKGROUND_COLOR_RGBA&&(e.bg={rgb:o});break}}}function oh(n){const r=document.createElement("body");return r.innerHTML=n,r}function pl(n){const r=n.style,e={};for(let t=0;t<r.length;t++){const o=r[t],i=r.getPropertyValue(o);switch(o){case"margin-top":{const s=Number.parseInt(i);e.spaceAbove={v:/pt/.test(i)?w.ptToPixel(s):s};break}case"margin-bottom":{const s=Number.parseInt(i);e.spaceBelow={v:/pt/.test(i)?w.ptToPixel(s):s};break}case"line-height":{const s=Number.parseFloat(i);e.lineSpacing=s;break}}}return Object.getOwnPropertyNames(e).length?e:null}function Gr(n,r){const e=[];for(let t=0,o=n.length;t<o;t++)n[t]===a.DataStreamTreeTokenType.PARAGRAPH&&e.push({startIndex:t});return e}function aa(n,r,e){var s,l,d;const t=r.length,i=((s=e==null?void 0:e.length)!=null?s:0)===1&&e[0].st===0&&e[0].ed===t;return n.p?i&&((d=(l=n.p.body)==null?void 0:l.textRuns)!=null&&d.length)?(n.p.body.textRuns=[],{...n,s:e[0].ts}):n:i?{...n,s:e[0].ts}:n}const la=["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 ca(n,r){const e=n.tagName.toLowerCase();return typeof r=="string"?e===r:Array.isArray(r)?r.some(t=>t===e):r(n)}const Er=class Er{constructor(r){E(this,"_styleMap",new Map);E(this,"_styleCache",new Map);E(this,"_styleRules",[]);E(this,"_afterProcessRules",[]);E(this,"_dom",null);E(this,"_getCurrentSkeleton");this._getCurrentSkeleton=r.getCurrentSkeleton}static use(r){if(this._pluginList.includes(r))throw new Error(`Univer paste plugin ${r.name} already added`);this._pluginList.push(r)}convert(r){const e=Er._pluginList.find(p=>p.checkPasteType(r));e&&(this._styleRules=[...e.stylesRules],this._afterProcessRules=[...e.afterProcessRules]);const t=new a.ObjectMatrix;this._dom=oh(r);const o=this._dom.querySelector("style");if(o){const p=document.createElement("div"),v=p.attachShadow({mode:"open"});document.body.appendChild(p),v.appendChild(o);for(const C of o.sheet.cssRules){const b=C,R=b.selectorText,T=b.style;this._styleMap.set(R,T)}o.remove(),p.remove()}const i={dataStream:"",textRuns:[]},s=[],l=[],d=r.match(/<table\b[^>]*>([\s\S]*?)<\/table>/gi),c=[];this.process(null,this._dom.childNodes,i,c);const{paragraphs:u,dataStream:h,textRuns:g,payloads:S,customRanges:f}=i;if(u){const p=u.map(v=>v.startIndex+1);p.unshift(0);for(let v=0;v<p.length;v++){let C;if(v===p.length-1){if(C=`${h.substring(p[v])}\r
1
+ "use strict";var vd=Object.defineProperty;var Cd=(n,r,e)=>r in n?vd(n,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[r]=e;var E=(n,r,e)=>Cd(n,typeof r!="symbol"?r+"":r,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const $=require("@univerjs/docs-ui"),a=require("@univerjs/core"),w=require("@univerjs/engine-render"),I=require("@univerjs/ui"),V=require("react"),O=require("rxjs"),m=require("@univerjs/sheets"),Re=require("@univerjs/docs"),K=require("@univerjs/engine-formula"),Id=require("@univerjs/engine-numfmt"),Z=require("@univerjs/design"),_=require("react/jsx-runtime"),_d=require("@univerjs/telemetry"),qa=require("rxjs/operators");function Pr(n,r){if(n==null)return;const e=r.getRenderById(n);if(e==null)return;const{mainComponent:t,scene:o,engine:i,components:s}=e,l=t,c=s.get($.DOCS_VIEW_KEY.BACKGROUND);return{document:l,docBackground:c,scene:o,engine:i}}const Hi=[10,400],hs="RANGE_SELECTOR_COMPONENT_KEY",Or="EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY";var me=(n=>(n.MAIN="__SpreadsheetRender__",n.ROW="__SpreadsheetRowHeader__",n.COLUMN="__SpreadsheetColumnHeader__",n.LEFT_TOP="__SpreadsheetLeftTopPlaceholder__",n))(me||{});const Xs=0,tr=1,_t=10,bd=11,Ys=12,xr={id:"sheet.command.set-row-header-width",type:a.CommandType.COMMAND,handler:async(n,r)=>{if(!r)return!1;const e=n.get(w.IRenderManagerService);if(!e)return!1;const{unitId:t,subUnitId:o,size:i}=r,s=e.getRenderById(t);if(s){e.getRenderById(t).with(exports.SheetSkeletonManagerService).setRowHeaderSize(s,o,i);const{components:c}=s,d=c.get(me.ROW);d&&d.setCustomHeader({headerStyle:{size:i}})}return!0}},Ar={id:"sheet.command.set-col-header-height",type:a.CommandType.COMMAND,handler:async(n,r)=>{if(!r)return!1;const e=n.get(w.IRenderManagerService);if(!e)return!1;const{unitId:t,subUnitId:o,size:i}=r,s=e.getRenderById(t);if(s){e.getRenderById(t).with(exports.SheetSkeletonManagerService).setColumnHeaderSize(s,o,i);const{components:c}=s,d=c.get(me.COLUMN);d&&d.setCustomHeader({headerStyle:{size:i}})}return!0}},Vi=a.createInterceptorKey("rangeMovePermissionCheck"),Wi=a.createInterceptorKey("rangeFillPermissionCheck");var ms=(n=>(n[n.FORMULA_EDITOR_SHOW=100]="FORMULA_EDITOR_SHOW",n[n.MARK_SELECTION=1e4]="MARK_SELECTION",n))(ms||{});function bt(n){const r=n.getCurrentTheme(),e=new a.ColorKit(r.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:r.primaryColor,fill:e,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:r.colorWhite,autofillSize:6,autofillStrokeWidth:1,autofillStroke:r.colorWhite,rowHeaderFill:e,rowHeaderStroke:r.primaryColor,rowHeaderStrokeWidth:1,columnHeaderFill:e,columnHeaderStroke:r.primaryColor,columnHeaderStrokeWidth:1,expandCornerSize:40}}class Rd{constructor(){E(this,"_startColumn",-1);E(this,"_startRow",-1);E(this,"_endColumn",-1);E(this,"_endRow",-1);E(this,"_startX",0);E(this,"_startY",0);E(this,"_endX",0);E(this,"_endY",0);E(this,"_primary");E(this,"_rangeType",a.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(r){const{startColumn:e,startRow:t,endColumn:o,endRow:i}=this,{startColumn:s,startRow:l,endColumn:c,endRow:d}=r;return e===s&&t===l&&o===c&&i===d}isInclude(r){const{startColumn:e,startRow:t,endColumn:o,endRow:i}=this,{startColumn:s,startRow:l,endColumn:c,endRow:d}=r;return!(c<e||s>o||l>i||d<t)}highlightToSelection(){if(this._primary)return a.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(r){this._rangeType=r}getValue(){return{rangeWithCoord:this.getRange(),primaryWithCoord:this._primary}}setValue(r,e){const{startColumn:t,startRow:o,endColumn:i,endRow:s,startX:l,startY:c,endX:d,endY:u,rangeType:h}=r;this._startColumn=t,this._startRow=o,this._endColumn=i,this._endRow=s,this._startX=l,this._startY=c,this._endX=d,this._endY=u,h!==void 0&&(this._rangeType=h),e!==void 0&&this.setCurrentCell(e)}setCurrentCell(r){this._primary=r}clearCurrentCell(){this._primary=null}}function bn(n,r){const{startRow:e,startColumn:t,endRow:o,endColumn:i,rangeType:s}=r,l=o<e?o:e,c=o<e?e:o,d=i<t?i:t,u=i<t?t:i,h=n.getNoMergeCellWithCoordByIndex(l,d),g=n.getNoMergeCellWithCoordByIndex(c,u);return{startRow:e,startColumn:t,endRow:o,endColumn:i,rangeType:s,startY:(h==null?void 0:h.startY)||0,endY:(g==null?void 0:g.endY)||0,startX:(h==null?void 0:h.startX)||0,endX:(g==null?void 0:g.endX)||0}}function Me(n,r){const{range:e,primary:t,style:o}=n,i=bn(r,e),s=t&&Jn(r,t);return{rangeWithCoord:i,primaryWithCoord:s,style:o}}function Jn(n,r){const{actualRow:e,actualColumn:t,isMerged:o,isMergedMainCell:i,startRow:s,startColumn:l,endRow:c,endColumn:d}=r,u=n.getNoMergeCellWithCoordByIndex(e,t),h=n.getNoMergeCellWithCoordByIndex(s,l),g=n.getNoMergeCellWithCoordByIndex(c,d);return{actualRow:e,actualColumn:t,isMerged:o,isMergedMainCell:i,startX:u.startX,startY:u.startY,endX:u.endX,endY:u.endY,mergeInfo:{startRow:s,startColumn:l,endRow:c,endColumn:d,startY:(h==null?void 0:h.startY)||0,endY:(g==null?void 0:g.endY)||0,startX:(h==null?void 0:h.startX)||0,endX:(g==null?void 0:g.endX)||0}}}const Gs="__SpreadsheetHelperSelectionTempRect",Ed=35;class Qa{constructor(r,e){E(this,"_startOffsetX",0);E(this,"_startOffsetY",0);E(this,"_relativeSelectionPositionRow",0);E(this,"_relativeSelectionPositionColumn",0);E(this,"_relativeSelectionRowLength",0);E(this,"_relativeSelectionColumnLength",0);E(this,"_scenePointerMoveSub");E(this,"_scenePointerUpSub");E(this,"_helperSelection");E(this,"_scrollTimer");E(this,"_activeViewport");E(this,"_targetSelection",{startY:0,endY:0,startX:0,endX:0,startRow:-1,endRow:-1,startColumn:-1,endColumn:-1});E(this,"_isInMergeState",!1);E(this,"_fillControlColors",[]);E(this,"_skeleton");E(this,"_scene");E(this,"_themeService");E(this,"_injector");E(this,"_selectionHooks");this._control=r,this._skeleton=e.skeleton,this._scene=e.scene,this._themeService=e.themeService,this._injector=e.injector,this._selectionHooks=e.selectionHooks,this._initialControl(),this._initialWidget(),this._initialAutoFill(),this._control.dispose$.subscribe(()=>{this.dispose()})}get isHelperSelection(){return this._control.isHelperSelection}dispose(){var r,e;(r=this._scrollTimer)==null||r.dispose(),this._fillControlColors=[],this._clearObserverEvent(),(e=this._helperSelection)==null||e.dispose()}_getFreeze(){var t,o;return(o=(t=this._injector.get(w.IRenderManagerService).withCurrentTypeOfUnit(a.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:t.getCurrentParam())==null?void 0:o.skeleton.getWorksheetConfig().freeze}_isSelectionInViewport(r,e){const t=this._getFreeze()||{startRow:-1,startColumn:-1};switch(e.viewportKey){case w.SHEET_VIEWPORT_KEY.VIEW_MAIN:return r.endRow>=t.startRow&&r.endColumn>=t.startColumn;case w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP:case w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT:return r.endColumn>=t.startColumn&&r.startRow<t.startRow;case w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT:case w.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM:return r.endRow>=t.startRow&&r.startColumn<t.startColumn;case w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP:case w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT:case w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP:case w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP:return r.startRow<t.startRow&&r.startColumn<t.startColumn}}_clearObserverEvent(){var r,e;(r=this._scenePointerMoveSub)==null||r.unsubscribe(),(e=this._scenePointerUpSub)==null||e.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}_initialControl(){const{leftControl:r,rightControl:e,topControl:t,bottomControl:o}=this._control;[r,e,t,o].forEach(i=>{i.onPointerEnter$.subscribeEvent(()=>{var l;((l=this._injector.get(ve,a.Quantity.OPTIONAL))==null?void 0:l.interceptor.fetchThroughInterceptors(Vi)(!1,null))!==!1&&i.setCursor(w.CURSOR_TYPE.MOVE)}),i.onPointerLeave$.subscribeEvent(()=>{i.resetCursor()}),i.onPointerDown$.subscribeEvent(this._controlPointerDownHandler.bind(this))})}_controlMoving(r,e){var A;const t=this._scene,o=t.getScrollXYInfoByViewport(w.Vector2.FromArray([r,e])),{scaleX:i,scaleY:s}=t.getAncestorScale(),l=this._skeleton.getCellIndexByOffset(r,e,i,s,o),{row:c,column:d}=l,u=this._skeleton.getRowCount()-1,h=this._skeleton.getColumnCount()-1;let g=Math.max(0,c+this._relativeSelectionPositionRow),S=g+this._relativeSelectionRowLength;S>u&&(S=u,S-g<this._relativeSelectionRowLength&&(g=S-this._relativeSelectionRowLength));let f=Math.max(0,d+this._relativeSelectionPositionColumn),p=f+this._relativeSelectionColumnLength;p>h&&(p=h,p-f<this._relativeSelectionColumnLength&&(f=p-this._relativeSelectionColumnLength));const v=this._skeleton.worksheet.getCellInfoInMergeData(g,f),b=Me({range:{startRow:g,endRow:S,startColumn:f,endColumn:p},primary:v,style:null},this._skeleton),R=this._skeleton.getNoMergeCellWithCoordByIndex(g,f),T=this._skeleton.getNoMergeCellWithCoordByIndex(S,p),M=(R==null?void 0:R.startY)||0,y=(T==null?void 0:T.endY)||0,P=(R==null?void 0:R.startX)||0,x=(T==null?void 0:T.endX)||0;(A=this._helperSelection)==null||A.transformByState({left:P,top:M,width:x-P,height:y-M}),this._targetSelection={...b.rangeWithCoord},this._control.selectionMoving$.next(b.rangeWithCoord)}_controlPointerDownHandler(r){const{offsetX:e,offsetY:t}=r,o=this._scene,i=o.getCoordRelativeToViewport(w.Vector2.FromArray([e,t])),{x:s,y:l}=i,c=o.getScrollXYInfoByViewport(i),{scaleX:d,scaleY:u}=o.getAncestorScale(),h=this._skeleton.getCellIndexByOffset(s,l,d,u,c);this._startOffsetX=s,this._startOffsetY=l;const{row:g,column:S}=h,{startRow:f,startColumn:p,endRow:v,endColumn:C}=this._control.model;let b=0,R=0;g<f?b-=1:g>v&&(b+=1),S<p?R-=1:S>C&&(R+=1),this._relativeSelectionPositionRow=f-g+b,this._relativeSelectionPositionColumn=p-S+R,this._relativeSelectionRowLength=v-f,this._relativeSelectionColumnLength=C-p;const T=this._control.currentStyle,M=this._getScale();this.isHelperSelection&&(this._helperSelection=new w.Rect(Gs,{stroke:T.stroke,strokeWidth:T.strokeWidth/M}),o.addObject(this._helperSelection));const y=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),P=w.ScrollTimer.create(o);this._scrollTimer=P,P.startScroll(s,l,y),o.disableObjectsEvent(),this._scenePointerMoveSub=o.onPointerMove$.subscribeEvent(x=>{var H;const{offsetX:A,offsetY:k}=x;if(((H=this._injector.get(ve,a.Quantity.OPTIONAL))==null?void 0:H.interceptor.fetchThroughInterceptors(Vi)(!1,null))===!1)return;const{x:D,y:W}=o.getCoordRelativeToViewport(w.Vector2.FromArray([A,k]));this._controlMoving(D,W),o.setCursor(w.CURSOR_TYPE.MOVE),P.scrolling(D,W,()=>{this._controlMoving(D,W)})}),this._scenePointerUpSub=o.onPointerUp$.subscribeEvent(()=>{var A,k,N,D;(A=this._helperSelection)==null||A.dispose();const x=this._scene;x.resetCursor(),this._clearObserverEvent(),x.enableObjectsEvent(),(k=this._scrollTimer)==null||k.dispose(),this._control.selectionMoveEnd$.next(this._targetSelection),(D=(N=this._selectionHooks).selectionMoveEnd)==null||D.call(N)})}_initialWidget(){const{topLeftWidget:r,topCenterWidget:e,topRightWidget:t,middleLeftWidget:o,middleRightWidget:i,bottomLeftWidget:s,bottomCenterWidget:l,bottomRightWidget:c}=this._control,d=[w.CURSOR_TYPE.NORTH_WEST_RESIZE,w.CURSOR_TYPE.NORTH_RESIZE,w.CURSOR_TYPE.NORTH_EAST_RESIZE,w.CURSOR_TYPE.WEST_RESIZE,w.CURSOR_TYPE.EAST_RESIZE,w.CURSOR_TYPE.SOUTH_WEST_RESIZE,w.CURSOR_TYPE.SOUTH_RESIZE,w.CURSOR_TYPE.SOUTH_EAST_RESIZE];[r,e,t,o,i,s,l,c].forEach((u,h)=>{u.onPointerEnter$.subscribeEvent(()=>{u.setCursor(d[h])}),u.onPointerLeave$.subscribeEvent(()=>{u.resetCursor()}),u.onPointerDown$.subscribeEvent(g=>{this._widgetPointerDownEvent(g,d[h])})})}_widgetPointerDownEvent(r,e){const t=this._scene,{offsetX:o,offsetY:i}=r,s=t.getCoordRelativeToViewport(w.Vector2.FromArray([o,i])),{x:l,y:c}=s;this._startOffsetX=o,this._startOffsetY=i;const{startRow:d,startColumn:u,endRow:h,endColumn:g}=this._control.model,S=Math.min(d,h),f=Math.min(u,g),p=Math.max(d,h),v=Math.max(u,g);this._relativeSelectionPositionRow=S,this._relativeSelectionPositionColumn=f,this._relativeSelectionRowLength=p-S,this._relativeSelectionColumnLength=v-f,e===w.CURSOR_TYPE.NORTH_WEST_RESIZE?(this._relativeSelectionPositionRow=p,this._relativeSelectionPositionColumn=v):e===w.CURSOR_TYPE.NORTH_RESIZE?this._relativeSelectionPositionRow=p:e===w.CURSOR_TYPE.NORTH_EAST_RESIZE?this._relativeSelectionPositionRow=p:e===w.CURSOR_TYPE.WEST_RESIZE?this._relativeSelectionPositionColumn=v:e===w.CURSOR_TYPE.SOUTH_WEST_RESIZE?this._relativeSelectionPositionColumn=v:e===w.CURSOR_TYPE.SOUTH_RESIZE&&(this._relativeSelectionPositionRow=S);const C=w.ScrollTimer.create(t),b=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);C.startScroll(l,c,b),this._scrollTimer=C,t.disableObjectsEvent(),this._scenePointerMoveSub=t.onPointerMove$.subscribeEvent(R=>{const{offsetX:T,offsetY:M}=R,{x:y,y:P}=t.getCoordRelativeToViewport(w.Vector2.FromArray([T,M]));this._widgetMoving(y,P,e),t.setCursor(e),C.scrolling(y,P,()=>{this._widgetMoving(y,P,e)})}),this._scenePointerUpSub=t.onPointerUp$.subscribeEvent(()=>{var T,M,y;const R=this._scene;R.resetCursor(),this._clearObserverEvent(),R.enableObjectsEvent(),(T=this._scrollTimer)==null||T.dispose(),this._control.selectionScaled$.next(this._targetSelection),(y=(M=this._selectionHooks).selectionMoveEnd)==null||y.call(M)})}_widgetMoving(r,e,t){const o=this._scene,i=o.getScrollXYInfoByViewport(w.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),{scaleX:s,scaleY:l}=o.getAncestorScale(),c=this._skeleton.getCellIndexByOffset(r,e,s,l,i),{row:d,column:u}=c;let h=this._relativeSelectionPositionRow,g=this._relativeSelectionPositionColumn,S=d,f=u;t===w.CURSOR_TYPE.NORTH_WEST_RESIZE?(h=d,g=u,S=this._relativeSelectionPositionRow,f=this._relativeSelectionPositionColumn):t===w.CURSOR_TYPE.NORTH_RESIZE?(h=d,g=this._relativeSelectionPositionColumn,S=this._relativeSelectionPositionRow,f=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength):t===w.CURSOR_TYPE.NORTH_EAST_RESIZE?(h=d,g=this._relativeSelectionPositionColumn,S=this._relativeSelectionPositionRow,f=u):t===w.CURSOR_TYPE.WEST_RESIZE?(h=this._relativeSelectionPositionRow,g=u,S=this._relativeSelectionPositionRow+this._relativeSelectionRowLength,f=this._relativeSelectionPositionColumn):t===w.CURSOR_TYPE.EAST_RESIZE?S=this._relativeSelectionPositionRow+this._relativeSelectionRowLength:t===w.CURSOR_TYPE.SOUTH_WEST_RESIZE?(h=this._relativeSelectionPositionRow,g=u,S=d,f=this._relativeSelectionPositionColumn):t===w.CURSOR_TYPE.SOUTH_RESIZE&&(h=this._relativeSelectionPositionRow,g=this._relativeSelectionPositionColumn,S=d,f=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength);const p=this._swapPositions(h,g,S,f),v=this._skeleton.getCellWithMergeInfoByIndex(h,g),b=Me({range:p,primary:v,style:null},this._skeleton);this._targetSelection={...b.rangeWithCoord},this._control.updateRangeBySelectionWithCoord(b),this._control.selectionScaling$.next(this._targetSelection)}_initialAutoFill(){const{fillControl:r}=this._control;r.onPointerEnter$.subscribeEvent(e=>{this._injector.get(ve).interceptor.fetchThroughInterceptors(Wi)(!1,{x:e.offsetX,y:e.offsetY,skeleton:this._skeleton,scene:this._scene})&&r.setCursor(w.CURSOR_TYPE.CROSSHAIR)}),r.onPointerLeave$.subscribeEvent(()=>{r.resetCursor()}),r.onPointerDown$.subscribeEvent(this._autoFillForPointerdown.bind(this))}_autoFillMoving(r,e){var k,N,D;const t=this._scene,o=t.getViewportScrollXY(this._activeViewport),{scaleX:i,scaleY:s}=t.getAncestorScale(),l=this._skeleton.getCellIndexByOffset(r,e,i,s,o),{row:c,column:d}=l,u=t.getCoordRelativeToViewport(w.Vector2.FromArray([r,e])),h=this._skeleton.getRowCount()-1,g=this._skeleton.getColumnCount()-1;let S=this._relativeSelectionPositionRow,f=this._relativeSelectionPositionColumn,p=this._relativeSelectionPositionRow+this._relativeSelectionRowLength,v=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength,C=!1,b=!0;if((d<f||d>v)&&c>=S&&c<=p){const W=this._fillRuler(d,f,v,this._relativeSelectionColumnLength,g);f=W.startRowOrColumn,v=W.endRowOrColumn,C=W.isLighten,b=!1}else if((c<S||c>p)&&d>=f&&d<=v){const W=this._fillRuler(c,S,p,this._relativeSelectionRowLength,h);S=W.startRowOrColumn,p=W.endRowOrColumn,C=W.isLighten}else if(Math.abs(this._startOffsetX-u.x-o.x)/2>Math.abs(this._startOffsetY-u.y-o.y)){const W=this._fillRuler(d,f,v,this._relativeSelectionColumnLength,g);f=W.startRowOrColumn,v=W.endRowOrColumn,C=W.isLighten,b=!1}else{const W=this._fillRuler(c,S,p,this._relativeSelectionRowLength,h);S=W.startRowOrColumn,p=W.endRowOrColumn,C=W.isLighten}const R=this._skeleton.getNoMergeCellWithCoordByIndex(S,f),T=this._skeleton.getNoMergeCellWithCoordByIndex(p,v),M=(R==null?void 0:R.startY)||0,y=(T==null?void 0:T.endY)||0,P=(R==null?void 0:R.startX)||0,x=(T==null?void 0:T.endX)||0;C?this._controlHandler((W,H)=>{const U=new a.ColorKit(this._fillControlColors[H]).lighten(Ed).toRgbString();W.setProps({fill:U})}):this._controlHandler((W,H)=>{W.setProps({fill:this._fillControlColors[H]})});const A=m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/this._getScale();S===p&&b===!0||f===v&&b===!1?(k=this._helperSelection)==null||k.hide():((N=this._helperSelection)==null||N.transformByState({left:P-A/2,top:M-A/2,width:x-P,height:y-M}),(D=this._helperSelection)==null||D.show()),this._targetSelection={startY:M,endY:y,startX:P,endX:x,startRow:S,endRow:p,startColumn:f,endColumn:v},this._control.selectionFilling$.next(this._targetSelection)}_autoFillForPointerdown(r){const{offsetX:e,offsetY:t}=r,o=this._scene,i=o.getCoordRelativeToViewport(w.Vector2.FromArray([e,t])),{x:s,y:l}=i;this._startOffsetX=s,this._startOffsetY=l;const{startRow:c,startColumn:d,endRow:u,endColumn:h}=this._control.model;this._isInMergeState=this._hasMergeInRange(c,d,u,h),this._relativeSelectionPositionRow=c,this._relativeSelectionPositionColumn=d,this._relativeSelectionRowLength=u-c,this._relativeSelectionColumnLength=h-d;const g=this._control.currentStyle;let S=g==null?void 0:g.stroke,f=g==null?void 0:g.strokeWidth;const p=bt(this._themeService);S==null&&(S=p.stroke),f==null&&(f=p.strokeWidth);const v=this._getScale();f/=v;const C=m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/v,b=new a.ColorKit(S).darken(2).toRgbString();this.isHelperSelection&&(this._helperSelection=new w.Rect(Gs,{stroke:b,strokeWidth:f+C/2}),o.addObject(this._helperSelection)),this._activeViewport=o.getActiveViewportByCoord(w.Vector2.FromArray([e,t]));const R=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),T=w.ScrollTimer.create(o,this._activeViewport.viewportKey===w.SHEET_VIEWPORT_KEY.VIEW_MAIN?w.ScrollTimerType.ALL:w.ScrollTimerType.NONE);T.startScroll(s,l,R),this._scrollTimer=T,o.disableObjectsEvent(),this._controlHandler(M=>{this._fillControlColors.push(M.fill)}),this._scenePointerMoveSub=o.onPointerMove$.subscribeEvent(M=>{var W;const{offsetX:y,offsetY:P}=M,x=o.getActiveViewportByCoord(w.Vector2.FromArray([y,P]));if(!this._injector.get(ve).interceptor.fetchThroughInterceptors(Wi)(!1,{x:r.offsetX,y:r.offsetY,skeleton:this._skeleton,scene:this._scene}))return;const{x:k,y:N}=o.getCoordRelativeToViewport(w.Vector2.FromArray([y,P]));this._autoFillMoving(k,N),o.setCursor(w.CURSOR_TYPE.CROSSHAIR);const D=this._targetSelection;if(R&&x&&((W=this._activeViewport)==null?void 0:W.viewportKey)!==(x==null?void 0:x.viewportKey)){let H;D.startRow!==c?(T.scrollTimerType=w.ScrollTimerType.Y,H={...D,endRow:D.startRow}):D.endRow!==u?(T.scrollTimerType=w.ScrollTimerType.Y,H={...D,startRow:D.endRow}):D.startColumn!==d?(T.scrollTimerType=w.ScrollTimerType.X,H={...D,endColumn:D.startColumn}):(T.scrollTimerType=w.ScrollTimerType.X,H={...D,startColumn:D.endColumn}),this._isSelectionInViewport(H,x)&&(R.scrollToBarPos({x:T.scrollTimerType===w.ScrollTimerType.X?0:void 0,y:T.scrollTimerType===w.ScrollTimerType.Y?0:void 0}),this._activeViewport=x)}T.scrolling(k,N,()=>{this._autoFillMoving(k,N)})}),this._scenePointerUpSub=o.onPointerUp$.subscribeEvent(()=>{var y,P;(y=this._helperSelection)==null||y.dispose();const M=this._scene;M.resetCursor(),this._clearObserverEvent(),M.enableObjectsEvent(),(P=this._scrollTimer)==null||P.dispose(),this._control.refreshSelectionFilled(this._targetSelection),this._isInMergeState=!1,this._controlHandler((x,A)=>{x.setProps({fill:this._fillControlColors[A]})}),this._fillControlColors=[]})}_hasMergeInRange(r,e,t,o){return this._skeleton.worksheet.getMergedCellRange(r,e,t,o).length>0}_swapPositions(r,e,t,o){const i=Math.min(r,t),s=Math.min(e,o),l=Math.max(r,t),c=Math.max(e,o);return{startRow:i,startColumn:s,endRow:l,endColumn:c}}_controlHandler(r){const{leftControl:e,rightControl:t,topControl:o,bottomControl:i,backgroundControlTop:s,backgroundControlMiddleLeft:l,backgroundControlMiddleRight:c,backgroundControlBottom:d,fillControl:u}=this._control,h=[e,t,o,i,s,l,c,d,u];for(let g=0,S=h.length;g<S;g++){const f=h[g];r(f,g)}}_fillRuler(r,e,t,o,i){let s=!1;if(r<e)if(this._isInMergeState&&r<e){const l=e-r,c=o+1,d=Math.ceil(l/c);let u=e-d*c;u<0&&(u=e-(d-1)*c),e=u}else e=r;else if(r>=e&&r<=t)s=!0,this._isInMergeState||(t=r);else if(this._isInMergeState&&r>t){const l=r-t,c=o+1,d=Math.ceil(l/c);let u=t+d*c;u>i&&(u=t+(d-1)*c),t=u}else t=r;return{rowOrColumn:r,startRowOrColumn:e,endRowOrColumn:t,isLighten:s}}_getScale(){const{scaleX:r,scaleY:e}=this._scene.getAncestorScale();return Math.max(r,e)}}var Ui=(n=>(n.Selection="__SpreadsheetSelectionShape__",n.top="__SpreadsheetSelectionTopControl__",n.bottom="__SpreadsheetSelectionBottomControl__",n.left="__SpreadsheetSelectionShapeLeftControl__",n.right="__SpreadsheetSelectionShapeRightControl__",n.backgroundTop="__SpreadsheetSelectionBackgroundControlTop__",n.backgroundMiddleLeft="__SpreadsheetSelectionBackgroundControlMiddleLeft__",n.backgroundMiddleRight="__SpreadsheetSelectionBackgroundControlMiddleRight__",n.backgroundBottom="__SpreadsheetSelectionBackgroundControlBottom__",n.fill="__SpreadsheetSelectionFillControl__",n.fillTopLeft="__SpreadsheetSelectionFillControlTopLeft__",n.fillBottomRight="__SpreadsheetSelectionFillControlBottomRight__",n.fillTopLeftInner="__SpreadsheetSelectionFillControlTopLeftInner__",n.fillBottomRightInner="__SpreadsheetSelectionFillControlBottomRightInner__",n.lineMain="__SpreadsheetDragLineMainControl__",n.lineContent="__SpreadsheetDragLineContentControl__",n.line="__SpreadsheetDragLineControl__",n.dash="__SpreadsheetDragDashControl__",n.rowHeaderBackground="__SpreadSheetSelectionRowHeaderBackground__",n.rowHeaderBorder="__SpreadSheetSelectionRowHeaderBorder__",n.rowHeaderGroup="__SpreadSheetSelectionRowHeaderGroup__",n.columnHeaderBackground="__SpreadSheetSelectionColumnHeaderBackground__",n.columnHeaderBorder="__SpreadSheetSelectionColumnHeaderBorder__",n.columnHeaderGroup="__SpreadSheetSelectionColumnHeaderGroup__",n.topLeftWidget="__SpreadSheetSelectionTopLeftWidget__",n.topCenterWidget="__SpreadSheetSelectionTopCenterWidget__",n.topRightWidget="__SpreadSheetSelectionTopRightWidget__",n.middleLeftWidget="__SpreadSheetSelectionMiddleLeftWidget__",n.middleRightWidget="__SpreadSheetSelectionMiddleRightWidget__",n.bottomLeftWidget="__SpreadSheetSelectionBottomLeftWidget__",n.bottomCenterWidget="__SpreadSheetSelectionBottomCenterWidget__",n.bottomRightWidget="__SpreadSheetSelectionBottomRightWidget__",n))(Ui||{});const Zs=.3;class lo extends a.Disposable{constructor(e,t,o,i){var s,l,c,d;super();E(this,"_isHelperSelection",!0);E(this,"_enableAutoFill",!0);E(this,"_showAutoFill",!1);E(this,"_highlightHeader",!0);E(this,"_selectionRenderModel");E(this,"_leftBorder");E(this,"_rightBorder");E(this,"_topBorder");E(this,"_bottomBorder");E(this,"_backgroundControlTop");E(this,"_backgroundControlBottom");E(this,"_backgroundControlMiddleLeft");E(this,"_backgroundControlMiddleRight");E(this,"_autoFillControl");E(this,"_selectionShapeGroup");E(this,"_rowHeaderBackground");E(this,"_rowHeaderBorder");E(this,"_rowHeaderGroup");E(this,"_columnHeaderBackground");E(this,"_columnHeaderBorder");E(this,"_columnHeaderGroup");E(this,"_dashedRect");E(this,"_topLeftWidget");E(this,"_topCenterWidget");E(this,"_topRightWidget");E(this,"_middleLeftWidget");E(this,"_middleRightWidget");E(this,"_bottomLeftWidget");E(this,"_bottomCenterWidget");E(this,"_bottomRightWidget");E(this,"_defaultStyle");E(this,"_currentStyle");E(this,"_rowHeaderWidth",0);E(this,"_columnHeaderHeight",0);E(this,"_widgetRects",[]);E(this,"_controlExtension");E(this,"_dispose$",new O.BehaviorSubject(this));E(this,"dispose$",this._dispose$.asObservable());E(this,"selectionMoving$",new O.Subject);E(this,"selectionMoveEnd$",new O.Subject);E(this,"selectionScaling$",new O.Subject);E(this,"selectionScaled$",new O.Subject);E(this,"selectionFilling$",new O.Subject);E(this,"_selectionFilled$",new O.Subject);E(this,"selectionFilled$",this._selectionFilled$.asObservable());E(this,"_antLineOffset",0);E(this,"_antRequestNewFrame",-1);this._scene=e,this._zIndex=t,this._themeService=o,this._enableAutoFill=(s=i==null?void 0:i.enableAutoFill)!=null?s:!0,this._highlightHeader=(l=i==null?void 0:i.highlightHeader)!=null?l:!0,this._rowHeaderWidth=(c=i==null?void 0:i.rowHeaderWidth)!=null?c:0,this._columnHeaderHeight=(d=i==null?void 0:i.columnHeaderHeight)!=null?d:0,this._initializeSheetBody(),this._initialHeader()}_initializeSheetBody(){this._defaultStyle=bt(this._themeService),this._currentStyle=bt(this._themeService),this._selectionRenderModel=new Rd;const e=this._zIndex;this._leftBorder=new w.Rect("__SpreadsheetSelectionShapeLeftControl__"+e,{zIndex:e}),this._rightBorder=new w.Rect("__SpreadsheetSelectionShapeRightControl__"+e,{zIndex:e}),this._topBorder=new w.Rect("__SpreadsheetSelectionTopControl__"+e,{zIndex:e}),this._bottomBorder=new w.Rect("__SpreadsheetSelectionBottomControl__"+e,{zIndex:e}),this._backgroundControlTop=new w.Rect("__SpreadsheetSelectionBackgroundControlTop__"+e,{zIndex:e-1,evented:!1}),this._backgroundControlBottom=new w.Rect("__SpreadsheetSelectionBackgroundControlBottom__"+e,{zIndex:e-1,evented:!1}),this._backgroundControlMiddleLeft=new w.Rect("__SpreadsheetSelectionBackgroundControlMiddleLeft__"+e,{zIndex:e-1,evented:!1}),this._backgroundControlMiddleRight=new w.Rect("__SpreadsheetSelectionBackgroundControlMiddleRight__"+e,{zIndex:e-1,evented:!1}),this._autoFillControl=new w.Rect("__SpreadsheetSelectionFillControl__"+e,{zIndex:e+1}),this._autoFillControl.hide(),this._dashedRect=new w.DashedRect("__SpreadsheetDragDashControl__"+e,{zIndex:e+2,evented:!1,stroke:"#fff"});const t=[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 w.Group("__SpreadsheetSelectionShape__"+e,...t,...this._widgetRects),this._selectionShapeGroup.hide(),this._selectionShapeGroup.evented=!1,this._selectionShapeGroup.zIndex=e;const o=this.getScene();o.addObject(this._selectionShapeGroup,tr),this.disposeWithMe(a.toDisposable(o.onTransformChange$.subscribeEvent(i=>{i.type===w.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale&&(this._updateLayoutOfSelectionControl(this._currentStyle),this._updateControlCoord())})))}_initialHeader(){const e=this._zIndex;this._rowHeaderBackground=new w.Rect("__SpreadSheetSelectionRowHeaderBackground__"+e,{zIndex:e-1,evented:!1}),this._rowHeaderBorder=new w.Rect("__SpreadSheetSelectionRowHeaderBorder__"+e,{zIndex:e-1,evented:!1}),this._rowHeaderGroup=new w.Group("__SpreadSheetSelectionRowHeaderGroup__"+e,this._rowHeaderBackground,this._rowHeaderBorder),this._rowHeaderGroup.hide(),this._rowHeaderGroup.evented=!1,this._rowHeaderGroup.zIndex=e,this._columnHeaderBackground=new w.Rect("__SpreadSheetSelectionColumnHeaderBackground__"+e,{zIndex:e-1,evented:!1}),this._columnHeaderBorder=new w.Rect("__SpreadSheetSelectionColumnHeaderBorder__"+e,{zIndex:e-1,evented:!1}),this._columnHeaderGroup=new w.Group("__SpreadSheetSelectionColumnHeaderGroup__"+e,this._columnHeaderBackground,this._columnHeaderBorder),this._columnHeaderGroup.hide(),this._columnHeaderGroup.evented=!1,this._columnHeaderGroup.zIndex=e,this.getScene().addObjects([this._rowHeaderGroup,this._columnHeaderGroup],bd)}_initialWidget(){const e=this._zIndex;return this._topLeftWidget=new w.Rect("__SpreadSheetSelectionTopLeftWidget__"+e,{zIndex:e+1}),this._topCenterWidget=new w.Rect("__SpreadSheetSelectionTopCenterWidget__"+e,{zIndex:e+1}),this._topRightWidget=new w.Rect("__SpreadSheetSelectionTopRightWidget__"+e,{zIndex:e+1}),this._middleLeftWidget=new w.Rect("__SpreadSheetSelectionMiddleLeftWidget__"+e,{zIndex:e+1}),this._middleRightWidget=new w.Rect("__SpreadSheetSelectionMiddleRightWidget__"+e,{zIndex:e+1}),this._bottomLeftWidget=new w.Rect("__SpreadSheetSelectionBottomLeftWidget__"+e,{zIndex:e+1}),this._bottomCenterWidget=new w.Rect("__SpreadSheetSelectionBottomCenterWidget__"+e,{zIndex:e+1}),this._bottomRightWidget=new w.Rect("__SpreadSheetSelectionBottomRightWidget__"+e,{zIndex:e+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(e){this._selectionRenderModel=e}get currentStyle(){return this._currentStyle}set currentStyle(e){this._currentStyle=e}get dashedRect(){return this._dashedRect}get isHelperSelection(){return this._isHelperSelection}get rowHeaderWidth(){return this._rowHeaderWidth}set rowHeaderWidth(e){this._rowHeaderWidth=e}get columnHeaderHeight(){return this._columnHeaderHeight}set columnHeaderHeight(e){this._columnHeaderHeight=e}setControlExtension(e){this._controlExtension=new Qa(this,e)}setEvent(e){this.leftControl.evented=e,this.rightControl.evented=e,this.topControl.evented=e,this.bottomControl.evented=e}refreshSelectionFilled(e){this._selectionFilled$.next(e)}_updateLayoutOfSelectionControl(e){e&&(this.currentStyle=Object.assign({},this._defaultStyle,e));const t=this.currentStyle,{stroke:o,widgets:i,autofillStroke:s,strokeDash:l,isAnimationDash:c}=t;let d=t.autofillSize,u=t.strokeWidth,h=t.autofillStrokeWidth;const g=this._getScale(),S=(u+m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH)/2/g;u/=g,d/=g,h/=g<1?1:g;const f=m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/g,p=w.FIX_ONE_PIXEL_BLUR_OFFSET/g,{startX:v,startY:C,endX:b,endY:R}=this._selectionRenderModel;if(this.leftControl.transformByState({height:R-C,left:-S+p,width:u,strokeWidth:f,top:-f/2+p}),this.leftControl.setProps({fill:o,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.rightControl.transformByState({height:R-C,left:b-v-S+p,width:u,strokeWidth:f,top:-f/2+p}),this.rightControl.setProps({fill:o,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.topControl.transformByState({width:b-v+u,top:-S+p,left:-S+p,height:u,strokeWidth:f}),this.topControl.setProps({fill:o,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.bottomControl.transformByState({width:b-v+u,top:R-C-S+p,height:u,left:-S+p,strokeWidth:f}),this.bottomControl.setProps({fill:o,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),l==null)this.dashedRect.hide(),this._stopAntLineAnimation();else{const T=t.strokeWidth*2/g;this.dashedRect.transformByState({height:R-C,width:b-v,strokeWidth:T,left:-T/2+p,top:-T/2+p}),this.dashedRect.setProps({strokeDashArray:[0,l/g]}),this._stopAntLineAnimation(),c!==!1&&this._startAntLineAnimation(),this.dashedRect.show()}if(this._showAutoFill=this._showAutoFill&&this._enableAutoFill,this._showAutoFill&&!this._hasWidgets(i)){const T={fill:o,stroke:s,strokeScaleEnabled:!1},M={width:d-h,height:d-h,left:b-v-d/2+h/2-p,top:R-C-d/2+h/2-p,strokeWidth:h};this._autoFillControl.setProps(T),this._autoFillControl.transformByState(M),this._autoFillControl.show()}else this._autoFillControl.hide();this._updateBackgroundControl(t),this._updateHeaderBackground(t),this._updateWidgets(t)}_updateControlCoord(){const{startX:e,startY:t}=this._selectionRenderModel;this.selectionShapeGroup.show(),this.selectionShapeGroup.translate(e,t),this.selectionShapeGroup.makeDirtyNoDebounce(!0)}updateStyle(e){this._updateLayoutOfSelectionControl(e),this._updateControlCoord()}updateRange(e,t){this._selectionRenderModel.setValue(e,t),this._showAutoFill=t!==null,this._updateLayoutOfSelectionControl(),this._updateControlCoord()}updateRangeBySelectionWithCoord(e,t){t&&(this._rowHeaderWidth=t.getWorksheetConfig().rowHeader.width,this._columnHeaderHeight=t.getWorksheetConfig().columnHeader.height),this._selectionRenderModel.setValue(e.rangeWithCoord,e.primaryWithCoord),this._showAutoFill=e.primaryWithCoord!==null,this._updateLayoutOfSelectionControl(e.style),this._updateControlCoord()}update(e,t=0,o=0,i,s){this._rowHeaderWidth=t,this._columnHeaderHeight=o,this.updateRangeBySelectionWithCoord({rangeWithCoord:e,primaryWithCoord:s,style:i}),i&&this.updateStyle(i)}updateCurrCell(e){this._showAutoFill=e!==null,this._selectionRenderModel.setCurrentCell(e)}clearHighlight(){this._showAutoFill=!1,this._selectionRenderModel.clearCurrentCell(),this._updateLayoutOfSelectionControl(this._currentStyle)}getScene(){return this._scene}dispose(){var e,t,o,i,s,l,c,d,u,h,g,S,f,p,v,C,b,R,T,M,y,P,x,A,k;(e=this._leftBorder)==null||e.dispose(),(t=this._rightBorder)==null||t.dispose(),(o=this._topBorder)==null||o.dispose(),(i=this._bottomBorder)==null||i.dispose(),(s=this._backgroundControlTop)==null||s.dispose(),(l=this._backgroundControlMiddleLeft)==null||l.dispose(),(c=this._backgroundControlMiddleRight)==null||c.dispose(),(d=this._backgroundControlBottom)==null||d.dispose(),this._autoFillControl.dispose(),(u=this._selectionShapeGroup)==null||u.dispose(),(h=this._rowHeaderBackground)==null||h.dispose(),(g=this._rowHeaderBorder)==null||g.dispose(),(S=this._rowHeaderGroup)==null||S.dispose(),(f=this._rowHeaderBackground)==null||f.dispose(),(p=this._columnHeaderBackground)==null||p.dispose(),(v=this._columnHeaderBorder)==null||v.dispose(),(C=this._columnHeaderGroup)==null||C.dispose(),(b=this._topLeftWidget)==null||b.dispose(),(R=this._topCenterWidget)==null||R.dispose(),(T=this._topRightWidget)==null||T.dispose(),(M=this._middleLeftWidget)==null||M.dispose(),(y=this._middleRightWidget)==null||y.dispose(),(P=this._bottomLeftWidget)==null||P.dispose(),(x=this._bottomCenterWidget)==null||x.dispose(),(A=this._bottomRightWidget)==null||A.dispose(),(k=this._controlExtension)==null||k.dispose(),super.dispose(),this._dispose$.next(this),this._dispose$.complete()}getCurrentCellInfo(){const e=this.model.currentCell;if(e){let t;if(e.isMerged){const o=e.mergeInfo;t={startRow:o.startRow,endRow:o.endRow,startColumn:o.startColumn,endColumn:o.endColumn,startX:o.startX,endX:o.endX,startY:o.startY,endY:o.endY}}else{const{actualRow:o,actualColumn:i,startX:s,endX:l,startY:c,endY:d}=e;t={startRow:o,endRow:o,startColumn:i,endColumn:i,startX:s,endX:l,startY:c,endY:d}}return t}}getValue(){return{...this._selectionRenderModel.getValue(),style:this._currentStyle}}getRange(){return this._selectionRenderModel.getValue().rangeWithCoord}enableHelperSelection(){this._isHelperSelection=!0}disableHelperSelection(){this._isHelperSelection=!1}_updateHeaderBackground(e){const{startX:t,startY:o,endX:i,endY:s,rangeType:l}=this._selectionRenderModel,c=this._currentStyle,d=this._getScale(),{stroke:u,rowHeaderFill:h=c.rowHeaderFill,rowHeaderStroke:g=c.rowHeaderStroke,columnHeaderFill:S=c.columnHeaderFill,columnHeaderStroke:f=c.columnHeaderStroke}=e;let{rowHeaderStrokeWidth:p=c.rowHeaderStrokeWidth,columnHeaderStrokeWidth:v=c.columnHeaderStrokeWidth}=e;p/=d,v/=d;const C=this._rowHeaderWidth,b=this._columnHeaderHeight;if(this._highlightHeader&&b>0){let R=S;l===a.RANGE_TYPE.COLUMN&&(R=new a.ColorKit(u).setAlpha(Zs).toString()),this._columnHeaderBackground.setProps({fill:R}),this._columnHeaderBackground.resize(i-t,b),this._columnHeaderBorder.setProps({fill:f}),this._columnHeaderBorder.transformByState({width:i-t,height:v,top:b-v+1/d}),this._columnHeaderGroup.show(),this._columnHeaderGroup.translate(t,0)}else this._columnHeaderGroup.hide();if(this._columnHeaderGroup.makeDirty(!0),this._highlightHeader&&C>0){let R=h;l===a.RANGE_TYPE.ROW&&(R=new a.ColorKit(u).setAlpha(Zs).toString()),this._rowHeaderBackground.setProps({fill:R}),this._rowHeaderBackground.resize(C,s-o),this._rowHeaderBorder.setProps({fill:g}),this._rowHeaderBorder.transformByState({width:p,height:s-o,left:C-p+1/d}),this._rowHeaderGroup.show(),this._rowHeaderGroup.translate(0,o)}else this._rowHeaderGroup.hide();this._rowHeaderGroup.makeDirty(!0)}_updateBackgroundControl(e){const{startX:t,startY:o,endX:i,endY:s}=this._selectionRenderModel,l=this._getScale(),{fill:c=e.fill}=e;let{strokeWidth:d}=e;d/=l;const u=this._selectionRenderModel.highlightToSelection();if(!u){this._backgroundControlTop.resize(i-t,s-o),this._backgroundControlTop.setProps({fill:c}),this._backgroundControlBottom.resize(0,0),this._backgroundControlMiddleLeft.resize(0,0),this._backgroundControlMiddleRight.resize(0,0);return}const{startX:h,startY:g,endX:S,endY:f}=u,p=d/2,v={left:-p,top:-p,width:i-t+p*2,height:g-o+p};v.height<0&&(v.width=0,v.height=0),this._backgroundControlTop.transformByState(v);const C={left:-p,top:g-o,width:h-t+p,height:f-g};C.width<0&&(C.width=0,C.height=0),this._backgroundControlMiddleLeft.transformByState(C);const b={left:S-t-p,top:g-o,width:i-S+p*2,height:f-g};b.width<0&&(b.width=0,b.height=0),this._backgroundControlMiddleRight.transformByState(b);const R={left:-p,top:f-o,width:i-t+p*2,height:s-f+p};R.height<0&&(R.width=0,R.height=0),this._backgroundControlBottom.transformByState(R),this._backgroundControlTop.setProps({fill:c}),this._backgroundControlMiddleLeft.setProps({fill:c}),this._backgroundControlMiddleRight.setProps({fill:c}),this._backgroundControlBottom.setProps({fill:c})}_updateWidgets(e){const{startX:t,startY:o,endX:i,endY:s}=this._selectionRenderModel,{stroke:l=e.stroke,widgets:c=e.widgets,widgetStroke:d=e.widgetStroke}=e,u=this._getScale();let{widgetSize:h,widgetStrokeWidth:g}=e;h/=u,g/=u;const S={left:-h/2+g/2,center:(i-t)/2-h/2+g/2,right:i-t-h/2+g/2,top:-h/2,middle:(s-o)/2-h/2,bottom:s-o-h/2+g/2},f=h-g;this._widgetRects.forEach(p=>{p.setProps({fill:l,stroke:d})}),c.tl===!0?(this._topLeftWidget.transformByState({height:f,width:f,left:S.left,top:S.top,strokeWidth:g}),this._topLeftWidget.show()):this._topLeftWidget.hide(),c.tc===!0?(this._topCenterWidget.transformByState({height:f,width:f,left:S.center,top:S.top,strokeWidth:g}),this._topCenterWidget.show()):this._topCenterWidget.hide(),c.tr===!0?(this._topRightWidget.transformByState({height:f,width:f,left:S.right,top:S.top,strokeWidth:g}),this._topRightWidget.show()):this._topRightWidget.hide(),c.ml===!0?(this._middleLeftWidget.transformByState({height:f,width:f,left:S.left,top:S.middle,strokeWidth:g}),this._middleLeftWidget.show()):this._middleLeftWidget.hide(),c.mr===!0?(this._middleRightWidget.transformByState({height:f,width:f,left:S.right,top:S.middle,strokeWidth:g}),this._middleRightWidget.show()):this._middleRightWidget.hide(),c.bl===!0?(this._bottomLeftWidget.transformByState({height:f,width:f,left:S.left,top:S.bottom,strokeWidth:g}),this._bottomLeftWidget.show()):this._bottomLeftWidget.hide(),c.bc===!0?(this._bottomCenterWidget.transformByState({height:f,width:f,left:S.center,top:S.bottom,strokeWidth:g}),this._bottomCenterWidget.show()):this._bottomCenterWidget.hide(),c.br===!0?(this._bottomRightWidget.transformByState({height:f,width:f,left:S.right,top:S.bottom,strokeWidth:g}),this._bottomRightWidget.show()):this._bottomRightWidget.hide()}_hasWidgets(e){if(e==null)return!1;const t=Object.keys(e);if(t.length===0)return!1;for(const o of t)if(e[o]===!0)return!0;return!1}_getScale(){const{scaleX:e,scaleY:t}=this._scene.getAncestorScale();return Math.max(e,t)}_stopAntLineAnimation(){this._antLineOffset=0,w.cancelRequestFrame(this._antRequestNewFrame)}_startAntLineAnimation(){const e=this._getScale();this._antLineOffset+=.6/e,this._antLineOffset>160/e&&(this._antLineOffset=0),this.dashedRect.setProps({strokeDashOffset:-this._antLineOffset}),this._antRequestNewFrame=w.requestNewFrame(()=>{this._startAntLineAnimation()})}}class Td extends w.Layer{render(r,e=!1){const t=a.Tools.now();return super.render(r,e),this._afterRender(t),this}_afterRender(r){this.scene.getEngine().renderFrameTimeMetric$.next(["selectionLayer",a.Tools.now()-r])}}const ve=a.createIdentifier("univer.sheet.selection-render-service");class gs extends a.Disposable{constructor(e,t,o,i,s){super();E(this,"_downObserver");E(this,"_scenePointerMoveSub");E(this,"_scenePointerUpSub");E(this,"_controlFillConfig$",new O.BehaviorSubject(null));E(this,"controlFillConfig$",this._controlFillConfig$.asObservable());E(this,"_selectionControls",[]);E(this,"_startRangeWhenPointerDown",{startY:0,endY:0,startX:0,endX:0,startRow:-1,endRow:-1,startColumn:-1,endColumn:-1});E(this,"_activeControlIndex",-1);E(this,"_startViewportPosX",0);E(this,"_startViewportPosY",0);E(this,"_scrollTimer");E(this,"_cancelDownSubscription");E(this,"_cancelUpSubscription");E(this,"_skeleton");E(this,"_scene");E(this,"_highlightHeader",!0);E(this,"_rangeType",a.RANGE_TYPE.NORMAL);E(this,"_selectionStyle");E(this,"_remainLastEnabled",!1);E(this,"_skipLastEnabled",!1);E(this,"_singleSelectionEnabled",!1);E(this,"_selectionMoveEnd$",new O.BehaviorSubject([]));E(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());E(this,"_selectionMoving$",new O.Subject);E(this,"selectionMoving$",this._selectionMoving$.asObservable());E(this,"_selectionMoveStart$",new O.Subject);E(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());E(this,"_selectionMoving",!1);E(this,"_selectionTheme");E(this,"_activeViewport");E(this,"interceptor",new a.InterceptorManager({RANGE_MOVE_PERMISSION_CHECK:Vi,RANGE_FILL_PERMISSION_CHECK:Wi}));E(this,"_escapeShortcutDisposable",null);this._injector=e,this._themeService=t,this._shortcutService=o,this._sheetSkeletonManagerService=i,this.contextService=s,this._initSelectionThemeFromThemeService(),this._initMoving()}get selectionMoving(){return this._selectionMoving}get _shouldDetectMergedCells(){return this._rangeType===a.RANGE_TYPE.NORMAL}_initMoving(){this.disposeWithMe(this._selectionMoving$.subscribe(()=>{this._selectionMoving=!0})),this.disposeWithMe(this._selectionMoveEnd$.subscribe(()=>{this._selectionMoving=!1}))}_setSelectionStyle(e){this._selectionStyle=e}getViewPort(){return this._activeViewport}setSingleSelectionEnabled(e=!1){this._singleSelectionEnabled=e}newSelectionControl(e,t,o){const i=this.getSelectionControls().length,{rowHeaderWidth:s,columnHeaderHeight:l}=t,c=new lo(e,i,this._selectionTheme,{highlightHeader:this._highlightHeader,rowHeaderWidth:s,columnHeaderHeight:l});this._selectionControls.push(c);const d=Me(o,t);return c.updateRangeBySelectionWithCoord(d,t),c.setControlExtension({skeleton:t,scene:e,themeService:this._selectionTheme,injector:this._injector,selectionHooks:{selectionMoveEnd:()=>{this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}}}),c}resetSelectionsByModelData(e){const t=this.getSelectionControls(),o=this._skeleton;if(!(!t||!o)){for(let i=0,s=e.length;i<s;i++){const l=e[i],c=Me(l,this._skeleton),d=t[i];d?d.updateRangeBySelectionWithCoord(c,o):this.isSelectionEnabled()&&this.newSelectionControl(this._scene,o,l)}e.length<t.length&&t.splice(e.length).forEach(s=>s.dispose())}}refreshSelectionMoveStart(){this._selectionMoveStart$.next(this.getSelectionDataWithStyle())}refreshSelectionMoveEnd(){this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}_initSelectionThemeFromThemeService(){const e=this._themeService.getCurrentTheme();this._selectionTheme=new a.ThemeService,this._selectionTheme.setTheme(e)}setSelectionTheme(e){this._selectionTheme.setTheme(e)}_changeRuntime(e,t,o){this._skeleton=e,this._scene=t,this._activeViewport=o||(t==null?void 0:t.getViewports()[0]),t.findLayerByZIndex(tr)||t.addLayer(new Td(t,[],tr))}getSkeleton(){return this._skeleton}getSelectionDataWithStyle(){const e=this._selectionControls,[t,o]=this._skeleton.getLocation();return e.map(i=>{const s=i.getValue();return s.rangeWithCoord.sheetId=o,s.rangeWithCoord.unitId=t,s})}getSelectionControls(){return this._selectionControls}_addSelectionControlByModelData(e){var l;const t=this._skeleton,o=(l=e.style)!=null?l:bt(this._selectionTheme),i=this._scene;return e.style=o,this.newSelectionControl(i,t,e)}_clearAllSelectionControls(){const e=this._selectionControls;for(const t of e)t.dispose();this._selectionControls.length=0}_getFreeze(){var t;return(t=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:t.skeleton.getWorksheetConfig().freeze}_getViewportByCell(e,t){if(e===void 0||t===void 0)return null;const o=this._getFreeze();if(!o||o.startRow<=0&&o.startColumn<=0)return this._scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(e>o.startRow&&t>o.startColumn)return this._scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(e<=o.startRow&&t<=o.startColumn)return this._scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(e<=o.startRow&&t>o.startColumn)return this._scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(e>o.startRow&&t<=o.startColumn)return this._scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)}getActiveRange(){const e=this.getSelectionControls(),t=e&&e[e.length-1].model;return t&&{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn}}setActiveSelectionIndex(e){this._activeControlIndex=e}resetActiveSelectionIndex(){this._activeControlIndex=-1}getActiveSelectionControl(){const e=this.getSelectionControls();if(e)return this._activeControlIndex<0?e[e.length-1]:e[this._activeControlIndex]}endSelection(){var e;this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),(e=this._escapeShortcutDisposable)==null||e.dispose(),this._escapeShortcutDisposable=null}_reset(){var e;this._clearAllSelectionControls(),(e=this._downObserver)==null||e.unsubscribe(),this._downObserver=null}_setupPointerMoveListener(e,t,o,i=w.ScrollTimerType.ALL,s,l){var f,p;let c=0,d=0,u=s,h=l;this._scrollTimer=w.ScrollTimer.create(this._scene,i),this._scrollTimer.startScroll((f=e==null?void 0:e.left)!=null?f:0,(p=e==null?void 0:e.top)!=null?p:0,e);const g=this._scene,S=g.getActiveViewportByCoord(w.Vector2.FromArray([s,l]));this._scenePointerMoveSub=g.onPointerMove$.subscribeEvent(v=>{var D,W,H,U,B,F,L,j,z;const{offsetX:C,offsetY:b}=v,{x:R,y:T}=g.getCoordRelativeToViewport(w.Vector2.FromArray([C,b]));this._movingHandler(R,T,t,o);let M=R,y=T;const P=this.getActiveSelectionControl(),x=this._getFreeze(),A=P==null?void 0:P.model,k=(D=g.getActiveViewportByCoord(w.Vector2.FromArray([C,b])))!=null?D:this._getViewportByCell(A==null?void 0:A.endRow,A==null?void 0:A.endColumn);if((()=>{if(!S||!k||!e)return!1;const q=[w.SHEET_VIEWPORT_KEY.VIEW_MAIN,w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP,w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP,w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT];return q.includes(S.viewportKey)&&q.includes(k.viewportKey)})()){if(!S||!k||!e)return!1;const q=u<e.left&&R>e.left||u>e.left&&R<e.left,te=h<e.top&&T>e.top||h>e.top&&T<e.top;q&&(c+=1),te&&(d+=1);const Q=S.viewportKey,re=k.viewportKey;if(Q===w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP)b<e.top&&((W=A==null?void 0:A.endRow)!=null?W:0)<((H=x==null?void 0:x.startRow)!=null?H:0)?y=e.top:te&&d%2===1&&e.scrollToViewportPos({viewportScrollY:0});else if(Q===w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT)C<e.left&&((U=A==null?void 0:A.endColumn)!=null?U:0)<((B=x==null?void 0:x.startColumn)!=null?B:0)?M=e.left:q&&c%2===1&&e.scrollToViewportPos({viewportScrollX:0});else if(Q===re){let se=!1,X=!1;Q===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP?(se=!0,X=!0):Q===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP?X=!0:Q===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT&&(se=!0),((F=A==null?void 0:A.endRow)!=null?F:0)>((L=x==null?void 0:x.startRow)!=null?L:0)&&(X=!1),((j=A==null?void 0:A.endColumn)!=null?j:0)>((z=x==null?void 0:x.startColumn)!=null?z:0)&&(se=!1),se&&(M=e.left),X&&(y=e.top)}else{const se={x:S.scrollX,y:S.scrollY},X={x:k.scrollX,y:k.scrollY},Y=se.x!==X.x&&q&&c%2===1,G=se.y!==X.y&&te&&d%2===1;(Y||G)&&(e.scrollToBarPos({x:Y?se.x:void 0,y:G?se.y:void 0}),Y||(M=e.left),G||(y=e.top)),(Q===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&re===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||re===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&Q===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)&&(M=e.left),(Q===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&re===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||re===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&Q===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP)&&(y=e.top)}u=R,h=T}this._scrollTimer.scrolling(M,y,()=>{this._movingHandler(R,T,t,o)})})}attachSelectionWithCoord(e){return Me(e,this._skeleton)}attachPrimaryWithCoord(e){return Jn(this._skeleton,e)}getSelectionCellByPosition(e,t){return this.getCellWithCoordByOffset(e,t)}getCellWithCoordByOffset(e,t,o){const i=this._scene,s=o!=null?o:this._skeleton,l=i.getViewportScrollXY(i.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX:c,scaleY:d}=i.getAncestorScale();return s.getCellWithCoordByOffset(e,t,c,d,l)}_movingHandler(e,t,o,i){var M,y,P,x,A;const s=this._skeleton,l=this._scene,[c,d]=s.getLocation(),u={startRow:(M=o==null?void 0:o.model.startRow)!=null?M:-1,endRow:(y=o==null?void 0:o.model.endRow)!=null?y:-1,startColumn:(P=o==null?void 0:o.model.startColumn)!=null?P:-1,endColumn:(x=o==null?void 0:o.model.endColumn)!=null?x:-1},h=l.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),g=(A=this._getViewportByCell(u.endRow,u.endColumn))!=null?A:h,S=l.getScrollXYInfoByViewport(w.Vector2.FromArray([this._startViewportPosX,this._startViewportPosY]),g),{scaleX:f,scaleY:p}=l.getAncestorScale();i===a.RANGE_TYPE.ROW?e=Number.POSITIVE_INFINITY:i===a.RANGE_TYPE.COLUMN&&(t=Number.POSITIVE_INFINITY);const v=this._skeleton.getCellByOffset(e,t,f,p,S);if(!v)return;let C={startRow:Math.min(v.startRow,this._startRangeWhenPointerDown.startRow),startColumn:Math.min(v.startColumn,this._startRangeWhenPointerDown.startColumn),endRow:Math.max(v.endRow,this._startRangeWhenPointerDown.endRow),endColumn:Math.max(v.endColumn,this._startRangeWhenPointerDown.endColumn)};this._shouldDetectMergedCells&&(C=s.expandRangeByMerge(C));const R=Me({range:C,primary:void 0,style:null},s);R.rangeWithCoord.unitId=c,R.rangeWithCoord.sheetId=d,R.rangeWithCoord.rangeType=i;const T=u.startRow!==C.startRow||u.startColumn!==C.startColumn||u.endRow!==C.endRow||u.endColumn!==C.endColumn;o!=null&&T&&(o.updateRangeBySelectionWithCoord(R),this._selectionMoving$.next(this.getSelectionDataWithStyle()))}_clearUpdatingListeners(){var t,o,i,s,l;this._scene.enableObjectsEvent(),(t=this._scenePointerMoveSub)==null||t.unsubscribe(),this._scenePointerMoveSub=null,(o=this._scenePointerUpSub)==null||o.unsubscribe(),this._scenePointerUpSub=null,(i=this._cancelDownSubscription)==null||i.unsubscribe(),this._cancelDownSubscription=null,(s=this._cancelUpSubscription)==null||s.unsubscribe(),this._cancelUpSubscription=null,(l=this._scrollTimer)==null||l.dispose()}_addEndingListeners(){var o,i,s;const e=this._scene,t=(o=e.getEngine())==null?void 0:o.activeScene;!t||t===e||((i=this._cancelDownSubscription)==null||i.unsubscribe(),this._cancelDownSubscription=null,(s=this._cancelUpSubscription)==null||s.unsubscribe(),this._cancelUpSubscription=null,this._cancelDownSubscription=t.onPointerDown$.subscribeEvent(()=>this._clearUpdatingListeners()),this._cancelUpSubscription=t.onPointerUp$.subscribeEvent(()=>this._clearUpdatingListeners()))}_getSelectionWithCoordByOffset(e,t,o,i,s){const l=this._skeleton;if(l==null)return null;if(this._shouldDetectMergedCells){const C=l==null?void 0:l.getCellWithCoordByOffset(e,t,o,i,s,{firstMatch:!0});if(!C)return;const b=a.convertCellToRange(C);return{primaryWithCoord:C,rangeWithCoord:b}}const{row:c,column:d}=l.getCellIndexByOffset(e,t,o,i,s),u=l.getNoMergeCellWithCoordByIndex(c,d),{startX:h,startY:g,endX:S,endY:f}=u,p={startY:g,endY:f,startX:h,endX:S,startRow:c,endRow:c,startColumn:d,endColumn:d};return{primaryWithCoord:{mergeInfo:p,actualRow:c,actualColumn:d,isMerged:!1,isMergedMainCell:!1,startY:g,endY:f,startX:h,endX:S},rangeWithCoord:p}}_checkClearPreviousControls(e){this.getSelectionControls().length!==0&&(!e.ctrlKey&&!e.shiftKey&&!this._remainLastEnabled||this._singleSelectionEnabled&&!e.shiftKey)&&this._clearAllSelectionControls()}_makeSelectionByTwoCells(e,t,o,i,s){const{actualRow:l,actualColumn:c,mergeInfo:d}=e;this._startRangeWhenPointerDown={...e.mergeInfo};const u=Math.min(l,t.startRow,d.startRow),h=Math.max(l,t.endRow,d.endRow),g=Math.min(c,t.startColumn,d.startColumn),S=Math.max(c,t.endColumn,d.endColumn),p={range:o.expandRangeByMerge({startRow:u,startColumn:g,endRow:h,endColumn:S}),primary:null,style:null},v=Me(p,o);s.updateRangeBySelectionWithCoord(v)}isSelectionEnabled(){return this.contextService.getContextValue(m.SELECTIONS_ENABLED)}isSelectionDisabled(){return this.contextService.getContextValue(m.SELECTIONS_ENABLED)===!1}inRefSelectionMode(){return this.contextService.getContextValue(m.REF_SELECTIONS_ENABLED)}}function Ss(n){return{range:{startRow:0,startColumn:0,endRow:n.getRowCount()-1,endColumn:n.getColumnCount()-1,rangeType:a.RANGE_TYPE.ALL},primary:kr(n).primary,style:null}}function kr(n){return Ja(n,{startRow:0,startColumn:0,endRow:0,endColumn:0})}function Ja(n,r){const e=n.worksheet.getCellInfoInMergeData(r.startRow,r.startColumn),t=n.worksheet.getCellInfoInMergeData(r.endRow,r.endColumn);return{range:{startRow:e.startRow,startColumn:e.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:a.RANGE_TYPE.NORMAL},primary:{actualRow:e.startRow,actualColumn:e.startColumn,startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,isMerged:e.isMerged,isMergedMainCell:e.isMergedMainCell},style:null}}var wd=Object.getOwnPropertyDescriptor,yd=(n,r,e,t)=>{for(var o=t>1?void 0:t?wd(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ks=(n,r)=>(e,t)=>r(e,t,n);exports.SheetSkeletonManagerService=class extends a.Disposable{constructor(e,t,o){super();E(this,"_sheetId","");E(this,"_sheetSkeletonParamStore",new Map);E(this,"_currentSkeleton$",new O.BehaviorSubject(null));E(this,"currentSkeleton$",this._currentSkeleton$.asObservable());E(this,"_currentSkeletonBefore$",new O.BehaviorSubject(null));E(this,"currentSkeletonBefore$",this._currentSkeletonBefore$.asObservable());this._context=e,this._injector=t,this._sheetSkService=o,this.disposeWithMe(()=>{this._currentSkeletonBefore$.complete(),this._currentSkeleton$.complete(),this._sheetSkeletonParamStore.forEach(i=>this.disposeSkeleton(i.sheetId)),this._sheetSkeletonParamStore.clear()}),this._initRemoveSheet()}_initRemoveSheet(){this.disposeWithMe(this._context.unit.sheetDisposed$.subscribe(e=>{this.disposeSkeleton(e.getSheetId())}))}getCurrentSkeleton(){var e;return(e=this.getCurrentParam())==null?void 0:e.skeleton}getCurrent(){return this.getCurrentParam()}getCurrentParam(){return this._getSkeletonParam(this._sheetId)}getSkeleton(e){return this._getSkeleton(e)}getSkeletonParam(e){return this._getSkeletonParam(e)}getWorksheetSkeleton(e){return this.getSkeletonParam(e)}getUnitSkeleton(e,t){const o=this._getSkeletonParam(t);return o!=null&&(o.unitId=e),o}setCurrent(e){this._setCurrent(e.sheetId)}setSkeletonParam(e,t){this._sheetSkService.setSkeleton(t.unitId,e,t.skeleton),this._sheetSkeletonParamStore.set(e,t)}_setCurrent(e){this._sheetId=e;const t=this._getSkeletonParam(e),o=this._context.unitId;if(t!=null)this.reCalculate(t);else{const l=this._context.unit.getSheetBySheetId(e);if(l==null)return;const c=this._context.scene,d=this._buildSkeleton(l,c);this.setSkeletonParam(e,{unitId:o,sheetId:e,skeleton:d,dirty:!1})}const i=this._getSkeletonParam(e);this._currentSkeletonBefore$.next(i),this._currentSkeleton$.next(i)}reCalculate(e){e||(e=this.getCurrentParam()),e!=null&&(e.dirty&&(e.skeleton.makeDirty(!0),e.dirty=!1),e.skeleton.calculate())}makeDirty(e,t=!0){const o=this._getSkeletonParam(e.sheetId);o!=null&&(o.dirty=t)}getOrCreateSkeleton(e){return this.ensureSkeleton(e.sheetId)}ensureSkeleton(e){const t=this._getSkeletonParam(e);if(t)return t.skeleton;const i=this._context.unit.getSheetBySheetId(e);if(!i)return;const s=this._buildSkeleton(i);return this.setSkeletonParam(e,{unitId:this._context.unitId,sheetId:e,skeleton:s,dirty:!1}),s}disposeSkeleton(e){const t=this.getSkeletonParam(e);t&&(t.skeleton.dispose(),this._sheetSkeletonParamStore.delete(e),this._sheetSkService.deleteSkeleton(t.unitId,e))}attachRangeWithCoord(e){const t=this.getCurrentSkeleton();return t?bn(t,e):null}_getSkeletonParam(e){return this._sheetSkeletonParamStore.get(e)}_getSkeleton(e){const t=this._getSkeletonParam(e);return t?t.skeleton:null}_buildSkeleton(e,t){return this._injector.createInstance(w.SpreadsheetSkeleton,e,this._context.unit.getStyles())}setColumnHeaderSize(e,t,o){var u;if(!e)return;const i=(u=this.getWorksheetSkeleton(t))==null?void 0:u.skeleton;if(!i)return;i.columnHeaderHeight=o,e.scene.getViewports()[0].top=o,e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT).setViewportSize({height:o}),e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT).setViewportSize({height:o}),e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM).setViewportSize({top:o}),e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP).setViewportSize({top:o}),e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP).setViewportSize({height:o});const s=e==null?void 0:e.with(m.SheetsSelectionsService),l=e==null?void 0:e.with(ve),c=s.getCurrentSelections();l.resetSelectionsByModelData(c);const d=this.getUnitSkeleton(e.unitId,t);d&&(d.commandId=Ar.id,this._currentSkeleton$.next(d))}setRowHeaderSize(e,t,o){var f;const i=(f=this.getWorksheetSkeleton(t))==null?void 0:f.skeleton;if(!e||!i)return;i.rowHeaderWidth=o;const s=e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP).width||46,l=o-s,c=e.scene.getViewports()[0].left;e.scene.getViewports()[0].left=c+l,e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM).setViewportSize({width:o}),e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP).setViewportSize({width:o}),e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT).setViewportSize({left:o});const d=e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT).left||0;e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT).setViewportSize({left:d+l}),e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP).setViewportSize({width:o});const u=e==null?void 0:e.with(m.SheetsSelectionsService),h=e==null?void 0:e.with(ve),g=u.getCurrentSelections();h.resetSelectionsByModelData(g);const S=this.getCurrent();S&&(S.commandId=xr.id,this._currentSkeleton$.next(S))}};exports.SheetSkeletonManagerService=yd([Ks(1,a.Inject(a.Injector)),Ks(2,a.Inject(m.SheetSkeletonService))],exports.SheetSkeletonManagerService);function ht(){const n=I.useDependency(a.IUniverInstanceService),r=I.useObservable(()=>n.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),void 0,void 0,[]);return r!=null?r:null}function Md(n){return I.useObservable(()=>{var e;return(e=n==null?void 0:n.activeSheet$)!=null?e:O.of(null)},void 0,void 0,[n])}function Pd(){const n=I.useDependency(a.IUniverInstanceService);return I.useObservable(()=>O.merge([n.getTypeOfUnitAdded$(a.UniverInstanceType.UNIVER_SHEET),n.getTypeOfUnitDisposed$(a.UniverInstanceType.UNIVER_SHEET)]).pipe(O.map(()=>n.getAllUnitsForType(a.UniverInstanceType.UNIVER_SHEET)),O.startWith(n.getAllUnitsForType(a.UniverInstanceType.UNIVER_SHEET))),[],void 0,[n])}const Od="SheetUI";var fs=(n=>(n.FILTER_PANEL_EMBED_POINT="filter-panel-embed-point",n.SHEETS_FOOTER="sheets-footer",n.FORMULA_AUX="formula-aux",n))(fs||{}),xd=Object.getOwnPropertyDescriptor,Ad=(n,r,e,t)=>{for(var o=t>1?void 0:t?xd(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Wo=(n,r)=>(e,t)=>r(e,t,n);const ps=["ff","fs","tr","tb"];exports.AutoHeightController=class extends a.Disposable{constructor(r,e,t,o){super(),this._renderManagerService=r,this._sheetInterceptorService=e,this._selectionManagerService=t,this._univerInstanceService=o,this._initialize()}getUndoRedoParamsOfAutoHeight(r){const{_univerInstanceService:e}=this,t=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),o=t.getActiveSheet(),i=t.getUnitId(),s=o.getSheetId(),l=this._renderManagerService.getRenderById(i).with(exports.SheetSkeletonManagerService);if(!s||!l.getCurrentParam())return{redos:[],undos:[]};const{skeleton:c}=l.getCurrentParam(),d=c.calculateAutoHeightInRange(r),u={subUnitId:s,unitId:i,rowsAutoHeightInfo:d},h=m.SetWorksheetRowAutoHeightMutationFactory(u,o);return{undos:[{id:m.SetWorksheetRowAutoHeightMutation.id,params:h}],redos:[{id:m.SetWorksheetRowAutoHeightMutation.id,params:u}]}}_initialize(){const{_sheetInterceptorService:r,_selectionManagerService:e}=this;this.disposeWithMe(r.interceptCommand({getMutations:t=>{if(t.id===m.SetRangeValuesCommand.id){const o=t.params;return this.getUndoRedoParamsOfAutoHeight(o.range)}return{redos:[],undos:[]}}})),this.disposeWithMe(r.interceptCommand({getMutations:t=>t.id!==m.SetWorksheetRowIsAutoHeightCommand.id?{redos:[],undos:[]}:this.getUndoRedoParamsOfAutoHeight(t.params.ranges)})),this.disposeWithMe(r.interceptCommand({getMutations:t=>{var i,s;if(t.id!==m.SetStyleCommand.id)return{redos:[],undos:[]};if(!ps.includes((i=t.params)==null?void 0:i.style.type))return{redos:[],undos:[]};const o=(s=e.getCurrentSelections())==null?void 0:s.map(l=>l.range);return o!=null&&o.length?this.getUndoRedoParamsOfAutoHeight(o):{redos:[],undos:[]}}})),this.disposeWithMe(r.interceptAfterCommand({getMutations:t=>{if(t.id===m.MoveRangeCommand.id){const o=t.params;return this.getUndoRedoParamsOfAutoHeight([o.fromRange,o.toRange])}if(t.id===m.ReorderRangeCommand.id){const o=t.params;return this.getUndoRedoParamsOfAutoHeight([o.range])}return{redos:[],undos:[]}}}))}};exports.AutoHeightController=Ad([Wo(0,w.IRenderManagerService),Wo(1,a.Inject(m.SheetInterceptorService)),Wo(2,a.Inject(m.SheetsSelectionsService)),Wo(3,a.Inject(a.IUniverInstanceService))],exports.AutoHeightController);function Sn(n,r,e,t){const o=r.get(a.IUniverInstanceService),i=e?o.getUnit(e,a.UniverInstanceType.UNIVER_SHEET):o.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=t?i==null?void 0:i.getSheetBySheetId(t):i==null?void 0:i.getActiveSheet();if(!s)return null;const{startRow:l,endRow:c,startColumn:d,endColumn:u}=n,h=[],g=[];for(let S=l;S<=c;S++)s.getRowFiltered(S)||h.push(S);for(let S=d;S<=u;S++)g.push(S);return{rows:h,cols:g}}function Rt(n){const{rows:r,cols:e}=n;return{startRow:r[0],endRow:r[r.length-1],startColumn:e[0],endColumn:e[e.length-1]}}function Kt(n){let r=[],e=[];const t=[];return n.forEach(o=>{r=r.concat(o.rows),e=e.concat(o.cols)}),r=Array.from(new Set(r)).sort((o,i)=>o-i),e=Array.from(new Set(e)).sort((o,i)=>o-i),n.forEach(o=>{t.push({startRow:r.findIndex(i=>i===o.rows[0]),endRow:r.findIndex(i=>i===o.rows[o.rows.length-1]),startColumn:e.findIndex(i=>i===o.cols[0]),endColumn:e.findIndex(i=>i===o.cols[o.cols.length-1])})}),{ranges:t,mapFunc:(o,i)=>({row:r[o],col:e[i]})}}function kd(n){const r=new a.ObjectMatrix;return n.forEach(e=>{const{rows:t,cols:o}=e;t.forEach(i=>{o.forEach(s=>{r.setValue(i,s,{v:null,p:null,f:null,si:null,custom:null})})})}),r.getData()}const Li={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},nr=["零","一","二","三","四","五","六","七","八","九"],qs=["","万","亿","万亿","亿亿"],Nd=["","十","百","千"],$a={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function ct(n){if(!n)return 0;let r=0,e=0,t=0,o=!1;const i=n.split("");for(let s=0;s<i.length;s++){const l=Li[i[s]];if(typeof l<"u")t=l,s===i.length-1&&(e+=t);else{const c=$a[i[s]],d=c.value;o=c.secUnit,o?(e=(e+t)*d,r+=e,e=0):e+=t*d,t=0}}return r+e}function Dd(n){let r="",e="",t=0,o=!0;for(;n>0;){const i=n%10;i===0?o||(o=!0,e=nr[i]+e):(o=!1,r=nr[i],r+=Nd[t],e=r+e),t++,n=Math.floor(n/10)}return e}function Hd(n){let r=0,e="",t="",o=!1;if(n===0)return nr[0];for(;n>0;){const i=n%1e4;o&&(t=nr[0]+t),e=Dd(i),e+=i!==0?qs[r]:qs[0],t=e+t,o=i<1e3&&i>0,n=Math.floor(n/1e4),r++}return t}function Vd(n){if(!n)return!1;let r=!0;if(n)if(n.length===1)n==="日"||n in Li?r=!0:r=!1;else{const e=n.split("");for(let t=0;t<e.length;t++)if(!(e[t]in Li||e[t]in $a)){r=!1;break}}return r}function Uo(n){if(!n)return{isExtendNumber:!1};const r=/0|([1-9]+[0-9]*)/g,e=r.test(n);if(e){const t=n.match(r);if(t&&t.length>0){const o=t[t.length-1],i=n.lastIndexOf(o),s=n.substr(0,i),l=n.substr(i+o.length);return{isExtendNumber:!0,matchTxt:Number(o),beforeTxt:s,afterTxt:l}}return{isExtendNumber:!1}}return{isExtendNumber:e}}function Wd(n){let r;return n.length===2&&(n==="周一"||n==="周二"||n==="周三"||n==="周四"||n==="周五"||n==="周六"||n==="周日")?r=!0:r=!1,r}function Ud(n){let r;return n.length===3&&(n==="星期一"||n==="星期二"||n==="星期三"||n==="星期四"||n==="星期五"||n==="星期六"||n==="星期日")?r=!0:r=!1,r}function Ld(n,r){let e=0;for(let t=0;t<n.length&&n[t]<r;t++)e++;return e}function co(n){let r=!0;const e=n[1]-n[0];for(let t=1;t<n.length;t++)if(n[t]-n[t-1]!==e){r=!1;break}return r}function Bd(n,r,e){const t=[],o=Math.floor(r/n),i=r%n;let s=0;if(o>0){for(let l=0;l<o;l++)for(let c=0;c<e.length;c++)t[e[c]+l*n]=s,s++;for(let l=0;l<e.length&&e[l]<i;l++)t[e[l]+n*o]=s,s++}else for(let l=0;l<e.length&&e[l]<i;l++)t[e[l]]=s,s++;return t}function Ft(n,r){const e=[];for(let t=1;t<=r;t++){const o=(t-1)%n.length,i=a.Tools.deepClone(n[o]);jt(i),e.push({v:null,s:null,p:null,f:null,si:null,t:null,...i})}return e}function Fd(n,r){var t;const e=[];for(let o=1;o<=r;o++){const i=(o-1)%n.length,s={s:(t=n[i])==null?void 0:t.s};e.push(s)}return e}function jd(n){let r=!0;const e=n[1]/n[0];for(let t=1;t<n.length;t++)if(n[t]/n[t-1]!==e){r=!1;break}return r}function zd(n){const r=[];for(let e=1;e<=n;e++)r.push(e);return r}function or(n,r,e){var i,s,l,c;const t=[],o=[];for(let d=0;d<n.length;d++)o.push(Number((i=n[d])==null?void 0:i.v));if(n.length>2&&jd(o))for(let d=1;d<=r;d++){const u=(d-1)%n.length,h=a.Tools.deepClone(n[u]);jt(h);const g=Number((s=n[n.length-1])==null?void 0:s.v)*(Number((l=n[1])==null?void 0:l.v)/Number((c=n[0])==null?void 0:c.v))**d;h&&(ea(h)&&(h.v=g),t.push(h))}else{const d=zd(n.length);for(let u=1;u<=r;u++){const h=(u-1)%n.length,g=a.Tools.deepClone(n[h]);jt(g);const S=e===a.Direction.DOWN||e===a.Direction.RIGHT,f=Xd(n.length+u,o,d,S);g&&(ea(g)&&(g.v=f),t.push(g))}}return t}function Xd(n,r,e,t=!0){function o(h){let g=0;for(let S=0;S<h.length;S++)g+=h[S];return g/h.length}const i=o(e),s=o(r);let l=0,c=0;for(let h=0;h<e.length;h++)l+=(e[h]-i)*(r[h]-s),c+=(e[h]-i)*(e[h]-i);let d;c===0?d=t?1:-1:d=l/c;const u=s-d*i;return Math.round((u+d*n)*1e5)/1e5}function Qs(n,r,e){var i;const t=[],o=/0|([1-9]+[0-9]*)/g;for(let s=1;s<=r;s++){const l=(s-1)%n.length,c=a.Tools.deepClone(n[l]);jt(c);const d=`${(i=n[n.length-1])==null?void 0:i.v}`,u=d==null?void 0:d.match(o),h=u==null?void 0:u[u.length-1],g=Math.abs(Number(h)+e*s);if(!d||!h)continue;const S=d.lastIndexOf(h),f=d.substr(0,S)+g.toString()+d.substr(S+h.length);c&&(c.v=f,t.push(c))}return t}function Rn(n,r,e,t=0){var l,c;const o=[["日","一","二","三","四","五","六"],["周日","周一","周二","周三","周四","周五","周六"],["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]];if(t>=o.length)return[];const i=o[t],s=[];for(let d=1;d<=r;d++){const u=(d-1)%n.length,h=a.Tools.deepClone(n[u]);jt(h);let g=0;if(((l=n[n.length-1])==null?void 0:l.v)===i[0])g=7+e*d;else{const f=`${(c=n[n.length-1])==null?void 0:c.v}`;if(f){const p=f.substr(f.length-1,1);g=ct(p)+e*d}}g<0&&(g=Math.ceil(Math.abs(g)/7)*7+g);const S=g%7;h&&(h.v=i[S],s.push(h))}return s}function Js(n,r,e){var o;const t=[];for(let i=1;i<=r;i++){const s=(i-1)%n.length,l=a.Tools.deepClone(n[s]);jt(l);const c=`${(o=n[n.length-1])==null?void 0:o.v}`,d=ct(c)+e*i;let u;d<=0?u="零":u=Hd(d),l&&(l.v=u,t.push(l))}return t}const Kn={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 Yd(n){let r=!1;return Object.keys(Kn).forEach(e=>{Kn[e].includes(n)&&(r=!0)}),r}function Yr(n){let r="";const e=[];return Object.keys(Kn).forEach(t=>{Kn[t].includes(n)&&(r=t,e.push(...Kn[t]))}),{name:r,series:e}}function $s(n,r,e,t){var s;const o=t.length,i=[];for(let l=1;l<=r;l++){const c=(l-1)%n.length,d=a.Tools.deepClone(n[c]);jt(d);const u=`${(s=n[n.length-1])==null?void 0:s.v}`;let h=t.indexOf(u)+e*l;h<0&&(h+=Math.abs(e)*o);const g=h%o;d&&(d.v=t[g],i.push(d))}return i}function Gd(n,r){const e=[];let t;if(r.startRow<n.startRow)t=a.Direction.UP;else if(r.endRow>n.endRow)t=a.Direction.DOWN;else if(r.startColumn<n.startColumn)t=a.Direction.LEFT;else if(r.endColumn>n.endColumn)t=a.Direction.RIGHT;else return[];if(t===a.Direction.DOWN||t===a.Direction.UP){const o=n.endRow-n.startRow+1,i=r.endRow-r.startRow+1,s=Math.floor(i/o),l=i%o,c={startRow:0,startColumn:0,endRow:n.endRow-n.startRow,endColumn:n.endColumn-n.startColumn};if(t===a.Direction.DOWN){for(let d=0;d<s;d++)e.push({repeatStartCell:{row:n.startRow+(d+1)*o,col:n.startColumn},relativeRange:c});l>0&&e.push({repeatStartCell:{row:n.startRow+(s+1)*o,col:n.startColumn},relativeRange:{startRow:0,startColumn:0,endRow:l-1,endColumn:n.endColumn-n.startColumn}})}else{for(let d=0;d<s;d++)e.push({repeatStartCell:{row:n.startRow-(d+1)*o,col:n.startColumn},relativeRange:c});l>0&&e.push({repeatStartCell:{row:n.startRow-(s+1)*o,col:n.startColumn},relativeRange:{startRow:o-l,endRow:o-1,startColumn:0,endColumn:n.endColumn-n.startColumn}})}}if(t===a.Direction.RIGHT||t===a.Direction.LEFT){const o=n.endColumn-n.startColumn+1,i=r.endColumn-r.startColumn+1,s=Math.floor(i/o),l=i%o,c={startRow:0,startColumn:0,endRow:n.endRow-n.startRow,endColumn:n.endColumn-n.startColumn};if(t===a.Direction.RIGHT){for(let d=0;d<s;d++)e.push({repeatStartCell:{row:n.startRow,col:n.startColumn+(d+1)*o},relativeRange:c});l>0&&e.push({repeatStartCell:{row:n.startRow,col:n.startColumn+(s+1)*o},relativeRange:{startRow:0,startColumn:0,endRow:n.endRow-n.startRow,endColumn:l-1}})}else{for(let d=0;d<s;d++)e.push({repeatStartCell:{row:n.startRow,col:n.startColumn-(d+1)*o},relativeRange:c});l>0&&e.push({repeatStartCell:{row:n.startRow,col:n.startColumn-(s+1)*o},relativeRange:{startRow:0,startColumn:o-l,endRow:n.endRow-n.startRow,endColumn:o-1}})}}return e}function ea(n){return!(a.isFormulaString(n.f)||a.isFormulaId(n.si)||n.t===a.CellValueType.BOOLEAN)}function jt(n){n&&"custom"in n&&delete n.custom}var mn=(n=>(n.Append="APPEND",n.Default="DEFAULT",n.Only="ONLY",n))(mn||{}),_e=(n=>(n.NUMBER="number",n.DATE="date",n.EXTEND_NUMBER="extendNumber",n.CHN_NUMBER="chnNumber",n.CHN_WEEK2="chnWeek2",n.CHN_WEEK3="chnWeek3",n.LOOP_SERIES="loopSeries",n.FORMULA="formula",n.OTHER="other",n))(_e||{}),le=(n=>(n.COPY="COPY",n.SERIES="SERIES",n.ONLY_FORMAT="ONLY_FORMAT",n.NO_FORMAT="NO_FORMAT",n))(le||{});const Zd={type:_e.DATE,priority:1100,match:(n,r)=>{var e;if(n!=null&&n.f||n!=null&&n.si)return!1;if((typeof(n==null?void 0:n.v)=="number"||(n==null?void 0:n.t)===a.CellValueType.NUMBER)&&n.s){if(typeof n.s=="string"){const o=r.get(a.IUniverInstanceService).getFocusedUnit().getStyles().get(n.s),i=(e=o==null?void 0:o.n)==null?void 0:e.pattern;if(i)return a.numfmt.getInfo(i).isDate}else if(n.s.n&&a.numfmt.getInfo(n.s.n.pattern).isDate)return!0}return!1},isContinue:(n,r)=>n.type===_e.DATE,applyFunctions:{[le.SERIES]:(n,r,e)=>{const{data:t}=n;return e===a.Direction.LEFT||e===a.Direction.UP?(t.reverse(),or(t,r,e).reverse()):or(t,r,e)}}},Kd={type:_e.NUMBER,priority:1e3,match:n=>typeof(n==null?void 0:n.v)=="number"||(n==null?void 0:n.t)===a.CellValueType.NUMBER,isContinue:(n,r)=>n.type===_e.NUMBER,applyFunctions:{[le.SERIES]:(n,r,e)=>{const{data:t}=n;return e===a.Direction.LEFT||e===a.Direction.UP?(t.reverse(),or(t,r,e).reverse()):or(t,r,e)}}},el={type:_e.OTHER,priority:0,match:()=>!0,isContinue:(n,r)=>n.type===_e.OTHER},qd={type:_e.EXTEND_NUMBER,priority:900,match:n=>Uo(`${n==null?void 0:n.v}`||"").isExtendNumber,isContinue:(n,r)=>{var e;if(n.type===_e.EXTEND_NUMBER){const{beforeTxt:t,afterTxt:o}=Uo(`${(e=n.cellData)==null?void 0:e.v}`||""),{beforeTxt:i,afterTxt:s}=Uo(`${r==null?void 0:r.v}`||"");if(t===i&&o===s)return!0}return!1},applyFunctions:{[le.SERIES]:(n,r,e)=>{var l;const{data:t}=n,o=e===a.Direction.UP||e===a.Direction.LEFT;let i;if(t.length===1)return i=o?-1:1,Ue(Qs(t,r,i),o);const s=[];for(let c=0;c<t.length;c++){const d=`${(l=t[c])==null?void 0:l.v}`;d&&s.push(Number(Uo(d).matchTxt))}return o&&(t.reverse(),s.reverse()),co(s)?(i=s[1]-s[0],Ue(Qs(t,r,i),o)):Ft(t,r)}}},Qd={type:_e.CHN_NUMBER,priority:830,match:n=>!!Vd(`${n==null?void 0:n.v}`||""),isContinue:(n,r)=>n.type===_e.CHN_NUMBER,applyFunctions:{[le.SERIES]:(n,r,e)=>{var c,d,u;const{data:t}=n,o=e===a.Direction.LEFT||e===a.Direction.UP;if(t.length===1){const h=`${(c=t[0])==null?void 0:c.v}`;let g;return o?g=-1:g=1,h&&(h==="日"||ct(h)<7)?Ue(Rn(t,r,g),o):Ue(Js(t,r,g),o)}let i=!1;for(let h=0;h<t.length;h++)if(((d=t[h])==null?void 0:d.v)==="日"){i=!0;break}const s=[];let l=0;for(let h=0;h<t.length;h++){const g=`${(u=t[h])==null?void 0:u.v}`;g==="日"?h===0?s.push(0):(l++,s.push(l*7)):i&&ct(g)>0&&ct(g)<7?s.push(ct(g)+l*7):s.push(ct(g))}if(o&&(t.reverse(),s.reverse()),co(s)){if(i||s[s.length-1]<6&&s[0]>0||s[0]<6&&s[s.length-1]>0){const g=s[1]-s[0];return Ue(Rn(t,r,g),o)}const h=s[1]-s[0];return Ue(Js(t,r,h),o)}return Ft(t,r)}}},Jd={type:_e.CHN_WEEK2,priority:820,match:n=>!!Wd(`${n==null?void 0:n.v}`||""),isContinue:(n,r)=>n.type===_e.CHN_WEEK2,applyFunctions:{[le.SERIES]:(n,r,e)=>{var l;const{data:t}=n,o=e===a.Direction.LEFT||e===a.Direction.UP;if(t.length===1){let c;return o?c=-1:c=1,Ue(Rn(t,r,c,1),o)}const i=[];let s=0;for(let c=0;c<t.length;c++){const d=`${(l=t[c])==null?void 0:l.v}`,u=d==null?void 0:d.substr(d.length-1,1);d==="周日"?c===0?i.push(0):(s++,i.push(s*7)):i.push(ct(u)+s*7)}if(o&&(t.reverse(),i.reverse()),co(i)){const c=i[1]-i[0];return Ue(Rn(t,r,c,1),o)}return Ft(t,r)}}},$d={type:_e.CHN_WEEK3,priority:810,match:n=>Ud(`${n==null?void 0:n.v}`||""),isContinue:(n,r)=>n.type===_e.CHN_WEEK3,applyFunctions:{[le.SERIES]:(n,r,e)=>{var l;const{data:t}=n,o=e===a.Direction.LEFT||e===a.Direction.UP;if(t.length===1){let c;return o?c=-1:c=1,Ue(Rn(t,r,c,2),o)}const i=[];let s=0;for(let c=0;c<t.length;c++){const d=`${(l=t[c])==null?void 0:l.v}`;if(d){const u=d.substr(d.length-1,1);d==="星期日"?c===0?i.push(0):(s++,i.push(s*7)):i.push(ct(u)+s*7)}}if(o&&(t.reverse(),i.reverse()),co(i)){const c=i[1]-i[0];return Ue(Rn(t,r,c,2),o)}return Ft(t,r)}}},eu={type:_e.LOOP_SERIES,priority:800,match:n=>Yd(`${n==null?void 0:n.v}`||""),isContinue:(n,r)=>{var e;return n.type===_e.LOOP_SERIES?Yr(`${(e=n.cellData)==null?void 0:e.v}`||"").name===Yr(`${r==null?void 0:r.v}`||"").name:!1},applyFunctions:{[le.SERIES]:(n,r,e)=>{var c,d;const{data:t}=n,o=e===a.Direction.LEFT||e===a.Direction.UP,{series:i}=Yr(`${(c=t[0])==null?void 0:c.v}`||"");if(t.length===1){let u;return o?u=-1:u=1,Ue($s(t,r,u,i),o)}const s=[];let l=0;for(let u=0;u<t.length;u++){const h=`${(d=t[u])==null?void 0:d.v}`;h&&(h===i[0]?u===0?s.push(0):(l++,s.push(l*i.length)):s.push(i.indexOf(h)+l*7))}if(o&&(t.reverse(),s.reverse()),co(s)){const u=s[1]-s[0];return Ue($s(t,r,u,i),o)}return Ft(t,r)}}};function Ue(n,r){return r?n.reverse():n}var tu=Object.getOwnPropertyDescriptor,nu=(n,r,e,t)=>{for(var o=t>1?void 0:t?tu(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},rn=(n,r)=>(e,t)=>r(e,t,n);exports.AutoFillService=class extends a.Disposable{constructor(e,t,o,i,s,l){super();E(this,"_rules",[]);E(this,"_hooks",[]);E(this,"_applyType$",new O.BehaviorSubject(le.SERIES));E(this,"_isFillingStyle",!0);E(this,"_prevUndos",[]);E(this,"_autoFillLocation$",new O.BehaviorSubject(null));E(this,"autoFillLocation$",this._autoFillLocation$.asObservable());E(this,"_showMenu$",new O.BehaviorSubject(!1));E(this,"showMenu$",this._showMenu$.asObservable());E(this,"_direction",a.Direction.DOWN);E(this,"applyType$",this._applyType$.asObservable());E(this,"_menu$",new O.BehaviorSubject([{label:"autoFill.copy",value:le.COPY,disable:!1},{label:"autoFill.series",value:le.SERIES,disable:!1},{label:"autoFill.formatOnly",value:le.ONLY_FORMAT,disable:!1},{label:"autoFill.noFormat",value:le.NO_FORMAT,disable:!1}]));E(this,"menu$",this._menu$.asObservable());this._commandService=e,this._undoRedoService=t,this._renderManagerService=o,this._univerInstanceService=i,this._selectionManagerService=s,this._injector=l,this._init()}_init(){this._rules=[Zd,Kd,qd,Qd,Jd,$d,eu,el].sort((e,t)=>t.priority-e.priority),this._isFillingStyle=!0}_getOneByPriority(e){return e.length<=0?[]:[e.reduce((o,i)=>(i.priority||0)>(o.priority||0)?i:o,e[0])]}_initPrevUndo(){this._prevUndos=[]}async triggerAutoFill(e,t,o,i){var S;if(o.startColumn===i.startColumn&&o.startRow===i.startRow&&o.endColumn===i.endColumn&&o.endRow===i.endRow)return!1;if(i.endColumn<o.endColumn&&i.endColumn>o.startColumn)return this._commandService.executeCommand(En.id,{clearRange:{startRow:i.startRow,endRow:i.endRow,startColumn:i.endColumn+1,endColumn:o.endColumn},selectionRange:i});if(i.endRow<o.endRow&&i.endRow>o.startRow)return this._commandService.executeCommand(En.id,{clearRange:{startRow:i.endRow+1,endRow:o.endRow,startColumn:i.startColumn,endColumn:i.endColumn},selectionRange:i});const s={startRow:i.startRow,endRow:i.endRow,startColumn:i.startColumn,endColumn:i.endColumn};let l=null;if(i.startRow<o.startRow)l=a.Direction.UP,s.endRow=o.startRow-1;else if(i.endRow>o.endRow)l=a.Direction.DOWN,s.startRow=o.endRow+1;else if(i.startColumn<o.startColumn)l=a.Direction.LEFT,s.endColumn=o.startColumn-1;else if(i.endColumn>o.endColumn)l=a.Direction.RIGHT,s.startColumn=o.endColumn+1;else return!1;this.direction=l;const c=this._injector.invoke(f=>Sn(o,f)),d=this._injector.invoke(f=>Sn(s,f));if(!c||!d)return!1;this.autoFillLocation={source:c,target:d,unitId:e,subUnitId:t};const u=[];this.getActiveHooks().forEach(f=>{var v;const p=(v=f==null?void 0:f.onBeforeFillData)==null?void 0:v.call(f,{source:c,target:d,unitId:e,subUnitId:t},l);p&&u.unshift(p)}),this._initPrevUndo();for(let f=0;f<u.length;f++){const p=this.menu.find(v=>v.value===u[f]);if(p&&!p.disable)return this.fillData(u[f])}const g=(S=this.menu.find(f=>f.disable===!1))==null?void 0:S.value;return g?this.fillData(g):!1}addHook(e){if(this._hooks.find(t=>t.id===e.id))throw new Error(`Add hook failed, hook id '${e.id}' already exist!`);return e.priority===void 0&&(e.priority=0),e.type===void 0&&(e.type=mn.Append),this._hooks.push(e),a.toDisposable(()=>{const t=this._hooks.findIndex(o=>o===e);t>-1&&this._hooks.splice(t,1)})}registerRule(e){if(this._rules.find(o=>o.type===e.type))throw new Error(`Registry rule failed, type '${e.type}' already exist!`);const t=this._rules.findIndex(o=>o.priority<e.priority);this._rules.splice(t===-1?this._rules.length:t,0,e)}getRules(){return this._rules}getAllHooks(){return this._hooks}getActiveHooks(){const{source:e,target:t,unitId:o,subUnitId:i}=this.autoFillLocation||{};if(!e||!t||!o||!i)return[];const s=this._hooks.filter(u=>{var h;return!((h=u.disable)!=null&&h.call(u,{source:e,target:t,unitId:o,subUnitId:i},this._direction,this.applyType))}),l=s.filter(u=>u.type===mn.Only);if(l.length>0)return this._getOneByPriority(l);const c=this._getOneByPriority(s.filter(u=>u.type===mn.Default)),d=s.filter(u=>u.type===mn.Append)||[];return[...c,...d]}get applyType(){return this._applyType$.getValue()}set applyType(e){this._applyType$.next(e)}get menu(){return this._menu$.getValue()}get direction(){return this._direction}set direction(e){this._direction=e}isFillingStyle(){return this._isFillingStyle}setFillingStyle(e){this._isFillingStyle=e}get autoFillLocation(){return this._autoFillLocation$.getValue()}set autoFillLocation(e){this._autoFillLocation$.next(e)}setDisableApplyType(e,t){this._menu$.next(this._menu$.getValue().map(o=>o.value===e?{...o,disable:t}:o))}setShowMenu(e){this._showMenu$.next(e)}fillData(e){var C,b,R;this.applyType=e;const{source:t,target:o,unitId:i=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId(),subUnitId:s=(C=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:C.getSheetId()}=this.autoFillLocation||{};if(!t||!o||!i||!s)return!1;const l=this.direction;this._prevUndos.length>0&&this._prevUndos.forEach(T=>{this._commandService.syncExecuteCommand(T.id,T.params)}),this._prevUndos=[];const c=a.Rectangle.union(Rt(t),Rt(o)),d=this.getActiveHooks(),u=this._univerInstanceService.getUnit(i,a.UniverInstanceType.UNIVER_SHEET);this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{selections:[{primary:{...(R=(b=this._selectionManagerService.getCurrentLastSelection())==null?void 0:b.primary)!=null?R:c},range:{...c,rangeType:a.RANGE_TYPE.NORMAL}}],unitId:i,subUnitId:s});const h=[],g=[];d.forEach(T=>{var P;const{undos:M,redos:y}=((P=T.onFillData)==null?void 0:P.call(T,{source:t,target:o,unitId:i,subUnitId:s},l,e))||{};M&&h.push(...M),y&&g.push(...y)});const S=g.every(T=>this._commandService.syncExecuteCommand(T.id,T.params)),f=[];e!==le.NO_FORMAT&&g.forEach(T=>{if(T.id===m.SetRangeValuesMutation.id){const{cellValue:M}=T.params;new a.ObjectMatrix(M).forValue((P,x,A)=>{const k=Object.keys(u.getStyles().get(A==null?void 0:A.s)||{});(A!=null&&A.p||k.length&&ps.some(N=>k.includes(N)))&&f.push({startRow:P,endRow:P,startColumn:x,endColumn:x})})}});const p=this._getAutoHeightUndoRedos(i,s,f);return p.redos.every(T=>this._commandService.syncExecuteCommand(T.id,T.params))&&(h.push(...p.undos),g.push(...p.redos)),S&&(this._prevUndos=h,this._undoRedoService.pushUndoRedo({unitID:i,undoMutations:h,redoMutations:g})),d.forEach(T=>{var M;(M=T.onAfterFillData)==null||M.call(T,{source:t,target:o,unitId:i,subUnitId:s},l,e)}),this.setShowMenu(!0),!0}_getAutoHeightUndoRedos(e,t,o){var h,g;const i=(h=this._renderManagerService.getRenderById(e))==null?void 0:h.with(exports.SheetSkeletonManagerService),s=(g=i==null?void 0:i.getCurrentParam())==null?void 0:g.skeleton;if(!s)return{redos:[],undos:[]};const l=s.calculateAutoHeightInRange(o),c={subUnitId:t,unitId:e,rowsAutoHeightInfo:l},d=s.worksheet,u=m.SetWorksheetRowAutoHeightMutationFactory(c,d);return{undos:[{id:m.SetWorksheetRowAutoHeightMutation.id,params:u}],redos:[{id:m.SetWorksheetRowAutoHeightMutation.id,params:c}]}}};exports.AutoFillService=nu([rn(0,a.ICommandService),rn(1,a.IUndoRedoService),rn(2,w.IRenderManagerService),rn(3,a.Inject(a.IUniverInstanceService)),rn(4,a.Inject(m.SheetsSelectionsService)),rn(5,a.Inject(a.Injector))],exports.AutoFillService);const Et=a.createIdentifier("univer.auto-fill-service"),Ct={type:a.CommandType.COMMAND,id:"sheet.command.auto-fill",handler:async(n,r)=>{const e=n.get(Et),t=n.get(a.IUniverInstanceService),{sourceRange:o,targetRange:i}=r,s=m.getSheetCommandTarget(t);if(!s)return!1;const{subUnitId:l,unitId:c}=s;return e.triggerAutoFill(c,l,o,i)}},En={id:"sheet.command.auto-clear-content",type:a.CommandType.COMMAND,handler:async(n,r)=>{const e=n.get(a.IUniverInstanceService),t=n.get(a.ICommandService),o=n.get(a.IUndoRedoService),i=n.get(m.SheetInterceptorService),s=m.getSheetCommandTarget(e);if(!s)return!1;const{unitId:l,subUnitId:c}=s,{clearRange:d,selectionRange:u}=r,h={subUnitId:c,unitId:l,cellValue:m.generateNullCellValue([d])},g=m.SetRangeValuesUndoMutationFactory(n,h),{startColumn:S,startRow:f}=u,p={selections:[{primary:{startColumn:S,startRow:f,endColumn:S,endRow:f,actualRow:f,actualColumn:S,isMerged:!1,isMergedMainCell:!1},range:{...u}}],unitId:l,subUnitId:c};if(t.executeCommand(m.SetSelectionsOperation.id,p),t.syncExecuteCommand(m.SetRangeValuesMutation.id,h)){const C=i.afterCommandExecute({id:m.SetRangeValuesMutation.id,params:h});return a.sequenceExecute(C.redos,t),o.pushUndoRedo({unitID:l,undoMutations:[{id:m.SetRangeValuesMutation.id,params:g},...C.undos],redoMutations:[{id:m.SetRangeValuesMutation.id,params:h},...C.redos]}),!0}return!1}},uo={id:"sheet.command.refill",type:a.CommandType.COMMAND,handler:async(n,r)=>n.get(Et).fillData(r.type)};var ou=Object.getOwnPropertyDescriptor,ru=(n,r,e,t)=>{for(var o=t>1?void 0:t?ou(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Mt=(n,r)=>(e,t)=>r(e,t,n);exports.EditorBridgeService=class extends a.Disposable{constructor(e,t,o,i,s,l,c){super();E(this,"_editorUnitId",a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);E(this,"_editorIsDirty",!1);E(this,"_isDisabled",!1);E(this,"_visible",{visible:!1,eventType:w.DeviceInputEventType.Dblclick,unitId:""});E(this,"_currentEditCell",null);E(this,"_currentEditCellState",null);E(this,"_currentEditCellLayout",null);E(this,"_currentEditCellState$",new O.BehaviorSubject(null));E(this,"currentEditCellState$",this._currentEditCellState$.asObservable());E(this,"_currentEditCellLayout$",new O.BehaviorSubject(null));E(this,"currentEditCellLayout$",this._currentEditCellLayout$.asObservable());E(this,"currentEditCell$",this._currentEditCellState$.pipe(O.switchMap(e=>this._currentEditCellLayout$.pipe(O.map(t=>e&&t?{...e,...t}:null)))));E(this,"_visible$",new O.BehaviorSubject(this._visible));E(this,"visible$",this._visible$.asObservable());E(this,"_afterVisible$",new O.BehaviorSubject(this._visible));E(this,"afterVisible$",this._afterVisible$.asObservable());E(this,"_forceKeepVisible$",new O.BehaviorSubject(!1));E(this,"forceKeepVisible$",this._forceKeepVisible$.asObservable());this._sheetInterceptorService=e,this._renderManagerService=t,this._themeService=o,this._univerInstanceService=i,this._editorService=s,this._refSelectionsService=l,this._contextService=c,this.disposeWithMe(a.toDisposable(()=>{this._currentEditCellState$.complete(),this._currentEditCell=null})),this._univerInstanceService.getTypeOfUnitDisposed$(a.UniverInstanceType.UNIVER_SHEET).subscribe(d=>{var u;d.getUnitId()===((u=this._currentEditCellState)==null?void 0:u.unitId)&&this._clearCurrentEditCellState()})}refreshEditCellState(){const e=this.getLatestEditCellState();if(!e){this._currentEditCellState=null,this._currentEditCellLayout=null,this._currentEditCellState$.next(null),this._currentEditCellLayout$.next(null);return}const{position:t,scaleX:o,scaleY:i,canvasOffset:s,...l}=e;this._currentEditCellState=l,this._currentEditCellLayout={position:t,scaleX:o,scaleY:i,canvasOffset:s},this._currentEditCellState$.next(this._currentEditCellState),this._currentEditCellLayout$.next(this._currentEditCellLayout)}refreshEditCellPosition(e){var y;const t=this._currentEditCell;if(t==null)return;const o=this._renderManagerService.getCurrentTypeOfRenderer(a.UniverInstanceType.UNIVER_SHEET);if(!o)return;const i=(y=o.with(exports.SheetSkeletonManagerService).getSkeletonParam(t.sheetId))==null?void 0:y.skeleton,s=o.with(ve);if(!i||!this._currentEditCellState)return;const{primary:l,unitId:c,sheetId:d,scene:u,engine:h}=t,g=Jn(i,l);if(g==null)return;const S=a.convertCellToRange(g),f=$.getCanvasOffsetByEngine(h);let{startX:p,startY:v,endX:C,endY:b}=S;const{scaleX:R,scaleY:T}=u.getAncestorScale(),M=u.getViewportScrollXY(s.getViewPort());p=w.convertTransformToOffsetX(p,R,M),v=w.convertTransformToOffsetY(v,T,M),C=w.convertTransformToOffsetX(C,R,M),b=w.convertTransformToOffsetY(b,T,M),e&&this._currentEditCellLayout&&(C=C-p+this._currentEditCellLayout.position.startX,b=b-v+this._currentEditCellLayout.position.startY,p=this._currentEditCellLayout.position.startX,v=this._currentEditCellLayout.position.startY),this._currentEditCellLayout={position:{startX:p,startY:v,endX:C,endY:b},canvasOffset:f,scaleX:R,scaleY:T},this._currentEditCellLayout$.next(this._currentEditCellLayout)}setEditCell(e){this._currentEditCell=e,this._editorService.getFocusEditor()||(this._editorService.focus(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._contextService.setContextValue(a.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(a.FOCUSING_EDITOR_STANDALONE,!1));const t=this.getLatestEditCellState();if(!t){this._currentEditCellState=t,this._currentEditCellLayout=t,this._currentEditCellState$.next(t),this._currentEditCellLayout$.next(t);return}const{position:o,canvasOffset:i,scaleX:s,scaleY:l,...c}=t;this._currentEditCellState=c,this._currentEditCellLayout={position:o,canvasOffset:i,scaleX:s,scaleY:l},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}updateEditLocation(e,t){this._currentEditCellState&&(this._currentEditCellState={...this._currentEditCellState,row:e,column:t})}getLatestEditCellState(){var W,H,U;const e=this._currentEditCell;if(e==null)return;const t=this._renderManagerService.getCurrentTypeOfRenderer(a.UniverInstanceType.UNIVER_SHEET);if(!t)return;const o=t.with(exports.SheetSkeletonManagerService).getCurrentSkeleton(),i=t.with(ve);if(!o)return;const{primary:s,unitId:l,sheetId:c,scene:d,engine:u}=e,{startRow:h,startColumn:g}=s,S=Jn(o,s);if(S==null)return;const f=a.convertCellToRange(S),p=$.getCanvasOffsetByEngine(u);let{startX:v,startY:C,endX:b,endY:R}=f;const{scaleX:T,scaleY:M}=d.getAncestorScale(),y=d.getViewportScrollXY(i.getViewPort());v=w.convertTransformToOffsetX(v,T,y),C=w.convertTransformToOffsetY(C,M,y),b=w.convertTransformToOffsetX(b,T,y),R=w.convertTransformToOffsetY(R,M,y);const P=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),x=P.getActiveSheet();if(!x)return;const A={workbook:P,worksheet:x,unitId:P.getUnitId(),subUnitId:x.getSheetId(),row:h,col:g,origin:x.getCellRaw(h,g)};let k;const N=this._sheetInterceptorService.writeCellInterceptor.fetchThroughInterceptors(m.BEFORE_CELL_EDIT)(x.getCell(h,g),A);k=N&&o.getCellDocumentModelWithFormula(N);const D=(W=k==null?void 0:k.documentModel)==null?void 0:W.documentStyle.renderConfig;if(D!=null&&(D.cellValueType=a.CellValueType.STRING),!k||k.documentModel==null){const B=o.getBlankCellDocumentModel(N);if(k!=null){const{verticalAlign:F,horizontalAlign:L,wrapStrategy:j,textRotation:z,fill:q}=k,{centerAngle:te,vertexAngle:Q}=w.convertTextRotation(z);B.documentModel.documentStyle.renderConfig={...D,verticalAlign:F,horizontalAlign:L,wrapStrategy:j,background:{rgb:q},centerAngle:te,vertexAngle:Q}}k=B}if(k.fill=k.fill||"#fff",(H=k.documentModel)==null||H.setZoomRatio(Math.max(T,M)),(N==null?void 0:N.isInArrayFormulaRange)===!0){const B=(U=k.documentModel)==null?void 0:U.getBody();B&&(B.textRuns=[{st:0,ed:B.dataStream.length-2,ts:{cl:{rgb:this._themeService.getCurrentTheme().textColorSecondary}}}])}return{position:{startX:v,startY:C,endX:b,endY:R},scaleX:T,scaleY:M,canvasOffset:p,row:h,column:g,unitId:l,sheetId:c,documentLayoutObject:k,editorUnitId:this._editorUnitId,isInArrayFormulaRange:N==null?void 0:N.isInArrayFormulaRange}}getCurrentEditorId(){return this._editorUnitId}changeVisible(e){this._visible=e,e.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(e){this._editorIsDirty=e}getEditorDirty(){return this._editorIsDirty}};exports.EditorBridgeService=ru([Mt(0,a.Inject(m.SheetInterceptorService)),Mt(1,w.IRenderManagerService),Mt(2,a.Inject(a.ThemeService)),Mt(3,a.IUniverInstanceService),Mt(4,$.IEditorService),Mt(5,m.IRefSelectionsService),Mt(6,a.IContextService)],exports.EditorBridgeService);const Se=a.createIdentifier("univer.sheet-editor-bridge.service"),Ce={id:"sheet.operation.set-cell-edit-visible",type:a.CommandType.OPERATION,handler:(n,r)=>r?(n.get(Se).changeVisible(r),!0):!1},ho={id:"sheet.operation.set-cell-edit-visible-f2",type:a.CommandType.OPERATION,handler:(n,r)=>{const e=n.get(a.ICommandService),o=n.get(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);return o?(e.syncExecuteCommand(Ce.id,{...r,unitId:o.getUnitId()}),!0):!1}},zt={id:"sheet.operation.set-cell-edit-visible-arrow",type:a.CommandType.OPERATION,handler:()=>!0},kn={id:"sheet.command.change-zoom-ratio",type:a.CommandType.COMMAND,handler:(n,r)=>{if(!r)return!1;const e=n.get(a.IUniverInstanceService),t=m.getSheetCommandTarget(e);if(!t)return!1;const{worksheet:o,subUnitId:i,unitId:s}=t,{delta:l,reset:c}=r;let d=c?100:Math.round((o.getConfig().zoomRatio+l)*100);d=Math.max(Hi[0],d),d=Math.min(Hi[1],d);const u=d/100,g=n.get(Se).isVisible();return(g.unitId===s||g.unitId===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)&&g.visible?!1:n.get(a.ICommandService).executeCommand(Le.id,{unitId:s,subUnitId:i,zoomRatio:u})}},Nn={id:"sheet.command.set-zoom-ratio",type:a.CommandType.COMMAND,handler:(n,r)=>{if(!r)return!1;const{unitId:e,subUnitId:t,zoomRatio:o}=r,s=n.get(Se).isVisible();return(s.unitId===e||s.unitId===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)&&s.visible?!1:n.get(a.ICommandService).executeCommand(Le.id,{unitId:e,subUnitId:t,zoomRatio:o})}};function iu(n){return typeof n.isMainScene>"u"}function Ge(n,r){const e=n instanceof a.Workbook?n:n.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!e)return null;const t=e.getUnitId();let o,i,s,l;if(iu(r)){const g=r.getRenderById(t);if(g==null)return null;o=g.components,o=g.components,i=g.mainComponent,s=g.scene,l=g.engine}else o=r.components,i=r.mainComponent,s=r.scene,l=r.engine;if(!o||!i)return null;const c=i,d=o.get(me.ROW),u=o.get(me.COLUMN),h=o.get(me.LEFT_TOP);return{spreadsheet:c,spreadsheetRowHeader:d,spreadsheetColumnHeader:u,spreadsheetLeftTopPlaceholder:h,scene:s,engine:l}}function Bi(n,r,e,t){const{startX:o,startY:i,endX:s,endY:l}=t.getCellWithCoordByIndex(n,r);return{startX:o,startY:i,endX:s,endY:l}}function qe(n,r,e,t,o,i){const s=e.getCoordRelativeToViewport(w.Vector2.FromArray([n,r])),{x:l,y:c}=s,d=e.getScrollXYInfoByViewport(s,o),{scaleX:u,scaleY:h}=e.getAncestorScale(),g=t.getCellIndexByOffset(l,c,u,h,d,{closeFirst:i}),{row:S,column:f}=g,p=t.getNoMergeCellWithCoordByIndex(S,f),{startX:v,startY:C,endX:b,endY:R}=p;return{startX:v,startY:C,endX:b,endY:R,row:S,column:f}}function qn(n,r,e,t){const o=e.getCoordRelativeToViewport(w.Vector2.FromArray([n,r])),i=e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),s=e.getScrollXYInfoByViewport(o,i),{scaleX:l,scaleY:c}=e.getAncestorScale(),{x:d,y:u}=s,h=n/l+d,g=r/c+u;return{x:h,y:g}}var su=Object.getOwnPropertyDescriptor,au=(n,r,e,t)=>{for(var o=t>1?void 0:t?su(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Lo=(n,r)=>(e,t)=>r(e,t,n);let $n=class extends a.Disposable{constructor(r,e,t,o,i){super();E(this,"_zoom");this._context=r,this._sheetSkeletonManagerService=e,this._commandService=t,this._contextService=o,this._editorBridgeService=i,this._initSkeletonListener(),this._initZoomEventListener()}updateZoom(r,e){const t=this._context.unit.getSheetBySheetId(r);return t?(t.getConfig().zoomRatio=e,t===this._context.unit.getActiveSheet()&&this._updateViewZoom(e),!0):!1}_initZoomEventListener(){const r=this._getSheetObject().scene;this.disposeWithMe(r.onMouseWheel$.subscribeEvent(e=>{if(!e.ctrlKey||!this._contextService.getContextValue(a.FOCUSING_SHEET))return;if(this._editorBridgeService){const d=this._editorBridgeService.isVisible();if((d.unitId===this._context.unitId||d.unitId===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)&&d.visible)return}const t=Math.abs(e.deltaX);let o=t<40?.2:t<80?.4:.2;o*=e.deltaY>0?-1:1,r.scaleX<1&&(o/=2);const i=this._context.unit,s=i.getActiveSheet();if(!s)return;const l=s.getZoomRatio();let c=+Number.parseFloat(`${l+o}`).toFixed(1);c=c>=4?4:c<=.1?.1:c,this._commandService.executeCommand(Nn.id,{zoomRatio:Math.round(c*10)/10,unitId:i.getUnitId(),subUnitId:s.getSheetId()}),e.preventDefault()}))}_initSkeletonListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(r=>{if(r==null)return;const t=this._context.unit.getActiveSheet();if(!t)return;const o=t.getZoomRatio()||1;this._zoom!==o&&this._updateViewZoom(o),this._zoom=o}))}_updateViewZoom(r){const e=this._getSheetObject();e==null||e.scene.scale(r,r),e==null||e.spreadsheet.makeForceDirty()}_getSheetObject(){return Ge(this._context.unit,this._context)}};$n=au([Lo(1,a.Inject(exports.SheetSkeletonManagerService)),Lo(2,a.ICommandService),Lo(3,a.IContextService),Lo(4,a.Optional(Se))],$n);const Le={id:"sheet.operation.set-zoom-ratio",type:a.CommandType.OPERATION,handler:(n,r)=>{const t=n.get(w.IRenderManagerService).getRenderById(r.unitId);return t?t.with($n).updateZoom(r.subUnitId,r.zoomRatio):!1}};var lu=Object.getOwnPropertyDescriptor,cu=(n,r,e,t)=>{for(var o=t>1?void 0:t?lu(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Gr=(n,r)=>(e,t)=>r(e,t,n);const ta="univer-sheet-main-canvas";exports.SheetsRenderService=class extends a.RxDisposable{constructor(e,t,o){super();E(this,"_skeletonChangeMutations",new Set);this._contextService=e,this._instanceSrv=t,this._renderManagerService=o,Promise.resolve().then(()=>this._init())}registerSkeletonChangingMutations(e){return this._skeletonChangeMutations.has(e)?a.toDisposable(()=>{}):(this._skeletonChangeMutations.add(e),a.toDisposable(()=>this._skeletonChangeMutations.delete(e)))}checkMutationShouldTriggerRerender(e){return this._skeletonChangeMutations.has(e)}_init(){this._initWorkbookListener(),this._initContextListener()}_initWorkbookListener(){this._instanceSrv.getTypeOfUnitAdded$(a.UniverInstanceType.UNIVER_SHEET).pipe(O.takeUntil(this.dispose$)).subscribe(e=>this._createRenderer(e)),this._instanceSrv.getAllUnitsForType(a.UniverInstanceType.UNIVER_SHEET).forEach(e=>this._createRenderer(e)),this._instanceSrv.getTypeOfUnitDisposed$(a.UniverInstanceType.UNIVER_SHEET).pipe(O.takeUntil(this.dispose$)).subscribe(e=>this._disposeRenderer(e)),this.disposeWithMe(this._instanceSrv.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{e&&this._renderManagerService.setCurrent(e.getUnitId())}))}_createRenderer(e){const t=e.getUnitId();this._renderManagerService.created$.subscribe(o=>{o.unitId===t&&(o.engine.getCanvas().setId(`${ta}_${t}`),o.engine.getCanvas().getContext().setId(`${ta}_${t}`))}),this._renderManagerService.createRender(t)}_disposeRenderer(e){const t=e.getUnitId();this._renderManagerService.removeRender(t)}_initContextListener(){this.disposeWithMe(this._contextService.subscribeContextValue$(w.RENDER_RAW_FORMULA_KEY).pipe(O.distinctUntilChanged()).subscribe(()=>{this._renderManagerService.getRenderAll().forEach(e=>{e.mainComponent instanceof w.Spreadsheet&&e.mainComponent.makeForceDirty(!0)})}))}};exports.SheetsRenderService=cu([Gr(0,a.IContextService),Gr(1,a.IUniverInstanceService),Gr(2,w.IRenderManagerService)],exports.SheetsRenderService);var du=Object.getOwnPropertyDescriptor,uu=(n,r,e,t)=>{for(var o=t>1?void 0:t?du(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Pt=(n,r)=>(e,t)=>r(e,t,n);exports.AutoFillController=class extends a.Disposable{constructor(e,t,o,i,s,l,c){super();E(this,"_beforeApplyData",[]);E(this,"_currentLocation",null);E(this,"_copyData",[]);E(this,"_defaultHook");this._univerInstanceService=e,this._commandService=t,this._autoFillService=o,this._editorBridgeService=i,this._renderManagerService=s,this._injector=l,this._sheetsRenderService=c,this._defaultHook={id:"default",type:mn.Default,priority:0,onBeforeFillData:(d,u)=>this._presetAndCacheData(d,u),onFillData:(d,u,h)=>this._fillData(d,u,h)},this._init()}_init(){this._initDefaultHook(),this._initSelectionControlFillChanged(),this._initQuitListener(),this._initSkeletonChange()}_initSkeletonChange(){this.disposeWithMe(this._sheetsRenderService.registerSkeletonChangingMutations(Ct.id))}_initDefaultHook(){this.disposeWithMe(this._autoFillService.addHook(this._defaultHook))}_initQuitListener(){const e=[Ce.id,En.id,m.SetRangeValuesCommand.id,Le.id,m.SetWorksheetActiveOperation.id,m.MoveRangeMutation.id,m.RemoveRowMutation.id,m.RemoveColMutation.id,m.InsertRowMutation.id,m.InsertColMutation.id,m.MoveRowsMutation.id,m.MoveColsMutation.id,m.SetWorksheetColWidthMutation.id,m.SetWorksheetRowHeightMutation.id,m.SetRangeValuesMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted((t,o)=>{var c,d;const i=o==null?void 0:o.fromCollab,s=o==null?void 0:o.fromSync,l=o==null?void 0:o.fromFormula;e.includes(t.id)&&!i&&!s&&!l&&t.params.trigger!==Ct.id&&t.params.trigger!==uo.id&&this._quit(),t.id===m.RemoveSheetMutation.id&&t.params.unitId===((c=this._currentLocation)==null?void 0:c.unitId)&&t.params.subUnitId===((d=this._currentLocation)==null?void 0:d.subUnitId)&&this._quit()})),this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(t=>{var o;t.getUnitId()===((o=this._currentLocation)==null?void 0:o.unitId)&&this._quit()}))}_quit(){this._currentLocation=null,this._beforeApplyData=[],this._copyData=[],this._autoFillService.setShowMenu(!1)}_initSelectionControlFillChanged(){const e=new a.DisposableCollection,t=()=>{e.dispose();const o=this._renderManagerService.getCurrentTypeOfRenderer(a.UniverInstanceType.UNIVER_SHEET);if(!o)return;o.with(ve).getSelectionControls().forEach(l=>{e.add(l.selectionFilled$.subscribe(c=>{if(c==null||c.startColumn===-1||c.startRow===-1||c.endColumn===-1||c.endRow===-1)return;const d={startColumn:l.model.startColumn,endColumn:l.model.endColumn,startRow:l.model.startRow,endRow:l.model.endRow},u={startColumn:c.startColumn,endColumn:c.endColumn,startRow:c.startRow,endRow:c.endRow};this._commandService.executeCommand(Ct.id,{sourceRange:d,targetRange:u})})),e.add(l.fillControl.onDblclick$.subscribeEvent(()=>{const c={startColumn:l.model.startColumn,endColumn:l.model.endColumn,startRow:l.model.startRow,endRow:l.model.endRow};this._handleDbClickFill(c)})),e.add(l.fillControl.onPointerDown$.subscribeEvent(()=>{this._editorBridgeService.isVisible().visible&&this._commandService.syncExecuteCommand(Ce.id,{visible:!1,eventType:w.DeviceInputEventType.PointerDown,unitId:o.unitId})}))})};t(),this.disposeWithMe(this._commandService.onCommandExecuted(o=>{o.id===m.SetSelectionsOperation.id&&t()})),this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(()=>t()))}_handleDbClickFill(e){const t=this._detectFillRange(e);t.endRow<=e.endRow||this._commandService.executeCommand(Ct.id,{sourceRange:e,targetRange:t})}_detectFillRange(e){var g,S,f,p,v,C;const{startRow:t,endRow:o,startColumn:i,endColumn:s}=e,l=(g=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET))==null?void 0:g.getActiveSheet();if(!l)return e;const c=l.getCellMatrix(),d=l.getMaxRows()-1,u=l.getMaxColumns()-1;let h=o;if(i>0&&((S=c.getValue(t,i-1))==null?void 0:S.v)!=null){let b=t;for(;((f=c.getValue(b,i-1))==null?void 0:f.v)!=null&&b<d;)b+=1;h=b-1}else if(s<u&&((p=c.getValue(o,s+1))==null?void 0:p.v)!=null){let b=t;for(;((v=c.getValue(b,s+1))==null?void 0:v.v)!=null&&b<d;)b+=1;h=b-1}for(let b=o+1;b<=h;b++)for(let R=i;R<=s;R++)if(((C=c.getValue(b,R))==null?void 0:C.v)!=null){h=b-1;break}return{startColumn:i,endColumn:s,startRow:t,endRow:h}}_getApplyData(e,t,o,i,s,l=!0){const c=[],d=Math.floor(o/t),u=o%t,h=this._autoFillService.getRules();if(!l&&s===le.ONLY_FORMAT)return console.error("ERROR: only format can not be applied when hasStyle is false"),[];const g={};h.forEach(S=>{g[S.type]=[]}),h.forEach(S=>{const{type:f,applyFunctions:p={}}=S,v=e[f];v&&v.forEach(C=>{const b=Ld(C.index,u),R=C.index.length*d+b,T=this._applyFunctions(C,R,i,s,p,e),M=Bd(t,o,C.index);g[f].push({data:T,index:M})})});for(let S=0;S<o;S++)h.forEach(f=>{const{type:p}=f,v=g[p];for(let C=0;C<v.length;C++)S in v[C].index&&c.push(v[C].data[v[C].index[S]])});return c}_applyFunctions(e,t,o,i,s,l){const{data:c}=e,d=o===a.Direction.UP||o===a.Direction.LEFT;if(i===le.COPY){const u=s==null?void 0:s[le.COPY];return u?u(e,t,o,l):(d&&c.reverse(),Ft(c,t))}if(i===le.SERIES){const u=s==null?void 0:s[le.SERIES];return u?u(e,t,o,l):(d&&c.reverse(),s!=null&&s[le.COPY]?s[le.COPY](e,t,o,l):Ft(c,t))}if(i===le.ONLY_FORMAT){const u=s==null?void 0:s[le.ONLY_FORMAT];return u?u(e,t,o,l):Fd(c,t)}}_getCopyData(e,t){const o=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!o)throw new Error("No active sheet found");const i=o.getCellMatrix(),s=this._autoFillService.getRules(),l=[],c=t===a.Direction.DOWN||t===a.Direction.UP;let d,u;return c?(d=e.cols,u=e.rows):(d=e.rows,u=e.cols),d.forEach(h=>{const g=this._getEmptyCopyDataPiece(),S={type:void 0,cellData:void 0};u.forEach(f=>{let p;c?p=i.getValue(f,h):p=i.getValue(h,f);const{type:v,isContinue:C}=s.find(b=>b.match(p,this._injector))||el;if(C(S,p)){const b=g[v],R=b[b.length-1];R.data.push(p),R.index.push(f-u[0])}else{const b=g[v];b?b.push({data:[p],index:[f-u[0]]}):g[v]=[{data:[p],index:[f-u[0]]}]}S.type=v,S.cellData=p}),l.push(g)}),l}_getEmptyCopyDataPiece(){const e={};return this._autoFillService.getRules().forEach(t=>{e[t.type]=[]}),e}_getMergeApplyData(e,t,o,i){const s=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!s)throw new Error("No active sheet found");const l=[];for(let c=e.startRow;c<=e.endRow;c++)for(let d=e.startColumn;d<=e.endColumn;d++){const{isMergedMainCell:u,startRow:h,startColumn:g,endRow:S,endColumn:f}=s.getCellInfoInMergeData(c,d);if(u){if(o===a.Direction.DOWN){let p=h+i,v=S+i;for(;v<=t.endRow;)l.push({startRow:p,startColumn:g,endRow:v,endColumn:f}),p+=i,v+=i}else if(o===a.Direction.UP){let p=h-i,v=S-i;for(;p>=t.startRow;)l.push({startRow:p,startColumn:g,endRow:v,endColumn:f}),p-=i,v-=i}else if(o===a.Direction.RIGHT){let p=g+i,v=f+i;for(;v<=t.endColumn;)l.push({startRow:h,startColumn:p,endRow:S,endColumn:v}),p+=i,v+=i}else if(o===a.Direction.LEFT){let p=g-i,v=f-i;for(;p>=t.startColumn;)l.push({startRow:h,startColumn:p,endRow:S,endColumn:v}),p-=i,v-=i}}}return l}_presetAndCacheData(e,t){const{source:o,target:i}=e,s=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!s)throw new Error("No active sheet found");const l=s.getCellMatrix(),c=[];return i.rows.forEach(d=>{const u=[];i.cols.forEach(h=>{u.push(a.Tools.deepClone(l.getValue(d,h)))}),c.push(u)}),this._beforeApplyData=c,this._copyData=this._getCopyData(o,t),this._currentLocation=e,this._shouldDisableSeries(this._copyData)?(this._autoFillService.setDisableApplyType(le.SERIES,!0),le.COPY):(this._autoFillService.setDisableApplyType(le.SERIES,!1),this._getPreferredApplyType(this._copyData))}_fillData(e,t,o){var W,H;const i=[],s=[];let l=!0;o===le.NO_FORMAT&&(l=!1,o=le.SERIES);const{source:c,target:d,unitId:u,subUnitId:h}=e;if(!c||!d||t==null)return{undos:i,redos:s};const g=Rt(c),S=Rt(d),{cols:f,rows:p}=d,{cols:v,rows:C}=c,b=this._copyData;let R;t===a.Direction.DOWN||t===a.Direction.UP?R=C.length:R=v.length;const T=[];if(t===a.Direction.DOWN||t===a.Direction.UP){const U=p.length,B=[];f.forEach((F,L)=>{const j=b[L],z=this._getApplyData(j,R,U,t,o,l);B.push(z)});for(let F=0;F<B[0].length;F++){const L=[];for(let j=0;j<B.length;j++)L.push({s:null,...B[j][F]});T.push(L)}}else{const U=f.length;p.forEach((B,F)=>{const L=b[F],j=this._getApplyData(L,R,U,t,o,l),z=[];for(let q=0;q<j.length;q++)z.push({s:null,...j[q]});T.push(z)})}let M=[];const y=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getStyles();if(l?(M=this._getMergeApplyData(g,S,t,R),T.forEach(U=>{U.forEach(B=>{B&&y&&y&&(B.s=y.getStyleByCell(B))})})):T.forEach((U,B)=>{U.forEach((F,L)=>{F&&y&&(F.s=y.getStyleByCell(this._beforeApplyData[B][L])||null)})}),o===le.ONLY_FORMAT&&T.forEach((U,B)=>{U.forEach((F,L)=>{if(F){const j=this._beforeApplyData[B][L]||{};F.f=j.f,F.si=j.si,F.t=j.t,F.v=j.v}})}),l){const U=[],B=(H=(W=this._univerInstanceService.getUniverSheetInstance(u))==null?void 0:W.getSheetBySheetId(h))==null?void 0:H.getMergeData();B&&B.forEach(j=>{a.Rectangle.intersects(j,S)&&U.push(j)});const F={unitId:u,subUnitId:h,ranges:U},L=this._injector.invoke(m.RemoveMergeUndoMutationFactory,F);U.length&&(s.push({id:m.RemoveWorksheetMergeMutation.id,params:F}),i.unshift({id:m.AddWorksheetMergeMutation.id,params:L}))}const P={subUnitId:h,unitId:u,cellValue:kd([d])},x=this._injector.invoke(m.SetRangeValuesUndoMutationFactory,P);s.push({id:m.SetRangeValuesMutation.id,params:P}),i.unshift({id:m.SetRangeValuesMutation.id,params:x});const A=new a.ObjectMatrix;p.forEach((U,B)=>{f.forEach((F,L)=>{T[B][L]&&A.setValue(U,F,T[B][L])})});const k=A.getMatrix(),N={subUnitId:h,unitId:u,cellValue:k},D=this._injector.invoke(m.SetRangeValuesUndoMutationFactory,N);if(this._autoFillService.getActiveHooks().forEach(U=>{var B;(B=U.onBeforeSubmit)==null||B.call(U,e,t,o,k)}),i.unshift({id:m.SetRangeValuesMutation.id,params:D}),s.push({id:m.SetRangeValuesMutation.id,params:N}),M!=null&&M.length){const U=m.getAddMergeMutationRangeByType(M),B={unitId:u,subUnitId:h,ranges:U},F=this._injector.invoke(m.AddMergeUndoMutationFactory,B);i.unshift({id:m.RemoveWorksheetMergeMutation.id,params:F}),s.push({id:m.AddWorksheetMergeMutation.id,params:B})}return{undos:i,redos:s}}_shouldDisableSeries(e){return e.every(t=>Object.keys(t).every(o=>{var i;return((i=t[o])==null?void 0:i.length)===0||[_e.OTHER,_e.FORMULA].includes(o)}))}_getPreferredApplyType(e){return e.every(o=>Object.keys(o).every(i=>{var s,l;return((s=o[i])==null?void 0:s.length)===0||((l=o[i])==null?void 0:l.length)===1&&o[i][0].data.length===1&&_e.NUMBER===i}))?le.COPY:le.SERIES}};exports.AutoFillController=uu([Pt(0,a.IUniverInstanceService),Pt(1,a.ICommandService),Pt(2,Et),Pt(3,Se),Pt(4,w.IRenderManagerService),Pt(5,a.Inject(a.Injector)),Pt(6,a.Inject(exports.SheetsRenderService))],exports.AutoFillController);var hu=Object.getOwnPropertyDescriptor,mu=(n,r,e,t)=>{for(var o=t>1?void 0:t?hu(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Zr=(n,r)=>(e,t)=>r(e,t,n);exports.CellCustomRenderController=class extends a.Disposable{constructor(e,t,o,i){super();E(this,"_enterActiveRender");this._context=e,this._sheetSkeletonManagerService=t,this._renderManagerService=o,this._permissionService=i,this._initEventBinding()}_initEventBinding(){const e=new a.DisposableCollection,t=this._context.unit,o=i=>{if(e.dispose(),!i)return;const s=this._context.unitId,{skeleton:l}=i,c=this._renderManagerService.getRenderById(s);if(c&&c.mainComponent){const d=c.mainComponent,u=S=>{const{offsetX:f,offsetY:p}=S,v=c.scene,C=t.getActiveSheet();if(!C)return;const b=v.getActiveViewportByCoord(w.Vector2.FromArray([f,p]));if(!b)return;const{scaleX:R,scaleY:T}=v.getAncestorScale(),M={x:b.viewportScrollX,y:b.viewportScrollY},y=l.getCellIndexByOffset(f,p,R,T,M),P=l.worksheet.getMergedCell(y.row,y.column),x={actualRow:P?P.startRow:y.row,actualCol:P?P.startColumn:y.column,row:y.row,col:y.column};if(!x||!l)return;const A=C.getCell(x.actualRow,x.actualCol);if(!A)return;const k=A.customRender;if(!(k!=null&&k.length))return;const N=x.actualRow,D=x.actualCol,W=k.sort(a.sortRules),H=C.getSheetId(),U={data:A,style:l.getStyles().getStyleByCell(A),primaryWithCoord:l.getCellWithCoordByIndex(x.actualRow,x.actualCol),unitId:s,subUnitId:H,row:N,col:D,workbook:t,worksheet:C},B={x:M.x+f/R,y:M.y+p/T},F=W.find(L=>{var j;return(j=L.isHit)==null?void 0:j.call(L,B,U)});if(F)return[F,U]},h=d.onPointerDown$.subscribeEvent(S=>{var p,v,C,b;const f=u(S);if(f){const[R,T]=f,{row:M,col:y,worksheet:P,unitId:x,subUnitId:A}=T;if(!((p=this._permissionService.composePermission([new m.WorkbookEditablePermission(x).id,new m.WorksheetEditPermission(x,A).id]))==null?void 0:p.every(D=>D.value)))return!1;const N=(C=(v=P.getCell(M,y))==null?void 0:v.selectionProtection)==null?void 0:C[0];if((N==null?void 0:N[m.UnitAction.Edit])===!1)return!1;(b=R.onPointerDown)==null||b.call(R,T,S)}}),g=a.fromEventSubject(d.onPointerMove$).pipe(O.throttleTime(30)).subscribe(S=>{var p,v,C,b,R,T;const f=u(S);if(f){const[M,y]=f;this._enterActiveRender?this._enterActiveRender.render!==M&&((v=(p=this._enterActiveRender.render).onPointerLeave)==null||v.call(p,this._enterActiveRender.cellContext,S),this._enterActiveRender={render:M,cellContext:y},(C=M.onPointerEnter)==null||C.call(M,y,S)):(this._enterActiveRender={render:M,cellContext:y},(b=M.onPointerEnter)==null||b.call(M,y,S))}else this._enterActiveRender&&((T=(R=this._enterActiveRender.render).onPointerLeave)==null||T.call(R,this._enterActiveRender.cellContext,S),this._enterActiveRender=null)});h&&e.add(h),g&&e.add(g)}};this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(o)),o(this._sheetSkeletonManagerService.getCurrentParam()),this.disposeWithMe(e)}};exports.CellCustomRenderController=mu([Zr(1,a.Inject(exports.SheetSkeletonManagerService)),Zr(2,w.IRenderManagerService),Zr(3,a.IPermissionService)],exports.CellCustomRenderController);class vs extends a.Disposable{constructor(){super(...arguments);E(this,"rangesStack",[]);E(this,"selectedRangeWorksheet","")}}var gu=Object.getOwnPropertyDescriptor,Su=(n,r,e,t)=>{for(var o=t>1?void 0:t?gu(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},na=(n,r)=>(e,t)=>r(e,t,n);let Tn=class{constructor(n,r){E(this,"_current",null);E(this,"_shortcutParam",[]);this._univerInstanceService=n,this._localeService=r}dispose(){this._shortcutParam=[]}getCurrentBySearch(n){return this._getCurrentBySearch(n)}getCurrent(){return this._getCurrentBySearch(this._current)}addOrUpdate(n){const r=this._getCurrentBySearch({unitId:n.unitId,sheetId:n.sheetId,keycode:n.keycode});if(r!=null){const e=this._shortcutParam.indexOf(r);this._shortcutParam.splice(e,1)}return this._shortcutParam.push(n),r}remove(n){if(n==null)return;const r=this._getCurrentBySearch(n);if(r==null)return;const e=this._shortcutParam.indexOf(r);return this._shortcutParam.splice(e,1)[0]}_getCurrentBySearch(n){return n==null?void 0:this._shortcutParam.find(e=>e.unitId===n.unitId&&e.sheetId===n.sheetId&&e.keycode===n.keycode)}};Tn=Su([na(0,a.IUniverInstanceService),na(1,a.Inject(a.LocaleService))],Tn);var Nr=(n=>(n.MergeAll="mergeAll",n.MergeVertical="mergeVertical",n.MergeHorizontal="mergeHorizontal",n))(Nr||{});function It(n,r,e,t,o=!0,i=1,s=!0){let l={...n};t==null&&(t={startRow:0,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1});let c;switch(r){case a.Direction.UP:for(c=n.startRow-i;c>-1&&!e.getRowVisible(c);)c-=1;c>=t.startRow?(l.startRow=c,l.endRow=c):s&&(l.startRow=t.endRow,l.endRow=t.endRow,o&&(l=It(l,a.Direction.LEFT,e,t,!1)));break;case a.Direction.DOWN:for(c=n.endRow+i;c<e.getRowCount()&&!e.getRowVisible(c);)c+=1;c<=t.endRow?(l.startRow=c,l.endRow=c):s&&(l.startRow=t.startRow,l.endRow=t.startRow,o&&(l=It(l,a.Direction.RIGHT,e,t,!1)));break;case a.Direction.LEFT:for(c=n.startColumn-i;c>-1&&!e.getColVisible(c);)c-=1;c>=t.startColumn?(l.startColumn=c,l.endColumn=c):s&&(l.startColumn=t.endColumn,l.endColumn=t.endColumn,o&&(l=It(l,a.Direction.UP,e,t,!1)));break;case a.Direction.RIGHT:for(c=n.endColumn+i;c<e.getColumnCount()&&!e.getColVisible(c);)c+=1;c<=t.endColumn?(l.startColumn=c,l.endColumn=c):s&&(l.startColumn=t.startColumn,l.endColumn=t.startColumn,o&&(l=It(l,a.Direction.DOWN,e,t,!1)));break}return l}function Cs(n,r,e){const t={...n},{startRow:o,startColumn:i,endRow:s,endColumn:l}=eo(n,r,e);let c=Ln(e,o,i,s,l).hasValue,d=!0,u=!0;for(;u;){if(a.Direction.UP===r){let h=t.startRow-1;for(;h>-1&&!e.getRowVisible(h);)h-=1;if(h===-1){u=!1;break}const{hasValue:g,matrix:S}=Ln(e,h,t.startColumn,h,t.endColumn);if(c&&!g&&!d){u=!1;break}else{if(S.getLength()!==0){let f=h;S.forValue(p=>{f=Math.min(p,f)}),t.startRow=f}else t.startRow=h;if(t.endRow=t.startRow,!c&&g){u=!1;break}c=g,d=!1}}if(a.Direction.DOWN===r){let h=t.endRow+1;for(;h<e.getRowCount()&&!e.getRowVisible(h);)h+=1;if(h===e.getRowCount()){u=!1;break}const{hasValue:g,matrix:S}=Ln(e,h,t.startColumn,h,t.endColumn);if(c&&!g&&!d){u=!1;break}else{if(S.getLength()!==0){let f=h;S.forValue((p,v,C)=>{f=Math.max(p+(C.rowSpan||1)-1,f)}),t.endRow=f}else t.endRow=h;if(t.startRow=t.endRow,!c&&g){u=!1;break}c=g,d=!1}}if(a.Direction.LEFT===r){let h=t.startColumn-1;for(;h>-1&&!e.getColVisible(h);)h-=1;if(h===-1){u=!1;break}const{hasValue:g,matrix:S}=Ln(e,t.startRow,h,t.endRow,h);if(c&&!g&&!d){u=!1;break}else{if(S.getLength()!==0){let f=h;S.forValue((p,v)=>{f=Math.min(v,f)}),t.startColumn=f}else t.startColumn=h;if(t.endColumn=t.startColumn,!c&&g){u=!1;break}c=g,d=!1}}if(a.Direction.RIGHT===r){let h=t.endColumn+1;for(;h<e.getColumnCount()&&!e.getColVisible(h);)h+=1;if(h===e.getColumnCount()){u=!1;break}const{hasValue:g,matrix:S}=Ln(e,t.startRow,h,t.endRow,h);if(c&&!g&&!d){u=!1;break}else{if(S.getLength()!==0){let f=h;S.forValue((p,v,C)=>{f=Math.max(v+(C.colSpan||1)-1,f)}),t.endColumn=f}else t.endColumn=h;if(t.startColumn=t.endColumn,!c&&g){u=!1;break}c=g,d=!1}}}return m.alignToMergedCellsBorders(t,e,!0)}function tl(n,r,e){return It(n,r,e,void 0,!1,1,!1)}function fu(n,r,e){const t=Cs(n,r,e);return m.alignToMergedCellsBorders(a.Rectangle.union(t,n),e,!0)}function pu(n,r,e){const t=tl(n,r,e),o={startRow:Math.min(n.startRow,t.startRow),startColumn:Math.min(n.startColumn,t.startColumn),endRow:Math.max(n.endRow,t.endRow),endColumn:Math.max(n.endColumn,t.endColumn)};return m.alignToMergedCellsBorders(a.Rectangle.union(n,o),e)}function vu(n,r,e,t){const o=a.getReverseDirection(e),i=Cs(eo(n,o,t),e,t);return e===a.Direction.UP&&i.startRow<=n.startRow?m.alignToMergedCellsBorders({...r,startColumn:n.startColumn,endColumn:n.endColumn},t,!0):e===a.Direction.DOWN&&i.endRow>=n.endRow?m.alignToMergedCellsBorders({...r,startColumn:n.startColumn,endColumn:n.endColumn},t,!0):e===a.Direction.LEFT&&i.startColumn<=n.startColumn?m.alignToMergedCellsBorders({...r,startRow:n.startRow,endRow:n.endRow},t,!0):e===a.Direction.RIGHT&&i.endColumn>=n.endColumn?m.alignToMergedCellsBorders({...r,startRow:n.startRow,endRow:n.endRow},t,!0):a.Rectangle.union(a.Rectangle.clone(r),i)}function Cu(n,r,e){const t=a.getReverseDirection(r),o=eo(n,t,e),i=eo(n,r,e),s=tl(o,r,e);return m.alignToMergedCellsBorders(a.Rectangle.union(i,s),e,!1)}function oa(n){return{startRow:0,startColumn:0,endRow:n.getRowCount()-1,endColumn:n.getColumnCount()-1,rangeType:a.RANGE_TYPE.ALL}}function eo(n,r,e){let t;switch(r){case a.Direction.UP:t={startRow:n.startRow,startColumn:n.startColumn,endRow:n.startRow,endColumn:n.endColumn,rangeType:a.RANGE_TYPE.NORMAL};break;case a.Direction.DOWN:t={startRow:n.endRow,startColumn:n.startColumn,endRow:n.endRow,endColumn:n.endColumn,rangeType:a.RANGE_TYPE.NORMAL};break;case a.Direction.LEFT:t={startRow:n.startRow,startColumn:n.startColumn,endRow:n.endRow,endColumn:n.startColumn,rangeType:a.RANGE_TYPE.NORMAL};break;case a.Direction.RIGHT:t={startRow:n.startRow,startColumn:n.endColumn,endRow:n.endRow,endColumn:n.endColumn,rangeType:a.RANGE_TYPE.NORMAL};break;default:throw new Error("Invalid direction")}return m.alignToMergedCellsBorders(t,e,!1)}function Ln(n,r,e,t,o){let i=!1;const s=n.getMatrixWithMergedCells(r,e,t,o).forValue((l,c,d)=>{if(_u(d))return i=!0,!1});return{hasValue:i,matrix:s}}function Fi(n,r,e){const t=a.Rectangle.clone(n);if(r==null)return t;switch(e){case a.Direction.UP:case a.Direction.DOWN:t.startColumn=t.endColumn=r.actualColumn;break;case a.Direction.LEFT:case a.Direction.RIGHT:t.startRow=t.endRow=r.actualRow;break}return t}function Iu(n,r,e){var l,c,d,u;const{primary:t,range:o}=n,i=a.Rectangle.clone(o);switch(r){case a.Direction.UP:case a.Direction.DOWN:i.startRow=(l=t==null?void 0:t.startRow)!=null?l:o.startRow,i.endRow=(c=t==null?void 0:t.endRow)!=null?c:o.startRow;break;case a.Direction.LEFT:case a.Direction.RIGHT:i.startColumn=(d=t==null?void 0:t.startColumn)!=null?d:o.startColumn,i.endColumn=(u=t==null?void 0:t.endColumn)!=null?u:o.startColumn;break}const s=eo(i,r,e);switch(r){case a.Direction.DOWN:return o.startRow<s.startRow;case a.Direction.UP:return o.endRow>s.endRow;case a.Direction.LEFT:return s.endColumn<o.endColumn;case a.Direction.RIGHT:return s.startColumn>o.startColumn}}function nl(n,r){let e=n[0].startRow,t=n[0].endRow;n.forEach(i=>{const{startRow:s,endRow:l}=i;e=Math.min(e,s),t=Math.max(t,l)});const o=new Array(t-e+1).fill(!1);return r.forEach(i=>{const{startRow:s,endRow:l}=i;for(let c=Math.max(s,e);c<=Math.min(l,t);c++)o[c-e]=!0}),n.every(i=>{const{startRow:s,endRow:l}=i;for(let c=s;c<=l;c++)if(!o[c-e])return!1;return!0})}function ol(n,r){let e=n[0].startColumn,t=n[0].endColumn;n.forEach(i=>{const{startColumn:s,endColumn:l}=i;e=Math.min(e,s),t=Math.max(t,l)});const o=new Array(t-e+1).fill(!1);return r.forEach(i=>{const{startColumn:s,endColumn:l}=i;for(let c=Math.max(s,e);c<=Math.min(l,t);c++)o[c-e]=!0}),n.every(i=>{const{startColumn:s,endColumn:l}=i;for(let c=s;c<=l;c++)if(!o[c-e])return!1;return!0})}function Is(n,r){return r?n==="mergeAll"?r.filter(e=>!(e.startRow===e.endRow&&e.startColumn===e.endColumn)):n==="mergeVertical"?r.filter(e=>e.startRow!==e.endRow):n==="mergeHorizontal"?r.filter(e=>e.startColumn!==e.endColumn):r:null}function _u(n){return n.v!==void 0&&n.v!==null&&n.v!==""||n.p!==void 0}var Je=(n=>(n[n.moveStopeOne=0]="moveStopeOne",n[n.moveGap=1]="moveGap",n[n.moveStepPage=2]="moveStepPage",n[n.moveStepEnd=3]="moveStepEnd",n))(Je||{});const xe={id:"sheet.command.move-selection",type:a.CommandType.COMMAND,handler:(n,r)=>{if(!r)return!1;const e=m.getSheetCommandTarget(n.get(a.IUniverInstanceService));if(!e)return!1;const{workbook:t,worksheet:o}=e,i=m.getSelectionsService(n,r.fromCurrentSelection).getCurrentLastSelection();if(!i)return!1;const{direction:s,jumpOver:l,extra:c}=r,{range:d,primary:u}=i,h=Fi(d,u,s),g=l===1?Cs(h,s,o):It(h,s,o),S=m.getCellAtRowCol(g.startRow,g.startColumn,o);if(a.Rectangle.equals(S,h))return!1;const f=t.getUnitId();n.get(Tn).remove({unitId:f,sheetId:o.getSheetId(),keycode:I.KeyCode.TAB});const p=[{range:a.Rectangle.clone(S),primary:{startRow:S.startRow,startColumn:S.startColumn,endRow:S.endRow,endColumn:S.endColumn,actualRow:g.startRow,actualColumn:g.startColumn,isMerged:S.isMerged,isMergedMainCell:S.startRow===g.startRow&&S.startColumn===g.startColumn}}];return n.get(a.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:t.getUnitId(),subUnitId:o.getSheetId(),selections:p,type:m.SelectionMoveType.MOVE_END,extra:c,reveal:!0})}},$e={id:"sheet.command.move-selection-enter-tab",type:a.CommandType.COMMAND,handler:(n,r)=>{var U;if(!r)return!1;const e=m.getSheetCommandTarget(n.get(a.IUniverInstanceService));if(!e)return!1;const{workbook:t,worksheet:o}=e,i=m.getSelectionsService(n),{direction:s,keycode:l}=r,c=s===a.Direction.LEFT||s===a.Direction.UP,d=i.getCurrentSelections().concat(),u=d.findIndex(B=>B.primary),h=d[u];if(!h)return!1;const g=c?-1:1,S=u+g!==d.length?d[u+g]:d[0],f=d.findIndex(B=>B===S),p=t.getUnitId(),v=o.getSheetId();if(!h)return!1;const{range:C}=h,b=h.primary;let R=Fi(C,b,s);const T=n.get(Tn),M=T.getCurrentBySearch({unitId:p,sheetId:v,keycode:I.KeyCode.TAB});let y;const{startRow:P,endRow:x,startColumn:A,endColumn:k}=C,N=c?b.startRow===P&&b.startColumn===A:b.endRow===x&&b.endColumn===k;if(a.Rectangle.equals(C,b)){if(l===I.KeyCode.TAB)M==null&&T.addOrUpdate({unitId:p,sheetId:v,keycode:I.KeyCode.TAB,selection:h});else{const L=M==null?void 0:M.selection;if(L!=null){const{range:j,primary:z}=L;R=Fi(j,z,s)}T.remove({unitId:p,sheetId:v,keycode:I.KeyCode.TAB})}const B=It(R,s,o),F=m.getCellAtRowCol(B.startRow,B.startColumn,o);if(a.Rectangle.equals(F,R))return!1;y={range:a.Rectangle.clone(F),primary:{startRow:F.startRow,startColumn:F.startColumn,endRow:F.endRow,endColumn:F.endColumn,actualRow:B.startRow,actualColumn:B.startColumn,isMerged:F.isMerged,isMergedMainCell:F.startRow===B.startRow&&F.startColumn===B.startColumn}}}else{T.remove({unitId:p,sheetId:v,keycode:I.KeyCode.TAB});const B=a.Tools.deepClone(b),F=N?S.range:It({startRow:B.startRow,startColumn:B.startColumn,endRow:B.endRow,endColumn:B.endColumn},s,o,{startRow:P,endRow:x,startColumn:A,endColumn:k}),L=N&&c,j=L?m.getCellAtRowCol(F.endRow,F.endColumn,o):m.getCellAtRowCol(F.startRow,F.startColumn,o);y={range:N?S.range:a.Rectangle.clone(C),primary:{startRow:j.startRow,startColumn:j.startColumn,endRow:j.endRow,endColumn:j.endColumn,actualRow:L?j.startRow:F.startRow,actualColumn:L?j.startColumn:F.startColumn,isMerged:j.isMerged,isMergedMainCell:j.startRow===F.startRow&&j.startColumn===F.startColumn},style:N?S.style:h.style}}N?(d[u].primary=null,d[f]=y,i.setSelections(p,v,[],m.SelectionMoveType.MOVE_END)):d[u]=y;const D=n.get(a.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:p,subUnitId:v,type:m.SelectionMoveType.MOVE_END,selections:d,reveal:!0,extra:r.extra}),H=(U=n.get(w.IRenderManagerService).getRenderById(p))==null?void 0:U.with(ve);return H==null||H.refreshSelectionMoveEnd(),D}},De={id:"sheet.command.expand-selection",type:a.CommandType.COMMAND,handler:(n,r)=>{if(!r)return!1;const e=m.getSheetCommandTarget(n.get(a.IUniverInstanceService));if(!e)return!1;const{worksheet:t,unitId:o,subUnitId:i}=e,s=m.getSelectionsService(n).getCurrentLastSelection();if(!s)return!1;const{range:l,primary:c}=s,{jumpOver:d,direction:u,extra:h}=r,S=Iu(s,u,t)?d===1?vu(l,{...a.Rectangle.clone(c),rangeType:a.RANGE_TYPE.NORMAL},u,t):Cu(l,u,t):d===1?fu(l,u,t):pu(l,u,t);return S.rangeType=s.range.rangeType,a.Rectangle.equals(S,l)?!1:n.get(a.ICommandService).syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:o,subUnitId:i,type:m.SelectionMoveType.ONLY_SET,selections:[{range:S,primary:c}],extra:h})}},Dr={id:"sheet.command.select-all",type:a.CommandType.COMMAND,handler:async(n,r={expandToGapFirst:!0,loop:!1})=>{const e=m.getSheetCommandTarget(n.get(a.IUniverInstanceService));if(!e)return!1;const t=m.getSelectionsService(n).getCurrentLastSelection();if(!t)return!1;const o=n.get(vs),{worksheet:i,unitId:s,subUnitId:l}=e,c=`${s}|${l}`;c!==o.selectedRangeWorksheet&&(o.rangesStack=[],o.selectedRangeWorksheet=c);const d=i.getMaxRows(),u=i.getMaxColumns(),{expandToGapFirst:h,loop:g}=r,{range:S,primary:f}=t,p=S.endColumn===u-1&&S.endRow===d-1&&S.startRow===0&&S.startColumn===0;o.rangesStack.some(C=>a.Rectangle.equals(C,S))||(o.rangesStack=[],o.rangesStack.push(S));let v;if(p)if(g){if(o.rangesStack.findIndex(b=>a.Rectangle.equals(b,S))!==o.rangesStack.length-1)return!1;v=o.rangesStack[0]}else return!1;else h?(v=m.expandToContinuousRange(S,{left:!0,right:!0,up:!0,down:!0},i),a.Rectangle.equals(v,S)&&(v=oa(i))):v=oa(i);return o.rangesStack.some(C=>a.Rectangle.equals(C,v))||o.rangesStack.push(v),n.get(a.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:s,subUnitId:l,reveal:!0,selections:[{range:v,primary:f}]})}};var bu=Object.getOwnPropertyDescriptor,Ru=(n,r,e,t)=>{for(var o=t>1?void 0:t?bu(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Eu=(n,r)=>(e,t)=>r(e,t,n);exports.SheetScrollManagerService=class{constructor(r,e){E(this,"_scrollStateMap",new Map);E(this,"_rawScrollInfo$",new O.BehaviorSubject(null));E(this,"rawScrollInfo$",this._rawScrollInfo$.asObservable());E(this,"validViewportScrollInfo$",new O.BehaviorSubject(null));E(this,"_searchParamForScroll",null);this._context=r,this._sheetSkeletonManagerService=e}dispose(){this._rawScrollInfo$.complete()}calcViewportScrollFromRowColOffset(r){if(!r)return{viewportScrollX:0,viewportScrollY:0};let{sheetViewStartColumn:e,sheetViewStartRow:t,offsetX:o,offsetY:i}=r;t=t||0,i=i||0;const s=this._sheetSkeletonManagerService.getCurrentSkeleton(),l=(s==null?void 0:s.rowHeightAccumulation[t-1])||0,d=((s==null?void 0:s.columnWidthAccumulation[e-1])||0)+o,u=l+i;return{viewportScrollX:d,viewportScrollY:u}}setSearchParam(r){this._searchParamForScroll=r}getScrollStateByParam(r){return this._getCurrentScroll(r)}getCurrentScrollState(){return this._getCurrentScroll(this._searchParamForScroll)}setValidScrollState(r){this._setScrollState(r)}emitRawScrollParam(r){this._emitRawScroll(r)}setValidScrollStateToCurrSheet(r){if(this._searchParamForScroll==null)return;this._setScrollState({...this._searchParamForScroll,...r});const e=this._searchParamForScroll.sheetId,t=this._sheetSkeletonManagerService.getSkeleton(e);t&&t.setScroll(r.viewportScrollX,r.viewportScrollY)}clear(){this._searchParamForScroll!=null&&this._clearByParamAndNotify(this._searchParamForScroll)}_setScrollState(r){const{unitId:e,sheetId:t,sheetViewStartColumn:o,sheetViewStartRow:i,offsetX:s,offsetY:l}=r;this._scrollStateMap.has(e)||this._scrollStateMap.set(e,new Map);const c=this._scrollStateMap.get(e),d={sheetViewStartRow:i,sheetViewStartColumn:o,offsetX:s,offsetY:l};c.set(t,d)}_clearByParamAndNotify(r){this._setScrollState({...r,sheetViewStartRow:0,sheetViewStartColumn:0,offsetX:0,offsetY:0}),this._emitRawScroll({sheetViewStartRow:0,sheetViewStartColumn:0,offsetX:0,offsetY:0})}_getCurrentScroll(r){var s;const e={sheetViewStartRow:0,sheetViewStartColumn:0,offsetX:0,offsetY:0};if(r==null)return e;const{unitId:t,sheetId:o}=r;return((s=this._scrollStateMap.get(t))==null?void 0:s.get(o))||e}_emitRawScroll(r){this._rawScrollInfo$.next(r)}};exports.SheetScrollManagerService=Ru([Eu(1,a.Inject(exports.SheetSkeletonManagerService))],exports.SheetScrollManagerService);const je={id:"sheet.operation.set-scroll",type:a.CommandType.OPERATION,handler:(n,r)=>{if(!r)return!1;const{unitId:e,sheetId:t,offsetX:o,offsetY:i,sheetViewStartColumn:s,sheetViewStartRow:l}=r;return n.get(w.IRenderManagerService).getRenderById(e).with(exports.SheetScrollManagerService).emitRawScrollParam({unitId:e,sheetId:t,offsetX:o,offsetY:i,sheetViewStartRow:l,sheetViewStartColumn:s}),!0}},wn={id:"sheet.command.set-scroll-relative",type:a.CommandType.COMMAND,handler:async(n,r)=>{const e=n.get(a.ICommandService),t=n.get(a.IUniverInstanceService),o=n.get(w.IRenderManagerService),i=m.getSheetCommandTarget(t);if(!i)return!1;const{unitId:s,subUnitId:l}=i,d=o.getRenderById(s).with(exports.SheetScrollManagerService).getCurrentScrollState(),{offsetX:u=0,offsetY:h=0}=r||{},{sheetViewStartRow:g=0,sheetViewStartColumn:S=0,offsetX:f=0,offsetY:p=0}=d||{};return e.executeCommand(je.id,{unitId:s,sheetId:l,sheetViewStartRow:g,sheetViewStartColumn:S,offsetX:f+u,offsetY:p+h})}},ze={id:"sheet.command.scroll-view",type:a.CommandType.COMMAND,handler:(n,r)=>{if(!r)return!1;const e=n.get(a.IUniverInstanceService),t=n.get(w.IRenderManagerService),o=m.getSheetCommandTarget(e);if(!o)return!1;const{workbook:i,worksheet:s,unitId:l}=o,d=t.getRenderById(l).with(exports.SheetScrollManagerService).getCurrentScrollState();if(!s)return!1;const{sheetViewStartRow:u,sheetViewStartColumn:h,offsetX:g,offsetY:S}=r,{sheetViewStartColumn:f,sheetViewStartRow:p,offsetX:v,offsetY:C}=d||{},{xSplit:b,ySplit:R}=o.worksheet.getConfig().freeze;return n.get(a.ICommandService).syncExecuteCommand(je.id,{unitId:i.getUnitId(),sheetId:s.getSheetId(),sheetViewStartRow:u!=null?u:p!=null?p:0+R,sheetViewStartColumn:h!=null?h:f!=null?f:0+b,offsetX:g!=null?g:v,offsetY:S!=null?S:C})}},_s={id:"sheet.command.scroll-to-cell",type:a.CommandType.COMMAND,handler:(n,r)=>{const e=n.get(a.IUniverInstanceService);return n.get(w.IRenderManagerService).getRenderById(e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports.SheetsScrollRenderController).scrollToRange(r.range,r.forceTop,r.forceLeft)}},Tu={id:"sheet.command.scroll-view-reset",type:a.CommandType.COMMAND,handler:async n=>{const r=n.get(a.IUniverInstanceService),e=m.getSheetCommandTarget(r);if(!e)return!1;const{subUnitId:t,unitId:o}=e;return n.get(a.ICommandService).executeCommand(je.id,{unitId:o,sheetId:t,sheetViewStartRow:0,sheetViewStartColumn:0})}};var wu=Object.getOwnPropertyDescriptor,yu=(n,r,e,t)=>{for(var o=t>1?void 0:t?wu(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},sn=(n,r)=>(e,t)=>r(e,t,n);xe.id,$e.id;const Mu=3;exports.SheetsScrollRenderController=class extends a.Disposable{constructor(r,e,t,o,i,s,l){super(),this._context=r,this._injector=e,this._sheetSkeletonManagerService=t,this._contextService=o,this._commandService=i,this._renderManagerService=s,this._scrollManagerService=l,this._initCommandListener(),this._wheelEventListener(),this._scrollBarEventListener(),this._initSkeletonListener()}_wheelEventListener(){const{scene:r}=this._context;if(!r)return;const e=r.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);e&&this.disposeWithMe(r.onMouseWheel$.subscribeEvent((t,o)=>{if(t.ctrlKey||!this._contextService.getContextValue(a.FOCUSING_SHEET))return;let i=0,s=0;i=t.deltaX,t.shiftKey?i=(t.deltaY||t.deltaX)*Mu:s=t.deltaY,this._commandService.executeCommand(wn.id,{offsetX:i,offsetY:s}),this._context.scene.makeDirty(!0);const l=e.limitedScroll(e.scrollX+i,e.scrollY+s);l&&!l.isLimitedX&&!l.isLimitedY&&(t.preventDefault(),r.getParent().classType===w.RENDER_CLASS_TYPE.SCENE_VIEWER&&o.stopPropagation()),e.isWheelPreventDefaultX&&e.isWheelPreventDefaultY&&t.preventDefault()}))}_scrollBarEventListener(){const{scene:r}=this._context;if(r==null)return;const e=r.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);e&&(this.disposeWithMe(a.toDisposable(this._scrollManagerService.rawScrollInfo$.subscribe(t=>{var S;const o=(S=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:S.skeleton;if(!o)return;if(t==null){e.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0});return}const{sheetViewStartRow:i,sheetViewStartColumn:s,offsetX:l,offsetY:c}=t,{startX:d,startY:u}=o.getCellWithCoordByIndex(i,s,!1),h=d+l,g=u+c;e.scrollToViewportPos({viewportScrollX:h,viewportScrollY:g})}))),this.disposeWithMe(e.onScrollAfter$.subscribeEvent(t=>{var p;const o=(p=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:p.skeleton;if(o==null||t.isTrigger===!1)return;const i=this._getSheetObject();if(o==null||i==null)return;const{viewportScrollX:s,viewportScrollY:l,scrollX:c,scrollY:d}=t,{row:u,column:h,rowOffset:g,columnOffset:S}=o.getOffsetRelativeToRowCol(s,l),f={sheetViewStartRow:u,sheetViewStartColumn:h,offsetX:S,offsetY:g,viewportScrollX:s,viewportScrollY:l,scrollX:c,scrollY:d};this._scrollManagerService.setValidScrollStateToCurrSheet(f),this._scrollManagerService.validViewportScrollInfo$.next({...f,viewportScrollX:s,viewportScrollY:l,scrollX:c,scrollY:d})})),this.disposeWithMe(e.onScrollByBar$.subscribeEvent(t=>{var g;const o=(g=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:g.skeleton;if(o==null||t.isTrigger===!1)return;const i=this._getSheetObject();if(o==null||i==null)return;const{viewportScrollX:s=0,viewportScrollY:l=0}=t;this._getFreeze();const{row:c,column:d,rowOffset:u,columnOffset:h}=o.getOffsetRelativeToRowCol(s,l);this._commandService.executeCommand(ze.id,{sheetViewStartRow:c,sheetViewStartColumn:d,offsetX:h,offsetY:u})})))}_initSkeletonListener(){this.disposeWithMe(a.toDisposable(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(r=>{if(r==null)return;const e={unitId:r.unitId,sheetId:r.sheetId};if(this._scrollManagerService.setSearchParam(e),!this._getSheetObject())return;const o=this._scrollManagerService.getScrollStateByParam(e),{viewportScrollX:i,viewportScrollY:s}=this._scrollManagerService.calcViewportScrollFromRowColOffset(o);o&&this._updateViewportScroll(i,s)})))}_updateViewportScroll(r=0,e=0){const t=this._getSheetObject();if(!t)return;const o=t.scene,i=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),s=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT),l=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM),c=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT),d=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);i&&(i.viewportScrollX=r,i.viewportScrollY=e),l&&(l.viewportScrollY=e),s&&(s.viewportScrollX=r),c&&(c.viewportScrollY=e),d&&(d.viewportScrollX=r)}scrollToRange(r,e,t){let{endRow:o,endColumn:i,startColumn:s,startRow:l}=r;const c=this._getViewportBounding();if(r.rangeType===a.RANGE_TYPE.ROW?(s=0,i=0):r.rangeType===a.RANGE_TYPE.COLUMN&&(l=0,o=0),c&&!e&&!t){const d=c.startRow>o?l:o,u=c.startColumn>i?s:i;return this._scrollToCell(d,u)}else return this._scrollToCell(l,s,e,t)}scrollToCell(r,e){const t=this._context.unit.getActiveSheet(),{ySplit:o,xSplit:i}=t.getFreeze();return this._commandService.syncExecuteCommand(ze.id,{sheetViewStartRow:r-o,sheetViewStartColumn:e-i,offsetX:0,offsetY:0})}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(r=>{switch(r.id){case m.SetSelectionsOperation.id:{const e=r.params;e.unitId===this._context.unitId&&e.reveal&&this._scrollToSelection()}break;case m.ScrollToCellOperation.id:{const e=r.params;if(e.unitId===this._context.unitId){const t=e.range;this.scrollToRange(t)}}break;case De.id:{const e=r.params;this._scrollToSelectionForExpand(e)}break}}))}_scrollToSelectionForExpand(r){setTimeout(()=>{const e=this._getSelectionsService().getCurrentLastSelection();if(e==null)return;const{startRow:t,startColumn:o,endRow:i,endColumn:s}=e.range,l=this._getViewportBounding();if(l==null)return;const{startRow:c,startColumn:d,endRow:u,endColumn:h}=l;let g=0,S=0;t>c?g=i:i<u?g=t:g=c,o>d?S=s:s<h?S=o:S=d,r.direction===a.Direction.DOWN?g=i:r.direction===a.Direction.UP?g=t:r.direction===a.Direction.RIGHT?S=s:r.direction===a.Direction.LEFT&&(S=o),this._scrollToCell(g,S)},0)}_getFreeze(){var e;const r=(e=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:e.skeleton.getWorksheetConfig();if(r!=null)return r.freeze}_updateSceneSize(r){var h;if(r==null)return;const{unitId:e}=this._context,{skeleton:t}=r,o=(h=this._renderManagerService.getRenderById(e))==null?void 0:h.scene;if(t==null||o==null)return;const{rowTotalHeight:i,columnTotalWidth:s,rowHeaderWidthAndMarginLeft:l,columnHeaderHeightAndMarginTop:c}=t;this._context.unit.getActiveSheet()&&(o==null||o.transformByState({width:l+s,height:c+i}))}_getSheetObject(){return Ge(this._context.unit,this._context)}_scrollToSelectionByDirection(r){const e=this._getViewportBounding();if(e==null)return!1;const{startRow:t,startColumn:o,endRow:i,endColumn:s}=e;let l=0,c=0;const{startRow:d,startColumn:u,endRow:h,endColumn:g}=r;d>=t&&(l=h),h<=i&&(l=d),u>=o&&(c=g),g<=s&&(c=u),this._scrollToCell(l,c)}_scrollToSelection(r=!0){var d;const e=this._getSelectionsService().getCurrentLastSelection();if(!e)return;const{startRow:t,startColumn:o,actualRow:i,actualColumn:s}=(d=e.primary)!=null?d:e.range,l=r&&i!=null?i:t,c=r&&s!=null?s:o;this._scrollToCell(l,c)}_getSelectionsService(){return m.getSelectionsService(this._injector)}_getViewportBounding(){var i,s;const r=(i=this._getSheetObject())==null?void 0:i.scene;if(r==null)return;const e=r.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(e==null)return;const t=(s=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:s.skeleton;if(t==null)return;const o=e.calcViewportInfo();return t.getRangeByViewBound(o.viewBound)}_scrollToCell(r,e,t=!1,o=!1){var k,N,D;const{rowHeightAccumulation:i,columnWidthAccumulation:s}=(k=this._sheetSkeletonManagerService.getCurrentSkeleton())!=null?k:{};if(i==null||s==null)return!1;const l=(N=this._getSheetObject())==null?void 0:N.scene;if(l==null)return!1;const c=l.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(c==null)return!1;const d=(D=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:D.skeleton;if(d==null)return!1;const u=this._context.unit.getActiveSheet();if(!u)return!1;r=a.Tools.clamp(r,0,i.length-1),e=a.Tools.clamp(e,0,s.length-1);const{startColumn:h,startRow:g,ySplit:S,xSplit:f}=u.getFreeze(),p=this._getViewportBounding();if(p==null)return!1;const{startRow:v,startColumn:C,endRow:b,endColumn:R}=p;let T,M;if(r>=g&&e>=h-S&&(r<=v&&(T=r,t=!0),r>=b)){const W=i[r]-c.height;for(let H=v;H<=r&&(T=H+1,!(i[H]>=W));H++);}if(e>=h&&r>=g-S&&(e<=C&&(M=e,o=!0),e>=R)){const W=s[e]-c.width;for(let H=C;H<=e&&(M=H+1,!(s[H]>=W));H++);}if(T===void 0&&M===void 0)return!1;let{offsetX:y,offsetY:P,sheetViewStartRow:x,sheetViewStartColumn:A}=this._scrollManagerService.getCurrentScrollState()||{};if(T=T?Math.min(T,r):x+S,M=M?Math.min(M,e):A+f,o){y=0,M=e;const W=d.getHiddenColumnsInRange({startColumn:M-f,endColumn:M});M=M-W.length}if(t){P=0,T=r;const W=d.getHiddenRowsInRange({startRow:T-S,endRow:T});T=T-W.length}return this._commandService.syncExecuteCommand(ze.id,{sheetViewStartRow:Math.max(0,T-S),sheetViewStartColumn:Math.max(0,M-f),offsetX:y,offsetY:P})}};exports.SheetsScrollRenderController=yu([sn(1,a.Inject(a.Injector)),sn(2,a.Inject(exports.SheetSkeletonManagerService)),sn(3,a.IContextService),sn(4,a.ICommandService),sn(5,w.IRenderManagerService),sn(6,a.Inject(exports.SheetScrollManagerService))],exports.SheetsScrollRenderController);const bs={id:"sheet.operation.scroll-to-range",type:a.CommandType.OPERATION,handler:(n,r)=>{if(!r)return!1;const e=n.get(a.IUniverInstanceService);return n.get(w.IRenderManagerService).getRenderById(e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports.SheetsScrollRenderController).scrollToRange(r.range,r.forceTop,r.forceLeft)}};class rl{constructor(){E(this,"_state",null);E(this,"_rect",null);E(this,"_state$",new O.BehaviorSubject(null));E(this,"state$",this._state$.asObservable());E(this,"_rect$",new O.BehaviorSubject(null));E(this,"rect$",this._rect$.asObservable());E(this,"_focus",!1);E(this,"_focus$",new O.BehaviorSubject(this._focus));E(this,"focus$",this._focus$.asObservable())}dispose(){this._state$.complete(),this._state=null,this._rect$.complete(),this._rect=null}setState(r){this._state=r,this._refresh(r)}getRect(){return this._rect}setRect(r){this._rect=r,this._rect$.next(r)}getState(){return this._state}setFocus(r=!1){this._focus=r,this._focus$.next(r)}_refresh(r){this._state$.next(r)}}const mo=a.createIdentifier("univer.sheet-cell-editor-manager.service"),Pu="36",Ou="univer-sheet-container",il={sheetFooterBarHeight:Pu,sheetContainer:Ou};var xu=Object.getOwnPropertyDescriptor,Au=(n,r,e,t)=>{for(var o=t>1?void 0:t?xu(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},an=(n,r)=>(e,t)=>r(e,t,n);const ra=5,ia=2;exports.SheetCellEditorResizeService=class extends a.Disposable{constructor(r,e,t,o,i,s,l){super(),this._context=r,this._layoutService=e,this._cellEditorManagerService=t,this._editorBridgeService=o,this._renderManagerService=i,this._sheetSkeletonManagerService=s,this._univerInstanceService=l}fitTextSize(r){var A,k,N,D;const e=this._editorBridgeService.getEditCellState();if(!e)return;const{position:t,documentLayoutObject:o,canvasOffset:i,scaleX:s,scaleY:l}=e,{startX:c,startY:d,endX:u,endY:h}=t,g=this._univerInstanceService.getUnit(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.UniverInstanceType.UNIVER_DOC);if(g==null)return;const S=this._getEditorSkeleton();if(!S)return;const f=this._predictingSize(t,i,S,o,s,l);if(!f)return;let{actualWidth:p,actualHeight:v}=f;const{verticalAlign:C,horizontalAlign:b,paddingData:R,fill:T}=o;p=p+((A=R.l)!=null?A:0)+((k=R.r)!=null?k:0),v=v+((N=R.t)!=null?N:0)+((D=R.b)!=null?D:0);let M=u-c,y=h-d;M<p&&(M=Math.ceil(p)),y<v&&(y=Math.ceil(v));let P=0;C===a.VerticalAlign.MIDDLE?P=(y-v)/2/l:C===a.VerticalAlign.TOP?P=R.t||0:P=(y-v)/l;let x=0;b===a.HorizontalAlign.CENTER?x=(M-p)/2/s:b===a.HorizontalAlign.RIGHT?x=(M-p)/s:x=R.l||0,P=P<(R.t||0)?R.t||0:P,x=x<(R.l||0)?R.l||0:x,g.updateDocumentDataMargin({t:P,l:x}),S.calculate(),this._editAreaProcessing(M,y,t,i,T,s,l,b,r)}_predictingSize(r,e,t,o,i=1,s=1){const{startX:l,endX:c}=r,{textRotation:d,wrapStrategy:u,paddingData:h}=o,g=this._univerInstanceService.getUnit(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.UniverInstanceType.UNIVER_DOC),{vertexAngle:S}=w.convertTextRotation(d);if(u===a.WrapStrategy.WRAP&&S===0){g==null||g.updateDocumentDataPageSize(c-l),g==null||g.updateDocumentDataMargin({l:h.l,t:h.t}),t.calculate();const{actualWidth:C,actualHeight:b}=t.getActualSize();return{actualWidth:C*i,actualHeight:b*s}}const f=this._getEditorMaxSize(r,e,o.horizontalAlign);if(!f)return;g==null||g.updateDocumentDataPageSize(f.width/i),t.calculate();const p=t.getActualSize();let v=c-l;return v<p.actualWidth*i+ra*i&&(v=p.actualWidth*i+ra*i),g==null||g.updateDocumentDataPageSize(v/i),g==null||g.updateDocumentRenderConfig({horizontalAlign:a.HorizontalAlign.UNSPECIFIED,cellValueType:void 0}),{actualWidth:p.actualWidth*i,actualHeight:p.actualHeight*s}}_getEditorMaxSize(r,e,t){if(this._getEditorObject()==null)return;function i(b){return Number.parseInt(b.replace("px",""))}const l=this._context.engine.getCanvasElement(),c=l.getBoundingClientRect(),d=i(l.style.width),{width:u}=c,h=u/d,{startX:g,startY:S,endX:f}=r,p=this._context.engine.width,v=document.body.clientHeight-S-Number.parseFloat(il.sheetFooterBarHeight)-e.top-ia*2;let C=u-g;if(t===a.HorizontalAlign.CENTER){const b=p-f,R=g;C=f-g+Math.min(R,b)*2}else t===a.HorizontalAlign.RIGHT&&(C=f);return{height:v,width:C-ia,scaleAdjust:h}}_editAreaProcessing(r,e,t,o,i,s=1,l=1,c,d){var H;const u=this._getEditorObject();if(u==null)return;const g=this._context.engine.getCanvasElement();let{startX:S,startY:f}=t;const{document:p,scene:v,engine:C}=u,b=v.getViewport($.VIEWPORT_KEY.VIEW_MAIN),R=this._getEditorMaxSize(t,o,c),{height:T,width:M,scaleAdjust:y}=R;let P=e,x=b==null?void 0:b.getScrollBar();P>T?(x==null?b&&new w.ScrollBar(b,{enableHorizontal:!1,barSize:8}):b==null||b.resetCanvasSizeAndUpdateScroll(),b==null||b.scrollToViewportPos({viewportScrollY:P-T}),P=T):(x=null,(H=b==null?void 0:b.getScrollBar())==null||H.dispose()),r+=(x==null?void 0:x.barSize)||0,r>M&&(r=M),this._addBackground(v,r/s,e/l,i);const{scaleX:A,scaleY:k}=v.getPrecisionScale();v.transformByState({width:r*y/s,height:e*y/l,scaleX:s*y,scaleY:l*y}),p.resize(r*y/s,e*y/l),setTimeout(()=>{C.resizeBySize(w.fixLineWidthByScale(r,A),w.fixLineWidthByScale(P,k)),d==null||d()},0);const N=this._layoutService.getContentElement().getBoundingClientRect(),D=g.getBoundingClientRect();S=S*y+(D.left-N.left),f=f*y+(D.top-N.top);const W=t.endX-t.startX;c===a.HorizontalAlign.RIGHT?S+=(W-r)*y:c===a.HorizontalAlign.CENTER&&(S+=(W-r*y)/2),this._cellEditorManagerService.setState({startX:S,startY:f,endX:r*y+S,endY:P*y+f,show:!0})}_addBackground(r,e,t,o){const i="_backgroundRectHelperColor_",s=r.getObject(i);s==null&&o==null||(s==null?r.addObjects([new w.Rect(i,{width:e,height:t,fill:o,evented:!1})],$.DOCS_COMPONENT_MAIN_LAYER_INDEX):o==null?s.dispose():(s.setProps({fill:o}),s.transformByState({width:e,height:t})))}resizeCellEditor(r){var y;const e=this._cellEditorManagerService.getState();if(!e||!this._editorBridgeService.isVisible().visible)return;this._editorBridgeService.refreshEditCellPosition(!0);const t=this._editorBridgeService.getEditCellState();if(!t)return;const o=(y=this._sheetSkeletonManagerService.getSkeletonParam(t.sheetId))==null?void 0:y.skeleton;if(!o)return;const{row:i,column:s,scaleX:l,scaleY:c,position:d,canvasOffset:u,documentLayoutObject:h}=t,{horizontalAlign:g}=h,S=this._getEditorMaxSize(d,u,g);if(!S)return;const{height:f,width:p,scaleAdjust:v}=S,C=o.getCellWithCoordByIndex(i,s),b=Math.min((C.mergeInfo.endY-C.mergeInfo.startY)*c,f)*v,R=Math.min((C.mergeInfo.endX-C.mergeInfo.startX)*l,p)*v,T=e.endY-e.startY,M=e.endX-e.startX;if(T!==b||M!==R){if(this._editorBridgeService.refreshEditCellPosition(!0),!this._getEditorSkeleton())return;this.fitTextSize(r)}}_getEditorObject(){return Pr(this._editorBridgeService.getCurrentEditorId(),this._renderManagerService)}_getEditorSkeleton(){var r;return(r=this._renderManagerService.getRenderById(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY))==null?void 0:r.with(Re.DocSkeletonManagerService).getSkeleton()}};exports.SheetCellEditorResizeService=Au([an(1,I.ILayoutService),an(2,mo),an(3,Se),an(4,w.IRenderManagerService),an(5,a.Inject(exports.SheetSkeletonManagerService)),an(6,a.IUniverInstanceService)],exports.SheetCellEditorResizeService);function Rs(n){return n.getContextValue(a.FOCUSING_SHEET)}function ce(n){return n.getContextValue(a.FOCUSING_SHEET)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)&&!n.getContextValue(a.EDITOR_ACTIVATED)&&!n.getContextValue(a.FOCUSING_COMMON_DRAWINGS)}function sl(n){return n.getContextValue(a.FOCUSING_SHEET)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)&&!n.getContextValue(a.EDITOR_ACTIVATED)&&!n.getContextValue(a.FOCUSING_FX_BAR_EDITOR)&&!n.getContextValue(a.FOCUSING_COMMON_DRAWINGS)}function ku(n){return n.getContextValue(a.FOCUSING_SHEET)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)&&n.getContextValue(a.EDITOR_ACTIVATED)}function Nu(n){return n.getContextValue(a.FOCUSING_UNIVER_EDITOR)&&n.getContextValue(a.EDITOR_ACTIVATED)}function al(n){return n.getContextValue(a.FOCUSING_FX_BAR_EDITOR)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)}function Du(n){return n.getContextValue(a.FOCUSING_SHEET)&&n.getContextValue(a.EDITOR_ACTIVATED)&&n.getContextValue(a.FOCUSING_EDITOR_INPUT_FORMULA)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)}function to(n){return n.getContextValue(a.FOCUSING_SHEET)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)&&n.getContextValue(a.EDITOR_ACTIVATED)&&!n.getContextValue(a.FOCUSING_EDITOR_INPUT_FORMULA)&&!n.getContextValue(a.FOCUSING_EDITOR_STANDALONE)}const ll=[I.KeyCode.ARROW_DOWN,I.KeyCode.ARROW_UP,I.KeyCode.ARROW_LEFT,I.KeyCode.ARROW_RIGHT],Hu=[I.KeyCode.ENTER,I.KeyCode.TAB,...ll];function cl(){const n=[];for(const r of ll)n.push({id:zt.id,binding:r,preconditions:e=>to(e),staticParameters:{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:r,isShift:!1}}),n.push({id:zt.id,binding:r|I.MetaKeys.SHIFT,preconditions:e=>to(e),staticParameters:{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:r,isShift:!0}});return n}const dl={id:ho.id,binding:I.KeyCode.F2,description:"shortcut.sheet.start-editing",group:"4_sheet-edit",preconditions:ce,staticParameters:{visible:!0,eventType:w.DeviceInputEventType.Keyboard,keycode:I.KeyCode.F2}},ul={id:Ce.id,binding:I.KeyCode.ENTER,description:"shortcut.sheet.toggle-editing",group:"4_sheet-edit",preconditions:n=>to(n),staticParameters:{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:I.KeyCode.ENTER}},hl={id:Ce.id,binding:I.KeyCode.TAB,preconditions:n=>to(n),staticParameters:{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:I.KeyCode.TAB}},ml={id:Ce.id,binding:I.KeyCode.ESC,description:"shortcut.sheet.abort-editing",group:"4_sheet-edit",preconditions:n=>to(n),staticParameters:{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:I.KeyCode.ESC}},gl={id:$.BreakLineCommand.id,description:"shortcut.sheet.break-line",group:"4_sheet-edit",preconditions:n=>ku(n),binding:I.KeyCode.ENTER|I.MetaKeys.ALT},Sl={id:$.DeleteLeftCommand.id,preconditions:n=>Nu(n)||al(n),binding:I.KeyCode.BACKSPACE},fl={id:Ce.id,description:"shortcut.sheet.delete-and-start-editing",group:"4_sheet-edit",preconditions:n=>ce(n)&&!al(n),binding:I.KeyCode.BACKSPACE,staticParameters:{visible:!0,eventType:w.DeviceInputEventType.Keyboard,keycode:I.KeyCode.BACKSPACE}};function Vu(n){return n.startsWith("'")}function Wu(n){return n.slice(1)}const Uu={"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","%":"%","-":"-",".":".",":":":","/":"/","+":"+","@":"@","&":"&","*":"*","#":"#","=":"=",">":">","<":"<","$":"$",""":'"',"'":"'","(":"(",")":")"," ":" ",",":",","!":"!","?":"?",";":";","[":"[","]":"]","{":"{","}":"}"},ji={true:"TRUE",false:"FALSE"};function Lu(n){return[a.LocaleType.ZH_CN,a.LocaleType.ZH_TW].includes(n)}function Bu(n,r,e,t){let o=n;if(Lu(e)){if(n.startsWith("'")||n.startsWith("'"))return`'${n.slice(1)}`;o=Fu(o)}if(o.startsWith("="))return ju(n,o,r,t);const i=o.toLowerCase();return ji[i]?ji[i]:a.numfmt.parseValue(o)==null?n:o}function Fu(n){const r=/['"].*?['"]/g,e=[],t=n.split(r);n.replace(r,i=>(e.push(i),""));let o=t.join("").split("").map(Yu).join("");return e.forEach((i,s)=>{o=o.slice(0,s*2)+i+o.slice((s+1)*2)}),o}function ju(n,r,e,t){const o=e.sequenceNodesBuilder(r);if(!o)return n;let i=r,s=0;return o.forEach((l,c)=>{if(typeof l=="object"){const d=l.token;if(ji[d.toLowerCase()]){const u=l.startIndex+s+1,h=l.endIndex+s+2;i=ln(d.toLocaleUpperCase(),i,u,h)}else if(l.nodeType===K.sequenceNodeType.FUNCTION&&zu(d,t,o,c)||l.nodeType===K.sequenceNodeType.REFERENCE){const u=d.indexOf("!");if(u>-1){const h=d.substring(u+1),g=l.startIndex+s+(u+1)+1,S=l.endIndex+s+2;i=ln(h.toLocaleUpperCase(),i,g,S)}else{const h=l.startIndex+s+1,g=l.endIndex+s+2;i=ln(d.toLocaleUpperCase(),i,h,g)}}else if(d.startsWith('"')&&d.endsWith('"')||d.startsWith("'")&&d.endsWith("'")){const u=l.startIndex+s+2,h=l.endIndex+s+1;i=ln(n.slice(u,h),i,u,h)}else if(l.nodeType!==K.sequenceNodeType.ARRAY){const u=a.numfmt.parseValue(d);if(u==null){const h=l.startIndex+s+1,g=l.endIndex+s+2;i=ln(n.slice(h,g),i,h,g)}else if(typeof u.v=="number"&&(u.z===void 0||!a.numfmt.isDate(u.z))){const h=`${u.v}`,g=l.startIndex+s+1,S=l.endIndex+s+2,{processedString:f,offset:p}=Gu(d,h);i=ln(f,i,g,S),s+=p}}}}),i}function zu(n,r,e,t){const o=r.getDescriptions();return e[t+1]!==K.matchToken.OPEN_BRACKET?!1:o.get(Xu(n).toLocaleUpperCase())!==void 0}function Xu(n){const r=/^@+/;return n.replace(r,"")}function Yu(n){return Uu[n]||n}function ln(n,r,e,t){return r.substring(0,e)+n+r.substring(t)}function Gu(n,r){var s,l;const e=((s=n.match(/^\s*/))==null?void 0:s[0])||"",t=((l=n.match(/\s*$/))==null?void 0:l[0])||"",o=e+r+t,i=o.length-n.length;return{processedString:o,offset:i}}const pl="range_selector",vl=n=>n.includes(pl);var Zu=Object.getOwnPropertyDescriptor,Ku=(n,r,e,t)=>{for(var o=t>1?void 0:t?Zu(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},ye=(n,r)=>(e,t)=>r(e,t,n);const sa=-1e3;exports.EditingRenderController=class extends a.Disposable{constructor(e,t,o,i,s,l,c,d,u,h,g,S,f,p,v,C){super();E(this,"_cursorChange",0);E(this,"_isUnitEditing",!1);E(this,"_workbookSelections");E(this,"_d");E(this,"_cursorTimeout");this._context=e,this._undoRedoService=o,this._contextService=i,this._renderManagerService=s,this._editorBridgeService=l,this._cellEditorManagerService=c,this._lexerTreeBuilder=d,this._functionService=u,this._textSelectionManagerService=h,this._commandService=g,this._localService=S,this._editorService=f,this._sheetCellEditorResizeService=p,this._univerInstanceService=v,this._sheetInterceptorService=C,this._workbookSelections=t.getWorkbookSelections(this._context.unitId),this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(b=>{(b==null?void 0:b.getUnitId())===this._context.unitId?this._d=this._init():(this._disposeCurrent(),this._isUnitEditing&&(this._handleEditorInvisible({visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:I.KeyCode.ESC,unitId:this._context.unitId}),this._isUnitEditing=!1))})),this._initEditorVisibilityListener()}dispose(){super.dispose(),this._disposeCurrent()}_disposeCurrent(){var e;(e=this._d)==null||e.dispose(),this._d=null}_init(){const e=new a.DisposableCollection;return this._subscribeToCurrentCell(e),this._initialCursorSync(e),this._listenEditorFocus(e),this._commandExecutedListener(e),this._initSkeletonListener(e),e.add(()=>{clearTimeout(this._cursorTimeout)}),this._cursorTimeout=setTimeout(()=>{this._cursorStateListener(e)},1e3),e}_initEditorVisibilityListener(){this.disposeWithMe(this._editorBridgeService.visible$.pipe(O.distinctUntilChanged((e,t)=>e.visible===t.visible)).subscribe(e=>{(e.unitId===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY||e.unitId===a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY||e.unitId===this._context.unitId)&&e.visible?(this._isUnitEditing=!0,this._handleEditorVisible(e)):this._isUnitEditing&&(this._handleEditorInvisible(e),this._isUnitEditing=!1)}))}_listenEditorFocus(e){const t=this._getEditorObject();t&&e.add(t.document.onPointerDown$.subscribeEvent(()=>{if(this._isUnitEditing&&this._editorBridgeService.isVisible()){const o=this._editorBridgeService.getEditCellState(),i=this._editorBridgeService.getCurrentEditorId();if(!o||!i)return;this._sheetCellEditorResizeService.fitTextSize()}}))}_initialCursorSync(e){e.add(this._cellEditorManagerService.focus$.pipe(O.filter(t=>!!t)).subscribe(()=>{var o;const t=(o=this._renderManagerService.getCurrentTypeOfRenderer(a.UniverInstanceType.UNIVER_DOC))==null?void 0:o.with($.DocSelectionRenderService);t&&t.sync()}))}_initSkeletonListener(e){const t=new Set(m.COMMAND_LISTENER_SKELETON_CHANGE);t.delete(m.SetWorksheetActiveOperation.id),e.add(this._commandService.onCommandExecuted(o=>{if(t.has(o.id)){switch(o.id){case m.MoveRowsMutation.id:case m.MoveColsMutation.id:case m.RemoveColMutation.id:case m.RemoveRowMutation.id:case m.InsertColMutation.id:case m.InsertRowMutation.id:{const i=this._editorBridgeService.getEditLocation();if(!i)break;const s={startRow:i.row,startColumn:i.column,endRow:i.row,endColumn:i.column},l=m.adjustRangeOnMutation(s,o);if(!l)break;const c=l.startRow,d=l.startColumn;this._editorBridgeService.updateEditLocation(c,d);break}}this._sheetCellEditorResizeService.resizeCellEditor(()=>{this._textSelectionManagerService.refreshSelection({unitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY})})}}))}_subscribeToCurrentCell(e){e.add(this._editorBridgeService.currentEditCellState$.subscribe(t=>{var b,R;if(t==null||this._editorBridgeService.isForceKeepVisible())return;const o=this._editorBridgeService.getEditCellState();if(o==null)return;const{position:i,documentLayoutObject:s,scaleX:l,editorUnitId:c}=o;if(this._contextService.getContextValue(a.FOCUSING_EDITOR_STANDALONE))return;const d=this._getDocumentDataModel();if(d==null)return;const{startX:u,endX:h}=i,{textRotation:g,wrapStrategy:S,documentModel:f}=s,{vertexAngle:p}=w.convertTextRotation(g);S===a.WrapStrategy.WRAP&&p===0&&d.updateDocumentDataPageSize((h-u)/l),this._commandService.syncExecuteCommand($.ReplaceSnapshotCommand.id,{unitId:c,snapshot:f.getSnapshot()}),this._contextService.setContextValue(a.FOCUSING_EDITOR_BUT_HIDDEN,!0),this._textSelectionManagerService.replaceDocRanges([{startOffset:0,endOffset:0}],{unitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY});const v=(b=this._renderManagerService.getRenderById(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY))==null?void 0:b.with($.DocSelectionRenderService),C=(R=this._renderManagerService.getRenderById(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))==null?void 0:R.with($.DocSelectionRenderService);(v!=null&&v.canFocusing||C!=null&&C.canFocusing)&&(this._univerInstanceService.setCurrentUnitForType(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),v==null||v.activate(sa,sa,!0))}))}_commandExecutedListener(e){e.add(this._commandService.onCommandExecuted(o=>{if(o.id===Re.RichTextEditingMutation.id){const i=o.params,{unitId:s}=i;if(!this._isCurrentSheetFocused()||vl(s)||(this._editorBridgeService.changeEditorDirty(!0),!this._editorBridgeService.isVisible().visible))return;s===a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY&&this._sheetCellEditorResizeService.fitTextSize()}}));const t=[zt.id];e.add(this._commandService.onCommandExecuted(o=>{if(t.includes(o.id)){const i=o.params,{keycode:s,isShift:l}=i;if(s!=null&&(this._cursorChange===2||this._contextService.getContextValue(a.FOCUSING_FX_BAR_EDITOR))){this._moveInEditor(s,l);return}this._commandService.syncExecuteCommand(Ce.id,i)}o.id===ho.id&&(this._cursorChange=2)}))}_handleEditorVisible(e){var S,f,p;const{eventType:t,keycode:o}=e;this._cursorChange=t===w.DeviceInputEventType.PointerDown||t===w.DeviceInputEventType.Dblclick?2:1;const i=this._editorBridgeService.getEditLocation();if(i==null)return;this._commandService.syncExecuteCommand(bs.id,{range:{startRow:i.row,startColumn:i.column,endRow:i.row,endColumn:i.column}}),this._editorBridgeService.refreshEditCellPosition(!1);const{unitId:s,isInArrayFormulaRange:l=!1}=i,c=this._getEditorObject();if(c==null)return;const{document:d,scene:u}=c;this._contextService.setContextValue(a.EDITOR_ACTIVATED,!0);const h=this._getDocumentDataModel(),g=this._getEditorSkeleton(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);if(!(!g||!h)){if(this._sheetCellEditorResizeService.fitTextSize(()=>{const v=u.getViewport($.VIEWPORT_KEY.VIEW_MAIN);v==null||v.scrollToViewportPos({viewportScrollX:Number.POSITIVE_INFINITY,viewportScrollY:Number.POSITIVE_INFINITY})}),t===w.DeviceInputEventType.Keyboard&&o===I.KeyCode.F2){d.makeDirty(),this._textSelectionManagerService.replaceDocRanges([{startOffset:0,endOffset:0}]);const v=((f=(S=h.getBody())==null?void 0:S.dataStream.length)!=null?f:2)-2;this._textSelectionManagerService.replaceDocRanges([{startOffset:v,endOffset:v}],{unitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY})}else if(t===w.DeviceInputEventType.Keyboard||t===w.DeviceInputEventType.Dblclick&&l)this._emptyDocumentDataModel(h.getSnapshot().documentStyle,!!l),d.makeDirty(),(o===I.KeyCode.BACKSPACE||t===w.DeviceInputEventType.Dblclick)&&(g.calculate(),this._editorBridgeService.changeEditorDirty(!0)),this._textSelectionManagerService.replaceDocRanges([{startOffset:0,endOffset:0}],{unitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY});else if(t===w.DeviceInputEventType.Dblclick){if(this._contextService.getContextValue(a.FOCUSING_EDITOR_INPUT_FORMULA))return;const v=h.getBody().dataStream.length-2||0;this._textSelectionManagerService.replaceDocRanges([{startOffset:v,endOffset:v}])}(p=this._renderManagerService.getRenderById(s))==null||p.scene.resetCursor()}}async _handleEditorInvisible(e){const t=this._editorBridgeService.getEditCellState(),o=this._univerInstanceService.getUnit(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),i=a.Tools.deepClone(o==null?void 0:o.getSnapshot());let{keycode:s}=e;if(this._cursorChange=0,this._exitInput(e),t==null)return;this._editorBridgeService.getEditorDirty()===!1&&(s=I.KeyCode.ESC);const d=this._context.unit.getActiveSheet(),u=this._context.unitId,h=d.getSheetId(),{unitId:g,sheetId:S}=t;if(u===g&&S!==h&&await this._commandService.executeCommand(m.SetWorksheetActivateCommand.id,{subUnitId:S,unitId:g}),s===I.KeyCode.ESC){this._editorBridgeService.isForceKeepVisible()&&this._editorBridgeService.disableForceKeepVisible();const f=this._workbookSelections.getCurrentSelections();f&&(this._contextService.setContextValue(m.REF_SELECTIONS_ENABLED,!1),this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:this._context.unit.getUnitId(),subUnitId:S,selections:f}));return}i&&await this._submitCellData(i),this._moveCursor(s)}_getEditorObject(){return Pr(this._editorBridgeService.getCurrentEditorId(),this._renderManagerService)}submitCellData(e){return this._submitCellData(e.getSnapshot())}async _submitCellData(e){const t=this._editorBridgeService.getEditCellState();if(t==null)return;const{unitId:o,sheetId:i,row:s,column:l}=t,c=this._context.unit;let d=c.getActiveSheet();if(!c.getSheetBySheetId(i))return;d=c.getActiveSheet();const h=qu({...d.getCellRaw(s,l)||{}},e,this._lexerTreeBuilder,this._localService,this._functionService,c.getStyles());if(!h)return;const g=await this._sheetInterceptorService.onWriteCell(c,d,s,l,h);g!==d.getCellRaw(s,l)&&this._commandService.executeCommand(m.SetRangeValuesCommand.id,{subUnitId:i,unitId:o,range:{startRow:s,startColumn:l,endRow:s,endColumn:l},value:g})}_exitInput(e){var i;this._contextService.setContextValue(a.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(a.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(a.FOCUSING_EDITOR_BUT_HIDDEN,!1),this._contextService.setContextValue(a.FOCUSING_FX_BAR_EDITOR,!1),this._cellEditorManagerService.setState({show:e.visible});const t=this._getEditorObject();(i=t==null?void 0:t.scene.getViewport($.VIEWPORT_KEY.VIEW_MAIN))==null||i.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0});const o=this._editorBridgeService.getCurrentEditorId();o==null||!this._editorService.isSheetEditor(o)||(this._undoRedoService.clearUndoRedo(o),this._undoRedoService.clearUndoRedo(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))}_moveCursor(e){if(e==null||!Hu.includes(e))return;let t=a.Direction.LEFT;switch(e){case I.KeyCode.ENTER:t=a.Direction.DOWN;break;case I.KeyCode.TAB:t=a.Direction.RIGHT;break;case I.KeyCode.ARROW_DOWN:t=a.Direction.DOWN;break;case I.KeyCode.ARROW_UP:t=a.Direction.UP;break;case I.KeyCode.ARROW_LEFT:t=a.Direction.LEFT;break;case I.KeyCode.ARROW_RIGHT:t=a.Direction.RIGHT;break}e===I.KeyCode.ENTER||e===I.KeyCode.TAB?this._commandService.executeCommand($e.id,{keycode:e,direction:t}):this._commandService.executeCommand(xe.id,{direction:t})}_cursorStateListener(e){const t=this._getEditorObject();if(!(t!=null&&t.document))return;const{document:o}=t;e.add(a.toDisposable(o.onPointerDown$.subscribeEvent(()=>{this._cursorChange===1&&(this._cursorChange=2)})))}_moveInEditor(e,t){let o=a.Direction.LEFT;e===I.KeyCode.ARROW_DOWN?o=a.Direction.DOWN:e===I.KeyCode.ARROW_UP?o=a.Direction.UP:e===I.KeyCode.ARROW_RIGHT&&(o=a.Direction.RIGHT),t?this._commandService.executeCommand($.MoveSelectionOperation.id,{direction:o}):this._commandService.executeCommand($.MoveCursorOperation.id,{direction:o})}_getDocumentDataModel(){return this._univerInstanceService.getUnit(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.UniverInstanceType.UNIVER_DOC)}_isCurrentSheetFocused(){var e;return((e=this._univerInstanceService.getFocusedUnit())==null?void 0:e.getUnitId())===this._context.unitId}_getEditorSkeleton(e){var t;return(t=this._renderManagerService.getRenderById(e))==null?void 0:t.with(Re.DocSkeletonManagerService).getSkeleton()}_getEditorViewModel(e){var t;return(t=this._renderManagerService.getRenderById(e))==null?void 0:t.with(Re.DocSkeletonManagerService).getViewModel()}_emptyDocumentDataModel(e,t){const o=(l,c)=>{const d=a.Tools.deepClone(l.getSnapshot()),u=this._getEditorViewModel(l.getUnitId());u!=null&&(Qu(d.body,t),c&&(d.documentStyle=e),d.drawings={},d.drawingsOrder=[],l.reset(d),u.reset(l))},i=this._getDocumentDataModel();i&&o(i,!0);const s=this._univerInstanceService.getUnit(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,a.UniverInstanceType.UNIVER_DOC);s&&o(s)}};exports.EditingRenderController=Ku([ye(1,a.Inject(m.SheetsSelectionsService)),ye(2,a.IUndoRedoService),ye(3,a.IContextService),ye(4,w.IRenderManagerService),ye(5,Se),ye(6,mo),ye(7,a.Inject(K.LexerTreeBuilder)),ye(8,K.IFunctionService),ye(9,a.Inject(Re.DocSelectionManagerService)),ye(10,a.ICommandService),ye(11,a.Inject(a.LocaleService)),ye(12,$.IEditorService),ye(13,a.Inject(exports.SheetCellEditorResizeService)),ye(14,a.IUniverInstanceService),ye(15,a.Inject(m.SheetInterceptorService))],exports.EditingRenderController);function qu(n,r,e,t,o,i){var h,g,S;if((r==null?void 0:r.body)==null)return null;const{body:s}=r;n.t=void 0;const l=s.dataStream;let d=l.substring(l.length-2,l.length)===a.DEFAULT_EMPTY_DOCUMENT_VALUE?l.substring(0,l.length-2):l;const u=t.getCurrentLocale();if(d=Bu(d,e,u,o),(h=r.drawingsOrder)!=null&&h.length)n.v="",n.f=null,n.si=null,n.p=r,n.t=a.CellValueType.STRING;else if(n.s&&Id.isTextFormat((S=(g=i==null?void 0:i.get(n.s))==null?void 0:g.n)==null?void 0:S.pattern)){n.v=d,n.f=null,n.si=null,n.p=null,n.t=a.CellValueType.STRING,zi(s)&&s.dataStream!==`\r
2
+ `&&(n.p=r);const f=aa(r);f&&(n.s=f)}else if(a.isFormulaString(d)){if(n.f===d)return null;const f=e.checkIfAddBracket(d);for(let p=0;p<f;p++)d+=K.matchToken.CLOSE_BRACKET;n.f=d,n.si=null,n.v=null,n.p=null}else if(Vu(d)){const f=Wu(d);n.v=f,n.f=null,n.si=null,n.p=null,n.t=a.CellValueType.FORCE_STRING}else if(zi(s))s.dataStream===`\r
3
+ `?(n.v="",n.f=null,n.si=null,n.p=null):(n.p=r,n.v=null,n.f=null,n.si=null);else{if(d===""&&n.v==null&&n.p==null)return null;n.v=d,n.f=null,n.si=null,n.p=null;const f=aa(r);f&&(n.s=f)}return n}function zi(n){const{textRuns:r=[],paragraphs:e=[],customRanges:t,customBlocks:o=[]}=n,i=n.dataStream.replace(/(\r\n)+$/,""),s=["va"];return r.filter(l=>l.st<i.length).some(l=>{var d;return!!(l.ts&&Object.keys(l.ts).some(u=>s.includes(u)))||Object.keys((d=l.ts)!=null?d:{}).length&&l.ed-l.st<i.length})||e.some(l=>l.bullet)||e.length>=2||!!(t!=null&&t.length)||o.length>0}function aa(n){const{body:r}=n;if(!r)return null;const{textRuns:e=[]}=r;let t={};const o=r.dataStream.replace(`\r
4
+ `,"");return e.forEach(i=>{const{st:s,ed:l,ts:c}=i;l-s>=o.length&&(t={...t,...c})}),Object.keys(t).length?t:null}function Qu(n,r=!1){n.dataStream=a.DEFAULT_EMPTY_DOCUMENT_VALUE,n.textRuns!=null&&(n.textRuns.length===1&&!r?(n.textRuns[0].st=0,n.textRuns[0].ed=1):n.textRuns=void 0),n.paragraphs!=null&&(n.paragraphs=[{startIndex:0}]),n.sectionBreaks!=null&&(n.sectionBreaks=void 0),n.tables!=null&&(n.tables=void 0),n.customRanges!=null&&(n.customRanges=void 0),n.customBlocks!=null&&(n.customBlocks=void 0)}var Ju=Object.getOwnPropertyDescriptor,$u=(n,r,e,t)=>{for(var o=t>1?void 0:t?Ju(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Kr=(n,r)=>(e,t)=>r(e,t,n);const la=ms.MARK_SELECTION,qt=a.createIdentifier("univer.mark-selection-service");exports.MarkSelectionService=class extends a.Disposable{constructor(e,t,o){super();E(this,"_shapeMap",new Map);this._currentService=e,this._renderManagerService=t,this._themeService=o}addShape(e,t=[],o=la){var d;const i=this._currentService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=(d=i.getActiveSheet())==null?void 0:d.getSheetId();if(!s)return null;const l=a.Tools.generateRandomId(),c={selection:e,subUnitId:s,unitId:i.getUnitId(),zIndex:o,control:null,exits:t};return this._shapeMap.set(l,c),this.refreshShapes(),l}addShapeWithNoFresh(e,t=[],o=la){var c;const i=this._currentService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=(c=i.getActiveSheet())==null?void 0:c.getSheetId();if(!s)return null;const l=a.Tools.generateRandomId();return this._shapeMap.set(l,{selection:e,subUnitId:s,unitId:i.getUnitId(),zIndex:o,control:null,exits:t}),l}refreshShapes(){var i;const e=this._currentService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!e)return;const t=e.getUnitId(),o=(i=e.getActiveSheet())==null?void 0:i.getSheetId();this._shapeMap.forEach(s=>{var R;const{unitId:l,subUnitId:c,selection:d,control:u,zIndex:h}=s;if(u==null||u.dispose(),l!==t||c!==o)return;const g=this._renderManagerService.getRenderById(l);if(!g)return;const S=(R=this._renderManagerService.withCurrentTypeOfUnit(a.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:R.getCurrentSkeleton();if(!S)return;const{scene:f}=g,{rowHeaderWidth:p,columnHeaderHeight:v}=S,C=new lo(f,h,this._themeService,{enableAutoFill:!1,highlightHeader:!1,rowHeaderWidth:p,columnHeaderHeight:v}),b=Me(d,S);C.updateRangeBySelectionWithCoord(b),s.control=C})}getShapeMap(){return this._shapeMap}removeShape(e){const t=this._shapeMap.get(e);if(!t)return;const{control:o}=t;o==null||o.dispose(),this._shapeMap.delete(e)}removeAllShapes(){for(const e of this._shapeMap.values()){const{control:t}=e;t==null||t.dispose()}this._shapeMap.clear()}};exports.MarkSelectionService=$u([Kr(0,a.IUniverInstanceService),Kr(1,w.IRenderManagerService),Kr(2,a.Inject(a.ThemeService))],exports.MarkSelectionService);function Cl(n){return{strokeWidth:1.5,stroke:n.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},strokeDash:8}}const eh=10,th=6;function nh(){return a.Tools.generateRandomId(th)}function oh(n){const r=n.match(/data-copy-id="([^\s]+)"/);return r&&r[1]?r[1]:null}class rh{constructor(){E(this,"_cache",new a.LRUMap(eh))}set(r,e){this._cache.set(r,e)}get(r){return this._cache.get(r)}del(r){this._cache.delete(r)}clear(){this._cache.clear()}clearWithUnitId(r){this._cache.forEach((e,t)=>{e.unitId===r&&this._cache.delete(t)})}}function rr(n,r){const e=r!=null?r:n.style,t={},o=n.tagName.toLowerCase();switch(o){case"b":case"em":case"strong":{t.bl=a.BooleanNumber.TRUE;break}case"s":{t.st={s:a.BooleanNumber.TRUE};break}case"u":{t.ul={s:a.BooleanNumber.TRUE};break}case"i":{t.it=a.BooleanNumber.TRUE;break}case"sub":case"sup":{t.va=o==="sup"?a.BaselineOffset.SUPERSCRIPT:a.BaselineOffset.SUBSCRIPT;break}}return ih(e,t),t}function ih(n,r){if(n instanceof CSSStyleDeclaration)for(let e=0;e<n.length;e++){const t=n[e],o=n.getPropertyValue(t);ca(t,o,r)}else for(const e in n){const t=n[e];ca(e,t,r)}}function ca(n,r,e){switch(n){case"font-family":e.ff=r;break;case"font-size":{const t=Number.parseInt(r);Number.isNaN(t)||(r.endsWith("pt")?e.fs=t:r.endsWith("px")&&(e.fs=t*.75));break}case"font-style":r==="italic"&&(e.it=a.BooleanNumber.TRUE);break;case"font-weight":{(Number(r)>400||r==="bold")&&(e.bl=a.BooleanNumber.TRUE);break}case"text-decoration":{/underline/.test(r)?e.ul={s:a.BooleanNumber.TRUE}:/overline/.test(r)?e.ol={s:a.BooleanNumber.TRUE}:/line-through/.test(r)&&(e.st={s:a.BooleanNumber.TRUE});break}case"color":{try{const t=new a.ColorKit(r);t.isValid&&(e.cl={rgb:t.toRgbString()})}catch{}break}case"background-color":{const t=new a.ColorKit(r),o=t.isValid?t.toRgbString():"";o!==I.DEFAULT_BACKGROUND_COLOR_RGB&&o!==I.DEFAULT_BACKGROUND_COLOR_RGBA&&(e.bg={rgb:o});break}}}function sh(n){const r=document.createElement("body");return r.innerHTML=n,r}function Il(n){const r=n.style,e={};for(let t=0;t<r.length;t++){const o=r[t],i=r.getPropertyValue(o);switch(o){case"margin-top":{const s=Number.parseInt(i);e.spaceAbove={v:/pt/.test(i)?w.ptToPixel(s):s};break}case"margin-bottom":{const s=Number.parseInt(i);e.spaceBelow={v:/pt/.test(i)?w.ptToPixel(s):s};break}case"line-height":{const s=Number.parseFloat(i);e.lineSpacing=s;break}}}return Object.getOwnPropertyNames(e).length?e:null}function qr(n,r){const e=[];for(let t=0,o=n.length;t<o;t++)n[t]===a.DataStreamTreeTokenType.PARAGRAPH&&e.push({startIndex:t});return e}function da(n,r,e){var s,l,c;const t=r.length,i=((s=e==null?void 0:e.length)!=null?s:0)===1&&e[0].st===0&&e[0].ed===t;return n.p?i&&((c=(l=n.p.body)==null?void 0:l.textRuns)!=null&&c.length)?(n.p.body.textRuns=[],{...n,s:e[0].ts}):n:i?{...n,s:e[0].ts}:n}const ua=["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 ha(n,r){const e=n.tagName.toLowerCase();return typeof r=="string"?e===r:Array.isArray(r)?r.some(t=>t===e):r(n)}const Mr=class Mr{constructor(r){E(this,"_styleMap",new Map);E(this,"_styleCache",new Map);E(this,"_styleRules",[]);E(this,"_afterProcessRules",[]);E(this,"_dom",null);E(this,"_getCurrentSkeleton");this._getCurrentSkeleton=r.getCurrentSkeleton}static use(r){if(this._pluginList.includes(r))throw new Error(`Univer paste plugin ${r.name} already added`);this._pluginList.push(r)}convert(r){const e=Mr._pluginList.find(p=>p.checkPasteType(r));e&&(this._styleRules=[...e.stylesRules],this._afterProcessRules=[...e.afterProcessRules]);const t=new a.ObjectMatrix;this._dom=sh(r);const o=this._dom.querySelector("style");if(o){const p=document.createElement("div"),v=p.attachShadow({mode:"open"});document.body.appendChild(p),v.appendChild(o);for(const C of o.sheet.cssRules){const b=C,R=b.selectorText,T=b.style;this._styleMap.set(R,T)}o.remove(),p.remove()}const i={dataStream:"",textRuns:[]},s=[],l=[],c=r.match(/<table\b[^>]*>([\s\S]*?)<\/table>/gi),d=[];this.process(null,this._dom.childNodes,i,d);const{paragraphs:u,dataStream:h,textRuns:g,payloads:S,customRanges:f}=i;if(u){const p=u.map(v=>v.startIndex+1);p.unshift(0);for(let v=0;v<p.length;v++){let C;if(v===p.length-1){if(C=`${h.substring(p[v])}\r
5
5
  `,C===`\r
6
6
  `)continue}else C=`${h.substring(p[v],p[v+1]-1)}\r
7
- `;const b=[];g==null||g.forEach(y=>{y.st>=p[v]&&y.ed<=p[v+1]&&b.push({st:y.st-p[v],ed:y.ed-p[v],ts:y.ts})});const R=[];f==null||f.forEach(y=>{y.startIndex>=p[v]&&y.endIndex<=p[v+1]&&R.push({...y,startIndex:y.startIndex-p[v],endIndex:y.endIndex-p[v]})});const T=this._generateDocumentDataModelSnapshot({body:{dataStream:C,textRuns:b,paragraphs:Gr(C),customRanges:R}}),M=Object.keys(t.getMatrix()).length===0;t.setValue(M?0:t.getLength(),0,{v:C,p:T}),s.push({})}}else if(h){const p=`${h}\r
8
- `,v={dataStream:p,textRuns:g,paragraphs:Gr(p),payloads:S,customRanges:f};if(!(f!=null&&f.length))t.setValue(0,0,aa({v:h},h,g));else{const C=this._generateDocumentDataModelSnapshot({body:v});t.setValue(0,0,aa({v:h,p:C},h,g))}s.push({})}return d&&d.forEach((p,v)=>{const C=t.getDataRange().endRow+1,{cellMatrix:b,rowProperties:R,colProperties:T}=this._parseTable(p,v);b&&b.forValue((M,y,P)=>{t.setValue(C+M,y,P)}),T&&l.push(...T),s.push(...R)}),this.dispose(),{rowProperties:s,colProperties:l,cellMatrix:t}}_getStyleBySelectorText(r,e){var o;const t=(o=this._styleMap.get(r))==null?void 0:o.getPropertyValue(e);return t||""}_getStyle(r,e){const t=da(e),o=r.style;let i="";for(let s=0;s<la.length;s++){const l=la[s];if(l==="background"){let c="";r.classList.forEach(h=>{c=this._getStyleBySelectorText(`.${h}`,"background-color")||this._getStyleBySelectorText(`.${h}`,l)});const u=o.getPropertyValue("background-color")||c||this._getStyleBySelectorText(`#${r.id}`,"background-color")||this._getStyleBySelectorText(`#${r.id}`,l)||this._getStyleBySelectorText(r.nodeName.toLowerCase(),l)||this._getStyleBySelectorText(r.nodeName,"background-color")||t["background-color"]||"";u&&(i+=`background:${u};`);continue}if(l==="text-decoration"){let c="";r.classList.forEach(h=>{c=this._getStyleBySelectorText(`.${h}`,"text-decoration-line")||this._getStyleBySelectorText(`.${h}`,l)});const u=o.getPropertyValue("text-decoration-line")||o.getPropertyValue("text-decoration")||c||this._getStyleBySelectorText(`#${r.id}`,"text-decoration-line")||this._getStyleBySelectorText(`#${r.id}`,l)||this._getStyleBySelectorText(r.nodeName.toLowerCase(),l)||this._getStyleBySelectorText(r.nodeName,"text-decoration-line")||t["text-decoration-line"]||"";u&&(i+=`text-decoration:${u};`);continue}let d="";r.classList.forEach(c=>{d=this._getStyleBySelectorText(`.${c}`,l)}),d=o.getPropertyValue(l)||this._getStyleBySelectorText(`#${r.id}`,l)||d||this._getStyleBySelectorText(r.nodeName.toLowerCase(),l)||t[l]||"",d&&(i+=`${l}:${d};`)}return i}_parseTable(r,e){var l,d;const t=new a.ObjectMatrix,o=(l=ih(r))!=null?l:[],{rowProperties:i=[]}=rh(r),s=this._parseTableByHtml(this._dom,e,(d=this._getCurrentSkeleton())==null?void 0:d.skeleton);return s&&s.forValue((c,u,h)=>{var f,p,v,C,b,R,T,M,y,P,x,A,k,N,D,W,H,U,B,F,L,z,X,Z;let g=I.handleStringToStyle(void 0,h.style);if((C=(v=(p=(f=h==null?void 0:h.richTextParma)==null?void 0:f.p)==null?void 0:p.body)==null?void 0:v.textRuns)!=null&&C.length){const oe=(R=(b=h==null?void 0:h.richTextParma)==null?void 0:b.v)==null?void 0:R.length;for(let Q=0;Q<((P=(y=(M=(T=h==null?void 0:h.richTextParma)==null?void 0:T.p)==null?void 0:M.body)==null?void 0:y.textRuns)==null?void 0:P.length);Q++){const ie=(k=(A=(x=h==null?void 0:h.richTextParma)==null?void 0:x.p)==null?void 0:A.body)==null?void 0:k.textRuns[Q];ie.st===0&&ie.ed===oe&&(g={...ie.ts,...g},(W=(D=(N=h==null?void 0:h.richTextParma)==null?void 0:N.p)==null?void 0:D.body)==null||W.textRuns.splice(Q,1),Q--)}((F=(B=(U=(H=h==null?void 0:h.richTextParma)==null?void 0:H.p)==null?void 0:U.body)==null?void 0:B.textRuns)==null?void 0:F.length)===0&&(h.content=(L=h==null?void 0:h.richTextParma)==null?void 0:L.v,delete h.richTextParma)}const S=(Z=(X=(z=h==null?void 0:h.richTextParma)==null?void 0:z.p)==null?void 0:X.body)!=null&&Z.textRuns?{v:h.richTextParma.v,p:h.richTextParma.p,s:g,rowSpan:h.rowSpan,colSpan:h.colSpan}:{v:h.content,s:g,rowSpan:h.rowSpan,colSpan:h.colSpan};t.setValue(c,u,S)}),{rowProperties:i,colProperties:o,cellMatrix:t}}_parseTableByHtml(r,e,t){var d,c;const o=new a.ObjectMatrix,i=r.querySelectorAll("table")[e];if(!i)return o;const s=this._getStyle(i,""),l=i==null?void 0:i.querySelectorAll("tr");for(let u=0;u<l.length;u++){const h=l[u],g=this._getStyle(h,s),S=h.querySelectorAll("td, th");let f=0;for(let p=0;p<S.length;){const v=S[p];let C="";const b=Number(v.getAttribute("rowSpan"))||1,R=Number(v.getAttribute("colSpan"))||1;if(C=this._getStyle(v,g),u>0){const P=o.getValue(u-1,f);if((d=P==null?void 0:P.style)!=null&&d.includes("border-bottom")&&C.includes("border-top")){const x=ua(P.style,"border-bottom");x&&I.textTrim(x.substr(x.indexOf(":")+1))!=="none"&&(C=C.replace(/border-top:[^;]+;/,""))}}if(p>0){const P=o.getValue(u,f-1);if((c=P==null?void 0:P.style)!=null&&c.includes("border-right")&&C.includes("border-left")){const x=ua(P.style,"border-right");x&&I.textTrim(x.substr(x.indexOf(":")+1))!=="none"&&(C=C.replace(/border-left:[^;]+;/,""))}}const{cellText:T,cellRichStyle:M}=this._getCellTextAndRichText(v,C,t),y={rowSpan:b,colSpan:R,content:T,style:C,richTextParma:{p:M,v:T}};if(o.getValue(u,f)){f+=1;continue}else b>1||R>1?ah(o,C,y,{colSpan:R,rowSpan:b,rowIndex:u,colSetValueIndex:f}):o.setValue(u,f,y),f+=R,p++}}return o}_parseCellHtml(r,e,t,o=new Map,i){var s;for(const l of e)if(l.nodeType===Node.TEXT_NODE){const d=(s=l.nodeValue)==null?void 0:s.replace(/[\r\n]/g,"");let c;r&&o.has(r)&&(c=o.get(r)),t.dataStream+=d,c&&Object.getOwnPropertyNames(c).length&&t.textRuns.push({st:t.dataStream.length-d.length,ed:t.dataStream.length,ts:c})}else{if(l.nodeType===Node.COMMENT_NODE||l.nodeName==="STYLE")continue;if(l.nodeType===Node.ELEMENT_NODE){const d=this._getStyle(l,i),c=r?o.get(r):{},u=da(d),h=tr(l,u);o.set(l,{...c,...h});const{childNodes:g}=l;this._parseCellHtml(l,g,t,o,d)}}}_getCellTextAndRichText(r,e,t){var l;let o="",i;if(/<[^>]+>/.test(r.innerHTML)&&t){const d={dataStream:"",textRuns:[]};this._parseCellHtml(null,r.childNodes,d,void 0,e);const c=(l=t.getBlankCellDocumentModel())==null?void 0:l.documentModel,u=c==null?void 0:c.getSnapshot(),h=`${d.dataStream}\r
9
- `,g={...u,body:{dataStream:h,textRuns:d.textRuns,paragraphs:Gr(h)}};c==null||c.reset(g),i=c==null?void 0:c.getSnapshot(),o=d.dataStream}else o=sh(r.innerHTML.replace(/[\r\n]/g,""));return{cellText:o,cellRichStyle:i}}_generateDocumentDataModelSnapshot(r){var l;const e=this._getCurrentSkeleton();if(e==null)return null;const{skeleton:t}=e,o=(l=t.getBlankCellDocumentModel())==null?void 0:l.documentModel,s={...o==null?void 0:o.getSnapshot(),...r};return o==null||o.reset(s),o==null?void 0:o.getSnapshot()}process(r,e,t,o){var i,s,l;for(const d of e)if(d.nodeName.toLowerCase()==="table")o.push({index:((i=t==null?void 0:t.paragraphs)==null?void 0:i.length)||0});else if(d.nodeType===Node.TEXT_NODE){if(((s=d.nodeValue)==null?void 0:s.trim())==="")continue;const c=(l=d.nodeValue)==null?void 0:l.replace(/[\r\n]/g,"");let u;r&&this._styleCache.has(r)&&(u=this._styleCache.get(r));const h={dataStream:"",textRuns:[]};t.dataStream+=c,h.dataStream+=c,u&&Object.getOwnPropertyNames(u).length&&(t.textRuns.push({st:t.dataStream.length-c.length,ed:t.dataStream.length,ts:u}),h.textRuns.push({st:t.dataStream.length-c.length,ed:t.dataStream.length,ts:u}))}else{if(a.skipParseTagNames.includes(d.nodeName.toLowerCase()))continue;if(d.nodeName.toLowerCase()==="br")t.paragraphs||(t.paragraphs=[]),t.paragraphs.push({startIndex:t.dataStream.length}),t.dataStream+="\r";else if(d.nodeType===Node.ELEMENT_NODE){if(d.nodeName==="STYLE")continue;const c=d,u=this._processBeforeLink(c,{body:t}),h=r?this._styleCache.get(r):{},g=this._styleRules.find(({filter:v})=>ca(d,v)),S=g?g.getStyle(d):tr(d);this._styleCache.set(d,{...h,...S});const{childNodes:f}=d;this.process(d,f,t,o);const p=this._afterProcessRules.find(({filter:v})=>ca(d,v));p&&p.handler(t,d),this._processAfterLink(c,{body:t},u)}}}_processBeforeLink(r,e){return e.body.dataStream.length}_processAfterLink(r,e,t){var s,l;const o=e.body,i=r;i.tagName.toUpperCase()==="A"&&(o.customRanges=(s=o.customRanges)!=null?s:[],o.customRanges.push({startIndex:t,endIndex:o.dataStream.length-1,rangeId:(l=i.dataset.rangeid)!=null?l:a.generateRandomId(),rangeType:a.CustomRangeType.HYPERLINK,properties:{url:i.href}}))}dispose(){this._dom=null,this._styleCache.clear(),this._styleMap.clear()}};E(Er,"_pluginList",[]);let yn=Er;function rh(n){const r=/<tr([\s\S]*?)>([\s\S]*?)<\/tr>/gi,e=n.matchAll(r);if(!e)return{rowProperties:[],rowCount:0};const o=Array.from(e).map(i=>vl(i[1])).map(i=>{if(!i.height){const s=i.style,l=s&&s.match(/height\s*:\s*(\d+(\.\d+)?)px/);i.height=`${l?Number.parseInt(l[1],10):a.DEFAULT_WORKSHEET_ROW_HEIGHT}`}return i});return{rowProperties:o,rowCount:o.length}}function da(n){const r={};return n.split(";").forEach(t=>{const[o,i]=t.split(":");r[o]=i}),r}function vl(n){if(!n)return{};const r={},e=/([\w-]+)\s*=\s*(?:(['"])([^'"]*)\2|(\S+))/g;let t;for(;(t=e.exec(n))!==null;){const[,o,,i,s]=t,l=i!==void 0?i:s;r[o]=l}return r}function ih(n){const r=/<colgroup([\s\S]*?)>(.*?)<\/colgroup>/,e=n.match(r),t=/<col([\s\S]*?)>/g;let o;if(e!=null&&e[2]?o=e[2].matchAll(t):o=n.matchAll(t),!o)return null;const i=Array.from(o).map(l=>vl(l[1])),s=[];return i.forEach(l=>{const d=Number(l.span);if(d)for(let c=0;c<d;c++){const u={...l};delete u.span,s.push(u)}else s.push(l)}),s}function sh(n){const r={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&#39;":"'","&nbsp;":" "};return n.replace(/&lt;|&gt;|&amp;|&quot;|&#39;|&nbsp;|<br>/g,e=>r[e])}function ua(n,r){if(!n||!r)return null;const e=new RegExp(`(${r}\\s*:\\s*[^;]+);`,"i"),t=n.match(e);return t?t[1]:null}function ah(n,r,e,t){const{rowSpan:o,colSpan:i,rowIndex:s,colSetValueIndex:l}=t;for(let d=s;d<s+o;d++)for(let c=l;c<l+i;c++)d===s&&c===l?n.setValue(d,c,{...e,style:r}):n.setValue(d,c,{style:r})}const lh={name:"univer-doc-paste-plugin-lark",checkPasteType(n){return/lark-record-clipboard/i.test(n)},stylesRules:[{filter:["s"],getStyle(n){const r=tr(n);return{st:{s:a.BooleanNumber.TRUE},...r}}}],afterProcessRules:[{filter(n){return n.tagName==="DIV"&&/ace-line/i.test(n.className)},handler(n){n.paragraphs==null&&(n.paragraphs=[]),n.paragraphs.push({startIndex:n.dataStream.length}),n.dataStream+="\r"}}]},ch={name:"univer-doc-paste-plugin-univer",checkPasteType(n){return/UniverNormal/i.test(n)},stylesRules:[],afterProcessRules:[{filter(n){return n.tagName==="P"&&/UniverNormal/i.test(n.className)},handler(n,r){n.paragraphs==null&&(n.paragraphs=[]);const e={startIndex:n.dataStream.length},t=pl(r);t&&(e.paragraphStyle=t),n.paragraphs.push(e),n.dataStream+="\r"}}]},dh={name:"univer-doc-paste-plugin-word",checkPasteType(n){return/word|mso/i.test(n)},stylesRules:[{filter:["b"],getStyle(n){const r=tr(n);return{bl:a.BooleanNumber.TRUE,...r}}}],afterProcessRules:[{filter(n){return n.tagName==="P"&&/mso/i.test(n.className)},handler(n,r){n.paragraphs==null&&(n.paragraphs=[]);const e={startIndex:n.dataStream.length},t=pl(r);t&&(e.paragraphStyle=t),n.paragraphs.push(e),n.dataStream+="\r"}}]};var Ct=(n=>(n.COPY="COPY",n.CUT="CUT",n))(Ct||{});function uh(n,r,e,t,o){const i=e.map(c=>{var u;return(u=c.onCopyRow)==null?void 0:u.call(c,n)}).filter(c=>!!c),s=bs(i),l=Rs(s),d=r.map(c=>{if(!o.has(`${n}-${c}`)){const u=t.getValue(n,c);if(u!=null&&u.rowSpan&&(u!=null&&u.colSpan))for(let h=n;h<n+u.rowSpan;h++)for(let g=c;g<c+u.colSpan;g++)o.add(`${h}-${g}`);return hh(n,c,e,t)}return null}).filter(c=>!!c).join("");return`<tr${l}>${d}</tr>`}function hh(n,r,e,t){const o=t.getValue(n,r),i=e.map(c=>{var u;return(u=c.onCopyCellStyle)==null?void 0:u.call(c,n,r,o==null?void 0:o.rowSpan,o==null?void 0:o.colSpan)}).filter(c=>!!c),s=bs(i),l=Rs(s),d=e.reduce((c,u)=>{var h;return c||((h=u.onCopyCellContent)==null?void 0:h.call(u,n,r))||""},"");return`<td${l}>${d}</td>`}function mh(n,r){return`<colgroup>${n.map(t=>{const o=r.map(l=>{var d;return(d=l.onCopyColumn)==null?void 0:d.call(l,t)}).filter(l=>!!l),i=bs(o);return`<col ${Rs(i)}>`}).join("")}</colgroup>`}function bs(n){return n.reduce((r,e)=>(Object.keys(e).forEach(o=>{r[o]?r[o]+=`;${e[o]}`:r[o]=e[o]}),r),{})}function Rs(n){return Object.keys(n).reduce((r,e)=>(r+=` ${e}="${n[e]}"`,r),"")}class gh{convert(r,e,t){const{cols:o,rows:i}=e;if(!o.length)return"";const s=mh(o,t),l=[],d=new Set;return i.forEach(u=>{l.push(uh(u,o,t,r,d))}),`<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">${s}
10
- <tbody>${l.join("")}</tbody></table>`}}const Sh=(n,r,e=!1)=>{const t=h=>h.endRow-h.startRow+1,o=h=>h.endColumn-h.startColumn+1,i=t(r)%t(n),s=o(r)%o(n),l={startRow:0,endRow:t(n)-1,startColumn:0,endColumn:o(n)-1},d=Math.floor(t(r)/t(n)),c=Math.floor(o(r)/o(n)),u=[];if(!i&&!s)for(let h=1;h<=d;h++)for(let g=1;g<=c;g++){const S=t(n)*(h-1),f=o(n)*(g-1),p={startRow:S+r.startRow,endRow:S+r.startRow,startColumn:f+r.startColumn,endColumn:f+r.startColumn};u.push({repeatRelativeRange:l,startRange:p})}else if(!i&&s&&!e)for(let h=1;h<=d;h++){const g=t(n)*(h-1),S=0,f={startRow:g+r.startRow,endRow:g+r.startRow,startColumn:S+r.startColumn,endColumn:S+r.startColumn};u.push({repeatRelativeRange:l,startRange:f})}else if(i&&!s&&!e)for(let h=1;h<=c;h++){const S=o(n)*(h-1),f={startRow:0+r.startRow,endRow:0+r.startRow,startColumn:S+r.startColumn,endColumn:S+r.startColumn};u.push({repeatRelativeRange:l,startRange:f})}else{const h={startRow:r.startRow,endRow:r.startRow,startColumn:r.startColumn,endColumn:r.startColumn};u.push({startRange:h,repeatRelativeRange:l})}return u};function ha(n){return n?[/<td[^>]*class=".*?xl.*?"[^>]*>/i,/xmlns:x="urn:schemas-microsoft-com:office:excel"/i,/ProgId="Excel.Sheet"/i,/xmlns:o="urn:schemas-microsoft-com:office:office"/i,/@mso-|mso-excel/i,/<x:ExcelWorkbook>/i].some(e=>e.test(n)):!1}function fh(...n){if(n.length===1)return n[0];const r=new a.ObjectMatrix;return n.forEach(e=>{e&&new a.ObjectMatrix(e).forValue((o,i,s)=>{r.setValue(o,i,{...r.getValue(o,i),...s})})}),r.getMatrix()}function ph(n,r){return n.id===r.id&&n.params.unitId===r.params.unitId&&n.params.subUnitId===r.params.subUnitId}function ji(n){const r=[];for(let e=0;e<n.length;){let t=1;if(n[e].id===m.SetRangeValuesMutation.id){const o=n[e],i=[o];for(;e+t<n.length&&ph(o,n[e+t]);)i.push(n[e+t]),t+=1;const s=fh(...i.map(l=>l.params.cellValue||{}));r.push({...o,params:{...o.params,cellValue:s}})}else r.push(n[e]);e+=t}return r}function Zr(n,r){const{startRow:e,endRow:t,startColumn:o,endColumn:i}=n;for(let s=e;s<=t;s++)for(let l=o;l<=i;l++)if(r.rows.includes(s)&&r.cols.includes(l))return!0}function ma(n,r){const{startRow:e,endRow:t,startColumn:o,endColumn:i}=r;for(let s=e;s<=t;s++)if(!n.rows.includes(s))return!1;for(let s=o;s<=i;s++)if(!n.cols.includes(s))return!1;return!0}function vh(n){const r=n.trim().split(`
11
- `);let e="<table>";return r.forEach(t=>{const o=t.split(" ");e+="<tr>",o.forEach(i=>{e+=`<td>${i}</td>`}),e+="</tr>"}),e+="</table>",e}var Ch=Object.getOwnPropertyDescriptor,Ih=(n,r,e,t)=>{for(var o=t>1?void 0:t?Ch(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Oe=(n,r)=>(e,t)=>r(e,t,n);const ge={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"},_h={[I.FILE_PNG_CLIPBOARD_MIME_TYPE]:"png",[I.FILE__JPEG_CLIPBOARD_MIME_TYPE]:"jpg",[I.FILE__WEBP_CLIPBOARD_MIME_TYPE]:"webp",[I.FILE__BMP_CLIPBOARD_MIME_TYPE]:"bmp"};yn.use(dh);yn.use(lh);yn.use(ch);const Be=a.createIdentifier("sheet.clipboard-service");exports.SheetClipboardService=class extends a.Disposable{constructor(e,t,o,i,s,l,d,c,u,h,g,S,f,p){super();E(this,"_clipboardHooks",[]);E(this,"_clipboardHooks$",new O.BehaviorSubject([]));E(this,"clipboardHooks$",this._clipboardHooks$.asObservable());E(this,"_htmlToUSM");E(this,"_usmToHtml");E(this,"_copyContentCache");E(this,"_copyMarkId",null);E(this,"_pasteOptionsCache$",new O.BehaviorSubject(null));E(this,"pasteOptionsCache$",this._pasteOptionsCache$.asObservable());E(this,"_showMenu$",new O.BehaviorSubject(!1));E(this,"showMenu$",this._showMenu$.asObservable());this._logService=e,this._univerInstanceService=t,this._selectionManagerService=o,this._clipboardInterfaceService=i,this._undoRedoService=s,this._commandService=l,this._markSelectionService=d,this._notificationService=c,this._platformService=u,this._renderManagerService=h,this._themeService=g,this._localeService=S,this._errorService=f,this._injector=p,this._htmlToUSM=new yn({getCurrentSkeleton:()=>{var v;return(v=this._renderManagerService.withCurrentTypeOfUnit(a.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:v.getCurrentParam()}}),this._usmToHtml=new gh,this._copyContentCache=new th,this.disposeWithMe(this._htmlToUSM),this._initUnitDisposed()}setShowMenu(e){this._showMenu$.next(e)}getPasteMenuVisible(){return this._showMenu$.getValue()}getPasteOptionsCache(){return this._pasteOptionsCache$.getValue()}copyContentCache(){return this._copyContentCache}generateCopyContent(e,t,o){return this._generateCopyContent(e,t,o,this._clipboardHooks)}async copy(e=Ct.COPY){const t=this._selectionManagerService.getCurrentLastSelection();if(!t)return!1;const o=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),i=o.getActiveSheet();if(!i)return!1;const s=this._clipboardHooks,l=o.getUnitId(),d=i.getSheetId();s.forEach(v=>{var C;return(C=v.onBeforeCopy)==null?void 0:C.call(v,l,d,t.range,e)});const c=this.generateCopyContent(l,d,t.range);if(s.forEach(v=>{var C;return(C=v.onAfterCopy)==null?void 0:C.call(v)}),!c)return!1;const{html:u,plain:h,matrixFragment:g,copyId:S,discreteRange:f}=c;this._copyContentCache.set(S,{unitId:o.getUnitId(),subUnitId:i.getSheetId(),range:f,matrix:g,copyType:e}),await this._clipboardInterfaceService.write(h,u),this._markSelectionService.removeAllShapes();const p=fl(this._themeService);return this._copyMarkId=this._markSelectionService.addShape({...t,style:p}),!0}async cut(){return this.copy(Ct.CUT)}async paste(e,t=ge.DEFAULT_PASTE){const o=e.types,i=o.indexOf(I.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await e.getType(I.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(c=>c&&c.text()):"",s=o.indexOf(I.HTML_CLIPBOARD_MIME_TYPE)!==-1?await e.getType(I.HTML_CLIPBOARD_MIME_TYPE).then(c=>c&&c.text()):"",l=ha(s),d=o.findIndex(c=>I.imageMimeTypeSet.has(c));if(d!==-1&&!l){const c=o[d],u=await e.getType(c);if(u){const h=new File([u],`clipboard-image.${_h[c]}`,{type:c});return this._pasteFiles([h],t)}}return s?(this._platformService.isWindows&&l&&this._notificationService.show({type:"warning",title:this._localeService.t("clipboard.shortCutNotify.title"),content:this._localeService.t("clipboard.shortCutNotify.useShortCutInstead")}),this._pasteHTML(s,t)):i?this._pastePlainText(i,t):(this._logService.error("[SheetClipboardService]","No valid data on clipboard"),!1)}async legacyPaste(e,t,o){const i=ha(e!=null?e:"");return o&&!i?this._pasteFiles(o,ge.DEFAULT_PASTE):e?this._pasteHTML(e,ge.DEFAULT_PASTE):t?/[\n\t]/.test(t)?this._pasteHTML(vh(t),ge.DEFAULT_PASTE):this._pastePlainText(t,ge.DEFAULT_PASTE):this._pasteUnrecognized()}rePasteWithPasteType(e){const t=this._pasteOptionsCache$.getValue();if(!t)return!1;const o=this._injector.get(a.IUndoRedoService),i=o.pitchTopUndoElement();i&&a.sequenceExecute(i.undoMutations,this._commandService)&&o.popUndoToRedo();const{cellMatrix:s,rowProperties:l=[],colProperties:d=[],source:c,target:u}=t;return this._pasteUSM({cellMatrix:s,colProperties:d,rowProperties:l},u,ge[e],c),!0}updatePasteOptionsCache(e){this._pasteOptionsCache$.next(e)}addClipboardHook(e){if(this._clipboardHooks.findIndex(o=>o.id===e.id)!==-1)return this._logService.error("[SheetClipboardService]","hook already exists",e.id),{dispose:()=>{}};const t=this._clipboardHooks.findIndex(o=>{const i=o.priority||0;return(e.priority||0)<i});return this._clipboardHooks.splice(t!==-1?t:this._clipboardHooks.length,0,e),this._notifyClipboardHook(),a.toDisposable(()=>{const o=this._clipboardHooks.indexOf(e);o>-1&&(this._clipboardHooks.splice(o,1),this._notifyClipboardHook())})}getClipboardHooks(){return this._clipboardHooks}_generateCopyContent(e,t,o,i){const s=this._univerInstanceService.getUniverSheetInstance(e),l=s==null?void 0:s.getSheetBySheetId(t);if(!s||!l)return null;const d=i.reduce((M,y)=>{var x;const P=(x=y.getFilteredOutRows)==null?void 0:x.call(y,o);return P==null||P.forEach(A=>M.add(A)),M},new Set),{startColumn:c,startRow:u,endColumn:h,endRow:g}=o,S=l.getMatrixWithMergedCells(u,c,g,h,a.CellModeEnum.Both),f=new a.ObjectMatrix;let p=u;const v=new a.ObjectMatrix,C={rows:[],cols:[]};for(let M=u;M<=g;M++)if(!d.has(M)){C.rows.push(M);for(let y=c;y<=h;y++){const P=S.getValue(M,y);if(P){const x=a.Tools.deepClone(P);v.setValue(p-u,y-c,{...Bn(),...x}),delete x.displayV,f.setValue(p-u,y-c,{...Bn(),...x})}else v.setValue(p-u,y-c,Bn()),f.setValue(p-u,y-c,Bn()),S.setValue(M,y,Bn())}p+=1}for(let M=c;M<=h;M++)C.cols.push(M);let b=this._usmToHtml.convert(S,C,i);const R=Cl(v),T=$u();return b=b.replace(/(<[a-z]+)/,(M,y)=>`${y} data-copy-id="${T}"`),{copyId:T,plain:R,html:b,matrixFragment:f,discreteRange:C}}_notifyClipboardHook(){this._clipboardHooks$.next(this._clipboardHooks)}async _executePaste(e){const t=this._getPastingTarget();if(!t.subUnitId||!t.selection)return!1;const o=this._injector.invoke(S=>Sn(t.selection.range,S,t.unitId,t.subUnitId));if(!o)return!1;const{unitId:i,subUnitId:s}=t,l=this._clipboardHooks,d=[];if(l.some(S=>{var f;return d.push(S)&&((f=S.onBeforePaste)==null?void 0:f.call(S,{unitId:i,subUnitId:s,range:o}))===!1}))return d.forEach(S=>{var f;return(f=S.onAfterPaste)==null?void 0:f.call(S,!1)}),!1;const u=[],h=[];d.forEach(S=>{const f=e(S,{unitId:i,subUnitId:s,range:o});f&&(u.push(...f.redos),h.push(...f.undos))});const g=u.every(S=>this._commandService.executeCommand(S.id,S.params));return g&&this._undoRedoService.pushUndoRedo({unitID:this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId(),undoMutations:h,redoMutations:u}),g}async _pasteFiles(e,t){return this._executePaste((o,i)=>{var s;return(s=o.onPasteFiles)==null?void 0:s.call(o,i,e,{pasteType:t})})}async _pastePlainText(e,t){return this._executePaste((o,i)=>{var s;return(s=o.onPastePlainText)==null?void 0:s.call(o,i,e,{pasteType:t})})}_pasteUnrecognized(){return this._executePaste((e,t)=>{var o;return(o=e.onPasteUnrecognized)==null?void 0:o.call(e,t)})}async _pasteHTML(e,t){const o=eh(e);return o&&this._copyContentCache.get(o)?this._pasteInternal(o,t):this._pasteExternal(e,t)}async _pasteExternal(e,t){var h;const{rowProperties:o,colProperties:i,cellMatrix:s}=this._htmlToUSM.convert(e);if(!s)return!1;const l=this._getPastedRange(s);if(!l)return!1;const d=(h=this._univerInstanceService.getUniverSheetInstance(l.unitId))==null?void 0:h.getSheetBySheetId(l.subUnitId);if(!d)return!1;const c=d==null?void 0:d.getMergeData();return c.length&&c.some(S=>Zr(S,l.pastedRange)&&!ma(l.pastedRange,S))?(this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1):this._pasteUSM({rowProperties:o,colProperties:i,cellMatrix:s},l,t)}async _pasteInternal(e,t){var y,P;const o=a.Tools.deepClone(this._copyContentCache.get(e)),{range:i,matrix:s,unitId:l,subUnitId:d}=o||{};if(!s||!o||!i||!l||!d||!s||!o)return!1;const c=(y=this._univerInstanceService.getUniverSheetInstance(l))==null?void 0:y.getStyles();s.forValue((x,A,k)=>{if(typeof k.s=="string"){const N=a.Tools.deepClone(k);N.s=c==null?void 0:c.getStyleByCell(k),s.setValue(x,A,N)}if(k.colSpan||k.rowSpan)for(let N=0;N<k.rowSpan;N++)for(let D=0;D<k.colSpan;D++){if(N===0&&D===0)continue;const W=x+N,H=A+D;s.setValue(W,H,{s:c==null?void 0:c.getStyleByCell(k)})}});const u=this._getPastedRange(s);if(!u)return!1;const h=(P=this._univerInstanceService.getUniverSheetInstance(u.unitId))==null?void 0:P.getSheetBySheetId(u.subUnitId);if(!h)return!1;const g=h==null?void 0:h.getMergeData();if(g&&g.some(A=>Zr(A,u.pastedRange)&&!ma(u.pastedRange,A)))return this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1;const S=this._univerInstanceService.getUnit(l);if(!S)return!1;const f=S.getSheetBySheetId(d);if(!f)return!1;const p=f.getColumnManager(),v=f.getRowManager(),C=f.getConfig().defaultColumnWidth,b=f.getConfig().defaultRowHeight,R=[],T=[];if(i.cols.forEach(x=>{const A=p.getColumnOrCreate(x);R.push({width:`${A.w||C}`})}),i.rows.forEach(x=>{const A=v.getRowOrCreate(x),{ah:k=b,h:N=b}=A,D=Math.max(k,N);T.push({height:`${D}`})}),o.copyType===Ct.CUT){const x=u.pastedRange.rows[0],A=i.rows[i.rows.length-1]-i.rows[0]+x;u.pastedRange.rows=Array.from(new Array(A+1).keys()).slice(x)}const M=this._pasteUSM({cellMatrix:s,colProperties:R,rowProperties:T},u,t,{range:i,unitId:o.unitId,subUnitId:o.subUnitId,copyType:o.copyType,copyId:e});return o.copyType===Ct.CUT&&(this._copyContentCache.set(e,{...o,matrix:null}),this._copyMarkId&&this._markSelectionService.removeShape(this._copyMarkId),this._copyMarkId=null),M}_pasteUSM(e,t,o,i){const{rowProperties:s,colProperties:l,cellMatrix:d}=e,{unitId:c,subUnitId:u,pastedRange:h}=t,g=h.cols.length,S=this._clipboardHooks,f=[];if(S.some(P=>{var x;return f.push(P)&&((x=P.onBeforePaste)==null?void 0:x.call(P,{unitId:c,subUnitId:u,range:h}))===!1}))return f.forEach(P=>{var x;return(x=P.onAfterPaste)==null?void 0:x.call(P,!1)}),!1;if(!d)return!1;const v=i?{unitId:i.unitId,subUnitId:i.subUnitId,range:i.range}:null,C={copyType:(i==null?void 0:i.copyType)||Ct.COPY,copyId:i==null?void 0:i.copyId,pasteType:o};let b=[],R=[];const T=f.filter(P=>!P.specialPasteInfo&&P.id!==ge.DEFAULT_PASTE||o===P.id);T.forEach(P=>{var k,N,D;if(s){const W=(k=P.onPasteRows)==null?void 0:k.call(P,{range:h,unitId:c,subUnitId:u},s,{pasteType:o});W&&(b.push(...W.redos),R.push(...W.undos))}const x=(N=P.onPasteColumns)==null?void 0:N.call(P,{range:h,unitId:c,subUnitId:u},l||new Array(g).map(()=>({})),{pasteType:o});x&&(b.push(...x.redos),R.push(...x.undos));const A=(D=P.onPasteCells)==null?void 0:D.call(P,v,{range:h,unitId:c,subUnitId:u},d,C);A&&(b.push(...A.redos),R.push(...A.undos))});const M=this._getSetSelectionOperation(c,u,h,d,o);M&&b.push(M),b=ji(b),R=ji(R),R.push({id:m.SetWorksheetActiveOperation.id,params:{unitId:t.unitId,subUnitId:t.subUnitId}}),this._logService.log("[SheetClipboardService]","pasting mutations",{undoMutationsInfo:R,redoMutationsInfo:b});const y=b.every(P=>this._commandService.syncExecuteCommand(P.id,P.params));return y&&(this._undoRedoService.pushUndoRedo({unitID:c,undoMutations:R,redoMutations:b}),this.updatePasteOptionsCache({target:{pastedRange:h,unitId:c,subUnitId:u},cellMatrix:d,rowProperties:s,colProperties:l,pasteType:o,source:i}),this.setShowMenu(!0)),T.forEach(P=>{var x;return(x=P.onAfterPaste)==null?void 0:x.call(P,y)}),y}_getSetSelectionOperation(e,t,o,i,s){var M;const l=(M=this._univerInstanceService.getUniverSheetInstance(e))==null?void 0:M.getSheetBySheetId(t);if(!l)return null;const{rows:d,cols:c}=o,u=d[0],h=c[0],g=d[d.length-1],S=c[c.length-1],f={startRow:u,endRow:u,startColumn:h,endColumn:h},p=m.getPrimaryForRange(f,l),v=i.getValue(0,0),C=(v==null?void 0:v.rowSpan)||1,b=(v==null?void 0:v.colSpan)||1;if((s===ge.DEFAULT_PASTE||s===ge.SPECIAL_PASTE_BESIDES_BORDER||s===ge.SPECIAL_PASTE_FORMAT)&&(C>1||b>1)){const y={startRow:u,endRow:u+C-1,startColumn:h,endColumn:h+b-1};p.startRow=y.startRow,p.endRow=y.endRow,p.startColumn=y.startColumn,p.endColumn=y.endColumn,p.isMerged=!0,p.isMergedMainCell=!0}const T={unitId:e,subUnitId:t,selections:[{range:{startRow:u,endRow:g,startColumn:h,endColumn:S},primary:p,style:null}]};return{id:m.SetSelectionsOperation.id,params:T}}_getPastingTarget(){const e=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),t=e.getActiveSheet(),o=this._selectionManagerService.getCurrentLastSelection();return{unitId:e.getUnitId(),subUnitId:t==null?void 0:t.getSheetId(),selection:o}}_transformPastedData(e,t,o){const i=this._getPastingTarget(),{selection:s,unitId:l,subUnitId:d}=i;if(!d||!s)return null;const c=this._injector.invoke(N=>Sn(s.range,N,l,d));if(!c)return null;const{ranges:[u],mapFunc:h}=qt([c]),{startRow:g,startColumn:S,endRow:f,endColumn:p}=u,v=f-g+1,C=p-S+1,b=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),R=b==null?void 0:b.getActiveSheet();if(!R)return null;const M=R.getMergeData().filter(N=>c.rows.includes(N.startRow)&&c.cols.includes(N.startColumn)),y=M[0];let P=0,x=0,A=0,k=0;if(y&&(P=y.startRow,x=y.startColumn,A=y.endRow,k=y.endColumn),v%e===0&&C%t===0)if(M.length>0&&(v!==e||C!==t))if(P===c.rows[0]&&x===c.cols[0]&&A===c.rows[v-1]&&k===c.cols[C-1])if(Th(o))for(let D=0;D<v;D++)for(let W=0;W<C;W++){const H=o.getValue(D%e,W%t);H&&o.setValue(D,W,H)}else o.forValue((D,W,H)=>{H.s=null,delete H.colSpan,delete H.rowSpan});else for(let N=0;N<v;N++)for(let D=0;D<C;D++){const W=o.getValue(N%e,D%t);W&&o.setValue(N,D,W)}else for(let N=0;N<v;N++)for(let D=0;D<C;D++){const W=o.getValue(N%e,D%t);W&&o.setValue(N,D,W)}else if(M.length>0){const{row:N,col:D}=h(g,S);if(this._topLeftCellsMatch(e,t,{topRow:N,leftCol:D})){const H=this._expandOrShrinkRowsCols(l,d,c,t,e);c.rows=H.rows,c.cols=H.cols}else{if(f>y.endRow||p>y.endColumn)return null;o.forValue((H,U,B)=>{B.s=null,delete B.colSpan,delete B.rowSpan})}}else{const N=this._expandOrShrinkRowsCols(l,d,c,t,e);c.rows=N.rows,c.cols=N.cols}return{pastedRange:c,unitId:l,subUnitId:d}}_getPastedRange(e){var R;const t=this._getPastingTarget(),{selection:o,unitId:i,subUnitId:s}=t;if(!s||!o)return null;const l=this._injector.invoke(T=>Sn(o.range,T,i,s));if(!l)return null;const{startColumn:d,endColumn:c,startRow:u,endRow:h}=e.getDataRange(),g=h-u+1,S=c-d+1;if(g<=0||S<=0)return null;const f=l.rows.length,p=l.cols.length,v=(R=this._univerInstanceService.getUniverSheetInstance(i))==null?void 0:R.getSheetBySheetId(s);if(!v)return null;const C=v==null?void 0:v.getMergeData();if(f%g===0&&p%S===0&&!(C==null?void 0:C.some(M=>Zr(M,l)))){for(let M=0;M<f;M++)for(let y=0;y<p;y++){const P=e.getValue(M%g,y%S);P&&e.setValue(M,y,P)}return{pastedRange:l,unitId:i,subUnitId:s}}const b=this._expandOrShrinkRowsCols(i,s,l,S,g);return l.rows=b.rows,l.cols=b.cols,{pastedRange:l,unitId:i,subUnitId:s}}_expandOrShrinkRowsCols(e,t,o,i,s){const{rows:l,cols:d}=o,c=this._univerInstanceService.getUniverSheetInstance(e),u=c==null?void 0:c.getSheetBySheetId(t);let h,g;if(l.length>=s)h=l.slice(0,s);else{h=l.slice(0);let S=l[l.length-1]+1;for(;h.length<s;)u.getRowFiltered(S)||h.push(S),S++}if(d.length>=i)g=d.slice(0,i);else{g=d.slice(0);let S=d[d.length-1]+1;for(;g.length<i;)g.push(S),S++}return{rows:h,cols:g}}_topLeftCellsMatch(e,t,o){const i=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=i==null?void 0:i.getActiveSheet();if(!s)return!1;const{topRow:l,leftCol:d}=o,c=Rh(l+e-1,d,d+t-1,s),u=Eh(d+t-1,l,l+e-1,s);return!c&&!u}removeMarkSelection(){this._copyMarkId&&(this._markSelectionService.removeShape(this._copyMarkId),this._copyMarkId=null)}_initUnitDisposed(){this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(a.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{e&&this.copyContentCache().clearWithUnitId(e.getUnitId())}))}disposePasteOptionsCache(){this.setShowMenu(!1),this.updatePasteOptionsCache(null)}};exports.SheetClipboardService=Ih([Oe(0,a.ILogService),Oe(1,a.IUniverInstanceService),Oe(2,a.Inject(m.SheetsSelectionsService)),Oe(3,I.IClipboardInterfaceService),Oe(4,a.IUndoRedoService),Oe(5,a.ICommandService),Oe(6,Qt),Oe(7,I.INotificationService),Oe(8,I.IPlatformService),Oe(9,w.IRenderManagerService),Oe(10,a.Inject(a.ThemeService)),Oe(11,a.Inject(a.LocaleService)),Oe(12,a.Inject(a.ErrorService)),Oe(13,a.Inject(a.Injector))],exports.SheetClipboardService);function Cl(n){let r="";const e=n.getLength();return n.forRow((t,o)=>{const i=[];o.forEach(s=>{const l=n.getValue(t,s);if(l){const d=bh(l);i.push(d)}}),r+=i.join(" "),t!==e-1&&(r+=`
12
- `)}),r}function bh(n){return a.isNotNullOrUndefined(n.displayV)?n.displayV:a.extractPureTextFromCell(n)}function Rh(n,r,e,t){return t.getMergeData().some(o=>o.startRow<=n&&n<o.endRow&&r<=o.startColumn&&o.startColumn<=e)}function Eh(n,r,e,t){return t.getMergeData().some(o=>o.startColumn<=n&&n<o.endColumn&&r<=o.startRow&&o.startRow<=e)}function Th(n){let r=0;return n.forValue((e,t,o)=>{if(o&&r++,r>1)return!1}),r>1}function Bn(){return{p:null,v:null,s:null,f:null,si:null,t:null}}const Es=998,Xe={id:I.CopyCommand.id,name:"sheet.command.copy",type:a.CommandType.COMMAND,multi:!0,priority:Es,preconditions:_s,handler:async n=>n.get(Be).copy()},Ts={id:I.CutCommand.id,name:"sheet.command.cut",type:a.CommandType.COMMAND,multi:!0,priority:Es,preconditions:_s,handler:async n=>n.get(Be).cut()},Ye={id:I.PasteCommand.id,type:a.CommandType.COMMAND,multi:!0,name:"sheet.command.paste",priority:Es,preconditions:_s,handler:async(n,r)=>{const t=await n.get(I.IClipboardInterfaceService).read(),o=n.get(Be);return t.length!==0?o.paste(t[0],r==null?void 0:r.value):!1}},nr={id:I.SheetPasteShortKeyCommandName,type:a.CommandType.COMMAND,handler:async(n,r)=>{const e=n.get(Be),{htmlContent:t,textContent:o,files:i}=r;return e.legacyPaste(t,o,i),!0}},fn={id:"sheet.command.paste-value",type:a.CommandType.COMMAND,handler:async n=>n.get(a.ICommandService).executeCommand(Ye.id,{value:ge.SPECIAL_PASTE_VALUE})},pn={id:"sheet.command.paste-format",type:a.CommandType.COMMAND,handler:async n=>n.get(a.ICommandService).executeCommand(Ye.id,{value:ge.SPECIAL_PASTE_FORMAT})},Vt={id:"sheet.command.paste-col-width",type:a.CommandType.COMMAND,handler:async n=>n.get(a.ICommandService).executeCommand(Ye.id,{value:ge.SPECIAL_PASTE_COL_WIDTH})},vn={id:"sheet.command.paste-besides-border",type:a.CommandType.COMMAND,handler:async n=>n.get(a.ICommandService).executeCommand(Ye.id,{value:ge.SPECIAL_PASTE_BESIDES_BORDER})},Il={id:"sheet.command.optional-paste",type:a.CommandType.COMMAND,handler:async(n,{type:r})=>n.get(Be).rePasteWithPasteType(r)},go={id:"sheet.command.hide-row-confirm",type:a.CommandType.COMMAND,handler:async n=>{var d;const e=(d=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:d.map(c=>c.range);if(!(e!=null&&e.length))return!1;const t=n.get(a.ICommandService),o=n.get(a.IUniverInstanceService),i=m.getSheetCommandTarget(o);if(!i)return!1;const{worksheet:s}=i,l=s.getVisibleRows();if($a(l,e)){const c=n.get(I.IConfirmService),u=n.get(a.LocaleService);return await c.confirm({id:"sheet.confirm.hide-row",title:{title:u.t("info.problem")},children:{title:u.t("rightClick.hideAllRowsAlert")},cancelText:u.t("button.cancel"),confirmText:u.t("button.confirm")}),!1}return await t.executeCommand(m.SetRowHiddenCommand.id),!0}},So={id:"sheet.command.hide-col-confirm",type:a.CommandType.COMMAND,handler:async n=>{var d;const e=(d=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:d.map(c=>c.range);if(!(e!=null&&e.length))return!1;const t=n.get(a.ICommandService),o=n.get(a.IUniverInstanceService),i=m.getSheetCommandTarget(o);if(!i)return!1;const{worksheet:s}=i,l=s.getVisibleCols();if(el(l,e)){const c=n.get(I.IConfirmService),u=n.get(a.LocaleService);return await c.confirm({id:"sheet.confirm.hide-col",title:{title:u.t("info.problem")},children:{title:u.t("rightClick.hideAllColumnsAlert")},cancelText:u.t("button.cancel"),confirmText:u.t("button.confirm")}),!1}return await t.executeCommand(m.SetColHiddenCommand.id),!0}},Jt={type:a.CommandType.COMMAND,id:"sheet.command.set-range-bold",handler:async n=>{const r=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?r.executeCommand(J.SetInlineFormatBoldCommand.id):r.executeCommand(m.SetBoldCommand.id)}},$t={type:a.CommandType.COMMAND,id:"sheet.command.set-range-italic",handler:async n=>{const r=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?r.executeCommand(J.SetInlineFormatItalicCommand.id):r.executeCommand(m.SetItalicCommand.id)}},en={type:a.CommandType.COMMAND,id:"sheet.command.set-range-underline",handler:async n=>{const r=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?r.executeCommand(J.SetInlineFormatUnderlineCommand.id):r.executeCommand(m.SetUnderlineCommand.id)}},tn={type:a.CommandType.COMMAND,id:"sheet.command.set-range-stroke",handler:async n=>{const r=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?r.executeCommand(J.SetInlineFormatStrikethroughCommand.id):r.executeCommand(m.SetStrikeThroughCommand.id)}},ws={type:a.CommandType.COMMAND,id:"sheet.command.set-range-subscript",handler:async n=>{const r=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?r.executeCommand(J.SetInlineFormatSubscriptCommand.id):!1}},ys={type:a.CommandType.COMMAND,id:"sheet.command.set-range-superscript",handler:async n=>{const r=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?r.executeCommand(J.SetInlineFormatSuperscriptCommand.id):!1}},fo={type:a.CommandType.COMMAND,id:"sheet.command.set-range-fontsize",handler:async(n,r)=>{const e=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?e.executeCommand(J.SetInlineFormatFontSizeCommand.id,r):e.executeCommand(m.SetFontSizeCommand.id,r)}},po={type:a.CommandType.COMMAND,id:"sheet.command.set-range-font-family",handler:async(n,r)=>{const e=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?e.executeCommand(J.SetInlineFormatFontFamilyCommand.id,r):e.executeCommand(m.SetFontFamilyCommand.id,r)}},Mn={type:a.CommandType.COMMAND,id:"sheet.command.set-range-text-color",handler:async(n,r)=>{const e=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?e.executeCommand(J.SetInlineFormatTextColorCommand.id,r):e.executeCommand(m.SetTextColorCommand.id,r)}},Ms={type:a.CommandType.COMMAND,id:"sheet.command.reset-range-text-color",handler:async n=>{const r=n.get(a.ICommandService),t=n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED),o=n.get(a.ThemeService);return t?r.executeCommand(J.SetInlineFormatTextColorCommand.id,{value:null}):r.executeCommand(m.SetTextColorCommand.id,{value:o.getCurrentTheme().textColor})}};var wh=Object.getOwnPropertyDescriptor,yh=(n,r,e,t)=>{for(var o=t>1?void 0:t?wh(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},cn=(n,r)=>(e,t)=>r(e,t,n),Ne=(n=>(n[n.OFF=0]="OFF",n[n.ONCE=1]="ONCE",n[n.INFINITE=2]="INFINITE",n))(Ne||{});const et=a.createIdentifier("univer.format-painter-service");let or=class extends a.Disposable{constructor(r,e,t,o,i,s){super();E(this,"status$");E(this,"_selectionFormat");E(this,"_markId",null);E(this,"_status$");E(this,"_defaultHook",null);E(this,"_extendHooks",[]);this._selectionManagerService=r,this._themeService=e,this._markSelectionService=t,this._logService=o,this._commandService=i,this._undoRedoService=s,this._status$=new O.BehaviorSubject(0),this.status$=this._status$.asObservable(),this._selectionFormat={styles:new a.ObjectMatrix,merges:[]}}addHook(r){var e,t,o;r.isDefaultHook&&((e=r.priority)!=null?e:0)>((o=(t=this._defaultHook)==null?void 0:t.priority)!=null?o:-1)?this._defaultHook=r:(this._extendHooks.push(r),this._extendHooks.sort((i,s)=>(i.priority||0)-(s.priority||0)))}getHooks(){return this._defaultHook?[this._defaultHook,...this._extendHooks]:this._extendHooks}setStatus(r){this._updateRangeMark(r),this._status$.next(r),this.getHooks().forEach(t=>{t.onStatusChange!==void 0&&t.onStatusChange(r)})}getStatus(){return this._status$.getValue()}setSelectionFormat(r){this._selectionFormat=r}getSelectionFormat(){return this._selectionFormat}applyFormatPainter(r,e,t){const o=this.getHooks(),i=[],s=[];o.forEach(d=>{if(d.onApply!==void 0){const c=d.onApply(r,e,t,this._selectionFormat);c&&(i.push(...c.redos),s.push(...c.undos))}});for(const d of o)if(d.onBeforeApply!==void 0&&!d.onBeforeApply({unitId:r,subUnitId:e,range:t,redoMutationsInfo:i,format:this._selectionFormat,undoMutationsInfo:s}))return!1;this._logService.log("[FormatPainterService]","apply mutations",{undoMutationsInfo:s,redoMutationsInfo:i});const l=i.every(d=>this._commandService.executeCommand(d.id,d.params));return l&&this._undoRedoService.pushUndoRedo({unitID:r,undoMutations:s,redoMutations:i}),l}_updateRangeMark(r){if(this._markSelectionService.removeAllShapes(),r!==0){const e=this._selectionManagerService.getCurrentLastSelection();if(e){const t=fl(this._themeService);r===2?this._markId=this._markSelectionService.addShape({...e,style:t}):this._markId=this._markSelectionService.addShape({...e,style:t},[m.SetRangeValuesMutation.id])}}}};or=yh([cn(0,a.Inject(m.SheetsSelectionsService)),cn(1,a.Inject(a.ThemeService)),cn(2,Qt),cn(3,a.ILogService),cn(4,a.ICommandService),cn(5,a.IUndoRedoService)],or);const vo={id:"sheet.operation.set-format-painter",type:a.CommandType.OPERATION,handler:(n,r)=>r?(n.get(et).setStatus(r.status),!0):!1},Ar={type:a.CommandType.COMMAND,id:"sheet.command.set-infinite-format-painter",handler:async n=>{const e=n.get(et).getStatus();let t;return e!==Ne.OFF?t=Ne.OFF:t=Ne.INFINITE,n.get(a.ICommandService).executeCommand(vo.id,{status:t})}},Dn={type:a.CommandType.COMMAND,id:"sheet.command.set-once-format-painter",handler:async n=>{const e=n.get(et).getStatus();let t;return e!==Ne.OFF?t=Ne.OFF:t=Ne.ONCE,n.get(a.ICommandService).executeCommand(vo.id,{status:t})}},Co={type:a.CommandType.COMMAND,id:"sheet.command.apply-format-painter",handler:async(n,r)=>n.get(et).applyFormatPainter(r.unitId,r.subUnitId,r.range)},ut={type:a.CommandType.COMMAND,id:"sheet.command.set-selection-frozen",handler:async(n,r)=>{const{type:e}=r||{},t=n.get(a.IUniverInstanceService),o=n.get(a.IUndoRedoService),i=m.getSheetCommandTarget(t);if(!i)return!1;const{unitId:s,subUnitId:l}=i,d=n.get(a.ICommandService),u=n.get(m.SheetsSelectionsService).getCurrentSelections();if(!u)return!1;const h=u[(u==null?void 0:u.length)-1],{range:g}=h,f=n.get(w.IRenderManagerService).getRenderById(s).with(exports.SheetScrollManagerService),{sheetViewStartRow:p=0,sheetViewStartColumn:v=0}=f.getCurrentScrollState()||{};let C,b,R,T;const{startRow:M,startColumn:y,rangeType:P}=g;if(P===a.RANGE_TYPE.ROW||e===1)C=M,R=M-p,b=-1,T=0;else if(P===a.RANGE_TYPE.COLUMN||e===2)C=-1,R=0,b=y,T=y-v;else if(P===a.RANGE_TYPE.NORMAL)C=M,R=M-p,b=y,T=y-v;else return!1;const x={unitId:s,subUnitId:l,startRow:C,startColumn:b,xSplit:b>0?Math.max(1,T):T,ySplit:C>0?Math.max(1,R):R},A=m.SetFrozenMutationFactory(n,x);return d.syncExecuteCommand(m.SetFrozenMutation.id,x)&&o.pushUndoRedo({unitID:s,undoMutations:[{id:m.SetFrozenMutation.id,params:A}],redoMutations:[{id:m.SetFrozenMutation.id,params:x}]}),!0}},Io={type:a.CommandType.COMMAND,id:"sheet.command.set-row-frozen",handler:async n=>(n.get(a.ICommandService).executeCommand(ut.id,{type:1}),!0)},_o={type:a.CommandType.COMMAND,id:"sheet.command.set-col-frozen",handler:async n=>(n.get(a.ICommandService).executeCommand(ut.id,{type:2}),!0)};var Mh=Object.getOwnPropertyDescriptor,Ph=(n,r,e,t)=>{for(var o=t>1?void 0:t?Mh(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},ga=(n,r)=>(e,t)=>r(e,t,n);const Oh=(n,r)=>{const{unitId:e,subUnitId:t,ranges:o}=n,i={},s=r.getColumnManager();for(let l=0;l<o.length;l++){const d=o[l];for(let c=d.startColumn;c<d.endColumn+1;c++){const u=s.getColumnOrCreate(c);i[c]=u.w}}return{unitId:e,subUnitId:t,ranges:o,colWidth:i}};exports.AutoWidthController=class extends a.Disposable{constructor(r,e){super(),this._renderManagerService=r,this._univerInstanceService=e}getUndoRedoParamsOfColWidth(r){const e={redos:[],undos:[]},{_univerInstanceService:t}=this,o=m.getSheetCommandTarget(t);if(!o)return e;const{unitId:i,subUnitId:s,worksheet:l}=o,d=this._renderManagerService.getRenderById(i).with(exports.SheetSkeletonManagerService);if(!d.getCurrentParam())return e;const{skeleton:c}=d.getCurrentParam(),u=c.calculateAutoWidthInRange(r.ranges),h={};for(const{col:f,width:p}of u)h[f]=p;const g={subUnitId:s,unitId:i,ranges:r.ranges,colWidth:h},S=Oh(g,l);return{undos:[{id:m.SetWorksheetColWidthMutation.id,params:S}],redos:[{id:m.SetWorksheetColWidthMutation.id,params:g}]}}};exports.AutoWidthController=Ph([ga(0,w.IRenderManagerService),ga(1,a.Inject(a.IUniverInstanceService))],exports.AutoWidthController);const bo={type:a.CommandType.COMMAND,id:"sheet.command.set-col-auto-width",handler:(n,r)=>{const e=n.get(a.ICommandService),t=n.get(a.IUndoRedoService),o=n.get(m.SheetsSelectionsService),i=n.get(a.IUniverInstanceService),s=m.getSheetCommandTarget(i,r);if(!s)return!1;const{unitId:l,subUnitId:d}=s;let c=[];if(r!=null&&r.ranges)c=[...r.ranges];else{const f=o.getCurrentSelections();for(let p=0;p<f.length;p++)c.push(f[p].range)}if(!(c!=null&&c.length))return!1;const u={unitId:l,subUnitId:d,ranges:c},{redos:h,undos:g}=n.get(exports.AutoWidthController).getUndoRedoParamsOfColWidth(u);return a.sequenceExecute([...h],e).result?(t.pushUndoRedo({unitID:l,undoMutations:[...g],redoMutations:[...h]}),!0):!1}},Hn="UI_PLUGIN_SHEETS",Ro=`${Hn}_COLOR_PICKER_COMPONENT`,kr=`${Hn}_FONT_FAMILY_COMPONENT`,Nr=`${Hn}_FONT_FAMILY_ITEM_COMPONENT`,Dr=`${Hn}_FONT_SIZE_COMPONENT`,Hr=`${Hn}_MENU_ITEM_INPUT_COMPONENT`,xh="univer-sheets-ui-context-menu-input",Ah="univer-sheets-ui-context-menu-input-container",kh="univer-sheets-ui-context-menu-input-number",Kr={sheetsUiContextMenuInput:xh,sheetsUiContextMenuInputContainer:Ah,sheetsUiContextMenuInputNumber:kh},_l=n=>{const{prefix:r,suffix:e,value:t,onChange:o,min:i=Number.MIN_SAFE_INTEGER,max:s=Number.MAX_SAFE_INTEGER}=n,l=I.useDependency(a.LocaleService),d=I.useDependency(I.IContextMenuService),[c,u]=V.useState(),h=S=>{var f;u(S==null?void 0:S.toString()),o((f=S==null?void 0:S.toString())!=null?f:"")};V.useEffect(()=>{d.visible||u(t)},[d.visible]),V.useEffect(()=>{u(t)},[t]);function g(S){S.key==="Backspace"&&S.stopPropagation()}return _.jsxs("div",{className:Kr.sheetsUiContextMenuInput,children:[l.t(r),_.jsx("span",{className:Kr.sheetsUiContextMenuInputContainer,onClick:S=>S.stopPropagation(),children:_.jsx(K.InputNumber,{className:Kr.sheetsUiContextMenuInputNumber,value:Number(c),precision:0,onKeyDown:g,onChange:h,min:i,max:s})}),l.t(e)]})};function Nh(n){return n.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).pipe(O.switchMap(r=>r?r.activeSheet$.pipe(O.map(e=>e?{workbook:r,worksheet:e}:null)):O.of(null)))}function Pe(n,r,e){return Nh(n).pipe(O.switchMap(t=>t?e(t):O.of(r)))}function bl(n,r){const e=n.get(a.IUniverInstanceService),t=n.get(m.IExclusiveRangeService),o=n.get(m.SheetsSelectionsService);return e.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).pipe(O.switchMap(s=>s?O.combineLatest([o.selectionMoveEnd$,s.activeSheet$]).pipe(O.switchMap(([l,d])=>{if(!d||l.length===0)return O.of(!1);const c=t.getInterestGroupId(l);if(r){const u=c.filter(h=>r.has(h));return O.of(u.length>0)}else return O.of(c.length>0)})):O.of(!1)))}function nn(n,r,e){return O.combineLatest([r,bl(n,e)]).pipe(O.map(([t,o])=>t||o))}function te(n,r={},e=!1){var u;const o=n.get(a.IUniverInstanceService).getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),i=n.get(a.UserManagerService),s=n.has(Se)?n.get(Se):null,d=n.get(a.IContextService).subscribeContextValue$(a.FOCUSING_FX_BAR_EDITOR),c=(u=s==null?void 0:s.visible$)!=null?u:O.of(null);return O.combineLatest([i.currentUser$,o,c,d]).pipe(O.switchMap(([h,g,S,f])=>!g||S!=null&&S.visible&&S.unitId===g.getUnitId()&&!e||f&&!e?O.of(!0):g.activeSheet$.pipe(O.switchMap(p=>{if(!p)return O.of(!0);const v=n.get(m.SheetsSelectionsService),C=n.get(m.RangeProtectionRuleModel),b=n.get(m.WorksheetProtectionRuleModel),T=n.get(a.IContextService).subscribeContextValue$(a.FOCUSING_COMMON_DRAWINGS).pipe(O.startWith(!1));return O.combineLatest([v.selectionMoveEnd$,T]).pipe(O.switchMap(([M,y])=>{if(y)return O.of(!0);const P=g.getUnitId(),x=p.getSheetId(),A=n.get(a.IPermissionService),{workbookTypes:k=[m.WorkbookEditablePermission],worksheetTypes:N,rangeTypes:D}=r,W=[];if(k==null||k.forEach(F=>{W.push(new F(P).id)}),N==null||N.forEach(F=>{W.push(new F(P,x).id)}),b.getRule(P,x))return A.composePermission$(W).pipe(O.map(F=>F.some(L=>L.value===!1)));const U=M==null?void 0:M.map(F=>F.range),B=C.getSubunitRuleList(P,x).filter(F=>U==null?void 0:U.some(L=>F.ranges.some(z=>a.Rectangle.intersects(L,z))));return D==null||D.forEach(F=>{B.forEach(L=>{W.push(new F(P,x,L.permissionId).id)})}),A.composePermission$(W).pipe(O.map(F=>F.some(L=>L.value===!1)))}))}))))}function Vr(n){const r=n.get(a.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=n.get(m.RangeProtectionRuleModel),o=n.get(a.IPermissionService);return O.merge(e.selectionMoveEnd$,o.permissionPointUpdate$.pipe(O.debounceTime(100))).pipe(O.map(()=>{var h;const i=(h=e.getCurrentLastSelection())==null?void 0:h.range;if(!i)return!0;const s=r.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s==null?void 0:s.getActiveSheet();if(!s||!l)return!0;const d=s.getUnitId(),c=l.getSheetId(),u=[new m.WorkbookEditablePermission(d).id,new m.WorksheetEditPermission(d,c).id];return t.getSubunitRuleList(d,c).filter(g=>g.ranges.some(S=>a.Rectangle.intersects(i,S))).forEach(g=>{u.push(new m.RangeProtectionPermissionEditPoint(d,c,g.permissionId).id)}),o.composePermission(u).some(g=>g.value===!1)}))}function Rl(n,r){const e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(m.RangeProtectionRuleModel),i=n.get(a.IPermissionService);return O.merge(t.selectionMoveEnd$,i.permissionPointUpdate$.pipe(O.debounceTime(100))).pipe(O.map(()=>{var g;const s=(g=t.getCurrentLastSelection())==null?void 0:g.range;if(!s)return!0;const l=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),d=l==null?void 0:l.getActiveSheet();if(!l||!d)return!0;const c=l.getUnitId(),u=d.getSheetId(),h=[new m.WorkbookEditablePermission(c).id,new m.WorksheetEditPermission(c,u).id];return o.getSubunitRuleList(c,u).filter(S=>r==="row"?S.ranges.some(f=>s.endRow>f.startRow&&s.endRow<=f.endRow):S.ranges.some(f=>s.endColumn>f.startColumn&&s.endColumn<=f.endColumn)).forEach(S=>{h.push(new m.RangeProtectionPermissionEditPoint(c,u,S.permissionId).id)}),i.composePermission(h).some(S=>S.value===!1)}))}function El(n,r){const e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(m.RangeProtectionRuleModel),i=n.get(a.IPermissionService);return O.merge(t.selectionMoveEnd$,i.permissionPointUpdate$.pipe(O.debounceTime(100))).pipe(O.map(()=>{var g;const s=(g=t.getCurrentLastSelection())==null?void 0:g.range;if(!s)return!0;const l=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),d=l==null?void 0:l.getActiveSheet();if(!l||!d)return!0;const c=l.getUnitId(),u=d.getSheetId(),h=[new m.WorkbookEditablePermission(c).id,new m.WorksheetEditPermission(c,u).id];return o.getSubunitRuleList(c,u).filter(S=>r==="row"?S.ranges.some(f=>s.startRow>f.startRow&&s.startRow<=f.endRow):S.ranges.some(f=>s.startColumn>f.startColumn&&s.startColumn<=f.endColumn)).forEach(S=>{h.push(new m.RangeProtectionPermissionEditPoint(c,u,S.permissionId).id)}),i.composePermission(h).some(S=>S.value===!1)}))}function Tl(n,r){const e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(m.RangeProtectionRuleModel),i=n.get(a.IPermissionService);return O.merge(t.selectionMoveEnd$,i.permissionPointUpdate$.pipe(O.debounceTime(100))).pipe(O.map(()=>{var S;const s=(S=t.getCurrentLastSelection())==null?void 0:S.range;if(!s)return!0;const l=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),d=l==null?void 0:l.getActiveSheet();if(!l||!d)return!0;const c=l.getUnitId(),u=d.getSheetId(),h=[new m.WorkbookEditablePermission(c).id,new m.WorksheetEditPermission(c,u).id],g=a.Tools.deepClone(s);return r==="row"?(g.startColumn=0,g.endColumn=d.getColumnCount()-1):(g.startRow=0,g.endRow=d.getRowCount()-1),o.getSubunitRuleList(c,u).filter(f=>f.ranges.some(p=>a.Rectangle.intersects(g,p))).forEach(f=>{h.push(new m.RangeProtectionPermissionEditPoint(c,u,f.permissionId).id)}),i.composePermission(h).some(f=>f.value===!1)}))}function Wr(n,r){const e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(m.RangeProtectionRuleModel),i=n.get(a.IPermissionService);return O.merge(t.selectionMoveEnd$,i.permissionPointUpdate$.pipe(O.debounceTime(100))).pipe(O.map(()=>{var S;const s=(S=t.getCurrentLastSelection())==null?void 0:S.range;if(!s)return!0;const l=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),d=l==null?void 0:l.getActiveSheet();if(!l||!d)return!0;const c=l.getUnitId(),u=d.getSheetId(),h=[new m.WorkbookEditablePermission(c).id,new m.WorksheetEditPermission(c,u).id],g=a.Tools.deepClone(s);return r==="row"?g.endRow=d.getRowCount()-1:g.endColumn=d.getColumnCount()-1,o.getSubunitRuleList(c,u).filter(f=>f.ranges.some(p=>a.Rectangle.intersects(g,p))).forEach(f=>{h.push(new m.RangeProtectionPermissionEditPoint(c,u,f.permissionId).id)}),i.composePermission(h).some(f=>f.value===!1)}))}function Vn(n,r){const t=n.get(a.IUniverInstanceService).getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(m.WorksheetProtectionRuleModel),i=n.get(m.RangeProtectionRuleModel),s=n.get(a.IPermissionService),l=n.get(a.UserManagerService);return O.combineLatest([l.currentUser$,t]).pipe(O.switchMap(([d,c])=>c?c.activeSheet$.pipe(O.switchMap(u=>{if(!u)return O.of(!0);const h=c.getUnitId(),g=[];return r.forEach(f=>g.push(new f(h).id)),s.composePermission$(g).pipe(O.map(f=>f.every(p=>p.value===!0))).pipe(O.map(f=>{if(!f)return!0;const p=u.getSheetId(),v=o.getRule(h,p),C=i.getSubunitRuleList(h,p);return!!(v||C.length)}))})):O.of(!0)))}var wl=(n=>(n.ROW_HEADER_CONTEXT_MENU="ROW_HEADER_CONTEXT_MENU",n.COL_HEADER_CONTEXT_MENU="COL_HEADER_CONTEXT_MENU",n.SHEET_BAR="SHEET_BAR",n.SHEET_FOOTER="SHEET_FOOTER",n))(wl||{});function Dh(n){const r=n.get(et);return{id:Dn.id,subId:Ar.id,type:I.MenuItemType.BUTTON,icon:"BrushSingle",title:"Format Painter",tooltip:"toolbar.formatPainter",activated$:new O.Observable(e=>{let t=!1;const o=r.status$.subscribe(i=>{t=i!==Ne.OFF,e.next(t)});return e.next(t),()=>{o.unsubscribe()}}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetCopyPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0)}}function Hh(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(a.IContextService),o=n.get(m.SheetsSelectionsService);return{id:Jt.id,type:I.MenuItemType.BUTTON,icon:"BoldSingle",title:"Set bold",tooltip:"toolbar.bold",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0),activated$:Pe(e,!1,({worksheet:i})=>new O.Observable(s=>{var u;const l=r.onCommandExecuted(h=>{var S,f;const g=h.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const p=(S=o.getCurrentLastSelection())==null?void 0:S.primary;let v=a.FontWeight.NORMAL;if(p!=null){const C=i.getRange(p.startRow,p.startColumn);v=C==null?void 0:C.getFontWeight()}s.next(v===a.FontWeight.BOLD)}if((g===Re.SetTextSelectionsOperation.id||g===J.SetInlineFormatCommand.id)&&t.getContextValue(a.EDITOR_ACTIVATED)&&t.getContextValue(a.FOCUSING_SHEET)){const p=To(n);if(p==null)return;const v=(f=p.ts)==null?void 0:f.bl;s.next(v===a.BooleanNumber.TRUE)}}),d=(u=o.getCurrentLastSelection())==null?void 0:u.primary;if(!i){s.next(!1);return}let c=a.FontWeight.NORMAL;if(d!=null){const h=i.getRange(d.startRow,d.startColumn);c=h==null?void 0:h.getFontWeight()}return s.next(c===a.FontWeight.BOLD),l.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Vh(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(a.IContextService);return{id:$t.id,type:I.MenuItemType.BUTTON,icon:"ItalicSingle",title:"Set italic",tooltip:"toolbar.italic",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0),activated$:Pe(e,!1,({worksheet:i})=>new O.Observable(s=>{var u;const l=r.onCommandExecuted(h=>{var S,f;const g=h.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const p=(S=t.getCurrentLastSelection())==null?void 0:S.primary;let v=a.FontItalic.NORMAL;if(p!=null){const C=i.getRange(p.startRow,p.startColumn);v=C==null?void 0:C.getFontStyle()}s.next(v===a.FontItalic.ITALIC)}if((g===Re.SetTextSelectionsOperation.id||g===J.SetInlineFormatCommand.id)&&o.getContextValue(a.EDITOR_ACTIVATED)&&o.getContextValue(a.FOCUSING_SHEET)){const p=To(n);if(p==null)return;const v=(f=p.ts)==null?void 0:f.it;s.next(v===a.BooleanNumber.TRUE)}}),d=(u=t.getCurrentLastSelection())==null?void 0:u.primary;let c=a.FontItalic.NORMAL;if(d!=null){const h=i.getRange(d.startRow,d.startColumn);c=h==null?void 0:h.getFontStyle()}return s.next(c===a.FontItalic.ITALIC),l.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Wh(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(a.IContextService);return{id:en.id,type:I.MenuItemType.BUTTON,icon:"UnderlineSingle",title:"Set underline",tooltip:"toolbar.underline",activated$:Pe(e,!1,({worksheet:i})=>new O.Observable(s=>{var u;const l=r.onCommandExecuted(h=>{var S,f;const g=h.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const p=(S=t.getCurrentLastSelection())==null?void 0:S.primary;let v;if(p!=null){const C=i.getRange(p.startRow,p.startColumn);v=C==null?void 0:C.getUnderline()}s.next(!!(v&&v.s))}if((g===Re.SetTextSelectionsOperation.id||g===J.SetInlineFormatCommand.id)&&o.getContextValue(a.EDITOR_ACTIVATED)&&o.getContextValue(a.FOCUSING_SHEET)){const p=To(n);if(p==null)return;const v=(f=p.ts)==null?void 0:f.ul;s.next((v==null?void 0:v.s)===a.BooleanNumber.TRUE)}}),d=(u=t.getCurrentLastSelection())==null?void 0:u.primary;let c;if(d!=null){const h=i.getRange(d.startRow,d.startColumn);c=h==null?void 0:h.getUnderline()}return s.next(!!(c&&c.s)),l.dispose})),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Uh(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(a.IContextService);return{id:tn.id,type:I.MenuItemType.BUTTON,icon:"StrikethroughSingle",title:"Set strike through",tooltip:"toolbar.strikethrough",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0),activated$:Pe(e,!1,({worksheet:i})=>new O.Observable(s=>{var u;const l=r.onCommandExecuted(h=>{var S,f;const g=h.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const p=(S=t.getCurrentLastSelection())==null?void 0:S.primary;let v;if(p!=null){const C=i.getRange(p.startRow,p.startColumn);v=C==null?void 0:C.getStrikeThrough()}s.next(!!(v&&v.s))}if((g===Re.SetTextSelectionsOperation.id||g===J.SetInlineFormatCommand.id)&&o.getContextValue(a.EDITOR_ACTIVATED)&&o.getContextValue(a.FOCUSING_SHEET)){const p=To(n);if(p==null)return;const v=(f=p.ts)==null?void 0:f.st;s.next((v==null?void 0:v.s)===a.BooleanNumber.TRUE)}}),d=(u=t.getCurrentLastSelection())==null?void 0:u.primary;let c;if(d!=null){const h=i.getRange(d.startRow,d.startColumn);c=h==null?void 0:h.getStrikeThrough()}return s.next(!!(c&&c.s)),l.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Lh(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=a.DEFAULT_STYLES.ff;return{id:po.id,tooltip:"toolbar.font",type:I.MenuItemType.SELECTOR,label:kr,selections:I.FONT_FAMILY_LIST.map(i=>({label:{name:Nr,hoverable:!0},value:i.value})),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0),value$:Pe(e,o,({worksheet:i})=>new O.Observable(s=>{var u;const l=r.onCommandExecuted(h=>{var p;const g=h.id;if(g!==m.SetRangeValuesMutation.id&&g!==m.SetSelectionsOperation.id&&g!==m.SetWorksheetActiveOperation.id)return;const S=(p=t.getCurrentLastSelection())==null?void 0:p.primary;let f;if(S!=null){const v=i.getRange(S.startRow,S.startColumn);f=v==null?void 0:v.getFontFamily()}s.next(f!=null?f:o)}),d=(u=t.getCurrentLastSelection())==null?void 0:u.primary;let c;if(d!=null){const h=i.getRange(d.startRow,d.startColumn);c=h==null?void 0:h.getFontFamily()}return s.next(c!=null?c:o),l.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Bh(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(a.IContextService),i=a.DEFAULT_STYLES.fs,s=te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0);return{id:fo.id,type:I.MenuItemType.SELECTOR,tooltip:"toolbar.fontSize",label:{name:Dr,props:{min:1,max:400,disabled$:s}},selections:I.FONT_SIZE_LIST,disabled$:s,value$:Pe(e,i,({worksheet:l})=>new O.Observable(d=>{var g;const c=r.onCommandExecuted(S=>{var p,v;const f=S.id;if(f===m.SetRangeValuesMutation.id||f===m.SetSelectionsOperation.id||f===m.SetWorksheetActiveOperation.id){const C=(p=t.getCurrentLastSelection())==null?void 0:p.primary;let b;if(C!=null){const R=l.getRange(C.startRow,C.startColumn);b=R==null?void 0:R.getFontSize()}d.next(b!=null?b:i)}if((f===Re.SetTextSelectionsOperation.id||f===J.SetInlineFormatCommand.id)&&o.getContextValue(a.EDITOR_ACTIVATED)&&o.getContextValue(a.FOCUSING_SHEET)){const C=To(n);if(C==null)return;const b=(v=C.ts)==null?void 0:v.fs;d.next(b!=null?b:i)}}),u=(g=t.getCurrentLastSelection())==null?void 0:g.primary;let h;if(u!=null){const S=l.getRange(u.startRow,u.startColumn);h=S==null?void 0:S.getFontSize()}return d.next(h!=null?h:i),c.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Fh(n){return{id:Ms.id,type:I.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function jh(n){const r=n.get(a.ICommandService),e=n.get(a.ThemeService);return{id:Mn.id,icon:"FontColor",tooltip:"toolbar.textColor.main",type:I.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:Ro,hoverable:!1}}],value$:new O.Observable(t=>{const o=e.getCurrentTheme().textColor,i=r.onCommandExecuted(s=>{if(s.id===Mn.id){const l=s.params.value;t.next(l!=null?l:o)}});return t.next(o),i.dispose}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0)}}function zh(n){return{id:m.ResetBackgroundColorCommand.id,type:I.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Xh(n){const r=n.get(a.ICommandService),e=n.get(a.ThemeService);return{id:m.SetBackgroundColorCommand.id,tooltip:"toolbar.fillColor.main",type:I.MenuItemType.BUTTON_SELECTOR,icon:"PaintBucket",selections:[{label:{name:Ro,hoverable:!1}}],value$:new O.Observable(t=>{const o=e.getCurrentTheme().primaryColor,i=r.onCommandExecuted(s=>{if(s.id===m.SetBackgroundColorCommand.id){const l=s.params.value;t.next(l!=null?l:o)}});return t.next(o),i.dispose}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const Sa=[{label:"align.left",icon:"LeftJustifyingSingle",value:a.HorizontalAlign.LEFT},{label:"align.center",icon:"HorizontallySingle",value:a.HorizontalAlign.CENTER},{label:"align.right",icon:"RightJustifyingSingle",value:a.HorizontalAlign.RIGHT}];function Yh(n){const r=n.get(a.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=a.HorizontalAlign.LEFT;return{id:m.SetHorizontalTextAlignCommand.id,icon:Sa[0].icon,tooltip:"toolbar.horizontalAlignMode.main",type:I.MenuItemType.SELECTOR,selections:Sa,value$:Pe(r,t,({worksheet:o})=>new O.Observable(i=>{var c;const s=n.get(a.ICommandService).onCommandExecuted(u=>{var f;const h=u.id;if(h!==m.SetHorizontalTextAlignCommand.id&&h!==m.SetSelectionsOperation.id&&h!==m.SetWorksheetActiveOperation.id)return;const g=(f=e.getCurrentLastSelection())==null?void 0:f.primary;let S;if(g!=null){const p=o.getRange(g.startRow,g.startColumn);S=p==null?void 0:p.getHorizontalAlignment()}i.next(S!=null?S:t)}),l=(c=e.getCurrentLastSelection())==null?void 0:c.primary;let d;if(l!=null){const u=o.getRange(l.startRow,l.startColumn);d=u==null?void 0:u.getHorizontalAlignment()}return i.next(d!=null?d:t),s.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const fa=[{label:"align.top",icon:"AlignTopSingle",value:a.VerticalAlign.TOP},{label:"align.middle",icon:"VerticalCenterSingle",value:a.VerticalAlign.MIDDLE},{label:"align.bottom",icon:"AlignBottomSingle",value:a.VerticalAlign.BOTTOM}];function Gh(n){const r=n.get(a.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=a.VerticalAlign.BOTTOM;return{id:m.SetVerticalTextAlignCommand.id,icon:fa[2].icon,tooltip:"toolbar.verticalAlignMode.main",type:I.MenuItemType.SELECTOR,selections:fa,value$:Pe(r,t,({worksheet:o})=>new O.Observable(i=>{var c;const s=n.get(a.ICommandService).onCommandExecuted(u=>{var f;const h=u.id;if(h!==m.SetVerticalTextAlignCommand.id&&h!==m.SetSelectionsOperation.id&&h!==m.SetWorksheetActiveOperation.id)return;const g=(f=e.getCurrentLastSelection())==null?void 0:f.primary;let S;if(g!=null){const p=o.getRange(g.startRow,g.startColumn);S=p==null?void 0:p.getVerticalAlignment()}i.next(S!=null?S:t)}),l=(c=e.getCurrentLastSelection())==null?void 0:c.primary;let d;if(l!=null){const u=o.getRange(l.startRow,l.startColumn);d=u==null?void 0:u.getVerticalAlignment()}return i.next(d!=null?d:t),s.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const pa=[{label:"textWrap.overflow",icon:"OverflowSingle",value:a.WrapStrategy.OVERFLOW},{label:"textWrap.wrap",icon:"AutowrapSingle",value:a.WrapStrategy.WRAP},{label:"textWrap.clip",icon:"TruncationSingle",value:a.WrapStrategy.CLIP}];function Zh(n){const r=n.get(m.SheetsSelectionsService),e=n.get(a.IUniverInstanceService),t=a.WrapStrategy.OVERFLOW;return{id:m.SetTextWrapCommand.id,tooltip:"toolbar.textWrapMode.main",icon:pa[0].icon,type:I.MenuItemType.SELECTOR,selections:pa,value$:Pe(e,t,({worksheet:o})=>new O.Observable(i=>{var c;const s=n.get(a.ICommandService).onCommandExecuted(u=>{var f;const h=u.id;if(h!==m.SetTextWrapCommand.id&&h!==m.SetSelectionsOperation.id&&h!==m.SetWorksheetActiveOperation.id)return;const g=(f=r.getCurrentLastSelection())==null?void 0:f.primary;let S;if(g!=null){const p=o.getRange(g.startRow,g.startColumn);S=p==null?void 0:p.getWrapStrategy()}i.next(S!=null?S:t)}),l=(c=r.getCurrentLastSelection())==null?void 0:c.primary;let d;if(l!=null){const u=o.getRange(l.startRow,l.startColumn);d=u==null?void 0:u.getWrapStrategy()}return i.next(d!=null?d:t),s.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const va=[{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 Kh(n){const r=n.get(m.SheetsSelectionsService),e=n.get(a.IUniverInstanceService),t=0;return{id:m.SetTextRotationCommand.id,tooltip:"toolbar.textRotateMode.main",icon:va[0].icon,type:I.MenuItemType.SELECTOR,selections:va,value$:Pe(e,t,({worksheet:o})=>new O.Observable(i=>{var c,u;const s=n.get(a.ICommandService).onCommandExecuted(h=>{var p,v;const g=h.id;if(g!==m.SetTextRotationCommand.id&&g!==m.SetSelectionsOperation.id&&g!==m.SetWorksheetActiveOperation.id)return;const S=(p=r.getCurrentLastSelection())==null?void 0:p.primary;let f;if(S!=null){const C=o.getRange(S.startRow,S.startColumn);f=C==null?void 0:C.getTextRotation()}(f==null?void 0:f.v)===a.BooleanNumber.TRUE?i.next("v"):i.next((v=f&&f.a)!=null?v:t)}),l=(c=r.getCurrentLastSelection())==null?void 0:c.primary;let d;if(l!=null){const h=o.getRange(l.startRow,l.startColumn);d=h==null?void 0:h.getTextRotation()}return(d==null?void 0:d.v)===a.BooleanNumber.TRUE?i.next("v"):i.next((u=d&&d.a)!=null?u:t),s.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Eo(n){return new O.Observable(e=>e.next(!n.get(I.IClipboardInterfaceService).supportClipboard))}function Cn(n){return{id:Xe.name,commandId:Xe.id,type:I.MenuItemType.BUTTON,title:"rightClick.copy",icon:"Copy",disabled$:te(n,{workbookTypes:[m.WorkbookCopyPermission],worksheetTypes:[m.WorksheetCopyPermission],rangeTypes:[m.RangeProtectionPermissionViewPoint]}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function qr(n){return{id:Ye.name,commandId:Ye.id,type:I.MenuItemType.BUTTON,title:"rightClick.paste",icon:"PasteSpecial",disabled$:Eo(n).pipe(O.combineLatestWith(te(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission,m.WorksheetSetCellValuePermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([r,e])=>r||e)),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}const Qn="sheet.menu.paste-special";function Qr(n){return{id:Qn,type:I.MenuItemType.SUBITEMS,icon:"PasteSpecial",title:"rightClick.pasteSpecial",hidden$:nn(n,I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET))}}function Jr(n){return{id:fn.id,type:I.MenuItemType.BUTTON,title:"rightClick.pasteValue",disabled$:Eo(n).pipe(O.combineLatestWith(te(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetEditPermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([r,e])=>r||e)),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function $r(n){return{id:pn.id,type:I.MenuItemType.BUTTON,title:"rightClick.pasteFormat",disabled$:Eo(n).pipe(O.combineLatestWith(te(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([r,e])=>r||e)),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function ei(n){return{id:Vt.id,type:I.MenuItemType.BUTTON,title:"rightClick.pasteColWidth",disabled$:Eo(n).pipe(O.combineLatestWith(te(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetColumnStylePermission,m.WorksheetEditPermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([r,e])=>r||e))}}function ti(n){return{id:vn.id,type:I.MenuItemType.BUTTON,title:"rightClick.pasteBesidesBorder",disabled$:Eo(n).pipe(O.combineLatestWith(te(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission,m.WorksheetSetCellValuePermission,m.WorksheetSetRowStylePermission,m.WorksheetSetColumnStylePermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([r,e])=>r||e)),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function qh(n){return{id:m.SetWorksheetRowIsAutoHeightCommand.id,type:I.MenuItemType.BUTTON,icon:"AutoHeight",title:"rightClick.fitContent",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetRowStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Qh(n){return{id:bo.id,type:I.MenuItemType.BUTTON,icon:"AutoWidth",title:"rightClick.fitContent",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetRowStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}const yl="sheet.menu.sheet-frozen";function Jh(n){return{id:yl,type:I.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}const zi="sheet.header-menu.sheet-frozen";function Ca(n){return{id:zi,type:I.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function ni(n){return{id:ut.id,type:I.MenuItemType.BUTTON,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function $h(n){return{id:Io.id,type:I.MenuItemType.BUTTON,title:"rightClick.freezeRow",icon:"FreezeRowSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function em(n){return{id:_o.id,type:I.MenuItemType.BUTTON,title:"rightClick.freezeCol",icon:"FreezeColumnSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function oi(n){return{id:m.CancelFrozenCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.cancelFreeze",icon:"CancelFreezeSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function tm(n){return{id:go.id,type:I.MenuItemType.BUTTON,icon:"Hide",title:"rightClick.hideSelectedRow",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetRowStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function nm(n){return{id:So.id,type:I.MenuItemType.BUTTON,icon:"Hide",title:"rightClick.hideSelectedColumn",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetColumnStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function om(n){const r=n.get(a.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=n.get(a.ICommandService),o=[m.SetSelectionsOperation,m.SetRowHiddenMutation,m.SetRowVisibleMutation].map(i=>i.id);return{id:m.SetSelectedRowsVisibleCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.showHideRow",hidden$:Pe(r,!0,({worksheet:i})=>new O.Observable(s=>{function l(){var u;const c=(u=e.getCurrentSelections())==null?void 0:u.map(h=>h.range).filter(h=>h.rangeType===a.RANGE_TYPE.ROW);return!!(c!=null&&c.some(h=>{for(let g=h.startRow;g<=h.endRow;g++)if(!i.getRowRawVisible(g))return!0;return!1}))}const d=t.onCommandExecuted(c=>{o.findIndex(u=>u===c.id)!==-1&&s.next(!l())});return s.next(!l()),()=>d.dispose()})),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetRowStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function rm(n){const r=n.get(a.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=n.get(a.ICommandService),o=[m.SetSelectionsOperation,m.SetColHiddenMutation,m.SetColVisibleMutation].map(i=>i.id);return{id:m.SetSelectedColsVisibleCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.showHideColumn",hidden$:Pe(r,!0,({worksheet:i})=>new O.Observable(s=>{function l(){var u;const c=(u=e.getCurrentSelections())==null?void 0:u.map(h=>h.range).filter(h=>h.rangeType===a.RANGE_TYPE.COLUMN);return!c||c.length===0?!1:!!c.some(h=>{for(let g=h.startColumn;g<=h.endColumn;g++)if(!i.getColVisible(g))return!0;return!1})}const d=t.onCommandExecuted(c=>{o.findIndex(u=>u===c.id)!==-1&&s.next(!l())});return s.next(!l()),()=>d.dispose()})),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetColumnStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function im(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=0;return{id:m.SetRowHeightCommand.id,type:I.MenuItemType.BUTTON,icon:"AdjustHeight",label:{name:Hr,props:{prefix:"rightClick.rowHeight",suffix:"px",min:2,max:1e3}},value$:Pe(e,o,({worksheet:i})=>new O.Observable(s=>{function l(){var h;const c=(h=t.getCurrentLastSelection())==null?void 0:h.primary,u=c?i.getRowHeight(c.startRow):o;s.next(u)}const d=r.onCommandExecuted(c=>{const u=c.id;if(u===m.SetRangeValuesMutation.id||u===m.SetSelectionsOperation.id||u===m.SetWorksheetRowIsAutoHeightMutation.id)return l()});return l(),d.dispose})),hidden$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetRowStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function sm(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=0;return{id:m.SetColWidthCommand.id,type:I.MenuItemType.BUTTON,icon:"AdjustWidth",label:{name:Hr,props:{prefix:"rightClick.columnWidth",suffix:"px",min:2,max:1e3}},value$:Pe(e,o,({worksheet:i})=>new O.Observable(s=>{function l(){var h;const c=(h=t.getCurrentLastSelection())==null?void 0:h.primary;let u=o;c!=null&&(u=i.getColumnWidth(c.startColumn)),s.next(u)}const d=r.onCommandExecuted(c=>{const u=c.id;if(u===m.SetRangeValuesMutation.id||u===m.SetSelectionsOperation.id||u===m.SetWorksheetColWidthMutation.id)return l()});return l(),d.dispose})),hidden$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetColumnStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function To(n){var d;const r=n.get(a.IUniverInstanceService),e=n.get(Re.DocSelectionManagerService),t=r.getUniverDocInstance(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),o=e.getActiveTextRange();if(t==null||o==null)return null;const i=(d=t.getBody())==null?void 0:d.textRuns;if(i==null)return;const{startOffset:s}=o;return i.find(({st:c,ed:u})=>s>=c&&s<=u)}var am=Object.getOwnPropertyDescriptor,lm=(n,r,e,t)=>{for(var o=t>1?void 0:t?am(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},xt=(n,r)=>(e,t)=>r(e,t,n);const cm="__SpreadsheetFreezeRowMainName__",dm="__SpreadsheetFreezeRowHeaderName__",um="__SpreadsheetFreezeColumnMainName__",hm="__SpreadsheetFreezeColumnHeaderName__",ri=2,mm=.01,Fn=a.createInterceptorKey("freezePermissionCheck");exports.HeaderFreezeRenderController=class extends a.Disposable{constructor(e,t,o,i,s,l,d,c){super();E(this,"_rowFreezeHeaderRect");E(this,"_rowFreezeMainRect");E(this,"_columnFreezeHeaderRect");E(this,"_columnFreezeMainRect");E(this,"_freezeDownSubs");E(this,"_freezePointerEnterSubs");E(this,"_freezePointerLeaveSubs");E(this,"_scenePointerMoveSub");E(this,"_scenePointerUpSub");E(this,"_changeToRow",-1);E(this,"_changeToColumn",-1);E(this,"_changeToOffsetX",0);E(this,"_changeToOffsetY",0);E(this,"_activeViewport",null);E(this,"_freezeNormalHeaderColor","");E(this,"_freezeNormalMainColor","");E(this,"_freezeActiveColor","");E(this,"_freezeHoverColor","");E(this,"_lastFreeze");E(this,"interceptor",new a.InterceptorManager({FREEZE_PERMISSION_CHECK:Fn}));this._context=e,this._sheetSkeletonManagerService=t,this._commandService=o,this._selectionManagerService=i,this._scrollManagerService=s,this._themeService=l,this._sheetInterceptorService=d,this._injector=c,this._initialize()}dispose(){super.dispose()}_initialize(){this._skeletonListener(),this._commandExecutedListener(),this._themeChangeListener(),this._interceptorCommands(),this._bindViewportScroll(),this._zoomRefresh()}_createFreeze(e=0,t){var x;const o=t!=null?t:this._getFreeze();if(o==null)return null;const i=(x=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:x.skeleton,{startRow:s,startColumn:l}=o,d=this._getPositionByIndex(s,l);if(d==null||i==null)return null;const c=this._getSheetObject(),u=c.engine,h=(u==null?void 0:u.width)||0,g=(u==null?void 0:u.height)||0,S=c.scene,{startX:f,startY:p}=d,{rowTotalHeight:v,columnTotalWidth:C,rowHeaderWidthAndMarginLeft:b,columnHeaderHeightAndMarginTop:R}=i,T=h>C+b?h:C+R,M=g>v+R?g:v+R;this._changeToRow=s,this._changeToColumn=l,this._changeToOffsetX=f,this._changeToOffsetY=p;const y=Math.max(S.scaleX,S.scaleY);let P=ri/(y<1?1:y);if(e===0){(s===-1||s===0)&&(P=P*2);const A=P;this._rowFreezeHeaderRect=new w.Rect(dm,{fill:this._freezeNormalHeaderColor,width:b,height:P,left:0,top:p-A,zIndex:3});let k=this._freezeNormalHeaderColor;(s===-1||s===0)&&(k=this._freezeNormalMainColor),this._rowFreezeMainRect=new w.Rect(cm,{fill:k,width:T*2/y,height:P,left:b,top:p-A,zIndex:3}),S.addObjects([this._rowFreezeHeaderRect,this._rowFreezeMainRect],bt)}else{(l===-1||l===0)&&(P=P*2);const A=P;this._columnFreezeHeaderRect=new w.Rect(hm,{fill:this._freezeNormalHeaderColor,width:P,height:R,left:f-A,top:0,zIndex:3});let k=this._freezeNormalHeaderColor;(l===-1||l===0)&&(k=this._freezeNormalMainColor),this._columnFreezeMainRect=new w.Rect(um,{fill:k,width:P,height:M*2/y,left:f-A,top:R,zIndex:3}),S.addObjects([this._columnFreezeHeaderRect,this._columnFreezeMainRect],bt)}this._eventBinding(e)}_eventBinding(e=0){let t=this._rowFreezeHeaderRect,o=this._rowFreezeMainRect;e===1&&(t=this._columnFreezeHeaderRect,o=this._columnFreezeMainRect);const i=this._getSheetObject();if(i==null)return;const{scene:s}=i;if(this._freezePointerEnterSubs=new O.Subscription,this._freezePointerLeaveSubs=new O.Subscription,this._freezeDownSubs=new O.Subscription,o){const c=o.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(Fn)(!0,null))return!1;t==null||t.setProps({fill:this._freezeHoverColor,zIndex:4}),s.setCursor(w.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(c);const u=o.onPointerLeave$.subscribeEvent(()=>{t==null||t.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),s.resetCursor()});this._freezePointerLeaveSubs.add(u)}if(t){const c=t.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(Fn)(!0,null))return!1;t==null||t.setProps({fill:this._freezeHoverColor,zIndex:4}),s.setCursor(w.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(c);const u=t.onPointerLeave$.subscribeEvent(()=>{t==null||t.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),s.resetCursor()});this._freezePointerLeaveSubs.add(u)}const l=t==null?void 0:t.onPointerDown$.subscribeEvent(c=>{this._freezeDown(c,t,o,e)});l&&this._freezeDownSubs.add(l);const d=o==null?void 0:o.onPointerDown$.subscribeEvent(c=>{this._freezeDown(c,t,o,e)});d&&this._freezeDownSubs.add(d)}_getCurrentLastVisible(){var C,b,R,T,M,y,P;const e=this._getSheetObject();if(e==null)return;const t=(C=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:C.skeleton;if(t==null)return;const o=e.scene,i=Math.max(o.scaleX,o.scaleY),s=this._scrollManagerService.getCurrentScrollState(),l=(e.engine.height-t.columnHeaderHeight)/i,d=(e.engine.width-t.rowHeaderWidth)/i,c=(b=s==null?void 0:s.sheetViewStartRow)!=null?b:0,u=c===0?-((R=s==null?void 0:s.offsetY)!=null?R:0):t.rowHeightAccumulation[c-1]-((T=s==null?void 0:s.offsetY)!=null?T:0);let h=0,g=!1;for(let x=c,A=t.rowHeightAccumulation.length;x<A;x++)if(t.rowHeightAccumulation[x]-u>l){h=x,g=!0;break}g||(h=t.rowHeightAccumulation.length-1);const S=(M=s==null?void 0:s.sheetViewStartColumn)!=null?M:0,f=S===0?-((y=s==null?void 0:s.offsetX)!=null?y:0):t.columnWidthAccumulation[S-1]-((P=s==null?void 0:s.offsetX)!=null?P:0);let p=0,v=!1;for(let x=S,A=t.columnWidthAccumulation.length;x<A;x++)if(t.columnWidthAccumulation[x]-f>d){p=x,v=!0;break}return v||(p=t.columnWidthAccumulation.length-1),{lastRow:h,lastColumn:p}}_getActiveViewport(e){var o;const t=(o=this._getSheetObject())==null?void 0:o.scene.getViewports();return t&&t.find(i=>i.isHit(new w.Vector2(e.offsetX,e.offsetY)))||null}_freezeDown(e,t,o,i=0){var f;const s=(f=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:f.skeleton;if(s==null)return;const l=this._getSheetObject();if(l==null)return;if(!this.interceptor.fetchThroughInterceptors(Fn)(!0,null))return!1;const{scene:c}=l;c.setCursor(w.CURSOR_TYPE.GRABBING),c.disableObjectsEvent();const u=this._getCurrentLastVisible(),h=u===void 0?Number.POSITIVE_INFINITY:s.rowHeightAccumulation[u.lastRow],g=u===void 0?Number.POSITIVE_INFINITY:s.columnWidthAccumulation[u.lastColumn-1]+s.rowHeaderWidth;this._activeViewport=null;const S=this._getFreeze();S&&(this._changeToColumn=S.startColumn,this._changeToRow=S.startRow),this._scenePointerMoveSub=c.onPointerMove$.subscribeEvent(p=>{var P,x,A,k;const v=this._getActiveViewport(p),{startX:C,startY:b,row:R,column:T}=qe(p.offsetX,p.offsetY,c,s,v||void 0,!0);if(!this.interceptor.fetchThroughInterceptors(Fn)(!0,null))return!1;c.setCursor(w.CURSOR_TYPE.GRABBING);const y=ri/Math.max(c.scaleX,c.scaleY);i===0?((P=t.transformByState({top:Math.min(b,h)-y/2}))==null||P.setProps({fill:this._freezeActiveColor}),(x=o.transformByState({top:Math.min(b,h)-y/2}))==null||x.setProps({fill:this._freezeNormalHeaderColor}),this._changeToRow=u===void 0?R:Math.min(R,u.lastRow),this._changeToOffsetY=Math.min(b,h),this._activeViewport=v):((A=t.transformByState({left:Math.min(C,g)-y/2}))==null||A.setProps({fill:this._freezeActiveColor}),(k=o.transformByState({left:Math.min(C,g)-y/2}))==null||k.setProps({fill:this._freezeNormalHeaderColor}),this._changeToColumn=u===void 0?T:Math.min(T,u.lastColumn),this._changeToOffsetX=C,this._activeViewport=v)}),this._scenePointerUpSub=c.onPointerUp$.subscribeEvent(()=>{var N,D;c.resetCursor(),c.enableObjectsEvent(),this._clearObserverEvent();const{rowHeaderWidthAndMarginLeft:p,columnHeaderHeightAndMarginTop:v}=s;i===0&&(this._changeToRow===0||this._changeToRow===-1)||i===1&&(this._changeToColumn===0||this._changeToColumn===-1)?(t.setProps({fill:this._freezeNormalHeaderColor}),o.setProps({fill:this._freezeNormalMainColor})):(t==null||t.setProps({fill:this._freezeNormalHeaderColor}),o==null||o.setProps({fill:this._freezeNormalHeaderColor}));const C=ri/Math.max(c.scaleX,c.scaleY);i===0?(this._changeToRow===0||this._changeToRow===-1)&&(t.transformByState({top:v-C}),o.transformByState({top:v-C})):(this._changeToColumn===0||this._changeToColumn===-1)&&(t.transformByState({left:p-C}),o.transformByState({left:p-C}));const b=this._scrollManagerService.getCurrentScrollState()||{sheetViewStartRow:0,sheetViewStartColumn:0},{sheetViewStartRow:R,sheetViewStartColumn:T}=b;if(T==null||R==null)return;const M=this._context.unit,y=M.getActiveSheet();if(!y)return;const P=(N=y.getConfig())==null?void 0:N.freeze;let x=(P==null?void 0:P.xSplit)||0,A=(P==null?void 0:P.ySplit)||0;const k=(D=this._activeViewport)==null?void 0:D.viewportKey;i===0&&(!k||k===w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||k===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||k===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||k===w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP?A=this._changeToRow-(P.startRow-P.ySplit):A=this._changeToRow-R,A=A<0?0:A),i===1&&(!k||k===w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||k===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||k===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||k===w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT?x=this._changeToColumn-(P.startColumn-P.xSplit):x=this._changeToColumn-T,x=x<0?0:x),this._commandService.executeCommand(m.SetFrozenCommand.id,{startRow:A===0?-1:this._changeToRow,startColumn:x===0?-1:this._changeToColumn,ySplit:A,xSplit:x,unitId:M.getUnitId(),subUnitId:y.getSheetId()})})}_getViewports(){const e=this._getSheetObject();if(e==null)return;const{scene:t}=e,o=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT),i=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT),s=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP),l=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM),d=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP),c=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),u=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP),h=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT),g=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(!(o==null||i==null||s==null||l==null||d==null||c==null||u==null||h==null||g==null))return{viewMain:c,viewMainLeftTop:u,viewMainLeft:h,viewMainTop:g,viewColumnLeft:o,viewColumnRight:i,viewRowTop:s,viewRowBottom:l,viewLeftTop:d}}_bindViewportScroll(){const e=this._getViewports();if(!e)return;const{viewRowBottom:t,viewColumnRight:o,viewMainLeft:i,viewMainTop:s}=e;this.disposeWithMe(this._scrollManagerService.validViewportScrollInfo$.subscribe(l=>{if(!l)return;const{scrollX:d,scrollY:c,viewportScrollX:u,viewportScrollY:h}=l;t.isActive&&t.updateScrollVal({scrollY:c,viewportScrollY:h}),o.isActive&&o.updateScrollVal({scrollX:d,viewportScrollX:u}),i.isActive&&i.updateScrollVal({scrollY:c,viewportScrollY:h}),s.isActive&&s.updateScrollVal({scrollX:d,viewportScrollX:u})}))}_updateViewport(e=-1,t=-1,o=0,i=0,s=3){var x;const l=(x=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:x.skeleton;if(l==null)return;const{rowHeaderWidthAndMarginLeft:d,columnHeaderHeightAndMarginTop:c}=l,u=this._getViewports();if(!u)return;const{viewMain:h,viewMainLeftTop:g,viewMainLeft:S,viewMainTop:f,viewColumnLeft:p,viewColumnRight:v,viewRowTop:C,viewRowBottom:b,viewLeftTop:R}=u;v.resizeWhenFreezeChange({left:d,top:0,height:c,right:0}),b.resizeWhenFreezeChange({left:0,top:c,bottom:0,width:d}),R.resizeWhenFreezeChange({left:0,top:0,width:d,height:c});let T=!0,M=!0;g.enable(),(e===-1||e===0)&&(T=!1),(t===-1||t===0)&&(M=!1);const y=l.getNoMergeCellWithCoordByIndex(e-o,t-i,!1),P=l.getNoMergeCellWithCoordByIndex(e,t,!1);if(g.disable(),f.disable(),S.disable(),C.disable(),p.disable(),g.resetPadding(),f.resetPadding(),S.resetPadding(),C.resetPadding(),p.resetPadding(),T===!1&&M===!1)h.resizeWhenFreezeChange({left:d,top:c,bottom:0,right:0}),h.resetPadding(),S.resizeWhenFreezeChange({left:d,top:c,bottom:0,width:0}),f.resizeWhenFreezeChange({left:d,top:c,height:0,right:0}),g.resizeWhenFreezeChange({left:d,top:c,width:0,height:0}),C.resizeWhenFreezeChange({left:0,top:c,width:d,height:0}),p.resizeWhenFreezeChange({left:0,top:0,height:c,width:0});else if(T===!0&&M===!1){const A=P.startY-y.startY;h.resizeWhenFreezeChange({left:d,top:c+A,bottom:0,right:0}),h.setPadding({startY:y.startY,endY:P.startY,startX:0,endX:0}),s&2&&this._commandService.executeCommand(ze.id,{sheetViewStartRow:0,offsetY:0}),f.resizeWhenFreezeChange({left:d,top:c,height:A,right:0}),f.updateScrollVal({viewportScrollY:y.startY,rawScrollX:h.scrollX,viewportScrollX:h.viewportScrollX}),C.resizeWhenFreezeChange({left:0,top:c,width:d,height:A}),C.updateScrollVal({viewportScrollY:y.startY}),b.resizeWhenFreezeChange({left:0,top:c+A,bottom:0,width:d}),f.enable(),C.enable()}else if(T===!1&&M===!0){const A=P.startX-y.startX;h.resizeWhenFreezeChange({left:d+A,top:c,bottom:0,right:0}),h.setPadding({startX:y.startX,endX:P.startX,startY:0,endY:0}),s&1&&this._commandService.executeCommand(ze.id,{sheetViewStartColumn:0,offsetX:0}),S.resizeWhenFreezeChange({left:d,top:c,width:A,bottom:0,right:0}),S.updateScrollVal({viewportScrollX:y.startX,rawScrollY:h.scrollY,viewportScrollY:h.viewportScrollY}),p.resizeWhenFreezeChange({left:d,top:0,width:A,height:c}),p.updateScrollVal({viewportScrollX:y.startX}),v.resizeWhenFreezeChange({left:d+A,top:0,height:c,right:0}),S.enable(),p.enable()}else{const A=P.startX-y.startX,k=P.startY-y.startY;h.resizeWhenFreezeChange({left:d+A,top:c+k,bottom:0,right:0}),h.setPadding({startY:y.startY,endY:P.startY,startX:y.startX,endX:P.startX}),s&&this._commandService.executeCommand(ze.id,{...s&1?{sheetViewStartColumn:0,offsetX:0}:null,...s&2?{sheetViewStartRow:0,offsetY:0}:null}),S.resizeWhenFreezeChange({left:d,top:c+k,width:A,bottom:0}),S.updateScrollVal({viewportScrollX:y.startX,rawScrollY:h.scrollY,viewportScrollY:h.viewportScrollY}),f.resizeWhenFreezeChange({left:d+A,top:c,height:k,right:0}),f.updateScrollVal({viewportScrollY:y.startY,rawScrollX:h.scrollX,viewportScrollX:h.viewportScrollX}),g.resizeWhenFreezeChange({left:d,top:c,width:A,height:k}),g.updateScrollVal({viewportScrollX:y.startX,viewportScrollY:y.startY}),C.resizeWhenFreezeChange({left:0,top:c,width:d,height:k}),C.updateScrollVal({viewportScrollY:y.startY}),b.resizeWhenFreezeChange({left:0,top:c+k,bottom:0,width:d}),p.resizeWhenFreezeChange({left:d,top:0,width:A,height:c}),p.updateScrollVal({viewportScrollX:y.startX}),v.resizeWhenFreezeChange({left:d+A,top:0,height:c,right:0}),g.enable(),f.enable(),S.enable(),C.enable(),p.enable()}}_skeletonListener(){this.disposeWithMe(a.toDisposable(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(e=>{[m.SetWorksheetActiveOperation.id,m.InsertRangeMoveDownCommand.id,m.InsertRangeMoveRightCommand.id].includes((e==null?void 0:e.commandId)||"")&&this._refreshCurrent()})))}_refreshCurrent(){const t=this._context.unit.getActiveSheet();if(!t)return;const o=t.getConfig().freeze,{startRow:i=-1,startColumn:s=-1,ySplit:l=0,xSplit:d=0}=o;this._refreshFreeze(i,s,l,d,0)}_themeChangeListener(){this._themeChange(this._themeService.getCurrentTheme()),this.disposeWithMe(this._themeService.currentTheme$.subscribe(e=>{this._clearFreeze(),this._themeChange(e),this._refreshCurrent()}))}_themeChange(e){this._freezeNormalHeaderColor=e.grey400,this._freezeNormalMainColor=new a.ColorKit(e.grey400).setAlpha(mm).toRgbString(),this._freezeActiveColor=e.primaryColor,this._freezeHoverColor=e.grey500}_interceptorCommands(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{const t={redos:[],undos:[]},o=this._getFreeze();if(!o)return t;const i=s=>{const l=this._context.unit,d=l.getUnitId(),c=l.getActiveSheet();if(!c)return t;const u=c.getSheetId();this._refreshFreeze(s.startRow,s.startColumn,s.ySplit,s.xSplit,0);const h={...s,unitId:d,subUnitId:u,resetScroll:!1},g=m.SetFrozenMutationFactory(this._injector,h);return{undos:[{id:m.SetFrozenMutation.id,params:g}],redos:[{id:m.SetFrozenMutation.id,params:h}]}};if(e.id===m.InsertRowCommand.id){const s=e.params,{range:l,direction:d}=s,c=l.endRow-l.startRow+1;if(l.startRow+1<o.startRow||l.startRow+1===o.startRow&&d===a.Direction.UP){const u={...o,startRow:Math.max(1,o.startRow+c),ySplit:Math.max(1,o.ySplit+c)};return i(u)}}if(e.id===m.InsertColCommand.id){const s=e.params,{range:l,direction:d}=s,c=l.endColumn-l.startColumn+1;if(l.startColumn+1<o.startColumn||l.startColumn+1===o.startColumn&&d===a.Direction.LEFT){const u={...o,startColumn:Math.max(1,o.startColumn+c),xSplit:Math.max(1,o.xSplit+c)};return i(u)}}if(e.id===m.MoveColsCommand.id){const s=this._selectionManagerService.getCurrentSelections(),{fromRange:{startColumn:l},toRange:{startColumn:d}}=e.params,c=s==null?void 0:s.filter(C=>C.range.rangeType===a.RANGE_TYPE.COLUMN&&C.range.startColumn<=l&&l<=C.range.endColumn);if(!(c!=null&&c.length))return t;const u=c[0].range,h={...u,startColumn:d,endColumn:d+u.endColumn-u.startColumn};if(!o||o.startColumn<=0||u.startColumn>=o.startColumn&&h.startColumn>=o.startColumn||u.startColumn===h.startColumn||u.endColumn<o.startColumn&&h.startColumn<o.startColumn)return t;const g=u.endColumn-u.startColumn+1,S=Math.max(Math.min(o.startColumn,u.endColumn+1)-u.startColumn,0);let f,p;h.startColumn>=o.startColumn?(f=Math.max(o.startColumn-S,1),p=Math.max(o.xSplit-S,1)):(f=o.startColumn+g-S,p=o.xSplit+g-S);const v={...o,startColumn:f,xSplit:p};return i(v)}if(e.id===m.MoveRowsCommand.id){const s=this._selectionManagerService.getCurrentSelections(),{fromRange:{startRow:l},toRange:{startRow:d}}=e.params,c=s==null?void 0:s.filter(C=>C.range.rangeType===a.RANGE_TYPE.ROW&&C.range.startRow<=l&&l<=C.range.endRow);if(!(c!=null&&c.length))return t;const u=c[0].range,h={...u,startRow:d,endRow:d+u.endRow-u.startRow};if(!o||o.startRow<=0||u.startRow>=o.startRow&&h.startRow>=o.startRow||u.startRow===h.startRow||u.endRow<o.startRow&&h.startRow<o.startRow)return t;const g=u.endRow-u.startRow+1,S=Math.max(Math.min(o.startRow,u.endRow+1)-u.startRow,0);let f,p;h.startRow>=o.startRow?(f=Math.max(o.startRow-S,1),p=Math.max(o.ySplit-S,1)):(f=o.startRow+g-S,p=o.ySplit+g-S);const v={...o,startRow:f,ySplit:p};return i(v)}if(e.id===m.RemoveColCommand.id||e.id===m.RemoveRowCommand.id){const s=e.params,l=s.range;if(l.rangeType===a.RANGE_TYPE.COLUMN&&l.startColumn<o.startColumn){const d=Math.min(o.startColumn,l.endColumn+1)-l.startColumn,c={...o,startColumn:Math.max(1,o.startColumn-d),xSplit:Math.max(1,o.xSplit-d)};return i(c)}if(s.range.rangeType===a.RANGE_TYPE.ROW&&l.startRow<o.startRow){const d=Math.min(o.startRow,l.endRow+1)-l.startRow,c={...o,startRow:Math.max(1,o.startRow-d),ySplit:Math.max(1,o.ySplit-d)};return i(c)}}return t}}))}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{switch(e.id){case m.SetFrozenMutation.id:case Le.id:{const t=this._lastFreeze,o=this._context.unit,i=o.getActiveSheet(),s=e.params,{unitId:l,subUnitId:d}=s;if(!(l===o.getUnitId()&&d===(i==null?void 0:i.getSheetId())))return;const c=i.getConfig().freeze;if(this._lastFreeze=c,c==null)return;let u=0;const{startRow:h=-1,startColumn:g=-1,ySplit:S=0,xSplit:f=0}=c;(!t||t.startRow!==h||t.ySplit!==S)&&(u|=2),(!t||t.startColumn!==g||t.xSplit!==f)&&(u|=1),s.resetScroll===!1&&(u=0),this._refreshFreeze(h,g,S,f,u)}break;case m.SetWorksheetRowHeightMutation.id:{const t=this._getFreeze(),o=t&&e.params.ranges.some(i=>i.startRow<t.startRow);e.params&&o&&this._refreshCurrent()}break;case m.SetWorksheetColWidthMutation.id:{const t=this._getFreeze();e.params&&t&&e.params.ranges.some(o=>o.startColumn<t.startColumn)&&this._refreshCurrent()}break;case m.SetWorksheetRowAutoHeightMutation.id:{const t=e.params,o=this._getFreeze();if(o&&o.startRow>-1&&t.rowsAutoHeightInfo.some(i=>i.row<o.startRow)){const i=this._sheetSkeletonManagerService.currentSkeleton$.subscribe(()=>{this._refreshCurrent(),setTimeout(()=>{i.unsubscribe()})})}}break;case m.SetColHiddenMutation.id:case m.SetColVisibleMutation.id:{const t=e.params,o=this._getFreeze(),i=t.ranges;o&&o.startColumn>-1&&i.some(s=>s.startColumn<o.startColumn)&&this._refreshCurrent()}break;case m.SetRowHiddenMutation.id:case m.SetRowVisibleMutation.id:{const t=e.params,o=this._getFreeze(),i=t.ranges;o&&o.startRow>-1&&i.some(s=>s.startRow<o.startRow)&&this._refreshCurrent()}break;case yr.id:case Mr.id:this._refreshCurrent()}}))}_zoomRefresh(){const e=this._getSheetObject();if(e==null)return;const{scene:t}=e;this.disposeWithMe(t.onTransformChange$.subscribeEvent(o=>{[w.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale,w.TRANSFORM_CHANGE_OBSERVABLE_TYPE.all].includes(o.type)&&this._refreshCurrent()}))}_clearObserverEvent(){var t,o;this._getSheetObject()!=null&&((t=this._scenePointerMoveSub)==null||t.unsubscribe(),(o=this._scenePointerUpSub)==null||o.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_clearFreeze(){var t,o,i,s,l,d;(t=this._rowFreezeHeaderRect)==null||t.dispose(),(o=this._rowFreezeMainRect)==null||o.dispose(),(i=this._columnFreezeHeaderRect)==null||i.dispose(),(s=this._columnFreezeMainRect)==null||s.dispose(),this._getSheetObject()!=null&&([this._freezeDownSubs,this._freezePointerEnterSubs,this._freezePointerLeaveSubs].forEach(c=>{c==null||c.unsubscribe()}),this._freezeDownSubs=null,this._freezePointerEnterSubs=null,this._freezePointerLeaveSubs=null,(l=this._scenePointerMoveSub)==null||l.unsubscribe(),(d=this._scenePointerUpSub)==null||d.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_getPositionByIndex(e,t){var c;if(this._getSheetObject()==null)return;const i=(c=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:c.skeleton,s=i==null?void 0:i.getNoMergeCellWithCoordByIndex(e,t);if(i==null)return;if(s!=null&&(!isNaN(s.endX)||!isNaN(s.endY)))return s;const{rowHeaderWidthAndMarginLeft:l,columnHeaderHeightAndMarginTop:d}=i;return{startX:l,endX:l,startY:d,endY:d}}_getFreeze(){var t;const e=(t=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:t.skeleton.getWorksheetConfig();if(e!=null)return e.freeze}_getSheetObject(){return Ge(this._context.unit,this._context)}_refreshFreeze(e,t,o,i,s){var d;const l={startRow:e,startColumn:t,ySplit:o,xSplit:i};this._clearFreeze(),this._createFreeze(0,l),this._createFreeze(1,l),this._updateViewport(e,t,o,i,s),(d=this._getSheetObject())==null||d.spreadsheet.makeForceDirty()}};exports.HeaderFreezeRenderController=lm([xt(1,a.Inject(exports.SheetSkeletonManagerService)),xt(2,a.ICommandService),xt(3,a.Inject(m.SheetsSelectionsService)),xt(4,a.Inject(exports.SheetScrollManagerService)),xt(5,a.Inject(a.ThemeService)),xt(6,a.Inject(m.SheetInterceptorService)),xt(7,a.Inject(a.Injector))],exports.HeaderFreezeRenderController);function gm(n){const r=n.get(m.SheetsSelectionsService),e=n.get(m.RangeProtectionRuleModel),t=n.get(a.IUniverInstanceService),o=n.get(m.MergeCellController),i=t.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET);return O.combineLatest([r.selectionMoveEnd$,i.pipe(O.map(s=>{var l;return(l=s==null?void 0:s.getUnitId())!=null?l:""})),i.pipe(O.switchMap(s=>{var l;return(l=s==null?void 0:s.activeSheet$)!=null?l:O.of(null)}))]).pipe(O.map(([s,l,d])=>{if(!d||!s||s.length===0)return!1;const c=d.getSheetId(),u=s.map(S=>S.range);if(o.interceptor.fetchThroughInterceptors(m.MERGE_CELL_INTERCEPTOR_CHECK)(!1,u))return!0;const g=e.getSubunitRuleList(l,c).map(S=>S.ranges).flat();if(s.length<2){const S=s[0].range;return g.some(p=>a.Rectangle.intersects(p,S)&&!a.Rectangle.contains(p,S))}for(let S=0;S<s.length;S++)for(let f=S+1;f<s.length;f++)if(a.Rectangle.intersects(s[S].range,s[f].range))return!0;return!1}))}function Ml(n,r){return!!no(n,r,a.RANGE_TYPE.ROW)}function Pl(n,r){return!!no(n,r,a.RANGE_TYPE.COLUMN)}function no(n,r,e){return n.find(o=>{const i=o.range,{startRow:s,endRow:l,startColumn:d,endColumn:c,rangeType:u}=i;return u===a.RANGE_TYPE.ALL||u===a.RANGE_TYPE.NORMAL?!1:u===e&&(e===a.RANGE_TYPE.COLUMN&&d<=r&&r<=c||e===a.RANGE_TYPE.ROW&&s<=r&&r<=l)})}var Sm=Object.getOwnPropertyDescriptor,fm=(n,r,e,t)=>{for(var o=t>1?void 0:t?Sm(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},ii=(n,r)=>(e,t)=>r(e,t,n);const pm="__SpreadsheetHeaderMoveControllerBackground__",vm="__SpreadsheetHeaderMoveControllerShapeLine__",Cm="rgba(0, 0, 0, 0.1)",Im="rgb(119, 119, 119)",_m=4,si=a.createInterceptorKey("headerMovePermissionCheck");exports.HeaderMoveRenderController=class extends a.Disposable{constructor(e,t,o,i){super();E(this,"_startOffsetX",Number.NEGATIVE_INFINITY);E(this,"_startOffsetY",Number.NEGATIVE_INFINITY);E(this,"_moveHelperBackgroundShape");E(this,"_moveHelperLineShape");E(this,"_headerPointerDownSubs");E(this,"_headerPointerMoveSubs");E(this,"_headerPointerLeaveSubs");E(this,"_dragHeaderMoveSub");E(this,"_scenePointerUpSub");E(this,"_scrollTimer");E(this,"_changeFromColumn",-1);E(this,"_changeFromRow",-1);E(this,"_changeToColumn",-1);E(this,"_changeToRow",-1);E(this,"interceptor",new a.InterceptorManager({HEADER_MOVE_PERMISSION_CHECK:si}));E(this,"_workbookSelections");this._context=e,this._sheetSkeletonManagerService=o,this._commandService=i,this._workbookSelections=t.getWorkbookSelections(this._context.unitId),this._init()}dispose(){var e,t,o,i,s,l,d,c;(e=this._moveHelperBackgroundShape)==null||e.dispose(),(t=this._moveHelperLineShape)==null||t.dispose(),(o=this._headerPointerMoveSubs)==null||o.unsubscribe(),(i=this._headerPointerLeaveSubs)==null||i.unsubscribe(),(s=this._headerPointerDownSubs)==null||s.unsubscribe(),this._headerPointerMoveSubs=null,this._headerPointerLeaveSubs=null,this._headerPointerDownSubs=null,(l=this._dragHeaderMoveSub)==null||l.unsubscribe(),(d=this._scenePointerUpSub)==null||d.unsubscribe(),this._dragHeaderMoveSub=null,this._scenePointerUpSub=null,(c=this._scrollTimer)==null||c.dispose()}_init(){this._initialRowOrColumn(a.RANGE_TYPE.ROW),this._initialRowOrColumn(a.RANGE_TYPE.COLUMN)}_initialRowOrColumn(e=a.RANGE_TYPE.ROW){const t=this._context.components.get(he.COLUMN),o=this._context.components.get(he.ROW),i=this._context.scene,s=e===a.RANGE_TYPE.ROW?o:t,l=u=>{var b,R;const h=(b=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:b.skeleton;if(h==null)return;const g=(R=this._workbookSelections.getCurrentLastSelection())==null?void 0:R.range;if(!g||!this.interceptor.fetchThroughInterceptors(si)(!1,g))return;const f=this._workbookSelections.getCurrentSelections(),{row:p,column:v}=qe(u.offsetX,u.offsetY,i,h);if(!no(f,e===a.RANGE_TYPE.ROW?p:v,e)){i.resetCursor();return}i.setCursor(w.CURSOR_TYPE.GRAB)},d=()=>{var u,h;(u=this._moveHelperBackgroundShape)==null||u.hide(),(h=this._moveHelperLineShape)==null||h.hide(),i.resetCursor()},c=(u,h)=>{var W,H;if(h.isStopPropagation)return;const g=(W=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:W.skeleton;if(g==null)return;const S=(H=this._workbookSelections.getCurrentLastSelection())==null?void 0:H.range;if(!S||!this.interceptor.fetchThroughInterceptors(si)(!1,S))return;const{offsetX:p,offsetY:v}=u,C=i.getCoordRelativeToViewport(w.Vector2.FromArray([p,v])),{x:b,y:R}=C;this._startOffsetX=b,this._startOffsetY=R;const{row:T,column:M}=qe(u.offsetX,u.offsetY,i,g);let y;e===a.RANGE_TYPE.ROW?(this._changeFromRow=T,y=w.ScrollTimerType.Y):(this._changeFromColumn=M,y=w.ScrollTimerType.X);const P=this._workbookSelections.getCurrentSelections(),x=no(P,e===a.RANGE_TYPE.ROW?T:M,e);if(!x)return;const A=i.getScrollXYInfoByViewport(w.Vector2.FromArray([this._startOffsetX,this._startOffsetY]));this._newBackgroundAndLine(),i.setCursor(w.CURSOR_TYPE.GRABBING),i.disableObjectsEvent();let k=!1,N;const D=()=>{if(k)return;N=w.ScrollTimer.create(i,y),this._scrollTimer=N;const U=i.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);N.startScroll(b,R,U),k=!0};this._dragHeaderMoveSub=i.onPointerMove$.subscribeEvent(U=>{D();const{offsetX:B,offsetY:F}=U,{x:L,y:z}=i.getCoordRelativeToViewport(w.Vector2.FromArray([B,F]));this._rowColumnMoving(L,z,x,A,e),N.scrolling(L,z,()=>{this._rowColumnMoving(L,z,x,A,e)})}),this._scenePointerUpSub=i.onPointerUp$.subscribeEvent(()=>{var B,F,L;this._disposeBackgroundAndLine(),i.resetCursor(),i.enableObjectsEvent(),this._clearObserverEvent(),(B=this._scrollTimer)==null||B.dispose();const U=this._workbookSelections.getCurrentSelections();if(e===a.RANGE_TYPE.ROW){if(this._changeFromRow!==this._changeToRow&&this._changeToRow!==-1){const X=(F=((U==null?void 0:U.filter(Z=>Z.range.rangeType===a.RANGE_TYPE.ROW&&Z.range.startRow<=this._changeFromRow&&this._changeFromRow<=Z.range.endRow))||[])[0])==null?void 0:F.range;X&&this._commandService.executeCommand(m.MoveRowsCommand.id,{fromRange:X,toRange:{...X,startRow:this._changeToRow,endRow:this._changeToRow+X.endRow-X.startRow}})}this._changeToRow=this._changeFromRow=-1}else{if(this._changeFromColumn!==this._changeToColumn&&this._changeToColumn!==-1){const X=(L=((U==null?void 0:U.filter(Z=>Z.range.rangeType===a.RANGE_TYPE.COLUMN&&Z.range.startColumn<=this._changeFromColumn&&this._changeFromColumn<=Z.range.endColumn))||[])[0])==null?void 0:L.range;X&&this._commandService.executeCommand(m.MoveColsCommand.id,{fromRange:X,toRange:{...X,startColumn:this._changeToColumn,endColumn:this._changeToColumn+X.endColumn-X.startColumn}})}this._changeToColumn=this._changeFromColumn=-1}})};this._headerPointerMoveSubs=new O.Subscription,this._headerPointerMoveSubs.add(s.onPointerMove$.subscribeEvent(l)),this._headerPointerLeaveSubs=new O.Subscription,this._headerPointerLeaveSubs.add(s==null?void 0:s.onPointerLeave$.subscribeEvent(d)),this._headerPointerDownSubs=new O.Subscription,this._headerPointerDownSubs.add(s==null?void 0:s.onPointerDown$.subscribeEvent(c))}_rowColumnMoving(e,t,o,i,s){var z,X,Z,oe,Q,ie,$;const l=this._context.scene,d=(z=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:z.skeleton;if(d==null)return;const{rowHeaderWidth:c,columnHeaderHeight:u,rowTotalHeight:h,columnTotalWidth:g}=d,S=l.getViewportScrollXY(l.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX:f,scaleY:p}=l.getAncestorScale(),v=d.getCellIndexByOffset(e,t,f,p,S),{row:C,column:b}=v,R=d.getNoMergeCellWithCoordByIndex(C,b),{startX:T,startY:M,endX:y,endY:P}=R,x=this._sheetSkeletonManagerService.attachRangeWithCoord(o.range);if(x==null)return;const A=Math.max(f,f),{startX:k,endX:N,startY:D,endY:W,startRow:H,startColumn:U,endRow:B,endColumn:F}=x;s===a.RANGE_TYPE.ROW?(X=this._moveHelperBackgroundShape)==null||X.transformByState({height:W-D,width:g+c,left:0,top:D+(t-this._startOffsetY)/A+S.y-i.y}):(Z=this._moveHelperBackgroundShape)==null||Z.transformByState({height:h+u,width:N-k,left:k+(e-this._startOffsetX)/A+S.x-i.x,top:0}),(oe=this._moveHelperBackgroundShape)==null||oe.show();const L=_m/A;if(s===a.RANGE_TYPE.ROW){let j=0;if(C<=H)j=M-L/2,this._changeToRow=C;else if(C>B)j=P-L/2,this._changeToRow=C+1;else return;(Q=this._moveHelperLineShape)==null||Q.transformByState({height:L,width:g,left:c,top:j})}else{let j=0;if(b<=U)j=T-L/2,this._changeToColumn=b;else if(b>F)j=y-L/2,this._changeToColumn=b+1;else return;(ie=this._moveHelperLineShape)==null||ie.transformByState({height:h,width:L,left:j,top:u})}($=this._moveHelperLineShape)==null||$.show()}_clearObserverEvent(){var e,t;(e=this._dragHeaderMoveSub)==null||e.unsubscribe(),(t=this._scenePointerUpSub)==null||t.unsubscribe(),this._dragHeaderMoveSub=null,this._scenePointerUpSub=null}_newBackgroundAndLine(){const e=this._context.scene;this._moveHelperBackgroundShape=new w.Rect(pm,{fill:Cm,evented:!1,zIndex:100}),this._moveHelperLineShape=new w.Rect(vm,{fill:Im,evented:!1,zIndex:100}),e.addObjects([this._moveHelperBackgroundShape,this._moveHelperLineShape],bt)}_disposeBackgroundAndLine(){var e,t;(e=this._moveHelperBackgroundShape)==null||e.dispose(),(t=this._moveHelperLineShape)==null||t.dispose()}};exports.HeaderMoveRenderController=fm([ii(1,a.Inject(m.SheetsSelectionsService)),ii(2,a.Inject(exports.SheetSkeletonManagerService)),ii(3,a.ICommandService)],exports.HeaderMoveRenderController);var Xi=(n=>(n[n.VERTICAL=0]="VERTICAL",n[n.HORIZONTAL=1]="HORIZONTAL",n))(Xi||{});const bm="rgba(120, 120, 120, 0.01)",ai="rgb(68, 71, 70)",Gn=12,Rm=44,Yi=4;class Ia extends w.Shape{constructor(e,t){super(e,t);E(this,"_size",Gn);E(this,"_color",ai);E(this,"_mode",0);this.setShapeProps(t)}get size(){return this._size}get mode(){return this._mode}get color(){return this._color}_draw(e){const t=this.getScene();if(!t)return;const{scaleX:o,scaleY:i}=t.getAncestorScale(),s=Math.max(o,i),l=Gn/s,d=Yi/s;let{width:c,height:u}=this,h=0,g=0;this.mode===0?(c=d,h=l-d):(u=d,g=l-d),w.Rect.drawWith(e,{width:this.width,height:this.height,left:0,top:0,fill:bm}),w.Rect.drawWith(e,{width:c,height:u,fill:ai,radius:d}),e.save(),e.transform(1,0,0,1,h,g),w.Rect.drawWith(e,{width:c,height:u,fill:ai,radius:d}),e.restore()}setShapeProps(e){return e!=null&&e.size&&(this._size=e.size),e!=null&&e.mode&&(this._mode=e.mode),e!=null&&e.color&&(this._color=e.color),this.mode===0?this.transformByState({width:Gn,height:this.size}):this.transformByState({width:this.size,height:Gn}),this}}var Em=Object.getOwnPropertyDescriptor,Tm=(n,r,e,t)=>{for(var o=t>1?void 0:t?Em(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},li=(n,r)=>(e,t)=>r(e,t,n);const wm="__SpreadsheetHeaderResizeControllerShapeRow__",ym="__SpreadsheetHeaderResizeControllerShapeColumn__",_a="__SpreadsheetHeaderResizeControllerShapeHelper__",ba="rgb(199, 199, 199)",Mm=2,ci=a.createInterceptorKey("headerResizePermissionCheck");exports.HeaderResizeRenderController=class extends a.Disposable{constructor(e,t,o,i){super();E(this,"_currentRow",0);E(this,"_currentColumn",0);E(this,"_rowResizeRect");E(this,"_columnResizeRect");E(this,"_headerPointerSubs");E(this,"_scenePointerMoveSub");E(this,"_scenePointerUpSub");E(this,"_resizeHelperShape");E(this,"_startOffsetX",Number.POSITIVE_INFINITY);E(this,"_startOffsetY",Number.POSITIVE_INFINITY);E(this,"interceptor",new a.InterceptorManager({HEADER_RESIZE_PERMISSION_CHECK:ci}));this._context=e,this._sheetSkeletonManagerService=t,this._selectionManagerService=o,this._commandService=i,this._init()}dispose(){var e,t,o;(e=this._rowResizeRect)==null||e.dispose(),this._rowResizeRect=null,(t=this._columnResizeRect)==null||t.dispose(),this._columnResizeRect=null,(o=this._headerPointerSubs)==null||o.unsubscribe(),this._headerPointerSubs=null}_init(){const e=this._context.scene;this._rowResizeRect=new Ia(wm,{visible:!1,mode:Xi.HORIZONTAL,zIndex:100}),this._columnResizeRect=new Ia(ym,{visible:!1,mode:Xi.VERTICAL,zIndex:100}),e.addObjects([this._rowResizeRect,this._columnResizeRect],bt),this._initialHover(0),this._initialHover(1),this._initialHoverResize(0),this._initialHoverResize(1)}_initialHover(e=0){const t=this._context.components.get(he.COLUMN),o=this._context.components.get(he.ROW),i=this._context.scene,s=e===0?o:t,l=(c,u)=>{var h,g;(h=this._rowResizeRect)==null||h.hide(),(g=this._columnResizeRect)==null||g.hide()},d=(c,u)=>{var A;const h=(A=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:A.skeleton;if(h==null||this._rowResizeRect==null||this._columnResizeRect==null)return;const{rowHeaderWidth:g,columnHeaderHeight:S}=h,{startX:f,startY:p,endX:v,endY:C,row:b,column:R}=qe(c.offsetX,c.offsetY,i,h),T=qn(c.offsetX,c.offsetY,i),{scaleX:M,scaleY:y}=i.getAncestorScale(),P=Math.max(M,y),x=Gn/P;if(e===0){let k=p-x/2;if(T.y<=p+x/2&&T.y>=p)this._currentRow=b-1;else if(T.y>=C-x/2&&T.y<=C)this._currentRow=b,k=C-x/2;else{this._rowResizeRect.hide();return}if(this._currentRow===-1)return;if(!this.interceptor.fetchThroughInterceptors(ci)(null,{row:this._currentRow}))return!1;const D=Math.min(Rm,g/3);this._rowResizeRect.transformByState({left:g/2-D/2,top:k}),this._rowResizeRect.setShapeProps({size:D}),this._rowResizeRect.show()}else{let k=f-x/2;if(T.x<=f+x/2&&T.x>=f)this._currentColumn=R-1;else if(T.x>=v-x/2&&T.x<=v)this._currentColumn=R,k=v-x/2;else{this._columnResizeRect.hide();return}if(this._currentColumn===-1)return;if(!this.interceptor.fetchThroughInterceptors(ci)(null,{col:this._currentColumn}))return!1;const D=S*.7;this._columnResizeRect.transformByState({left:k,top:S/2-D/2}),this._columnResizeRect.setShapeProps({size:D}),this._columnResizeRect.show()}};this._headerPointerSubs=new O.Subscription,this._headerPointerSubs.add(s==null?void 0:s.onPointerMove$.subscribeEvent(d)),this._headerPointerSubs.add(s==null?void 0:s.onPointerLeave$.subscribeEvent(l))}_initialHoverResize(e=0){const t=this._context.scene,o=e===0?this._rowResizeRect:this._columnResizeRect;o!=null&&(this.disposeWithMe(o.onPointerEnter$.subscribeEvent(()=>{o!=null&&(o.show(),t.setCursor(e===0?w.CURSOR_TYPE.ROW_RESIZE:w.CURSOR_TYPE.COLUMN_RESIZE))})),this.disposeWithMe(o.onPointerLeave$.subscribeEvent(()=>{o!=null&&(o.hide(),t.resetCursor())})),this.disposeWithMe(o.onPointerDown$.subscribeEvent(i=>{var F,L,z,X,Z,oe,Q;const s=(F=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:F.skeleton;if(s==null)return;const l=this._context.scene,d=l.getEngine(),c=(d==null?void 0:d.height)||0,u=(d==null?void 0:d.width)||0,h=l.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),g=(((z=(L=h==null?void 0:h.getScrollBar())==null?void 0:L.horizonScrollTrack)==null?void 0:z.height)||0)+10,S=(((Z=(X=h==null?void 0:h.getScrollBar())==null?void 0:X.verticalScrollTrack)==null?void 0:Z.width)||0)+10,f=qn(i.offsetX,i.offsetY,l),{scaleX:p,scaleY:v}=l.getAncestorScale();this._startOffsetX=f.x,this._startOffsetY=f.y;const C=s.getOffsetByColumn(this._currentColumn),b=s.getOffsetByRow(this._currentRow),R=s.getNoMergeCellWithCoordByIndex(this._currentRow,this._currentColumn);let T=!1,M=0,y=0;const{columnTotalWidth:P,rowHeaderWidth:x,rowTotalHeight:A,columnHeaderHeight:k}=s,N=u>P+x?u:P+x,D=c>A+k?c:A+k,W=Math.max(p,v),H=Yi/W;e===0?this._resizeHelperShape=new w.Rect(_a,{width:N,height:H,fill:ba,left:0,top:b-H/2}):this._resizeHelperShape=new w.Rect(_a,{width:H,height:D,fill:ba,left:C-H/2,top:0});const U=((oe=this._columnResizeRect)==null?void 0:oe.left)||0,B=((Q=this._rowResizeRect)==null?void 0:Q.top)||0;l.addObject(this._resizeHelperShape,bt),l.disableObjectsEvent(),this._scenePointerMoveSub=l.onPointerMove$.subscribeEvent(ie=>{var se,Ie,Te,Mt,tt,Do;const $=l.getCoordRelativeToViewport(w.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),j=l.getScrollXYInfoByViewport($,h),Y=qn(ie.offsetX,ie.offsetY,l),{x:q,y:ee}=Y,{scaleX:de,scaleY:me}=l.getAncestorScale(),ce=Math.max(de,me),re=Yi/ce;M=q-this._startOffsetX-re/2,y=ee-this._startOffsetY-re/2,Math.abs(e===0?y:M)>=Mm&&(T=!0),e===0?(y>c-g+j.y-R.startY&&(y=c-g+j.y-R.startY),y<-(R.endY-R.startY)+2&&(y=-(R.endY-R.startY)+2),T&&((se=this._resizeHelperShape)==null||se.transformByState({top:b+y}),(Ie=this._rowResizeRect)==null||Ie.transformByState({top:B+y+re/2}),(Te=this._rowResizeRect)==null||Te.show(),l.setCursor(w.CURSOR_TYPE.ROW_RESIZE))):(M>u-S+j.x-R.startX&&(M=u-S+j.x-R.startX),M<-(R.endX-R.startX)+2&&(M=-(R.endX-R.startX)+2),T&&((Mt=this._resizeHelperShape)==null||Mt.transformByState({left:C+M}),(tt=this._columnResizeRect)==null||tt.transformByState({left:U+M+re/2}),(Do=this._columnResizeRect)==null||Do.show(),l.setCursor(w.CURSOR_TYPE.COLUMN_RESIZE)))}),this._scenePointerUpSub=l.onPointerUp$.subscribeEvent(ie=>{var j,Y,q;const $=this._context.scene;this._clearObserverEvent(),(j=this._resizeHelperShape)==null||j.dispose(),this._resizeHelperShape=null,$.enableObjectsEvent(),T&&($.resetCursor(),(Y=this._rowResizeRect)==null||Y.hide(),(q=this._columnResizeRect)==null||q.hide(),e===0?this._commandService.executeCommand(m.DeltaRowHeightCommand.id,{deltaY:y,anchorRow:this._currentRow}):this._commandService.executeCommand(m.DeltaColumnWidthCommand.id,{deltaX:M,anchorCol:this._currentColumn}))})})),this.disposeWithMe(o.onDblclick$.subscribeEvent(()=>{var h,g,S;this._context.scene.resetCursor();const s=(h=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:h.skeleton;if(!s)return;const l=0,d=0,c=s.worksheet.getRowCount()-1||0,u=s.worksheet.getColumnCount()-1||0;switch(e){case 1:{const f=this._selectionManagerService.getCurrentSelections(),p=[];for(let v=0;v<f.length;v++){const C=f[v];C.range.rangeType===a.RANGE_TYPE.COLUMN&&this._currentColumn<=C.range.endColumn&&this._currentColumn>=C.range.startColumn&&p.push({startColumn:C.range.startColumn,endColumn:C.range.endColumn,startRow:l,endRow:c})}p.length===0&&p.push({startColumn:this._currentColumn,endColumn:this._currentColumn,startRow:l,endRow:c}),this._commandService.executeCommand(bo.id,{ranges:p}),(g=this._columnResizeRect)==null||g.hide();break}case 0:this._commandService.executeCommand(m.SetWorksheetRowIsAutoHeightCommand.id,{ranges:[{startRow:this._currentRow,endRow:this._currentRow,startColumn:d,endColumn:u}]}),(S=this._rowResizeRect)==null||S.hide();break}})))}_clearObserverEvent(){var e,t;(e=this._scenePointerMoveSub)==null||e.unsubscribe(),(t=this._scenePointerUpSub)==null||t.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}};exports.HeaderResizeRenderController=Tm([li(1,a.Inject(exports.SheetSkeletonManagerService)),li(2,a.Inject(m.SheetsSelectionsService)),li(3,a.ICommandService)],exports.HeaderResizeRenderController);var Pm=Object.getOwnPropertyDescriptor,Om=(n,r,e,t)=>{for(var o=t>1?void 0:t?Pm(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Uo=(n,r)=>(e,t)=>r(e,t,n);const xm=60;exports.SheetRenderController=class extends a.RxDisposable{constructor(e,t,o,i,s){super();E(this,"_renderFrameTimeMetric",null);E(this,"_renderFrameTags",{});E(this,"_afterRenderMetric$",new O.Subject);this._context=e,this._sheetSkeletonManagerService=t,this._sheetRenderService=o,this._commandService=i,this._telemetryService=s,this._addNewRender(),this._initRenderMetricSubscriber()}_addNewRender(){const{scene:e,engine:t,unit:o}=this._context;this._addComponent(o),this._initRerenderScheduler(),this._initCommandListener();const i=this._context.unit.getActiveSheet();if(!i)throw new Error("No active sheet found");const s=i.getSheetId();this._sheetSkeletonManagerService.setCurrent({sheetId:s});const l=()=>e.render();this.disposeWithMe(this._context.activated$.subscribe(d=>{d?t.runRenderLoop(l):t.stopRenderLoop(l)}))}_initRenderMetricSubscriber(){if(!this._telemetryService)return;const{engine:e}=this._context;e.beginFrame$.subscribe(()=>{this._renderFrameTimeMetric=null,this._renderFrameTags={}}),e.endFrame$.subscribe(()=>{this._renderFrameTimeMetric&&Object.keys(this._renderFrameTimeMetric).filter(i=>i.startsWith(w.SHEET_EXTENSION_PREFIX)).length>0&&this._afterRenderMetric$.next({frameTimeMetric:this._renderFrameTimeMetric,tags:this._renderFrameTags})}),e.renderFrameTimeMetric$.subscribe(([o,i])=>{this._renderFrameTimeMetric||(this._renderFrameTimeMetric={}),this._renderFrameTimeMetric[o]||(this._renderFrameTimeMetric[o]=[]),this._renderFrameTimeMetric[o].push(Math.round(i*100)/100)}),e.renderFrameTags$.subscribe(([o,i])=>{this._renderFrameTags[o]=i});const t=[];this._afterRenderMetric$.pipe(O.withLatestFrom(e.endFrame$)).subscribe(([o,i])=>{t.push({FPS:i.FPS,elapsedTime:i.elapsedTime,frameTime:Math.round(i.frameTime*100)/100,...o.frameTimeMetric,...o.tags}),t.length>xm&&(this._renderMetricCapture(t),t.length=0)})}_renderMetricCapture(e){const t=e;if(t.length===0)return;const o=g=>{let S=0;const p=Object.entries(g).filter(([C,b])=>Array.isArray(b)).map(([C])=>C).reduce((C,b)=>{const R=g[b].reduce((T,M)=>T+M,0);return C[b]=R,C},{});return Object.keys(g).filter(C=>C.startsWith(w.SHEET_EXTENSION_PREFIX)).forEach(C=>{S+=p[C]}),{...p,extensionTotal:S}},i=e.map(g=>({...g,...o(g)})),l=(g=>Object.entries(g[0]).filter(([p,v])=>!["elapsedTime"].includes(p)).filter(([p,v])=>typeof v=="number").map(([p])=>p).reduce((p,v)=>{const C=g.map(M=>M[v]),b=Math.max(...C),R=Math.min(...C),T=C.reduce((M,y)=>M+y,0)/C.length;return p[v]={max:Math.round(b*100)/100,min:Math.round(R*100)/100,avg:Math.round(T*100)/100},p},{}))(i),d=t[t.length-1].elapsedTime,c=this._context.unit.getActiveSheet().getSheetId(),u=this._context.unit.getUnitId(),h={sheetId:c,unitId:u,elapsedTimeToStart:d,...l};this._telemetryService.capture("sheet_render_cost",h)}_addComponent(e){const{scene:t,components:o}=this._context,i=e.getActiveSheet(),s=new w.Spreadsheet(he.MAIN);this._addViewport(i);const l=new w.SpreadsheetRowHeader(he.ROW),d=new w.SpreadsheetColumnHeader(he.COLUMN),c=new w.Rect(he.LEFT_TOP,{zIndex:2,left:-1,top:-1,fill:"rgb(248, 249, 250)",stroke:"rgb(217, 217, 217)",strokeWidth:1});this._context.mainComponent=s,o.set(he.MAIN,s),o.set(he.ROW,l),o.set(he.COLUMN,d),o.set(he.LEFT_TOP,c),t.addObjects([s],Fs),t.addObjects([l,d,c],bt),t.enableLayerCache(Fs,bt)}_initViewports(e,t,o){const l=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN,e,{left:t.width,top:o.height,bottom:0,right:0,isWheelPreventDefaultX:!0,allowCache:!0,bufferEdgeX:100,bufferEdgeY:100}),d=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP,e,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:0,bufferEdgeY:0}),c=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT,e,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:0,bufferEdgeY:100}),u=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP,e,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:100,bufferEdgeY:0}),h=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP,e,{active:!1,isWheelPreventDefaultX:!0}),g=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM,e,{left:0,top:o.height,bottom:0,width:t.width,isWheelPreventDefaultX:!0}),S=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT,e,{active:!1,isWheelPreventDefaultX:!0}),f=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT,e,{left:t.width,top:0,height:o.height,right:0,isWheelPreventDefaultX:!0}),p=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP,e,{left:0,top:0,width:t.width,height:o.height,isWheelPreventDefaultX:!0});return{viewMain:l,viewLeftTop:p,viewMainLeftTop:d,viewMainLeft:c,viewMainTop:u,viewColumnLeft:S,viewRowTop:h,viewRowBottom:g,viewColumnRight:f}}_addViewport(e){const t=this._context.scene,{rowHeader:o,columnHeader:i}=e.getConfig(),{viewMain:s}=this._initViewports(t,o,i);return new w.ScrollBar(s),t.attachControl(),s}_initRerenderScheduler(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(e=>{if(!e)return null;const{skeleton:t,sheetId:o}=e,i=this._context.unit,s=i==null?void 0:i.getSheetBySheetId(o);if(i==null||s==null)return;const{mainComponent:l,components:d}=this._context,c=l,u=d.get(he.ROW),h=d.get(he.COLUMN),g=d.get(he.LEFT_TOP),{rowHeaderWidth:S,columnHeaderHeight:f}=t;c==null||c.updateSkeleton(t),u==null||u.updateSkeleton(t),h==null||h.updateSkeleton(t),g==null||g.transformByState({width:S,height:f})}))}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{const{unit:t}=this._context,{id:o}=e;if(m.COMMAND_LISTENER_SKELETON_CHANGE.includes(o)||this._sheetRenderService.checkMutationShouldTriggerRerender(o)){const i=e.params,{unitId:s,subUnitId:l}=i,d=t.getActiveSheet();if(!d)return;const c=this._context.unitId,u=d.getSheetId();if(s!==c||l!==u)return;this._sheetSkeletonManagerService.makeDirty({sheetId:u,commandId:o},!0),this._sheetSkeletonManagerService.setCurrent({sheetId:u,commandId:o})}else m.COMMAND_LISTENER_VALUE_CHANGE.includes(o)&&this._sheetSkeletonManagerService.reCalculate();e.type===a.CommandType.MUTATION&&this._markUnitDirty(e)}))}_markUnitDirty(e){const{mainComponent:t,scene:o}=this._context;if(e.id===G.SetFormulaCalculationNotificationMutation.id&&e.params.stageInfo!=null||(t&&t.makeDirty(),o.makeDirty(),!e.params))return;const i=e.params,s=this._spreadsheetViewports(o);if(e.id===m.SetRangeValuesMutation.id&&i.cellValue){const l=this._cellValueToRange(i.cellValue),d=this._rangeToBounds([l]);this._markViewportDirty(s,d),t.setDirtyArea(d)}if(e.id===m.MoveRangeMutation.id&&i.from&&i.to){const l=i.fromRange||this._cellValueToRange(i.from.value),d=i.toRange||this._cellValueToRange(i.to.value),c=this._rangeToBounds([l,d]);this._markViewportDirty(s,c),t.setDirtyArea(c)}}_cellValueToRange(e){let t=0,o=0,i=0,s=0;for(const[h,g]of Object.entries(e)){for(const S in g)t>Number(S)&&(t=Number(S)),o<Number(S)&&(o=Number(S));i>Number(h)&&(i=Number(h)),s<Number(h)&&(s=Number(h))}return{startRow:i,endRow:s,startColumn:t,endColumn:o}}_rangeToBounds(e){const t=this._sheetSkeletonManagerService.getCurrentParam().skeleton,{rowHeightAccumulation:o,columnWidthAccumulation:i,rowHeaderWidth:s,columnHeaderHeight:l}=t,d=[];for(const c of e){const{startRow:u,endRow:h,startColumn:g,endColumn:S}=c,f=u===0?0:o[u-1]+l,p=o[h]+l,v=g===0?0:i[g-1]+s,C=i[S]+s;d.push({top:f,left:v,bottom:p,right:C,width:C-v,height:p-f})}return d}_markViewportDirty(e,t){const o=e.filter(i=>i.isActive&&i.cacheBound);for(const i of o)for(const s of t)a.Rectangle.hasIntersectionBetweenTwoRect(i.cacheBound,s)&&i.markDirty(!0)}_spreadsheetViewports(e){return e.getViewports().filter(t=>["viewMain","viewMainLeftTop","viewMainTop","viewMainLeft"].includes(t.viewportKey))}};exports.SheetRenderController=Om([Uo(1,a.Inject(exports.SheetSkeletonManagerService)),Uo(2,a.Inject(exports.SheetsRenderService)),Uo(3,a.ICommandService),Uo(4,a.Optional(pd.ITelemetryService))],exports.SheetRenderController);var Ve=function(){return Ve=Object.assign||function(n){for(var r,e=1,t=arguments.length;e<t;e++){r=arguments[e];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(n[o]=r[o])}return n},Ve.apply(this,arguments)},Am=function(n,r){var e={};for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&r.indexOf(t)<0&&(e[t]=n[t]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,t=Object.getOwnPropertySymbols(n);o<t.length;o++)r.indexOf(t[o])<0&&Object.prototype.propertyIsEnumerable.call(n,t[o])&&(e[t[o]]=n[t[o]]);return e},Ee=V.forwardRef(function(n,r){var e=n.icon,t=n.id,o=n.className,i=n.extend,s=Am(n,["icon","id","className","extend"]),l="univerjs-icon univerjs-icon-".concat(t," ").concat(o||"").trim(),d=V.useRef("_".concat(Dm()));return Ol(e,"".concat(t),{defIds:e.defIds,idSuffix:d.current},Ve({ref:r,className:l},s),i)});function Ol(n,r,e,t,o){return V.createElement(n.tag,Ve(Ve({key:r},km(n,e,o)),t),(Nm(n,e).children||[]).map(function(i,s){return Ol(i,"".concat(r,"-").concat(n.tag,"-").concat(s),e,void 0,o)}))}function km(n,r,e){var t=Ve({},n.attrs);e!=null&&e.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=e.colorChannel1);var o=r.defIds;return!o||o.length===0||(n.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+r.idSuffix),Object.entries(t).forEach(function(i){var s=i[0],l=i[1];typeof l=="string"&&(t[s]=l.replace(/url\(#(.*)\)/,"url(#$1".concat(r.idSuffix,")")))})),t}function Nm(n,r){var e,t=r.defIds;return!t||t.length===0?n:n.tag==="defs"&&(!((e=n.children)===null||e===void 0)&&e.length)?Ve(Ve({},n),{children:n.children.map(function(o){return typeof o.attrs.id=="string"&&t&&t.indexOf(o.attrs.id)>-1?Ve(Ve({},o),{attrs:Ve(Ve({},o.attrs),{id:o.attrs.id+r.idSuffix})}):o})}):n}function Dm(){return Math.random().toString(36).substring(2,8)}Ee.displayName="UniverIcon";var Hm={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"}}]},xl=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"autofill",ref:r,icon:Hm}))});xl.displayName="Autofill";var Vm={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"}}]},ht=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"check-mark-single",ref:r,icon:Vm}))});ht.displayName="CheckMarkSingle";var Wm={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"}}]},Al=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"close-single",ref:r,icon:Wm}))});Al.displayName="CloseSingle";var Um={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"]},kl=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"convert-single",ref:r,icon:Um}))});kl.displayName="ConvertSingle";var Lm={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"}}]},Ur=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"delete-single",ref:r,icon:Lm}))});Ur.displayName="DeleteSingle";var Bm={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"}}]}]},Gi=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"dropdown-single",ref:r,icon:Bm}))});Gi.displayName="DropdownSingle";var Fm={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"}}]},Ps=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"error-single",ref:r,icon:Fm}))});Ps.displayName="ErrorSingle";var jm={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"}}]},Nl=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"eyelash-single",ref:r,icon:jm}))});Nl.displayName="EyelashSingle";var zm={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"}}]},Dl=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"fx-single",ref:r,icon:zm}))});Dl.displayName="FxSingle";var Xm={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"}}]},Hl=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"hide-gridlines",ref:r,icon:Xm}))});Hl.displayName="HideGridlines";var Ym={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"}}]},Os=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"increase-single",ref:r,icon:Ym}))});Os.displayName="IncreaseSingle";var Gm={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"}}]},xs=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"lock-single",ref:r,icon:Gm}))});xs.displayName="LockSingle";var Zm={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"}}]},Pn=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"more-down-single",ref:r,icon:Zm}))});Pn.displayName="MoreDownSingle";var Km={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"}}]},Zi=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"more-single",ref:r,icon:Km}))});Zi.displayName="MoreSingle";var qm={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"}}]}]},Vl=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"paint-bucket",ref:r,icon:qm}))});Vl.displayName="PaintBucket";var Qm={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"}}]}]},Wl=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"paste-special",ref:r,icon:Qm}))});Wl.displayName="PasteSpecial";var Jm={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"}}]},Ul=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"protect-single",ref:r,icon:Jm}))});Ul.displayName="ProtectSingle";var $m={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"}}]},Ki=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"warning-single",ref:r,icon:$m}))});Ki.displayName="WarningSingle";var eg={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"}}]},As=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"write-single",ref:r,icon:eg}))});As.displayName="WriteSingle";function tg(n,r){if(n.length!==r.length)return!1;const e=n.sort((o,i)=>o.id.localeCompare(i.id)),t=r.sort((o,i)=>o.id.localeCompare(i.id));return e.every((o,i)=>{var s,l;return((s=o.subject)==null?void 0:s.userID)===((l=t[i].subject)==null?void 0:l.userID)&&o.role===t[i].role})}function Ll(n,r){return r.some(e=>ng(n,e))}function ng(n,r){const{startRow:e,startColumn:t,endColumn:o,endRow:i}=r,s=n.getMatrixWithMergedCells(e,t,i,o);let l=!1;return s.forValue((d,c,u)=>{if(u&&(d!==e||c!==t)&&n.cellHasValue(u))return l=!0,!1}),l}function Bl(n,r,e,t){const o=[],i=[],s=e.getSheetId();return t.forEach(l=>{const d=og(e,l),c={unitId:r,subUnitId:s,cellValue:d.getData()},u=m.SetRangeValuesUndoMutationFactory(n,c);o.push({id:m.SetRangeValuesMutation.id,params:u}),i.push({id:m.SetRangeValuesMutation.id,params:c})}),{undos:o,redos:i}}function og(n,r){const{startRow:e,startColumn:t,endColumn:o,endRow:i}=r,s=n.getMatrixWithMergedCells(e,t,i,o,a.CellModeEnum.Intercepted),l=new a.ObjectMatrix;let d=null;return s.forValue((c,u,h)=>{var g,S,f,p;h&&c>=e&&u>=t&&(!d&&n.cellHasValue(h)&&(h.v!==""||((p=(f=(S=(g=h.p)==null?void 0:g.body)==null?void 0:S.dataStream)==null?void 0:f.length)!=null?p:0)>2)&&(d=h),l.setValue(c,u,null))}),l.setValue(e,t,d),l}function rg(n,r,e,t){const o=e.getActiveViewportByCoord(w.Vector2.FromArray([n,r]));if(!o)return;const{scaleX:i,scaleY:s}=e.getAncestorScale(),l={x:o.viewportScrollX,y:o.viewportScrollY},d=t.getCellIndexByOffset(n,r,i,s,l),c=t.worksheet.getMergedCell(d.row,d.column);return{actualRow:c?c.startRow:d.row,actualCol:c?c.startColumn:d.column,mergeCell:c,row:d.row,col:d.column}}function Ra(n,r,e,t){const o=t.getFreeze();if(!o||o.startRow<=0&&o.startColumn<=0||n>=o.startRow&&r>=o.startColumn)return e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(n<o.startRow&&r<o.startColumn)return e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(n<o.startRow&&r>=o.startColumn)return e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(n>=o.startRow&&r<o.startColumn)return e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)}function ig(n,r,e,t){const o=Ea(n.left,n.top,r,e,t),i=Ea(n.right,n.bottom,r,e,t);return{left:o.x,top:o.y,right:i.x,bottom:i.y}}function Ea(n,r,e,t,o){const{scaleX:i,scaleY:s}=e.getAncestorScale(),l=e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!l)return{x:n,y:r};const d=o.getFreeze(),{startColumn:c,startRow:u,xSplit:h,ySplit:g}=d,S=t.getNoMergeCellWithCoordByIndex(u-g,c-h,!1),f=t.getNoMergeCellWithCoordByIndex(u,c,!1),{rowHeaderWidth:p,columnHeaderHeight:v}=t,C=f.startX-S.startX,b=f.startY-S.startY,{top:R,left:T,viewportScrollX:M,viewportScrollY:y}=l;let P;n>T?P=(n-M)*i:P=(C+p-(T-n))*i;let x;return r>R?x=(r-y)*s:x=(b+v-(R-r))*i,{x:P,y:x}}function Fl(n,r,e,t,o){let i=t,s=o;e.overflowCache.forValue((c,u,h)=>{h.startRow<=i&&h.endRow>=i&&h.startColumn<=s&&h.endColumn>=s&&(s=u,i=c)});const l=e.getCellWithCoordByIndex(i,s);return{unitId:n.getUnitId(),subUnitId:r.getSheetId(),workbook:n,worksheet:r,row:l.actualRow,col:l.actualColumn}}function jl(n,r,e,t,o,i){const{scene:s}=n,l=r.getUnitId(),{skeleton:d,sheetId:c}=t,u=rg(o,i,s,d);if(!u)return null;let{actualCol:h,actualRow:g}=u;const S={unitId:l,subUnitId:c,workbook:r,worksheet:e,row:g,col:h};d.overflowCache.forValue((y,P,x)=>{x.startRow<=g&&x.endRow>=g&&x.startColumn<=h&&x.endColumn>=h&&(h=P,g=y)});const f=d.getCellWithCoordByIndex(g,h),p=Fl(r,e,d,g,h);let v;f.mergeInfo?v=f.mergeInfo:v={startRow:p.row,endRow:p.row,startColumn:p.col,endColumn:p.col};const C=s.getActiveViewportByCoord(w.Vector2.FromArray([o,i]));if(!C)return;const{scaleX:b,scaleY:R}=s.getAncestorScale(),T={x:C.viewportScrollX,y:C.viewportScrollY};return{position:{startX:(d.getOffsetByColumn(v.startColumn-1)-T.x)*b,endX:(d.getOffsetByColumn(v.endColumn)-T.x)*b,startY:(d.getOffsetByRow(v.startRow-1)-T.y)*R,endY:(d.getOffsetByRow(v.endRow)-T.y)*R},location:S,overflowLocation:p}}const wt={type:a.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge",handler:async(n,r)=>{const e=n.get(a.ICommandService),t=n.get(a.IUndoRedoService),o=n.get(a.IUniverInstanceService),i=n.get(I.IConfirmService),s=n.get(a.LocaleService),l=r.unitId,d=r.subUnitId,c=r.selections,u=m.getAddMergeMutationRangeByType(c,r.value),h=o.getUniverSheetInstance(l).getSheetBySheetId(d),g=[],S=[],f=Ll(h,u);if(f&&!r.defaultMerge&&!await i.confirm({id:"merge.confirm.add-worksheet-merge",title:{title:"merge.confirm.title"},cancelText:s.t("merge.confirm.cancel"),confirmText:s.t("merge.confirm.confirm")}))return!1;const p={unitId:l,subUnitId:d,ranges:a.Tools.deepClone(u)},v={unitId:l,subUnitId:d,ranges:a.Tools.deepClone(u)},C=m.RemoveMergeUndoMutationFactory(n,p),b=m.AddMergeUndoMutationFactory(n,v);if(C.ranges.length>0&&g.push({id:m.RemoveWorksheetMergeMutation.id,params:C}),g.push({id:m.AddWorksheetMergeMutation.id,params:v}),S.push({id:m.RemoveWorksheetMergeMutation.id,params:b}),C.ranges.length>0&&S.push({id:m.AddWorksheetMergeMutation.id,params:C}),f){const x=Bl(n,l,h,u);g.unshift(...x.redos),S.push(...x.undos)}const R=m.AddMergeRedoSelectionsOperationFactory(n,r,u);R&&g.push(R);const T=m.AddMergeUndoSelectionsOperationFactory(n,r);T&&S.push(T);const y=n.get(m.SheetInterceptorService).onCommandExecute({id:wt.id,params:{unitId:l,subUnitId:d,ranges:u}});return g.push(...y.redos),S.push(...y.undos),a.sequenceExecute(g,e).result?(t.pushUndoRedo({unitID:l,undoMutations:S,redoMutations:g}),!0):!1}},ks={type:a.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-all",handler:async n=>{var u;const r=n.get(a.ICommandService),t=(u=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:u.map(h=>h.range),o=vs(Or.MergeAll,t);if(!(o!=null&&o.length))return!1;const s=n.get(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const l=s.getActiveSheet();if(!l)return!1;const d=s.getUnitId(),c=l.getSheetId();return r.executeCommand(wt.id,{selections:o,unitId:d,subUnitId:c})}},Ns={type:a.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-vertical",handler:async n=>{var u;const r=n.get(a.ICommandService),t=(u=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:u.map(h=>h.range),o=vs(Or.MergeVertical,t);if(!(o!=null&&o.length))return!1;const s=n.get(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const l=s.getActiveSheet();if(!l)return!1;const d=s.getUnitId(),c=l.getSheetId();return r.executeCommand(wt.id,{value:a.Dimension.COLUMNS,selections:o,unitId:d,subUnitId:c})}},Ds={type:a.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-horizontal",handler:async n=>{var u;const r=n.get(a.ICommandService),t=(u=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:u.map(h=>h.range),o=vs(Or.MergeHorizontal,t);if(!(o!=null&&o.length))return!1;const s=n.get(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const l=s.getActiveSheet();if(!l)return!1;const d=s.getUnitId(),c=l.getSheetId();return r.executeCommand(wt.id,{value:a.Dimension.ROWS,selections:o,unitId:d,subUnitId:c})}},Wn={type:a.CommandType.COMMAND,id:"sheet.command.delete-range-move-left-confirm",handler:async n=>{const r=n.get(I.IConfirmService),e=n.get(a.ICommandService),t=n.get(a.LocaleService),o=n.get(m.SheetsSelectionsService),i=n.get(a.IUniverInstanceService),s=o.getCurrentSelections();if(!s)return!1;const l=m.getSheetCommandTarget(i);if(!l)return!1;const{worksheet:d}=l;let c=s[0].range;if(!c)return!1;c={...c,endColumn:d.getColumnCount()-1};const u=S=>S.endRow-S.startRow;return!d.getMergeData().find(S=>{const f=a.Rectangle.getIntersects(S,c);return f?u(S)>u(f):!1})||await r.confirm({id:Wn.id,title:{title:t.t("merge.confirm.waring")},children:{title:t.t("merge.confirm.dismantleMergeCellWaring")},cancelText:t.t("button.cancel"),confirmText:t.t("button.confirm")})?e.executeCommand(m.DeleteRangeMoveLeftCommand.id):!0}},Yt={type:a.CommandType.COMMAND,id:"sheet.command.delete-range-move-up-confirm",handler:async n=>{const r=n.get(I.IConfirmService),e=n.get(a.ICommandService),t=n.get(a.LocaleService),o=n.get(m.SheetsSelectionsService),i=n.get(a.IUniverInstanceService),s=o.getCurrentSelections();if(!s)return!1;const l=m.getSheetCommandTarget(i);if(!l)return!1;const{worksheet:d}=l;let c=s[0].range;if(!c)return!1;c={...c,endRow:d.getRowCount()-1};for(let S=c.startRow;S<=c.endRow;S++)if(d.getRowFiltered(S)&&await r.confirm({id:Yt.id,title:{title:t.t("filter.confirm.error")},children:{title:t.t("filter.confirm.notAllowedToInsertRange")},confirmText:t.t("button.confirm")}))return!1;const u=S=>S.endColumn-S.startColumn;return!d.getMergeData().find(S=>{const f=a.Rectangle.getIntersects(S,c);return f?u(S)>u(f):!1})||await r.confirm({id:Yt.id,title:{title:t.t("merge.confirm.waring")},children:{title:t.t("merge.confirm.dismantleMergeCellWaring")},cancelText:t.t("button.cancel"),confirmText:t.t("button.confirm")})?e.executeCommand(m.DeleteRangeMoveUpCommand.id):!0}},Gt={type:a.CommandType.COMMAND,id:"sheet.command.insert-range-move-down-confirm",handler:async n=>{const r=n.get(I.IConfirmService),e=n.get(a.ICommandService),t=n.get(a.LocaleService),o=n.get(m.SheetsSelectionsService),i=n.get(a.IUniverInstanceService),s=o.getCurrentSelections();if(!s)return!1;const l=m.getSheetCommandTarget(i);if(!l)return!1;const{worksheet:d}=l;let c=s[0].range;if(!c)return!1;c={...c,endRow:d.getRowCount()-1};for(let S=c.startRow;S<=c.endRow;S++)if(d.getRowFiltered(S)&&await r.confirm({id:Gt.id,title:{title:t.t("filter.confirm.error")},children:{title:t.t("filter.confirm.notAllowedToInsertRange")},confirmText:t.t("button.confirm")}))return!1;const u=S=>S.endColumn-S.startColumn;return!d.getMergeData().find(S=>{const f=a.Rectangle.getIntersects(S,c);return f?u(S)>u(f):!1})||await r.confirm({id:Gt.id,title:{title:t.t("merge.confirm.waring")},children:{title:t.t("merge.confirm.dismantleMergeCellWaring")},cancelText:t.t("button.cancel"),confirmText:t.t("button.confirm")})?e.executeCommand(m.InsertRangeMoveDownCommand.id):!0}},Un={type:a.CommandType.COMMAND,id:"sheet.command.insert-range-move-right-confirm",handler:async n=>{const r=n.get(I.IConfirmService),e=n.get(a.ICommandService),t=n.get(a.LocaleService),o=n.get(m.SheetsSelectionsService),i=n.get(a.IUniverInstanceService),s=o.getCurrentSelections();if(!s)return!1;const l=m.getSheetCommandTarget(i);if(!l)return!1;const{worksheet:d}=l;let c=s[0].range;if(!c)return!1;c={...c,endColumn:d.getColumnCount()-1};const u=S=>S.endRow-S.startRow;return!d.getMergeData().find(S=>{const f=a.Rectangle.getIntersects(S,c);return f?u(S)>u(f):!1})||await r.confirm({id:Un.id,title:{title:t.t("merge.confirm.waring")},children:{title:t.t("merge.confirm.dismantleMergeCellWaring")},cancelText:t.t("button.cancel"),confirmText:t.t("button.confirm")})?e.executeCommand(m.InsertRangeMoveRightCommand.id):!0}};var zl=(n=>(n[n.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",n[n.UNIVER_DOC=1]="UNIVER_DOC",n[n.UNIVER_SHEET=2]="UNIVER_SHEET",n[n.UNIVER_SLIDE=3]="UNIVER_SLIDE",n[n.UNIVER_PROJECT=4]="UNIVER_PROJECT",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(zl||{}),ne=(n=>(n[n.View=0]="View",n[n.Edit=1]="Edit",n[n.ManageCollaborator=2]="ManageCollaborator",n[n.Print=3]="Print",n[n.Duplicate=4]="Duplicate",n[n.Comment=5]="Comment",n[n.Copy=6]="Copy",n[n.Share=7]="Share",n[n.Export=8]="Export",n[n.MoveWorksheet=9]="MoveWorksheet",n[n.DeleteWorksheet=10]="DeleteWorksheet",n[n.HideWorksheet=11]="HideWorksheet",n[n.RenameWorksheet=12]="RenameWorksheet",n[n.CreateWorksheet=13]="CreateWorksheet",n[n.SetWorksheetStyle=14]="SetWorksheetStyle",n[n.EditWorksheetCell=15]="EditWorksheetCell",n[n.InsertHyperlink=16]="InsertHyperlink",n[n.Sort=17]="Sort",n[n.Filter=18]="Filter",n[n.PivotTable=19]="PivotTable",n[n.FloatImg=20]="FloatImg",n[n.History=21]="History",n[n.RwHgtClWdt=22]="RwHgtClWdt",n[n.ViemRwHgtClWdt=23]="ViemRwHgtClWdt",n[n.ViewFilter=24]="ViewFilter",n[n.MoveSheet=25]="MoveSheet",n[n.DeleteSheet=26]="DeleteSheet",n[n.HideSheet=27]="HideSheet",n[n.CopySheet=28]="CopySheet",n[n.RenameSheet=29]="RenameSheet",n[n.CreateSheet=30]="CreateSheet",n[n.SelectProtectedCells=31]="SelectProtectedCells",n[n.SelectUnProtectedCells=32]="SelectUnProtectedCells",n[n.SetCellStyle=33]="SetCellStyle",n[n.SetCellValue=34]="SetCellValue",n[n.SetRowStyle=35]="SetRowStyle",n[n.SetColumnStyle=36]="SetColumnStyle",n[n.InsertRow=37]="InsertRow",n[n.InsertColumn=38]="InsertColumn",n[n.DeleteRow=39]="DeleteRow",n[n.DeleteColumn=40]="DeleteColumn",n[n.EditExtraObject=41]="EditExtraObject",n[n.Delete=42]="Delete",n[n.RecoverHistory=43]="RecoverHistory",n[n.ViewHistory=44]="ViewHistory",n[n.CreatePermissionObject=45]="CreatePermissionObject",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(ne||{}),ke=(n=>(n[n.Reader=0]="Reader",n[n.Editor=1]="Editor",n[n.Owner=2]="Owner",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(ke||{}),ct=(n=>(n[n.Unkonwn=0]="Unkonwn",n[n.Workbook=1]="Workbook",n[n.Worksheet=2]="Worksheet",n[n.SelectRange=3]="SelectRange",n[n.Document=4]="Document",n[n.Slide=5]="Slide",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(ct||{}),Ke=(n=>(n[n.SomeCollaborator=0]="SomeCollaborator",n[n.AllCollaborator=1]="AllCollaborator",n[n.OneSelf=2]="OneSelf",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(Ke||{});const oo="UNIVER_SHEET_PERMISSION_PANEL",rr="UNIVER_SHEET_PERMISSION_USER_PART",Hs="UNIVER_SHEET_PERMISSION_BACKGROUND",Xl="UNIVER_SHEET_PERMISSION_USER_DIALOG",Yl="UNIVER_SHEET_PERMISSION_DIALOG",ir="UNIVER_SHEET_PERMISSION_USER_DIALOG_ID",sr="UNIVER_SHEET_PERMISSION_DIALOG_ID",Lo={[ne.Copy]:"Copy",[ne.SetCellStyle]:"SetCellStyle",[ne.SetCellValue]:"SetCellValue",[ne.SetRowStyle]:"SetRowStyle",[ne.SetColumnStyle]:"SetColumnStyle",[ne.InsertRow]:"InsertRow",[ne.InsertColumn]:"InsertColumn",[ne.InsertHyperlink]:"InsertHyperlink",[ne.DeleteRow]:"DeleteRow",[ne.DeleteColumn]:"DeleteColumn",[ne.Sort]:"Sort",[ne.Filter]:"Filter",[ne.PivotTable]:"PivotTable",[ne.EditExtraObject]:"EditExtraObject"},sg=[ne.Copy,ne.SetCellStyle,ne.SetCellValue,ne.SetRowStyle,ne.SetColumnStyle,ne.InsertRow,ne.InsertColumn,ne.InsertHyperlink,ne.DeleteRow,ne.DeleteColumn,ne.Sort,ne.Filter,ne.PivotTable,ne.EditExtraObject,ne.View],Gl="sheet-permission-menu-icon",ag="sheet-permission-delete-icon",lg="sheet-permission-edit-icon",cg="sheet-permission-check-icon",Zl="sheet-permission-lock-icon",dg={unitId:"",subUnitId:"",permissionId:"",unitType:m.UnitObject.SelectRange,id:"",ranges:[],viewState:m.ViewStateEnum.OthersCanView,editState:m.EditStateEnum.OnlyMe};class On{constructor(){E(this,"_rule",dg);E(this,"_visible",!1)}setVisible(r){this._visible=r}getVisible(){return this._visible}reset(){this.setVisible(!1)}}class yt{constructor(){E(this,"_userList",[]);E(this,"_oldCollaboratorList",[]);E(this,"_selectUserList",[]);E(this,"_selectUserList$",new O.BehaviorSubject(this._selectUserList));E(this,"selectUserList$",this._selectUserList$.asObservable())}get userList(){return this._userList}setCanEditUserList(r){this._userList=r}reset(){this._userList=[],this._oldCollaboratorList=[],this._selectUserList=[],this._selectUserList$.next([])}get oldCollaboratorList(){return this._oldCollaboratorList}setOldCollaboratorList(r){this._oldCollaboratorList=r}get selectUserList(){return this._selectUserList}setSelectUserList(r){this._selectUserList=r,this._selectUserList$.next(r)}}const Qe={type:a.CommandType.OPERATION,id:"sheet-permission.operation.openPanel",async handler(n,r={}){const e=n.get(I.ISidebarService),t=n.get(On),o=n.get(yt),{showDetail:i=!0,fromSheetBar:s=!1,rule:l,oldRule:d}=r,c={header:{title:"permission.panel.title"},children:{label:oo,showDetail:i,fromSheetBar:s,rule:l,oldRule:d},width:330,onClose:()=>{t.reset(),o.reset()}};return t.setVisible(!0),e.open(c),!0}},wo={type:a.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-toolbar",async handler(n){return await n.get(a.ICommandService).executeCommand(Qe.id,{showDetail:!0}),!0}},Wt={type:a.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-context-menu",async handler(n){return await n.get(a.ICommandService).executeCommand(Qe.id,{showDetail:!0}),!0}},Ut={type:a.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-context-menu",async handler(n){return await n.get(a.ICommandService).executeCommand(Qe.id,{showDetail:!1}),!0}},yo={type:a.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-sheet-bar",async handler(n){return await n.get(a.ICommandService).executeCommand(Qe.id,{fromSheetBar:!0,showDetail:!0}),!0}},Mo={type:a.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-sheet-bar",async handler(n){return await n.get(a.ICommandService).executeCommand(Qe.id,{showDetail:!1}),!0}},Lt={type:a.CommandType.COMMAND,id:"sheet.command.delete-range-protection-from-context-menu",async handler(n){var h;const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(a.IUndoRedoService),o=n.get(m.SheetsSelectionsService),i=n.get(m.WorksheetProtectionRuleModel),s=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s.getActiveSheet(),d=s.getUnitId(),c=l.getSheetId(),u=i.getRule(d,c);if(u!=null&&u.permissionId)return r.executeCommand(m.DeleteWorksheetProtectionCommand.id,{unitId:d,subUnitId:c,rule:u});{const g=(h=o.getCurrentLastSelection())==null?void 0:h.range;if(!g)return!1;const p=n.get(m.RangeProtectionRuleModel).getSubunitRuleList(d,c).find(v=>v.ranges.some(C=>a.Rectangle.intersects(C,g)));if(p){const v={unitId:d,subUnitId:c,ruleIds:[p.id]};return await r.executeCommand(m.DeleteRangeProtectionMutation.id,v)&&t.pushUndoRedo({unitID:d,redoMutations:[{id:m.DeleteRangeProtectionMutation.id,params:v}],undoMutations:[{id:m.AddRangeProtectionMutation.id,params:{unitId:d,subUnitId:c,rules:[p]}}]}),!0}else return!1}}},Bt={type:a.CommandType.COMMAND,id:"sheet.command.set-range-protection-from-context-menu",async handler(n){var u;const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(m.WorksheetProtectionRuleModel),i=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=i.getActiveSheet(),l=i.getUnitId(),d=s.getSheetId(),c=o.getRule(l,d);if(c!=null&&c.permissionId){const h={...c,unitId:l,subUnitId:d,ranges:[]};return await r.executeCommand(Qe.id,{showDetail:!0,rule:a.Tools.deepClone(h),oldRule:a.Tools.deepClone(h)}),!0}else{const h=(u=t.getCurrentLastSelection())==null?void 0:u.range;if(!h)return!1;const f=n.get(m.RangeProtectionRuleModel).getSubunitRuleList(l,d).find(p=>{var v;return(v=p==null?void 0:p.ranges)==null?void 0:v.some(C=>a.Rectangle.intersects(C,h))});if(f){const p={...f,unitId:l,subUnitId:d};return await r.executeCommand(Qe.id,{showDetail:!0,rule:a.Tools.deepClone(p),oldRule:a.Tools.deepClone(p)}),!0}else return!1}}},xn={id:"sheet.command.remove-row-confirm",type:a.CommandType.COMMAND,handler:async(n,r)=>{var c;const e=n.get(m.SheetsSelectionsService);let t=r==null?void 0:r.range;if(t||(t=(c=e.getCurrentLastSelection())==null?void 0:c.range),!t)return!1;const o=n.get(a.ICommandService),i=n.get(a.IUniverInstanceService),s=m.getSheetCommandTarget(i);if(!s)return!1;const{worksheet:l}=s,d=l.getVisibleRows();if($a(d,[t])){const u=n.get(I.IConfirmService),h=n.get(a.LocaleService);return await u.confirm({id:"sheet.confirm.remove-row",title:{title:h.t("info.problem")},children:{title:h.t("rightClick.deleteAllRowsAlert")},cancelText:h.t("button.cancel"),confirmText:h.t("button.confirm")}),!1}return await o.executeCommand(m.RemoveRowCommand.id,{range:t}),!0}},An={id:"sheet.command.remove-col-confirm",type:a.CommandType.COMMAND,handler:async(n,r)=>{var c;const e=n.get(m.SheetsSelectionsService);let t=r==null?void 0:r.range;if(t||(t=(c=e.getCurrentLastSelection())==null?void 0:c.range),!t)return!1;const o=n.get(a.ICommandService),i=n.get(a.IUniverInstanceService),s=m.getSheetCommandTarget(i);if(!s)return!1;const{worksheet:l}=s,d=l.getVisibleCols();if(el(d,[t])){const u=n.get(I.IConfirmService),h=n.get(a.LocaleService);return await u.confirm({id:"sheet.confirm.remove-col",title:{title:h.t("info.problem")},children:{title:h.t("rightClick.deleteAllColumnsAlert")},cancelText:h.t("button.cancel"),confirmText:h.t("button.confirm")}),!1}return await o.executeCommand(m.RemoveColCommand.id,{range:t}),!0}},Po={id:"sheet.command.remove-sheet-confirm",type:a.CommandType.COMMAND,handler:async(n,r)=>{const{subUnitId:e}=r,t=n.get(I.IConfirmService),o=n.get(a.ICommandService),i=n.get(a.LocaleService);return await t.confirm({id:"sheet.confirm.remove-sheet",title:{title:i.t("sheetConfig.deleteSheet")},children:{title:i.t("sheetConfig.deleteSheetContent")},cancelText:i.t("button.cancel"),confirmText:i.t("button.confirm")})?(await o.executeCommand(m.RemoveSheetCommand.id,{subUnitId:e}),!0):!1}},on=a.createIdentifier("univer.sheetbar-service");class Kl extends a.Disposable{constructor(){super();E(this,"renameId$");E(this,"removeId$");E(this,"scroll$");E(this,"scrollX$");E(this,"addSheet$");E(this,"_renameId$");E(this,"_removeId$");E(this,"_scroll$");E(this,"_scrollX$");E(this,"_addSheet$");E(this,"_currentHandler",null);this._renameId$=new O.Subject,this.renameId$=this._renameId$.asObservable(),this._removeId$=new O.Subject,this.removeId$=this._removeId$.asObservable(),this._scroll$=new O.Subject,this.scroll$=this._scroll$.asObservable(),this._scrollX$=new O.Subject,this.scrollX$=this._scrollX$.asObservable(),this._addSheet$=new O.Subject,this.addSheet$=this._addSheet$.asObservable()}setRenameId(e){this._renameId$.next(e)}setRemoveId(e){this._removeId$.next(e)}setScroll(e){this._scroll$.next(e)}setScrollX(e){this._scrollX$.next(e)}setAddSheet(e){this._addSheet$.next(e)}triggerSheetBarMenu(){var e;(e=this._currentHandler)==null||e.handleSheetBarMenu()}registerSheetBarMenuHandler(e){if(this._currentHandler)throw new Error("There is already a context menu handler!");return this._currentHandler=e,a.toDisposable(()=>{this._currentHandler=null})}}const Oo={id:"ui-sheet.command.show-menu-list",type:a.CommandType.OPERATION,handler:async n=>(n.get(on).triggerSheetBarMenu(),!0)},xo={type:a.CommandType.COMMAND,id:"sheet.command.delete-worksheet-protection-from-sheet-bar",async handler(n,r){if(!r)return!1;const e=n.get(a.ICommandService),t=n.get(a.IUndoRedoService),o=n.get(m.WorksheetProtectionRuleModel),s=n.get(a.IUniverInstanceService).getCurrentUnitForType(zl.UNIVER_SHEET),l=s==null?void 0:s.getActiveSheet(),d=s.getUnitId();if(!l)return!1;const c=l.getSheetId(),u=o.getRule(d,c);if(await e.executeCommand(m.DeleteWorksheetProtectionCommand.id,{unitId:d,subUnitId:c})){const g=[{id:m.DeleteWorksheetProtectionCommand.id,params:{unitId:d,subUnitId:c}}],S=[{id:m.AddWorksheetProtectionCommand.id,params:{unitId:d,rule:u}}];t.pushUndoRedo({unitID:d,redoMutations:g,undoMutations:S})}return!0}},Ao={type:a.CommandType.COMMAND,id:"sheet.command.change-sheet-protection-from-sheet-bar",async handler(n){return await n.get(a.ICommandService).executeCommand("sheet-permission.operation.openDialog"),!0}},Lr={id:"sheet.operation.set-activate-cell-edit",type:a.CommandType.OPERATION,handler:(n,r)=>(n.get(Se).setEditCell(r),!0)},ko={id:"sheet.operation.rename-sheet",type:a.CommandType.OPERATION,handler:async(n,r)=>{const e=n.get(on);return r&&e.setRenameId(r.subUnitId),!0}},Vs={type:a.CommandType.OPERATION,id:"sheet-permission.operation.openDialog",async handler(n,r){const e=n.get(I.IDialogService);return e.close("DESKTOP_FIND_REPLACE_DIALOG"),e.open({id:sr,title:{title:"permission.dialog.allowedPermissionType"},children:{label:Yl},width:393,destroyOnClose:!0,onClose:()=>e.close(sr)}),!0}},ro="DefinedNameContainer",Br={id:"sidebar.operation.defined-name",type:a.CommandType.COMMAND,handler:async(n,r)=>{const e=n.get(I.ISidebarService);n.get(J.IEditorService);const t=n.get(a.LocaleService),o=n.get(a.IUniverInstanceService),i=m.getSheetCommandTarget(o);if(!i)return!1;const{unitId:s}=i;switch(r.value){case"open":e.open({id:ro,header:{title:t.t("definedName.featureTitle")},children:{label:ro},onClose:()=>{},width:333});break;case"close":default:e.close();break}return!0}},ug=()=>_.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[_.jsx("path",{d:"M0.98999 1.08218H-0.0100098V0.0821838H0.98999V1.08218Z",fill:"black"}),_.jsx("path",{d:"M5.78992 1.08218H2.78992V0.0821838H5.78992V1.08218Z",fill:"black"}),_.jsx("path",{d:"M7.58984 1.08218H8.58984V0.0821838H7.58984V1.08218Z",fill:"black"}),_.jsx("path",{d:"M14.9152 1.08218H13.9152V0.0821838H14.9152V1.08218Z",fill:"black"}),_.jsx("path",{d:"M16.7151 1.08218H19.7151V0.0821838H16.7151V1.08218Z",fill:"black"}),_.jsx("path",{d:"M22.515 1.08218H21.515V0.0821838H22.515V1.08218Z",fill:"black"}),_.jsx("path",{d:"M27.8405 1.08218H28.8405V0.0821838H27.8405V1.08218Z",fill:"black"}),_.jsx("path",{d:"M33.6404 1.08218H30.6404V0.0821838H33.6404V1.08218Z",fill:"black"}),_.jsx("path",{d:"M35.4403 1.08218H36.4403V0.0821838H35.4403V1.08218Z",fill:"black"}),_.jsx("path",{d:"M42.7657 1.08218H41.7657V0.0821838H42.7657V1.08218Z",fill:"black"}),_.jsx("path",{d:"M44.5657 1.08218H47.5657V0.0821838H44.5657V1.08218Z",fill:"black"}),_.jsx("path",{d:"M50.3656 1.08218H49.3656V0.0821838H50.3656V1.08218Z",fill:"black"}),_.jsx("path",{d:"M55.691 1.08218H56.691V0.0821838H55.691V1.08218Z",fill:"black"}),_.jsx("path",{d:"M61.491 1.08218H58.491V0.0821838H61.491V1.08218Z",fill:"black"}),_.jsx("path",{d:"M63.2909 1.08218H64.2909V0.0821838H63.2909V1.08218Z",fill:"black"}),_.jsx("path",{d:"M70.6163 1.08218H69.6163V0.0821838H70.6163V1.08218Z",fill:"black"}),_.jsx("path",{d:"M72.4163 1.08218H75.4163V0.0821838H72.4163V1.08218Z",fill:"black"}),_.jsx("path",{d:"M78.2162 1.08218H77.2162V0.0821838H78.2162V1.08218Z",fill:"black"}),_.jsx("path",{d:"M83.5416 1.08218H84.5416V0.0821838H83.5416V1.08218Z",fill:"black"}),_.jsx("path",{d:"M89.3416 1.08218H86.3416V0.0821838H89.3416V1.08218Z",fill:"black"}),_.jsx("path",{d:"M91.1415 1.08218H92.1415V0.0821838H91.1415V1.08218Z",fill:"black"}),_.jsx("path",{d:"M98.4669 1.08218H97.4669V0.0821838H98.4669V1.08218Z",fill:"black"}),_.jsx("path",{d:"M100.267 1.08218H103.267V0.0821838H100.267V1.08218Z",fill:"black"}),_.jsx("path",{d:"M106.067 1.08218H105.067V0.0821838H106.067V1.08218Z",fill:"black"}),_.jsx("path",{d:"M111.392 1.08218H112.392V0.0821838H111.392V1.08218Z",fill:"black"}),_.jsx("path",{d:"M117.192 1.08218H114.192V0.0821838H117.192V1.08218Z",fill:"black"}),_.jsx("path",{d:"M118.992 1.08218H119.992V0.0821838H118.992V1.08218Z",fill:"black"})]}),hg=()=>_.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[_.jsx("path",{d:"M-0.0100098 1.15771H0.98999V0.157715H-0.0100098V1.15771Z",fill:"black"}),_.jsx("path",{d:"M2.78992 1.15771H5.78992V0.157715H2.78992V1.15771Z",fill:"black"}),_.jsx("path",{d:"M8.58984 1.15771H7.58984V0.157715H8.58984V1.15771Z",fill:"black"}),_.jsx("path",{d:"M10.3899 1.15771H11.3899V0.157715H10.3899V1.15771Z",fill:"black"}),_.jsx("path",{d:"M19.0903 1.15771H18.0903V0.157715H19.0903V1.15771Z",fill:"black"}),_.jsx("path",{d:"M20.8903 1.15771H23.8903V0.157715H20.8903V1.15771Z",fill:"black"}),_.jsx("path",{d:"M26.6902 1.15771H25.6902V0.157715H26.6902V1.15771Z",fill:"black"}),_.jsx("path",{d:"M28.4902 1.15771H29.4902V0.157715H28.4902V1.15771Z",fill:"black"}),_.jsx("path",{d:"M37.1907 1.15771H36.1907V0.157715H37.1907V1.15771Z",fill:"black"}),_.jsx("path",{d:"M38.9906 1.15771H41.9906V0.157715H38.9906V1.15771Z",fill:"black"}),_.jsx("path",{d:"M44.7905 1.15771H43.7905V0.157715H44.7905V1.15771Z",fill:"black"}),_.jsx("path",{d:"M46.5906 1.15771H47.5906V0.157715H46.5906V1.15771Z",fill:"black"}),_.jsx("path",{d:"M55.291 1.15771H54.291V0.157715H55.291V1.15771Z",fill:"black"}),_.jsx("path",{d:"M57.0909 1.15771H60.0909V0.157715H57.0909V1.15771Z",fill:"black"}),_.jsx("path",{d:"M62.8909 1.15771H61.8909V0.157715H62.8909V1.15771Z",fill:"black"}),_.jsx("path",{d:"M64.6909 1.15771H65.6909V0.157715H64.6909V1.15771Z",fill:"black"}),_.jsx("path",{d:"M73.3914 1.15771H72.3914V0.157715H73.3914V1.15771Z",fill:"black"}),_.jsx("path",{d:"M75.1913 1.15771H78.1913V0.157715H75.1913V1.15771Z",fill:"black"}),_.jsx("path",{d:"M80.9912 1.15771H79.9912V0.157715H80.9912V1.15771Z",fill:"black"}),_.jsx("path",{d:"M82.7913 1.15771H83.7913V0.157715H82.7913V1.15771Z",fill:"black"}),_.jsx("path",{d:"M91.4917 1.15771H90.4917V0.157715H91.4917V1.15771Z",fill:"black"}),_.jsx("path",{d:"M93.2916 1.15771H96.2916V0.157715H93.2916V1.15771Z",fill:"black"}),_.jsx("path",{d:"M99.0916 1.15771H98.0916V0.157715H99.0916V1.15771Z",fill:"black"}),_.jsx("path",{d:"M100.892 1.15771H101.892V0.157715H100.892V1.15771Z",fill:"black"}),_.jsx("path",{d:"M109.592 1.15771H108.592V0.157715H109.592V1.15771Z",fill:"black"}),_.jsx("path",{d:"M111.392 1.15771H114.392V0.157715H111.392V1.15771Z",fill:"black"}),_.jsx("path",{d:"M117.192 1.15771H116.192V0.157715H117.192V1.15771Z",fill:"black"}),_.jsx("path",{d:"M118.992 1.15771H119.992V0.157715H118.992V1.15771Z",fill:"black"})]}),mg=()=>_.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[_.jsx("path",{d:"M-0.00842285 1.22449H2.99158V0.224487H-0.00842285V1.22449Z",fill:"black"}),_.jsx("path",{d:"M6.14941 1.22449H9.14941V0.224487H6.14941V1.22449Z",fill:"black"}),_.jsx("path",{d:"M15.3073 1.22449H12.3073V0.224487H15.3073V1.22449Z",fill:"black"}),_.jsx("path",{d:"M18.4651 1.22449H21.4651V0.224487H18.4651V1.22449Z",fill:"black"}),_.jsx("path",{d:"M27.6229 1.22449H24.6229V0.224487H27.6229V1.22449Z",fill:"black"}),_.jsx("path",{d:"M30.7808 1.22449H33.7808V0.224487H30.7808V1.22449Z",fill:"black"}),_.jsx("path",{d:"M39.9386 1.22449H36.9386V0.224487H39.9386V1.22449Z",fill:"black"}),_.jsx("path",{d:"M43.0964 1.22449H46.0964V0.224487H43.0964V1.22449Z",fill:"black"}),_.jsx("path",{d:"M52.2543 1.22449H49.2543V0.224487H52.2543V1.22449Z",fill:"black"}),_.jsx("path",{d:"M55.4121 1.22449H58.4121V0.224487H55.4121V1.22449Z",fill:"black"}),_.jsx("path",{d:"M64.5699 1.22449H61.5699V0.224487H64.5699V1.22449Z",fill:"black"}),_.jsx("path",{d:"M67.7278 1.22449H70.7278V0.224487H67.7278V1.22449Z",fill:"black"}),_.jsx("path",{d:"M76.8856 1.22449H73.8856V0.224487H76.8856V1.22449Z",fill:"black"}),_.jsx("path",{d:"M80.0435 1.22449H83.0435V0.224487H80.0435V1.22449Z",fill:"black"}),_.jsx("path",{d:"M89.2013 1.22449H86.2013V0.224487H89.2013V1.22449Z",fill:"black"}),_.jsx("path",{d:"M92.3591 1.22449H95.3591V0.224487H92.3591V1.22449Z",fill:"black"}),_.jsx("path",{d:"M101.517 1.22449H98.517V0.224487H101.517V1.22449Z",fill:"black"}),_.jsx("path",{d:"M104.675 1.22449H107.675V0.224487H104.675V1.22449Z",fill:"black"}),_.jsx("path",{d:"M113.833 1.22449H110.833V0.224487H113.833V1.22449Z",fill:"black"}),_.jsx("path",{d:"M116.99 1.22449H119.99V0.224487H116.99V1.22449Z",fill:"black"})]}),gg=()=>_.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[_.jsx("path",{d:"M-0.00976562 1.65707H0.990234V0.657074H-0.00976562V1.65707Z",fill:"black"}),_.jsx("path",{d:"M2.32361 1.65707H3.32361V0.657074H2.32361V1.65707Z",fill:"black"}),_.jsx("path",{d:"M5.65698 1.65707H4.65698V0.657074H5.65698V1.65707Z",fill:"black"}),_.jsx("path",{d:"M6.99036 1.65707H7.99036V0.657074H6.99036V1.65707Z",fill:"black"}),_.jsx("path",{d:"M10.3237 1.65707H9.32373V0.657074H10.3237V1.65707Z",fill:"black"}),_.jsx("path",{d:"M11.6571 1.65707H12.6571V0.657074H11.6571V1.65707Z",fill:"black"}),_.jsx("path",{d:"M14.9905 1.65707H13.9905V0.657074H14.9905V1.65707Z",fill:"black"}),_.jsx("path",{d:"M16.3239 1.65707H17.3239V0.657074H16.3239V1.65707Z",fill:"black"}),_.jsx("path",{d:"M19.6572 1.65707H18.6572V0.657074H19.6572V1.65707Z",fill:"black"}),_.jsx("path",{d:"M20.9906 1.65707H21.9906V0.657074H20.9906V1.65707Z",fill:"black"}),_.jsx("path",{d:"M24.324 1.65707H23.324V0.657074H24.324V1.65707Z",fill:"black"}),_.jsx("path",{d:"M25.6573 1.65707H26.6573V0.657074H25.6573V1.65707Z",fill:"black"}),_.jsx("path",{d:"M28.9907 1.65707H27.9907V0.657074H28.9907V1.65707Z",fill:"black"}),_.jsx("path",{d:"M30.3241 1.65707H31.3241V0.657074H30.3241V1.65707Z",fill:"black"}),_.jsx("path",{d:"M33.6575 1.65707H32.6575V0.657074H33.6575V1.65707Z",fill:"black"}),_.jsx("path",{d:"M34.9908 1.65707H35.9908V0.657074H34.9908V1.65707Z",fill:"black"}),_.jsx("path",{d:"M38.3242 1.65707H37.3242V0.657074H38.3242V1.65707Z",fill:"black"}),_.jsx("path",{d:"M39.6576 1.65707H40.6576V0.657074H39.6576V1.65707Z",fill:"black"}),_.jsx("path",{d:"M42.991 1.65707H41.991V0.657074H42.991V1.65707Z",fill:"black"}),_.jsx("path",{d:"M44.3243 1.65707H45.3243V0.657074H44.3243V1.65707Z",fill:"black"}),_.jsx("path",{d:"M47.6577 1.65707H46.6577V0.657074H47.6577V1.65707Z",fill:"black"}),_.jsx("path",{d:"M48.9911 1.65707H49.9911V0.657074H48.9911V1.65707Z",fill:"black"}),_.jsx("path",{d:"M52.3245 1.65707H51.3245V0.657074H52.3245V1.65707Z",fill:"black"}),_.jsx("path",{d:"M53.6578 1.65707H54.6578V0.657074H53.6578V1.65707Z",fill:"black"}),_.jsx("path",{d:"M56.9912 1.65707H55.9912V0.657074H56.9912V1.65707Z",fill:"black"}),_.jsx("path",{d:"M58.3246 1.65707H59.3246V0.657074H58.3246V1.65707Z",fill:"black"}),_.jsx("path",{d:"M61.658 1.65707H60.658V0.657074H61.658V1.65707Z",fill:"black"}),_.jsx("path",{d:"M62.9913 1.65707H63.9913V0.657074H62.9913V1.65707Z",fill:"black"}),_.jsx("path",{d:"M66.3247 1.65707H65.3247V0.657074H66.3247V1.65707Z",fill:"black"}),_.jsx("path",{d:"M67.6581 1.65707H68.6581V0.657074H67.6581V1.65707Z",fill:"black"}),_.jsx("path",{d:"M70.9915 1.65707H69.9915V0.657074H70.9915V1.65707Z",fill:"black"}),_.jsx("path",{d:"M72.3248 1.65707H73.3248V0.657074H72.3248V1.65707Z",fill:"black"}),_.jsx("path",{d:"M75.6582 1.65707H74.6582V0.657074H75.6582V1.65707Z",fill:"black"}),_.jsx("path",{d:"M76.9916 1.65707H77.9916V0.657074H76.9916V1.65707Z",fill:"black"}),_.jsx("path",{d:"M80.325 1.65707H79.325V0.657074H80.325V1.65707Z",fill:"black"}),_.jsx("path",{d:"M81.6583 1.65707H82.6583V0.657074H81.6583V1.65707Z",fill:"black"}),_.jsx("path",{d:"M84.9917 1.65707H83.9917V0.657074H84.9917V1.65707Z",fill:"black"}),_.jsx("path",{d:"M86.3251 1.65707H87.3251V0.657074H86.3251V1.65707Z",fill:"black"}),_.jsx("path",{d:"M89.6584 1.65707H88.6584V0.657074H89.6584V1.65707Z",fill:"black"}),_.jsx("path",{d:"M90.9918 1.65707H91.9918V0.657074H90.9918V1.65707Z",fill:"black"}),_.jsx("path",{d:"M94.3252 1.65707H93.3252V0.657074H94.3252V1.65707Z",fill:"black"}),_.jsx("path",{d:"M95.6586 1.65707H96.6586V0.657074H95.6586V1.65707Z",fill:"black"}),_.jsx("path",{d:"M98.9919 1.65707H97.9919V0.657074H98.9919V1.65707Z",fill:"black"}),_.jsx("path",{d:"M100.325 1.65707H101.325V0.657074H100.325V1.65707Z",fill:"black"}),_.jsx("path",{d:"M103.659 1.65707H102.659V0.657074H103.659V1.65707Z",fill:"black"}),_.jsx("path",{d:"M104.992 1.65707H105.992V0.657074H104.992V1.65707Z",fill:"black"}),_.jsx("path",{d:"M108.325 1.65707H107.325V0.657074H108.325V1.65707Z",fill:"black"}),_.jsx("path",{d:"M109.659 1.65707H110.659V0.657074H109.659V1.65707Z",fill:"black"}),_.jsx("path",{d:"M112.992 1.65707H111.992V0.657074H112.992V1.65707Z",fill:"black"}),_.jsx("path",{d:"M114.325 1.65707H115.325V0.657074H114.325V1.65707Z",fill:"black"}),_.jsx("path",{d:"M117.659 1.65707H116.659V0.657074H117.659V1.65707Z",fill:"black"}),_.jsx("path",{d:"M118.992 1.65707H119.992V0.657074H118.992V1.65707Z",fill:"black"})]}),Sg=()=>_.jsx("svg",{width:"120",height:"3",viewBox:"0 0 120 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:_.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 2.42035H-0.0090332V0.420349H119.991V2.42035Z",fill:"black"})}),fg=()=>_.jsxs("svg",{width:"120",height:"3",viewBox:"0 0 120 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[_.jsx("path",{d:"M-0.0100098 2.47614H1.98999V0.476135H-0.0100098V2.47614Z",fill:"black"}),_.jsx("path",{d:"M3.99014 2.47614H9.99014V0.476135H3.99014V2.47614Z",fill:"black"}),_.jsx("path",{d:"M13.9901 2.47614H11.9901V0.476135H13.9901V2.47614Z",fill:"black"}),_.jsx("path",{d:"M21.1904 2.47614H23.1904V0.476135H21.1904V2.47614Z",fill:"black"}),_.jsx("path",{d:"M31.1906 2.47614H25.1906V0.476135H31.1906V2.47614Z",fill:"black"}),_.jsx("path",{d:"M33.1906 2.47614H35.1906V0.476135H33.1906V2.47614Z",fill:"black"}),_.jsx("path",{d:"M44.3909 2.47614H42.3909V0.476135H44.3909V2.47614Z",fill:"black"}),_.jsx("path",{d:"M46.391 2.47614H52.391V0.476135H46.391V2.47614Z",fill:"black"}),_.jsx("path",{d:"M56.391 2.47614H54.391V0.476135H56.391V2.47614Z",fill:"black"}),_.jsx("path",{d:"M63.5913 2.47614H65.5913V0.476135H63.5913V2.47614Z",fill:"black"}),_.jsx("path",{d:"M73.5915 2.47614H67.5915V0.476135H73.5915V2.47614Z",fill:"black"}),_.jsx("path",{d:"M75.5915 2.47614H77.5915V0.476135H75.5915V2.47614Z",fill:"black"}),_.jsx("path",{d:"M86.7917 2.47614H84.7917V0.476135H86.7917V2.47614Z",fill:"black"}),_.jsx("path",{d:"M88.7919 2.47614H94.7919V0.476135H88.7919V2.47614Z",fill:"black"}),_.jsx("path",{d:"M98.7919 2.47614H96.7919V0.476135H98.7919V2.47614Z",fill:"black"}),_.jsx("path",{d:"M105.992 2.47614H107.992V0.476135H105.992V2.47614Z",fill:"black"}),_.jsx("path",{d:"M115.992 2.47614H109.992V0.476135H115.992V2.47614Z",fill:"black"}),_.jsx("path",{d:"M117.992 2.47614H119.992V0.476135H117.992V2.47614Z",fill:"black"})]}),pg=()=>_.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[_.jsx("path",{d:"M-0.0100098 2.00415H1.98999V0.00415039H-0.0100098V2.00415Z",fill:"black"}),_.jsx("path",{d:"M3.99014 2.00415H9.99014V0.00415039H3.99014V2.00415Z",fill:"black"}),_.jsx("path",{d:"M13.9901 2.00415H11.9901V0.00415039H13.9901V2.00415Z",fill:"black"}),_.jsx("path",{d:"M15.9901 2.00415H17.9901V0.00415039H15.9901V2.00415Z",fill:"black"}),_.jsx("path",{d:"M27.4905 2.00415H25.4905V0.00415039H27.4905V2.00415Z",fill:"black"}),_.jsx("path",{d:"M29.4906 2.00415H35.4906V0.00415039H29.4906V2.00415Z",fill:"black"}),_.jsx("path",{d:"M39.4906 2.00415H37.4906V0.00415039H39.4906V2.00415Z",fill:"black"}),_.jsx("path",{d:"M41.4906 2.00415H43.4906V0.00415039H41.4906V2.00415Z",fill:"black"}),_.jsx("path",{d:"M52.991 2.00415H50.991V0.00415039H52.991V2.00415Z",fill:"black"}),_.jsx("path",{d:"M54.9911 2.00415H60.9911V0.00415039H54.9911V2.00415Z",fill:"black"}),_.jsx("path",{d:"M64.9911 2.00415H62.9911V0.00415039H64.9911V2.00415Z",fill:"black"}),_.jsx("path",{d:"M66.9911 2.00415H68.9911V0.00415039H66.9911V2.00415Z",fill:"black"}),_.jsx("path",{d:"M78.4915 2.00415H76.4915V0.00415039H78.4915V2.00415Z",fill:"black"}),_.jsx("path",{d:"M80.4916 2.00415H86.4916V0.00415039H80.4916V2.00415Z",fill:"black"}),_.jsx("path",{d:"M90.4916 2.00415H88.4916V0.00415039H90.4916V2.00415Z",fill:"black"}),_.jsx("path",{d:"M92.4916 2.00415H94.4916V0.00415039H92.4916V2.00415Z",fill:"black"}),_.jsx("path",{d:"M103.992 2.00415H101.992V0.00415039H103.992V2.00415Z",fill:"black"}),_.jsx("path",{d:"M105.992 2.00415H111.992V0.00415039H105.992V2.00415Z",fill:"black"}),_.jsx("path",{d:"M115.992 2.00415H113.992V0.00415039H115.992V2.00415Z",fill:"black"}),_.jsx("path",{d:"M117.992 2.00415H119.992V0.00415039H117.992V2.00415Z",fill:"black"})]}),vg=()=>_.jsxs("svg",{width:"118",height:"3",viewBox:"0 0 118 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[_.jsx("path",{d:"M-0.00854492 2.94815H1.99146V0.948151H-0.00854492V2.94815Z",fill:"black"}),_.jsx("path",{d:"M6.09668 2.94815H8.09668V0.948151H6.09668V2.94815Z",fill:"black"}),_.jsx("path",{d:"M14.2019 2.94815H12.2019V0.948151H14.2019V2.94815Z",fill:"black"}),_.jsx("path",{d:"M18.3071 2.94815H20.3071V0.948151H18.3071V2.94815Z",fill:"black"}),_.jsx("path",{d:"M26.4124 2.94815H24.4124V0.948151H26.4124V2.94815Z",fill:"black"}),_.jsx("path",{d:"M30.5176 2.94815H32.5176V0.948151H30.5176V2.94815Z",fill:"black"}),_.jsx("path",{d:"M38.6228 2.94815H36.6228V0.948151H38.6228V2.94815Z",fill:"black"}),_.jsx("path",{d:"M42.728 2.94815H44.728V0.948151H42.728V2.94815Z",fill:"black"}),_.jsx("path",{d:"M50.8333 2.94815H48.8333V0.948151H50.8333V2.94815Z",fill:"black"}),_.jsx("path",{d:"M54.9385 2.94815H56.9385V0.948151H54.9385V2.94815Z",fill:"black"}),_.jsx("path",{d:"M63.0437 2.94815H61.0437V0.948151H63.0437V2.94815Z",fill:"black"}),_.jsx("path",{d:"M67.1489 2.94815H69.1489V0.948151H67.1489V2.94815Z",fill:"black"}),_.jsx("path",{d:"M75.2542 2.94815H73.2542V0.948151H75.2542V2.94815Z",fill:"black"}),_.jsx("path",{d:"M79.3594 2.94815H81.3594V0.948151H79.3594V2.94815Z",fill:"black"}),_.jsx("path",{d:"M87.4645 2.94815H85.4645V0.948151H87.4645V2.94815Z",fill:"black"}),_.jsx("path",{d:"M91.5697 2.94815H93.5697V0.948151H91.5697V2.94815Z",fill:"black"}),_.jsx("path",{d:"M99.6749 2.94815H97.6749V0.948151H99.6749V2.94815Z",fill:"black"}),_.jsx("path",{d:"M103.78 2.94815H105.78V0.948151H103.78V2.94815Z",fill:"black"}),_.jsx("path",{d:"M111.885 2.94815H109.885V0.948151H111.885V2.94815Z",fill:"black"}),_.jsx("path",{d:"M115.991 2.94815H117.991V0.948151H115.991V2.94815Z",fill:"black"})]}),Cg=()=>_.jsx("svg",{width:"120",height:"4",viewBox:"0 0 120 4",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:_.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 3.86215H-0.0090332V0.862152H119.991V3.86215Z",fill:"black"})}),Ta=()=>_.jsx("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:_.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 1.15668H-0.0090332V0.156677H119.991V1.15668Z",fill:"black"})});function wa(n){const{type:r=a.BorderStyleTypes.THIN}=n;switch(r){case a.BorderStyleTypes.DASH_DOT:return _.jsx(ug,{});case a.BorderStyleTypes.DASH_DOT_DOT:return _.jsx(hg,{});case a.BorderStyleTypes.DASHED:return _.jsx(mg,{});case a.BorderStyleTypes.HAIR:return _.jsx(gg,{});case a.BorderStyleTypes.MEDIUM:return _.jsx(Sg,{});case a.BorderStyleTypes.MEDIUM_DASH_DOT:return _.jsx(fg,{});case a.BorderStyleTypes.MEDIUM_DASH_DOT_DOT:return _.jsx(pg,{});case a.BorderStyleTypes.MEDIUM_DASHED:return _.jsx(vg,{});case a.BorderStyleTypes.THICK:return _.jsx(Cg,{});case a.BorderStyleTypes.THIN:return _.jsx(Ta,{});default:return _.jsx(Ta,{})}}const Ig="univer-ui-plugin-sheets-border-panel",_g="univer-ui-plugin-sheets-border-panel-position",bg="univer-ui-plugin-sheets-border-panel-position-item",Rg="univer-ui-plugin-sheets-border-panel-position-item-active",Eg="univer-ui-plugin-sheets-border-panel-styles",Tg="univer-ui-plugin-sheets-border-panel-board",wg="univer-ui-plugin-sheets-border-panel-button",yg="univer-ui-plugin-sheets-border-panel-more-icon",Fe={uiPluginSheetsBorderPanel:Ig,uiPluginSheetsBorderPanelPosition:_g,uiPluginSheetsBorderPanelPositionItem:bg,uiPluginSheetsBorderPanelPositionItemActive:Rg,uiPluginSheetsBorderPanelStyles:Eg,uiPluginSheetsBorderPanelBoard:Tg,uiPluginSheetsBorderPanelButton:wg,uiPluginSheetsBorderPanelMoreIcon:yg},Ws=`${Hn}_BORDER_PANEL_COMPONENT`,ql=[{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"}],Mg=[{label:a.BorderStyleTypes.THIN,value:a.BorderStyleTypes.THIN},{label:a.BorderStyleTypes.HAIR,value:a.BorderStyleTypes.HAIR},{label:a.BorderStyleTypes.DOTTED,value:a.BorderStyleTypes.DOTTED},{label:a.BorderStyleTypes.DASHED,value:a.BorderStyleTypes.DASHED},{label:a.BorderStyleTypes.DASH_DOT,value:a.BorderStyleTypes.DASH_DOT},{label:a.BorderStyleTypes.DASH_DOT_DOT,value:a.BorderStyleTypes.DASH_DOT_DOT},{label:a.BorderStyleTypes.MEDIUM,value:a.BorderStyleTypes.MEDIUM},{label:a.BorderStyleTypes.MEDIUM_DASHED,value:a.BorderStyleTypes.MEDIUM_DASHED},{label:a.BorderStyleTypes.MEDIUM_DASH_DOT,value:a.BorderStyleTypes.MEDIUM_DASH_DOT},{label:a.BorderStyleTypes.MEDIUM_DASH_DOT_DOT,value:a.BorderStyleTypes.MEDIUM_DASH_DOT_DOT},{label:a.BorderStyleTypes.THICK,value:a.BorderStyleTypes.THICK}];function Ql(n){var d;const r=I.useDependency(I.ComponentManager),e=I.useDependency(m.BorderStyleManagerService),{onChange:t,value:o}=n;function i(c,u){t==null||t({...o,[u]:c})}function s(c){const u=r.get(c);return u&&_.jsx(u,{extend:{colorChannel1:"rgb(var(--primary-color))"}})}function l(c){c.stopPropagation()}return _.jsxs("section",{className:Fe.uiPluginSheetsBorderPanel,children:[_.jsx("div",{className:Fe.uiPluginSheetsBorderPanelPosition,children:ql.map(c=>_.jsx("div",{className:e.getBorderInfo().type===c.value?`
7
+ `;const b=[];g==null||g.forEach(y=>{y.st>=p[v]&&y.ed<=p[v+1]&&b.push({st:y.st-p[v],ed:y.ed-p[v],ts:y.ts})});const R=[];f==null||f.forEach(y=>{y.startIndex>=p[v]&&y.endIndex<=p[v+1]&&R.push({...y,startIndex:y.startIndex-p[v],endIndex:y.endIndex-p[v]})});const T=this._generateDocumentDataModelSnapshot({body:{dataStream:C,textRuns:b,paragraphs:qr(C),customRanges:R}}),M=Object.keys(t.getMatrix()).length===0;t.setValue(M?0:t.getLength(),0,{v:C,p:T}),s.push({})}}else if(h){const p=`${h}\r
8
+ `,v={dataStream:p,textRuns:g,paragraphs:qr(p),payloads:S,customRanges:f};if(!(f!=null&&f.length))t.setValue(0,0,da({v:h},h,g));else{const C=this._generateDocumentDataModelSnapshot({body:v});t.setValue(0,0,da({v:h,p:C},h,g))}s.push({})}return c&&c.forEach((p,v)=>{const C=t.getDataRange().endRow+1,{cellMatrix:b,rowProperties:R,colProperties:T}=this._parseTable(p,v);b&&b.forValue((M,y,P)=>{t.setValue(C+M,y,P)}),T&&l.push(...T),s.push(...R)}),this.dispose(),{rowProperties:s,colProperties:l,cellMatrix:t}}_getStyleBySelectorText(r,e){var o;const t=(o=this._styleMap.get(r))==null?void 0:o.getPropertyValue(e);return t||""}_getStyle(r,e){const t=ma(e),o=r.style;let i="";for(let s=0;s<ua.length;s++){const l=ua[s];if(l==="background"){let d="";r.classList.forEach(h=>{d=this._getStyleBySelectorText(`.${h}`,"background-color")||this._getStyleBySelectorText(`.${h}`,l)});const u=o.getPropertyValue("background-color")||d||this._getStyleBySelectorText(`#${r.id}`,"background-color")||this._getStyleBySelectorText(`#${r.id}`,l)||this._getStyleBySelectorText(r.nodeName.toLowerCase(),l)||this._getStyleBySelectorText(r.nodeName,"background-color")||t["background-color"]||"";u&&(i+=`background:${u};`);continue}if(l==="text-decoration"){let d="";r.classList.forEach(h=>{d=this._getStyleBySelectorText(`.${h}`,"text-decoration-line")||this._getStyleBySelectorText(`.${h}`,l)});const u=o.getPropertyValue("text-decoration-line")||o.getPropertyValue("text-decoration")||d||this._getStyleBySelectorText(`#${r.id}`,"text-decoration-line")||this._getStyleBySelectorText(`#${r.id}`,l)||this._getStyleBySelectorText(r.nodeName.toLowerCase(),l)||this._getStyleBySelectorText(r.nodeName,"text-decoration-line")||t["text-decoration-line"]||"";u&&(i+=`text-decoration:${u};`);continue}let c="";r.classList.forEach(d=>{c=this._getStyleBySelectorText(`.${d}`,l)}),c=o.getPropertyValue(l)||this._getStyleBySelectorText(`#${r.id}`,l)||c||this._getStyleBySelectorText(r.nodeName.toLowerCase(),l)||t[l]||"",c&&(i+=`${l}:${c};`)}return i}_parseTable(r,e){var l,c;const t=new a.ObjectMatrix,o=(l=lh(r))!=null?l:[],{rowProperties:i=[]}=ah(r),s=this._parseTableByHtml(this._dom,e,(c=this._getCurrentSkeleton())==null?void 0:c.skeleton);return s&&s.forValue((d,u,h)=>{var f,p,v,C,b,R,T,M,y,P,x,A,k,N,D,W,H,U,B,F,L,j,z,q;let g=I.handleStringToStyle(void 0,h.style);if((C=(v=(p=(f=h==null?void 0:h.richTextParma)==null?void 0:f.p)==null?void 0:p.body)==null?void 0:v.textRuns)!=null&&C.length){const te=(R=(b=h==null?void 0:h.richTextParma)==null?void 0:b.v)==null?void 0:R.length;for(let Q=0;Q<((P=(y=(M=(T=h==null?void 0:h.richTextParma)==null?void 0:T.p)==null?void 0:M.body)==null?void 0:y.textRuns)==null?void 0:P.length);Q++){const re=(k=(A=(x=h==null?void 0:h.richTextParma)==null?void 0:x.p)==null?void 0:A.body)==null?void 0:k.textRuns[Q];re.st===0&&re.ed===te&&(g={...re.ts,...g},(W=(D=(N=h==null?void 0:h.richTextParma)==null?void 0:N.p)==null?void 0:D.body)==null||W.textRuns.splice(Q,1),Q--)}((F=(B=(U=(H=h==null?void 0:h.richTextParma)==null?void 0:H.p)==null?void 0:U.body)==null?void 0:B.textRuns)==null?void 0:F.length)===0&&(h.content=(L=h==null?void 0:h.richTextParma)==null?void 0:L.v,delete h.richTextParma)}const S=(q=(z=(j=h==null?void 0:h.richTextParma)==null?void 0:j.p)==null?void 0:z.body)!=null&&q.textRuns?{v:h.richTextParma.v,p:h.richTextParma.p,s:g,rowSpan:h.rowSpan,colSpan:h.colSpan}:{v:h.content,s:g,rowSpan:h.rowSpan,colSpan:h.colSpan};t.setValue(d,u,S)}),{rowProperties:i,colProperties:o,cellMatrix:t}}_parseTableByHtml(r,e,t){var c,d;const o=new a.ObjectMatrix,i=r.querySelectorAll("table")[e];if(!i)return o;const s=this._getStyle(i,""),l=i==null?void 0:i.querySelectorAll("tr");for(let u=0;u<l.length;u++){const h=l[u],g=this._getStyle(h,s),S=h.querySelectorAll("td, th");let f=0;for(let p=0;p<S.length;){const v=S[p];let C="";const b=Number(v.getAttribute("rowSpan"))||1,R=Number(v.getAttribute("colSpan"))||1;if(C=this._getStyle(v,g),u>0){const P=o.getValue(u-1,f);if((c=P==null?void 0:P.style)!=null&&c.includes("border-bottom")&&C.includes("border-top")){const x=ga(P.style,"border-bottom");x&&I.textTrim(x.substr(x.indexOf(":")+1))!=="none"&&(C=C.replace(/border-top:[^;]+;/,""))}}if(p>0){const P=o.getValue(u,f-1);if((d=P==null?void 0:P.style)!=null&&d.includes("border-right")&&C.includes("border-left")){const x=ga(P.style,"border-right");x&&I.textTrim(x.substr(x.indexOf(":")+1))!=="none"&&(C=C.replace(/border-left:[^;]+;/,""))}}const{cellText:T,cellRichStyle:M}=this._getCellTextAndRichText(v,C,t),y={rowSpan:b,colSpan:R,content:T,style:C,richTextParma:{p:M,v:T}};if(o.getValue(u,f)){f+=1;continue}else b>1||R>1?dh(o,C,y,{colSpan:R,rowSpan:b,rowIndex:u,colSetValueIndex:f}):o.setValue(u,f,y),f+=R,p++}}return o}_parseCellHtml(r,e,t,o=new Map,i){var s;for(const l of e)if(l.nodeType===Node.TEXT_NODE){const c=(s=l.nodeValue)==null?void 0:s.replace(/[\r\n]/g,"");let d;r&&o.has(r)&&(d=o.get(r)),t.dataStream+=c,d&&Object.getOwnPropertyNames(d).length&&t.textRuns.push({st:t.dataStream.length-c.length,ed:t.dataStream.length,ts:d})}else{if(l.nodeType===Node.COMMENT_NODE||l.nodeName==="STYLE")continue;if(l.nodeName.toLowerCase()==="br")t.paragraphs||(t.paragraphs=[]),t.paragraphs.push({startIndex:t.dataStream.length}),t.dataStream+="\r";else if(l.nodeType===Node.ELEMENT_NODE){const c=this._getStyle(l,i),d=r?o.get(r):{},u=ma(c),h=rr(l,u);o.set(l,{...d,...h});const{childNodes:g}=l;this._parseCellHtml(l,g,t,o,c)}}}_getCellTextAndRichText(r,e,t){var l;let o="",i;if(/<[^>]+>/.test(r.innerHTML)&&t){const c={dataStream:"",textRuns:[]};this._parseCellHtml(null,r.childNodes,c,void 0,e);const d=(l=t.getBlankCellDocumentModel())==null?void 0:l.documentModel,u=d==null?void 0:d.getSnapshot(),h=`${c.dataStream}\r
9
+ `,g={...u,body:{dataStream:h,textRuns:c.textRuns,paragraphs:qr(h)}};d==null||d.reset(g),i=d==null?void 0:d.getSnapshot(),o=c.dataStream}else o=ch(r.innerHTML.replace(/[\r\n]/g,""));return{cellText:o,cellRichStyle:i}}_generateDocumentDataModelSnapshot(r){var l;const e=this._getCurrentSkeleton();if(e==null)return null;const{skeleton:t}=e,o=(l=t.getBlankCellDocumentModel())==null?void 0:l.documentModel,s={...o==null?void 0:o.getSnapshot(),...r};return o==null||o.reset(s),o==null?void 0:o.getSnapshot()}process(r,e,t,o){var i,s,l;for(const c of e)if(c.nodeName.toLowerCase()==="table")o.push({index:((i=t==null?void 0:t.paragraphs)==null?void 0:i.length)||0});else if(c.nodeType===Node.TEXT_NODE){if(((s=c.nodeValue)==null?void 0:s.trim())==="")continue;const d=(l=c.nodeValue)==null?void 0:l.replace(/[\r\n]/g,"");let u;r&&this._styleCache.has(r)&&(u=this._styleCache.get(r));const h={dataStream:"",textRuns:[]};t.dataStream+=d,h.dataStream+=d,u&&Object.getOwnPropertyNames(u).length&&(t.textRuns.push({st:t.dataStream.length-d.length,ed:t.dataStream.length,ts:u}),h.textRuns.push({st:t.dataStream.length-d.length,ed:t.dataStream.length,ts:u}))}else{if(a.skipParseTagNames.includes(c.nodeName.toLowerCase()))continue;if(c.nodeName.toLowerCase()==="br")t.paragraphs||(t.paragraphs=[]),t.paragraphs.push({startIndex:t.dataStream.length}),t.dataStream+="\r";else if(c.nodeType===Node.ELEMENT_NODE){if(c.nodeName==="STYLE")continue;const d=c,u=this._processBeforeLink(d,{body:t}),h=r?this._styleCache.get(r):{},g=this._styleRules.find(({filter:v})=>ha(c,v)),S=g?g.getStyle(c):rr(c);this._styleCache.set(c,{...h,...S});const{childNodes:f}=c;this.process(c,f,t,o);const p=this._afterProcessRules.find(({filter:v})=>ha(c,v));p&&p.handler(t,c),this._processAfterLink(d,{body:t},u)}}}_processBeforeLink(r,e){return e.body.dataStream.length}_processAfterLink(r,e,t){var s,l;const o=e.body,i=r;i.tagName.toUpperCase()==="A"&&(o.customRanges=(s=o.customRanges)!=null?s:[],o.customRanges.push({startIndex:t,endIndex:o.dataStream.length-1,rangeId:(l=i.dataset.rangeid)!=null?l:a.generateRandomId(),rangeType:a.CustomRangeType.HYPERLINK,properties:{url:i.href}}))}dispose(){this._dom=null,this._styleCache.clear(),this._styleMap.clear()}};E(Mr,"_pluginList",[]);let yn=Mr;function ah(n){const r=/<tr([\s\S]*?)>([\s\S]*?)<\/tr>/gi,e=n.matchAll(r);if(!e)return{rowProperties:[],rowCount:0};const o=Array.from(e).map(i=>_l(i[1])).map(i=>{if(!i.height){const s=i.style,l=s&&s.match(/height\s*:\s*(\d+(\.\d+)?)px/);i.height=`${l?Number.parseInt(l[1],10):a.DEFAULT_WORKSHEET_ROW_HEIGHT}`}return i});return{rowProperties:o,rowCount:o.length}}function ma(n){const r={};return n.split(";").forEach(t=>{const[o,i]=t.split(":");r[o]=i}),r}function _l(n){if(!n)return{};const r={},e=/([\w-]+)\s*=\s*(?:(['"])([^'"]*)\2|(\S+))/g;let t;for(;(t=e.exec(n))!==null;){const[,o,,i,s]=t,l=i!==void 0?i:s;r[o]=l}return r}function lh(n){const r=/<colgroup([\s\S]*?)>(.*?)<\/colgroup>/,e=n.match(r),t=/<col([\s\S]*?)>/g;let o;if(e!=null&&e[2]?o=e[2].matchAll(t):o=n.matchAll(t),!o)return null;const i=Array.from(o).map(l=>_l(l[1])),s=[];return i.forEach(l=>{const c=Number(l.span);if(c)for(let d=0;d<c;d++){const u={...l};delete u.span,s.push(u)}else s.push(l)}),s}function ch(n){const r={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&#39;":"'","&nbsp;":" "};return n.replace(/&lt;|&gt;|&amp;|&quot;|&#39;|&nbsp;|<br>/g,e=>r[e])}function ga(n,r){if(!n||!r)return null;const e=new RegExp(`(${r}\\s*:\\s*[^;]+);`,"i"),t=n.match(e);return t?t[1]:null}function dh(n,r,e,t){const{rowSpan:o,colSpan:i,rowIndex:s,colSetValueIndex:l}=t;for(let c=s;c<s+o;c++)for(let d=l;d<l+i;d++)c===s&&d===l?n.setValue(c,d,{...e,style:r}):n.setValue(c,d,{style:r})}const uh={name:"univer-doc-paste-plugin-lark",checkPasteType(n){return/lark-record-clipboard/i.test(n)},stylesRules:[{filter:["s"],getStyle(n){const r=rr(n);return{st:{s:a.BooleanNumber.TRUE},...r}}}],afterProcessRules:[{filter(n){return n.tagName==="DIV"&&/ace-line/i.test(n.className)},handler(n){n.paragraphs==null&&(n.paragraphs=[]),n.paragraphs.push({startIndex:n.dataStream.length}),n.dataStream+="\r"}}]},hh={name:"univer-doc-paste-plugin-univer",checkPasteType(n){return/UniverNormal/i.test(n)},stylesRules:[],afterProcessRules:[{filter(n){return n.tagName==="P"&&/UniverNormal/i.test(n.className)},handler(n,r){n.paragraphs==null&&(n.paragraphs=[]);const e={startIndex:n.dataStream.length},t=Il(r);t&&(e.paragraphStyle=t),n.paragraphs.push(e),n.dataStream+="\r"}}]},mh={name:"univer-doc-paste-plugin-word",checkPasteType(n){return/word|mso/i.test(n)},stylesRules:[{filter:["b"],getStyle(n){const r=rr(n);return{bl:a.BooleanNumber.TRUE,...r}}}],afterProcessRules:[{filter(n){return n.tagName==="P"&&/mso/i.test(n.className)},handler(n,r){n.paragraphs==null&&(n.paragraphs=[]);const e={startIndex:n.dataStream.length},t=Il(r);t&&(e.paragraphStyle=t),n.paragraphs.push(e),n.dataStream+="\r"}}]};var vt=(n=>(n.COPY="COPY",n.CUT="CUT",n))(vt||{});function gh(n,r,e,t,o){const i=e.map(d=>{var u;return(u=d.onCopyRow)==null?void 0:u.call(d,n)}).filter(d=>!!d),s=Es(i),l=Ts(s),c=r.map(d=>{if(!o.has(`${n}-${d}`)){const u=t.getValue(n,d);if(u!=null&&u.rowSpan&&(u!=null&&u.colSpan))for(let h=n;h<n+u.rowSpan;h++)for(let g=d;g<d+u.colSpan;g++)o.add(`${h}-${g}`);return Sh(n,d,e,t)}return null}).filter(d=>!!d).join("");return`<tr${l}>${c}</tr>`}function Sh(n,r,e,t){const o=t.getValue(n,r),i=e.map(d=>{var u;return(u=d.onCopyCellStyle)==null?void 0:u.call(d,n,r,o==null?void 0:o.rowSpan,o==null?void 0:o.colSpan)}).filter(d=>!!d),s=Es(i),l=Ts(s),c=e.reduce((d,u)=>{var h;return d||((h=u.onCopyCellContent)==null?void 0:h.call(u,n,r))||""},"");return`<td${l}>${c}</td>`}function fh(n,r){return`<colgroup>${n.map(t=>{const o=r.map(l=>{var c;return(c=l.onCopyColumn)==null?void 0:c.call(l,t)}).filter(l=>!!l),i=Es(o);return`<col ${Ts(i)}>`}).join("")}</colgroup>`}function Es(n){return n.reduce((r,e)=>(Object.keys(e).forEach(o=>{r[o]?r[o]+=`;${e[o]}`:r[o]=e[o]}),r),{})}function Ts(n){return Object.keys(n).reduce((r,e)=>(r+=` ${e}="${n[e]}"`,r),"")}class ph{convert(r,e,t){const{cols:o,rows:i}=e;if(!o.length)return"";const s=fh(o,t),l=[],c=new Set;return i.forEach(u=>{l.push(gh(u,o,t,r,c))}),`<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">${s}
10
+ <tbody>${l.join("")}</tbody></table>`}}const vh=(n,r,e=!1)=>{const t=h=>h.endRow-h.startRow+1,o=h=>h.endColumn-h.startColumn+1,i=t(r)%t(n),s=o(r)%o(n),l={startRow:0,endRow:t(n)-1,startColumn:0,endColumn:o(n)-1},c=Math.floor(t(r)/t(n)),d=Math.floor(o(r)/o(n)),u=[];if(!i&&!s)for(let h=1;h<=c;h++)for(let g=1;g<=d;g++){const S=t(n)*(h-1),f=o(n)*(g-1),p={startRow:S+r.startRow,endRow:S+r.startRow,startColumn:f+r.startColumn,endColumn:f+r.startColumn};u.push({repeatRelativeRange:l,startRange:p})}else if(!i&&s&&!e)for(let h=1;h<=c;h++){const g=t(n)*(h-1),S=0,f={startRow:g+r.startRow,endRow:g+r.startRow,startColumn:S+r.startColumn,endColumn:S+r.startColumn};u.push({repeatRelativeRange:l,startRange:f})}else if(i&&!s&&!e)for(let h=1;h<=d;h++){const S=o(n)*(h-1),f={startRow:0+r.startRow,endRow:0+r.startRow,startColumn:S+r.startColumn,endColumn:S+r.startColumn};u.push({repeatRelativeRange:l,startRange:f})}else{const h={startRow:r.startRow,endRow:r.startRow,startColumn:r.startColumn,endColumn:r.startColumn};u.push({startRange:h,repeatRelativeRange:l})}return u};function Sa(n){return n?[/<td[^>]*class=".*?xl.*?"[^>]*>/i,/xmlns:x="urn:schemas-microsoft-com:office:excel"/i,/ProgId="Excel.Sheet"/i,/xmlns:o="urn:schemas-microsoft-com:office:office"/i,/@mso-|mso-excel/i,/<x:ExcelWorkbook>/i].some(e=>e.test(n)):!1}function Ch(n){if(!n)return!1;const r=/<img[^>]*src\s*=\s*["']data:image\/[^;]+;base64,[^"']*["'][^>]*>/i;return(n.match(r)||[]).length>0}function Ih(...n){if(n.length===1)return n[0];const r=new a.ObjectMatrix;return n.forEach(e=>{e&&new a.ObjectMatrix(e).forValue((o,i,s)=>{r.setValue(o,i,{...r.getValue(o,i),...s})})}),r.getMatrix()}function _h(n,r){return n.id===r.id&&n.params.unitId===r.params.unitId&&n.params.subUnitId===r.params.subUnitId}function Xi(n){const r=[];for(let e=0;e<n.length;){let t=1;if(n[e].id===m.SetRangeValuesMutation.id){const o=n[e],i=[o];for(;e+t<n.length&&_h(o,n[e+t]);)i.push(n[e+t]),t+=1;const s=Ih(...i.map(l=>l.params.cellValue||{}));r.push({...o,params:{...o.params,cellValue:s}})}else r.push(n[e]);e+=t}return r}function Qr(n,r){const{startRow:e,endRow:t,startColumn:o,endColumn:i}=n;for(let s=e;s<=t;s++)for(let l=o;l<=i;l++)if(r.rows.includes(s)&&r.cols.includes(l))return!0}function fa(n,r){const{startRow:e,endRow:t,startColumn:o,endColumn:i}=r;for(let s=e;s<=t;s++)if(!n.rows.includes(s))return!1;for(let s=o;s<=i;s++)if(!n.cols.includes(s))return!1;return!0}function bh(n){const r=n.trim().split(`
11
+ `);let e="<table>";return r.forEach(t=>{const o=t.split(" ");e+="<tr>",o.forEach(i=>{e+=`<td>${i}</td>`}),e+="</tr>"}),e+="</table>",e}var Rh=Object.getOwnPropertyDescriptor,Eh=(n,r,e,t)=>{for(var o=t>1?void 0:t?Rh(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Oe=(n,r)=>(e,t)=>r(e,t,n);const ge={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"},Th={[I.FILE_PNG_CLIPBOARD_MIME_TYPE]:"png",[I.FILE__JPEG_CLIPBOARD_MIME_TYPE]:"jpg",[I.FILE__WEBP_CLIPBOARD_MIME_TYPE]:"webp",[I.FILE__BMP_CLIPBOARD_MIME_TYPE]:"bmp"};yn.use(mh);yn.use(uh);yn.use(hh);const Be=a.createIdentifier("sheet.clipboard-service");exports.SheetClipboardService=class extends a.Disposable{constructor(e,t,o,i,s,l,c,d,u,h,g,S,f,p){super();E(this,"_clipboardHooks",[]);E(this,"_clipboardHooks$",new O.BehaviorSubject([]));E(this,"clipboardHooks$",this._clipboardHooks$.asObservable());E(this,"_htmlToUSM");E(this,"_usmToHtml");E(this,"_copyContentCache");E(this,"_copyMarkId",null);E(this,"_pasteOptionsCache$",new O.BehaviorSubject(null));E(this,"pasteOptionsCache$",this._pasteOptionsCache$.asObservable());E(this,"_showMenu$",new O.BehaviorSubject(!1));E(this,"showMenu$",this._showMenu$.asObservable());this._logService=e,this._univerInstanceService=t,this._selectionManagerService=o,this._clipboardInterfaceService=i,this._undoRedoService=s,this._commandService=l,this._markSelectionService=c,this._notificationService=d,this._platformService=u,this._renderManagerService=h,this._themeService=g,this._localeService=S,this._errorService=f,this._injector=p,this._htmlToUSM=new yn({getCurrentSkeleton:()=>{var v;return(v=this._renderManagerService.withCurrentTypeOfUnit(a.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:v.getCurrentParam()}}),this._usmToHtml=new ph,this._copyContentCache=new rh,this.disposeWithMe(this._htmlToUSM),this._initUnitDisposed()}setShowMenu(e){this._showMenu$.next(e)}getPasteMenuVisible(){return this._showMenu$.getValue()}getPasteOptionsCache(){return this._pasteOptionsCache$.getValue()}copyContentCache(){return this._copyContentCache}generateCopyContent(e,t,o){return this._generateCopyContent(e,t,o,this._clipboardHooks)}async copy(e=vt.COPY){const t=this._selectionManagerService.getCurrentLastSelection();if(!t)return!1;const o=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),i=o.getActiveSheet();if(!i)return!1;const s=this._clipboardHooks,l=o.getUnitId(),c=i.getSheetId();s.forEach(v=>{var C;return(C=v.onBeforeCopy)==null?void 0:C.call(v,l,c,t.range,e)});const d=this.generateCopyContent(l,c,t.range);if(s.forEach(v=>{var C;return(C=v.onAfterCopy)==null?void 0:C.call(v)}),!d)return!1;const{html:u,plain:h,matrixFragment:g,copyId:S,discreteRange:f}=d;this._copyContentCache.set(S,{unitId:o.getUnitId(),subUnitId:i.getSheetId(),range:f,matrix:g,copyType:e}),await this._clipboardInterfaceService.write(h,u),this._markSelectionService.removeAllShapes();const p=Cl(this._themeService);return this._copyMarkId=this._markSelectionService.addShape({...t,style:p}),!0}async cut(){return this.copy(vt.CUT)}async paste(e,t=ge.DEFAULT_PASTE){const o=e.types,i=o.indexOf(I.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await e.getType(I.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(d=>d&&d.text()):"",s=o.indexOf(I.HTML_CLIPBOARD_MIME_TYPE)!==-1?await e.getType(I.HTML_CLIPBOARD_MIME_TYPE).then(d=>d&&d.text()):"",l=o.findIndex(d=>I.imageMimeTypeSet.has(d)),c=l===-1||!Ch(s);if(s&&c)return this._platformService.isWindows&&Sa(s)&&this._notificationService.show({type:"warning",title:this._localeService.t("clipboard.shortCutNotify.title"),content:this._localeService.t("clipboard.shortCutNotify.useShortCutInstead")}),this._pasteHTML(s,t);if(l!==-1){const d=o[l],u=await e.getType(d);if(u){const h=Th[d],g=new File([u],`clipboard-image.${h}`,{type:d});return this._pasteFiles([g],t)}}return i?this._pastePlainText(i,t):(this._logService.error("[SheetClipboardService]","No valid data on clipboard"),!1)}async legacyPaste(e,t,o){const i=Sa(e!=null?e:"");return o&&!i?this._pasteFiles(o,ge.DEFAULT_PASTE):e?this._pasteHTML(e,ge.DEFAULT_PASTE):t?/[\n\t]/.test(t)?this._pasteHTML(bh(t),ge.DEFAULT_PASTE):this._pastePlainText(t,ge.DEFAULT_PASTE):this._pasteUnrecognized()}rePasteWithPasteType(e){const t=this._pasteOptionsCache$.getValue();if(!t)return!1;const o=this._injector.get(a.IUndoRedoService),i=o.pitchTopUndoElement();i&&a.sequenceExecute(i.undoMutations,this._commandService)&&o.popUndoToRedo();const{cellMatrix:s,rowProperties:l=[],colProperties:c=[],source:d,target:u}=t;return this._pasteUSM({cellMatrix:s,colProperties:c,rowProperties:l},u,ge[e],d),!0}updatePasteOptionsCache(e){this._pasteOptionsCache$.next(e)}addClipboardHook(e){if(this._clipboardHooks.findIndex(o=>o.id===e.id)!==-1)return this._logService.error("[SheetClipboardService]","hook already exists",e.id),{dispose:()=>{}};const t=this._clipboardHooks.findIndex(o=>{const i=o.priority||0;return(e.priority||0)<i});return this._clipboardHooks.splice(t!==-1?t:this._clipboardHooks.length,0,e),this._notifyClipboardHook(),a.toDisposable(()=>{const o=this._clipboardHooks.indexOf(e);o>-1&&(this._clipboardHooks.splice(o,1),this._notifyClipboardHook())})}getClipboardHooks(){return this._clipboardHooks}_generateCopyContent(e,t,o,i){const s=this._univerInstanceService.getUniverSheetInstance(e),l=s==null?void 0:s.getSheetBySheetId(t);if(!s||!l)return null;const c=i.reduce((M,y)=>{var x;const P=(x=y.getFilteredOutRows)==null?void 0:x.call(y,o);return P==null||P.forEach(A=>M.add(A)),M},new Set),{startColumn:d,startRow:u,endColumn:h,endRow:g}=o,S=l.getMatrixWithMergedCells(u,d,g,h,a.CellModeEnum.Both),f=new a.ObjectMatrix;let p=u;const v=new a.ObjectMatrix,C={rows:[],cols:[]};for(let M=u;M<=g;M++)if(!c.has(M)){C.rows.push(M);for(let y=d;y<=h;y++){const P=S.getValue(M,y);if(P){const x=a.Tools.deepClone(P);v.setValue(p-u,y-d,{...Bn(),...x}),delete x.displayV,f.setValue(p-u,y-d,{...Bn(),...x})}else v.setValue(p-u,y-d,Bn()),f.setValue(p-u,y-d,Bn()),S.setValue(M,y,Bn())}p+=1}for(let M=d;M<=h;M++)C.cols.push(M);let b=this._usmToHtml.convert(S,C,i);const R=bl(v),T=nh();return b=b.replace(/(<[a-z]+)/,(M,y)=>`${y} data-copy-id="${T}"`),{copyId:T,plain:R,html:b,matrixFragment:f,discreteRange:C}}_notifyClipboardHook(){this._clipboardHooks$.next(this._clipboardHooks)}async _executePaste(e){const t=this._getPastingTarget();if(!t.subUnitId||!t.selection)return!1;const o=this._injector.invoke(S=>Sn(t.selection.range,S,t.unitId,t.subUnitId));if(!o)return!1;const{unitId:i,subUnitId:s}=t,l=this._clipboardHooks,c=[];if(l.some(S=>{var f;return c.push(S)&&((f=S.onBeforePaste)==null?void 0:f.call(S,{unitId:i,subUnitId:s,range:o}))===!1}))return c.forEach(S=>{var f;return(f=S.onAfterPaste)==null?void 0:f.call(S,!1)}),!1;const u=[],h=[];c.forEach(S=>{const f=e(S,{unitId:i,subUnitId:s,range:o});f&&(u.push(...f.redos),h.push(...f.undos))});const g=u.every(S=>this._commandService.executeCommand(S.id,S.params));return g&&this._undoRedoService.pushUndoRedo({unitID:this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId(),undoMutations:h,redoMutations:u}),g}async _pasteFiles(e,t){return this._executePaste((o,i)=>{var s;return(s=o.onPasteFiles)==null?void 0:s.call(o,i,e,{pasteType:t})})}async _pastePlainText(e,t){return this._executePaste((o,i)=>{var s;return(s=o.onPastePlainText)==null?void 0:s.call(o,i,e,{pasteType:t})})}_pasteUnrecognized(){return this._executePaste((e,t)=>{var o;return(o=e.onPasteUnrecognized)==null?void 0:o.call(e,t)})}async _pasteHTML(e,t){const o=oh(e);return o&&this._copyContentCache.get(o)?this._pasteInternal(o,t):this._pasteExternal(e,t)}async _pasteExternal(e,t){var h;const{rowProperties:o,colProperties:i,cellMatrix:s}=this._htmlToUSM.convert(e);if(!s)return!1;const l=this._getPastedRange(s);if(!l)return!1;const c=(h=this._univerInstanceService.getUniverSheetInstance(l.unitId))==null?void 0:h.getSheetBySheetId(l.subUnitId);if(!c)return!1;const d=c==null?void 0:c.getMergeData();return d.length&&d.some(S=>Qr(S,l.pastedRange)&&!fa(l.pastedRange,S))?(this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1):this._pasteUSM({rowProperties:o,colProperties:i,cellMatrix:s},l,t)}async _pasteInternal(e,t){var y,P;const o=a.Tools.deepClone(this._copyContentCache.get(e)),{range:i,matrix:s,unitId:l,subUnitId:c}=o||{};if(!s||!o||!i||!l||!c||!s||!o)return!1;const d=(y=this._univerInstanceService.getUniverSheetInstance(l))==null?void 0:y.getStyles();s.forValue((x,A,k)=>{if(typeof k.s=="string"){const N=a.Tools.deepClone(k);N.s=d==null?void 0:d.getStyleByCell(k),s.setValue(x,A,N)}if(k.colSpan||k.rowSpan)for(let N=0;N<k.rowSpan;N++)for(let D=0;D<k.colSpan;D++){if(N===0&&D===0)continue;const W=x+N,H=A+D;s.setValue(W,H,{s:d==null?void 0:d.getStyleByCell(k)})}});const u=this._getPastedRange(s);if(!u)return!1;const h=(P=this._univerInstanceService.getUniverSheetInstance(u.unitId))==null?void 0:P.getSheetBySheetId(u.subUnitId);if(!h)return!1;const g=h==null?void 0:h.getMergeData();if(g&&g.some(A=>Qr(A,u.pastedRange)&&!fa(u.pastedRange,A)))return this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1;const S=this._univerInstanceService.getUnit(l);if(!S)return!1;const f=S.getSheetBySheetId(c);if(!f)return!1;const p=f.getColumnManager(),v=f.getRowManager(),C=f.getConfig().defaultColumnWidth,b=f.getConfig().defaultRowHeight,R=[],T=[];if(i.cols.forEach(x=>{const A=p.getColumnOrCreate(x);R.push({width:`${A.w||C}`})}),i.rows.forEach(x=>{const A=v.getRowOrCreate(x),{ah:k=b,h:N=b}=A,D=Math.max(k,N);T.push({height:`${D}`})}),o.copyType===vt.CUT){const x=u.pastedRange.rows[0],A=i.rows[i.rows.length-1]-i.rows[0]+x;u.pastedRange.rows=Array.from(new Array(A+1).keys()).slice(x)}const M=this._pasteUSM({cellMatrix:s,colProperties:R,rowProperties:T},u,t,{range:i,unitId:o.unitId,subUnitId:o.subUnitId,copyType:o.copyType,copyId:e});return o.copyType===vt.CUT&&(this._copyContentCache.set(e,{...o,matrix:null}),this._copyMarkId&&this._markSelectionService.removeShape(this._copyMarkId),this._copyMarkId=null),M}_pasteUSM(e,t,o,i){const{rowProperties:s,colProperties:l,cellMatrix:c}=e,{unitId:d,subUnitId:u,pastedRange:h}=t,g=h.cols.length,S=this._clipboardHooks,f=[];if(S.some(P=>{var x;return f.push(P)&&((x=P.onBeforePaste)==null?void 0:x.call(P,{unitId:d,subUnitId:u,range:h}))===!1}))return f.forEach(P=>{var x;return(x=P.onAfterPaste)==null?void 0:x.call(P,!1)}),!1;if(!c)return!1;const v=i?{unitId:i.unitId,subUnitId:i.subUnitId,range:i.range}:null,C={copyType:(i==null?void 0:i.copyType)||vt.COPY,copyId:i==null?void 0:i.copyId,pasteType:o};let b=[],R=[];const T=f.filter(P=>!P.specialPasteInfo&&P.id!==ge.DEFAULT_PASTE||o===P.id);T.forEach(P=>{var k,N,D;if(s){const W=(k=P.onPasteRows)==null?void 0:k.call(P,{range:h,unitId:d,subUnitId:u},s,{pasteType:o});W&&(b.push(...W.redos),R.push(...W.undos))}const x=(N=P.onPasteColumns)==null?void 0:N.call(P,{range:h,unitId:d,subUnitId:u},l||new Array(g).map(()=>({})),{pasteType:o});x&&(b.push(...x.redos),R.push(...x.undos));const A=(D=P.onPasteCells)==null?void 0:D.call(P,v,{range:h,unitId:d,subUnitId:u},c,C);A&&(b.push(...A.redos),R.push(...A.undos))});const M=this._getSetSelectionOperation(d,u,h,c,o);M&&b.push(M),b=Xi(b),R=Xi(R),R.push({id:m.SetWorksheetActiveOperation.id,params:{unitId:t.unitId,subUnitId:t.subUnitId}}),this._logService.log("[SheetClipboardService]","pasting mutations",{undoMutationsInfo:R,redoMutationsInfo:b});const y=b.every(P=>this._commandService.syncExecuteCommand(P.id,P.params));return y&&(this._undoRedoService.pushUndoRedo({unitID:d,undoMutations:R,redoMutations:b}),this.updatePasteOptionsCache({target:{pastedRange:h,unitId:d,subUnitId:u},cellMatrix:c,rowProperties:s,colProperties:l,pasteType:o,source:i}),this.setShowMenu(!0)),T.forEach(P=>{var x;return(x=P.onAfterPaste)==null?void 0:x.call(P,y)}),y}_getSetSelectionOperation(e,t,o,i,s){var M;const l=(M=this._univerInstanceService.getUniverSheetInstance(e))==null?void 0:M.getSheetBySheetId(t);if(!l)return null;const{rows:c,cols:d}=o,u=c[0],h=d[0],g=c[c.length-1],S=d[d.length-1],f={startRow:u,endRow:u,startColumn:h,endColumn:h},p=m.getPrimaryForRange(f,l),v=i.getValue(0,0),C=(v==null?void 0:v.rowSpan)||1,b=(v==null?void 0:v.colSpan)||1;if((s===ge.DEFAULT_PASTE||s===ge.SPECIAL_PASTE_BESIDES_BORDER||s===ge.SPECIAL_PASTE_FORMAT)&&(C>1||b>1)){const y={startRow:u,endRow:u+C-1,startColumn:h,endColumn:h+b-1};p.startRow=y.startRow,p.endRow=y.endRow,p.startColumn=y.startColumn,p.endColumn=y.endColumn,p.isMerged=!0,p.isMergedMainCell=!0}const T={unitId:e,subUnitId:t,selections:[{range:{startRow:u,endRow:g,startColumn:h,endColumn:S},primary:p,style:null}]};return{id:m.SetSelectionsOperation.id,params:T}}_getPastingTarget(){const e=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),t=e.getActiveSheet(),o=this._selectionManagerService.getCurrentLastSelection();return{unitId:e.getUnitId(),subUnitId:t==null?void 0:t.getSheetId(),selection:o}}_transformPastedData(e,t,o){const i=this._getPastingTarget(),{selection:s,unitId:l,subUnitId:c}=i;if(!c||!s)return null;const d=this._injector.invoke(N=>Sn(s.range,N,l,c));if(!d)return null;const{ranges:[u],mapFunc:h}=Kt([d]),{startRow:g,startColumn:S,endRow:f,endColumn:p}=u,v=f-g+1,C=p-S+1,b=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),R=b==null?void 0:b.getActiveSheet();if(!R)return null;const M=R.getMergeData().filter(N=>d.rows.includes(N.startRow)&&d.cols.includes(N.startColumn)),y=M[0];let P=0,x=0,A=0,k=0;if(y&&(P=y.startRow,x=y.startColumn,A=y.endRow,k=y.endColumn),v%e===0&&C%t===0)if(M.length>0&&(v!==e||C!==t))if(P===d.rows[0]&&x===d.cols[0]&&A===d.rows[v-1]&&k===d.cols[C-1])if(Ph(o))for(let D=0;D<v;D++)for(let W=0;W<C;W++){const H=o.getValue(D%e,W%t);H&&o.setValue(D,W,H)}else o.forValue((D,W,H)=>{H.s=null,delete H.colSpan,delete H.rowSpan});else for(let N=0;N<v;N++)for(let D=0;D<C;D++){const W=o.getValue(N%e,D%t);W&&o.setValue(N,D,W)}else for(let N=0;N<v;N++)for(let D=0;D<C;D++){const W=o.getValue(N%e,D%t);W&&o.setValue(N,D,W)}else if(M.length>0){const{row:N,col:D}=h(g,S);if(this._topLeftCellsMatch(e,t,{topRow:N,leftCol:D})){const H=this._expandOrShrinkRowsCols(l,c,d,t,e);d.rows=H.rows,d.cols=H.cols}else{if(f>y.endRow||p>y.endColumn)return null;o.forValue((H,U,B)=>{B.s=null,delete B.colSpan,delete B.rowSpan})}}else{const N=this._expandOrShrinkRowsCols(l,c,d,t,e);d.rows=N.rows,d.cols=N.cols}return{pastedRange:d,unitId:l,subUnitId:c}}_getPastedRange(e){var R;const t=this._getPastingTarget(),{selection:o,unitId:i,subUnitId:s}=t;if(!s||!o)return null;const l=this._injector.invoke(T=>Sn(o.range,T,i,s));if(!l)return null;const{startColumn:c,endColumn:d,startRow:u,endRow:h}=e.getDataRange(),g=h-u+1,S=d-c+1;if(g<=0||S<=0)return null;const f=l.rows.length,p=l.cols.length,v=(R=this._univerInstanceService.getUniverSheetInstance(i))==null?void 0:R.getSheetBySheetId(s);if(!v)return null;const C=v==null?void 0:v.getMergeData();if(f%g===0&&p%S===0&&!(C==null?void 0:C.some(M=>Qr(M,l)))){for(let M=0;M<f;M++)for(let y=0;y<p;y++){const P=e.getValue(M%g,y%S);P&&e.setValue(M,y,P)}return{pastedRange:l,unitId:i,subUnitId:s}}const b=this._expandOrShrinkRowsCols(i,s,l,S,g);return l.rows=b.rows,l.cols=b.cols,{pastedRange:l,unitId:i,subUnitId:s}}_expandOrShrinkRowsCols(e,t,o,i,s){const{rows:l,cols:c}=o,d=this._univerInstanceService.getUniverSheetInstance(e),u=d==null?void 0:d.getSheetBySheetId(t);let h,g;if(l.length>=s)h=l.slice(0,s);else{h=l.slice(0);let S=l[l.length-1]+1;for(;h.length<s;)u.getRowFiltered(S)||h.push(S),S++}if(c.length>=i)g=c.slice(0,i);else{g=c.slice(0);let S=c[c.length-1]+1;for(;g.length<i;)g.push(S),S++}return{rows:h,cols:g}}_topLeftCellsMatch(e,t,o){const i=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=i==null?void 0:i.getActiveSheet();if(!s)return!1;const{topRow:l,leftCol:c}=o,d=yh(l+e-1,c,c+t-1,s),u=Mh(c+t-1,l,l+e-1,s);return!d&&!u}removeMarkSelection(){this._copyMarkId&&(this._markSelectionService.removeShape(this._copyMarkId),this._copyMarkId=null)}_initUnitDisposed(){this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(a.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{e&&this.copyContentCache().clearWithUnitId(e.getUnitId())}))}disposePasteOptionsCache(){this.setShowMenu(!1),this.updatePasteOptionsCache(null)}};exports.SheetClipboardService=Eh([Oe(0,a.ILogService),Oe(1,a.IUniverInstanceService),Oe(2,a.Inject(m.SheetsSelectionsService)),Oe(3,I.IClipboardInterfaceService),Oe(4,a.IUndoRedoService),Oe(5,a.ICommandService),Oe(6,qt),Oe(7,I.INotificationService),Oe(8,I.IPlatformService),Oe(9,w.IRenderManagerService),Oe(10,a.Inject(a.ThemeService)),Oe(11,a.Inject(a.LocaleService)),Oe(12,a.Inject(a.ErrorService)),Oe(13,a.Inject(a.Injector))],exports.SheetClipboardService);function bl(n){let r="";const e=n.getLength();return n.forRow((t,o)=>{const i=[];o.forEach(s=>{const l=n.getValue(t,s);if(l){const c=wh(l);i.push(c)}}),r+=i.join(" "),t!==e-1&&(r+=`
12
+ `)}),r}function wh(n){return a.isNotNullOrUndefined(n.displayV)?n.displayV:a.extractPureTextFromCell(n)}function yh(n,r,e,t){return t.getMergeData().some(o=>o.startRow<=n&&n<o.endRow&&r<=o.startColumn&&o.startColumn<=e)}function Mh(n,r,e,t){return t.getMergeData().some(o=>o.startColumn<=n&&n<o.endColumn&&r<=o.startRow&&o.startRow<=e)}function Ph(n){let r=0;return n.forValue((e,t,o)=>{if(o&&r++,r>1)return!1}),r>1}function Bn(){return{p:null,v:null,s:null,f:null,si:null,t:null}}const ws=998,Xe={id:I.CopyCommand.id,name:"sheet.command.copy",type:a.CommandType.COMMAND,multi:!0,priority:ws,preconditions:Rs,handler:async n=>n.get(Be).copy()},ys={id:I.CutCommand.id,name:"sheet.command.cut",type:a.CommandType.COMMAND,multi:!0,priority:ws,preconditions:Rs,handler:async n=>n.get(Be).cut()},Ye={id:I.PasteCommand.id,type:a.CommandType.COMMAND,multi:!0,name:"sheet.command.paste",priority:ws,preconditions:Rs,handler:async(n,r)=>{const t=await n.get(I.IClipboardInterfaceService).read(),o=n.get(Be);return t.length!==0?o.paste(t[0],r==null?void 0:r.value):!1}},ir={id:I.SheetPasteShortKeyCommandName,type:a.CommandType.COMMAND,handler:async(n,r)=>{const e=n.get(Be),{htmlContent:t,textContent:o,files:i}=r;return e.legacyPaste(t,o,i),!0}},fn={id:"sheet.command.paste-value",type:a.CommandType.COMMAND,handler:async n=>n.get(a.ICommandService).executeCommand(Ye.id,{value:ge.SPECIAL_PASTE_VALUE})},pn={id:"sheet.command.paste-format",type:a.CommandType.COMMAND,handler:async n=>n.get(a.ICommandService).executeCommand(Ye.id,{value:ge.SPECIAL_PASTE_FORMAT})},Ht={id:"sheet.command.paste-col-width",type:a.CommandType.COMMAND,handler:async n=>n.get(a.ICommandService).executeCommand(Ye.id,{value:ge.SPECIAL_PASTE_COL_WIDTH})},vn={id:"sheet.command.paste-besides-border",type:a.CommandType.COMMAND,handler:async n=>n.get(a.ICommandService).executeCommand(Ye.id,{value:ge.SPECIAL_PASTE_BESIDES_BORDER})},Rl={id:"sheet.command.optional-paste",type:a.CommandType.COMMAND,handler:async(n,{type:r})=>n.get(Be).rePasteWithPasteType(r)},go={id:"sheet.command.hide-row-confirm",type:a.CommandType.COMMAND,handler:async n=>{var c;const e=(c=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:c.map(d=>d.range);if(!(e!=null&&e.length))return!1;const t=n.get(a.ICommandService),o=n.get(a.IUniverInstanceService),i=m.getSheetCommandTarget(o);if(!i)return!1;const{worksheet:s}=i,l=s.getVisibleRows();if(nl(l,e)){const d=n.get(I.IConfirmService),u=n.get(a.LocaleService);return await d.confirm({id:"sheet.confirm.hide-row",title:{title:u.t("info.problem")},children:{title:u.t("rightClick.hideAllRowsAlert")},cancelText:u.t("button.cancel"),confirmText:u.t("button.confirm")}),!1}return await t.executeCommand(m.SetRowHiddenCommand.id),!0}},So={id:"sheet.command.hide-col-confirm",type:a.CommandType.COMMAND,handler:async n=>{var c;const e=(c=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:c.map(d=>d.range);if(!(e!=null&&e.length))return!1;const t=n.get(a.ICommandService),o=n.get(a.IUniverInstanceService),i=m.getSheetCommandTarget(o);if(!i)return!1;const{worksheet:s}=i,l=s.getVisibleCols();if(ol(l,e)){const d=n.get(I.IConfirmService),u=n.get(a.LocaleService);return await d.confirm({id:"sheet.confirm.hide-col",title:{title:u.t("info.problem")},children:{title:u.t("rightClick.hideAllColumnsAlert")},cancelText:u.t("button.cancel"),confirmText:u.t("button.confirm")}),!1}return await t.executeCommand(m.SetColHiddenCommand.id),!0}},Qt={type:a.CommandType.COMMAND,id:"sheet.command.set-range-bold",handler:async n=>{const r=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?r.executeCommand($.SetInlineFormatBoldCommand.id):r.executeCommand(m.SetBoldCommand.id)}},Jt={type:a.CommandType.COMMAND,id:"sheet.command.set-range-italic",handler:async n=>{const r=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?r.executeCommand($.SetInlineFormatItalicCommand.id):r.executeCommand(m.SetItalicCommand.id)}},$t={type:a.CommandType.COMMAND,id:"sheet.command.set-range-underline",handler:async n=>{const r=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?r.executeCommand($.SetInlineFormatUnderlineCommand.id):r.executeCommand(m.SetUnderlineCommand.id)}},en={type:a.CommandType.COMMAND,id:"sheet.command.set-range-stroke",handler:async n=>{const r=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?r.executeCommand($.SetInlineFormatStrikethroughCommand.id):r.executeCommand(m.SetStrikeThroughCommand.id)}},Ms={type:a.CommandType.COMMAND,id:"sheet.command.set-range-subscript",handler:async n=>{const r=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?r.executeCommand($.SetInlineFormatSubscriptCommand.id):!1}},Ps={type:a.CommandType.COMMAND,id:"sheet.command.set-range-superscript",handler:async n=>{const r=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?r.executeCommand($.SetInlineFormatSuperscriptCommand.id):!1}},fo={type:a.CommandType.COMMAND,id:"sheet.command.set-range-fontsize",handler:async(n,r)=>{const e=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?e.executeCommand($.SetInlineFormatFontSizeCommand.id,r):e.executeCommand(m.SetFontSizeCommand.id,r)}},po={type:a.CommandType.COMMAND,id:"sheet.command.set-range-font-family",handler:async(n,r)=>{const e=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?e.executeCommand($.SetInlineFormatFontFamilyCommand.id,r):e.executeCommand(m.SetFontFamilyCommand.id,r)}},Mn={type:a.CommandType.COMMAND,id:"sheet.command.set-range-text-color",handler:async(n,r)=>{const e=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?e.executeCommand($.SetInlineFormatTextColorCommand.id,r):e.executeCommand(m.SetTextColorCommand.id,r)}},Os={type:a.CommandType.COMMAND,id:"sheet.command.reset-range-text-color",handler:async n=>{const r=n.get(a.ICommandService),t=n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED),o=n.get(a.ThemeService);return t?r.executeCommand($.SetInlineFormatTextColorCommand.id,{value:null}):r.executeCommand(m.SetTextColorCommand.id,{value:o.getCurrentTheme().textColor})}};var Oh=Object.getOwnPropertyDescriptor,xh=(n,r,e,t)=>{for(var o=t>1?void 0:t?Oh(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},cn=(n,r)=>(e,t)=>r(e,t,n),Ne=(n=>(n[n.OFF=0]="OFF",n[n.ONCE=1]="ONCE",n[n.INFINITE=2]="INFINITE",n))(Ne||{});const et=a.createIdentifier("univer.format-painter-service");let sr=class extends a.Disposable{constructor(r,e,t,o,i,s){super();E(this,"status$");E(this,"_selectionFormat");E(this,"_markId",null);E(this,"_status$");E(this,"_defaultHook",null);E(this,"_extendHooks",[]);this._selectionManagerService=r,this._themeService=e,this._markSelectionService=t,this._logService=o,this._commandService=i,this._undoRedoService=s,this._status$=new O.BehaviorSubject(0),this.status$=this._status$.asObservable(),this._selectionFormat={styles:new a.ObjectMatrix,merges:[]}}addHook(r){var e,t,o;r.isDefaultHook&&((e=r.priority)!=null?e:0)>((o=(t=this._defaultHook)==null?void 0:t.priority)!=null?o:-1)?this._defaultHook=r:(this._extendHooks.push(r),this._extendHooks.sort((i,s)=>(i.priority||0)-(s.priority||0)))}getHooks(){return this._defaultHook?[this._defaultHook,...this._extendHooks]:this._extendHooks}setStatus(r){this._updateRangeMark(r),this._status$.next(r),this.getHooks().forEach(t=>{t.onStatusChange!==void 0&&t.onStatusChange(r)})}getStatus(){return this._status$.getValue()}setSelectionFormat(r){this._selectionFormat=r}getSelectionFormat(){return this._selectionFormat}applyFormatPainter(r,e,t){const o=this.getHooks(),i=[],s=[];o.forEach(c=>{if(c.onApply!==void 0){const d=c.onApply(r,e,t,this._selectionFormat);d&&(i.push(...d.redos),s.push(...d.undos))}});for(const c of o)if(c.onBeforeApply!==void 0&&!c.onBeforeApply({unitId:r,subUnitId:e,range:t,redoMutationsInfo:i,format:this._selectionFormat,undoMutationsInfo:s}))return!1;this._logService.log("[FormatPainterService]","apply mutations",{undoMutationsInfo:s,redoMutationsInfo:i});const l=i.every(c=>this._commandService.executeCommand(c.id,c.params));return l&&this._undoRedoService.pushUndoRedo({unitID:r,undoMutations:s,redoMutations:i}),l}_updateRangeMark(r){if(this._markSelectionService.removeAllShapes(),r!==0){const e=this._selectionManagerService.getCurrentLastSelection();if(e){const t=Cl(this._themeService);r===2?this._markId=this._markSelectionService.addShape({...e,style:t}):this._markId=this._markSelectionService.addShape({...e,style:t},[m.SetRangeValuesMutation.id])}}}};sr=xh([cn(0,a.Inject(m.SheetsSelectionsService)),cn(1,a.Inject(a.ThemeService)),cn(2,qt),cn(3,a.ILogService),cn(4,a.ICommandService),cn(5,a.IUndoRedoService)],sr);const vo={id:"sheet.operation.set-format-painter",type:a.CommandType.OPERATION,handler:(n,r)=>r?(n.get(et).setStatus(r.status),!0):!1},Hr={type:a.CommandType.COMMAND,id:"sheet.command.set-infinite-format-painter",handler:async n=>{const e=n.get(et).getStatus();let t;return e!==Ne.OFF?t=Ne.OFF:t=Ne.INFINITE,n.get(a.ICommandService).executeCommand(vo.id,{status:t})}},Dn={type:a.CommandType.COMMAND,id:"sheet.command.set-once-format-painter",handler:async n=>{const e=n.get(et).getStatus();let t;return e!==Ne.OFF?t=Ne.OFF:t=Ne.ONCE,n.get(a.ICommandService).executeCommand(vo.id,{status:t})}},Co={type:a.CommandType.COMMAND,id:"sheet.command.apply-format-painter",handler:async(n,r)=>n.get(et).applyFormatPainter(r.unitId,r.subUnitId,r.range)},dt={type:a.CommandType.COMMAND,id:"sheet.command.set-selection-frozen",handler:async(n,r)=>{const{type:e}=r||{},t=n.get(a.IUniverInstanceService),o=n.get(a.IUndoRedoService),i=m.getSheetCommandTarget(t);if(!i)return!1;const{unitId:s,subUnitId:l}=i,c=n.get(a.ICommandService),u=n.get(m.SheetsSelectionsService).getCurrentSelections();if(!u)return!1;const h=u[(u==null?void 0:u.length)-1],{range:g}=h,f=n.get(w.IRenderManagerService).getRenderById(s).with(exports.SheetScrollManagerService),{sheetViewStartRow:p=0,sheetViewStartColumn:v=0}=f.getCurrentScrollState()||{};let C,b,R,T;const{startRow:M,startColumn:y,rangeType:P}=g;if(P===a.RANGE_TYPE.ROW||e===1)C=M,R=M-p,b=-1,T=0;else if(P===a.RANGE_TYPE.COLUMN||e===2)C=-1,R=0,b=y,T=y-v;else if(P===a.RANGE_TYPE.NORMAL)C=M,R=M-p,b=y,T=y-v;else return!1;const x={unitId:s,subUnitId:l,startRow:C,startColumn:b,xSplit:b>0?Math.max(1,T):T,ySplit:C>0?Math.max(1,R):R},A=m.SetFrozenMutationFactory(n,x);return c.syncExecuteCommand(m.SetFrozenMutation.id,x)&&o.pushUndoRedo({unitID:s,undoMutations:[{id:m.SetFrozenMutation.id,params:A}],redoMutations:[{id:m.SetFrozenMutation.id,params:x}]}),!0}},Io={type:a.CommandType.COMMAND,id:"sheet.command.set-row-frozen",handler:async n=>(n.get(a.ICommandService).executeCommand(dt.id,{type:1}),!0)},_o={type:a.CommandType.COMMAND,id:"sheet.command.set-col-frozen",handler:async n=>(n.get(a.ICommandService).executeCommand(dt.id,{type:2}),!0)};var Ah=Object.getOwnPropertyDescriptor,kh=(n,r,e,t)=>{for(var o=t>1?void 0:t?Ah(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},pa=(n,r)=>(e,t)=>r(e,t,n);const Nh=(n,r)=>{const{unitId:e,subUnitId:t,ranges:o}=n,i={},s=r.getColumnManager();for(let l=0;l<o.length;l++){const c=o[l];for(let d=c.startColumn;d<c.endColumn+1;d++){const u=s.getColumnOrCreate(d);i[d]=u.w}}return{unitId:e,subUnitId:t,ranges:o,colWidth:i}};exports.AutoWidthController=class extends a.Disposable{constructor(r,e){super(),this._renderManagerService=r,this._univerInstanceService=e}getUndoRedoParamsOfColWidth(r){const e={redos:[],undos:[]},{_univerInstanceService:t}=this,o=m.getSheetCommandTarget(t);if(!o)return e;const{unitId:i,subUnitId:s,worksheet:l}=o,c=this._renderManagerService.getRenderById(i).with(exports.SheetSkeletonManagerService);if(!c.getCurrentParam())return e;const{skeleton:d}=c.getCurrentParam(),u=d.calculateAutoWidthInRange(r.ranges),h={};for(const{col:f,width:p}of u)h[f]=p;const g={subUnitId:s,unitId:i,ranges:r.ranges,colWidth:h},S=Nh(g,l);return{undos:[{id:m.SetWorksheetColWidthMutation.id,params:S}],redos:[{id:m.SetWorksheetColWidthMutation.id,params:g}]}}};exports.AutoWidthController=kh([pa(0,w.IRenderManagerService),pa(1,a.Inject(a.IUniverInstanceService))],exports.AutoWidthController);const bo={type:a.CommandType.COMMAND,id:"sheet.command.set-col-auto-width",handler:(n,r)=>{const e=n.get(a.ICommandService),t=n.get(a.IUndoRedoService),o=n.get(m.SheetsSelectionsService),i=n.get(a.IUniverInstanceService),s=m.getSheetCommandTarget(i,r);if(!s)return!1;const{unitId:l,subUnitId:c}=s;let d=[];if(r!=null&&r.ranges)d=[...r.ranges];else{const f=o.getCurrentSelections();for(let p=0;p<f.length;p++)d.push(f[p].range)}if(!(d!=null&&d.length))return!1;const u={unitId:l,subUnitId:c,ranges:d},{redos:h,undos:g}=n.get(exports.AutoWidthController).getUndoRedoParamsOfColWidth(u);return a.sequenceExecute([...h],e).result?(t.pushUndoRedo({unitID:l,undoMutations:[...g],redoMutations:[...h]}),!0):!1}},Hn="UI_PLUGIN_SHEETS",Ro=`${Hn}_COLOR_PICKER_COMPONENT`,Vr=`${Hn}_FONT_FAMILY_COMPONENT`,Wr=`${Hn}_FONT_FAMILY_ITEM_COMPONENT`,Ur=`${Hn}_FONT_SIZE_COMPONENT`,Lr=`${Hn}_MENU_ITEM_INPUT_COMPONENT`,Dh="univer-sheets-ui-context-menu-input",Hh="univer-sheets-ui-context-menu-input-container",Vh="univer-sheets-ui-context-menu-input-number",Jr={sheetsUiContextMenuInput:Dh,sheetsUiContextMenuInputContainer:Hh,sheetsUiContextMenuInputNumber:Vh},El=n=>{const{prefix:r,suffix:e,value:t,onChange:o,min:i=Number.MIN_SAFE_INTEGER,max:s=Number.MAX_SAFE_INTEGER}=n,l=I.useDependency(a.LocaleService),c=I.useDependency(I.IContextMenuService),[d,u]=V.useState(),h=S=>{var f;u(S==null?void 0:S.toString()),o((f=S==null?void 0:S.toString())!=null?f:"")};V.useEffect(()=>{c.visible||u(t)},[c.visible]),V.useEffect(()=>{u(t)},[t]);function g(S){S.key==="Backspace"&&S.stopPropagation()}return _.jsxs("div",{className:Jr.sheetsUiContextMenuInput,children:[l.t(r),_.jsx("span",{className:Jr.sheetsUiContextMenuInputContainer,onClick:S=>S.stopPropagation(),children:_.jsx(Z.InputNumber,{className:Jr.sheetsUiContextMenuInputNumber,value:Number(d),precision:0,onKeyDown:g,onChange:h,min:i,max:s})}),l.t(e)]})};function Wh(n){return n.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).pipe(O.switchMap(r=>r?r.activeSheet$.pipe(O.map(e=>e?{workbook:r,worksheet:e}:null)):O.of(null)))}function Pe(n,r,e){return Wh(n).pipe(O.switchMap(t=>t?e(t):O.of(r)))}function Tl(n,r){const e=n.get(a.IUniverInstanceService),t=n.get(m.IExclusiveRangeService),o=n.get(m.SheetsSelectionsService);return e.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).pipe(O.switchMap(s=>s?O.combineLatest([o.selectionMoveEnd$,s.activeSheet$]).pipe(O.switchMap(([l,c])=>{if(!c||l.length===0)return O.of(!1);const d=t.getInterestGroupId(l);if(r){const u=d.filter(h=>r.has(h));return O.of(u.length>0)}else return O.of(d.length>0)})):O.of(!1)))}function tn(n,r,e){return O.combineLatest([r,Tl(n,e)]).pipe(O.map(([t,o])=>t||o))}function ee(n,r={},e=!1){var u;const o=n.get(a.IUniverInstanceService).getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),i=n.get(a.UserManagerService),s=n.has(Se)?n.get(Se):null,c=n.get(a.IContextService).subscribeContextValue$(a.FOCUSING_FX_BAR_EDITOR),d=(u=s==null?void 0:s.visible$)!=null?u:O.of(null);return O.combineLatest([i.currentUser$,o,d,c]).pipe(O.switchMap(([h,g,S,f])=>!g||S!=null&&S.visible&&S.unitId===g.getUnitId()&&!e||f&&!e?O.of(!0):g.activeSheet$.pipe(O.switchMap(p=>{if(!p)return O.of(!0);const v=n.get(m.SheetsSelectionsService),C=n.get(m.RangeProtectionRuleModel),b=n.get(m.WorksheetProtectionRuleModel),T=n.get(a.IContextService).subscribeContextValue$(a.FOCUSING_COMMON_DRAWINGS).pipe(O.startWith(!1));return O.combineLatest([v.selectionMoveEnd$,T]).pipe(O.switchMap(([M,y])=>{if(y)return O.of(!0);const P=g.getUnitId(),x=p.getSheetId(),A=n.get(a.IPermissionService),{workbookTypes:k=[m.WorkbookEditablePermission],worksheetTypes:N,rangeTypes:D}=r,W=[];if(k==null||k.forEach(F=>{W.push(new F(P).id)}),N==null||N.forEach(F=>{W.push(new F(P,x).id)}),b.getRule(P,x))return A.composePermission$(W).pipe(O.map(F=>F.some(L=>L.value===!1)));const U=M==null?void 0:M.map(F=>F.range),B=C.getSubunitRuleList(P,x).filter(F=>U==null?void 0:U.some(L=>F.ranges.some(j=>a.Rectangle.intersects(L,j))));return D==null||D.forEach(F=>{B.forEach(L=>{W.push(new F(P,x,L.permissionId).id)})}),A.composePermission$(W).pipe(O.map(F=>F.some(L=>L.value===!1)))}))}))))}function Br(n){const r=n.get(a.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=n.get(m.RangeProtectionRuleModel),o=n.get(a.IPermissionService);return O.merge(e.selectionMoveEnd$,o.permissionPointUpdate$.pipe(O.debounceTime(100))).pipe(O.map(()=>{var h;const i=(h=e.getCurrentLastSelection())==null?void 0:h.range;if(!i)return!0;const s=r.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s==null?void 0:s.getActiveSheet();if(!s||!l)return!0;const c=s.getUnitId(),d=l.getSheetId(),u=[new m.WorkbookEditablePermission(c).id,new m.WorksheetEditPermission(c,d).id];return t.getSubunitRuleList(c,d).filter(g=>g.ranges.some(S=>a.Rectangle.intersects(i,S))).forEach(g=>{u.push(new m.RangeProtectionPermissionEditPoint(c,d,g.permissionId).id)}),o.composePermission(u).some(g=>g.value===!1)}))}function wl(n,r){const e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(m.RangeProtectionRuleModel),i=n.get(a.IPermissionService);return O.merge(t.selectionMoveEnd$,i.permissionPointUpdate$.pipe(O.debounceTime(100))).pipe(O.map(()=>{var g;const s=(g=t.getCurrentLastSelection())==null?void 0:g.range;if(!s)return!0;const l=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),c=l==null?void 0:l.getActiveSheet();if(!l||!c)return!0;const d=l.getUnitId(),u=c.getSheetId(),h=[new m.WorkbookEditablePermission(d).id,new m.WorksheetEditPermission(d,u).id];return o.getSubunitRuleList(d,u).filter(S=>r==="row"?S.ranges.some(f=>s.endRow>f.startRow&&s.endRow<=f.endRow):S.ranges.some(f=>s.endColumn>f.startColumn&&s.endColumn<=f.endColumn)).forEach(S=>{h.push(new m.RangeProtectionPermissionEditPoint(d,u,S.permissionId).id)}),i.composePermission(h).some(S=>S.value===!1)}))}function yl(n,r){const e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(m.RangeProtectionRuleModel),i=n.get(a.IPermissionService);return O.merge(t.selectionMoveEnd$,i.permissionPointUpdate$.pipe(O.debounceTime(100))).pipe(O.map(()=>{var g;const s=(g=t.getCurrentLastSelection())==null?void 0:g.range;if(!s)return!0;const l=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),c=l==null?void 0:l.getActiveSheet();if(!l||!c)return!0;const d=l.getUnitId(),u=c.getSheetId(),h=[new m.WorkbookEditablePermission(d).id,new m.WorksheetEditPermission(d,u).id];return o.getSubunitRuleList(d,u).filter(S=>r==="row"?S.ranges.some(f=>s.startRow>f.startRow&&s.startRow<=f.endRow):S.ranges.some(f=>s.startColumn>f.startColumn&&s.startColumn<=f.endColumn)).forEach(S=>{h.push(new m.RangeProtectionPermissionEditPoint(d,u,S.permissionId).id)}),i.composePermission(h).some(S=>S.value===!1)}))}function Ml(n,r){const e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(m.RangeProtectionRuleModel),i=n.get(a.IPermissionService);return O.merge(t.selectionMoveEnd$,i.permissionPointUpdate$.pipe(O.debounceTime(100))).pipe(O.map(()=>{var S;const s=(S=t.getCurrentLastSelection())==null?void 0:S.range;if(!s)return!0;const l=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),c=l==null?void 0:l.getActiveSheet();if(!l||!c)return!0;const d=l.getUnitId(),u=c.getSheetId(),h=[new m.WorkbookEditablePermission(d).id,new m.WorksheetEditPermission(d,u).id],g=a.Tools.deepClone(s);return r==="row"?(g.startColumn=0,g.endColumn=c.getColumnCount()-1):(g.startRow=0,g.endRow=c.getRowCount()-1),o.getSubunitRuleList(d,u).filter(f=>f.ranges.some(p=>a.Rectangle.intersects(g,p))).forEach(f=>{h.push(new m.RangeProtectionPermissionEditPoint(d,u,f.permissionId).id)}),i.composePermission(h).some(f=>f.value===!1)}))}function Fr(n,r){const e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(m.RangeProtectionRuleModel),i=n.get(a.IPermissionService);return O.merge(t.selectionMoveEnd$,i.permissionPointUpdate$.pipe(O.debounceTime(100))).pipe(O.map(()=>{var S;const s=(S=t.getCurrentLastSelection())==null?void 0:S.range;if(!s)return!0;const l=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),c=l==null?void 0:l.getActiveSheet();if(!l||!c)return!0;const d=l.getUnitId(),u=c.getSheetId(),h=[new m.WorkbookEditablePermission(d).id,new m.WorksheetEditPermission(d,u).id],g=a.Tools.deepClone(s);return r==="row"?g.endRow=c.getRowCount()-1:g.endColumn=c.getColumnCount()-1,o.getSubunitRuleList(d,u).filter(f=>f.ranges.some(p=>a.Rectangle.intersects(g,p))).forEach(f=>{h.push(new m.RangeProtectionPermissionEditPoint(d,u,f.permissionId).id)}),i.composePermission(h).some(f=>f.value===!1)}))}function Vn(n,r){const t=n.get(a.IUniverInstanceService).getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(m.WorksheetProtectionRuleModel),i=n.get(m.RangeProtectionRuleModel),s=n.get(a.IPermissionService),l=n.get(a.UserManagerService);return O.combineLatest([l.currentUser$,t]).pipe(O.switchMap(([c,d])=>d?d.activeSheet$.pipe(O.switchMap(u=>{if(!u)return O.of(!0);const h=d.getUnitId(),g=[];return r.forEach(f=>g.push(new f(h).id)),s.composePermission$(g).pipe(O.map(f=>f.every(p=>p.value===!0))).pipe(O.map(f=>{if(!f)return!0;const p=u.getSheetId(),v=o.getRule(h,p),C=i.getSubunitRuleList(h,p);return!!(v||C.length)}))})):O.of(!0)))}var Pl=(n=>(n.ROW_HEADER_CONTEXT_MENU="ROW_HEADER_CONTEXT_MENU",n.COL_HEADER_CONTEXT_MENU="COL_HEADER_CONTEXT_MENU",n.SHEET_BAR="SHEET_BAR",n.SHEET_FOOTER="SHEET_FOOTER",n))(Pl||{});function Uh(n){const r=n.get(et);return{id:Dn.id,subId:Hr.id,type:I.MenuItemType.BUTTON,icon:"BrushSingle",title:"Format Painter",tooltip:"toolbar.formatPainter",activated$:new O.Observable(e=>{let t=!1;const o=r.status$.subscribe(i=>{t=i!==Ne.OFF,e.next(t)});return e.next(t),()=>{o.unsubscribe()}}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetCopyPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0)}}function Lh(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(a.IContextService),o=n.get(m.SheetsSelectionsService);return{id:Qt.id,type:I.MenuItemType.BUTTON,icon:"BoldSingle",title:"Set bold",tooltip:"toolbar.bold",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0),activated$:Pe(e,!1,({worksheet:i})=>new O.Observable(s=>{var u;const l=r.onCommandExecuted(h=>{var S,f;const g=h.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const p=(S=o.getCurrentLastSelection())==null?void 0:S.primary;let v=a.FontWeight.NORMAL;if(p!=null){const C=i.getRange(p.startRow,p.startColumn);v=C==null?void 0:C.getFontWeight()}s.next(v===a.FontWeight.BOLD)}if((g===Re.SetTextSelectionsOperation.id||g===$.SetInlineFormatCommand.id)&&t.getContextValue(a.EDITOR_ACTIVATED)&&t.getContextValue(a.FOCUSING_SHEET)){const p=To(n);if(p==null)return;const v=(f=p.ts)==null?void 0:f.bl;s.next(v===a.BooleanNumber.TRUE)}}),c=(u=o.getCurrentLastSelection())==null?void 0:u.primary;if(!i){s.next(!1);return}let d=a.FontWeight.NORMAL;if(c!=null){const h=i.getRange(c.startRow,c.startColumn);d=h==null?void 0:h.getFontWeight()}return s.next(d===a.FontWeight.BOLD),l.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Bh(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(a.IContextService);return{id:Jt.id,type:I.MenuItemType.BUTTON,icon:"ItalicSingle",title:"Set italic",tooltip:"toolbar.italic",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0),activated$:Pe(e,!1,({worksheet:i})=>new O.Observable(s=>{var u;const l=r.onCommandExecuted(h=>{var S,f;const g=h.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const p=(S=t.getCurrentLastSelection())==null?void 0:S.primary;let v=a.FontItalic.NORMAL;if(p!=null){const C=i.getRange(p.startRow,p.startColumn);v=C==null?void 0:C.getFontStyle()}s.next(v===a.FontItalic.ITALIC)}if((g===Re.SetTextSelectionsOperation.id||g===$.SetInlineFormatCommand.id)&&o.getContextValue(a.EDITOR_ACTIVATED)&&o.getContextValue(a.FOCUSING_SHEET)){const p=To(n);if(p==null)return;const v=(f=p.ts)==null?void 0:f.it;s.next(v===a.BooleanNumber.TRUE)}}),c=(u=t.getCurrentLastSelection())==null?void 0:u.primary;let d=a.FontItalic.NORMAL;if(c!=null){const h=i.getRange(c.startRow,c.startColumn);d=h==null?void 0:h.getFontStyle()}return s.next(d===a.FontItalic.ITALIC),l.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Fh(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(a.IContextService);return{id:$t.id,type:I.MenuItemType.BUTTON,icon:"UnderlineSingle",title:"Set underline",tooltip:"toolbar.underline",activated$:Pe(e,!1,({worksheet:i})=>new O.Observable(s=>{var u;const l=r.onCommandExecuted(h=>{var S,f;const g=h.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const p=(S=t.getCurrentLastSelection())==null?void 0:S.primary;let v;if(p!=null){const C=i.getRange(p.startRow,p.startColumn);v=C==null?void 0:C.getUnderline()}s.next(!!(v&&v.s))}if((g===Re.SetTextSelectionsOperation.id||g===$.SetInlineFormatCommand.id)&&o.getContextValue(a.EDITOR_ACTIVATED)&&o.getContextValue(a.FOCUSING_SHEET)){const p=To(n);if(p==null)return;const v=(f=p.ts)==null?void 0:f.ul;s.next((v==null?void 0:v.s)===a.BooleanNumber.TRUE)}}),c=(u=t.getCurrentLastSelection())==null?void 0:u.primary;let d;if(c!=null){const h=i.getRange(c.startRow,c.startColumn);d=h==null?void 0:h.getUnderline()}return s.next(!!(d&&d.s)),l.dispose})),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function jh(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(a.IContextService);return{id:en.id,type:I.MenuItemType.BUTTON,icon:"StrikethroughSingle",title:"Set strike through",tooltip:"toolbar.strikethrough",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0),activated$:Pe(e,!1,({worksheet:i})=>new O.Observable(s=>{var u;const l=r.onCommandExecuted(h=>{var S,f;const g=h.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const p=(S=t.getCurrentLastSelection())==null?void 0:S.primary;let v;if(p!=null){const C=i.getRange(p.startRow,p.startColumn);v=C==null?void 0:C.getStrikeThrough()}s.next(!!(v&&v.s))}if((g===Re.SetTextSelectionsOperation.id||g===$.SetInlineFormatCommand.id)&&o.getContextValue(a.EDITOR_ACTIVATED)&&o.getContextValue(a.FOCUSING_SHEET)){const p=To(n);if(p==null)return;const v=(f=p.ts)==null?void 0:f.st;s.next((v==null?void 0:v.s)===a.BooleanNumber.TRUE)}}),c=(u=t.getCurrentLastSelection())==null?void 0:u.primary;let d;if(c!=null){const h=i.getRange(c.startRow,c.startColumn);d=h==null?void 0:h.getStrikeThrough()}return s.next(!!(d&&d.s)),l.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function zh(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=a.DEFAULT_STYLES.ff;return{id:po.id,tooltip:"toolbar.font",type:I.MenuItemType.SELECTOR,label:Vr,selections:I.FONT_FAMILY_LIST.map(i=>({label:{name:Wr,hoverable:!0},value:i.value})),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0),value$:Pe(e,o,({worksheet:i})=>new O.Observable(s=>{var u;const l=r.onCommandExecuted(h=>{var p;const g=h.id;if(g!==m.SetRangeValuesMutation.id&&g!==m.SetSelectionsOperation.id&&g!==m.SetWorksheetActiveOperation.id)return;const S=(p=t.getCurrentLastSelection())==null?void 0:p.primary;let f;if(S!=null){const v=i.getRange(S.startRow,S.startColumn);f=v==null?void 0:v.getFontFamily()}s.next(f!=null?f:o)}),c=(u=t.getCurrentLastSelection())==null?void 0:u.primary;let d;if(c!=null){const h=i.getRange(c.startRow,c.startColumn);d=h==null?void 0:h.getFontFamily()}return s.next(d!=null?d:o),l.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Xh(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(a.IContextService),i=a.DEFAULT_STYLES.fs,s=ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0);return{id:fo.id,type:I.MenuItemType.SELECTOR,tooltip:"toolbar.fontSize",label:{name:Ur,props:{min:1,max:400,disabled$:s}},selections:I.FONT_SIZE_LIST,disabled$:s,value$:Pe(e,i,({worksheet:l})=>new O.Observable(c=>{var g;const d=r.onCommandExecuted(S=>{var p,v;const f=S.id;if(f===m.SetRangeValuesMutation.id||f===m.SetSelectionsOperation.id||f===m.SetWorksheetActiveOperation.id){const C=(p=t.getCurrentLastSelection())==null?void 0:p.primary;let b;if(C!=null){const R=l.getRange(C.startRow,C.startColumn);b=R==null?void 0:R.getFontSize()}c.next(b!=null?b:i)}if((f===Re.SetTextSelectionsOperation.id||f===$.SetInlineFormatCommand.id)&&o.getContextValue(a.EDITOR_ACTIVATED)&&o.getContextValue(a.FOCUSING_SHEET)){const C=To(n);if(C==null)return;const b=(v=C.ts)==null?void 0:v.fs;c.next(b!=null?b:i)}}),u=(g=t.getCurrentLastSelection())==null?void 0:g.primary;let h;if(u!=null){const S=l.getRange(u.startRow,u.startColumn);h=S==null?void 0:S.getFontSize()}return c.next(h!=null?h:i),d.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Yh(n){return{id:Os.id,type:I.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Gh(n){const r=n.get(a.ICommandService),e=n.get(a.ThemeService);return{id:Mn.id,icon:"FontColor",tooltip:"toolbar.textColor.main",type:I.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:Ro,hoverable:!1}}],value$:new O.Observable(t=>{const o=e.getCurrentTheme().textColor,i=r.onCommandExecuted(s=>{if(s.id===Mn.id){const l=s.params.value;t.next(l!=null?l:o)}});return t.next(o),i.dispose}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]},!0)}}function Zh(n){return{id:m.ResetBackgroundColorCommand.id,type:I.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Kh(n){const r=n.get(a.ICommandService),e=n.get(a.ThemeService);return{id:m.SetBackgroundColorCommand.id,tooltip:"toolbar.fillColor.main",type:I.MenuItemType.BUTTON_SELECTOR,icon:"PaintBucket",selections:[{label:{name:Ro,hoverable:!1}}],value$:new O.Observable(t=>{const o=e.getCurrentTheme().primaryColor,i=r.onCommandExecuted(s=>{if(s.id===m.SetBackgroundColorCommand.id){const l=s.params.value;t.next(l!=null?l:o)}});return t.next(o),i.dispose}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const va=[{label:"align.left",icon:"LeftJustifyingSingle",value:a.HorizontalAlign.LEFT},{label:"align.center",icon:"HorizontallySingle",value:a.HorizontalAlign.CENTER},{label:"align.right",icon:"RightJustifyingSingle",value:a.HorizontalAlign.RIGHT}];function qh(n){const r=n.get(a.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=a.HorizontalAlign.LEFT;return{id:m.SetHorizontalTextAlignCommand.id,icon:va[0].icon,tooltip:"toolbar.horizontalAlignMode.main",type:I.MenuItemType.SELECTOR,selections:va,value$:Pe(r,t,({worksheet:o})=>new O.Observable(i=>{var d;const s=n.get(a.ICommandService).onCommandExecuted(u=>{var f;const h=u.id;if(h!==m.SetHorizontalTextAlignCommand.id&&h!==m.SetSelectionsOperation.id&&h!==m.SetWorksheetActiveOperation.id)return;const g=(f=e.getCurrentLastSelection())==null?void 0:f.primary;let S;if(g!=null){const p=o.getRange(g.startRow,g.startColumn);S=p==null?void 0:p.getHorizontalAlignment()}i.next(S!=null?S:t)}),l=(d=e.getCurrentLastSelection())==null?void 0:d.primary;let c;if(l!=null){const u=o.getRange(l.startRow,l.startColumn);c=u==null?void 0:u.getHorizontalAlignment()}return i.next(c!=null?c:t),s.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const Ca=[{label:"align.top",icon:"AlignTopSingle",value:a.VerticalAlign.TOP},{label:"align.middle",icon:"VerticalCenterSingle",value:a.VerticalAlign.MIDDLE},{label:"align.bottom",icon:"AlignBottomSingle",value:a.VerticalAlign.BOTTOM}];function Qh(n){const r=n.get(a.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=a.VerticalAlign.BOTTOM;return{id:m.SetVerticalTextAlignCommand.id,icon:Ca[2].icon,tooltip:"toolbar.verticalAlignMode.main",type:I.MenuItemType.SELECTOR,selections:Ca,value$:Pe(r,t,({worksheet:o})=>new O.Observable(i=>{var d;const s=n.get(a.ICommandService).onCommandExecuted(u=>{var f;const h=u.id;if(h!==m.SetVerticalTextAlignCommand.id&&h!==m.SetSelectionsOperation.id&&h!==m.SetWorksheetActiveOperation.id)return;const g=(f=e.getCurrentLastSelection())==null?void 0:f.primary;let S;if(g!=null){const p=o.getRange(g.startRow,g.startColumn);S=p==null?void 0:p.getVerticalAlignment()}i.next(S!=null?S:t)}),l=(d=e.getCurrentLastSelection())==null?void 0:d.primary;let c;if(l!=null){const u=o.getRange(l.startRow,l.startColumn);c=u==null?void 0:u.getVerticalAlignment()}return i.next(c!=null?c:t),s.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const Ia=[{label:"textWrap.overflow",icon:"OverflowSingle",value:a.WrapStrategy.OVERFLOW},{label:"textWrap.wrap",icon:"AutowrapSingle",value:a.WrapStrategy.WRAP},{label:"textWrap.clip",icon:"TruncationSingle",value:a.WrapStrategy.CLIP}];function Jh(n){const r=n.get(m.SheetsSelectionsService),e=n.get(a.IUniverInstanceService),t=a.WrapStrategy.OVERFLOW;return{id:m.SetTextWrapCommand.id,tooltip:"toolbar.textWrapMode.main",icon:Ia[0].icon,type:I.MenuItemType.SELECTOR,selections:Ia,value$:Pe(e,t,({worksheet:o})=>new O.Observable(i=>{var d;const s=n.get(a.ICommandService).onCommandExecuted(u=>{var f;const h=u.id;if(h!==m.SetTextWrapCommand.id&&h!==m.SetSelectionsOperation.id&&h!==m.SetWorksheetActiveOperation.id)return;const g=(f=r.getCurrentLastSelection())==null?void 0:f.primary;let S;if(g!=null){const p=o.getRange(g.startRow,g.startColumn);S=p==null?void 0:p.getWrapStrategy()}i.next(S!=null?S:t)}),l=(d=r.getCurrentLastSelection())==null?void 0:d.primary;let c;if(l!=null){const u=o.getRange(l.startRow,l.startColumn);c=u==null?void 0:u.getWrapStrategy()}return i.next(c!=null?c:t),s.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const _a=[{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 $h(n){const r=n.get(m.SheetsSelectionsService),e=n.get(a.IUniverInstanceService),t=0;return{id:m.SetTextRotationCommand.id,tooltip:"toolbar.textRotateMode.main",icon:_a[0].icon,type:I.MenuItemType.SELECTOR,selections:_a,value$:Pe(e,t,({worksheet:o})=>new O.Observable(i=>{var d,u;const s=n.get(a.ICommandService).onCommandExecuted(h=>{var p,v;const g=h.id;if(g!==m.SetTextRotationCommand.id&&g!==m.SetSelectionsOperation.id&&g!==m.SetWorksheetActiveOperation.id)return;const S=(p=r.getCurrentLastSelection())==null?void 0:p.primary;let f;if(S!=null){const C=o.getRange(S.startRow,S.startColumn);f=C==null?void 0:C.getTextRotation()}(f==null?void 0:f.v)===a.BooleanNumber.TRUE?i.next("v"):i.next((v=f&&f.a)!=null?v:t)}),l=(d=r.getCurrentLastSelection())==null?void 0:d.primary;let c;if(l!=null){const h=o.getRange(l.startRow,l.startColumn);c=h==null?void 0:h.getTextRotation()}return(c==null?void 0:c.v)===a.BooleanNumber.TRUE?i.next("v"):i.next((u=c&&c.a)!=null?u:t),s.dispose})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Eo(n){return new O.Observable(e=>e.next(!n.get(I.IClipboardInterfaceService).supportClipboard))}function Cn(n){return{id:Xe.name,commandId:Xe.id,type:I.MenuItemType.BUTTON,title:"rightClick.copy",icon:"Copy",disabled$:ee(n,{workbookTypes:[m.WorkbookCopyPermission],worksheetTypes:[m.WorksheetCopyPermission],rangeTypes:[m.RangeProtectionPermissionViewPoint]}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function $r(n){return{id:Ye.name,commandId:Ye.id,type:I.MenuItemType.BUTTON,title:"rightClick.paste",icon:"PasteSpecial",disabled$:Eo(n).pipe(O.combineLatestWith(ee(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission,m.WorksheetSetCellValuePermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([r,e])=>r||e)),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}const Qn="sheet.menu.paste-special";function ei(n){return{id:Qn,type:I.MenuItemType.SUBITEMS,icon:"PasteSpecial",title:"rightClick.pasteSpecial",hidden$:tn(n,I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET))}}function ti(n){return{id:fn.id,type:I.MenuItemType.BUTTON,title:"rightClick.pasteValue",disabled$:Eo(n).pipe(O.combineLatestWith(ee(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetEditPermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([r,e])=>r||e)),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function ni(n){return{id:pn.id,type:I.MenuItemType.BUTTON,title:"rightClick.pasteFormat",disabled$:Eo(n).pipe(O.combineLatestWith(ee(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([r,e])=>r||e)),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function oi(n){return{id:Ht.id,type:I.MenuItemType.BUTTON,title:"rightClick.pasteColWidth",disabled$:Eo(n).pipe(O.combineLatestWith(ee(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetColumnStylePermission,m.WorksheetEditPermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([r,e])=>r||e))}}function ri(n){return{id:vn.id,type:I.MenuItemType.BUTTON,title:"rightClick.pasteBesidesBorder",disabled$:Eo(n).pipe(O.combineLatestWith(ee(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission,m.WorksheetSetCellValuePermission,m.WorksheetSetRowStylePermission,m.WorksheetSetColumnStylePermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([r,e])=>r||e)),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function em(n){return{id:m.SetWorksheetRowIsAutoHeightCommand.id,type:I.MenuItemType.BUTTON,icon:"AutoHeight",title:"rightClick.fitContent",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetRowStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function tm(n){return{id:bo.id,type:I.MenuItemType.BUTTON,icon:"AutoWidth",title:"rightClick.fitContent",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetRowStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}const Ol="sheet.menu.sheet-frozen";function nm(n){return{id:Ol,type:I.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}const Yi="sheet.header-menu.sheet-frozen";function ba(n){return{id:Yi,type:I.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function ii(n){return{id:dt.id,type:I.MenuItemType.BUTTON,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function om(n){return{id:Io.id,type:I.MenuItemType.BUTTON,title:"rightClick.freezeRow",icon:"FreezeRowSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function rm(n){return{id:_o.id,type:I.MenuItemType.BUTTON,title:"rightClick.freezeCol",icon:"FreezeColumnSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function si(n){return{id:m.CancelFrozenCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.cancelFreeze",icon:"CancelFreezeSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function im(n){return{id:go.id,type:I.MenuItemType.BUTTON,icon:"Hide",title:"rightClick.hideSelectedRow",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetRowStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function sm(n){return{id:So.id,type:I.MenuItemType.BUTTON,icon:"Hide",title:"rightClick.hideSelectedColumn",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetColumnStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function am(n){const r=n.get(a.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=n.get(a.ICommandService),o=[m.SetSelectionsOperation,m.SetRowHiddenMutation,m.SetRowVisibleMutation].map(i=>i.id);return{id:m.SetSelectedRowsVisibleCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.showHideRow",hidden$:Pe(r,!0,({worksheet:i})=>new O.Observable(s=>{function l(){var u;const d=(u=e.getCurrentSelections())==null?void 0:u.map(h=>h.range).filter(h=>h.rangeType===a.RANGE_TYPE.ROW);return!!(d!=null&&d.some(h=>{for(let g=h.startRow;g<=h.endRow;g++)if(!i.getRowRawVisible(g))return!0;return!1}))}const c=t.onCommandExecuted(d=>{o.findIndex(u=>u===d.id)!==-1&&s.next(!l())});return s.next(!l()),()=>c.dispose()})),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetRowStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function lm(n){const r=n.get(a.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=n.get(a.ICommandService),o=[m.SetSelectionsOperation,m.SetColHiddenMutation,m.SetColVisibleMutation].map(i=>i.id);return{id:m.SetSelectedColsVisibleCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.showHideColumn",hidden$:Pe(r,!0,({worksheet:i})=>new O.Observable(s=>{function l(){var u;const d=(u=e.getCurrentSelections())==null?void 0:u.map(h=>h.range).filter(h=>h.rangeType===a.RANGE_TYPE.COLUMN);return!d||d.length===0?!1:!!d.some(h=>{for(let g=h.startColumn;g<=h.endColumn;g++)if(!i.getColVisible(g))return!0;return!1})}const c=t.onCommandExecuted(d=>{o.findIndex(u=>u===d.id)!==-1&&s.next(!l())});return s.next(!l()),()=>c.dispose()})),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetColumnStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function cm(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=0;return{id:m.SetRowHeightCommand.id,type:I.MenuItemType.BUTTON,icon:"AdjustHeight",label:{name:Lr,props:{prefix:"rightClick.rowHeight",suffix:"px",min:2,max:1e3}},value$:Pe(e,o,({worksheet:i})=>new O.Observable(s=>{function l(){var h;const d=(h=t.getCurrentLastSelection())==null?void 0:h.primary,u=d?i.getRowHeight(d.startRow):o;s.next(u)}const c=r.onCommandExecuted(d=>{const u=d.id;if(u===m.SetRangeValuesMutation.id||u===m.SetSelectionsOperation.id||u===m.SetWorksheetRowIsAutoHeightMutation.id)return l()});return l(),c.dispose})),hidden$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetRowStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function dm(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=0;return{id:m.SetColWidthCommand.id,type:I.MenuItemType.BUTTON,icon:"AdjustWidth",label:{name:Lr,props:{prefix:"rightClick.columnWidth",suffix:"px",min:2,max:1e3}},value$:Pe(e,o,({worksheet:i})=>new O.Observable(s=>{function l(){var h;const d=(h=t.getCurrentLastSelection())==null?void 0:h.primary;let u=o;d!=null&&(u=i.getColumnWidth(d.startColumn)),s.next(u)}const c=r.onCommandExecuted(d=>{const u=d.id;if(u===m.SetRangeValuesMutation.id||u===m.SetSelectionsOperation.id||u===m.SetWorksheetColWidthMutation.id)return l()});return l(),c.dispose})),hidden$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetColumnStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function To(n){var c;const r=n.get(a.IUniverInstanceService),e=n.get(Re.DocSelectionManagerService),t=r.getUniverDocInstance(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),o=e.getActiveTextRange();if(t==null||o==null)return null;const i=(c=t.getBody())==null?void 0:c.textRuns;if(i==null)return;const{startOffset:s}=o;return i.find(({st:d,ed:u})=>s>=d&&s<=u)}var um=Object.getOwnPropertyDescriptor,hm=(n,r,e,t)=>{for(var o=t>1?void 0:t?um(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ot=(n,r)=>(e,t)=>r(e,t,n);const mm="__SpreadsheetFreezeRowMainName__",gm="__SpreadsheetFreezeRowHeaderName__",Sm="__SpreadsheetFreezeColumnMainName__",fm="__SpreadsheetFreezeColumnHeaderName__",ai=2,pm=.01,Fn=a.createInterceptorKey("freezePermissionCheck");exports.HeaderFreezeRenderController=class extends a.Disposable{constructor(e,t,o,i,s,l,c,d){super();E(this,"_rowFreezeHeaderRect");E(this,"_rowFreezeMainRect");E(this,"_columnFreezeHeaderRect");E(this,"_columnFreezeMainRect");E(this,"_freezeDownSubs");E(this,"_freezePointerEnterSubs");E(this,"_freezePointerLeaveSubs");E(this,"_scenePointerMoveSub");E(this,"_scenePointerUpSub");E(this,"_changeToRow",-1);E(this,"_changeToColumn",-1);E(this,"_changeToOffsetX",0);E(this,"_changeToOffsetY",0);E(this,"_activeViewport",null);E(this,"_freezeNormalHeaderColor","");E(this,"_freezeNormalMainColor","");E(this,"_freezeActiveColor","");E(this,"_freezeHoverColor","");E(this,"_lastFreeze");E(this,"interceptor",new a.InterceptorManager({FREEZE_PERMISSION_CHECK:Fn}));this._context=e,this._sheetSkeletonManagerService=t,this._commandService=o,this._selectionManagerService=i,this._scrollManagerService=s,this._themeService=l,this._sheetInterceptorService=c,this._injector=d,this._initialize()}dispose(){super.dispose()}_initialize(){this._skeletonListener(),this._commandExecutedListener(),this._themeChangeListener(),this._interceptorCommands(),this._bindViewportScroll(),this._zoomRefresh()}_createFreeze(e=0,t){var x;const o=t!=null?t:this._getFreeze();if(o==null)return null;const i=(x=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:x.skeleton,{startRow:s,startColumn:l}=o,c=this._getPositionByIndex(s,l);if(c==null||i==null)return null;const d=this._getSheetObject(),u=d.engine,h=(u==null?void 0:u.width)||0,g=(u==null?void 0:u.height)||0,S=d.scene,{startX:f,startY:p}=c,{rowTotalHeight:v,columnTotalWidth:C,rowHeaderWidthAndMarginLeft:b,columnHeaderHeightAndMarginTop:R}=i,T=h>C+b?h:C+R,M=g>v+R?g:v+R;this._changeToRow=s,this._changeToColumn=l,this._changeToOffsetX=f,this._changeToOffsetY=p;const y=Math.max(S.scaleX,S.scaleY);let P=ai/(y<1?1:y);if(e===0){(s===-1||s===0)&&(P=P*2);const A=P;this._rowFreezeHeaderRect=new w.Rect(gm,{fill:this._freezeNormalHeaderColor,width:b,height:P,left:0,top:p-A,zIndex:3});let k=this._freezeNormalHeaderColor;(s===-1||s===0)&&(k=this._freezeNormalMainColor),this._rowFreezeMainRect=new w.Rect(mm,{fill:k,width:T*2/y,height:P,left:b,top:p-A,zIndex:3}),S.addObjects([this._rowFreezeHeaderRect,this._rowFreezeMainRect],_t)}else{(l===-1||l===0)&&(P=P*2);const A=P;this._columnFreezeHeaderRect=new w.Rect(fm,{fill:this._freezeNormalHeaderColor,width:P,height:R,left:f-A,top:0,zIndex:3});let k=this._freezeNormalHeaderColor;(l===-1||l===0)&&(k=this._freezeNormalMainColor),this._columnFreezeMainRect=new w.Rect(Sm,{fill:k,width:P,height:M*2/y,left:f-A,top:R,zIndex:3}),S.addObjects([this._columnFreezeHeaderRect,this._columnFreezeMainRect],_t)}this._eventBinding(e)}_eventBinding(e=0){let t=this._rowFreezeHeaderRect,o=this._rowFreezeMainRect;e===1&&(t=this._columnFreezeHeaderRect,o=this._columnFreezeMainRect);const i=this._getSheetObject();if(i==null)return;const{scene:s}=i;if(this._freezePointerEnterSubs=new O.Subscription,this._freezePointerLeaveSubs=new O.Subscription,this._freezeDownSubs=new O.Subscription,o){const d=o.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(Fn)(!0,null))return!1;t==null||t.setProps({fill:this._freezeHoverColor,zIndex:4}),s.setCursor(w.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(d);const u=o.onPointerLeave$.subscribeEvent(()=>{t==null||t.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),s.resetCursor()});this._freezePointerLeaveSubs.add(u)}if(t){const d=t.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(Fn)(!0,null))return!1;t==null||t.setProps({fill:this._freezeHoverColor,zIndex:4}),s.setCursor(w.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(d);const u=t.onPointerLeave$.subscribeEvent(()=>{t==null||t.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),s.resetCursor()});this._freezePointerLeaveSubs.add(u)}const l=t==null?void 0:t.onPointerDown$.subscribeEvent(d=>{this._freezeDown(d,t,o,e)});l&&this._freezeDownSubs.add(l);const c=o==null?void 0:o.onPointerDown$.subscribeEvent(d=>{this._freezeDown(d,t,o,e)});c&&this._freezeDownSubs.add(c)}_getCurrentLastVisible(){var C,b,R,T,M,y,P;const e=this._getSheetObject();if(e==null)return;const t=(C=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:C.skeleton;if(t==null)return;const o=e.scene,i=Math.max(o.scaleX,o.scaleY),s=this._scrollManagerService.getCurrentScrollState(),l=(e.engine.height-t.columnHeaderHeight)/i,c=(e.engine.width-t.rowHeaderWidth)/i,d=(b=s==null?void 0:s.sheetViewStartRow)!=null?b:0,u=d===0?-((R=s==null?void 0:s.offsetY)!=null?R:0):t.rowHeightAccumulation[d-1]-((T=s==null?void 0:s.offsetY)!=null?T:0);let h=0,g=!1;for(let x=d,A=t.rowHeightAccumulation.length;x<A;x++)if(t.rowHeightAccumulation[x]-u>l){h=x,g=!0;break}g||(h=t.rowHeightAccumulation.length-1);const S=(M=s==null?void 0:s.sheetViewStartColumn)!=null?M:0,f=S===0?-((y=s==null?void 0:s.offsetX)!=null?y:0):t.columnWidthAccumulation[S-1]-((P=s==null?void 0:s.offsetX)!=null?P:0);let p=0,v=!1;for(let x=S,A=t.columnWidthAccumulation.length;x<A;x++)if(t.columnWidthAccumulation[x]-f>c){p=x,v=!0;break}return v||(p=t.columnWidthAccumulation.length-1),{lastRow:h,lastColumn:p}}_getActiveViewport(e){var o;const t=(o=this._getSheetObject())==null?void 0:o.scene.getViewports();return t&&t.find(i=>i.isHit(new w.Vector2(e.offsetX,e.offsetY)))||null}_freezeDown(e,t,o,i=0){var f;const s=(f=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:f.skeleton;if(s==null)return;const l=this._getSheetObject();if(l==null)return;if(!this.interceptor.fetchThroughInterceptors(Fn)(!0,null))return!1;const{scene:d}=l;d.setCursor(w.CURSOR_TYPE.GRABBING),d.disableObjectsEvent();const u=this._getCurrentLastVisible(),h=u===void 0?Number.POSITIVE_INFINITY:s.rowHeightAccumulation[u.lastRow],g=u===void 0?Number.POSITIVE_INFINITY:s.columnWidthAccumulation[u.lastColumn-1]+s.rowHeaderWidth;this._activeViewport=null;const S=this._getFreeze();S&&(this._changeToColumn=S.startColumn,this._changeToRow=S.startRow),this._scenePointerMoveSub=d.onPointerMove$.subscribeEvent(p=>{var P,x,A,k;const v=this._getActiveViewport(p),{startX:C,startY:b,row:R,column:T}=qe(p.offsetX,p.offsetY,d,s,v||void 0,!0);if(!this.interceptor.fetchThroughInterceptors(Fn)(!0,null))return!1;d.setCursor(w.CURSOR_TYPE.GRABBING);const y=ai/Math.max(d.scaleX,d.scaleY);i===0?((P=t.transformByState({top:Math.min(b,h)-y/2}))==null||P.setProps({fill:this._freezeActiveColor}),(x=o.transformByState({top:Math.min(b,h)-y/2}))==null||x.setProps({fill:this._freezeNormalHeaderColor}),this._changeToRow=u===void 0?R:Math.min(R,u.lastRow),this._changeToOffsetY=Math.min(b,h),this._activeViewport=v):((A=t.transformByState({left:Math.min(C,g)-y/2}))==null||A.setProps({fill:this._freezeActiveColor}),(k=o.transformByState({left:Math.min(C,g)-y/2}))==null||k.setProps({fill:this._freezeNormalHeaderColor}),this._changeToColumn=u===void 0?T:Math.min(T,u.lastColumn),this._changeToOffsetX=C,this._activeViewport=v)}),this._scenePointerUpSub=d.onPointerUp$.subscribeEvent(()=>{var N,D;d.resetCursor(),d.enableObjectsEvent(),this._clearObserverEvent();const{rowHeaderWidthAndMarginLeft:p,columnHeaderHeightAndMarginTop:v}=s;i===0&&(this._changeToRow===0||this._changeToRow===-1)||i===1&&(this._changeToColumn===0||this._changeToColumn===-1)?(t.setProps({fill:this._freezeNormalHeaderColor}),o.setProps({fill:this._freezeNormalMainColor})):(t==null||t.setProps({fill:this._freezeNormalHeaderColor}),o==null||o.setProps({fill:this._freezeNormalHeaderColor}));const C=ai/Math.max(d.scaleX,d.scaleY);i===0?(this._changeToRow===0||this._changeToRow===-1)&&(t.transformByState({top:v-C}),o.transformByState({top:v-C})):(this._changeToColumn===0||this._changeToColumn===-1)&&(t.transformByState({left:p-C}),o.transformByState({left:p-C}));const b=this._scrollManagerService.getCurrentScrollState()||{sheetViewStartRow:0,sheetViewStartColumn:0},{sheetViewStartRow:R,sheetViewStartColumn:T}=b;if(T==null||R==null)return;const M=this._context.unit,y=M.getActiveSheet();if(!y)return;const P=(N=y.getConfig())==null?void 0:N.freeze;let x=(P==null?void 0:P.xSplit)||0,A=(P==null?void 0:P.ySplit)||0;const k=(D=this._activeViewport)==null?void 0:D.viewportKey;i===0&&(!k||k===w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||k===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||k===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||k===w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP?A=this._changeToRow-(P.startRow-P.ySplit):A=this._changeToRow-R,A=A<0?0:A),i===1&&(!k||k===w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||k===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||k===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||k===w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT?x=this._changeToColumn-(P.startColumn-P.xSplit):x=this._changeToColumn-T,x=x<0?0:x),this._commandService.executeCommand(m.SetFrozenCommand.id,{startRow:A===0?-1:this._changeToRow,startColumn:x===0?-1:this._changeToColumn,ySplit:A,xSplit:x,unitId:M.getUnitId(),subUnitId:y.getSheetId()})})}_getViewports(){const e=this._getSheetObject();if(e==null)return;const{scene:t}=e,o=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT),i=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT),s=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP),l=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM),c=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP),d=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),u=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP),h=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT),g=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(!(o==null||i==null||s==null||l==null||c==null||d==null||u==null||h==null||g==null))return{viewMain:d,viewMainLeftTop:u,viewMainLeft:h,viewMainTop:g,viewColumnLeft:o,viewColumnRight:i,viewRowTop:s,viewRowBottom:l,viewLeftTop:c}}_bindViewportScroll(){const e=this._getViewports();if(!e)return;const{viewRowBottom:t,viewColumnRight:o,viewMainLeft:i,viewMainTop:s}=e;this.disposeWithMe(this._scrollManagerService.validViewportScrollInfo$.subscribe(l=>{if(!l)return;const{scrollX:c,scrollY:d,viewportScrollX:u,viewportScrollY:h}=l;t.isActive&&t.updateScrollVal({scrollY:d,viewportScrollY:h}),o.isActive&&o.updateScrollVal({scrollX:c,viewportScrollX:u}),i.isActive&&i.updateScrollVal({scrollY:d,viewportScrollY:h}),s.isActive&&s.updateScrollVal({scrollX:c,viewportScrollX:u})}))}_updateViewport(e=-1,t=-1,o=0,i=0,s=3){var x;const l=(x=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:x.skeleton;if(l==null)return;const{rowHeaderWidthAndMarginLeft:c,columnHeaderHeightAndMarginTop:d}=l,u=this._getViewports();if(!u)return;const{viewMain:h,viewMainLeftTop:g,viewMainLeft:S,viewMainTop:f,viewColumnLeft:p,viewColumnRight:v,viewRowTop:C,viewRowBottom:b,viewLeftTop:R}=u;v.resizeWhenFreezeChange({left:c,top:0,height:d,right:0}),b.resizeWhenFreezeChange({left:0,top:d,bottom:0,width:c}),R.resizeWhenFreezeChange({left:0,top:0,width:c,height:d});let T=!0,M=!0;g.enable(),(e===-1||e===0)&&(T=!1),(t===-1||t===0)&&(M=!1);const y=l.getNoMergeCellWithCoordByIndex(e-o,t-i,!1),P=l.getNoMergeCellWithCoordByIndex(e,t,!1);if(g.disable(),f.disable(),S.disable(),C.disable(),p.disable(),g.resetPadding(),f.resetPadding(),S.resetPadding(),C.resetPadding(),p.resetPadding(),T===!1&&M===!1)h.resizeWhenFreezeChange({left:c,top:d,bottom:0,right:0}),h.resetPadding(),S.resizeWhenFreezeChange({left:c,top:d,bottom:0,width:0}),f.resizeWhenFreezeChange({left:c,top:d,height:0,right:0}),g.resizeWhenFreezeChange({left:c,top:d,width:0,height:0}),C.resizeWhenFreezeChange({left:0,top:d,width:c,height:0}),p.resizeWhenFreezeChange({left:0,top:0,height:d,width:0});else if(T===!0&&M===!1){const A=P.startY-y.startY;h.resizeWhenFreezeChange({left:c,top:d+A,bottom:0,right:0}),h.setPadding({startY:y.startY,endY:P.startY,startX:0,endX:0}),s&2&&this._commandService.executeCommand(ze.id,{sheetViewStartRow:0,offsetY:0}),f.resizeWhenFreezeChange({left:c,top:d,height:A,right:0}),f.updateScrollVal({viewportScrollY:y.startY,rawScrollX:h.scrollX,viewportScrollX:h.viewportScrollX}),C.resizeWhenFreezeChange({left:0,top:d,width:c,height:A}),C.updateScrollVal({viewportScrollY:y.startY}),b.resizeWhenFreezeChange({left:0,top:d+A,bottom:0,width:c}),f.enable(),C.enable()}else if(T===!1&&M===!0){const A=P.startX-y.startX;h.resizeWhenFreezeChange({left:c+A,top:d,bottom:0,right:0}),h.setPadding({startX:y.startX,endX:P.startX,startY:0,endY:0}),s&1&&this._commandService.executeCommand(ze.id,{sheetViewStartColumn:0,offsetX:0}),S.resizeWhenFreezeChange({left:c,top:d,width:A,bottom:0,right:0}),S.updateScrollVal({viewportScrollX:y.startX,rawScrollY:h.scrollY,viewportScrollY:h.viewportScrollY}),p.resizeWhenFreezeChange({left:c,top:0,width:A,height:d}),p.updateScrollVal({viewportScrollX:y.startX}),v.resizeWhenFreezeChange({left:c+A,top:0,height:d,right:0}),S.enable(),p.enable()}else{const A=P.startX-y.startX,k=P.startY-y.startY;h.resizeWhenFreezeChange({left:c+A,top:d+k,bottom:0,right:0}),h.setPadding({startY:y.startY,endY:P.startY,startX:y.startX,endX:P.startX}),s&&this._commandService.executeCommand(ze.id,{...s&1?{sheetViewStartColumn:0,offsetX:0}:null,...s&2?{sheetViewStartRow:0,offsetY:0}:null}),S.resizeWhenFreezeChange({left:c,top:d+k,width:A,bottom:0}),S.updateScrollVal({viewportScrollX:y.startX,rawScrollY:h.scrollY,viewportScrollY:h.viewportScrollY}),f.resizeWhenFreezeChange({left:c+A,top:d,height:k,right:0}),f.updateScrollVal({viewportScrollY:y.startY,rawScrollX:h.scrollX,viewportScrollX:h.viewportScrollX}),g.resizeWhenFreezeChange({left:c,top:d,width:A,height:k}),g.updateScrollVal({viewportScrollX:y.startX,viewportScrollY:y.startY}),C.resizeWhenFreezeChange({left:0,top:d,width:c,height:k}),C.updateScrollVal({viewportScrollY:y.startY}),b.resizeWhenFreezeChange({left:0,top:d+k,bottom:0,width:c}),p.resizeWhenFreezeChange({left:c,top:0,width:A,height:d}),p.updateScrollVal({viewportScrollX:y.startX}),v.resizeWhenFreezeChange({left:c+A,top:0,height:d,right:0}),g.enable(),f.enable(),S.enable(),C.enable(),p.enable()}}_skeletonListener(){this.disposeWithMe(a.toDisposable(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(e=>{[m.SetWorksheetActiveOperation.id,m.InsertRangeMoveDownCommand.id,m.InsertRangeMoveRightCommand.id].includes((e==null?void 0:e.commandId)||"")&&this._refreshCurrent()})))}_refreshCurrent(){const t=this._context.unit.getActiveSheet();if(!t)return;const o=t.getConfig().freeze,{startRow:i=-1,startColumn:s=-1,ySplit:l=0,xSplit:c=0}=o;this._refreshFreeze(i,s,l,c,0)}_themeChangeListener(){this._themeChange(this._themeService.getCurrentTheme()),this.disposeWithMe(this._themeService.currentTheme$.subscribe(e=>{this._clearFreeze(),this._themeChange(e),this._refreshCurrent()}))}_themeChange(e){this._freezeNormalHeaderColor=e.grey400,this._freezeNormalMainColor=new a.ColorKit(e.grey400).setAlpha(pm).toRgbString(),this._freezeActiveColor=e.primaryColor,this._freezeHoverColor=e.grey500}_interceptorCommands(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{const t={redos:[],undos:[]},o=this._getFreeze();if(!o)return t;const i=s=>{const l=this._context.unit,c=l.getUnitId(),d=l.getActiveSheet();if(!d)return t;const u=d.getSheetId();this._refreshFreeze(s.startRow,s.startColumn,s.ySplit,s.xSplit,0);const h={...s,unitId:c,subUnitId:u,resetScroll:!1},g=m.SetFrozenMutationFactory(this._injector,h);return{undos:[{id:m.SetFrozenMutation.id,params:g}],redos:[{id:m.SetFrozenMutation.id,params:h}]}};if(e.id===m.InsertRowCommand.id){const s=e.params,{range:l,direction:c}=s,d=l.endRow-l.startRow+1;if(l.startRow+1<o.startRow||l.startRow+1===o.startRow&&c===a.Direction.UP){const u={...o,startRow:Math.max(1,o.startRow+d),ySplit:Math.max(1,o.ySplit+d)};return i(u)}}if(e.id===m.InsertColCommand.id){const s=e.params,{range:l,direction:c}=s,d=l.endColumn-l.startColumn+1;if(l.startColumn+1<o.startColumn||l.startColumn+1===o.startColumn&&c===a.Direction.LEFT){const u={...o,startColumn:Math.max(1,o.startColumn+d),xSplit:Math.max(1,o.xSplit+d)};return i(u)}}if(e.id===m.MoveColsCommand.id){const s=this._selectionManagerService.getCurrentSelections(),{fromRange:{startColumn:l},toRange:{startColumn:c}}=e.params,d=s==null?void 0:s.filter(C=>C.range.rangeType===a.RANGE_TYPE.COLUMN&&C.range.startColumn<=l&&l<=C.range.endColumn);if(!(d!=null&&d.length))return t;const u=d[0].range,h={...u,startColumn:c,endColumn:c+u.endColumn-u.startColumn};if(!o||o.startColumn<=0||u.startColumn>=o.startColumn&&h.startColumn>=o.startColumn||u.startColumn===h.startColumn||u.endColumn<o.startColumn&&h.startColumn<o.startColumn)return t;const g=u.endColumn-u.startColumn+1,S=Math.max(Math.min(o.startColumn,u.endColumn+1)-u.startColumn,0);let f,p;h.startColumn>=o.startColumn?(f=Math.max(o.startColumn-S,1),p=Math.max(o.xSplit-S,1)):(f=o.startColumn+g-S,p=o.xSplit+g-S);const v={...o,startColumn:f,xSplit:p};return i(v)}if(e.id===m.MoveRowsCommand.id){const s=this._selectionManagerService.getCurrentSelections(),{fromRange:{startRow:l},toRange:{startRow:c}}=e.params,d=s==null?void 0:s.filter(C=>C.range.rangeType===a.RANGE_TYPE.ROW&&C.range.startRow<=l&&l<=C.range.endRow);if(!(d!=null&&d.length))return t;const u=d[0].range,h={...u,startRow:c,endRow:c+u.endRow-u.startRow};if(!o||o.startRow<=0||u.startRow>=o.startRow&&h.startRow>=o.startRow||u.startRow===h.startRow||u.endRow<o.startRow&&h.startRow<o.startRow)return t;const g=u.endRow-u.startRow+1,S=Math.max(Math.min(o.startRow,u.endRow+1)-u.startRow,0);let f,p;h.startRow>=o.startRow?(f=Math.max(o.startRow-S,1),p=Math.max(o.ySplit-S,1)):(f=o.startRow+g-S,p=o.ySplit+g-S);const v={...o,startRow:f,ySplit:p};return i(v)}if(e.id===m.RemoveColCommand.id||e.id===m.RemoveRowCommand.id){const s=e.params,l=s.range;if(l.rangeType===a.RANGE_TYPE.COLUMN&&l.startColumn<o.startColumn){const c=Math.min(o.startColumn,l.endColumn+1)-l.startColumn,d={...o,startColumn:Math.max(1,o.startColumn-c),xSplit:Math.max(1,o.xSplit-c)};return i(d)}if(s.range.rangeType===a.RANGE_TYPE.ROW&&l.startRow<o.startRow){const c=Math.min(o.startRow,l.endRow+1)-l.startRow,d={...o,startRow:Math.max(1,o.startRow-c),ySplit:Math.max(1,o.ySplit-c)};return i(d)}}return t}}))}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{switch(e.id){case m.SetFrozenMutation.id:case Le.id:{const t=this._lastFreeze,o=this._context.unit,i=o.getActiveSheet(),s=e.params,{unitId:l,subUnitId:c}=s;if(!(l===o.getUnitId()&&c===(i==null?void 0:i.getSheetId())))return;const d=i.getConfig().freeze;if(this._lastFreeze=d,d==null)return;let u=0;const{startRow:h=-1,startColumn:g=-1,ySplit:S=0,xSplit:f=0}=d;(!t||t.startRow!==h||t.ySplit!==S)&&(u|=2),(!t||t.startColumn!==g||t.xSplit!==f)&&(u|=1),s.resetScroll===!1&&(u=0),this._refreshFreeze(h,g,S,f,u)}break;case m.SetWorksheetRowHeightMutation.id:{const t=this._getFreeze(),o=t&&e.params.ranges.some(i=>i.startRow<t.startRow);e.params&&o&&this._refreshCurrent()}break;case m.SetWorksheetColWidthMutation.id:{const t=this._getFreeze();e.params&&t&&e.params.ranges.some(o=>o.startColumn<t.startColumn)&&this._refreshCurrent()}break;case m.SetWorksheetRowAutoHeightMutation.id:{const t=e.params,o=this._getFreeze();if(o&&o.startRow>-1&&t.rowsAutoHeightInfo.some(i=>i.row<o.startRow)){const i=this._sheetSkeletonManagerService.currentSkeleton$.subscribe(()=>{this._refreshCurrent(),setTimeout(()=>{i.unsubscribe()})})}}break;case m.SetColHiddenMutation.id:case m.SetColVisibleMutation.id:{const t=e.params,o=this._getFreeze(),i=t.ranges;o&&o.startColumn>-1&&i.some(s=>s.startColumn<o.startColumn)&&this._refreshCurrent()}break;case m.SetRowHiddenMutation.id:case m.SetRowVisibleMutation.id:{const t=e.params,o=this._getFreeze(),i=t.ranges;o&&o.startRow>-1&&i.some(s=>s.startRow<o.startRow)&&this._refreshCurrent()}break;case xr.id:case Ar.id:this._refreshCurrent()}}))}_zoomRefresh(){const e=this._getSheetObject();if(e==null)return;const{scene:t}=e;this.disposeWithMe(t.onTransformChange$.subscribeEvent(o=>{[w.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale,w.TRANSFORM_CHANGE_OBSERVABLE_TYPE.all].includes(o.type)&&this._refreshCurrent()}))}_clearObserverEvent(){var t,o;this._getSheetObject()!=null&&((t=this._scenePointerMoveSub)==null||t.unsubscribe(),(o=this._scenePointerUpSub)==null||o.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_clearFreeze(){var t,o,i,s,l,c;(t=this._rowFreezeHeaderRect)==null||t.dispose(),(o=this._rowFreezeMainRect)==null||o.dispose(),(i=this._columnFreezeHeaderRect)==null||i.dispose(),(s=this._columnFreezeMainRect)==null||s.dispose(),this._getSheetObject()!=null&&([this._freezeDownSubs,this._freezePointerEnterSubs,this._freezePointerLeaveSubs].forEach(d=>{d==null||d.unsubscribe()}),this._freezeDownSubs=null,this._freezePointerEnterSubs=null,this._freezePointerLeaveSubs=null,(l=this._scenePointerMoveSub)==null||l.unsubscribe(),(c=this._scenePointerUpSub)==null||c.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_getPositionByIndex(e,t){var d;if(this._getSheetObject()==null)return;const i=(d=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:d.skeleton,s=i==null?void 0:i.getNoMergeCellWithCoordByIndex(e,t);if(i==null)return;if(s!=null&&(!isNaN(s.endX)||!isNaN(s.endY)))return s;const{rowHeaderWidthAndMarginLeft:l,columnHeaderHeightAndMarginTop:c}=i;return{startX:l,endX:l,startY:c,endY:c}}_getFreeze(){var t;const e=(t=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:t.skeleton.getWorksheetConfig();if(e!=null)return e.freeze}_getSheetObject(){return Ge(this._context.unit,this._context)}_refreshFreeze(e,t,o,i,s){var c;const l={startRow:e,startColumn:t,ySplit:o,xSplit:i};this._clearFreeze(),this._createFreeze(0,l),this._createFreeze(1,l),this._updateViewport(e,t,o,i,s),(c=this._getSheetObject())==null||c.spreadsheet.makeForceDirty()}};exports.HeaderFreezeRenderController=hm([Ot(1,a.Inject(exports.SheetSkeletonManagerService)),Ot(2,a.ICommandService),Ot(3,a.Inject(m.SheetsSelectionsService)),Ot(4,a.Inject(exports.SheetScrollManagerService)),Ot(5,a.Inject(a.ThemeService)),Ot(6,a.Inject(m.SheetInterceptorService)),Ot(7,a.Inject(a.Injector))],exports.HeaderFreezeRenderController);function vm(n){const r=n.get(m.SheetsSelectionsService),e=n.get(m.RangeProtectionRuleModel),t=n.get(a.IUniverInstanceService),o=n.get(m.MergeCellController),i=t.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET);return O.combineLatest([r.selectionMoveEnd$,i.pipe(O.map(s=>{var l;return(l=s==null?void 0:s.getUnitId())!=null?l:""})),i.pipe(O.switchMap(s=>{var l;return(l=s==null?void 0:s.activeSheet$)!=null?l:O.of(null)}))]).pipe(O.map(([s,l,c])=>{if(!c||!s||s.length===0)return!1;const d=c.getSheetId(),u=s.map(S=>S.range);if(o.interceptor.fetchThroughInterceptors(m.MERGE_CELL_INTERCEPTOR_CHECK)(!1,u))return!0;const g=e.getSubunitRuleList(l,d).map(S=>S.ranges).flat();if(s.length<2){const S=s[0].range;return g.some(p=>a.Rectangle.intersects(p,S)&&!a.Rectangle.contains(p,S))}for(let S=0;S<s.length;S++)for(let f=S+1;f<s.length;f++)if(a.Rectangle.intersects(s[S].range,s[f].range))return!0;return!1}))}function xl(n,r){return!!no(n,r,a.RANGE_TYPE.ROW)}function Al(n,r){return!!no(n,r,a.RANGE_TYPE.COLUMN)}function no(n,r,e){return n.find(o=>{const i=o.range,{startRow:s,endRow:l,startColumn:c,endColumn:d,rangeType:u}=i;return u===a.RANGE_TYPE.ALL||u===a.RANGE_TYPE.NORMAL?!1:u===e&&(e===a.RANGE_TYPE.COLUMN&&c<=r&&r<=d||e===a.RANGE_TYPE.ROW&&s<=r&&r<=l)})}var Cm=Object.getOwnPropertyDescriptor,Im=(n,r,e,t)=>{for(var o=t>1?void 0:t?Cm(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},li=(n,r)=>(e,t)=>r(e,t,n);const _m="__SpreadsheetHeaderMoveControllerBackground__",bm="__SpreadsheetHeaderMoveControllerShapeLine__",Rm="rgba(0, 0, 0, 0.1)",Em="rgb(119, 119, 119)",Tm=4,ci=a.createInterceptorKey("headerMovePermissionCheck");exports.HeaderMoveRenderController=class extends a.Disposable{constructor(e,t,o,i){super();E(this,"_startOffsetX",Number.NEGATIVE_INFINITY);E(this,"_startOffsetY",Number.NEGATIVE_INFINITY);E(this,"_moveHelperBackgroundShape");E(this,"_moveHelperLineShape");E(this,"_headerPointerDownSubs");E(this,"_headerPointerMoveSubs");E(this,"_headerPointerLeaveSubs");E(this,"_dragHeaderMoveSub");E(this,"_scenePointerUpSub");E(this,"_scrollTimer");E(this,"_changeFromColumn",-1);E(this,"_changeFromRow",-1);E(this,"_changeToColumn",-1);E(this,"_changeToRow",-1);E(this,"interceptor",new a.InterceptorManager({HEADER_MOVE_PERMISSION_CHECK:ci}));E(this,"_workbookSelections");this._context=e,this._sheetSkeletonManagerService=o,this._commandService=i,this._workbookSelections=t.getWorkbookSelections(this._context.unitId),this._init()}dispose(){var e,t,o,i,s,l,c,d;(e=this._moveHelperBackgroundShape)==null||e.dispose(),(t=this._moveHelperLineShape)==null||t.dispose(),(o=this._headerPointerMoveSubs)==null||o.unsubscribe(),(i=this._headerPointerLeaveSubs)==null||i.unsubscribe(),(s=this._headerPointerDownSubs)==null||s.unsubscribe(),this._headerPointerMoveSubs=null,this._headerPointerLeaveSubs=null,this._headerPointerDownSubs=null,(l=this._dragHeaderMoveSub)==null||l.unsubscribe(),(c=this._scenePointerUpSub)==null||c.unsubscribe(),this._dragHeaderMoveSub=null,this._scenePointerUpSub=null,(d=this._scrollTimer)==null||d.dispose()}_init(){this._initialRowOrColumn(a.RANGE_TYPE.ROW),this._initialRowOrColumn(a.RANGE_TYPE.COLUMN)}_initialRowOrColumn(e=a.RANGE_TYPE.ROW){const t=this._context.components.get(me.COLUMN),o=this._context.components.get(me.ROW),i=this._context.scene,s=e===a.RANGE_TYPE.ROW?o:t,l=u=>{var b,R;const h=(b=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:b.skeleton;if(h==null)return;const g=(R=this._workbookSelections.getCurrentLastSelection())==null?void 0:R.range;if(!g||!this.interceptor.fetchThroughInterceptors(ci)(!1,g))return;const f=this._workbookSelections.getCurrentSelections(),{row:p,column:v}=qe(u.offsetX,u.offsetY,i,h);if(!no(f,e===a.RANGE_TYPE.ROW?p:v,e)){i.resetCursor();return}i.setCursor(w.CURSOR_TYPE.GRAB)},c=()=>{var u,h;(u=this._moveHelperBackgroundShape)==null||u.hide(),(h=this._moveHelperLineShape)==null||h.hide(),i.resetCursor()},d=(u,h)=>{var W,H;if(h.isStopPropagation)return;const g=(W=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:W.skeleton;if(g==null)return;const S=(H=this._workbookSelections.getCurrentLastSelection())==null?void 0:H.range;if(!S||!this.interceptor.fetchThroughInterceptors(ci)(!1,S))return;const{offsetX:p,offsetY:v}=u,C=i.getCoordRelativeToViewport(w.Vector2.FromArray([p,v])),{x:b,y:R}=C;this._startOffsetX=b,this._startOffsetY=R;const{row:T,column:M}=qe(u.offsetX,u.offsetY,i,g);let y;e===a.RANGE_TYPE.ROW?(this._changeFromRow=T,y=w.ScrollTimerType.Y):(this._changeFromColumn=M,y=w.ScrollTimerType.X);const P=this._workbookSelections.getCurrentSelections(),x=no(P,e===a.RANGE_TYPE.ROW?T:M,e);if(!x)return;const A=i.getScrollXYInfoByViewport(w.Vector2.FromArray([this._startOffsetX,this._startOffsetY]));this._newBackgroundAndLine(),i.setCursor(w.CURSOR_TYPE.GRABBING),i.disableObjectsEvent();let k=!1,N;const D=()=>{if(k)return;N=w.ScrollTimer.create(i,y),this._scrollTimer=N;const U=i.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);N.startScroll(b,R,U),k=!0};this._dragHeaderMoveSub=i.onPointerMove$.subscribeEvent(U=>{D();const{offsetX:B,offsetY:F}=U,{x:L,y:j}=i.getCoordRelativeToViewport(w.Vector2.FromArray([B,F]));this._rowColumnMoving(L,j,x,A,e),N.scrolling(L,j,()=>{this._rowColumnMoving(L,j,x,A,e)})}),this._scenePointerUpSub=i.onPointerUp$.subscribeEvent(()=>{var B,F,L;this._disposeBackgroundAndLine(),i.resetCursor(),i.enableObjectsEvent(),this._clearObserverEvent(),(B=this._scrollTimer)==null||B.dispose();const U=this._workbookSelections.getCurrentSelections();if(e===a.RANGE_TYPE.ROW){if(this._changeFromRow!==this._changeToRow&&this._changeToRow!==-1){const z=(F=((U==null?void 0:U.filter(q=>q.range.rangeType===a.RANGE_TYPE.ROW&&q.range.startRow<=this._changeFromRow&&this._changeFromRow<=q.range.endRow))||[])[0])==null?void 0:F.range;z&&this._commandService.executeCommand(m.MoveRowsCommand.id,{fromRange:z,toRange:{...z,startRow:this._changeToRow,endRow:this._changeToRow+z.endRow-z.startRow}})}this._changeToRow=this._changeFromRow=-1}else{if(this._changeFromColumn!==this._changeToColumn&&this._changeToColumn!==-1){const z=(L=((U==null?void 0:U.filter(q=>q.range.rangeType===a.RANGE_TYPE.COLUMN&&q.range.startColumn<=this._changeFromColumn&&this._changeFromColumn<=q.range.endColumn))||[])[0])==null?void 0:L.range;z&&this._commandService.executeCommand(m.MoveColsCommand.id,{fromRange:z,toRange:{...z,startColumn:this._changeToColumn,endColumn:this._changeToColumn+z.endColumn-z.startColumn}})}this._changeToColumn=this._changeFromColumn=-1}})};this._headerPointerMoveSubs=new O.Subscription,this._headerPointerMoveSubs.add(s.onPointerMove$.subscribeEvent(l)),this._headerPointerLeaveSubs=new O.Subscription,this._headerPointerLeaveSubs.add(s==null?void 0:s.onPointerLeave$.subscribeEvent(c)),this._headerPointerDownSubs=new O.Subscription,this._headerPointerDownSubs.add(s==null?void 0:s.onPointerDown$.subscribeEvent(d))}_rowColumnMoving(e,t,o,i,s){var j,z,q,te,Q,re,se;const l=this._context.scene,c=(j=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:j.skeleton;if(c==null)return;const{rowHeaderWidth:d,columnHeaderHeight:u,rowTotalHeight:h,columnTotalWidth:g}=c,S=l.getViewportScrollXY(l.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX:f,scaleY:p}=l.getAncestorScale(),v=c.getCellIndexByOffset(e,t,f,p,S),{row:C,column:b}=v,R=c.getNoMergeCellWithCoordByIndex(C,b),{startX:T,startY:M,endX:y,endY:P}=R,x=this._sheetSkeletonManagerService.attachRangeWithCoord(o.range);if(x==null)return;const A=Math.max(f,f),{startX:k,endX:N,startY:D,endY:W,startRow:H,startColumn:U,endRow:B,endColumn:F}=x;s===a.RANGE_TYPE.ROW?(z=this._moveHelperBackgroundShape)==null||z.transformByState({height:W-D,width:g+d,left:0,top:D+(t-this._startOffsetY)/A+S.y-i.y}):(q=this._moveHelperBackgroundShape)==null||q.transformByState({height:h+u,width:N-k,left:k+(e-this._startOffsetX)/A+S.x-i.x,top:0}),(te=this._moveHelperBackgroundShape)==null||te.show();const L=Tm/A;if(s===a.RANGE_TYPE.ROW){let X=0;if(C<=H)X=M-L/2,this._changeToRow=C;else if(C>B)X=P-L/2,this._changeToRow=C+1;else return;(Q=this._moveHelperLineShape)==null||Q.transformByState({height:L,width:g,left:d,top:X})}else{let X=0;if(b<=U)X=T-L/2,this._changeToColumn=b;else if(b>F)X=y-L/2,this._changeToColumn=b+1;else return;(re=this._moveHelperLineShape)==null||re.transformByState({height:h,width:L,left:X,top:u})}(se=this._moveHelperLineShape)==null||se.show()}_clearObserverEvent(){var e,t;(e=this._dragHeaderMoveSub)==null||e.unsubscribe(),(t=this._scenePointerUpSub)==null||t.unsubscribe(),this._dragHeaderMoveSub=null,this._scenePointerUpSub=null}_newBackgroundAndLine(){const e=this._context.scene;this._moveHelperBackgroundShape=new w.Rect(_m,{fill:Rm,evented:!1,zIndex:100}),this._moveHelperLineShape=new w.Rect(bm,{fill:Em,evented:!1,zIndex:100}),e.addObjects([this._moveHelperBackgroundShape,this._moveHelperLineShape],_t)}_disposeBackgroundAndLine(){var e,t;(e=this._moveHelperBackgroundShape)==null||e.dispose(),(t=this._moveHelperLineShape)==null||t.dispose()}};exports.HeaderMoveRenderController=Im([li(1,a.Inject(m.SheetsSelectionsService)),li(2,a.Inject(exports.SheetSkeletonManagerService)),li(3,a.ICommandService)],exports.HeaderMoveRenderController);var Gi=(n=>(n[n.VERTICAL=0]="VERTICAL",n[n.HORIZONTAL=1]="HORIZONTAL",n))(Gi||{});const wm="rgba(120, 120, 120, 0.01)",di="rgb(68, 71, 70)",Gn=12,ym=44,Zi=4;class Ra extends w.Shape{constructor(e,t){super(e,t);E(this,"_size",Gn);E(this,"_color",di);E(this,"_mode",0);this.setShapeProps(t)}get size(){return this._size}get mode(){return this._mode}get color(){return this._color}_draw(e){const t=this.getScene();if(!t)return;const{scaleX:o,scaleY:i}=t.getAncestorScale(),s=Math.max(o,i),l=Gn/s,c=Zi/s;let{width:d,height:u}=this,h=0,g=0;this.mode===0?(d=c,h=l-c):(u=c,g=l-c),w.Rect.drawWith(e,{width:this.width,height:this.height,left:0,top:0,fill:wm}),w.Rect.drawWith(e,{width:d,height:u,fill:di,radius:c}),e.save(),e.transform(1,0,0,1,h,g),w.Rect.drawWith(e,{width:d,height:u,fill:di,radius:c}),e.restore()}setShapeProps(e){return e!=null&&e.size&&(this._size=e.size),e!=null&&e.mode&&(this._mode=e.mode),e!=null&&e.color&&(this._color=e.color),this.mode===0?this.transformByState({width:Gn,height:this.size}):this.transformByState({width:this.size,height:Gn}),this}}var Mm=Object.getOwnPropertyDescriptor,Pm=(n,r,e,t)=>{for(var o=t>1?void 0:t?Mm(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},ui=(n,r)=>(e,t)=>r(e,t,n);const Om="__SpreadsheetHeaderResizeControllerShapeRow__",xm="__SpreadsheetHeaderResizeControllerShapeColumn__",Ea="__SpreadsheetHeaderResizeControllerShapeHelper__",Ta="rgb(199, 199, 199)",Am=2,hi=a.createInterceptorKey("headerResizePermissionCheck");exports.HeaderResizeRenderController=class extends a.Disposable{constructor(e,t,o,i){super();E(this,"_currentRow",0);E(this,"_currentColumn",0);E(this,"_rowResizeRect");E(this,"_columnResizeRect");E(this,"_headerPointerSubs");E(this,"_scenePointerMoveSub");E(this,"_scenePointerUpSub");E(this,"_resizeHelperShape");E(this,"_startOffsetX",Number.POSITIVE_INFINITY);E(this,"_startOffsetY",Number.POSITIVE_INFINITY);E(this,"interceptor",new a.InterceptorManager({HEADER_RESIZE_PERMISSION_CHECK:hi}));this._context=e,this._sheetSkeletonManagerService=t,this._selectionManagerService=o,this._commandService=i,this._init()}dispose(){var e,t,o;(e=this._rowResizeRect)==null||e.dispose(),this._rowResizeRect=null,(t=this._columnResizeRect)==null||t.dispose(),this._columnResizeRect=null,(o=this._headerPointerSubs)==null||o.unsubscribe(),this._headerPointerSubs=null}_init(){const e=this._context.scene;this._rowResizeRect=new Ra(Om,{visible:!1,mode:Gi.HORIZONTAL,zIndex:100}),this._columnResizeRect=new Ra(xm,{visible:!1,mode:Gi.VERTICAL,zIndex:100}),e.addObjects([this._rowResizeRect,this._columnResizeRect],_t),this._initialHover(0),this._initialHover(1),this._initialHoverResize(0),this._initialHoverResize(1)}_initialHover(e=0){const t=this._context.components.get(me.COLUMN),o=this._context.components.get(me.ROW),i=this._context.scene,s=e===0?o:t,l=(d,u)=>{var h,g;(h=this._rowResizeRect)==null||h.hide(),(g=this._columnResizeRect)==null||g.hide()},c=(d,u)=>{var A;const h=(A=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:A.skeleton;if(h==null||this._rowResizeRect==null||this._columnResizeRect==null)return;const{rowHeaderWidth:g,columnHeaderHeight:S}=h,{startX:f,startY:p,endX:v,endY:C,row:b,column:R}=qe(d.offsetX,d.offsetY,i,h),T=qn(d.offsetX,d.offsetY,i),{scaleX:M,scaleY:y}=i.getAncestorScale(),P=Math.max(M,y),x=Gn/P;if(e===0){let k=p-x/2;if(T.y<=p+x/2&&T.y>=p)this._currentRow=b-1;else if(T.y>=C-x/2&&T.y<=C)this._currentRow=b,k=C-x/2;else{this._rowResizeRect.hide();return}if(this._currentRow===-1)return;if(!this.interceptor.fetchThroughInterceptors(hi)(null,{row:this._currentRow}))return!1;const D=Math.min(ym,g/3);this._rowResizeRect.transformByState({left:g/2-D/2,top:k}),this._rowResizeRect.setShapeProps({size:D}),this._rowResizeRect.show()}else{let k=f-x/2;if(T.x<=f+x/2&&T.x>=f)this._currentColumn=R-1;else if(T.x>=v-x/2&&T.x<=v)this._currentColumn=R,k=v-x/2;else{this._columnResizeRect.hide();return}if(this._currentColumn===-1)return;if(!this.interceptor.fetchThroughInterceptors(hi)(null,{col:this._currentColumn}))return!1;const D=S*.7;this._columnResizeRect.transformByState({left:k,top:S/2-D/2}),this._columnResizeRect.setShapeProps({size:D}),this._columnResizeRect.show()}};this._headerPointerSubs=new O.Subscription,this._headerPointerSubs.add(s==null?void 0:s.onPointerMove$.subscribeEvent(c)),this._headerPointerSubs.add(s==null?void 0:s.onPointerLeave$.subscribeEvent(l))}_initialHoverResize(e=0){const t=this._context.scene,o=e===0?this._rowResizeRect:this._columnResizeRect;o!=null&&(this.disposeWithMe(o.onPointerEnter$.subscribeEvent(()=>{o!=null&&(o.show(),t.setCursor(e===0?w.CURSOR_TYPE.ROW_RESIZE:w.CURSOR_TYPE.COLUMN_RESIZE))})),this.disposeWithMe(o.onPointerLeave$.subscribeEvent(()=>{o!=null&&(o.hide(),t.resetCursor())})),this.disposeWithMe(o.onPointerDown$.subscribeEvent(i=>{var F,L,j,z,q,te,Q;const s=(F=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:F.skeleton;if(s==null)return;const l=this._context.scene,c=l.getEngine(),d=(c==null?void 0:c.height)||0,u=(c==null?void 0:c.width)||0,h=l.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),g=(((j=(L=h==null?void 0:h.getScrollBar())==null?void 0:L.horizonScrollTrack)==null?void 0:j.height)||0)+10,S=(((q=(z=h==null?void 0:h.getScrollBar())==null?void 0:z.verticalScrollTrack)==null?void 0:q.width)||0)+10,f=qn(i.offsetX,i.offsetY,l),{scaleX:p,scaleY:v}=l.getAncestorScale();this._startOffsetX=f.x,this._startOffsetY=f.y;const C=s.getOffsetByColumn(this._currentColumn),b=s.getOffsetByRow(this._currentRow),R=s.getNoMergeCellWithCoordByIndex(this._currentRow,this._currentColumn);let T=!1,M=0,y=0;const{columnTotalWidth:P,rowHeaderWidth:x,rowTotalHeight:A,columnHeaderHeight:k}=s,N=u>P+x?u:P+x,D=d>A+k?d:A+k,W=Math.max(p,v),H=Zi/W;e===0?this._resizeHelperShape=new w.Rect(Ea,{width:N,height:H,fill:Ta,left:0,top:b-H/2}):this._resizeHelperShape=new w.Rect(Ea,{width:H,height:D,fill:Ta,left:C-H/2,top:0});const U=((te=this._columnResizeRect)==null?void 0:te.left)||0,B=((Q=this._rowResizeRect)==null?void 0:Q.top)||0;l.addObject(this._resizeHelperShape,_t),l.disableObjectsEvent(),this._scenePointerMoveSub=l.onPointerMove$.subscribeEvent(re=>{var ie,fe,Ie,yt,Ho,Vo;const se=l.getCoordRelativeToViewport(w.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),X=l.getScrollXYInfoByViewport(se,h),Y=qn(re.offsetX,re.offsetY,l),{x:G,y:J}=Y,{scaleX:ae,scaleY:ue}=l.getAncestorScale(),de=Math.max(ae,ue),oe=Zi/de;M=G-this._startOffsetX-oe/2,y=J-this._startOffsetY-oe/2,Math.abs(e===0?y:M)>=Am&&(T=!0),e===0?(y>d-g+X.y-R.startY&&(y=d-g+X.y-R.startY),y<-(R.endY-R.startY)+2&&(y=-(R.endY-R.startY)+2),T&&((ie=this._resizeHelperShape)==null||ie.transformByState({top:b+y}),(fe=this._rowResizeRect)==null||fe.transformByState({top:B+y+oe/2}),(Ie=this._rowResizeRect)==null||Ie.show(),l.setCursor(w.CURSOR_TYPE.ROW_RESIZE))):(M>u-S+X.x-R.startX&&(M=u-S+X.x-R.startX),M<-(R.endX-R.startX)+2&&(M=-(R.endX-R.startX)+2),T&&((yt=this._resizeHelperShape)==null||yt.transformByState({left:C+M}),(Ho=this._columnResizeRect)==null||Ho.transformByState({left:U+M+oe/2}),(Vo=this._columnResizeRect)==null||Vo.show(),l.setCursor(w.CURSOR_TYPE.COLUMN_RESIZE)))}),this._scenePointerUpSub=l.onPointerUp$.subscribeEvent(re=>{var X,Y,G;const se=this._context.scene;this._clearObserverEvent(),(X=this._resizeHelperShape)==null||X.dispose(),this._resizeHelperShape=null,se.enableObjectsEvent(),T&&(se.resetCursor(),(Y=this._rowResizeRect)==null||Y.hide(),(G=this._columnResizeRect)==null||G.hide(),e===0?this._commandService.executeCommand(m.DeltaRowHeightCommand.id,{deltaY:y,anchorRow:this._currentRow}):this._commandService.executeCommand(m.DeltaColumnWidthCommand.id,{deltaX:M,anchorCol:this._currentColumn}))})})),this.disposeWithMe(o.onDblclick$.subscribeEvent(()=>{var h,g,S;this._context.scene.resetCursor();const s=(h=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:h.skeleton;if(!s)return;const l=0,c=0,d=s.worksheet.getRowCount()-1||0,u=s.worksheet.getColumnCount()-1||0;switch(e){case 1:{const f=this._selectionManagerService.getCurrentSelections(),p=[];for(let v=0;v<f.length;v++){const C=f[v];C.range.rangeType===a.RANGE_TYPE.COLUMN&&this._currentColumn<=C.range.endColumn&&this._currentColumn>=C.range.startColumn&&p.push({startColumn:C.range.startColumn,endColumn:C.range.endColumn,startRow:l,endRow:d})}p.length===0&&p.push({startColumn:this._currentColumn,endColumn:this._currentColumn,startRow:l,endRow:d}),this._commandService.executeCommand(bo.id,{ranges:p}),(g=this._columnResizeRect)==null||g.hide();break}case 0:this._commandService.executeCommand(m.SetWorksheetRowIsAutoHeightCommand.id,{ranges:[{startRow:this._currentRow,endRow:this._currentRow,startColumn:c,endColumn:u}]}),(S=this._rowResizeRect)==null||S.hide();break}})))}_clearObserverEvent(){var e,t;(e=this._scenePointerMoveSub)==null||e.unsubscribe(),(t=this._scenePointerUpSub)==null||t.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}};exports.HeaderResizeRenderController=Pm([ui(1,a.Inject(exports.SheetSkeletonManagerService)),ui(2,a.Inject(m.SheetsSelectionsService)),ui(3,a.ICommandService)],exports.HeaderResizeRenderController);var km=Object.getOwnPropertyDescriptor,Nm=(n,r,e,t)=>{for(var o=t>1?void 0:t?km(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Bo=(n,r)=>(e,t)=>r(e,t,n);const Dm=60;exports.SheetRenderController=class extends a.RxDisposable{constructor(e,t,o,i,s){super();E(this,"_renderFrameTimeMetric",null);E(this,"_renderFrameTags",{});E(this,"_afterRenderMetric$",new O.Subject);this._context=e,this._sheetSkeletonManagerService=t,this._sheetRenderService=o,this._commandService=i,this._telemetryService=s,this._addNewRender(),this._initRenderMetricSubscriber()}_addNewRender(){const{scene:e,engine:t,unit:o}=this._context;this._addComponent(o),this._initRerenderScheduler(),this._initCommandListener();const i=this._context.unit.getActiveSheet();if(!i)throw new Error("No active sheet found");const s=i.getSheetId();this._sheetSkeletonManagerService.setCurrent({sheetId:s});const l=()=>e.render();this.disposeWithMe(this._context.activated$.subscribe(c=>{c?t.runRenderLoop(l):t.stopRenderLoop(l)}))}_initRenderMetricSubscriber(){if(!this._telemetryService)return;const{engine:e}=this._context;e.beginFrame$.subscribe(()=>{this._renderFrameTimeMetric=null,this._renderFrameTags={}}),e.endFrame$.subscribe(()=>{this._renderFrameTimeMetric&&Object.keys(this._renderFrameTimeMetric).filter(i=>i.startsWith(w.SHEET_EXTENSION_PREFIX)).length>0&&this._afterRenderMetric$.next({frameTimeMetric:this._renderFrameTimeMetric,tags:this._renderFrameTags})}),e.renderFrameTimeMetric$.subscribe(([o,i])=>{this._renderFrameTimeMetric||(this._renderFrameTimeMetric={}),this._renderFrameTimeMetric[o]||(this._renderFrameTimeMetric[o]=[]),this._renderFrameTimeMetric[o].push(Math.round(i*100)/100)}),e.renderFrameTags$.subscribe(([o,i])=>{this._renderFrameTags[o]=i});const t=[];this._afterRenderMetric$.pipe(O.withLatestFrom(e.endFrame$)).subscribe(([o,i])=>{t.push({FPS:i.FPS,elapsedTime:i.elapsedTime,frameTime:Math.round(i.frameTime*100)/100,...o.frameTimeMetric,...o.tags}),t.length>Dm&&(this._renderMetricCapture(t),t.length=0)})}_renderMetricCapture(e){const t=e;if(t.length===0)return;const o=g=>{let S=0;const p=Object.entries(g).filter(([C,b])=>Array.isArray(b)).map(([C])=>C).reduce((C,b)=>{const R=g[b].reduce((T,M)=>T+M,0);return C[b]=R,C},{});return Object.keys(g).filter(C=>C.startsWith(w.SHEET_EXTENSION_PREFIX)).forEach(C=>{S+=p[C]}),{...p,extensionTotal:S}},i=e.map(g=>({...g,...o(g)})),l=(g=>Object.entries(g[0]).filter(([p,v])=>!["elapsedTime"].includes(p)).filter(([p,v])=>typeof v=="number").map(([p])=>p).reduce((p,v)=>{const C=g.map(M=>M[v]),b=Math.max(...C),R=Math.min(...C),T=C.reduce((M,y)=>M+y,0)/C.length;return p[v]={max:Math.round(b*100)/100,min:Math.round(R*100)/100,avg:Math.round(T*100)/100},p},{}))(i),c=t[t.length-1].elapsedTime,d=this._context.unit.getActiveSheet().getSheetId(),u=this._context.unit.getUnitId(),h={sheetId:d,unitId:u,elapsedTimeToStart:c,...l};this._telemetryService.capture("sheet_render_cost",h)}_addComponent(e){const{scene:t,components:o}=this._context,i=e.getActiveSheet(),s=new w.Spreadsheet(me.MAIN);this._addViewport(i);const l=new w.SpreadsheetRowHeader(me.ROW),c=new w.SpreadsheetColumnHeader(me.COLUMN),d=new w.Rect(me.LEFT_TOP,{zIndex:2,left:-1,top:-1,fill:"rgb(248, 249, 250)",stroke:"rgb(217, 217, 217)",strokeWidth:1});this._context.mainComponent=s,o.set(me.MAIN,s),o.set(me.ROW,l),o.set(me.COLUMN,c),o.set(me.LEFT_TOP,d),t.addObjects([s],Xs),t.addObjects([l,c,d],_t),t.enableLayerCache(Xs,_t)}_initViewports(e,t,o){const l=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN,e,{left:t.width,top:o.height,bottom:0,right:0,isWheelPreventDefaultX:!0,allowCache:!0,bufferEdgeX:100,bufferEdgeY:100}),c=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP,e,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:0,bufferEdgeY:0}),d=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT,e,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:0,bufferEdgeY:100}),u=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP,e,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:100,bufferEdgeY:0}),h=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP,e,{active:!1,isWheelPreventDefaultX:!0}),g=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM,e,{left:0,top:o.height,bottom:0,width:t.width,isWheelPreventDefaultX:!0}),S=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT,e,{active:!1,isWheelPreventDefaultX:!0}),f=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT,e,{left:t.width,top:0,height:o.height,right:0,isWheelPreventDefaultX:!0}),p=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP,e,{left:0,top:0,width:t.width,height:o.height,isWheelPreventDefaultX:!0});return{viewMain:l,viewLeftTop:p,viewMainLeftTop:c,viewMainLeft:d,viewMainTop:u,viewColumnLeft:S,viewRowTop:h,viewRowBottom:g,viewColumnRight:f}}_addViewport(e){const t=this._context.scene,{rowHeader:o,columnHeader:i}=e.getConfig(),{viewMain:s}=this._initViewports(t,o,i);return new w.ScrollBar(s),t.attachControl(),s}_initRerenderScheduler(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(e=>{if(!e)return null;const{skeleton:t,sheetId:o}=e,i=this._context.unit,s=i==null?void 0:i.getSheetBySheetId(o);if(i==null||s==null)return;const{mainComponent:l,components:c}=this._context,d=l,u=c.get(me.ROW),h=c.get(me.COLUMN),g=c.get(me.LEFT_TOP),{rowHeaderWidth:S,columnHeaderHeight:f}=t;d==null||d.updateSkeleton(t),u==null||u.updateSkeleton(t),h==null||h.updateSkeleton(t),g==null||g.transformByState({width:S,height:f})}))}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{const{unit:t}=this._context,{id:o}=e;if(m.COMMAND_LISTENER_SKELETON_CHANGE.includes(o)||this._sheetRenderService.checkMutationShouldTriggerRerender(o)){const i=e.params,{unitId:s,subUnitId:l}=i,c=t.getActiveSheet();if(!c)return;const d=this._context.unitId,u=c.getSheetId();if(s!==d||l!==u)return;this._sheetSkeletonManagerService.makeDirty({sheetId:u,commandId:o},!0),this._sheetSkeletonManagerService.setCurrent({sheetId:u,commandId:o})}else m.COMMAND_LISTENER_VALUE_CHANGE.includes(o)&&this._sheetSkeletonManagerService.reCalculate();e.type===a.CommandType.MUTATION&&this._markUnitDirty(e)}))}_markUnitDirty(e){const{mainComponent:t,scene:o}=this._context;if(e.id===K.SetFormulaCalculationNotificationMutation.id&&e.params.stageInfo!=null||(t&&t.makeDirty(),o.makeDirty(),!e.params))return;const i=e.params,s=this._spreadsheetViewports(o);if(e.id===m.SetRangeValuesMutation.id&&i.cellValue){const l=this._cellValueToRange(i.cellValue),c=this._rangeToBounds([l]);this._markViewportDirty(s,c),t.setDirtyArea(c)}if(e.id===m.MoveRangeMutation.id&&i.from&&i.to){const l=i.fromRange||this._cellValueToRange(i.from.value),c=i.toRange||this._cellValueToRange(i.to.value),d=this._rangeToBounds([l,c]);this._markViewportDirty(s,d),t.setDirtyArea(d)}}_cellValueToRange(e){let t=0,o=0,i=0,s=0;for(const[h,g]of Object.entries(e)){for(const S in g)t>Number(S)&&(t=Number(S)),o<Number(S)&&(o=Number(S));i>Number(h)&&(i=Number(h)),s<Number(h)&&(s=Number(h))}return{startRow:i,endRow:s,startColumn:t,endColumn:o}}_rangeToBounds(e){const t=this._sheetSkeletonManagerService.getCurrentParam().skeleton,{rowHeightAccumulation:o,columnWidthAccumulation:i,rowHeaderWidth:s,columnHeaderHeight:l}=t,c=[];for(const d of e){const{startRow:u,endRow:h,startColumn:g,endColumn:S}=d,f=u===0?0:o[u-1]+l,p=o[h]+l,v=g===0?0:i[g-1]+s,C=i[S]+s;c.push({top:f,left:v,bottom:p,right:C,width:C-v,height:p-f})}return c}_markViewportDirty(e,t){const o=e.filter(i=>i.isActive&&i.cacheBound);for(const i of o)for(const s of t)a.Rectangle.hasIntersectionBetweenTwoRect(i.cacheBound,s)&&i.markDirty(!0)}_spreadsheetViewports(e){return e.getViewports().filter(t=>["viewMain","viewMainLeftTop","viewMainTop","viewMainLeft"].includes(t.viewportKey))}};exports.SheetRenderController=Nm([Bo(1,a.Inject(exports.SheetSkeletonManagerService)),Bo(2,a.Inject(exports.SheetsRenderService)),Bo(3,a.ICommandService),Bo(4,a.Optional(_d.ITelemetryService))],exports.SheetRenderController);var Ve=function(){return Ve=Object.assign||function(n){for(var r,e=1,t=arguments.length;e<t;e++){r=arguments[e];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(n[o]=r[o])}return n},Ve.apply(this,arguments)},Hm=function(n,r){var e={};for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&r.indexOf(t)<0&&(e[t]=n[t]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,t=Object.getOwnPropertySymbols(n);o<t.length;o++)r.indexOf(t[o])<0&&Object.prototype.propertyIsEnumerable.call(n,t[o])&&(e[t[o]]=n[t[o]]);return e},Ee=V.forwardRef(function(n,r){var e=n.icon,t=n.id,o=n.className,i=n.extend,s=Hm(n,["icon","id","className","extend"]),l="univerjs-icon univerjs-icon-".concat(t," ").concat(o||"").trim(),c=V.useRef("_".concat(Um()));return kl(e,"".concat(t),{defIds:e.defIds,idSuffix:c.current},Ve({ref:r,className:l},s),i)});function kl(n,r,e,t,o){return V.createElement(n.tag,Ve(Ve({key:r},Vm(n,e,o)),t),(Wm(n,e).children||[]).map(function(i,s){return kl(i,"".concat(r,"-").concat(n.tag,"-").concat(s),e,void 0,o)}))}function Vm(n,r,e){var t=Ve({},n.attrs);e!=null&&e.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=e.colorChannel1),n.tag==="mask"&&t.id&&(t.id=t.id+r.idSuffix),Object.entries(t).forEach(function(i){var s=i[0],l=i[1];s==="mask"&&typeof l=="string"&&(t[s]=l.replace(/url\(#(.*)\)/,"url(#$1".concat(r.idSuffix,")")))});var o=r.defIds;return!o||o.length===0||(n.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+r.idSuffix),Object.entries(t).forEach(function(i){var s=i[0],l=i[1];typeof l=="string"&&(t[s]=l.replace(/url\(#(.*)\)/,"url(#$1".concat(r.idSuffix,")")))})),t}function Wm(n,r){var e,t=r.defIds;return!t||t.length===0?n:n.tag==="defs"&&(!((e=n.children)===null||e===void 0)&&e.length)?Ve(Ve({},n),{children:n.children.map(function(o){return typeof o.attrs.id=="string"&&t&&t.indexOf(o.attrs.id)>-1?Ve(Ve({},o),{attrs:Ve(Ve({},o.attrs),{id:o.attrs.id+r.idSuffix})}):o})}):n}function Um(){return Math.random().toString(36).substring(2,8)}Ee.displayName="UniverIcon";var Lm={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"}}]},Nl=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"autofill",ref:r,icon:Lm}))});Nl.displayName="Autofill";var Bm={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},ut=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"check-mark-single",ref:r,icon:Bm}))});ut.displayName="CheckMarkSingle";var Fm={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"}}]},Dl=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"close-single",ref:r,icon:Fm}))});Dl.displayName="CloseSingle";var jm={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"]},Hl=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"convert-single",ref:r,icon:jm}))});Hl.displayName="ConvertSingle";var zm={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"}}]},jr=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"delete-single",ref:r,icon:zm}))});jr.displayName="DeleteSingle";var Xm={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},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"}}]},Ki=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"dropdown-single",ref:r,icon:Xm}))});Ki.displayName="DropdownSingle";var Ym={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"}}]},xs=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"error-single",ref:r,icon:Ym}))});xs.displayName="ErrorSingle";var Gm={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"}}]},Vl=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"eyelash-single",ref:r,icon:Gm}))});Vl.displayName="EyelashSingle";var Zm={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"}}]},Wl=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"fx-single",ref:r,icon:Zm}))});Wl.displayName="FxSingle";var Km={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"}}]},Ul=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"hide-gridlines",ref:r,icon:Km}))});Ul.displayName="HideGridlines";var qm={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"}}]},As=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"increase-single",ref:r,icon:qm}))});As.displayName="IncreaseSingle";var Qm={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"}}]},ks=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"lock-single",ref:r,icon:Qm}))});ks.displayName="LockSingle";var Jm={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"}}]},Pn=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"more-down-single",ref:r,icon:Jm}))});Pn.displayName="MoreDownSingle";var $m={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"}}]},qi=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"more-single",ref:r,icon:$m}))});qi.displayName="MoreSingle";var eg={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.01281 1.36643C8.79386 0.585377 10.0602 0.585378 10.8412 1.36643L12.9223 3.44752C13.7034 4.22857 13.7034 5.4949 12.9223 6.27595L9.36445 9.83383C8.5834 10.6149 7.31707 10.6149 6.53602 9.83383L4.45493 7.75273C3.67388 6.97168 3.67388 5.70535 4.45493 4.9243L8.01281 1.36643ZM9.9927 2.21495C9.68028 1.90253 9.17375 1.90253 8.86133 2.21495L5.30346 5.77283L5.29671 5.77966L10.839 6.66224L12.0738 5.42742C12.3862 5.115 12.3862 4.60847 12.0738 4.29605L9.9927 2.21495Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M14.5179 9.48875C14.5179 9.99175 14.1101 10.3995 13.607 10.3995C13.1041 10.3995 12.6963 9.99175 12.6963 9.48875C12.6963 9.1773 13.0455 8.59966 13.3114 8.20487C13.4549 7.99177 13.7591 7.99177 13.9027 8.20486C14.1687 8.59965 14.5179 9.1773 14.5179 9.48875Z"}},{tag:"path",attrs:{fill:"colorChannel1",d:"M1.98682 13.4992C1.98682 12.5603 2.74793 11.7992 3.68682 11.7992H14.2868C15.2257 11.7992 15.9868 12.5603 15.9868 13.4992V13.4992C15.9868 14.4381 15.2257 15.1992 14.2868 15.1992H3.68682C2.74793 15.1992 1.98682 14.4381 1.98682 13.4992V13.4992Z"}}]},Ll=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"paint-bucket",ref:r,icon:eg}))});Ll.displayName="PaintBucket";var tg={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"}}]}]},Bl=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"paste-special",ref:r,icon:tg}))});Bl.displayName="PasteSpecial";var ng={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"}}]},Fl=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"protect-single",ref:r,icon:ng}))});Fl.displayName="ProtectSingle";var og={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"}}]},Qi=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"warning-single",ref:r,icon:og}))});Qi.displayName="WarningSingle";var rg={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"}}]},Ns=V.forwardRef(function(n,r){return V.createElement(Ee,Object.assign({},n,{id:"write-single",ref:r,icon:rg}))});Ns.displayName="WriteSingle";function ig(n,r){if(n.length!==r.length)return!1;const e=n.sort((o,i)=>o.id.localeCompare(i.id)),t=r.sort((o,i)=>o.id.localeCompare(i.id));return e.every((o,i)=>{var s,l;return((s=o.subject)==null?void 0:s.userID)===((l=t[i].subject)==null?void 0:l.userID)&&o.role===t[i].role})}function jl(n,r){return r.some(e=>sg(n,e))}function sg(n,r){const{startRow:e,startColumn:t,endColumn:o,endRow:i}=r,s=n.getMatrixWithMergedCells(e,t,i,o);let l=!1;return s.forValue((c,d,u)=>{if(u&&(c!==e||d!==t)&&n.cellHasValue(u))return l=!0,!1}),l}function zl(n,r,e,t){const o=[],i=[],s=e.getSheetId();return t.forEach(l=>{const c=ag(e,l),d={unitId:r,subUnitId:s,cellValue:c.getData()},u=m.SetRangeValuesUndoMutationFactory(n,d);o.push({id:m.SetRangeValuesMutation.id,params:u}),i.push({id:m.SetRangeValuesMutation.id,params:d})}),{undos:o,redos:i}}function ag(n,r){const{startRow:e,startColumn:t,endColumn:o,endRow:i}=r,s=n.getMatrixWithMergedCells(e,t,i,o,a.CellModeEnum.Intercepted),l=new a.ObjectMatrix;let c=null;return s.forValue((d,u,h)=>{var g,S,f,p;h&&d>=e&&u>=t&&(!c&&n.cellHasValue(h)&&(h.v!==""||((p=(f=(S=(g=h.p)==null?void 0:g.body)==null?void 0:S.dataStream)==null?void 0:f.length)!=null?p:0)>2)&&(c=h),l.setValue(d,u,null))}),l.setValue(e,t,c),l}function lg(n,r,e,t){const o=e.getActiveViewportByCoord(w.Vector2.FromArray([n,r]));if(!o)return;const{scaleX:i,scaleY:s}=e.getAncestorScale(),l={x:o.viewportScrollX,y:o.viewportScrollY},c=t.getCellIndexByOffset(n,r,i,s,l),d=t.worksheet.getMergedCell(c.row,c.column);return{actualRow:d?d.startRow:c.row,actualCol:d?d.startColumn:c.column,mergeCell:d,row:c.row,col:c.column}}function wa(n,r,e,t){const o=t.getFreeze();if(!o||o.startRow<=0&&o.startColumn<=0||n>=o.startRow&&r>=o.startColumn)return e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(n<o.startRow&&r<o.startColumn)return e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(n<o.startRow&&r>=o.startColumn)return e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(n>=o.startRow&&r<o.startColumn)return e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)}function cg(n,r,e,t){const o=ya(n.left,n.top,r,e,t),i=ya(n.right,n.bottom,r,e,t);return{left:o.x,top:o.y,right:i.x,bottom:i.y}}function ya(n,r,e,t,o){const{scaleX:i,scaleY:s}=e.getAncestorScale(),l=e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!l)return{x:n,y:r};const c=o.getFreeze(),{startColumn:d,startRow:u,xSplit:h,ySplit:g}=c,S=t.getNoMergeCellWithCoordByIndex(u-g,d-h,!1),f=t.getNoMergeCellWithCoordByIndex(u,d,!1),{rowHeaderWidth:p,columnHeaderHeight:v}=t,C=f.startX-S.startX,b=f.startY-S.startY,{top:R,left:T,viewportScrollX:M,viewportScrollY:y}=l;let P;n>T?P=(n-M)*i:P=(C+p-(T-n))*i;let x;return r>R?x=(r-y)*s:x=(b+v-(R-r))*i,{x:P,y:x}}function Xl(n,r,e,t,o){let i=t,s=o;e.overflowCache.forValue((d,u,h)=>{h.startRow<=i&&h.endRow>=i&&h.startColumn<=s&&h.endColumn>=s&&(s=u,i=d)});const l=e.getCellWithCoordByIndex(i,s);return{unitId:n.getUnitId(),subUnitId:r.getSheetId(),workbook:n,worksheet:r,row:l.actualRow,col:l.actualColumn}}function Yl(n,r,e,t,o,i){const{scene:s}=n,l=r.getUnitId(),{skeleton:c,sheetId:d}=t,u=lg(o,i,s,c);if(!u)return null;let{actualCol:h,actualRow:g}=u;const S={unitId:l,subUnitId:d,workbook:r,worksheet:e,row:g,col:h};c.overflowCache.forValue((y,P,x)=>{x.startRow<=g&&x.endRow>=g&&x.startColumn<=h&&x.endColumn>=h&&(h=P,g=y)});const f=c.getCellWithCoordByIndex(g,h),p=Xl(r,e,c,g,h);let v;f.mergeInfo?v=f.mergeInfo:v={startRow:p.row,endRow:p.row,startColumn:p.col,endColumn:p.col};const C=s.getActiveViewportByCoord(w.Vector2.FromArray([o,i]));if(!C)return;const{scaleX:b,scaleY:R}=s.getAncestorScale(),T={x:C.viewportScrollX,y:C.viewportScrollY};return{position:{startX:(c.getOffsetByColumn(v.startColumn-1)-T.x)*b,endX:(c.getOffsetByColumn(v.endColumn)-T.x)*b,startY:(c.getOffsetByRow(v.startRow-1)-T.y)*R,endY:(c.getOffsetByRow(v.endRow)-T.y)*R},location:S,overflowLocation:p}}const Tt={type:a.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge",handler:async(n,r)=>{const e=n.get(a.ICommandService),t=n.get(a.IUndoRedoService),o=n.get(a.IUniverInstanceService),i=n.get(I.IConfirmService),s=n.get(a.LocaleService),l=r.unitId,c=r.subUnitId,d=r.selections,u=m.getAddMergeMutationRangeByType(d,r.value),h=o.getUniverSheetInstance(l).getSheetBySheetId(c),g=[],S=[],f=jl(h,u);if(f&&!r.defaultMerge&&!await i.confirm({id:"merge.confirm.add-worksheet-merge",title:{title:"merge.confirm.title"},cancelText:s.t("merge.confirm.cancel"),confirmText:s.t("merge.confirm.confirm")}))return!1;const p={unitId:l,subUnitId:c,ranges:a.Tools.deepClone(u)},v={unitId:l,subUnitId:c,ranges:a.Tools.deepClone(u)},C=m.RemoveMergeUndoMutationFactory(n,p),b=m.AddMergeUndoMutationFactory(n,v);if(C.ranges.length>0&&g.push({id:m.RemoveWorksheetMergeMutation.id,params:C}),g.push({id:m.AddWorksheetMergeMutation.id,params:v}),S.push({id:m.RemoveWorksheetMergeMutation.id,params:b}),C.ranges.length>0&&S.push({id:m.AddWorksheetMergeMutation.id,params:C}),f){const x=zl(n,l,h,u);g.unshift(...x.redos),S.push(...x.undos)}const R=m.AddMergeRedoSelectionsOperationFactory(n,r,u);R&&g.push(R);const T=m.AddMergeUndoSelectionsOperationFactory(n,r);T&&S.push(T);const y=n.get(m.SheetInterceptorService).onCommandExecute({id:Tt.id,params:{unitId:l,subUnitId:c,ranges:u}});return g.push(...y.redos),S.push(...y.undos),a.sequenceExecute(g,e).result?(t.pushUndoRedo({unitID:l,undoMutations:S,redoMutations:g}),!0):!1}},Ds={type:a.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-all",handler:async n=>{var u;const r=n.get(a.ICommandService),t=(u=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:u.map(h=>h.range),o=Is(Nr.MergeAll,t);if(!(o!=null&&o.length))return!1;const s=n.get(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const l=s.getActiveSheet();if(!l)return!1;const c=s.getUnitId(),d=l.getSheetId();return r.executeCommand(Tt.id,{selections:o,unitId:c,subUnitId:d})}},Hs={type:a.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-vertical",handler:async n=>{var u;const r=n.get(a.ICommandService),t=(u=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:u.map(h=>h.range),o=Is(Nr.MergeVertical,t);if(!(o!=null&&o.length))return!1;const s=n.get(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const l=s.getActiveSheet();if(!l)return!1;const c=s.getUnitId(),d=l.getSheetId();return r.executeCommand(Tt.id,{value:a.Dimension.COLUMNS,selections:o,unitId:c,subUnitId:d})}},Vs={type:a.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-horizontal",handler:async n=>{var u;const r=n.get(a.ICommandService),t=(u=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:u.map(h=>h.range),o=Is(Nr.MergeHorizontal,t);if(!(o!=null&&o.length))return!1;const s=n.get(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const l=s.getActiveSheet();if(!l)return!1;const c=s.getUnitId(),d=l.getSheetId();return r.executeCommand(Tt.id,{value:a.Dimension.ROWS,selections:o,unitId:c,subUnitId:d})}},Wn={type:a.CommandType.COMMAND,id:"sheet.command.delete-range-move-left-confirm",handler:async n=>{const r=n.get(I.IConfirmService),e=n.get(a.ICommandService),t=n.get(a.LocaleService),o=n.get(m.SheetsSelectionsService),i=n.get(a.IUniverInstanceService),s=o.getCurrentSelections();if(!s)return!1;const l=m.getSheetCommandTarget(i);if(!l)return!1;const{worksheet:c}=l;let d=s[0].range;if(!d)return!1;d={...d,endColumn:c.getColumnCount()-1};const u=S=>S.endRow-S.startRow;return!c.getMergeData().find(S=>{const f=a.Rectangle.getIntersects(S,d);return f?u(S)>u(f):!1})||await r.confirm({id:Wn.id,title:{title:t.t("merge.confirm.waring")},children:{title:t.t("merge.confirm.dismantleMergeCellWaring")},cancelText:t.t("button.cancel"),confirmText:t.t("button.confirm")})?e.executeCommand(m.DeleteRangeMoveLeftCommand.id):!0}},Xt={type:a.CommandType.COMMAND,id:"sheet.command.delete-range-move-up-confirm",handler:async n=>{const r=n.get(I.IConfirmService),e=n.get(a.ICommandService),t=n.get(a.LocaleService),o=n.get(m.SheetsSelectionsService),i=n.get(a.IUniverInstanceService),s=o.getCurrentSelections();if(!s)return!1;const l=m.getSheetCommandTarget(i);if(!l)return!1;const{worksheet:c}=l;let d=s[0].range;if(!d)return!1;d={...d,endRow:c.getRowCount()-1};for(let S=d.startRow;S<=d.endRow;S++)if(c.getRowFiltered(S)&&await r.confirm({id:Xt.id,title:{title:t.t("filter.confirm.error")},children:{title:t.t("filter.confirm.notAllowedToInsertRange")},confirmText:t.t("button.confirm")}))return!1;const u=S=>S.endColumn-S.startColumn;return!c.getMergeData().find(S=>{const f=a.Rectangle.getIntersects(S,d);return f?u(S)>u(f):!1})||await r.confirm({id:Xt.id,title:{title:t.t("merge.confirm.waring")},children:{title:t.t("merge.confirm.dismantleMergeCellWaring")},cancelText:t.t("button.cancel"),confirmText:t.t("button.confirm")})?e.executeCommand(m.DeleteRangeMoveUpCommand.id):!0}},Yt={type:a.CommandType.COMMAND,id:"sheet.command.insert-range-move-down-confirm",handler:async n=>{const r=n.get(I.IConfirmService),e=n.get(a.ICommandService),t=n.get(a.LocaleService),o=n.get(m.SheetsSelectionsService),i=n.get(a.IUniverInstanceService),s=o.getCurrentSelections();if(!s)return!1;const l=m.getSheetCommandTarget(i);if(!l)return!1;const{worksheet:c}=l;let d=s[0].range;if(!d)return!1;d={...d,endRow:c.getRowCount()-1};for(let S=d.startRow;S<=d.endRow;S++)if(c.getRowFiltered(S)&&await r.confirm({id:Yt.id,title:{title:t.t("filter.confirm.error")},children:{title:t.t("filter.confirm.notAllowedToInsertRange")},confirmText:t.t("button.confirm")}))return!1;const u=S=>S.endColumn-S.startColumn;return!c.getMergeData().find(S=>{const f=a.Rectangle.getIntersects(S,d);return f?u(S)>u(f):!1})||await r.confirm({id:Yt.id,title:{title:t.t("merge.confirm.waring")},children:{title:t.t("merge.confirm.dismantleMergeCellWaring")},cancelText:t.t("button.cancel"),confirmText:t.t("button.confirm")})?e.executeCommand(m.InsertRangeMoveDownCommand.id):!0}},Un={type:a.CommandType.COMMAND,id:"sheet.command.insert-range-move-right-confirm",handler:async n=>{const r=n.get(I.IConfirmService),e=n.get(a.ICommandService),t=n.get(a.LocaleService),o=n.get(m.SheetsSelectionsService),i=n.get(a.IUniverInstanceService),s=o.getCurrentSelections();if(!s)return!1;const l=m.getSheetCommandTarget(i);if(!l)return!1;const{worksheet:c}=l;let d=s[0].range;if(!d)return!1;d={...d,endColumn:c.getColumnCount()-1};const u=S=>S.endRow-S.startRow;return!c.getMergeData().find(S=>{const f=a.Rectangle.getIntersects(S,d);return f?u(S)>u(f):!1})||await r.confirm({id:Un.id,title:{title:t.t("merge.confirm.waring")},children:{title:t.t("merge.confirm.dismantleMergeCellWaring")},cancelText:t.t("button.cancel"),confirmText:t.t("button.confirm")})?e.executeCommand(m.InsertRangeMoveRightCommand.id):!0}};var Gl=(n=>(n[n.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",n[n.UNIVER_DOC=1]="UNIVER_DOC",n[n.UNIVER_SHEET=2]="UNIVER_SHEET",n[n.UNIVER_SLIDE=3]="UNIVER_SLIDE",n[n.UNIVER_PROJECT=4]="UNIVER_PROJECT",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(Gl||{}),ne=(n=>(n[n.View=0]="View",n[n.Edit=1]="Edit",n[n.ManageCollaborator=2]="ManageCollaborator",n[n.Print=3]="Print",n[n.Duplicate=4]="Duplicate",n[n.Comment=5]="Comment",n[n.Copy=6]="Copy",n[n.Share=7]="Share",n[n.Export=8]="Export",n[n.MoveWorksheet=9]="MoveWorksheet",n[n.DeleteWorksheet=10]="DeleteWorksheet",n[n.HideWorksheet=11]="HideWorksheet",n[n.RenameWorksheet=12]="RenameWorksheet",n[n.CreateWorksheet=13]="CreateWorksheet",n[n.SetWorksheetStyle=14]="SetWorksheetStyle",n[n.EditWorksheetCell=15]="EditWorksheetCell",n[n.InsertHyperlink=16]="InsertHyperlink",n[n.Sort=17]="Sort",n[n.Filter=18]="Filter",n[n.PivotTable=19]="PivotTable",n[n.FloatImg=20]="FloatImg",n[n.History=21]="History",n[n.RwHgtClWdt=22]="RwHgtClWdt",n[n.ViemRwHgtClWdt=23]="ViemRwHgtClWdt",n[n.ViewFilter=24]="ViewFilter",n[n.MoveSheet=25]="MoveSheet",n[n.DeleteSheet=26]="DeleteSheet",n[n.HideSheet=27]="HideSheet",n[n.CopySheet=28]="CopySheet",n[n.RenameSheet=29]="RenameSheet",n[n.CreateSheet=30]="CreateSheet",n[n.SelectProtectedCells=31]="SelectProtectedCells",n[n.SelectUnProtectedCells=32]="SelectUnProtectedCells",n[n.SetCellStyle=33]="SetCellStyle",n[n.SetCellValue=34]="SetCellValue",n[n.SetRowStyle=35]="SetRowStyle",n[n.SetColumnStyle=36]="SetColumnStyle",n[n.InsertRow=37]="InsertRow",n[n.InsertColumn=38]="InsertColumn",n[n.DeleteRow=39]="DeleteRow",n[n.DeleteColumn=40]="DeleteColumn",n[n.EditExtraObject=41]="EditExtraObject",n[n.Delete=42]="Delete",n[n.RecoverHistory=43]="RecoverHistory",n[n.ViewHistory=44]="ViewHistory",n[n.CreatePermissionObject=45]="CreatePermissionObject",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(ne||{}),ke=(n=>(n[n.Reader=0]="Reader",n[n.Editor=1]="Editor",n[n.Owner=2]="Owner",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(ke||{}),lt=(n=>(n[n.Unkonwn=0]="Unkonwn",n[n.Workbook=1]="Workbook",n[n.Worksheet=2]="Worksheet",n[n.SelectRange=3]="SelectRange",n[n.Document=4]="Document",n[n.Slide=5]="Slide",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(lt||{}),Ke=(n=>(n[n.SomeCollaborator=0]="SomeCollaborator",n[n.AllCollaborator=1]="AllCollaborator",n[n.OneSelf=2]="OneSelf",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(Ke||{});const oo="UNIVER_SHEET_PERMISSION_PANEL",ar="UNIVER_SHEET_PERMISSION_USER_PART",Ws="UNIVER_SHEET_PERMISSION_BACKGROUND",Zl="UNIVER_SHEET_PERMISSION_USER_DIALOG",Kl="UNIVER_SHEET_PERMISSION_DIALOG",lr="UNIVER_SHEET_PERMISSION_USER_DIALOG_ID",cr="UNIVER_SHEET_PERMISSION_DIALOG_ID",Fo={[ne.Copy]:"Copy",[ne.SetCellStyle]:"SetCellStyle",[ne.SetCellValue]:"SetCellValue",[ne.SetRowStyle]:"SetRowStyle",[ne.SetColumnStyle]:"SetColumnStyle",[ne.InsertRow]:"InsertRow",[ne.InsertColumn]:"InsertColumn",[ne.InsertHyperlink]:"InsertHyperlink",[ne.DeleteRow]:"DeleteRow",[ne.DeleteColumn]:"DeleteColumn",[ne.Sort]:"Sort",[ne.Filter]:"Filter",[ne.PivotTable]:"PivotTable",[ne.EditExtraObject]:"EditExtraObject"},dg=[ne.Copy,ne.SetCellStyle,ne.SetCellValue,ne.SetRowStyle,ne.SetColumnStyle,ne.InsertRow,ne.InsertColumn,ne.InsertHyperlink,ne.DeleteRow,ne.DeleteColumn,ne.Sort,ne.Filter,ne.PivotTable,ne.EditExtraObject,ne.View],ql="sheet-permission-menu-icon",ug="sheet-permission-delete-icon",hg="sheet-permission-edit-icon",mg="sheet-permission-check-icon",Ql="sheet-permission-lock-icon",gg={unitId:"",subUnitId:"",permissionId:"",unitType:m.UnitObject.SelectRange,id:"",ranges:[],viewState:m.ViewStateEnum.OthersCanView,editState:m.EditStateEnum.OnlyMe};class On{constructor(){E(this,"_rule",gg);E(this,"_visible",!1)}setVisible(r){this._visible=r}getVisible(){return this._visible}reset(){this.setVisible(!1)}}class wt{constructor(){E(this,"_userList",[]);E(this,"_oldCollaboratorList",[]);E(this,"_selectUserList",[]);E(this,"_selectUserList$",new O.BehaviorSubject(this._selectUserList));E(this,"selectUserList$",this._selectUserList$.asObservable())}get userList(){return this._userList}setCanEditUserList(r){this._userList=r}reset(){this._userList=[],this._oldCollaboratorList=[],this._selectUserList=[],this._selectUserList$.next([])}get oldCollaboratorList(){return this._oldCollaboratorList}setOldCollaboratorList(r){this._oldCollaboratorList=r}get selectUserList(){return this._selectUserList}setSelectUserList(r){this._selectUserList=r,this._selectUserList$.next(r)}}const Qe={type:a.CommandType.OPERATION,id:"sheet-permission.operation.openPanel",async handler(n,r={}){const e=n.get(I.ISidebarService),t=n.get(On),o=n.get(wt),{showDetail:i=!0,fromSheetBar:s=!1,rule:l,oldRule:c}=r,d={header:{title:"permission.panel.title"},children:{label:oo,showDetail:i,fromSheetBar:s,rule:l,oldRule:c},width:330,onClose:()=>{t.reset(),o.reset()}};return t.setVisible(!0),e.open(d),!0}},wo={type:a.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-toolbar",async handler(n){return await n.get(a.ICommandService).executeCommand(Qe.id,{showDetail:!0}),!0}},Vt={type:a.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-context-menu",async handler(n){return await n.get(a.ICommandService).executeCommand(Qe.id,{showDetail:!0}),!0}},Wt={type:a.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-context-menu",async handler(n){return await n.get(a.ICommandService).executeCommand(Qe.id,{showDetail:!1}),!0}},yo={type:a.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-sheet-bar",async handler(n){return await n.get(a.ICommandService).executeCommand(Qe.id,{fromSheetBar:!0,showDetail:!0}),!0}},Mo={type:a.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-sheet-bar",async handler(n){return await n.get(a.ICommandService).executeCommand(Qe.id,{showDetail:!1}),!0}},Ut={type:a.CommandType.COMMAND,id:"sheet.command.delete-range-protection-from-context-menu",async handler(n){var h;const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(a.IUndoRedoService),o=n.get(m.SheetsSelectionsService),i=n.get(m.WorksheetProtectionRuleModel),s=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s.getActiveSheet(),c=s.getUnitId(),d=l.getSheetId(),u=i.getRule(c,d);if(u!=null&&u.permissionId)return r.executeCommand(m.DeleteWorksheetProtectionCommand.id,{unitId:c,subUnitId:d,rule:u});{const g=(h=o.getCurrentLastSelection())==null?void 0:h.range;if(!g)return!1;const p=n.get(m.RangeProtectionRuleModel).getSubunitRuleList(c,d).find(v=>v.ranges.some(C=>a.Rectangle.intersects(C,g)));if(p){const v={unitId:c,subUnitId:d,ruleIds:[p.id]};return await r.executeCommand(m.DeleteRangeProtectionMutation.id,v)&&t.pushUndoRedo({unitID:c,redoMutations:[{id:m.DeleteRangeProtectionMutation.id,params:v}],undoMutations:[{id:m.AddRangeProtectionMutation.id,params:{unitId:c,subUnitId:d,rules:[p]}}]}),!0}else return!1}}},Lt={type:a.CommandType.COMMAND,id:"sheet.command.set-range-protection-from-context-menu",async handler(n){var u;const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(m.WorksheetProtectionRuleModel),i=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=i.getActiveSheet(),l=i.getUnitId(),c=s.getSheetId(),d=o.getRule(l,c);if(d!=null&&d.permissionId){const h={...d,unitId:l,subUnitId:c,ranges:[]};return await r.executeCommand(Qe.id,{showDetail:!0,rule:a.Tools.deepClone(h),oldRule:a.Tools.deepClone(h)}),!0}else{const h=(u=t.getCurrentLastSelection())==null?void 0:u.range;if(!h)return!1;const f=n.get(m.RangeProtectionRuleModel).getSubunitRuleList(l,c).find(p=>{var v;return(v=p==null?void 0:p.ranges)==null?void 0:v.some(C=>a.Rectangle.intersects(C,h))});if(f){const p={...f,unitId:l,subUnitId:c};return await r.executeCommand(Qe.id,{showDetail:!0,rule:a.Tools.deepClone(p),oldRule:a.Tools.deepClone(p)}),!0}else return!1}}},xn={id:"sheet.command.remove-row-confirm",type:a.CommandType.COMMAND,handler:async(n,r)=>{var d;const e=n.get(m.SheetsSelectionsService);let t=r==null?void 0:r.range;if(t||(t=(d=e.getCurrentLastSelection())==null?void 0:d.range),!t)return!1;const o=n.get(a.ICommandService),i=n.get(a.IUniverInstanceService),s=m.getSheetCommandTarget(i);if(!s)return!1;const{worksheet:l}=s,c=l.getVisibleRows();if(nl(c,[t])){const u=n.get(I.IConfirmService),h=n.get(a.LocaleService);return await u.confirm({id:"sheet.confirm.remove-row",title:{title:h.t("info.problem")},children:{title:h.t("rightClick.deleteAllRowsAlert")},cancelText:h.t("button.cancel"),confirmText:h.t("button.confirm")}),!1}return await o.executeCommand(m.RemoveRowCommand.id,{range:t}),!0}},An={id:"sheet.command.remove-col-confirm",type:a.CommandType.COMMAND,handler:async(n,r)=>{var d;const e=n.get(m.SheetsSelectionsService);let t=r==null?void 0:r.range;if(t||(t=(d=e.getCurrentLastSelection())==null?void 0:d.range),!t)return!1;const o=n.get(a.ICommandService),i=n.get(a.IUniverInstanceService),s=m.getSheetCommandTarget(i);if(!s)return!1;const{worksheet:l}=s,c=l.getVisibleCols();if(ol(c,[t])){const u=n.get(I.IConfirmService),h=n.get(a.LocaleService);return await u.confirm({id:"sheet.confirm.remove-col",title:{title:h.t("info.problem")},children:{title:h.t("rightClick.deleteAllColumnsAlert")},cancelText:h.t("button.cancel"),confirmText:h.t("button.confirm")}),!1}return await o.executeCommand(m.RemoveColCommand.id,{range:t}),!0}},Po={id:"sheet.command.remove-sheet-confirm",type:a.CommandType.COMMAND,handler:async(n,r)=>{const{subUnitId:e}=r,t=n.get(I.IConfirmService),o=n.get(a.ICommandService),i=n.get(a.LocaleService);return await t.confirm({id:"sheet.confirm.remove-sheet",title:{title:i.t("sheetConfig.deleteSheet")},children:{title:i.t("sheetConfig.deleteSheetContent")},cancelText:i.t("button.cancel"),confirmText:i.t("button.confirm")})?(await o.executeCommand(m.RemoveSheetCommand.id,{subUnitId:e}),!0):!1}},nn=a.createIdentifier("univer.sheetbar-service");class Jl extends a.Disposable{constructor(){super();E(this,"renameId$");E(this,"removeId$");E(this,"scroll$");E(this,"scrollX$");E(this,"addSheet$");E(this,"_renameId$");E(this,"_removeId$");E(this,"_scroll$");E(this,"_scrollX$");E(this,"_addSheet$");E(this,"_currentHandler",null);this._renameId$=new O.Subject,this.renameId$=this._renameId$.asObservable(),this._removeId$=new O.Subject,this.removeId$=this._removeId$.asObservable(),this._scroll$=new O.Subject,this.scroll$=this._scroll$.asObservable(),this._scrollX$=new O.Subject,this.scrollX$=this._scrollX$.asObservable(),this._addSheet$=new O.Subject,this.addSheet$=this._addSheet$.asObservable()}setRenameId(e){this._renameId$.next(e)}setRemoveId(e){this._removeId$.next(e)}setScroll(e){this._scroll$.next(e)}setScrollX(e){this._scrollX$.next(e)}setAddSheet(e){this._addSheet$.next(e)}triggerSheetBarMenu(){var e;(e=this._currentHandler)==null||e.handleSheetBarMenu()}registerSheetBarMenuHandler(e){if(this._currentHandler)throw new Error("There is already a context menu handler!");return this._currentHandler=e,a.toDisposable(()=>{this._currentHandler=null})}}const Oo={id:"ui-sheet.command.show-menu-list",type:a.CommandType.OPERATION,handler:async n=>(n.get(nn).triggerSheetBarMenu(),!0)},xo={type:a.CommandType.COMMAND,id:"sheet.command.delete-worksheet-protection-from-sheet-bar",async handler(n,r){if(!r)return!1;const e=n.get(a.ICommandService),t=n.get(a.IUndoRedoService),o=n.get(m.WorksheetProtectionRuleModel),s=n.get(a.IUniverInstanceService).getCurrentUnitForType(Gl.UNIVER_SHEET),l=s==null?void 0:s.getActiveSheet(),c=s.getUnitId();if(!l)return!1;const d=l.getSheetId(),u=o.getRule(c,d);if(await e.executeCommand(m.DeleteWorksheetProtectionCommand.id,{unitId:c,subUnitId:d})){const g=[{id:m.DeleteWorksheetProtectionCommand.id,params:{unitId:c,subUnitId:d}}],S=[{id:m.AddWorksheetProtectionCommand.id,params:{unitId:c,rule:u}}];t.pushUndoRedo({unitID:c,redoMutations:g,undoMutations:S})}return!0}},Ao={type:a.CommandType.COMMAND,id:"sheet.command.change-sheet-protection-from-sheet-bar",async handler(n){return await n.get(a.ICommandService).executeCommand("sheet-permission.operation.openDialog"),!0}},zr={id:"sheet.operation.set-activate-cell-edit",type:a.CommandType.OPERATION,handler:(n,r)=>(n.get(Se).setEditCell(r),!0)},ko={id:"sheet.operation.rename-sheet",type:a.CommandType.OPERATION,handler:async(n,r)=>{const e=n.get(nn);return r&&e.setRenameId(r.subUnitId),!0}},Us={type:a.CommandType.OPERATION,id:"sheet-permission.operation.openDialog",async handler(n,r){const e=n.get(I.IDialogService);return e.close("DESKTOP_FIND_REPLACE_DIALOG"),e.open({id:cr,title:{title:"permission.dialog.allowedPermissionType"},children:{label:Kl},width:393,destroyOnClose:!0,onClose:()=>e.close(cr)}),!0}},ro="DefinedNameContainer",Xr={id:"sidebar.operation.defined-name",type:a.CommandType.COMMAND,handler:async(n,r)=>{const e=n.get(I.ISidebarService);n.get($.IEditorService);const t=n.get(a.LocaleService),o=n.get(a.IUniverInstanceService),i=m.getSheetCommandTarget(o);if(!i)return!1;const{unitId:s}=i;switch(r.value){case"open":e.open({id:ro,header:{title:t.t("definedName.featureTitle")},children:{label:ro},onClose:()=>{},width:333});break;case"close":default:e.close();break}return!0}},Sg=()=>_.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[_.jsx("path",{d:"M0.98999 1.08218H-0.0100098V0.0821838H0.98999V1.08218Z",fill:"black"}),_.jsx("path",{d:"M5.78992 1.08218H2.78992V0.0821838H5.78992V1.08218Z",fill:"black"}),_.jsx("path",{d:"M7.58984 1.08218H8.58984V0.0821838H7.58984V1.08218Z",fill:"black"}),_.jsx("path",{d:"M14.9152 1.08218H13.9152V0.0821838H14.9152V1.08218Z",fill:"black"}),_.jsx("path",{d:"M16.7151 1.08218H19.7151V0.0821838H16.7151V1.08218Z",fill:"black"}),_.jsx("path",{d:"M22.515 1.08218H21.515V0.0821838H22.515V1.08218Z",fill:"black"}),_.jsx("path",{d:"M27.8405 1.08218H28.8405V0.0821838H27.8405V1.08218Z",fill:"black"}),_.jsx("path",{d:"M33.6404 1.08218H30.6404V0.0821838H33.6404V1.08218Z",fill:"black"}),_.jsx("path",{d:"M35.4403 1.08218H36.4403V0.0821838H35.4403V1.08218Z",fill:"black"}),_.jsx("path",{d:"M42.7657 1.08218H41.7657V0.0821838H42.7657V1.08218Z",fill:"black"}),_.jsx("path",{d:"M44.5657 1.08218H47.5657V0.0821838H44.5657V1.08218Z",fill:"black"}),_.jsx("path",{d:"M50.3656 1.08218H49.3656V0.0821838H50.3656V1.08218Z",fill:"black"}),_.jsx("path",{d:"M55.691 1.08218H56.691V0.0821838H55.691V1.08218Z",fill:"black"}),_.jsx("path",{d:"M61.491 1.08218H58.491V0.0821838H61.491V1.08218Z",fill:"black"}),_.jsx("path",{d:"M63.2909 1.08218H64.2909V0.0821838H63.2909V1.08218Z",fill:"black"}),_.jsx("path",{d:"M70.6163 1.08218H69.6163V0.0821838H70.6163V1.08218Z",fill:"black"}),_.jsx("path",{d:"M72.4163 1.08218H75.4163V0.0821838H72.4163V1.08218Z",fill:"black"}),_.jsx("path",{d:"M78.2162 1.08218H77.2162V0.0821838H78.2162V1.08218Z",fill:"black"}),_.jsx("path",{d:"M83.5416 1.08218H84.5416V0.0821838H83.5416V1.08218Z",fill:"black"}),_.jsx("path",{d:"M89.3416 1.08218H86.3416V0.0821838H89.3416V1.08218Z",fill:"black"}),_.jsx("path",{d:"M91.1415 1.08218H92.1415V0.0821838H91.1415V1.08218Z",fill:"black"}),_.jsx("path",{d:"M98.4669 1.08218H97.4669V0.0821838H98.4669V1.08218Z",fill:"black"}),_.jsx("path",{d:"M100.267 1.08218H103.267V0.0821838H100.267V1.08218Z",fill:"black"}),_.jsx("path",{d:"M106.067 1.08218H105.067V0.0821838H106.067V1.08218Z",fill:"black"}),_.jsx("path",{d:"M111.392 1.08218H112.392V0.0821838H111.392V1.08218Z",fill:"black"}),_.jsx("path",{d:"M117.192 1.08218H114.192V0.0821838H117.192V1.08218Z",fill:"black"}),_.jsx("path",{d:"M118.992 1.08218H119.992V0.0821838H118.992V1.08218Z",fill:"black"})]}),fg=()=>_.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[_.jsx("path",{d:"M-0.0100098 1.15771H0.98999V0.157715H-0.0100098V1.15771Z",fill:"black"}),_.jsx("path",{d:"M2.78992 1.15771H5.78992V0.157715H2.78992V1.15771Z",fill:"black"}),_.jsx("path",{d:"M8.58984 1.15771H7.58984V0.157715H8.58984V1.15771Z",fill:"black"}),_.jsx("path",{d:"M10.3899 1.15771H11.3899V0.157715H10.3899V1.15771Z",fill:"black"}),_.jsx("path",{d:"M19.0903 1.15771H18.0903V0.157715H19.0903V1.15771Z",fill:"black"}),_.jsx("path",{d:"M20.8903 1.15771H23.8903V0.157715H20.8903V1.15771Z",fill:"black"}),_.jsx("path",{d:"M26.6902 1.15771H25.6902V0.157715H26.6902V1.15771Z",fill:"black"}),_.jsx("path",{d:"M28.4902 1.15771H29.4902V0.157715H28.4902V1.15771Z",fill:"black"}),_.jsx("path",{d:"M37.1907 1.15771H36.1907V0.157715H37.1907V1.15771Z",fill:"black"}),_.jsx("path",{d:"M38.9906 1.15771H41.9906V0.157715H38.9906V1.15771Z",fill:"black"}),_.jsx("path",{d:"M44.7905 1.15771H43.7905V0.157715H44.7905V1.15771Z",fill:"black"}),_.jsx("path",{d:"M46.5906 1.15771H47.5906V0.157715H46.5906V1.15771Z",fill:"black"}),_.jsx("path",{d:"M55.291 1.15771H54.291V0.157715H55.291V1.15771Z",fill:"black"}),_.jsx("path",{d:"M57.0909 1.15771H60.0909V0.157715H57.0909V1.15771Z",fill:"black"}),_.jsx("path",{d:"M62.8909 1.15771H61.8909V0.157715H62.8909V1.15771Z",fill:"black"}),_.jsx("path",{d:"M64.6909 1.15771H65.6909V0.157715H64.6909V1.15771Z",fill:"black"}),_.jsx("path",{d:"M73.3914 1.15771H72.3914V0.157715H73.3914V1.15771Z",fill:"black"}),_.jsx("path",{d:"M75.1913 1.15771H78.1913V0.157715H75.1913V1.15771Z",fill:"black"}),_.jsx("path",{d:"M80.9912 1.15771H79.9912V0.157715H80.9912V1.15771Z",fill:"black"}),_.jsx("path",{d:"M82.7913 1.15771H83.7913V0.157715H82.7913V1.15771Z",fill:"black"}),_.jsx("path",{d:"M91.4917 1.15771H90.4917V0.157715H91.4917V1.15771Z",fill:"black"}),_.jsx("path",{d:"M93.2916 1.15771H96.2916V0.157715H93.2916V1.15771Z",fill:"black"}),_.jsx("path",{d:"M99.0916 1.15771H98.0916V0.157715H99.0916V1.15771Z",fill:"black"}),_.jsx("path",{d:"M100.892 1.15771H101.892V0.157715H100.892V1.15771Z",fill:"black"}),_.jsx("path",{d:"M109.592 1.15771H108.592V0.157715H109.592V1.15771Z",fill:"black"}),_.jsx("path",{d:"M111.392 1.15771H114.392V0.157715H111.392V1.15771Z",fill:"black"}),_.jsx("path",{d:"M117.192 1.15771H116.192V0.157715H117.192V1.15771Z",fill:"black"}),_.jsx("path",{d:"M118.992 1.15771H119.992V0.157715H118.992V1.15771Z",fill:"black"})]}),pg=()=>_.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[_.jsx("path",{d:"M-0.00842285 1.22449H2.99158V0.224487H-0.00842285V1.22449Z",fill:"black"}),_.jsx("path",{d:"M6.14941 1.22449H9.14941V0.224487H6.14941V1.22449Z",fill:"black"}),_.jsx("path",{d:"M15.3073 1.22449H12.3073V0.224487H15.3073V1.22449Z",fill:"black"}),_.jsx("path",{d:"M18.4651 1.22449H21.4651V0.224487H18.4651V1.22449Z",fill:"black"}),_.jsx("path",{d:"M27.6229 1.22449H24.6229V0.224487H27.6229V1.22449Z",fill:"black"}),_.jsx("path",{d:"M30.7808 1.22449H33.7808V0.224487H30.7808V1.22449Z",fill:"black"}),_.jsx("path",{d:"M39.9386 1.22449H36.9386V0.224487H39.9386V1.22449Z",fill:"black"}),_.jsx("path",{d:"M43.0964 1.22449H46.0964V0.224487H43.0964V1.22449Z",fill:"black"}),_.jsx("path",{d:"M52.2543 1.22449H49.2543V0.224487H52.2543V1.22449Z",fill:"black"}),_.jsx("path",{d:"M55.4121 1.22449H58.4121V0.224487H55.4121V1.22449Z",fill:"black"}),_.jsx("path",{d:"M64.5699 1.22449H61.5699V0.224487H64.5699V1.22449Z",fill:"black"}),_.jsx("path",{d:"M67.7278 1.22449H70.7278V0.224487H67.7278V1.22449Z",fill:"black"}),_.jsx("path",{d:"M76.8856 1.22449H73.8856V0.224487H76.8856V1.22449Z",fill:"black"}),_.jsx("path",{d:"M80.0435 1.22449H83.0435V0.224487H80.0435V1.22449Z",fill:"black"}),_.jsx("path",{d:"M89.2013 1.22449H86.2013V0.224487H89.2013V1.22449Z",fill:"black"}),_.jsx("path",{d:"M92.3591 1.22449H95.3591V0.224487H92.3591V1.22449Z",fill:"black"}),_.jsx("path",{d:"M101.517 1.22449H98.517V0.224487H101.517V1.22449Z",fill:"black"}),_.jsx("path",{d:"M104.675 1.22449H107.675V0.224487H104.675V1.22449Z",fill:"black"}),_.jsx("path",{d:"M113.833 1.22449H110.833V0.224487H113.833V1.22449Z",fill:"black"}),_.jsx("path",{d:"M116.99 1.22449H119.99V0.224487H116.99V1.22449Z",fill:"black"})]}),vg=()=>_.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[_.jsx("path",{d:"M-0.00976562 1.65707H0.990234V0.657074H-0.00976562V1.65707Z",fill:"black"}),_.jsx("path",{d:"M2.32361 1.65707H3.32361V0.657074H2.32361V1.65707Z",fill:"black"}),_.jsx("path",{d:"M5.65698 1.65707H4.65698V0.657074H5.65698V1.65707Z",fill:"black"}),_.jsx("path",{d:"M6.99036 1.65707H7.99036V0.657074H6.99036V1.65707Z",fill:"black"}),_.jsx("path",{d:"M10.3237 1.65707H9.32373V0.657074H10.3237V1.65707Z",fill:"black"}),_.jsx("path",{d:"M11.6571 1.65707H12.6571V0.657074H11.6571V1.65707Z",fill:"black"}),_.jsx("path",{d:"M14.9905 1.65707H13.9905V0.657074H14.9905V1.65707Z",fill:"black"}),_.jsx("path",{d:"M16.3239 1.65707H17.3239V0.657074H16.3239V1.65707Z",fill:"black"}),_.jsx("path",{d:"M19.6572 1.65707H18.6572V0.657074H19.6572V1.65707Z",fill:"black"}),_.jsx("path",{d:"M20.9906 1.65707H21.9906V0.657074H20.9906V1.65707Z",fill:"black"}),_.jsx("path",{d:"M24.324 1.65707H23.324V0.657074H24.324V1.65707Z",fill:"black"}),_.jsx("path",{d:"M25.6573 1.65707H26.6573V0.657074H25.6573V1.65707Z",fill:"black"}),_.jsx("path",{d:"M28.9907 1.65707H27.9907V0.657074H28.9907V1.65707Z",fill:"black"}),_.jsx("path",{d:"M30.3241 1.65707H31.3241V0.657074H30.3241V1.65707Z",fill:"black"}),_.jsx("path",{d:"M33.6575 1.65707H32.6575V0.657074H33.6575V1.65707Z",fill:"black"}),_.jsx("path",{d:"M34.9908 1.65707H35.9908V0.657074H34.9908V1.65707Z",fill:"black"}),_.jsx("path",{d:"M38.3242 1.65707H37.3242V0.657074H38.3242V1.65707Z",fill:"black"}),_.jsx("path",{d:"M39.6576 1.65707H40.6576V0.657074H39.6576V1.65707Z",fill:"black"}),_.jsx("path",{d:"M42.991 1.65707H41.991V0.657074H42.991V1.65707Z",fill:"black"}),_.jsx("path",{d:"M44.3243 1.65707H45.3243V0.657074H44.3243V1.65707Z",fill:"black"}),_.jsx("path",{d:"M47.6577 1.65707H46.6577V0.657074H47.6577V1.65707Z",fill:"black"}),_.jsx("path",{d:"M48.9911 1.65707H49.9911V0.657074H48.9911V1.65707Z",fill:"black"}),_.jsx("path",{d:"M52.3245 1.65707H51.3245V0.657074H52.3245V1.65707Z",fill:"black"}),_.jsx("path",{d:"M53.6578 1.65707H54.6578V0.657074H53.6578V1.65707Z",fill:"black"}),_.jsx("path",{d:"M56.9912 1.65707H55.9912V0.657074H56.9912V1.65707Z",fill:"black"}),_.jsx("path",{d:"M58.3246 1.65707H59.3246V0.657074H58.3246V1.65707Z",fill:"black"}),_.jsx("path",{d:"M61.658 1.65707H60.658V0.657074H61.658V1.65707Z",fill:"black"}),_.jsx("path",{d:"M62.9913 1.65707H63.9913V0.657074H62.9913V1.65707Z",fill:"black"}),_.jsx("path",{d:"M66.3247 1.65707H65.3247V0.657074H66.3247V1.65707Z",fill:"black"}),_.jsx("path",{d:"M67.6581 1.65707H68.6581V0.657074H67.6581V1.65707Z",fill:"black"}),_.jsx("path",{d:"M70.9915 1.65707H69.9915V0.657074H70.9915V1.65707Z",fill:"black"}),_.jsx("path",{d:"M72.3248 1.65707H73.3248V0.657074H72.3248V1.65707Z",fill:"black"}),_.jsx("path",{d:"M75.6582 1.65707H74.6582V0.657074H75.6582V1.65707Z",fill:"black"}),_.jsx("path",{d:"M76.9916 1.65707H77.9916V0.657074H76.9916V1.65707Z",fill:"black"}),_.jsx("path",{d:"M80.325 1.65707H79.325V0.657074H80.325V1.65707Z",fill:"black"}),_.jsx("path",{d:"M81.6583 1.65707H82.6583V0.657074H81.6583V1.65707Z",fill:"black"}),_.jsx("path",{d:"M84.9917 1.65707H83.9917V0.657074H84.9917V1.65707Z",fill:"black"}),_.jsx("path",{d:"M86.3251 1.65707H87.3251V0.657074H86.3251V1.65707Z",fill:"black"}),_.jsx("path",{d:"M89.6584 1.65707H88.6584V0.657074H89.6584V1.65707Z",fill:"black"}),_.jsx("path",{d:"M90.9918 1.65707H91.9918V0.657074H90.9918V1.65707Z",fill:"black"}),_.jsx("path",{d:"M94.3252 1.65707H93.3252V0.657074H94.3252V1.65707Z",fill:"black"}),_.jsx("path",{d:"M95.6586 1.65707H96.6586V0.657074H95.6586V1.65707Z",fill:"black"}),_.jsx("path",{d:"M98.9919 1.65707H97.9919V0.657074H98.9919V1.65707Z",fill:"black"}),_.jsx("path",{d:"M100.325 1.65707H101.325V0.657074H100.325V1.65707Z",fill:"black"}),_.jsx("path",{d:"M103.659 1.65707H102.659V0.657074H103.659V1.65707Z",fill:"black"}),_.jsx("path",{d:"M104.992 1.65707H105.992V0.657074H104.992V1.65707Z",fill:"black"}),_.jsx("path",{d:"M108.325 1.65707H107.325V0.657074H108.325V1.65707Z",fill:"black"}),_.jsx("path",{d:"M109.659 1.65707H110.659V0.657074H109.659V1.65707Z",fill:"black"}),_.jsx("path",{d:"M112.992 1.65707H111.992V0.657074H112.992V1.65707Z",fill:"black"}),_.jsx("path",{d:"M114.325 1.65707H115.325V0.657074H114.325V1.65707Z",fill:"black"}),_.jsx("path",{d:"M117.659 1.65707H116.659V0.657074H117.659V1.65707Z",fill:"black"}),_.jsx("path",{d:"M118.992 1.65707H119.992V0.657074H118.992V1.65707Z",fill:"black"})]}),Cg=()=>_.jsx("svg",{width:"120",height:"3",viewBox:"0 0 120 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:_.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 2.42035H-0.0090332V0.420349H119.991V2.42035Z",fill:"black"})}),Ig=()=>_.jsxs("svg",{width:"120",height:"3",viewBox:"0 0 120 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[_.jsx("path",{d:"M-0.0100098 2.47614H1.98999V0.476135H-0.0100098V2.47614Z",fill:"black"}),_.jsx("path",{d:"M3.99014 2.47614H9.99014V0.476135H3.99014V2.47614Z",fill:"black"}),_.jsx("path",{d:"M13.9901 2.47614H11.9901V0.476135H13.9901V2.47614Z",fill:"black"}),_.jsx("path",{d:"M21.1904 2.47614H23.1904V0.476135H21.1904V2.47614Z",fill:"black"}),_.jsx("path",{d:"M31.1906 2.47614H25.1906V0.476135H31.1906V2.47614Z",fill:"black"}),_.jsx("path",{d:"M33.1906 2.47614H35.1906V0.476135H33.1906V2.47614Z",fill:"black"}),_.jsx("path",{d:"M44.3909 2.47614H42.3909V0.476135H44.3909V2.47614Z",fill:"black"}),_.jsx("path",{d:"M46.391 2.47614H52.391V0.476135H46.391V2.47614Z",fill:"black"}),_.jsx("path",{d:"M56.391 2.47614H54.391V0.476135H56.391V2.47614Z",fill:"black"}),_.jsx("path",{d:"M63.5913 2.47614H65.5913V0.476135H63.5913V2.47614Z",fill:"black"}),_.jsx("path",{d:"M73.5915 2.47614H67.5915V0.476135H73.5915V2.47614Z",fill:"black"}),_.jsx("path",{d:"M75.5915 2.47614H77.5915V0.476135H75.5915V2.47614Z",fill:"black"}),_.jsx("path",{d:"M86.7917 2.47614H84.7917V0.476135H86.7917V2.47614Z",fill:"black"}),_.jsx("path",{d:"M88.7919 2.47614H94.7919V0.476135H88.7919V2.47614Z",fill:"black"}),_.jsx("path",{d:"M98.7919 2.47614H96.7919V0.476135H98.7919V2.47614Z",fill:"black"}),_.jsx("path",{d:"M105.992 2.47614H107.992V0.476135H105.992V2.47614Z",fill:"black"}),_.jsx("path",{d:"M115.992 2.47614H109.992V0.476135H115.992V2.47614Z",fill:"black"}),_.jsx("path",{d:"M117.992 2.47614H119.992V0.476135H117.992V2.47614Z",fill:"black"})]}),_g=()=>_.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[_.jsx("path",{d:"M-0.0100098 2.00415H1.98999V0.00415039H-0.0100098V2.00415Z",fill:"black"}),_.jsx("path",{d:"M3.99014 2.00415H9.99014V0.00415039H3.99014V2.00415Z",fill:"black"}),_.jsx("path",{d:"M13.9901 2.00415H11.9901V0.00415039H13.9901V2.00415Z",fill:"black"}),_.jsx("path",{d:"M15.9901 2.00415H17.9901V0.00415039H15.9901V2.00415Z",fill:"black"}),_.jsx("path",{d:"M27.4905 2.00415H25.4905V0.00415039H27.4905V2.00415Z",fill:"black"}),_.jsx("path",{d:"M29.4906 2.00415H35.4906V0.00415039H29.4906V2.00415Z",fill:"black"}),_.jsx("path",{d:"M39.4906 2.00415H37.4906V0.00415039H39.4906V2.00415Z",fill:"black"}),_.jsx("path",{d:"M41.4906 2.00415H43.4906V0.00415039H41.4906V2.00415Z",fill:"black"}),_.jsx("path",{d:"M52.991 2.00415H50.991V0.00415039H52.991V2.00415Z",fill:"black"}),_.jsx("path",{d:"M54.9911 2.00415H60.9911V0.00415039H54.9911V2.00415Z",fill:"black"}),_.jsx("path",{d:"M64.9911 2.00415H62.9911V0.00415039H64.9911V2.00415Z",fill:"black"}),_.jsx("path",{d:"M66.9911 2.00415H68.9911V0.00415039H66.9911V2.00415Z",fill:"black"}),_.jsx("path",{d:"M78.4915 2.00415H76.4915V0.00415039H78.4915V2.00415Z",fill:"black"}),_.jsx("path",{d:"M80.4916 2.00415H86.4916V0.00415039H80.4916V2.00415Z",fill:"black"}),_.jsx("path",{d:"M90.4916 2.00415H88.4916V0.00415039H90.4916V2.00415Z",fill:"black"}),_.jsx("path",{d:"M92.4916 2.00415H94.4916V0.00415039H92.4916V2.00415Z",fill:"black"}),_.jsx("path",{d:"M103.992 2.00415H101.992V0.00415039H103.992V2.00415Z",fill:"black"}),_.jsx("path",{d:"M105.992 2.00415H111.992V0.00415039H105.992V2.00415Z",fill:"black"}),_.jsx("path",{d:"M115.992 2.00415H113.992V0.00415039H115.992V2.00415Z",fill:"black"}),_.jsx("path",{d:"M117.992 2.00415H119.992V0.00415039H117.992V2.00415Z",fill:"black"})]}),bg=()=>_.jsxs("svg",{width:"118",height:"3",viewBox:"0 0 118 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[_.jsx("path",{d:"M-0.00854492 2.94815H1.99146V0.948151H-0.00854492V2.94815Z",fill:"black"}),_.jsx("path",{d:"M6.09668 2.94815H8.09668V0.948151H6.09668V2.94815Z",fill:"black"}),_.jsx("path",{d:"M14.2019 2.94815H12.2019V0.948151H14.2019V2.94815Z",fill:"black"}),_.jsx("path",{d:"M18.3071 2.94815H20.3071V0.948151H18.3071V2.94815Z",fill:"black"}),_.jsx("path",{d:"M26.4124 2.94815H24.4124V0.948151H26.4124V2.94815Z",fill:"black"}),_.jsx("path",{d:"M30.5176 2.94815H32.5176V0.948151H30.5176V2.94815Z",fill:"black"}),_.jsx("path",{d:"M38.6228 2.94815H36.6228V0.948151H38.6228V2.94815Z",fill:"black"}),_.jsx("path",{d:"M42.728 2.94815H44.728V0.948151H42.728V2.94815Z",fill:"black"}),_.jsx("path",{d:"M50.8333 2.94815H48.8333V0.948151H50.8333V2.94815Z",fill:"black"}),_.jsx("path",{d:"M54.9385 2.94815H56.9385V0.948151H54.9385V2.94815Z",fill:"black"}),_.jsx("path",{d:"M63.0437 2.94815H61.0437V0.948151H63.0437V2.94815Z",fill:"black"}),_.jsx("path",{d:"M67.1489 2.94815H69.1489V0.948151H67.1489V2.94815Z",fill:"black"}),_.jsx("path",{d:"M75.2542 2.94815H73.2542V0.948151H75.2542V2.94815Z",fill:"black"}),_.jsx("path",{d:"M79.3594 2.94815H81.3594V0.948151H79.3594V2.94815Z",fill:"black"}),_.jsx("path",{d:"M87.4645 2.94815H85.4645V0.948151H87.4645V2.94815Z",fill:"black"}),_.jsx("path",{d:"M91.5697 2.94815H93.5697V0.948151H91.5697V2.94815Z",fill:"black"}),_.jsx("path",{d:"M99.6749 2.94815H97.6749V0.948151H99.6749V2.94815Z",fill:"black"}),_.jsx("path",{d:"M103.78 2.94815H105.78V0.948151H103.78V2.94815Z",fill:"black"}),_.jsx("path",{d:"M111.885 2.94815H109.885V0.948151H111.885V2.94815Z",fill:"black"}),_.jsx("path",{d:"M115.991 2.94815H117.991V0.948151H115.991V2.94815Z",fill:"black"})]}),Rg=()=>_.jsx("svg",{width:"120",height:"4",viewBox:"0 0 120 4",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:_.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 3.86215H-0.0090332V0.862152H119.991V3.86215Z",fill:"black"})}),Ma=()=>_.jsx("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:_.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 1.15668H-0.0090332V0.156677H119.991V1.15668Z",fill:"black"})});function Pa(n){const{type:r=a.BorderStyleTypes.THIN}=n;switch(r){case a.BorderStyleTypes.DASH_DOT:return _.jsx(Sg,{});case a.BorderStyleTypes.DASH_DOT_DOT:return _.jsx(fg,{});case a.BorderStyleTypes.DASHED:return _.jsx(pg,{});case a.BorderStyleTypes.HAIR:return _.jsx(vg,{});case a.BorderStyleTypes.MEDIUM:return _.jsx(Cg,{});case a.BorderStyleTypes.MEDIUM_DASH_DOT:return _.jsx(Ig,{});case a.BorderStyleTypes.MEDIUM_DASH_DOT_DOT:return _.jsx(_g,{});case a.BorderStyleTypes.MEDIUM_DASHED:return _.jsx(bg,{});case a.BorderStyleTypes.THICK:return _.jsx(Rg,{});case a.BorderStyleTypes.THIN:return _.jsx(Ma,{});default:return _.jsx(Ma,{})}}const Eg="univer-ui-plugin-sheets-border-panel",Tg="univer-ui-plugin-sheets-border-panel-position",wg="univer-ui-plugin-sheets-border-panel-position-item",yg="univer-ui-plugin-sheets-border-panel-position-item-active",Mg="univer-ui-plugin-sheets-border-panel-styles",Pg="univer-ui-plugin-sheets-border-panel-board",Og="univer-ui-plugin-sheets-border-panel-button",xg="univer-ui-plugin-sheets-border-panel-more-icon",Fe={uiPluginSheetsBorderPanel:Eg,uiPluginSheetsBorderPanelPosition:Tg,uiPluginSheetsBorderPanelPositionItem:wg,uiPluginSheetsBorderPanelPositionItemActive:yg,uiPluginSheetsBorderPanelStyles:Mg,uiPluginSheetsBorderPanelBoard:Pg,uiPluginSheetsBorderPanelButton:Og,uiPluginSheetsBorderPanelMoreIcon:xg},Ls=`${Hn}_BORDER_PANEL_COMPONENT`,$l=[{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"}],Ag=[{label:a.BorderStyleTypes.THIN,value:a.BorderStyleTypes.THIN},{label:a.BorderStyleTypes.HAIR,value:a.BorderStyleTypes.HAIR},{label:a.BorderStyleTypes.DOTTED,value:a.BorderStyleTypes.DOTTED},{label:a.BorderStyleTypes.DASHED,value:a.BorderStyleTypes.DASHED},{label:a.BorderStyleTypes.DASH_DOT,value:a.BorderStyleTypes.DASH_DOT},{label:a.BorderStyleTypes.DASH_DOT_DOT,value:a.BorderStyleTypes.DASH_DOT_DOT},{label:a.BorderStyleTypes.MEDIUM,value:a.BorderStyleTypes.MEDIUM},{label:a.BorderStyleTypes.MEDIUM_DASHED,value:a.BorderStyleTypes.MEDIUM_DASHED},{label:a.BorderStyleTypes.MEDIUM_DASH_DOT,value:a.BorderStyleTypes.MEDIUM_DASH_DOT},{label:a.BorderStyleTypes.MEDIUM_DASH_DOT_DOT,value:a.BorderStyleTypes.MEDIUM_DASH_DOT_DOT},{label:a.BorderStyleTypes.THICK,value:a.BorderStyleTypes.THICK}];function ec(n){var c;const r=I.useDependency(I.ComponentManager),e=I.useDependency(m.BorderStyleManagerService),{onChange:t,value:o}=n;function i(d,u){t==null||t({...o,[u]:d})}function s(d){const u=r.get(d);return u&&_.jsx(u,{extend:{colorChannel1:"rgb(var(--primary-color))"}})}function l(d){d.stopPropagation()}return _.jsxs("section",{className:Fe.uiPluginSheetsBorderPanel,children:[_.jsx("div",{className:Fe.uiPluginSheetsBorderPanelPosition,children:$l.map(d=>_.jsx("div",{className:e.getBorderInfo().type===d.value?`
13
13
  ${Fe.uiPluginSheetsBorderPanelPositionItemActive}
14
14
  ${Fe.uiPluginSheetsBorderPanelPositionItem}
15
- `:Fe.uiPluginSheetsBorderPanelPositionItem,onClick:u=>{u.stopPropagation(),i(c.value,"type")},children:s(c.icon)},c.value))}),_.jsxs("div",{className:Fe.uiPluginSheetsBorderPanelStyles,children:[_.jsx("div",{children:_.jsx(K.DropdownLegacy,{align:{offset:[0,18]},overlay:_.jsx("section",{className:Fe.uiPluginSheetsBorderPanelBoard,onClick:l,children:_.jsx(K.ColorPicker,{onChange:c=>i(c,"color")})}),children:_.jsxs("a",{className:Fe.uiPluginSheetsBorderPanelButton,onClick:l,children:[_.jsx(Vl,{extend:{colorChannel1:(d=o==null?void 0:o.color)!=null?d:"rgb(var(--primary-color))"}}),_.jsx("span",{className:Fe.uiPluginSheetsBorderPanelMoreIcon,children:_.jsx(Pn,{})})]})})}),_.jsx("div",{children:_.jsx(K.DropdownLegacy,{align:{offset:[0,18]},overlay:_.jsx("section",{onClick:l,children:_.jsx(K.Menu,{children:Mg.map(c=>_.jsx(K.MenuItem,{eventKey:c.value.toString(),onClick:()=>i(c.value,"style"),children:_.jsx(wa,{type:c.value})},c.value))})}),children:_.jsxs("a",{className:Fe.uiPluginSheetsBorderPanelButton,onClick:l,children:[_.jsx(wa,{type:a.BorderStyleTypes.THIN}),_.jsx("span",{className:Fe.uiPluginSheetsBorderPanelMoreIcon,children:_.jsx(Pn,{})})]})})})]})]})}function Jl(n){var r,e,t="";if(typeof n=="string"||typeof n=="number")t+=n;else if(typeof n=="object")if(Array.isArray(n)){var o=n.length;for(r=0;r<o;r++)n[r]&&(e=Jl(n[r]))&&(t&&(t+=" "),t+=e)}else for(e in n)n[e]&&(t&&(t+=" "),t+=e);return t}function pe(){for(var n,r,e=0,t="",o=arguments.length;e<o;e++)(n=arguments[e])&&(r=Jl(n))&&(t&&(t+=" "),t+=r);return t}const Pg="univer-defined-name",Og="univer-defined-name-container",xg="univer-defined-name-container-scroll",Ag="univer-defined-name-container-addButton",kg="univer-defined-name-container-addButton-text",Ng="univer-defined-name-container-item",Dg="univer-defined-name-container-item-name",Hg="univer-defined-name-container-item-name-for-sheet",Vg="univer-defined-name-container-item-formula-or-refString",Wg="univer-defined-name-container-item-update",Ug="univer-defined-name-container-item-delete",Lg="univer-defined-name-container-item-show",Bg="univer-defined-name-input",Fg="univer-defined-name-input-validation",we={definedName:Pg,definedNameContainer:Og,definedNameContainerScroll:xg,definedNameContainerAddButton:Ag,definedNameContainerAddButtonText:kg,definedNameContainerItem:Ng,definedNameContainerItemName:Dg,definedNameContainerItemNameForSheet:Hg,definedNameContainerItemFormulaOrRefString:Vg,definedNameContainerItemUpdate:Wg,definedNameContainerItemDelete:Ug,definedNameContainerItemShow:Lg,definedNameInput:Bg,definedNameInputValidation:Fg},di={width:"100%"},ya=n=>{const{inputId:r,state:e=!1,type:t="range",confirm:o,cancel:i,name:s,formulaOrRefString:l,comment:d="",localSheetId:c=m.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,hidden:u=!1,id:h}=n,S=I.useDependency(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),f=I.useDependency(a.LocaleService),p=I.useDependency(G.IDefinedNamesService),v=I.useDependency(G.IFunctionService),C=I.useDependency(G.LexerTreeBuilder),b=I.useDependency(I.ComponentManager),R=V.useMemo(()=>b.get(ds),[]),T=V.useMemo(()=>b.get(wr),[]);if(S==null)return;const M=V.useMemo(()=>S.getUnitId(),[]),y=V.useMemo(()=>S.getActiveSheet().getSheetId(),[]),[P,x]=V.useState(s),[A,k]=V.useState(l),[N,D]=V.useState(d),[W,H]=V.useState(c),[U,B]=V.useState(""),[F,L]=V.useState(t),[z,X]=V.useState(!0),Z=V.useRef({}),[oe,Q]=V.useState(!1),ie=[{label:f.t("definedName.scopeWorkbook"),value:m.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}],$=re=>!G.isReferenceStrings(re);V.useEffect(()=>{Q(!1)},[y]),V.useEffect(()=>{X(!0),x(s),D(d),H(c);let re=l;l.substring(0,1)===G.operatorToken.EQUALS?L("formula"):$(l)?(L("formula"),re=G.operatorToken.EQUALS+l):L("range"),k(re),B("")},[e]),S.getSheetOrders().forEach(re=>{const se=S.getSheetBySheetId(re);ie.push({label:(se==null?void 0:se.getName())||"",value:re})});const j=re=>{k(re)},Y=re=>{k(re||"")},q=()=>{if(P.length===0){B(f.t("definedName.nameEmpty"));return}if(p.getValueByName(M,P)!=null&&(h==null||h.length===0)){B(f.t("definedName.nameDuplicate"));return}if(!a.Tools.isValidParameter(P)||G.isReferenceStringWithEffectiveColumn(P)||!a.Tools.isStartValidPosition(P)&&!w.hasCJKText(P.substring(0,1))){B(f.t("definedName.nameInvalid"));return}if(S.getSheetOrders().map(Ie=>{var Te;return((Te=S.getSheetBySheetId(Ie))==null?void 0:Te.getName())||""}).includes(P)){B(f.t("definedName.nameSheetConflict"));return}if(A.length===0){B(f.t("definedName.formulaOrRefStringEmpty"));return}if(!z){B(f.t("definedName.formulaOrRefStringInvalid"));return}if(v.hasExecutor(P.toUpperCase())){B(f.t("definedName.nameConflict"));return}const se=S.getActiveSheet().getName();o&&o({id:h||"",name:P,formulaOrRefString:C.convertRefersToAbsolute(A,a.AbsoluteRefType.ALL,a.AbsoluteRefType.ALL,se),comment:N,localSheetId:W})},ee=re=>{const se=re;se==="formula"?l[0]===G.operatorToken.EQUALS?k(l):k(`${G.operatorToken.EQUALS}`):l[0]===G.operatorToken.EQUALS?k(""):k(l),L(se)},de=V.useRef({}),[me,ce]=V.useState(!1);return I.useSidebarClick(re=>{var Ie;const se=(Ie=Z.current)==null?void 0:Ie.handleOutClick;se&&se(re,()=>Q(!1))}),I.useSidebarClick(re=>{var Ie;const se=(Ie=de.current)==null?void 0:Ie.handleOutClick;se&&se(re,()=>ce(!1))}),_.jsxs("div",{className:we.definedNameInput,style:{display:e?"block":"none"},children:[_.jsx("div",{children:_.jsx(K.Input,{placeholder:f.t("definedName.inputNamePlaceholder"),value:P,allowClear:!0,onChange:x,affixWrapperStyle:di})}),_.jsx("div",{children:_.jsxs(K.RadioGroup,{value:F,onChange:ee,children:[_.jsx(K.Radio,{value:"range",children:f.t("definedName.ratioRange")}),_.jsx(K.Radio,{value:"formula",children:f.t("definedName.ratioFormula")})]})}),F==="range"?R&&_.jsx(R,{unitId:M,subUnitId:y,initValue:A,onChange:j,isFocus:oe,onFocus:()=>Q(!0),actions:Z.current,isSupportAcrossSheet:!0}):T&&_.jsx(T,{initValue:A,unitId:M,subUnitId:y,isFocus:me,isSupportAcrossSheet:!0,onChange:(re="")=>{Y(re||"")},onVerify:re=>{X(re)},onFocus:()=>ce(!0),actions:de.current}),_.jsx("div",{children:_.jsx(K.Select,{style:di,value:W,options:ie,onChange:H})}),_.jsx("div",{children:_.jsx(K.Input,{affixWrapperStyle:di,placeholder:f.t("definedName.inputCommentPlaceholder"),value:N,onChange:D})}),_.jsxs("div",{style:{display:U.length===0?"none":"flex"},className:we.definedNameInputValidation,children:[_.jsx("span",{children:U}),_.jsx(Ps,{})]}),_.jsxs("div",{children:[_.jsx(K.Button,{onClick:()=>{i&&i()},children:f.t("definedName.cancel")}),_.jsx(K.Button,{style:{marginLeft:15},type:"primary",onClick:q,children:f.t("definedName.confirm")})]})]})},$l=()=>{const n=I.useDependency(a.ICommandService),e=I.useDependency(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),t=I.useDependency(a.LocaleService),o=I.useDependency(G.IDefinedNamesService),i=I.useDependency(m.SheetsSelectionsService);if(e==null)return;const s=e.getUnitId(),l=()=>{const N=o.getDefinedNameMap(s);return N?Array.from(Object.values(N)):[]},[d,c]=V.useState(!1),[u,h]=V.useState(l()),[g,S]=V.useState(null),[f,p]=V.useState();V.useEffect(()=>{const N=o.update$.subscribe(()=>{h(l())});return()=>{N.unsubscribe()}},[]);const v=N=>{const{name:D,formulaOrRefString:W,comment:H,localSheetId:U,hidden:B}=N;let F=N.id;if(F==null||F.length===0)F=a.Tools.generateRandomId(10),n.executeCommand(m.InsertDefinedNameCommand.id,{id:F,unitId:s,name:D,formulaOrRefString:W,comment:H,localSheetId:U,hidden:B});else{const L={id:F,unitId:s,name:D,formulaOrRefString:W,comment:H,localSheetId:U,hidden:B};n.executeCommand(m.SetDefinedNameCommand.id,L)}c(!1),S(null)},C=N=>{p(N)};function b(){p(null)}function R(N){const D=o.getValueById(s,N);n.executeCommand(m.RemoveDefinedNameCommand.id,{...D,unitId:s}),p(null)}const T=async N=>{const{formulaOrRefString:D,id:W}=N,H=o.getWorksheetByRef(s,D);if(!H)return;H.isSheetHidden()&&await n.executeCommand(m.SetWorksheetShowCommand.id,{unitId:s,subUnitId:H.getSheetId()}),o.focusRange(s,W)},M=()=>{const N=u.length+1,D=t.t("definedName.defaultName")+N;if(o.getValueByName(s,D)==null)return D;let W=N+1;for(;;){const H=t.t("definedName.defaultName")+W;if(o.getValueByName(s,H)==null)return H;W++}},y=()=>{var H;const N=(H=e.getActiveSheet())==null?void 0:H.getName();if(!N)return"";const D=i.getCurrentSelections();return D==null?"":D.map(U=>G.serializeRangeWithSheet(N,U.range)).join(",")},P=()=>{c(!1),S(null)},x=()=>{c(!0),S(null)},A=N=>{c(!1),S(N)},k=N=>{const D=e.getSheetBySheetId(N);return D==null?"":D.getName()};return _.jsx("div",{className:we.definedNameContainer,children:_.jsxs("div",{className:we.definedNameContainerScroll,children:[_.jsxs("div",{children:[_.jsxs("div",{onClick:x,className:we.definedNameContainerAddButton,style:{display:d?"none":"flex"},children:[_.jsx(Os,{}),_.jsx("span",{className:we.definedNameContainerAddButtonText,children:t.t("definedName.addButton")})]}),d&&_.jsx(ya,{confirm:v,cancel:P,state:d,inputId:"insertDefinedName",name:M(),formulaOrRefString:y()})]},"insertDefinedName"),u.map((N,D)=>_.jsxs("div",{children:[_.jsxs("div",{onClick:()=>{T(N)},className:we.definedNameContainerItem,style:{display:N.id===g?"none":"flex"},children:[_.jsxs("div",{title:N.comment,children:[_.jsxs("div",{className:we.definedNameContainerItemName,children:[N.name,_.jsx("span",{className:we.definedNameContainerItemNameForSheet,children:N.localSheetId===m.SCOPE_WORKBOOK_VALUE_DEFINED_NAME||N.localSheetId==null?"":k(N.localSheetId)})]}),_.jsx("div",{className:we.definedNameContainerItemFormulaOrRefString,children:N.formulaOrRefString})]}),_.jsx(K.Tooltip,{title:t.t("definedName.updateButton"),placement:"top",children:_.jsx("div",{className:pe(we.definedNameContainerItemUpdate,we.definedNameContainerItemShow),onClick:()=>{A(N.id)},children:_.jsx(ht,{})})}),_.jsx(K.Tooltip,{title:t.t("definedName.deleteButton"),placement:"top",children:_.jsx("div",{className:pe(we.definedNameContainerItemDelete,we.definedNameContainerItemShow),onClick:()=>{C(N.id)},children:_.jsx(Ur,{})})})]}),_.jsx(K.Confirm,{visible:f===N.id,onClose:b,onConfirm:()=>{R(N.id)},children:t.t("definedName.deleteConfirmText")}),N.id===g&&_.jsx(ya,{confirm:v,cancel:P,state:N.id===g,id:N.id,inputId:N.id+D,name:N.name,formulaOrRefString:N.formulaOrRefString,comment:N.comment,localSheetId:N.localSheetId})]},D))]})})},jg="univer-count-bar",zg={countBar:jg},Xg=[50,75,100,125,150,175,200,400];function Yg(){const n=I.useDependency(a.ICommandService),r=I.useDependency(a.IUniverInstanceService),e=mt(),t=I.useDependency(Se),o=I.useObservable(t.visible$),i=V.useCallback(()=>{if(!e)return 100;const u=e.getActiveSheet(),h=u&&u.getZoomRatio()*100||100;return Math.round(h)},[e]),[s,l]=V.useState(()=>i());V.useEffect(()=>(l(i()),n.onCommandExecuted(h=>{if(h.id===Le.id||h.id===m.SetWorksheetActiveOperation.id){const g=i();l(g)}}).dispose),[n,i]);function d(u){l(u);const h=r.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),g=h==null?void 0:h.getActiveSheet();if(g==null)return;const S=u/100;n.executeCommand(Nn.id,{unitId:h.getUnitId(),subUnitId:g.getSheetId(),zoomRatio:S})}const c=(o==null?void 0:o.visible)&&(o.unitId===(e==null?void 0:e.getUnitId())||o.unitId===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);return _.jsx(K.Slider,{disabled:c,min:Ni[0],value:s,shortcuts:Xg,onChange:d})}function Gg(n){return _.jsx("section",{className:zg.countBar,children:_.jsx(Yg,{})})}function ec(n,r){const e=I.useDependency(Se),t=I.useDependency(a.ICommandService);return V.useMemo(()=>({keyCodes:[{keyCode:I.KeyCode.ENTER},{keyCode:I.KeyCode.ESC},{keyCode:I.KeyCode.TAB}],handler:i=>{(i===I.KeyCode.ENTER||i===I.KeyCode.ESC||i===I.KeyCode.TAB)&&(e.disableForceKeepVisible(),t.executeCommand(Ce.id,{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:i,unitId:r}))}}),[t,e,r])}const Zg="univer-editor-container",Kg="univer-editor-input",Ma={editorContainer:Zg,editorInput:Kg},ar=-1e3,Pa={width:0,height:0,top:ar,left:ar},qg=()=>{const[n,r]=V.useState({...Pa}),e=I.useDependency(mo),t=I.useDependency(J.IEditorService),o=I.useDependency(a.IContextService),i=I.useDependency(I.ComponentManager),s=I.useDependency(Se),l=I.useObservable(s.visible$),d=I.useDependency(a.ICommandService),c=V.useRef(0),u=I.useObservable(()=>o.subscribeContextValue$(I.DISABLE_AUTO_FOCUS_KEY),!1,void 0,[o,I.DISABLE_AUTO_FOCUS_KEY]),h=i.get(wr),g=s.getEditLocation();V.useEffect(()=>{const v=e.state$.subscribe(C=>{if(C==null)return;const{startX:b=ar,startY:R=ar,endX:T=0,endY:M=0,show:y=!1}=C;if(!y)r({...Pa});else{r({width:T-b,height:M-R,left:b,top:R});const P=t.getEditor(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);if(P==null)return;const{left:x,top:A,width:k,height:N}=P.getBoundingClientRect();e.setRect({left:x,top:A,width:k,height:N})}});return()=>{v.unsubscribe()}},[]),V.useEffect(()=>{u||e.setFocus(!0)},[u,n]);const S=I.useEvent(()=>{s.isVisible().visible&&d.executeCommand(Ce.id,{visible:!1,eventType:w.DeviceInputEventType.PointerUp,unitId:g==null?void 0:g.unitId})});I.useSidebarClick(S);const f=ec(c,g==null?void 0:g.unitId),p=I.useEvent((v,C)=>{d.executeCommand(Xt.id,{keycode:v,visible:!1,eventType:w.DeviceInputEventType.Keyboard,isShift:C===I.MetaKeys.SHIFT||C===(I.MetaKeys.CTRL_COMMAND|I.MetaKeys.SHIFT),unitId:g==null?void 0:g.unitId})});return _.jsx("div",{className:Ma.editorContainer,style:{left:n.left,top:n.top,width:n.width,height:n.height},children:h&&_.jsx(h,{editorId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,className:Ma.editorInput,initValue:"",onChange:()=>{},isFocus:l==null?void 0:l.visible,unitId:g==null?void 0:g.unitId,subUnitId:g==null?void 0:g.sheetId,keyboradEventConfig:f,onMoveInEditor:p,isSupportAcrossSheet:!0,resetSelectionOnBlur:!1,isSingle:!1,autoScrollbar:!1,onFormulaSelectingChange:v=>{c.current=v,v?s.enableForceKeepVisible():s.disableForceKeepVisible()},disableSelectionOnClick:!0,disableContextMenu:!1})})};class Qg{constructor(){E(this,"_position",null);E(this,"_position$",new O.BehaviorSubject(null));E(this,"position$",this._position$.asObservable());E(this,"_focus",!1);E(this,"_focus$",new O.BehaviorSubject(this._focus));E(this,"focus$",this._focus$.asObservable());E(this,"_fxBtnClick$",new O.Subject);E(this,"fxBtnClick$",this._fxBtnClick$.asObservable());E(this,"_foldBtnStatus$",new O.Subject);E(this,"foldBtnStatus$",this._foldBtnStatus$.asObservable())}dispose(){this._position$.complete(),this._focus$.complete(),this._position=null,this._focus=!1}setPosition(r){this._position=r,this._refresh(r)}getPosition(){return this._position}setFocus(r=!1){this._focus=r,this._focus$.next(r)}handleFxBtnClick(r){this._fxBtnClick$.next(r)}handleFoldBtnClick(r){this._foldBtnStatus$.next(r)}_refresh(r){this._position$.next(r)}}const No=a.createIdentifier("univer.sheet-formula-editor-manager.service");function Jg(n){const r=I.useDependency(a.ICommandService),e=I.useDependency(a.LocaleService),t=I.useDependency(G.IDefinedNamesService),o=I.useDependency(a.IUniverInstanceService),i=I.useDependency(I.ISidebarService),l=o.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId(),d=()=>{const S=t.getDefinedNameMap(l);return S?Array.from(Object.values(S)):[]},[c,u]=V.useState(d());V.useEffect(()=>{const S=t.update$.subscribe(()=>{u(d())});return()=>{S.unsubscribe()}},[]),V.useEffect(()=>{const S=i.sidebarOptions$.subscribe(f=>{f.id===ro&&(f.visible||setTimeout(()=>{i.sidebarOptions$.next({visible:!1})}))});return()=>{S.unsubscribe()}},[]);const h=()=>{r.executeCommand(Br.id,{value:"open"})},g=async S=>{const{formulaOrRefString:f,id:p}=S,v=t.getWorksheetByRef(l,f);if(!v)return;v.isSheetHidden()&&await r.executeCommand(m.SetWorksheetShowCommand.id,{unitId:l,subUnitId:v.getSheetId()}),t.focusRange(l,p)};return _.jsxs("div",{className:"univer-w-[300px]",children:[_.jsx("ul",{className:`
15
+ `:Fe.uiPluginSheetsBorderPanelPositionItem,onClick:u=>{u.stopPropagation(),i(d.value,"type")},children:s(d.icon)},d.value))}),_.jsxs("div",{className:Fe.uiPluginSheetsBorderPanelStyles,children:[_.jsx("div",{children:_.jsx(Z.DropdownLegacy,{align:{offset:[0,18]},overlay:_.jsx("section",{className:Fe.uiPluginSheetsBorderPanelBoard,onClick:l,children:_.jsx(Z.ColorPicker,{onChange:d=>i(d,"color")})}),children:_.jsxs("a",{className:Fe.uiPluginSheetsBorderPanelButton,onClick:l,children:[_.jsx(Ll,{extend:{colorChannel1:(c=o==null?void 0:o.color)!=null?c:"rgb(var(--primary-color))"}}),_.jsx("span",{className:Fe.uiPluginSheetsBorderPanelMoreIcon,children:_.jsx(Pn,{})})]})})}),_.jsx("div",{children:_.jsx(Z.DropdownLegacy,{align:{offset:[0,18]},overlay:_.jsx("section",{onClick:l,children:_.jsx(Z.Menu,{children:Ag.map(d=>_.jsx(Z.MenuItem,{eventKey:d.value.toString(),onClick:()=>i(d.value,"style"),children:_.jsx(Pa,{type:d.value})},d.value))})}),children:_.jsxs("a",{className:Fe.uiPluginSheetsBorderPanelButton,onClick:l,children:[_.jsx(Pa,{type:a.BorderStyleTypes.THIN}),_.jsx("span",{className:Fe.uiPluginSheetsBorderPanelMoreIcon,children:_.jsx(Pn,{})})]})})})]})]})}function tc(n){var r,e,t="";if(typeof n=="string"||typeof n=="number")t+=n;else if(typeof n=="object")if(Array.isArray(n)){var o=n.length;for(r=0;r<o;r++)n[r]&&(e=tc(n[r]))&&(t&&(t+=" "),t+=e)}else for(e in n)n[e]&&(t&&(t+=" "),t+=e);return t}function Te(){for(var n,r,e=0,t="",o=arguments.length;e<o;e++)(n=arguments[e])&&(r=tc(n))&&(t&&(t+=" "),t+=r);return t}const kg="univer-defined-name",Ng="univer-defined-name-container",Dg="univer-defined-name-container-scroll",Hg="univer-defined-name-container-addButton",Vg="univer-defined-name-container-addButton-text",Wg="univer-defined-name-container-item",Ug="univer-defined-name-container-item-name",Lg="univer-defined-name-container-item-name-for-sheet",Bg="univer-defined-name-container-item-formula-or-refString",Fg="univer-defined-name-container-item-update",jg="univer-defined-name-container-item-delete",zg="univer-defined-name-container-item-show",Xg="univer-defined-name-input",Yg="univer-defined-name-input-validation",we={definedName:kg,definedNameContainer:Ng,definedNameContainerScroll:Dg,definedNameContainerAddButton:Hg,definedNameContainerAddButtonText:Vg,definedNameContainerItem:Wg,definedNameContainerItemName:Ug,definedNameContainerItemNameForSheet:Lg,definedNameContainerItemFormulaOrRefString:Bg,definedNameContainerItemUpdate:Fg,definedNameContainerItemDelete:jg,definedNameContainerItemShow:zg,definedNameInput:Xg,definedNameInputValidation:Yg},mi={width:"100%"},Oa=n=>{const{inputId:r,state:e=!1,type:t="range",confirm:o,cancel:i,name:s,formulaOrRefString:l,comment:c="",localSheetId:d=m.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,hidden:u=!1,id:h}=n,S=I.useDependency(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),f=I.useDependency(a.LocaleService),p=I.useDependency(K.IDefinedNamesService),v=I.useDependency(K.IFunctionService),C=I.useDependency(K.LexerTreeBuilder),b=I.useDependency(I.ComponentManager),R=V.useMemo(()=>b.get(hs),[]),T=V.useMemo(()=>b.get(Or),[]);if(S==null)return;const M=V.useMemo(()=>S.getUnitId(),[]),y=V.useMemo(()=>S.getActiveSheet().getSheetId(),[]),[P,x]=V.useState(s),[A,k]=V.useState(l),[N,D]=V.useState(c),[W,H]=V.useState(d),[U,B]=V.useState(""),[F,L]=V.useState(t),[j,z]=V.useState(!0),q=V.useRef({}),[te,Q]=V.useState(!1),re=[{label:f.t("definedName.scopeWorkbook"),value:m.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}],se=oe=>!K.isReferenceStrings(oe);V.useEffect(()=>{Q(!1)},[y]),V.useEffect(()=>{z(!0),x(s),D(c),H(d);let oe=l;l.substring(0,1)===K.operatorToken.EQUALS?L("formula"):se(l)?(L("formula"),oe=K.operatorToken.EQUALS+l):L("range"),k(oe),B("")},[e]),S.getSheetOrders().forEach(oe=>{const ie=S.getSheetBySheetId(oe);re.push({label:(ie==null?void 0:ie.getName())||"",value:oe})});const X=oe=>{k(oe)},Y=oe=>{k(oe||"")},G=()=>{if(P.length===0){B(f.t("definedName.nameEmpty"));return}if(p.getValueByName(M,P)!=null&&(h==null||h.length===0)){B(f.t("definedName.nameDuplicate"));return}if(!a.Tools.isValidParameter(P)||K.isReferenceStringWithEffectiveColumn(P)||!a.Tools.isStartValidPosition(P)&&!w.hasCJKText(P.substring(0,1))){B(f.t("definedName.nameInvalid"));return}if(S.getSheetOrders().map(fe=>{var Ie;return((Ie=S.getSheetBySheetId(fe))==null?void 0:Ie.getName())||""}).includes(P)){B(f.t("definedName.nameSheetConflict"));return}if(A.length===0){B(f.t("definedName.formulaOrRefStringEmpty"));return}if(!j){B(f.t("definedName.formulaOrRefStringInvalid"));return}if(v.hasExecutor(P.toUpperCase())){B(f.t("definedName.nameConflict"));return}const ie=S.getActiveSheet().getName();o&&o({id:h||"",name:P,formulaOrRefString:C.convertRefersToAbsolute(A,a.AbsoluteRefType.ALL,a.AbsoluteRefType.ALL,ie),comment:N,localSheetId:W})},J=oe=>{const ie=oe;ie==="formula"?l[0]===K.operatorToken.EQUALS?k(l):k(`${K.operatorToken.EQUALS}`):l[0]===K.operatorToken.EQUALS?k(""):k(l),L(ie)},ae=V.useRef({}),[ue,de]=V.useState(!1);return I.useSidebarClick(oe=>{var fe;const ie=(fe=q.current)==null?void 0:fe.handleOutClick;ie&&ie(oe,()=>Q(!1))}),I.useSidebarClick(oe=>{var fe;const ie=(fe=ae.current)==null?void 0:fe.handleOutClick;ie&&ie(oe,()=>de(!1))}),_.jsxs("div",{className:we.definedNameInput,style:{display:e?"block":"none"},children:[_.jsx("div",{children:_.jsx(Z.Input,{placeholder:f.t("definedName.inputNamePlaceholder"),value:P,allowClear:!0,onChange:x,affixWrapperStyle:mi})}),_.jsx("div",{children:_.jsxs(Z.RadioGroup,{value:F,onChange:J,children:[_.jsx(Z.Radio,{value:"range",children:f.t("definedName.ratioRange")}),_.jsx(Z.Radio,{value:"formula",children:f.t("definedName.ratioFormula")})]})}),F==="range"?R&&_.jsx(R,{unitId:M,subUnitId:y,initValue:A,onChange:X,isFocus:te,onFocus:()=>Q(!0),actions:q.current,isSupportAcrossSheet:!0}):T&&_.jsx(T,{initValue:A,unitId:M,subUnitId:y,isFocus:ue,isSupportAcrossSheet:!0,onChange:(oe="")=>{Y(oe||"")},onVerify:oe=>{z(oe)},onFocus:()=>de(!0),actions:ae.current}),_.jsx("div",{children:_.jsx(Z.Select,{style:mi,value:W,options:re,onChange:H})}),_.jsx("div",{children:_.jsx(Z.Input,{affixWrapperStyle:mi,placeholder:f.t("definedName.inputCommentPlaceholder"),value:N,onChange:D})}),_.jsxs("div",{style:{display:U.length===0?"none":"flex"},className:we.definedNameInputValidation,children:[_.jsx("span",{children:U}),_.jsx(xs,{})]}),_.jsxs("div",{children:[_.jsx(Z.Button,{onClick:()=>{i&&i()},children:f.t("definedName.cancel")}),_.jsx(Z.Button,{style:{marginLeft:15},type:"primary",onClick:G,children:f.t("definedName.confirm")})]})]})},nc=()=>{const n=I.useDependency(a.ICommandService),e=I.useDependency(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),t=I.useDependency(a.LocaleService),o=I.useDependency(K.IDefinedNamesService),i=I.useDependency(m.SheetsSelectionsService);if(e==null)return;const s=e.getUnitId(),l=()=>{const N=o.getDefinedNameMap(s);return N?Array.from(Object.values(N)):[]},[c,d]=V.useState(!1),[u,h]=V.useState(l()),[g,S]=V.useState(null),[f,p]=V.useState();V.useEffect(()=>{const N=o.update$.subscribe(()=>{h(l())});return()=>{N.unsubscribe()}},[]);const v=N=>{const{name:D,formulaOrRefString:W,comment:H,localSheetId:U,hidden:B}=N;let F=N.id;if(F==null||F.length===0)F=a.Tools.generateRandomId(10),n.executeCommand(m.InsertDefinedNameCommand.id,{id:F,unitId:s,name:D,formulaOrRefString:W,comment:H,localSheetId:U,hidden:B});else{const L={id:F,unitId:s,name:D,formulaOrRefString:W,comment:H,localSheetId:U,hidden:B};n.executeCommand(m.SetDefinedNameCommand.id,L)}d(!1),S(null)},C=N=>{p(N)};function b(){p(null)}function R(N){const D=o.getValueById(s,N);n.executeCommand(m.RemoveDefinedNameCommand.id,{...D,unitId:s}),p(null)}const T=async N=>{const{formulaOrRefString:D,id:W}=N,H=o.getWorksheetByRef(s,D);if(!H)return;H.isSheetHidden()&&await n.executeCommand(m.SetWorksheetShowCommand.id,{unitId:s,subUnitId:H.getSheetId()}),o.focusRange(s,W)},M=()=>{const N=u.length+1,D=t.t("definedName.defaultName")+N;if(o.getValueByName(s,D)==null)return D;let W=N+1;for(;;){const H=t.t("definedName.defaultName")+W;if(o.getValueByName(s,H)==null)return H;W++}},y=()=>{var H;const N=(H=e.getActiveSheet())==null?void 0:H.getName();if(!N)return"";const D=i.getCurrentSelections();return D==null?"":D.map(U=>K.serializeRangeWithSheet(N,U.range)).join(",")},P=()=>{d(!1),S(null)},x=()=>{d(!0),S(null)},A=N=>{d(!1),S(N)},k=N=>{const D=e.getSheetBySheetId(N);return D==null?"":D.getName()};return _.jsx("div",{className:we.definedNameContainer,children:_.jsxs("div",{className:we.definedNameContainerScroll,children:[_.jsxs("div",{children:[_.jsxs("div",{onClick:x,className:we.definedNameContainerAddButton,style:{display:c?"none":"flex"},children:[_.jsx(As,{}),_.jsx("span",{className:we.definedNameContainerAddButtonText,children:t.t("definedName.addButton")})]}),c&&_.jsx(Oa,{confirm:v,cancel:P,state:c,inputId:"insertDefinedName",name:M(),formulaOrRefString:y()})]},"insertDefinedName"),u.map((N,D)=>_.jsxs("div",{children:[_.jsxs("div",{onClick:()=>{T(N)},className:we.definedNameContainerItem,style:{display:N.id===g?"none":"flex"},children:[_.jsxs("div",{title:N.comment,children:[_.jsxs("div",{className:we.definedNameContainerItemName,children:[N.name,_.jsx("span",{className:we.definedNameContainerItemNameForSheet,children:N.localSheetId===m.SCOPE_WORKBOOK_VALUE_DEFINED_NAME||N.localSheetId==null?"":k(N.localSheetId)})]}),_.jsx("div",{className:we.definedNameContainerItemFormulaOrRefString,children:N.formulaOrRefString})]}),_.jsx(Z.Tooltip,{title:t.t("definedName.updateButton"),placement:"top",children:_.jsx("div",{className:Te(we.definedNameContainerItemUpdate,we.definedNameContainerItemShow),onClick:()=>{A(N.id)},children:_.jsx(ut,{})})}),_.jsx(Z.Tooltip,{title:t.t("definedName.deleteButton"),placement:"top",children:_.jsx("div",{className:Te(we.definedNameContainerItemDelete,we.definedNameContainerItemShow),onClick:()=>{C(N.id)},children:_.jsx(jr,{})})})]}),_.jsx(Z.Confirm,{visible:f===N.id,onClose:b,onConfirm:()=>{R(N.id)},children:t.t("definedName.deleteConfirmText")}),N.id===g&&_.jsx(Oa,{confirm:v,cancel:P,state:N.id===g,id:N.id,inputId:N.id+D,name:N.name,formulaOrRefString:N.formulaOrRefString,comment:N.comment,localSheetId:N.localSheetId})]},D))]})})},Gg="univer-count-bar",Zg={countBar:Gg},Kg=[50,75,100,125,150,175,200,400];function qg(){const n=I.useDependency(a.ICommandService),r=I.useDependency(a.IUniverInstanceService),e=ht(),t=I.useDependency(Se),o=I.useObservable(t.visible$),i=V.useCallback(()=>{if(!e)return 100;const u=e.getActiveSheet(),h=u&&u.getZoomRatio()*100||100;return Math.round(h)},[e]),[s,l]=V.useState(()=>i());V.useEffect(()=>(l(i()),n.onCommandExecuted(h=>{if(h.id===Le.id||h.id===m.SetWorksheetActiveOperation.id){const g=i();l(g)}}).dispose),[n,i]);function c(u){l(u);const h=r.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),g=h==null?void 0:h.getActiveSheet();if(g==null)return;const S=u/100;n.executeCommand(Nn.id,{unitId:h.getUnitId(),subUnitId:g.getSheetId(),zoomRatio:S})}const d=(o==null?void 0:o.visible)&&(o.unitId===(e==null?void 0:e.getUnitId())||o.unitId===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);return _.jsx(Z.Slider,{disabled:d,min:Hi[0],value:s,shortcuts:Kg,onChange:c})}function Qg(n){return _.jsx("section",{className:Zg.countBar,children:_.jsx(qg,{})})}function oc(n,r){const e=I.useDependency(Se),t=I.useDependency(a.ICommandService);return V.useMemo(()=>({keyCodes:[{keyCode:I.KeyCode.ENTER},{keyCode:I.KeyCode.ESC},{keyCode:I.KeyCode.TAB}],handler:i=>{(i===I.KeyCode.ENTER||i===I.KeyCode.ESC||i===I.KeyCode.TAB)&&(e.disableForceKeepVisible(),t.executeCommand(Ce.id,{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:i,unitId:r}))}}),[t,e,r])}const Jg="univer-editor-container",$g="univer-editor-input",xa={editorContainer:Jg,editorInput:$g},dr=-1e3,Aa={width:0,height:0,top:dr,left:dr},eS=()=>{const[n,r]=V.useState({...Aa}),e=I.useDependency(mo),t=I.useDependency($.IEditorService),o=I.useDependency(a.IContextService),i=I.useDependency(I.ComponentManager),s=I.useDependency(Se),l=I.useObservable(s.visible$),c=I.useDependency(a.ICommandService),d=V.useRef(0),u=I.useObservable(()=>o.subscribeContextValue$(I.DISABLE_AUTO_FOCUS_KEY),!1,void 0,[o,I.DISABLE_AUTO_FOCUS_KEY]),h=i.get(Or),g=s.getEditLocation();V.useEffect(()=>{const v=e.state$.subscribe(C=>{if(C==null)return;const{startX:b=dr,startY:R=dr,endX:T=0,endY:M=0,show:y=!1}=C;if(!y)r({...Aa});else{r({width:T-b,height:M-R,left:b,top:R});const P=t.getEditor(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);if(P==null)return;const{left:x,top:A,width:k,height:N}=P.getBoundingClientRect();e.setRect({left:x,top:A,width:k,height:N})}});return()=>{v.unsubscribe()}},[]),V.useEffect(()=>{u||e.setFocus(!0)},[u,n]);const S=I.useEvent(()=>{s.isVisible().visible&&c.executeCommand(Ce.id,{visible:!1,eventType:w.DeviceInputEventType.PointerUp,unitId:g==null?void 0:g.unitId})});I.useSidebarClick(S);const f=oc(d,g==null?void 0:g.unitId),p=I.useEvent((v,C)=>{c.executeCommand(zt.id,{keycode:v,visible:!1,eventType:w.DeviceInputEventType.Keyboard,isShift:C===I.MetaKeys.SHIFT||C===(I.MetaKeys.CTRL_COMMAND|I.MetaKeys.SHIFT),unitId:g==null?void 0:g.unitId})});return _.jsx("div",{className:xa.editorContainer,style:{left:n.left,top:n.top,width:n.width,height:n.height},children:h&&_.jsx(h,{editorId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,className:xa.editorInput,initValue:"",onChange:()=>{},isFocus:l==null?void 0:l.visible,unitId:g==null?void 0:g.unitId,subUnitId:g==null?void 0:g.sheetId,keyboradEventConfig:f,onMoveInEditor:p,isSupportAcrossSheet:!0,resetSelectionOnBlur:!1,isSingle:!1,autoScrollbar:!1,onFormulaSelectingChange:v=>{d.current=v,v?s.enableForceKeepVisible():s.disableForceKeepVisible()},disableSelectionOnClick:!0,disableContextMenu:!1})})};class tS{constructor(){E(this,"_position",null);E(this,"_position$",new O.BehaviorSubject(null));E(this,"position$",this._position$.asObservable());E(this,"_focus",!1);E(this,"_focus$",new O.BehaviorSubject(this._focus));E(this,"focus$",this._focus$.asObservable());E(this,"_fxBtnClick$",new O.Subject);E(this,"fxBtnClick$",this._fxBtnClick$.asObservable());E(this,"_foldBtnStatus$",new O.Subject);E(this,"foldBtnStatus$",this._foldBtnStatus$.asObservable())}dispose(){this._position$.complete(),this._focus$.complete(),this._position=null,this._focus=!1}setPosition(r){this._position=r,this._refresh(r)}getPosition(){return this._position}setFocus(r=!1){this._focus=r,this._focus$.next(r)}handleFxBtnClick(r){this._fxBtnClick$.next(r)}handleFoldBtnClick(r){this._foldBtnStatus$.next(r)}_refresh(r){this._position$.next(r)}}const No=a.createIdentifier("univer.sheet-formula-editor-manager.service");function nS(n){const r=I.useDependency(a.ICommandService),e=I.useDependency(a.LocaleService),t=I.useDependency(K.IDefinedNamesService),o=I.useDependency(a.IUniverInstanceService),i=I.useDependency(I.ISidebarService),l=o.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId(),c=()=>{const S=t.getDefinedNameMap(l);return S?Array.from(Object.values(S)):[]},[d,u]=V.useState(c());V.useEffect(()=>{const S=t.update$.subscribe(()=>{u(c())});return()=>{S.unsubscribe()}},[]),V.useEffect(()=>{const S=i.sidebarOptions$.subscribe(f=>{f.id===ro&&(f.visible||setTimeout(()=>{i.sidebarOptions$.next({visible:!1})}))});return()=>{S.unsubscribe()}},[]);const h=()=>{r.executeCommand(Xr.id,{value:"open"})},g=async S=>{const{formulaOrRefString:f,id:p}=S,v=t.getWorksheetByRef(l,f);if(!v)return;v.isSheetHidden()&&await r.executeCommand(m.SetWorksheetShowCommand.id,{unitId:l,subUnitId:v.getSheetId()}),t.focusRange(l,p)};return _.jsxs("div",{className:"univer-w-[300px]",children:[_.jsx("ul",{className:`
16
16
  univer-m-0 univer-max-h-[360px] univer-list-none univer-overflow-y-auto univer-p-0
17
17
  univer-scrollbar-thin univer-scrollbar-track-transparent univer-scrollbar-thumb-gray-300
18
18
  univer-scrollbar-w-[4px]
19
- `,children:c.map((S,f)=>_.jsx("li",{className:`
19
+ `,children:d.map((S,f)=>_.jsx("li",{className:`
20
20
  univer-cursor-pointer univer-px-2 univer-transition-colors univer-duration-200
21
21
  dark:hover:univer-bg-gray-600
22
22
  hover:univer-bg-gray-100
@@ -33,32 +33,32 @@
33
33
  univer-cursor-pointer univer-p-2 univer-transition-colors univer-duration-200
34
34
  dark:hover:univer-bg-gray-600
35
35
  hover:univer-bg-gray-100
36
- `,onClick:h,children:[_.jsx("div",{className:"univer-mb-2 univer-text-sm univer-font-semibold univer-text-gray-600",children:e.t("definedName.managerTitle")}),_.jsx("div",{className:"univer-text-xs univer-text-gray-400",children:e.t("definedName.managerDescription")})]})]})}function $g({disable:n}){const[r,e]=V.useState(""),t=I.useDependency(G.IDefinedNamesService);V.useEffect(()=>{const i=t.currentRange$.subscribe(()=>{e(t.getCurrentRangeForString())});return()=>{i.unsubscribe()}},[]);function o(){}return _.jsxs("div",{className:we.definedName,children:[_.jsx("input",{className:pe(`
36
+ `,onClick:h,children:[_.jsx("div",{className:"univer-mb-2 univer-text-sm univer-font-semibold univer-text-gray-600",children:e.t("definedName.managerTitle")}),_.jsx("div",{className:"univer-text-xs univer-text-gray-400",children:e.t("definedName.managerDescription")})]})]})}function oS({disable:n}){const[r,e]=V.useState(""),t=I.useDependency(K.IDefinedNamesService);V.useEffect(()=>{const i=t.currentRange$.subscribe(()=>{e(t.getCurrentRangeForString())});return()=>{i.unsubscribe()}},[]);function o(){}return _.jsxs("div",{className:we.definedName,children:[_.jsx("input",{className:Te(`
37
37
  univer-absolute univer-box-border univer-h-full univer-w-full univer-appearance-none
38
38
  univer-border-none univer-px-1.5
39
39
  focus:univer-outline-none
40
- `,{[we.defineNameInputDisable]:n}),type:"text",value:r,onChange:o}),_.jsxs(K.DropdownProvider,{children:[_.jsx(K.DropdownTrigger,{children:_.jsx("a",{className:pe(`
40
+ `,{[we.defineNameInputDisable]:n}),type:"text",value:r,onChange:o}),_.jsxs(Z.DropdownProvider,{children:[_.jsx(Z.DropdownTrigger,{children:_.jsx("a",{className:Te(`
41
41
  univer-absolute univer-right-0 univer-flex univer-h-full univer-cursor-pointer
42
42
  univer-items-center univer-justify-center univer-px-1 univer-transition-colors
43
43
  univer-duration-200
44
44
  hover:univer-bg-gray-100
45
- `,{"univer-cursor-not-allowed univer-text-gray-300 hover:univer-bg-transparent":n}),children:_.jsx(Pn,{})})}),_.jsx(K.DropdownOverlay,{className:"univer-z-[1001]",offset:{x:-75,y:2},children:_.jsx(Jg,{})})]})]})}const eS="univer-formula-box",tS="univer-name-ranges",nS="univer-formula-bar",oS="univer-formula-icon",rS="univer-formula-icon-disable",iS="univer-formula-icon-wrapper",sS="univer-icon-container",aS="univer-icon-container-success",lS="univer-formula-active",cS="univer-icon-container-error",dS="univer-icon-container-fx",uS="univer-formula-input",hS="univer-formula-container",mS="univer-formula-content",gS="univer-arrow-container",SS="univer-arrow-container-disable",be={formulaBox:eS,nameRanges:tS,formulaBar:nS,formulaIcon:oS,formulaIconDisable:rS,formulaIconWrapper:iS,iconContainer:sS,iconContainerSuccess:aS,formulaActive:lS,iconContainerError:cS,iconContainerFx:dS,formulaInput:uS,formulaContainer:hS,formulaContent:mS,arrowContainer:gS,arrowContainerDisable:SS};function fS(){var Q,ie;const[n,r]=V.useState(be.formulaGrey),[e,t]=V.useState(0),o=I.useDependency(No),i=I.useDependency(Se),s=I.useDependency(m.WorksheetProtectionRuleModel),l=I.useDependency(m.RangeProtectionRuleModel),d=I.useDependency(a.IUniverInstanceService),c=I.useDependency(m.SheetsSelectionsService),u=I.useDependency(a.IPermissionService),h=I.useDependency(m.RangeProtectionCache),g=I.useDependency(a.ICommandService),[S,f]=V.useState({editDisable:!1,viewDisable:!1}),[p,v]=V.useState(!1),C=mt(),b=I.useDependency(I.ComponentManager),R=I.useObservable(()=>d.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),void 0,void 0,[]),T=V.useRef(0),M=i.getEditLocation(),y=ec(T,(Q=M==null?void 0:M.unitId)!=null?Q:""),P=b.get(wr),x=I.useComponentsOfPart(gs.FORMULA_AUX),A=I.useDependency(a.IContextService);I.useObservable(V.useMemo(()=>A.subscribeContextValue$(a.FOCUSING_FX_BAR_EDITOR),[A]));const k=A.getContextValue(a.FOCUSING_FX_BAR_EDITOR),N=V.useRef(null),D=I.useDependency(J.IEditorService);V.useLayoutEffect(()=>{const $=R.activeSheet$.pipe(O.switchMap(j=>j?O.merge(s.ruleChange$,l.ruleChange$,c.selectionMoveEnd$,c.selectionSet$).pipe(O.switchMap(()=>{var me,ce;const Y=R.getUnitId(),q=j.getSheetId();if(!((me=c.getCurrentLastSelection())==null?void 0:me.range))return O.EMPTY;const de=(ce=c.getCurrentLastSelection())==null?void 0:ce.primary;return de?O.of({unitId:Y,subUnitId:q,primary:de}):O.of(null)})):O.EMPTY)).subscribe(j=>{var Y,q,ee,de,me,ce;if(j){const{unitId:re,subUnitId:se,primary:Ie}=j;if(s.getRule(re,se)){const Do=!((q=(Y=u.getPermissionPoint(new m.WorksheetEditPermission(re,se).id))==null?void 0:Y.value)==null||q),md=!((de=(ee=u.getPermissionPoint(new m.WorksheetViewPermission(re,se).id))==null?void 0:ee.value)==null||de);f({viewDisable:md,editDisable:Do});return}const{actualRow:Te,actualColumn:Mt}=Ie,tt=h.getCellInfo(re,se,Te,Mt);f({editDisable:!((me=tt==null?void 0:tt[m.UnitAction.Edit])==null||me),viewDisable:!((ce=tt==null?void 0:tt[m.UnitAction.View])==null||ce)})}else f({viewDisable:!1,editDisable:!1})});return()=>{$.unsubscribe()}},[R]),V.useEffect(()=>{const $=i.visible$.subscribe(j=>{r(j.visible?be.formulaActive:be.formulaGrey)});return()=>$.unsubscribe()},[i.visible$]),V.useEffect(()=>{const $=i.currentEditCellState$.subscribe(j=>{var Y,q,ee;(ee=(q=(Y=j==null?void 0:j.documentLayoutObject.documentModel)==null?void 0:Y.getBody())==null?void 0:q.customBlocks)!=null&&ee.length?v(!0):v(!1)});return()=>$.unsubscribe()},[i.currentEditCellState$]),V.useEffect(()=>{if(N.current){const $=()=>{const Y=N.current.getBoundingClientRect();o.setPosition(Y)};$();const j=new ResizeObserver($);return j.observe(N.current),()=>j.disconnect()}},[o]);function W(){t(e===0?1:0),setTimeout(()=>{o.handleFoldBtnClick(e===1)},150)}function H(){var j;i.isVisible().visible&&g.executeCommand(Ce.id,{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:I.KeyCode.ESC,unitId:(j=C==null?void 0:C.getUnitId())!=null?j:""})}function U(){var j;i.isVisible().visible&&g.executeCommand(Ce.id,{visible:!1,eventType:w.DeviceInputEventType.PointerDown,unitId:(j=C==null?void 0:C.getUnitId())!=null?j:""})}function B(){o.handleFxBtnClick(!0)}const{viewDisable:F,editDisable:L}=S,z=L||p,X=V.useRef(!1);(ie=C==null?void 0:C.getUnitId())!=null;const Z=()=>{try{i.isVisible().visible===!1&&g.syncExecuteCommand(Ce.id,{visible:!0,eventType:w.DeviceInputEventType.PointerDown,unitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY}),A.setContextValue(a.FOCUSING_FX_BAR_EDITOR,!0)}catch($){throw X.current=!0,$}},oe=$=>{X.current&&setTimeout(()=>{D.blur(!0)},30),X.current=!1};return _.jsxs("div",{className:be.formulaBox,style:{height:e===0?"28px":"82px",pointerEvents:L?"none":"auto"},children:[_.jsx("div",{className:be.nameRanges,children:_.jsx($g,{disable:L})}),_.jsxs("div",{className:be.formulaBar,children:[_.jsx("div",{className:pe(be.formulaIcon,{[be.formulaIconDisable]:z}),children:_.jsxs("div",{className:be.formulaIconWrapper,children:[_.jsx("span",{className:pe(be.iconContainer,be.iconContainerError,n),onClick:H,children:_.jsx(Al,{})}),_.jsx("span",{className:pe(be.iconContainer,be.iconContainerSuccess,n),onClick:U,children:_.jsx(ht,{})}),_.jsx("span",{className:pe(be.iconContainer,be.iconContainerFx),onClick:B,children:_.jsx(Dl,{})})]})}),_.jsxs("div",{className:be.formulaContainer,children:[_.jsx("div",{className:be.formulaInput,onPointerDown:Z,onPointerUp:oe,ref:N,children:P&&_.jsx(P,{disableSelectionOnClick:!0,editorId:a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,initValue:"",onChange:()=>{},isFocus:k,className:be.formulaContent,unitId:M==null?void 0:M.unitId,subUnitId:M==null?void 0:M.sheetId,isSupportAcrossSheet:!0,resetSelectionOnBlur:!1,isSingle:!1,keyboradEventConfig:y,onFormulaSelectingChange:$=>{T.current=$,$?i.enableForceKeepVisible():i.disableForceKeepVisible()},autoScrollbar:!1,disableContextMenu:!1})}),_.jsx("div",{className:pe(be.arrowContainer,{[be.arrowContainerDisable]:L}),onClick:W,children:e===0?_.jsx(Gi,{}):_.jsx(Gi,{style:{transform:"rotateZ(180deg)"}})})]})]}),_.jsx(I.ComponentContainer,{components:x},"formula-aux")]})}const pS="univer-operate-container",vS="univer-auto-fill-popup-menu",CS="univer-auto-fill-popup-menu-item",IS="univer-auto-fill-popup-menu-item-icon",_S="univer-auto-fill-popup-menu-item-title",bS="univer-btn-container",RS="univer-btn-container-expand",Ht={operateContainer:pS,autoFillPopupMenu:vS,autoFillPopupMenuItem:CS,autoFillPopupMenuItemIcon:IS,autoFillPopupMenuItemTitle:_S,btnContainer:bS,btnContainerExpand:RS},ES=()=>{const[,n]=V.useState({});return V.useCallback(()=>n(r=>!r),[])},TS=()=>{const n=I.useDependency(a.ICommandService),r=I.useDependency(a.IUniverInstanceService),e=I.useDependency(w.IRenderManagerService),t=I.useDependency(Tt),o=I.useDependency(a.LocaleService),[i,s]=V.useState([]),[l,d]=V.useState(!1),[c,u]=V.useState({row:-1,col:-1}),[h,g]=V.useState(ae.SERIES),[S,f]=V.useState(!1),p=mt(),{sheetSkeletonManagerService:v,selectionRenderService:C}=V.useMemo(()=>{if(p){const X=e.getRenderById(p.getUnitId());return{sheetSkeletonManagerService:X==null?void 0:X.with(exports.SheetSkeletonManagerService),selectionRenderService:X==null?void 0:X.with(ve)}}return{sheetSkeletonManagerService:null,selectionRenderService:null}},[p,e]),b=()=>{f(!0)},R=()=>{f(!1)},T=ES();if(V.useEffect(()=>n.onCommandExecuted((Z,oe)=>{Z.id===je.id&&T()}).dispose,[T,n]),V.useEffect(()=>{const X=v&&a.toDisposable(v.currentSkeleton$.subscribe(Z=>{Z&&T()}));return X==null?void 0:X.dispose},[v,T]),V.useEffect(()=>a.toDisposable(t.menu$.subscribe(Z=>{s(Z.map(oe=>({...oe,index:Z.indexOf(oe)})))})).dispose,[t]),V.useEffect(()=>a.toDisposable(t.showMenu$.subscribe(Z=>{const{source:oe,target:Q}=t.autoFillLocation||{source:null,target:null};if(Z&&oe&&Q){const ie=Math.max(oe.rows[oe.rows.length-1],Q.rows[Q.rows.length-1]),$=Math.max(oe.cols[oe.cols.length-1],Q.cols[Q.cols.length-1]);u({row:ie,col:$})}else u({row:-1,col:-1})})).dispose,[t]),V.useEffect(()=>a.toDisposable(t.applyType$.subscribe(Z=>{g(Z)})).dispose,[t]),V.useEffect(()=>{function X(){d(!1)}return document.addEventListener("wheel",X),()=>{document.removeEventListener("wheel",X)}},[l]),c.col<0||c.row<0)return null;const M=Ge(r,e);if(!M||!C)return null;const{scene:y}=M,P=v==null?void 0:v.getCurrentSkeleton(),x=C.getViewPort(),A=y==null?void 0:y.scaleX,k=y==null?void 0:y.scaleY,N=y==null?void 0:y.getViewportScrollXY(x);if(!A||!y||!A||!k||!N)return null;const D=(P==null?void 0:P.getNoMergeCellWithCoordByIndex(c.row,c.col).endX)||0,W=(P==null?void 0:P.getNoMergeCellWithCoordByIndex(c.row,c.col).endY)||0,H=w.convertTransformToOffsetX(D,A,N),U=w.convertTransformToOffsetY(W,k,N);if(H==null||U==null)return null;const B=X=>{d(X)},F=X=>{n.executeCommand(uo.id,{type:X.value}),d(!1)},L=l||S,z=i.filter(X=>!X.disable);return _.jsx("div",{onMouseEnter:b,onMouseLeave:R,style:{left:`${H+2}px`,top:`${U+2}px`,position:"absolute"},children:_.jsx(K.DropdownLegacy,{placement:"bottomLeft",trigger:["click"],overlay:_.jsx("ul",{className:Ht.autoFillPopupMenu,children:z.map(X=>_.jsxs("li",{onClick:()=>F(X),className:Ht.autoFillPopupMenuItem,children:[_.jsx("span",{className:Ht.autoFillPopupMenuItemIcon,children:X.value===h&&_.jsx(ht,{style:{color:"rgb(var(--green-700, #409f11))"}})}),_.jsx("span",{className:Ht.autoFillPopupMenuItemTitle,children:o.t(X.label)})]},X.index))}),visible:l,onVisibleChange:B,children:_.jsxs("div",{className:pe(Ht.btnContainer,{[Ht.btnContainerExpand]:l}),children:[_.jsx(xl,{style:{color:"#35322B"},extend:{colorChannel1:"rgb(var(--green-700, #409f11))"}}),L&&_.jsx(Pn,{style:{color:"#CCCCCC",fontSize:"8px",marginLeft:"8px"}})]})})})},wS=()=>_.jsx("div",{className:Ht.operateContainer,children:_.jsx(TS,{})}),yS="univer-sheet-bar",MS="univer-sheet-bar-options",PS="univer-sheet-bar-options-divider",Bo={sheetBar:yS,sheetBarOptions:MS,sheetBarOptionsDivider:PS},OS="univer-sheet-bar-btn",xS={sheetBarBtn:OS};function Ko(n){const{children:r,className:e,style:t,disabled:o=!1,onClick:i,...s}=n,l=d=>{if(o){d.preventDefault();return}i&&i(d)};return _.jsx("button",{className:xS.sheetBarBtn,style:t,disabled:o,onClick:l,...s,children:r})}const AS="univer-sheet-bar-menu",kS="univer-sheet-bar-menu-item",NS="univer-sheet-bar-menu-item-icon",DS="univer-sheet-bar-menu-item-hide",HS="univer-sheet-bar-menu-item-select",VS="univer-sheet-bar-menu-item-label",gt={sheetBarMenu:AS,sheetBarMenuItem:kS,sheetBarMenuItemIcon:NS,sheetBarMenuItemHide:DS,sheetBarMenuItemSelect:HS,sheetBarMenuItemLabel:VS};function WS(n){const{style:r}=n,[e,t]=V.useState([]),[o,i]=V.useState(!1),s=I.useDependency(a.IUniverInstanceService),l=I.useDependency(a.ICommandService),d=I.useDependency(on),c=I.useDependency(m.WorksheetProtectionRuleModel),u=I.useObservable(()=>s.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),null,!1,[]),h=v=>{const{sheetId:C}=v;!C||!u||(v.hidden?l.executeCommand(m.SetWorksheetShowCommand.id,{unitId:u.getUnitId(),subUnitId:C,value:C}):v.selected||l.executeCommand(m.SetWorksheetActivateCommand.id,{unitId:u.getUnitId(),subUnitId:C}),i(!1))},g=V.useCallback(()=>{if(!u)return;const v=u.getSheets(),C=u.getActiveSheet(),b=v.map((R,T)=>({label:R.getName(),index:`${T}`,sheetId:R.getSheetId(),hidden:R.isSheetHidden()===a.BooleanNumber.TRUE,selected:C===R}));t(b)},[u,c]),S=V.useCallback(()=>l.onCommandExecuted(v=>{switch(v.id){case m.SetWorksheetHideMutation.id:case m.RemoveSheetMutation.id:case m.SetWorksheetNameMutation.id:case m.InsertSheetMutation.id:case m.SetWorksheetOrderMutation.id:case m.SetWorksheetActiveOperation.id:g();break}}),[l,g]);function f(){i(!0)}const p=v=>{i(v)};return V.useEffect(()=>{g();const v=new a.DisposableCollection;return v.add(S()),v.add(d.registerSheetBarMenuHandler({handleSheetBarMenu:f})),()=>v.dispose()},[S,d,g,u]),_.jsx(K.DropdownLegacy,{placement:"topLeft",trigger:["click"],overlay:_.jsx("ul",{className:gt.sheetBarMenu,style:{...r},children:e.map(v=>_.jsxs("li",{onClick:()=>h(v),className:v.selected?`
46
- ${gt.sheetBarMenuItem}
47
- ${gt.sheetBarMenuItemSelect}
45
+ `,{"univer-cursor-not-allowed univer-text-gray-300 hover:univer-bg-transparent":n}),children:_.jsx(Pn,{})})}),_.jsx(Z.DropdownOverlay,{className:"univer-z-[1001]",offset:{x:-75,y:2},children:_.jsx(nS,{})})]})]})}const rS="univer-formula-box",iS="univer-name-ranges",sS="univer-formula-bar",aS="univer-formula-icon",lS="univer-formula-icon-disable",cS="univer-formula-icon-wrapper",dS="univer-icon-container",uS="univer-icon-container-success",hS="univer-formula-active",mS="univer-icon-container-error",gS="univer-icon-container-fx",SS="univer-formula-input",fS="univer-formula-container",pS="univer-formula-content",vS="univer-arrow-container",CS="univer-arrow-container-disable",be={formulaBox:rS,nameRanges:iS,formulaBar:sS,formulaIcon:aS,formulaIconDisable:lS,formulaIconWrapper:cS,iconContainer:dS,iconContainerSuccess:uS,formulaActive:hS,iconContainerError:mS,iconContainerFx:gS,formulaInput:SS,formulaContainer:fS,formulaContent:pS,arrowContainer:vS,arrowContainerDisable:CS};function rc(n){var se,X;const{className:r}=n,[e,t]=V.useState(be.formulaGrey),[o,i]=V.useState(0),s=I.useDependency(No),l=I.useDependency(Se),c=I.useDependency(m.WorksheetProtectionRuleModel),d=I.useDependency(m.RangeProtectionRuleModel),u=I.useDependency(a.IUniverInstanceService),h=I.useDependency(m.SheetsSelectionsService),g=I.useDependency(a.IPermissionService),S=I.useDependency(m.RangeProtectionCache),f=I.useDependency(a.ICommandService),[p,v]=V.useState({editDisable:!1,viewDisable:!1}),[C,b]=V.useState(!1),R=ht(),T=I.useDependency(I.ComponentManager),M=I.useObservable(()=>u.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),void 0,void 0,[]),y=V.useRef(0),P=l.getEditLocation(),x=oc(y,(se=P==null?void 0:P.unitId)!=null?se:""),A=T.get(Or),k=I.useComponentsOfPart(fs.FORMULA_AUX),N=I.useDependency(a.IContextService);I.useObservable(V.useMemo(()=>N.subscribeContextValue$(a.FOCUSING_FX_BAR_EDITOR),[N]));const D=N.getContextValue(a.FOCUSING_FX_BAR_EDITOR),W=V.useRef(null),H=I.useDependency($.IEditorService);V.useLayoutEffect(()=>{const Y=M.activeSheet$.pipe(O.switchMap(G=>G?O.merge(c.ruleChange$,d.ruleChange$,h.selectionMoveEnd$,h.selectionSet$).pipe(O.switchMap(()=>{var oe,ie;const J=M.getUnitId(),ae=G.getSheetId();if(!((oe=h.getCurrentLastSelection())==null?void 0:oe.range))return O.EMPTY;const de=(ie=h.getCurrentLastSelection())==null?void 0:ie.primary;return de?O.of({unitId:J,subUnitId:ae,primary:de}):O.of(null)})):O.EMPTY)).subscribe(G=>{var J,ae,ue,de,oe,ie;if(G){const{unitId:fe,subUnitId:Ie,primary:yt}=G;if(c.getRule(fe,Ie)){const fd=!((ae=(J=g.getPermissionPoint(new m.WorksheetEditPermission(fe,Ie).id))==null?void 0:J.value)==null||ae),pd=!((de=(ue=g.getPermissionPoint(new m.WorksheetViewPermission(fe,Ie).id))==null?void 0:ue.value)==null||de);v({viewDisable:pd,editDisable:fd});return}const{actualRow:Ho,actualColumn:Vo}=yt,on=S.getCellInfo(fe,Ie,Ho,Vo);v({editDisable:!((oe=on==null?void 0:on[m.UnitAction.Edit])==null||oe),viewDisable:!((ie=on==null?void 0:on[m.UnitAction.View])==null||ie)})}else v({viewDisable:!1,editDisable:!1})});return()=>{Y.unsubscribe()}},[M]),V.useEffect(()=>{const Y=l.visible$.subscribe(G=>{t(G.visible?be.formulaActive:be.formulaGrey)});return()=>Y.unsubscribe()},[l.visible$]),V.useEffect(()=>{const Y=l.currentEditCellState$.subscribe(G=>{var J,ae,ue;(ue=(ae=(J=G==null?void 0:G.documentLayoutObject.documentModel)==null?void 0:J.getBody())==null?void 0:ae.customBlocks)!=null&&ue.length?b(!0):b(!1)});return()=>Y.unsubscribe()},[l.currentEditCellState$]),V.useEffect(()=>{if(W.current){const Y=()=>{const J=W.current.getBoundingClientRect();s.setPosition(J)};Y();const G=new ResizeObserver(Y);return G.observe(W.current),()=>G.disconnect()}},[s]);function U(){i(o===0?1:0),setTimeout(()=>{s.handleFoldBtnClick(o===1)},150)}function B(){var G;l.isVisible().visible&&f.executeCommand(Ce.id,{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:I.KeyCode.ESC,unitId:(G=R==null?void 0:R.getUnitId())!=null?G:""})}function F(){var G;l.isVisible().visible&&f.executeCommand(Ce.id,{visible:!1,eventType:w.DeviceInputEventType.PointerDown,unitId:(G=R==null?void 0:R.getUnitId())!=null?G:""})}function L(){s.handleFxBtnClick(!0)}const{viewDisable:j,editDisable:z}=p,q=z||C,te=V.useRef(!1);(X=R==null?void 0:R.getUnitId())!=null;const Q=()=>{try{l.isVisible().visible===!1&&f.syncExecuteCommand(Ce.id,{visible:!0,eventType:w.DeviceInputEventType.PointerDown,unitId:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY}),N.setContextValue(a.FOCUSING_FX_BAR_EDITOR,!0)}catch(Y){throw te.current=!0,Y}},re=Y=>{te.current&&setTimeout(()=>{H.blur(!0)},30),te.current=!1};return _.jsxs("div",{className:Z.clsx(be.formulaBox,r),style:{height:o===0?"28px":"82px",pointerEvents:z?"none":"auto"},children:[_.jsx("div",{className:be.nameRanges,children:_.jsx(oS,{disable:z})}),_.jsxs("div",{className:be.formulaBar,children:[_.jsx("div",{className:Z.clsx(be.formulaIcon,{[be.formulaIconDisable]:q}),children:_.jsxs("div",{className:be.formulaIconWrapper,children:[_.jsx("span",{className:Z.clsx(be.iconContainer,be.iconContainerError,e),onClick:B,children:_.jsx(Dl,{})}),_.jsx("span",{className:Z.clsx(be.iconContainer,be.iconContainerSuccess,e),onClick:F,children:_.jsx(ut,{})}),_.jsx("span",{className:Z.clsx(be.iconContainer,be.iconContainerFx),onClick:L,children:_.jsx(Wl,{})})]})}),_.jsxs("div",{className:be.formulaContainer,children:[_.jsx("div",{className:be.formulaInput,onPointerDown:Q,onPointerUp:re,ref:W,children:A&&_.jsx(A,{disableSelectionOnClick:!0,editorId:a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,initValue:"",onChange:()=>{},isFocus:D,className:be.formulaContent,unitId:P==null?void 0:P.unitId,subUnitId:P==null?void 0:P.sheetId,isSupportAcrossSheet:!0,resetSelectionOnBlur:!1,isSingle:!1,keyboradEventConfig:x,onFormulaSelectingChange:Y=>{y.current=Y,Y?l.enableForceKeepVisible():l.disableForceKeepVisible()},autoScrollbar:!1,disableContextMenu:!1})}),_.jsx("div",{className:Z.clsx(be.arrowContainer,{[be.arrowContainerDisable]:z}),onClick:U,children:o===0?_.jsx(Ki,{}):_.jsx(Ki,{style:{transform:"rotateZ(180deg)"}})})]})]}),_.jsx(I.ComponentContainer,{components:k},"formula-aux")]})}const IS="univer-operate-container",_S="univer-auto-fill-popup-menu",bS="univer-auto-fill-popup-menu-item",RS="univer-auto-fill-popup-menu-item-icon",ES="univer-auto-fill-popup-menu-item-title",TS="univer-btn-container",wS="univer-btn-container-expand",Dt={operateContainer:IS,autoFillPopupMenu:_S,autoFillPopupMenuItem:bS,autoFillPopupMenuItemIcon:RS,autoFillPopupMenuItemTitle:ES,btnContainer:TS,btnContainerExpand:wS},yS=()=>{const[,n]=V.useState({});return V.useCallback(()=>n(r=>!r),[])},MS=()=>{const n=I.useDependency(a.ICommandService),r=I.useDependency(a.IUniverInstanceService),e=I.useDependency(w.IRenderManagerService),t=I.useDependency(Et),o=I.useDependency(a.LocaleService),[i,s]=V.useState([]),[l,c]=V.useState(!1),[d,u]=V.useState({row:-1,col:-1}),[h,g]=V.useState(le.SERIES),[S,f]=V.useState(!1),p=ht(),{sheetSkeletonManagerService:v,selectionRenderService:C}=V.useMemo(()=>{if(p){const z=e.getRenderById(p.getUnitId());return{sheetSkeletonManagerService:z==null?void 0:z.with(exports.SheetSkeletonManagerService),selectionRenderService:z==null?void 0:z.with(ve)}}return{sheetSkeletonManagerService:null,selectionRenderService:null}},[p,e]),b=()=>{f(!0)},R=()=>{f(!1)},T=yS();if(V.useEffect(()=>n.onCommandExecuted((q,te)=>{q.id===je.id&&T()}).dispose,[T,n]),V.useEffect(()=>{const z=v&&a.toDisposable(v.currentSkeleton$.subscribe(q=>{q&&T()}));return z==null?void 0:z.dispose},[v,T]),V.useEffect(()=>a.toDisposable(t.menu$.subscribe(q=>{s(q.map(te=>({...te,index:q.indexOf(te)})))})).dispose,[t]),V.useEffect(()=>a.toDisposable(t.showMenu$.subscribe(q=>{const{source:te,target:Q}=t.autoFillLocation||{source:null,target:null};if(q&&te&&Q){const re=Math.max(te.rows[te.rows.length-1],Q.rows[Q.rows.length-1]),se=Math.max(te.cols[te.cols.length-1],Q.cols[Q.cols.length-1]);u({row:re,col:se})}else u({row:-1,col:-1})})).dispose,[t]),V.useEffect(()=>a.toDisposable(t.applyType$.subscribe(q=>{g(q)})).dispose,[t]),V.useEffect(()=>{function z(){c(!1)}return document.addEventListener("wheel",z),()=>{document.removeEventListener("wheel",z)}},[l]),d.col<0||d.row<0)return null;const M=Ge(r,e);if(!M||!C)return null;const{scene:y}=M,P=v==null?void 0:v.getCurrentSkeleton(),x=C.getViewPort(),A=y==null?void 0:y.scaleX,k=y==null?void 0:y.scaleY,N=y==null?void 0:y.getViewportScrollXY(x);if(!A||!y||!A||!k||!N)return null;const D=(P==null?void 0:P.getNoMergeCellWithCoordByIndex(d.row,d.col).endX)||0,W=(P==null?void 0:P.getNoMergeCellWithCoordByIndex(d.row,d.col).endY)||0,H=w.convertTransformToOffsetX(D,A,N),U=w.convertTransformToOffsetY(W,k,N);if(H==null||U==null)return null;const B=z=>{c(z)},F=z=>{n.executeCommand(uo.id,{type:z.value}),c(!1)},L=l||S,j=i.filter(z=>!z.disable);return _.jsx("div",{onMouseEnter:b,onMouseLeave:R,style:{left:`${H+2}px`,top:`${U+2}px`,position:"absolute"},children:_.jsx(Z.DropdownLegacy,{placement:"bottomLeft",trigger:["click"],overlay:_.jsx("ul",{className:Dt.autoFillPopupMenu,children:j.map(z=>_.jsxs("li",{onClick:()=>F(z),className:Dt.autoFillPopupMenuItem,children:[_.jsx("span",{className:Dt.autoFillPopupMenuItemIcon,children:z.value===h&&_.jsx(ut,{style:{color:"rgb(var(--green-700, #409f11))"}})}),_.jsx("span",{className:Dt.autoFillPopupMenuItemTitle,children:o.t(z.label)})]},z.index))}),visible:l,onVisibleChange:B,children:_.jsxs("div",{className:Te(Dt.btnContainer,{[Dt.btnContainerExpand]:l}),children:[_.jsx(Nl,{style:{color:"#35322B"},extend:{colorChannel1:"rgb(var(--green-700, #409f11))"}}),L&&_.jsx(Pn,{style:{color:"#CCCCCC",fontSize:"8px",marginLeft:"8px"}})]})})})},PS=()=>_.jsx("div",{className:Dt.operateContainer,children:_.jsx(MS,{})}),OS="univer-sheet-bar",xS="univer-sheet-bar-options",AS="univer-sheet-bar-options-divider",jo={sheetBar:OS,sheetBarOptions:xS,sheetBarOptionsDivider:AS},kS="univer-sheet-bar-btn",NS={sheetBarBtn:kS};function Qo(n){const{children:r,className:e,style:t,disabled:o=!1,onClick:i,...s}=n,l=c=>{if(o){c.preventDefault();return}i&&i(c)};return _.jsx("button",{className:NS.sheetBarBtn,style:t,disabled:o,onClick:l,...s,children:r})}const DS="univer-sheet-bar-menu",HS="univer-sheet-bar-menu-item",VS="univer-sheet-bar-menu-item-icon",WS="univer-sheet-bar-menu-item-hide",US="univer-sheet-bar-menu-item-select",LS="univer-sheet-bar-menu-item-label",mt={sheetBarMenu:DS,sheetBarMenuItem:HS,sheetBarMenuItemIcon:VS,sheetBarMenuItemHide:WS,sheetBarMenuItemSelect:US,sheetBarMenuItemLabel:LS};function BS(n){const{style:r}=n,[e,t]=V.useState([]),[o,i]=V.useState(!1),s=I.useDependency(a.IUniverInstanceService),l=I.useDependency(a.ICommandService),c=I.useDependency(nn),d=I.useDependency(m.WorksheetProtectionRuleModel),u=I.useObservable(()=>s.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),null,!1,[]),h=v=>{const{sheetId:C}=v;!C||!u||(v.hidden?l.executeCommand(m.SetWorksheetShowCommand.id,{unitId:u.getUnitId(),subUnitId:C,value:C}):v.selected||l.executeCommand(m.SetWorksheetActivateCommand.id,{unitId:u.getUnitId(),subUnitId:C}),i(!1))},g=V.useCallback(()=>{if(!u)return;const v=u.getSheets(),C=u.getActiveSheet(),b=v.map((R,T)=>({label:R.getName(),index:`${T}`,sheetId:R.getSheetId(),hidden:R.isSheetHidden()===a.BooleanNumber.TRUE,selected:C===R}));t(b)},[u,d]),S=V.useCallback(()=>l.onCommandExecuted(v=>{switch(v.id){case m.SetWorksheetHideMutation.id:case m.RemoveSheetMutation.id:case m.SetWorksheetNameMutation.id:case m.InsertSheetMutation.id:case m.SetWorksheetOrderMutation.id:case m.SetWorksheetActiveOperation.id:g();break}}),[l,g]);function f(){i(!0)}const p=v=>{i(v)};return V.useEffect(()=>{g();const v=new a.DisposableCollection;return v.add(S()),v.add(c.registerSheetBarMenuHandler({handleSheetBarMenu:f})),()=>v.dispose()},[S,c,g,u]),_.jsx(Z.DropdownLegacy,{placement:"topLeft",trigger:["click"],overlay:_.jsx("ul",{className:mt.sheetBarMenu,style:{...r},children:e.map(v=>_.jsxs("li",{onClick:()=>h(v),className:v.selected?`
46
+ ${mt.sheetBarMenuItem}
47
+ ${mt.sheetBarMenuItemSelect}
48
48
  `:v.hidden?`
49
- ${gt.sheetBarMenuItem}
50
- ${gt.sheetBarMenuItemHide}
51
- `:gt.sheetBarMenuItem,children:[_.jsx("span",{className:gt.sheetBarMenuItemIcon,children:v.selected?_.jsx(ht,{}):v.hidden?_.jsx(Nl,{}):_.jsx(ht,{})}),_.jsx("div",{className:gt.sheetBarMenuItemLabel,children:v.label})]},v.index))}),visible:o,onVisibleChange:p,children:_.jsx("div",{children:_.jsx(Ko,{children:_.jsx(kl,{})})})})}const US="univer-slide-tab-bar-container",LS="univer-slide-tab-bar",BS="univer-slide-tab-item",FS="univer-slide-tab-active",jS="univer-slide-tab-div",zS="univer-slide-tab-div-edit",XS="univer-slide-tab-item-dropdown",He={slideTabBarContainer:US,slideTabBar:LS,slideTabItem:BS,slideTabActive:FS,slideTabDiv:jS,slideTabDivEdit:zS,slideTabItemDropdown:XS};function YS(n){const{sheetId:r,label:e,color:t,selected:o}=n,[i,s]=V.useState(o),l=I.useDependency(a.ThemeService);V.useEffect(()=>{s(o)},[o]);const d=c=>{const u=l.getCurrentTheme(),h=u.textColor,g=u.colorWhite;return new a.ColorKit(c).isDark()?g:h};return _.jsx("div",{"data-id":r,className:i?`
49
+ ${mt.sheetBarMenuItem}
50
+ ${mt.sheetBarMenuItemHide}
51
+ `:mt.sheetBarMenuItem,children:[_.jsx("span",{className:mt.sheetBarMenuItemIcon,children:v.selected?_.jsx(ut,{}):v.hidden?_.jsx(Vl,{}):_.jsx(ut,{})}),_.jsx("div",{className:mt.sheetBarMenuItemLabel,children:v.label})]},v.index))}),visible:o,onVisibleChange:p,children:_.jsx("div",{children:_.jsx(Qo,{children:_.jsx(Hl,{})})})})}const FS="univer-slide-tab-bar-container",jS="univer-slide-tab-bar",zS="univer-slide-tab-item",XS="univer-slide-tab-active",YS="univer-slide-tab-div",GS="univer-slide-tab-div-edit",ZS="univer-slide-tab-item-dropdown",He={slideTabBarContainer:FS,slideTabBar:jS,slideTabItem:zS,slideTabActive:XS,slideTabDiv:YS,slideTabDivEdit:GS,slideTabItemDropdown:ZS};function KS(n){const{sheetId:r,label:e,color:t,selected:o}=n,[i,s]=V.useState(o),l=I.useDependency(a.ThemeService);V.useEffect(()=>{s(o)},[o]);const c=d=>{const u=l.getCurrentTheme(),h=u.textColor,g=u.colorWhite;return new a.ColorKit(d).isDark()?g:h};return _.jsx("div",{"data-id":r,className:i?`
52
52
  ${He.slideTabActive}
53
53
  ${He.slideTabItem}
54
- `:He.slideTabItem,style:{backgroundColor:!i&&t?t:"",color:!i&&t?d(t):"",boxShadow:i&&t?`0px 0px 8px rgba(0, 0, 0, 0.08), inset 0px -2px 0px 0px ${t}`:""},children:_.jsx("div",{className:He.slideTabDiv,children:e})},r)}const GS={easeOutStrong(n,r,e,t){return-e*((n=n/t-1)*n*n*n-1)+r},backOut(n,r,e,t,o){return typeof o>"u"&&(o=.7),e*((n=n/t-1)*n*((o+1)*n+o)+1)+r}},ZS={loop:!1,begin:0,end:0,duration:300,delay:0,type:"easeOutStrong",receive(n){},success(n){},cancel(n){},complete(n){}};class KS{constructor(r){E(this,"_config");E(this,"_status",0);E(this,"_start",0);E(this,"_handle",0);E(this,"_delayHandle",null);this._config={...ZS,...r},this._config.loop&&(this._config.complete=()=>{},this._config.success=()=>{this.request()})}static success(...r){let e=0;return new Promise(t=>{for(let o=0;o<r.length;o++){const i=r[o],s=i._config,l=s.success;s.loop||(s.success=c=>{e++,l&&l.call(i,c),e===r.length&&t()})}})}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 r=Date.now()-this._start;r=r>=this._config.duration?this._config.duration:r;const t=GS[this._config.type](r,this._config.begin,this._config.end-this._config.begin,this._config.duration,.7).toFixed(2);if(this._config.receive(t),this._status===1){this._config.cancel(t),this._config.complete(t);return}if(r===this._config.duration){this._config.success(t),this._config.complete(t);return}this._handle=requestAnimationFrame(()=>{this._fakeHandle()})}}class Ft{constructor(r,e){E(this,"_slideTabItem");E(this,"_animate");E(this,"_midline",0);E(this,"_translateX");E(this,"_scrollbar");E(this,"_slideTabBar");E(this,"_editMode");E(this,"_placeholder");this._slideTabItem=r,this._animate=null,this._translateX=0,this._editMode=!1,this._slideTabBar=e,this._placeholder=null,this._scrollbar=e.getScrollbar(),this.update()}static midline(r){return r.getBoundingRect().x+r.getBoundingRect().width/2}static leftLine(r){return r.getBoundingRect().x}static rightLine(r){return r.getBoundingRect().x+r.getBoundingRect().width}static make(r,e){const t=[];return r.forEach(o=>t.push(new Ft(o,e))),t}getSlideTabItem(){return this._slideTabItem}getEditor(){return this._slideTabItem.querySelector("span")}focus(){var r;(r=this.getEditor())==null||r.focus()}selectAll(){const r=this.getEditor();r&&In.keepSelectAll(r)}isEditMode(){return this._editMode}classList(){return this._slideTabItem.classList}translateX(r){return this._translateX=r,this._slideTabItem.style.transform=`translateX(${r}px)`,this.getTranslateXDirection()}setEditor(r){if(!this._slideTabBar.getConfig().onNameChangeCheck())return;let e=!0;if(this._editMode===!1){const t=this._slideTabItem.querySelector("span"),o=c=>{if(!this.nameCheck()){if(this._editMode=!1,t&&(t.removeAttribute("contentEditable"),t.removeEventListener("focusout",o),t.removeEventListener("compositionstart",s),t.removeEventListener("compositionend",l),t.removeEventListener("input",d),t.removeEventListener("keydown",i),t.classList.remove(this._slideTabBar.getConfig().slideTabBarSpanEditClassName)),this._slideTabBar.removeListener(),this._slideTabBar.updateItems(),this._slideTabBar.getConfig().onChangeName){const u=(t==null?void 0:t.innerText)||"",h=this.getId();this._slideTabBar.getConfig().onChangeName(h,u)}r&&r(c)}};let i=c=>{t&&(c.stopPropagation(),c.key==="Enter"&&t.blur())};const s=c=>{e=!1},l=c=>{e=!0},d=c=>{if(!t)return;const u=31;setTimeout(()=>{if(e){const h=t.innerText;h.length>u&&(t.innerText=h.substring(0,u),In.keepLastIndex(t))}},0)};t&&(t.setAttribute("contentEditable","true"),t.addEventListener("focusout",o),t.addEventListener("compositionstart",s),t.addEventListener("compositionend",l),t.addEventListener("input",d),t.addEventListener("keydown",i),t.classList.add(this._slideTabBar.getConfig().slideTabBarSpanEditClassName),this._editMode=!0,In.keepSelectAll(t))}}nameCheck(){const r=this._slideTabItem.querySelector("span");if(!r)return!1;const e=r.innerText;return this._slideTabBar.getConfig().onNameCheckAlert(e)}animate(){return{translateX:r=>{this._translateX!==r&&(this._animate&&(this._animate.cancel(),this._animate=null),this._animate=new KS({begin:this._translateX,end:r,receive:e=>{this._slideTabItem.style.transform=`translateX(${e}px)`}}),this._translateX=r,this._animate.request())},cancel:()=>{this._animate&&(this._animate.cancel(),this._animate=null)}}}after(r){this._slideTabItem.after(r._slideTabItem||r)}update(){this._midline=Ft.midline(this)}disableFixed(){if(this._placeholder){const r=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),r.removeChild(this._placeholder),this._placeholder=null}}enableFixed(){const r=document.createElement("div"),e=this.getBoundingRect(),t=getComputedStyle(this._slideTabItem),o=this._slideTabItem.querySelector("span");if(this._placeholder=r,this._placeholder.style.width=`${e.width}px`,this._placeholder.style.height=`${e.height}px`,this._placeholder.style.flexShrink="0",this._placeholder.style.margin=t.margin,this._slideTabItem.style.background=t.background,o){const i=getComputedStyle(o).padding;this._slideTabItem.style.padding=i}this._slideTabItem.style.boxSizing=t.boxSizing,this._slideTabItem.style.fontSize=t.fontSize,this._slideTabItem.style.fontFamily=t.fontFamily,this._slideTabItem.style.fontWeight=t.fontWeight,this._slideTabItem.style.color=t.color,this._slideTabItem.style.borderRadius=t.borderRadius,this._slideTabItem.style.left=`${e.x-this.getScrollbar().getScrollX()}px`,this._slideTabItem.style.top=`${e.y}px`,this._slideTabItem.style.width=`${e.width}px`,this._slideTabItem.style.height=`${e.height}px`,this._slideTabItem.style.position="fixed",this._slideTabItem.after(r),document.body.appendChild(this._slideTabItem)}addEventListener(r,e,t){this._slideTabItem.addEventListener(r,e,t)}removeEventListener(r,e,t){this._slideTabItem.removeEventListener(r,e,t)}getScrollbar(){return this._scrollbar}getMidLine(){return this._midline}getBoundingRect(){const r=this._slideTabItem.getBoundingClientRect();return r.x+=this._scrollbar.getScrollX(),r}getWidth(){return this.getBoundingRect().width}getTranslateXDirection(){const r=Ft.midline(this);return r>this._midline?1:r<this._midline?-1:0}equals(r){return r&&r._slideTabItem===this._slideTabItem}getId(){return this._slideTabItem.dataset.id||""}}class qS{constructor(r){E(this,"_slideTabBar");E(this,"_scrollX");const e=r.primeval();this._scrollX=e.scrollLeft,this._slideTabBar=r}scrollX(r){const e=this._slideTabBar.primeval();e.scrollLeft=r,this._scrollX=e.scrollLeft}scrollRight(){const r=this._slideTabBar.primeval();r.scrollLeft=r.scrollWidth,this._scrollX=r.scrollLeft}getScrollX(){return this._scrollX}}const gn=class gn{constructor(r){E(this,"_activeTabItemIndex",0);E(this,"_slideTabBar");E(this,"_slideTabItems",[]);E(this,"_config");E(this,"_downActionX",0);E(this,"_moveActionX",0);E(this,"_compareIndex",0);E(this,"_activeTabItem",null);E(this,"_moveAction");E(this,"_upAction");E(this,"_downAction");E(this,"_wheelAction");E(this,"_scrollIncremental",0);E(this,"_compareDirection",0);E(this,"_autoScrollTime",null);E(this,"_slideScrollbar");E(this,"_longPressTimer",null);E(this,"_leftBoundingLine",0);E(this,"_rightBoundingLine",0);E(this,"_leftMoveX",0);E(this,"_rightMoveX",0);var s;if(r.slideTabBarContainer==null)throw new Error("not found slide-tab-bar root element");const e=r.slideTabBarContainer.querySelector(`.${(s=r.slideTabBarClassName)!=null?s:"slide-tab-bar"}`);if(e==null)throw new Error("not found slide-tab-bar");this._slideTabBar=e,this._slideScrollbar=new qS(this),this._config=r,this._initConfig();let t=0,o=0,i=0;this._downAction=l=>{var y,P,x,A,k,N;if((y=this._activeTabItem)!=null&&y.isEditMode())return;this._longPressTimer&&(clearTimeout(this._longPressTimer),this._longPressTimer=null);const d=(x=(P=l.target)==null?void 0:P.closest(`.${r.slideTabBarItemClassName}`))==null?void 0:x.getAttribute("data-id"),c=this._slideTabItems.findIndex(D=>D.getId()===d);if(d==null||c===-1)return;if(this._activeTabItemIndex!==c){(A=this._activeTabItem)==null||A.removeEventListener("pointermove",this._moveAction),(k=this._activeTabItem)==null||k.removeEventListener("pointerup",this._upAction),this.removeListener(),this._config.onChangeTab(l,d);return}if(this._compareIndex=c,this._downActionX=l.pageX,this._moveActionX=0,this._scrollIncremental=0,this._activeTabItem=this._slideTabItems[c],!this._activeTabItem){console.error("Not found active slide-tab-item in sheet bar");return}const u=this._activeTabItem.getSlideTabItem();u==null||u.setPointerCapture(l.pointerId),(N=this._activeTabItem)==null||N.addEventListener("pointerup",this._upAction);const{x:h,width:g}=this._activeTabItem.getBoundingRect(),{x:S,width:f}=this.getBoundingRect(),p=this._slideScrollbar.getScrollX();if(this._leftBoundingLine=this._downActionX-(h-p),this._rightBoundingLine=h-p+g-this._downActionX,this._leftMoveX=h-S-p,this._rightMoveX=S+f-(h+g)+p,l.button===2||this._hasEditItem())return;const{pageX:v,pageY:C}=l,b=Date.now(),R=b-i<=gn.DoubleClickDelay,T=Math.abs(v-t)<10,M=Math.abs(C-o)<10;R&&T&&M&&this._activeTabItem.setEditor(),t=v,o=C,i=b,this._longPressTimer=setTimeout(()=>{var D,W,H;!u||(D=this._activeTabItem)!=null&&D.isEditMode()||((W=this._activeTabItem)==null||W.enableFixed(),this._startAutoScroll(),u.setPointerCapture(l.pointerId),u.style.cursor="move",(H=this._activeTabItem)==null||H.addEventListener("pointermove",this._moveAction))},gn.LongPressDelay)},this._upAction=l=>{var u,h,g,S;if((u=this._activeTabItem)!=null&&u.isEditMode()||(this._longPressTimer&&(clearTimeout(this._longPressTimer),this._longPressTimer=null),!this._activeTabItem))return;const d=this._autoScrollTime!==null;this._closeAutoScroll(),this._activeTabItem.disableFixed(),this.updateItems();const c=(h=this._activeTabItem)==null?void 0:h.getSlideTabItem();c&&(c.style.cursor="",c.releasePointerCapture(l.pointerId),(g=this._activeTabItem)==null||g.removeEventListener("pointermove",this._moveAction),(S=this._activeTabItem)==null||S.removeEventListener("pointerup",this._upAction),this._config.onSlideEnd&&this._activeTabItemIndex!==this._compareIndex&&d&&(this.removeListener(),this._config.onSlideEnd(l,this._compareIndex||0)),this._scrollIncremental=0,this._downActionX=0,this._moveActionX=0,this._compareIndex=0)},this._moveAction=l=>{this._activeTabItem&&(this._moveActionX=l.pageX-this._downActionX,this._moveActionX<=-this._leftMoveX?this._moveActionX=-this._leftMoveX:this._moveActionX>=this._rightMoveX&&(this._moveActionX=this._rightMoveX),this._scrollIncremental=0,this._scrollLeft(l),this._scrollRight(l))},this._wheelAction=l=>{this.setScroll(l.deltaY)},this.addListener()}static checkedSkipSlide(r){let e=r.target;for(;e!=null&&e!==document.body;){if(e.getAttribute("data-slide-skip"))return!0;e=e.parentElement}return!1}static keepLastIndex(r){setTimeout(()=>{const e=window.getSelection();e&&(e.selectAllChildren(r),e.collapseToEnd())})}static keepSelectAll(r){setTimeout(()=>{const e=window.getSelection();if(!e)return;const t=document.createRange();t.selectNodeContents(r),e.removeAllRanges(),e.addRange(t)})}update(r){this._config.currentIndex=r,this._initConfig(),this.removeListener(),this.addListener(),this.scrollToItem(r)}primeval(){return this._slideTabBar}updateItems(){for(let r=0;r<this._slideTabItems.length;r++)this._slideTabItems[r].animate().cancel(),this._slideTabItems[r].translateX(0),this._slideTabItems[r].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 r=this._slideTabBar.parentElement;return r?this._slideTabBar.scrollWidth-r.clientWidth===this._slideTabBar.scrollLeft:!1}addListener(){this._slideTabBar.addEventListener("wheel",this._wheelAction),this._slideTabItems.forEach(r=>{r.addEventListener("pointerdown",this._downAction)})}removeListener(){this._slideTabBar.removeEventListener("wheel",this._wheelAction),this._slideTabItems.forEach(r=>{r.removeEventListener("pointerdown",this._downAction)})}setScroll(r){if(this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+r),r>0){const e=this.calculateLeftScrollX();this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e)}else if(r<0){const e=this.calculateRightScrollX();this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e)}this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}flipPage(r){if(r>0){const e=this.calculateLeftScrollX(!0);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e)}else if(r<0){const e=this.calculateRightScrollX(!0);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e)}this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}scrollToItem(r){if(r=r!=null?r:this._config.currentIndex,r<0||r>=this._slideTabItems.length){console.error("Index out of bounds");return}const e=this.calculateTabItemScrollX(r);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e),this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}calculateLeftScrollX(r){let e=0;const t=4;return this._slideTabItems.some(o=>{const i=this._slideTabBar.getBoundingClientRect(),s=i.left+i.width,l=o.getSlideTabItem().getBoundingClientRect(),d=l.left,c=l.width;return d<s&&d+c+t*2>s?(e=r?d-i.left-t:d+c-s+t,!0):!1}),e}calculateRightScrollX(r){let e=0;const t=4;return this._slideTabItems.some(o=>{const i=this._slideTabBar.getBoundingClientRect(),s=i.left,l=o.getSlideTabItem().getBoundingClientRect(),d=l.left,c=l.width;return d-t*2<s&&d+c>s?(e=r?d+c-i.left-i.width+t:d-s-t,!0):!1}),e}calculateTabItemScrollX(r){let e=0;const t=4,o=this._slideTabBar.getBoundingClientRect(),i=o.left,s=o.left+o.width,l=this._slideTabItems[r].getSlideTabItem().getBoundingClientRect(),d=l.left,c=l.width;return d-t*2<i&&(e=d-i-t),d+c+t*2>s&&(e=d+c-s+t),e}calculateActiveTabItemScrollX(){var c;let r=0;const e=4,t=this._slideTabBar.getBoundingClientRect(),o=t.left,i=t.left+t.width,s=(c=this._activeTabItem)==null?void 0:c.getSlideTabItem().getBoundingClientRect();if(!s)return 0;const l=s.left,d=s.width;return l-e*2<o&&l+d>o&&(r=l-o-e),l<i&&l+d+e*2>i&&(r=l+d-i+e),r}destroy(){this.removeListener(),this._downActionX=0,this._moveActionX=0,this._compareDirection=0,this._compareIndex=0,this._slideTabItems=[],this._activeTabItem=null}_hasEditItem(){for(let r=0;r<this._slideTabItems.length;r++)if(this._slideTabItems[r].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(r){const e=this.getBoundingRect(),t=r.pageX-e.x;t<this._leftBoundingLine&&(this._scrollIncremental=-Math.min(Math.abs(t-this._leftBoundingLine)*.1,50))}_scrollRight(r){const e=this.getBoundingRect(),t=r.pageX-e.x;t>e.width-this._rightBoundingLine&&(this._scrollIncremental=Math.min(Math.abs(t-(e.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 r=0;r<this._slideTabItems.length;r++){const e=this._slideTabItems[r],t=this._slideTabItems[r+1];t&&e.after(t)}}_compareLeft(){if(this._activeTabItem&&this._activeTabItemIndex){const r=this._slideTabItems.findIndex(i=>i.equals(this._activeTabItem)),e=this._slideTabItems.length,t=[];for(let i=0;i<r&&!(i>=r);i++)t.push(this._slideTabItems[i]);for(let i=r+1;i<e;i++)this._slideTabItems[i].animate().translateX(0);let o=!0;for(let i=t.length-1;i>=0;i--){const s=t[i];Ft.leftLine(this._activeTabItem)<s.getMidLine()?(s.animate().translateX(this._activeTabItem.getWidth()),this._compareIndex=i,o=!1):(s.animate().translateX(0),o&&(this._compareIndex=this._activeTabItemIndex))}}}_compareRight(){if(this._activeTabItem){const r=this._slideTabItems.findIndex(i=>i.equals(this._activeTabItem)),e=this._slideTabItems.length,t=[];for(let i=r+1;i<e;i++)t.push(this._slideTabItems[i]);for(let i=0;i<r;i++)this._slideTabItems[i].animate().translateX(0);let o=!0;for(let i=0;i<t.length;i++){const s=t[i];Ft.rightLine(this._activeTabItem)>s.getMidLine()?(s.animate().translateX(-this._activeTabItem.getWidth()),this._compareIndex=r+i+1,o=!1):(s.animate().translateX(0),o&&(this._compareIndex=this._activeTabItemIndex))}}}_initConfig(){var e;const r=this._slideTabBar.querySelectorAll(`.${(e=this._config.slideTabBarItemClassName)!=null?e:"slide-tab-item"}`);this._downActionX=0,this._moveActionX=0,this._compareDirection=0,this._compareIndex=0,this._slideTabItems=Ft.make(r,this),this._activeTabItemIndex=this._config.currentIndex,this._activeTabItem=this._slideTabItems[this._activeTabItemIndex]}};E(gn,"LongPressDelay",500),E(gn,"DoubleClickDelay",300);let In=gn;function QS(){var $;const[n,r]=V.useState([]),[e,t]=V.useState(""),[o,i]=V.useState(""),[s,l]=V.useState(!1),[d,c]=V.useState([0,0]),u=V.useRef({slideTabBar:null}),h=V.useRef(null),g=I.useDependency(a.ICommandService),S=I.useDependency(on),f=I.useDependency(a.LocaleService),p=I.useDependency(I.IConfirmService),v=I.useDependency(a.IConfigService),C=I.useDependency(Se,a.Quantity.OPTIONAL),b=I.useDependency(m.WorksheetProtectionRuleModel),R=I.useDependency(m.RangeProtectionRuleModel),T=I.useObservable(b.resetOrder$),M=mt(),y=I.useDependency(a.IPermissionService),P=V.useCallback(()=>{var de;const j=((de=M.getActiveSheet())==null?void 0:de.getSheetId())||"";t(j);const Y=M.getSheets(),q=M.getActiveSheet(),ee=Y.filter(me=>!me.isSheetHidden()).map((me,ce)=>{var Mt;const re=b.getRule(M.getUnitId(),me.getSheetId()),se=R.getSubunitRuleList(M.getUnitId(),me.getSheetId()).length>0,Te=(re==null?void 0:re.permissionId)||se?_.jsxs(_.Fragment,{children:[_.jsx(xs,{}),_.jsx("span",{children:me.getName()})]}):_.jsx("span",{children:me.getName()});return{sheetId:me.getSheetId(),label:Te,index:ce,selected:q===me,color:(Mt=me.getTabColor())!=null?Mt:void 0}});r(ee),t(j)},[R,M,b]);V.useEffect(()=>{P();const{slideTabBar:j,disconnectResizeObserver:Y}=x(),q=F(),ee=[L(),z(),X()];return()=>{q.dispose(),j.destroy(),ee.forEach(de=>de.unsubscribe()),Y&&Y()}},[T,M]),V.useEffect(()=>{n.length>0&&B()},[n]),V.useEffect(()=>{const j=O.merge(b.ruleChange$,R.ruleChange$).subscribe(()=>{P()});return()=>{j.unsubscribe()}},[b,P]);const x=()=>{const j=new In({slideTabBarClassName:He.slideTabBar,slideTabBarItemActiveClassName:He.slideTabActive,slideTabBarItemClassName:He.slideTabItem,slideTabBarSpanEditClassName:He.slideTabDivEdit,slideTabBarItemAutoSort:!0,slideTabBarContainer:h.current,currentIndex:0,onChangeName:(q,ee)=>{g.executeCommand(m.SetWorksheetNameCommand.id,{subUnitId:q,name:ee})},onSlideEnd:async(q,ee)=>{await g.executeCommand(m.SetWorksheetOrderCommand.id,{order:ee})},onChangeTab:(q,ee)=>{g.executeCommand(m.SetWorksheetActiveOperation.id,{subUnitId:ee,unitId:M.getUnitId()}).then(()=>{q.button===2&&ie(!0)})},onScroll:q=>{S.setScroll(q)},onNameCheckAlert:q=>N(q)||D(q)||W(q),onNameChangeCheck:()=>{var re,se,Ie,Te;const q=M.getUnitId(),ee=M==null?void 0:M.getActiveSheet();if(!ee)throw new Error("No active sheet found");const de=ee.getSheetId(),me=b.getRule(q,de),ce=R.getSubunitRuleList(q,de).length>0;return me||ce?(se=(re=y.getPermissionPoint(new m.WorkbookManageCollaboratorPermission(q).id))==null?void 0:re.value)!=null?se:!1:(Te=(Ie=y.getPermissionPoint(new m.WorkbookRenameSheetPermission(q).id))==null?void 0:Ie.value)!=null?Te:!1}});u.current.slideTabBar=j;const Y=Q(j);return{slideTabBar:j,disconnectResizeObserver:Y}},A=v.getConfig(I.UI_PLUGIN_CONFIG_KEY),k=($=A==null?void 0:A.contextMenu)!=null?$:!0,N=j=>{if(j.trim()===""){const Y="sheetNameEmptyAlert";return p.open({id:Y,title:{title:f.t("sheetConfig.sheetNameErrorTitle")},children:{title:f.t("sheetConfig.sheetNameCannotIsEmptyError")},cancelText:f.t("button.cancel"),confirmText:f.t("button.confirm"),onClose(){H(),p.close(Y)},onConfirm(){H(),p.close(Y)}}),!0}return!1},D=j=>{if(!a.nameCharacterCheck(j)){const Y="sheetNameSpecCharAlert";return p.open({id:Y,title:{title:f.t("sheetConfig.sheetNameErrorTitle")},children:{title:f.t("sheetConfig.sheetNameSpecCharError")},cancelText:f.t("button.cancel"),confirmText:f.t("button.confirm"),onClose(){H(),p.close(Y)},onConfirm(){H(),p.close(Y)}}),!0}return!1},W=j=>{const Y=M.getActiveSheet();if((Y==null?void 0:Y.getName())===j)return!1;const ee=M.checkSheetName(j);if(ee){const de="sheetNameRepeatAlert";p.open({id:de,title:{title:f.t("sheetConfig.sheetNameErrorTitle")},children:{title:f.t("sheetConfig.sheetNameAlreadyExistsError")},cancelText:f.t("button.cancel"),confirmText:f.t("button.confirm"),onClose(){p.close(de),H()},onConfirm(){p.close(de),H()}})}return ee},H=()=>{setTimeout(()=>{var Y;const j=(Y=u.current.slideTabBar)==null?void 0:Y.getActiveItem();j&&(j.focus(),j.selectAll())},0)},U=()=>{var j,Y;(Y=(j=u.current.slideTabBar)==null?void 0:j.getActiveItem())==null||Y.setEditor()},B=()=>{var Y;const j=n.findIndex(q=>q.selected);(Y=u.current.slideTabBar)==null||Y.update(j)},F=()=>g.onCommandExecuted(j=>{switch(j.id){case m.SetTabColorMutation.id:case m.SetWorksheetHideMutation.id:case m.RemoveSheetMutation.id:case m.SetWorksheetNameMutation.id:case m.InsertSheetMutation.id:case m.SetWorksheetOrderMutation.id:case m.SetWorksheetActiveOperation.id:P();break}}),L=()=>S.scroll$.subscribe(j=>{Z(j)}),z=()=>S.scrollX$.subscribe(j=>{var Y;(Y=u.current.slideTabBar)==null||Y.flipPage(j)}),X=()=>S.renameId$.subscribe(()=>{U()}),Z=j=>{const{leftEnd:Y,rightEnd:q}=j;let ee="";Y&&q?ee="":Y&&!q?ee="inset -10px 0px 10px -10px rgba(0, 0, 0, 0.2)":!Y&&q?ee="inset 10px 0px 10px -10px rgba(0, 0, 0, 0.2)":!Y&&!q&&(ee="inset 10px 0px 10px -10px rgba(0, 0, 0, 0.2), inset -10px 0px 10px -10px rgba(0, 0, 0, 0.2)"),i(ee)},oe=j=>{const Y=j.calculateActiveTabItemScrollX();if(Y){const q=j.getScrollbar();q.scrollX(q.getScrollX()+Y)}S.setScroll({leftEnd:j.isLeftEnd(),rightEnd:j.isRightEnd()})},Q=j=>{var ee;const Y=(ee=h.current)==null?void 0:ee.querySelector(`.${He.slideTabBar}`);if(!Y)return;const q=new ResizeObserver(()=>{oe(j)});return q.observe(Y),()=>q.disconnect()},ie=j=>{var Y,q,ee,de,me;if(k&&!(C!=null&&C.isForceKeepVisible())){if(j){const{left:ce}=(q=(Y=h.current)==null?void 0:Y.getBoundingClientRect())!=null?q:{},{left:re}=(me=(de=(ee=u.current.slideTabBar)==null?void 0:ee.getActiveItem())==null?void 0:de.getSlideTabItem().getBoundingClientRect())!=null?me:{};ce!==void 0&&re!==void 0&&c([re-ce,0])}l(j)}};return _.jsx(K.DropdownLegacy,{className:He.slideTabItemDropdown,visible:s,align:{offset:d},trigger:["contextMenu"],overlay:_.jsx(I.UIMenu,{menuType:I.ContextMenuPosition.FOOTER_TABS,onOptionSelect:j=>{const{label:Y,value:q,commandId:ee}=j;g.executeCommand(ee!=null?ee:Y,{value:q,subUnitId:e}),l(!1)}}),onVisibleChange:ie,children:_.jsx("div",{className:He.slideTabBarContainer,ref:h,onDragStart:j=>j.preventDefault(),onContextMenu:j=>j.preventDefault(),children:_.jsx("div",{className:He.slideTabBar,style:{boxShadow:o},children:n.map(j=>V.createElement(YS,{...j,key:j.sheetId,selected:e===j.sheetId}))})})})}const JS=100,tc=()=>{var p,v;const[n,r]=V.useState(!0),[e,t]=V.useState(!0),o=I.useDependency(a.ICommandService),i=I.useDependency(on),s=I.useDependency(a.IPermissionService),d=mt().getUnitId(),c=I.useObservable(s.getPermissionPoint$((p=new m.WorkbookEditablePermission(d))==null?void 0:p.id)),u=I.useObservable(s.getPermissionPoint$((v=new m.WorkbookCreateSheetPermission(d))==null?void 0:v.id));V.useEffect(()=>{const C=i.scroll$.subscribe(b=>{h(b)});return()=>{C.unsubscribe()}},[]);const h=C=>{const{leftEnd:b,rightEnd:R}=C;r(b),t(R)},g=()=>{o.executeCommand(m.InsertSheetCommand.id),setTimeout(()=>{i.setAddSheet(0)},0)},S=()=>{i.setScrollX(-100)},f=()=>{i.setScrollX(JS)};return _.jsxs("div",{className:Bo.sheetBar,children:[_.jsxs("div",{className:Bo.sheetBarOptions,children:[_.jsx(Ko,{onClick:g,disabled:!(u!=null&&u.value&&(c!=null&&c.value)),children:_.jsx(Os,{})}),_.jsx(WS,{})]}),_.jsx(QS,{}),(!n||!e)&&_.jsxs("div",{className:`
55
- ${Bo.sheetBarOptions}
56
- ${Bo.sheetBarOptionsDivider}
57
- `,children:[_.jsx(Ko,{disabled:n,onClick:S,children:_.jsx(Zi,{style:{transform:"rotateZ(180deg)"}})}),_.jsx(Ko,{disabled:e,onClick:f,children:_.jsx(Zi,{})})]})]})};class nc{constructor(){E(this,"_functions",[{func:G.FUNCTION_NAMES_STATISTICAL.MAX,filter:r=>{var e,t,o,i;return((t=(e=r.values.find(s=>s.func===G.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((i=(o=r.values.find(s=>s.func===G.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:o.value)!=null?i:0)>0}},{func:G.FUNCTION_NAMES_STATISTICAL.MIN,filter:r=>{var e,t,o,i;return((t=(e=r.values.find(s=>s.func===G.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((i=(o=r.values.find(s=>s.func===G.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:o.value)!=null?i:0)>0}},{func:G.FUNCTION_NAMES_MATH.SUM,filter:r=>{var e,t,o,i;return((t=(e=r.values.find(s=>s.func===G.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((i=(o=r.values.find(s=>s.func===G.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:o.value)!=null?i:0)>0}},{func:G.FUNCTION_NAMES_STATISTICAL.COUNTA,filter:r=>{var e,t;return((t=(e=r.values.find(o=>o.func===G.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1}},{func:G.FUNCTION_NAMES_STATISTICAL.COUNT,filter:r=>{var e,t,o,i;return((t=(e=r.values.find(s=>s.func===G.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((i=(o=r.values.find(s=>s.func===G.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:o.value)!=null?i:0)>0}},{func:G.FUNCTION_NAMES_STATISTICAL.AVERAGE,filter:r=>{var e,t,o,i;return((t=(e=r.values.find(s=>s.func===G.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((i=(o=r.values.find(s=>s.func===G.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:o.value)!=null?i:0)>0}}]);E(this,"_state$",new O.BehaviorSubject(null));E(this,"state$",this._state$.asObservable())}dispose(){this._state$.complete()}setState(r){var t;const e={values:[],pattern:null};r==null||r.values.forEach(o=>{const i=this._functions.find(s=>s.func===o.func);i&&(i.filter===void 0||i.filter(r))&&e.values.push(o)}),e.pattern=(t=r==null?void 0:r.pattern)!=null?t:null,this._state$.next(e)}getState(){return this._state$.getValue()}getFunctions(){return this._functions}addFunctions(r){this._functions.push(...r)}}const Fr=a.createIdentifier("univer.sheet-status-bar.service"),$S="univer-status-bar",ef="univer-single-mode",tf="univer-status-bar-div",nf="univer-statistic-list",of="univer-statistic-list-column",rf="univer-statistic-item",hn={statusBar:$S,singleMode:ef,statusBarDiv:tf,statisticList:nf,statisticListColumn:of,statisticItem:rf},sf=[G.FUNCTION_NAMES_MATH.SUM,G.FUNCTION_NAMES_STATISTICAL.AVERAGE,G.FUNCTION_NAMES_STATISTICAL.MIN,G.FUNCTION_NAMES_STATISTICAL.MAX],ui={[G.FUNCTION_NAMES_MATH.SUM]:"statusbar.sum",[G.FUNCTION_NAMES_STATISTICAL.AVERAGE]:"statusbar.average",[G.FUNCTION_NAMES_STATISTICAL.MIN]:"statusbar.min",[G.FUNCTION_NAMES_STATISTICAL.MAX]:"statusbar.max",[G.FUNCTION_NAMES_STATISTICAL.COUNT]:"statusbar.count",[G.FUNCTION_NAMES_STATISTICAL.COUNTA]:"statusbar.countA",[G.FUNCTION_NAMES_TEXT.CONCATENATE]:"concatenate"},hi=n=>{const r=I.useDependency(a.LocaleService),e=I.useDependency(I.IMessageService),t=I.useDependency(I.IClipboardInterfaceService),o=af(n),i=async()=>{await t.writeText(n.value.toString()),e.show({type:K.MessageType.Success,content:r.t("statusbar.copied")})};return _.jsx(K.Tooltip,{title:r.t("statusbar.clickToCopy"),placement:"top",children:_.jsx("div",{className:hn.statisticItem,onClick:i,children:_.jsx("span",{children:`${r.t((ui==null?void 0:ui[n.name])||n.name)}: ${o}`})},n.name)})};function af(n){const{pattern:r,value:e}=n;return typeof e!="number"?0:e>=1e8?e.toExponential(2):r&&sf.includes(n.name)?a.numfmt.format(r,e,{throws:!1}):e.toLocaleString()}const Oa=800,lf=3,cf=()=>{const[n,r]=V.useState(window.innerWidth<Oa),[e,t]=V.useState(!0),o=I.useDependency(Fr),i=o.getFunctions().map((g,S)=>({name:g.func,value:0,show:!0,disable:!1,pattern:null})),[s,l]=V.useState(i),d=s.find(g=>g.show&&!g.disable),c=n&&d?[d]:s.filter(g=>g.show&&!g.disable);V.useEffect(()=>{const g=o.state$.subscribe(S=>{const f=S==null?void 0:S.values;if(!f||f.length===0)t(!1);else{t(!0);const p=s.map(v=>{var b;const C=f.find(R=>R.func===v.name);return C?(v.value=C.value,v.disable=!1):v.disable=!0,v.pattern=(b=S==null?void 0:S.pattern)!=null?b:null,v});l(p)}});return()=>{g.unsubscribe()}},[o]);const u=a.debounce(()=>{const g=window.innerWidth<Oa;n!==g&&r(g)},100);V.useEffect(()=>(window.addEventListener("resize",u),()=>{window.removeEventListener("resize",u)}),[n]);let h=null;if(c.length>lf){const g=[];c.forEach((S,f)=>{f%2===0&&g.push(c.slice(f,f+2))}),h=_.jsxs(_.Fragment,{children:[" ",g.map((S,f)=>_.jsxs("div",{className:hn.statisticListColumn,children:[(S==null?void 0:S[0])&&_.jsx(hi,{...S==null?void 0:S[0]},S==null?void 0:S[0].name),(S==null?void 0:S[1])&&_.jsx(hi,{...S==null?void 0:S[1]},S==null?void 0:S[1].name)]},`stat-col-${f}`))," "]})}else h=_.jsx(_.Fragment,{children:c.map(g=>_.jsx(hi,{...g},g.name))});return e&&_.jsxs("div",{className:pe(hn.statusBar,{[hn.singleMode]:n}),children:[_.jsx("div",{className:pe(hn.statisticList),children:h}),_.jsx("div",{className:hn.statusBarDiv})]})};function oc(){const n=I.useDependency(I.IMenuManagerService);if(!mt())return null;const e=n.getMenuByPositionKey(I.ContextMenuPosition.FOOTER_MENU);return _.jsxs("section",{className:nl.sheetContainer,"data-range-selector":!0,children:[_.jsx(tc,{}),_.jsx(cf,{}),e.map(t=>{var o;return(o=t.children)==null?void 0:o.map(i=>(i==null?void 0:i.item)&&_.jsx(I.ToolbarItem,{align:{offset:[-32,18]},...i.item},i.key))}),_.jsx(Gg,{})]})}function rc(){return sc()?_.jsx(fS,{}):null}function ic(){return sc()?_.jsxs(_.Fragment,{children:[_.jsx(qg,{}),_.jsx(wS,{})]}):null}function sc(){const n=I.useDependency(a.IUniverInstanceService),e=!!I.useObservable(()=>n.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),null,!1,[]);return V.useMemo(()=>n.getAllUnitsForType(a.UniverInstanceType.UNIVER_SHEET).length>0,[n,e])}const Zt="sheets-ui.config",qi={formulaBar:!0};function df(n){const r=n.get(m.BorderStyleManagerService),e=te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]});return{id:m.SetBorderBasicCommand.id,icon:new O.Observable(t=>{const o="AllBorderSingle",i=n.get(m.BorderStyleManagerService),s=n.get(a.ICommandService).onCommandExecuted(l=>{var g;if(l.id!==m.SetBorderBasicCommand.id)return;const{type:c}=i.getBorderInfo(),u=ql.find(S=>S.value===c),h=(g=u==null?void 0:u.icon)!=null?g:o;t.next(h)});return t.next(o),s.dispose}),tooltip:"toolbar.border.main",type:I.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:Ws,hoverable:!1},value$:r.borderInfo$}],value$:r.borderInfo$,hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:e}}const qo="sheet.menu.clear-selection";function mi(n){return{id:qo,type:I.MenuItemType.SUBITEMS,icon:"ClearFormat",title:"rightClick.clearSelection",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function gi(n){return{id:m.ClearSelectionContentCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.clearContent",disabled$:nn(n,te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Si(n){return{id:m.ClearSelectionFormatCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.clearFormat",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function fi(n){return{id:m.ClearSelectionAllCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.clearAll",disabled$:nn(n,te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}const ac="sheet.menu.delete";function uf(n){return{id:ac,type:I.MenuItemType.SUBITEMS,title:"rightClick.delete",icon:"Reduce",hidden$:nn(n,Vr(n)),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission]})}}function xa(n){return{id:An.id,type:I.MenuItemType.BUTTON,icon:"DeleteColumn",title:"rightClick.deleteSelectedColumn",hidden$:nn(n,Tl(n,"col")),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetDeleteColumnPermission]})}}function Aa(n){return{id:xn.id,type:I.MenuItemType.BUTTON,icon:"DeleteRow",title:"rightClick.deleteSelectedRow",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetDeleteRowPermission]}),hidden$:Tl(n,"row")}}function hf(n){return{id:Wn.id,type:I.MenuItemType.BUTTON,title:"rightClick.moveLeft",icon:"DeleteCellShiftLeft",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Wr(n,"col")}}function mf(n){return{id:Yt.id,type:I.MenuItemType.BUTTON,title:"rightClick.moveUp",icon:"DeleteCellShiftUp",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Wr(n,"row")}}function gf(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService);return{id:m.ToggleGridlinesCommand.id,type:I.MenuItemType.BUTTON,tooltip:"toolbar.toggleGridlines",icon:"HideGridlines",activated$:new O.Observable(t=>{const o=()=>{const s=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);return s?s.getActiveSheet().getConfig().showGridlines===a.BooleanNumber.TRUE:!1},i=new a.DisposableCollection;return i.add(r.onCommandExecuted(s=>{(s.id===m.ToggleGridlinesMutation.id||s.id===m.SetWorksheetActiveOperation.id)&&t.next(o())})),i.add(e.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(()=>{t.next(o())})),t.next(o()),()=>i.dispose()}),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission]})}}const lc="sheet.menu.col-insert";function Sf(n){return{id:lc,type:I.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",hidden$:Vr(n),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetInsertColumnPermission]})}}const cc="sheet.menu.row-insert";function ff(n){return{id:cc,type:I.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",hidden$:Vr(n),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertRowPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const dc="sheet.menu.cell-insert";function pf(n){return{id:dc,type:I.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",hidden$:nn(n,Vr(n)),disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertColumnPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function ka(n){return{id:m.InsertRowBeforeCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.insertRowBefore",icon:"InsertRowAbove",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertRowPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:El(n,"row")}}function vf(n){return{id:m.InsertRowAfterCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.insertRow",icon:"InsertRowBelow",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertRowPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Rl(n,"row")}}function Na(n){return{id:m.InsertColBeforeCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.insertColumnBefore",icon:"LeftInsertColumn",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertColumnPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:El(n,"col")}}function Cf(n){return{id:m.InsertColAfterCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.insertColumn",icon:"RightInsertColumn",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertColumnPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Rl(n,"col")}}function If(n){return{id:Un.id,type:I.MenuItemType.BUTTON,title:"rightClick.moveRight",icon:"InsertCellShiftRight",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Wr(n,"col")}}function _f(n){return{id:Gt.id,type:I.MenuItemType.BUTTON,title:"rightClick.moveDown",icon:"InsertCellDown",disabled$:te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Wr(n,"row")}}function bf(n){const r=te(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),e=gm(n);return{id:wt.id,icon:"MergeAllSingle",tooltip:"toolbar.mergeCell.main",type:I.MenuItemType.SUBITEMS,hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:r.pipe(O.combineLatestWith(e),O.map(([t,o])=>t||o))}}function Rf(n){return{id:ks.id,type:I.MenuItemType.BUTTON,title:"merge.all",icon:"MergeAllSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Ef(n){return{id:Ns.id,type:I.MenuItemType.BUTTON,title:"merge.vertical",icon:"VerticalIntegrationSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Tf(n){return{id:Ds.id,type:I.MenuItemType.BUTTON,title:"merge.horizontal",icon:"HorizontalMergeSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function wf(n){return{id:m.RemoveWorksheetMergeCommand.id,type:I.MenuItemType.BUTTON,title:"merge.cancel",icon:"CancelMergeSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function yf(n){const e=n.get(a.IUniverInstanceService).getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),t=n.get(a.UserManagerService);return O.combineLatest([e,t.currentUser$]).pipe(O.switchMap(([o,i])=>o?o.activeSheet$.pipe(O.switchMap(s=>{if(!s)return O.of(!0);const l=n.get(m.RangeProtectionRuleModel),d=n.get(m.WorksheetProtectionRuleModel),c=n.get(m.SheetsSelectionsService);return O.merge(c.selectionMoveEnd$,l.ruleChange$,d.ruleChange$).pipe(O.map(()=>{const u=o.getUnitId(),h=s.getSheetId(),g=l.getSubunitRuleList(u,h),S=c.getCurrentSelections(),f=S==null?void 0:S.map(C=>C.range),p=g.map(C=>C.ranges).flat();if(!f)return!1;const v=d.getRule(u,h);return v!=null&&v.permissionId?!0:f==null?void 0:f.some(C=>p.some(b=>a.Rectangle.intersects(C,b)))}))})):O.of(!0)))}function Mf(n){const r=n.get(a.IUniverInstanceService),e=n.get(m.RangeProtectionRuleModel),t=r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([i,s])=>i?i.activeSheet$.pipe(O.switchMap(l=>{if(!l)return O.of(!0);const d=n.get(m.RangeProtectionRuleModel),c=n.get(m.WorksheetProtectionRuleModel),u=n.get(a.IPermissionService),h=n.get(m.SheetsSelectionsService);return O.merge(h.selectionMoveEnd$,d.ruleChange$,c.ruleChange$).pipe(O.map(()=>{var x,A;const g=i.getUnitId(),S=l.getSheetId(),f=e.getSubunitRuleList(g,S),p=(x=h.getCurrentSelections())==null?void 0:x.map(k=>k.range);if(f.map(k=>k.ranges).flat(),!(p!=null&&p.length)||p.length>1)return!0;const v=p[0];if((v==null?void 0:v.rangeType)===a.RANGE_TYPE.ALL||(v==null?void 0:v.rangeType)===a.RANGE_TYPE.COLUMN||(v==null?void 0:v.rangeType)===a.RANGE_TYPE.ROW)return!0;const C=c.getRule(g,S);if(C!=null&&C.permissionId)return((A=u.getPermissionPoint(new m.WorksheetManageCollaboratorPermission(g,S).id))==null?void 0:A.value)===!1;if(f.filter(k=>k.ranges.some(N=>a.Rectangle.intersects(N,v))).length!==1)return!0;const{startRow:R,endRow:T,startColumn:M,endColumn:y}=v,P=n.get(m.RangeProtectionCache);for(let k=R;k<=T;k++)for(let N=M;N<=y;N++){const D=P.getCellInfo(g,S,k,N);if(D)return D[m.UnitAction.ManageCollaborator]===!1}return!1}))})):O.of(!0)))}function Pf(n){const r=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([i,s])=>i?i.activeSheet$.pipe(O.switchMap(l=>{var f;if(!l)return O.of(!0);const d=i.getUnitId(),c=n.get(m.SheetsSelectionsService),u=n.get(m.RangeProtectionRuleModel),h=n.get(m.WorksheetProtectionRuleModel),g=(f=e.composePermission$([new m.WorkbookEditablePermission(d).id]).pipe(O.map(p=>p.every(v=>v.value))))!=null?f:O.of(!1),S=O.merge(u.ruleChange$,h.ruleChange$).pipe(O.startWith(null));return O.combineLatest([g,S,c.selectionMoveEnd$]).pipe(O.map(([p,v,C])=>{if(!p)return!0;const b=c.getCurrentSelections(),R=b==null?void 0:b.map(T=>T.range);return R!=null&&R.length?R.length>1:!1}))})):O.of(!0)))}function uc(n){var c;const r=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService),i=n.has(Se)?n.get(Se):null,l=n.get(a.IContextService).subscribeContextValue$(a.FOCUSING_FX_BAR_EDITOR),d=(c=i==null?void 0:i.visible$)!=null?c:O.of(null);return O.combineLatest([t,o.currentUser$,d,l]).pipe(O.switchMap(([u,h,g,S])=>!u||g!=null&&g.visible&&g.unitId===u.getUnitId()||S?O.of(!0):u.activeSheet$.pipe(O.switchMap(f=>{var x;if(!f)return O.of(!0);const v=n.get(a.IContextService).subscribeContextValue$(a.FOCUSING_COMMON_DRAWINGS).pipe(O.startWith(!1)),C=u.getUnitId(),b=f.getSheetId(),R=n.get(m.RangeProtectionRuleModel),T=n.get(m.WorksheetProtectionRuleModel),M=n.get(m.SheetsSelectionsService),y=(x=e.composePermission$([new m.WorkbookCreateProtectPermission(C).id]).pipe(O.map(A=>A.every(k=>k.value))))!=null?x:O.of(!1),P=O.merge(R.ruleChange$,T.ruleChange$).pipe(O.startWith(null));return O.combineLatest([y,P,M.selectionMoveEnd$,v]).pipe(O.map(([A,k,N,D])=>{if(!A||D)return!0;const W=M.getCurrentSelections(),H=W==null?void 0:W.map(L=>L.range);if(!(H!=null&&H.length))return!0;const U=T.getRule(C,b);if(U!=null&&U.permissionId)return!0;const B=R.getSubunitRuleList(C,b);return H==null?void 0:H.some(L=>B.some(z=>z.ranges.some(X=>a.Rectangle.intersects(L,X))))}))}))))}function Of(n){const r=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([i,s])=>i?i.activeSheet$.pipe(O.switchMap(l=>{var f;if(!l)return O.of(!0);const d=i.getUnitId(),c=l.getSheetId(),u=n.get(m.RangeProtectionRuleModel),h=n.get(m.WorksheetProtectionRuleModel),g=(f=e.composePermission$([new m.WorkbookCreateProtectPermission(d).id]).pipe(O.map(p=>p.every(v=>v.value))))!=null?f:O.of(!1),S=O.merge(u.ruleChange$,h.ruleChange$).pipe(O.startWith(null));return O.combineLatest([g,S]).pipe(O.map(([p,v])=>{var R;if(!p)return!0;const C=h.getRule(d,c);return C!=null&&C.permissionId?!0:((R=u.getSubunitRuleList(d,c))==null?void 0:R.filter(T=>T==null?void 0:T.permissionId)).length>0}))})):O.of(!0)))}function xf(n){const r=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([i,s])=>i?i.activeSheet$.pipe(O.switchMap(l=>{if(!l)return O.of(!0);const d=i.getUnitId(),c=l.getSheetId(),u=n.get(m.WorksheetProtectionRuleModel);return u.ruleChange$.pipe(O.startWith(null)).pipe(O.map(()=>{var g;return u.getRule(d,c)?((g=e.getPermissionPoint(new m.WorksheetDeleteProtectionPermission(d,c).id))==null?void 0:g.value)===!1:!0}))})):O.of(!0)))}function Af(n){const r=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([i,s])=>i?i.activeSheet$.pipe(O.switchMap(l=>{var f;if(!l)return O.of(!0);const d=i.getUnitId(),c=n.get(m.RangeProtectionRuleModel),u=n.get(m.WorksheetProtectionRuleModel),h=(f=e.composePermission$([new m.WorkbookCreateProtectPermission(d).id,new m.WorkbookManageCollaboratorPermission(d).id]).pipe(O.map(p=>p.every(v=>v.value))))!=null?f:O.of(!1),g=u.ruleChange$.pipe(O.startWith(null)),S=c.ruleChange$.pipe(O.startWith(null));return O.combineLatest([h,g,S]).pipe(O.map(([p,v,C])=>{if(!p)return!0;const b=l.getSheetId(),R=u.getRule(d,b),T=c.getSubunitRuleList(d,b);return!(R||T.length)}))})):O.of(!0)))}function kf(n){const r=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([i,s])=>i?i.activeSheet$.pipe(O.switchMap(l=>{if(!l)return O.of(!0);const d=i.getUnitId(),c=l.getSheetId(),u=n.get(m.SheetsSelectionsService),h=n.get(m.RangeProtectionRuleModel),g=n.get(m.WorksheetProtectionRuleModel),S=O.merge(h.ruleChange$,g.ruleChange$,u.selectionMoveEnd$).pipe(O.startWith(null));return O.combineLatest([S]).pipe(O.map(([f])=>{var A;const p=n.get(m.SheetsSelectionsService).getCurrentSelections(),v=p==null?void 0:p.map(k=>k.range);if(!(v!=null&&v.length)||v.length>1)return!0;const C=v[0];if((C==null?void 0:C.rangeType)===a.RANGE_TYPE.ALL||(C==null?void 0:C.rangeType)===a.RANGE_TYPE.COLUMN||(C==null?void 0:C.rangeType)===a.RANGE_TYPE.ROW)return!0;const b=g.getRule(d,c);if(b!=null&&b.permissionId)return((A=e.getPermissionPoint(new m.WorksheetDeleteProtectionPermission(d,c).id))==null?void 0:A.value)===!1;if(h.getSubunitRuleList(d,c).filter(k=>k.ranges.some(N=>a.Rectangle.intersects(N,C))).length!==1)return!0;const{startRow:T,endRow:M,startColumn:y,endColumn:P}=C,x=n.get(m.RangeProtectionCache);for(let k=T;k<=M;k++)for(let N=y;N<=P;N++){const D=x.getCellInfo(d,c,k,N);if(D)return D[m.UnitAction.Delete]===!1}return!1}))})):O.of(!0)))}function hc(n){var c;const r=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService),i=n.has(Se)?n.get(Se):null,l=n.get(a.IContextService).subscribeContextValue$(a.FOCUSING_FX_BAR_EDITOR),d=(c=i==null?void 0:i.visible$)!=null?c:O.of(null);return O.combineLatest([t,o.currentUser$,d,l]).pipe(O.switchMap(([u,h,g,S])=>!u||g!=null&&g.visible&&g.unitId===u.getUnitId()||S?O.of(!0):u.activeSheet$.pipe(O.switchMap(f=>{var C,b;if(!f)return O.of(!0);const p=u.getUnitId();return((b=(C=e.getPermissionPoint$(new m.WorkbookEditablePermission(p).id))==null?void 0:C.pipe(O.map(R=>!!R.value)))!=null?b:O.of(!1)).pipe(O.map(R=>!R))}))))}const Qo="sheet.contextMenu.permission";function Nf(n){return{id:wo.id,type:I.MenuItemType.BUTTON,icon:Gl,tooltip:"permission.toolbarMenu",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:uc(n)}}function pi(n){return{id:Qo,type:I.MenuItemType.SUBITEMS,title:"rightClick.protectRange",icon:Zl,hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function vi(n){return{id:Wt.id,type:I.MenuItemType.BUTTON,title:"rightClick.turnOnProtectRange",hidden$:yf(n),disabled$:uc(n)}}function Ci(n){return{id:Bt.id,type:I.MenuItemType.BUTTON,title:"rightClick.editProtectRange",disabled$:Pf(n),hidden$:Mf(n)}}function Ii(n){return{id:Lt.id,type:I.MenuItemType.BUTTON,title:"rightClick.removeProtectRange",disabled$:kf(n),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function _i(n){return{id:Ut.id,type:I.MenuItemType.BUTTON,title:"rightClick.viewAllProtectArea",disabled$:hc(n),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Df(n){return{id:yo.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.addProtectSheet",disabled$:Of(n),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Hf(n){return{id:xo.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.removeProtectSheet",disabled$:xf(n),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Vf(n){return{id:Ao.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.changeSheetPermission",disabled$:Af(n),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Wf(n){return{id:Mo.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.viewAllProtectArea",disabled$:hc(n),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Uf(n){const r=n.get(a.IUniverInstanceService),e=n.get(a.ICommandService),t=new O.Observable(i=>{const s=e.onCommandExecuted(l=>{const d=l.id;(d===m.RemoveSheetMutation.id||d===m.InsertSheetMutation.id||d===m.SetWorksheetHideMutation.id)&&lr(r,i)});return lr(r,i),s.dispose}),o=Vn(n,[m.WorkbookEditablePermission,m.WorkbookDeleteSheetPermission]);return{id:Po.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.delete",disabled$:O.combineLatest([t,o]).pipe(O.map(([i,s])=>i||s)),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Lf(n){return{id:m.CopySheetCommand.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.copy",disabled$:Vn(n,[m.WorkbookEditablePermission,m.WorkbookCreateSheetPermission]),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Bf(n){return{id:ko.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.rename",disabled$:Vn(n,[m.WorkbookEditablePermission,m.WorkbookRenameSheetPermission]),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Ff(n){return{id:m.SetTabColorCommand.id,title:"sheetConfig.changeColor",type:I.MenuItemType.SELECTOR,selections:[{label:{name:Ro,hoverable:!1}}],hidden$:Vn(n,[m.WorkbookEditablePermission])}}function jf(n){const r=n.get(a.IUniverInstanceService),e=n.get(a.ICommandService);return{id:m.SetWorksheetHideCommand.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.hide",disabled$:new O.Observable(t=>{const o=e.onCommandExecuted(i=>{const s=i.id;(s===m.RemoveSheetMutation.id||s===m.InsertSheetMutation.id||s===m.SetWorksheetHideMutation.id)&&lr(r,t)});return lr(r,t),o.dispose}).pipe(O.combineLatestWith(Vn(n,[m.WorkbookEditablePermission,m.WorkbookHideSheetPermission])),O.map(([t,o])=>t||o)),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function zf(n){const r=n.get(a.IUniverInstanceService),e=n.get(a.ICommandService);return{id:Oo.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.unhide",disabled$:new O.Observable(t=>{function o(){const s=r.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getWorksheets(),l=Array.from(s.values());t.next(l.length===1)}const i=e.onCommandExecuted(s=>{const l=s.id;(l===m.RemoveSheetMutation.id||l===m.InsertSheetMutation.id||l===m.SetWorksheetHideMutation.id)&&o()});return o(),i.dispose}).pipe(O.combineLatestWith(Vn(n,[m.WorkbookEditablePermission,m.WorkbookHideSheetPermission])),O.map(([t,o])=>t||o)),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function lr(n,r){const e=n.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getWorksheets(),t=Array.from(e.values()).filter(o=>o.getConfig().hidden===a.BooleanNumber.FALSE);r.next(t.length===1)}const mc={[I.RibbonStartGroup.FORMAT]:{[Dn.id]:{order:0,menuItemFactory:Dh},[Jt.id]:{order:1,menuItemFactory:Hh},[$t.id]:{order:2,menuItemFactory:Vh},[en.id]:{order:3,menuItemFactory:Wh},[tn.id]:{order:4,menuItemFactory:Uh},[po.id]:{order:5,menuItemFactory:Lh},[fo.id]:{order:6,menuItemFactory:Bh},[Mn.id]:{order:7,menuItemFactory:jh,[m.ResetTextColorCommand.id]:{order:0,menuItemFactory:Fh}},[m.SetBackgroundColorCommand.id]:{order:9,menuItemFactory:Xh,[m.ResetBackgroundColorCommand.id]:{order:0,menuItemFactory:zh}},[m.SetBorderBasicCommand.id]:{order:10,menuItemFactory:df}},[I.RibbonStartGroup.LAYOUT]:{[m.AddWorksheetMergeCommand.id]:{order:0,menuItemFactory:bf,[m.AddWorksheetMergeAllCommand.id]:{order:0,menuItemFactory:Rf},[m.AddWorksheetMergeVerticalCommand.id]:{order:1,menuItemFactory:Ef},[m.AddWorksheetMergeHorizontalCommand.id]:{order:2,menuItemFactory:Tf},[m.RemoveWorksheetMergeCommand.id]:{order:3,menuItemFactory:wf}},[m.SetHorizontalTextAlignCommand.id]:{order:1,menuItemFactory:Yh},[m.SetVerticalTextAlignCommand.id]:{order:1,menuItemFactory:Gh},[m.SetTextWrapCommand.id]:{order:2,menuItemFactory:Zh},[m.SetTextRotationCommand.id]:{order:3,menuItemFactory:Kh}},[I.RibbonStartGroup.OTHERS]:{[wo.id]:{order:0,menuItemFactory:Nf}},[I.ContextMenuPosition.MAIN_AREA]:{[I.ContextMenuGroup.FORMAT]:{[Xe.name]:{order:0,menuItemFactory:Cn},[Ye.name]:{order:2,menuItemFactory:qr},[Qn]:{order:3,menuItemFactory:Qr,[fn.id]:{order:0,menuItemFactory:Jr},[pn.id]:{order:1,menuItemFactory:$r},[Vt.id]:{order:2,menuItemFactory:ei},[vn.id]:{order:3,menuItemFactory:ti}},[qo]:{order:4,menuItemFactory:mi,[m.ClearSelectionContentCommand.id]:{order:0,menuItemFactory:gi},[m.ClearSelectionFormatCommand.id]:{order:1,menuItemFactory:Si},[m.ClearSelectionAllCommand.id]:{order:2,menuItemFactory:fi}}},[I.ContextMenuGroup.LAYOUT]:{order:1,[dc]:{order:0,menuItemFactory:pf,[m.InsertRowBeforeCommand.id]:{order:0,menuItemFactory:ka},[m.InsertColBeforeCommand.id]:{order:1,menuItemFactory:Na},[Un.id]:{order:2,menuItemFactory:If},[Gt.id]:{order:3,menuItemFactory:_f}},[ac]:{order:0,menuItemFactory:uf,[An.id]:{order:0,menuItemFactory:xa},[xn.id]:{order:1,menuItemFactory:Aa},[Wn.id]:{order:2,menuItemFactory:hf},[Yt.id]:{order:3,menuItemFactory:mf}},[yl]:{order:2,menuItemFactory:Jh,[ut.id]:{order:0,menuItemFactory:ni},[Io.id]:{order:1,menuItemFactory:$h},[_o.id]:{order:2,menuItemFactory:em},[m.CancelFrozenCommand.id]:{order:3,menuItemFactory:oi}},[Qo]:{order:3,menuItemFactory:pi,[Wt.id]:{order:0,menuItemFactory:vi},[Bt.id]:{order:1,menuItemFactory:Ci},[Lt.id]:{order:2,menuItemFactory:Ii},[Ut.id]:{order:3,menuItemFactory:_i}}},[I.ContextMenuGroup.DATA]:{order:2},[I.ContextMenuGroup.OTHERS]:{order:3}},[I.ContextMenuPosition.COL_HEADER]:{[I.ContextMenuGroup.FORMAT]:{[Xe.name]:{order:0,menuItemFactory:Cn},[Ye.name]:{order:2,menuItemFactory:qr},[Qn]:{order:3,menuItemFactory:Qr,[fn.id]:{order:0,menuItemFactory:Jr},[pn.id]:{order:1,menuItemFactory:$r},[Vt.id]:{order:2,menuItemFactory:ei},[vn.id]:{order:3,menuItemFactory:ti}},[qo]:{order:4,menuItemFactory:mi,[m.ClearSelectionContentCommand.id]:{order:0,menuItemFactory:gi},[m.ClearSelectionFormatCommand.id]:{order:1,menuItemFactory:Si},[m.ClearSelectionAllCommand.id]:{order:2,menuItemFactory:fi}}},[I.ContextMenuGroup.LAYOUT]:{order:1,[lc]:{order:0,menuItemFactory:Sf,[m.InsertColBeforeCommand.id]:{order:0,menuItemFactory:Na},[m.InsertColAfterCommand.id]:{order:1,menuItemFactory:Cf}},[So.id]:{order:1,menuItemFactory:nm},[m.SetSelectedColsVisibleCommand.id]:{order:2,menuItemFactory:rm},[An.id]:{order:2,menuItemFactory:xa},[m.SetColWidthCommand.id]:{order:3,menuItemFactory:sm},[bo.id]:{order:4,menuItemFactory:Qh},[zi]:{order:5,menuItemFactory:Ca,[ut.id]:{order:0,menuItemFactory:ni},[m.CancelFrozenCommand.id]:{order:3,menuItemFactory:oi}},[Qo]:{order:6,menuItemFactory:pi,[Wt.id]:{order:0,menuItemFactory:vi},[Bt.id]:{order:1,menuItemFactory:Ci},[Lt.id]:{order:2,menuItemFactory:Ii},[Ut.id]:{order:3,menuItemFactory:_i}}},[I.ContextMenuGroup.DATA]:{order:2},[I.ContextMenuGroup.OTHERS]:{order:3}},[I.ContextMenuPosition.ROW_HEADER]:{[I.ContextMenuGroup.FORMAT]:{[Xe.name]:{order:0,menuItemFactory:Cn},[Ye.name]:{order:2,menuItemFactory:qr},[Qn]:{order:3,menuItemFactory:Qr,[fn.id]:{order:0,menuItemFactory:Jr},[pn.id]:{order:1,menuItemFactory:$r},[Vt.id]:{order:2,menuItemFactory:ei},[vn.id]:{order:3,menuItemFactory:ti}},[qo]:{order:4,menuItemFactory:mi,[m.ClearSelectionContentCommand.id]:{order:0,menuItemFactory:gi},[m.ClearSelectionFormatCommand.id]:{order:1,menuItemFactory:Si},[m.ClearSelectionAllCommand.id]:{order:2,menuItemFactory:fi}}},[I.ContextMenuGroup.LAYOUT]:{order:1,[cc]:{order:0,menuItemFactory:ff,[m.InsertRowBeforeCommand.id]:{order:0,menuItemFactory:ka},[m.InsertRowAfterCommand.id]:{order:1,menuItemFactory:vf}},[xn.id]:{order:1,menuItemFactory:Aa},[go.id]:{order:2,menuItemFactory:tm},[m.SetSelectedRowsVisibleCommand.id]:{order:2,menuItemFactory:om},[m.SetRowHeightCommand.id]:{order:3,menuItemFactory:im},[m.SetWorksheetRowIsAutoHeightCommand.id]:{order:4,menuItemFactory:qh},[zi]:{order:5,menuItemFactory:Ca,[ut.id]:{order:0,menuItemFactory:ni},[m.CancelFrozenCommand.id]:{order:3,menuItemFactory:oi}},[Qo]:{order:6,menuItemFactory:pi,[Wt.id]:{order:0,menuItemFactory:vi},[Bt.id]:{order:1,menuItemFactory:Ci},[Lt.id]:{order:2,menuItemFactory:Ii},[Ut.id]:{order:3,menuItemFactory:_i}}},[I.ContextMenuGroup.DATA]:{order:2},[I.ContextMenuGroup.OTHERS]:{order:3}},[I.ContextMenuPosition.FOOTER_TABS]:{[I.ContextMenuGroup.OTHERS]:{order:0,[Po.id]:{order:0,menuItemFactory:Uf},[m.CopySheetCommand.id]:{order:1,menuItemFactory:Lf},[ko.id]:{order:2,menuItemFactory:Bf},[m.SetTabColorCommand.id]:{order:3,menuItemFactory:Ff},[m.SetWorksheetHideCommand.id]:{order:4,menuItemFactory:jf},[Oo.id]:{order:6,menuItemFactory:zf},[yo.id]:{order:7,menuItemFactory:Df},[xo.id]:{order:8,menuItemFactory:Hf},[Ao.id]:{order:9,menuItemFactory:Vf},[Mo.id]:{order:10,menuItemFactory:Wf}}},[I.ContextMenuPosition.FOOTER_MENU]:{[I.ContextMenuGroup.OTHERS]:{[m.ToggleGridlinesCommand.id]:{order:1,menuItemFactory:gf}}}},gc={id:m.SetRowHiddenCommand.id,preconditions:n=>le(n),binding:I.KeyCode.Digit9|I.MetaKeys.CTRL_COMMAND},Sc={id:m.SetColHiddenCommand.id,preconditions:n=>le(n),binding:I.KeyCode.Digit0|I.MetaKeys.CTRL_COMMAND|I.MetaKeys.SHIFT},fc={id:xe.id,description:"shortcut.sheet.select-below-cell",group:"3_sheet-view",binding:I.KeyCode.ARROW_DOWN,priority:100,preconditions:le,staticParameters:{direction:a.Direction.DOWN}},pc={id:xe.id,description:"shortcut.sheet.select-up-cell",group:"3_sheet-view",binding:I.KeyCode.ARROW_UP,priority:100,preconditions:le,staticParameters:{direction:a.Direction.UP}},vc={id:xe.id,description:"shortcut.sheet.select-left-cell",group:"3_sheet-view",binding:I.KeyCode.ARROW_LEFT,priority:100,preconditions:ol,staticParameters:{direction:a.Direction.LEFT}},Cc={id:xe.id,description:"shortcut.sheet.select-right-cell",group:"3_sheet-view",binding:I.KeyCode.ARROW_RIGHT,priority:100,preconditions:ol,staticParameters:{direction:a.Direction.RIGHT}},Ic={id:$e.id,description:"shortcut.sheet.select-next-cell",group:"3_sheet-view",binding:I.KeyCode.TAB,priority:100,preconditions:le,staticParameters:{direction:a.Direction.RIGHT,keycode:I.KeyCode.TAB}},_c={id:$e.id,description:"shortcut.sheet.select-previous-cell",group:"3_sheet-view",binding:I.KeyCode.TAB|I.MetaKeys.SHIFT,priority:100,preconditions:le,staticParameters:{direction:a.Direction.LEFT,keycode:I.KeyCode.TAB}},bc={id:$e.id,description:"shortcut.sheet.select-below-cell",group:"3_sheet-view",binding:I.KeyCode.ENTER,priority:100,preconditions:le,staticParameters:{direction:a.Direction.DOWN,keycode:I.KeyCode.ENTER}},Rc={id:$e.id,description:"shortcut.sheet.select-up-cell",group:"3_sheet-view",binding:I.KeyCode.ENTER|I.MetaKeys.SHIFT,priority:100,preconditions:le,staticParameters:{direction:a.Direction.UP,keycode:I.KeyCode.ENTER}},Ec={id:xe.id,description:"shortcut.sheet.select-below-value-cell",group:"3_sheet-view",binding:I.KeyCode.ARROW_DOWN|I.MetaKeys.CTRL_COMMAND,preconditions:le,staticParameters:{direction:a.Direction.DOWN,jumpOver:Je.moveGap}},Tc={id:xe.id,description:"shortcut.sheet.select-up-value-cell",group:"3_sheet-view",binding:I.KeyCode.ARROW_UP|I.MetaKeys.CTRL_COMMAND,preconditions:le,staticParameters:{direction:a.Direction.UP,jumpOver:Je.moveGap}},wc={id:xe.id,description:"shortcut.sheet.select-left-value-cell",group:"3_sheet-view",binding:I.KeyCode.ARROW_LEFT|I.MetaKeys.CTRL_COMMAND,preconditions:le,staticParameters:{direction:a.Direction.LEFT,jumpOver:Je.moveGap}},yc={id:xe.id,description:"shortcut.sheet.select-right-value-cell",group:"3_sheet-view",binding:I.KeyCode.ARROW_RIGHT|I.MetaKeys.CTRL_COMMAND,preconditions:le,staticParameters:{direction:a.Direction.RIGHT,jumpOver:Je.moveGap}},Mc={id:De.id,description:"shortcut.sheet.expand-selection-down",group:"3_sheet-view",binding:I.KeyCode.ARROW_DOWN|I.MetaKeys.SHIFT,preconditions:le,staticParameters:{direction:a.Direction.DOWN}},Pc={id:De.id,description:"shortcut.sheet.expand-selection-up",group:"3_sheet-view",binding:I.KeyCode.ARROW_UP|I.MetaKeys.SHIFT,preconditions:le,staticParameters:{direction:a.Direction.UP}},Oc={id:De.id,description:"shortcut.sheet.expand-selection-left",group:"3_sheet-view",binding:I.KeyCode.ARROW_LEFT|I.MetaKeys.SHIFT,preconditions:le,staticParameters:{direction:a.Direction.LEFT}},xc={id:De.id,description:"shortcut.sheet.expand-selection-right",group:"3_sheet-view",binding:I.KeyCode.ARROW_RIGHT|I.MetaKeys.SHIFT,preconditions:le,staticParameters:{direction:a.Direction.RIGHT}},Ac={id:De.id,description:"shortcut.sheet.expand-selection-to-below-gap",group:"3_sheet-view",binding:I.KeyCode.ARROW_DOWN|I.MetaKeys.SHIFT|I.MetaKeys.CTRL_COMMAND,preconditions:le,staticParameters:{direction:a.Direction.DOWN,jumpOver:Je.moveGap}},kc={id:De.id,description:"shortcut.sheet.expand-selection-to-up-gap",group:"3_sheet-view",binding:I.KeyCode.ARROW_UP|I.MetaKeys.SHIFT|I.MetaKeys.CTRL_COMMAND,preconditions:le,staticParameters:{direction:a.Direction.UP,jumpOver:Je.moveGap}},Nc={id:De.id,description:"shortcut.sheet.expand-selection-to-left-gap",group:"3_sheet-view",binding:I.KeyCode.ARROW_LEFT|I.MetaKeys.SHIFT|I.MetaKeys.CTRL_COMMAND,preconditions:le,staticParameters:{direction:a.Direction.LEFT,jumpOver:Je.moveGap}},Dc={id:De.id,description:"shortcut.sheet.expand-selection-to-right-gap",group:"3_sheet-view",binding:I.KeyCode.ARROW_RIGHT|I.MetaKeys.SHIFT|I.MetaKeys.CTRL_COMMAND,preconditions:le,staticParameters:{direction:a.Direction.RIGHT,jumpOver:Je.moveGap}},Hc={id:xr.id,description:"shortcut.sheet.select-all",group:"3_sheet-view",binding:I.KeyCode.A|I.MetaKeys.CTRL_COMMAND,preconditions:le,staticParameters:{expandToGapFirst:!0,loop:!0}},Vc={id:Jt.id,description:"shortcut.sheet.set-bold",group:"4_sheet-edit",preconditions:n=>le(n),binding:I.KeyCode.B|I.MetaKeys.CTRL_COMMAND},Wc={id:$t.id,description:"shortcut.sheet.set-italic",group:"4_sheet-edit",preconditions:n=>le(n),binding:I.KeyCode.I|I.MetaKeys.CTRL_COMMAND},Uc={id:en.id,description:"shortcut.sheet.set-underline",group:"4_sheet-edit",preconditions:n=>le(n),binding:I.KeyCode.U|I.MetaKeys.CTRL_COMMAND},Lc={id:tn.id,description:"shortcut.sheet.set-strike-through",group:"4_sheet-edit",preconditions:n=>le(n),binding:I.KeyCode.X|I.MetaKeys.SHIFT|I.MetaKeys.CTRL_COMMAND},Bc={id:m.ClearSelectionContentCommand.id,preconditions:n=>le(n),binding:I.KeyCode.DELETE,mac:I.KeyCode.BACKSPACE},Fc={id:kn.id,description:"shortcut.sheet.zoom-in",binding:I.KeyCode.EQUAL|I.MetaKeys.CTRL_COMMAND,group:"3_sheet-view",preconditions:le,priority:1,staticParameters:{delta:.2}},jc={id:a.NilCommand.id,binding:I.KeyCode.EQUAL|I.MetaKeys.CTRL_COMMAND},zc={id:kn.id,description:"shortcut.sheet.zoom-out",binding:I.KeyCode.MINUS|I.MetaKeys.CTRL_COMMAND,group:"3_sheet-view",preconditions:le,priority:1,staticParameters:{delta:-.2}},Xc={id:a.NilCommand.id,binding:I.KeyCode.MINUS|I.MetaKeys.CTRL_COMMAND},Yc={id:kn.id,description:"shortcut.sheet.reset-zoom",binding:I.KeyCode.Digit0|I.MetaKeys.CTRL_COMMAND,preconditions:le,group:"3_sheet-view",priority:1,staticParameters:{reset:!0}},Gc={id:a.NilCommand.id,binding:I.KeyCode.Digit0|I.MetaKeys.CTRL_COMMAND};var Xf=Object.getOwnPropertyDescriptor,Yf=(n,r,e,t)=>{for(var o=t>1?void 0:t?Xf(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},St=(n,r)=>(e,t)=>r(e,t,n);exports.SheetUIController=class extends a.Disposable{constructor(r,e,t,o,i,s,l,d){super(),this._injector=r,this._componentManager=e,this._layoutService=t,this._commandService=o,this._shortcutService=i,this._menuManagerService=s,this._uiPartsService=l,this._configService=d,this._init()}_init(){this._initComponents(),this._initCommands(),this._initMenus(),this._initShortcuts(),this._initWorkbenchParts(),this._initFocusHandler()}_initComponents(){const r=this._componentManager;this.disposeWithMe(r.register(Hr,_l)),this.disposeWithMe(r.register(Ws,Ql)),this.disposeWithMe(r.register(Ro,K.ColorPicker)),this.disposeWithMe(r.register(kr,I.FontFamily)),this.disposeWithMe(r.register(Nr,I.FontFamilyItem)),this.disposeWithMe(r.register(Dr,I.FontSize)),this.disposeWithMe(r.register(ro,$l)),this.disposeWithMe(r.register("HideGridlines",Hl))}_initCommands(){[ks,wt,Ds,Ns,kn,De,xe,$e,ko,Po,xn,An,go,So,ze,Cs,xr,Lr,m.SetBoldCommand,Xt,Ce,ho,Jt,$t,en,tn,ws,ys,fo,po,Mn,Ms,m.SetItalicCommand,m.SetStrikeThroughCommand,m.SetFontFamilyCommand,m.SetFontSizeCommand,vo,Ar,Dn,Co,je,wn,ut,Io,_o,Is,m.SetUnderlineCommand,Nn,Le,Oo,uo,Gt,Yt,Un,Wn,Br,It,En,Qe,Vs,wo,Wt,Ut,yo,Mo,Ao,Lt,Bt,xo,bo,yr,Mr].forEach(r=>{this.disposeWithMe(this._commandService.registerCommand(r))})}_initMenus(){this._menuManagerService.mergeMenu(mc)}_initShortcuts(){[fc,pc,vc,Cc,Ic,_c,bc,Rc,Ec,Tc,wc,yc,Mc,Pc,Oc,xc,Ac,kc,Nc,Dc,Hc,Fc,zc,Yc,Gc,jc,Xc,Vc,Wc,Uc,Lc,Bc,...sl(),ll,al,cl,ul,hl,ml,dl,gc,Sc].forEach(r=>{this.disposeWithMe(this._shortcutService.registerShortcut(r))})}_initWorkbenchParts(){const r=this._uiPartsService,e=this._injector,t=this._configService.getConfig(Zt);(t==null?void 0:t.formulaBar)!==!1&&this.disposeWithMe(r.registerComponent(I.BuiltInUIPart.HEADER,()=>I.connectInjector(rc,e))),this.disposeWithMe(r.registerComponent(I.BuiltInUIPart.FOOTER,()=>I.connectInjector(oc,e))),this.disposeWithMe(r.registerComponent(I.BuiltInUIPart.CONTENT,()=>I.connectInjector(ic,e)))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(a.UniverInstanceType.UNIVER_SHEET,r=>{const t=this._injector.get(w.IRenderManagerService).getCurrentTypeOfRenderer(a.UniverInstanceType.UNIVER_DOC),o=t==null?void 0:t.with(J.DocSelectionRenderService);o==null||o.focus()}))}};exports.SheetUIController=Yf([St(0,a.Inject(a.Injector)),St(1,a.Inject(I.ComponentManager)),St(2,I.ILayoutService),St(3,a.ICommandService),St(4,I.IShortcutService),St(5,I.IMenuManagerService),St(6,I.IUIPartsService),St(7,a.IConfigService)],exports.SheetUIController);const Zc=(n=[])=>{const r=I.useDependency(Qt);V.useEffect(()=>{const e=n.map(t=>r.addShape({range:t,style:{fill:"rgba(73, 184, 17, 0.05)",strokeWidth:1,stroke:"#49B811",widgets:{}},primary:{startColumn:t.startColumn,endColumn:t.endColumn,startRow:t.startRow,endRow:t.endRow,actualRow:t.startRow,actualColumn:t.startColumn,isMerged:!1,isMergedMainCell:!1}}));return()=>{e.forEach(t=>{t&&r.removeShape(t)})}},[n])};var Gf=Object.getOwnPropertyDescriptor,Zf=(n,r,e,t)=>{for(var o=t>1?void 0:t?Gf(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Da=(n,r)=>(e,t)=>r(e,t,n);let io=class extends a.Disposable{constructor(r,e){super();E(this,"_previousSheetIndex",-1);this._commandService=r,this._univerInstanceService=e,this.disposeWithMe(this._commandService.beforeCommandExecuted(t=>{if(t.id===m.RemoveSheetMutation.id)return this._beforeAdjustActiveSheetOnRemoveSheet(t)})),this.disposeWithMe(this._commandService.onCommandExecuted((t,o)=>{if(t.id===m.RemoveSheetMutation.id)return this._adjustActiveSheetOnRemoveSheet(t);if(t.id===m.SetWorksheetHideMutation.id&&t.params.hidden)return this._adjustActiveSheetOnHideSheet(t);if(o!=null&&o.fromCollab)return!1;if(t.id===m.InsertSheetMutation.id)return this._adjustActiveSheetOnInsertSheet(t);if(t.id===m.SetWorksheetHideMutation.id&&!t.params.hidden)return this._adjustActiveSheetOnShowSheet(t);if(t.id===m.SetSelectionsOperation.id)return this._adjustActiveSheetOnSelection(t)}))}_adjustActiveSheetOnHideSheet(r){var d;const{unitId:e,subUnitId:t}=r.params,o=this._univerInstanceService.getUniverSheetInstance(e);if(!o||((d=o.getActiveSheet())==null?void 0:d.getSheetId())!==t)return;const s=o.getActiveSheetIndex(),l=Ha(o,s);this._switchToNextSheet(e,l)}_beforeAdjustActiveSheetOnRemoveSheet(r){const{unitId:e,subUnitId:t}=r.params,o=this._univerInstanceService.getUniverSheetInstance(e);if(!o)return;const i=o.getSheetBySheetId(t);i&&(this._previousSheetIndex=o.getSheetIndex(i))}_adjustActiveSheetOnRemoveSheet(r){if(this._previousSheetIndex===-1)return;const{unitId:e}=r.params,t=this._univerInstanceService.getUniverSheetInstance(e);if(!t)return;if(t.getActiveSheet().getSheetId()===r.params.subUnitId){const i=this._previousSheetIndex,s=i>=1?i-1:0,l=Ha(t,s);this._switchToNextSheet(e,l)}}_adjustActiveSheetOnInsertSheet(r){const{unitId:e,sheet:t}=r.params;this._switchToNextSheet(e,t.id)}_adjustActiveSheetOnShowSheet(r){const{unitId:e,subUnitId:t}=r.params;this._switchToNextSheet(e,t)}_adjustActiveSheetOnSelection(r){var o;const{unitId:e,subUnitId:t}=r.params;t!==((o=this._univerInstanceService.getUnit(e))==null?void 0:o.getActiveSheet().getSheetId())&&this._switchToNextSheet(e,t)}_switchToNextSheet(r,e){this._commandService.executeCommand(m.SetWorksheetActiveOperation.id,{unitId:r,subUnitId:e})}};io=Zf([Da(0,a.ICommandService),Da(1,a.IUniverInstanceService)],io);function Ha(n,r){const e=n.getSheetSize();for(let t=r;t>-1;t--){const o=n.getSheetByIndex(t);if(!o.getConfig().hidden)return o.getSheetId()}for(let t=r;t<e;t++){const o=n.getSheetByIndex(t);if(!o.getConfig().hidden)return o.getSheetId()}throw new Error("[ActiveWorksheetController]: could not find the next unhidden sheet! Collaboration error perhaps.")}var Kf=Object.getOwnPropertyDescriptor,qf=(n,r,e,t)=>{for(var o=t>1?void 0:t?Kf(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},At=(n,r)=>(e,t)=>r(e,t,n);exports.SheetCanvasPopManagerService=class extends a.Disposable{constructor(e,t,o,i,s,l,d){super();E(this,"_popupMenuFeatureMap",new Map);E(this,"_isSelectionMoving",!1);this._globalPopupManagerService=e,this._renderManagerService=t,this._univerInstanceService=o,this._refRangeService=i,this._commandService=s,this._refSelectionsService=l,this._selectionManagerService=d,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(e,t){this._popupMenuFeatureMap.set(e,t)}getFeatureMenu(e,t,o,i){const s=this._popupMenuFeatureMap.get(i);if(s)return s(e,t,o,i)}dispose(){super.dispose(),this._popupMenuFeatureMap.clear()}_createHiddenRectObserver(e){const{row:t,column:o,worksheet:i,skeleton:s,currentRender:l}=e,d=()=>{var z,X;const g=i.getFreeze(),{startRow:S,startColumn:f,xSplit:p,ySplit:v}=g,C=S-v,b=f-p,{rowHeightAccumulation:R,columnWidthAccumulation:T,rowHeaderWidth:M,columnHeaderHeight:y}=s,P=M+(b===-1?0:T[b+p-1]-((z=T[b-1])!=null?z:0)),x=y+(C===-1?0:R[C+v-1]-((X=R[C])!=null?X:0)),A=l.engine.getCanvasElement(),k=A.getBoundingClientRect(),N=bi(A.style.width),D=k.width/N,W=l.scene.getAncestorScale().scaleX,H=P*D*W,U=x*D*W,B={left:-1/0,top:-1/0,right:k.left+H,bottom:k.top+U},F={left:k.left+H,top:-1/0,right:1/0,bottom:k.top+U},L={left:-1/0,top:k.top+U,right:k.left+H,bottom:1/0};return t<S&&o<f?[]:t<S?[B]:o<f?[B]:[B,F,L]},c=d(),u=new O.BehaviorSubject(c),h=new a.DisposableCollection;return h.add(this._commandService.onCommandExecuted(g=>{if(g.id===m.SetFrozenMutation.id){const S=d();u.next(S)}})),{rects$:u,disposable:h}}_createPositionObserver(e,t,o,i){const s=()=>{const{scene:u}=t,h=ig(e,u,o,i),g=t.engine.getCanvasElement(),S=g.getBoundingClientRect(),f=bi(g.style.width),p=S.width/f;return{left:h.left*p+S.left,right:h.right*p+S.left,top:h.top*p+S.top,bottom:h.bottom*p+S.top}},l=s(),d=new O.BehaviorSubject(l),c=new a.DisposableCollection;return c.add(this._commandService.onCommandExecuted(u=>{(u.id===je.id||u.id===Le.id)&&d.next(s())})),{position:l,position$:d,disposable:c}}attachPopupToObject(e,t){var R;const o=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),i=o.getActiveSheet();if(!i||this._isSelectionMoving&&!t.showOnSelectionMoving)return{dispose:()=>{},canDispose:()=>!0};const s=o.getUnitId(),l=i.getSheetId(),d=(R=this._renderManagerService.getRenderById(s))==null?void 0:R.with(exports.SheetSkeletonManagerService).ensureSkeleton(l),c=this._renderManagerService.getRenderById(s);if(!c||!d)return{dispose:()=>{},canDispose:()=>!0};const{left:u,top:h,width:g,height:S}=e,f={left:u,right:u+g,top:h,bottom:h+S},{position:p,position$:v,disposable:C}=this._createPositionObserver(f,c,d,i),b=this._globalPopupManagerService.addPopup({...t,unitId:s,subUnitId:l,anchorRect:p,anchorRect$:v,canvasElement:c.engine.getCanvasElement()});return{dispose:()=>{this._globalPopupManagerService.removePopup(b),v.complete(),C.dispose()},canDispose:()=>this._globalPopupManagerService.activePopupId!==b}}attachPopupByPosition(e,t,o){var C;const i=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=i.getActiveSheet();if(!s)return null;const l=i.getUnitId(),d=s.getSheetId();if(l!==o.unitId||o.subUnitId!==d)return null;if(this._isSelectionMoving&&!t.showOnSelectionMoving)return;const c=(C=this._renderManagerService.getRenderById(l))==null?void 0:C.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:d}),u=this._renderManagerService.getRenderById(l);if(!u||!c)return null;const{position:h,position$:g,disposable:S}=this._createPositionObserver(e,u,c,s),{rects$:f,disposable:p}=this._createHiddenRectObserver({row:o.row,column:o.col,worksheet:s,skeleton:c,currentRender:u}),v=this._globalPopupManagerService.addPopup({...t,unitId:l,subUnitId:d,anchorRect:h,anchorRect$:g,hiddenRects$:f,canvasElement:u.engine.getCanvasElement()});return{dispose:()=>{this._globalPopupManagerService.removePopup(v),g.complete(),S.dispose(),p.dispose()},canDispose:()=>this._globalPopupManagerService.activePopupId!==v}}attachPopupToAbsolutePosition(e,t,o,i){var f;const s=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s.getActiveSheet();if(!l)return null;const d=s.getUnitId(),c=l.getSheetId();if(o&&d!==o||i&&i!==c)return null;const u=(f=this._renderManagerService.getRenderById(d))==null?void 0:f.with(exports.SheetSkeletonManagerService).ensureSkeleton(c),h=this._renderManagerService.getRenderById(d);if(!h||!u)return null;if(this._isSelectionMoving&&!t.showOnSelectionMoving)return;const g=new O.BehaviorSubject(e),S=this._globalPopupManagerService.addPopup({...t,unitId:d,subUnitId:c,anchorRect:e,anchorRect$:g.asObservable(),canvasElement:h.engine.getCanvasElement()});return{dispose:()=>{this._globalPopupManagerService.removePopup(S),g.complete()},canDispose:()=>this._globalPopupManagerService.activePopupId!==S}}attachPopupToCell(e,t,o,i,s,l){const d=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),c=d.getActiveSheet();if(!c)return null;const u=d.getUnitId(),h=c.getSheetId();if(i&&u!==i||s&&h!==s)return null;const g=this._renderManagerService.getRenderById(u),S=g==null?void 0:g.with(exports.SheetSkeletonManagerService).ensureSkeleton(h),f=g==null?void 0:g.with(ve);if(!g||!S||!f)return null;if(this._isSelectionMoving&&!o.showOnSelectionMoving)return;const p=l!=null?l:Ra(e,t,g.scene,c);if(!p)return null;const{position:v,position$:C,disposable:b,updateRowCol:R}=this._createCellPositionObserver(e,t,g,S,p),{rects$:T,disposable:M}=this._createHiddenRectObserver({row:e,column:t,worksheet:c,skeleton:S,currentRender:g}),y=this._globalPopupManagerService.addPopup({...o,unitId:u,subUnitId:h,anchorRect:v,anchorRect$:C,canvasElement:g.engine.getCanvasElement(),hiddenRects$:T}),P=new a.DisposableCollection;P.add(b),P.add(a.toDisposable(()=>{this._globalPopupManagerService.removePopup(y),C.complete()})),P.add(M);const x={startRow:e,endRow:e,startColumn:t,endColumn:t};return P.add(this._refRangeService.watchRange(u,h,x,(A,k)=>{k?R(k.startRow,k.startColumn):P.dispose()})),{dispose(){P.dispose()},canDispose:()=>this._globalPopupManagerService.activePopupId!==y}}attachRangePopup(e,t,o,i,s,l=!1){const d=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),c=d.getActiveSheet();if(!c)return null;const u=d.getUnitId(),h=c.getSheetId();if(o&&u!==o||i&&h!==i)return null;const g=this._renderManagerService.getRenderById(u),S=g==null?void 0:g.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:h}),f=g==null?void 0:g.with(ve);if(!g||!S||!f)return null;if(f.selectionMoving&&!l)return;const p=s!=null?s:Ra(e.startRow,e.startColumn,g.scene,c);if(!p)return null;const{position:v,position$:C,disposable:b,updateRowCol:R,topLeftPos$:T,rightBottomPos$:M}=this._createRangePositionObserver(e,g,S,p),{rects$:y,disposable:P}=this._createHiddenRectObserver({row:e.startRow,column:e.startColumn,worksheet:c,skeleton:S,currentRender:g}),x=this._globalPopupManagerService.addPopup({...t,unitId:u,subUnitId:h,anchorRect:v,anchorRect$:C,canvasElement:g.engine.getCanvasElement(),hiddenRects$:y}),A=new a.DisposableCollection;A.add(b),A.add(a.toDisposable(()=>{this._globalPopupManagerService.removePopup(x),T.complete(),M.complete()})),A.add(P);const k={...e};return A.add(this._refRangeService.watchRange(u,h,k,(N,D)=>{D?R(D.startRow,D.startColumn):A.dispose()})),{dispose(){A.dispose()},canDispose:()=>this._globalPopupManagerService.activePopupId!==x}}_createCellPositionObserver(e,t,o,i,s){let l=e,d=t;const c=this._calcCellPositionByCell(l,d,o,i,s),u=new O.BehaviorSubject(c),h=()=>u.next(this._calcCellPositionByCell(l,d,o,i,s)),g=new a.DisposableCollection;return g.add(o.engine.clientRect$.subscribe(()=>h())),g.add(this._commandService.onCommandExecuted(f=>{if(f.id===m.SetWorksheetRowAutoHeightMutation.id&&f.params.rowsAutoHeightInfo.findIndex(v=>v.row===l)>-1){h();return}(m.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(f.id)>-1||f.id===je.id||f.id===Le.id)&&h()})),{position$:u,disposable:g,position:c,updateRowCol:(f,p)=>{l=f,d=p,h()}}}_calcCellPositionByCell(e,t,o,i,s){const{scene:l,engine:d}=o,c=i.getCellWithCoordByIndex(e,t),u=c.isMergedMainCell?c.mergeInfo:c,{scaleX:h,scaleY:g}=l.getAncestorScale(),S={x:s.viewportScrollX,y:s.viewportScrollY},f=d.getCanvasElement(),p=f.getBoundingClientRect(),v=bi(f.style.width),{top:C,left:b,width:R}=p,T=R/v;return{left:(u.startX-S.x)*T*h+b,right:(u.endX-S.x)*T*h+b,top:(u.startY-S.y)*T*g+C,bottom:(u.endY-S.y)*T*g+C}}_createRangePositionObserver(e,t,o,i){let{startRow:s,startColumn:l}=e;const d=this._calcCellPositionByCell(s,l,t,o,i),c=new O.BehaviorSubject(d),u=this._calcCellPositionByCell(e.endRow,e.endColumn,t,o,i),h=new O.BehaviorSubject(u),g=()=>{const C=this._calcCellPositionByCell(s,l,t,o,i),b=this._calcCellPositionByCell(e.endRow,e.endColumn,t,o,i);c.next(C),h.next(b)},S=new a.DisposableCollection;S.add(t.engine.clientRect$.subscribe(()=>g())),S.add(this._commandService.onCommandExecuted(C=>{if(C.id===m.SetWorksheetRowAutoHeightMutation.id&&C.params.rowsAutoHeightInfo.findIndex(R=>R.row===s)>-1){g();return}(m.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(C.id)>-1||C.id===je.id||C.id===Le.id)&&g()}));const f=(C,b)=>{s=C,l=b,g()},p=c.pipe(O.map(C=>{const b=this._calcCellPositionByCell(e.endRow,e.endColumn,t,o,i);return{top:C.top,left:C.left,right:b.right,bottom:b.bottom}})),v={top:d.top,left:d.left,right:u.right,bottom:u.bottom};return{position$:p,position:v,updateRowCol:f,topLeftPos$:c,rightBottomPos$:h,disposable:S}}};exports.SheetCanvasPopManagerService=qf([At(0,a.Inject(I.ICanvasPopupService)),At(1,w.IRenderManagerService),At(2,a.IUniverInstanceService),At(3,a.Inject(m.RefRangeService)),At(4,a.ICommandService),At(5,m.IRefSelectionsService),At(6,a.Inject(m.SheetsSelectionsService))],exports.SheetCanvasPopManagerService);function bi(n){return Number.parseInt(n.replace("px",""))}var Qf=Object.getOwnPropertyDescriptor,Jf=(n,r,e,t)=>{for(var o=t>1?void 0:t?Qf(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Va=(n,r)=>(e,t)=>r(e,t,n),_n=(n=>(n[n.INFO=0]="INFO",n[n.WARNING=1]="WARNING",n[n.ERROR=2]="ERROR",n))(_n||{});exports.CellAlertManagerService=class extends a.Disposable{constructor(e,t){super();E(this,"_currentAlert$",new O.Subject);E(this,"_currentAlert",new Map);E(this,"currentAlert$",this._currentAlert$.asObservable());this._renderManagerService=e,this._canvasPopManagerService=t,this.disposeWithMe(()=>{this._currentAlert$.complete()})}get currentAlert(){return this._currentAlert}showAlert(e){let t=this._currentAlert.get(e.key);t&&t.dispose.dispose(),t?t.dispose.dispose():(t={alert:e,dispose:{dispose(){}}},this._currentAlert.set(e.key,t));const{location:o}=e,{row:i,col:s,unitId:l}=o;if(!this._renderManagerService.getRenderById(l))return;const c=this._canvasPopManagerService.attachPopupToCell(i,s,{componentKey:Kc,direction:"horizontal",offset:[2,0],extraProps:{alert:e}});c&&(t.dispose=c),this._currentAlert$.next(Array.from(this._currentAlert.entries()))}removeAlert(e){const t=this._currentAlert.get(e);t&&(this._currentAlert.delete(e),t==null||t.dispose.dispose(),this._currentAlert$.next(Array.from(this._currentAlert.entries())))}clearAlert(){this._currentAlert.forEach(e=>{e.dispose.dispose()}),this._currentAlert.clear(),this._currentAlert$.next(Array.from(this._currentAlert.entries()))}};exports.CellAlertManagerService=Jf([Va(0,w.IRenderManagerService),Va(1,a.Inject(exports.SheetCanvasPopManagerService))],exports.CellAlertManagerService);const $f="univer-cell-alert",ep="univer-cell-alert-title",tp="univer-cell-alert-icon",np="univer-cell-alert-icon-error",op="univer-cell-alert-icon-info",rp="univer-cell-alert-icon-warning",ip="univer-cell-alert-content",nt={cellAlert:$f,cellAlertTitle:ep,cellAlertIcon:tp,cellAlertIconError:np,cellAlertIconInfo:op,cellAlertIconWarning:rp,cellAlertContent:ip};function sp({popup:n}){var s;const r=(s=n.extraProps)==null?void 0:s.alert;if(!r)return null;const{type:e,title:t,message:o}=r,i={[_n.ERROR]:_.jsx(Ps,{className:pe(nt.cellAlertIcon,nt.cellAlertIconError)}),[_n.INFO]:_.jsx(Ki,{className:pe(nt.cellAlertIcon,nt.cellAlertIconInfo)}),[_n.WARNING]:_.jsx(Ki,{className:pe(nt.cellAlertIcon,nt.cellAlertIconWarning)})};return _.jsxs("div",{className:nt.cellAlert,children:[_.jsxs("div",{className:nt.cellAlertTitle,children:[e?i[e]:null,t]}),_.jsx("div",{className:nt.cellAlertContent,children:o})]})}const Kc="univer.sheet.cell-alert";var ap=Object.getOwnPropertyDescriptor,lp=(n,r,e,t)=>{for(var o=t>1?void 0:t?ap(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},cp=(n,r)=>(e,t)=>r(e,t,n);let cr=class extends a.Disposable{constructor(n,r){super(),this._context=n,this._componentManager=r,this._initComponent()}_initComponent(){this._componentManager.register(Kc,sp)}};cr=lp([cp(1,a.Inject(I.ComponentManager))],cr);const dp="univer-sheet-paste-options-wrapper",up="univer-sheet-paste-options-icon-wrapper",hp="univer-sheet-paste-options-menu",mp="univer-sheet-paste-options-menu-item",gp="univer-sheet-paste-options-menu-item-title",Sp="univer-sheet-paste-options-menu-item-icon",dn={sheetPasteOptionsWrapper:dp,sheetPasteOptionsIconWrapper:up,sheetPasteOptionsMenu:hp,sheetPasteOptionsMenuItem:mp,sheetPasteOptionsMenuItemTitle:gp,sheetPasteOptionsMenuItemIcon:Sp},Wa=2,fp=[{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"}],pp=n=>{var N,D,W,H,U;const r=I.useDependency(a.IUniverInstanceService),e=I.useDependency(w.IRenderManagerService),t=mt();if(!n||!t)return null;const o={startRow:n.rows[0],startCol:n.cols[0],endRow:n.rows[n.rows.length-1],endCol:n.cols[n.cols.length-1]};if(o.endRow<0||o.endCol<0)return null;const i=e.getRenderById(t.getUnitId()),s=i==null?void 0:i.with(exports.SheetSkeletonManagerService),l=i==null?void 0:i.with(ve),d=Ge(r,e);if(!d||!l)return null;const{scene:c}=d,u=s==null?void 0:s.getCurrentSkeleton(),h=l.getViewPort(),g=c==null?void 0:c.scaleX,S=c==null?void 0:c.scaleY,f=c==null?void 0:c.getViewportScrollXY(h),p=(N=c.getEngine())==null?void 0:N.getCanvas();if(!g||!c||!g||!S||!f)return null;const v=u==null?void 0:u.getNoMergeCellPositionByIndex(o.endRow,o.endCol),C=(D=v==null?void 0:v.endX)!=null?D:0,b=(W=v==null?void 0:v.endY)!=null?W:0,R=(H=w.convertTransformToOffsetX(C,g,f))!=null?H:-9999,T=(U=w.convertTransformToOffsetY(b,S,f))!=null?U:-9999,M=p==null?void 0:p.getWidth(),y=p==null?void 0:p.getHeight();if(!M||!y)return null;const P=R+50<=M,x=T+50<=y;let A=R,k=T;return P||(A=M-100),x||(k=y-100),{positionX:A,positionY:k}},vp=()=>{const n=I.useDependency(Be),r=I.useObservable(n.showMenu$,!1),e=I.useDependency(Kt),t=I.useObservable(n.pasteOptionsCache$,null),o=I.useDependency(a.LocaleService),i=I.useDependency(a.ICommandService),[s,l]=V.useState(!1),[d,c]=V.useState(!1);I.useObservable(e.refreshOptionalPaste$,Math.random());const u=t==null?void 0:t.target.pastedRange,h=pp(u);if(!h||!r||h.positionX<50||h.positionY<30)return null;const g=s||d,S=f=>{i.executeCommand(Il.id,{type:f})};return _.jsx("div",{className:dn.sheetPasteOptionsWrapper,style:{left:h.positionX+Wa,top:h.positionY+Wa},onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),children:_.jsxs(K.DropdownProvider,{visible:d,onVisibleChange:f=>{c(f)},children:[_.jsx(K.DropdownTrigger,{children:_.jsxs("div",{className:dn.sheetPasteOptionsIconWrapper,onClick:()=>{c(!d)},children:[_.jsx(Wl,{style:{color:"#35322B"},extend:{colorChannel1:"rgb(var(--green-700))"}}),g&&_.jsx(Pn,{})]})}),_.jsx(K.DropdownOverlay,{className:pe(dn.sheetPasteOptionsMenu,`
54
+ `:He.slideTabItem,style:{backgroundColor:!i&&t?t:"",color:!i&&t?c(t):"",boxShadow:i&&t?`0px 0px 8px rgba(0, 0, 0, 0.08), inset 0px -2px 0px 0px ${t}`:""},children:_.jsx("div",{className:He.slideTabDiv,children:e})},r)}const qS={easeOutStrong(n,r,e,t){return-e*((n=n/t-1)*n*n*n-1)+r},backOut(n,r,e,t,o){return typeof o>"u"&&(o=.7),e*((n=n/t-1)*n*((o+1)*n+o)+1)+r}},QS={loop:!1,begin:0,end:0,duration:300,delay:0,type:"easeOutStrong",receive(n){},success(n){},cancel(n){},complete(n){}};class JS{constructor(r){E(this,"_config");E(this,"_status",0);E(this,"_start",0);E(this,"_handle",0);E(this,"_delayHandle",null);this._config={...QS,...r},this._config.loop&&(this._config.complete=()=>{},this._config.success=()=>{this.request()})}static success(...r){let e=0;return new Promise(t=>{for(let o=0;o<r.length;o++){const i=r[o],s=i._config,l=s.success;s.loop||(s.success=d=>{e++,l&&l.call(i,d),e===r.length&&t()})}})}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 r=Date.now()-this._start;r=r>=this._config.duration?this._config.duration:r;const t=qS[this._config.type](r,this._config.begin,this._config.end-this._config.begin,this._config.duration,.7).toFixed(2);if(this._config.receive(t),this._status===1){this._config.cancel(t),this._config.complete(t);return}if(r===this._config.duration){this._config.success(t),this._config.complete(t);return}this._handle=requestAnimationFrame(()=>{this._fakeHandle()})}}class Bt{constructor(r,e){E(this,"_slideTabItem");E(this,"_animate");E(this,"_midline",0);E(this,"_translateX");E(this,"_scrollbar");E(this,"_slideTabBar");E(this,"_editMode");E(this,"_placeholder");this._slideTabItem=r,this._animate=null,this._translateX=0,this._editMode=!1,this._slideTabBar=e,this._placeholder=null,this._scrollbar=e.getScrollbar(),this.update()}static midline(r){return r.getBoundingRect().x+r.getBoundingRect().width/2}static leftLine(r){return r.getBoundingRect().x}static rightLine(r){return r.getBoundingRect().x+r.getBoundingRect().width}static make(r,e){const t=[];return r.forEach(o=>t.push(new Bt(o,e))),t}getSlideTabItem(){return this._slideTabItem}getEditor(){return this._slideTabItem.querySelector("span")}focus(){var r;(r=this.getEditor())==null||r.focus()}selectAll(){const r=this.getEditor();r&&In.keepSelectAll(r)}isEditMode(){return this._editMode}classList(){return this._slideTabItem.classList}translateX(r){return this._translateX=r,this._slideTabItem.style.transform=`translateX(${r}px)`,this.getTranslateXDirection()}setEditor(r){if(!this._slideTabBar.getConfig().onNameChangeCheck())return;let e=!0;if(this._editMode===!1){const t=this._slideTabItem.querySelector("span"),o=d=>{if(!this.nameCheck()){if(this._editMode=!1,t&&(t.removeAttribute("contentEditable"),t.removeEventListener("focusout",o),t.removeEventListener("compositionstart",s),t.removeEventListener("compositionend",l),t.removeEventListener("input",c),t.removeEventListener("keydown",i),t.classList.remove(this._slideTabBar.getConfig().slideTabBarSpanEditClassName)),this._slideTabBar.removeListener(),this._slideTabBar.updateItems(),this._slideTabBar.getConfig().onChangeName){const u=(t==null?void 0:t.innerText)||"",h=this.getId();this._slideTabBar.getConfig().onChangeName(h,u)}r&&r(d)}};let i=d=>{t&&(d.stopPropagation(),d.key==="Enter"&&t.blur())};const s=d=>{e=!1},l=d=>{e=!0},c=d=>{if(!t)return;const u=31;setTimeout(()=>{if(e){const h=t.innerText;h.length>u&&(t.innerText=h.substring(0,u),In.keepLastIndex(t))}},0)};t&&(t.setAttribute("contentEditable","true"),t.addEventListener("focusout",o),t.addEventListener("compositionstart",s),t.addEventListener("compositionend",l),t.addEventListener("input",c),t.addEventListener("keydown",i),t.classList.add(this._slideTabBar.getConfig().slideTabBarSpanEditClassName),this._editMode=!0,In.keepSelectAll(t))}}nameCheck(){const r=this._slideTabItem.querySelector("span");if(!r)return!1;const e=r.innerText;return this._slideTabBar.getConfig().onNameCheckAlert(e)}animate(){return{translateX:r=>{this._translateX!==r&&(this._animate&&(this._animate.cancel(),this._animate=null),this._animate=new JS({begin:this._translateX,end:r,receive:e=>{this._slideTabItem.style.transform=`translateX(${e}px)`}}),this._translateX=r,this._animate.request())},cancel:()=>{this._animate&&(this._animate.cancel(),this._animate=null)}}}after(r){this._slideTabItem.after(r._slideTabItem||r)}update(){this._midline=Bt.midline(this)}disableFixed(){if(this._placeholder){const r=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),r.removeChild(this._placeholder),this._placeholder=null}}enableFixed(){const r=document.createElement("div"),e=this.getBoundingRect(),t=getComputedStyle(this._slideTabItem),o=this._slideTabItem.querySelector("span");if(this._placeholder=r,this._placeholder.style.width=`${e.width}px`,this._placeholder.style.height=`${e.height}px`,this._placeholder.style.flexShrink="0",this._placeholder.style.margin=t.margin,this._slideTabItem.style.background=t.background,o){const i=getComputedStyle(o).padding;this._slideTabItem.style.padding=i}this._slideTabItem.style.boxSizing=t.boxSizing,this._slideTabItem.style.fontSize=t.fontSize,this._slideTabItem.style.fontFamily=t.fontFamily,this._slideTabItem.style.fontWeight=t.fontWeight,this._slideTabItem.style.color=t.color,this._slideTabItem.style.borderRadius=t.borderRadius,this._slideTabItem.style.left=`${e.x-this.getScrollbar().getScrollX()}px`,this._slideTabItem.style.top=`${e.y}px`,this._slideTabItem.style.width=`${e.width}px`,this._slideTabItem.style.height=`${e.height}px`,this._slideTabItem.style.position="fixed",this._slideTabItem.after(r),document.body.appendChild(this._slideTabItem)}addEventListener(r,e,t){this._slideTabItem.addEventListener(r,e,t)}removeEventListener(r,e,t){this._slideTabItem.removeEventListener(r,e,t)}getScrollbar(){return this._scrollbar}getMidLine(){return this._midline}getBoundingRect(){const r=this._slideTabItem.getBoundingClientRect();return r.x+=this._scrollbar.getScrollX(),r}getWidth(){return this.getBoundingRect().width}getTranslateXDirection(){const r=Bt.midline(this);return r>this._midline?1:r<this._midline?-1:0}equals(r){return r&&r._slideTabItem===this._slideTabItem}getId(){return this._slideTabItem.dataset.id||""}}class $S{constructor(r){E(this,"_slideTabBar");E(this,"_scrollX");const e=r.primeval();this._scrollX=e.scrollLeft,this._slideTabBar=r}scrollX(r){const e=this._slideTabBar.primeval();e.scrollLeft=r,this._scrollX=e.scrollLeft}scrollRight(){const r=this._slideTabBar.primeval();r.scrollLeft=r.scrollWidth,this._scrollX=r.scrollLeft}getScrollX(){return this._scrollX}}const gn=class gn{constructor(r){E(this,"_activeTabItemIndex",0);E(this,"_slideTabBar");E(this,"_slideTabItems",[]);E(this,"_config");E(this,"_downActionX",0);E(this,"_moveActionX",0);E(this,"_compareIndex",0);E(this,"_activeTabItem",null);E(this,"_moveAction");E(this,"_upAction");E(this,"_downAction");E(this,"_wheelAction");E(this,"_scrollIncremental",0);E(this,"_compareDirection",0);E(this,"_autoScrollTime",null);E(this,"_slideScrollbar");E(this,"_longPressTimer",null);E(this,"_leftBoundingLine",0);E(this,"_rightBoundingLine",0);E(this,"_leftMoveX",0);E(this,"_rightMoveX",0);var s;if(r.slideTabBarContainer==null)throw new Error("not found slide-tab-bar root element");const e=r.slideTabBarContainer.querySelector(`.${(s=r.slideTabBarClassName)!=null?s:"slide-tab-bar"}`);if(e==null)throw new Error("not found slide-tab-bar");this._slideTabBar=e,this._slideScrollbar=new $S(this),this._config=r,this._initConfig();let t=0,o=0,i=0;this._downAction=l=>{var y,P,x,A,k,N;if((y=this._activeTabItem)!=null&&y.isEditMode())return;this._longPressTimer&&(clearTimeout(this._longPressTimer),this._longPressTimer=null);const c=(x=(P=l.target)==null?void 0:P.closest(`.${r.slideTabBarItemClassName}`))==null?void 0:x.getAttribute("data-id"),d=this._slideTabItems.findIndex(D=>D.getId()===c);if(c==null||d===-1)return;if(this._activeTabItemIndex!==d){(A=this._activeTabItem)==null||A.removeEventListener("pointermove",this._moveAction),(k=this._activeTabItem)==null||k.removeEventListener("pointerup",this._upAction),this.removeListener(),this._config.onChangeTab(l,c);return}if(this._compareIndex=d,this._downActionX=l.pageX,this._moveActionX=0,this._scrollIncremental=0,this._activeTabItem=this._slideTabItems[d],!this._activeTabItem){console.error("Not found active slide-tab-item in sheet bar");return}const u=this._activeTabItem.getSlideTabItem();u==null||u.setPointerCapture(l.pointerId),(N=this._activeTabItem)==null||N.addEventListener("pointerup",this._upAction);const{x:h,width:g}=this._activeTabItem.getBoundingRect(),{x:S,width:f}=this.getBoundingRect(),p=this._slideScrollbar.getScrollX();if(this._leftBoundingLine=this._downActionX-(h-p),this._rightBoundingLine=h-p+g-this._downActionX,this._leftMoveX=h-S-p,this._rightMoveX=S+f-(h+g)+p,l.button===2||this._hasEditItem())return;const{pageX:v,pageY:C}=l,b=Date.now(),R=b-i<=gn.DoubleClickDelay,T=Math.abs(v-t)<10,M=Math.abs(C-o)<10;R&&T&&M&&this._activeTabItem.setEditor(),t=v,o=C,i=b,this._longPressTimer=setTimeout(()=>{var D,W,H;!u||(D=this._activeTabItem)!=null&&D.isEditMode()||((W=this._activeTabItem)==null||W.enableFixed(),this._startAutoScroll(),u.setPointerCapture(l.pointerId),u.style.cursor="move",(H=this._activeTabItem)==null||H.addEventListener("pointermove",this._moveAction))},gn.LongPressDelay)},this._upAction=l=>{var u,h,g,S;if((u=this._activeTabItem)!=null&&u.isEditMode()||(this._longPressTimer&&(clearTimeout(this._longPressTimer),this._longPressTimer=null),!this._activeTabItem))return;const c=this._autoScrollTime!==null;this._closeAutoScroll(),this._activeTabItem.disableFixed(),this.updateItems();const d=(h=this._activeTabItem)==null?void 0:h.getSlideTabItem();d&&(d.style.cursor="",d.releasePointerCapture(l.pointerId),(g=this._activeTabItem)==null||g.removeEventListener("pointermove",this._moveAction),(S=this._activeTabItem)==null||S.removeEventListener("pointerup",this._upAction),this._config.onSlideEnd&&this._activeTabItemIndex!==this._compareIndex&&c&&(this.removeListener(),this._config.onSlideEnd(l,this._compareIndex||0)),this._scrollIncremental=0,this._downActionX=0,this._moveActionX=0,this._compareIndex=0)},this._moveAction=l=>{this._activeTabItem&&(this._moveActionX=l.pageX-this._downActionX,this._moveActionX<=-this._leftMoveX?this._moveActionX=-this._leftMoveX:this._moveActionX>=this._rightMoveX&&(this._moveActionX=this._rightMoveX),this._scrollIncremental=0,this._scrollLeft(l),this._scrollRight(l))},this._wheelAction=l=>{this.setScroll(l.deltaY)},this.addListener()}static checkedSkipSlide(r){let e=r.target;for(;e!=null&&e!==document.body;){if(e.getAttribute("data-slide-skip"))return!0;e=e.parentElement}return!1}static keepLastIndex(r){setTimeout(()=>{const e=window.getSelection();e&&(e.selectAllChildren(r),e.collapseToEnd())})}static keepSelectAll(r){setTimeout(()=>{const e=window.getSelection();if(!e)return;const t=document.createRange();t.selectNodeContents(r),e.removeAllRanges(),e.addRange(t)})}update(r){this._config.currentIndex=r,this._initConfig(),this.removeListener(),this.addListener(),this.scrollToItem(r)}primeval(){return this._slideTabBar}updateItems(){for(let r=0;r<this._slideTabItems.length;r++)this._slideTabItems[r].animate().cancel(),this._slideTabItems[r].translateX(0),this._slideTabItems[r].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 r=this._slideTabBar.parentElement;return r?this._slideTabBar.scrollWidth-r.clientWidth===this._slideTabBar.scrollLeft:!1}addListener(){this._slideTabBar.addEventListener("wheel",this._wheelAction),this._slideTabItems.forEach(r=>{r.addEventListener("pointerdown",this._downAction)})}removeListener(){this._slideTabBar.removeEventListener("wheel",this._wheelAction),this._slideTabItems.forEach(r=>{r.removeEventListener("pointerdown",this._downAction)})}setScroll(r){if(this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+r),r>0){const e=this.calculateLeftScrollX();this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e)}else if(r<0){const e=this.calculateRightScrollX();this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e)}this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}flipPage(r){if(r>0){const e=this.calculateLeftScrollX(!0);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e)}else if(r<0){const e=this.calculateRightScrollX(!0);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e)}this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}scrollToItem(r){if(r=r!=null?r:this._config.currentIndex,r<0||r>=this._slideTabItems.length){console.error("Index out of bounds");return}const e=this.calculateTabItemScrollX(r);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e),this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}calculateLeftScrollX(r){let e=0;const t=4;return this._slideTabItems.some(o=>{const i=this._slideTabBar.getBoundingClientRect(),s=i.left+i.width,l=o.getSlideTabItem().getBoundingClientRect(),c=l.left,d=l.width;return c<s&&c+d+t*2>s?(e=r?c-i.left-t:c+d-s+t,!0):!1}),e}calculateRightScrollX(r){let e=0;const t=4;return this._slideTabItems.some(o=>{const i=this._slideTabBar.getBoundingClientRect(),s=i.left,l=o.getSlideTabItem().getBoundingClientRect(),c=l.left,d=l.width;return c-t*2<s&&c+d>s?(e=r?c+d-i.left-i.width+t:c-s-t,!0):!1}),e}calculateTabItemScrollX(r){let e=0;const t=4,o=this._slideTabBar.getBoundingClientRect(),i=o.left,s=o.left+o.width,l=this._slideTabItems[r].getSlideTabItem().getBoundingClientRect(),c=l.left,d=l.width;return c-t*2<i&&(e=c-i-t),c+d+t*2>s&&(e=c+d-s+t),e}calculateActiveTabItemScrollX(){var d;let r=0;const e=4,t=this._slideTabBar.getBoundingClientRect(),o=t.left,i=t.left+t.width,s=(d=this._activeTabItem)==null?void 0:d.getSlideTabItem().getBoundingClientRect();if(!s)return 0;const l=s.left,c=s.width;return l-e*2<o&&l+c>o&&(r=l-o-e),l<i&&l+c+e*2>i&&(r=l+c-i+e),r}destroy(){this.removeListener(),this._downActionX=0,this._moveActionX=0,this._compareDirection=0,this._compareIndex=0,this._slideTabItems=[],this._activeTabItem=null}_hasEditItem(){for(let r=0;r<this._slideTabItems.length;r++)if(this._slideTabItems[r].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(r){const e=this.getBoundingRect(),t=r.pageX-e.x;t<this._leftBoundingLine&&(this._scrollIncremental=-Math.min(Math.abs(t-this._leftBoundingLine)*.1,50))}_scrollRight(r){const e=this.getBoundingRect(),t=r.pageX-e.x;t>e.width-this._rightBoundingLine&&(this._scrollIncremental=Math.min(Math.abs(t-(e.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 r=0;r<this._slideTabItems.length;r++){const e=this._slideTabItems[r],t=this._slideTabItems[r+1];t&&e.after(t)}}_compareLeft(){if(this._activeTabItem&&this._activeTabItemIndex){const r=this._slideTabItems.findIndex(i=>i.equals(this._activeTabItem)),e=this._slideTabItems.length,t=[];for(let i=0;i<r&&!(i>=r);i++)t.push(this._slideTabItems[i]);for(let i=r+1;i<e;i++)this._slideTabItems[i].animate().translateX(0);let o=!0;for(let i=t.length-1;i>=0;i--){const s=t[i];Bt.leftLine(this._activeTabItem)<s.getMidLine()?(s.animate().translateX(this._activeTabItem.getWidth()),this._compareIndex=i,o=!1):(s.animate().translateX(0),o&&(this._compareIndex=this._activeTabItemIndex))}}}_compareRight(){if(this._activeTabItem){const r=this._slideTabItems.findIndex(i=>i.equals(this._activeTabItem)),e=this._slideTabItems.length,t=[];for(let i=r+1;i<e;i++)t.push(this._slideTabItems[i]);for(let i=0;i<r;i++)this._slideTabItems[i].animate().translateX(0);let o=!0;for(let i=0;i<t.length;i++){const s=t[i];Bt.rightLine(this._activeTabItem)>s.getMidLine()?(s.animate().translateX(-this._activeTabItem.getWidth()),this._compareIndex=r+i+1,o=!1):(s.animate().translateX(0),o&&(this._compareIndex=this._activeTabItemIndex))}}}_initConfig(){var e;const r=this._slideTabBar.querySelectorAll(`.${(e=this._config.slideTabBarItemClassName)!=null?e:"slide-tab-item"}`);this._downActionX=0,this._moveActionX=0,this._compareDirection=0,this._compareIndex=0,this._slideTabItems=Bt.make(r,this),this._activeTabItemIndex=this._config.currentIndex,this._activeTabItem=this._slideTabItems[this._activeTabItemIndex]}};E(gn,"LongPressDelay",500),E(gn,"DoubleClickDelay",300);let In=gn;function ef(){var se;const[n,r]=V.useState([]),[e,t]=V.useState(""),[o,i]=V.useState(""),[s,l]=V.useState(!1),[c,d]=V.useState([0,0]),u=V.useRef({slideTabBar:null}),h=V.useRef(null),g=I.useDependency(a.ICommandService),S=I.useDependency(nn),f=I.useDependency(a.LocaleService),p=I.useDependency(I.IConfirmService),v=I.useDependency(a.IConfigService),C=I.useDependency(Se,a.Quantity.OPTIONAL),b=I.useDependency(m.WorksheetProtectionRuleModel),R=I.useDependency(m.RangeProtectionRuleModel),T=I.useObservable(b.resetOrder$),M=ht(),y=I.useDependency(a.IPermissionService),P=V.useCallback(()=>{var ae;const X=((ae=M.getActiveSheet())==null?void 0:ae.getSheetId())||"";t(X);const Y=M.getSheets(),G=M.getActiveSheet(),J=Y.filter(ue=>!ue.isSheetHidden()).map((ue,de)=>{var yt;const oe=b.getRule(M.getUnitId(),ue.getSheetId()),ie=R.getSubunitRuleList(M.getUnitId(),ue.getSheetId()).length>0,Ie=(oe==null?void 0:oe.permissionId)||ie?_.jsxs(_.Fragment,{children:[_.jsx(ks,{}),_.jsx("span",{children:ue.getName()})]}):_.jsx("span",{children:ue.getName()});return{sheetId:ue.getSheetId(),label:Ie,index:de,selected:G===ue,color:(yt=ue.getTabColor())!=null?yt:void 0}});r(J),t(X)},[R,M,b]);V.useEffect(()=>{P();const{slideTabBar:X,disconnectResizeObserver:Y}=x(),G=F(),J=[L(),j(),z()];return()=>{G.dispose(),X.destroy(),J.forEach(ae=>ae.unsubscribe()),Y&&Y()}},[T,M]),V.useEffect(()=>{n.length>0&&B()},[n]),V.useEffect(()=>{const X=O.merge(b.ruleChange$,R.ruleChange$).subscribe(()=>{P()});return()=>{X.unsubscribe()}},[b,P]);const x=()=>{const X=new In({slideTabBarClassName:He.slideTabBar,slideTabBarItemActiveClassName:He.slideTabActive,slideTabBarItemClassName:He.slideTabItem,slideTabBarSpanEditClassName:He.slideTabDivEdit,slideTabBarItemAutoSort:!0,slideTabBarContainer:h.current,currentIndex:0,onChangeName:(G,J)=>{g.executeCommand(m.SetWorksheetNameCommand.id,{subUnitId:G,name:J})},onSlideEnd:async(G,J)=>{await g.executeCommand(m.SetWorksheetOrderCommand.id,{order:J})},onChangeTab:(G,J)=>{g.executeCommand(m.SetWorksheetActiveOperation.id,{subUnitId:J,unitId:M.getUnitId()}).then(()=>{G.button===2&&re(!0)})},onScroll:G=>{S.setScroll(G)},onNameCheckAlert:G=>N(G)||D(G)||W(G),onNameChangeCheck:()=>{var oe,ie,fe,Ie;const G=M.getUnitId(),J=M==null?void 0:M.getActiveSheet();if(!J)throw new Error("No active sheet found");const ae=J.getSheetId(),ue=b.getRule(G,ae),de=R.getSubunitRuleList(G,ae).length>0;return ue||de?(ie=(oe=y.getPermissionPoint(new m.WorkbookManageCollaboratorPermission(G).id))==null?void 0:oe.value)!=null?ie:!1:(Ie=(fe=y.getPermissionPoint(new m.WorkbookRenameSheetPermission(G).id))==null?void 0:fe.value)!=null?Ie:!1}});u.current.slideTabBar=X;const Y=Q(X);return{slideTabBar:X,disconnectResizeObserver:Y}},A=v.getConfig(I.UI_PLUGIN_CONFIG_KEY),k=(se=A==null?void 0:A.contextMenu)!=null?se:!0,N=X=>{if(X.trim()===""){const Y="sheetNameEmptyAlert";return p.open({id:Y,title:{title:f.t("sheetConfig.sheetNameErrorTitle")},children:{title:f.t("sheetConfig.sheetNameCannotIsEmptyError")},cancelText:f.t("button.cancel"),confirmText:f.t("button.confirm"),onClose(){H(),p.close(Y)},onConfirm(){H(),p.close(Y)}}),!0}return!1},D=X=>{if(!a.nameCharacterCheck(X)){const Y="sheetNameSpecCharAlert";return p.open({id:Y,title:{title:f.t("sheetConfig.sheetNameErrorTitle")},children:{title:f.t("sheetConfig.sheetNameSpecCharError")},cancelText:f.t("button.cancel"),confirmText:f.t("button.confirm"),onClose(){H(),p.close(Y)},onConfirm(){H(),p.close(Y)}}),!0}return!1},W=X=>{const Y=M.getActiveSheet();if((Y==null?void 0:Y.getName())===X)return!1;const J=M.checkSheetName(X);if(J){const ae="sheetNameRepeatAlert";p.open({id:ae,title:{title:f.t("sheetConfig.sheetNameErrorTitle")},children:{title:f.t("sheetConfig.sheetNameAlreadyExistsError")},cancelText:f.t("button.cancel"),confirmText:f.t("button.confirm"),onClose(){p.close(ae),H()},onConfirm(){p.close(ae),H()}})}return J},H=()=>{setTimeout(()=>{var Y;const X=(Y=u.current.slideTabBar)==null?void 0:Y.getActiveItem();X&&(X.focus(),X.selectAll())},0)},U=()=>{var X,Y;(Y=(X=u.current.slideTabBar)==null?void 0:X.getActiveItem())==null||Y.setEditor()},B=()=>{var Y;const X=n.findIndex(G=>G.selected);(Y=u.current.slideTabBar)==null||Y.update(X)},F=()=>g.onCommandExecuted(X=>{switch(X.id){case m.SetTabColorMutation.id:case m.SetWorksheetHideMutation.id:case m.RemoveSheetMutation.id:case m.SetWorksheetNameMutation.id:case m.InsertSheetMutation.id:case m.SetWorksheetOrderMutation.id:case m.SetWorksheetActiveOperation.id:P();break}}),L=()=>S.scroll$.subscribe(X=>{q(X)}),j=()=>S.scrollX$.subscribe(X=>{var Y;(Y=u.current.slideTabBar)==null||Y.flipPage(X)}),z=()=>S.renameId$.subscribe(()=>{U()}),q=X=>{const{leftEnd:Y,rightEnd:G}=X;let J="";Y&&G?J="":Y&&!G?J="inset -10px 0px 10px -10px rgba(0, 0, 0, 0.2)":!Y&&G?J="inset 10px 0px 10px -10px rgba(0, 0, 0, 0.2)":!Y&&!G&&(J="inset 10px 0px 10px -10px rgba(0, 0, 0, 0.2), inset -10px 0px 10px -10px rgba(0, 0, 0, 0.2)"),i(J)},te=X=>{const Y=X.calculateActiveTabItemScrollX();if(Y){const G=X.getScrollbar();G.scrollX(G.getScrollX()+Y)}S.setScroll({leftEnd:X.isLeftEnd(),rightEnd:X.isRightEnd()})},Q=X=>{var J;const Y=(J=h.current)==null?void 0:J.querySelector(`.${He.slideTabBar}`);if(!Y)return;const G=new ResizeObserver(()=>{te(X)});return G.observe(Y),()=>G.disconnect()},re=X=>{var Y,G,J,ae,ue;if(k&&!(C!=null&&C.isForceKeepVisible())){if(X){const{left:de}=(G=(Y=h.current)==null?void 0:Y.getBoundingClientRect())!=null?G:{},{left:oe}=(ue=(ae=(J=u.current.slideTabBar)==null?void 0:J.getActiveItem())==null?void 0:ae.getSlideTabItem().getBoundingClientRect())!=null?ue:{};de!==void 0&&oe!==void 0&&d([oe-de,0])}l(X)}};return _.jsx(Z.DropdownLegacy,{className:He.slideTabItemDropdown,visible:s,align:{offset:c},trigger:["contextMenu"],overlay:_.jsx(I.UIMenu,{menuType:I.ContextMenuPosition.FOOTER_TABS,onOptionSelect:X=>{const{label:Y,value:G,commandId:J}=X;g.executeCommand(J!=null?J:Y,{value:G,subUnitId:e}),l(!1)}}),onVisibleChange:re,children:_.jsx("div",{className:He.slideTabBarContainer,ref:h,onDragStart:X=>X.preventDefault(),onContextMenu:X=>X.preventDefault(),children:_.jsx("div",{className:He.slideTabBar,style:{boxShadow:o},children:n.map(X=>V.createElement(KS,{...X,key:X.sheetId,selected:e===X.sheetId}))})})})}const tf=100,ic=()=>{var p,v;const[n,r]=V.useState(!0),[e,t]=V.useState(!0),o=I.useDependency(a.ICommandService),i=I.useDependency(nn),s=I.useDependency(a.IPermissionService),c=ht().getUnitId(),d=I.useObservable(s.getPermissionPoint$((p=new m.WorkbookEditablePermission(c))==null?void 0:p.id)),u=I.useObservable(s.getPermissionPoint$((v=new m.WorkbookCreateSheetPermission(c))==null?void 0:v.id));V.useEffect(()=>{const C=i.scroll$.subscribe(b=>{h(b)});return()=>{C.unsubscribe()}},[]);const h=C=>{const{leftEnd:b,rightEnd:R}=C;r(b),t(R)},g=()=>{o.executeCommand(m.InsertSheetCommand.id),setTimeout(()=>{i.setAddSheet(0)},0)},S=()=>{i.setScrollX(-100)},f=()=>{i.setScrollX(tf)};return _.jsxs("div",{className:jo.sheetBar,children:[_.jsxs("div",{className:jo.sheetBarOptions,children:[_.jsx(Qo,{onClick:g,disabled:!(u!=null&&u.value&&(d!=null&&d.value)),children:_.jsx(As,{})}),_.jsx(BS,{})]}),_.jsx(ef,{}),(!n||!e)&&_.jsxs("div",{className:`
55
+ ${jo.sheetBarOptions}
56
+ ${jo.sheetBarOptionsDivider}
57
+ `,children:[_.jsx(Qo,{disabled:n,onClick:S,children:_.jsx(qi,{style:{transform:"rotateZ(180deg)"}})}),_.jsx(Qo,{disabled:e,onClick:f,children:_.jsx(qi,{})})]})]})};class Bs{constructor(){E(this,"_functions",[{func:K.FUNCTION_NAMES_STATISTICAL.MAX,filter:r=>{var e,t,o,i;return((t=(e=r.values.find(s=>s.func===K.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((i=(o=r.values.find(s=>s.func===K.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:o.value)!=null?i:0)>0}},{func:K.FUNCTION_NAMES_STATISTICAL.MIN,filter:r=>{var e,t,o,i;return((t=(e=r.values.find(s=>s.func===K.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((i=(o=r.values.find(s=>s.func===K.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:o.value)!=null?i:0)>0}},{func:K.FUNCTION_NAMES_MATH.SUM,filter:r=>{var e,t,o,i;return((t=(e=r.values.find(s=>s.func===K.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((i=(o=r.values.find(s=>s.func===K.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:o.value)!=null?i:0)>0}},{func:K.FUNCTION_NAMES_STATISTICAL.COUNTA,filter:r=>{var e,t;return((t=(e=r.values.find(o=>o.func===K.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1}},{func:K.FUNCTION_NAMES_STATISTICAL.COUNT,filter:r=>{var e,t,o,i;return((t=(e=r.values.find(s=>s.func===K.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((i=(o=r.values.find(s=>s.func===K.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:o.value)!=null?i:0)>0}},{func:K.FUNCTION_NAMES_STATISTICAL.AVERAGE,filter:r=>{var e,t,o,i;return((t=(e=r.values.find(s=>s.func===K.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((i=(o=r.values.find(s=>s.func===K.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:o.value)!=null?i:0)>0}}]);E(this,"_state$",new O.BehaviorSubject(null));E(this,"state$",this._state$.asObservable())}dispose(){this._state$.complete()}setState(r){var t;const e={values:[],pattern:null};r==null||r.values.forEach(o=>{const i=this._functions.find(s=>s.func===o.func);i&&(i.filter===void 0||i.filter(r))&&e.values.push(o)}),e.pattern=(t=r==null?void 0:r.pattern)!=null?t:null,this._state$.next(e)}getState(){return this._state$.getValue()}getFunctions(){return this._functions}addFunctions(r){this._functions.push(...r)}}const Do=a.createIdentifier("univer.sheet-status-bar.service"),nf="univer-status-bar",of="univer-single-mode",rf="univer-status-bar-div",sf="univer-statistic-list",af="univer-statistic-list-column",lf="univer-statistic-item",hn={statusBar:nf,singleMode:of,statusBarDiv:rf,statisticList:sf,statisticListColumn:af,statisticItem:lf},cf=[K.FUNCTION_NAMES_MATH.SUM,K.FUNCTION_NAMES_STATISTICAL.AVERAGE,K.FUNCTION_NAMES_STATISTICAL.MIN,K.FUNCTION_NAMES_STATISTICAL.MAX],Jo={[K.FUNCTION_NAMES_MATH.SUM]:"statusbar.sum",[K.FUNCTION_NAMES_STATISTICAL.AVERAGE]:"statusbar.average",[K.FUNCTION_NAMES_STATISTICAL.MIN]:"statusbar.min",[K.FUNCTION_NAMES_STATISTICAL.MAX]:"statusbar.max",[K.FUNCTION_NAMES_STATISTICAL.COUNT]:"statusbar.count",[K.FUNCTION_NAMES_STATISTICAL.COUNTA]:"statusbar.countA",[K.FUNCTION_NAMES_TEXT.CONCATENATE]:"concatenate"},gi=n=>{const r=I.useDependency(a.LocaleService),e=I.useDependency(I.IMessageService),t=I.useDependency(I.IClipboardInterfaceService),o=df(n),i=async()=>{await t.writeText(n.value.toString()),e.show({type:Z.MessageType.Success,content:r.t("statusbar.copied")})};return _.jsx(Z.Tooltip,{title:r.t("statusbar.clickToCopy"),placement:"top",children:_.jsx("div",{className:hn.statisticItem,onClick:i,children:_.jsx("span",{children:`${r.t((Jo==null?void 0:Jo[n.name])||n.name)}: ${o}`})},n.name)})};function df(n){const{pattern:r,value:e}=n;return typeof e!="number"?0:e>=1e8?e.toExponential(2):r&&cf.includes(n.name)?a.numfmt.format(r,e,{throws:!1}):e.toLocaleString()}const ka=800,uf=3,hf=()=>{const[n,r]=V.useState(window.innerWidth<ka),[e,t]=V.useState(!0),o=I.useDependency(Do),i=o.getFunctions().map((g,S)=>({name:g.func,value:0,show:!0,disable:!1,pattern:null})),[s,l]=V.useState(i),c=s.find(g=>g.show&&!g.disable),d=n&&c?[c]:s.filter(g=>g.show&&!g.disable);V.useEffect(()=>{const g=o.state$.subscribe(S=>{const f=S==null?void 0:S.values;if(!f||f.length===0)t(!1);else{t(!0);const p=s.map(v=>{var b;const C=f.find(R=>R.func===v.name);return C?(v.value=C.value,v.disable=!1):v.disable=!0,v.pattern=(b=S==null?void 0:S.pattern)!=null?b:null,v});l(p)}});return()=>{g.unsubscribe()}},[o]);const u=a.debounce(()=>{const g=window.innerWidth<ka;n!==g&&r(g)},100);V.useEffect(()=>(window.addEventListener("resize",u),()=>{window.removeEventListener("resize",u)}),[n]);let h=null;if(d.length>uf){const g=[];d.forEach((S,f)=>{f%2===0&&g.push(d.slice(f,f+2))}),h=_.jsxs(_.Fragment,{children:[" ",g.map((S,f)=>_.jsxs("div",{className:hn.statisticListColumn,children:[(S==null?void 0:S[0])&&_.jsx(gi,{...S==null?void 0:S[0]},S==null?void 0:S[0].name),(S==null?void 0:S[1])&&_.jsx(gi,{...S==null?void 0:S[1]},S==null?void 0:S[1].name)]},`stat-col-${f}`))," "]})}else h=_.jsx(_.Fragment,{children:d.map(g=>_.jsx(gi,{...g},g.name))});return e&&_.jsxs("div",{className:Te(hn.statusBar,{[hn.singleMode]:n}),children:[_.jsx("div",{className:Te(hn.statisticList),children:h}),_.jsx("div",{className:hn.statusBarDiv})]})};function sc(){const n=I.useDependency(I.IMenuManagerService);if(!ht())return null;const e=n.getMenuByPositionKey(I.ContextMenuPosition.FOOTER_MENU);return _.jsxs("section",{className:il.sheetContainer,"data-range-selector":!0,children:[_.jsx(ic,{}),_.jsx(hf,{}),e.map(t=>{var o;return(o=t.children)==null?void 0:o.map(i=>(i==null?void 0:i.item)&&_.jsx(I.ToolbarItem,{align:{offset:[-32,18]},...i.item},i.key))}),_.jsx(Qg,{})]})}function ac(){return cc()?_.jsx(rc,{}):null}function lc(){return cc()?_.jsxs(_.Fragment,{children:[_.jsx(eS,{}),_.jsx(PS,{})]}):null}function cc(){const n=I.useDependency(a.IUniverInstanceService),e=!!I.useObservable(()=>n.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),null,!1,[]);return V.useMemo(()=>n.getAllUnitsForType(a.UniverInstanceType.UNIVER_SHEET).length>0,[n,e])}const Gt="sheets-ui.config",Ji={formulaBar:!0};function mf(n){const r=n.get(m.BorderStyleManagerService),e=ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]});return{id:m.SetBorderBasicCommand.id,icon:new O.Observable(t=>{const o="AllBorderSingle",i=n.get(m.BorderStyleManagerService),s=n.get(a.ICommandService).onCommandExecuted(l=>{var g;if(l.id!==m.SetBorderBasicCommand.id)return;const{type:d}=i.getBorderInfo(),u=$l.find(S=>S.value===d),h=(g=u==null?void 0:u.icon)!=null?g:o;t.next(h)});return t.next(o),s.dispose}),tooltip:"toolbar.border.main",type:I.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:Ls,hoverable:!1},value$:r.borderInfo$}],value$:r.borderInfo$,hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:e}}const $o="sheet.menu.clear-selection";function Si(n){return{id:$o,type:I.MenuItemType.SUBITEMS,icon:"ClearFormat",title:"rightClick.clearSelection",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function fi(n){return{id:m.ClearSelectionContentCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.clearContent",disabled$:tn(n,ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function pi(n){return{id:m.ClearSelectionFormatCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.clearFormat",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function vi(n){return{id:m.ClearSelectionAllCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.clearAll",disabled$:tn(n,ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}const dc="sheet.menu.delete";function gf(n){return{id:dc,type:I.MenuItemType.SUBITEMS,title:"rightClick.delete",icon:"Reduce",hidden$:tn(n,Br(n)),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission]})}}function Na(n){return{id:An.id,type:I.MenuItemType.BUTTON,icon:"DeleteColumn",title:"rightClick.deleteSelectedColumn",hidden$:tn(n,Ml(n,"col")),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetDeleteColumnPermission]})}}function Da(n){return{id:xn.id,type:I.MenuItemType.BUTTON,icon:"DeleteRow",title:"rightClick.deleteSelectedRow",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetDeleteRowPermission]}),hidden$:Ml(n,"row")}}function Sf(n){return{id:Wn.id,type:I.MenuItemType.BUTTON,title:"rightClick.moveLeft",icon:"DeleteCellShiftLeft",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Fr(n,"col")}}function ff(n){return{id:Xt.id,type:I.MenuItemType.BUTTON,title:"rightClick.moveUp",icon:"DeleteCellShiftUp",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Fr(n,"row")}}function pf(n){const r=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService);return{id:m.ToggleGridlinesCommand.id,type:I.MenuItemType.BUTTON,tooltip:"toolbar.toggleGridlines",icon:"HideGridlines",activated$:new O.Observable(t=>{const o=()=>{const s=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);return s?s.getActiveSheet().getConfig().showGridlines===a.BooleanNumber.TRUE:!1},i=new a.DisposableCollection;return i.add(r.onCommandExecuted(s=>{(s.id===m.ToggleGridlinesMutation.id||s.id===m.SetWorksheetActiveOperation.id)&&t.next(o())})),i.add(e.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(()=>{t.next(o())})),t.next(o()),()=>i.dispose()}),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission]})}}const uc="sheet.menu.col-insert";function vf(n){return{id:uc,type:I.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",hidden$:Br(n),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetInsertColumnPermission]})}}const hc="sheet.menu.row-insert";function Cf(n){return{id:hc,type:I.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",hidden$:Br(n),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertRowPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const mc="sheet.menu.cell-insert";function If(n){return{id:mc,type:I.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",hidden$:tn(n,Br(n)),disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertColumnPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Ha(n){return{id:m.InsertRowBeforeCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.insertRowBefore",icon:"InsertRowAbove",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertRowPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:yl(n,"row")}}function _f(n){return{id:m.InsertRowAfterCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.insertRow",icon:"InsertRowBelow",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertRowPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:wl(n,"row")}}function Va(n){return{id:m.InsertColBeforeCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.insertColumnBefore",icon:"LeftInsertColumn",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertColumnPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:yl(n,"col")}}function bf(n){return{id:m.InsertColAfterCommand.id,type:I.MenuItemType.BUTTON,title:"rightClick.insertColumn",icon:"RightInsertColumn",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertColumnPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:wl(n,"col")}}function Rf(n){return{id:Un.id,type:I.MenuItemType.BUTTON,title:"rightClick.moveRight",icon:"InsertCellShiftRight",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Fr(n,"col")}}function Ef(n){return{id:Yt.id,type:I.MenuItemType.BUTTON,title:"rightClick.moveDown",icon:"InsertCellDown",disabled$:ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Fr(n,"row")}}function Tf(n){const r=ee(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),e=vm(n);return{id:Tt.id,icon:"MergeAllSingle",tooltip:"toolbar.mergeCell.main",type:I.MenuItemType.SUBITEMS,hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:r.pipe(O.combineLatestWith(e),O.map(([t,o])=>t||o))}}function wf(n){return{id:Ds.id,type:I.MenuItemType.BUTTON,title:"merge.all",icon:"MergeAllSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function yf(n){return{id:Hs.id,type:I.MenuItemType.BUTTON,title:"merge.vertical",icon:"VerticalIntegrationSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Mf(n){return{id:Vs.id,type:I.MenuItemType.BUTTON,title:"merge.horizontal",icon:"HorizontalMergeSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Pf(n){return{id:m.RemoveWorksheetMergeCommand.id,type:I.MenuItemType.BUTTON,title:"merge.cancel",icon:"CancelMergeSingle",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Of(n){const e=n.get(a.IUniverInstanceService).getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),t=n.get(a.UserManagerService);return O.combineLatest([e,t.currentUser$]).pipe(O.switchMap(([o,i])=>o?o.activeSheet$.pipe(O.switchMap(s=>{if(!s)return O.of(!0);const l=n.get(m.RangeProtectionRuleModel),c=n.get(m.WorksheetProtectionRuleModel),d=n.get(m.SheetsSelectionsService);return O.merge(d.selectionMoveEnd$,l.ruleChange$,c.ruleChange$).pipe(O.map(()=>{const u=o.getUnitId(),h=s.getSheetId(),g=l.getSubunitRuleList(u,h),S=d.getCurrentSelections(),f=S==null?void 0:S.map(C=>C.range),p=g.map(C=>C.ranges).flat();if(!f)return!1;const v=c.getRule(u,h);return v!=null&&v.permissionId?!0:f==null?void 0:f.some(C=>p.some(b=>a.Rectangle.intersects(C,b)))}))})):O.of(!0)))}function xf(n){const r=n.get(a.IUniverInstanceService),e=n.get(m.RangeProtectionRuleModel),t=r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([i,s])=>i?i.activeSheet$.pipe(O.switchMap(l=>{if(!l)return O.of(!0);const c=n.get(m.RangeProtectionRuleModel),d=n.get(m.WorksheetProtectionRuleModel),u=n.get(a.IPermissionService),h=n.get(m.SheetsSelectionsService);return O.merge(h.selectionMoveEnd$,c.ruleChange$,d.ruleChange$).pipe(O.map(()=>{var x,A;const g=i.getUnitId(),S=l.getSheetId(),f=e.getSubunitRuleList(g,S),p=(x=h.getCurrentSelections())==null?void 0:x.map(k=>k.range);if(f.map(k=>k.ranges).flat(),!(p!=null&&p.length)||p.length>1)return!0;const v=p[0];if((v==null?void 0:v.rangeType)===a.RANGE_TYPE.ALL||(v==null?void 0:v.rangeType)===a.RANGE_TYPE.COLUMN||(v==null?void 0:v.rangeType)===a.RANGE_TYPE.ROW)return!0;const C=d.getRule(g,S);if(C!=null&&C.permissionId)return((A=u.getPermissionPoint(new m.WorksheetManageCollaboratorPermission(g,S).id))==null?void 0:A.value)===!1;if(f.filter(k=>k.ranges.some(N=>a.Rectangle.intersects(N,v))).length!==1)return!0;const{startRow:R,endRow:T,startColumn:M,endColumn:y}=v,P=n.get(m.RangeProtectionCache);for(let k=R;k<=T;k++)for(let N=M;N<=y;N++){const D=P.getCellInfo(g,S,k,N);if(D)return D[m.UnitAction.ManageCollaborator]===!1}return!1}))})):O.of(!0)))}function Af(n){const r=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([i,s])=>i?i.activeSheet$.pipe(O.switchMap(l=>{var f;if(!l)return O.of(!0);const c=i.getUnitId(),d=n.get(m.SheetsSelectionsService),u=n.get(m.RangeProtectionRuleModel),h=n.get(m.WorksheetProtectionRuleModel),g=(f=e.composePermission$([new m.WorkbookEditablePermission(c).id]).pipe(O.map(p=>p.every(v=>v.value))))!=null?f:O.of(!1),S=O.merge(u.ruleChange$,h.ruleChange$).pipe(O.startWith(null));return O.combineLatest([g,S,d.selectionMoveEnd$]).pipe(O.map(([p,v,C])=>{if(!p)return!0;const b=d.getCurrentSelections(),R=b==null?void 0:b.map(T=>T.range);return R!=null&&R.length?R.length>1:!1}))})):O.of(!0)))}function gc(n){var d;const r=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService),i=n.has(Se)?n.get(Se):null,l=n.get(a.IContextService).subscribeContextValue$(a.FOCUSING_FX_BAR_EDITOR),c=(d=i==null?void 0:i.visible$)!=null?d:O.of(null);return O.combineLatest([t,o.currentUser$,c,l]).pipe(O.switchMap(([u,h,g,S])=>!u||g!=null&&g.visible&&g.unitId===u.getUnitId()||S?O.of(!0):u.activeSheet$.pipe(O.switchMap(f=>{var x;if(!f)return O.of(!0);const v=n.get(a.IContextService).subscribeContextValue$(a.FOCUSING_COMMON_DRAWINGS).pipe(O.startWith(!1)),C=u.getUnitId(),b=f.getSheetId(),R=n.get(m.RangeProtectionRuleModel),T=n.get(m.WorksheetProtectionRuleModel),M=n.get(m.SheetsSelectionsService),y=(x=e.composePermission$([new m.WorkbookCreateProtectPermission(C).id]).pipe(O.map(A=>A.every(k=>k.value))))!=null?x:O.of(!1),P=O.merge(R.ruleChange$,T.ruleChange$).pipe(O.startWith(null));return O.combineLatest([y,P,M.selectionMoveEnd$,v]).pipe(O.map(([A,k,N,D])=>{if(!A||D)return!0;const W=M.getCurrentSelections(),H=W==null?void 0:W.map(L=>L.range);if(!(H!=null&&H.length))return!0;const U=T.getRule(C,b);if(U!=null&&U.permissionId)return!0;const B=R.getSubunitRuleList(C,b);return H==null?void 0:H.some(L=>B.some(j=>j.ranges.some(z=>a.Rectangle.intersects(L,z))))}))}))))}function kf(n){const r=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([i,s])=>i?i.activeSheet$.pipe(O.switchMap(l=>{var f;if(!l)return O.of(!0);const c=i.getUnitId(),d=l.getSheetId(),u=n.get(m.RangeProtectionRuleModel),h=n.get(m.WorksheetProtectionRuleModel),g=(f=e.composePermission$([new m.WorkbookCreateProtectPermission(c).id]).pipe(O.map(p=>p.every(v=>v.value))))!=null?f:O.of(!1),S=O.merge(u.ruleChange$,h.ruleChange$).pipe(O.startWith(null));return O.combineLatest([g,S]).pipe(O.map(([p,v])=>{var R;if(!p)return!0;const C=h.getRule(c,d);return C!=null&&C.permissionId?!0:((R=u.getSubunitRuleList(c,d))==null?void 0:R.filter(T=>T==null?void 0:T.permissionId)).length>0}))})):O.of(!0)))}function Nf(n){const r=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([i,s])=>i?i.activeSheet$.pipe(O.switchMap(l=>{if(!l)return O.of(!0);const c=i.getUnitId(),d=l.getSheetId(),u=n.get(m.WorksheetProtectionRuleModel);return u.ruleChange$.pipe(O.startWith(null)).pipe(O.map(()=>{var g;return u.getRule(c,d)?((g=e.getPermissionPoint(new m.WorksheetDeleteProtectionPermission(c,d).id))==null?void 0:g.value)===!1:!0}))})):O.of(!0)))}function Df(n){const r=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([i,s])=>i?i.activeSheet$.pipe(O.switchMap(l=>{var f;if(!l)return O.of(!0);const c=i.getUnitId(),d=n.get(m.RangeProtectionRuleModel),u=n.get(m.WorksheetProtectionRuleModel),h=(f=e.composePermission$([new m.WorkbookCreateProtectPermission(c).id,new m.WorkbookManageCollaboratorPermission(c).id]).pipe(O.map(p=>p.every(v=>v.value))))!=null?f:O.of(!1),g=u.ruleChange$.pipe(O.startWith(null)),S=d.ruleChange$.pipe(O.startWith(null));return O.combineLatest([h,g,S]).pipe(O.map(([p,v,C])=>{if(!p)return!0;const b=l.getSheetId(),R=u.getRule(c,b),T=d.getSubunitRuleList(c,b);return!(R||T.length)}))})):O.of(!0)))}function Hf(n){const r=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([i,s])=>i?i.activeSheet$.pipe(O.switchMap(l=>{if(!l)return O.of(!0);const c=i.getUnitId(),d=l.getSheetId(),u=n.get(m.SheetsSelectionsService),h=n.get(m.RangeProtectionRuleModel),g=n.get(m.WorksheetProtectionRuleModel),S=O.merge(h.ruleChange$,g.ruleChange$,u.selectionMoveEnd$).pipe(O.startWith(null));return O.combineLatest([S]).pipe(O.map(([f])=>{var A;const p=n.get(m.SheetsSelectionsService).getCurrentSelections(),v=p==null?void 0:p.map(k=>k.range);if(!(v!=null&&v.length)||v.length>1)return!0;const C=v[0];if((C==null?void 0:C.rangeType)===a.RANGE_TYPE.ALL||(C==null?void 0:C.rangeType)===a.RANGE_TYPE.COLUMN||(C==null?void 0:C.rangeType)===a.RANGE_TYPE.ROW)return!0;const b=g.getRule(c,d);if(b!=null&&b.permissionId)return((A=e.getPermissionPoint(new m.WorksheetDeleteProtectionPermission(c,d).id))==null?void 0:A.value)===!1;if(h.getSubunitRuleList(c,d).filter(k=>k.ranges.some(N=>a.Rectangle.intersects(N,C))).length!==1)return!0;const{startRow:T,endRow:M,startColumn:y,endColumn:P}=C,x=n.get(m.RangeProtectionCache);for(let k=T;k<=M;k++)for(let N=y;N<=P;N++){const D=x.getCellInfo(c,d,k,N);if(D)return D[m.UnitAction.Delete]===!1}return!1}))})):O.of(!0)))}function Sc(n){var d;const r=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService),i=n.has(Se)?n.get(Se):null,l=n.get(a.IContextService).subscribeContextValue$(a.FOCUSING_FX_BAR_EDITOR),c=(d=i==null?void 0:i.visible$)!=null?d:O.of(null);return O.combineLatest([t,o.currentUser$,c,l]).pipe(O.switchMap(([u,h,g,S])=>!u||g!=null&&g.visible&&g.unitId===u.getUnitId()||S?O.of(!0):u.activeSheet$.pipe(O.switchMap(f=>{var C,b;if(!f)return O.of(!0);const p=u.getUnitId();return((b=(C=e.getPermissionPoint$(new m.WorkbookEditablePermission(p).id))==null?void 0:C.pipe(O.map(R=>!!R.value)))!=null?b:O.of(!1)).pipe(O.map(R=>!R))}))))}const er="sheet.contextMenu.permission";function Vf(n){return{id:wo.id,type:I.MenuItemType.BUTTON,icon:ql,tooltip:"permission.toolbarMenu",hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:gc(n)}}function Ci(n){return{id:er,type:I.MenuItemType.SUBITEMS,title:"rightClick.protectRange",icon:Ql,hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Ii(n){return{id:Vt.id,type:I.MenuItemType.BUTTON,title:"rightClick.turnOnProtectRange",hidden$:Of(n),disabled$:gc(n)}}function _i(n){return{id:Lt.id,type:I.MenuItemType.BUTTON,title:"rightClick.editProtectRange",disabled$:Af(n),hidden$:xf(n)}}function bi(n){return{id:Ut.id,type:I.MenuItemType.BUTTON,title:"rightClick.removeProtectRange",disabled$:Hf(n),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Ri(n){return{id:Wt.id,type:I.MenuItemType.BUTTON,title:"rightClick.viewAllProtectArea",disabled$:Sc(n),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Wf(n){return{id:yo.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.addProtectSheet",disabled$:kf(n),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Uf(n){return{id:xo.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.removeProtectSheet",disabled$:Nf(n),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Lf(n){return{id:Ao.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.changeSheetPermission",disabled$:Df(n),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Bf(n){return{id:Mo.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.viewAllProtectArea",disabled$:Sc(n),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Ff(n){const r=n.get(a.IUniverInstanceService),e=n.get(a.ICommandService),t=new O.Observable(i=>{const s=e.onCommandExecuted(l=>{const c=l.id;(c===m.RemoveSheetMutation.id||c===m.InsertSheetMutation.id||c===m.SetWorksheetHideMutation.id)&&ur(r,i)});return ur(r,i),s.dispose}),o=Vn(n,[m.WorkbookEditablePermission,m.WorkbookDeleteSheetPermission]);return{id:Po.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.delete",disabled$:O.combineLatest([t,o]).pipe(O.map(([i,s])=>i||s)),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function jf(n){return{id:m.CopySheetCommand.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.copy",disabled$:Vn(n,[m.WorkbookEditablePermission,m.WorkbookCreateSheetPermission]),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function zf(n){return{id:ko.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.rename",disabled$:Vn(n,[m.WorkbookEditablePermission,m.WorkbookRenameSheetPermission]),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Xf(n){return{id:m.SetTabColorCommand.id,title:"sheetConfig.changeColor",type:I.MenuItemType.SELECTOR,selections:[{label:{name:Ro,hoverable:!1}}],hidden$:Vn(n,[m.WorkbookEditablePermission])}}function Yf(n){const r=n.get(a.IUniverInstanceService),e=n.get(a.ICommandService);return{id:m.SetWorksheetHideCommand.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.hide",disabled$:new O.Observable(t=>{const o=e.onCommandExecuted(i=>{const s=i.id;(s===m.RemoveSheetMutation.id||s===m.InsertSheetMutation.id||s===m.SetWorksheetHideMutation.id)&&ur(r,t)});return ur(r,t),o.dispose}).pipe(O.combineLatestWith(Vn(n,[m.WorkbookEditablePermission,m.WorkbookHideSheetPermission])),O.map(([t,o])=>t||o)),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Gf(n){const r=n.get(a.IUniverInstanceService),e=n.get(a.ICommandService);return{id:Oo.id,type:I.MenuItemType.BUTTON,title:"sheetConfig.unhide",disabled$:new O.Observable(t=>{function o(){const s=r.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getWorksheets(),l=Array.from(s.values());t.next(l.length===1)}const i=e.onCommandExecuted(s=>{const l=s.id;(l===m.RemoveSheetMutation.id||l===m.InsertSheetMutation.id||l===m.SetWorksheetHideMutation.id)&&o()});return o(),i.dispose}).pipe(O.combineLatestWith(Vn(n,[m.WorkbookEditablePermission,m.WorkbookHideSheetPermission])),O.map(([t,o])=>t||o)),hidden$:I.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function ur(n,r){const e=n.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getWorksheets(),t=Array.from(e.values()).filter(o=>o.getConfig().hidden===a.BooleanNumber.FALSE);r.next(t.length===1)}const fc={[I.RibbonStartGroup.FORMAT]:{[Dn.id]:{order:0,menuItemFactory:Uh},[Qt.id]:{order:1,menuItemFactory:Lh},[Jt.id]:{order:2,menuItemFactory:Bh},[$t.id]:{order:3,menuItemFactory:Fh},[en.id]:{order:4,menuItemFactory:jh},[po.id]:{order:5,menuItemFactory:zh},[fo.id]:{order:6,menuItemFactory:Xh},[Mn.id]:{order:7,menuItemFactory:Gh,[m.ResetTextColorCommand.id]:{order:0,menuItemFactory:Yh}},[m.SetBackgroundColorCommand.id]:{order:9,menuItemFactory:Kh,[m.ResetBackgroundColorCommand.id]:{order:0,menuItemFactory:Zh}},[m.SetBorderBasicCommand.id]:{order:10,menuItemFactory:mf}},[I.RibbonStartGroup.LAYOUT]:{[m.AddWorksheetMergeCommand.id]:{order:0,menuItemFactory:Tf,[m.AddWorksheetMergeAllCommand.id]:{order:0,menuItemFactory:wf},[m.AddWorksheetMergeVerticalCommand.id]:{order:1,menuItemFactory:yf},[m.AddWorksheetMergeHorizontalCommand.id]:{order:2,menuItemFactory:Mf},[m.RemoveWorksheetMergeCommand.id]:{order:3,menuItemFactory:Pf}},[m.SetHorizontalTextAlignCommand.id]:{order:1,menuItemFactory:qh},[m.SetVerticalTextAlignCommand.id]:{order:1,menuItemFactory:Qh},[m.SetTextWrapCommand.id]:{order:2,menuItemFactory:Jh},[m.SetTextRotationCommand.id]:{order:3,menuItemFactory:$h}},[I.RibbonStartGroup.OTHERS]:{[wo.id]:{order:0,menuItemFactory:Vf}},[I.ContextMenuPosition.MAIN_AREA]:{[I.ContextMenuGroup.FORMAT]:{[Xe.name]:{order:0,menuItemFactory:Cn},[Ye.name]:{order:2,menuItemFactory:$r},[Qn]:{order:3,menuItemFactory:ei,[fn.id]:{order:0,menuItemFactory:ti},[pn.id]:{order:1,menuItemFactory:ni},[Ht.id]:{order:2,menuItemFactory:oi},[vn.id]:{order:3,menuItemFactory:ri}},[$o]:{order:4,menuItemFactory:Si,[m.ClearSelectionContentCommand.id]:{order:0,menuItemFactory:fi},[m.ClearSelectionFormatCommand.id]:{order:1,menuItemFactory:pi},[m.ClearSelectionAllCommand.id]:{order:2,menuItemFactory:vi}}},[I.ContextMenuGroup.LAYOUT]:{order:1,[mc]:{order:0,menuItemFactory:If,[m.InsertRowBeforeCommand.id]:{order:0,menuItemFactory:Ha},[m.InsertColBeforeCommand.id]:{order:1,menuItemFactory:Va},[Un.id]:{order:2,menuItemFactory:Rf},[Yt.id]:{order:3,menuItemFactory:Ef}},[dc]:{order:0,menuItemFactory:gf,[An.id]:{order:0,menuItemFactory:Na},[xn.id]:{order:1,menuItemFactory:Da},[Wn.id]:{order:2,menuItemFactory:Sf},[Xt.id]:{order:3,menuItemFactory:ff}},[Ol]:{order:2,menuItemFactory:nm,[dt.id]:{order:0,menuItemFactory:ii},[Io.id]:{order:1,menuItemFactory:om},[_o.id]:{order:2,menuItemFactory:rm},[m.CancelFrozenCommand.id]:{order:3,menuItemFactory:si}},[er]:{order:3,menuItemFactory:Ci,[Vt.id]:{order:0,menuItemFactory:Ii},[Lt.id]:{order:1,menuItemFactory:_i},[Ut.id]:{order:2,menuItemFactory:bi},[Wt.id]:{order:3,menuItemFactory:Ri}}},[I.ContextMenuGroup.DATA]:{order:2},[I.ContextMenuGroup.OTHERS]:{order:3}},[I.ContextMenuPosition.COL_HEADER]:{[I.ContextMenuGroup.FORMAT]:{[Xe.name]:{order:0,menuItemFactory:Cn},[Ye.name]:{order:2,menuItemFactory:$r},[Qn]:{order:3,menuItemFactory:ei,[fn.id]:{order:0,menuItemFactory:ti},[pn.id]:{order:1,menuItemFactory:ni},[Ht.id]:{order:2,menuItemFactory:oi},[vn.id]:{order:3,menuItemFactory:ri}},[$o]:{order:4,menuItemFactory:Si,[m.ClearSelectionContentCommand.id]:{order:0,menuItemFactory:fi},[m.ClearSelectionFormatCommand.id]:{order:1,menuItemFactory:pi},[m.ClearSelectionAllCommand.id]:{order:2,menuItemFactory:vi}}},[I.ContextMenuGroup.LAYOUT]:{order:1,[uc]:{order:0,menuItemFactory:vf,[m.InsertColBeforeCommand.id]:{order:0,menuItemFactory:Va},[m.InsertColAfterCommand.id]:{order:1,menuItemFactory:bf}},[So.id]:{order:1,menuItemFactory:sm},[m.SetSelectedColsVisibleCommand.id]:{order:2,menuItemFactory:lm},[An.id]:{order:2,menuItemFactory:Na},[m.SetColWidthCommand.id]:{order:3,menuItemFactory:dm},[bo.id]:{order:4,menuItemFactory:tm},[Yi]:{order:5,menuItemFactory:ba,[dt.id]:{order:0,menuItemFactory:ii},[m.CancelFrozenCommand.id]:{order:3,menuItemFactory:si}},[er]:{order:6,menuItemFactory:Ci,[Vt.id]:{order:0,menuItemFactory:Ii},[Lt.id]:{order:1,menuItemFactory:_i},[Ut.id]:{order:2,menuItemFactory:bi},[Wt.id]:{order:3,menuItemFactory:Ri}}},[I.ContextMenuGroup.DATA]:{order:2},[I.ContextMenuGroup.OTHERS]:{order:3}},[I.ContextMenuPosition.ROW_HEADER]:{[I.ContextMenuGroup.FORMAT]:{[Xe.name]:{order:0,menuItemFactory:Cn},[Ye.name]:{order:2,menuItemFactory:$r},[Qn]:{order:3,menuItemFactory:ei,[fn.id]:{order:0,menuItemFactory:ti},[pn.id]:{order:1,menuItemFactory:ni},[Ht.id]:{order:2,menuItemFactory:oi},[vn.id]:{order:3,menuItemFactory:ri}},[$o]:{order:4,menuItemFactory:Si,[m.ClearSelectionContentCommand.id]:{order:0,menuItemFactory:fi},[m.ClearSelectionFormatCommand.id]:{order:1,menuItemFactory:pi},[m.ClearSelectionAllCommand.id]:{order:2,menuItemFactory:vi}}},[I.ContextMenuGroup.LAYOUT]:{order:1,[hc]:{order:0,menuItemFactory:Cf,[m.InsertRowBeforeCommand.id]:{order:0,menuItemFactory:Ha},[m.InsertRowAfterCommand.id]:{order:1,menuItemFactory:_f}},[xn.id]:{order:1,menuItemFactory:Da},[go.id]:{order:2,menuItemFactory:im},[m.SetSelectedRowsVisibleCommand.id]:{order:2,menuItemFactory:am},[m.SetRowHeightCommand.id]:{order:3,menuItemFactory:cm},[m.SetWorksheetRowIsAutoHeightCommand.id]:{order:4,menuItemFactory:em},[Yi]:{order:5,menuItemFactory:ba,[dt.id]:{order:0,menuItemFactory:ii},[m.CancelFrozenCommand.id]:{order:3,menuItemFactory:si}},[er]:{order:6,menuItemFactory:Ci,[Vt.id]:{order:0,menuItemFactory:Ii},[Lt.id]:{order:1,menuItemFactory:_i},[Ut.id]:{order:2,menuItemFactory:bi},[Wt.id]:{order:3,menuItemFactory:Ri}}},[I.ContextMenuGroup.DATA]:{order:2},[I.ContextMenuGroup.OTHERS]:{order:3}},[I.ContextMenuPosition.FOOTER_TABS]:{[I.ContextMenuGroup.OTHERS]:{order:0,[Po.id]:{order:0,menuItemFactory:Ff},[m.CopySheetCommand.id]:{order:1,menuItemFactory:jf},[ko.id]:{order:2,menuItemFactory:zf},[m.SetTabColorCommand.id]:{order:3,menuItemFactory:Xf},[m.SetWorksheetHideCommand.id]:{order:4,menuItemFactory:Yf},[Oo.id]:{order:6,menuItemFactory:Gf},[yo.id]:{order:7,menuItemFactory:Wf},[xo.id]:{order:8,menuItemFactory:Uf},[Ao.id]:{order:9,menuItemFactory:Lf},[Mo.id]:{order:10,menuItemFactory:Bf}}},[I.ContextMenuPosition.FOOTER_MENU]:{[I.ContextMenuGroup.OTHERS]:{[m.ToggleGridlinesCommand.id]:{order:1,menuItemFactory:pf}}}},pc={id:m.SetRowHiddenCommand.id,preconditions:n=>ce(n),binding:I.KeyCode.Digit9|I.MetaKeys.CTRL_COMMAND},vc={id:m.SetColHiddenCommand.id,preconditions:n=>ce(n),binding:I.KeyCode.Digit0|I.MetaKeys.CTRL_COMMAND|I.MetaKeys.SHIFT},Cc={id:xe.id,description:"shortcut.sheet.select-below-cell",group:"3_sheet-view",binding:I.KeyCode.ARROW_DOWN,priority:100,preconditions:ce,staticParameters:{direction:a.Direction.DOWN}},Ic={id:xe.id,description:"shortcut.sheet.select-up-cell",group:"3_sheet-view",binding:I.KeyCode.ARROW_UP,priority:100,preconditions:ce,staticParameters:{direction:a.Direction.UP}},_c={id:xe.id,description:"shortcut.sheet.select-left-cell",group:"3_sheet-view",binding:I.KeyCode.ARROW_LEFT,priority:100,preconditions:sl,staticParameters:{direction:a.Direction.LEFT}},bc={id:xe.id,description:"shortcut.sheet.select-right-cell",group:"3_sheet-view",binding:I.KeyCode.ARROW_RIGHT,priority:100,preconditions:sl,staticParameters:{direction:a.Direction.RIGHT}},Rc={id:$e.id,description:"shortcut.sheet.select-next-cell",group:"3_sheet-view",binding:I.KeyCode.TAB,priority:100,preconditions:ce,staticParameters:{direction:a.Direction.RIGHT,keycode:I.KeyCode.TAB}},Ec={id:$e.id,description:"shortcut.sheet.select-previous-cell",group:"3_sheet-view",binding:I.KeyCode.TAB|I.MetaKeys.SHIFT,priority:100,preconditions:ce,staticParameters:{direction:a.Direction.LEFT,keycode:I.KeyCode.TAB}},Tc={id:$e.id,description:"shortcut.sheet.select-below-cell",group:"3_sheet-view",binding:I.KeyCode.ENTER,priority:100,preconditions:ce,staticParameters:{direction:a.Direction.DOWN,keycode:I.KeyCode.ENTER}},wc={id:$e.id,description:"shortcut.sheet.select-up-cell",group:"3_sheet-view",binding:I.KeyCode.ENTER|I.MetaKeys.SHIFT,priority:100,preconditions:ce,staticParameters:{direction:a.Direction.UP,keycode:I.KeyCode.ENTER}},yc={id:xe.id,description:"shortcut.sheet.select-below-value-cell",group:"3_sheet-view",binding:I.KeyCode.ARROW_DOWN|I.MetaKeys.CTRL_COMMAND,preconditions:ce,staticParameters:{direction:a.Direction.DOWN,jumpOver:Je.moveGap}},Mc={id:xe.id,description:"shortcut.sheet.select-up-value-cell",group:"3_sheet-view",binding:I.KeyCode.ARROW_UP|I.MetaKeys.CTRL_COMMAND,preconditions:ce,staticParameters:{direction:a.Direction.UP,jumpOver:Je.moveGap}},Pc={id:xe.id,description:"shortcut.sheet.select-left-value-cell",group:"3_sheet-view",binding:I.KeyCode.ARROW_LEFT|I.MetaKeys.CTRL_COMMAND,preconditions:ce,staticParameters:{direction:a.Direction.LEFT,jumpOver:Je.moveGap}},Oc={id:xe.id,description:"shortcut.sheet.select-right-value-cell",group:"3_sheet-view",binding:I.KeyCode.ARROW_RIGHT|I.MetaKeys.CTRL_COMMAND,preconditions:ce,staticParameters:{direction:a.Direction.RIGHT,jumpOver:Je.moveGap}},xc={id:De.id,description:"shortcut.sheet.expand-selection-down",group:"3_sheet-view",binding:I.KeyCode.ARROW_DOWN|I.MetaKeys.SHIFT,preconditions:ce,staticParameters:{direction:a.Direction.DOWN}},Ac={id:De.id,description:"shortcut.sheet.expand-selection-up",group:"3_sheet-view",binding:I.KeyCode.ARROW_UP|I.MetaKeys.SHIFT,preconditions:ce,staticParameters:{direction:a.Direction.UP}},kc={id:De.id,description:"shortcut.sheet.expand-selection-left",group:"3_sheet-view",binding:I.KeyCode.ARROW_LEFT|I.MetaKeys.SHIFT,preconditions:ce,staticParameters:{direction:a.Direction.LEFT}},Nc={id:De.id,description:"shortcut.sheet.expand-selection-right",group:"3_sheet-view",binding:I.KeyCode.ARROW_RIGHT|I.MetaKeys.SHIFT,preconditions:ce,staticParameters:{direction:a.Direction.RIGHT}},Dc={id:De.id,description:"shortcut.sheet.expand-selection-to-below-gap",group:"3_sheet-view",binding:I.KeyCode.ARROW_DOWN|I.MetaKeys.SHIFT|I.MetaKeys.CTRL_COMMAND,preconditions:ce,staticParameters:{direction:a.Direction.DOWN,jumpOver:Je.moveGap}},Hc={id:De.id,description:"shortcut.sheet.expand-selection-to-up-gap",group:"3_sheet-view",binding:I.KeyCode.ARROW_UP|I.MetaKeys.SHIFT|I.MetaKeys.CTRL_COMMAND,preconditions:ce,staticParameters:{direction:a.Direction.UP,jumpOver:Je.moveGap}},Vc={id:De.id,description:"shortcut.sheet.expand-selection-to-left-gap",group:"3_sheet-view",binding:I.KeyCode.ARROW_LEFT|I.MetaKeys.SHIFT|I.MetaKeys.CTRL_COMMAND,preconditions:ce,staticParameters:{direction:a.Direction.LEFT,jumpOver:Je.moveGap}},Wc={id:De.id,description:"shortcut.sheet.expand-selection-to-right-gap",group:"3_sheet-view",binding:I.KeyCode.ARROW_RIGHT|I.MetaKeys.SHIFT|I.MetaKeys.CTRL_COMMAND,preconditions:ce,staticParameters:{direction:a.Direction.RIGHT,jumpOver:Je.moveGap}},Uc={id:Dr.id,description:"shortcut.sheet.select-all",group:"3_sheet-view",binding:I.KeyCode.A|I.MetaKeys.CTRL_COMMAND,preconditions:ce,staticParameters:{expandToGapFirst:!0,loop:!0}},Lc={id:Qt.id,description:"shortcut.sheet.set-bold",group:"4_sheet-edit",preconditions:n=>ce(n),binding:I.KeyCode.B|I.MetaKeys.CTRL_COMMAND},Bc={id:Jt.id,description:"shortcut.sheet.set-italic",group:"4_sheet-edit",preconditions:n=>ce(n),binding:I.KeyCode.I|I.MetaKeys.CTRL_COMMAND},Fc={id:$t.id,description:"shortcut.sheet.set-underline",group:"4_sheet-edit",preconditions:n=>ce(n),binding:I.KeyCode.U|I.MetaKeys.CTRL_COMMAND},jc={id:en.id,description:"shortcut.sheet.set-strike-through",group:"4_sheet-edit",preconditions:n=>ce(n),binding:I.KeyCode.X|I.MetaKeys.SHIFT|I.MetaKeys.CTRL_COMMAND},zc={id:m.ClearSelectionContentCommand.id,preconditions:n=>ce(n),binding:I.KeyCode.DELETE,mac:I.KeyCode.BACKSPACE},Xc={id:kn.id,description:"shortcut.sheet.zoom-in",binding:I.KeyCode.EQUAL|I.MetaKeys.CTRL_COMMAND,group:"3_sheet-view",preconditions:ce,priority:1,staticParameters:{delta:.2}},Yc={id:a.NilCommand.id,binding:I.KeyCode.EQUAL|I.MetaKeys.CTRL_COMMAND},Gc={id:kn.id,description:"shortcut.sheet.zoom-out",binding:I.KeyCode.MINUS|I.MetaKeys.CTRL_COMMAND,group:"3_sheet-view",preconditions:ce,priority:1,staticParameters:{delta:-.2}},Zc={id:a.NilCommand.id,binding:I.KeyCode.MINUS|I.MetaKeys.CTRL_COMMAND},Kc={id:kn.id,description:"shortcut.sheet.reset-zoom",binding:I.KeyCode.Digit0|I.MetaKeys.CTRL_COMMAND,preconditions:ce,group:"3_sheet-view",priority:1,staticParameters:{reset:!0}},qc={id:a.NilCommand.id,binding:I.KeyCode.Digit0|I.MetaKeys.CTRL_COMMAND};var Zf=Object.getOwnPropertyDescriptor,Kf=(n,r,e,t)=>{for(var o=t>1?void 0:t?Zf(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},gt=(n,r)=>(e,t)=>r(e,t,n);exports.SheetUIController=class extends a.Disposable{constructor(r,e,t,o,i,s,l,c){super(),this._injector=r,this._componentManager=e,this._layoutService=t,this._commandService=o,this._shortcutService=i,this._menuManagerService=s,this._uiPartsService=l,this._configService=c,this._init()}_init(){this._initComponents(),this._initCommands(),this._initMenus(),this._initShortcuts(),this._initWorkbenchParts(),this._initFocusHandler()}_initComponents(){const r=this._componentManager;this.disposeWithMe(r.register(Lr,El)),this.disposeWithMe(r.register(Ls,ec)),this.disposeWithMe(r.register(Ro,Z.ColorPicker)),this.disposeWithMe(r.register(Vr,I.FontFamily)),this.disposeWithMe(r.register(Wr,I.FontFamilyItem)),this.disposeWithMe(r.register(Ur,I.FontSize)),this.disposeWithMe(r.register(ro,nc)),this.disposeWithMe(r.register("HideGridlines",Ul))}_initCommands(){[Ds,Tt,Vs,Hs,kn,De,xe,$e,ko,Po,xn,An,go,So,ze,_s,Dr,zr,m.SetBoldCommand,zt,Ce,ho,Qt,Jt,$t,en,Ms,Ps,fo,po,Mn,Os,m.SetItalicCommand,m.SetStrikeThroughCommand,m.SetFontFamilyCommand,m.SetFontSizeCommand,vo,Hr,Dn,Co,je,wn,dt,Io,_o,bs,m.SetUnderlineCommand,Nn,Le,Oo,uo,Yt,Xt,Un,Wn,Xr,Ct,En,Qe,Us,wo,Vt,Wt,yo,Mo,Ao,Ut,Lt,xo,bo,xr,Ar].forEach(r=>{this.disposeWithMe(this._commandService.registerCommand(r))})}_initMenus(){this._menuManagerService.mergeMenu(fc)}_initShortcuts(){[Cc,Ic,_c,bc,Rc,Ec,Tc,wc,yc,Mc,Pc,Oc,xc,Ac,kc,Nc,Dc,Hc,Vc,Wc,Uc,Xc,Gc,Kc,qc,Yc,Zc,Lc,Bc,Fc,jc,zc,...cl(),ul,dl,hl,gl,Sl,fl,ml,pc,vc].forEach(r=>{this.disposeWithMe(this._shortcutService.registerShortcut(r))})}_initWorkbenchParts(){const r=this._uiPartsService,e=this._injector,t=this._configService.getConfig(Gt);(t==null?void 0:t.formulaBar)!==!1&&this.disposeWithMe(r.registerComponent(I.BuiltInUIPart.HEADER,()=>I.connectInjector(ac,e))),this.disposeWithMe(r.registerComponent(I.BuiltInUIPart.FOOTER,()=>I.connectInjector(sc,e))),this.disposeWithMe(r.registerComponent(I.BuiltInUIPart.CONTENT,()=>I.connectInjector(lc,e)))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(a.UniverInstanceType.UNIVER_SHEET,r=>{const t=this._injector.get(w.IRenderManagerService).getCurrentTypeOfRenderer(a.UniverInstanceType.UNIVER_DOC),o=t==null?void 0:t.with($.DocSelectionRenderService);o==null||o.focus()}))}};exports.SheetUIController=Kf([gt(0,a.Inject(a.Injector)),gt(1,a.Inject(I.ComponentManager)),gt(2,I.ILayoutService),gt(3,a.ICommandService),gt(4,I.IShortcutService),gt(5,I.IMenuManagerService),gt(6,I.IUIPartsService),gt(7,a.IConfigService)],exports.SheetUIController);const Qc=(n=[])=>{const r=I.useDependency(qt);V.useEffect(()=>{const e=n.map(t=>r.addShape({range:t,style:{fill:"rgba(73, 184, 17, 0.05)",strokeWidth:1,stroke:"#49B811",widgets:{}},primary:{startColumn:t.startColumn,endColumn:t.endColumn,startRow:t.startRow,endRow:t.endRow,actualRow:t.startRow,actualColumn:t.startColumn,isMerged:!1,isMergedMainCell:!1}}));return()=>{e.forEach(t=>{t&&r.removeShape(t)})}},[n])};var qf=Object.getOwnPropertyDescriptor,Qf=(n,r,e,t)=>{for(var o=t>1?void 0:t?qf(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Wa=(n,r)=>(e,t)=>r(e,t,n);let io=class extends a.Disposable{constructor(r,e){super();E(this,"_previousSheetIndex",-1);this._commandService=r,this._univerInstanceService=e,this.disposeWithMe(this._commandService.beforeCommandExecuted(t=>{if(t.id===m.RemoveSheetMutation.id)return this._beforeAdjustActiveSheetOnRemoveSheet(t)})),this.disposeWithMe(this._commandService.onCommandExecuted((t,o)=>{if(t.id===m.RemoveSheetMutation.id)return this._adjustActiveSheetOnRemoveSheet(t);if(t.id===m.SetWorksheetHideMutation.id&&t.params.hidden)return this._adjustActiveSheetOnHideSheet(t);if(o!=null&&o.fromCollab)return!1;if(t.id===m.InsertSheetMutation.id)return this._adjustActiveSheetOnInsertSheet(t);if(t.id===m.SetWorksheetHideMutation.id&&!t.params.hidden)return this._adjustActiveSheetOnShowSheet(t);if(t.id===m.SetSelectionsOperation.id)return this._adjustActiveSheetOnSelection(t)}))}_adjustActiveSheetOnHideSheet(r){var c;const{unitId:e,subUnitId:t}=r.params,o=this._univerInstanceService.getUniverSheetInstance(e);if(!o||((c=o.getActiveSheet())==null?void 0:c.getSheetId())!==t)return;const s=o.getActiveSheetIndex(),l=Ua(o,s);this._switchToNextSheet(e,l)}_beforeAdjustActiveSheetOnRemoveSheet(r){const{unitId:e,subUnitId:t}=r.params,o=this._univerInstanceService.getUniverSheetInstance(e);if(!o)return;const i=o.getSheetBySheetId(t);i&&(this._previousSheetIndex=o.getSheetIndex(i))}_adjustActiveSheetOnRemoveSheet(r){if(this._previousSheetIndex===-1)return;const{unitId:e}=r.params,t=this._univerInstanceService.getUniverSheetInstance(e);if(!t)return;if(t.getActiveSheet().getSheetId()===r.params.subUnitId){const i=this._previousSheetIndex,s=i>=1?i-1:0,l=Ua(t,s);this._switchToNextSheet(e,l)}}_adjustActiveSheetOnInsertSheet(r){const{unitId:e,sheet:t}=r.params;this._switchToNextSheet(e,t.id)}_adjustActiveSheetOnShowSheet(r){const{unitId:e,subUnitId:t}=r.params;this._switchToNextSheet(e,t)}_adjustActiveSheetOnSelection(r){var o;const{unitId:e,subUnitId:t}=r.params;t!==((o=this._univerInstanceService.getUnit(e))==null?void 0:o.getActiveSheet().getSheetId())&&this._switchToNextSheet(e,t)}_switchToNextSheet(r,e){this._commandService.executeCommand(m.SetWorksheetActiveOperation.id,{unitId:r,subUnitId:e})}};io=Qf([Wa(0,a.ICommandService),Wa(1,a.IUniverInstanceService)],io);function Ua(n,r){const e=n.getSheetSize();for(let t=r;t>-1;t--){const o=n.getSheetByIndex(t);if(!o.getConfig().hidden)return o.getSheetId()}for(let t=r;t<e;t++){const o=n.getSheetByIndex(t);if(!o.getConfig().hidden)return o.getSheetId()}throw new Error("[ActiveWorksheetController]: could not find the next unhidden sheet! Collaboration error perhaps.")}var Jf=Object.getOwnPropertyDescriptor,$f=(n,r,e,t)=>{for(var o=t>1?void 0:t?Jf(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},xt=(n,r)=>(e,t)=>r(e,t,n);exports.SheetCanvasPopManagerService=class extends a.Disposable{constructor(e,t,o,i,s,l,c){super();E(this,"_popupMenuFeatureMap",new Map);E(this,"_isSelectionMoving",!1);this._globalPopupManagerService=e,this._renderManagerService=t,this._univerInstanceService=o,this._refRangeService=i,this._commandService=s,this._refSelectionsService=l,this._selectionManagerService=c,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(e,t){this._popupMenuFeatureMap.set(e,t)}getFeatureMenu(e,t,o,i){const s=this._popupMenuFeatureMap.get(i);if(s)return s(e,t,o,i)}dispose(){super.dispose(),this._popupMenuFeatureMap.clear()}_createHiddenRectObserver(e){const{row:t,column:o,worksheet:i,skeleton:s,currentRender:l}=e,c=()=>{var j,z;const g=i.getFreeze(),{startRow:S,startColumn:f,xSplit:p,ySplit:v}=g,C=S-v,b=f-p,{rowHeightAccumulation:R,columnWidthAccumulation:T,rowHeaderWidth:M,columnHeaderHeight:y}=s,P=M+(b===-1?0:T[b+p-1]-((j=T[b-1])!=null?j:0)),x=y+(C===-1?0:R[C+v-1]-((z=R[C])!=null?z:0)),A=l.engine.getCanvasElement(),k=A.getBoundingClientRect(),N=Ei(A.style.width),D=k.width/N,W=l.scene.getAncestorScale().scaleX,H=P*D*W,U=x*D*W,B={left:-1/0,top:-1/0,right:k.left+H,bottom:k.top+U},F={left:k.left+H,top:-1/0,right:1/0,bottom:k.top+U},L={left:-1/0,top:k.top+U,right:k.left+H,bottom:1/0};return t<S&&o<f?[]:t<S?[B]:o<f?[B]:[B,F,L]},d=c(),u=new O.BehaviorSubject(d),h=new a.DisposableCollection;return h.add(this._commandService.onCommandExecuted(g=>{if(g.id===m.SetFrozenMutation.id){const S=c();u.next(S)}})),{rects$:u,disposable:h}}_createPositionObserver(e,t,o,i){const s=()=>{const{scene:u}=t,h=cg(e,u,o,i),g=t.engine.getCanvasElement(),S=g.getBoundingClientRect(),f=Ei(g.style.width),p=S.width/f;return{left:h.left*p+S.left,right:h.right*p+S.left,top:h.top*p+S.top,bottom:h.bottom*p+S.top}},l=s(),c=new O.BehaviorSubject(l),d=new a.DisposableCollection;return d.add(this._commandService.onCommandExecuted(u=>{(u.id===je.id||u.id===Le.id)&&c.next(s())})),{position:l,position$:c,disposable:d}}attachPopupToObject(e,t){var R;const o=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),i=o.getActiveSheet();if(!i||this._isSelectionMoving&&!t.showOnSelectionMoving)return{dispose:()=>{},canDispose:()=>!0};const s=o.getUnitId(),l=i.getSheetId(),c=(R=this._renderManagerService.getRenderById(s))==null?void 0:R.with(exports.SheetSkeletonManagerService).ensureSkeleton(l),d=this._renderManagerService.getRenderById(s);if(!d||!c)return{dispose:()=>{},canDispose:()=>!0};const{left:u,top:h,width:g,height:S}=e,f={left:u,right:u+g,top:h,bottom:h+S},{position:p,position$:v,disposable:C}=this._createPositionObserver(f,d,c,i),b=this._globalPopupManagerService.addPopup({...t,unitId:s,subUnitId:l,anchorRect:p,anchorRect$:v,canvasElement:d.engine.getCanvasElement()});return{dispose:()=>{this._globalPopupManagerService.removePopup(b),v.complete(),C.dispose()},canDispose:()=>this._globalPopupManagerService.activePopupId!==b}}attachPopupByPosition(e,t,o){var C;const i=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=i.getActiveSheet();if(!s)return null;const l=i.getUnitId(),c=s.getSheetId();if(l!==o.unitId||o.subUnitId!==c)return null;if(this._isSelectionMoving&&!t.showOnSelectionMoving)return;const d=(C=this._renderManagerService.getRenderById(l))==null?void 0:C.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:c}),u=this._renderManagerService.getRenderById(l);if(!u||!d)return null;const{position:h,position$:g,disposable:S}=this._createPositionObserver(e,u,d,s),{rects$:f,disposable:p}=this._createHiddenRectObserver({row:o.row,column:o.col,worksheet:s,skeleton:d,currentRender:u}),v=this._globalPopupManagerService.addPopup({...t,unitId:l,subUnitId:c,anchorRect:h,anchorRect$:g,hiddenRects$:f,canvasElement:u.engine.getCanvasElement()});return{dispose:()=>{this._globalPopupManagerService.removePopup(v),g.complete(),S.dispose(),p.dispose()},canDispose:()=>this._globalPopupManagerService.activePopupId!==v}}attachPopupToAbsolutePosition(e,t,o,i){var f;const s=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s.getActiveSheet();if(!l)return null;const c=s.getUnitId(),d=l.getSheetId();if(o&&c!==o||i&&i!==d)return null;const u=(f=this._renderManagerService.getRenderById(c))==null?void 0:f.with(exports.SheetSkeletonManagerService).ensureSkeleton(d),h=this._renderManagerService.getRenderById(c);if(!h||!u)return null;if(this._isSelectionMoving&&!t.showOnSelectionMoving)return;const g=new O.BehaviorSubject(e),S=this._globalPopupManagerService.addPopup({...t,unitId:c,subUnitId:d,anchorRect:e,anchorRect$:g.asObservable(),canvasElement:h.engine.getCanvasElement()});return{dispose:()=>{this._globalPopupManagerService.removePopup(S),g.complete()},canDispose:()=>this._globalPopupManagerService.activePopupId!==S}}attachPopupToCell(e,t,o,i,s,l){const c=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),d=c.getActiveSheet();if(!d)return null;const u=c.getUnitId(),h=d.getSheetId();if(i&&u!==i||s&&h!==s)return null;const g=this._renderManagerService.getRenderById(u),S=g==null?void 0:g.with(exports.SheetSkeletonManagerService).ensureSkeleton(h),f=g==null?void 0:g.with(ve);if(!g||!S||!f)return null;if(this._isSelectionMoving&&!o.showOnSelectionMoving)return;const p=l!=null?l:wa(e,t,g.scene,d);if(!p)return null;const{position:v,position$:C,disposable:b,updateRowCol:R}=this._createCellPositionObserver(e,t,g,S,p),{rects$:T,disposable:M}=this._createHiddenRectObserver({row:e,column:t,worksheet:d,skeleton:S,currentRender:g}),y=this._globalPopupManagerService.addPopup({...o,unitId:u,subUnitId:h,anchorRect:v,anchorRect$:C,canvasElement:g.engine.getCanvasElement(),hiddenRects$:T}),P=new a.DisposableCollection;P.add(b),P.add(a.toDisposable(()=>{this._globalPopupManagerService.removePopup(y),C.complete()})),P.add(M);const x={startRow:e,endRow:e,startColumn:t,endColumn:t};return P.add(this._refRangeService.watchRange(u,h,x,(A,k)=>{k?R(k.startRow,k.startColumn):P.dispose()})),{dispose(){P.dispose()},canDispose:()=>this._globalPopupManagerService.activePopupId!==y}}attachRangePopup(e,t,o,i,s,l=!1){const c=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),d=c.getActiveSheet();if(!d)return null;const u=c.getUnitId(),h=d.getSheetId();if(o&&u!==o||i&&h!==i)return null;const g=this._renderManagerService.getRenderById(u),S=g==null?void 0:g.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:h}),f=g==null?void 0:g.with(ve);if(!g||!S||!f)return null;if(f.selectionMoving&&!l)return;const p=s!=null?s:wa(e.startRow,e.startColumn,g.scene,d);if(!p)return null;const{position:v,position$:C,disposable:b,updateRowCol:R,topLeftPos$:T,rightBottomPos$:M}=this._createRangePositionObserver(e,g,S,p),{rects$:y,disposable:P}=this._createHiddenRectObserver({row:e.startRow,column:e.startColumn,worksheet:d,skeleton:S,currentRender:g}),x=this._globalPopupManagerService.addPopup({...t,unitId:u,subUnitId:h,anchorRect:v,anchorRect$:C,canvasElement:g.engine.getCanvasElement(),hiddenRects$:y}),A=new a.DisposableCollection;A.add(b),A.add(a.toDisposable(()=>{this._globalPopupManagerService.removePopup(x),T.complete(),M.complete()})),A.add(P);const k={...e};return A.add(this._refRangeService.watchRange(u,h,k,(N,D)=>{D?R(D.startRow,D.startColumn):A.dispose()})),{dispose(){A.dispose()},canDispose:()=>this._globalPopupManagerService.activePopupId!==x}}_createCellPositionObserver(e,t,o,i,s){let l=e,c=t;const d=this._calcCellPositionByCell(l,c,o,i,s),u=new O.BehaviorSubject(d),h=()=>u.next(this._calcCellPositionByCell(l,c,o,i,s)),g=new a.DisposableCollection;return g.add(o.engine.clientRect$.subscribe(()=>h())),g.add(this._commandService.onCommandExecuted(f=>{if(f.id===m.SetWorksheetRowAutoHeightMutation.id&&f.params.rowsAutoHeightInfo.findIndex(v=>v.row===l)>-1){h();return}(m.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(f.id)>-1||f.id===je.id||f.id===Le.id)&&h()})),{position$:u,disposable:g,position:d,updateRowCol:(f,p)=>{l=f,c=p,h()}}}_calcCellPositionByCell(e,t,o,i,s){const{scene:l,engine:c}=o,d=i.getCellWithCoordByIndex(e,t),u=d.isMergedMainCell?d.mergeInfo:d,{scaleX:h,scaleY:g}=l.getAncestorScale(),S={x:s.viewportScrollX,y:s.viewportScrollY},f=c.getCanvasElement(),p=f.getBoundingClientRect(),v=Ei(f.style.width),{top:C,left:b,width:R}=p,T=R/v;return{left:(u.startX-S.x)*T*h+b,right:(u.endX-S.x)*T*h+b,top:(u.startY-S.y)*T*g+C,bottom:(u.endY-S.y)*T*g+C}}_createRangePositionObserver(e,t,o,i){let{startRow:s,startColumn:l}=e;const c=this._calcCellPositionByCell(s,l,t,o,i),d=new O.BehaviorSubject(c),u=this._calcCellPositionByCell(e.endRow,e.endColumn,t,o,i),h=new O.BehaviorSubject(u),g=()=>{const C=this._calcCellPositionByCell(s,l,t,o,i),b=this._calcCellPositionByCell(e.endRow,e.endColumn,t,o,i);d.next(C),h.next(b)},S=new a.DisposableCollection;S.add(t.engine.clientRect$.subscribe(()=>g())),S.add(this._commandService.onCommandExecuted(C=>{if(C.id===m.SetWorksheetRowAutoHeightMutation.id&&C.params.rowsAutoHeightInfo.findIndex(R=>R.row===s)>-1){g();return}(m.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(C.id)>-1||C.id===je.id||C.id===Le.id)&&g()}));const f=(C,b)=>{s=C,l=b,g()},p=d.pipe(O.map(C=>{const b=this._calcCellPositionByCell(e.endRow,e.endColumn,t,o,i);return{top:C.top,left:C.left,right:b.right,bottom:b.bottom}})),v={top:c.top,left:c.left,right:u.right,bottom:u.bottom};return{position$:p,position:v,updateRowCol:f,topLeftPos$:d,rightBottomPos$:h,disposable:S}}};exports.SheetCanvasPopManagerService=$f([xt(0,a.Inject(I.ICanvasPopupService)),xt(1,w.IRenderManagerService),xt(2,a.IUniverInstanceService),xt(3,a.Inject(m.RefRangeService)),xt(4,a.ICommandService),xt(5,m.IRefSelectionsService),xt(6,a.Inject(m.SheetsSelectionsService))],exports.SheetCanvasPopManagerService);function Ei(n){return Number.parseInt(n.replace("px",""))}var ep=Object.getOwnPropertyDescriptor,tp=(n,r,e,t)=>{for(var o=t>1?void 0:t?ep(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},La=(n,r)=>(e,t)=>r(e,t,n),_n=(n=>(n[n.INFO=0]="INFO",n[n.WARNING=1]="WARNING",n[n.ERROR=2]="ERROR",n))(_n||{});exports.CellAlertManagerService=class extends a.Disposable{constructor(e,t){super();E(this,"_currentAlert$",new O.Subject);E(this,"_currentAlert",new Map);E(this,"currentAlert$",this._currentAlert$.asObservable());this._renderManagerService=e,this._canvasPopManagerService=t,this.disposeWithMe(()=>{this._currentAlert$.complete()})}get currentAlert(){return this._currentAlert}showAlert(e){let t=this._currentAlert.get(e.key);t&&t.dispose.dispose(),t?t.dispose.dispose():(t={alert:e,dispose:{dispose(){}}},this._currentAlert.set(e.key,t));const{location:o}=e,{row:i,col:s,unitId:l}=o;if(!this._renderManagerService.getRenderById(l))return;const d=this._canvasPopManagerService.attachPopupToCell(i,s,{componentKey:Jc,direction:"horizontal",offset:[2,0],extraProps:{alert:e}});d&&(t.dispose=d),this._currentAlert$.next(Array.from(this._currentAlert.entries()))}removeAlert(e){const t=this._currentAlert.get(e);t&&(this._currentAlert.delete(e),t==null||t.dispose.dispose(),this._currentAlert$.next(Array.from(this._currentAlert.entries())))}clearAlert(){this._currentAlert.forEach(e=>{e.dispose.dispose()}),this._currentAlert.clear(),this._currentAlert$.next(Array.from(this._currentAlert.entries()))}};exports.CellAlertManagerService=tp([La(0,w.IRenderManagerService),La(1,a.Inject(exports.SheetCanvasPopManagerService))],exports.CellAlertManagerService);const np="univer-cell-alert",op="univer-cell-alert-title",rp="univer-cell-alert-icon",ip="univer-cell-alert-icon-error",sp="univer-cell-alert-icon-info",ap="univer-cell-alert-icon-warning",lp="univer-cell-alert-content",tt={cellAlert:np,cellAlertTitle:op,cellAlertIcon:rp,cellAlertIconError:ip,cellAlertIconInfo:sp,cellAlertIconWarning:ap,cellAlertContent:lp};function cp({popup:n}){var s;const r=(s=n.extraProps)==null?void 0:s.alert;if(!r)return null;const{type:e,title:t,message:o}=r,i={[_n.ERROR]:_.jsx(xs,{className:Te(tt.cellAlertIcon,tt.cellAlertIconError)}),[_n.INFO]:_.jsx(Qi,{className:Te(tt.cellAlertIcon,tt.cellAlertIconInfo)}),[_n.WARNING]:_.jsx(Qi,{className:Te(tt.cellAlertIcon,tt.cellAlertIconWarning)})};return _.jsxs("div",{className:tt.cellAlert,children:[_.jsxs("div",{className:tt.cellAlertTitle,children:[e?i[e]:null,t]}),_.jsx("div",{className:tt.cellAlertContent,children:o})]})}const Jc="univer.sheet.cell-alert";var dp=Object.getOwnPropertyDescriptor,up=(n,r,e,t)=>{for(var o=t>1?void 0:t?dp(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},hp=(n,r)=>(e,t)=>r(e,t,n);let hr=class extends a.Disposable{constructor(n,r){super(),this._context=n,this._componentManager=r,this._initComponent()}_initComponent(){this._componentManager.register(Jc,cp)}};hr=up([hp(1,a.Inject(I.ComponentManager))],hr);const mp="univer-sheet-paste-options-wrapper",gp="univer-sheet-paste-options-icon-wrapper",Sp="univer-sheet-paste-options-menu",fp="univer-sheet-paste-options-menu-item",pp="univer-sheet-paste-options-menu-item-title",vp="univer-sheet-paste-options-menu-item-icon",dn={sheetPasteOptionsWrapper:mp,sheetPasteOptionsIconWrapper:gp,sheetPasteOptionsMenu:Sp,sheetPasteOptionsMenuItem:fp,sheetPasteOptionsMenuItemTitle:pp,sheetPasteOptionsMenuItemIcon:vp},Ba=2,Cp=[{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"}],Ip=n=>{var N,D,W,H,U;const r=I.useDependency(a.IUniverInstanceService),e=I.useDependency(w.IRenderManagerService),t=ht();if(!n||!t)return null;const o={startRow:n.rows[0],startCol:n.cols[0],endRow:n.rows[n.rows.length-1],endCol:n.cols[n.cols.length-1]};if(o.endRow<0||o.endCol<0)return null;const i=e.getRenderById(t.getUnitId()),s=i==null?void 0:i.with(exports.SheetSkeletonManagerService),l=i==null?void 0:i.with(ve),c=Ge(r,e);if(!c||!l)return null;const{scene:d}=c,u=s==null?void 0:s.getCurrentSkeleton(),h=l.getViewPort(),g=d==null?void 0:d.scaleX,S=d==null?void 0:d.scaleY,f=d==null?void 0:d.getViewportScrollXY(h),p=(N=d.getEngine())==null?void 0:N.getCanvas();if(!g||!d||!g||!S||!f)return null;const v=u==null?void 0:u.getNoMergeCellPositionByIndex(o.endRow,o.endCol),C=(D=v==null?void 0:v.endX)!=null?D:0,b=(W=v==null?void 0:v.endY)!=null?W:0,R=(H=w.convertTransformToOffsetX(C,g,f))!=null?H:-9999,T=(U=w.convertTransformToOffsetY(b,S,f))!=null?U:-9999,M=p==null?void 0:p.getWidth(),y=p==null?void 0:p.getHeight();if(!M||!y)return null;const P=R+50<=M,x=T+50<=y;let A=R,k=T;return P||(A=M-100),x||(k=y-100),{positionX:A,positionY:k}},_p=()=>{const n=I.useDependency(Be),r=I.useObservable(n.showMenu$,!1),e=I.useDependency(Zt),t=I.useObservable(n.pasteOptionsCache$,null),o=I.useDependency(a.LocaleService),i=I.useDependency(a.ICommandService),[s,l]=V.useState(!1),[c,d]=V.useState(!1);I.useObservable(e.refreshOptionalPaste$,Math.random());const u=t==null?void 0:t.target.pastedRange,h=Ip(u);if(!h||!r||h.positionX<50||h.positionY<30)return null;const g=s||c,S=f=>{i.executeCommand(Rl.id,{type:f})};return _.jsx("div",{className:dn.sheetPasteOptionsWrapper,style:{left:h.positionX+Ba,top:h.positionY+Ba},onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),children:_.jsxs(Z.DropdownProvider,{visible:c,onVisibleChange:f=>{d(f)},children:[_.jsx(Z.DropdownTrigger,{children:_.jsxs("div",{className:dn.sheetPasteOptionsIconWrapper,onClick:()=>{d(!c)},children:[_.jsx(Bl,{style:{color:"#35322B"},extend:{colorChannel1:"rgb(var(--green-700))"}}),g&&_.jsx(Pn,{})]})}),_.jsx(Z.DropdownOverlay,{className:Te(dn.sheetPasteOptionsMenu,`
58
58
  univer-border univer-border-solid univer-border-gray-200 univer-opacity-100
59
- `),children:_.jsx("ul",{children:fp.map(f=>{const p=ge[f.value],v=(t==null?void 0:t.pasteType)===p;return _.jsxs("li",{onClick:()=>S(f.value),className:pe(dn.sheetPasteOptionsMenuItem,"hover:univer-bg-neutral-100"),children:[_.jsx("span",{children:v&&_.jsx(ht,{className:dn.sheetPasteOptionsMenuItemIcon,style:{color:"rgb(var(--green-700, #409f11))"}})}),_.jsx("div",{className:pe(dn.sheetPasteOptionsMenuItemTitle,"univer-text-gray-700"),children:o.t(f.label)})]},f.value)})})})]})})},Cp=[Ce.id,m.SetRangeValuesCommand.id,Le.id,m.MoveRangeMutation.id,m.RemoveRowMutation.id,m.RemoveColMutation.id,m.InsertRowMutation.id,m.InsertColMutation.id,m.MoveRowsMutation.id,m.MoveColsMutation.id,m.SetWorksheetColWidthMutation.id,m.SetWorksheetRowHeightMutation.id,m.SetSelectionsOperation.id,a.UndoCommandId];function Ip(n,r,e,t,o){const i=[],s=[];if(t.copyType===Ct.CUT){const{undos:l,redos:d}=_p(n,r,o);i.push(...d),s.push(...l)}else{const{undos:l,redos:d}=Jc(r,e,o);i.push(...d),s.push(...l);const{undos:c,redos:u}=bp(r,e,o);i.push(...u),s.push(...c);const{undos:h,redos:g}=qc(r,n,e,o);i.push(...g),s.push(...h);const{undos:S,redos:f}=Qc(r,e,o,!0);i.push(...f),s.push(...S);const{undos:p,redos:v}=Qi(r,e,o);i.push(...v),s.push(...p)}return{undos:s,redos:i}}function _p(n,r,e){let t=[],o=[];const{range:i,subUnitId:s,unitId:l}=n,{range:d,subUnitId:c}=r,u=d?Et(d):null,h=i?Et(i):null;if(h&&u){const g=e.get(a.IUniverInstanceService),S=e.get(m.SheetInterceptorService),f=g.getUniverSheetInstance(l),p=f==null?void 0:f.getSheetBySheetId(s),v=f==null?void 0:f.getSheetBySheetId(c);if(p&&v){const C=new a.ObjectMatrix,b=new a.ObjectMatrix,R=p.getCellMatrix(),T=v.getCellMatrix();a.Range.foreach(h,(L,z)=>{C.setValue(L,z,a.Tools.deepClone(R.getValue(L,z))),b.setValue(L,z,null)});const M=new a.ObjectMatrix;a.Range.foreach(u,(L,z)=>{M.setValue(L,z,a.Tools.deepClone(T.getValue(L,z)))});const y=new a.ObjectMatrix;a.Range.foreach(h,(L,z)=>{const X=a.cellToRange(L,z),Z=a.Rectangle.getRelativeRange(X,h),oe=a.Rectangle.getPositionRange(Z,u);y.setValue(oe.startRow,oe.startColumn,R.getValue(L,z))});const P={fromRange:h,toRange:u,from:{value:b.getMatrix(),subUnitId:s},to:{value:y.getMatrix(),subUnitId:c},unitId:l},x={fromRange:u,toRange:h,from:{value:C.getMatrix(),subUnitId:s},to:{value:M.getMatrix(),subUnitId:c},unitId:l},A=S.onCommandExecute({id:m.MoveRangeCommand.id,params:{toRange:u,fromRange:h}}),k=p.getMergeData(),N=v.getMergeData(),D=k.filter(L=>a.Rectangle.intersects(L,h)),W=N.filter(L=>a.Rectangle.intersects(L,u)),H=D.map(L=>a.Rectangle.getRelativeRange(L,h)).map(L=>a.Rectangle.getPositionRange(L,u)),U=m.getAddMergeMutationRangeByType(H),B=[{id:m.RemoveWorksheetMergeMutation.id,params:{unitId:l,subUnitId:s,ranges:D}},{id:m.RemoveWorksheetMergeMutation.id,params:{unitId:l,subUnitId:s,ranges:W}},{id:m.AddWorksheetMergeMutation.id,params:{unitId:l,subUnitId:c,ranges:U}}],F=[{id:m.RemoveWorksheetMergeMutation.id,params:{unitId:l,subUnitId:c,ranges:U}},{id:m.AddWorksheetMergeMutation.id,params:{unitId:l,subUnitId:c,ranges:W}},{id:m.AddWorksheetMergeMutation.id,params:{unitId:l,subUnitId:s,ranges:D}}];t=[{id:m.MoveRangeMutation.id,params:P},...A.redos,...B,{id:m.SetSelectionsOperation.id,params:{unitId:l,subUnitId:c,selections:[{range:u}],type:m.SelectionMoveType.MOVE_END}}],o=[{id:m.MoveRangeMutation.id,params:x},...A.undos,...F,{id:m.SetSelectionsOperation.id,params:{unitId:l,subUnitId:s,type:m.SelectionMoveType.MOVE_END,selections:[{range:h}]}}]}}return{undos:o,redos:t}}function qc(n,r,e,t){const{unitId:o,subUnitId:i,range:s}=n,l=[],d=[],{mapFunc:c}=qt([s]),u=new a.ObjectMatrix;e.forValue((S,f,p)=>{var R;let v;if(!p.p&&p.v&&!r){const T=String(p.v),M=a.numfmt.parseValue(T);(M==null?void 0:M.v)!==void 0&&typeof M.v=="number"&&(v=M.v)}const{row:C,col:b}=c(S,f);if((R=p.p)!=null&&R.body&&Fi(p.p.body)){const T=a.Tools.deepClone({p:p.p,v:v!=null?v:p.v});u.setValue(C,b,T)}else u.setValue(C,b,a.Tools.deepClone({v:v!=null?v:p.v,t:p.t}))});const h={unitId:o,subUnitId:i,cellValue:a.Tools.deepClone(u.getMatrix())};l.push({id:m.SetRangeValuesMutation.id,params:h});const g=m.SetRangeValuesUndoMutationFactory(t,h);return d.push({id:m.SetRangeValuesMutation.id,params:g}),{undos:d,redos:l}}function Qc(n,r,e,t=!1){const o=[],i=[],{unitId:s,subUnitId:l,range:d}=n,c=new a.ObjectMatrix,{mapFunc:u}=qt([d]);r.forValue((S,f,p)=>{var y;const v={s:Object.assign({},{...a.DEFAULT_STYLES,pd:w.DEFAULT_PADDING_DATA,bg:null,cl:null},p.s)},C=v.s.bd;C&&(Object.keys(C).length>0||(v.s.bd={b:null,l:null,r:null,t:null}));const b=String(p.v),R=a.numfmt.parseValue(b);R!=null&&R.z&&(v.s||(v.s={}),typeof v.s=="object"&&((y=v.s)!=null&&y.n?v.s.n.pattern=R.z:v.s.n={pattern:R.z}));const{row:T,col:M}=u(S,f);c.setValue(T,M,v)});const h={unitId:s,subUnitId:l,cellValue:a.Tools.deepClone(c.getMatrix())};o.push({id:m.SetRangeValuesMutation.id,params:h});const g=m.SetRangeValuesUndoMutationFactory(e,h);return i.push({id:m.SetRangeValuesMutation.id,params:g}),{undos:i,redos:o}}function Jc(n,r,e){const t=[],o=[],i=new a.ObjectMatrix,{unitId:s,subUnitId:l,range:d}=n,{mapFunc:c}=qt([d]);if(r.forEach((u,h)=>{Object.keys(h).forEach(g=>{const S=Number(g),{row:f,col:p}=c(u,S);i.setValue(f,p,{s:null})})}),i.getLength()>0){const u={subUnitId:l,unitId:s,cellValue:a.Tools.deepClone(i.getMatrix())};t.push({id:m.SetRangeValuesMutation.id,params:u});const h=m.SetRangeValuesUndoMutationFactory(e,u);o.push({id:m.SetRangeValuesMutation.id,params:h})}return{undos:o,redos:t}}function bp(n,r,e){const t=[],o=[],i=new a.ObjectMatrix,{unitId:s,subUnitId:l,range:d}=n,{mapFunc:c}=qt([d]);if(r.forValue((u,h,g)=>{const{row:S,col:f}=c(u,h);i.setValue(S,f,{v:null,p:null})}),i.getLength()>0){const u={subUnitId:l,unitId:s,cellValue:a.Tools.deepClone(i.getMatrix())};t.push({id:m.SetRangeValuesMutation.id,params:u});const h=m.SetRangeValuesUndoMutationFactory(e,u);o.push({id:m.SetRangeValuesMutation.id,params:h})}return{undos:o,redos:t}}function Qi(n,r,e){const t=[],o=[],{unitId:i,subUnitId:s,range:l}=n,{startColumn:d,startRow:c,endColumn:u,endRow:h}=Et(l),g=[];r.forValue((b,R,T)=>{if(T.rowSpan&&T.rowSpan>1){const M=T.colSpan||1,y={startRow:c+b,endRow:c+b+T.rowSpan-1,startColumn:d+R,endColumn:d+R+M-1};g.push(y)}else if(T.colSpan&&T.colSpan>1){const M=T.rowSpan||1,y={startRow:c+b,endRow:c+b+M-1,startColumn:d+R,endColumn:d+R+T.colSpan-1};g.push(y)}});const f=e.get(a.IUniverInstanceService).getUniverSheetInstance(i),p=f==null?void 0:f.getSheetBySheetId(s);if(f&&p){const R=p.getMergeData().filter(y=>a.Rectangle.intersects({startRow:c,startColumn:d,endRow:h,endColumn:u},y)),T={unitId:i,subUnitId:s,ranges:R};t.push({id:m.RemoveWorksheetMergeMutation.id,params:T});const M=m.RemoveMergeUndoMutationFactory(e,T);o.push({id:m.AddWorksheetMergeMutation.id,params:M})}const v={unitId:i,subUnitId:s,ranges:g};g.length>0&&t.push({id:m.AddWorksheetMergeMutation.id,params:v});const C=m.AddMergeUndoMutationFactory(e,v);return g.length>0&&o.push({id:m.RemoveWorksheetMergeMutation.id,params:C}),{undos:o,redos:t}}function Rp(n){if(!n.includes("\r")&&a.Tools.isLegalUrl(n)){const t=a.generateRandomId(),o=`${n}`,i={startIndex:0,endIndex:o.length-1,rangeId:t,rangeType:a.CustomRangeType.HYPERLINK,properties:{url:n}};return{dataStream:`${o}\r
59
+ `),children:_.jsx("ul",{children:Cp.map(f=>{const p=ge[f.value],v=(t==null?void 0:t.pasteType)===p;return _.jsxs("li",{onClick:()=>S(f.value),className:Te(dn.sheetPasteOptionsMenuItem,"hover:univer-bg-neutral-100"),children:[_.jsx("span",{children:v&&_.jsx(ut,{className:dn.sheetPasteOptionsMenuItemIcon,style:{color:"rgb(var(--green-700, #409f11))"}})}),_.jsx("div",{className:Te(dn.sheetPasteOptionsMenuItemTitle,"univer-text-gray-700"),children:o.t(f.label)})]},f.value)})})})]})})},bp=[Ce.id,m.SetRangeValuesCommand.id,Le.id,m.MoveRangeMutation.id,m.RemoveRowMutation.id,m.RemoveColMutation.id,m.InsertRowMutation.id,m.InsertColMutation.id,m.MoveRowsMutation.id,m.MoveColsMutation.id,m.SetWorksheetColWidthMutation.id,m.SetWorksheetRowHeightMutation.id,m.SetSelectionsOperation.id,a.UndoCommandId];function Rp(n,r,e,t,o){const i=[],s=[];if(t.copyType===vt.CUT){const{undos:l,redos:c}=Ep(n,r,o);i.push(...c),s.push(...l)}else{const{undos:l,redos:c}=td(r,e,o);i.push(...c),s.push(...l);const{undos:d,redos:u}=Tp(r,e,o);i.push(...u),s.push(...d);const{undos:h,redos:g}=$c(r,n,e,o);i.push(...g),s.push(...h);const{undos:S,redos:f}=ed(r,e,o,!0);i.push(...f),s.push(...S);const{undos:p,redos:v}=$i(r,e,o);i.push(...v),s.push(...p)}return{undos:s,redos:i}}function Ep(n,r,e){let t=[],o=[];const{range:i,subUnitId:s,unitId:l}=n,{range:c,subUnitId:d}=r,u=c?Rt(c):null,h=i?Rt(i):null;if(h&&u){const g=e.get(a.IUniverInstanceService),S=e.get(m.SheetInterceptorService),f=g.getUniverSheetInstance(l),p=f==null?void 0:f.getSheetBySheetId(s),v=f==null?void 0:f.getSheetBySheetId(d);if(p&&v){const C=new a.ObjectMatrix,b=new a.ObjectMatrix,R=p.getCellMatrix(),T=v.getCellMatrix();a.Range.foreach(h,(L,j)=>{C.setValue(L,j,a.Tools.deepClone(R.getValue(L,j))),b.setValue(L,j,null)});const M=new a.ObjectMatrix;a.Range.foreach(u,(L,j)=>{M.setValue(L,j,a.Tools.deepClone(T.getValue(L,j)))});const y=new a.ObjectMatrix;a.Range.foreach(h,(L,j)=>{const z=a.cellToRange(L,j),q=a.Rectangle.getRelativeRange(z,h),te=a.Rectangle.getPositionRange(q,u);y.setValue(te.startRow,te.startColumn,R.getValue(L,j))});const P={fromRange:h,toRange:u,from:{value:b.getMatrix(),subUnitId:s},to:{value:y.getMatrix(),subUnitId:d},unitId:l},x={fromRange:u,toRange:h,from:{value:C.getMatrix(),subUnitId:s},to:{value:M.getMatrix(),subUnitId:d},unitId:l},A=S.onCommandExecute({id:m.MoveRangeCommand.id,params:{toRange:u,fromRange:h}}),k=p.getMergeData(),N=v.getMergeData(),D=k.filter(L=>a.Rectangle.intersects(L,h)),W=N.filter(L=>a.Rectangle.intersects(L,u)),H=D.map(L=>a.Rectangle.getRelativeRange(L,h)).map(L=>a.Rectangle.getPositionRange(L,u)),U=m.getAddMergeMutationRangeByType(H),B=[{id:m.RemoveWorksheetMergeMutation.id,params:{unitId:l,subUnitId:s,ranges:D}},{id:m.RemoveWorksheetMergeMutation.id,params:{unitId:l,subUnitId:s,ranges:W}},{id:m.AddWorksheetMergeMutation.id,params:{unitId:l,subUnitId:d,ranges:U}}],F=[{id:m.RemoveWorksheetMergeMutation.id,params:{unitId:l,subUnitId:d,ranges:U}},{id:m.AddWorksheetMergeMutation.id,params:{unitId:l,subUnitId:d,ranges:W}},{id:m.AddWorksheetMergeMutation.id,params:{unitId:l,subUnitId:s,ranges:D}}];t=[{id:m.MoveRangeMutation.id,params:P},...A.redos,...B,{id:m.SetSelectionsOperation.id,params:{unitId:l,subUnitId:d,selections:[{range:u}],type:m.SelectionMoveType.MOVE_END}}],o=[{id:m.MoveRangeMutation.id,params:x},...A.undos,...F,{id:m.SetSelectionsOperation.id,params:{unitId:l,subUnitId:s,type:m.SelectionMoveType.MOVE_END,selections:[{range:h}]}}]}}return{undos:o,redos:t}}function $c(n,r,e,t){const{unitId:o,subUnitId:i,range:s}=n,l=[],c=[],{mapFunc:d}=Kt([s]),u=new a.ObjectMatrix;e.forValue((S,f,p)=>{var R;let v;if(!p.p&&p.v&&!r){const T=String(p.v),M=a.numfmt.parseValue(T);(M==null?void 0:M.v)!==void 0&&typeof M.v=="number"&&(v=M.v)}const{row:C,col:b}=d(S,f);if((R=p.p)!=null&&R.body&&zi(p.p.body)){const T=a.Tools.deepClone({p:p.p,v:v!=null?v:p.v});u.setValue(C,b,T)}else u.setValue(C,b,a.Tools.deepClone({v:v!=null?v:p.v,t:p.t}))});const h={unitId:o,subUnitId:i,cellValue:a.Tools.deepClone(u.getMatrix())};l.push({id:m.SetRangeValuesMutation.id,params:h});const g=m.SetRangeValuesUndoMutationFactory(t,h);return c.push({id:m.SetRangeValuesMutation.id,params:g}),{undos:c,redos:l}}function ed(n,r,e,t=!1){const o=[],i=[],{unitId:s,subUnitId:l,range:c}=n,d=new a.ObjectMatrix,{mapFunc:u}=Kt([c]);r.forValue((S,f,p)=>{var y;const v={s:Object.assign({},{...a.DEFAULT_STYLES,pd:w.DEFAULT_PADDING_DATA,bg:null,cl:null},p.s)},C=v.s.bd;C&&(Object.keys(C).length>0||(v.s.bd={b:null,l:null,r:null,t:null}));const b=String(p.v),R=a.numfmt.parseValue(b);R!=null&&R.z&&(v.s||(v.s={}),typeof v.s=="object"&&((y=v.s)!=null&&y.n?v.s.n.pattern=R.z:v.s.n={pattern:R.z}));const{row:T,col:M}=u(S,f);d.setValue(T,M,v)});const h={unitId:s,subUnitId:l,cellValue:a.Tools.deepClone(d.getMatrix())};o.push({id:m.SetRangeValuesMutation.id,params:h});const g=m.SetRangeValuesUndoMutationFactory(e,h);return i.push({id:m.SetRangeValuesMutation.id,params:g}),{undos:i,redos:o}}function td(n,r,e){const t=[],o=[],i=new a.ObjectMatrix,{unitId:s,subUnitId:l,range:c}=n,{mapFunc:d}=Kt([c]);if(r.forEach((u,h)=>{Object.keys(h).forEach(g=>{const S=Number(g),{row:f,col:p}=d(u,S);i.setValue(f,p,{s:null})})}),i.getLength()>0){const u={subUnitId:l,unitId:s,cellValue:a.Tools.deepClone(i.getMatrix())};t.push({id:m.SetRangeValuesMutation.id,params:u});const h=m.SetRangeValuesUndoMutationFactory(e,u);o.push({id:m.SetRangeValuesMutation.id,params:h})}return{undos:o,redos:t}}function Tp(n,r,e){const t=[],o=[],i=new a.ObjectMatrix,{unitId:s,subUnitId:l,range:c}=n,{mapFunc:d}=Kt([c]);if(r.forValue((u,h,g)=>{const{row:S,col:f}=d(u,h);i.setValue(S,f,{v:null,p:null})}),i.getLength()>0){const u={subUnitId:l,unitId:s,cellValue:a.Tools.deepClone(i.getMatrix())};t.push({id:m.SetRangeValuesMutation.id,params:u});const h=m.SetRangeValuesUndoMutationFactory(e,u);o.push({id:m.SetRangeValuesMutation.id,params:h})}return{undos:o,redos:t}}function $i(n,r,e){const t=[],o=[],{unitId:i,subUnitId:s,range:l}=n,{startColumn:c,startRow:d,endColumn:u,endRow:h}=Rt(l),g=[];r.forValue((b,R,T)=>{if(T.rowSpan&&T.rowSpan>1){const M=T.colSpan||1,y={startRow:d+b,endRow:d+b+T.rowSpan-1,startColumn:c+R,endColumn:c+R+M-1};g.push(y)}else if(T.colSpan&&T.colSpan>1){const M=T.rowSpan||1,y={startRow:d+b,endRow:d+b+M-1,startColumn:c+R,endColumn:c+R+T.colSpan-1};g.push(y)}});const f=e.get(a.IUniverInstanceService).getUniverSheetInstance(i),p=f==null?void 0:f.getSheetBySheetId(s);if(f&&p){const R=p.getMergeData().filter(y=>a.Rectangle.intersects({startRow:d,startColumn:c,endRow:h,endColumn:u},y)),T={unitId:i,subUnitId:s,ranges:R};t.push({id:m.RemoveWorksheetMergeMutation.id,params:T});const M=m.RemoveMergeUndoMutationFactory(e,T);o.push({id:m.AddWorksheetMergeMutation.id,params:M})}const v={unitId:i,subUnitId:s,ranges:g};g.length>0&&t.push({id:m.AddWorksheetMergeMutation.id,params:v});const C=m.AddMergeUndoMutationFactory(e,v);return g.length>0&&o.push({id:m.RemoveWorksheetMergeMutation.id,params:C}),{undos:o,redos:t}}function wp(n){if(!n.includes("\r")&&a.Tools.isLegalUrl(n)){const t=a.generateRandomId(),o=`${n}`,i={startIndex:0,endIndex:o.length-1,rangeId:t,rangeType:a.CustomRangeType.HYPERLINK,properties:{url:n}};return{dataStream:`${o}\r
60
60
  `,paragraphs:[{startIndex:o.length}],customRanges:[i]}}let r=n.replace(/(\r\n|\n)/g,"\r");r.endsWith(`\r
61
61
  `)||(r+=`\r
62
62
  `);const e=[];for(let t=0;t<r.length;t++)r[t]==="\r"&&e.push({startIndex:t});return{dataStream:r,paragraphs:e,sectionBreaks:[{startIndex:r.indexOf(`
63
- `)}]}}var Ep=Object.getOwnPropertyDescriptor,Tp=(n,r,e,t)=>{for(var o=t>1?void 0:t?Ep(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ze=(n,r)=>(e,t)=>r(e,t,n);const wp=[m.InsertColMutation.id,m.InsertRowMutation.id,m.RemoveColMutation.id,m.RemoveRowMutation.id,m.MoveRangeMutation.id,m.MoveRowsMutation.id,m.MoveColsMutation.id];let Kt=class extends a.RxDisposable{constructor(r,e,t,o,i,s,l,d,c,u){super();E(this,"_refreshOptionalPaste$",new O.Subject);E(this,"refreshOptionalPaste$",this._refreshOptionalPaste$.asObservable());this._injector=r,this._currentUniverSheet=e,this._renderManagerService=t,this._commandService=o,this._contextService=i,this._configService=s,this._sheetClipboardService=l,this._messageService=d,this._localService=c,this._uiPartsService=u,this._init(),this._initCommandListener(),this._initUIComponents(),this._pasteWithDoc()}refreshOptionalPaste(){this._refreshOptionalPaste$.next(Math.random())}_pasteWithDoc(){var t;const r=o=>{o.onPaste$.pipe(O.takeUntil(this.dispose$)).subscribe(i=>{var u,h;if(!le(this._contextService))return;i.event.preventDefault();const s=i.event,l=(u=s.clipboardData)==null?void 0:u.getData("text/html"),d=(h=s.clipboardData)==null?void 0:h.getData("text/plain"),c=this._resolveClipboardFiles(s.clipboardData);this._commandService.executeCommand(nr.id,{htmlContent:l,textContent:d,files:c})})};let e=(t=this._renderManagerService.getRenderById(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY))==null?void 0:t.with(J.DocSelectionRenderService);e&&r(e),this._renderManagerService.created$.subscribe(o=>{var i;o.unitId===a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY&&(e=(i=this._renderManagerService.getRenderById(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY))==null?void 0:i.with(J.DocSelectionRenderService),e&&r(e))})}_resolveClipboardFiles(r){if(!r)return;const e=Array.from(r.items).map(t=>t.kind==="file"?t.getAsFile():void 0).filter(Boolean);return e.length>0?e:void 0}_init(){[Xe,Ts,Ye].forEach(e=>this.disposeWithMe(this._commandService.registerMultipleCommand(e))),[fn,pn,Vt,vn,nr,Il].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e))),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._initCopyingHooks())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._initPastingHook()));const r=this._initSpecialPasteHooks().map(e=>this._sheetClipboardService.addClipboardHook(e));this.disposeWithMe({dispose:()=>r.forEach(e=>e.dispose())})}_initCopyingHooks(){const r=this;let e=null;return{id:ge.DEFAULT_COPY,isDefaultHook:!0,onBeforeCopy(t,o){e=r._getWorksheet(t,o)},onCopyCellContent(t,o){var l,d,c,u;const i=e.getCell(t,o);return(d=(l=i==null?void 0:i.p)==null?void 0:l.body)!=null&&d.paragraphs||(u=(c=i==null?void 0:i.p)==null?void 0:c.body)!=null&&u.textRuns?a.convertBodyToHtml(i.p.body):i?a.extractPureTextFromCell(i):""},onCopyCellStyle:(t,o,i,s)=>{const l={};(i||s)&&(l.rowspan=`${i||1}`,l.colspan=`${s||1}`);const d=e.getRange(t,o),c=e.getMergedCell(t,o),u=d.getTextStyle();let h="";if(u&&(h=a.handleStyleToString(u)),c){const g=c.endRow,S=c.endColumn,p=e.getRange(g,S).getTextStyle();if(p){const v=a.handleStyleToString(p);h?h+=v?`;${v}`:"":h=v}}return h&&(l.style=h),Object.keys(l).length?l:null},onCopyColumn(t){return{width:`${e.getColumnWidth(t)}`}},onCopyRow(t){return{style:`height: ${e.getRowHeight(t)}px;`}},onAfterCopy(){e=null},getFilteredOutRows(t){var d;const{startRow:o,endRow:i}=t,s=(d=r._currentUniverSheet.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET))==null?void 0:d.getActiveSheet(),l=[];if(!s)return l;for(let c=o;c<=i;c++)s.getRowFiltered(c)&&l.push(c);return l}}}_initPastingHook(){const r=this;let e=null,t=null,o=null;return{id:ge.DEFAULT_PASTE,isDefaultHook:!0,onBeforePaste({unitId:i,subUnitId:s,range:l}){o=r._getWorksheet(i,s),e=i,t=s;const d=r._configService.getConfig(m.MAX_CELL_PER_SHEET_KEY),c=l.rows[l.rows.length-1],u=l.cols[l.cols.length-1];return d&&c*u>d?(r._messageService.show({type:K.MessageType.Error,content:r._localService.t("clipboard.paste.exceedMaxCells")}),!1):!0},onPasteRows(i,s){const{range:l}=i,d=[],c=[],u=o.getMaxRows(),h=u-1,g=l.rows[l.rows.length-1]-h,S=s.length-g,f=o.getRowManager();if(g>0){const C={};s.slice(S).forEach((T,M)=>{const{height:y}=T||{};y&&(C[M]={h:Number.parseFloat(y),hd:a.BooleanNumber.FALSE})});const b={startColumn:l.cols[0],endColumn:l.cols[l.cols.length-1],endRow:l.rows[l.rows.length-1],startRow:u},R={unitId:e,subUnitId:t,range:b,rowInfo:C};d.push({id:m.InsertRowMutation.id,params:R}),c.push({id:m.RemoveRowMutation.id,params:{unitId:e,subUnitId:t,range:b}})}const p={},v={};if(s.slice(0,S).forEach((C,b)=>{var T,M;const{height:R}=C;if(R){const y=f.getRow(l.rows[0]+b),P=Number.parseFloat(R);if(y){const{h:x=a.DEFAULT_WORKSHEET_ROW_HEIGHT,ah:A=0}=y,k=Math.max(x,A);P>k?(p[b+l.rows[0]]=P,v[b+l.rows[0]]=k):(p[b+l.rows[0]]=k,v[b+l.rows[0]]=k)}else p[b+l.rows[0]]=P,v[b+l.rows[0]]=(M=(T=f.getRow(l.rows[0]+b))==null?void 0:T.h)!=null?M:a.DEFAULT_WORKSHEET_ROW_HEIGHT}}),Object.keys(p).length){const C={unitId:e,subUnitId:t,ranges:[{startRow:l.rows[0],endRow:Math.min(l.rows[l.rows.length-1],u),startColumn:l.cols[0],endColumn:l.cols[l.cols.length-1]}],rowHeight:p};d.push({id:m.SetWorksheetRowHeightMutation.id,params:C}),c.push({id:m.SetWorksheetRowHeightMutation.id,params:{...C,rowHeight:v}})}return{redos:d,undos:c}},onPasteColumns(i,s,l){var R;const{range:d}=i,c=[],u=[],h=o.getMaxColumns(),g=h-1,S=d.cols[d.cols.length-1]-g,f=s.length-S,p=(R=r._configService.getConfig(a.DEFAULT_WORKSHEET_COLUMN_WIDTH_KEY))!=null?R:a.DEFAULT_WORKSHEET_COLUMN_WIDTH,v=d.cols,C=v[0];if(S>0){const T={startRow:d.rows[0],endRow:d.rows[d.rows.length-1],endColumn:d.cols[d.cols.length-1],startColumn:h},M={unitId:e,subUnitId:t,range:T,colInfo:s.slice(f).map((y,P)=>({w:y.width?Math.max(+y.width,o.getColumnWidth(v[P])):p,hd:a.BooleanNumber.FALSE}))};c.push({id:m.InsertColMutation.id,params:M}),u.push({id:m.RemoveColMutation.id,params:{unitId:e,subUnitId:t,range:T}})}const b={unitId:e,subUnitId:t,ranges:[{startRow:d.rows[0],endRow:d.rows[d.rows.length-1],startColumn:d.cols[0],endColumn:Math.min(d.cols[d.cols.length-1],h)}]};if(s.length>0){const T={...b,colWidth:s.slice(0,f).reduce((y,P,x)=>{var A;return y[x+C]=P.width?Math.max(+P.width,(A=o.getColumnWidth(v[x]))!=null?A:p):p,y},{})},M={...b,colWidth:s.slice(0,f).reduce((y,P,x)=>{var A;return y[x+C]=(A=o.getColumnWidth(v[x]))!=null?A:p,y},{})};c.push({id:m.SetWorksheetColWidthMutation.id,params:T}),u.push({id:m.SetWorksheetColWidthMutation.id,params:M})}return{redos:c,undos:u}},onPastePlainText(i,s,l){return r._onPastePlainText(i,s,l)},onPasteCells(i,s,l,d){return r._onPasteCells(i,s,l,d)},onAfterPaste(i){o=null}}}_generateDocumentDataModelSnapshot(r){var l,d;const e=(l=this._renderManagerService.withCurrentTypeOfUnit(a.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:l.getCurrentParam();if(e==null)return null;const{skeleton:t}=e,o=(d=t.getBlankCellDocumentModel())==null?void 0:d.documentModel,s={...o==null?void 0:o.getSnapshot(),...r};return o==null||o.reset(s),o==null?void 0:o.getSnapshot()}_onPastePlainText(r,e,t){const{range:o,unitId:i,subUnitId:s}=r;let l;if(/\r|\n/.test(e)||a.Tools.isLegalUrl(e)){const c=Rp(e),u=this._generateDocumentDataModelSnapshot({body:c});l={[o.rows[0]]:{[o.cols[0]]:{p:u}}}}else a.isFormulaString(e)?l={[o.rows[0]]:{[o.cols[0]]:{f:e}}}:l={[o.rows[0]]:{[o.cols[0]]:{v:e}}};const d={unitId:i,subUnitId:s,cellValue:l};return{redos:[{id:m.SetRangeValuesMutation.id,params:d}],undos:[{id:m.SetRangeValuesMutation.id,params:m.SetRangeValuesUndoMutationFactory(this._injector,d)}]}}_onPasteCells(r,e,t,o){return this._injector.invoke(i=>Ip(r,e,t,o,i))}_initSpecialPasteHooks(){const r=this,e={id:ge.SPECIAL_PASTE_VALUE,specialPasteInfo:{label:"specialPaste.value"},onPasteCells:(s,l,d)=>this._injector.invoke(c=>qc(l,s,d,c))},t={id:ge.SPECIAL_PASTE_FORMAT,specialPasteInfo:{label:"specialPaste.format"},onPasteCells:(s,l,d)=>{const c=[],u=[],{undos:h,redos:g}=this._injector.invoke(C=>Jc(l,d,C));c.push(...g),u.push(...h);const{undos:S,redos:f}=this._injector.invoke(C=>Qi(l,d,C));c.push(...f),u.push(...S);const{undos:p,redos:v}=this._injector.invoke(C=>Qc(l,d,C));return c.push(...v),u.push(...p),{undos:u,redos:c}}},o={id:ge.SPECIAL_PASTE_COL_WIDTH,specialPasteInfo:{label:"specialPaste.colWidth"},onPasteCells(){return{undos:[],redos:[]}},onPasteColumns(s,l,d){var x,A;const c=r._currentUniverSheet.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),u=c.getUnitId(),h=(x=c.getActiveSheet())==null?void 0:x.getSheetId();if(!u||!h)throw new Error("Cannot find unitId or subUnitId");const g=[],S=[],f=r._getWorksheet(u,h),{range:p}=s,v=p.cols,C=v[0],b=f.getMaxColumns(),R=p.cols[p.cols.length-1]-b,T=l.length-R,M=(A=r._configService.getConfig(a.DEFAULT_WORKSHEET_COLUMN_WIDTH_KEY))!=null?A:a.DEFAULT_WORKSHEET_COLUMN_WIDTH,y={unitId:u,subUnitId:h,ranges:[{startRow:p.rows[0],endRow:Math.min(p.cols[p.cols.length-1],b),startColumn:p.cols[0],endColumn:p.cols[p.cols.length-1]}],colWidth:l.slice(0,T).reduce((k,N,D)=>{var W;return k[D+C]=N.width?Math.max(+N.width,(W=f.getColumnWidth(v[D]))!=null?W:M):M,k},{})},P={unitId:u,subUnitId:h,ranges:[{startRow:p.rows[0],endRow:Math.min(p.cols[p.cols.length-1],b),startColumn:p.cols[0],endColumn:p.cols[p.cols.length-1]}],colWidth:l.slice(0,T).reduce((k,N,D)=>{var W;return k[D+C]=(W=f.getColumnWidth(v[D]))!=null?W:M,k},{})};return g.push({id:m.SetWorksheetColWidthMutation.id,params:y}),S.push({id:m.SetWorksheetColWidthMutation.id,params:P}),{redos:g,undos:S}}},i={id:ge.SPECIAL_PASTE_BESIDES_BORDER,specialPasteInfo:{label:"specialPaste.besidesBorder"},onPasteCells:(s,l,d,c)=>{r._currentUniverSheet.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);const u=[],h=[],{range:g,unitId:S,subUnitId:f}=l,p=new a.ObjectMatrix;d.forValue((T,M,y)=>{const P=y.s;if(typeof P=="object"){const x=a.Tools.deepClone(y);x.s&&(x.s={...P,bd:null}),p.setValue(g.rows[T],g.cols[M],x)}});const v={unitId:S,subUnitId:f,cellValue:p.getData()};u.push({id:m.SetRangeValuesMutation.id,params:v});const C=this._injector.invoke(m.SetRangeValuesUndoMutationFactory,v);h.push({id:m.SetRangeValuesMutation.id,params:C});const{undos:b,redos:R}=this._injector.invoke(T=>Qi(l,d,T));return h.push(...b),u.push(...R),{redos:u,undos:h}}};return[e,t,o,i]}_getWorksheet(r,e){var o;const t=(o=this._currentUniverSheet.getUniverSheetInstance(r))==null?void 0:o.getSheetBySheetId(e);if(!t)throw new Error(`[SheetClipboardController]: cannot find a worksheet with unitId ${r} and subUnitId ${e}.`);return t}_initCommandListener(){var e;this.disposeWithMe(this._commandService.onCommandExecuted(t=>{t.id===wt.id?this._sheetClipboardService.removeMarkSelection():wp.includes(t.id)&&this._sheetClipboardService.removeMarkSelection()}));const r=this._configService.getConfig(Zt);(e=r==null?void 0:r.clipboardConfig)!=null&&e.hidePasteOptions||(this.disposeWithMe(this._commandService.onCommandExecuted(t=>{Cp.includes(t.id)&&this._sheetClipboardService.disposePasteOptionsCache()})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===je.id){if(!this._sheetClipboardService.getPasteMenuVisible())return;const i=t.params.unitId,s=this._sheetClipboardService.getPasteOptionsCache(),l=s==null?void 0:s.target.unitId;i===l&&this._refreshOptionalPaste$.next(Math.random())}})))}_initUIComponents(){var e;const r=this._configService.getConfig(Zt);(e=r==null?void 0:r.clipboardConfig)!=null&&e.hidePasteOptions||this.disposeWithMe(this._uiPartsService.registerComponent(I.BuiltInUIPart.CONTENT,()=>I.connectInjector(vp,this._injector)))}};Kt=Tp([Ze(0,a.Inject(a.Injector)),Ze(1,a.IUniverInstanceService),Ze(2,w.IRenderManagerService),Ze(3,a.ICommandService),Ze(4,a.IContextService),Ze(5,a.IConfigService),Ze(6,Be),Ze(7,I.IMessageService),Ze(8,a.Inject(a.LocaleService)),Ze(9,I.IUIPartsService)],Kt);var yp=Object.getOwnPropertyDescriptor,Mp=(n,r,e,t)=>{for(var o=t>1?void 0:t?yp(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ua=(n,r)=>(e,t)=>r(e,t,n);exports.DragManagerService=class extends a.Disposable{constructor(e,t){super();E(this,"_currentCell$",new O.Subject);E(this,"currentCell$",this._currentCell$.asObservable().pipe(O.distinctUntilChanged((e,t)=>{var o,i,s,l,d,c,u,h;return((o=e==null?void 0:e.location)==null?void 0:o.unitId)===((i=t==null?void 0:t.location)==null?void 0:i.unitId)&&((s=e==null?void 0:e.location)==null?void 0:s.subUnitId)===((l=t==null?void 0:t.location)==null?void 0:l.subUnitId)&&((d=e==null?void 0:e.location)==null?void 0:d.row)===((c=t==null?void 0:t.location)==null?void 0:c.row)&&((u=e==null?void 0:e.location)==null?void 0:u.col)===((h=t==null?void 0:t.location)==null?void 0:h.col)})));E(this,"_endCell$",new O.Subject);E(this,"endCell$",this._endCell$.asObservable());this._univerInstanceService=e,this._renderManagerService=t,this._initCellDisposableListener()}dispose(){super.dispose(),this._currentCell$.complete(),this._endCell$.complete()}_initCellDisposableListener(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{e||(this._currentCell$.next(null),this._endCell$.next(null))}))}_calcActiveCell(e,t){const o=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!o)return null;const i=o.getActiveSheet();if(!i)return;const s=this._renderManagerService.getRenderById(o.getUnitId());if(!s)return;const l=s.with(exports.SheetSkeletonManagerService).getCurrentParam(),c=s.with(exports.SheetScrollManagerService).getCurrentScrollState();if(!(!l||!c||!s))return jl(s,o,i,l,e,t)}onDragOver(e){const{offsetX:t,offsetY:o,dataTransfer:i}=e,s=this._calcActiveCell(t,o);if(!s){this._currentCell$.next(null);return}const{location:l,position:d}=s;this._currentCell$.next({location:l,position:d,dataTransfer:i})}onDrop(e){const{offsetX:t,offsetY:o,dataTransfer:i}=e,s=this._calcActiveCell(t,o);if(!s){this._endCell$.next(null);return}const{location:l,position:d}=s;this._endCell$.next({location:l,position:d,dataTransfer:i})}};exports.DragManagerService=Mp([Ua(0,a.IUniverInstanceService),Ua(1,w.IRenderManagerService)],exports.DragManagerService);var Pp=Object.getOwnPropertyDescriptor,Op=(n,r,e,t)=>{for(var o=t>1?void 0:t?Pp(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ri=(n,r)=>(e,t)=>r(e,t,n);exports.DragRenderController=class extends a.Disposable{constructor(r,e,t,o){super(),this._context=r,this._renderManagerService=e,this._dragManagerService=t,this._sheetSkeletonManagerService=o,this._initDragEvent()}_initDragEvent(){const r=new a.DisposableCollection,e=t=>{if(r.dispose(),!t)return;const{scene:o}=this._context,i=o.onDragOver$.subscribeEvent(l=>{this._dragManagerService.onDragOver(l)}),s=o.onDrop$.subscribeEvent(l=>{this._dragManagerService.onDrop(l)});r.add({dispose(){i.unsubscribe(),s.unsubscribe()}})};e(this._sheetSkeletonManagerService.getCurrentParam()),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(t=>{e(t)}))}};exports.DragRenderController=Op([Ri(1,w.IRenderManagerService),Ri(2,a.Inject(exports.DragManagerService)),Ri(3,a.Inject(exports.SheetSkeletonManagerService))],exports.DragRenderController);const Us=(n,r)=>{var h,g,S,f,p;const t=r.findNodePositionByCharIndex(n.startOffset,!0,n.segmentId,-1),o=r.getSkeletonData();let i=n.endOffset;if(n.segmentId){const v=(p=Array.from((g=(h=o==null?void 0:o.skeFooters.get(n.segmentId))==null?void 0:h.values())!=null?g:[])[0])!=null?p:Array.from((f=(S=o==null?void 0:o.skeHeaders.get(n.segmentId))==null?void 0:S.values())!=null?f:[])[0];v&&(i=Math.min(v.ed,i))}const s=r.findNodePositionByCharIndex(i,!0,n.segmentId,-1);if(!s||!t)return;const l={docsLeft:0,docsTop:0,pageMarginLeft:0,pageMarginTop:0},d=new J.NodePositionConvertToCursor(l,r),{borderBoxPointGroup:c}=d.getRangePointData(t,s);return J.getLineBounding(c).map(v=>({top:v.top,bottom:v.bottom,left:v.left,right:v.right}))},xp=(n,r,e=-1)=>{const t=r.findPositionByGlyph(n,e);if(!t)return;const o={...t,isBack:!0},i={docsLeft:0,docsTop:0,pageMarginLeft:0,pageMarginTop:0},s=new J.NodePositionConvertToCursor(i,r),{borderBoxPointGroup:l}=s.getRangePointData(o,o),c=J.getLineBounding(l)[0];return{top:c.top,bottom:c.bottom,left:c.left,right:c.right}},Ap=(n,r,e=0,t=0)=>{const o=Us({startOffset:r.startIndex,endOffset:r.endIndex+1},n);if(o)return{rects:o.map(i=>({top:i.top+t,bottom:i.bottom+t,left:i.left+e,right:i.right+e})),range:r}},kp=(n,r,e=0,t=0)=>{var h,g,S;const o=n.findNodeByCharIndex(r.startIndex),i=o==null?void 0:o.parent,s=i==null?void 0:i.parent,l=s==null?void 0:s.parent,d=l==null?void 0:l.lines.find(f=>f.paragraphStart&&f.paragraphIndex===r.startIndex),c=(S=(g=(h=d==null?void 0:d.divides)==null?void 0:h[0])==null?void 0:g.glyphGroup)==null?void 0:S[0];if(!c||!c)return;const u=xp(c,n);if(u)return{rect:{top:u.top+t,bottom:u.bottom+t,left:u.left+e,right:u.right+e},segmentId:void 0,segmentPageIndex:-1,paragraph:r}},$c=(n,r=0,e=0)=>{var l,d,c,u,h,g,S;const t=n.getViewModel().getDataModel(),o=(c=(d=(l=t.getBody())==null?void 0:l.customRanges)==null?void 0:d.filter(f=>f.rangeType===a.CustomRangeType.HYPERLINK))!=null?c:[],i=(g=(h=(u=t.getBody())==null?void 0:u.paragraphs)==null?void 0:h.filter(f=>{var p;return((p=f.bullet)==null?void 0:p.listType.indexOf(a.PresetListType.CHECK_LIST))===0}))!=null?g:[],s=(S=n.getSkeletonData())==null?void 0:S.pages[0].skeDrawings;return{links:o.map(f=>Ap(n,f,r,e)).filter(Boolean),checkLists:i.map(f=>kp(n,f,r,e)).filter(Boolean),drawings:s?Array.from(s.keys()).map(f=>({drawingId:f,rect:{top:s.get(f).aTop,bottom:s.get(f).aTop+s.get(f).width,left:s.get(f).aLeft,right:s.get(f).aLeft+s.get(f).height}})):[]}};function ed(n,r,e){var c,u,h,g;const t=(u=(c=r.documentSkeleton.getSkeletonData())==null?void 0:c.pages[0].height)!=null?u:0,o=(g=(h=r.documentSkeleton.getSkeletonData())==null?void 0:h.pages[0].width)!=null?g:0,i=r.verticalAlign,s=r.horizontalAlign;let l=0;switch(i){case a.VerticalAlign.UNSPECIFIED:case a.VerticalAlign.BOTTOM:l=n.mergeInfo.endY-n.mergeInfo.startY-t;break;case a.VerticalAlign.MIDDLE:l=(n.mergeInfo.endY-n.mergeInfo.startY-t)/2;break}let d=0;switch(s){case a.HorizontalAlign.RIGHT:d=n.mergeInfo.endX-n.mergeInfo.startX-o;break;case a.HorizontalAlign.CENTER:d=(n.mergeInfo.endX-n.mergeInfo.startX-o)/2;break;case a.HorizontalAlign.UNSPECIFIED:{e&&(d=n.mergeInfo.endX-n.mergeInfo.startX-o);break}}return{paddingLeft:d,paddingTop:l}}const Np=(n,r,e,t,o,i)=>{var N,D,W;const s=n.get(a.IUniverInstanceService),l=n.get(w.IRenderManagerService),d=s.getUnit(r,a.UniverInstanceType.UNIVER_SHEET);if(!d)return null;const c=d.getSheetBySheetId(e);if(!c)return null;const u=l.getRenderById(d.getUnitId()),h=u==null?void 0:u.with(exports.SheetSkeletonManagerService).getSkeletonParam(c.getSheetId()),g=h==null?void 0:h.skeleton;if(!g||!u)return;const S=g.getFont(t,o),f=S==null?void 0:S.documentSkeleton;if(!f)return null;const p=(D=(N=f.getViewModel().getBody())==null?void 0:N.customRanges)==null?void 0:D.find(H=>H.rangeId===i);if(!p)return null;const v=J.DOC_VERTICAL_PADDING,C=g.getCellWithCoordByIndex(t,o);let{actualColumn:b,actualRow:R}=C;g.overflowCache.forValue((H,U,B)=>{B.startRow<=R&&B.endRow>=R&&B.startColumn<=b&&B.endColumn>=b&&(b=U,R=H)});const T=g.getCellWithCoordByIndex(R,b),M=c.getCell(T.actualRow,T.actualColumn),{topOffset:y=0,leftOffset:P=0}=(W=M==null?void 0:M.fontRenderExtension)!=null?W:{},{paddingLeft:x,paddingTop:A}=ed(T,S,!1),k=Us({startOffset:p.startIndex,endOffset:p.endIndex},f);return{rects:k==null?void 0:k.map(H=>({top:H.top+T.mergeInfo.startY+A+y+v,bottom:H.bottom+T.mergeInfo.startY+A+y+v,left:H.left+T.mergeInfo.startX+x+P,right:H.right+T.mergeInfo.startX+x+P})),customRange:p,label:f.getViewModel().getBody().dataStream.slice(p.startIndex,p.endIndex+1)}},Dp=(n,r,e,t,o,i)=>{var P,x,A;const s=n.get(Se),l=s.getEditCellState();if(!l||!s.isVisible().visible)return null;const{editorUnitId:c,unitId:u,sheetId:h,row:g,column:S}=l;if(r!==u||e!==h||g!==t||S!==o)return null;const f=n.get(w.IRenderManagerService),p=f.getRenderById(c),v=f.getRenderById(r);if(!p||!v)return null;const C=p.with(Re.DocSkeletonManagerService).getSkeleton(),b=(P=v.with(exports.SheetSkeletonManagerService).getSkeletonParam(h))==null?void 0:P.skeleton;if(!C||!b)return null;const R=(A=(x=C.getViewModel().getBody())==null?void 0:x.customRanges)==null?void 0:A.find(k=>k.rangeId===i);if(!R)return null;const T=4,M=Us({startOffset:R.startIndex,endOffset:R.endIndex},C),y=p.engine.getCanvasElement().getBoundingClientRect();return{rects:M==null?void 0:M.map(k=>({top:k.top+y.top-T,bottom:k.bottom+y.top+T,left:k.left+y.left,right:k.right+y.left})),customRange:R,label:C.getViewModel().getBody().dataStream.slice(R.startIndex,R.endIndex+1)}};var Hp=Object.getOwnPropertyDescriptor,Vp=(n,r,e,t)=>{for(var o=t>1?void 0:t?Hp(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},La=(n,r)=>(e,t)=>r(e,t,n);function kt(n){const{workbook:r,worksheet:e,...t}=n;return t}exports.HoverManagerService=class extends a.Disposable{constructor(e,t){super();E(this,"_currentCell$",new O.BehaviorSubject(null));E(this,"_currentRichText$",new O.BehaviorSubject(null));E(this,"_currentClickedCell$",new O.Subject);E(this,"_currentDbClickedCell$",new O.Subject);E(this,"_currentCellWithEvent$",new O.Subject);E(this,"_currentPointerDownCell$",new O.Subject);E(this,"_currentPointerUpCell$",new O.Subject);E(this,"_currentHoveredRowHeader$",new O.BehaviorSubject(null));E(this,"_currentHoveredColHeader$",new O.BehaviorSubject(null));E(this,"_currentRowHeaderClick$",new O.Subject);E(this,"_currentColHeaderClick$",new O.Subject);E(this,"_currentRowHeaderDbClick$",new O.Subject);E(this,"_currentColHeaderDbClick$",new O.Subject);E(this,"_currentRowHeaderPointerDown$",new O.Subject);E(this,"_currentColHeaderPointerDown$",new O.Subject);E(this,"_currentRowHeaderPointerUp$",new O.Subject);E(this,"_currentColHeaderPointerUp$",new O.Subject);E(this,"currentCell$",this._currentCell$.asObservable().pipe(O.distinctUntilChanged((e,t)=>{var o,i,s,l,d,c,u,h;return((o=e==null?void 0:e.location)==null?void 0:o.unitId)===((i=t==null?void 0:t.location)==null?void 0:i.unitId)&&((s=e==null?void 0:e.location)==null?void 0:s.subUnitId)===((l=t==null?void 0:t.location)==null?void 0:l.subUnitId)&&((d=e==null?void 0:e.location)==null?void 0:d.row)===((c=t==null?void 0:t.location)==null?void 0:c.row)&&((u=e==null?void 0:e.location)==null?void 0:u.col)===((h=t==null?void 0:t.location)==null?void 0:h.col)})));E(this,"currentRichText$",this._currentRichText$.pipe(O.distinctUntilChanged((e,t)=>{var o,i,s,l,d,c,u,h,g,S,f,p,v,C,b,R;return((o=e==null?void 0:e.location)==null?void 0:o.unitId)===((i=t==null?void 0:t.location)==null?void 0:i.unitId)&&((s=e==null?void 0:e.location)==null?void 0:s.subUnitId)===((l=t==null?void 0:t.location)==null?void 0:l.subUnitId)&&((d=e==null?void 0:e.location)==null?void 0:d.row)===((c=t==null?void 0:t.location)==null?void 0:c.row)&&((u=e==null?void 0:e.location)==null?void 0:u.col)===((h=t==null?void 0:t.location)==null?void 0:h.col)&&((g=e==null?void 0:e.customRange)==null?void 0:g.rangeId)===((S=t==null?void 0:t.customRange)==null?void 0:S.rangeId)&&((f=e==null?void 0:e.bullet)==null?void 0:f.startIndex)===((p=t==null?void 0:t.bullet)==null?void 0:p.startIndex)&&((v=e==null?void 0:e.customRange)==null?void 0:v.startIndex)===((C=t==null?void 0:t.customRange)==null?void 0:C.startIndex)&&((b=e==null?void 0:e.customRange)==null?void 0:b.endIndex)===((R=t==null?void 0:t.customRange)==null?void 0:R.endIndex)&&(e==null?void 0:e.drawing)===(t==null?void 0:t.drawing)}),O.map(e=>e&&{unitId:e.location.unitId,subUnitId:e.location.subUnitId,row:e.location.row,col:e.location.col,customRange:e.customRange,bullet:e.bullet,rect:e.rect,drawing:e.drawing})));E(this,"currentCellPosWithEvent$",this._currentCellWithEvent$.pipe(O.distinctUntilChanged((e,t)=>{var o,i,s,l,d,c,u,h;return((o=e==null?void 0:e.location)==null?void 0:o.unitId)===((i=t==null?void 0:t.location)==null?void 0:i.unitId)&&((s=e==null?void 0:e.location)==null?void 0:s.subUnitId)===((l=t==null?void 0:t.location)==null?void 0:l.subUnitId)&&((d=e==null?void 0:e.location)==null?void 0:d.row)===((c=t==null?void 0:t.location)==null?void 0:c.row)&&((u=e==null?void 0:e.location)==null?void 0:u.col)===((h=t==null?void 0:t.location)==null?void 0:h.col)}),O.map(e=>e&&{unitId:e.location.unitId,subUnitId:e.location.subUnitId,row:e.location.row,col:e.location.col,event:e.event})));E(this,"currentPosition$",this._currentCell$.asObservable());E(this,"currentClickedCell$",this._currentClickedCell$.asObservable());E(this,"currentDbClickedCell$",this._currentDbClickedCell$.asObservable());E(this,"currentPointerDownCell$",this._currentPointerDownCell$.asObservable());E(this,"currentPointerUpCell$",this._currentPointerUpCell$.asObservable());E(this,"currentHoveredRowHeader$",this._currentHoveredRowHeader$.asObservable());E(this,"currentHoveredColHeader$",this._currentHoveredColHeader$.asObservable());E(this,"currentRowHeaderClick$",this._currentRowHeaderClick$.asObservable());E(this,"currentColHeaderClick$",this._currentColHeaderClick$.asObservable());E(this,"currentRowHeaderDbClick$",this._currentRowHeaderDbClick$.asObservable());E(this,"currentColHeaderDbClick$",this._currentColHeaderDbClick$.asObservable());E(this,"currentRowHeaderPointerDown$",this._currentRowHeaderPointerDown$.asObservable());E(this,"currentColHeaderPointerDown$",this._currentColHeaderPointerDown$.asObservable());E(this,"currentRowHeaderPointerUp$",this._currentRowHeaderPointerUp$.asObservable());E(this,"currentColHeaderPointerUp$",this._currentColHeaderPointerUp$.asObservable());this._univerInstanceService=e,this._renderManagerService=t,this._initCellDisposableListener()}dispose(){super.dispose(),this._currentCell$.complete(),this._currentClickedCell$.complete(),this._currentPointerDownCell$.complete(),this._currentPointerUpCell$.complete(),this._currentCellWithEvent$.complete()}_initCellDisposableListener(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{e||this._currentCell$.next(null)})),this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(e=>{var t,o;((t=this._currentCell$.getValue())==null?void 0:t.location.unitId)===e.getUnitId()&&this._currentCell$.next(null),((o=this._currentRichText$.getValue())==null?void 0:o.location.unitId)===e.getUnitId()&&this._currentRichText$.next(null)}))}_getCalcDeps(e){const t=this._univerInstanceService.getUnit(e,a.UniverInstanceType.UNIVER_SHEET);if(!t)return null;const o=t.getActiveSheet();if(!o)return null;const i=this._renderManagerService.getRenderById(t.getUnitId());if(!i)return null;const s=i.with(exports.SheetSkeletonManagerService).getSkeletonParam(o.getSheetId());if(!s)return null;const l=i.with(exports.SheetScrollManagerService);if(!(!(l!=null&&l.getCurrentScrollState())||!i))return{currentRender:i,workbook:t,worksheet:o,skeletonParam:s}}_calcActiveCell(e,t,o,i,s,l){var y,P,x;const d=jl(e,t,o,i,s,l),c=i.skeleton;if(!d)return null;const{position:u,overflowLocation:h,location:g}=d,S=c.getFont(h.row,h.col);let f=null,p=null,v=null;const C=c.getCellWithCoordByIndex(h.row,h.col),b=o.getCell(h.row,h.col),{topOffset:R=0,leftOffset:T=0}=(y=b==null?void 0:b.fontRenderExtension)!=null?y:{};if(S){const{paddingLeft:A,paddingTop:k}=ed(C,S,(b==null?void 0:b.v)!==null&&(b==null?void 0:b.v)!==void 0?!Number.isNaN(+b.v):!1),N=$c(S.documentSkeleton,A,k),D=s-u.startX-T,W=l-u.startY-R;f=N.links.find(H=>H.rects.some(U=>U.left<=D&&D<=U.right&&U.top<=W&&W<=U.bottom)),p=N.checkLists.find(H=>H.rect.left<=D&&D<=H.rect.right&&H.rect.top<=W&&W<=H.rect.bottom),v=N.drawings.find(H=>H.rect.left<=D&&D<=H.rect.right&&H.rect.top<=W&&W<=H.rect.bottom)}const M=(x=(P=f==null?void 0:f.rects.pop())!=null?P:p==null?void 0:p.rect)!=null?x:v==null?void 0:v.rect;return{location:g,position:u,overflowLocation:h,customRange:f==null?void 0:f.range,bullet:p==null?void 0:p.paragraph,drawing:v==null?void 0:v.drawingId,rect:M&&{top:M.top+C.mergeInfo.startY+R,bottom:M.bottom+C.mergeInfo.startY+R,left:M.left+C.mergeInfo.startX+T,right:M.right+C.mergeInfo.startX+T}}}_calcActiveRowHeader(e,t,o){const i=this._getCalcDeps(e);if(!i)return;const{currentRender:s,worksheet:l,skeletonParam:d}=i,{scaleY:c}=s.scene.getAncestorScale(),u=s.scene.getViewports().find(S=>S.isHit(new w.Vector2(t,o)));if(!u||u.viewportKey!==w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP&&u.viewportKey!==w.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM)return;const h={x:u.viewportScrollX,y:u.viewportScrollY},g=d.skeleton.getRowIndexByOffsetY(o,c,h);return{unitId:e,index:g,subUnitId:l.getSheetId()}}_calcActiveColHeader(e,t,o){const i=this._getCalcDeps(e);if(!i)return;const{currentRender:s,worksheet:l,skeletonParam:d}=i,{scaleX:c}=s.scene.getAncestorScale(),u=s.scene.getViewports().find(S=>S.isHit(new w.Vector2(t,o)));if(!u||u.viewportKey!==w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT&&u.viewportKey!==w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT)return;const h={x:u.viewportScrollX,y:u.viewportScrollY},g=d.skeleton.getColumnIndexByOffsetX(t,c,h);return{unitId:e,index:g,subUnitId:l.getSheetId()}}triggerPointerDown(e,t){const o=this._getCalcDeps(e);if(!o)return;const{currentRender:i,workbook:s,worksheet:l,skeletonParam:d}=o,c=this._calcActiveCell(i,s,l,d,t.offsetX,t.offsetY);if(c&&c.location){const{unitId:u,subUnitId:h,row:g,col:S}=kt(c.location);this._currentPointerDownCell$.next({unitId:u,subUnitId:h,row:g,col:S,event:t})}}triggerPointerUp(e,t){const o=this._getCalcDeps(e);if(!o)return;const{currentRender:i,workbook:s,worksheet:l,skeletonParam:d}=o,c=this._calcActiveCell(i,s,l,d,t.offsetX,t.offsetY);if(c){const u=kt(c.location);this._currentPointerUpCell$.next({...u,event:t})}}triggerMouseMove(e,t){const o=this._getCalcDeps(e);if(!o)return;const{currentRender:i,workbook:s,worksheet:l,skeletonParam:d}=o,c=this._calcActiveCell(i,s,l,d,t.offsetX,t.offsetY);this._currentCell$.next(c&&{location:kt(c.location),position:c.position}),this._currentRichText$.next(c&&{...c,location:kt(c.overflowLocation)}),this._currentCellWithEvent$.next(c&&{...c,location:kt(c.location),event:t})}triggerClick(e,t,o){const i=this._getCalcDeps(e);if(!i)return;const{currentRender:s,workbook:l,worksheet:d,skeletonParam:c}=i,u=this._calcActiveCell(s,l,d,c,t,o);u&&this._currentClickedCell$.next({...u,location:kt(u.location)})}triggerDbClick(e,t,o){const i=this._getCalcDeps(e);if(!i)return;const{currentRender:s,workbook:l,worksheet:d,skeletonParam:c}=i,u=this._calcActiveCell(s,l,d,c,t,o);u&&this._currentDbClickedCell$.next({...u,location:kt(u.location)})}triggerScroll(){this._currentCell$.next(null)}triggerRowHeaderClick(e,t,o){const i=this._calcActiveRowHeader(e,t,o);i&&this._currentRowHeaderClick$.next(i)}triggerColHeaderClick(e,t,o){const i=this._calcActiveColHeader(e,t,o);i&&this._currentColHeaderClick$.next(i)}triggerRowHeaderDbClick(e,t,o){const i=this._calcActiveRowHeader(e,t,o);i&&this._currentRowHeaderDbClick$.next(i)}triggerColHeaderDbClick(e,t,o){const i=this._calcActiveColHeader(e,t,o);i&&this._currentColHeaderDbClick$.next(i)}triggerRowHeaderMouseMove(e,t,o){this._currentHoveredRowHeader$.next(this._calcActiveRowHeader(e,t,o))}triggerColHeaderMouseMove(e,t,o){this._currentHoveredColHeader$.next(this._calcActiveColHeader(e,t,o))}triggerRowHeaderPoniterDown(e,t,o){const i=this._calcActiveRowHeader(e,t,o);i&&this._currentRowHeaderPointerDown$.next(i)}triggerColHeaderPoniterDown(e,t,o){const i=this._calcActiveColHeader(e,t,o);i&&this._currentColHeaderPointerDown$.next(i)}triggerRowHeaderPoniterUp(e,t,o){const i=this._calcActiveRowHeader(e,t,o);i&&this._currentRowHeaderPointerUp$.next(i)}triggerColHeaderPoniterUp(e,t,o){const i=this._calcActiveColHeader(e,t,o);i&&this._currentColHeaderPointerUp$.next(i)}};exports.HoverManagerService=Vp([La(0,a.IUniverInstanceService),La(1,w.IRenderManagerService)],exports.HoverManagerService);var Wp=Object.getOwnPropertyDescriptor,Up=(n,r,e,t)=>{for(var o=t>1?void 0:t?Wp(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Fo=(n,r)=>(e,t)=>r(e,t,n);const Ei="SHEET_FORCE_STRING_ALERT";let dr=class extends a.Disposable{constructor(n,r,e,t,o){super(),this._context=n,this._hoverManagerService=r,this._cellAlertManagerService=e,this._localeService=t,this._zenZoneService=o,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.subscribe(n=>{var r;if(n){const t=this._context.unit.getActiveSheet();if(!t)return;const o=t.getCell(n.location.row,n.location.col);if((o==null?void 0:o.t)===a.CellValueType.FORCE_STRING&&o.v&&a.isRealNum(o.v)){const i=this._cellAlertManagerService.currentAlert.get(Ei),s=(r=i==null?void 0:i.alert)==null?void 0:r.location;if(s&&s.row===n.location.row&&s.col===n.location.col&&s.subUnitId===n.location.subUnitId&&s.unitId===n.location.unitId)return;this._cellAlertManagerService.showAlert({type:_n.ERROR,title:this._localeService.t("info.error"),message:this._localeService.t("info.forceStringInfo"),location:n.location,width:200,height:74,key:Ei});return}}this._hideAlert()}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(n=>{n&&this._hideAlert()}))}_hideAlert(){this._cellAlertManagerService.removeAlert(Ei)}};dr=Up([Fo(1,a.Inject(exports.HoverManagerService)),Fo(2,a.Inject(exports.CellAlertManagerService)),Fo(3,a.Inject(a.LocaleService)),Fo(4,I.IZenZoneService)],dr);var Lp=Object.getOwnPropertyDescriptor,Bp=(n,r,e,t)=>{for(var o=t>1?void 0:t?Lp(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ba=(n,r)=>(e,t)=>r(e,t,n);let ur=class extends a.RxDisposable{constructor(n,r,e){super(),this._context=n,this._sheetSkeletonManagerService=r,this._sheetInterceptorService=e,this._initViewModelIntercept()}_initViewModelIntercept(){const n={tl:{size:6,color:"#409f11"}};this.disposeWithMe(this._sheetInterceptorService.intercept(m.INTERCEPTOR_POINT.CELL_CONTENT,{priority:10,effect:a.InterceptorEffectEnum.Style,handler:(r,e,t)=>{var s;if(!((s=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:s.skeleton))return t(r);const i=e.worksheet.getCellRaw(e.row,e.col);return!i||i.v===null||i.v===void 0?t(r):(r==null?void 0:r.t)===a.CellValueType.FORCE_STRING&&a.isRealNum(i.v)?t({...r,markers:{...r==null?void 0:r.markers,...n}}):t(r)}}))}};ur=Bp([Ba(1,a.Inject(exports.SheetSkeletonManagerService)),Ba(2,a.Inject(m.SheetInterceptorService))],ur);var Fp=Object.getOwnPropertyDescriptor,jp=(n,r,e,t)=>{for(var o=t>1?void 0:t?Fp(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ti=(n,r)=>(e,t)=>r(e,t,n);exports.HoverRenderController=class extends a.Disposable{constructor(e,t,o,i){super();E(this,"_active",!1);this._context=e,this._hoverManagerService=t,this._sheetSkeletonManagerService=o,this._scrollManagerService=i,this._initPointerEvent(),this._initScrollEvent()}get active(){return this._active}_initPointerEvent(){const e=new a.DisposableCollection,t=o=>{if(e.dispose(),!o)return;const{mainComponent:i,unitId:s,components:l}=this._context;if(!i)return;e.add(i.onPointerEnter$.subscribeEvent(u=>{this._active=!0})),e.add(a.fromEventSubject(i.onPointerMove$).subscribe(u=>{this._active=!0,this._hoverManagerService.triggerMouseMove(s,u)})),e.add(i.onPointerDown$.subscribeEvent(u=>{this._hoverManagerService.triggerPointerDown(s,u)})),e.add(i.onPointerUp$.subscribeEvent(u=>{this._hoverManagerService.triggerPointerUp(s,u),this._hoverManagerService.triggerClick(s,u.offsetX,u.offsetY)})),e.add(i.onDblclick$.subscribeEvent(u=>{this._hoverManagerService.triggerDbClick(s,u.offsetX,u.offsetY)})),e.add(i.onPointerLeave$.subscribeEvent(()=>{this._active=!1}));const d=l.get(he.ROW),c=l.get(he.COLUMN);d&&(e.add(d.onPointerMove$.subscribeEvent(u=>{this._hoverManagerService.triggerRowHeaderMouseMove(s,u.offsetX,u.offsetY)})),e.add(d.onPointerDown$.subscribeEvent(u=>{this._hoverManagerService.triggerRowHeaderPoniterDown(s,u.offsetX,u.offsetY)})),e.add(d.onPointerUp$.subscribeEvent(u=>{this._hoverManagerService.triggerRowHeaderPoniterUp(s,u.offsetX,u.offsetY),this._hoverManagerService.triggerRowHeaderClick(s,u.offsetX,u.offsetY)})),e.add(d.onDblclick$.subscribeEvent(u=>{this._hoverManagerService.triggerRowHeaderDbClick(s,u.offsetX,u.offsetY)}))),c&&(e.add(c.onPointerMove$.subscribeEvent(u=>{this._hoverManagerService.triggerColHeaderMouseMove(s,u.offsetX,u.offsetY)})),e.add(c.onPointerDown$.subscribeEvent(u=>{this._hoverManagerService.triggerColHeaderPoniterDown(s,u.offsetX,u.offsetY)})),e.add(c.onPointerUp$.subscribeEvent(u=>{this._hoverManagerService.triggerColHeaderPoniterUp(s,u.offsetX,u.offsetY),this._hoverManagerService.triggerColHeaderClick(s,u.offsetX,u.offsetY)})),e.add(c.onDblclick$.subscribeEvent(u=>{this._hoverManagerService.triggerColHeaderDbClick(s,u.offsetX,u.offsetY)})))};t(this._sheetSkeletonManagerService.getCurrentParam()),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(o=>{t(o)}))}_initScrollEvent(){this.disposeWithMe(this._scrollManagerService.validViewportScrollInfo$.subscribe(()=>this._hoverManagerService.triggerScroll()))}};exports.HoverRenderController=jp([Ti(1,a.Inject(exports.HoverManagerService)),Ti(2,a.Inject(exports.SheetSkeletonManagerService)),Ti(3,a.Inject(exports.SheetScrollManagerService))],exports.HoverRenderController);var zp=Object.getOwnPropertyDescriptor,Xp=(n,r,e,t)=>{for(var o=t>1?void 0:t?zp(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},wi=(n,r)=>(e,t)=>r(e,t,n);let hr=class extends a.Disposable{constructor(n,r,e,t){super(),this._context=n,this._markSelectionService=r,this._commandService=e,this._sheetSkeletonManagerService=t,this._initListeners()}_initListeners(){this._addRemoveListener(),this._addRefreshListener()}_addRemoveListener(){const n=[Ce.id];this.disposeWithMe(this._commandService.onCommandExecuted(r=>{n.includes(r.id)?this._markSelectionService.removeAllShapes():this._markSelectionService.getShapeMap().forEach((t,o)=>{t.exits.includes(r.id)&&this._markSelectionService.removeShape(o)})}))}_addRefreshListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(n=>{n&&this._markSelectionService.refreshShapes()}))}};hr=Xp([wi(1,a.Inject(Qt)),wi(2,a.ICommandService),wi(3,a.Inject(exports.SheetSkeletonManagerService))],hr);const Yp="univer-mobile-sheet-bar-container",Gp="univer-mobile-sheet-bar-slider",Zp="univer-mobile-sheet-bar-item",Kp="univer-mobile-sheet-bar-item-activated",jo={mobileSheetBarContainer:Yp,mobileSheetBarSlider:Gp,mobileSheetBarItem:Zp,mobileSheetBarItemActivated:Kp};function td(){const n=mt();return n?_.jsx(qp,{workbook:n}):null}function qp(n){const{workbook:r}=n,[e,t]=V.useState([]),[o,i]=V.useState(""),s=V.useRef(new Map),l=I.useDependency(a.ICommandService),d=V.useCallback(()=>{const u=r.getActiveSheet().getSheetId(),h=r.getSheets(),g=r.getActiveSheet(),S=h.filter(f=>!f.isSheetHidden()).map((f,p)=>{var v;return{sheetId:f.getSheetId(),label:f.getName(),index:p,selected:g===f,color:(v=f.getTabColor())!=null?v:void 0}});if(t(S),i(u),s.current.has(u)){const f=s.current.get(u);f&&f.scrollIntoView({behavior:"smooth",block:"nearest"})}s.current.clear()},[r]);V.useEffect(()=>d(),[d]);const c=V.useCallback(u=>{l.executeCommand(m.SetWorksheetActiveOperation.id,{unitId:r.getUnitId(),subUnitId:u})},[l,r]);return V.useEffect(()=>{const u=l.onCommandExecuted(h=>{switch(h.id){case m.SetWorksheetHideMutation.id:case m.RemoveSheetMutation.id:case m.SetWorksheetNameMutation.id:case m.InsertSheetMutation.id:case m.SetWorksheetOrderMutation.id:case m.SetWorksheetActiveOperation.id:d();break}});return()=>u.dispose()},[l,d]),_.jsx("div",{className:jo.mobileSheetBarContainer,children:_.jsx("div",{className:jo.mobileSheetBarSlider,children:e.map(u=>_.jsx("div",{className:pe(jo.mobileSheetBarItem,{[jo.mobileSheetBarItemActivated]:u.sheetId===o}),onClick:()=>c(u.sheetId),ref:h=>{s.current.set(u.sheetId,h)},children:u.label},u.sheetId))})})}const Qp={[I.ContextMenuPosition.MAIN_AREA]:{[I.ContextMenuGroup.FORMAT]:{[Xe.name]:{order:0,menuItemFactory:Cn}},[I.ContextMenuGroup.DATA]:{order:2},[I.ContextMenuGroup.OTHERS]:{order:3}},[I.ContextMenuPosition.COL_HEADER]:{[I.ContextMenuGroup.FORMAT]:{[Xe.name]:{order:0,menuItemFactory:Cn}},[I.ContextMenuGroup.LAYOUT]:{order:1},[I.ContextMenuGroup.DATA]:{order:2},[I.ContextMenuGroup.OTHERS]:{order:3}},[I.ContextMenuPosition.ROW_HEADER]:{[I.ContextMenuGroup.FORMAT]:{[Xe.name]:{order:0,menuItemFactory:Cn}},[I.ContextMenuGroup.LAYOUT]:{order:1},[I.ContextMenuGroup.DATA]:{order:2},[I.ContextMenuGroup.OTHERS]:{order:3}}};var Jp=Object.getOwnPropertyDescriptor,$p=(n,r,e,t)=>{for(var o=t>1?void 0:t?Jp(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Nt=(n,r)=>(e,t)=>r(e,t,n);let mr=class extends a.Disposable{constructor(n,r,e,t,o,i,s){super(),this._injector=n,this._componentManager=r,this._layoutService=e,this._commandService=t,this._shortcutService=o,this._menuManagerService=i,this._uiPartsService=s,this._init()}_init(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts(),this._initWorkbenchParts(),this._initFocusHandler()}_initCustomComponents(){const n=this._componentManager;this.disposeWithMe(n.register(Hr,_l)),this.disposeWithMe(n.register(Ws,Ql)),this.disposeWithMe(n.register(Ro,K.ColorPicker)),this.disposeWithMe(n.register(kr,I.FontFamily)),this.disposeWithMe(n.register(Nr,I.FontFamilyItem)),this.disposeWithMe(n.register(Dr,I.FontSize)),this.disposeWithMe(n.register(ro,$l))}_initCommands(){[ks,wt,Ds,Ns,kn,De,xe,$e,ko,Po,xn,An,go,So,ze,Cs,xr,Lr,m.SetBoldCommand,Xt,Ce,ho,Jt,$t,en,tn,ws,ys,fo,po,Mn,m.SetItalicCommand,m.SetStrikeThroughCommand,m.SetFontFamilyCommand,m.SetFontSizeCommand,vo,Ar,Dn,Co,je,wn,ut,Io,_o,m.SetUnderlineCommand,Nn,Le,Oo,uo,Gt,Yt,Un,Wn,Br,It,En,Qe,Vs,wo,Wt,Ut,yo,Mo,Ao,Lt,Bt,xo].forEach(n=>{this.disposeWithMe(this._commandService.registerCommand(n))})}_initMenus(){this._menuManagerService.mergeMenu(Qp)}_initShortcuts(){[fc,pc,vc,Cc,Ic,_c,bc,Rc,Ec,Tc,wc,yc,Mc,Pc,Oc,xc,Ac,kc,Nc,Dc,Hc,Fc,zc,Yc,Gc,jc,Xc,Vc,Wc,Uc,Lc,Bc,...sl(),ll,al,cl,ul,hl,ml,dl,gc,Sc].forEach(n=>{this.disposeWithMe(this._shortcutService.registerShortcut(n))})}_initWorkbenchParts(){this._uiPartsService.registerComponent(I.BuiltInUIPart.HEADER,()=>I.connectInjector(td,this._injector))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(a.UniverInstanceType.UNIVER_SHEET,n=>{}))}};mr=$p([Nt(0,a.Inject(a.Injector)),Nt(1,a.Inject(I.ComponentManager)),Nt(2,I.ILayoutService),Nt(3,a.ICommandService),Nt(4,I.IShortcutService),Nt(5,I.IMenuManagerService),Nt(6,I.IUIPartsService)],mr);const Ji="UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID",nd="UNIVER_SHEET_PERMISSION_ALERT_DIALOG";var ev=Object.getOwnPropertyDescriptor,tv=(n,r,e,t)=>{for(var o=t>1?void 0:t?ev(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},ot=(n,r)=>(e,t)=>r(e,t,n);exports.SheetPermissionCheckUIController=class extends a.Disposable{constructor(e,t,o,i,s,l,d,c,u){super();E(this,"disposableCollection",new a.DisposableCollection);this._commandService=e,this._univerInstanceService=t,this._permissionService=o,this._dialogService=i,this._rangeProtectionRuleModel=s,this._autoFillService=l,this._localeService=d,this._contextService=c,this._sheetPermissionCheckController=u,this._initialize(),this._initUIEvent()}_initUIEvent(){this.disposeWithMe(this._sheetPermissionCheckController.triggerPermissionUIEvent$.subscribe(e=>{this._haveNotPermissionHandle(e)}))}_haveNotPermissionHandle(e){const t={id:Ji,title:{title:""},children:{label:nd,errorMsg:e},width:320,destroyOnClose:!0,onClose:()=>this._dialogService.close(Ji),className:"sheet-permission-user-dialog"};this._permissionService.getShowComponents()&&this._dialogService.open(t)}_getPermissionCheck(e,t){var s,l;let o=!0,i="";switch(e){case J.InsertCommand.id:case J.IMEInputCommand.id:if(this._contextService.getContextValue(a.FOCUSING_EDITOR_STANDALONE)===!0)break;o=this._sheetPermissionCheckController.permissionCheckWithoutRange({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetEditPermission]}),i=this._localeService.t("permission.dialog.editErr");break;case Ce.id:if(t.visible===!1)break;o=this._sheetPermissionCheckController.permissionCheckWithoutRange({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetEditPermission]}),i=this._localeService.t("permission.dialog.editErr");break;case Vt.id:o=this._sheetPermissionCheckController.permissionCheckWithoutRange({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetColumnStylePermission]}),i=this._localeService.t("permission.dialog.pasteErr");break;case nr.id:o=this._permissionCheckByPaste(t),i=this._localeService.t("permission.dialog.pasteErr");break;case Co.id:o=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission,m.WorksheetSetCellStylePermission]}),i=this._localeService.t("permission.dialog.commonErr");break;case m.SetBackgroundColorCommand.id:case Jt.id:case $t.id:case en.id:case tn.id:o=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission]}),i=this._localeService.t("permission.dialog.setStyleErr");break;case Xe.id:o=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[m.WorkbookCopyPermission],rangeTypes:[m.RangeProtectionPermissionViewPoint],worksheetTypes:[m.WorksheetCopyPermission]}),i=this._localeService.t("permission.dialog.copyErr"),(s=this._permissionService.getPermissionPoint(new m.WorkbookCopyPermission(this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId()).id))!=null&&s.value||(i=this._localeService.t("permission.dialog.workbookCopyErr"));break;case Ts.id:o=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[m.WorkbookCopyPermission,m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionViewPoint,m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetCopyPermission,m.WorksheetEditPermission]}),i=this._localeService.t("permission.dialog.copyErr"),(l=this._permissionService.getPermissionPoint(new m.WorkbookCopyPermission(this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId()).id))!=null&&l.value||(i=this._localeService.t("permission.dialog.workbookCopyErr"));break;case It.id:o=this._permissionCheckByAutoFillCommand(t),i=this._localeService.t("permission.dialog.autoFillErr");break}o||this._sheetPermissionCheckController.blockExecuteWithoutPermission(i)}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{this._getPermissionCheck(e.id,e==null?void 0:e.params)}))}_permissionCheckByPaste(e){return e.value===ge.SPECIAL_PASTE_VALUE||e.value===ge.SPECIAL_PASTE_FORMULA?this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission]}):e.value===ge.SPECIAL_PASTE_FORMAT?this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission]}):this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetSetCellStylePermission,m.WorksheetEditPermission]})}_permissionCheckByAutoFillCommand(e){if(!e)return!1;const{targetRange:t}=e,o=m.getSheetCommandTarget(this._univerInstanceService);if(!o)return!1;const{worksheet:i,unitId:s,subUnitId:l}=o;return!this._rangeProtectionRuleModel.getSubunitRuleList(s,l).reduce((u,h)=>[...u,...h.ranges],[]).filter(u=>a.Rectangle.intersects(u,t)).some(u=>{var h,g;for(let S=u.startRow;S<=u.endRow;S++)for(let f=u.startColumn;f<=u.endColumn;f++){const p=(g=(h=i.getCell(S,f))==null?void 0:h.selectionProtection)==null?void 0:g[0];if((p==null?void 0:p[ne.Edit])===!1)return!0}return!1})}};exports.SheetPermissionCheckUIController=tv([ot(0,a.ICommandService),ot(1,a.IUniverInstanceService),ot(2,a.IPermissionService),ot(3,I.IDialogService),ot(4,a.Inject(m.RangeProtectionRuleModel)),ot(5,Tt),ot(6,a.Inject(a.LocaleService)),ot(7,a.IContextService),ot(8,a.Inject(m.SheetPermissionCheckController))],exports.SheetPermissionCheckUIController);var nv=Object.getOwnPropertyDescriptor,ov=(n,r,e,t)=>{for(var o=t>1?void 0:t?nv(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},rt=(n,r)=>(e,t)=>r(e,t,n);let gr=class extends a.RxDisposable{constructor(r,e,t,o,i,s,l,d,c,u){super();E(this,"disposableCollection",new a.DisposableCollection);this._context=r,this._univerInstanceService=e,this._permissionService=t,this._selectionManagerService=o,this._rangeProtectionRuleModel=i,this._headerMoveRenderController=s,this._selectionRenderService=l,this._headerFreezeRenderController=d,this._rangeProtectionCache=c,this._headerResizeRenderController=u,this._initHeaderMovePermissionInterceptor(),this._initHeaderResizePermissionInterceptor(),this._initRangeFillPermissionInterceptor(),this._initRangeMovePermissionInterceptor()}_initHeaderMovePermissionInterceptor(){const r=this._headerMoveRenderController.interceptor.getInterceptPoints().HEADER_MOVE_PERMISSION_CHECK;this.disposeWithMe(this._headerMoveRenderController.interceptor.intercept(r,{handler:(e,t)=>{const o=m.getSheetCommandTarget(this._univerInstanceService);if(!o)return!1;const{unitId:i,subUnitId:s}=o;if(!this._permissionService.composePermission([new m.WorkbookEditablePermission(i).id,new m.WorksheetEditPermission(i,s).id]).every(d=>d.value))return!1;if(!t)return!0;if(t.rangeType!==a.RANGE_TYPE.ROW&&t.rangeType!==a.RANGE_TYPE.COLUMN)return e;if(t.rangeType===a.RANGE_TYPE.ROW){for(let d=t.startRow;d<=t.endRow;d++)if(this._rangeProtectionCache.getRowPermissionInfo(i,s,d,[ne.Edit])===!1)return!1}else for(let d=t.startColumn;d<=t.endColumn;d++)if(this._rangeProtectionCache.getColPermissionInfo(i,s,d,[ne.Edit])===!1)return!1;return!0}}))}_initHeaderResizePermissionInterceptor(){this._headerResizeRenderController&&this.disposeWithMe(this._headerResizeRenderController.interceptor.intercept(this._headerResizeRenderController.interceptor.getInterceptPoints().HEADER_RESIZE_PERMISSION_CHECK,{handler:(r,e)=>{var s,l,d,c;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{unitId:o,subUnitId:i}=t;if(e.row){if(((l=(s=this._permissionService.getPermissionPoint(new m.WorksheetSetRowStylePermission(o,i).id))==null?void 0:s.value)!=null?l:!1)===!1)return!1}else if(e.col&&((c=(d=this._permissionService.getPermissionPoint(new m.WorksheetSetColumnStylePermission(o,i).id))==null?void 0:d.value)!=null?c:!1)===!1)return!1;return!0}}))}_initRangeFillPermissionInterceptor(){this.disposeWithMe(this._selectionRenderService.interceptor.intercept(this._selectionRenderService.interceptor.getInterceptPoints().RANGE_FILL_PERMISSION_CHECK,{handler:(r,e)=>{var f,p,v;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:o,unitId:i,subUnitId:s}=t;if(!this._permissionService.composePermission([new m.WorkbookEditablePermission(i).id,new m.WorksheetEditPermission(i,s).id,new m.WorksheetSetCellValuePermission(i,s).id,new m.WorksheetSetCellStylePermission(i,s).id]).every(C=>C.value))return!1;const d=(f=this._selectionManagerService.getCurrentSelections())==null?void 0:f.map(C=>C.range),c=d==null?void 0:d.find(C=>{const b=qn(e.x,e.y,e.scene,e.skeleton),R=e.skeleton.getCellWithCoordByIndex(C.endRow,C.endColumn),T=Math.abs(R.endX-b.x),M=Math.abs(R.endY-b.y);return T<=5&&M<=5});if(!c)return!0;const{startRow:u,endRow:h,startColumn:g,endColumn:S}=c;for(let C=u;C<=h;C++)for(let b=g;b<=S;b++){const R=(v=(p=o.getCell(C,b))==null?void 0:p.selectionProtection)==null?void 0:v[0];if((R==null?void 0:R[ne.Edit])===!1||(R==null?void 0:R[ne.View])===!1)return!1}return!0}}))}_initRangeMovePermissionInterceptor(){this.disposeWithMe(this._selectionRenderService.interceptor.intercept(this._selectionRenderService.interceptor.getInterceptPoints().RANGE_MOVE_PERMISSION_CHECK,{handler:(r,e)=>{var g;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:o,unitId:i,subUnitId:s}=t;if(!this._permissionService.composePermission([new m.WorkbookEditablePermission(i).id,new m.WorksheetEditPermission(i,s).id]).every(S=>S.value))return!1;const d=(g=this._selectionManagerService.getCurrentSelections())==null?void 0:g.map(S=>S.range),c=this._rangeProtectionRuleModel.getSubunitRuleList(i,s).reduce((S,f)=>[...S,...f.ranges],[]),u=d==null?void 0:d.filter(S=>c.some(f=>a.Rectangle.intersects(f,S)));return!(u==null?void 0:u.some(S=>{var b,R;const{startRow:f,startColumn:p,endRow:v,endColumn:C}=S;for(let T=f;T<=v;T++)for(let M=p;M<=C;M++){const y=(R=(b=o.getCell(T,M))==null?void 0:b.selectionProtection)==null?void 0:R[0];if((y==null?void 0:y[ne.Edit])===!1)return!0}return!1}))}}))}_initFreezePermissionInterceptor(){this.disposeWithMe(this._headerFreezeRenderController.interceptor.intercept(this._headerFreezeRenderController.interceptor.getInterceptPoints().FREEZE_PERMISSION_CHECK,{handler:(r,e)=>{var s,l;const t=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);return!(t==null?void 0:t.getActiveSheet())||!t?!1:(l=(s=this._permissionService.getPermissionPoint(new m.WorkbookEditablePermission(t.getUnitId()).id))==null?void 0:s.value)!=null?l:!1}}))}};gr=ov([rt(1,a.IUniverInstanceService),rt(2,a.IPermissionService),rt(3,a.Inject(m.SheetsSelectionsService)),rt(4,a.Inject(m.RangeProtectionRuleModel)),rt(5,a.Inject(exports.HeaderMoveRenderController)),rt(6,ve),rt(7,a.Inject(exports.HeaderFreezeRenderController)),rt(8,a.Inject(m.RangeProtectionCache)),rt(9,a.Optional(exports.HeaderResizeRenderController))],gr);var rv=Object.getOwnPropertyDescriptor,iv=(n,r,e,t)=>{for(var o=t>1?void 0:t?rv(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},jn=(n,r)=>(e,t)=>r(e,t,n);const sv="SHEET_PERMISSION_PASTE_PLUGIN";let so=class extends a.Disposable{constructor(r,e,t,o,i){super();E(this,"disposableCollection",new a.DisposableCollection);this._univerInstanceService=r,this._selectionManagerService=e,this._localService=t,this._sheetClipboardService=o,this._sheetPermissionCheckController=i,this._initClipboardHook()}_initClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook({id:sv,onBeforePaste:r=>{var g,S,f;const[e]=qt([r.range]).ranges,t=(g=this._selectionManagerService.getCurrentLastSelection())==null?void 0:g.range;if(!t)return!1;const o={startRow:t.startRow+e.startRow,endRow:t.startRow+e.endRow,startColumn:t.startColumn+e.startColumn,endColumn:t.startColumn+e.endColumn},s=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!s)return!1;const{startRow:l,endRow:d,startColumn:c,endColumn:u}=o;let h=!0;for(let p=l;p<=d;p++)for(let v=c;v<=u;v++){const C=(f=(S=s.getCell(p,v))==null?void 0:S.selectionProtection)==null?void 0:f[0];if((C==null?void 0:C[ne.Edit])===!1){h=!1;break}}return h||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localService.t("permission.dialog.pasteErr")),h}}))}};so=iv([jn(0,a.IUniverInstanceService),jn(1,a.Inject(m.SheetsSelectionsService)),jn(2,a.Inject(a.LocaleService)),jn(3,a.Inject(Be)),jn(4,a.Inject(m.SheetPermissionCheckController))],so);var av=Object.getOwnPropertyDescriptor,lv=(n,r,e,t)=>{for(var o=t>1?void 0:t?av(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},zn=(n,r)=>(e,t)=>r(e,t,n);const cv=a.createInterceptorKey("statusBarPermissionCorrect");class dv{constructor(){E(this,"_sum",0);E(this,"_count",0);E(this,"_countNumber",0);E(this,"_min",Number.POSITIVE_INFINITY);E(this,"_max",Number.NEGATIVE_INFINITY)}add(r,e,t){const o=r==null?void 0:r.v,i=r==null?void 0:r.t;if(o!=null){if(typeof o=="number"&&i!==a.CellValueType.STRING)this._sum+=o,this._countNumber++,this._min=Math.min(this._min,o),this._max=Math.max(this._max,o);else if(i===a.CellValueType.NUMBER&&(r!=null&&r.s)){const s=e.get(r.s);if(s&&i===a.CellValueType.NUMBER&&s.n){const{pattern:l}=s.n;if(t[l]||(t[l]=a.numfmt.getInfo(l)),t[l].isDate){const u=a.numfmt.parseDate(o).v;this._sum+=Number(u),this._countNumber++,this._min=Math.min(this._min,Number(u)),this._max=Math.max(this._max,Number(u))}}}this._count++}}getResults(){return{sum:this._sum,count:this._countNumber,countA:this._count,min:this._min,max:this._max}}}function uv(n){const{sum:r,count:e,countA:t,min:o,max:i}=n.getResults();return[{func:G.FUNCTION_NAMES_STATISTICAL.MAX,value:i},{func:G.FUNCTION_NAMES_STATISTICAL.MIN,value:o},{func:G.FUNCTION_NAMES_MATH.SUM,value:r},{func:G.FUNCTION_NAMES_STATISTICAL.COUNTA,value:t},{func:G.FUNCTION_NAMES_STATISTICAL.COUNT,value:e},{func:G.FUNCTION_NAMES_STATISTICAL.AVERAGE,value:r/e}]}exports.StatusBarController=class extends a.Disposable{constructor(e,t,o,i,s){super();E(this,"interceptor",new a.InterceptorManager({STATUS_BAR_PERMISSION_CORRECT:cv}));this._univerInstanceService=e,this._selectionManagerService=t,this._statusBarService=o,this._commandService=i,this._numfmtService=s,this._init()}_init(){this._registerSelectionListener()}_registerSelectionListener(){const e=a.debounce(t=>{var i;const o=(i=t[t.length-1])==null?void 0:i.primary;this._calculateSelection(t.map(s=>s.range),o)},100);this.disposeWithMe(a.toDisposable(this._selectionManagerService.selectionMoving$.subscribe(t=>{t&&e(t)}))),this.disposeWithMe(a.toDisposable(this._selectionManagerService.selectionMoveEnd$.subscribe(t=>{t&&e(t)}))),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===m.SetRangeValuesMutation.id){const o=this._selectionManagerService.getCurrentSelections();o&&e(o)}}))}_clearResult(){this._statusBarService.setState(null)}getRangeStartEndInfo(e,t){return e.rangeType===a.RANGE_TYPE.ALL?{startRow:0,startColumn:0,endRow:t.getRowCount()-1,endColumn:t.getColumnCount()-1}:e.rangeType===a.RANGE_TYPE.COLUMN?{startRow:0,startColumn:e.startColumn,endRow:t.getRowCount()-1,endColumn:e.endColumn}:e.rangeType===a.RANGE_TYPE.ROW?{startRow:e.startRow,startColumn:0,endRow:e.endRow,endColumn:t.getColumnCount()-1}:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn}}_calculateSelection(e,t){var c;const o=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!o)return this._clearResult();const i=o.getUnitId(),s=o.getActiveSheet(),l=s==null?void 0:s.getSheetId();if(!l)return this._clearResult();const d={};if(this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getSheets().forEach(u=>{const h=u.getConfig();d[u.getSheetId()]={cellData:new a.ObjectMatrix(h.cellData),rowCount:h.rowCount,columnCount:h.columnCount,rowData:h.rowData,columnData:h.columnData}}),e!=null&&e.length){const u=[];e.forEach(R=>{const{startRow:T,endRow:M}=R;let y=null;for(let P=T;P<=M;P++)s.getRowVisible(P)?y===null&&(y=P):y!==null&&(u.push({...R,startRow:y,endRow:P-1}),y=null);y!==null&&u.push({...R,startRow:y,endRow:M})});const h=a.splitIntoGrid(u),g=new dv,S=o.getStyles(),f={};for(const R of h){const{startRow:T,startColumn:M,endColumn:y,endRow:P}=this.getRangeStartEndInfo(R,s);for(let x=T;x<=P;x++)for(let A=M;A<=y;A++){const k=s.getCell(x,A);g.add(k,S,f)}}const p=uv(g);if(p.every(R=>R===void 0))return;let v=null;if(t){const{actualRow:R,actualColumn:T}=t;v=(c=this._numfmtService.getValue(i,l,R,T))==null?void 0:c.pattern}const b={values:p.filter(R=>R!==void 0),pattern:v};this._statusBarService.setState(b)}else this._clearResult()}};exports.StatusBarController=lv([zn(0,a.IUniverInstanceService),zn(1,a.Inject(m.SheetsSelectionsService)),zn(2,Fr),zn(3,a.ICommandService),zn(4,a.Inject(m.INumfmtService))],exports.StatusBarController);var hv=Object.getOwnPropertyDescriptor,mv=(n,r,e,t)=>{for(var o=t>1?void 0:t?hv(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},zo=(n,r)=>(e,t)=>r(e,t,n);let Sr=class extends a.RxDisposable{constructor(r,e,t,o,i){super();E(this,"disposableCollection",new a.DisposableCollection);this._context=r,this._univerInstanceService=e,this._permissionService=t,this._statusBarController=o,this._rangeProtectionCache=i,this._initStatusBarPermissionInterceptor()}_initStatusBarPermissionInterceptor(){this.disposeWithMe(this._statusBarController.interceptor.intercept(this._statusBarController.interceptor.getInterceptPoints().STATUS_BAR_PERMISSION_CORRECT,{priority:100,handler:(r,e)=>{var d;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return r!=null?r:[];const{worksheet:o,unitId:i,subUnitId:s}=t;return((d=this._permissionService.getPermissionPoint(new m.WorksheetViewPermission(i,s).id))==null?void 0:d.value)===!1?e.forEach(c=>{const u=c.getArrayValue();u.forEach((h,g)=>{h.forEach((S,f)=>{u[g][f]=G.NullValueObject.create()})})}):e.forEach(c=>{const u=c.getArrayValue(),h=c.getCurrentRow(),g=c.getCurrentColumn();u.forEach((S,f)=>{S.forEach((p,v)=>{var R;if(((R=o.getCellRaw(f+h,v+g))==null?void 0:R.v)===void 0)return;const b=this._rangeProtectionCache.getCellInfo(i,s,f+h,v+g);(b==null?void 0:b[ne.View])===!1&&(u[f][v]=G.NullValueObject.create())})})}),e}}))}};Sr=mv([zo(1,a.IUniverInstanceService),zo(2,a.IPermissionService),zo(3,a.Inject(exports.StatusBarController)),zo(4,a.Inject(m.RangeProtectionCache))],Sr);const od=(n,r,e,t,o)=>{const i=n.get(a.LocaleService),s=n.get(m.WorksheetProtectionRuleModel),l=n.get(m.RangeProtectionRuleModel);let d="";if(r.length===0)d=i.t("permission.panel.emptyRangeError");else if(r.length>1){let c=!1;for(let u=0;u<r.length;u++){for(let h=u+1;h<r.length;h++)if(a.Rectangle.intersects(r[u],r[h])){c=!0;break}if(c)break}c&&(d=i.t("permission.panel.rangeOverlapError"))}if(!d){if(s.getRule(t,o)&&!e)return d=i.t("permission.panel.rangeOverlapOverPermissionError"),d;const u=l.getSubunitRuleList(t,o).filter(g=>g.permissionId!==e).find(g=>g.ranges.some(S=>r.some(f=>a.Rectangle.intersects(S,f))));(u==null?void 0:u.ranges.find(g=>r.some(S=>a.Rectangle.intersects(g,S))))&&(d=i.t("permission.panel.rangeOverlapOverPermissionError"))}return d===""?void 0:d},gv=(n,r)=>{if(n.length!==1)return!1;const e=n[0],t=r.getRowCount(),o=r.getColumnCount(),{startRow:i,endRow:s,startColumn:l,endColumn:d}=e;return i===0&&l===0&&s===t-1&&d===o-1},Sv=(n,r)=>{var d,c;const e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),i=o.getActiveSheet();let s=m.UnitObject.SelectRange,l=(c=(d=t.getCurrentSelections())==null?void 0:d.map(u=>u.range))!=null?c:[];return r&&(s=m.UnitObject.Worksheet,l=[{startRow:0,startColumn:0,endRow:i.getRowCount()-1,endColumn:i.getColumnCount()-1,rangeType:a.RANGE_TYPE.ALL}]),{unitId:o.getUnitId(),subUnitId:i.getSheetId(),permissionId:"",unitType:s,description:"",id:"",ranges:l,editState:m.EditStateEnum.OnlyMe,viewState:m.ViewStateEnum.OthersCanView}},fv=(n,r)=>{const o=n.get(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),{unitType:i}=r;return i===m.UnitObject.Worksheet?{...r,ranges:[{startRow:0,startColumn:0,endRow:o.getRowCount()-1,endColumn:o.getColumnCount()-1,rangeType:a.RANGE_TYPE.ALL}]}:r},pv="univer-permission-panel-detail-wrapper",vv="univer-radio-group-vertical",Cv="univer-sheet-permission-design-person-panel",Iv="univer-sheet-permission-design-person-panel-header",_v="univer-sheet-permission-design-person-panel-header-add",bv="univer-sheet-permission-design-person-panel-split",Rv="univer-sheet-permission-design-person-panel-content-item",Ev="univer-sheet-permission-design-person-panel-content-item-name",Tv="univer-sheet-permission-design-person-panel-content-item-select",wv="univer-sheet-permission-design-person-panel-content",yv="univer-sheet-permission-user-list-empty",Mv="univer-sheet-permission-user-list-empty-text",Pv="univer-sheet-permission-panel-title",Ov="univer-sheet-permission-panel-footer",fe={permissionPanelDetailWrapper:pv,radioGroupVertical:vv,sheetPermissionDesignPersonPanel:Cv,sheetPermissionDesignPersonPanelHeader:Iv,sheetPermissionDesignPersonPanelHeaderAdd:_v,sheetPermissionDesignPersonPanelSplit:bv,sheetPermissionDesignPersonPanelContentItem:Rv,sheetPermissionDesignPersonPanelContentItemName:Ev,sheetPermissionDesignPersonPanelContentItemSelect:Tv,sheetPermissionDesignPersonPanelContent:wv,sheetPermissionUserListEmpty:yv,sheetPermissionUserListEmptyText:Mv,sheetPermissionPanelTitle:Pv,sheetPermissionPanelFooter:Ov},xv=n=>{const{viewState:r,editState:e,permissionId:t,ranges:o,rangesErrMsg:i,desc:s,oldRule:l,id:d}=n,c=I.useDependency(On),u=I.useDependency(I.ISidebarService),h=I.useDependency(a.IAuthzIoService),g=I.useDependency(a.LocaleService),S=I.useDependency(a.ICommandService),f=I.useDependency(yt),v=I.useDependency(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),C=v==null?void 0:v.getActiveSheet();if(!v||!C)return null;const b=v.getUnitId(),R=C.getSheetId();return _.jsxs("div",{className:fe.sheetPermissionPanelFooter,children:[_.jsx(K.Button,{type:"primary",onClick:async()=>{if(i)return;const T={unitId:b,subUnitId:R,permissionId:t,id:d,viewState:r,editState:e,unitType:m.UnitObject.SelectRange,ranges:o,description:s};gv(o,C)&&(T.unitType=m.UnitObject.Worksheet,T.ranges=[]);let y=f.selectUserList;T.editState===m.EditStateEnum.OnlyMe&&(y=[],f.setSelectUserList([]));const P={read:T.viewState===m.ViewStateEnum.OthersCanView?Ke.AllCollaborator:Ke.SomeCollaborator,edit:T.editState===m.EditStateEnum.DesignedUserCanEdit?Ke.SomeCollaborator:Ke.OneSelf};if(T.editState===m.EditStateEnum.DesignedUserCanEdit&&y.length===0&&(y=[],P.edit=Ke.OneSelf),T.permissionId){const A=tg(y.filter(H=>H.role===ke.Editor),f.oldCollaboratorList.filter(H=>H.role===ke.Editor)),k=(l==null?void 0:l.viewState)===T.viewState,N=(l==null?void 0:l.editState)===T.editState,D=T.unitType===(l==null?void 0:l.unitType)&&T.description===l.description&&T.ranges===l.ranges,W=!A||!k||!N;if(D&&W)await h.update({objectType:T.unitType,objectID:T.permissionId,unitID:T.unitId,share:void 0,name:"",strategies:[],scope:P,collaborators:{collaborators:y}});else{let H=T.permissionId;W&&(T.unitType===m.UnitObject.Worksheet?H=await h.create({worksheetObject:{collaborators:y,unitID:T.unitId,name:"",strategies:[{role:ke.Editor,action:ne.Edit},{role:ke.Reader,action:ne.View}],scope:P},objectType:m.UnitObject.Worksheet}):H=await h.create({selectRangeObject:{collaborators:y,unitID:T.unitId,name:"",scope:P},objectType:m.UnitObject.SelectRange})),S.executeCommand(m.SetProtectionCommand.id,{rule:{...T,permissionId:H},oldRule:l})}}else if(T.unitType===m.UnitObject.Worksheet){const A=await h.create({worksheetObject:{collaborators:y,unitID:T.unitId,name:"",strategies:[{role:ke.Editor,action:ne.Edit},{role:ke.Reader,action:ne.View}],scope:P},objectType:m.UnitObject.Worksheet}),{ranges:k=[],...N}=T;N.permissionId=A,S.executeCommand(m.AddWorksheetProtectionCommand.id,{rule:N,unitId:T.unitId})}else if(T.unitType===m.UnitObject.SelectRange){const A=await h.create({selectRangeObject:{collaborators:y,unitID:T.unitId,name:"",scope:P},objectType:m.UnitObject.SelectRange});S.executeCommand(m.AddRangeProtectionCommand.id,{rule:T,permissionId:A})}const x={header:{title:`${g.t("permission.panel.title")}`},children:{label:oo,showDetail:!1},width:330};u.open(x)},children:g.t("permission.button.confirm")}),_.jsx(K.Button,{className:fe.sheetPermissionPanelFooterCancel,onClick:()=>{c.reset(),f.reset(),u.close()},children:g.t("permission.button.cancel")})]})},Av=n=>{const{ranges:r,onRangesChange:e,rangeSelectorRef:t,desc:o,onDescChange:i,rangesErrMsg:s,isFocusRangeSelector:l,permissionId:d,onFocus:c}=n,u=I.useDependency(I.ComponentManager),h=V.useMemo(()=>u.get(ds),[]),g=I.useDependency(a.IUniverInstanceService),S=I.useDependency(a.LocaleService),f=I.useDependency(a.Injector),p=g.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),v=p==null?void 0:p.getActiveSheet();if(!p||!v)return null;const C=p.getUnitId(),b=v.getSheetId(),R=T=>{const M=T.split(",").map(G.deserializeRangeWithSheet).map(D=>D.range);if(M.some(D=>!a.isValidRange(D)||D.endColumn<D.startColumn||D.endRow<D.startRow))return;const y=g.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),P=y==null?void 0:y.getActiveSheet();if(!y||!P)return;const x=y.getUnitId(),A=P.getSheetId(),k=M.map(D=>{const W=P.getRowCount(),H=P.getColumnCount();return m.setEndForRange(D,W,H),D}),N=od(f,k,d,x,A);e(k,N)};return _.jsxs(_.Fragment,{children:[_.jsx(K.FormLayout,{className:fe.sheetPermissionPanelTitle,label:S.t("permission.panel.protectedRange"),children:h&&_.jsx(h,{unitId:C,errorText:s,subUnitId:b,initValue:r==null?void 0:r.map(T=>G.serializeRange(T)).join(","),onChange:R,onFocus:c,isFocus:l,actions:t.current})}),_.jsx(K.FormLayout,{className:fe.sheetPermissionPanelTitle,label:S.t("permission.panel.permissionDirection"),children:_.jsx(K.Input,{value:o,onChange:T=>i(T),placeholder:S.t("permission.panel.permissionDirectionPlaceholder")})})]})},kv=n=>{var T,M;const{fromSheetBar:r,rule:e,oldRule:t}=n,o=I.useDependency(a.Injector),i=e?fv(o,e):Sv(o,r),[s,l]=V.useState(i.ranges),[d,c]=V.useState(()=>od(o,i.ranges,i.permissionId,i.unitId,i.subUnitId)),[u,h]=V.useState(i.description),[g,S]=V.useState((T=i.editState)!=null?T:m.EditStateEnum.OnlyMe),[f,p]=V.useState((M=i.viewState)!=null?M:m.ViewStateEnum.OthersCanView),v=V.useRef({}),[C,b]=V.useState(!1);I.useSidebarClick(y=>{var x;const P=(x=v.current)==null?void 0:x.handleOutClick;P&&P(y,()=>b(!1))});const R=I.useComponentsOfPart(rr);return V.useEffect(()=>{const y=o.get(a.IUniverInstanceService),P=o.get(I.ISidebarService),x=y.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!x)return;const A=x.getActiveSheet().getSheetId(),k=x.activeSheet$.subscribe(N=>{(N==null?void 0:N.getSheetId())!==A&&P.close()});return()=>{k.unsubscribe()}},[]),_.jsxs("div",{className:fe.permissionPanelDetailWrapper,children:[_.jsx(Av,{onFocus:()=>b(!0),permissionId:i.permissionId,ranges:s,onRangesChange:(y,P)=>{l(y),c(P)},isFocusRangeSelector:C,rangesErrMsg:d,desc:u,onDescChange:y=>h(y),rangeSelectorRef:v}),_.jsx(I.ComponentContainer,{components:R,sharedProps:{editState:g,onEditStateChange:y=>S(y),viewState:f,onViewStateChange:y=>p(y),permissionId:i.permissionId}},"user-part"),_.jsx(xv,{permissionId:i.permissionId,id:i.id,ranges:s,rangesErrMsg:d,desc:u,viewState:f,editState:g,oldRule:t})]})},Nv="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAADxCAYAAAATKWQfAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAB4KADAAQAAAABAAAA8QAAAAAQiyznAABAAElEQVR4Aey9e6wnyXXf192/1/397p2ZO7s73If3MWuRSy4pC0uL1oOSrF0lsgXZECVZDBDJiZZ2RMaURIsEKUpKAA9hWLRNmaTWsQ0SCCgFDmBTgCkGQYAgf2gUx69YiUcBKFGm5B1Jq10ud3fe9/V7dOf7OVWnb/363jucfc2dR9XM/VXVOadOVZ/urm+fqurqosghWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFqgzJbIFsgWuH4WePrpZv3CtHj8wmZx5om3l2evX825pmyBbIEbzQIZgG+0M5Lbc8tZANDdqYonq7J4V9MUj128Uqxf3CgK3XxnlT/TlMUXddBn/sK3lGduuYPPB5QtkC1woAUyAB9omszIFnjlFuiA7uOpJgFwAQB3g27GCwLk00VT/GbRK858758rT3dlcj5bIFvg1rFABuBb51zmIzlkCzz9XHNyZ1r8YPR0Hz+oOQcBcFfeAFmesQFyVZzOgNy1UM5nC9zcFsgAfHOfv9z6Q7YAoDufFz8uz/Vx/q6lOdcKwAfoOq2xa4aqv9jv2zzyhQPkMjlbIFvgBrdABuAb/ATl5t14FvjKHzePq1XfXdfFk4pP6u9lhVcJwN26zgiQT5dl8Zu9XnFaC7syIHctlPPZAjeoBTIA36AnJjfrxrIAoNvUWkRVFD+olp18Na17jQG425QzuqnPFFXxRQFyXmndtU7OZwvcQBbIAHwDnYzclBvLAgnoPqmWrb9WrXudAXipmbrBz4pwui60sCuvtF6yTc5kCxy2BTIAH/YZyPXfMBZg5fK8XzwWPd0n1bDXDHTTg7yeAJzWSxpA5tUnFnY1WtiVX33qWijnswWunwUyAF8/W+eabkALtKDb2EIqhpdfF9BND/0wAThtB2l1ABc0rH6mqPUucn71qWuenM8WeF0tkAH4dTVvVn4jWgDQnfVsLpfVy4+pja876KZ2uJEAOG1Xkg7vIstDziutE6vkZLbAa2yBDMCvsUGzuhvTAp2NMa476KZWuQkAOG0uaXv1Ka+07pol57MFXp0FMgC/Ovvl0jewBTqg+/iN0tSbEIC7pktffcorrbvWyflsgWu0QAbgazTUyxH78Ce+urrWHw22NbTZG6w02/V8tT8vyqqvpS8KU/2Nm3o2raYbvWZlNttZ2/ylj5T7bE74cmrNsljgWnejOkxr3QIA3DWfvfrESuvBwN5FPtsVyPmbxwKnPtesbG9dHKct/rvvXz+f5nP6tbFABuBXacf3fqYZrE83T5RNc6KommNV06wvmnKolbQGtmVVlJ7We5nFYhEqJF03rIEpCvhV2czrsrwg8Qs7i9nF/nznhV/6yD0ZlK/h/LyS3aiuQe3rJnILAvCSrXRR549MLFnkxs6c+tz59dlW9Zamrk6WRXmP+rHjhV4kVw8VG14VlbL6aMhXm6a5oP7tyysrk6dPvSdv+vJqz2wG4FdgQUD3zunlb5jPihNC2buqfl92FLJGcK2qXrNoFhV5AXCj1aUVIGugO+81VX9RAsQ9CBIiXTZFowu8dJAGuMuy2lgsmj8ZVM1zH//AkRdeQVNv2SKvdjeqwzTMrQ7AXdvq5sgfmega5QbI/3f/w/mH6t7gz6vbOdk0daM5/oAH4C74q6BFihEj6JBq55fiN2VTnhUwn/nb/+3abwfp/PtyLRCN+3KL3Z7yv/CZjXsX24tvaOreXQFthazVotSWhMLhXlErXcmNBYDnxbzoy0zKGtiWco3dalUtEK50uUumlkAt+WIhebxi5QFiZA28Y6HFot7qV8MvLaYXX7pdPeNkY4wflFlORtPcdNHtBsDdE6SLO7z6xFef8kcmuuZ53fMf/czWg+V8+l1Vr/cgTm6jXqpS/4UPQFodkABWCNvQe1VtvxXAOKCzhvVMplbn16uKi01/7Z//4k+Uz7/ujb/FKrCO/hY7ptf0cFpvt+796WaxGLhyvNdFHE/W129KDSebp1sJjC0tQegu73FV9QXY8/ai1nVezsUErIkJ6Ch6uicWTV1LvqoXpgcHG5951iz+qLfY/t3bAYgT0H1Sh35dXxdSfa9LuN0B+ACj2kpr8fJHJg4w0GtB/u//yeXvWdTNO9S9aJRO/ZM6G9xdwBb9FWPNkCzUchMCAEPSKJ0Amf5N9Er04HlYOQb5FvP6//r4B47+y1g4R9dggT0AcQ1lbhuRn/vUhT/dFIM3z+rFoC/AnQtw8VLnQkLAlYdEN4auxXgB94SaATDhOQi7NwtmO2A7r9UhEO/SWp6A2oDZIHhh88dq0x/Np5e/fCsBcbsxRth3+Ukd/y0Bun4eiTMAp9Y4MN2utP6n/0dx5ld+vjx7oGRmfF0LPPW/NaPnz279gID2QXmy7XCzpsbKsidsXajvCfO8Ws4S+B4DtAxJV3J1BbJ4xQbE5j3bsHQYrwbEe73q+bVy9V/83PvKi1+3UVlgr4eWbVIUH/3MuWPF9srbNP96pwMnF6oPN5vXKiANQ8aA8O5Q9F6ePVQKlBl2DvZOARp7M2RNDN3B2eeCoROg0xYH8EBVmabXDAb93/v4T4++7LSbLW5B9zruRnWYNsoA/Iqsnz8y8YrMFgr9wj+88qNKnSDXTnHJmy1Z/rk7t2s8LbnShDB9lYbicDSCCvvV6J5mz9TtuDe8CE6zyZvnXAuoexf6Ryb//NRfLS8lRXNyHwtkD7hjlI/88sU3NYvyLVoOpctproVSfQPGMPgbhAFjX3Eltp4KGRiWBOPICk30gEsWY+EuC6DhOT2A8aKMnjRD1mUEc/Oq4UurXfc2n2yeN3XI8z3I066qzcl49V+del+5SRtu9ADoHuZuVIdpnwzAr976ugHPCgTOqOP/orSdyXtaH2zTj/6jS98pHGWPc83vMr0lh8FH6ZSmXyr1IK/loO2IHdpsXlhebQDjXf14yjjFafAFXAAzHVdT9b72i+8f/9NUJqf3WiADcLTJez/z7GR9Z/Wb6kVxJyS9tKsRlbmGWri0epr2mEdbBUAeDMJQs5YtmPdqcirX6EL2i9FB2i786OWG6jTeo5uh10fvoqeLOeiIMg7wALOeNhsD8sVCT54BmHUDyKPmIaBX45UHneF3Z6f4vV/+6NHfS2k3ShrQ3amKJ3VM75LVDnU3qsO0SQbg1976ugkMkHUn5Y9MJOb92X986c29uvc9tbzZ8KaF7j4F92oBzFL7E9QLzes2lfzhWv80v6u8q9G8sPqbuAI6BW85Fk0ZwBvZkGYNl17oKHtKLP7D3/mpI/+n68nxXgssdd572bcH5aefeunoaDH8s5pknWgxsrxVrkiBb5zjDQDKOoUwDOwxS6d0OWuVs+2yEflzXcS8liT4FR0P2vhCaMA6ADqrGPqhXJS1p9CkPsoD0FKhBQ+LqLsX45BHBu86DE0D0AGstXDrP10eDb/y2feVsyBzeL8d0H388Fpy49ScAfj1Pxe6AW+7j0yc+nwznH1t+15h4rAYBRvP5rNv1qDwGv0UK5dZVGWgqzygDBT7K5BaHSoMxhkI2Eve0hp8EwJbGs5uOdFEQB+1AeBWVGq1QkvrvHqNpo2/8Hf+xuRP4Oew1wJmuL3k24cSwLf3LbqGBgz3Mg/rABvy8mctCAl1rdZ137xVAJph5eC9MvYc+IgC4gSAHDplwvxvYKDfBPQTPG3ygHhYhMU8L3RuGlZUEyNvdN1dXhZAZ65Y94bAHc9bbY8euG6SS0fGl3/r1Pvuu+5D0jfDblRuw8OIMwAfhtWtztN4yAKJW+YjE4Du9IWNtwoV71ZfcS9HyQhcmNcN01YALGs/4TGKpqFmebsALQTWL9O/2MLOsBeBebbSIcBmVTSvGgVIVgcl/1iAq75GvVISAlgLeOUtx7Rhddmrnv34+1f/l0Q0JxMLLBkxod8WScB30Iz+nC7TAUCny1SrD7iGwqIo8l1DOEgfFOMVg7vzCMIO1Hr9qJlNGcbuC5gDE/AGmAFk0g7YyCykAB6gHB4IwpA47QmeOV46/HngRw97t73yzqt688L5y//us6defxC+2Xaj2rXT9U9lAL7+Nj+gxtOCnjMCrN/Ug+zpJ95+c+3s9AufvvJN6j3eokf8EUO+AlKtJ2EhpxwJgbDleXjXvBpAi6fKA7sNL/fU1ZkjQCeiUTy5qqLj3rKISg/+GmUTXatXtOIq6IwgHb3enoE2QK761IdpPwQ83tbQNZsPWf9Vb2z/r3//oyeebVk50VrgtgVgwHcs8NW7cP1KICYv1Wzhrxm1FooJgWEDJg4HillXpSDQtIvQATsspNKFKC+0Mk9VFy8XpoO6AB1ZL48MICtfWUPNeioVSKNX7bG24EmbV2yet546xVJzGTdSobnkeYoNXja03bTT+tx9W5OVy//u9fCEb+bdqIK9Duc3A/Dh2P0aar0pVlqz13x/svZdclqP2wIp6xHkfao/ERD7ELOmYkP/xDSVyTGEZkEwCVLSHwHagLQIQkyb/6VPqucL7dgnkAWUBc5hCFp9HjqF1bvltFTLQJ36GaYmRIJSejFJzaiv9MvmWQ3K/c7Hf+r+l0wk/5gFosFuL2t88JPNuOhffkdVVyscOYDnw8TBKw2eKunADx5qAEbALQma9TDvOSEFsA5gSzoAteqxC52bwC/QEAPYbXHdFDw5anhbC6wYEg83Uasjeuf2ylKSDuX3n7teFOWlzd898n9/9rOvfk442Rjjpt6NqrX3ISQyAB+C0V9Zle1HJlT8hlhpDfiWw/F396pqNfQk2p+AVcz2IB97ltjFaN8A80DJ2nSWpqrcDN4DafsMgTZ9DMGA2gC8O/QnL1gP/KGfQi/ecKjNCrZesgay2807kJFqlWPTD3Vn5i1Xzw2rzX916iffcCWUvL1/2xNyu5jhve/9rcGRtz3yrUJcA19NiPAiug23lI2Gecu5rpfgDctT1dXExcaQMUO6Aai1k1Vp07ut98nK6DCcjB3TNPm5XOd+r1+hL5SDuhsAV4CaetwTh9v1xslPZ+GVJbxo87h1UbsmvSTM/lkMaxtwu2duN0vd/9onPrj6/7rsy4m/9rXmsQtbxY+roidV7pbbGOPl2OK1kM0A/FpY8frrUEdwVsO4Z3QPf3F9Upx++6PXd3OQU59pJlvTje9qmmqVezoMIYdRsjjce2B/bh5wNFkEXw1KS4v6kdDHqd+yPiiCuN69YLmW0LkEaj1QpmYO2d7IsIx51wLxFripi6HpNHa8BrxreepaYHrmF9+/9v+53ts1PvCE3aoG4T1fvbf7IGCnFX/CXoMnXRUCMt1Z+iiRPfxxAWGD9MIlj7fbE/AGuhZOCbShmz4Da3Rw8QUvOoB2AMS+9IdtKIMXLaDcY3/AO+gT3scbwoax9W4w4M3NsjuEzQOmVLYAbuAfwTyko65wk5X9r3ziAyt/4LRriZ8735zUk+tvqOM5yWjUTM8ixD7HfS06ssyyBTIAL9vjZsmtDItiRauL1/ShPg27nhnMiycefvj6zRv/3FMbb583C/VdIdB/2MM+oKY+x4BUT+XqLxoDuqR/Ye8qgHRgo2os5Aw9H/ircjZ3q5E43vnVK0h4u/RDeMRh0afP5wbvNzZARmB+GE3wWQwKakfVQuFQp/exsZT1RfSR5aI++/EPHv03Tr8d4z0AcCsb4Wc+tXGvhp3f4qAoKLE5WR/OJfbjB5y5oPWC+sJWGcv71RcWar0zF54cJciFRQCMuaC4wHdpeNFhsZUJxR8JaVokDFvbDWNeNHdB8K5DmV1vm3wAWFZSI4OHG3SHYfN5OZ+HOV8AnoAMXrp78tBUVjT2oV78+0996Ng5aNcSvnqu+Q0dyOPIYhyeDhjIUh22JSdAPFe6nV5CMIerWiAD8FXNc0MxV7T7+4rGyo5MwvWfNk73wacfebD8YEp7vdI/+9Tm/XIxvwn99Bu82hg6m7AvgYNgGCYOPZEmcOVMiKP/bKPbgqeA0/YP8O5JoN16sAJRcxKsKxHAgqK2PmUXkNXXsXDUgJa0HbPqaDQ6hxdNW2hBX1tq0S8aONOf7joXFAmOTr/6g7/7k6v/HsLtGILxbsEj56PSHNaFC7p/ti+Wl44em60str6xWiwmAcTi0yNfMKpGWmC1+xrRXC5m354kbTgX0JLM7jwtoMMFbHO0zHhoYzaXMRCPQJi6iQ7owYMOoA0Y08ZdTxjPWu8fy6teCHi5kBu9J1w3vFscLnS7oC3tIM2NEYAXsA7pcGfpOMNFb+0JvKquty9++ci/vZb54K+db/6mdHxadVvvo2fbAwM8PHOA2L3kA4Vvc0YG4Bv7AsDTHQl4V+XpMs3DAydhv+tfl/0H3/JQ+ekg8fr9fuSpre+q6+mEPkdecKV3KfB0236JmVfrb7jXw+1v/QqAGL1hdS0a3ePdSQWN+OmoAlATBw/X9xkANLUuWmXtS21a52J9kXnFoSy7ZoHs7Y5aLWCrTTPVObCHfXvDwyqMqBw8azWNldrynuGpst/+xN889hWTu81+4qV1cx/1z3zq/Prqymh1Z7o4Xs97a2VvoVsIYItzuUJMvENAVuv6Sq18ZoWgDfEaSPmF1euLzhB0kFV5YEWYZV6neZVBLx5mfPKzp8wR/mBiRDzrIOPbTqYAzo2T0g20DUR9WFybY9lwDsPYpPV+r54gGSbHe3Yvei+AB2CnIbtAHZrl89vk1Lb/9IkPrP9B4Oz/a0PPdfEfdMOsdzseLpqrYLEpdEA2MNa9yrB1DsECGYBvvCuBh0y8XIaYAWC/5gFfT+/XagPnqnj7I/eXZ/bjvxa0n/v4hePTSf/P8qDPV9Lwfnkgt4d5ARvg6Q/h/jAfHrd3p6Ssv5KsgbH6P3+gp5+h66k0YtZtK0629pm3enyUzzYoss2D2ATattq1xVm8Wxw8XD0YyDkJMB/rj7sGWh8ob9rmmg2/A4ArX66tHPnfb5ZtdLt2ejV5t9Or0XEoZQHdwWx8ZzGY3qOLsj+dzXV5amnAQA9dsbMHcAkAqIZVwhQvJ16hN+jXxmf3KHsq1Bd8Tb6vLVy0yYZeNwrliqY/CGbSrlaNNncWeGruWOUFgFz40mjzxnEutk9dagGxnlQ1QjQPe0XraTV43bTPHlTB2ypcyHN9oRCvW0HYFhupppOmHX08cAZtNEPT9DW3MtWVzLBO8Mx5RUrlNXcTh8xrDVdr0qd24G70gCB53Rx6H3kxe0CL0f7os599x4E7Zam2z+mmW98Pab8e+HIQdExDmS2ajrnzXe9Yh5cBGSvlcJgWAHTxcicC3ZE9sofWpICbpvdrK3zdtV/43aebJx59uDy7n8yrpdXj6g31dGadCZ8o7Wmbq7mebGN/YurpB+pqp7dotIc9Q8bqYORiar2WBtS0dUZYTTWv5rr/1b/Rp9gKafo+68cqqAGgFWnJsvg9XqHUy0UCbC28Eqiy6x6edwRrqZVuiaik9usIr26oP1VfpneYmE/WK0uqSzaSQxCn6eT2qgMrsLeKiaeR8l6xtX35MVH+tf5uq3DTAfBHP9McW2ydf0jftDw2rbZ08nTuuegszAR6tpbKhpTl9QKCus0YPl6U06mATDRuvPl8W9do8DQBZwIAFedZeUndLnCRAVS7YJHhutZN1+qHNtuZa3WzLk8DZZt7VX3IhnYBtro4Bdjw4HARG1+6AVHapRZq6Bnwl3esFhr0oScuxgpeM6V11Qq4mcdRUuAMSeCrESZunDg0XnNs0i0DRZCWrNI8z9eD3uDkQw+r2H+kbDcw9Cypx6Fz82Avq0R5bxi8NE3+agEdGjfbBWQeLfSHh8zQNfbIIVvg9bYA1+FYk1Or+sPT7YbU403TXTnyzte1e1LTqp8T6Yn95F4trRlUY/UI6hg0WMtD/GJL4KjFngJX9XeNdeJ6CijjPa/OBjL9lHxVvaakm4yHe0GlMJU7eWT3rqa2mD6z7ScXGtbWntGhv1RnNFdfxb4ETIXZSKLK1eqb7Fiif6vVJ2qCORzloLfSzFh3Ym8e0RhVDwALXCk37GnoXEPg9qAgFnKLUnPUiKpTmtXN+nvf2wyuZWrs1drzRiofDHojteiAtnz4f/rqanF+9WFhX/saDEPEPI1pFwtdaGGDCtJ8xJ7Hq0oeqzDHXhkSkBiGwK+qgS4NDabYQyWLGHSpJkETFGYXVvRNp3ryAx3bAFiT97hlmAeNLG0Kw9cGLK2NedLU/WBgi8fKcDj5NB208VQKEAdw9th56PdaaRrlAXFoyDrP7eM80Q3+JcNQ9uLIhbV/feqUPfh6kSKsem6e5u45CHhb4WtI0Jgl48Yy3kjnAfQcB2B8qwNyHoK+hgvnNRThOtYGOga6gC+bPvkd7yCaVhfu/l0ZeF05rlu/hr2sZF6XRVlagPVtxWymp2taEfoiRriod6D8LOnrerFvAKgZEg6xTaUVckw1ncYDOkCuPlDBe7bFTLe7+qLQbwWHQwOLkvF+bjemjwl6/WGfcsEcPqRtOwBKv4EwFbV9pmUCqCupcUdx6DNVfj778j/48PE/DBK3x6+dhBv9UD/0jzYfkC/5ID20X1i02cdPdW+1wfgRmFtiIhjmKQRU8QKda863Yn/nRAmgzaVhF5OUuAcJMO+C9S6fegLwhts6AHi4YO1ired43tYcu9C4L6SLIW9d8J1zgNw2GiNA20MGN4bJA9qmSD/MZZN3z9npxPCoEyAnH+olFcBaT9Ds9Pr84MrW89BW7jm2VfxhMX//B4qvqHM5yZF4R+Sdj+VF986HuBuoLKV7WeT24yGcyrs+tbcF41sNkDMA+1l+fWNWMAO4a5rbBYQJDrwht//v0jWrcl4mpXdLtrxe8eSb7y9/tct/pfnPf77p/ZtnLr59pP6C0SI9PNjDvbzaSlNjtlaEnpD+DDhOQ7WYBZrI1qdZLOcgjpqhSyrtoVwgWO8IvIN+3ZJiBJ3SyDvBgLatSwlOT1oPafoXwBYwXWiZmCLD7oEG6qaqj6w5RqHPM8dJs3eqW4tJ5QDRW1a9+Uuf/MDx31bytgkBFW7Qw33qqWb0R/X0zaxc1oVRz3SytBCp6OtC2tmZlyO1nhOv08hKP315Q/MO+gqBzirvvDX+dKjhIV2ICnGY08EXknnOGgaR8pILerrY7kHjYtHCBAGzKuHKt8lMDffwnhyq4OuJkTSeNB61LRUU2Nf2aIBpYWsFsxok4Catv/A0yitEw6GGh7SV8y6wq0rVCeDzRDkTE3jmGDVkLpq+oCRgDR6tLlzxFhoe5xUjn1OFh3zwjKlPx8DdoKEiaOiXrA0ilfPpPTuj3t0A9cXzV4r3/OjkPXpIPqlC7RO/dywY0Dsi+AcFM0jK7BBMj/PFS9kpD5sN+dO5hs7xscJ6qj9iHWMO2QJ7LOCvDa0JeLmGCH4Nh9zevNP3k015B6WX9C+KT2s++Ddfq/ng3/kdPYcfGSy0M3MzGGpZh5wD3QPsG09fQL+ifkhrU7QlwWAw1X0y0JjyTEfOjdOoJ5oKAeU4qD8RW51DuI178oAXzYyvns/xhhfysIejAaNuzWI6U184KHqiaRWW3YAsTuVDL5XKaNiZfkSv8er2VZ9Cv0vfB21ez4TDcmrYH0H36Eyiaoataqk05M22l7Nyu9HGRGJo8aoAWetUNMquPntWaUb+9gr0bTdkYNeXjc2NRwQIYwO6OAQThpXx6gRAAkCe2DgALgaGl7kYuBDk4S3II8c1xLVkT3Q64aNRv9kRD4BGB3ILAWJPwzrpUyZDO/zvDamDJzXATTLRYlJrwfQqBX8qXb5oy4EbOsM/Xpe33Qpr7qXqjfSusZ5MdXHWU72va8cQhncCaId6lo498cbDPDcdDsAdPGtAFQ/bPW80WB0aHVDHJEDX8di7wRzbvPgzb5rc85e+Y/jPkEu9X/Jm4JjogjC8FEQRe6Uh1ZWmXZ/TiP3d49lNCMjZA/Yz+trEet/UFlPh6YZ1jOEa7mpPgTJNX00OHrKE9Nrnmo9k43V+zg7r4u0Pv0abdHz4E5e/UXvcqTohqFYv9QTC7kTUVfRyaQAd0mxWCVzbW1LfVSi1e56FoTrCBV6x5OptAWlv0MynM+uX6EcX8nB7gln6Sq3Joi/Vw3rwilFeqyz9bE9TyJWAnjydK/O5dW+mfiUMa9s0HyNscpL0SQbrk+iXrY+OQ+f0gbvD5ZJbhJHAT33o6L8Mrb09fnHTbrgA+G5vbz6qrxaofTptWtpc62LRddPoSU1z9gJCvE+lZ72BhnNnOoE6+cKuRheHrj6N14C4+qdC0iBoKxo9b1U8GzIcw7Cz+m7mKPRJPw3VKpaHKYoAVAumkNFON3o062uH8rA7FkAlmWYAWCpuDdcu4pJXK6L0siystHfu9BTIfM2wWKG6YqZSXOxa5KALX2Boq5bjMLEWieFpVzN5wQPXH04R9dkFrUMDOG3Y3B4eGJKia+CplPnqXjMU0k/nqnPY0xw2bfXhI5aWAb7EeryY68OhQxZr9cvv+7Zh+y6jdzi0l9AeaJsI9CXeLumaU3RgSyr3EIIqa48EXZZYNrQ/VloTbO5YR8WrE4Bz2lkGifx7K1mA0R9WMI/ja0NcI9dyzv3aTmXTsvulkfVyzudSTUNLF0ODXSdnveIL4j+RyrzS9GJebzNpy3DQSHg2lbfZE/g1pfo+veeAe9wbC0DnAsRyyLidhXoxLQfqeayPU5+zM5/KO9aQ8476RrVTC1mLcqxxYPV1FFG3YfdYOdaC5dm0sP195MKqvKTl7I7G2r1KdUgYRfqjzy3UMikTwFK/7kc+B4EXTd+rlTmS16sbygP4aqv1f/Q/vItMv85cc6/PMHoA8ND62+M3dl83zsECvpcvbz4qb1SXAxeFnuY0SlHEpy2GSAZ66gJJdGprnWNdE3o+02I7RUW9A8QJoHky41LRuEavr6c1XXSzwUDFdEFxoUivrdhTqQDi0qOyMojWyUsTdUoHo8kLedN4jZQllLXmOewSDnPSAmwtIpzrg7zcewxdS1KvMfEMANg2dZ/bp8DrruR9a8cYFkGpLvQApmEeRuu1bfh4NFjRiBJz08qrPLFWGGo+S+1QWbm1ap8eBjCCrAQYA/IMndtKQwF7X6sOpVyvUGmWWMGG0/WgIdTXZR8An5uKeZ3/6vvHT+r47rFOhpuLAp2Aki59P1qn2J7s1cqknWJasEv3zs4bxOg+w40MWbMND+2kTLqgq6sj1Z/TN4cFDHTl5fLaUPquLq338+txekR+vTjPrnMJdOmpnoPSrsP1uw6Tjz92jestAn245G+96YHyYy77SuOdXu/KSq9/dD7baWY9fXlQiuhQFvNpORpNFrNaw8zgmd7wKHc0oBuD+iWNvKmr4Y5Xv8FUnP60KZZGCTUubXfK5kw+gPo8gLCa9Xr1UItCdfNofBBYpgz3Ew5JU06tfwJYCdqSV16twBaQlTZ9xtA8bD0Dh/J4Iuq/evS1AthtPRBIGbtjqedCv7xvtT105gM1UrPFt1m4oQD4pzXnu7F58S06MxXDFTqnOsF6tUgnX+dFQKWleupgp/OZDT0jY8Mg4s0iDRC0+Q3lBWtcGLV49vTFiUZekW2jZsMm0mGXQgDuorIV+gPhLzPOs6I3Enjr6gX4AWMbctG1Ql9vgBy3hNOOVZpcBd9ok4a0d3SrajiYoW3QnFgACT7YEDbXsIZ3TAcrkjnGkToWxUbvVwbaYThIxyGW3QSKjM9bCFKrtEAWbzxeusPeiloUwFsvDjJkrkap3lEcApI37947wP6N39C79967eu9BLwEw8w4qUMKvyG2wk6FcSoPp9IPiVkFMUN5l9+M5DRkLSlgHSEH9Ld2tykdyEJWse8kQZCfOoR0fcbcjtUL554azAKAL2B7R5wd8PcBSI7k4OPEvI3DuU+BM06jxvN8H3WvF+WmVpjMS4HMf6To79XtPN7/95ofLX09lX2567c6tjdmlAetgNC+7rT0IVpqdZkcjvvIP6h3zQDV1Vk4Go2ZzulPrK4LyKIfNTrFT6NPj5Uyg2u9PDUjlIZfz/lQvIg20jqYpRisTA3K2kdS3VrWDAVsHqB6GvOlfQt9rQCqvgDngajEXWOOBS66SnsZcH2Xk86j/FY/bekd5ed/qM6c1YK++WwI6Bt19M92PWIw9FGaVHKpazko1qqqtl2ubm13+hgFgwHfUXHkTQMQ8BMCil8d1wtJLmxOr0We2ClfMraJpzwVzF3JWxQubYgDaeJ5hLsOcIp3wAOSS47rR3cFFoCc/krqYSFNGF51Gcm2YW7ipIRPxuSDjQwCeli1U0MOAPRjgeQmgg0455rofAGnl5WWzJIzyNqcb61Wj9BauRniEzz7kghfLUyhHpCFwhqalAP2azwngDYgTtDNNs9Dcih4pTTcnkHIqw2IHf3BZMA+tpxK1HdDXA4GOS/94pUqYrPIaHMK7/t5vHz8lw1mgUgJ5OhACnYnFITKmyznJ41ik7Q89bwpjpqXFQuSpokt3ncStTBSibWkbPJ3qAGQ9WHlVwsABsg7AnvZjdfkcH74FWEy1Km+XIWbuMS4CrkXOmcfWSk7uAcHl/Prwaxlxp6Xprnwq41W0MiLEW6O9Pk1XFOTBgetKPdXnnn6uOfPwveXZyHrZ0eSP79p4abx1rGq2NdilBVWLLd3XK5rO3Q5N0IKzQaVRs81tdSmabipWtPBqW6/xasB6ulP1WJBGX9bfKRujl+WWXOMVLRGfzXfKhfpO+RnFtvoum41rRtW2vG3eF9acuuqYSv/QvgOsmjTgOFX32ddaGvU9c41Ka/pPC7jq6Y4m+PSwJE9ZtGHTk24Bvkbf5GVruLyvX3V7Cpr/lbPOp90UtKeQ6lBfuVPMNiDcToFL+4YIw+rCPRoXYQrVgJGhZ+FYDTDqlAp0uR1CHm8TubBIgCFp6LxJPhOIgZlBDjpy5PkN+cBDrz4aYpcDXnMEQAN+0tB2n9QCQKKDIW4NYe927yYHRzLSSbsNnK3dIgpw1eEzX21pYaKe9uzCU4MoFfmW1DgR87OUoR7p1itGOi68f03+aHKFdrNaG/FA1+IH8cnbcejBgCHpGeCrq9xkFHPRu+fLkDqA/p6/PPnreui4l7Lem9BxEDwOmqU7kJc6rrRDi+xXFLnuWLXpSNMQXMbSZKKAXRUQY+h2milYcxU4n7bzp1EzW7gjO1hH363X9eb49bcAoLt+tCjuf0NRvOGO8N6uX4cOfLQiPYdXa5XLIePlU1q3bJdHGUI3NlqkU8avGS5La68SRg+MdW0A9BtPP727fwHlX07Qu/r1uNi4uFjVbLD8z7oazXvDzYWGzGblaDEb9kbz6WJzUY2Gs8VUQ1z15kJdqWLNpg2Hs6GWHzfltopqCY1wWK96TI22I1o9nE30p30ENRc8lB88wgWeqxtbDMttzY/pTzq3ptvq9XYWxEPlWRjTaL5Zi6y0mlWdDn2ofINBNRB9MB+shHhWD+TiTsQfyE1pZvD5U3cuWp93qbQYW0us63qmxTyXX45dbgVZv3YO9Vg++MmLd+gFopO7jQCZACkNWQhceFDCOzXPVFdGy9PiK5bd453adG0ENuaIBUDaJxzQCqCI7rA8PwA8+oLnzIIreasxAHDwUBVWAgJ64RaErltLYB/y1It+3lDSyA33nx4ellcPur4A+EEeTxVZyppnbUAMRWM4eNaqx1cZcizmveMtO3AjShDPPHKBNXEghl8WNxhPx0M8V1le39JouuJB8U1v6t37vd86/BdeyBofFXjnAQ+6x7DTNHkPXbrnPUYuTXu5lA7fQ9oep9EY6MYjrT/K+NMQ+XAWQonUs3W6l211GWG3XMyal8xZ9nJtG16DRF4FvWtEhpf58MGRtQhezuJEdC6Y7vnwfLgbd8+V51F1tfPn5b3KbpzyXedB+vZpbtt8u67L4lfe/GD5nm4d15rXuqbypz5e3DEeXOnNNJU6GDbNZrPFh4HlSE4aDc9bNbOBdgcsNHSwuVkMj6rLq8b1fGdbbxSNm8lkU9ITdSN6U2K2pbc1xvRdzA8rzdKYLa2nmehVoU3hqhxoedvzuTzrvjxtbU2wos9Cyf2VfsvIz1Zqm7T6Pb3RNBqPNPsmr1dBU75aaKqyq0W5gozCXPosEX80KldOVkdyynlXeHt214eP/eEpOfipzK2eXjLIYRzsqc83w8tfvfJG7aBo3m/ahgB0Gu5YMNQM8BKmmgsa2twEoMa8kM9TANa2zD64luZJa2GBLQJABr7GZasArkGfg2jQrc6c4WfVBVin4BnAF9AE8HcB28sRIy9ss+FqB2noDtBOC0PsAHUAesqoqzBgh5a2ibZqqEdzuawQDMPmLmOl9OS5rEf1GxhLqQM2+qXHgtU1KD70Yytf0DzPvVwADlQ8ve/XkVDOL5R4EkyV/9htJYbzkPW0y7ySuO0AUSalNqSHburiL1HqNCc5Hx0+HA3NgmK7y5M8yTarRCsrutcbCqspbgwnvMz4dgdgrjPmdAHe/baD7JqzvQ6cofKcgvYcWcaZ4fy0vEh2HR7vSu+fcrk0RhK90DxtsX68CZFlMt4G16Gir+rLSY+f+o3+o6O3H1loVJl6R3ovWF2OPa/vTENt0GYCYz3PFFfigO5osCnAntjlDXhTtmBOfeq3dQTmY+IpOexvltO5QF3gLBwvJsLzQsPfs/nYdAjdRZjwMF8WYw2Hb5bVilak6+UNudiTkvR2nM0lTZhruBzwbsoVTZVtV4CxVs0I3IlHzbh56fLHf+H+l4L07fN76HPAG2dfuKPpTeTK7YJLMD8T9swYEDPHGs79oh5qfoGLjXnegZ7+ALKpwEtzFMy76oJElkUEAkSBog3bsoBDnrSBt4abkaO+gTbDCIodxB1gFdesIYCu4RU9f1JGCxe2Z1VfixVCGzVULL63F4+WOjWawvCvyQDWGg22oCHw4PGGrH6berTSBXSA2Lxjw08DdNM0bT1xijPk06pRIoA4nr8WjjGcquF4VkgT1ByOwYCaUv/1D4x+AvCFh1XlIVvwDiNYOtAO+uWgXc7LuazTPR8N1MqnZV3GY++sLB8VWaQfK6fYHxi8DAAbuxUjpfxwNYgcdREv8RMWhTmW9Hg8TXHneV0e27AjhXM40ALYyOZ05S0x1NwGPy9+UcTYroMohN0tj2zkezETiRmXWZJPdJB0nqcjeylyPakM5TykaWg0iZAegl9jRtst+ymtjD6jldGnrcDL/Dl96on546eajQvHLkw2tcizt62+75iWO23rmf0orRbQ7dRNT4uLFwLksYbzNeWr3a7GxZVe3aworZ6gmGlfgyPqk4TcFjaujKu1Vb008RJjxBvl9sXVYm1VS0YksyKZnUtlubo6WvQ1x3Zhulmu4kXLR1lZk/xUW2toJXat9shHKBerV/TecVmOVsfNdL6pfRHKSmtgy6NHx1qSIstpUFJj2fpgg0bm1I5SoD7U+PNo609dDK25vX792jmUo8b73fyTK9+gLxmNAC88ObxIYibtAS+nhWFlhqKXvc8gH94f87J+MICR6+31AO4A6IEPAAPaQaeBsToGwD0MI4e24HGrMbaIIMhy+83lHQcPOrSHHiUAurfPgRlAh+by6EAWME89aW8nchwz+Z1tTcUIn9FFm3xIHT5aQju73QEcQliohp7w6nSgvuNto3u/51tHX/RSBr6xgyBKO59QYveXSnf7kl36y0119djBdHS7DO30tlKP5RXDp5NLeSmfNI2lvS5jZSHE4DyvKwVyl3Vxz1tRFTCdkUmEDp0XC/5AE3J7f28XDxjQ5WP2a/KClkDXTYLRDgpueGTcwEp6lmKWdl6Ut+sXppcnrXDV61qKOJ+pzEHpoG2pSYGUNsyFFHvzEtJZPfQ/8WoWZQmE++9YfX507oVetTKxK7HY3izLlcldzdr4xfJF+ZH9O3rVenm8fvGlF4vV+6tyR3zaMNFbTBcEdcOVUG6hryQMBZ4rol+6pPMkD9p5yAPg8lus7JG1I8X29HKjUQt92CboQwY+zkoht3t2LqQ1uqFyYag8yOzKD9eLcmMDL5qV7WW5fvHK+VOnHg7j1Ea9fX4O1QPe/oOLq3pFdjDqDxfs8VLpam16tlzehnn5suBMGxbHxUeSiC9zM+6SDAPj3cUdXcyrDQAXvEjAS3+i4wvZMni7mABGbg/mV5WWblbzceLxIOEFD1ugLjBk0RK3EkH83qpAGjkuYnaL4QJ1PjJ6hUjeJwCpFQ+Kl5i66IIL4KDsw+jhASKsyBYPL1r7jtgxq+3E6EZveEihnkDXqmphOkBPjIcuMBCNB5AwghDqmhV//h2jf2IGsB+1Om12UL/0C5+OFDH+KPZ1iiyV98zVyu2nj3p1cEuVQXNZS3sGsZi2SD/ugXj9+8l7ceJ0mJo88tZlKF4qiy1MQHFUbnyleSONAB2bAcjEXw+QrdAt8sPxcnnbt3U1qcSxR3OFXtyNJjljEBO6dB5m7AIw7r4/XqTVI4LRWsZuMTtnynJOu2nPe0ypg9Lw0EGzuca8+VTsELNEp0ASJHZSi7LYpOPtCfllJU+fKue/IT/hv/hYMTh29BnrFTaL+/WW0HPVTGua6sn9WtKs9FEt2JzMyp1zYZ0llWwK5qrNF1nsbFbqbx+3Xm9n54XizvGJcksbeszPSVCL4IrinCZnBdrHdBYF2ovehWKghykK9Oiwg/ddjuV9bwvEjwlNLg/D9+R4FUr7EZZbG/K2Bcx1eUWmYmBcw9PS1ZNXTuiXG5u3K/ja8ZsVDulHS+LuFsbWtjuKgG3K0PJQOLPQCmiGkJVXzOsz8kOntmJ1scOZ1w2ijTeI8QYBY03aGujN9Dhm+KZxFrZpwwNkBbGWFiutMWDe/9Fa+VkdgA2AEk7p4rAV1GzuovfSALkwNCy+6gll3atdLDakwzxgAZ5eK7JXmwR0engQiCOvlgF8XOQOtrxeBVBu6NPV6KfOMO3NcWpImMORB86iqwCwFqt9aYwMQKtdQlhgpvueZY0BaAMtjBBQRqI2oqBnUqVn5X/zV478hF4ruA8GgRrTNATveEJrAt9lrFDnJ9XhrLSs09K4q2+PDgnYyfVCnTxtdHBEpNvhob/taL0sRIIqc7Al68dLmkDeRXlk6wbzkpFzBvIx08bisU8vG4F4cDBm1fWtGPieLq8MMczMsWILPwdL51cZ42EETyPQDdjU6R6LFE3dJuw6QI+fqyhgdUcVdl6iDj9HVJemyXvgocFHQ6yt6E/1Kk3WHkwj3cuavGcUe9PdFpH12H/8o+ZTjzxYfjARfVlJYRs1T0+dChtvCAvV6nuLZ7XoacjKrOLexTPPFeXbivPFs/fe24z0unBR/L7ob1RPele9WZzVuup+uXrsrPScLI4fPaEFUUX59Jefae5/4P7imPZDuHLpjlJOcXN0/rziutn6k0pgercdkmSbzYvsKX+uGlR3aC/nF4uNr/F+6LHF2sr5kmHrGV62RkAu68G0V461zEdbhsijXj+2rmHzi+XK6PL2L33ogdvu3V/Ojge/Pjx/3eIPf6JZ1QYvJ7VtoDaSYEiDqgO42vytQGmosRroPc3ZCph0oQDCQ1tMxWKrhdJAmA0t40ZKdiFZANwWY4lJGn0AOIDX024sKicPWtu0adyE8RMwUsPRNvSbetZ6nUfL+YWbAnHoADAgDsAaqGujDR4AmrmGywWKKEIWbxwvNMjLte4s/OJIKRf0co8GwBaQGkjD9wDAr2hcyIfGg4046t1gh67jYHEaIawa57ixW1h89n3fNnjHo28cfLYtpaPQ//apvaVD0x+8awnXKnutctTpnV0b70eLDUQmbat5viJ4h+dgS550KktdaUdrQC45r9f5xIQ9dXmnH9jLXndsl+tKY9KsCwCg9aBkf1HFTRWxgMqHmLlosDEG5vgsHY/G8kr7OYHc8iVrIdodFXsuwKjX5fwkug5UmEibMMldPbF8Wn9XVyzRttFl09hliP18wrdrTjRv5n6xleFHAT5BzX1Vi7KClu6vxgNjS06daqtaEvrSWwXMvxOs+KUvKf22IPfss4q/WYu7dn6/+uo5HJW3Fvfc8fvlV8+9sXnbW4vipa8W5WUNMR+5Q3223nI8f0mLYOV1n7+4EGgXxcal+8utK8/b4Y3X6uboalVe2rhb8fPl5sbd5fbmixomb5rJ6olmbaPY0etVccxoqXm3Vcavhet+0B/5+1+7pxyMj1PxbGdaDUZDecLhQtDkv15fE5AIfbU9M7eVgiYe4us7AC7gTACgkdEYtICZ2wFP1MuocxNwshVaWB1NHmCiHkCPIA/TFmUpKV3oBezE185qw8aB25gAuLZwA6wBVUAY8G5VKck3Ox2cAetdQA/gTDkH7DCvbYum4mtP5lWbhyvc1S41A80D61U/xeR9LhkPnTwBIPcGhHlu5rB5GNAIgOwkkC9P3rey9u7vXflnerK/zwrFHwm1hkrTLmMdJ4wYXMY7JchOc5lXE3un5vU6eMYLoO30qAMZ+0sqdFrKd/bVZF3GO9K0fNvBUl8URJfLRFLbCSPUlfOHApdFIMVuA2GBMYCMrB93K38DJfjYgS2m0ggiH0HoXgvhDlaD3QhJ2+1aEZ0yBETMj/OLKNLhOSnVY3XBwHgum9aT0loFaFPo5gM1sMTzc5qQ90368VqMRFq/ss5fKpzU3eFf0PjeE488XJ5Zkr9uGQNrHUFTAtb6axy0SXM47363AbQd5enTp6sT73+8OX6+qO57bvfIT0vwkXuL8rw87qL4HeUE3C/9flm86Y3FnfcUDcD91XNFc88d2o969P/Un3nvNzM63bGcit2GgUvjUMLPffz8ye2qP9aWxUsnYqFXjgJAmrdrq5B1gdTBK9aQqvZ4HA5HAkkNPQt05WqqfJAFyD1vAGR8DecKSAO465UmA/cA3tD0Z54iIO3etoN4KMOcL4u1hKXmTcqbRjCo4MsktF9dkQ1VKylAF+jDH+qfea4CeLzhFQBdZfUhCXm/eNxT0XUlasEZ27ctemyWrjlvA3YpMO8cINUQOIu+AHsF8rbdZjtUne78FRZxBUl+Z8V7f/joh48eqX5sl7abwvp0CoT0Ylg6KYG99ItsV2Y/2lKhq2WkbA8AduRpq18tqSwN6eZpm8uixsom+lKQWyrrsiiIoVvW8pHvdVhWP+hye3odyEDzPGpNnlgJ1wEdOQAZWQNk0i6MwCEEhlp5FYVv66avDbXNIsEfFwCRx0qnx2f0tlAQT4pZ2VYHZQNlN4FeJyptWVeQxl4ulXeaYm8fpNT25OGlNJd1Wsr3tMdJ01DV6oJuw9WK0UOzPKjs2X/8PxdPfPrny7NOu3lidVccTzwgB2/aHz1rM8mXvvRr5ec//+64e0IG3vT8ptdCSn9d08xbXDqy80btiybgWg7sYcom4yk1eLZ4rzZXajx5wQJqAE1eoOZeHWQB1OFQe6ppGzVkQhlAWhgm8K360xaQA/hyP0hJRNQA6tzmQ57w9X3LMGdsnqvmmftsyaZAvZQLHnOcd5V3HTx3lRZ+AsQLgW0AaXeVg8cNjSF0e3iwNHLBAwY0A/ijh2F4PWBoGFqbqmu7GtlmJrDXBjOhzWqIvGHzvKPHzatX2q7T2vmuJ1a/+S0nB/8jreWouCO8w/AbB0GnGT+I6ndvcLmUQ3nKpeHr0Vq+Ci45NOQ7ylLgog5u+lYkpsmj02W9w0Q+1Wdl28JBFzKQ9vBgKLiuLj/V63Km2pRFncaIuknHkOp02r621UEhCxjzlSc9yC0dj5d9rWMH3YlAl/ldDqk9Z0maG9gOVz/OJyYDnZPr1xlZjsXyMCWzVCblI0yIcktpL2cVGGf5J9bhNjbm1ymzn+2Xle7NpU3byw2Ug/RS1ueQ5YeefsuD5RMH6cj0W9cCewDwehzqs/c+p9ta397TVmasYKbO4YocQ4HvXMOmLNFL/7SIiIVadrtZjMeoLczm9WCBB93rry6gG/iO8FTxeJGXnEAa/fDYKs15DFNbWcWBxt6nYTg7lKF9oW3ImpcaPdhAB3zpFPXCHe0R+IXh8l0626wV+oAIfIbN4/B3A80AVnGYr9YxGPgKeG04PAyjDzWP7Met1/i0Unx3RTXD4Fphrc8e6viE7XoWrRfbDDlr4RrvBGhDrW/5xuF9jzww+Nscl1lPnZDf9MRO58ABEwcUM0Rg7/ld6tQidz/5r0dzvp38mCHyNnjFDqieX6pfBShjNCWQJe0y6TFRPuWRh2/lIw+aIYIlluVdZ2RZ1AJLUidmtXpiTAWe97LeDteJngM7ahqowNDvWNcbgLiKJ6oFT9D8PAapV/eLromGlk/cWRT33V1oYU4AX7TGy8UqSNOcP2uiiLov2vYYTT/2MpyVCj9us3hYZhs7dpdJlUOLeYucp8JmO/Qjg7I0TRZaGpQ3muuIvLY9HXmnu4puHnpqe+NLNzF/qLM/6nUlSUxZ2mPlmuJxFmUl7Jy8TSzQP4zj7J3TB8VAL/M8dSFrinZnZ6RLEm+Tp/0AmoAw3nCfV5ME1mHzb7xjcz9to3DJ1js7fJZLQ7rybvEKKYceyrpHrTfAa41cyyNmqFhAxoeICAJH0W1T8V5vR0BN3Wynpk9qa/WwgF53inbFwrPW3ubKGCgyZz2PHjkguaOXzTkkLeM28BeIS4ceAWxum6Fy2mTtjumBPoaE5677kI0+QGU8dB2ngbPExVOnNuUhgvr10SQeGmQsrWgOHjSL1xh+L+ohdL1CoBVYtBEzlN/y1vH7NAd8H+3wAOh4BwHNOoDIJE2jJWIhTUdSS/e8y3r+arHVmxRIwRaydZBRgVk6kV3iJbJOB3yt/Wq0l/X2u4y3rVuXH7DJxfIua7EKpDrMhrQBZmxjy+/kW7opCg8JMRnOQ0c3PD8nadnUdqT5fHmfW0gBOYatX+mQNR6uf/gAwMRu+wUOzXnxMNvrxekAsp0HjisqcV6q015PigptBbOEXB6lHFM7WJnylpQEOUhmH0tEAcrHcoqCvqjXxGLabGwConoc5ZEjmJ62cXtpxnJ+1IsqD0vpyEccvQQiteNnfu+Z5syb7y9/1Yj557awwKEAcKXdifXhSn02i2tvpI5D3qc+ZMneoFgdoCXA1yezzBtWtty2T20JROcG1lYufHpLK4/tTeIA6gF0BVgDgaiGufFYRSv0BpOue0BQcvZdjqF1WqE+A27tMk5NGu6NlgkgrvJqy5SRbQEsv4CuOjylAUoeCkQv9w6fB9mhDU2TtgK63QDUoR4aTFlh5bWYLDyADEYaaRSftuCNK61U2BDEhsRVD7o0Nk29SszCvLTUMwfe1zD1j33/0XetrZbvQgzh9mY3C0MVPWgJXrHyxtIPHV9kmRw/8ExPpKR850XWUrQvz/VHJbTD5FwpfGgiehudlSpveZHpMg7s6CS4nKVj3uujjNdFI7oe9568VxLLkU3rsboigXQivke3iu4b0va6gLdxPx52RBjEPQAAQABJREFUwhvmj8Dx0+6rATLXvL825NdGO5wsHRxCemzoJfjx+DEHavi1tomBTOodOh0pqyu2z+u1ehLF7THSIO5HE4ixotbg8AixzrZxgRrOO7yo22PYabotl7TBabQR2batMQ0NcbHD/UNGwfV6OWie9hgahWk+5QnGWxSf/t2nm9989OHyrBHzzy1vgUMB4PGg7Ald9OI4l9+Ovi3f6HuVWnwVPVe9JNb0VlfK7Us7+o5t6EhGK/oCJgCooVYBtvaoYJhamyQXADeAvCPPN4A44EkacGdoFrndoM034hwzOkibXt0SgDSBYXB51JbG8wZ8AVtkgxeuVkBXPaoE4FXbAXZ5o/EY5uZpmwoAWrPJETRFCu0L+nhYwMs2oJfXDLALcCWjveDkeQcNLELDo94RZ/dYAGf48upLgXZMy/P9ptV7776r/zeMEBTs24lYJymt3mkgmqYdyGy4TDzOFjqJ07SybVjqZCIVWYJ1WlJg7dIPsg5wXpfJmXSQh+7lUx0mEnV5m/1dUG8bZZ0XVcbKl+ne5q4seee15WMCnv7bD3Gbj5Wnx4OYHydpAnrT0K3H8x4j6+1LadC7ed7D5ZyxBzllaAt/XFdjDTGvaUEVHmg3pIDAMbkdvamep5zzSTufBGrhtbqUsfa5XFpQtDZE5f7wR/uxGWWDodso1Od6iAkeI0/wvMeJnvbAkOvSY1mrFzWUl0xqe0QIbVVeh2hR3OxtQl9HDhkrrh/Vua7zwpeT3v7ww+UFL5/jW9cChwLA2yuaHdX4rV3W2pmFRoBbc21owVc0eHl7R6jIAqaRPs/HHmVzvTEmcqFP4VbCmprP4+qD01X0lgXg4RaxHVjwqC2Yy0opy+FhC4wFcDvyskdWhxh6L0008TY2gxw80oBpvzcy8JWctmjTsDMgvKKPXccNQVAcPGFAM3jAoZ7gyRuw9of15gZD6QG4GVJHNgy148UaKKsNGigXsCMHmKvD5KFAxyIZ5pH1oS+BdTw2htFDH6BFamqdbKIV1HpYaB57dPiT6oT/FBbxjsQ7C+pyGp1y2g9HxW3Hghw0pxOjx/NKWtr0iWi8hNmVRThht6DkNNrrHR269wMxbzt8gstb2UBaojuJOlyWRqDbjg9G5MVkK9fKi5+2xery8rEsOvzgUlnIKfh6+9HhaSvqlSsDOHoZb4PLpnlPu640n+oEzPjjtSGeK/cDX87VQSFpmon4eYXu5VymBV5XJoFWzoU65dpjo0xUyHzykm6VtbwjfBS1bSgSvaiwgLBXTJzKKE2dZq8O3cu6LS2PTNTntobetjvqcDGjK5Py96TFb+Wtkvbn5LRXfE65H2opOXHLWiDtf6/bQY635NFpM+5mG+803Bo2TAxNw8X8ASg9fb8ScJN/qy0xGGYWIEHj01l4zJr21BZoAsVtbb0mINwIMgbGKs/XNtBjHrbSoS6BrwB8W9/CJB8AeVu6d5rRyii2B4AO5qBOHgbgE+NRC5wNGEkzD2zAzAeo22NhcdmOeKE9xMgw141nDsgGAMdjDkCMDHRqhRfyemuqpQfv2uykeqBTljpZjAYY4z3/1b88edfauPxB9NDRWqdFxhPc+Nz5CnTKMRkI+qWjAECgd3kIQXNV5AmuL+T2/0XG9PFjCcVp/fCd3lFhRSLPZQAoB7pWdyznMmnsaer2aqwc+YSGCqd7M1ze8olsKkea4G2yDLJLhffqRs47ZyujHwdfz8Pv1kUeuv916/GyHnOuCZfiF1djNhD1680kdp7TyPufF0hl0jLwu3kvs6RYCvaT8+NoYy8c5XGtrV26ti3mjrGEC8bYaR5Hstva9Xu+U3rXCM5I9HhZu08SutmIdooG2eVQYbQoa9eI5Fze+Im86D+ojzb8Leg53NoWOBQAnmkDbkCxN1gxz1W7AjXxk5Fm7W0NvjTbAQwd1Mz9lQtsgCMvGSAGxHsDfaVDYAQgWWGBYrOjOVt94so9avvWJd61vGT7BJbSeNMavRbQb9eAN3S+bUm7zJsUD1q/vy2CdOrP6oavYPPWiqEBzACrAzTbtLkMAA09/FFuZHlbwCUAZV4bHQHMAfYA7j211QGWhwHAmWPEo3bwZajcF6wBzO98bHzvXcern6JuQmhpSPuvd9jGjzLItZ0BaToHCJ3gJDu4Do9sSkfW8+j3P+TogKwTigIpmMJH1viWCYAEzQNpbx/khLVUD/LoWeIjnxBIJtkl8PN2tPISNFkvRD75oz63EYJWN7KvInCcbf1RT3vsnbphOy9Nmwcc73QGbrjX9msWtPS8kW6PB4Wd4PxuGcTQ5X8pH4W6VvccE2Vou3vnZleIBNHh8edtJNHKiG7BYxci77SYhmUh0s22qRxMhFzQy0OPabdxyoJNsKrFgGdqXI9xw4+VEx09fp0bLZHRPXFK88GPJ6ScvAUtcCgAvKoPSWuL4wZgnAlURmOBnQAHEDKQtOHkAIYAIn94y/zNBayAL+fCwFK9iQFYBEjANIC5QDF61KNCYE5awAxQ4dwSA+oBxMWLXrbpBdDVNvuTV40H7vUB3IC+gbfSBuiAMm1XzN/GhjzyyHPgHq24tx+Gtg3M40PDLpjroUE0a5vKu9cNSDOMDgiHIWmGyoM37vPO0L/5bf2fYuiZuq0DUCvS+7/tsMQnjYx7RshB8w5hqaB43dDtMLp8q1c/VqdlgoQnrX0ipd6e1+8ytIH2eIdnfDsTUa/KQ/OQ1pWm4Xs+lW+PNfKX2gKNgjFYeaW9PLzYFJOzvH68jMfedteTxq0uF45ML0PsMrDId2lOj0WX5CkLoDmoucwFbfDbNtSJijknbd2RTtO8efAJnk95gbPLc1mnU8iPxetZkomZVmaJmZSNPRZ1W1s7cm193YQ3VrGVMwVByFSQJ3T1RXpbRiJpG91eaXH40FHldFR7gOd0r458qysydd6+IBA+6eVyfOtZ4FAAeDYTUMn7LYotA1GAtBoK1BTqnmZ9BWYA9Giyolg7eisPj7TglaTASKCqPHIuDzgzzDsajwS0vH8bhp+tgJUJemYCcHizKwJZ1X1F4EwMKAK2AL3NM6sMNMpDH6nOAI4B9AFdA261ASAHPPlbVR6AdlAfSY6HAuLgVesWxfvWMDh5pqh58LChdCqDIFlS1G88A+swFB48d70OpWFnPGnkf/wvjX5Iq1p/uHtDe95jdBJ8+JmDcxCGzgIeZB2cSHtZMwRCMTidbJp2fjc2nVEJ6RTwkF3SDz8SOEL+PHjaY+joSvOk2yKxvPON1zIPKJvwu+XaupCJutPOMz0uL+ttdznP7xdTZj+5bru9rNeRlvF0Cr4up2u0uKSPtbtMq0eJ1uaRmMq4STjXnkYsTft1AI2057nGUl2Ucyay1jbJWNqYuz/wTA8/UbEnTSrSTMjTxPwREDYFIXY7wCKYWCoTyKG9sZypdR3wlUaPtU1pZ3neeEEsagsRNoBH8Bga5d32bifF67ofv6BFWetWIP/cchY4FADWRysFTpu1faBZJgVo+4OtphdBOIDuqN7e2hLQbtajid7hXR3N5/OtZriqkVjtaUWaP4CYP87MaLJl872BF0AegJ4ttKpaugHZ2SIA/ULD2HjeBvQRzOEbEFsZ3R/mceOZj8zzBiD7WsQF2FIfQ+fIIwcYksfj3Va+kceLDHktIDNgJ8ar5gEAYOUPkJb3ugCgGREIwKwy5nlLh4C4t9CDh2LqUqtr88y1mypz4Oj4zscmGnpuPsANHe9tqrbgNzV0v7FhuBxlXAY6aZelUyDNXzccRHc59JiuWNjrsHL6oV5vj7eB+ghtPhLIOz0kkjaL54CX6otFXNxi1wHP+a7bBdrjN+HQlrZcLLRUT9JGb4fLu5zrJk99TvcYfpp2+W7bnL6frPM8pqw/TBkt1utlNwTALGz04LYn9jSHm7aBPMFjl0tjeKkOKxDLeDlopE1Wwl7ebCO6t7FliObXErHZuS0kPUk6LdOmvTLpWWo8dA+eJo767NgjHZKxlKB95Imh0SZvs+dFNhnyaUCn04jtLxLah+KYj7KPzXpF3qQjNeItlD4cAK5Wa2GrbpxxXWnfCYDLwTikt5QXIOvrgf3BuJnPxgZutXmFY16vAHzMQ+ZcAFxNWQuI5blGrxk6Og0gBVqkV+wTlMHrpl544c/BPHjNlCUEXdwj8ngHAnEDT80JRzDEo0WOBwZ9TWKBp0reggAV3ZQhBqDhA959gae06/hDeTzYnh4MHNgdnG24nblsAT9z2mEoXIr134BaMcPxjz3S/2ltbm5Dz7F2i2hN6t0mrWs7VlriMvDpWDzsHoxTQoyM/aXCqQgFvbBiOigP+7XB2cTwia1zI538ocM6YhIxpLrpmL08Skg7DfGWF8u67pYneQ8kra6ox/RFppczcS8TY3htZ5ykKQrPYz++QNnlpWWd5zE8L+dy8Dzt+qHh+boseaq2P9qkNBt3MBTtpzA2rZWjDKHLD9Tw62VcLs1DS/Oe9tjLmI2pRH/WXsVm30BCrB1Cd9va8aJIf37sbcO9grRni/rtYEgTXK6b7uajvNlWZaxtsSxp9+yNL9m2Kq8HfQptO0nrz++5VMz1IU/wMqrmyS//YfMzgZp/byULpJfpdTuu+faFaW+4shgMNpqBhqMHM76vq9lMgclAwDo2j3gsoBsLODcVb6q72BTQyoNVHpDuq3zgFQJzPOWxgTo0ABnwpBygDZjztynPNAB3AD545AFmT9uwdvSWgwdem+dJ3Q7YeMR45eSJQUS8bsAWYKfuXfAGoEUXQDPf7eDdaPEXw/DkHYjRh8fsMgBv+APAd1oANxnk9PfXfujIj2hbwh/xm9pvaGJu4NhX2Ln1G5qM8SLTQawrb4WirKeJKWZ/iXLP04k42TolyXqbPN/G4nndSu52buiISjxGaVc29TitPDpIKBBT1o85LQs/LYucycMgKAPfy8K38sjFtCILxE5L5SO7PQ7P7yfjPGJ0EVwu5MKv88iRdpk0DQ+6A4PnLeZHwdu+pQe45G26wNSvXTsx57LO9HNJHZ6Gl8qR5g++01NZkdvgx5DKUtDzeLdmewgKboOWpgp8xyyTDWKh4tgQa0NMGzvqclFvQ9tYGMjwZ4VjWpEHb4fZXkTEWnElnA+tG6jPy3V5ad51oFzn81NaGf14ys/pm98ChwLA6726BninAlLAZjqcaP/icLlBmwKyAmV40Plj3nggb5g/wHumrR8xPyAOODpAQwteNDrGDRsPwOfPgX2u4Wd0411b/Yt6gRzlGBJmbhpgBZQBdsB0ulgxYIUWPG7mpxmehscW+cHjHfQn8tY3Gwfv4JkD4njZrLTWzSSQpj3IOKjjYdMWwNqGx+0Bgnyc5xbYAuDIIwP9P3/n2n3H16sPYAg6AP+jLZbmR2FPJyC6dQDeEXgsWX8yt3KxoMlCSMIenZGHbPsnmrWDOKEjSgcKzYJi81SVsbMaeS1Ikk8qXCqrMuT5cxGvC92knadk2w7vBE2GnyQgT+DRynQpHa62kDcmfJfrxM7fL/Yy+/Gc5nV5nthpXt7bT+xpl/cdsVyWmCby53qsnPKXrnipELc2XCZbOedZHI+ZtOlV7Py0qPOj+B4ZL0sZZP2PPO1O87ZNpgjQWw+ffCLkx+f1oaAFaJTuE9xOSywUuBL0ezoVivVyvXDfWLuirJ2TRDatI00nIpaE58fQ5el++NzTzzUnu/Scv3ktcCgAfHG+OeN7AROBm7Z/LwbakbHZGhsoB49YwCkeaeiAMnmAmT/Atik3BM4CUPH7cwAZMBzX49VYTmA2mWzaMDSnB16xKS9aXrb2xbBFWOiHZwAvYAMUSTM8PpurDQJB+ACzxwGoNyWzFeZsxYBW6aGAP/fQAWfKANbBIw/D46tHwxy0AzoyyAKswWuvbViehwDoAey7HnfQ+2ce6X1QHdH9VBT7AtRZsDw/+wTk6cDSm907DAcfKybBcBSKO3qW8so4gCJGGecTG88J5JO0yfNDEN31tPVCgxXLwCd4JwU9TaPDZZHzuqx45MFP/5AjoNv1W94KKZXIQ0/NirzXD89Dl9bNuxxxyiPtbUvp6TG5jOuA57LaiMWC5WNDOQzyZPkz7zjS+KrXxqYyMSDLnwcvQ97pLuOx85zvZVI+NA/QyXvsdGLXgUB6nF7e+Mpgd7eTxbGw60VR+9AWC7f6vBLokdfG6KFXTOieNJpnPJYuB19XiwrSRiezT3BZO0+R7zSuWWur6Clf2fXtWfF4FM/RLWCBeLte3yN54Ognm5U7ZxM+Ks/w77Y2B7CPkuumIn95sckn9/Thgc1yOuRj9BJUfqjlxT1dgb3xRJslz0t9eL7o1eEjuZORPrIgsVoLiGf2HYRZUe2Mm2rc1/7Ifa2S2ipHvYmge1OLUyYqK12jzXLUTJptpYeqY8HCqErbOg76elcXkFedUq89u7T4aVPpgcB4IMDu6xbhO8EMic/FH9dlsVXOZnyNSDceVtUHFgZDPTQs+rX8fX10oS9Zudf1psqXasPA5rW1tZXAd170JEunMlAdvKOlGWO54HPNbOugtO2XhgrVn/DtYHU3+vvrP7D67iNr1QfpB/jzm1dJC2mnDIG8h7YjEsFv8K58qtNlvDyx9z/W0SUMqkmqWqoXMetcory3KY3Tdjg9iu/RBZ+6rC1KyHxLMg6+Xt47NvJetuVRWMGOtVW6K2d16AcWIQVq8vvaKBoJXnpcLtuN0ZMG+C7j9G4eOjT0A75sikYg3walyULTw2QbXBe3F19B8jwCUU2gRf0pvZsm74Gy1EfseuB1085H1oPLQDPvQAQHUgANJR6TNhI/BI9JxnRLSvLGaxlWcrdsSve0N9DzxJGGLq6rFmyjDHQ/B5Zebl44hli1R1ZUP1FFemwXdL39vVFT/JdvOln+W5fP8c1vgUPZivLXfq1c/Px3a23V1pXeOW26sba6a8gpnUGpS1o7ME6n2rRW+fXVSXNOU8Gr+uzuxky0C1rCqet7qA09JG+3AuVW4wYYU41eyy+1zy6sis6KT+F4scG3DzbGxc5qU6zqKr+wJYgVbWjfOdDwtmTZ0RnPuKcl0vKGy+LKVqnd+8I90d8sxuVEHy3aFBBO8MwF3ALqNQHxdCyPW7A5L+pL083y6PqkkcNdzJUGcGmPBxaE4WkPVBbnYzDAAJvFXMPqGh6X16y6+1uqQ968YrxxecQlw98jYTOL0taPlX8NfXbwJDqh7RBEt8aHI1iSso5IFKxFOu00rFCkU4ji1OUxacrxl4Y0n4KUyyNrRTplXZe3wfWk6p3W1hcbY2VbYkik5ajQ88guATP5pKzr8uVxzkrLpMfVtWHaRk+nsR8felM6+ZSX8kl78DKe95iyDkzdtrfH7sIxdl0cD17wkbXA8HNMzmVikdaOxnNiEi+VFZ08fx5oi+e9XV7GY2Q9TcyfnnDbujkXRo802ujngbJL51syNgRNgVihHVOStzL8QCOkDSOPjoQMyWXdPm0bVNaKRx2mUmliRp2wNW3168n4pjD8kKdoPJ7TSv/ymx8qfz0RyclbyALd83/dDu3Dn2hWd2ZXJkMBoD7qY+1I07PphsBxtRHglDsC2ZlAEqC+YtgbmjkabAqUJrU+d1TtCDRHAmRiB/QZ4Kf55Zn0A7TE3QMUaBtAQ3eZofSGofFQLzyAvpxsVc3muJZXbMBfTkpVrVek1LZCembTrVBObdgwaNVDgYbYZ4MApkLUCkAWUBfTS5Om0BA59QTapGCofSh+gUAMRtOq79ks6NZTSzmecBtPiv/sHYMHHrin985jR6of0T6/7/QyxByodVSdI247ikTYRWKfYWU9nYgt0b0jgY9O64ikyNPWyURkMx5yUVmbh0BZ50UBy8c0RagrDd55GU1yS3kRu23x+pD3tKmnrBFDh2e8RB8y0LAPaQJt8Y40UNrOstUNneP3ulK5/Wjwnd4t53niVI50yuPDCzTUwdf1Ief2YZRpWyNE8LwsfAL5N5yQB21uZ6D5L1X78TstjZ1PTEDWHgBjISKXgf9ygpfzuC0rpX4MbSymH1srlyRcB/FSiO1saXsExOkchGUlZ/W1BXcTqcqlepWxfCqwW8xSOp7T+vvYmx4oT3dYOXuLWYBr4VDCez/TDO6cXT463eabttxC8iYFktsaal3Rt2ydljYuBegUmJlPXtPT+xUtKHF6Wo50l07eZYInrQ05BO6AeABiQBhQFlAq7AfiDsSA+AWB8LrawYMCoMx2m8a/gKcuABUID7QoDDreroan5Y1LrwB1onlrzSq3Xd8E0BaIW72xPVtXtvSlQS1WE33e39YW1iuLst6qpvOJgfajbx0dfcdbJ+88ttr7i+qM36mO1OaG0XEtYb+OqzWQFKT9RWhZ6HzQTR4+8t7Zuwx8p7XpRJnxvDB6+EMwCUaLxFQXIimvWzblmWyU75bbL08jAGeOiarRRfA4XLEhTzql75cOpZd/03LLnJDr8r1OuGkdgCYPBSnd+dDcZg7AJqgfl6Esab5nfefxwO3W7WXS2G2T0g5KuywxAXN62nnRxMZ3nssaMSnE4Vr7JWjkpDD01FZemdFRpDKp/t2THHgmH+W8bEuDrkB1PGRg27Qu0vZwipDS3hbqowwxwdoekv6rscDil7Ub/Kcfzl9Ccpvc8rFfD4dyoD/91EtH6yuDwVBv40y3w2WcpgEzhsUux5WaAO3Ro1q5qfcXAWka7UDt4NwFcX0iqNa3ACvn70zlKQ9DXSkou8fthqBu0u5NO50Yz3pyZFLPdgSs0bsO9ADelgY4BZaAOjqQcy8dvge87Q0BrkSKqY4PULYgAsBNHu8buelMYCsa3jXyIeBhh7oAdgN+tf2Hv3/9bSfW+9+uBWJ/0b1jOoA0dDuHlMfBe4eRlmsBMwqjo+Ur4Z2960r5XhbrQzfP1qwcKuuWtY4syqZ60O26rB7JmC7LhB+TbxvWaVennV3ZPXWZmxw6WngEP4aQ25s/iO7lPHa5a4m7Zcjz558dRMceO4jmbYanB9x9AzLoumM9ALELidSeX/ieSUzrovvGFCFcq3yQVltigjh9ELLPFUZmO7QcZa0OfmJltNePHZEUMF2/FUUeQixntESgy4Jv9iIhZjcN2UcAXKXrcLVO14PEGR3fr2oroV/JwIvlbq/g18OhHPUHP/nHmhg9OtYXjZqVkd3e+7ajC86AL54ywkePHileevFyuXo0DL6tCFwBaAdQQBsARnZNMvA876BMDH/jSlkB2D4X5uAOLwSeBNZMN3rdi3aQZagcOejpUHkK4oA3A9N42UFnAPQdgStD6s7z4XIfFge8j2jI2+e8Z6oDj5v5bdCYYXAb6tYQOR45wW3wrY/1jzz6Df3vxDvWmq93VlX5ACe+bQDpmKHj8E5Fqd1+Sfy2I1Ta5V0HeadRzvIkYljiIyt6Kr8f+HpZ4pavgrSjDeRR5kFpsui2Djim27pER954UpQeEypcDh0E8k4LlPCbdu6eTmMvC83TIbX3d79yXSmXSel4ru79eju9rchznOT9XF8NgF0/C7lO3Bntk5Sl3ngo7XVjef20dUpGRQ4M3o5uTAHTdWDJvQzqacso4/X6cbS8WNTo8WQ7z2xDpi0c09dA69bv9jbdXgF1u27ShMgT+bR2tP/Yow/nYeZgmNvzN71Urr8F9OLQR/9ecfRSc7HSxwqanegF05Bjx7RJgPLQL14M+TRGZj/QDt5xKc+0MFDugjceNmWhu7ftXjV0aFVdVj4UDo3ggO/g71419LEWOTPsHCSDx46XDbAPV4rmyqXwAADfwX6qOe41jZszbO5AefwOycZhdNeVetgO9PAcoEk7SJuXHIfM8b6RgcZirlZe4PyjT6y+7c476+8YD6vvU4f7TntaR1ESvOOmw/AO1mPESHvfYmnPdHjIGuA5vSMHH1KqO/XiuuBqRk51RAWuI9UDqy0vAZeBTqAe77DJp8e0Hx9ZQreOQH1tftP2eH3dOqHzB/h2ZWgbND8WmuzHzfHqIXEp7HcsRzXqtKplCJQjoMMDNNfpNI/3o+9HS+U9nepN64Of8ly+K+NCLmv1kukEP16eyJ1tNvSCV4vR5Qek2Mrrx4fw2zaI5ueg084L6iV+tekXv/5ont/tnJnbM9u5Pq6/EZ56qhl95dy5UY/LWKA7kjd8PjZjpL0p5qM7eqOVC8K3qmou1fVOx1MGqAHmNADMDtwO7NOdsgRoCe5xEzvQB47qTx4ESF++UFWALkC6reFrgNtBmNjLaSVYDXCTZ8jch86JUzCHBzinQ+OuA48bMMa7huZpQBvvfHWt0UJoFpztet9p2sF6oF0uGR7vArYDdRr/hW8fPXjygd47J+Pq24e94ju07vsBbw8H5wDmnY3FontHZh29EyPdsy6DPmg8oizRRHRZZFLgtXzKjGkHYLLooo0ulrbF63EeQn4spKG7zJ66ROi2BRmCd6whF35TWpo+SD4t+/XSrs9jl2ezDTr+ls7xiYk9/Ly1xxtpzAEDwH7cbVn4FFKAh9677ghxoAad2OxaQ3peoupWCXpamtJtXkRvm9eTAmUr58wYL9GV8eNyusdejDrseGEQVC/tsazzoEPoNhS602Khfcshp2AqyuKCzsUva1eBPL8bzJJ/owX8UjpUg7Ai+tLivL0Sta43dLe2bCC0mKyUJWA8AVAFltpKUtfzHUXv2IVqU/n18rh20brQKwTAC3WZDuLwvExRHJcnfcEAmYNsATyC9sobynJ755j0XtDqqapKQZk0ZdzTduCGFgKIfmkJ0CvpcC8bbxzQd2+bMu6RO7h67F44oO4AHurY9ajJ91f0BvS2vWls3rQPk7sej70s+dSzvhLHrBnuZtgbOYbIAWuA/yf+yvg71o/1vk/zit+hs/CNaSeOMBeM07BOsBBadumknZ7GnjZ+/LEGRPkuv81LyIGXYgTKtfyY9vwSL5a1vtIYe8v68aCX4OCbgpJ36kFi7+/V+AfxDqKn2veTsfd9BcDtMamAHztlPc3hYihiZB2AIROQ6+r3PB4wnrDpCOL2a3UmeZL70ZwO09vjcsSEVLfzAmf3F7rzXN7zSJEm+LFYWj82V0xGoSvj7TFey5Sc0tThJPhLhC4TQdGsbhdFh2hR12k9QPzqIw+WvyJ2DtkCeyywdK3t4V4nwuc/3/R+6+kX7d2bF1/S07fmoDwGjHcExKPt442wtxhvvahdqHYBmia6x3xc6QDSoeGU2wVi0SRwXsJOA4wX2hZzZ7MsKUseoG9BOqhpf31I3Ank3QMHpNl2EhB3vnvQR9brGi/dgdz5xAAyfHQ5UDtIw/dhctJpgL6hoW33luG5Rw4oM9/N0LcPecPHE0+HzlN55PCuHYiZx/7ebxs9cPKBwbcfWWvep01AlsAYkPLOGt2AWOyPrFMyUEs6qLTTI63/bXDAc8IeXWKYqlgoBUzXuyeOyqwuryzWm8o6C/El2Vi+G/kxe+z8bh56SkvTXuZaZbryWohnut1u6AZcsRHBjy+1E3TyvC9PQIZyHsy+nonxcY0uaV8YC/vxU/GD+EkVJp7aG8J+5bq0VEdaPqV7W/blJ0SSaTm3ldnC5STQyiQ0qyPJexI68tiXnkn/Ty/0GlEeZjaL5Z+rWKC9zq4ic11YvJbUf+6F0WTVu427i82NF6x9Pc12bWzqC38TveM7Lssr+gohjfI0/LG+cCjoFvVFay8AvjoJQB142spiXJUbz9TNXXfeVWxtnTNgx4veGp8ri3OaUztWVYveugD5fGsXwBqFDszElwSyegeoDkC+LsC+UOKFM4Qe4vVic+e8eeGUJSyBt2QBecS3BaQ2vC592nJET+6XzAu3Qvph6Hw4CovU8MDxsI+sHxFgX2rbiKwvPvNy3dg97JTuAOxD5AyjA/6ANEPkzv/Qj69+ZGVY/SxW51uytJQOn8CJsM48piH4GcRyDDubKIIKzgu5UNY7QWLEODBiyytheiAopOXTcgfyYMSyrs8r8PpMRDKuj3wa0vpTuqed342dT+w8p3XzTr9aTBnA10PaXrPLVWxFGeS7c8Cua7+YugBhzOfnpCsHnXA1mSBxdR2U3y+gn794uS21w9t0tTZ0PWGzWSxg5VWxnwvrLWJDbPetyLN2QfeKFKe2j+Q8zGyGyj8vxwKtt/ZyCr0esp99Xznr3XFi9vzz8mI3qhLwfcO9J+o33DvXlw4WNeALONeVd/26KZUGhOEDyle2XtAf8V0G1rQT8A1l7ioW5+6QnrtMDh7ga4At8CUMp/MFHjbD4P3t+YJ4cbGuLz2nz94rDfgS93cW4h2vAevz8r8Z8mYInBivd9ErajzqxcV1o6HjqAA25NcbgJr8Of0FnYI0APyiXhqGJh32J31HpJe0D43X4l+Mk97IQufvwuW6xpP24W9igJqYMl97kQVhIU1saQEuoMuxO/hCZ5jbV4oDznquR8Q6Kjrlkd4XHY8CGLAQiGAdkiRTgASoHRhaGZMO8pRJOzL6OAJxyiONHv68D0R3KmMF9/tBmUIq63PRsNCX8pClQ04DfA9dHnT43ol73uUPir3MQXzo3boYeobmdbV86o/y3tb0PHgdziMfHk2dszdGN96yzn+wURTplktM04LwXm37U9zMqQ4kuaT82ODxl8rasUZ62oFBT2WNF4Vpt9VDXsGPw+shhs/NAPi6rYymHytLQRcirSDRs7L1x4aL4uFHHypPPZzf4Q2Gyb/XZIH0+r2mAq+n0D/8gEZkFzOB7ol6dPSEfK3nimefYyfkeQ34Xtq42+4D0u4pP/fCwnhvfOsJfXL3hKUnq8+Lf0KguBDALGoAva6er9nppyheKOCNVmcLvSBsfNJ42A7ugDgyDHW75w0N8EUDoI4H7WANUENn0RgyG8+8aO0cj0PMXHYoe05fWdLXjgTIDJUjT8wwOCC7qT/0GF+gCqg7EBOf0yI0ABvwHk4Xso9e2lSAR7z9NekUHxAFlJtL5w2g4R05BmQFWRazGV96oA3GiwU6AHDy8LTT9nwwqRfoUmdl+uF5x0SHxUIgeckaiZBNVpTXLL53bA6QlCEACK4EHf4XuLs8lyX2ztHrhIYOz7d80Rxw4FG3mtfWYXXHyq3eqEeRefLQXBc010/a6R67LHmneZk0D43QpXXzQWrvL3LeDtKAr3/lKJyl3TLx0Ezeyu2yllOxzUu6JUHeA+kka6v0sZ/TvC7PU85p3XQqcxDPZdIYfWZnxU6nPOlu3i5Y0a1MwkcupSFnxykGPL8eqcftbHWK6XmWVCLLHz/oc4Kuc14jeuLND5YZeLFLDq/IAjcUAOvqbj7/yfu3X9rRmqrimeLixqK576Gdelrs1Jc26mb16DPN2l1bi0XvbssverN6vHa3AGxW//EzGnIWHznyRfF8AYiTB9DXjt7dPPvCc/XlK9x6zxd42pc2ioaYcMcJQPTuAkAH8NeOaqXx6h2LQA8yALSDNOAO1T1u8gA5Q9942QAunnh/+/jisrxpwBzgBpzH4zvsD3BnURnD38gHr7mu4QPqzGE35qULOAWK1AconyehwDB3fxUgFl1gCojiFQPOgDTgTgwPGeimJ3rgDItvRBrgDfCSF9tAnTx/9pUIFCQh7bQhAw54xUe0oGtNs/mTCMi02js0L57mOSjrDO3ogqx1eKJ72chq867HQb7VFwVpm/NMV6LbyxK35TppeH58LuMxdNL+h6wHl/E8sdO6ccpzea9zP95A9u3SU52kvW0csx13KLL8iy1of0qlrPL8pToRwY58N9jlrR4YMVDngXW5kMsmefS5TshXSztvvzJ0YNC9/a6r2ybyrgeZttFi+EuCbj/j64djNXsgQ1622NSX0i7o4zHPv5jf4XU75fiVW8BWHr/y4q99yVKYo6t++u6PXdInCibVea0kPnLHyeZOjcVePF+UL13W5/2KZ8r7Hrq/funy7zfT4my5WvR1fzxTnL80b04+dH9z8fwzJcB730Pcc4vi7HNnm2Exqu576F7pEO9Sr7zrPn3jSGVWj96vB1mCEFzhrvvutvjKpec1H3y3brmZPPD7uf8UntfQeKWtIwHfyuaigycOilPueQNyhs+vbOlzi/LEg/wJxS8IkFlgxm3+ogE3aQ2bS9f/z97bBmt2Zfdd57n9/qJudWs0erE804pVQyKZzJgxlF2JPT2UA4FQNTaJBhcBPK5KCooieKhQRYIh0hQpDB8SVwFxFXwZmzH+YAHBhqTKxMVoTIoiBtlysGTPWLFaGrkljaR+f+977+H/W2v/97Oec5/bamlamu6+d3ffs9de679e9j5n7332Pud5Hg10K/fr88dvx5fiK56RN7p3DkfWLg+neL4dGNa7l+WXyZnBZM/lj8wunnp73Hl0lqtpDGk+Z0J3mk/WWmE35h5tnet1tHgz/JK+GziSZl1W3oMm/St7D49+hs1LZjv0CbCGWppNB674cghtVbNdPWoi5rkx25n8Ek/etqQZjHrA50wtlCWjkq3h54NhiQB8TypEo3RGEsaELRmzv2zROXhaB3BTHmjrT2WULZ/KUrJ4vBGmyqDjua8bQma6HN6SOJe1g72jSyrmktGO5juHzc9z7tXNlV8vdJuGigoL5WaHrPKxR9k58uqD8jRVfWTsrkTdihE6hu0YX8uGmhc+SiHkVsRWkYENkQ6XdBPiGxFfA2Fr+7DdAt9GC9xmK+BWE03Czzz9xLVjw7FV/a2/cWoYmXgPn2Nl/NJw+JFH1oZXhvX7HnxsvOfoqr4b+ZF1/o59/BjfChX0nqMX1068cmLQ9ybH5MUqGhvgoE+fy69KPnwEHo9+Hhmg+Tt97oRW2g/IF+mRWFmzHc6EvOfQ1VhVk7NSztW2JhY99/XKHH7KwN+vFfsQejzPPnOZre/cNnfuSZxyPut+M1bfbJd7pb2+8pF4zs0qmqhYee85QHto9alVNjlYXjJjZQ2OP7a5/Tyb59b8sXXOijsmXOlVGvza2VPrma+vX/xWrLDLEJWDlCco/JKmA1dyc9DmqxIPaJv63nv0x5c8iK5fnwiWk+SBjdyTiB1bZru1XPGMmOjyBz/+pOSB1jzirTHDJy3jpWQuA2O8ZbVcactrvky/8tB3HOwsmK42skILnB4T+KpD3UnOg66FkG5+IB5+2WtZotluZAoZf615e44t86CdlvEs69eEQBVn2nFQjk6vHLr6x5Z5C23UAvXzX+rMDeMF1ZtfbLuomxD03u3cYn87bbfAzbbA7TkBt+iffnq2+vjjw9oTjw/DG6deHAfl9516bDx5ehhPPjSML7z4opCPiSeZJmZWxIN49z2Y/fPYcCn64bHHj62zih7+4KWwvPuhY2vHHh/WXzv3yBqTMrpMunqfQjaGmNSh4WkFrr9VrbSZtE9ogn5k3HP0oZjwDhxak0wr6Njyfi0mcFbZ8A8cekhYbKrznnt9hh7Psw8dWInVOfzcLs/tdGj+eI6d9OvxnJuJnEmbLXFkTMRM1PBZaX/sez6iWN4arg5HV5nIj97/kZjEwYBdG45GGzBh8xw8X1T7SMTFBM1qmm1zaCbwmMTbBO6JnFjrYOUJwoMRuWlwptGbJp5lslV9WBPxR7SkZ0JmdaXvq+4pguslDaYeTcXrk2uTh2/REZ8UPUgjdlzGuFxl0DWBcap1rvXaDGM9cuuSm7a86hs75cFn8l2YgGtszRh6/NkHkKmtojbHVWazZRutGJnj51eU+N3gm0nMZU4RjwvKLbMvh+Gy5VYJ/yqAM20MuXnGO68YeIFtOeUelwThW4zAKL+uHnVOX5hzRrtv8etRKChN2zW5d+7x698cn/r9E+Pf/for45d/7+Xx2J1bkzs38ttuC3ralJ//vF5y1tzx9Je+tWN4UTOw0o9olap5dnb6hcfX73uCfvO4Ptaj/LnnhpMAHhqGh089FsM2/BeEPXLyufXh058ehucke/jF2cnnLo9PPLxPHz96fHxBvwL8xHBtPHnt8fHhU7Lz+GODJnJdkfKn/++8sUrfHM6f2qktcE3ymvSZlJnU73lHk/ewc7h4dudMK2n6tUbNR8bzp07M2D4/cui1Yc9RJvqX5GWnVsk7Z3uOXlk/eM9j+gzya8Kc0Lb5oG1zttFzsmYCZ8LmJgD8RW2Zn7048Axcq1z41zWR79IW+dW1sxdf0xb5DtVVs7veHz138XVi0GT+kKJ6a4WXyVgP8AKbJuyY5s5f4CW1IbbHmciP3q9tdT0j1xa55G/FNvoFbbXv3a9nuQfvZ+sx2pL4nOpgxADmsnNwlW+9mrOlyPZqbLHKFyuOq3rrlo/K8FcnXvTq5EoZX/YXNEwSLdCyaNQsLmAb64aZbU9Bm9ULfAzmUqi6lbYt23AOv9KU2SUgWZ9q2UfwWj2rXtS3nI8w0A4NvjRGbExTtYuM55+Hdb4C24xFTBNFeJizP8TTsuuEjOTyVDfqK7ljsR3nOIEmVX+VnsqsO9Wjftd0o8EjE6faLpXmRvJOTr//6vhV9erjNF60+Y7hmOrz2Tu5Tndi7GXdcRuHry3pp5/+rIbnYf2FF4bxmWcy1ic0+VKm9PDrw/jww58eT5/+w/XTv54TBjL4T0jvG984PzJBD5qDNauugz158rJ0WUW3xAR+8rmwd/KhxyUX/eKgr798TNvg10ZWztBXf3dY1y8SiT+sv3HftZiIH3z0EWFyJc6KGjkTdG6Bv6RVubfLc0v8xCvq6NoOZwv9nfNso1+JrfOHH39oFT7b5/BZYedKO1ff+az6EU3M19dzkn5kYNV9bXho/e2LD6yx8s4V+GtaMa9qNf26VugPaFX+2si2OS+k7TvIi2q5Pb5Ta09W3LTA6vB6e/tcE69W06y4L1x6M2RuIg9C5KZjkFR5mqb8qmOsbVBmIuYFLlbGD+pZ9tFDWi3rGTITtQdocNBMzgu8xu/yFjUZOP6qL3CkZTzzLSNf8NVsh4HJoeKsP7VH2TjnlcezVj7q1WcWhCVZx2HUMrTLRSVIn6Iqx9e0fo4bHLT/VtUDr/BCVnNs/7aLE9OWOQaXnZtfdcwzptqKWBoAPhjLrVfLla7yqS7XEc+4T2ubmZzJ1/Ulx6/bwTQ5g9Gdmv7g1fFnVbXjxB/fJ65cb94c/8bL46fgbacPrwWWXacfnvdvy9PTGjqe0sQck/BMk7G6xZdk8alBE6/q9czw5JNPDj/3c8/O7r//LcmeHN56C/q46DaDi0diIn92eFZX5PEoa+KdMZE/8cSTvX2effbZ4ROfuGfGxA32Ew8dnzG5ays8MNCazFdeCAta+WoCb6RW3Zr4mflj8udm4cWZcWAePPr4jMmbnMn7DW2zwz8wnFhhgoZm1Y2MVTi8zI/FSnsYjkl2Qn+suHMlDc0qvfKY5O/TypsX0VhVs61e8TzvXkyvRfGvf+GRn9ZHjH6agceJwYlUeZQ9aEHXZL7zKjN9I9llrUzYDrzSVscxAkvR/mtewgzTyCy3r2l+I99gp/Jpudq7kaziNqO5EWHr2St+mpo6uQ6b5hhslZ+2QYjEjJfgELbzB/9dU8FTt3v1Yh75ZvW06WUxvKuvAqh2oDezV2XWKWZCr/Kxw80EK17ym0qlDcCvz4bP/tA/rWHjDkvfeHX8gs7blwmb68jnsOU/uf21mR/uCdUkdqemp3Xvyso4VsSxRfrUU0+NTz2lFa8m41/+5SfXtU09Hj9+fB0a3rPPHo/NJU2suvSeHLSSlt4zg2ysffWpkMUKW5Ps2jPPPBm0Wkf5M2GHyVfPpMf7Xzg+nj4yrEMz8WpLfP3kSYa0x9efGB5f1d86/JiUPflq7/vh159NnuRM0FqZD0dOPj4y+R7Ravzq7z4Xq+0jJ1UHbX2z4ubsfC+rbq22r/7uY7FiZjXOc22edTMZH1OMrLjheSVN7smbl9YoY4uVNxMzq+ZcoecLbPDymfcJtQ1vlJ8YX/umthxjKzw7K/okd9os5REeyZMDZfOMdzmRG48eEDZKtCLUpMRz4wf0Wa2H78vVMc+ObRsd+7b+dJUMH/yyOKa6YFkdOi2TW+bcdm9UD2M3y/3cF3lr0phAsDmNYRkPJUEjOZ5WDINh04a7YE4sFRUmPrkRgjWNx1bsn3JRDTFl/wVjycFxY2fBlhQtsw1yEqcK2nhyy0RG4oaGRxznzuffTU++aMsYvm1zZ5q8445a8T4V9VBFYvdDNWCHiXqJf+yOq9AdHvCdeh2VZufL5gYmUSZjpfwSOWgNECMXm17mAqMPyYZsHR5lXXKaqMf1L33pS+Lk5K2PQWmy1lcmK+WqehiYwL/0pdzu1gTPxD574Zlh1tbRoyZo4NrWZmKPxKStVfmT2hL/dFudfzpsMpkH4vEnNRk/rhW1Sicv67m0VtZaZR9X+QW9ZDb8+nMr8LTyXXuOFbmeVx8ZmKT1LVt6ln3y15/TI20tqU89ltvmPM9WYqubXfV3jg4zaCZ3Xlp7+MHHhnf+z5dmx+4b1t85ujp74ZUXNck/rufbL4XePfopxIjrD5h+L62nTP1Sz4p1DFlrtxh4TYeODgzG5nlg3iy3zjS3/pRPGZntMUnxJjV/8Pi2Jj4m4ufH4P382DrwnMyzTeeWO7eNKjdtG8aSV16ljbHuZmU/E7ctGp2TE41vpZYvs4+o8is9Ud+0aJ9hS4dl/tmqZYu83qBMcY6522vnz2XLp3rh18ISZegVfiEDFfJJvHHHKR7twNY5Nw7eVSimb56Unanfm1f+ziNfem38gqI45jYnjxNMrvR+rpfU3D6+3xaIc/B+le9ePX09c+tpDJokynxG+emnxxVW2eZbxgQdQB004a+D85Y4+bPPfmbl+PGvaWJ+KiZkJmhW4aQ20TNBs+oWnwn9SW2hDwtb6MJJ9qxkmrNjC/xZTf7Hx7eeeHaW2+fPavv9+HjkyKDJu44VL67wvJsJne31yLV1zgqdLfTT2hJnBR6TvPI93/vpFVbXvGX+4NHds6d/4rH/WC7/RjhecvDE4nwJ5Nti0fb1fHhibKcobFvOi1xMyHx8pP70Xg3gvcS5GdZ857Y/LcOvvEpbh5zJjG8Vc4q6Ue/GoM5V122ywBMWvi9E63abYrAFXeXo48TYKkOviVPHBfF36tb9nntALKYCWRBUP455M6wVp3LKDsjxmmUd58hZ4V7TtcBn0OP6gCkjvlZqTNareZU7logBM9qC/sE7bAv6D/9ofFmhH4trxBVpFYanh1c///Hvmv1kbYNt+oNtAXWj7bSxBfQFVJML1OWcXK3Bihpsrro7VyttVtLq6iFn5a0V+Zq2wAXZuMJGT5O6372U8pOs6Gea/wY9s9YE/aXYamcC1iJZE/lxvWj2TPxUI5P0M88cH/Uat7rQ15jMVzQJazU+zNgizxfWHg/b/BLUE09o/02JyRc5q+WHBz2vfphcZR30RR5rfJmHJuXZfdouX9WPPO3UDOE2QN+DWKXNA2caeS2b3iwH72SMbfWyAS23nJzVMV+NyTdxkVgVX9CK7apWP3z1irEpff9H23FuS5SJ02kzeeWD3116Yshow25k3oZuA0RTP8aTEwJ/5gWtQ+iYKTnJeLNdxgB6AEKmg/0zufEXn+cG05J1A2+m8lpf01OM4RErOmYoN2+B2eQVB4u4WPHysSnL2F1QhwyGbREH9Yn9MTPJgaGoP+vDa6JCwL0z0sta/aoux6K+vSLz2OGrfbZfwpo3yYdCLTkVH4rfLeokJ+TFysfkvcDywADTgxUdhKGibaMPrLhZiX/+88NKW0EziY9eiZuer6iZqF/URJ4vqVknV+LYnq/GUweeJuEfGVZ+5seH/0Tk3yCGGo9pcFVGebOU9ZjbAVd1K40MH/yZz4BYy2DYVqR5zGe1CM46gRFvVX9sQ/JCV18VIVSq2OQs572bbJkd65AvkzOJ+SNHYKLOEE6qzHTrNDBUUsk23Q7wmghyIXn3YIH5Pgus2vmVLac4B61Qacvfa44NTix1beRCvUIugevKTRZ/m9URnHWwNy3Dew/pjloBv/LG+LLa8Rj1ow3iehJR2wPZeGU48uj2D0rQFB9KYttzO31oLZDPqxfdwVv8Y6vbPOgsp1aW85k3A+8zz8zWmGy1Yg4cK3RPvuRMtDyL5jm2MDFJe/LFInxeOIOn1TJjUiRW3fD+u387PnERfA+EAEwTg8umk6MaNJlz46xr3LRsPrl1Kwaz07Kx8NHhzzQyEl/2cY8+5nS/Pub0EC9y6W3e+p3VYOwPuvqwzPIqM886tWw9cqcqh66TL5h+EprChrIY1T+0J2iwxtNOy5L9O1+GWcYDbx1yJjomvHdLm8WBHrJlcvMW6jnBRl11YLXLD4TxbHqzyde+yJ3sw+Wau56Vd6fSL78+fkGxH4uXrVqDc/PkMixo0sre4YtJbR8/jBa40TX4Yfjf9vGBtoBX3M5xtnHF7RAY7HKyr3i90HV2fFqYp4yrOQNV6s1z5HXgrHjT1puWp3zsVPsqLtpG3ozYZ+iIx8Vd8ZYDNwYa0DVtW/LHCpnVsdM0nnfjW34zObZ57kvuFDG2Ng1eq59jB8skU8vQnoDRKeZ629j+sgnqZuroGO3X9hjIeRZMjjP935CIZxm/Am+EqTLT3mYmf7fk+jk33mXn5t8oL9g7ZgX86hv60o3ZcJyTEPGrgpxHJl3OS7SpT9BsOLN2aXj00e1V8I0ug1smo9tsp7u2Bbzidk5F56vrKT1faVf8YuPQgflblsrgFOKKqzTCOpBXPfjGGrNBLn2HwLgBzuMHtt8tMVlVPDQvFe3Xx5r48o/79VGnQwfyKzP5xiPHY7s1HvPIp7gqW0b7TeKqV+OyzrJ2QOY4os0MVo4N/xV2kOj4D4ZtVBw8J2OjjUtwxjChswLFYRGHOmb4M7+YXWiriCE08lBxhR0kN0cXL+q5vr4qksnX8SHkJsBxUa6y8OFAECq5XbOUx6k+XPOW2ai6tyP9zdfH44r7eJyL1rDUwyveYOkAr/Hv3XFg+c327Vi/Oz2m7Qn4Tj+DH3L8HojprKQY/EV7MIM/5SVy49Gd3viNiLRl2x4/yU1PdcAiI7zNMI696rbqxCDEtwPFTytqu/qoVnd8/pgyL3jdbLKPaW59tp3xQ3L9oCPuEnhf2bZ2jfpJjt2qh+402XflWx+ebZD7z1jLKKNjOblTbGOqDrzsVH/lCgh/VMNVCXuNr2wh9rAPc5NEG7DVfU5f7cqPQuDPcdT6eHVfZctMIjdmmlc8tkmuv3PrpPT2Pq7sGH6CeH1zAs25mZZdJ+qoU/rFb741Hr+9a3Z3RKdhYDttt8DNt0DtqGhR9sBE7lRp86Z5xSyjzbMPRnMGj+5GRMc0vrHGTAdlYrAO9DQhm8p5Q5nf48Um9mK7WpMAH3ky1n6xV2nbB2c+gx+rX2zBq8lxmxc6FIrAdmgMfqO2iBbaB5+xzajcGPuzDWKpyXLzlpWnPPywCj6gGxb8dF+FdjtNZY6j8309SZf2ZZXLhOu2Aj/177LbeBq7fbuuLtuWy5bDN6/SyM23j9s5f/30qG/mGb6g6sR1kYd5xAtb0GBoW+WcC+2Bffnl0+P3PXpkdmausU3d6haYdL9bbX7b3t3WAgxAdRAyTU4HXpY8iFX5lK7lasO68GJgKD4oe1CJOCRzPIhI6Fcbye1qYXSqQ7nyotwUGYR5bsvLXEe0Oj6knHJ8p26JzfVBt9LWd2xTP46PvMuioimBrPwiCgBl15lwwBpD2TLAjquEDbsnyxmoq54B1kOu3+aMCdMy8oilMhqNnmPqdWkyyvwA5kWtdFnt8jleeI6lmpvGRBxOFT/FuWw8ZdPoY4aybRgfsoa9I1Yua8Nx6uG61Nx0r2OrN3VssmP7Vre3ommPDzJtT8AfZOvehbZ7h2WUUqqD07KBErn55NZJKo/mT3nWNR+XfUu2j+CWKjevspbwwq4xrR4uYgP5smQ+8TrmeHasz5ajlUEAAEAASURBVBwzIfPHW9V+q9l4bJnmKzU3W0kRanUNbb3IAfCnZD6D5TRFbMTYBLbj8gb8lKGy7SNCz+WwBbMlysj5u9qeBSNyWFOfxoNxwjYxX9dky/Nd/pjQnWzrZspgK96082rDsYVMB3L+4PMXfOXThKyENxXfNmW160/1SlA//lp0C+dTTL/r0PkAV4YvvnV6eyv6gzyhd8SN3AfZANu231sLeOJxjjY0HZe80pbVfEpTJtletZOSPDLoLSQGiOIXGZiKs03ngakAMTyhGxM2Jhj0SMZAe6CCjm1uxcPEukd//JgC2Ng+1WqOX9gBw7Zz/Rm7ag87C0n6EVuLBSyk/bq8oINcf+CaWhfbF3JsuN7GG0iZBL7TwVgsV5nPGc+B+eKTPXpeXv1PfYSDdsAPPwHolS5s4203eJ1pxZYrsy/nQPnjUOvRWIm3PTHR82uHQRfZgg4FpbCd5G17PK3t52vj8ClXpecieh2pC2Uxop0AwcsscLpOflbF72us7ewWt8D2CvgWN+jdbI7OOk3uuOQkd2jT1iE3bRn5NFU7VQa/uQi2cT0XF7qGWGmUrO8cHpgaV/CKItip3D7Bmu45TCXKTLZsT/PNXPx5ZWx5bZOpPoFVeehwUDK20g454pXAMVPmjwQPuk6+5htP2TasZx7lKS9W4GLin786kaJHQqfGB49t5qv63O4FfTFbfHmGQS1GMCiih4g6kzvZHjmxe0uV3DjLenDCWmbC9YZvWW3f8CdDYQtfwdALeS2/XTOt0H/UMbtt3E47WiUomxe0KsNNpCsb51bfjvWtt8cv3K71vNPj2p6A7/Qz+CHGXwcmOizJeZY0iGkUM6/ioadl60zzirOsDQYu9jwGDgYScfjzIArAEw10JGJoZGAnMVlY/UNjB/w0dZyEVb7BrxRnrafZL3Gj322AmThYkAtLfBUP3du66AMFa3vkpmnHOiBH+4FX6nwKBWedmqNHORK5/myLFe00ERMwtpYv69kuf7xkFUwJwndT6rabzZA1DBDs2FcUVK7tEnEBUmpZ0iqEXhiYx28eevaFovkB56BkXpZu36PC/dxCHcRw3ahDr2urU5R1jVLNXkcVoAe9SX371vTOjmx7Ar6zz993PPo6SURnbRH1TlwirPLCzk5eGRO6+rDIPOcx6bUBgzED/oaEoCWLGXhMI1qmR9zGWO7cOpaH+VIA5z9kyybnsBGKOQAGaRvE7D9IaCVsBm0cvJDkAdpl0zXmZqZr0A5O2K1l+PZbMZ1G7oLy+A5mbUeT4OOXlTGf3eVtaVa/Tsirbi1v4ItReazWjCe+oBtgA938BL/4rGXX0TxihCaFfRWMud2XwGry2H6OeFuFXAcq1fmtbq4jOeceFV4sbC8XHteWtr4/bjvd6hbYnoBvdYtuIXsejJx7gCevtJvEOMrQ/gNbZcY7RybIDVPoN79g7d9KUV5iJFiNPxXbRsTXDJlnuxtyGdlQlzagTXWNwy8DHnnEoEPkGG9M6zp3fYHcKGHXKQZWYqnMJrRdY6dl8zfLbdM5Ey0fkSK/pJeqWBVj873YtS18QqNbectieTf7m+lXvuma267zZb5vF963To+f0uOPe+MGRe3mCZX6xF9rT/ix5axyx3JT0/iuK7i1HcPx26V+d1Mc2xPw3XQ2P6C6uHPaPB2UzsmfafJpcge2LF5WaiDrG1NtAel80Ru2gOV3WarspTFXpRa//SBynM6DV3Qq1uwpry38QhwytQtNQ2zYte2pnu2Rg611scy6Lhu3pOnnfgSeyu17as923y1HDxvk/qs68DjXvM1cvyoS/ntJ0zjRn/KwV2MwXX2ZrnmlN4vJvhbkrc4LvNussGvH2jFi9+RKeLW+pi137mogh+c3o2MCH4djlm/nt64Fbvd3CW5dTbctve8WqBPn1IgHKefI6cC1XHUsc15l1iHfIJdNz0pMPNOEDgMFkzW0bRk31dlQLgzrFpZd94EMu+FLeQktaSsiULI90y5Pc9tB3bR1ag4dNyUCYcPu4FsP/oY2lNw+kZEqxryK2cxOaqc968EzHtr8yoNPsgy6yiuNzAk+qeotKweoHKZ47DC52I9zqxhPXmW9LCD8aGgr3Xb5jlj9EpYn13pdsK3cmrPLwbruQevga6yBt7egaZhbnLYn4FvcoHejOTpxnYRjANqkon2gagM82Io3Te4Ob94mJnOsayMGWOtaLwYKKZNvlsB6ggZjXeMdd5QZfLWC86BlTNUxvaDX7AZPNB9tcUzgXd+pTvfTiMga3nr2RywSZWwQk9Rl8LGRWUfRBtmg8zaAF3rISiLOiBk7nrSQi+bHY10fWFPacfdgwQQwsSFXeeq3To5Vt6mGkWob/ZC12B2v+U3c4+sTEnjqRd50wdo2ubHmNZXg+7yic7slvjG17sRQx6iD+D5P5hF7nH9hqJ/7Uucj53xPGxTAdvq2W2B7Av62m/DuN1AnX2rrTgxNx54md27jXAZX6WW6tmWZB47qptroeBPKQ6cNOoXdJ0MPJtVODKh20nIXw4YK4OsAxYiFr+pvapNBLVInFvG2hxg7xBa5yyUXGQksA2zo1FyMiCdQYapRc2ydbIjVqZAL5zfkTdjxrS2QdV6jXf/Ol+6C7TA414vBn3orLdNNScqm8nizvOlaP/D4xGmR2c5CXgNrAsftHDY0f5hbotI0b5+Md9ziRquFFLEr+FonRLX9ol7Us+HA0u+x0/S2v5KyteetzLi32U7bLXBTLeAOHIO8Oiq5eRiA9uRh2vmNHNiGdadYuVlIctNTTGAMEp2zGEdhd9L2FvxN6tLBE8IDkmNG7DpGe7Ry8PsBYt42lXbcPaZAps1G5qRqQLFjVs9F2J51XTamxg2mlittmXnObddyl5HzV9v0RjqWVXy0nwOWYWPsYyqvusY4x8xUH9kynnVulNvX+9W/ke1bLpsNJ4jTf9iPVax45JVv38EzrjEDa8CO4XmT2/mta4HtFfCta8u73tJ0EKJceaad0yCVppPX8rTBLDOOsumKjdVqYVgPlumpHgOyJyFwVV79VAw425tisFcN2t6C/sQpmOluAjOmfdikbVGmrkz6tc4LPoSpbqqs8qH5q8l+nFcZtOtc5dCWWU5e62C8edaxXs2nMuK3fo0fHSfrVPumjSGvPNusPDDmQ5OqbSYg8NaxLPLa0Kl6+xxXh+dn+jay2n6uZ5y+dg4rXYN3PYMnkKp64si+2bMVs03fmhbYXgHfmna8663UTlkHJVfcg5TL7yW3bvWBPmOcZbY3LZvv3HLn8Jm8+njZCWsUHxps2tgUQmhi8p9two8JsYCRgSM3rufN1XTyDXmJx2XrodZ92UbDF9dRt1pu0J5ZZlfT+uDPsVuJMsmxWCe5eTRmmiOtPNswv8rgWQ7fsQZfh+A1pvWMj1UdQCXLKm1dcnRqOZR0ML/qmbYfY2vOd4DfrumIfsFIdX2WxowdGwVKE0JzDdR2gGcM9QEXctPKJX9W2Xb6AFpgewL+ABr1bjVJx3QyXXPTxtQcWR3sqgyayckDnvPirsOrjz6hdGkOHtYPuw3kgSUGoIKH7DZtsOW9KKLaDB0dprxa7rqAS+q+xANjXIHckPRgab3eRp2Yq4OBXbHVP3T/A6uytyixAu0ydoy1bLOy+ZFP9NAl1cnTdNUzL9HpG9oY842DD01Ocp6lub9aj5h82ghouzWvutVe0HyL122c9CLWT+rEx3PbaKPWLr5+oh0Uf62X26O2kS6gE7L1pdu4qnd0aNsT8B19+j684JlcFiaYNqov4zmqZYNZxRtHbqx5njRcJu8xtMGEmQU9Y23bg7J1gYOxfIFWodtFodmzTVibJYeBHBt1MIvYiqLljgHRZnW2nYoFT7luRQePg9IU69iW1cN+PWGFPynYr+VpOZqkHZJjXJfbmRhVFnSxu+CvYY13bpvk8OofE0TlZ2mjz9CRkNyTivXijqTJKg02MJkl3fwHv9HG3e7fhLVv3+yEvvP5P+htrkpEu9AmS2464Jnf22ymCXxt+DFsRYNsH255C2xPwLe8Se9+g30QKlVlApjy66Rg2oNAUe2kMTAq3QEm2qwS2ZIZxlu9iNq42nOb2DRfYs+xuH6UgU2hxmF7M7lthH/sFCPEirzyAudDqwwqrpdFzs03JtpbwuKm61Y/1nNe7VVd88kr1pNjlU9p/FUd046x4i2rvBoH8mV64KsuOsvqCY4UdlpOufqgPE3GT/m3Y1kT58/rdflHFfMJzg/t5fPEZ4HNM5+6Wa78+XF1+OzBg7Ptl68+wJO7PQF/gI17N5qms9YBbbM6guOPFANvoZfpVww64YecgtJ05ZfcHDCNgbdgW6NpDMDwQ5jyBQz8YuBGA3DXE76obIgt6rJoFi+9PaKgA75sp9suQngb+E0+jbPbaXLKYMJG4+Eszgm5ePxNU40J2bQMz3o1hmXnxz6MJ7c9n1/swez8YGQZEpz1myiy6rvy7SPsLVMs4IrdzB5wmzG+mLjtSVave/fMHh1Xhs8q2F9Qez5fJ14qEJMuldOKV/SzKzuHH9uze/Z925MvrfPBptv4VYIPtuLb1t9fC2w2IWANWQysZTQz3vkyr1O9iu2mRHRag4W/KCP8Nt9VL/y0EdMxoQ9N2oBNdtYBeSk3smfWbeZjgDY+QBJYFpNLEVrXuY32GAt2bsSozfOqBsrlHkdjVr/ISJE3YKVTmkdjzVsoq4Bd1yHaWGViWMBZmRx8ZsGtNBNCndCxQ/K5q9jw0RjGJTqPiEiWOe+xIhQo4m+4ar/S4Qu8kn7z+N6k7ozjvl3xFvOzRPtbX19f1U9jznZr9N+9c/bs/fcPf3XH2nBme6v5wz+X2xPwh9/md4THy5fHY9fXh09pMDy2uj58rv6CjSvQBzEPYIxWLS0M9E1umfVcrlh4yOsA7NGz62kkZDCcDtS2N81t37nlvexRWQKqUIqG9hwdxxE4g6uieLC7aFJ/jFlmw9QXE0ttN1CP10olr+4Lu/tBjgPsG0vOX08uKBbaNvw1nkVgza887JKchy+VqSci/tDDLgnasSQnj008tyN2xFJAtgmr+osyPP2FfXIVKAdPOQk6UpO5iMBbgh0jYaXxTaU+emj4uxcvjWdknxXl8+urwyujPit7cK8+AjSbxctP3e5tSOinIEd+DvKyXrJ69Lu2t5m/U6doewL+TrX8beJ3HMd79TNxn1qf6efLZsMnNbZ8SgMMk++9DDxMDDHgiu6DnWh45k9zVw28ZeaRL+MtyGsBfCtXPcdm6FJfUuz8ZqSXrVhyIPZV2BvIGkfoTJQmxQ2f/a36GKcu/JFCRrv5uwQRyKAnaGw3FvCeNuMbi5zJhTLJeZZUNrAIeSlnGmuIm/KN2rLbNaE8fLRypQ2pMVUaucs38tlvGsA3hQWeHbXcNikab3pZvUPWDpyPtVGr4HE4rlN1PAIUcUG/c3zu4sjHgHh2+rzsfG1lHE5sb+fScNtp2gLbE/C0Re7i8mmtaofrmmw1wWpw/YwGj0+dvTAciyprQPEgz2C05glAQg9Gzt1E4KY8y8gtc26ZBzvzp3bMN35ZzoRSk1+8Mg95YBrQ1am2K43etDy1GRgON0jYmNZnWmaw1v/wF3HqsODbweKnxW+XoedCy82r0MozbbUN8Uiw4L8BzTPeue1Y7jJ5xZgmJxlvPrxK13LlV/2pjWUy7DhN8ebfTD6NwbbQ5dqgj7Sq9dPUymxPH9f5OK7yFzmdZ86PYJiUT0j3a+p/zw8Hh+eP3AGrZcW8nT6gFtiegD+ghl1m9vdfGX/q3IXh6UMHdOesrZ+V9eHHPvHoB7P9ww9o6zthNQCsHxtnK5/RYHJ87apWtW2E6JOLRgWGhpn+ZWIYN72sFsnz4OQcrm3XgWrKN95Y4jAN1t7JnbBX9erNgTGWuxyGemG+jWlb9juNFRVqH3GIMJ688sI0PJglRbHwQq+UA6pyZTl252AqHeVQXNQzv9pqsIx1omNcrZPxYWtS3ylvGXaKcXvU+O2v6pu2rOaWObdNytglVZ7pKjM9xZo/9Vf56FCudk0jI63pbnVd20aEk+3KsQUHYCGph7EXPozaZZp9SvmPojucG4ZTZ8fnpXZiXFv/2vqw8rwG5Of5Io0F9e3CXdsC2xPwh3Rqv/Hq+LPqxF88dLB302N6M/GrL788Pvroo99+h+NHuFWVz+jeXPns+Ops+Di9Xp165AvWGUDaRKtd51HjwCyGBFa9KxptlDWMBhWNDQwXXhHrG9pnO7SXVwch085pxkpT9qBmWR3UplgwkSLO9E9MpK6noIhpmjyZmr/BdrO5mbzbb4CpC9tz3u00oupD05i2UWXAg0/7FoztRt4UzWsuQg/TNdl2c9knA/MdAzpVN2Ishox3XkRxTtmKdhtb1/G5bJ1lNsyr2EpjCx/TVDFVBt4y546n5paRWwfadTGv2jbWPJedww9aZ7Dbgad/4Vv2aWvann6mviU2MvW54Ekkyn1QrE/qo0Kf1C8jfA7eqvBvnR6f1/T+O2qVZyX/nY8e+WBu0mV7O32HW2B7Av4QTsAffHN8Sp31i9kD0yEdVB3y3msrwxdFPp3cmzu+rNXt3lU9q9U2smx+RoM528o8j1JaiQEiBwd1/uaIzi+PY0xgTMliJE8/mh6jRQAS1QShK87OHWHH8ByAwtdcp1LU07rwTTu3nLLpqh86jQHGetRvmc6CDaIkNuet2G00u2TmRY5OSZYVVpDF7FSUZWIsEs4DqcZYbVc6kS380obGVLtgp3zL4S+LE16d6GpM0CTLXbYP8xOV9TFNbrzpiEE2p3zkljkHYxr5NFkOH9o20SGR1/iMNy5Rcz2w1d8UP9VDf8pDP7agW7tFLNDtfIdPTaY+/7KQM7AEYMf1vAH2zzwa3/R1E73CDfVP4PfNU+MZXVTP6ob9a/ps7u88dP/29zJHe90Fh+0J+AM+iV9/efxRuXjanZ48VpbqhK3jfw75jcLQKvnenQf1ktS4/rmVlZVPasY8LvX8KI46aHR+len/8Jvd+aDBoICQFADljRcf58FGCFO3F4BLwAp5Bz8yqmTbWZqXzY/6tUHIcRk7zadyYnAcgVUBjG3DizougAI5P1jmXBJIbJCwZ7/VrjGWOU+tuU4xuyG2sG2F5qv6tSjq4ELLHQv27du8fmInOjcq1jirv0qjj4/uZ4lBZJulaqvS4OPlp6JoO84RVdr4yivqC1jzjeWas3/znE+xU9xU7nLNbavnEjKxag5NxwbHyZMH/efO1/gQI2vOgwQj1qjnRIkTo23vwHcKFd1ca6L+UX0rFWPJcPLt9TPSel59+FfWZsPvfPf2hOzmuuPy7Qn4Az5lsx3Dz9oFHY3B1YNN5LPhmOU1f/n18bgGls8Iwyr3k5Lp+e1Ke/GDnq+EPQ0EtpsdPyThJyb6LGbfbz27x9DKuVpOO75jRxSdP/UhI6GLPxI0f6bJrR9MHXpsZii3TrWDuPKDlp+IoflYnJ3ToHWy1GJqhdAV3cLt9sOcbTbsMp5tkiO3veA3/ep/inH9FtpEoKaaZlrBWJhuM2zHXyCXHxZiQld/1X7VcjvAq7hah4rfjLau/diu+c6X6VdfN8It0zXeecU4lsqDBkuy3HlyF49Tuy4vtaHnOet6iBOYqVGV9Ygn59MqE02R87veJt4oGyMB7WN/RGeR+e3m/bBEnxGQ3a/htbf0cSi92CX1X7m+Nnzt0Ye2vzqStrsT0vYE/AGepZdeHb+gOfNYDDrRU+VMOSSdMAi2jpVY5Q57h8+JzaT7OfXv/BhQrFRrR3eXRAsjpLzbzslYnbjdSacMTJPniyDhnJhif1o522DxUkhAsT/XwQZbbTv0xbI1RZ0qo9DU7UZyoOm/KIm0nnWjGsRney3v5aZuPMV59Elb5hxM3PiABazk5qKGsMzf4AdwS+HHcYlnnWYyUAsTb9FrZOjYh/UtM588kgyHTxWqD9OOvaEXMutxKU3Tgh8Bbc8423U+5Ue5CGlbtycyx7+hfiGUvPl0jDfKba/awrVTjT34OoCNGKpQCubZH5e87Vabbh98VFofQUoFXqZSq6WM9yfUc+lnyrPXAuteUkfgxFFMb6EfDWfvtpmOo52iDnEQk9SxvFz5OV1vn+NdjVfeGE+M4/rXVsfxVx97eOf/ktj5UQ+UXtF++MfhrMez5rlsm/pwW8Bn8MP1ukW8vfTa+LI6xjGPnDQ2fZEuVBt+Zcfwf6j8mWmzzHFzaopZKMsIt+V684P3rRaSBoF48cpsTdMC6ygdx1Ix5mFk985xRV9NV1kLtm+mULWjDVogHvScYytEhFcMW2cZr8D64E+wYK1njMvEY5/BM0A5E+fCVjqyGo9oxsqwIRG+0MFfTbYPDzp0oBso/BY7PBZA1vXQadj3m7kd0Of7f/funvuvss3sgyER1xRfZQFqGGjwJOsY2xkpjqNtm+VyzZFtZmvqy1jbs2I/5zLkNp7G1W3ZGX7BK686+/YO67pGcvpsWOTczHIjTEJPpZxtg4zeFi44hBo6gQOwmIxJ75uAqoogm/T/X5GtXxW0r45/+/fGY6h+35/YXi3TDt+pdBNn9TsV2p3tV5PvF3Qz+uXotGplN3TvxHQWepiSOuCa3p0axzV1UE2eukPVfwmYSNnngqeOHB0bnlNMtmknBgkk3FqTGkpFMczDjGTFRthFHrqOM3F5Qz4b9+8ZVvbsUoRK3U+j4bke0JslDzLGLsvBhE8ZQW6MbVrWyxroajzwl01y8Lst2Q1MOyHwp3aNrTnN4wSfP/tGZmzFQFd+9YP7WrbNqtN9TOyAccJOjW0zPrEyAe/RBBwJpdYGjROGok5NFLFPHdSy9W1LOfqkGpPr4WsMeZgxyDaLvTCpsnFRRpFUcFH0pNfw8Kamq2/kJNvOUjIWeFFIW1GvYnTPrnFd/ZtlbqYWYNc3H7Oi6YPRr0FHp6Rfzmn65IfR/3UuvqYAfuH6juE3/sT2VjVn4DuaymXyHY3jrnP+8snxZV3sx6LzqaeRM+CyRRcDW6mx+GtafQZ74YRICS686KxFh+2tkDUF5NatWPMiAPRlL7AhSKl9hLjYSYvjsG/PbGWfJmHk01Tr53qZBxbayfJpjpyYzEfFkxM824MG5xTlwgiylc2ebgOHXQtl6GZ0HJfVetkM7IguxQ3Pwn3ua71qPTh5XjnB73WDXw1baZOctjMcmuTyTr1IxwqY5DbN0odztM9p/uF4v7Ve9D3K3C5rW4ktZ9qznaiW0+bR/qVMBB0mOjBiuP91HYCkiSyZebwl/X999jtasf9X169rMn50eyVc2/fDot1HPyx/W8IPq1+tNr48rSydz8mDKrzVVY3X61oFKyWfrqhUFYIhvv5HZ1eZjqtS/EeAeT9/CmaMDDD113CBodhUcZj2ciBJI3Ob4A7sn63s3zvsyNhQfvdE6OEeh0pVl0nR8pTOJ9xebtt4LqMf1WgM2w5+EzC59foJV30GjVB2YxJsQE+IC36qI1Q2sWv7PW9GKPNHHfmL7eliE7LrmK+8kwHIsnmOj7BJU35yNz+ix7a6bqRuKhE3yXFmafPjMjy8m9E3zvkyL1VmmtzJ7V39WW5e1TPP+uSWV95mtD4VsKo1K8918lzohKR+npngt5Nku+ROi+ePvpvCjKsoWiFy8fX/g+n/+ojTMHxl9/rwq4/egu8lWAh7u7BpC5RLYlPMtuAmW+C39SLVXn2wXs+Hfl4qx+hM087njm8+ptfVka9fn12HJlnPdDB1qB3YvG8rV3yt33cz1beZTL4H928+Ade6WGcZzzK3wYbcAOWbTdJcsISN3Mm+ppOpbYDD19Rf8JsMmrQMs5ndKZa4SFM+PE/itDfyGv9SHTAI3mNy+yxT46NkepywkBxrZbo9zZuW4U95Ltfc+vZRZebZFjk8Y6xbc2Q1GQ/PtO1WO6ad24btWQd+xVT5hGbGXNP9TD9FtmGcfSzNuVAmdak41wWe7ULflG2AN5uWxNF8f0X5V7Qq/trNmtrGvb8WuMFl8P4MbkUtJt494/DvaQ35V3bunB3VNt97frv80pXxugZl7Wrx+Fc31pHTmmIpUaYD0mec3DkbINk8Pxalu2RN63lnjV5OAH4enDZtR+hm1r7sB/44O3QgVsALdYpYajBzYxuoKXbZ5FNNuV4LOXV3lJMch8hg0xZN3Cc5/JPiKyyb0G1isHXCjgvSsd0w4HKRw59iNtSvYcA6oUOKXLRNLvCRB4rz2bCtTFbrWthL+WCZgL0Cxo/bBd1aXubLcVlmXes5dxzGu2w9yta1zNiKMW4qs271N6VZ6cPjD5oEXXPozWwFsB0mmHW95LSmlxy5Z5Z+bB8ri74WUHGjn1Yb0POXo+hj2cfnmOxnlG+z/n9Cwf5NhfUbj/+x2SvzeLepW9UC9Mvt9D5b4B//4fjD+qWTn5b6D7ujHtg37BEd7dob14QHASnAoogeg8Pq2rB26fK4Wt9gtiyBAi9JTNbIV3iJA3nsijEgGNxe9lA5BoqGJwDKHuHDjlQ6zzFzjy96185xB8+C9RLPTM8S27CWPnqczeW03NiROS5y4+LmoLUD8RC6cSiZhk+ibF6UG4+QjekrzoKvOqHXwF2nr2eQZsJOTVEuvGrTbCZg1w3diLcYibLAFTOdtKd+a90wNS0X8wtkxfEMmAm4+jWYmOCTKr2sHKByWGav+jXU9ilTX0+Uljuv9m4Uy1RmffKp/+5b9fR5WsBLAXtLbAL3IyJFnRNo122ObB/9mrIueWMbIh2ijxlUAlWnXfgEQ28HFMEtSR9W/9dXev3ijh0rf3N7Il5yEr4N1ian9duwuAVUf+sbmnhn40/rhaofpjdHR1G9d+8aduzfM9vljmO++xidk5ewSPQpJ5+EsxfGqxqYWLYGQN2R2VUlJkrlouIOu9EYCYzKYY8JVSl0kAUNp+GC8AoZJoyWmk/7VqVC6gEpbRFOrKRmfCxJ25k79+rlrGWDDlanfPO6TdlKJ4uhIDeGgRqMw8MGPLcxZZIn3GrPNmzP5cBPbKCHXSfsYxOdmiom7FahaPsyG/XwSw5Th4iVc9lsOw+xeQ3bipR6qm1h5jJelUHHFrSekdxsCpsEIGJqP+oE813SVG9TuPy4v2yKKQL8x+pWeQsx27dg3g8Z9UJRV7rO9ar+2DiJG1X6Ff0txKUP9rgnscDvwQVJf4bIbEOjVjy2bsf+P4xf0QewfvFPfmL2G1RlO317LRDXw7dnYutoP/8H47+hpz4/re7zMfcVngLRLVmBHjk47NUgFxNSdL7WNHWANb/ygMG/dn1cP3txdsUnJXp6dHR1eiYMrTu19xW+1vURJHzSwePOOQaGNrlqwgaH3fgy+GYDH2yFwWeCpRx24LMt1nR8hw7QGK/MiSkm+NhGC/ls765xx4F98ab0DuHDfviKCqQN13dDHvZyUhIZk5IxUW6HZorSRgxtEJI8WD94HJrc/KzTok4YoB3AhmLKTWO5Tr7paR63y1UfXjPVbQav+XAb2Yfz6eoXHRrVtiodsha3+T2f8FkBH9AEjB0wJNvM0uLRdsx1vM7Nv1F+M36q/jLbjiNs6eB2sp75lJEZb/lmeeihoz/r6Byva8bVxKueMsRWs7pD9o28ec6dJuNr/8dP9MXSl+BFf5JCxEYeHx+UHXJsA9IoImSQ2CZFofXd263/rw+agFeH//yfeXx7Is6z9f6OPtfvT3uLaD339fGH1Hv+W80tH6NbqMeo37jf5kS2a+ew48ihYW/rTb1lpmUE00GGshOr4KvXdGlrSIDNREontZzcEyV0yixWUA3vPDA6VDvhTyoxe4eXtGk/0o0Kuq45MGQc09ixP/c1Dnv3zHboJbQdGuh3sFVN/a1T28I0kZtOW1muOmBoC3ISE6HlyUmdkOtgnO2Sm7ZelGXU/IrZYLMxphj8wLNNYBWDPOLGP0Il5E6mPbHbjvkFGiq1DWzj3fKqs1M3cAf2S6PEM9Unhqm82gA/LZtH7pjBkGrZdEryaH8VuyBXYZlexUA7pp6LcDtaDqjyqg3Ntmv6OM71tTX9TEL0bSzN7c6xy/s/dukH+etHoCNqza45PmQ5bYZUClH3iNx45K7tHdP//zfdHPxHmohfoRbb6b21wPyKeG96WwL9j14Yf0h3vX9dHeWHPCllg7mTZDOoKw2HtfrV28LxolLtRjfTUMa3fHzzneGSJsxwwlETo8wUn5CwdAhJ68yJTSQ0P6KwoIdKS8RMYqzxlmhHh09Li9/AJwr9vAfJVWD6QoeUAa7sGFfu2adtebWLtqzjY0zEVdN0tefJyBjwVSXKlSFgxN8UEFUMTWCfdeK2jk1VHUwFXwfLIaaxBq/5DZ0G7v5UzlZOO9DVRvVpnW6nxF3rUNxtSuKnx11QXgGbBcbYuFTQI+bmu+bVIHp+lOJ2XLBpfexZoNy+YFW6QHp7wXN8HVzswnObYStSI6Z16IZk0PFQN8WuTx8M11dXRz6BEOYwEX1DpfDfGubd+n82nMPIQNKXe0rNExf2W41t33VN7xnUndD/ddH8DzvG4We2J+I8tzd7bJfszcK3Bu6rv3363oN77v1r6gT/LjXuPbNUv69J1YJaWaw8cN/sAOLswAmMxnULq7dlh0tZds6CE2neFa2A3z4zXg5pM9jGgVRoxw0DjaXFUZCt3PHChVnxbTfqCF+Cot4HOUxXbFt5u3ahhB4pbLSCdfRV0rP9e2c7DxwYduzdNeyUYuy9WQe96eRLkBGXQOCgF+IsfPRJljtP5pKJLwTzQ7UN1xMLfkkbYhMvdEKaB/skdxuEnVaPKrda2LCTxkTHiQYuRbM35FOc/VcgE/DBfckJvyKrHpOqY3Tbx/krAYRd6YFD1+W0igBmllpWWdmuFjRo+BTPbJfDB0zZdAj4C5YZ6SqY5vcQxMBG1Mu+lOtz96tra8OqHvmsxhOkhnNd4yGN9KKM+27QziSDR8JpSRR9/uy3iDeQto1e0MrRs42s7DyWagB8tH+JNeQl3iBbueMFsr+FOsKXoKj3mLBbsUv7/zic1T7Zz/3AE7OfAb+d3r0FOA/bqbTAP3px/HPaUvk5XYWHNQHP20eUNpN0bca9afQ/C+/ZP9t15PCwz2Uu4EiN6BeumBVjGqw7R9A6vH1muKSPJunD/m0Xq21DLzw/4s1n7XHRY3AVnUeE7cLTrwNHv+48GcRHTVmvqFkuqSUMXjif246iDs7T6WLs8NyJg+Y5NaMcr5TEM2vinY16eWvnPQeGXXord6depom3qgk0gm3BRbkGKnoZBgh1JVnfeeWZtl23F/zpBNsHQIRKtuc8eIVvzIKcoNTanUf9io75zrFBqhhOVjPTT2zFWx6KOrhMTkLXKSZgbUHnj3Yk17anuXXILau8Si+T07becQDrtp5iaxma5NiztLn/qmusc8ucw7+uiffKNV50nPGMVyHRN3Q92mEDx+TSrlnbA8N1TzQ6LPR/MGGLvkGBPhvM7JuhC7vZRxQprLUbhFBItm1Rcl/LCU826vPj27T/692UV9Sh/5Xvf2L2atZo+7hZC/jS20y+Zfj/4J+Mhw9cXP9r6g7/Tm4H0dX0O7ithbQlzGTGXKKUvcXlRz463MMb0HQwDzTOQWevbB1wSRkMqepoAhhfe2M4p19dCWfcFeM3JwYKGc+ackpsASNLHNi8i46ZrdWh81Jdv2cqTg4ViCIA8LYTdY7gCaH9vBq4DCko+KS8a09cyvUV1uAclzC84A3ed/hG79nNR5yGnVoh79J3Ti983pjwwDlFuTAcfmFFlTpfAqrgCTZwOlQ8ti2HRmb91lTRJrW5Ig7Ak7RgpzmxL9t0jmrYMYBy49kvmFuRsMdb0F4Bvx+btCPxTnPbgu9UceYty23LsmnZ/M3yd8MrjlE7SlevXh+vra3N+P7mSPUan9tO4c32f65lJ1/T5PpeWUnmMjBV7osvxxJbWMy5DqqFjPvb6//hT4bDlvIPuv/rpdH/4ge/d/ZfLtZsu1RboJ7jyt9S9D98YfyYes2vqmN8zHeaGmnUh9oKU60Bn0GFi5fO4cTLVx97YOD3OfvANKWNXZbfaAA5d3G8+taZ2UViwWfGoLtsr4bF5wSyslRqt93pJQR5ox4M5PFZYeUwsi75tnS3C19/LoMjLfij/gLVuMNXKkYcvZzKc57KC35DLluNL6Pjzvy88U59xGmXvtBkl9o76o4eyXmWNIg0vm20YseB58/xWp7GJCs2bXvBZpMv2MCmA2h5nXhh2UaHNR37MCZOhgrww6bzrnhzRNR/CbTyWQHfw0tYSjUOym4f0+Q1GW+cc2OWlZFZz7iaT3Us24xvec0rFprUfK5f1sR78fJ4NVhqV1/X1nEZHdO+1mXkpvp/4vCAkbCU13tjBafSbUwJP+Gjxws0UpXJqG4h7uT+P/69ccfKT//p7dWwT+9C3i7ZBd6WKvzGb49/SnuiX1H/OaQJKlZpsWrs95+9Z21oFwbd+w4Pez9yeDgQnboh3KhoOrnTR1kCPlJUByd0Kt56r31rOBdb0bHRbJQ9eOWm1TB3BoqHVWbQdkQ9fLvfOjJ+eFvTPsiZoBUjkSU7ZpBGK1bquqJvHYnfDVa+ErfT4bL7Swzu8m3QuX1cNVvBZEzRyKIs2rzgMw7dGMi/4pmxMtYW/x4mY3/Ey3axWtuQ6Am7t7Vc+gcOjAs5ejainLiX6jQMcsKnBtipNtALeZPZju3bLw7hUa46YkWC32UAlcJfku/5WHWhSV4B459kf1maH+HX5DrBq3Qt26b1NrM9lVec/dqHbZpf/VW64q/ppaoLl8fL1/TVrvz6k7ZsY5OZrdz4GJ+2cLn0+AxxbSOut/fT/7M+0WCx5cOu2GJCpo5F39P/7EP0peadZaj6k+oY/c99KJanrd+pq5a+mfbsI6+927v/6xx8c7Y2+9yf/v7tLWmfN+fTq8X8LZH/xm+t/rgu3f+aysZAoAueUdIdOvg6RFeB72eYCEgSfPzB2WFNErsCk6wQRTdpTGhSDCgqdJl44TekyTfOg86lq8P1V18fzzbIhgybdMKwvVGKN6JIn+TiGEvucs3TTAMS7JIEG8NhA/kEZ3uIFpM1F7nc9TNILXIpxTzNADTs2THs3LdPL3LtHXZry3+3LZHjz8k0eY0Dmskz7lUavmKtXyfYZXJUzUfHE7DbM2TURMBww0Fl+NZzjr7p6he+kxslbImJn267gRrLKgu5ZdqtiS1o9H3NOGYruOwcvmnHSdkJnsvGWUZe5eZP7UwxLju33ma5cKP6yZVrudWsj/DN2xTa8UWdWx83Hx+k8PU++r/PQ2mSNMjRDT/nLFDERUz1G8Eca4uL6JaatiHbsJ75mXOTfXv0f9Xnm9fHqz/6Z75/36uLMW7t0g1P7t3cNF97bvzXdEPK5Ju3lwwk6k2tP4pde4+WYgAXuKN+X3U2++MfH+4XO1LoNgO9Q0jRnRxQ2BGmy1O16yOfpt87MbyjVeWaR8K4HcZGi7fdHndH8idWrnDDjxjANcCPceMdUUy9UG7BL4oUklfLEznFdADRtAqGvm+2bEOmNKlej46hCkU/zKew88PmOGg7VR9vmu3SVvWevXuHXTLM8LnQ1tUUNJY38Jo7BkEGQybBmkJPPKpp3SkGw5UXJnSIvPlE1zbI8UWyzapDja0LZlqGdzNpqscW9CG9q+9YNrNhuWOLU7wZuPCNh7VMx/HYPrhKU6bi1H2qX3HFz/qFS+Pl85eGy7q6okXRY9VLo9Fr2Y1xX5CkhQAoMFHu16E84ztTg0Zhef83Uqamn/8tNiCz/+HVOvMc29UvdVfc8SUdTVGdNq7/qFx07hZ+6kX84SbNE49SFKIdxVDhO97/FcQ5fcr6xz77z85+d17/rU1xlW259NXfvP5nx5WdX87+kJ0rG4Frdt4kWWqdgytYVzMlI/QzfbsffWg4Om3A1k+m7F5Gzp8HYWgSYwJpqv/62+P5d87qWbBS+k+FebTiamzJPteMAe6pRV0GI9sJl1G3uW3bFYYKU++AYY6BION1DBrgWui1Je26TZwxIGAPrCxSD5HaWwsg0cClVGlbSQeEobE1T0PHIxtn+/fNdt2zb9y3Z8+wWzdGmmrm7Wsr6WM+Wbq9kZsmN4688m1nYbIFD7AklztbRMwJVH6Cr1jobI/FGHoDy0e2UHG2CQ/EFLtTK+DDvAW9qH7TpRrHuyktq8eNdGqslV6mc/X6cO3cheGCvrDmWl6P6Y16db9R4HqLnRUEC9dytkFqWGfe6uk1pXk90mjT/h8jgU4afJKvXJ3k8NZc9pgS085L9MWwmrqlbwajHfL6WPSBXVLGl1S4jG46r02A4kBk4hcfyYkmiWuSG/PKw4rKC20WnqK+UOkHTFgOTvKQOm3o/+Pw6so4+/Of+edm3zRmK+cbW+wub41f+83xu3fMxv9R1fxuV5WlU1uQmJU5Iz5XdkvzCz4ZD903O/jgfcM9MXB2VA78rU9aNfJ+pdpedOo5pMqrzXMXhyt/eHI4Fde845nE1usw4Wt02FAHeu6G+Bqu+l3UpXdHW7Rm6GWMwYsOTqYBCTO9DLkhlbh67BUkOU3K5CqL4TsdF78d33hhU9/JvXPcrccC/O3VD0i0n6CXrbDXlWLgoeQ6c0MUcTdIViILpnveMGSd15QpL7NjHELLzZvqFPMbyHqdRBtNEFMeZRITsF/CCp4O+J3iEz3nW5+YK9ZxLPCEcd3Mj2utMTfI7Kzllk/Y2Fy/dGW4cuHScEkfJYovzmjRyI3OP0d8c72Ua2tqZ9m1towXehM7xIaPniTXV73N+CFv89NWxqNgzA6VjX54uJsxY5u7xj4OTXy7jt3mRN5tT/jTtoj21SHOSUTVDk0vrgdHvWCr97vWDL2MsTDr2N6t/8v87x5Ym/2FH/iB2bkawlakFz7ysRUaQFPD39ZF9l2qa9+y0kd9NqS4iPKzglq8ZEcKnjpVDiizcZ9eDEJxejGznWm+L2jnKUkdeNPk50HY5A/Mvj3jLuVa/gkdi0e0QrlbYBDIxFiU23EsMGM7DnDrVLCoT/cNf24qKVuNPpbSNBG7WNRfiAbNTHGpjcaZXimRy9Ze81gdW8ltW/5pf0Wkd2RWeBcm9pIjRldIvrJOQjW/1Md1IR7VJ+JiANYKia/zvHrm/HCet9T1meM9+/eM+7RK3tur20KhHdzOsKq80g2e3l1Qjn5vS5VjpVvkVjAGX2BcrlD8RRJR5eZLLZJl8M1ropTXwgQTtppB28m2FFB8eBvsNkblQ0+T5VXmtrWs6zQG8VtmPZfBqq3Wz18cLpzVilcXB7MrZzoqzjWiFL3C287xWyZcgOIjnzbQvJ9kJJh6v/0f+7IXp8DnIe3HxRhVi/YkXJXsmzpEbFJtepGFvFderKSpS+Lvkv6vmj1+bjb8JZ2Bv51nYeseOcVbJv3v/9fqk3pw+7foDE50wEwexeeDUHQACRPPJKwhv+Hhfe/3zB7Q27n6XaC0UO02o5FZTg7GOJcth28eiqbJ/58Xxj9SPHHTYNt0TFmT1LkkcCa6GpzU55khhdSLZDxfwobtB90O0xhg17SgIyuuCxhk9h9lijFmEl+mwARfeFgMLr6pMX9qp/mx/TYwefDCSk9NdUMsAJBpEt6nl7jYqt6jbzDb6fgdYNRfOMrQlqvYedBOlm/IDVBuO375q2Lx45hdIcdSTCwl0SMZ73PT7aW429/dVsDGISAW8PD6zUMzUHk1TtejwUI/XMFwsoLKri/2ItiGs+9QEc84yvqKyCtnL46XLvJ8dzZbi2eiCLjmuZRzMurxOwiu9egXzZ5dhmo7VD8RE3wZ0HUY7dDjKnEqOpUW+3+oLTnYZvFDNPIwv+8Ntbjuqc+87ugWvW5d7H6ezbzT+/9w9cqf+hc/s39Lb0VvqRWw1lg/pWt+nV8I8N2or2rfKnsQ4g5V2Jyp4opPhKcSxhdt6a14tQvEnccdMNTagU7FHzLLaxnaq1/bNA8T+i7l4fK1/FBN74wAZLYFujg540/CjJdeneV2u980JccAOP0FkcNbyIPX2FrUs9Tot+zAse3BeO6r+UEeujpKqMEiBzj9jEpjZGXkCYbaOtA6RDv1mFT2OYncMAHAkDSwRWCI3Ag+T/EFJSDll+D1ws7FC5dnF3DIzdOBvbN9+q7q/XpBaWGrOuxGYFAt2aGLxKA/n08qEuE1XJWBIX54/OUztzTkejU1e9uQh+3GxR52anJ5wu7tBD/0Wo5ujx26lasdeCRwpl2OHBmEEnqOq+YAwHS5aMoLvsUgvst6m/mds8OZS1fj87vikPIaiXMrI0CjjvgLqRmUuc5yFyXaNeHqJO7L6ahfyGEIvSTyHPExOmxahxgS4esKtH0jJbkMJq3FfW/s6Ky1kQRMAmVcXSqwCUZixbmt5EYLOGb7cSvcqf1/2L3np1S9/7BVcUtmW2YC/vv/8NoPqAM/rCt5vU++5ZTP+0AO5tlL5ttTuuhjDmG7Sgg6z6gVxYb286DiThIdDj9hIAeKLqs8aOOAq0BMjksTBuNPbNECc4qBIhTFybCiNNcrtjSi5F2ztZkUkmf8XJJ1z4FonK1qsICep2yn+fbdTHO73gwvmGyrbDdWF5Ek1yDn6kUFc8dQVQVS9EOj8Zq23nCNpi8oTKTU54Y6Gk9M9iuS9RNx8jb4eFmDvL4l6co754bTmoD1gxHjvkMHVg7o27j2bYjFBtNaG/taoWU8Q55XrNHSI4S4LhQ1/qljZOTI0IfRUpRFF5ZFPS/VWsCheyM9DNh+0Cp0W03gG0HkC+BSBBp1Jf5mI+rY+Mr6DWUzm22AHGFJard1bTGfffvceE6xxDVerzUmxXmZN5v5wSKuA+qKtXmNTcWEJ2P0dW7CSCGbH4Lng/WILurTBL6+ZWFD/wcyjyvtL8YalWHZnF7V12SlXa4Zk/sftrgppF4CROVU8KlBCiRu4oJoB/z3VcId1/9nP/L3/+/x0L+8hZ8Fb5hA6sm9m+hxtutHtD2lntu6mrJG0bN0zUfnoBP0ake/ncPnvaH1UMuBQGeXSvXgdUspQ95U+0BMEFXPtDuyw9HYzg+EMwn3hC0G/bSQs0s8gBXfetgjliyndeiYpKizvE+xMQiELHX58g00+c6A1FWhtZ7L0a6y6wELRLSrcm95G1t9gqtlTg/xRtuGTGWtXvXFBevY0YDDOBUH1VhDDucNHVYr0FkfQeOcYidtCQmo2aR9q99r6/o55uszvV27fm7nztlMz/f36tnxwb27Z/uYnJtatINthAUaRom6MRhiFxZlcPyRKEeSMJf+vejd1AaY63RGI2yi8isv/FahaOrefReZ+VOZ+QW6lKw4bNTyVAEZaYrTjyFcPXdxdv7MhfH86lpe22CjHrLp2Mh1ZltbUmOd4ziC4brn3IKYJ1T4cWoB+jlP/2gqAUgq9MFRCew5RdxzuGRdIZSR60cdIgW2iYF1LLE2PS7UvO7mOrilD+vN/aiK6gZcVXKd8jUOiUPQXESGzzu8/x9URf6M/v6nWq+tRPeB5W6vtBaQ/5Qu9j6BzS9wrvbod2QUemc2hry3Dx26lfXB/9U9u+OXfaQnhDua6CjOtUK9d1LcaE83OibAlpDPO2syGdThX7kyu7LhbrnFGoHHDJRx8hzMrsN8i5dBim/AQsZdtv7LJHfdGbrryUQnXphwgyELfsQt87RDm/TqoNKqElm0J/hc4qYOVlvcgHobi3bM8Imz1peBToHnNngMx8Bj8OWn0wkItWy+Zp86EKPlrlO+5dWaKM5ntEX7dqQV/USdVvyrs/PnL44X8LFP29QH9g0HNCnv07dJ6SftM6WzPD+c8KgaQbS/QEVYicnBMnU3O8pM1kT5MjpOFsqy20xTijQtm1ntNOimmesEIC6CEj8y84xzeZlBY5zb5sWrw6W3T42nLl6ZXcrYOCrpXMS1kSUVVVbytReyCS/1I7C8lnXuw45ah2/kkJxNE4W5EvJmOmzO7eNKLFp02bWJTae4XnztEHLrP0IAiutW1yc3Wb62rRp9Xvx+bUsABvlq7lFjjEuZSiBUz8k2kEDdT8eGD78t1q5j2Z3U/4f1P+722Yr5lpmA18eVh6Iv6gKns2WPywkoaRZquuTpU9EvmKiiL0Qn88WhDtA6Onef2pnVo+C5klEb8ykmncxxlEngnMy7eGm8qv7JXEgv1DFmoAhVITu+DDdFwmZnjU5LnbIjj2zJYpcVpXlyOrIvr9/vRUYnj85OHA2LntjavtfXgejr9GCrzNwWBEjCoxGjBtQDmT7zBzYS7RtEOAkFAqPO0fbIbHg17cRWcYszxOknKpcvk1F9HKPLgRQ2Wx0iVORxPpv/aCR8w+f2ACW96YNqWBEn2kKVHoaLV4YLF6+MFxHpG7h2aiLef3D/7LDesI5vVg6V5twxoJemZLrR0SacxZaMpQgdUTSZ9Z0b2202HFnVm5atZz72SMvswLe/KQZ8lSEn2Y5z268yeGu6TTp/cXbmzVPrZ1bXZ9d0M8L1EzYwExdXXArwEMT1269R3HNywOGrXWeAI64WCGWuSXnk6xlXRvnVTedKXKcBDSu3pv/LDQFFWMRBon/pLiLedFDwsKIDRLtEX4iOHBJJozIUan+E3xsn7VOdsEVHQUsVpI7hLa9jLlhQ7ZrO9lO9iRBgXuS3W/9XpVgFb9m0dSZgXYPq1swjOtl5NbdrmitZAwRXPdcvV6uu8IZRISgwccmrA9Bh2AvV1tklfRnHXsrxvbNgWoLnl6nMi06oQnZGCEtuwBPk0rWZvukn7qlTJ2KKjq9YGLWIN1MOUDEIhCwoCwWhzLFvXanOYVkr1ezbmg2NJxccbNrJtmBuxErghAm4DlEvYqHyYATKdlXRRmFK3uZpWZEeujFwUIiVdtQJWfrAm/0oEnxEmVgjsvSJbfjYAxBRkmeCFYg4vxRkR4HoXHJtxOorADKADdBhP5Q4jMO11dkaW6dnL42ndQms6HPGB/RtXPfoha79Wh3vDj3poh4mMNOItAkjExapX5g30/lEJ71bOM+X8bvfOSyrpbJjaE3VywW6KWldAOjXclWqfJ3/a2f0fPdbp2fvrK1xpelCi8S1lNcReGKOuFvwZCDBrPtlAtFpW1LOnRXBCagUl5lWmCrrnQT6tP7Jb/spTHDzFktXVKSdBy6aoNFKKYah0OKAA9zS/5PAefwXS3Mt+KZKjKEnAPUA5/OtZXmMD4FtpqBT3uoZFzEW+MOo8iDTXvqKiodUABpB/vGWeVCOJ6ykrdul/ytKLYy2btoyE7C+yJFru00lMT63y7Jd2LqEo5P0S1kXha97Lmak7vQSra+Os2+dGc4+8kB+E5atcClBR/9ULpVkzDNRSvBbZl3GBvC9Aydk+KO3xtNaoarL5t1zqqLlpOii2Dqm2ETcU85GgeEmI1cf3CILz4PdwJKr24Z/67Z6N1tqwGyCbjhxjjnsddUyyesbBnJLLvP0kzHLHUt7a4Vl7DFAZHwSNr/2E3VV7EScAwkAbM/jyYHM5xkkSTl1DtjcpZb3KW5hhC2w6Uhcy4ElzVEhrp9fHc7qc6pnOTf6Ssz9+/cNh/btnu3XR5z2pZ9mumXYJmX9IqJk6Fi9dKYIVDaTbcav+tDgmusQERuxRF2bEdPOA7jJYVo365h/5epw4fVT41sXLs1i54AIjEmTWauMyzUkICFlRFidztw+Cb24SDLQkK1pc6Rd5PaZuT/hwFnLCTDMYTQSXF8XMDIC8pBEObnRYKHV+gEOmxn6v1K3iSV+GjQqgKVWJWx60k9p2gKv5945TsS1rmsCgMDaqi6XXHMRlu++/q/meY222Kppy0zAurB/T53hAWaQ3HPMazz6O3NR9DkWQnHnTTejp5B0FDYZDN+6M4+HSsPbZ2bn+Do8PQcJyA5mAAA+C0lEQVTenSgp0bubVnRC0T2HrxRm03bHU0QvdG1DZb2le+2t08O5FmDr8Y49f0ZFMGyipTm8DTri6J/6MnflIISRNMhY8KkY6NRNi2EhQpEV5amoY7rHvDaVA4C98ImdAOM9FPAbDRVyidcyqh6IdJmAcB/1FRntGwWCZNeuHQg8UKyaKVBPxPjMFQc3OzERZ9W9ipBNrKAtxdBAARNpCIpUSzyy1nwcOvDRzRxTYCNI1JBENQOj70TST9+du3R5OKedz5l2RHbp2fEBfcTpqN6WP+iKpl5Wqd0khK0wWwNJbhwrO2OYqwQlZtarKC0hF+w0nYW4GgBb8Gu+xNwCC6zOwdqZi8OpcxfGc2cvzvT8nHOU/YV2Y/uJK1bcMI8BTlm6bc2LHdgyGM9tafb2kCDA7Zw3tQgxA5GrPEWcF3Qlw086A8P1cCv7f4sb070+8hLeiT/qkSUwiglu1DNoeLoGxI6cLAy16zzLrb7NAZVUwgf27ob+v/J7UaUtetgyE7CeAf+m7h8/w4igi1edWlTbDYvnJIyl7bfEYsdLiLjYuSPVdAKtgwYGVJsNdbGvvzp77ZOPzf4Y3Sh6ki+kUqDzkMKI8igWObJaNI3eb744viTf7ITS7xitFKeymMAUiTCxnZXxKtD1+CiQoBpv9A0GyrBHR+edjuj/eptabcFYlOWsGfYJhGO4iXaJqVQmBNY/mQlxOwonk7Rj+MCJ27TxCSLCDf+oxUQqa0ESYjOoiHAjAD4kp+FjFQQYUJinntgOqAhhVnlLGoNhMsPx2ys8K2RrUBq4lqF0IvXkJVvGJROTNlG9Q4YeYz9Y52EkjJmSVrR1fD4qrOl8rF/XjsW11fGKvo3rlN6iXtmzZ3ZQW9WH9RGnezQ5x1Y1vogpGq9Hk8aXsQ1PhP03G405xUzLXVcO8J81NXfOM9/5HLGRYuI9dW741uvvjG9r2zd/jUgnK/qX2ntVlYy6yl1cFjpTPIvMiuc55HS288tGRjYN5yFu+qSoc5FnTMpcHjpyfWAlUijDhT3r7yysRtkgzEWV6cS3pP+rDjHTUtfwLVdciEQbL10pcoUQMA50FS41wkdkvdi+bmG6ZQTlYueqzCuSemP8Lur/eqXk//XZ2Yr5lpmAd+4e/tfr12Z/WSf5Hnfa7Ix0faUYjeaXwLxnM/pHl5KQHpB9n85EBzn51nDq8IFx77GHZg+jvfAZSjRASSVWaEvk4dYBYUDJOi+fHE5evDy7lIOKnMufIomOG306YoGbOui2gYyYo1rMh4yFJPXcYDYb4uQAlnUKSPhOKmziEBz/5k3SAATC4JCYHB9pqrAn74w80MrCSntxRirZdq0izYOAhBi+0mdr94BxMxATKfWKAYmBtqwAomYY0MtUWCwYAnd7iM+6IVIMx0mGHqTm64gfPHLpNn+Zgwlb1E/yKIsCJ9Mqa/8wleAF9trqsKbtxlMXLo6nqXs8M94zHtGXqxzU5LwfrZtJFbbsuoE3tYXOEjbNEGlqh5jfLVlHX5px7lunx2+dOjc7k9cUzZ5tYqfZLmpH7q6UkLMS5txx4ehsaFbOJs9rxd4F1//UF1CQfkMoCHz9RQqfwiIHJ8U4YjdkwsU5k8GIPdU4e5jBDYEttJ1tEwTnExyAQOMnzn1oAsmAAksVCS1iiQgDrB0S9HWY64qKuASd91FiCZdIZUztFPVIVduNCDCVBqlIJOLDVtY374Hmtm+v/q9QX//8Z2dfz8i35lFncOukZ746/iW90PGXo9J0OK5eJVPZFbOzxVgqGRdvrK4EAz3HWltMCfS1lN/16MPxHdNizHFRmBzCv3jpfVFIRyK0E68Pr/1/L40neR6kZYP6tGIRNFdzipG+mTY8GkRseI5uXoINZeaSHEXCYdMVWlSMF01dYRECoI5hQGgxiGk7kdM2xgcoFLWVwCDEwBGfb8yBkAk4gpaRZkaZHoTpx4v4tUW9rRqxldCpJJ9/ZoVLRBLlbB7FYGl1it2gW+DQSixNenCynTocWYXLKKD44aRozKhPStMOcbSU410reEDDadgPQ12nYRW4/imlGVyAFyPheTnpTerde/aMhw7unX1Eq+NDxWfztjxrLpvx7ns5uHH5PeB79c4pMZMcf5bm5RvxwZ47P55+88zwhr484zyVzZbN2lJFmXd4UeE4rVFxpPzXP0AqxpWgcuapCDSAkVdj4jY9KWMEPwlvpnTRiZfXUfaYHbKdsYVV9CFw3lRNRV8InjmL/R+1muwYFU6uvXT7CjavM9a9c83wk+WoA3bs0bCwjd27uP9rLPvP/vw/P/t785bZepTP95ao+S9/dTyoNyX+Z90p3zOpeO0DvTtw/auzaGBe00dvct3UOniM+BqI6cbZV9Tx7zu8sl8T8bEjhzSQoixLE8Ot86cgFLu3xJ+7NF568eXZy2+8M55vMYaJZsfmpJW2Y+sqDMUh+DEYEEAk7bWJ1EzYyh52mIDieW4MRV2Ys/GEh7RtHopqs2iv2/r6mljYzwmSPMfHhSZAT22ZgyYhYbW2kYoELdbcF+XGVDWyZuKRluKy3blbmNc3TeTEHTcMjPeRwk+ewDToAKTPwoxsQRx8AhG8haU7AkDi4Zukj5RQzywIqlHWdrqe69RAkenLGHYe3D8c0ReAHNJb1Ue1m9K/qxpA81NV3hPNBHxYvweMnWkiXNt3XjHaVVh9+/T4xuvvDK/rM9LaZs76pVqcd8NdR5VjMgzTeeNIO6WehMYt5HFVsnq0gw6z+RA4xMhTUideTkXumHC92aOMQvp6mhtsfDEaNN2rIPucy5vr/37+UoIn+ta0GUa7FsK3jNMcNT45zMcuALCjVGMOOtkpuFP7v+r+xud/ZOVfdV22at7O8dap/i/9g9XPr4wr/36/0OMZS27N0Ap0CP2LEWDaKmUCYUhVz57Davm+w8P+jz04PPCRw8NhfV5UQ15JrXe2nh6C1dVh9cz58exLrw0nNcDpJ7r4qj1vlKbugm9Yzb/7b64QE8ugA5UDiAcV6sZzXybdjfbdszfmbOfN69nsenAIh9PYWhUDY58AKy4UN+Ehy/bZGKf1AtPqU3nB18HNrDzbojUGMegGjCW6noSvafyat/OG+FwR7IXemtYj0HHjEoa7TjiKiTf8OSa3p8vOaZeVlR0KhcuIyaPZLXXSj0Yc2rdvuG//3tlRPTfuXwASWB2yjShlJWs5uYtHfozh0OLVqLpwXSziaunS1eGMrs1Tb54avqXrVNsV2RbtGiPu0O7tAKPUofLRJUkh3GZpfrQeBjEcbT45R+5nXJR6rhPnD3xORJLm+cV+1AtiWQzG6TZL/f3W9n+57j5b4/DsN1Kcb8St3WC6vqa3Qv+/vn75yX/zzx54PRplCx+4Trdc+qVfW/sr2u78C1Rcm5RZf14P8aoJmm2s6MXQpFZOZrI41t5TygxqaHz0vtlHv+fh4RM8G9bzvkhnLw5vXrg8nNXnSVdPnx0unrs0XCGS8G/fIH12WoiUdbus/6zNZLBjU5etQI3oqacMtRyJii2Rgev1VjlAiiC2gTPI3i7Ch5/WNt0H/B5fix2eU/hfXImi69QGIm53enKbxeBqblSiFaY0bPSjHaDVJk69beCbOcmFWdEWdNRVtmkHt180Y9Hr5WkM4R+7XCcxP2ebwwJLEibOmyYNtwF+wlTzYXngJdA51st0LTYxd+kbuA4dmB3VW9VsVd8LzuZDpxx6SBMevwdct6CLOMiYFZpRffnIGX387ZXT54ezIWwxLewsOIDmkCJf/7hw7aQTRK2myejXIOfJ500ogeKOL1HzY7Q/xfC1qBOoFkOnIWQvzumSlurnwbKFOPJcdl9hlN4MUR2lj+QHKE+KIMSLRkz09gGEliCFLeUuc/0s9OklGOncJf3/v/nxf2H2DM2w1ZMvgy3XDr/0a+PPahL45LTiGj50jccdsfJ59zAu+0DyKz3tl8Y/cN/w4Hd/dNa/bo2O+dpbw++/+c74xtxXbp8t95fx2N6yu3nLam7by3hVBm0M9TY9za1TB2nqrPVka69JnBO7QPN2J310ew2XbZ6xLIvD+B4X85dGUfvv/EZEaPX8ieGzaVu0pZ5Ba5yMiTPrjqK+4kwbmFEGmyaZ3Bkkd2h+QQdzi+1lu4mfHLGr1uLGA4nt2gbizc5/WprHqK3kffoCmENaId+vyfgIW9UTbwtFHFIZb0Fb6HPpPLaZTw3f1MT7ml4cW53WZ2O5N2mrD1OOXLGqDJ/0I+iMveqbpt71uuixSc9tYx556LFiDR/4a6/251ZQ+ENvbn+z63Pz9k79zeRzPrH3c6aCr68ab8bccA2zLDa30UbdxXa44/v/OPzCX/yXdv78tJ5btXzDjns3N4reiv5Pr18b/5b68fdoAFI/ipFDVdYLQbHlSt+iT0UXi21pkWU/1vjWq9wT65pOEL0fFIuq2pbsgWoi1vJwRwzI88HeNhmUct9XazQVOj86OYF1nv0Bgd2GAX7vp3ZWaH0UK9Woo7fP4/sns54Ig6o2RVs3c4Sus4YSxZepLe/Tgo7TMgFmXcA7Fni0KzytALg/iTK+IOQ9Mv3OUsacTdGr3wauFhPKmcKOyDh/yvtIGeGr3ZHES2E7VqG7Qbzyyle4Vpu5foLM8nzJ2gpLpKoj2Rzb20cI2hkZvsKPmkzORedkZb+Ot9tt54drwxhkpOurw4XT58YLZ87NTmLzwJ7hyOF7Zg/p8+hHtcuysFUNHtv1EQU8UjZ2/ATg+bfPjq+//vZwcm1tpvbIlOcLOs93XotpD27gaDpobligYUL3xPXR9XU2ORN5/qNdpJBPBNxWaTauDzTjOiBWby9HTWSj7TaENdymy37dx3mr12fGETjaP0MiFC4xKdvGre3/4UAHznnUXX7ZOQ/+Fuv/qvNXNPn+926T7Tx7xpZth7/zy+PBQ/es/1V1jB+kg6iL6KEjN9eMGLkNRedMat5M/VkVd+FtRRTPBdudfwwO0qPLP/iR2cPf/dHhe9FmwJO94ZU3xxfefGc4SS+MQVA38Rrs+nMiMPFZZGJSIoaIj0LEBU+TlfyxJahcY57K/GxRDDxpT3qYivg17AmboxT1USUlxZ6ijLFrXl+4JWn2qDEs2iautIuxMJQRZiOGh4xJ4lZqMIJDoStSH2MdK/Y1WIZh2pNEpHAYxlJHudoDue5rmNzaVm/Go6PMzdsBj6FKJiH2oz0Y1IN2neSberQJJXypvUOXc9PsEI5AqZoue1wpygkpWlg6WRskkSY+sr7hpQEdfzqePxc3n7hiola+b++Ogwf2jkcP7Jt9lAnZ7sjZguYlLCf9KMKp194Y/4l+f/d0fDpV9RcuaoBN6h3XSrRTtsP8fAsYbaA+Q/NBt1TPHWfL5ybELSDbsf3mN9qi4qPNpchLkPo5rPDB+RWh/xlTtKudl7y1D3EqCdXOnSFcFHxdZV5HsvcB9H+fI3y6ztFWWYGMbQv0f53HX/y3/tzOr7jtt/NsAV0G2+krvzb+RY00/3obelqDtKZhdFlsIgYbJQ45h/nuO8rCt44WWg8cHb7rYw8MfzIK7fDqm8M/1kstfwQwxpEu1CjGHb+ycNH4HtAoSqcHFqgcikKHmNBPDDDbtzXGGGxI5Eoxn0Y1QjeCb/XoFan1XfQhZPO3LMdL86X4HHfoND9zWvriSQOliHFelx5zBD0PPmsIrtWpy8OKDlkniLmWQK1A+4cuc7amsP+/vXOLte067/pcl73PPsfHsX1sx8Vx7JpeoKE8tKW05QEJIdEKGqSoaoR4KASppCoiD3ni0U+88AAqBBFKKRQEyBK0iBJARX2pVBVEo1YiIlEutHbq2InrxJdz3evC//f/j2/OufY5MXEc28c+Y/h4zTnH+K7/Mcb3zTHm3GuVD6mc7LA0+kVVnMPHqXkRpn/mTaNoaHN9bh6afJpjc/UDcigWq6MF1YFG44fBMhB97tuyk2Njdr3OYwdYq03b0xf0zPh+vVn9kH5A4pJ+SOLo7gvDqb4044t6y/4PXnxloRf+SgRWzPUgisa0OxP7DgecVEt1szvXxnq0g9a0z+Q3vsi1DGqiyH1hf3BSOuxsk2Fhomt6bWj6SzVtPkIqt3XAtrBPfUq9Km11VIWMz+YopsDNh4o5OEwDtzUgP3RN34ynmW2MTCXaqoOnNSCBicoBslaCIWRW0WrhHynGeSQ+qG7z+S+7X9Ft08//tR9b/PfyoR8nBOa9P9XegWf/4r/s/7zA+CuaFQ8x/gkC/EYnf/PJHTJfHqAXTHw9h4f5WfOFWaIYxUMpppWnxh95YHjPIw8O36dJ5BkP79NfHn5HCfhpfyEBukIOr860bYZS0XPt0xY4SpeaHDPySy++txe5v2UndvrPYGSHJM990KWnLGpakFNV/KKt9solPNPa+tWg66IjFHjFYX+0v44wiurHF14w3zKqna9biE6FRLFMWGIH7G1TTmdcRqf10KgCDhQwQDbX5hVeK1UGC7YcxVxBKqK08JE/EkkTfNZFh6gEa9DTuku24ad2i0UTWhPpo/zBAnTQz8ijSLRP4KWaBs6Rir22PerMElngjeDIiDit7ZpdJRv50BdO8BQ/NOjOCi44ghlmUce5PZNv8Gj1+8CVa/uXTreLG8ijrnhDGweQSbtl2EaEBufRDqrUVuOr/HV1sPReu4wV3eQXY2yUC7EK80rfo2yEPE6afoCEWz6oqI/Fi8NUmoeOMg0gygK1cemLiNYn3GpSGy9CIg8MsRf7wYA+gpx649H0l2/UfbPzH1VzXejBxuaPDswtm/WOm/9a9X5FjxL+7t/48cUX8LuXmxHwwLu5+s6s+aX/tn/37sbub2sWfi93/ICjyTEW7WB5H3N+HBvnJ3ztFbNd5eH7F+9970PD98+blYA/+czz+6dTFy1eYbiCUKitwKYrYTSyaKYey4giCz2K3O+mtmqfZFGT4miKNxafbieYEgiKhqP9noms61sdoY89Eso3/RBNkF/1wkHhdroeET30uXzSnwXJdZ4dK2RJTurNPsJQ8qml/VWvLWkup3BTg3HwB6J8DRBznWVDjmdHg7mkPw47urtq8q388m89uk/TX1WPn7jqcHzGZxJG2hKs42fsLRvLd67rPFbNPyeeohnHQusP6ucyuMWg36In/OHlnDLfIE9NeFrbOH7kwtcdYxmDxiAi2ic6ZmNgtGUa62Wrxy4ZlMw5K7G7MPHjGfWv5GpOlq/p/2KKj1xVu49cF4mOo96Gd+mZkeR0Nv+pKJnoPDvGJBWKWf/FltI1DvxIbn1S43jCpDWPNtZ1Hcc+t/hg//X7prgm28uH+RGqYIBjZ+b/Yvery6PVv/upH11cnqT1s7MI1Cw4W39HX//Cr+7/nELATwqEB5kx+vMcRRy9/dqKhr8TFzfgFO6Q52W8k1bwefj+4bHHHh5+YN7+1JcW/+uZPxx+nwlAPTFEqUuBxDGXSleUXIgcCLhXdoEiZ5lE7aZfCXC3nf6+1HIhQ0+LU7F9WlGhmHjpu3QJFZlKSW86MEfFvDaNZ2fZIZj7UOemxacqLDK8DasKB2Tf9bfgHFvAjFVNaa6YagwsiUVsw0pHY6yjVyZtp0KXWcFIR/waoVRLARZfwWbuAz7zm6zIwA/arYPHjRJXvlHPOfKhpdG2e9chfGgofZbRVFc/lCz4kZM+QS1DIfIJbLyMzVNpK4JYpdqRS2GVVvKqjWNap0/ooYMelX7R2+M4fmoXwVbPZcE9Xjd7sJX66GCXgN0CaqZSOzPUzG0aZdk+jTiDOOF41m7oqw4VcSp8JVtC1CQMml039wVGGOJi1zXcM98aXtYn4lmOstLXM//L/vJdOxyyNaXqTCMb3wnzX758WTcaH/vrf3nxqeZmP7wKAmemzqtQ3mFN//wT+wd3m+EnFVz+LHf3mthECm3Z+fbXUaOCgmg8qfLlGWQaCmltNzz8wOLxx75t+EHdrYdItb//7PA/+RtL7uAJQn7ZRdNeJD4/c8usl295wQqZDg1i4gUZxSMp4s3U5I22KoFQp6FHIFRukypn+GYf8tKODfxoudqx0WMCm6LHf9Lh4EcbGGCnfY6juuIf/JxJf9XrWvYJs1anVmSUTciPFSI0FgpPSmdlQ3BdJtlCKfoSjSjz6oSgS7+MuIxCycy8qDNZVPrztqwkCignH6RZR45lg1/AEo2abbf50e1b/8nXao9q+h5f8yJT9VuO2Js+E2YSZBm68xG58Q1eZacTCs5aATcc8CJcfM3evKmdT7paaVvfuKobsZmNooZcUGC75Y19WeOvcIAobyFLpuzihcDojAeVrPGRfheG7JxDJT544r+pVYvusc6Y2B0xp38sx+MNjOWxLAQVSREuvMBmCa2fPU8ioOmpfpfZGOECtsXHkXpjSrW/lzlj3XYb/Yx30WWOI0W2ov/1zH/rlCT6xXqRqWvpmcaTdOQrK6mTv+7bZr+weDvMf/XwZU21/3p8Mnyir3oZPN9YYTD08ioIkIj3p7ufEcn3+D6aCUJ04OXPcZJPAjy/NcFFq/bd8Mi7l48/+u79D08Uw/DUs8NvffH5xf+toNYChINjBdOVgosGdJPj0CZpbKGxpTZJE50Dt24R2rzNxFUQFq+CcLMxIQy7sV+0Cn4sSx1AccgF6jpP+KI6yThqCVhit/+TGeGqTziRogjf7I/ckjzZtCT5EeDx1hacpUH3Rqt6fI5n+czVhAt2IUIB3MtY+KTffYDMsuCsDPpA/3yzgQHgEz6de9musGnLsJAeiIS5TPqAhAfmssPLMchY0ijRq05Hy41tiCs58aN5jZOKzEEvLfXZKJolrW8YC+iLbGFNmituk1pT+iFjQcnKdOBF4sIbsLL9QEEG8mdsPKtXmcPjyviKnsSRElzKr6qFjiREa40oj2PJWdFXIjSN54t00mOyAXrsCG8bT5KFlLIbvyfZk/RYznX6K7aAVfVt5NlW6dvqVehmIOLdN4VieeW+lD3IkFidfGPzf+IHN+2jSUbmj1RKN3hjqQ7qEqZwON5O81998BtHJ8t/1RMvffnaCkOgl28AgZ//5f0P6JnrX1VweLDICbxMbqYMhXMHW4Ju7nSVgBffoa+l/BHaPcM0055+bvjNp5/bf4E6FwkgeHOODKYhE5LHyA7gBHLpKj1FV9cEJIJVgt9kh0Up0FVACl30YCftBOfYreBr5dgZGtop8PnYbLAcVVe4R2+FNDP4QyvL9swNsdgaPUlULeCPqw3TiIjgpBWzzEIvAS92lX/ma76WP2Adm6OJzyrBqOrTUjgVTVpzhXzO5n07BvLqF7VPGBV3jgRmfKCgO0lip8DLWFGgVzJqzXJM44RdCRXkoRs6ZNDvwayoc4XtJAv+fKb6pWwFYeSDVR2hPyvP/ltcPEN/SrvBiKpRD5dVJo5GJPmFT/lue+QtCUa2sMHLFf2pmqQYXXpAcCNAjccjrjZlYLjSzo/IXfCZGzG/WoHv4kMe/OUrhNN5BDGWtJrf66s8R8xoqf7D5pp7hT8qwRYeGScF9IW81KBkXqKHUrhHk92xHzVnTaRGfEEfMmIzNw7p96IpG9CNUvTc9vN/GD6zWS3/9Yffv3jKfvSP14zAHftFHK8VqZ/+wOK3xfPbH/9P++8fTnd/QYHiuxUdtJ7IhGSSIlOTr01CtguJsfr+XE3ZcdbqRJNQj+CWp5pojlHjhGUmawYSkDxZPXEjkllc71t5siqw6c59QZCSPAcHOJnAa8lRXVY6aqmk4qDTJr7sFbknunkq5ervLVUtKe2ISfDJU/YLJUuXBL/UyT85KG+UbLFj0iU26U2QzN9wJnhhlzQaLGQQoEGDxb2/aRhfpFX/gGrr97JEJec3ttS+OQADq5YTpGiSFu4bQA6xWzJlL8GMvsI349jkmEjEzT/7IgrbDGbot8gmlfMj4a3n7EuZpSwp3RYZKoIqsHFjwjk+6n+6xytF46ZzVcvmpV7ATv/Rj2zTQ8iKMoMifVkv89En+MSP7a4tWMkWQQ1DtwNiS++RJQJ8xQBhhD7oN9gJ1gh0X0PHmBPG6CFVyI41YxkMRA8F9JDj7ZLvItG/+CQ+ZEqPbB/p9ftWMkc4ND0kNPgxnyO26ETfBioNmiXqH7mxQ4xWx+CMeuGi8xW2w8fN7bRz4weqFo9QFc7lu/n0Qf+r6AeLObpfdCV5EiYxYM0ElQonYtq4ifFs8E6G2Nx3JHz4XfT91GKQGtltXQgwj3Qfzn/9FDQU2CxqiYaONyfbG5TY+Hab/8Lgk/v18td++v2LTweQ/vnNIsCY7uWbQOAX/uP+j53ut39mvVj9CMHaU5NJpVIBgPN7Ly4vve/x4S9pvp5L2+L6735u9ytXry1fzrUDteK1pmmb3w4ibXVEoFrpy3kSSGixisTUTGYHsrqjJmBA0mKN7XKwUxIkcOlhlEOGk4WkOYASGKh3UcAbbZE+gpQOanQ7bYqUYldAVLyPoqz6FGD1YtOwIEkpIMsQxAMHpwQmnSvZaGlMRCeC6WCBjtHYlMSuRhIr7rbCKTYgi3NQIICTKJCl/+Wfkj40quKGwFRQqyKlBPoGgA1bkqA+grH+FsY+wY+PhRdH62vYIQ87ZKBW8EqKui7JrsdPIyPVolGg9qoYHKFLf7QdBPGCmW+aIFdBBkfTcqKCfyQLdK11JGljU8kUj/02Lf2iUnJip/Q4oTUmITiXb742ntBj2fr0TaRlKQl6/KQP8AF+jwWb1zBomDYBoWn9RM9x09KS0GgfcmpcYofHgQ7Ugw3jSu3qBl1w7v4Riy4yWMfEBrvleqsXFBoNWIAh14wZrG83Bxl7rd0JWTbSXjc9dkIszMONqOlzjwFs01h/tfkPKkUvLhU6RzdeYK1SvuKT9ZgCQzP+amy+5fN/P1yWSb++X65+Uyve57G9l9ePAEOpl9eBwL/8D/v7rw3bH9f8/S4Fo/trJcKRwnQ7Ol4dH69256jZbJfXTze7GwQorgmgFN34+8jKYqOGtRoii0mqf6wUOTppaVKLPDrgQ1K2xNhSq+DhSn9oOid+6WjGxhH96NYKwFt5SCKxESh3orV0+UIAQ0T0wxc5iCegEkg4p37EgArjUHWOctzxizY2Y2v7Zz7rZttQNkWF6Ga6CE0LrYeUDWSN1lj+syWtLkocNqAW3YSx5nfkJrFBnHb8Q37MRA3LlERM9VWaJKPsz9Gi9VFmFRbItAykSkeTjlCzYMMcJypjd/yAp2giU7cTtn/CIvLhxFhKZHM9x11XbqpWKM2rCvoriVCnfhKp/tXYyjlsSaapA+doKd3YzPn8WOfoIbngJ7rxw3J0rTHsXRkYDXWzyXRNB/z4wrd9egz4Ggr6kq8jbYlZ8nxD5/lgooMPzxW98q3X0VLfeFnpYmuV+BQsqddzae/yVHuOzpXSzz1A+oIbUNWCmf6PzFuNE6dbxmjT6X5pzlM1YRobbrf5r4n6h+rI33rmaPj1J96/uHKIS796vQg4aL5eIZ0/CPzjf7//YU2oH9Lk/E5qPLk0yzL3CMece9qZgXaCpgOOa+ZnqheB75DZdmsJeEodsBF0ddTts+/E2crkTygVJExHLuFaxas7AqNEqtPd7wlE0e8tRSycm+PzFgjVJCYtYJNokelVonJGsfiIkwiRDeiSbfzhC5bYpjFI+douiJYEL9u0MoB7okESApPMaLOJI2ZSzkpXzATjMQFhiAqrJfQTtLn2Nrmqg3n0YCrytT8dXDAdfQ3bBMyGC6RmcK1omqKGN/2JH2xRYw/Uitn6TzZabvgrMUNPPTdNbENyCWbws9qys2bJStQ7IdIFU2Od0JEt6K6+pa+wzisrZIgn/UViTBJB9+RPMGY1N+qudhkqY5pdWbmZV0ZQj5TSg09+NNJ2AUhQtFsPjZJpsa3O4/oAn9AaG52q75xozSdJrFDBCH1zDEqq6XlMICXV7ptJyWKOjGMeqyQBGgo2ce4bWKVtgeQVKTs2+lEq8QUzxo5xbOMoOs5KiYf2QaftqtlTmqRPbLfr/Bc8n9NPfHziZ96/+Cz49PLGIOCA98aIvnOl/rMn95e2q+HHFA2/UzP3Ekiw6qhpSlIlMBEsROMAxV10BeFpijoViHuawk6sunSCUL2Sm2UZbclQdLI8X7cP9HFaKx/Op8DIVTTW6ln0TvipXmrVK3ttqwK8zuOLV03N/gQy2yZpFdYqISI/vsIvM0hKTacDfgvS6DmLE9YlmRV6VOg/ybFdOkvqkEQFxwRuaBuKDRNk1HZqSSp+LIZ68k0XKk2Cj6mBUkUyeRY509KoaSzpnCMj1sl/r5RKF1TGW4Gd3YfwTRpHn8yPpNzAcJzOqJecNo6qpXojOLFFmrdvTetxJvSkyglAlQdjSNfpx5IGV0rRFZYHfak+CSbxAd94lgrGGqveOUn/goPuT9pNUdFFQ8YJErJFm2t8zhgoqvRVxjDUKeAwjetCPm1QuX+ll7mDl9BLtOpjZ+Zi+i+f4a0xmvGS+VVakYnOajN2arQOsG6EZ8d1eKSakYxt7pebxxTjICNx1vNNPrqqT2ypZLyu+b8cPj9sNv/76n79Pz76wcVVy+wfbygCPQG/ofAOw8d/ef8d+nviH1S0/hNKEOe1ItK8V0BpejUBdR+uqUSAVn1NZJrn52UmdZxPd/Oi03XkJagwub0tVsm4giGM7VxnZisdFQAIiIReGenAAMtNNC3o0KbAyLNc61OQ0f6dl2iqT6Ai0tsvHbV6kZn46pUa7GMpv6goXs5LNzGTc25SqE9Qcpg88IOW0RewcpZJFCQolq2u0UewmnygHqnoKTkO1tTLftng/uPtWigr6SNX/yOPjiSsxk4nBc5LsgSNRf0lGfRd9Vfe2oVevWAdsWWGDwlM9JPNiGNlhy8ozVhwrT6MkbFz+9T/sdNk6hvjax+M2ZggLS+2l05YKKWLo5//t753oz7Qx3n1YZ2DDjsDYJwEHH9pNw6o8/lNfa1aMKNR/+kULFwEu67teulL/0GTeuwJTtws4L5sm+ERQXxKkPtapnPZxjvnwTZ4TNdzH6c5CKvtbTccevbMDJDM22f+y6Fr6rvfkKGf//AHFp+3yf3jTUNgmqtvmso7V9E/+ZX9+zab7ffqlvl7FIL8s3EV5JOIma6a5A7emeSa/JqtbRXaAhoIjnwkJdVznTt5dsh4AzvPdBNYCXRicZIgKUmAxDtAskVcLyypIXfVClQi4SqFxHV4p68oIjaCTQXJeRCCq9nfJGDfmCR0XkkeKlYRJEd0V70TTouttUIhS0DlwG0ehM+TajtvtjbVxip6KiGoSoGQF7DkvBzTufYYjYeYCMrF66NhcNJzPHZd9Yt9qX6br4RYxRGv5ZVXuTJ7hiH+sp0f/cGGvqJYnfyqJEgdSSTJXggIyLKVtnmBt4khw7jPD7FPHTyuF/W8n4PFJBGaJEqJY8XYSnzBp4y3VKcP6a85HX5lCzfWCWyRkDCDadlhHpHUuLIOmcn4p23yJ7jWOMDmyevyKzXz8TnHYS5vnGP0F4NUBZvhhSeSnFjtL9hjW8asyY05/ZK5GIw9jrgf9b9p3M77boavbyXQ/kbPfxl+VS+jfHKxXn3qZ39i8YV40D/fCgTGCfVWKL+Tdf7DJ/eP6274+4TB4wqt9xHIFGDy5xeOAdNzRLWNd/GZoBUYgmACQgWlBKNpYicxQ5lgQmA5pKm2CjgVYOoanYohrSTJcVE6SA6kjeKjLYEvPnCegDYltrQj45DX8S8xCzGW2QKbApSBcT0fk4zI5bqSJ0kg/spe4UqSL545Duif213BdlRiPXO8pr6Y4z6XjR2TDpJREKwEXG2ll76XXjuH/Wy/su0J5vapBXvkgE/xVcI+tLn1T8MQemSWLOws/ZGF/1LTsCs6aEo3+ooH/irUY7STkY+hm/xH2mQzfJZLAuPZqo7UVUlSq6v4nuRddTWepj6gBX2FcR1J1oyX1iaF5pEf7MJQuN3LVjd6i87Z3xhP4wX8fBOoI5x1g4EvyCBhIldyfCMQ7MC17Cob8T/jHTmUwoox8IbO/8XuWb0D8X/2++u/97M/cfKFaO+fbzUCbTC+1Wbc2fo/9p/337a7MvxxRaVv1xR9XBOXqJW+GSNQgtkcKYKMgoHyE3fjrUWrWV9zycpWbVlXEirOFjHNxfpcdOZToGhtkm2ZcBO0ufOvQCeatvV3K/lNXxknZvFKFkGI0nTJaUdDfyC7FevNCosgmYBGMoQefTM7IqA4x+Nkb+NrLCR1mzWKmCUDY6+VofTrhaKsjEWnfyTGvFTWsI0ihFg+R/tWQZuKmNnwkVDrdgNt4o0rZ/ySPC0QR7dQoXyiD8m3PiS0a46WO40DWqPYZ7f+yC2NcbB5rOA8ppALf8mf2DM2dF12NL8miuYO7Bl/AVL9p5eg0m9uk4jilT/xD7nwRVprtyXIGvud5pHBtLZ7Pm9M0vSfoZ3zIpukSIJmL+CwzOyzVxYadp16TPpmttWPno98M/xiL3aiq9w8wFs+Sibj7XXP/7W2lvVu/bPr1fDp88vh0x/6wOJrh771q9sBgRYIbwdTug0g8Pd/cX/v6vzwmG7fH9PsfVT36/cSsEk+3CUToBwsFKS4zuolyYnrtBEcOM/LVN4WUwJDvj50w04wI9je6sWwKbCWTucIxxR0s8qJHchLOQyGY4RyQCLAOXialJg6raamgIfdqT/c6sWP6CgMmh9NJkHwwD/jlBVN7ESfzG4JvOQVNtgGXeUCtkeVxQj2reD4ZGcqYwvnyOVYWKGL65LnXFLb1TNfimeu28mHBulT5m395L60jfGjbkjiU2xLwC8bqr/mmJZsaNAADkXHNe3hjz/eXh3HXeqgYvyIMy/m6VzCvHpu/GqOLVOfBLvYPo1T6BhL2FB9ctYG4+C+Q+1k3yFf9GHbRI+91WfpP/T77XRuGA/awslnYVOPJtK3JUdcOtXfUttm6LG7/Crd9Ht8Kl8LO+RMtha+N9tS+kJbdNW3wQ0bbp7/GnQvKbN/Znm0/sxdLw3PfehDi2vY2cvti4AGai+3MwL/4N/sH1K8eFRfMfGoNsweVcQ714KWAym2T8llPum9gqNNwZvtMZ2eSUIJCFNgYJIroIxjIkmEQFA0U3AgAFSZ3yAQkKq+jqV3fs156YO/CnWcV1BGjVeM1pebD+wRkTzK6nR+XnLqWG1cI/usLfg7xybX2UrEButXVBMoxoX2sgdsK4Ait3TmGHzAo3iqffJx3l/VyhFe7xaAw2jzXMccu5I3lxA/pr6YeJtsfRmK9o9tM23BZkoouU4iw4eiKR23uq62ShpcL2d6WvKQzsm/wzGmFjVN4yn6kYMNHClz3YVt2XuIhcdL7ZyEWZ/mkc96/i6/8O2s31xn3oQp47OGaelATvVPS4gjTtg4KrTOjD3q4I/dXOXGgjNK2ZLzScacB4zQq/+u63faPquvM3xKv/n31N/54OJFC+kfbxsEDgbJ28bqO9jQj/3b/Xs3q+HdCp2PaO4+opXyCYFBidkvWhU0WUER/LNy1oR3oCFpJShOKyz+5lE72doNU6LWb8nxSmsVDRCvckb+atBxrpNz2UT2lJwW2HXuAINcnbcc2tYBSeyukyz70HShwkFGqw226LhGDoGb+iTsmY2j76GZ22oqffCL78gKvwVGh5OQ+PSyjF8MSpM/y3fbopVxfGCrd0akU7DGNuVpkRzapb8hHVfXh1wGKTLVMBdZeic/ml9mUVIxzGLiC6HdVzgRjOmHwqzGQPTGrpKdOjuvIeLHAqnSZ/krQBgUi9KDBDlom6s/sJExVTaVfI4AQ0Ip71xnnBADgRJ/023ZM9vdXmO2+l6VIBG/pj/ZgbZK6ecaPyj0V/o9OKZ2+rRdarq5/6tfm72MAe+ORE71D2ryRFknfO9H6xMnZeaWYZvZLYYaw3N7sWh+bbtUV/xie2l/NDyt7yP9yuLi8NmP/MXFS/D08vZFQH3cy9sZgZ97cs+PQzyoCPCItsceVEK+X4GB74nmT5Waa7cOPNBAq0DhgMhddfFWPTQkFX05gwvfzUy4mctmu9GRkRY/PzWpaSaZxcfRX6U4LNdaCShAl0zqS3bxUbU9jb7yiTatMPysDDuRWAUa/MEObFbwtX/F6/amt3g4KtHYB+TBiw7bB5aniqmSVTJG25qA0glvteETPGUrvslmtg7b8/QJU+sfsW+6wNg45Roa9AQjruIn2/ZbLYNin6r1s9XwUcouzrGtbAre1EqebCx6aijYDAZzW9drMBfW6aIDLIoW3uihv9DfiFs98oyPv8UM6vIJH2MzdcFfX30pGZS53dRJR2xx25mxMetHdMGPvJJv/WcxEw7YDS02GpeGIXXzMsn0zZzmS5J0jQ1oJ3sn23SnITz9TsEoDp0TxsEdO8tGjcCvbPebP1iv118ZLg5f7Al3hO4dc3IQvN4xXt3BjvzcJ/bnNq8MDwynw3s0wR9WYrlfK4aTrIQTLICHIMZRk93PsWqVQB2l6nM1fVI/XU3P8ajjGRur67ks6PW/AxXP7qCrYJdAx3VW6bRBWzThE78CqLQqW/j5sPWPbY1+vtqZ5EdetYlHvLEZGuR6N2DmE7hAV0doFCWTOOBpvmBjs0ckubJMtWe1RTA/xHFOV0G+/EAC55E0yatrt2mZqW82M77efpddsTP9Oto82pjn6eglUcyfnUJ7K3tcz4tnygP0S56bRg+2yI6x/2/SrWb9J7CCAfSlI1hkq5tvEEU+7cjgiNzIm47VV4Un17Jp7EP4KNVeeBe2tNkf+z/ZPe/TiSe05V/Zgi9zHfPz8Dafmo7SV21grro2Zn0DNvqafkmbaF7WLs0zu5VWt8vh+fXF4Xkl3Ovo6+Wdi8A4md65LnbP/pG+r3p1fbj72nJ4j6LJJW2TXdLxhC8oIomwQpjuxPP27zyI0V4oEpBqNXGWJquHolQrfHphRyFzCq6Kc17IKZgWfeRH71wXksquHAlWyXaH9XP7zaWPST41yCUYsoJS4PNqpGTxJ8AKmA600FKgn+yDXo9MxUfbvJ5r5FRdrYSgDVahIDCrTWS5CSn5c3/Txguwh3qsYbQn7dBOMuJPrbyqPprzSV35X/XU6U9T+HvkA5wbR8Pp1ivC8rNkzY+3smOyiR+FyI0UmFc9x0mGGjzOVOMt3ak/ROQtXY1cf5kHWCGn7LEcjTkW1OCtVo8/ZBdtznPT8vVtgGoqhTc1dZ7+Ck3sr7mjOu8U6dhW8dUOtRIsz2pf0NT70tG14ZX9A8MzPdmCzJ1XZoP+znP+Tvb4Y0/uL149HfTjEVoh7zaXFkfri4pZ94EJL+fsdtvFaq3fiWt37+yrzQNYIgs/H+Svm9gRdEm0DjgVgTlWBJpFJFY/yF1Ih35VwYnP31dv+gqU1It/3IeMKEVf/SmQIjhNso9zpQheedF6rfFIZ62w8GerX8CwL9LHNTZp49bncx6+hl+BWyu4lXbVZaNw4KivcpQOfRZf063loWQowhJkm+1aUtsfv+C0Ej78cARJQjSbDUkjPAsdSTJld9lrPonDPvxi9WQ6yVmuk5jxgP6x7RXgT3Vt3cHc8oQNvLYbevmCfbZbuBaWwQCp6mP0tH5EB7WlB3p4p3HQlEPk/g3uhVv5Qmv8DTZFSz3YRW75NtnvMdIwyG8q0EZBb87neBdmN7UzXlTcr8Zd/YuP2lWZYzH2J8RNfvmKHrrYN5MeG8Kmjc1b46KXDnbah1qvXt5tNl/drdfPn9sOL6y++rkXPvKR7+orW2PcP1pA6kB0BIbhySf3x793ebikbbDjk+PhIX2F5n0KXeeUfO7bqtKrivwCkVeDBHRwI0gRsGgnCbA62WqZk4QQZJ0wnCByLQbFLSUEFgRNDitjvfHjMak3wfwj6vBxHj26KWg6soqOrHwqOipR6oZAOedwNcvqk7az9cWXIOugjOXSsNKq0L9QJD8PExv6TzepKx+gWflXLxR0sVUyVis9jFW52c5oneTKZ9snvfphXFrlgKqCqa+b/+FM8kVf+QNm6EUOuBfd0VpJIxsGVdWOlchQohsoFWSVTfEntpeeqis92Ahf8XDOGLDd/MBv82HPd7JpfGTsVOLMWKLfYx/2JJkf4Nv8Acuz48nq2kfZxhhF5nQtqUKjxk/xpD36ZLBsrZsKYQgkqkPfqFc1h+Mq9pbv4K+fz3h5vR2+fLo4vbzdHb3yrnPDs3/rg4tXSmc/dgRuhYAn0a0ael1HoBB44slPHd+7ed9913fDkQL1fWsl5t3R9qJ+Sf0eBVr9MqBCr2KSEoDeEiWW55xlsV4P0rIvKzkWFdqAtFhWaKyeWdmQu5DDCoSVBnIgyqpH7Y1Hv0Xq1SRt5lFgV/A0PXxehqutVkVmk2z/sg1MKuQjdGd1Jvu0imGliVWmE73tVv2kX/Zhk59DI0W0XMk/bOIaGfKzrTjJZiJRHXlF/8abFFZN9hnjRh3BCWzAa8qZSmgHeGCl7G020mY9y+2IS/ken7WixTgV19NJ4nc/NX8KB+vhRgpjVbAxOGXFTp1X1RzFS38VvrRl9chZrYJ1kyL/KIey6LtgTmLOeMAm9T27Be6b8ILppo0JbmqwsfrG+iUb+4MHmoIfx4yVyIG2xgDjxX3ZcPSYk1647bv83jdbaqyWH8Pp9nR5tHpFNn7t+tXha+ePhxv3PzA891M/utBfAfXSEXjtCPQE/Nox6xwzBP7eL+3vOrcZLpyutH19bji/vTZcVIA+L5K79Cc4RwTtzaniq45s39WqgaOTiepn4pyoEly1om4BnHZyB5fmq5Wigi91tCGf8yQU0SnoRl9LnArgXnHpZ6rCIyZFXM4pliH7QhPd6Mq2ZeoJ7PCUDbWdbAH6qHquy5bYPfHVrsC8Hvq5vdhQuCFnbGs+QU/7dsPjSB0l3nTCA+w41wpOdTgX3VyTwEhkcxvWR8iZ6pBdPJyVHdBttM2NzOwYTP1W9kHPuZOasUxio462uW4uD/hIpPKl6sCy7ESfb7Rkv7fHxVs+I2fyNfXYrP/kZx4bQGMbXDezu+mkvYpumm5I3xWNXZ7TXt5fvXZ1vT756oU/OVz+8J9a6H34XjoC3zoEegL+1mHZJZ1B4G9+fH/03XcP9+hR6NHVzXDP8mg40pLsHgW5Iz3PfNfZQA571Tno6oXllb5lYB6Mz6gwPXUO3g6oeiq8UULSd/BRzvKWXIK0eHxDYEIlViUOPyOlPnX5hGdKSlplKRFEx0QVmthBLXp1M7A/OtaqTfzzdngp+EaBVlfcPNjf1LWE1HSjcy6D86LXuX1RIh39Bg89c+Y1ZsmcsEAPbVZs3XM9cxxJzE7A1iO8wERvkQWb8q9kz3Vj26GOw2RabfEbneDpG4Qk4cYff4M3tJWQS1fpQZ58lZzgWLTgIpuFwYSrnyAMw9XldriyXd64cmF9fEV/Znbl+rnhyn1/dLjSk2yNjH58MxA4CDRvhsKuoyNQCJCgv/1keNdaW9tacZw/JTEvh/MKnBfWS/0cuFbSJGtWOxW0i3ejSm2Bj4G+BWF2cL0dDF1ecFIQTv5xDs2LOiSzBPSi2bSVIduermO1zktTCu5cs5D0+SwROEGUvqZjN74MFUtLftn99a6px6Y1q/uSpURUdsKPbRznem0bleBxtNobl11wmXRt9eM3SrxCdPRPsthKZn2Mb8aFFWb5ryP3Caw4xzqwmCXXnXY2ylbrF7/yqHgatjOMUQN+bAWzSkcfsvDXq9Nlnr2jy3bR6QgvfHVljNQnR/KD1rld9kFeLvbrG1p3v7TZnm5266OrWrBf0bp1c+XG8NIzenz/Tz/cV7GCrpfbBIGegG+Tjuhm3BoBkvQPrYeTF0nEx4PitRK1EvZ6P5xslKz1ninPJM8vVptzg3L2brtpY3rtFeZ+v9EiUElkJY4zhUCf7e7DhtArSVhWlqmL5cYrQXSwcj29sXHyRy70SNCzyAMd1ENbq+Vb68LestUJjtSnxd5kb+STDkOHPHSV/N0O20J/1obybHMqmcu1Ho1OfE6EM9vBA/qtlpMrffNGfJzkCkutJie75rqwpWQjo9qcTJu9hXf5Uz5Sjw/2SzYWZpaxHHRvNJwqSW91o3ZVmZfF7rVzR4N/MP50M7x09OKw+ehH+w/Ig3svby8EWrB6exndre0I3AqBJ57Yrx97bFg/e6zE/OKLw+7ue07262G91x+DHPN3z8d6VXirPwxRElIUP6+PY21aer2pbxtSZNeerRKMVmoL5Tpfk/TUpAutwLSCc5vON/rv+FjJ16vU2s52Al1Ar/oxGUNzpM3301MtAqlHngr1OVPCkuw6p55r0S6kKm1Kfrv9el+ySVjYXHbBS13ZW/rnOiAmCcODDdDbhxtKgDP94KPkrG9UmfxBPvgUTqWH+qLD5thAbZy0H8ITmsWw0fPVNW8aX1ufU1K9odeHlVCvr4bNQg8pFpvzmwsXh6vHWrFeuDxs+o8JgGMv72QExgDwTnay+9YR+P8h8MQv7k+Gu5Q1Ln/NmeN4ee/qxu7y0fmTu5anl68drY9PeEHoBDn6w53VZn/jaLU65gUofsf1eLc91QrwSC/I+i9fjkg4Sj4LvYDm1SDn8CZJJcGKxomJ+pYcnXip14p1WGuv1fxafXulTfKelawkleqOkgRbcrYMlokuStza6G0vQ7fMq4ayB5rSxYofu508j4bxl3RW8m0x6CsjpEdbyJvt/rp2gM8N22vXt0fnz/nFpO16yN+26n3gU53f9fBwevkZvwE2PNF/lcdd0T86AmcR6An4LCL9uiPwLUSAVfmlPz0+KbVkfSHD6ksv1jp4UnZyeVhcuytJ9viGMtxFtd3qL0lV/7Lq71bzy/qfI8XnartxI8nwkupecMv0cXL5q4sL773PyfWF54bFpYeir38T04RRP+sIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPw5iLw/wCH3cvs3EDhsQAAAABJRU5ErkJggg==",Dv="univer-sheet-permission-list-panel-wrapper",Hv="univer-sheet-permission-list-panel-header",Vv="univer-sheet-permission-list-panel-header-type",Wv="univer-sheet-permission-list-panel-header-type-bottom",Uv="univer-sheet-permission-list-panel-header-select",Lv="univer-sheet-permission-list-item-header-icon",Bv="univer-sheet-permission-list-item",Fv="univer-sheet-permission-list-item-header",jv="univer-sheet-permission-list-item-header-name",zv="univer-sheet-permission-list-item-header-operator",Xv="univer-sheet-permission-list-item-split",Yv="univer-sheet-permission-list-item-content-edit",Gv="univer-sheet-permission-list-item-content-view",Zv="univer-sheet-permission-list-item-content-desc",Kv="univer-sheet-permission-list-empty",qv="univer-sheet-permission-list-empty-text",Qv="univer-sheet-permission-list-item-content-title",Jv="univer-sheet-permission-list-item-content-sub",$v="univer-sheet-permission-panel-add-wrapper",eC="univer-sheet-permission-panel-add-button",ue={sheetPermissionListPanelWrapper:Dv,sheetPermissionListPanelHeader:Hv,sheetPermissionListPanelHeaderType:Vv,sheetPermissionListPanelHeaderTypeBottom:Wv,sheetPermissionListPanelHeaderSelect:Uv,sheetPermissionListItemHeaderIcon:Lv,sheetPermissionListItem:Bv,sheetPermissionListItemHeader:Fv,sheetPermissionListItemHeaderName:jv,sheetPermissionListItemHeaderOperator:zv,sheetPermissionListItemSplit:Xv,sheetPermissionListItemContentEdit:Yv,sheetPermissionListItemContentView:Gv,sheetPermissionListItemContentDesc:Zv,sheetPermissionListEmpty:Kv,sheetPermissionListEmptyText:qv,sheetPermissionListItemContentTitle:Qv,sheetPermissionListItemContentSub:Jv,sheetPermissionPanelAddWrapper:$v,sheetPermissionPanelAddButton:eC},tC=()=>{var W;const[n,r]=V.useState(!0),[e,t]=V.useState(!1),o=I.useDependency(a.LocaleService),i=I.useDependency(m.RangeProtectionRuleModel),s=I.useDependency(m.WorksheetProtectionRuleModel),l=I.useDependency(a.IUniverInstanceService),d=I.useDependency(a.ICommandService),c=I.useDependency(I.ISidebarService),u=I.useDependency(a.IAuthzIoService),h=I.useDependency(a.IPermissionService),S=I.useDependency(a.UserManagerService).getCurrentUser(),[f,p]=V.useState([]),v=I.useDependency(yt),C=I.useObservable(s.ruleRefresh$,""),b=I.useObservable(i.ruleRefresh$,""),R=l.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!R)return null;const T=R==null?void 0:R.getUnitId(),M=V.useCallback(async H=>{var $;const U=R.getActiveSheet(),B=R.getUnitId(),F=U.getSheetId(),L=[],z=[];R.getSheets().forEach(j=>{const Y=j.getSheetId();i.getSubunitRuleList(B,Y).forEach(de=>{de.permissionId&&L.push(de.permissionId)});const ee=s.getRule(B,Y);ee!=null&&ee.permissionId&&z.push(ee.permissionId)});const X=[...L,...z],Z=await u.list({objectIDs:X,unitID:B,actions:m.baseProtectionActions}),oe=i.getSubunitRuleList(B,F).map(j=>j.permissionId),Q=($=s.getRule(B,F))==null?void 0:$.permissionId;Q&&oe.push(Q);const ie=Z.filter(j=>{var Y;return oe.includes(j.objectID)||j.objectID===((Y=s.getRule(B,F))==null?void 0:Y.permissionId)});return H?ie:Z},[]),[y,P]=V.useState([]);V.useEffect(()=>{const H=O.merge(i.ruleChange$,s.ruleChange$).subscribe(async()=>{const U=await M(n);P(U)});return()=>{H.unsubscribe()}},[n]),V.useEffect(()=>{const H=R.activeSheet$.pipe(O.distinctUntilChanged((U,B)=>(U==null?void 0:U.getSheetId())===(B==null?void 0:B.getSheetId()))).subscribe(async()=>{const U=await M(n);P(U)});return()=>{H.unsubscribe()}},[n]),V.useEffect(()=>{(async()=>{if(C||b){const U=await M(!0);P(U)}})()},[C,b]);const x=H=>{const{unitId:U,subUnitId:B,unitType:F}=H;let L;F===ct.Worksheet?L=d.executeCommand(m.DeleteWorksheetProtectionCommand.id,{unitId:U,subUnitId:B,rule:H}):F===ct.SelectRange&&(L=d.executeCommand(m.DeleteRangeProtectionCommand.id,{unitId:U,subUnitId:B,rule:H})),L&&(t(!e),H.ranges===f&&p([]))};V.useEffect(()=>{v.reset()},[]),Zc(f);const A=new Map;R.getSheets().forEach(H=>{const U=H.getSheetId();i.getSubunitRuleList(T,U).forEach(L=>{A.set(L.permissionId,L)});const F=s.getRule(T,U);F&&A.set(F==null?void 0:F.permissionId,F)});const k=H=>{H.subUnitId!==R.getActiveSheet().getSheetId()&&d.executeCommand(m.SetWorksheetActiveOperation.id,{unitId:H.unitId,subUnitId:H.subUnitId});const U={header:{title:"permission.panel.title"},children:{label:oo,showDetail:!0,rule:a.Tools.deepClone(H),oldRule:a.Tools.deepClone(H)},width:330};c.open(U)},N=H=>{r(H)},D=(W=h.getPermissionPoint(new m.WorkbookCreateProtectPermission(T).id))==null?void 0:W.value;return _.jsxs("div",{className:ue.sheetPermissionListPanelWrapper,children:[_.jsxs("div",{className:ue.sheetPermissionListPanelHeader,children:[_.jsxs("div",{className:ue.sheetPermissionListPanelHeaderType,onClick:()=>N(!0),children:[_.jsx("div",{className:pe({[ue.sheetPermissionListPanelHeaderSelect]:n}),children:o.t("permission.panel.currentSheet")}),n&&_.jsx("div",{className:ue.sheetPermissionListPanelHeaderTypeBottom})]}),_.jsxs("div",{className:ue.sheetPermissionListPanelHeaderType,onClick:()=>N(!1),children:[_.jsx("div",{className:pe({[ue.sheetPermissionListPanelHeaderSelect]:!n}),children:o.t("permission.panel.allSheet")}),!n&&_.jsx("div",{className:ue.sheetPermissionListPanelHeaderTypeBottom})]})]}),(y==null?void 0:y.length)>0?_.jsx("div",{className:ue.sheetPermissionListPanelContent,children:y==null?void 0:y.map(H=>{var Y,q,ee,de,me;const U=A.get(H.objectID);if(!U)return null;const B=H.actions.find(ce=>ce.action===ne.Edit),F=B==null?void 0:B.allowed,L=H.actions.find(ce=>ce.action===ne.View),z=L==null?void 0:L.allowed,X=H.actions.find(ce=>ce.action===ne.ManageCollaborator),Z=H.actions.find(ce=>ce.action===ne.Delete),oe=(X==null?void 0:X.allowed)||S.userID===((Y=H.creator)==null?void 0:Y.userID),Q=(Z==null?void 0:Z.allowed)||S.userID===((q=H.creator)==null?void 0:q.userID);let ie="";const $=R.getSheetBySheetId(U.subUnitId),j=$==null?void 0:$.getName();if(U.unitType===ct.SelectRange){const ce=U.ranges,re=ce!=null&&ce.length?ce.map(se=>{const Ie=G.serializeRange(se);return Ie==="NaN"?"":Ie}).filter(se=>!!se).join(","):"";ie=`${j}(${re})`}else U.unitType===ct.Worksheet&&(ie=j||"");return _.jsxs("div",{className:ue.sheetPermissionListItem,onMouseMove:()=>{const{subUnitId:ce,unitType:re}=U,se=R.getActiveSheet();if(!se)return!1;const Ie=se.getSheetId();if(ce!==Ie)return!1;if(re===ct.SelectRange){const Te=U.ranges||[];Te!==f&&p(Te)}else if(re===ct.Worksheet){const Te=[{startRow:0,endRow:se.getRowCount()-1,startColumn:0,endColumn:se.getColumnCount()-1}];Te!==f&&p(Te)}},onMouseLeave:()=>p([]),children:[_.jsxs("div",{className:ue.sheetPermissionListItemHeader,children:[_.jsx(K.Tooltip,{title:ie,children:_.jsx("div",{className:ue.sheetPermissionListItemHeaderName,children:ie})}),(oe||Q)&&_.jsxs("div",{className:ue.sheetPermissionListItemHeaderOperator,children:[oe&&_.jsx(K.Tooltip,{title:o.t("permission.panel.edit"),children:_.jsx("div",{className:ue.sheetPermissionListItemHeaderIcon,onClick:()=>k(U),children:_.jsx(As,{})})}),Q&&_.jsx(K.Tooltip,{title:o.t("permission.panel.delete"),children:_.jsx("div",{className:ue.sheetPermissionListItemHeaderIcon,onClick:()=>x(U),children:_.jsx(Ur,{})})})]})]}),_.jsx("div",{className:ue.sheetPermissionListItemSplit}),_.jsxs("div",{className:ue.sheetPermissionListItemContent,children:[_.jsxs("div",{className:ue.sheetPermissionListItemContentEdit,children:[_.jsx(K.Tooltip,{title:(de=(ee=H.creator)==null?void 0:ee.name)!=null?de:"",children:_.jsx("div",{children:_.jsx(K.Avatar,{src:(me=H.creator)==null?void 0:me.avatar,style:{marginRight:6},size:24})})}),_.jsx("span",{className:ue.sheetPermissionListItemContentTitle,children:o.t("permission.panel.created")}),_.jsx("span",{className:ue.sheetPermissionListItemContentSub,children:F?`${o.t("permission.panel.iCanEdit")}`:`${o.t("permission.panel.iCanNotEdit")}`})]}),_.jsxs("div",{className:ue.sheetPermissionListItemContentView,children:[_.jsx("span",{className:ue.sheetPermissionListItemContentTitle,children:o.t("permission.panel.viewPermission")}),_.jsx("span",{className:ue.sheetPermissionListItemContentSub,children:z?`${o.t("permission.panel.iCanView")}`:`${o.t("permission.panel.iCanNotView")}`})]}),U.description&&_.jsx(K.Tooltip,{title:U.description,children:_.jsx("div",{className:ue.sheetPermissionListItemContentDesc,children:U.description})})]})]},H.objectID)})}):_.jsxs("div",{className:ue.sheetPermissionListEmpty,children:[_.jsx("img",{width:240,height:120,src:Nv,alt:""}),_.jsx("p",{className:ue.sheetPermissionListEmptyText,children:o.t("permission.dialog.listEmpty")})]}),D&&_.jsx("div",{className:ue.sheetPermissionPanelAddWrapper,children:_.jsxs(K.Button,{className:ue.sheetPermissionPanelAddButton,type:"primary",onClick:()=>{const H={header:{title:`${o.t("permission.panel.title")}`},children:{label:oo,showDetail:!0},width:330};c.open(H)},children:[_.jsx("div",{children:"+ "}),o.t("permission.button.addNewPermission")]})})]})},nC=({showDetail:n,fromSheetBar:r,rule:e,oldRule:t})=>{var h;const o=I.useDependency(a.IUniverInstanceService),i=I.useDependency(m.SheetsSelectionsService);if(!I.useDependency(On).getVisible())return null;const l=m.getSheetCommandTarget(o);if(!l)return null;const{worksheet:d}=l,u=((h=i.getCurrentSelections())==null?void 0:h.map(g=>g.range)).reduce((g,S)=>g+G.serializeRangeWithSheet(d.getName(),S),"");return n?_.jsx(kv,{fromSheetBar:r,rule:e,oldRule:t},r?"sheet-bar":"normal"):_.jsx(tC,{},u)},oC="univer-spin-container",rC="univer-spin-overlay",iC="univer-spinner",sC="univer-content-blur",Xo={spinContainer:oC,spinOverlay:rC,spinner:iC,contentBlur:sC},aC=({loading:n,children:r})=>_.jsxs("div",{className:Xo.spinContainer,children:[n&&_.jsx("div",{className:Xo.spinOverlay,children:_.jsx("div",{className:Xo.spinner})}),_.jsx("div",{className:n?Xo.contentBlur:"",children:r})]}),lC="univer-sheet-permission-dialog-wrapper",cC="univer-sheet-permission-dialog-split",dC="univer-sheet-permission-dialog-item",uC="univer-sheet-permission-user-dialog-footer",hC="univer-sheet-permission-user-dialog-footer-confirm",mC="univer-sheet-permission-user-dialog-button",ft={sheetPermissionDialogWrapper:lC,sheetPermissionDialogSplit:cC,sheetPermissionDialogItem:dC,sheetPermissionUserDialogFooter:uC,sheetPermissionUserDialogFooterConfirm:hC,sheetPermissionUserDialogButton:mC},gC=()=>{const n=I.useDependency(a.LocaleService),r=I.useDependency(a.IUniverInstanceService),e=I.useDependency(a.IAuthzIoService),t=I.useDependency(m.WorksheetProtectionPointModel),o=I.useDependency(I.IDialogService),i=I.useDependency(a.IPermissionService),s=r.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s.getActiveSheet();if(!l)throw new Error("No active sheet found");const[d,c]=V.useState([]),u=I.useDependency(a.ICommandService),[h,g]=V.useState(()=>!!t.getRule(s.getUnitId(),l.getSheetId())),[S,f]=V.useState(()=>Object.keys(Lo).reduce((v,C)=>(v[C]={text:n.t(`permission.panel.${Lo[Number(C)]}`),allowed:!0},v),{}));V.useEffect(()=>{(async()=>{const C=s.getUnitId(),b=await e.listCollaborators({objectID:C,unitID:C});c(b)})()},[]),V.useEffect(()=>{(async()=>{const C=s.getUnitId(),b=t.getRule(C,l.getSheetId());if(!b)return;g(!0);const T=(await e.list({unitID:s.getUnitId(),objectIDs:[b.permissionId],actions:sg}))[0].strategies.reduce((M,y)=>(Lo[y.action]&&(M[y.action]={text:n.t(`permission.panel.${Lo[y.action]}`),allowed:y.role!==ke.Owner}),M),{});f(T),setTimeout(()=>{g(!1)},100)})()},[]);const p=async()=>{const v=r.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),C=v==null?void 0:v.getActiveSheet();if(!C)throw new Error("No active sheet found");const b=v.getUnitId(),R=C.getSheetId(),T=t.getRule(b,R),M=Object.keys(S).map(P=>({action:Number(P),role:S[P].allowed?ke.Editor:ke.Owner}));let y=T==null?void 0:T.permissionId;y?e.update({objectType:ct.Worksheet,objectID:y,unitID:b,strategies:M,share:void 0,name:"",scope:{read:Ke.AllCollaborator,edit:Ke.AllCollaborator},collaborators:void 0}).then(()=>{m.getAllWorksheetPermissionPoint().forEach(P=>{const x=new P(b,R),A=x.subType,k=M.find(N=>N.action===A);k&&i.updatePermissionPoint(x.id,k.role===ke.Editor)})}):(y=await e.create({objectType:ct.Worksheet,worksheetObject:{unitID:b,collaborators:d,name:"",strategies:M,scope:{read:Ke.AllCollaborator,edit:Ke.AllCollaborator}}}),u.executeCommand(m.SetWorksheetPermissionPointsCommand.id,{rule:{permissionId:y,unitId:b,subUnitId:R}}))};return _.jsx(aC,{loading:h,children:_.jsxs("div",{className:ft.sheetPermissionDialogWrapper,children:[_.jsx("div",{className:ft.sheetPermissionDialogSplit}),Object.keys(S).map(v=>{const C=S[v],{text:b,allowed:R}=C;return _.jsxs("div",{className:ft.sheetPermissionDialogItem,children:[_.jsx("div",{children:b}),_.jsx(K.Switch,{defaultChecked:R,onChange:()=>{f({...S,[v]:{...C,allowed:!R}})}})]},b)}),_.jsx("div",{className:ft.sheetPermissionDialogSplit}),_.jsxs("div",{className:ft.sheetPermissionUserDialogFooter,children:[_.jsx(K.Button,{className:ft.sheetPermissionUserDialogButton,onClick:()=>{o.close(sr)},children:n.t("permission.button.cancel")}),_.jsx(K.Button,{type:"primary",onClick:()=>{p(),o.close(sr)},className:pe(ft.sheetPermissionUserDialogFooterConfirm,ft.sheetPermissionUserDialogButton),children:n.t("permission.button.confirm")})]})]})})},rd="data:image/png;base64,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",SC="univer-sheet-permission-user-dialog-wrapper",fC="univer-sheet-permission-user-dialog-search-input",pC="univer-sheet-permission-user-list",vC="univer-sheet-permission-user-list-empty",CC="univer-sheet-permission-user-list-empty-text",IC="univer-sheet-permission-user-item",_C="univer-sheet-permission-user-item-name",bC="univer-sheet-permission-split",RC="univer-sheet-permission-user-dialog-footer",EC="univer-sheet-permission-user-dialog-footer-confirm",TC="univer-sheet-permission-user-dialog-button",Ae={sheetPermissionUserDialogWrapper:SC,sheetPermissionUserDialogSearchInput:fC,sheetPermissionUserList:pC,sheetPermissionUserListEmpty:vC,sheetPermissionUserListEmptyText:CC,sheetPermissionUserItem:IC,sheetPermissionUserItemName:_C,sheetPermissionSplit:bC,sheetPermissionUserDialogFooter:RC,sheetPermissionUserDialogFooterConfirm:EC,sheetPermissionUserDialogButton:TC},wC=()=>{const[n,r]=V.useState(""),e=I.useDependency(a.LocaleService),t=I.useDependency(I.IDialogService),o=I.useDependency(yt),s=o.userList.filter(u=>{var h;return((h=u.subject)==null?void 0:h.name.toLocaleLowerCase().includes(n.toLocaleLowerCase()))&&u.role===ke.Editor}),[l,d]=V.useState(o.selectUserList),c=u=>{if((l==null?void 0:l.findIndex(g=>{var S,f;return((S=g.subject)==null?void 0:S.userID)===((f=u.subject)==null?void 0:f.userID)}))===-1){const g={...u};d([...l,g])}else{const g=l.filter(S=>{var f,p;return((f=S.subject)==null?void 0:f.userID)!==((p=u.subject)==null?void 0:p.userID)});d(g)}};return _.jsxs("div",{className:Ae.sheetPermissionUserDialogWrapper,children:[_.jsx("div",{className:Ae.sheetPermissionUserDialogSearch,children:_.jsx(K.Input,{placeholder:e.t("permission.dialog.search"),className:Ae.sheetPermissionUserDialogSearchInput,value:n,onChange:u=>r(u)})}),_.jsx("div",{className:Ae.sheetPermissionUserList,children:(s==null?void 0:s.length)>0?_.jsx(_.Fragment,{children:s==null?void 0:s.map(u=>{var h,g,S;return _.jsxs("div",{className:Ae.sheetPermissionUserItem,onClick:()=>c(u),children:[_.jsx(K.Avatar,{src:(h=u.subject)==null?void 0:h.avatar,size:24}),_.jsx("div",{className:Ae.sheetPermissionUserItemName,children:(g=u.subject)==null?void 0:g.name}),(l==null?void 0:l.findIndex(f=>{var p,v;return((p=f.subject)==null?void 0:p.userID)===((v=u.subject)==null?void 0:v.userID)}))!==-1&&_.jsx("div",{children:_.jsx(ht,{})})]},(S=u.subject)==null?void 0:S.userID)})}):_.jsxs("div",{className:Ae.sheetPermissionUserListEmpty,children:[_.jsx("img",{width:240,height:120,src:rd,alt:""}),_.jsx("p",{className:Ae.sheetPermissionUserListEmptyText,children:e.t("permission.dialog.userEmpty")})]})}),_.jsx("div",{className:Ae.sheetPermissionSplit}),_.jsxs("div",{className:Ae.sheetPermissionUserDialogFooter,children:[_.jsx(K.Button,{className:Ae.sheetPermissionUserDialogButton,onClick:()=>t.close(ir),children:e.t("permission.button.cancel")}),_.jsx(K.Button,{type:"primary",onClick:()=>{o.setSelectUserList(l),t.close(ir)},className:pe(Ae.sheetPermissionUserDialogFooterConfirm,Ae.sheetPermissionUserDialogButton),children:e.t("permission.button.confirm")})]})]})},yC="univer-sheet-permission-alert-dialog",MC="univer-sheet-permission-alert-dialog-title",PC="univer-sheet-permission-alert-dialog-button",yi={sheetPermissionAlertDialog:yC,sheetPermissionAlertDialogTitle:MC,sheetPermissionAlertDialogButton:PC},OC=({errorMsg:n})=>{const r=I.useDependency(a.LocaleService),e=I.useDependency(I.IDialogService);return _.jsxs("div",{className:yi.sheetPermissionAlertDialog,children:[_.jsx("h1",{className:yi.sheetPermissionAlertDialogTitle,children:r.t("permission.dialog.alert")}),_.jsx("p",{children:n||r.t("permission.dialog.alertContent")}),_.jsx("div",{className:yi.sheetPermissionAlertDialogButton,children:_.jsx(K.Button,{type:"primary",onClick:()=>{e.close(Ji)},children:r.t("permission.button.confirm")})})]})},id="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNCIgaGVpZ2h0PSI0IiB2aWV3Qm94PSIwIDAgNCA0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWFzayBpZD0ibWFzazBfNzU5XzExMDgiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjRDZEOEQ5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF83NTlfMTEwOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTS0zLjY0MDAyIDMuNDQxNDFMMi4wNzM5NyAtMi4yNzI1OEwyLjc4MTA4IC0xLjU2NTQ4TC0yLjkzMjkxIDQuMTQ4NTJMLTMuNjQwMDIgMy40NDE0MVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0tMS41MTg2OCA1LjU2Mjc1TDQuMTk1MzEgLTAuMTUxMjQ1TDQuOTAyNDIgMC41NTU4NjJMLTAuODExNTc1IDYuMjY5ODZMLTEuNTE4NjggNS41NjI3NVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjYwMjY1NiA3LjY4NDAzTDYuMzE2NjUgMS45NzAwM0w3LjAyMzc2IDIuNjc3MTRMMS4zMDk3NiA4LjM5MTEzTDAuNjAyNjU2IDcuNjg0MDNaIiBmaWxsPSIjRDZEOERCIi8+CjwvZz4KPC9zdmc+",sd="RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY",ad="RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY",xC=25,AC=80;class ld extends w.SheetExtension{constructor(){super();E(this,"_pattern",null);E(this,"_img",new Image);E(this,"renderCache",new Set);this._img.src=id}clearCache(){this.renderCache.clear()}draw(e,t,o){const{worksheet:i}=o;i&&(e.save(),this._pattern||(this._pattern=e.createPattern(this._img,"repeat")),this.renderCache.clear(),a.Range.foreach(o.rowColumnSegment,(s,l)=>{if(!i.getRowVisible(s)||!i.getColVisible(l))return;const{selectionProtection:d=[]}=i.getCell(s,l)||{};this._pattern&&(e.fillStyle=this._pattern,d.forEach(c=>{if(c.ruleId&&this.shouldRender(c)){if(this.renderCache.has(c.ruleId))return;this.renderCache.add(c.ruleId),c.ranges.forEach(u=>{const h=o.getCellWithCoordByIndex(u.startRow,u.startColumn,!1),g=o.getCellWithCoordByIndex(u.endRow,u.endColumn,!1);e.fillRect(h.startX,h.startY,g.endX-h.startX,g.endY-h.startY)})}}))}),e.restore())}}class kC extends ld{constructor(){super();E(this,"uKey",sd);E(this,"Z_INDEX",xC)}shouldRender(e){return(e==null?void 0:e[ne.View])!==!1}}class NC extends ld{constructor(){super();E(this,"uKey",ad);E(this,"Z_INDEX",AC)}shouldRender(e){return(e==null?void 0:e[ne.View])===!1}}const cd="worksheet-protection",Fa=25,DC=80;class HC extends w.SheetExtension{constructor(){super();E(this,"uKey",cd);E(this,"Z_INDEX",Fa);E(this,"_pattern");E(this,"_img",new Image);this._img.src=id}draw(e,t,o){const{worksheet:i}=o;if(!i)return!1;e.save(),this._pattern||(this._pattern=e.createPattern(this._img,"repeat"));const{startRow:s,startColumn:l,endRow:d,endColumn:c}=o.rowColumnSegment,u=o.getCellWithCoordByIndex(s,l,!1),h=o.getCellWithCoordByIndex(d,c,!1),{hasWorksheetRule:g=!1,selectionProtection:S=[]}=i.getCell(s,l)||{};if(this._pattern){if(S.length>0){const f=S[0];(f==null?void 0:f[ne.View])?this.setZIndex(Fa):this.setZIndex(DC)}e.fillStyle=this._pattern,g&&e.fillRect(u.startX,u.startY,h.endX-u.startX,h.endY-u.startY),e.restore()}}setZIndex(e){this.Z_INDEX=e}}const VC=n=>{const{editState:r,onEditStateChange:e,viewState:t,onViewStateChange:o,permissionId:i}=n,s=I.useDependency(a.LocaleService),l=I.useDependency(I.IDialogService),d=I.useDependency(a.IAuthzIoService),c=I.useDependency(yt),u=I.useDependency(a.UserManagerService),h=I.useDependency(a.IUniverInstanceService),g=I.useObservable(c.selectUserList$,c.selectUserList),S=h.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),f=S==null?void 0:S.getActiveSheet();if(!S||!f)return null;const p=S.getUnitId(),v=async()=>{const C=await d.listCollaborators({objectID:p,unitID:p}),b=u.getCurrentUser();c.setCanEditUserList(C.filter(R=>{var T;return((T=R.subject)==null?void 0:T.userID)!==b.userID})),l.open({id:ir,title:{title:""},children:{label:Xl},width:280,destroyOnClose:!0,onClose:()=>l.close(ir),className:"sheet-permission-user-dialog"})};return V.useEffect(()=>{i?(async()=>{const R=(await d.listCollaborators({objectID:i,unitID:p})).filter(T=>T.role===ke.Editor);R.length>0&&e(m.EditStateEnum.DesignedUserCanEdit),c.setSelectUserList(R),c.setOldCollaboratorList(R)})():(c.setSelectUserList([]),c.setOldCollaboratorList([]))},[]),_.jsxs(_.Fragment,{children:[_.jsx(K.FormLayout,{className:fe.sheetPermissionPanelTitle,label:s.t("permission.panel.editPermission"),children:_.jsxs(K.RadioGroup,{value:r,onChange:C=>e(C),className:fe.radioGroupVertical,children:[_.jsx(K.Radio,{value:m.EditStateEnum.OnlyMe,children:_.jsx("span",{className:fe.text,children:s.t("permission.panel.onlyICanEdit")})}),_.jsx(K.Radio,{value:m.EditStateEnum.DesignedUserCanEdit,children:_.jsx("span",{className:fe.text,children:s.t("permission.panel.designedUserCanEdit")})})]})}),r===m.EditStateEnum.DesignedUserCanEdit&&_.jsxs("div",{className:fe.sheetPermissionDesignPersonPanel,children:[_.jsxs("div",{className:fe.sheetPermissionDesignPersonPanelHeader,children:[_.jsx("span",{children:s.t("permission.panel.designedPerson")}),_.jsx("span",{className:fe.sheetPermissionDesignPersonPanelHeaderAdd,onClick:v,children:s.t("permission.panel.addPerson")})]}),_.jsx("div",{className:fe.sheetPermissionDesignPersonPanelSplit}),_.jsx("div",{className:fe.sheetPermissionDesignPersonPanelContent,children:(g==null?void 0:g.length)>0?g.map(C=>{var b,R,T;return _.jsxs("div",{className:fe.sheetPermissionDesignPersonPanelContentItem,children:[_.jsx(K.Avatar,{size:24,src:(b=C.subject)==null?void 0:b.avatar}),_.jsx("span",{className:fe.sheetPermissionDesignPersonPanelContentItemName,children:(R=C.subject)==null?void 0:R.name}),_.jsx(K.Select,{className:fe.sheetPermissionDesignPersonPanelContentItemSelect,value:"edit",onChange:M=>{M==="delete"&&c.setSelectUserList(g.filter(y=>{var P,x;return((P=y.subject)==null?void 0:P.userID)!==((x=C.subject)==null?void 0:x.userID)}))},options:[{label:`${s.t("permission.panel.canEdit")}`,value:"edit"},{label:`${s.t("permission.panel.delete")}`,value:"delete"}]})]},(T=C.subject)==null?void 0:T.userID)}):_.jsxs("div",{className:fe.sheetPermissionUserListEmpty,children:[_.jsx("img",{width:240,height:120,src:rd,alt:""}),_.jsx("p",{className:fe.sheetPermissionUserListEmptyText,children:s.t("permission.dialog.userEmpty")})]})})]}),_.jsx(K.FormLayout,{className:fe.sheetPermissionPanelTitle,label:s.t("permission.panel.viewPermission"),children:_.jsxs(K.RadioGroup,{value:t,onChange:C=>o(C),className:fe.radioGroupVertical,children:[_.jsx(K.Radio,{value:m.ViewStateEnum.OthersCanView,children:_.jsx("span",{className:fe.text,children:s.t("permission.panel.othersCanView")})}),_.jsx(K.Radio,{value:m.ViewStateEnum.NoOneElseCanView,children:_.jsx("span",{className:fe.text,children:s.t("permission.panel.noOneElseCanView")})})]})})]})};var WC=Object.getOwnPropertyDescriptor,Ls=(n,r,e,t)=>{for(var o=t>1?void 0:t?WC(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},We=(n,r)=>(e,t)=>r(e,t,n);let ao=class extends a.Disposable{constructor(n,r,e){super(),this._injector=n,this._componentManager=r,this._uiPartsService=e,this._init()}_init(){this._initComponents(),this._initUiPartComponents()}_initComponents(){[[Gl,Ul],[ag,Ur],[lg,As],[cg,ht],[Zl,xs],[oo,nC],[Xl,wC],[Yl,gC],[nd,OC]].forEach(([n,r])=>{this.disposeWithMe(this._componentManager.register(n,r))})}_initUiPartComponents(){var e;const r=this._injector.get(a.IConfigService).getConfig(Zt);(e=r==null?void 0:r.customComponents)!=null&&e.has(rr)||this.disposeWithMe(this._uiPartsService.registerComponent(rr,()=>I.connectInjector(VC,this._injector)))}};ao=Ls([We(0,a.Inject(a.Injector)),We(1,a.Inject(I.ComponentManager)),We(2,a.Inject(I.IUIPartsService))],ao);let fr=class extends a.Disposable{constructor(r,e,t,o,i){var l;super();E(this,"_rangeProtectionCanViewRenderExtension",new kC);E(this,"_rangeProtectionCanNotViewRenderExtension",new NC);this._context=r,this._rangeProtectionRuleModel=e,this._sheetSkeletonManagerService=t,this._permissionService=o,this._configService=i;const s=this._configService.getConfig(Zt);(l=s==null?void 0:s.customComponents)!=null&&l.has(Hs)||(this._initRender(),this._initSkeleton(),this.disposeWithMe(this._rangeProtectionRuleModel.ruleChange$.subscribe(d=>{var c,u;((c=d.oldRule)!=null&&c.id&&this._rangeProtectionCanViewRenderExtension.renderCache.has(d.oldRule.id)||this._rangeProtectionCanViewRenderExtension.renderCache.has(d.rule.id))&&this._rangeProtectionCanViewRenderExtension.clearCache(),((u=d.oldRule)!=null&&u.id&&this._rangeProtectionCanNotViewRenderExtension.renderCache.has(d.oldRule.id)||this._rangeProtectionCanNotViewRenderExtension.renderCache.has(d.rule.id))&&this._rangeProtectionCanNotViewRenderExtension.clearCache()})))}_initRender(){const r=this._context.mainComponent;r&&(r.getExtensionByKey(sd)||r.register(this._rangeProtectionCanViewRenderExtension),r.getExtensionByKey(ad)||r.register(this._rangeProtectionCanNotViewRenderExtension))}_initSkeleton(){const r=()=>{var e;this._sheetSkeletonManagerService.reCalculate(),(e=this._context.mainComponent)==null||e.makeDirty()};this.disposeWithMe(O.merge(this._permissionService.permissionPointUpdate$.pipe(O.throttleTime(300,void 0,{trailing:!0})),this._rangeProtectionRuleModel.rangeRuleInitStateChange$,this._rangeProtectionRuleModel.ruleChange$).pipe().subscribe(r))}};fr=Ls([We(1,a.Inject(m.RangeProtectionRuleModel)),We(2,a.Inject(exports.SheetSkeletonManagerService)),We(3,a.IPermissionService),We(4,a.IConfigService)],fr);let pr=class extends a.Disposable{constructor(r,e,t,o,i,s){var d;super();E(this,"_worksheetProtectionRenderExtension",new HC);this._context=r,this._renderManagerService=e,this._univerInstanceService=t,this._sheetSkeletonManagerService=o,this._worksheetProtectionRuleModel=i,this._configService=s;const l=this._configService.getConfig(Zt);(d=l==null?void 0:l.customComponents)!=null&&d.has(Hs)||(this._initRender(),this._initSkeleton())}_initRender(){const r=this._context.unitId,e=r&&this._renderManagerService.getRenderById(r),t=e&&e.mainComponent;t&&(t.getExtensionByKey(cd)||t.register(this._worksheetProtectionRenderExtension))}_initSkeleton(){const r=()=>{var e;this._sheetSkeletonManagerService.reCalculate(),(e=this._context.mainComponent)==null||e.makeDirty()};this.disposeWithMe(O.merge(this._worksheetProtectionRuleModel.worksheetRuleInitStateChange$).pipe().subscribe(r))}};pr=Ls([We(1,a.Inject(w.IRenderManagerService)),We(2,a.Inject(a.IUniverInstanceService)),We(3,a.Inject(exports.SheetSkeletonManagerService)),We(4,a.Inject(m.WorksheetProtectionRuleModel)),We(5,a.Inject(a.IConfigService))],pr);var UC=Object.getOwnPropertyDescriptor,LC=(n,r,e,t)=>{for(var o=t>1?void 0:t?UC(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Mi=(n,r)=>(e,t)=>r(e,t,n);let vr=class extends a.Disposable{constructor(n,r,e,t){super(),this._context=n,this._formatPainterService=r,this._selectionRenderService=e,this._commandService=t,this._initialize()}_initialize(){this._bindFormatPainterStatus(),this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._selectionRenderService.selectionMoveEnd$.subscribe(n=>{var r;if(this._formatPainterService.getStatus()!==Ne.OFF){const{rangeWithCoord:e}=n[n.length-1];this._commandService.executeCommand(Co.id,{unitId:this._context.unitId,subUnitId:((r=this._context.unit.getActiveSheet())==null?void 0:r.getSheetId())||"",range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn}}),this._formatPainterService.getStatus()===Ne.ONCE&&this._commandService.executeCommand(Dn.id)}}))}_bindFormatPainterStatus(){this.disposeWithMe(a.toDisposable(this._formatPainterService.status$.subscribe(n=>{const r=this._context.scene;r&&(n!==Ne.OFF?r.setDefaultCursor(w.CURSOR_TYPE.CELL):r.setDefaultCursor(w.CURSOR_TYPE.DEFAULT))})))}};vr=LC([Mi(1,et),Mi(2,ve),Mi(3,a.ICommandService)],vr);var BC=Object.getOwnPropertyDescriptor,FC=(n,r,e,t)=>{for(var o=t>1?void 0:t?BC(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Xn=(n,r)=>(e,t)=>r(e,t,n);let $i=class extends a.Disposable{constructor(n,r,e,t,o,i){super(),this._context=n,this._layoutService=r,this._contextMenuService=e,this._selectionManagerService=t,this._selectionRenderService=o,this._sheetSkeletonManagerService=i,this._init()}_init(){let n=!1;this.disposeWithMe(this._selectionManagerService.selectionMoveStart$.subscribe(()=>n=!0)),this.disposeWithMe(this._selectionManagerService.selectionMoveEnd$.subscribe(r=>{const e=this._sheetSkeletonManagerService.getCurrentParam().skeleton;if(!e||!r||n===!1)return;n=!1;const t=r[0];if(!t.primary)return;const o=Me(t,e),i=t.range.rangeType,{scene:s}=this._context,l=s.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),d=(l==null?void 0:l.viewportScrollX)||0,c=(l==null?void 0:l.viewportScrollY)||0;let u=0,h=0;const g=e.rowHeaderWidth,S=this._layoutService.getContentElement().getBoundingClientRect();switch(i){case a.RANGE_TYPE.NORMAL:u=o.rangeWithCoord.startX+S.left-d,h=o.rangeWithCoord.endY+S.top-c;break;case a.RANGE_TYPE.COLUMN:u=o.rangeWithCoord.startX+S.left-d,h=Math.min(S.height/2,o.rangeWithCoord.endY)+40;break;case a.RANGE_TYPE.ROW:u=(S.width-g)/2+20,h=o.rangeWithCoord.endY+S.top-c;break;case a.RANGE_TYPE.ALL:u=o.rangeWithCoord.startX+S.left,h=o.rangeWithCoord.startY+S.top;break;default:u=o.rangeWithCoord.startX+S.left-d,h=o.rangeWithCoord.endY+S.top-c;break}u=a.Tools.clamp(u,g,S.width),h=a.Tools.clamp(h,S.top,S.height),this._contextMenuService.triggerContextMenu({clientX:u,clientY:h,preventDefault:()=>{},stopPropagation:()=>{}},I.ContextMenuPosition.MAIN_AREA)}))}};$i=FC([Xn(1,I.ILayoutService),Xn(2,I.IContextMenuService),Xn(3,a.Inject(m.SheetsSelectionsService)),Xn(4,ve),Xn(5,a.Inject(exports.SheetSkeletonManagerService))],$i);var jC=Object.getOwnPropertyDescriptor,zC=(n,r,e,t)=>{for(var o=t>1?void 0:t?jC(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},un=(n,r)=>(e,t)=>r(e,t,n);const XC=[xe.id,$e.id];let es=class extends a.Disposable{constructor(n,r,e,t,o,i,s){super(),this._context=n,this._sheetSkeletonManagerService=r,this._commandService=e,this._renderManagerService=t,this._selectionManagerService=o,this._scrollManagerService=i,this._univerInstanceService=s,this._init()}scrollToRange(n){let{endRow:r,endColumn:e,startColumn:t,startRow:o}=n;const i=this._getViewportBounding();if(n.rangeType===a.RANGE_TYPE.ROW?(t=0,e=0):n.rangeType===a.RANGE_TYPE.COLUMN&&(o=0,r=0),i){const s=i.startRow>r?o:r,l=i.startColumn>e?t:e;return this._scrollToCell(s,l)}else return this._scrollToCell(o,t)}_init(){this._initCommandListener(),this._initScrollEventListener(),this._initPointerScrollEvent(),this._initSkeletonListener()}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(XC.includes(n.id))this._scrollToSelection();else if(n.id===m.ScrollToCellOperation.id){const r=n.params;this.scrollToRange(r)}else if(n.id===De.id){const r=n.params;this._scrollToSelectionForExpand(r)}}))}_scrollToSelectionForExpand(n){setTimeout(()=>{const r=this._selectionManagerService.getCurrentLastSelection();if(r==null)return;const{startRow:e,startColumn:t,endRow:o,endColumn:i}=r.range,s=this._getViewportBounding();if(s==null)return;const{startRow:l,startColumn:d,endRow:c,endColumn:u}=s;let h=0,g=0;e>l?h=o:o<c?h=e:h=l,t>d?g=i:i<u?g=t:g=d,n.direction===a.Direction.DOWN?h=o:n.direction===a.Direction.UP?h=e:n.direction===a.Direction.RIGHT?g=i:n.direction===a.Direction.LEFT&&(g=t),this._scrollToCell(h,g)},0)}_getFreeze(){var r;const n=(r=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:r.skeleton.getWorksheetConfig();if(n!=null)return n.freeze}_initScrollEventListener(){const{scene:n}=this._context;if(n==null)return;const r=n.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);r&&(this.disposeWithMe(a.toDisposable(this._scrollManagerService.rawScrollInfo$.subscribe(e=>{var g;if(e==null){r.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0});return}const t=(g=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:g.skeleton;if(!t)return;const{sheetViewStartRow:o,sheetViewStartColumn:i,offsetX:s,offsetY:l}=e,{startX:d,startY:c}=t.getCellWithCoordByIndex(o,i,!1),u=d+s,h=c+l;r.scrollToViewportPos({viewportScrollX:u,viewportScrollY:h})}))),this.disposeWithMe(r.onScrollAfter$.subscribeEvent(e=>{var f;if(!e)return;const t=(f=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:f.skeleton;if(t==null)return;const o=this._getSheetObject();if(t==null||o==null)return;const{viewportScrollX:i,viewportScrollY:s,scrollX:l,scrollY:d}=e,{row:c,column:u,rowOffset:h,columnOffset:g}=t.getOffsetRelativeToRowCol(i,s),S={sheetViewStartRow:c,sheetViewStartColumn:u,offsetX:g,offsetY:h,viewportScrollX:i,viewportScrollY:s,scrollX:l,scrollY:d};this._scrollManagerService.setValidScrollStateToCurrSheet(S),this._scrollManagerService.validViewportScrollInfo$.next({...S,scrollX:l,scrollY:d,viewportScrollX:i,viewportScrollY:s})})),this.disposeWithMe(r.onScrollByBar$.subscribeEvent(e=>{var g;const t=(g=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:g.skeleton;if(t==null||e.isTrigger===!1)return;const o=this._getSheetObject();if(t==null||o==null)return;const{viewportScrollX:i=0,viewportScrollY:s=0}=e,l=this._getFreeze(),{row:d,column:c,rowOffset:u,columnOffset:h}=t.getOffsetRelativeToRowCol(i,s);this._commandService.executeCommand(ze.id,{sheetViewStartRow:d+((l==null?void 0:l.ySplit)||0),sheetViewStartColumn:c+((l==null?void 0:l.xSplit)||0),offsetX:h,offsetY:u})})))}_initSkeletonListener(){this.disposeWithMe(a.toDisposable(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(n=>{if(n==null)return;const r={unitId:n.unitId,sheetId:n.sheetId};this._scrollManagerService.setSearchParam(r);const e=this._getSheetObject();if(!e)return;const o=e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),i=this._scrollManagerService.getScrollStateByParam(r),{viewportScrollX:s,viewportScrollY:l}=this._scrollManagerService.calcViewportScrollFromRowColOffset(i);o&&(i?(o.viewportScrollX=s,o.viewportScrollY=l):(o.viewportScrollX=0,o.viewportScrollY=0),this._updateSceneSize(n))})))}_initPointerScrollEvent(){const n=this._getSheetObject();if(!n)return;const r=this._scrollManagerService,e=n.scene,t=n.spreadsheet,o=e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),i={x:0,y:0};let s=!1;const l={x:0,y:0},d=.95;let c=null;const u=()=>{if(!o)return;l.x*=d,l.y*=d,i.x+=l.x,i.y+=l.y;const g=l.x,S=l.y;(S!==0||g!==0)&&this._commandService.executeCommand(wn.id,{offsetY:S,offsetX:g}),Math.abs(l.x)>1||Math.abs(l.y)>1?c=requestAnimationFrame(u):c=null},h=()=>{cancelAnimationFrame(c),c=null};t.onPointerDown$.subscribeEvent((g,S)=>{h(),o&&(i.x=g.offsetX,i.y=g.offsetY,s=!0,S.stopPropagation())}),t.onPointerMove$.subscribeEvent((g,S)=>{if(!s||!o)return;const f=g,p=-(f.offsetX-i.x),v=-(f.offsetY-i.y);l.x=-(f.offsetX-i.x),l.y=-(f.offsetY-i.y);const C=p,b=v;(p!==0||v!==0)&&(b!==0||C!==0)&&this._commandService.executeCommand(wn.id,{offsetY:b,offsetX:C}),r.getCurrentScrollState(),i.x=f.offsetX,i.y=f.offsetY,S.stopPropagation()}),t.onPointerUp$.subscribeEvent(g=>{s=!1,c=requestAnimationFrame(u)}),t.onPointerLeave$.subscribeEvent(()=>{s=!1}),t.onPointerOut$.subscribeEvent(()=>{s=!1}),e.onPointerOut$.subscribeEvent(()=>{s=!1}),e.onPointerCancel$.subscribeEvent(()=>{s=!1})}_updateSceneSize(n){var h;if(n==null)return;const{unitId:r}=this._context,{skeleton:e}=n,t=(h=this._renderManagerService.getRenderById(r))==null?void 0:h.scene;if(e==null||t==null)return;const{rowTotalHeight:o,columnTotalWidth:i,rowHeaderWidthAndMarginLeft:s,columnHeaderHeightAndMarginTop:l}=e,c=this._context.unit.getActiveSheet();if(!c)return;const u=c.getZoomRatio()||1;t==null||t.setScaleValueOnly(u,u),t==null||t.transformByState({width:s+i,height:l+o})}_getSheetObject(){return Ge(this._context.unit,this._context)}_scrollToSelectionByDirection(n){const r=this._getViewportBounding();if(r==null)return!1;const{startRow:e,startColumn:t,endRow:o,endColumn:i}=r;let s=0,l=0;const{startRow:d,startColumn:c,endRow:u,endColumn:h}=n;d>=e&&(s=u),u<=o&&(s=d),c>=t&&(l=h),h<=i&&(l=c),this._scrollToCell(s,l)}_scrollToSelection(n=!0){const r=this._selectionManagerService.getCurrentLastSelection();if(r==null)return;const{startRow:e,startColumn:t,actualRow:o,actualColumn:i}=r.primary,s=n?o:e,l=n?i:t;this._scrollToCell(s,l)}_getViewportBounding(){var t,o;const n=(t=this._getSheetObject())==null?void 0:t.scene;if(n==null)return;const r=n.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(r==null)return;const e=(o=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:o.skeleton;if(e!=null)return e.getRangeByViewport(r.calcViewportInfo())}_scrollToCell(n,r){var M,y,P,x;const{rowHeightAccumulation:e,columnWidthAccumulation:t}=(y=(M=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:M.skeleton)!=null?y:{};if(e==null||t==null)return!1;const o=(P=this._getSheetObject())==null?void 0:P.scene;if(o==null)return!1;const i=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(i==null||((x=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:x.skeleton)==null)return!1;const l=this._context.unit.getActiveSheet();if(!l)return!1;const{startColumn:d,startRow:c,ySplit:u,xSplit:h}=l.getFreeze(),g=this._getViewportBounding();if(g==null)return!1;const{startRow:S,startColumn:f,endRow:p,endColumn:v}=g;let C,b;if(n>=c&&r>=d-h&&(n<=S&&(C=n),n>=p)){const A=e[n]-i.height;for(let k=S;k<=n;k++)if(e[k]>=A){C=k+1;break}}if(r>=d&&n>=c-u&&(r<=f&&(b=r),r>=v)){const A=t[r]-i.width;for(let k=f;k<=r;k++)if(t[k]>=A){b=k+1;break}}if(C===void 0&&b===void 0)return!1;const{offsetX:R,offsetY:T}=this._scrollManagerService.getCurrentScrollState()||{};return this._commandService.syncExecuteCommand(ze.id,{sheetViewStartRow:C,sheetViewStartColumn:b,offsetX:b===void 0?R:0,offsetY:C===void 0?T:0})}};es=zC([un(1,a.Inject(exports.SheetSkeletonManagerService)),un(2,a.ICommandService),un(3,w.IRenderManagerService),un(4,a.Inject(m.SheetsSelectionsService)),un(5,a.Inject(exports.SheetScrollManagerService)),un(6,a.IUniverInstanceService)],es);const YC=a.createInterceptorKey("PRINTING_RANGE"),GC=a.createInterceptorKey("PRINTING_COMPONENT_COLLECT");class Bs extends a.Disposable{constructor(){super();E(this,"interceptor",new a.InterceptorManager({PRINTING_RANGE:YC,PRINTING_COMPONENT_COLLECT:GC}));this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().PRINTING_RANGE,{priority:-1,handler:e=>e})),this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,{priority:-1,handler:e=>e}))}}class ZC extends lo{constructor(e,t,o,i){super(e,t,o,i);E(this,"_fillControlTopLeft");E(this,"_fillControlBottomRight");E(this,"_rangeType",a.RANGE_TYPE.NORMAL);this._scene=e,this._zIndex=t,this._themeService=o,this._rangeType=(i==null?void 0:i.rangeType)||a.RANGE_TYPE.NORMAL,this.initControlPoints()}initControlPoints(){const e=this.currentStyle,t=e.expandCornerSize||0,o=(e.expandCornerSize||0)/4,i=e.autofillStrokeWidth||0,s=e.stroke,l=e.autofillStroke,d=this.zIndex;this._fillControlTopLeft=new w.Rect(Vi.fillTopLeft+d,{zIndex:d+2,width:t,height:t,radius:t/2,visualWidth:o,visualHeight:o,strokeWidth:i}),this._fillControlBottomRight=new w.Rect(Vi.fillBottomRight+d,{zIndex:d+2,width:t,height:t,radius:t/2,visualHeight:o,visualWidth:o,strokeWidth:i});const c={fill:s,stroke:l,strokeScaleEnabled:!1};this._fillControlTopLeft.setProps({...c}),this._fillControlBottomRight.setProps({...c});const u=[this._fillControlTopLeft,this._fillControlBottomRight];switch(this._rangeType){case a.RANGE_TYPE.ROW:this.rowHeaderGroup.addObjects(...u);break;case a.RANGE_TYPE.COLUMN:this.columnHeaderGroup.addObjects(...u);break;case a.RANGE_TYPE.NORMAL:this.selectionShapeGroup.addObjects(...u)}this.getScene().addObjects(u,Jo)}get fillControlTopLeft(){return this._fillControlTopLeft}set fillControlTopLeft(e){this._fillControlTopLeft=e}get fillControlBottomRight(){return this._fillControlBottomRight}set fillControlBottomRight(e){this._fillControlBottomRight=e}get rangeType(){return this._rangeType}set rangeType(e){this._rangeType=e}dispose(){var e,t;(e=this._fillControlBottomRight)==null||e.dispose(),(t=this._fillControlTopLeft)==null||t.dispose(),super.dispose()}_updateLayoutOfSelectionControl(e){var i,s;super._updateLayoutOfSelectionControl(e);const t=this.currentStyle;e==null&&(e=t);const{widgets:o=t.widgets}=e;if(this.currentStyle=e,this._enableAutoFill===!0&&!super._hasWidgets(o)){const{viewportScrollX:l,viewportScrollY:d}=this.getViewportMainScrollInfo(),{endX:c,endY:u}=this.selectionModel;this.transformControlPoint(l,d,c,u),this.fillControlTopLeft.show(),this.fillControlBottomRight.show()}else(i=this.fillControlTopLeft)==null||i.hide(),(s=this.fillControlBottomRight)==null||s.hide()}getViewportMainScrollInfo(){const e=this.getScene().getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);return{viewportScrollX:(e==null?void 0:e.viewportScrollX)||0,viewportScrollY:(e==null?void 0:e.viewportScrollY)||0,width:(e==null?void 0:e.width)||0,height:(e==null?void 0:e.height)||0}}transformControlPoint(e=0,t=0,o=0,i=0){const s=this.currentStyle,l=this.selectionModel.rangeType,d=s.expandCornerSize,{startX:c,startY:u,endX:h,endY:g}=this.selectionModel,S=this.getViewportMainScrollInfo(),f=S.width,p=S.height;switch(l){case a.RANGE_TYPE.NORMAL:this.fillControlTopLeft.transformByState({left:-d/2,top:-d/2}),this.fillControlBottomRight.transformByState({left:h-c-d/2,top:g-u-d/2});break;case a.RANGE_TYPE.ROW:{const v=Math.min(f/2+e,o),C=-d/2+v;this.fillControlTopLeft.transformByState({left:C,top:-d/2}),this.fillControlBottomRight.transformByState({left:C,top:-d/2+g-u})}break;case a.RANGE_TYPE.COLUMN:{const v=Math.min(+p/2+t,i),C=-d/2+v;this.fillControlTopLeft.transformByState({left:-d/2,top:C}),this.fillControlBottomRight.transformByState({left:-d/2+h-c,top:C})}break;default:console.error("unknown range type")}}}var KC=Object.getOwnPropertyDescriptor,qC=(n,r,e,t)=>{for(var o=t>1?void 0:t?KC(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},it=(n,r)=>(e,t)=>r(e,t,n);let Cr=class extends hs{constructor(r,e,t,o,i,s,l,d,c,u){super(e,t,o,s,c);E(this,"_workbookSelections");E(this,"_renderDisposable",null);E(this,"_expandingSelection",!1);E(this,"_selectionControls",[]);E(this,"expandingControlMode","bottom-right");this._context=r,this._logService=l,this._commandService=d,this._contextService=c,this._scrollManagerService=u,this._workbookSelections=i.getWorkbookSelections(this._context.unitId),this._init()}_init(){const r=this._getSheetObject();this._initEventListeners(r),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._updateControlPointWhenScrolling()}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(r=>{if(r==null){this._logService.error("[SelectionRenderService]: should not receive null!");return}const e=this._context.unitId,{sheetId:t,skeleton:o}=r,{scene:i}=this._context,s=i.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._changeRuntime(o,i,s),this._workbookSelections.getCurrentLastSelection()||this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:e,subUnitId:t,selections:[Pr(o)]})}))}_initSelectionChangeListener(){}_initEventListeners(r){const{spreadsheetRowHeader:e,spreadsheetColumnHeader:t,spreadsheet:o,spreadsheetLeftTopPlaceholder:i}=r,{scene:s}=this._context;this._initSpreadsheetEvent(r),this.disposeWithMe(e==null?void 0:e.onPointerUp$.subscribeEvent((l,d)=>{if(this._normalSelectionDisabled())return;const c=this._sheetSkeletonManagerService.getCurrentParam().skeleton,{row:u}=qe(l.offsetX,l.offsetY,s,c);Ml(this._workbookSelections.getCurrentSelections(),u)||(this.createNewSelection(l,(o.zIndex||1)+1,a.RANGE_TYPE.ROW,this._getActiveViewport(l)),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()))})),this.disposeWithMe(t==null?void 0:t.onPointerUp$.subscribeEvent((l,d)=>{if(this._normalSelectionDisabled())return;const c=this._sheetSkeletonManagerService.getCurrentParam().skeleton,{column:u}=qe(l.offsetX,l.offsetY,s,c);Pl(this._workbookSelections.getCurrentSelections(),u)||(this.createNewSelection(l,(o.zIndex||1)+1,a.RANGE_TYPE.COLUMN,this._getActiveViewport(l)),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()))})),this.disposeWithMe(i==null?void 0:i.onPointerUp$.subscribeEvent((l,d)=>{if(this._normalSelectionDisabled())return;this._reset();const c=this._sheetSkeletonManagerService.getCurrentParam().skeleton,u=ms(c);this._addSelectionControlByModelData(u),this.refreshSelectionMoveStart(),d.stopPropagation(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}))}_initSpreadsheetEvent(r){const{spreadsheet:e}=r;let t;const o=500,i={x:0,y:0},s=()=>{clearTimeout(t)},l=(u,h)=>{this.createNewSelection(u,e.zIndex+1,a.RANGE_TYPE.NORMAL,this._getActiveViewport(u)),h&&this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())};e==null||e.onPointerMove$.subscribeEvent((u,h)=>{(Math.abs(u.offsetX-i.x)>10||Math.abs(u.offsetY-i.y)>10)&&s()});const d=e==null?void 0:e.onPointerDown$.subscribeEvent((u,h)=>{i.x=u.offsetX,i.y=u.offsetY,t=setTimeout(()=>{l(u,!0)},o),h.stopPropagation()}),c=e==null?void 0:e.onPointerUp$.subscribeEvent((u,h)=>{if(this._normalSelectionDisabled())return;clearTimeout(t);const g=10;Math.abs(u.offsetX-i.x)>g||Math.abs(u.offsetY-i.y)>g||(l(u,!1),h.stopPropagation())});this.disposeWithMe(a.toDisposable(d)),this.disposeWithMe(a.toDisposable(c))}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(r=>this._updateSelections(r,m.SelectionMoveType.MOVE_START))),this.disposeWithMe(this.selectionMoving$.subscribe(r=>this._updateSelections(r,m.SelectionMoveType.MOVING))),this.disposeWithMe(this._contextService.subscribeContextValue$(m.REF_SELECTIONS_ENABLED).pipe(O.startWith(!1),O.distinctUntilChanged()).subscribe(r=>{var e;r?((e=this._renderDisposable)==null||e.dispose(),this._renderDisposable=null,this._reset()):this._renderDisposable=a.toDisposable(this.selectionMoveEnd$.subscribe(t=>this._updateSelections(t,m.SelectionMoveType.MOVE_END)))}))}_updateSelections(r,e){const t=this._context.unit,o=t.getUnitId(),i=t.getActiveSheet().getSheetId();r.length!==0&&this._commandService.executeCommand(m.SetSelectionsOperation.id,{unitId:o,subUnitId:i,type:e,selections:r.map(s=>m.convertSelectionDataToRange(s))})}createNewSelection(r,e=0,t=a.RANGE_TYPE.NORMAL,o){this._rangeType=t;const i=this._skeleton,s=this._scene;if(!s||!i)return;o&&(this._activeViewport=o);const{offsetX:l,offsetY:d}=r,c=s.getCoordRelativeToViewport(w.Vector2.FromArray([l,d])),{x:u,y:h}=c;this._startViewportPosX=u,this._startViewportPosY=h;const g=s.getScrollXYInfoByViewport(c),{scaleX:S,scaleY:f}=s.getAncestorScale(),p=this._skeleton.getCellByOffset(u,h,S,f,g);if(!p)return;switch(t){case a.RANGE_TYPE.NORMAL:break;case a.RANGE_TYPE.ROW:p.startColumn=0,p.endColumn=this._skeleton.getColumnCount()-1;break;case a.RANGE_TYPE.COLUMN:p.startRow=0,p.endRow=this._skeleton.getRowCount()-1;break;case a.RANGE_TYPE.ALL:p.startRow=0,p.startColumn=0,p.endRow=this._skeleton.getRowCount()-1,p.endColumn=this._skeleton.getColumnCount()-1}const v={range:p,primary:p,style:null};v.range.rangeType=t;const C=Me(v,this._skeleton);this._startRangeWhenPointerDown={...C.rangeWithCoord};let b=this.getActiveSelectionControl();const R={...C.rangeWithCoord};for(const T of this.getSelectionControls())if(T.model.isEqual(R)){b=T;break}(b==null?void 0:b.model.rangeType)!==t?(this._clearAllSelectionControls(),b=this.newSelectionControl(s,i,v)):b.updateRangeBySelectionWithCoord(C),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._clearUpdatingListeners(),this._expandingSelection=!1}newSelectionControl(r,e,t){const o=this.getSelectionControls(),{rowHeaderWidth:i,columnHeaderHeight:s}=e,l=t.range.rangeType,d=new ZC(r,o.length,this._themeService,{highlightHeader:this._highlightHeader,rowHeaderWidth:i,columnHeaderHeight:s,rangeType:l}),c=Me(t,e);d.updateRangeBySelectionWithCoord(c),this._selectionControls.push(d);const{expandingModeForTopLeft:u,expandingModeForBottomRight:h}=(()=>{switch(l){case a.RANGE_TYPE.NORMAL:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"};case a.RANGE_TYPE.ROW:return{expandingModeForTopLeft:"top",expandingModeForBottomRight:"bottom"};case a.RANGE_TYPE.COLUMN:return{expandingModeForTopLeft:"left",expandingModeForBottomRight:"right"};case a.RANGE_TYPE.ALL:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"};default:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"}}})();return d.fillControlTopLeft.onPointerDown$.subscribeEvent(g=>{this._expandingSelection=!0,this.expandingControlMode=u,this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._fillControlPointerDownHandler(g,l,this._activeViewport)}),d.fillControlBottomRight.onPointerDown$.subscribeEvent(g=>{this._expandingSelection=!0,this.expandingControlMode=h,this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._fillControlPointerDownHandler(g,l,this._activeViewport)}),(l===a.RANGE_TYPE.ROW||l===a.RANGE_TYPE.COLUMN)&&!r.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),d}_getActiveViewport(r){const e=this._getSheetObject();return e==null?void 0:e.scene.getActiveViewportByCoord(w.Vector2.FromArray([r.offsetX,r.offsetY]))}_getSheetObject(){return Ge(this._context.unit,this._context)}_normalSelectionDisabled(){return this._contextService.getContextValue(m.REF_SELECTIONS_ENABLED)}getSelectionControls(){return this._selectionControls}_fillControlPointerDownHandler(r,e=a.RANGE_TYPE.NORMAL,t,o=w.ScrollTimerType.ALL){var h,g,S;const i=this._skeleton,s=this._scene;if(!s||!i)return;t&&(this._activeViewport=t);const l=s.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),d=this.getActiveSelectionControl();if(!d)return;this._changeCurrCellWhenControlPointerDown(),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._clearUpdatingListeners(),this._addEndingListeners(),this._scrollTimer=w.ScrollTimer.create(this._scene,o),this._scrollTimer.startScroll((h=l==null?void 0:l.left)!=null?h:0,(g=l==null?void 0:l.top)!=null?g:0,l),(S=s.getTransformer())==null||S.clearSelectedObjects();const c=s.getCoordRelativeToViewport(w.Vector2.FromArray([r.offsetX,r.offsetY]));this._setupPointerMoveListener(l,d,e,o,c.x,c.y);const u=this._shortcutService.forceEscape();this._scenePointerUpSub=s.onPointerUp$.subscribeEvent(f=>{this.endSelection(),this._expandingSelection=!1,this.expandingControlMode="bottom-right",this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),u.dispose()})}_changeCurrCellWhenControlPointerDown(){const r=this.getActiveSelectionControl(),e=this._skeleton;let t;const{startRow:o,startColumn:i,endRow:s,endColumn:l}=r.model;switch(this.expandingControlMode){case"top-left":t=e.getCellWithCoordByIndex(s,l);break;case"bottom-right":t=e.getCellWithCoordByIndex(o,i);break;case"left":t=e.getCellWithCoordByIndex(o,l),t.isMerged=!1,t.isMergedMainCell=!1;break;case"right":t=e.getCellWithCoordByIndex(o,i),t.isMerged=!1,t.isMergedMainCell=!1;break;case"top":t=e.getCellWithCoordByIndex(s,i),t.isMerged=!1,t.isMergedMainCell=!1;break;case"bottom":t=e.getCellWithCoordByIndex(o,i),t.isMerged=!1,t.isMergedMainCell=!1;break;default:t=e.getCellWithCoordByIndex(o,i)}return r.updateCurrCell(t),t}_movingHandler(r,e,t,o){var x,A,k,N,D,W,H,U,B,F,L,z,X;this._rangeType=o;const i=this._skeleton,s=this._scene,l={startRow:t.model.startRow,endRow:t.model.endRow,startColumn:t.model.startColumn,endColumn:t.model.endColumn},d=s.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),c=(x=this._getViewportByCell(l.endRow,l.endColumn))!=null?x:d,u=s.getScrollXYInfoByViewport(w.Vector2.FromArray([this._startViewportPosX,this._startViewportPosY]),c),{scaleX:h,scaleY:g}=s.getAncestorScale();o===a.RANGE_TYPE.ROW?r=Number.POSITIVE_INFINITY:o===a.RANGE_TYPE.COLUMN&&(e=Number.POSITIVE_INFINITY);const S=this._getSelectionWithCoordByOffset(r,e,h,g,u);if(!S)return!1;const{rangeWithCoord:f}=S,p=t.model.currentCell,v=(A=p==null?void 0:p.mergeInfo.startRow)!=null?A:-1,C=(k=p==null?void 0:p.mergeInfo.endRow)!=null?k:-1,b=(N=p==null?void 0:p.mergeInfo.startColumn)!=null?N:-1,R=(D=p==null?void 0:p.mergeInfo.endColumn)!=null?D:-1;let T={startRow:Math.min(f.startRow,v),startColumn:Math.min(f.startColumn,b),endRow:Math.max(f.endRow,C),endColumn:Math.max(f.endColumn,R)};if(o===a.RANGE_TYPE.NORMAL?T=i.expandRangeByMerge(T):o===a.RANGE_TYPE.COLUMN?T={startRow:Math.min(f.startRow,(W=p==null?void 0:p.actualRow)!=null?W:-1),startColumn:Math.min(f.startColumn,(H=p==null?void 0:p.actualColumn)!=null?H:-1),endRow:Math.max(f.endRow,(U=p==null?void 0:p.actualRow)!=null?U:-1),endColumn:Math.max(f.endColumn,(B=p==null?void 0:p.actualColumn)!=null?B:-1)}:o===a.RANGE_TYPE.ROW&&(T={startRow:Math.min(f.startRow,(F=p==null?void 0:p.actualRow)!=null?F:-1),startColumn:Math.min(f.startColumn,(L=p==null?void 0:p.actualColumn)!=null?L:-1),endRow:Math.max(f.endRow,(z=p==null?void 0:p.actualRow)!=null?z:-1),endColumn:Math.max(f.endColumn,(X=p==null?void 0:p.actualColumn)!=null?X:-1)}),!T)return!1;const y=Me({range:T,style:null,primary:null},i);(l.startRow!==T.startRow||l.startColumn!==T.startColumn||l.endRow!==T.endRow||l.endColumn!==T.endColumn)&&t&&(t.updateRangeBySelectionWithCoord(y),this._selectionMoving$.next(this.getSelectionDataWithStyle()))}_updateControlPointWhenScrolling(){const{scene:r}=this._context;if(!r.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN))return;const t=this._scrollManagerService.validViewportScrollInfo$.subscribe(o=>{var g;if(o==null)return;const{viewportScrollX:i,viewportScrollY:s}=o,l=this.getActiveSelectionControl();if(l==null)return;const d=(g=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:g.skeleton,c=d==null?void 0:d.rowTotalHeight,u=d==null?void 0:d.columnTotalWidth,h=l.rangeType;h===a.RANGE_TYPE.COLUMN?l.transformControlPoint(0,s,u,c):h===a.RANGE_TYPE.ROW&&l.transformControlPoint(i,0,u,c)});this.disposeWithMe(a.toDisposable(t))}};Cr=qC([it(1,a.Inject(a.Injector)),it(2,a.Inject(a.ThemeService)),it(3,I.IShortcutService),it(4,a.Inject(m.SheetsSelectionsService)),it(5,a.Inject(exports.SheetSkeletonManagerService)),it(6,a.ILogService),it(7,a.ICommandService),it(8,a.IContextService),it(9,a.Inject(exports.SheetScrollManagerService))],Cr);var QC=Object.defineProperty,JC=Object.getOwnPropertyDescriptor,$C=(n,r,e)=>r in n?QC(n,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[r]=e,eI=(n,r,e,t)=>{for(var o=t>1?void 0:t?JC(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Pi=(n,r)=>(e,t)=>r(e,t,n),dd=(n,r,e)=>$C(n,typeof r!="symbol"?r+"":r,e);exports.UniverSheetsMobileUIPlugin=class extends a.Plugin{constructor(r=qi,e,t,o){super(),this._config=r,this._injector=e,this._renderManagerService=t,this._univerInstanceService=o}onStarting(){[[Tn],[Be,{useClass:exports.SheetClipboardService}],[on,{useClass:Kl}],[et,{useClass:or}],[Tt,{useClass:exports.AutoFillService}],[Bs],[ve,{useClass:Cr}],[Fr,{useClass:nc}],[Qt,{useClass:exports.MarkSelectionService}],[exports.HoverManagerService],[exports.DragManagerService],[exports.SheetCanvasPopManagerService],[exports.CellAlertManagerService],[fs],[io],[exports.AutoHeightController],[Kt],[exports.SheetsRenderService],[mr],[exports.StatusBarController],[m.IRefSelectionsService,{useClass:m.RefSelectionsService}],[On],[yt],[pr],[so],[exports.SheetPermissionCheckUIController],[ao]].forEach(r=>this._injector.add(r))}onReady(){this._markSheetAsFocused(),this._registerRenderBasics(),this._injector.get(mr)}onRendered(){this._registerRenderModules()}_registerRenderBasics(){[[exports.SheetSkeletonManagerService],[exports.SheetRenderController],[ve,{useClass:Cr}],[exports.SheetScrollManagerService]].forEach(r=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(a.UniverInstanceType.UNIVER_SHEET,r))})}_registerRenderModules(){[[exports.HeaderMoveRenderController],[exports.HeaderFreezeRenderController],[es],[$n],[vr],[cr],[dr],[hr],[exports.HoverRenderController],[exports.DragRenderController],[ur],[exports.CellCustomRenderController],[$i],[gr],[Sr],[fr]].forEach(r=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(a.UniverInstanceType.UNIVER_SHEET,r))})}_markSheetAsFocused(){const r=this._univerInstanceService;this.disposeWithMe(r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).pipe(Ga.filter(e=>!!e)).subscribe(e=>{r.focusUnit(e.getUnitId())}))}};dd(exports.UniverSheetsMobileUIPlugin,"pluginName","SHEET_UI_PLUGIN");dd(exports.UniverSheetsMobileUIPlugin,"type",a.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsMobileUIPlugin=eI([a.DependentOn(m.UniverSheetsPlugin,I.UniverMobileUIPlugin),Pi(1,a.Inject(a.Injector)),Pi(2,w.IRenderManagerService),Pi(3,a.IUniverInstanceService)],exports.UniverSheetsMobileUIPlugin);var tI=Object.getOwnPropertyDescriptor,nI=(n,r,e,t)=>{for(var o=t>1?void 0:t?tI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Oi=(n,r)=>(e,t)=>r(e,t,n);let Ir=class extends a.Disposable{constructor(r,e,t){super();E(this,"_isPointer",!1);this._hoverManagerService=r,this._commandService=e,this._renderManagerService=t,this._initPointerEvent(),this._initHover()}get _mainComponent(){var r;return(r=this._renderManagerService.getCurrentTypeOfRenderer(a.UniverInstanceType.UNIVER_SHEET))==null?void 0:r.mainComponent}_initHover(){this.disposeWithMe(this._hoverManagerService.currentRichText$.subscribe(r=>{var e,t;r!=null&&r.bullet?(this._isPointer||(e=this._mainComponent)==null||e.setCursor(w.CURSOR_TYPE.POINTER),this._isPointer=!0):(this._isPointer&&((t=this._mainComponent)==null||t.setCursor(w.CURSOR_TYPE.AUTO)),this._isPointer=!1)}))}_initPointerEvent(){this.disposeWithMe(this._hoverManagerService.currentClickedCell$.subscribe(r=>{const{location:e,bullet:t}=r;t&&this._commandService.executeCommand(m.ToggleCellCheckboxCommand.id,{unitId:e.unitId,subUnitId:e.subUnitId,row:e.row,col:e.col,paragraphIndex:t.startIndex})}))}};Ir=nI([Oi(0,a.Inject(exports.HoverManagerService)),Oi(1,a.ICommandService),Oi(2,w.IRenderManagerService)],Ir);var oI=Object.getOwnPropertyDescriptor,rI=(n,r,e,t)=>{for(var o=t>1?void 0:t?oI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Yn=(n,r)=>(e,t)=>r(e,t,n);let _r=class extends a.Disposable{constructor(n,r,e,t,o){super(),this._selectionManagerService=n,this._themeService=r,this._instanceSrv=e,this._cmdSrv=t,this._definedNamesService=o,this._init()}_init(){this.disposeWithMe(O.merge(this._selectionManagerService.selectionMoveStart$,this._selectionManagerService.selectionMoving$,this._selectionManagerService.selectionMoveEnd$,this._selectionManagerService.selectionSet$).pipe(O.filter(n=>!!n)).subscribe(n=>{this._syncDefinedNameRange(n)})),this.disposeWithMe(this._definedNamesService.focusRange$.subscribe(async n=>{if(n==null)return;const{unitId:r}=n;let{formulaOrRefString:e}=n;if(e.substring(0,1)===G.operatorToken.EQUALS&&(e=e.substring(1)),!G.isReferenceStrings(e))return;const o=this._instanceSrv.getUnit(r),i=await this._getSelections(o,r,e);this._selectionManagerService.setSelections(i),this._cmdSrv.executeCommand(m.ScrollToCellOperation.id,i[0].range)}))}_syncDefinedNameRange(n){if(n.length===0)return;const r=n[n.length-1],e=this._instanceSrv.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),t=e==null?void 0:e.getActiveSheet();t&&this._definedNamesService.setCurrentRange({range:r.range,unitId:e.getUnitId(),sheetId:t.getSheetId()})}async _getSelections(n,r,e){const t=e.split(",");let o=n.getActiveSheet();if(!o)return[];const i=[];for(let s=0;s<t.length;s++){const l=t[s].trim(),d=G.deserializeRangeWithSheet(l.trim());if(s===0){const u=n.getSheetBySheetName(d.sheetName);u&&o.getSheetId()!==u.getSheetId()&&(o=u,await this._cmdSrv.executeCommand(m.SetWorksheetActivateCommand.id,{subUnitId:o.getSheetId(),unitId:r}))}if(o.getName()!==d.sheetName)continue;let c=null;if(s===t.length-1){const u=d.range,{startRow:h,startColumn:g,endRow:S,endColumn:f}=u;c=m.getPrimaryForRange({startRow:h,startColumn:g,endRow:S,endColumn:f},o)}i.push({range:d.range,style:Rt(this._themeService),primary:c})}return i}};_r=rI([Yn(0,a.Inject(m.SheetsSelectionsService)),Yn(1,a.Inject(a.ThemeService)),Yn(2,a.IUniverInstanceService),Yn(3,a.ICommandService),Yn(4,G.IDefinedNamesService)],_r);var iI=Object.getOwnPropertyDescriptor,sI=(n,r,e,t)=>{for(var o=t>1?void 0:t?iI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},st=(n,r)=>(e,t)=>r(e,t,n);exports.FormulaEditorController=class extends a.RxDisposable{constructor(e,t,o,i,s,l,d,c,u){super();E(this,"_loadedMap",new WeakSet);E(this,"_scheduledCallback",-1);this._univerInstanceService=e,this._renderManagerService=t,this._editorBridgeService=o,this._commandService=i,this._contextService=s,this._formulaEditorManagerService=l,this._undoRedoService=d,this._textSelectionManagerService=c,this._editorService=u,this._initialize()}_initialize(){this._syncEditorSize(),this._listenFxBtnClick(),this._handleContentChange(),this._renderManagerService.currentRender$.pipe(O.takeUntil(this.dispose$)).subscribe(e=>{this._create(e)}),this._create(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),this.disposeWithMe(this._editorService.focus$.subscribe(()=>{var t;((t=this._editorService.getFocusEditor())==null?void 0:t.getEditorId())!==a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY?this._contextService.setContextValue(a.FOCUSING_FX_BAR_EDITOR,!1):this._contextService.setContextValue(a.FOCUSING_FX_BAR_EDITOR,!0)}))}_handleContentChange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===Re.RichTextEditingMutation.id){const t=e.params,{unitId:o}=t;o===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&this.autoScroll()}}))}_create(e){if(e!==a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)return;const t=this._renderManagerService.getRenderById(e);if(t==null)return;const{mainComponent:o}=t;o!=null&&(this._loadedMap.has(o)||this._loadedMap.add(o))}_listenFxBtnClick(){this._formulaEditorManagerService.fxBtnClick$.pipe(O.takeUntil(this.dispose$)).subscribe(()=>{var t,o;if(this._contextService.getContextValue(a.FOCUSING_EDITOR_BUT_HIDDEN)&&!this._contextService.getContextValue(a.EDITOR_ACTIVATED)){this._univerInstanceService.setCurrentUnitForType(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),this._contextService.setContextValue(a.FOCUSING_FX_BAR_EDITOR,!0);const i=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=this._univerInstanceService.getUniverDocInstance(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);this._editorBridgeService.isVisible().visible===!1&&this._commandService.syncExecuteCommand(Ce.id,{visible:!0,eventType:w.DeviceInputEventType.PointerDown,unitId:(t=i==null?void 0:i.getUnitId())!=null?t:""});const d=(o=s==null?void 0:s.getBody())==null?void 0:o.dataStream;if(d==null)return;let c=d.startsWith("=")?d:`=${d}`;c=c.replace(/\r\n$/,"");const u=[{startOffset:c.length,endOffset:c.length}],h={unitId:a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,body:{dataStream:c},segmentId:""};this._commandService.executeCommand(J.CoverContentCommand.id,h),this._textSelectionManagerService.replaceDocRanges(u)}})}_syncEditorSize(){const e=this._univerInstanceService.unitAdded$.pipe(O.filter(t=>t.getUnitId()===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY));this.disposeWithMe(O.combineLatest([this._formulaEditorManagerService.position$,e]).subscribe(([t])=>{if(!t)return this._clearScheduledCallback();const o=Tr(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,this._renderManagerService),i=this._univerInstanceService.getUniverDocInstance(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);if(o==null||i==null)return this._clearScheduledCallback();const{width:s,height:l}=t;if(s===0||l===0)return this._clearScheduledCallback();const{engine:d}=o;i.updateDocumentDataPageSize(s),this.autoScroll(),this._scheduledCallback=requestIdleCallback(()=>d.resizeBySize(s,l))}))}_clearScheduledCallback(){this._scheduledCallback!==-1&&cancelIdleCallback(this._scheduledCallback),this._scheduledCallback=-1}autoScroll(){var p,v;const e=this._formulaEditorManagerService.getPosition(),t=(p=this._renderManagerService.getRenderById(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))==null?void 0:p.with(Re.DocSkeletonManagerService).getSkeleton(),o=this._renderManagerService.getRenderById(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),i=this._univerInstanceService.getUniverDocInstance(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);if(t==null||e==null||o==null||i==null)return;const{marginTop:s=0,marginBottom:l=0}=i.getSnapshot().documentStyle,{scene:d,mainComponent:c}=o;let{actualHeight:u}=t.getActualSize();u+=s+l;const{width:h,height:g}=e,S=d.getViewport(J.VIEWPORT_KEY.VIEW_MAIN);let f=S==null?void 0:S.getScrollBar();d.transformByState({width:h,height:u}),c==null||c.resize(h,u),u>g?f==null?S&&new w.ScrollBar(S,{enableHorizontal:!1,barSize:8}):S==null||S.resetCanvasSizeAndUpdateScroll():(f=null,S==null||S.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0}),(v=S==null?void 0:S.getScrollBar())==null||v.dispose())}};exports.FormulaEditorController=sI([st(0,a.IUniverInstanceService),st(1,w.IRenderManagerService),st(2,Se),st(3,a.ICommandService),st(4,a.IContextService),st(5,No),st(6,a.IUndoRedoService),st(7,a.Inject(Re.DocSelectionManagerService)),st(8,J.IEditorService)],exports.FormulaEditorController);var aI=Object.getOwnPropertyDescriptor,lI=(n,r,e,t)=>{for(var o=t>1?void 0:t?aI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},pt=(n,r)=>(e,t)=>r(e,t,n);const cI={pageSize:{width:Number.POSITIVE_INFINITY,height:Number.POSITIVE_INFINITY},documentFlavor:a.DocumentFlavor.UNSPECIFIED,marginTop:5,marginBottom:5,marginRight:0,marginLeft:0,paragraphLineGapDefault:0,renderConfig:{horizontalAlign:a.HorizontalAlign.UNSPECIFIED,verticalAlign:a.VerticalAlign.TOP,centerAngle:0,vertexAngle:0,wrapStrategy:a.WrapStrategy.WRAP,isRenderStyle:a.BooleanNumber.FALSE}};let br=class extends a.Disposable{constructor(n,r,e,t,o,i,s,l){super(),this._univerInstanceService=n,this._renderManagerService=r,this._editorBridgeService=e,this._commandService=t,this._rangeProtectionRuleModel=o,this._worksheetProtectionRuleModel=i,this._formulaEditorController=s,this._formulaEditorManagerService=l,this._initialize()}_initialize(){this._syncFormulaEditorContent(),this._commandExecutedListener()}_getEditorViewModel(n){var r;return(r=this._renderManagerService.getRenderById(n))==null?void 0:r.with(Re.DocSkeletonManagerService).getViewModel()}_syncFormulaEditorContent(){this.disposeWithMe(this._editorBridgeService.currentEditCellState$.subscribe(n=>{n==null||this._editorBridgeService.isForceKeepVisible()||!this._rangeProtectionRuleModel.getRangeRuleInitState()||!this._worksheetProtectionRuleModel.getSheetRuleInitState()||this._editorSyncHandler(n)}))}_editorSyncHandler(n){var o,i,s;let r=a.Tools.deepClone((o=n.documentLayoutObject.documentModel)==null?void 0:o.getBody());const e=a.Tools.deepClone((i=n.documentLayoutObject.documentModel)==null?void 0:i.drawings),t=a.Tools.deepClone((s=n.documentLayoutObject.documentModel)==null?void 0:s.getDrawingsOrder());(!r||n.isInArrayFormulaRange===!0&&this._editorBridgeService.isVisible().eventType===w.DeviceInputEventType.Dblclick)&&(r={dataStream:`\r
64
- `,paragraphs:[{startIndex:0}],textRuns:[]}),this._syncContentAndRender(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,r,e,t)}_commandExecutedListener(){const n=[a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===Re.RichTextEditingMutation.id){const t=e.params,{unitId:o,trigger:i,isSync:s}=t;if(s||i===J.ReplaceSnapshotCommand.id)return;if(n.includes(o)){const l=this._univerInstanceService.getUnit(o,a.UniverInstanceType.UNIVER_DOC),d=o===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY?a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY:a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY;this._checkAndSetRenderStyleConfig(l),this._syncActionsAndRender(d,t)}}}));const r=[m.SetRangeValuesMutation.id,m.MoveRangeMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var t,o,i,s,l,d,c;if(r.includes(e.id)){const u=this._editorBridgeService.getLatestEditCellState();if(u==null)return;let h=!1;const{row:g,column:S}=u;if(e.id===m.SetRangeValuesMutation.id&&e.params?(o=(t=e.params.cellValue)==null?void 0:t[g])!=null&&o[S]&&(h=!0):e.id===m.MoveRangeMutation.id&&e.params&&(s=(i=e.params.to.value)==null?void 0:i[g])!=null&&s[S]&&(h=!0),h){const f=a.Tools.deepClone((l=u.documentLayoutObject.documentModel)==null?void 0:l.getBody()),p=a.Tools.deepClone((d=u.documentLayoutObject.documentModel)==null?void 0:d.drawings),v=a.Tools.deepClone((c=u.documentLayoutObject.documentModel)==null?void 0:c.getDrawingsOrder());if(f==null)return;this._syncContentAndRender(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,f,p,v)}}}))}_syncActionsAndRender(n,r){var l;const e=[a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY],t=this._renderManagerService.getRenderById(n);if(t==null)return;const o=t.with(Re.DocSkeletonManagerService).getSkeleton(),i=this._univerInstanceService.getUnit(n,a.UniverInstanceType.UNIVER_DOC),s=this._getEditorViewModel(n);i==null||s==null||(this._commandService.syncExecuteCommand(Re.RichTextEditingMutation.id,{...r,textRanges:null,isSync:!0,unitId:n,syncer:r.unitId}),s.reset(i),o.calculate(),e.includes(n)&&((l=t.mainComponent)==null||l.makeDirty()))}_syncContentAndRender(n,r,e,t){var c,u;n===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&r.paragraphs&&(r.paragraphs=this._clearParagraph(r.paragraphs));const o=[a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY],i=(c=this._renderManagerService.getRenderById(n))==null?void 0:c.with(Re.DocSkeletonManagerService).getSkeleton(),s=this._univerInstanceService.getUnit(n,a.UniverInstanceType.UNIVER_DOC),l=this._getEditorViewModel(n);if(s==null||l==null||i==null)return;s.getSnapshot().body=r,s.getSnapshot().drawings=e!=null?e:{},s.getSnapshot().drawingsOrder=t!=null?t:[],this._checkAndSetRenderStyleConfig(s),l.reset(s);const d=this._renderManagerService.getRenderById(n);d!=null&&(i.calculate(),o.includes(n)&&((u=d.mainComponent)==null||u.makeDirty()),n===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&this._formulaEditorController.autoScroll())}_checkAndSetRenderStyleConfig(n){var i;const r=n.getSnapshot(),{body:e}=r;if(r.id!==a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)return;r.documentStyle=cI;let t=r.documentStyle.renderConfig;t==null&&(t={},r.documentStyle.renderConfig=t);const o=this._formulaEditorManagerService.getPosition();if(o){const s=o.width;r.documentStyle.pageSize={width:s,height:1/0}}((i=e==null?void 0:e.dataStream)!=null?i:"").startsWith("=")?t.isRenderStyle=a.BooleanNumber.TRUE:t.isRenderStyle=a.BooleanNumber.FALSE}_clearParagraph(n){const r=a.Tools.deepClone(n);for(const e of r)e.paragraphStyle&&(e.paragraphStyle.horizontalAlign=a.HorizontalAlign.UNSPECIFIED);return r}};br=lI([pt(0,a.IUniverInstanceService),pt(1,w.IRenderManagerService),pt(2,Se),pt(3,a.ICommandService),pt(4,a.Inject(m.RangeProtectionRuleModel)),pt(5,a.Inject(m.WorksheetProtectionRuleModel)),pt(6,a.Inject(exports.FormulaEditorController)),pt(7,No)],br);var dI=Object.getOwnPropertyDescriptor,uI=(n,r,e,t)=>{for(var o=t>1?void 0:t?dI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Dt=(n,r)=>(e,t)=>r(e,t,n);let Rr=class extends a.Disposable{constructor(n,r,e,t,o,i,s){super(),this._commandService=n,this._formatPainterService=r,this._univerInstanceService=e,this._renderManagerService=t,this._selectionManagerService=o,this._sheetInterceptorService=i,this._injector=s,this._initialize()}_initialize(){this._addDefaultHook()}_addDefaultHook(){const n={id:"default-format-painter",priority:0,isDefaultHook:!0,onStatusChange:r=>{if(r!==Ne.OFF){const e=this._collectSelectionRangeFormat();e&&this._formatPainterService.setSelectionFormat(e)}},onApply:(r,e,t,o)=>this._getUndoRedoMutationInfo(r,e,t,o)};this._formatPainterService.addHook(n)}_collectSelectionRangeFormat(){const n=this._selectionManagerService.getCurrentLastSelection(),r=n==null?void 0:n.range;if(!r)return null;const{startRow:e,endRow:t,startColumn:o,endColumn:i}=r,s=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s==null?void 0:s.getActiveSheet();if(!l)return null;const d=l.getCellMatrix(),c=s.getStyles(),u=new a.ObjectMatrix,h=[];for(let g=e;g<=t;g++)for(let S=o;S<=i;S++){const f=d.getValue(g,S);u.setValue(g,S,c.getStyleByCell(f)||{});const{isMergedMainCell:p,...v}=l.getCellInfoInMergeData(g,S);p&&h.push({startRow:v.startRow,startColumn:v.startColumn,endRow:v.endRow,endColumn:v.endColumn})}return{styles:u,merges:h}}_getUndoRedoMutationInfo(n,r,e,t){const o=this._sheetInterceptorService,i=this._univerInstanceService,{merges:s,styles:l}=t;if(!l)return{undos:[],redos:[]};const{startRow:d,startColumn:c,endRow:u,endColumn:h}=l.getDataRange(),g=u-d+1,S=h-c+1,f=e.startRow===e.endRow&&e.startColumn===e.endColumn?{startRow:e.startRow,startColumn:e.startColumn,endRow:e.startRow+g-1,endColumn:e.startColumn+S-1}:e,p=Array.from({length:f.endRow-f.startRow+1},()=>Array.from({length:f.endColumn-f.startColumn+1},()=>({}))),v=[];p.forEach((L,z)=>{L.forEach((X,Z)=>{const oe=z%g+d,Q=Z%S+c,ie=l.getValue(oe,Q);ie&&(p[z][Z].s=Object.keys(ie).length>0?ie:null)})}),s.forEach(L=>{const z={startRow:L.startRow-d,startColumn:L.startColumn-c,endRow:L.endRow-d,endColumn:L.endColumn-c},X=Math.max(1,Math.floor((f.endRow-f.startRow+1)/g)),Z=Math.max(1,Math.floor((f.endColumn-f.startColumn+1)/S));for(let oe=0;oe<X;oe++)for(let Q=0;Q<Z;Q++)v.push({startRow:z.startRow+oe*g+f.startRow,startColumn:z.startColumn+Q*S+f.startColumn,endRow:z.endRow+oe*g+f.startRow,endColumn:z.endColumn+Q*S+f.startColumn})});const C=[f],b=new a.ObjectMatrix,R=new a.ObjectMatrix;if(a.Tools.isArray(p))for(let L=0;L<C.length;L++){const{startRow:z,startColumn:X,endRow:Z,endColumn:oe}=C[L];for(let Q=0;Q<=Z-z;Q++)for(let ie=0;ie<=oe-X;ie++)b.setValue(Q+z,ie+X,{s:null}),R.setValue(Q+z,ie+X,p[Q][ie])}const T={subUnitId:r,unitId:n,cellValue:b.getMatrix()},M={subUnitId:r,unitId:n,cellValue:R.getMatrix()},y=this._injector.invoke(m.SetRangeValuesUndoMutationFactory,T),{undos:P,redos:x}=o.onCommandExecute({id:m.SetRangeValuesCommand.id,params:{...M,range:C}}),A=m.getAddMergeMutationRangeByType(v),k=[],N=[],D=i.getUnit(n).getSheetBySheetId(r),W=Ll(D,A),H={unitId:n,subUnitId:r,ranges:A},U={unitId:n,subUnitId:r,ranges:A};k.push({id:m.RemoveWorksheetMergeMutation.id,params:H}),k.push({id:m.AddWorksheetMergeMutation.id,params:U});const B=this._injector.invoke(m.RemoveMergeUndoMutationFactory,H),F=this._injector.invoke(m.AddMergeUndoMutationFactory,U);if(N.push({id:m.RemoveWorksheetMergeMutation.id,params:F}),N.push({id:m.AddWorksheetMergeMutation.id,params:B}),W){const L=this._injector.invoke(z=>Bl(z,n,D,A));k.unshift(...L.redos),N.push(...L.undos)}return{undos:[{id:m.SetRangeValuesMutation.id,params:T},{id:m.SetRangeValuesMutation.id,params:y},...P,...N],redos:[{id:m.SetRangeValuesMutation.id,params:T},{id:m.SetRangeValuesMutation.id,params:M},...x,...k]}}};Rr=uI([Dt(0,a.ICommandService),Dt(1,et),Dt(2,a.IUniverInstanceService),Dt(3,w.IRenderManagerService),Dt(4,a.Inject(m.SheetsSelectionsService)),Dt(5,a.Inject(m.SheetInterceptorService)),Dt(6,a.Inject(a.Injector))],Rr);var hI=Object.getOwnPropertyDescriptor,mI=(n,r,e,t)=>{for(var o=t>1?void 0:t?hI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},xi=(n,r)=>(e,t)=>r(e,t,n);let ts=class extends a.Disposable{constructor(r,e,t,o){super();E(this,"_initialize",()=>{const r=new a.DisposableCollection;this.disposeWithMe(this._selectionManagerService.selectionMoveEnd$.subscribe(()=>{r.dispose(),this._selectionRenderService.getSelectionControls().forEach(t=>{r.add(a.toDisposable(t.selectionMoveEnd$.subscribe(o=>{if(!o)return;const i=t.model.getRange(),s={startRow:i.startRow,startColumn:i.startColumn,endRow:i.endRow,endColumn:i.endColumn,rangeType:i.rangeType},l={startRow:o.startRow,startColumn:o.startColumn,endRow:o.endRow,endColumn:o.endColumn,rangeType:i.rangeType};if(s.startRow===l.startRow&&s.startColumn===l.startColumn||l.startRow<0||l.startColumn<0)return;const d={fromRange:s,toRange:l};this._commandService.executeCommand(m.MoveRangeCommand.id,d)})))})}))});this._context=r,this._selectionRenderService=e,this._selectionManagerService=t,this._commandService=o,this._initialize()}};ts=mI([xi(1,a.Inject(ve)),xi(2,a.Inject(m.SheetsSelectionsService)),xi(3,a.Inject(a.ICommandService))],ts);var gI=Object.getOwnPropertyDescriptor,SI=(n,r,e,t)=>{for(var o=t>1?void 0:t?gI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ai=(n,r)=>(e,t)=>r(e,t,n);let ns=class extends a.Disposable{constructor(n,r,e,t){super(),this._context=n,this._sheetSkeletonManagerService=r,this._sheetClipboardService=e,this._sheetClipboardController=t,this._initialize()}_initialize(){this.disposeWithMe(a.toDisposable(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(n=>{if(!(n!=null&&n.unitId)||!this._sheetClipboardService.getPasteMenuVisible())return;const r=this._sheetClipboardService.getPasteOptionsCache(),e=r==null?void 0:r.target.unitId;n.unitId===e&&this._sheetClipboardController.refreshOptionalPaste()})))}};ns=SI([Ai(1,a.Inject(exports.SheetSkeletonManagerService)),Ai(2,Be),Ai(3,a.Inject(Kt))],ns);var fI=Object.getOwnPropertyDescriptor,pI=(n,r,e,t)=>{for(var o=t>1?void 0:t?fI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},ki=(n,r)=>(e,t)=>r(e,t,n);let os=class extends a.Disposable{constructor(n,r,e,t){super(),this._context=n,this._contextMenuService=r,this._selectionManagerService=e,this._selectionRenderService=t,this._init()}_init(){var l,d;const r=((d=(l=this._context)==null?void 0:l.mainComponent)==null?void 0:d.onPointerDown$).subscribeEvent(c=>{if(c.button===2){const u=this._selectionManagerService.getCurrentSelections(),h=u==null?void 0:u[0];if(!h)return;const g=h.range.rangeType,S=this._selectionRenderService.getSkeleton(),p=Me(h,S).rangeWithCoord,v=()=>{if(!p)return!1;const b=c.offsetX,R=c.offsetY;switch(g){case a.RANGE_TYPE.ROW:return p.startY<=R&&p.endY>=R;case a.RANGE_TYPE.COLUMN:return p.startX<=b&&p.endX>=b;default:return p.startX<=b&&p.endX>=b&&p.startY<=R&&p.endY>=R}},C=b=>{this._contextMenuService.triggerContextMenu(c,b)};v()?g===a.RANGE_TYPE.COLUMN?C(I.ContextMenuPosition.COL_HEADER):g===a.RANGE_TYPE.ROW?C(I.ContextMenuPosition.ROW_HEADER):C(I.ContextMenuPosition.MAIN_AREA):C(I.ContextMenuPosition.MAIN_AREA)}});this.disposeWithMe(r);const e=this._context.components.get(he.COLUMN),o=this._context.components.get(he.ROW).onPointerDown$.subscribeEvent(c=>{c.button===2&&this._contextMenuService.triggerContextMenu(c,I.ContextMenuPosition.ROW_HEADER)});this.disposeWithMe(o);const s=e.onPointerDown$.subscribeEvent(c=>{c.button===2&&this._contextMenuService.triggerContextMenu(c,I.ContextMenuPosition.COL_HEADER)});this.disposeWithMe(s)}};os=pI([ki(1,I.IContextMenuService),ki(2,a.Inject(m.SheetsSelectionsService)),ki(3,ve)],os);var vI=Object.getOwnPropertyDescriptor,CI=(n,r,e,t)=>{for(var o=t>1?void 0:t?vI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},at=(n,r)=>(e,t)=>r(e,t,n);let rs=class extends a.RxDisposable{constructor(r,e,t,o,i,s,l,d,c,u){super();E(this,"_d");this._context=r,this._instanceSrv=e,this._commandService=t,this._editorBridgeService=o,this._selectionManagerService=i,this._rangeSelectorService=s,this._contextService=l,this._renderManagerService=d,this._editorService=c,this._sheetSkeletonManagerService=u,this.disposeWithMe(this._instanceSrv.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(h=>{h&&h.getUnitId()===this._context.unitId?this._d=this._init():this._disposeCurrent()})),this._initialRangeSelector()}_init(){const r=new a.DisposableCollection;return this._initSelectionChangeListener(r),this._initEventListener(r),this._commandExecutedListener(r),this._initialKeyboardListener(r),r}_disposeCurrent(){var r;(r=this._d)==null||r.dispose(),this._d=null}_initSelectionChangeListener(r){r.add(O.merge(this._selectionManagerService.selectionMoveEnd$,this._selectionManagerService.selectionSet$,this._selectionManagerService.selectionMoveStart$).subscribe(e=>this._updateEditorPosition(e)))}_updateEditorPosition(r){var t,o,i;if(this._editorBridgeService.isVisible().visible||this._rangeSelectorService.selectorModalVisible)return;const e=(t=r==null?void 0:r[r.length-1])==null?void 0:t.primary;if(e){const s=this._getSheetObject(),{scene:l,engine:d}=s,c=this._context.unitId,u=(o=this._context.unit.getActiveSheet())==null?void 0:o.getSheetId();if(!u)return;const h=(i=this._sheetSkeletonManagerService.getSkeletonParam(u))==null?void 0:i.skeleton.getCellWithCoordByIndex(e.actualRow,e.actualColumn),g=h?{actualRow:h.actualRow,actualColumn:h.actualColumn,isMerged:h.isMerged,startRow:h.mergeInfo.startRow,startColumn:h.mergeInfo.startColumn,endRow:h.mergeInfo.endRow,endColumn:h.mergeInfo.endColumn,isMergedMainCell:h.isMergedMainCell}:e;this._commandService.executeCommand(Lr.id,{scene:l,engine:d,primary:g,unitId:c,sheetId:u})}}_initEventListener(r){const e=this._getSheetObject(),{spreadsheet:t,spreadsheetColumnHeader:o,spreadsheetLeftTopPlaceholder:i,spreadsheetRowHeader:s}=e;r.add(t.onDblclick$.subscribeEvent(l=>{l.button!==2&&this._commandService.executeCommand(Ce.id,{visible:!0,eventType:w.DeviceInputEventType.Dblclick,unitId:this._context.unitId})})),r.add(t.onPointerDown$.subscribeEvent({next:this._tryHideEditor.bind(this),priority:-1})),r.add(o.onPointerDown$.subscribeEvent({next:this._tryHideEditor.bind(this),priority:-1})),r.add(i.onPointerDown$.subscribeEvent({next:this._tryHideEditor.bind(this),priority:-1})),r.add(s.onPointerDown$.subscribeEvent({next:this._tryHideEditor.bind(this),priority:-1}))}_initialKeyboardListener(r){let e=null;const t=i=>{const s=i.with(J.DocSelectionRenderService);s&&(e=a.toDisposable(s.onInputBefore$.subscribe(l=>{if(!this._isCurrentSheetFocused())return;const d=this._contextService.getContextValue(a.FOCUSING_FX_BAR_EDITOR),c=this._contextService.getContextValue(a.FOCUSING_SHEET),u=i.unitId;this._editorBridgeService.isVisible().visible||u&&c&&!d&&this._showEditorByKeyboard(l)})),r.add(e))},o=this._renderManagerService.getRenderById(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);o?t(o):this.disposeWithMe(this._renderManagerService.created$.pipe(O.filter(i=>i.unitId===a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)).subscribe(i=>{e==null||e.dispose(),t(i)}))}_commandExecutedListener(r){const e=new Set([m.ClearSelectionFormatCommand.id,Nn.id]);r.add(this._commandService.onCommandExecuted(t=>{if(e.has(t.id)){if(this._editorBridgeService.isVisible().visible)return;this._editorBridgeService.refreshEditCellState()}if(t.id===m.SetRangeValuesMutation.id){const o=t.params,{cellValue:i,unitId:s,subUnitId:l}=o;if(!i)return;const d=this._editorBridgeService.getEditLocation();if(d){const{unitId:c,sheetId:u,row:h,column:g}=d;s===c&&l===u&&i&&i[h]&&Object.prototype.hasOwnProperty.call(i[h],g)&&this._editorBridgeService.refreshEditCellState()}}})),r.add(this._commandService.beforeCommandExecuted((t,o)=>{o!=null&&o.fromCollab||t.id===m.SetWorksheetActiveOperation.id&&this._tryHideEditor()}))}_showEditorByKeyboard(r){const e=r==null?void 0:r.event;r==null||!e.data&&e.inputType!=="InsertParagraph"||this._commandService.syncExecuteCommand(Ce.id,{visible:!0,eventType:w.DeviceInputEventType.Keyboard,keycode:e.which,unitId:this._context.unitId})}_tryHideEditor(){this._editorBridgeService.isForceKeepVisible()||this._hideEditor()}_hideEditor(){this._editorBridgeService.isVisible().visible===!0&&this._commandService.syncExecuteCommand(Ce.id,{visible:!1,eventType:w.DeviceInputEventType.PointerDown,unitId:this._context.unitId})}_initialRangeSelector(){this.disposeWithMe(this._selectionManagerService.selectionMoving$.subscribe(this._rangeSelector.bind(this))),this.disposeWithMe(this._selectionManagerService.selectionMoveStart$.subscribe(this._rangeSelector.bind(this))),this.disposeWithMe(this._rangeSelectorService.openSelector$.subscribe(()=>{const{unitId:r,sheetId:e,sheetName:t}=this._getCurrentUnitIdAndSheetId();if(!e||!t)return;const o=this._selectionManagerService.getCurrentSelections(),i=o==null?void 0:o.map(s=>({range:s.range,unitId:r,sheetId:e,sheetName:t}));i&&this._rangeSelectorService.selectionChange(i)}))}_rangeSelector(r){if(!r)return;const{unitId:e,sheetId:t,sheetName:o}=this._getCurrentUnitIdAndSheetId();if(!t||!o)return;const i=r.map(s=>({range:s.range,unitId:e,sheetId:t,sheetName:o}));this._rangeSelectorService.selectionChange(i)}_getCurrentUnitIdAndSheetId(){const r=this._context.unit,e=r.getActiveSheet();return{unitId:r.getUnitId(),sheetId:e==null?void 0:e.getSheetId(),sheetName:e==null?void 0:e.getName()}}_getSheetObject(){return Ge(this._context.unit,this._context)}_isCurrentSheetFocused(){var r;return((r=this._instanceSrv.getFocusedUnit())==null?void 0:r.getUnitId())===this._context.unitId}};rs=CI([at(1,a.IUniverInstanceService),at(2,a.ICommandService),at(3,Se),at(4,a.Inject(m.SheetsSelectionsService)),at(5,J.IRangeSelectorService),at(6,a.IContextService),at(7,w.IRenderManagerService),at(8,J.IEditorService),at(9,a.Inject(exports.SheetSkeletonManagerService))],rs);var is=(n=>(n[n.NORMAL=0]="NORMAL",n[n.HIGHLIGHT=1]="HIGHLIGHT",n))(is||{});const II="rgba(0, 0, 0, 0.15)",lt="rgb(0, 0, 0)",Yo="rgb(255, 255, 255, 1)";class _I extends w.Shape{constructor(e,t){super(e,t);E(this,"_size",12);E(this,"_iconRatio",.4);E(this,"_mode",0);this.setShapeProps(t)}setShapeProps(e){e!=null&&e.size&&(this._size=e.size),e!=null&&e.mode&&(this._mode=e.mode),this.transformByState({width:this._size,height:this._size})}_draw(e){this._mode===1&&w.Rect.drawWith(e,{width:this._size,height:this._size,radius:this._size,fill:II});const t=this._size*.5*this._iconRatio,o=Math.PI/180*60,i=t*Math.sin(o),s=t*Math.cos(o);w.RegularPolygon.drawWith(e,{pointsGroup:[[{x:-i+this._size/2,y:-s+this._size/2},{x:i+this._size/2,y:-s+this._size/2},{x:this._size/2,y:t+this._size/2}]],fill:lt})}}var bI=Object.getOwnPropertyDescriptor,RI=(n,r,e,t)=>{for(var o=t>1?void 0:t?bI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Go=(n,r)=>(e,t)=>r(e,t,n);const EI="__SpreadsheetHeaderMenuSHAPEControllerShape__",TI="__SpreadsheetHeaderMenuMAINControllerShape__",wI="rgba(0, 0, 0, 0.1)";let ss=class extends a.Disposable{constructor(r,e,t,o,i){super();E(this,"_hoverRect");E(this,"_hoverMenu");E(this,"_currentColumn",Number.POSITIVE_INFINITY);E(this,"_headerPointerSubs");E(this,"_colHeaderPointerSubs");this._context=r,this._sheetSkeletonManagerService=e,this._contextMenuService=t,this._commandService=o,this._selectionManagerService=i,this._initialize()}dispose(){var r,e,t;(r=this._hoverRect)==null||r.dispose(),(e=this._hoverMenu)==null||e.dispose(),(t=this._headerPointerSubs)==null||t.unsubscribe(),this._headerPointerSubs=null}_initialize(){const r=this._context.scene;this._hoverRect=new w.Rect(EI,{fill:wI,evented:!1}),this._hoverMenu=new _I(TI,{zIndex:100,visible:!1}),r.addObjects([this._hoverRect,this._hoverMenu],bt),this._initialHover(0),this._initialHover(1),this._initialHoverMenu()}_initialHover(r=0){var h,g,S;const e=this._context.components.get(he.COLUMN),t=this._context.components.get(he.ROW),o=r===0?t:e,i=f=>{var P,x,A;const p=(P=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:P.skeleton;if(p==null)return;const{rowHeaderWidth:v,columnHeaderHeight:C}=p,{startX:b,startY:R,endX:T,endY:M,column:y}=qe(f.offsetX,f.offsetY,this._context.scene,p);if(r===0)(x=this._hoverRect)==null||x.transformByState({width:v,height:M-R,left:0,top:R});else{if(this._currentColumn=y,(A=this._hoverRect)==null||A.transformByState({width:T-b,height:C,left:b,top:0}),this._hoverMenu==null)return;if(T-b<C*2){this._hoverMenu.hide();return}const k=C*.8;this._hoverMenu.transformByState({left:T-C,top:C/2-k/2}),this._hoverMenu.setShapeProps({size:k}),this._hoverMenu.show()}},s=()=>{var f;(f=this._hoverRect)==null||f.show()},l=()=>{var f,p;(f=this._hoverRect)==null||f.hide(),(p=this._hoverMenu)==null||p.hide()};this._headerPointerSubs=new O.Subscription;const d=o.onPointerMove$.subscribeEvent(i),c=o.onPointerEnter$.subscribeEvent(s),u=o.onPointerLeave$.subscribeEvent(l);(h=this._headerPointerSubs)==null||h.add(d),(g=this._headerPointerSubs)==null||g.add(c),(S=this._headerPointerSubs)==null||S.add(u)}_initialHoverMenu(){this._hoverMenu!=null&&(this._hoverMenu.onPointerEnter$.subscribeEvent(()=>{this._hoverMenu!=null&&(this._hoverMenu.setProps({mode:is.HIGHLIGHT,visible:!0}),this._context.scene.setCursor(w.CURSOR_TYPE.POINTER))}),this._hoverMenu.onPointerLeave$.subscribeEvent(()=>{this._hoverMenu!=null&&(this._hoverMenu.setProps({mode:is.NORMAL,visible:!1}),this._context.scene.resetCursor())}),this._hoverMenu.onPointerDown$.subscribeEvent(r=>{var i;const e=this._currentColumn,t=(i=this._selectionManagerService.getCurrentSelections())==null?void 0:i.map(s=>s.range);if(!!!(t!=null&&t.filter(s=>s.rangeType===a.RANGE_TYPE.COLUMN).find(s=>{const{startColumn:l,endColumn:d}=s;return e>=l&&e<=d}))){const s=this._getSelectionOnColumn(e);this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,s)}r.stopPropagation(),r.preventDefault(),this._contextMenuService.triggerContextMenu(r,I.ContextMenuPosition.COL_HEADER)}))}_getSelectionOnColumn(r){const e=this._context.unit,t=e.getActiveSheet();if(!t)throw new Error("No active worksheet");return{unitId:e.getUnitId(),subUnitId:t.getSheetId(),selections:[{range:{startRow:0,startColumn:r,endRow:t.getRowCount()-1,endColumn:r,rangeType:a.RANGE_TYPE.COLUMN},primary:{startRow:0,startColumn:r,endRow:0,endColumn:r,actualRow:0,actualColumn:r,isMerged:!1,isMergedMainCell:!1},style:null}]}}};ss=RI([Go(1,a.Inject(exports.SheetSkeletonManagerService)),Go(2,I.IContextMenuService),Go(3,a.ICommandService),Go(4,a.Inject(m.SheetsSelectionsService))],ss);var as=(n=>(n[n.ROW=0]="ROW",n[n.COLUMN=1]="COLUMN",n))(as||{});const Zn=12,yI=.4;class ja extends w.Shape{constructor(e,t,o){super(e,t);E(this,"_size",Zn);E(this,"_iconRatio",yI);E(this,"_hovered",!0);E(this,"_hasPrevious",!0);E(this,"_hasNext",!0);E(this,"_unhideType");t&&this.setShapeProps(t),this.onPointerEnter$.subscribeEvent(()=>this.setShapeProps({hovered:!0})),this.onPointerLeave$.subscribeEvent(()=>this.setShapeProps({hovered:!1})),this.onPointerDown$.subscribeEvent(()=>o==null?void 0:o())}setShapeProps(e){e.type!==void 0&&(this._unhideType=e.type),e.hovered!==void 0&&(this._hovered=e.hovered),e.hasPrevious!==void 0&&(this._hasPrevious=e.hasPrevious),e.hasNext!==void 0&&(this._hasNext=e.hasNext),this.transformByState({width:this._size*(this._unhideType===1?2:1),height:this._size*(this._unhideType===0?2:1)})}_draw(e){this._unhideType===0?this._drawOnRow(e):this._drawOnCol(e)}_drawOnRow(e){this._hovered&&(!this._hasNext||!this._hasPrevious?w.Rect.drawWith(e,{width:this._size,height:this._size,stroke:lt,fill:Yo}):w.Rect.drawWith(e,{width:this._size,height:2*this._size,stroke:lt,fill:Yo}));const t=this._size*.5*this._iconRatio,o=Math.PI/3,i=t*Math.cos(o),s=t*Math.sin(o);if(this._hasPrevious&&w.RegularPolygon.drawWith(e,{pointsGroup:[[{x:this._size/2,y:this._size/2-s},{x:this._size/2-s,y:this._size/2+i},{x:this._size/2+s,y:this._size/2+i}]],fill:lt}),this._hasNext){const l=this._hasPrevious?3:1;w.RegularPolygon.drawWith(e,{pointsGroup:[[{x:this._size/2,y:this._size*l/2+s},{x:this._size/2-s,y:this._size*l/2-i},{x:this._size/2+s,y:this._size*l/2-i}]],fill:lt})}}_drawOnCol(e){this._hovered&&(!this._hasNext||!this._hasPrevious?w.Rect.drawWith(e,{width:this._size,height:this._size,stroke:lt,fill:Yo}):w.Rect.drawWith(e,{width:2*this._size,height:this._size,stroke:lt,fill:Yo}));const t=this._size*.5*this._iconRatio,o=Math.PI/3,i=t*Math.cos(o),s=t*Math.sin(o);if(this._hasPrevious&&w.RegularPolygon.drawWith(e,{pointsGroup:[[{x:-i+this._size/2,y:this._size/2},{x:this._size/2+s,y:this._size/2-s},{x:this._size/2+s,y:this._size/2+s}]],fill:lt}),this._hasNext){const l=this._hasPrevious?3:1;w.RegularPolygon.drawWith(e,{pointsGroup:[[{x:i+this._size*l/2,y:this._size/2},{x:-s+this._size*l/2,y:this._size/2-s},{x:-s+this._size*l/2,y:this._size/2+s}]],fill:lt})}}}var MI=Object.getOwnPropertyDescriptor,PI=(n,r,e,t)=>{for(var o=t>1?void 0:t?MI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},za=(n,r)=>(e,t)=>r(e,t,n);const Xa="__SpreadsheetHeaderUnhideSHAPEControllerShape__";m.InsertColMutation.id,m.InsertRowMutation.id,m.RemoveColMutation.id,m.RemoveRowMutation.id,m.MoveColsMutation.id,m.MoveRowsMutation.id,m.SetWorksheetColWidthMutation.id,m.SetWorksheetRowIsAutoHeightMutation.id,m.SetRowHiddenMutation.id,m.SetRowVisibleMutation.id,m.SetColHiddenMutation.id,m.SetColVisibleMutation.id;let ls=class extends a.RxDisposable{constructor(r,e,t){super();E(this,"_shapes",{cols:[],rows:[]});this._context=r,this._sheetSkeletonManagerService=e,this._commandService=t,this._init()}get _workbook(){return this._context.unit}dispose(){super.dispose(),this._clearShapes()}_init(){let r="";this._context.unit.activeSheet$.pipe(O.takeUntil(this.dispose$)).subscribe(e=>{if(this._clearShapes(),!e){r="";return}r=e.getSheetId(),this._update(this._workbook,e)}),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(e=>{if(e){const{unitId:t,sheetId:o}=e;if(t===this._workbook.getUnitId()&&o===r){const i=this._workbook.getSheetBySheetId(o);i&&this._update(this._workbook,i)}}}))}_update(r,e){var g;const t=(g=this._sheetSkeletonManagerService.getSkeletonParam(e.getSheetId()))==null?void 0:g.skeleton;if(!t)return;const o=e.getHiddenRows(),i=e.getHiddenCols(),s=this._getSheetObject(),{scene:l}=s,d=e.getRowCount(),c=o.map(S=>{const{startRow:f,endRow:p}=S,v=Ui(f,0,l,t),C=f!==0,b=p!==d-1;return new ja(Xa,{type:as.ROW,hovered:!1,hasPrevious:C,hasNext:b,top:v.startY-(C?Zn:0),left:v.startX-Zn},()=>this._commandService.executeCommand(m.SetSpecificRowsVisibleCommand.id,{unitId:r.getUnitId(),subUnitId:e.getSheetId(),ranges:[S]}))}),u=e.getColumnCount(),h=i.map(S=>{const{startColumn:f,endColumn:p}=S,v=Ui(0,f,l,t),C=f!==0,b=p!==u-1;return new ja(Xa,{type:as.COLUMN,hovered:!1,hasPrevious:C,hasNext:b,top:20-Zn,left:v.startX-(C?Zn:0)},()=>this._commandService.executeCommand(m.SetSpecificColsVisibleCommand.id,{unitId:r.getUnitId(),subUnitId:e.getSheetId(),ranges:[S]}))});l.addObjects(h,js),l.addObjects(c,js),this._clearShapes(),this._shapes={cols:h,rows:c}}_clearShapes(){this._shapes.cols.forEach(r=>r.dispose()),this._shapes.rows.forEach(r=>r.dispose()),this._shapes={cols:[],rows:[]}}_getSheetObject(){return Ge(this._workbook,this._context)}};ls=PI([za(1,a.Inject(exports.SheetSkeletonManagerService)),za(2,a.ICommandService)],ls);var OI=Object.getOwnPropertyDescriptor,xI=(n,r,e,t)=>{for(var o=t>1?void 0:t?OI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ya=(n,r)=>(e,t)=>r(e,t,n);let cs=class extends a.Disposable{constructor(n,r,e){super(),this._context=n,this._sheetSkeletonManagerService=r,this._renderManagerService=e,this.disposeWithMe(this._context.unit.sheetDisposed$.subscribe(t=>{this._sheetSkeletonManagerService.disposeSkeleton(t.getSheetId())})),this._sheetSkeletonManagerService.currentSkeleton$.subscribe(t=>{this._updateSceneSize(t)})}_updateSceneSize(n){var u;if(n==null)return;const{unitId:r}=this._context,{skeleton:e}=n,t=(u=this._renderManagerService.getRenderById(r))==null?void 0:u.scene;if(e==null||t==null)return;const{rowTotalHeight:o,columnTotalWidth:i,rowHeaderWidthAndMarginLeft:s,columnHeaderHeightAndMarginTop:l}=e;this._context.unit.getActiveSheet()&&(t==null||t.transformByState({width:s+i,height:l+o}))}};cs=xI([Ya(1,a.Inject(exports.SheetSkeletonManagerService)),Ya(2,w.IRenderManagerService)],cs);var AI=Object.getOwnPropertyDescriptor,kI=(n,r,e,t)=>{for(var o=t>1?void 0:t?AI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},vt=(n,r)=>(e,t)=>r(e,t,n);exports.SheetSelectionRenderService=class extends hs{constructor(e,t,o,i,s,l,d,c,u){super(t,o,i,l,u);E(this,"_workbookSelections");E(this,"_renderDisposable",null);this._context=e,this._logService=d,this._commandService=c,this._contextService=u,this._workbookSelections=s.getWorkbookSelections(this._context.unitId),this._init()}_init(){const e=this._getSheetObject();this._contextService.setContextValue(m.SELECTIONS_ENABLED,!0),this._initEventListeners(e),this._initSelectionModelChangeListener(),this._initThemeChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener()}_initEventListeners(e){const{spreadsheetRowHeader:t,spreadsheetColumnHeader:o,spreadsheet:i,spreadsheetLeftTopPlaceholder:s}=e,{scene:l}=this._context;this.disposeWithMe(i==null?void 0:i.onPointerDown$.subscribeEvent((d,c)=>{this.isSelectionDisabled()||this.inRefSelectionMode()||(this._onPointerDown(d,i.zIndex+1,a.RANGE_TYPE.NORMAL,this._getActiveViewport(d)),d.button!==2&&c.stopPropagation())})),this.disposeWithMe(t==null?void 0:t.onPointerDown$.subscribeEvent((d,c)=>{if(this.isSelectionDisabled()||this.inRefSelectionMode())return;const u=this._sheetSkeletonManagerService.getCurrentParam().skeleton,{row:h}=qe(d.offsetX,d.offsetY,l,u);Ml(this._workbookSelections.getCurrentSelections(),h)||(this._onPointerDown(d,(i.zIndex||1)+1,a.RANGE_TYPE.ROW,this._getActiveViewport(d),w.ScrollTimerType.Y),d.button!==2&&c.stopPropagation())})),this.disposeWithMe(o==null?void 0:o.onPointerDown$.subscribeEvent((d,c)=>{if(this.isSelectionDisabled()||this.inRefSelectionMode())return;const u=this._sheetSkeletonManagerService.getCurrentParam().skeleton,{column:h}=qe(d.offsetX,d.offsetY,l,u);Pl(this._workbookSelections.getCurrentSelections(),h)||(this._onPointerDown(d,(i.zIndex||1)+1,a.RANGE_TYPE.COLUMN,this._getActiveViewport(d),w.ScrollTimerType.X),d.button!==2&&c.stopPropagation())})),this.disposeWithMe(s==null?void 0:s.onPointerDown$.subscribeEvent((d,c)=>{if(this.isSelectionDisabled()||this.inRefSelectionMode())return;this._reset();const u=this._sheetSkeletonManagerService.getCurrentParam().skeleton,h=ms(u);this._addSelectionControlByModelData(h),this.refreshSelectionMoveEnd(),d.button!==2&&c.stopPropagation()}))}_initThemeChangeListener(){this.disposeWithMe(this._themeService.currentTheme$.subscribe(()=>{this._initSelectionThemeFromThemeService();const e=this._workbookSelections.getCurrentSelections();e&&this.resetSelectionsByModelData(e)}))}_initSelectionModelChangeListener(){this.disposeWithMe(O.merge(this._workbookSelections.selectionMoveEnd$,this._workbookSelections.selectionSet$).subscribe(e=>{this.resetSelectionsByModelData(e)}))}disableSelection(){this._contextService.setContextValue(m.SELECTIONS_ENABLED,!1)}enableSelection(){this._contextService.setContextValue(m.SELECTIONS_ENABLED,!0)}transparentSelection(){this.setSelectionTheme({primaryColor:"transparent"});const e=this._workbookSelections.getCurrentSelections();for(let t=0;t<e.length;t++){const o=e[t];o.style=Rt(this._selectionTheme)}this.resetSelectionsByModelData(e)}showSelection(){const e=this._themeService.getCurrentTheme();this.setSelectionTheme(e);const t=this._workbookSelections.getCurrentSelections();for(let o=0;o<t.length;o++){const i=t[o];i.style&&(i.style=Rt(this._selectionTheme))}this.resetSelectionsByModelData(t)}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(e=>this._updateSelections(e,m.SelectionMoveType.MOVE_START))),this.disposeWithMe(this.selectionMoving$.subscribe(e=>this._updateSelections(e,m.SelectionMoveType.MOVING))),this.disposeWithMe(this._contextService.subscribeContextValue$(m.REF_SELECTIONS_ENABLED).pipe(O.startWith(!1),O.distinctUntilChanged()).subscribe(e=>{e&&this._reset()})),this.disposeWithMe(this._contextService.subscribeContextValue$(m.SELECTIONS_ENABLED).pipe(O.startWith(!0),O.distinctUntilChanged()).subscribe(e=>{var t;e?this._renderDisposable=a.toDisposable(this.selectionMoveEnd$.subscribe(o=>{this._updateSelections(o,m.SelectionMoveType.MOVE_END)})):((t=this._renderDisposable)==null||t.dispose(),this._renderDisposable=null,this._reset())}))}_updateSelections(e,t){const o=this._context.unit,i=o.getUnitId(),s=o.getActiveSheet().getSheetId();if(e.length===0)return;const l=e.map(d=>m.convertSelectionDataToRange(d));this._commandService.executeCommand(m.SetSelectionsOperation.id,{unitId:i,subUnitId:s,type:t,selections:l})}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(e=>{var u,h;if(e==null){this._logService.error("[SelectionRenderService]: should not receive null!");return}const t=this._context.unitId,{sheetId:o,skeleton:i}=e,{scene:s}=this._context,l=s.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),d=(h=(u=this._skeleton)==null?void 0:u.worksheet)==null?void 0:h.getSheetId();if(this._changeRuntime(i,s,l),d!==i.worksheet.getSheetId()){const g=this._workbookSelections.getCurrentSelections();this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:t,subUnitId:o,selections:g.length!==0?g:[Pr(i)]})}const c=this._workbookSelections.getCurrentSelections();c!=null&&this.resetSelectionsByModelData(c)}))}_getActiveViewport(e){const t=this._getSheetObject();return t==null?void 0:t.scene.getActiveViewportByCoord(w.Vector2.FromArray([e.offsetX,e.offsetY]))}_getSheetObject(){return Ge(this._context.unit,this._context)}_onPointerDown(e,t=0,o=a.RANGE_TYPE.NORMAL,i,s=w.ScrollTimerType.ALL){var N,D;this._rangeType=o;const l=this._skeleton,d=this._scene;if(!d||!l)return;i&&(this._activeViewport=i);const{offsetX:c,offsetY:u}=e,h=d.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!h)return;const g=d.getCoordRelativeToViewport(w.Vector2.FromArray([c,u])),{x:S,y:f}=g;this._startViewportPosX=S,this._startViewportPosY=f;const p=d.getScrollXYInfoByViewport(g),{scaleX:v,scaleY:C}=d.getAncestorScale(),b=this._skeleton.getCellByOffset(S,f,v,C,p);if(!b)return;switch(o){case a.RANGE_TYPE.NORMAL:break;case a.RANGE_TYPE.ROW:b.startColumn=0,b.endColumn=this._skeleton.getColumnCount()-1,b.startRow=b.actualRow,b.endRow=b.actualRow;break;case a.RANGE_TYPE.COLUMN:b.startRow=0,b.endRow=this._skeleton.getRowCount()-1,b.startColumn=b.actualColumn,b.endColumn=b.actualColumn;break;case a.RANGE_TYPE.ALL:b.startRow=0,b.startColumn=0,b.endRow=this._skeleton.getRowCount()-1,b.endColumn=this._skeleton.getColumnCount()-1}const R={range:b,primary:b,style:null};R.range.rangeType=o;const T=Me(R,this._skeleton);this._startRangeWhenPointerDown={...T.rangeWithCoord};let M=this.getActiveSelectionControl();const y={...T.rangeWithCoord,rangeType:o},P=this.getSelectionControls();for(const W of P)if(e.button===2&&W.model.isInclude(y)){M=W;return}this._checkClearPreviousControls(e);const x=M==null?void 0:M.model.currentCell,A=e.shiftKey&&x,k=this._remainLastEnabled&&!e.ctrlKey&&!e.shiftKey&&!this._skipLastEnabled&&!this._singleSelectionEnabled;A&&x?this._makeSelectionByTwoCells(x,y,l,o,M):k&&M?M.updateRangeBySelectionWithCoord(T):M=this.newSelectionControl(d,l,R);for(let W=0;W<this.getSelectionControls().length-1;W++)this.getSelectionControls()[W].clearHighlight();d.disableObjectsEvent(),this._clearUpdatingListeners(),this._addEndingListeners(),(N=d.getTransformer())==null||N.clearSelectedObjects(),this._setupPointerMoveListener(h,M,o,s,S,f),this._escapeShortcutDisposable=this._shortcutService.forceEscape(),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._scenePointerUpSub=d.onPointerUp$.subscribeEvent(()=>{var W;this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),(W=this._escapeShortcutDisposable)==null||W.dispose(),this._escapeShortcutDisposable=null}),(D=this._scene.getEngine())==null||D.setCapture()}};exports.SheetSelectionRenderService=kI([vt(1,a.Inject(a.Injector)),vt(2,a.Inject(a.ThemeService)),vt(3,I.IShortcutService),vt(4,a.Inject(m.SheetsSelectionsService)),vt(5,a.Inject(exports.SheetSkeletonManagerService)),vt(6,a.ILogService),vt(7,a.ICommandService),vt(8,a.IContextService)],exports.SheetSelectionRenderService);var NI=Object.defineProperty,DI=Object.getOwnPropertyDescriptor,HI=(n,r,e)=>r in n?NI(n,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[r]=e,VI=(n,r,e,t)=>{for(var o=t>1?void 0:t?DI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Zo=(n,r)=>(e,t)=>r(e,t,n),ud=(n,r,e)=>HI(n,typeof r!="symbol"?r+"":r,e);exports.UniverSheetsUIPlugin=class extends a.Plugin{constructor(r=qi,e,t,o,i){super(),this._config=r,this._injector=e,this._renderManagerService=t,this._configService=o,this._univerInstanceService=i;const{menu:s,...l}=a.merge({},qi,this._config);s&&this._configService.setConfig("menu",s,{merge:!0}),this._configService.setConfig(Zt,l)}onStarting(){a.registerDependencies(this._injector,a.mergeOverrideWithDependencies([[Tn],[Se,{useClass:exports.EditorBridgeService}],[Be,{useClass:exports.SheetClipboardService}],[on,{useClass:Kl}],[et,{useClass:or}],[mo,{useClass:tl}],[No,{useClass:Qg}],[m.IRefSelectionsService,{useClass:m.RefSelectionsService}],[Tt,{useClass:exports.AutoFillService}],[Bs],[Fr,{useClass:nc}],[Qt,{useClass:exports.MarkSelectionService}],[exports.HoverManagerService],[exports.DragManagerService],[exports.SheetCanvasPopManagerService],[exports.CellAlertManagerService],[fs],[io],[exports.AutoHeightController],[exports.AutoWidthController],[exports.FormulaEditorController],[exports.SheetsRenderService],[exports.SheetUIController],[exports.StatusBarController],[exports.AutoFillController],[Rr],[_r],[br],[Ir],[On],[yt],[so],[exports.SheetPermissionCheckUIController],[ao]],this._config.override)),a.touchDependencies(this._injector,[[On]])}onReady(){this._config.disableAutoFocus||this._initAutoFocus(),a.registerDependencies(this._injector,[[Kt]]),this._registerRenderBasics(),a.touchDependencies(this._injector,[[exports.SheetUIController],[exports.SheetsRenderService],[io],[exports.SheetPermissionCheckUIController]])}onRendered(){this._registerRenderModules(),a.touchDependencies(this._injector,[[ao],[Kt],[exports.FormulaEditorController],[_r],[exports.StatusBarController],[exports.AutoHeightController],[exports.AutoWidthController],[br],[Ir]])}onSteady(){a.touchDependencies(this._injector,[[Rr],[exports.AutoFillController],[so]])}_registerRenderBasics(){[[exports.SheetSkeletonManagerService],[cs],[exports.SheetRenderController],[ve,{useClass:exports.SheetSelectionRenderService}]].forEach(r=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(a.UniverInstanceType.UNIVER_SHEET,r))})}_registerRenderModules(){var o;const r=[[exports.HeaderMoveRenderController],[ls],[exports.HeaderResizeRenderController],[exports.SheetScrollManagerService],[exports.SheetsScrollRenderController],[exports.HeaderFreezeRenderController],[$n],[exports.SheetCellEditorResizeService],[vr],[ns],[cr],[dr],[hr],[exports.HoverRenderController],[exports.DragRenderController],[ur],[exports.CellCustomRenderController],[os],[ts],[rs],[exports.EditingRenderController],[gr],[Sr],[fr],[pr]],e=this._configService.getConfig(I.UI_PLUGIN_CONFIG_KEY);((o=e==null?void 0:e.contextMenu)!=null?o:!0)&&r.push([ss]),r.forEach(i=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(a.UniverInstanceType.UNIVER_SHEET,i))})}_initAutoFocus(){const r=this._univerInstanceService;this.disposeWithMe(r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).pipe(Ga.filter(e=>!!e)).subscribe(e=>r.focusUnit(e.getUnitId())))}};ud(exports.UniverSheetsUIPlugin,"pluginName","SHEET_UI_PLUGIN");ud(exports.UniverSheetsUIPlugin,"type",a.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsUIPlugin=VI([a.DependentOn(m.UniverSheetsPlugin),Zo(1,a.Inject(a.Injector)),Zo(2,w.IRenderManagerService),Zo(3,a.IConfigService),Zo(4,a.IUniverInstanceService)],exports.UniverSheetsUIPlugin);const hd="embedding_formula_editor",WI=n=>n.includes(hd);function UI(n,r,e,t){const{from:o,to:i}=e,{column:s,columnOffset:l,row:d,rowOffset:c}=o,{column:u,columnOffset:h,row:g,rowOffset:S}=i,f=t.ensureSkeleton(r);if(f==null)throw new Error("No current skeleton");const p=bn(f,{startColumn:s,endColumn:s,startRow:d,endRow:d}),v=bn(f,{startColumn:u,endColumn:u,startRow:g,endRow:g}),{startX:C,startY:b}=p,{startX:R,startY:T}=v,M=w.precisionTo(C+l,1),y=w.precisionTo(b+c,1);let P=w.precisionTo(R+h-M,1),x=w.precisionTo(T+S-y,1);return p.startX===v.endX&&(P=0),p.startY===v.endY&&(x=0),{unitId:n,subUnitId:r,left:M,top:y,width:P,height:x}}function LI(n,r,e,t,o,i,s){const{column:l,columnOffset:d,row:c,rowOffset:u}=e,h=s.ensureSkeleton(r);if(h==null)throw new Error("No current skeleton");const g=bn(h,{startColumn:l,endColumn:l,startRow:c,endRow:c}),{startX:S,startY:f}=g,p=w.precisionTo(S+d,1),v=w.precisionTo(f+u,1),C=i.getCellWithCoordByOffset(p+t,v+o,h);if(C==null)throw new Error("No end selection cell");const b={column:C.actualColumn,columnOffset:w.precisionTo(p+t-C.startX,1),row:C.actualRow,rowOffset:w.precisionTo(v+o-C.startY,1)};return{unitId:n,subUnitId:r,sheetTransform:{from:{column:l,columnOffset:d,row:c,rowOffset:u},to:b},transform:{left:p,top:v,width:t,height:o}}}exports.AFFECT_LAYOUT_STYLES=Ss;exports.APPLY_TYPE=ae;exports.AddRangeProtectionFromContextMenuCommand=Wt;exports.AddRangeProtectionFromSheetBarCommand=yo;exports.AddRangeProtectionFromToolbarCommand=wo;exports.ApplyFormatPainterCommand=Co;exports.AutoClearContentCommand=En;exports.AutoFillCommand=It;exports.BaseSelectionRenderService=hs;exports.COPY_TYPE=Ct;exports.CellAlertType=_n;exports.CellEditorManagerService=tl;exports.ChangeSheetProtectionFromSheetBarCommand=Ao;exports.ChangeZoomRatioCommand=kn;exports.DATA_TYPE=_e;exports.DeleteRangeMoveLeftConfirmCommand=Wn;exports.DeleteRangeMoveUpConfirmCommand=Yt;exports.DeleteRangeProtectionFromContextMenuCommand=Lt;exports.DeleteWorksheetProtectionFormSheetBarCommand=xo;exports.EMBEDDING_FORMULA_EDITOR=hd;exports.EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY=wr;exports.ExpandSelectionCommand=De;exports.FONT_FAMILY_COMPONENT=kr;exports.FONT_FAMILY_ITEM_COMPONENT=Nr;exports.FONT_SIZE_COMPONENT=Dr;exports.FormatPainterStatus=Ne;exports.HideColConfirmCommand=So;exports.HideRowConfirmCommand=go;exports.IAutoFillService=Tt;exports.ICellEditorManagerService=mo;exports.IEditorBridgeService=Se;exports.IFormatPainterService=et;exports.IFormulaEditorManagerService=No;exports.IMarkSelectionService=Qt;exports.ISheetClipboardService=Be;exports.ISheetSelectionRenderService=ve;exports.InsertRangeMoveDownConfirmCommand=Gt;exports.InsertRangeMoveRightConfirmCommand=Un;exports.JumpOver=Je;exports.MobileSheetBar=td;exports.MoveSelectionCommand=xe;exports.MoveSelectionEnterAndTabCommand=$e;exports.PASTE_SPECIAL_MENU_ID=Qn;exports.PREDEFINED_HOOK_NAME=ge;exports.RANGE_SELECTOR_COMPONENT_KEY=ds;exports.RANGE_SELECTOR_SYMBOLS=gl;exports.RefillCommand=uo;exports.RemoveColConfirmCommand=An;exports.RemoveRowConfirmCommand=xn;exports.RemoveSheetConfirmCommand=Po;exports.RenameSheetOperation=ko;exports.RenderSheetContent=ic;exports.RenderSheetFooter=oc;exports.RenderSheetHeader=rc;exports.ResetRangeTextColorCommand=Ms;exports.ResetScrollCommand=_u;exports.SELECTION_SHAPE_DEPTH=us;exports.SHEET_UI_PLUGIN_NAME=wd;exports.SHEET_VIEW_KEY=he;exports.ScrollCommand=ze;exports.ScrollToCellCommand=Cs;exports.ScrollToRangeOperation=Is;exports.SelectAllCommand=xr;exports.SelectionControl=lo;exports.SelectionShape=lo;exports.SelectionShapeExtension=Za;exports.SetActivateCellEditOperation=Lr;exports.SetCellEditVisibleArrowOperation=Xt;exports.SetCellEditVisibleOperation=Ce;exports.SetCellEditVisibleWithF2Operation=ho;exports.SetColumnFrozenCommand=_o;exports.SetColumnHeaderHeightCommand=Mr;exports.SetFormatPainterOperation=vo;exports.SetInfiniteFormatPainterCommand=Ar;exports.SetOnceFormatPainterCommand=Dn;exports.SetRangeBoldCommand=Jt;exports.SetRangeFontFamilyCommand=po;exports.SetRangeFontSizeCommand=fo;exports.SetRangeItalicCommand=$t;exports.SetRangeProtectionFromContextMenuCommand=Bt;exports.SetRangeStrickThroughCommand=tn;exports.SetRangeSubscriptCommand=ws;exports.SetRangeSuperscriptCommand=ys;exports.SetRangeTextColorCommand=Mn;exports.SetRangeUnderlineCommand=en;exports.SetRowFrozenCommand=Io;exports.SetRowHeaderWidthCommand=yr;exports.SetScrollOperation=je;exports.SetScrollRelativeCommand=wn;exports.SetSelectionFrozenCommand=ut;exports.SetWorksheetColAutoWidthCommand=bo;exports.SetZoomRatioCommand=Nn;exports.SetZoomRatioOperation=Le;exports.SheetBar=tc;exports.SheetCopyCommand=Xe;exports.SheetCutCommand=Ts;exports.SheetMenuPosition=wl;exports.SheetPasteBesidesBorderCommand=vn;exports.SheetPasteColWidthCommand=Vt;exports.SheetPasteCommand=Ye;exports.SheetPasteFormatCommand=pn;exports.SheetPasteShortKeyCommand=nr;exports.SheetPasteValueCommand=fn;exports.SheetPermissionOpenDialogOperation=Vs;exports.SheetPermissionOpenPanelOperation=Qe;exports.SheetPermissionUserManagerService=yt;exports.SheetPrintInterceptorService=Bs;exports.SheetsUIMenuSchema=mc;exports.SheetsUIPart=gs;exports.ShowMenuListCommand=Oo;exports.SidebarDefinedNameOperation=Br;exports.UNIVER_SHEET_PERMISSION_BACKGROUND=Hs;exports.UNIVER_SHEET_PERMISSION_USER_PART=rr;exports.ViewSheetPermissionFromContextMenuCommand=Ut;exports.ViewSheetPermissionFromSheetBarCommand=Mo;exports.attachPrimaryWithCoord=Jn;exports.attachRangeWithCoord=bn;exports.attachSelectionWithCoord=Me;exports.calculateDocSkeletonRects=$c;exports.checkInHeaderRanges=no;exports.convertPositionCellToSheetOverGrid=LI;exports.convertPositionSheetOverGridToAbsolute=UI;exports.deriveStateFromActiveSheet$=Pe;exports.discreteRangeToRange=Et;exports.genNormalSelectionStyle=Rt;exports.genSelectionByRange=Ka;exports.getAllSelection=ms;exports.getAutoFillRepeatRange=jd;exports.getCellRealRange=Fl;exports.getCoordByCell=Ui;exports.getCoordByOffset=qe;exports.getCurrentExclusiveRangeInterest$=bl;exports.getCurrentRangeDisable$=te;exports.getCustomRangePosition=Np;exports.getEditingCustomRangePosition=Dp;exports.getEditorObject=Tr;exports.getMatrixPlainText=Cl;exports.getObservableWithExclusiveRange$=nn;exports.getRepeatRange=Sh;exports.getSheetObject=Ge;exports.getTopLeftSelectionOfCurrSheet=Pr;exports.getTransformCoord=qn;exports.isEmbeddingFormulaEditor=WI;exports.isRangeSelector=Sl;exports.mergeSetRangeValues=ji;exports.rangeToDiscreteRange=Sn;exports.useActiveWorkbook=mt;exports.useActiveWorksheet=Ed;exports.useHighlightRange=Zc;exports.useWorkbooks=Td;exports.virtualizeDiscreteRanges=qt;exports.whenFormulaEditorActivated=Au;exports.whenSheetEditorFocused=le;
63
+ `)}]}}var yp=Object.getOwnPropertyDescriptor,Mp=(n,r,e,t)=>{for(var o=t>1?void 0:t?yp(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ze=(n,r)=>(e,t)=>r(e,t,n);const Pp=[m.InsertColMutation.id,m.InsertRowMutation.id,m.RemoveColMutation.id,m.RemoveRowMutation.id,m.MoveRangeMutation.id,m.MoveRowsMutation.id,m.MoveColsMutation.id];let Zt=class extends a.RxDisposable{constructor(r,e,t,o,i,s,l,c,d,u){super();E(this,"_refreshOptionalPaste$",new O.Subject);E(this,"refreshOptionalPaste$",this._refreshOptionalPaste$.asObservable());this._injector=r,this._currentUniverSheet=e,this._renderManagerService=t,this._commandService=o,this._contextService=i,this._configService=s,this._sheetClipboardService=l,this._messageService=c,this._localService=d,this._uiPartsService=u,this._init(),this._initCommandListener(),this._initUIComponents(),this._pasteWithDoc()}refreshOptionalPaste(){this._refreshOptionalPaste$.next(Math.random())}_pasteWithDoc(){var t;const r=o=>{o.onPaste$.pipe(O.takeUntil(this.dispose$)).subscribe(i=>{var u,h;if(!ce(this._contextService))return;i.event.preventDefault();const s=i.event,l=(u=s.clipboardData)==null?void 0:u.getData("text/html"),c=(h=s.clipboardData)==null?void 0:h.getData("text/plain"),d=this._resolveClipboardFiles(s.clipboardData);this._commandService.executeCommand(ir.id,{htmlContent:l,textContent:c,files:d})})};let e=(t=this._renderManagerService.getRenderById(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY))==null?void 0:t.with($.DocSelectionRenderService);e&&r(e),this._renderManagerService.created$.subscribe(o=>{var i;o.unitId===a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY&&(e=(i=this._renderManagerService.getRenderById(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY))==null?void 0:i.with($.DocSelectionRenderService),e&&r(e))})}_resolveClipboardFiles(r){if(!r)return;const e=Array.from(r.items).map(t=>t.kind==="file"?t.getAsFile():void 0).filter(Boolean);return e.length>0?e:void 0}_init(){[Xe,ys,Ye].forEach(e=>this.disposeWithMe(this._commandService.registerMultipleCommand(e))),[fn,pn,Ht,vn,ir,Rl].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e))),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._initCopyingHooks())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._initPastingHook()));const r=this._initSpecialPasteHooks().map(e=>this._sheetClipboardService.addClipboardHook(e));this.disposeWithMe({dispose:()=>r.forEach(e=>e.dispose())})}_initCopyingHooks(){const r=this;let e=null;return{id:ge.DEFAULT_COPY,isDefaultHook:!0,onBeforeCopy(t,o){e=r._getWorksheet(t,o)},onCopyCellContent(t,o){var l,c,d,u;const i=e.getCell(t,o);return(c=(l=i==null?void 0:i.p)==null?void 0:l.body)!=null&&c.paragraphs||(u=(d=i==null?void 0:i.p)==null?void 0:d.body)!=null&&u.textRuns?a.convertBodyToHtml(i.p.body):i?a.extractPureTextFromCell(i):""},onCopyCellStyle:(t,o,i,s)=>{const l={};(i||s)&&(l.rowspan=`${i||1}`,l.colspan=`${s||1}`);const c=e.getRange(t,o),d=e.getMergedCell(t,o),u=c.getTextStyle();let h="";if(u&&(h=a.handleStyleToString(u)),d){const g=d.endRow,S=d.endColumn,p=e.getRange(g,S).getTextStyle();if(p){const v=a.handleStyleToString(p);h?h+=v?`;${v}`:"":h=v}}return h&&(l.style=h),Object.keys(l).length?l:null},onCopyColumn(t){return{width:`${e.getColumnWidth(t)}`}},onCopyRow(t){return{style:`height: ${e.getRowHeight(t)}px;`}},onAfterCopy(){e=null},getFilteredOutRows(t){var c;const{startRow:o,endRow:i}=t,s=(c=r._currentUniverSheet.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET))==null?void 0:c.getActiveSheet(),l=[];if(!s)return l;for(let d=o;d<=i;d++)s.getRowFiltered(d)&&l.push(d);return l}}}_initPastingHook(){const r=this;let e=null,t=null,o=null;return{id:ge.DEFAULT_PASTE,isDefaultHook:!0,onBeforePaste({unitId:i,subUnitId:s,range:l}){o=r._getWorksheet(i,s),e=i,t=s;const c=r._configService.getConfig(m.MAX_CELL_PER_SHEET_KEY),d=l.rows[l.rows.length-1],u=l.cols[l.cols.length-1];return c&&d*u>c?(r._messageService.show({type:Z.MessageType.Error,content:r._localService.t("clipboard.paste.exceedMaxCells")}),!1):!0},onPasteRows(i,s){const{range:l}=i,c=[],d=[],u=o.getMaxRows(),h=u-1,g=l.rows[l.rows.length-1]-h,S=s.length-g,f=o.getRowManager();if(g>0){const C={};s.slice(S).forEach((T,M)=>{const{height:y}=T||{};y&&(C[M]={h:Number.parseFloat(y),hd:a.BooleanNumber.FALSE})});const b={startColumn:l.cols[0],endColumn:l.cols[l.cols.length-1],endRow:l.rows[l.rows.length-1],startRow:u},R={unitId:e,subUnitId:t,range:b,rowInfo:C};c.push({id:m.InsertRowMutation.id,params:R}),d.push({id:m.RemoveRowMutation.id,params:{unitId:e,subUnitId:t,range:b}})}const p={},v={};if(s.slice(0,S).forEach((C,b)=>{var T,M;const{height:R}=C;if(R){const y=f.getRow(l.rows[0]+b),P=Number.parseFloat(R);if(y){const{h:x=a.DEFAULT_WORKSHEET_ROW_HEIGHT,ah:A=0}=y,k=Math.max(x,A);P>k?(p[b+l.rows[0]]=P,v[b+l.rows[0]]=k):(p[b+l.rows[0]]=k,v[b+l.rows[0]]=k)}else p[b+l.rows[0]]=P,v[b+l.rows[0]]=(M=(T=f.getRow(l.rows[0]+b))==null?void 0:T.h)!=null?M:a.DEFAULT_WORKSHEET_ROW_HEIGHT}}),Object.keys(p).length){const C={unitId:e,subUnitId:t,ranges:[{startRow:l.rows[0],endRow:Math.min(l.rows[l.rows.length-1],u),startColumn:l.cols[0],endColumn:l.cols[l.cols.length-1]}],rowHeight:p};c.push({id:m.SetWorksheetRowHeightMutation.id,params:C}),d.push({id:m.SetWorksheetRowHeightMutation.id,params:{...C,rowHeight:v}})}return{redos:c,undos:d}},onPasteColumns(i,s,l){var R;const{range:c}=i,d=[],u=[],h=o.getMaxColumns(),g=h-1,S=c.cols[c.cols.length-1]-g,f=s.length-S,p=(R=r._configService.getConfig(a.DEFAULT_WORKSHEET_COLUMN_WIDTH_KEY))!=null?R:a.DEFAULT_WORKSHEET_COLUMN_WIDTH,v=c.cols,C=v[0];if(S>0){const T={startRow:c.rows[0],endRow:c.rows[c.rows.length-1],endColumn:c.cols[c.cols.length-1],startColumn:h},M={unitId:e,subUnitId:t,range:T,colInfo:s.slice(f).map((y,P)=>({w:y.width?Math.max(+y.width,o.getColumnWidth(v[P])):p,hd:a.BooleanNumber.FALSE}))};d.push({id:m.InsertColMutation.id,params:M}),u.push({id:m.RemoveColMutation.id,params:{unitId:e,subUnitId:t,range:T}})}const b={unitId:e,subUnitId:t,ranges:[{startRow:c.rows[0],endRow:c.rows[c.rows.length-1],startColumn:c.cols[0],endColumn:Math.min(c.cols[c.cols.length-1],h)}]};if(s.length>0){const T={...b,colWidth:s.slice(0,f).reduce((y,P,x)=>{var A;return y[x+C]=P.width?Math.max(+P.width,(A=o.getColumnWidth(v[x]))!=null?A:p):p,y},{})},M={...b,colWidth:s.slice(0,f).reduce((y,P,x)=>{var A;return y[x+C]=(A=o.getColumnWidth(v[x]))!=null?A:p,y},{})};d.push({id:m.SetWorksheetColWidthMutation.id,params:T}),u.push({id:m.SetWorksheetColWidthMutation.id,params:M})}return{redos:d,undos:u}},onPastePlainText(i,s,l){return r._onPastePlainText(i,s,l)},onPasteCells(i,s,l,c){return r._onPasteCells(i,s,l,c)},onAfterPaste(i){o=null}}}_generateDocumentDataModelSnapshot(r){var l,c;const e=(l=this._renderManagerService.withCurrentTypeOfUnit(a.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:l.getCurrentParam();if(e==null)return null;const{skeleton:t}=e,o=(c=t.getBlankCellDocumentModel())==null?void 0:c.documentModel,s={...o==null?void 0:o.getSnapshot(),...r};return o==null||o.reset(s),o==null?void 0:o.getSnapshot()}_onPastePlainText(r,e,t){const{range:o,unitId:i,subUnitId:s}=r;let l;if(/\r|\n/.test(e)||a.Tools.isLegalUrl(e)){const d=wp(e),u=this._generateDocumentDataModelSnapshot({body:d});l={[o.rows[0]]:{[o.cols[0]]:{p:u}}}}else a.isFormulaString(e)?l={[o.rows[0]]:{[o.cols[0]]:{f:e}}}:l={[o.rows[0]]:{[o.cols[0]]:{v:e}}};const c={unitId:i,subUnitId:s,cellValue:l};return{redos:[{id:m.SetRangeValuesMutation.id,params:c}],undos:[{id:m.SetRangeValuesMutation.id,params:m.SetRangeValuesUndoMutationFactory(this._injector,c)}]}}_onPasteCells(r,e,t,o){return this._injector.invoke(i=>Rp(r,e,t,o,i))}_initSpecialPasteHooks(){const r=this,e={id:ge.SPECIAL_PASTE_VALUE,specialPasteInfo:{label:"specialPaste.value"},onPasteCells:(s,l,c)=>this._injector.invoke(d=>$c(l,s,c,d))},t={id:ge.SPECIAL_PASTE_FORMAT,specialPasteInfo:{label:"specialPaste.format"},onPasteCells:(s,l,c)=>{const d=[],u=[],{undos:h,redos:g}=this._injector.invoke(C=>td(l,c,C));d.push(...g),u.push(...h);const{undos:S,redos:f}=this._injector.invoke(C=>$i(l,c,C));d.push(...f),u.push(...S);const{undos:p,redos:v}=this._injector.invoke(C=>ed(l,c,C));return d.push(...v),u.push(...p),{undos:u,redos:d}}},o={id:ge.SPECIAL_PASTE_COL_WIDTH,specialPasteInfo:{label:"specialPaste.colWidth"},onPasteCells(){return{undos:[],redos:[]}},onPasteColumns(s,l,c){var x,A;const d=r._currentUniverSheet.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),u=d.getUnitId(),h=(x=d.getActiveSheet())==null?void 0:x.getSheetId();if(!u||!h)throw new Error("Cannot find unitId or subUnitId");const g=[],S=[],f=r._getWorksheet(u,h),{range:p}=s,v=p.cols,C=v[0],b=f.getMaxColumns(),R=p.cols[p.cols.length-1]-b,T=l.length-R,M=(A=r._configService.getConfig(a.DEFAULT_WORKSHEET_COLUMN_WIDTH_KEY))!=null?A:a.DEFAULT_WORKSHEET_COLUMN_WIDTH,y={unitId:u,subUnitId:h,ranges:[{startRow:p.rows[0],endRow:Math.min(p.cols[p.cols.length-1],b),startColumn:p.cols[0],endColumn:p.cols[p.cols.length-1]}],colWidth:l.slice(0,T).reduce((k,N,D)=>{var W;return k[D+C]=N.width?Math.max(+N.width,(W=f.getColumnWidth(v[D]))!=null?W:M):M,k},{})},P={unitId:u,subUnitId:h,ranges:[{startRow:p.rows[0],endRow:Math.min(p.cols[p.cols.length-1],b),startColumn:p.cols[0],endColumn:p.cols[p.cols.length-1]}],colWidth:l.slice(0,T).reduce((k,N,D)=>{var W;return k[D+C]=(W=f.getColumnWidth(v[D]))!=null?W:M,k},{})};return g.push({id:m.SetWorksheetColWidthMutation.id,params:y}),S.push({id:m.SetWorksheetColWidthMutation.id,params:P}),{redos:g,undos:S}}},i={id:ge.SPECIAL_PASTE_BESIDES_BORDER,specialPasteInfo:{label:"specialPaste.besidesBorder"},onPasteCells:(s,l,c,d)=>{r._currentUniverSheet.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);const u=[],h=[],{range:g,unitId:S,subUnitId:f}=l,p=new a.ObjectMatrix;c.forValue((T,M,y)=>{const P=y.s;if(typeof P=="object"){const x=a.Tools.deepClone(y);x.s&&(x.s={...P,bd:null}),p.setValue(g.rows[T],g.cols[M],x)}});const v={unitId:S,subUnitId:f,cellValue:p.getData()};u.push({id:m.SetRangeValuesMutation.id,params:v});const C=this._injector.invoke(m.SetRangeValuesUndoMutationFactory,v);h.push({id:m.SetRangeValuesMutation.id,params:C});const{undos:b,redos:R}=this._injector.invoke(T=>$i(l,c,T));return h.push(...b),u.push(...R),{redos:u,undos:h}}};return[e,t,o,i]}_getWorksheet(r,e){var o;const t=(o=this._currentUniverSheet.getUniverSheetInstance(r))==null?void 0:o.getSheetBySheetId(e);if(!t)throw new Error(`[SheetClipboardController]: cannot find a worksheet with unitId ${r} and subUnitId ${e}.`);return t}_initCommandListener(){var e;this.disposeWithMe(this._commandService.onCommandExecuted(t=>{t.id===Tt.id?this._sheetClipboardService.removeMarkSelection():Pp.includes(t.id)&&this._sheetClipboardService.removeMarkSelection()}));const r=this._configService.getConfig(Gt);(e=r==null?void 0:r.clipboardConfig)!=null&&e.hidePasteOptions||(this.disposeWithMe(this._commandService.onCommandExecuted(t=>{bp.includes(t.id)&&this._sheetClipboardService.disposePasteOptionsCache()})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===je.id){if(!this._sheetClipboardService.getPasteMenuVisible())return;const i=t.params.unitId,s=this._sheetClipboardService.getPasteOptionsCache(),l=s==null?void 0:s.target.unitId;i===l&&this._refreshOptionalPaste$.next(Math.random())}})))}_initUIComponents(){var e;const r=this._configService.getConfig(Gt);(e=r==null?void 0:r.clipboardConfig)!=null&&e.hidePasteOptions||this.disposeWithMe(this._uiPartsService.registerComponent(I.BuiltInUIPart.CONTENT,()=>I.connectInjector(_p,this._injector)))}};Zt=Mp([Ze(0,a.Inject(a.Injector)),Ze(1,a.IUniverInstanceService),Ze(2,w.IRenderManagerService),Ze(3,a.ICommandService),Ze(4,a.IContextService),Ze(5,a.IConfigService),Ze(6,Be),Ze(7,I.IMessageService),Ze(8,a.Inject(a.LocaleService)),Ze(9,I.IUIPartsService)],Zt);var Op=Object.getOwnPropertyDescriptor,xp=(n,r,e,t)=>{for(var o=t>1?void 0:t?Op(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Fa=(n,r)=>(e,t)=>r(e,t,n);exports.DragManagerService=class extends a.Disposable{constructor(e,t){super();E(this,"_currentCell$",new O.Subject);E(this,"currentCell$",this._currentCell$.asObservable().pipe(O.distinctUntilChanged((e,t)=>{var o,i,s,l,c,d,u,h;return((o=e==null?void 0:e.location)==null?void 0:o.unitId)===((i=t==null?void 0:t.location)==null?void 0:i.unitId)&&((s=e==null?void 0:e.location)==null?void 0:s.subUnitId)===((l=t==null?void 0:t.location)==null?void 0:l.subUnitId)&&((c=e==null?void 0:e.location)==null?void 0:c.row)===((d=t==null?void 0:t.location)==null?void 0:d.row)&&((u=e==null?void 0:e.location)==null?void 0:u.col)===((h=t==null?void 0:t.location)==null?void 0:h.col)})));E(this,"_endCell$",new O.Subject);E(this,"endCell$",this._endCell$.asObservable());this._univerInstanceService=e,this._renderManagerService=t,this._initCellDisposableListener()}dispose(){super.dispose(),this._currentCell$.complete(),this._endCell$.complete()}_initCellDisposableListener(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{e||(this._currentCell$.next(null),this._endCell$.next(null))}))}_calcActiveCell(e,t){const o=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!o)return null;const i=o.getActiveSheet();if(!i)return;const s=this._renderManagerService.getRenderById(o.getUnitId());if(!s)return;const l=s.with(exports.SheetSkeletonManagerService).getCurrentParam(),d=s.with(exports.SheetScrollManagerService).getCurrentScrollState();if(!(!l||!d||!s))return Yl(s,o,i,l,e,t)}onDragOver(e){const{offsetX:t,offsetY:o,dataTransfer:i}=e,s=this._calcActiveCell(t,o);if(!s){this._currentCell$.next(null);return}const{location:l,position:c}=s;this._currentCell$.next({location:l,position:c,dataTransfer:i})}onDrop(e){const{offsetX:t,offsetY:o,dataTransfer:i}=e,s=this._calcActiveCell(t,o);if(!s){this._endCell$.next(null);return}const{location:l,position:c}=s;this._endCell$.next({location:l,position:c,dataTransfer:i})}};exports.DragManagerService=xp([Fa(0,a.IUniverInstanceService),Fa(1,w.IRenderManagerService)],exports.DragManagerService);var Ap=Object.getOwnPropertyDescriptor,kp=(n,r,e,t)=>{for(var o=t>1?void 0:t?Ap(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ti=(n,r)=>(e,t)=>r(e,t,n);exports.DragRenderController=class extends a.Disposable{constructor(r,e,t,o){super(),this._context=r,this._renderManagerService=e,this._dragManagerService=t,this._sheetSkeletonManagerService=o,this._initDragEvent()}_initDragEvent(){const r=new a.DisposableCollection,e=t=>{if(r.dispose(),!t)return;const{scene:o}=this._context,i=o.onDragOver$.subscribeEvent(l=>{this._dragManagerService.onDragOver(l)}),s=o.onDrop$.subscribeEvent(l=>{this._dragManagerService.onDrop(l)});r.add({dispose(){i.unsubscribe(),s.unsubscribe()}})};e(this._sheetSkeletonManagerService.getCurrentParam()),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(t=>{e(t)}))}};exports.DragRenderController=kp([Ti(1,w.IRenderManagerService),Ti(2,a.Inject(exports.DragManagerService)),Ti(3,a.Inject(exports.SheetSkeletonManagerService))],exports.DragRenderController);const Fs=(n,r)=>{var h,g,S,f,p;const t=r.findNodePositionByCharIndex(n.startOffset,!0,n.segmentId,-1),o=r.getSkeletonData();let i=n.endOffset;if(n.segmentId){const v=(p=Array.from((g=(h=o==null?void 0:o.skeFooters.get(n.segmentId))==null?void 0:h.values())!=null?g:[])[0])!=null?p:Array.from((f=(S=o==null?void 0:o.skeHeaders.get(n.segmentId))==null?void 0:S.values())!=null?f:[])[0];v&&(i=Math.min(v.ed,i))}const s=r.findNodePositionByCharIndex(i,!0,n.segmentId,-1);if(!s||!t)return;const l={docsLeft:0,docsTop:0,pageMarginLeft:0,pageMarginTop:0},c=new $.NodePositionConvertToCursor(l,r),{borderBoxPointGroup:d}=c.getRangePointData(t,s);return $.getLineBounding(d).map(v=>({top:v.top,bottom:v.bottom,left:v.left,right:v.right}))},Np=(n,r,e=-1)=>{const t=r.findPositionByGlyph(n,e);if(!t)return;const o={...t,isBack:!0},i={docsLeft:0,docsTop:0,pageMarginLeft:0,pageMarginTop:0},s=new $.NodePositionConvertToCursor(i,r),{borderBoxPointGroup:l}=s.getRangePointData(o,o),d=$.getLineBounding(l)[0];return{top:d.top,bottom:d.bottom,left:d.left,right:d.right}},Dp=(n,r,e=0,t=0)=>{const o=Fs({startOffset:r.startIndex,endOffset:r.endIndex+1},n);if(o)return{rects:o.map(i=>({top:i.top+t,bottom:i.bottom+t,left:i.left+e,right:i.right+e})),range:r}},Hp=(n,r,e=0,t=0)=>{var h,g,S;const o=n.findNodeByCharIndex(r.startIndex),i=o==null?void 0:o.parent,s=i==null?void 0:i.parent,l=s==null?void 0:s.parent,c=l==null?void 0:l.lines.find(f=>f.paragraphStart&&f.paragraphIndex===r.startIndex),d=(S=(g=(h=c==null?void 0:c.divides)==null?void 0:h[0])==null?void 0:g.glyphGroup)==null?void 0:S[0];if(!d||!d)return;const u=Np(d,n);if(u)return{rect:{top:u.top+t,bottom:u.bottom+t,left:u.left+e,right:u.right+e},segmentId:void 0,segmentPageIndex:-1,paragraph:r}},nd=(n,r=0,e=0)=>{var l,c,d,u,h,g,S;const t=n.getViewModel().getDataModel(),o=(d=(c=(l=t.getBody())==null?void 0:l.customRanges)==null?void 0:c.filter(f=>f.rangeType===a.CustomRangeType.HYPERLINK))!=null?d:[],i=(g=(h=(u=t.getBody())==null?void 0:u.paragraphs)==null?void 0:h.filter(f=>{var p;return((p=f.bullet)==null?void 0:p.listType.indexOf(a.PresetListType.CHECK_LIST))===0}))!=null?g:[],s=(S=n.getSkeletonData())==null?void 0:S.pages[0].skeDrawings;return{links:o.map(f=>Dp(n,f,r,e)).filter(Boolean),checkLists:i.map(f=>Hp(n,f,r,e)).filter(Boolean),drawings:s?Array.from(s.keys()).map(f=>({drawingId:f,rect:{top:s.get(f).aTop,bottom:s.get(f).aTop+s.get(f).width,left:s.get(f).aLeft,right:s.get(f).aLeft+s.get(f).height}})):[]}};function od(n,r,e){var d,u,h,g;const t=(u=(d=r.documentSkeleton.getSkeletonData())==null?void 0:d.pages[0].height)!=null?u:0,o=(g=(h=r.documentSkeleton.getSkeletonData())==null?void 0:h.pages[0].width)!=null?g:0,i=r.verticalAlign,s=r.horizontalAlign;let l=0;switch(i){case a.VerticalAlign.UNSPECIFIED:case a.VerticalAlign.BOTTOM:l=n.mergeInfo.endY-n.mergeInfo.startY-t;break;case a.VerticalAlign.MIDDLE:l=(n.mergeInfo.endY-n.mergeInfo.startY-t)/2;break}let c=0;switch(s){case a.HorizontalAlign.RIGHT:c=n.mergeInfo.endX-n.mergeInfo.startX-o;break;case a.HorizontalAlign.CENTER:c=(n.mergeInfo.endX-n.mergeInfo.startX-o)/2;break;case a.HorizontalAlign.UNSPECIFIED:{e&&(c=n.mergeInfo.endX-n.mergeInfo.startX-o);break}}return{paddingLeft:c,paddingTop:l}}const Vp=(n,r,e,t,o,i)=>{var N,D,W;const s=n.get(a.IUniverInstanceService),l=n.get(w.IRenderManagerService),c=s.getUnit(r,a.UniverInstanceType.UNIVER_SHEET);if(!c)return null;const d=c.getSheetBySheetId(e);if(!d)return null;const u=l.getRenderById(c.getUnitId()),h=u==null?void 0:u.with(exports.SheetSkeletonManagerService).getSkeletonParam(d.getSheetId()),g=h==null?void 0:h.skeleton;if(!g||!u)return;const S=g.getFont(t,o),f=S==null?void 0:S.documentSkeleton;if(!f)return null;const p=(D=(N=f.getViewModel().getBody())==null?void 0:N.customRanges)==null?void 0:D.find(H=>H.rangeId===i);if(!p)return null;const v=$.DOC_VERTICAL_PADDING,C=g.getCellWithCoordByIndex(t,o);let{actualColumn:b,actualRow:R}=C;g.overflowCache.forValue((H,U,B)=>{B.startRow<=R&&B.endRow>=R&&B.startColumn<=b&&B.endColumn>=b&&(b=U,R=H)});const T=g.getCellWithCoordByIndex(R,b),M=d.getCell(T.actualRow,T.actualColumn),{topOffset:y=0,leftOffset:P=0}=(W=M==null?void 0:M.fontRenderExtension)!=null?W:{},{paddingLeft:x,paddingTop:A}=od(T,S,!1),k=Fs({startOffset:p.startIndex,endOffset:p.endIndex},f);return{rects:k==null?void 0:k.map(H=>({top:H.top+T.mergeInfo.startY+A+y+v,bottom:H.bottom+T.mergeInfo.startY+A+y+v,left:H.left+T.mergeInfo.startX+x+P,right:H.right+T.mergeInfo.startX+x+P})),customRange:p,label:f.getViewModel().getBody().dataStream.slice(p.startIndex,p.endIndex+1)}},Wp=(n,r,e,t,o,i)=>{var P,x,A;const s=n.get(Se),l=s.getEditCellState();if(!l||!s.isVisible().visible)return null;const{editorUnitId:d,unitId:u,sheetId:h,row:g,column:S}=l;if(r!==u||e!==h||g!==t||S!==o)return null;const f=n.get(w.IRenderManagerService),p=f.getRenderById(d),v=f.getRenderById(r);if(!p||!v)return null;const C=p.with(Re.DocSkeletonManagerService).getSkeleton(),b=(P=v.with(exports.SheetSkeletonManagerService).getSkeletonParam(h))==null?void 0:P.skeleton;if(!C||!b)return null;const R=(A=(x=C.getViewModel().getBody())==null?void 0:x.customRanges)==null?void 0:A.find(k=>k.rangeId===i);if(!R)return null;const T=4,M=Fs({startOffset:R.startIndex,endOffset:R.endIndex},C),y=p.engine.getCanvasElement().getBoundingClientRect();return{rects:M==null?void 0:M.map(k=>({top:k.top+y.top-T,bottom:k.bottom+y.top+T,left:k.left+y.left,right:k.right+y.left})),customRange:R,label:C.getViewModel().getBody().dataStream.slice(R.startIndex,R.endIndex+1)}};var Up=Object.getOwnPropertyDescriptor,Lp=(n,r,e,t)=>{for(var o=t>1?void 0:t?Up(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},ja=(n,r)=>(e,t)=>r(e,t,n);function At(n){const{workbook:r,worksheet:e,...t}=n;return t}exports.HoverManagerService=class extends a.Disposable{constructor(e,t){super();E(this,"_currentCell$",new O.BehaviorSubject(null));E(this,"_currentRichText$",new O.BehaviorSubject(null));E(this,"_currentClickedCell$",new O.Subject);E(this,"_currentDbClickedCell$",new O.Subject);E(this,"_currentCellWithEvent$",new O.Subject);E(this,"_currentPointerDownCell$",new O.Subject);E(this,"_currentPointerUpCell$",new O.Subject);E(this,"_currentHoveredRowHeader$",new O.BehaviorSubject(null));E(this,"_currentHoveredColHeader$",new O.BehaviorSubject(null));E(this,"_currentRowHeaderClick$",new O.Subject);E(this,"_currentColHeaderClick$",new O.Subject);E(this,"_currentRowHeaderDbClick$",new O.Subject);E(this,"_currentColHeaderDbClick$",new O.Subject);E(this,"_currentRowHeaderPointerDown$",new O.Subject);E(this,"_currentColHeaderPointerDown$",new O.Subject);E(this,"_currentRowHeaderPointerUp$",new O.Subject);E(this,"_currentColHeaderPointerUp$",new O.Subject);E(this,"currentCell$",this._currentCell$.asObservable().pipe(O.distinctUntilChanged((e,t)=>{var o,i,s,l,c,d,u,h;return((o=e==null?void 0:e.location)==null?void 0:o.unitId)===((i=t==null?void 0:t.location)==null?void 0:i.unitId)&&((s=e==null?void 0:e.location)==null?void 0:s.subUnitId)===((l=t==null?void 0:t.location)==null?void 0:l.subUnitId)&&((c=e==null?void 0:e.location)==null?void 0:c.row)===((d=t==null?void 0:t.location)==null?void 0:d.row)&&((u=e==null?void 0:e.location)==null?void 0:u.col)===((h=t==null?void 0:t.location)==null?void 0:h.col)})));E(this,"currentRichText$",this._currentRichText$.pipe(O.distinctUntilChanged((e,t)=>{var o,i,s,l,c,d,u,h,g,S,f,p,v,C,b,R;return((o=e==null?void 0:e.location)==null?void 0:o.unitId)===((i=t==null?void 0:t.location)==null?void 0:i.unitId)&&((s=e==null?void 0:e.location)==null?void 0:s.subUnitId)===((l=t==null?void 0:t.location)==null?void 0:l.subUnitId)&&((c=e==null?void 0:e.location)==null?void 0:c.row)===((d=t==null?void 0:t.location)==null?void 0:d.row)&&((u=e==null?void 0:e.location)==null?void 0:u.col)===((h=t==null?void 0:t.location)==null?void 0:h.col)&&((g=e==null?void 0:e.customRange)==null?void 0:g.rangeId)===((S=t==null?void 0:t.customRange)==null?void 0:S.rangeId)&&((f=e==null?void 0:e.bullet)==null?void 0:f.startIndex)===((p=t==null?void 0:t.bullet)==null?void 0:p.startIndex)&&((v=e==null?void 0:e.customRange)==null?void 0:v.startIndex)===((C=t==null?void 0:t.customRange)==null?void 0:C.startIndex)&&((b=e==null?void 0:e.customRange)==null?void 0:b.endIndex)===((R=t==null?void 0:t.customRange)==null?void 0:R.endIndex)&&(e==null?void 0:e.drawing)===(t==null?void 0:t.drawing)}),O.map(e=>e&&{unitId:e.location.unitId,subUnitId:e.location.subUnitId,row:e.location.row,col:e.location.col,customRange:e.customRange,bullet:e.bullet,rect:e.rect,drawing:e.drawing})));E(this,"currentCellPosWithEvent$",this._currentCellWithEvent$.pipe(O.distinctUntilChanged((e,t)=>{var o,i,s,l,c,d,u,h;return((o=e==null?void 0:e.location)==null?void 0:o.unitId)===((i=t==null?void 0:t.location)==null?void 0:i.unitId)&&((s=e==null?void 0:e.location)==null?void 0:s.subUnitId)===((l=t==null?void 0:t.location)==null?void 0:l.subUnitId)&&((c=e==null?void 0:e.location)==null?void 0:c.row)===((d=t==null?void 0:t.location)==null?void 0:d.row)&&((u=e==null?void 0:e.location)==null?void 0:u.col)===((h=t==null?void 0:t.location)==null?void 0:h.col)}),O.map(e=>e&&{unitId:e.location.unitId,subUnitId:e.location.subUnitId,row:e.location.row,col:e.location.col,event:e.event})));E(this,"currentPosition$",this._currentCell$.asObservable());E(this,"currentClickedCell$",this._currentClickedCell$.asObservable());E(this,"currentDbClickedCell$",this._currentDbClickedCell$.asObservable());E(this,"currentPointerDownCell$",this._currentPointerDownCell$.asObservable());E(this,"currentPointerUpCell$",this._currentPointerUpCell$.asObservable());E(this,"currentHoveredRowHeader$",this._currentHoveredRowHeader$.asObservable());E(this,"currentHoveredColHeader$",this._currentHoveredColHeader$.asObservable());E(this,"currentRowHeaderClick$",this._currentRowHeaderClick$.asObservable());E(this,"currentColHeaderClick$",this._currentColHeaderClick$.asObservable());E(this,"currentRowHeaderDbClick$",this._currentRowHeaderDbClick$.asObservable());E(this,"currentColHeaderDbClick$",this._currentColHeaderDbClick$.asObservable());E(this,"currentRowHeaderPointerDown$",this._currentRowHeaderPointerDown$.asObservable());E(this,"currentColHeaderPointerDown$",this._currentColHeaderPointerDown$.asObservable());E(this,"currentRowHeaderPointerUp$",this._currentRowHeaderPointerUp$.asObservable());E(this,"currentColHeaderPointerUp$",this._currentColHeaderPointerUp$.asObservable());this._univerInstanceService=e,this._renderManagerService=t,this._initCellDisposableListener()}dispose(){super.dispose(),this._currentCell$.complete(),this._currentClickedCell$.complete(),this._currentPointerDownCell$.complete(),this._currentPointerUpCell$.complete(),this._currentCellWithEvent$.complete()}_initCellDisposableListener(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{e||this._currentCell$.next(null)})),this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(e=>{var t,o;((t=this._currentCell$.getValue())==null?void 0:t.location.unitId)===e.getUnitId()&&this._currentCell$.next(null),((o=this._currentRichText$.getValue())==null?void 0:o.location.unitId)===e.getUnitId()&&this._currentRichText$.next(null)}))}_getCalcDeps(e){const t=this._univerInstanceService.getUnit(e,a.UniverInstanceType.UNIVER_SHEET);if(!t)return null;const o=t.getActiveSheet();if(!o)return null;const i=this._renderManagerService.getRenderById(t.getUnitId());if(!i)return null;const s=i.with(exports.SheetSkeletonManagerService).getSkeletonParam(o.getSheetId());if(!s)return null;const l=i.with(exports.SheetScrollManagerService);if(!(!(l!=null&&l.getCurrentScrollState())||!i))return{currentRender:i,workbook:t,worksheet:o,skeletonParam:s}}_calcActiveCell(e,t,o,i,s,l){var y,P,x;const c=Yl(e,t,o,i,s,l),d=i.skeleton;if(!c)return null;const{position:u,overflowLocation:h,location:g}=c,S=d.getFont(h.row,h.col);let f=null,p=null,v=null;const C=d.getCellWithCoordByIndex(h.row,h.col),b=o.getCell(h.row,h.col),{topOffset:R=0,leftOffset:T=0}=(y=b==null?void 0:b.fontRenderExtension)!=null?y:{};if(S){const{paddingLeft:A,paddingTop:k}=od(C,S,(b==null?void 0:b.v)!==null&&(b==null?void 0:b.v)!==void 0?!Number.isNaN(+b.v):!1),N=nd(S.documentSkeleton,A,k),D=s-u.startX-T,W=l-u.startY-R;f=N.links.find(H=>H.rects.some(U=>U.left<=D&&D<=U.right&&U.top<=W&&W<=U.bottom)),p=N.checkLists.find(H=>H.rect.left<=D&&D<=H.rect.right&&H.rect.top<=W&&W<=H.rect.bottom),v=N.drawings.find(H=>H.rect.left<=D&&D<=H.rect.right&&H.rect.top<=W&&W<=H.rect.bottom)}const M=(x=(P=f==null?void 0:f.rects.pop())!=null?P:p==null?void 0:p.rect)!=null?x:v==null?void 0:v.rect;return{location:g,position:u,overflowLocation:h,customRange:f==null?void 0:f.range,bullet:p==null?void 0:p.paragraph,drawing:v==null?void 0:v.drawingId,rect:M&&{top:M.top+C.mergeInfo.startY+R,bottom:M.bottom+C.mergeInfo.startY+R,left:M.left+C.mergeInfo.startX+T,right:M.right+C.mergeInfo.startX+T}}}_calcActiveRowHeader(e,t,o){const i=this._getCalcDeps(e);if(!i)return;const{currentRender:s,worksheet:l,skeletonParam:c}=i,{scaleY:d}=s.scene.getAncestorScale(),u=s.scene.getViewports().find(S=>S.isHit(new w.Vector2(t,o)));if(!u||u.viewportKey!==w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP&&u.viewportKey!==w.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM)return;const h={x:u.viewportScrollX,y:u.viewportScrollY},g=c.skeleton.getRowIndexByOffsetY(o,d,h);return{unitId:e,index:g,subUnitId:l.getSheetId()}}_calcActiveColHeader(e,t,o){const i=this._getCalcDeps(e);if(!i)return;const{currentRender:s,worksheet:l,skeletonParam:c}=i,{scaleX:d}=s.scene.getAncestorScale(),u=s.scene.getViewports().find(S=>S.isHit(new w.Vector2(t,o)));if(!u||u.viewportKey!==w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT&&u.viewportKey!==w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT)return;const h={x:u.viewportScrollX,y:u.viewportScrollY},g=c.skeleton.getColumnIndexByOffsetX(t,d,h);return{unitId:e,index:g,subUnitId:l.getSheetId()}}triggerPointerDown(e,t){const o=this._getCalcDeps(e);if(!o)return;const{currentRender:i,workbook:s,worksheet:l,skeletonParam:c}=o,d=this._calcActiveCell(i,s,l,c,t.offsetX,t.offsetY);if(d&&d.location){const{unitId:u,subUnitId:h,row:g,col:S}=At(d.location);this._currentPointerDownCell$.next({unitId:u,subUnitId:h,row:g,col:S,event:t})}}triggerPointerUp(e,t){const o=this._getCalcDeps(e);if(!o)return;const{currentRender:i,workbook:s,worksheet:l,skeletonParam:c}=o,d=this._calcActiveCell(i,s,l,c,t.offsetX,t.offsetY);if(d){const u=At(d.location);this._currentPointerUpCell$.next({...u,event:t})}}triggerMouseMove(e,t){const o=this._getCalcDeps(e);if(!o)return;const{currentRender:i,workbook:s,worksheet:l,skeletonParam:c}=o,d=this._calcActiveCell(i,s,l,c,t.offsetX,t.offsetY);this._currentCell$.next(d&&{location:At(d.location),position:d.position}),this._currentRichText$.next(d&&{...d,location:At(d.overflowLocation)}),this._currentCellWithEvent$.next(d&&{...d,location:At(d.location),event:t})}triggerClick(e,t,o){const i=this._getCalcDeps(e);if(!i)return;const{currentRender:s,workbook:l,worksheet:c,skeletonParam:d}=i,u=this._calcActiveCell(s,l,c,d,t,o);u&&this._currentClickedCell$.next({...u,location:At(u.location)})}triggerDbClick(e,t,o){const i=this._getCalcDeps(e);if(!i)return;const{currentRender:s,workbook:l,worksheet:c,skeletonParam:d}=i,u=this._calcActiveCell(s,l,c,d,t,o);u&&this._currentDbClickedCell$.next({...u,location:At(u.location)})}triggerScroll(){this._currentCell$.next(null)}triggerRowHeaderClick(e,t,o){const i=this._calcActiveRowHeader(e,t,o);i&&this._currentRowHeaderClick$.next(i)}triggerColHeaderClick(e,t,o){const i=this._calcActiveColHeader(e,t,o);i&&this._currentColHeaderClick$.next(i)}triggerRowHeaderDbClick(e,t,o){const i=this._calcActiveRowHeader(e,t,o);i&&this._currentRowHeaderDbClick$.next(i)}triggerColHeaderDbClick(e,t,o){const i=this._calcActiveColHeader(e,t,o);i&&this._currentColHeaderDbClick$.next(i)}triggerRowHeaderMouseMove(e,t,o){this._currentHoveredRowHeader$.next(this._calcActiveRowHeader(e,t,o))}triggerColHeaderMouseMove(e,t,o){this._currentHoveredColHeader$.next(this._calcActiveColHeader(e,t,o))}triggerRowHeaderPoniterDown(e,t,o){const i=this._calcActiveRowHeader(e,t,o);i&&this._currentRowHeaderPointerDown$.next(i)}triggerColHeaderPoniterDown(e,t,o){const i=this._calcActiveColHeader(e,t,o);i&&this._currentColHeaderPointerDown$.next(i)}triggerRowHeaderPoniterUp(e,t,o){const i=this._calcActiveRowHeader(e,t,o);i&&this._currentRowHeaderPointerUp$.next(i)}triggerColHeaderPoniterUp(e,t,o){const i=this._calcActiveColHeader(e,t,o);i&&this._currentColHeaderPointerUp$.next(i)}};exports.HoverManagerService=Lp([ja(0,a.IUniverInstanceService),ja(1,w.IRenderManagerService)],exports.HoverManagerService);var Bp=Object.getOwnPropertyDescriptor,Fp=(n,r,e,t)=>{for(var o=t>1?void 0:t?Bp(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},zo=(n,r)=>(e,t)=>r(e,t,n);const wi="SHEET_FORCE_STRING_ALERT";let mr=class extends a.Disposable{constructor(n,r,e,t,o){super(),this._context=n,this._hoverManagerService=r,this._cellAlertManagerService=e,this._localeService=t,this._zenZoneService=o,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.subscribe(n=>{var r;if(n){const t=this._context.unit.getActiveSheet();if(!t)return;const o=t.getCell(n.location.row,n.location.col);if((o==null?void 0:o.t)===a.CellValueType.FORCE_STRING&&o.v&&a.isRealNum(o.v)){const i=this._cellAlertManagerService.currentAlert.get(wi),s=(r=i==null?void 0:i.alert)==null?void 0:r.location;if(s&&s.row===n.location.row&&s.col===n.location.col&&s.subUnitId===n.location.subUnitId&&s.unitId===n.location.unitId)return;this._cellAlertManagerService.showAlert({type:_n.ERROR,title:this._localeService.t("info.error"),message:this._localeService.t("info.forceStringInfo"),location:n.location,width:200,height:74,key:wi});return}}this._hideAlert()}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(n=>{n&&this._hideAlert()}))}_hideAlert(){this._cellAlertManagerService.removeAlert(wi)}};mr=Fp([zo(1,a.Inject(exports.HoverManagerService)),zo(2,a.Inject(exports.CellAlertManagerService)),zo(3,a.Inject(a.LocaleService)),zo(4,I.IZenZoneService)],mr);var jp=Object.getOwnPropertyDescriptor,zp=(n,r,e,t)=>{for(var o=t>1?void 0:t?jp(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},za=(n,r)=>(e,t)=>r(e,t,n);let gr=class extends a.RxDisposable{constructor(n,r,e){super(),this._context=n,this._sheetSkeletonManagerService=r,this._sheetInterceptorService=e,this._initViewModelIntercept()}_initViewModelIntercept(){const n={tl:{size:6,color:"#409f11"}};this.disposeWithMe(this._sheetInterceptorService.intercept(m.INTERCEPTOR_POINT.CELL_CONTENT,{priority:10,effect:a.InterceptorEffectEnum.Style,handler:(r,e,t)=>{var s;if(!((s=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:s.skeleton))return t(r);const i=e.worksheet.getCellRaw(e.row,e.col);return!i||i.v===null||i.v===void 0?t(r):(r==null?void 0:r.t)===a.CellValueType.FORCE_STRING&&a.isRealNum(i.v)?t({...r,markers:{...r==null?void 0:r.markers,...n}}):t(r)}}))}};gr=zp([za(1,a.Inject(exports.SheetSkeletonManagerService)),za(2,a.Inject(m.SheetInterceptorService))],gr);var Xp=Object.getOwnPropertyDescriptor,Yp=(n,r,e,t)=>{for(var o=t>1?void 0:t?Xp(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},yi=(n,r)=>(e,t)=>r(e,t,n);exports.HoverRenderController=class extends a.Disposable{constructor(e,t,o,i){super();E(this,"_active",!1);this._context=e,this._hoverManagerService=t,this._sheetSkeletonManagerService=o,this._scrollManagerService=i,this._initPointerEvent(),this._initScrollEvent()}get active(){return this._active}_initPointerEvent(){const e=new a.DisposableCollection,t=o=>{if(e.dispose(),!o)return;const{mainComponent:i,unitId:s,components:l}=this._context;if(!i)return;e.add(i.onPointerEnter$.subscribeEvent(u=>{this._active=!0})),e.add(a.fromEventSubject(i.onPointerMove$).subscribe(u=>{this._active=!0,this._hoverManagerService.triggerMouseMove(s,u)})),e.add(i.onPointerDown$.subscribeEvent(u=>{this._hoverManagerService.triggerPointerDown(s,u)})),e.add(i.onPointerUp$.subscribeEvent(u=>{this._hoverManagerService.triggerPointerUp(s,u),this._hoverManagerService.triggerClick(s,u.offsetX,u.offsetY)})),e.add(i.onDblclick$.subscribeEvent(u=>{this._hoverManagerService.triggerDbClick(s,u.offsetX,u.offsetY)})),e.add(i.onPointerLeave$.subscribeEvent(()=>{this._active=!1}));const c=l.get(me.ROW),d=l.get(me.COLUMN);c&&(e.add(c.onPointerMove$.subscribeEvent(u=>{this._hoverManagerService.triggerRowHeaderMouseMove(s,u.offsetX,u.offsetY)})),e.add(c.onPointerDown$.subscribeEvent(u=>{this._hoverManagerService.triggerRowHeaderPoniterDown(s,u.offsetX,u.offsetY)})),e.add(c.onPointerUp$.subscribeEvent(u=>{this._hoverManagerService.triggerRowHeaderPoniterUp(s,u.offsetX,u.offsetY),this._hoverManagerService.triggerRowHeaderClick(s,u.offsetX,u.offsetY)})),e.add(c.onDblclick$.subscribeEvent(u=>{this._hoverManagerService.triggerRowHeaderDbClick(s,u.offsetX,u.offsetY)}))),d&&(e.add(d.onPointerMove$.subscribeEvent(u=>{this._hoverManagerService.triggerColHeaderMouseMove(s,u.offsetX,u.offsetY)})),e.add(d.onPointerDown$.subscribeEvent(u=>{this._hoverManagerService.triggerColHeaderPoniterDown(s,u.offsetX,u.offsetY)})),e.add(d.onPointerUp$.subscribeEvent(u=>{this._hoverManagerService.triggerColHeaderPoniterUp(s,u.offsetX,u.offsetY),this._hoverManagerService.triggerColHeaderClick(s,u.offsetX,u.offsetY)})),e.add(d.onDblclick$.subscribeEvent(u=>{this._hoverManagerService.triggerColHeaderDbClick(s,u.offsetX,u.offsetY)})))};t(this._sheetSkeletonManagerService.getCurrentParam()),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(o=>{t(o)}))}_initScrollEvent(){this.disposeWithMe(this._scrollManagerService.validViewportScrollInfo$.subscribe(()=>this._hoverManagerService.triggerScroll()))}};exports.HoverRenderController=Yp([yi(1,a.Inject(exports.HoverManagerService)),yi(2,a.Inject(exports.SheetSkeletonManagerService)),yi(3,a.Inject(exports.SheetScrollManagerService))],exports.HoverRenderController);var Gp=Object.getOwnPropertyDescriptor,Zp=(n,r,e,t)=>{for(var o=t>1?void 0:t?Gp(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Mi=(n,r)=>(e,t)=>r(e,t,n);let Sr=class extends a.Disposable{constructor(n,r,e,t){super(),this._context=n,this._markSelectionService=r,this._commandService=e,this._sheetSkeletonManagerService=t,this._initListeners()}_initListeners(){this._addRemoveListener(),this._addRefreshListener()}_addRemoveListener(){const n=[Ce.id];this.disposeWithMe(this._commandService.onCommandExecuted(r=>{n.includes(r.id)?this._markSelectionService.removeAllShapes():this._markSelectionService.getShapeMap().forEach((t,o)=>{t.exits.includes(r.id)&&this._markSelectionService.removeShape(o)})}))}_addRefreshListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(n=>{n&&this._markSelectionService.refreshShapes()}))}};Sr=Zp([Mi(1,a.Inject(qt)),Mi(2,a.ICommandService),Mi(3,a.Inject(exports.SheetSkeletonManagerService))],Sr);const Kp="univer-mobile-sheet-bar-container",qp="univer-mobile-sheet-bar-slider",Qp="univer-mobile-sheet-bar-item",Jp="univer-mobile-sheet-bar-item-activated",Xo={mobileSheetBarContainer:Kp,mobileSheetBarSlider:qp,mobileSheetBarItem:Qp,mobileSheetBarItemActivated:Jp};function rd(){const n=ht();return n?_.jsx($p,{workbook:n}):null}function $p(n){const{workbook:r}=n,[e,t]=V.useState([]),[o,i]=V.useState(""),s=V.useRef(new Map),l=I.useDependency(a.ICommandService),c=V.useCallback(()=>{const u=r.getActiveSheet().getSheetId(),h=r.getSheets(),g=r.getActiveSheet(),S=h.filter(f=>!f.isSheetHidden()).map((f,p)=>{var v;return{sheetId:f.getSheetId(),label:f.getName(),index:p,selected:g===f,color:(v=f.getTabColor())!=null?v:void 0}});if(t(S),i(u),s.current.has(u)){const f=s.current.get(u);f&&f.scrollIntoView({behavior:"smooth",block:"nearest"})}s.current.clear()},[r]);V.useEffect(()=>c(),[c]);const d=V.useCallback(u=>{l.executeCommand(m.SetWorksheetActiveOperation.id,{unitId:r.getUnitId(),subUnitId:u})},[l,r]);return V.useEffect(()=>{const u=l.onCommandExecuted(h=>{switch(h.id){case m.SetWorksheetHideMutation.id:case m.RemoveSheetMutation.id:case m.SetWorksheetNameMutation.id:case m.InsertSheetMutation.id:case m.SetWorksheetOrderMutation.id:case m.SetWorksheetActiveOperation.id:c();break}});return()=>u.dispose()},[l,c]),_.jsx("div",{className:Xo.mobileSheetBarContainer,children:_.jsx("div",{className:Xo.mobileSheetBarSlider,children:e.map(u=>_.jsx("div",{className:Te(Xo.mobileSheetBarItem,{[Xo.mobileSheetBarItemActivated]:u.sheetId===o}),onClick:()=>d(u.sheetId),ref:h=>{s.current.set(u.sheetId,h)},children:u.label},u.sheetId))})})}const ev={[I.ContextMenuPosition.MAIN_AREA]:{[I.ContextMenuGroup.FORMAT]:{[Xe.name]:{order:0,menuItemFactory:Cn}},[I.ContextMenuGroup.DATA]:{order:2},[I.ContextMenuGroup.OTHERS]:{order:3}},[I.ContextMenuPosition.COL_HEADER]:{[I.ContextMenuGroup.FORMAT]:{[Xe.name]:{order:0,menuItemFactory:Cn}},[I.ContextMenuGroup.LAYOUT]:{order:1},[I.ContextMenuGroup.DATA]:{order:2},[I.ContextMenuGroup.OTHERS]:{order:3}},[I.ContextMenuPosition.ROW_HEADER]:{[I.ContextMenuGroup.FORMAT]:{[Xe.name]:{order:0,menuItemFactory:Cn}},[I.ContextMenuGroup.LAYOUT]:{order:1},[I.ContextMenuGroup.DATA]:{order:2},[I.ContextMenuGroup.OTHERS]:{order:3}}};var tv=Object.getOwnPropertyDescriptor,nv=(n,r,e,t)=>{for(var o=t>1?void 0:t?tv(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},kt=(n,r)=>(e,t)=>r(e,t,n);let fr=class extends a.Disposable{constructor(n,r,e,t,o,i,s){super(),this._injector=n,this._componentManager=r,this._layoutService=e,this._commandService=t,this._shortcutService=o,this._menuManagerService=i,this._uiPartsService=s,this._init()}_init(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts(),this._initWorkbenchParts(),this._initFocusHandler()}_initCustomComponents(){const n=this._componentManager;this.disposeWithMe(n.register(Lr,El)),this.disposeWithMe(n.register(Ls,ec)),this.disposeWithMe(n.register(Ro,Z.ColorPicker)),this.disposeWithMe(n.register(Vr,I.FontFamily)),this.disposeWithMe(n.register(Wr,I.FontFamilyItem)),this.disposeWithMe(n.register(Ur,I.FontSize)),this.disposeWithMe(n.register(ro,nc))}_initCommands(){[Ds,Tt,Vs,Hs,kn,De,xe,$e,ko,Po,xn,An,go,So,ze,_s,Dr,zr,m.SetBoldCommand,zt,Ce,ho,Qt,Jt,$t,en,Ms,Ps,fo,po,Mn,m.SetItalicCommand,m.SetStrikeThroughCommand,m.SetFontFamilyCommand,m.SetFontSizeCommand,vo,Hr,Dn,Co,je,wn,dt,Io,_o,m.SetUnderlineCommand,Nn,Le,Oo,uo,Yt,Xt,Un,Wn,Xr,Ct,En,Qe,Us,wo,Vt,Wt,yo,Mo,Ao,Ut,Lt,xo].forEach(n=>{this.disposeWithMe(this._commandService.registerCommand(n))})}_initMenus(){this._menuManagerService.mergeMenu(ev)}_initShortcuts(){[Cc,Ic,_c,bc,Rc,Ec,Tc,wc,yc,Mc,Pc,Oc,xc,Ac,kc,Nc,Dc,Hc,Vc,Wc,Uc,Xc,Gc,Kc,qc,Yc,Zc,Lc,Bc,Fc,jc,zc,...cl(),ul,dl,hl,gl,Sl,fl,ml,pc,vc].forEach(n=>{this.disposeWithMe(this._shortcutService.registerShortcut(n))})}_initWorkbenchParts(){this._uiPartsService.registerComponent(I.BuiltInUIPart.HEADER,()=>I.connectInjector(rd,this._injector))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(a.UniverInstanceType.UNIVER_SHEET,n=>{}))}};fr=nv([kt(0,a.Inject(a.Injector)),kt(1,a.Inject(I.ComponentManager)),kt(2,I.ILayoutService),kt(3,a.ICommandService),kt(4,I.IShortcutService),kt(5,I.IMenuManagerService),kt(6,I.IUIPartsService)],fr);const es="UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID",id="UNIVER_SHEET_PERMISSION_ALERT_DIALOG";var ov=Object.getOwnPropertyDescriptor,rv=(n,r,e,t)=>{for(var o=t>1?void 0:t?ov(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},nt=(n,r)=>(e,t)=>r(e,t,n);exports.SheetPermissionCheckUIController=class extends a.Disposable{constructor(e,t,o,i,s,l,c,d,u){super();E(this,"disposableCollection",new a.DisposableCollection);this._commandService=e,this._univerInstanceService=t,this._permissionService=o,this._dialogService=i,this._rangeProtectionRuleModel=s,this._autoFillService=l,this._localeService=c,this._contextService=d,this._sheetPermissionCheckController=u,this._initialize(),this._initUIEvent()}_initUIEvent(){this.disposeWithMe(this._sheetPermissionCheckController.triggerPermissionUIEvent$.subscribe(e=>{this._haveNotPermissionHandle(e)}))}_haveNotPermissionHandle(e){const t={id:es,title:{title:""},children:{label:id,errorMsg:e},width:320,destroyOnClose:!0,onClose:()=>this._dialogService.close(es),className:"sheet-permission-user-dialog"};this._permissionService.getShowComponents()&&this._dialogService.open(t)}_getPermissionCheck(e,t){var s,l;let o=!0,i="";switch(e){case $.InsertCommand.id:case $.IMEInputCommand.id:if(this._contextService.getContextValue(a.FOCUSING_EDITOR_STANDALONE)===!0)break;o=this._sheetPermissionCheckController.permissionCheckWithoutRange({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetEditPermission]}),i=this._localeService.t("permission.dialog.editErr");break;case Ce.id:if(t.visible===!1)break;o=this._sheetPermissionCheckController.permissionCheckWithoutRange({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetEditPermission]}),i=this._localeService.t("permission.dialog.editErr");break;case Ht.id:o=this._sheetPermissionCheckController.permissionCheckWithoutRange({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetColumnStylePermission]}),i=this._localeService.t("permission.dialog.pasteErr");break;case ir.id:o=this._permissionCheckByPaste(t),i=this._localeService.t("permission.dialog.pasteErr");break;case Co.id:o=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission,m.WorksheetSetCellStylePermission]}),i=this._localeService.t("permission.dialog.commonErr");break;case m.SetBackgroundColorCommand.id:case Qt.id:case Jt.id:case $t.id:case en.id:o=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission]}),i=this._localeService.t("permission.dialog.setStyleErr");break;case Xe.id:o=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[m.WorkbookCopyPermission],rangeTypes:[m.RangeProtectionPermissionViewPoint],worksheetTypes:[m.WorksheetCopyPermission]}),i=this._localeService.t("permission.dialog.copyErr"),(s=this._permissionService.getPermissionPoint(new m.WorkbookCopyPermission(this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId()).id))!=null&&s.value||(i=this._localeService.t("permission.dialog.workbookCopyErr"));break;case ys.id:o=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[m.WorkbookCopyPermission,m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionViewPoint,m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetCopyPermission,m.WorksheetEditPermission]}),i=this._localeService.t("permission.dialog.copyErr"),(l=this._permissionService.getPermissionPoint(new m.WorkbookCopyPermission(this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId()).id))!=null&&l.value||(i=this._localeService.t("permission.dialog.workbookCopyErr"));break;case Ct.id:o=this._permissionCheckByAutoFillCommand(t),i=this._localeService.t("permission.dialog.autoFillErr");break}o||this._sheetPermissionCheckController.blockExecuteWithoutPermission(i)}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{this._getPermissionCheck(e.id,e==null?void 0:e.params)}))}_permissionCheckByPaste(e){return e.value===ge.SPECIAL_PASTE_VALUE||e.value===ge.SPECIAL_PASTE_FORMULA?this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission]}):e.value===ge.SPECIAL_PASTE_FORMAT?this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission]}):this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetSetCellStylePermission,m.WorksheetEditPermission]})}_permissionCheckByAutoFillCommand(e){if(!e)return!1;const{targetRange:t}=e,o=m.getSheetCommandTarget(this._univerInstanceService);if(!o)return!1;const{worksheet:i,unitId:s,subUnitId:l}=o;return!this._rangeProtectionRuleModel.getSubunitRuleList(s,l).reduce((u,h)=>[...u,...h.ranges],[]).filter(u=>a.Rectangle.intersects(u,t)).some(u=>{var h,g;for(let S=u.startRow;S<=u.endRow;S++)for(let f=u.startColumn;f<=u.endColumn;f++){const p=(g=(h=i.getCell(S,f))==null?void 0:h.selectionProtection)==null?void 0:g[0];if((p==null?void 0:p[ne.Edit])===!1)return!0}return!1})}};exports.SheetPermissionCheckUIController=rv([nt(0,a.ICommandService),nt(1,a.IUniverInstanceService),nt(2,a.IPermissionService),nt(3,I.IDialogService),nt(4,a.Inject(m.RangeProtectionRuleModel)),nt(5,Et),nt(6,a.Inject(a.LocaleService)),nt(7,a.IContextService),nt(8,a.Inject(m.SheetPermissionCheckController))],exports.SheetPermissionCheckUIController);var iv=Object.getOwnPropertyDescriptor,sv=(n,r,e,t)=>{for(var o=t>1?void 0:t?iv(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},ot=(n,r)=>(e,t)=>r(e,t,n);let pr=class extends a.RxDisposable{constructor(r,e,t,o,i,s,l,c,d,u){super();E(this,"disposableCollection",new a.DisposableCollection);this._context=r,this._univerInstanceService=e,this._permissionService=t,this._selectionManagerService=o,this._rangeProtectionRuleModel=i,this._headerMoveRenderController=s,this._selectionRenderService=l,this._headerFreezeRenderController=c,this._rangeProtectionCache=d,this._headerResizeRenderController=u,this._initHeaderMovePermissionInterceptor(),this._initHeaderResizePermissionInterceptor(),this._initRangeFillPermissionInterceptor(),this._initRangeMovePermissionInterceptor()}_initHeaderMovePermissionInterceptor(){const r=this._headerMoveRenderController.interceptor.getInterceptPoints().HEADER_MOVE_PERMISSION_CHECK;this.disposeWithMe(this._headerMoveRenderController.interceptor.intercept(r,{handler:(e,t)=>{const o=m.getSheetCommandTarget(this._univerInstanceService);if(!o)return!1;const{unitId:i,subUnitId:s}=o;if(!this._permissionService.composePermission([new m.WorkbookEditablePermission(i).id,new m.WorksheetEditPermission(i,s).id]).every(c=>c.value))return!1;if(!t)return!0;if(t.rangeType!==a.RANGE_TYPE.ROW&&t.rangeType!==a.RANGE_TYPE.COLUMN)return e;if(t.rangeType===a.RANGE_TYPE.ROW){for(let c=t.startRow;c<=t.endRow;c++)if(this._rangeProtectionCache.getRowPermissionInfo(i,s,c,[ne.Edit])===!1)return!1}else for(let c=t.startColumn;c<=t.endColumn;c++)if(this._rangeProtectionCache.getColPermissionInfo(i,s,c,[ne.Edit])===!1)return!1;return!0}}))}_initHeaderResizePermissionInterceptor(){this._headerResizeRenderController&&this.disposeWithMe(this._headerResizeRenderController.interceptor.intercept(this._headerResizeRenderController.interceptor.getInterceptPoints().HEADER_RESIZE_PERMISSION_CHECK,{handler:(r,e)=>{var s,l,c,d;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{unitId:o,subUnitId:i}=t;if(e.row){if(((l=(s=this._permissionService.getPermissionPoint(new m.WorksheetSetRowStylePermission(o,i).id))==null?void 0:s.value)!=null?l:!1)===!1)return!1}else if(e.col&&((d=(c=this._permissionService.getPermissionPoint(new m.WorksheetSetColumnStylePermission(o,i).id))==null?void 0:c.value)!=null?d:!1)===!1)return!1;return!0}}))}_initRangeFillPermissionInterceptor(){this.disposeWithMe(this._selectionRenderService.interceptor.intercept(this._selectionRenderService.interceptor.getInterceptPoints().RANGE_FILL_PERMISSION_CHECK,{handler:(r,e)=>{var f,p,v;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:o,unitId:i,subUnitId:s}=t;if(!this._permissionService.composePermission([new m.WorkbookEditablePermission(i).id,new m.WorksheetEditPermission(i,s).id,new m.WorksheetSetCellValuePermission(i,s).id,new m.WorksheetSetCellStylePermission(i,s).id]).every(C=>C.value))return!1;const c=(f=this._selectionManagerService.getCurrentSelections())==null?void 0:f.map(C=>C.range),d=c==null?void 0:c.find(C=>{const b=qn(e.x,e.y,e.scene,e.skeleton),R=e.skeleton.getCellWithCoordByIndex(C.endRow,C.endColumn),T=Math.abs(R.endX-b.x),M=Math.abs(R.endY-b.y);return T<=5&&M<=5});if(!d)return!0;const{startRow:u,endRow:h,startColumn:g,endColumn:S}=d;for(let C=u;C<=h;C++)for(let b=g;b<=S;b++){const R=(v=(p=o.getCell(C,b))==null?void 0:p.selectionProtection)==null?void 0:v[0];if((R==null?void 0:R[ne.Edit])===!1||(R==null?void 0:R[ne.View])===!1)return!1}return!0}}))}_initRangeMovePermissionInterceptor(){this.disposeWithMe(this._selectionRenderService.interceptor.intercept(this._selectionRenderService.interceptor.getInterceptPoints().RANGE_MOVE_PERMISSION_CHECK,{handler:(r,e)=>{var g;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:o,unitId:i,subUnitId:s}=t;if(!this._permissionService.composePermission([new m.WorkbookEditablePermission(i).id,new m.WorksheetEditPermission(i,s).id]).every(S=>S.value))return!1;const c=(g=this._selectionManagerService.getCurrentSelections())==null?void 0:g.map(S=>S.range),d=this._rangeProtectionRuleModel.getSubunitRuleList(i,s).reduce((S,f)=>[...S,...f.ranges],[]),u=c==null?void 0:c.filter(S=>d.some(f=>a.Rectangle.intersects(f,S)));return!(u==null?void 0:u.some(S=>{var b,R;const{startRow:f,startColumn:p,endRow:v,endColumn:C}=S;for(let T=f;T<=v;T++)for(let M=p;M<=C;M++){const y=(R=(b=o.getCell(T,M))==null?void 0:b.selectionProtection)==null?void 0:R[0];if((y==null?void 0:y[ne.Edit])===!1)return!0}return!1}))}}))}_initFreezePermissionInterceptor(){this.disposeWithMe(this._headerFreezeRenderController.interceptor.intercept(this._headerFreezeRenderController.interceptor.getInterceptPoints().FREEZE_PERMISSION_CHECK,{handler:(r,e)=>{var s,l;const t=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);return!(t==null?void 0:t.getActiveSheet())||!t?!1:(l=(s=this._permissionService.getPermissionPoint(new m.WorkbookEditablePermission(t.getUnitId()).id))==null?void 0:s.value)!=null?l:!1}}))}};pr=sv([ot(1,a.IUniverInstanceService),ot(2,a.IPermissionService),ot(3,a.Inject(m.SheetsSelectionsService)),ot(4,a.Inject(m.RangeProtectionRuleModel)),ot(5,a.Inject(exports.HeaderMoveRenderController)),ot(6,ve),ot(7,a.Inject(exports.HeaderFreezeRenderController)),ot(8,a.Inject(m.RangeProtectionCache)),ot(9,a.Optional(exports.HeaderResizeRenderController))],pr);var av=Object.getOwnPropertyDescriptor,lv=(n,r,e,t)=>{for(var o=t>1?void 0:t?av(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},jn=(n,r)=>(e,t)=>r(e,t,n);const cv="SHEET_PERMISSION_PASTE_PLUGIN";let so=class extends a.Disposable{constructor(r,e,t,o,i){super();E(this,"disposableCollection",new a.DisposableCollection);this._univerInstanceService=r,this._selectionManagerService=e,this._localService=t,this._sheetClipboardService=o,this._sheetPermissionCheckController=i,this._initClipboardHook()}_initClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook({id:cv,onBeforePaste:r=>{var g,S,f;const[e]=Kt([r.range]).ranges,t=(g=this._selectionManagerService.getCurrentLastSelection())==null?void 0:g.range;if(!t)return!1;const o={startRow:t.startRow+e.startRow,endRow:t.startRow+e.endRow,startColumn:t.startColumn+e.startColumn,endColumn:t.startColumn+e.endColumn},s=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!s)return!1;const{startRow:l,endRow:c,startColumn:d,endColumn:u}=o;let h=!0;for(let p=l;p<=c;p++)for(let v=d;v<=u;v++){const C=(f=(S=s.getCell(p,v))==null?void 0:S.selectionProtection)==null?void 0:f[0];if((C==null?void 0:C[ne.Edit])===!1){h=!1;break}}return h||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localService.t("permission.dialog.pasteErr")),h}}))}};so=lv([jn(0,a.IUniverInstanceService),jn(1,a.Inject(m.SheetsSelectionsService)),jn(2,a.Inject(a.LocaleService)),jn(3,a.Inject(Be)),jn(4,a.Inject(m.SheetPermissionCheckController))],so);var dv=Object.getOwnPropertyDescriptor,uv=(n,r,e,t)=>{for(var o=t>1?void 0:t?dv(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},zn=(n,r)=>(e,t)=>r(e,t,n);const hv=a.createInterceptorKey("statusBarPermissionCorrect");class mv{constructor(){E(this,"_sum",0);E(this,"_count",0);E(this,"_countNumber",0);E(this,"_min",Number.POSITIVE_INFINITY);E(this,"_max",Number.NEGATIVE_INFINITY)}add(r,e,t){let o=r==null?void 0:r.v;const i=r==null?void 0:r.t;if(i===a.CellValueType.NUMBER&&(o=Number(o)),o!=null){if(typeof o=="number"&&i!==a.CellValueType.STRING)this._sum+=o,this._countNumber++,this._min=Math.min(this._min,o),this._max=Math.max(this._max,o);else if(i===a.CellValueType.NUMBER&&(r!=null&&r.s)){const s=e.get(r.s);if(s&&i===a.CellValueType.NUMBER&&s.n){const{pattern:l}=s.n;if(t[l]||(t[l]=a.numfmt.getInfo(l)),t[l].isDate){const u=a.numfmt.parseDate(o).v;this._sum+=Number(u),this._countNumber++,this._min=Math.min(this._min,Number(u)),this._max=Math.max(this._max,Number(u))}}}this._count++}}getResults(){return{sum:this._sum,count:this._countNumber,countA:this._count,min:this._min,max:this._max}}}function gv(n){const{sum:r,count:e,countA:t,min:o,max:i}=n.getResults();return[{func:K.FUNCTION_NAMES_STATISTICAL.MAX,value:i},{func:K.FUNCTION_NAMES_STATISTICAL.MIN,value:o},{func:K.FUNCTION_NAMES_MATH.SUM,value:r},{func:K.FUNCTION_NAMES_STATISTICAL.COUNTA,value:t},{func:K.FUNCTION_NAMES_STATISTICAL.COUNT,value:e},{func:K.FUNCTION_NAMES_STATISTICAL.AVERAGE,value:r/e}]}exports.StatusBarController=class extends a.Disposable{constructor(e,t,o,i,s){super();E(this,"interceptor",new a.InterceptorManager({STATUS_BAR_PERMISSION_CORRECT:hv}));this._univerInstanceService=e,this._selectionManagerService=t,this._statusBarService=o,this._commandService=i,this._numfmtService=s,this._init()}_init(){this._registerSelectionListener()}_registerSelectionListener(){const e=a.debounce(o=>{var s;const i=(s=o[o.length-1])==null?void 0:s.primary;this._calculateSelection(o.map(l=>l.range),i)},100),t=a.debounce(o=>{var s;const i=(s=o[o.length-1])==null?void 0:s.primary;this._calculateSelection(o.map(l=>l.range),i)},500);this.disposeWithMe(a.toDisposable(this._selectionManagerService.selectionMoving$.subscribe(o=>{o&&t(o)}))),this.disposeWithMe(a.toDisposable(this._selectionManagerService.selectionMoveEnd$.subscribe(o=>{o&&e(o)}))),this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(o.id===m.SetRangeValuesMutation.id){const i=this._selectionManagerService.getCurrentSelections();i&&e(i)}}))}_clearResult(){this._statusBarService.setState(null)}getRangeStartEndInfo(e,t){return e.rangeType===a.RANGE_TYPE.ALL?{startRow:0,startColumn:0,endRow:t.getRowCount()-1,endColumn:t.getColumnCount()-1}:e.rangeType===a.RANGE_TYPE.COLUMN?{startRow:0,startColumn:e.startColumn,endRow:t.getRowCount()-1,endColumn:e.endColumn}:e.rangeType===a.RANGE_TYPE.ROW?{startRow:e.startRow,startColumn:0,endRow:e.endRow,endColumn:t.getColumnCount()-1}:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn}}_calculateSelection(e,t){var d;const o=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!o)return this._clearResult();const i=o.getUnitId(),s=o.getActiveSheet(),l=s==null?void 0:s.getSheetId();if(!l)return this._clearResult();const c={};if(this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getSheets().forEach(u=>{const h=u.getConfig();c[u.getSheetId()]={cellData:new a.ObjectMatrix(h.cellData),rowCount:h.rowCount,columnCount:h.columnCount,rowData:h.rowData,columnData:h.columnData}}),e!=null&&e.length){const u=[];e.forEach(R=>{const{startRow:T,endRow:M}=R;let y=null;for(let P=T;P<=M;P++)s.getRowVisible(P)?y===null&&(y=P):y!==null&&(u.push({...R,startRow:y,endRow:P-1}),y=null);y!==null&&u.push({...R,startRow:y,endRow:M})});const h=a.splitIntoGrid(u),g=new mv,S=o.getStyles(),f={};for(const R of h){const{startRow:T,startColumn:M,endColumn:y,endRow:P}=this.getRangeStartEndInfo(R,s);for(let x=T;x<=P;x++)for(let A=M;A<=y;A++){const k=s.getCell(x,A);g.add(k,S,f)}}const p=gv(g);if(p.every(R=>R===void 0))return;let v=null;if(t){const{actualRow:R,actualColumn:T}=t;v=(d=this._numfmtService.getValue(i,l,R,T))==null?void 0:d.pattern}const b={values:p.filter(R=>R!==void 0),pattern:v};this._statusBarService.setState(b)}else this._clearResult()}};exports.StatusBarController=uv([zn(0,a.IUniverInstanceService),zn(1,a.Inject(m.SheetsSelectionsService)),zn(2,Do),zn(3,a.ICommandService),zn(4,a.Inject(m.INumfmtService))],exports.StatusBarController);var Sv=Object.getOwnPropertyDescriptor,fv=(n,r,e,t)=>{for(var o=t>1?void 0:t?Sv(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Yo=(n,r)=>(e,t)=>r(e,t,n);let vr=class extends a.RxDisposable{constructor(r,e,t,o,i){super();E(this,"disposableCollection",new a.DisposableCollection);this._context=r,this._univerInstanceService=e,this._permissionService=t,this._statusBarController=o,this._rangeProtectionCache=i,this._initStatusBarPermissionInterceptor()}_initStatusBarPermissionInterceptor(){this.disposeWithMe(this._statusBarController.interceptor.intercept(this._statusBarController.interceptor.getInterceptPoints().STATUS_BAR_PERMISSION_CORRECT,{priority:100,handler:(r,e)=>{var c;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return r!=null?r:[];const{worksheet:o,unitId:i,subUnitId:s}=t;return((c=this._permissionService.getPermissionPoint(new m.WorksheetViewPermission(i,s).id))==null?void 0:c.value)===!1?e.forEach(d=>{const u=d.getArrayValue();u.forEach((h,g)=>{h.forEach((S,f)=>{u[g][f]=K.NullValueObject.create()})})}):e.forEach(d=>{const u=d.getArrayValue(),h=d.getCurrentRow(),g=d.getCurrentColumn();u.forEach((S,f)=>{S.forEach((p,v)=>{var R;if(((R=o.getCellRaw(f+h,v+g))==null?void 0:R.v)===void 0)return;const b=this._rangeProtectionCache.getCellInfo(i,s,f+h,v+g);(b==null?void 0:b[ne.View])===!1&&(u[f][v]=K.NullValueObject.create())})})}),e}}))}};vr=fv([Yo(1,a.IUniverInstanceService),Yo(2,a.IPermissionService),Yo(3,a.Inject(exports.StatusBarController)),Yo(4,a.Inject(m.RangeProtectionCache))],vr);const sd=(n,r,e,t,o)=>{const i=n.get(a.LocaleService),s=n.get(m.WorksheetProtectionRuleModel),l=n.get(m.RangeProtectionRuleModel);let c="";if(r.length===0)c=i.t("permission.panel.emptyRangeError");else if(r.length>1){let d=!1;for(let u=0;u<r.length;u++){for(let h=u+1;h<r.length;h++)if(a.Rectangle.intersects(r[u],r[h])){d=!0;break}if(d)break}d&&(c=i.t("permission.panel.rangeOverlapError"))}if(!c){if(s.getRule(t,o)&&!e)return c=i.t("permission.panel.rangeOverlapOverPermissionError"),c;const u=l.getSubunitRuleList(t,o).filter(g=>g.permissionId!==e).find(g=>g.ranges.some(S=>r.some(f=>a.Rectangle.intersects(S,f))));(u==null?void 0:u.ranges.find(g=>r.some(S=>a.Rectangle.intersects(g,S))))&&(c=i.t("permission.panel.rangeOverlapOverPermissionError"))}return c===""?void 0:c},pv=(n,r)=>{if(n.length!==1)return!1;const e=n[0],t=r.getRowCount(),o=r.getColumnCount(),{startRow:i,endRow:s,startColumn:l,endColumn:c}=e;return i===0&&l===0&&s===t-1&&c===o-1},vv=(n,r)=>{var c,d;const e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),i=o.getActiveSheet();let s=m.UnitObject.SelectRange,l=(d=(c=t.getCurrentSelections())==null?void 0:c.map(u=>u.range))!=null?d:[];return r&&(s=m.UnitObject.Worksheet,l=[{startRow:0,startColumn:0,endRow:i.getRowCount()-1,endColumn:i.getColumnCount()-1,rangeType:a.RANGE_TYPE.ALL}]),{unitId:o.getUnitId(),subUnitId:i.getSheetId(),permissionId:"",unitType:s,description:"",id:"",ranges:l,editState:m.EditStateEnum.OnlyMe,viewState:m.ViewStateEnum.OthersCanView}},Cv=(n,r)=>{const o=n.get(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),{unitType:i}=r;return i===m.UnitObject.Worksheet?{...r,ranges:[{startRow:0,startColumn:0,endRow:o.getRowCount()-1,endColumn:o.getColumnCount()-1,rangeType:a.RANGE_TYPE.ALL}]}:r},Iv="univer-permission-panel-detail-wrapper",_v="univer-radio-group-vertical",bv="univer-sheet-permission-design-person-panel",Rv="univer-sheet-permission-design-person-panel-header",Ev="univer-sheet-permission-design-person-panel-header-add",Tv="univer-sheet-permission-design-person-panel-split",wv="univer-sheet-permission-design-person-panel-content-item",yv="univer-sheet-permission-design-person-panel-content-item-name",Mv="univer-sheet-permission-design-person-panel-content-item-select",Pv="univer-sheet-permission-design-person-panel-content",Ov="univer-sheet-permission-user-list-empty",xv="univer-sheet-permission-user-list-empty-text",Av="univer-sheet-permission-panel-title",kv="univer-sheet-permission-panel-footer",pe={permissionPanelDetailWrapper:Iv,radioGroupVertical:_v,sheetPermissionDesignPersonPanel:bv,sheetPermissionDesignPersonPanelHeader:Rv,sheetPermissionDesignPersonPanelHeaderAdd:Ev,sheetPermissionDesignPersonPanelSplit:Tv,sheetPermissionDesignPersonPanelContentItem:wv,sheetPermissionDesignPersonPanelContentItemName:yv,sheetPermissionDesignPersonPanelContentItemSelect:Mv,sheetPermissionDesignPersonPanelContent:Pv,sheetPermissionUserListEmpty:Ov,sheetPermissionUserListEmptyText:xv,sheetPermissionPanelTitle:Av,sheetPermissionPanelFooter:kv},Nv=n=>{const{viewState:r,editState:e,permissionId:t,ranges:o,rangesErrMsg:i,desc:s,oldRule:l,id:c}=n,d=I.useDependency(On),u=I.useDependency(I.ISidebarService),h=I.useDependency(a.IAuthzIoService),g=I.useDependency(a.LocaleService),S=I.useDependency(a.ICommandService),f=I.useDependency(wt),v=I.useDependency(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),C=v==null?void 0:v.getActiveSheet();if(!v||!C)return null;const b=v.getUnitId(),R=C.getSheetId();return _.jsxs("div",{className:pe.sheetPermissionPanelFooter,children:[_.jsx(Z.Button,{type:"primary",onClick:async()=>{if(i)return;const T={unitId:b,subUnitId:R,permissionId:t,id:c,viewState:r,editState:e,unitType:m.UnitObject.SelectRange,ranges:o,description:s};pv(o,C)&&(T.unitType=m.UnitObject.Worksheet,T.ranges=[]);let y=f.selectUserList;T.editState===m.EditStateEnum.OnlyMe&&(y=[],f.setSelectUserList([]));const P={read:T.viewState===m.ViewStateEnum.OthersCanView?Ke.AllCollaborator:Ke.SomeCollaborator,edit:T.editState===m.EditStateEnum.DesignedUserCanEdit?Ke.SomeCollaborator:Ke.OneSelf};if(T.editState===m.EditStateEnum.DesignedUserCanEdit&&y.length===0&&(y=[],P.edit=Ke.OneSelf),T.permissionId){const A=ig(y.filter(H=>H.role===ke.Editor),f.oldCollaboratorList.filter(H=>H.role===ke.Editor)),k=(l==null?void 0:l.viewState)===T.viewState,N=(l==null?void 0:l.editState)===T.editState,D=T.unitType===(l==null?void 0:l.unitType)&&T.description===l.description&&T.ranges===l.ranges,W=!A||!k||!N;if(D&&W)await h.update({objectType:T.unitType,objectID:T.permissionId,unitID:T.unitId,share:void 0,name:"",strategies:[],scope:P,collaborators:{collaborators:y}});else{let H=T.permissionId;W&&(T.unitType===m.UnitObject.Worksheet?H=await h.create({worksheetObject:{collaborators:y,unitID:T.unitId,name:"",strategies:[{role:ke.Editor,action:ne.Edit},{role:ke.Reader,action:ne.View}],scope:P},objectType:m.UnitObject.Worksheet}):H=await h.create({selectRangeObject:{collaborators:y,unitID:T.unitId,name:"",scope:P},objectType:m.UnitObject.SelectRange})),S.executeCommand(m.SetProtectionCommand.id,{rule:{...T,permissionId:H},oldRule:l})}}else if(T.unitType===m.UnitObject.Worksheet){const A=await h.create({worksheetObject:{collaborators:y,unitID:T.unitId,name:"",strategies:[{role:ke.Editor,action:ne.Edit},{role:ke.Reader,action:ne.View}],scope:P},objectType:m.UnitObject.Worksheet}),{ranges:k=[],...N}=T;N.permissionId=A,S.executeCommand(m.AddWorksheetProtectionCommand.id,{rule:N,unitId:T.unitId})}else if(T.unitType===m.UnitObject.SelectRange){const A=await h.create({selectRangeObject:{collaborators:y,unitID:T.unitId,name:"",scope:P},objectType:m.UnitObject.SelectRange});S.executeCommand(m.AddRangeProtectionCommand.id,{rule:T,permissionId:A})}const x={header:{title:`${g.t("permission.panel.title")}`},children:{label:oo,showDetail:!1},width:330};u.open(x)},children:g.t("permission.button.confirm")}),_.jsx(Z.Button,{className:pe.sheetPermissionPanelFooterCancel,onClick:()=>{d.reset(),f.reset(),u.close()},children:g.t("permission.button.cancel")})]})},Dv=n=>{const{ranges:r,onRangesChange:e,rangeSelectorRef:t,desc:o,onDescChange:i,rangesErrMsg:s,isFocusRangeSelector:l,permissionId:c,onFocus:d}=n,u=I.useDependency(I.ComponentManager),h=V.useMemo(()=>u.get(hs),[]),g=I.useDependency(a.IUniverInstanceService),S=I.useDependency(a.LocaleService),f=I.useDependency(a.Injector),p=g.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),v=p==null?void 0:p.getActiveSheet();if(!p||!v)return null;const C=p.getUnitId(),b=v.getSheetId(),R=T=>{const M=T.split(",").map(K.deserializeRangeWithSheet).map(D=>D.range);if(M.some(D=>!a.isValidRange(D)||D.endColumn<D.startColumn||D.endRow<D.startRow))return;const y=g.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),P=y==null?void 0:y.getActiveSheet();if(!y||!P)return;const x=y.getUnitId(),A=P.getSheetId(),k=M.map(D=>{const W=P.getRowCount(),H=P.getColumnCount();return m.setEndForRange(D,W,H),D}),N=sd(f,k,c,x,A);e(k,N)};return _.jsxs(_.Fragment,{children:[_.jsx(Z.FormLayout,{className:pe.sheetPermissionPanelTitle,label:S.t("permission.panel.protectedRange"),children:h&&_.jsx(h,{unitId:C,errorText:s,subUnitId:b,initValue:r==null?void 0:r.map(T=>K.serializeRange(T)).join(","),onChange:R,onFocus:d,isFocus:l,actions:t.current})}),_.jsx(Z.FormLayout,{className:pe.sheetPermissionPanelTitle,label:S.t("permission.panel.permissionDirection"),children:_.jsx(Z.Input,{value:o,onChange:T=>i(T),placeholder:S.t("permission.panel.permissionDirectionPlaceholder")})})]})},Hv=n=>{var T,M;const{fromSheetBar:r,rule:e,oldRule:t}=n,o=I.useDependency(a.Injector),i=e?Cv(o,e):vv(o,r),[s,l]=V.useState(i.ranges),[c,d]=V.useState(()=>sd(o,i.ranges,i.permissionId,i.unitId,i.subUnitId)),[u,h]=V.useState(i.description),[g,S]=V.useState((T=i.editState)!=null?T:m.EditStateEnum.OnlyMe),[f,p]=V.useState((M=i.viewState)!=null?M:m.ViewStateEnum.OthersCanView),v=V.useRef({}),[C,b]=V.useState(!1);I.useSidebarClick(y=>{var x;const P=(x=v.current)==null?void 0:x.handleOutClick;P&&P(y,()=>b(!1))});const R=I.useComponentsOfPart(ar);return V.useEffect(()=>{const y=o.get(a.IUniverInstanceService),P=o.get(I.ISidebarService),x=y.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!x)return;const A=x.getActiveSheet().getSheetId(),k=x.activeSheet$.subscribe(N=>{(N==null?void 0:N.getSheetId())!==A&&P.close()});return()=>{k.unsubscribe()}},[]),_.jsxs("div",{className:pe.permissionPanelDetailWrapper,children:[_.jsx(Dv,{onFocus:()=>b(!0),permissionId:i.permissionId,ranges:s,onRangesChange:(y,P)=>{l(y),d(P)},isFocusRangeSelector:C,rangesErrMsg:c,desc:u,onDescChange:y=>h(y),rangeSelectorRef:v}),_.jsx(I.ComponentContainer,{components:R,sharedProps:{editState:g,onEditStateChange:y=>S(y),viewState:f,onViewStateChange:y=>p(y),permissionId:i.permissionId}},"user-part"),_.jsx(Nv,{permissionId:i.permissionId,id:i.id,ranges:s,rangesErrMsg:c,desc:u,viewState:f,editState:g,oldRule:t})]})},Vv="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAADxCAYAAAATKWQfAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAB4KADAAQAAAABAAAA8QAAAAAQiyznAABAAElEQVR4Aey9e6wnyXXf192/1/397p2ZO7s73If3MWuRSy4pC0uL1oOSrF0lsgXZECVZDBDJiZZ2RMaURIsEKUpKAA9hWLRNmaTWsQ0SCCgFDmBTgCkGQYAgf2gUx69YiUcBKFGm5B1Jq10ud3fe9/V7dOf7OVWnb/363jucfc2dR9XM/VXVOadOVZ/urm+fqurqosghWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFsgWyBbIFqgzJbIFsgWuH4WePrpZv3CtHj8wmZx5om3l2evX825pmyBbIEbzQIZgG+0M5Lbc8tZANDdqYonq7J4V9MUj128Uqxf3CgK3XxnlT/TlMUXddBn/sK3lGduuYPPB5QtkC1woAUyAB9omszIFnjlFuiA7uOpJgFwAQB3g27GCwLk00VT/GbRK858758rT3dlcj5bIFvg1rFABuBb51zmIzlkCzz9XHNyZ1r8YPR0Hz+oOQcBcFfeAFmesQFyVZzOgNy1UM5nC9zcFsgAfHOfv9z6Q7YAoDufFz8uz/Vx/q6lOdcKwAfoOq2xa4aqv9jv2zzyhQPkMjlbIFvgBrdABuAb/ATl5t14FvjKHzePq1XfXdfFk4pP6u9lhVcJwN26zgiQT5dl8Zu9XnFaC7syIHctlPPZAjeoBTIA36AnJjfrxrIAoNvUWkRVFD+olp18Na17jQG425QzuqnPFFXxRQFyXmndtU7OZwvcQBbIAHwDnYzclBvLAgnoPqmWrb9WrXudAXipmbrBz4pwui60sCuvtF6yTc5kCxy2BTIAH/YZyPXfMBZg5fK8XzwWPd0n1bDXDHTTg7yeAJzWSxpA5tUnFnY1WtiVX33qWijnswWunwUyAF8/W+eabkALtKDb2EIqhpdfF9BND/0wAThtB2l1ABc0rH6mqPUucn71qWuenM8WeF0tkAH4dTVvVn4jWgDQnfVsLpfVy4+pja876KZ2uJEAOG1Xkg7vIstDziutE6vkZLbAa2yBDMCvsUGzuhvTAp2NMa476KZWuQkAOG0uaXv1Ka+07pol57MFXp0FMgC/Ovvl0jewBTqg+/iN0tSbEIC7pktffcorrbvWyflsgWu0QAbgazTUyxH78Ce+urrWHw22NbTZG6w02/V8tT8vyqqvpS8KU/2Nm3o2raYbvWZlNttZ2/ylj5T7bE74cmrNsljgWnejOkxr3QIA3DWfvfrESuvBwN5FPtsVyPmbxwKnPtesbG9dHKct/rvvXz+f5nP6tbFABuBXacf3fqYZrE83T5RNc6KommNV06wvmnKolbQGtmVVlJ7We5nFYhEqJF03rIEpCvhV2czrsrwg8Qs7i9nF/nznhV/6yD0ZlK/h/LyS3aiuQe3rJnILAvCSrXRR549MLFnkxs6c+tz59dlW9Zamrk6WRXmP+rHjhV4kVw8VG14VlbL6aMhXm6a5oP7tyysrk6dPvSdv+vJqz2wG4FdgQUD3zunlb5jPihNC2buqfl92FLJGcK2qXrNoFhV5AXCj1aUVIGugO+81VX9RAsQ9CBIiXTZFowu8dJAGuMuy2lgsmj8ZVM1zH//AkRdeQVNv2SKvdjeqwzTMrQ7AXdvq5sgfmega5QbI/3f/w/mH6t7gz6vbOdk0daM5/oAH4C74q6BFihEj6JBq55fiN2VTnhUwn/nb/+3abwfp/PtyLRCN+3KL3Z7yv/CZjXsX24tvaOreXQFthazVotSWhMLhXlErXcmNBYDnxbzoy0zKGtiWco3dalUtEK50uUumlkAt+WIhebxi5QFiZA28Y6HFot7qV8MvLaYXX7pdPeNkY4wflFlORtPcdNHtBsDdE6SLO7z6xFef8kcmuuZ53fMf/czWg+V8+l1Vr/cgTm6jXqpS/4UPQFodkABWCNvQe1VtvxXAOKCzhvVMplbn16uKi01/7Z//4k+Uz7/ujb/FKrCO/hY7ptf0cFpvt+796WaxGLhyvNdFHE/W129KDSebp1sJjC0tQegu73FV9QXY8/ai1nVezsUErIkJ6Ch6uicWTV1LvqoXpgcHG5951iz+qLfY/t3bAYgT0H1Sh35dXxdSfa9LuN0B+ACj2kpr8fJHJg4w0GtB/u//yeXvWdTNO9S9aJRO/ZM6G9xdwBb9FWPNkCzUchMCAEPSKJ0Amf5N9Er04HlYOQb5FvP6//r4B47+y1g4R9dggT0AcQ1lbhuRn/vUhT/dFIM3z+rFoC/AnQtw8VLnQkLAlYdEN4auxXgB94SaATDhOQi7NwtmO2A7r9UhEO/SWp6A2oDZIHhh88dq0x/Np5e/fCsBcbsxRth3+Ukd/y0Bun4eiTMAp9Y4MN2utP6n/0dx5ld+vjx7oGRmfF0LPPW/NaPnz279gID2QXmy7XCzpsbKsidsXajvCfO8Ws4S+B4DtAxJV3J1BbJ4xQbE5j3bsHQYrwbEe73q+bVy9V/83PvKi1+3UVlgr4eWbVIUH/3MuWPF9srbNP96pwMnF6oPN5vXKiANQ8aA8O5Q9F6ePVQKlBl2DvZOARp7M2RNDN3B2eeCoROg0xYH8EBVmabXDAb93/v4T4++7LSbLW5B9zruRnWYNsoA/Iqsnz8y8YrMFgr9wj+88qNKnSDXTnHJmy1Z/rk7t2s8LbnShDB9lYbicDSCCvvV6J5mz9TtuDe8CE6zyZvnXAuoexf6Ryb//NRfLS8lRXNyHwtkD7hjlI/88sU3NYvyLVoOpctproVSfQPGMPgbhAFjX3Eltp4KGRiWBOPICk30gEsWY+EuC6DhOT2A8aKMnjRD1mUEc/Oq4UurXfc2n2yeN3XI8z3I066qzcl49V+del+5SRtu9ADoHuZuVIdpnwzAr976ugHPCgTOqOP/orSdyXtaH2zTj/6jS98pHGWPc83vMr0lh8FH6ZSmXyr1IK/loO2IHdpsXlhebQDjXf14yjjFafAFXAAzHVdT9b72i+8f/9NUJqf3WiADcLTJez/z7GR9Z/Wb6kVxJyS9tKsRlbmGWri0epr2mEdbBUAeDMJQs5YtmPdqcirX6EL2i9FB2i786OWG6jTeo5uh10fvoqeLOeiIMg7wALOeNhsD8sVCT54BmHUDyKPmIaBX45UHneF3Z6f4vV/+6NHfS2k3ShrQ3amKJ3VM75LVDnU3qsO0SQbg1976ugkMkHUn5Y9MJOb92X986c29uvc9tbzZ8KaF7j4F92oBzFL7E9QLzes2lfzhWv80v6u8q9G8sPqbuAI6BW85Fk0ZwBvZkGYNl17oKHtKLP7D3/mpI/+n68nxXgssdd572bcH5aefeunoaDH8s5pknWgxsrxVrkiBb5zjDQDKOoUwDOwxS6d0OWuVs+2yEflzXcS8liT4FR0P2vhCaMA6ADqrGPqhXJS1p9CkPsoD0FKhBQ+LqLsX45BHBu86DE0D0AGstXDrP10eDb/y2feVsyBzeL8d0H388Fpy49ScAfj1Pxe6AW+7j0yc+nwznH1t+15h4rAYBRvP5rNv1qDwGv0UK5dZVGWgqzygDBT7K5BaHSoMxhkI2Eve0hp8EwJbGs5uOdFEQB+1AeBWVGq1QkvrvHqNpo2/8Hf+xuRP4Oew1wJmuL3k24cSwLf3LbqGBgz3Mg/rABvy8mctCAl1rdZ137xVAJph5eC9MvYc+IgC4gSAHDplwvxvYKDfBPQTPG3ygHhYhMU8L3RuGlZUEyNvdN1dXhZAZ65Y94bAHc9bbY8euG6SS0fGl3/r1Pvuu+5D0jfDblRuw8OIMwAfhtWtztN4yAKJW+YjE4Du9IWNtwoV71ZfcS9HyQhcmNcN01YALGs/4TGKpqFmebsALQTWL9O/2MLOsBeBebbSIcBmVTSvGgVIVgcl/1iAq75GvVISAlgLeOUtx7Rhddmrnv34+1f/l0Q0JxMLLBkxod8WScB30Iz+nC7TAUCny1SrD7iGwqIo8l1DOEgfFOMVg7vzCMIO1Hr9qJlNGcbuC5gDE/AGmAFk0g7YyCykAB6gHB4IwpA47QmeOV46/HngRw97t73yzqt688L5y//us6defxC+2Xaj2rXT9U9lAL7+Nj+gxtOCnjMCrN/Ug+zpJ95+c+3s9AufvvJN6j3eokf8EUO+AlKtJ2EhpxwJgbDleXjXvBpAi6fKA7sNL/fU1ZkjQCeiUTy5qqLj3rKISg/+GmUTXatXtOIq6IwgHb3enoE2QK761IdpPwQ83tbQNZsPWf9Vb2z/r3//oyeebVk50VrgtgVgwHcs8NW7cP1KICYv1Wzhrxm1FooJgWEDJg4HillXpSDQtIvQATsspNKFKC+0Mk9VFy8XpoO6AB1ZL48MICtfWUPNeioVSKNX7bG24EmbV2yet546xVJzGTdSobnkeYoNXja03bTT+tx9W5OVy//u9fCEb+bdqIK9Duc3A/Dh2P0aar0pVlqz13x/svZdclqP2wIp6xHkfao/ERD7ELOmYkP/xDSVyTGEZkEwCVLSHwHagLQIQkyb/6VPqucL7dgnkAWUBc5hCFp9HjqF1bvltFTLQJ36GaYmRIJSejFJzaiv9MvmWQ3K/c7Hf+r+l0wk/5gFosFuL2t88JPNuOhffkdVVyscOYDnw8TBKw2eKunADx5qAEbALQma9TDvOSEFsA5gSzoAteqxC52bwC/QEAPYbXHdFDw5anhbC6wYEg83Uasjeuf2ylKSDuX3n7teFOWlzd898n9/9rOvfk442Rjjpt6NqrX3ISQyAB+C0V9Zle1HJlT8hlhpDfiWw/F396pqNfQk2p+AVcz2IB97ltjFaN8A80DJ2nSWpqrcDN4DafsMgTZ9DMGA2gC8O/QnL1gP/KGfQi/ecKjNCrZesgay2807kJFqlWPTD3Vn5i1Xzw2rzX916iffcCWUvL1/2xNyu5jhve/9rcGRtz3yrUJcA19NiPAiug23lI2Gecu5rpfgDctT1dXExcaQMUO6Aai1k1Vp07ut98nK6DCcjB3TNPm5XOd+r1+hL5SDuhsAV4CaetwTh9v1xslPZ+GVJbxo87h1UbsmvSTM/lkMaxtwu2duN0vd/9onPrj6/7rsy4m/9rXmsQtbxY+roidV7pbbGOPl2OK1kM0A/FpY8frrUEdwVsO4Z3QPf3F9Upx++6PXd3OQU59pJlvTje9qmmqVezoMIYdRsjjce2B/bh5wNFkEXw1KS4v6kdDHqd+yPiiCuN69YLmW0LkEaj1QpmYO2d7IsIx51wLxFripi6HpNHa8BrxreepaYHrmF9+/9v+53ts1PvCE3aoG4T1fvbf7IGCnFX/CXoMnXRUCMt1Z+iiRPfxxAWGD9MIlj7fbE/AGuhZOCbShmz4Da3Rw8QUvOoB2AMS+9IdtKIMXLaDcY3/AO+gT3scbwoax9W4w4M3NsjuEzQOmVLYAbuAfwTyko65wk5X9r3ziAyt/4LRriZ8735zUk+tvqOM5yWjUTM8ixD7HfS06ssyyBTIAL9vjZsmtDItiRauL1/ShPg27nhnMiycefvj6zRv/3FMbb583C/VdIdB/2MM+oKY+x4BUT+XqLxoDuqR/Ye8qgHRgo2os5Aw9H/ircjZ3q5E43vnVK0h4u/RDeMRh0afP5wbvNzZARmB+GE3wWQwKakfVQuFQp/exsZT1RfSR5aI++/EPHv03Tr8d4z0AcCsb4Wc+tXGvhp3f4qAoKLE5WR/OJfbjB5y5oPWC+sJWGcv71RcWar0zF54cJciFRQCMuaC4wHdpeNFhsZUJxR8JaVokDFvbDWNeNHdB8K5DmV1vm3wAWFZSI4OHG3SHYfN5OZ+HOV8AnoAMXrp78tBUVjT2oV78+0996Ng5aNcSvnqu+Q0dyOPIYhyeDhjIUh22JSdAPFe6nV5CMIerWiAD8FXNc0MxV7T7+4rGyo5MwvWfNk73wacfebD8YEp7vdI/+9Tm/XIxvwn99Bu82hg6m7AvgYNgGCYOPZEmcOVMiKP/bKPbgqeA0/YP8O5JoN16sAJRcxKsKxHAgqK2PmUXkNXXsXDUgJa0HbPqaDQ6hxdNW2hBX1tq0S8aONOf7joXFAmOTr/6g7/7k6v/HsLtGILxbsEj56PSHNaFC7p/ti+Wl44em60str6xWiwmAcTi0yNfMKpGWmC1+xrRXC5m354kbTgX0JLM7jwtoMMFbHO0zHhoYzaXMRCPQJi6iQ7owYMOoA0Y08ZdTxjPWu8fy6teCHi5kBu9J1w3vFscLnS7oC3tIM2NEYAXsA7pcGfpOMNFb+0JvKquty9++ci/vZb54K+db/6mdHxadVvvo2fbAwM8PHOA2L3kA4Vvc0YG4Bv7AsDTHQl4V+XpMs3DAydhv+tfl/0H3/JQ+ekg8fr9fuSpre+q6+mEPkdecKV3KfB0236JmVfrb7jXw+1v/QqAGL1hdS0a3ePdSQWN+OmoAlATBw/X9xkANLUuWmXtS21a52J9kXnFoSy7ZoHs7Y5aLWCrTTPVObCHfXvDwyqMqBw8azWNldrynuGpst/+xN889hWTu81+4qV1cx/1z3zq/Prqymh1Z7o4Xs97a2VvoVsIYItzuUJMvENAVuv6Sq18ZoWgDfEaSPmF1euLzhB0kFV5YEWYZV6neZVBLx5mfPKzp8wR/mBiRDzrIOPbTqYAzo2T0g20DUR9WFybY9lwDsPYpPV+r54gGSbHe3Yvei+AB2CnIbtAHZrl89vk1Lb/9IkPrP9B4Oz/a0PPdfEfdMOsdzseLpqrYLEpdEA2MNa9yrB1DsECGYBvvCuBh0y8XIaYAWC/5gFfT+/XagPnqnj7I/eXZ/bjvxa0n/v4hePTSf/P8qDPV9Lwfnkgt4d5ARvg6Q/h/jAfHrd3p6Ssv5KsgbH6P3+gp5+h66k0YtZtK0629pm3enyUzzYoss2D2ATattq1xVm8Wxw8XD0YyDkJMB/rj7sGWh8ob9rmmg2/A4ArX66tHPnfb5ZtdLt2ejV5t9Or0XEoZQHdwWx8ZzGY3qOLsj+dzXV5amnAQA9dsbMHcAkAqIZVwhQvJ16hN+jXxmf3KHsq1Bd8Tb6vLVy0yYZeNwrliqY/CGbSrlaNNncWeGruWOUFgFz40mjzxnEutk9dagGxnlQ1QjQPe0XraTV43bTPHlTB2ypcyHN9oRCvW0HYFhupppOmHX08cAZtNEPT9DW3MtWVzLBO8Mx5RUrlNXcTh8xrDVdr0qd24G70gCB53Rx6H3kxe0CL0f7os599x4E7Zam2z+mmW98Pab8e+HIQdExDmS2ajrnzXe9Yh5cBGSvlcJgWAHTxcicC3ZE9sofWpICbpvdrK3zdtV/43aebJx59uDy7n8yrpdXj6g31dGadCZ8o7Wmbq7mebGN/YurpB+pqp7dotIc9Q8bqYORiar2WBtS0dUZYTTWv5rr/1b/Rp9gKafo+68cqqAGgFWnJsvg9XqHUy0UCbC28Eqiy6x6edwRrqZVuiaik9usIr26oP1VfpneYmE/WK0uqSzaSQxCn6eT2qgMrsLeKiaeR8l6xtX35MVH+tf5uq3DTAfBHP9McW2ydf0jftDw2rbZ08nTuuegszAR6tpbKhpTl9QKCus0YPl6U06mATDRuvPl8W9do8DQBZwIAFedZeUndLnCRAVS7YJHhutZN1+qHNtuZa3WzLk8DZZt7VX3IhnYBtro4Bdjw4HARG1+6AVHapRZq6Bnwl3esFhr0oScuxgpeM6V11Qq4mcdRUuAMSeCrESZunDg0XnNs0i0DRZCWrNI8z9eD3uDkQw+r2H+kbDcw9Cypx6Fz82Avq0R5bxi8NE3+agEdGjfbBWQeLfSHh8zQNfbIIVvg9bYA1+FYk1Or+sPT7YbU403TXTnyzte1e1LTqp8T6Yn95F4trRlUY/UI6hg0WMtD/GJL4KjFngJX9XeNdeJ6CijjPa/OBjL9lHxVvaakm4yHe0GlMJU7eWT3rqa2mD6z7ScXGtbWntGhv1RnNFdfxb4ETIXZSKLK1eqb7Fiif6vVJ2qCORzloLfSzFh3Ym8e0RhVDwALXCk37GnoXEPg9qAgFnKLUnPUiKpTmtXN+nvf2wyuZWrs1drzRiofDHojteiAtnz4f/rqanF+9WFhX/saDEPEPI1pFwtdaGGDCtJ8xJ7Hq0oeqzDHXhkSkBiGwK+qgS4NDabYQyWLGHSpJkETFGYXVvRNp3ryAx3bAFiT97hlmAeNLG0Kw9cGLK2NedLU/WBgi8fKcDj5NB208VQKEAdw9th56PdaaRrlAXFoyDrP7eM80Q3+JcNQ9uLIhbV/feqUPfh6kSKsem6e5u45CHhb4WtI0Jgl48Yy3kjnAfQcB2B8qwNyHoK+hgvnNRThOtYGOga6gC+bPvkd7yCaVhfu/l0ZeF05rlu/hr2sZF6XRVlagPVtxWymp2taEfoiRriod6D8LOnrerFvAKgZEg6xTaUVckw1ncYDOkCuPlDBe7bFTLe7+qLQbwWHQwOLkvF+bjemjwl6/WGfcsEcPqRtOwBKv4EwFbV9pmUCqCupcUdx6DNVfj778j/48PE/DBK3x6+dhBv9UD/0jzYfkC/5ID20X1i02cdPdW+1wfgRmFtiIhjmKQRU8QKda863Yn/nRAmgzaVhF5OUuAcJMO+C9S6fegLwhts6AHi4YO1ired43tYcu9C4L6SLIW9d8J1zgNw2GiNA20MGN4bJA9qmSD/MZZN3z9npxPCoEyAnH+olFcBaT9Ds9Pr84MrW89BW7jm2VfxhMX//B4qvqHM5yZF4R+Sdj+VF986HuBuoLKV7WeT24yGcyrs+tbcF41sNkDMA+1l+fWNWMAO4a5rbBYQJDrwht//v0jWrcl4mpXdLtrxe8eSb7y9/tct/pfnPf77p/ZtnLr59pP6C0SI9PNjDvbzaSlNjtlaEnpD+DDhOQ7WYBZrI1qdZLOcgjpqhSyrtoVwgWO8IvIN+3ZJiBJ3SyDvBgLatSwlOT1oPafoXwBYwXWiZmCLD7oEG6qaqj6w5RqHPM8dJs3eqW4tJ5QDRW1a9+Uuf/MDx31bytgkBFW7Qw33qqWb0R/X0zaxc1oVRz3SytBCp6OtC2tmZlyO1nhOv08hKP315Q/MO+gqBzirvvDX+dKjhIV2ICnGY08EXknnOGgaR8pILerrY7kHjYtHCBAGzKuHKt8lMDffwnhyq4OuJkTSeNB61LRUU2Nf2aIBpYWsFsxok4Catv/A0yitEw6GGh7SV8y6wq0rVCeDzRDkTE3jmGDVkLpq+oCRgDR6tLlzxFhoe5xUjn1OFh3zwjKlPx8DdoKEiaOiXrA0ilfPpPTuj3t0A9cXzV4r3/OjkPXpIPqlC7RO/dywY0Dsi+AcFM0jK7BBMj/PFS9kpD5sN+dO5hs7xscJ6qj9iHWMO2QJ7LOCvDa0JeLmGCH4Nh9zevNP3k015B6WX9C+KT2s++Ddfq/ng3/kdPYcfGSy0M3MzGGpZh5wD3QPsG09fQL+ifkhrU7QlwWAw1X0y0JjyTEfOjdOoJ5oKAeU4qD8RW51DuI178oAXzYyvns/xhhfysIejAaNuzWI6U184KHqiaRWW3YAsTuVDL5XKaNiZfkSv8er2VZ9Cv0vfB21ez4TDcmrYH0H36Eyiaoataqk05M22l7Nyu9HGRGJo8aoAWetUNMquPntWaUb+9gr0bTdkYNeXjc2NRwQIYwO6OAQThpXx6gRAAkCe2DgALgaGl7kYuBDk4S3II8c1xLVkT3Q64aNRv9kRD4BGB3ILAWJPwzrpUyZDO/zvDamDJzXATTLRYlJrwfQqBX8qXb5oy4EbOsM/Xpe33Qpr7qXqjfSusZ5MdXHWU72va8cQhncCaId6lo498cbDPDcdDsAdPGtAFQ/bPW80WB0aHVDHJEDX8di7wRzbvPgzb5rc85e+Y/jPkEu9X/Jm4JjogjC8FEQRe6Uh1ZWmXZ/TiP3d49lNCMjZA/Yz+trEet/UFlPh6YZ1jOEa7mpPgTJNX00OHrKE9Nrnmo9k43V+zg7r4u0Pv0abdHz4E5e/UXvcqTohqFYv9QTC7kTUVfRyaQAd0mxWCVzbW1LfVSi1e56FoTrCBV6x5OptAWlv0MynM+uX6EcX8nB7gln6Sq3Joi/Vw3rwilFeqyz9bE9TyJWAnjydK/O5dW+mfiUMa9s0HyNscpL0SQbrk+iXrY+OQ+f0gbvD5ZJbhJHAT33o6L8Mrb09fnHTbrgA+G5vbz6qrxaofTptWtpc62LRddPoSU1z9gJCvE+lZ72BhnNnOoE6+cKuRheHrj6N14C4+qdC0iBoKxo9b1U8GzIcw7Cz+m7mKPRJPw3VKpaHKYoAVAumkNFON3o062uH8rA7FkAlmWYAWCpuDdcu4pJXK6L0siystHfu9BTIfM2wWKG6YqZSXOxa5KALX2Boq5bjMLEWieFpVzN5wQPXH04R9dkFrUMDOG3Y3B4eGJKia+CplPnqXjMU0k/nqnPY0xw2bfXhI5aWAb7EeryY68OhQxZr9cvv+7Zh+y6jdzi0l9AeaJsI9CXeLumaU3RgSyr3EIIqa48EXZZYNrQ/VloTbO5YR8WrE4Bz2lkGifx7K1mA0R9WMI/ja0NcI9dyzv3aTmXTsvulkfVyzudSTUNLF0ODXSdnveIL4j+RyrzS9GJebzNpy3DQSHg2lbfZE/g1pfo+veeAe9wbC0DnAsRyyLidhXoxLQfqeayPU5+zM5/KO9aQ8476RrVTC1mLcqxxYPV1FFG3YfdYOdaC5dm0sP195MKqvKTl7I7G2r1KdUgYRfqjzy3UMikTwFK/7kc+B4EXTd+rlTmS16sbygP4aqv1f/Q/vItMv85cc6/PMHoA8ND62+M3dl83zsECvpcvbz4qb1SXAxeFnuY0SlHEpy2GSAZ66gJJdGprnWNdE3o+02I7RUW9A8QJoHky41LRuEavr6c1XXSzwUDFdEFxoUivrdhTqQDi0qOyMojWyUsTdUoHo8kLedN4jZQllLXmOewSDnPSAmwtIpzrg7zcewxdS1KvMfEMANg2dZ/bp8DrruR9a8cYFkGpLvQApmEeRuu1bfh4NFjRiBJz08qrPLFWGGo+S+1QWbm1ap8eBjCCrAQYA/IMndtKQwF7X6sOpVyvUGmWWMGG0/WgIdTXZR8An5uKeZ3/6vvHT+r47rFOhpuLAp2Aki59P1qn2J7s1cqknWJasEv3zs4bxOg+w40MWbMND+2kTLqgq6sj1Z/TN4cFDHTl5fLaUPquLq338+txekR+vTjPrnMJdOmpnoPSrsP1uw6Tjz92jestAn245G+96YHyYy77SuOdXu/KSq9/dD7baWY9fXlQiuhQFvNpORpNFrNaw8zgmd7wKHc0oBuD+iWNvKmr4Y5Xv8FUnP60KZZGCTUubXfK5kw+gPo8gLCa9Xr1UItCdfNofBBYpgz3Ew5JU06tfwJYCdqSV16twBaQlTZ9xtA8bD0Dh/J4Iuq/evS1AthtPRBIGbtjqedCv7xvtT105gM1UrPFt1m4oQD4pzXnu7F58S06MxXDFTqnOsF6tUgnX+dFQKWleupgp/OZDT0jY8Mg4s0iDRC0+Q3lBWtcGLV49vTFiUZekW2jZsMm0mGXQgDuorIV+gPhLzPOs6I3Enjr6gX4AWMbctG1Ql9vgBy3hNOOVZpcBd9ok4a0d3SrajiYoW3QnFgACT7YEDbXsIZ3TAcrkjnGkToWxUbvVwbaYThIxyGW3QSKjM9bCFKrtEAWbzxeusPeiloUwFsvDjJkrkap3lEcApI37947wP6N39C79967eu9BLwEw8w4qUMKvyG2wk6FcSoPp9IPiVkFMUN5l9+M5DRkLSlgHSEH9Ld2tykdyEJWse8kQZCfOoR0fcbcjtUL554azAKAL2B7R5wd8PcBSI7k4OPEvI3DuU+BM06jxvN8H3WvF+WmVpjMS4HMf6To79XtPN7/95ofLX09lX2567c6tjdmlAetgNC+7rT0IVpqdZkcjvvIP6h3zQDV1Vk4Go2ZzulPrK4LyKIfNTrFT6NPj5Uyg2u9PDUjlIZfz/lQvIg20jqYpRisTA3K2kdS3VrWDAVsHqB6GvOlfQt9rQCqvgDngajEXWOOBS66SnsZcH2Xk86j/FY/bekd5ed/qM6c1YK++WwI6Bt19M92PWIw9FGaVHKpazko1qqqtl2ubm13+hgFgwHfUXHkTQMQ8BMCil8d1wtJLmxOr0We2ClfMraJpzwVzF3JWxQubYgDaeJ5hLsOcIp3wAOSS47rR3cFFoCc/krqYSFNGF51Gcm2YW7ipIRPxuSDjQwCeli1U0MOAPRjgeQmgg0455rofAGnl5WWzJIzyNqcb61Wj9BauRniEzz7kghfLUyhHpCFwhqalAP2azwngDYgTtDNNs9Dcih4pTTcnkHIqw2IHf3BZMA+tpxK1HdDXA4GOS/94pUqYrPIaHMK7/t5vHz8lw1mgUgJ5OhACnYnFITKmyznJ41ik7Q89bwpjpqXFQuSpokt3ncStTBSibWkbPJ3qAGQ9WHlVwsABsg7AnvZjdfkcH74FWEy1Km+XIWbuMS4CrkXOmcfWSk7uAcHl/Prwaxlxp6Xprnwq41W0MiLEW6O9Pk1XFOTBgetKPdXnnn6uOfPwveXZyHrZ0eSP79p4abx1rGq2NdilBVWLLd3XK5rO3Q5N0IKzQaVRs81tdSmabipWtPBqW6/xasB6ulP1WJBGX9bfKRujl+WWXOMVLRGfzXfKhfpO+RnFtvoum41rRtW2vG3eF9acuuqYSv/QvgOsmjTgOFX32ddaGvU9c41Ka/pPC7jq6Y4m+PSwJE9ZtGHTk24Bvkbf5GVruLyvX3V7Cpr/lbPOp90UtKeQ6lBfuVPMNiDcToFL+4YIw+rCPRoXYQrVgJGhZ+FYDTDqlAp0uR1CHm8TubBIgCFp6LxJPhOIgZlBDjpy5PkN+cBDrz4aYpcDXnMEQAN+0tB2n9QCQKKDIW4NYe927yYHRzLSSbsNnK3dIgpw1eEzX21pYaKe9uzCU4MoFfmW1DgR87OUoR7p1itGOi68f03+aHKFdrNaG/FA1+IH8cnbcejBgCHpGeCrq9xkFHPRu+fLkDqA/p6/PPnreui4l7Lem9BxEDwOmqU7kJc6rrRDi+xXFLnuWLXpSNMQXMbSZKKAXRUQY+h2milYcxU4n7bzp1EzW7gjO1hH363X9eb49bcAoLt+tCjuf0NRvOGO8N6uX4cOfLQiPYdXa5XLIePlU1q3bJdHGUI3NlqkU8avGS5La68SRg+MdW0A9BtPP727fwHlX07Qu/r1uNi4uFjVbLD8z7oazXvDzYWGzGblaDEb9kbz6WJzUY2Gs8VUQ1z15kJdqWLNpg2Hs6GWHzfltopqCY1wWK96TI22I1o9nE30p30ENRc8lB88wgWeqxtbDMttzY/pTzq3ptvq9XYWxEPlWRjTaL5Zi6y0mlWdDn2ofINBNRB9MB+shHhWD+TiTsQfyE1pZvD5U3cuWp93qbQYW0us63qmxTyXX45dbgVZv3YO9Vg++MmLd+gFopO7jQCZACkNWQhceFDCOzXPVFdGy9PiK5bd453adG0ENuaIBUDaJxzQCqCI7rA8PwA8+oLnzIIreasxAHDwUBVWAgJ64RaErltLYB/y1It+3lDSyA33nx4ellcPur4A+EEeTxVZyppnbUAMRWM4eNaqx1cZcizmveMtO3AjShDPPHKBNXEghl8WNxhPx0M8V1le39JouuJB8U1v6t37vd86/BdeyBofFXjnAQ+6x7DTNHkPXbrnPUYuTXu5lA7fQ9oep9EY6MYjrT/K+NMQ+XAWQonUs3W6l211GWG3XMyal8xZ9nJtG16DRF4FvWtEhpf58MGRtQhezuJEdC6Y7vnwfLgbd8+V51F1tfPn5b3KbpzyXedB+vZpbtt8u67L4lfe/GD5nm4d15rXuqbypz5e3DEeXOnNNJU6GDbNZrPFh4HlSE4aDc9bNbOBdgcsNHSwuVkMj6rLq8b1fGdbbxSNm8lkU9ITdSN6U2K2pbc1xvRdzA8rzdKYLa2nmehVoU3hqhxoedvzuTzrvjxtbU2wos9Cyf2VfsvIz1Zqm7T6Pb3RNBqPNPsmr1dBU75aaKqyq0W5gozCXPosEX80KldOVkdyynlXeHt214eP/eEpOfipzK2eXjLIYRzsqc83w8tfvfJG7aBo3m/ahgB0Gu5YMNQM8BKmmgsa2twEoMa8kM9TANa2zD64luZJa2GBLQJABr7GZasArkGfg2jQrc6c4WfVBVin4BnAF9AE8HcB28sRIy9ss+FqB2noDtBOC0PsAHUAesqoqzBgh5a2ibZqqEdzuawQDMPmLmOl9OS5rEf1GxhLqQM2+qXHgtU1KD70Yytf0DzPvVwADlQ8ve/XkVDOL5R4EkyV/9htJYbzkPW0y7ySuO0AUSalNqSHburiL1HqNCc5Hx0+HA3NgmK7y5M8yTarRCsrutcbCqspbgwnvMz4dgdgrjPmdAHe/baD7JqzvQ6cofKcgvYcWcaZ4fy0vEh2HR7vSu+fcrk0RhK90DxtsX68CZFlMt4G16Gir+rLSY+f+o3+o6O3H1loVJl6R3ovWF2OPa/vTENt0GYCYz3PFFfigO5osCnAntjlDXhTtmBOfeq3dQTmY+IpOexvltO5QF3gLBwvJsLzQsPfs/nYdAjdRZjwMF8WYw2Hb5bVilak6+UNudiTkvR2nM0lTZhruBzwbsoVTZVtV4CxVs0I3IlHzbh56fLHf+H+l4L07fN76HPAG2dfuKPpTeTK7YJLMD8T9swYEDPHGs79oh5qfoGLjXnegZ7+ALKpwEtzFMy76oJElkUEAkSBog3bsoBDnrSBt4abkaO+gTbDCIodxB1gFdesIYCu4RU9f1JGCxe2Z1VfixVCGzVULL63F4+WOjWawvCvyQDWGg22oCHw4PGGrH6berTSBXSA2Lxjw08DdNM0bT1xijPk06pRIoA4nr8WjjGcquF4VkgT1ByOwYCaUv/1D4x+AvCFh1XlIVvwDiNYOtAO+uWgXc7LuazTPR8N1MqnZV3GY++sLB8VWaQfK6fYHxi8DAAbuxUjpfxwNYgcdREv8RMWhTmW9Hg8TXHneV0e27AjhXM40ALYyOZ05S0x1NwGPy9+UcTYroMohN0tj2zkezETiRmXWZJPdJB0nqcjeylyPakM5TykaWg0iZAegl9jRtst+ymtjD6jldGnrcDL/Dl96on546eajQvHLkw2tcizt62+75iWO23rmf0orRbQ7dRNT4uLFwLksYbzNeWr3a7GxZVe3aworZ6gmGlfgyPqk4TcFjaujKu1Vb008RJjxBvl9sXVYm1VS0YksyKZnUtlubo6WvQ1x3Zhulmu4kXLR1lZk/xUW2toJXat9shHKBerV/TecVmOVsfNdL6pfRHKSmtgy6NHx1qSIstpUFJj2fpgg0bm1I5SoD7U+PNo609dDK25vX792jmUo8b73fyTK9+gLxmNAC88ObxIYibtAS+nhWFlhqKXvc8gH94f87J+MICR6+31AO4A6IEPAAPaQaeBsToGwD0MI4e24HGrMbaIIMhy+83lHQcPOrSHHiUAurfPgRlAh+by6EAWME89aW8nchwz+Z1tTcUIn9FFm3xIHT5aQju73QEcQliohp7w6nSgvuNto3u/51tHX/RSBr6xgyBKO59QYveXSnf7kl36y0119djBdHS7DO30tlKP5RXDp5NLeSmfNI2lvS5jZSHE4DyvKwVyl3Vxz1tRFTCdkUmEDp0XC/5AE3J7f28XDxjQ5WP2a/KClkDXTYLRDgpueGTcwEp6lmKWdl6Ut+sXppcnrXDV61qKOJ+pzEHpoG2pSYGUNsyFFHvzEtJZPfQ/8WoWZQmE++9YfX507oVetTKxK7HY3izLlcldzdr4xfJF+ZH9O3rVenm8fvGlF4vV+6tyR3zaMNFbTBcEdcOVUG6hryQMBZ4rol+6pPMkD9p5yAPg8lus7JG1I8X29HKjUQt92CboQwY+zkoht3t2LqQ1uqFyYag8yOzKD9eLcmMDL5qV7WW5fvHK+VOnHg7j1Ea9fX4O1QPe/oOLq3pFdjDqDxfs8VLpam16tlzehnn5suBMGxbHxUeSiC9zM+6SDAPj3cUdXcyrDQAXvEjAS3+i4wvZMni7mABGbg/mV5WWblbzceLxIOEFD1ugLjBk0RK3EkH83qpAGjkuYnaL4QJ1PjJ6hUjeJwCpFQ+Kl5i66IIL4KDsw+jhASKsyBYPL1r7jtgxq+3E6EZveEihnkDXqmphOkBPjIcuMBCNB5AwghDqmhV//h2jf2IGsB+1Om12UL/0C5+OFDH+KPZ1iiyV98zVyu2nj3p1cEuVQXNZS3sGsZi2SD/ugXj9+8l7ceJ0mJo88tZlKF4qiy1MQHFUbnyleSONAB2bAcjEXw+QrdAt8sPxcnnbt3U1qcSxR3OFXtyNJjljEBO6dB5m7AIw7r4/XqTVI4LRWsZuMTtnynJOu2nPe0ypg9Lw0EGzuca8+VTsELNEp0ASJHZSi7LYpOPtCfllJU+fKue/IT/hv/hYMTh29BnrFTaL+/WW0HPVTGua6sn9WtKs9FEt2JzMyp1zYZ0llWwK5qrNF1nsbFbqbx+3Xm9n54XizvGJcksbeszPSVCL4IrinCZnBdrHdBYF2ovehWKghykK9Oiwg/ddjuV9bwvEjwlNLg/D9+R4FUr7EZZbG/K2Bcx1eUWmYmBcw9PS1ZNXTuiXG5u3K/ja8ZsVDulHS+LuFsbWtjuKgG3K0PJQOLPQCmiGkJVXzOsz8kOntmJ1scOZ1w2ijTeI8QYBY03aGujN9Dhm+KZxFrZpwwNkBbGWFiutMWDe/9Fa+VkdgA2AEk7p4rAV1GzuovfSALkwNCy+6gll3atdLDakwzxgAZ5eK7JXmwR0engQiCOvlgF8XOQOtrxeBVBu6NPV6KfOMO3NcWpImMORB86iqwCwFqt9aYwMQKtdQlhgpvueZY0BaAMtjBBQRqI2oqBnUqVn5X/zV478hF4ruA8GgRrTNATveEJrAt9lrFDnJ9XhrLSs09K4q2+PDgnYyfVCnTxtdHBEpNvhob/taL0sRIIqc7Al68dLmkDeRXlk6wbzkpFzBvIx08bisU8vG4F4cDBm1fWtGPieLq8MMczMsWILPwdL51cZ42EETyPQDdjU6R6LFE3dJuw6QI+fqyhgdUcVdl6iDj9HVJemyXvgocFHQ6yt6E/1Kk3WHkwj3cuavGcUe9PdFpH12H/8o+ZTjzxYfjARfVlJYRs1T0+dChtvCAvV6nuLZ7XoacjKrOLexTPPFeXbivPFs/fe24z0unBR/L7ob1RPele9WZzVuup+uXrsrPScLI4fPaEFUUX59Jefae5/4P7imPZDuHLpjlJOcXN0/rziutn6k0pgercdkmSbzYvsKX+uGlR3aC/nF4uNr/F+6LHF2sr5kmHrGV62RkAu68G0V461zEdbhsijXj+2rmHzi+XK6PL2L33ogdvu3V/Ojge/Pjx/3eIPf6JZ1QYvJ7VtoDaSYEiDqgO42vytQGmosRroPc3ZCph0oQDCQ1tMxWKrhdJAmA0t40ZKdiFZANwWY4lJGn0AOIDX024sKicPWtu0adyE8RMwUsPRNvSbetZ6nUfL+YWbAnHoADAgDsAaqGujDR4AmrmGywWKKEIWbxwvNMjLte4s/OJIKRf0co8GwBaQGkjD9wDAr2hcyIfGg4046t1gh67jYHEaIawa57ixW1h89n3fNnjHo28cfLYtpaPQ//apvaVD0x+8awnXKnutctTpnV0b70eLDUQmbat5viJ4h+dgS550KktdaUdrQC45r9f5xIQ9dXmnH9jLXndsl+tKY9KsCwCg9aBkf1HFTRWxgMqHmLlosDEG5vgsHY/G8kr7OYHc8iVrIdodFXsuwKjX5fwkug5UmEibMMldPbF8Wn9XVyzRttFl09hliP18wrdrTjRv5n6xleFHAT5BzX1Vi7KClu6vxgNjS06daqtaEvrSWwXMvxOs+KUvKf22IPfss4q/WYu7dn6/+uo5HJW3Fvfc8fvlV8+9sXnbW4vipa8W5WUNMR+5Q3223nI8f0mLYOV1n7+4EGgXxcal+8utK8/b4Y3X6uboalVe2rhb8fPl5sbd5fbmixomb5rJ6olmbaPY0etVccxoqXm3Vcavhet+0B/5+1+7pxyMj1PxbGdaDUZDecLhQtDkv15fE5AIfbU9M7eVgiYe4us7AC7gTACgkdEYtICZ2wFP1MuocxNwshVaWB1NHmCiHkCPIA/TFmUpKV3oBezE185qw8aB25gAuLZwA6wBVUAY8G5VKck3Ox2cAetdQA/gTDkH7DCvbYum4mtP5lWbhyvc1S41A80D61U/xeR9LhkPnTwBIPcGhHlu5rB5GNAIgOwkkC9P3rey9u7vXflnerK/zwrFHwm1hkrTLmMdJ4wYXMY7JchOc5lXE3un5vU6eMYLoO30qAMZ+0sqdFrKd/bVZF3GO9K0fNvBUl8URJfLRFLbCSPUlfOHApdFIMVuA2GBMYCMrB93K38DJfjYgS2m0ggiH0HoXgvhDlaD3QhJ2+1aEZ0yBETMj/OLKNLhOSnVY3XBwHgum9aT0loFaFPo5gM1sMTzc5qQ90368VqMRFq/ss5fKpzU3eFf0PjeE488XJ5Zkr9uGQNrHUFTAtb6axy0SXM47363AbQd5enTp6sT73+8OX6+qO57bvfIT0vwkXuL8rw87qL4HeUE3C/9flm86Y3FnfcUDcD91XNFc88d2o969P/Un3nvNzM63bGcit2GgUvjUMLPffz8ye2qP9aWxUsnYqFXjgJAmrdrq5B1gdTBK9aQqvZ4HA5HAkkNPQt05WqqfJAFyD1vAGR8DecKSAO465UmA/cA3tD0Z54iIO3etoN4KMOcL4u1hKXmTcqbRjCo4MsktF9dkQ1VKylAF+jDH+qfea4CeLzhFQBdZfUhCXm/eNxT0XUlasEZ27ctemyWrjlvA3YpMO8cINUQOIu+AHsF8rbdZjtUne78FRZxBUl+Z8V7f/joh48eqX5sl7abwvp0CoT0Ylg6KYG99ItsV2Y/2lKhq2WkbA8AduRpq18tqSwN6eZpm8uixsom+lKQWyrrsiiIoVvW8pHvdVhWP+hye3odyEDzPGpNnlgJ1wEdOQAZWQNk0i6MwCEEhlp5FYVv66avDbXNIsEfFwCRx0qnx2f0tlAQT4pZ2VYHZQNlN4FeJyptWVeQxl4ulXeaYm8fpNT25OGlNJd1Wsr3tMdJ01DV6oJuw9WK0UOzPKjs2X/8PxdPfPrny7NOu3lidVccTzwgB2/aHz1rM8mXvvRr5ec//+64e0IG3vT8ptdCSn9d08xbXDqy80btiybgWg7sYcom4yk1eLZ4rzZXajx5wQJqAE1eoOZeHWQB1OFQe6ppGzVkQhlAWhgm8K360xaQA/hyP0hJRNQA6tzmQ57w9X3LMGdsnqvmmftsyaZAvZQLHnOcd5V3HTx3lRZ+AsQLgW0AaXeVg8cNjSF0e3iwNHLBAwY0A/ijh2F4PWBoGFqbqmu7GtlmJrDXBjOhzWqIvGHzvKPHzatX2q7T2vmuJ1a/+S0nB/8jreWouCO8w/AbB0GnGT+I6ndvcLmUQ3nKpeHr0Vq+Ci45NOQ7ylLgog5u+lYkpsmj02W9w0Q+1Wdl28JBFzKQ9vBgKLiuLj/V63Km2pRFncaIuknHkOp02r621UEhCxjzlSc9yC0dj5d9rWMH3YlAl/ldDqk9Z0maG9gOVz/OJyYDnZPr1xlZjsXyMCWzVCblI0yIcktpL2cVGGf5J9bhNjbm1ymzn+2Xle7NpU3byw2Ug/RS1ueQ5YeefsuD5RMH6cj0W9cCewDwehzqs/c+p9ta397TVmasYKbO4YocQ4HvXMOmLNFL/7SIiIVadrtZjMeoLczm9WCBB93rry6gG/iO8FTxeJGXnEAa/fDYKs15DFNbWcWBxt6nYTg7lKF9oW3ImpcaPdhAB3zpFPXCHe0R+IXh8l0626wV+oAIfIbN4/B3A80AVnGYr9YxGPgKeG04PAyjDzWP7Met1/i0Unx3RTXD4Fphrc8e6viE7XoWrRfbDDlr4RrvBGhDrW/5xuF9jzww+Nscl1lPnZDf9MRO58ABEwcUM0Rg7/ld6tQidz/5r0dzvp38mCHyNnjFDqieX6pfBShjNCWQJe0y6TFRPuWRh2/lIw+aIYIlluVdZ2RZ1AJLUidmtXpiTAWe97LeDteJngM7ahqowNDvWNcbgLiKJ6oFT9D8PAapV/eLromGlk/cWRT33V1oYU4AX7TGy8UqSNOcP2uiiLov2vYYTT/2MpyVCj9us3hYZhs7dpdJlUOLeYucp8JmO/Qjg7I0TRZaGpQ3muuIvLY9HXmnu4puHnpqe+NLNzF/qLM/6nUlSUxZ2mPlmuJxFmUl7Jy8TSzQP4zj7J3TB8VAL/M8dSFrinZnZ6RLEm+Tp/0AmoAw3nCfV5ME1mHzb7xjcz9to3DJ1js7fJZLQ7rybvEKKYceyrpHrTfAa41cyyNmqFhAxoeICAJH0W1T8V5vR0BN3Wynpk9qa/WwgF53inbFwrPW3ubKGCgyZz2PHjkguaOXzTkkLeM28BeIS4ceAWxum6Fy2mTtjumBPoaE5677kI0+QGU8dB2ngbPExVOnNuUhgvr10SQeGmQsrWgOHjSL1xh+L+ohdL1CoBVYtBEzlN/y1vH7NAd8H+3wAOh4BwHNOoDIJE2jJWIhTUdSS/e8y3r+arHVmxRIwRaydZBRgVk6kV3iJbJOB3yt/Wq0l/X2u4y3rVuXH7DJxfIua7EKpDrMhrQBZmxjy+/kW7opCg8JMRnOQ0c3PD8nadnUdqT5fHmfW0gBOYatX+mQNR6uf/gAwMRu+wUOzXnxMNvrxekAsp0HjisqcV6q015PigptBbOEXB6lHFM7WJnylpQEOUhmH0tEAcrHcoqCvqjXxGLabGwConoc5ZEjmJ62cXtpxnJ+1IsqD0vpyEccvQQiteNnfu+Z5syb7y9/1Yj557awwKEAcKXdifXhSn02i2tvpI5D3qc+ZMneoFgdoCXA1yezzBtWtty2T20JROcG1lYufHpLK4/tTeIA6gF0BVgDgaiGufFYRSv0BpOue0BQcvZdjqF1WqE+A27tMk5NGu6NlgkgrvJqy5SRbQEsv4CuOjylAUoeCkQv9w6fB9mhDU2TtgK63QDUoR4aTFlh5bWYLDyADEYaaRSftuCNK61U2BDEhsRVD7o0Nk29SszCvLTUMwfe1zD1j33/0XetrZbvQgzh9mY3C0MVPWgJXrHyxtIPHV9kmRw/8ExPpKR850XWUrQvz/VHJbTD5FwpfGgiehudlSpveZHpMg7s6CS4nKVj3uujjNdFI7oe9568VxLLkU3rsboigXQivke3iu4b0va6gLdxPx52RBjEPQAAQABJREFUwhvmj8Dx0+6rATLXvL825NdGO5wsHRxCemzoJfjx+DEHavi1tomBTOodOh0pqyu2z+u1ehLF7THSIO5HE4ixotbg8AixzrZxgRrOO7yo22PYabotl7TBabQR2batMQ0NcbHD/UNGwfV6OWie9hgahWk+5QnGWxSf/t2nm9989OHyrBHzzy1vgUMB4PGg7Ald9OI4l9+Ovi3f6HuVWnwVPVe9JNb0VlfK7Us7+o5t6EhGK/oCJgCooVYBtvaoYJhamyQXADeAvCPPN4A44EkacGdoFrndoM034hwzOkibXt0SgDSBYXB51JbG8wZ8AVtkgxeuVkBXPaoE4FXbAXZ5o/EY5uZpmwoAWrPJETRFCu0L+nhYwMs2oJfXDLALcCWjveDkeQcNLELDo94RZ/dYAGf48upLgXZMy/P9ptV7776r/zeMEBTs24lYJymt3mkgmqYdyGy4TDzOFjqJ07SybVjqZCIVWYJ1WlJg7dIPsg5wXpfJmXSQh+7lUx0mEnV5m/1dUG8bZZ0XVcbKl+ne5q4seee15WMCnv7bD3Gbj5Wnx4OYHydpAnrT0K3H8x4j6+1LadC7ed7D5ZyxBzllaAt/XFdjDTGvaUEVHmg3pIDAMbkdvamep5zzSTufBGrhtbqUsfa5XFpQtDZE5f7wR/uxGWWDodso1Od6iAkeI0/wvMeJnvbAkOvSY1mrFzWUl0xqe0QIbVVeh2hR3OxtQl9HDhkrrh/Vua7zwpeT3v7ww+UFL5/jW9cChwLA2yuaHdX4rV3W2pmFRoBbc21owVc0eHl7R6jIAqaRPs/HHmVzvTEmcqFP4VbCmprP4+qD01X0lgXg4RaxHVjwqC2Yy0opy+FhC4wFcDvyskdWhxh6L0008TY2gxw80oBpvzcy8JWctmjTsDMgvKKPXccNQVAcPGFAM3jAoZ7gyRuw9of15gZD6QG4GVJHNgy148UaKKsNGigXsCMHmKvD5KFAxyIZ5pH1oS+BdTw2htFDH6BFamqdbKIV1HpYaB57dPiT6oT/FBbxjsQ7C+pyGp1y2g9HxW3Hghw0pxOjx/NKWtr0iWi8hNmVRThht6DkNNrrHR269wMxbzt8gstb2UBaojuJOlyWRqDbjg9G5MVkK9fKi5+2xery8rEsOvzgUlnIKfh6+9HhaSvqlSsDOHoZb4PLpnlPu640n+oEzPjjtSGeK/cDX87VQSFpmon4eYXu5VymBV5XJoFWzoU65dpjo0xUyHzykm6VtbwjfBS1bSgSvaiwgLBXTJzKKE2dZq8O3cu6LS2PTNTntobetjvqcDGjK5Py96TFb+Wtkvbn5LRXfE65H2opOXHLWiDtf6/bQY635NFpM+5mG+803Bo2TAxNw8X8ASg9fb8ScJN/qy0xGGYWIEHj01l4zJr21BZoAsVtbb0mINwIMgbGKs/XNtBjHrbSoS6BrwB8W9/CJB8AeVu6d5rRyii2B4AO5qBOHgbgE+NRC5wNGEkzD2zAzAeo22NhcdmOeKE9xMgw141nDsgGAMdjDkCMDHRqhRfyemuqpQfv2uykeqBTljpZjAYY4z3/1b88edfauPxB9NDRWqdFxhPc+Nz5CnTKMRkI+qWjAECgd3kIQXNV5AmuL+T2/0XG9PFjCcVp/fCd3lFhRSLPZQAoB7pWdyznMmnsaer2aqwc+YSGCqd7M1ze8olsKkea4G2yDLJLhffqRs47ZyujHwdfz8Pv1kUeuv916/GyHnOuCZfiF1djNhD1680kdp7TyPufF0hl0jLwu3kvs6RYCvaT8+NoYy8c5XGtrV26ti3mjrGEC8bYaR5Hstva9Xu+U3rXCM5I9HhZu08SutmIdooG2eVQYbQoa9eI5Fze+Im86D+ojzb8Leg53NoWOBQAnmkDbkCxN1gxz1W7AjXxk5Fm7W0NvjTbAQwd1Mz9lQtsgCMvGSAGxHsDfaVDYAQgWWGBYrOjOVt94so9avvWJd61vGT7BJbSeNMavRbQb9eAN3S+bUm7zJsUD1q/vy2CdOrP6oavYPPWiqEBzACrAzTbtLkMAA09/FFuZHlbwCUAZV4bHQHMAfYA7j211QGWhwHAmWPEo3bwZajcF6wBzO98bHzvXcern6JuQmhpSPuvd9jGjzLItZ0BaToHCJ3gJDu4Do9sSkfW8+j3P+TogKwTigIpmMJH1viWCYAEzQNpbx/khLVUD/LoWeIjnxBIJtkl8PN2tPISNFkvRD75oz63EYJWN7KvInCcbf1RT3vsnbphOy9Nmwcc73QGbrjX9msWtPS8kW6PB4Wd4PxuGcTQ5X8pH4W6VvccE2Vou3vnZleIBNHh8edtJNHKiG7BYxci77SYhmUh0s22qRxMhFzQy0OPabdxyoJNsKrFgGdqXI9xw4+VEx09fp0bLZHRPXFK88GPJ6ScvAUtcCgAvKoPSWuL4wZgnAlURmOBnQAHEDKQtOHkAIYAIn94y/zNBayAL+fCwFK9iQFYBEjANIC5QDF61KNCYE5awAxQ4dwSA+oBxMWLXrbpBdDVNvuTV40H7vUB3IC+gbfSBuiAMm1XzN/GhjzyyHPgHq24tx+Gtg3M40PDLpjroUE0a5vKu9cNSDOMDgiHIWmGyoM37vPO0L/5bf2fYuiZuq0DUCvS+7/tsMQnjYx7RshB8w5hqaB43dDtMLp8q1c/VqdlgoQnrX0ipd6e1+8ytIH2eIdnfDsTUa/KQ/OQ1pWm4Xs+lW+PNfKX2gKNgjFYeaW9PLzYFJOzvH68jMfedteTxq0uF45ML0PsMrDId2lOj0WX5CkLoDmoucwFbfDbNtSJijknbd2RTtO8efAJnk95gbPLc1mnU8iPxetZkomZVmaJmZSNPRZ1W1s7cm193YQ3VrGVMwVByFSQJ3T1RXpbRiJpG91eaXH40FHldFR7gOd0r458qysydd6+IBA+6eVyfOtZ4FAAeDYTUMn7LYotA1GAtBoK1BTqnmZ9BWYA9Giyolg7eisPj7TglaTASKCqPHIuDzgzzDsajwS0vH8bhp+tgJUJemYCcHizKwJZ1X1F4EwMKAK2AL3NM6sMNMpDH6nOAI4B9AFdA261ASAHPPlbVR6AdlAfSY6HAuLgVesWxfvWMDh5pqh58LChdCqDIFlS1G88A+swFB48d70OpWFnPGnkf/wvjX5Iq1p/uHtDe95jdBJ8+JmDcxCGzgIeZB2cSHtZMwRCMTidbJp2fjc2nVEJ6RTwkF3SDz8SOEL+PHjaY+joSvOk2yKxvPON1zIPKJvwu+XaupCJutPOMz0uL+ttdznP7xdTZj+5bru9rNeRlvF0Cr4up2u0uKSPtbtMq0eJ1uaRmMq4STjXnkYsTft1AI2057nGUl2Ucyay1jbJWNqYuz/wTA8/UbEnTSrSTMjTxPwREDYFIXY7wCKYWCoTyKG9sZypdR3wlUaPtU1pZ3neeEEsagsRNoBH8Bga5d32bifF67ofv6BFWetWIP/cchY4FADWRysFTpu1faBZJgVo+4OtphdBOIDuqN7e2hLQbtajid7hXR3N5/OtZriqkVjtaUWaP4CYP87MaLJl872BF0AegJ4ttKpaugHZ2SIA/ULD2HjeBvQRzOEbEFsZ3R/mceOZj8zzBiD7WsQF2FIfQ+fIIwcYksfj3Va+kceLDHktIDNgJ8ar5gEAYOUPkJb3ugCgGREIwKwy5nlLh4C4t9CDh2LqUqtr88y1mypz4Oj4zscmGnpuPsANHe9tqrbgNzV0v7FhuBxlXAY6aZelUyDNXzccRHc59JiuWNjrsHL6oV5vj7eB+ghtPhLIOz0kkjaL54CX6otFXNxi1wHP+a7bBdrjN+HQlrZcLLRUT9JGb4fLu5zrJk99TvcYfpp2+W7bnL6frPM8pqw/TBkt1utlNwTALGz04LYn9jSHm7aBPMFjl0tjeKkOKxDLeDlopE1Wwl7ebCO6t7FliObXErHZuS0kPUk6LdOmvTLpWWo8dA+eJo767NgjHZKxlKB95Imh0SZvs+dFNhnyaUCn04jtLxLah+KYj7KPzXpF3qQjNeItlD4cAK5Wa2GrbpxxXWnfCYDLwTikt5QXIOvrgf3BuJnPxgZutXmFY16vAHzMQ+ZcAFxNWQuI5blGrxk6Og0gBVqkV+wTlMHrpl544c/BPHjNlCUEXdwj8ngHAnEDT80JRzDEo0WOBwZ9TWKBp0reggAV3ZQhBqDhA959gae06/hDeTzYnh4MHNgdnG24nblsAT9z2mEoXIr134BaMcPxjz3S/2ltbm5Dz7F2i2hN6t0mrWs7VlriMvDpWDzsHoxTQoyM/aXCqQgFvbBiOigP+7XB2cTwia1zI538ocM6YhIxpLrpmL08Skg7DfGWF8u67pYneQ8kra6ox/RFppczcS8TY3htZ5ykKQrPYz++QNnlpWWd5zE8L+dy8Dzt+qHh+boseaq2P9qkNBt3MBTtpzA2rZWjDKHLD9Tw62VcLs1DS/Oe9tjLmI2pRH/WXsVm30BCrB1Cd9va8aJIf37sbcO9grRni/rtYEgTXK6b7uajvNlWZaxtsSxp9+yNL9m2Kq8HfQptO0nrz++5VMz1IU/wMqrmyS//YfMzgZp/byULpJfpdTuu+faFaW+4shgMNpqBhqMHM76vq9lMgclAwDo2j3gsoBsLODcVb6q72BTQyoNVHpDuq3zgFQJzPOWxgTo0ABnwpBygDZjztynPNAB3AD545AFmT9uwdvSWgwdem+dJ3Q7YeMR45eSJQUS8bsAWYKfuXfAGoEUXQDPf7eDdaPEXw/DkHYjRh8fsMgBv+APAd1oANxnk9PfXfujIj2hbwh/xm9pvaGJu4NhX2Ln1G5qM8SLTQawrb4WirKeJKWZ/iXLP04k42TolyXqbPN/G4nndSu52buiISjxGaVc29TitPDpIKBBT1o85LQs/LYucycMgKAPfy8K38sjFtCILxE5L5SO7PQ7P7yfjPGJ0EVwu5MKv88iRdpk0DQ+6A4PnLeZHwdu+pQe45G26wNSvXTsx57LO9HNJHZ6Gl8qR5g++01NZkdvgx5DKUtDzeLdmewgKboOWpgp8xyyTDWKh4tgQa0NMGzvqclFvQ9tYGMjwZ4VjWpEHb4fZXkTEWnElnA+tG6jPy3V5ad51oFzn81NaGf14ys/pm98ChwLA6726BninAlLAZjqcaP/icLlBmwKyAmV40Plj3nggb5g/wHumrR8xPyAOODpAQwteNDrGDRsPwOfPgX2u4Wd0411b/Yt6gRzlGBJmbhpgBZQBdsB0ulgxYIUWPG7mpxmehscW+cHjHfQn8tY3Gwfv4JkD4njZrLTWzSSQpj3IOKjjYdMWwNqGx+0Bgnyc5xbYAuDIIwP9P3/n2n3H16sPYAg6AP+jLZbmR2FPJyC6dQDeEXgsWX8yt3KxoMlCSMIenZGHbPsnmrWDOKEjSgcKzYJi81SVsbMaeS1Ikk8qXCqrMuT5cxGvC92knadk2w7vBE2GnyQgT+DRynQpHa62kDcmfJfrxM7fL/Yy+/Gc5nV5nthpXt7bT+xpl/cdsVyWmCby53qsnPKXrnipELc2XCZbOedZHI+ZtOlV7Py0qPOj+B4ZL0sZZP2PPO1O87ZNpgjQWw+ffCLkx+f1oaAFaJTuE9xOSywUuBL0ezoVivVyvXDfWLuirJ2TRDatI00nIpaE58fQ5el++NzTzzUnu/Scv3ktcCgAfHG+OeN7AROBm7Z/LwbakbHZGhsoB49YwCkeaeiAMnmAmT/Atik3BM4CUPH7cwAZMBzX49VYTmA2mWzaMDSnB16xKS9aXrb2xbBFWOiHZwAvYAMUSTM8PpurDQJB+ACzxwGoNyWzFeZsxYBW6aGAP/fQAWfKANbBIw/D46tHwxy0AzoyyAKswWuvbViehwDoAey7HnfQ+2ce6X1QHdH9VBT7AtRZsDw/+wTk6cDSm907DAcfKybBcBSKO3qW8so4gCJGGecTG88J5JO0yfNDEN31tPVCgxXLwCd4JwU9TaPDZZHzuqx45MFP/5AjoNv1W94KKZXIQ0/NirzXD89Dl9bNuxxxyiPtbUvp6TG5jOuA57LaiMWC5WNDOQzyZPkz7zjS+KrXxqYyMSDLnwcvQ97pLuOx85zvZVI+NA/QyXvsdGLXgUB6nF7e+Mpgd7eTxbGw60VR+9AWC7f6vBLokdfG6KFXTOieNJpnPJYuB19XiwrSRiezT3BZO0+R7zSuWWur6Clf2fXtWfF4FM/RLWCBeLte3yN54Ognm5U7ZxM+Ks/w77Y2B7CPkuumIn95sckn9/Thgc1yOuRj9BJUfqjlxT1dgb3xRJslz0t9eL7o1eEjuZORPrIgsVoLiGf2HYRZUe2Mm2rc1/7Ifa2S2ipHvYmge1OLUyYqK12jzXLUTJptpYeqY8HCqErbOg76elcXkFedUq89u7T4aVPpgcB4IMDu6xbhO8EMic/FH9dlsVXOZnyNSDceVtUHFgZDPTQs+rX8fX10oS9Zudf1psqXasPA5rW1tZXAd170JEunMlAdvKOlGWO54HPNbOugtO2XhgrVn/DtYHU3+vvrP7D67iNr1QfpB/jzm1dJC2mnDIG8h7YjEsFv8K58qtNlvDyx9z/W0SUMqkmqWqoXMetcory3KY3Tdjg9iu/RBZ+6rC1KyHxLMg6+Xt47NvJetuVRWMGOtVW6K2d16AcWIQVq8vvaKBoJXnpcLtuN0ZMG+C7j9G4eOjT0A75sikYg3walyULTw2QbXBe3F19B8jwCUU2gRf0pvZsm74Gy1EfseuB1085H1oPLQDPvQAQHUgANJR6TNhI/BI9JxnRLSvLGaxlWcrdsSve0N9DzxJGGLq6rFmyjDHQ/B5Zebl44hli1R1ZUP1FFemwXdL39vVFT/JdvOln+W5fP8c1vgUPZivLXfq1c/Px3a23V1pXeOW26sba6a8gpnUGpS1o7ME6n2rRW+fXVSXNOU8Gr+uzuxky0C1rCqet7qA09JG+3AuVW4wYYU41eyy+1zy6sis6KT+F4scG3DzbGxc5qU6zqKr+wJYgVbWjfOdDwtmTZ0RnPuKcl0vKGy+LKVqnd+8I90d8sxuVEHy3aFBBO8MwF3ALqNQHxdCyPW7A5L+pL083y6PqkkcNdzJUGcGmPBxaE4WkPVBbnYzDAAJvFXMPqGh6X16y6+1uqQ968YrxxecQlw98jYTOL0taPlX8NfXbwJDqh7RBEt8aHI1iSso5IFKxFOu00rFCkU4ji1OUxacrxl4Y0n4KUyyNrRTplXZe3wfWk6p3W1hcbY2VbYkik5ajQ88guATP5pKzr8uVxzkrLpMfVtWHaRk+nsR8felM6+ZSX8kl78DKe95iyDkzdtrfH7sIxdl0cD17wkbXA8HNMzmVikdaOxnNiEi+VFZ08fx5oi+e9XV7GY2Q9TcyfnnDbujkXRo802ujngbJL51syNgRNgVihHVOStzL8QCOkDSOPjoQMyWXdPm0bVNaKRx2mUmliRp2wNW3168n4pjD8kKdoPJ7TSv/ymx8qfz0RyclbyALd83/dDu3Dn2hWd2ZXJkMBoD7qY+1I07PphsBxtRHglDsC2ZlAEqC+YtgbmjkabAqUJrU+d1TtCDRHAmRiB/QZ4Kf55Zn0A7TE3QMUaBtAQ3eZofSGofFQLzyAvpxsVc3muJZXbMBfTkpVrVek1LZCembTrVBObdgwaNVDgYbYZ4MApkLUCkAWUBfTS5Om0BA59QTapGCofSh+gUAMRtOq79ks6NZTSzmecBtPiv/sHYMHHrin985jR6of0T6/7/QyxByodVSdI247ikTYRWKfYWU9nYgt0b0jgY9O64ikyNPWyURkMx5yUVmbh0BZ50UBy8c0RagrDd55GU1yS3kRu23x+pD3tKmnrBFDh2e8RB8y0LAPaQJt8Y40UNrOstUNneP3ulK5/Wjwnd4t53niVI50yuPDCzTUwdf1Ief2YZRpWyNE8LwsfAL5N5yQB21uZ6D5L1X78TstjZ1PTEDWHgBjISKXgf9ygpfzuC0rpX4MbSymH1srlyRcB/FSiO1saXsExOkchGUlZ/W1BXcTqcqlepWxfCqwW8xSOp7T+vvYmx4oT3dYOXuLWYBr4VDCez/TDO6cXT463eabttxC8iYFktsaal3Rt2ydljYuBegUmJlPXtPT+xUtKHF6Wo50l07eZYInrQ05BO6AeABiQBhQFlAq7AfiDsSA+AWB8LrawYMCoMx2m8a/gKcuABUID7QoDDreroan5Y1LrwB1onlrzSq3Xd8E0BaIW72xPVtXtvSlQS1WE33e39YW1iuLst6qpvOJgfajbx0dfcdbJ+88ttr7i+qM36mO1OaG0XEtYb+OqzWQFKT9RWhZ6HzQTR4+8t7Zuwx8p7XpRJnxvDB6+EMwCUaLxFQXIimvWzblmWyU75bbL08jAGeOiarRRfA4XLEhTzql75cOpZd/03LLnJDr8r1OuGkdgCYPBSnd+dDcZg7AJqgfl6Esab5nfefxwO3W7WXS2G2T0g5KuywxAXN62nnRxMZ3nssaMSnE4Vr7JWjkpDD01FZemdFRpDKp/t2THHgmH+W8bEuDrkB1PGRg27Qu0vZwipDS3hbqowwxwdoekv6rscDil7Ub/Kcfzl9Ccpvc8rFfD4dyoD/91EtH6yuDwVBv40y3w2WcpgEzhsUux5WaAO3Ro1q5qfcXAWka7UDt4NwFcX0iqNa3ACvn70zlKQ9DXSkou8fthqBu0u5NO50Yz3pyZFLPdgSs0bsO9ADelgY4BZaAOjqQcy8dvge87Q0BrkSKqY4PULYgAsBNHu8buelMYCsa3jXyIeBhh7oAdgN+tf2Hv3/9bSfW+9+uBWJ/0b1jOoA0dDuHlMfBe4eRlmsBMwqjo+Ur4Z2960r5XhbrQzfP1qwcKuuWtY4syqZ60O26rB7JmC7LhB+TbxvWaVennV3ZPXWZmxw6WngEP4aQ25s/iO7lPHa5a4m7Zcjz558dRMceO4jmbYanB9x9AzLoumM9ALELidSeX/ieSUzrovvGFCFcq3yQVltigjh9ELLPFUZmO7QcZa0OfmJltNePHZEUMF2/FUUeQixntESgy4Jv9iIhZjcN2UcAXKXrcLVO14PEGR3fr2oroV/JwIvlbq/g18OhHPUHP/nHmhg9OtYXjZqVkd3e+7ajC86AL54ywkePHileevFyuXo0DL6tCFwBaAdQQBsARnZNMvA876BMDH/jSlkB2D4X5uAOLwSeBNZMN3rdi3aQZagcOejpUHkK4oA3A9N42UFnAPQdgStD6s7z4XIfFge8j2jI2+e8Z6oDj5v5bdCYYXAb6tYQOR45wW3wrY/1jzz6Df3vxDvWmq93VlX5ACe+bQDpmKHj8E5Fqd1+Sfy2I1Ta5V0HeadRzvIkYljiIyt6Kr8f+HpZ4pavgrSjDeRR5kFpsui2Djim27pER954UpQeEypcDh0E8k4LlPCbdu6eTmMvC83TIbX3d79yXSmXSel4ru79eju9rchznOT9XF8NgF0/C7lO3Bntk5Sl3ngo7XVjef20dUpGRQ4M3o5uTAHTdWDJvQzqacso4/X6cbS8WNTo8WQ7z2xDpi0c09dA69bv9jbdXgF1u27ShMgT+bR2tP/Yow/nYeZgmNvzN71Urr8F9OLQR/9ecfRSc7HSxwqanegF05Bjx7RJgPLQL14M+TRGZj/QDt5xKc+0MFDugjceNmWhu7ftXjV0aFVdVj4UDo3ggO/g71419LEWOTPsHCSDx46XDbAPV4rmyqXwAADfwX6qOe41jZszbO5AefwOycZhdNeVetgO9PAcoEk7SJuXHIfM8b6RgcZirlZe4PyjT6y+7c476+8YD6vvU4f7TntaR1ESvOOmw/AO1mPESHvfYmnPdHjIGuA5vSMHH1KqO/XiuuBqRk51RAWuI9UDqy0vAZeBTqAe77DJp8e0Hx9ZQreOQH1tftP2eH3dOqHzB/h2ZWgbND8WmuzHzfHqIXEp7HcsRzXqtKplCJQjoMMDNNfpNI/3o+9HS+U9nepN64Of8ly+K+NCLmv1kukEP16eyJ1tNvSCV4vR5Qek2Mrrx4fw2zaI5ueg084L6iV+tekXv/5ont/tnJnbM9u5Pq6/EZ56qhl95dy5UY/LWKA7kjd8PjZjpL0p5qM7eqOVC8K3qmou1fVOx1MGqAHmNADMDtwO7NOdsgRoCe5xEzvQB47qTx4ESF++UFWALkC6reFrgNtBmNjLaSVYDXCTZ8jch86JUzCHBzinQ+OuA48bMMa7huZpQBvvfHWt0UJoFpztet9p2sF6oF0uGR7vArYDdRr/hW8fPXjygd47J+Pq24e94ju07vsBbw8H5wDmnY3FontHZh29EyPdsy6DPmg8oizRRHRZZFLgtXzKjGkHYLLooo0ulrbF63EeQn4spKG7zJ66ROi2BRmCd6whF35TWpo+SD4t+/XSrs9jl2ezDTr+ls7xiYk9/Ly1xxtpzAEDwH7cbVn4FFKAh9677ghxoAad2OxaQ3peoupWCXpamtJtXkRvm9eTAmUr58wYL9GV8eNyusdejDrseGEQVC/tsazzoEPoNhS602Khfcshp2AqyuKCzsUva1eBPL8bzJJ/owX8UjpUg7Ai+tLivL0Sta43dLe2bCC0mKyUJWA8AVAFltpKUtfzHUXv2IVqU/n18rh20brQKwTAC3WZDuLwvExRHJcnfcEAmYNsATyC9sobynJ755j0XtDqqapKQZk0ZdzTduCGFgKIfmkJ0CvpcC8bbxzQd2+bMu6RO7h67F44oO4AHurY9ajJ91f0BvS2vWls3rQPk7sej70s+dSzvhLHrBnuZtgbOYbIAWuA/yf+yvg71o/1vk/zit+hs/CNaSeOMBeM07BOsBBadumknZ7GnjZ+/LEGRPkuv81LyIGXYgTKtfyY9vwSL5a1vtIYe8v68aCX4OCbgpJ36kFi7+/V+AfxDqKn2veTsfd9BcDtMamAHztlPc3hYihiZB2AIROQ6+r3PB4wnrDpCOL2a3UmeZL70ZwO09vjcsSEVLfzAmf3F7rzXN7zSJEm+LFYWj82V0xGoSvj7TFey5Sc0tThJPhLhC4TQdGsbhdFh2hR12k9QPzqIw+WvyJ2DtkCeyywdK3t4V4nwuc/3/R+6+kX7d2bF1/S07fmoDwGjHcExKPt442wtxhvvahdqHYBmia6x3xc6QDSoeGU2wVi0SRwXsJOA4wX2hZzZ7MsKUseoG9BOqhpf31I3Ank3QMHpNl2EhB3vnvQR9brGi/dgdz5xAAyfHQ5UDtIw/dhctJpgL6hoW33luG5Rw4oM9/N0LcPecPHE0+HzlN55PCuHYiZx/7ebxs9cPKBwbcfWWvep01AlsAYkPLOGt2AWOyPrFMyUEs6qLTTI63/bXDAc8IeXWKYqlgoBUzXuyeOyqwuryzWm8o6C/El2Vi+G/kxe+z8bh56SkvTXuZaZbryWohnut1u6AZcsRHBjy+1E3TyvC9PQIZyHsy+nonxcY0uaV8YC/vxU/GD+EkVJp7aG8J+5bq0VEdaPqV7W/blJ0SSaTm3ldnC5STQyiQ0qyPJexI68tiXnkn/Ty/0GlEeZjaL5Z+rWKC9zq4ic11YvJbUf+6F0WTVu427i82NF6x9Pc12bWzqC38TveM7Lssr+gohjfI0/LG+cCjoFvVFay8AvjoJQB142spiXJUbz9TNXXfeVWxtnTNgx4veGp8ri3OaUztWVYveugD5fGsXwBqFDszElwSyegeoDkC+LsC+UOKFM4Qe4vVic+e8eeGUJSyBt2QBecS3BaQ2vC592nJET+6XzAu3Qvph6Hw4CovU8MDxsI+sHxFgX2rbiKwvPvNy3dg97JTuAOxD5AyjA/6ANEPkzv/Qj69+ZGVY/SxW51uytJQOn8CJsM48piH4GcRyDDubKIIKzgu5UNY7QWLEODBiyytheiAopOXTcgfyYMSyrs8r8PpMRDKuj3wa0vpTuqed342dT+w8p3XzTr9aTBnA10PaXrPLVWxFGeS7c8Cua7+YugBhzOfnpCsHnXA1mSBxdR2U3y+gn794uS21w9t0tTZ0PWGzWSxg5VWxnwvrLWJDbPetyLN2QfeKFKe2j+Q8zGyGyj8vxwKtt/ZyCr0esp99Xznr3XFi9vzz8mI3qhLwfcO9J+o33DvXlw4WNeALONeVd/26KZUGhOEDyle2XtAf8V0G1rQT8A1l7ioW5+6QnrtMDh7ga4At8CUMp/MFHjbD4P3t+YJ4cbGuLz2nz94rDfgS93cW4h2vAevz8r8Z8mYInBivd9ErajzqxcV1o6HjqAA25NcbgJr8Of0FnYI0APyiXhqGJh32J31HpJe0D43X4l+Mk97IQufvwuW6xpP24W9igJqYMl97kQVhIU1saQEuoMuxO/hCZ5jbV4oDznquR8Q6Kjrlkd4XHY8CGLAQiGAdkiRTgASoHRhaGZMO8pRJOzL6OAJxyiONHv68D0R3KmMF9/tBmUIq63PRsNCX8pClQ04DfA9dHnT43ol73uUPir3MQXzo3boYeobmdbV86o/y3tb0PHgdziMfHk2dszdGN96yzn+wURTplktM04LwXm37U9zMqQ4kuaT82ODxl8rasUZ62oFBT2WNF4Vpt9VDXsGPw+shhs/NAPi6rYymHytLQRcirSDRs7L1x4aL4uFHHypPPZzf4Q2Gyb/XZIH0+r2mAq+n0D/8gEZkFzOB7ol6dPSEfK3nimefYyfkeQ34Xtq42+4D0u4pP/fCwnhvfOsJfXL3hKUnq8+Lf0KguBDALGoAva6er9nppyheKOCNVmcLvSBsfNJ42A7ugDgyDHW75w0N8EUDoI4H7WANUENn0RgyG8+8aO0cj0PMXHYoe05fWdLXjgTIDJUjT8wwOCC7qT/0GF+gCqg7EBOf0yI0ABvwHk4Xso9e2lSAR7z9NekUHxAFlJtL5w2g4R05BmQFWRazGV96oA3GiwU6AHDy8LTT9nwwqRfoUmdl+uF5x0SHxUIgeckaiZBNVpTXLL53bA6QlCEACK4EHf4XuLs8lyX2ztHrhIYOz7d80Rxw4FG3mtfWYXXHyq3eqEeRefLQXBc010/a6R67LHmneZk0D43QpXXzQWrvL3LeDtKAr3/lKJyl3TLx0Ezeyu2yllOxzUu6JUHeA+kka6v0sZ/TvC7PU85p3XQqcxDPZdIYfWZnxU6nPOlu3i5Y0a1MwkcupSFnxykGPL8eqcftbHWK6XmWVCLLHz/oc4Kuc14jeuLND5YZeLFLDq/IAjcUAOvqbj7/yfu3X9rRmqrimeLixqK576Gdelrs1Jc26mb16DPN2l1bi0XvbssverN6vHa3AGxW//EzGnIWHznyRfF8AYiTB9DXjt7dPPvCc/XlK9x6zxd42pc2ioaYcMcJQPTuAkAH8NeOaqXx6h2LQA8yALSDNOAO1T1u8gA5Q9942QAunnh/+/jisrxpwBzgBpzH4zvsD3BnURnD38gHr7mu4QPqzGE35qULOAWK1AconyehwDB3fxUgFl1gCojiFQPOgDTgTgwPGeimJ3rgDItvRBrgDfCSF9tAnTx/9pUIFCQh7bQhAw54xUe0oGtNs/mTCMi02js0L57mOSjrDO3ogqx1eKJ72chq867HQb7VFwVpm/NMV6LbyxK35TppeH58LuMxdNL+h6wHl/E8sdO6ccpzea9zP95A9u3SU52kvW0csx13KLL8iy1of0qlrPL8pToRwY58N9jlrR4YMVDngXW5kMsmefS5TshXSztvvzJ0YNC9/a6r2ybyrgeZttFi+EuCbj/j64djNXsgQ1622NSX0i7o4zHPv5jf4XU75fiVW8BWHr/y4q99yVKYo6t++u6PXdInCibVea0kPnLHyeZOjcVePF+UL13W5/2KZ8r7Hrq/funy7zfT4my5WvR1fzxTnL80b04+dH9z8fwzJcB730Pcc4vi7HNnm2Exqu576F7pEO9Sr7zrPn3jSGVWj96vB1mCEFzhrvvutvjKpec1H3y3brmZPPD7uf8UntfQeKWtIwHfyuaigycOilPueQNyhs+vbOlzi/LEg/wJxS8IkFlgxm3+ogE3aQ2bS9f/z97bBmt2Zfdd57n9/qJudWs0erE804pVQyKZzJgxlF2JPT2UA4FQNTaJBhcBPK5KCooieKhQRYIh0hQpDB8SVwFxFXwZmzH+YAHBhqTKxMVoTIoiBtlysGTPWLFaGrkljaR+f+977+H/W2v/97Oec5/bamlamu6+d3ffs9de679e9j5n7332Pud5Hg10K/fr88dvx5fiK56RN7p3DkfWLg+neL4dGNa7l+WXyZnBZM/lj8wunnp73Hl0lqtpDGk+Z0J3mk/WWmE35h5tnet1tHgz/JK+GziSZl1W3oMm/St7D49+hs1LZjv0CbCGWppNB674cghtVbNdPWoi5rkx25n8Ek/etqQZjHrA50wtlCWjkq3h54NhiQB8TypEo3RGEsaELRmzv2zROXhaB3BTHmjrT2WULZ/KUrJ4vBGmyqDjua8bQma6HN6SOJe1g72jSyrmktGO5juHzc9z7tXNlV8vdJuGigoL5WaHrPKxR9k58uqD8jRVfWTsrkTdihE6hu0YX8uGmhc+SiHkVsRWkYENkQ6XdBPiGxFfA2Fr+7DdAt9GC9xmK+BWE03Czzz9xLVjw7FV/a2/cWoYmXgPn2Nl/NJw+JFH1oZXhvX7HnxsvOfoqr4b+ZF1/o59/BjfChX0nqMX1068cmLQ9ybH5MUqGhvgoE+fy69KPnwEHo9+Hhmg+Tt97oRW2g/IF+mRWFmzHc6EvOfQ1VhVk7NSztW2JhY99/XKHH7KwN+vFfsQejzPPnOZre/cNnfuSZxyPut+M1bfbJd7pb2+8pF4zs0qmqhYee85QHto9alVNjlYXjJjZQ2OP7a5/Tyb59b8sXXOijsmXOlVGvza2VPrma+vX/xWrLDLEJWDlCco/JKmA1dyc9DmqxIPaJv63nv0x5c8iK5fnwiWk+SBjdyTiB1bZru1XPGMmOjyBz/+pOSB1jzirTHDJy3jpWQuA2O8ZbVcactrvky/8tB3HOwsmK42skILnB4T+KpD3UnOg66FkG5+IB5+2WtZotluZAoZf615e44t86CdlvEs69eEQBVn2nFQjk6vHLr6x5Z5C23UAvXzX+rMDeMF1ZtfbLuomxD03u3cYn87bbfAzbbA7TkBt+iffnq2+vjjw9oTjw/DG6deHAfl9516bDx5ehhPPjSML7z4opCPiSeZJmZWxIN49z2Y/fPYcCn64bHHj62zih7+4KWwvPuhY2vHHh/WXzv3yBqTMrpMunqfQjaGmNSh4WkFrr9VrbSZtE9ogn5k3HP0oZjwDhxak0wr6Njyfi0mcFbZ8A8cekhYbKrznnt9hh7Psw8dWInVOfzcLs/tdGj+eI6d9OvxnJuJnEmbLXFkTMRM1PBZaX/sez6iWN4arg5HV5nIj97/kZjEwYBdG45GGzBh8xw8X1T7SMTFBM1qmm1zaCbwmMTbBO6JnFjrYOUJwoMRuWlwptGbJp5lslV9WBPxR7SkZ0JmdaXvq+4pguslDaYeTcXrk2uTh2/REZ8UPUgjdlzGuFxl0DWBcap1rvXaDGM9cuuSm7a86hs75cFn8l2YgGtszRh6/NkHkKmtojbHVWazZRutGJnj51eU+N3gm0nMZU4RjwvKLbMvh+Gy5VYJ/yqAM20MuXnGO68YeIFtOeUelwThW4zAKL+uHnVOX5hzRrtv8etRKChN2zW5d+7x698cn/r9E+Pf/for45d/7+Xx2J1bkzs38ttuC3ralJ//vF5y1tzx9Je+tWN4UTOw0o9olap5dnb6hcfX73uCfvO4Ptaj/LnnhpMAHhqGh089FsM2/BeEPXLyufXh058ehucke/jF2cnnLo9PPLxPHz96fHxBvwL8xHBtPHnt8fHhU7Lz+GODJnJdkfKn/++8sUrfHM6f2qktcE3ymvSZlJnU73lHk/ewc7h4dudMK2n6tUbNR8bzp07M2D4/cui1Yc9RJvqX5GWnVsk7Z3uOXlk/eM9j+gzya8Kc0Lb5oG1zttFzsmYCZ8LmJgD8RW2Zn7048Axcq1z41zWR79IW+dW1sxdf0xb5DtVVs7veHz138XVi0GT+kKJ6a4WXyVgP8AKbJuyY5s5f4CW1IbbHmciP3q9tdT0j1xa55G/FNvoFbbXv3a9nuQfvZ+sx2pL4nOpgxADmsnNwlW+9mrOlyPZqbLHKFyuOq3rrlo/K8FcnXvTq5EoZX/YXNEwSLdCyaNQsLmAb64aZbU9Bm9ULfAzmUqi6lbYt23AOv9KU2SUgWZ9q2UfwWj2rXtS3nI8w0A4NvjRGbExTtYuM55+Hdb4C24xFTBNFeJizP8TTsuuEjOTyVDfqK7ljsR3nOIEmVX+VnsqsO9Wjftd0o8EjE6faLpXmRvJOTr//6vhV9erjNF60+Y7hmOrz2Tu5Tndi7GXdcRuHry3pp5/+rIbnYf2FF4bxmWcy1ic0+VKm9PDrw/jww58eT5/+w/XTv54TBjL4T0jvG984PzJBD5qDNauugz158rJ0WUW3xAR+8rmwd/KhxyUX/eKgr798TNvg10ZWztBXf3dY1y8SiT+sv3HftZiIH3z0EWFyJc6KGjkTdG6Bv6RVubfLc0v8xCvq6NoOZwv9nfNso1+JrfOHH39oFT7b5/BZYedKO1ff+az6EU3M19dzkn5kYNV9bXho/e2LD6yx8s4V+GtaMa9qNf26VugPaFX+2si2OS+k7TvIi2q5Pb5Ta09W3LTA6vB6e/tcE69W06y4L1x6M2RuIg9C5KZjkFR5mqb8qmOsbVBmIuYFLlbGD+pZ9tFDWi3rGTITtQdocNBMzgu8xu/yFjUZOP6qL3CkZTzzLSNf8NVsh4HJoeKsP7VH2TjnlcezVj7q1WcWhCVZx2HUMrTLRSVIn6Iqx9e0fo4bHLT/VtUDr/BCVnNs/7aLE9OWOQaXnZtfdcwzptqKWBoAPhjLrVfLla7yqS7XEc+4T2ubmZzJ1/Ulx6/bwTQ5g9Gdmv7g1fFnVbXjxB/fJ65cb94c/8bL46fgbacPrwWWXacfnvdvy9PTGjqe0sQck/BMk7G6xZdk8alBE6/q9czw5JNPDj/3c8/O7r//LcmeHN56C/q46DaDi0diIn92eFZX5PEoa+KdMZE/8cSTvX2effbZ4ROfuGfGxA32Ew8dnzG5ays8MNCazFdeCAta+WoCb6RW3Zr4mflj8udm4cWZcWAePPr4jMmbnMn7DW2zwz8wnFhhgoZm1Y2MVTi8zI/FSnsYjkl2Qn+suHMlDc0qvfKY5O/TypsX0VhVs61e8TzvXkyvRfGvf+GRn9ZHjH6agceJwYlUeZQ9aEHXZL7zKjN9I9llrUzYDrzSVscxAkvR/mtewgzTyCy3r2l+I99gp/Jpudq7kaziNqO5EWHr2St+mpo6uQ6b5hhslZ+2QYjEjJfgELbzB/9dU8FTt3v1Yh75ZvW06WUxvKuvAqh2oDezV2XWKWZCr/Kxw80EK17ym0qlDcCvz4bP/tA/rWHjDkvfeHX8gs7blwmb68jnsOU/uf21mR/uCdUkdqemp3Xvyso4VsSxRfrUU0+NTz2lFa8m41/+5SfXtU09Hj9+fB0a3rPPHo/NJU2suvSeHLSSlt4zg2ysffWpkMUKW5Ps2jPPPBm0Wkf5M2GHyVfPpMf7Xzg+nj4yrEMz8WpLfP3kSYa0x9efGB5f1d86/JiUPflq7/vh159NnuRM0FqZD0dOPj4y+R7Ravzq7z4Xq+0jJ1UHbX2z4ubsfC+rbq22r/7uY7FiZjXOc22edTMZH1OMrLjheSVN7smbl9YoY4uVNxMzq+ZcoecLbPDymfcJtQ1vlJ8YX/umthxjKzw7K/okd9os5REeyZMDZfOMdzmRG48eEDZKtCLUpMRz4wf0Wa2H78vVMc+ObRsd+7b+dJUMH/yyOKa6YFkdOi2TW+bcdm9UD2M3y/3cF3lr0phAsDmNYRkPJUEjOZ5WDINh04a7YE4sFRUmPrkRgjWNx1bsn3JRDTFl/wVjycFxY2fBlhQtsw1yEqcK2nhyy0RG4oaGRxznzuffTU++aMsYvm1zZ5q8445a8T4V9VBFYvdDNWCHiXqJf+yOq9AdHvCdeh2VZufL5gYmUSZjpfwSOWgNECMXm17mAqMPyYZsHR5lXXKaqMf1L33pS+Lk5K2PQWmy1lcmK+WqehiYwL/0pdzu1gTPxD574Zlh1tbRoyZo4NrWZmKPxKStVfmT2hL/dFudfzpsMpkH4vEnNRk/rhW1Sicv67m0VtZaZR9X+QW9ZDb8+nMr8LTyXXuOFbmeVx8ZmKT1LVt6ln3y15/TI20tqU89ltvmPM9WYqubXfV3jg4zaCZ3Xlp7+MHHhnf+z5dmx+4b1t85ujp74ZUXNck/rufbL4XePfopxIjrD5h+L62nTP1Sz4p1DFlrtxh4TYeODgzG5nlg3iy3zjS3/pRPGZntMUnxJjV/8Pi2Jj4m4ufH4P382DrwnMyzTeeWO7eNKjdtG8aSV16ljbHuZmU/E7ctGp2TE41vpZYvs4+o8is9Ud+0aJ9hS4dl/tmqZYu83qBMcY6522vnz2XLp3rh18ISZegVfiEDFfJJvHHHKR7twNY5Nw7eVSimb56Unanfm1f+ziNfem38gqI45jYnjxNMrvR+rpfU3D6+3xaIc/B+le9ePX09c+tpDJokynxG+emnxxVW2eZbxgQdQB004a+D85Y4+bPPfmbl+PGvaWJ+KiZkJmhW4aQ20TNBs+oWnwn9SW2hDwtb6MJJ9qxkmrNjC/xZTf7Hx7eeeHaW2+fPavv9+HjkyKDJu44VL67wvJsJne31yLV1zgqdLfTT2hJnBR6TvPI93/vpFVbXvGX+4NHds6d/4rH/WC7/RjhecvDE4nwJ5Nti0fb1fHhibKcobFvOi1xMyHx8pP70Xg3gvcS5GdZ857Y/LcOvvEpbh5zJjG8Vc4q6Ue/GoM5V122ywBMWvi9E63abYrAFXeXo48TYKkOviVPHBfF36tb9nntALKYCWRBUP455M6wVp3LKDsjxmmUd58hZ4V7TtcBn0OP6gCkjvlZqTNareZU7logBM9qC/sE7bAv6D/9ofFmhH4trxBVpFYanh1c///Hvmv1kbYNt+oNtAXWj7bSxBfQFVJML1OWcXK3Bihpsrro7VyttVtLq6iFn5a0V+Zq2wAXZuMJGT5O6372U8pOs6Gea/wY9s9YE/aXYamcC1iJZE/lxvWj2TPxUI5P0M88cH/Uat7rQ15jMVzQJazU+zNgizxfWHg/b/BLUE09o/02JyRc5q+WHBz2vfphcZR30RR5rfJmHJuXZfdouX9WPPO3UDOE2QN+DWKXNA2caeS2b3iwH72SMbfWyAS23nJzVMV+NyTdxkVgVX9CK7apWP3z1irEpff9H23FuS5SJ02kzeeWD3116Yshow25k3oZuA0RTP8aTEwJ/5gWtQ+iYKTnJeLNdxgB6AEKmg/0zufEXn+cG05J1A2+m8lpf01OM4RErOmYoN2+B2eQVB4u4WPHysSnL2F1QhwyGbREH9Yn9MTPJgaGoP+vDa6JCwL0z0sta/aoux6K+vSLz2OGrfbZfwpo3yYdCLTkVH4rfLeokJ+TFysfkvcDywADTgxUdhKGibaMPrLhZiX/+88NKW0EziY9eiZuer6iZqF/URJ4vqVknV+LYnq/GUweeJuEfGVZ+5seH/0Tk3yCGGo9pcFVGebOU9ZjbAVd1K40MH/yZz4BYy2DYVqR5zGe1CM46gRFvVX9sQ/JCV18VIVSq2OQs572bbJkd65AvkzOJ+SNHYKLOEE6qzHTrNDBUUsk23Q7wmghyIXn3YIH5Pgus2vmVLac4B61Qacvfa44NTix1beRCvUIugevKTRZ/m9URnHWwNy3Dew/pjloBv/LG+LLa8Rj1ow3iehJR2wPZeGU48uj2D0rQFB9KYttzO31oLZDPqxfdwVv8Y6vbPOgsp1aW85k3A+8zz8zWmGy1Yg4cK3RPvuRMtDyL5jm2MDFJe/LFInxeOIOn1TJjUiRW3fD+u387PnERfA+EAEwTg8umk6MaNJlz46xr3LRsPrl1Kwaz07Kx8NHhzzQyEl/2cY8+5nS/Pub0EC9y6W3e+p3VYOwPuvqwzPIqM886tWw9cqcqh66TL5h+EprChrIY1T+0J2iwxtNOy5L9O1+GWcYDbx1yJjomvHdLm8WBHrJlcvMW6jnBRl11YLXLD4TxbHqzyde+yJ3sw+Wau56Vd6fSL78+fkGxH4uXrVqDc/PkMixo0sre4YtJbR8/jBa40TX4Yfjf9vGBtoBX3M5xtnHF7RAY7HKyr3i90HV2fFqYp4yrOQNV6s1z5HXgrHjT1puWp3zsVPsqLtpG3ozYZ+iIx8Vd8ZYDNwYa0DVtW/LHCpnVsdM0nnfjW34zObZ57kvuFDG2Ng1eq59jB8skU8vQnoDRKeZ629j+sgnqZuroGO3X9hjIeRZMjjP935CIZxm/Am+EqTLT3mYmf7fk+jk33mXn5t8oL9g7ZgX86hv60o3ZcJyTEPGrgpxHJl3OS7SpT9BsOLN2aXj00e1V8I0ug1smo9tsp7u2Bbzidk5F56vrKT1faVf8YuPQgflblsrgFOKKqzTCOpBXPfjGGrNBLn2HwLgBzuMHtt8tMVlVPDQvFe3Xx5r48o/79VGnQwfyKzP5xiPHY7s1HvPIp7gqW0b7TeKqV+OyzrJ2QOY4os0MVo4N/xV2kOj4D4ZtVBw8J2OjjUtwxjChswLFYRGHOmb4M7+YXWiriCE08lBxhR0kN0cXL+q5vr4qksnX8SHkJsBxUa6y8OFAECq5XbOUx6k+XPOW2ai6tyP9zdfH44r7eJyL1rDUwyveYOkAr/Hv3XFg+c327Vi/Oz2m7Qn4Tj+DH3L8HojprKQY/EV7MIM/5SVy49Gd3viNiLRl2x4/yU1PdcAiI7zNMI696rbqxCDEtwPFTytqu/qoVnd8/pgyL3jdbLKPaW59tp3xQ3L9oCPuEnhf2bZ2jfpJjt2qh+402XflWx+ebZD7z1jLKKNjOblTbGOqDrzsVH/lCgh/VMNVCXuNr2wh9rAPc5NEG7DVfU5f7cqPQuDPcdT6eHVfZctMIjdmmlc8tkmuv3PrpPT2Pq7sGH6CeH1zAs25mZZdJ+qoU/rFb741Hr+9a3Z3RKdhYDttt8DNt0DtqGhR9sBE7lRp86Z5xSyjzbMPRnMGj+5GRMc0vrHGTAdlYrAO9DQhm8p5Q5nf48Um9mK7WpMAH3ky1n6xV2nbB2c+gx+rX2zBq8lxmxc6FIrAdmgMfqO2iBbaB5+xzajcGPuzDWKpyXLzlpWnPPywCj6gGxb8dF+FdjtNZY6j8309SZf2ZZXLhOu2Aj/177LbeBq7fbuuLtuWy5bDN6/SyM23j9s5f/30qG/mGb6g6sR1kYd5xAtb0GBoW+WcC+2Bffnl0+P3PXpkdmausU3d6haYdL9bbX7b3t3WAgxAdRAyTU4HXpY8iFX5lK7lasO68GJgKD4oe1CJOCRzPIhI6Fcbye1qYXSqQ7nyotwUGYR5bsvLXEe0Oj6knHJ8p26JzfVBt9LWd2xTP46PvMuioimBrPwiCgBl15lwwBpD2TLAjquEDbsnyxmoq54B1kOu3+aMCdMy8oilMhqNnmPqdWkyyvwA5kWtdFnt8jleeI6lmpvGRBxOFT/FuWw8ZdPoY4aybRgfsoa9I1Yua8Nx6uG61Nx0r2OrN3VssmP7Vre3ommPDzJtT8AfZOvehbZ7h2WUUqqD07KBErn55NZJKo/mT3nWNR+XfUu2j+CWKjevspbwwq4xrR4uYgP5smQ+8TrmeHasz5ajlUEAAEAASURBVBwzIfPHW9V+q9l4bJnmKzU3W0kRanUNbb3IAfCnZD6D5TRFbMTYBLbj8gb8lKGy7SNCz+WwBbMlysj5u9qeBSNyWFOfxoNxwjYxX9dky/Nd/pjQnWzrZspgK96082rDsYVMB3L+4PMXfOXThKyENxXfNmW160/1SlA//lp0C+dTTL/r0PkAV4YvvnV6eyv6gzyhd8SN3AfZANu231sLeOJxjjY0HZe80pbVfEpTJtletZOSPDLoLSQGiOIXGZiKs03ngakAMTyhGxM2Jhj0SMZAe6CCjm1uxcPEukd//JgC2Ng+1WqOX9gBw7Zz/Rm7ag87C0n6EVuLBSyk/bq8oINcf+CaWhfbF3JsuN7GG0iZBL7TwVgsV5nPGc+B+eKTPXpeXv1PfYSDdsAPPwHolS5s4203eJ1pxZYrsy/nQPnjUOvRWIm3PTHR82uHQRfZgg4FpbCd5G17PK3t52vj8ClXpecieh2pC2Uxop0AwcsscLpOflbF72us7ewWt8D2CvgWN+jdbI7OOk3uuOQkd2jT1iE3bRn5NFU7VQa/uQi2cT0XF7qGWGmUrO8cHpgaV/CKItip3D7Bmu45TCXKTLZsT/PNXPx5ZWx5bZOpPoFVeehwUDK20g454pXAMVPmjwQPuk6+5htP2TasZx7lKS9W4GLin786kaJHQqfGB49t5qv63O4FfTFbfHmGQS1GMCiih4g6kzvZHjmxe0uV3DjLenDCWmbC9YZvWW3f8CdDYQtfwdALeS2/XTOt0H/UMbtt3E47WiUomxe0KsNNpCsb51bfjvWtt8cv3K71vNPj2p6A7/Qz+CHGXwcmOizJeZY0iGkUM6/ioadl60zzirOsDQYu9jwGDgYScfjzIArAEw10JGJoZGAnMVlY/UNjB/w0dZyEVb7BrxRnrafZL3Gj322AmThYkAtLfBUP3du66AMFa3vkpmnHOiBH+4FX6nwKBWedmqNHORK5/myLFe00ERMwtpYv69kuf7xkFUwJwndT6rabzZA1DBDs2FcUVK7tEnEBUmpZ0iqEXhiYx28eevaFovkB56BkXpZu36PC/dxCHcRw3ahDr2urU5R1jVLNXkcVoAe9SX371vTOjmx7Ar6zz993PPo6SURnbRH1TlwirPLCzk5eGRO6+rDIPOcx6bUBgzED/oaEoCWLGXhMI1qmR9zGWO7cOpaH+VIA5z9kyybnsBGKOQAGaRvE7D9IaCVsBm0cvJDkAdpl0zXmZqZr0A5O2K1l+PZbMZ1G7oLy+A5mbUeT4OOXlTGf3eVtaVa/Tsirbi1v4ItReazWjCe+oBtgA938BL/4rGXX0TxihCaFfRWMud2XwGry2H6OeFuFXAcq1fmtbq4jOeceFV4sbC8XHteWtr4/bjvd6hbYnoBvdYtuIXsejJx7gCevtJvEOMrQ/gNbZcY7RybIDVPoN79g7d9KUV5iJFiNPxXbRsTXDJlnuxtyGdlQlzagTXWNwy8DHnnEoEPkGG9M6zp3fYHcKGHXKQZWYqnMJrRdY6dl8zfLbdM5Ey0fkSK/pJeqWBVj873YtS18QqNbectieTf7m+lXvuma267zZb5vF963To+f0uOPe+MGRe3mCZX6xF9rT/ix5axyx3JT0/iuK7i1HcPx26V+d1Mc2xPw3XQ2P6C6uHPaPB2UzsmfafJpcge2LF5WaiDrG1NtAel80Ru2gOV3WarspTFXpRa//SBynM6DV3Qq1uwpry38QhwytQtNQ2zYte2pnu2Rg611scy6Lhu3pOnnfgSeyu17as923y1HDxvk/qs68DjXvM1cvyoS/ntJ0zjRn/KwV2MwXX2ZrnmlN4vJvhbkrc4LvNussGvH2jFi9+RKeLW+pi137mogh+c3o2MCH4djlm/nt64Fbvd3CW5dTbctve8WqBPn1IgHKefI6cC1XHUsc15l1iHfIJdNz0pMPNOEDgMFkzW0bRk31dlQLgzrFpZd94EMu+FLeQktaSsiULI90y5Pc9tB3bR1ag4dNyUCYcPu4FsP/oY2lNw+kZEqxryK2cxOaqc968EzHtr8yoNPsgy6yiuNzAk+qeotKweoHKZ47DC52I9zqxhPXmW9LCD8aGgr3Xb5jlj9EpYn13pdsK3cmrPLwbruQevga6yBt7egaZhbnLYn4FvcoHejOTpxnYRjANqkon2gagM82Io3Te4Ob94mJnOsayMGWOtaLwYKKZNvlsB6ggZjXeMdd5QZfLWC86BlTNUxvaDX7AZPNB9tcUzgXd+pTvfTiMga3nr2RywSZWwQk9Rl8LGRWUfRBtmg8zaAF3rISiLOiBk7nrSQi+bHY10fWFPacfdgwQQwsSFXeeq3To5Vt6mGkWob/ZC12B2v+U3c4+sTEnjqRd50wdo2ubHmNZXg+7yic7slvjG17sRQx6iD+D5P5hF7nH9hqJ/7Uucj53xPGxTAdvq2W2B7Av62m/DuN1AnX2rrTgxNx54md27jXAZX6WW6tmWZB47qptroeBPKQ6cNOoXdJ0MPJtVODKh20nIXw4YK4OsAxYiFr+pvapNBLVInFvG2hxg7xBa5yyUXGQksA2zo1FyMiCdQYapRc2ydbIjVqZAL5zfkTdjxrS2QdV6jXf/Ol+6C7TA414vBn3orLdNNScqm8nizvOlaP/D4xGmR2c5CXgNrAsftHDY0f5hbotI0b5+Md9ziRquFFLEr+FonRLX9ol7Us+HA0u+x0/S2v5KyteetzLi32U7bLXBTLeAOHIO8Oiq5eRiA9uRh2vmNHNiGdadYuVlIctNTTGAMEp2zGEdhd9L2FvxN6tLBE8IDkmNG7DpGe7Ry8PsBYt42lXbcPaZAps1G5qRqQLFjVs9F2J51XTamxg2mlittmXnObddyl5HzV9v0RjqWVXy0nwOWYWPsYyqvusY4x8xUH9kynnVulNvX+9W/ke1bLpsNJ4jTf9iPVax45JVv38EzrjEDa8CO4XmT2/mta4HtFfCta8u73tJ0EKJceaad0yCVppPX8rTBLDOOsumKjdVqYVgPlumpHgOyJyFwVV79VAw425tisFcN2t6C/sQpmOluAjOmfdikbVGmrkz6tc4LPoSpbqqs8qH5q8l+nFcZtOtc5dCWWU5e62C8edaxXs2nMuK3fo0fHSfrVPumjSGvPNusPDDmQ5OqbSYg8NaxLPLa0Kl6+xxXh+dn+jay2n6uZ5y+dg4rXYN3PYMnkKp64si+2bMVs03fmhbYXgHfmna8663UTlkHJVfcg5TL7yW3bvWBPmOcZbY3LZvv3HLn8Jm8+njZCWsUHxps2tgUQmhi8p9two8JsYCRgSM3rufN1XTyDXmJx2XrodZ92UbDF9dRt1pu0J5ZZlfT+uDPsVuJMsmxWCe5eTRmmiOtPNswv8rgWQ7fsQZfh+A1pvWMj1UdQCXLKm1dcnRqOZR0ML/qmbYfY2vOd4DfrumIfsFIdX2WxowdGwVKE0JzDdR2gGcM9QEXctPKJX9W2Xb6AFpgewL+ABr1bjVJx3QyXXPTxtQcWR3sqgyayckDnvPirsOrjz6hdGkOHtYPuw3kgSUGoIKH7DZtsOW9KKLaDB0dprxa7rqAS+q+xANjXIHckPRgab3eRp2Yq4OBXbHVP3T/A6uytyixAu0ydoy1bLOy+ZFP9NAl1cnTdNUzL9HpG9oY842DD01Ocp6lub9aj5h82ghouzWvutVe0HyL122c9CLWT+rEx3PbaKPWLr5+oh0Uf62X26O2kS6gE7L1pdu4qnd0aNsT8B19+j684JlcFiaYNqov4zmqZYNZxRtHbqx5njRcJu8xtMGEmQU9Y23bg7J1gYOxfIFWodtFodmzTVibJYeBHBt1MIvYiqLljgHRZnW2nYoFT7luRQePg9IU69iW1cN+PWGFPynYr+VpOZqkHZJjXJfbmRhVFnSxu+CvYY13bpvk8OofE0TlZ2mjz9CRkNyTivXijqTJKg02MJkl3fwHv9HG3e7fhLVv3+yEvvP5P+htrkpEu9AmS2464Jnf22ymCXxt+DFsRYNsH255C2xPwLe8Se9+g30QKlVlApjy66Rg2oNAUe2kMTAq3QEm2qwS2ZIZxlu9iNq42nOb2DRfYs+xuH6UgU2hxmF7M7lthH/sFCPEirzyAudDqwwqrpdFzs03JtpbwuKm61Y/1nNe7VVd88kr1pNjlU9p/FUd046x4i2rvBoH8mV64KsuOsvqCY4UdlpOufqgPE3GT/m3Y1kT58/rdflHFfMJzg/t5fPEZ4HNM5+6Wa78+XF1+OzBg7Ptl68+wJO7PQF/gI17N5qms9YBbbM6guOPFANvoZfpVww64YecgtJ05ZfcHDCNgbdgW6NpDMDwQ5jyBQz8YuBGA3DXE76obIgt6rJoFi+9PaKgA75sp9suQngb+E0+jbPbaXLKYMJG4+Eszgm5ePxNU40J2bQMz3o1hmXnxz6MJ7c9n1/swez8YGQZEpz1myiy6rvy7SPsLVMs4IrdzB5wmzG+mLjtSVave/fMHh1Xhs8q2F9Qez5fJ14qEJMuldOKV/SzKzuHH9uze/Z925MvrfPBptv4VYIPtuLb1t9fC2w2IWANWQysZTQz3vkyr1O9iu2mRHRag4W/KCP8Nt9VL/y0EdMxoQ9N2oBNdtYBeSk3smfWbeZjgDY+QBJYFpNLEVrXuY32GAt2bsSozfOqBsrlHkdjVr/ISJE3YKVTmkdjzVsoq4Bd1yHaWGViWMBZmRx8ZsGtNBNCndCxQ/K5q9jw0RjGJTqPiEiWOe+xIhQo4m+4ar/S4Qu8kn7z+N6k7ozjvl3xFvOzRPtbX19f1U9jznZr9N+9c/bs/fcPf3XH2nBme6v5wz+X2xPwh9/md4THy5fHY9fXh09pMDy2uj58rv6CjSvQBzEPYIxWLS0M9E1umfVcrlh4yOsA7NGz62kkZDCcDtS2N81t37nlvexRWQKqUIqG9hwdxxE4g6uieLC7aFJ/jFlmw9QXE0ttN1CP10olr+4Lu/tBjgPsG0vOX08uKBbaNvw1nkVgza887JKchy+VqSci/tDDLgnasSQnj008tyN2xFJAtgmr+osyPP2FfXIVKAdPOQk6UpO5iMBbgh0jYaXxTaU+emj4uxcvjWdknxXl8+urwyujPit7cK8+AjSbxctP3e5tSOinIEd+DvKyXrJ69Lu2t5m/U6doewL+TrX8beJ3HMd79TNxn1qf6efLZsMnNbZ8SgMMk++9DDxMDDHgiu6DnWh45k9zVw28ZeaRL+MtyGsBfCtXPcdm6FJfUuz8ZqSXrVhyIPZV2BvIGkfoTJQmxQ2f/a36GKcu/JFCRrv5uwQRyKAnaGw3FvCeNuMbi5zJhTLJeZZUNrAIeSlnGmuIm/KN2rLbNaE8fLRypQ2pMVUaucs38tlvGsA3hQWeHbXcNikab3pZvUPWDpyPtVGr4HE4rlN1PAIUcUG/c3zu4sjHgHh2+rzsfG1lHE5sb+fScNtp2gLbE/C0Re7i8mmtaofrmmw1wWpw/YwGj0+dvTAciyprQPEgz2C05glAQg9Gzt1E4KY8y8gtc26ZBzvzp3bMN35ZzoRSk1+8Mg95YBrQ1am2K43etDy1GRgON0jYmNZnWmaw1v/wF3HqsODbweKnxW+XoedCy82r0MozbbUN8Uiw4L8BzTPeue1Y7jJ5xZgmJxlvPrxK13LlV/2pjWUy7DhN8ebfTD6NwbbQ5dqgj7Sq9dPUymxPH9f5OK7yFzmdZ86PYJiUT0j3a+p/zw8Hh+eP3AGrZcW8nT6gFtiegD+ghl1m9vdfGX/q3IXh6UMHdOesrZ+V9eHHPvHoB7P9ww9o6zthNQCsHxtnK5/RYHJ87apWtW2E6JOLRgWGhpn+ZWIYN72sFsnz4OQcrm3XgWrKN95Y4jAN1t7JnbBX9erNgTGWuxyGemG+jWlb9juNFRVqH3GIMJ688sI0PJglRbHwQq+UA6pyZTl252AqHeVQXNQzv9pqsIx1omNcrZPxYWtS3ylvGXaKcXvU+O2v6pu2rOaWObdNytglVZ7pKjM9xZo/9Vf56FCudk0jI63pbnVd20aEk+3KsQUHYCGph7EXPozaZZp9SvmPojucG4ZTZ8fnpXZiXFv/2vqw8rwG5Of5Io0F9e3CXdsC2xPwh3Rqv/Hq+LPqxF88dLB302N6M/GrL788Pvroo99+h+NHuFWVz+jeXPns+Ops+Di9Xp165AvWGUDaRKtd51HjwCyGBFa9KxptlDWMBhWNDQwXXhHrG9pnO7SXVwch085pxkpT9qBmWR3UplgwkSLO9E9MpK6noIhpmjyZmr/BdrO5mbzbb4CpC9tz3u00oupD05i2UWXAg0/7FoztRt4UzWsuQg/TNdl2c9knA/MdAzpVN2Ishox3XkRxTtmKdhtb1/G5bJ1lNsyr2EpjCx/TVDFVBt4y546n5paRWwfadTGv2jbWPJedww9aZ7Dbgad/4Vv2aWvann6mviU2MvW54Ekkyn1QrE/qo0Kf1C8jfA7eqvBvnR6f1/T+O2qVZyX/nY8e+WBu0mV7O32HW2B7Av4QTsAffHN8Sp31i9kD0yEdVB3y3msrwxdFPp3cmzu+rNXt3lU9q9U2smx+RoM528o8j1JaiQEiBwd1/uaIzi+PY0xgTMliJE8/mh6jRQAS1QShK87OHWHH8ByAwtdcp1LU07rwTTu3nLLpqh86jQHGetRvmc6CDaIkNuet2G00u2TmRY5OSZYVVpDF7FSUZWIsEs4DqcZYbVc6kS380obGVLtgp3zL4S+LE16d6GpM0CTLXbYP8xOV9TFNbrzpiEE2p3zkljkHYxr5NFkOH9o20SGR1/iMNy5Rcz2w1d8UP9VDf8pDP7agW7tFLNDtfIdPTaY+/7KQM7AEYMf1vAH2zzwa3/R1E73CDfVP4PfNU+MZXVTP6ob9a/ps7u88dP/29zJHe90Fh+0J+AM+iV9/efxRuXjanZ48VpbqhK3jfw75jcLQKvnenQf1ktS4/rmVlZVPasY8LvX8KI46aHR+len/8Jvd+aDBoICQFADljRcf58FGCFO3F4BLwAp5Bz8yqmTbWZqXzY/6tUHIcRk7zadyYnAcgVUBjG3DizougAI5P1jmXBJIbJCwZ7/VrjGWOU+tuU4xuyG2sG2F5qv6tSjq4ELLHQv27du8fmInOjcq1jirv0qjj4/uZ4lBZJulaqvS4OPlp6JoO84RVdr4yivqC1jzjeWas3/znE+xU9xU7nLNbavnEjKxag5NxwbHyZMH/efO1/gQI2vOgwQj1qjnRIkTo23vwHcKFd1ca6L+UX0rFWPJcPLt9TPSel59+FfWZsPvfPf2hOzmuuPy7Qn4Az5lsx3Dz9oFHY3B1YNN5LPhmOU1f/n18bgGls8Iwyr3k5Lp+e1Ke/GDnq+EPQ0EtpsdPyThJyb6LGbfbz27x9DKuVpOO75jRxSdP/UhI6GLPxI0f6bJrR9MHXpsZii3TrWDuPKDlp+IoflYnJ3ToHWy1GJqhdAV3cLt9sOcbTbsMp5tkiO3veA3/ep/inH9FtpEoKaaZlrBWJhuM2zHXyCXHxZiQld/1X7VcjvAq7hah4rfjLau/diu+c6X6VdfN8It0zXeecU4lsqDBkuy3HlyF49Tuy4vtaHnOet6iBOYqVGV9Ygn59MqE02R87veJt4oGyMB7WN/RGeR+e3m/bBEnxGQ3a/htbf0cSi92CX1X7m+Nnzt0Ye2vzqStrsT0vYE/AGepZdeHb+gOfNYDDrRU+VMOSSdMAi2jpVY5Q57h8+JzaT7OfXv/BhQrFRrR3eXRAsjpLzbzslYnbjdSacMTJPniyDhnJhif1o522DxUkhAsT/XwQZbbTv0xbI1RZ0qo9DU7UZyoOm/KIm0nnWjGsRney3v5aZuPMV59Elb5hxM3PiABazk5qKGsMzf4AdwS+HHcYlnnWYyUAsTb9FrZOjYh/UtM588kgyHTxWqD9OOvaEXMutxKU3Tgh8Bbc8423U+5Ue5CGlbtycyx7+hfiGUvPl0jDfKba/awrVTjT34OoCNGKpQCubZH5e87Vabbh98VFofQUoFXqZSq6WM9yfUc+lnyrPXAuteUkfgxFFMb6EfDWfvtpmOo52iDnEQk9SxvFz5OV1vn+NdjVfeGE+M4/rXVsfxVx97eOf/ktj5UQ+UXtF++MfhrMez5rlsm/pwW8Bn8MP1ukW8vfTa+LI6xjGPnDQ2fZEuVBt+Zcfwf6j8mWmzzHFzaopZKMsIt+V684P3rRaSBoF48cpsTdMC6ygdx1Ix5mFk985xRV9NV1kLtm+mULWjDVogHvScYytEhFcMW2cZr8D64E+wYK1njMvEY5/BM0A5E+fCVjqyGo9oxsqwIRG+0MFfTbYPDzp0oBso/BY7PBZA1vXQadj3m7kd0Of7f/funvuvss3sgyER1xRfZQFqGGjwJOsY2xkpjqNtm+VyzZFtZmvqy1jbs2I/5zLkNp7G1W3ZGX7BK686+/YO67pGcvpsWOTczHIjTEJPpZxtg4zeFi44hBo6gQOwmIxJ75uAqoogm/T/X5GtXxW0r45/+/fGY6h+35/YXi3TDt+pdBNn9TsV2p3tV5PvF3Qz+uXotGplN3TvxHQWepiSOuCa3p0axzV1UE2eukPVfwmYSNnngqeOHB0bnlNMtmknBgkk3FqTGkpFMczDjGTFRthFHrqOM3F5Qz4b9+8ZVvbsUoRK3U+j4bke0JslDzLGLsvBhE8ZQW6MbVrWyxroajzwl01y8Lst2Q1MOyHwp3aNrTnN4wSfP/tGZmzFQFd+9YP7WrbNqtN9TOyAccJOjW0zPrEyAe/RBBwJpdYGjROGok5NFLFPHdSy9W1LOfqkGpPr4WsMeZgxyDaLvTCpsnFRRpFUcFH0pNfw8Kamq2/kJNvOUjIWeFFIW1GvYnTPrnFd/ZtlbqYWYNc3H7Oi6YPRr0FHp6Rfzmn65IfR/3UuvqYAfuH6juE3/sT2VjVn4DuaymXyHY3jrnP+8snxZV3sx6LzqaeRM+CyRRcDW6mx+GtafQZ74YRICS686KxFh+2tkDUF5NatWPMiAPRlL7AhSKl9hLjYSYvjsG/PbGWfJmHk01Tr53qZBxbayfJpjpyYzEfFkxM824MG5xTlwgiylc2ebgOHXQtl6GZ0HJfVetkM7IguxQ3Pwn3ua71qPTh5XjnB73WDXw1baZOctjMcmuTyTr1IxwqY5DbN0odztM9p/uF4v7Ve9D3K3C5rW4ktZ9qznaiW0+bR/qVMBB0mOjBiuP91HYCkiSyZebwl/X999jtasf9X169rMn50eyVc2/fDot1HPyx/W8IPq1+tNr48rSydz8mDKrzVVY3X61oFKyWfrqhUFYIhvv5HZ1eZjqtS/EeAeT9/CmaMDDD113CBodhUcZj2ciBJI3Ob4A7sn63s3zvsyNhQfvdE6OEeh0pVl0nR8pTOJ9xebtt4LqMf1WgM2w5+EzC59foJV30GjVB2YxJsQE+IC36qI1Q2sWv7PW9GKPNHHfmL7eliE7LrmK+8kwHIsnmOj7BJU35yNz+ix7a6bqRuKhE3yXFmafPjMjy8m9E3zvkyL1VmmtzJ7V39WW5e1TPP+uSWV95mtD4VsKo1K8918lzohKR+npngt5Nku+ROi+ePvpvCjKsoWiFy8fX/g+n/+ojTMHxl9/rwq4/egu8lWAh7u7BpC5RLYlPMtuAmW+C39SLVXn2wXs+Hfl4qx+hM087njm8+ptfVka9fn12HJlnPdDB1qB3YvG8rV3yt33cz1beZTL4H928+Ade6WGcZzzK3wYbcAOWbTdJcsISN3Mm+ppOpbYDD19Rf8JsMmrQMs5ndKZa4SFM+PE/itDfyGv9SHTAI3mNy+yxT46NkepywkBxrZbo9zZuW4U95Ltfc+vZRZebZFjk8Y6xbc2Q1GQ/PtO1WO6ad24btWQd+xVT5hGbGXNP9TD9FtmGcfSzNuVAmdak41wWe7ULflG2AN5uWxNF8f0X5V7Qq/trNmtrGvb8WuMFl8P4MbkUtJt494/DvaQ35V3bunB3VNt97frv80pXxugZl7Wrx+Fc31pHTmmIpUaYD0mec3DkbINk8Pxalu2RN63lnjV5OAH4enDZtR+hm1r7sB/44O3QgVsALdYpYajBzYxuoKXbZ5FNNuV4LOXV3lJMch8hg0xZN3Cc5/JPiKyyb0G1isHXCjgvSsd0w4HKRw59iNtSvYcA6oUOKXLRNLvCRB4rz2bCtTFbrWthL+WCZgL0Cxo/bBd1aXubLcVlmXes5dxzGu2w9yta1zNiKMW4qs271N6VZ6cPjD5oEXXPozWwFsB0mmHW95LSmlxy5Z5Z+bB8ri74WUHGjn1Yb0POXo+hj2cfnmOxnlG+z/n9Cwf5NhfUbj/+x2SvzeLepW9UC9Mvt9D5b4B//4fjD+qWTn5b6D7ujHtg37BEd7dob14QHASnAoogeg8Pq2rB26fK4Wt9gtiyBAi9JTNbIV3iJA3nsijEgGNxe9lA5BoqGJwDKHuHDjlQ6zzFzjy96185xB8+C9RLPTM8S27CWPnqczeW03NiROS5y4+LmoLUD8RC6cSiZhk+ibF6UG4+QjekrzoKvOqHXwF2nr2eQZsJOTVEuvGrTbCZg1w3diLcYibLAFTOdtKd+a90wNS0X8wtkxfEMmAm4+jWYmOCTKr2sHKByWGav+jXU9ilTX0+Uljuv9m4Uy1RmffKp/+5b9fR5WsBLAXtLbAL3IyJFnRNo122ObB/9mrIueWMbIh2ijxlUAlWnXfgEQ28HFMEtSR9W/9dXev3ijh0rf3N7Il5yEr4N1ian9duwuAVUf+sbmnhn40/rhaofpjdHR1G9d+8aduzfM9vljmO++xidk5ewSPQpJ5+EsxfGqxqYWLYGQN2R2VUlJkrlouIOu9EYCYzKYY8JVSl0kAUNp+GC8AoZJoyWmk/7VqVC6gEpbRFOrKRmfCxJ25k79+rlrGWDDlanfPO6TdlKJ4uhIDeGgRqMw8MGPLcxZZIn3GrPNmzP5cBPbKCHXSfsYxOdmiom7FahaPsyG/XwSw5Th4iVc9lsOw+xeQ3bipR6qm1h5jJelUHHFrSekdxsCpsEIGJqP+oE813SVG9TuPy4v2yKKQL8x+pWeQsx27dg3g8Z9UJRV7rO9ar+2DiJG1X6Ff0txKUP9rgnscDvwQVJf4bIbEOjVjy2bsf+P4xf0QewfvFPfmL2G1RlO317LRDXw7dnYutoP/8H47+hpz4/re7zMfcVngLRLVmBHjk47NUgFxNSdL7WNHWANb/ygMG/dn1cP3txdsUnJXp6dHR1eiYMrTu19xW+1vURJHzSwePOOQaGNrlqwgaH3fgy+GYDH2yFwWeCpRx24LMt1nR8hw7QGK/MiSkm+NhGC/ls765xx4F98ab0DuHDfviKCqQN13dDHvZyUhIZk5IxUW6HZorSRgxtEJI8WD94HJrc/KzTok4YoB3AhmLKTWO5Tr7paR63y1UfXjPVbQav+XAb2Yfz6eoXHRrVtiodsha3+T2f8FkBH9AEjB0wJNvM0uLRdsx1vM7Nv1F+M36q/jLbjiNs6eB2sp75lJEZb/lmeeihoz/r6Byva8bVxKueMsRWs7pD9o28ec6dJuNr/8dP9MXSl+BFf5JCxEYeHx+UHXJsA9IoImSQ2CZFofXd263/rw+agFeH//yfeXx7Is6z9f6OPtfvT3uLaD339fGH1Hv+W80tH6NbqMeo37jf5kS2a+ew48ihYW/rTb1lpmUE00GGshOr4KvXdGlrSIDNREontZzcEyV0yixWUA3vPDA6VDvhTyoxe4eXtGk/0o0Kuq45MGQc09ixP/c1Dnv3zHboJbQdGuh3sFVN/a1T28I0kZtOW1muOmBoC3ISE6HlyUmdkOtgnO2Sm7ZelGXU/IrZYLMxphj8wLNNYBWDPOLGP0Il5E6mPbHbjvkFGiq1DWzj3fKqs1M3cAf2S6PEM9Unhqm82gA/LZtH7pjBkGrZdEryaH8VuyBXYZlexUA7pp6LcDtaDqjyqg3Ntmv6OM71tTX9TEL0bSzN7c6xy/s/dukH+etHoCNqza45PmQ5bYZUClH3iNx45K7tHdP//zfdHPxHmohfoRbb6b21wPyKeG96WwL9j14Yf0h3vX9dHeWHPCllg7mTZDOoKw2HtfrV28LxolLtRjfTUMa3fHzzneGSJsxwwlETo8wUn5CwdAhJ68yJTSQ0P6KwoIdKS8RMYqzxlmhHh09Li9/AJwr9vAfJVWD6QoeUAa7sGFfu2adtebWLtqzjY0zEVdN0tefJyBjwVSXKlSFgxN8UEFUMTWCfdeK2jk1VHUwFXwfLIaaxBq/5DZ0G7v5UzlZOO9DVRvVpnW6nxF3rUNxtSuKnx11QXgGbBcbYuFTQI+bmu+bVIHp+lOJ2XLBpfexZoNy+YFW6QHp7wXN8HVzswnObYStSI6Z16IZk0PFQN8WuTx8M11dXRz6BEOYwEX1DpfDfGubd+n82nMPIQNKXe0rNExf2W41t33VN7xnUndD/ddH8DzvG4We2J+I8tzd7bJfszcK3Bu6rv3363oN77v1r6gT/LjXuPbNUv69J1YJaWaw8cN/sAOLswAmMxnULq7dlh0tZds6CE2neFa2A3z4zXg5pM9jGgVRoxw0DjaXFUZCt3PHChVnxbTfqCF+Cot4HOUxXbFt5u3ahhB4pbLSCdfRV0rP9e2c7DxwYduzdNeyUYuy9WQe96eRLkBGXQOCgF+IsfPRJljtP5pKJLwTzQ7UN1xMLfkkbYhMvdEKaB/skdxuEnVaPKrda2LCTxkTHiQYuRbM35FOc/VcgE/DBfckJvyKrHpOqY3Tbx/krAYRd6YFD1+W0igBmllpWWdmuFjRo+BTPbJfDB0zZdAj4C5YZ6SqY5vcQxMBG1Mu+lOtz96tra8OqHvmsxhOkhnNd4yGN9KKM+27QziSDR8JpSRR9/uy3iDeQto1e0MrRs42s7DyWagB8tH+JNeQl3iBbueMFsr+FOsKXoKj3mLBbsUv7/zic1T7Zz/3AE7OfAb+d3r0FOA/bqbTAP3px/HPaUvk5XYWHNQHP20eUNpN0bca9afQ/C+/ZP9t15PCwz2Uu4EiN6BeumBVjGqw7R9A6vH1muKSPJunD/m0Xq21DLzw/4s1n7XHRY3AVnUeE7cLTrwNHv+48GcRHTVmvqFkuqSUMXjif246iDs7T6WLs8NyJg+Y5NaMcr5TEM2vinY16eWvnPQeGXXord6depom3qgk0gm3BRbkGKnoZBgh1JVnfeeWZtl23F/zpBNsHQIRKtuc8eIVvzIKcoNTanUf9io75zrFBqhhOVjPTT2zFWx6KOrhMTkLXKSZgbUHnj3Yk17anuXXILau8Si+T07becQDrtp5iaxma5NiztLn/qmusc8ucw7+uiffKNV50nPGMVyHRN3Q92mEDx+TSrlnbA8N1TzQ6LPR/MGGLvkGBPhvM7JuhC7vZRxQprLUbhFBItm1Rcl/LCU826vPj27T/692UV9Sh/5Xvf2L2atZo+7hZC/jS20y+Zfj/4J+Mhw9cXP9r6g7/Tm4H0dX0O7ithbQlzGTGXKKUvcXlRz463MMb0HQwDzTOQWevbB1wSRkMqepoAhhfe2M4p19dCWfcFeM3JwYKGc+ackpsASNLHNi8i46ZrdWh81Jdv2cqTg4ViCIA8LYTdY7gCaH9vBq4DCko+KS8a09cyvUV1uAclzC84A3ed/hG79nNR5yGnVoh79J3Ti983pjwwDlFuTAcfmFFlTpfAqrgCTZwOlQ8ti2HRmb91lTRJrW5Ig7Ak7RgpzmxL9t0jmrYMYBy49kvmFuRsMdb0F4Bvx+btCPxTnPbgu9UceYty23LsmnZ/M3yd8MrjlE7SlevXh+vra3N+P7mSPUan9tO4c32f65lJ1/T5PpeWUnmMjBV7osvxxJbWMy5DqqFjPvb6//hT4bDlvIPuv/rpdH/4ge/d/ZfLtZsu1RboJ7jyt9S9D98YfyYes2vqmN8zHeaGmnUh9oKU60Bn0GFi5fO4cTLVx97YOD3OfvANKWNXZbfaAA5d3G8+taZ2UViwWfGoLtsr4bF5wSyslRqt93pJQR5ox4M5PFZYeUwsi75tnS3C19/LoMjLfij/gLVuMNXKkYcvZzKc57KC35DLluNL6Pjzvy88U59xGmXvtBkl9o76o4eyXmWNIg0vm20YseB58/xWp7GJCs2bXvBZpMv2MCmA2h5nXhh2UaHNR37MCZOhgrww6bzrnhzRNR/CbTyWQHfw0tYSjUOym4f0+Q1GW+cc2OWlZFZz7iaT3Us24xvec0rFprUfK5f1sR78fJ4NVhqV1/X1nEZHdO+1mXkpvp/4vCAkbCU13tjBafSbUwJP+Gjxws0UpXJqG4h7uT+P/69ccfKT//p7dWwT+9C3i7ZBd6WKvzGb49/SnuiX1H/OaQJKlZpsWrs95+9Z21oFwbd+w4Pez9yeDgQnboh3KhoOrnTR1kCPlJUByd0Kt56r31rOBdb0bHRbJQ9eOWm1TB3BoqHVWbQdkQ9fLvfOjJ+eFvTPsiZoBUjkSU7ZpBGK1bquqJvHYnfDVa+ErfT4bL7Swzu8m3QuX1cNVvBZEzRyKIs2rzgMw7dGMi/4pmxMtYW/x4mY3/Ey3axWtuQ6Am7t7Vc+gcOjAs5ejainLiX6jQMcsKnBtipNtALeZPZju3bLw7hUa46YkWC32UAlcJfku/5WHWhSV4B459kf1maH+HX5DrBq3Qt26b1NrM9lVec/dqHbZpf/VW64q/ppaoLl8fL1/TVrvz6k7ZsY5OZrdz4GJ+2cLn0+AxxbSOut/fT/7M+0WCx5cOu2GJCpo5F39P/7EP0peadZaj6k+oY/c99KJanrd+pq5a+mfbsI6+927v/6xx8c7Y2+9yf/v7tLWmfN+fTq8X8LZH/xm+t/rgu3f+aysZAoAueUdIdOvg6RFeB72eYCEgSfPzB2WFNErsCk6wQRTdpTGhSDCgqdJl44TekyTfOg86lq8P1V18fzzbIhgybdMKwvVGKN6JIn+TiGEvucs3TTAMS7JIEG8NhA/kEZ3uIFpM1F7nc9TNILXIpxTzNADTs2THs3LdPL3LtHXZry3+3LZHjz8k0eY0Dmskz7lUavmKtXyfYZXJUzUfHE7DbM2TURMBww0Fl+NZzjr7p6he+kxslbImJn267gRrLKgu5ZdqtiS1o9H3NOGYruOwcvmnHSdkJnsvGWUZe5eZP7UwxLju33ma5cKP6yZVrudWsj/DN2xTa8UWdWx83Hx+k8PU++r/PQ2mSNMjRDT/nLFDERUz1G8Eca4uL6JaatiHbsJ75mXOTfXv0f9Xnm9fHqz/6Z75/36uLMW7t0g1P7t3cNF97bvzXdEPK5Ju3lwwk6k2tP4pde4+WYgAXuKN+X3U2++MfH+4XO1LoNgO9Q0jRnRxQ2BGmy1O16yOfpt87MbyjVeWaR8K4HcZGi7fdHndH8idWrnDDjxjANcCPceMdUUy9UG7BL4oUklfLEznFdADRtAqGvm+2bEOmNKlej46hCkU/zKew88PmOGg7VR9vmu3SVvWevXuHXTLM8LnQ1tUUNJY38Jo7BkEGQybBmkJPPKpp3SkGw5UXJnSIvPlE1zbI8UWyzapDja0LZlqGdzNpqscW9CG9q+9YNrNhuWOLU7wZuPCNh7VMx/HYPrhKU6bi1H2qX3HFz/qFS+Pl85eGy7q6okXRY9VLo9Fr2Y1xX5CkhQAoMFHu16E84ztTg0Zhef83Uqamn/8tNiCz/+HVOvMc29UvdVfc8SUdTVGdNq7/qFx07hZ+6kX84SbNE49SFKIdxVDhO97/FcQ5fcr6xz77z85+d17/rU1xlW259NXfvP5nx5WdX87+kJ0rG4Frdt4kWWqdgytYVzMlI/QzfbsffWg4Om3A1k+m7F5Gzp8HYWgSYwJpqv/62+P5d87qWbBS+k+FebTiamzJPteMAe6pRV0GI9sJl1G3uW3bFYYKU++AYY6BION1DBrgWui1Je26TZwxIGAPrCxSD5HaWwsg0cClVGlbSQeEobE1T0PHIxtn+/fNdt2zb9y3Z8+wWzdGmmrm7Wsr6WM+Wbq9kZsmN4688m1nYbIFD7AklztbRMwJVH6Cr1jobI/FGHoDy0e2UHG2CQ/EFLtTK+DDvAW9qH7TpRrHuyktq8eNdGqslV6mc/X6cO3cheGCvrDmWl6P6Y16db9R4HqLnRUEC9dytkFqWGfe6uk1pXk90mjT/h8jgU4afJKvXJ3k8NZc9pgS085L9MWwmrqlbwajHfL6WPSBXVLGl1S4jG46r02A4kBk4hcfyYkmiWuSG/PKw4rKC20WnqK+UOkHTFgOTvKQOm3o/+Pw6so4+/Of+edm3zRmK+cbW+wub41f+83xu3fMxv9R1fxuV5WlU1uQmJU5Iz5XdkvzCz4ZD903O/jgfcM9MXB2VA78rU9aNfJ+pdpedOo5pMqrzXMXhyt/eHI4Fde845nE1usw4Wt02FAHeu6G+Bqu+l3UpXdHW7Rm6GWMwYsOTqYBCTO9DLkhlbh67BUkOU3K5CqL4TsdF78d33hhU9/JvXPcrccC/O3VD0i0n6CXrbDXlWLgoeQ6c0MUcTdIViILpnveMGSd15QpL7NjHELLzZvqFPMbyHqdRBtNEFMeZRITsF/CCp4O+J3iEz3nW5+YK9ZxLPCEcd3Mj2utMTfI7Kzllk/Y2Fy/dGW4cuHScEkfJYovzmjRyI3OP0d8c72Ua2tqZ9m1towXehM7xIaPniTXV73N+CFv89NWxqNgzA6VjX54uJsxY5u7xj4OTXy7jt3mRN5tT/jTtoj21SHOSUTVDk0vrgdHvWCr97vWDL2MsTDr2N6t/8v87x5Ym/2FH/iB2bkawlakFz7ysRUaQFPD39ZF9l2qa9+y0kd9NqS4iPKzglq8ZEcKnjpVDiizcZ9eDEJxejGznWm+L2jnKUkdeNPk50HY5A/Mvj3jLuVa/gkdi0e0QrlbYBDIxFiU23EsMGM7DnDrVLCoT/cNf24qKVuNPpbSNBG7WNRfiAbNTHGpjcaZXimRy9Ze81gdW8ltW/5pf0Wkd2RWeBcm9pIjRldIvrJOQjW/1Md1IR7VJ+JiANYKia/zvHrm/HCet9T1meM9+/eM+7RK3tur20KhHdzOsKq80g2e3l1Qjn5vS5VjpVvkVjAGX2BcrlD8RRJR5eZLLZJl8M1ropTXwgQTtppB28m2FFB8eBvsNkblQ0+T5VXmtrWs6zQG8VtmPZfBqq3Wz18cLpzVilcXB7MrZzoqzjWiFL3C287xWyZcgOIjnzbQvJ9kJJh6v/0f+7IXp8DnIe3HxRhVi/YkXJXsmzpEbFJtepGFvFderKSpS+Lvkv6vmj1+bjb8JZ2Bv51nYeseOcVbJv3v/9fqk3pw+7foDE50wEwexeeDUHQACRPPJKwhv+Hhfe/3zB7Q27n6XaC0UO02o5FZTg7GOJcth28eiqbJ/58Xxj9SPHHTYNt0TFmT1LkkcCa6GpzU55khhdSLZDxfwobtB90O0xhg17SgIyuuCxhk9h9lijFmEl+mwARfeFgMLr6pMX9qp/mx/TYwefDCSk9NdUMsAJBpEt6nl7jYqt6jbzDb6fgdYNRfOMrQlqvYedBOlm/IDVBuO375q2Lx45hdIcdSTCwl0SMZ73PT7aW429/dVsDGISAW8PD6zUMzUHk1TtejwUI/XMFwsoLKri/2ItiGs+9QEc84yvqKyCtnL46XLvJ8dzZbi2eiCLjmuZRzMurxOwiu9egXzZ5dhmo7VD8RE3wZ0HUY7dDjKnEqOpUW+3+oLTnYZvFDNPIwv+8Ntbjuqc+87ugWvW5d7H6ezbzT+/9w9cqf+hc/s39Lb0VvqRWw1lg/pWt+nV8I8N2or2rfKnsQ4g5V2Jyp4opPhKcSxhdt6a14tQvEnccdMNTagU7FHzLLaxnaq1/bNA8T+i7l4fK1/FBN74wAZLYFujg540/CjJdeneV2u980JccAOP0FkcNbyIPX2FrUs9Tot+zAse3BeO6r+UEeujpKqMEiBzj9jEpjZGXkCYbaOtA6RDv1mFT2OYncMAHAkDSwRWCI3Ag+T/EFJSDll+D1ws7FC5dnF3DIzdOBvbN9+q7q/XpBaWGrOuxGYFAt2aGLxKA/n08qEuE1XJWBIX54/OUztzTkejU1e9uQh+3GxR52anJ5wu7tBD/0Wo5ujx26lasdeCRwpl2OHBmEEnqOq+YAwHS5aMoLvsUgvst6m/mds8OZS1fj87vikPIaiXMrI0CjjvgLqRmUuc5yFyXaNeHqJO7L6ahfyGEIvSTyHPExOmxahxgS4esKtH0jJbkMJq3FfW/s6Ky1kQRMAmVcXSqwCUZixbmt5EYLOGb7cSvcqf1/2L3np1S9/7BVcUtmW2YC/vv/8NoPqAM/rCt5vU++5ZTP+0AO5tlL5ttTuuhjDmG7Sgg6z6gVxYb286DiThIdDj9hIAeKLqs8aOOAq0BMjksTBuNPbNECc4qBIhTFybCiNNcrtjSi5F2ztZkUkmf8XJJ1z4FonK1qsICep2yn+fbdTHO73gwvmGyrbDdWF5Ek1yDn6kUFc8dQVQVS9EOj8Zq23nCNpi8oTKTU54Y6Gk9M9iuS9RNx8jb4eFmDvL4l6co754bTmoD1gxHjvkMHVg7o27j2bYjFBtNaG/taoWU8Q55XrNHSI4S4LhQ1/qljZOTI0IfRUpRFF5ZFPS/VWsCheyM9DNh+0Cp0W03gG0HkC+BSBBp1Jf5mI+rY+Mr6DWUzm22AHGFJard1bTGfffvceE6xxDVerzUmxXmZN5v5wSKuA+qKtXmNTcWEJ2P0dW7CSCGbH4Lng/WILurTBL6+ZWFD/wcyjyvtL8YalWHZnF7V12SlXa4Zk/sftrgppF4CROVU8KlBCiRu4oJoB/z3VcId1/9nP/L3/+/x0L+8hZ8Fb5hA6sm9m+hxtutHtD2lntu6mrJG0bN0zUfnoBP0ake/ncPnvaH1UMuBQGeXSvXgdUspQ95U+0BMEFXPtDuyw9HYzg+EMwn3hC0G/bSQs0s8gBXfetgjliyndeiYpKizvE+xMQiELHX58g00+c6A1FWhtZ7L0a6y6wELRLSrcm95G1t9gqtlTg/xRtuGTGWtXvXFBevY0YDDOBUH1VhDDucNHVYr0FkfQeOcYidtCQmo2aR9q99r6/o55uszvV27fm7nztlMz/f36tnxwb27Z/uYnJtatINthAUaRom6MRhiFxZlcPyRKEeSMJf+vejd1AaY63RGI2yi8isv/FahaOrefReZ+VOZ+QW6lKw4bNTyVAEZaYrTjyFcPXdxdv7MhfH86lpe22CjHrLp2Mh1ZltbUmOd4ziC4brn3IKYJ1T4cWoB+jlP/2gqAUgq9MFRCew5RdxzuGRdIZSR60cdIgW2iYF1LLE2PS7UvO7mOrilD+vN/aiK6gZcVXKd8jUOiUPQXESGzzu8/x9URf6M/v6nWq+tRPeB5W6vtBaQ/5Qu9j6BzS9wrvbod2QUemc2hry3Dx26lfXB/9U9u+OXfaQnhDua6CjOtUK9d1LcaE83OibAlpDPO2syGdThX7kyu7LhbrnFGoHHDJRx8hzMrsN8i5dBim/AQsZdtv7LJHfdGbrryUQnXphwgyELfsQt87RDm/TqoNKqElm0J/hc4qYOVlvcgHobi3bM8Imz1peBToHnNngMx8Bj8OWn0wkItWy+Zp86EKPlrlO+5dWaKM5ntEX7dqQV/USdVvyrs/PnL44X8LFP29QH9g0HNCnv07dJ6SftM6WzPD+c8KgaQbS/QEVYicnBMnU3O8pM1kT5MjpOFsqy20xTijQtm1ntNOimmesEIC6CEj8y84xzeZlBY5zb5sWrw6W3T42nLl6ZXcrYOCrpXMS1kSUVVVbytReyCS/1I7C8lnXuw45ah2/kkJxNE4W5EvJmOmzO7eNKLFp02bWJTae4XnztEHLrP0IAiutW1yc3Wb62rRp9Xvx+bUsABvlq7lFjjEuZSiBUz8k2kEDdT8eGD78t1q5j2Z3U/4f1P+722Yr5lpmA18eVh6Iv6gKns2WPywkoaRZquuTpU9EvmKiiL0Qn88WhDtA6Onef2pnVo+C5klEb8ykmncxxlEngnMy7eGm8qv7JXEgv1DFmoAhVITu+DDdFwmZnjU5LnbIjj2zJYpcVpXlyOrIvr9/vRUYnj85OHA2LntjavtfXgejr9GCrzNwWBEjCoxGjBtQDmT7zBzYS7RtEOAkFAqPO0fbIbHg17cRWcYszxOknKpcvk1F9HKPLgRQ2Wx0iVORxPpv/aCR8w+f2ACW96YNqWBEn2kKVHoaLV4YLF6+MFxHpG7h2aiLef3D/7LDesI5vVg6V5twxoJemZLrR0SacxZaMpQgdUTSZ9Z0b2202HFnVm5atZz72SMvswLe/KQZ8lSEn2Y5z268yeGu6TTp/cXbmzVPrZ1bXZ9d0M8L1EzYwExdXXArwEMT1269R3HNywOGrXWeAI64WCGWuSXnk6xlXRvnVTedKXKcBDSu3pv/LDQFFWMRBon/pLiLedFDwsKIDRLtEX4iOHBJJozIUan+E3xsn7VOdsEVHQUsVpI7hLa9jLlhQ7ZrO9lO9iRBgXuS3W/9XpVgFb9m0dSZgXYPq1swjOtl5NbdrmitZAwRXPdcvV6uu8IZRISgwccmrA9Bh2AvV1tklfRnHXsrxvbNgWoLnl6nMi06oQnZGCEtuwBPk0rWZvukn7qlTJ2KKjq9YGLWIN1MOUDEIhCwoCwWhzLFvXanOYVkr1ezbmg2NJxccbNrJtmBuxErghAm4DlEvYqHyYATKdlXRRmFK3uZpWZEeujFwUIiVdtQJWfrAm/0oEnxEmVgjsvSJbfjYAxBRkmeCFYg4vxRkR4HoXHJtxOorADKADdBhP5Q4jMO11dkaW6dnL42ndQms6HPGB/RtXPfoha79Wh3vDj3poh4mMNOItAkjExapX5g30/lEJ71bOM+X8bvfOSyrpbJjaE3VywW6KWldAOjXclWqfJ3/a2f0fPdbp2fvrK1xpelCi8S1lNcReGKOuFvwZCDBrPtlAtFpW1LOnRXBCagUl5lWmCrrnQT6tP7Jb/spTHDzFktXVKSdBy6aoNFKKYah0OKAA9zS/5PAefwXS3Mt+KZKjKEnAPUA5/OtZXmMD4FtpqBT3uoZFzEW+MOo8iDTXvqKiodUABpB/vGWeVCOJ6ykrdul/ytKLYy2btoyE7C+yJFru00lMT63y7Jd2LqEo5P0S1kXha97Lmak7vQSra+Os2+dGc4+8kB+E5atcClBR/9ULpVkzDNRSvBbZl3GBvC9Aydk+KO3xtNaoarL5t1zqqLlpOii2Dqm2ETcU85GgeEmI1cf3CILz4PdwJKr24Z/67Z6N1tqwGyCbjhxjjnsddUyyesbBnJLLvP0kzHLHUt7a4Vl7DFAZHwSNr/2E3VV7EScAwkAbM/jyYHM5xkkSTl1DtjcpZb3KW5hhC2w6Uhcy4ElzVEhrp9fHc7qc6pnOTf6Ssz9+/cNh/btnu3XR5z2pZ9mumXYJmX9IqJk6Fi9dKYIVDaTbcav+tDgmusQERuxRF2bEdPOA7jJYVo365h/5epw4fVT41sXLs1i54AIjEmTWauMyzUkICFlRFidztw+Cb24SDLQkK1pc6Rd5PaZuT/hwFnLCTDMYTQSXF8XMDIC8pBEObnRYKHV+gEOmxn6v1K3iSV+GjQqgKVWJWx60k9p2gKv5945TsS1rmsCgMDaqi6XXHMRlu++/q/meY222Kppy0zAurB/T53hAWaQ3HPMazz6O3NR9DkWQnHnTTejp5B0FDYZDN+6M4+HSsPbZ2bn+Do8PQcJyA5mAAA+C0lEQVTenSgp0bubVnRC0T2HrxRm03bHU0QvdG1DZb2le+2t08O5FmDr8Y49f0ZFMGyipTm8DTri6J/6MnflIISRNMhY8KkY6NRNi2EhQpEV5amoY7rHvDaVA4C98ImdAOM9FPAbDRVyidcyqh6IdJmAcB/1FRntGwWCZNeuHQg8UKyaKVBPxPjMFQc3OzERZ9W9ipBNrKAtxdBAARNpCIpUSzyy1nwcOvDRzRxTYCNI1JBENQOj70TST9+du3R5OKedz5l2RHbp2fEBfcTpqN6WP+iKpl5Wqd0khK0wWwNJbhwrO2OYqwQlZtarKC0hF+w0nYW4GgBb8Gu+xNwCC6zOwdqZi8OpcxfGc2cvzvT8nHOU/YV2Y/uJK1bcMI8BTlm6bc2LHdgyGM9tafb2kCDA7Zw3tQgxA5GrPEWcF3Qlw086A8P1cCv7f4sb070+8hLeiT/qkSUwiglu1DNoeLoGxI6cLAy16zzLrb7NAZVUwgf27ob+v/J7UaUtetgyE7CeAf+m7h8/w4igi1edWlTbDYvnJIyl7bfEYsdLiLjYuSPVdAKtgwYGVJsNdbGvvzp77ZOPzf4Y3Sh6ki+kUqDzkMKI8igWObJaNI3eb744viTf7ITS7xitFKeymMAUiTCxnZXxKtD1+CiQoBpv9A0GyrBHR+edjuj/eptabcFYlOWsGfYJhGO4iXaJqVQmBNY/mQlxOwonk7Rj+MCJ27TxCSLCDf+oxUQqa0ESYjOoiHAjAD4kp+FjFQQYUJinntgOqAhhVnlLGoNhMsPx2ys8K2RrUBq4lqF0IvXkJVvGJROTNlG9Q4YeYz9Y52EkjJmSVrR1fD4qrOl8rF/XjsW11fGKvo3rlN6iXtmzZ3ZQW9WH9RGnezQ5x1Y1vogpGq9Hk8aXsQ1PhP03G405xUzLXVcO8J81NXfOM9/5HLGRYuI9dW741uvvjG9r2zd/jUgnK/qX2ntVlYy6yl1cFjpTPIvMiuc55HS288tGRjYN5yFu+qSoc5FnTMpcHjpyfWAlUijDhT3r7yysRtkgzEWV6cS3pP+rDjHTUtfwLVdciEQbL10pcoUQMA50FS41wkdkvdi+bmG6ZQTlYueqzCuSemP8Lur/eqXk//XZ2Yr5lpmAd+4e/tfr12Z/WSf5Hnfa7Ix0faUYjeaXwLxnM/pHl5KQHpB9n85EBzn51nDq8IFx77GHZg+jvfAZSjRASSVWaEvk4dYBYUDJOi+fHE5evDy7lIOKnMufIomOG306YoGbOui2gYyYo1rMh4yFJPXcYDYb4uQAlnUKSPhOKmziEBz/5k3SAATC4JCYHB9pqrAn74w80MrCSntxRirZdq0izYOAhBi+0mdr94BxMxATKfWKAYmBtqwAomYY0MtUWCwYAnd7iM+6IVIMx0mGHqTm64gfPHLpNn+Zgwlb1E/yKIsCJ9Mqa/8wleAF9trqsKbtxlMXLo6nqXs8M94zHtGXqxzU5LwfrZtJFbbsuoE3tYXOEjbNEGlqh5jfLVlHX5px7lunx2+dOjc7k9cUzZ5tYqfZLmpH7q6UkLMS5txx4ehsaFbOJs9rxd4F1//UF1CQfkMoCHz9RQqfwiIHJ8U4YjdkwsU5k8GIPdU4e5jBDYEttJ1tEwTnExyAQOMnzn1oAsmAAksVCS1iiQgDrB0S9HWY64qKuASd91FiCZdIZUztFPVIVduNCDCVBqlIJOLDVtY374Hmtm+v/q9QX//8Z2dfz8i35lFncOukZ746/iW90PGXo9J0OK5eJVPZFbOzxVgqGRdvrK4EAz3HWltMCfS1lN/16MPxHdNizHFRmBzCv3jpfVFIRyK0E68Pr/1/L40neR6kZYP6tGIRNFdzipG+mTY8GkRseI5uXoINZeaSHEXCYdMVWlSMF01dYRECoI5hQGgxiGk7kdM2xgcoFLWVwCDEwBGfb8yBkAk4gpaRZkaZHoTpx4v4tUW9rRqxldCpJJ9/ZoVLRBLlbB7FYGl1it2gW+DQSixNenCynTocWYXLKKD44aRozKhPStMOcbSU410reEDDadgPQ12nYRW4/imlGVyAFyPheTnpTerde/aMhw7unX1Eq+NDxWfztjxrLpvx7ns5uHH5PeB79c4pMZMcf5bm5RvxwZ47P55+88zwhr484zyVzZbN2lJFmXd4UeE4rVFxpPzXP0AqxpWgcuapCDSAkVdj4jY9KWMEPwlvpnTRiZfXUfaYHbKdsYVV9CFw3lRNRV8InjmL/R+1muwYFU6uvXT7CjavM9a9c83wk+WoA3bs0bCwjd27uP9rLPvP/vw/P/t785bZepTP95ao+S9/dTyoNyX+Z90p3zOpeO0DvTtw/auzaGBe00dvct3UOniM+BqI6cbZV9Tx7zu8sl8T8bEjhzSQoixLE8Ot86cgFLu3xJ+7NF568eXZy2+8M55vMYaJZsfmpJW2Y+sqDMUh+DEYEEAk7bWJ1EzYyh52mIDieW4MRV2Ys/GEh7RtHopqs2iv2/r6mljYzwmSPMfHhSZAT22ZgyYhYbW2kYoELdbcF+XGVDWyZuKRluKy3blbmNc3TeTEHTcMjPeRwk+ewDToAKTPwoxsQRx8AhG8haU7AkDi4Zukj5RQzywIqlHWdrqe69RAkenLGHYe3D8c0ReAHNJb1Ue1m9K/qxpA81NV3hPNBHxYvweMnWkiXNt3XjHaVVh9+/T4xuvvDK/rM9LaZs76pVqcd8NdR5VjMgzTeeNIO6WehMYt5HFVsnq0gw6z+RA4xMhTUideTkXumHC92aOMQvp6mhtsfDEaNN2rIPucy5vr/37+UoIn+ta0GUa7FsK3jNMcNT45zMcuALCjVGMOOtkpuFP7v+r+xud/ZOVfdV22at7O8dap/i/9g9XPr4wr/36/0OMZS27N0Ap0CP2LEWDaKmUCYUhVz57Davm+w8P+jz04PPCRw8NhfV5UQ15JrXe2nh6C1dVh9cz58exLrw0nNcDpJ7r4qj1vlKbugm9Yzb/7b64QE8ugA5UDiAcV6sZzXybdjfbdszfmbOfN69nsenAIh9PYWhUDY58AKy4UN+Ehy/bZGKf1AtPqU3nB18HNrDzbojUGMegGjCW6noSvafyat/OG+FwR7IXemtYj0HHjEoa7TjiKiTf8OSa3p8vOaZeVlR0KhcuIyaPZLXXSj0Yc2rdvuG//3tlRPTfuXwASWB2yjShlJWs5uYtHfozh0OLVqLpwXSziaunS1eGMrs1Tb54avqXrVNsV2RbtGiPu0O7tAKPUofLRJUkh3GZpfrQeBjEcbT45R+5nXJR6rhPnD3xORJLm+cV+1AtiWQzG6TZL/f3W9n+57j5b4/DsN1Kcb8St3WC6vqa3Qv+/vn75yX/zzx54PRplCx+4Trdc+qVfW/sr2u78C1Rcm5RZf14P8aoJmm2s6MXQpFZOZrI41t5TygxqaHz0vtlHv+fh4RM8G9bzvkhnLw5vXrg8nNXnSVdPnx0unrs0XCGS8G/fIH12WoiUdbus/6zNZLBjU5etQI3oqacMtRyJii2Rgev1VjlAiiC2gTPI3i7Ch5/WNt0H/B5fix2eU/hfXImi69QGIm53enKbxeBqblSiFaY0bPSjHaDVJk69beCbOcmFWdEWdNRVtmkHt180Y9Hr5WkM4R+7XCcxP2ebwwJLEibOmyYNtwF+wlTzYXngJdA51st0LTYxd+kbuA4dmB3VW9VsVd8LzuZDpxx6SBMevwdct6CLOMiYFZpRffnIGX387ZXT54ezIWwxLewsOIDmkCJf/7hw7aQTRK2myejXIOfJ500ogeKOL1HzY7Q/xfC1qBOoFkOnIWQvzumSlurnwbKFOPJcdl9hlN4MUR2lj+QHKE+KIMSLRkz09gGEliCFLeUuc/0s9OklGOncJf3/v/nxf2H2DM2w1ZMvgy3XDr/0a+PPahL45LTiGj50jccdsfJ59zAu+0DyKz3tl8Y/cN/w4Hd/dNa/bo2O+dpbw++/+c74xtxXbp8t95fx2N6yu3nLam7by3hVBm0M9TY9za1TB2nqrPVka69JnBO7QPN2J310ew2XbZ6xLIvD+B4X85dGUfvv/EZEaPX8ieGzaVu0pZ5Ba5yMiTPrjqK+4kwbmFEGmyaZ3Bkkd2h+QQdzi+1lu4mfHLGr1uLGA4nt2gbizc5/WprHqK3kffoCmENaId+vyfgIW9UTbwtFHFIZb0Fb6HPpPLaZTw3f1MT7ml4cW53WZ2O5N2mrD1OOXLGqDJ/0I+iMveqbpt71uuixSc9tYx556LFiDR/4a6/251ZQ+ENvbn+z63Pz9k79zeRzPrH3c6aCr68ab8bccA2zLDa30UbdxXa44/v/OPzCX/yXdv78tJ5btXzDjns3N4reiv5Pr18b/5b68fdoAFI/ipFDVdYLQbHlSt+iT0UXi21pkWU/1vjWq9wT65pOEL0fFIuq2pbsgWoi1vJwRwzI88HeNhmUct9XazQVOj86OYF1nv0Bgd2GAX7vp3ZWaH0UK9Woo7fP4/sns54Ig6o2RVs3c4Sus4YSxZepLe/Tgo7TMgFmXcA7Fni0KzytALg/iTK+IOQ9Mv3OUsacTdGr3wauFhPKmcKOyDh/yvtIGeGr3ZHES2E7VqG7Qbzyyle4Vpu5foLM8nzJ2gpLpKoj2Rzb20cI2hkZvsKPmkzORedkZb+Ot9tt54drwxhkpOurw4XT58YLZ87NTmLzwJ7hyOF7Zg/p8+hHtcuysFUNHtv1EQU8UjZ2/ATg+bfPjq+//vZwcm1tpvbIlOcLOs93XotpD27gaDpobligYUL3xPXR9XU2ORN5/qNdpJBPBNxWaTauDzTjOiBWby9HTWSj7TaENdymy37dx3mr12fGETjaP0MiFC4xKdvGre3/4UAHznnUXX7ZOQ/+Fuv/qvNXNPn+926T7Tx7xpZth7/zy+PBQ/es/1V1jB+kg6iL6KEjN9eMGLkNRedMat5M/VkVd+FtRRTPBdudfwwO0qPLP/iR2cPf/dHhe9FmwJO94ZU3xxfefGc4SS+MQVA38Rrs+nMiMPFZZGJSIoaIj0LEBU+TlfyxJahcY57K/GxRDDxpT3qYivg17AmboxT1USUlxZ6ijLFrXl+4JWn2qDEs2iautIuxMJQRZiOGh4xJ4lZqMIJDoStSH2MdK/Y1WIZh2pNEpHAYxlJHudoDue5rmNzaVm/Go6PMzdsBj6FKJiH2oz0Y1IN2neSberQJJXypvUOXc9PsEI5AqZoue1wpygkpWlg6WRskkSY+sr7hpQEdfzqePxc3n7hiola+b++Ogwf2jkcP7Jt9lAnZ7sjZguYlLCf9KMKp194Y/4l+f/d0fDpV9RcuaoBN6h3XSrRTtsP8fAsYbaA+Q/NBt1TPHWfL5ybELSDbsf3mN9qi4qPNpchLkPo5rPDB+RWh/xlTtKudl7y1D3EqCdXOnSFcFHxdZV5HsvcB9H+fI3y6ztFWWYGMbQv0f53HX/y3/tzOr7jtt/NsAV0G2+krvzb+RY00/3obelqDtKZhdFlsIgYbJQ45h/nuO8rCt44WWg8cHb7rYw8MfzIK7fDqm8M/1kstfwQwxpEu1CjGHb+ycNH4HtAoSqcHFqgcikKHmNBPDDDbtzXGGGxI5Eoxn0Y1QjeCb/XoFan1XfQhZPO3LMdL86X4HHfoND9zWvriSQOliHFelx5zBD0PPmsIrtWpy8OKDlkniLmWQK1A+4cuc7amsP+/vXOLte067/pcl73PPsfHsX1sx8Vx7JpeoKE8tKW05QEJIdEKGqSoaoR4KASppCoiD3ni0U+88AAqBBFKKRQEyBK0iBJARX2pVBVEo1YiIlEutHbq2InrxJdz3evC//f/j2/OufY5MXEc28c+Y/h4zTnH+K7/Mcb3zTHm3GuVD6mc7LA0+kVVnMPHqXkRpn/mTaNoaHN9bh6afJpjc/UDcigWq6MF1YFG44fBMhB97tuyk2Njdr3OYwdYq03b0xf0zPh+vVn9kH5A4pJ+SOLo7gvDqb4044t6y/4PXnxloRf+SgRWzPUgisa0OxP7DgecVEt1szvXxnq0g9a0z+Q3vsi1DGqiyH1hf3BSOuxsk2Fhomt6bWj6SzVtPkIqt3XAtrBPfUq9Km11VIWMz+YopsDNh4o5OEwDtzUgP3RN34ynmW2MTCXaqoOnNSCBicoBslaCIWRW0WrhHynGeSQ+qG7z+S+7X9Ft08//tR9b/PfyoR8nBOa9P9XegWf/4r/s/7zA+CuaFQ8x/gkC/EYnf/PJHTJfHqAXTHw9h4f5WfOFWaIYxUMpppWnxh95YHjPIw8O36dJ5BkP79NfHn5HCfhpfyEBukIOr860bYZS0XPt0xY4SpeaHDPySy++txe5v2UndvrPYGSHJM990KWnLGpakFNV/KKt9solPNPa+tWg66IjFHjFYX+0v44wiurHF14w3zKqna9biE6FRLFMWGIH7G1TTmdcRqf10KgCDhQwQDbX5hVeK1UGC7YcxVxBKqK08JE/EkkTfNZFh6gEa9DTuku24ad2i0UTWhPpo/zBAnTQz8ijSLRP4KWaBs6Rir22PerMElngjeDIiDit7ZpdJRv50BdO8BQ/NOjOCi44ghlmUce5PZNv8Gj1+8CVa/uXTreLG8ijrnhDGweQSbtl2EaEBufRDqrUVuOr/HV1sPReu4wV3eQXY2yUC7EK80rfo2yEPE6afoCEWz6oqI/Fi8NUmoeOMg0gygK1cemLiNYn3GpSGy9CIg8MsRf7wYA+gpx649H0l2/UfbPzH1VzXejBxuaPDswtm/WOm/9a9X5FjxL+7t/48cUX8LuXmxHwwLu5+s6s+aX/tn/37sbub2sWfi93/ICjyTEW7WB5H3N+HBvnJ3ztFbNd5eH7F+9970PD98+blYA/+czz+6dTFy1eYbiCUKitwKYrYTSyaKYey4giCz2K3O+mtmqfZFGT4miKNxafbieYEgiKhqP9noms61sdoY89Eso3/RBNkF/1wkHhdroeET30uXzSnwXJdZ4dK2RJTurNPsJQ8qml/VWvLWkup3BTg3HwB6J8DRBznWVDjmdHg7mkPw47urtq8q388m89uk/TX1WPn7jqcHzGZxJG2hKs42fsLRvLd67rPFbNPyeeohnHQusP6ucyuMWg36In/OHlnDLfIE9NeFrbOH7kwtcdYxmDxiAi2ic6ZmNgtGUa62Wrxy4ZlMw5K7G7MPHjGfWv5GpOlq/p/2KKj1xVu49cF4mOo96Gd+mZkeR0Nv+pKJnoPDvGJBWKWf/FltI1DvxIbn1S43jCpDWPNtZ1Hcc+t/hg//X7prgm28uH+RGqYIBjZ+b/Yvery6PVv/upH11cnqT1s7MI1Cw4W39HX//Cr+7/nELATwqEB5kx+vMcRRy9/dqKhr8TFzfgFO6Q52W8k1bwefj+4bHHHh5+YN7+1JcW/+uZPxx+nwlAPTFEqUuBxDGXSleUXIgcCLhXdoEiZ5lE7aZfCXC3nf6+1HIhQ0+LU7F9WlGhmHjpu3QJFZlKSW86MEfFvDaNZ2fZIZj7UOemxacqLDK8DasKB2Tf9bfgHFvAjFVNaa6YagwsiUVsw0pHY6yjVyZtp0KXWcFIR/waoVRLARZfwWbuAz7zm6zIwA/arYPHjRJXvlHPOfKhpdG2e9chfGgofZbRVFc/lCz4kZM+QS1DIfIJbLyMzVNpK4JYpdqRS2GVVvKqjWNap0/ooYMelX7R2+M4fmoXwVbPZcE9Xjd7sJX66GCXgN0CaqZSOzPUzG0aZdk+jTiDOOF41m7oqw4VcSp8JVtC1CQMml039wVGGOJi1zXcM98aXtYn4lmOstLXM//L/vJdOxyyNaXqTCMb3wnzX758WTcaH/vrf3nxqeZmP7wKAmemzqtQ3mFN//wT+wd3m+EnFVz+LHf3mthECm3Z+fbXUaOCgmg8qfLlGWQaCmltNzz8wOLxx75t+EHdrYdItb//7PA/+RtL7uAJQn7ZRdNeJD4/c8usl295wQqZDg1i4gUZxSMp4s3U5I22KoFQp6FHIFRukypn+GYf8tKODfxoudqx0WMCm6LHf9Lh4EcbGGCnfY6juuIf/JxJf9XrWvYJs1anVmSUTciPFSI0FgpPSmdlQ3BdJtlCKfoSjSjz6oSgS7+MuIxCycy8qDNZVPrztqwkCignH6RZR45lg1/AEo2abbf50e1b/8nXao9q+h5f8yJT9VuO2Js+E2YSZBm68xG58Q1eZacTCs5aATcc8CJcfM3evKmdT7paaVvfuKobsZmNooZcUGC75Y19WeOvcIAobyFLpuzihcDojAeVrPGRfheG7JxDJT544r+pVYvusc6Y2B0xp38sx+MNjOWxLAQVSREuvMBmCa2fPU8ioOmpfpfZGOECtsXHkXpjSrW/lzlj3XYb/Yx30WWOI0W2ov/1zH/rlCT6xXqRqWvpmcaTdOQrK6mTv+7bZr+weDvMf/XwZU21/3p8Mnyir3oZPN9YYTD08ioIkIj3p7ufEcn3+D6aCUJ04OXPcZJPAjy/NcFFq/bd8Mi7l48/+u79D08Uw/DUs8NvffH5xf+toNYChINjBdOVgosGdJPj0CZpbKGxpTZJE50Dt24R2rzNxFUQFq+CcLMxIQy7sV+0Cn4sSx1AccgF6jpP+KI6yThqCVhit/+TGeGqTziRogjf7I/ckjzZtCT5EeDx1hacpUH3Rqt6fI5n+czVhAt2IUIB3MtY+KTffYDMsuCsDPpA/3yzgQHgEz6de9musGnLsJAeiIS5TPqAhAfmssPLMchY0ijRq05Hy41tiCs58aN5jZOKzEEvLfXZKJolrW8YC+iLbGFNmituk1pT+iFjQcnKdOBF4sIbsLL9QEEG8mdsPKtXmcPjyviKnsSRElzKr6qFjiREa40oj2PJWdFXIjSN54t00mOyAXrsCG8bT5KFlLIbvyfZk/RYznX6K7aAVfVt5NlW6dvqVehmIOLdN4VieeW+lD3IkFidfGPzf+IHN+2jSUbmj1RKN3hjqQ7qEqZwON5O81998BtHJ8t/1RMvffnaCkOgl28AgZ//5f0P6JnrX1VweLDICbxMbqYMhXMHW4Ju7nSVgBffoa+l/BHaPcM0055+bvjNp5/bf4E6FwkgeHOODKYhE5LHyA7gBHLpKj1FV9cEJIJVgt9kh0Up0FVACl30YCftBOfYreBr5dgZGtop8PnYbLAcVVe4R2+FNDP4QyvL9swNsdgaPUlULeCPqw3TiIjgpBWzzEIvAS92lX/ma76WP2Adm6OJzyrBqOrTUjgVTVpzhXzO5n07BvLqF7VPGBV3jgRmfKCgO0lip8DLWFGgVzJqzXJM44RdCRXkoRs6ZNDvwayoc4XtJAv+fKb6pWwFYeSDVR2hPyvP/ltcPEN/SrvBiKpRD5dVJo5GJPmFT/lue+QtCUa2sMHLFf2pmqQYXXpAcCNAjccjrjZlYLjSzo/IXfCZGzG/WoHv4kMe/OUrhNN5BDGWtJrf66s8R8xoqf7D5pp7hT8qwRYeGScF9IW81KBkXqKHUrhHk92xHzVnTaRGfEEfMmIzNw7p96IpG9CNUvTc9vN/GD6zWS3/9Yffv3jKfvSP14zAHftFHK8VqZ/+wOK3xfPbH/9P++8fTnd/QYHiuxUdtJ7IhGSSIlOTr01CtguJsfr+XE3ZcdbqRJNQj+CWp5pojlHjhGUmawYSkDxZPXEjkllc71t5siqw6c59QZCSPAcHOJnAa8lRXVY6aqmk4qDTJr7sFbknunkq5ervLVUtKe2ISfDJU/YLJUuXBL/UyT85KG+UbLFj0iU26U2QzN9wJnhhlzQaLGQQoEGDxb2/aRhfpFX/gGrr97JEJec3ttS+OQADq5YTpGiSFu4bQA6xWzJlL8GMvsI349jkmEjEzT/7IgrbDGbot8gmlfMj4a3n7EuZpSwp3RYZKoIqsHFjwjk+6n+6xytF46ZzVcvmpV7ATv/Rj2zTQ8iKMoMifVkv89En+MSP7a4tWMkWQQ1DtwNiS++RJQJ8xQBhhD7oN9gJ1gh0X0PHmBPG6CFVyI41YxkMRA8F9JDj7ZLvItG/+CQ+ZEqPbB/p9ftWMkc4ND0kNPgxnyO26ETfBioNmiXqH7mxQ4xWx+CMeuGi8xW2w8fN7bRz4weqFo9QFc7lu/n0Qf+r6AeLObpfdCV5EiYxYM0ElQonYtq4ifFs8E6G2Nx3JHz4XfT91GKQGtltXQgwj3Qfzn/9FDQU2CxqiYaONyfbG5TY+Hab/8Lgk/v18td++v2LTweQ/vnNIsCY7uWbQOAX/uP+j53ut39mvVj9CMHaU5NJpVIBgPN7Ly4vve/x4S9pvp5L2+L6735u9ytXry1fzrUDteK1pmmb3w4ibXVEoFrpy3kSSGixisTUTGYHsrqjJmBA0mKN7XKwUxIkcOlhlEOGk4WkOYASGKh3UcAbbZE+gpQOanQ7bYqUYldAVLyPoqz6FGD1YtOwIEkpIMsQxAMHpwQmnSvZaGlMRCeC6WCBjtHYlMSuRhIr7rbCKTYgi3NQIICTKJCl/+Wfkj40quKGwFRQqyKlBPoGgA1bkqA+grH+FsY+wY+PhRdH62vYIQ87ZKBW8EqKui7JrsdPIyPVolGg9qoYHKFLf7QdBPGCmW+aIFdBBkfTcqKCfyQLdK11JGljU8kUj/02Lf2iUnJip/Q4oTUmITiXb742ntBj2fr0TaRlKQl6/KQP8AF+jwWb1zBomDYBoWn9RM9x09KS0GgfcmpcYofHgQ7Ugw3jSu3qBl1w7v4Riy4yWMfEBrvleqsXFBoNWIAh14wZrG83Bxl7rd0JWTbSXjc9dkIszMONqOlzjwFs01h/tfkPKkUvLhU6RzdeYK1SvuKT9ZgCQzP+amy+5fN/P1yWSb++X65+Uyve57G9l9ePAEOpl9eBwL/8D/v7rw3bH9f8/S4Fo/trJcKRwnQ7Ol4dH69256jZbJfXTze7GwQorgmgFN34+8jKYqOGtRoii0mqf6wUOTppaVKLPDrgQ1K2xNhSq+DhSn9oOid+6WjGxhH96NYKwFt5SCKxESh3orV0+UIAQ0T0wxc5iCegEkg4p37EgArjUHWOctzxizY2Y2v7Zz7rZttQNkWF6Ga6CE0LrYeUDWSN1lj+syWtLkocNqAW3YSx5nfkJrFBnHb8Q37MRA3LlERM9VWaJKPsz9Gi9VFmFRbItAykSkeTjlCzYMMcJypjd/yAp2giU7cTtn/CIvLhxFhKZHM9x11XbqpWKM2rCvoriVCnfhKp/tXYyjlsSaapA+doKd3YzPn8WOfoIbngJ7rxw3J0rTHsXRkYDXWzyXRNB/z4wrd9egz4Ggr6kq8jbYlZ8nxD5/lgooMPzxW98q3X0VLfeFnpYmuV+BQsqddzae/yVHuOzpXSzz1A+oIbUNWCmf6PzFuNE6dbxmjT6X5pzlM1YRobbrf5r4n6h+rI33rmaPj1J96/uHKIS796vQg4aL5eIZ0/CPzjf7//YU2oH9Lk/E5qPLk0yzL3CMece9qZgXaCpgOOa+ZnqheB75DZdmsJeEodsBF0ddTts+/E2crkTygVJExHLuFaxas7AqNEqtPd7wlE0e8tRSycm+PzFgjVJCYtYJNokelVonJGsfiIkwiRDeiSbfzhC5bYpjFI+douiJYEL9u0MoB7okESApPMaLOJI2ZSzkpXzATjMQFhiAqrJfQTtLn2Nrmqg3n0YCrytT8dXDAdfQ3bBMyGC6RmcK1omqKGN/2JH2xRYw/Uitn6TzZabvgrMUNPPTdNbENyCWbws9qys2bJStQ7IdIFU2Od0JEt6K6+pa+wzisrZIgn/UViTBJB9+RPMGY1N+qudhkqY5pdWbmZV0ZQj5TSg09+NNJ2AUhQtFsPjZJpsa3O4/oAn9AaG52q75xozSdJrFDBCH1zDEqq6XlMICXV7ptJyWKOjGMeqyQBGgo2ce4bWKVtgeQVKTs2+lEq8QUzxo5xbOMoOs5KiYf2QaftqtlTmqRPbLfr/Bc8n9NPfHziZ96/+Cz49PLGIOCA98aIvnOl/rMn95e2q+HHFA2/UzP3Ekiw6qhpSlIlMBEsROMAxV10BeFpijoViHuawk6sunSCUL2Sm2UZbclQdLI8X7cP9HFaKx/Op8DIVTTW6ln0TvipXmrVK3ttqwK8zuOLV03N/gQy2yZpFdYqISI/vsIvM0hKTacDfgvS6DmLE9YlmRV6VOg/ybFdOkvqkEQFxwRuaBuKDRNk1HZqSSp+LIZ68k0XKk2Cj6mBUkUyeRY509KoaSzpnCMj1sl/r5RKF1TGW4Gd3YfwTRpHn8yPpNzAcJzOqJecNo6qpXojOLFFmrdvTetxJvSkyglAlQdjSNfpx5IGV0rRFZYHfak+CSbxAd94lgrGGqveOUn/goPuT9pNUdFFQ8YJErJFm2t8zhgoqvRVxjDUKeAwjetCPm1QuX+ll7mDl9BLtOpjZ+Zi+i+f4a0xmvGS+VVakYnOajN2arQOsG6EZ8d1eKSakYxt7pebxxTjICNx1vNNPrqqT2ypZLyu+b8cPj9sNv/76n79Pz76wcVVy+wfbygCPQG/ofAOw8d/ef8d+nviH1S0/hNKEOe1ItK8V0BpejUBdR+uqUSAVn1NZJrn52UmdZxPd/Oi03XkJagwub0tVsm4giGM7VxnZisdFQAIiIReGenAAMtNNC3o0KbAyLNc61OQ0f6dl2iqT6Ai0tsvHbV6kZn46pUa7GMpv6goXs5LNzGTc25SqE9Qcpg88IOW0RewcpZJFCQolq2u0UewmnygHqnoKTkO1tTLftng/uPtWigr6SNX/yOPjiSsxk4nBc5LsgSNRf0lGfRd9Vfe2oVevWAdsWWGDwlM9JPNiGNlhy8ozVhwrT6MkbFz+9T/sdNk6hvjax+M2ZggLS+2l05YKKWLo5//t753oz7Qx3n1YZ2DDjsDYJwEHH9pNw6o8/lNfa1aMKNR/+kULFwEu67teulL/0GTeuwJTtws4L5sm+ERQXxKkPtapnPZxjvnwTZ4TNdzH6c5CKvtbTccevbMDJDM22f+y6Fr6rvfkKGf//AHFp+3yf3jTUNgmqtvmso7V9E/+ZX9+zab7ffqlvl7FIL8s3EV5JOIma6a5A7emeSa/JqtbRXaAhoIjnwkJdVznTt5dsh4AzvPdBNYCXRicZIgKUmAxDtAskVcLyypIXfVClQi4SqFxHV4p68oIjaCTQXJeRCCq9nfJGDfmCR0XkkeKlYRJEd0V70TTouttUIhS0DlwG0ehM+TajtvtjbVxip6KiGoSoGQF7DkvBzTufYYjYeYCMrF66NhcNJzPHZd9Yt9qX6br4RYxRGv5ZVXuTJ7hiH+sp0f/cGGvqJYnfyqJEgdSSTJXggIyLKVtnmBt4khw7jPD7FPHTyuF/W8n4PFJBGaJEqJY8XYSnzBp4y3VKcP6a85HX5lCzfWCWyRkDCDadlhHpHUuLIOmcn4p23yJ7jWOMDmyevyKzXz8TnHYS5vnGP0F4NUBZvhhSeSnFjtL9hjW8asyY05/ZK5GIw9jrgf9b9p3M77boavbyXQ/kbPfxl+VS+jfHKxXn3qZ39i8YV40D/fCgTGCfVWKL+Tdf7DJ/eP6274+4TB4wqt9xHIFGDy5xeOAdNzRLWNd/GZoBUYgmACQgWlBKNpYicxQ5lgQmA5pKm2CjgVYOoanYohrSTJcVE6SA6kjeKjLYEvPnCegDYltrQj45DX8S8xCzGW2QKbApSBcT0fk4zI5bqSJ0kg/spe4UqSL545Duif213BdlRiPXO8pr6Y4z6XjR2TDpJREKwEXG2ll76XXjuH/Wy/su0J5vapBXvkgE/xVcI+tLn1T8MQemSWLOws/ZGF/1LTsCs6aEo3+ooH/irUY7STkY+hm/xH2mQzfJZLAuPZqo7UVUlSq6v4nuRddTWepj6gBX2FcR1J1oyX1iaF5pEf7MJQuN3LVjd6i87Z3xhP4wX8fBOoI5x1g4EvyCBhIldyfCMQ7MC17Cob8T/jHTmUwoox8IbO/8XuWb0D8X/2++u/97M/cfKFaO+fbzUCbTC+1Wbc2fo/9p/337a7MvxxRaVv1xR9XBOXqJW+GSNQgtkcKYKMgoHyE3fjrUWrWV9zycpWbVlXEirOFjHNxfpcdOZToGhtkm2ZcBO0ufOvQCeatvV3K/lNXxknZvFKFkGI0nTJaUdDfyC7FevNCosgmYBGMoQefTM7IqA4x+Nkb+NrLCR1mzWKmCUDY6+VofTrhaKsjEWnfyTGvFTWsI0ihFg+R/tWQZuKmNnwkVDrdgNt4o0rZ/ySPC0QR7dQoXyiD8m3PiS0a46WO40DWqPYZ7f+yC2NcbB5rOA8ppALf8mf2DM2dF12NL8miuYO7Bl/AVL9p5eg0m9uk4jilT/xD7nwRVprtyXIGvud5pHBtLZ7Pm9M0vSfoZ3zIpukSIJmL+CwzOyzVxYadp16TPpmttWPno98M/xiL3aiq9w8wFs+Sibj7XXP/7W2lvVu/bPr1fDp88vh0x/6wOJrh771q9sBgRYIbwdTug0g8Pd/cX/v6vzwmG7fH9PsfVT36/cSsEk+3CUToBwsFKS4zuolyYnrtBEcOM/LVN4WUwJDvj50w04wI9je6sWwKbCWTucIxxR0s8qJHchLOQyGY4RyQCLAOXialJg6raamgIfdqT/c6sWP6CgMmh9NJkHwwD/jlBVN7ESfzG4JvOQVNtgGXeUCtkeVxQj2reD4ZGcqYwvnyOVYWKGL65LnXFLb1TNfimeu28mHBulT5m395L60jfGjbkjiU2xLwC8bqr/mmJZsaNAADkXHNe3hjz/eXh3HXeqgYvyIMy/m6VzCvHpu/GqOLVOfBLvYPo1T6BhL2FB9ctYG4+C+Q+1k3yFf9GHbRI+91WfpP/T77XRuGA/awslnYVOPJtK3JUdcOtXfUttm6LG7/Crd9Ht8Kl8LO+RMtha+N9tS+kJbdNW3wQ0bbp7/GnQvKbN/Znm0/sxdLw3PfehDi2vY2cvti4AGai+3MwL/4N/sH1K8eFRfMfGoNsweVcQ714KWAym2T8llPum9gqNNwZvtMZ2eSUIJCFNgYJIroIxjIkmEQFA0U3AgAFSZ3yAQkKq+jqV3fs156YO/CnWcV1BGjVeM1pebD+wRkTzK6nR+XnLqWG1cI/usLfg7xybX2UrEButXVBMoxoX2sgdsK4Ait3TmGHzAo3iqffJx3l/VyhFe7xaAw2jzXMccu5I3lxA/pr6YeJtsfRmK9o9tM23BZkoouU4iw4eiKR23uq62ShpcL2d6WvKQzsm/wzGmFjVN4yn6kYMNHClz3YVt2XuIhcdL7ZyEWZ/mkc96/i6/8O2s31xn3oQp47OGaelATvVPS4gjTtg4KrTOjD3q4I/dXOXGgjNK2ZLzScacB4zQq/+u63faPquvM3xKv/n31N/54OJFC+kfbxsEDgbJ28bqO9jQj/3b/Xs3q+HdCp2PaO4+opXyCYFBidkvWhU0WUER/LNy1oR3oCFpJShOKyz+5lE72doNU6LWb8nxSmsVDRCvckb+atBxrpNz2UT2lJwW2HXuAINcnbcc2tYBSeyukyz70HShwkFGqw226LhGDoGb+iTsmY2j76GZ22oqffCL78gKvwVGh5OQ+PSyjF8MSpM/y3fbopVxfGCrd0akU7DGNuVpkRzapb8hHVfXh1wGKTLVMBdZeic/ml9mUVIxzGLiC6HdVzgRjOmHwqzGQPTGrpKdOjuvIeLHAqnSZ/krQBgUi9KDBDlom6s/sJExVTaVfI4AQ0Ip71xnnBADgRJ/023ZM9vdXmO2+l6VIBG/pj/ZgbZK6ecaPyj0V/o9OKZ2+rRdarq5/6tfm72MAe+ORE71D2ryRFknfO9H6xMnZeaWYZvZLYYaw3N7sWh+bbtUV/xie2l/NDyt7yP9yuLi8NmP/MXFS/D08vZFQH3cy9sZgZ97cs+PQzyoCPCItsceVEK+X4GB74nmT5Waa7cOPNBAq0DhgMhddfFWPTQkFX05gwvfzUy4mctmu9GRkRY/PzWpaSaZxcfRX6U4LNdaCShAl0zqS3bxUbU9jb7yiTatMPysDDuRWAUa/MEObFbwtX/F6/amt3g4KtHYB+TBiw7bB5aniqmSVTJG25qA0glvteETPGUrvslmtg7b8/QJU+sfsW+6wNg45Roa9AQjruIn2/ZbLYNin6r1s9XwUcouzrGtbAre1EqebCx6aijYDAZzW9drMBfW6aIDLIoW3uihv9DfiFs98oyPv8UM6vIJH2MzdcFfX30pGZS53dRJR2xx25mxMetHdMGPvJJv/WcxEw7YDS02GpeGIXXzMsn0zZzmS5J0jQ1oJ3sn23SnITz9TsEoDp0TxsEdO8tGjcCvbPebP1iv118ZLg5f7Al3hO4dc3IQvN4xXt3BjvzcJ/bnNq8MDwynw3s0wR9WYrlfK4aTrIQTLICHIMZRk93PsWqVQB2l6nM1fVI/XU3P8ajjGRur67ks6PW/AxXP7qCrYJdAx3VW6bRBWzThE78CqLQqW/j5sPWPbY1+vtqZ5EdetYlHvLEZGuR6N2DmE7hAV0doFCWTOOBpvmBjs0ckubJMtWe1RTA/xHFOV0G+/EAC55E0yatrt2mZqW82M77efpddsTP9Oto82pjn6eglUcyfnUJ7K3tcz4tnygP0S56bRg+2yI6x/2/SrWb9J7CCAfSlI1hkq5tvEEU+7cjgiNzIm47VV4Un17Jp7EP4KNVeeBe2tNkf+z/ZPe/TiSe05V/Zgi9zHfPz8Dafmo7SV21grro2Zn0DNvqafkmbaF7WLs0zu5VWt8vh+fXF4Xkl3Ovo6+Wdi8A4md65LnbP/pG+r3p1fbj72nJ4j6LJJW2TXdLxhC8oIomwQpjuxPP27zyI0V4oEpBqNXGWJquHolQrfHphRyFzCq6Kc17IKZgWfeRH71wXksquHAlWyXaH9XP7zaWPST41yCUYsoJS4PNqpGTxJ8AKmA600FKgn+yDXo9MxUfbvJ5r5FRdrYSgDVahIDCrTWS5CSn5c3/Txguwh3qsYbQn7dBOMuJPrbyqPprzSV35X/XU6U9T+HvkA5wbR8Pp1ivC8rNkzY+3smOyiR+FyI0UmFc9x0mGGjzOVOMt3ak/ROQtXY1cf5kHWCGn7LEcjTkW1OCtVo8/ZBdtznPT8vVtgGoqhTc1dZ7+Ck3sr7mjOu8U6dhW8dUOtRIsz2pf0NT70tG14ZX9A8MzPdmCzJ1XZoP+znP+Tvb4Y0/uL149HfTjEVoh7zaXFkfri4pZ94EJL+fsdtvFaq3fiWt37+yrzQNYIgs/H+Svm9gRdEm0DjgVgTlWBJpFJFY/yF1Ih35VwYnP31dv+gqU1It/3IeMKEVf/SmQIjhNso9zpQheedF6rfFIZ62w8GerX8CwL9LHNTZp49bncx6+hl+BWyu4lXbVZaNw4KivcpQOfRZf063loWQowhJkm+1aUtsfv+C0Ej78cARJQjSbDUkjPAsdSTJld9lrPonDPvxi9WQ6yVmuk5jxgP6x7RXgT3Vt3cHc8oQNvLYbevmCfbZbuBaWwQCp6mP0tH5EB7WlB3p4p3HQlEPk/g3uhVv5Qmv8DTZFSz3YRW75NtnvMdIwyG8q0EZBb87neBdmN7UzXlTcr8Zd/YuP2lWZYzH2J8RNfvmKHrrYN5MeG8Kmjc1b46KXDnbah1qvXt5tNl/drdfPn9sOL6y++rkXPvKR7+orW2PcP1pA6kB0BIbhySf3x793ebikbbDjk+PhIX2F5n0KXeeUfO7bqtKrivwCkVeDBHRwI0gRsGgnCbA62WqZk4QQZJ0wnCByLQbFLSUEFgRNDitjvfHjMak3wfwj6vBxHj26KWg6soqOrHwqOipR6oZAOedwNcvqk7az9cWXIOugjOXSsNKq0L9QJD8PExv6TzepKx+gWflXLxR0sVUyVis9jFW52c5oneTKZ9snvfphXFrlgKqCqa+b/+FM8kVf+QNm6EUOuBfd0VpJIxsGVdWOlchQohsoFWSVTfEntpeeqis92Ahf8XDOGLDd/MBv82HPd7JpfGTsVOLMWKLfYx/2JJkf4Nv8Acuz48nq2kfZxhhF5nQtqUKjxk/xpD36ZLBsrZsKYQgkqkPfqFc1h+Mq9pbv4K+fz3h5vR2+fLo4vbzdHb3yrnPDs3/rg4tXSmc/dgRuhYAn0a0ael1HoBB44slPHd+7ed9913fDkQL1fWsl5t3R9qJ+Sf0eBVr9MqBCr2KSEoDeEiWW55xlsV4P0rIvKzkWFdqAtFhWaKyeWdmQu5DDCoSVBnIgyqpH7Y1Hv0Xq1SRt5lFgV/A0PXxehqutVkVmk2z/sg1MKuQjdGd1Jvu0imGliVWmE73tVv2kX/Zhk59DI0W0XMk/bOIaGfKzrTjJZiJRHXlF/8abFFZN9hnjRh3BCWzAa8qZSmgHeGCl7G020mY9y+2IS/ken7WixTgV19NJ4nc/NX8KB+vhRgpjVbAxOGXFTp1X1RzFS38VvrRl9chZrYJ1kyL/KIey6LtgTmLOeMAm9T27Be6b8ILppo0JbmqwsfrG+iUb+4MHmoIfx4yVyIG2xgDjxX3ZcPSYk1647bv83jdbaqyWH8Pp9nR5tHpFNn7t+tXha+ePhxv3PzA891M/utBfAfXSEXjtCPQE/Nox6xwzBP7eL+3vOrcZLpyutH19bji/vTZcVIA+L5K79Cc4RwTtzaniq45s39WqgaOTiepn4pyoEly1om4BnHZyB5fmq5Wigi91tCGf8yQU0SnoRl9LnArgXnHpZ6rCIyZFXM4pliH7QhPd6Mq2ZeoJ7PCUDbWdbAH6qHquy5bYPfHVrsC8Hvq5vdhQuCFnbGs+QU/7dsPjSB0l3nTCA+w41wpOdTgX3VyTwEhkcxvWR8iZ6pBdPJyVHdBttM2NzOwYTP1W9kHPuZOasUxio462uW4uD/hIpPKl6sCy7ESfb7Rkv7fHxVs+I2fyNfXYrP/kZx4bQGMbXDezu+mkvYpumm5I3xWNXZ7TXt5fvXZ1vT756oU/OVz+8J9a6H34XjoC3zoEegL+1mHZJZ1B4G9+fH/03XcP9+hR6NHVzXDP8mg40pLsHgW5Iz3PfNfZQA571Tno6oXllb5lYB6Mz6gwPXUO3g6oeiq8UULSd/BRzvKWXIK0eHxDYEIlViUOPyOlPnX5hGdKSlplKRFEx0QVmthBLXp1M7A/OtaqTfzzdngp+EaBVlfcPNjf1LWE1HSjcy6D86LXuX1RIh39Bg89c+Y1ZsmcsEAPbVZs3XM9cxxJzE7A1iO8wERvkQWb8q9kz3Vj26GOw2RabfEbneDpG4Qk4cYff4M3tJWQS1fpQZ58lZzgWLTgIpuFwYSrnyAMw9XldriyXd64cmF9fEV/Znbl+rnhyn1/dLjSk2yNjH58MxA4CDRvhsKuoyNQCJCgv/1keNdaW9tacZw/JTEvh/MKnBfWS/0cuFbSJGtWOxW0i3ejSm2Bj4G+BWF2cL0dDF1ecFIQTv5xDs2LOiSzBPSi2bSVIduermO1zktTCu5cs5D0+SwROEGUvqZjN74MFUtLftn99a6px6Y1q/uSpURUdsKPbRznem0bleBxtNobl11wmXRt9eM3SrxCdPRPsthKZn2Mb8aFFWb5ryP3Caw4xzqwmCXXnXY2ylbrF7/yqHgatjOMUQN+bAWzSkcfsvDXq9Nlnr2jy3bR6QgvfHVljNQnR/KD1rld9kFeLvbrG1p3v7TZnm5266OrWrBf0bp1c+XG8NIzenz/Tz/cV7GCrpfbBIGegG+Tjuhm3BoBkvQPrYeTF0nEx4PitRK1EvZ6P5xslKz1ninPJM8vVptzg3L2brtpY3rtFeZ+v9EiUElkJY4zhUCf7e7DhtArSVhWlqmL5cYrQXSwcj29sXHyRy70SNCzyAMd1ENbq+Vb68LestUJjtSnxd5kb+STDkOHPHSV/N0O20J/1obybHMqmcu1Ho1OfE6EM9vBA/qtlpMrffNGfJzkCkutJie75rqwpWQjo9qcTJu9hXf5Uz5Sjw/2SzYWZpaxHHRvNJwqSW91o3ZVmZfF7rVzR4N/MP50M7x09OKw+ehH+w/Ig3svby8EWrB6exndre0I3AqBJ57Yrx97bFg/e6zE/OKLw+7ue07262G91x+DHPN3z8d6VXirPwxRElIUP6+PY21aer2pbxtSZNeerRKMVmoL5Tpfk/TUpAutwLSCc5vON/rv+FjJ16vU2s52Al1Ar/oxGUNzpM3301MtAqlHngr1OVPCkuw6p55r0S6kKm1Kfrv9el+ySVjYXHbBS13ZW/rnOiAmCcODDdDbhxtKgDP94KPkrG9UmfxBPvgUTqWH+qLD5thAbZy0H8ITmsWw0fPVNW8aX1ufU1K9odeHlVCvr4bNQg8pFpvzmwsXh6vHWrFeuDxs+o8JgGMv72QExgDwTnay+9YR+P8h8MQv7k+Gu5Q1Ln/NmeN4ee/qxu7y0fmTu5anl68drY9PeEHoBDn6w53VZn/jaLU65gUofsf1eLc91QrwSC/I+i9fjkg4Sj4LvYDm1SDn8CZJJcGKxomJ+pYcnXip14p1WGuv1fxafXulTfKelawkleqOkgRbcrYMlokuStza6G0vQ7fMq4ayB5rSxYofu508j4bxl3RW8m0x6CsjpEdbyJvt/rp2gM8N22vXt0fnz/nFpO16yN+26n3gU53f9fBwevkZvwE2PNF/lcdd0T86AmcR6An4LCL9uiPwLUSAVfmlPz0+KbVkfSHD6ksv1jp4UnZyeVhcuytJ9viGMtxFtd3qL0lV/7Lq71bzy/qfI8XnartxI8nwkupecMv0cXL5q4sL773PyfWF54bFpYeir38T04RRP+sIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPQEegIdAQ6Ah2BjkBHoCPw5iLw/wCH3cvs3EDhsQAAAABJRU5ErkJggg==",Wv="univer-sheet-permission-list-panel-wrapper",Uv="univer-sheet-permission-list-panel-header",Lv="univer-sheet-permission-list-panel-header-type",Bv="univer-sheet-permission-list-panel-header-type-bottom",Fv="univer-sheet-permission-list-panel-header-select",jv="univer-sheet-permission-list-item-header-icon",zv="univer-sheet-permission-list-item",Xv="univer-sheet-permission-list-item-header",Yv="univer-sheet-permission-list-item-header-name",Gv="univer-sheet-permission-list-item-header-operator",Zv="univer-sheet-permission-list-item-split",Kv="univer-sheet-permission-list-item-content-edit",qv="univer-sheet-permission-list-item-content-view",Qv="univer-sheet-permission-list-item-content-desc",Jv="univer-sheet-permission-list-empty",$v="univer-sheet-permission-list-empty-text",eC="univer-sheet-permission-list-item-content-title",tC="univer-sheet-permission-list-item-content-sub",nC="univer-sheet-permission-panel-add-wrapper",oC="univer-sheet-permission-panel-add-button",he={sheetPermissionListPanelWrapper:Wv,sheetPermissionListPanelHeader:Uv,sheetPermissionListPanelHeaderType:Lv,sheetPermissionListPanelHeaderTypeBottom:Bv,sheetPermissionListPanelHeaderSelect:Fv,sheetPermissionListItemHeaderIcon:jv,sheetPermissionListItem:zv,sheetPermissionListItemHeader:Xv,sheetPermissionListItemHeaderName:Yv,sheetPermissionListItemHeaderOperator:Gv,sheetPermissionListItemSplit:Zv,sheetPermissionListItemContentEdit:Kv,sheetPermissionListItemContentView:qv,sheetPermissionListItemContentDesc:Qv,sheetPermissionListEmpty:Jv,sheetPermissionListEmptyText:$v,sheetPermissionListItemContentTitle:eC,sheetPermissionListItemContentSub:tC,sheetPermissionPanelAddWrapper:nC,sheetPermissionPanelAddButton:oC},rC=()=>{var W;const[n,r]=V.useState(!0),[e,t]=V.useState(!1),o=I.useDependency(a.LocaleService),i=I.useDependency(m.RangeProtectionRuleModel),s=I.useDependency(m.WorksheetProtectionRuleModel),l=I.useDependency(a.IUniverInstanceService),c=I.useDependency(a.ICommandService),d=I.useDependency(I.ISidebarService),u=I.useDependency(a.IAuthzIoService),h=I.useDependency(a.IPermissionService),S=I.useDependency(a.UserManagerService).getCurrentUser(),[f,p]=V.useState([]),v=I.useDependency(wt),C=I.useObservable(s.ruleRefresh$,""),b=I.useObservable(i.ruleRefresh$,""),R=l.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!R)return null;const T=R==null?void 0:R.getUnitId(),M=V.useCallback(async H=>{var se;const U=R.getActiveSheet(),B=R.getUnitId(),F=U.getSheetId(),L=[],j=[];R.getSheets().forEach(X=>{const Y=X.getSheetId();i.getSubunitRuleList(B,Y).forEach(ae=>{ae.permissionId&&L.push(ae.permissionId)});const J=s.getRule(B,Y);J!=null&&J.permissionId&&j.push(J.permissionId)});const z=[...L,...j],q=await u.list({objectIDs:z,unitID:B,actions:m.baseProtectionActions}),te=i.getSubunitRuleList(B,F).map(X=>X.permissionId),Q=(se=s.getRule(B,F))==null?void 0:se.permissionId;Q&&te.push(Q);const re=q.filter(X=>{var Y;return te.includes(X.objectID)||X.objectID===((Y=s.getRule(B,F))==null?void 0:Y.permissionId)});return H?re:q},[]),[y,P]=V.useState([]);V.useEffect(()=>{const H=O.merge(i.ruleChange$,s.ruleChange$).subscribe(async()=>{const U=await M(n);P(U)});return()=>{H.unsubscribe()}},[n]),V.useEffect(()=>{const H=R.activeSheet$.pipe(O.distinctUntilChanged((U,B)=>(U==null?void 0:U.getSheetId())===(B==null?void 0:B.getSheetId()))).subscribe(async()=>{const U=await M(n);P(U)});return()=>{H.unsubscribe()}},[n]),V.useEffect(()=>{(async()=>{if(C||b){const U=await M(!0);P(U)}})()},[C,b]);const x=H=>{const{unitId:U,subUnitId:B,unitType:F}=H;let L;F===lt.Worksheet?L=c.executeCommand(m.DeleteWorksheetProtectionCommand.id,{unitId:U,subUnitId:B,rule:H}):F===lt.SelectRange&&(L=c.executeCommand(m.DeleteRangeProtectionCommand.id,{unitId:U,subUnitId:B,rule:H})),L&&(t(!e),H.ranges===f&&p([]))};V.useEffect(()=>{v.reset()},[]),Qc(f);const A=new Map;R.getSheets().forEach(H=>{const U=H.getSheetId();i.getSubunitRuleList(T,U).forEach(L=>{A.set(L.permissionId,L)});const F=s.getRule(T,U);F&&A.set(F==null?void 0:F.permissionId,F)});const k=H=>{H.subUnitId!==R.getActiveSheet().getSheetId()&&c.executeCommand(m.SetWorksheetActiveOperation.id,{unitId:H.unitId,subUnitId:H.subUnitId});const U={header:{title:"permission.panel.title"},children:{label:oo,showDetail:!0,rule:a.Tools.deepClone(H),oldRule:a.Tools.deepClone(H)},width:330};d.open(U)},N=H=>{r(H)},D=(W=h.getPermissionPoint(new m.WorkbookCreateProtectPermission(T).id))==null?void 0:W.value;return _.jsxs("div",{className:he.sheetPermissionListPanelWrapper,children:[_.jsxs("div",{className:he.sheetPermissionListPanelHeader,children:[_.jsxs("div",{className:he.sheetPermissionListPanelHeaderType,onClick:()=>N(!0),children:[_.jsx("div",{className:Te({[he.sheetPermissionListPanelHeaderSelect]:n}),children:o.t("permission.panel.currentSheet")}),n&&_.jsx("div",{className:he.sheetPermissionListPanelHeaderTypeBottom})]}),_.jsxs("div",{className:he.sheetPermissionListPanelHeaderType,onClick:()=>N(!1),children:[_.jsx("div",{className:Te({[he.sheetPermissionListPanelHeaderSelect]:!n}),children:o.t("permission.panel.allSheet")}),!n&&_.jsx("div",{className:he.sheetPermissionListPanelHeaderTypeBottom})]})]}),(y==null?void 0:y.length)>0?_.jsx("div",{className:he.sheetPermissionListPanelContent,children:y==null?void 0:y.map(H=>{var Y,G,J,ae,ue;const U=A.get(H.objectID);if(!U)return null;const B=H.actions.find(de=>de.action===ne.Edit),F=B==null?void 0:B.allowed,L=H.actions.find(de=>de.action===ne.View),j=L==null?void 0:L.allowed,z=H.actions.find(de=>de.action===ne.ManageCollaborator),q=H.actions.find(de=>de.action===ne.Delete),te=(z==null?void 0:z.allowed)||S.userID===((Y=H.creator)==null?void 0:Y.userID),Q=(q==null?void 0:q.allowed)||S.userID===((G=H.creator)==null?void 0:G.userID);let re="";const se=R.getSheetBySheetId(U.subUnitId),X=se==null?void 0:se.getName();if(U.unitType===lt.SelectRange){const de=U.ranges,oe=de!=null&&de.length?de.map(ie=>{const fe=K.serializeRange(ie);return fe==="NaN"?"":fe}).filter(ie=>!!ie).join(","):"";re=`${X}(${oe})`}else U.unitType===lt.Worksheet&&(re=X||"");return _.jsxs("div",{className:he.sheetPermissionListItem,onMouseMove:()=>{const{subUnitId:de,unitType:oe}=U,ie=R.getActiveSheet();if(!ie)return!1;const fe=ie.getSheetId();if(de!==fe)return!1;if(oe===lt.SelectRange){const Ie=U.ranges||[];Ie!==f&&p(Ie)}else if(oe===lt.Worksheet){const Ie=[{startRow:0,endRow:ie.getRowCount()-1,startColumn:0,endColumn:ie.getColumnCount()-1}];Ie!==f&&p(Ie)}},onMouseLeave:()=>p([]),children:[_.jsxs("div",{className:he.sheetPermissionListItemHeader,children:[_.jsx(Z.Tooltip,{title:re,children:_.jsx("div",{className:he.sheetPermissionListItemHeaderName,children:re})}),(te||Q)&&_.jsxs("div",{className:he.sheetPermissionListItemHeaderOperator,children:[te&&_.jsx(Z.Tooltip,{title:o.t("permission.panel.edit"),children:_.jsx("div",{className:he.sheetPermissionListItemHeaderIcon,onClick:()=>k(U),children:_.jsx(Ns,{})})}),Q&&_.jsx(Z.Tooltip,{title:o.t("permission.panel.delete"),children:_.jsx("div",{className:he.sheetPermissionListItemHeaderIcon,onClick:()=>x(U),children:_.jsx(jr,{})})})]})]}),_.jsx("div",{className:he.sheetPermissionListItemSplit}),_.jsxs("div",{className:he.sheetPermissionListItemContent,children:[_.jsxs("div",{className:he.sheetPermissionListItemContentEdit,children:[_.jsx(Z.Tooltip,{title:(ae=(J=H.creator)==null?void 0:J.name)!=null?ae:"",children:_.jsx("div",{children:_.jsx(Z.Avatar,{src:(ue=H.creator)==null?void 0:ue.avatar,style:{marginRight:6},size:24})})}),_.jsx("span",{className:he.sheetPermissionListItemContentTitle,children:o.t("permission.panel.created")}),_.jsx("span",{className:he.sheetPermissionListItemContentSub,children:F?`${o.t("permission.panel.iCanEdit")}`:`${o.t("permission.panel.iCanNotEdit")}`})]}),_.jsxs("div",{className:he.sheetPermissionListItemContentView,children:[_.jsx("span",{className:he.sheetPermissionListItemContentTitle,children:o.t("permission.panel.viewPermission")}),_.jsx("span",{className:he.sheetPermissionListItemContentSub,children:j?`${o.t("permission.panel.iCanView")}`:`${o.t("permission.panel.iCanNotView")}`})]}),U.description&&_.jsx(Z.Tooltip,{title:U.description,children:_.jsx("div",{className:he.sheetPermissionListItemContentDesc,children:U.description})})]})]},H.objectID)})}):_.jsxs("div",{className:he.sheetPermissionListEmpty,children:[_.jsx("img",{width:240,height:120,src:Vv,alt:""}),_.jsx("p",{className:he.sheetPermissionListEmptyText,children:o.t("permission.dialog.listEmpty")})]}),D&&_.jsx("div",{className:he.sheetPermissionPanelAddWrapper,children:_.jsxs(Z.Button,{className:he.sheetPermissionPanelAddButton,type:"primary",onClick:()=>{const H={header:{title:`${o.t("permission.panel.title")}`},children:{label:oo,showDetail:!0},width:330};d.open(H)},children:[_.jsx("div",{children:"+ "}),o.t("permission.button.addNewPermission")]})})]})},iC=({showDetail:n,fromSheetBar:r,rule:e,oldRule:t})=>{var h;const o=I.useDependency(a.IUniverInstanceService),i=I.useDependency(m.SheetsSelectionsService);if(!I.useDependency(On).getVisible())return null;const l=m.getSheetCommandTarget(o);if(!l)return null;const{worksheet:c}=l,u=((h=i.getCurrentSelections())==null?void 0:h.map(g=>g.range)).reduce((g,S)=>g+K.serializeRangeWithSheet(c.getName(),S),"");return n?_.jsx(Hv,{fromSheetBar:r,rule:e,oldRule:t},r?"sheet-bar":"normal"):_.jsx(rC,{},u)},sC="univer-spin-container",aC="univer-spin-overlay",lC="univer-spinner",cC="univer-content-blur",Go={spinContainer:sC,spinOverlay:aC,spinner:lC,contentBlur:cC},dC=({loading:n,children:r})=>_.jsxs("div",{className:Go.spinContainer,children:[n&&_.jsx("div",{className:Go.spinOverlay,children:_.jsx("div",{className:Go.spinner})}),_.jsx("div",{className:n?Go.contentBlur:"",children:r})]}),uC="univer-sheet-permission-dialog-wrapper",hC="univer-sheet-permission-dialog-split",mC="univer-sheet-permission-dialog-item",gC="univer-sheet-permission-user-dialog-footer",SC="univer-sheet-permission-user-dialog-footer-confirm",fC="univer-sheet-permission-user-dialog-button",St={sheetPermissionDialogWrapper:uC,sheetPermissionDialogSplit:hC,sheetPermissionDialogItem:mC,sheetPermissionUserDialogFooter:gC,sheetPermissionUserDialogFooterConfirm:SC,sheetPermissionUserDialogButton:fC},pC=()=>{const n=I.useDependency(a.LocaleService),r=I.useDependency(a.IUniverInstanceService),e=I.useDependency(a.IAuthzIoService),t=I.useDependency(m.WorksheetProtectionPointModel),o=I.useDependency(I.IDialogService),i=I.useDependency(a.IPermissionService),s=r.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s.getActiveSheet();if(!l)throw new Error("No active sheet found");const[c,d]=V.useState([]),u=I.useDependency(a.ICommandService),[h,g]=V.useState(()=>!!t.getRule(s.getUnitId(),l.getSheetId())),[S,f]=V.useState(()=>Object.keys(Fo).reduce((v,C)=>(v[C]={text:n.t(`permission.panel.${Fo[Number(C)]}`),allowed:!0},v),{}));V.useEffect(()=>{(async()=>{const C=s.getUnitId(),b=await e.listCollaborators({objectID:C,unitID:C});d(b)})()},[]),V.useEffect(()=>{(async()=>{const C=s.getUnitId(),b=t.getRule(C,l.getSheetId());if(!b)return;g(!0);const T=(await e.list({unitID:s.getUnitId(),objectIDs:[b.permissionId],actions:dg}))[0].strategies.reduce((M,y)=>(Fo[y.action]&&(M[y.action]={text:n.t(`permission.panel.${Fo[y.action]}`),allowed:y.role!==ke.Owner}),M),{});f(T),setTimeout(()=>{g(!1)},100)})()},[]);const p=async()=>{const v=r.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),C=v==null?void 0:v.getActiveSheet();if(!C)throw new Error("No active sheet found");const b=v.getUnitId(),R=C.getSheetId(),T=t.getRule(b,R),M=Object.keys(S).map(P=>({action:Number(P),role:S[P].allowed?ke.Editor:ke.Owner}));let y=T==null?void 0:T.permissionId;y?e.update({objectType:lt.Worksheet,objectID:y,unitID:b,strategies:M,share:void 0,name:"",scope:{read:Ke.AllCollaborator,edit:Ke.AllCollaborator},collaborators:void 0}).then(()=>{m.getAllWorksheetPermissionPoint().forEach(P=>{const x=new P(b,R),A=x.subType,k=M.find(N=>N.action===A);k&&i.updatePermissionPoint(x.id,k.role===ke.Editor)})}):(y=await e.create({objectType:lt.Worksheet,worksheetObject:{unitID:b,collaborators:c,name:"",strategies:M,scope:{read:Ke.AllCollaborator,edit:Ke.AllCollaborator}}}),u.executeCommand(m.SetWorksheetPermissionPointsCommand.id,{rule:{permissionId:y,unitId:b,subUnitId:R}}))};return _.jsx(dC,{loading:h,children:_.jsxs("div",{className:St.sheetPermissionDialogWrapper,children:[_.jsx("div",{className:St.sheetPermissionDialogSplit}),Object.keys(S).map(v=>{const C=S[v],{text:b,allowed:R}=C;return _.jsxs("div",{className:St.sheetPermissionDialogItem,children:[_.jsx("div",{children:b}),_.jsx(Z.Switch,{defaultChecked:R,onChange:()=>{f({...S,[v]:{...C,allowed:!R}})}})]},b)}),_.jsx("div",{className:St.sheetPermissionDialogSplit}),_.jsxs("div",{className:St.sheetPermissionUserDialogFooter,children:[_.jsx(Z.Button,{className:St.sheetPermissionUserDialogButton,onClick:()=>{o.close(cr)},children:n.t("permission.button.cancel")}),_.jsx(Z.Button,{type:"primary",onClick:()=>{p(),o.close(cr)},className:Te(St.sheetPermissionUserDialogFooterConfirm,St.sheetPermissionUserDialogButton),children:n.t("permission.button.confirm")})]})]})})},ad="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAADwCAYAAADYdbe6AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAB4KADAAQAAAABAAAA8AAAAAAt6wVXAABAAElEQVR4Aey9C5Rm11Xfee/3rEd3V78lWS2p5Qe2sAHxCGYWMMgrK8AAs0LWjDyTNcPDY7CHYTC2CWBw1rg8E3Bggh1kHMbMsGRWEmaWPQ8SB3AIGQsmLCDgxBjLOLZBJautV7f6UV2P73Xvnd9/n7u/OnW7qtVSV1VXS+dI9Z1z9tl7n332/fr87z733PNlWUrJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQPJA8kDyQMbHsg3iqmUPHDze+Dff766r5Vlf7MosvuyPDtdZdlhfckrCjkFz32kTvO6tyv3JB79oTNrodyT87oOr8e5+F2X564vo4+oG8wNdbUriV/tddVo+nA+lcXjNsX6VXa+KU+tT3JKppePK+SglbW82zI1pKEjaEJX3RnN01STrL5VuxpEn/ZPveSvJUGSjYHy2QtZ9vi5kK8Osmw8CbbDu0TzEjp+r8yz3/jZN+WfDJLpM3ng5vBA/VW/OYxNViYPbOcBAS9f5nfxd5/Aw5N/wZ3kQGDtNPokH4OhZKb8kSLxChy8zYHDaE6E30HF8ykSSlekXCKxvmmTGqaVoE+iSurTu3KgEl1jNiCu2yWu5DbauFWvaW6z6lOf1H1OeWm0cq3MdDkNue2S6YwaTQ4dbpOanGeau97ahtE4yz5/Jss+98Usm3DjMx20hOGZjkt1kvSQHoL+az/7Q/mHrJY+kgf2uQfifxP73NRkXvLAlR545JHq8OUyexcz8FvVqolZoDHNjbhZTu36KwmhDGDqZv1j0EQuWYGZt7uuzVpCraknrsflWFb9WISpQiNJxvvzXCxeVu5JvEpO87rTprrEw99W7VfwRjqn8g07m7aYXjpw0+KbCumPk9sqmtsT65Ps+ctZ9gefyrKVNXhqYbN/i7JIzTau3YfaRfbuxR/Kl2qRlCUP7EsP+Pd7XxqXjEoeuJoHBL5rVfZxJvB7Yz4HghgYNk32NfOULxIWn9H5sLLnzhMJWbvWTD0hq39Qsbw3KZ+CT/NfnfdR6/Z+JaOyJwcqr3semeSkKWCLoHa3y/KoHxcw22j07tzWuH9XEuuT8pjH2+J+XW6ay6Zazsfq+SNPZNkffzrojG2Iy5tspuL9O4/aoS21utnrFt+QQNj9lfL95wH/97b/LEsWJQ88iwc+80j1cVjui9kEALY0S0FlJZ/crWyUGpT49mvS1p8i3k0TOHy2rCueWkZ64+VtkdWmf0Tqw6JaEUmi6SPWaaSa1gQNq8sWiUU8sXxMly61NfWIrjTlDdWp3rq6SdZoPhBncLm6j7gvNWl80/FG9tZiG5n0KklAqVl3Gu1LgO+ffMa47ENjsD5q/SK6mmkbtKnpaqz117Slbit73U8lEJbrUtqHHvDv8z40LZmUPLC9Bz7/WPWuoswWncPn3mbebFc95vH27XAh5nfeprzLxrziUaqBYFPZ+Zt6jKmWsWXcmtF0OLMzRXmsz8lTGnICz1if8yjfEsigW5/GECrTumgkB3jRTTe5gbQaG6kpa831eKRHaXU9yz72R6GsT9e/QXl+Jfr+5Ki0SPji89OQpJIHds8Dnd1TnTQnD+yOB1h6Ps1G2EVFrTZ/a4ZXaoBNPbeHprrNKnw4IDkAOF35pmgP3VIvfqVNbYG06TMGuyaItNGhiM50SWlkoOSU3B7PnR4a7XP64bZ4LnWu1tR5pe7HgdKqfLjujspTrYHu4xXZxuF5xOg2Gs/0Q4UwtIg1EJuf9CtbxPeHf55lHc1GLhS1TWmRvNvkJOlRknhcpnpvN7P9AYuUU0oe2Fce8O/qvjIqGZM8cDUP/OWXqgcBj+8Xj32B9eETtxPrmVig50kkA6GYt250kqsycIE4pbseEeqyMl+GNUCo20xHLWgkCEZTXy4f8YocJxO1j5oqYZIBbShuRIi0iT4dV81bZzV34LFK1KBi3I3avdnpzrOJrsaaoEw+0IY1JTVtAvqa5h3FwOm6zzydZf/+c8FG97vrtzF759JFB9LvNzLmf+quC5Ypj5VVz7KLWS+7+21/K09RsJyS0r7xQIqA982lSIZcqweYpO+zZ7bRBqhc0bAmZmhq6/HN7tbfbpv0hQxXSTbx064JvpmuVd7BwnVcTefV+vD+PI95XafTnq3Ppo6r1b0t7iMey9XKAsLBMABjU4/ZyDXZLv3VGa5VO2oVmpKmoFpfE9OrBtW9sZmr/cp0mBeMtUt+8cqmREkeuHEeqKeoG2dA6jl54Ll44JEnOGgjz057hDTNUaKJvs1EPtcPYCy9TTCI+/I2p6nepLmOODdA0cRP8rLnoklHnHRD4El8SsrtJoLc+/S62l0m1uV9uA61ebvrkGxMV11pu3bX6Tyuz4TqD6d57jJeV64hzs0AwqM6OoXgdk4j4shn1h8feuVoxPOEjgBY7bU/1G6uso8r7TfdGr/4Ih/GOrx/6cLGHyVbVDml5IH94oEEwPvlSiQ7rskDTOb3akK3FAGb1aFrInfwqrmmIOX1OHcQeS60WMbLnsd6tio737Pl1yLb5HGd29G3at+KFstv1b4VTTLye48HrjqpylJ9nQSE02umBr9+FM8vBxnj9w+118DrpC3zrfic5vmG4OEHf6e69w3fmk7L2nBJKt1oDyQAvtFXIPX/nDzARH7YI8UYCDwKskhqG43id744OtqG/TmTXb8LNutOv5Y8lo3LklVdf/7ctdne1O/tzdz5nO515VvR4va4HPPK/3ZyFQzua7VvSgLXmqbdz9d8zaTEZZ8NoKW/wZNPsvugfpK/lJIH9oUHEgDvi8uQjLhWDzCvnhavJvV4jvVJ3uhqIDVB1usODF4P3Buf0uFtcXmDY+tSLCMOr2/NvTXV+4tl47LrjWlxeSut3t7MndfpXncbVI/L3t7MXd55VVfZ655P9Ukvf+ITWAuAxePJ5U1vRBegXqHLaQhrQYSqJckq6vZNWkbMs9OhNX0mD+wPDyQA3h/XIVlxjR7QpBpPshKzHbHMvjZhU/f8aiqvxhO3xWXpiwFgO/1NmavJNfU1ZZvt2/W5k/TYBi9fix3O63lsk8t7m+fCVy1bK/frGsvtcHlhh/UldckD1+WBBMDX5b4kvNcemCiyaXSqyX0vZm9168DRMOFZq9vJbUd3hc/W7ny7nT9XOxxw7dLUyCoddq0iY7V7ndOqzK9TGYRMRB9SEKea5uRNdllnG8yuz9G93fzibLCmUvLADfFAAuAb4vbU6fV4wCdyTbDTH0y4HoVJdsc94MDoS8B+zZod6fUjB0oD3ZpBWCq6kmRjLI7pam/WTUYfpFpFKMcVo6SP5IEb64EEwDfW/6n35+EBTbgOvD75upp4onZayvfWA7omDrh+fZTrz6+bLBKPvatNbjJG5AM+S1tdTNHiJN4mn/PEbdBagH1KyQP7yQMJgPfT1Ui2XJMHfHKPmUVLaX95oHlNBL7NHezxBizxq118nhzA42ve1CteB3DDXPTEctauj7QELS+ktI88kAB4H12MZMpz94BPzMJfD5yeu5YksZMe0DXx69LU6xGwg6hOLNO1i5Oe1ard3x1utjuvB7iqi0f4qny7vh2UYUkpeWBfeCAB8L64DMmIa/VApehIM289+1rkY7NuTbtWRYlv1zwQA2YMhn6t1G6Xj8Kmd4BFrFMs5zTlTleu5Dq3A9f6a5JuzoK70uc+80AC4H12QW6EOYvve+Sw9Xv49IAfMB/cCBuerc93/tKFu8q889eevlB+xa3HWjYR+6xqryEx0243CT+b7tS+wx4AHB1kDSBRH2HrRiN0+wWkuBFBu46uwE1znfA6CKsTsQU0D4wua3Q11boNsON+Anv6TB64oR5IAHxD3X9jOl/84Pqdw/H6V7az/h1VXi0MWRds8fCtWl+t3vmBlZzqU61OazmbVI9WRfXYz771wFM3xlIO78XW0aj4JibZO7XEmGd5Fe+slV2aVzXBip7S/vGAR6myaHpp7GJtAKeWoC3VdJWnvJQj8pbRrvdhQB8LmtKND9Ojj5SSB/aRB/zrv49MSqbslgd+4v0Xv66Tdb5xNC56WdXJq6wAtFraGmNdQlDS54lyUp6g/tK8m+U/9cDlQavVfqxqF58vWuPHfu7NRy8Z5y59LD74yMzaypHXdKrOa0bj8S15q1VVwG5ekecZ/5OwsjmfOv2Khl2yM6nd2gO+IqEv0vQ0qppVgOnXSe3+G8AqK1mbPsRHLn61eWQ7vbZq17Ni37AF75RfAi5DPu0zfM2tLX0kD+wHDyQA3g9XYZdtWHygOjSqVr6d6PFOJiP9V7byVq6yTXjqvyS0VB0mgLeewgIdUrcqy5eCfi/r8MOq7/yl5bPtPP9ikY2+8DM/fOyxnTL/nR945o5q0nv5aCUDfNu9PC8Jd1uTil052GT2hRm3HRkYep+OY6eMSXqetwcMLAWIfIumqxLUBYT6E4jqeukvfgY8BVno/gU0mupOqOW8Ov0ZSgjSN6VT9jSliSGl5IF95IEEwPvoYuyGKUSvJwb5yv2tPO8zERU2S6kjIkl9EkHkTGLga8hFZLKzqUp05wsimuAgFtmxqpUdrcr+V7/j/Zf1zPhsu2o/xomCZ45ms2ff8pacX4Z99vTAA1X/6f7wVF5Up8bF5NVVmfcVjOsmgHuEMHdjCUZqWVy2QIvvDjb34RPtZmqq7bkHuBDxtYjB023xdt/xPKXrelPRn3iUK/nrSyoLlJs6fce087t+r3su+ZSSB/aLBxIA75crsQt2/N0PDO8py/G3MlsxX1VFTlI3VrVpLKtabVveBfKmcx4zXJjeiHi1aKe5zOazguU+IhbwN8vtTANkiE276LutysuX8FOwr30yW81+6oHVQSsvz4HswzJrDwFTfnROk2l5KOOn6vJ2dQi8PwTvoQwhehPm0kmwUb1XLDcrApac6maJdNCRiEJnn4gtr/nIUrrRHuAC2TWzqxeuk0wSzfPwTbS2t3ItNz3SqNlYlOGgjvrwjIIvna82t5yBdqeZ4vojXml2VsR1V7cU86Vy8sCN9kAC4Bt9BXap/7/7vsv3TIrRX+cn6osKXAvn4IYpsMraYGah53NElsLlrNSEqPBSNC8bUDODtesjhEK0oqkMpGTmy0FSaZR+PlgpDrMlz5a7RdW+TVBN5A2cFzYPojcvFVVbzVDX5k/Zo+AcXXkb7rJqY0eRk5emmw7Vt+iAuuva8BwUEev5foOeSjfEAw60rFpY5GpGcIH0vVIK35m6nmf/7OWn8iVr2IGP099fzRzrZcUnfiUf74C6pCJ5YFc9kAB4V917Y5T/9D9a+cpJkX8TvTMFsurMxAdg2vQXlpUBO9UBQ2GXlpXFyjIfoFcHFXD7hFmiw8DaAZpNUUS48ApYWwLHXBFKUdKXdApbWwF0oUX90gxDafuY6dN0EOkShCNKU0tzNgoKVqWFqQHs2+C69Ie6pOuwyHhr8KUXBFLabx7QF8xtqgv60um7pXyn0/xqdnKlyPQFeWSndSd9yQM77YEEwDvt0Rus753sdC6K6uuY3ogetYyrp2OgrR6iWeJhqgFkq5yAyvb6EWAnvqIkECaWDZFLAGWJiD8AIhBYtYDCUlunTb/KamMuRYeBPIBqyE6d1WL0BXpLNwFGC/pLRdwk2SMwNuCHgk0dIbJWmoPNQK4tQcsObhakzzqUtMqe4rLTdivXgJXiPkWL62rfik/03U5uy7PlssN5vKy8OQ7RtktNecnanRQCuqHSJRKPvonmNuVb+Go7/c+FXsxmMyxbrz8XmcSbPHCjPJAA+EZ5fhf6fccvrn4t8ebXhOmPsFQTHTMhkx3PeslLRZuCRD33ZUJsE4MqNBZM5i1bhhboaSVZdOVBxnYj29wJMubQC9FVZhiF+BROKwXgFDijDhyuJ3Jk1b84DLu1qQr9RMPWj2yAGdCVraCsQBzdgDRwr5sDNWsshu1mSZjEpbHuwyZ11ZU0Pk/e7vWr5ZK7Gr+3i8f7iGnS7fU4d3qz71iP2rzuecwvWpxcv2jNcsynclOf15U39XrddXouPV5W7vXpvV0gTf3iffilUG7Xna+KyqajMaZaxfPLFrmT+yueG+dh6eT5KUlSyQN754EEwHvn613r6Uce+Hx/rnXra1kSfgVzW6nlWgGWrdtqMY4tU7SRM+npB3WhiUw0G0BYEeyENeBOm6Vk1u+05ssyM+W83S6kplKuZ7AkPZslFhULC9EsQ9NuAGkDpGMtFTO5ajk7dGYN9E8N3NVDYfZmwYV+0Nz6sSVrbe3K6Ydla0r2LFi4rveVecKsDomiheLsBNMMTvJJ3kEjUDfoXlcume34t9LX5Pf6Vrq8zXPvV3X9xSm2NW7bzrYmf8wXy8s1atOfuanuNObxNucTi7eL5nXRVPc2rzstzqegWo/TZaTL+UzxFvUZb9iJfDEvO3+7usSKzMpOqEs6kgd22wMJgHfbw7usf/ED1YGVyeW/no+rYwAiASPYxlYmXuIxkGxr15O2QYGv7TbAB+aqDTg0EHbzwDYWgdk6pUhYwAsjIrZMbKvDBKlsqqo6CnfoZUId1UJDYbHR/DmxZAW1kwnzL4GyNlAZpyZ0ba4iIyC3MAWYV/StB8Usgcsq7IICDjOdUxeJX2zXm79gv8B7E5x5zXPJe1m5AMBpTve6g0PME7iDDqc7v7cpj2W9H88dCGP+uBzbIbrLOT2Wb7Y1+3W9TVu97rnzKXea9+d152nWnR7zq+x1b/dcdLl904WivtW4dvrc00//7/kNO7XNx5/y5IFr9UAC4Gv11D7k+/EPrNw6mqzfx/u3fRaGJwIxOy2KGTCswhH5Yjf4lwOcYyZAbYIiltTzV0CYVWIFu/xv0bByRbRQLbLVJNoqgUMSiG2xrYpCVZ4YUwJqw1tByIVlbWbZvABdBZQtg3GWlQFi1pQ5/APQFnITXVPKO+gR6JoO8DX0H/To+bHVteELESG47h6wTY+EbYZvAoADh/LmZK8xeLsBRM2j+wmvi8eTeJv6vS2mx2W1q273KNjoOpp1t8P547pocV2ycfL+PPc2r0s2HrvK3r94Y91NWeloyqvuup3f81hXzON01+dtTnf5lCcPvNg9kAD4Jv0GvPP9q1/HGu2reBjLCLQxSuDJBGrPSgVYgq+QRK+BVou/RJqAIc0AYkvLxNp1HF7zYVEa8EWHdlkBmu1SoC3A5MgsbecKy8qGxrwSxI4oHWWpPvlP27iIigWQimr1ahHAzrNidKPAXl2qn+3KViGfzNbyuHFqos85mlDROknL2+G1KHLBSIiMicONnY8YHBiwAY8kla422cdygTvICqgcLGIQE4/osZzXY3mVY7BzHs+dd6tcPJ5i27ezQ7yu13PJiT9ui8uuV/wu47n4vF256Fsl5/E253MZz9Wua2L6vRLXvSymHUpf+6ZqTqp4BWlth1QmNckDu+qBBMC76t6dV/6Of3TxCHj5DZNycgTwCrEh+5uY+G0qswkx7DzWYq3talZurwgJFOECMAlQsS3XsRiAHuhsy7/EnNqTBUiXnP2cC2cFxuJVDhBqMRta/f6v8FXQC2CigrCWB8WwEqXyALeATTu/AG0tJKvfMNnWU7uUmx7ZiF694yuFZhdhNpKIGJ4EuUCzGw52j0Ezu+rcmGs+By0boxm0wUvV7VDRdGzSo7GiR3+evK9Yn7e7rNe9b5dV7jxXy53f+9oqdx7X4316LnqcVL/aTYV4435Ud93eFut2/U0ep8d9uV7TWX+4nJtpdbXtUFpZz26pVT2yQyqTmuSBXfVAAuBdde/OKX/TB6vukfHKl1Xj7NVo1cKkRafaK8XEp0hWS7wExSFSrSdFAa5Fp1oi1tNgRauaHBVlokQwU43teStKtFBMBKooWYBLm/GTZ8UEPO3wrBaY5TUnkUJCgyJjHhsbdKusBjRxA6ANW6bHeBWFo7u2Ua89Ta20dpcVqNtzY6w3sOfZNAwoNMOs81oyRP0mvfHhk38MHjHNQdJ1OJ80eNnbRFPZ5VWP01b83u5yqnt5q9z5BWBum2gOaN63ci9Ljyenqa6yJ/G4vrhfb1e+FT3WvZW899fsq6mL6zi1x82S2c4X23G9ZaLf7too63TH6RWk6/Vlkt87DyQA3jtfP6+eBLwHhyuv6Awuv4LfA+qhhGVicEc7o3QuIzMau5YLYlfTL4xTISzjqmBkRbB6i2fTCxo2QRLNAnY2P2oHtPNrAZslaAJZ7Y+ij45CT9sRbQoFpt6H6VEwi36VBaQAJ0X0AaLiVYJgUTlFLWnbjYE18OH6tAOb0FsgDQDp+XN4+ExfhX5AAiOkY1NS1UChpnq7T/QOGGqO22r2KU31mNfLyrdLri/m9X5jGW+PaXFZ7QI7JdcZl92Gpm7VneZlyTm/6/D+PXd6nMdtXvbc+baqq82TbPBkbqvrThYt1uG815sPLrAPgpPE6X/1enUl+eSBvfJAAuC98vRz7GcKvMO1lzF5dRW7MnEZnBqQQgSsBFT8EcJacMhcXOcAbosyQMc+aJ7NqntoJKFhAFqe14KDRRtwY+oH+KjTBhfPfm3GtO5MVmArkNQ7ugjZyVfSVkeo4iHoFYWCxOCtbal1hX6Rh1FAreXzCWDNvjFK0i9d9roUwlrCBnOlUyNFYcHthspa1dbmL/SYjTTFZaqeNNEriS+e9L3czAN34HW5OPf2mOY6RFPZ09S2mh7XncfzWIfTlMcyPgbvw+vO36THsrEul4tztbsNsZ5YztubesUTJ5OPr0dddtdIXpfN67HsdZXnswOtUVb2LmfX9EMg19VXEk4e2CEPJADeIUfuhBqB7sJweCcPQm9tDdaOT/QTuDXm8isIvNdjgBgmL65cyXs+9ntuvNur4ElxsDC6nNRRMoBWldocLZAOwMmWZMMvzYNtGAG4MTMigDhRZ3ZWM2dkaY5kTRtARrEDeB2gAcKKt4lM9dy2moQ5O5gmK5ALZ2NpCdqeCkuZTbuoxe58oihXfaMfUoj8pM9sJVKeKMq35WctPusVJLNeIE3kbwOC5FrV7BO6A4u11TzBwMDvdNEcTDx3DtfhPHEel12Xy8V152vqjnm8zXO1udx2uXiU1B4n6dhKj/PE/DGft8e5t28l4zTncTnRRTN67Xe1xXwR2b4NLrsT+biVzfG2WvWJj6YNWDvhz6RjbzyQAHhv/LxlL4uL1dzqidVDrWF1rOxkx/P1ywtiDAdeECgqSuSxq3C3NbYotsZAIkAtDetFHYWvAKF+2LwAj3luaKdMAVslZ00SNrMUzMQEiPL+L/pIPDYGkAE/dBeFol7J8RBXrSCrMunRzx5wDrR4BdQVD4vzNj+HFPoJG6iwQXJwCoGxyx4TK2LVOIStQZYbA23S0rHSvJBMv9r+he3SV/etmwQH5bCUzYYvBdUYREvQI+s1qTsQOA5BCqkmePsUFLw5BooGTdVNgBH1423e7vodeLzd684n+nbJeT13Pq97LrrrezZa3K6yy7q86jHdGOoPl/Vnzy4jeiyzVT3Wo7Kuh/FR8GtTmxPamgLXWe+W2RprN+kHGK7Tj0l8bz2QAHgP/P0mNoi85DXZ7LibHRysrix0u61ZFlSPrRTLXf0cX8kDVu041hGPhZCJpdkq7xA+avISQCnAE2J5mgjc6kQBfi3hikv0dqfDJ8u7LO2aHLoM/HKi1RYPc4ms8/bE5lf1oaR+0GNzJKvCegUJ5IUf20LfCl05RsPsE0B3FIrqSA8wHuy0vtQ/7CRbOobfcumHzJ8tKQP63DwoAsYWo2tRWjLYqYgde6XDdVE3fdaHwBje0Iu4Qqq7DQ02Cm8JucCgtmHa4LQpgYJongREuikxIKnp035gUjnmdznPXf92uevy3PlcPtbv5TgXX9y/l2M9zi9elT133kDZGEss623N3PWI1/Vc0U/D36YXRcYnhXV7U/fzrT/8ofzJ5yub5JIHbpQHEgDvgucFuPOvWj/Z65ZHiR6PlsXy3GVFfkSdbJtqDQk2CfwEInrdB0D0ZWKWdEFhHcUIEAFyITq1MFAASZqAtHptSBEnAGXv7Xr0qd9S0Cu7tT7abWe0zsSwQzCkW70G3FC/gV96VVZjsEeRM0vS9ky3nrVrOUCpAoOJZsMyNfyslEulnh27zQp90cFGrAlryB0dY8kCObYRLYvOKrn5Q/Yzh1s/wbYw/nAjQHQN3Aa9mq/VhpXWm2yeJhplfPgIoBCDhMoOEJ6L3XlUdrB1urzh4OsyMb/44tTkMW/WDC7nPCKrP6e7Hq9L1nk9d32eSybmU93lvc3zpg7ni+VFcz7PXV65J8noT75xPd62KdfXBj4l46dusoFksmLZ6ZOwavUpSx64KTyQAHiHLtOb3vSn3SNf++rbRqvDk63WKu/oMknpmapeoSHcZMLNJzyzVZSrXcdMYKJrkuI/fv/WaDz7bHWmdfHrApUWtfIeEDmgJr2kNgdPAoJEuywtmzwRqkWUvH9rU1+LoJkoNbQxX6pP64eZU5uYxD/h/SJpq3WHsgG8Jtmw7E2fZu8jo9lb7+qOntIYpEeAa2OSXdxb6AFvDbwam5aRucFQN21uHxgJz31lW20HvPTd6pRqZZnc6LRxGIduQgTq2KWNZuarMJ0TUxvdPmjXpO5AYC113elqU7mZXEZ0lWM+l3W5Zt11xXTXoTaXi/uQHxjHNKnc5IvrrnsqQMH1qc3bPZd+t8FpW8luRXO9avOyctfjudpVjschmieXtSvlF0iNkS5VdTn0HZau6z0LWq8fjVayA3/+6/kF6U4peeBm8kAC4Ou8Wu94z8Uj4/n2bQSsJ8YrQ9CT+aaYWGRb8MxUwEK8y7YilnOJ3bRDWMvFFqmyBbgYh6hRB0BqqZXHs6zHSgcTFDA2QV5bqYBUtjaxbIsuYe645MBHGPOxIlGWaClLEFDmLZ42B1BpGZk+C5Z1FQIHMMUAbZxi1zH9KuXIVnaKpezrFAJUsxlQ5fGvbZoqeLKmZ8wzq+Plj/7VzHefPDr5wjfcNfgz46u0jEyf4w5jVkdaptb4JuEmgz60mau0PqAzPv1QkvrEDv38ESvL8oneMmLZnTFiv/lAY9ANAu8e1adjIU/kb8vlMp5kQBGK07qDkQjmF4bh5bgeqIHHy1MQgRCDkNrjNuffir4Vn4NW3BaXXZ/TPJe93kdcFi0ei/j1F9NMsP5welOH83i715W7DU7bisd9HfNOy7VNDsgaigOvdNZDc/XPKx8MstvGVTbHfopLi4vh3JbnpSgJJQ/cAA8kAH6eTl98sJpZu7hyNzB2CyAHWCpC7fNjPfXyKfMXkWnW4Vlp3mUuA2GJ9ureFDkWLSI99hfxC0RVpyQ8tp/mZaK2eYmJrWp3+/ZsWDqrvD+mD8U5Fh3mpZZ06cPmsUCjkbYQ/erdYA66QCdgprd6wG6BqBC13e1UALD1x0u6wbaqk40BurZFu4wl0yYtZlDNmNgNMOe3H29f/O4j4w//+mf7P/mXf9n/ntOd8Ye++e7iz7RBKlO4TVKELhsn7HTuhA4DHQPUt8YCUGO2ZGSQfGFy4DlTd6uvvrJunxsAbMQeaAA0QJ9XAyzi6EvrIUzgWBdMhKiyPqYAoKoR1bC5HINJzBM4N4DM27YCrlhHU87rzyX3vmKZJs3rzb6d7rl0OI/nosXtqntq0iXjyds8j/X5jYXzKhefy9vrYnWjLkWzXjc9r8yi3xG7n7vZWgLf5+XCJHSDPeCIcIPNuLm6f9t7z92+vnz5rmEB8maK/MYEfhzRyKSlVWWLIok0292cAHWQdYhsieQMCgBNQQVxIruTa/4CHoCLh66KWrXMDODiEqEmz3mBZD0lBUFZ+pWn1KZ+PBdNp0rx64CAOcvWAB9Ap5sCgnA12tKvtl4RlWLrqACMOwJokHIMryw3Gwi/SejOxacI1MCRGAMOJUXVf/ue7D0P/n73pz53Z/cfLj3S+eSxQfGxl56oPvnKE8UT4hfutvmFCJSj26dtgSwjkW57Ti3dAmXo3APoLWdzkI2TQQPU3CgYg8qc14XLbHOWKbSP2iZl08iqppniq3xsWLU1U7O9WZfUtdK27uHq1BjkxNmsb9V3U6PzeO7tTV3PVX9Tn+v1/Ar9fk24wLa0QS6e600rrDr1eOt35mB27np1JfnkgRvhgQTAz8HrDzxQ9b9YrbyCleTD3PkDsO1Jm4hTy6sdAJWXdAw4dPRTh//0zLNHuZyM856OkmITEjuTDWda3cBbssRqFwFg4jxJAuKxeLQqa8me1VqgCwTzUhJr3Nam9y3sBCsVADuWnokuOqX6EzJYe7edd8BOPUeVMtZ72ccEQMOnMpNh1WfZl3OlwX/sYSe2zFO7dimD4Nhtz40ZVwdwBwTpJuO8vzd+8/jv/a+/e7BYPZl/Z3Gyc++XznWyP/1S9Vunj40+9s2nRv8umMWNRznIZ7ozHJvJknQ+zmVY0Q0RP62cHThTDtVWjhkbdunMS3zHsZi8ssTNATbxenPJj6zbuJi4bSw+ydtEbm3WrGHueXJbdrLjJsg169fT11a6tqI1+7DFkGsATumy6yIFlFWf0uzqBfqUp9nRNdRf/l9Vh8pxtsCt2dqfpx9fuAaPJZb96IEEwNd4VQS+j2drX847QzPMQVpQBpKICxXRFR2iNwEb041mKdbEJuMxwNcF1ABURIj8eDjK88wQxdm7rRyuDFazJAzqjQFBoE+/+GOPOAXwADiRL5eIvhQ9dsfEs52ugZKA0VBWh1Mq9TZfSidb5IqNsqejsFT6mLnalPktBk2nebtHpEk7IWfelV5SyZj0jFYRC+vkWlnmfA1+QLAHpurMDHh+4L7LP/Orvzu/srre+i9mThFDt/PvePjp/nd89sn+EwsHyt/6iuOT33zV8Zkn7cXirFO1J9wN9LBB6NwT2OI3xqsRtqoZxsZNBf6YJvi0oG57wiRjgszlPolD8ckd/xBti8CfRrWHKbZnD7vdk65GrKAMuBcbkus6HuCLpb846SuvFG4WQ1nXIgbYuBz76/nugp6bzQ6VRL/9A9njocf0mTxw83kgmu1uPuP3yuLFDz4+9/jltXuIdAk6u/xwkECVqb7sMvUAtBhikVrBU1SBiFZ/AQEiWRo0MUGfADzAdgFPu9UlyhtrZZgy+A0bOpRlxWhsZzNLp6oGOprgBMgCQ9qtgRaLgJkcDRABaaursU5MmBbVKnokGGdGpM+YxvIwk6HBlfZkcd+QlUOiVBI3D+oR3TbWgvsLxeH2dhRjs53cY4D9B79t5b0P/s785fNn2z9w8FXoOIGNa9ltZ59uvfFfP9174x8uVP/uxGz1L+69df33b5/Plsv1cd6lIx+HRmVjlW2j2l7ZAch3iJRlV5v7FllpGFyPTZkmdZ/oHQSi5lS8Dg+M8PsKDhcAKwlcueljT0Oox5/LoKj45vjuzzXAWXwC3BiAvRwDcazvWsqcevUU5l3gpwebX4trEU88yQP7wgM22e4LS/apEYsfrnorT+hXiIq+TPSoVmBX5V2iuABYbr7AZRxFv7Y+HEGH5MUb5LqA6JhfBeryGo/AJ+gS+KjufYlf/aE26/QE6SAUia3HLQGq+AhJmRrDXKR6ANpJu83zVvGqLrm4H9fjcuLbGNdWkIdEDY6uL8h2swd/Z+4HLw6zN8+/EhtnsU198quso7MUqHQPZpdnO9Xv3b4w+ejrbl/7RPCT/BlAN/hBNippfFoW79j0r3GKKt7X/yeH3jXfz/9T1ZU0mWuEElSfhw/AtwVIiDela/PAZSLLVZ2ojB9nAdVZLofAd7s0BKwvc6BMeDhCtIysgHgrgLWbJi6WrpWuWdXL7r7ntnyJYkrJAy86D6QI+CqX/MMfrtp//OTKy9l3y1qxwEC394RpeRfwDdM+ILFJAxubrF3Tjzbwhmkm8BSlADZMS0GO7dHoC3y2ZG26tBFKr/QU5UiRH0p66GSjUkdgLZCUDo5w5gZAvAAWjSNavB/eIGJjFTuhxxPl8LfaAmen84w39MSnomKL5Fu9bi8bwcYvAcNvy981nwA8xC3auKVXprS5qmv3Eh3aRvn3f9vog7/2sUPVM59q/bcztzNpv4T5m5c8Z08Bpev0ci47OMrz71oZd7/r888sPH7L7OSDLztcfOKeY+tfkincNDCeYGvwmU6Rru1thc1YNnYtjDNiTeAW9crFJNVT2hkPrPEd0E3MYW6krga83lufr53+tFTNTwJm6zrdjcZ53UdFyW+W/Fopry9fxLV98dX3V732QnayuJQ9/fBHckF+SskDN7UHwox9Uw9h94z//afO3dIe8iu47Z4tuQp8lVo8fNK+3Lzq6dloNR4LRHvczANUej7Krt5qAniqTjtQoo1EFc9d8xG8XYBOEWS7JR6WYy065dEvfFkXXcxeFNmMxfu+BvpD6YcPHu0WNlAOcuydIkBc4QGt8fNzwQKzHn2xX2ow4pkr4C1b6j6xLpxhNRrxUBmcB3w5JwNbMJnQRWWWq9lYxqu6JfJMokWJvnJo46nKXtbqYg82apm9TduE96yU3vCd67/8q/9iprpwpv1DFcuSM3fIFv5wTP82JmUtVT6Nvl72kieqzrufWOtkf/xE70+PzVf/7G+9cv2fy6+6jegyZvlL/qzot2Ls8rF6qbL58BoSM7cMmk7gqpuFEFO6Lg+cmA/i8TPda1E4w2zSA7gvXQaM+SLqpXhtTfDLohsmu0bk0+t2LYrhuf/+qv252ew0jylmhr1sGVIC4Gv0XWLbvx5Ii3XbXJsP8stEM4OZo62iW2SjYVkMeOmId410ogZACq1iZ65q7JSiDlgWI/iAw0m7GHFwhAJF2qBzroTxF4OqmIGXF5CMX7JFOeTYjBFgo2gW2RLdCu5yi/r0w0JsVeqySWpUSla7tUKveqrLAR3IA1klB2FwSmXQrz7FI3qwpWu2A3BgH09ysZ2NTQAsthWSZ/V7gG76YWy6UeAEkc7Y7B53gVza0V2o/3yIzcFGgueScyjNP5wcXWl8/823r//S4QPlB4a8GHL5MwF0LebXjAuCKjrWXrDRl4iMmUZHZf51T1xu/U//y5/O/faDDx/+H//ozPwrijY2YaN0W7+13+QXhb0W+VKRSk3u9uezPPWUrs8DAt7nCr7eoyLneVY+dDnqH+/yJqOF9Z/QPm24hsKnD2WneGttjvu5Z77wT3MBcErJAze9B9K0tc0l/PGfX7m1bJWH1dzu9DjcKkS0qhfFiOXdnt3EswIdbuZ5wwewqEJdsRt8yDAJVX2eHrPhaurrQOvxrGyU9ftEe6Zbj5iH9CV9TjM19iG661B5NBy1ev0DxM48Bxb48RoyUe80d8kg16dvPdQLqalLz+xkhwcV6kdjlm7CZN4MCmOP5VwXkthcYc8YezZ4f/W35n/44mrrv9d7vwLdHodzavK17dPyGH9jng+PL0Gjrc2zW09M/l86Nlf+0ssOl3/yNSfDErXaerjo9X/jwHtmZ/Pvdl7lppcRysHpGXDsmRtTfgZ4tGui7qffesq67nXd26v+sz8DfvX3VneyCfAo+xPWP/VP8v8gtSklD7wQPJAi4G2uYqts91rdHhGfolFe3Cl7her6684c4NCMXtlir5PAVOWq1YVmPzJAPcgEeR26QTs0lxeQTYh6Vfe81R2Y7qAv8LqekPewQVF16CPYMCwHen8JO7ozXc6/7PHIV/Vgt+qToqf3j41H8qEt2O7lYI9ehZI9PXL1QzRfj0n69UeEbjZIzmUDnf3g9D9gBSDUe+UP/s2VBw7Nle9XHL7+KEuSTzD3MgFr4rWJmLxzjGfEdwO+8Iwf4yZlJTRxAubtT6+23vNHX+r87v/2qQPv/78+N/86jXt13U470ePFTcnneKnejWQ2R4qb9ahpU3E7e7ajx8LXwhPze3k725zuepV7WbJx2XVdLd+OX3RdD3veGymY9t8UfJb3kF72PdVJbshO8Bhj8Mph9oVIZSomD9z0HvC566YfyE4P4McfuPgy6eSsWUsz9anxqvMqLgu0Wa4mI/Mh4BTNcn60R23OFxRs1iU++ymYWi8PVFsKUjvzPIJdBaDRYXLSI93zM/mAzmWH28QhFkSpw9aEXxaUGn7+Nzf5AvoAOhFxB5pytddDMbXSo346vKM8Ye1YRPUpmzkca1Mu29SHeLx/9T0ZD8xG1y1Z8fBbCpxypZOuqurXfvvgW5ZXW28RvQ3j7F0sb2rngTjjP6rj8/wRPbWO8lc/h4RsiUn4TK9d/dt//N9lt3/ZbflrZY3EZYDlFEQ7cpB+uK0UzZPxQHBQmMo4w1Vy0x21P1vdWb1/78votQ3OY89E64rZVivfJOPM5KIrNW0I1M30mEdlCcXjj2XkN9nyDLvWD7LKMMcjAsmYHbWc8yv3NqepPk1UFAHHycfjedyGsrvvuTtf2kSLKtp4NTyQLXz1Snb+Ix+xN/ai1v1RXHywOjxeX38V57u+tJ23T/KcRDsy+LdZDdhYeBGX/EVvbn5p8Q35xf1hcbJiv3jA/03vF3v2jR1vfc+F09qYK4M4kIkzKlR2qJmBFsCnDRAJGDnAwnzZ4fyKAFYzPOsMwBYGVcuggs1Wpks6JC9oDH3M8G8YvaBc4BlkQ8CvA5BN0Ktc+hWJui2Sc6fJxuF63urP6o0mXluiH7drw35xByj2ccV558BMXg21iXVAxLoBvNOh150JYPuzffoJ9oo8mQzNRpXVn/TK7n/y2wvfd3Ele5foeum3rdeUmOjb9V/O6rcDkPIR0fKEm5EWS9OtaGla8t/y1Vn2H70yy+69LctuPxQAQ3QlOUIArOeQONXS1DnUjMaH+lBSXcUr8ppHdEt1PaoGuYje5FXddUvO7TA+b2zQxWOgTGErWekRWLr9W9ZFJIlPSXrE73qng7XWjX60w/xJNk9pN/PxudAouVpNzR34p5W6ENukfs4BM7z5nmlTViwf8011bAHAnPE8d6mfFV94f863YH8mQHdmuLr+VexifBVvBNwF4MrVOJo9ghxqzrdQfmc3pu0ZtCY2+S8V+fj3/v4PHVkyQvp40XsgfGle9G640gF/539+cn5Ydo90O7O1j3iXxtIsvxGwXs3OznK61DptoEm2TrQ7W62vr/P7BWxeBiBdznlpyrqddSLLWZuTOGDCIs0uv9UgeenZ4F2HV1HobBSNqq+QeF3YgDuOVodrg9YMpownM5XTg17JSLcmBR8D00Nt58Y4JAtgR/2KP8jNmu1193UWxj2eaDzBXm93X0hXkM+yf/qvjt5/fjl776YZ2QXI9cqSALnDn8r8MkM2ISKesCzdvhVaHRELgL+M3dWeXsnBH19+Mstuq4H6GKAcTvbYABfntb7xohypizAFBCqqawp1muoixiDkF8Da1E5ymsqim+5poZZv6HFG45XgVZLzeC7WK8qu3/uNeJq83pWzarxSKL6zq+wU4HGAdkFz4xb8UQu4HstdWG2UYx9J3xd5tj9ga99hruOmgztq3unNQJCfRsAv/5Gq372c3ckO+yO8wXf2U/84f6Tuft9kb33fhcOz/Zmv4PbytawMMULuNPTCNLlFvUS/VglEtRmhqIFYPKQvLnTn//k73pxfgiGlF7EH9O8ppW088CZOwDo86h7mVKCqO56t8tn11hjwm81nywngIjqvWfC+Dv+6VvLWqLfGFBPCB9GDXFWN+VGGuAu1qa525ZPRWt7pzVFmDRB51UWfm0PXGjTy0WSNwDen/9mKwzimcmKRTeNxVYl/Tfwk9lATNYd+XLfGMO6u5z3eQKoOzJbj0Xo+oezt6rvXWcPuORuXVHXot3dozsayYae9XkKf65xqNVupT/lE45RuWdDBF7JncnGNunyylv36vzz6+vOXW++TfVdNNjqmLqY3zW+llqUBhfYtWXbfNwHAd24GIenS0ulLiZhf94osW6A7OTAGF1OpDxriNsnGdZUFEAbGalSiHoOMeOLk/RjNOtrM77yxnGT8W1GLBDZVzKCNPOZzHZv69A7ITa/qMLoa0er4zL44Rvd+AquNmbPGs6d1wwOEKAoWCHvy/lzW/aG6krfrZLLPP4kOaEe4ZkY3jmi89G1jkg1ZdvcP/Vp25tyj/KzgJLsF8O3Q/6XBueyvvvDb+TBEmsM72+XkTl4dmOHtuAXegxvwj+7SpBpemun0nlp88+wX6y52LVv84Pqdg8nomzkQ4E6GGBKD1VD4HU3t8dAb6uz/YBcGDC3+05HuOloWH+jNfouGLYeXw9VV/DNegfg3P/fmowmI3acvstz//bzIhn3tw7VIuD8/R1jbyogQMiYVpS6AN+ZkCauv1g20TemBLXxKBhaOQeY9YP7N1nzOYgBN+7i7lncFxJTn4VmVXivAWeuQjPSEZWjXIFlscTs2yLz+W9s5pQWdbqfUn79YVQfIBfBmX92H2+rjlkyPfjgN06bOvFonkBaQ59gdbjTEo67MN+Sie31I2//xe3P/5cWV1i+KNkUDLyu3GV6FKGkhsp71jn9lln3zN2bZS45H7XVRorMA8V08Q341YP1yNnlpSdW/5GaIeCk4gKgad2nlul1tSpJzHUbgw0Ha6547r0a9XR/ev2Sm/JSbfcQ6vew8Lud01ZW2ar9aW5AKdqisQzQuaKEERbqpOcSfJ+8zzr1NucZ8HtmzF4Ks+b5hkPvF+f/yieyet/9ytgBQtTgBbsJJa489/KH8ycUHH5kZrhz7Wt5U/zqcNGNopmervLDOL3sAbACajqnhe6GvBqeUf3Hcqj7P6+9P/8wPzz0m/debZMNg/eSr25PJl3EyzZ1cT3dlUF1/J0VnXFp6ZgU62MZGQhu5wmElscKnY3NMB/whL6tlXuT/g5/90aOfNsb08aLygP/zeFEN+rkOln9d+Rt//tyB+WJmplcDyoADsXjK0xqOqqrfW8WPGw8rxaN2zo4AmLJqpsemrJrf+5bcwVpkJCAnue5QJxRBp/M5j/i47y6lU+U4OY/0qBxsIyqt626X7Fb58spKdvDAgczlpCvmVV1t6k9j6fc2dKnNk8uIR7waV6xTNO9T9Ac/duD1q+vZzzAJLbiOq+YCBJ/6WH6+/e4s++APAK5sFmomnj0b8ImuZ5CneJFM+c2aNOwrLvR1DMbdKBXb6dUy9EW2Cei58EluzNhUt2WKbVNZx1fqFC2+VtkhnlAIbLdKTte3/mOfzF77y/8335tO9vgdd2VPPLSYT975gWfuYNvgt4FVhwSyALOwzZKOiFNBEaRybot5zYDH/kAxOyOIKtVtxakx1Rm+c1+YLbOnf/otB8+K91qSfnTlqfb6SX4q82va7fwU//RnLbJFqQBUyuPc+qPfpm7xOU2H0WgMkjNaXfcxiQbPw525sw8tvuHueK+kq0j5C9QDV3xxXqDj3JFh6WjKz5zNZp9avmRTf4tf4OWwKfuHdohnj4Mh00Zfm6TK8vKlViummQEspY4EYjPIUB70g6zaFoCi4SDPl6G7nOjS53r7yKk8Xm+3tdDlbUgjfym7fLHV6s7yRjB2SdblPBfNzhDC1v7MoerSpUtT/f2ZhWo4uGTfhwWMGQ6WN3033C6pkL7RkHFgv2wwtdh94mSwz/vfileyov/GQwuvefJ89lFqVwdhhQ7xlHQqy37y+7Lse76BSSuawaRVlmgT1naAoX7VeTywZl08Sk2665/m8EiP+PQRvKBKSC7vudM9n+rZQlY8sdx2Zdd1Lbn6U5Kdrq8mTf3RrOu3pLUM7fwC5FUA1n+UQUvVppOPFSLnVf74kYRszPVSP/rTcqwuoZa3pU+69GtKviQOy/QZsHT99AdW7iXQ/RaVN29g8iXcEG2i28BQfM2ktd3Qq9CYpau8GgDS5/i+PM2yMFsMW3Z0tb/5zgnpxPnVCWw6jp9OxvroRyYL1S16Va563QdGhfZAC+CsNxzQxb2CyVl0rLItTVNQlOz8sV5Elnnb6v9cfMsx/jWl9GLwgH2ZXgwD3ckx3n//h9t3ff1/PLNc9Do8dszWBvwzUjp6lDU4Fc5nc/wCoeizsyWbszTdHM1mZ89VFzn0se/8tcxw7UI+B5BxRFYp+dnZo8icz4foEIv4VY5z51H7cOYobRl9Zei/YNPikewIdmlykC1HTc/a4LzZ6bokq2T1uSNVdt6M36DRr4/DiPUHO61z1PP/kewC/4UkT3g52Cx/aGz9AbqDY4xV9kjuN/7lwdecvdz5TRq3BmFZy6QdHzr4rd+VXXrzf54t2A5ozaAkecmuAPzHiHjl7SlN5cBWz6QSCDSpV1J7XDZi9GG6ayXOW1eNS+3hStV20Gh8Ulozxvyu2vu0zk0g6HF9WuY2vbUe1+H21CKmLm5zW6bytRmuVwLNsttpyhr8PgxFt8v1vmSXFwgrQFafAugjRL7aBb1OFK1IejpGKa7Hs8CzfV0j6eCol7u/un4N6SceuPT1PDv9emls5UV97nkbvTqYVQerg2wGhOH3raVSfMrVtydsMdCTbfgAOVlY8LOW6OKsWOnwm4eSc2M39G7wikf6BKTqO0S6waZOh6Ptpnr4nU5ekXd+t1Nyoe9gVbA72OU8oUVnv/JL4mZrbUvW//9+7i29Pwvt6fOF7AH7kr2QB7ibY1vkNwuydy/1ns7mO3PzJ/iH/JR1t7aq6WUjeVtMv7xyorqF55RPPfVUdguFZb2Tm51tOW+W3ZKtrZ7N5+Y1jaqd05Oz2/hnejYTzXWFdm4CrM8TtD0FvxLKSa5jbfUWdD1VLa/eUh2afyoX/0ZfTKzQ11eeyg8eaOWDtTyfmdMSdVl1W+2WyqaMD2+TrHRPshOsHp5tiVfj8P68/+ATp5+oNF4l8Sr9ym+Ov2J5pfsxigGE1ZN7T2Umff0UohLz6hc/9dH89zkv+r+eYU7VpC/LtFyq8gHWJU5yH6DJzCyG5qokb4No6q8ZxC8dnrzo7N4+rYuRiuoGJuSS2dRO/YoEg/oxcPRG74y66/Am5VGz6Zct/g1Tf0qb5Oo+xKd29ad26zNmpLyVLumzZMKUPKfIxkF+VRNwVTRLrshWev13gsX6NPdxAmD9sIdWI9S/ckXHslt1ydZ2WQT8U+9f/kYw76us320+FHUih7RS2HXsUTL/FNU1OnkHgbLyUA+Rs8oxj+q2tI1dMR396NG6tjZJBT2iYavpDVGt+gg06fEU6xEtRMnSfyW/eENUrHFsLG1LTrp52P2p9/zI3B+ontIL1wP1l/mFO8C9GNni4mIr+/J3dZ55Mssvn9cEsZQdOdTJLyxPbFLIstOYsZSdvut0tvTokpl08OjpqjM50xJPgvHDvAAAQABJREFU4D1V86r9NLwcan/hDLpOZReWl2qeDd4jh0Jblp2h/RTtZ/LV5XY+f+m2Krsj0IKODDuWKvXtSTaoz0nnlMUNw/NPtEfZkLLzLGWy7/L5pfzIodPIZ6bfxyNdsm3hyKlq6VGinktn8gsLm+3XeFcvdfJTdzBJ0w+7shnrEmMMY3NbLl3I8l/96Pgrl5cNhIlfG6negMUkdfHY4eE3fPzX+u+k/D382QTOZJUtEXHpl3j0ysvtAPBth5jso81XrlG8SpJV8rrINWkKWCqILsC4GlhKj1KtelrZ1Ac6vC/vRx3GtKkNNd34nJlG6Yvt8LqB/1Q46LS+a5pUqOjjcbs2G0w7jLLHuxSf1et82iAeaLJFSWX+t1STDICn/XhbLedjlpDkzg+zV/7mv1o9DebcLVZFmg6Atahl/uxXlZJwl/vCKUj682C1CdgC+PJlsMVvUaUXIDZQjUcuno2kduwzsA38DM9WsQMYi9N51L+S2aItz+yENkJNY/ymS89/NR6lrfqXvHh93MHmemx5dq6cO/A7P//GnDe0U3ohemDzN/CFOMI9GBMAXC6+Ph+9/y358DQ3/qez05MzyyxQ33Y6/D3+Ccsf/0N+COi2Z4rV7HQ5/PQnyjPLp4y++tlTk95tGXSOW8zWSpWzRz9D+3JxZvkzRe/xZ8iXC+ldMBl4509NVuc5zOqzT3GgVWa8L/ny2yZnFj5jbdhRPv6HnyhWP6sDr9ZKdlGXj4+y4uFHM/SfNn3DflY+ef4zFcvBE+k+ePQLlfruPX66UJvkJN97PCsWTp0qTn/56VJtGTqwYyx9ZvOrTiGvfjbsl81HVp8yPxy7NasWljOzX7qQn0hW9kEfv/1bup841Mv+Gpdqib/NaTrRl3/vdX/jLx/RThslTeT1o7TsJTz31WYhTfqKhv8DW24eeSZEaxL3PxOsZZtAEPMIGFT3XHIGKCJESTqmemIF8Jh9tRLnkbj0iKyPqToKpr+WE93UxTzQpjw1H9lG/1YJOmN51zPtDILbIxEl8UhGf5YoGA+5A62YXE5R7zku9jm9byZ6yEKZytTOWkbtljZ1Ekif+OT6d/JM9A5e5ZkQ4NqvXbKkK4gdU4HGT16zRgs3513oN0UUgLNhmqLorATzClDF73YEWbAOHn7CJOdHv5Bn7Zg/tSNHWW38nInxlPx8iev0dgYJTX/wcwq6+pFdWuQWr3QZPNIum8wW+sFgbgHFA91ttlz91XabHRzdjmbZIN28kE9N9mmcWiGnzcZpH0daayvfsfiBamOHZ3Bb+nyBeGD6b+4FMp59NowqX1zM8ocfzvJXv9rmqal9W9HU2KQ/zA+fvprz+JyOvur++8MttXSK7kpVf+ihh1of//h9xbvfHeje7rxux0PZQ60TD5+1uVH6peNd78oqyXkeZD9Cy/2Zyzkt2OS2fQQb7s8+8pGslG3idTtdzm3MsnfTz7uq17++Dgsy6Q/po4/efycHOPy/1E4bRVhLBMxd4gP/w+uzt4n2n31v9iCdfa8GLaM9d+/qpw/1g/LaFPRSHsnP18+Jp15yNHBBcgGLqkqxTtEMMNVe8xkTZbUxYU7ljM6H5OPkEarkxR+nWGdcFo/0i30ruhplcxydO+8VA6ChqUP6XYf3Y7RAno7Bbfc25WvAzDI3OWKSbw/0gx3qXzTleg1JSf0quZ822VF3/K//7eqPP/l0dhYc5VApoleLOGUdF19RpiJE9jgDqGAfw9bu5ymd4zAEd5ytDoDZxid+QktnUul3O03WDKjL9MAvgNW6abAol+iz7gPTMYAt+yYrQfpWwibe2w22gZnWn76V3Awq7sVmRddBr233lw77epvtG3pNG+EyUbFpNv2KgVQLeehL46FbbSZro4w9j2x9+zc/96O7/76zmZg+9swD9T+RPesvdbQrHmB6Yo64UrXTPb+Sgymz/g64vPN63pTZih7TVFZq6hPN+TwXrZG+oTrNpquPM52dthhjRFS8ln01n5ek89N/VX0I8Pk+SdUdbVJwlCfJm05fqlvPIK1dutoAdIRDJrSTV/LutGZZYt6msrc7qHij80zbaznVlabtNYPX1eY8VqbiEabqSs5bi075Rd8EjrWs2VYLuawpqj+8P29zftWvaINm9LpzPfe9yOtgI+I+9R2fGS31Lq/y0wDwVGctbwwQp3Qxkh76k+HbvvTU5BkAh5/BBPPQjx+m78uGTVa2jmv84rMCH9gRd7ttu3BOGIx2QLNtQO1A7/o297mh19u9L9Vlk+uxTuuP0MZvf1N3i4lmsREUFQ1iAOpawL7g2sS1oZPgmw1ZQVo2yh/eN/+i/uxn33rgUy6d8pvfA/a1vPmH8WIfgYNd0w9O97zZrrra4nYve96U2Yoe01Ru1l2H0z13epT/Ub5EQPA6plnlCg5ely3pEPsgo8nUZ90pGMKmWVl/Pt973XMBrmR13OLnWaL+AkvUWkIVsLgM4pZcJu5HNCWBpP2pbJQNedfjct5ubJsqyMDkJOVMwtOkov5iPV52pqYNoosmIWVM2tOkoleNpa64DmdU2xUJopacdUKWdjXrtaRj3MDEP9ggdS6rPC6rYnUn1u2qasxEkXqSUPCTlrZMDOjokmyU87aWd3XS1AQ79KOetswrPsmJpjaV9ad2INB4nA6e1TztsLQsfpZ7Az8ZMupTufWv5ev6L+gL/Ze6PYAHCdPvfXo/pgc5/IFdhenIW21+XCzYJTnXK10c2WH2S25Stusx88vadd+cDFa4PdZXK3v1T7535StwXUovEA+wVSWl5IF95oFPAsL3VgLh+7LPUo6SIhkDGmiaNT0ZoFEXySM7tXn9JE/RTvCnKE5LqHqd5kl26Wr2V1ucHFBcvfcnHm+L+b0P53O5mEflmC7epq64/WqyrsvlXZfRayWxb5p6xS+AvhqP9y9Z8WpVQaCrJWfJuU7lskMpLls9Iji/03WN7K/T0rNTgY89mCVKFCC2FC2GyJHXhqiDVnrvO6gh8mUMtlzN94FlY38tSbGnEm/2tigrQja9JqfDOmznMbqkx+pkjEeryEG3fKMke+C3oVnZhskRdDxelke06mzL3+iMZNSf/EU/WksPyvRznx75Oq/65XmvRcXqTzuilegLzA22xHJqM9l2ds9PPrB6ZzGce+gf/HjO7WRKN7MHEgDfzFfvhWy7QDjLPtQcogDTwVbAoClOs6QmJwPeqOyTnefSdZj3VPXHRGfPifUc03UoItYxjDo56xBL1WrjiERL3qfzxrkYrH/lxr3xYbZtQRdHk3dDKpS83XU025t152/Sm3Xp0/g9xfpV1i8ZKQ/LtsGv+oEGibgvY5lI1RU83kecG/BKl4h1NKnVWKJFItQC8CXq1dqrLdGKySJTjp5p2zK1AlHZL4xWUXysjxiasXEK02ogrjPTEHSI35L6crt11BYvFIKI9ZtJOucGLQSu9kwYRGTYvK8r3S6vZXJFt9Zf3UOd6Tkyz6U3LVMjO7UPObrGZj1b5h3jYLONxjRInpuOcLY0/YgoYG6zlF2x/E3q592Vb/+xB575i194y7HP1N2m7Cb0QALgm/CiJZMDKExBRJMlU5qDoPyzFVDEfhN4LxDN+SRsOR8s+2UDIuNLALFoAuFjgE/zTGTrI1ZI2XXF5K1ocfu1lLfTEdNV1kwd51vpdp64zfXo3V6tDug57xwzg56Ve3KeZr6Vvk0yCPiNkeh+XVwPwMkqNFEw+FNNcH5bICwhQV44OKMlwCoAQxJLu4owBX78Ulgo8z2wV4dKfgfUnrPqcA2AXMApvNTGq1L8QLXgOjzD1SuCNejpmSuQb3q1XIwBAlZuBFjLlikCdX7dRCAvfXnbDtlolRMicfpCnH3ZWMVJOnyiH7BWKM/gOBYryHB5iqCDLWXSwuqLbhy00VsHe2jsYX+Won31BBuHygHm2C9L9Rq0cFwy8nun6r7ix/7hxdtnur3P7tT516hNaQ89kAB4D52dutoBD2h9ThNUI1nEwqRlM2TcFiFEVDSOJq+AVn/arKWd1Mr1pxQDsGiKDuMzpqVbSTqb/VjDNXw8XzlX7ePx3Olx3mzTTYzGo5sOAbCM1yEnWmp+vsnw0x2CEq9brnqkmLdveM6pl2+0DtwB6wKQcT05V1ygY9EfAKvtwFin3xGqOsIwIRGgChaLt8LoHIjNtd6rFtrLdilANggEXwWQ9GXwtwGyQKGAGohTfyz7WmKrNVoBdh1UxbtGBtZhQ5WWxHVDYPbBz0NsdBqjmuy0LIwCKQFni3LJFblKh76nROGhHYtBeV6p0kBlKL/3hC0as5asQz/k0GQUi97KjF4UoDXjREFvOJzc+473XX4Fg/3cXP/i+cU3v0QviKV0E3ggAfBNcJGSiRseqAgUNEF5mgIvU5TKWyWRNYPFE/9WfKKJV1Gv/pS0ThmrFVAtcdKTdGl52nlneT7qMtfSjymPPtzGiLRtscnbrG8rGDW4357kiAeLuGibYQxaeu+DBdeaNNZm/34dBLh6tqlcf0rKVHaedqvL81/2WQFSsBLYsuoL5BmsGje4CWTaGRparQWYFDAqsOyArroRCsvARJe0ESUC0GB6W8u8lZ3cFc4G10PhikCXtWbAUFGnwBLgq0ZE3q2c31NShImUImrrxwBXY2CDFNGuwL3Fa8Vl2QF89dpTwc90VhUnU2qUtmytyFZYqiS7J3yBpFcYbi9TaenZHnALabWbWm3BHmSJuBmC+GmTnzSOQFO/uDrcYOAExms3JQXmsZzeyvswvGZ1cCj7iQfWzuPH88Ph8PzqZw9d/pVfyfnWprQfPZAAeD9elWTTVT0QT+AqK2mi13JhM3l7k75dvVY3bZ4+A4aiNoHU7bzqpKVanb6lSFkbuug+e9lxwKv+F6V+tWtY/E2AmiqvC8/aDkM8DtkRyzRtltq4ve7GfgxBu8HF7/q0sUrL8Yp4NdamLgNKiE2661S+VZvrV+5lB13Pja6HvaypApI84yWipWYgJ8joCPBE7xDr6c7LwJfrPAnHOHI4q9oFomZHPrGlYSGggFTLxnppN5RVr78nwjw00q+1gWC0ICB5+oIs/bU3anndiXXG8HOBwTMAGxmdWS3AbgPu2GdJdJV5CGx6+OFELVV3OtruLeCnj1o/dnPzYRdramNtk9kmwNVZIiw20wf2Sq8GNpEdrAOw8o0CC575qc8K+2nUg+zDLFsvMPa7F15zKX/7L1xazjudMc693O1MBsWoO2gdHaz//BtPpBO25LAbmOrp4gZakLpOHniOHtg0gdeymsyd/hzVXRO7pj1P+sEBbeRSUiSmwyn07Dj+7WG9d2wHVjAlCuT4DWdbstb7szoTOU6uW7Onlze1N4jb8dnsWwtKRM9ydZMw1PIyuSZ5PdeVDZ58HF5v5g6eMd38jK6GWVMWvxbxDZFknC5GtRlNq79Vf1yM9SxU4MfzTcCGZ6kEhlrphbc10IEXOcuuZTjoIgCu7UQWkMIjwESOVVrAtxwK6ADRPo+Vhy1+PCF0KUBjxmMrF9qJF8s2uESUim+UtKzL42j6Qr/hKHKSNd9N8g7L3OpzhFxP0TL6dDNQsnTeAYwFrMEr0sNKcg20haJ7/V4D/PhAwy6LsQBeyWyzflVWt66HU9h55os/0MXqs43HInH4eFOJFej+SG6aDMFokoN7Gz9KDmUt+oHemuM9J+TzhaLki8jNwOTiTP4Tv7hO3F5c6M20znZnZp9ZfEOuI1ZS2kMPJADeQ2enrq7fAwIRZp5NyQABiib1OGlWclbnaQJKzNOUVV3yBhSuqKapTUnz8yHNoTWoOdtxXm3SSuM6E+CanrECEvqNOf3gvSJoT9p1reQ/8ecg7nq2ss/bguTGp9MVlUuvR1XSIdBXlKul8u2Sy8ftPvbYDgPSiCluU1mp6WfVY9r0emj5NB+VFsWVY373Xgu3+DzgEte0qrqsM7Myq8iR7U9spiJq7HRmWDoHLG11GmADiSRTokM/LWTPXieDrN3tmBukR7pt3xOrv15nHxfL1brMHYB4wHdLz2uFs1pT7tjaMv21OrwArZssbaQSuGN0PqnLGMx6dAc57G+FkWltGWOnYxkbyhMV8z0QyuY8POY3h9URMXUX32ggNLfGQLQi+w5vM2/4QwE436ew2Qw+bOCeRX7Ar8C6PYcW0NPnWOPQDYhuTiSE3VR0xofdgOiOQjLDMTc2rc5CuVocGgxXXvZj/+DCo7/wd448ioUp7ZEHEgDvkaNTNzvjAS35Kflk7gAhmk/qKitpIvfk/F73POZxmvKYvpVsDDqxnJe1Qes2zqj2pEhUv4ergyw86XUfHQzSTBrjcSJVRaeyQ32JV+cvO6ja5loatLN3HlC9JepLMtIxx3NsbajSMvhWp4M1+92yXjsi9of43C7lcVtcNj4Ifl38WnmudszT9mYeZBKKRr5Rm4BxMp7YdqYu6DqmHdjKQGT6HLNkTqTHsmsPMBtDb3GaR07kx3Yte4La7XKgOSBdKLJuA1Z0MCaXjUJGQMiAXtG1ASH8SsgAn52yp8fEJMBXh29UbV4D1mhbtkw9aXVn+iVo12IA9jC30+20BIq6x+HGrBrDq3IBf7sbHmYQr0LTtEsrvxiiKJkyQ+2UnTbHTNMGnSCeiFv3EdxwaGzcoLEZq5KmXGPoGF/I5ZcZ8wE+Y7w9e8ZMF3xxeeStDdkCWoG3+Uv9y29Vu1+2ifglLzvZxHXq7b+wcvjQ5fmHFxdtvRtqSrvpgQTAu+ndpHvHPaAg11ZwNTVqElUPfMSTukh1s4q7kqzf56BZgBzvmpaootK7j4Tdx1oiFsgKWAWying8qajf4l0hslXS+FlytdwAtvGvWDu2413bJvQ8PyIzrtCwXZvfsNg1QUrjMSSzj1pNfYFabKcCCLVXCaAi+mOcwqUs77I7WOu03aJi51vRHwNIXQOSlpYVukAGOgDvrBiPsz718WQMjHVZVYW33QXV4QBkOwV6gRj05S3JwS/EKfi97Ha/m09G46rbhQaxbMFTdQF+6sgLeCWiwLULxpfo1TPgvOyyA4uxCRT11hG82MniNMPV0i9tuk4Fshl22TUzUIaGHerfaIq00RGAWNucQXlk2Y5NuM76vOJhYFdjalVjxoQPGE6BvS1MVK4xj7BXgb9dExmMI1vQFQV3kAtbwSFXRNY2fg4rQX9VyNgxYNylTB9ZMXNp5sI9i4sf/4vFxdcp5k9pFz3Q+Ke7iz0l1ckDO+EBZhjFJTaX20eo26Rf19WNTUQ70d8u61BErD/9nu7VkgBVPL4CcDXe/dKma6Lr4DY7MNu1qS9Qu8+9xqQzYcWU9107LJkCKhVrBfr9AaEUB4OTgGhWUcG+kZ5SCmYmIyJeCERz2hzFbmRWngmAyxGrwYBvMSJ6FBgD78YH0rFQ3apGRIF8fYCWTg95jKJv5EJfkmFLdt7pcTbmaMxKLhzQ2EPNwvRYv1fIaq8WqdGP3mLcAdtAQrvLCIPCPH5CCaBEtpwAatiTV2PhbdbhxkImyzFtdOimq0toPS7DeErZjRx8tGmzl+zhdqRHPwLMCY99+Z7rJiFvYx/tkiXpZiHrz1Afj7g/CTr1bpXGPxmNGAvjpW5L3FqRLse2JK/+GLP5VTydTqe7NvfaW+E8I8Up7Z4HEgDvnm+T5l3ywKaJnD6muBvmv13q9cardSC78ZY8NwvsevlFqnNdKisKRdrrHIzc5RCNca7gTAlwDEAHWmnDsULj0WTEGzcBdAVGgC2cAk4efbKhmOeqFVEtADYCbAVcgBrgB2wZ+AGrdDs2oArgzVNb65BosD2ijSi5DtcFZoAw53f0APFVgS3L/USiAKDAjaX/qhwGEO4Sshso2+0Gz3OJgvUIVsAmyNXNRVnMsYw9YgE59CkdgyFL1JYHwFS7ngMH23VwFjckqNCz5dGkC29PNwtyD0H8iDER/nIjAjybj0THR1mXHX+DgdvGvYFuQnh/mr8gjC/thgPHBt+apEXQZmNrnk1fq8ff9t7H1t739jt46S6l3fJAAuDd8mzSu3seYBoJT+ci8KW3enbZvX6T5mv2QHwtrFwTFLx6m3Le5CUC5j9FwKzdahOalmgBQluO9g4FRmxS5qwrgElLpkUA4qwnLTwZHg4BLO3UYil1AuiFyBnsrYA1MJ7noBZBAszqYzQa6skqz2oFcoBYHQEboLPSULBBmE3PPDUdEj3y9LgNoNETEafeDLLl4y5bqDlCJF9nm7n0Z6Muj1EJTAHe0WhUtNs9dAN2RNvQWdYmcKevDnRbGgYQpUt7qNnJzEAARPrQy8jSVxEBM2YiXqJm7AUcaa6XlzFROosi2F9wY6IlZd53ahVD+sDOTDcoE0W/RMZE0NyWmO/k0xH/tfGhbnqCTsaEb+iTp8PDCs9kM+XJkx/+cHXp9a+3rWMSS2mHPZAAeIcdmtTtrgc03erZok1UlFVPaX95QEGkonVdG4+5dM1E8BsnWay2iqCTyHTC499qItDJe2x4ZrVZO7M6faQA1o5QFvjQ7xWRWl12J4O/ABuxph6XAnh6MSjvsfw8tH7bnTlO6xBgEWXm85w4PdQuY86rEEbRLTvThkSg2Jn3QOQCMLLfL4KfTcRVnwNJ2JtOlDpiWVfPByr4AbJ+6Jdn9digSBT4EohraZcAW79NzD4sLTsjIQ8A3kar7NUqnk3nY72ShB0hbKU/dIU+YCfJbklqDLbkjJ42S8vqn0M/CPTnUD1mvN2y2x3xehY7sLUEj5+QVeyObAB0bQNrdUY6I0zvB1ddjRX72I9QDblQ3a7OGwWhkeHuJmfXuOnSw992Z1h98vExb7dnT/GX0i54IAHwLjh1r1V+7pHqXnZvHL7n7vyhve57r/uzGZhObaWwrijThOVte21T6m+zB3zzlVMNfFWpL5CgwW+iFPCyCWmiTWWlvcsFgOZ9+41CPTqdFIAqO3knkx4R7BCQ6Vfj0dA0CdjYbQygIWKPSgWOQBsxZAdeIl7jLyYD8qxiZRZ9OjBKxgwBcvWpYzjD7meOuxIqarUZgOzDOwwgC3jrPbNWV7bRH0Ltbh8e3TAA7NgnUFMfZdln17T6GfIsFSybzOj1Ke4a9C74EDrATZlXmoy/32enNsg6tj4EvlneZ3c1VmXVYJDxWNzGKh1mHDavDwdlB3ox3vBD1tKOb+xUmE6SHRqj/IN/9c+DjXt92+gnP9rNiG4gkOngU4u4ucehnvdn+3azoT7H2fDg295bLb/v7Xn9wpw0pbRTHkgAvFOevAF6/uKR6jT/PB9kU8l9+lf62UerJV72fx1AvHQDzNmTLh1op5M6vYoWppg9MSF18iweiK+FrlNcd9EpDUjiOCfWlGdaEwMsQZ82/Wb5+mSogzKqcU44OuTdVoT1DFU7htrdGR0UmVeAMdEfYMd7ueS8MWxdVAWACYiNh4O8c4CIk81b4xn0WGxJhf9ZqSb2luzAZNtqHwwKwuNsvBbhjdHXASpOXubExxYPmlutdUL0GX71sMdzXWwA2JUPUNzi5yWqNsA7GrD/eNDqTAibZYssQ1eHcbG9WfL2HFi3AbzXzFjBXHQTIcMIgFLWdvhgZ7/qdZAjWAWI6aPHjuuhwe2A19M6B9arDmd2yAczspd/FbppGbO03e4SGfPOL9BtY5CtelguvcZJeYCcbMsGZbZSDOwa4OqW9HXbq3pzPXIItZR2xAMJgHfEjXuvRFEvs83H+ad6WMt9ultlsjvNxo8HseZ1e2/R3vWoydsAmJz/QzSFD1LaHx7QpdB1UXKgnV6zQJ5+8noqMSvvo4IRPeZ4PRatql6rNw/OTHo8N13PZ9l4NOn1eeV2negRVOixoiyQHmmpt8jFO57M0rbGyu9stW5QsabXmfI52jh+hJelFXUSkQLsHd5smnBghn5NATxl2XqOaBmhEb9hAKSpv4xVa+mZndWRZzyOZu25rNZbq6M11plnbenabLbgmc1RrTVecZrlgTD/FrtrVTGiTv88PS168+G3EUwfutdH2s4u3YyL8cm+4WStGo7oiwe53XLNvs2deRhIvJHLoNdaQ8YoHFSjnufOzvb0dlTW4/UjNj5XPYm31nMO8jK5slznHWgtu/P8m1z9aJzd3ho+mK0KDGrZ+NBh45CfeQJAf+1AZ3PcOvcAw86PPFD13/8Wwv2UdtQDCYB31J17o+wRIl/2QP4/gNBh+5dKtwIkA6Usu+/zj1X3veKO/KG9sWbve9E46xsOzSobs72KIujPHUPxeaWmjmY9VrpdW0yPy8g6IHkeq5uWGzKiX5V/KtgobKGnwbGjVXXXTLpmbrtyS9BmOnY48XgeKFm1l1Xnsvl59u3q0JEe4MESbTVggzMA2l7t87y1pKnPcm6Zgw0Ec/2szc5nAsKqN+rnIwC6Db6NCCOLAl0K8VZDVDyLPlRkHQ7e6uRz9LeWzUzmWN8uOZ6zry6zfHW9tTIoq3ktOQNE6lv0XpcbgdbshFOf9e3LRmy04keQWl2eXas9RKxlNq/v3YQol3wMyB8Et8eDtXzUm6vQl6E7P8yQAMx8ZbCG3jzvjgmYOaZsRN7r9vNVFDJcbfPOwGpAfV03FgUHdGbj7gz8RKWMd8y4xcj4s0G+xtGj8zmHg2BQGG+Jj4qcGxNsbfPjjKPxCuNi3AX94qcZ7j448sNskZ6RTg7Re2HFGrYxFmhF3jdbJpMzMikBME7YyZQAeCe9uUe6OLnmXfz7Pu3d1cBrAGyTW57dS9tD3v5Cy30C9wk9Hp9N9BA0DyptxRPT4rKA27BKwq4g0uG8ypUcVKwCLa437XB9rkPtSlfI1HpCo31OP0yWmuvYZK8Zrkb+ItslvAXJdKhNyW3ZpA/6dJzGpI+QpvRGP2pVW9wel32s3p/a2KhbtSdaEAVIiND6PPcdXDKTBRIyneVRJDhbW6DFYRhVX2/d6Od0wRoCTTvAmO1aetZZFOtBu3Rp5CUrxYo2RyMCXvRpwhtMZrGcEyrY5wtw2yjsrGx42J5UlmvYAPANATodgTnbO1CN1qv8MjLDUVUd5JhRglTpYF+T7Aage9iCvMahpLps0a8d9Hqc6YxOXRcC3eoy49EY2mOiUO2QBky1wGu2oXcWWd4iMrvkgxE28Wzb+u739AOE6IBPfVw+C/RDm6WP0To3Kixt+3jHazP5/IGylI9kq3gGo8p4QVnzq05os4R/Pa1fLrKjx8pqcCmyZXK4vbhYtRYXtW6Q0k55IAHwTnlyj/R84YvVd/NP+fub3YV/roHKfPNVzfYXSl2zkjZgaWrWZpYwRW/UFRlzx28pbjP/SI4Wm9kCy5TP2tVQ63Z/NnWorjblXpYS5/M20UydOlSZyjRqj3R4W6zPdZkgH6rrMYMlU7rRn2hqj/u1QUJ3mnKlWG9Ma9LjusnVslMTKIhHf7U5YrP+XK/q1l7zel25ksv3211+hkE/ZwGQzCzo2GKeXV5iI1JVrQ0AKnLwinyhujy6mB0+nOeXAAvWRllpbbUEegcXyvIctNk+zzRn2EO9zHakvhaHLtnrPwLvCW1rK/ByFVTu82x0/mSen19eKOcGF/P8EK/tzrI9iT4Pn1zILtHJ3ALnJVNvty/WNvA8FVt0KpkGLptk90z/kulp55f4RoakV476gHW2cDhbA8n6sxoxx4PyDHeIDnZKZ06zdWRsHGKXxtOePcSBkpfkWh2iZXwztE00Dmj2SpN00EbAuok2nCyU873ldofXmvXzEGvjoPPQIU5T06tOaJ1n47N8GMYQ7JKPeJqVZQsXs4XZW20tQja021yT2palbIm1BT09T2mnPJAAeKc8uUd6AN8ftUlOk5/9E2Uy875VgDatO/0FlOuABI1bf/XUYaNzX3jebPO6t0sopk3LovPnYCk+pWeTE4906M9vDEyGussq15/zSUZpWqdNnTuP2lwWsiXxOq0mTeVjObVtxesy3h7XnRbrn+qoDfA+PBfZy01drk86PIlXvlVSmYXRojMsitW1sjp4jPOunzmXzcwd5ynwuXz5Qr3mCX04Osfi6fGqvHwu7wxb+cFZbsO0z3n2eLZ+6TyPSMtqSNCrX346Dm20ftZ67bEMvIInEMlZcc5G6D6Ibp5+5k8vldUMK9CF9jED2rLp4OzR6umlYEMxPN8aojfnbSBdmtHwRDZcO6dilmFTfulsNZjN8+UnRDiX9ed4u5dUnDhaDlbO0eHxKrt0Fp15fk5v+pBmsCVHzwA9ObYcmD2XnzP6cW2oZuH7bNYbMcbO8XJt9WzO6rXxLcM3zyB4pFxqTPLN8WN6Q+gc/2E3+kcAbAd59qsVkoOML/jg79yTqtE/Y1l++gQ2nctX1o+zh40QOjuRtY+ebxXns3LwxCSXT/TsvNfi9C783msdt15Y0GebmCJ528lm+tLH9XkgAfD1+W9PpfVsl0joPuuUf142+VEJMwJ1CtNb8D21bG878wndxs2HIuJphNgwxWZE+wgNU1l3GmQHGWuDzk7yK5LanM8bjZ9KmOqcupE7v6Z2gbL4XGaDK5SmbfV4ZJ7Jey5ClLbS06S5TuWbQI96kzdSvWWb2VMzNX3qslOdYojsVf9xcrv0BT7Q600uZ8ujI7eezueOZNVC9zjcZ7JHHsuyU3ecQuyMia4us//40Bl+mACQXW/nl9dvm16lI4fWWBc9Zcu4Yh4fOqMl3kwyYzZc9bunADb03KrWM9nckVOV3n7NWFO+fH4pP33X6ezShSxfoP9LF87knTn1JeuO6n6vopxfWF6qTt91Ilt69Hh2xOosnR/FXs6Hzm4NNkrlheVJdWS4Zv3rzIwLyyeqtfUlWk5np+/KkKdk+XHuB5aytfXTtBGdUl69pCfHgDDRquxc05jmlqgP8rP4Y+EOcB/bZeud92TV0qNL2HI6X4D3ImMdZbeVbtuRW8+YrjFysm5+AV2ksB1sKTt58nT2NLYcOXQCPjgmWXHsrqPoXIEH2+zB9vHCbQbKZZeQ1y6fdKV0/R54MczX1++lfaKBg97fZabwT0b/Cvh/U/I6+elNDS/Aik3q9YAdfAUyUxBgzOLZ6gsunphP7hGIK4luvkXW+KBZX1Husk43vkhnXFdZfMp96dz7Ub5V0rDsry54P84rXUreT6iFupfj3Pndjqac8zqf1z3//9l7t6DNrrPOb7+H79Bft6SWD5Jlt+yWEQZsAuYQMpUKg6DI3VRBLpiL3ODUVJiqHDCegA0zqahdSU0xwGBsEqaYUIOZS8/NzE2qElKgpIaBC4TNzFgmII9adlutk9XdUn/H95T/73nWf+/1vv12S5aF+/u69+r+9lrrWc9pPWvt59lr7cOLXfU/UuBU8s3TuNFU+lvLoezxoRx90uBs68Hc88356edfbSbPHT052z3dTC+dO3f00n3nJvcJdt+r5OcmV7740OHnX316cunVV2dXmivT8woZ/G0+B8256eZDetpYZXLTNA89NKFt9y+e1N+5KfDP6695tpk+98cKOK+I5qHzM+rIeuLZJwIn6RK2+0Xp8H3NZPM54Z1Pmbt/IbmSAz36Wh4ywEPmpT8+d3Tp1afUN2jOB/5zf/zk7KLqyEPXi83F6fkfSV67Xzw/uf87z03v303a7JP61pyfw4s25FjX1OX8dPe0+iZ5f9k8dIQs7HixeUL9fSHg98mOH9Lf5nNNyA47lT6jC/qDC2/6jz3gQxs0na7gPTn92387pmbTp7fGApzifToBFnjm8uIxPfHxh97erFVedYKqX3zk3YNHapw7pfynX1p8Vn35afcnJnCZxTj2d2lrkN/oJbWOXuVVGwXCysH45CTTkNdltxu/xg1CHeq2W8Hc5ty8LQ/4urJh5E41zHzctpqv6md88wC/5u268cxvlQ/wr2lXcx0ec5dUt422m0e+7xG5+QK3/JTNgkvv/eq4qgv4Tuvaa1hXzq1TveekfV1TpwzXEncZRhtwUkeXdY43bxssyoNLvFu1hhYlCuPCp+Pf6XDhwicHjz/+OD8n2KbUs62GDnW7Wy5caAb664SowbSZd3JMsz6vdYWmT2+FBaohfSvY9Tz+uizwzHOLP9QJ9hgnjRMnHHX+bgjMh839jzwyuGrcOyUnAKvfP13bwWXs4QBsGHZh5VXbhzZwSbZh1jrntK5e09HuumUBszzKJMsBxzqYLjESBx2Na7jpzb+mq8vGX+0L8BrPfMy3lmc8cpfN13XnpqNuXi6TX3qx62vNg7UTZjcfyMeNAvB3DS4ar897C9xNFli3Q3c39f9E9FWr3/Nyeo/ZyeEA+bMjs0Nc6sxW85Gl+h1S8VYo3aH/tU3qLq7aqA5wtb1sQ9PWbcDqOgG0TpZR5zW/gBcebJNHW82glIGv8qYJOH9OtS512e3BnwhXpRov9FG7ZZm/ZWAjJ8Oog1/zqdtor+uBJxncPHVb2+7+WMeqb4ndH3sL3F0WWHEpd1fnT0pv5QAfx7GtOsJVh+r2Av+Jk9K/b0RPnDmBghz/HQ6/MGgd/QrctluVY/sZbl6rcLfD3zhLMFUcU4JWdY9F11AoqnE0L/JadzCBwcNl58araRMrdfCFBu3636baVg60qzyQ5z4GfWFgmXX7Ep6k1LwsN+6ru9JqogJjh0J96i1wl1ugD8DHfAKw+tVTuR+xmqyk+LODtX+LB5Hk1Oz41f4Y941Ndyfm9H314Sn6iW0iQLjTxeHXTj8CRoE7IJm2DfCl3WzIzSPoVUcHobUXA7RHvaINmOrWS+iRat0Ncw5NrQdwYJZLvS6rKeQ6SIJbR2CvwKHzHKFMCtySL/GEhxIwdEFfyuAv/QlntY5d+EOpaKMcgABR61NvgbveAn0APuZTYKTVbwRc6Vn8VzhByuFsyVXBMVLH4VGmvX1qWuU7NdFPdTkSjj4LCaMaAaOAKTs56EIT9iptwIOmwI1vWsto6Y1QcrcbXNdDlhrI6zK4UZcO5FHXwTKdZ0tHbz7AY+hFa72M69x8qbsc9Ea4RQ4eOlTmW6kkcasn/UOOeRbakFeAS+3G6/PeAneZBfoAfIwH/Jkrce/3J8P5Fe9nJ+dcAbpNASvOrtA89tWX7rxVsJ23HTymMQxjxEqtWCWCB+1C8F9pChrb0W3UKZPq3OVsufFoOuc1fY0deuqAzvw5mS5yAaNdB8ONR+5VLmXr5dUp+E6rwdi4tLtsdOr+q9vNi3xJl2Ijt5u2xoG30VbzoDPQTPq8t8BdZoHKfd9lPT8B3R1NmsfkwfTxvVS23jo0jJYluOq0tX9NeXc4WZz4I6YIcxTnTeCJYqm73w4IdJgm28s5TMBxcpncOOZVR0q3mc55yFPFNObndnLDwLHe5ue2wC96BU+V3baubr7mg22qbgW7dQfzqtusew2jbPneHQAWuBRKYg7WFwYogR5BG4UsQ2d+gPWTt33qLXDXWqAPwMd46PU6azx8ZcdITnLdZTs0w5fwmuax515a/FwQ3gGH1qkXW9Al+g88nH4UuiAKeF0K8ooHNrMd6zzK8C98yfkzfgFne2lDnseilm2aGkYZfg5eNW/jmY6cBA7JMtwOjMBuO8CzTjW9ac0LPNhTNyzKwCvbgEeiLWS5zD3i8nBctBc4ZVJReYk38PjpWgp96i1wF1pg5RS9Cy1wTLt8ma3jQXPeTjMespKudpw4S7afyX0PmHKN77qc3+OXtZ2t5jsihTPXgf45WNAx4K7XOeX6D9xIFZy6bRdtYu565KoHT4QqUQ544UGZv8BRO2guk/vPtHVOud4urulqPMOBWZb5uk6bk9vqepSLnuZHDr0DKjjUIxXdKVuG6YyzmotkKdV12Jr1ElJf6S1wF1qgD8DHddD1sQkHXXKcmJ3XqsOjbly6s+rg1HZWH8D73ePa1TejF/YgYNB399f5aoCAf+AVBLdbru1Zw0F1PXIEkorMKBoGWOUa38HMMPBJlpW1jsb1Ol/CLbobZr6u13Qug0P7DbiV3jWuy+Q30BSY5ZlvjdeWhVvUhVWbaEc0f7V9W4S+0FvgLrNAH4CP6YDLQf0kXsqBlXxQRivK1MtfdEFl4wNn+zHaAWfbY899/eRvRa9dKaqPOHcH5LBHgdVlcMIWN2kDd127eThvAw12vUkK269pN+1NyJbAS7hELaWAVXyN4zyxumMNp1zX3dcO+8ZSjU+r684NW63HBUjR2Vw9l4PGwD7vLXAXW6APwMdw8J97eUHw5QdNM4iqEA5ddd/Xs/Nsc9qMVxx00FRl/Vja43qyWj/6eYJTuc9YO3x6476uwld7+s221/xuxYu2W7XXfL7h8kpguxW958c6XdbBbsXrjbahXvDW3CNv/wrcdfj1D2FhhT7drRboA/AxHHm9v3vDV6zsSCPQSOe67pVFtFVB2HW6GPgK6qfnJ/yp6LKy97DZmTs3vM/TAtjlW508N2vZ/fh8q0ehl3cSLNAH4OM4SvqKlYOnc9SMchSWlTYOi92y4I0cOClWxuQabS0gf+6kP5BVO3b657pzYH26/RZYHQ/qhkX59qvYa9Bb4LZaoA/At9X8Nwp/8criwwqY5x1s6zxWul7hijQCawmyEWwp017Y4uRcNpwgrP8fKSgnL6u2oKPPVV9PXmfuTI3r94X9MFrdUwfheBqrbujLvQXuMgv0AfiYDbgC5mOoROCsg68DaQtXIdqdr+DDwAG6vm8c9Ivmo8g46al+77QOxie9X3eC/l7hMt8Iwut2wtfB7oS+933oLfBGLdAH4DdqqW8RnhzWjywFVjwYSTkOKwKNChFUBaPZ+CC4HO8I0w6Ckj9ZWdrPstLOlpN5xBb8Oa1babmtz7+1FvC4lKmXc1QqtEHZDd9atXppvQWOnQX6AHzMhkSvGp13EHXwJNjis2ILmlx1nJnrxqvpaDecLroODPrhqDmRARjnTl9W0+v59NoWdXmVz1tdfzOy3gzNW623+b0ZXeqxYKza4VIDbYbVeJbX570F7iYLjO+mzp6Qvn7YwbLWd9URuh4rYSFSd2Bym3Pzoe77c4PFyQzA4c2ry0Y793Ds7uia3LahqS6vQX1LQW9G1puheUuVrpi9GV3YjeDiMGgZGKUbysDUVpoDZ/XwV19dPKYL0o/q9bmlV+f0GED8+lOdMy90URlPGQJ38lQxjPoSneqGmaa9YpByN7RV+HVbXVanrmrH6WOPPDS42PLsC70F1ligD8BrjHK7QFf0uUicEkG1DZQ4Kf3ZEZJ7BWwY+jrYGpfcf+AZ7oAtB3Hf7ernNyN31jRb+Fl1L1LYwPYxsLT12e2xQATfIrqde6rroi9im7J2Pt5syPgd7Om0+UP9FnYETNhB5zQvY675EOcG83tGxSmECKY6MkxrFOeg12XqbRLRujZg8HQO77qMsEle4D7S8uoLvQXWWKAPwGuMcttA4+Y8J6+dlvWIIKOKAypwys7rdtMa5rpxIcNhaJVyHthxTRc+deXsdGv04Gy+ODtsBu8aDEYPzOaz+69dX3zgbfcMWqccdsBmdCQOx7VHd49erIAZFw9HOxdlgrhtooaYl7cwyWzSfNj0gQa/Qke9nf8qm3/guS58Aj6JLOQJVqdVWM2nvsity5Zr3ZybL3XE6MLh/Jd0EfFd/SrYpunzNRboA/Aao9xOkE/wOImlSNSrs9wnODrSRt33gjnzoYtUCnVbwAsvyynYtzX7+//79QebycaDw8XkXbNF86BUf9dhs9iSA1VxtNCuQPhGqgvVAmyNbZvaMG7r89tiAeaWd3BWFfDDcmV6Nk9++eiH/sffenVrvnHP1X/4Xw9eMP5kpi/Bsa+rBG4ES/JShz8N5mO+gmbyvKirghlsOgfdlq8K6D8Tf3CAhyxy2pS3tKUMTiQXhGAcN/V5b4F1FugD8Dqr3EZYBEydvWy9OUiSc27HSV0KlO2Uoh24/lwOXGhqWtVhQpucyjWq3+p04VPPnD3aeud7x8Pmwfls8F714cH54Uz32hRym5G+d60QO2eDcTRnBTNXLwfzxVBhd6FVMH1klz7sEc6TCsl51vrjbbRAzMuV8ahhMW4MmXD2d2f/sYLdo4PJ7uKXfvPViS6xnh9vjF54/uXp+971TrknzQEPODk0BMLgJx4qtqmWYWDbDo2B5OJDvaaJAAu8IJKp2r5GxbnJeWl91JTlCg8YNEuyAPapt8AaC/QBeI1Rbhto2lxsNlI6jqZNKhOMgPFnB+GtscClrSXIgnnUcDscOZOLK+hvefXC7y62J7tXH2wGo4cXc+5vjx44bObbg/l8MZmrK0PFVfm3ocKv9Bo0etrGKda6w3k8BKM1viIybUIaKBJTwh4lh6a1S8cCcJ9ugwVigNbIreEeQ4Z+OGB8m8F8pNk/Hzw8nc4fvnK9+e4H3i4mDHJZ7fq+g+c1/IInOEqBCm6VjAso2hFc8TSN5w8BlnbTOShDz6rYCTqSL5SjP2pn1c6KGfrBQeL0x94CN7NAH4BvZpnbA78aJ65OXk58B1hU4cS2A7NzCHjxBHF1LhrawKvzuivmKX5P1PC3okzAbY4OHphPZt8+GzQPHO3uvlerVsXM4WIuHzuUB1VInUvXxXSuTJ4Kz7uYaSGhfLiIPce5orII1Actf9FrMNBiWIvg0FHHVccL3H0OnP5wrCzgeYtS9dwNuKaAkuCaIAOFvpy/2gXRkOaI59gy7tDrz2Pt9pjrmi/RDgI4+jOu8aKhgtOuWx4tntsD33CApex2Mzdf59Eu3Ja+bKG3dH2ht8CKBfoAvGKQ21m9//7B1dd2F1/QCfxhAmU4EClUB9c3oh/44ZRgUJJ5UaVtOmi+4LZvJv/Ep1957+Zw/HAzHj88ub77XgXPhXQfzhVUlS9wcGwcC6SdZRyt4uqimY8UlEMXDjzWnD6zrB5iZYwfk6bDuQpD7QDoKKxcCncEwSWqCav63EGXS5DUaK7fkAuArUgoQzu2dQoF3Q6wwjeOc+M6L+jtGMOGNisW9ULM7gdwskiVnIrETTfgADCeeRS1k6f5FaTAMSy5dfQFHjilrdWdOnqWRjLbL5pKGzDjaDpw2aU9EXC5/8BcISkyw6DwCpDoEk/gEnCB60It+ME3Vp8BrEjFY4kNFXSoeASo6KUs28lLoh2dW90BKIFrWurRLwHY2jkC0KfeArewQB+Ab2Gc29T0r3SSx0cyfGI752zHwfBVK2B2YtazDQ7hQRLqIvgkHIjIn7jn1Jt7R/HC7z6zffTqOx5VXHx4MRh+uxzoVryqoT1lpVi5KOiyol0stGc31DYzcRcnK1fLCoenqNJPgRdbz6IUOTQ4X+nK4lgBV88/i0I4sfs3mBG8ccxxLzj6YqeIcGwDMTD6S19JZDVe4AgY8MDIg+uhXAV3PfjBuyAiIwWVvNAAtzxQSdYFoaFbHBIviiDqz/gONKFrcNCh0AQPlam2qdAil3kQOqrRerS0BdbSlYL7GNUih8xw9Kp5FrJOYQHoo/HRP/SIadG1Rb/AhR9MtC2iecT+BsEXMKtSzSMNdSAAUYJ34ZWAlGWZxiUPspq2ELS4qsPLY1KjrtJTNx5sLKewTLOWfi+1wfRNROC/fHbxUdnogsjPyn4f+Y73DX7Psvr8zrNAH4CP2ZhOj5rf2NjSt5rL7wH7pLYTYGXshIOrU+0sWmdTvItxqcr3fEMn9YXPLO49WOx9u3zlt012B+cUTbVUGRE8SbF1qGLUQk8FTKmmZrlVnCZhV0kfSphrZRyIxQHGNqO3mt1XIcSWdPAoCyHpjzhxSy8NWztkmKcqykvB/Y+8tId9jCu80JV6oSGDVyirQ8BLG8AWD1rwONBOvbQbJ5oKXkFp5YkizaIG2ozbwldgwENGyaFZTciteVE2Hm3IaINfCKx0rpiVMW2JQW37XhjSV/NDCGDX21yFsIVzdFCZdtMUvnFBBlhGyW1ojT/XX9Y3+HMoCbgT/FqbF3jgA9cf7cgNmoouGtXmFE06BL8CpEyyPM4h6wQcGmC+N2x82t5M0odHHtdF5AXbSflvPPPM4l898sjg6pvh19Mcfwv0AfiYjVFsQ+8vPq04+ziqEXBbB8MZrrM+HOrK2c5JSyKnvaYxLHAWzWdPnxp8NpBvcSDoHg5f+9BwMT53ON99mO1krUp4AZenoDLoylEGC0EVlEMDeU7tJMqB5n1dcGPhJMfF+tf3stmejjZxAL8hMJP4mlHQZNBmRR0JnqUf7b3BbOkcJPXAoZCahR1QzM6zgNPRYidowK9S4BTEtr2qg1rjRL20V2yiGNcfCFB7OyYrSJBaB+egFLLALn2Psg9uN/1NVDB65IGrA3mtT00bOLQXyjYol7rpSnVJT3cEnNDPTITsQGY6BDCuyjT6mhC6DawKK191Ny/LyvB3ukAsxux2cG7ErkdhaFHYClkwjvNHuG5rZatAu21Yw6GN+VKAtj23U0juh+UY5jkGnFSyrLzOUYH2vD7eccG0Bf3sZKM5r/JbcrvodVTom2+DBfoAfBuM/noitT18Yf9g8SM63x8Dtz4pKbtOjhNZhwOsdUDCCbqmuSiSTwbBmsNnPrPYeq7Z+6Di6bcdDXYf5u6ctnwXw5EeR2bNlhcD8xIk9XBV8I2tQzlCr4RZvAx+8se2/ua5B0ffbTGoaX2dAxpp2zkcWvZFR1HzxlF52hlAnQbDwXugd0oC1UofT2255RvIQ7nk0XrkSkZwWsX5BtgvoZrPErBU3EbutE4P2tzxde3r2szbfOt6KU81xAeHiVCrUJdrcpfr3POR8RC7NsGDABW8dHBdX68KENjMIQg0vwLmQAcMvoy7YZT95SvK/Fk2QVnVSODQVifzAlaEt83UaXewpQFy4OZjenLgTtbNFwX5aINbb53PNpo/5KkI8wtZqmh1fV6UfQC+tflObGsfgI/p0B1sNf/F5kHzG7qC/2mrWJ/4dmZ2CuBQNo7rbb7Qa0dbzY+eGtx47/fCZ/bOHTazv/H8YPc9Wu2ICy6nOEPdw2XpC0AJ/8D92ShLXtRVEURoupkHDB3O3jt49z2nB49CCBJpiYkBhUM4TSEkfmK6PyuorVDzpZ0EfqTCsxVcgwtObSeaqbcKCid4CWaw738aBza03SrVOG2ZQpUMD3Be4HT9ENB6Rg4diDW88AIc+lAgOXeRekFawgNc5DKn6lTQA+Sy8xpv1Q6trkKqx5AAFfVCXOqQa9WbV100Qa8voPHswFICXid0AYVdkloOZQfDsNWadngt8as7pjJttkfwKu2hc1GipTdtyVtdqL+B9PSlxUck6zzdg8T0zDldoJ59Ayx6lBNqgT4AH9OBu38Q930+sr+/eEIO8nGdnOftEHCYkThjldrzXAWfvAHTASch2Ke3Ntne6u4lsdq9PH/1w8Px8HsnTbMdTy0LW7jF7WkZsphpSzD2houkEKft47yZWxxQbBnSEs9bJbXu6w15BisSehc92twrDPSNp1gTtXOcpY7g6EupRwag1qi0AbKsAooseFgHQWyjaKx4Gb5WppBrkdbJuOTItuOPdvNWzjZuTY9s5LX4Knu73XiQt6lUbEczs1zsafnuBzly41Uv5bBwGxXqZQyD3Q0BrxWeups26Kq2dUX0IrX8C8D1lpfmG8G3YBMqueKj3kKDjw70z+Va1wKOtgiQUAsIF2+fW0LQl/bahh6f4FXaLcPoaTDZE/YCAidZhgGhQ61Uot30qIvsx4NHRRNjB+8+AN/UbndCQx+Aj/konsr7tZ9VIH5MO8IfkRP6Xp34H+ZcDSdGvqYParsoR/B725vNb9SB9x/8k7336I7bDz2/uH5OkRQnJ/IMh/oSlZxhuRkbn5eP+7a8NiSRbKjpi1W6OadvMrd1PYwl2IxA0gZc1JkSTdSGk3KwtYPyigW9cVZtKuVwnGp0Do6Di3Gj74KTO4EfzlEwwIVdNNNGikwH8wbgtsTo7Goct1uW4cY337afRY77WcugH0WVtmD+cb+ybUzbrPZzVTZ1r86R7/aaJ8y9w5EAAEAASURBVPfX4YMd2z5gKCXzp7w0FgBKsi3Ns1LRKEv2JnDVfbFOLbIK5gVMchc82U+ulrziG4zy1aRsb/W3bOsNn1YWje6nirS1+KrTZrkeG/Oh7zE20Et/4PyRgo/ajUsOfjTrYDltu2hoL6/XweKmST868RGxOA968DNmqYjnTwj0Gwb3+Z1lgT4An5DxVCB+QqrypxN+cfbi15r/6Wi2+OgmX87S2atPO/75O94++Iy81xdOb+peb7XaheYXf+vq+wezje+ZHs3eM1IsxdnJcS24B8eDMELxapctyXxhSEDdAZ4P9XDMrNxww2/L4SxGIz3qHK5SwTdXzXrjCD5DwYWlFfA02kVwk2SHdZPmBOOIxBW5xif36qSG0YnoCXlJtDvhKF2vy7RTdzIOdTtj4zuv4eAt6VHxchs5qQ7S1Gu5NU/rAIwAU8wPSZtWZa7WQYS/ZbjdDGp4wFb0bvFcuEVek1qO+UPmfhhmHMEZ2jlThnmnwDhgfkLAxZ35QkeZPw+pecE7khpYSUZwBFEp5CgP3AIj8wVdu3oVLIJmwal5qCnlmt65G2gXDFmRlFM/eANfwpIeHy1UQR/6qj9FBIXHnnlmcfaR/klom+mOyvsAfAKHk+D6Z//f4qpUX+z6JF80Vx5+aPDZ1e7o+7rfqbdxf1Afk7qHh5fl5bSyII8VKw9YyVnoIWY9aOUPZcCDAM2HEXAIs7keD8G5iYlg8oy8pClmfENSia9UKUjoth1PsapFuFN51HhfNxCKI8SrqC2Sy/Y0q/CCGo5N5UDjYLpgogPOF1rzuVm78Y1HvS67Di/zrGEu1/xr+lLGoddgyFoADda1zgOp4AEngVvw51OVjU9bjUPdAiuaFr0KTi0eNHUyTg37JssR8AqPOjiVLi0FrHIBGNgRhHnLjQ+3CLntR+EVdR0cdCNggUeD+tF2RfXQQQDxDBsh24kLoUKStKq7HXiUzUN145qePGSCCJ6y6Kfy0E2wODlUv1n66mXtamk3K9qFjwx4cMHlvkf/TscbER+7GZ8efnIt0Afgkzt2t9T847918B3D6fQH9ZWDM7glxVOtdPVVKUVTEdpP8dpH+g6WHjgSakoE367MaiQevlIE5o7iUGtbfUqSYBy40EUxAja40OOI4GFH5TK56bKkY2hRauGJBCq59Qo+oBT69FiFpoZTRh3oSeC7XMGDbyAUHMq0YyFW76ZRseUBr4oHTUuJdujJLdc5iJRJq3lCu6PbgRSdijmybkwD18mgzbo6N2xpFiQzj4tZ1+PlMaCtHYeCaDrDGXfKDiKmcdB014Iudk/yKXsu5PKzowjR1BEiuNYDPtENM6CucnSp5OC0dXSgzoFcf4FPgbL+wgwVP8MDN4iTzijWxTn4vuiyjQLXBCDcLA2bjyLHdKAV1WKFbrh0/LlLLy5+79wDgy/cjFUPP5kW6APwyRy3m2r98d/cfbccwg8008m70wdwTG8rp6FKfNoxtvs4wUnE3ixx5GUIAq6AukeccNHnKllgxeDcap5lWYEaGGtqBeQCm/NKix/CaoONmLWCkKI/6kVIigIHQNUQDr3g4ficrD+eNEjMXJXAUx4gHfL6ICmDdeFjHnaoQeetc+gr2uAlFpAu8WgVSrm6Jd7iRFORBdDF4FUYuk+hCzj6C/7mS26dKphxCpslupoXQt0P08CvLbu95BYRPFRZzd3u3O2uk9d9QI6D7w04XBnmi2jRxJwTrd4jZw6WLWjpVduoDqJ0gja3w6TEzbiAq+G+V2589K5vCbgf0V4UtY2AuR351DmrSCpGAkainXva3pxK6PLx8pXFef3m8U+ap/MWSzxgB7y0/a6q39e294U7wgJ9AL4jhpEt38GZX/hfd/+W3tx9d65AcnVK98oWn5ak8hsEVla3BC0F1WgfEF314q22moHxCm68UBSuDAx+SSGCuBDwa9pexoHHCjgDMr+2EI4+YjWsu4eyQghsSK6Ed6mqdjigCAf9IlEGVwnSIGsL2RZOSm04PlLV3MHgk80Z4EvZvKPNgVxt1OOhHBWME3rRVhjVcmAHGBgHcFwG5KgQ8GhIWHGuqVvhu0pLPXQRCaTUSSVr5RgvAlSiFAJVikyLhtZyKMOfZH2y9uaOyLe+oat4hyxkqA15ISfhQGT5fGt2rpvdMRc155jHLW5RJfgVHoC8+oxm81c7287gQs9fNAEvdfCDVxQ4JF6W8hg6GwCvllHixnyDYUlxhpRye/HpxpVc58/j2CjmFHxJ5lXk0N7aUt+H/9oLiwvveXBwIXD7wx1hgT4A3wHDqBOVD+feoyd13qW4GKErH9yZNSM90cIDVMoEn+le7yja6bYeZtbDVOn4VNU6JJZZ+ZqR9qrlFsMlgCJHoKC6mJsfQV3fleQ7zdqLHkl+ypLr5aEurSzwnrmCsX8JU6tCPZwL4nBCCM9i5BxwduC0TlLtJPCAkedavQCVOeEIaTffgANQWoUbh5xEjoHIp4VGxahDbFBNB775govTdDu6Uo6kcuBxUAIeTjxqebBDNl5BDTyXK/QoBlwHcvOz/NhNAKsQk7X6FDD1uCeqArYjhd6qO0/oGz/aBqYImUWHuqwIygMI0SKayLX7HGZwX+CBHqQI3MrbC7SAJhwc47nd+oc+9KfgO3N70KnR9q/bKVtuzcB9NA/mS4sXROZyY64V8mPWkVbO19CBShiIQp4D1mk0bh5/8cXFv3yg34pO49wBxz4An+BB5MTUwpXtX/kFvUREcGVpqjTXklhuLR6I0sv8TaOXfXm8VIFyENuZCqpyfEJkJ1lFOUEFTq2NRSMeOGIcjBwDgVnwkRa5cJZ3DDxxl6fUikW/4yr3rTKRS89LB67icTwFnbpBpT/0EA4BmueKIgHnzwmckpZWQKs4qkegjL6LoLQjr+Vd+FQsA60O7GYbvAq+Yat0hhe06E4NA586OfzqtMqrbnPZtKs863bKDEONYzraajh1Ui2bOjjr8Ng2JTmgODfMOTYmOc/a8jGCScGLa7EK34EGev0xb9JcmjsxN4cjZqX2YdqLw9jCtjzrVfNx2W0xd9RJ06AdsDrRVtPVbYYbtlqv4bQ5gFI230GnvtEjv/zS4jGJPs95YPwwFfYAQ4daHvzgH30ZN58Sxo8Go/5w4i3QB+ATOoRHR/N7Tm0TfksH8KgKnFrxaP+YTzxqS5inTwBMdUrLGRBLBeILk3rWRR/KkO+LrWWtX3kaS1XfJovXXkYjdpy1TS0HOcczToUxFohwqyU38Vvb0IOZfgkJZ4P3JOiz4iZ48yfcLrm84ghBoBvRbByAKtO/4EO11NfyVDs8jKviUloy01JLVoJ2Dfz1QNDVKr8eft3+ZmnXmK9m+4bL6+SPS2diOrxOx8BZTcAYAy5yMAwojGG7Ei916EKGNlp4WEAXd7rE05zUBNXFo5hscC846Use/GBYaCPXoebttpBLRakNvNIDnqhGqvknpIIZUOU1z6JGy8sy4AkQGZZTsYiiLnR+kgKocTGofAm/0C/JAKY/8X/spSuLx955f7yWCJs+nWAL9AH4hA3ehc8tNieX9j/86vX5t+2c8mmriMi+nVyZVhuKifwcL6/v6hyXZ5Bzm7PJp5tq0cbFtNasCsH854ER7gnPB3IMwiJMc0uYKK0TXlEaOHzxEspFxCKMG8oEcdHpFSblsmTSlijOyvqGhFOBbzhTygXDTjscmHFoE0HQZPEGZwvKnZ6K4/1r6WbNO4ZFxjaMVRdj6Do5iTGqYat1j1liJ37QreGlySfoXE8QSJie4dNnXTSR40n7+BBH0BVGzAOnMoWyqko7bwRp8QT3HAzdy3wsmVlF3tIUaFtXgTL0yAzaACRiyKWBVOBcEIB3s18j1Pn0I7SbzLzdB1jR6PZSDXABPq7KEwnojyfZAn0APkGjd+F/e/HM4YuvPab1wdubZoPTXUlLzlLSojS2grU81b3Z4YwVqiAKzKwr5Nrk6xTo4t9QTk7vB+v+LQ9dCaZGtprlHPJ+IEEX1gPuxwllOGStosAs3AGvIcnJqKSV9hQ6nAWrZG2DcyGwOJo0uzi/olr4Dcr8SUTkEBF4g1gwHlyJsmDASdTpXzgj4wtemgOnPgTeSrtpIarpVnkjxwkaqjUtbQET0Lgtj0JgGrNyf1paCsE0mdX8CgswbpqCVIdWvjBXecDfNnMbDE1DOfQChs3JA8ihw1vFD56Fd11eRxO0hbFl2VYhpMjRFNWPLxCEQy7vl2tWQc1spnU50cKq0U8vw9MXCWDSD/4QHXOrlP1QlHUReClBQyoqt7YyPnKNE4ilzly2HNNTB//Zp6ffJthF4E5XrizOaqM9vmQHP+SRkMMfdLdK4Asv3x2+FWLfdiIs0AfgEzFMTUPwPZhu/+eKf2fGG9x01blanawsFwiOWkPoLzvFt5yzNFKg5VznsaWZvnLFQ1Pp9HBnck6CgcunKHV+Kxgnfjg7Hsdiu5n1NA4SCnBDXs1fi2a+rBXtu/vNS28/2zmUokjscYe3FSG8gBMESKjNn3GBkXBMdDjgQZDwwC11yk6A7Mwow546zI0X7WqgDYfuBmxqHEHbtlZXwUB3go/bgEFbtxvP8MCX0BondBECeSTltgn1aKcgHPMx3LLph9vISbCzvAD4oAZWaZ4/ls/FV53c7pw2l01T47tcy6cMDboEbRQSk7ZXrs1fYJ4yb2XtaGDuCTfnsaDgIc8pgil9EID+M37Wq83V5nus2MbkS8FatGEfBCitygkYwIIH79ADZiojOzuWtJRb+Wp7dX/2PZ/49Kv7/+ij9/4beEUaK/gy/kUh83S+CofGbckgjmd5jemh+2/8YZUKpy+eAAv0AfgEDFKsfOfbPy6PsqOTXr+Q0Az0c4UvoXp9ci70/VyfwLTNZrqrpkUEMP0Ro7WUjSeTy2OmsTJWyJzp0WU9wKV23jECX7h65jkDrdrhhkOTW4F+FKtj4YUb4cd/Z9zBQ458KO1fvzZ79j0PjkL20jYgTqskiCOwBpfUs3aQxkMqKbKKHpjxsQOp6B459dY+FZ1hiAXMO8vQOVEGh79w3qUNXGCria1ar97N23jmFfzFB31XceICQExx6IiynFYnAcwP2Us8ASjRDh/0dQo+K32rZa/yeb1Ph5ovea1PDafsPnjcyNElZwuFpJ9M51/R7olmnXZNIFLiNSTd1IhuhIwgLPRqt/7mSZ1bHgGHgcqwClvaGMKhiIxoi0pFk2Rr+wR+qIAcynFQoSTktAkc/bkvEqZzaPGIgnDjIKzenvV4hz4IqBIwePihLuscigvP/LfHzXlVL+qvTyfYAn0APuaD9/P//PnTh9dO/5ii545OxnAd+Kg/+sLR//va7uKlcr+s+doL02fVFfxXJJ3AuciJVbBeRUpHkUcF07nuCuvJ5zj99TS0XkjSKa4VdDnBwRO9Vs7cCpaDFGMtn10PXwRtWTGH04E2t7PV8JUX58986NF0eDDD6USQUtmpKCOv0uHBFB3aNiOTg1dWaeA40VGn1iGCKyAOLC4AlNe8wziFyHCqsIp6yYHVgZE6yTiUdSM86FAtdC/6RFbKtY6AWtxCE3qqAb5OtR0CXoSij+0JrnWxnsCQYXjYrcBoc9344AKj/s2mIz2Cbj5mt6QHFSXajiaLi9pmJviqqvmlVS/jS12FeA84kHUIHoUhdsFe5CTnIMWWemkzXo1TSHKHoeAHEx1iDHSGkZPMN2RV9WjUwTo4N9w5X6PhtT/xOf/xz1yb/8rP3vcnuh4+a/7kHgN0D3jpW3QYGTArbeCyS4Fe7odl9fnJtEAfgI/xuP3Mny42Rv/mtR+bzqan9UsHnMikhd4HjIei/v2Xj55aVp/4rLuyuDLhcRUdW83c4c3nrEqbPuLMbrRw8rmsxAegk5wHn8En+JK0rcyu9DAe8IIE7Ii0CrmiD+bC0zbiYjYSqsCLK1dme7sHi6d2tgYfBB/N1qXghZxQp2BQDs+zhoILDNqMv4prOuDGAVbgQYoykhnlGkfgoDHPQABYJbc5V1M4YPGMPhY5FUVXND/lviiIRutgTLUHKgwpOAUwKxHkqBtW9AldVvmZ3rlpIFeZC4i4IpA8VsHjG2+9mvJ186uvJUrOkVIuVMDq9MIrsyckvczrfK6Adm55oBb4pVtLwRCcsJ9y9HcQW+UfNhIDusshdFKxxaNtlR48273IRwkueKwP5Za38WsZwi8pLog5l/RMxvlf/PTViUx7FVtbBwdUscmxKLn1auew4Mht00B8+nTiLdAH4GM8hPf+61e/X0u+U6PxgF/3wy0qNGplqs1iVgp5v5X3d7UrLZiC7WCk14SA8/EM58XFKaBqiZr0nMrBizeNklYbgaLRnWEhhUu2ZQjGuGgH7YDLScYDWeY50xpaDiI+30EuPQZffnbyL77r/ZuPh5Mv3GofEiABlqQVvNrxBH3n1IzR5bTxZ+bRu1I33LmpokeulNz05rfS3FZpJzmHzuU6N79ALodaN3QwrXFNbzhkddtqGXzjciETVwEQlUSbYaalyTSU4VHkHhw2zZkdgN942hftC68s00XQkywHHOfakXnx6quTi5qP5bmB1ID5GRNdEVY7LqFXxEPzKHpGV3RwIKY/5k2b5cKVaB7cXa5U1NwvgotJCn/gzLts1LkkuOsRfAsPl90GGBahS7wKGHesdQpyfo0e/aM/P3jhP/v+7RRWeAStyojjvIYB9ARceJHAcZ8Eu3jvTv9d6LTMyT72AfiYjt8vfurKeX0O472oJ2fAw0+zElT19apQmiCsFaju0/JCr5LqXHFHICX4kqCVA4oaZW2F8kIR+8tD4ejLVoEGDfeI5SaSRie/SnJwRS5leAIXv7mu3NGJoKufKlTAFR/alYdDRaen/sPRU4+c2/ji1ubgQzhKVtQo2jqS4l1CEHJVXy0XFMS3aQknKoUWZOrKW15QmYlzYOvS67WvowF2M7p1cMNulluG21f5r4MbJhvfkNx2Kz5V2/X9bzwAE2K+fq1pXqrWZNifvzpRjzmg/OuvzP7F1euL15g/ZQ4GKnOJea3pubQFvcRLYxz1iv9SuzjRZBibPRGoywVKBDNsVc2d2C1Cg5vxFDwCOTS2cwmWQVbRBX9Y6f62+jKT7JiVnH9/+IXJ2b/xvdt/uTFuPgDUOjoIh3zxTYK0F/yB23bS44mA9YcTb4E+AB/DIfz5X33+9GK8+V26h6TTjgdS4lOSEeB0QpeAp0inh58IeMIC1mxo5Vl/rUonfHyUw13EsVGW0+N6XMtmnj6NE7u9d0w7rxLF16+Ep0AdvgAZalrotlasfCUueDnPp69nQ346D4caMkTwH742+dwH3rf5SfiyvWlHU98TRQeYuS05Q6EUUpRLOs5KfAOEQw18O8PQLigCHo6t0IBHMwl4yFIZOLLdDrxtNFKhCbmBkCjUTRtkaqthyIFv5EKgbDz3pZVbcGmHJ8m86rzmCU5BTZsUHtBD0/YTuSAqLyokXcFv8QoatF/+mj6cVj4nRjsp+kKh0FEkMe9ijZfVtp/uewFHBoxxE/6LTz2z/wRA6Rs7MJpzqsWDfjG/9g5mL/FWMDoX9UGPFHZQqai21C/wbcPEVl0F4BSClwmdq4k+rJUFnZJtaqHRP/NTe/ANTJUL36PJUBvynDBJJRrdsBmM/vyvjv7lD37X5sfhiVDjB7nqth05Kfpbysqu6ifAP5kt/fGkWyDXPye9F3eY/n/zb33ye7RQfceYp0F1a4wTcaCHVeSr4tZrnKC6kcSDyrq6V5DlPmyexwq6nNRyAeBrnzjPYnah5Ze0L0xEzV1nrFbwBENG0rLGxYXo+p3vWul6O/jBP0QBELbwJTNKItdLSbra52YzFwT6z7PUenjrpZenLz74jo3TmxuDDwRXGIu7/+wsg2Fpi9WK8chLWVk4cOqk4EGuP/gYbp51Dm6NAz115NKWQkoGLgiFBhzTgkpqZRfayHRwbpzIjV+1G898IGzLxi85PEKXqg49Cd3KA3ahIzDzsQzD6AN/oaSyG/oUiDqI6b5+yoegxFiUoNnmwOOvXH0hLxLKlAQsZ0kCQqeUvfvs5cP/5dq1+RU9oSRIzCmppK0WzUs5pHj4/uru9IX3vGPzPxGTsy1/sbKoYBXUcEhZIUM4oYYO6G0daIu+Fx7Qg2je1PkD33wCBzylGmZ4TVvLge+167PPPffS0efZCeKp7tgu4g0EDdZfXZp97Xs+MH5Zz0f8ELxZ2Zq+zinTxh9J5xv3j/+rne3BnySkP550C2iI+3ScLHDhtxc7+3t7Pyp3pAvd5TQc6mbwbBo/fiAX2DZq1au7TTizCiaPpivsQTxRo6Vn4uBjFCo3ZuKjE1s0c90/5r5vtMshsqUd94HFHZgcooJp+jTzIEd40MXrR7yupBRP74ixP8as/RU5wcG4GTc//p9u/+ON8eAREHFgba4CjiwZZBus6hROCSKlmjYhN6e1DPxXIW9zaN1uPnXerngENG3dXpfRL3itIFpXcOuy6+YBLck4kQtoB1+3J+b6Y+iw0lTT1mWjmcZthrMC5p4uHavHx+302QHNtNYfnBgz5cDcMfCuvDb7Zxe/NvmDq9cne56z9bzim+RslYi35u9ocO5d4++OB8Tgo4BaHmDSLQ99Qob3x0pwonkpBa4mH5eouj7VxI6rQ3CkBxswodoSDZUio82XEBAGQhDTRfHoYNGgw/Rwsfv812fPcD7W5wrt0VddpM4Om5c/+d/e86hOmcdl3/PBTNzaXLgoiM3IdXhiNmw+dmazv/eLOe6UxPj26RhZ4BOf3n/vbDaJ3/1kW658V3kxVjnu967oiqOiTSeu1q35wworKLqCzsBqOLt9EapLvI66yqu58W+Vx484xIc5xLPwq/FjRSw/eP+9w9M/9B+d/p/H4+b9dfsbLUcQqGarHVVNvw5Wt68rQ0NysKP8ZvhA5/SN0BvXuXnU+eu1gVvrX9N+M2V9zSxuGzjQruPVBojSWA1Rix4BRLWXr00//aW/OvqDdfPYyJ6rnjcdPHZb4laL5xzzjTlLWjf3PJ8TQ6GS3ZlyMQmMdl6DiovO3M0J9c2LC9i4EIiVOvNCd20KPvToQV73x/oDr9OqLrS9evqe/+Of/t3BZH+yeEy/If1hvcL1E9pZ+BGY7pxq/h/Jv6jfDH5W169PnNrov/1c2/NOKff3gI/dSC7OSSVdZss7yB3IafD2L06CMitKnZ8KuDgMvTsZ19+061FiFqA4GbrECpc6P/U202omEKOv/CKSOLLSjfeAtUcmCtrTiQs/AikHMVCoVls4Jt4dDhbVSluA2Dhk3xBZrJb1mlQzkwLUcXjodu36/Pr/+Ud7P/fDP3Dq75zZGfxE8skjTNc6bjVE8CntbzTI3CpgIfFW7bRJ52880YFinW+U+E3LfD1BNuqb1Iv5g82ZP+hIou5y1AssdgwoA1TyWIGrObF75dr0d7705f0/oM1zlDLJc1pvug0oj8Y5ZyWZ+yYD9Cg4aCOKGYE4RsnB0nMveYx4VS/moOeu5zLigPFOu2ijV6pL75FOsZk+i865hFaRAlcNAdH5ImCcF4Kz6yMldE7oXIxdIukt4vh4jXSLk6g9d2JzXf3hnIMfOjxwdMC5/kwJrk98/kvTK2r4YSR//3cMf5S8T3e2BfoAfMzGdz6b3KsIpqioB5p0GuuE5YnjuMLXiS6PQeBUK+e3QjNX5Dib+YRAp7J8BG0jPWNVgq9+V4HvbPDhDfmHsgKQs9BTplzR4yrHcqq5jYwMQQQbxQpBDkbOKhyHoPpZJaWQmU4xnJB01OtHrMBFpzemJpPBYGMjgy8XCkJFCBcNzb/+/P7vfO93bj7z9ntH/+V4PHgA89OIJwyPqlxo4cihiTIFJXBIpZqVcnSbGYHTBgpVVutBVjMyAytBPYhKHgTlUHCjUwYJ5npNSrPZFNQuM2LBoSEClghCRGk3/VJetQVde0g9gt4wEULraluoGQponGgvB+bTlgaB1XCdYsxaIR2tbWDc6XTx75792tHvXN/TJyfLA4XMrZzDiuzMPV6jW+hNOykQgVMRn6cXmEPEsQiIA+ZeXDTG3IeGecd8Nq/BUC/Ia56rLS6iYi5LtcRLfKlMAIy5KCPrSQUeROSJBc6X+MFsbVpLviDQ65yShNRTV7zC5E33ONc0U7gykQBmuOY9550+WhMXnNiNlLzH0b/AFQoXGLQd7h/cR96nu9cCfQA+RmP/iV9+5b75aKz7VVNO8ggFWkjKgVAf62SOE14BbhqOSs5LF9xyTGrjpIYunICCnrolh6Y2grkc3myazkLricCbL/TDcxEy5RyIfbzGOxxrtdzyLo5PwT5+aTwMJf5yQeMpK2wC+oDVEY5F75JIDhVJwzEWXWkfad85+Wb7F740/b/lOH//+z648+P33zP+Cb2S8X6crAOm37nEmZe7y+nhkSOY/reJssBdolIjlBYHtqhWPCyTix1IXY+H2QqtZdQ8DCsokbndPOgTeKSWNzBV6BurRhJl8KiHHuQFBgp/Mu5SP2sZxmHC+OIFWBAICG/+Ak8HB8nQN2YZyGovbc4NI49VKDoJnwewwInAKJjL8A9ZWvFOpot/+9r+7E+08v23l188eom5JblIEBbzZ5wrUc1ZzUnNP+VKs5hQzBnFVuav5jaJnRVNsgLDTmNtrEx1g3c8UzxVQB+zehbPqQIyxMjS72cqFx/W0bmyVaDkwYY8x/jxxXwIjDxx01RcoCJXgXQxnY7FH/24WOBk4GHGnMvgxAXAVMOn8058qasAbryeJ110/kbv6AsXGrpQEGyxNToDfZ/uXgv0AfgYjf2pzftHu/oRIZ3hfFgjkj50gceSc5nGlby2diNQ4qhxMAReTnCu8qHz1X4Q6wA9K105g3Du0CgVRwFNOj6chXiynVbjCRVHouCf+rDaBi/cifGDnWQge6ifKEZX48APhzQPHum0VNfrGOPBF/5i7/cl4PcfeufmAw++ffw9WxuD929tjd4v7fgfqXgueUX5UHkxvGgIT48m0fwXLPZAqaiVKJ1YyYQjRMFzTVtgFf6BA6DgmcbyCjyiCbBA08HlIC20NJouRqdVQlgsp+gLj5hnHjpC7wR6zAYKTuatesuTtlV4wQ97ZLnVuTQtZTUvqwlLUojv+IPK80/oZhTFzRcEuv7aweLf7e5OXnzuxemXmXfMCc0B7eYQuOKiTTlbtcw7faYxR1XzSg8Y6uLP81c/YL2Y6mpyOMj5yZzJPubSkg/AaI4p4GoqSw3J0ixjnhJ8p814PFbgRHkFS83xmJPaIdI0KcaMC1EQWpmSLRkEfZ63yHNKMnL+KqdNekh/uoIe2qXSgxfSTOcXF6BhD/GPQCulyDn/LMN9UfDllODD7H26qy3QB+BjNPzXmlf1uGZ8ozl8Gyd7BjKd3HpKg3upudLM133yV43k1HSZDh7fnSUfKyhzDxhnI5qF6+VempyirurVjm93W8QBfWIjHaCdFI4jHEjQwJt3M8M/qYzp0iEpL3tuckhy2IGT8uWEeQAV/uadcrXpOEv/87UXj164/PLs/1oditS/9fGrzbEqox/0S1uk6rfMgB1wkjKRZEbdeq62wR96koNFljte1N3H4AmuuLcw6thcOpgXNOsSOKSjyUz43IvPrf3oZ9EbXjfqjQ1HethOgSx8fPKxDkEjEPxpdz2xOlzLWeIRW7DLtydqOpeRBV9WlwSiSLIxvGq54CFH7TqyfQudtlxL2KOOHYMfJe3CiIceSdCaUYywIfMY/povcV0V+gafHFuPldpDftphpA9ecLVBwtASwvvswPQ6HNpIL9okDd7M6+CPttKTrWPBlbuOrlNd8Ma8pU0XE8Cgxxb6YxXfzoewu9rhjQ7IDp7lvIx+MS9RTnja6en9L8a8i1M/AY7R4G9M5Jq3TunU1pWytoh1QpN0MheHp/NVJ3xczTdTrRj0U7yd+jhGndbyB3pVSRlb1unE5NRok+OfKkjlVlw4Djb+cHhle01y9L7iNvUmVyPWgRUtUyUcNY4HnfQHjNXFmIAU7o22XD2IVjgj4RDjCgz9oZVuQRs85HjNU+2xlVj4SQb/6ItWJBubrFrC8YUMrXPUJm7qb/YnpjMwOT56nXXuKy6O5IC5RZiywyJyk/PhaIpDJGlrXWsamU6BPG0c/MP2RT+28zPl2HhcsGPIUiP3D5cDFX2CSqEg9NcQoH/oLnx9D0VbsLIfGmNH27ezBRELG8ZTd8ELfokX4UaXZtgU2hgLmku79aFvY/3gsySxJZtjF3MkkGWzHBvoNG7ltoH7Ihho2C9k0E/xCHswh0o92nN7mTkcQZvGkMcYqk/IVFQj+KFbjiFyxLHtf85JNecYKlqJR6yGsaXMl1u9mm3M0dClyIm5IFsGPOe7sLAfCZthY8r0V3VBqOV4hDxun4QQzjdJVl/Rm8S78thafeeCIcaKcM+2vJLmu273RNk0WlFnH5FCQA5+2F8PThwFVX+4ay1gr3HXGuA4dXznh96xf/0Lu2xqEbxCtVi1yJHpxC9uIrexdKYLheFLvAX3ieV0tLUXzg4Hpm1frrK1qta9YWGOuP8bwRknkinWCjg3FfJm8AEPcXGFrnryho/e+RVE99TUFt4ryFWXI+ImsdYvkhH37HSPTRGMdYSCEv3AH+EAoQUHmfAyH/eXYE1ZnVeImCpWsN+tuvqC7hGg5MShk4z41AdbmXJqsg+BJ22jNb+2uLUA0spmQrseIFI5gp/4x31CNIh+KfixRuI+IbJ5a5T+oLPWYzqik2wqHNknAudQLzRbLnzyIoN+5cUGsmayHf3E4XNfk2Aq4Jx9R8bNQUAXDxohtUsg/Olj2kdQtZVVa+DQHvaRLhG0RbcgmOif7DOfzadDjVnwiPmiIMq4YfvkG+OHbdR32UxxfSE60fDAH/X47Ir1wIaDhYJ2uT+LnZCrDoTtsIF1pY1+SM4cu4lf9Ef3SGQ0jZn0CrtMcjyZq8xBtpglA9noIf4MOQrqv/SBJ2Ore685zu1YZOBl3GKeSH6Wc56hozSK+Q4/Tc62bzE/1Hd0Cluo777YGeiCzHYI2dIhzxX0ULndhRB/McYe6nWMJzaclOCOXWb6vcW4mmsKz3J+chGErsPRxh5dddJWwsW4ilro1aM+3RUWYP716RhZ4Bc+s//Ds8nhJiczW3LkOpXlIHObULdOh/MjtuvkHuQDyL0lV+d0KbbOtAVcl2MbTQBwa7iedS2BSR40gi30BBwcOFt5eT8PGpL1Sn4R3gscvvmzhQEI3I52lQ841oXysqzUpdVZwUueSw5xpl3w2G6P1Qy6ENBq3gQ6cNNGxYVO5aq5ZinJ+LlqzOBNE/xxtpYLD147Sd1SVmf7HJ+6DR5dnxBYBgqiNgEn1nDvMpPldbRpD7ejGeGe5D6nbp0ObstxA05iGxX7ZN1ysi11TVjHnzbbpbOT7Zw5+ghH4x0BSLI0X+MCgzpzJvWCF/Vu3DRHNBCMD23JhwBO6uZO9UtdYc/k2c2lxM9j2oHV9GFsGddtdTnxcu5zcZW65/y2bM+dtt9lLrkOP5e7nHNFtxbYj6/ao1LVwTFsOht85TMfv++vXCf//DOLs9/3yKD6qnbd2pfvNAtU7uhO69rJ7I/i60v6wvND8k8R/OiFHA+ekXucOvFVZjWg6262k7lyVxsX+UqxJSb8LdVjFULQ0O21WC3gmKI80qpDOOKVW4IEWrac5ZCCj5YFWq2kYxVQuEyTMdt+4TzAly7SgftuGaDTmaGrUJVylXEgmds4WZx/JHQzn3R+CpTZP+mDE2630kW3VfhN4acXQlI+wVcr+wU/CCGm2EAZD6m5T4JpHZb8Q0/4xEVLykBPthD94E8EpmJvVua5tdrpLCGDrRgD8YxARj9ph+9ssTWNJ7e10pHQ0lN+FjK3V0UtqPTR8pqEDr63nk4fvDY4M06SFX0Sdm6/I4d7lsGgOmgcirzQL8YUXupbwLO/cbESuiZp8k490t70RboETtLQt9hNkV3jAScu0No+C1n6aOGqb4qPuH9axkYrOOHnfVbhSN98sAn8ZiEdY+4pULP4VJ8EF8/ol+hynki+yrGjUWxFGUx2DjTx9AyXonnIxC7RwskRNvSczPMHcBecp8O0F3PDdrWuet2Op7E1vppKRbeil5biJPUr8jxkm/rPvNGYoUdcMEezcMXLMlJ/7Ao8c20QHN74k4J98K1MfBcUmbV9OkYW2J/uPb+xMX4w4qECIaoRENnrm8zKKi3g2u5Uq7Y3cU4ZPASnrK3IdNSqg4NjEg99kpaPQoZDUoAl+Ea7HILC/khex6skbbgS4KAcb4wXk1BGlZCb+sBX22ii22brU7z85DOrn21tneKs1aatWPkvHlYJnajDx8FJN2ZxpLEdOtqQX5aseO855OuDxJFiyxZIqxfOTduF9Ft/2RdkaINX4uz4wh6xzaqnvYPTSNvHyAh76iVVtFrwa484R/ynbCHXGnIUxMq9cMyniwCClLbCsWcmxoD+EqgizdL2snLYSlv/0ho7twFKaENtn4uXpCRd2KQwUL8UfJOntkL1BnfoGOPoh9/gBzqH4sxDp64Pcu68diO7YEsCC2XDxnqNDPvx7i1zS3aXTeDIhRP6YQd4IIKGNohiCPqkJHixheYVD1hHP4OvWqO/QQ9uzlXksp8rHpqLkoUNaNUcY0yK7BgL2kMn8bB9mLNhT8a86AkPzyV0JuCiC7oXXUuOTfWQg+yAPoyZ6jE3lOvZxhwLjb8uK0KO9IrzKnqLnkmHzuqHZKAvc0Q8c9xlD8YGPXTByCK/6AJv2bvwxb6y6eFv/v2dl5Jvf7xbLRAnwN3a+ePa74/9+jV9pH2wxQlMsnPMV3xYYegtRAFZaVCOrdZwlIVANMBxFFpdtNvVuaU3KQ4FXNr1G0pBG1f4rbNJesHYxlU7joaUuqQDB3R0xLYbTqjTy/XckoOKQIazwjFPQmf0ihbB6v4BI8EPveDl9mzhiHwSjjRtETUEcHd2ktu62CfQdKj7w/evoSVhx9QXx6oXRwKsKwE56tQh0MAseLxmRR/SbuiWT72Chx28VU2OTTaW+GR7wqFABuMCf48ncKdunKWz7h3P4wlbcDciaFp2fpkJfrmdSj+sW447cyW3P217ZKYNiz1kO+45I3O5L4Oy+5JjDJ3lbG7qifuwQTztLnunDXLcbDPbK/vLWCzbFnjqlvowRzOAZf/Thgpceu89g7btk7nsoYuAvF/e8cYG9L0br5QPje1DOecGDx5So97Nm4QYP+2StClzOtEwD1PfHEPmxc37SRvytKHz/K//d/f+JfU+3b0WSC909/b/WPZ8NBteXGwuPqBbbBFAtEKQI9Eqjw/eERik9aZWUXiR+aGu6OWYxuPtwKFD8SMJWr/Ejy1oW3QSD840w/GGfH3rwNLbpPMQjRzYsjEIgHIkWokMCVY8HKOVAquVWGmxCtGTxZtb2u6W55Lzi8v98QZbc1q6iW68kdvNODStOwf6aIh0Er1Qcab85h1PnYIbHyfikRk9EIQu2gCXPK2OpQXtDV9ian+eQvq09cViU6+bqJWneMRfttjQfUT0k77OUQ75fOFBqw/9ScfElQdVfcrKCH3gpCT5ITdroZ96r7WNniTf2JYNwB9pHHKMwq6hX/SdV8NSJ33MdzzY1sNX9F06hX3o70T9Gkv3scx4oG+XsHrKVSt9s+7SLfRCNanJM7R6uE7aKVhubqkvsn3YlVVu9FdjQec0vOKdvdlSzyayqx6oClpts6oPulBhy1yIU/VrQ6jYVKuzsX4+g/7oVSmGqplvpF09xlKEvui1J22nag+B36Acqo/seggq/LiYUaDRs3FCoG/ur4RJd7Z6u0CKXYZ89UqJOatvqanbeqBJc24DXVi7Mx941WwrV/PMI3SP+cIDeMzLwwNkzdWHsLWCt2bQWDf0NV/EnnNFeIiJcfb4Sth8fjhhbue5g32dsAlJD1AJP+Diq92StC3nFH0mhU7ldTzmCXMOGTHuMTbY4UAbBqPJzul7vxJE/eGutkA30e5qMxy/zn/i11/70HBzdO+hgkbGHW3jyVHhdHCiGzrpqY/k2Gc4A76Oldu5OJI20IKjpRN38XRfVPdRw7mko6TX5kFQpS4B8QQxZQcEttXaeCd4+KTCQi466MCxI4I2U64ScOaWU+PAB+eEfrmNOI3focVH8ms8Gyw1CBCR0slNVN9SfyciLveAAwf+9KH4V/UrPsCgi47xnC+HRWCQrbBlXEAUfeHnPmCjut08ui1OOV4Fyey/+qaydYAPybqhN+NBjm66rRBB0GMznx+oTduSurcOj7QPtpQNxAedgi5sgM44dI2XdIy2oqvtSTu8I9CGjtO4XiFQMIe6sRcv5B3p6WHl9IFgFxdAyk1vfeBrmdaVvnr+IWTEhU0JQjUd+npLtp4fyMvx6wLZoeYItm95C4e338GFj+cQ9pGwMl9o6WhS13GMoeHk2CvHrdPb42Z7M26WwTnl/nh+0HdfROV4ZQBOmMphhxw/5g1wZJOwFXLMs2kOLv2jj76tD8AY5y5P7SS5y+1w7LrPzxJOjvY+qIt2ndoZyJaUlAebjza0asoA2LYBj+1ReanKeQkr7sPa0a7F19YqtDhCvW4Rjm8Vr7ual7POUKyV7gZOTl+vlhQCo2j1i05aqbE9no4qYbl6gwcOy7qs5q3MNQXjNnhwkmRnWTmKFzCFkT6tBdpQ/Qq8IMgD91cV+bnXmTaELuhVoD/qC4GbLXjsLI1jVRarTS54nEKPItuwkre61nDw0TkUVa46Nm/t2o5ZBs0WD/ygK8xCrsqGlXqMPWMt+0cb/YpkOZ0t2r7THnpovErf0B1wjJVlB6+iR+GrHRLZRhdQjHNlP2ijizqk/XJnI/nmfE4bB2bMVQLurMxB5qttHnzgTaKf9Bn5hhnuCWCbACcV3LZPK3M7A2pehHTnSQZhn0M1nw7fgTr7E/bEbpVeIdN9UY/0ntvRr37s9J8Fv/5w11ugD8DHeAr8wq+8+K7F5pn3hYrF8YSjxrlWaUMOB8eFR8ptSLmu4nViy7E4Z0i61YdWBQpQOA2cmt5JVPAV33BWOLiEwQcnggzSRPBY5WzhoDfCQYeMaC2HoEUHUuqU/IqTax2khFkeqK3MXKVRJ4Vu7rNoHayM7z5mH6RXoauDE/qjeyS6UopcwIQNsqVt1/f8M4Bpw0Hbp9H/DA7wL2grPLHLtoJpjkV1gVEuTMIxi7bV0zLdT3Qh2FtP2qXrhv4hMtWetPW4sBhv6BW1CTfq59ppHVo3SBlrAvLscBKrXc8TByJwnNCJt1hHym2n1ma2V9heF2myTQQmXZRoZrT2gS5oYLrUBxgkDDldAMt5HHoWey/1ER6SaVryFjehpd3WEbCiaecJdMxzGaeeq9iVxal+D3BpjqWdjM893bQ540s5UzevYZPnJedE6jiKeYD9cz6i93B7PNud7vz73/zZAb+03KfeAjlhejscXwv8g3+89/BkMHkoT/7Us3Ng6Qipa/NYT9byME+HQ8l0ifP69ULe0lGHFr8WTjcQ9OMPevCklmc656N4WIgvQXcyKVv3Wucahr7ZlnSULbsuw8uBIC8QluXQvi6h18307uSyws0t5eSdtoVWv/Q0JCagp+VDV9t5tQ/eUl9nk7pPlo/e5pG55eo2aCXf/bMe1JOH8ax3p1+Hc6O9bBv3x3nN3zLX5cav24DV41e3Ua7tVrexjRu3VyLoLc8b2hifzq7d/EdefS5YJ+dE3FW+tR6dDnrKXit7PQk9jzsYakj7bOjJ8txetu7Q2EaWk3okt1bfyeLpX/6ls1cS2h97C1QPQvTGOL4W+MVP7Z+fzA7f7pPazhmNCSbpGLoVp4KjHlvZ0LMrE22zbsQ9xlyd6PpdgdR8YtUjHqzwsjxRO0GT+5KTCCq1Q7FcOx5WCtDacglnxcIqQSxLsLN+lgseQcy6uA/USV70gIde9IPcjhxnh4yaX1fOp4mo03f0oww95ZmeKKJvXkllv9MGyEameWU9+Xk1SBv6aqtWX4jSd49Kyj6xE0FgTpmUaU6aTi9gHpfUKWUmPtvfHo9OL2i6ZBt3+ro/xkl7YdAON/XwPEm9bBfTed7YTu4D7dDXcih7zJLesrIPprVcVoU5N9YH3sTnAof79jm+NQ90pY7NrC+5x4Yysuo+g5+w5XOlhnks6Ysvrjoe2afaTpaXML3CVM436wXv2k7oMFiMvvprv3DPi+jYp94CtsDSRDawz4+fBf6HX9t/38bm/G3cW03niKPpHBnlTfkK2tlGjLZwVDgQOSY5S31isgRVHFjC0yHKYZZ250FUHYDzm7CbER21DS1eiWtebE3n9iJkdnw38iMo8BSsbnsWR4qzqvVBf/hbt04NaEm17jvitReBkMBMAAEDW6AvzhBdgKXTtZ6dHbt+YCdstyFaB3hk1jZcpYP/kWg2i/2X7ZJ2yDHJPqEJKfnSnuOWerqcON3FkXWc6Z70aLgZtgeH8UY/25ncv93rINO1bahNjxKXCxrouzEoc6YKWNYxc7DzAgO+8ASCrOSXY+hxd79tu9U69Pr0eVxYwSd1dGBNOcBJ2CRxNYc1x5iDOT45Fu4PMsD3OHseWXZ3UQGPtB2wpOlku9+dTjn+wJNnfY7leQiPTn7qBQw5up3x/D/82OnL1PvUW6C2QDjxGtCXj68FPvZP9t4zPpi/U/cYNW6bcjQ4fpyDg4Sdeq6Ku564HSdRt8X9XF3B58rCDttX7+DCgxXsSL9DfqTbf8ZZ5gNfVn3w6finnrkC73TstMrSZtBaDiuf4UgBpt0qPpITE86s6ysrlcQ5krzENVfrkfWu37layy1xeNNuXZdpzClz02HrVVkd5qaK3Xf1sZV+Nzkde1XOQOALp8629Hl7e1M09JFEAMKO2eeaX7bn0fpTMw6wbD3SuGVwyXp9TLss25rgtWyfm49ZPd457h0uvEkZtNwP9V16MRc2lXe2qvuQdHm8cUwIfptlDuZFRyezpsxy17e0oeU4rylybuc8X8+z7lOONTQHB0fayXFw9hgsz5PpYvaVT/29+16p5fXl3gK2QDlZXe3z426B/0YPZu1s7jzglQv68qSu9Y4nj7WKo32oq3serGKrjMCJU2IFpWViu/JIh2NqAlvSOrB7mw08PR+tx31y2zXeSZVfquV1XLLEanQ8mOjbgLk6Go6OFtMjfftqM7eGaxk4ZX2LQbryvu5mbOFp2RP8zde65AVC2aYVzmC8OUQGH8lGn8TnYa0jXiDNNla2wY8AUDvULHtlSZvlwMcXI0mzerFje+Vq3bbDKWefpdsidbPMGCtdUOT4JT/GJvGTH08D62aApGc7fFnlYc8Y17CR+4mW6musSLFh9g85cBi19hDvMk86G0FLWpaDLr6nmXOI7YqjxWhrM+7nQtGOATxFbrnQEZPQ1XMu8GMupp2QBw47BwRkLqg6+8Jb46i5ANS2wQbUs/+eo0C6hK48iKbgHbgeR2RBlzZWhTGW3mkH6k6566EXkfNHMwS2/LQRePo1CfVN72uNYh4f6GKgsLA8bKNrvMlkcebip/7eYN/c+7y3wKoF+gC8apETUP/vP/P1ezePNt6tQKpvIWhlGisKrYhnR3oneFPOxysMrtZZK2cCCo5WEvp1PieVSmW0jYMUtla6zUa5vzlhS7esPoSojVYdtbqaabUr2eKnfHOADK/6ZqOyQtcqMHHKCvpIdHJO4KdQ60yAdln6C48k3OjPCD5stUoI8nndCee9pIva4Y2jVPAaysXP0QMcklfQtW7tqhF9JTLliQfiN6Gjn+iQsNyeBq+zeeBIn0Z2Mm/k6TscqTMV6UAfKGEP8pYO/dhZEBz72V4tHrbILqTJkrg9olNHm/2gMXWdDNE9gsiB+iA+lGUgjWkXeFJWdFqUyl0sUnKs05Y59oyhtqH1oYzMUwfIYuyKnAx4Ma7GV981n/TWlbfttcrXWJY5KwaMAaq1MGzXXqCEhNCqHvuiZtq2nTvWqesMZmQeMP9yPDTH2V2JC4HuIoj+x1ZzjFU3B9q5EAOSuhhW6zMezQ+2X733Kxcu6NTsU2+BW1igOINbYPRNx9ICFy58cfPa1jvfqy8/bDVHclIKIlyZx/eD5WTYrvOWJg6aTuDgNxVYjuSk9E17fbNRgbM497g/HHTg5j3F8GU4UwW3jrccepEFT8uDr358bTHGwSshg6TlbsBoA5cg6TbTzLUspuyUpEfSdxD6OfDRDq37QL/Qi1c9oDYd7b4XvnqvGptke97HhF/YSnrBw3RoT7+xGX1Qte0r5bRp2ok6/SMn1TZJu2pFFPY+KudbN170PS4rJDx1yT7ZjugzUzAflRUh/aVttV/YFR2SX9o9dclXiyi7r8ZFz7y4ytWlbZsydZ+00EBL8pzCHvr4lfSWlYRE8JkqiGkw4jWm1oZqpt/oC+/kkf1jRY9tffEQjYWX6bM/Wn2H7TTGxUbI945A2oL5qc+IxvZ2jqHnes676mE5yWy0wdJokY3utV2zT2hS5oTmCjXPTfch+59jSRsyso96umG4//Vf/fgDz0PXp94Cr2eB4hBeD61vP64W+KXPvPbOo6PF2+VI+fqhVl1eYWkLsARedFfgiZWvy5njALfKHMBByiOl81GQPMThhgMyH3xoOkHakEMgIaDyWuNWtOH40AFdTJeyVuUTJA/Ff0s8MgiFQxdPBRcFyU5ny6UPlglPkgOc8WOFFbZA98MIytnHcKrRn6Q5jL6jfxcIIrAJnhcRKSHpoEE/cNF5sDgabmxtxgNfqQe6dTZHZ/gkf63ySrAxTvILnNApZXVH9wsItsz7szlG8ATe2SVt3Y2ZVpiyLfafzTajP9Bk+5Zgh7LvVtgu+Sc/ZJp39hPZWu1HX7pxZRygX02djTZj/KwfeOadOKbEnqmfIeSpa861yWFnZ+SmHT1nu50D7CPeYRfRx1jBC/45Z5Ofz4PsHxcBnX2sI3SZcl4b3o1hB0+8o2ZjePpoOrt6+dd+4V27pu7z3gKvZwFN1D6ddAv8zG8vNs5e3X+w2Rqe5ofX9ZOkg5lWVvwWun4LPvLso4Kb4IvBpj7odKT9667NeJln4I2AE/Sb4pNX/PCBb20zaBIOnZxqkWk48jqdzFvh8fBI3xOug515p57mSZ8IeLrpFnp0eaeHZRKgM6UepdJm8Nra6uywjq+RLSf1l/NXvyhDA05n365P9N/J+NSx3xbfZJbDr+lpOzocDDe3dNuzsrVlp61TX8OgoWxbU6/Tsl4ZtJHvcUMO+DfDSxuBcaMtV3VIvh6Xer7VY9gsDhWzsDvJNLYVNhmXizDaAkkH9z3xOht4PnR4aQvq8IKH5xU80r7cSlmeE2lD67Mezzog03O4ng/w2N07evmdv3TPlQv63Qfr1Oe9Bd6IBdrJ/kaQe5zjbYFP/PIr981Gw7cNNvXJnXC4GRjS4WZgqB1oOth00AQHAiIpcbrA2DnqslIKB550o/GhHB4rkpoWZ18H7U05X/h3Tj/l1PxCdDks80JPHDROEL44QuuaBDj21Ge9Hnmh0dlBK/e4OElnD09Wy6xsSRkEjIMdOn0IntajCxbgHkaQOb2zJd2CjQ6pUwZeghPyal21ZRn92lxMtSodx27Ecj8IWr5QwfF3MrtxQnZK1Kq2BLBuDDvdM8Db5qu6JB62JYjBz+PufpDbVvr8c+U73Cfr1Nm163NqaJ6eDzXvzjbgLvME0o3fje2Mi+2TfU8dwExe5NlHbMoY2la1LLDSBr64Sz2y393cAE+Pdu1fP3Pq+X/6d/XMXJ96C7wJC1Qn0Zug7kmOpQU+9uuLt41m1+6TkxwRU2rHm8Er1cYZZgnHfRgrJNqB0UYgyTqB6TCc1lg//docDIbT8VahPSyOMTnOOY65AAAS9UlEQVRxxLmS0sk1g53TW+LlAHcYPB2kalwC4Hh0GIE2OQDZavakG3U771HIdpRL3cB0H0ybjhQ9C66yrXu34kJgPD7Qz+hlECHwod+WlRED6junsUHqBH9gKRsJlm9ptZ2tU7bB3wHWPKxrBt20VWKnfZDnOnbMvjBe6EOQJGBzYZG29RiT04+U42Db7XQUptFXcMEjeS6Yj22S8M627suqnLF+WvjQrzGV8UkcbNmNHXNhb5e51o0L+mKPGo922wg+tY6hcNjBcyXpjYNdSreiX7ad+5T0y8daH/cRW6ODMdETuw+2NnS1derl/glnW6bP36wF2sn1Zhn0dMfTAj/z23+6cWr/O982XExPEzC3trfmu5MD/ThbOvNmW3rr9+6nY35Pl3uMTYCoUx6Hg1ThQEhk+iskUR+Dh+9WnICeHy8f6xsPBItA4LC9rV8AOhhAN1V7wJEpB6mmYA0fnDdtlgFu8Gp1oT0JHIzkBeeDrcMh6m1RXhwOp/qZQOTRx1C20OCA4X1a7diA/BBCKTEeHeh9zuxb6s67sPGLic34tBy/2iwT/grJw+hv9F94dE5pqr6TU0WW+1WXaSeFHCFGH9VXaIONDsXcwSfGIn7fWG9aFTzoaxm2PfBICMS40lMb5u2WaKtfIc6+Ji42s208P2BDAp0DeqEDVRL8rJPHvqPZlg0Osg9lPjDm8I6xFz24thH8nOgz84H2lJ0KW/6WoDPp280nPaOle+RLYyTuoZ/kRfAttgs9pcd0V3O3XN9gv5SQGoxnGmPNq+YQ22kuCA990Gu4OZ+MTp195Vf+zuA169vnvQW+GQv0Afibsd4JoL1wYTE+fNv1+2f7R1v6HdeN2Xh7MJoeaHWRqyIc28YZueqDhX6GcDBUhNGP0mcQpnvgTbQaxgnVcNociMI5amU82Fagb7b0s6xyYEqsnsABPpp2zjtoFeDH4u1VDgEfOmjgRwyBFlzkUmbFur29Jfd6mM5ZbbESF0E4c+lw/To/Hp+6phPH02r1Xulv/rGyqrwv/YzIIBhg20hF/Rxs2mjVBvDSN4kHEGBDty/rrr6Ou5UU/Ejwx97Y3StQw6nTD/o8nSY9OmBHXxw5yKHtYSPbqS3l6sJC8qzztow51UrOunq119VT1nXJqscZXtCmnOQRV1yVPdGRlS/jjoyYL9KDcdIvKWo8st/orCu2IXZCT8ZmI+agV8JaXWpe2n7YwWNGTgBkTEj1uCQkj8Gz2KiGu4wO6Jj1nBeUsRM545dzLC8QPAc2Tm8evby/e+2ffeKdfeDFUH16yyzQB+C3zJTHm9GFC/rl++al7b1TZ84ezQ/HI1aLcoSKvArL2wtWFSOtFPQ78W1Oj+L1Djk/w93L1bqDmtudT6fbcqr89m2d5NRFQJB1srOlbt7k1NErQyIulpWYVrB7B7rnlwHP+ODA98w9ctgTX0QgRCFEpJZn+mCmA/0HxzpsaJX02i5BpNOllm8867e1w4/bL/cxdcLG+1JTW/YKbluncPC+kFjmPd7YV58UiEtfvbpEL/dvuQ+rfaQ3uhDZ6ODI2j7VNNdfGwzok3mDVyfzJ6cvB/v7cUHT4aQN3Sfmiq6qdLGh1aTmUNN0+ObV0WYgxQY559Ie9ZzrcJflrOppPMYPe1sW+USrXcaLNvRPeXlBQlA3Lu3wqemp005Osp30rdTD03unr164EBso2dgfewu8hRZoJ91byLNndcwt8PO/+vxpbcienswmclmn5HD2wil1ap+Kbb4MTP6Qjzy5HC34GaxxZG5LyoF+WZet4XDIG6diazVx2aKmvh/zbUMOcaLAnFTJQ6+7DggWEwUNgk8Go8UC3AOhaI9ZfE/pR3wPhuDtHWzPKWfwgy/6kTodqek7FVXfOpxaHmVwSeBTd47zxmlPpnst3DawvsYHrl/Okc7Zz+SITAUo9V9xQavlfQUD+OdFT+qvnQAFlLmCGu0Ovp1ep5qtnT2ZYGeIfeBHm+Ujp9YhbVDDUpPumDpNpqdCV9OSo8/s6HDkcQQGXTcXbhx/06fep4SfYwpdPe7UsVHcLoh+dONjHs6N674yHthWE0yBvBujdfxNAw/0hm5HuzAEZts927Bl9sd1bKIn3fZ3j76++9kLjyxfqYDUp94Cb6EFWsfzFvLsWZ0QC3zuc4vRn7187d6Dw43t2dHBCLVPnTrV7LMCisC1o5VCF0zUpNti2/wkXpk3ewLs6G9PeASqU1WwY5WxPzglhz5peezkdq0cNI4OOgIsgQneCRM7JQKR61kmGO8IplWN+N3oeJMOeEeLfk6pJ/omfQbmDXSWUyfAdm15sZA2QBfk7oV8nHsGwYTD3fbCBqd29Ou8yk0Dzw2CR2sDKNAl7eN+ZP+LTsUm4Bie9pUNpG/a3zbv7II9SXmBA6+U043PMgwdwUf/zv7JN8eNcV61IRSkbuyz3tnXbavjlnjWMW3a7VS4r4yfVrSydzenmCeJz8p2MTg1T5tiZ+ZJ2mVfuyI5B4Vf7FTbftUug8V+8pK8+YYuOyZnDt7+SnNdK9723nnq3B97C/z1WKAPwH89dj1xXC/89nM7ckCn9icj3rtoNo/2BvrA1mJTnzO2C7aLPXXm1HxylEE4ndhivrGpwCDYppzZkZxn5mxPdkEgjaKApN+PH5za131ite3t6UNeOwU/g+BOgpupdLBMYODDGyeMYz1SMLYccrFqxuKVcjhmkNgcqy/CtS7Umz0x3FG7/iMfbPSajg9G+ojvYkzfoy/swutBn63tGf2zTtjG/ICBD48uhcLBc7KRdlns63d6N7ig2dEqEOe/mG9GEJQNpjuLsIvgnT2QXYKEdNpXOc2QvKP/Gh90QQdk03/3F962EW1pA9sEFXT/WX0LI4hlrQP46J12Fs+Qk+Nj/jvqB3LhGHJV7uwClHmEfjm+aWvtEGyqL9cZ/0wdLeOQ+pG3tKWPxs88+Rt9KhzmSD3OxksbZxtjCm8uYubD7en9w9P7X2+ePvzNn/32Gx9rXxbY13oLvOUW6APwW27Sk83wp7QqPnep2RzOXzu9NR6OJhtyWHzbR5vWk6P9wY5WH1TTORKgcfw7iSIcCvqJOn7urQ3gDuR2rlGnveAFcZjNzpdKlglYrHjAgSd6GD/57g025OBDp6IrcNAmERDk1NU42NkfbkxO8VN9ESg3Nwpd8M3gdTRRoBCPVqZ40L/gL7zTYYO8V9j1SUikSq+6bF1A4Xcj9OnhxW7hdRXekklb2KvVresnQXCxp0AtfQlk9Oms8j2CcT0WhTZ1zDGBL/KRi3rY1H2hFrj0VxcWBH90g78vLKgjB/t7nLHfRLqgQ4erC4iVfsBbl0rD1D1thsywDblskJl0Knb3mGeL55H6XdrDdmrM/uSFG7jMRdPAIwJ+sTW4u4Kd5uJN/aGfZ0b66OT99+41zzZHF/rVbme6vvQtt0A1cb/lsnuBx9wCP/VTi9H9H7q89fbNM6f29DVj7sNuEeSUwmlrJeMuXFdUOSOve12O9f63yUnr0diuTc/OsppawgeWwS35ZflQDh4Zq/zNC6dPEAkaeMqhgotHN9y4wA4npwu/jq5rv7EfbluVvylZr1yV81ZgoY/uD2USwUHRZnioYHHmNMDTkp19CQQdlnQn6BV71HDjOseuWxtnbugfctGFZNtneb39wUUfcLAv/XlNgd3jaR4ZVE+rPwrIW83iyivNoJMDdTduq/3L1uXjqh1prcfL/VjFW1eH9lDjbdtTX02mq/kyb8dHV2fNvef273u1OeyD7qrV+vrtskDrJG+XAr3ck2EBVsann2o2zr/tlc33PTwcXr2aeu+cziCMQ9fvBesjCwN9eCNzMNx+5Yoc96bvHa/vM7jmAwa8mgZBZ4NP1pMn/O6/3zhyzEeLBXXSOh0MW9ceRDqcPcuqq7uoMI3lGo/c8lbb6EOtm/tvPOrmC5/VMjaCN21ONc0qH3Dcjv6My6pMcNbpa7qax83KNc9ajvW3XjeTA98at+N3TfPlvtYm0M8mw3Z7GjqPy+kzi8VLL2Sbde/45LwD3+nyS9PZF58+nH3ovnN90LVR+vxYWaAPwMdqOE6GMgvdwpWmw6eeemq0s7MzHOtR4Tei+QsvjAYPPviQgsulQB/pS/8zfeG+pk2cmX5AwG3n9HH+y4PnnmuaBx807rnmhRcuBy/aoJ/NHhLN5RV+HV7KuCRe5gsk2ym9+93w6Phbx1WcVT2MB1/aSOjpfiRET+OW9q4PbmnUl1H0oWvLPqNP3dbxeEhw+n+jnI5rysw+nQswNO5n6pc2s94gwbO2kftRw8AznHKXUk6OQ45zrX9tS+tufeBhXMpur8vAqJPATdpuPukVtPm1a9fmP/ADP6CfA+kfpEpL9cfjbIE35DiPcwd63W6/BRyQpQkrl+GlS5eGX/1q0zz8cNM4n07PyXlebC5fHg+AUx+PL+k90mk4VeAPPZQ4BHTDHdxdr3tb4wFfxj2vevKHN+0PPYSs8ypdDNxah4429QKfhNy67fLlS9Izde7gyZc2aCxntd7JTXp0sY7reGEP2uFJsg1qXNuTdmyNbNsyeZ8Lu9OecLcv98ty3N9aFuWaZz2mprNs5KSNkYetuj50dMuyL168qE9jel5km3HhtqqL+0/AffTRR3liOf4UdGMuQdOn3gInwQLtyX0SlO11PBkWUEAmEA+efPLJ4X333Rcr5On0/OLRRxWCLl6MOVc7ejnRgJ8/f35BO7jjMXk6Y+fret/hng/nC535gG9a8qaRAs3TgCPhyKGvYTQYXusL3LIok5Dz9NNPBz71VV4OFLSRTJ+6JAyd0Nnt6JLyHaS7dlMY13R1veZ96dJ4cO5cZ5fEm2oc0t7Wx/BVfYHbljUucJJteunSRdk8+2eb2Ra2Jfg5pjm21BMn4dRXk2UiBz57e+fn+/tPLrTC7QPuqrH6+om0QB+AT+SwnSylywqZuTZ88slmcN99Tw+Pjh6NgLm5+XTMQQWFxVNP0a+n+AH0CvZU88EPfrChDVzjmQ4+LtdW0Y+ni/8HRauQ9vTT+k3bxEu5CPogv18sOV1Aht54q8F6uY1al0yDzNT9UfF5akV+toFDf9Cp49CVzKuD1DrV0K68jobWTp/ExXa2BZDabm4DvkoH7OYp+0q/TbfMa3l86raap2ndF3KCLThsKStb9Cvc2mJ9+U6wwNLDDndCh/o+HD8L4Di5J6e/6Q/+4GAiJ3ykGDTR3+zSpUdn3LfT/WQpHhG4Ufsch5wBWVCBCaQ1jDJ/0IBvmg6OHZ4SbbaLPvDJacn6UwtkQyP6tj3rTcBLW5T///bOILltGIaikrvOSbKMD6BL+D4+j30JXSDbXiKrjHdpOyo+SFCwrHjSmSxq+2lGJgl+AuCTJpC8iOUv/KtARD/sVljlx7Q/VWQ9N8WXTgW/tKauNo0j9/d3rdNDSdHn/WRb0ZV1y/gxjlY5yGfEsIeftsfic95D5CSt+ET8ZZtzLn3/+tf3pnjiacutLdcwuEcOOU7NzXOyfwaiPP+Y/re1H8/P/cd2u/2ls947ft2UGwcE7oXA6lP4vWyOfdwOgfqWrIR1T/bjOPbDMGjsh96cu+41hl9q7c1psq/BF/f4i71RddW+1r+MIz8W0L5Sj7Clc25/1ZtaZ/FCpLGvM0MrHpf5NHnqvFj/0t8s0LzeDE3Vwrn+Yl/KobDTijlv5aF87VhhJLO/eXpb9lRihg+brZq8t3N2c+w5t9PpNNl1DR5e7PWA5s74gMCDEVj8cXqw3bPd/55ALszH47Hf7XbdOHqRttxHO4faWpOOWrynWsit1Zqxiz/+soe8as3vWE2Dta6ttjbOfqQN/2mtZVQeHKKo6GEibFqzpnWbrXN/T09PvQqVi+1D/sKHUrShz5lNDym+ZqnNY+tLr/1W7WBdz8nt8q1DcexY1Wri/Bg8D+Uge6yNnGRT/+1tmOySRaGV2XNXhwMCEIAABG6QgApzOjfW3xwOB/tl2OmH2nJOdVxsMaf2X079z+zQh+/sK9uqznOR3caeW7bH2ryuamu+ZR+LtS2H6sv22PJqMbLP0H0xnnxci3G2l7y3/X6vte163ODtRMoQgAAEIPCNBLwgmL9WGOwnGTcqFvm0wuHj3Kq/PLV2TZOKT16jmM1v+KrarFvr9wud+yr+5rwiH7M3fbJZ7MjX26aJXFbaFifmgpNi1OvSWH7jdcIVBCAAAQg8IoFaXKLAdGV89jbXio7m1k7jtmpPWhVa19TCeFWv6xD6T9rm75P5KLhX42itRfK9l/4j3gHsGQIQgAAE7pLAsrCtjZe2DEJz1+azlj4EIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQgUAn8BrzesdviE5ggAAAAASUVORK5CYII=",vC="univer-sheet-permission-user-dialog-wrapper",CC="univer-sheet-permission-user-dialog-search-input",IC="univer-sheet-permission-user-list",_C="univer-sheet-permission-user-list-empty",bC="univer-sheet-permission-user-list-empty-text",RC="univer-sheet-permission-user-item",EC="univer-sheet-permission-user-item-name",TC="univer-sheet-permission-split",wC="univer-sheet-permission-user-dialog-footer",yC="univer-sheet-permission-user-dialog-footer-confirm",MC="univer-sheet-permission-user-dialog-button",Ae={sheetPermissionUserDialogWrapper:vC,sheetPermissionUserDialogSearchInput:CC,sheetPermissionUserList:IC,sheetPermissionUserListEmpty:_C,sheetPermissionUserListEmptyText:bC,sheetPermissionUserItem:RC,sheetPermissionUserItemName:EC,sheetPermissionSplit:TC,sheetPermissionUserDialogFooter:wC,sheetPermissionUserDialogFooterConfirm:yC,sheetPermissionUserDialogButton:MC},PC=()=>{const[n,r]=V.useState(""),e=I.useDependency(a.LocaleService),t=I.useDependency(I.IDialogService),o=I.useDependency(wt),s=o.userList.filter(u=>{var h;return((h=u.subject)==null?void 0:h.name.toLocaleLowerCase().includes(n.toLocaleLowerCase()))&&u.role===ke.Editor}),[l,c]=V.useState(o.selectUserList),d=u=>{if((l==null?void 0:l.findIndex(g=>{var S,f;return((S=g.subject)==null?void 0:S.userID)===((f=u.subject)==null?void 0:f.userID)}))===-1){const g={...u};c([...l,g])}else{const g=l.filter(S=>{var f,p;return((f=S.subject)==null?void 0:f.userID)!==((p=u.subject)==null?void 0:p.userID)});c(g)}};return _.jsxs("div",{className:Ae.sheetPermissionUserDialogWrapper,children:[_.jsx("div",{className:Ae.sheetPermissionUserDialogSearch,children:_.jsx(Z.Input,{placeholder:e.t("permission.dialog.search"),className:Ae.sheetPermissionUserDialogSearchInput,value:n,onChange:u=>r(u)})}),_.jsx("div",{className:Ae.sheetPermissionUserList,children:(s==null?void 0:s.length)>0?_.jsx(_.Fragment,{children:s==null?void 0:s.map(u=>{var h,g,S;return _.jsxs("div",{className:Ae.sheetPermissionUserItem,onClick:()=>d(u),children:[_.jsx(Z.Avatar,{src:(h=u.subject)==null?void 0:h.avatar,size:24}),_.jsx("div",{className:Ae.sheetPermissionUserItemName,children:(g=u.subject)==null?void 0:g.name}),(l==null?void 0:l.findIndex(f=>{var p,v;return((p=f.subject)==null?void 0:p.userID)===((v=u.subject)==null?void 0:v.userID)}))!==-1&&_.jsx("div",{children:_.jsx(ut,{})})]},(S=u.subject)==null?void 0:S.userID)})}):_.jsxs("div",{className:Ae.sheetPermissionUserListEmpty,children:[_.jsx("img",{width:240,height:120,src:ad,alt:""}),_.jsx("p",{className:Ae.sheetPermissionUserListEmptyText,children:e.t("permission.dialog.userEmpty")})]})}),_.jsx("div",{className:Ae.sheetPermissionSplit}),_.jsxs("div",{className:Ae.sheetPermissionUserDialogFooter,children:[_.jsx(Z.Button,{className:Ae.sheetPermissionUserDialogButton,onClick:()=>t.close(lr),children:e.t("permission.button.cancel")}),_.jsx(Z.Button,{type:"primary",onClick:()=>{o.setSelectUserList(l),t.close(lr)},className:Te(Ae.sheetPermissionUserDialogFooterConfirm,Ae.sheetPermissionUserDialogButton),children:e.t("permission.button.confirm")})]})]})},OC="univer-sheet-permission-alert-dialog",xC="univer-sheet-permission-alert-dialog-title",AC="univer-sheet-permission-alert-dialog-button",Pi={sheetPermissionAlertDialog:OC,sheetPermissionAlertDialogTitle:xC,sheetPermissionAlertDialogButton:AC},kC=({errorMsg:n})=>{const r=I.useDependency(a.LocaleService),e=I.useDependency(I.IDialogService);return _.jsxs("div",{className:Pi.sheetPermissionAlertDialog,children:[_.jsx("h1",{className:Pi.sheetPermissionAlertDialogTitle,children:r.t("permission.dialog.alert")}),_.jsx("p",{children:n||r.t("permission.dialog.alertContent")}),_.jsx("div",{className:Pi.sheetPermissionAlertDialogButton,children:_.jsx(Z.Button,{type:"primary",onClick:()=>{e.close(es)},children:r.t("permission.button.confirm")})})]})},ld="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNCIgaGVpZ2h0PSI0IiB2aWV3Qm94PSIwIDAgNCA0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWFzayBpZD0ibWFzazBfNzU5XzExMDgiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjRDZEOEQ5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF83NTlfMTEwOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTS0zLjY0MDAyIDMuNDQxNDFMMi4wNzM5NyAtMi4yNzI1OEwyLjc4MTA4IC0xLjU2NTQ4TC0yLjkzMjkxIDQuMTQ4NTJMLTMuNjQwMDIgMy40NDE0MVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0tMS41MTg2OCA1LjU2Mjc1TDQuMTk1MzEgLTAuMTUxMjQ1TDQuOTAyNDIgMC41NTU4NjJMLTAuODExNTc1IDYuMjY5ODZMLTEuNTE4NjggNS41NjI3NVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjYwMjY1NiA3LjY4NDAzTDYuMzE2NjUgMS45NzAwM0w3LjAyMzc2IDIuNjc3MTRMMS4zMDk3NiA4LjM5MTEzTDAuNjAyNjU2IDcuNjg0MDNaIiBmaWxsPSIjRDZEOERCIi8+CjwvZz4KPC9zdmc+",cd="RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY",dd="RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY",NC=25,DC=80;class ud extends w.SheetExtension{constructor(){super();E(this,"_pattern",null);E(this,"_img",new Image);E(this,"renderCache",new Set);this._img.src=ld}clearCache(){this.renderCache.clear()}draw(e,t,o){const{worksheet:i}=o;i&&(e.save(),this._pattern||(this._pattern=e.createPattern(this._img,"repeat")),this.renderCache.clear(),a.Range.foreach(o.rowColumnSegment,(s,l)=>{if(!i.getRowVisible(s)||!i.getColVisible(l))return;const{selectionProtection:c=[]}=i.getCell(s,l)||{};this._pattern&&(e.fillStyle=this._pattern,c.forEach(d=>{if(d.ruleId&&this.shouldRender(d)){if(this.renderCache.has(d.ruleId))return;this.renderCache.add(d.ruleId),d.ranges.forEach(u=>{const h=o.getCellWithCoordByIndex(u.startRow,u.startColumn,!1),g=o.getCellWithCoordByIndex(u.endRow,u.endColumn,!1);e.fillRect(h.startX,h.startY,g.endX-h.startX,g.endY-h.startY)})}}))}),e.restore())}}class HC extends ud{constructor(){super();E(this,"uKey",cd);E(this,"Z_INDEX",NC)}shouldRender(e){return(e==null?void 0:e[ne.View])!==!1}}class VC extends ud{constructor(){super();E(this,"uKey",dd);E(this,"Z_INDEX",DC)}shouldRender(e){return(e==null?void 0:e[ne.View])===!1}}const hd="worksheet-protection",Xa=25,WC=80;class UC extends w.SheetExtension{constructor(){super();E(this,"uKey",hd);E(this,"Z_INDEX",Xa);E(this,"_pattern");E(this,"_img",new Image);this._img.src=ld}draw(e,t,o){const{worksheet:i}=o;if(!i)return!1;e.save(),this._pattern||(this._pattern=e.createPattern(this._img,"repeat"));const{startRow:s,startColumn:l,endRow:c,endColumn:d}=o.rowColumnSegment,u=o.getCellWithCoordByIndex(s,l,!1),h=o.getCellWithCoordByIndex(c,d,!1),{hasWorksheetRule:g=!1,selectionProtection:S=[]}=i.getCell(s,l)||{};if(this._pattern){if(S.length>0){const f=S[0];(f==null?void 0:f[ne.View])?this.setZIndex(Xa):this.setZIndex(WC)}e.fillStyle=this._pattern,g&&e.fillRect(u.startX,u.startY,h.endX-u.startX,h.endY-u.startY),e.restore()}}setZIndex(e){this.Z_INDEX=e}}const LC=n=>{const{editState:r,onEditStateChange:e,viewState:t,onViewStateChange:o,permissionId:i}=n,s=I.useDependency(a.LocaleService),l=I.useDependency(I.IDialogService),c=I.useDependency(a.IAuthzIoService),d=I.useDependency(wt),u=I.useDependency(a.UserManagerService),h=I.useDependency(a.IUniverInstanceService),g=I.useObservable(d.selectUserList$,d.selectUserList),S=h.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),f=S==null?void 0:S.getActiveSheet();if(!S||!f)return null;const p=S.getUnitId(),v=async()=>{const C=await c.listCollaborators({objectID:p,unitID:p}),b=u.getCurrentUser();d.setCanEditUserList(C.filter(R=>{var T;return((T=R.subject)==null?void 0:T.userID)!==b.userID})),l.open({id:lr,title:{title:""},children:{label:Zl},width:280,destroyOnClose:!0,onClose:()=>l.close(lr),className:"sheet-permission-user-dialog"})};return V.useEffect(()=>{i?(async()=>{const R=(await c.listCollaborators({objectID:i,unitID:p})).filter(T=>T.role===ke.Editor);R.length>0&&e(m.EditStateEnum.DesignedUserCanEdit),d.setSelectUserList(R),d.setOldCollaboratorList(R)})():(d.setSelectUserList([]),d.setOldCollaboratorList([]))},[]),_.jsxs(_.Fragment,{children:[_.jsx(Z.FormLayout,{className:pe.sheetPermissionPanelTitle,label:s.t("permission.panel.editPermission"),children:_.jsxs(Z.RadioGroup,{value:r,onChange:C=>e(C),className:pe.radioGroupVertical,children:[_.jsx(Z.Radio,{value:m.EditStateEnum.OnlyMe,children:_.jsx("span",{className:pe.text,children:s.t("permission.panel.onlyICanEdit")})}),_.jsx(Z.Radio,{value:m.EditStateEnum.DesignedUserCanEdit,children:_.jsx("span",{className:pe.text,children:s.t("permission.panel.designedUserCanEdit")})})]})}),r===m.EditStateEnum.DesignedUserCanEdit&&_.jsxs("div",{className:pe.sheetPermissionDesignPersonPanel,children:[_.jsxs("div",{className:pe.sheetPermissionDesignPersonPanelHeader,children:[_.jsx("span",{children:s.t("permission.panel.designedPerson")}),_.jsx("span",{className:pe.sheetPermissionDesignPersonPanelHeaderAdd,onClick:v,children:s.t("permission.panel.addPerson")})]}),_.jsx("div",{className:pe.sheetPermissionDesignPersonPanelSplit}),_.jsx("div",{className:pe.sheetPermissionDesignPersonPanelContent,children:(g==null?void 0:g.length)>0?g.map(C=>{var b,R,T;return _.jsxs("div",{className:pe.sheetPermissionDesignPersonPanelContentItem,children:[_.jsx(Z.Avatar,{size:24,src:(b=C.subject)==null?void 0:b.avatar}),_.jsx("span",{className:pe.sheetPermissionDesignPersonPanelContentItemName,children:(R=C.subject)==null?void 0:R.name}),_.jsx(Z.Select,{className:pe.sheetPermissionDesignPersonPanelContentItemSelect,value:"edit",onChange:M=>{M==="delete"&&d.setSelectUserList(g.filter(y=>{var P,x;return((P=y.subject)==null?void 0:P.userID)!==((x=C.subject)==null?void 0:x.userID)}))},options:[{label:`${s.t("permission.panel.canEdit")}`,value:"edit"},{label:`${s.t("permission.panel.delete")}`,value:"delete"}]})]},(T=C.subject)==null?void 0:T.userID)}):_.jsxs("div",{className:pe.sheetPermissionUserListEmpty,children:[_.jsx("img",{width:240,height:120,src:ad,alt:""}),_.jsx("p",{className:pe.sheetPermissionUserListEmptyText,children:s.t("permission.dialog.userEmpty")})]})})]}),_.jsx(Z.FormLayout,{className:pe.sheetPermissionPanelTitle,label:s.t("permission.panel.viewPermission"),children:_.jsxs(Z.RadioGroup,{value:t,onChange:C=>o(C),className:pe.radioGroupVertical,children:[_.jsx(Z.Radio,{value:m.ViewStateEnum.OthersCanView,children:_.jsx("span",{className:pe.text,children:s.t("permission.panel.othersCanView")})}),_.jsx(Z.Radio,{value:m.ViewStateEnum.NoOneElseCanView,children:_.jsx("span",{className:pe.text,children:s.t("permission.panel.noOneElseCanView")})})]})})]})};var BC=Object.getOwnPropertyDescriptor,js=(n,r,e,t)=>{for(var o=t>1?void 0:t?BC(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},We=(n,r)=>(e,t)=>r(e,t,n);let ao=class extends a.Disposable{constructor(n,r,e){super(),this._injector=n,this._componentManager=r,this._uiPartsService=e,this._init()}_init(){this._initComponents(),this._initUiPartComponents()}_initComponents(){[[ql,Fl],[ug,jr],[hg,Ns],[mg,ut],[Ql,ks],[oo,iC],[Zl,PC],[Kl,pC],[id,kC]].forEach(([n,r])=>{this.disposeWithMe(this._componentManager.register(n,r))})}_initUiPartComponents(){var e;const r=this._injector.get(a.IConfigService).getConfig(Gt);(e=r==null?void 0:r.customComponents)!=null&&e.has(ar)||this.disposeWithMe(this._uiPartsService.registerComponent(ar,()=>I.connectInjector(LC,this._injector)))}};ao=js([We(0,a.Inject(a.Injector)),We(1,a.Inject(I.ComponentManager)),We(2,a.Inject(I.IUIPartsService))],ao);let Cr=class extends a.Disposable{constructor(r,e,t,o,i){var l;super();E(this,"_rangeProtectionCanViewRenderExtension",new HC);E(this,"_rangeProtectionCanNotViewRenderExtension",new VC);this._context=r,this._rangeProtectionRuleModel=e,this._sheetSkeletonManagerService=t,this._permissionService=o,this._configService=i;const s=this._configService.getConfig(Gt);(l=s==null?void 0:s.customComponents)!=null&&l.has(Ws)||(this._initRender(),this._initSkeleton(),this.disposeWithMe(this._rangeProtectionRuleModel.ruleChange$.subscribe(c=>{var d,u;((d=c.oldRule)!=null&&d.id&&this._rangeProtectionCanViewRenderExtension.renderCache.has(c.oldRule.id)||this._rangeProtectionCanViewRenderExtension.renderCache.has(c.rule.id))&&this._rangeProtectionCanViewRenderExtension.clearCache(),((u=c.oldRule)!=null&&u.id&&this._rangeProtectionCanNotViewRenderExtension.renderCache.has(c.oldRule.id)||this._rangeProtectionCanNotViewRenderExtension.renderCache.has(c.rule.id))&&this._rangeProtectionCanNotViewRenderExtension.clearCache()})))}_initRender(){const r=this._context.mainComponent;r&&(r.getExtensionByKey(cd)||r.register(this._rangeProtectionCanViewRenderExtension),r.getExtensionByKey(dd)||r.register(this._rangeProtectionCanNotViewRenderExtension))}_initSkeleton(){const r=()=>{var e;this._sheetSkeletonManagerService.reCalculate(),(e=this._context.mainComponent)==null||e.makeDirty()};this.disposeWithMe(O.merge(this._permissionService.permissionPointUpdate$.pipe(O.throttleTime(300,void 0,{trailing:!0})),this._rangeProtectionRuleModel.rangeRuleInitStateChange$,this._rangeProtectionRuleModel.ruleChange$).pipe().subscribe(r))}};Cr=js([We(1,a.Inject(m.RangeProtectionRuleModel)),We(2,a.Inject(exports.SheetSkeletonManagerService)),We(3,a.IPermissionService),We(4,a.IConfigService)],Cr);let Ir=class extends a.Disposable{constructor(r,e,t,o,i,s){var c;super();E(this,"_worksheetProtectionRenderExtension",new UC);this._context=r,this._renderManagerService=e,this._univerInstanceService=t,this._sheetSkeletonManagerService=o,this._worksheetProtectionRuleModel=i,this._configService=s;const l=this._configService.getConfig(Gt);(c=l==null?void 0:l.customComponents)!=null&&c.has(Ws)||(this._initRender(),this._initSkeleton())}_initRender(){const r=this._context.unitId,e=r&&this._renderManagerService.getRenderById(r),t=e&&e.mainComponent;t&&(t.getExtensionByKey(hd)||t.register(this._worksheetProtectionRenderExtension))}_initSkeleton(){const r=()=>{var e;this._sheetSkeletonManagerService.reCalculate(),(e=this._context.mainComponent)==null||e.makeDirty()};this.disposeWithMe(O.merge(this._worksheetProtectionRuleModel.worksheetRuleInitStateChange$).pipe().subscribe(r))}};Ir=js([We(1,a.Inject(w.IRenderManagerService)),We(2,a.Inject(a.IUniverInstanceService)),We(3,a.Inject(exports.SheetSkeletonManagerService)),We(4,a.Inject(m.WorksheetProtectionRuleModel)),We(5,a.Inject(a.IConfigService))],Ir);var FC=Object.getOwnPropertyDescriptor,jC=(n,r,e,t)=>{for(var o=t>1?void 0:t?FC(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Oi=(n,r)=>(e,t)=>r(e,t,n);let _r=class extends a.Disposable{constructor(n,r,e,t){super(),this._context=n,this._formatPainterService=r,this._selectionRenderService=e,this._commandService=t,this._initialize()}_initialize(){this._bindFormatPainterStatus(),this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._selectionRenderService.selectionMoveEnd$.subscribe(n=>{var r;if(this._formatPainterService.getStatus()!==Ne.OFF){const{rangeWithCoord:e}=n[n.length-1];this._commandService.executeCommand(Co.id,{unitId:this._context.unitId,subUnitId:((r=this._context.unit.getActiveSheet())==null?void 0:r.getSheetId())||"",range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn}}),this._formatPainterService.getStatus()===Ne.ONCE&&this._commandService.executeCommand(Dn.id)}}))}_bindFormatPainterStatus(){this.disposeWithMe(a.toDisposable(this._formatPainterService.status$.subscribe(n=>{const r=this._context.scene;r&&(n!==Ne.OFF?r.setDefaultCursor(w.CURSOR_TYPE.CELL):r.setDefaultCursor(w.CURSOR_TYPE.DEFAULT))})))}};_r=jC([Oi(1,et),Oi(2,ve),Oi(3,a.ICommandService)],_r);var zC=Object.getOwnPropertyDescriptor,XC=(n,r,e,t)=>{for(var o=t>1?void 0:t?zC(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Xn=(n,r)=>(e,t)=>r(e,t,n);let ts=class extends a.Disposable{constructor(n,r,e,t,o,i){super(),this._context=n,this._layoutService=r,this._contextMenuService=e,this._selectionManagerService=t,this._selectionRenderService=o,this._sheetSkeletonManagerService=i,this._init()}_init(){let n=!1;this.disposeWithMe(this._selectionManagerService.selectionMoveStart$.subscribe(()=>n=!0)),this.disposeWithMe(this._selectionManagerService.selectionMoveEnd$.subscribe(r=>{const e=this._sheetSkeletonManagerService.getCurrentParam().skeleton;if(!e||!r||n===!1)return;n=!1;const t=r[0];if(!t.primary)return;const o=Me(t,e),i=t.range.rangeType,{scene:s}=this._context,l=s.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),c=(l==null?void 0:l.viewportScrollX)||0,d=(l==null?void 0:l.viewportScrollY)||0;let u=0,h=0;const g=e.rowHeaderWidth,S=this._layoutService.getContentElement().getBoundingClientRect();switch(i){case a.RANGE_TYPE.NORMAL:u=o.rangeWithCoord.startX+S.left-c,h=o.rangeWithCoord.endY+S.top-d;break;case a.RANGE_TYPE.COLUMN:u=o.rangeWithCoord.startX+S.left-c,h=Math.min(S.height/2,o.rangeWithCoord.endY)+40;break;case a.RANGE_TYPE.ROW:u=(S.width-g)/2+20,h=o.rangeWithCoord.endY+S.top-d;break;case a.RANGE_TYPE.ALL:u=o.rangeWithCoord.startX+S.left,h=o.rangeWithCoord.startY+S.top;break;default:u=o.rangeWithCoord.startX+S.left-c,h=o.rangeWithCoord.endY+S.top-d;break}u=a.Tools.clamp(u,g,S.width),h=a.Tools.clamp(h,S.top,S.height),this._contextMenuService.triggerContextMenu({clientX:u,clientY:h,preventDefault:()=>{},stopPropagation:()=>{}},I.ContextMenuPosition.MAIN_AREA)}))}};ts=XC([Xn(1,I.ILayoutService),Xn(2,I.IContextMenuService),Xn(3,a.Inject(m.SheetsSelectionsService)),Xn(4,ve),Xn(5,a.Inject(exports.SheetSkeletonManagerService))],ts);var YC=Object.getOwnPropertyDescriptor,GC=(n,r,e,t)=>{for(var o=t>1?void 0:t?YC(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},un=(n,r)=>(e,t)=>r(e,t,n);const ZC=[xe.id,$e.id];let ns=class extends a.Disposable{constructor(n,r,e,t,o,i,s){super(),this._context=n,this._sheetSkeletonManagerService=r,this._commandService=e,this._renderManagerService=t,this._selectionManagerService=o,this._scrollManagerService=i,this._univerInstanceService=s,this._init()}scrollToRange(n){let{endRow:r,endColumn:e,startColumn:t,startRow:o}=n;const i=this._getViewportBounding();if(n.rangeType===a.RANGE_TYPE.ROW?(t=0,e=0):n.rangeType===a.RANGE_TYPE.COLUMN&&(o=0,r=0),i){const s=i.startRow>r?o:r,l=i.startColumn>e?t:e;return this._scrollToCell(s,l)}else return this._scrollToCell(o,t)}_init(){this._initCommandListener(),this._initScrollEventListener(),this._initPointerScrollEvent(),this._initSkeletonListener()}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(ZC.includes(n.id))this._scrollToSelection();else if(n.id===m.ScrollToCellOperation.id){const r=n.params.range;this.scrollToRange(r)}else if(n.id===De.id){const r=n.params;this._scrollToSelectionForExpand(r)}}))}_scrollToSelectionForExpand(n){setTimeout(()=>{const r=this._selectionManagerService.getCurrentLastSelection();if(r==null)return;const{startRow:e,startColumn:t,endRow:o,endColumn:i}=r.range,s=this._getViewportBounding();if(s==null)return;const{startRow:l,startColumn:c,endRow:d,endColumn:u}=s;let h=0,g=0;e>l?h=o:o<d?h=e:h=l,t>c?g=i:i<u?g=t:g=c,n.direction===a.Direction.DOWN?h=o:n.direction===a.Direction.UP?h=e:n.direction===a.Direction.RIGHT?g=i:n.direction===a.Direction.LEFT&&(g=t),this._scrollToCell(h,g)},0)}_getFreeze(){var r;const n=(r=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:r.skeleton.getWorksheetConfig();if(n!=null)return n.freeze}_initScrollEventListener(){const{scene:n}=this._context;if(n==null)return;const r=n.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);r&&(this.disposeWithMe(a.toDisposable(this._scrollManagerService.rawScrollInfo$.subscribe(e=>{var g;if(e==null){r.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0});return}const t=(g=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:g.skeleton;if(!t)return;const{sheetViewStartRow:o,sheetViewStartColumn:i,offsetX:s,offsetY:l}=e,{startX:c,startY:d}=t.getCellWithCoordByIndex(o,i,!1),u=c+s,h=d+l;r.scrollToViewportPos({viewportScrollX:u,viewportScrollY:h})}))),this.disposeWithMe(r.onScrollAfter$.subscribeEvent(e=>{var f;if(!e)return;const t=(f=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:f.skeleton;if(t==null)return;const o=this._getSheetObject();if(t==null||o==null)return;const{viewportScrollX:i,viewportScrollY:s,scrollX:l,scrollY:c}=e,{row:d,column:u,rowOffset:h,columnOffset:g}=t.getOffsetRelativeToRowCol(i,s),S={sheetViewStartRow:d,sheetViewStartColumn:u,offsetX:g,offsetY:h,viewportScrollX:i,viewportScrollY:s,scrollX:l,scrollY:c};this._scrollManagerService.setValidScrollStateToCurrSheet(S),this._scrollManagerService.validViewportScrollInfo$.next({...S,scrollX:l,scrollY:c,viewportScrollX:i,viewportScrollY:s})})),this.disposeWithMe(r.onScrollByBar$.subscribeEvent(e=>{var g;const t=(g=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:g.skeleton;if(t==null||e.isTrigger===!1)return;const o=this._getSheetObject();if(t==null||o==null)return;const{viewportScrollX:i=0,viewportScrollY:s=0}=e,l=this._getFreeze(),{row:c,column:d,rowOffset:u,columnOffset:h}=t.getOffsetRelativeToRowCol(i,s);this._commandService.executeCommand(ze.id,{sheetViewStartRow:c+((l==null?void 0:l.ySplit)||0),sheetViewStartColumn:d+((l==null?void 0:l.xSplit)||0),offsetX:h,offsetY:u})})))}_initSkeletonListener(){this.disposeWithMe(a.toDisposable(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(n=>{if(n==null)return;const r={unitId:n.unitId,sheetId:n.sheetId};this._scrollManagerService.setSearchParam(r);const e=this._getSheetObject();if(!e)return;const o=e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),i=this._scrollManagerService.getScrollStateByParam(r),{viewportScrollX:s,viewportScrollY:l}=this._scrollManagerService.calcViewportScrollFromRowColOffset(i);o&&(i?(o.viewportScrollX=s,o.viewportScrollY=l):(o.viewportScrollX=0,o.viewportScrollY=0),this._updateSceneSize(n))})))}_initPointerScrollEvent(){const n=this._getSheetObject();if(!n)return;const r=this._scrollManagerService,e=n.scene,t=n.spreadsheet,o=e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),i={x:0,y:0};let s=!1;const l={x:0,y:0},c=.95;let d=null;const u=()=>{if(!o)return;l.x*=c,l.y*=c,i.x+=l.x,i.y+=l.y;const g=l.x,S=l.y;(S!==0||g!==0)&&this._commandService.executeCommand(wn.id,{offsetY:S,offsetX:g}),Math.abs(l.x)>1||Math.abs(l.y)>1?d=requestAnimationFrame(u):d=null},h=()=>{cancelAnimationFrame(d),d=null};t.onPointerDown$.subscribeEvent((g,S)=>{h(),o&&(i.x=g.offsetX,i.y=g.offsetY,s=!0,S.stopPropagation())}),t.onPointerMove$.subscribeEvent((g,S)=>{if(!s||!o)return;const f=g,p=-(f.offsetX-i.x),v=-(f.offsetY-i.y);l.x=-(f.offsetX-i.x),l.y=-(f.offsetY-i.y);const C=p,b=v;(p!==0||v!==0)&&(b!==0||C!==0)&&this._commandService.executeCommand(wn.id,{offsetY:b,offsetX:C}),r.getCurrentScrollState(),i.x=f.offsetX,i.y=f.offsetY,S.stopPropagation()}),t.onPointerUp$.subscribeEvent(g=>{s=!1,d=requestAnimationFrame(u)}),t.onPointerLeave$.subscribeEvent(()=>{s=!1}),t.onPointerOut$.subscribeEvent(()=>{s=!1}),e.onPointerOut$.subscribeEvent(()=>{s=!1}),e.onPointerCancel$.subscribeEvent(()=>{s=!1})}_updateSceneSize(n){var h;if(n==null)return;const{unitId:r}=this._context,{skeleton:e}=n,t=(h=this._renderManagerService.getRenderById(r))==null?void 0:h.scene;if(e==null||t==null)return;const{rowTotalHeight:o,columnTotalWidth:i,rowHeaderWidthAndMarginLeft:s,columnHeaderHeightAndMarginTop:l}=e,d=this._context.unit.getActiveSheet();if(!d)return;const u=d.getZoomRatio()||1;t==null||t.setScaleValueOnly(u,u),t==null||t.transformByState({width:s+i,height:l+o})}_getSheetObject(){return Ge(this._context.unit,this._context)}_scrollToSelectionByDirection(n){const r=this._getViewportBounding();if(r==null)return!1;const{startRow:e,startColumn:t,endRow:o,endColumn:i}=r;let s=0,l=0;const{startRow:c,startColumn:d,endRow:u,endColumn:h}=n;c>=e&&(s=u),u<=o&&(s=c),d>=t&&(l=h),h<=i&&(l=d),this._scrollToCell(s,l)}_scrollToSelection(n=!0){const r=this._selectionManagerService.getCurrentLastSelection();if(r==null)return;const{startRow:e,startColumn:t,actualRow:o,actualColumn:i}=r.primary,s=n?o:e,l=n?i:t;this._scrollToCell(s,l)}_getViewportBounding(){var t,o;const n=(t=this._getSheetObject())==null?void 0:t.scene;if(n==null)return;const r=n.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(r==null)return;const e=(o=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:o.skeleton;if(e!=null)return e.getRangeByViewport(r.calcViewportInfo())}_scrollToCell(n,r){var M,y,P,x;const{rowHeightAccumulation:e,columnWidthAccumulation:t}=(y=(M=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:M.skeleton)!=null?y:{};if(e==null||t==null)return!1;const o=(P=this._getSheetObject())==null?void 0:P.scene;if(o==null)return!1;const i=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(i==null||((x=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:x.skeleton)==null)return!1;const l=this._context.unit.getActiveSheet();if(!l)return!1;const{startColumn:c,startRow:d,ySplit:u,xSplit:h}=l.getFreeze(),g=this._getViewportBounding();if(g==null)return!1;const{startRow:S,startColumn:f,endRow:p,endColumn:v}=g;let C,b;if(n>=d&&r>=c-h&&(n<=S&&(C=n),n>=p)){const A=e[n]-i.height;for(let k=S;k<=n;k++)if(e[k]>=A){C=k+1;break}}if(r>=c&&n>=d-u&&(r<=f&&(b=r),r>=v)){const A=t[r]-i.width;for(let k=f;k<=r;k++)if(t[k]>=A){b=k+1;break}}if(C===void 0&&b===void 0)return!1;const{offsetX:R,offsetY:T}=this._scrollManagerService.getCurrentScrollState()||{};return this._commandService.syncExecuteCommand(ze.id,{sheetViewStartRow:C,sheetViewStartColumn:b,offsetX:b===void 0?R:0,offsetY:C===void 0?T:0})}};ns=GC([un(1,a.Inject(exports.SheetSkeletonManagerService)),un(2,a.ICommandService),un(3,w.IRenderManagerService),un(4,a.Inject(m.SheetsSelectionsService)),un(5,a.Inject(exports.SheetScrollManagerService)),un(6,a.IUniverInstanceService)],ns);const KC=a.createInterceptorKey("PRINTING_RANGE"),qC=a.createInterceptorKey("PRINTING_COMPONENT_COLLECT");class zs extends a.Disposable{constructor(){super();E(this,"interceptor",new a.InterceptorManager({PRINTING_RANGE:KC,PRINTING_COMPONENT_COLLECT:qC}));this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().PRINTING_RANGE,{priority:-1,handler:e=>e})),this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,{priority:-1,handler:e=>e}))}}class QC extends lo{constructor(e,t,o,i){super(e,t,o,i);E(this,"_fillControlTopLeft");E(this,"_fillControlBottomRight");E(this,"_rangeType",a.RANGE_TYPE.NORMAL);this._scene=e,this._zIndex=t,this._themeService=o,this._rangeType=(i==null?void 0:i.rangeType)||a.RANGE_TYPE.NORMAL,this.initControlPoints()}initControlPoints(){const e=this.currentStyle,t=e.expandCornerSize||0,o=(e.expandCornerSize||0)/4,i=e.autofillStrokeWidth||0,s=e.stroke,l=e.autofillStroke,c=this.zIndex;this._fillControlTopLeft=new w.Rect(Ui.fillTopLeft+c,{zIndex:c+2,width:t,height:t,radius:t/2,visualWidth:o,visualHeight:o,strokeWidth:i}),this._fillControlBottomRight=new w.Rect(Ui.fillBottomRight+c,{zIndex:c+2,width:t,height:t,radius:t/2,visualHeight:o,visualWidth:o,strokeWidth:i});const d={fill:s,stroke:l,strokeScaleEnabled:!1};this._fillControlTopLeft.setProps({...d}),this._fillControlBottomRight.setProps({...d});const u=[this._fillControlTopLeft,this._fillControlBottomRight];switch(this._rangeType){case a.RANGE_TYPE.ROW:this.rowHeaderGroup.addObjects(...u);break;case a.RANGE_TYPE.COLUMN:this.columnHeaderGroup.addObjects(...u);break;case a.RANGE_TYPE.NORMAL:this.selectionShapeGroup.addObjects(...u)}this.getScene().addObjects(u,tr)}get fillControlTopLeft(){return this._fillControlTopLeft}set fillControlTopLeft(e){this._fillControlTopLeft=e}get fillControlBottomRight(){return this._fillControlBottomRight}set fillControlBottomRight(e){this._fillControlBottomRight=e}get rangeType(){return this._rangeType}set rangeType(e){this._rangeType=e}dispose(){var e,t;(e=this._fillControlBottomRight)==null||e.dispose(),(t=this._fillControlTopLeft)==null||t.dispose(),super.dispose()}_updateLayoutOfSelectionControl(e){var i,s;super._updateLayoutOfSelectionControl(e);const t=this.currentStyle;e==null&&(e=t);const{widgets:o=t.widgets}=e;if(this.currentStyle=e,this._enableAutoFill===!0&&!super._hasWidgets(o)){const{viewportScrollX:l,viewportScrollY:c}=this.getViewportMainScrollInfo(),{endX:d,endY:u}=this.selectionModel;this.transformControlPoint(l,c,d,u),this.fillControlTopLeft.show(),this.fillControlBottomRight.show()}else(i=this.fillControlTopLeft)==null||i.hide(),(s=this.fillControlBottomRight)==null||s.hide()}getViewportMainScrollInfo(){const e=this.getScene().getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);return{viewportScrollX:(e==null?void 0:e.viewportScrollX)||0,viewportScrollY:(e==null?void 0:e.viewportScrollY)||0,width:(e==null?void 0:e.width)||0,height:(e==null?void 0:e.height)||0}}transformControlPoint(e=0,t=0,o=0,i=0){const s=this.currentStyle,l=this.selectionModel.rangeType,c=s.expandCornerSize,{startX:d,startY:u,endX:h,endY:g}=this.selectionModel,S=this.getViewportMainScrollInfo(),f=S.width,p=S.height;switch(l){case a.RANGE_TYPE.NORMAL:this.fillControlTopLeft.transformByState({left:-c/2,top:-c/2}),this.fillControlBottomRight.transformByState({left:h-d-c/2,top:g-u-c/2});break;case a.RANGE_TYPE.ROW:{const v=Math.min(f/2+e,o),C=-c/2+v;this.fillControlTopLeft.transformByState({left:C,top:-c/2}),this.fillControlBottomRight.transformByState({left:C,top:-c/2+g-u})}break;case a.RANGE_TYPE.COLUMN:{const v=Math.min(+p/2+t,i),C=-c/2+v;this.fillControlTopLeft.transformByState({left:-c/2,top:C}),this.fillControlBottomRight.transformByState({left:-c/2+h-d,top:C})}break;default:console.error("unknown range type")}}}var JC=Object.getOwnPropertyDescriptor,$C=(n,r,e,t)=>{for(var o=t>1?void 0:t?JC(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},rt=(n,r)=>(e,t)=>r(e,t,n);let br=class extends gs{constructor(r,e,t,o,i,s,l,c,d,u){super(e,t,o,s,d);E(this,"_workbookSelections");E(this,"_renderDisposable",null);E(this,"_expandingSelection",!1);E(this,"_selectionControls",[]);E(this,"expandingControlMode","bottom-right");this._context=r,this._logService=l,this._commandService=c,this._contextService=d,this._scrollManagerService=u,this._workbookSelections=i.getWorkbookSelections(this._context.unitId),this._init()}_init(){const r=this._getSheetObject();this._initEventListeners(r),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._updateControlPointWhenScrolling()}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(r=>{if(r==null){this._logService.error("[SelectionRenderService]: should not receive null!");return}const e=this._context.unitId,{sheetId:t,skeleton:o}=r,{scene:i}=this._context,s=i.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._changeRuntime(o,i,s),this._workbookSelections.getCurrentLastSelection()||this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:e,subUnitId:t,selections:[kr(o)]})}))}_initSelectionChangeListener(){}_initEventListeners(r){const{spreadsheetRowHeader:e,spreadsheetColumnHeader:t,spreadsheet:o,spreadsheetLeftTopPlaceholder:i}=r,{scene:s}=this._context;this._initSpreadsheetEvent(r),this.disposeWithMe(e==null?void 0:e.onPointerUp$.subscribeEvent((l,c)=>{if(this._normalSelectionDisabled())return;const d=this._sheetSkeletonManagerService.getCurrentParam().skeleton,{row:u}=qe(l.offsetX,l.offsetY,s,d);xl(this._workbookSelections.getCurrentSelections(),u)||(this.createNewSelection(l,(o.zIndex||1)+1,a.RANGE_TYPE.ROW,this._getActiveViewport(l)),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()))})),this.disposeWithMe(t==null?void 0:t.onPointerUp$.subscribeEvent((l,c)=>{if(this._normalSelectionDisabled())return;const d=this._sheetSkeletonManagerService.getCurrentParam().skeleton,{column:u}=qe(l.offsetX,l.offsetY,s,d);Al(this._workbookSelections.getCurrentSelections(),u)||(this.createNewSelection(l,(o.zIndex||1)+1,a.RANGE_TYPE.COLUMN,this._getActiveViewport(l)),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()))})),this.disposeWithMe(i==null?void 0:i.onPointerUp$.subscribeEvent((l,c)=>{if(this._normalSelectionDisabled())return;this._reset();const d=this._sheetSkeletonManagerService.getCurrentParam().skeleton,u=Ss(d);this._addSelectionControlByModelData(u),this.refreshSelectionMoveStart(),c.stopPropagation(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}))}_initSpreadsheetEvent(r){const{spreadsheet:e}=r;let t;const o=500,i={x:0,y:0},s=()=>{clearTimeout(t)},l=(u,h)=>{this.createNewSelection(u,e.zIndex+1,a.RANGE_TYPE.NORMAL,this._getActiveViewport(u)),h&&this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())};e==null||e.onPointerMove$.subscribeEvent((u,h)=>{(Math.abs(u.offsetX-i.x)>10||Math.abs(u.offsetY-i.y)>10)&&s()});const c=e==null?void 0:e.onPointerDown$.subscribeEvent((u,h)=>{i.x=u.offsetX,i.y=u.offsetY,t=setTimeout(()=>{l(u,!0)},o),h.stopPropagation()}),d=e==null?void 0:e.onPointerUp$.subscribeEvent((u,h)=>{if(this._normalSelectionDisabled())return;clearTimeout(t);const g=10;Math.abs(u.offsetX-i.x)>g||Math.abs(u.offsetY-i.y)>g||(l(u,!1),h.stopPropagation())});this.disposeWithMe(a.toDisposable(c)),this.disposeWithMe(a.toDisposable(d))}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(r=>this._updateSelections(r,m.SelectionMoveType.MOVE_START))),this.disposeWithMe(this.selectionMoving$.subscribe(r=>this._updateSelections(r,m.SelectionMoveType.MOVING))),this.disposeWithMe(this._contextService.subscribeContextValue$(m.REF_SELECTIONS_ENABLED).pipe(O.startWith(!1),O.distinctUntilChanged()).subscribe(r=>{var e;r?((e=this._renderDisposable)==null||e.dispose(),this._renderDisposable=null,this._reset()):this._renderDisposable=a.toDisposable(this.selectionMoveEnd$.subscribe(t=>this._updateSelections(t,m.SelectionMoveType.MOVE_END)))}))}_updateSelections(r,e){const t=this._context.unit,o=t.getUnitId(),i=t.getActiveSheet().getSheetId();r.length!==0&&this._commandService.executeCommand(m.SetSelectionsOperation.id,{unitId:o,subUnitId:i,type:e,selections:r.map(s=>m.convertSelectionDataToRange(s))})}createNewSelection(r,e=0,t=a.RANGE_TYPE.NORMAL,o){this._rangeType=t;const i=this._skeleton,s=this._scene;if(!s||!i)return;o&&(this._activeViewport=o);const{offsetX:l,offsetY:c}=r,d=s.getCoordRelativeToViewport(w.Vector2.FromArray([l,c])),{x:u,y:h}=d;this._startViewportPosX=u,this._startViewportPosY=h;const g=s.getScrollXYInfoByViewport(d),{scaleX:S,scaleY:f}=s.getAncestorScale(),p=this._skeleton.getCellByOffset(u,h,S,f,g);if(!p)return;switch(t){case a.RANGE_TYPE.NORMAL:break;case a.RANGE_TYPE.ROW:p.startColumn=0,p.endColumn=this._skeleton.getColumnCount()-1;break;case a.RANGE_TYPE.COLUMN:p.startRow=0,p.endRow=this._skeleton.getRowCount()-1;break;case a.RANGE_TYPE.ALL:p.startRow=0,p.startColumn=0,p.endRow=this._skeleton.getRowCount()-1,p.endColumn=this._skeleton.getColumnCount()-1}const v={range:p,primary:p,style:null};v.range.rangeType=t;const C=Me(v,this._skeleton);this._startRangeWhenPointerDown={...C.rangeWithCoord};let b=this.getActiveSelectionControl();const R={...C.rangeWithCoord};for(const T of this.getSelectionControls())if(T.model.isEqual(R)){b=T;break}(b==null?void 0:b.model.rangeType)!==t?(this._clearAllSelectionControls(),b=this.newSelectionControl(s,i,v)):b.updateRangeBySelectionWithCoord(C),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._clearUpdatingListeners(),this._expandingSelection=!1}newSelectionControl(r,e,t){const o=this.getSelectionControls(),{rowHeaderWidth:i,columnHeaderHeight:s}=e,l=t.range.rangeType,c=new QC(r,o.length,this._themeService,{highlightHeader:this._highlightHeader,rowHeaderWidth:i,columnHeaderHeight:s,rangeType:l}),d=Me(t,e);c.updateRangeBySelectionWithCoord(d),this._selectionControls.push(c);const{expandingModeForTopLeft:u,expandingModeForBottomRight:h}=(()=>{switch(l){case a.RANGE_TYPE.NORMAL:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"};case a.RANGE_TYPE.ROW:return{expandingModeForTopLeft:"top",expandingModeForBottomRight:"bottom"};case a.RANGE_TYPE.COLUMN:return{expandingModeForTopLeft:"left",expandingModeForBottomRight:"right"};case a.RANGE_TYPE.ALL:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"};default:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"}}})();return c.fillControlTopLeft.onPointerDown$.subscribeEvent(g=>{this._expandingSelection=!0,this.expandingControlMode=u,this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._fillControlPointerDownHandler(g,l,this._activeViewport)}),c.fillControlBottomRight.onPointerDown$.subscribeEvent(g=>{this._expandingSelection=!0,this.expandingControlMode=h,this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._fillControlPointerDownHandler(g,l,this._activeViewport)}),(l===a.RANGE_TYPE.ROW||l===a.RANGE_TYPE.COLUMN)&&!r.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),c}_getActiveViewport(r){const e=this._getSheetObject();return e==null?void 0:e.scene.getActiveViewportByCoord(w.Vector2.FromArray([r.offsetX,r.offsetY]))}_getSheetObject(){return Ge(this._context.unit,this._context)}_normalSelectionDisabled(){return this._contextService.getContextValue(m.REF_SELECTIONS_ENABLED)}getSelectionControls(){return this._selectionControls}_fillControlPointerDownHandler(r,e=a.RANGE_TYPE.NORMAL,t,o=w.ScrollTimerType.ALL){var h,g,S;const i=this._skeleton,s=this._scene;if(!s||!i)return;t&&(this._activeViewport=t);const l=s.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),c=this.getActiveSelectionControl();if(!c)return;this._changeCurrCellWhenControlPointerDown(),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._clearUpdatingListeners(),this._addEndingListeners(),this._scrollTimer=w.ScrollTimer.create(this._scene,o),this._scrollTimer.startScroll((h=l==null?void 0:l.left)!=null?h:0,(g=l==null?void 0:l.top)!=null?g:0,l),(S=s.getTransformer())==null||S.clearSelectedObjects();const d=s.getCoordRelativeToViewport(w.Vector2.FromArray([r.offsetX,r.offsetY]));this._setupPointerMoveListener(l,c,e,o,d.x,d.y);const u=this._shortcutService.forceEscape();this._scenePointerUpSub=s.onPointerUp$.subscribeEvent(f=>{this.endSelection(),this._expandingSelection=!1,this.expandingControlMode="bottom-right",this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),u.dispose()})}_changeCurrCellWhenControlPointerDown(){const r=this.getActiveSelectionControl(),e=this._skeleton;let t;const{startRow:o,startColumn:i,endRow:s,endColumn:l}=r.model;switch(this.expandingControlMode){case"top-left":t=e.getCellWithCoordByIndex(s,l);break;case"bottom-right":t=e.getCellWithCoordByIndex(o,i);break;case"left":t=e.getCellWithCoordByIndex(o,l),t.isMerged=!1,t.isMergedMainCell=!1;break;case"right":t=e.getCellWithCoordByIndex(o,i),t.isMerged=!1,t.isMergedMainCell=!1;break;case"top":t=e.getCellWithCoordByIndex(s,i),t.isMerged=!1,t.isMergedMainCell=!1;break;case"bottom":t=e.getCellWithCoordByIndex(o,i),t.isMerged=!1,t.isMergedMainCell=!1;break;default:t=e.getCellWithCoordByIndex(o,i)}return r.updateCurrCell(t),t}_movingHandler(r,e,t,o){var x,A,k,N,D,W,H,U,B,F,L,j,z;this._rangeType=o;const i=this._skeleton,s=this._scene,l={startRow:t.model.startRow,endRow:t.model.endRow,startColumn:t.model.startColumn,endColumn:t.model.endColumn},c=s.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),d=(x=this._getViewportByCell(l.endRow,l.endColumn))!=null?x:c,u=s.getScrollXYInfoByViewport(w.Vector2.FromArray([this._startViewportPosX,this._startViewportPosY]),d),{scaleX:h,scaleY:g}=s.getAncestorScale();o===a.RANGE_TYPE.ROW?r=Number.POSITIVE_INFINITY:o===a.RANGE_TYPE.COLUMN&&(e=Number.POSITIVE_INFINITY);const S=this._getSelectionWithCoordByOffset(r,e,h,g,u);if(!S)return!1;const{rangeWithCoord:f}=S,p=t.model.currentCell,v=(A=p==null?void 0:p.mergeInfo.startRow)!=null?A:-1,C=(k=p==null?void 0:p.mergeInfo.endRow)!=null?k:-1,b=(N=p==null?void 0:p.mergeInfo.startColumn)!=null?N:-1,R=(D=p==null?void 0:p.mergeInfo.endColumn)!=null?D:-1;let T={startRow:Math.min(f.startRow,v),startColumn:Math.min(f.startColumn,b),endRow:Math.max(f.endRow,C),endColumn:Math.max(f.endColumn,R)};if(o===a.RANGE_TYPE.NORMAL?T=i.expandRangeByMerge(T):o===a.RANGE_TYPE.COLUMN?T={startRow:Math.min(f.startRow,(W=p==null?void 0:p.actualRow)!=null?W:-1),startColumn:Math.min(f.startColumn,(H=p==null?void 0:p.actualColumn)!=null?H:-1),endRow:Math.max(f.endRow,(U=p==null?void 0:p.actualRow)!=null?U:-1),endColumn:Math.max(f.endColumn,(B=p==null?void 0:p.actualColumn)!=null?B:-1)}:o===a.RANGE_TYPE.ROW&&(T={startRow:Math.min(f.startRow,(F=p==null?void 0:p.actualRow)!=null?F:-1),startColumn:Math.min(f.startColumn,(L=p==null?void 0:p.actualColumn)!=null?L:-1),endRow:Math.max(f.endRow,(j=p==null?void 0:p.actualRow)!=null?j:-1),endColumn:Math.max(f.endColumn,(z=p==null?void 0:p.actualColumn)!=null?z:-1)}),!T)return!1;const y=Me({range:T,style:null,primary:null},i);(l.startRow!==T.startRow||l.startColumn!==T.startColumn||l.endRow!==T.endRow||l.endColumn!==T.endColumn)&&t&&(t.updateRangeBySelectionWithCoord(y),this._selectionMoving$.next(this.getSelectionDataWithStyle()))}_updateControlPointWhenScrolling(){const{scene:r}=this._context;if(!r.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN))return;const t=this._scrollManagerService.validViewportScrollInfo$.subscribe(o=>{var g;if(o==null)return;const{viewportScrollX:i,viewportScrollY:s}=o,l=this.getActiveSelectionControl();if(l==null)return;const c=(g=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:g.skeleton,d=c==null?void 0:c.rowTotalHeight,u=c==null?void 0:c.columnTotalWidth,h=l.rangeType;h===a.RANGE_TYPE.COLUMN?l.transformControlPoint(0,s,u,d):h===a.RANGE_TYPE.ROW&&l.transformControlPoint(i,0,u,d)});this.disposeWithMe(a.toDisposable(t))}};br=$C([rt(1,a.Inject(a.Injector)),rt(2,a.Inject(a.ThemeService)),rt(3,I.IShortcutService),rt(4,a.Inject(m.SheetsSelectionsService)),rt(5,a.Inject(exports.SheetSkeletonManagerService)),rt(6,a.ILogService),rt(7,a.ICommandService),rt(8,a.IContextService),rt(9,a.Inject(exports.SheetScrollManagerService))],br);var eI=Object.defineProperty,tI=Object.getOwnPropertyDescriptor,nI=(n,r,e)=>r in n?eI(n,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[r]=e,oI=(n,r,e,t)=>{for(var o=t>1?void 0:t?tI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},xi=(n,r)=>(e,t)=>r(e,t,n),md=(n,r,e)=>nI(n,typeof r!="symbol"?r+"":r,e);exports.UniverSheetsMobileUIPlugin=class extends a.Plugin{constructor(r=Ji,e,t,o){super(),this._config=r,this._injector=e,this._renderManagerService=t,this._univerInstanceService=o}onStarting(){[[Tn],[Be,{useClass:exports.SheetClipboardService}],[nn,{useClass:Jl}],[et,{useClass:sr}],[Et,{useClass:exports.AutoFillService}],[zs],[ve,{useClass:br}],[Do,{useClass:Bs}],[qt,{useClass:exports.MarkSelectionService}],[exports.HoverManagerService],[exports.DragManagerService],[exports.SheetCanvasPopManagerService],[exports.CellAlertManagerService],[vs],[io],[exports.AutoHeightController],[Zt],[exports.SheetsRenderService],[fr],[exports.StatusBarController],[m.IRefSelectionsService,{useClass:m.RefSelectionsService}],[On],[wt],[Ir],[so],[exports.SheetPermissionCheckUIController],[ao]].forEach(r=>this._injector.add(r))}onReady(){this._markSheetAsFocused(),this._registerRenderBasics(),this._injector.get(fr)}onRendered(){this._registerRenderModules()}_registerRenderBasics(){[[exports.SheetSkeletonManagerService],[exports.SheetRenderController],[ve,{useClass:br}],[exports.SheetScrollManagerService]].forEach(r=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(a.UniverInstanceType.UNIVER_SHEET,r))})}_registerRenderModules(){[[exports.HeaderMoveRenderController],[exports.HeaderFreezeRenderController],[ns],[$n],[_r],[hr],[mr],[Sr],[exports.HoverRenderController],[exports.DragRenderController],[gr],[exports.CellCustomRenderController],[ts],[pr],[vr],[Cr]].forEach(r=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(a.UniverInstanceType.UNIVER_SHEET,r))})}_markSheetAsFocused(){const r=this._univerInstanceService;this.disposeWithMe(r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).pipe(qa.filter(e=>!!e)).subscribe(e=>{r.focusUnit(e.getUnitId())}))}};md(exports.UniverSheetsMobileUIPlugin,"pluginName","SHEET_UI_PLUGIN");md(exports.UniverSheetsMobileUIPlugin,"type",a.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsMobileUIPlugin=oI([a.DependentOn(m.UniverSheetsPlugin,I.UniverMobileUIPlugin),xi(1,a.Inject(a.Injector)),xi(2,w.IRenderManagerService),xi(3,a.IUniverInstanceService)],exports.UniverSheetsMobileUIPlugin);var rI=Object.getOwnPropertyDescriptor,iI=(n,r,e,t)=>{for(var o=t>1?void 0:t?rI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ai=(n,r)=>(e,t)=>r(e,t,n);let Rr=class extends a.Disposable{constructor(r,e,t){super();E(this,"_isPointer",!1);this._hoverManagerService=r,this._commandService=e,this._renderManagerService=t,this._initPointerEvent(),this._initHover()}get _mainComponent(){var r;return(r=this._renderManagerService.getCurrentTypeOfRenderer(a.UniverInstanceType.UNIVER_SHEET))==null?void 0:r.mainComponent}_initHover(){this.disposeWithMe(this._hoverManagerService.currentRichText$.subscribe(r=>{var e,t;r!=null&&r.bullet?(this._isPointer||(e=this._mainComponent)==null||e.setCursor(w.CURSOR_TYPE.POINTER),this._isPointer=!0):(this._isPointer&&((t=this._mainComponent)==null||t.setCursor(w.CURSOR_TYPE.AUTO)),this._isPointer=!1)}))}_initPointerEvent(){this.disposeWithMe(this._hoverManagerService.currentClickedCell$.subscribe(r=>{const{location:e,bullet:t}=r;t&&this._commandService.executeCommand(m.ToggleCellCheckboxCommand.id,{unitId:e.unitId,subUnitId:e.subUnitId,row:e.row,col:e.col,paragraphIndex:t.startIndex})}))}};Rr=iI([Ai(0,a.Inject(exports.HoverManagerService)),Ai(1,a.ICommandService),Ai(2,w.IRenderManagerService)],Rr);var sI=Object.getOwnPropertyDescriptor,aI=(n,r,e,t)=>{for(var o=t>1?void 0:t?sI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Yn=(n,r)=>(e,t)=>r(e,t,n);let Er=class extends a.Disposable{constructor(n,r,e,t,o){super(),this._selectionManagerService=n,this._themeService=r,this._instanceSrv=e,this._cmdSrv=t,this._definedNamesService=o,this._init()}_init(){this.disposeWithMe(O.merge(this._selectionManagerService.selectionMoveStart$,this._selectionManagerService.selectionMoving$,this._selectionManagerService.selectionMoveEnd$,this._selectionManagerService.selectionSet$).pipe(O.filter(n=>!!n)).subscribe(n=>{this._syncDefinedNameRange(n)})),this.disposeWithMe(this._definedNamesService.focusRange$.subscribe(async n=>{if(n==null)return;const{unitId:r}=n;let{formulaOrRefString:e}=n;if(e.substring(0,1)===K.operatorToken.EQUALS&&(e=e.substring(1)),!K.isReferenceStrings(e))return;const o=this._instanceSrv.getUnit(r),i=await this._getSelections(o,r,e);this._selectionManagerService.setSelections(i),this._cmdSrv.executeCommand(m.ScrollToCellOperation.id,{unitId:r,range:i[0].range})}))}_syncDefinedNameRange(n){if(n.length===0)return;const r=n[n.length-1],e=this._instanceSrv.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),t=e==null?void 0:e.getActiveSheet();t&&this._definedNamesService.setCurrentRange({range:r.range,unitId:e.getUnitId(),sheetId:t.getSheetId()})}async _getSelections(n,r,e){const t=e.split(",");let o=n.getActiveSheet();if(!o)return[];const i=[];for(let s=0;s<t.length;s++){const l=t[s].trim(),c=K.deserializeRangeWithSheet(l.trim());if(s===0){const u=n.getSheetBySheetName(c.sheetName);u&&o.getSheetId()!==u.getSheetId()&&(o=u,await this._cmdSrv.executeCommand(m.SetWorksheetActivateCommand.id,{subUnitId:o.getSheetId(),unitId:r}))}if(o.getName()!==c.sheetName)continue;let d=null;if(s===t.length-1){const u=c.range,{startRow:h,startColumn:g,endRow:S,endColumn:f}=u;d=m.getPrimaryForRange({startRow:h,startColumn:g,endRow:S,endColumn:f},o)}i.push({range:c.range,style:bt(this._themeService),primary:d})}return i}};Er=aI([Yn(0,a.Inject(m.SheetsSelectionsService)),Yn(1,a.Inject(a.ThemeService)),Yn(2,a.IUniverInstanceService),Yn(3,a.ICommandService),Yn(4,K.IDefinedNamesService)],Er);var lI=Object.getOwnPropertyDescriptor,cI=(n,r,e,t)=>{for(var o=t>1?void 0:t?lI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},it=(n,r)=>(e,t)=>r(e,t,n);exports.FormulaEditorController=class extends a.RxDisposable{constructor(e,t,o,i,s,l,c,d,u){super();E(this,"_loadedMap",new WeakSet);E(this,"_scheduledCallback",-1);this._univerInstanceService=e,this._renderManagerService=t,this._editorBridgeService=o,this._commandService=i,this._contextService=s,this._formulaEditorManagerService=l,this._undoRedoService=c,this._textSelectionManagerService=d,this._editorService=u,this._initialize()}_initialize(){this._syncEditorSize(),this._listenFxBtnClick(),this._handleContentChange(),this._renderManagerService.currentRender$.pipe(O.takeUntil(this.dispose$)).subscribe(e=>{this._create(e)}),this._create(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),this.disposeWithMe(this._editorService.focus$.subscribe(()=>{var t;((t=this._editorService.getFocusEditor())==null?void 0:t.getEditorId())!==a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY?this._contextService.setContextValue(a.FOCUSING_FX_BAR_EDITOR,!1):this._contextService.setContextValue(a.FOCUSING_FX_BAR_EDITOR,!0)}))}_handleContentChange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===Re.RichTextEditingMutation.id){const t=e.params,{unitId:o}=t;o===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&this.autoScroll()}}))}_create(e){if(e!==a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)return;const t=this._renderManagerService.getRenderById(e);if(t==null)return;const{mainComponent:o}=t;o!=null&&(this._loadedMap.has(o)||this._loadedMap.add(o))}_listenFxBtnClick(){this._formulaEditorManagerService.fxBtnClick$.pipe(O.takeUntil(this.dispose$)).subscribe(()=>{var t,o;if(this._contextService.getContextValue(a.FOCUSING_EDITOR_BUT_HIDDEN)&&!this._contextService.getContextValue(a.EDITOR_ACTIVATED)){this._univerInstanceService.setCurrentUnitForType(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),this._contextService.setContextValue(a.FOCUSING_FX_BAR_EDITOR,!0);const i=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=this._univerInstanceService.getUniverDocInstance(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);this._editorBridgeService.isVisible().visible===!1&&this._commandService.syncExecuteCommand(Ce.id,{visible:!0,eventType:w.DeviceInputEventType.PointerDown,unitId:(t=i==null?void 0:i.getUnitId())!=null?t:""});const c=(o=s==null?void 0:s.getBody())==null?void 0:o.dataStream;if(c==null)return;let d=c.startsWith("=")?c:`=${c}`;d=d.replace(/\r\n$/,"");const u=[{startOffset:d.length,endOffset:d.length}],h={unitId:a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,body:{dataStream:d},segmentId:""};this._commandService.executeCommand($.CoverContentCommand.id,h),this._textSelectionManagerService.replaceDocRanges(u)}})}_syncEditorSize(){const e=this._univerInstanceService.unitAdded$.pipe(O.filter(t=>t.getUnitId()===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY));this.disposeWithMe(O.combineLatest([this._formulaEditorManagerService.position$,e]).subscribe(([t])=>{if(!t)return this._clearScheduledCallback();const o=Pr(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,this._renderManagerService),i=this._univerInstanceService.getUniverDocInstance(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);if(o==null||i==null)return this._clearScheduledCallback();const{width:s,height:l}=t;if(s===0||l===0)return this._clearScheduledCallback();const{engine:c}=o;i.updateDocumentDataPageSize(s),this.autoScroll(),this._scheduledCallback=requestIdleCallback(()=>c.resizeBySize(s,l))}))}_clearScheduledCallback(){this._scheduledCallback!==-1&&cancelIdleCallback(this._scheduledCallback),this._scheduledCallback=-1}autoScroll(){var p,v;const e=this._formulaEditorManagerService.getPosition(),t=(p=this._renderManagerService.getRenderById(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))==null?void 0:p.with(Re.DocSkeletonManagerService).getSkeleton(),o=this._renderManagerService.getRenderById(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),i=this._univerInstanceService.getUniverDocInstance(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);if(t==null||e==null||o==null||i==null)return;const{marginTop:s=0,marginBottom:l=0}=i.getSnapshot().documentStyle,{scene:c,mainComponent:d}=o;let{actualHeight:u}=t.getActualSize();u+=s+l;const{width:h,height:g}=e,S=c.getViewport($.VIEWPORT_KEY.VIEW_MAIN);let f=S==null?void 0:S.getScrollBar();c.transformByState({width:h,height:u}),d==null||d.resize(h,u),u>g?f==null?S&&new w.ScrollBar(S,{enableHorizontal:!1,barSize:8}):S==null||S.resetCanvasSizeAndUpdateScroll():(f=null,S==null||S.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0}),(v=S==null?void 0:S.getScrollBar())==null||v.dispose())}};exports.FormulaEditorController=cI([it(0,a.IUniverInstanceService),it(1,w.IRenderManagerService),it(2,Se),it(3,a.ICommandService),it(4,a.IContextService),it(5,No),it(6,a.IUndoRedoService),it(7,a.Inject(Re.DocSelectionManagerService)),it(8,$.IEditorService)],exports.FormulaEditorController);var dI=Object.getOwnPropertyDescriptor,uI=(n,r,e,t)=>{for(var o=t>1?void 0:t?dI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},ft=(n,r)=>(e,t)=>r(e,t,n);const hI={pageSize:{width:Number.POSITIVE_INFINITY,height:Number.POSITIVE_INFINITY},documentFlavor:a.DocumentFlavor.UNSPECIFIED,marginTop:5,marginBottom:5,marginRight:0,marginLeft:0,paragraphLineGapDefault:0,renderConfig:{horizontalAlign:a.HorizontalAlign.UNSPECIFIED,verticalAlign:a.VerticalAlign.TOP,centerAngle:0,vertexAngle:0,wrapStrategy:a.WrapStrategy.WRAP,isRenderStyle:a.BooleanNumber.FALSE}};let Tr=class extends a.Disposable{constructor(n,r,e,t,o,i,s,l){super(),this._univerInstanceService=n,this._renderManagerService=r,this._editorBridgeService=e,this._commandService=t,this._rangeProtectionRuleModel=o,this._worksheetProtectionRuleModel=i,this._formulaEditorController=s,this._formulaEditorManagerService=l,this._initialize()}_initialize(){this._syncFormulaEditorContent(),this._commandExecutedListener()}_getEditorViewModel(n){var r;return(r=this._renderManagerService.getRenderById(n))==null?void 0:r.with(Re.DocSkeletonManagerService).getViewModel()}_syncFormulaEditorContent(){this.disposeWithMe(this._editorBridgeService.currentEditCellState$.subscribe(n=>{n==null||this._editorBridgeService.isForceKeepVisible()||!this._rangeProtectionRuleModel.getRangeRuleInitState()||!this._worksheetProtectionRuleModel.getSheetRuleInitState()||this._editorSyncHandler(n)}))}_editorSyncHandler(n){var o,i,s;let r=a.Tools.deepClone((o=n.documentLayoutObject.documentModel)==null?void 0:o.getBody());const e=a.Tools.deepClone((i=n.documentLayoutObject.documentModel)==null?void 0:i.drawings),t=a.Tools.deepClone((s=n.documentLayoutObject.documentModel)==null?void 0:s.getDrawingsOrder());(!r||n.isInArrayFormulaRange===!0&&this._editorBridgeService.isVisible().eventType===w.DeviceInputEventType.Dblclick)&&(r={dataStream:`\r
64
+ `,paragraphs:[{startIndex:0}],textRuns:[]}),this._syncContentAndRender(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,r,e,t)}_commandExecutedListener(){const n=[a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===Re.RichTextEditingMutation.id){const t=e.params,{unitId:o,trigger:i,isSync:s}=t;if(s||i===$.ReplaceSnapshotCommand.id)return;if(n.includes(o)){const l=this._univerInstanceService.getUnit(o,a.UniverInstanceType.UNIVER_DOC),c=o===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY?a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY:a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY;this._checkAndSetRenderStyleConfig(l),this._syncActionsAndRender(c,t)}}}));const r=[m.SetRangeValuesMutation.id,m.MoveRangeMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var t,o,i,s,l,c,d;if(r.includes(e.id)){const u=this._editorBridgeService.getLatestEditCellState();if(u==null)return;let h=!1;const{row:g,column:S}=u;if(e.id===m.SetRangeValuesMutation.id&&e.params?(o=(t=e.params.cellValue)==null?void 0:t[g])!=null&&o[S]&&(h=!0):e.id===m.MoveRangeMutation.id&&e.params&&(s=(i=e.params.to.value)==null?void 0:i[g])!=null&&s[S]&&(h=!0),h){const f=a.Tools.deepClone((l=u.documentLayoutObject.documentModel)==null?void 0:l.getBody()),p=a.Tools.deepClone((c=u.documentLayoutObject.documentModel)==null?void 0:c.drawings),v=a.Tools.deepClone((d=u.documentLayoutObject.documentModel)==null?void 0:d.getDrawingsOrder());if(f==null)return;this._syncContentAndRender(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,f,p,v)}}}))}_syncActionsAndRender(n,r){var l;const e=[a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY],t=this._renderManagerService.getRenderById(n);if(t==null)return;const o=t.with(Re.DocSkeletonManagerService).getSkeleton(),i=this._univerInstanceService.getUnit(n,a.UniverInstanceType.UNIVER_DOC),s=this._getEditorViewModel(n);i==null||s==null||(this._commandService.syncExecuteCommand(Re.RichTextEditingMutation.id,{...r,textRanges:null,isSync:!0,unitId:n,syncer:r.unitId}),s.reset(i),o.calculate(),e.includes(n)&&((l=t.mainComponent)==null||l.makeDirty()))}_syncContentAndRender(n,r,e,t){var d,u;n===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&r.paragraphs&&(r.paragraphs=this._clearParagraph(r.paragraphs));const o=[a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY],i=(d=this._renderManagerService.getRenderById(n))==null?void 0:d.with(Re.DocSkeletonManagerService).getSkeleton(),s=this._univerInstanceService.getUnit(n,a.UniverInstanceType.UNIVER_DOC),l=this._getEditorViewModel(n);if(s==null||l==null||i==null)return;s.getSnapshot().body=r,s.getSnapshot().drawings=e!=null?e:{},s.getSnapshot().drawingsOrder=t!=null?t:[],this._checkAndSetRenderStyleConfig(s),l.reset(s);const c=this._renderManagerService.getRenderById(n);c!=null&&(i.calculate(),o.includes(n)&&((u=c.mainComponent)==null||u.makeDirty()),n===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&this._formulaEditorController.autoScroll())}_checkAndSetRenderStyleConfig(n){var i;const r=n.getSnapshot(),{body:e}=r;if(r.id!==a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)return;r.documentStyle=hI;let t=r.documentStyle.renderConfig;t==null&&(t={},r.documentStyle.renderConfig=t);const o=this._formulaEditorManagerService.getPosition();if(o){const s=o.width;r.documentStyle.pageSize={width:s,height:1/0}}((i=e==null?void 0:e.dataStream)!=null?i:"").startsWith("=")?t.isRenderStyle=a.BooleanNumber.TRUE:t.isRenderStyle=a.BooleanNumber.FALSE}_clearParagraph(n){const r=a.Tools.deepClone(n);for(const e of r)e.paragraphStyle&&(e.paragraphStyle.horizontalAlign=a.HorizontalAlign.UNSPECIFIED);return r}};Tr=uI([ft(0,a.IUniverInstanceService),ft(1,w.IRenderManagerService),ft(2,Se),ft(3,a.ICommandService),ft(4,a.Inject(m.RangeProtectionRuleModel)),ft(5,a.Inject(m.WorksheetProtectionRuleModel)),ft(6,a.Inject(exports.FormulaEditorController)),ft(7,No)],Tr);var mI=Object.getOwnPropertyDescriptor,gI=(n,r,e,t)=>{for(var o=t>1?void 0:t?mI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Nt=(n,r)=>(e,t)=>r(e,t,n);let wr=class extends a.Disposable{constructor(n,r,e,t,o,i,s){super(),this._commandService=n,this._formatPainterService=r,this._univerInstanceService=e,this._renderManagerService=t,this._selectionManagerService=o,this._sheetInterceptorService=i,this._injector=s,this._initialize()}_initialize(){this._addDefaultHook()}_addDefaultHook(){const n={id:"default-format-painter",priority:0,isDefaultHook:!0,onStatusChange:r=>{if(r!==Ne.OFF){const e=this._collectSelectionRangeFormat();e&&this._formatPainterService.setSelectionFormat(e)}},onApply:(r,e,t,o)=>this._getUndoRedoMutationInfo(r,e,t,o)};this._formatPainterService.addHook(n)}_collectSelectionRangeFormat(){const n=this._selectionManagerService.getCurrentLastSelection(),r=n==null?void 0:n.range;if(!r)return null;const{startRow:e,endRow:t,startColumn:o,endColumn:i}=r,s=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s==null?void 0:s.getActiveSheet();if(!l)return null;const c=l.getCellMatrix(),d=s.getStyles(),u=new a.ObjectMatrix,h=[];for(let g=e;g<=t;g++)for(let S=o;S<=i;S++){const f=c.getValue(g,S);u.setValue(g,S,d.getStyleByCell(f)||{});const{isMergedMainCell:p,...v}=l.getCellInfoInMergeData(g,S);p&&h.push({startRow:v.startRow,startColumn:v.startColumn,endRow:v.endRow,endColumn:v.endColumn})}return{styles:u,merges:h}}_getUndoRedoMutationInfo(n,r,e,t){const o=this._sheetInterceptorService,i=this._univerInstanceService,{merges:s,styles:l}=t;if(!l)return{undos:[],redos:[]};const{startRow:c,startColumn:d,endRow:u,endColumn:h}=l.getDataRange(),g=u-c+1,S=h-d+1,f=e.startRow===e.endRow&&e.startColumn===e.endColumn?{startRow:e.startRow,startColumn:e.startColumn,endRow:e.startRow+g-1,endColumn:e.startColumn+S-1}:e,p=Array.from({length:f.endRow-f.startRow+1},()=>Array.from({length:f.endColumn-f.startColumn+1},()=>({}))),v=[];p.forEach((L,j)=>{L.forEach((z,q)=>{const te=j%g+c,Q=q%S+d,re=l.getValue(te,Q);re&&(p[j][q].s=Object.keys(re).length>0?re:null)})}),s.forEach(L=>{const j={startRow:L.startRow-c,startColumn:L.startColumn-d,endRow:L.endRow-c,endColumn:L.endColumn-d},z=Math.max(1,Math.floor((f.endRow-f.startRow+1)/g)),q=Math.max(1,Math.floor((f.endColumn-f.startColumn+1)/S));for(let te=0;te<z;te++)for(let Q=0;Q<q;Q++)v.push({startRow:j.startRow+te*g+f.startRow,startColumn:j.startColumn+Q*S+f.startColumn,endRow:j.endRow+te*g+f.startRow,endColumn:j.endColumn+Q*S+f.startColumn})});const C=[f],b=new a.ObjectMatrix,R=new a.ObjectMatrix;if(a.Tools.isArray(p))for(let L=0;L<C.length;L++){const{startRow:j,startColumn:z,endRow:q,endColumn:te}=C[L];for(let Q=0;Q<=q-j;Q++)for(let re=0;re<=te-z;re++)b.setValue(Q+j,re+z,{s:null}),R.setValue(Q+j,re+z,p[Q][re])}const T={subUnitId:r,unitId:n,cellValue:b.getMatrix()},M={subUnitId:r,unitId:n,cellValue:R.getMatrix()},y=this._injector.invoke(m.SetRangeValuesUndoMutationFactory,T),{undos:P,redos:x}=o.onCommandExecute({id:m.SetRangeValuesCommand.id,params:{...M,range:C}}),A=m.getAddMergeMutationRangeByType(v),k=[],N=[],D=i.getUnit(n).getSheetBySheetId(r),W=jl(D,A),H={unitId:n,subUnitId:r,ranges:A},U={unitId:n,subUnitId:r,ranges:A};k.push({id:m.RemoveWorksheetMergeMutation.id,params:H}),k.push({id:m.AddWorksheetMergeMutation.id,params:U});const B=this._injector.invoke(m.RemoveMergeUndoMutationFactory,H),F=this._injector.invoke(m.AddMergeUndoMutationFactory,U);if(N.push({id:m.RemoveWorksheetMergeMutation.id,params:F}),N.push({id:m.AddWorksheetMergeMutation.id,params:B}),W){const L=this._injector.invoke(j=>zl(j,n,D,A));k.unshift(...L.redos),N.push(...L.undos)}return{undos:[{id:m.SetRangeValuesMutation.id,params:T},{id:m.SetRangeValuesMutation.id,params:y},...P,...N],redos:[{id:m.SetRangeValuesMutation.id,params:T},{id:m.SetRangeValuesMutation.id,params:M},...x,...k]}}};wr=gI([Nt(0,a.ICommandService),Nt(1,et),Nt(2,a.IUniverInstanceService),Nt(3,w.IRenderManagerService),Nt(4,a.Inject(m.SheetsSelectionsService)),Nt(5,a.Inject(m.SheetInterceptorService)),Nt(6,a.Inject(a.Injector))],wr);var SI=Object.getOwnPropertyDescriptor,fI=(n,r,e,t)=>{for(var o=t>1?void 0:t?SI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},ki=(n,r)=>(e,t)=>r(e,t,n);let os=class extends a.Disposable{constructor(r,e,t,o){super();E(this,"_initialize",()=>{const r=new a.DisposableCollection;this.disposeWithMe(this._selectionManagerService.selectionMoveEnd$.subscribe(()=>{r.dispose(),this._selectionRenderService.getSelectionControls().forEach(t=>{r.add(a.toDisposable(t.selectionMoveEnd$.subscribe(o=>{if(!o)return;const i=t.model.getRange(),s={startRow:i.startRow,startColumn:i.startColumn,endRow:i.endRow,endColumn:i.endColumn,rangeType:i.rangeType},l={startRow:o.startRow,startColumn:o.startColumn,endRow:o.endRow,endColumn:o.endColumn,rangeType:i.rangeType};if(s.startRow===l.startRow&&s.startColumn===l.startColumn||l.startRow<0||l.startColumn<0)return;const c={fromRange:s,toRange:l};this._commandService.executeCommand(m.MoveRangeCommand.id,c)})))})}))});this._context=r,this._selectionRenderService=e,this._selectionManagerService=t,this._commandService=o,this._initialize()}};os=fI([ki(1,a.Inject(ve)),ki(2,a.Inject(m.SheetsSelectionsService)),ki(3,a.Inject(a.ICommandService))],os);var pI=Object.getOwnPropertyDescriptor,vI=(n,r,e,t)=>{for(var o=t>1?void 0:t?pI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},CI=(n,r)=>(e,t)=>r(e,t,n);let yr=class extends a.Disposable{constructor(n){super(),this._sheetPermissionInitController=n,this._initPermission()}_initPermission(){this._sheetPermissionInitController.initPermission()}};yr=vI([CI(0,a.Inject(m.SheetPermissionInitController))],yr);var II=Object.getOwnPropertyDescriptor,_I=(n,r,e,t)=>{for(var o=t>1?void 0:t?II(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ni=(n,r)=>(e,t)=>r(e,t,n);let rs=class extends a.Disposable{constructor(n,r,e,t){super(),this._context=n,this._sheetSkeletonManagerService=r,this._sheetClipboardService=e,this._sheetClipboardController=t,this._initialize()}_initialize(){this.disposeWithMe(a.toDisposable(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(n=>{if(!(n!=null&&n.unitId)||!this._sheetClipboardService.getPasteMenuVisible())return;const r=this._sheetClipboardService.getPasteOptionsCache(),e=r==null?void 0:r.target.unitId;n.unitId===e&&this._sheetClipboardController.refreshOptionalPaste()})))}};rs=_I([Ni(1,a.Inject(exports.SheetSkeletonManagerService)),Ni(2,Be),Ni(3,a.Inject(Zt))],rs);var bI=Object.getOwnPropertyDescriptor,RI=(n,r,e,t)=>{for(var o=t>1?void 0:t?bI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Di=(n,r)=>(e,t)=>r(e,t,n);let is=class extends a.Disposable{constructor(n,r,e,t){super(),this._context=n,this._contextMenuService=r,this._selectionManagerService=e,this._selectionRenderService=t,this._init()}_init(){var l,c;const r=((c=(l=this._context)==null?void 0:l.mainComponent)==null?void 0:c.onPointerDown$).subscribeEvent(d=>{if(d.button===2){const u=this._selectionManagerService.getCurrentSelections(),h=u==null?void 0:u[0];if(!h)return;const g=h.range.rangeType,S=this._selectionRenderService.getSkeleton(),p=Me(h,S).rangeWithCoord,v=()=>{if(!p)return!1;const b=d.offsetX,R=d.offsetY;switch(g){case a.RANGE_TYPE.ROW:return p.startY<=R&&p.endY>=R;case a.RANGE_TYPE.COLUMN:return p.startX<=b&&p.endX>=b;default:return p.startX<=b&&p.endX>=b&&p.startY<=R&&p.endY>=R}},C=b=>{this._contextMenuService.triggerContextMenu(d,b)};v()?g===a.RANGE_TYPE.COLUMN?C(I.ContextMenuPosition.COL_HEADER):g===a.RANGE_TYPE.ROW?C(I.ContextMenuPosition.ROW_HEADER):C(I.ContextMenuPosition.MAIN_AREA):C(I.ContextMenuPosition.MAIN_AREA)}});this.disposeWithMe(r);const e=this._context.components.get(me.COLUMN),o=this._context.components.get(me.ROW).onPointerDown$.subscribeEvent(d=>{d.button===2&&this._contextMenuService.triggerContextMenu(d,I.ContextMenuPosition.ROW_HEADER)});this.disposeWithMe(o);const s=e.onPointerDown$.subscribeEvent(d=>{d.button===2&&this._contextMenuService.triggerContextMenu(d,I.ContextMenuPosition.COL_HEADER)});this.disposeWithMe(s)}};is=RI([Di(1,I.IContextMenuService),Di(2,a.Inject(m.SheetsSelectionsService)),Di(3,ve)],is);var EI=Object.getOwnPropertyDescriptor,TI=(n,r,e,t)=>{for(var o=t>1?void 0:t?EI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},st=(n,r)=>(e,t)=>r(e,t,n);let ss=class extends a.RxDisposable{constructor(r,e,t,o,i,s,l,c,d,u){super();E(this,"_d");this._context=r,this._instanceSrv=e,this._commandService=t,this._editorBridgeService=o,this._selectionManagerService=i,this._rangeSelectorService=s,this._contextService=l,this._renderManagerService=c,this._editorService=d,this._sheetSkeletonManagerService=u,this.disposeWithMe(this._instanceSrv.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(h=>{h&&h.getUnitId()===this._context.unitId?this._d=this._init():this._disposeCurrent()})),this._initialRangeSelector()}_init(){const r=new a.DisposableCollection;return this._initSelectionChangeListener(r),this._initEventListener(r),this._commandExecutedListener(r),this._initialKeyboardListener(r),r}_disposeCurrent(){var r;(r=this._d)==null||r.dispose(),this._d=null}_initSelectionChangeListener(r){r.add(O.merge(this._selectionManagerService.selectionMoveEnd$,this._selectionManagerService.selectionSet$,this._selectionManagerService.selectionMoveStart$).subscribe(e=>this._updateEditorPosition(e)))}_updateEditorPosition(r){var t,o,i;if(this._editorBridgeService.isVisible().visible||this._rangeSelectorService.selectorModalVisible)return;const e=(t=r==null?void 0:r[r.length-1])==null?void 0:t.primary;if(e){const s=this._getSheetObject(),{scene:l,engine:c}=s,d=this._context.unitId,u=(o=this._context.unit.getActiveSheet())==null?void 0:o.getSheetId();if(!u)return;const h=(i=this._sheetSkeletonManagerService.getSkeletonParam(u))==null?void 0:i.skeleton.getCellWithCoordByIndex(e.actualRow,e.actualColumn),g=h?{actualRow:h.actualRow,actualColumn:h.actualColumn,isMerged:h.isMerged,startRow:h.mergeInfo.startRow,startColumn:h.mergeInfo.startColumn,endRow:h.mergeInfo.endRow,endColumn:h.mergeInfo.endColumn,isMergedMainCell:h.isMergedMainCell}:e;this._commandService.executeCommand(zr.id,{scene:l,engine:c,primary:g,unitId:d,sheetId:u})}}_initEventListener(r){const e=this._getSheetObject(),{spreadsheet:t,spreadsheetColumnHeader:o,spreadsheetLeftTopPlaceholder:i,spreadsheetRowHeader:s}=e;r.add(t.onDblclick$.subscribeEvent(l=>{l.button!==2&&this._commandService.executeCommand(Ce.id,{visible:!0,eventType:w.DeviceInputEventType.Dblclick,unitId:this._context.unitId})})),r.add(t.onPointerDown$.subscribeEvent({next:this._tryHideEditor.bind(this),priority:-1})),r.add(o.onPointerDown$.subscribeEvent({next:this._tryHideEditor.bind(this),priority:-1})),r.add(i.onPointerDown$.subscribeEvent({next:this._tryHideEditor.bind(this),priority:-1})),r.add(s.onPointerDown$.subscribeEvent({next:this._tryHideEditor.bind(this),priority:-1}))}_initialKeyboardListener(r){let e=null;const t=i=>{const s=i.with($.DocSelectionRenderService);s&&(e=a.toDisposable(s.onInputBefore$.subscribe(l=>{if(!this._isCurrentSheetFocused())return;const c=this._contextService.getContextValue(a.FOCUSING_FX_BAR_EDITOR),d=this._contextService.getContextValue(a.FOCUSING_SHEET),u=i.unitId;this._editorBridgeService.isVisible().visible||u&&d&&!c&&this._showEditorByKeyboard(l)})),r.add(e))},o=this._renderManagerService.getRenderById(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);o?t(o):this.disposeWithMe(this._renderManagerService.created$.pipe(O.filter(i=>i.unitId===a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)).subscribe(i=>{e==null||e.dispose(),t(i)}))}_commandExecutedListener(r){const e=new Set([m.ClearSelectionFormatCommand.id,Nn.id]);r.add(this._commandService.onCommandExecuted(t=>{if(e.has(t.id)){if(this._editorBridgeService.isVisible().visible)return;this._editorBridgeService.refreshEditCellState()}if(t.id===m.SetRangeValuesMutation.id){const o=t.params,{cellValue:i,unitId:s,subUnitId:l}=o;if(!i)return;const c=this._editorBridgeService.getEditLocation();if(c){const{unitId:d,sheetId:u,row:h,column:g}=c;s===d&&l===u&&i&&i[h]&&Object.prototype.hasOwnProperty.call(i[h],g)&&this._editorBridgeService.refreshEditCellState()}}})),r.add(this._commandService.beforeCommandExecuted((t,o)=>{o!=null&&o.fromCollab||t.id===m.SetWorksheetActiveOperation.id&&this._tryHideEditor()}))}_showEditorByKeyboard(r){const e=r==null?void 0:r.event;r==null||!e.data&&e.inputType!=="InsertParagraph"||this._commandService.syncExecuteCommand(Ce.id,{visible:!0,eventType:w.DeviceInputEventType.Keyboard,keycode:e.which,unitId:this._context.unitId})}_tryHideEditor(){this._editorBridgeService.isForceKeepVisible()||this._hideEditor()}_hideEditor(){this._editorBridgeService.isVisible().visible===!0&&this._commandService.syncExecuteCommand(Ce.id,{visible:!1,eventType:w.DeviceInputEventType.PointerDown,unitId:this._context.unitId})}_initialRangeSelector(){this.disposeWithMe(this._selectionManagerService.selectionMoving$.subscribe(this._rangeSelector.bind(this))),this.disposeWithMe(this._selectionManagerService.selectionMoveStart$.subscribe(this._rangeSelector.bind(this))),this.disposeWithMe(this._rangeSelectorService.openSelector$.subscribe(()=>{const{unitId:r,sheetId:e,sheetName:t}=this._getCurrentUnitIdAndSheetId();if(!e||!t)return;const o=this._selectionManagerService.getCurrentSelections(),i=o==null?void 0:o.map(s=>({range:s.range,unitId:r,sheetId:e,sheetName:t}));i&&this._rangeSelectorService.selectionChange(i)}))}_rangeSelector(r){if(!r)return;const{unitId:e,sheetId:t,sheetName:o}=this._getCurrentUnitIdAndSheetId();if(!t||!o)return;const i=r.map(s=>({range:s.range,unitId:e,sheetId:t,sheetName:o}));this._rangeSelectorService.selectionChange(i)}_getCurrentUnitIdAndSheetId(){const r=this._context.unit,e=r.getActiveSheet();return{unitId:r.getUnitId(),sheetId:e==null?void 0:e.getSheetId(),sheetName:e==null?void 0:e.getName()}}_getSheetObject(){return Ge(this._context.unit,this._context)}_isCurrentSheetFocused(){var r;return((r=this._instanceSrv.getFocusedUnit())==null?void 0:r.getUnitId())===this._context.unitId}};ss=TI([st(1,a.IUniverInstanceService),st(2,a.ICommandService),st(3,Se),st(4,a.Inject(m.SheetsSelectionsService)),st(5,$.IRangeSelectorService),st(6,a.IContextService),st(7,w.IRenderManagerService),st(8,$.IEditorService),st(9,a.Inject(exports.SheetSkeletonManagerService))],ss);var as=(n=>(n[n.NORMAL=0]="NORMAL",n[n.HIGHLIGHT=1]="HIGHLIGHT",n))(as||{});const wI="rgba(0, 0, 0, 0.15)",at="rgb(0, 0, 0)",Zo="rgb(255, 255, 255, 1)";class yI extends w.Shape{constructor(e,t){super(e,t);E(this,"_size",12);E(this,"_iconRatio",.4);E(this,"_mode",0);this.setShapeProps(t)}setShapeProps(e){e!=null&&e.size&&(this._size=e.size),e!=null&&e.mode&&(this._mode=e.mode),this.transformByState({width:this._size,height:this._size})}_draw(e){this._mode===1&&w.Rect.drawWith(e,{width:this._size,height:this._size,radius:this._size,fill:wI});const t=this._size*.5*this._iconRatio,o=Math.PI/180*60,i=t*Math.sin(o),s=t*Math.cos(o);w.RegularPolygon.drawWith(e,{pointsGroup:[[{x:-i+this._size/2,y:-s+this._size/2},{x:i+this._size/2,y:-s+this._size/2},{x:this._size/2,y:t+this._size/2}]],fill:at})}}var MI=Object.getOwnPropertyDescriptor,PI=(n,r,e,t)=>{for(var o=t>1?void 0:t?MI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ko=(n,r)=>(e,t)=>r(e,t,n);const OI="__SpreadsheetHeaderMenuSHAPEControllerShape__",xI="__SpreadsheetHeaderMenuMAINControllerShape__",AI="rgba(0, 0, 0, 0.1)";let ls=class extends a.Disposable{constructor(r,e,t,o,i){super();E(this,"_hoverRect");E(this,"_hoverMenu");E(this,"_currentColumn",Number.POSITIVE_INFINITY);E(this,"_headerPointerSubs");E(this,"_colHeaderPointerSubs");this._context=r,this._sheetSkeletonManagerService=e,this._contextMenuService=t,this._commandService=o,this._selectionManagerService=i,this._initialize()}dispose(){var r,e,t;(r=this._hoverRect)==null||r.dispose(),(e=this._hoverMenu)==null||e.dispose(),(t=this._headerPointerSubs)==null||t.unsubscribe(),this._headerPointerSubs=null}_initialize(){const r=this._context.scene;this._hoverRect=new w.Rect(OI,{fill:AI,evented:!1}),this._hoverMenu=new yI(xI,{zIndex:100,visible:!1}),r.addObjects([this._hoverRect,this._hoverMenu],_t),this._initialHover(0),this._initialHover(1),this._initialHoverMenu()}_initialHover(r=0){var h,g,S;const e=this._context.components.get(me.COLUMN),t=this._context.components.get(me.ROW),o=r===0?t:e,i=f=>{var P,x,A;const p=(P=this._sheetSkeletonManagerService.getCurrentParam())==null?void 0:P.skeleton;if(p==null)return;const{rowHeaderWidth:v,columnHeaderHeight:C}=p,{startX:b,startY:R,endX:T,endY:M,column:y}=qe(f.offsetX,f.offsetY,this._context.scene,p);if(r===0)(x=this._hoverRect)==null||x.transformByState({width:v,height:M-R,left:0,top:R});else{if(this._currentColumn=y,(A=this._hoverRect)==null||A.transformByState({width:T-b,height:C,left:b,top:0}),this._hoverMenu==null)return;if(T-b<C*2){this._hoverMenu.hide();return}const k=C*.8;this._hoverMenu.transformByState({left:T-C,top:C/2-k/2}),this._hoverMenu.setShapeProps({size:k}),this._hoverMenu.show()}},s=()=>{var f;(f=this._hoverRect)==null||f.show()},l=()=>{var f,p;(f=this._hoverRect)==null||f.hide(),(p=this._hoverMenu)==null||p.hide()};this._headerPointerSubs=new O.Subscription;const c=o.onPointerMove$.subscribeEvent(i),d=o.onPointerEnter$.subscribeEvent(s),u=o.onPointerLeave$.subscribeEvent(l);(h=this._headerPointerSubs)==null||h.add(c),(g=this._headerPointerSubs)==null||g.add(d),(S=this._headerPointerSubs)==null||S.add(u)}_initialHoverMenu(){this._hoverMenu!=null&&(this._hoverMenu.onPointerEnter$.subscribeEvent(()=>{this._hoverMenu!=null&&(this._hoverMenu.setProps({mode:as.HIGHLIGHT,visible:!0}),this._context.scene.setCursor(w.CURSOR_TYPE.POINTER))}),this._hoverMenu.onPointerLeave$.subscribeEvent(()=>{this._hoverMenu!=null&&(this._hoverMenu.setProps({mode:as.NORMAL,visible:!1}),this._context.scene.resetCursor())}),this._hoverMenu.onPointerDown$.subscribeEvent(r=>{var i;const e=this._currentColumn,t=(i=this._selectionManagerService.getCurrentSelections())==null?void 0:i.map(s=>s.range);if(!!!(t!=null&&t.filter(s=>s.rangeType===a.RANGE_TYPE.COLUMN).find(s=>{const{startColumn:l,endColumn:c}=s;return e>=l&&e<=c}))){const s=this._getSelectionOnColumn(e);this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,s)}r.stopPropagation(),r.preventDefault(),this._contextMenuService.triggerContextMenu(r,I.ContextMenuPosition.COL_HEADER)}))}_getSelectionOnColumn(r){const e=this._context.unit,t=e.getActiveSheet();if(!t)throw new Error("No active worksheet");return{unitId:e.getUnitId(),subUnitId:t.getSheetId(),selections:[{range:{startRow:0,startColumn:r,endRow:t.getRowCount()-1,endColumn:r,rangeType:a.RANGE_TYPE.COLUMN},primary:{startRow:0,startColumn:r,endRow:0,endColumn:r,actualRow:0,actualColumn:r,isMerged:!1,isMergedMainCell:!1},style:null}]}}};ls=PI([Ko(1,a.Inject(exports.SheetSkeletonManagerService)),Ko(2,I.IContextMenuService),Ko(3,a.ICommandService),Ko(4,a.Inject(m.SheetsSelectionsService))],ls);var cs=(n=>(n[n.ROW=0]="ROW",n[n.COLUMN=1]="COLUMN",n))(cs||{});const Zn=12,kI=.4;class Ya extends w.Shape{constructor(e,t,o){super(e,t);E(this,"_size",Zn);E(this,"_iconRatio",kI);E(this,"_hovered",!0);E(this,"_hasPrevious",!0);E(this,"_hasNext",!0);E(this,"_unhideType");t&&this.setShapeProps(t),this.onPointerEnter$.subscribeEvent(()=>this.setShapeProps({hovered:!0})),this.onPointerLeave$.subscribeEvent(()=>this.setShapeProps({hovered:!1})),this.onPointerDown$.subscribeEvent(()=>o==null?void 0:o())}setShapeProps(e){e.type!==void 0&&(this._unhideType=e.type),e.hovered!==void 0&&(this._hovered=e.hovered),e.hasPrevious!==void 0&&(this._hasPrevious=e.hasPrevious),e.hasNext!==void 0&&(this._hasNext=e.hasNext),this.transformByState({width:this._size*(this._unhideType===1?2:1),height:this._size*(this._unhideType===0?2:1)})}_draw(e){this._unhideType===0?this._drawOnRow(e):this._drawOnCol(e)}_drawOnRow(e){this._hovered&&(!this._hasNext||!this._hasPrevious?w.Rect.drawWith(e,{width:this._size,height:this._size,stroke:at,fill:Zo}):w.Rect.drawWith(e,{width:this._size,height:2*this._size,stroke:at,fill:Zo}));const t=this._size*.5*this._iconRatio,o=Math.PI/3,i=t*Math.cos(o),s=t*Math.sin(o);if(this._hasPrevious&&w.RegularPolygon.drawWith(e,{pointsGroup:[[{x:this._size/2,y:this._size/2-s},{x:this._size/2-s,y:this._size/2+i},{x:this._size/2+s,y:this._size/2+i}]],fill:at}),this._hasNext){const l=this._hasPrevious?3:1;w.RegularPolygon.drawWith(e,{pointsGroup:[[{x:this._size/2,y:this._size*l/2+s},{x:this._size/2-s,y:this._size*l/2-i},{x:this._size/2+s,y:this._size*l/2-i}]],fill:at})}}_drawOnCol(e){this._hovered&&(!this._hasNext||!this._hasPrevious?w.Rect.drawWith(e,{width:this._size,height:this._size,stroke:at,fill:Zo}):w.Rect.drawWith(e,{width:2*this._size,height:this._size,stroke:at,fill:Zo}));const t=this._size*.5*this._iconRatio,o=Math.PI/3,i=t*Math.cos(o),s=t*Math.sin(o);if(this._hasPrevious&&w.RegularPolygon.drawWith(e,{pointsGroup:[[{x:-i+this._size/2,y:this._size/2},{x:this._size/2+s,y:this._size/2-s},{x:this._size/2+s,y:this._size/2+s}]],fill:at}),this._hasNext){const l=this._hasPrevious?3:1;w.RegularPolygon.drawWith(e,{pointsGroup:[[{x:i+this._size*l/2,y:this._size/2},{x:-s+this._size*l/2,y:this._size/2-s},{x:-s+this._size*l/2,y:this._size/2+s}]],fill:at})}}}var NI=Object.getOwnPropertyDescriptor,DI=(n,r,e,t)=>{for(var o=t>1?void 0:t?NI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ga=(n,r)=>(e,t)=>r(e,t,n);const Za="__SpreadsheetHeaderUnhideSHAPEControllerShape__";m.InsertColMutation.id,m.InsertRowMutation.id,m.RemoveColMutation.id,m.RemoveRowMutation.id,m.MoveColsMutation.id,m.MoveRowsMutation.id,m.SetWorksheetColWidthMutation.id,m.SetWorksheetRowIsAutoHeightMutation.id,m.SetRowHiddenMutation.id,m.SetRowVisibleMutation.id,m.SetColHiddenMutation.id,m.SetColVisibleMutation.id;let ds=class extends a.RxDisposable{constructor(r,e,t){super();E(this,"_shapes",{cols:[],rows:[]});this._context=r,this._sheetSkeletonManagerService=e,this._commandService=t,this._init()}get _workbook(){return this._context.unit}dispose(){super.dispose(),this._clearShapes()}_init(){let r="";this._context.unit.activeSheet$.pipe(O.takeUntil(this.dispose$)).subscribe(e=>{if(this._clearShapes(),!e){r="";return}r=e.getSheetId(),this._update(this._workbook,e)}),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(e=>{if(e){const{unitId:t,sheetId:o}=e;if(t===this._workbook.getUnitId()&&o===r){const i=this._workbook.getSheetBySheetId(o);i&&this._update(this._workbook,i)}}}))}_update(r,e){var g;const t=(g=this._sheetSkeletonManagerService.getSkeletonParam(e.getSheetId()))==null?void 0:g.skeleton;if(!t)return;const o=e.getHiddenRows(),i=e.getHiddenCols(),s=this._getSheetObject(),{scene:l}=s,c=e.getRowCount(),d=o.map(S=>{const{startRow:f,endRow:p}=S,v=Bi(f,0,l,t),C=f!==0,b=p!==c-1;return new Ya(Za,{type:cs.ROW,hovered:!1,hasPrevious:C,hasNext:b,top:v.startY-(C?Zn:0),left:v.startX-Zn},()=>this._commandService.executeCommand(m.SetSpecificRowsVisibleCommand.id,{unitId:r.getUnitId(),subUnitId:e.getSheetId(),ranges:[S]}))}),u=e.getColumnCount(),h=i.map(S=>{const{startColumn:f,endColumn:p}=S,v=Bi(0,f,l,t),C=f!==0,b=p!==u-1;return new Ya(Za,{type:cs.COLUMN,hovered:!1,hasPrevious:C,hasNext:b,top:20-Zn,left:v.startX-(C?Zn:0)},()=>this._commandService.executeCommand(m.SetSpecificColsVisibleCommand.id,{unitId:r.getUnitId(),subUnitId:e.getSheetId(),ranges:[S]}))});l.addObjects(h,Ys),l.addObjects(d,Ys),this._clearShapes(),this._shapes={cols:h,rows:d}}_clearShapes(){this._shapes.cols.forEach(r=>r.dispose()),this._shapes.rows.forEach(r=>r.dispose()),this._shapes={cols:[],rows:[]}}_getSheetObject(){return Ge(this._workbook,this._context)}};ds=DI([Ga(1,a.Inject(exports.SheetSkeletonManagerService)),Ga(2,a.ICommandService)],ds);var HI=Object.getOwnPropertyDescriptor,VI=(n,r,e,t)=>{for(var o=t>1?void 0:t?HI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},Ka=(n,r)=>(e,t)=>r(e,t,n);let us=class extends a.Disposable{constructor(n,r,e){super(),this._context=n,this._sheetSkeletonManagerService=r,this._renderManagerService=e,this.disposeWithMe(this._context.unit.sheetDisposed$.subscribe(t=>{this._sheetSkeletonManagerService.disposeSkeleton(t.getSheetId())})),this._sheetSkeletonManagerService.currentSkeleton$.subscribe(t=>{this._updateSceneSize(t)})}_updateSceneSize(n){var u;if(n==null)return;const{unitId:r}=this._context,{skeleton:e}=n,t=(u=this._renderManagerService.getRenderById(r))==null?void 0:u.scene;if(e==null||t==null)return;const{rowTotalHeight:o,columnTotalWidth:i,rowHeaderWidthAndMarginLeft:s,columnHeaderHeightAndMarginTop:l}=e;this._context.unit.getActiveSheet()&&(t==null||t.transformByState({width:s+i,height:l+o}))}};us=VI([Ka(1,a.Inject(exports.SheetSkeletonManagerService)),Ka(2,w.IRenderManagerService)],us);var WI=Object.getOwnPropertyDescriptor,UI=(n,r,e,t)=>{for(var o=t>1?void 0:t?WI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},pt=(n,r)=>(e,t)=>r(e,t,n);exports.SheetSelectionRenderService=class extends gs{constructor(e,t,o,i,s,l,c,d,u){super(t,o,i,l,u);E(this,"_workbookSelections");E(this,"_renderDisposable",null);this._context=e,this._logService=c,this._commandService=d,this._contextService=u,this._workbookSelections=s.getWorkbookSelections(this._context.unitId),this._init()}_init(){const e=this._getSheetObject();this._contextService.setContextValue(m.SELECTIONS_ENABLED,!0),this._initEventListeners(e),this._initSelectionModelChangeListener(),this._initThemeChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener()}_initEventListeners(e){const{spreadsheetRowHeader:t,spreadsheetColumnHeader:o,spreadsheet:i,spreadsheetLeftTopPlaceholder:s}=e,{scene:l}=this._context;this.disposeWithMe(i==null?void 0:i.onPointerDown$.subscribeEvent((c,d)=>{this.isSelectionDisabled()||this.inRefSelectionMode()||(this._onPointerDown(c,i.zIndex+1,a.RANGE_TYPE.NORMAL,this._getActiveViewport(c)),c.button!==2&&d.stopPropagation())})),this.disposeWithMe(t==null?void 0:t.onPointerDown$.subscribeEvent((c,d)=>{if(this.isSelectionDisabled()||this.inRefSelectionMode())return;const u=this._sheetSkeletonManagerService.getCurrentParam().skeleton,{row:h}=qe(c.offsetX,c.offsetY,l,u);xl(this._workbookSelections.getCurrentSelections(),h)||(this._onPointerDown(c,(i.zIndex||1)+1,a.RANGE_TYPE.ROW,this._getActiveViewport(c),w.ScrollTimerType.Y),c.button!==2&&d.stopPropagation())})),this.disposeWithMe(o==null?void 0:o.onPointerDown$.subscribeEvent((c,d)=>{if(this.isSelectionDisabled()||this.inRefSelectionMode())return;const u=this._sheetSkeletonManagerService.getCurrentParam().skeleton,{column:h}=qe(c.offsetX,c.offsetY,l,u);Al(this._workbookSelections.getCurrentSelections(),h)||(this._onPointerDown(c,(i.zIndex||1)+1,a.RANGE_TYPE.COLUMN,this._getActiveViewport(c),w.ScrollTimerType.X),c.button!==2&&d.stopPropagation())})),this.disposeWithMe(s==null?void 0:s.onPointerDown$.subscribeEvent((c,d)=>{if(this.isSelectionDisabled()||this.inRefSelectionMode())return;this._reset();const u=this._sheetSkeletonManagerService.getCurrentParam().skeleton,h=Ss(u);this._addSelectionControlByModelData(h),this.refreshSelectionMoveEnd(),c.button!==2&&d.stopPropagation()}))}_initThemeChangeListener(){this.disposeWithMe(this._themeService.currentTheme$.subscribe(()=>{this._initSelectionThemeFromThemeService();const e=this._workbookSelections.getCurrentSelections();e&&this.resetSelectionsByModelData(e)}))}_initSelectionModelChangeListener(){this.disposeWithMe(O.merge(this._workbookSelections.selectionMoveEnd$,this._workbookSelections.selectionSet$).subscribe(e=>{this.resetSelectionsByModelData(e)}))}disableSelection(){this._contextService.setContextValue(m.SELECTIONS_ENABLED,!1)}enableSelection(){this._contextService.setContextValue(m.SELECTIONS_ENABLED,!0)}transparentSelection(){this.setSelectionTheme({primaryColor:"transparent"});const e=this._workbookSelections.getCurrentSelections();for(let t=0;t<e.length;t++){const o=e[t];o.style=bt(this._selectionTheme)}this.resetSelectionsByModelData(e)}showSelection(){const e=this._themeService.getCurrentTheme();this.setSelectionTheme(e);const t=this._workbookSelections.getCurrentSelections();for(let o=0;o<t.length;o++){const i=t[o];i.style&&(i.style=bt(this._selectionTheme))}this.resetSelectionsByModelData(t)}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(e=>this._updateSelections(e,m.SelectionMoveType.MOVE_START))),this.disposeWithMe(this.selectionMoving$.subscribe(e=>this._updateSelections(e,m.SelectionMoveType.MOVING))),this.disposeWithMe(this._contextService.subscribeContextValue$(m.REF_SELECTIONS_ENABLED).pipe(O.startWith(!1),O.distinctUntilChanged()).subscribe(e=>{e&&this._reset()})),this.disposeWithMe(this._contextService.subscribeContextValue$(m.SELECTIONS_ENABLED).pipe(O.startWith(!0),O.distinctUntilChanged()).subscribe(e=>{var t;e?this._renderDisposable=a.toDisposable(this.selectionMoveEnd$.subscribe(o=>{this._updateSelections(o,m.SelectionMoveType.MOVE_END)})):((t=this._renderDisposable)==null||t.dispose(),this._renderDisposable=null,this._reset())}))}_updateSelections(e,t){const o=this._context.unit,i=o.getUnitId(),s=o.getActiveSheet().getSheetId();if(e.length===0)return;const l=e.map(c=>m.convertSelectionDataToRange(c));this._commandService.executeCommand(m.SetSelectionsOperation.id,{unitId:i,subUnitId:s,type:t,selections:l})}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(e=>{var u,h;if(e==null){this._logService.error("[SelectionRenderService]: should not receive null!");return}const t=this._context.unitId,{sheetId:o,skeleton:i}=e,{scene:s}=this._context,l=s.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),c=(h=(u=this._skeleton)==null?void 0:u.worksheet)==null?void 0:h.getSheetId();if(this._changeRuntime(i,s,l),c!==i.worksheet.getSheetId()){const g=this._workbookSelections.getCurrentSelections();this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:t,subUnitId:o,selections:g.length!==0?g:[kr(i)]})}const d=this._workbookSelections.getCurrentSelections();d!=null&&this.resetSelectionsByModelData(d)}))}_getActiveViewport(e){const t=this._getSheetObject();return t==null?void 0:t.scene.getActiveViewportByCoord(w.Vector2.FromArray([e.offsetX,e.offsetY]))}_getSheetObject(){return Ge(this._context.unit,this._context)}_onPointerDown(e,t=0,o=a.RANGE_TYPE.NORMAL,i,s=w.ScrollTimerType.ALL){var N,D;this._rangeType=o;const l=this._skeleton,c=this._scene;if(!c||!l)return;i&&(this._activeViewport=i);const{offsetX:d,offsetY:u}=e,h=c.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!h)return;const g=c.getCoordRelativeToViewport(w.Vector2.FromArray([d,u])),{x:S,y:f}=g;this._startViewportPosX=S,this._startViewportPosY=f;const p=c.getScrollXYInfoByViewport(g),{scaleX:v,scaleY:C}=c.getAncestorScale(),b=this._skeleton.getCellByOffset(S,f,v,C,p);if(!b)return;switch(o){case a.RANGE_TYPE.NORMAL:break;case a.RANGE_TYPE.ROW:b.startColumn=0,b.endColumn=this._skeleton.getColumnCount()-1,b.startRow=b.actualRow,b.endRow=b.actualRow;break;case a.RANGE_TYPE.COLUMN:b.startRow=0,b.endRow=this._skeleton.getRowCount()-1,b.startColumn=b.actualColumn,b.endColumn=b.actualColumn;break;case a.RANGE_TYPE.ALL:b.startRow=0,b.startColumn=0,b.endRow=this._skeleton.getRowCount()-1,b.endColumn=this._skeleton.getColumnCount()-1}const R={range:b,primary:b,style:null};R.range.rangeType=o;const T=Me(R,this._skeleton);this._startRangeWhenPointerDown={...T.rangeWithCoord};let M=this.getActiveSelectionControl();const y={...T.rangeWithCoord,rangeType:o},P=this.getSelectionControls();for(const W of P)if(e.button===2&&W.model.isInclude(y)){M=W;return}this._checkClearPreviousControls(e);const x=M==null?void 0:M.model.currentCell,A=e.shiftKey&&x,k=this._remainLastEnabled&&!e.ctrlKey&&!e.shiftKey&&!this._skipLastEnabled&&!this._singleSelectionEnabled;A&&x?this._makeSelectionByTwoCells(x,y,l,o,M):k&&M?M.updateRangeBySelectionWithCoord(T):M=this.newSelectionControl(c,l,R);for(let W=0;W<this.getSelectionControls().length-1;W++)this.getSelectionControls()[W].clearHighlight();c.disableObjectsEvent(),this._clearUpdatingListeners(),this._addEndingListeners(),(N=c.getTransformer())==null||N.clearSelectedObjects(),this._setupPointerMoveListener(h,M,o,s,S,f),this._escapeShortcutDisposable=this._shortcutService.forceEscape(),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._scenePointerUpSub=c.onPointerUp$.subscribeEvent(()=>{var W;this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),(W=this._escapeShortcutDisposable)==null||W.dispose(),this._escapeShortcutDisposable=null}),(D=this._scene.getEngine())==null||D.setCapture()}};exports.SheetSelectionRenderService=UI([pt(1,a.Inject(a.Injector)),pt(2,a.Inject(a.ThemeService)),pt(3,I.IShortcutService),pt(4,a.Inject(m.SheetsSelectionsService)),pt(5,a.Inject(exports.SheetSkeletonManagerService)),pt(6,a.ILogService),pt(7,a.ICommandService),pt(8,a.IContextService)],exports.SheetSelectionRenderService);var LI=Object.defineProperty,BI=Object.getOwnPropertyDescriptor,FI=(n,r,e)=>r in n?LI(n,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[r]=e,jI=(n,r,e,t)=>{for(var o=t>1?void 0:t?BI(r,e):r,i=n.length-1,s;i>=0;i--)(s=n[i])&&(o=s(o)||o);return o},qo=(n,r)=>(e,t)=>r(e,t,n),gd=(n,r,e)=>FI(n,typeof r!="symbol"?r+"":r,e);exports.UniverSheetsUIPlugin=class extends a.Plugin{constructor(r=Ji,e,t,o,i){super(),this._config=r,this._injector=e,this._renderManagerService=t,this._configService=o,this._univerInstanceService=i;const{menu:s,...l}=a.merge({},Ji,this._config);s&&this._configService.setConfig("menu",s,{merge:!0}),this._configService.setConfig(Gt,l)}onStarting(){a.registerDependencies(this._injector,a.mergeOverrideWithDependencies([[Tn],[Se,{useClass:exports.EditorBridgeService}],[Be,{useClass:exports.SheetClipboardService}],[nn,{useClass:Jl}],[et,{useClass:sr}],[mo,{useClass:rl}],[No,{useClass:tS}],[m.IRefSelectionsService,{useClass:m.RefSelectionsService}],[Et,{useClass:exports.AutoFillService}],[zs],[Do,{useClass:Bs}],[qt,{useClass:exports.MarkSelectionService}],[exports.HoverManagerService],[exports.DragManagerService],[exports.SheetCanvasPopManagerService],[exports.CellAlertManagerService],[vs],[io],[exports.AutoHeightController],[exports.AutoWidthController],[exports.FormulaEditorController],[exports.SheetsRenderService],[exports.SheetUIController],[exports.StatusBarController],[exports.AutoFillController],[wr],[Er],[Tr],[Rr],[On],[yr],[wt],[so],[exports.SheetPermissionCheckUIController],[ao]],this._config.override)),a.touchDependencies(this._injector,[[yr]])}onReady(){this._config.disableAutoFocus||this._initAutoFocus(),a.registerDependencies(this._injector,[[Zt]]),this._registerRenderBasics(),a.touchDependencies(this._injector,[[exports.SheetUIController],[exports.SheetsRenderService],[io],[exports.SheetPermissionCheckUIController]])}onRendered(){this._registerRenderModules(),a.touchDependencies(this._injector,[[ao],[On],[Zt],[exports.FormulaEditorController],[Er],[exports.StatusBarController],[exports.AutoHeightController],[exports.AutoWidthController],[Tr],[Rr]])}onSteady(){a.touchDependencies(this._injector,[[wr],[exports.AutoFillController],[so]])}_registerRenderBasics(){[[exports.SheetSkeletonManagerService],[us],[exports.SheetRenderController],[ve,{useClass:exports.SheetSelectionRenderService}]].forEach(r=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(a.UniverInstanceType.UNIVER_SHEET,r))})}_registerRenderModules(){var o;const r=[[exports.HeaderMoveRenderController],[ds],[exports.HeaderResizeRenderController],[exports.SheetScrollManagerService],[exports.SheetsScrollRenderController],[exports.HeaderFreezeRenderController],[$n],[exports.SheetCellEditorResizeService],[_r],[rs],[hr],[mr],[Sr],[exports.HoverRenderController],[exports.DragRenderController],[gr],[exports.CellCustomRenderController],[is],[os],[ss],[exports.EditingRenderController],[pr],[vr],[Cr],[Ir]],e=this._configService.getConfig(I.UI_PLUGIN_CONFIG_KEY);((o=e==null?void 0:e.contextMenu)!=null?o:!0)&&r.push([ls]),r.forEach(i=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(a.UniverInstanceType.UNIVER_SHEET,i))})}_initAutoFocus(){const r=this._univerInstanceService;this.disposeWithMe(r.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).pipe(qa.filter(e=>!!e)).subscribe(e=>r.focusUnit(e.getUnitId())))}};gd(exports.UniverSheetsUIPlugin,"pluginName","SHEET_UI_PLUGIN");gd(exports.UniverSheetsUIPlugin,"type",a.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsUIPlugin=jI([a.DependentOn(m.UniverSheetsPlugin),qo(1,a.Inject(a.Injector)),qo(2,w.IRenderManagerService),qo(3,a.IConfigService),qo(4,a.IUniverInstanceService)],exports.UniverSheetsUIPlugin);const Sd="embedding_formula_editor",zI=n=>n.includes(Sd);function XI(n,r,e,t){const{from:o,to:i}=e,{column:s,columnOffset:l,row:c,rowOffset:d}=o,{column:u,columnOffset:h,row:g,rowOffset:S}=i,f=t.ensureSkeleton(r);if(f==null)throw new Error("No current skeleton");const p=bn(f,{startColumn:s,endColumn:s,startRow:c,endRow:c}),v=bn(f,{startColumn:u,endColumn:u,startRow:g,endRow:g}),{startX:C,startY:b}=p,{startX:R,startY:T}=v,M=w.precisionTo(C+l,1),y=w.precisionTo(b+d,1);let P=w.precisionTo(R+h-M,1),x=w.precisionTo(T+S-y,1);return p.startX===v.endX&&(P=0),p.startY===v.endY&&(x=0),{unitId:n,subUnitId:r,left:M,top:y,width:P,height:x}}function YI(n,r,e,t,o,i,s){const{column:l,columnOffset:c,row:d,rowOffset:u}=e,h=s.ensureSkeleton(r);if(h==null)throw new Error("No current skeleton");const g=bn(h,{startColumn:l,endColumn:l,startRow:d,endRow:d}),{startX:S,startY:f}=g,p=w.precisionTo(S+c,1),v=w.precisionTo(f+u,1),C=i.getCellWithCoordByOffset(p+t,v+o,h);if(C==null)throw new Error("No end selection cell");const b={column:C.actualColumn,columnOffset:w.precisionTo(p+t-C.startX,1),row:C.actualRow,rowOffset:w.precisionTo(v+o-C.startY,1)};return{unitId:n,subUnitId:r,sheetTransform:{from:{column:l,columnOffset:c,row:d,rowOffset:u},to:b},transform:{left:p,top:v,width:t,height:o}}}exports.AFFECT_LAYOUT_STYLES=ps;exports.APPLY_TYPE=le;exports.AddRangeProtectionFromContextMenuCommand=Vt;exports.AddRangeProtectionFromSheetBarCommand=yo;exports.AddRangeProtectionFromToolbarCommand=wo;exports.ApplyFormatPainterCommand=Co;exports.AutoClearContentCommand=En;exports.AutoFillCommand=Ct;exports.BaseSelectionRenderService=gs;exports.COPY_TYPE=vt;exports.CellAlertType=_n;exports.CellEditorManagerService=rl;exports.ChangeSheetProtectionFromSheetBarCommand=Ao;exports.ChangeZoomRatioCommand=kn;exports.DATA_TYPE=_e;exports.DeleteRangeMoveLeftConfirmCommand=Wn;exports.DeleteRangeMoveUpConfirmCommand=Xt;exports.DeleteRangeProtectionFromContextMenuCommand=Ut;exports.DeleteWorksheetProtectionFormSheetBarCommand=xo;exports.EMBEDDING_FORMULA_EDITOR=Sd;exports.EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY=Or;exports.ExpandSelectionCommand=De;exports.FONT_FAMILY_COMPONENT=Vr;exports.FONT_FAMILY_ITEM_COMPONENT=Wr;exports.FONT_SIZE_COMPONENT=Ur;exports.FormatPainterStatus=Ne;exports.FormulaBar=rc;exports.HideColConfirmCommand=So;exports.HideRowConfirmCommand=go;exports.IAutoFillService=Et;exports.ICellEditorManagerService=mo;exports.IEditorBridgeService=Se;exports.IFormatPainterService=et;exports.IFormulaEditorManagerService=No;exports.IMarkSelectionService=qt;exports.ISheetClipboardService=Be;exports.ISheetSelectionRenderService=ve;exports.IStatusBarService=Do;exports.InsertRangeMoveDownConfirmCommand=Yt;exports.InsertRangeMoveRightConfirmCommand=Un;exports.JumpOver=Je;exports.MobileSheetBar=rd;exports.MoveSelectionCommand=xe;exports.MoveSelectionEnterAndTabCommand=$e;exports.PASTE_SPECIAL_MENU_ID=Qn;exports.PREDEFINED_HOOK_NAME=ge;exports.RANGE_SELECTOR_COMPONENT_KEY=hs;exports.RANGE_SELECTOR_SYMBOLS=pl;exports.RefillCommand=uo;exports.RemoveColConfirmCommand=An;exports.RemoveRowConfirmCommand=xn;exports.RemoveSheetConfirmCommand=Po;exports.RenameSheetOperation=ko;exports.RenderSheetContent=lc;exports.RenderSheetFooter=sc;exports.RenderSheetHeader=ac;exports.ResetRangeTextColorCommand=Os;exports.ResetScrollCommand=Tu;exports.SELECTION_SHAPE_DEPTH=ms;exports.SHEET_UI_PLUGIN_NAME=Od;exports.SHEET_VIEW_KEY=me;exports.ScrollCommand=ze;exports.ScrollToCellCommand=_s;exports.ScrollToRangeOperation=bs;exports.SelectAllCommand=Dr;exports.SelectionControl=lo;exports.SelectionShape=lo;exports.SelectionShapeExtension=Qa;exports.SetActivateCellEditOperation=zr;exports.SetCellEditVisibleArrowOperation=zt;exports.SetCellEditVisibleOperation=Ce;exports.SetCellEditVisibleWithF2Operation=ho;exports.SetColumnFrozenCommand=_o;exports.SetColumnHeaderHeightCommand=Ar;exports.SetFormatPainterOperation=vo;exports.SetInfiniteFormatPainterCommand=Hr;exports.SetOnceFormatPainterCommand=Dn;exports.SetRangeBoldCommand=Qt;exports.SetRangeFontFamilyCommand=po;exports.SetRangeFontSizeCommand=fo;exports.SetRangeItalicCommand=Jt;exports.SetRangeProtectionFromContextMenuCommand=Lt;exports.SetRangeStrickThroughCommand=en;exports.SetRangeSubscriptCommand=Ms;exports.SetRangeSuperscriptCommand=Ps;exports.SetRangeTextColorCommand=Mn;exports.SetRangeUnderlineCommand=$t;exports.SetRowFrozenCommand=Io;exports.SetRowHeaderWidthCommand=xr;exports.SetScrollOperation=je;exports.SetScrollRelativeCommand=wn;exports.SetSelectionFrozenCommand=dt;exports.SetWorksheetColAutoWidthCommand=bo;exports.SetZoomRatioCommand=Nn;exports.SetZoomRatioOperation=Le;exports.SheetBar=ic;exports.SheetCopyCommand=Xe;exports.SheetCutCommand=ys;exports.SheetMenuPosition=Pl;exports.SheetPasteBesidesBorderCommand=vn;exports.SheetPasteColWidthCommand=Ht;exports.SheetPasteCommand=Ye;exports.SheetPasteFormatCommand=pn;exports.SheetPasteShortKeyCommand=ir;exports.SheetPasteValueCommand=fn;exports.SheetPermissionOpenDialogOperation=Us;exports.SheetPermissionOpenPanelOperation=Qe;exports.SheetPermissionUserManagerService=wt;exports.SheetPrintInterceptorService=zs;exports.SheetsUIMenuSchema=fc;exports.SheetsUIPart=fs;exports.ShowMenuListCommand=Oo;exports.SidebarDefinedNameOperation=Xr;exports.StatusBarService=Bs;exports.UNIVER_SHEET_PERMISSION_BACKGROUND=Ws;exports.UNIVER_SHEET_PERMISSION_USER_PART=ar;exports.ViewSheetPermissionFromContextMenuCommand=Wt;exports.ViewSheetPermissionFromSheetBarCommand=Mo;exports.attachPrimaryWithCoord=Jn;exports.attachRangeWithCoord=bn;exports.attachSelectionWithCoord=Me;exports.calculateDocSkeletonRects=nd;exports.checkInHeaderRanges=no;exports.convertPositionCellToSheetOverGrid=YI;exports.convertPositionSheetOverGridToAbsolute=XI;exports.deriveStateFromActiveSheet$=Pe;exports.discreteRangeToRange=Rt;exports.functionDisplayNames=Jo;exports.genNormalSelectionStyle=bt;exports.genSelectionByRange=Ja;exports.getAllSelection=Ss;exports.getAutoFillRepeatRange=Gd;exports.getCellRealRange=Xl;exports.getCoordByCell=Bi;exports.getCoordByOffset=qe;exports.getCurrentExclusiveRangeInterest$=Tl;exports.getCurrentRangeDisable$=ee;exports.getCustomRangePosition=Vp;exports.getEditingCustomRangePosition=Wp;exports.getEditorObject=Pr;exports.getMatrixPlainText=bl;exports.getObservableWithExclusiveRange$=tn;exports.getRepeatRange=vh;exports.getSheetObject=Ge;exports.getTopLeftSelectionOfCurrSheet=kr;exports.getTransformCoord=qn;exports.isEmbeddingFormulaEditor=zI;exports.isRangeSelector=vl;exports.mergeSetRangeValues=Xi;exports.rangeToDiscreteRange=Sn;exports.useActiveWorkbook=ht;exports.useActiveWorksheet=Md;exports.useHighlightRange=Qc;exports.useWorkbooks=Pd;exports.virtualizeDiscreteRanges=Kt;exports.whenFormulaEditorActivated=Du;exports.whenSheetEditorFocused=ce;