@univerjs/sheets-ui 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/lib/cjs/index.js +16 -15
  2. package/lib/es/index.js +18239 -17761
  3. package/lib/index.css +1 -1
  4. package/lib/types/commands/commands/utils/selection-utils.d.ts +0 -1
  5. package/lib/types/components/hook.d.ts +2 -1
  6. package/lib/types/controllers/editor/editing.render-controller.d.ts +6 -3
  7. package/lib/types/controllers/render-controllers/freeze.render-controller.d.ts +1 -1
  8. package/lib/types/controllers/render-controllers/scroll.render-controller.d.ts +3 -3
  9. package/lib/types/controllers/render-controllers/sheet.render-controller.d.ts +3 -2
  10. package/lib/types/controllers/render-controllers/zoom.render-controller.d.ts +5 -4
  11. package/lib/types/controllers/sheet-ui.controller.d.ts +12 -11
  12. package/lib/types/controllers/utils/char-tools.d.ts +1 -1
  13. package/lib/types/index.d.ts +8 -2
  14. package/lib/types/mobile-sheets-ui-plugin.d.ts +1 -1
  15. package/lib/types/services/clipboard/html-to-usm/converter.d.ts +2 -2
  16. package/lib/types/services/clipboard/html-to-usm/paste-plugins/plugin-lark.d.ts +1 -2
  17. package/lib/types/services/clipboard/html-to-usm/paste-plugins/plugin-univer.d.ts +3 -0
  18. package/lib/types/services/clipboard/html-to-usm/paste-plugins/plugin-word.d.ts +1 -2
  19. package/lib/types/services/editor-bridge.service.d.ts +1 -0
  20. package/lib/types/services/selection/base-selection-render.service.d.ts +14 -1
  21. package/lib/types/services/selection/selection-render.service.d.ts +8 -2
  22. package/lib/types/services/selection/selection-shape-extension.d.ts +7 -1
  23. package/lib/types/views/editor-container/EditorContainer.d.ts +1 -1
  24. package/lib/umd/index.js +16 -15
  25. package/package.json +23 -24
package/lib/umd/index.js CHANGED
@@ -1,12 +1,4 @@
1
- (function(M,te){typeof exports=="object"&&typeof module<"u"?te(exports,require("@univerjs/docs"),require("@univerjs/core"),require("@univerjs/engine-render"),require("@univerjs/sheets"),require("rxjs"),require("@univerjs/ui"),require("@univerjs/engine-numfmt"),require("@univerjs/docs-ui"),require("rxjs/operators"),require("@univerjs/design"),require("@univerjs/engine-formula"),require("react"),require("clsx")):typeof define=="function"&&define.amd?define(["exports","@univerjs/docs","@univerjs/core","@univerjs/engine-render","@univerjs/sheets","rxjs","@univerjs/ui","@univerjs/engine-numfmt","@univerjs/docs-ui","rxjs/operators","@univerjs/design","@univerjs/engine-formula","react","clsx"],te):(M=typeof globalThis<"u"?globalThis:M||self,te(M.UniverSheetsUi={},M.UniverDocs,M.UniverCore,M.UniverEngineRender,M.UniverSheets,M.rxjs,M.UniverUi,M.UniverEngineNumfmt,M.UniverDocsUi,M.rxjs.operators,M.UniverDesign,M.UniverEngineFormula,M.React,M.clsx))})(this,function(M,te,l,w,m,A,T,Ve,Ro,ls,$,q,L,he){"use strict";var Xp=Object.defineProperty;var zp=(M,te,l)=>te in M?Xp(M,te,{enumerable:!0,configurable:!0,writable:!0,value:l}):M[te]=l;var E=(M,te,l)=>zp(M,typeof te!="symbol"?te+"":te,l);const dc="SheetUI";var as=(n=>(n.FILTER_PANEL_EMBED_POINT="filter-panel-embed-point",n))(as||{});function To(n,o){if(n==null)return;const e=o.getRenderById(n);if(e==null)return;const{mainComponent:t,scene:i,engine:r,components:s}=e,a=t,c=s.get(te.DOCS_VIEW_KEY.BACKGROUND);return{document:a,docBackground:c,scene:i,engine:r}}var uc=Object.defineProperty,hc=Object.getOwnPropertyDescriptor,mc=(n,o,e,t)=>{for(var i=t>1?void 0:t?hc(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&uc(o,e,i),i},fc=(n,o)=>(e,t)=>o(e,t,n);M.SheetSkeletonManagerService=class extends l.Disposable{constructor(e,t){super();E(this,"_currentSkeletonSearchParam",{sheetId:""});E(this,"_sheetSkeletonParam",[]);E(this,"_currentSkeleton$",new A.BehaviorSubject(null));E(this,"currentSkeleton$",this._currentSkeleton$.asObservable());E(this,"_currentSkeletonBefore$",new A.BehaviorSubject(null));E(this,"currentSkeletonBefore$",this._currentSkeletonBefore$.asObservable());this._context=e,this._injector=t,this.disposeWithMe(()=>{this._currentSkeletonBefore$.complete(),this._currentSkeleton$.complete(),this._sheetSkeletonParam=[]}),this._initRemoveSheet()}_initRemoveSheet(){this.disposeWithMe(this._context.unit.sheetDisposed$.subscribe(e=>{this.disposeSkeleton({sheetId:e.getSheetId()})}))}getCurrentSkeleton(){var e;return(e=this.getCurrent())==null?void 0:e.skeleton}getCurrent(){return this._getSkeleton(this._currentSkeletonSearchParam)}getWorksheetSkeleton(e){return this._getSkeleton({sheetId:e})}getUnitSkeleton(e,t){const i=this._getSkeleton({sheetId:t});return i!=null&&(i.unitId=e),i}setCurrent(e){this._setCurrent(e)}_setCurrent(e){const t=this._getSkeleton(e);if(t!=null)this._reCalculate(t);else{const{sheetId:a}=e,d=this._context.unit.getSheetBySheetId(e.sheetId);if(d==null)return;const u=this._buildSkeleton(d);this._sheetSkeletonParam.push({sheetId:a,skeleton:u,dirty:!1})}this._currentSkeletonSearchParam=e;const i=this._context.unitId,r=this._currentSkeletonSearchParam.sheetId,s=this.getUnitSkeleton(i,r);this._currentSkeletonBefore$.next(s),this._currentSkeleton$.next(s)}reCalculate(){const e=this.getCurrent();e!=null&&this._reCalculate(e)}_reCalculate(e){e.dirty&&(e.skeleton.makeDirty(!0),e.dirty=!1),e.skeleton.calculate()}makeDirty(e,t=!0){const i=this._getSkeleton(e);i!=null&&(i.dirty=t)}getOrCreateSkeleton(e){const t=this._getSkeleton(e);if(t)return t.skeleton;const r=this._context.unit.getSheetBySheetId(e.sheetId);if(!r)return;const s=this._buildSkeleton(r);return this._sheetSkeletonParam.push({sheetId:e.sheetId,skeleton:s,dirty:!1}),s}disposeSkeleton(e){const t=this._sheetSkeletonParam.findIndex(i=>i.sheetId===e.sheetId);t>-1&&(this._sheetSkeletonParam[t].skeleton.dispose(),this._sheetSkeletonParam.splice(t,1))}attachRangeWithCoord(e){const t=this.getCurrentSkeleton();return t?Eo(t,e):null}_getSkeleton(e){const t=this._sheetSkeletonParam.find(i=>i.sheetId===e.sheetId);return t!=null&&(t.commandId=e.commandId),t}_buildSkeleton(e){const t=e.getConfig();return this._injector.createInstance(w.SpreadsheetSkeleton,e,t,e.getCellMatrix(),this._context.unit.getStyles())}},M.SheetSkeletonManagerService=mc([fc(1,l.Inject(l.Injector))],M.SheetSkeletonManagerService);function Eo(n,o){const{startRow:e,startColumn:t,endRow:i,endColumn:r,rangeType:s}=o,a=n.getNoMergeCellPositionByIndex(e,t),c=n.getNoMergeCellPositionByIndex(i,r);return{startRow:e,startColumn:t,endRow:i,endColumn:r,rangeType:s,startY:(a==null?void 0:a.startY)||0,endY:(c==null?void 0:c.endY)||0,startX:(a==null?void 0:a.startX)||0,endX:(c==null?void 0:c.endX)||0}}var Sc=Object.defineProperty,gc=Object.getOwnPropertyDescriptor,pc=(n,o,e,t)=>{for(var i=t>1?void 0:t?gc(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Sc(o,e,i),i},vc=(n,o)=>(e,t)=>o(e,t,n);let be=class{constructor(n,o){E(this,"_scrollStateMap",new Map);E(this,"_scrollInfo$",new A.BehaviorSubject(null));E(this,"rawScrollInfo$",this._scrollInfo$.asObservable());E(this,"validViewportScrollInfo$",new A.BehaviorSubject(null));E(this,"_searchParamForScroll",null);this._context=n,this._sheetSkeletonManagerService=o}dispose(){this._scrollInfo$.complete()}setSearchParam(n){this._searchParamForScroll=n}setSearchParamAndRefresh(n){this._searchParamForScroll=n,this._scrollStateNext(n)}getScrollStateByParam(n){return this._getCurrentScroll(n)}getCurrentScrollState(){return this._getCurrentScroll(this._searchParamForScroll)}setScrollInfoAndEmitEvent(n){this._setScrollState(n),this._scrollStateNext(n)}setScrollStateToCurrSheetAndEmitEvent(n){this._searchParamForScroll!=null&&(this._setScrollState({...this._searchParamForScroll,...n}),this._scrollStateNext(this._searchParamForScroll))}setScrollStateToCurrSheet(n){this._searchParamForScroll!=null&&this._setScrollState({...this._searchParamForScroll,...n})}clear(){this._searchParamForScroll!=null&&this._clearByParamAndNotify(this._searchParamForScroll)}calcViewportScrollFromRowColOffset(n){if(!n)return{viewportScrollX:0,viewportScrollY:0};let{sheetViewStartColumn:o,sheetViewStartRow:e,offsetX:t,offsetY:i}=n;e=e||0,i=i||0;const r=this._sheetSkeletonManagerService.getCurrentSkeleton(),s=(r==null?void 0:r.rowHeightAccumulation[e-1])||0,c=((r==null?void 0:r.columnWidthAccumulation[o-1])||0)+t,d=s+i;return{viewportScrollX:c,viewportScrollY:d}}_setScrollState(n){const{unitId:o,sheetId:e,sheetViewStartColumn:t,sheetViewStartRow:i,offsetX:r,offsetY:s}=n;this._scrollStateMap.has(o)||this._scrollStateMap.set(o,new Map);const a=this._scrollStateMap.get(o),c={sheetViewStartRow:i,sheetViewStartColumn:t,offsetX:r,offsetY:s};a.set(e,c)}_clearByParamAndNotify(n){this._setScrollState({...n,sheetViewStartRow:0,sheetViewStartColumn:0,offsetX:0,offsetY:0}),this._scrollStateNext(n)}_getCurrentScroll(n){var t;if(n==null)return;const{unitId:o,sheetId:e}=n;return(t=this._scrollStateMap.get(o))==null?void 0:t.get(e)}_scrollStateNext(n){const o=this._getCurrentScroll(n);this._scrollInfo$.next(o)}};be=pc([vc(1,l.Inject(M.SheetSkeletonManagerService))],be);const Qe={id:"sheet.operation.set-scroll",type:l.CommandType.OPERATION,handler:(n,o)=>{if(!o)return!1;const{unitId:e,sheetId:t,offsetX:i,offsetY:r,sheetViewStartColumn:s,sheetViewStartRow:a}=o,c=n.get(l.IUniverInstanceService),d=n.get(w.IRenderManagerService),h=c.getUniverSheetInstance(e).getSheetBySheetId(t),f=d.getRenderById(e).with(be),{xSplit:S,ySplit:g}=h.getConfig().freeze;return f.setScrollInfoAndEmitEvent({unitId:e,sheetId:t,offsetX:i,offsetY:r,sheetViewStartRow:a-g,sheetViewStartColumn:s-S}),!0}},ot={id:"sheet.command.set-scroll-relative",type:l.CommandType.COMMAND,handler:async(n,o)=>{const e=n.get(l.ICommandService),t=n.get(l.IUniverInstanceService),i=n.get(w.IRenderManagerService),r=m.getSheetCommandTarget(t);if(!r)return!1;const{unitId:s,subUnitId:a,worksheet:c}=r,{xSplit:d,ySplit:u}=c.getConfig().freeze,f=i.getRenderById(s).with(be).getCurrentScrollState(),{offsetX:S=0,offsetY:g=0}=o||{},{sheetViewStartRow:p=0,sheetViewStartColumn:v=0,offsetX:C=0,offsetY:I=0}=f||{};return e.executeCommand(Qe.id,{unitId:s,sheetId:a,sheetViewStartRow:p+u,sheetViewStartColumn:v+d,offsetX:C+S,offsetY:I+g})}},xe={id:"sheet.command.scroll-view",type:l.CommandType.COMMAND,handler:(n,o)=>{if(!o)return!1;const e=n.get(l.IUniverInstanceService),t=n.get(w.IRenderManagerService),i=m.getSheetCommandTarget(e);if(!i)return!1;const{workbook:r,worksheet:s,unitId:a}=i,d=t.getRenderById(a).with(be).getCurrentScrollState();if(!s)return!1;const{sheetViewStartRow:u,sheetViewStartColumn:h,offsetX:f,offsetY:S}=o,{sheetViewStartColumn:g,sheetViewStartRow:p,offsetX:v,offsetY:C}=d||{},{xSplit:I,ySplit:b}=s.getConfig().freeze;return n.get(l.ICommandService).syncExecuteCommand(Qe.id,{unitId:r.getUnitId(),sheetId:s.getSheetId(),sheetViewStartRow:u!=null?u:(p!=null?p:0)+b,sheetViewStartColumn:h!=null?h:(g!=null?g:0)+I,offsetX:f!=null?f:v,offsetY:S!=null?S:C})}},Po={id:"sheet.command.scroll-to-cell",type:l.CommandType.COMMAND,handler:(n,o)=>{const e=n.get(l.IUniverInstanceService);return n.get(w.IRenderManagerService).getRenderById(e.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(M.SheetsScrollRenderController).scrollToRange(o.range)}},Cc={id:"sheet.command.scroll-view-reset",type:l.CommandType.COMMAND,handler:async n=>{const o=n.get(l.IUniverInstanceService),e=m.getSheetCommandTarget(o);if(!e)return!1;const{subUnitId:t,unitId:i}=e;return n.get(l.ICommandService).executeCommand(Qe.id,{unitId:i,sheetId:t,sheetViewStartRow:0,sheetViewStartColumn:0})}};var _c=Object.defineProperty,Ic=Object.getOwnPropertyDescriptor,bc=(n,o,e,t)=>{for(var i=t>1?void 0:t?Ic(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&_c(o,e,i),i},cs=(n,o)=>(e,t)=>o(e,t,n);let Dt=class{constructor(n,o){E(this,"_current",null);E(this,"_shortcutParam",[]);this._univerInstanceService=n,this._localeService=o}dispose(){this._shortcutParam=[]}getCurrentBySearch(n){return this._getCurrentBySearch(n)}getCurrent(){return this._getCurrentBySearch(this._current)}addOrUpdate(n){const o=this._getCurrentBySearch({unitId:n.unitId,sheetId:n.sheetId,keycode:n.keycode});if(o!=null){const e=this._shortcutParam.indexOf(o);this._shortcutParam.splice(e,1)}return this._shortcutParam.push(n),o}remove(n){if(n==null)return;const o=this._getCurrentBySearch(n);if(o==null)return;const e=this._shortcutParam.indexOf(o);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)}};Dt=bc([cs(0,l.IUniverInstanceService),cs(1,l.Inject(l.LocaleService))],Dt);var ai=(n=>(n.MergeAll="mergeAll",n.MergeVertical="mergeVertical",n.MergeHorizontal="mergeHorizontal",n))(ai||{});function rt(n,o,e,t,i=!0,r=1,s=!0){let a={...n};t==null&&(t={startRow:0,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1});let c;switch(o){case l.Direction.UP:for(c=n.startRow-r;c>-1&&!e.getRowVisible(c);)c-=1;c>=t.startRow?(a.startRow=c,a.endRow=c):s&&(a.startRow=t.endRow,a.endRow=t.endRow,i&&(a=rt(a,l.Direction.LEFT,e,t,!1)));break;case l.Direction.DOWN:for(c=n.endRow+r;c<e.getRowCount()&&!e.getRowVisible(c);)c+=1;c<=t.endRow?(a.startRow=c,a.endRow=c):s&&(a.startRow=t.startRow,a.endRow=t.startRow,i&&(a=rt(a,l.Direction.RIGHT,e,t,!1)));break;case l.Direction.LEFT:for(c=n.startColumn-r;c>-1&&!e.getColVisible(c);)c-=1;c>=t.startColumn?(a.startColumn=c,a.endColumn=c):s&&(a.startColumn=t.endColumn,a.endColumn=t.endColumn,i&&(a=rt(a,l.Direction.UP,e,t,!1)));break;case l.Direction.RIGHT:for(c=n.endColumn+r;c<e.getColumnCount()&&!e.getColVisible(c);)c+=1;c<=t.endColumn?(a.startColumn=c,a.endColumn=c):s&&(a.startColumn=t.startColumn,a.endColumn=t.startColumn,i&&(a=rt(a,l.Direction.DOWN,e,t,!1)));break}return a}function wo(n,o,e){const t={...n},{startRow:i,startColumn:r,endRow:s,endColumn:a}=mn(n,o,e);let c=fn(e,i,r,s,a).hasValue,d=!0,u=!0;for(;u;){if(l.Direction.UP===o){let h=t.startRow-1;for(;h>-1&&!e.getRowVisible(h);)h-=1;if(h===-1){u=!1;break}const{hasValue:f,matrix:S}=fn(e,h,t.startColumn,h,t.endColumn);if(c&&!f&&!d){u=!1;break}else{if(S.getLength()!==0){let g=h;S.forValue(p=>{g=Math.min(p,g)}),t.startRow=g}else t.startRow=h;if(t.endRow=t.startRow,!c&&f){u=!1;break}c=f,d=!1}}if(l.Direction.DOWN===o){let h=t.endRow+1;for(;h<e.getRowCount()&&!e.getRowVisible(h);)h+=1;if(h===e.getRowCount()){u=!1;break}const{hasValue:f,matrix:S}=fn(e,h,t.startColumn,h,t.endColumn);if(c&&!f&&!d){u=!1;break}else{if(S.getLength()!==0){let g=h;S.forValue((p,v,C)=>{g=Math.max(p+(C.rowSpan||1)-1,g)}),t.endRow=g}else t.endRow=h;if(t.startRow=t.endRow,!c&&f){u=!1;break}c=f,d=!1}}if(l.Direction.LEFT===o){let h=t.startColumn-1;for(;h>-1&&!e.getColVisible(h);)h-=1;if(h===-1){u=!1;break}const{hasValue:f,matrix:S}=fn(e,t.startRow,h,t.endRow,h);if(c&&!f&&!d){u=!1;break}else{if(S.getLength()!==0){let g=h;S.forValue((p,v)=>{g=Math.min(v,g)}),t.startColumn=g}else t.startColumn=h;if(t.endColumn=t.startColumn,!c&&f){u=!1;break}c=f,d=!1}}if(l.Direction.RIGHT===o){let h=t.endColumn+1;for(;h<e.getColumnCount()&&!e.getColVisible(h);)h+=1;if(h===e.getColumnCount()){u=!1;break}const{hasValue:f,matrix:S}=fn(e,t.startRow,h,t.endRow,h);if(c&&!f&&!d){u=!1;break}else{if(S.getLength()!==0){let g=h;S.forValue((p,v,C)=>{g=Math.max(v+(C.colSpan||1)-1,g)}),t.endColumn=g}else t.endColumn=h;if(t.startColumn=t.endColumn,!c&&f){u=!1;break}c=f,d=!1}}}return m.alignToMergedCellsBorders(t,e,!0)}function ds(n,o,e){return rt(n,o,e,void 0,!1,1,!1)}function Rc(n,o,e){const t=wo(n,o,e);return m.alignToMergedCellsBorders(l.Rectangle.union(t,n),e,!0)}function Tc(n,o,e){const t=ds(n,o,e),i={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(l.Rectangle.union(n,i),e)}function Ec(n,o,e,t){const i=l.getReverseDirection(e),r=wo(mn(n,i,t),e,t);return e===l.Direction.UP&&r.startRow<=n.startRow?m.alignToMergedCellsBorders({...o,startColumn:n.startColumn,endColumn:n.endColumn},t,!0):e===l.Direction.DOWN&&r.endRow>=n.endRow?m.alignToMergedCellsBorders({...o,startColumn:n.startColumn,endColumn:n.endColumn},t,!0):e===l.Direction.LEFT&&r.startColumn<=n.startColumn?m.alignToMergedCellsBorders({...o,startRow:n.startRow,endRow:n.endRow},t,!0):e===l.Direction.RIGHT&&r.endColumn>=n.endColumn?m.alignToMergedCellsBorders({...o,startRow:n.startRow,endRow:n.endRow},t,!0):l.Rectangle.union(l.Rectangle.clone(o),r)}function Pc(n,o,e){const t=l.getReverseDirection(o),i=mn(n,t,e),r=mn(n,o,e),s=ds(i,o,e);return m.alignToMergedCellsBorders(l.Rectangle.union(r,s),e,!1)}function us(n,o,e){const{left:t,right:i,up:r,down:s}=o,a=e.getMaxRows(),c=e.getMaxColumns();let d=!0;const u={...n};for(;d;){if(d=!1,r&&u.startRow!==0){const h=u.startRow-1;e.getMatrixWithMergedCells(h,u.startColumn,h,u.endColumn).forValue((S,g,p)=>{Sn(p)&&(u.startRow=Math.min(S,u.startRow),u.startColumn=Math.min(g,u.startColumn),u.endColumn=Math.max(g,u.endColumn),d=!0)})}if(s&&u.endRow!==a-1){const h=u.endRow+1;e.getMatrixWithMergedCells(h,u.startColumn,h,u.endColumn).forValue((S,g,p)=>{Sn(p)&&(u.endRow=Math.max(S+(p.rowSpan!==void 0?p.rowSpan-1:0),u.endRow),u.startColumn=Math.min(g,u.startColumn),u.endColumn=Math.max(g,u.endColumn),d=!0)})}if(t&&u.startColumn!==0){const h=u.startColumn-1;e.getMatrixWithMergedCells(u.startRow,h,u.endRow,h).forValue((S,g,p)=>{Sn(p)&&(u.startColumn=Math.min(g,u.startColumn),u.startRow=Math.min(S,u.startRow),u.endRow=Math.max(S,u.endRow),d=!0)})}if(i&&u.endColumn!==c-1){const h=u.endColumn+1;e.getMatrixWithMergedCells(u.startRow,h,u.endRow,h).forValue((S,g,p)=>{Sn(p)&&(u.endColumn=Math.max(g+(p.colSpan!==void 0?p.colSpan-1:0),u.endColumn),u.startRow=Math.min(S,u.startRow),u.endRow=Math.max(S,u.endRow),d=!0)})}}return u}function hs(n){return{startRow:0,startColumn:0,endRow:n.getRowCount()-1,endColumn:n.getColumnCount()-1,rangeType:l.RANGE_TYPE.ALL}}function mn(n,o,e){let t;switch(o){case l.Direction.UP:t={startRow:n.startRow,startColumn:n.startColumn,endRow:n.startRow,endColumn:n.endColumn,rangeType:l.RANGE_TYPE.NORMAL};break;case l.Direction.DOWN:t={startRow:n.endRow,startColumn:n.startColumn,endRow:n.endRow,endColumn:n.endColumn,rangeType:l.RANGE_TYPE.NORMAL};break;case l.Direction.LEFT:t={startRow:n.startRow,startColumn:n.startColumn,endRow:n.endRow,endColumn:n.startColumn,rangeType:l.RANGE_TYPE.NORMAL};break;case l.Direction.RIGHT:t={startRow:n.startRow,startColumn:n.endColumn,endRow:n.endRow,endColumn:n.endColumn,rangeType:l.RANGE_TYPE.NORMAL};break;default:throw new Error("Invalid direction")}return m.alignToMergedCellsBorders(t,e,!1)}function fn(n,o,e,t,i){let r=!1;const s=n.getMatrixWithMergedCells(o,e,t,i).forValue((a,c,d)=>{if(Sn(d))return r=!0,!1});return{hasValue:r,matrix:s}}function yo(n,o,e){const t=l.Rectangle.clone(n);if(o==null)return t;switch(e){case l.Direction.UP:case l.Direction.DOWN:t.startColumn=t.endColumn=o.actualColumn;break;case l.Direction.LEFT:case l.Direction.RIGHT:t.startRow=t.endRow=o.actualRow;break}return t}function wc(n,o,e){const{primary:t,range:i}=n,r=l.Rectangle.clone(i);switch(o){case l.Direction.UP:case l.Direction.DOWN:r.startRow=t.startRow,r.endRow=t.endRow;break;case l.Direction.LEFT:case l.Direction.RIGHT:r.startColumn=t.startColumn,r.endColumn=t.endColumn;break}const s=mn(r,o,e);switch(o){case l.Direction.DOWN:return i.startRow<s.startRow;case l.Direction.UP:return i.endRow>s.endRow;case l.Direction.LEFT:return s.endColumn<i.endColumn;case l.Direction.RIGHT:return s.startColumn>i.startColumn}}function ms(n,o){let e=n[0].startRow,t=n[0].endRow;n.forEach(r=>{const{startRow:s,endRow:a}=r;e=Math.min(e,s),t=Math.max(t,a)});const i=new Array(t-e+1).fill(!1);return o.forEach(r=>{const{startRow:s,endRow:a}=r;for(let c=Math.max(s,e);c<=Math.min(a,t);c++)i[c-e]=!0}),n.every(r=>{const{startRow:s,endRow:a}=r;for(let c=s;c<=a;c++)if(!i[c-e])return!1;return!0})}function fs(n,o){let e=n[0].startColumn,t=n[0].endColumn;n.forEach(r=>{const{startColumn:s,endColumn:a}=r;e=Math.min(e,s),t=Math.max(t,a)});const i=new Array(t-e+1).fill(!1);return o.forEach(r=>{const{startColumn:s,endColumn:a}=r;for(let c=Math.max(s,e);c<=Math.min(a,t);c++)i[c-e]=!0}),n.every(r=>{const{startColumn:s,endColumn:a}=r;for(let c=s;c<=a;c++)if(!i[c-e])return!1;return!0})}function Mo(n,o){return o?n==="mergeAll"?o.filter(e=>!(e.startRow===e.endRow&&e.startColumn===e.endColumn)):n==="mergeVertical"?o.filter(e=>e.startRow!==e.endRow):n==="mergeHorizontal"?o.filter(e=>e.startColumn!==e.endColumn):o:null}function Sn(n){return n.v!==void 0&&n.v!==null&&n.v!==""||n.p!==void 0}var Ue=(n=>(n[n.moveStopeOne=0]="moveStopeOne",n[n.moveGap=1]="moveGap",n[n.moveStepPage=2]="moveStepPage",n[n.moveStepEnd=3]="moveStepEnd",n))(Ue||{});const Ee={id:"sheet.command.move-selection",type:l.CommandType.COMMAND,handler:async(n,o)=>{if(!o)return!1;const e=m.getSheetCommandTarget(n.get(l.IUniverInstanceService));if(!e)return!1;const{workbook:t,worksheet:i}=e,r=m.getSelectionsService(n).getCurrentLastSelection();if(!r)return!1;const{direction:s,jumpOver:a}=o,{range:c,primary:d}=r,u=yo(c,d,s),h=a===1?wo(u,s,i):rt(u,s,i),f=m.getCellAtRowCol(h.startRow,h.startColumn,i);return l.Rectangle.equals(f,u)?!1:(n.get(Dt).remove({unitId:t.getUnitId(),sheetId:i.getSheetId(),keycode:T.KeyCode.TAB}),n.get(l.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:t.getUnitId(),subUnitId:i.getSheetId(),selections:[{range:l.Rectangle.clone(f),primary:{startRow:f.startRow,startColumn:f.startColumn,endRow:f.endRow,endColumn:f.endColumn,actualRow:h.startRow,actualColumn:h.startColumn,isMerged:f.isMerged,isMergedMainCell:f.startRow===h.startRow&&f.startColumn===h.startColumn}}]}))}},Be={id:"sheet.command.move-selection-enter-tab",type:l.CommandType.COMMAND,handler:async(n,o)=>{if(!o)return!1;const e=m.getSheetCommandTarget(n.get(l.IUniverInstanceService));if(!e)return!1;const{workbook:t,worksheet:i}=e,r=m.getSelectionsService(n).getCurrentLastSelection();if(!r)return!1;const s=t.getUnitId(),a=i.getSheetId();if(!r)return!1;const{direction:c,keycode:d}=o,{range:u,primary:h}=r;let f=yo(u,h,c);const S=n.get(Dt),g=S.getCurrentBySearch({unitId:s,sheetId:a,keycode:T.KeyCode.TAB});let p;const{startRow:v,endRow:C,startColumn:I,endColumn:b}=u;if(l.Rectangle.equals(u,h)){if(d===T.KeyCode.TAB)g==null&&S.addOrUpdate({unitId:s,sheetId:a,keycode:T.KeyCode.TAB,selection:r});else{const y=g==null?void 0:g.selection;if(y!=null){const{range:O,primary:N}=y;f=yo(O,N,c)}S.remove({unitId:s,sheetId:a,keycode:T.KeyCode.TAB})}const R=rt(f,c,i),P=m.getCellAtRowCol(R.startRow,R.startColumn,i);if(l.Rectangle.equals(P,f))return!1;p={range:l.Rectangle.clone(P),primary:{startRow:P.startRow,startColumn:P.startColumn,endRow:P.endRow,endColumn:P.endColumn,actualRow:R.startRow,actualColumn:R.startColumn,isMerged:P.isMerged,isMergedMainCell:P.startRow===R.startRow&&P.startColumn===R.startColumn}}}else{S.remove({unitId:s,sheetId:a,keycode:T.KeyCode.TAB});const R=l.Tools.deepClone(h),P=rt({startRow:R.startRow,startColumn:R.startColumn,endRow:R.endRow,endColumn:R.endColumn},c,i,{startRow:v,endRow:C,startColumn:I,endColumn:b}),y=m.getCellAtRowCol(P.startRow,P.startColumn,i);p={range:l.Rectangle.clone(u),primary:{startRow:y.startRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.endColumn,actualRow:P.startRow,actualColumn:P.startColumn,isMerged:y.isMerged,isMergedMainCell:y.startRow===P.startRow&&y.startColumn===P.startColumn}}}return n.get(l.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:s,subUnitId:a,selections:[p]})}},ye={id:"sheet.command.expand-selection",type:l.CommandType.COMMAND,handler:async(n,o)=>{if(!o)return!1;const e=m.getSheetCommandTarget(n.get(l.IUniverInstanceService));if(!e)return!1;const{worksheet:t,unitId:i,subUnitId:r}=e,s=m.getSelectionsService(n).getCurrentLastSelection();if(!s)return!1;const{range:a,primary:c}=s,{jumpOver:d,direction:u}=o,f=wc(s,u,t)?d===1?Ec(a,{...l.Rectangle.clone(c),rangeType:l.RANGE_TYPE.NORMAL},u,t):Pc(a,u,t):d===1?Rc(a,u,t):Tc(a,u,t);return l.Rectangle.equals(f,a)?!1:n.get(l.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:i,subUnitId:r,selections:[{range:f,primary:c}]})}};let Fe=[],Oo="";const ci={id:"sheet.command.select-all",type:l.CommandType.COMMAND,onDispose(){Fe=[],Oo=""},handler:async(n,o={expandToGapFirst:!0,loop:!1})=>{const e=m.getSelectionsService(n).getCurrentLastSelection(),t=m.getSheetCommandTarget(n.get(l.IUniverInstanceService));if(!t)return!1;const{worksheet:i,unitId:r,subUnitId:s}=t;if(!e||!i)return!1;const a=`${r}|${s}`;a!==Oo&&(Fe=[],Oo=a);const c=i.getMaxRows(),d=i.getMaxColumns(),{expandToGapFirst:u,loop:h}=o,{range:f,primary:S}=e,g=f.endColumn===d-1&&f.endRow===c-1&&f.startRow===0&&f.startColumn===0;Fe.some(v=>l.Rectangle.equals(v,f))||(Fe=[],Fe.push(f));let p;if(g)if(h){if(Fe.findIndex(C=>l.Rectangle.equals(C,f))!==Fe.length-1)return!1;p=Fe[0]}else return!1;else u?(p=us(f,{left:!0,right:!0,up:!0,down:!0},i),l.Rectangle.equals(p,f)&&(p=hs(i))):p=hs(i);return Fe.some(v=>l.Rectangle.equals(v,p))||Fe.push(p),n.get(l.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:r,subUnitId:s,selections:[{range:p,primary:S}]})}};var de=(n=>(n.MAIN="__SpreadsheetRender__",n.ROW="__SpreadsheetRowHeader__",n.COLUMN="__SpreadsheetColumnHeader__",n.LEFT_TOP="__SpreadsheetLeftTopPlaceholder__",n))(de||{}),Ss=(n=>(n.VIEW_MAIN="viewMain",n.VIEW_MAIN_LEFT_TOP="viewMainLeftTop",n.VIEW_MAIN_TOP="viewMainTop",n.VIEW_MAIN_LEFT="viewMainLeft",n.VIEW_ROW_TOP="viewRowTop",n.VIEW_ROW_BOTTOM="viewRowBottom",n.VIEW_COLUMN_LEFT="viewColumnLeft",n.VIEW_COLUMN_RIGHT="viewColumnRight",n.VIEW_LEFT_TOP="viewLeftTop",n))(Ss||{});const gs=0,ps=1,st=10,Ao=[10,400],yc=11,vs=12;function Mc(n){return typeof n.isMainScene>"u"}function je(n,o){const e=n instanceof l.Workbook?n:n.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!e)return null;const t=e.getUnitId();let i,r,s,a;if(Mc(o)){const f=o.getRenderById(t);if(f==null)return null;i=f.components,i=f.components,r=f.mainComponent,s=f.scene,a=f.engine}else i=o.components,r=o.mainComponent,s=o.scene,a=o.engine;if(!i||!r)return null;const c=r,d=i.get(de.ROW),u=i.get(de.COLUMN),h=i.get(de.LEFT_TOP);return{spreadsheet:c,spreadsheetRowHeader:d,spreadsheetColumnHeader:u,spreadsheetLeftTopPlaceholder:h,scene:s,engine:a}}function No(n,o,e,t){const{startX:i,startY:r,endX:s,endY:a}=t.getCellByIndex(n,o);return{startX:i,startY:r,endX:s,endY:a}}function Xe(n,o,e,t,i,r){const s=e.getRelativeToViewportCoord(w.Vector2.FromArray([n,o])),{x:a,y:c}=s,d=e.getVpScrollXYInfoByPosToVp(s,i),{scaleX:u,scaleY:h}=e.getAncestorScale(),f=t.getCellPositionByOffset(a,c,u,h,d,r),{row:S,column:g}=f,p=t.getNoMergeCellPositionByIndex(S,g),{startX:v,startY:C,endX:I,endY:b}=p;return{startX:v,startY:C,endX:I,endY:b,row:S,column:g}}function gn(n,o,e,t){const i=e.getRelativeToViewportCoord(w.Vector2.FromArray([n,o])),r=e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),s=e.getVpScrollXYInfoByPosToVp(i,r),{scaleX:a,scaleY:c}=e.getAncestorScale(),{x:d,y:u}=s,h=n/a+d,f=o/c+u;return{x:h,y:f}}var Oc=Object.defineProperty,Ac=Object.getOwnPropertyDescriptor,Nc=(n,o,e,t)=>{for(var i=t>1?void 0:t?Ac(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Oc(o,e,i),i},pn=(n,o)=>(e,t)=>o(e,t,n);const Dc=[Ee.id,Be.id];M.SheetsScrollRenderController=class extends l.Disposable{constructor(o,e,t,i,r,s){super(),this._context=o,this._injector=e,this._sheetSkeletonManagerService=t,this._commandService=i,this._renderManagerService=r,this._scrollManagerService=s,this._init()}scrollToRange(o){let{endRow:e,endColumn:t,startColumn:i,startRow:r}=o;const s=this._getViewportBounding();if(o.rangeType===l.RANGE_TYPE.ROW?(i=0,t=0):o.rangeType===l.RANGE_TYPE.COLUMN&&(r=0,e=0),s){const a=s.startRow>e?r:e,c=s.startColumn>t?i:t;return this._scrollToCell(a,c)}else return this._scrollToCell(r,i)}_init(){this._initCommandListener(),this._initScrollEventListener(),this._initSkeletonListener()}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(Dc.includes(o.id))this._scrollToSelection();else if(o.id===m.ScrollToCellOperation.id){const e=o.params;this.scrollToRange(e)}else if(o.id===ye.id){const e=o.params;this._scrollToSelectionForExpand(e)}}))}_scrollToSelectionForExpand(o){setTimeout(()=>{const e=this._getSelectionsService().getCurrentLastSelection();if(e==null)return;const{startRow:t,startColumn:i,endRow:r,endColumn:s}=e.range,a=this._getViewportBounding();if(a==null)return;const{startRow:c,startColumn:d,endRow:u,endColumn:h}=a;let f=0,S=0;t>c?f=r:r<u?f=t:f=c,i>d?S=s:s<h?S=i:S=d,o.direction===l.Direction.DOWN?f=r:o.direction===l.Direction.UP?f=t:o.direction===l.Direction.RIGHT?S=s:o.direction===l.Direction.LEFT&&(S=i),this._scrollToCell(f,S)},0)}_getFreeze(){var e;const o=(e=this._sheetSkeletonManagerService.getCurrent())==null?void 0:e.skeleton.getWorksheetConfig();if(o!=null)return o.freeze}_initScrollEventListener(){const{scene:o}=this._context;if(o==null)return;const e=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);e&&(this.disposeWithMe(l.toDisposable(this._scrollManagerService.rawScrollInfo$.subscribe(t=>{var S;const i=(S=this._sheetSkeletonManagerService.getCurrent())==null?void 0:S.skeleton;if(!i)return;if(t==null){e.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0});return}const{sheetViewStartRow:r,sheetViewStartColumn:s,offsetX:a,offsetY:c}=t,{startX:d,startY:u}=i.getCellByIndexWithNoHeader(r,s),h=d+a,f=u+c;e.scrollToViewportPos({viewportScrollX:h,viewportScrollY:f})}))),this.disposeWithMe(e.onScrollAfter$.subscribeEvent(t=>{var p;const i=(p=this._sheetSkeletonManagerService.getCurrent())==null?void 0:p.skeleton;if(i==null||t.isTrigger===!1)return;const r=this._getSheetObject();if(i==null||r==null)return;const{viewportScrollX:s,viewportScrollY:a,scrollX:c,scrollY:d}=t,{row:u,column:h,rowOffset:f,columnOffset:S}=i.getDecomposedOffset(s,a),g={sheetViewStartRow:u,sheetViewStartColumn:h,offsetX:S,offsetY:f};this._scrollManagerService.setScrollStateToCurrSheet(g),this._scrollManagerService.validViewportScrollInfo$.next({...g,viewportScrollX:s,viewportScrollY:a,scrollX:c,scrollY:d})})),this.disposeWithMe(e.onScrollByBar$.subscribeEvent(t=>{var S;const i=(S=this._sheetSkeletonManagerService.getCurrent())==null?void 0:S.skeleton;if(i==null||t.isTrigger===!1)return;const r=this._getSheetObject();if(i==null||r==null)return;const{viewportScrollX:s=0,viewportScrollY:a=0}=t,c=this._getFreeze(),{row:d,column:u,rowOffset:h,columnOffset:f}=i.getDecomposedOffset(s,a);this._commandService.executeCommand(xe.id,{sheetViewStartRow:d+((c==null?void 0:c.ySplit)||0),sheetViewStartColumn:u+((c==null?void 0:c.xSplit)||0),offsetX:f,offsetY:h})})))}_initSkeletonListener(){this.disposeWithMe(l.toDisposable(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(o=>{if(o==null)return;const e={unitId:o.unitId,sheetId:o.sheetId};this._scrollManagerService.setSearchParam(e);const t=this._getSheetObject();if(!t)return;const r=t.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),s=this._scrollManagerService.getScrollStateByParam(e),{viewportScrollX:a,viewportScrollY:c}=this._scrollManagerService.calcViewportScrollFromRowColOffset(s);r&&(s?(r.viewportScrollX=a,r.viewportScrollY=c):(r.viewportScrollX=0,r.viewportScrollY=0),this._updateSceneSize(o))})))}_updateSceneSize(o){var f;if(o==null)return;const{unitId:e}=this._context,{skeleton:t}=o,i=(f=this._renderManagerService.getRenderById(e))==null?void 0:f.scene;if(t==null||i==null)return;const{rowTotalHeight:r,columnTotalWidth:s,rowHeaderWidthAndMarginLeft:a,columnHeaderHeightAndMarginTop:c}=t,u=this._context.unit.getActiveSheet();if(!u)return;const h=u.getZoomRatio()||1;i==null||i.setScaleValue(h,h),i==null||i.transformByState({width:a+s,height:c+r})}_getSheetObject(){return je(this._context.unit,this._context)}_scrollToSelectionByDirection(o){const e=this._getViewportBounding();if(e==null)return!1;const{startRow:t,startColumn:i,endRow:r,endColumn:s}=e;let a=0,c=0;const{startRow:d,startColumn:u,endRow:h,endColumn:f}=o;d>=t&&(a=h),h<=r&&(a=d),u>=i&&(c=f),f<=s&&(c=u),this._scrollToCell(a,c)}_scrollToSelection(o=!0){const e=this._getSelectionsService().getCurrentLastSelection();if(e==null)return;const{startRow:t,startColumn:i,actualRow:r,actualColumn:s}=e.primary,a=o?r:t,c=o?s:i;this._scrollToCell(a,c)}_getSelectionsService(){return m.getSelectionsService(this._injector)}_getViewportBounding(){var r,s;const o=(r=this._getSheetObject())==null?void 0:r.scene;if(o==null)return;const e=o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(e==null)return;const t=(s=this._sheetSkeletonManagerService.getCurrent())==null?void 0:s.skeleton;if(t==null)return;const i=e.getBounding();return t.getRowColumnSegment(i)}_scrollToCell(o,e){var y,O,N,D;const{rowHeightAccumulation:t,columnWidthAccumulation:i}=(O=(y=this._sheetSkeletonManagerService.getCurrent())==null?void 0:y.skeleton)!=null?O:{};if(t==null||i==null)return!1;const r=(N=this._getSheetObject())==null?void 0:N.scene;if(r==null)return!1;const s=r.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(s==null||((D=this._sheetSkeletonManagerService.getCurrent())==null?void 0:D.skeleton)==null)return!1;const c=this._context.unit.getActiveSheet();if(!c)return!1;const{startColumn:d,startRow:u,ySplit:h,xSplit:f}=c.getFreeze(),S=this._getViewportBounding();if(S==null)return!1;const{startRow:g,startColumn:p,endRow:v,endColumn:C}=S;let I,b;if(o>=u&&e>=d-f&&(o<=g&&(I=o),o>=v)){const k=t[o]-s.height;for(let H=g;H<=o;H++)if(t[H]>=k){I=H+1;break}}if(e>=d&&o>=u-h&&(e<=p&&(b=e),e>=C)){const k=i[e]-s.width;for(let H=p;H<=e;H++)if(i[H]>=k){b=H+1;break}}if(I===void 0&&b===void 0)return!1;const{offsetX:R,offsetY:P}=this._scrollManagerService.getCurrentScrollState()||{};return this._commandService.syncExecuteCommand(xe.id,{sheetViewStartRow:I,sheetViewStartColumn:b,offsetX:b===void 0?R:0,offsetY:I===void 0?P:0})}},M.SheetsScrollRenderController=Nc([pn(1,l.Inject(l.Injector)),pn(2,l.Inject(M.SheetSkeletonManagerService)),pn(3,l.ICommandService),pn(4,w.IRenderManagerService),pn(5,l.Inject(be))],M.SheetsScrollRenderController);var di=(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.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(di||{}),kt=(n=>(n[n.SomeCollaborator=0]="SomeCollaborator",n[n.AllCollaborator=1]="AllCollaborator",n[n.OneSelf=2]="OneSelf",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(kt||{}),Q=(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.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(Q||{}),_e=(n=>(n[n.Reader=0]="Reader",n[n.Editor=1]="Editor",n[n.Owner=2]="Owner",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(_e||{}),oe=(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))(oe||{});function kc(n){return n.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).pipe(A.switchMap(o=>o?o.activeSheet$.pipe(A.map(e=>e?{workbook:o,worksheet:e}:null)):A.of(null)))}function Re(n,o,e){return kc(n).pipe(A.switchMap(t=>t?e(t):A.of(o)))}function ne(n,o={}){const t=n.get(l.IUniverInstanceService).getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),i=n.get(l.UserManagerService);return A.combineLatest([i.currentUser$,t]).pipe(A.switchMap(([r,s])=>s?s.activeSheet$.pipe(A.switchMap(a=>{if(!a)return A.of(!0);const c=n.get(m.SheetsSelectionsService),d=n.get(m.RangeProtectionRuleModel),u=n.get(m.WorksheetProtectionRuleModel),f=n.get(l.IContextService).subscribeContextValue$(l.FOCUSING_COMMON_DRAWINGS).pipe(A.startWith(!1));return A.combineLatest([c.selectionMoveEnd$,f]).pipe(A.switchMap(([S,g])=>{if(g)return A.of(!0);const p=s.getUnitId(),v=a.getSheetId(),C=n.get(l.IPermissionService),{workbookTypes:I=[m.WorkbookEditablePermission],worksheetTypes:b,rangeTypes:R}=o,P=[];if(I==null||I.forEach(D=>{P.push(new D(p).id)}),b==null||b.forEach(D=>{P.push(new D(p,v).id)}),u.getRule(p,v))return C.composePermission$(P).pipe(A.map(D=>D.some(k=>k.value===!1)));const O=S==null?void 0:S.map(D=>D.range),N=d.getSubunitRuleList(p,v).filter(D=>O==null?void 0:O.some(k=>D.ranges.some(H=>l.Rectangle.intersects(k,H))));return R==null||R.forEach(D=>{N.forEach(k=>{P.push(new D(p,v,k.permissionId).id)})}),C.composePermission$(P).pipe(A.map(D=>D.some(k=>k.value===!1)))}))})):A.of(!0)))}function ui(n){const o=n.get(l.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=n.get(m.RangeProtectionRuleModel);return e.selectionMoveEnd$.pipe(A.map(()=>{var u;const i=(u=e.getCurrentLastSelection())==null?void 0:u.range;if(!i)return!0;const r=o.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),s=r.getActiveSheet();if(!s)return!0;const a=r.getUnitId(),c=s.getSheetId();return t.getSubunitRuleList(a,c).reduce((h,f)=>[...h,...f.ranges],[]).filter(h=>l.Rectangle.intersects(i,h)).some(h=>{var v,C;const{startRow:f,startColumn:S,endRow:g,endColumn:p}=h;for(let I=f;I<=g;I++)for(let b=S;b<=p;b++){const R=(C=(v=s.getCell(I,b))==null?void 0:v.selectionProtection)==null?void 0:C[0];if((R==null?void 0:R[Q.Edit])===!1)return!0}return!1})}))}function Cs(n,o){const e=n.get(l.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),i=n.get(m.RangeProtectionRuleModel);return t.selectionMoveEnd$.pipe(A.map(()=>{var h;const r=(h=t.getCurrentLastSelection())==null?void 0:h.range;if(!r)return!0;const s=e.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),a=s.getActiveSheet();if(!a)return!0;const c=s.getUnitId(),d=a.getSheetId();return i.getSubunitRuleList(c,d).reduce((f,S)=>[...f,...S.ranges],[]).filter(f=>o==="row"?r.endRow>f.startRow&&r.endRow<=f.endRow:r.endColumn>f.startColumn&&r.endColumn<=f.endColumn).some(f=>{var C,I;const{startRow:S,startColumn:g,endRow:p,endColumn:v}=f;for(let b=S;b<=p;b++)for(let R=g;R<=v;R++){const P=(I=(C=a.getCell(b,R))==null?void 0:C.selectionProtection)==null?void 0:I[0];if((P==null?void 0:P[Q.Edit])===!1)return!0}return!1})}))}function _s(n,o){const e=n.get(l.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),i=n.get(m.RangeProtectionRuleModel);return t.selectionMoveEnd$.pipe(A.map(()=>{var h;const r=(h=t.getCurrentLastSelection())==null?void 0:h.range;if(!r)return!0;const s=e.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),a=s.getActiveSheet();if(!a)return!0;const c=s.getUnitId(),d=a.getSheetId();return i.getSubunitRuleList(c,d).reduce((f,S)=>[...f,...S.ranges],[]).filter(f=>o==="row"?r.startRow>f.startRow&&r.startRow<=f.endRow:r.startColumn>f.startColumn&&r.startColumn<=f.endColumn).some(f=>{var C,I;const{startRow:S,startColumn:g,endRow:p,endColumn:v}=f;for(let b=S;b<=p;b++)for(let R=g;R<=v;R++){const P=(I=(C=a.getCell(b,R))==null?void 0:C.selectionProtection)==null?void 0:I[0];if((P==null?void 0:P[Q.Edit])===!1)return!0}return!1})}))}function Is(n,o){const e=n.get(l.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),i=n.get(m.RangeProtectionRuleModel);return t.selectionMoveEnd$.pipe(A.map(()=>{var f;const r=(f=t.getCurrentLastSelection())==null?void 0:f.range;if(!r)return!0;const s=e.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),a=s.getActiveSheet();if(!a)return!0;const c=s.getUnitId(),d=a.getSheetId(),u=l.Tools.deepClone(r);return o==="row"?(u.startColumn=0,u.endColumn=a.getColumnCount()-1):(u.startRow=0,u.endRow=a.getRowCount()-1),i.getSubunitRuleList(c,d).reduce((S,g)=>[...S,...g.ranges],[]).filter(S=>l.Rectangle.intersects(u,S)).some(S=>{var I,b;const{startRow:g,startColumn:p,endRow:v,endColumn:C}=S;for(let R=g;R<=v;R++)for(let P=p;P<=C;P++){const y=(b=(I=a.getCell(R,P))==null?void 0:I.selectionProtection)==null?void 0:b[0];if((y==null?void 0:y[Q.Edit])===!1)return!0}return!1})}))}function hi(n,o){const e=n.get(l.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),i=n.get(m.RangeProtectionRuleModel);return t.selectionMoveEnd$.pipe(A.map(()=>{var f;const r=(f=t.getCurrentLastSelection())==null?void 0:f.range;if(!r)return!0;const s=e.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),a=s.getActiveSheet();if(!a)return!0;const c=s.getUnitId(),d=a.getSheetId(),u=l.Tools.deepClone(r);return o==="row"?u.endRow=a.getRowCount()-1:u.endColumn=a.getColumnCount()-1,i.getSubunitRuleList(c,d).reduce((S,g)=>[...S,...g.ranges],[]).filter(S=>l.Rectangle.intersects(S,u)).some(S=>{var I,b;const{startRow:g,startColumn:p,endRow:v,endColumn:C}=S;for(let R=g;R<=v;R++)for(let P=p;P<=C;P++){const y=(b=(I=a.getCell(R,P))==null?void 0:I.selectionProtection)==null?void 0:b[0];if((y==null?void 0:y[Q.Edit])===!1)return!0}return!1})}))}function Ht(n,o){const t=n.get(l.IUniverInstanceService).getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),i=n.get(m.WorksheetProtectionRuleModel),r=n.get(m.RangeProtectionRuleModel),s=n.get(l.IPermissionService),a=n.get(l.UserManagerService);return A.combineLatest([a.currentUser$,t]).pipe(A.switchMap(([c,d])=>d?d.activeSheet$.pipe(A.switchMap(u=>{var p,v;if(!u)return A.of(!0);const h=d.getUnitId(),f=[];o.forEach(C=>f.push(new C(h).id));const S=s.composePermission$(f).pipe(A.map(C=>C.every(I=>I.value===!0))),g=(v=(p=s.getPermissionPoint$(new m.WorkbookManageCollaboratorPermission(h).id))==null?void 0:p.pipe(A.map(C=>C.value)))!=null?v:A.of(!1);return A.combineLatest([S,g]).pipe(A.map(([C,I])=>{if(!C)return!0;const b=u.getSheetId(),R=i.getRule(h,b),P=r.getSubunitRuleList(h,b);return R||P.length?!I:!1}))})):A.of(!0)))}var Hc=Object.defineProperty,Vc=Object.getOwnPropertyDescriptor,Lc=(n,o,e,t)=>{for(var i=t>1?void 0:t?Vc(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Hc(o,e,i),i},Do=(n,o)=>(e,t)=>o(e,t,n);M.SheetsRenderService=class extends l.RxDisposable{constructor(e,t,i){super();E(this,"_skeletonChangeMutations",new Set);this._contextService=e,this._instanceSrv=t,this._renderManagerService=i,Promise.resolve().then(()=>this._init())}registerSkeletonChangingMutations(e){return this._skeletonChangeMutations.has(e)?l.toDisposable(()=>{}):(this._skeletonChangeMutations.add(e),l.toDisposable(()=>this._skeletonChangeMutations.delete(e)))}checkMutationShouldTriggerRerender(e){return this._skeletonChangeMutations.has(e)}_init(){this._initWorkbookListener(),this._initContextListener()}_initWorkbookListener(){this._instanceSrv.getTypeOfUnitAdded$(l.UniverInstanceType.UNIVER_SHEET).pipe(A.takeUntil(this.dispose$)).subscribe(e=>this._createRenderer(e)),this._instanceSrv.getAllUnitsForType(l.UniverInstanceType.UNIVER_SHEET).forEach(e=>this._createRenderer(e)),this._instanceSrv.getTypeOfUnitDisposed$(l.UniverInstanceType.UNIVER_SHEET).pipe(A.takeUntil(this.dispose$)).subscribe(e=>this._disposeRenderer(e))}_createRenderer(e){const t=e.getUnitId();this._renderManagerService.createRender(t),this._renderManagerService.setCurrent(t)}_disposeRenderer(e){const t=e.getUnitId();this._renderManagerService.removeRender(t)}_initContextListener(){this._contextService.subscribeContextValue$(w.RENDER_RAW_FORMULA_KEY).pipe(A.distinctUntilChanged(),A.takeUntil(this.dispose$)).subscribe(()=>{this._renderManagerService.getRenderAll().forEach(e=>{e.mainComponent instanceof w.Spreadsheet&&e.mainComponent.makeForceDirty(!0)})})}},M.SheetsRenderService=Lc([l.OnLifecycle(l.LifecycleStages.Ready,M.SheetsRenderService),Do(0,l.IContextService),Do(1,l.IUniverInstanceService),Do(2,w.IRenderManagerService)],M.SheetsRenderService);function Vt(n,o,e,t){const i=o.get(l.IUniverInstanceService),r=e?i.getUnit(e,l.UniverInstanceType.UNIVER_SHEET):i.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),s=t?r==null?void 0:r.getSheetBySheetId(t):r==null?void 0:r.getActiveSheet();if(!s)return null;const{startRow:a,endRow:c,startColumn:d,endColumn:u}=n,h=[],f=[];for(let S=a;S<=c;S++)s.getRowFiltered(S)||h.push(S);for(let S=d;S<=u;S++)f.push(S);return{rows:h,cols:f}}function ft(n){const{rows:o,cols:e}=n;return{startRow:o[0],endRow:o[o.length-1],startColumn:e[0],endColumn:e[e.length-1]}}function Lt(n){let o=[],e=[];const t=[];return n.forEach(i=>{o.push(...i.rows),e.push(...i.cols)}),o=Array.from(new Set(o)).sort((i,r)=>i-r),e=Array.from(new Set(e)).sort((i,r)=>i-r),n.forEach(i=>{t.push({startRow:o.findIndex(r=>r===i.rows[0]),endRow:o.findIndex(r=>r===i.rows[i.rows.length-1]),startColumn:e.findIndex(r=>r===i.cols[0]),endColumn:e.findIndex(r=>r===i.cols[i.cols.length-1])})}),{ranges:t,mapFunc:(i,r)=>({row:o[i],col:e[r]})}}function Wc(n){const o=new l.ObjectMatrix;return n.forEach(e=>{const{rows:t,cols:i}=e;t.forEach(r=>{i.forEach(s=>{o.setValue(r,s,{v:null,p:null,f:null,si:null,custom:null})})})}),o.getData()}const ko={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},mi=["零","一","二","三","四","五","六","七","八","九"],bs=["","万","亿","万亿","亿亿"],xc=["","十","百","千"],Rs={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function Je(n){if(!n)return 0;let o=0,e=0,t=0,i=!1;const r=n.split("");for(let s=0;s<r.length;s++){const a=ko[r[s]];if(typeof a<"u")t=a,s===r.length-1&&(e+=t);else{const c=Rs[r[s]],d=c.value;i=c.secUnit,i?(e=(e+t)*d,o+=e,e=0):e+=t*d,t=0}}return o+e}function Uc(n){let o="",e="",t=0,i=!0;for(;n>0;){const r=n%10;r===0?i||(i=!0,e=mi[r]+e):(i=!1,o=mi[r],o+=xc[t],e=o+e),t++,n=Math.floor(n/10)}return e}function Bc(n){let o=0,e="",t="",i=!1;if(n===0)return mi[0];for(;n>0;){const r=n%1e4;i&&(t=mi[0]+t),e=Uc(r),e+=r!==0?bs[o]:bs[0],t=e+t,i=r<1e3&&r>0,n=Math.floor(n/1e4),o++}return t}function Fc(n){if(!n)return!1;let o=!0;if(n)if(n.length===1)n==="日"||n in ko?o=!0:o=!1;else{const e=n.split("");for(let t=0;t<e.length;t++)if(!(e[t]in ko||e[t]in Rs)){o=!1;break}}return o}function fi(n){if(!n)return{isExtendNumber:!1};const o=/0|([1-9]+[0-9]*)/g,e=o.test(n);if(e){const t=n.match(o);if(t&&t.length>0){const i=t[t.length-1],r=n.lastIndexOf(i),s=n.substr(0,r),a=n.substr(r+i.length);return{isExtendNumber:!0,matchTxt:Number(i),beforeTxt:s,afterTxt:a}}return{isExtendNumber:!1}}return{isExtendNumber:e}}function jc(n){let o;return n.length===2&&(n==="周一"||n==="周二"||n==="周三"||n==="周四"||n==="周五"||n==="周六"||n==="周日")?o=!0:o=!1,o}function Xc(n){let o;return n.length===3&&(n==="星期一"||n==="星期二"||n==="星期三"||n==="星期四"||n==="星期五"||n==="星期六"||n==="星期日")?o=!0:o=!1,o}function zc(n,o){let e=0;for(let t=0;t<n.length&&n[t]<o;t++)e++;return e}function vn(n){let o=!0;const e=n[1]-n[0];for(let t=1;t<n.length;t++)if(n[t]-n[t-1]!==e){o=!1;break}return o}function Yc(n,o,e){const t=[],i=Math.floor(o/n),r=o%n;let s=0;if(i>0){for(let a=0;a<i;a++)for(let c=0;c<e.length;c++)t[e[c]+a*n]=s,s++;for(let a=0;a<e.length&&e[a]<r;a++)t[e[a]+n*i]=s,s++}else for(let a=0;a<e.length&&e[a]<r;a++)t[e[a]]=s,s++;return t}function St(n,o){const e=[];for(let t=1;t<=o;t++){const i=(t-1)%n.length,r=l.Tools.deepClone(n[i]);e.push({v:null,s:null,p:null,f:null,si:null,t:null,...r})}return e}function Zc(n,o){var t;const e=[];for(let i=1;i<=o;i++){const r=(i-1)%n.length,s={s:(t=n[r])==null?void 0:t.s};e.push(s)}return e}function Gc(n){let o=!0;const e=n[1]/n[0];for(let t=1;t<n.length;t++)if(n[t]/n[t-1]!==e){o=!1;break}return o}function Kc(n){const o=[];for(let e=1;e<=n;e++)o.push(e);return o}function Si(n,o,e){var r,s,a,c;const t=[],i=[];for(let d=0;d<n.length;d++)i.push(Number((r=n[d])==null?void 0:r.v));if(n.length>2&&Gc(i))for(let d=1;d<=o;d++){const u=(d-1)%n.length,h=l.Tools.deepClone(n[u]),f=Number((s=n[n.length-1])==null?void 0:s.v)*(Number((a=n[1])==null?void 0:a.v)/Number((c=n[0])==null?void 0:c.v))**d;h&&(ws(h)&&(h.v=f),t.push(h))}else{const d=Kc(n.length);for(let u=1;u<=o;u++){const h=(u-1)%n.length,f=l.Tools.deepClone(n[h]),S=e===l.Direction.DOWN||e===l.Direction.RIGHT,g=qc(n.length+u,i,d,S);f&&(ws(f)&&(f.v=g),t.push(f))}}return t}function qc(n,o,e,t=!0){function i(h){let f=0;for(let S=0;S<h.length;S++)f+=h[S];return f/h.length}const r=i(e),s=i(o);let a=0,c=0;for(let h=0;h<e.length;h++)a+=(e[h]-r)*(o[h]-s),c+=(e[h]-r)*(e[h]-r);let d;c===0?d=t?1:-1:d=a/c;const u=s-d*r;return Math.round((u+d*n)*1e5)/1e5}function Ts(n,o,e){var r;const t=[],i=/0|([1-9]+[0-9]*)/g;for(let s=1;s<=o;s++){const a=(s-1)%n.length,c=l.Tools.deepClone(n[a]),d=`${(r=n[n.length-1])==null?void 0:r.v}`,u=d==null?void 0:d.match(i),h=u==null?void 0:u[u.length-1],f=Math.abs(Number(h)+e*s);if(!d||!h)continue;const S=d.lastIndexOf(h),g=d.substr(0,S)+f.toString()+d.substr(S+h.length);c&&(c.v=g,t.push(c))}return t}function Wt(n,o,e,t=0){var a,c;const i=[["日","一","二","三","四","五","六"],["周日","周一","周二","周三","周四","周五","周六"],["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]];if(t>=i.length)return[];const r=i[t],s=[];for(let d=1;d<=o;d++){const u=(d-1)%n.length,h=l.Tools.deepClone(n[u]);let f=0;if(((a=n[n.length-1])==null?void 0:a.v)===r[0])f=7+e*d;else{const g=`${(c=n[n.length-1])==null?void 0:c.v}`;if(g){const p=g.substr(g.length-1,1);f=Je(p)+e*d}}f<0&&(f=Math.ceil(Math.abs(f)/7)*7+f);const S=f%7;h&&(h.v=r[S],s.push(h))}return s}function Es(n,o,e){var i;const t=[];for(let r=1;r<=o;r++){const s=(r-1)%n.length,a=l.Tools.deepClone(n[s]),c=`${(i=n[n.length-1])==null?void 0:i.v}`,d=Je(c)+e*r;let u;d<=0?u="零":u=Bc(d),a&&(a.v=u,t.push(a))}return t}const Cn={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 Qc(n){let o=!1;return Object.keys(Cn).forEach(e=>{Cn[e].includes(n)&&(o=!0)}),o}function Ho(n){let o="";const e=[];return Object.keys(Cn).forEach(t=>{Cn[t].includes(n)&&(o=t,e.push(...Cn[t]))}),{name:o,series:e}}function Ps(n,o,e,t){var s;const i=t.length,r=[];for(let a=1;a<=o;a++){const c=(a-1)%n.length,d=l.Tools.deepClone(n[c]),u=`${(s=n[n.length-1])==null?void 0:s.v}`;let h=t.indexOf(u)+e*a;h<0&&(h+=Math.abs(e)*i);const f=h%i;d&&(d.v=t[f],r.push(d))}return r}function Jc(n,o){const e=[];let t;if(o.startRow<n.startRow)t=l.Direction.UP;else if(o.endRow>n.endRow)t=l.Direction.DOWN;else if(o.startColumn<n.startColumn)t=l.Direction.LEFT;else if(o.endColumn>n.endColumn)t=l.Direction.RIGHT;else return[];if(t===l.Direction.DOWN||t===l.Direction.UP){const i=n.endRow-n.startRow+1,r=o.endRow-o.startRow+1,s=Math.floor(r/i),a=r%i,c={startRow:0,startColumn:0,endRow:n.endRow-n.startRow,endColumn:n.endColumn-n.startColumn};if(t===l.Direction.DOWN){for(let d=0;d<s;d++)e.push({repeatStartCell:{row:n.startRow+(d+1)*i,col:n.startColumn},relativeRange:c});a>0&&e.push({repeatStartCell:{row:n.startRow+(s+1)*i,col:n.startColumn},relativeRange:{startRow:0,startColumn:0,endRow:a-1,endColumn:n.endColumn-n.startColumn}})}else{for(let d=0;d<s;d++)e.push({repeatStartCell:{row:n.startRow-(d+1)*i,col:n.startColumn},relativeRange:c});a>0&&e.push({repeatStartCell:{row:n.startRow-(s+1)*i,col:n.startColumn},relativeRange:{startRow:i-a,endRow:i-1,startColumn:0,endColumn:n.endColumn-n.startColumn}})}}if(t===l.Direction.RIGHT||t===l.Direction.LEFT){const i=n.endColumn-n.startColumn+1,r=o.endColumn-o.startColumn+1,s=Math.floor(r/i),a=r%i,c={startRow:0,startColumn:0,endRow:n.endRow-n.startRow,endColumn:n.endColumn-n.startColumn};if(t===l.Direction.RIGHT){for(let d=0;d<s;d++)e.push({repeatStartCell:{row:n.startRow,col:n.startColumn+(d+1)*i},relativeRange:c});a>0&&e.push({repeatStartCell:{row:n.startRow,col:n.startColumn+(s+1)*i},relativeRange:{startRow:0,startColumn:0,endRow:n.endRow-n.startRow,endColumn:a-1}})}else{for(let d=0;d<s;d++)e.push({repeatStartCell:{row:n.startRow,col:n.startColumn-(d+1)*i},relativeRange:c});a>0&&e.push({repeatStartCell:{row:n.startRow,col:n.startColumn-(s+1)*i},relativeRange:{startRow:0,startColumn:i-a,endRow:n.endRow-n.startRow,endColumn:i-1}})}}return e}function ws(n){return!(l.isFormulaString(n.f)||l.isFormulaId(n.si)||n.t===l.CellValueType.BOOLEAN)}var xt=(n=>(n.Append="APPEND",n.Default="DEFAULT",n.Only="ONLY",n))(xt||{}),me=(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))(me||{}),se=(n=>(n.COPY="COPY",n.SERIES="SERIES",n.ONLY_FORMAT="ONLY_FORMAT",n.NO_FORMAT="NO_FORMAT",n))(se||{});const $c={type:me.DATE,priority:1100,match:(n,o)=>{var e;if((typeof(n==null?void 0:n.v)=="number"||(n==null?void 0:n.t)===l.CellValueType.NUMBER)&&n.s){if(typeof n.s=="string"){const i=o.get(l.IUniverInstanceService).getFocusedUnit().getStyles().get(n.s),r=(e=i==null?void 0:i.n)==null?void 0:e.pattern;if(r)return Ve.numfmt.getInfo(r).isDate}else if(n.s.n&&Ve.numfmt.getInfo(n.s.n.pattern).isDate)return!0}return!1},isContinue:(n,o)=>n.type===me.DATE,applyFunctions:{[se.SERIES]:(n,o,e)=>{const{data:t}=n;return e===l.Direction.LEFT||e===l.Direction.UP?(t.reverse(),Si(t,o,e).reverse()):Si(t,o,e)}}},ed={type:me.NUMBER,priority:1e3,match:n=>typeof(n==null?void 0:n.v)=="number"||(n==null?void 0:n.t)===l.CellValueType.NUMBER,isContinue:(n,o)=>n.type===me.NUMBER,applyFunctions:{[se.SERIES]:(n,o,e)=>{const{data:t}=n;return e===l.Direction.LEFT||e===l.Direction.UP?(t.reverse(),Si(t,o,e).reverse()):Si(t,o,e)}}},ys={type:me.OTHER,priority:0,match:()=>!0,isContinue:(n,o)=>n.type===me.OTHER},td={type:me.EXTEND_NUMBER,priority:900,match:n=>fi(`${n==null?void 0:n.v}`||"").isExtendNumber,isContinue:(n,o)=>{var e;if(n.type===me.EXTEND_NUMBER){const{beforeTxt:t,afterTxt:i}=fi(`${(e=n.cellData)==null?void 0:e.v}`||""),{beforeTxt:r,afterTxt:s}=fi(`${o==null?void 0:o.v}`||"");if(t===r&&i===s)return!0}return!1},applyFunctions:{[se.SERIES]:(n,o,e)=>{var a;const{data:t}=n,i=e===l.Direction.UP||e===l.Direction.LEFT;let r;if(t.length===1)return r=i?-1:1,Oe(Ts(t,o,r),i);const s=[];for(let c=0;c<t.length;c++){const d=`${(a=t[c])==null?void 0:a.v}`;d&&s.push(Number(fi(d).matchTxt))}return i&&(t.reverse(),s.reverse()),vn(s)?(r=s[1]-s[0],Oe(Ts(t,o,r),i)):St(t,o)}}},nd={type:me.CHN_NUMBER,priority:830,match:n=>!!Fc(`${n==null?void 0:n.v}`||""),isContinue:(n,o)=>n.type===me.CHN_NUMBER,applyFunctions:{[se.SERIES]:(n,o,e)=>{var c,d,u;const{data:t}=n,i=e===l.Direction.LEFT||e===l.Direction.UP;if(t.length===1){const h=`${(c=t[0])==null?void 0:c.v}`;let f;return i?f=-1:f=1,h&&(h==="日"||Je(h)<7)?Oe(Wt(t,o,f),i):Oe(Es(t,o,f),i)}let r=!1;for(let h=0;h<t.length;h++)if(((d=t[h])==null?void 0:d.v)==="日"){r=!0;break}const s=[];let a=0;for(let h=0;h<t.length;h++){const f=`${(u=t[h])==null?void 0:u.v}`;f==="日"?h===0?s.push(0):(a++,s.push(a*7)):r&&Je(f)>0&&Je(f)<7?s.push(Je(f)+a*7):s.push(Je(f))}if(i&&(t.reverse(),s.reverse()),vn(s)){if(r||s[s.length-1]<6&&s[0]>0||s[0]<6&&s[s.length-1]>0){const f=s[1]-s[0];return Oe(Wt(t,o,f),i)}const h=s[1]-s[0];return Oe(Es(t,o,h),i)}return St(t,o)}}},id={type:me.CHN_WEEK2,priority:820,match:n=>!!jc(`${n==null?void 0:n.v}`||""),isContinue:(n,o)=>n.type===me.CHN_WEEK2,applyFunctions:{[se.SERIES]:(n,o,e)=>{var a;const{data:t}=n,i=e===l.Direction.LEFT||e===l.Direction.UP;if(t.length===1){let c;return i?c=-1:c=1,Oe(Wt(t,o,c,1),i)}const r=[];let s=0;for(let c=0;c<t.length;c++){const d=`${(a=t[c])==null?void 0:a.v}`,u=d==null?void 0:d.substr(d.length-1,1);d==="周日"?c===0?r.push(0):(s++,r.push(s*7)):r.push(Je(u)+s*7)}if(i&&(t.reverse(),r.reverse()),vn(r)){const c=r[1]-r[0];return Oe(Wt(t,o,c,1),i)}return St(t,o)}}},od={type:me.CHN_WEEK3,priority:810,match:n=>Xc(`${n==null?void 0:n.v}`||""),isContinue:(n,o)=>n.type===me.CHN_WEEK3,applyFunctions:{[se.SERIES]:(n,o,e)=>{var a;const{data:t}=n,i=e===l.Direction.LEFT||e===l.Direction.UP;if(t.length===1){let c;return i?c=-1:c=1,Oe(Wt(t,o,c,2),i)}const r=[];let s=0;for(let c=0;c<t.length;c++){const d=`${(a=t[c])==null?void 0:a.v}`;if(d){const u=d.substr(d.length-1,1);d==="星期日"?c===0?r.push(0):(s++,r.push(s*7)):r.push(Je(u)+s*7)}}if(i&&(t.reverse(),r.reverse()),vn(r)){const c=r[1]-r[0];return Oe(Wt(t,o,c,2),i)}return St(t,o)}}},rd={type:me.LOOP_SERIES,priority:800,match:n=>Qc(`${n==null?void 0:n.v}`||""),isContinue:(n,o)=>{var e;return n.type===me.LOOP_SERIES?Ho(`${(e=n.cellData)==null?void 0:e.v}`||"").name===Ho(`${o==null?void 0:o.v}`||"").name:!1},applyFunctions:{[se.SERIES]:(n,o,e)=>{var c,d;const{data:t}=n,i=e===l.Direction.LEFT||e===l.Direction.UP,{series:r}=Ho(`${(c=t[0])==null?void 0:c.v}`||"");if(t.length===1){let u;return i?u=-1:u=1,Oe(Ps(t,o,u,r),i)}const s=[];let a=0;for(let u=0;u<t.length;u++){const h=`${(d=t[u])==null?void 0:d.v}`;h&&(h===r[0]?u===0?s.push(0):(a++,s.push(a*r.length)):s.push(r.indexOf(h)+a*7))}if(i&&(t.reverse(),s.reverse()),vn(s)){const u=s[1]-s[0];return Oe(Ps(t,o,u,r),i)}return St(t,o)}}};function Oe(n,o){return o?n.reverse():n}var sd=Object.defineProperty,ld=Object.getOwnPropertyDescriptor,ad=(n,o,e,t)=>{for(var i=t>1?void 0:t?ld(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&sd(o,e,i),i},gi=(n,o)=>(e,t)=>o(e,t,n);M.AutoFillService=class extends l.Disposable{constructor(e,t,i,r){super();E(this,"_rules",[]);E(this,"_hooks",[]);E(this,"_applyType$",new A.BehaviorSubject(se.SERIES));E(this,"_isFillingStyle",!0);E(this,"_autoFillLocation$",new A.BehaviorSubject(null));E(this,"autoFillLocation$",this._autoFillLocation$.asObservable());E(this,"_showMenu$",new A.BehaviorSubject(!1));E(this,"showMenu$",this._showMenu$.asObservable());E(this,"_direction",l.Direction.DOWN);E(this,"applyType$",this._applyType$.asObservable());E(this,"_menu$",new A.BehaviorSubject([{label:"autoFill.copy",value:se.COPY,disable:!1},{label:"autoFill.series",value:se.SERIES,disable:!1},{label:"autoFill.formatOnly",value:se.ONLY_FORMAT,disable:!1},{label:"autoFill.noFormat",value:se.NO_FORMAT,disable:!1}]));E(this,"menu$",this._menu$.asObservable());this._univerInstanceService=e,this._selectionManagerService=t,this._commandService=i,this._undoRedoService=r,this._init()}_init(){this._rules=[$c,ed,td,nd,id,od,rd,ys].sort((e,t)=>t.priority-e.priority),this._isFillingStyle=!0}getOneByPriority(e){return e.length<=0?[]:[e.reduce((i,r)=>(r.priority||0)>(i.priority||0)?r:i,e[0])]}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=xt.Append),this._hooks.push(e),l.toDisposable(()=>{const t=this._hooks.findIndex(i=>i===e);t>-1&&this._hooks.splice(t,1)})}registerRule(e){if(this._rules.find(i=>i.type===e.type))throw new Error(`Registry rule failed, type '${e.type}' already exist!`);const t=this._rules.findIndex(i=>i.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:i,subUnitId:r}=this.autoFillLocation||{};if(!e||!t||!i||!r)return[];const s=this._hooks.filter(u=>{var h;return!((h=u.disable)!=null&&h.call(u,{source:e,target:t,unitId:i,subUnitId:r},this._direction,this.applyType))}),a=s.filter(u=>u.type===xt.Only);if(a.length>0)return this.getOneByPriority(a);const c=this.getOneByPriority(s.filter(u=>u.type===xt.Default)),d=s.filter(u=>u.type===xt.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(i=>i.value===e?{...i,disable:t}:i))}setShowMenu(e){this._showMenu$.next(e)}fillData(e,t){var p,v,C;const{source:i,target:r,unitId:s=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getUnitId(),subUnitId:a=(p=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:p.getSheetId()}=this.autoFillLocation||{},c=this.direction;if(!i||!r||s!==e||a!==t)return!1;const d=l.Rectangle.union(ft(i),ft(r)),u=this.applyType,h=this.getActiveHooks();this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{selections:[{primary:{...(C=(v=this._selectionManagerService.getCurrentLastSelection())==null?void 0:v.primary)!=null?C:d},range:{...d,rangeType:l.RANGE_TYPE.NORMAL}}],unitId:s,subUnitId:a});const f=[],S=[];return h.forEach(I=>{var P;const{undos:b,redos:R}=((P=I.onFillData)==null?void 0:P.call(I,{source:i,target:r,unitId:s,subUnitId:a},c,u))||{};b&&f.push(...b),R&&S.push(...R)}),S.every(I=>this._commandService.syncExecuteCommand(I.id,I.params))&&this._undoRedoService.pushUndoRedo({unitID:s,undoMutations:f,redoMutations:S}),h.forEach(I=>{var b;(b=I.onAfterFillData)==null||b.call(I,{source:i,target:r,unitId:s,subUnitId:a},c,u)}),this.setShowMenu(!0),!0}},M.AutoFillService=ad([l.OnLifecycle(l.LifecycleStages.Rendered,M.AutoFillService),gi(0,l.Inject(l.IUniverInstanceService)),gi(1,l.Inject(m.SheetsSelectionsService)),gi(2,l.ICommandService),gi(3,l.IUndoRedoService)],M.AutoFillService);const lt=l.createIdentifier("univer.auto-fill-service"),gt={type:l.CommandType.COMMAND,id:"sheet.command.auto-fill",handler:async(n,o)=>n.get(lt).fillData(o.unitId,o.subUnitId)},Ut={id:"sheet.command.auto-clear-content",type:l.CommandType.COMMAND,handler:async(n,o)=>{const e=n.get(l.IUniverInstanceService),t=n.get(l.ICommandService),i=n.get(l.IUndoRedoService),r=m.getSheetCommandTarget(e);if(!r)return!1;const{unitId:s,subUnitId:a}=r,{clearRange:c,selectionRange:d}=o,u={subUnitId:a,unitId:s,cellValue:m.generateNullCellValue([c])},h=m.SetRangeValuesUndoMutationFactory(n,u),{startColumn:f,startRow:S}=d;return t.executeCommand(m.SetSelectionsOperation.id,{selections:[{primary:{startColumn:f,startRow:S,endColumn:f,endRow:S,actualRow:S,actualColumn:f,isMerge:!1,isMergedMainCell:!1},range:{...d}}],unitId:s,subUnitId:a}),t.syncExecuteCommand(m.SetRangeValuesMutation.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:m.SetRangeValuesMutation.id,params:h}],redoMutations:[{id:m.SetRangeValuesMutation.id,params:u}]}),!0):!1}},Vo=l.createInterceptorKey("rangeMovePermissionCheck"),Lo=l.createInterceptorKey("rangeFillPermissionCheck");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",l.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(o){const{startColumn:e,startRow:t,endColumn:i,endRow:r}=this,{startColumn:s,startRow:a,endColumn:c,endRow:d}=o;return e===s&&t===a&&i===c&&r===d}isInclude(o){const{startColumn:e,startRow:t,endColumn:i,endRow:r}=this,{startColumn:s,startRow:a,endColumn:c,endRow:d}=o;return!(c<e||s>i||a>r||d<t)}highlightToSelection(){if(this._primary)return l.makeCellToSelection(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(o){this._rangeType=o}getValue(){return{rangeWithCoord:this.getRange(),primaryWithCoord:this._primary}}setValue(o,e){const{startColumn:t,startRow:i,endColumn:r,endRow:s,startX:a,startY:c,endX:d,endY:u,rangeType:h}=o;this._startColumn=t,this._startRow=i,this._endColumn=r,this._endRow=s,this._startX=a,this._startY=c,this._endX=d,this._endY=u,h&&(this._rangeType=h),this.setCurrentCell(e)}setCurrentCell(o){o&&(this._primary=o)}clearCurrentCell(){this._primary=null}}var _n=(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))(_n||{});const Ms=.3;class pi extends l.Disposable{constructor(e,t,i=!0,r){super();E(this,"_leftControl");E(this,"_rightControl");E(this,"_topControl");E(this,"_bottomControl");E(this,"_backgroundControlTop");E(this,"_backgroundControlBottom");E(this,"_backgroundControlMiddleLeft");E(this,"_backgroundControlMiddleRight");E(this,"_fillControl");E(this,"_selectionShapeGroup");E(this,"_rowHeaderBackground");E(this,"_rowHeaderBorder");E(this,"_rowHeaderGroup");E(this,"_rowHeaderHighlight");E(this,"_columnHeaderBackground");E(this,"_columnHeaderBorder");E(this,"_columnHeaderGroup");E(this,"_columnHeaderHighlight");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,"_dashRect");E(this,"_selectionModel");E(this,"_selectionStyle");E(this,"_rowHeaderWidth",0);E(this,"_columnHeaderHeight",0);E(this,"_widgetRects",[]);E(this,"_dispose$",new A.BehaviorSubject(this));E(this,"dispose$",this._dispose$.asObservable());E(this,"selectionMoving$",new A.Subject);E(this,"selectionMoved$",new A.Subject);E(this,"selectionScaling$",new A.Subject);E(this,"selectionScaled$",new A.Subject);E(this,"selectionFilling$",new A.Subject);E(this,"_selectionFilled$",new A.Subject);E(this,"selectionFilled$",this._selectionFilled$.asObservable());E(this,"_defaultStyle");E(this,"_currentStyle");E(this,"_isHelperSelection",!0);E(this,"_antLineOffset",0);E(this,"_antRequestNewFrame",-1);this._scene=e,this._zIndex=t,this._isHeaderHighlight=i,this._themeService=r,this._initialize()}get zIndex(){return this._zIndex}get leftControl(){return this._leftControl}get rightControl(){return this._rightControl}get topControl(){return this._topControl}get bottomControl(){return this._bottomControl}get fillControl(){return this._fillControl}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._selectionModel}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 selectionStyle(){return this._selectionStyle}set selectionStyle(e){this._selectionStyle=e}get selectionModel(){return this._selectionModel}set selectionModel(e){this._selectionModel=e}get defaultStyle(){return this._defaultStyle}set defaultStyle(e){this._defaultStyle=e}get dashRect(){return this._dashRect}get currentStyle(){return this._currentStyle}set currentStyle(e){this._currentStyle=e}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}setEvent(e){this.leftControl.evented=e,this.rightControl.evented=e,this.topControl.evented=e,this.bottomControl.evented=e}refreshSelectionFilled(e){this._selectionFilled$.next(e)}updateStyle(e){this._updateControl(e,this._rowHeaderWidth,this._columnHeaderHeight)}updateRange(e){this._selectionModel.setValue(e),this._updateControl(null,this._rowHeaderWidth,this._columnHeaderHeight)}update(e,t=0,i=0,r,s){this._selectionModel.setValue(e,s),r==null&&(r=this._selectionStyle),this._updateControl(r,t,i)}updateCurrCell(e){this._selectionModel.setCurrentCell(e)}clearHighlight(){this._selectionModel.clearCurrentCell(),this._updateControl(this._selectionStyle,this._rowHeaderWidth,this._columnHeaderHeight)}getScene(){return this._scene}dispose(){var e,t,i,r,s,a,c,d,u,h,f,S,g,p,v,C,I,b,R,P,y,O,N,D;(e=this._leftControl)==null||e.dispose(),(t=this._rightControl)==null||t.dispose(),(i=this._topControl)==null||i.dispose(),(r=this._bottomControl)==null||r.dispose(),(s=this._backgroundControlTop)==null||s.dispose(),(a=this._backgroundControlMiddleLeft)==null||a.dispose(),(c=this._backgroundControlMiddleRight)==null||c.dispose(),(d=this._backgroundControlBottom)==null||d.dispose(),this._fillControl.dispose(),(u=this._selectionShapeGroup)==null||u.dispose(),(h=this._rowHeaderBackground)==null||h.dispose(),(f=this._rowHeaderBorder)==null||f.dispose(),(S=this._rowHeaderGroup)==null||S.dispose(),(g=this._rowHeaderBackground)==null||g.dispose(),(p=this._columnHeaderBackground)==null||p.dispose(),(v=this._columnHeaderBorder)==null||v.dispose(),(C=this._columnHeaderGroup)==null||C.dispose(),(I=this._topLeftWidget)==null||I.dispose(),(b=this._topCenterWidget)==null||b.dispose(),(R=this._topRightWidget)==null||R.dispose(),(P=this._middleLeftWidget)==null||P.dispose(),(y=this._middleRightWidget)==null||y.dispose(),(O=this._bottomLeftWidget)==null||O.dispose(),(N=this._bottomCenterWidget)==null||N.dispose(),(D=this._bottomRightWidget)==null||D.dispose(),super.dispose(),this._dispose$.next(this),this._dispose$.complete()}getCurrentCellInfo(){const e=this.model.currentCell;if(e){let t;if(e.isMerged){const i=e.mergeInfo;t={startRow:i.startRow,endRow:i.endRow,startColumn:i.startColumn,endColumn:i.endColumn,startX:i.startX,endX:i.endX,startY:i.startY,endY:i.endY}}else{const{actualRow:i,actualColumn:r,startX:s,endX:a,startY:c,endY:d}=e;t={startRow:i,endRow:i,startColumn:r,endColumn:r,startX:s,endX:a,startY:c,endY:d}}return t}}getValue(){return{...this._selectionModel.getValue(),style:this._selectionStyle}}getRange(){return this._selectionModel.getValue().rangeWithCoord}enableHelperSelection(){this._isHelperSelection=!0}disableHelperSelection(){this._isHelperSelection=!1}updateStyleId(e){this._selectionStyle!=null&&(this._selectionStyle.id=e)}_updateControl(e,t,i){const{startX:r,startY:s,endX:a,endY:c}=this._selectionModel,d=this._defaultStyle;e==null&&(e=d),this._currentStyle=e;const{stroke:u=d.stroke,widgets:h=d.widgets,hasAutoFill:f=d.hasAutoFill,AutofillStroke:S=d.AutofillStroke,strokeDash:g,isAnimationDash:p}=e;let{strokeWidth:v=d.strokeWidth,AutofillSize:C=d.AutofillSize,AutofillStrokeWidth:I=d.AutofillStrokeWidth}=e;const b=this._getScale(),R=(v+m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH)/2/b;v/=b,C/=b,I/=b<1?1:b;const P=m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/b,y=w.FIX_ONE_PIXEL_BLUR_OFFSET/b;if(this.leftControl.transformByState({height:c-s,left:-R+y,width:v,strokeWidth:P,top:-P/2+y}),this.leftControl.setProps({fill:u,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.rightControl.transformByState({height:c-s,left:a-r-R+y,width:v,strokeWidth:P,top:-P/2+y}),this.rightControl.setProps({fill:u,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.topControl.transformByState({width:a-r+v,top:-R+y,left:-R+y,height:v,strokeWidth:P}),this.topControl.setProps({fill:u,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.bottomControl.transformByState({width:a-r+v,top:c-s-R+y,height:v,left:-R+y,strokeWidth:P}),this.bottomControl.setProps({fill:u,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),g==null)this.dashRect.hide(),this._stopAntLineAnimation();else{const O=e.strokeWidth*2/b;this.dashRect.transformByState({height:c-s,width:a-r,strokeWidth:O,left:-O/2+y,top:-O/2+y}),this.dashRect.setProps({strokeDashArray:[0,g/b]}),this._stopAntLineAnimation(),p!==!1&&this._startAntLineAnimation(),this.dashRect.show()}if(f===!0&&!this._hasWidgets(h)){const O={fill:u,stroke:S,strokeScaleEnabled:!1},N={width:C-I,height:C-I,left:a-r-C/2+I/2-y,top:c-s-C/2+I/2-y,strokeWidth:I};this.fillControl.setProps(O),this.fillControl.transformByState(N),this.fillControl.show()}else this.fillControl.hide();this._updateBackgroundControl(e),this._updateBackgroundTitle(e,t,i),this._updateWidgets(e),this.selectionShape.show(),this.selectionShape.translate(r,s),this._selectionStyle=e,this._rowHeaderWidth=t||0,this._columnHeaderHeight=i||0,this.selectionShape.makeDirtyNoDebounce(!0)}_initialize(){this._defaultStyle=m.getNormalSelectionStyle(this._themeService),this._selectionModel=new cd;const e=this._zIndex;this._leftControl=new w.Rect("__SpreadsheetSelectionShapeLeftControl__"+e,{zIndex:e}),this._rightControl=new w.Rect("__SpreadsheetSelectionShapeRightControl__"+e,{zIndex:e}),this._topControl=new w.Rect("__SpreadsheetSelectionTopControl__"+e,{zIndex:e}),this._bottomControl=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._fillControl=new w.Rect("__SpreadsheetSelectionFillControl__"+e,{zIndex:e+1}),this._dashRect=new w.DashedRect("__SpreadsheetDragDashControl__"+e,{zIndex:e+2,evented:!1,stroke:"#fff"});const t=[this._fillControl,this._leftControl,this._rightControl,this._topControl,this._bottomControl,this._backgroundControlTop,this._backgroundControlMiddleLeft,this._backgroundControlMiddleRight,this._backgroundControlBottom,this._dashRect];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 i=this.getScene();i.addObject(this._selectionShapeGroup,ps),this.disposeWithMe(l.toDisposable(i.onTransformChange$.subscribeEvent(r=>{r.type===w.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale&&this._updateControl(this._currentStyle,this._rowHeaderWidth,this._columnHeaderHeight)}))),this._initialTitle()}_initialTitle(){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],yc)}_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]}_updateBackgroundTitle(e,t,i){const{startX:r,startY:s,endX:a,endY:c,rangeType:d}=this._selectionModel,u=this._defaultStyle;e==null&&(e=u);const h=this._getScale(),{stroke:f,hasRowHeader:S,rowHeaderFill:g=u.rowHeaderFill,rowHeaderStroke:p=u.rowHeaderStroke,hasColumnHeader:v,columnHeaderFill:C=u.columnHeaderFill,columnHeaderStroke:I=u.columnHeaderStroke}=e;let{rowHeaderStrokeWidth:b=u.rowHeaderStrokeWidth,columnHeaderStrokeWidth:R=u.columnHeaderStrokeWidth}=e;if(b/=h,R/=h,v===!0){let P=C;this._isHeaderHighlight&&d===l.RANGE_TYPE.COLUMN&&(P=new l.ColorKit(f).setAlpha(Ms).toString()),this._columnHeaderBackground.setProps({fill:P}),this._columnHeaderBackground.resize(a-r,i),this._columnHeaderBorder.setProps({fill:I}),this._columnHeaderBorder.transformByState({width:a-r,height:R,top:i-R+1/h}),this._columnHeaderGroup.show(),this._columnHeaderGroup.translate(r,0)}else this._columnHeaderGroup.hide();if(this._columnHeaderGroup.makeDirty(!0),S===!0){let P=g;this._isHeaderHighlight&&d===l.RANGE_TYPE.ROW&&(P=new l.ColorKit(f).setAlpha(Ms).toString()),this._rowHeaderBackground.setProps({fill:P}),this._rowHeaderBackground.resize(t,c-s),this._rowHeaderBorder.setProps({fill:p}),this._rowHeaderBorder.transformByState({width:b,height:c-s,left:t-b+1/h}),this._rowHeaderGroup.show(),this._rowHeaderGroup.translate(0,s)}else this._rowHeaderGroup.hide();this._rowHeaderGroup.makeDirty(!0)}_updateBackgroundControl(e){const{startX:t,startY:i,endX:r,endY:s}=this._selectionModel,a=this._defaultStyle;e==null&&(e=a);const c=this._getScale(),{fill:d=a.fill}=e;let{strokeWidth:u=a.strokeWidth}=e;u/=c;const h=this._selectionModel.highlightToSelection();if(!h){this._backgroundControlTop.resize(r-t,s-i),this._backgroundControlTop.setProps({fill:d}),this._backgroundControlBottom.resize(0,0),this._backgroundControlMiddleLeft.resize(0,0),this._backgroundControlMiddleRight.resize(0,0);return}const{startX:f,startY:S,endX:g,endY:p}=h,v=u/2,C={left:-v,top:-v,width:r-t+v*2,height:S-i+v};C.height<0&&(C.width=0,C.height=0),this._backgroundControlTop.transformByState(C);const I={left:-v,top:S-i,width:f-t+v,height:p-S};I.width<0&&(I.width=0,I.height=0),this._backgroundControlMiddleLeft.transformByState(I);const b={left:g-t-v,top:S-i,width:r-g+v*2,height:p-S};b.width<0&&(b.width=0,b.height=0),this._backgroundControlMiddleRight.transformByState(b);const R={left:-v,top:p-i,width:r-t+v*2,height:s-p+v};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:i,endX:r,endY:s}=this._selectionModel,a=this._defaultStyle;e==null&&(e=a);const{stroke:c=a.stroke,widgets:d=a.widgets,widgetStroke:u=a.widgetStroke}=e,h=this._getScale();let{widgetSize:f=a.widgetSize,widgetStrokeWidth:S=a.widgetStrokeWidth}=e;f/=h,S/=h;const g={left:-f/2+S/2,center:(r-t)/2-f/2+S/2,right:r-t-f/2+S/2,top:-f/2,middle:(s-i)/2-f/2,bottom:s-i-f/2+S/2},p=f-S;this._widgetRects.forEach(v=>{v.setProps({fill:c,stroke:u})}),d.tl===!0?(this._topLeftWidget.transformByState({height:p,width:p,left:g.left,top:g.top,strokeWidth:S}),this._topLeftWidget.show()):this._topLeftWidget.hide(),d.tc===!0?(this._topCenterWidget.transformByState({height:p,width:p,left:g.center,top:g.top,strokeWidth:S}),this._topCenterWidget.show()):this._topCenterWidget.hide(),d.tr===!0?(this._topRightWidget.transformByState({height:p,width:p,left:g.right,top:g.top,strokeWidth:S}),this._topRightWidget.show()):this._topRightWidget.hide(),d.ml===!0?(this._middleLeftWidget.transformByState({height:p,width:p,left:g.left,top:g.middle,strokeWidth:S}),this._middleLeftWidget.show()):this._middleLeftWidget.hide(),d.mr===!0?(this._middleRightWidget.transformByState({height:p,width:p,left:g.right,top:g.middle,strokeWidth:S}),this._middleRightWidget.show()):this._middleRightWidget.hide(),d.bl===!0?(this._bottomLeftWidget.transformByState({height:p,width:p,left:g.left,top:g.bottom,strokeWidth:S}),this._bottomLeftWidget.show()):this._bottomLeftWidget.hide(),d.bc===!0?(this._bottomCenterWidget.transformByState({height:p,width:p,left:g.center,top:g.bottom,strokeWidth:S}),this._bottomCenterWidget.show()):this._bottomCenterWidget.hide(),d.br===!0?(this._bottomRightWidget.transformByState({height:p,width:p,left:g.right,top:g.bottom,strokeWidth:S}),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 i of t)if(e[i]===!0)return!0;return!0}_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.dashRect.setProps({strokeDashOffset:-this._antLineOffset}),this._antRequestNewFrame=w.requestNewFrame(()=>{this._startAntLineAnimation()})}}const Os="__SpreadsheetHelperSelectionTempRect",dd=35;class ud{constructor(o,e,t,i,r){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",[]);this._control=o,this._skeleton=e,this._scene=t,this._themeService=i,this._injector=r,this._initialControl(),this._initialWidget(),this._initialFill(),this._control.dispose$.subscribe(()=>{this.dispose()})}get isHelperSelection(){return this._control.isHelperSelection}dispose(){var o,e;(o=this._scrollTimer)==null||o.dispose(),this._fillControlColors=[],this._clearObserverEvent(),(e=this._helperSelection)==null||e.dispose()}_getFreeze(){var t,i;return(i=(t=this._injector.get(w.IRenderManagerService).withCurrentTypeOfUnit(l.UniverInstanceType.UNIVER_SHEET,M.SheetSkeletonManagerService))==null?void 0:t.getCurrent())==null?void 0:i.skeleton.getWorksheetConfig().freeze}_isSelectionInViewport(o,e){const t=this._getFreeze()||{startRow:-1,startColumn:-1,xSplit:0,ySplit:0};switch(e.viewportKey){case w.SHEET_VIEWPORT_KEY.VIEW_MAIN:return o.endRow>=t.startRow&&o.endColumn>=t.startColumn;case w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP:case w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT:return o.endColumn>=t.startColumn&&o.startRow<t.startRow;case w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT:case w.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM:return o.endRow>=t.startRow&&o.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 o.startRow<t.startRow&&o.startColumn<t.startColumn}}_clearObserverEvent(){var o,e;(o=this._scenePointerMoveSub)==null||o.unsubscribe(),(e=this._scenePointerUpSub)==null||e.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}_initialControl(){const{leftControl:o,rightControl:e,topControl:t,bottomControl:i}=this._control;[o,e,t,i].forEach(r=>{r.onPointerEnter$.subscribeEvent(()=>{var a;((a=this._injector.get(pe,l.Quantity.OPTIONAL))==null?void 0:a.interceptor.fetchThroughInterceptors(Vo)(!1,null))!==!1&&r.setCursor(w.CURSOR_TYPE.MOVE)}),r.onPointerLeave$.subscribeEvent(()=>{r.resetCursor()}),r.onPointerDown$.subscribeEvent(this._controlEvent.bind(this))})}_controlMoving(o,e){var y;const t=this._scene,i=t.getVpScrollXYInfoByPosToVp(w.Vector2.FromArray([o,e])),{scaleX:r,scaleY:s}=t.getAncestorScale(),a=this._skeleton.getCellPositionByOffset(o,e,r,s,i),{row:c,column:d}=a,u=this._skeleton.getRowCount()-1,h=this._skeleton.getColumnCount()-1;let f=c+this._relativeSelectionPositionRow;f<0&&(f=0);let S=f+this._relativeSelectionRowLength;S>u&&(S=u,S-f<this._relativeSelectionRowLength&&(f=S-this._relativeSelectionRowLength));let g=d+this._relativeSelectionPositionColumn;g<0&&(g=0);let p=g+this._relativeSelectionColumnLength;p>h&&(p=h,p-g<this._relativeSelectionColumnLength&&(g=p-this._relativeSelectionColumnLength));const v=this._skeleton.getNoMergeCellPositionByIndex(f,g),C=this._skeleton.getNoMergeCellPositionByIndex(S,p),I=(v==null?void 0:v.startY)||0,b=(C==null?void 0:C.endY)||0,R=(v==null?void 0:v.startX)||0,P=(C==null?void 0:C.endX)||0;(y=this._helperSelection)==null||y.transformByState({left:R,top:I,width:P-R,height:b-I}),this._targetSelection={startY:I,endY:b,startX:R,endX:P,startRow:f,endRow:S,startColumn:g,endColumn:p},this._control.selectionMoving$.next(this._targetSelection)}_controlEvent(o){const{offsetX:e,offsetY:t}=o,i=this._scene,r=i.getRelativeToViewportCoord(w.Vector2.FromArray([e,t])),{x:s,y:a}=r,c=i.getVpScrollXYInfoByPosToVp(r),{scaleX:d,scaleY:u}=i.getAncestorScale(),h=this._skeleton.getCellPositionByOffset(s,a,d,u,c);this._startOffsetX=s,this._startOffsetY=a;const{row:f,column:S}=h,{startRow:g,startColumn:p,endRow:v,endColumn:C}=this._control.model;let I=0,b=0;f<g?I-=1:f>v&&(I+=1),S<p?b-=1:S>C&&(b+=1),this._relativeSelectionPositionRow=g-f+I,this._relativeSelectionPositionColumn=p-S+b,this._relativeSelectionRowLength=v-g,this._relativeSelectionColumnLength=C-p;const R=this._control.selectionStyle,P=this._getScale();this.isHelperSelection&&(this._helperSelection=new w.Rect(Os,{stroke:R.stroke,strokeWidth:R.strokeWidth/P}),i.addObject(this._helperSelection));const y=i.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),O=w.ScrollTimer.create(i);O.startScroll(s,a,y),this._scrollTimer=O,i.disableEvent(),this._scenePointerMoveSub=i.onPointerMove$.subscribeEvent(N=>{var W;const{offsetX:D,offsetY:k}=N;if(((W=this._injector.get(pe,l.Quantity.OPTIONAL))==null?void 0:W.interceptor.fetchThroughInterceptors(Vo)(!1,null))===!1)return;const{x:V,y:U}=i.getRelativeToViewportCoord(w.Vector2.FromArray([D,k]));this._controlMoving(V,U),i.setCursor(w.CURSOR_TYPE.MOVE),O.scrolling(V,U,()=>{this._controlMoving(V,U)})}),this._scenePointerUpSub=i.onPointerUp$.subscribeEvent(()=>{var D,k;(D=this._helperSelection)==null||D.dispose();const N=this._scene;N.resetCursor(),this._clearObserverEvent(),N.enableEvent(),(k=this._scrollTimer)==null||k.dispose(),this._control.selectionMoved$.next(this._targetSelection)})}_initialWidget(){const{topLeftWidget:o,topCenterWidget:e,topRightWidget:t,middleLeftWidget:i,middleRightWidget:r,bottomLeftWidget:s,bottomCenterWidget:a,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];[o,e,t,i,r,s,a,c].forEach((u,h)=>{u.onPointerEnter$.subscribeEvent(()=>{u.setCursor(d[h])}),u.onPointerLeave$.subscribeEvent(()=>{u.resetCursor()}),u.onPointerDown$.subscribeEvent(f=>{this._widgetEvent(f,d[h])})})}_widgetMoving(o,e,t){const i=this._scene,r=i.getVpScrollXYInfoByPosToVp(w.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),{scaleX:s,scaleY:a}=i.getAncestorScale(),c=this._skeleton.getCellPositionByOffset(o,e,s,a,r),{row:d,column:u}=c,{rowHeaderWidth:h,columnHeaderHeight:f}=this._skeleton;let S=this._relativeSelectionPositionRow,g=this._relativeSelectionPositionColumn,p=d,v=u;t===w.CURSOR_TYPE.NORTH_WEST_RESIZE?(S=d,g=u,p=this._relativeSelectionPositionRow,v=this._relativeSelectionPositionColumn):t===w.CURSOR_TYPE.NORTH_RESIZE?(S=d,g=this._relativeSelectionPositionColumn,p=this._relativeSelectionPositionRow,v=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength):t===w.CURSOR_TYPE.NORTH_EAST_RESIZE?(S=d,g=this._relativeSelectionPositionColumn,p=this._relativeSelectionPositionRow,v=u):t===w.CURSOR_TYPE.WEST_RESIZE?(S=this._relativeSelectionPositionRow,g=u,p=this._relativeSelectionPositionRow+this._relativeSelectionRowLength,v=this._relativeSelectionPositionColumn):t===w.CURSOR_TYPE.EAST_RESIZE?p=this._relativeSelectionPositionRow+this._relativeSelectionRowLength:t===w.CURSOR_TYPE.SOUTH_WEST_RESIZE?(S=this._relativeSelectionPositionRow,g=u,p=d,v=this._relativeSelectionPositionColumn):t===w.CURSOR_TYPE.SOUTH_RESIZE&&(S=this._relativeSelectionPositionRow,g=this._relativeSelectionPositionColumn,p=d,v=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength);const{startRow:C,startColumn:I,endRow:b,endColumn:R}=this._swapPositions(S,g,p,v),P=this._skeleton.getNoMergeCellPositionByIndex(C,I),y=this._skeleton.getNoMergeCellPositionByIndex(b,R),O=(P==null?void 0:P.startY)||0,N=(y==null?void 0:y.endY)||0,D=(P==null?void 0:P.startX)||0,k=(y==null?void 0:y.endX)||0;this._targetSelection={startY:O,endY:N,startX:D,endX:k,startRow:S,endRow:p,startColumn:g,endColumn:v},this._control.update(this._targetSelection,h,f,this._control.selectionStyle),this._control.clearHighlight(),this._control.selectionScaling$.next(this._targetSelection)}_widgetEvent(o,e){const{offsetX:t,offsetY:i}=o,r=this._scene,s=r.getRelativeToViewportCoord(w.Vector2.FromArray([t,i])),{x:a,y:c}=s;this._startOffsetX=t,this._startOffsetY=i;const{startRow:d,startColumn:u,endRow:h,endColumn:f}=this._control.model;this._relativeSelectionPositionRow=d,this._relativeSelectionPositionColumn=u,this._relativeSelectionRowLength=h-d,this._relativeSelectionColumnLength=f-u,e===w.CURSOR_TYPE.NORTH_WEST_RESIZE?(this._relativeSelectionPositionRow=h,this._relativeSelectionPositionColumn=f):e===w.CURSOR_TYPE.NORTH_RESIZE?this._relativeSelectionPositionRow=h:e===w.CURSOR_TYPE.NORTH_EAST_RESIZE?this._relativeSelectionPositionRow=h:e===w.CURSOR_TYPE.WEST_RESIZE?this._relativeSelectionPositionColumn=f:e===w.CURSOR_TYPE.SOUTH_WEST_RESIZE&&(this._relativeSelectionPositionColumn=f);const S=w.ScrollTimer.create(r);S.startScroll(a,c),this._scrollTimer=S,r.disableEvent(),this._scenePointerMoveSub=r.onPointerMove$.subscribeEvent(g=>{const{offsetX:p,offsetY:v}=g,{x:C,y:I}=r.getRelativeToViewportCoord(w.Vector2.FromArray([p,v]));this._widgetMoving(C,I,e),r.setCursor(e),S.scrolling(C,I,()=>{this._widgetMoving(C,I,e)})}),this._scenePointerUpSub=r.onPointerUp$.subscribeEvent(()=>{var p;const g=this._scene;g.resetCursor(),this._clearObserverEvent(),g.enableEvent(),(p=this._scrollTimer)==null||p.dispose(),this._control.selectionScaled$.next(this._targetSelection)})}_initialFill(){const{fillControl:o}=this._control;o.onPointerEnter$.subscribeEvent(e=>{this._injector.get(pe).interceptor.fetchThroughInterceptors(Lo)(!1,{x:e.offsetX,y:e.offsetY,skeleton:this._skeleton,scene:this._scene})&&o.setCursor(w.CURSOR_TYPE.CROSSHAIR)}),o.onPointerLeave$.subscribeEvent(()=>{o.resetCursor()}),o.onPointerDown$.subscribeEvent(this._fillEvent.bind(this))}_fillMoving(o,e){var k,H,V;const t=this._scene,i=t.getViewportScrollXY(this._activeViewport),{scaleX:r,scaleY:s}=t.getAncestorScale(),a=this._skeleton.getCellPositionByOffset(o,e,r,s,i),{row:c,column:d}=a,u=t.getRelativeToViewportCoord(w.Vector2.FromArray([o,e])),h=this._skeleton.getRowCount()-1,f=this._skeleton.getColumnCount()-1;let S=this._relativeSelectionPositionRow,g=this._relativeSelectionPositionColumn,p=this._relativeSelectionPositionRow+this._relativeSelectionRowLength,v=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength,C=!1,I=!0;if((d<g||d>v)&&c>=S&&c<=p){const U=this._fillRuler(d,g,v,this._relativeSelectionColumnLength,f);g=U.startRowOrColumn,v=U.endRowOrColumn,C=U.isLighten,I=!1}else if((c<S||c>p)&&d>=g&&d<=v){const U=this._fillRuler(c,S,p,this._relativeSelectionRowLength,h);S=U.startRowOrColumn,p=U.endRowOrColumn,C=U.isLighten}else if(Math.abs(this._startOffsetX-u.x-i.x)/2>Math.abs(this._startOffsetY-u.y-i.y)){const U=this._fillRuler(d,g,v,this._relativeSelectionColumnLength,f);g=U.startRowOrColumn,v=U.endRowOrColumn,C=U.isLighten,I=!1}else{const U=this._fillRuler(c,S,p,this._relativeSelectionRowLength,h);S=U.startRowOrColumn,p=U.endRowOrColumn,C=U.isLighten}const b=this._skeleton.getNoMergeCellPositionByIndex(S,g),R=this._skeleton.getNoMergeCellPositionByIndex(p,v),P=(b==null?void 0:b.startY)||0,y=(R==null?void 0:R.endY)||0,O=(b==null?void 0:b.startX)||0,N=(R==null?void 0:R.endX)||0;C?this._controlHandler((U,W)=>{const X=new l.ColorKit(this._fillControlColors[W]).lighten(dd).toRgbString();U.setProps({fill:X})}):this._controlHandler((U,W)=>{U.setProps({fill:this._fillControlColors[W]})});const D=m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/this._getScale();S===p&&I===!0||g===v&&I===!1?(k=this._helperSelection)==null||k.hide():((H=this._helperSelection)==null||H.transformByState({left:O-D/2,top:P-D/2,width:N-O,height:y-P}),(V=this._helperSelection)==null||V.show()),this._targetSelection={startY:P,endY:y,startX:O,endX:N,startRow:S,endRow:p,startColumn:g,endColumn:v},this._control.selectionFilling$.next(this._targetSelection)}_fillEvent(o){const{offsetX:e,offsetY:t}=o,i=this._scene,r=i.getRelativeToViewportCoord(w.Vector2.FromArray([e,t])),{x:s,y:a}=r;this._startOffsetX=s,this._startOffsetY=a;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 f=this._control.selectionStyle;let S=f==null?void 0:f.stroke,g=f==null?void 0:f.strokeWidth;const p=m.getNormalSelectionStyle(this._themeService);S==null&&(S=p.stroke),g==null&&(g=p.strokeWidth);const v=this._getScale();g/=v;const C=m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/v,I=new l.ColorKit(S).darken(2).toRgbString();this.isHelperSelection&&(this._helperSelection=new w.Rect(Os,{stroke:I,strokeWidth:g+C/2}),i.addObject(this._helperSelection)),this._activeViewport=i.getActiveViewportByCoord(w.Vector2.FromArray([e,t]));const b=i.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),R=w.ScrollTimer.create(i,this._activeViewport.viewportKey===w.SHEET_VIEWPORT_KEY.VIEW_MAIN?w.ScrollTimerType.ALL:w.ScrollTimerType.NONE);R.startScroll(s,a,b),this._scrollTimer=R,i.disableEvent(),this._controlHandler(P=>{this._fillControlColors.push(P.fill)}),this._scenePointerMoveSub=i.onPointerMove$.subscribeEvent(P=>{var U;const{offsetX:y,offsetY:O}=P,N=i.getActiveViewportByCoord(w.Vector2.FromArray([y,O]));if(!this._injector.get(pe).interceptor.fetchThroughInterceptors(Lo)(!1,{x:o.offsetX,y:o.offsetY,skeleton:this._skeleton,scene:this._scene}))return;const{x:k,y:H}=i.getRelativeToViewportCoord(w.Vector2.FromArray([y,O]));this._fillMoving(k,H),i.setCursor(w.CURSOR_TYPE.CROSSHAIR);const V=this._targetSelection;if(b&&N&&((U=this._activeViewport)==null?void 0:U.viewportKey)!==(N==null?void 0:N.viewportKey)){let W;V.startRow!==c?(R.scrollTimerType=w.ScrollTimerType.Y,W={...V,endRow:V.startRow}):V.endRow!==u?(R.scrollTimerType=w.ScrollTimerType.Y,W={...V,startRow:V.endRow}):V.startColumn!==d?(R.scrollTimerType=w.ScrollTimerType.X,W={...V,endColumn:V.startColumn}):(R.scrollTimerType=w.ScrollTimerType.X,W={...V,startColumn:V.endColumn}),this._isSelectionInViewport(W,N)&&(b.scrollToBarPos({x:R.scrollTimerType===w.ScrollTimerType.X?0:void 0,y:R.scrollTimerType===w.ScrollTimerType.Y?0:void 0}),this._activeViewport=N)}R.scrolling(k,H,()=>{this._fillMoving(k,H)})}),this._scenePointerUpSub=i.onPointerUp$.subscribeEvent(()=>{var y,O;(y=this._helperSelection)==null||y.dispose();const P=this._scene;P.resetCursor(),this._clearObserverEvent(),P.enableEvent(),(O=this._scrollTimer)==null||O.dispose(),this._control.refreshSelectionFilled(this._targetSelection),this._isInMergeState=!1,this._controlHandler((N,D)=>{N.setProps({fill:this._fillControlColors[D]})}),this._fillControlColors=[]})}_hasMergeInRange(o,e,t,i){const r=this._skeleton.mergeData;if(!r)return!1;for(const s of r){const{startRow:a,startColumn:c,endRow:d,endColumn:u}=s,h={left:e,top:o,right:i,bottom:t},f={left:c,top:a,right:u,bottom:d};if(w.isRectIntersect(h,f))return!0}return!1}_swapPositions(o,e,t,i){const r=Math.min(o,t),s=Math.min(e,i),a=Math.max(o,t),c=Math.max(e,i);return{startRow:r,startColumn:s,endRow:a,endColumn:c}}_controlHandler(o){const{leftControl:e,rightControl:t,topControl:i,bottomControl:r,backgroundControlTop:s,backgroundControlMiddleLeft:a,backgroundControlMiddleRight:c,backgroundControlBottom:d,fillControl:u}=this._control,h=[e,t,i,r,s,a,c,d,u];for(let f=0,S=h.length;f<S;f++){const g=h[f];o(g,f)}}_fillRuler(o,e,t,i,r){let s=!1;if(o<e)if(this._isInMergeState&&o<e){const a=e-o,c=i+1,d=Math.ceil(a/c);let u=e-d*c;u<0&&(u=e-(d-1)*c),e=u}else e=o;else if(o>=e&&o<=t)s=!0,this._isInMergeState||(t=o);else if(this._isInMergeState&&o>t){const a=o-t,c=i+1,d=Math.ceil(a/c);let u=t+d*c;u>r&&(u=t+(d-1)*c),t=u}else t=o;return{rowOrColumn:o,startRowOrColumn:e,endRowOrColumn:t,isLighten:s}}_getScale(){const{scaleX:o,scaleY:e}=this._scene.getAncestorScale();return Math.max(o,e)}}function pt(n,o){const{range:e,primary:t,style:i}=n;return{rangeWithCoord:Eo(o,e),primaryWithCoord:t?Wo(t,o):null,style:i}}function Wo(n,o){const{actualRow:e,actualColumn:t,isMerged:i,isMergedMainCell:r,startRow:s,startColumn:a,endRow:c,endColumn:d}=n,u=o.getNoMergeCellPositionByIndex(e,t),h=o.getNoMergeCellPositionByIndex(s,a),f=o.getNoMergeCellPositionByIndex(c,d);return{actualRow:e,actualColumn:t,isMerged:i,isMergedMainCell:r,startX:u.startX,startY:u.startY,endX:u.endX,endY:u.endY,mergeInfo:{startRow:s,startColumn:a,endRow:c,endColumn:d,startY:(h==null?void 0:h.startY)||0,endY:(f==null?void 0:f.endY)||0,startX:(h==null?void 0:h.startX)||0,endX:(f==null?void 0:f.endX)||0}}}const pe=l.createIdentifier("univer.sheet.selection-render-service");class xo extends l.Disposable{constructor(e,t,i,r){super();E(this,"_downObserver");E(this,"_scenePointerMoveSub");E(this,"_scenePointerUpSub");E(this,"_controlFillConfig$",new A.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,"_startViewportPosX",0);E(this,"_startViewportPosY",0);E(this,"_scrollTimer");E(this,"_cancelDownSubscription");E(this,"_cancelUpSubscription");E(this,"_skeleton");E(this,"_scene");E(this,"_isHeaderHighlight",!0);E(this,"_shouldDetectMergedCells",!0);E(this,"_selectionStyle");E(this,"_remainLastEnabled",!1);E(this,"_skipLastEnabled",!1);E(this,"_singleSelectionEnabled",!1);E(this,"_selectionMoveEnd$",new A.BehaviorSubject([]));E(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());E(this,"_selectionMoving$",new A.Subject);E(this,"selectionMoving$",this._selectionMoving$.asObservable());E(this,"_selectionMoveStart$",new A.Subject);E(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());E(this,"_selectionMoving",!1);E(this,"_activeViewport");E(this,"interceptor",new l.InterceptorManager({RANGE_MOVE_PERMISSION_CHECK:Vo,RANGE_FILL_PERMISSION_CHECK:Lo}));this._injector=e,this._themeService=t,this._shortcutService=i,this._renderManagerService=r,this._resetStyle(),this._initMoving()}get selectionMoving(){return this._selectionMoving}_initMoving(){this.disposeWithMe(this._selectionMoving$.subscribe(()=>{this._selectionMoving=!0})),this.disposeWithMe(this._selectionMoveEnd$.subscribe(()=>{this._selectionMoving=!1}))}_setStyle(e){this._selectionStyle=e}_resetStyle(){this._setStyle(m.getNormalSelectionStyle(this._themeService))}getViewPort(){return this._activeViewport}setSingleSelectionEnabled(e=!1){this._singleSelectionEnabled=e}_addSelectionControlBySelectionData(e){var f;const{rangeWithCoord:t,primaryWithCoord:i}=e,{rangeType:r}=t,s=this._skeleton,a=(f=e.style)!=null?f:m.getNormalSelectionStyle(this._themeService),c=this._scene;if(!c||!s)return;const d=this.newSelectionControl(c,r||l.RANGE_TYPE.NORMAL);new ud(d,s,c,this._themeService,this._injector);const{rowHeaderWidth:u,columnHeaderHeight:h}=s;d.update(t,u,h,a,i)}newSelectionControl(e,t){const i=this.getSelectionControls(),r=new pi(e,i.length,this._isHeaderHighlight,this._themeService);return this._selectionControls.push(r),r}updateControlForCurrentByRangeData(e){const t=this.getSelectionControls();if(!t)return;const i=this._skeleton;if(i==null)return;const{rowHeaderWidth:r,columnHeaderHeight:s}=i;for(let a=0,c=e.length;a<c;a++){const{rangeWithCoord:d,primaryWithCoord:u,style:h}=e[a];t[a].update(d,r,s,h,u)}}refreshSelectionMoveStart(){this._selectionMoveStart$.next(this.getSelectionDataWithStyle())}_changeRuntime(e,t,i){this._skeleton=e,this._scene=t,this._activeViewport=i||(t==null?void 0:t.getViewports()[0])}getSkeleton(){return this._skeleton}getSelectionDataWithStyle(){const e=this._selectionControls,[t,i]=this._skeleton.getLocation();return e.map(r=>{const s=r.getValue();return s.rangeWithCoord.sheetId=i,s.rangeWithCoord.unitId=t,s})}getSelectionControls(){return this._selectionControls}_clearSelectionControls(){const e=this._selectionControls;for(const t of e)t.dispose();this._selectionControls.length=0}_getFreeze(){var t,i;return(i=(t=this._renderManagerService.withCurrentTypeOfUnit(l.UniverInstanceType.UNIVER_SHEET,M.SheetSkeletonManagerService))==null?void 0:t.getCurrent())==null?void 0:i.skeleton.getWorksheetConfig().freeze}_getViewportByCell(e,t){if(e===void 0||t===void 0)return null;const i=this._getFreeze();if(!i||i.startRow<=0&&i.startColumn<=0)return this._scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(e>i.startRow&&t>i.startColumn)return this._scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(e<=i.startRow&&t<=i.startColumn)return this._scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(e<=i.startRow&&t>i.startColumn)return this._scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(e>i.startRow&&t<=i.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}}getActiveSelectionControl(){const e=this.getSelectionControls();if(e)return e[e.length-1]}endSelection(){this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),this._shortcutService.setDisable(!1)}_reset(){var e;this._clearSelectionControls(),(e=this._downObserver)==null||e.unsubscribe(),this._downObserver=null}resetAndEndSelection(){this.endSelection(),this._reset()}_onPointerDown(e,t=0,i=l.RANGE_TYPE.NORMAL,r,s=w.ScrollTimerType.ALL){var H;this._shouldDetectMergedCells=i===l.RANGE_TYPE.NORMAL;const a=this._skeleton,c=this._scene;if(!c||!a)return;r&&(this._activeViewport=r);const{offsetX:d,offsetY:u}=e,h=c.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!h)return;const f=c.getRelativeToViewportCoord(w.Vector2.FromArray([d,u]));let{x:S,y:g}=f;this._startViewportPosX=S,this._startViewportPosY=g;const p=c.getVpScrollXYInfoByPosToVp(f),{scaleX:v,scaleY:C}=c.getAncestorScale(),I=this._getCellRangeByCursorPosition(S,g,v,C,p);if(!I)return!1;const{rangeWithCoord:b,primaryWithCoord:R}=I,P={...b,rangeType:i};this._startRangeWhenPointerDown={...b,rangeType:i};let y=this.getActiveSelectionControl();const O=this.getSelectionControls();for(const V of O){if(e.button===2&&V.model.isInclude(P)){y=V;return}if(V.model.isEqual(P)){y=V;break}e.shiftKey||V.clearHighlight()}this._checkClearPreviousControls(e);const N=y==null?void 0:y.model.currentCell,D=e.shiftKey&&N,k=this._remainLastEnabled&&!e.ctrlKey&&!e.shiftKey&&!this._skipLastEnabled&&!this._singleSelectionEnabled;D&&N?this._performSelectionByTwoCells(N,P,a,i,y):k&&y?this._updateSelectionControlRange(y,P,R):(y=this.newSelectionControl(c,i),this._updateSelectionControlRange(y,P,R)),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),c.disableEvent(),this._clearUpdatingListeners(),this._addEndingListeners(),(H=c.getTransformer())==null||H.clearSelectedObjects(),(i===l.RANGE_TYPE.ROW||i===l.RANGE_TYPE.COLUMN)&&(i===l.RANGE_TYPE.ROW?S=0:i===l.RANGE_TYPE.COLUMN&&(g=0),this._moving(S,g,y,i)),this._setupPointerMoveListener(h,y,i,s,S,g),this._shortcutService.setDisable(!0),this._scenePointerUpSub=c.onPointerUp$.subscribeEvent(()=>{this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),this._shortcutService.setDisable(!1)})}_setupPointerMoveListener(e,t,i,r=w.ScrollTimerType.ALL,s,a){var g,p;let c=0,d=0,u=s,h=a;this._scrollTimer=w.ScrollTimer.create(this._scene,r),this._scrollTimer.startScroll((g=e==null?void 0:e.left)!=null?g:0,(p=e==null?void 0:e.top)!=null?p:0,e);const f=this._scene,S=f.getActiveViewportByCoord(w.Vector2.FromArray([s,a]));this._scenePointerMoveSub=f.onPointerMove$.subscribeEvent(v=>{var H,V,U,W,X,K,Y,j,z;const{offsetX:C,offsetY:I}=v,{x:b,y:R}=f.getRelativeToViewportCoord(w.Vector2.FromArray([C,I]));this._moving(b,R,t,i);let P=b,y=R;const O=this.getActiveSelectionControl(),N=this._getFreeze(),D=O==null?void 0:O.model,k=(H=f.getActiveViewportByCoord(w.Vector2.FromArray([C,I])))!=null?H:this._getViewportByCell(D==null?void 0:D.endRow,D==null?void 0:D.endColumn);if(S&&k&&e){const F=u<e.left&&b>e.left||u>e.left&&b<e.left,Z=h<e.top&&R>e.top||h>e.top&&R<e.top;F&&(c+=1),Z&&(d+=1);const x=S.viewportKey,B=k.viewportKey;if(x===w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP)I<e.top&&((V=D==null?void 0:D.endRow)!=null?V:0)<((U=N==null?void 0:N.startRow)!=null?U:0)?y=e.top:Z&&d%2===1&&e.scrollToViewportPos({viewportScrollY:0});else if(x===w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT)C<e.left&&((W=D==null?void 0:D.endColumn)!=null?W:0)<((X=N==null?void 0:N.startColumn)!=null?X:0)?P=e.left:F&&c%2===1&&e.scrollToViewportPos({viewportScrollX:0});else if(x===B){let G=!1,J=!1;x===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP?(G=!0,J=!0):x===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP?J=!0:x===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT&&(G=!0),((K=D==null?void 0:D.endRow)!=null?K:0)>((Y=N==null?void 0:N.startRow)!=null?Y:0)&&(J=!1),((j=D==null?void 0:D.endColumn)!=null?j:0)>((z=N==null?void 0:N.startColumn)!=null?z:0)&&(G=!1),G&&(P=e.left),J&&(y=e.top)}else{const G={x:S.scrollX,y:S.scrollY},J={x:k.scrollX,y:k.scrollY},ee=G.x!==J.x&&F&&c%2===1,ie=G.y!==J.y&&Z&&d%2===1;(ee||ie)&&(e.scrollToBarPos({x:ee?G.x:void 0,y:ie?G.y:void 0}),ee||(P=e.left),ie||(y=e.top)),(x===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&B===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||B===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&x===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)&&(P=e.left),(x===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&B===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||B===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&x===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP)&&(y=e.top)}u=b,h=R}this._scrollTimer.scrolling(P,y,()=>{this._moving(b,R,t,i)})})}attachSelectionWithCoord(e){return pt(e,this._skeleton)}attachPrimaryWithCoord(e){return Wo(e,this._skeleton)}getSelectionCellByPosition(e,t){const i=this._scene,r=this._skeleton,s=i.getViewportScrollXY(i.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX:a,scaleY:c}=i.getAncestorScale();return r.calculateCellIndexByPosition(e,t,a,c,s)}_moving(e,t,i,r){var N,D,k,H,V;const s=this._skeleton,a=this._scene,[c,d]=s.getLocation(),u={startRow:(N=i==null?void 0:i.model.startRow)!=null?N:-1,endRow:(D=i==null?void 0:i.model.endRow)!=null?D:-1,startColumn:(k=i==null?void 0:i.model.startColumn)!=null?k:-1,endColumn:(H=i==null?void 0:i.model.endColumn)!=null?H:-1,unitId:c,sheetId:d},h=a.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),f=(V=this._getViewportByCell(u.endRow,u.endColumn))!=null?V:h,S=a.getVpScrollXYInfoByPosToVp(w.Vector2.FromArray([this._startViewportPosX,this._startViewportPosY]),f),{scaleX:g,scaleY:p}=a.getAncestorScale();r===l.RANGE_TYPE.ROW?e=Number.POSITIVE_INFINITY:r===l.RANGE_TYPE.COLUMN&&(t=Number.POSITIVE_INFINITY);const v=this._getCellRangeByCursorPosition(e,t,g,p,S);if(!v)return!1;const{rangeWithCoord:C}=v,I=this._startRangeWhenPointerDown;let b={startRow:Math.min(C.startRow,I.startRow),startColumn:Math.min(C.startColumn,I.startColumn),endRow:Math.max(C.endRow,I.endRow),endColumn:Math.max(C.endColumn,I.endColumn)};if(this._shouldDetectMergedCells&&(b=s.getSelectionMergeBounding(b.startRow,b.startColumn,b.endRow,b.endColumn)),!b)return!1;const R=s.getNoMergeCellPositionByIndex(b.startRow,b.startColumn),P=s.getNoMergeCellPositionByIndex(b.endRow,b.endColumn),y={startRow:b.startRow,startColumn:b.startColumn,endRow:b.endRow,endColumn:b.endColumn,unitId:c,sheetId:d,startY:(R==null?void 0:R.startY)||0,endY:(P==null?void 0:P.endY)||0,startX:(R==null?void 0:R.startX)||0,endX:(P==null?void 0:P.endX)||0},O=u.startRow!==b.startRow||u.startColumn!==b.startColumn||u.endRow!==b.endRow||u.endColumn!==b.endColumn;i!=null&&O&&(this._updateSelectionControlRange(i,y),this._selectionMoving$.next(this.getSelectionDataWithStyle()))}_updateSelectionControlRange(e,t,i){const r=this._skeleton,{rowHeaderWidth:s,columnHeaderHeight:a}=r;e.update(t,s,a,this._selectionStyle,i||null)}_clearUpdatingListeners(){var t,i,r,s,a;this._scene.enableEvent(),(t=this._scenePointerMoveSub)==null||t.unsubscribe(),this._scenePointerMoveSub=null,(i=this._scenePointerUpSub)==null||i.unsubscribe(),this._scenePointerUpSub=null,(r=this._cancelDownSubscription)==null||r.unsubscribe(),this._cancelDownSubscription=null,(s=this._cancelUpSubscription)==null||s.unsubscribe(),this._cancelUpSubscription=null,(a=this._scrollTimer)==null||a.dispose()}_addEndingListeners(){var i,r,s;const e=this._scene,t=(i=e.getEngine())==null?void 0:i.activeScene;!t||t===e||((r=this._cancelDownSubscription)==null||r.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()))}_getCellRangeByCursorPosition(e,t,i,r,s){var I;if(this._shouldDetectMergedCells){const b=(I=this._skeleton)==null?void 0:I.calculateCellIndexByPosition(e,t,i,r,s);if(!b)return;const R=l.makeCellToSelection(b);return{primaryWithCoord:b,rangeWithCoord:R}}const a=this._skeleton;if(a==null)return;const c=a.getCellPositionByOffset(e,t,i,r,s),{row:d,column:u}=c,h=a.getNoMergeCellPositionByIndex(d,u),{startX:f,startY:S,endX:g,endY:p}=h,v={startY:S,endY:p,startX:f,endX:g,startRow:d,endRow:d,startColumn:u,endColumn:u};return{primaryWithCoord:{actualRow:d,actualColumn:u,isMerged:!1,isMergedMainCell:!1,startY:S,endY:p,startX:f,endX:g,mergeInfo:v},rangeWithCoord:v}}_checkClearPreviousControls(e){this.getSelectionControls().length!==0&&(!e.ctrlKey&&!e.shiftKey&&!this._remainLastEnabled||this._singleSelectionEnabled&&!e.shiftKey)&&this._clearSelectionControls()}_performSelectionByTwoCells(e,t,i,r,s){const{actualRow:a,actualColumn:c,mergeInfo:d}=e,u=Math.min(a,t.startRow,d.startRow),h=Math.max(a,t.endRow,d.endRow),f=Math.min(c,t.startColumn,d.startColumn),S=Math.max(c,t.endColumn,d.endColumn),g=i.getMergeBounding(u,f,h,S),p=i.getNoMergeCellPositionByIndex(g.startRow,g.startColumn),v=i.getNoMergeCellPositionByIndex(g.endRow,g.endColumn),C={startColumn:g.startColumn,startRow:g.startRow,endColumn:g.endColumn,endRow:g.endRow,startY:p.startY,endY:v.endY,startX:p.startX,endX:v.endX,rangeType:r},I=i.getCellByIndex(a,c);this._startRangeWhenPointerDown={startColumn:I.mergeInfo.startColumn,startRow:I.mergeInfo.startRow,endColumn:I.mergeInfo.endColumn,endRow:I.mergeInfo.endRow,startY:I.mergeInfo.startY||0,endY:I.mergeInfo.endY||0,startX:I.mergeInfo.startX||0,endX:I.mergeInfo.endX||0,rangeType:r},this._updateSelectionControlRange(s,C,e)}}function Uo(n){return{range:{startRow:0,startColumn:0,endRow:n.getRowCount()-1,endColumn:n.getColumnCount()-1,rangeType:l.RANGE_TYPE.ALL},primary:vi(n).primary,style:null}}function vi(n){const o=n.mergeData;return m.transformCellDataToSelectionData(0,0,o)||{range:{startRow:0,startColumn:0,endRow:0,endColumn:0},primary:{actualRow:0,actualColumn:0,startRow:0,startColumn:0,endRow:0,endColumn:0,isMerged:!1,isMergedMainCell:!1},style:null}}var hd=Object.defineProperty,md=Object.getOwnPropertyDescriptor,fd=(n,o,e,t)=>{for(var i=t>1?void 0:t?md(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&hd(o,e,i),i},Bt=(n,o)=>(e,t)=>o(e,t,n);const Sd=l.createInterceptorKey("BEFORE_CELL_EDIT"),gd=l.createInterceptorKey("AFTER_CELL_EDIT"),pd=l.createInterceptorKey("AFTER_CELL_EDIT_ASYNC");M.EditorBridgeService=class extends l.Disposable{constructor(e,t,i,r,s,a){super();E(this,"_editorUnitId",l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);E(this,"_isForceKeepVisible",!1);E(this,"_editorIsDirty",!1);E(this,"_visible",{visible:!1,eventType:w.DeviceInputEventType.Dblclick,unitId:""});E(this,"_currentEditCell",null);E(this,"_currentEditCellState",null);E(this,"_currentEditCellState$",new A.BehaviorSubject(null));E(this,"currentEditCellState$",this._currentEditCellState$.asObservable());E(this,"_visible$",new A.BehaviorSubject(this._visible));E(this,"visible$",this._visible$.asObservable());E(this,"_afterVisible$",new A.BehaviorSubject(this._visible));E(this,"afterVisible$",this._afterVisible$.asObservable());E(this,"interceptor",new l.InterceptorManager({BEFORE_CELL_EDIT:Sd,AFTER_CELL_EDIT:gd,AFTER_CELL_EDIT_ASYNC:pd}));this._renderManagerService=e,this._themeService=t,this._univerInstanceService=i,this._editorService=r,this._refSelectionsService=s,this._contextService=a,this.disposeWithMe(l.toDisposable(()=>{this._currentEditCellState$.complete(),this._currentEditCell=null})),this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().AFTER_CELL_EDIT,{priority:-1,handler:c=>c})),this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().BEFORE_CELL_EDIT,{priority:-1,handler:c=>c})),this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().AFTER_CELL_EDIT_ASYNC,{priority:-1,handler:c=>c}))}refreshEditCellState(){const e=this.getLatestEditCellState();this._currentEditCellState=e,this._currentEditCellState$.next(e)}setEditCell(e){this._currentEditCell=e,this._editorService.getFocusEditor()||(this._editorService.focus(l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._contextService.setContextValue(l.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(l.FOCUSING_EDITOR_STANDALONE,!1),this._contextService.setContextValue(l.FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE,!1));const t=this.getLatestEditCellState();this._currentEditCellState=t,this._currentEditCellState$.next(t)}getEditCellState(){return this._currentEditCellState}getLatestEditCellState(){var U,W,X;const e=this._currentEditCell;if(e==null)return;const t=this._renderManagerService.getCurrentTypeOfRenderer(l.UniverInstanceType.UNIVER_SHEET);if(!t)return;const i=t.with(M.SheetSkeletonManagerService).getCurrentSkeleton(),r=t.with(pe);if(!i)return;const{primary:s,unitId:a,sheetId:c,scene:d,engine:u}=e,{startRow:h,startColumn:f}=s,S=Wo(s,i);if(S==null)return;const g=l.makeCellToSelection(S),p=w.getCanvasOffsetByEngine(u);let{startX:v,startY:C,endX:I,endY:b}=g;const{scaleX:R,scaleY:P}=d.getAncestorScale(),y=d.getViewportScrollXY(r.getViewPort());v=i.convertTransformToOffsetX(v,R,y),C=i.convertTransformToOffsetY(C,P,y),I=i.convertTransformToOffsetX(I,R,y),b=i.convertTransformToOffsetY(b,P,y);const O=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),N=O.getActiveSheet();if(!N)return;const D={workbook:O,worksheet:N,unitId:O.getUnitId(),subUnitId:N.getSheetId(),row:h,col:f},k=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().BEFORE_CELL_EDIT)(N.getCell(h,f),D);let H=k&&i.getCellDocumentModelWithFormula(k);const V=(U=H==null?void 0:H.documentModel)==null?void 0:U.documentStyle.renderConfig;if(V!=null&&(V.cellValueType=l.CellValueType.STRING),!H||H.documentModel==null){const K=i.getBlankCellDocumentModel(k);if(H!=null){const{verticalAlign:Y,horizontalAlign:j,wrapStrategy:z,textRotation:F,fill:Z}=H,{centerAngle:x,vertexAngle:B}=w.convertTextRotation(F);K.documentModel.documentStyle.renderConfig={verticalAlign:Y,horizontalAlign:j,wrapStrategy:z,background:{rgb:Z},centerAngle:x,vertexAngle:B}}H=K}if((W=H.documentModel)==null||W.setZoomRatio(Math.max(R,P)),(k==null?void 0:k.isInArrayFormulaRange)===!0){const K=(X=H.documentModel)==null?void 0:X.getBody();K&&(K.textRuns=[{st:0,ed:K.dataStream.length-2,ts:{cl:{rgb:this._themeService.getCurrentTheme().textColorSecondary}}}])}return this._editorService.setOperationSheetUnitId(a),this._editorService.setOperationSheetSubUnitId(c),{position:{startX:v,startY:C,endX:I,endY:b},scaleX:R,scaleY:P,canvasOffset:p,row:h,column:f,unitId:a,sheetId:c,documentLayoutObject:H,editorUnitId:this._editorUnitId,isInArrayFormulaRange:k==null?void 0:k.isInArrayFormulaRange}}getCurrentEditorId(){return this._editorUnitId}changeVisible(e){const t=this._editorService.getFocusEditor();this._refSelectionsService.getCurrentSelections().length>0&&t&&!t.isSheetEditor()||(this._visible=e,e.visible&&(this._editorIsDirty=!1),this._visible$.next(this._visible),this._afterVisible$.next(this._visible))}isVisible(){return this._visible}enableForceKeepVisible(){this._isForceKeepVisible=!0}disableForceKeepVisible(){this._isForceKeepVisible=!1}isForceKeepVisible(){return this._isForceKeepVisible}changeEditorDirty(e){this._editorIsDirty=e}getEditorDirty(){return this._editorIsDirty}},M.EditorBridgeService=fd([Bt(0,w.IRenderManagerService),Bt(1,l.Inject(l.ThemeService)),Bt(2,l.IUniverInstanceService),Bt(3,T.IEditorService),Bt(4,m.IRefSelectionsService),Bt(5,l.IContextService)],M.EditorBridgeService);const ze=l.createIdentifier("univer.sheet-editor-bridge.service"),Pe={id:"sheet.operation.set-cell-edit-visible",type:l.CommandType.OPERATION,handler:(n,o)=>o?(n.get(ze).changeVisible(o),!0):!1},In={id:"sheet.operation.set-cell-edit-visible-f2",type:l.CommandType.OPERATION,handler:(n,o)=>(n.get(l.ICommandService).syncExecuteCommand(Pe.id,o),!0)},Ft={id:"sheet.operation.set-cell-edit-visible-arrow",type:l.CommandType.OPERATION,handler:()=>!0},jt={id:"sheet.command.change-zoom-ratio",type:l.CommandType.COMMAND,handler:async(n,o)=>{if(!o)return!1;const e=n.get(l.IUniverInstanceService),t=m.getSheetCommandTarget(e);if(!t)return!1;const{worksheet:i,subUnitId:r,unitId:s}=t,{delta:a,reset:c}=o;let d=c?100:Math.round((i.getConfig().zoomRatio+a)*100);d=Math.max(Ao[0],d),d=Math.min(Ao[1],d);const u=d/100;return n.get(l.ICommandService).executeCommand(Ye.id,{unitId:s,subUnitId:r,zoomRatio:u})}},Xt={id:"sheet.command.set-zoom-ratio",type:l.CommandType.COMMAND,handler:async(n,o)=>{if(!o)return!1;const{unitId:e,subUnitId:t,zoomRatio:i}=o;return n.get(l.ICommandService).executeCommand(Ye.id,{unitId:e,subUnitId:t,zoomRatio:i})}};var vd=Object.defineProperty,Cd=Object.getOwnPropertyDescriptor,_d=(n,o,e,t)=>{for(var i=t>1?void 0:t?Cd(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&vd(o,e,i),i},As=(n,o)=>(e,t)=>o(e,t,n);let bn=class extends l.Disposable{constructor(n,o,e){super(),this._context=n,this._sheetSkeletonManagerService=o,this._commandService=e,this._skeletonListener(),this._zoomEventBinding()}updateZoom(n,o){const e=this._context.unit.getSheetBySheetId(n);return e?(e.getConfig().zoomRatio=o,e===this._context.unit.getActiveSheet()&&this._updateViewZoom(o),!0):!1}_zoomEventBinding(){var o;const n=(o=this._getSheetObject())==null?void 0:o.scene;n!=null&&this.disposeWithMe(n.onMouseWheel$.subscribeEvent(e=>{if(!e.ctrlKey)return;const t=Math.abs(e.deltaX);let i=t<40?.2:t<80?.4:.2;i*=e.deltaY>0?-1:1,n.scaleX<1&&(i/=2);const r=this._context.unit,s=r.getActiveSheet();if(!s)return;const a=s.getZoomRatio();let c=+Number.parseFloat(`${a+i}`).toFixed(1);c=c>=4?4:c<=.1?.1:c,this._commandService.executeCommand(Xt.id,{zoomRatio:Math.round(c*10)/10,unitId:r.getUnitId(),subUnitId:s.getSheetId()}),e.preventDefault()}))}_skeletonListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(n=>{if(n==null)return;const e=this._context.unit.getActiveSheet();if(!e)return;const t=e.getZoomRatio()||1;this._updateViewZoom(t)}))}_updateViewZoom(n){const o=this._getSheetObject();o==null||o.scene.scale(n,n),o==null||o.spreadsheet.makeForceDirty()}_getSheetObject(){return je(this._context.unit,this._context)}};bn=_d([As(1,l.Inject(M.SheetSkeletonManagerService)),As(2,l.ICommandService)],bn);const Ye={id:"sheet.operation.set-zoom-ratio",type:l.CommandType.OPERATION,handler:(n,o)=>{const t=n.get(w.IRenderManagerService).getRenderById(o.unitId);return t?t.with(bn).updateZoom(o.subUnitId,o.zoomRatio):!1}};var Id=Object.defineProperty,bd=Object.getOwnPropertyDescriptor,Rd=(n,o,e,t)=>{for(var i=t>1?void 0:t?bd(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Id(o,e,i),i},vt=(n,o)=>(e,t)=>o(e,t,n);M.AutoFillController=class extends l.Disposable{constructor(e,t,i,r,s,a,c){super();E(this,"_beforeApplyData",[]);E(this,"_currentLocation",null);E(this,"_copyData",[]);E(this,"_defaultHook");this._univerInstanceService=e,this._commandService=t,this._autoFillService=i,this._editorBridgeService=r,this._renderManagerService=s,this._injector=a,this._sheetsRenderService=c,this._defaultHook={id:"default",type:xt.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._onSelectionControlFillChanged(),this._onApplyTypeChanged(),this._initQuitListener(),this._initSkeletonChange()}_initSkeletonChange(){this.disposeWithMe(this._sheetsRenderService.registerSkeletonChangingMutations(gt.id))}_initDefaultHook(){this.disposeWithMe(this._autoFillService.addHook(this._defaultHook))}_initQuitListener(){const e=[Pe.id,Ut.id,m.SetRangeValuesCommand.id,Ye.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];this.disposeWithMe(this._commandService.onCommandExecuted((t,i)=>{var s,a;const r=i==null?void 0:i.fromCollab;e.includes(t.id)&&!r&&t.params.trigger!==gt.id&&this._quit(),t.id===m.RemoveSheetMutation.id&&t.params.unitId===((s=this._currentLocation)==null?void 0:s.unitId)&&t.params.subUnitId===((a=this._currentLocation)==null?void 0:a.subUnitId)&&this._quit()})),this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(t=>{var i;t.getUnitId()===((i=this._currentLocation)==null?void 0:i.unitId)&&this._quit()}))}_quit(){this._currentLocation=null,this._beforeApplyData=[],this._copyData=[],this._autoFillService.setShowMenu(!1)}_onSelectionControlFillChanged(){const e=new l.DisposableCollection,t=i=>{i.dispose();const r=this._renderManagerService.getCurrentTypeOfRenderer(l.UniverInstanceType.UNIVER_SHEET);if(!r)return;r.with(pe).getSelectionControls().forEach(c=>{i.add(l.toDisposable(c.selectionFilled$.subscribe(d=>{if(d==null||d.startColumn===-1||d.startRow===-1||d.endColumn===-1||d.endRow===-1)return;const u={startColumn:c.model.startColumn,endColumn:c.model.endColumn,startRow:c.model.startRow,endRow:c.model.endRow},h={startColumn:d.startColumn,endColumn:d.endColumn,startRow:d.startRow,endRow:d.endRow};this._triggerAutoFill(u,h)}))),i.add(l.toDisposable(c.fillControl.onDblclick$.subscribeEvent(()=>{const d={startColumn:c.model.startColumn,endColumn:c.model.endColumn,startRow:c.model.startRow,endRow:c.model.endRow};this._handleDbClickFill(d)}))),i.add(l.toDisposable(c.fillControl.onPointerDown$.subscribeEvent(()=>{this._editorBridgeService.isVisible().visible&&this._editorBridgeService.changeVisible({visible:!1,eventType:w.DeviceInputEventType.PointerDown,unitId:r.unitId})})))})};t(e),this.disposeWithMe(this._commandService.onCommandExecuted(i=>{i.id===m.SetSelectionsOperation.id&&t(e)}))}_onApplyTypeChanged(){this.disposeWithMe(l.toDisposable(this._autoFillService.applyType$.subscribe(()=>{this._handleFillData()})))}_triggerAutoFill(e,t){var p,v;if(e.startColumn===t.startColumn&&e.startRow===t.startRow&&e.endColumn===t.endColumn&&e.endRow===t.endRow)return;if(t.endColumn<e.endColumn&&t.endColumn>e.startColumn){this._commandService.executeCommand(Ut.id,{clearRange:{startRow:t.startRow,endRow:t.endRow,startColumn:t.endColumn+1,endColumn:e.endColumn},selectionRange:t});return}if(t.endRow<e.endRow&&t.endRow>e.startRow){this._commandService.executeCommand(Ut.id,{clearRange:{startRow:t.endRow+1,endRow:e.endRow,startColumn:t.startColumn,endColumn:t.endColumn},selectionRange:t});return}const i={startRow:t.startRow,endRow:t.endRow,startColumn:t.startColumn,endColumn:t.endColumn};let r=null;if(t.startRow<e.startRow)r=l.Direction.UP,i.endRow=e.startRow-1;else if(t.endRow>e.endRow)r=l.Direction.DOWN,i.startRow=e.endRow+1;else if(t.startColumn<e.startColumn)r=l.Direction.LEFT,i.endColumn=e.startColumn-1;else if(t.endColumn>e.endColumn)r=l.Direction.RIGHT,i.startColumn=e.endColumn+1;else return;const s=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!s)return;const a=s.getUnitId(),c=(p=s.getActiveSheet())==null?void 0:p.getSheetId();if(!c)return;this._autoFillService.direction=r;const d={get:this._injector.get.bind(this._injector)},u=Vt(e,d),h=Vt(i,d);if(!u||!h)return;this._autoFillService.autoFillLocation={source:u,target:h,unitId:a,subUnitId:c};const f=[];this._autoFillService.getActiveHooks().forEach(C=>{var b;const I=(b=C==null?void 0:C.onBeforeFillData)==null?void 0:b.call(C,{source:u,target:h,unitId:a,subUnitId:c},r);I&&f.unshift(I)});for(let C=0;C<f.length;C++){const I=this._autoFillService.menu.find(b=>b.value===f[C]);if(I&&!I.disable){this._autoFillService.applyType=f[C];return}}const g=(v=this._autoFillService.menu.find(C=>C.disable===!1))==null?void 0:v.value;g&&(this._autoFillService.applyType=g)}_handleDbClickFill(e){const t=this._detectFillRange(e);t.endRow<=e.endRow||this._triggerAutoFill(e,t)}_detectFillRange(e){var f,S,g,p,v,C;const{startRow:t,endRow:i,startColumn:r,endColumn:s}=e,a=(f=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET))==null?void 0:f.getActiveSheet();if(!a)return e;const c=a.getCellMatrix(),d=a.getMaxRows()-1,u=a.getMaxColumns()-1;let h=i;if(r>0&&((S=c.getValue(t,r-1))==null?void 0:S.v)!=null){let I=t;for(;((g=c.getValue(I,r-1))==null?void 0:g.v)!=null&&I<d;)I+=1;h=I-1}else if(s<u&&((p=c.getValue(i,s+1))==null?void 0:p.v)!=null){let I=t;for(;((v=c.getValue(I,s+1))==null?void 0:v.v)!=null&&I<d;)I+=1;h=I-1}for(let I=i+1;I<=h;I++)for(let b=r;b<=s;b++)if(((C=c.getValue(I,b))==null?void 0:C.v)!=null){h=I-1;break}return{startColumn:r,endColumn:s,startRow:t,endRow:h}}_handleFillData(){var e,t;this._currentLocation&&this._commandService.executeCommand(gt.id,{unitId:(e=this._currentLocation)==null?void 0:e.unitId,subUnitId:(t=this._currentLocation)==null?void 0:t.subUnitId})}_getApplyData(e,t,i,r,s,a=!0){const c=[],d=Math.floor(i/t),u=i%t,h=this._autoFillService.getRules();if(!a&&s===se.ONLY_FORMAT)return console.error("ERROR: only format can not be applied when hasStyle is false"),[];const f={};h.forEach(S=>{f[S.type]=[]}),h.forEach(S=>{const{type:g,applyFunctions:p={}}=S,v=e[g];v&&v.forEach(C=>{const I=zc(C.index,u),b=C.index.length*d+I,R=this._applyFunctions(C,b,r,s,p,e),P=Yc(t,i,C.index);f[g].push({data:R,index:P})})});for(let S=0;S<i;S++)h.forEach(g=>{const{type:p}=g,v=f[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,i,r,s,a){const{data:c}=e,d=i===l.Direction.UP||i===l.Direction.LEFT;if(r===se.COPY){const u=s==null?void 0:s[se.COPY];return u?u(e,t,i,a):(d&&c.reverse(),St(c,t))}if(r===se.SERIES){const u=s==null?void 0:s[se.SERIES];return u?u(e,t,i,a):(d&&c.reverse(),s!=null&&s[se.COPY]?s[se.COPY](e,t,i,a):St(c,t))}if(r===se.ONLY_FORMAT){const u=s==null?void 0:s[se.ONLY_FORMAT];return u?u(e,t,i,a):Zc(c,t)}}_getCopyData(e,t){const i=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!i)throw new Error("No active sheet found");const r=i.getCellMatrix(),s=this._autoFillService.getRules(),a=[],c=t===l.Direction.DOWN||t===l.Direction.UP;let d,u;c?(d=e.cols,u=e.rows):(d=e.rows,u=e.cols);const h={get:this._injector.get.bind(this._injector)};return d.forEach(f=>{const S=this._getEmptyCopyDataPiece(),g={type:void 0,cellData:void 0};u.forEach(p=>{let v;c?v=r.getValue(p,f):v=r.getValue(f,p);const{type:C,isContinue:I}=s.find(b=>b.match(v,h))||ys;if(I(g,v)){const b=S[C],R=b[b.length-1];R.data.push(v),R.index.push(p-u[0])}else{const b=S[C];b?b.push({data:[v],index:[p-u[0]]}):S[C]=[{data:[v],index:[p-u[0]]}]}g.type=C,g.cellData=v}),a.push(S)}),a}_getEmptyCopyDataPiece(){const e={};return this._autoFillService.getRules().forEach(t=>{e[t.type]=[]}),e}_getMergeApplyData(e,t,i,r){const s=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!s)throw new Error("No active sheet found");const a=s.getMergeData(),c=[];for(let d=e.startRow;d<=e.endRow;d++)for(let u=e.startColumn;u<=e.endColumn;u++){const{isMergedMainCell:h,startRow:f,startColumn:S,endRow:g,endColumn:p}=l.getCellInfoInMergeData(d,u,a);if(h){if(i===l.Direction.DOWN){let v=f+r,C=g+r;for(;C<=t.endRow;)c.push({startRow:v,startColumn:S,endRow:C,endColumn:p}),v+=r,C+=r}else if(i===l.Direction.UP){let v=f-r,C=g-r;for(;v>=t.startRow;)c.push({startRow:v,startColumn:S,endRow:C,endColumn:p}),v-=r,C-=r}else if(i===l.Direction.RIGHT){let v=S+r,C=p+r;for(;C<=t.endColumn;)c.push({startRow:f,startColumn:v,endRow:g,endColumn:C}),v+=r,C+=r}else if(i===l.Direction.LEFT){let v=S-r,C=p-r;for(;v>=t.startColumn;)c.push({startRow:f,startColumn:v,endRow:g,endColumn:C}),v-=r,C-=r}}}return c}_presetAndCacheData(e,t){const{source:i,target:r}=e,s=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!s)throw new Error("No active sheet found");const a=s.getCellMatrix(),c=[];return r.rows.forEach(d=>{const u=[];r.cols.forEach(h=>{u.push(l.Tools.deepClone(a.getValue(d,h)))}),c.push(u)}),this._beforeApplyData=c,this._copyData=this._getCopyData(i,t),this._currentLocation=e,this._shouldDisableSeries(this._copyData)?(this._autoFillService.setDisableApplyType(se.SERIES,!0),se.COPY):(this._autoFillService.setDisableApplyType(se.SERIES,!1),this._getPreferredApplyType(this._copyData))}_fillData(e,t,i){var Y,j;const r=[],s=[];let a=!0;i===se.NO_FORMAT&&(a=!1,i=se.SERIES);const{source:c,target:d,unitId:u,subUnitId:h}=e;if(!c||!d||t==null)return{undos:r,redos:s};const f=ft(c),S=ft(d),{cols:g,rows:p}=d,{cols:v,rows:C}=c,I=this._copyData;let b;t===l.Direction.DOWN||t===l.Direction.UP?b=C.length:b=v.length;const R=[];if(t===l.Direction.DOWN||t===l.Direction.UP){const z=p.length,F=[];g.forEach((Z,x)=>{const B=I[x],G=this._getApplyData(B,b,z,t,i,a);F.push(G)});for(let Z=0;Z<F[0].length;Z++){const x=[];for(let B=0;B<F.length;B++)x.push({s:null,...F[B][Z]});R.push(x)}}else{const z=g.length;p.forEach((F,Z)=>{const x=I[Z],B=this._getApplyData(x,b,z,t,i,a),G=[];for(let J=0;J<B.length;J++)G.push({s:null,...B[J]});R.push(G)})}let P=[];const y=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getStyles();a?(P=this._getMergeApplyData(f,S,t,b),R.forEach(z=>{z.forEach(F=>{F&&y&&y&&(F.s=y.getStyleByCell(F))})})):R.forEach((z,F)=>{z.forEach((Z,x)=>{Z&&y&&(Z.s=y.getStyleByCell(this._beforeApplyData[F][x])||null)})}),i===se.ONLY_FORMAT&&R.forEach((z,F)=>{z.forEach((Z,x)=>{if(Z){const B=this._beforeApplyData[F][x]||{};Z.f=B.f,Z.si=B.si,Z.t=B.t,Z.v=B.v}})});const O={get:this._injector.get.bind(this._injector)},N=[],D=(j=(Y=this._univerInstanceService.getUniverSheetInstance(u))==null?void 0:Y.getSheetBySheetId(h))==null?void 0:j.getMergeData();D&&D.forEach(z=>{l.Rectangle.intersects(z,S)&&N.push(z)});const k={unitId:u,subUnitId:h,ranges:N},H=m.RemoveMergeUndoMutationFactory(O,k);N.length&&(s.push({id:m.RemoveWorksheetMergeMutation.id,params:k}),r.push({id:m.AddWorksheetMergeMutation.id,params:H}));const V={subUnitId:h,unitId:u,cellValue:Wc([d])},U=m.SetRangeValuesUndoMutationFactory(O,V);s.push({id:m.SetRangeValuesMutation.id,params:V}),r.push({id:m.SetRangeValuesMutation.id,params:U});const W=new l.ObjectMatrix;p.forEach((z,F)=>{g.forEach((Z,x)=>{R[F][x]&&W.setValue(z,Z,R[F][x])})});const X={subUnitId:h,unitId:u,cellValue:W.getMatrix()},K=m.SetRangeValuesUndoMutationFactory(O,X);if(r.push({id:m.SetRangeValuesMutation.id,params:K}),s.push({id:m.SetRangeValuesMutation.id,params:X}),P!=null&&P.length){const z=m.getAddMergeMutationRangeByType(P),F={unitId:u,subUnitId:h,ranges:z},Z=m.AddMergeUndoMutationFactory(O,F);r.push({id:m.RemoveWorksheetMergeMutation.id,params:Z}),s.push({id:m.AddWorksheetMergeMutation.id,params:F})}return{undos:r,redos:s}}_shouldDisableSeries(e){return e.every(t=>Object.keys(t).every(i=>{var r;return((r=t[i])==null?void 0:r.length)===0||[me.OTHER,me.FORMULA].includes(i)}))}_getPreferredApplyType(e){return e.every(i=>Object.keys(i).every(r=>{var s,a;return((s=i[r])==null?void 0:s.length)===0||((a=i[r])==null?void 0:a.length)===1&&i[r][0].data.length===1&&me.NUMBER===r}))?se.COPY:se.SERIES}},M.AutoFillController=Rd([l.OnLifecycle(l.LifecycleStages.Steady,M.AutoFillController),vt(0,l.IUniverInstanceService),vt(1,l.ICommandService),vt(2,lt),vt(3,ze),vt(4,w.IRenderManagerService),vt(5,l.Inject(l.Injector)),vt(6,l.Inject(M.SheetsRenderService))],M.AutoFillController);var Td=Object.defineProperty,Ed=Object.getOwnPropertyDescriptor,Pd=(n,o,e,t)=>{for(var i=t>1?void 0:t?Ed(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Td(o,e,i),i},Bo=(n,o)=>(e,t)=>o(e,t,n);M.CellCustomRenderController=class extends l.Disposable{constructor(e,t,i,r){super();E(this,"_enterActiveRender");this._context=e,this._sheetSkeletonManagerService=t,this._renderManagerService=i,this._univerInstanceService=r,this._initEventBinding()}_initEventBinding(){const e=new l.DisposableCollection,t=this._context.unit,i=r=>{if(e.dispose(),!r)return;const s=this._context.unitId,{skeleton:a}=r,c=this._renderManagerService.getRenderById(s);if(c&&c.mainComponent){const d=c.mainComponent,u=S=>{const{offsetX:g,offsetY:p}=S,v=c.scene,C=t.getActiveSheet();if(!C)return;const I=v.getActiveViewportByCoord(w.Vector2.FromArray([g,p]));if(!I)return;const{scaleX:b,scaleY:R}=v.getAncestorScale(),P={x:I.viewportScrollX,y:I.viewportScrollY},y=a.getCellPositionByOffset(g,p,b,R,P),O=a.mergeData.find(j=>{const{startColumn:z,startRow:F,endColumn:Z,endRow:x}=j;return y.row>=F&&y.column>=z&&y.row<=x&&y.column<=Z}),N={actualRow:O?O.startRow:y.row,actualCol:O?O.startColumn:y.column,mergeCell:O,row:y.row,col:y.column};if(!N||!a)return;const D=C.getCell(N.actualRow,N.actualCol);if(!D)return;const k=D.customRender;if(!(k!=null&&k.length))return;const H=N.actualRow,V=N.actualCol,U=k.sort(l.sortRules),W=C.getSheetId(),X={data:D,style:a.getsStyles().getStyleByCell(D),primaryWithCoord:a.getCellByIndex(N.actualRow,N.actualCol),unitId:s,subUnitId:W,row:H,col:V,workbook:t,worksheet:C},K={x:P.x+g/b,y:P.y+p/R},Y=U.find(j=>{var z;return(z=j.isHit)==null?void 0:z.call(j,K,X)});if(Y)return[Y,X]},h=d.onPointerDown$.subscribeEvent(S=>{var p;const g=u(S);if(g){const[v,C]=g;(p=v.onPointerDown)==null||p.call(v,C,S)}}),f=d.onPointerMove$.subscribeEvent(S=>{var p,v,C,I;const g=u(S);if(g){const[b,R]=g;this._enterActiveRender?this._enterActiveRender.render!==b&&((v=(p=this._enterActiveRender.render).onPointerLeave)==null||v.call(p,this._enterActiveRender.cellContext,S),this._enterActiveRender={render:b,cellContext:R},(C=b.onPointerEnter)==null||C.call(b,R,S)):(this._enterActiveRender={render:b,cellContext:R},(I=b.onPointerEnter)==null||I.call(b,R,S))}});h&&e.add(h),f&&e.add(f)}};this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(i)),i(this._sheetSkeletonManagerService.getCurrent()),this.disposeWithMe(e)}},M.CellCustomRenderController=Pd([l.OnLifecycle(l.LifecycleStages.Rendered,M.CellCustomRenderController),Bo(1,l.Inject(M.SheetSkeletonManagerService)),Bo(2,w.IRenderManagerService),Bo(3,l.IUniverInstanceService)],M.CellCustomRenderController);function Fo(n){return n.getContextValue(l.FOCUSING_SHEET)}function re(n){return n.getContextValue(l.FOCUSING_SHEET)&&n.getContextValue(l.FOCUSING_UNIVER_EDITOR)&&!n.getContextValue(l.EDITOR_ACTIVATED)&&!n.getContextValue(l.FOCUSING_COMMON_DRAWINGS)}function Ns(n){return n.getContextValue(l.FOCUSING_SHEET)&&n.getContextValue(l.FOCUSING_UNIVER_EDITOR)&&!n.getContextValue(l.EDITOR_ACTIVATED)&&!n.getContextValue(l.FOCUSING_FORMULA_EDITOR)&&!n.getContextValue(l.FOCUSING_COMMON_DRAWINGS)}function wd(n){return n.getContextValue(l.FOCUSING_SHEET)&&n.getContextValue(l.FOCUSING_UNIVER_EDITOR)&&n.getContextValue(l.EDITOR_ACTIVATED)}function yd(n){return n.getContextValue(l.FOCUSING_UNIVER_EDITOR)&&n.getContextValue(l.EDITOR_ACTIVATED)}function Ds(n){return n.getContextValue(l.FOCUSING_FORMULA_EDITOR)&&n.getContextValue(l.FOCUSING_UNIVER_EDITOR)}function Md(n){return n.getContextValue(l.FOCUSING_SHEET)&&n.getContextValue(l.EDITOR_ACTIVATED)&&n.getContextValue(l.FOCUSING_EDITOR_INPUT_FORMULA)&&n.getContextValue(l.FOCUSING_UNIVER_EDITOR)}function Rn(n){return n.getContextValue(l.FOCUSING_SHEET)&&n.getContextValue(l.FOCUSING_UNIVER_EDITOR)&&n.getContextValue(l.EDITOR_ACTIVATED)&&!n.getContextValue(l.FOCUSING_EDITOR_INPUT_FORMULA)&&!n.getContextValue(l.FOCUSING_EDITOR_STANDALONE)}var Od=Object.defineProperty,Ad=Object.getOwnPropertyDescriptor,Nd=(n,o,e,t)=>{for(var i=t>1?void 0:t?Ad(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Od(o,e,i),i},jo=(n,o)=>(e,t)=>o(e,t,n);const Dd=1e4,Ct=l.createIdentifier("univer.mark-selection-service");M.MarkSelectionService=class extends l.Disposable{constructor(e,t,i){super();E(this,"_shapeMap",new Map);this._currentService=e,this._renderManagerService=t,this._themeService=i}addShape(e,t=[],i=Dd){var c;const r=this._currentService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),s=(c=r.getActiveSheet())==null?void 0:c.getSheetId();if(!s)return null;const a=l.Tools.generateRandomId();return this._shapeMap.set(a,{selection:e,subUnitId:s,unitId:r.getUnitId(),zIndex:i,control:null,exits:t}),this.refreshShapes(),a}refreshShapes(){var r;const e=this._currentService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!e)return;const t=e.getUnitId(),i=(r=e.getActiveSheet())==null?void 0:r.getSheetId();this._shapeMap.forEach(s=>{var P;const{unitId:a,subUnitId:c,selection:d,control:u,zIndex:h}=s;if(u&&u.dispose(),a!==t||c!==i)return;const{style:f}=d,S=this._renderManagerService.getRenderById(a);if(!S)return;const g=(P=this._renderManagerService.withCurrentTypeOfUnit(l.UniverInstanceType.UNIVER_SHEET,M.SheetSkeletonManagerService))==null?void 0:P.getCurrentSkeleton();if(!g)return;const{scene:p}=S,{rowHeaderWidth:v,columnHeaderHeight:C}=g,I=new pi(p,h,!1,this._themeService),{rangeWithCoord:b,primaryWithCoord:R}=S.with(pe).attachSelectionWithCoord(d);I.update(b,v,C,f,R),s.control=I})}getShapeMap(){return this._shapeMap}removeShape(e){const t=this._shapeMap.get(e);if(!t)return;const{control:i}=t;i&&i.dispose(),this._shapeMap.delete(e)}removeAllShapes(){for(const e of this._shapeMap.values()){const{control:t}=e;t&&t.dispose()}this._shapeMap.clear()}},M.MarkSelectionService=Nd([jo(0,l.IUniverInstanceService),jo(1,w.IRenderManagerService),jo(2,l.Inject(l.ThemeService))],M.MarkSelectionService);function ks(n){return{strokeWidth:1.5,stroke:n.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}const kd=10,Hd=6;function Vd(){return l.Tools.generateRandomId(Hd)}function Ld(n){const o=n.match(/data-copy-id="([^\s]+)"/);return o&&o[1]?o[1]:null}class Wd{constructor(){E(this,"_cache",new l.LRUMap(kd))}set(o,e){this._cache.set(o,e)}get(o){return this._cache.get(o)}del(o){this._cache.delete(o)}clear(){this._cache.clear()}}function Hs(n,o){const e=o!=null?o:n.style,t={},i=n.tagName.toLowerCase();switch(i){case"b":case"em":case"strong":{t.bl=l.BooleanNumber.TRUE;break}case"s":{t.st={s:l.BooleanNumber.TRUE};break}case"u":{t.ul={s:l.BooleanNumber.TRUE};break}case"i":{t.it=l.BooleanNumber.TRUE;break}case"sub":case"sup":{t.va=i==="sup"?l.BaselineOffset.SUPERSCRIPT:l.BaselineOffset.SUBSCRIPT;break}}return xd(e,t),t}function xd(n,o){if(n instanceof CSSStyleDeclaration)for(let e=0;e<n.length;e++){const t=n[e],i=n.getPropertyValue(t);Vs(t,i,o)}else for(const e in n){const t=n[e];Vs(e,t,o)}}function Vs(n,o,e){switch(n){case"font-family":e.ff=o;break;case"font-size":{const t=Number.parseInt(o);Number.isNaN(t)||(o.endsWith("pt")?e.fs=t:o.endsWith("px")&&(e.fs=t*.75));break}case"font-style":o==="italic"&&(e.it=l.BooleanNumber.TRUE);break;case"font-weight":{(Number(o)>400||o==="bold")&&(e.bl=l.BooleanNumber.TRUE);break}case"text-decoration":{/underline/.test(o)?e.ul={s:l.BooleanNumber.TRUE}:/overline/.test(o)?e.ol={s:l.BooleanNumber.TRUE}:/line-through/.test(o)&&(e.st={s:l.BooleanNumber.TRUE});break}case"color":{const t=new l.ColorKit(o);t.isValid&&(e.cl={rgb:t.toRgbString()});break}case"background-color":{const t=new l.ColorKit(o),i=t.isValid?t.toRgbString():"";i!==T.DEFAULT_BACKGROUND_COLOR_RGB&&i!==T.DEFAULT_BACKGROUND_COLOR_RGBA&&(e.bg={rgb:i});break}}}function Ud(n){const o=document.createElement("body");return o.innerHTML=n,o}function Xo(n,o){const e=[];for(let t=0,i=n.length;t<i;t++)n[t]===l.DataStreamTreeTokenType.PARAGRAPH&&e.push({startIndex:t});return e}const Ls=["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 Ws(n,o){const e=n.tagName.toLowerCase();return typeof o=="string"?e===o:Array.isArray(o)?o.some(t=>t===e):o(n)}const bo=class bo{constructor(o){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=o.getCurrentSkeleton}static use(o){if(this.pluginList.includes(o))throw new Error(`Univer paste plugin ${o.name} already added`);this.pluginList.push(o)}convert(o){var g;const e=bo.pluginList.find(p=>p.checkPasteType(o));e&&(this._styleRules=[...e.stylesRules],this._afterProcessRules=[...e.afterProcessRules]);const t=new l.ObjectMatrix;this._dom=Ud(o);const i=this._dom.querySelector("style");if(i){const p=document.createElement("div"),v=p.attachShadow({mode:"open"});document.body.appendChild(p),v.appendChild(i);for(const C of i.sheet.cssRules){const I=C,b=I.selectorText,R=I.style;this._styleMap.set(b,R)}i.remove(),p.remove()}const r={dataStream:"",textRuns:[]},s=[],a=[],c=o.match(/<table\b[^>]*>([\s\S]*?)<\/table>/gi),d=[];this.process(null,this._dom.childNodes,r,d);const{paragraphs:u,dataStream:h,textRuns:f,payloads:S}=r;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
2
- `,C===`\r
3
- `)continue}else C=`${h.substring(p[v],p[v+1]-1)}\r
4
- `;const I=[];f==null||f.forEach(P=>{P.st>=p[v]&&P.ed<=p[v+1]&&I.push({st:P.st-p[v],ed:P.ed-p[v],ts:P.ts})});const b=this._generateDocumentDataModelSnapshot({body:{dataStream:C,textRuns:I,paragraphs:Xo(C)}}),R=Object.keys(t.getMatrix()).length===0;t.setValue(R?0:t.getLength(),0,{v:C,p:b}),s.push({})}}else if(h){const p=`${h}\r
5
- `,v={dataStream:p,textRuns:f,paragraphs:Xo(p),payloads:S},C=h.length,I=(g=f==null?void 0:f.length)!=null?g:0;if(!I||I===1&&f[0].st===0&&f[0].ed===C)t.setValue(0,0,{v:h});else{const b=this._generateDocumentDataModelSnapshot({body:v});t.setValue(0,0,{v:h,p:b})}s.push({})}return c&&c.forEach((p,v)=>{const C=t.getDataRange().endRow+1,{cellMatrix:I,rowProperties:b,colProperties:R}=this._parseTable(p,v);I&&I.forValue((P,y,O)=>{t.setValue(C+P,y,O)}),R&&a.push(...R),s.push(...b)}),this.dispose(),{rowProperties:s,colProperties:a,cellMatrix:t}}_getStyleBySelectorText(o,e){var i;const t=(i=this._styleMap.get(o))==null?void 0:i.getPropertyValue(e);return t||""}_getStyle(o,e){const t=xs(e),i=o.style;let r="";for(let s=0;s<Ls.length;s++){const a=Ls[s];if(a==="background"){let d="";o.classList.forEach(h=>{d=this._getStyleBySelectorText(`.${h}`,"background-color")||this._getStyleBySelectorText(`.${h}`,a)});const u=i.getPropertyValue("background-color")||d||this._getStyleBySelectorText(`#${o.id}`,"background-color")||this._getStyleBySelectorText(`#${o.id}`,a)||this._getStyleBySelectorText(o.nodeName.toLowerCase(),a)||this._getStyleBySelectorText(o.nodeName,"background-color")||t["background-color"]||"";u&&(r+=`background:${u};`);continue}if(a==="text-decoration"){let d="";o.classList.forEach(h=>{d=this._getStyleBySelectorText(`.${h}`,"text-decoration-line")||this._getStyleBySelectorText(`.${h}`,a)});const u=i.getPropertyValue("text-decoration-line")||i.getPropertyValue("text-decoration")||d||this._getStyleBySelectorText(`#${o.id}`,"text-decoration-line")||this._getStyleBySelectorText(`#${o.id}`,a)||this._getStyleBySelectorText(o.nodeName.toLowerCase(),a)||this._getStyleBySelectorText(o.nodeName,"text-decoration-line")||t["text-decoration-line"]||"";u&&(r+=`text-decoration:${u};`);continue}let c="";o.classList.forEach(d=>{c=this._getStyleBySelectorText(`.${d}`,a)}),c=i.getPropertyValue(a)||this._getStyleBySelectorText(`#${o.id}`,a)||c||this._getStyleBySelectorText(o.nodeName.toLowerCase(),a)||t[a]||"",c&&(r+=`${a}:${c};`)}return r}_parseTable(o,e){var a,c;const t=new l.ObjectMatrix,i=(a=Fd(o))!=null?a:[],{rowProperties:r=[]}=Bd(o),s=this._parseTableByHtml(this._dom,e,(c=this._getCurrentSkeleton())==null?void 0:c.skeleton);return s&&s.forValue((d,u,h)=>{var g,p,v,C,I,b,R,P,y,O,N,D,k,H,V,U,W,X,K,Y,j,z,F,Z;let f=T.handleStringToStyle(void 0,h.style);if((C=(v=(p=(g=h==null?void 0:h.richTextParma)==null?void 0:g.p)==null?void 0:p.body)==null?void 0:v.textRuns)!=null&&C.length){const x=(b=(I=h==null?void 0:h.richTextParma)==null?void 0:I.v)==null?void 0:b.length;for(let B=0;B<((O=(y=(P=(R=h==null?void 0:h.richTextParma)==null?void 0:R.p)==null?void 0:P.body)==null?void 0:y.textRuns)==null?void 0:O.length);B++){const G=(k=(D=(N=h==null?void 0:h.richTextParma)==null?void 0:N.p)==null?void 0:D.body)==null?void 0:k.textRuns[B];G.st===0&&G.ed===x&&(f={...G.ts,...f},(U=(V=(H=h==null?void 0:h.richTextParma)==null?void 0:H.p)==null?void 0:V.body)==null||U.textRuns.splice(B,1),B--)}((Y=(K=(X=(W=h==null?void 0:h.richTextParma)==null?void 0:W.p)==null?void 0:X.body)==null?void 0:K.textRuns)==null?void 0:Y.length)===0&&(h.content=(j=h==null?void 0:h.richTextParma)==null?void 0:j.v,delete h.richTextParma)}const S=(Z=(F=(z=h==null?void 0:h.richTextParma)==null?void 0:z.p)==null?void 0:F.body)!=null&&Z.textRuns?{v:h.richTextParma.v,p:h.richTextParma.p,s:f,rowSpan:h.rowSpan,colSpan:h.colSpan}:{v:h.content,s:f,rowSpan:h.rowSpan,colSpan:h.colSpan};t.setValue(d,u,S)}),{rowProperties:r,colProperties:i,cellMatrix:t}}_parseTableByHtml(o,e,t){var c,d;const i=new l.ObjectMatrix,r=o.querySelectorAll("table")[e];if(!r)return i;const s=this._getStyle(r,""),a=r==null?void 0:r.querySelectorAll("tr");for(let u=0;u<a.length;u++){const h=a[u],f=this._getStyle(h,s),S=h.querySelectorAll("td, th");let g=0;for(let p=0;p<S.length;){const v=S[p];let C="";const I=Number(v.getAttribute("rowSpan"))||1,b=Number(v.getAttribute("colSpan"))||1;if(C=this._getStyle(v,f),u>0){const O=i.getValue(u-1,g);if((c=O==null?void 0:O.style)!=null&&c.includes("border-bottom")&&C.includes("border-top")){const N=Bs(O.style,"border-bottom");N&&T.textTrim(N.substr(N.indexOf(":")+1))!=="none"&&(C=C.replace(/border-top:[^;]+;/,""))}}if(p>0){const O=i.getValue(u,g-1);if((d=O==null?void 0:O.style)!=null&&d.includes("border-right")&&C.includes("border-left")){const N=Bs(O.style,"border-right");N&&T.textTrim(N.substr(N.indexOf(":")+1))!=="none"&&(C=C.replace(/border-left:[^;]+;/,""))}}const{cellText:R,cellRichStyle:P}=this._getCellTextAndRichText(v,C,t),y={rowSpan:I,colSpan:b,content:R,style:C,richTextParma:{p:P,v:R}};if(i.getValue(u,g)){g+=1;continue}else I>1||b>1?Xd(i,C,y,{colSpan:b,rowSpan:I,rowIndex:u,colIndex:p,colSetValueIndex:g}):i.setValue(u,g,y),g+=b,p++}}return i}_parseCellHtml(o,e,t,i=new Map,r){var s;for(const a of e)if(a.nodeType===Node.TEXT_NODE){const c=(s=a.nodeValue)==null?void 0:s.replace(/[\r\n]/g,"");let d;o&&i.has(o)&&(d=i.get(o)),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(a.nodeType===Node.COMMENT_NODE||a.nodeName==="STYLE")continue;if(a.nodeType===Node.ELEMENT_NODE){const c=this._getStyle(a,r),d=o?i.get(o):{},u=xs(c),h=Hs(a,u);i.set(a,{...d,...h});const{childNodes:f}=a;this._parseCellHtml(a,f,t,i,c)}}}_getCellTextAndRichText(o,e,t){var a;let i="",r;if(/<[^>]+>/.test(o.innerHTML)&&t){const c={dataStream:"",textRuns:[]};this._parseCellHtml(null,o.childNodes,c,void 0,e);const d=(a=t.getBlankCellDocumentModel())==null?void 0:a.documentModel,u=d==null?void 0:d.getSnapshot(),h=`${c.dataStream}\r
6
- `,f={...u,body:{dataStream:h,textRuns:c.textRuns,paragraphs:Xo(h)}};d==null||d.reset(f),r=d==null?void 0:d.getSnapshot(),i=c.dataStream}else i=jd(o.innerHTML.replace(/[\r\n]/g,""));return{cellText:i,cellRichStyle:r}}_generateDocumentDataModelSnapshot(o){var a;const e=this._getCurrentSkeleton();if(e==null)return null;const{skeleton:t}=e,i=(a=t.getBlankCellDocumentModel())==null?void 0:a.documentModel,s={...i==null?void 0:i.getSnapshot(),...o};return i==null||i.reset(s),i==null?void 0:i.getSnapshot()}process(o,e,t,i){var r,s,a;for(const c of e)if(c.nodeName.toLowerCase()==="table")i.push({index:((r=t==null?void 0:t.paragraphs)==null?void 0:r.length)||0});else if(c.nodeType===Node.TEXT_NODE){if(((s=c.nodeValue)==null?void 0:s.trim())==="")continue;const d=(a=c.nodeValue)==null?void 0:a.replace(/[\r\n]/g,"");let u;o&&this._styleCache.has(o)&&(u=this._styleCache.get(o));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(l.skipParseTagNames.includes(c.nodeName.toLowerCase()))continue;if(c.nodeType===Node.ELEMENT_NODE){if(c.nodeName==="STYLE")continue;const d=o?this._styleCache.get(o):{},u=this._styleRules.find(({filter:g})=>Ws(c,g)),h=u?u.getStyle(c):Hs(c);this._styleCache.set(c,{...d,...h});const{childNodes:f}=c;this.process(c,f,t,i);const S=this._afterProcessRules.find(({filter:g})=>Ws(c,g));S&&S.handler(t,c)}}}dispose(){this._dom=null,this._styleCache.clear(),this._styleMap.clear()}};E(bo,"pluginList",[]);let zt=bo;function Bd(n){const o=/<tr([\s\S]*?)>([\s\S]*?)<\/tr>/gi,e=n.matchAll(o);if(!e)return{rowProperties:[],rowCount:0};const i=Array.from(e).map(r=>Us(r[1]));return{rowProperties:i,rowCount:i.length}}function xs(n){const o={};return n.split(";").forEach(t=>{const[i,r]=t.split(":");o[i]=r}),o}function Us(n){if(!n)return{};const o={},e=/([\w-]+)\s*=\s*(?:(['"])([^'"]*)\2|(\S+))/g;let t;for(;(t=e.exec(n))!==null;){const[,i,,r,s]=t,a=r!==void 0?r:s;o[i]=a}return o}function Fd(n){const o=/<colgroup([\s\S]*?)>(.*?)<\/colgroup>/,e=n.match(o),t=/<col([\s\S]*?)>/g;let i;return e!=null&&e[2]?i=e[2].matchAll(t):i=n.matchAll(t),i?Array.from(i).map(r=>Us(r[1])):null}function jd(n){const o={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&#39;":"'","&nbsp;":" "};return n.replace(/&lt;|&gt;|&amp;|&quot;|&#39;|&nbsp;|<br>/g,e=>o[e])}function Bs(n,o){if(!n||!o)return null;const e=new RegExp(`(${o}\\s*:\\s*[^;]+);`,"i"),t=n.match(e);return t?t[1]:null}function Xd(n,o,e,t){const{rowSpan:i,colSpan:r,rowIndex:s,colSetValueIndex:a}=t;for(let c=s;c<s+i;c++)for(let d=a;d<a+r;d++)c===s&&d===a?n.setValue(c,d,{...e,style:o}):n.setValue(c,d,{style:o})}var at=(n=>(n.COPY="COPY",n.CUT="CUT",n))(at||{});function zd(n,o,e,t,i){const r=e.map(d=>{var u;return(u=d.onCopyRow)==null?void 0:u.call(d,n)}).filter(d=>!!d),s=zo(r),a=Yo(s),c=o.map(d=>{if(!i.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 f=d;f<d+u.colSpan;f++)i.add(`${h}-${f}`);return Yd(n,d,e,t)}return null}).filter(d=>!!d).join("");return`<tr${a}>${c}</tr>`}function Yd(n,o,e,t){const i=t.getValue(n,o),r=e.map(d=>{var u;return(u=d.onCopyCellStyle)==null?void 0:u.call(d,n,o,i==null?void 0:i.rowSpan,i==null?void 0:i.colSpan)}).filter(d=>!!d),s=zo(r),a=Yo(s),c=e.reduce((d,u)=>{var h;return d||((h=u.onCopyCellContent)==null?void 0:h.call(u,n,o))||""},"");return`<td${a}>${c}</td>`}function Zd(n,o){return`<colgroup>${n.map(t=>{const i=o.map(a=>{var c;return(c=a.onCopyColumn)==null?void 0:c.call(a,t)}).filter(a=>!!a),r=zo(i);return`<col ${Yo(r)}>`}).join("")}</colgroup>`}function zo(n){return n.reduce((o,e)=>(Object.keys(e).forEach(i=>{o[i]?o[i]+=`;${e[i]}`:o[i]=e[i]}),o),{})}function Yo(n){return Object.keys(n).reduce((o,e)=>(o+=` ${e}="${n[e]}"`,o),"")}function Gd(n,o){const e=[];for(let t=n;t<=o;t++)e.push(t);return e}class Kd{convert(o,e,t){const{startColumn:i,endColumn:r}=e,s=Zd(Gd(i,r),t),a=[],c=new Set,{startRow:d,endRow:u,startColumn:h,endColumn:f}=o.getDataRange();for(let g=d;g<=u;g++){const p=Array.from({length:f-h+1},(v,C)=>h+C);a.push(zd(g,p,t,o,c))}return`<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}
7
- <tbody>${a.join("")}</tbody></table>`}}const qd=(n,o,e=!1)=>{const t=h=>h.endRow-h.startRow+1,i=h=>h.endColumn-h.startColumn+1,r=t(o)%t(n),s=i(o)%i(n),a={startRow:0,endRow:t(n)-1,startColumn:0,endColumn:i(n)-1},c=Math.floor(t(o)/t(n)),d=Math.floor(i(o)/i(n)),u=[];if(!r&&!s)for(let h=1;h<=c;h++)for(let f=1;f<=d;f++){const S=t(n)*(h-1),g=i(n)*(f-1),p={startRow:S+o.startRow,endRow:S+o.startRow,startColumn:g+o.startColumn,endColumn:g+o.startColumn};u.push({repeatRelativeRange:a,startRange:p})}else if(!r&&s&&!e)for(let h=1;h<=c;h++){const f=t(n)*(h-1),S=0,g={startRow:f+o.startRow,endRow:f+o.startRow,startColumn:S+o.startColumn,endColumn:S+o.startColumn};u.push({repeatRelativeRange:a,startRange:g})}else if(r&&!s&&!e)for(let h=1;h<=d;h++){const S=i(n)*(h-1),g={startRow:0+o.startRow,endRow:0+o.startRow,startColumn:S+o.startColumn,endColumn:S+o.startColumn};u.push({repeatRelativeRange:a,startRange:g})}else{const h={startRow:o.startRow,endRow:o.startRow,startColumn:o.startColumn,endColumn:o.startColumn};u.push({startRange:h,repeatRelativeRange:a})}return u};async function Qd(n){return n?/<td[^>]*class=".*?xl.*?"[^>]*>.*?<\/td>/.test(n):!1}function Jd(...n){if(n.length===1)return n[0];const o=new l.ObjectMatrix;return n.forEach(e=>{e&&new l.ObjectMatrix(e).forValue((i,r,s)=>{o.setValue(i,r,{...o.getValue(i,r),...s})})}),o.getMatrix()}function $d(n,o){return n.id===o.id&&n.params.unitId===o.params.unitId&&n.params.subUnitId===o.params.subUnitId}function Zo(n){const o=[];for(let e=0;e<n.length;){let t=1;if(n[e].id===m.SetRangeValuesMutation.id){const i=n[e],r=[i];for(;e+t<n.length&&$d(i,n[e+t]);)r.push(n[e+t]),t+=1;const s=Jd(...r.map(a=>a.params.cellValue||{}));o.push({...i,params:{...i.params,cellValue:s}})}else o.push(n[e]);e+=t}return o}function Go(n,o){const{startRow:e,endRow:t,startColumn:i,endColumn:r}=n;for(let s=e;s<=t;s++)for(let a=i;a<=r;a++)if(o.rows.includes(s)&&o.cols.includes(a))return!0}function Fs(n,o){const{startRow:e,endRow:t,startColumn:i,endColumn:r}=o;for(let s=e;s<=t;s++)if(!n.rows.includes(s))return!1;for(let s=i;s<=r;s++)if(!n.cols.includes(s))return!1;return!0}function eu(n){const o=n.trim().split(`
8
- `);let e="<table>";return o.forEach(t=>{const i=t.split(" ");e+="<tr>",i.forEach(r=>{e+=`<td>${r}</td>`}),e+="</tr>"}),e+="</table>",e}var tu=Object.defineProperty,nu=Object.getOwnPropertyDescriptor,iu=(n,o,e,t)=>{for(var i=t>1?void 0:t?nu(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&tu(o,e,i),i},we=(n,o)=>(e,t)=>o(e,t,n);const Se={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"};zt.use(Ro.PastePluginWord),zt.use(Ro.PastePluginLark),zt.use(Ro.PastePluginUniver);const $e=l.createIdentifier("sheet.clipboard-service");M.SheetClipboardService=class extends l.Disposable{constructor(e,t,i,r,s,a,c,d,u,h,f,S,g,p){super();E(this,"_clipboardHooks",[]);E(this,"_clipboardHooks$",new A.BehaviorSubject([]));E(this,"clipboardHooks$",this._clipboardHooks$.asObservable());E(this,"_htmlToUSM");E(this,"_usmToHtml");E(this,"_copyContentCache");E(this,"_copyMarkId",null);this._logService=e,this._univerInstanceService=t,this._selectionManagerService=i,this._clipboardInterfaceService=r,this._undoRedoService=s,this._commandService=a,this._markSelectionService=c,this._notificationService=d,this._platformService=u,this._renderManagerService=h,this._themeService=f,this._localeService=S,this._errorService=g,this._injector=p,this._htmlToUSM=new zt({getCurrentSkeleton:()=>{var v;return(v=this._renderManagerService.withCurrentTypeOfUnit(l.UniverInstanceType.UNIVER_SHEET,M.SheetSkeletonManagerService))==null?void 0:v.getCurrent()}}),this._usmToHtml=new Kd,this._copyContentCache=new Wd,this.disposeWithMe(this._htmlToUSM)}copyContentCache(){return this._copyContentCache}generateCopyContent(e,t,i){const r=this._clipboardHooks;r.forEach(a=>{var c;return(c=a.onBeforeCopy)==null?void 0:c.call(a,e,t,i)});const s=this._generateCopyContent(e,t,i,r);return r.forEach(a=>{var c;return(c=a.onAfterCopy)==null?void 0:c.call(a)}),s}async copy(e=at.COPY){const t=this._selectionManagerService.getCurrentLastSelection();if(!t)return!1;const i=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),r=i.getActiveSheet();if(!r)return!1;const s=this.generateCopyContent(i.getUnitId(),r.getSheetId(),t.range);if(!s)return!1;const{html:a,plain:c,matrixFragment:d,copyId:u,discreteRange:h}=s;this._copyContentCache.set(u,{unitId:i.getUnitId(),subUnitId:r.getSheetId(),range:h,matrix:d,copyType:e}),await this._clipboardInterfaceService.write(c,a),this._markSelectionService.removeAllShapes();const f=ks(this._themeService);return this._copyMarkId=this._markSelectionService.addShape({...t,style:f}),!0}async cut(){return this.copy(at.CUT)}async paste(e,t=Se.DEFAULT_PASTE){const i=e.types,r=i.indexOf(T.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await e.getType(T.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(a=>a&&a.text()):"",s=i.indexOf(T.HTML_CLIPBOARD_MIME_TYPE)!==-1?await e.getType(T.HTML_CLIPBOARD_MIME_TYPE).then(a=>a&&a.text()):"";return s?this._platformService.isWindows&&await Qd(s)?(this._notificationService.show({type:"warning",title:this._localeService.t("clipboard.shortCutNotify.title"),content:this._localeService.t("clipboard.shortCutNotify.useShortCutInstead")}),!1):this._pasteHTML(s,t):r?this._pastePlainText(r,t):(this._logService.error("[SheetClipboardService]","No valid data on clipboard"),!1)}legacyPaste(e,t){return e?this._pasteHTML(e,Se.DEFAULT_PASTE):t?/[\n\t]/.test(t)?this._pasteHTML(eu(t),Se.DEFAULT_PASTE):this._pastePlainText(t,Se.DEFAULT_PASTE):Promise.resolve(!1)}addClipboardHook(e){if(this._clipboardHooks.findIndex(i=>i.id===e.id)!==-1)return this._logService.error("[SheetClipboardService]","hook already exists",e.id),{dispose:()=>{}};const t=this._clipboardHooks.findIndex(i=>{const r=i.priority||0;return(e.priority||0)<r});return this._clipboardHooks.splice(t!==-1?t:this._clipboardHooks.length,0,e),this._notifyClipboardHook(),l.toDisposable(()=>{const i=this._clipboardHooks.indexOf(e);i>-1&&(this._clipboardHooks.splice(i,1),this._notifyClipboardHook())})}getClipboardHooks(){return this._clipboardHooks}_generateCopyContent(e,t,i,r){const s=this._univerInstanceService.getUniverSheetInstance(e),a=s==null?void 0:s.getSheetBySheetId(t);if(!s||!a)return null;const c=r.reduce((R,P)=>{var O;const y=(O=P.getFilteredOutRows)==null?void 0:O.call(P,i);return y==null||y.forEach(N=>R.add(N)),R},new Set),{startColumn:d,startRow:u,endColumn:h,endRow:f}=i,S=a.getMatrixWithMergedCells(u,d,f,h,!0),g=new l.ObjectMatrix;let p=u;const v={rows:[],cols:[]};for(let R=u;R<=f;R++)if(!c.has(R)){v.rows.push(R);for(let P=d;P<=h;P++){const y=S.getValue(R,P);y?g.setValue(p-u,P-d,{...Ko(),...l.Tools.deepClone(y)}):(g.setValue(p-u,P-d,Ko()),S.setValue(R,P,Ko()))}p+=1}for(let R=d;R<=h;R++)v.cols.push(R);let C=this._usmToHtml.convert(S,i,r);const I=ou(g),b=Vd();return C=C.replace(/(<[a-z]+)/,(R,P)=>`${P} data-copy-id="${b}"`),{copyId:b,plain:I,html:C,matrixFragment:g,discreteRange:v}}_notifyClipboardHook(){this._clipboardHooks$.next(this._clipboardHooks)}async _pastePlainText(e,t){const i=this._getPastingTarget();if(!i.subUnitId||!i.selection)return!1;const r={get:this._injector.get.bind(this._injector)},s=Vt(i.selection.range,r,i.unitId,i.subUnitId);if(!s)return!1;const{unitId:a,subUnitId:c}=i,d=this._clipboardHooks,u=[];if(d.some(p=>{var v;return u.push(p)&&((v=p.onBeforePaste)==null?void 0:v.call(p,{unitId:a,subUnitId:c,range:s}))===!1}))return u.forEach(p=>{var v;return(v=p.onAfterPaste)==null?void 0:v.call(p,!1)}),!1;const f=[],S=[];u.forEach(p=>{var C;const v=(C=p.onPastePlainText)==null?void 0:C.call(p,{unitId:a,subUnitId:c,range:s},e,{pasteType:t});v&&(f.push(...v.redos),S.push(...v.undos))});const g=f.every(p=>this._commandService.executeCommand(p.id,p.params));return g&&this._undoRedoService.pushUndoRedo({unitID:this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getUnitId(),undoMutations:S,redoMutations:f}),g}async _pasteHTML(e,t){const i=Ld(e);return i&&this._copyContentCache.get(i)?this._pasteInternal(i,t):this._pasteExternal(e,t)}async _pasteExternal(e,t){var h;const{rowProperties:i,colProperties:r,cellMatrix:s}=this._htmlToUSM.convert(e);if(!s)return!1;const a=this._getPastedRange(s);if(!a)return!1;const c=(h=this._univerInstanceService.getUniverSheetInstance(a.unitId))==null?void 0:h.getSheetBySheetId(a.subUnitId);if(!c)return!1;const d=c==null?void 0:c.getMergeData();return d.length&&d.some(S=>Go(S,a.pastedRange)&&!Fs(a.pastedRange,S))?(this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1):this._pasteUSM({rowProperties:i,colProperties:r,cellMatrix:s},a,t)}async _pasteInternal(e,t){var R,P;const i=l.Tools.deepClone(this._copyContentCache.get(e)),{range:r,matrix:s,unitId:a,subUnitId:c}=i||{};if(!s||!i||!r||!a||!c||!s||!i)return!1;const d=(R=this._univerInstanceService.getUniverSheetInstance(a))==null?void 0:R.getStyles();s.forValue((y,O,N)=>{if(typeof N.s=="string"){const D=l.Tools.deepClone(N);D.s=d==null?void 0:d.getStyleByCell(N),s.setValue(y,O,D)}if(N.colSpan||N.rowSpan)for(let D=0;D<N.rowSpan;D++)for(let k=0;k<N.colSpan;k++){if(D===0&&k===0)continue;const H=y+D,V=O+k;s.setValue(H,V,{s:d==null?void 0:d.getStyleByCell(N)})}});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 f=h==null?void 0:h.getMergeData();if(f&&f.some(O=>Go(O,u.pastedRange)&&!Fs(u.pastedRange,O)))return this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1;const S=h.getColumnManager(),g=h.getRowManager(),p=h.getConfig().defaultColumnWidth,v=h.getConfig().defaultRowHeight,C=[],I=[];if(r.cols.forEach(y=>{const O=S.getColumnOrCreate(y);C.push({width:`${O.w||p}`})}),r.rows.forEach(y=>{const O=g.getRowOrCreate(y);I.push({height:`${O.ah||O.h||v}`})}),i.copyType===at.CUT){const y=u.pastedRange.rows[0],O=r.rows[r.rows.length-1]-r.rows[0]+y;u.pastedRange.rows=Array.from(new Array(O+1).keys()).slice(y)}const b=this._pasteUSM({cellMatrix:s,colProperties:C,rowProperties:I},u,t,{range:r,unitId:i.unitId,subUnitId:i.subUnitId,copyType:i.copyType,copyId:e});return i.copyType===at.CUT&&(this._copyContentCache.set(e,{...i,matrix:null}),this._copyMarkId&&this._markSelectionService.removeShape(this._copyMarkId),this._copyMarkId=null),b}_pasteUSM(e,t,i,r){const{rowProperties:s,colProperties:a,cellMatrix:c}=e,{unitId:d,subUnitId:u,pastedRange:h}=t,f=h.cols.length,S=this._clipboardHooks,g=[];if(S.some(O=>{var N;return g.push(O)&&((N=O.onBeforePaste)==null?void 0:N.call(O,{unitId:d,subUnitId:u,range:h}))===!1}))return g.forEach(O=>{var N;return(N=O.onAfterPaste)==null?void 0:N.call(O,!1)}),!1;if(!c)return!1;const v=r?{unitId:r.unitId,subUnitId:r.subUnitId,range:r.range}:null,C={copyType:(r==null?void 0:r.copyType)||at.COPY,copyId:r==null?void 0:r.copyId,pasteType:i};let I=[],b=[];g.filter(O=>!O.specialPasteInfo&&O.id!==Se.DEFAULT_PASTE||i===O.id).forEach(O=>{var k,H,V;if(s){const U=(k=O.onPasteRows)==null?void 0:k.call(O,{range:h,unitId:d,subUnitId:u},s,{pasteType:i});U&&(I.push(...U.redos),b.push(...U.undos))}const N=(H=O.onPasteColumns)==null?void 0:H.call(O,{range:h,unitId:d,subUnitId:u},a||new Array(f).map(()=>({})),{pasteType:i});N&&(I.push(...N.redos),b.push(...N.undos));const D=(V=O.onPasteCells)==null?void 0:V.call(O,v,{range:h,unitId:d,subUnitId:u},c,C);D&&(I.push(...D.redos),b.push(...D.undos))});const P=this._getSetSelectionOperation(d,u,h,c);P&&I.push(P),I=Zo(I),b=Zo(b),this._logService.log("[SheetClipboardService]","pasting mutations",{undoMutationsInfo:b,redoMutationsInfo:I});const y=I.every(O=>this._commandService.executeCommand(O.id,O.params));return y&&this._undoRedoService.pushUndoRedo({unitID:d,undoMutations:b,redoMutations:I}),y}_getSetSelectionOperation(e,t,i,r){var b;const s=(b=this._univerInstanceService.getUniverSheetInstance(e))==null?void 0:b.getSheetBySheetId(t);if(!s)return null;const{rows:a,cols:c}=i,d=a[0],u=c[0],h=a[a.length-1],f=c[c.length-1],S={startRow:d,endRow:d,startColumn:u,endColumn:u},g=m.getPrimaryForRange(S,s),p=r.getValue(0,0),v=(p==null?void 0:p.rowSpan)||1,C=(p==null?void 0:p.colSpan)||1;if(v>1||C>1){const R={startRow:d,endRow:d+v-1,startColumn:u,endColumn:u+C-1};g.startRow=R.startRow,g.endRow=R.endRow,g.startColumn=R.startColumn,g.endColumn=R.endColumn,g.isMerged=!0,g.isMergedMainCell=!0}const I={unitId:e,subUnitId:t,selections:[{range:{startRow:d,endRow:h,startColumn:u,endColumn:f},primary:g,style:null}]};return{id:m.SetSelectionsOperation.id,params:I}}_getPastingTarget(){const e=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),t=e.getActiveSheet(),i=this._selectionManagerService.getCurrentLastSelection();return{unitId:e.getUnitId(),subUnitId:t==null?void 0:t.getSheetId(),selection:i}}_transformPastedData(e,t,i){const r=this._getPastingTarget(),{selection:s,unitId:a,subUnitId:c}=r;if(!c||!s)return null;const d={get:this._injector.get.bind(this._injector)},u=Vt(s.range,d,a,c);if(!u)return null;const{ranges:[h],mapFunc:f}=Lt([u]),{startRow:S,startColumn:g,endRow:p,endColumn:v}=h,C=p-S+1,I=v-g+1,b=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),R=b==null?void 0:b.getActiveSheet();if(!R)return null;const y=R.getMergeData().filter(V=>u.rows.includes(V.startRow)&&u.cols.includes(V.startColumn)),O=y[0];let N=0,D=0,k=0,H=0;if(O&&(N=O.startRow,D=O.startColumn,k=O.endRow,H=O.endColumn),C%e===0&&I%t===0)if(y.length>0&&(C!==e||I!==t))if(N===u.rows[0]&&D===u.cols[0]&&k===u.rows[C-1]&&H===u.cols[I-1])if(au(i))for(let U=0;U<C;U++)for(let W=0;W<I;W++){const X=i.getValue(U%e,W%t);X&&i.setValue(U,W,X)}else i.forValue((U,W,X)=>{X.s=null,delete X.colSpan,delete X.rowSpan});else for(let V=0;V<C;V++)for(let U=0;U<I;U++){const W=i.getValue(V%e,U%t);W&&i.setValue(V,U,W)}else for(let V=0;V<C;V++)for(let U=0;U<I;U++){const W=i.getValue(V%e,U%t);W&&i.setValue(V,U,W)}else if(y.length>0){const{row:V,col:U}=f(S,g);if(this._topLeftCellsMatch(e,t,{topRow:V,leftCol:U})){const X=this._expandOrShrinkRowsCols(a,c,u,t,e);u.rows=X.rows,u.cols=X.cols}else{if(p>O.endRow||v>O.endColumn)return null;i.forValue((X,K,Y)=>{Y.s=null,delete Y.colSpan,delete Y.rowSpan})}}else{const V=this._expandOrShrinkRowsCols(a,c,u,t,e);u.rows=V.rows,u.cols=V.cols}return{pastedRange:u,unitId:a,subUnitId:c}}_getPastedRange(e){var R;const t=this._getPastingTarget(),{selection:i,unitId:r,subUnitId:s}=t;if(!s||!i)return null;const a={get:this._injector.get.bind(this._injector)},c=Vt(i.range,a,r,s);if(!c)return null;const{startColumn:d,endColumn:u,startRow:h,endRow:f}=e.getDataRange(),S=f-h+1,g=u-d+1;if(S<=0||g<=0)return null;const p=c.rows.length,v=c.cols.length,C=(R=this._univerInstanceService.getUniverSheetInstance(r))==null?void 0:R.getSheetBySheetId(s);if(!C)return null;const I=C==null?void 0:C.getMergeData();if(p%S===0&&v%g===0&&!(I==null?void 0:I.some(y=>Go(y,c)))){for(let y=0;y<p;y++)for(let O=0;O<v;O++){const N=e.getValue(y%S,O%g);N&&e.setValue(y,O,N)}return{pastedRange:c,unitId:r,subUnitId:s}}const b=this._expandOrShrinkRowsCols(r,s,c,g,S);return c.rows=b.rows,c.cols=b.cols,{pastedRange:c,unitId:r,subUnitId:s}}_expandOrShrinkRowsCols(e,t,i,r,s){const{rows:a,cols:c}=i,d=this._univerInstanceService.getUniverSheetInstance(e),u=d==null?void 0:d.getSheetBySheetId(t);let h,f;if(a.length>=s)h=a.slice(0,s);else{h=a.slice(0);let S=a[a.length-1]+1;for(;h.length<s;)u.getRowFiltered(S)||h.push(S),S++}if(c.length>=r)f=c.slice(0,r);else{f=c.slice(0);let S=c[c.length-1]+1;for(;f.length<r;)f.push(S),S++}return{rows:h,cols:f}}_topLeftCellsMatch(e,t,i){const r=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),s=r==null?void 0:r.getActiveSheet();if(!s)return!1;const{topRow:a,leftCol:c}=i,d=su(a+e-1,c,c+t-1,s),u=lu(c+t-1,a,a+e-1,s);return!d&&!u}},M.SheetClipboardService=iu([we(0,l.ILogService),we(1,l.IUniverInstanceService),we(2,l.Inject(m.SheetsSelectionsService)),we(3,T.IClipboardInterfaceService),we(4,l.IUndoRedoService),we(5,l.ICommandService),we(6,Ct),we(7,T.INotificationService),we(8,T.IPlatformService),we(9,w.IRenderManagerService),we(10,l.Inject(l.ThemeService)),we(11,l.Inject(l.LocaleService)),we(12,l.Inject(l.ErrorService)),we(13,l.Inject(l.Injector))],M.SheetClipboardService);function ou(n){let o="";const e=n.getLength();return n.forRow((t,i)=>{const r=[];i.forEach(s=>{const a=n.getValue(t,s);if(a){const c=ru(a);r.push(c)}}),o+=r.join(" "),t!==e-1&&(o+=`
9
- `)}),o}function ru(n){return l.extractPureTextFromCell(n)}function su(n,o,e,t){return t.getMergeData().some(i=>i.startRow<=n&&n<i.endRow&&o<=i.startColumn&&i.startColumn<=e)}function lu(n,o,e,t){return t.getMergeData().some(i=>i.startColumn<=n&&n<i.endColumn&&o<=i.startRow&&i.startRow<=e)}function au(n){let o=0;return n.forValue((e,t,i)=>{if(i&&o++,o>1)return!1}),o>1}function Ko(){return{p:null,v:null,s:null,f:null,si:null,t:null}}const qo=998,Qo={id:T.CopyCommand.id,name:"sheet.command.copy",type:l.CommandType.COMMAND,multi:!0,priority:qo,preconditions:Fo,handler:async n=>n.get($e).copy()},Jo={id:T.CutCommand.id,name:"sheet.command.cut",type:l.CommandType.COMMAND,multi:!0,priority:qo,preconditions:Fo,handler:async n=>n.get($e).cut()},Yt={id:T.PasteCommand.id,type:l.CommandType.COMMAND,multi:!0,name:"sheet.command.paste",priority:qo,preconditions:Fo,handler:async(n,o)=>{const t=await n.get(T.IClipboardInterfaceService).read(),i=n.get($e);return t.length!==0?i.paste(t[0],o==null?void 0:o.value):!1}},Ci={id:"sheet.command.paste-bu-short-key",type:l.CommandType.COMMAND,handler:async(n,o)=>{const e=n.get($e),{htmlContent:t,textContent:i}=o;return e.legacyPaste(t,i),!0}},$o={id:"sheet.command.paste-value",type:l.CommandType.COMMAND,handler:async n=>n.get(l.ICommandService).executeCommand(Yt.id,{value:Se.SPECIAL_PASTE_VALUE})},er={id:"sheet.command.paste-format",type:l.CommandType.COMMAND,handler:async n=>n.get(l.ICommandService).executeCommand(Yt.id,{value:Se.SPECIAL_PASTE_FORMAT})},_i={id:"sheet.command.paste-col-width",type:l.CommandType.COMMAND,handler:async n=>n.get(l.ICommandService).executeCommand(Yt.id,{value:Se.SPECIAL_PASTE_COL_WIDTH})},tr={id:"sheet.command.paste-besides-border",type:l.CommandType.COMMAND,handler:async n=>n.get(l.ICommandService).executeCommand(Yt.id,{value:Se.SPECIAL_PASTE_BESIDES_BORDER})},Ii={id:"sheet.command.hide-row-confirm",type:l.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(l.ICommandService),i=n.get(l.IUniverInstanceService),r=m.getSheetCommandTarget(i);if(!r)return!1;const{worksheet:s}=r,a=s.getVisibleRows();if(ms(a,e)){const d=n.get(T.IConfirmService),u=n.get(l.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}},bi={id:"sheet.command.hide-col-confirm",type:l.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(l.ICommandService),i=n.get(l.IUniverInstanceService),r=m.getSheetCommandTarget(i);if(!r)return!1;const{worksheet:s}=r,a=s.getVisibleCols();if(fs(a,e)){const d=n.get(T.IConfirmService),u=n.get(l.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}},Zt={type:l.CommandType.COMMAND,id:"sheet.command.set-range-bold",handler:async n=>{const o=n.get(l.ICommandService);return n.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?o.executeCommand(te.SetInlineFormatBoldCommand.id):o.executeCommand(m.SetBoldCommand.id)}},Gt={type:l.CommandType.COMMAND,id:"sheet.command.set-range-italic",handler:async n=>{const o=n.get(l.ICommandService);return n.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?o.executeCommand(te.SetInlineFormatItalicCommand.id):o.executeCommand(m.SetItalicCommand.id)}},Kt={type:l.CommandType.COMMAND,id:"sheet.command.set-range-underline",handler:async n=>{const o=n.get(l.ICommandService);return n.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?o.executeCommand(te.SetInlineFormatUnderlineCommand.id):o.executeCommand(m.SetUnderlineCommand.id)}},qt={type:l.CommandType.COMMAND,id:"sheet.command.set-range-stroke",handler:async n=>{const o=n.get(l.ICommandService);return n.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?o.executeCommand(te.SetInlineFormatStrikethroughCommand.id):o.executeCommand(m.SetStrikeThroughCommand.id)}},nr={type:l.CommandType.COMMAND,id:"sheet.command.set-range-subscript",handler:async n=>{const o=n.get(l.ICommandService);return n.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?o.executeCommand(te.SetInlineFormatSubscriptCommand.id):!1}},ir={type:l.CommandType.COMMAND,id:"sheet.command.set-range-superscript",handler:async n=>{const o=n.get(l.ICommandService);return n.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?o.executeCommand(te.SetInlineFormatSuperscriptCommand.id):!1}},Ri={type:l.CommandType.COMMAND,id:"sheet.command.set-range-fontsize",handler:async(n,o)=>{const e=n.get(l.ICommandService);return n.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?e.executeCommand(te.SetInlineFormatFontSizeCommand.id,o):e.executeCommand(m.SetFontSizeCommand.id,o)}},Ti={type:l.CommandType.COMMAND,id:"sheet.command.set-range-font-family",handler:async(n,o)=>{const e=n.get(l.ICommandService);return n.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?e.executeCommand(te.SetInlineFormatFontFamilyCommand.id,o):e.executeCommand(m.SetFontFamilyCommand.id,o)}},Qt={type:l.CommandType.COMMAND,id:"sheet.command.set-range-text-color",handler:async(n,o)=>{const e=n.get(l.ICommandService);return n.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?e.executeCommand(te.SetInlineFormatTextColorCommand.id,o):e.executeCommand(m.SetTextColorCommand.id,o)}};var cu=Object.defineProperty,du=Object.getOwnPropertyDescriptor,uu=(n,o,e,t)=>{for(var i=t>1?void 0:t?du(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&cu(o,e,i),i},Jt=(n,o)=>(e,t)=>o(e,t,n),Ae=(n=>(n[n.OFF=0]="OFF",n[n.ONCE=1]="ONCE",n[n.INFINITE=2]="INFINITE",n))(Ae||{});const et=l.createIdentifier("univer.format-painter-service");let Ei=class extends l.Disposable{constructor(o,e,t,i,r,s){super();E(this,"status$");E(this,"_selectionFormat");E(this,"_markId",null);E(this,"_status$");E(this,"_defaultHook",null);E(this,"_extendHooks",[]);this._selectionManagerService=o,this._themeService=e,this._markSelectionService=t,this._logService=i,this._commandService=r,this._undoRedoService=s,this._status$=new A.BehaviorSubject(0),this.status$=this._status$.asObservable(),this._selectionFormat={styles:new l.ObjectMatrix,merges:[]}}addHook(o){var e,t,i;o.isDefaultHook&&((e=o.priority)!=null?e:0)>((i=(t=this._defaultHook)==null?void 0:t.priority)!=null?i:-1)?this._defaultHook=o:(this._extendHooks.push(o),this._extendHooks.sort((r,s)=>(r.priority||0)-(s.priority||0)))}getHooks(){return this._defaultHook?[this._defaultHook,...this._extendHooks]:this._extendHooks}setStatus(o){this._updateRangeMark(o),this._status$.next(o),this.getHooks().forEach(t=>{t.onStatusChange(o)})}getStatus(){return this._status$.getValue()}setSelectionFormat(o){this._selectionFormat=o}getSelectionFormat(){return this._selectionFormat}applyFormatPainter(o,e,t){const i=this.getHooks(),r=[],s=[];i.forEach(c=>{const d=c.onApply(o,e,t,this._selectionFormat);d&&(r.push(...d.redos),s.push(...d.undos))}),this._logService.log("[FormatPainterService]","apply mutations",{undoMutationsInfo:s,redoMutationsInfo:r});const a=r.every(c=>this._commandService.executeCommand(c.id,c.params));return a&&this._undoRedoService.pushUndoRedo({unitID:o,undoMutations:s,redoMutations:r}),a}_updateRangeMark(o){if(this._markSelectionService.removeAllShapes(),o!==0){const e=this._selectionManagerService.getCurrentLastSelection();if(e){const t=ks(this._themeService);o===2?this._markId=this._markSelectionService.addShape({...e,style:t}):this._markId=this._markSelectionService.addShape({...e,style:t},[m.SetRangeValuesMutation.id])}}}};Ei=uu([Jt(0,l.Inject(m.SheetsSelectionsService)),Jt(1,l.Inject(l.ThemeService)),Jt(2,Ct),Jt(3,l.ILogService),Jt(4,l.ICommandService),Jt(5,l.IUndoRedoService)],Ei);const Tn={id:"sheet.operation.set-format-painter",type:l.CommandType.OPERATION,handler:(n,o)=>o?(n.get(et).setStatus(o.status),!0):!1},Pi={type:l.CommandType.COMMAND,id:"sheet.command.set-infinite-format-painter",handler:async n=>{const e=n.get(et).getStatus();let t;return e!==Ae.OFF?t=Ae.OFF:t=Ae.INFINITE,n.get(l.ICommandService).executeCommand(Tn.id,{status:t})}},En={type:l.CommandType.COMMAND,id:"sheet.command.set-once-format-painter",handler:async n=>{const e=n.get(et).getStatus();let t;return e!==Ae.OFF?t=Ae.OFF:t=Ae.ONCE,n.get(l.ICommandService).executeCommand(Tn.id,{status:t})}},Pn={type:l.CommandType.COMMAND,id:"sheet.command.apply-format-painter",handler:async(n,o)=>n.get(et).applyFormatPainter(o.unitId,o.subUnitId,o.range)},$t={type:l.CommandType.COMMAND,id:"sheet.command.set-selection-frozen",handler:async(n,o)=>{const{type:e}=o||{},t=n.get(l.IUniverInstanceService),i=n.get(l.IUndoRedoService),r=m.getSheetCommandTarget(t);if(!r)return!1;const{unitId:s,subUnitId:a}=r,c=n.get(l.ICommandService),u=n.get(m.SheetsSelectionsService).getCurrentSelections();if(!u)return!1;const h=u[(u==null?void 0:u.length)-1],{range:f}=h,g=n.get(w.IRenderManagerService).getRenderById(s).with(be),{sheetViewStartRow:p=0,sheetViewStartColumn:v=0}=g.getCurrentScrollState()||{};let C,I,b,R;const{startRow:P,startColumn:y,rangeType:O}=f;if(O===l.RANGE_TYPE.ROW||e===1)C=P,b=P-p,I=-1,R=0;else if(O===l.RANGE_TYPE.COLUMN||e===2)C=-1,b=0,I=y,R=y-v;else if(O===l.RANGE_TYPE.NORMAL)C=P,b=P-p,I=y,R=y-v;else return!1;const N={unitId:s,subUnitId:a,startRow:C,startColumn:I,xSplit:I>0?Math.max(1,R):R,ySplit:C>0?Math.max(1,b):b},D=m.SetFrozenMutationFactory(n,N);return c.syncExecuteCommand(m.SetFrozenMutation.id,N)&&i.pushUndoRedo({unitID:s,undoMutations:[{id:m.SetFrozenMutation.id,params:D}],redoMutations:[{id:m.SetFrozenMutation.id,params:N}]}),!0}},wi={type:l.CommandType.COMMAND,id:"sheet.command.set-row-frozen",handler:async n=>(n.get(l.ICommandService).executeCommand($t.id,{type:1}),!0)},yi={type:l.CommandType.COMMAND,id:"sheet.command.set-col-frozen",handler:async n=>(n.get(l.ICommandService).executeCommand($t.id,{type:2}),!0)},Mi={type:l.CommandType.COMMAND,id:"sheet.command.cancel-frozen",handler:async n=>{const o=n.get(l.ICommandService),e=n.get(l.IUniverInstanceService),t=n.get(l.IUndoRedoService),i=m.getSheetCommandTarget(e);if(!i)return!1;const{unitId:r,subUnitId:s}=i,a={unitId:r,subUnitId:s,startRow:-1,startColumn:-1,xSplit:0,ySplit:0},c=m.SetFrozenMutationFactory(n,a);return o.syncExecuteCommand(m.SetFrozenMutation.id,a)&&t.pushUndoRedo({unitID:r,undoMutations:[{id:m.SetFrozenMutation.id,params:c}],redoMutations:[{id:m.SetFrozenMutation.id,params:a}]}),!0}},en="UI_PLUGIN_SHEETS",wn=`${en}_COLOR_PICKER_COMPONENT`,or=`${en}_FONT_FAMILY_COMPONENT`,rr=`${en}_FONT_FAMILY_ITEM_COMPONENT`,sr=`${en}_FONT_SIZE_COMPONENT`,Oi=`${en}_MENU_ITEM_INPUT_COMPONENT`;var js={exports:{}},Ai={};/**
1
+ (function(global,factory){typeof exports=="object"&&typeof module<"u"?factory(exports,require("@univerjs/docs"),require("@univerjs/core"),require("@univerjs/engine-render"),require("@univerjs/sheets"),require("rxjs"),require("@univerjs/ui"),require("@univerjs/engine-numfmt"),require("react"),require("@univerjs/design"),require("clsx"),require("@univerjs/engine-formula"),require("rxjs/operators")):typeof define=="function"&&define.amd?define(["exports","@univerjs/docs","@univerjs/core","@univerjs/engine-render","@univerjs/sheets","rxjs","@univerjs/ui","@univerjs/engine-numfmt","react","@univerjs/design","clsx","@univerjs/engine-formula","rxjs/operators"],factory):(global=typeof globalThis<"u"?globalThis:global||self,factory(global.UniverSheetsUi={},global.UniverDocs,global.UniverCore,global.UniverEngineRender,global.UniverSheets,global.rxjs,global.UniverUi,global.UniverEngineNumfmt,global.React,global.UniverDesign,global.clsx,global.UniverEngineFormula,global.rxjs.operators))})(this,function(exports2,docs,core,engineRender,sheets,rxjs,ui,engineNumfmt,React,design,clsx,engineFormula,operators){"use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);var _a,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o,_p,_q,_r,_s,_t,_u,_v,_w,_x,_y,_z,_A,_B,_C,_D,_E,_F,_G,_H,_I,_J,_K,_L,_M,_N,_O,_P,_Q,_R,_S,_T,_U,_V,_W,_X,_Y,_Z,__,_$,_aa,_ba,_ca,_da;const SHEET_UI_PLUGIN_NAME="SheetUI";var SheetsUIPart=(SheetsUIPart2=>(SheetsUIPart2.FILTER_PANEL_EMBED_POINT="filter-panel-embed-point",SheetsUIPart2))(SheetsUIPart||{});function getEditorObject(unitId,renderManagerService){if(unitId==null)return;const currentRender=renderManagerService.getRenderById(unitId);if(currentRender==null)return;const{mainComponent,scene,engine,components}=currentRender,document2=mainComponent,docBackground=components.get(docs.DOCS_VIEW_KEY.BACKGROUND);return{document:document2,docBackground,scene,engine}}__name(getEditorObject,"getEditorObject");var __defProp$U=Object.defineProperty,__getOwnPropDesc$U=Object.getOwnPropertyDescriptor,__decorateClass$U=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$U(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$U(target,key,result),result},"__decorateClass$U"),__decorateParam$T=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$T");exports2.SheetSkeletonManagerService=(_a=class extends core.Disposable{constructor(_context,_injector){super();__publicField(this,"_currentSkeletonSearchParam",{sheetId:""});__publicField(this,"_sheetSkeletonParam",[]);__publicField(this,"_currentSkeleton$",new rxjs.BehaviorSubject(null));__publicField(this,"currentSkeleton$",this._currentSkeleton$.asObservable());__publicField(this,"_currentSkeletonBefore$",new rxjs.BehaviorSubject(null));__publicField(this,"currentSkeletonBefore$",this._currentSkeletonBefore$.asObservable());this._context=_context,this._injector=_injector,this.disposeWithMe(()=>{this._currentSkeletonBefore$.complete(),this._currentSkeleton$.complete(),this._sheetSkeletonParam=[]}),this._initRemoveSheet()}_initRemoveSheet(){this.disposeWithMe(this._context.unit.sheetDisposed$.subscribe(sheet=>{this.disposeSkeleton({sheetId:sheet.getSheetId()})}))}getCurrentSkeleton(){var _a2;return(_a2=this.getCurrent())==null?void 0:_a2.skeleton}getCurrent(){return this._getSkeleton(this._currentSkeletonSearchParam)}getWorksheetSkeleton(sheetId){return this._getSkeleton({sheetId})}getUnitSkeleton(unitId,sheetId){const param=this._getSkeleton({sheetId});return param!=null&&(param.unitId=unitId),param}setCurrent(searchParam){this._setCurrent(searchParam)}_setCurrent(searchParam){const param=this._getSkeleton(searchParam);if(param!=null)this._reCalculate(param);else{const{sheetId:sheetId2}=searchParam,worksheet=this._context.unit.getSheetBySheetId(searchParam.sheetId);if(worksheet==null)return;const skeleton=this._buildSkeleton(worksheet);this._sheetSkeletonParam.push({sheetId:sheetId2,skeleton,dirty:!1})}this._currentSkeletonSearchParam=searchParam;const unitId=this._context.unitId,sheetId=this._currentSkeletonSearchParam.sheetId,sheetSkeletonManagerParam=this.getUnitSkeleton(unitId,sheetId);this._currentSkeletonBefore$.next(sheetSkeletonManagerParam),this._currentSkeleton$.next(sheetSkeletonManagerParam)}reCalculate(){const param=this.getCurrent();param!=null&&this._reCalculate(param)}_reCalculate(param){param.dirty&&(param.skeleton.makeDirty(!0),param.dirty=!1),param.skeleton.calculate()}makeDirty(searchParm,state=!0){const param=this._getSkeleton(searchParm);param!=null&&(param.dirty=state)}getOrCreateSkeleton(searchParam){const skeleton=this._getSkeleton(searchParam);if(skeleton)return skeleton.skeleton;const worksheet=this._context.unit.getSheetBySheetId(searchParam.sheetId);if(!worksheet)return;const newSkeleton=this._buildSkeleton(worksheet);return this._sheetSkeletonParam.push({sheetId:searchParam.sheetId,skeleton:newSkeleton,dirty:!1}),newSkeleton}disposeSkeleton(searchParm){const index=this._sheetSkeletonParam.findIndex(param=>param.sheetId===searchParm.sheetId);index>-1&&(this._sheetSkeletonParam[index].skeleton.dispose(),this._sheetSkeletonParam.splice(index,1))}attachRangeWithCoord(range){const skeleton=this.getCurrentSkeleton();return skeleton?attachRangeWithCoord(skeleton,range):null}_getSkeleton(searchParm){const item=this._sheetSkeletonParam.find(param=>param.sheetId===searchParm.sheetId);return item!=null&&(item.commandId=searchParm.commandId),item}_buildSkeleton(worksheet){const config=worksheet.getConfig();return this._injector.createInstance(engineRender.SpreadsheetSkeleton,worksheet,config,worksheet.getCellMatrix(),this._context.unit.getStyles())}},__name(_a,"SheetSkeletonManagerService"),_a),exports2.SheetSkeletonManagerService=__decorateClass$U([__decorateParam$T(1,core.Inject(core.Injector))],exports2.SheetSkeletonManagerService);function attachRangeWithCoord(skeleton,range){const{startRow,startColumn,endRow,endColumn,rangeType}=range,startCell=skeleton.getNoMergeCellPositionByIndex(startRow,startColumn),endCell=skeleton.getNoMergeCellPositionByIndex(endRow,endColumn);return{startRow,startColumn,endRow,endColumn,rangeType,startY:(startCell==null?void 0:startCell.startY)||0,endY:(endCell==null?void 0:endCell.endY)||0,startX:(startCell==null?void 0:startCell.startX)||0,endX:(endCell==null?void 0:endCell.endX)||0}}__name(attachRangeWithCoord,"attachRangeWithCoord");var __defProp$T=Object.defineProperty,__getOwnPropDesc$T=Object.getOwnPropertyDescriptor,__decorateClass$T=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$T(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$T(target,key,result),result},"__decorateClass$T"),__decorateParam$S=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$S");let SheetScrollManagerService=(_b=class{constructor(_context,_sheetSkeletonManagerService){__publicField(this,"_scrollStateMap",new Map);__publicField(this,"_scrollInfo$",new rxjs.BehaviorSubject(null));__publicField(this,"rawScrollInfo$",this._scrollInfo$.asObservable());__publicField(this,"validViewportScrollInfo$",new rxjs.BehaviorSubject(null));__publicField(this,"_searchParamForScroll",null);this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService}dispose(){this._scrollInfo$.complete()}setSearchParam(param){this._searchParamForScroll=param}setSearchParamAndRefresh(param){this._searchParamForScroll=param,this._scrollStateNext(param)}getScrollStateByParam(param){return this._getCurrentScroll(param)}getCurrentScrollState(){return this._getCurrentScroll(this._searchParamForScroll)}setScrollInfoAndEmitEvent(param){this._setScrollState(param),this._scrollStateNext(param)}setScrollStateToCurrSheetAndEmitEvent(scrollInfo){this._searchParamForScroll!=null&&(this._setScrollState({...this._searchParamForScroll,...scrollInfo}),this._scrollStateNext(this._searchParamForScroll))}setScrollStateToCurrSheet(scroll){this._searchParamForScroll!=null&&this._setScrollState({...this._searchParamForScroll,...scroll})}clear(){this._searchParamForScroll!=null&&this._clearByParamAndNotify(this._searchParamForScroll)}calcViewportScrollFromRowColOffset(scrollInfo){if(!scrollInfo)return{viewportScrollX:0,viewportScrollY:0};let{sheetViewStartColumn,sheetViewStartRow,offsetX,offsetY}=scrollInfo;sheetViewStartRow=sheetViewStartRow||0,offsetY=offsetY||0;const skeleton=this._sheetSkeletonManagerService.getCurrentSkeleton(),rowAcc=(skeleton==null?void 0:skeleton.rowHeightAccumulation[sheetViewStartRow-1])||0,viewportScrollX=((skeleton==null?void 0:skeleton.columnWidthAccumulation[sheetViewStartColumn-1])||0)+offsetX,viewportScrollY=rowAcc+offsetY;return{viewportScrollX,viewportScrollY}}_setScrollState(scrollInfo){const{unitId,sheetId,sheetViewStartColumn,sheetViewStartRow,offsetX,offsetY}=scrollInfo;this._scrollStateMap.has(unitId)||this._scrollStateMap.set(unitId,new Map);const worksheetScrollInfoMap=this._scrollStateMap.get(unitId),newScrollInfo={sheetViewStartRow,sheetViewStartColumn,offsetX,offsetY};worksheetScrollInfoMap.set(sheetId,newScrollInfo)}_clearByParamAndNotify(param){this._setScrollState({...param,sheetViewStartRow:0,sheetViewStartColumn:0,offsetX:0,offsetY:0}),this._scrollStateNext(param)}_getCurrentScroll(param){var _a2;if(param==null)return;const{unitId,sheetId}=param;return(_a2=this._scrollStateMap.get(unitId))==null?void 0:_a2.get(sheetId)}_scrollStateNext(param){const scrollInfo=this._getCurrentScroll(param);this._scrollInfo$.next(scrollInfo)}},__name(_b,"SheetScrollManagerService"),_b);SheetScrollManagerService=__decorateClass$T([__decorateParam$S(1,core.Inject(exports2.SheetSkeletonManagerService))],SheetScrollManagerService);const SetScrollOperation={id:"sheet.operation.set-scroll",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>{if(!params)return!1;const{unitId,sheetId,offsetX,offsetY,sheetViewStartColumn,sheetViewStartRow}=params,currentService=accessor.get(core.IUniverInstanceService),renderManagerService=accessor.get(engineRender.IRenderManagerService),worksheet=currentService.getUniverSheetInstance(unitId).getSheetBySheetId(sheetId),scrollManagerService=renderManagerService.getRenderById(unitId).with(SheetScrollManagerService),{xSplit,ySplit}=worksheet.getConfig().freeze;return scrollManagerService.setScrollInfoAndEmitEvent({unitId,sheetId,offsetX,offsetY,sheetViewStartRow:sheetViewStartRow-ySplit,sheetViewStartColumn:sheetViewStartColumn-xSplit}),!0},"handler")},SetScrollRelativeCommand={id:"sheet.command.set-scroll-relative",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),renderManagerSrv=accessor.get(engineRender.IRenderManagerService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{unitId,subUnitId,worksheet}=target,{xSplit,ySplit}=worksheet.getConfig().freeze,currentScroll=renderManagerSrv.getRenderById(unitId).with(SheetScrollManagerService).getCurrentScrollState(),{offsetX=0,offsetY=0}=params||{},{sheetViewStartRow=0,sheetViewStartColumn=0,offsetX:currentOffsetX=0,offsetY:currentOffsetY=0}=currentScroll||{};return commandService.executeCommand(SetScrollOperation.id,{unitId,sheetId:subUnitId,sheetViewStartRow:sheetViewStartRow+ySplit,sheetViewStartColumn:sheetViewStartColumn+xSplit,offsetX:currentOffsetX+offsetX,offsetY:currentOffsetY+offsetY})},"handler")},ScrollCommand={id:"sheet.command.scroll-view",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{if(!params)return!1;const univerInstanceService=accessor.get(core.IUniverInstanceService),renderManagerSrv=accessor.get(engineRender.IRenderManagerService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{workbook,worksheet,unitId}=target,currentScroll=renderManagerSrv.getRenderById(unitId).with(SheetScrollManagerService).getCurrentScrollState();if(!worksheet)return!1;const{sheetViewStartRow,sheetViewStartColumn,offsetX,offsetY}=params,{sheetViewStartColumn:currentColumn,sheetViewStartRow:currentRow,offsetX:currentOffsetX,offsetY:currentOffsetY}=currentScroll||{},{xSplit,ySplit}=worksheet.getConfig().freeze;return accessor.get(core.ICommandService).syncExecuteCommand(SetScrollOperation.id,{unitId:workbook.getUnitId(),sheetId:worksheet.getSheetId(),sheetViewStartRow:sheetViewStartRow!=null?sheetViewStartRow:(currentRow!=null?currentRow:0)+ySplit,sheetViewStartColumn:sheetViewStartColumn!=null?sheetViewStartColumn:(currentColumn!=null?currentColumn:0)+xSplit,offsetX:offsetX!=null?offsetX:currentOffsetX,offsetY:offsetY!=null?offsetY:currentOffsetY})},"handler")},ScrollToCellCommand={id:"sheet.command.scroll-to-cell",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{const instanceService=accessor.get(core.IUniverInstanceService);return accessor.get(engineRender.IRenderManagerService).getRenderById(instanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports2.SheetsScrollRenderController).scrollToRange(params.range)},"handler")},ResetScrollCommand={id:"sheet.command.scroll-view-reset",type:core.CommandType.COMMAND,handler:__name(async accessor=>{const univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{subUnitId,unitId}=target;return accessor.get(core.ICommandService).executeCommand(SetScrollOperation.id,{unitId,sheetId:subUnitId,sheetViewStartRow:0,sheetViewStartColumn:0})},"handler")};var __defProp$S=Object.defineProperty,__getOwnPropDesc$S=Object.getOwnPropertyDescriptor,__decorateClass$S=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$S(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$S(target,key,result),result},"__decorateClass$S"),__decorateParam$R=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$R");let ShortcutExperienceService=(_c=class{constructor(_univerInstanceService,_localeService){__publicField(this,"_current",null);__publicField(this,"_shortcutParam",[]);this._univerInstanceService=_univerInstanceService,this._localeService=_localeService}dispose(){this._shortcutParam=[]}getCurrentBySearch(searchParm){return this._getCurrentBySearch(searchParm)}getCurrent(){return this._getCurrentBySearch(this._current)}addOrUpdate(insertParam){const param=this._getCurrentBySearch({unitId:insertParam.unitId,sheetId:insertParam.sheetId,keycode:insertParam.keycode});if(param!=null){const index=this._shortcutParam.indexOf(param);this._shortcutParam.splice(index,1)}return this._shortcutParam.push(insertParam),param}remove(searchParm){if(searchParm==null)return;const param=this._getCurrentBySearch(searchParm);if(param==null)return;const index=this._shortcutParam.indexOf(param);return this._shortcutParam.splice(index,1)[0]}_getCurrentBySearch(searchParm){return searchParm==null?void 0:this._shortcutParam.find(param=>param.unitId===searchParm.unitId&&param.sheetId===searchParm.sheetId&&param.keycode===searchParm.keycode)}},__name(_c,"ShortcutExperienceService"),_c);ShortcutExperienceService=__decorateClass$S([__decorateParam$R(0,core.IUniverInstanceService),__decorateParam$R(1,core.Inject(core.LocaleService))],ShortcutExperienceService);var MergeType=(MergeType2=>(MergeType2.MergeAll="mergeAll",MergeType2.MergeVertical="mergeVertical",MergeType2.MergeHorizontal="mergeHorizontal",MergeType2))(MergeType||{});function findNextRange(startRange,direction,worksheet,boundary,isFindNext=!0,nextStep=1,isGoBack=!0){let destRange={...startRange};boundary==null&&(boundary={startRow:0,endRow:worksheet.getRowCount()-1,startColumn:0,endColumn:worksheet.getColumnCount()-1});let next;switch(direction){case core.Direction.UP:for(next=startRange.startRow-nextStep;next>-1&&!worksheet.getRowVisible(next);)next-=1;next>=boundary.startRow?(destRange.startRow=next,destRange.endRow=next):isGoBack&&(destRange.startRow=boundary.endRow,destRange.endRow=boundary.endRow,isFindNext&&(destRange=findNextRange(destRange,core.Direction.LEFT,worksheet,boundary,!1)));break;case core.Direction.DOWN:for(next=startRange.endRow+nextStep;next<worksheet.getRowCount()&&!worksheet.getRowVisible(next);)next+=1;next<=boundary.endRow?(destRange.startRow=next,destRange.endRow=next):isGoBack&&(destRange.startRow=boundary.startRow,destRange.endRow=boundary.startRow,isFindNext&&(destRange=findNextRange(destRange,core.Direction.RIGHT,worksheet,boundary,!1)));break;case core.Direction.LEFT:for(next=startRange.startColumn-nextStep;next>-1&&!worksheet.getColVisible(next);)next-=1;next>=boundary.startColumn?(destRange.startColumn=next,destRange.endColumn=next):isGoBack&&(destRange.startColumn=boundary.endColumn,destRange.endColumn=boundary.endColumn,isFindNext&&(destRange=findNextRange(destRange,core.Direction.UP,worksheet,boundary,!1)));break;case core.Direction.RIGHT:for(next=startRange.endColumn+nextStep;next<worksheet.getColumnCount()&&!worksheet.getColVisible(next);)next+=1;next<=boundary.endColumn?(destRange.startColumn=next,destRange.endColumn=next):isGoBack&&(destRange.startColumn=boundary.startColumn,destRange.endColumn=boundary.startColumn,isFindNext&&(destRange=findNextRange(destRange,core.Direction.DOWN,worksheet,boundary,!1)));break}return destRange}__name(findNextRange,"findNextRange");function findNextGapRange(startRange,direction,worksheet){const destRange={...startRange},{startRow,startColumn,endRow,endColumn}=getEdgeOfRange(startRange,direction,worksheet);let currentPositionHasValue=rangeHasValue(worksheet,startRow,startColumn,endRow,endColumn).hasValue,firstMove=!0,shouldContinue=!0;for(;shouldContinue;){if(core.Direction.UP===direction){let next=destRange.startRow-1;for(;next>-1&&!worksheet.getRowVisible(next);)next-=1;if(next===-1){shouldContinue=!1;break}const{hasValue:nextRangeHasValue,matrix}=rangeHasValue(worksheet,next,destRange.startColumn,next,destRange.endColumn);if(currentPositionHasValue&&!nextRangeHasValue&&!firstMove){shouldContinue=!1;break}else{if(matrix.getLength()!==0){let min=next;matrix.forValue(row=>{min=Math.min(row,min)}),destRange.startRow=min}else destRange.startRow=next;if(destRange.endRow=destRange.startRow,!currentPositionHasValue&&nextRangeHasValue){shouldContinue=!1;break}currentPositionHasValue=nextRangeHasValue,firstMove=!1}}if(core.Direction.DOWN===direction){let next=destRange.endRow+1;for(;next<worksheet.getRowCount()&&!worksheet.getRowVisible(next);)next+=1;if(next===worksheet.getRowCount()){shouldContinue=!1;break}const{hasValue:nextRangeHasValue,matrix}=rangeHasValue(worksheet,next,destRange.startColumn,next,destRange.endColumn);if(currentPositionHasValue&&!nextRangeHasValue&&!firstMove){shouldContinue=!1;break}else{if(matrix.getLength()!==0){let max=next;matrix.forValue((row,_,value)=>{max=Math.max(row+(value.rowSpan||1)-1,max)}),destRange.endRow=max}else destRange.endRow=next;if(destRange.startRow=destRange.endRow,!currentPositionHasValue&&nextRangeHasValue){shouldContinue=!1;break}currentPositionHasValue=nextRangeHasValue,firstMove=!1}}if(core.Direction.LEFT===direction){let next=destRange.startColumn-1;for(;next>-1&&!worksheet.getColVisible(next);)next-=1;if(next===-1){shouldContinue=!1;break}const{hasValue:nextRangeHasValue,matrix}=rangeHasValue(worksheet,destRange.startRow,next,destRange.endRow,next);if(currentPositionHasValue&&!nextRangeHasValue&&!firstMove){shouldContinue=!1;break}else{if(matrix.getLength()!==0){let min=next;matrix.forValue((_,col)=>{min=Math.min(col,min)}),destRange.startColumn=min}else destRange.startColumn=next;if(destRange.endColumn=destRange.startColumn,!currentPositionHasValue&&nextRangeHasValue){shouldContinue=!1;break}currentPositionHasValue=nextRangeHasValue,firstMove=!1}}if(core.Direction.RIGHT===direction){let next=destRange.endColumn+1;for(;next<worksheet.getColumnCount()&&!worksheet.getColVisible(next);)next+=1;if(next===worksheet.getColumnCount()){shouldContinue=!1;break}const{hasValue:nextRangeHasValue,matrix}=rangeHasValue(worksheet,destRange.startRow,next,destRange.endRow,next);if(currentPositionHasValue&&!nextRangeHasValue&&!firstMove){shouldContinue=!1;break}else{if(matrix.getLength()!==0){let max=next;matrix.forValue((_,col,value)=>{max=Math.max(col+(value.colSpan||1)-1,max)}),destRange.endColumn=max}else destRange.endColumn=next;if(destRange.startColumn=destRange.endColumn,!currentPositionHasValue&&nextRangeHasValue){shouldContinue=!1;break}currentPositionHasValue=nextRangeHasValue,firstMove=!1}}}return sheets.alignToMergedCellsBorders(destRange,worksheet,!0)}__name(findNextGapRange,"findNextGapRange");function findNextRangeExpand(startRange,direction,worksheet){return findNextRange(startRange,direction,worksheet,void 0,!1,1,!1)}__name(findNextRangeExpand,"findNextRangeExpand");function expandToNextGapRange(startRange,direction,worksheet){const next=findNextGapRange(startRange,direction,worksheet);return sheets.alignToMergedCellsBorders(core.Rectangle.union(next,startRange),worksheet,!0)}__name(expandToNextGapRange,"expandToNextGapRange");function expandToNextCell(startRange,direction,worksheet){const next=findNextRangeExpand(startRange,direction,worksheet),destRange={startRow:Math.min(startRange.startRow,next.startRow),startColumn:Math.min(startRange.startColumn,next.startColumn),endRow:Math.max(startRange.endRow,next.endRow),endColumn:Math.max(startRange.endColumn,next.endColumn)};return sheets.alignToMergedCellsBorders(core.Rectangle.union(startRange,destRange),worksheet)}__name(expandToNextCell,"expandToNextCell");function shrinkToNextGapRange(startRange,anchorRange,direction,worksheet){const reversedDirection=core.getReverseDirection(direction),nextGap=findNextGapRange(getEdgeOfRange(startRange,reversedDirection,worksheet),direction,worksheet);return direction===core.Direction.UP&&nextGap.startRow<=startRange.startRow?sheets.alignToMergedCellsBorders({...anchorRange,startColumn:startRange.startColumn,endColumn:startRange.endColumn},worksheet,!0):direction===core.Direction.DOWN&&nextGap.endRow>=startRange.endRow?sheets.alignToMergedCellsBorders({...anchorRange,startColumn:startRange.startColumn,endColumn:startRange.endColumn},worksheet,!0):direction===core.Direction.LEFT&&nextGap.startColumn<=startRange.startColumn?sheets.alignToMergedCellsBorders({...anchorRange,startRow:startRange.startRow,endRow:startRange.endRow},worksheet,!0):direction===core.Direction.RIGHT&&nextGap.endColumn>=startRange.endColumn?sheets.alignToMergedCellsBorders({...anchorRange,startRow:startRange.startRow,endRow:startRange.endRow},worksheet,!0):core.Rectangle.union(core.Rectangle.clone(anchorRange),nextGap)}__name(shrinkToNextGapRange,"shrinkToNextGapRange");function shrinkToNextCell(startRange,direction,worksheet){const reversedDirection=core.getReverseDirection(direction),shrinkFromEdge=getEdgeOfRange(startRange,reversedDirection,worksheet),otherEdge=getEdgeOfRange(startRange,direction,worksheet),next=findNextRangeExpand(shrinkFromEdge,direction,worksheet);return sheets.alignToMergedCellsBorders(core.Rectangle.union(otherEdge,next),worksheet,!1)}__name(shrinkToNextCell,"shrinkToNextCell");function expandToWholeSheet(worksheet){return{startRow:0,startColumn:0,endRow:worksheet.getRowCount()-1,endColumn:worksheet.getColumnCount()-1,rangeType:core.RANGE_TYPE.ALL}}__name(expandToWholeSheet,"expandToWholeSheet");function getEdgeOfRange(startRange,direction,worksheet){let destRange;switch(direction){case core.Direction.UP:destRange={startRow:startRange.startRow,startColumn:startRange.startColumn,endRow:startRange.startRow,endColumn:startRange.endColumn,rangeType:core.RANGE_TYPE.NORMAL};break;case core.Direction.DOWN:destRange={startRow:startRange.endRow,startColumn:startRange.startColumn,endRow:startRange.endRow,endColumn:startRange.endColumn,rangeType:core.RANGE_TYPE.NORMAL};break;case core.Direction.LEFT:destRange={startRow:startRange.startRow,startColumn:startRange.startColumn,endRow:startRange.endRow,endColumn:startRange.startColumn,rangeType:core.RANGE_TYPE.NORMAL};break;case core.Direction.RIGHT:destRange={startRow:startRange.startRow,startColumn:startRange.endColumn,endRow:startRange.endRow,endColumn:startRange.endColumn,rangeType:core.RANGE_TYPE.NORMAL};break;default:throw new Error("Invalid direction")}return sheets.alignToMergedCellsBorders(destRange,worksheet,!1)}__name(getEdgeOfRange,"getEdgeOfRange");function rangeHasValue(worksheet,row,col,rowEnd,colEnd){let hasValue=!1;const matrix=worksheet.getMatrixWithMergedCells(row,col,rowEnd,colEnd).forValue((_,__2,value)=>{if(cellHasValue(value))return hasValue=!0,!1});return{hasValue,matrix}}__name(rangeHasValue,"rangeHasValue");function getStartRange(range,primary,direction){const ret=core.Rectangle.clone(range);if(primary==null)return ret;switch(direction){case core.Direction.UP:case core.Direction.DOWN:ret.startColumn=ret.endColumn=primary.actualColumn;break;case core.Direction.LEFT:case core.Direction.RIGHT:ret.startRow=ret.endRow=primary.actualRow;break}return ret}__name(getStartRange,"getStartRange");function checkIfShrink(selection,direction,worksheet){const{primary,range}=selection,startRange=core.Rectangle.clone(range);switch(direction){case core.Direction.UP:case core.Direction.DOWN:startRange.startRow=primary.startRow,startRange.endRow=primary.endRow;break;case core.Direction.LEFT:case core.Direction.RIGHT:startRange.startColumn=primary.startColumn,startRange.endColumn=primary.endColumn;break}const anchorRange=getEdgeOfRange(startRange,direction,worksheet);switch(direction){case core.Direction.DOWN:return range.startRow<anchorRange.startRow;case core.Direction.UP:return range.endRow>anchorRange.endRow;case core.Direction.LEFT:return anchorRange.endColumn<range.endColumn;case core.Direction.RIGHT:return anchorRange.startColumn>range.startColumn}}__name(checkIfShrink,"checkIfShrink");function isAllRowsCovered(allRowRanges,ranges){let start=allRowRanges[0].startRow,end=allRowRanges[0].endRow;allRowRanges.forEach(range=>{const{startRow,endRow}=range;start=Math.min(start,startRow),end=Math.max(end,endRow)});const covered=new Array(end-start+1).fill(!1);return ranges.forEach(range=>{const{startRow,endRow}=range;for(let i=Math.max(startRow,start);i<=Math.min(endRow,end);i++)covered[i-start]=!0}),allRowRanges.every(range=>{const{startRow,endRow}=range;for(let i=startRow;i<=endRow;i++)if(!covered[i-start])return!1;return!0})}__name(isAllRowsCovered,"isAllRowsCovered");function isAllColumnsCovered(allColumnRanges,ranges){let start=allColumnRanges[0].startColumn,end=allColumnRanges[0].endColumn;allColumnRanges.forEach(range=>{const{startColumn,endColumn}=range;start=Math.min(start,startColumn),end=Math.max(end,endColumn)});const covered=new Array(end-start+1).fill(!1);return ranges.forEach(range=>{const{startColumn,endColumn}=range;for(let i=Math.max(startColumn,start);i<=Math.min(endColumn,end);i++)covered[i-start]=!0}),allColumnRanges.every(range=>{const{startColumn,endColumn}=range;for(let i=startColumn;i<=endColumn;i++)if(!covered[i-start])return!1;return!0})}__name(isAllColumnsCovered,"isAllColumnsCovered");function getMergeableSelectionsByType(type,selections){return selections?type==="mergeAll"?selections.filter(selection=>!(selection.startRow===selection.endRow&&selection.startColumn===selection.endColumn)):type==="mergeVertical"?selections.filter(selection=>selection.startRow!==selection.endRow):type==="mergeHorizontal"?selections.filter(selection=>selection.startColumn!==selection.endColumn):selections:null}__name(getMergeableSelectionsByType,"getMergeableSelectionsByType");function cellHasValue(cell){return cell.v!==void 0&&cell.v!==null&&cell.v!==""||cell.p!==void 0}__name(cellHasValue,"cellHasValue");var JumpOver=(JumpOver2=>(JumpOver2[JumpOver2.moveStopeOne=0]="moveStopeOne",JumpOver2[JumpOver2.moveGap=1]="moveGap",JumpOver2[JumpOver2.moveStepPage=2]="moveStepPage",JumpOver2[JumpOver2.moveStepEnd=3]="moveStepEnd",JumpOver2))(JumpOver||{});const MoveSelectionCommand={id:"sheet.command.move-selection",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{if(!params)return!1;const target=sheets.getSheetCommandTarget(accessor.get(core.IUniverInstanceService));if(!target)return!1;const{workbook,worksheet}=target,selection=sheets.getSelectionsService(accessor).getCurrentLastSelection();if(!selection)return!1;const{direction,jumpOver}=params,{range,primary}=selection,startRange=getStartRange(range,primary,direction),next=jumpOver===1?findNextGapRange(startRange,direction,worksheet):findNextRange(startRange,direction,worksheet),destRange=sheets.getCellAtRowCol(next.startRow,next.startColumn,worksheet);return core.Rectangle.equals(destRange,startRange)?!1:(accessor.get(ShortcutExperienceService).remove({unitId:workbook.getUnitId(),sheetId:worksheet.getSheetId(),keycode:ui.KeyCode.TAB}),accessor.get(core.ICommandService).executeCommand(sheets.SetSelectionsOperation.id,{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),selections:[{range:core.Rectangle.clone(destRange),primary:{startRow:destRange.startRow,startColumn:destRange.startColumn,endRow:destRange.endRow,endColumn:destRange.endColumn,actualRow:next.startRow,actualColumn:next.startColumn,isMerged:destRange.isMerged,isMergedMainCell:destRange.startRow===next.startRow&&destRange.startColumn===next.startColumn}}]}))},"handler")},MoveSelectionEnterAndTabCommand={id:"sheet.command.move-selection-enter-tab",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{if(!params)return!1;const target=sheets.getSheetCommandTarget(accessor.get(core.IUniverInstanceService));if(!target)return!1;const{workbook,worksheet}=target,selection=sheets.getSelectionsService(accessor).getCurrentLastSelection();if(!selection)return!1;const unitId=workbook.getUnitId(),sheetId=worksheet.getSheetId();if(!selection)return!1;const{direction,keycode}=params,{range,primary}=selection;let startRange=getStartRange(range,primary,direction);const shortcutExperienceService=accessor.get(ShortcutExperienceService),shortcutExperienceParam=shortcutExperienceService.getCurrentBySearch({unitId,sheetId,keycode:ui.KeyCode.TAB});let resultRange;const{startRow,endRow,startColumn,endColumn}=range;if(core.Rectangle.equals(range,primary)){if(keycode===ui.KeyCode.TAB)shortcutExperienceParam==null&&shortcutExperienceService.addOrUpdate({unitId,sheetId,keycode:ui.KeyCode.TAB,selection});else{const selectionRemain=shortcutExperienceParam==null?void 0:shortcutExperienceParam.selection;if(selectionRemain!=null){const{range:range2,primary:primary2}=selectionRemain;startRange=getStartRange(range2,primary2,direction)}shortcutExperienceService.remove({unitId,sheetId,keycode:ui.KeyCode.TAB})}const next=findNextRange(startRange,direction,worksheet),destRange=sheets.getCellAtRowCol(next.startRow,next.startColumn,worksheet);if(core.Rectangle.equals(destRange,startRange))return!1;resultRange={range:core.Rectangle.clone(destRange),primary:{startRow:destRange.startRow,startColumn:destRange.startColumn,endRow:destRange.endRow,endColumn:destRange.endColumn,actualRow:next.startRow,actualColumn:next.startColumn,isMerged:destRange.isMerged,isMergedMainCell:destRange.startRow===next.startRow&&destRange.startColumn===next.startColumn}}}else{shortcutExperienceService.remove({unitId,sheetId,keycode:ui.KeyCode.TAB});const newPrimary=core.Tools.deepClone(primary),next=findNextRange({startRow:newPrimary.startRow,startColumn:newPrimary.startColumn,endRow:newPrimary.endRow,endColumn:newPrimary.endColumn},direction,worksheet,{startRow,endRow,startColumn,endColumn}),destRange=sheets.getCellAtRowCol(next.startRow,next.startColumn,worksheet);resultRange={range:core.Rectangle.clone(range),primary:{startRow:destRange.startRow,startColumn:destRange.startColumn,endRow:destRange.endRow,endColumn:destRange.endColumn,actualRow:next.startRow,actualColumn:next.startColumn,isMerged:destRange.isMerged,isMergedMainCell:destRange.startRow===next.startRow&&destRange.startColumn===next.startColumn}}}return accessor.get(core.ICommandService).executeCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId:sheetId,selections:[resultRange]})},"handler")},ExpandSelectionCommand={id:"sheet.command.expand-selection",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{if(!params)return!1;const target=sheets.getSheetCommandTarget(accessor.get(core.IUniverInstanceService));if(!target)return!1;const{worksheet,unitId,subUnitId}=target,selection=sheets.getSelectionsService(accessor).getCurrentLastSelection();if(!selection)return!1;const{range:startRange,primary}=selection,{jumpOver,direction}=params,destRange=checkIfShrink(selection,direction,worksheet)?jumpOver===1?shrinkToNextGapRange(startRange,{...core.Rectangle.clone(primary),rangeType:core.RANGE_TYPE.NORMAL},direction,worksheet):shrinkToNextCell(startRange,direction,worksheet):jumpOver===1?expandToNextGapRange(startRange,direction,worksheet):expandToNextCell(startRange,direction,worksheet);return core.Rectangle.equals(destRange,startRange)?!1:accessor.get(core.ICommandService).executeCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId,selections:[{range:destRange,primary}]})},"handler")};let RANGES_STACK=[],SELECTED_RANGE_WORKSHEET="";const SelectAllCommand={id:"sheet.command.select-all",type:core.CommandType.COMMAND,onDispose(){RANGES_STACK=[],SELECTED_RANGE_WORKSHEET=""},handler:__name(async(accessor,params={expandToGapFirst:!0,loop:!1})=>{const selection=sheets.getSelectionsService(accessor).getCurrentLastSelection(),target=sheets.getSheetCommandTarget(accessor.get(core.IUniverInstanceService));if(!target)return!1;const{worksheet,unitId,subUnitId}=target;if(!selection||!worksheet)return!1;const id=`${unitId}|${subUnitId}`;id!==SELECTED_RANGE_WORKSHEET&&(RANGES_STACK=[],SELECTED_RANGE_WORKSHEET=id);const maxRow=worksheet.getMaxRows(),maxCol=worksheet.getMaxColumns(),{expandToGapFirst,loop}=params,{range,primary}=selection,isWholeSheetSelected=range.endColumn===maxCol-1&&range.endRow===maxRow-1&&range.startRow===0&&range.startColumn===0;RANGES_STACK.some(s=>core.Rectangle.equals(s,range))||(RANGES_STACK=[],RANGES_STACK.push(range));let destRange;if(isWholeSheetSelected)if(loop){if(RANGES_STACK.findIndex(s=>core.Rectangle.equals(s,range))!==RANGES_STACK.length-1)return!1;destRange=RANGES_STACK[0]}else return!1;else expandToGapFirst?(destRange=sheets.expandToContinuousRange(range,{left:!0,right:!0,up:!0,down:!0},worksheet),core.Rectangle.equals(destRange,range)&&(destRange=expandToWholeSheet(worksheet))):destRange=expandToWholeSheet(worksheet);return RANGES_STACK.some(s=>core.Rectangle.equals(s,destRange))||RANGES_STACK.push(destRange),accessor.get(core.ICommandService).executeCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId,selections:[{range:destRange,primary}]})},"handler")};var SHEET_VIEW_KEY=(SHEET_VIEW_KEY2=>(SHEET_VIEW_KEY2.MAIN="__SpreadsheetRender__",SHEET_VIEW_KEY2.ROW="__SpreadsheetRowHeader__",SHEET_VIEW_KEY2.COLUMN="__SpreadsheetColumnHeader__",SHEET_VIEW_KEY2.LEFT_TOP="__SpreadsheetLeftTopPlaceholder__",SHEET_VIEW_KEY2))(SHEET_VIEW_KEY||{}),SHEET_VIEWPORT_KEY=(SHEET_VIEWPORT_KEY2=>(SHEET_VIEWPORT_KEY2.VIEW_MAIN="viewMain",SHEET_VIEWPORT_KEY2.VIEW_MAIN_LEFT_TOP="viewMainLeftTop",SHEET_VIEWPORT_KEY2.VIEW_MAIN_TOP="viewMainTop",SHEET_VIEWPORT_KEY2.VIEW_MAIN_LEFT="viewMainLeft",SHEET_VIEWPORT_KEY2.VIEW_ROW_TOP="viewRowTop",SHEET_VIEWPORT_KEY2.VIEW_ROW_BOTTOM="viewRowBottom",SHEET_VIEWPORT_KEY2.VIEW_COLUMN_LEFT="viewColumnLeft",SHEET_VIEWPORT_KEY2.VIEW_COLUMN_RIGHT="viewColumnRight",SHEET_VIEWPORT_KEY2.VIEW_LEFT_TOP="viewLeftTop",SHEET_VIEWPORT_KEY2))(SHEET_VIEWPORT_KEY||{});const SHEET_COMPONENT_MAIN_LAYER_INDEX=0,SHEET_COMPONENT_SELECTION_LAYER_INDEX=1,SHEET_COMPONENT_HEADER_LAYER_INDEX=10,SHEET_ZOOM_RANGE=[10,400],SHEET_COMPONENT_HEADER_SELECTION_LAYER_INDEX=11,SHEET_COMPONENT_UNHIDE_LAYER_INDEX=12;function isRenderManagerService(renderManagerService){return typeof renderManagerService.isMainScene>"u"}__name(isRenderManagerService,"isRenderManagerService");function getSheetObject(univerInstanceService,renderManagerService){const workbook=univerInstanceService instanceof core.Workbook?univerInstanceService:univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return null;const unitId=workbook.getUnitId();let components,mainComponent,scene,engine;if(isRenderManagerService(renderManagerService)){const currentRender=renderManagerService.getRenderById(unitId);if(currentRender==null)return null;components=currentRender.components,components=currentRender.components,mainComponent=currentRender.mainComponent,scene=currentRender.scene,engine=currentRender.engine}else components=renderManagerService.components,mainComponent=renderManagerService.mainComponent,scene=renderManagerService.scene,engine=renderManagerService.engine;if(!components||!mainComponent)return null;const spreadsheet=mainComponent,spreadsheetRowHeader=components.get(SHEET_VIEW_KEY.ROW),spreadsheetColumnHeader=components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetLeftTopPlaceholder=components.get(SHEET_VIEW_KEY.LEFT_TOP);return{spreadsheet,spreadsheetRowHeader,spreadsheetColumnHeader,spreadsheetLeftTopPlaceholder,scene,engine}}__name(getSheetObject,"getSheetObject");function getCoordByCell(row,col,scene,skeleton){const{startX,startY,endX,endY}=skeleton.getCellByIndex(row,col);return{startX,startY,endX,endY}}__name(getCoordByCell,"getCoordByCell");function getCoordByOffset(evtOffsetX,evtOffsetY,scene,skeleton,viewport,closeFirst){const relativeCoords=scene.getRelativeToViewportCoord(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords,scrollXY=scene.getVpScrollXYInfoByPosToVp(relativeCoords,viewport),{scaleX,scaleY}=scene.getAncestorScale(),moveActualSelection=skeleton.getCellPositionByOffset(newEvtOffsetX,newEvtOffsetY,scaleX,scaleY,scrollXY,closeFirst),{row,column}=moveActualSelection,startCell=skeleton.getNoMergeCellPositionByIndex(row,column),{startX,startY,endX,endY}=startCell;return{startX,startY,endX,endY,row,column}}__name(getCoordByOffset,"getCoordByOffset");function getTransformCoord(evtOffsetX,evtOffsetY,scene,skeleton){const relativeCoords=scene.getRelativeToViewportCoord(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),scrollXY=scene.getVpScrollXYInfoByPosToVp(relativeCoords,viewMain),{scaleX,scaleY}=scene.getAncestorScale(),{x:scrollX,y:scrollY}=scrollXY,offsetX=evtOffsetX/scaleX+scrollX,offsetY=evtOffsetY/scaleY+scrollY;return{x:offsetX,y:offsetY}}__name(getTransformCoord,"getTransformCoord");var __defProp$R=Object.defineProperty,__getOwnPropDesc$R=Object.getOwnPropertyDescriptor,__decorateClass$R=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$R(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$R(target,key,result),result},"__decorateClass$R"),__decorateParam$Q=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$Q");const SHEET_NAVIGATION_COMMANDS$1=[MoveSelectionCommand.id,MoveSelectionEnterAndTabCommand.id];exports2.SheetsScrollRenderController=(_d=class extends core.Disposable{constructor(_context,_injector,_sheetSkeletonManagerService,_contextService,_commandService,_renderManagerService,_scrollManagerService){super(),this._context=_context,this._injector=_injector,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._contextService=_contextService,this._commandService=_commandService,this._renderManagerService=_renderManagerService,this._scrollManagerService=_scrollManagerService,this._initCommandListener(),this._initScrollEventListener(),this._initSkeletonListener()}scrollToRange(range){let{endRow,endColumn,startColumn,startRow}=range;const bounding=this._getViewportBounding();if(range.rangeType===core.RANGE_TYPE.ROW?(startColumn=0,endColumn=0):range.rangeType===core.RANGE_TYPE.COLUMN&&(startRow=0,endRow=0),bounding){const row=bounding.startRow>endRow?startRow:endRow,col=bounding.startColumn>endColumn?startColumn:endColumn;return this._scrollToCell(row,col)}else return this._scrollToCell(startRow,startColumn)}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(SHEET_NAVIGATION_COMMANDS$1.includes(command.id))this._scrollToSelection();else if(command.id===sheets.ScrollToCellOperation.id){const param=command.params;this.scrollToRange(param)}else if(command.id===ExpandSelectionCommand.id){const param=command.params;this._scrollToSelectionForExpand(param)}}))}_scrollToSelectionForExpand(param){setTimeout(()=>{const selection=this._getSelectionsService().getCurrentLastSelection();if(selection==null)return;const{startRow,startColumn,endRow,endColumn}=selection.range,bounds=this._getViewportBounding();if(bounds==null)return;const{startRow:viewportStartRow,startColumn:viewportStartColumn,endRow:viewportEndRow,endColumn:viewportEndColumn}=bounds;let row=0,column=0;startRow>viewportStartRow?row=endRow:endRow<viewportEndRow?row=startRow:row=viewportStartRow,startColumn>viewportStartColumn?column=endColumn:endColumn<viewportEndColumn?column=startColumn:column=viewportStartColumn,param.direction===core.Direction.DOWN?row=endRow:param.direction===core.Direction.UP?row=startRow:param.direction===core.Direction.RIGHT?column=endColumn:param.direction===core.Direction.LEFT&&(column=startColumn),this._scrollToCell(row,column)},0)}_getFreeze(){var _a2;const snapshot=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton.getWorksheetConfig();if(snapshot!=null)return snapshot.freeze}_initScrollEventListener(){const{scene}=this._context;if(scene==null)return;const viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);viewportMain&&(this.disposeWithMe(core.toDisposable(this._scrollManagerService.rawScrollInfo$.subscribe(rawScrollInfo=>{var _a2;const skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton;if(!skeleton)return;if(rawScrollInfo==null){viewportMain.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0});return}const{sheetViewStartRow,sheetViewStartColumn,offsetX,offsetY}=rawScrollInfo,{startX,startY}=skeleton.getCellByIndexWithNoHeader(sheetViewStartRow,sheetViewStartColumn),viewportScrollX=startX+offsetX,viewportScrollY=startY+offsetY;viewportMain.scrollToViewportPos({viewportScrollX,viewportScrollY})}))),this.disposeWithMe(viewportMain.onScrollAfter$.subscribeEvent(scrollAfterParam=>{var _a2;const skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton;if(skeleton==null||scrollAfterParam.isTrigger===!1)return;const sheetObject=this._getSheetObject();if(skeleton==null||sheetObject==null)return;const{viewportScrollX,viewportScrollY,scrollX,scrollY}=scrollAfterParam,{row,column,rowOffset,columnOffset}=skeleton.getDecomposedOffset(viewportScrollX,viewportScrollY),scrollInfo={sheetViewStartRow:row,sheetViewStartColumn:column,offsetX:columnOffset,offsetY:rowOffset};this._scrollManagerService.setScrollStateToCurrSheet(scrollInfo),this._scrollManagerService.validViewportScrollInfo$.next({...scrollInfo,viewportScrollX,viewportScrollY,scrollX,scrollY})})),this.disposeWithMe(viewportMain.onScrollByBar$.subscribeEvent(param=>{var _a2;const skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton;if(skeleton==null||param.isTrigger===!1)return;const sheetObject=this._getSheetObject();if(skeleton==null||sheetObject==null)return;const{viewportScrollX=0,viewportScrollY=0}=param,freeze=this._getFreeze(),{row,column,rowOffset,columnOffset}=skeleton.getDecomposedOffset(viewportScrollX,viewportScrollY);this._commandService.executeCommand(ScrollCommand.id,{sheetViewStartRow:row+((freeze==null?void 0:freeze.ySplit)||0),sheetViewStartColumn:column+((freeze==null?void 0:freeze.xSplit)||0),offsetX:columnOffset,offsetY:rowOffset})})))}_initSkeletonListener(){this.disposeWithMe(core.toDisposable(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(param=>{if(param==null)return;const scrollParam={unitId:param.unitId,sheetId:param.sheetId};this._scrollManagerService.setSearchParam(scrollParam);const sheetObject=this._getSheetObject();if(!sheetObject)return;const viewportMain=sheetObject.scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),currScrollInfo=this._scrollManagerService.getScrollStateByParam(scrollParam),{viewportScrollX,viewportScrollY}=this._scrollManagerService.calcViewportScrollFromRowColOffset(currScrollInfo);viewportMain&&(currScrollInfo?(viewportMain.viewportScrollX=viewportScrollX,viewportMain.viewportScrollY=viewportScrollY):(viewportMain.viewportScrollX=0,viewportMain.viewportScrollY=0),this._updateSceneSize(param))})))}_updateSceneSize(param){var _a2;if(param==null)return;const{unitId}=this._context,{skeleton}=param,scene=(_a2=this._renderManagerService.getRenderById(unitId))==null?void 0:_a2.scene;if(skeleton==null||scene==null)return;const{rowTotalHeight,columnTotalWidth,rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton,worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const zoomRatio=worksheet.getZoomRatio()||1;scene==null||scene.setScaleValue(zoomRatio,zoomRatio),scene==null||scene.transformByState({width:rowHeaderWidthAndMarginLeft+columnTotalWidth,height:columnHeaderHeightAndMarginTop+rowTotalHeight})}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_scrollToSelectionByDirection(range){const bounds=this._getViewportBounding();if(bounds==null)return!1;const{startRow:viewportStartRow,startColumn:viewportStartColumn,endRow:viewportEndRow,endColumn:viewportEndColumn}=bounds;let row=0,column=0;const{startRow,startColumn,endRow,endColumn}=range;startRow>=viewportStartRow&&(row=endRow),endRow<=viewportEndRow&&(row=startRow),startColumn>=viewportStartColumn&&(column=endColumn),endColumn<=viewportEndColumn&&(column=startColumn),this._scrollToCell(row,column)}_scrollToSelection(targetIsActualRowAndColumn=!0){const selection=this._getSelectionsService().getCurrentLastSelection();if(selection==null)return;const{startRow,startColumn,actualRow,actualColumn}=selection.primary,selectionStartRow=targetIsActualRowAndColumn?actualRow:startRow,selectionStartColumn=targetIsActualRowAndColumn?actualColumn:startColumn;this._scrollToCell(selectionStartRow,selectionStartColumn)}_getSelectionsService(){return sheets.getSelectionsService(this._injector)}_getViewportBounding(){var _a2,_b2;const scene=(_a2=this._getSheetObject())==null?void 0:_a2.scene;if(scene==null)return;const viewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(viewport==null)return;const skeleton=(_b2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_b2.skeleton;if(skeleton==null)return;const bounds=viewport.getBounding();return skeleton.getRowColumnSegment(bounds)}_scrollToCell(row,column){var _a2,_b2,_c2,_d2;const{rowHeightAccumulation,columnWidthAccumulation}=(_b2=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton)!=null?_b2:{};if(rowHeightAccumulation==null||columnWidthAccumulation==null)return!1;const scene=(_c2=this._getSheetObject())==null?void 0:_c2.scene;if(scene==null)return!1;const viewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(viewport==null||((_d2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_d2.skeleton)==null)return!1;const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return!1;const{startColumn:freezeStartColumn,startRow:freezeStartRow,ySplit:freezeYSplit,xSplit:freezeXSplit}=worksheet.getFreeze(),bounds=this._getViewportBounding();if(bounds==null)return!1;const{startRow:viewportStartRow,startColumn:viewportStartColumn,endRow:viewportEndRow,endColumn:viewportEndColumn}=bounds;let startSheetViewRow,startSheetViewColumn;if(row>=freezeStartRow&&column>=freezeStartColumn-freezeXSplit&&(row<=viewportStartRow&&(startSheetViewRow=row),row>=viewportEndRow)){const minRowAccumulation=rowHeightAccumulation[row]-viewport.height;for(let r=viewportStartRow;r<=row;r++)if(rowHeightAccumulation[r]>=minRowAccumulation){startSheetViewRow=r+1;break}}if(column>=freezeStartColumn&&row>=freezeStartRow-freezeYSplit&&(column<=viewportStartColumn&&(startSheetViewColumn=column),column>=viewportEndColumn)){const minColumnAccumulation=columnWidthAccumulation[column]-viewport.width;for(let c=viewportStartColumn;c<=column;c++)if(columnWidthAccumulation[c]>=minColumnAccumulation){startSheetViewColumn=c+1;break}}if(startSheetViewRow===void 0&&startSheetViewColumn===void 0)return!1;const{offsetX,offsetY}=this._scrollManagerService.getCurrentScrollState()||{};return this._commandService.syncExecuteCommand(ScrollCommand.id,{sheetViewStartRow:startSheetViewRow,sheetViewStartColumn:startSheetViewColumn,offsetX:startSheetViewColumn===void 0?offsetX:0,offsetY:startSheetViewRow===void 0?offsetY:0})}},__name(_d,"SheetsScrollRenderController"),_d),exports2.SheetsScrollRenderController=__decorateClass$R([__decorateParam$Q(1,core.Inject(core.Injector)),__decorateParam$Q(2,core.Inject(exports2.SheetSkeletonManagerService)),__decorateParam$Q(3,core.IContextService),__decorateParam$Q(4,core.ICommandService),__decorateParam$Q(5,engineRender.IRenderManagerService),__decorateParam$Q(6,core.Inject(SheetScrollManagerService))],exports2.SheetsScrollRenderController);var I=(E=>(E[E.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",E[E.UNIVER_DOC=1]="UNIVER_DOC",E[E.UNIVER_SHEET=2]="UNIVER_SHEET",E[E.UNIVER_SLIDE=3]="UNIVER_SLIDE",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(I||{}),L=(E=>(E[E.SomeCollaborator=0]="SomeCollaborator",E[E.AllCollaborator=1]="AllCollaborator",E[E.OneSelf=2]="OneSelf",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(L||{}),P=(E=>(E[E.View=0]="View",E[E.Edit=1]="Edit",E[E.ManageCollaborator=2]="ManageCollaborator",E[E.Print=3]="Print",E[E.Duplicate=4]="Duplicate",E[E.Comment=5]="Comment",E[E.Copy=6]="Copy",E[E.Share=7]="Share",E[E.Export=8]="Export",E[E.MoveWorksheet=9]="MoveWorksheet",E[E.DeleteWorksheet=10]="DeleteWorksheet",E[E.HideWorksheet=11]="HideWorksheet",E[E.RenameWorksheet=12]="RenameWorksheet",E[E.CreateWorksheet=13]="CreateWorksheet",E[E.SetWorksheetStyle=14]="SetWorksheetStyle",E[E.EditWorksheetCell=15]="EditWorksheetCell",E[E.InsertHyperlink=16]="InsertHyperlink",E[E.Sort=17]="Sort",E[E.Filter=18]="Filter",E[E.PivotTable=19]="PivotTable",E[E.FloatImg=20]="FloatImg",E[E.History=21]="History",E[E.RwHgtClWdt=22]="RwHgtClWdt",E[E.ViemRwHgtClWdt=23]="ViemRwHgtClWdt",E[E.ViewFilter=24]="ViewFilter",E[E.MoveSheet=25]="MoveSheet",E[E.DeleteSheet=26]="DeleteSheet",E[E.HideSheet=27]="HideSheet",E[E.CopySheet=28]="CopySheet",E[E.RenameSheet=29]="RenameSheet",E[E.CreateSheet=30]="CreateSheet",E[E.SelectProtectedCells=31]="SelectProtectedCells",E[E.SelectUnProtectedCells=32]="SelectUnProtectedCells",E[E.SetCellStyle=33]="SetCellStyle",E[E.SetCellValue=34]="SetCellValue",E[E.SetRowStyle=35]="SetRowStyle",E[E.SetColumnStyle=36]="SetColumnStyle",E[E.InsertRow=37]="InsertRow",E[E.InsertColumn=38]="InsertColumn",E[E.DeleteRow=39]="DeleteRow",E[E.DeleteColumn=40]="DeleteColumn",E[E.EditExtraObject=41]="EditExtraObject",E[E.Delete=42]="Delete",E[E.RecoverHistory=43]="RecoverHistory",E[E.ViewHistory=44]="ViewHistory",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(P||{}),M=(E=>(E[E.Reader=0]="Reader",E[E.Editor=1]="Editor",E[E.Owner=2]="Owner",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(M||{}),l$1=(E=>(E[E.Unkonwn=0]="Unkonwn",E[E.Workbook=1]="Workbook",E[E.Worksheet=2]="Worksheet",E[E.SelectRange=3]="SelectRange",E[E.Document=4]="Document",E[E.Slide=5]="Slide",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(l$1||{});function getActiveSheet$(univerInstanceService){return univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.switchMap(workbook=>workbook?workbook.activeSheet$.pipe(rxjs.map(worksheet=>worksheet?{workbook,worksheet}:null)):rxjs.of(null)))}__name(getActiveSheet$,"getActiveSheet$");function deriveStateFromActiveSheet$(univerInstanceService,defaultValue,callback){return getActiveSheet$(univerInstanceService).pipe(rxjs.switchMap(active=>active?callback(active):rxjs.of(defaultValue)))}__name(deriveStateFromActiveSheet$,"deriveStateFromActiveSheet$");function getCurrentRangeDisable$(accessor,permissionTypes={}){const workbook$=accessor.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([userManagerService.currentUser$,workbook$]).pipe(rxjs.switchMap(([_,workbook])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{if(!worksheet)return rxjs.of(!0);const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),focusedOnDrawing$=accessor.get(core.IContextService).subscribeContextValue$(core.FOCUSING_COMMON_DRAWINGS).pipe(rxjs.startWith(!1));return rxjs.combineLatest([selectionManagerService.selectionMoveEnd$,focusedOnDrawing$]).pipe(rxjs.switchMap(([selection,focusOnDrawings])=>{if(focusOnDrawings)return rxjs.of(!0);const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionService=accessor.get(core.IPermissionService),{workbookTypes=[sheets.WorkbookEditablePermission],worksheetTypes,rangeTypes}=permissionTypes,permissionIds=[];if(workbookTypes==null||workbookTypes.forEach(F=>{permissionIds.push(new F(unitId).id)}),worksheetTypes==null||worksheetTypes.forEach(F=>{permissionIds.push(new F(unitId,subUnitId).id)}),worksheetRuleModel.getRule(unitId,subUnitId))return permissionService.composePermission$(permissionIds).pipe(rxjs.map(list=>list.some(item=>item.value===!1)));const selectionRanges=selection==null?void 0:selection.map(selection2=>selection2.range),rules=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>selectionRanges==null?void 0:selectionRanges.some(range=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(range,ruleRange))));return rangeTypes==null||rangeTypes.forEach(F=>{rules.forEach(rule=>{permissionIds.push(new F(unitId,subUnitId,rule.permissionId).id)})}),permissionService.composePermission$(permissionIds).pipe(rxjs.map(list=>list.some(item=>item.value===!1)))}))})):rxjs.of(!0)))}__name(getCurrentRangeDisable$,"getCurrentRangeDisable$");function getBaseRangeMenuHidden$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel);return selectionManagerService.selectionMoveEnd$.pipe(rxjs.map(()=>{var _a2;const range=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId();return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).reduce((acc,rule)=>[...acc,...rule.ranges],[]).filter(ruleRange=>core.Rectangle.intersects(range,ruleRange)).some(ruleRange=>{var _a3,_b2;const{startRow,startColumn,endRow,endColumn}=ruleRange;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_b2=(_a3=worksheet.getCell(row,col))==null?void 0:_a3.selectionProtection)==null?void 0:_b2[0];if((permission==null?void 0:permission[P.Edit])===!1)return!0}return!1})}))}__name(getBaseRangeMenuHidden$,"getBaseRangeMenuHidden$");function getInsertAfterMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel);return selectionManagerService.selectionMoveEnd$.pipe(rxjs.map(()=>{var _a2;const range=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId();return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).reduce((acc,rule)=>[...acc,...rule.ranges],[]).filter(ruleRange=>type==="row"?range.endRow>ruleRange.startRow&&range.endRow<=ruleRange.endRow:range.endColumn>ruleRange.startColumn&&range.endColumn<=ruleRange.endColumn).some(ruleRange=>{var _a3,_b2;const{startRow,startColumn,endRow,endColumn}=ruleRange;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_b2=(_a3=worksheet.getCell(row,col))==null?void 0:_a3.selectionProtection)==null?void 0:_b2[0];if((permission==null?void 0:permission[P.Edit])===!1)return!0}return!1})}))}__name(getInsertAfterMenuHidden$,"getInsertAfterMenuHidden$");function getInsertBeforeMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel);return selectionManagerService.selectionMoveEnd$.pipe(rxjs.map(()=>{var _a2;const range=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId();return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).reduce((acc,rule)=>[...acc,...rule.ranges],[]).filter(ruleRange=>type==="row"?range.startRow>ruleRange.startRow&&range.startRow<=ruleRange.endRow:range.startColumn>ruleRange.startColumn&&range.startColumn<=ruleRange.endColumn).some(ruleRange=>{var _a3,_b2;const{startRow,startColumn,endRow,endColumn}=ruleRange;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_b2=(_a3=worksheet.getCell(row,col))==null?void 0:_a3.selectionProtection)==null?void 0:_b2[0];if((permission==null?void 0:permission[P.Edit])===!1)return!0}return!1})}))}__name(getInsertBeforeMenuHidden$,"getInsertBeforeMenuHidden$");function getDeleteMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel);return selectionManagerService.selectionMoveEnd$.pipe(rxjs.map(()=>{var _a2;const range=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),rowColRangeExpand=core.Tools.deepClone(range);return type==="row"?(rowColRangeExpand.startColumn=0,rowColRangeExpand.endColumn=worksheet.getColumnCount()-1):(rowColRangeExpand.startRow=0,rowColRangeExpand.endRow=worksheet.getRowCount()-1),rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).reduce((acc,rule)=>[...acc,...rule.ranges],[]).filter(ruleRange=>core.Rectangle.intersects(rowColRangeExpand,ruleRange)).some(ruleRange=>{var _a3,_b2;const{startRow,startColumn,endRow,endColumn}=ruleRange;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_b2=(_a3=worksheet.getCell(row,col))==null?void 0:_a3.selectionProtection)==null?void 0:_b2[0];if((permission==null?void 0:permission[P.Edit])===!1)return!0}return!1})}))}__name(getDeleteMenuHidden$,"getDeleteMenuHidden$");function getCellMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel);return selectionManagerService.selectionMoveEnd$.pipe(rxjs.map(()=>{var _a2;const range=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),rowColRangeExpand=core.Tools.deepClone(range);return type==="row"?rowColRangeExpand.endRow=worksheet.getRowCount()-1:rowColRangeExpand.endColumn=worksheet.getColumnCount()-1,rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).reduce((acc,rule)=>[...acc,...rule.ranges],[]).filter(ruleRange=>core.Rectangle.intersects(ruleRange,rowColRangeExpand)).some(ruleRange=>{var _a3,_b2;const{startRow,startColumn,endRow,endColumn}=ruleRange;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_b2=(_a3=worksheet.getCell(row,col))==null?void 0:_a3.selectionProtection)==null?void 0:_b2[0];if((permission==null?void 0:permission[P.Edit])===!1)return!0}return!1})}))}__name(getCellMenuHidden$,"getCellMenuHidden$");function getWorkbookPermissionDisable$(accessor,workbookPermissionTypes){const workbook$=accessor.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),selectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([userManagerService.currentUser$,workbook$]).pipe(rxjs.switchMap(([_user,workbook])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(activeSheet=>{var _a2,_b2;if(!activeSheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),workbookPermissionIds=[];workbookPermissionTypes.forEach(F=>workbookPermissionIds.push(new F(unitId).id));const workbookPermission$=permissionService.composePermission$(workbookPermissionIds).pipe(rxjs.map(list=>list.every(item=>item.value===!0))),workbookManageCollaboratorPermission$=(_b2=(_a2=permissionService.getPermissionPoint$(new sheets.WorkbookManageCollaboratorPermission(unitId).id))==null?void 0:_a2.pipe(rxjs.map(permission=>permission.value)))!=null?_b2:rxjs.of(!1);return rxjs.combineLatest([workbookPermission$,workbookManageCollaboratorPermission$]).pipe(rxjs.map(([basePermission,manageable])=>{if(!basePermission)return!0;const subUnitId=activeSheet.getSheetId(),worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId),worksheetRuleList=selectionRuleModel.getSubunitRuleList(unitId,subUnitId);return worksheetRule||worksheetRuleList.length?!manageable:!1}))})):rxjs.of(!0)))}__name(getWorkbookPermissionDisable$,"getWorkbookPermissionDisable$");var __defProp$Q=Object.defineProperty,__getOwnPropDesc$Q=Object.getOwnPropertyDescriptor,__decorateClass$Q=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$Q(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$Q(target,key,result),result},"__decorateClass$Q"),__decorateParam$P=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$P");exports2.SheetsRenderService=(_e=class extends core.RxDisposable{constructor(_contextService,_instanceSrv,_renderManagerService){super();__publicField(this,"_skeletonChangeMutations",new Set);this._contextService=_contextService,this._instanceSrv=_instanceSrv,this._renderManagerService=_renderManagerService,Promise.resolve().then(()=>this._init())}registerSkeletonChangingMutations(mutationId){return this._skeletonChangeMutations.has(mutationId)?core.toDisposable(()=>{}):(this._skeletonChangeMutations.add(mutationId),core.toDisposable(()=>this._skeletonChangeMutations.delete(mutationId)))}checkMutationShouldTriggerRerender(id){return this._skeletonChangeMutations.has(id)}_init(){this._initWorkbookListener(),this._initContextListener()}_initWorkbookListener(){this._instanceSrv.getTypeOfUnitAdded$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.takeUntil(this.dispose$)).subscribe(workbook=>this._createRenderer(workbook)),this._instanceSrv.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET).forEach(workbook=>this._createRenderer(workbook)),this._instanceSrv.getTypeOfUnitDisposed$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.takeUntil(this.dispose$)).subscribe(workbook=>this._disposeRenderer(workbook))}_createRenderer(workbook){const unitId=workbook.getUnitId();this._renderManagerService.createRender(unitId),this._renderManagerService.setCurrent(unitId)}_disposeRenderer(workbook){const unitId=workbook.getUnitId();this._renderManagerService.removeRender(unitId)}_initContextListener(){this._contextService.subscribeContextValue$(engineRender.RENDER_RAW_FORMULA_KEY).pipe(rxjs.distinctUntilChanged(),rxjs.takeUntil(this.dispose$)).subscribe(()=>{this._renderManagerService.getRenderAll().forEach(renderer=>{renderer.mainComponent instanceof engineRender.Spreadsheet&&renderer.mainComponent.makeForceDirty(!0)})})}},__name(_e,"SheetsRenderService"),_e),exports2.SheetsRenderService=__decorateClass$Q([core.OnLifecycle(core.LifecycleStages.Ready,exports2.SheetsRenderService),__decorateParam$P(0,core.IContextService),__decorateParam$P(1,core.IUniverInstanceService),__decorateParam$P(2,engineRender.IRenderManagerService)],exports2.SheetsRenderService);function rangeToDiscreteRange(range,accessor,unitId,subUnitId){const univerInstanceService=accessor.get(core.IUniverInstanceService),workbook=unitId?univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_SHEET):univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=subUnitId?workbook==null?void 0:workbook.getSheetBySheetId(subUnitId):workbook==null?void 0:workbook.getActiveSheet();if(!worksheet)return null;const{startRow,endRow,startColumn,endColumn}=range,rows=[],cols=[];for(let r=startRow;r<=endRow;r++)worksheet.getRowFiltered(r)||rows.push(r);for(let c=startColumn;c<=endColumn;c++)cols.push(c);return{rows,cols}}__name(rangeToDiscreteRange,"rangeToDiscreteRange");function discreteRangeToRange(discreteRange){const{rows,cols}=discreteRange;return{startRow:rows[0],endRow:rows[rows.length-1],startColumn:cols[0],endColumn:cols[cols.length-1]}}__name(discreteRangeToRange,"discreteRangeToRange");function virtualizeDiscreteRanges(ranges){let totalRows=[],totalCols=[];const totalRanges=[];return ranges.forEach(r=>{totalRows.push(...r.rows),totalCols.push(...r.cols)}),totalRows=Array.from(new Set(totalRows)).sort((a,b)=>a-b),totalCols=Array.from(new Set(totalCols)).sort((a,b)=>a-b),ranges.forEach(r=>{totalRanges.push({startRow:totalRows.findIndex(row=>row===r.rows[0]),endRow:totalRows.findIndex(row=>row===r.rows[r.rows.length-1]),startColumn:totalCols.findIndex(col=>col===r.cols[0]),endColumn:totalCols.findIndex(col=>col===r.cols[r.cols.length-1])})}),{ranges:totalRanges,mapFunc:__name((row,col)=>({row:totalRows[row],col:totalCols[col]}),"mapFunc")}}__name(virtualizeDiscreteRanges,"virtualizeDiscreteRanges");function generateNullCellValueRowCol(range){const cellValue=new core.ObjectMatrix;return range.forEach(r=>{const{rows,cols}=r;rows.forEach(i=>{cols.forEach(j=>{cellValue.setValue(i,j,{v:null,p:null,f:null,si:null,custom:null})})})}),cellValue.getData()}__name(generateNullCellValueRowCol,"generateNullCellValueRowCol");const chnNumChar={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},chnNumChar2=["零","一","二","三","四","五","六","七","八","九"],chnUnitSection=["","万","亿","万亿","亿亿"],chnUnitChar=["","十","百","千"],chnNameValue={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function chineseToNumber(chnStr){if(!chnStr)return 0;let rtn=0,section=0,number=0,secUnit=!1;const str=chnStr.split("");for(let i=0;i<str.length;i++){const num=chnNumChar[str[i]];if(typeof num<"u")number=num,i===str.length-1&&(section+=number);else{const obj=chnNameValue[str[i]],unit=obj.value;secUnit=obj.secUnit,secUnit?(section=(section+number)*unit,rtn+=section,section=0):section+=number*unit,number=0}}return rtn+section}__name(chineseToNumber,"chineseToNumber");function sectionToChinese(section){let strIns="",chnStr="",unitPos=0,zero=!0;for(;section>0;){const v=section%10;v===0?zero||(zero=!0,chnStr=chnNumChar2[v]+chnStr):(zero=!1,strIns=chnNumChar2[v],strIns+=chnUnitChar[unitPos],chnStr=strIns+chnStr),unitPos++,section=Math.floor(section/10)}return chnStr}__name(sectionToChinese,"sectionToChinese");function numberToChinese(num){let unitPos=0,strIns="",chnStr="",needZero=!1;if(num===0)return chnNumChar2[0];for(;num>0;){const section=num%1e4;needZero&&(chnStr=chnNumChar2[0]+chnStr),strIns=sectionToChinese(section),strIns+=section!==0?chnUnitSection[unitPos]:chnUnitSection[0],chnStr=strIns+chnStr,needZero=section<1e3&&section>0,num=Math.floor(num/1e4),unitPos++}return chnStr}__name(numberToChinese,"numberToChinese");function isChnNumber(txt){if(!txt)return!1;let isChnNumber2=!0;if(txt)if(txt.length===1)txt==="日"||txt in chnNumChar?isChnNumber2=!0:isChnNumber2=!1;else{const str=txt.split("");for(let i=0;i<str.length;i++)if(!(str[i]in chnNumChar||str[i]in chnNameValue)){isChnNumber2=!1;break}}return isChnNumber2}__name(isChnNumber,"isChnNumber");function matchExtendNumber(txt){if(!txt)return{isExtendNumber:!1};const reg=/0|([1-9]+[0-9]*)/g,isExtendNumber=reg.test(txt);if(isExtendNumber){const match=txt.match(reg);if(match&&match.length>0){const matchTxt=match[match.length-1],matchIndex=txt.lastIndexOf(matchTxt),beforeTxt=txt.substr(0,matchIndex),afterTxt=txt.substr(matchIndex+matchTxt.length);return{isExtendNumber:!0,matchTxt:Number(matchTxt),beforeTxt,afterTxt}}return{isExtendNumber:!1}}return{isExtendNumber}}__name(matchExtendNumber,"matchExtendNumber");function isChnWeek2(txt){let isChnWeek22;return txt.length===2&&(txt==="周一"||txt==="周二"||txt==="周三"||txt==="周四"||txt==="周五"||txt==="周六"||txt==="周日")?isChnWeek22=!0:isChnWeek22=!1,isChnWeek22}__name(isChnWeek2,"isChnWeek2");function isChnWeek3(txt){let isChnWeek32;return txt.length===3&&(txt==="星期一"||txt==="星期二"||txt==="星期三"||txt==="星期四"||txt==="星期五"||txt==="星期六"||txt==="星期日")?isChnWeek32=!0:isChnWeek32=!1,isChnWeek32}__name(isChnWeek3,"isChnWeek3");function getLenS(indexArr,rsd){let s=0;for(let j=0;j<indexArr.length&&indexArr[j]<rsd;j++)s++;return s}__name(getLenS,"getLenS");function isEqualDiff(arr){let diff=!0;const step=arr[1]-arr[0];for(let i=1;i<arr.length;i++)if(arr[i]-arr[i-1]!==step){diff=!1;break}return diff}__name(isEqualDiff,"isEqualDiff");function getDataIndex(csLen,asLen,indexArr){const obj=[],num=Math.floor(asLen/csLen),rsd=asLen%csLen;let sum=0;if(num>0){for(let i=0;i<num;i++)for(let j=0;j<indexArr.length;j++)obj[indexArr[j]+i*csLen]=sum,sum++;for(let a=0;a<indexArr.length&&indexArr[a]<rsd;a++)obj[indexArr[a]+csLen*num]=sum,sum++}else for(let a=0;a<indexArr.length&&indexArr[a]<rsd;a++)obj[indexArr[a]]=sum,sum++;return obj}__name(getDataIndex,"getDataIndex");function fillCopy(data,len){const applyData=[];for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]);applyData.push({v:null,s:null,p:null,f:null,si:null,t:null,...d})}return applyData}__name(fillCopy,"fillCopy");function fillCopyStyles(data,len){var _a2;const applyData=[];for(let i=1;i<=len;i++){const index=(i-1)%data.length,d={s:(_a2=data[index])==null?void 0:_a2.s};applyData.push(d)}return applyData}__name(fillCopyStyles,"fillCopyStyles");function isEqualRatio(arr){let ratio=!0;const step=arr[1]/arr[0];for(let i=1;i<arr.length;i++)if(arr[i]/arr[i-1]!==step){ratio=!1;break}return ratio}__name(isEqualRatio,"isEqualRatio");function getXArr(len){const xArr=[];for(let i=1;i<=len;i++)xArr.push(i);return xArr}__name(getXArr,"getXArr");function fillSeries(data,len,direction){var _a2,_b2,_c2,_d2;const applyData=[],dataNumArr=[];for(let j=0;j<data.length;j++)dataNumArr.push(Number((_a2=data[j])==null?void 0:_a2.v));if(data.length>2&&isEqualRatio(dataNumArr))for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]),num=Number((_b2=data[data.length-1])==null?void 0:_b2.v)*(Number((_c2=data[1])==null?void 0:_c2.v)/Number((_d2=data[0])==null?void 0:_d2.v))**i;d&&(needsUpdateCellValue(d)&&(d.v=num),applyData.push(d))}else{const xArr=getXArr(data.length);for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]),forward=direction===core.Direction.DOWN||direction===core.Direction.RIGHT,y=forecast(data.length+i,dataNumArr,xArr,forward);d&&(needsUpdateCellValue(d)&&(d.v=y),applyData.push(d))}}return applyData}__name(fillSeries,"fillSeries");function forecast(x,yArr,xArr,forward=!0){function getAverage(arr){let sum=0;for(let i=0;i<arr.length;i++)sum+=arr[i];return sum/arr.length}__name(getAverage,"getAverage");const ax=getAverage(xArr),ay=getAverage(yArr);let sum_d=0,sum_n=0;for(let j=0;j<xArr.length;j++)sum_d+=(xArr[j]-ax)*(yArr[j]-ay),sum_n+=(xArr[j]-ax)*(xArr[j]-ax);let b;sum_n===0?b=forward?1:-1:b=sum_d/sum_n;const a=ay-b*ax;return Math.round((a+b*x)*1e5)/1e5}__name(forecast,"forecast");function fillExtendNumber(data,len,step){var _a2;const applyData=[],reg=/0|([1-9]+[0-9]*)/g;for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]),last=`${(_a2=data[data.length-1])==null?void 0:_a2.v}`,match=last==null?void 0:last.match(reg),lastTxt=match==null?void 0:match[match.length-1],num=Math.abs(Number(lastTxt)+step*i);if(!last||!lastTxt)continue;const lastIndex=last.lastIndexOf(lastTxt),valueTxt=last.substr(0,lastIndex)+num.toString()+last.substr(lastIndex+lastTxt.length);d&&(d.v=valueTxt,applyData.push(d))}return applyData}__name(fillExtendNumber,"fillExtendNumber");function fillChnWeek(data,len,step,weekType=0){var _a2,_b2;const keywordMap=[["日","一","二","三","四","五","六"],["周日","周一","周二","周三","周四","周五","周六"],["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]];if(weekType>=keywordMap.length)return[];const keyword=keywordMap[weekType],applyData=[];for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]);let num=0;if(((_a2=data[data.length-1])==null?void 0:_a2.v)===keyword[0])num=7+step*i;else{const last=`${(_b2=data[data.length-1])==null?void 0:_b2.v}`;if(last){const txt=last.substr(last.length-1,1);num=chineseToNumber(txt)+step*i}}num<0&&(num=Math.ceil(Math.abs(num)/7)*7+num);const rsd=num%7;d&&(d.v=keyword[rsd],applyData.push(d))}return applyData}__name(fillChnWeek,"fillChnWeek");function fillChnNumber(data,len,step){var _a2;const applyData=[];for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]),formattedValue=`${(_a2=data[data.length-1])==null?void 0:_a2.v}`,num=chineseToNumber(formattedValue)+step*i;let txt;num<=0?txt="零":txt=numberToChinese(num),d&&(d.v=txt,applyData.push(d))}return applyData}__name(fillChnNumber,"fillChnNumber");const LOOP_SERIES={enWeek1:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],enWeek2:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],enMonth1:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],enMonth2:["January","February","March","April","May","June","July","August","September","October","November","December"],chnMonth1:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],chnMonth2:["正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","腊月"],chHour1:["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"],chHour2:["子时","丑时","寅时","卯时","辰时","巳时","午时","未时","申时","酉时","戌时","亥时"],chYear1:["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],chSeason1:["春","夏","秋","冬"],chSeason2:["春季","夏季","秋季","冬季"]};function isLoopSeries(txt){let isLoopSeries2=!1;return Object.keys(LOOP_SERIES).forEach(key=>{LOOP_SERIES[key].includes(txt)&&(isLoopSeries2=!0)}),isLoopSeries2}__name(isLoopSeries,"isLoopSeries");function getLoopSeriesInfo(txt){let name="";const series=[];return Object.keys(LOOP_SERIES).forEach(key=>{LOOP_SERIES[key].includes(txt)&&(name=key,series.push(...LOOP_SERIES[key]))}),{name,series}}__name(getLoopSeriesInfo,"getLoopSeriesInfo");function fillLoopSeries(data,len,step,series){var _a2;const seriesLen=series.length,applyData=[];for(let i=1;i<=len;i++){const index=(i-1)%data.length,d=core.Tools.deepClone(data[index]),last=`${(_a2=data[data.length-1])==null?void 0:_a2.v}`;let num=series.indexOf(last)+step*i;num<0&&(num+=Math.abs(step)*seriesLen);const rsd=num%seriesLen;d&&(d.v=series[rsd],applyData.push(d))}return applyData}__name(fillLoopSeries,"fillLoopSeries");function getAutoFillRepeatRange(sourceRange,targetRange){const repeats=[];let direction;if(targetRange.startRow<sourceRange.startRow)direction=core.Direction.UP;else if(targetRange.endRow>sourceRange.endRow)direction=core.Direction.DOWN;else if(targetRange.startColumn<sourceRange.startColumn)direction=core.Direction.LEFT;else if(targetRange.endColumn>sourceRange.endColumn)direction=core.Direction.RIGHT;else return[];if(direction===core.Direction.DOWN||direction===core.Direction.UP){const sourceLength=sourceRange.endRow-sourceRange.startRow+1,targetLength=targetRange.endRow-targetRange.startRow+1,mod=Math.floor(targetLength/sourceLength),rest=targetLength%sourceLength,relativeRange={startRow:0,startColumn:0,endRow:sourceRange.endRow-sourceRange.startRow,endColumn:sourceRange.endColumn-sourceRange.startColumn};if(direction===core.Direction.DOWN){for(let i=0;i<mod;i++)repeats.push({repeatStartCell:{row:sourceRange.startRow+(i+1)*sourceLength,col:sourceRange.startColumn},relativeRange});rest>0&&repeats.push({repeatStartCell:{row:sourceRange.startRow+(mod+1)*sourceLength,col:sourceRange.startColumn},relativeRange:{startRow:0,startColumn:0,endRow:rest-1,endColumn:sourceRange.endColumn-sourceRange.startColumn}})}else{for(let i=0;i<mod;i++)repeats.push({repeatStartCell:{row:sourceRange.startRow-(i+1)*sourceLength,col:sourceRange.startColumn},relativeRange});rest>0&&repeats.push({repeatStartCell:{row:sourceRange.startRow-(mod+1)*sourceLength,col:sourceRange.startColumn},relativeRange:{startRow:sourceLength-rest,endRow:sourceLength-1,startColumn:0,endColumn:sourceRange.endColumn-sourceRange.startColumn}})}}if(direction===core.Direction.RIGHT||direction===core.Direction.LEFT){const sourceLength=sourceRange.endColumn-sourceRange.startColumn+1,targetLength=targetRange.endColumn-targetRange.startColumn+1,mod=Math.floor(targetLength/sourceLength),rest=targetLength%sourceLength,relativeRange={startRow:0,startColumn:0,endRow:sourceRange.endRow-sourceRange.startRow,endColumn:sourceRange.endColumn-sourceRange.startColumn};if(direction===core.Direction.RIGHT){for(let i=0;i<mod;i++)repeats.push({repeatStartCell:{row:sourceRange.startRow,col:sourceRange.startColumn+(i+1)*sourceLength},relativeRange});rest>0&&repeats.push({repeatStartCell:{row:sourceRange.startRow,col:sourceRange.startColumn+(mod+1)*sourceLength},relativeRange:{startRow:0,startColumn:0,endRow:sourceRange.endRow-sourceRange.startRow,endColumn:rest-1}})}else{for(let i=0;i<mod;i++)repeats.push({repeatStartCell:{row:sourceRange.startRow,col:sourceRange.startColumn-(i+1)*sourceLength},relativeRange});rest>0&&repeats.push({repeatStartCell:{row:sourceRange.startRow,col:sourceRange.startColumn-(mod+1)*sourceLength},relativeRange:{startRow:0,startColumn:sourceLength-rest,endRow:sourceRange.endRow-sourceRange.startRow,endColumn:sourceLength-1}})}}return repeats}__name(getAutoFillRepeatRange,"getAutoFillRepeatRange");function needsUpdateCellValue(cell){return!(core.isFormulaString(cell.f)||core.isFormulaId(cell.si)||cell.t===core.CellValueType.BOOLEAN)}__name(needsUpdateCellValue,"needsUpdateCellValue");var AutoFillHookType=(AutoFillHookType2=>(AutoFillHookType2.Append="APPEND",AutoFillHookType2.Default="DEFAULT",AutoFillHookType2.Only="ONLY",AutoFillHookType2))(AutoFillHookType||{}),DATA_TYPE=(DATA_TYPE2=>(DATA_TYPE2.NUMBER="number",DATA_TYPE2.DATE="date",DATA_TYPE2.EXTEND_NUMBER="extendNumber",DATA_TYPE2.CHN_NUMBER="chnNumber",DATA_TYPE2.CHN_WEEK2="chnWeek2",DATA_TYPE2.CHN_WEEK3="chnWeek3",DATA_TYPE2.LOOP_SERIES="loopSeries",DATA_TYPE2.FORMULA="formula",DATA_TYPE2.OTHER="other",DATA_TYPE2))(DATA_TYPE||{}),APPLY_TYPE=(APPLY_TYPE2=>(APPLY_TYPE2.COPY="COPY",APPLY_TYPE2.SERIES="SERIES",APPLY_TYPE2.ONLY_FORMAT="ONLY_FORMAT",APPLY_TYPE2.NO_FORMAT="NO_FORMAT",APPLY_TYPE2))(APPLY_TYPE||{});const dateRule={type:DATA_TYPE.DATE,priority:1100,match:__name((cellData,accessor)=>{var _a2;if((typeof(cellData==null?void 0:cellData.v)=="number"||(cellData==null?void 0:cellData.t)===core.CellValueType.NUMBER)&&cellData.s){if(typeof cellData.s=="string"){const style=accessor.get(core.IUniverInstanceService).getFocusedUnit().getStyles().get(cellData.s),pattern=(_a2=style==null?void 0:style.n)==null?void 0:_a2.pattern;if(pattern)return engineNumfmt.numfmt.getInfo(pattern).isDate}else if(cellData.s.n&&engineNumfmt.numfmt.getInfo(cellData.s.n.pattern).isDate)return!0}return!1},"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.DATE,"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{const{data}=dataWithIndex;return direction===core.Direction.LEFT||direction===core.Direction.UP?(data.reverse(),fillSeries(data,len,direction).reverse()):fillSeries(data,len,direction)}}},numberRule={type:DATA_TYPE.NUMBER,priority:1e3,match:__name(cellData=>typeof(cellData==null?void 0:cellData.v)=="number"||(cellData==null?void 0:cellData.t)===core.CellValueType.NUMBER,"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.NUMBER,"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{const{data}=dataWithIndex;return direction===core.Direction.LEFT||direction===core.Direction.UP?(data.reverse(),fillSeries(data,len,direction).reverse()):fillSeries(data,len,direction)}}},otherRule={type:DATA_TYPE.OTHER,priority:0,match:__name(()=>!0,"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.OTHER,"isContinue")},extendNumberRule={type:DATA_TYPE.EXTEND_NUMBER,priority:900,match:__name(cellData=>matchExtendNumber(`${cellData==null?void 0:cellData.v}`||"").isExtendNumber,"match"),isContinue:__name((prev,cur)=>{var _a2;if(prev.type===DATA_TYPE.EXTEND_NUMBER){const{beforeTxt,afterTxt}=matchExtendNumber(`${(_a2=prev.cellData)==null?void 0:_a2.v}`||""),{beforeTxt:curBeforeTxt,afterTxt:curAfterTxt}=matchExtendNumber(`${cur==null?void 0:cur.v}`||"");if(beforeTxt===curBeforeTxt&&afterTxt===curAfterTxt)return!0}return!1},"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{var _a2;const{data}=dataWithIndex,isReverse=direction===core.Direction.UP||direction===core.Direction.LEFT;let step;if(data.length===1)return step=isReverse?-1:1,reverseIfNeed(fillExtendNumber(data,len,step),isReverse);const dataNumArr=[];for(let i=0;i<data.length;i++){const txt=`${(_a2=data[i])==null?void 0:_a2.v}`;txt&&dataNumArr.push(Number(matchExtendNumber(txt).matchTxt))}return isReverse&&(data.reverse(),dataNumArr.reverse()),isEqualDiff(dataNumArr)?(step=dataNumArr[1]-dataNumArr[0],reverseIfNeed(fillExtendNumber(data,len,step),isReverse)):fillCopy(data,len)}}},chnNumberRule={type:DATA_TYPE.CHN_NUMBER,priority:830,match:__name(cellData=>!!isChnNumber(`${cellData==null?void 0:cellData.v}`||""),"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.CHN_NUMBER,"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{var _a2,_b2,_c2;const{data}=dataWithIndex,isReverse=direction===core.Direction.LEFT||direction===core.Direction.UP;if(data.length===1){const formattedValue=`${(_a2=data[0])==null?void 0:_a2.v}`;let step;return isReverse?step=-1:step=1,formattedValue&&(formattedValue==="日"||chineseToNumber(formattedValue)<7)?reverseIfNeed(fillChnWeek(data,len,step),isReverse):reverseIfNeed(fillChnNumber(data,len,step),isReverse)}let hasWeek=!1;for(let i=0;i<data.length;i++)if(((_b2=data[i])==null?void 0:_b2.v)==="日"){hasWeek=!0;break}const dataNumArr=[];let weekIndex=0;for(let i=0;i<data.length;i++){const formattedValue=`${(_c2=data[i])==null?void 0:_c2.v}`;formattedValue==="日"?i===0?dataNumArr.push(0):(weekIndex++,dataNumArr.push(weekIndex*7)):hasWeek&&chineseToNumber(formattedValue)>0&&chineseToNumber(formattedValue)<7?dataNumArr.push(chineseToNumber(formattedValue)+weekIndex*7):dataNumArr.push(chineseToNumber(formattedValue))}if(isReverse&&(data.reverse(),dataNumArr.reverse()),isEqualDiff(dataNumArr)){if(hasWeek||dataNumArr[dataNumArr.length-1]<6&&dataNumArr[0]>0||dataNumArr[0]<6&&dataNumArr[dataNumArr.length-1]>0){const step2=dataNumArr[1]-dataNumArr[0];return reverseIfNeed(fillChnWeek(data,len,step2),isReverse)}const step=dataNumArr[1]-dataNumArr[0];return reverseIfNeed(fillChnNumber(data,len,step),isReverse)}return fillCopy(data,len)}}},chnWeek2Rule={type:DATA_TYPE.CHN_WEEK2,priority:820,match:__name(cellData=>!!isChnWeek2(`${cellData==null?void 0:cellData.v}`||""),"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.CHN_WEEK2,"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{var _a2;const{data}=dataWithIndex,isReverse=direction===core.Direction.LEFT||direction===core.Direction.UP;if(data.length===1){let step;return isReverse?step=-1:step=1,reverseIfNeed(fillChnWeek(data,len,step,1),isReverse)}const dataNumArr=[];let weekIndex=0;for(let i=0;i<data.length;i++){const formattedValue=`${(_a2=data[i])==null?void 0:_a2.v}`,lastTxt=formattedValue==null?void 0:formattedValue.substr(formattedValue.length-1,1);formattedValue==="周日"?i===0?dataNumArr.push(0):(weekIndex++,dataNumArr.push(weekIndex*7)):dataNumArr.push(chineseToNumber(lastTxt)+weekIndex*7)}if(isReverse&&(data.reverse(),dataNumArr.reverse()),isEqualDiff(dataNumArr)){const step=dataNumArr[1]-dataNumArr[0];return reverseIfNeed(fillChnWeek(data,len,step,1),isReverse)}return fillCopy(data,len)}}},chnWeek3Rule={type:DATA_TYPE.CHN_WEEK3,priority:810,match:__name(cellData=>isChnWeek3(`${cellData==null?void 0:cellData.v}`||""),"match"),isContinue:__name((prev,cur)=>prev.type===DATA_TYPE.CHN_WEEK3,"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{var _a2;const{data}=dataWithIndex,isReverse=direction===core.Direction.LEFT||direction===core.Direction.UP;if(data.length===1){let step;return isReverse?step=-1:step=1,reverseIfNeed(fillChnWeek(data,len,step,2),isReverse)}const dataNumArr=[];let weekIndex=0;for(let i=0;i<data.length;i++){const formattedValue=`${(_a2=data[i])==null?void 0:_a2.v}`;if(formattedValue){const lastTxt=formattedValue.substr(formattedValue.length-1,1);formattedValue==="星期日"?i===0?dataNumArr.push(0):(weekIndex++,dataNumArr.push(weekIndex*7)):dataNumArr.push(chineseToNumber(lastTxt)+weekIndex*7)}}if(isReverse&&(data.reverse(),dataNumArr.reverse()),isEqualDiff(dataNumArr)){const step=dataNumArr[1]-dataNumArr[0];return reverseIfNeed(fillChnWeek(data,len,step,2),isReverse)}return fillCopy(data,len)}}},loopSeriesRule={type:DATA_TYPE.LOOP_SERIES,priority:800,match:__name(cellData=>isLoopSeries(`${cellData==null?void 0:cellData.v}`||""),"match"),isContinue:__name((prev,cur)=>{var _a2;return prev.type===DATA_TYPE.LOOP_SERIES?getLoopSeriesInfo(`${(_a2=prev.cellData)==null?void 0:_a2.v}`||"").name===getLoopSeriesInfo(`${cur==null?void 0:cur.v}`||"").name:!1},"isContinue"),applyFunctions:{[APPLY_TYPE.SERIES]:(dataWithIndex,len,direction)=>{var _a2,_b2;const{data}=dataWithIndex,isReverse=direction===core.Direction.LEFT||direction===core.Direction.UP,{series}=getLoopSeriesInfo(`${(_a2=data[0])==null?void 0:_a2.v}`||"");if(data.length===1){let step;return isReverse?step=-1:step=1,reverseIfNeed(fillLoopSeries(data,len,step,series),isReverse)}const dataNumArr=[];let cycleIndex=0;for(let i=0;i<data.length;i++){const formattedValue=`${(_b2=data[i])==null?void 0:_b2.v}`;formattedValue&&(formattedValue===series[0]?i===0?dataNumArr.push(0):(cycleIndex++,dataNumArr.push(cycleIndex*series.length)):dataNumArr.push(series.indexOf(formattedValue)+cycleIndex*7))}if(isReverse&&(data.reverse(),dataNumArr.reverse()),isEqualDiff(dataNumArr)){const step=dataNumArr[1]-dataNumArr[0];return reverseIfNeed(fillLoopSeries(data,len,step,series),isReverse)}return fillCopy(data,len)}}};function reverseIfNeed(data,reverse){return reverse?data.reverse():data}__name(reverseIfNeed,"reverseIfNeed");var __defProp$P=Object.defineProperty,__getOwnPropDesc$P=Object.getOwnPropertyDescriptor,__decorateClass$P=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$P(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$P(target,key,result),result},"__decorateClass$P"),__decorateParam$O=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$O");exports2.AutoFillService=(_f=class extends core.Disposable{constructor(_univerInstanceService,_selectionManagerService,_commandService,_undoRedoService){super();__publicField(this,"_rules",[]);__publicField(this,"_hooks",[]);__publicField(this,"_applyType$",new rxjs.BehaviorSubject(APPLY_TYPE.SERIES));__publicField(this,"_isFillingStyle",!0);__publicField(this,"_autoFillLocation$",new rxjs.BehaviorSubject(null));__publicField(this,"autoFillLocation$",this._autoFillLocation$.asObservable());__publicField(this,"_showMenu$",new rxjs.BehaviorSubject(!1));__publicField(this,"showMenu$",this._showMenu$.asObservable());__publicField(this,"_direction",core.Direction.DOWN);__publicField(this,"applyType$",this._applyType$.asObservable());__publicField(this,"_menu$",new rxjs.BehaviorSubject([{label:"autoFill.copy",value:APPLY_TYPE.COPY,disable:!1},{label:"autoFill.series",value:APPLY_TYPE.SERIES,disable:!1},{label:"autoFill.formatOnly",value:APPLY_TYPE.ONLY_FORMAT,disable:!1},{label:"autoFill.noFormat",value:APPLY_TYPE.NO_FORMAT,disable:!1}]));__publicField(this,"menu$",this._menu$.asObservable());this._univerInstanceService=_univerInstanceService,this._selectionManagerService=_selectionManagerService,this._commandService=_commandService,this._undoRedoService=_undoRedoService,this._init()}_init(){this._rules=[dateRule,numberRule,extendNumberRule,chnNumberRule,chnWeek2Rule,chnWeek3Rule,loopSeriesRule,otherRule].sort((a,b)=>b.priority-a.priority),this._isFillingStyle=!0}getOneByPriority(items){return items.length<=0?[]:[items.reduce((maxItem,currentItem)=>(currentItem.priority||0)>(maxItem.priority||0)?currentItem:maxItem,items[0])]}addHook(hook){if(this._hooks.find(h=>h.id===hook.id))throw new Error(`Add hook failed, hook id '${hook.id}' already exist!`);return hook.priority===void 0&&(hook.priority=0),hook.type===void 0&&(hook.type=AutoFillHookType.Append),this._hooks.push(hook),core.toDisposable(()=>{const index=this._hooks.findIndex(item=>item===hook);index>-1&&this._hooks.splice(index,1)})}registerRule(rule){if(this._rules.find(r=>r.type===rule.type))throw new Error(`Registry rule failed, type '${rule.type}' already exist!`);const index=this._rules.findIndex(r=>r.priority<rule.priority);this._rules.splice(index===-1?this._rules.length:index,0,rule)}getRules(){return this._rules}getAllHooks(){return this._hooks}getActiveHooks(){const{source,target,unitId,subUnitId}=this.autoFillLocation||{};if(!source||!target||!unitId||!subUnitId)return[];const enabledHooks=this._hooks.filter(h=>{var _a2;return!((_a2=h.disable)!=null&&_a2.call(h,{source,target,unitId,subUnitId},this._direction,this.applyType))}),onlyHooks=enabledHooks.filter(h=>h.type===AutoFillHookType.Only);if(onlyHooks.length>0)return this.getOneByPriority(onlyHooks);const defaultHooks=this.getOneByPriority(enabledHooks.filter(h=>h.type===AutoFillHookType.Default)),appendHooks=enabledHooks.filter(h=>h.type===AutoFillHookType.Append)||[];return[...defaultHooks,...appendHooks]}get applyType(){return this._applyType$.getValue()}set applyType(type){this._applyType$.next(type)}get menu(){return this._menu$.getValue()}get direction(){return this._direction}set direction(direction){this._direction=direction}isFillingStyle(){return this._isFillingStyle}setFillingStyle(isFillingStyle){this._isFillingStyle=isFillingStyle}get autoFillLocation(){return this._autoFillLocation$.getValue()}set autoFillLocation(location){this._autoFillLocation$.next(location)}setDisableApplyType(type,disable){this._menu$.next(this._menu$.getValue().map(item=>item.value===type?{...item,disable}:item))}setShowMenu(show){this._showMenu$.next(show)}fillData(triggerUnitId,triggerSubUnitId){var _a2,_b2,_c2;const{source,target,unitId=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId(),subUnitId=(_a2=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:_a2.getSheetId()}=this.autoFillLocation||{},direction=this.direction;if(!source||!target||unitId!==triggerUnitId||subUnitId!==triggerSubUnitId)return!1;const selection=core.Rectangle.union(discreteRangeToRange(source),discreteRangeToRange(target)),applyType=this.applyType,activeHooks=this.getActiveHooks();this._commandService.syncExecuteCommand(sheets.SetSelectionsOperation.id,{selections:[{primary:{...(_c2=(_b2=this._selectionManagerService.getCurrentLastSelection())==null?void 0:_b2.primary)!=null?_c2:selection},range:{...selection,rangeType:core.RANGE_TYPE.NORMAL}}],unitId,subUnitId});const undos=[],redos=[];return activeHooks.forEach(hook=>{var _a3;const{undos:hookUndos,redos:hookRedos}=((_a3=hook.onFillData)==null?void 0:_a3.call(hook,{source,target,unitId,subUnitId},direction,applyType))||{};hookUndos&&undos.push(...hookUndos),hookRedos&&redos.push(...hookRedos)}),redos.every(m2=>this._commandService.syncExecuteCommand(m2.id,m2.params))&&this._undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:undos,redoMutations:redos}),activeHooks.forEach(hook=>{var _a3;(_a3=hook.onAfterFillData)==null||_a3.call(hook,{source,target,unitId,subUnitId},direction,applyType)}),this.setShowMenu(!0),!0}},__name(_f,"AutoFillService"),_f),exports2.AutoFillService=__decorateClass$P([core.OnLifecycle(core.LifecycleStages.Rendered,exports2.AutoFillService),__decorateParam$O(0,core.Inject(core.IUniverInstanceService)),__decorateParam$O(1,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$O(2,core.ICommandService),__decorateParam$O(3,core.IUndoRedoService)],exports2.AutoFillService);const IAutoFillService=core.createIdentifier("univer.auto-fill-service"),AutoFillCommand={type:core.CommandType.COMMAND,id:"sheet.command.auto-fill",handler:__name(async(accessor,params)=>accessor.get(IAutoFillService).fillData(params.unitId,params.subUnitId),"handler")},AutoClearContentCommand={id:"sheet.command.auto-clear-content",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{unitId,subUnitId}=target,{clearRange,selectionRange}=params,clearMutationParams={subUnitId,unitId,cellValue:sheets.generateNullCellValue([clearRange])},undoClearMutationParams=sheets.SetRangeValuesUndoMutationFactory(accessor,clearMutationParams),{startColumn,startRow}=selectionRange;return commandService.executeCommand(sheets.SetSelectionsOperation.id,{selections:[{primary:{startColumn,startRow,endColumn:startColumn,endRow:startRow,actualRow:startRow,actualColumn:startColumn,isMerge:!1,isMergedMainCell:!1},range:{...selectionRange}}],unitId,subUnitId}),commandService.syncExecuteCommand(sheets.SetRangeValuesMutation.id,clearMutationParams)?(undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:[{id:sheets.SetRangeValuesMutation.id,params:undoClearMutationParams}],redoMutations:[{id:sheets.SetRangeValuesMutation.id,params:clearMutationParams}]}),!0):!1},"handler")},RANGE_MOVE_PERMISSION_CHECK=core.createInterceptorKey("rangeMovePermissionCheck"),RANGE_FILL_PERMISSION_CHECK=core.createInterceptorKey("rangeFillPermissionCheck"),_SelectionRenderModel=class _SelectionRenderModel{constructor(){__publicField(this,"_startColumn",-1);__publicField(this,"_startRow",-1);__publicField(this,"_endColumn",-1);__publicField(this,"_endRow",-1);__publicField(this,"_startX",0);__publicField(this,"_startY",0);__publicField(this,"_endX",0);__publicField(this,"_endY",0);__publicField(this,"_primary");__publicField(this,"_rangeType",core.RANGE_TYPE.NORMAL)}get startColumn(){return this._startColumn}get startRow(){return this._startRow}get endColumn(){return this._endColumn}get endRow(){return this._endRow}get startX(){return this._startX}get startY(){return this._startY}get endX(){return this._endX}get endY(){return this._endY}get currentCell(){return this._primary}get rangeType(){return this._rangeType}isEqual(rangeWithCoord){const{startColumn,startRow,endColumn,endRow}=this,{startColumn:newStartColumn,startRow:newStartRow,endColumn:newEndColumn,endRow:newEndRow}=rangeWithCoord;return startColumn===newStartColumn&&startRow===newStartRow&&endColumn===newEndColumn&&endRow===newEndRow}isInclude(rangeWithCoord){const{startColumn,startRow,endColumn,endRow}=this,{startColumn:newStartColumn,startRow:newStartRow,endColumn:newEndColumn,endRow:newEndRow}=rangeWithCoord;return!(newEndColumn<startColumn||newStartColumn>endColumn||newStartRow>endRow||newEndRow<startRow)}highlightToSelection(){if(this._primary)return core.makeCellToSelection(this._primary)}getRange(){return{startColumn:this._startColumn,startRow:this._startRow,endColumn:this._endColumn,endRow:this._endRow,startX:this._startX,startY:this._startY,endX:this._endX,endY:this._endY,rangeType:this.rangeType}}getCell(){return this._primary}getRangeType(){return this._rangeType}setRangeType(rangeType){this._rangeType=rangeType}getValue(){return{rangeWithCoord:this.getRange(),primaryWithCoord:this._primary}}setValue(newSelectionRange,currentCell){const{startColumn,startRow,endColumn,endRow,startX,startY,endX,endY,rangeType}=newSelectionRange;this._startColumn=startColumn,this._startRow=startRow,this._endColumn=endColumn,this._endRow=endRow,this._startX=startX,this._startY=startY,this._endX=endX,this._endY=endY,rangeType&&(this._rangeType=rangeType),this.setCurrentCell(currentCell)}setCurrentCell(currentCell){currentCell&&(this._primary=currentCell)}clearCurrentCell(){this._primary=null}};__name(_SelectionRenderModel,"SelectionRenderModel");let SelectionRenderModel=_SelectionRenderModel;var SELECTION_MANAGER_KEY=(SELECTION_MANAGER_KEY2=>(SELECTION_MANAGER_KEY2.Selection="__SpreadsheetSelectionShape__",SELECTION_MANAGER_KEY2.top="__SpreadsheetSelectionTopControl__",SELECTION_MANAGER_KEY2.bottom="__SpreadsheetSelectionBottomControl__",SELECTION_MANAGER_KEY2.left="__SpreadsheetSelectionShapeLeftControl__",SELECTION_MANAGER_KEY2.right="__SpreadsheetSelectionShapeRightControl__",SELECTION_MANAGER_KEY2.backgroundTop="__SpreadsheetSelectionBackgroundControlTop__",SELECTION_MANAGER_KEY2.backgroundMiddleLeft="__SpreadsheetSelectionBackgroundControlMiddleLeft__",SELECTION_MANAGER_KEY2.backgroundMiddleRight="__SpreadsheetSelectionBackgroundControlMiddleRight__",SELECTION_MANAGER_KEY2.backgroundBottom="__SpreadsheetSelectionBackgroundControlBottom__",SELECTION_MANAGER_KEY2.fill="__SpreadsheetSelectionFillControl__",SELECTION_MANAGER_KEY2.fillTopLeft="__SpreadsheetSelectionFillControlTopLeft__",SELECTION_MANAGER_KEY2.fillBottomRight="__SpreadsheetSelectionFillControlBottomRight__",SELECTION_MANAGER_KEY2.fillTopLeftInner="__SpreadsheetSelectionFillControlTopLeftInner__",SELECTION_MANAGER_KEY2.fillBottomRightInner="__SpreadsheetSelectionFillControlBottomRightInner__",SELECTION_MANAGER_KEY2.lineMain="__SpreadsheetDragLineMainControl__",SELECTION_MANAGER_KEY2.lineContent="__SpreadsheetDragLineContentControl__",SELECTION_MANAGER_KEY2.line="__SpreadsheetDragLineControl__",SELECTION_MANAGER_KEY2.dash="__SpreadsheetDragDashControl__",SELECTION_MANAGER_KEY2.rowHeaderBackground="__SpreadSheetSelectionRowHeaderBackground__",SELECTION_MANAGER_KEY2.rowHeaderBorder="__SpreadSheetSelectionRowHeaderBorder__",SELECTION_MANAGER_KEY2.rowHeaderGroup="__SpreadSheetSelectionRowHeaderGroup__",SELECTION_MANAGER_KEY2.columnHeaderBackground="__SpreadSheetSelectionColumnHeaderBackground__",SELECTION_MANAGER_KEY2.columnHeaderBorder="__SpreadSheetSelectionColumnHeaderBorder__",SELECTION_MANAGER_KEY2.columnHeaderGroup="__SpreadSheetSelectionColumnHeaderGroup__",SELECTION_MANAGER_KEY2.topLeftWidget="__SpreadSheetSelectionTopLeftWidget__",SELECTION_MANAGER_KEY2.topCenterWidget="__SpreadSheetSelectionTopCenterWidget__",SELECTION_MANAGER_KEY2.topRightWidget="__SpreadSheetSelectionTopRightWidget__",SELECTION_MANAGER_KEY2.middleLeftWidget="__SpreadSheetSelectionMiddleLeftWidget__",SELECTION_MANAGER_KEY2.middleRightWidget="__SpreadSheetSelectionMiddleRightWidget__",SELECTION_MANAGER_KEY2.bottomLeftWidget="__SpreadSheetSelectionBottomLeftWidget__",SELECTION_MANAGER_KEY2.bottomCenterWidget="__SpreadSheetSelectionBottomCenterWidget__",SELECTION_MANAGER_KEY2.bottomRightWidget="__SpreadSheetSelectionBottomRightWidget__",SELECTION_MANAGER_KEY2))(SELECTION_MANAGER_KEY||{});const SELECTION_TITLE_HIGHLIGHT_ALPHA=.3,_SelectionControl=class _SelectionControl extends core.Disposable{constructor(_scene,_zIndex,_isHeaderHighlight=!0,_themeService){super();__publicField(this,"_leftControl");__publicField(this,"_rightControl");__publicField(this,"_topControl");__publicField(this,"_bottomControl");__publicField(this,"_backgroundControlTop");__publicField(this,"_backgroundControlBottom");__publicField(this,"_backgroundControlMiddleLeft");__publicField(this,"_backgroundControlMiddleRight");__publicField(this,"_fillControl");__publicField(this,"_selectionShapeGroup");__publicField(this,"_rowHeaderBackground");__publicField(this,"_rowHeaderBorder");__publicField(this,"_rowHeaderGroup");__publicField(this,"_rowHeaderHighlight");__publicField(this,"_columnHeaderBackground");__publicField(this,"_columnHeaderBorder");__publicField(this,"_columnHeaderGroup");__publicField(this,"_columnHeaderHighlight");__publicField(this,"_topLeftWidget");__publicField(this,"_topCenterWidget");__publicField(this,"_topRightWidget");__publicField(this,"_middleLeftWidget");__publicField(this,"_middleRightWidget");__publicField(this,"_bottomLeftWidget");__publicField(this,"_bottomCenterWidget");__publicField(this,"_bottomRightWidget");__publicField(this,"_dashRect");__publicField(this,"_selectionModel");__publicField(this,"_selectionStyle");__publicField(this,"_rowHeaderWidth",0);__publicField(this,"_columnHeaderHeight",0);__publicField(this,"_widgetRects",[]);__publicField(this,"_dispose$",new rxjs.BehaviorSubject(this));__publicField(this,"dispose$",this._dispose$.asObservable());__publicField(this,"selectionMoving$",new rxjs.Subject);__publicField(this,"selectionMoved$",new rxjs.Subject);__publicField(this,"selectionScaling$",new rxjs.Subject);__publicField(this,"selectionScaled$",new rxjs.Subject);__publicField(this,"selectionFilling$",new rxjs.Subject);__publicField(this,"_selectionFilled$",new rxjs.Subject);__publicField(this,"selectionFilled$",this._selectionFilled$.asObservable());__publicField(this,"_defaultStyle");__publicField(this,"_currentStyle");__publicField(this,"_isHelperSelection",!0);__publicField(this,"_antLineOffset",0);__publicField(this,"_antRequestNewFrame",-1);this._scene=_scene,this._zIndex=_zIndex,this._isHeaderHighlight=_isHeaderHighlight,this._themeService=_themeService,this._initialize()}get zIndex(){return this._zIndex}get leftControl(){return this._leftControl}get rightControl(){return this._rightControl}get topControl(){return this._topControl}get bottomControl(){return this._bottomControl}get fillControl(){return this._fillControl}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._selectionModel}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 selectionStyle(){return this._selectionStyle}set selectionStyle(style){this._selectionStyle=style}get selectionModel(){return this._selectionModel}set selectionModel(model){this._selectionModel=model}get defaultStyle(){return this._defaultStyle}set defaultStyle(style){this._defaultStyle=style}get dashRect(){return this._dashRect}get currentStyle(){return this._currentStyle}set currentStyle(style){this._currentStyle=style}get isHelperSelection(){return this._isHelperSelection}get rowHeaderWidth(){return this._rowHeaderWidth}set rowHeaderWidth(width){this._rowHeaderWidth=width}get columnHeaderHeight(){return this._columnHeaderHeight}set columnHeaderHeight(height){this._columnHeaderHeight=height}setEvent(state){this.leftControl.evented=state,this.rightControl.evented=state,this.topControl.evented=state,this.bottomControl.evented=state}refreshSelectionFilled(val){this._selectionFilled$.next(val)}updateStyle(style){this._updateControl(style,this._rowHeaderWidth,this._columnHeaderHeight)}updateRange(range){this._selectionModel.setValue(range),this._updateControl(null,this._rowHeaderWidth,this._columnHeaderHeight)}update(newSelectionRange,rowHeaderWidth=0,columnHeaderHeight=0,style,highlight){this._selectionModel.setValue(newSelectionRange,highlight),style==null&&(style=this._selectionStyle),this._updateControl(style,rowHeaderWidth,columnHeaderHeight)}updateCurrCell(highlight){this._selectionModel.setCurrentCell(highlight)}clearHighlight(){this._selectionModel.clearCurrentCell(),this._updateControl(this._selectionStyle,this._rowHeaderWidth,this._columnHeaderHeight)}getScene(){return this._scene}dispose(){var _a2,_b2,_c2,_d2,_e2,_f2,_g2,_h2,_i2,_j2,_k2,_l2,_m2,_n2,_o2,_p2,_q2,_r2,_s2,_t2,_u2,_v2,_w2,_x2;(_a2=this._leftControl)==null||_a2.dispose(),(_b2=this._rightControl)==null||_b2.dispose(),(_c2=this._topControl)==null||_c2.dispose(),(_d2=this._bottomControl)==null||_d2.dispose(),(_e2=this._backgroundControlTop)==null||_e2.dispose(),(_f2=this._backgroundControlMiddleLeft)==null||_f2.dispose(),(_g2=this._backgroundControlMiddleRight)==null||_g2.dispose(),(_h2=this._backgroundControlBottom)==null||_h2.dispose(),this._fillControl.dispose(),(_i2=this._selectionShapeGroup)==null||_i2.dispose(),(_j2=this._rowHeaderBackground)==null||_j2.dispose(),(_k2=this._rowHeaderBorder)==null||_k2.dispose(),(_l2=this._rowHeaderGroup)==null||_l2.dispose(),(_m2=this._rowHeaderBackground)==null||_m2.dispose(),(_n2=this._columnHeaderBackground)==null||_n2.dispose(),(_o2=this._columnHeaderBorder)==null||_o2.dispose(),(_p2=this._columnHeaderGroup)==null||_p2.dispose(),(_q2=this._topLeftWidget)==null||_q2.dispose(),(_r2=this._topCenterWidget)==null||_r2.dispose(),(_s2=this._topRightWidget)==null||_s2.dispose(),(_t2=this._middleLeftWidget)==null||_t2.dispose(),(_u2=this._middleRightWidget)==null||_u2.dispose(),(_v2=this._bottomLeftWidget)==null||_v2.dispose(),(_w2=this._bottomCenterWidget)==null||_w2.dispose(),(_x2=this._bottomRightWidget)==null||_x2.dispose(),super.dispose(),this._dispose$.next(this),this._dispose$.complete()}getCurrentCellInfo(){const currentCell=this.model.currentCell;if(currentCell){let currentRangeData;if(currentCell.isMerged){const mergeInfo=currentCell.mergeInfo;currentRangeData={startRow:mergeInfo.startRow,endRow:mergeInfo.endRow,startColumn:mergeInfo.startColumn,endColumn:mergeInfo.endColumn,startX:mergeInfo.startX,endX:mergeInfo.endX,startY:mergeInfo.startY,endY:mergeInfo.endY}}else{const{actualRow,actualColumn,startX,endX,startY,endY}=currentCell;currentRangeData={startRow:actualRow,endRow:actualRow,startColumn:actualColumn,endColumn:actualColumn,startX,endX,startY,endY}}return currentRangeData}}getValue(){return{...this._selectionModel.getValue(),style:this._selectionStyle}}getRange(){return this._selectionModel.getValue().rangeWithCoord}enableHelperSelection(){this._isHelperSelection=!0}disableHelperSelection(){this._isHelperSelection=!1}updateStyleId(id){this._selectionStyle!=null&&(this._selectionStyle.id=id)}_updateControl(style,rowHeaderWidth,columnHeaderHeight){const{startX,startY,endX,endY}=this._selectionModel,defaultStyle=this._defaultStyle;style==null&&(style=defaultStyle),this._currentStyle=style;const{stroke=defaultStyle.stroke,widgets=defaultStyle.widgets,hasAutoFill=defaultStyle.hasAutoFill,AutofillStroke=defaultStyle.AutofillStroke,strokeDash,isAnimationDash}=style;let{strokeWidth=defaultStyle.strokeWidth,AutofillSize=defaultStyle.AutofillSize,AutofillStrokeWidth=defaultStyle.AutofillStrokeWidth}=style;const scale=this._getScale(),leftAdjustWidth=(strokeWidth+sheets.SELECTION_CONTROL_BORDER_BUFFER_WIDTH)/2/scale;strokeWidth/=scale,AutofillSize/=scale,AutofillStrokeWidth/=scale<1?1:scale;const borderBuffer=sheets.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/scale,fixOnePixelBlurOffset=engineRender.FIX_ONE_PIXEL_BLUR_OFFSET/scale;if(this.leftControl.transformByState({height:endY-startY,left:-leftAdjustWidth+fixOnePixelBlurOffset,width:strokeWidth,strokeWidth:borderBuffer,top:-borderBuffer/2+fixOnePixelBlurOffset}),this.leftControl.setProps({fill:stroke,stroke:sheets.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.rightControl.transformByState({height:endY-startY,left:endX-startX-leftAdjustWidth+fixOnePixelBlurOffset,width:strokeWidth,strokeWidth:borderBuffer,top:-borderBuffer/2+fixOnePixelBlurOffset}),this.rightControl.setProps({fill:stroke,stroke:sheets.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.topControl.transformByState({width:endX-startX+strokeWidth,top:-leftAdjustWidth+fixOnePixelBlurOffset,left:-leftAdjustWidth+fixOnePixelBlurOffset,height:strokeWidth,strokeWidth:borderBuffer}),this.topControl.setProps({fill:stroke,stroke:sheets.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.bottomControl.transformByState({width:endX-startX+strokeWidth,top:endY-startY-leftAdjustWidth+fixOnePixelBlurOffset,height:strokeWidth,left:-leftAdjustWidth+fixOnePixelBlurOffset,strokeWidth:borderBuffer}),this.bottomControl.setProps({fill:stroke,stroke:sheets.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),strokeDash==null)this.dashRect.hide(),this._stopAntLineAnimation();else{const dashRectBorderWidth=style.strokeWidth*2/scale;this.dashRect.transformByState({height:endY-startY,width:endX-startX,strokeWidth:dashRectBorderWidth,left:-dashRectBorderWidth/2+fixOnePixelBlurOffset,top:-dashRectBorderWidth/2+fixOnePixelBlurOffset}),this.dashRect.setProps({strokeDashArray:[0,strokeDash/scale]}),this._stopAntLineAnimation(),isAnimationDash!==!1&&this._startAntLineAnimation(),this.dashRect.show()}if(hasAutoFill===!0&&!this._hasWidgets(widgets)){const fillProps={fill:stroke,stroke:AutofillStroke,strokeScaleEnabled:!1},sizeState={width:AutofillSize-AutofillStrokeWidth,height:AutofillSize-AutofillStrokeWidth,left:endX-startX-AutofillSize/2+AutofillStrokeWidth/2-fixOnePixelBlurOffset,top:endY-startY-AutofillSize/2+AutofillStrokeWidth/2-fixOnePixelBlurOffset,strokeWidth:AutofillStrokeWidth};this.fillControl.setProps(fillProps),this.fillControl.transformByState(sizeState),this.fillControl.show()}else this.fillControl.hide();this._updateBackgroundControl(style),this._updateBackgroundTitle(style,rowHeaderWidth,columnHeaderHeight),this._updateWidgets(style),this.selectionShape.show(),this.selectionShape.translate(startX,startY),this._selectionStyle=style,this._rowHeaderWidth=rowHeaderWidth||0,this._columnHeaderHeight=columnHeaderHeight||0,this.selectionShape.makeDirtyNoDebounce(!0)}_initialize(){this._defaultStyle=sheets.getNormalSelectionStyle(this._themeService),this._selectionModel=new SelectionRenderModel;const zIndex=this._zIndex;this._leftControl=new engineRender.Rect("__SpreadsheetSelectionShapeLeftControl__"+zIndex,{zIndex}),this._rightControl=new engineRender.Rect("__SpreadsheetSelectionShapeRightControl__"+zIndex,{zIndex}),this._topControl=new engineRender.Rect("__SpreadsheetSelectionTopControl__"+zIndex,{zIndex}),this._bottomControl=new engineRender.Rect("__SpreadsheetSelectionBottomControl__"+zIndex,{zIndex}),this._backgroundControlTop=new engineRender.Rect("__SpreadsheetSelectionBackgroundControlTop__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._backgroundControlBottom=new engineRender.Rect("__SpreadsheetSelectionBackgroundControlBottom__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._backgroundControlMiddleLeft=new engineRender.Rect("__SpreadsheetSelectionBackgroundControlMiddleLeft__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._backgroundControlMiddleRight=new engineRender.Rect("__SpreadsheetSelectionBackgroundControlMiddleRight__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._fillControl=new engineRender.Rect("__SpreadsheetSelectionFillControl__"+zIndex,{zIndex:zIndex+1}),this._dashRect=new engineRender.DashedRect("__SpreadsheetDragDashControl__"+zIndex,{zIndex:zIndex+2,evented:!1,stroke:"#fff"});const shapes=[this._fillControl,this._leftControl,this._rightControl,this._topControl,this._bottomControl,this._backgroundControlTop,this._backgroundControlMiddleLeft,this._backgroundControlMiddleRight,this._backgroundControlBottom,this._dashRect];this._widgetRects=this._initialWidget(),this._selectionShapeGroup=new engineRender.Group("__SpreadsheetSelectionShape__"+zIndex,...shapes,...this._widgetRects),this._selectionShapeGroup.hide(),this._selectionShapeGroup.evented=!1,this._selectionShapeGroup.zIndex=zIndex;const scene=this.getScene();scene.addObject(this._selectionShapeGroup,SHEET_COMPONENT_SELECTION_LAYER_INDEX),this.disposeWithMe(core.toDisposable(scene.onTransformChange$.subscribeEvent(state=>{state.type===engineRender.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale&&this._updateControl(this._currentStyle,this._rowHeaderWidth,this._columnHeaderHeight)}))),this._initialTitle()}_initialTitle(){const zIndex=this._zIndex;this._rowHeaderBackground=new engineRender.Rect("__SpreadSheetSelectionRowHeaderBackground__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._rowHeaderBorder=new engineRender.Rect("__SpreadSheetSelectionRowHeaderBorder__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._rowHeaderGroup=new engineRender.Group("__SpreadSheetSelectionRowHeaderGroup__"+zIndex,this._rowHeaderBackground,this._rowHeaderBorder),this._rowHeaderGroup.hide(),this._rowHeaderGroup.evented=!1,this._rowHeaderGroup.zIndex=zIndex,this._columnHeaderBackground=new engineRender.Rect("__SpreadSheetSelectionColumnHeaderBackground__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._columnHeaderBorder=new engineRender.Rect("__SpreadSheetSelectionColumnHeaderBorder__"+zIndex,{zIndex:zIndex-1,evented:!1}),this._columnHeaderGroup=new engineRender.Group("__SpreadSheetSelectionColumnHeaderGroup__"+zIndex,this._columnHeaderBackground,this._columnHeaderBorder),this._columnHeaderGroup.hide(),this._columnHeaderGroup.evented=!1,this._columnHeaderGroup.zIndex=zIndex,this.getScene().addObjects([this._rowHeaderGroup,this._columnHeaderGroup],SHEET_COMPONENT_HEADER_SELECTION_LAYER_INDEX)}_initialWidget(){const zIndex=this._zIndex;return this._topLeftWidget=new engineRender.Rect("__SpreadSheetSelectionTopLeftWidget__"+zIndex,{zIndex:zIndex+1}),this._topCenterWidget=new engineRender.Rect("__SpreadSheetSelectionTopCenterWidget__"+zIndex,{zIndex:zIndex+1}),this._topRightWidget=new engineRender.Rect("__SpreadSheetSelectionTopRightWidget__"+zIndex,{zIndex:zIndex+1}),this._middleLeftWidget=new engineRender.Rect("__SpreadSheetSelectionMiddleLeftWidget__"+zIndex,{zIndex:zIndex+1}),this._middleRightWidget=new engineRender.Rect("__SpreadSheetSelectionMiddleRightWidget__"+zIndex,{zIndex:zIndex+1}),this._bottomLeftWidget=new engineRender.Rect("__SpreadSheetSelectionBottomLeftWidget__"+zIndex,{zIndex:zIndex+1}),this._bottomCenterWidget=new engineRender.Rect("__SpreadSheetSelectionBottomCenterWidget__"+zIndex,{zIndex:zIndex+1}),this._bottomRightWidget=new engineRender.Rect("__SpreadSheetSelectionBottomRightWidget__"+zIndex,{zIndex:zIndex+1}),[this._topLeftWidget,this._topCenterWidget,this._topRightWidget,this._middleLeftWidget,this._middleRightWidget,this._bottomLeftWidget,this._bottomCenterWidget,this._bottomRightWidget]}_updateBackgroundTitle(style,rowHeaderWidth,columnHeaderHeight){const{startX,startY,endX,endY,rangeType}=this._selectionModel,defaultStyle=this._defaultStyle;style==null&&(style=defaultStyle);const scale=this._getScale(),{stroke,hasRowHeader,rowHeaderFill=defaultStyle.rowHeaderFill,rowHeaderStroke=defaultStyle.rowHeaderStroke,hasColumnHeader,columnHeaderFill=defaultStyle.columnHeaderFill,columnHeaderStroke=defaultStyle.columnHeaderStroke}=style;let{rowHeaderStrokeWidth=defaultStyle.rowHeaderStrokeWidth,columnHeaderStrokeWidth=defaultStyle.columnHeaderStrokeWidth}=style;if(rowHeaderStrokeWidth/=scale,columnHeaderStrokeWidth/=scale,hasColumnHeader===!0){let highlightTitleColor=columnHeaderFill;this._isHeaderHighlight&&rangeType===core.RANGE_TYPE.COLUMN&&(highlightTitleColor=new core.ColorKit(stroke).setAlpha(SELECTION_TITLE_HIGHLIGHT_ALPHA).toString()),this._columnHeaderBackground.setProps({fill:highlightTitleColor}),this._columnHeaderBackground.resize(endX-startX,columnHeaderHeight),this._columnHeaderBorder.setProps({fill:columnHeaderStroke}),this._columnHeaderBorder.transformByState({width:endX-startX,height:columnHeaderStrokeWidth,top:columnHeaderHeight-columnHeaderStrokeWidth+1/scale}),this._columnHeaderGroup.show(),this._columnHeaderGroup.translate(startX,0)}else this._columnHeaderGroup.hide();if(this._columnHeaderGroup.makeDirty(!0),hasRowHeader===!0){let highlightTitleColor=rowHeaderFill;this._isHeaderHighlight&&rangeType===core.RANGE_TYPE.ROW&&(highlightTitleColor=new core.ColorKit(stroke).setAlpha(SELECTION_TITLE_HIGHLIGHT_ALPHA).toString()),this._rowHeaderBackground.setProps({fill:highlightTitleColor}),this._rowHeaderBackground.resize(rowHeaderWidth,endY-startY),this._rowHeaderBorder.setProps({fill:rowHeaderStroke}),this._rowHeaderBorder.transformByState({width:rowHeaderStrokeWidth,height:endY-startY,left:rowHeaderWidth-rowHeaderStrokeWidth+1/scale}),this._rowHeaderGroup.show(),this._rowHeaderGroup.translate(0,startY)}else this._rowHeaderGroup.hide();this._rowHeaderGroup.makeDirty(!0)}_updateBackgroundControl(style){const{startX,startY,endX,endY}=this._selectionModel,defaultStyle=this._defaultStyle;style==null&&(style=defaultStyle);const scale=this._getScale(),{fill=defaultStyle.fill}=style;let{strokeWidth=defaultStyle.strokeWidth}=style;strokeWidth/=scale;const highlightSelection=this._selectionModel.highlightToSelection();if(!highlightSelection){this._backgroundControlTop.resize(endX-startX,endY-startY),this._backgroundControlTop.setProps({fill}),this._backgroundControlBottom.resize(0,0),this._backgroundControlMiddleLeft.resize(0,0),this._backgroundControlMiddleRight.resize(0,0);return}const{startX:h_startX,startY:h_startY,endX:h_endX,endY:h_endY}=highlightSelection,strokeOffset=strokeWidth/2,topConfig={left:-strokeOffset,top:-strokeOffset,width:endX-startX+strokeOffset*2,height:h_startY-startY+strokeOffset};topConfig.height<0&&(topConfig.width=0,topConfig.height=0),this._backgroundControlTop.transformByState(topConfig);const middleLeftConfig={left:-strokeOffset,top:h_startY-startY,width:h_startX-startX+strokeOffset,height:h_endY-h_startY};middleLeftConfig.width<0&&(middleLeftConfig.width=0,middleLeftConfig.height=0),this._backgroundControlMiddleLeft.transformByState(middleLeftConfig);const middleRightConfig={left:h_endX-startX-strokeOffset,top:h_startY-startY,width:endX-h_endX+strokeOffset*2,height:h_endY-h_startY};middleRightConfig.width<0&&(middleRightConfig.width=0,middleRightConfig.height=0),this._backgroundControlMiddleRight.transformByState(middleRightConfig);const middleBottomConfig={left:-strokeOffset,top:h_endY-startY,width:endX-startX+strokeOffset*2,height:endY-h_endY+strokeOffset};middleBottomConfig.height<0&&(middleBottomConfig.width=0,middleBottomConfig.height=0),this._backgroundControlBottom.transformByState(middleBottomConfig),this._backgroundControlTop.setProps({fill}),this._backgroundControlMiddleLeft.setProps({fill}),this._backgroundControlMiddleRight.setProps({fill}),this._backgroundControlBottom.setProps({fill})}_updateWidgets(style){const{startX,startY,endX,endY}=this._selectionModel,defaultStyle=this._defaultStyle;style==null&&(style=defaultStyle);const{stroke=defaultStyle.stroke,widgets=defaultStyle.widgets,widgetStroke=defaultStyle.widgetStroke}=style,scale=this._getScale();let{widgetSize=defaultStyle.widgetSize,widgetStrokeWidth=defaultStyle.widgetStrokeWidth}=style;widgetSize/=scale,widgetStrokeWidth/=scale;const position={left:-widgetSize/2+widgetStrokeWidth/2,center:(endX-startX)/2-widgetSize/2+widgetStrokeWidth/2,right:endX-startX-widgetSize/2+widgetStrokeWidth/2,top:-widgetSize/2,middle:(endY-startY)/2-widgetSize/2,bottom:endY-startY-widgetSize/2+widgetStrokeWidth/2},size=widgetSize-widgetStrokeWidth;this._widgetRects.forEach(widget=>{widget.setProps({fill:stroke,stroke:widgetStroke})}),widgets.tl===!0?(this._topLeftWidget.transformByState({height:size,width:size,left:position.left,top:position.top,strokeWidth:widgetStrokeWidth}),this._topLeftWidget.show()):this._topLeftWidget.hide(),widgets.tc===!0?(this._topCenterWidget.transformByState({height:size,width:size,left:position.center,top:position.top,strokeWidth:widgetStrokeWidth}),this._topCenterWidget.show()):this._topCenterWidget.hide(),widgets.tr===!0?(this._topRightWidget.transformByState({height:size,width:size,left:position.right,top:position.top,strokeWidth:widgetStrokeWidth}),this._topRightWidget.show()):this._topRightWidget.hide(),widgets.ml===!0?(this._middleLeftWidget.transformByState({height:size,width:size,left:position.left,top:position.middle,strokeWidth:widgetStrokeWidth}),this._middleLeftWidget.show()):this._middleLeftWidget.hide(),widgets.mr===!0?(this._middleRightWidget.transformByState({height:size,width:size,left:position.right,top:position.middle,strokeWidth:widgetStrokeWidth}),this._middleRightWidget.show()):this._middleRightWidget.hide(),widgets.bl===!0?(this._bottomLeftWidget.transformByState({height:size,width:size,left:position.left,top:position.bottom,strokeWidth:widgetStrokeWidth}),this._bottomLeftWidget.show()):this._bottomLeftWidget.hide(),widgets.bc===!0?(this._bottomCenterWidget.transformByState({height:size,width:size,left:position.center,top:position.bottom,strokeWidth:widgetStrokeWidth}),this._bottomCenterWidget.show()):this._bottomCenterWidget.hide(),widgets.br===!0?(this._bottomRightWidget.transformByState({height:size,width:size,left:position.right,top:position.bottom,strokeWidth:widgetStrokeWidth}),this._bottomRightWidget.show()):this._bottomRightWidget.hide()}_hasWidgets(widgets){if(widgets==null)return!1;const keys=Object.keys(widgets);if(keys.length===0)return!1;for(const key of keys)if(widgets[key]===!0)return!0;return!0}_getScale(){const{scaleX,scaleY}=this._scene.getAncestorScale();return Math.max(scaleX,scaleY)}_stopAntLineAnimation(){this._antLineOffset=0,engineRender.cancelRequestFrame(this._antRequestNewFrame)}_startAntLineAnimation(){const scale=this._getScale();this._antLineOffset+=.6/scale,this._antLineOffset>160/scale&&(this._antLineOffset=0),this.dashRect.setProps({strokeDashOffset:-this._antLineOffset}),this._antRequestNewFrame=engineRender.requestNewFrame(()=>{this._startAntLineAnimation()})}};__name(_SelectionControl,"SelectionControl");let SelectionControl=_SelectionControl;const HELPER_SELECTION_TEMP_NAME="__SpreadsheetHelperSelectionTempRect",SELECTION_CONTROL_DELETING_LIGHTEN=35,_SelectionShapeExtension=class _SelectionShapeExtension{constructor(_control,_skeleton,_scene,_themeService,_injector,_selectionHooks){__publicField(this,"_startOffsetX",0);__publicField(this,"_startOffsetY",0);__publicField(this,"_relativeSelectionPositionRow",0);__publicField(this,"_relativeSelectionPositionColumn",0);__publicField(this,"_relativeSelectionRowLength",0);__publicField(this,"_relativeSelectionColumnLength",0);__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_helperSelection");__publicField(this,"_scrollTimer");__publicField(this,"_activeViewport");__publicField(this,"_targetSelection",{startY:0,endY:0,startX:0,endX:0,startRow:-1,endRow:-1,startColumn:-1,endColumn:-1});__publicField(this,"_isInMergeState",!1);__publicField(this,"_fillControlColors",[]);this._control=_control,this._skeleton=_skeleton,this._scene=_scene,this._themeService=_themeService,this._injector=_injector,this._selectionHooks=_selectionHooks,this._initialControl(),this._initialWidget(),this._initialFill(),this._control.dispose$.subscribe(()=>{this.dispose()})}get isHelperSelection(){return this._control.isHelperSelection}dispose(){var _a2,_b2;(_a2=this._scrollTimer)==null||_a2.dispose(),this._fillControlColors=[],this._clearObserverEvent(),(_b2=this._helperSelection)==null||_b2.dispose()}_getFreeze(){var _a2,_b2;return(_b2=(_a2=this._injector.get(engineRender.IRenderManagerService).withCurrentTypeOfUnit(core.UniverInstanceType.UNIVER_SHEET,exports2.SheetSkeletonManagerService))==null?void 0:_a2.getCurrent())==null?void 0:_b2.skeleton.getWorksheetConfig().freeze}_isSelectionInViewport(selection,viewport){const freeze=this._getFreeze()||{startRow:-1,startColumn:-1,xSplit:0,ySplit:0};switch(viewport.viewportKey){case engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN:return selection.endRow>=freeze.startRow&&selection.endColumn>=freeze.startColumn;case engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP:case engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT:return selection.endColumn>=freeze.startColumn&&selection.startRow<freeze.startRow;case engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT:case engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM:return selection.endRow>=freeze.startRow&&selection.startColumn<freeze.startColumn;case engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP:case engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT:case engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP:case engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP:return selection.startRow<freeze.startRow&&selection.startColumn<freeze.startColumn}}_clearObserverEvent(){var _a2,_b2;(_a2=this._scenePointerMoveSub)==null||_a2.unsubscribe(),(_b2=this._scenePointerUpSub)==null||_b2.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}_initialControl(){const{leftControl,rightControl,topControl,bottomControl}=this._control;[leftControl,rightControl,topControl,bottomControl].forEach(control=>{control.onPointerEnter$.subscribeEvent(()=>{var _a2;((_a2=this._injector.get(ISheetSelectionRenderService,core.Quantity.OPTIONAL))==null?void 0:_a2.interceptor.fetchThroughInterceptors(RANGE_MOVE_PERMISSION_CHECK)(!1,null))!==!1&&control.setCursor(engineRender.CURSOR_TYPE.MOVE)}),control.onPointerLeave$.subscribeEvent(()=>{control.resetCursor()}),control.onPointerDown$.subscribeEvent(this._controlEvent.bind(this))})}_controlMoving(moveOffsetX,moveOffsetY){var _a2;const scene=this._scene,scrollXY=scene.getVpScrollXYInfoByPosToVp(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY])),{scaleX,scaleY}=scene.getAncestorScale(),moveActualSelection=this._skeleton.getCellPositionByOffset(moveOffsetX,moveOffsetY,scaleX,scaleY,scrollXY),{row,column}=moveActualSelection,maxRow=this._skeleton.getRowCount()-1,maxColumn=this._skeleton.getColumnCount()-1;let startRow=row+this._relativeSelectionPositionRow;startRow<0&&(startRow=0);let endRow=startRow+this._relativeSelectionRowLength;endRow>maxRow&&(endRow=maxRow,endRow-startRow<this._relativeSelectionRowLength&&(startRow=endRow-this._relativeSelectionRowLength));let startColumn=column+this._relativeSelectionPositionColumn;startColumn<0&&(startColumn=0);let endColumn=startColumn+this._relativeSelectionColumnLength;endColumn>maxColumn&&(endColumn=maxColumn,endColumn-startColumn<this._relativeSelectionColumnLength&&(startColumn=endColumn-this._relativeSelectionColumnLength));const startCell=this._skeleton.getNoMergeCellPositionByIndex(startRow,startColumn),endCell=this._skeleton.getNoMergeCellPositionByIndex(endRow,endColumn),startY=(startCell==null?void 0:startCell.startY)||0,endY=(endCell==null?void 0:endCell.endY)||0,startX=(startCell==null?void 0:startCell.startX)||0,endX=(endCell==null?void 0:endCell.endX)||0;(_a2=this._helperSelection)==null||_a2.transformByState({left:startX,top:startY,width:endX-startX,height:endY-startY}),this._targetSelection={startY,endY,startX,endX,startRow,endRow,startColumn,endColumn},this._control.selectionMoving$.next(this._targetSelection)}_controlEvent(evt){const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,scene=this._scene,relativeCoords=scene.getRelativeToViewportCoord(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords,scrollXY=scene.getVpScrollXYInfoByPosToVp(relativeCoords),{scaleX,scaleY}=scene.getAncestorScale(),actualSelection=this._skeleton.getCellPositionByOffset(newEvtOffsetX,newEvtOffsetY,scaleX,scaleY,scrollXY);this._startOffsetX=newEvtOffsetX,this._startOffsetY=newEvtOffsetY;const{row,column}=actualSelection,{startRow:originStartRow,startColumn:originStartColumn,endRow:originEndRow,endColumn:originEndColumn}=this._control.model;let fixRow=0,fixColumn=0;row<originStartRow?fixRow-=1:row>originEndRow&&(fixRow+=1),column<originStartColumn?fixColumn-=1:column>originEndColumn&&(fixColumn+=1),this._relativeSelectionPositionRow=originStartRow-row+fixRow,this._relativeSelectionPositionColumn=originStartColumn-column+fixColumn,this._relativeSelectionRowLength=originEndRow-originStartRow,this._relativeSelectionColumnLength=originEndColumn-originStartColumn;const style=this._control.selectionStyle,scale=this._getScale();this.isHelperSelection&&(this._helperSelection=new engineRender.Rect(HELPER_SELECTION_TEMP_NAME,{stroke:style.stroke,strokeWidth:style.strokeWidth/scale}),scene.addObject(this._helperSelection));const viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),scrollTimer=engineRender.ScrollTimer.create(scene);scrollTimer.startScroll(newEvtOffsetX,newEvtOffsetY,viewMain),this._scrollTimer=scrollTimer,scene.disableEvent(),this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{var _a2;const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt;if(((_a2=this._injector.get(ISheetSelectionRenderService,core.Quantity.OPTIONAL))==null?void 0:_a2.interceptor.fetchThroughInterceptors(RANGE_MOVE_PERMISSION_CHECK)(!1,null))===!1)return;const{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getRelativeToViewportCoord(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._controlMoving(newMoveOffsetX,newMoveOffsetY),scene.setCursor(engineRender.CURSOR_TYPE.MOVE),scrollTimer.scrolling(newMoveOffsetX,newMoveOffsetY,()=>{this._controlMoving(newMoveOffsetX,newMoveOffsetY)})}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a2,_b2,_c2,_d2;(_a2=this._helperSelection)==null||_a2.dispose();const scene2=this._scene;scene2.resetCursor(),this._clearObserverEvent(),scene2.enableEvent(),(_b2=this._scrollTimer)==null||_b2.dispose(),this._control.selectionMoved$.next(this._targetSelection),(_d2=(_c2=this._selectionHooks).selectionMoveEnd)==null||_d2.call(_c2)})}_initialWidget(){const{topLeftWidget,topCenterWidget,topRightWidget,middleLeftWidget,middleRightWidget,bottomLeftWidget,bottomCenterWidget,bottomRightWidget}=this._control,cursors=[engineRender.CURSOR_TYPE.NORTH_WEST_RESIZE,engineRender.CURSOR_TYPE.NORTH_RESIZE,engineRender.CURSOR_TYPE.NORTH_EAST_RESIZE,engineRender.CURSOR_TYPE.WEST_RESIZE,engineRender.CURSOR_TYPE.EAST_RESIZE,engineRender.CURSOR_TYPE.SOUTH_WEST_RESIZE,engineRender.CURSOR_TYPE.SOUTH_RESIZE,engineRender.CURSOR_TYPE.SOUTH_EAST_RESIZE];[topLeftWidget,topCenterWidget,topRightWidget,middleLeftWidget,middleRightWidget,bottomLeftWidget,bottomCenterWidget,bottomRightWidget].forEach((control,index)=>{control.onPointerEnter$.subscribeEvent(()=>{control.setCursor(cursors[index])}),control.onPointerLeave$.subscribeEvent(()=>{control.resetCursor()}),control.onPointerDown$.subscribeEvent(evt=>{this._widgetEvent(evt,cursors[index])})})}_widgetMoving(moveOffsetX,moveOffsetY,cursor){const scene=this._scene,scrollXY=scene.getVpScrollXYInfoByPosToVp(engineRender.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),{scaleX,scaleY}=scene.getAncestorScale(),moveActualSelection=this._skeleton.getCellPositionByOffset(moveOffsetX,moveOffsetY,scaleX,scaleY,scrollXY),{row,column}=moveActualSelection,{rowHeaderWidth,columnHeaderHeight}=this._skeleton;let startRow=this._relativeSelectionPositionRow,startColumn=this._relativeSelectionPositionColumn,endRow=row,endColumn=column;cursor===engineRender.CURSOR_TYPE.NORTH_WEST_RESIZE?(startRow=row,startColumn=column,endRow=this._relativeSelectionPositionRow,endColumn=this._relativeSelectionPositionColumn):cursor===engineRender.CURSOR_TYPE.NORTH_RESIZE?(startRow=row,startColumn=this._relativeSelectionPositionColumn,endRow=this._relativeSelectionPositionRow,endColumn=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength):cursor===engineRender.CURSOR_TYPE.NORTH_EAST_RESIZE?(startRow=row,startColumn=this._relativeSelectionPositionColumn,endRow=this._relativeSelectionPositionRow,endColumn=column):cursor===engineRender.CURSOR_TYPE.WEST_RESIZE?(startRow=this._relativeSelectionPositionRow,startColumn=column,endRow=this._relativeSelectionPositionRow+this._relativeSelectionRowLength,endColumn=this._relativeSelectionPositionColumn):cursor===engineRender.CURSOR_TYPE.EAST_RESIZE?endRow=this._relativeSelectionPositionRow+this._relativeSelectionRowLength:cursor===engineRender.CURSOR_TYPE.SOUTH_WEST_RESIZE?(startRow=this._relativeSelectionPositionRow,startColumn=column,endRow=row,endColumn=this._relativeSelectionPositionColumn):cursor===engineRender.CURSOR_TYPE.SOUTH_RESIZE&&(startRow=this._relativeSelectionPositionRow,startColumn=this._relativeSelectionPositionColumn,endRow=row,endColumn=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength);const{startRow:finalStartRow,startColumn:finalStartColumn,endRow:finalEndRow,endColumn:finalEndColumn}=this._swapPositions(startRow,startColumn,endRow,endColumn),startCell=this._skeleton.getNoMergeCellPositionByIndex(finalStartRow,finalStartColumn),endCell=this._skeleton.getNoMergeCellPositionByIndex(finalEndRow,finalEndColumn),startY=(startCell==null?void 0:startCell.startY)||0,endY=(endCell==null?void 0:endCell.endY)||0,startX=(startCell==null?void 0:startCell.startX)||0,endX=(endCell==null?void 0:endCell.endX)||0;this._targetSelection={startY,endY,startX,endX,startRow,endRow,startColumn,endColumn},this._control.update(this._targetSelection,rowHeaderWidth,columnHeaderHeight,this._control.selectionStyle),this._control.clearHighlight(),this._control.selectionScaling$.next(this._targetSelection)}_widgetEvent(evt,cursor){const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,scene=this._scene,relativeCoords=scene.getRelativeToViewportCoord(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords;this._startOffsetX=evtOffsetX,this._startOffsetY=evtOffsetY;const{startRow:originStartRow,startColumn:originStartColumn,endRow:originEndRow,endColumn:originEndColumn}=this._control.model;this._relativeSelectionPositionRow=originStartRow,this._relativeSelectionPositionColumn=originStartColumn,this._relativeSelectionRowLength=originEndRow-originStartRow,this._relativeSelectionColumnLength=originEndColumn-originStartColumn,cursor===engineRender.CURSOR_TYPE.NORTH_WEST_RESIZE?(this._relativeSelectionPositionRow=originEndRow,this._relativeSelectionPositionColumn=originEndColumn):cursor===engineRender.CURSOR_TYPE.NORTH_RESIZE?this._relativeSelectionPositionRow=originEndRow:cursor===engineRender.CURSOR_TYPE.NORTH_EAST_RESIZE?this._relativeSelectionPositionRow=originEndRow:cursor===engineRender.CURSOR_TYPE.WEST_RESIZE?this._relativeSelectionPositionColumn=originEndColumn:cursor===engineRender.CURSOR_TYPE.SOUTH_WEST_RESIZE&&(this._relativeSelectionPositionColumn=originEndColumn);const scrollTimer=engineRender.ScrollTimer.create(scene);scrollTimer.startScroll(newEvtOffsetX,newEvtOffsetY),this._scrollTimer=scrollTimer,scene.disableEvent(),this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt,{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getRelativeToViewportCoord(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._widgetMoving(newMoveOffsetX,newMoveOffsetY,cursor),scene.setCursor(cursor),scrollTimer.scrolling(newMoveOffsetX,newMoveOffsetY,()=>{this._widgetMoving(newMoveOffsetX,newMoveOffsetY,cursor)})}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a2,_b2,_c2;const scene2=this._scene;scene2.resetCursor(),this._clearObserverEvent(),scene2.enableEvent(),(_a2=this._scrollTimer)==null||_a2.dispose(),this._control.selectionScaled$.next(this._targetSelection),(_c2=(_b2=this._selectionHooks).selectionMoveEnd)==null||_c2.call(_b2)})}_initialFill(){const{fillControl}=this._control;fillControl.onPointerEnter$.subscribeEvent(evt=>{this._injector.get(ISheetSelectionRenderService).interceptor.fetchThroughInterceptors(RANGE_FILL_PERMISSION_CHECK)(!1,{x:evt.offsetX,y:evt.offsetY,skeleton:this._skeleton,scene:this._scene})&&fillControl.setCursor(engineRender.CURSOR_TYPE.CROSSHAIR)}),fillControl.onPointerLeave$.subscribeEvent(()=>{fillControl.resetCursor()}),fillControl.onPointerDown$.subscribeEvent(this._fillEvent.bind(this))}_fillMoving(moveOffsetX,moveOffsetY){var _a2,_b2,_c2;const scene=this._scene,scrollXY=scene.getViewportScrollXY(this._activeViewport),{scaleX,scaleY}=scene.getAncestorScale(),moveActualSelection=this._skeleton.getCellPositionByOffset(moveOffsetX,moveOffsetY,scaleX,scaleY,scrollXY),{row,column}=moveActualSelection,moveRelativeCoords=scene.getRelativeToViewportCoord(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY])),maxRow=this._skeleton.getRowCount()-1,maxColumn=this._skeleton.getColumnCount()-1;let startRow=this._relativeSelectionPositionRow,startColumn=this._relativeSelectionPositionColumn,endRow=this._relativeSelectionPositionRow+this._relativeSelectionRowLength,endColumn=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength,isLighten=!1,isRowDropping=!0;if((column<startColumn||column>endColumn)&&row>=startRow&&row<=endRow){const rulerValue=this._fillRuler(column,startColumn,endColumn,this._relativeSelectionColumnLength,maxColumn);startColumn=rulerValue.startRowOrColumn,endColumn=rulerValue.endRowOrColumn,isLighten=rulerValue.isLighten,isRowDropping=!1}else if((row<startRow||row>endRow)&&column>=startColumn&&column<=endColumn){const rulerValue=this._fillRuler(row,startRow,endRow,this._relativeSelectionRowLength,maxRow);startRow=rulerValue.startRowOrColumn,endRow=rulerValue.endRowOrColumn,isLighten=rulerValue.isLighten}else if(Math.abs(this._startOffsetX-moveRelativeCoords.x-scrollXY.x)/2>Math.abs(this._startOffsetY-moveRelativeCoords.y-scrollXY.y)){const rulerValue=this._fillRuler(column,startColumn,endColumn,this._relativeSelectionColumnLength,maxColumn);startColumn=rulerValue.startRowOrColumn,endColumn=rulerValue.endRowOrColumn,isLighten=rulerValue.isLighten,isRowDropping=!1}else{const rulerValue=this._fillRuler(row,startRow,endRow,this._relativeSelectionRowLength,maxRow);startRow=rulerValue.startRowOrColumn,endRow=rulerValue.endRowOrColumn,isLighten=rulerValue.isLighten}const startCell=this._skeleton.getNoMergeCellPositionByIndex(startRow,startColumn),endCell=this._skeleton.getNoMergeCellPositionByIndex(endRow,endColumn),startY=(startCell==null?void 0:startCell.startY)||0,endY=(endCell==null?void 0:endCell.endY)||0,startX=(startCell==null?void 0:startCell.startX)||0,endX=(endCell==null?void 0:endCell.endX)||0;isLighten?this._controlHandler((o,index)=>{const newColor=new core.ColorKit(this._fillControlColors[index]).lighten(SELECTION_CONTROL_DELETING_LIGHTEN).toRgbString();o.setProps({fill:newColor})}):this._controlHandler((o,index)=>{o.setProps({fill:this._fillControlColors[index]})});const SELECTION_CONTROL_BORDER_BUFFER_WIDTH_SCALE=sheets.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/this._getScale();startRow===endRow&&isRowDropping===!0||startColumn===endColumn&&isRowDropping===!1?(_a2=this._helperSelection)==null||_a2.hide():((_b2=this._helperSelection)==null||_b2.transformByState({left:startX-SELECTION_CONTROL_BORDER_BUFFER_WIDTH_SCALE/2,top:startY-SELECTION_CONTROL_BORDER_BUFFER_WIDTH_SCALE/2,width:endX-startX,height:endY-startY}),(_c2=this._helperSelection)==null||_c2.show()),this._targetSelection={startY,endY,startX,endX,startRow,endRow,startColumn,endColumn},this._control.selectionFilling$.next(this._targetSelection)}_fillEvent(evt){const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,scene=this._scene,relativeCoords=scene.getRelativeToViewportCoord(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords;this._startOffsetX=newEvtOffsetX,this._startOffsetY=newEvtOffsetY;const{startRow:originStartRow,startColumn:originStartColumn,endRow:originEndRow,endColumn:originEndColumn}=this._control.model;this._isInMergeState=this._hasMergeInRange(originStartRow,originStartColumn,originEndRow,originEndColumn),this._relativeSelectionPositionRow=originStartRow,this._relativeSelectionPositionColumn=originStartColumn,this._relativeSelectionRowLength=originEndRow-originStartRow,this._relativeSelectionColumnLength=originEndColumn-originStartColumn;const style=this._control.selectionStyle;let stroke=style==null?void 0:style.stroke,strokeWidth=style==null?void 0:style.strokeWidth;const defaultStyle=sheets.getNormalSelectionStyle(this._themeService);stroke==null&&(stroke=defaultStyle.stroke),strokeWidth==null&&(strokeWidth=defaultStyle.strokeWidth);const scale=this._getScale();strokeWidth/=scale;const SELECTION_CONTROL_BORDER_BUFFER_WIDTH_SCALE=sheets.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/scale,darkenColor=new core.ColorKit(stroke).darken(2).toRgbString();this.isHelperSelection&&(this._helperSelection=new engineRender.Rect(HELPER_SELECTION_TEMP_NAME,{stroke:darkenColor,strokeWidth:strokeWidth+SELECTION_CONTROL_BORDER_BUFFER_WIDTH_SCALE/2}),scene.addObject(this._helperSelection)),this._activeViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY]));const viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),scrollTimer=engineRender.ScrollTimer.create(scene,this._activeViewport.viewportKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN?engineRender.ScrollTimerType.ALL:engineRender.ScrollTimerType.NONE);scrollTimer.startScroll(newEvtOffsetX,newEvtOffsetY,viewportMain),this._scrollTimer=scrollTimer,scene.disableEvent(),this._controlHandler(o=>{this._fillControlColors.push(o.fill)}),this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{var _a2;const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt,currentViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));if(!this._injector.get(ISheetSelectionRenderService).interceptor.fetchThroughInterceptors(RANGE_FILL_PERMISSION_CHECK)(!1,{x:evt.offsetX,y:evt.offsetY,skeleton:this._skeleton,scene:this._scene}))return;const{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getRelativeToViewportCoord(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._fillMoving(newMoveOffsetX,newMoveOffsetY),scene.setCursor(engineRender.CURSOR_TYPE.CROSSHAIR);const newSelection=this._targetSelection;if(viewportMain&&currentViewport&&((_a2=this._activeViewport)==null?void 0:_a2.viewportKey)!==(currentViewport==null?void 0:currentViewport.viewportKey)){let movingRange;newSelection.startRow!==originStartRow?(scrollTimer.scrollTimerType=engineRender.ScrollTimerType.Y,movingRange={...newSelection,endRow:newSelection.startRow}):newSelection.endRow!==originEndRow?(scrollTimer.scrollTimerType=engineRender.ScrollTimerType.Y,movingRange={...newSelection,startRow:newSelection.endRow}):newSelection.startColumn!==originStartColumn?(scrollTimer.scrollTimerType=engineRender.ScrollTimerType.X,movingRange={...newSelection,endColumn:newSelection.startColumn}):(scrollTimer.scrollTimerType=engineRender.ScrollTimerType.X,movingRange={...newSelection,startColumn:newSelection.endColumn}),this._isSelectionInViewport(movingRange,currentViewport)&&(viewportMain.scrollToBarPos({x:scrollTimer.scrollTimerType===engineRender.ScrollTimerType.X?0:void 0,y:scrollTimer.scrollTimerType===engineRender.ScrollTimerType.Y?0:void 0}),this._activeViewport=currentViewport)}scrollTimer.scrolling(newMoveOffsetX,newMoveOffsetY,()=>{this._fillMoving(newMoveOffsetX,newMoveOffsetY)})}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a2,_b2;(_a2=this._helperSelection)==null||_a2.dispose();const scene2=this._scene;scene2.resetCursor(),this._clearObserverEvent(),scene2.enableEvent(),(_b2=this._scrollTimer)==null||_b2.dispose(),this._control.refreshSelectionFilled(this._targetSelection),this._isInMergeState=!1,this._controlHandler((o,index)=>{o.setProps({fill:this._fillControlColors[index]})}),this._fillControlColors=[]})}_hasMergeInRange(startRow,startColumn,endRow,endColumn){const mergeData=this._skeleton.mergeData;if(!mergeData)return!1;for(const data of mergeData){const{startRow:mainStartRow,startColumn:mainStartColumn,endRow:mainEndRow,endColumn:mainEndColumn}=data,rect1={left:startColumn,top:startRow,right:endColumn,bottom:endRow},rect2={left:mainStartColumn,top:mainStartRow,right:mainEndColumn,bottom:mainEndRow};if(engineRender.isRectIntersect(rect1,rect2))return!0}return!1}_swapPositions(startRow,startColumn,endRow,endColumn){const finalStartRow=Math.min(startRow,endRow),finalStartColumn=Math.min(startColumn,endColumn),finalEndRow=Math.max(startRow,endRow),finalEndColumn=Math.max(startColumn,endColumn);return{startRow:finalStartRow,startColumn:finalStartColumn,endRow:finalEndRow,endColumn:finalEndColumn}}_controlHandler(func){const{leftControl,rightControl,topControl,bottomControl,backgroundControlTop,backgroundControlMiddleLeft,backgroundControlMiddleRight,backgroundControlBottom,fillControl}=this._control,objects=[leftControl,rightControl,topControl,bottomControl,backgroundControlTop,backgroundControlMiddleLeft,backgroundControlMiddleRight,backgroundControlBottom,fillControl];for(let i=0,len=objects.length;i<len;i++){const object=objects[i];func(object,i)}}_fillRuler(rowOrColumn,startRowOrColumn,endRowOrColumn,rowOrColumnLength,maxRowOrColumn){let isLighten=!1;if(rowOrColumn<startRowOrColumn)if(this._isInMergeState&&rowOrColumn<startRowOrColumn){const current=startRowOrColumn-rowOrColumn,rangeRowCount=rowOrColumnLength+1,step=Math.ceil(current/rangeRowCount);let newStartRow=startRowOrColumn-step*rangeRowCount;newStartRow<0&&(newStartRow=startRowOrColumn-(step-1)*rangeRowCount),startRowOrColumn=newStartRow}else startRowOrColumn=rowOrColumn;else if(rowOrColumn>=startRowOrColumn&&rowOrColumn<=endRowOrColumn)isLighten=!0,this._isInMergeState||(endRowOrColumn=rowOrColumn);else if(this._isInMergeState&&rowOrColumn>endRowOrColumn){const current=rowOrColumn-endRowOrColumn,rangeRowCount=rowOrColumnLength+1,step=Math.ceil(current/rangeRowCount);let newEndRow=endRowOrColumn+step*rangeRowCount;newEndRow>maxRowOrColumn&&(newEndRow=endRowOrColumn+(step-1)*rangeRowCount),endRowOrColumn=newEndRow}else endRowOrColumn=rowOrColumn;return{rowOrColumn,startRowOrColumn,endRowOrColumn,isLighten}}_getScale(){const{scaleX,scaleY}=this._scene.getAncestorScale();return Math.max(scaleX,scaleY)}};__name(_SelectionShapeExtension,"SelectionShapeExtension");let SelectionShapeExtension=_SelectionShapeExtension;function attachSelectionWithCoord(selection,skeleton){const{range,primary,style}=selection;return{rangeWithCoord:attachRangeWithCoord(skeleton,range),primaryWithCoord:primary?attachPrimaryWithCoord(primary,skeleton):null,style}}__name(attachSelectionWithCoord,"attachSelectionWithCoord");function attachPrimaryWithCoord(primary,skeleton){const{actualRow,actualColumn,isMerged,isMergedMainCell,startRow,startColumn,endRow,endColumn}=primary,cellPosition=skeleton.getNoMergeCellPositionByIndex(actualRow,actualColumn),startCell=skeleton.getNoMergeCellPositionByIndex(startRow,startColumn),endCell=skeleton.getNoMergeCellPositionByIndex(endRow,endColumn);return{actualRow,actualColumn,isMerged,isMergedMainCell,startX:cellPosition.startX,startY:cellPosition.startY,endX:cellPosition.endX,endY:cellPosition.endY,mergeInfo:{startRow,startColumn,endRow,endColumn,startY:(startCell==null?void 0:startCell.startY)||0,endY:(endCell==null?void 0:endCell.endY)||0,startX:(startCell==null?void 0:startCell.startX)||0,endX:(endCell==null?void 0:endCell.endX)||0}}}__name(attachPrimaryWithCoord,"attachPrimaryWithCoord");const ISheetSelectionRenderService=core.createIdentifier("univer.sheet.selection-render-service"),_BaseSelectionRenderService=class _BaseSelectionRenderService extends core.Disposable{constructor(_injector,_themeService,_shortcutService,_renderManagerService){super();__publicField(this,"_downObserver");__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_controlFillConfig$",new rxjs.BehaviorSubject(null));__publicField(this,"controlFillConfig$",this._controlFillConfig$.asObservable());__publicField(this,"_selectionControls",[]);__publicField(this,"_startRangeWhenPointerDown",{startY:0,endY:0,startX:0,endX:0,startRow:-1,endRow:-1,startColumn:-1,endColumn:-1});__publicField(this,"_startViewportPosX",0);__publicField(this,"_startViewportPosY",0);__publicField(this,"_scrollTimer");__publicField(this,"_cancelDownSubscription");__publicField(this,"_cancelUpSubscription");__publicField(this,"_skeleton");__publicField(this,"_scene");__publicField(this,"_isHeaderHighlight",!0);__publicField(this,"_shouldDetectMergedCells",!0);__publicField(this,"_selectionStyle");__publicField(this,"_remainLastEnabled",!1);__publicField(this,"_skipLastEnabled",!1);__publicField(this,"_singleSelectionEnabled",!1);__publicField(this,"_selectionMoveEnd$",new rxjs.BehaviorSubject([]));__publicField(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());__publicField(this,"_selectionMoving$",new rxjs.Subject);__publicField(this,"selectionMoving$",this._selectionMoving$.asObservable());__publicField(this,"_selectionMoveStart$",new rxjs.Subject);__publicField(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());__publicField(this,"_selectionMoving",!1);__publicField(this,"_activeViewport");__publicField(this,"interceptor",new core.InterceptorManager({RANGE_MOVE_PERMISSION_CHECK,RANGE_FILL_PERMISSION_CHECK}));this._injector=_injector,this._themeService=_themeService,this._shortcutService=_shortcutService,this._renderManagerService=_renderManagerService,this._resetStyle(),this._initMoving()}get selectionMoving(){return this._selectionMoving}_initMoving(){this.disposeWithMe(this._selectionMoving$.subscribe(()=>{this._selectionMoving=!0})),this.disposeWithMe(this._selectionMoveEnd$.subscribe(()=>{this._selectionMoving=!1}))}_setStyle(style){this._selectionStyle=style}_resetStyle(){this._setStyle(sheets.getNormalSelectionStyle(this._themeService))}getViewPort(){return this._activeViewport}setSingleSelectionEnabled(enabled=!1){this._singleSelectionEnabled=enabled}_addSelectionControlBySelectionData(selection){var _a2;const{rangeWithCoord,primaryWithCoord}=selection,{rangeType}=rangeWithCoord,skeleton=this._skeleton,style=(_a2=selection.style)!=null?_a2:sheets.getNormalSelectionStyle(this._themeService),scene=this._scene;if(!scene||!skeleton)return;const control=this.newSelectionControl(scene,rangeType||core.RANGE_TYPE.NORMAL);new SelectionShapeExtension(control,skeleton,scene,this._themeService,this._injector,{selectionMoveEnd:__name(()=>{this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())},"selectionMoveEnd")});const{rowHeaderWidth,columnHeaderHeight}=skeleton;control.update(rangeWithCoord,rowHeaderWidth,columnHeaderHeight,style,primaryWithCoord)}newSelectionControl(scene,_rangeType){const selectionControls=this.getSelectionControls(),control=new SelectionControl(scene,selectionControls.length,this._isHeaderHighlight,this._themeService);return this._selectionControls.push(control),control}updateControlForCurrentByRangeData(selections){const selectionControls=this.getSelectionControls();if(!selectionControls)return;const skeleton=this._skeleton;if(skeleton==null)return;const{rowHeaderWidth,columnHeaderHeight}=skeleton;for(let i=0,len=selections.length;i<len;i++){const{rangeWithCoord,primaryWithCoord,style}=selections[i],control=selectionControls[i];control&&control.update(rangeWithCoord,rowHeaderWidth,columnHeaderHeight,style,primaryWithCoord)}}refreshSelectionMoveStart(){this._selectionMoveStart$.next(this.getSelectionDataWithStyle())}_changeRuntime(skeleton,scene,viewport){this._skeleton=skeleton,this._scene=scene,this._activeViewport=viewport||(scene==null?void 0:scene.getViewports()[0])}getSkeleton(){return this._skeleton}getSelectionDataWithStyle(){const selectionControls=this._selectionControls,[unitId,sheetId]=this._skeleton.getLocation();return selectionControls.map(control=>{const v=control.getValue();return v.rangeWithCoord.sheetId=sheetId,v.rangeWithCoord.unitId=unitId,v})}getSelectionControls(){return this._selectionControls}_clearSelectionControls(){const allSelectionControls=this._selectionControls;for(const control of allSelectionControls)control.dispose();this._selectionControls.length=0}_getFreeze(){var _a2,_b2;return(_b2=(_a2=this._renderManagerService.withCurrentTypeOfUnit(core.UniverInstanceType.UNIVER_SHEET,exports2.SheetSkeletonManagerService))==null?void 0:_a2.getCurrent())==null?void 0:_b2.skeleton.getWorksheetConfig().freeze}_getViewportByCell(row,column){if(row===void 0||column===void 0)return null;const freeze=this._getFreeze();if(!freeze||freeze.startRow<=0&&freeze.startColumn<=0)return this._scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(row>freeze.startRow&&column>freeze.startColumn)return this._scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(row<=freeze.startRow&&column<=freeze.startColumn)return this._scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(row<=freeze.startRow&&column>freeze.startColumn)return this._scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(row>freeze.startRow&&column<=freeze.startColumn)return this._scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)}getActiveRange(){const controls=this.getSelectionControls(),model=controls&&controls[controls.length-1].model;return model&&{startRow:model.startRow,startColumn:model.startColumn,endRow:model.endRow,endColumn:model.endColumn}}getActiveSelectionControl(){const controls=this.getSelectionControls();if(controls)return controls[controls.length-1]}endSelection(){this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),this._shortcutService.setDisable(!1)}_reset(){var _a2;this._clearSelectionControls(),(_a2=this._downObserver)==null||_a2.unsubscribe(),this._downObserver=null}resetAndEndSelection(){this.endSelection(),this._reset()}_onPointerDown(evt,_zIndex=0,rangeType=core.RANGE_TYPE.NORMAL,viewport,scrollTimerType=engineRender.ScrollTimerType.ALL){var _a2;this._shouldDetectMergedCells=rangeType===core.RANGE_TYPE.NORMAL;const skeleton=this._skeleton,scene=this._scene;if(!scene||!skeleton)return;viewport&&(this._activeViewport=viewport);const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!viewportMain)return;const relativeCoords=scene.getRelativeToViewportCoord(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY]));let{x:viewportPosX,y:viewportPosY}=relativeCoords;this._startViewportPosX=viewportPosX,this._startViewportPosY=viewportPosY;const scrollXY=scene.getVpScrollXYInfoByPosToVp(relativeCoords),{scaleX,scaleY}=scene.getAncestorScale(),cursorCellRangeInfo=this._getCellRangeByCursorPosition(viewportPosX,viewportPosY,scaleX,scaleY,scrollXY);if(!cursorCellRangeInfo)return!1;const{rangeWithCoord:cursorCellRange,primaryWithCoord:primaryCursorCellRange}=cursorCellRangeInfo,cursorCellRangeWithRangeType={...cursorCellRange,rangeType};this._startRangeWhenPointerDown={...cursorCellRange,rangeType};let activeSelectionControl=this.getActiveSelectionControl();const curControls=this.getSelectionControls();for(const control of curControls){if(evt.button===2&&control.model.isInclude(cursorCellRangeWithRangeType)){activeSelectionControl=control;return}if(control.model.isEqual(cursorCellRangeWithRangeType)){activeSelectionControl=control;break}evt.shiftKey||control.clearHighlight()}this._checkClearPreviousControls(evt);const currentCell=activeSelectionControl==null?void 0:activeSelectionControl.model.currentCell,expandByShiftKey=evt.shiftKey&&currentCell,remainLastEnable=this._remainLastEnabled&&!evt.ctrlKey&&!evt.shiftKey&&!this._skipLastEnabled&&!this._singleSelectionEnabled;expandByShiftKey&&currentCell?this._performSelectionByTwoCells(currentCell,cursorCellRangeWithRangeType,skeleton,rangeType,activeSelectionControl):remainLastEnable&&activeSelectionControl?this._updateSelectionControlRange(activeSelectionControl,cursorCellRangeWithRangeType,primaryCursorCellRange):(activeSelectionControl=this.newSelectionControl(scene,rangeType),this._updateSelectionControlRange(activeSelectionControl,cursorCellRangeWithRangeType,primaryCursorCellRange)),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),scene.disableEvent(),this._clearUpdatingListeners(),this._addEndingListeners(),(_a2=scene.getTransformer())==null||_a2.clearSelectedObjects(),(rangeType===core.RANGE_TYPE.ROW||rangeType===core.RANGE_TYPE.COLUMN)&&(rangeType===core.RANGE_TYPE.ROW?viewportPosX=0:rangeType===core.RANGE_TYPE.COLUMN&&(viewportPosY=0),this._moving(viewportPosX,viewportPosY,activeSelectionControl,rangeType)),this._setupPointerMoveListener(viewportMain,activeSelectionControl,rangeType,scrollTimerType,viewportPosX,viewportPosY),this._shortcutService.setDisable(!0),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),this._shortcutService.setDisable(!1)})}_setupPointerMoveListener(viewportMain,activeSelectionControl,rangeType,scrollTimerType=engineRender.ScrollTimerType.ALL,moveStartPosX,moveStartPosY){var _a2,_b2;let xCrossTime=0,yCrossTime=0,lastX=moveStartPosX,lastY=moveStartPosY;this._scrollTimer=engineRender.ScrollTimer.create(this._scene,scrollTimerType),this._scrollTimer.startScroll((_a2=viewportMain==null?void 0:viewportMain.left)!=null?_a2:0,(_b2=viewportMain==null?void 0:viewportMain.top)!=null?_b2:0,viewportMain);const scene=this._scene,startViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([moveStartPosX,moveStartPosY]));this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{var _a3,_b3,_c2,_d2,_e2,_f2,_g2,_h2,_i2;const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt,{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getRelativeToViewportCoord(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._moving(newMoveOffsetX,newMoveOffsetY,activeSelectionControl,rangeType);let scrollOffsetX=newMoveOffsetX,scrollOffsetY=newMoveOffsetY;const currentSelection=this.getActiveSelectionControl(),freeze=this._getFreeze(),selection=currentSelection==null?void 0:currentSelection.model,endViewport=(_a3=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY])))!=null?_a3:this._getViewportByCell(selection==null?void 0:selection.endRow,selection==null?void 0:selection.endColumn);if(startViewport&&endViewport&&viewportMain){const isCrossingX=lastX<viewportMain.left&&newMoveOffsetX>viewportMain.left||lastX>viewportMain.left&&newMoveOffsetX<viewportMain.left,isCrossingY=lastY<viewportMain.top&&newMoveOffsetY>viewportMain.top||lastY>viewportMain.top&&newMoveOffsetY<viewportMain.top;isCrossingX&&(xCrossTime+=1),isCrossingY&&(yCrossTime+=1);const startKey=startViewport.viewportKey,endKey=endViewport.viewportKey;if(startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP)moveOffsetY<viewportMain.top&&((_b3=selection==null?void 0:selection.endRow)!=null?_b3:0)<((_c2=freeze==null?void 0:freeze.startRow)!=null?_c2:0)?scrollOffsetY=viewportMain.top:isCrossingY&&yCrossTime%2===1&&viewportMain.scrollToViewportPos({viewportScrollY:0});else if(startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT)moveOffsetX<viewportMain.left&&((_d2=selection==null?void 0:selection.endColumn)!=null?_d2:0)<((_e2=freeze==null?void 0:freeze.startColumn)!=null?_e2:0)?scrollOffsetX=viewportMain.left:isCrossingX&&xCrossTime%2===1&&viewportMain.scrollToViewportPos({viewportScrollX:0});else if(startKey===endKey){let disableX=!1,disableY=!1;startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP?(disableX=!0,disableY=!0):startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP?disableY=!0:startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT&&(disableX=!0),((_f2=selection==null?void 0:selection.endRow)!=null?_f2:0)>((_g2=freeze==null?void 0:freeze.startRow)!=null?_g2:0)&&(disableY=!1),((_h2=selection==null?void 0:selection.endColumn)!=null?_h2:0)>((_i2=freeze==null?void 0:freeze.startColumn)!=null?_i2:0)&&(disableX=!1),disableX&&(scrollOffsetX=viewportMain.left),disableY&&(scrollOffsetY=viewportMain.top)}else{const startXY={x:startViewport.scrollX,y:startViewport.scrollY},endXY={x:endViewport.scrollX,y:endViewport.scrollY},shouldResetX=startXY.x!==endXY.x&&isCrossingX&&xCrossTime%2===1,shouldResetY=startXY.y!==endXY.y&&isCrossingY&&yCrossTime%2===1;(shouldResetX||shouldResetY)&&(viewportMain.scrollToBarPos({x:shouldResetX?startXY.x:void 0,y:shouldResetY?startXY.y:void 0}),shouldResetX||(scrollOffsetX=viewportMain.left),shouldResetY||(scrollOffsetY=viewportMain.top)),(startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&endKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||endKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)&&(scrollOffsetX=viewportMain.left),(startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&endKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||endKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&startKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP)&&(scrollOffsetY=viewportMain.top)}lastX=newMoveOffsetX,lastY=newMoveOffsetY}this._scrollTimer.scrolling(scrollOffsetX,scrollOffsetY,()=>{this._moving(newMoveOffsetX,newMoveOffsetY,activeSelectionControl,rangeType)})})}attachSelectionWithCoord(selectionWithStyle){return attachSelectionWithCoord(selectionWithStyle,this._skeleton)}attachPrimaryWithCoord(primary){return attachPrimaryWithCoord(primary,this._skeleton)}getSelectionCellByPosition(x,y){const scene=this._scene,skeleton=this._skeleton,scrollXY=scene.getViewportScrollXY(scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX,scaleY}=scene.getAncestorScale();return skeleton.calculateCellIndexByPosition(x,y,scaleX,scaleY,scrollXY)}_moving(offsetX,offsetY,activeSelectionControl,rangeType){var _a2,_b2,_c2,_d2,_e2;const skeleton=this._skeleton,scene=this._scene,[unitId,sheetId]=skeleton.getLocation(),currSelectionRange={startRow:(_a2=activeSelectionControl==null?void 0:activeSelectionControl.model.startRow)!=null?_a2:-1,endRow:(_b2=activeSelectionControl==null?void 0:activeSelectionControl.model.endRow)!=null?_b2:-1,startColumn:(_c2=activeSelectionControl==null?void 0:activeSelectionControl.model.startColumn)!=null?_c2:-1,endColumn:(_d2=activeSelectionControl==null?void 0:activeSelectionControl.model.endColumn)!=null?_d2:-1,unitId,sheetId},viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),targetViewport=(_e2=this._getViewportByCell(currSelectionRange.endRow,currSelectionRange.endColumn))!=null?_e2:viewportMain,scrollXY=scene.getVpScrollXYInfoByPosToVp(engineRender.Vector2.FromArray([this._startViewportPosX,this._startViewportPosY]),targetViewport),{scaleX,scaleY}=scene.getAncestorScale();rangeType===core.RANGE_TYPE.ROW?offsetX=Number.POSITIVE_INFINITY:rangeType===core.RANGE_TYPE.COLUMN&&(offsetY=Number.POSITIVE_INFINITY);const cursorCellRangeInfo=this._getCellRangeByCursorPosition(offsetX,offsetY,scaleX,scaleY,scrollXY);if(!cursorCellRangeInfo)return!1;const{rangeWithCoord:cursorCellRange}=cursorCellRangeInfo,activeCellRange=this._startRangeWhenPointerDown;let newSelectionRange={startRow:Math.min(cursorCellRange.startRow,activeCellRange.startRow),startColumn:Math.min(cursorCellRange.startColumn,activeCellRange.startColumn),endRow:Math.max(cursorCellRange.endRow,activeCellRange.endRow),endColumn:Math.max(cursorCellRange.endColumn,activeCellRange.endColumn)};if(this._shouldDetectMergedCells&&(newSelectionRange=skeleton.getSelectionMergeBounding(newSelectionRange.startRow,newSelectionRange.startColumn,newSelectionRange.endRow,newSelectionRange.endColumn)),!newSelectionRange)return!1;const startCellXY=skeleton.getNoMergeCellPositionByIndex(newSelectionRange.startRow,newSelectionRange.startColumn),endCellXY=skeleton.getNoMergeCellPositionByIndex(newSelectionRange.endRow,newSelectionRange.endColumn),newSelectionRangeWithCoord={startRow:newSelectionRange.startRow,startColumn:newSelectionRange.startColumn,endRow:newSelectionRange.endRow,endColumn:newSelectionRange.endColumn,unitId,sheetId,startY:(startCellXY==null?void 0:startCellXY.startY)||0,endY:(endCellXY==null?void 0:endCellXY.endY)||0,startX:(startCellXY==null?void 0:startCellXY.startX)||0,endX:(endCellXY==null?void 0:endCellXY.endX)||0},rangeChanged=currSelectionRange.startRow!==newSelectionRange.startRow||currSelectionRange.startColumn!==newSelectionRange.startColumn||currSelectionRange.endRow!==newSelectionRange.endRow||currSelectionRange.endColumn!==newSelectionRange.endColumn;activeSelectionControl!=null&&rangeChanged&&(this._updateSelectionControlRange(activeSelectionControl,newSelectionRangeWithCoord),this._selectionMoving$.next(this.getSelectionDataWithStyle()))}_updateSelectionControlRange(control,newSelectionRange,highlight){const skeleton=this._skeleton,{rowHeaderWidth,columnHeaderHeight}=skeleton;control.update(newSelectionRange,rowHeaderWidth,columnHeaderHeight,this._selectionStyle,highlight||null)}_clearUpdatingListeners(){var _a2,_b2,_c2,_d2,_e2;this._scene.enableEvent(),(_a2=this._scenePointerMoveSub)==null||_a2.unsubscribe(),this._scenePointerMoveSub=null,(_b2=this._scenePointerUpSub)==null||_b2.unsubscribe(),this._scenePointerUpSub=null,(_c2=this._cancelDownSubscription)==null||_c2.unsubscribe(),this._cancelDownSubscription=null,(_d2=this._cancelUpSubscription)==null||_d2.unsubscribe(),this._cancelUpSubscription=null,(_e2=this._scrollTimer)==null||_e2.dispose()}_addEndingListeners(){var _a2,_b2,_c2;const scene=this._scene,mainScene=(_a2=scene.getEngine())==null?void 0:_a2.activeScene;!mainScene||mainScene===scene||((_b2=this._cancelDownSubscription)==null||_b2.unsubscribe(),this._cancelDownSubscription=null,(_c2=this._cancelUpSubscription)==null||_c2.unsubscribe(),this._cancelUpSubscription=null,this._cancelDownSubscription=mainScene.onPointerDown$.subscribeEvent(()=>this._clearUpdatingListeners()),this._cancelUpSubscription=mainScene.onPointerUp$.subscribeEvent(()=>this._clearUpdatingListeners()))}_getCellRangeByCursorPosition(offsetX,offsetY,scaleX,scaleY,scrollXY){var _a2;if(this._shouldDetectMergedCells){const primaryWithCoord2=(_a2=this._skeleton)==null?void 0:_a2.calculateCellIndexByPosition(offsetX,offsetY,scaleX,scaleY,scrollXY);if(!primaryWithCoord2)return;const rangeWithCoord2=core.makeCellToSelection(primaryWithCoord2);return{primaryWithCoord:primaryWithCoord2,rangeWithCoord:rangeWithCoord2}}const skeleton=this._skeleton;if(skeleton==null)return;const moveActualSelection=skeleton.getCellPositionByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY),{row,column}=moveActualSelection,startCell=skeleton.getNoMergeCellPositionByIndex(row,column),{startX,startY,endX,endY}=startCell,rangeWithCoord={startY,endY,startX,endX,startRow:row,endRow:row,startColumn:column,endColumn:column};return{primaryWithCoord:{actualRow:row,actualColumn:column,isMerged:!1,isMergedMainCell:!1,startY,endY,startX,endX,mergeInfo:rangeWithCoord},rangeWithCoord}}_checkClearPreviousControls(evt){this.getSelectionControls().length!==0&&(!evt.ctrlKey&&!evt.shiftKey&&!this._remainLastEnabled||this._singleSelectionEnabled&&!evt.shiftKey)&&this._clearSelectionControls()}_performSelectionByTwoCells(currentCell,startSelectionRange,skeleton,rangeType,activeControl){const{actualRow,actualColumn,mergeInfo:actualMergeInfo}=currentCell,newStartRow=Math.min(actualRow,startSelectionRange.startRow,actualMergeInfo.startRow),newEndRow=Math.max(actualRow,startSelectionRange.endRow,actualMergeInfo.endRow),newStartColumn=Math.min(actualColumn,startSelectionRange.startColumn,actualMergeInfo.startColumn),newEndColumn=Math.max(actualColumn,startSelectionRange.endColumn,actualMergeInfo.endColumn),bounding=skeleton.getMergeBounding(newStartRow,newStartColumn,newEndRow,newEndColumn),startCell=skeleton.getNoMergeCellPositionByIndex(bounding.startRow,bounding.startColumn),endCell=skeleton.getNoMergeCellPositionByIndex(bounding.endRow,bounding.endColumn),newSelectionRange={startColumn:bounding.startColumn,startRow:bounding.startRow,endColumn:bounding.endColumn,endRow:bounding.endRow,startY:startCell.startY,endY:endCell.endY,startX:startCell.startX,endX:endCell.endX,rangeType},activeCell=skeleton.getCellByIndex(actualRow,actualColumn);this._startRangeWhenPointerDown={startColumn:activeCell.mergeInfo.startColumn,startRow:activeCell.mergeInfo.startRow,endColumn:activeCell.mergeInfo.endColumn,endRow:activeCell.mergeInfo.endRow,startY:activeCell.mergeInfo.startY||0,endY:activeCell.mergeInfo.endY||0,startX:activeCell.mergeInfo.startX||0,endX:activeCell.mergeInfo.endX||0,rangeType},this._updateSelectionControlRange(activeControl,newSelectionRange,currentCell)}_refreshSelectionControl(selectionsData){const selections=selectionsData.map(selectionWithStyle=>{const selectionData=attachSelectionWithCoord(selectionWithStyle,this._skeleton);return selectionData.style=sheets.getNormalSelectionStyle(this._themeService),selectionData});this.updateControlForCurrentByRangeData(selections)}};__name(_BaseSelectionRenderService,"BaseSelectionRenderService");let BaseSelectionRenderService=_BaseSelectionRenderService;function getAllSelection(skeleton){return{range:{startRow:0,startColumn:0,endRow:skeleton.getRowCount()-1,endColumn:skeleton.getColumnCount()-1,rangeType:core.RANGE_TYPE.ALL},primary:getTopLeftSelection(skeleton).primary,style:null}}__name(getAllSelection,"getAllSelection");function getTopLeftSelection(skeleton){const mergeData=skeleton.mergeData;return sheets.transformCellDataToSelectionData(0,0,mergeData)||{range:{startRow:0,startColumn:0,endRow:0,endColumn:0},primary:{actualRow:0,actualColumn:0,startRow:0,startColumn:0,endRow:0,endColumn:0,isMerged:!1,isMergedMainCell:!1},style:null}}__name(getTopLeftSelection,"getTopLeftSelection");var __defProp$O=Object.defineProperty,__getOwnPropDesc$O=Object.getOwnPropertyDescriptor,__decorateClass$O=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$O(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$O(target,key,result),result},"__decorateClass$O"),__decorateParam$N=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$N");const BEFORE_CELL_EDIT=core.createInterceptorKey("BEFORE_CELL_EDIT"),AFTER_CELL_EDIT=core.createInterceptorKey("AFTER_CELL_EDIT"),AFTER_CELL_EDIT_ASYNC=core.createInterceptorKey("AFTER_CELL_EDIT_ASYNC");exports2.EditorBridgeService=(_g=class extends core.Disposable{constructor(_renderManagerService,_themeService,_univerInstanceService,_editorService,_refSelectionsService,_contextService){super();__publicField(this,"_editorUnitId",core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);__publicField(this,"_isForceKeepVisible",!1);__publicField(this,"_editorIsDirty",!1);__publicField(this,"_visible",{visible:!1,eventType:engineRender.DeviceInputEventType.Dblclick,unitId:""});__publicField(this,"_currentEditCell",null);__publicField(this,"_currentEditCellState",null);__publicField(this,"_currentEditCellState$",new rxjs.BehaviorSubject(null));__publicField(this,"currentEditCellState$",this._currentEditCellState$.asObservable());__publicField(this,"_visible$",new rxjs.BehaviorSubject(this._visible));__publicField(this,"visible$",this._visible$.asObservable());__publicField(this,"_afterVisible$",new rxjs.BehaviorSubject(this._visible));__publicField(this,"afterVisible$",this._afterVisible$.asObservable());__publicField(this,"interceptor",new core.InterceptorManager({BEFORE_CELL_EDIT,AFTER_CELL_EDIT,AFTER_CELL_EDIT_ASYNC}));this._renderManagerService=_renderManagerService,this._themeService=_themeService,this._univerInstanceService=_univerInstanceService,this._editorService=_editorService,this._refSelectionsService=_refSelectionsService,this._contextService=_contextService,this.disposeWithMe(core.toDisposable(()=>{this._currentEditCellState$.complete(),this._currentEditCell=null})),this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().AFTER_CELL_EDIT,{priority:-1,handler:__name(_value=>_value,"handler")})),this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().BEFORE_CELL_EDIT,{priority:-1,handler:__name(_value=>_value,"handler")})),this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().AFTER_CELL_EDIT_ASYNC,{priority:-1,handler:__name(_value=>_value,"handler")})),this._univerInstanceService.getTypeOfUnitDisposed$(core.UniverInstanceType.UNIVER_SHEET).subscribe(unit=>{var _a2;unit.getUnitId()===((_a2=this._currentEditCellState)==null?void 0:_a2.unitId)&&this._clearCurrentEditCellState()})}refreshEditCellState(){const editCellState=this.getLatestEditCellState();this._currentEditCellState=editCellState,this._currentEditCellState$.next(editCellState)}setEditCell(param){this._currentEditCell=param,this._editorService.getFocusEditor()||(this._editorService.focus(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._contextService.setContextValue(core.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(core.FOCUSING_EDITOR_STANDALONE,!1),this._contextService.setContextValue(core.FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE,!1));const editCellState=this.getLatestEditCellState();this._currentEditCellState=editCellState,this._currentEditCellState$.next(editCellState)}_clearCurrentEditCellState(){this._currentEditCellState=null,this._currentEditCellState$.next(null)}getEditCellState(){return this._currentEditCellState}getLatestEditCellState(){var _a2,_b2,_c2;const currentEditCell=this._currentEditCell;if(currentEditCell==null)return;const ru=this._renderManagerService.getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_SHEET);if(!ru)return;const skeleton=ru.with(exports2.SheetSkeletonManagerService).getCurrentSkeleton(),selectionRenderService=ru.with(ISheetSelectionRenderService);if(!skeleton)return;const{primary,unitId,sheetId,scene,engine}=currentEditCell,{startRow,startColumn}=primary,primaryWithCoord=attachPrimaryWithCoord(primary,skeleton);if(primaryWithCoord==null)return;const actualRangeWithCoord=core.makeCellToSelection(primaryWithCoord),canvasOffset=engineRender.getCanvasOffsetByEngine(engine);let{startX,startY,endX,endY}=actualRangeWithCoord;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY=scene.getViewportScrollXY(selectionRenderService.getViewPort());startX=skeleton.convertTransformToOffsetX(startX,scaleX,scrollXY),startY=skeleton.convertTransformToOffsetY(startY,scaleY,scrollXY),endX=skeleton.convertTransformToOffsetX(endX,scaleX,scrollXY),endY=skeleton.convertTransformToOffsetY(endY,scaleY,scrollXY);const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return;const location={workbook,worksheet,unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),row:startRow,col:startColumn},cell=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().BEFORE_CELL_EDIT)(worksheet.getCell(startRow,startColumn),location);let documentLayoutObject=cell&&skeleton.getCellDocumentModelWithFormula(cell);const renderConfig=(_a2=documentLayoutObject==null?void 0:documentLayoutObject.documentModel)==null?void 0:_a2.documentStyle.renderConfig;if(renderConfig!=null&&(renderConfig.cellValueType=core.CellValueType.STRING),!documentLayoutObject||documentLayoutObject.documentModel==null){const blankModel=skeleton.getBlankCellDocumentModel(cell);if(documentLayoutObject!=null){const{verticalAlign,horizontalAlign,wrapStrategy,textRotation,fill}=documentLayoutObject,{centerAngle,vertexAngle}=engineRender.convertTextRotation(textRotation);blankModel.documentModel.documentStyle.renderConfig={verticalAlign,horizontalAlign,wrapStrategy,background:{rgb:fill},centerAngle,vertexAngle}}documentLayoutObject=blankModel}if((_b2=documentLayoutObject.documentModel)==null||_b2.setZoomRatio(Math.max(scaleX,scaleY)),(cell==null?void 0:cell.isInArrayFormulaRange)===!0){const body=(_c2=documentLayoutObject.documentModel)==null?void 0:_c2.getBody();body&&(body.textRuns=[{st:0,ed:body.dataStream.length-2,ts:{cl:{rgb:this._themeService.getCurrentTheme().textColorSecondary}}}])}return this._editorService.setOperationSheetUnitId(unitId),this._editorService.setOperationSheetSubUnitId(sheetId),{position:{startX,startY,endX,endY},scaleX,scaleY,canvasOffset,row:startRow,column:startColumn,unitId,sheetId,documentLayoutObject,editorUnitId:this._editorUnitId,isInArrayFormulaRange:cell==null?void 0:cell.isInArrayFormulaRange}}getCurrentEditorId(){return this._editorUnitId}changeVisible(param){const editor=this._editorService.getFocusEditor();this._refSelectionsService.getCurrentSelections().length>0&&editor&&!editor.isSheetEditor()||(this._visible=param,param.visible&&(this._editorIsDirty=!1),this._visible$.next(this._visible),this._afterVisible$.next(this._visible))}isVisible(){return this._visible}enableForceKeepVisible(){this._isForceKeepVisible=!0}disableForceKeepVisible(){this._isForceKeepVisible=!1}isForceKeepVisible(){return this._isForceKeepVisible}changeEditorDirty(dirtyStatus){this._editorIsDirty=dirtyStatus}getEditorDirty(){return this._editorIsDirty}},__name(_g,"EditorBridgeService"),_g),exports2.EditorBridgeService=__decorateClass$O([__decorateParam$N(0,engineRender.IRenderManagerService),__decorateParam$N(1,core.Inject(core.ThemeService)),__decorateParam$N(2,core.IUniverInstanceService),__decorateParam$N(3,ui.IEditorService),__decorateParam$N(4,sheets.IRefSelectionsService),__decorateParam$N(5,core.IContextService)],exports2.EditorBridgeService);const IEditorBridgeService=core.createIdentifier("univer.sheet-editor-bridge.service"),SetCellEditVisibleOperation={id:"sheet.operation.set-cell-edit-visible",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>params?(accessor.get(IEditorBridgeService).changeVisible(params),!0):!1,"handler")},SetCellEditVisibleWithF2Operation={id:"sheet.operation.set-cell-edit-visible-f2",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>(accessor.get(core.ICommandService).syncExecuteCommand(SetCellEditVisibleOperation.id,params),!0),"handler")},SetCellEditVisibleArrowOperation={id:"sheet.operation.set-cell-edit-visible-arrow",type:core.CommandType.OPERATION,handler:__name(()=>!0,"handler")},ChangeZoomRatioCommand={id:"sheet.command.change-zoom-ratio",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{if(!params)return!1;const univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet,subUnitId,unitId}=target,{delta,reset}=params;let zoom=reset?100:Math.round((worksheet.getConfig().zoomRatio+delta)*100);zoom=Math.max(SHEET_ZOOM_RANGE[0],zoom),zoom=Math.min(SHEET_ZOOM_RANGE[1],zoom);const zoomRatio=zoom/100;return accessor.get(core.ICommandService).executeCommand(SetZoomRatioOperation.id,{unitId,subUnitId,zoomRatio})},"handler")},SetZoomRatioCommand={id:"sheet.command.set-zoom-ratio",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{if(!params)return!1;const{unitId,subUnitId,zoomRatio}=params;return accessor.get(core.ICommandService).executeCommand(SetZoomRatioOperation.id,{unitId,subUnitId,zoomRatio})},"handler")};var __defProp$N=Object.defineProperty,__getOwnPropDesc$N=Object.getOwnPropertyDescriptor,__decorateClass$N=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$N(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$N(target,key,result),result},"__decorateClass$N"),__decorateParam$M=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$M");let SheetsZoomRenderController=(_h=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_commandService,_contextService){super(),this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._contextService=_contextService,this._initSkeletonListener(),this._initZoomEventListener()}updateZoom(worksheetId,zoomRatio){const worksheet=this._context.unit.getSheetBySheetId(worksheetId);return worksheet?(worksheet.getConfig().zoomRatio=zoomRatio,worksheet===this._context.unit.getActiveSheet()&&this._updateViewZoom(zoomRatio),!0):!1}_initZoomEventListener(){const scene=this._getSheetObject().scene;this.disposeWithMe(scene.onMouseWheel$.subscribeEvent(e=>{if(!e.ctrlKey||!this._contextService.getContextValue(core.FOCUSING_SHEET))return;const deltaFactor=Math.abs(e.deltaX);let ratioDelta=deltaFactor<40?.2:deltaFactor<80?.4:.2;ratioDelta*=e.deltaY>0?-1:1,scene.scaleX<1&&(ratioDelta/=2);const workbook=this._context.unit,sheet=workbook.getActiveSheet();if(!sheet)return;const currentRatio=sheet.getZoomRatio();let nextRatio=+Number.parseFloat(`${currentRatio+ratioDelta}`).toFixed(1);nextRatio=nextRatio>=4?4:nextRatio<=.1?.1:nextRatio,this._commandService.executeCommand(SetZoomRatioCommand.id,{zoomRatio:Math.round(nextRatio*10)/10,unitId:workbook.getUnitId(),subUnitId:sheet.getSheetId()}),e.preventDefault()}))}_initSkeletonListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(param=>{if(param==null)return;const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const zoomRatio=worksheet.getZoomRatio()||1;this._updateViewZoom(zoomRatio)}))}_updateViewZoom(zoomRatio){const sheetObject=this._getSheetObject();sheetObject==null||sheetObject.scene.scale(zoomRatio,zoomRatio),sheetObject==null||sheetObject.spreadsheet.makeForceDirty()}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}},__name(_h,"SheetsZoomRenderController"),_h);SheetsZoomRenderController=__decorateClass$N([__decorateParam$M(1,core.Inject(exports2.SheetSkeletonManagerService)),__decorateParam$M(2,core.ICommandService),__decorateParam$M(3,core.IContextService)],SheetsZoomRenderController);const SetZoomRatioOperation={id:"sheet.operation.set-zoom-ratio",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>{const renderUnit=accessor.get(engineRender.IRenderManagerService).getRenderById(params.unitId);return renderUnit?renderUnit.with(SheetsZoomRenderController).updateZoom(params.subUnitId,params.zoomRatio):!1},"handler")};var __defProp$M=Object.defineProperty,__getOwnPropDesc$M=Object.getOwnPropertyDescriptor,__decorateClass$M=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$M(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$M(target,key,result),result},"__decorateClass$M"),__decorateParam$L=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$L");exports2.AutoFillController=(_i=class extends core.Disposable{constructor(_univerInstanceService,_commandService,_autoFillService,_editorBridgeService,_renderManagerService,_injector,_sheetsRenderService){super();__publicField(this,"_beforeApplyData",[]);__publicField(this,"_currentLocation",null);__publicField(this,"_copyData",[]);__publicField(this,"_defaultHook");this._univerInstanceService=_univerInstanceService,this._commandService=_commandService,this._autoFillService=_autoFillService,this._editorBridgeService=_editorBridgeService,this._renderManagerService=_renderManagerService,this._injector=_injector,this._sheetsRenderService=_sheetsRenderService,this._defaultHook={id:"default",type:AutoFillHookType.Default,priority:0,onBeforeFillData:__name((location,direction)=>this._presetAndCacheData(location,direction),"onBeforeFillData"),onFillData:__name((location,direction,applyType)=>this._fillData(location,direction,applyType),"onFillData")},this._init()}_init(){this._initDefaultHook(),this._onSelectionControlFillChanged(),this._onApplyTypeChanged(),this._initQuitListener(),this._initSkeletonChange()}_initSkeletonChange(){this.disposeWithMe(this._sheetsRenderService.registerSkeletonChangingMutations(AutoFillCommand.id))}_initDefaultHook(){this.disposeWithMe(this._autoFillService.addHook(this._defaultHook))}_initQuitListener(){const quitCommands=[SetCellEditVisibleOperation.id,AutoClearContentCommand.id,sheets.SetRangeValuesCommand.id,SetZoomRatioOperation.id,sheets.SetWorksheetActiveOperation.id,sheets.MoveRangeMutation.id,sheets.RemoveRowMutation.id,sheets.RemoveColMutation.id,sheets.InsertRowMutation.id,sheets.InsertColMutation.id,sheets.MoveRowsMutation.id,sheets.MoveColsMutation.id,sheets.SetWorksheetColWidthMutation.id,sheets.SetWorksheetRowHeightMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted((command,options)=>{var _a2,_b2;const fromCollab=options==null?void 0:options.fromCollab;quitCommands.includes(command.id)&&!fromCollab&&command.params.trigger!==AutoFillCommand.id&&this._quit(),command.id===sheets.RemoveSheetMutation.id&&command.params.unitId===((_a2=this._currentLocation)==null?void 0:_a2.unitId)&&command.params.subUnitId===((_b2=this._currentLocation)==null?void 0:_b2.subUnitId)&&this._quit()})),this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(unit=>{var _a2;unit.getUnitId()===((_a2=this._currentLocation)==null?void 0:_a2.unitId)&&this._quit()}))}_quit(){this._currentLocation=null,this._beforeApplyData=[],this._copyData=[],this._autoFillService.setShowMenu(!1)}_onSelectionControlFillChanged(){const disposableCollection=new core.DisposableCollection,addListener=__name(disposableCollection2=>{disposableCollection2.dispose();const currentRenderer=this._renderManagerService.getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_SHEET);if(!currentRenderer)return;currentRenderer.with(ISheetSelectionRenderService).getSelectionControls().forEach(controlSelection=>{disposableCollection2.add(core.toDisposable(controlSelection.selectionFilled$.subscribe(filled=>{if(filled==null||filled.startColumn===-1||filled.startRow===-1||filled.endColumn===-1||filled.endRow===-1)return;const source={startColumn:controlSelection.model.startColumn,endColumn:controlSelection.model.endColumn,startRow:controlSelection.model.startRow,endRow:controlSelection.model.endRow},selection={startColumn:filled.startColumn,endColumn:filled.endColumn,startRow:filled.startRow,endRow:filled.endRow};this._triggerAutoFill(source,selection)}))),disposableCollection2.add(core.toDisposable(controlSelection.fillControl.onDblclick$.subscribeEvent(()=>{const source={startColumn:controlSelection.model.startColumn,endColumn:controlSelection.model.endColumn,startRow:controlSelection.model.startRow,endRow:controlSelection.model.endRow};this._handleDbClickFill(source)}))),disposableCollection2.add(core.toDisposable(controlSelection.fillControl.onPointerDown$.subscribeEvent(()=>{this._editorBridgeService.isVisible().visible&&this._editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.PointerDown,unitId:currentRenderer.unitId})})))})},"addListener");addListener(disposableCollection),this.disposeWithMe(this._commandService.onCommandExecuted(command=>{command.id===sheets.SetSelectionsOperation.id&&addListener(disposableCollection)}))}_onApplyTypeChanged(){this.disposeWithMe(core.toDisposable(this._autoFillService.applyType$.subscribe(()=>{this._handleFillData()})))}_triggerAutoFill(source,selection){var _a2,_b2;if(source.startColumn===selection.startColumn&&source.startRow===selection.startRow&&source.endColumn===selection.endColumn&&source.endRow===selection.endRow)return;if(selection.endColumn<source.endColumn&&selection.endColumn>source.startColumn){this._commandService.executeCommand(AutoClearContentCommand.id,{clearRange:{startRow:selection.startRow,endRow:selection.endRow,startColumn:selection.endColumn+1,endColumn:source.endColumn},selectionRange:selection});return}if(selection.endRow<source.endRow&&selection.endRow>source.startRow){this._commandService.executeCommand(AutoClearContentCommand.id,{clearRange:{startRow:selection.endRow+1,endRow:source.endRow,startColumn:selection.startColumn,endColumn:selection.endColumn},selectionRange:selection});return}const target={startRow:selection.startRow,endRow:selection.endRow,startColumn:selection.startColumn,endColumn:selection.endColumn};let direction=null;if(selection.startRow<source.startRow)direction=core.Direction.UP,target.endRow=source.startRow-1;else if(selection.endRow>source.endRow)direction=core.Direction.DOWN,target.startRow=source.endRow+1;else if(selection.startColumn<source.startColumn)direction=core.Direction.LEFT,target.endColumn=source.startColumn-1;else if(selection.endColumn>source.endColumn)direction=core.Direction.RIGHT,target.startColumn=source.endColumn+1;else return;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return;const unitId=workbook.getUnitId(),subUnitId=(_a2=workbook.getActiveSheet())==null?void 0:_a2.getSheetId();if(!subUnitId)return;this._autoFillService.direction=direction;const accessor={get:this._injector.get.bind(this._injector)},autoFillSource=rangeToDiscreteRange(source,accessor),autoFillTarget=rangeToDiscreteRange(target,accessor);if(!autoFillSource||!autoFillTarget)return;this._autoFillService.autoFillLocation={source:autoFillSource,target:autoFillTarget,unitId,subUnitId};const preferTypes=[];this._autoFillService.getActiveHooks().forEach(hook=>{var _a3;const type=(_a3=hook==null?void 0:hook.onBeforeFillData)==null?void 0:_a3.call(hook,{source:autoFillSource,target:autoFillTarget,unitId,subUnitId},direction);type&&preferTypes.unshift(type)});for(let i=0;i<preferTypes.length;i++){const menuItem=this._autoFillService.menu.find(m2=>m2.value===preferTypes[i]);if(menuItem&&!menuItem.disable){this._autoFillService.applyType=preferTypes[i];return}}const first=(_b2=this._autoFillService.menu.find(m2=>m2.disable===!1))==null?void 0:_b2.value;first&&(this._autoFillService.applyType=first)}_handleDbClickFill(source){const selection=this._detectFillRange(source);selection.endRow<=source.endRow||this._triggerAutoFill(source,selection)}_detectFillRange(source){var _a2,_b2,_c2,_d2,_e2,_f2;const{startRow,endRow,startColumn,endColumn}=source,worksheet=(_a2=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET))==null?void 0:_a2.getActiveSheet();if(!worksheet)return source;const matrix=worksheet.getCellMatrix(),maxRow=worksheet.getMaxRows()-1,maxColumn=worksheet.getMaxColumns()-1;let detectEndRow=endRow;if(startColumn>0&&((_b2=matrix.getValue(startRow,startColumn-1))==null?void 0:_b2.v)!=null){let cur=startRow;for(;((_c2=matrix.getValue(cur,startColumn-1))==null?void 0:_c2.v)!=null&&cur<maxRow;)cur+=1;detectEndRow=cur-1}else if(endColumn<maxColumn&&((_d2=matrix.getValue(endRow,endColumn+1))==null?void 0:_d2.v)!=null){let cur=startRow;for(;((_e2=matrix.getValue(cur,endColumn+1))==null?void 0:_e2.v)!=null&&cur<maxRow;)cur+=1;detectEndRow=cur-1}for(let i=endRow+1;i<=detectEndRow;i++)for(let j=startColumn;j<=endColumn;j++)if(((_f2=matrix.getValue(i,j))==null?void 0:_f2.v)!=null){detectEndRow=i-1;break}return{startColumn,endColumn,startRow,endRow:detectEndRow}}_handleFillData(){var _a2,_b2;this._currentLocation&&this._commandService.executeCommand(AutoFillCommand.id,{unitId:(_a2=this._currentLocation)==null?void 0:_a2.unitId,subUnitId:(_b2=this._currentLocation)==null?void 0:_b2.subUnitId})}_getApplyData(copyDataPiece,csLen,asLen,direction,applyType,hasStyle=!0){const applyData=[],num=Math.floor(asLen/csLen),rsd=asLen%csLen,rules=this._autoFillService.getRules();if(!hasStyle&&applyType===APPLY_TYPE.ONLY_FORMAT)return console.error("ERROR: only format can not be applied when hasStyle is false"),[];const applyDataInTypes={};rules.forEach(r=>{applyDataInTypes[r.type]=[]}),rules.forEach(r=>{const{type,applyFunctions:customApplyFunctions={}}=r,copyDataInType=copyDataPiece[type];copyDataInType&&copyDataInType.forEach(copySquad=>{const s=getLenS(copySquad.index,rsd),len=copySquad.index.length*num+s,arrData=this._applyFunctions(copySquad,len,direction,applyType,customApplyFunctions,copyDataPiece),arrIndex=getDataIndex(csLen,asLen,copySquad.index);applyDataInTypes[type].push({data:arrData,index:arrIndex})})});for(let x=0;x<asLen;x++)rules.forEach(r=>{const{type}=r,applyDataInType=applyDataInTypes[type];for(let y=0;y<applyDataInType.length;y++)x in applyDataInType[y].index&&applyData.push(applyDataInType[y].data[applyDataInType[y].index[x]])});return applyData}_applyFunctions(copySquad,len,direction,applyType,customApplyFunctions,copyDataPiece){const{data}=copySquad,isReverse=direction===core.Direction.UP||direction===core.Direction.LEFT;if(applyType===APPLY_TYPE.COPY){const custom=customApplyFunctions==null?void 0:customApplyFunctions[APPLY_TYPE.COPY];return custom?custom(copySquad,len,direction,copyDataPiece):(isReverse&&data.reverse(),fillCopy(data,len))}if(applyType===APPLY_TYPE.SERIES){const custom=customApplyFunctions==null?void 0:customApplyFunctions[APPLY_TYPE.SERIES];return custom?custom(copySquad,len,direction,copyDataPiece):(isReverse&&data.reverse(),customApplyFunctions!=null&&customApplyFunctions[APPLY_TYPE.COPY]?customApplyFunctions[APPLY_TYPE.COPY](copySquad,len,direction,copyDataPiece):fillCopy(data,len))}if(applyType===APPLY_TYPE.ONLY_FORMAT){const custom=customApplyFunctions==null?void 0:customApplyFunctions[APPLY_TYPE.ONLY_FORMAT];return custom?custom(copySquad,len,direction,copyDataPiece):fillCopyStyles(data,len)}}_getCopyData(source,direction){const worksheet=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const currentCellDatas=worksheet.getCellMatrix(),rules=this._autoFillService.getRules(),copyData=[],isVertical=direction===core.Direction.DOWN||direction===core.Direction.UP;let aArray,bArray;isVertical?(aArray=source.cols,bArray=source.rows):(aArray=source.rows,bArray=source.cols);const accessor={get:this._injector.get.bind(this._injector)};return aArray.forEach(a=>{const copyDataPiece=this._getEmptyCopyDataPiece(),prevData={type:void 0,cellData:void 0};bArray.forEach(b=>{let data;isVertical?data=currentCellDatas.getValue(b,a):data=currentCellDatas.getValue(a,b);const{type,isContinue}=rules.find(r=>r.match(data,accessor))||otherRule;if(isContinue(prevData,data)){const typeInfo=copyDataPiece[type],last=typeInfo[typeInfo.length-1];last.data.push(data),last.index.push(b-bArray[0])}else{const typeInfo=copyDataPiece[type];typeInfo?typeInfo.push({data:[data],index:[b-bArray[0]]}):copyDataPiece[type]=[{data:[data],index:[b-bArray[0]]}]}prevData.type=type,prevData.cellData=data}),copyData.push(copyDataPiece)}),copyData}_getEmptyCopyDataPiece(){const copyDataPiece={};return this._autoFillService.getRules().forEach(r=>{copyDataPiece[r.type]=[]}),copyDataPiece}_getMergeApplyData(source,target,direction,csLen){const worksheet=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const mergeData=worksheet.getMergeData(),applyMergeRanges=[];for(let i=source.startRow;i<=source.endRow;i++)for(let j=source.startColumn;j<=source.endColumn;j++){const{isMergedMainCell,startRow,startColumn,endRow,endColumn}=core.getCellInfoInMergeData(i,j,mergeData);if(isMergedMainCell){if(direction===core.Direction.DOWN){let windowStartRow=startRow+csLen,windowEndRow=endRow+csLen;for(;windowEndRow<=target.endRow;)applyMergeRanges.push({startRow:windowStartRow,startColumn,endRow:windowEndRow,endColumn}),windowStartRow+=csLen,windowEndRow+=csLen}else if(direction===core.Direction.UP){let windowStartRow=startRow-csLen,windowEndRow=endRow-csLen;for(;windowStartRow>=target.startRow;)applyMergeRanges.push({startRow:windowStartRow,startColumn,endRow:windowEndRow,endColumn}),windowStartRow-=csLen,windowEndRow-=csLen}else if(direction===core.Direction.RIGHT){let windowStartColumn=startColumn+csLen,windowEndColumn=endColumn+csLen;for(;windowEndColumn<=target.endColumn;)applyMergeRanges.push({startRow,startColumn:windowStartColumn,endRow,endColumn:windowEndColumn}),windowStartColumn+=csLen,windowEndColumn+=csLen}else if(direction===core.Direction.LEFT){let windowStartColumn=startColumn-csLen,windowEndColumn=endColumn-csLen;for(;windowStartColumn>=target.startColumn;)applyMergeRanges.push({startRow,startColumn:windowStartColumn,endRow,endColumn:windowEndColumn}),windowStartColumn-=csLen,windowEndColumn-=csLen}}}return applyMergeRanges}_presetAndCacheData(location,direction){const{source,target}=location,worksheet=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const currentCellDatas=worksheet.getCellMatrix(),applyData=[];return target.rows.forEach(i=>{const row=[];target.cols.forEach(j=>{row.push(core.Tools.deepClone(currentCellDatas.getValue(i,j)))}),applyData.push(row)}),this._beforeApplyData=applyData,this._copyData=this._getCopyData(source,direction),this._currentLocation=location,this._shouldDisableSeries(this._copyData)?(this._autoFillService.setDisableApplyType(APPLY_TYPE.SERIES,!0),APPLY_TYPE.COPY):(this._autoFillService.setDisableApplyType(APPLY_TYPE.SERIES,!1),this._getPreferredApplyType(this._copyData))}_fillData(location,direction,applyType){var _a2,_b2;const undos=[],redos=[];let hasStyle=!0;applyType===APPLY_TYPE.NO_FORMAT&&(hasStyle=!1,applyType=APPLY_TYPE.SERIES);const{source,target,unitId,subUnitId}=location;if(!source||!target||direction==null)return{undos,redos};const sourceRange=discreteRangeToRange(source),targetRange=discreteRangeToRange(target),{cols:targetCols,rows:targetRows}=target,{cols:sourceCols,rows:sourceRows}=source,copyData=this._copyData;let csLen;direction===core.Direction.DOWN||direction===core.Direction.UP?csLen=sourceRows.length:csLen=sourceCols.length;const applyDatas=[];if(direction===core.Direction.DOWN||direction===core.Direction.UP){const asLen=targetRows.length,untransformedApplyDatas=[];targetCols.forEach((_,i)=>{const copyD=copyData[i],applyData=this._getApplyData(copyD,csLen,asLen,direction,applyType,hasStyle);untransformedApplyDatas.push(applyData)});for(let i=0;i<untransformedApplyDatas[0].length;i++){const row=[];for(let j=0;j<untransformedApplyDatas.length;j++)row.push({s:null,...untransformedApplyDatas[j][i]});applyDatas.push(row)}}else{const asLen=targetCols.length;targetRows.forEach((_,i)=>{const copyD=copyData[i],applyData=this._getApplyData(copyD,csLen,asLen,direction,applyType,hasStyle),row=[];for(let j=0;j<applyData.length;j++)row.push({s:null,...applyData[j]});applyDatas.push(row)})}let applyMergeRanges=[];const style=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getStyles();hasStyle?(applyMergeRanges=this._getMergeApplyData(sourceRange,targetRange,direction,csLen),applyDatas.forEach(row=>{row.forEach(cellData=>{cellData&&style&&style&&(cellData.s=style.getStyleByCell(cellData))})})):applyDatas.forEach((row,rowIndex)=>{row.forEach((cellData,colIndex)=>{cellData&&style&&(cellData.s=style.getStyleByCell(this._beforeApplyData[rowIndex][colIndex])||null)})}),applyType===APPLY_TYPE.ONLY_FORMAT&&applyDatas.forEach((row,rowIndex)=>{row.forEach((cellData,colIndex)=>{if(cellData){const old=this._beforeApplyData[rowIndex][colIndex]||{};cellData.f=old.f,cellData.si=old.si,cellData.t=old.t,cellData.v=old.v}})});const accessor={get:this._injector.get.bind(this._injector)},deleteMergeRanges=[],mergeData=(_b2=(_a2=this._univerInstanceService.getUniverSheetInstance(unitId))==null?void 0:_a2.getSheetBySheetId(subUnitId))==null?void 0:_b2.getMergeData();mergeData&&mergeData.forEach(merge=>{core.Rectangle.intersects(merge,targetRange)&&deleteMergeRanges.push(merge)});const removeMergeMutationParams={unitId,subUnitId,ranges:deleteMergeRanges},undoRemoveMergeMutationParams=sheets.RemoveMergeUndoMutationFactory(accessor,removeMergeMutationParams);deleteMergeRanges.length&&(redos.push({id:sheets.RemoveWorksheetMergeMutation.id,params:removeMergeMutationParams}),undos.push({id:sheets.AddWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams}));const clearMutationParams={subUnitId,unitId,cellValue:generateNullCellValueRowCol([target])},undoClearMutationParams=sheets.SetRangeValuesUndoMutationFactory(accessor,clearMutationParams);redos.push({id:sheets.SetRangeValuesMutation.id,params:clearMutationParams}),undos.push({id:sheets.SetRangeValuesMutation.id,params:undoClearMutationParams});const cellValue=new core.ObjectMatrix;targetRows.forEach((row,rowIndex)=>{targetCols.forEach((col,colIndex)=>{applyDatas[rowIndex][colIndex]&&cellValue.setValue(row,col,applyDatas[rowIndex][colIndex])})});const setRangeValuesMutationParams={subUnitId,unitId,cellValue:cellValue.getMatrix()},undoSetRangeValuesMutationParams=sheets.SetRangeValuesUndoMutationFactory(accessor,setRangeValuesMutationParams);if(undos.push({id:sheets.SetRangeValuesMutation.id,params:undoSetRangeValuesMutationParams}),redos.push({id:sheets.SetRangeValuesMutation.id,params:setRangeValuesMutationParams}),applyMergeRanges!=null&&applyMergeRanges.length){const ranges=sheets.getAddMergeMutationRangeByType(applyMergeRanges),addMergeMutationParams={unitId,subUnitId,ranges},undoRemoveMutationParams=sheets.AddMergeUndoMutationFactory(accessor,addMergeMutationParams);undos.push({id:sheets.RemoveWorksheetMergeMutation.id,params:undoRemoveMutationParams}),redos.push({id:sheets.AddWorksheetMergeMutation.id,params:addMergeMutationParams})}return{undos,redos}}_shouldDisableSeries(copyData){return copyData.every(copyDataPiece=>Object.keys(copyDataPiece).every(type=>{var _a2;return((_a2=copyDataPiece[type])==null?void 0:_a2.length)===0||[DATA_TYPE.OTHER,DATA_TYPE.FORMULA].includes(type)}))}_getPreferredApplyType(copyData){return copyData.every(copyDataPiece=>Object.keys(copyDataPiece).every(type=>{var _a2,_b2;return((_a2=copyDataPiece[type])==null?void 0:_a2.length)===0||((_b2=copyDataPiece[type])==null?void 0:_b2.length)===1&&copyDataPiece[type][0].data.length===1&&DATA_TYPE.NUMBER===type}))?APPLY_TYPE.COPY:APPLY_TYPE.SERIES}},__name(_i,"AutoFillController"),_i),exports2.AutoFillController=__decorateClass$M([core.OnLifecycle(core.LifecycleStages.Steady,exports2.AutoFillController),__decorateParam$L(0,core.IUniverInstanceService),__decorateParam$L(1,core.ICommandService),__decorateParam$L(2,IAutoFillService),__decorateParam$L(3,IEditorBridgeService),__decorateParam$L(4,engineRender.IRenderManagerService),__decorateParam$L(5,core.Inject(core.Injector)),__decorateParam$L(6,core.Inject(exports2.SheetsRenderService))],exports2.AutoFillController);var __defProp$L=Object.defineProperty,__getOwnPropDesc$L=Object.getOwnPropertyDescriptor,__decorateClass$L=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$L(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$L(target,key,result),result},"__decorateClass$L"),__decorateParam$K=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$K");exports2.CellCustomRenderController=(_j=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_renderManagerService,_univerInstanceService){super();__publicField(this,"_enterActiveRender");this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService,this._initEventBinding()}_initEventBinding(){const disposableCollection=new core.DisposableCollection,workbook=this._context.unit,handleSkeletonChange=__name(skeletonParam=>{if(disposableCollection.dispose(),!skeletonParam)return;const unitId=this._context.unitId,{skeleton}=skeletonParam,currentRender=this._renderManagerService.getRenderById(unitId);if(currentRender&&currentRender.mainComponent){const spreadsheet=currentRender.mainComponent,getActiveRender=__name(evt=>{const{offsetX,offsetY}=evt,scene=currentRender.scene,worksheet=workbook.getActiveSheet();if(!worksheet)return;const activeViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([offsetX,offsetY]));if(!activeViewport)return;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY},cellPos=skeleton.getCellPositionByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY),mergeCell=skeleton.mergeData.find(range=>{const{startColumn,startRow,endColumn,endRow}=range;return cellPos.row>=startRow&&cellPos.column>=startColumn&&cellPos.row<=endRow&&cellPos.column<=endColumn}),cellIndex={actualRow:mergeCell?mergeCell.startRow:cellPos.row,actualCol:mergeCell?mergeCell.startColumn:cellPos.column,mergeCell,row:cellPos.row,col:cellPos.column};if(!cellIndex||!skeleton)return;const cellData=worksheet.getCell(cellIndex.actualRow,cellIndex.actualCol);if(!cellData)return;const renders=cellData.customRender;if(!(renders!=null&&renders.length))return;const row=cellIndex.actualRow,col=cellIndex.actualCol,sortedRenders=renders.sort(core.sortRules),subUnitId=worksheet.getSheetId(),info={data:cellData,style:skeleton.getsStyles().getStyleByCell(cellData),primaryWithCoord:skeleton.getCellByIndex(cellIndex.actualRow,cellIndex.actualCol),unitId,subUnitId,row,col,workbook,worksheet},position={x:scrollXY.x+offsetX/scaleX,y:scrollXY.y+offsetY/scaleY},activeRender=sortedRenders.find(render2=>{var _a2;return(_a2=render2.isHit)==null?void 0:_a2.call(render2,position,info)});if(activeRender)return[activeRender,info]},"getActiveRender"),disposable=spreadsheet.onPointerDown$.subscribeEvent(evt=>{var _a2;const activeRenderInfo=getActiveRender(evt);if(activeRenderInfo){const[activeRender,cellContext]=activeRenderInfo;(_a2=activeRender.onPointerDown)==null||_a2.call(activeRender,cellContext,evt)}}),moveDisposable=spreadsheet.onPointerMove$.subscribeEvent(evt=>{var _a2,_b2,_c2,_d2;const activeRenderInfo=getActiveRender(evt);if(activeRenderInfo){const[activeRender,cellContext]=activeRenderInfo;this._enterActiveRender?this._enterActiveRender.render!==activeRender&&((_b2=(_a2=this._enterActiveRender.render).onPointerLeave)==null||_b2.call(_a2,this._enterActiveRender.cellContext,evt),this._enterActiveRender={render:activeRender,cellContext},(_c2=activeRender.onPointerEnter)==null||_c2.call(activeRender,cellContext,evt)):(this._enterActiveRender={render:activeRender,cellContext},(_d2=activeRender.onPointerEnter)==null||_d2.call(activeRender,cellContext,evt))}});disposable&&disposableCollection.add(disposable),moveDisposable&&disposableCollection.add(moveDisposable)}},"handleSkeletonChange");this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(handleSkeletonChange)),handleSkeletonChange(this._sheetSkeletonManagerService.getCurrent()),this.disposeWithMe(disposableCollection)}},__name(_j,"CellCustomRenderController"),_j),exports2.CellCustomRenderController=__decorateClass$L([core.OnLifecycle(core.LifecycleStages.Rendered,exports2.CellCustomRenderController),__decorateParam$K(1,core.Inject(exports2.SheetSkeletonManagerService)),__decorateParam$K(2,engineRender.IRenderManagerService),__decorateParam$K(3,core.IUniverInstanceService)],exports2.CellCustomRenderController);function getUserListEqual(userList1,userList2){if(userList1.length!==userList2.length)return!1;const sorted1=userList1.sort((a,b)=>a.id.localeCompare(b.id)),sorted2=userList2.sort((a,b)=>a.id.localeCompare(b.id));return sorted1.every((user,index)=>{var _a2,_b2;return((_a2=user.subject)==null?void 0:_a2.userID)===((_b2=sorted2[index].subject)==null?void 0:_b2.userID)&&user.role===sorted2[index].role})}__name(getUserListEqual,"getUserListEqual");function checkCellContentInRanges(worksheet,ranges){return ranges.some(range=>checkCellContentInRange(worksheet,range))}__name(checkCellContentInRanges,"checkCellContentInRanges");function checkCellContentInRange(worksheet,range){const{startRow,startColumn,endColumn,endRow}=range,cellMatrix=worksheet.getMatrixWithMergedCells(startRow,startColumn,endRow,endColumn);let someCellGoingToBeRemoved=!1;return cellMatrix.forValue((row,col,cellData)=>{if(cellData&&(row!==startRow||col!==startColumn)&&worksheet.cellHasValue(cellData))return someCellGoingToBeRemoved=!0,!1}),someCellGoingToBeRemoved}__name(checkCellContentInRange,"checkCellContentInRange");function getClearContentMutationParamsForRanges(accessor,unitId,worksheet,ranges){const undos=[],redos=[],subUnitId=worksheet.getSheetId();return ranges.forEach(range=>{const redoMatrix=getClearContentMutationParamForRange(worksheet,range),redoMutationParams={unitId,subUnitId,cellValue:redoMatrix.getData()},undoMutationParams=sheets.SetRangeValuesUndoMutationFactory(accessor,redoMutationParams);undos.push({id:sheets.SetRangeValuesMutation.id,params:undoMutationParams}),redos.push({id:sheets.SetRangeValuesMutation.id,params:redoMutationParams})}),{undos,redos}}__name(getClearContentMutationParamsForRanges,"getClearContentMutationParamsForRanges");function getClearContentMutationParamForRange(worksheet,range){const{startRow,startColumn,endColumn,endRow}=range,cellMatrix=worksheet.getMatrixWithMergedCells(startRow,startColumn,endRow,endColumn,!0),redoMatrix=new core.ObjectMatrix;let leftTopCellValue=null;return cellMatrix.forValue((row,col,cellData)=>{cellData&&(!leftTopCellValue&&cellData.v!==void 0&&(leftTopCellValue=cellData),redoMatrix.setValue(row,col,null))}),redoMatrix.setValue(startRow,startColumn,leftTopCellValue),redoMatrix}__name(getClearContentMutationParamForRange,"getClearContentMutationParamForRange");function getCellIndexByOffsetWithMerge(offsetX,offsetY,scene,skeleton){const activeViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([offsetX,offsetY]));if(!activeViewport)return;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY},cellPos=skeleton.getCellPositionByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY),mergeCell=skeleton.mergeData.find(range=>{const{startColumn,startRow,endColumn,endRow}=range;return cellPos.row>=startRow&&cellPos.column>=startColumn&&cellPos.row<=endRow&&cellPos.column<=endColumn});return{actualRow:mergeCell?mergeCell.startRow:cellPos.row,actualCol:mergeCell?mergeCell.startColumn:cellPos.column,mergeCell,row:cellPos.row,col:cellPos.column}}__name(getCellIndexByOffsetWithMerge,"getCellIndexByOffsetWithMerge");function getViewportByCell(row,column,scene,worksheet){const freeze=worksheet.getFreeze();if(!freeze||freeze.startRow<=0&&freeze.startColumn<=0||row>freeze.startRow&&column>freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(row<=freeze.startRow&&column<=freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(row<=freeze.startRow&&column>freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(row>freeze.startRow&&column<=freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)}__name(getViewportByCell,"getViewportByCell");function transformBound2OffsetBound(originBound,scene,skeleton,worksheet){const topLeft=transformPosition2Offset(originBound.left,originBound.top,scene,skeleton,worksheet),bottomRight=transformPosition2Offset(originBound.right,originBound.bottom,scene,skeleton,worksheet);return{left:topLeft.x,top:topLeft.y,right:bottomRight.x,bottom:bottomRight.y}}__name(transformBound2OffsetBound,"transformBound2OffsetBound");function transformPosition2Offset(x,y,scene,skeleton,worksheet){const{scaleX,scaleY}=scene.getAncestorScale(),viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!viewMain)return{x,y};const freeze=worksheet.getFreeze(),{startColumn,startRow,xSplit,ySplit}=freeze,startSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(startRow-ySplit,startColumn-xSplit),endSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(startRow,startColumn),{rowHeaderWidth,columnHeaderHeight}=skeleton,freezeWidth=endSheetView.startX-startSheetView.startX,freezeHeight=endSheetView.startY-startSheetView.startY,{top,left,viewportScrollX,viewportScrollY}=viewMain;let offsetX;x>left?offsetX=(x-viewportScrollX)*scaleX:offsetX=(freezeWidth+rowHeaderWidth-(left-x))*scaleX;let offsetY;return y>top?offsetY=(y-viewportScrollY)*scaleY:offsetY=(freezeHeight+columnHeaderHeight-(top-y))*scaleX,{x:offsetX,y:offsetY}}__name(transformPosition2Offset,"transformPosition2Offset");function getHoverCellPosition(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY){const{scene}=currentRender,unitId=workbook.getUnitId(),{skeleton,sheetId}=skeletonParam,cellIndex=getCellIndexByOffsetWithMerge(offsetX,offsetY,scene,skeleton);if(!cellIndex)return null;const{row,col,mergeCell,actualCol,actualRow}=cellIndex,location={unitId,subUnitId:sheetId,workbook,worksheet,row:actualRow,col:actualCol};let anchorCell;mergeCell?anchorCell=mergeCell:anchorCell={startRow:row,endRow:row,startColumn:col,endColumn:col};const activeViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([offsetX,offsetY]));if(!activeViewport)return;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY};return{position:{startX:(skeleton.getOffsetByPositionX(anchorCell.startColumn-1)-scrollXY.x)*scaleX,endX:(skeleton.getOffsetByPositionX(anchorCell.endColumn)-scrollXY.x)*scaleX,startY:(skeleton.getOffsetByPositionY(anchorCell.startRow-1)-scrollXY.y)*scaleY,endY:(skeleton.getOffsetByPositionY(anchorCell.endRow)-scrollXY.y)*scaleY},location}}__name(getHoverCellPosition,"getHoverCellPosition");const AddWorksheetMergeCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),univerInstanceService=accessor.get(core.IUniverInstanceService),confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService),unitId=params.unitId,subUnitId=params.subUnitId,selections=params.selections,ranges=sheets.getAddMergeMutationRangeByType(selections,params.value),worksheet=univerInstanceService.getUniverSheetInstance(unitId).getSheetBySheetId(subUnitId),redoMutations=[],undoMutations=[],willClearSomeCell=checkCellContentInRanges(worksheet,ranges);if(willClearSomeCell&&!await confirmService.confirm({id:"merge.confirm.add-worksheet-merge",title:{title:"merge.confirm.title"},cancelText:localeService.t("merge.confirm.cancel"),confirmText:localeService.t("merge.confirm.confirm")}))return!1;const removeMergeMutationParams={unitId,subUnitId,ranges},addMergeMutationParams={unitId,subUnitId,ranges},undoRemoveMergeMutationParams=sheets.RemoveMergeUndoMutationFactory(accessor,removeMergeMutationParams),undoMutationParams=sheets.AddMergeUndoMutationFactory(accessor,addMergeMutationParams);if(undoRemoveMergeMutationParams.ranges.length>0&&redoMutations.push({id:sheets.RemoveWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams}),redoMutations.push({id:sheets.AddWorksheetMergeMutation.id,params:addMergeMutationParams}),undoMutations.push({id:sheets.RemoveWorksheetMergeMutation.id,params:undoMutationParams}),undoRemoveMergeMutationParams.ranges.length>0&&undoMutations.push({id:sheets.AddWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams}),willClearSomeCell){const data=getClearContentMutationParamsForRanges(accessor,unitId,worksheet,ranges);redoMutations.unshift(...data.redos),undoMutations.push(...data.undos)}const addMergeRedoSelectionsMutation=sheets.AddMergeRedoSelectionsOperationFactory(accessor,params,ranges);addMergeRedoSelectionsMutation&&redoMutations.push(addMergeRedoSelectionsMutation);const addMergeUndoSelectionsMutation=sheets.AddMergeUndoSelectionsOperationFactory(accessor,params);return addMergeUndoSelectionsMutation&&undoMutations.push(addMergeUndoSelectionsMutation),core.sequenceExecute(redoMutations,commandService).result?(undoRedoService.pushUndoRedo({unitID:unitId,undoMutations,redoMutations}),!0):!1},"handler")},AddWorksheetMergeAllCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-all",handler:__name(async accessor=>{var _a2;const commandService=accessor.get(core.ICommandService),selections=(_a2=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a2.map(s=>s.range),mergeableSelections=getMergeableSelectionsByType(MergeType.MergeAll,selections);if(!(mergeableSelections!=null&&mergeableSelections.length))return!1;const workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return!1;const workSheet=workbook.getActiveSheet();if(!workSheet)return!1;const unitId=workbook.getUnitId(),subUnitId=workSheet.getSheetId();return commandService.executeCommand(AddWorksheetMergeCommand.id,{selections:mergeableSelections,unitId,subUnitId})},"handler")},AddWorksheetMergeVerticalCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-vertical",handler:__name(async accessor=>{var _a2;const commandService=accessor.get(core.ICommandService),selections=(_a2=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a2.map(s=>s.range),mergeableSelections=getMergeableSelectionsByType(MergeType.MergeVertical,selections);if(!(mergeableSelections!=null&&mergeableSelections.length))return!1;const workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return!1;const workSheet=workbook.getActiveSheet();if(!workSheet)return!1;const unitId=workbook.getUnitId(),subUnitId=workSheet.getSheetId();return commandService.executeCommand(AddWorksheetMergeCommand.id,{value:core.Dimension.COLUMNS,selections:mergeableSelections,unitId,subUnitId})},"handler")},AddWorksheetMergeHorizontalCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-horizontal",handler:__name(async accessor=>{var _a2;const commandService=accessor.get(core.ICommandService),selections=(_a2=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a2.map(s=>s.range),mergeableSelections=getMergeableSelectionsByType(MergeType.MergeHorizontal,selections);if(!(mergeableSelections!=null&&mergeableSelections.length))return!1;const workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return!1;const workSheet=workbook.getActiveSheet();if(!workSheet)return!1;const unitId=workbook.getUnitId(),subUnitId=workSheet.getSheetId();return commandService.executeCommand(AddWorksheetMergeCommand.id,{value:core.Dimension.ROWS,selections:mergeableSelections,unitId,subUnitId})},"handler")},DeleteRangeMoveLeftConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-range-move-left-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endColumn:worksheet.getColumnCount()-1};const getRowLength=__name(range2=>range2.endRow-range2.startRow,"getRowLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getRowLength(mergeRange)>getRowLength(interSectedRange):!1})||await confirmService.confirm({id:DeleteRangeMoveLeftConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.DeleteRangeMoveLeftCommand.id):!0},"handler")},DeleteRangeMoveUpConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-range-move-up-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endRow:worksheet.getRowCount()-1};for(let i=range.startRow;i<=range.endRow;i++)if(worksheet.getRowFiltered(i)&&await confirmService.confirm({id:DeleteRangeMoveUpConfirmCommand.id,title:{title:localeService.t("filter.confirm.error")},children:{title:localeService.t("filter.confirm.notAllowedToInsertRange")},confirmText:localeService.t("button.confirm")}))return!1;const getColLength=__name(range2=>range2.endColumn-range2.startColumn,"getColLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getColLength(mergeRange)>getColLength(interSectedRange):!1})||await confirmService.confirm({id:DeleteRangeMoveUpConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.DeleteRangeMoveUpCommand.id):!0},"handler")},HideRowConfirmCommand={id:"sheet.command.hide-row-confirm",type:core.CommandType.COMMAND,handler:__name(async accessor=>{var _a2;const ranges=(_a2=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a2.map(s=>s.range);if(!(ranges!=null&&ranges.length))return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allRowRanges=worksheet.getVisibleRows();if(isAllRowsCovered(allRowRanges,ranges)){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.hide-row",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.hideAllRowsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.SetRowHiddenCommand.id),!0},"handler")},HideColConfirmCommand={id:"sheet.command.hide-col-confirm",type:core.CommandType.COMMAND,handler:__name(async accessor=>{var _a2;const ranges=(_a2=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a2.map(s=>s.range);if(!(ranges!=null&&ranges.length))return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allColumnRanges=worksheet.getVisibleCols();if(isAllColumnsCovered(allColumnRanges,ranges)){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.hide-col",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.hideAllColumnsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.SetColHiddenCommand.id),!0},"handler")},SetRangeBoldCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-bold",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docs.SetInlineFormatBoldCommand.id):commandService.executeCommand(sheets.SetBoldCommand.id)},"handler")},SetRangeItalicCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-italic",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docs.SetInlineFormatItalicCommand.id):commandService.executeCommand(sheets.SetItalicCommand.id)},"handler")},SetRangeUnderlineCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-underline",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docs.SetInlineFormatUnderlineCommand.id):commandService.executeCommand(sheets.SetUnderlineCommand.id)},"handler")},SetRangeStrickThroughCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-stroke",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docs.SetInlineFormatStrikethroughCommand.id):commandService.executeCommand(sheets.SetStrikeThroughCommand.id)},"handler")},SetRangeSubscriptCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-subscript",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docs.SetInlineFormatSubscriptCommand.id):!1},"handler")},SetRangeSuperscriptCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-superscript",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docs.SetInlineFormatSuperscriptCommand.id):!1},"handler")},SetRangeFontSizeCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-fontsize",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docs.SetInlineFormatFontSizeCommand.id,params):commandService.executeCommand(sheets.SetFontSizeCommand.id,params)},"handler")},SetRangeFontFamilyCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-font-family",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docs.SetInlineFormatFontFamilyCommand.id,params):commandService.executeCommand(sheets.SetFontFamilyCommand.id,params)},"handler")},SetRangeTextColorCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-text-color",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docs.SetInlineFormatTextColorCommand.id,params):commandService.executeCommand(sheets.SetTextColorCommand.id,params)},"handler")},InsertRangeMoveDownConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.insert-range-move-down-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endRow:worksheet.getRowCount()-1};for(let i=range.startRow;i<=range.endRow;i++)if(worksheet.getRowFiltered(i)&&await confirmService.confirm({id:InsertRangeMoveDownConfirmCommand.id,title:{title:localeService.t("filter.confirm.error")},children:{title:localeService.t("filter.confirm.notAllowedToInsertRange")},confirmText:localeService.t("button.confirm")}))return!1;const getColLength=__name(range2=>range2.endColumn-range2.startColumn,"getColLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getColLength(mergeRange)>getColLength(interSectedRange):!1})||await confirmService.confirm({id:InsertRangeMoveDownConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.InsertRangeMoveDownCommand.id):!0},"handler")},InsertRangeMoveRightConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.insert-range-move-right-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endColumn:worksheet.getColumnCount()-1};const getRowLength=__name(range2=>range2.endRow-range2.startRow,"getRowLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getRowLength(mergeRange)>getRowLength(interSectedRange):!1})||await confirmService.confirm({id:InsertRangeMoveRightConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.InsertRangeMoveRightCommand.id):!0},"handler")},RefillCommand={id:"sheet.command.refill",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const autoFillService=accessor.get(IAutoFillService);return autoFillService.applyType=params.type,!0},"handler")},RemoveRowConfirmCommand={id:"sheet.command.remove-row-confirm",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a2;const selectionManagerService=accessor.get(sheets.SheetsSelectionsService);let range=params==null?void 0:params.range;if(range||(range=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.range),!range)return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allRowRanges=worksheet.getVisibleRows();if(isAllRowsCovered(allRowRanges,[range])){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.remove-row",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.deleteAllRowsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.RemoveRowCommand.id,{range}),!0},"handler")},RemoveColConfirmCommand={id:"sheet.command.remove-col-confirm",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a2;const selectionManagerService=accessor.get(sheets.SheetsSelectionsService);let range=params==null?void 0:params.range;if(range||(range=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.range),!range)return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allColumnRanges=worksheet.getVisibleCols();if(isAllColumnsCovered(allColumnRanges,[range])){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.remove-col",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.deleteAllColumnsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.RemoveColCommand.id,{range}),!0},"handler")},RemoveSheetConfirmCommand={id:"sheet.command.remove-sheet-confirm",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const{subUnitId}=params,confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.remove-sheet",title:{title:localeService.t("sheetConfig.deleteSheet")},children:{title:localeService.t("sheetConfig.deleteSheetContent")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?(await commandService.executeCommand(sheets.RemoveSheetCommand.id,{subUnitId}),!0):!1},"handler")};var __defProp$K=Object.defineProperty,__getOwnPropDesc$K=Object.getOwnPropertyDescriptor,__decorateClass$K=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$K(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$K(target,key,result),result},"__decorateClass$K"),__decorateParam$J=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$J");const DEFAULT_Z_INDEX=1e4,IMarkSelectionService=core.createIdentifier("univer.mark-selection-service");exports2.MarkSelectionService=(_k=class extends core.Disposable{constructor(_currentService,_renderManagerService,_themeService){super();__publicField(this,"_shapeMap",new Map);this._currentService=_currentService,this._renderManagerService=_renderManagerService,this._themeService=_themeService}addShape(selection,exits=[],zIndex=DEFAULT_Z_INDEX){var _a2;const workbook=this._currentService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),subUnitId=(_a2=workbook.getActiveSheet())==null?void 0:_a2.getSheetId();if(!subUnitId)return null;const id=core.Tools.generateRandomId();return this._shapeMap.set(id,{selection,subUnitId,unitId:workbook.getUnitId(),zIndex,control:null,exits}),this.refreshShapes(),id}refreshShapes(){var _a2;const currentSheet=this._currentService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!currentSheet)return;const currentUnitId=currentSheet.getUnitId(),currentSubUnitId=(_a2=currentSheet.getActiveSheet())==null?void 0:_a2.getSheetId();this._shapeMap.forEach(shape=>{var _a3;const{unitId,subUnitId,selection,control:oldControl,zIndex}=shape;if(oldControl&&oldControl.dispose(),unitId!==currentUnitId||subUnitId!==currentSubUnitId)return;const{style}=selection,renderUnit=this._renderManagerService.getRenderById(unitId);if(!renderUnit)return;const skeleton=(_a3=this._renderManagerService.withCurrentTypeOfUnit(core.UniverInstanceType.UNIVER_SHEET,exports2.SheetSkeletonManagerService))==null?void 0:_a3.getCurrentSkeleton();if(!skeleton)return;const{scene}=renderUnit,{rowHeaderWidth,columnHeaderHeight}=skeleton,control=new SelectionControl(scene,zIndex,!1,this._themeService),{rangeWithCoord,primaryWithCoord}=renderUnit.with(ISheetSelectionRenderService).attachSelectionWithCoord(selection);control.update(rangeWithCoord,rowHeaderWidth,columnHeaderHeight,style,primaryWithCoord),shape.control=control})}getShapeMap(){return this._shapeMap}removeShape(id){const shapeInfo=this._shapeMap.get(id);if(!shapeInfo)return;const{control}=shapeInfo;control&&control.dispose(),this._shapeMap.delete(id)}removeAllShapes(){for(const shape of this._shapeMap.values()){const{control}=shape;control&&control.dispose()}this._shapeMap.clear()}},__name(_k,"MarkSelectionService"),_k),exports2.MarkSelectionService=__decorateClass$K([__decorateParam$J(0,core.IUniverInstanceService),__decorateParam$J(1,engineRender.IRenderManagerService),__decorateParam$J(2,core.Inject(core.ThemeService))],exports2.MarkSelectionService);function createCopyPasteSelectionStyle(themeService){return{strokeWidth:1.5,stroke:themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}__name(createCopyPasteSelectionStyle,"createCopyPasteSelectionStyle");var __defProp$J=Object.defineProperty,__getOwnPropDesc$J=Object.getOwnPropertyDescriptor,__decorateClass$J=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$J(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$J(target,key,result),result},"__decorateClass$J"),__decorateParam$I=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$I"),FormatPainterStatus=(FormatPainterStatus2=>(FormatPainterStatus2[FormatPainterStatus2.OFF=0]="OFF",FormatPainterStatus2[FormatPainterStatus2.ONCE=1]="ONCE",FormatPainterStatus2[FormatPainterStatus2.INFINITE=2]="INFINITE",FormatPainterStatus2))(FormatPainterStatus||{});const IFormatPainterService=core.createIdentifier("univer.format-painter-service");let FormatPainterService=(_l=class extends core.Disposable{constructor(_selectionManagerService,_themeService,_markSelectionService,_logService,_commandService,_undoRedoService){super();__publicField(this,"status$");__publicField(this,"_selectionFormat");__publicField(this,"_markId",null);__publicField(this,"_status$");__publicField(this,"_defaultHook",null);__publicField(this,"_extendHooks",[]);this._selectionManagerService=_selectionManagerService,this._themeService=_themeService,this._markSelectionService=_markSelectionService,this._logService=_logService,this._commandService=_commandService,this._undoRedoService=_undoRedoService,this._status$=new rxjs.BehaviorSubject(0),this.status$=this._status$.asObservable(),this._selectionFormat={styles:new core.ObjectMatrix,merges:[]}}addHook(hook){var _a2,_b2,_c2;hook.isDefaultHook&&((_a2=hook.priority)!=null?_a2:0)>((_c2=(_b2=this._defaultHook)==null?void 0:_b2.priority)!=null?_c2:-1)?this._defaultHook=hook:(this._extendHooks.push(hook),this._extendHooks.sort((a,b)=>(a.priority||0)-(b.priority||0)))}getHooks(){return this._defaultHook?[this._defaultHook,...this._extendHooks]:this._extendHooks}setStatus(status){this._updateRangeMark(status),this._status$.next(status),this.getHooks().forEach(hook=>{hook.onStatusChange(status)})}getStatus(){return this._status$.getValue()}setSelectionFormat(format){this._selectionFormat=format}getSelectionFormat(){return this._selectionFormat}applyFormatPainter(unitId,subUnitId,range){const hooks=this.getHooks(),redoMutationsInfo=[],undoMutationsInfo=[];hooks.forEach(h=>{const applyReturn=h.onApply(unitId,subUnitId,range,this._selectionFormat);applyReturn&&(redoMutationsInfo.push(...applyReturn.redos),undoMutationsInfo.push(...applyReturn.undos))}),this._logService.log("[FormatPainterService]","apply mutations",{undoMutationsInfo,redoMutationsInfo});const result=redoMutationsInfo.every(m2=>this._commandService.executeCommand(m2.id,m2.params));return result&&this._undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:undoMutationsInfo,redoMutations:redoMutationsInfo}),result}_updateRangeMark(status){if(this._markSelectionService.removeAllShapes(),status!==0){const selection=this._selectionManagerService.getCurrentLastSelection();if(selection){const style=createCopyPasteSelectionStyle(this._themeService);status===2?this._markId=this._markSelectionService.addShape({...selection,style}):this._markId=this._markSelectionService.addShape({...selection,style},[sheets.SetRangeValuesMutation.id])}}}},__name(_l,"FormatPainterService"),_l);FormatPainterService=__decorateClass$J([__decorateParam$I(0,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$I(1,core.Inject(core.ThemeService)),__decorateParam$I(2,IMarkSelectionService),__decorateParam$I(3,core.ILogService),__decorateParam$I(4,core.ICommandService),__decorateParam$I(5,core.IUndoRedoService)],FormatPainterService);const SetFormatPainterOperation={id:"sheet.operation.set-format-painter",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>params?(accessor.get(IFormatPainterService).setStatus(params.status),!0):!1,"handler")},SetInfiniteFormatPainterCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-infinite-format-painter",handler:__name(async accessor=>{const status=accessor.get(IFormatPainterService).getStatus();let newStatus;return status!==FormatPainterStatus.OFF?newStatus=FormatPainterStatus.OFF:newStatus=FormatPainterStatus.INFINITE,accessor.get(core.ICommandService).executeCommand(SetFormatPainterOperation.id,{status:newStatus})},"handler")},SetOnceFormatPainterCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-once-format-painter",handler:__name(async accessor=>{const status=accessor.get(IFormatPainterService).getStatus();let newStatus;return status!==FormatPainterStatus.OFF?newStatus=FormatPainterStatus.OFF:newStatus=FormatPainterStatus.ONCE,accessor.get(core.ICommandService).executeCommand(SetFormatPainterOperation.id,{status:newStatus})},"handler")},ApplyFormatPainterCommand={type:core.CommandType.COMMAND,id:"sheet.command.apply-format-painter",handler:__name(async(accessor,params)=>accessor.get(IFormatPainterService).applyFormatPainter(params.unitId,params.subUnitId,params.range),"handler")},SetSelectionFrozenCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-selection-frozen",handler:__name(async(accessor,params)=>{const{type}=params||{},univerInstanceService=accessor.get(core.IUniverInstanceService),undoRedoService=accessor.get(core.IUndoRedoService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{unitId,subUnitId}=target,commandService=accessor.get(core.ICommandService),selections=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections();if(!selections)return!1;const currentSelection=selections[(selections==null?void 0:selections.length)-1],{range}=currentSelection,scrollManagerService=accessor.get(engineRender.IRenderManagerService).getRenderById(unitId).with(SheetScrollManagerService),{sheetViewStartRow=0,sheetViewStartColumn=0}=scrollManagerService.getCurrentScrollState()||{};let startRow,startColumn,ySplit,xSplit;const{startRow:selectRow,startColumn:selectColumn,rangeType}=range;if(rangeType===core.RANGE_TYPE.ROW||type===1)startRow=selectRow,ySplit=selectRow-sheetViewStartRow,startColumn=-1,xSplit=0;else if(rangeType===core.RANGE_TYPE.COLUMN||type===2)startRow=-1,ySplit=0,startColumn=selectColumn,xSplit=selectColumn-sheetViewStartColumn;else if(rangeType===core.RANGE_TYPE.NORMAL)startRow=selectRow,ySplit=selectRow-sheetViewStartRow,startColumn=selectColumn,xSplit=selectColumn-sheetViewStartColumn;else return!1;const redoMutationParams={unitId,subUnitId,startRow,startColumn,xSplit:startColumn>0?Math.max(1,xSplit):xSplit,ySplit:startRow>0?Math.max(1,ySplit):ySplit},undoMutationParams=sheets.SetFrozenMutationFactory(accessor,redoMutationParams);return commandService.syncExecuteCommand(sheets.SetFrozenMutation.id,redoMutationParams)&&undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:[{id:sheets.SetFrozenMutation.id,params:undoMutationParams}],redoMutations:[{id:sheets.SetFrozenMutation.id,params:redoMutationParams}]}),!0},"handler")},SetRowFrozenCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-row-frozen",handler:__name(async accessor=>(accessor.get(core.ICommandService).executeCommand(SetSelectionFrozenCommand.id,{type:1}),!0),"handler")},SetColumnFrozenCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-col-frozen",handler:__name(async accessor=>(accessor.get(core.ICommandService).executeCommand(SetSelectionFrozenCommand.id,{type:2}),!0),"handler")},CancelFrozenCommand={type:core.CommandType.COMMAND,id:"sheet.command.cancel-frozen",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),undoRedoService=accessor.get(core.IUndoRedoService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{unitId,subUnitId}=target,redoMutationParams={unitId,subUnitId,startRow:-1,startColumn:-1,xSplit:0,ySplit:0},undoMutationParams=sheets.SetFrozenMutationFactory(accessor,redoMutationParams);return commandService.syncExecuteCommand(sheets.SetFrozenMutation.id,redoMutationParams)&&undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:[{id:sheets.SetFrozenMutation.id,params:undoMutationParams}],redoMutations:[{id:sheets.SetFrozenMutation.id,params:redoMutationParams}]}),!0},"handler")},ISheetBarService=core.createIdentifier("univer.sheetbar-service"),_SheetBarService=class _SheetBarService extends core.Disposable{constructor(){super();__publicField(this,"renameId$");__publicField(this,"removeId$");__publicField(this,"scroll$");__publicField(this,"scrollX$");__publicField(this,"addSheet$");__publicField(this,"_renameId$");__publicField(this,"_removeId$");__publicField(this,"_scroll$");__publicField(this,"_scrollX$");__publicField(this,"_addSheet$");__publicField(this,"_currentHandler",null);this._renameId$=new rxjs.Subject,this.renameId$=this._renameId$.asObservable(),this._removeId$=new rxjs.Subject,this.removeId$=this._removeId$.asObservable(),this._scroll$=new rxjs.Subject,this.scroll$=this._scroll$.asObservable(),this._scrollX$=new rxjs.Subject,this.scrollX$=this._scrollX$.asObservable(),this._addSheet$=new rxjs.Subject,this.addSheet$=this._addSheet$.asObservable()}setRenameId(renameId){this._renameId$.next(renameId)}setRemoveId(removeId){this._removeId$.next(removeId)}setScroll(state){this._scroll$.next(state)}setScrollX(x){this._scrollX$.next(x)}setAddSheet(index){this._addSheet$.next(index)}triggerSheetBarMenu(){var _a2;(_a2=this._currentHandler)==null||_a2.handleSheetBarMenu()}registerSheetBarMenuHandler(handler){if(this._currentHandler)throw new Error("There is already a context menu handler!");return this._currentHandler=handler,core.toDisposable(()=>{this._currentHandler=null})}};__name(_SheetBarService,"SheetBarService");let SheetBarService=_SheetBarService;const ShowMenuListCommand={id:"ui-sheet.command.show-menu-list",type:core.CommandType.OPERATION,handler:__name(async accessor=>(accessor.get(ISheetBarService).triggerSheetBarMenu(),!0),"handler")},SetActivateCellEditOperation={id:"sheet.operation.set-activate-cell-edit",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>(accessor.get(IEditorBridgeService).setEditCell(params),!0),"handler")},RenameSheetOperation={id:"sheet.operation.rename-sheet",type:core.CommandType.OPERATION,handler:__name(async(accessor,params)=>{const sheetBarService=accessor.get(ISheetBarService);return params&&sheetBarService.setRenameId(params.subUnitId),!0},"handler")};var jsxRuntime={exports:{}},reactJsxRuntime_production_min={};/**
10
2
  * @license React
11
3
  * react-jsx-runtime.production.min.js
12
4
  *
@@ -14,9 +6,18 @@
14
6
  *
15
7
  * This source code is licensed under the MIT license found in the
16
8
  * LICENSE file in the root directory of this source tree.
17
- */var hu=L,mu=Symbol.for("react.element"),fu=Symbol.for("react.fragment"),Su=Object.prototype.hasOwnProperty,gu=hu.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,pu={key:!0,ref:!0,__self:!0,__source:!0};function Xs(n,o,e){var t,i={},r=null,s=null;e!==void 0&&(r=""+e),o.key!==void 0&&(r=""+o.key),o.ref!==void 0&&(s=o.ref);for(t in o)Su.call(o,t)&&!pu.hasOwnProperty(t)&&(i[t]=o[t]);if(n&&n.defaultProps)for(t in o=n.defaultProps,o)i[t]===void 0&&(i[t]=o[t]);return{$$typeof:mu,type:n,key:r,ref:s,props:i,_owner:gu.current}}Ai.Fragment=fu,Ai.jsx=Xs,Ai.jsxs=Xs,js.exports=Ai;var _=js.exports;const lr={sheetsUiContextMenuInput:"univer-sheets-ui-context-menu-input",sheetsUiContextMenuInputContainer:"univer-sheets-ui-context-menu-input-container",sheetsUiContextMenuInputNumber:"univer-sheets-ui-context-menu-input-number"},zs=n=>{const{prefix:o,suffix:e,value:t,onChange:i,min:r=Number.MIN_SAFE_INTEGER,max:s=Number.MAX_SAFE_INTEGER}=n,a=l.useDependency(l.LocaleService),[c,d]=L.useState(),u=f=>{var S;d(f==null?void 0:f.toString()),i((S=f==null?void 0:f.toString())!=null?S:"")};L.useEffect(()=>{d(t)},[t]);function h(f){f.key==="Backspace"&&f.stopPropagation()}return _.jsxs("div",{className:lr.sheetsUiContextMenuInput,children:[a.t(o),_.jsx("span",{className:lr.sheetsUiContextMenuInputContainer,onClick:f=>f.stopPropagation(),children:_.jsx($.InputNumber,{className:lr.sheetsUiContextMenuInputNumber,value:Number(c),precision:0,onKeyDown:h,onChange:u,min:r,max:s})}),a.t(e)]})};var le=(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))(le||{});function vu(n){const o=n.get(et);return{id:En.id,subId:Pi.id,group:T.MenuGroup.TOOLBAR_FORMAT,type:T.MenuItemType.BUTTON,icon:"BrushSingle",title:"Format Painter",tooltip:"toolbar.formatPainter",positions:[T.MenuPosition.TOOLBAR_START],activated$:new A.Observable(e=>{let t=!1;const i=o.status$.subscribe(r=>{t=r!==Ae.OFF,e.next(t)});return e.next(t),()=>{i.unsubscribe()}}),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetCopyPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Cu(n){const o=n.get(l.ICommandService),e=n.get(l.IUniverInstanceService),t=n.get(l.IContextService),i=n.get(m.SheetsSelectionsService);return{id:Zt.id,group:T.MenuGroup.TOOLBAR_FORMAT,type:T.MenuItemType.BUTTON,icon:"BoldSingle",title:"Set bold",tooltip:"toolbar.bold",positions:[T.MenuPosition.TOOLBAR_START],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),activated$:Re(e,!1,({worksheet:r})=>new A.Observable(s=>{var u;const a=o.onCommandExecuted(h=>{var S,g;const f=h.id;if(f===m.SetRangeValuesMutation.id||f===m.SetSelectionsOperation.id||f===m.SetWorksheetActiveOperation.id){const p=(S=i.getCurrentLastSelection())==null?void 0:S.primary;let v=l.FontWeight.NORMAL;if(p!=null){const C=r.getRange(p.startRow,p.startColumn);v=C==null?void 0:C.getFontWeight()}s.next(v===l.FontWeight.BOLD)}if((f===te.SetTextSelectionsOperation.id||f===te.SetInlineFormatCommand.id)&&t.getContextValue(l.EDITOR_ACTIVATED)&&t.getContextValue(l.FOCUSING_SHEET)){const p=On(n);if(p==null)return;const v=(g=p.ts)==null?void 0:g.bl;s.next(v===l.BooleanNumber.TRUE)}}),c=(u=i.getCurrentLastSelection())==null?void 0:u.primary;if(!r){s.next(!1);return}let d=l.FontWeight.NORMAL;if(c!=null){const h=r.getRange(c.startRow,c.startColumn);d=h==null?void 0:h.getFontWeight()}return s.next(d===l.FontWeight.BOLD),a.dispose})),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function _u(n){const o=n.get(l.ICommandService),e=n.get(l.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),i=n.get(l.IContextService);return{id:Gt.id,group:T.MenuGroup.TOOLBAR_FORMAT,type:T.MenuItemType.BUTTON,icon:"ItalicSingle",title:"Set italic",tooltip:"toolbar.italic",positions:[T.MenuPosition.TOOLBAR_START],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),activated$:Re(e,!1,({worksheet:r})=>new A.Observable(s=>{var u;const a=o.onCommandExecuted(h=>{var S,g;const f=h.id;if(f===m.SetRangeValuesMutation.id||f===m.SetSelectionsOperation.id||f===m.SetWorksheetActiveOperation.id){const p=(S=t.getCurrentLastSelection())==null?void 0:S.primary;let v=l.FontItalic.NORMAL;if(p!=null){const C=r.getRange(p.startRow,p.startColumn);v=C==null?void 0:C.getFontStyle()}s.next(v===l.FontItalic.ITALIC)}if((f===te.SetTextSelectionsOperation.id||f===te.SetInlineFormatCommand.id)&&i.getContextValue(l.EDITOR_ACTIVATED)&&i.getContextValue(l.FOCUSING_SHEET)){const p=On(n);if(p==null)return;const v=(g=p.ts)==null?void 0:g.it;s.next(v===l.BooleanNumber.TRUE)}}),c=(u=t.getCurrentLastSelection())==null?void 0:u.primary;let d=l.FontItalic.NORMAL;if(c!=null){const h=r.getRange(c.startRow,c.startColumn);d=h==null?void 0:h.getFontStyle()}return s.next(d===l.FontItalic.ITALIC),a.dispose})),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Iu(n){const o=n.get(l.ICommandService),e=n.get(l.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),i=n.get(l.IContextService);return{id:Kt.id,group:T.MenuGroup.TOOLBAR_FORMAT,type:T.MenuItemType.BUTTON,icon:"UnderlineSingle",title:"Set underline",tooltip:"toolbar.underline",positions:[T.MenuPosition.TOOLBAR_START],activated$:Re(e,!1,({worksheet:r})=>new A.Observable(s=>{var u;const a=o.onCommandExecuted(h=>{var S,g;const f=h.id;if(f===m.SetRangeValuesMutation.id||f===m.SetSelectionsOperation.id||f===m.SetWorksheetActiveOperation.id){const p=(S=t.getCurrentLastSelection())==null?void 0:S.primary;let v;if(p!=null){const C=r.getRange(p.startRow,p.startColumn);v=C==null?void 0:C.getUnderline()}s.next(!!(v&&v.s))}if((f===te.SetTextSelectionsOperation.id||f===te.SetInlineFormatCommand.id)&&i.getContextValue(l.EDITOR_ACTIVATED)&&i.getContextValue(l.FOCUSING_SHEET)){const p=On(n);if(p==null)return;const v=(g=p.ts)==null?void 0:g.ul;s.next((v==null?void 0:v.s)===l.BooleanNumber.TRUE)}}),c=(u=t.getCurrentLastSelection())==null?void 0:u.primary;let d;if(c!=null){const h=r.getRange(c.startRow,c.startColumn);d=h==null?void 0:h.getUnderline()}return s.next(!!(d&&d.s)),a.dispose})),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function bu(n){const o=n.get(l.ICommandService),e=n.get(l.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),i=n.get(l.IContextService);return{id:qt.id,group:T.MenuGroup.TOOLBAR_FORMAT,type:T.MenuItemType.BUTTON,icon:"StrikethroughSingle",title:"Set strike through",tooltip:"toolbar.strikethrough",positions:[T.MenuPosition.TOOLBAR_START],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),activated$:Re(e,!1,({worksheet:r})=>new A.Observable(s=>{var u;const a=o.onCommandExecuted(h=>{var S,g;const f=h.id;if(f===m.SetRangeValuesMutation.id||f===m.SetSelectionsOperation.id||f===m.SetWorksheetActiveOperation.id){const p=(S=t.getCurrentLastSelection())==null?void 0:S.primary;let v;if(p!=null){const C=r.getRange(p.startRow,p.startColumn);v=C==null?void 0:C.getStrikeThrough()}s.next(!!(v&&v.s))}if((f===te.SetTextSelectionsOperation.id||f===te.SetInlineFormatCommand.id)&&i.getContextValue(l.EDITOR_ACTIVATED)&&i.getContextValue(l.FOCUSING_SHEET)){const p=On(n);if(p==null)return;const v=(g=p.ts)==null?void 0:g.st;s.next((v==null?void 0:v.s)===l.BooleanNumber.TRUE)}}),c=(u=t.getCurrentLastSelection())==null?void 0:u.primary;let d;if(c!=null){const h=r.getRange(c.startRow,c.startColumn);d=h==null?void 0:h.getStrikeThrough()}return s.next(!!(d&&d.s)),a.dispose})),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Ru(n){const o=n.get(l.ICommandService),e=n.get(l.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),i=l.DEFAULT_STYLES.ff;return{id:Ti.id,tooltip:"toolbar.font",group:T.MenuGroup.TOOLBAR_FORMAT,type:T.MenuItemType.SELECTOR,label:or,positions:[T.MenuPosition.TOOLBAR_START],selections:T.FONT_FAMILY_LIST.map(r=>({label:{name:rr,hoverable:!0},value:r.value})),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),value$:Re(e,i,({worksheet:r})=>new A.Observable(s=>{var u;const a=o.onCommandExecuted(h=>{var p;const f=h.id;if(f!==m.SetRangeValuesMutation.id&&f!==m.SetSelectionsOperation.id&&f!==m.SetWorksheetActiveOperation.id)return;const S=(p=t.getCurrentLastSelection())==null?void 0:p.primary;let g;if(S!=null){const v=r.getRange(S.startRow,S.startColumn);g=v==null?void 0:v.getFontFamily()}s.next(g!=null?g:i)}),c=(u=t.getCurrentLastSelection())==null?void 0:u.primary;let d;if(c!=null){const h=r.getRange(c.startRow,c.startColumn);d=h==null?void 0:h.getFontFamily()}return s.next(d!=null?d:i),a.dispose})),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Tu(n){const o=n.get(l.ICommandService),e=n.get(l.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),i=n.get(l.IContextService),r=l.DEFAULT_STYLES.fs,s=ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]});return{id:Ri.id,group:T.MenuGroup.TOOLBAR_FORMAT,type:T.MenuItemType.SELECTOR,tooltip:"toolbar.fontSize",label:{name:sr,props:{min:1,max:400,disabled$:s}},positions:[T.MenuPosition.TOOLBAR_START],selections:T.FONT_SIZE_LIST,disabled$:s,value$:Re(e,r,({worksheet:a})=>new A.Observable(c=>{var f;const d=o.onCommandExecuted(S=>{var p,v;const g=S.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const C=(p=t.getCurrentLastSelection())==null?void 0:p.primary;let I;if(C!=null){const b=a.getRange(C.startRow,C.startColumn);I=b==null?void 0:b.getFontSize()}c.next(I!=null?I:r)}if((g===te.SetTextSelectionsOperation.id||g===te.SetInlineFormatCommand.id)&&i.getContextValue(l.EDITOR_ACTIVATED)&&i.getContextValue(l.FOCUSING_SHEET)){const C=On(n);if(C==null)return;const I=(v=C.ts)==null?void 0:v.fs;c.next(I!=null?I:r)}}),u=(f=t.getCurrentLastSelection())==null?void 0:f.primary;let h;if(u!=null){const S=a.getRange(u.startRow,u.startColumn);h=S==null?void 0:S.getFontSize()}return c.next(h!=null?h:r),d.dispose})),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Eu(n){return{id:m.ResetTextColorCommand.id,type:T.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",positions:Qt.id,disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Pu(n){const o=n.get(l.ICommandService),e=n.get(l.ThemeService);return{id:Qt.id,icon:"FontColor",tooltip:"toolbar.textColor.main",group:T.MenuGroup.TOOLBAR_FORMAT,type:T.MenuItemType.BUTTON_SELECTOR,positions:[T.MenuPosition.TOOLBAR_START],selections:[{label:{name:wn,hoverable:!1}}],value$:new A.Observable(t=>{const i=e.getCurrentTheme().textColor,r=o.onCommandExecuted(s=>{if(s.id===Qt.id){const a=s.params.value;t.next(a!=null?a:i)}});return t.next(i),r.dispose}),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function wu(n){return{id:m.ResetBackgroundColorCommand.id,type:T.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",positions:m.SetBackgroundColorCommand.id,disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function yu(n){const o=n.get(l.ICommandService),e=n.get(l.ThemeService);return{id:m.SetBackgroundColorCommand.id,tooltip:"toolbar.fillColor.main",group:T.MenuGroup.TOOLBAR_FORMAT,type:T.MenuItemType.BUTTON_SELECTOR,positions:[T.MenuPosition.TOOLBAR_START],icon:"PaintBucket",selections:[{label:{name:wn,hoverable:!1}}],value$:new A.Observable(t=>{const i=e.getCurrentTheme().primaryColor,r=o.onCommandExecuted(s=>{if(s.id===m.SetBackgroundColorCommand.id){const a=s.params.value;t.next(a!=null?a:i)}});return t.next(i),r.dispose}),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const Ys=[{label:"align.left",icon:"LeftJustifyingSingle",value:l.HorizontalAlign.LEFT},{label:"align.center",icon:"HorizontallySingle",value:l.HorizontalAlign.CENTER},{label:"align.right",icon:"RightJustifyingSingle",value:l.HorizontalAlign.RIGHT}];function Mu(n){const o=n.get(l.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=l.HorizontalAlign.LEFT;return{id:m.SetHorizontalTextAlignCommand.id,icon:Ys[0].icon,positions:[T.MenuPosition.TOOLBAR_START],tooltip:"toolbar.horizontalAlignMode.main",group:T.MenuGroup.TOOLBAR_LAYOUT,type:T.MenuItemType.SELECTOR,selections:Ys,value$:Re(o,t,({worksheet:i})=>new A.Observable(r=>{var d;const s=n.get(l.ICommandService).onCommandExecuted(u=>{var g;const h=u.id;if(h!==m.SetHorizontalTextAlignCommand.id&&h!==m.SetSelectionsOperation.id&&h!==m.SetWorksheetActiveOperation.id)return;const f=(g=e.getCurrentLastSelection())==null?void 0:g.primary;let S;if(f!=null){const p=i.getRange(f.startRow,f.startColumn);S=p==null?void 0:p.getHorizontalAlignment()}r.next(S!=null?S:t)}),a=(d=e.getCurrentLastSelection())==null?void 0:d.primary;let c;if(a!=null){const u=i.getRange(a.startRow,a.startColumn);c=u==null?void 0:u.getHorizontalAlignment()}return r.next(c!=null?c:t),s.dispose})),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const Zs=[{label:"align.top",icon:"AlignTopSingle",value:l.VerticalAlign.TOP},{label:"align.middle",icon:"VerticalCenterSingle",value:l.VerticalAlign.MIDDLE},{label:"align.bottom",icon:"AlignBottomSingle",value:l.VerticalAlign.BOTTOM}];function Ou(n){const o=n.get(l.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=l.VerticalAlign.BOTTOM;return{id:m.SetVerticalTextAlignCommand.id,icon:Zs[2].icon,tooltip:"toolbar.verticalAlignMode.main",group:T.MenuGroup.TOOLBAR_LAYOUT,type:T.MenuItemType.SELECTOR,positions:[T.MenuPosition.TOOLBAR_START],selections:Zs,value$:Re(o,t,({worksheet:i})=>new A.Observable(r=>{var d;const s=n.get(l.ICommandService).onCommandExecuted(u=>{var g;const h=u.id;if(h!==m.SetVerticalTextAlignCommand.id&&h!==m.SetSelectionsOperation.id&&h!==m.SetWorksheetActiveOperation.id)return;const f=(g=e.getCurrentLastSelection())==null?void 0:g.primary;let S;if(f!=null){const p=i.getRange(f.startRow,f.startColumn);S=p==null?void 0:p.getVerticalAlignment()}r.next(S!=null?S:t)}),a=(d=e.getCurrentLastSelection())==null?void 0:d.primary;let c;if(a!=null){const u=i.getRange(a.startRow,a.startColumn);c=u==null?void 0:u.getVerticalAlignment()}return r.next(c!=null?c:t),s.dispose})),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const Gs=[{label:"textWrap.overflow",icon:"OverflowSingle",value:l.WrapStrategy.OVERFLOW},{label:"textWrap.wrap",icon:"AutowrapSingle",value:l.WrapStrategy.WRAP},{label:"textWrap.clip",icon:"TruncationSingle",value:l.WrapStrategy.CLIP}];function Au(n){const o=n.get(m.SheetsSelectionsService),e=n.get(l.IUniverInstanceService),t=l.WrapStrategy.OVERFLOW;return{id:m.SetTextWrapCommand.id,tooltip:"toolbar.textWrapMode.main",icon:Gs[0].icon,group:T.MenuGroup.TOOLBAR_LAYOUT,type:T.MenuItemType.SELECTOR,positions:[T.MenuPosition.TOOLBAR_START],selections:Gs,value$:Re(e,t,({worksheet:i})=>new A.Observable(r=>{var d;const s=n.get(l.ICommandService).onCommandExecuted(u=>{var g;const h=u.id;if(h!==m.SetTextWrapCommand.id&&h!==m.SetSelectionsOperation.id&&h!==m.SetWorksheetActiveOperation.id)return;const f=(g=o.getCurrentLastSelection())==null?void 0:g.primary;let S;if(f!=null){const p=i.getRange(f.startRow,f.startColumn);S=p==null?void 0:p.getWrapStrategy()}r.next(S!=null?S:t)}),a=(d=o.getCurrentLastSelection())==null?void 0:d.primary;let c;if(a!=null){const u=i.getRange(a.startRow,a.startColumn);c=u==null?void 0:u.getWrapStrategy()}return r.next(c!=null?c:t),s.dispose})),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const Ks=[{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 Nu(n){const o=n.get(m.SheetsSelectionsService),e=n.get(l.IUniverInstanceService),t=0;return{id:m.SetTextRotationCommand.id,tooltip:"toolbar.textRotateMode.main",icon:Ks[0].icon,group:T.MenuGroup.TOOLBAR_LAYOUT,type:T.MenuItemType.SELECTOR,selections:Ks,positions:[T.MenuPosition.TOOLBAR_START],value$:Re(e,t,({worksheet:i})=>new A.Observable(r=>{var d,u;const s=n.get(l.ICommandService).onCommandExecuted(h=>{var p,v;const f=h.id;if(f!==m.SetTextRotationCommand.id&&f!==m.SetSelectionsOperation.id&&f!==m.SetWorksheetActiveOperation.id)return;const S=(p=o.getCurrentLastSelection())==null?void 0:p.primary;let g;if(S!=null){const C=i.getRange(S.startRow,S.startColumn);g=C==null?void 0:C.getTextRotation()}(g==null?void 0:g.v)===l.BooleanNumber.TRUE?r.next("v"):r.next((v=g&&g.a)!=null?v:t)}),a=(d=o.getCurrentLastSelection())==null?void 0:d.primary;let c;if(a!=null){const h=i.getRange(a.startRow,a.startColumn);c=h==null?void 0:h.getTextRotation()}return(c==null?void 0:c.v)===l.BooleanNumber.TRUE?r.next("v"):r.next((u=c&&c.a)!=null?u:t),s.dispose})),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function yn(n){return new A.Observable(e=>e.next(!n.get(T.IClipboardInterfaceService).supportClipboard))}function qs(n){return{id:T.CopyCommand.id,group:T.MenuGroup.CONTEXT_MENU_FORMAT,type:T.MenuItemType.BUTTON,title:"rightClick.copy",icon:"Copy",positions:[T.MenuPosition.CONTEXT_MENU,"COL_HEADER_CONTEXT_MENU","ROW_HEADER_CONTEXT_MENU"],disabled$:ne(n,{workbookTypes:[m.WorkbookCopyPermission],worksheetTypes:[m.WorksheetCopyPermission],rangeTypes:[m.RangeProtectionPermissionViewPoint]}),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Du(n){return{id:T.PasteCommand.id,group:T.MenuGroup.CONTEXT_MENU_FORMAT,type:T.MenuItemType.BUTTON,title:"rightClick.paste",icon:"PasteSpecial",disabled$:yn(n).pipe(A.combineLatestWith(ne(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission,m.WorksheetSetCellValuePermission],workbookTypes:[m.WorkbookEditablePermission]})),A.map(([o,e])=>o||e)),positions:[T.MenuPosition.CONTEXT_MENU,"COL_HEADER_CONTEXT_MENU","ROW_HEADER_CONTEXT_MENU"],hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}const tn="sheet.menu.paste-special";function ku(n){return{id:tn,group:T.MenuGroup.CONTEXT_MENU_FORMAT,type:T.MenuItemType.SUBITEMS,icon:"PasteSpecial",title:"rightClick.pasteSpecial",positions:[T.MenuPosition.CONTEXT_MENU,"COL_HEADER_CONTEXT_MENU","ROW_HEADER_CONTEXT_MENU"],hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Hu(n){return{id:$o.id,type:T.MenuItemType.BUTTON,title:"rightClick.pasteValue",positions:[tn],disabled$:yn(n).pipe(A.combineLatestWith(ne(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetEditPermission],workbookTypes:[m.WorkbookEditablePermission]})),A.map(([o,e])=>o||e)),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Vu(n){return{id:er.id,type:T.MenuItemType.BUTTON,title:"rightClick.pasteFormat",positions:[tn],disabled$:yn(n).pipe(A.combineLatestWith(ne(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission],workbookTypes:[m.WorkbookEditablePermission]})),A.map(([o,e])=>o||e)),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Lu(n){return{id:_i.id,type:T.MenuItemType.BUTTON,title:"rightClick.pasteColWidth",positions:[tn],disabled$:yn(n).pipe(A.combineLatestWith(ne(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetColumnStylePermission,m.WorksheetEditPermission],workbookTypes:[m.WorkbookEditablePermission]})),A.map(([o,e])=>o||e))}}function Wu(n){return{id:tr.id,type:T.MenuItemType.BUTTON,title:"rightClick.pasteBesidesBorder",positions:[tn],disabled$:yn(n).pipe(A.combineLatestWith(ne(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission,m.WorksheetSetCellValuePermission,m.WorksheetSetRowStylePermission,m.WorksheetSetColumnStylePermission],workbookTypes:[m.WorkbookEditablePermission]})),A.map(([o,e])=>o||e)),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function xu(n){return{id:m.SetWorksheetRowIsAutoHeightCommand.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,positions:["ROW_HEADER_CONTEXT_MENU"],icon:"AutoHeight",title:"rightClick.fitContent",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetRowStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}const Mn="sheet.menu.sheet-frozen";function Uu(n){return{id:Mn,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",positions:[T.MenuPosition.CONTEXT_MENU],hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}const ar="sheet.header-menu.sheet-frozen";function Bu(n){return{id:ar,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",positions:["ROW_HEADER_CONTEXT_MENU","COL_HEADER_CONTEXT_MENU"],hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Fu(n){return{id:$t.id,type:T.MenuItemType.BUTTON,positions:[Mn,ar],title:"rightClick.freeze",icon:"FreezeToSelectedSingle",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function ju(n){return{id:wi.id,type:T.MenuItemType.BUTTON,positions:[Mn],title:"rightClick.freezeRow",icon:"FreezeRowSingle",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Xu(n){return{id:yi.id,type:T.MenuItemType.BUTTON,positions:[Mn],title:"rightClick.freezeCol",icon:"FreezeColumnSingle",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function zu(n){return{id:Mi.id,type:T.MenuItemType.BUTTON,positions:[Mn,ar],title:"rightClick.cancelFreeze",icon:"CancelFreezeSingle",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Yu(n){return{id:Ii.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,positions:["ROW_HEADER_CONTEXT_MENU"],icon:"Hide",title:"rightClick.hideSelectedRow",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetRowStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Zu(n){return{id:bi.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,positions:["COL_HEADER_CONTEXT_MENU"],icon:"Hide",title:"rightClick.hideSelectedColumn",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetColumnStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Gu(n){const o=n.get(l.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=n.get(l.ICommandService),i=[m.SetSelectionsOperation,m.SetRowHiddenMutation,m.SetRowVisibleMutation].map(r=>r.id);return{id:m.SetSelectedRowsVisibleCommand.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,positions:["ROW_HEADER_CONTEXT_MENU"],title:"rightClick.showHideRow",hidden$:Re(o,!0,({worksheet:r})=>new A.Observable(s=>{function a(){var u;const d=(u=e.getCurrentSelections())==null?void 0:u.map(h=>h.range).filter(h=>h.rangeType===l.RANGE_TYPE.ROW);return!!(d!=null&&d.some(h=>{for(let f=h.startRow;f<=h.endRow;f++)if(!r.getRowRawVisible(f))return!0;return!1}))}const c=t.onCommandExecuted(d=>{i.findIndex(u=>u===d.id)!==-1&&s.next(!a())});return s.next(!a()),()=>c.dispose()})),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetRowStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Ku(n){const o=n.get(l.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=n.get(l.ICommandService),i=[m.SetSelectionsOperation,m.SetColHiddenMutation,m.SetColVisibleMutation].map(r=>r.id);return{id:m.SetSelectedColsVisibleCommand.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,positions:["COL_HEADER_CONTEXT_MENU"],title:"rightClick.showHideColumn",hidden$:Re(o,!0,({worksheet:r})=>new A.Observable(s=>{function a(){var u;const d=(u=e.getCurrentSelections())==null?void 0:u.map(h=>h.range).filter(h=>h.rangeType===l.RANGE_TYPE.COLUMN);return!d||d.length===0?!1:!!d.some(h=>{for(let f=h.startColumn;f<=h.endColumn;f++)if(!r.getColVisible(f))return!0;return!1})}const c=t.onCommandExecuted(d=>{i.findIndex(u=>u===d.id)!==-1&&s.next(!a())});return s.next(!a()),()=>c.dispose()})),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetColumnStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function qu(n){const o=n.get(l.ICommandService),e=n.get(l.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),i=0;return{id:m.SetRowHeightCommand.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,icon:"AdjustHeight",positions:["ROW_HEADER_CONTEXT_MENU"],label:{name:Oi,props:{prefix:"rightClick.rowHeight",suffix:"px",min:2,max:1e3}},value$:Re(e,i,({worksheet:r})=>new A.Observable(s=>{function a(){var h;const d=(h=t.getCurrentLastSelection())==null?void 0:h.primary,u=d?r.getRowHeight(d.startRow):i;s.next(u)}const c=o.onCommandExecuted(d=>{const u=d.id;if(u===m.SetRangeValuesMutation.id||u===m.SetSelectionsOperation.id||u===m.SetWorksheetRowIsAutoHeightMutation.id)return a()});return a(),c.dispose})),hidden$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetRowStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Qu(n){const o=n.get(l.ICommandService),e=n.get(l.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),i=0;return{id:m.SetColWidthCommand.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,icon:"AdjustWidth",positions:["COL_HEADER_CONTEXT_MENU"],label:{name:Oi,props:{prefix:"rightClick.columnWidth",suffix:"px",min:2,max:1e3}},value$:Re(e,i,({worksheet:r})=>new A.Observable(s=>{function a(){var h;const d=(h=t.getCurrentLastSelection())==null?void 0:h.primary;let u=i;d!=null&&(u=r.getColumnWidth(d.startColumn)),s.next(u)}const c=o.onCommandExecuted(d=>{const u=d.id;if(u===m.SetRangeValuesMutation.id||u===m.SetSelectionsOperation.id||u===m.SetWorksheetColWidthMutation.id)return a()});return a(),c.dispose})),hidden$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetColumnStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function On(n){var c;const o=n.get(l.IUniverInstanceService),e=n.get(te.TextSelectionManagerService),t=o.getUniverDocInstance(l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),i=e.getActiveRange();if(t==null||i==null)return null;const r=(c=t.getBody())==null?void 0:c.textRuns;if(r==null)return;const{startOffset:s}=i;return r.find(({st:d,ed:u})=>s>=d&&s<=u)}function Ju(n){const o=n.get(m.SheetsSelectionsService),e=n.get(m.RangeProtectionRuleModel),i=n.get(l.IUniverInstanceService).getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),r=i.getUnitId();return A.combineLatest([o.selectionMoveEnd$,i.activeSheet$]).pipe(A.map(([s,a])=>{if(!a||!s||s.length===0)return!1;const c=a.getSheetId(),d=e.getSubunitRuleList(r,c).map(u=>u.ranges).flat();if(s.length<2){const u=s[0].range;return d.some(f=>l.Rectangle.intersects(f,u)&&!l.Rectangle.contains(f,u))}for(let u=0;u<s.length;u++)for(let h=u+1;h<s.length;h++)if(l.Rectangle.intersects(s[u].range,s[h].range))return!0;return!1}))}function _t(n,o,e){const t=n.find(i=>{const r=i.range,{startRow:s,endRow:a,startColumn:c,endColumn:d,rangeType:u}=r;return u===l.RANGE_TYPE.ALL||u===l.RANGE_TYPE.NORMAL?!1:e===l.RANGE_TYPE.COLUMN&&l.RANGE_TYPE.COLUMN===u?o>=c&&o<=d:u===l.RANGE_TYPE.ROW&&o>=s&&o<=a});return t!=null?t:!1}function It(){const n=l.useDependency(l.IUniverInstanceService),o=T.useObservable(()=>n.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),void 0,void 0,[]);return o!=null?o:null}function $u(n){return T.useObservable(()=>{var e;return(e=n==null?void 0:n.activeSheet$)!=null?e:A.of(null)},void 0,void 0,[n])}class Qs{constructor(){E(this,"_state",null);E(this,"_rect",null);E(this,"_state$",new A.BehaviorSubject(null));E(this,"state$",this._state$.asObservable());E(this,"_rect$",new A.BehaviorSubject(null));E(this,"rect$",this._rect$.asObservable());E(this,"_focus",!1);E(this,"_focus$",new A.BehaviorSubject(this._focus));E(this,"focus$",this._focus$.asObservable())}dispose(){this._state$.complete(),this._state=null,this._rect$.complete(),this._rect=null}setState(o){this._state=o,this._refresh(o)}getRect(){return this._rect}setRect(o){this._rect=o,this._rect$.next(o)}getState(){return this._state}setFocus(o=!1){this._focus=o,this._focus$.next(o)}_refresh(o){this._state$.next(o)}}const Ni=l.createIdentifier("univer.sheet-cell-editor-manager.service");class eh{constructor(){E(this,"_position",null);E(this,"_position$",new A.BehaviorSubject(null));E(this,"position$",this._position$.asObservable());E(this,"_focus",!1);E(this,"_focus$",new A.BehaviorSubject(this._focus));E(this,"focus$",this._focus$.asObservable());E(this,"_fxBtnClick$",new A.Subject);E(this,"fxBtnClick$",this._fxBtnClick$.asObservable());E(this,"_foldBtnStatus$",new A.Subject);E(this,"foldBtnStatus$",this._foldBtnStatus$.asObservable())}dispose(){this._position$.complete(),this._focus$.complete(),this._position=null,this._focus=!1}setPosition(o){this._position=o,this._refresh(o)}getPosition(){return this._position}setFocus(o=!1){this._focus=o,this._focus$.next(o)}handleFxBtnClick(o){this._fxBtnClick$.next(o)}handleFoldBtnClick(o){this._foldBtnStatus$.next(o)}_refresh(o){this._position$.next(o)}}const Di=l.createIdentifier("univer.sheet-formula-editor-manager.service");var th=Object.defineProperty,nh=Object.getOwnPropertyDescriptor,ih=(n,o,e,t)=>{for(var i=t>1?void 0:t?nh(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&th(o,e,i),i},tt=(n,o)=>(e,t)=>o(e,t,n);M.SheetSelectionRenderService=class extends xo{constructor(e,t,i,r,s,a,c,d,u,h){super(t,i,r,s);E(this,"_workbookSelections");E(this,"_renderDisposable",null);this._context=e,this._logService=c,this._commandService=d,this._contextService=u,this._sheetSkeletonManagerService=h,this._workbookSelections=a.getWorkbookSelections(this._context.unitId),this._init()}_init(){const e=this._getSheetObject();this._initEventListeners(e),this._initSelectionChangeListener(),this._initThemeChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener()}_initEventListeners(e){const{spreadsheetRowHeader:t,spreadsheetColumnHeader:i,spreadsheet:r,spreadsheetLeftTopPlaceholder:s}=e,{scene:a}=this._context;this.disposeWithMe(r==null?void 0:r.onPointerDown$.subscribeEvent((c,d)=>{this._normalSelectionDisabled()||(this._onPointerDown(c,r.zIndex+1,l.RANGE_TYPE.NORMAL,this._getActiveViewport(c)),c.button!==2&&d.stopPropagation())})),this.disposeWithMe(t==null?void 0:t.onPointerDown$.subscribeEvent((c,d)=>{if(this._normalSelectionDisabled())return;const u=this._sheetSkeletonManagerService.getCurrent().skeleton,{row:h}=Xe(c.offsetX,c.offsetY,a,u);_t(this._workbookSelections.getCurrentSelections(),h,l.RANGE_TYPE.ROW)||(this._onPointerDown(c,(r.zIndex||1)+1,l.RANGE_TYPE.ROW,this._getActiveViewport(c),w.ScrollTimerType.Y),c.button!==2&&d.stopPropagation())})),this.disposeWithMe(i==null?void 0:i.onPointerDown$.subscribeEvent((c,d)=>{if(this._normalSelectionDisabled())return;const u=this._sheetSkeletonManagerService.getCurrent().skeleton,{column:h}=Xe(c.offsetX,c.offsetY,a,u);_t(this._workbookSelections.getCurrentSelections(),h,l.RANGE_TYPE.COLUMN)||(this._onPointerDown(c,(r.zIndex||1)+1,l.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._normalSelectionDisabled())return;this._reset();const u=this._sheetSkeletonManagerService.getCurrent().skeleton,h=Uo(u),f=pt(h,u);this._addSelectionControlBySelectionData(f),this.refreshSelectionMoveStart(),c.button!==2&&d.stopPropagation()}))}_initThemeChangeListener(){this.disposeWithMe(this._themeService.currentTheme$.subscribe(()=>{this._resetStyle();const e=this._workbookSelections.getCurrentSelections();e&&this._refreshSelection(e)}))}_refreshSelection(e){const t=e.map(i=>{const r=pt(i,this._skeleton);return r.style=m.getNormalSelectionStyle(this._themeService),r});this.updateControlForCurrentByRangeData(t)}_normalSelectionDisabled(){return this._contextService.getContextValue(m.DISABLE_NORMAL_SELECTIONS)}_initSelectionChangeListener(){this.disposeWithMe(this._workbookSelections.selectionMoveEnd$.subscribe(e=>{this._reset();for(const t of e){const i=pt(t,this._skeleton);this._addSelectionControlBySelectionData(i)}}))}_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.DISABLE_NORMAL_SELECTIONS).pipe(A.startWith(!1),A.distinctUntilChanged()).subscribe(e=>{var t;e?((t=this._renderDisposable)==null||t.dispose(),this._renderDisposable=null,this._reset()):this._renderDisposable=l.toDisposable(this.selectionMoveEnd$.subscribe(i=>this._updateSelections(i,m.SelectionMoveType.MOVE_END)))}))}_updateSelections(e,t){const i=this._context.unit,r=i.getUnitId(),s=i.getActiveSheet().getSheetId();e.length!==0&&this._commandService.executeCommand(m.SetSelectionsOperation.id,{unitId:r,subUnitId:s,type:t,selections:e.map(a=>m.convertSelectionDataToRange(a))})}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(e=>{if(e==null){this._logService.error("[SelectionRenderService]: should not receive null!");return}const t=this._context.unitId,{sheetId:i,skeleton:r}=e,{scene:s}=this._context,a=s.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._changeRuntime(r,s,a),this._workbookSelections.getCurrentLastSelection()||this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:t,subUnitId:i,selections:[vi(r)]});const d=this._workbookSelections.getCurrentSelections();d!=null&&this._refreshSelection(d)}))}_getActiveViewport(e){const t=this._getSheetObject();return t==null?void 0:t.scene.getActiveViewportByCoord(w.Vector2.FromArray([e.offsetX,e.offsetY]))}_getSheetObject(){return je(this._context.unit,this._context)}},M.SheetSelectionRenderService=ih([tt(1,l.Inject(l.Injector)),tt(2,l.Inject(l.ThemeService)),tt(3,T.IShortcutService),tt(4,w.IRenderManagerService),tt(5,l.Inject(m.SheetsSelectionsService)),tt(6,l.ILogService),tt(7,l.ICommandService),tt(8,l.IContextService),tt(9,l.Inject(M.SheetSkeletonManagerService))],M.SheetSelectionRenderService);var oh=Object.defineProperty,rh=Object.getOwnPropertyDescriptor,sh=(n,o,e,t)=>{for(var i=t>1?void 0:t?rh(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&oh(o,e,i),i},Js=(n,o)=>(e,t)=>o(e,t,n);let An=class extends l.Disposable{constructor(o,e){super();E(this,"_previousSheetIndex",-1);this._commandService=o,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,i)=>{if(t.id===m.RemoveSheetMutation.id)return this._adjustActiveSheetOnRemoveSheet(t);if(t.id===m.SetWorksheetHideMutation.id&&t.params.hidden)return this._adjustActiveSheetOnHideSheet(t);if(!(i!=null&&i.fromCollab)){if(t.id===m.InsertSheetMutation.id)return this._adjustActiveSheetOnInsertSheet(t);if(t.id===m.SetWorksheetHideMutation.id&&!t.params.hidden)return this._adjustActiveSheetOnShowSheet(t)}}))}_adjustActiveSheetOnHideSheet(o){var c;const{unitId:e,subUnitId:t}=o.params,i=this._univerInstanceService.getUniverSheetInstance(e);if(!i||((c=i.getActiveSheet())==null?void 0:c.getSheetId())!==t)return;const s=i.getActiveSheetIndex(),a=$s(i,s);this._switchToNextSheet(e,a)}_beforeAdjustActiveSheetOnRemoveSheet(o){const{unitId:e,subUnitId:t}=o.params,i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;const r=i.getSheetBySheetId(t);r&&(this._previousSheetIndex=i.getSheetIndex(r))}_adjustActiveSheetOnRemoveSheet(o){if(this._previousSheetIndex===-1)return;const{unitId:e}=o.params,t=this._univerInstanceService.getUniverSheetInstance(e);if(!t)return;if(t.getActiveSheet().getSheetId()===o.params.subUnitId){const r=this._previousSheetIndex,s=r>=1?r-1:0,a=$s(t,s);this._switchToNextSheet(e,a)}}_adjustActiveSheetOnInsertSheet(o){const{unitId:e,sheet:t}=o.params;this._switchToNextSheet(e,t.id)}_adjustActiveSheetOnShowSheet(o){const{unitId:e,subUnitId:t}=o.params;this._switchToNextSheet(e,t)}_switchToNextSheet(o,e){this._commandService.executeCommand(m.SetWorksheetActiveOperation.id,{unitId:o,subUnitId:e})}};An=sh([l.OnLifecycle(l.LifecycleStages.Ready,An),Js(0,l.ICommandService),Js(1,l.IUniverInstanceService)],An);function $s(n,o){const e=n.getSheetSize();for(let t=o;t>-1;t--){const i=n.getSheetByIndex(t);if(!i.getConfig().hidden)return i.getSheetId()}for(let t=o;t<e;t++){const i=n.getSheetByIndex(t);if(!i.getConfig().hidden)return i.getSheetId()}throw new Error("[ActiveWorksheetController]: could not find the next unhidden sheet! Collaboration error perhaps.")}var lh=Object.defineProperty,ah=Object.getOwnPropertyDescriptor,ch=(n,o,e,t)=>{for(var i=t>1?void 0:t?ah(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&lh(o,e,i),i},Nn=(n,o)=>(e,t)=>o(e,t,n);M.AutoHeightController=class extends l.Disposable{constructor(o,e,t,i,r){super(),this._renderManagerService=o,this._injector=e,this._sheetInterceptorService=t,this._selectionManagerService=i,this._univerInstanceService=r,this._initialize()}getUndoRedoParamsOfAutoHeight(o){var f;const{_univerInstanceService:e,_injector:t}=this,i=e.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),r=i.getUnitId(),s=(f=i.getActiveSheet())==null?void 0:f.getSheetId(),a=this._renderManagerService.getRenderById(r).with(M.SheetSkeletonManagerService);if(!s||!a.getCurrent())return{redos:[],undos:[]};const{skeleton:c}=a.getCurrent(),d=c.calculateAutoHeightInRange(o),u={subUnitId:s,unitId:r,rowsAutoHeightInfo:d},h=m.SetWorksheetRowAutoHeightMutationFactory(t,u);return{undos:[{id:m.SetWorksheetRowAutoHeightMutation.id,params:h}],redos:[{id:m.SetWorksheetRowAutoHeightMutation.id,params:u}]}}_initialize(){const{_sheetInterceptorService:o,_selectionManagerService:e}=this;this.disposeWithMe(o.interceptCommand({getMutations:t=>t.id!==m.SetRangeValuesCommand.id?{redos:[],undos:[]}:this.getUndoRedoParamsOfAutoHeight(t.params.range)})),this.disposeWithMe(o.interceptCommand({getMutations:t=>t.id!==m.SetWorksheetRowIsAutoHeightCommand.id?{redos:[],undos:[]}:this.getUndoRedoParamsOfAutoHeight(t.params.ranges)})),this.disposeWithMe(o.interceptCommand({getMutations:t=>{var s,a;if(t.id!==m.SetStyleCommand.id)return{redos:[],undos:[]};if(!["ff","fs","tr","tb"].includes((s=t.params)==null?void 0:s.style.type))return{redos:[],undos:[]};const r=(a=e.getCurrentSelections())==null?void 0:a.map(c=>c.range);return r!=null&&r.length?this.getUndoRedoParamsOfAutoHeight(r):{redos:[],undos:[]}}}))}},M.AutoHeightController=ch([l.OnLifecycle(l.LifecycleStages.Ready,M.AutoHeightController),Nn(0,w.IRenderManagerService),Nn(1,l.Inject(l.Injector)),Nn(2,l.Inject(m.SheetInterceptorService)),Nn(3,l.Inject(m.SheetsSelectionsService)),Nn(4,l.Inject(l.IUniverInstanceService))],M.AutoHeightController);function dh(n,o,e,t,i){const r=[],s=[];if(t.copyType===at.CUT){const{undos:a,redos:c}=uh(n,o,i);r.push(...c),s.push(...a)}else{const{undos:a,redos:c}=nl(o,e,i);r.push(...c),s.push(...a);const{undos:d,redos:u}=el(o,n,e,i);r.push(...u),s.push(...d);const{undos:h,redos:f}=tl(o,e,i,!0);r.push(...f),s.push(...h);const{undos:S,redos:g}=cr(o,e,i);r.push(...g),s.push(...S)}return{undos:s,redos:r}}function uh(n,o,e){let t=[],i=[];const{range:r,subUnitId:s,unitId:a}=n,{range:c,subUnitId:d}=o,u=c?ft(c):null,h=r?ft(r):null;if(h&&u){const f=e.get(l.IUniverInstanceService),S=e.get(m.SheetInterceptorService),g=f.getUniverSheetInstance(a),p=g==null?void 0:g.getSheetBySheetId(s),v=g==null?void 0:g.getSheetBySheetId(d);if(p&&v){const C=new l.ObjectMatrix,I=new l.ObjectMatrix,b=p.getCellMatrix(),R=v.getCellMatrix();l.Range.foreach(h,(j,z)=>{C.setValue(j,z,l.Tools.deepClone(b.getValue(j,z))),I.setValue(j,z,null)});const P=new l.ObjectMatrix;l.Range.foreach(u,(j,z)=>{P.setValue(j,z,l.Tools.deepClone(R.getValue(j,z)))});const y=new l.ObjectMatrix;l.Range.foreach(h,(j,z)=>{const F=l.cellToRange(j,z),Z=l.Rectangle.getRelativeRange(F,h),x=l.Rectangle.getPositionRange(Z,u);y.setValue(x.startRow,x.startColumn,b.getValue(j,z))});const O={from:{value:I.getMatrix(),subUnitId:s},to:{value:y.getMatrix(),subUnitId:d},unitId:a},N={from:{value:C.getMatrix(),subUnitId:s},to:{value:P.getMatrix(),subUnitId:d},unitId:a},D=S.onCommandExecute({id:m.MoveRangeCommand.id,params:{toRange:u,fromRange:h}}),k=p.getMergeData(),H=v.getMergeData(),V=k.filter(j=>l.Rectangle.intersects(j,h)),U=H.filter(j=>l.Rectangle.intersects(j,u)),W=V.map(j=>l.Rectangle.getRelativeRange(j,h)).map(j=>l.Rectangle.getPositionRange(j,u)),X=m.getAddMergeMutationRangeByType(W).filter(j=>!H.some(z=>l.Rectangle.equals(j,z))),K=[{id:m.RemoveWorksheetMergeMutation.id,params:{unitId:a,subUnitId:s,ranges:V}},{id:m.RemoveWorksheetMergeMutation.id,params:{unitId:a,subUnitId:s,ranges:U}},{id:m.AddWorksheetMergeMutation.id,params:{unitId:a,subUnitId:d,ranges:X}}],Y=[{id:m.RemoveWorksheetMergeMutation.id,params:{unitId:a,subUnitId:d,ranges:X}},{id:m.AddWorksheetMergeMutation.id,params:{unitId:a,subUnitId:d,ranges:U}},{id:m.AddWorksheetMergeMutation.id,params:{unitId:a,subUnitId:s,ranges:V}}];t=[{id:m.MoveRangeMutation.id,params:O},...D.redos,...K,{id:m.SetSelectionsOperation.id,params:{unitId:a,subUnitId:d,selections:[{range:u}]}}],i=[{id:m.MoveRangeMutation.id,params:N},...D.undos,...Y,{id:m.SetSelectionsOperation.id,params:{unitId:a,sheetId:s,selections:[{range:h}]}}]}}return{undos:i,redos:t}}function el(n,o,e,t){const{unitId:i,subUnitId:r,range:s}=n,a=[],c=[],{mapFunc:d}=Lt([s]),u=new l.ObjectMatrix;e.forValue((S,g,p)=>{var b;let v;if(!p.p&&p.v&&!o){const R=String(p.v),P=Ve.numfmt.parseDate(R)||Ve.numfmt.parseTime(R)||Ve.numfmt.parseNumber(R);P!=null&&P.v&&typeof P.v=="number"&&(v=P.v)}const{row:C,col:I}=d(S,g);(b=p.p)!=null&&b.body?u.setValue(C,I,l.Tools.deepClone({p:p.p,v:v!=null?v:p.v})):u.setValue(C,I,l.Tools.deepClone({v:v!=null?v:p.v}))});const h={unitId:i,subUnitId:r,cellValue:l.Tools.deepClone(u.getMatrix())};a.push({id:m.SetRangeValuesMutation.id,params:h});const f=m.SetRangeValuesUndoMutationFactory(t,h);return c.push({id:m.SetRangeValuesMutation.id,params:f}),{undos:c,redos:a}}function tl(n,o,e,t=!1){const i=[],r=[],{unitId:s,subUnitId:a,range:c}=n,d=new l.ObjectMatrix,{mapFunc:u}=Lt([c]);o.forValue((S,g,p)=>{var P,y;const v={s:Object.assign({},{...l.DEFAULT_STYLES,pd:w.DEFAULT_PADDING_DATA,bg:null},p.s)};t&&((P=p.p)!=null&&P.body)&&(v.p=p.p);const C=String(p.v),I=Ve.numfmt.parseDate(C)||Ve.numfmt.parseTime(C)||Ve.numfmt.parseNumber(C);I!=null&&I.z&&(v.s||(v.s={}),typeof v.s=="object"&&((y=v.s)!=null&&y.n?v.s.n.pattern=I.z:v.s.n={pattern:I.z}));const{row:b,col:R}=u(S,g);d.setValue(b,R,v)});const h={unitId:s,subUnitId:a,cellValue:l.Tools.deepClone(d.getMatrix())};i.push({id:m.SetRangeValuesMutation.id,params:h});const f=m.SetRangeValuesUndoMutationFactory(e,h);return r.push({id:m.SetRangeValuesMutation.id,params:f}),{undos:r,redos:i}}function nl(n,o,e){const t=[],i=[],r=new l.ObjectMatrix,{unitId:s,subUnitId:a,range:c}=n,{mapFunc:d}=Lt([c]);if(o.forValue((u,h,f)=>{if(f.s){const{row:S,col:g}=d(u,h);r.setValue(S,g,{s:null})}}),r.getLength()>0){const u={subUnitId:a,unitId:s,cellValue:l.Tools.deepClone(r.getMatrix())};t.push({id:m.SetRangeValuesMutation.id,params:u});const h=m.SetRangeValuesUndoMutationFactory(e,u);i.push({id:m.SetRangeValuesMutation.id,params:h})}return{undos:i,redos:t}}function cr(n,o,e){const t=[],i=[],{unitId:r,subUnitId:s,range:a}=n,{startColumn:c,startRow:d,endColumn:u,endRow:h}=ft(a),f=[];o.forValue((I,b,R)=>{if(R.rowSpan&&R.rowSpan>1){const P=R.colSpan||1,y={startRow:d+I,endRow:d+I+R.rowSpan-1,startColumn:c+b,endColumn:c+b+P-1};f.push(y)}else if(R.colSpan&&R.colSpan>1){const P=R.rowSpan||1,y={startRow:d+I,endRow:d+I+P-1,startColumn:c+b,endColumn:c+b+R.colSpan-1};f.push(y)}});const g=e.get(l.IUniverInstanceService).getUniverSheetInstance(r),p=g==null?void 0:g.getSheetBySheetId(s);if(g&&p){const b=p.getMergeData().filter(y=>l.Rectangle.intersects({startRow:d,startColumn:c,endRow:h,endColumn:u},y)),R={unitId:r,subUnitId:s,ranges:b};t.push({id:m.RemoveWorksheetMergeMutation.id,params:R});const P=m.RemoveMergeUndoMutationFactory(e,R);i.push({id:m.AddWorksheetMergeMutation.id,params:P})}const v={unitId:r,subUnitId:s,ranges:f};f.length>0&&t.push({id:m.AddWorksheetMergeMutation.id,params:v});const C=m.AddMergeUndoMutationFactory(e,v);return f.length>0&&i.push({id:m.RemoveWorksheetMergeMutation.id,params:C}),{undos:i,redos:t}}function hh(n){let o=n.replace(/(\r\n|\n)/g,"\r");o.endsWith(`\r
18
- `)||(o+=`\r
19
- `);const e=[];for(let t=0;t<o.length;t++)o[t]==="\r"&&e.push({startIndex:t});return{dataStream:o,paragraphs:e,sectionBreaks:[{startIndex:o.indexOf(`
20
- `)}]}}var mh=Object.defineProperty,fh=Object.getOwnPropertyDescriptor,Sh=(n,o,e,t)=>{for(var i=t>1?void 0:t?fh(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&mh(o,e,i),i},Ze=(n,o)=>(e,t)=>o(e,t,n);let Dn=class extends l.RxDisposable{constructor(n,o,e,t,i,r,s,a,c,d){var u;super(),this._injector=n,this._currentUniverSheet=o,this._renderManagerService=e,this._commandService=t,this._contextService=i,this._configService=r,this._sheetClipboardService=s,this._messageService=a,this._localService=c,this._textSelectionRenderManager=d,this._init(),(u=this._textSelectionRenderManager)==null||u.onPaste$.pipe(A.takeUntil(this.dispose$)).subscribe(h=>{var p,v;if(!re(this._contextService))return;h.event.preventDefault();const f=h.event,S=(p=f.clipboardData)==null?void 0:p.getData("text/html"),g=(v=f.clipboardData)==null?void 0:v.getData("text/plain");this._commandService.executeCommand(Ci.id,{htmlContent:S,textContent:g})})}_init(){[Qo,Jo,Yt].forEach(o=>this.disposeWithMe(this._commandService.registerMultipleCommand(o))),[$o,er,_i,tr,Ci].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._initCopyingHooks())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._initPastingHook()));const n=this._initSpecialPasteHooks().map(o=>this._sheetClipboardService.addClipboardHook(o));this.disposeWithMe({dispose:()=>n.forEach(o=>o.dispose())})}_initCopyingHooks(){const n=this;let o=null;return{id:Se.DEFAULT_COPY,isDefaultHook:!0,onBeforeCopy(e,t){o=n._getWorksheet(e,t)},onCopyCellContent(e,t){var s,a,c,d;const i=o.getCell(e,t);return(a=(s=i==null?void 0:i.p)==null?void 0:s.body)!=null&&a.paragraphs||(d=(c=i==null?void 0:i.p)==null?void 0:c.body)!=null&&d.textRuns?l.convertBodyToHtml(i.p.body):i?l.extractPureTextFromCell(i):""},onCopyCellStyle:(e,t,i,r)=>{const s={};(i||r)&&(s.rowspan=`${i||1}`,s.colspan=`${r||1}`);const a=o.getRange(e,t),c=o.getMergedCell(e,t),d=a.getTextStyle();let u="";if(d&&(u=l.handleStyleToString(d)),c){const h=c.endRow,f=c.endColumn,g=o.getRange(h,f).getTextStyle();if(g){const p=l.handleStyleToString(g);u?u+=p?`;${p}`:"":u=p}}return u&&(s.style=u),s},onCopyColumn(e){return{width:`${o.getColumnWidth(e)}`}},onCopyRow(e){return{style:`height: ${o.getRowHeight(e)}px;`}},onAfterCopy(){o=null},getFilteredOutRows(e){var a;const{startRow:t,endRow:i}=e,r=(a=n._currentUniverSheet.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET))==null?void 0:a.getActiveSheet(),s=[];if(!r)return s;for(let c=t;c<=i;c++)r.getRowFiltered(c)&&s.push(c);return s}}}_initPastingHook(){const n=this;let o=null,e=null,t=null;return{id:Se.DEFAULT_PASTE,isDefaultHook:!0,onBeforePaste({unitId:i,subUnitId:r,range:s}){t=n._getWorksheet(i,r),o=i,e=r;const a=n._configService.getConfig(m.MAX_CELL_PER_SHEET_KEY),c=s.rows[s.rows.length-1],d=s.cols[s.cols.length-1];return a&&c*d>a?(n._messageService.show({type:$.MessageType.Error,content:n._localService.t("clipboard.paste.exceedMaxCells")}),!1):!0},onPasteRows(i,r){const{range:s}=i,a=[],c=[],d=t.getMaxRows(),u=s.rows[s.rows.length-1]-d,h=r.length-u,f=t.getRowManager();if(u>0){const v={};r.slice(h).forEach((I,b)=>{const{style:R,height:P}=I||{};if(R){const y=R.split(";");let O=l.DEFAULT_WORKSHEET_ROW_HEIGHT;y.find(N=>{N=N.toLowerCase();const D=T.textTrim(N.substr(0,N.indexOf(":"))),k=T.textTrim(N.substr(N.indexOf(":")+1));return D==="height"?(k.endsWith("pt")?O=w.ptToPx(Number.parseFloat(k)):O=Number.parseFloat(k),!0):!1}),v[b]={h:O,hd:l.BooleanNumber.FALSE}}else P&&(v[b]={h:Number.parseFloat(P),hd:l.BooleanNumber.FALSE})});const C={unitId:o,subUnitId:e,range:{startColumn:s.cols[0],endColumn:s.cols[s.cols.length-1],endRow:s.rows[s.rows.length-1],startRow:d},rowInfo:v};a.push({id:m.InsertRowMutation.id,params:C})}const S={},g={};r.slice(0,h).forEach((v,C)=>{var R,P;const{style:I,height:b}=v;if(I){const y=I.split(";");let O=l.DEFAULT_WORKSHEET_ROW_HEIGHT;y.find(N=>{N=N.toLowerCase();const D=T.textTrim(N.substr(0,N.indexOf(":"))),k=T.textTrim(N.substr(N.indexOf(":")+1));return D==="height"?(k.endsWith("pt")?O=w.ptToPx(Number.parseFloat(k)):O=Number.parseFloat(k),!0):!1}),S[C+s.rows[0]]=O}else if(b){const y=f.getRow(s.rows[0]+C),O=Number.parseFloat(b);if(y){const{h:N=l.DEFAULT_WORKSHEET_ROW_HEIGHT,ah:D=0}=y,k=Math.max(N,D);O>k&&(S[C+s.rows[0]]=O,g[C+s.rows[0]]=k)}else S[C+s.rows[0]]=O,g[C+s.rows[0]]=(P=(R=f.getRow(s.rows[0]+C))==null?void 0:R.h)!=null?P:l.DEFAULT_WORKSHEET_ROW_HEIGHT}});const p={unitId:o,subUnitId:e,ranges:[{startRow:s.rows[0],endRow:Math.min(s.rows[s.rows.length-1],d),startColumn:s.cols[0],endColumn:s.cols[s.cols.length-1]}],rowHeight:S};return a.push({id:m.SetWorksheetRowHeightMutation.id,params:p}),c.push({id:m.SetWorksheetRowHeightMutation.id,params:{...p,rowHeight:20}}),{redos:a,undos:c}},onPasteColumns(i,r,s){var g;const{range:a}=i,c=[],d=t.getMaxColumns(),u=a.cols[a.cols.length-1]-d,h=r.length-u,f=(g=n._configService.getConfig(l.DEFAULT_WORKSHEET_COLUMN_WIDTH_KEY))!=null?g:l.DEFAULT_WORKSHEET_COLUMN_WIDTH;if(u>0){const p={unitId:o,subUnitId:e,range:{startRow:a.rows[0],endRow:a.rows[a.rows.length-1],endColumn:a.cols[a.cols.length-1],startColumn:d},colInfo:r.slice(h).map(v=>({w:v.width?+v.width:f,hd:l.BooleanNumber.FALSE}))};c.push({id:m.InsertColMutation.id,params:p})}const S={unitId:o,subUnitId:e,ranges:[{startRow:a.rows[0],endRow:a.rows[a.rows.length-1],startColumn:a.cols[0],endColumn:Math.min(a.cols[a.cols.length-1],d)}],colWidth:r.slice(0,h).map(p=>p.width?+p.width:f)};return c.push({id:m.SetWorksheetColWidthMutation.id,params:S}),{redos:c,undos:[]}},onPastePlainText(i,r,s){return n._onPastePlainText(i,r,s)},onPasteCells(i,r,s,a){return n._onPasteCells(i,r,s,a)},onAfterPaste(i){t=null}}}_generateDocumentDataModelSnapshot(n){var s,a;const o=(s=this._renderManagerService.withCurrentTypeOfUnit(l.UniverInstanceType.UNIVER_SHEET,M.SheetSkeletonManagerService))==null?void 0:s.getCurrent();if(o==null)return null;const{skeleton:e}=o,t=(a=e.getBlankCellDocumentModel())==null?void 0:a.documentModel,r={...t==null?void 0:t.getSnapshot(),...n};return t==null||t.reset(r),t==null?void 0:t.getSnapshot()}_onPastePlainText(n,o,e){const{range:t,unitId:i,subUnitId:r}=n;let s;if(/\r|\n/.test(o)){const c=hh(o),d=this._generateDocumentDataModelSnapshot({body:c});s={[t.rows[0]]:{[t.cols[0]]:{p:d}}}}else l.isFormulaString(o)?s={[t.rows[0]]:{[t.cols[0]]:{f:o}}}:s={[t.rows[0]]:{[t.cols[0]]:{v:o}}};const a={unitId:i,subUnitId:r,cellValue:s};return{redos:[{id:m.SetRangeValuesMutation.id,params:a}],undos:[{id:m.SetRangeValuesMutation.id,params:m.SetRangeValuesUndoMutationFactory(this._injector,a)}]}}_onPasteCells(n,o,e,t){const i={get:this._injector.get.bind(this._injector)};return dh(n,o,e,t,i)}_initSpecialPasteHooks(){const n={get:this._injector.get.bind(this._injector)},o=this,e={id:Se.SPECIAL_PASTE_VALUE,specialPasteInfo:{label:"specialPaste.value"},onPasteCells:(s,a,c)=>el(a,s,c,n)},t={id:Se.SPECIAL_PASTE_FORMAT,specialPasteInfo:{label:"specialPaste.format"},onPasteCells(s,a,c){const d=[],u=[],{undos:h,redos:f}=nl(a,c,n);d.push(...f),u.push(...h);const{undos:S,redos:g}=cr(a,c,n);d.push(...g),u.push(...S);const{undos:p,redos:v}=tl(a,c,n);return d.push(...v),u.push(...p),{undos:u,redos:d}}},i={id:Se.SPECIAL_PASTE_COL_WIDTH,specialPasteInfo:{label:"specialPaste.colWidth"},onPasteCells(){return{undos:[],redos:[]}},onPasteColumns(s,a,c){var R,P;const d=o._currentUniverSheet.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),u=d.getUnitId(),h=(R=d.getActiveSheet())==null?void 0:R.getSheetId();if(!u||!h)throw new Error("Cannot find unitId or subUnitId");const f=[],S=o._getWorksheet(u,h),{range:g}=s,p=S.getMaxColumns(),v=g.cols[g.cols.length-1]-p,C=a.length-v,I=(P=o._configService.getConfig(l.DEFAULT_WORKSHEET_COLUMN_WIDTH_KEY))!=null?P:l.DEFAULT_WORKSHEET_COLUMN_WIDTH,b={unitId:u,subUnitId:h,ranges:[{startRow:g.rows[0],endRow:Math.min(g.cols[g.cols.length-1],p),startColumn:g.cols[0],endColumn:g.cols[g.cols.length-1]}],colWidth:a.slice(0,C).map(y=>y.width?+y.width:I)};return f.push({id:m.SetWorksheetColWidthMutation.id,params:b}),f.push({id:m.SetWorksheetColWidthMutation.id,params:b}),{redos:f,undos:[]}}},r={id:Se.SPECIAL_PASTE_BESIDES_BORDER,specialPasteInfo:{label:"specialPaste.besidesBorder"},onPasteCells(s,a,c,d){o._currentUniverSheet.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);const u=[],h=[],{range:f,unitId:S,subUnitId:g}=a,p=new l.ObjectMatrix;c.forValue((R,P,y)=>{const O=y.s;typeof O=="object"&&p.setValue(f.rows[R],f.cols[P],{s:{...O,bd:void 0},v:y.v})});const v={unitId:S,subUnitId:g,cellValue:p.getData()};u.push({id:m.SetRangeValuesMutation.id,params:v});const C=m.SetRangeValuesUndoMutationFactory(n,v);h.push({id:m.SetRangeValuesMutation.id,params:C});const{undos:I,redos:b}=cr(a,c,n);return h.push(...I),u.push(...b),{redos:u,undos:h}}};return[e,t,i,r]}_getWorksheet(n,o){var t;const e=(t=this._currentUniverSheet.getUniverSheetInstance(n))==null?void 0:t.getSheetBySheetId(o);if(!e)throw new Error(`[SheetClipboardController]: cannot find a worksheet with unitId ${n} and subUnitId ${o}.`);return e}};Dn=Sh([l.OnLifecycle(l.LifecycleStages.Steady,Dn),Ze(0,l.Inject(l.Injector)),Ze(1,l.IUniverInstanceService),Ze(2,w.IRenderManagerService),Ze(3,l.ICommandService),Ze(4,l.IContextService),Ze(5,l.IConfigService),Ze(6,$e),Ze(7,T.IMessageService),Ze(8,l.Inject(l.LocaleService)),Ze(9,l.Optional(w.ITextSelectionRenderManager))],Dn);var gh=Object.defineProperty,ph=Object.getOwnPropertyDescriptor,vh=(n,o,e,t)=>{for(var i=t>1?void 0:t?ph(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&gh(o,e,i),i},ct=(n,o)=>(e,t)=>o(e,t,n);M.FormulaEditorController=class extends l.RxDisposable{constructor(e,t,i,r,s,a,c,d){super();E(this,"_loadedMap",new WeakSet);E(this,"_scheduledCallback",-1);this._univerInstanceService=e,this._renderManagerService=t,this._editorBridgeService=i,this._commandService=r,this._contextService=s,this._formulaEditorManagerService=a,this._undoRedoService=c,this._textSelectionManagerService=d,this._initialize()}_initialize(){this._syncFormulaEditorContent(),this._commandExecutedListener(),this._syncEditorSize(),this._listenFxBtnClick(),this._listenFoldBtnClick(),this._renderManagerService.currentRender$.pipe(A.takeUntil(this.dispose$)).subscribe(e=>{this._create(e)}),this._create(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),this._textSelectionManagerService.textSelection$.pipe(A.takeUntil(this.dispose$)).subscribe(e=>{if(e==null)return;const{unitId:t}=e;t!==l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&(this._contextService.setContextValue(l.FOCUSING_FORMULA_EDITOR,!1),this._undoRedoService.clearUndoRedo(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))})}_create(e){if(e!==l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)return;const t=this._renderManagerService.getRenderById(e);if(t==null)return;const{mainComponent:i}=t;i!=null&&(this._loadedMap.has(i)||(this._initialMain(e),this._loadedMap.add(i)))}_listenFxBtnClick(){this._formulaEditorManagerService.fxBtnClick$.pipe(A.takeUntil(this.dispose$)).subscribe(()=>{var t,i;if(this._contextService.getContextValue(l.FOCUSING_EDITOR_BUT_HIDDEN)&&!this._contextService.getContextValue(l.EDITOR_ACTIVATED)){this._univerInstanceService.setCurrentUnitForType(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),this._contextService.setContextValue(l.FOCUSING_FORMULA_EDITOR,!0);const r=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),s=this._univerInstanceService.getUniverDocInstance(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);this._editorBridgeService.isVisible().visible===!1&&this._editorBridgeService.changeVisible({visible:!0,eventType:w.DeviceInputEventType.PointerDown,unitId:(t=r==null?void 0:r.getUnitId())!=null?t:""});const c=(i=s==null?void 0:s.getBody())==null?void 0:i.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:l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,body:{dataStream:d},segmentId:""};this._commandService.executeCommand(te.CoverContentCommand.id,h),this._textSelectionManagerService.replaceTextRanges(u)}})}_listenFoldBtnClick(){this._formulaEditorManagerService.foldBtnStatus$.pipe(A.takeUntil(this.dispose$)).subscribe(()=>{this._textSelectionManagerService.refreshSelection()})}_initialMain(e){const t=this._renderManagerService.getRenderById(e);if(t==null)return;const{mainComponent:i}=t;i!=null&&this.disposeWithMe(i.onPointerDown$.subscribeEvent(()=>{this._editorBridgeService.isVisible().visible===!1&&this._editorBridgeService.changeVisible({visible:!0,eventType:w.DeviceInputEventType.Dblclick,unitId:e}),this._contextService.setContextValue(l.FOCUSING_FORMULA_EDITOR,!0),this._undoRedoService.clearUndoRedo(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)}))}_syncEditorSize(){this._formulaEditorManagerService.position$.pipe(A.takeUntil(this.dispose$)).subscribe(e=>{if(!e)return this._clearScheduledCallback();const t=To(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,this._renderManagerService),i=this._univerInstanceService.getUniverDocInstance(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);if(t==null||i==null)return this._clearScheduledCallback();const{width:r,height:s}=e;if(r===0||s===0)return this._clearScheduledCallback();const{engine:a}=t;i.updateDocumentDataPageSize(r),this._autoScroll(),this._scheduledCallback=requestIdleCallback(()=>a.resizeBySize(r,s))})}_clearScheduledCallback(){this._scheduledCallback!==-1&&cancelIdleCallback(this._scheduledCallback),this._scheduledCallback=-1}_syncFormulaEditorContent(){this._editorBridgeService.currentEditCellState$.pipe(A.takeUntil(this.dispose$)).subscribe(e=>{e==null||this._editorBridgeService.isForceKeepVisible()||this._editorSyncHandler(e)}),this._editorBridgeService.visible$.pipe(A.takeUntil(this.dispose$)).subscribe(e=>{if(e==null||e.visible===!1||this._editorBridgeService.isForceKeepVisible())return;const t=this._editorBridgeService.getLatestEditCellState();t!=null&&this._editorSyncHandler(t)})}_editorSyncHandler(e){var a;const t=(a=e.documentLayoutObject.documentModel)==null?void 0:a.getBody();let i=t==null?void 0:t.dataStream,r=t==null?void 0:t.paragraphs,s=t==null?void 0:t.textRuns;i==null||r==null||(e.isInArrayFormulaRange===!0&&this._editorBridgeService.isVisible().eventType===w.DeviceInputEventType.Dblclick&&(i=`\r
21
- `,r=[{startIndex:0}],s=[]),this._syncContentAndRender(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,i,r,s),this._autoScroll())}_commandExecutedListener(){const e=[l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY];this.disposeWithMe(this._commandService.onCommandExecuted(i=>{var c,d,u;if(i.id!==te.RichTextEditingMutation.id)return;const r=i.params,{unitId:s,actions:a}=r;if(e.includes(s)){const h=this._univerInstanceService.getUniverDocInstance(s),f=(c=h==null?void 0:h.getBody())==null?void 0:c.dataStream,S=(d=h==null?void 0:h.getBody())==null?void 0:d.paragraphs,g=(u=h==null?void 0:h.getBody())==null?void 0:u.textRuns,p=s===l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY?l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY:l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY;if(f==null||S==null)return;p===l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY?(this._checkAndSetRenderStyleConfig(h),this._syncActionsAndRender(p,a)):this._syncContentAndRender(p,f,S,g),this._autoScroll()}})),this.disposeWithMe(this._commandService.onCommandExecuted(i=>{var a,c,d;if(i.id!==T.SetEditorResizeOperation.id)return;const r=i.params,{unitId:s}=r;if(e.includes(s)){const u=this._univerInstanceService.getUniverDocInstance(s),h=(a=u==null?void 0:u.getBody())==null?void 0:a.dataStream,f=(c=u==null?void 0:u.getBody())==null?void 0:c.paragraphs,S=(d=u==null?void 0:u.getBody())==null?void 0:d.textRuns,g=s===l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY?l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY:l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY;if(h==null||f==null)return;this._syncContentAndRender(g,h,f,S),this._autoScroll()}}));const t=[m.SetRangeValuesMutation.id,m.MoveRangeMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted(i=>{var r,s,a,c,d;if(t.includes(i.id)){const u=this._editorBridgeService.getLatestEditCellState();if(u==null)return;let h=!1;const{row:f,column:S}=u;if(i.id===m.SetRangeValuesMutation.id&&i.params?(s=(r=i.params.cellValue)==null?void 0:r[f])!=null&&s[S]&&(h=!0):i.id===m.MoveRangeMutation.id&&i.params&&(c=(a=i.params.to.value)==null?void 0:a[f])!=null&&c[S]&&(h=!0),h){const g=(d=u.documentLayoutObject.documentModel)==null?void 0:d.getBody();if(g==null)return;const{dataStream:p,paragraphs:v=[]}=g;this._syncContentAndRender(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,p,v),this._autoScroll()}}}))}_syncActionsAndRender(e,t){var d;const i=[l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY],r=this._renderManagerService.getRenderById(e);if(r==null)return;const s=r.with(te.DocSkeletonManagerService).getSkeleton(),a=this._univerInstanceService.getUniverDocInstance(e),c=this._getEditorViewModel(e);a==null||c==null||(a.apply(t),this._checkAndSetRenderStyleConfig(a),c.reset(a),s.calculate(),i.includes(e)&&((d=r.mainComponent)==null||d.makeDirty()))}_syncContentAndRender(e,t,i,r=[]){var h,f;const s=[l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY],a=(h=this._renderManagerService.getRenderById(e))==null?void 0:h.with(te.DocSkeletonManagerService).getSkeleton(),c=this._univerInstanceService.getUniverDocInstance(e),d=this._getEditorViewModel(e);if(c==null||d==null||a==null)return;c.getBody().dataStream=t,c.getBody().paragraphs=this._clearParagraph(i),r.length>0&&(c.getBody().textRuns=r),this._checkAndSetRenderStyleConfig(c),d.reset(c);const u=this._renderManagerService.getRenderById(e);u!=null&&(a.calculate(),s.includes(e)&&((f=u.mainComponent)==null||f.makeDirty()))}_checkAndSetRenderStyleConfig(e){var s;const t=e.getSnapshot(),{body:i}=t;if(t.id!==l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)return;let r=t.documentStyle.renderConfig;r==null&&(r={},t.documentStyle.renderConfig=r),((s=i==null?void 0:i.dataStream)!=null?s:"").startsWith("=")?r.isRenderStyle=l.BooleanNumber.TRUE:r.isRenderStyle=l.BooleanNumber.FALSE}_clearParagraph(e){const t=l.Tools.deepClone(e);for(const i of t)i.paragraphStyle&&(i.paragraphStyle.horizontalAlign=l.HorizontalAlign.UNSPECIFIED);return t}_autoScroll(){var p,v;const e=this._formulaEditorManagerService.getPosition(),t=(p=this._renderManagerService.getRenderById(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))==null?void 0:p.with(te.DocSkeletonManagerService).getSkeleton(),i=this._renderManagerService.getRenderById(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),r=this._univerInstanceService.getUniverDocInstance(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);if(t==null||e==null||i==null||r==null)return;const{marginTop:s=0,marginBottom:a=0}=r.getSnapshot().documentStyle,{scene:c,mainComponent:d}=i;let{actualHeight:u}=t.getActualSize();u+=s+a;const{width:h,height:f}=e,S=c.getViewport(te.VIEWPORT_KEY.VIEW_MAIN);let g=S==null?void 0:S.getScrollBar();c.transformByState({width:h,height:u}),d==null||d.resize(h,u),u>f?g==null?S&&new w.ScrollBar(S,{enableHorizontal:!1,barSize:8}):S==null||S.resetCanvasSizeAndUpdateScroll():(g=null,S==null||S.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0}),(v=S==null?void 0:S.getScrollBar())==null||v.dispose())}_getEditorViewModel(e){var t;return(t=this._renderManagerService.getRenderById(e))==null?void 0:t.with(te.DocSkeletonManagerService).getViewModel()}},M.FormulaEditorController=vh([l.OnLifecycle(l.LifecycleStages.Rendered,M.FormulaEditorController),ct(0,l.IUniverInstanceService),ct(1,w.IRenderManagerService),ct(2,ze),ct(3,l.ICommandService),ct(4,l.IContextService),ct(5,Di),ct(6,l.IUndoRedoService),ct(7,l.Inject(te.TextSelectionManagerService))],M.FormulaEditorController);const il={sheetFooterBarHeight:"36",sheetContainer:"univer-sheet-container"},ol=[T.KeyCode.ARROW_DOWN,T.KeyCode.ARROW_UP,T.KeyCode.ARROW_LEFT,T.KeyCode.ARROW_RIGHT],Ch=[T.KeyCode.ENTER,T.KeyCode.TAB,...ol];function rl(){const n=[];for(const o of ol)n.push({id:Ft.id,binding:o,preconditions:e=>Rn(e),staticParameters:{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:o,isShift:!1}}),n.push({id:Ft.id,binding:o|T.MetaKeys.SHIFT,preconditions:e=>Rn(e),staticParameters:{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:o,isShift:!0}});return n}const sl={id:In.id,binding:T.KeyCode.F2,description:"shortcut.sheet.start-editing",group:"4_sheet-edit",preconditions:re,staticParameters:{visible:!0,eventType:w.DeviceInputEventType.Keyboard,keycode:T.KeyCode.F2}},ll={id:Pe.id,binding:T.KeyCode.ENTER,description:"shortcut.sheet.toggle-editing",group:"4_sheet-edit",preconditions:n=>Rn(n),staticParameters:{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:T.KeyCode.ENTER}},al={id:Pe.id,binding:T.KeyCode.TAB,preconditions:n=>Rn(n),staticParameters:{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:T.KeyCode.TAB}},cl={id:Pe.id,binding:T.KeyCode.ESC,description:"shortcut.sheet.abort-editing",group:"4_sheet-edit",preconditions:n=>Rn(n),staticParameters:{visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:T.KeyCode.ESC}},dl={id:te.BreakLineCommand.id,description:"shortcut.sheet.break-line",group:"4_sheet-edit",preconditions:n=>wd(n),binding:T.KeyCode.ENTER|T.MetaKeys.ALT},ul={id:te.DeleteLeftCommand.id,preconditions:n=>yd(n)||Ds(n),binding:T.KeyCode.BACKSPACE},hl={id:Pe.id,description:"shortcut.sheet.delete-and-start-editing",group:"4_sheet-edit",preconditions:n=>re(n)&&!Ds(n),binding:T.KeyCode.BACKSPACE,staticParameters:{visible:!0,eventType:w.DeviceInputEventType.Keyboard,keycode:T.KeyCode.BACKSPACE}};function _h(n){return n.startsWith("'")}function Ih(n){return n.slice(1)}const bh={"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","%":"%","-":"-",".":".",":":":","/":"/","+":"+","@":"@","&":"&","*":"*","#":"#","=":"=",">":">","<":"<","$":"$",""":'"',"'":"'","(":"(",")":")"," ":" ",",":",","!":"!","?":"?",";":";","[":"[","]":"]","{":"{","}":"}"},dr={true:"TRUE",false:"FALSE"};function Rh(n){return[l.LocaleType.ZH_CN,l.LocaleType.ZH_TW].includes(n)}function Th(n,o,e){if(n.startsWith("'")||n.startsWith("'"))return`'${n.slice(1)}`;const t=n.split("").map(yh).join("");if(t.startsWith("="))return Eh(n,t,o,e);const i=t.toLowerCase();return dr[i]?dr[i]:Ve.numfmt.parseValue(t)==null?n:t}function Eh(n,o,e,t){const i=e.sequenceNodesBuilder(o);return i?(i.forEach((r,s)=>{if(typeof r=="object"){const a=r.token,c=a.toLowerCase();if(dr[c]||r.nodeType===q.sequenceNodeType.FUNCTION&&Ph(a,t,i,s)||r.nodeType===q.sequenceNodeType.REFERENCE){const d=r.startIndex+1,u=r.endIndex+2;o=ur(a.toLocaleUpperCase(),o,d,u)}else if(a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'")){const d=r.startIndex+2,u=r.endIndex+1;o=ur(n.slice(d,u),o,d,u)}else if(r.nodeType!==q.sequenceNodeType.ARRAY&&Ve.numfmt.parseValue(a)==null){const u=r.startIndex+1,h=r.endIndex+2;o=ur(n.slice(u,h),o,u,h)}}}),o):n}function Ph(n,o,e,t){const i=o.getDescriptions();return e[t+1]!==q.matchToken.OPEN_BRACKET?!1:i.get(wh(n).toLocaleUpperCase())!==void 0}function wh(n){const o=/^@+/;return n.replace(o,"")}function yh(n){return bh[n]||n}function ur(n,o,e,t){return o.substring(0,e)+n+o.substring(t)}var Mh=Object.defineProperty,Oh=Object.getOwnPropertyDescriptor,Ah=(n,o,e,t)=>{for(var i=t>1?void 0:t?Oh(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Mh(o,e,i),i},Te=(n,o)=>(e,t)=>o(e,t,n);const ml=-1e3,fl=5,Nh=2;let hr=class extends l.Disposable{constructor(o,e,t,i,r,s,a,c,d,u,h,f,S,g,p,v){super();E(this,"_cursorChange",0);E(this,"_isUnitEditing",!1);E(this,"_workbookSelections");E(this,"_d");this._context=o,this._undoRedoService=t,this._contextService=i,this._instanceSrv=r,this._renderManagerService=s,this._editorBridgeService=a,this._cellEditorManagerService=c,this._textSelectionRenderManager=d,this._lexerTreeBuilder=u,this._functionService=h,this._textSelectionManagerService=f,this._commandService=S,this._localService=g,this._editorService=p,this._resourceLoaderService=v,this._workbookSelections=e.getWorkbookSelections(this._context.unitId),this.disposeWithMe(this._instanceSrv.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).subscribe(C=>{(C==null?void 0:C.getUnitId())===this._context.unitId?this._d=this._init():(this._disposeCurrent(),this._isUnitEditing&&(this._handleEditorInvisible({visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:T.KeyCode.ESC,unitId:this._context.unitId}),this._isUnitEditing=!1))})),this._initEditorVisibilityListener()}dispose(){super.dispose(),this._disposeCurrent()}_disposeCurrent(){var o;(o=this._d)==null||o.dispose(),this._d=null}_init(){const o=new l.DisposableCollection;return this._subscribeToCurrentCell(o),this._initialKeyboardListener(o),this._initialCursorSync(o),this._listenEditorFocus(o),this._commandExecutedListener(o),this._cursorStateListener(o),o}_initEditorVisibilityListener(){this.disposeWithMe(this._editorBridgeService.visible$.pipe(A.distinctUntilChanged((o,e)=>o.visible===e.visible)).subscribe(o=>{(o.unitId===l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY||o.unitId===this._context.unitId)&&o.visible?(this._isUnitEditing=!0,this._handleEditorVisible(o)):this._isUnitEditing&&(this._handleEditorInvisible(o),this._isUnitEditing=!1)}))}_listenEditorFocus(o){const e=this._getEditorObject();e&&o.add(e.document.onPointerDown$.subscribeEvent(()=>{if(this._isUnitEditing&&this._editorBridgeService.isVisible()){const t=this._editorBridgeService.getEditCellState(),i=this._editorBridgeService.getCurrentEditorId();if(!t||!i||!this._editorService.isSheetEditor(i))return;const r=this._getEditorSkeleton(i);if(!r)return;const{position:s,documentLayoutObject:a,canvasOffset:c,scaleX:d,scaleY:u}=t;this._fitTextSize(s,c,r,a,d,u)}}))}_getEditorSkeleton(o){var e;return(e=this._renderManagerService.getRenderById(o))==null?void 0:e.with(te.DocSkeletonManagerService).getSkeleton()}_getEditorViewModel(o){var e;return(e=this._renderManagerService.getRenderById(o))==null?void 0:e.with(te.DocSkeletonManagerService).getViewModel()}_initialCursorSync(o){o.add(this._cellEditorManagerService.focus$.pipe(A.filter(e=>!!e)).subscribe(()=>{this._textSelectionRenderManager.sync()}))}_subscribeToCurrentCell(o){o.add(this._editorBridgeService.currentEditCellState$.subscribe(e=>{if(e==null||this._editorBridgeService.isForceKeepVisible())return;const{position:t,documentLayoutObject:i,scaleX:r,editorUnitId:s}=e;if(this._contextService.getContextValue(l.FOCUSING_EDITOR_STANDALONE)||this._contextService.getContextValue(l.FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE))return;const{startX:a,endX:c}=t,{textRotation:d,wrapStrategy:u,documentModel:h}=i,{vertexAngle:f}=w.convertTextRotation(d);h.updateDocumentId(s),u===l.WrapStrategy.WRAP&&f===0&&h.updateDocumentDataPageSize((c-a)/r),this._instanceSrv.changeDoc(s,h),this._contextService.setContextValue(l.FOCUSING_EDITOR_BUT_HIDDEN,!0),this._textSelectionManagerService.replaceTextRanges([{startOffset:0,endOffset:0}]),this._textSelectionRenderManager.activate(ml,ml)}))}_fitTextSize(o,e,t,i,r=1,s=1){const{startX:a,startY:c,endX:d,endY:u}=o,h=i.documentModel;if(h==null)return;const{actualWidth:f,actualHeight:S}=this._predictingSize(o,e,t,i,r,s),{verticalAlign:g,paddingData:p,fill:v}=i;let C=d-a,I=u-c;if(C<f&&(C=f),I<S)I=S,h.updateDocumentDataMargin(p);else{let b=0;g===l.VerticalAlign.MIDDLE?b=(I-S)/2/s:g===l.VerticalAlign.TOP?b=p.t||0:b=(I-S)/s-(p.b||0),b=b<(p.t||0)?p.t||0:b,h.updateDocumentDataMargin({t:b})}t.calculate(),this._editAreaProcessing(C,I,o,e,v,r,s)}_predictingSize(o,e,t,i,r=1,s=1){const{startX:a,endX:c}=o,{textRotation:d,wrapStrategy:u}=i,h=i.documentModel,{vertexAngle:f}=w.convertTextRotation(d),S=document.body.clientWidth;if(u===l.WrapStrategy.WRAP&&f===0){const{actualWidth:v,actualHeight:C}=t.getActualSize();return{actualWidth:v*r,actualHeight:C*s}}h==null||h.updateDocumentDataPageSize((S-a-e.left)/r),t.calculate();const g=t.getActualSize();let p=c-a;return p<g.actualWidth*r+fl*r&&(p=g.actualWidth*r+fl*r),h==null||h.updateDocumentDataPageSize(p/r),h==null||h.updateDocumentRenderConfig({horizontalAlign:l.HorizontalAlign.UNSPECIFIED,cellValueType:void 0}),{actualWidth:p,actualHeight:g.actualHeight*s}}_editAreaProcessing(o,e,t,i,r,s=1,a=1){var P;const c=this._getEditorObject();if(c==null)return;let{startX:d,startY:u}=t;const{document:h,scene:f,engine:S}=c,g=f.getViewport(te.VIEWPORT_KEY.VIEW_MAIN),p=document.body.clientHeight-u-Number.parseFloat(il.sheetFooterBarHeight)-i.top-Nh*2,v=document.body.clientWidth-d-i.left;let C=e,I=g==null?void 0:g.getScrollBar();C>p?(C=p,I==null?g&&new w.ScrollBar(g,{enableHorizontal:!1,barSize:8}):g==null||g.resetCanvasSizeAndUpdateScroll()):(I=null,(P=g==null?void 0:g.getScrollBar())==null||P.dispose()),o+=(I==null?void 0:I.barSize)||0,o>v&&(o=v),d-=w.FIX_ONE_PIXEL_BLUR_OFFSET,u-=w.FIX_ONE_PIXEL_BLUR_OFFSET,this._addBackground(f,o/s,e/a,r);const{scaleX:b,scaleY:R}=f.getPrecisionScale();f.transformByState({width:o/s,height:e/a,scaleX:s,scaleY:a}),h.resize(o/s,e/a),setTimeout(()=>{S.resizeBySize(w.fixLineWidthByScale(o,b),w.fixLineWidthByScale(C,R))},0),this._cellEditorManagerService.setState({startX:d,startY:u,endX:o+d,endY:C+u,show:!0})}_addBackground(o,e,t,i){const r="_backgroundRectHelperColor_",s=o.getObject(r);s==null&&i==null||(s==null?o.addObjects([new w.Rect(r,{width:e,height:t,fill:i,evented:!1})],te.DOCS_COMPONENT_MAIN_LAYER_INDEX):i==null?s.dispose():(s.setProps({fill:i}),s.transformByState({width:e,height:t})))}_handleEditorVisible(o){var b,R;const{eventType:e,keycode:t}=o;this._cursorChange=e===w.DeviceInputEventType.PointerDown?2:1;const i=this._editorBridgeService.getEditCellState();if(i==null)return;const{position:r,documentLayoutObject:s,canvasOffset:a,scaleX:c,scaleY:d,editorUnitId:u,unitId:h,sheetId:f,isInArrayFormulaRange:S=!1}=i,g=this._getEditorObject();if(g==null)return;this._setOpenForCurrent(h,f);const{document:p,scene:v}=g;this._contextService.setContextValue(l.EDITOR_ACTIVATED,!0);const{documentModel:C}=s,I=this._getEditorSkeleton(u);if(!(!I||!C)){if(this._fitTextSize(r,a,I,s,c,d),e===w.DeviceInputEventType.Keyboard||e===w.DeviceInputEventType.Dblclick&&S){const P=l.Tools.deepClone(C.getSnapshot()),y=this._getEditorViewModel(u);if(y==null)return;this._resetBodyStyle(P.body,!!S),C.reset(P),y.reset(C),p.makeDirty(),(t===T.KeyCode.BACKSPACE||e===w.DeviceInputEventType.Dblclick)&&(I.calculate(),this._editorBridgeService.changeEditorDirty(!0)),this._textSelectionManagerService.replaceTextRanges([{startOffset:0,endOffset:0}])}else if(e===w.DeviceInputEventType.Dblclick){const P=C.getBody().dataStream.length-2||0;(b=v.getViewport(te.VIEWPORT_KEY.VIEW_MAIN))==null||b.scrollToViewportPos({viewportScrollX:Number.POSITIVE_INFINITY}),this._textSelectionManagerService.replaceTextRanges([{startOffset:P,endOffset:P}])}(R=this._renderManagerService.getRenderById(h))==null||R.scene.resetCursor()}}_resetBodyStyle(o,e=!1){o.dataStream=l.DEFAULT_EMPTY_DOCUMENT_VALUE,o.textRuns!=null&&(o.textRuns.length===1&&!e?(o.textRuns[0].st=0,o.textRuns[0].ed=1):o.textRuns=void 0),o.paragraphs!=null&&(o.paragraphs.length===1?o.paragraphs[0].startIndex=0:o.paragraphs=[{startIndex:0}]),o.sectionBreaks!=null&&(o.sectionBreaks=void 0),o.tables!=null&&(o.tables=void 0),o.customRanges!=null&&(o.customRanges=void 0),o.customBlocks!=null&&(o.customBlocks=void 0)}_initialKeyboardListener(o){o.add(this._textSelectionRenderManager.onInputBefore$.subscribe(e=>{var s;const t=this._contextService.getContextValue(l.FOCUSING_FORMULA_EDITOR),i=this._contextService.getContextValue(l.FOCUSING_SHEET),r=(s=this._instanceSrv.getCurrentUniverDocInstance())==null?void 0:s.getUnitId();r&&i&&!t&&this._editorService.isSheetEditor(r)&&this._showEditorByKeyboard(e)}))}_showEditorByKeyboard(o){if(o==null)return;const e=o.event;this._commandService.executeCommand(Pe.id,{visible:!0,eventType:w.DeviceInputEventType.Keyboard,keycode:e.which,unitId:this._context.unitId})}_commandExecutedListener(o){const e=[te.RichTextEditingMutation.id,T.SetEditorResizeOperation.id];o.add(this._commandService.onCommandExecuted(i=>{if(e.includes(i.id)){const r=i.params,{unitId:s}=r;if(!this._editorService.isSheetEditor(s))return;const a=this._editorBridgeService.getCurrentEditorId();if(a==null)return;const c=this._getEditorSkeleton(a);if(c==null)return;this._editorBridgeService.changeEditorDirty(!0);const d=this._editorBridgeService.getEditCellState();if(d==null)return;const{position:u,documentLayoutObject:h,canvasOffset:f,scaleX:S,scaleY:g}=d;this._fitTextSize(u,f,c,h,S,g)}})),o.add(this._commandService.onCommandExecuted(i=>{i.id===m.ClearSelectionFormatCommand.id&&this._editorBridgeService.refreshEditCellState()}));const t=[Ft.id];o.add(this._commandService.onCommandExecuted(i=>{if(t.includes(i.id)){const r=i.params,{keycode:s,isShift:a}=r;if(s!=null&&(this._cursorChange===2||this._contextService.getContextValue(l.FOCUSING_FORMULA_EDITOR))){this._moveInEditor(s,a);return}this._editorBridgeService.changeVisible(r)}i.id===In.id&&(this._cursorChange=2)}))}_setOpenForCurrent(o,e){const t=this._editorService.getAllEditor();for(const[i,r]of t)r.isSheetEditor()&&(r.setOpenForSheetUnitId(o),r.setOpenForSheetSubUnitId(e))}_getEditorObject(){return To(this._editorBridgeService.getCurrentEditorId(),this._renderManagerService)}async _handleEditorInvisible(o){const{keycode:e}=o;this._setOpenForCurrent(null,null),this._cursorChange=0,this._exitInput(o);const t=this._editorBridgeService.getEditCellState();if(t==null)return;const{unitId:i,sheetId:r,row:s,column:a,documentLayoutObject:c}=t;if(this._editorBridgeService.getEditorDirty()===!1){this._moveCursor(e);return}const u=this._context.unit,h=u.getActiveSheet(),f=this._context.unitId,S=h.getSheetId();if(e===T.KeyCode.ESC){const I=this._workbookSelections.getCurrentSelections();I&&this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:this._context.unit,subUnitId:S,selections:I});return}const g=Dh(h.getCellRaw(s,a)||{},c,this._lexerTreeBuilder,I=>this._resourceLoaderService.saveDoc(I),this._localService,this._functionService);if(!g){this._moveCursor(e);return}const p={subUnitId:r,unitId:i,workbook:u,worksheet:h,row:s,col:a};f===i&&r!==S&&this._editorBridgeService.isForceKeepVisible()&&await this._commandService.executeCommand(m.SetWorksheetActivateCommand.id,{subUnitId:r,unitId:i});const v=this._editorBridgeService.interceptor.fetchThroughInterceptors(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT)(g,p),C=await this._editorBridgeService.interceptor.fetchThroughInterceptors(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT_ASYNC)(Promise.resolve(v),p);this._commandService.executeCommand(m.SetRangeValuesCommand.id,{subUnitId:r,unitId:i,range:{startRow:s,startColumn:a,endRow:s,endColumn:a},value:C}),this._moveCursor(e)}_exitInput(o){this._contextService.setContextValue(l.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(l.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(l.FOCUSING_EDITOR_BUT_HIDDEN,!1),this._contextService.setContextValue(l.FOCUSING_FORMULA_EDITOR,!1),this._cellEditorManagerService.setState({show:o.visible});const e=this._editorBridgeService.getCurrentEditorId();e==null||!this._editorService.isSheetEditor(e)||(this._undoRedoService.clearUndoRedo(e),this._undoRedoService.clearUndoRedo(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))}_moveCursor(o){if(o==null||!Ch.includes(o))return;let e=l.Direction.LEFT;switch(o){case T.KeyCode.ENTER:e=l.Direction.DOWN;break;case T.KeyCode.TAB:e=l.Direction.RIGHT;break;case T.KeyCode.ARROW_DOWN:e=l.Direction.DOWN;break;case T.KeyCode.ARROW_UP:e=l.Direction.UP;break;case T.KeyCode.ARROW_LEFT:e=l.Direction.LEFT;break;case T.KeyCode.ARROW_RIGHT:e=l.Direction.RIGHT;break}o===T.KeyCode.ENTER||o===T.KeyCode.TAB?this._commandService.executeCommand(Be.id,{keycode:o,direction:e}):this._commandService.executeCommand(Ee.id,{direction:e})}_cursorStateListener(o){const e=this._getEditorObject(),{document:t}=e;o.add(l.toDisposable(t.onPointerDown$.subscribeEvent(()=>{this._cursorChange===1&&(this._cursorChange=2)})))}_moveInEditor(o,e){let t=l.Direction.LEFT;o===T.KeyCode.ARROW_DOWN?t=l.Direction.DOWN:o===T.KeyCode.ARROW_UP?t=l.Direction.UP:o===T.KeyCode.ARROW_RIGHT&&(t=l.Direction.RIGHT),e?this._commandService.executeCommand(te.MoveSelectionOperation.id,{direction:t}):this._commandService.executeCommand(te.MoveCursorOperation.id,{direction:t})}};hr=Ah([Te(1,l.Inject(m.SheetsSelectionsService)),Te(2,l.IUndoRedoService),Te(3,l.IContextService),Te(4,l.IUniverInstanceService),Te(5,w.IRenderManagerService),Te(6,ze),Te(7,Ni),Te(8,w.ITextSelectionRenderManager),Te(9,l.Inject(q.LexerTreeBuilder)),Te(10,q.IFunctionService),Te(11,l.Inject(te.TextSelectionManagerService)),Te(12,l.ICommandService),Te(13,l.Inject(l.LocaleService)),Te(14,T.IEditorService),Te(15,l.IResourceLoaderService)],hr);function Dh(n,o,e,t,i,r){n=l.Tools.deepClone(n);const{documentModel:s}=o;if(s==null)return null;const a=t(s),{body:c}=a;if(c==null)return null;n.t=void 0;const d=c.dataStream;let h=d.substring(d.length-2,d.length)===l.DEFAULT_EMPTY_DOCUMENT_VALUE?d.substring(0,d.length-2):d;const f=i.getCurrentLocale();if(Rh(f)&&(h=Th(h,e,r)),l.isFormulaString(h)){if(n.f===h)return null;const S=e.checkIfAddBracket(h);for(let g=0;g<S;g++)h+=q.matchToken.CLOSE_BRACKET;n.f=h,n.si=null,n.v=null,n.p=null}else if(_h(h)){const S=Ih(h);n.v=S,n.f=null,n.si=null,n.p=null,n.t=l.CellValueType.FORCE_STRING}else if(kh(c))c.dataStream===`\r
22
- `?(n.v="",n.f=null,n.si=null,n.p=null):(n.p=a,n.v=null,n.f=null,n.si=null);else{if((h===n.v||h===""&&n.v==null)&&n.p==null)return null;n.v=h,n.f=null,n.si=null,n.p=null}return n}function kh(n){const{textRuns:o=[],paragraphs:e=[],customRanges:t,customBlocks:i=[]}=n;return o.some(r=>r.ts&&!l.Tools.isEmptyObject(r.ts))||e.some(r=>r.bullet)||e.length>=2||!!(t!=null&&t.length)||i.length>0}var Hh=Object.defineProperty,Vh=Object.getOwnPropertyDescriptor,Lh=(n,o,e,t)=>{for(var i=t>1?void 0:t?Vh(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Hh(o,e,i),i},Wh=(n,o)=>(e,t)=>o(e,t,n);let ki=class extends l.Disposable{constructor(n,o){super(),this._context=n,this._formatPainterService=o,this._initialize()}_initialize(){this._bindFormatPainterStatus()}_bindFormatPainterStatus(){this.disposeWithMe(l.toDisposable(this._formatPainterService.status$.subscribe(n=>{const o=this._context.scene;o&&(n!==Ae.OFF?o.setDefaultCursor(w.CURSOR_TYPE.CELL):o.setDefaultCursor(w.CURSOR_TYPE.DEFAULT))})))}};ki=Lh([Wh(1,et)],ki);var xh=Object.defineProperty,Uh=Object.getOwnPropertyDescriptor,Bh=(n,o,e,t)=>{for(var i=t>1?void 0:t?Uh(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&xh(o,e,i),i},bt=(n,o)=>(e,t)=>o(e,t,n);const Fh="__SpreadsheetFreezeRowMainName__",jh="__SpreadsheetFreezeRowHeaderName__",Xh="__SpreadsheetFreezeColumnMainName__",zh="__SpreadsheetFreezeColumnHeaderName__",mr=2,Yh=.01,kn=l.createInterceptorKey("freezePermissionCheck");M.HeaderFreezeRenderController=class extends l.Disposable{constructor(e,t,i,r,s,a,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 l.InterceptorManager({FREEZE_PERMISSION_CHECK:kn}));this._context=e,this._sheetSkeletonManagerService=t,this._commandService=i,this._selectionManagerService=r,this._scrollManagerService=s,this._themeService=a,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 N;const i=t!=null?t:this._getFreeze();if(i==null)return null;const r=(N=this._sheetSkeletonManagerService.getCurrent())==null?void 0:N.skeleton,{startRow:s,startColumn:a}=i,c=this._getPositionByIndex(s,a);if(c==null||r==null)return null;const d=this._getSheetObject(),u=d.engine,h=(u==null?void 0:u.width)||0,f=(u==null?void 0:u.height)||0,S=d.scene,{startX:g,startY:p}=c,{rowTotalHeight:v,columnTotalWidth:C,rowHeaderWidthAndMarginLeft:I,columnHeaderHeightAndMarginTop:b}=r,R=h>C+I?h:C+b,P=f>v+b?f:v+b;this._changeToRow=s,this._changeToColumn=a,this._changeToOffsetX=g,this._changeToOffsetY=p;const y=Math.max(S.scaleX,S.scaleY);let O=mr/(y<1?1:y);if(e===0){(s===-1||s===0)&&(O=O*2);const D=O;this._rowFreezeHeaderRect=new w.Rect(jh,{fill:this._freezeNormalHeaderColor,width:I,height:O,left:0,top:p-D,zIndex:3});let k=this._freezeNormalHeaderColor;(s===-1||s===0)&&(k=this._freezeNormalMainColor),this._rowFreezeMainRect=new w.Rect(Fh,{fill:k,width:R*2/y,height:O,left:I,top:p-D,zIndex:3}),S.addObjects([this._rowFreezeHeaderRect,this._rowFreezeMainRect],st)}else{(a===-1||a===0)&&(O=O*2);const D=O;this._columnFreezeHeaderRect=new w.Rect(zh,{fill:this._freezeNormalHeaderColor,width:O,height:b,left:g-D,top:0,zIndex:3});let k=this._freezeNormalHeaderColor;(a===-1||a===0)&&(k=this._freezeNormalMainColor),this._columnFreezeMainRect=new w.Rect(Xh,{fill:k,width:O,height:P*2/y,left:g-D,top:b,zIndex:3}),S.addObjects([this._columnFreezeHeaderRect,this._columnFreezeMainRect],st)}this._eventBinding(e)}_eventBinding(e=0){let t=this._rowFreezeHeaderRect,i=this._rowFreezeMainRect;e===1&&(t=this._columnFreezeHeaderRect,i=this._columnFreezeMainRect);const r=this._getSheetObject();if(r==null)return;const{scene:s}=r;if(this._freezePointerEnterSubs=new A.Subscription,this._freezePointerLeaveSubs=new A.Subscription,this._freezeDownSubs=new A.Subscription,i){const d=i.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(kn)(null,null))return!1;t==null||t.setProps({fill:this._freezeHoverColor,zIndex:4}),s.setCursor(w.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(d);const u=i.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(kn)(null,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 a=t==null?void 0:t.onPointerDown$.subscribeEvent(d=>{this._freezeDown(d,t,i,e)});a&&this._freezeDownSubs.add(a);const c=i==null?void 0:i.onPointerDown$.subscribeEvent(d=>{this._freezeDown(d,t,i,e)});c&&this._freezeDownSubs.add(c)}_getCurrentLastVisibleRow(){var f,S,g,p;const e=this._getSheetObject();if(e==null)return;const t=(f=this._sheetSkeletonManagerService.getCurrent())==null?void 0:f.skeleton;if(t==null)return;const i=e.scene,r=Math.max(i.scaleX,i.scaleY),s=this._scrollManagerService.getCurrentScrollState(),a=(e.engine.height-t.columnHeaderHeight)/r,c=(S=s==null?void 0:s.sheetViewStartRow)!=null?S:0,d=c===0?-((g=s==null?void 0:s.offsetY)!=null?g:0):t.rowHeightAccumulation[c-1]-((p=s==null?void 0:s.offsetY)!=null?p:0);let u=0,h=!1;for(let v=c,C=t.rowHeightAccumulation.length;v<C;v++)if(t.rowHeightAccumulation[v]-d>a){u=v,h=!0;break}return h||(u=t.rowHeightAccumulation.length-1),u}_getActiveViewport(e){var i;const t=(i=this._getSheetObject())==null?void 0:i.scene.getViewports();return t&&t.find(r=>r.isHit(new w.Vector2(e.offsetX,e.offsetY)))||null}_freezeDown(e,t,i,r=0){var S;const s=(S=this._sheetSkeletonManagerService.getCurrent())==null?void 0:S.skeleton;if(s==null)return;const a=this._getSheetObject();if(a==null)return;if(!this.interceptor.fetchThroughInterceptors(kn)(null,null))return!1;const{scene:d}=a;d.setCursor(w.CURSOR_TYPE.GRABBING),d.disableEvent();const u=this._getCurrentLastVisibleRow(),h=u===void 0?Number.POSITIVE_INFINITY:s.rowHeightAccumulation[u];this._activeViewport=null;const f=this._getFreeze();f&&(this._changeToColumn=f.startColumn,this._changeToRow=f.startRow),this._scenePointerMoveSub=d.onPointerMove$.subscribeEvent(g=>{var y,O,N,D;const p=this._getActiveViewport(g),{startX:v,startY:C,row:I,column:b}=Xe(g.offsetX,g.offsetY,d,s,p||void 0,!0);if(!this.interceptor.fetchThroughInterceptors(kn)(null,null))return!1;d.setCursor(w.CURSOR_TYPE.GRABBING);const P=mr/Math.max(d.scaleX,d.scaleY);r===0?((y=t.transformByState({top:Math.min(C,h)-P/2}))==null||y.setProps({fill:this._freezeActiveColor}),(O=i.transformByState({top:Math.min(C,h)-P/2}))==null||O.setProps({fill:this._freezeNormalHeaderColor}),this._changeToRow=u===void 0?I:Math.min(I,u),this._changeToOffsetY=Math.min(C,h),this._activeViewport=p):((N=t.transformByState({left:v-P/2}))==null||N.setProps({fill:this._freezeActiveColor}),(D=i.transformByState({left:v-P/2}))==null||D.setProps({fill:this._freezeNormalHeaderColor}),this._changeToColumn=b,this._changeToOffsetX=v,this._activeViewport=p)}),this._scenePointerUpSub=d.onPointerUp$.subscribeEvent(()=>{var k,H;d.resetCursor(),d.enableEvent(),this._clearObserverEvent();const{rowHeaderWidthAndMarginLeft:g,columnHeaderHeightAndMarginTop:p}=s;r===0&&(this._changeToRow===0||this._changeToRow===-1)||r===1&&(this._changeToColumn===0||this._changeToColumn===-1)?(t.setProps({fill:this._freezeNormalHeaderColor}),i.setProps({fill:this._freezeNormalMainColor})):(t==null||t.setProps({fill:this._freezeNormalHeaderColor}),i==null||i.setProps({fill:this._freezeNormalHeaderColor}));const v=mr/Math.max(d.scaleX,d.scaleY);r===0?(this._changeToRow===0||this._changeToRow===-1)&&(t.transformByState({top:p-v}),i.transformByState({top:p-v})):(this._changeToColumn===0||this._changeToColumn===-1)&&(t.transformByState({left:g-v}),i.transformByState({left:g-v}));const C=this._scrollManagerService.getCurrentScrollState()||{sheetViewStartRow:0,sheetViewStartColumn:0},{sheetViewStartRow:I,sheetViewStartColumn:b}=C;if(b==null||I==null)return;const R=this._context.unit,P=R.getActiveSheet();if(!P)return;const y=(k=P.getConfig())==null?void 0:k.freeze;let O=(y==null?void 0:y.xSplit)||0,N=(y==null?void 0:y.ySplit)||0;const D=(H=this._activeViewport)==null?void 0:H.viewportKey;r===0&&(!D||D===w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||D===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||D===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||D===w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP?N=this._changeToRow-(y.startRow-y.ySplit):N=this._changeToRow-I,N=N<0?0:N),r===1&&(!D||D===w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||D===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||D===w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||D===w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT?O=this._changeToColumn-(y.startColumn-y.xSplit):O=this._changeToColumn-b,O=O<0?0:O),this._commandService.executeCommand(m.SetFrozenCommand.id,{startRow:N===0?-1:this._changeToRow,startColumn:O===0?-1:this._changeToColumn,ySplit:N,xSplit:O,unitId:R.getUnitId(),subUnitId:P.getSheetId()})})}_getViewports(){const e=this._getSheetObject();if(e==null)return;const{scene:t}=e,i=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT),r=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT),s=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP),a=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),f=t.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(!(i==null||r==null||s==null||a==null||c==null||d==null||u==null||h==null||f==null))return{viewMain:d,viewMainLeftTop:u,viewMainLeft:h,viewMainTop:f,viewColumnLeft:i,viewColumnRight:r,viewRowTop:s,viewRowBottom:a,viewLeftTop:c}}_bindViewportScroll(){const e=this._getViewports();if(!e)return;const{viewRowBottom:t,viewColumnRight:i,viewMainLeft:r,viewMainTop:s}=e;this.disposeWithMe(this._scrollManagerService.validViewportScrollInfo$.subscribe(a=>{if(!a)return;const{scrollX:c,scrollY:d,viewportScrollX:u,viewportScrollY:h}=a;t.isActive&&t.updateScrollVal({scrollY:d,viewportScrollY:h}),i.isActive&&i.updateScrollVal({scrollX:c,viewportScrollX:u}),r.isActive&&r.updateScrollVal({scrollY:d,viewportScrollY:h}),s.isActive&&s.updateScrollVal({scrollX:c,viewportScrollX:u})}))}_updateViewport(e=-1,t=-1,i=0,r=0,s=3){var N;const a=(N=this._sheetSkeletonManagerService.getCurrent())==null?void 0:N.skeleton;if(a==null)return;const{rowHeaderWidthAndMarginLeft:c,columnHeaderHeightAndMarginTop:d}=a,u=this._getViewports();if(!u)return;const{viewMain:h,viewMainLeftTop:f,viewMainLeft:S,viewMainTop:g,viewColumnLeft:p,viewColumnRight:v,viewRowTop:C,viewRowBottom:I,viewLeftTop:b}=u;v.resizeWhenFreezeChange({left:c,top:0,height:d,right:0}),I.resizeWhenFreezeChange({left:0,top:d,bottom:0,width:c}),b.resizeWhenFreezeChange({left:0,top:0,width:c,height:d});let R=!0,P=!0;f.enable(),(e===-1||e===0)&&(R=!1),(t===-1||t===0)&&(P=!1);const y=a.getNoMergeCellPositionByIndexWithNoHeader(e-i,t-r),O=a.getNoMergeCellPositionByIndexWithNoHeader(e,t);if(f.disable(),g.disable(),S.disable(),C.disable(),p.disable(),f.resetPadding(),g.resetPadding(),S.resetPadding(),C.resetPadding(),p.resetPadding(),R===!1&&P===!1)h.resizeWhenFreezeChange({left:c,top:d,bottom:0,right:0}),h.resetPadding();else if(R===!0&&P===!1){const D=O.startY-y.startY;h.resizeWhenFreezeChange({left:c,top:d+D,bottom:0,right:0}),h.setPadding({startY:y.startY,endY:O.startY,startX:0,endX:0}),s&2&&this._commandService.executeCommand(xe.id,{sheetViewStartRow:0,offsetY:0}),g.resizeWhenFreezeChange({left:c,top:d,height:D,right:0}),g.updateScrollVal({viewportScrollY:y.startY,rawScrollX:h.scrollX,viewportScrollX:h.viewportScrollX}),C.resizeWhenFreezeChange({left:0,top:d,width:c,height:D}),C.updateScrollVal({viewportScrollY:y.startY}),I.resizeWhenFreezeChange({left:0,top:d+D,bottom:0,width:c}),g.enable(),C.enable()}else if(R===!1&&P===!0){const D=O.startX-y.startX;h.resizeWhenFreezeChange({left:c+D,top:d,bottom:0,right:0}),h.setPadding({startX:y.startX,endX:O.startX,startY:0,endY:0}),s&1&&this._commandService.executeCommand(xe.id,{sheetViewStartColumn:0,offsetX:0}),S.resizeWhenFreezeChange({left:c,top:d,width:D,bottom:0,right:0}),S.updateScrollVal({viewportScrollX:y.startX,rawScrollY:h.scrollY,viewportScrollY:h.viewportScrollY}),p.resizeWhenFreezeChange({left:c,top:0,width:D,height:d}),p.updateScrollVal({viewportScrollX:y.startX}),v.resizeWhenFreezeChange({left:c+D,top:0,height:d,right:0}),S.enable(),p.enable()}else{const D=O.startX-y.startX,k=O.startY-y.startY;h.resizeWhenFreezeChange({left:c+D,top:d+k,bottom:0,right:0}),h.setPadding({startY:y.startY,endY:O.startY,startX:y.startX,endX:O.startX}),s&&this._commandService.executeCommand(xe.id,{...s&1?{sheetViewStartColumn:0,offsetX:0}:null,...s&2?{sheetViewStartRow:0,offsetY:0}:null}),S.resizeWhenFreezeChange({left:c,top:d+k,width:D,bottom:0}),S.updateScrollVal({viewportScrollX:y.startX,rawScrollY:h.scrollY,viewportScrollY:h.viewportScrollY}),g.resizeWhenFreezeChange({left:c+D,top:d,height:k,right:0}),g.updateScrollVal({viewportScrollY:y.startY,rawScrollX:h.scrollX,viewportScrollX:h.viewportScrollX}),f.resizeWhenFreezeChange({left:c,top:d,width:D,height:k}),f.updateScrollVal({viewportScrollX:y.startX,viewportScrollY:y.startY}),C.resizeWhenFreezeChange({left:0,top:d,width:c,height:k}),C.updateScrollVal({viewportScrollY:y.startY}),I.resizeWhenFreezeChange({left:0,top:d+k,bottom:0,width:c}),p.resizeWhenFreezeChange({left:c,top:0,width:D,height:d}),p.updateScrollVal({viewportScrollX:y.startX}),v.resizeWhenFreezeChange({left:c+D,top:0,height:d,right:0}),f.enable(),g.enable(),S.enable(),C.enable(),p.enable()}}_skeletonListener(){this.disposeWithMe(l.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 i=t.getConfig().freeze,{startRow:r=-1,startColumn:s=-1,ySplit:a=0,xSplit:c=0}=i;this._refreshFreeze(r,s,a,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 l.ColorKit(e.grey400).setAlpha(Yh).toRgbString(),this._freezeActiveColor=e.primaryColor,this._freezeHoverColor=e.grey500}_interceptorCommands(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{const t={redos:[],undos:[]},i=this._getFreeze();if(!i)return t;const r=s=>{const a=this._context.unit,c=a.getUnitId(),d=a.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},f=m.SetFrozenMutationFactory(this._injector,h);return{undos:[{id:m.SetFrozenMutation.id,params:f}],redos:[{id:m.SetFrozenMutation.id,params:h}]}};if(e.id===m.InsertRowCommand.id){const s=e.params,{range:a,direction:c}=s,d=a.endRow-a.startRow+1;if(a.startRow+1<i.startRow||a.startRow+1===i.startRow&&c===l.Direction.UP){const u={...i,startRow:Math.max(1,i.startRow+d),ySplit:Math.max(1,i.ySplit+d)};return r(u)}}if(e.id===m.InsertColCommand.id){const s=e.params,{range:a,direction:c}=s,d=a.endColumn-a.startColumn+1;if(a.startColumn+1<i.startColumn||a.startColumn+1===i.startColumn&&c===l.Direction.LEFT){const u={...i,startColumn:Math.max(1,i.startColumn+d),xSplit:Math.max(1,i.xSplit+d)};return r(u)}}if(e.id===m.MoveColsCommand.id){const s=this._selectionManagerService.getCurrentSelections(),{fromRange:{startColumn:a},toRange:{startColumn:c}}=e.params,d=s==null?void 0:s.filter(C=>C.range.rangeType===l.RANGE_TYPE.COLUMN&&C.range.startColumn<=a&&a<=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(!i||i.startColumn<=0||u.startColumn>=i.startColumn&&h.startColumn>=i.startColumn||u.startColumn===h.startColumn||u.endColumn<i.startColumn&&h.startColumn<i.startColumn)return t;const f=u.endColumn-u.startColumn+1,S=Math.max(Math.min(i.startColumn,u.endColumn+1)-u.startColumn,0);let g,p;h.startColumn>=i.startColumn?(g=Math.max(i.startColumn-S,1),p=Math.max(i.xSplit-S,1)):(g=i.startColumn+f-S,p=i.xSplit+f-S);const v={...i,startColumn:g,xSplit:p};return r(v)}if(e.id===m.MoveRowsCommand.id){const s=this._selectionManagerService.getCurrentSelections(),{fromRange:{startRow:a},toRange:{startRow:c}}=e.params,d=s==null?void 0:s.filter(C=>C.range.rangeType===l.RANGE_TYPE.ROW&&C.range.startRow<=a&&a<=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(!i||i.startRow<=0||u.startRow>=i.startRow&&h.startRow>=i.startRow||u.startRow===h.startRow||u.endRow<i.startRow&&h.startRow<i.startRow)return t;const f=u.endRow-u.startRow+1,S=Math.max(Math.min(i.startRow,u.endRow+1)-u.startRow,0);let g,p;h.startRow>=i.startRow?(g=Math.max(i.startRow-S,1),p=Math.max(i.ySplit-S,1)):(g=i.startRow+f-S,p=i.ySplit+f-S);const v={...i,startRow:g,ySplit:p};return r(v)}if(e.id===m.RemoveColCommand.id||e.id===m.RemoveRowCommand.id){const s=e.params,a=s.range;if(a.rangeType===l.RANGE_TYPE.COLUMN&&a.startColumn<i.startColumn){const c=Math.min(i.startColumn,a.endColumn+1)-a.startColumn,d={...i,startColumn:Math.max(1,i.startColumn-c),xSplit:Math.max(1,i.xSplit-c)};return r(d)}if(s.range.rangeType===l.RANGE_TYPE.ROW&&a.startRow<i.startRow){const c=Math.min(i.startRow,a.endRow+1)-a.startRow,d={...i,startRow:Math.max(1,i.startRow-c),ySplit:Math.max(1,i.ySplit-c)};return r(d)}}return t}}))}_commandExecutedListener(){const e=[m.SetFrozenMutation.id,Ye.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(e.includes(t.id)){const i=this._lastFreeze,r=this._context.unit,s=r.getActiveSheet(),a=t.params,{unitId:c,subUnitId:d}=a;if(!(c===r.getUnitId()&&d===(s==null?void 0:s.getSheetId())))return;const u=s.getConfig().freeze;if(this._lastFreeze=u,u==null)return;let h=0;const{startRow:f=-1,startColumn:S=-1,ySplit:g=0,xSplit:p=0}=u;(!i||i.startRow!==f||i.ySplit!==g)&&(h|=2),(!i||i.startColumn!==S||i.xSplit!==p)&&(h|=1),a.resetScroll===!1&&(h=0),this._refreshFreeze(f,S,g,p,h)}else if(t.id===m.SetWorksheetRowHeightMutation.id){const i=this._getFreeze(),r=i&&t.params.ranges.some(s=>s.startRow<i.startRow);t.params&&r&&this._refreshCurrent()}else if(t.id===m.SetWorksheetColWidthMutation.id){const i=this._getFreeze();t.params&&i&&t.params.ranges.some(r=>r.startColumn<i.startColumn)&&this._refreshCurrent()}else if(t.id===m.SetWorksheetRowAutoHeightMutation.id){const i=t.params,r=this._getFreeze();if(r&&r.startRow>-1&&i.rowsAutoHeightInfo.some(s=>s.row<r.startRow)){const s=this._sheetSkeletonManagerService.currentSkeleton$.subscribe(()=>{this._refreshCurrent(),setTimeout(()=>{s.unsubscribe()})})}}else if(t.id===m.SetColHiddenMutation.id||t.id===m.SetColVisibleMutation.id){const i=t.params,r=this._getFreeze(),s=i.ranges;r&&r.startColumn>-1&&s.some(a=>a.startColumn<r.startColumn)&&this._refreshCurrent()}else if(t.id===m.SetRowHiddenMutation.id||t.id===m.SetRowVisibleMutation.id){const i=t.params,r=this._getFreeze(),s=i.ranges;r&&r.startRow>-1&&s.some(a=>a.startRow<r.startRow)&&this._refreshCurrent()}}))}_zoomRefresh(){const e=this._getSheetObject();if(e==null)return;const{scene:t}=e;t.onTransformChange$.subscribeEvent(i=>{i.type===w.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale&&this._refreshCurrent()})}_clearObserverEvent(){var t,i;this._getSheetObject()!=null&&((t=this._scenePointerMoveSub)==null||t.unsubscribe(),(i=this._scenePointerUpSub)==null||i.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_clearFreeze(){var t,i,r,s,a,c;(t=this._rowFreezeHeaderRect)==null||t.dispose(),(i=this._rowFreezeMainRect)==null||i.dispose(),(r=this._columnFreezeHeaderRect)==null||r.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,(a=this._scenePointerMoveSub)==null||a.unsubscribe(),(c=this._scenePointerUpSub)==null||c.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_getPositionByIndex(e,t){var d;if(this._getSheetObject()==null)return;const r=(d=this._sheetSkeletonManagerService.getCurrent())==null?void 0:d.skeleton,s=r==null?void 0:r.getNoMergeCellPositionByIndex(e,t);if(r==null)return;if(s!=null&&(!isNaN(s.endX)||!isNaN(s.endY)))return s;const{rowHeaderWidthAndMarginLeft:a,columnHeaderHeightAndMarginTop:c}=r;return{startX:a,endX:a,startY:c,endY:c}}_getFreeze(){var t;const e=(t=this._sheetSkeletonManagerService.getCurrent())==null?void 0:t.skeleton.getWorksheetConfig();if(e!=null)return e.freeze}_getSheetObject(){return je(this._context.unit,this._context)}_refreshFreeze(e,t,i,r,s){var c;const a={startRow:e,startColumn:t,ySplit:i,xSplit:r};this._clearFreeze(),this._createFreeze(0,a),this._createFreeze(1,a),this._updateViewport(e,t,i,r,s),(c=this._getSheetObject())==null||c.spreadsheet.makeForceDirty()}},M.HeaderFreezeRenderController=Bh([bt(1,l.Inject(M.SheetSkeletonManagerService)),bt(2,l.ICommandService),bt(3,l.Inject(m.SheetsSelectionsService)),bt(4,l.Inject(be)),bt(5,l.Inject(l.ThemeService)),bt(6,l.Inject(m.SheetInterceptorService)),bt(7,l.Inject(l.Injector))],M.HeaderFreezeRenderController);var fr=(n=>(n[n.NORMAL=0]="NORMAL",n[n.HIGHLIGHT=1]="HIGHLIGHT",n))(fr||{});const Zh="rgba(0, 0, 0, 0.15)",nt="rgb(0, 0, 0)",Hi="rgb(255, 255, 255, 1)";class Gh 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:Zh});const t=this._size*.5*this._iconRatio,i=Math.PI/180*60,r=t*Math.sin(i),s=t*Math.cos(i);w.RegularPolygon.drawWith(e,{pointsGroup:[[{x:-r+this._size/2,y:-s+this._size/2},{x:r+this._size/2,y:-s+this._size/2},{x:this._size/2,y:t+this._size/2}]],fill:nt})}}var Kh=Object.defineProperty,qh=Object.getOwnPropertyDescriptor,Qh=(n,o,e,t)=>{for(var i=t>1?void 0:t?qh(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Kh(o,e,i),i},Vi=(n,o)=>(e,t)=>o(e,t,n);const Jh="__SpreadsheetHeaderMenuSHAPEControllerShape__",$h="__SpreadsheetHeaderMenuMAINControllerShape__",em="rgba(0, 0, 0, 0.1)";let Sr=class extends l.Disposable{constructor(o,e,t,i,r){super();E(this,"_hoverRect");E(this,"_hoverMenu");E(this,"_currentColumn",Number.POSITIVE_INFINITY);E(this,"_headerPointerSubs");E(this,"_colHeaderPointerSubs");this._context=o,this._sheetSkeletonManagerService=e,this._contextMenuService=t,this._commandService=i,this._selectionManagerService=r,this._initialize()}dispose(){var o,e,t;(o=this._hoverRect)==null||o.dispose(),(e=this._hoverMenu)==null||e.dispose(),(t=this._headerPointerSubs)==null||t.unsubscribe(),this._headerPointerSubs=null}_initialize(){const o=this._context.scene;this._hoverRect=new w.Rect(Jh,{fill:em,evented:!1}),this._hoverMenu=new Gh($h,{zIndex:100,visible:!1}),o.addObjects([this._hoverRect,this._hoverMenu],st),this._initialHover(0),this._initialHover(1),this._initialHoverMenu()}_initialHover(o=0){var h,f,S;const e=this._context.components.get(de.COLUMN),t=this._context.components.get(de.ROW),i=o===0?t:e,r=g=>{var O,N,D;const p=(O=this._sheetSkeletonManagerService.getCurrent())==null?void 0:O.skeleton;if(p==null)return;const{rowHeaderWidth:v,columnHeaderHeight:C}=p,{startX:I,startY:b,endX:R,endY:P,column:y}=Xe(g.offsetX,g.offsetY,this._context.scene,p);if(o===0)(N=this._hoverRect)==null||N.transformByState({width:v,height:P-b,left:0,top:b});else{if(this._currentColumn=y,(D=this._hoverRect)==null||D.transformByState({width:R-I,height:C,left:I,top:0}),this._hoverMenu==null)return;if(R-I<C*2){this._hoverMenu.hide();return}const k=C*.8;this._hoverMenu.transformByState({left:R-C,top:C/2-k/2}),this._hoverMenu.setShapeProps({size:k}),this._hoverMenu.show()}},s=()=>{var g;(g=this._hoverRect)==null||g.show()},a=()=>{var g,p;(g=this._hoverRect)==null||g.hide(),(p=this._hoverMenu)==null||p.hide()};this._headerPointerSubs=new A.Subscription;const c=i.onPointerMove$.subscribeEvent(r),d=i.onPointerEnter$.subscribeEvent(s),u=i.onPointerLeave$.subscribeEvent(a);(h=this._headerPointerSubs)==null||h.add(c),(f=this._headerPointerSubs)==null||f.add(d),(S=this._headerPointerSubs)==null||S.add(u)}_initialHoverMenu(){this._hoverMenu!=null&&(this._hoverMenu.onPointerEnter$.subscribeEvent(()=>{this._hoverMenu!=null&&(this._hoverMenu.setProps({mode:fr.HIGHLIGHT,visible:!0}),this._context.scene.setCursor(w.CURSOR_TYPE.POINTER))}),this._hoverMenu.onPointerLeave$.subscribeEvent(()=>{this._hoverMenu!=null&&(this._hoverMenu.setProps({mode:fr.NORMAL,visible:!1}),this._context.scene.resetCursor())}),this._hoverMenu.onPointerDown$.subscribeEvent(o=>{var r;const e=this._currentColumn,t=(r=this._selectionManagerService.getCurrentSelections())==null?void 0:r.map(s=>s.range);if(!!!(t!=null&&t.filter(s=>s.rangeType===l.RANGE_TYPE.COLUMN).find(s=>{const{startColumn:a,endColumn:c}=s;return e>=a&&e<=c}))){const s=this._getSelectionOnColumn(e);this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,s)}o.stopPropagation(),o.preventDefault(),this._contextMenuService.triggerContextMenu(o,le.COL_HEADER_CONTEXT_MENU)}))}_getSelectionOnColumn(o){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:o,endRow:t.getRowCount()-1,endColumn:o,rangeType:l.RANGE_TYPE.COLUMN},primary:{startRow:0,startColumn:o,endRow:0,endColumn:o,actualRow:0,actualColumn:o,isMerged:!1,isMergedMainCell:!1},style:null}]}}};Sr=Qh([Vi(1,l.Inject(M.SheetSkeletonManagerService)),Vi(2,T.IContextMenuService),Vi(3,l.ICommandService),Vi(4,l.Inject(m.SheetsSelectionsService))],Sr);var tm=Object.defineProperty,nm=Object.getOwnPropertyDescriptor,im=(n,o,e,t)=>{for(var i=t>1?void 0:t?nm(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&tm(o,e,i),i},gr=(n,o)=>(e,t)=>o(e,t,n);const om="__SpreadsheetHeaderMoveControllerBackground__",rm="__SpreadsheetHeaderMoveControllerShapeLine__",sm="rgba(0, 0, 0, 0.1)",lm="rgb(119, 119, 119)",am=4,pr=l.createInterceptorKey("headerMovePermissionCheck");M.HeaderMoveRenderController=class extends l.Disposable{constructor(e,t,i,r){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,"_scenePointerMoveSub");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 l.InterceptorManager({HEADER_MOVE_PERMISSION_CHECK:pr}));E(this,"_workbookSelections");this._context=e,this._sheetSkeletonManagerService=i,this._commandService=r,this._workbookSelections=t.getWorkbookSelections(this._context.unitId),this._init()}dispose(){var e,t,i,r,s,a,c,d;(e=this._moveHelperBackgroundShape)==null||e.dispose(),(t=this._moveHelperLineShape)==null||t.dispose(),(i=this._headerPointerMoveSubs)==null||i.unsubscribe(),(r=this._headerPointerLeaveSubs)==null||r.unsubscribe(),(s=this._headerPointerDownSubs)==null||s.unsubscribe(),this._headerPointerMoveSubs=null,this._headerPointerLeaveSubs=null,this._headerPointerDownSubs=null,(a=this._scenePointerMoveSub)==null||a.unsubscribe(),(c=this._scenePointerUpSub)==null||c.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null,(d=this._scrollTimer)==null||d.dispose()}_init(){this._initialRowOrColumn(l.RANGE_TYPE.ROW),this._initialRowOrColumn(l.RANGE_TYPE.COLUMN)}_initialRowOrColumn(e=l.RANGE_TYPE.ROW){const t=this._context.components.get(de.COLUMN),i=this._context.components.get(de.ROW),r=this._context.scene,s=e===l.RANGE_TYPE.ROW?i:t,a=u=>{var I,b;const h=(I=this._sheetSkeletonManagerService.getCurrent())==null?void 0:I.skeleton;if(h==null)return;const f=(b=this._workbookSelections.getCurrentLastSelection())==null?void 0:b.range;if(!f||!this.interceptor.fetchThroughInterceptors(pr)(!1,f))return;const g=this._workbookSelections.getCurrentSelections(),{row:p,column:v}=Xe(u.offsetX,u.offsetY,r,h);if(_t(g,e===l.RANGE_TYPE.ROW?p:v,e)===!1){r.resetCursor();return}r.setCursor(w.CURSOR_TYPE.GRAB)},c=()=>{var u,h;(u=this._moveHelperBackgroundShape)==null||u.hide(),(h=this._moveHelperLineShape)==null||h.hide(),r.resetCursor()},d=(u,h)=>{var U,W;if(h.isStopPropagation)return;const f=(U=this._sheetSkeletonManagerService.getCurrent())==null?void 0:U.skeleton;if(f==null)return;const S=(W=this._workbookSelections.getCurrentLastSelection())==null?void 0:W.range;if(!S||!this.interceptor.fetchThroughInterceptors(pr)(!1,S))return;const{offsetX:p,offsetY:v}=u,C=r.getRelativeToViewportCoord(w.Vector2.FromArray([p,v])),{x:I,y:b}=C;this._startOffsetX=I,this._startOffsetY=b;const{row:R,column:P}=Xe(u.offsetX,u.offsetY,r,f);let y;e===l.RANGE_TYPE.ROW?(this._changeFromRow=R,y=w.ScrollTimerType.Y):(this._changeFromColumn=P,y=w.ScrollTimerType.X);const O=this._workbookSelections.getCurrentSelections(),N=_t(O,e===l.RANGE_TYPE.ROW?R:P,e);if(N===!1)return;const D=r.getVpScrollXYInfoByPosToVp(w.Vector2.FromArray([this._startOffsetX,this._startOffsetY]));this._newBackgroundAndLine(),r.setCursor(w.CURSOR_TYPE.GRABBING),r.disableEvent();let k=!1,H;const V=()=>{if(k)return;H=w.ScrollTimer.create(r,y);const X=r.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);H.startScroll(I,b,X),this._scrollTimer=H,k=!0};this._scenePointerMoveSub=r.onPointerMove$.subscribeEvent(X=>{V();const{offsetX:K,offsetY:Y}=X,{x:j,y:z}=r.getRelativeToViewportCoord(w.Vector2.FromArray([K,Y]));this._rowColumnMoving(j,z,N,D,e),H.scrolling(j,z,()=>{this._rowColumnMoving(j,z,N,D,e)})}),this._scenePointerUpSub=r.onPointerUp$.subscribeEvent(()=>{var K,Y,j;this._disposeBackgroundAndLine(),r.resetCursor(),r.enableEvent(),this._clearObserverEvent(),(K=this._scrollTimer)==null||K.dispose();const X=this._workbookSelections.getCurrentSelections();if(e===l.RANGE_TYPE.ROW){if(this._changeFromRow!==this._changeToRow&&this._changeToRow!==-1){const F=(Y=((X==null?void 0:X.filter(Z=>Z.range.rangeType===l.RANGE_TYPE.ROW&&Z.range.startRow<=this._changeFromRow&&this._changeFromRow<=Z.range.endRow))||[])[0])==null?void 0:Y.range;F&&this._commandService.executeCommand(m.MoveRowsCommand.id,{fromRange:F,toRange:{...F,startRow:this._changeToRow,endRow:this._changeToRow+F.endRow-F.startRow}})}this._changeToRow=this._changeFromRow=-1}else{if(this._changeFromColumn!==this._changeToColumn&&this._changeToColumn!==-1){const F=(j=((X==null?void 0:X.filter(Z=>Z.range.rangeType===l.RANGE_TYPE.COLUMN&&Z.range.startColumn<=this._changeFromColumn&&this._changeFromColumn<=Z.range.endColumn))||[])[0])==null?void 0:j.range;F&&this._commandService.executeCommand(m.MoveColsCommand.id,{fromRange:F,toRange:{...F,startColumn:this._changeToColumn,endColumn:this._changeToColumn+F.endColumn-F.startColumn}})}this._changeToColumn=this._changeFromColumn=-1}})};this._headerPointerMoveSubs=new A.Subscription,this._headerPointerMoveSubs.add(s.onPointerMove$.subscribeEvent(a)),this._headerPointerLeaveSubs=new A.Subscription,this._headerPointerLeaveSubs.add(s==null?void 0:s.onPointerLeave$.subscribeEvent(c)),this._headerPointerDownSubs=new A.Subscription,this._headerPointerDownSubs.add(s==null?void 0:s.onPointerDown$.subscribeEvent(d))}_rowColumnMoving(e,t,i,r,s){var z,F,Z,x,B,G,J;const a=this._context.scene,c=(z=this._sheetSkeletonManagerService.getCurrent())==null?void 0:z.skeleton;if(c==null)return;const{rowHeaderWidth:d,columnHeaderHeight:u,rowTotalHeight:h,columnTotalWidth:f}=c,S=a.getViewportScrollXY(a.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX:g,scaleY:p}=a.getAncestorScale(),v=c.getCellPositionByOffset(e,t,g,p,S),{row:C,column:I}=v,b=c.getNoMergeCellPositionByIndex(C,I),{startX:R,startY:P,endX:y,endY:O}=b,N=this._sheetSkeletonManagerService.attachRangeWithCoord(i.range);if(N==null)return;const D=Math.max(g,g),{startX:k,endX:H,startY:V,endY:U,startRow:W,startColumn:X,endRow:K,endColumn:Y}=N;s===l.RANGE_TYPE.ROW?(F=this._moveHelperBackgroundShape)==null||F.transformByState({height:U-V,width:f+d,left:0,top:V+(t-this._startOffsetY)/D+S.y-r.y}):(Z=this._moveHelperBackgroundShape)==null||Z.transformByState({height:h+u,width:H-k,left:k+(e-this._startOffsetX)/D+S.x-r.x,top:0}),(x=this._moveHelperBackgroundShape)==null||x.show();const j=am/D;if(s===l.RANGE_TYPE.ROW){let ee=0;if(C<=W)ee=P-j/2,this._changeToRow=C;else if(C>K)ee=O-j/2,this._changeToRow=C+1;else return;(B=this._moveHelperLineShape)==null||B.transformByState({height:j,width:f,left:d,top:ee})}else{let ee=0;if(I<=X)ee=R-j/2,this._changeToColumn=I;else if(I>Y)ee=y-j/2,this._changeToColumn=I+1;else return;(G=this._moveHelperLineShape)==null||G.transformByState({height:h,width:j,left:ee,top:u})}(J=this._moveHelperLineShape)==null||J.show()}_clearObserverEvent(){var e,t;(e=this._scenePointerMoveSub)==null||e.unsubscribe(),(t=this._scenePointerUpSub)==null||t.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}_newBackgroundAndLine(){const e=this._context.scene;this._moveHelperBackgroundShape=new w.Rect(om,{fill:sm,evented:!1,zIndex:100}),this._moveHelperLineShape=new w.Rect(rm,{fill:lm,evented:!1,zIndex:100}),e.addObjects([this._moveHelperBackgroundShape,this._moveHelperLineShape],st)}_disposeBackgroundAndLine(){var e,t;(e=this._moveHelperBackgroundShape)==null||e.dispose(),(t=this._moveHelperLineShape)==null||t.dispose()}},M.HeaderMoveRenderController=im([gr(1,l.Inject(m.SheetsSelectionsService)),gr(2,l.Inject(M.SheetSkeletonManagerService)),gr(3,l.ICommandService)],M.HeaderMoveRenderController);var vr=(n=>(n[n.VERTICAL=0]="VERTICAL",n[n.HORIZONTAL=1]="HORIZONTAL",n))(vr||{});const cm="rgba(120, 120, 120, 0.01)",Cr="rgb(68, 71, 70)",Hn=12,dm=44,_r=4;class Sl extends w.Shape{constructor(e,t){super(e,t);E(this,"_size",Hn);E(this,"_color",Cr);E(this,"_mode",0);this.setShapeProps(t)}get size(){return this._size}get mode(){return this._mode}get color(){return this._color}_draw(e){let{width:t,height:i}=this,r=0,s=0;const a=this.getScene(),{scaleX:c,scaleY:d}=a.getAncestorScale(),u=Math.max(c,d),h=Hn/u,f=_r/u;this.mode===0?(t=f,r=h-f):(i=f,s=h-f),w.Rect.drawWith(e,{width:this.width,height:this.height,left:0,top:0,fill:cm}),w.Rect.drawWith(e,{width:t,height:i,fill:Cr,radius:f}),e.save(),e.transform(1,0,0,1,r,s),w.Rect.drawWith(e,{width:t,height:i,fill:Cr,radius:f}),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:Hn,height:this.size}):this.transformByState({width:this.size,height:Hn}),this}}var um=Object.defineProperty,hm=Object.getOwnPropertyDescriptor,mm=(n,o,e,t)=>{for(var i=t>1?void 0:t?hm(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&um(o,e,i),i},gl=(n,o)=>(e,t)=>o(e,t,n);const fm="__SpreadsheetHeaderResizeControllerShapeRow__",Sm="__SpreadsheetHeaderResizeControllerShapeColumn__",pl="__SpreadsheetHeaderResizeControllerShapeHelper__",vl="rgb(199, 199, 199)",gm=2,Ir=l.createInterceptorKey("headerResizePermissionCheck");M.HeaderResizeRenderController=class extends l.Disposable{constructor(e,t,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 l.InterceptorManager({HEADER_RESIZE_PERMISSION_CHECK:Ir}));this._context=e,this._sheetSkeletonManagerService=t,this._commandService=i,this._init()}dispose(){var e,t,i;(e=this._rowResizeRect)==null||e.dispose(),this._rowResizeRect=null,(t=this._columnResizeRect)==null||t.dispose(),this._columnResizeRect=null,(i=this._headerPointerSubs)==null||i.unsubscribe(),this._headerPointerSubs=null}_init(){const e=this._context.scene;this._rowResizeRect=new Sl(fm,{visible:!1,mode:vr.HORIZONTAL,zIndex:100}),this._columnResizeRect=new Sl(Sm,{visible:!1,mode:vr.VERTICAL,zIndex:100}),e.addObjects([this._rowResizeRect,this._columnResizeRect],st),this._initialHover(0),this._initialHover(1),this._initialHoverResize(0),this._initialHoverResize(1)}_initialHover(e=0){const t=this._context.components.get(de.COLUMN),i=this._context.components.get(de.ROW),r=this._context.scene,s=e===0?i:t,a=(d,u)=>{var h,f;(h=this._rowResizeRect)==null||h.hide(),(f=this._columnResizeRect)==null||f.hide()},c=(d,u)=>{var D;const h=(D=this._sheetSkeletonManagerService.getCurrent())==null?void 0:D.skeleton;if(h==null||this._rowResizeRect==null||this._columnResizeRect==null)return;const{rowHeaderWidth:f,columnHeaderHeight:S}=h,{startX:g,startY:p,endX:v,endY:C,row:I,column:b}=Xe(d.offsetX,d.offsetY,r,h),R=gn(d.offsetX,d.offsetY,r),{scaleX:P,scaleY:y}=r.getAncestorScale(),O=Math.max(P,y),N=Hn/O;if(e===0){let k=p-N/2;if(R.y<=p+N/2&&R.y>=p)this._currentRow=I-1;else if(R.y>=C-N/2&&R.y<=C)this._currentRow=I,k=C-N/2;else{this._rowResizeRect.hide();return}if(this._currentRow===-1)return;if(!this.interceptor.fetchThroughInterceptors(Ir)(null,{row:this._currentRow}))return!1;const V=Math.min(dm,f/3);this._rowResizeRect.transformByState({left:f/2-V/2,top:k}),this._rowResizeRect.setShapeProps({size:V}),this._rowResizeRect.show()}else{let k=g-N/2;if(R.x<=g+N/2&&R.x>=g)this._currentColumn=b-1;else if(R.x>=v-N/2&&R.x<=v)this._currentColumn=b,k=v-N/2;else{this._columnResizeRect.hide();return}if(this._currentColumn===-1)return;if(!this.interceptor.fetchThroughInterceptors(Ir)(null,{col:this._currentColumn}))return!1;const V=S*.7;this._columnResizeRect.transformByState({left:k,top:S/2-V/2}),this._columnResizeRect.setShapeProps({size:V}),this._columnResizeRect.show()}};this._headerPointerSubs=new A.Subscription,this._headerPointerSubs.add(s==null?void 0:s.onPointerMove$.subscribeEvent(c)),this._headerPointerSubs.add(s==null?void 0:s.onPointerLeave$.subscribeEvent(a))}_initialHoverResize(e=0){const t=this._context.scene,i=e===0?this._rowResizeRect:this._columnResizeRect;i!=null&&(this.disposeWithMe(l.toDisposable(i.onPointerEnter$.subscribeEvent(()=>{i!=null&&(i.show(),t.setCursor(e===0?w.CURSOR_TYPE.ROW_RESIZE:w.CURSOR_TYPE.COLUMN_RESIZE))}))),this.disposeWithMe(l.toDisposable(i.onPointerLeave$.subscribeEvent(()=>{i!=null&&(i.hide(),t.resetCursor())}))),this.disposeWithMe(l.toDisposable(i.onPointerDown$.subscribeEvent(r=>{var Y,j,z,F,Z,x,B;const s=(Y=this._sheetSkeletonManagerService.getCurrent())==null?void 0:Y.skeleton;if(s==null)return;const a=this._context.scene,c=a.getEngine(),d=(c==null?void 0:c.height)||0,u=(c==null?void 0:c.width)||0,h=a.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),f=(((z=(j=h==null?void 0:h.getScrollBar())==null?void 0:j.horizonBarRect)==null?void 0:z.height)||0)+10,S=(((Z=(F=h==null?void 0:h.getScrollBar())==null?void 0:F.verticalBarRect)==null?void 0:Z.width)||0)+10,g=gn(r.offsetX,r.offsetY,a),{scaleX:p,scaleY:v}=a.getAncestorScale();this._startOffsetX=g.x,this._startOffsetY=g.y;const C=s.getOffsetByPositionX(this._currentColumn),I=s.getOffsetByPositionY(this._currentRow),b=s.getNoMergeCellPositionByIndex(this._currentRow,this._currentColumn);let R=!1,P=0,y=0;const{columnTotalWidth:O,rowHeaderWidth:N,rowTotalHeight:D,columnHeaderHeight:k}=s,H=u>O+N?u:O+N,V=d>D+k?d:D+k,U=Math.max(p,v),W=_r/U;e===0?this._resizeHelperShape=new w.Rect(pl,{width:H,height:W,fill:vl,left:0,top:I-W/2}):this._resizeHelperShape=new w.Rect(pl,{width:W,height:V,fill:vl,left:C-W/2,top:0});const X=((x=this._columnResizeRect)==null?void 0:x.left)||0,K=((B=this._rowResizeRect)==null?void 0:B.top)||0;a.addObject(this._resizeHelperShape,st),a.disableEvent(),this._scenePointerMoveSub=a.onPointerMove$.subscribeEvent(G=>{var oc,rc,sc,lc,ac,cc;const J=a.getRelativeToViewportCoord(w.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),ee=a.getVpScrollXYInfoByPosToVp(J,h),ie=gn(G.offsetX,G.offsetY,a),{x:fe,y:Ie}=ie,{scaleX:He,scaleY:li}=a.getAncestorScale(),ss=Math.max(He,li),Nt=_r/ss;P=fe-this._startOffsetX-Nt/2,y=Ie-this._startOffsetY-Nt/2,Math.abs(e===0?y:P)>=gm&&(R=!0),e===0?(y>d-f+ee.y-b.startY&&(y=d-f+ee.y-b.startY),y<-(b.endY-b.startY)+2&&(y=-(b.endY-b.startY)+2),R&&((oc=this._resizeHelperShape)==null||oc.transformByState({top:I+y}),(rc=this._rowResizeRect)==null||rc.transformByState({top:K+y+Nt/2}),(sc=this._rowResizeRect)==null||sc.show(),a.setCursor(w.CURSOR_TYPE.ROW_RESIZE))):(P>u-S+ee.x-b.startX&&(P=u-S+ee.x-b.startX),P<-(b.endX-b.startX)+2&&(P=-(b.endX-b.startX)+2),R&&((lc=this._resizeHelperShape)==null||lc.transformByState({left:C+P}),(ac=this._columnResizeRect)==null||ac.transformByState({left:X+P+Nt/2}),(cc=this._columnResizeRect)==null||cc.show(),a.setCursor(w.CURSOR_TYPE.COLUMN_RESIZE)))}),this._scenePointerUpSub=a.onPointerUp$.subscribeEvent(G=>{var ee,ie,fe;const J=this._context.scene;this._clearObserverEvent(),(ee=this._resizeHelperShape)==null||ee.dispose(),this._resizeHelperShape=null,J.enableEvent(),R&&(J.resetCursor(),(ie=this._rowResizeRect)==null||ie.hide(),(fe=this._columnResizeRect)==null||fe.hide(),e===0?this._commandService.executeCommand(m.DeltaRowHeightCommand.id,{deltaY:y,anchorRow:this._currentRow}):this._commandService.executeCommand(m.DeltaColumnWidthCommand.id,{deltaX:P,anchorCol:this._currentColumn}))})}))),this.disposeWithMe(l.toDisposable(i.onDblclick$.subscribeEvent(()=>{var r;e===0&&(this._context.scene.resetCursor(),this._commandService.executeCommand(m.SetWorksheetRowIsAutoHeightCommand.id,{anchorRow:this._currentRow}),(r=this._rowResizeRect)==null||r.hide())}))))}_clearObserverEvent(){var e,t;(e=this._scenePointerMoveSub)==null||e.unsubscribe(),(t=this._scenePointerUpSub)==null||t.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}},M.HeaderResizeRenderController=mm([gl(1,l.Inject(M.SheetSkeletonManagerService)),gl(2,l.ICommandService)],M.HeaderResizeRenderController);var br=(n=>(n[n.ROW=0]="ROW",n[n.COLUMN=1]="COLUMN",n))(br||{});const Vn=12,pm=.4;class Cl extends w.Shape{constructor(e,t,i){super(e,t);E(this,"_size",Vn);E(this,"_iconRatio",pm);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(()=>i==null?void 0:i())}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:nt,fill:Hi}):w.Rect.drawWith(e,{width:this._size,height:2*this._size,stroke:nt,fill:Hi}));const t=this._size*.5*this._iconRatio,i=Math.PI/3,r=t*Math.cos(i),s=t*Math.sin(i);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+r},{x:this._size/2+s,y:this._size/2+r}]],fill:nt}),this._hasNext){const a=this._hasPrevious?3:1;w.RegularPolygon.drawWith(e,{pointsGroup:[[{x:this._size/2,y:this._size*a/2+s},{x:this._size/2-s,y:this._size*a/2-r},{x:this._size/2+s,y:this._size*a/2-r}]],fill:nt})}}_drawOnCol(e){this._hovered&&(!this._hasNext||!this._hasPrevious?w.Rect.drawWith(e,{width:this._size,height:this._size,stroke:nt,fill:Hi}):w.Rect.drawWith(e,{width:2*this._size,height:this._size,stroke:nt,fill:Hi}));const t=this._size*.5*this._iconRatio,i=Math.PI/3,r=t*Math.cos(i),s=t*Math.sin(i);if(this._hasPrevious&&w.RegularPolygon.drawWith(e,{pointsGroup:[[{x:-r+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:nt}),this._hasNext){const a=this._hasPrevious?3:1;w.RegularPolygon.drawWith(e,{pointsGroup:[[{x:r+this._size*a/2,y:this._size/2},{x:-s+this._size*a/2,y:this._size/2-s},{x:-s+this._size*a/2,y:this._size/2+s}]],fill:nt})}}}var vm=Object.defineProperty,Cm=Object.getOwnPropertyDescriptor,_m=(n,o,e,t)=>{for(var i=t>1?void 0:t?Cm(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&vm(o,e,i),i},_l=(n,o)=>(e,t)=>o(e,t,n);const Il="__SpreadsheetHeaderUnhideSHAPEControllerShape__",Im=[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 Rr=class extends l.RxDisposable{constructor(o,e,t){super();E(this,"_shapes",{cols:[],rows:[]});this._context=o,this._sheetSkeletonManagerService=e,this._commandService=t,this._init()}get _workbook(){return this._context.unit}dispose(){super.dispose(),this._clearShapes()}_init(){let o="";this._context.unit.activeSheet$.pipe(A.takeUntil(this.dispose$)).subscribe(e=>{if(this._clearShapes(),!e){o="";return}o=e.getSheetId(),this._update(this._workbook,e)}),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(!Im.includes(e.id)||!e.params||!e.params.unitId||e.params.subUnitId!==o)return;const t=this._workbook,i=t.getSheetBySheetId(e.params.subUnitId);i&&this._update(t,i)}))}_update(o,e){var f;const t=(f=this._sheetSkeletonManagerService.getWorksheetSkeleton(e.getSheetId()))==null?void 0:f.skeleton;if(!t)return;const i=e.getHiddenRows(),r=e.getHiddenCols(),s=this._getSheetObject(),{scene:a}=s,c=e.getRowCount(),d=i.map(S=>{const{startRow:g,endRow:p}=S,v=No(g,0,a,t),C=g!==0,I=p!==c-1;return new Cl(Il,{type:br.ROW,hovered:!1,hasPrevious:C,hasNext:I,top:v.startY-(C?Vn:0),left:v.startX-Vn},()=>this._commandService.executeCommand(m.SetSpecificRowsVisibleCommand.id,{unitId:o.getUnitId(),subUnitId:e.getSheetId(),ranges:[S]}))}),u=e.getColumnCount(),h=r.map(S=>{const{startColumn:g,endColumn:p}=S,v=No(0,g,a,t),C=g!==0,I=p!==u-1;return new Cl(Il,{type:br.COLUMN,hovered:!1,hasPrevious:C,hasNext:I,top:20-Vn,left:v.startX-(C?Vn:0)},()=>this._commandService.executeCommand(m.SetSpecificColsVisibleCommand.id,{unitId:o.getUnitId(),subUnitId:e.getSheetId(),ranges:[S]}))});a.addObjects(h,vs),a.addObjects(d,vs),this._clearShapes(),this._shapes={cols:h,rows:d}}_clearShapes(){this._shapes.cols.forEach(o=>o.dispose()),this._shapes.rows.forEach(o=>o.dispose()),this._shapes={cols:[],rows:[]}}_getSheetObject(){return je(this._workbook,this._context)}};Rr=_m([_l(1,l.Inject(M.SheetSkeletonManagerService)),_l(2,l.ICommandService)],Rr);var bm=Object.defineProperty,Rm=Object.getOwnPropertyDescriptor,Tm=(n,o,e,t)=>{for(var i=t>1?void 0:t?Rm(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&bm(o,e,i),i},Tr=(n,o)=>(e,t)=>o(e,t,n);let Li=class extends l.Disposable{constructor(n,o,e,t){super(),this._context=n,this._markSelectionService=o,this._commandService=e,this._sheetSkeletonManagerService=t,this._initListeners()}_initListeners(){this._addRemoveListener(),this._addRefreshListener()}_addRemoveListener(){const n=[Pe.id];this.disposeWithMe(this._commandService.onCommandExecuted(o=>{n.includes(o.id)?this._markSelectionService.removeAllShapes():this._markSelectionService.getShapeMap().forEach((t,i)=>{t.exits.includes(o.id)&&this._markSelectionService.removeShape(i)})}))}_addRefreshListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(n=>{n&&this._markSelectionService.refreshShapes()}))}};Li=Tm([Tr(1,l.Inject(Ct)),Tr(2,l.ICommandService),Tr(3,l.Inject(M.SheetSkeletonManagerService))],Li);function Em(n,o){if(n.length!==o.length)return!1;const e=n.sort((i,r)=>i.id.localeCompare(r.id)),t=o.sort((i,r)=>i.id.localeCompare(r.id));return e.every((i,r)=>{var s,a;return((s=i.subject)==null?void 0:s.userID)===((a=t[r].subject)==null?void 0:a.userID)&&i.role===t[r].role})}function bl(n,o){return o.some(e=>Pm(n,e))}function Pm(n,o){const{startRow:e,startColumn:t,endColumn:i,endRow:r}=o,s=n.getMatrixWithMergedCells(e,t,r,i);let a=!1;return s.forValue((c,d,u)=>{if(u&&(c!==e||d!==t)&&n.cellHasValue(u))return a=!0,!1}),a}function Rl(n,o,e,t){const i=[],r=[],s=e.getSheetId();return t.forEach(a=>{const c=wm(e,a),d={unitId:o,subUnitId:s,cellValue:c.getData()},u=m.SetRangeValuesUndoMutationFactory(n,d);i.push({id:m.SetRangeValuesMutation.id,params:u}),r.push({id:m.SetRangeValuesMutation.id,params:d})}),{undos:i,redos:r}}function wm(n,o){const{startRow:e,startColumn:t,endColumn:i,endRow:r}=o,s=n.getMatrixWithMergedCells(e,t,r,i,!0),a=new l.ObjectMatrix;let c=null;return s.forValue((d,u,h)=>{h&&(!c&&h.v!==void 0&&(c=h),a.setValue(d,u,null))}),a.setValue(e,t,c),a}function ym(n,o,e,t){const i=e.getActiveViewportByCoord(w.Vector2.FromArray([n,o]));if(!i)return;const{scaleX:r,scaleY:s}=e.getAncestorScale(),a={x:i.viewportScrollX,y:i.viewportScrollY},c=t.getCellPositionByOffset(n,o,r,s,a),d=t.mergeData.find(h=>{const{startColumn:f,startRow:S,endColumn:g,endRow:p}=h;return c.row>=S&&c.column>=f&&c.row<=p&&c.column<=g});return{actualRow:d?d.startRow:c.row,actualCol:d?d.startColumn:c.column,mergeCell:d,row:c.row,col:c.column}}function Mm(n,o,e,t){const i=t.getFreeze();if(!i||i.startRow<=0&&i.startColumn<=0||n>i.startRow&&o>i.startColumn)return e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(n<=i.startRow&&o<=i.startColumn)return e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(n<=i.startRow&&o>i.startColumn)return e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(n>i.startRow&&o<=i.startColumn)return e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)}function Om(n,o,e,t){const i=Tl(n.left,n.top,o,e,t),r=Tl(n.right,n.bottom,o,e,t);return{left:i.x,top:i.y,right:r.x,bottom:r.y}}function Tl(n,o,e,t,i){const{scaleX:r,scaleY:s}=e.getAncestorScale(),a=e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!a)return{x:n,y:o};const c=i.getFreeze(),{startColumn:d,startRow:u,xSplit:h,ySplit:f}=c,S=t.getNoMergeCellPositionByIndexWithNoHeader(u-f,d-h),g=t.getNoMergeCellPositionByIndexWithNoHeader(u,d),{rowHeaderWidth:p,columnHeaderHeight:v}=t,C=g.startX-S.startX,I=g.startY-S.startY,{top:b,left:R,viewportScrollX:P,viewportScrollY:y}=a;let O;n>R?O=(n-P)*r:O=(C+p-(R-n))*r;let N;return o>b?N=(o-y)*s:N=(I+v-(b-o))*r,{x:O,y:N}}function El(n,o,e,t,i,r){const{scene:s}=n,a=o.getUnitId(),{skeleton:c,sheetId:d}=t,u=ym(i,r,s,c);if(!u)return null;const{row:h,col:f,mergeCell:S,actualCol:g,actualRow:p}=u,v={unitId:a,subUnitId:d,workbook:o,worksheet:e,row:p,col:g};let C;S?C=S:C={startRow:h,endRow:h,startColumn:f,endColumn:f};const I=s.getActiveViewportByCoord(w.Vector2.FromArray([i,r]));if(!I)return;const{scaleX:b,scaleY:R}=s.getAncestorScale(),P={x:I.viewportScrollX,y:I.viewportScrollY};return{position:{startX:(c.getOffsetByPositionX(C.startColumn-1)-P.x)*b,endX:(c.getOffsetByPositionX(C.endColumn)-P.x)*b,startY:(c.getOffsetByPositionY(C.startRow-1)-P.y)*R,endY:(c.getOffsetByPositionY(C.endRow)-P.y)*R},location:v}}const Le={type:l.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge",handler:async(n,o)=>{const e=n.get(l.ICommandService),t=n.get(l.IUndoRedoService),i=n.get(l.IUniverInstanceService),r=n.get(T.IConfirmService),s=n.get(l.LocaleService),a=o.unitId,c=o.subUnitId,d=o.selections,u=m.getAddMergeMutationRangeByType(d,o.value),h=i.getUniverSheetInstance(a).getSheetBySheetId(c),f=[],S=[],g=bl(h,u);if(g&&!await r.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:a,subUnitId:c,ranges:u},v={unitId:a,subUnitId:c,ranges:u},C=m.RemoveMergeUndoMutationFactory(n,p),I=m.AddMergeUndoMutationFactory(n,v);if(C.ranges.length>0&&f.push({id:m.RemoveWorksheetMergeMutation.id,params:C}),f.push({id:m.AddWorksheetMergeMutation.id,params:v}),S.push({id:m.RemoveWorksheetMergeMutation.id,params:I}),C.ranges.length>0&&S.push({id:m.AddWorksheetMergeMutation.id,params:C}),g){const y=Rl(n,a,h,u);f.unshift(...y.redos),S.push(...y.undos)}const b=m.AddMergeRedoSelectionsOperationFactory(n,o,u);b&&f.push(b);const R=m.AddMergeUndoSelectionsOperationFactory(n,o);return R&&S.push(R),l.sequenceExecute(f,e).result?(t.pushUndoRedo({unitID:a,undoMutations:S,redoMutations:f}),!0):!1}},Wi={type:l.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-all",handler:async n=>{var u;const o=n.get(l.ICommandService),t=(u=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:u.map(h=>h.range),i=Mo(ai.MergeAll,t);if(!(i!=null&&i.length))return!1;const s=n.get(l.IUniverInstanceService).getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const c=s.getUnitId(),d=a.getSheetId();return o.executeCommand(Le.id,{selections:i,unitId:c,subUnitId:d})}},xi={type:l.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-vertical",handler:async n=>{var u;const o=n.get(l.ICommandService),t=(u=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:u.map(h=>h.range),i=Mo(ai.MergeVertical,t);if(!(i!=null&&i.length))return!1;const s=n.get(l.IUniverInstanceService).getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const c=s.getUnitId(),d=a.getSheetId();return o.executeCommand(Le.id,{value:l.Dimension.COLUMNS,selections:i,unitId:c,subUnitId:d})}},Ui={type:l.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-horizontal",handler:async n=>{var u;const o=n.get(l.ICommandService),t=(u=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:u.map(h=>h.range),i=Mo(ai.MergeHorizontal,t);if(!(i!=null&&i.length))return!1;const s=n.get(l.IUniverInstanceService).getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const c=s.getUnitId(),d=a.getSheetId();return o.executeCommand(Le.id,{value:l.Dimension.ROWS,selections:i,unitId:c,subUnitId:d})}},Ln={type:l.CommandType.COMMAND,id:"sheet.command.delete-range-move-left-confirm",handler:async n=>{const o=n.get(T.IConfirmService),e=n.get(l.ICommandService),t=n.get(l.LocaleService),i=n.get(m.SheetsSelectionsService),r=n.get(l.IUniverInstanceService),s=i.getCurrentSelections();if(!s)return!1;const a=m.getSheetCommandTarget(r);if(!a)return!1;const{worksheet:c}=a;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 g=l.Rectangle.getIntersects(S,d);return g?u(S)>u(g):!1})||await o.confirm({id:Ln.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}},nn={type:l.CommandType.COMMAND,id:"sheet.command.delete-range-move-up-confirm",handler:async n=>{const o=n.get(T.IConfirmService),e=n.get(l.ICommandService),t=n.get(l.LocaleService),i=n.get(m.SheetsSelectionsService),r=n.get(l.IUniverInstanceService),s=i.getCurrentSelections();if(!s)return!1;const a=m.getSheetCommandTarget(r);if(!a)return!1;const{worksheet:c}=a;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 o.confirm({id:nn.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 g=l.Rectangle.getIntersects(S,d);return g?u(S)>u(g):!1})||await o.confirm({id:nn.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}},on={type:l.CommandType.COMMAND,id:"sheet.command.insert-range-move-down-confirm",handler:async n=>{const o=n.get(T.IConfirmService),e=n.get(l.ICommandService),t=n.get(l.LocaleService),i=n.get(m.SheetsSelectionsService),r=n.get(l.IUniverInstanceService),s=i.getCurrentSelections();if(!s)return!1;const a=m.getSheetCommandTarget(r);if(!a)return!1;const{worksheet:c}=a;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 o.confirm({id:on.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 g=l.Rectangle.getIntersects(S,d);return g?u(S)>u(g):!1})||await o.confirm({id:on.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}},Wn={type:l.CommandType.COMMAND,id:"sheet.command.insert-range-move-right-confirm",handler:async n=>{const o=n.get(T.IConfirmService),e=n.get(l.ICommandService),t=n.get(l.LocaleService),i=n.get(m.SheetsSelectionsService),r=n.get(l.IUniverInstanceService),s=i.getCurrentSelections();if(!s)return!1;const a=m.getSheetCommandTarget(r);if(!a)return!1;const{worksheet:c}=a;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 g=l.Rectangle.getIntersects(S,d);return g?u(S)>u(g):!1})||await o.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.InsertRangeMoveRightCommand.id):!0}},Bi={id:"sheet.command.refill",type:l.CommandType.COMMAND,handler:async(n,o)=>{const e=n.get(lt);return e.applyType=o.type,!0}},Fi={id:"sheet.command.remove-row-confirm",type:l.CommandType.COMMAND,handler:async(n,o)=>{var d;const e=n.get(m.SheetsSelectionsService);let t=o==null?void 0:o.range;if(t||(t=(d=e.getCurrentLastSelection())==null?void 0:d.range),!t)return!1;const i=n.get(l.ICommandService),r=n.get(l.IUniverInstanceService),s=m.getSheetCommandTarget(r);if(!s)return!1;const{worksheet:a}=s,c=a.getVisibleRows();if(ms(c,[t])){const u=n.get(T.IConfirmService),h=n.get(l.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 i.executeCommand(m.RemoveRowCommand.id,{range:t}),!0}},ji={id:"sheet.command.remove-col-confirm",type:l.CommandType.COMMAND,handler:async(n,o)=>{var d;const e=n.get(m.SheetsSelectionsService);let t=o==null?void 0:o.range;if(t||(t=(d=e.getCurrentLastSelection())==null?void 0:d.range),!t)return!1;const i=n.get(l.ICommandService),r=n.get(l.IUniverInstanceService),s=m.getSheetCommandTarget(r);if(!s)return!1;const{worksheet:a}=s,c=a.getVisibleCols();if(fs(c,[t])){const u=n.get(T.IConfirmService),h=n.get(l.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 i.executeCommand(m.RemoveColCommand.id,{range:t}),!0}},Xi={id:"sheet.command.remove-sheet-confirm",type:l.CommandType.COMMAND,handler:async(n,o)=>{const{subUnitId:e}=o,t=n.get(T.IConfirmService),i=n.get(l.ICommandService),r=n.get(l.LocaleService);return await t.confirm({id:"sheet.confirm.remove-sheet",title:{title:r.t("sheetConfig.deleteSheet")},children:{title:r.t("sheetConfig.deleteSheetContent")},cancelText:r.t("button.cancel"),confirmText:r.t("button.confirm")})?(await i.executeCommand(m.RemoveSheetCommand.id,{subUnitId:e}),!0):!1}},Rt=l.createIdentifier("univer.sheetbar-service");class Pl extends l.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 A.Subject,this.renameId$=this._renameId$.asObservable(),this._removeId$=new A.Subject,this.removeId$=this._removeId$.asObservable(),this._scroll$=new A.Subject,this.scroll$=this._scroll$.asObservable(),this._scrollX$=new A.Subject,this.scrollX$=this._scrollX$.asObservable(),this._addSheet$=new A.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,l.toDisposable(()=>{this._currentHandler=null})}}const zi={id:"ui-sheet.command.show-menu-list",type:l.CommandType.OPERATION,handler:async n=>(n.get(Rt).triggerSheetBarMenu(),!0)},Yi={id:"sheet.operation.set-activate-cell-edit",type:l.CommandType.OPERATION,handler:(n,o)=>(n.get(ze).setEditCell(o),!0)},Zi={id:"sheet.operation.rename-sheet",type:l.CommandType.OPERATION,handler:async(n,o)=>{const e=n.get(Rt);return o&&e.setRenameId(o.subUnitId),!0}};var Ne=function(){return Ne=Object.assign||function(n){for(var o,e=1,t=arguments.length;e<t;e++){o=arguments[e];for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(n[i]=o[i])}return n},Ne.apply(this,arguments)},Am=function(n,o){var e={};for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&o.indexOf(t)<0&&(e[t]=n[t]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,t=Object.getOwnPropertySymbols(n);i<t.length;i++)o.indexOf(t[i])<0&&Object.prototype.propertyIsEnumerable.call(n,t[i])&&(e[t[i]]=n[t[i]]);return e},ve=L.forwardRef(function(n,o){var e=n.icon,t=n.id,i=n.className,r=n.extend,s=Am(n,["icon","id","className","extend"]),a="univerjs-icon univerjs-icon-".concat(t," ").concat(i||"").trim(),c=L.useRef("_".concat(km()));return wl(e,"".concat(t),{defIds:e.defIds,idSuffix:c.current},Ne({ref:o,className:a},s),r)});function wl(n,o,e,t,i){return L.createElement(n.tag,Ne(Ne({key:o},Nm(n,e,i)),t),(Dm(n,e).children||[]).map(function(r,s){return wl(r,"".concat(o,"-").concat(n.tag,"-").concat(s),e,void 0,i)}))}function Nm(n,o,e){var t=Ne({},n.attrs);e!=null&&e.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=e.colorChannel1);var i=o.defIds;return!i||i.length===0||(n.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+o.idSuffix),Object.entries(t).forEach(function(r){var s=r[0],a=r[1];typeof a=="string"&&(t[s]=a.replace(/url\(#(.*)\)/,"url(#$1".concat(o.idSuffix,")")))})),t}function Dm(n,o){var e,t=o.defIds;return!t||t.length===0?n:n.tag==="defs"&&(!((e=n.children)===null||e===void 0)&&e.length)?Ne(Ne({},n),{children:n.children.map(function(i){return typeof i.attrs.id=="string"&&t&&t.indexOf(i.attrs.id)>-1?Ne(Ne({},i),{attrs:Ne(Ne({},i.attrs),{id:i.attrs.id+o.idSuffix})}):i})}):n}function km(){return Math.random().toString(36).substring(2,8)}ve.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"}}]},yl=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"autofill",ref:o,icon:Hm}))});yl.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"}}]},dt=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"check-mark-single",ref:o,icon:Vm}))});dt.displayName="CheckMarkSingle";var Lm={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"}}]},Ml=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"close-single",ref:o,icon:Lm}))});Ml.displayName="CloseSingle";var Wm={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"]},Ol=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"convert-single",ref:o,icon:Wm}))});Ol.displayName="ConvertSingle";var xm={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"}}]},Gi=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"delete-single",ref:o,icon:xm}))});Gi.displayName="DeleteSingle";var Um={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"}}]}]},Er=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"dropdown-single",ref:o,icon:Um}))});Er.displayName="DropdownSingle";var Bm={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"}}]},Pr=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"error-single",ref:o,icon:Bm}))});Pr.displayName="ErrorSingle";var Fm={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"}}]},Al=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"eyelash-single",ref:o,icon:Fm}))});Al.displayName="EyelashSingle";var jm={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"}}]},Nl=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"fx-single",ref:o,icon:jm}))});Nl.displayName="FxSingle";var Xm={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"}}]},wr=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"increase-single",ref:o,icon:Xm}))});wr.displayName="IncreaseSingle";var zm={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"}}]},yr=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"lock-single",ref:o,icon:zm}))});yr.displayName="LockSingle";var Ym={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"}}]},xn=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"more-down-single",ref:o,icon:Ym}))});xn.displayName="MoreDownSingle";var Zm={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"}}]},Mr=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"more-single",ref:o,icon:Zm}))});Mr.displayName="MoreSingle";var Gm={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"}}]}]},Dl=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"paint-bucket",ref:o,icon:Gm}))});Dl.displayName="PaintBucket";var Km={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"}}]},kl=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"protect-single",ref:o,icon:Km}))});kl.displayName="ProtectSingle";var qm={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"}}]},Or=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"warning-single",ref:o,icon:qm}))});Or.displayName="WarningSingle";var Qm={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"}}]},Ar=L.forwardRef(function(n,o){return L.createElement(ve,Object.assign({},n,{id:"write-single",ref:o,icon:Qm}))});Ar.displayName="WriteSingle";const Jm=()=>_.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"})]}),$m=()=>_.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"})]}),ef=()=>_.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"})]}),tf=()=>_.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"})]}),nf=()=>_.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"})}),of=()=>_.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"})]}),rf=()=>_.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"})]}),sf=()=>_.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"})]}),lf=()=>_.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"})}),Hl=()=>_.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 Vl(n){const{type:o=l.BorderStyleTypes.THIN}=n;switch(o){case l.BorderStyleTypes.DASH_DOT:return _.jsx(Jm,{});case l.BorderStyleTypes.DASH_DOT_DOT:return _.jsx($m,{});case l.BorderStyleTypes.DASHED:return _.jsx(ef,{});case l.BorderStyleTypes.HAIR:return _.jsx(tf,{});case l.BorderStyleTypes.MEDIUM:return _.jsx(nf,{});case l.BorderStyleTypes.MEDIUM_DASH_DOT:return _.jsx(of,{});case l.BorderStyleTypes.MEDIUM_DASH_DOT_DOT:return _.jsx(rf,{});case l.BorderStyleTypes.MEDIUM_DASHED:return _.jsx(sf,{});case l.BorderStyleTypes.THICK:return _.jsx(lf,{});case l.BorderStyleTypes.THIN:return _.jsx(Hl,{});default:return _.jsx(Hl,{})}}const We={uiPluginSheetsBorderPanel:"univer-ui-plugin-sheets-border-panel",uiPluginSheetsBorderPanelPosition:"univer-ui-plugin-sheets-border-panel-position",uiPluginSheetsBorderPanelPositionItem:"univer-ui-plugin-sheets-border-panel-position-item",uiPluginSheetsBorderPanelPositionItemActive:"univer-ui-plugin-sheets-border-panel-position-item-active",uiPluginSheetsBorderPanelStyles:"univer-ui-plugin-sheets-border-panel-styles",uiPluginSheetsBorderPanelBoard:"univer-ui-plugin-sheets-border-panel-board",uiPluginSheetsBorderPanelButton:"univer-ui-plugin-sheets-border-panel-button",uiPluginSheetsBorderPanelMoreIcon:"univer-ui-plugin-sheets-border-panel-more-icon"},Nr=`${en}_BORDER_PANEL_COMPONENT`,Ll=[{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"}],af=[{label:l.BorderStyleTypes.THIN,value:l.BorderStyleTypes.THIN},{label:l.BorderStyleTypes.HAIR,value:l.BorderStyleTypes.HAIR},{label:l.BorderStyleTypes.DOTTED,value:l.BorderStyleTypes.DOTTED},{label:l.BorderStyleTypes.DASHED,value:l.BorderStyleTypes.DASHED},{label:l.BorderStyleTypes.DASH_DOT,value:l.BorderStyleTypes.DASH_DOT},{label:l.BorderStyleTypes.DASH_DOT_DOT,value:l.BorderStyleTypes.DASH_DOT_DOT},{label:l.BorderStyleTypes.MEDIUM,value:l.BorderStyleTypes.MEDIUM},{label:l.BorderStyleTypes.MEDIUM_DASHED,value:l.BorderStyleTypes.MEDIUM_DASHED},{label:l.BorderStyleTypes.MEDIUM_DASH_DOT,value:l.BorderStyleTypes.MEDIUM_DASH_DOT},{label:l.BorderStyleTypes.MEDIUM_DASH_DOT_DOT,value:l.BorderStyleTypes.MEDIUM_DASH_DOT_DOT},{label:l.BorderStyleTypes.THICK,value:l.BorderStyleTypes.THICK}];function Wl(n){var c;const o=l.useDependency(T.ComponentManager),e=l.useDependency(m.BorderStyleManagerService),{onChange:t,value:i}=n;function r(d,u){t==null||t({...i,[u]:d})}function s(d){const u=o.get(d);return u&&_.jsx(u,{extend:{colorChannel1:"rgb(var(--primary-color))"}})}function a(d){d.stopPropagation()}return _.jsxs("section",{className:We.uiPluginSheetsBorderPanel,children:[_.jsx("div",{className:We.uiPluginSheetsBorderPanelPosition,children:Ll.map(d=>_.jsx("div",{className:e.getBorderInfo().type===d.value?`${We.uiPluginSheetsBorderPanelPositionItemActive} ${We.uiPluginSheetsBorderPanelPositionItem}`:We.uiPluginSheetsBorderPanelPositionItem,onClick:u=>{u.stopPropagation(),r(d.value,"type")},children:s(d.icon)},d.value))}),_.jsxs("div",{className:We.uiPluginSheetsBorderPanelStyles,children:[_.jsx("div",{children:_.jsx($.Dropdown,{align:{offset:[0,18]},overlay:_.jsx("section",{className:We.uiPluginSheetsBorderPanelBoard,onClick:a,children:_.jsx($.ColorPicker,{onChange:d=>r(d,"color")})}),children:_.jsxs("a",{className:We.uiPluginSheetsBorderPanelButton,onClick:a,children:[_.jsx(Dl,{extend:{colorChannel1:(c=i.color)!=null?c:"rgb(var(--primary-color))"}}),_.jsx("span",{className:We.uiPluginSheetsBorderPanelMoreIcon,children:_.jsx(xn,{})})]})})}),_.jsx("div",{children:_.jsx($.Dropdown,{align:{offset:[0,18]},overlay:_.jsx("section",{onClick:a,children:_.jsx($.Menu,{children:af.map(d=>_.jsx($.MenuItem,{eventKey:d.value.toString(),onClick:()=>r(d.value,"style"),children:_.jsx(Vl,{type:d.value})},d.value))})}),children:_.jsxs("a",{className:We.uiPluginSheetsBorderPanelButton,onClick:a,children:[_.jsx(Vl,{type:l.BorderStyleTypes.THIN}),_.jsx("span",{className:We.uiPluginSheetsBorderPanelMoreIcon,children:_.jsx(xn,{})})]})})})]})]})}const cf={countBar:"univer-count-bar"},df=[50,80,100,130,150,170,200,400];function uf(){const n=l.useDependency(l.ICommandService),o=l.useDependency(l.IUniverInstanceService),e=It(),t=L.useCallback(()=>{if(!e)return 100;const a=e.getActiveSheet(),c=a&&a.getZoomRatio()*100||100;return Math.round(c)},[e]),[i,r]=L.useState(()=>t());L.useEffect(()=>(r(t()),n.onCommandExecuted(c=>{if(c.id===Ye.id||c.id===m.SetWorksheetActiveOperation.id){const d=t();r(d)}}).dispose),[n,t]);function s(a){r(a);const c=o.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),d=c==null?void 0:c.getActiveSheet();if(d==null)return;const u=a/100;n.executeCommand(Xt.id,{unitId:c.getUnitId(),subUnitId:d.getSheetId(),zoomRatio:u})}return _.jsx($.Slider,{min:Ao[0],value:i,shortcuts:df,onChange:s})}function hf(n){return _.jsx("section",{className:cf.countBar,children:_.jsx(uf,{})})}const xl={editorContainer:"univer-editor-container",editorInput:"univer-editor-input"},Ki=-1e3,Ul={width:0,height:0,top:Ki,left:Ki},mf=()=>{const[n,o]=L.useState({...Ul}),e=l.useDependency(Ni),t=l.useDependency(T.IEditorService),i=l.useDependency(l.IContextService),r=T.useObservable(()=>i.subscribeContextValue$(T.DISABLE_AUTO_FOCUS_KEY),!1,void 0,[i,T.DISABLE_AUTO_FOCUS_KEY]),s={id:l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,body:{dataStream:`${l.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[],paragraphs:[{startIndex:0}]},documentStyle:{documentFlavor:l.DocumentFlavor.MODERN}};return L.useEffect(()=>{e.state$.subscribe(a=>{if(a==null)return;const{startX:c=Ki,startY:d=Ki,endX:u=0,endY:h=0,show:f=!1}=a;if(!f)o({...Ul});else{o({width:u-c-w.FIX_ONE_PIXEL_BLUR_OFFSET+2,height:h-d-w.FIX_ONE_PIXEL_BLUR_OFFSET+2,left:c+w.FIX_ONE_PIXEL_BLUR_OFFSET,top:d+w.FIX_ONE_PIXEL_BLUR_OFFSET});const S=t.getEditor(l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);if(S==null)return;const{left:g,top:p,width:v,height:C}=S.getBoundingClientRect();e.setRect({left:g,top:p,width:v,height:C})}})},[]),L.useEffect(()=>{r||e.setFocus(!0)},[r,n]),_.jsx("div",{className:xl.editorContainer,style:{left:n.left,top:n.top,width:n.width,height:n.height},children:_.jsx(T.TextEditor,{id:l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,className:xl.editorInput,snapshot:s,cancelDefaultResizeListener:!0,isSheetEditor:!0,isSingle:!1})})},ae={definedName:"univer-defined-name",definedNameDropDown:"univer-defined-name-drop-down",definedNameDropDownDisable:"univer-defined-name-drop-down-disable",definedNameOverlay:"univer-defined-name-overlay",definedNameOverlayContainer:"univer-defined-name-overlay-container",definedNameOverlayItem:"univer-defined-name-overlay-item",definedNameOverlayItemName:"univer-defined-name-overlay-item-name",definedNameOverlayItemNameForSheet:"univer-defined-name-overlay-item-name-for-sheet",definedNameOverlayItemFormula:"univer-defined-name-overlay-item-formula",definedNameOverlayManager:"univer-defined-name-overlay-manager",definedNameOverlayManagerTitle:"univer-defined-name-overlay-manager-title",definedNameOverlayManagerContent:"univer-defined-name-overlay-manager-content",definedNameContainer:"univer-defined-name-container",definedNameContainerScroll:"univer-defined-name-container-scroll",definedNameContainerAddButton:"univer-defined-name-container-addButton",definedNameContainerAddButtonText:"univer-defined-name-container-addButton-text",definedNameContainerItem:"univer-defined-name-container-item",definedNameContainerItemName:"univer-defined-name-container-item-name",definedNameContainerItemNameForSheet:"univer-defined-name-container-item-name-for-sheet",definedNameContainerItemFormulaOrRefString:"univer-defined-name-container-item-formula-or-refString",definedNameContainerItemUpdate:"univer-defined-name-container-item-update",definedNameContainerItemDelete:"univer-defined-name-container-item-delete",definedNameContainerItemShow:"univer-defined-name-container-item-show",definedNameInput:"univer-defined-name-input",definedNameInputValidation:"univer-defined-name-input-validation",definedNameInputDisable:"univer-defined-name-input-disable"},Dr="DefinedNameContainer",kr="AllDefaultWorkbook",qi={id:"sidebar.operation.defined-name",type:l.CommandType.COMMAND,handler:async(n,o)=>{const e=n.get(T.ISidebarService),t=n.get(T.IEditorService),i=n.get(l.LocaleService),r=n.get(l.IUniverInstanceService),s=m.getSheetCommandTarget(r);if(!s)return!1;const{unitId:a}=s;switch(o.value){case"open":t.setOperationSheetUnitId(a),e.open({header:{title:i.t("definedName.featureTitle")},children:{label:Dr},onClose:()=>{t.closeRangePrompt()},width:333});break;case"close":default:e.close();break}return!0}};function ff(n){const o=l.useDependency(l.ICommandService),e=l.useDependency(l.LocaleService),t=l.useDependency(q.IDefinedNamesService),s=l.useDependency(l.IUniverInstanceService).getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getUnitId(),a=()=>{const f=t.getDefinedNameMap(s);return f?Array.from(Object.values(f)):[]},[c,d]=L.useState(a());L.useEffect(()=>{const f=t.update$.subscribe(()=>{d(a())});return()=>{f.unsubscribe()}},[]);const u=()=>{o.executeCommand(qi.id,{value:"open"})},h=f=>{t.focusRange(s,f.id)};return _.jsxs("div",{className:ae.definedNameOverlay,children:[_.jsx("div",{className:ae.definedNameOverlayContainer,children:c.map((f,S)=>_.jsxs("div",{className:ae.definedNameOverlayItem,onClick:()=>{h(f)},children:[_.jsx("div",{className:ae.definedNameOverlayItemName,title:f.name,children:f.name}),_.jsx("div",{className:ae.definedNameOverlayItemFormula,title:f.formulaOrRefString,children:f.formulaOrRefString})]},S))}),_.jsxs("div",{className:ae.definedNameOverlayManager,onClick:u,children:[_.jsx("div",{className:ae.definedNameOverlayManagerTitle,children:e.t("definedName.managerTitle")}),_.jsx("div",{className:ae.definedNameOverlayManagerContent,children:e.t("definedName.managerDescription")})]})]})}function Sf({disable:n}){const[o,e]=L.useState(""),t=l.useDependency(q.IDefinedNamesService);return L.useEffect(()=>{const i=t.currentRange$.subscribe(()=>{e(t.getCurrentRangeForString())});return()=>{i.unsubscribe()}},[]),_.jsxs("div",{className:ae.definedName,children:[_.jsx($.Input,{className:he({[ae.defineNameInputDisable]:n}),value:o,type:"text",size:"small",affixWrapperStyle:{border:"none",paddingLeft:"6px",paddingRight:"6px",height:"100%"}}),_.jsx($.Dropdown,{overlay:_.jsx(ff,{}),children:_.jsx("div",{className:he(ae.definedNameDropDown,{[ae.definedNameDropDownDisable]:n}),children:_.jsx(xn,{})})})]})}const ge={formulaBox:"univer-formula-box",nameRanges:"univer-name-ranges",formulaBar:"univer-formula-bar",formulaIcon:"univer-formula-icon",formulaIconDisable:"univer-formula-icon-disable",formulaIconWrapper:"univer-formula-icon-wrapper",iconContainer:"univer-icon-container",iconContainerSuccess:"univer-icon-container-success",formulaActive:"univer-formula-active",iconContainerError:"univer-icon-container-error",iconContainerFx:"univer-icon-container-fx",formulaInput:"univer-formula-input",formulaContent:"univer-formula-content",arrowContainer:"univer-arrow-container",arrowContainerDisable:"univer-arrow-container-disable"};function gf(){const[n,o]=L.useState(ge.formulaGrey),[e,t]=L.useState(0),i=l.useDependency(Di),r=l.useDependency(ze),a=l.useDependency(l.ThemeService).getCurrentTheme().primaryColor,[c,d]=L.useState(!1),u=l.useDependency(l.IUniverInstanceService),h=l.useDependency(m.SheetsSelectionsService),f=l.useDependency(m.WorksheetProtectionRuleModel),S=l.useDependency(m.RangeProtectionRuleModel),g=l.useDependency(l.IPermissionService),p=It();function v(O,N){return[new m.WorkbookEditablePermission(O).id,new m.WorksheetSetCellValuePermission(O,N).id,new m.WorksheetEditPermission(O,N).id]}L.useLayoutEffect(()=>{const O=u.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),N=A.merge(f.ruleChange$,S.ruleChange$,h.selectionMoveEnd$,O.activeSheet$).pipe(A.switchMap(()=>{var K,Y;const D=O.getUnitId(),k=O.getActiveSheet();if(!k)return A.EMPTY;const H=k.getSheetId();if(!((K=h.getCurrentLastSelection())==null?void 0:K.range))return A.EMPTY;const U=v(D,H),W=(Y=h.getCurrentSelections())==null?void 0:Y.map(j=>j.range);return S.getSubunitRuleList(D,H).filter(j=>j.ranges.some(z=>W==null?void 0:W.some(F=>l.Rectangle.intersects(z,F)))).forEach(j=>{U.push(new m.RangeProtectionPermissionEditPoint(D,H,j.permissionId).id)}),g.composePermission$(U)})).subscribe(D=>{D&&d(!D.every(k=>k.value))});return()=>{N.unsubscribe()}},[]);const C={id:l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,body:{dataStream:`${l.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[],paragraphs:[{startIndex:0}]},documentStyle:{pageSize:{width:Number.POSITIVE_INFINITY,height:Number.POSITIVE_INFINITY},documentFlavor:l.DocumentFlavor.MODERN,marginTop:5,marginBottom:5,marginRight:0,marginLeft:0,paragraphLineGapDefault:0,renderConfig:{horizontalAlign:l.HorizontalAlign.UNSPECIFIED,verticalAlign:l.VerticalAlign.TOP,centerAngle:0,vertexAngle:0,wrapStrategy:l.WrapStrategy.WRAP,isRenderStyle:l.BooleanNumber.FALSE}}};L.useEffect(()=>{const O=r.visible$.subscribe(N=>{o(N.visible?ge.formulaActive:ge.formulaGrey)});return()=>O.unsubscribe()},[r.visible$]);function I(O){if(O==null)return;const N=O.getBoundingClientRect();i.setPosition(N)}function b(){t(e===0?1:0),setTimeout(()=>{i.handleFoldBtnClick(e===1)},150)}function R(){var N;r.isVisible().visible&&r.changeVisible({visible:!1,eventType:w.DeviceInputEventType.Keyboard,keycode:T.KeyCode.ESC,unitId:(N=p==null?void 0:p.getUnitId())!=null?N:""})}function P(){var N;r.isVisible().visible&&r.changeVisible({visible:!1,eventType:w.DeviceInputEventType.PointerDown,unitId:(N=p==null?void 0:p.getUnitId())!=null?N:""})}function y(){i.handleFxBtnClick(!0)}return _.jsxs("div",{className:ge.formulaBox,style:{height:e===0?"28px":"82px",pointerEvents:c?"none":"auto"},children:[_.jsx("div",{className:ge.nameRanges,children:_.jsx(Sf,{disable:c})}),_.jsxs("div",{className:ge.formulaBar,children:[_.jsx("div",{className:he(ge.formulaIcon,{[ge.formulaIconDisable]:c}),children:_.jsxs("div",{className:ge.formulaIconWrapper,children:[_.jsx("span",{className:he(ge.iconContainer,ge.iconContainerError,n),onClick:R,children:_.jsx(Ml,{})}),_.jsx("span",{className:he(ge.iconContainer,ge.iconContainerSuccess,n),onClick:P,children:_.jsx(dt,{})}),_.jsx("span",{className:he(ge.iconContainer,ge.iconContainerFx),onClick:y,children:_.jsx(Nl,{})})]})}),_.jsxs("div",{className:ge.formulaInput,children:[_.jsx(T.TextEditor,{id:l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,isSheetEditor:!0,resizeCallBack:I,cancelDefaultResizeListener:!0,onContextMenu:O=>O.preventDefault(),className:ge.formulaContent,snapshot:C,isSingle:!1}),_.jsx("div",{className:he(ge.arrowContainer,{[ge.arrowContainerDisable]:c}),onClick:b,children:e===0?_.jsx(Er,{}):_.jsx(Er,{style:{transform:"rotateZ(180deg)"}})})]})]}),_.jsx(T.ProgressBar,{barColor:a})]})}const Tt={operateContainer:"univer-operate-container",autoFillPopupMenu:"univer-auto-fill-popup-menu",autoFillPopupMenuItem:"univer-auto-fill-popup-menu-item",autoFillPopupMenuItemIcon:"univer-auto-fill-popup-menu-item-icon",autoFillPopupMenuItemTitle:"univer-auto-fill-popup-menu-item-title",autoFillPopupMenuItemHide:"univer-auto-fill-popup-menu-item-hide",btnContainer:"univer-btn-container",btnContainerExpand:"univer-btn-container-expand"},pf=()=>{const[,n]=L.useState({});return L.useCallback(()=>n(o=>!o),[])},vf=()=>{const n=l.useDependency(l.ICommandService),o=l.useDependency(l.IUniverInstanceService),e=l.useDependency(w.IRenderManagerService),t=l.useDependency(lt),i=l.useDependency(l.LocaleService),[r,s]=L.useState([]),[a,c]=L.useState(!1),[d,u]=L.useState({row:-1,col:-1}),[h,f]=L.useState(se.SERIES),[S,g]=L.useState(!1),p=It(),{sheetSkeletonManagerService:v,selectionRenderService:C}=L.useMemo(()=>{if(p){const F=e.getRenderById(p.getUnitId());return{sheetSkeletonManagerService:F==null?void 0:F.with(M.SheetSkeletonManagerService),selectionRenderService:F==null?void 0:F.with(pe)}}return{sheetSkeletonManagerService:null,selectionRenderService:null}},[p,e]),I=()=>{g(!0)},b=()=>{g(!1)},R=pf();if(L.useEffect(()=>n.onCommandExecuted((Z,x)=>{Z.id===Qe.id&&R()}).dispose,[R,n]),L.useEffect(()=>{const F=v&&l.toDisposable(v.currentSkeleton$.subscribe(Z=>{Z&&R()}));return F==null?void 0:F.dispose},[v,R]),L.useEffect(()=>l.toDisposable(t.menu$.subscribe(Z=>{s(Z.map(x=>({...x,index:Z.indexOf(x)})))})).dispose,[t]),L.useEffect(()=>l.toDisposable(t.showMenu$.subscribe(Z=>{const{source:x,target:B}=t.autoFillLocation||{source:null,target:null};if(Z&&x&&B){const G=Math.max(x.rows[x.rows.length-1],B.rows[B.rows.length-1]),J=Math.max(x.cols[x.cols.length-1],B.cols[B.cols.length-1]);u({row:G,col:J})}else u({row:-1,col:-1})})).dispose,[t]),L.useEffect(()=>l.toDisposable(t.applyType$.subscribe(Z=>{f(Z)})).dispose,[t]),L.useEffect(()=>{function F(){c(!1)}return document.addEventListener("wheel",F),()=>{document.removeEventListener("wheel",F)}},[a]),d.col<0||d.row<0)return null;const P=je(o,e);if(!P||!C)return null;const{scene:y}=P,O=v==null?void 0:v.getCurrentSkeleton(),N=C.getViewPort(),D=y==null?void 0:y.scaleX,k=y==null?void 0:y.scaleY,H=y==null?void 0:y.getViewportScrollXY(N);if(!D||!y||!D||!k||!H)return null;const V=(O==null?void 0:O.getNoMergeCellPositionByIndex(d.row,d.col).endX)||0,U=(O==null?void 0:O.getNoMergeCellPositionByIndex(d.row,d.col).endY)||0,W=O==null?void 0:O.convertTransformToOffsetX(V,D,H),X=O==null?void 0:O.convertTransformToOffsetY(U,k,H);if(W==null||X==null)return null;const K=F=>{c(F)},Y=F=>{n.executeCommand(Bi.id,{type:F.value})},j=a||S,z=r.filter(F=>!F.disable);return _.jsx("div",{onMouseEnter:I,onMouseLeave:b,style:{left:`${W+2}px`,top:`${X+2}px`,position:"absolute"},children:_.jsx($.Dropdown,{placement:"bottomLeft",trigger:["click"],overlay:_.jsx("ul",{className:Tt.autoFillPopupMenu,children:z.map(F=>_.jsxs("li",{onClick:()=>Y(F),className:Tt.autoFillPopupMenuItem,children:[_.jsx("span",{className:Tt.autoFillPopupMenuItemIcon,children:F.value===h&&_.jsx(dt,{style:{color:"rgb(var(--green-700, #409f11))"}})}),_.jsx("span",{className:Tt.autoFillPopupMenuItemTitle,children:i.t(F.label)})]},F.index))}),visible:a,onVisibleChange:K,children:_.jsxs("div",{className:he(Tt.btnContainer,{[Tt.btnContainerExpand]:a}),children:[_.jsx(yl,{style:{color:"#35322B"},extend:{colorChannel1:"rgb(var(--green-700, #409f11))"}}),j&&_.jsx(xn,{style:{color:"#CCCCCC",fontSize:"8px",marginLeft:"8px"}})]})})})},Cf=()=>_.jsx("div",{className:Tt.operateContainer,children:_.jsx(vf,{})}),Qi={sheetBar:"univer-sheet-bar",sheetBarOptions:"univer-sheet-bar-options",sheetBarOptionsDivider:"univer-sheet-bar-options-divider"},_f={sheetBarBtn:"univer-sheet-bar-btn"};function Ji(n){const{children:o,className:e,style:t,disabled:i=!1,onClick:r,...s}=n,a=c=>{if(i){c.preventDefault();return}r&&r(c)};return _.jsx("button",{className:_f.sheetBarBtn,style:t,disabled:i,onClick:a,...s,children:o})}const ut={sheetBarMenu:"univer-sheet-bar-menu",sheetBarMenuItem:"univer-sheet-bar-menu-item",sheetBarMenuItemIcon:"univer-sheet-bar-menu-item-icon",sheetBarMenuItemHide:"univer-sheet-bar-menu-item-hide",sheetBarMenuItemSelect:"univer-sheet-bar-menu-item-select",sheetBarMenuItemLabel:"univer-sheet-bar-menu-item-label"};function If(n){const{style:o}=n,[e,t]=L.useState([]),[i,r]=L.useState(!1),s=l.useDependency(l.IUniverInstanceService),a=l.useDependency(l.ICommandService),c=l.useDependency(Rt),d=l.useDependency(m.WorksheetProtectionRuleModel),u=T.useObservable(()=>s.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),null,!1,[]),h=v=>{const{sheetId:C}=v;!C||!u||(v.hidden?a.executeCommand(m.SetWorksheetShowCommand.id,{unitId:u.getUnitId(),subUnitId:C,value:C}):v.selected||a.executeCommand(m.SetWorksheetActivateCommand.id,{unitId:u.getUnitId(),subUnitId:C}),r(!1))},f=L.useCallback(()=>{if(!u)return;const v=u.getSheets(),C=u.getActiveSheet(),I=v.map((b,R)=>({label:b.getName(),index:`${R}`,sheetId:b.getSheetId(),hidden:b.isSheetHidden()===l.BooleanNumber.TRUE,selected:C===b}));t(I)},[u,d]),S=L.useCallback(()=>a.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:f();break}}),[a,f]);function g(){r(!0)}const p=v=>{r(v)};return L.useEffect(()=>{f();const v=new l.DisposableCollection;return v.add(S()),v.add(c.registerSheetBarMenuHandler({handleSheetBarMenu:g})),()=>v.dispose()},[S,c,f,u]),_.jsx($.Dropdown,{placement:"topLeft",trigger:["click"],overlay:_.jsx("ul",{className:ut.sheetBarMenu,style:{...o},children:e.map(v=>_.jsxs("li",{onClick:()=>h(v),className:v.selected?`${ut.sheetBarMenuItem} ${ut.sheetBarMenuItemSelect}`:v.hidden?`${ut.sheetBarMenuItem} ${ut.sheetBarMenuItemHide}`:ut.sheetBarMenuItem,children:[_.jsx("span",{className:ut.sheetBarMenuItemIcon,children:v.selected?_.jsx(dt,{}):v.hidden?_.jsx(Al,{}):_.jsx(dt,{})}),_.jsx("div",{className:ut.sheetBarMenuItemLabel,children:v.label})]},v.index))}),visible:i,onVisibleChange:p,children:_.jsx("div",{children:_.jsx(Ji,{children:_.jsx(Ol,{})})})})}const De={slideTabBarContainer:"univer-slide-tab-bar-container",slideTabBar:"univer-slide-tab-bar",slideTabItem:"univer-slide-tab-item",slideTabActive:"univer-slide-tab-active",slideTabDiv:"univer-slide-tab-div",slideTabDivEdit:"univer-slide-tab-div-edit",slideTabItemDropdown:"univer-slide-tab-item-dropdown"};function bf(n){const{sheetId:o,label:e,color:t,selected:i}=n,[r,s]=L.useState(i),a=l.useDependency(l.ThemeService);L.useEffect(()=>{s(i)},[i]);const c=d=>{const u=a.getCurrentTheme(),h=u.textColor,f=u.colorWhite;return new l.ColorKit(d).isDark()?f:h};return _.jsx("div",{"data-id":o,className:r?`${De.slideTabActive} ${De.slideTabItem}`:De.slideTabItem,style:{backgroundColor:!r&&t?t:"",color:!r&&t?c(t):"",boxShadow:r&&t?`0px 0px 8px rgba(0, 0, 0, 0.08), inset 0px -2px 0px 0px ${t}`:""},children:_.jsx("div",{className:De.slideTabDiv,children:e})},o)}const Rf={easeOutStrong(n,o,e,t){return-e*((n=n/t-1)*n*n*n-1)+o},backOut(n,o,e,t,i){return typeof i>"u"&&(i=.7),e*((n=n/t-1)*n*((i+1)*n+i)+1)+o}},Tf={loop:!1,begin:0,end:0,duration:300,delay:0,type:"easeOutStrong",receive(n){},success(n){},cancel(n){},complete(n){}};class Ef{constructor(o){E(this,"_config");E(this,"_status",0);E(this,"_start",0);E(this,"_handle",0);E(this,"_delayHandle",null);this._config={...Tf,...o},this._config.loop&&(this._config.complete=()=>{},this._config.success=()=>{this.request()})}static success(...o){let e=0;return new Promise(t=>{for(let i=0;i<o.length;i++){const r=o[i],s=r._config,a=s.success;s.loop||(s.success=d=>{e++,a&&a.call(r,d),e===o.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 o=Date.now()-this._start;o=o>=this._config.duration?this._config.duration:o;const t=Rf[this._config.type](o,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(o===this._config.duration){this._config.success(t),this._config.complete(t);return}this._handle=requestAnimationFrame(()=>{this._fakeHandle()})}}class Et{constructor(o,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=o,this._animate=null,this._translateX=0,this._editMode=!1,this._slideTabBar=e,this._placeholder=null,this._scrollbar=e.getScrollbar(),this.update()}static midline(o){return o.getBoundingRect().x+o.getBoundingRect().width/2}static leftLine(o){return o.getBoundingRect().x}static rightLine(o){return o.getBoundingRect().x+o.getBoundingRect().width}static make(o,e){const t=[];return o.forEach(i=>t.push(new Et(i,e))),t}getSlideTabItem(){return this._slideTabItem}getEditor(){return this._slideTabItem.querySelector("span")}focus(){var o;(o=this.getEditor())==null||o.focus()}selectAll(){const o=this.getEditor();o&&rn.keepSelectAll(o)}isEditMode(){return this._editMode}classList(){return this._slideTabItem.classList}translateX(o){return this._translateX=o,this._slideTabItem.style.transform=`translateX(${o}px)`,this.getTranslateXDirection()}setEditor(o){if(!this._slideTabBar.getConfig().onNameChangeCheck())return;let e=!0;if(this._editMode===!1){const t=this._slideTabItem.querySelector("span"),i=d=>{if(!this.nameCheck()){if(this._editMode=!1,t&&(t.removeAttribute("contentEditable"),t.removeEventListener("focusout",i),t.removeEventListener("compositionstart",s),t.removeEventListener("compositionend",a),t.removeEventListener("input",c),t.removeEventListener("keydown",r),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)}o&&o(d)}};let r=d=>{t&&(d.stopPropagation(),d.key==="Enter"&&t.blur())};const s=d=>{e=!1},a=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),rn.keepLastIndex(t))}},0)};t&&(t.setAttribute("contentEditable","true"),t.addEventListener("focusout",i),t.addEventListener("compositionstart",s),t.addEventListener("compositionend",a),t.addEventListener("input",c),t.addEventListener("keydown",r),t.classList.add(this._slideTabBar.getConfig().slideTabBarSpanEditClassName),this._editMode=!0,rn.keepSelectAll(t))}}nameCheck(){const o=this._slideTabItem.querySelector("span");if(!o)return!1;const e=o.innerText;return this._slideTabBar.getConfig().onNameCheckAlert(e)}animate(){return{translateX:o=>{this._translateX!==o&&(this._animate&&(this._animate.cancel(),this._animate=null),this._animate=new Ef({begin:this._translateX,end:o,receive:e=>{this._slideTabItem.style.transform=`translateX(${e}px)`}}),this._translateX=o,this._animate.request())},cancel:()=>{this._animate&&(this._animate.cancel(),this._animate=null)}}}after(o){this._slideTabItem.after(o._slideTabItem||o)}update(){this._midline=Et.midline(this)}disableFixed(){if(this._placeholder){const o=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),o.removeChild(this._placeholder),this._placeholder=null}}enableFixed(){const o=document.createElement("div"),e=this.getBoundingRect(),t=getComputedStyle(this._slideTabItem),i=this._slideTabItem.querySelector("span");if(this._placeholder=o,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,i){const r=getComputedStyle(i).padding;this._slideTabItem.style.padding=r}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(o),document.body.appendChild(this._slideTabItem)}addEventListener(o,e,t){this._slideTabItem.addEventListener(o,e,t)}removeEventListener(o,e,t){this._slideTabItem.removeEventListener(o,e,t)}getScrollbar(){return this._scrollbar}getMidLine(){return this._midline}getBoundingRect(){const o=this._slideTabItem.getBoundingClientRect();return o.x+=this._scrollbar.getScrollX(),o}getWidth(){return this.getBoundingRect().width}getTranslateXDirection(){const o=Et.midline(this);return o>this._midline?1:o<this._midline?-1:0}equals(o){return o&&o._slideTabItem===this._slideTabItem}getId(){return this._slideTabItem.dataset.id||""}}class Pf{constructor(o){E(this,"_slideTabBar");E(this,"_scrollX");const e=o.primeval();this._scrollX=e.scrollLeft,this._slideTabBar=o}scrollX(o){const e=this._slideTabBar.primeval();e.scrollLeft=o,this._scrollX=e.scrollLeft}scrollRight(){const o=this._slideTabBar.primeval();o.scrollLeft=o.scrollWidth,this._scrollX=o.scrollLeft}getScrollX(){return this._scrollX}}const hn=class hn{constructor(o){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(o.slideTabBarContainer==null)throw new Error("not found slide-tab-bar root element");const e=o.slideTabBarContainer.querySelector(`.${(s=o.slideTabBarClassName)!=null?s:"slide-tab-bar"}`);if(e==null)throw new Error("not found slide-tab-bar");this._slideTabBar=e,this._slideScrollbar=new Pf(this),this._config=o,this._initConfig();let t=0,i=0,r=0;this._downAction=a=>{var y,O,N,D,k,H;if((y=this._activeTabItem)!=null&&y.isEditMode())return;this._longPressTimer&&(clearTimeout(this._longPressTimer),this._longPressTimer=null);const c=(N=(O=a.target)==null?void 0:O.closest(`.${o.slideTabBarItemClassName}`))==null?void 0:N.getAttribute("data-id"),d=this._slideTabItems.findIndex(V=>V.getId()===c);if(c==null||d===-1)return;if(this._activeTabItemIndex!==d){(D=this._activeTabItem)==null||D.removeEventListener("pointermove",this._moveAction),(k=this._activeTabItem)==null||k.removeEventListener("pointerup",this._upAction),this.removeListener(),this._config.onChangeTab(a,c);return}if(this._compareIndex=d,this._downActionX=a.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(a.pointerId),(H=this._activeTabItem)==null||H.addEventListener("pointerup",this._upAction);const{x:h,width:f}=this._activeTabItem.getBoundingRect(),{x:S,width:g}=this.getBoundingRect(),p=this._slideScrollbar.getScrollX();if(this._leftBoundingLine=this._downActionX-(h-p),this._rightBoundingLine=h-p+f-this._downActionX,this._leftMoveX=h-S-p,this._rightMoveX=S+g-(h+f)+p,a.button===2||this._hasEditItem())return;const{pageX:v,pageY:C}=a,I=Date.now(),b=I-r<=hn.DoubleClickDelay,R=Math.abs(v-t)<10,P=Math.abs(C-i)<10;b&&R&&P&&this._activeTabItem.setEditor(),t=v,i=C,r=I,this._longPressTimer=setTimeout(()=>{var V,U,W;!u||(V=this._activeTabItem)!=null&&V.isEditMode()||((U=this._activeTabItem)==null||U.enableFixed(),this._startAutoScroll(),u.setPointerCapture(a.pointerId),u.style.cursor="move",(W=this._activeTabItem)==null||W.addEventListener("pointermove",this._moveAction))},hn.LongPressDelay)},this._upAction=a=>{var u,h,f,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(a.pointerId),(f=this._activeTabItem)==null||f.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(a,this._compareIndex||0)),this._scrollIncremental=0,this._downActionX=0,this._moveActionX=0,this._compareIndex=0)},this._moveAction=a=>{this._activeTabItem&&(this._moveActionX=a.pageX-this._downActionX,this._moveActionX<=-this._leftMoveX?this._moveActionX=-this._leftMoveX:this._moveActionX>=this._rightMoveX&&(this._moveActionX=this._rightMoveX),this._scrollIncremental=0,this._scrollLeft(a),this._scrollRight(a))},this._wheelAction=a=>{this.setScroll(a.deltaY)},this.addListener()}static checkedSkipSlide(o){let e=o.target;for(;e!=null&&e!==document.body;){if(e.getAttribute("data-slide-skip"))return!0;e=e.parentElement}return!1}static keepLastIndex(o){setTimeout(()=>{const e=window.getSelection();e&&(e.selectAllChildren(o),e.collapseToEnd())})}static keepSelectAll(o){setTimeout(()=>{const e=window.getSelection();if(!e)return;const t=document.createRange();t.selectNodeContents(o),e.removeAllRanges(),e.addRange(t)})}update(o){this._config.currentIndex=o,this._initConfig(),this.removeListener(),this.addListener(),this.scrollToItem(o)}primeval(){return this._slideTabBar}updateItems(){for(let o=0;o<this._slideTabItems.length;o++)this._slideTabItems[o].animate().cancel(),this._slideTabItems[o].translateX(0),this._slideTabItems[o].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 o=this._slideTabBar.parentElement;return o?this._slideTabBar.scrollWidth-o.clientWidth===this._slideTabBar.scrollLeft:!1}addListener(){this._slideTabBar.addEventListener("wheel",this._wheelAction),this._slideTabItems.forEach(o=>{o.addEventListener("pointerdown",this._downAction)})}removeListener(){this._slideTabBar.removeEventListener("wheel",this._wheelAction),this._slideTabItems.forEach(o=>{o.removeEventListener("pointerdown",this._downAction)})}setScroll(o){if(this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+o),o>0){const e=this.calculateLeftScrollX();this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e)}else if(o<0){const e=this.calculateRightScrollX();this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e)}this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}flipPage(o){if(o>0){const e=this.calculateLeftScrollX(!0);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e)}else if(o<0){const e=this.calculateRightScrollX(!0);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e)}this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}scrollToItem(o){if(o=o!=null?o:this._config.currentIndex,o<0||o>=this._slideTabItems.length){console.error("Index out of bounds");return}const e=this.calculateTabItemScrollX(o);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e),this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}calculateLeftScrollX(o){let e=0;const t=4;return this._slideTabItems.some(i=>{const r=this._slideTabBar.getBoundingClientRect(),s=r.left+r.width,a=i.getSlideTabItem().getBoundingClientRect(),c=a.left,d=a.width;return c<s&&c+d+t*2>s?(e=o?c-r.left-t:c+d-s+t,!0):!1}),e}calculateRightScrollX(o){let e=0;const t=4;return this._slideTabItems.some(i=>{const r=this._slideTabBar.getBoundingClientRect(),s=r.left,a=i.getSlideTabItem().getBoundingClientRect(),c=a.left,d=a.width;return c-t*2<s&&c+d>s?(e=o?c+d-r.left-r.width+t:c-s-t,!0):!1}),e}calculateTabItemScrollX(o){let e=0;const t=4,i=this._slideTabBar.getBoundingClientRect(),r=i.left,s=i.left+i.width,a=this._slideTabItems[o].getSlideTabItem().getBoundingClientRect(),c=a.left,d=a.width;return c-t*2<r&&(e=c-r-t),c+d+t*2>s&&(e=c+d-s+t),e}calculateActiveTabItemScrollX(){var d;let o=0;const e=4,t=this._slideTabBar.getBoundingClientRect(),i=t.left,r=t.left+t.width,s=(d=this._activeTabItem)==null?void 0:d.getSlideTabItem().getBoundingClientRect();if(!s)return 0;const a=s.left,c=s.width;return a-e*2<i&&a+c>i&&(o=a-i-e),a<r&&a+c+e*2>r&&(o=a+c-r+e),o}destroy(){this._downActionX=0,this._moveActionX=0,this._compareDirection=0,this._compareIndex=0,this._slideTabItems=[],this._activeTabItem=null,this.removeListener()}_hasEditItem(){for(let o=0;o<this._slideTabItems.length;o++)if(this._slideTabItems[o].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(o){const e=this.getBoundingRect(),t=o.pageX-e.x;t<this._leftBoundingLine&&(this._scrollIncremental=-Math.min(Math.abs(t-this._leftBoundingLine)*.1,50))}_scrollRight(o){const e=this.getBoundingRect(),t=o.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 o=0;o<this._slideTabItems.length;o++){const e=this._slideTabItems[o],t=this._slideTabItems[o+1];t&&e.after(t)}}_compareLeft(){if(this._activeTabItem&&this._activeTabItemIndex){const o=this._slideTabItems.findIndex(r=>r.equals(this._activeTabItem)),e=this._slideTabItems.length,t=[];for(let r=0;r<o&&!(r>=o);r++)t.push(this._slideTabItems[r]);for(let r=o+1;r<e;r++)this._slideTabItems[r].animate().translateX(0);let i=!0;for(let r=t.length-1;r>=0;r--){const s=t[r];Et.leftLine(this._activeTabItem)<s.getMidLine()?(s.animate().translateX(this._activeTabItem.getWidth()),this._compareIndex=r,i=!1):(s.animate().translateX(0),i&&(this._compareIndex=this._activeTabItemIndex))}}}_compareRight(){if(this._activeTabItem){const o=this._slideTabItems.findIndex(r=>r.equals(this._activeTabItem)),e=this._slideTabItems.length,t=[];for(let r=o+1;r<e;r++)t.push(this._slideTabItems[r]);for(let r=0;r<o;r++)this._slideTabItems[r].animate().translateX(0);let i=!0;for(let r=0;r<t.length;r++){const s=t[r];Et.rightLine(this._activeTabItem)>s.getMidLine()?(s.animate().translateX(-this._activeTabItem.getWidth()),this._compareIndex=o+r+1,i=!1):(s.animate().translateX(0),i&&(this._compareIndex=this._activeTabItemIndex))}}}_initConfig(){var e;const o=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=Et.make(o,this),this._activeTabItemIndex=this._config.currentIndex,this._activeTabItem=this._slideTabItems[this._activeTabItemIndex]}};E(hn,"LongPressDelay",500),E(hn,"DoubleClickDelay",300);let rn=hn;function wf(){const[n,o]=L.useState([]),[e,t]=L.useState(""),[i,r]=L.useState(""),[s,a]=L.useState(!1),[c,d]=L.useState([0,0]),u=L.useRef({slideTabBar:null}),h=L.useRef(null),f=l.useDependency(l.ICommandService),S=l.useDependency(Rt),g=l.useDependency(l.LocaleService),p=l.useDependency(T.IConfirmService),v=l.useDependency(ze,l.Quantity.OPTIONAL),C=l.useDependency(m.WorksheetProtectionRuleModel),I=l.useDependency(m.RangeProtectionRuleModel),b=T.useObservable(C.resetOrder$),R=It(),P=l.useDependency(l.IPermissionService),y=L.useCallback(()=>{var ee;const x=((ee=R.getActiveSheet())==null?void 0:ee.getSheetId())||"";t(x);const B=R.getSheets(),G=R.getActiveSheet(),J=B.filter(ie=>!ie.isSheetHidden()).map((ie,fe)=>{var Nt;const Ie=C.getRule(R.getUnitId(),ie.getSheetId()),He=I.getSubunitRuleList(R.getUnitId(),ie.getSheetId()).length>0,ss=(Ie==null?void 0:Ie.permissionId)||He?_.jsxs(_.Fragment,{children:[_.jsx(yr,{}),_.jsx("span",{children:ie.getName()})]}):_.jsx("span",{children:ie.getName()});return{sheetId:ie.getSheetId(),label:ss,index:fe,selected:G===ie,color:(Nt=ie.getTabColor())!=null?Nt:void 0}});o(J),t(x)},[I,R,C]);L.useEffect(()=>{y();const x=O(),B=W(),G=[X(),K(),Y()];return()=>{B.dispose(),x.destroy(),G.forEach(J=>J.unsubscribe())}},[b,R]),L.useEffect(()=>{n.length>0&&U()},[n]),L.useEffect(()=>{const x=A.merge(C.ruleChange$,I.ruleChange$).subscribe(()=>{y()});return()=>{x.unsubscribe()}},[C,y]);const O=()=>{const x=new rn({slideTabBarClassName:De.slideTabBar,slideTabBarItemActiveClassName:De.slideTabActive,slideTabBarItemClassName:De.slideTabItem,slideTabBarSpanEditClassName:De.slideTabDivEdit,slideTabBarItemAutoSort:!0,slideTabBarContainer:h.current,currentIndex:0,onChangeName:(B,G)=>{f.executeCommand(m.SetWorksheetNameCommand.id,{subUnitId:B,name:G})},onSlideEnd:async(B,G)=>{await f.executeCommand(m.SetWorksheetOrderCommand.id,{order:G})},onChangeTab:(B,G)=>{f.executeCommand(m.SetWorksheetActiveOperation.id,{subUnitId:G,unitId:R.getUnitId()}).then(()=>{B.button===2&&Z(!0)})},onScroll:B=>{S.setScroll(B)},onNameCheckAlert:B=>N(B)||D(B)||k(B),onNameChangeCheck:()=>{var fe,Ie,He,li;const B=R.getUnitId(),G=R==null?void 0:R.getActiveSheet();if(!G)throw new Error("No active sheet found");const J=G.getSheetId(),ee=C.getRule(B,J),ie=I.getSubunitRuleList(B,J).length>0;return ee||ie?(Ie=(fe=P.getPermissionPoint(new m.WorkbookManageCollaboratorPermission(B).id))==null?void 0:fe.value)!=null?Ie:!1:(li=(He=P.getPermissionPoint(new m.WorkbookRenameSheetPermission(B).id))==null?void 0:He.value)!=null?li:!1}});return u.current.slideTabBar=x,F(x),x},N=x=>{if(x.trim()===""){const B="sheetNameEmptyAlert";return p.open({id:B,title:{title:g.t("sheetConfig.sheetNameErrorTitle")},children:{title:g.t("sheetConfig.sheetNameCannotIsEmptyError")},cancelText:g.t("button.cancel"),confirmText:g.t("button.confirm"),onClose(){H(),p.close(B)},onConfirm(){H(),p.close(B)}}),!0}return!1},D=x=>{if(!l.nameCharacterCheck(x)){const B="sheetNameSpecCharAlert";return p.open({id:B,title:{title:g.t("sheetConfig.sheetNameErrorTitle")},children:{title:g.t("sheetConfig.sheetNameSpecCharError")},cancelText:g.t("button.cancel"),confirmText:g.t("button.confirm"),onClose(){H(),p.close(B)},onConfirm(){H(),p.close(B)}}),!0}return!1},k=x=>{const B=R.getActiveSheet();if((B==null?void 0:B.getName())===x)return!1;const J=R.checkSheetName(x);if(J){const ee="sheetNameRepeatAlert";p.open({id:ee,title:{title:g.t("sheetConfig.sheetNameErrorTitle")},children:{title:g.t("sheetConfig.sheetNameAlreadyExistsError")},cancelText:g.t("button.cancel"),confirmText:g.t("button.confirm"),onClose(){p.close(ee),H()},onConfirm(){p.close(ee),H()}})}return J},H=()=>{setTimeout(()=>{var B;const x=(B=u.current.slideTabBar)==null?void 0:B.getActiveItem();x&&(x.focus(),x.selectAll())},0)},V=()=>{var x,B;(B=(x=u.current.slideTabBar)==null?void 0:x.getActiveItem())==null||B.setEditor()},U=()=>{var B;const x=n.findIndex(G=>G.selected);(B=u.current.slideTabBar)==null||B.update(x)},W=()=>f.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:y();break}}),X=()=>S.scroll$.subscribe(x=>{j(x)}),K=()=>S.scrollX$.subscribe(x=>{var B;(B=u.current.slideTabBar)==null||B.flipPage(x)}),Y=()=>S.renameId$.subscribe(()=>{V()}),j=x=>{const{leftEnd:B,rightEnd:G}=x;let J="";B&&G?J="":B&&!G?J="inset -10px 0px 10px -10px rgba(0, 0, 0, 0.2)":!B&&G?J="inset 10px 0px 10px -10px rgba(0, 0, 0, 0.2)":!B&&!G&&(J="inset 10px 0px 10px -10px rgba(0, 0, 0, 0.2), inset -10px 0px 10px -10px rgba(0, 0, 0, 0.2)"),r(J)},z=x=>{const B=x.calculateActiveTabItemScrollX();if(B){const G=x.getScrollbar();G.scrollX(G.getScrollX()+B)}S.setScroll({leftEnd:x.isLeftEnd(),rightEnd:x.isRightEnd()})},F=x=>{var J;const B=(J=h.current)==null?void 0:J.querySelector(`.${De.slideTabBar}`);if(!B)return;new ResizeObserver(()=>{z(x)}).observe(B)},Z=x=>{var B,G,J,ee,ie;if(!(v!=null&&v.isForceKeepVisible())){if(x){const{left:fe}=(G=(B=h.current)==null?void 0:B.getBoundingClientRect())!=null?G:{},{left:Ie}=(ie=(ee=(J=u.current.slideTabBar)==null?void 0:J.getActiveItem())==null?void 0:ee.getSlideTabItem().getBoundingClientRect())!=null?ie:{};fe!==void 0&&Ie!==void 0&&d([Ie-fe,0])}a(x)}};return _.jsx($.Dropdown,{className:De.slideTabItemDropdown,visible:s,align:{offset:c},trigger:["contextMenu"],overlay:_.jsx(T.Menu,{menuType:le.SHEET_BAR,onOptionSelect:x=>{const{label:B,value:G}=x;f.executeCommand(B,{value:G,subUnitId:e}),a(!1)}}),onVisibleChange:Z,children:_.jsx("div",{className:De.slideTabBarContainer,ref:h,onDragStart:x=>x.preventDefault(),onContextMenu:x=>x.preventDefault(),children:_.jsx("div",{className:De.slideTabBar,style:{boxShadow:i},children:n.map(x=>L.createElement(bf,{...x,key:x.sheetId,selected:e===x.sheetId}))})})})}const Bl=100,yf=()=>{var p,v;const[n,o]=L.useState(!0),[e,t]=L.useState(!0),i=l.useDependency(l.ICommandService),r=l.useDependency(Rt),s=l.useDependency(l.IPermissionService),c=It().getUnitId(),d=T.useObservable(s.getPermissionPoint$((p=new m.WorkbookEditablePermission(c))==null?void 0:p.id)),u=T.useObservable(s.getPermissionPoint$((v=new m.WorkbookCreateSheetPermission(c))==null?void 0:v.id));L.useEffect(()=>{const C=r.scroll$.subscribe(I=>{h(I)});return()=>{C.unsubscribe()}},[]);const h=C=>{const{leftEnd:I,rightEnd:b}=C;o(I),t(b)},f=()=>{i.executeCommand(m.InsertSheetCommand.id),setTimeout(()=>{r.setAddSheet(0)},0)},S=()=>{r.setScrollX(-Bl)},g=()=>{r.setScrollX(Bl)};return _.jsxs("div",{className:Qi.sheetBar,children:[_.jsxs("div",{className:Qi.sheetBarOptions,children:[_.jsx(Ji,{onClick:f,disabled:!(u!=null&&u.value&&(d!=null&&d.value)),children:_.jsx(wr,{})}),_.jsx(If,{})]}),_.jsx(wf,{}),(!n||!e)&&_.jsxs("div",{className:`${Qi.sheetBarOptions} ${Qi.sheetBarOptionsDivider}`,children:[_.jsx(Ji,{disabled:n,onClick:S,children:_.jsx(Mr,{style:{transform:"rotateZ(180deg)"}})}),_.jsx(Ji,{disabled:e,onClick:g,children:_.jsx(Mr,{})})]})]})};class Fl{constructor(){E(this,"_functions",[{func:q.FUNCTION_NAMES_STATISTICAL.MAX,filter:o=>{var e,t,i,r;return((t=(e=o.values.find(s=>s.func===q.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((r=(i=o.values.find(s=>s.func===q.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:i.value)!=null?r:0)>0}},{func:q.FUNCTION_NAMES_STATISTICAL.MIN,filter:o=>{var e,t,i,r;return((t=(e=o.values.find(s=>s.func===q.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((r=(i=o.values.find(s=>s.func===q.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:i.value)!=null?r:0)>0}},{func:q.FUNCTION_NAMES_MATH.SUM,filter:o=>{var e,t,i,r;return((t=(e=o.values.find(s=>s.func===q.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((r=(i=o.values.find(s=>s.func===q.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:i.value)!=null?r:0)>0}},{func:q.FUNCTION_NAMES_STATISTICAL.COUNTA,filter:o=>{var e,t;return((t=(e=o.values.find(i=>i.func===q.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1}},{func:q.FUNCTION_NAMES_STATISTICAL.COUNT,filter:o=>{var e,t,i,r;return((t=(e=o.values.find(s=>s.func===q.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((r=(i=o.values.find(s=>s.func===q.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:i.value)!=null?r:0)>0}},{func:q.FUNCTION_NAMES_STATISTICAL.AVERAGE,filter:o=>{var e,t,i,r;return((t=(e=o.values.find(s=>s.func===q.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((r=(i=o.values.find(s=>s.func===q.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:i.value)!=null?r:0)>0}}]);E(this,"_state$",new A.BehaviorSubject(null));E(this,"state$",this._state$.asObservable())}dispose(){this._state$.complete()}setState(o){var t;const e={values:[],pattern:null};o==null||o.values.forEach(i=>{const r=this._functions.find(s=>s.func===i.func);r&&(r.filter===void 0||r.filter(o))&&e.values.push(i)}),e.pattern=(t=o==null?void 0:o.pattern)!=null?t:null,this._state$.next(e)}getState(){return this._state$.getValue()}getFunctions(){return this._functions}addFunctions(o){this._functions.push(...o)}}const $i=l.createIdentifier("univer.sheet-status-bar.service"),sn={statusBar:"univer-status-bar",singleMode:"univer-single-mode",statusBarDiv:"univer-status-bar-div",statisticList:"univer-statistic-list",statisticListColumn:"univer-statistic-list-column",statisticItem:"univer-statistic-item",statisticPicker:"univer-statistic-picker",statisticPickerItem:"univer-statistic-picker-item",statisticMore:"univer-statistic-more"},Mf=[q.FUNCTION_NAMES_MATH.SUM,q.FUNCTION_NAMES_STATISTICAL.AVERAGE,q.FUNCTION_NAMES_STATISTICAL.MIN,q.FUNCTION_NAMES_STATISTICAL.MAX],Hr={[q.FUNCTION_NAMES_MATH.SUM]:"statusbar.sum",[q.FUNCTION_NAMES_STATISTICAL.AVERAGE]:"statusbar.average",[q.FUNCTION_NAMES_STATISTICAL.MIN]:"statusbar.min",[q.FUNCTION_NAMES_STATISTICAL.MAX]:"statusbar.max",[q.FUNCTION_NAMES_STATISTICAL.COUNT]:"statusbar.count",[q.FUNCTION_NAMES_STATISTICAL.COUNTA]:"statusbar.countA",[q.FUNCTION_NAMES_TEXT.CONCATENATE]:"concatenate"},Vr=n=>{const o=l.useDependency(l.LocaleService),e=l.useDependency(T.IMessageService),t=l.useDependency(T.IClipboardInterfaceService),i=Of(n),r=async()=>{await t.writeText(n.value.toString()),e.show({type:$.MessageType.Success,content:o.t("statusbar.copied")})};return _.jsx($.Tooltip,{title:o.t("statusbar.clickToCopy"),placement:"top",children:_.jsx("div",{className:sn.statisticItem,onClick:r,children:_.jsx("span",{children:`${o.t((Hr==null?void 0:Hr[n.name])||n.name)}: ${i}`})},n.name)})};function Of(n){const{pattern:o,value:e}=n;return typeof e!="number"?0:e>=1e8?e.toExponential(2):o&&Mf.includes(n.name)?Ve.numfmt.format(o,e):e.toLocaleString()}const jl=800,Af=3,Nf=()=>{const[n,o]=L.useState(window.innerWidth<jl),[e,t]=L.useState(!0),i=l.useDependency($i),r=i.getFunctions().map((f,S)=>({name:f.func,value:0,show:!0,disable:!1,pattern:null})),[s,a]=L.useState(r),c=s.find(f=>f.show&&!f.disable),d=n&&c?[c]:s.filter(f=>f.show&&!f.disable);L.useEffect(()=>{const f=i.state$.subscribe(S=>{const g=S==null?void 0:S.values;if(!g||g.length===0)t(!1);else{t(!0);const p=s.map(v=>{var I;const C=g.find(b=>b.func===v.name);return C?(v.value=C.value,v.disable=!1):v.disable=!0,v.pattern=(I=S==null?void 0:S.pattern)!=null?I:null,v});a(p)}});return()=>{f.unsubscribe()}},[i]);const u=l.debounce(()=>{const f=window.innerWidth<jl;n!==f&&o(f)},100);L.useEffect(()=>(window.addEventListener("resize",u),()=>{window.removeEventListener("resize",u)}),[n]);let h=null;if(d.length>Af){const f=[];d.forEach((S,g)=>{g%2===0&&f.push(d.slice(g,g+2))}),h=_.jsxs(_.Fragment,{children:[" ",f.map((S,g)=>_.jsxs("div",{className:sn.statisticListColumn,children:[(S==null?void 0:S[0])&&_.jsx(Vr,{...S==null?void 0:S[0]},S==null?void 0:S[0].name),(S==null?void 0:S[1])&&_.jsx(Vr,{...S==null?void 0:S[1]},S==null?void 0:S[1].name)]},`stat-col-${g}`))," "]})}else h=_.jsx(_.Fragment,{children:d.map(f=>_.jsx(Vr,{...f},f.name))});return e&&_.jsxs("div",{className:he(sn.statusBar,{[sn.singleMode]:n}),children:[_.jsx("div",{className:he(sn.statisticList),children:h}),_.jsx("div",{className:sn.statusBarDiv})]})};function Df(){const n=l.useDependency(l.IUniverInstanceService);return T.useObservable(()=>n.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),null,!1,[])?_.jsxs("section",{className:il.sheetContainer,"data-range-selector":!0,children:[_.jsx(yf,{}),_.jsx(Nf,{}),_.jsx(hf,{})]}):null}function kf(){const n=l.useDependency(l.IUniverInstanceService);return T.useObservable(()=>n.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),null,!1,[])?_.jsx(gf,{}):null}function Hf(){const n=l.useDependency(l.IUniverInstanceService);return T.useObservable(()=>n.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),null,!1,[])?_.jsxs(_.Fragment,{children:[_.jsx(mf,{}),_.jsx(Cf,{})]}):null}const Lr={width:"100%"},Xl=n=>{const{inputId:o,state:e=!1,type:t="range",confirm:i,cancel:r,name:s,formulaOrRefString:a,comment:c="",localSheetId:d=kr,hidden:u=!1,id:h}=n,S=l.useDependency(l.IUniverInstanceService).getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),g=l.useDependency(l.LocaleService),p=l.useDependency(q.IDefinedNamesService),v=l.useDependency(q.IFunctionService),C=l.useDependency(q.LexerTreeBuilder);if(S==null)return;const I=S.getUnitId(),[b,R]=L.useState(s),[P,y]=L.useState(a),[O,N]=L.useState(c),[D,k]=L.useState(d),[H,V]=L.useState(""),[U,W]=L.useState(t),[X,K]=L.useState(!0),Y=[{label:g.t("definedName.scopeWorkbook"),value:kr}],j=G=>!q.isReferenceStrings(G);L.useEffect(()=>{K(!0),R(s),N(c),k(d);let G=a;a.substring(0,1)===q.operatorToken.EQUALS?W("formula"):j(a)?(W("formula"),G=q.operatorToken.EQUALS+a):W("range"),y(G),V("")},[e]),S.getSheetOrders().forEach(G=>{const J=S.getSheetBySheetId(G);Y.push({label:(J==null?void 0:J.getName())||"",value:G})});const z=G=>G.map(ee=>{var ie;return q.serializeRangeToRefString({...ee,sheetName:((ie=S.getSheetBySheetId(ee.sheetId))==null?void 0:ie.getName())||""})}).join(","),F=G=>{y(z(G))},Z=G=>{y(G||"")},x=()=>{if(b.length===0){V(g.t("definedName.nameEmpty"));return}if(p.getValueByName(I,b)!=null&&(h==null||h.length===0)){V(g.t("definedName.nameDuplicate"));return}if(!l.Tools.isValidParameter(b)||q.isReferenceStringWithEffectiveColumn(b)||!l.Tools.isStartValidPosition(b)&&!w.hasCJKText(b.substring(0,1))){V(g.t("definedName.nameInvalid"));return}if(S.getSheetOrders().map(J=>{var ee;return((ee=S.getSheetBySheetId(J))==null?void 0:ee.getName())||""}).includes(b)){V(g.t("definedName.nameSheetConflict"));return}if(P.length===0){V(g.t("definedName.formulaOrRefStringEmpty"));return}if(!X){V(g.t("definedName.formulaOrRefStringInvalid"));return}if(v.hasExecutor(b.toUpperCase())){V(g.t("definedName.nameConflict"));return}i&&i({id:h||"",name:b,formulaOrRefString:C.convertRefersToAbsolute(P,l.AbsoluteRefType.ALL,l.AbsoluteRefType.ALL),comment:O,localSheetId:D})},B=G=>{const J=G;J==="formula"&&P.substring(0,1)!==q.operatorToken.EQUALS?(y(`${q.operatorToken.EQUALS}`),y(`${q.operatorToken.EQUALS}`)):P.substring(0,1)===q.operatorToken.EQUALS&&(y(""),y("")),W(J)};return _.jsxs("div",{className:ae.definedNameInput,style:{display:e?"block":"none"},children:[_.jsx("div",{children:_.jsx($.Input,{placeholder:g.t("definedName.inputNamePlaceholder"),value:b,allowClear:!0,onChange:R,affixWrapperStyle:Lr})}),_.jsx("div",{children:_.jsxs($.RadioGroup,{value:U,onChange:B,children:[_.jsx($.Radio,{value:"range",children:g.t("definedName.ratioRange")}),_.jsx($.Radio,{value:"formula",children:g.t("definedName.ratioFormula")})]})}),_.jsx("div",{style:{display:U==="range"?"block":"none"},children:_.jsx(T.RangeSelector,{value:P,onValid:K,onChange:F,placeholder:g.t("definedName.inputRangePlaceholder"),id:l.createInternalEditorID(`${o}-rangeSelector`),width:"99%",openForSheetUnitId:I},`${o}-rangeSelector`)}),_.jsx("div",{style:{display:U==="range"?"none":"block"},children:_.jsx(T.TextEditor,{value:P,onValid:K,onChange:Z,id:l.createInternalEditorID(`${o}-editor`),placeholder:g.t("definedName.inputFormulaPlaceholder"),openForSheetUnitId:I,onlyInputFormula:!0,style:{width:"99%"},canvasStyle:{fontSize:10}},`${o}-editor`)}),_.jsx("div",{children:_.jsx($.Select,{style:Lr,value:D,options:Y,onChange:k})}),_.jsx("div",{children:_.jsx($.Input,{affixWrapperStyle:Lr,placeholder:g.t("definedName.inputCommentPlaceholder"),value:O,onChange:N})}),_.jsxs("div",{style:{display:H.length===0?"none":"flex"},className:ae.definedNameInputValidation,children:[_.jsx("span",{children:H}),_.jsx(Pr,{})]}),_.jsxs("div",{children:[_.jsx($.Button,{onClick:()=>{r&&r()},children:g.t("definedName.cancel")}),_.jsx($.Button,{style:{marginLeft:15},type:"primary",onClick:x,children:g.t("definedName.confirm")})]})]})},zl=()=>{const n=l.useDependency(l.ICommandService),e=l.useDependency(l.IUniverInstanceService).getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),t=l.useDependency(l.LocaleService),i=l.useDependency(q.IDefinedNamesService),r=l.useDependency(m.SheetsSelectionsService);if(e==null)return;const s=e.getUnitId(),a=()=>{const H=i.getDefinedNameMap(s);return H?Array.from(Object.values(H)):[]},[c,d]=L.useState(!1),[u,h]=L.useState(a()),[f,S]=L.useState(null),[g,p]=L.useState();L.useEffect(()=>{const H=i.update$.subscribe(()=>{h(a())});return()=>{H.unsubscribe()}},[]);const v=H=>{const{name:V,formulaOrRefString:U,comment:W,localSheetId:X,hidden:K}=H;let Y=H.id;if(Y==null||Y.length===0)Y=l.Tools.generateRandomId(10),n.executeCommand(m.InsertDefinedNameCommand.id,{id:Y,unitId:s,name:V,formulaOrRefString:U,comment:W,localSheetId:X,hidden:K});else{const j=i.getValueById(s,Y),z={id:Y,unitId:s,name:V,formulaOrRefString:U,comment:W,localSheetId:X,hidden:K};n.executeCommand(m.SetDefinedNameCommand.id,{unitId:s,oldDefinedName:{...j,unitId:s},newDefinedName:z})}d(!1),S(null)},C=H=>{p(H)};function I(){p(null)}function b(H){const V=i.getValueById(s,H);n.executeCommand(m.RemoveDefinedNameCommand.id,{...V,unitId:s}),p(null)}const R=H=>{i.focusRange(s,H.id)},P=()=>{const H=u.length+1,V=t.t("definedName.defaultName")+H;if(i.getValueByName(s,V)==null)return V;let U=H+1;for(;;){const W=t.t("definedName.defaultName")+U;if(i.getValueByName(s,W)==null)return W;U++}},y=()=>{var W;const H=(W=e.getActiveSheet())==null?void 0:W.getName();if(!H)return"";const V=r.getCurrentSelections();return V==null?"":V.map(X=>q.serializeRangeWithSheet(H,X.range)).join(",")},O=()=>{d(!1),S(null)},N=()=>{d(!0),S(null)},D=H=>{d(!1),S(H)},k=H=>{const V=e.getSheetBySheetId(H);return V==null?"":V.getName()};return _.jsx("div",{className:ae.definedNameContainer,children:_.jsxs("div",{className:ae.definedNameContainerScroll,children:[_.jsxs("div",{children:[_.jsxs("div",{onClick:N,className:ae.definedNameContainerAddButton,style:{display:c?"none":"flex"},children:[_.jsx(wr,{}),_.jsx("span",{className:ae.definedNameContainerAddButtonText,children:t.t("definedName.addButton")})]}),_.jsx(Xl,{confirm:v,cancel:O,state:c,inputId:"insertDefinedName",name:P(),formulaOrRefString:y()})]},"insertDefinedName"),u.map((H,V)=>_.jsxs("div",{children:[_.jsxs("div",{onClick:()=>{R(H)},className:ae.definedNameContainerItem,style:{display:H.id===f?"none":"flex"},children:[_.jsxs("div",{title:H.comment,children:[_.jsxs("div",{className:ae.definedNameContainerItemName,children:[H.name,_.jsx("span",{className:ae.definedNameContainerItemNameForSheet,children:H.localSheetId===kr||H.localSheetId==null?"":k(H.localSheetId)})]}),_.jsx("div",{className:ae.definedNameContainerItemFormulaOrRefString,children:H.formulaOrRefString})]}),_.jsx($.Tooltip,{title:t.t("definedName.updateButton"),placement:"top",style:{pointerEvents:"none"},children:_.jsx("div",{className:he(ae.definedNameContainerItemUpdate,ae.definedNameContainerItemShow),onClick:()=>{D(H.id)},children:_.jsx(dt,{})})}),_.jsx($.Tooltip,{title:t.t("definedName.deleteButton"),placement:"top",style:{pointerEvents:"none"},children:_.jsx("div",{className:he(ae.definedNameContainerItemDelete,ae.definedNameContainerItemShow),onClick:()=>{C(H.id)},children:_.jsx(Gi,{})})})]}),_.jsx($.Confirm,{visible:g===H.id,onClose:I,onConfirm:()=>{b(H.id)},children:t.t("definedName.deleteConfirmText")}),_.jsx(Xl,{confirm:v,cancel:O,state:H.id===f,id:H.id,inputId:H.id+V,name:H.name,formulaOrRefString:H.formulaOrRefString,comment:H.comment,localSheetId:H.localSheetId})]},V))]})})};var Vf=Object.defineProperty,Lf=Object.getOwnPropertyDescriptor,Wf=(n,o,e,t)=>{for(var i=t>1?void 0:t?Lf(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Vf(o,e,i),i};const Yl={name:"",unitId:"",subUnitId:"",permissionId:"",unitType:oe.Unkonwn,id:"",ranges:[]};var ln=(n=>(n.othersCanView="othersCanView",n.noOneElseCanView="noOneElseCanView",n))(ln||{});let Ce=class{constructor(){E(this,"_rule",Yl);E(this,"_rule$",new A.BehaviorSubject(this._rule));E(this,"_oldRule");E(this,"_rangeErrorMsg$",new A.BehaviorSubject(""));E(this,"rangeErrorMsg$",this._rangeErrorMsg$.asObservable());E(this,"rule$",this._rule$.asObservable())}setRangeErrorMsg(n){this._rangeErrorMsg$.next(n)}get rule(){return this._rule}setRule(n){this._rule={...this._rule,...n},this._rule$.next(this._rule)}resetRule(){this._rule=Yl,this._rule$.next(this._rule)}get oldRule(){return this._oldRule}setOldRule(n){this._oldRule=n}};Ce=Wf([l.OnLifecycle(l.LifecycleStages.Starting,Ce)],Ce);class an{constructor(){E(this,"_userList",[]);E(this,"_oldCollaboratorList",[]);E(this,"_selectUserList",[]);E(this,"_allUserList",[]);E(this,"_selectUserList$",new A.BehaviorSubject(this._selectUserList));E(this,"selectUserList$",this._selectUserList$.asObservable())}get userList(){return this._userList}get allUserList(){return this._allUserList}setAllUserList(o){this._allUserList=o}setUserList(o){this._userList=o}get oldCollaboratorList(){return this._oldCollaboratorList}setOldCollaboratorList(o){this._oldCollaboratorList=o}get selectUserList(){return this._selectUserList}setSelectUserList(o){this._selectUserList=o,this._selectUserList$.next(o)}}const Un="UNIVER_SHEET_PERMISSION_PANEL",Bn="UNIVER_SHEET_PERMISSION_PANEL_FOOTER",Zl="UNIVER_SHEET_PERMISSION_USER_DIALOG",Gl="UNIVER_SHEET_PERMISSION_DIALOG",eo="UNIVER_SHEET_PERMISSION_USER_DIALOG_ID",to="UNIVER_SHEET_PERMISSION_DIALOG_ID",no={[Q.Copy]:"Copy",[Q.SetCellStyle]:"SetCellStyle",[Q.SetCellValue]:"SetCellValue",[Q.SetRowStyle]:"SetRowStyle",[Q.SetColumnStyle]:"SetColumnStyle",[Q.InsertRow]:"InsertRow",[Q.InsertColumn]:"InsertColumn",[Q.InsertHyperlink]:"InsertHyperlink",[Q.DeleteRow]:"DeleteRow",[Q.DeleteColumn]:"DeleteColumn",[Q.Sort]:"Sort",[Q.Filter]:"Filter",[Q.PivotTable]:"PivotTable",[Q.EditExtraObject]:"EditExtraObject"},xf=[Q.Copy,Q.SetCellStyle,Q.SetCellValue,Q.SetRowStyle,Q.SetColumnStyle,Q.InsertRow,Q.InsertColumn,Q.InsertHyperlink,Q.DeleteRow,Q.DeleteColumn,Q.Sort,Q.Filter,Q.PivotTable,Q.EditExtraObject,Q.View],Kl="sheet-permission-menu-icon",Uf="sheet-permission-delete-icon",Bf="sheet-permission-edit-icon",Ff="sheet-permission-check-icon",ql="sheet-permission-lock-icon",Ge={type:l.CommandType.OPERATION,id:"sheet-permission.operation.openPanel",async handler(n,o={}){const e=n.get(T.ISidebarService),t=n.get(Ce),i=n.get(an),{showDetail:r=!0,fromSheetBar:s=!1}=o,a={header:{title:"permission.panel.title"},children:{label:Un,showDetail:r,fromSheetBar:s},width:330,footer:{label:Bn,showDetail:r},onClose:()=>{t.setRangeErrorMsg(""),t.resetRule(),i.setUserList([]),i.setSelectUserList([]),i.setOldCollaboratorList([]),i.setAllUserList([])}};return e.open(a),!0}},Wr={type:l.CommandType.OPERATION,id:"sheet-permission.operation.openDialog",async handler(n,o){const e=n.get(T.IDialogService);return e.close("DESKTOP_FIND_REPLACE_DIALOG"),e.open({id:to,title:{title:"permission.dialog.allowedPermissionType"},children:{label:Gl},width:393,destroyOnClose:!0,onClose:()=>e.close(to)}),!0}},Fn={type:l.CommandType.COMMAND,id:"sheet.command.add-worksheet-protection",async handler(n,o){if(!o)return!1;const e=n.get(l.ICommandService),t=n.get(l.IUndoRedoService),{rule:i,unitId:r}=o,s=i.subUnitId;if(await e.executeCommand(m.AddWorksheetProtectionMutation.id,{unitId:r,rule:i,subUnitId:i.subUnitId})){const c=[{id:m.AddWorksheetProtectionMutation.id,params:{unitId:r,rule:i,subUnitId:i.subUnitId}}],d=[{id:m.DeleteWorksheetProtectionMutation.id,params:{unitId:r,subUnitId:s}}];t.pushUndoRedo({unitID:r,redoMutations:c,undoMutations:d})}return!0}},Pt={type:l.CommandType.COMMAND,id:"sheet.command.delete-worksheet-protection",handler(n,o){if(!o)return!1;const e=n.get(l.ICommandService),t=n.get(l.IUndoRedoService),{rule:i,unitId:r,subUnitId:s}=o;e.executeCommand(m.DeleteWorksheetProtectionMutation.id,{unitId:r,subUnitId:s});const a=[{id:m.DeleteWorksheetProtectionMutation.id,params:{unitId:r,subUnitId:s}}],c=[{id:m.AddWorksheetProtectionMutation.id,params:{unitId:r,rule:i,subUnitId:s}}];return t.pushUndoRedo({unitID:r,redoMutations:a,undoMutations:c}),!0}},xr={type:l.CommandType.COMMAND,id:"sheet.command.set-worksheet-protection",async handler(n,o){if(!o)return!1;const e=n.get(l.ICommandService),t=n.get(Ce),i=n.get(l.IUndoRedoService),{rule:r,permissionId:s}=o,{unitId:a,subUnitId:c}=r,d={...r,permissionId:s},u=t.oldRule;if(await e.executeCommand(m.SetWorksheetProtectionMutation.id,{unitId:a,subUnitId:c,newRule:d})){const f=[{id:m.SetWorksheetProtectionMutation.id,params:{unitId:a,subUnitId:c,newRule:d}}],S=[{id:m.SetWorksheetProtectionMutation.id,params:{unitId:a,subUnitId:c,rule:u}}];i.pushUndoRedo({unitID:a,redoMutations:f,undoMutations:S})}return!0}},io={type:l.CommandType.COMMAND,id:"sheet.command.delete-worksheet-protection-from-sheet-bar",async handler(n,o){if(!o)return!1;const e=n.get(l.ICommandService),t=n.get(l.IUndoRedoService),i=n.get(m.WorksheetProtectionRuleModel),s=n.get(l.IUniverInstanceService).getCurrentUnitForType(di.UNIVER_SHEET),a=s==null?void 0:s.getActiveSheet(),c=s.getUnitId();if(!a)return!1;const d=a.getSheetId(),u=i.getRule(c,d);if(await e.executeCommand(Pt.id,{unitId:c,subUnitId:d})){const f=[{id:Pt.id,params:{unitId:c,subUnitId:d}}],S=[{id:Fn.id,params:{unitId:c,rule:u}}];t.pushUndoRedo({unitID:c,redoMutations:f,undoMutations:S})}return!0}},oo={type:l.CommandType.COMMAND,id:"sheet.command.change-sheet-protection-from-sheet-bar",async handler(n){return await n.get(l.ICommandService).executeCommand("sheet-permission.operation.openDialog"),!0}},ro={type:l.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-toolbar",async handler(n){const o=n.get(l.ICommandService);return n.get(Ce).resetRule(),await o.executeCommand(Ge.id,{showDetail:!0}),!0}},so={type:l.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-context-menu",async handler(n){const o=n.get(l.ICommandService);return n.get(Ce).resetRule(),await o.executeCommand(Ge.id,{showDetail:!0}),!0}},lo={type:l.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-context-menu",async handler(n){return await n.get(l.ICommandService).executeCommand(Ge.id,{showDetail:!1}),!0}},ao={type:l.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-sheet-bar",async handler(n){const o=n.get(l.ICommandService);return n.get(Ce).resetRule(),await o.executeCommand(Ge.id,{fromSheetBar:!0,showDetail:!0}),!0}},co={type:l.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-sheet-bar",async handler(n){return await n.get(l.ICommandService).executeCommand(Ge.id,{showDetail:!1}),!0}},jf={type:l.CommandType.COMMAND,id:"sheet.command.add-range-protection",async handler(n,o){if(!o)return!1;const e=n.get(l.ICommandService),t=n.get(l.IUndoRedoService),i=n.get(m.RangeProtectionRuleModel),{rule:r,permissionId:s}=o,{unitId:a,subUnitId:c,ranges:d,name:u,description:h}=r,f=[{ranges:d,permissionId:s,id:i.createRuleId(a,c),name:u,description:h}];if(await e.executeCommand(m.AddRangeProtectionMutation.id,{unitId:a,subUnitId:c,rules:f})){const g=[{id:m.AddRangeProtectionMutation.id,params:{unitId:a,subUnitId:c,rules:f}}],p=[{id:m.DeleteRangeProtectionMutation.id,params:{unitId:a,subUnitId:c,ruleIds:f.map(v=>v.id)}}];t.pushUndoRedo({unitID:a,redoMutations:g,undoMutations:p})}return!0}},Xf={type:l.CommandType.COMMAND,id:"sheet.command.delete-range-protection",async handler(n,o){if(!o)return!1;const e=n.get(l.ICommandService),t=n.get(l.IUndoRedoService),{unitId:i,subUnitId:r,rule:s}=o,a={unitId:i,subUnitId:r,ruleIds:[s.id]};return await e.executeCommand(m.DeleteRangeProtectionMutation.id,a)&&t.pushUndoRedo({unitID:i,redoMutations:[{id:m.DeleteRangeProtectionMutation.id,params:a}],undoMutations:[{id:m.AddRangeProtectionMutation.id,params:{unitId:i,subUnitId:r,rules:[s]}}]}),!0}},zf={type:l.CommandType.COMMAND,id:"sheet.command.set-range-protection",async handler(n,o){if(!o)return!1;const e=n.get(l.ICommandService),t=n.get(m.RangeProtectionRuleModel),i=n.get(Ce),r=n.get(l.IUndoRedoService),{rule:s,permissionId:a}=o,{unitId:c,subUnitId:d,ranges:u,name:h,description:f}=s;if(s.id){const S={unitId:c,subUnitId:d,ruleId:s.id,rule:{ranges:u,permissionId:a,id:t.createRuleId(c,d),name:h,description:f}};if(await e.executeCommand(m.SetRangeProtectionMutation.id,S)){const p=[{id:m.SetRangeProtectionMutation.id,params:S}],v=[{id:m.SetRangeProtectionMutation.id,params:{unitId:c,subUnitId:d,ruleId:s.id,rule:i.oldRule}}];r.pushUndoRedo({unitID:c,redoMutations:p,undoMutations:v})}}return!0}},uo={type:l.CommandType.COMMAND,id:"sheet.command.delete-range-protection-from-context-menu",async handler(n){var h;const o=n.get(l.ICommandService),e=n.get(l.IUniverInstanceService),t=n.get(l.IUndoRedoService),i=n.get(m.SheetsSelectionsService),r=n.get(m.WorksheetProtectionRuleModel),s=e.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),a=s.getActiveSheet(),c=s.getUnitId(),d=a.getSheetId(),u=r.getRule(c,d);if(u!=null&&u.permissionId&&(u!=null&&u.name))return o.executeCommand(Pt.id,{unitId:c,subUnitId:d,rule:u});{const f=(h=i.getCurrentLastSelection())==null?void 0:h.range;if(!f)return!1;const p=n.get(m.RangeProtectionRuleModel).getSubunitRuleList(c,d).find(v=>v.ranges.some(C=>l.Rectangle.intersects(C,f)));if(p){const v={unitId:c,subUnitId:d,ruleIds:[p.id]};return await o.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}}},ho={type:l.CommandType.COMMAND,id:"sheet.command.set-range-protection-from-context-menu",async handler(n){var h;const o=n.get(l.ICommandService),e=n.get(l.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),i=n.get(m.WorksheetProtectionRuleModel),r=e.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),s=r.getActiveSheet(),a=r.getUnitId(),c=s.getSheetId(),d=i.getRule(a,c),u=n.get(Ce);if(d!=null&&d.permissionId&&(d!=null&&d.name)){const f={...d,unitId:a,subUnitId:c,ranges:[]};return u.setRule(f),u.setOldRule(f),await o.executeCommand(Ge.id,{showDetail:!0}),!0}else{const f=(h=t.getCurrentLastSelection())==null?void 0:h.range;if(!f)return!1;const p=n.get(m.RangeProtectionRuleModel).getSubunitRuleList(a,c).find(v=>{var C;return(C=v==null?void 0:v.ranges)==null?void 0:C.some(I=>l.Rectangle.intersects(I,f))});if(p){const v={...p,unitId:a,subUnitId:c};return u.setRule(v),u.setOldRule(v),await o.executeCommand(Ge.id,{showDetail:!0}),!0}else return!1}}},mo={type:l.CommandType.COMMAND,id:"sheet.command.set-protection",async handler(n,o){if(!o)return!1;const e=n.get(l.ICommandService),t=n.get(l.IUndoRedoService),i=n.get(Ce),r=n.get(m.RangeProtectionRuleModel),{rule:s}=o,{unitId:a,subUnitId:c}=s,d=[],u=[],h=i.oldRule;return(h==null?void 0:h.unitType)===s.unitType?s.unitType===oe.Worksheet?(d.push({id:m.SetWorksheetProtectionMutation.id,params:{unitId:a,subUnitId:c,rule:s}}),u.push({id:m.SetWorksheetProtectionMutation.id,params:{unitId:a,subUnitId:c,rule:h}})):(d.push({id:m.SetRangeProtectionMutation.id,params:{unitId:a,subUnitId:c,rule:s,ruleId:s.id}}),u.push({id:m.SetRangeProtectionMutation.id,params:{unitId:a,subUnitId:c,ruleId:h.id,rule:h}})):(h&&(h.unitType===oe.Worksheet?(d.push({id:m.DeleteWorksheetProtectionMutation.id,params:{unitId:a,subUnitId:c}}),u.push({id:m.AddWorksheetProtectionMutation.id,params:{unitId:a,rule:h,subUnitId:h.subUnitId}})):h.unitType===oe.SelectRange&&(d.push({id:m.DeleteRangeProtectionMutation.id,params:{unitId:a,subUnitId:c,ruleIds:[h.id]}}),u.push({id:m.AddRangeProtectionMutation.id,params:{unitId:a,subUnitId:c,rules:[h]}}))),s.unitType===oe.Worksheet?(d.push({id:m.AddWorksheetProtectionMutation.id,params:{unitId:a,rule:s,subUnitId:s.subUnitId}}),u.unshift({id:m.DeleteWorksheetProtectionMutation.id,params:{unitId:a,subUnitId:c}})):s.unitType===oe.SelectRange&&(s.id=r.createRuleId(a,c),d.push({id:m.AddRangeProtectionMutation.id,params:{unitId:a,subUnitId:c,rules:[s]}}),u.unshift({id:m.DeleteRangeProtectionMutation.id,params:{unitId:a,subUnitId:c,ruleIds:[s.id]}}))),l.sequenceExecute(d,e)&&t.pushUndoRedo({unitID:a,undoMutations:u,redoMutations:d}),!0}},Ql={id:"sheet.operation.scroll-to-range",type:l.CommandType.OPERATION,handler:(n,o)=>{const e=n.get(l.IUniverInstanceService);return n.get(w.IRenderManagerService).getRenderById(e.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(M.SheetsScrollRenderController).scrollToRange(o.range)}},fo="sheet.menu.clear-selection";function Yf(n){return{id:fo,group:T.MenuGroup.CONTEXT_MENU_FORMAT,type:T.MenuItemType.SUBITEMS,icon:"ClearFormat",title:"rightClick.clearSelection",positions:[T.MenuPosition.CONTEXT_MENU,le.COL_HEADER_CONTEXT_MENU,le.ROW_HEADER_CONTEXT_MENU],hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Zf(n){return{id:m.ClearSelectionContentCommand.id,type:T.MenuItemType.BUTTON,title:"rightClick.clearContent",positions:[fo],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Gf(n){return{id:m.ClearSelectionFormatCommand.id,type:T.MenuItemType.BUTTON,title:"rightClick.clearFormat",positions:[fo],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function Kf(n){return{id:m.ClearSelectionAllCommand.id,type:T.MenuItemType.BUTTON,title:"rightClick.clearAll",positions:[fo],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}const jn="sheet.menu.delete";function qf(n){return{id:jn,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.SUBITEMS,title:"rightClick.delete",icon:"Reduce",positions:[T.MenuPosition.CONTEXT_MENU],hidden$:ui(n),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission]})}}function Qf(n){return{id:ji.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,icon:"DeleteColumn",positions:[jn,le.COL_HEADER_CONTEXT_MENU],title:"rightClick.deleteSelectedColumn",hidden$:Is(n,"col"),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetDeleteColumnPermission]})}}function Jf(n){return{id:Fi.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,icon:"DeleteRow",positions:[jn,le.ROW_HEADER_CONTEXT_MENU],title:"rightClick.deleteSelectedRow",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetDeleteRowPermission]}),hidden$:Is(n,"row")}}function $f(n){return{id:Ln.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,title:"rightClick.moveLeft",icon:"DeleteCellShiftLeft",positions:[jn],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:hi(n,"col")}}function eS(n){return{id:nn.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,title:"rightClick.moveUp",icon:"DeleteCellShiftUp",positions:[jn],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:hi(n,"row")}}const Ur="sheet.menu.col-insert";function tS(n){return{id:Ur,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",positions:[le.COL_HEADER_CONTEXT_MENU],hidden$:ui(n),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetInsertColumnPermission]})}}const Br="sheet.menu.row-insert";function nS(n){return{id:Br,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",positions:[le.ROW_HEADER_CONTEXT_MENU],hidden$:ui(n),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertRowPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const Xn="sheet.menu.cell-insert";function iS(n){return{id:Xn,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",positions:[T.MenuPosition.CONTEXT_MENU],hidden$:ui(n),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertColumnPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function oS(n){return{id:m.InsertRowBeforeCommand.id,type:T.MenuItemType.BUTTON,title:"rightClick.insertRowBefore",icon:"InsertRowAbove",positions:[Br,Xn],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertRowPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:_s(n,"row")}}function rS(n){return{id:m.InsertRowAfterCommand.id,type:T.MenuItemType.BUTTON,positions:[Br],title:"rightClick.insertRow",icon:"InsertRowBelow",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertRowPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Cs(n,"row")}}function sS(n){return{id:m.InsertColBeforeCommand.id,type:T.MenuItemType.BUTTON,positions:[Ur,Xn],title:"rightClick.insertColumnBefore",icon:"LeftInsertColumn",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertColumnPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:_s(n,"col")}}function lS(n){return{id:m.InsertColAfterCommand.id,type:T.MenuItemType.BUTTON,positions:[Ur],title:"rightClick.insertColumn",icon:"RightInsertColumn",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertColumnPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Cs(n,"col")}}function aS(n){return{id:Wn.id,type:T.MenuItemType.BUTTON,title:"rightClick.moveRight",icon:"InsertCellShiftRight",positions:[Xn],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:hi(n,"col")}}function cS(n){return{id:on.id,type:T.MenuItemType.BUTTON,title:"rightClick.moveDown",icon:"InsertCellDown",positions:[Xn],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:hi(n,"row")}}function dS(n){const o=n.get(l.IUniverInstanceService),e=n.get(l.ICommandService),t=new A.Observable(r=>{const s=e.onCommandExecuted(a=>{const c=a.id;(c===m.RemoveSheetMutation.id||c===m.InsertSheetMutation.id||c===m.SetWorksheetHideMutation.id)&&So(o,r)});return So(o,r),s.dispose}),i=Ht(n,[m.WorkbookEditablePermission,m.WorkbookDeleteSheetPermission]);return{id:Xi.id,type:T.MenuItemType.BUTTON,positions:[le.SHEET_BAR],title:"sheetConfig.delete",disabled$:A.combineLatest([t,i]).pipe(A.map(([r,s])=>r||s)),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function uS(n){return{id:m.CopySheetCommand.id,type:T.MenuItemType.BUTTON,positions:[le.SHEET_BAR],title:"sheetConfig.copy",disabled$:Ht(n,[m.WorkbookEditablePermission,m.WorkbookCreateSheetPermission]),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function hS(n){return{id:Zi.id,type:T.MenuItemType.BUTTON,positions:[le.SHEET_BAR],title:"sheetConfig.rename",disabled$:Ht(n,[m.WorkbookEditablePermission,m.WorkbookRenameSheetPermission]),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function mS(n){return{id:m.SetTabColorCommand.id,title:"sheetConfig.changeColor",positions:[le.SHEET_BAR],type:T.MenuItemType.SELECTOR,selections:[{label:{name:wn,hoverable:!1}}],hidden$:Ht(n,[m.WorkbookEditablePermission])}}function fS(n){const o=n.get(l.IUniverInstanceService),e=n.get(l.ICommandService);return{id:m.SetWorksheetHideCommand.id,type:T.MenuItemType.BUTTON,positions:[le.SHEET_BAR],title:"sheetConfig.hide",disabled$:new A.Observable(t=>{const i=e.onCommandExecuted(r=>{const s=r.id;(s===m.RemoveSheetMutation.id||s===m.InsertSheetMutation.id||s===m.SetWorksheetHideMutation.id)&&So(o,t)});return So(o,t),i.dispose}).pipe(A.combineLatestWith(Ht(n,[m.WorkbookEditablePermission,m.WorkbookHideSheetPermission])),A.map(([t,i])=>t||i)),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function SS(n){const o=n.get(l.IUniverInstanceService),e=n.get(l.ICommandService);return{id:zi.id,type:T.MenuItemType.BUTTON,positions:[le.SHEET_BAR],title:"sheetConfig.unhide",disabled$:new A.Observable(t=>{function i(){const s=o.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getWorksheets(),a=Array.from(s.values());t.next(a.length===1)}const r=e.onCommandExecuted(s=>{const a=s.id;(a===m.RemoveSheetMutation.id||a===m.InsertSheetMutation.id||a===m.SetWorksheetHideMutation.id)&&i()});return i(),r.dispose}).pipe(A.combineLatestWith(Ht(n,[m.WorkbookEditablePermission,m.WorkbookHideSheetPermission])),A.map(([t,i])=>t||i)),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function So(n,o){const e=n.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getWorksheets(),t=Array.from(e.values()).filter(i=>i.getConfig().hidden===l.BooleanNumber.FALSE);o.next(t.length===1)}const Jl={id:m.SetRowHiddenCommand.id,preconditions:n=>re(n),binding:T.KeyCode.Digit9|T.MetaKeys.CTRL_COMMAND},$l={id:m.SetColHiddenCommand.id,preconditions:n=>re(n),binding:T.KeyCode.Digit0|T.MetaKeys.CTRL_COMMAND|T.MetaKeys.SHIFT},ea={id:Ee.id,description:"shortcut.sheet.select-below-cell",group:"3_sheet-view",binding:T.KeyCode.ARROW_DOWN,priority:100,preconditions:re,staticParameters:{direction:l.Direction.DOWN}},ta={id:Ee.id,description:"shortcut.sheet.select-up-cell",group:"3_sheet-view",binding:T.KeyCode.ARROW_UP,priority:100,preconditions:re,staticParameters:{direction:l.Direction.UP}},na={id:Ee.id,description:"shortcut.sheet.select-left-cell",group:"3_sheet-view",binding:T.KeyCode.ARROW_LEFT,priority:100,preconditions:Ns,staticParameters:{direction:l.Direction.LEFT}},ia={id:Ee.id,description:"shortcut.sheet.select-right-cell",group:"3_sheet-view",binding:T.KeyCode.ARROW_RIGHT,priority:100,preconditions:Ns,staticParameters:{direction:l.Direction.RIGHT}},oa={id:Be.id,description:"shortcut.sheet.select-next-cell",group:"3_sheet-view",binding:T.KeyCode.TAB,priority:100,preconditions:re,staticParameters:{direction:l.Direction.RIGHT,keycode:T.KeyCode.TAB}},ra={id:Be.id,description:"shortcut.sheet.select-previous-cell",group:"3_sheet-view",binding:T.KeyCode.TAB|T.MetaKeys.SHIFT,priority:100,preconditions:re,staticParameters:{direction:l.Direction.LEFT,keycode:T.KeyCode.TAB}},sa={id:Be.id,description:"shortcut.sheet.select-below-cell",group:"3_sheet-view",binding:T.KeyCode.ENTER,priority:100,preconditions:re,staticParameters:{direction:l.Direction.DOWN,keycode:T.KeyCode.ENTER}},la={id:Be.id,description:"shortcut.sheet.select-up-cell",group:"3_sheet-view",binding:T.KeyCode.ENTER|T.MetaKeys.SHIFT,priority:100,preconditions:re,staticParameters:{direction:l.Direction.UP,keycode:T.KeyCode.ENTER}},aa={id:Ee.id,description:"shortcut.sheet.select-below-value-cell",group:"3_sheet-view",binding:T.KeyCode.ARROW_DOWN|T.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{direction:l.Direction.DOWN,jumpOver:Ue.moveGap}},ca={id:Ee.id,description:"shortcut.sheet.select-up-value-cell",group:"3_sheet-view",binding:T.KeyCode.ARROW_UP|T.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{direction:l.Direction.UP,jumpOver:Ue.moveGap}},da={id:Ee.id,description:"shortcut.sheet.select-left-value-cell",group:"3_sheet-view",binding:T.KeyCode.ARROW_LEFT|T.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{direction:l.Direction.LEFT,jumpOver:Ue.moveGap}},ua={id:Ee.id,description:"shortcut.sheet.select-right-value-cell",group:"3_sheet-view",binding:T.KeyCode.ARROW_RIGHT|T.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{direction:l.Direction.RIGHT,jumpOver:Ue.moveGap}},ha={id:ye.id,description:"shortcut.sheet.expand-selection-down",group:"3_sheet-view",binding:T.KeyCode.ARROW_DOWN|T.MetaKeys.SHIFT,preconditions:re,staticParameters:{direction:l.Direction.DOWN}},ma={id:ye.id,description:"shortcut.sheet.expand-selection-up",group:"3_sheet-view",binding:T.KeyCode.ARROW_UP|T.MetaKeys.SHIFT,preconditions:re,staticParameters:{direction:l.Direction.UP}},fa={id:ye.id,description:"shortcut.sheet.expand-selection-left",group:"3_sheet-view",binding:T.KeyCode.ARROW_LEFT|T.MetaKeys.SHIFT,preconditions:re,staticParameters:{direction:l.Direction.LEFT}},Sa={id:ye.id,description:"shortcut.sheet.expand-selection-right",group:"3_sheet-view",binding:T.KeyCode.ARROW_RIGHT|T.MetaKeys.SHIFT,preconditions:re,staticParameters:{direction:l.Direction.RIGHT}},ga={id:ye.id,description:"shortcut.sheet.expand-selection-to-below-gap",group:"3_sheet-view",binding:T.KeyCode.ARROW_DOWN|T.MetaKeys.SHIFT|T.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{direction:l.Direction.DOWN,jumpOver:Ue.moveGap}},pa={id:ye.id,description:"shortcut.sheet.expand-selection-to-up-gap",group:"3_sheet-view",binding:T.KeyCode.ARROW_UP|T.MetaKeys.SHIFT|T.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{direction:l.Direction.UP,jumpOver:Ue.moveGap}},va={id:ye.id,description:"shortcut.sheet.expand-selection-to-left-gap",group:"3_sheet-view",binding:T.KeyCode.ARROW_LEFT|T.MetaKeys.SHIFT|T.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{direction:l.Direction.LEFT,jumpOver:Ue.moveGap}},Ca={id:ye.id,description:"shortcut.sheet.expand-selection-to-right-gap",group:"3_sheet-view",binding:T.KeyCode.ARROW_RIGHT|T.MetaKeys.SHIFT|T.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{direction:l.Direction.RIGHT,jumpOver:Ue.moveGap}},_a={id:ci.id,description:"shortcut.sheet.select-all",group:"3_sheet-view",binding:T.KeyCode.A|T.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{expandToGapFirst:!0,loop:!0}},Ia={id:Zt.id,description:"shortcut.sheet.set-bold",group:"4_sheet-edit",preconditions:n=>re(n),binding:T.KeyCode.B|T.MetaKeys.CTRL_COMMAND},ba={id:Gt.id,description:"shortcut.sheet.set-italic",group:"4_sheet-edit",preconditions:n=>re(n),binding:T.KeyCode.I|T.MetaKeys.CTRL_COMMAND},Ra={id:Kt.id,description:"shortcut.sheet.set-underline",group:"4_sheet-edit",preconditions:n=>re(n),binding:T.KeyCode.U|T.MetaKeys.CTRL_COMMAND},Ta={id:qt.id,description:"shortcut.sheet.set-strike-through",group:"4_sheet-edit",preconditions:n=>re(n),binding:T.KeyCode.X|T.MetaKeys.SHIFT|T.MetaKeys.CTRL_COMMAND},Ea={id:m.ClearSelectionContentCommand.id,preconditions:n=>re(n),binding:T.KeyCode.DELETE,mac:T.KeyCode.BACKSPACE},Pa={id:jt.id,description:"shortcut.sheet.zoom-in",binding:T.KeyCode.EQUAL|T.MetaKeys.CTRL_COMMAND,group:"3_sheet-view",preconditions:re,priority:1,staticParameters:{delta:.2}},wa={id:l.NilCommand.id,binding:T.KeyCode.EQUAL|T.MetaKeys.CTRL_COMMAND},ya={id:jt.id,description:"shortcut.sheet.zoom-out",binding:T.KeyCode.MINUS|T.MetaKeys.CTRL_COMMAND,group:"3_sheet-view",preconditions:re,priority:1,staticParameters:{delta:-.2}},Ma={id:l.NilCommand.id,binding:T.KeyCode.MINUS|T.MetaKeys.CTRL_COMMAND},Oa={id:jt.id,description:"shortcut.sheet.reset-zoom",binding:T.KeyCode.Digit0|T.MetaKeys.CTRL_COMMAND,preconditions:re,group:"3_sheet-view",priority:1,staticParameters:{reset:!0}},Aa={id:l.NilCommand.id,binding:T.KeyCode.Digit0|T.MetaKeys.CTRL_COMMAND};function gS(n){const o=n.get(m.BorderStyleManagerService),e=ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]});return{id:m.SetBorderBasicCommand.id,icon:new A.Observable(t=>{const i="AllBorderSingle",r=n.get(m.BorderStyleManagerService),s=n.get(l.ICommandService).onCommandExecuted(a=>{var f;if(a.id!==m.SetBorderBasicCommand.id)return;const{type:d}=r.getBorderInfo(),u=Ll.find(S=>S.value===d),h=(f=u==null?void 0:u.icon)!=null?f:i;t.next(h)});return t.next(i),s.dispose}),group:T.MenuGroup.TOOLBAR_FORMAT,tooltip:"toolbar.border.main",positions:[T.MenuPosition.TOOLBAR_START],type:T.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:Nr,hoverable:!1},value$:o.borderInfo$}],value$:o.borderInfo$,hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET),disabled$:e}}function pS(n){const o=ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),e=Ju(n);return{id:Le.id,icon:"MergeAllSingle",tooltip:"toolbar.mergeCell.main",positions:[T.MenuPosition.TOOLBAR_START],group:T.MenuGroup.TOOLBAR_LAYOUT,type:T.MenuItemType.SUBITEMS,hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET),disabled$:o.pipe(A.combineLatestWith(e),A.map(([t,i])=>t||i))}}function vS(n){return{id:Wi.id,type:T.MenuItemType.BUTTON,title:"merge.all",icon:"MergeAllSingle",positions:[Le.id],hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function CS(n){return{id:xi.id,type:T.MenuItemType.BUTTON,title:"merge.vertical",icon:"VerticalIntegrationSingle",positions:[Le.id],hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function _S(n){return{id:Ui.id,type:T.MenuItemType.BUTTON,title:"merge.horizontal",icon:"HorizontalMergeSingle",positions:[Le.id],hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function IS(n){return{id:m.RemoveWorksheetMergeCommand.id,type:T.MenuItemType.BUTTON,title:"merge.cancel",icon:"CancelMergeSingle",positions:[Le.id],hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function bS(n){const e=n.get(l.IUniverInstanceService).getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),t=n.get(l.UserManagerService);return A.combineLatest([e,t.currentUser$]).pipe(A.switchMap(([i,r])=>i?i.activeSheet$.pipe(A.switchMap(s=>{if(!s)return A.of(!0);const a=n.get(m.RangeProtectionRuleModel),c=n.get(m.WorksheetProtectionRuleModel),d=n.get(m.SheetsSelectionsService);return A.merge(d.selectionMoveEnd$,a.ruleChange$,c.ruleChange$).pipe(A.map(()=>{const u=i.getUnitId(),h=s.getSheetId(),f=a.getSubunitRuleList(u,h),S=d.getCurrentSelections(),g=S==null?void 0:S.map(C=>C.range),p=f.map(C=>C.ranges).flat();if(!g)return!1;const v=c.getRule(u,h);return v!=null&&v.permissionId&&(v!=null&&v.name)?!0:g==null?void 0:g.some(C=>p.some(I=>l.Rectangle.intersects(C,I)))}))})):A.of(!0)))}function RS(n){const o=n.get(l.IUniverInstanceService),e=n.get(m.RangeProtectionRuleModel),t=o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),i=n.get(l.UserManagerService);return A.combineLatest([t,i.currentUser$]).pipe(A.switchMap(([r,s])=>r?r.activeSheet$.pipe(A.switchMap(a=>{if(!a)return A.of(!0);const c=n.get(m.RangeProtectionRuleModel),d=n.get(m.WorksheetProtectionRuleModel),u=n.get(m.SheetsSelectionsService);return A.merge(u.selectionMoveEnd$,c.ruleChange$,d.ruleChange$).pipe(A.map(()=>{var b;const h=r.getUnitId(),f=a.getSheetId(),S=e.getSubunitRuleList(h,f),g=(b=u.getCurrentSelections())==null?void 0:b.map(R=>R.range),p=S.map(R=>R.ranges).flat();if(!(g!=null&&g.length)||g.length>1)return!0;const v=g[0],C=d.getRule(h,f);return C!=null&&C.permissionId&&(C!=null&&C.name)?!1:p.filter(R=>l.Rectangle.intersects(R,v)).length!==1}))})):A.of(!0)))}function TS(n){const o=n.get(l.IUniverInstanceService),e=n.get(l.IPermissionService),t=o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),i=n.get(l.UserManagerService);return A.combineLatest([t,i.currentUser$]).pipe(A.switchMap(([r,s])=>r?r.activeSheet$.pipe(A.switchMap(a=>{var g;if(!a)return A.of(!0);const c=r.getUnitId(),d=n.get(m.SheetsSelectionsService),u=n.get(m.RangeProtectionRuleModel),h=n.get(m.WorksheetProtectionRuleModel),f=(g=e.composePermission$([new m.WorkbookManageCollaboratorPermission(c).id,new m.WorkbookEditablePermission(c).id]).pipe(A.map(p=>p.every(v=>v.value))))!=null?g:A.of(!1),S=A.merge(u.ruleChange$,h.ruleChange$).pipe(A.startWith(null));return A.combineLatest([f,S,d.selectionMoveEnd$]).pipe(A.map(([p,v,C])=>{if(!p)return!0;const I=d.getCurrentSelections(),b=I==null?void 0:I.map(R=>R.range);return b!=null&&b.length?b.length>1:!1}))})):A.of(!0)))}function Na(n){const o=n.get(l.IUniverInstanceService),e=n.get(l.IPermissionService),t=o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),i=n.get(l.UserManagerService);return A.combineLatest([t,i.currentUser$]).pipe(A.switchMap(([r,s])=>r?r.activeSheet$.pipe(A.switchMap(a=>{var C;if(!a)return A.of(!0);const d=n.get(l.IContextService).subscribeContextValue$(l.FOCUSING_COMMON_DRAWINGS).pipe(A.startWith(!1)),u=r.getUnitId(),h=a.getSheetId(),f=n.get(m.RangeProtectionRuleModel),S=n.get(m.WorksheetProtectionRuleModel),g=n.get(m.SheetsSelectionsService),p=(C=e.composePermission$([new m.WorkbookManageCollaboratorPermission(u).id,new m.WorkbookEditablePermission(u).id]).pipe(A.map(I=>I.every(b=>b.value))))!=null?C:A.of(!1),v=A.merge(f.ruleChange$,S.ruleChange$).pipe(A.startWith(null));return A.combineLatest([p,v,g.selectionMoveEnd$,d]).pipe(A.map(([I,b,R,P])=>{if(!I||P)return!0;const y=g.getCurrentSelections(),O=y==null?void 0:y.map(H=>H.range);if(!(O!=null&&O.length))return!0;const N=S.getRule(u,h);if(N!=null&&N.permissionId&&(N!=null&&N.name))return!0;const D=f.getSubunitRuleList(u,h);return O==null?void 0:O.some(H=>D.some(V=>V.ranges.some(U=>l.Rectangle.intersects(H,U))))}))})):A.of(!0)))}function ES(n){const o=n.get(l.IUniverInstanceService),e=n.get(l.IPermissionService),t=o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),i=n.get(l.UserManagerService);return A.combineLatest([t,i.currentUser$]).pipe(A.switchMap(([r,s])=>r?r.activeSheet$.pipe(A.switchMap(a=>{var g;if(!a)return A.of(!0);const c=r.getUnitId(),d=a.getSheetId(),u=n.get(m.RangeProtectionRuleModel),h=n.get(m.WorksheetProtectionRuleModel),f=(g=e.composePermission$([new m.WorkbookManageCollaboratorPermission(c).id,new m.WorkbookEditablePermission(c).id]).pipe(A.map(p=>p.every(v=>v.value))))!=null?g:A.of(!1),S=A.merge(u.ruleChange$,h.ruleChange$).pipe(A.startWith(null));return A.combineLatest([f,S]).pipe(A.map(([p,v])=>{var b;if(!p)return!0;const C=h.getRule(c,d);return C!=null&&C.permissionId&&(C!=null&&C.name)?!0:((b=u.getSubunitRuleList(c,d))==null?void 0:b.filter(R=>(R==null?void 0:R.permissionId)&&(R==null?void 0:R.name))).length>0}))})):A.of(!0)))}function PS(n){const o=n.get(l.IUniverInstanceService),e=n.get(l.IPermissionService),t=o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),i=n.get(l.UserManagerService);return A.combineLatest([t,i.currentUser$]).pipe(A.switchMap(([r,s])=>r?r.activeSheet$.pipe(A.switchMap(a=>{var f;if(!a)return A.of(!0);const c=r.getUnitId(),d=a.getSheetId(),u=n.get(m.WorksheetProtectionRuleModel),h=(f=e.composePermission$([new m.WorkbookManageCollaboratorPermission(c).id,new m.WorkbookEditablePermission(c).id]).pipe(A.map(S=>S.every(g=>g.value))))!=null?f:A.of(!1);return A.combineLatest([h,u.ruleChange$.pipe(A.startWith(null))]).pipe(A.map(([S,g])=>{if(!S)return!0;const p=u.getRule(c,d);return!(p!=null&&p.permissionId&&(p!=null&&p.name))}))})):A.of(!0)))}function wS(n){const o=n.get(l.IUniverInstanceService),e=n.get(l.IPermissionService),t=o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),i=n.get(l.UserManagerService);return A.combineLatest([t,i.currentUser$]).pipe(A.switchMap(([r,s])=>r?r.activeSheet$.pipe(A.switchMap(a=>{var g;if(!a)return A.of(!0);const c=r.getUnitId(),d=n.get(m.RangeProtectionRuleModel),u=n.get(m.WorksheetProtectionRuleModel),h=(g=e.composePermission$([new m.WorkbookManageCollaboratorPermission(c).id,new m.WorkbookEditablePermission(c).id]).pipe(A.map(p=>p.every(v=>v.value))))!=null?g:A.of(!1),f=u.ruleChange$.pipe(A.startWith(null)),S=d.ruleChange$.pipe(A.startWith(null));return A.combineLatest([h,f,S]).pipe(A.map(([p,v,C])=>{if(!p)return!0;const I=a.getSheetId(),b=u.getRule(c,I),R=d.getSubunitRuleList(c,I);return!(b||R.length)}))})):A.of(!0)))}function yS(n){const o=n.get(l.IUniverInstanceService),e=n.get(l.IPermissionService),t=o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),i=n.get(l.UserManagerService);return A.combineLatest([t,i.currentUser$]).pipe(A.switchMap(([r,s])=>r?r.activeSheet$.pipe(A.switchMap(a=>{var g;if(!a)return A.of(!0);const c=r.getUnitId(),d=a.getSheetId(),u=n.get(m.RangeProtectionRuleModel),h=n.get(m.WorksheetProtectionRuleModel),f=(g=e.composePermission$([new m.WorkbookManageCollaboratorPermission(c).id,new m.WorkbookEditablePermission(c).id]).pipe(A.map(p=>p.every(v=>v.value))))!=null?g:A.of(!1),S=A.merge(u.ruleChange$,h.ruleChange$).pipe(A.startWith(null));return A.combineLatest([S,f]).pipe(A.map(([p,v])=>{if(!v)return!0;const C=n.get(m.SheetsSelectionsService).getCurrentSelections(),I=C==null?void 0:C.map(O=>O.range);if(!(I!=null&&I.length)||I.length>1)return!0;const b=I[0],R=h.getRule(c,d);return!(R!=null&&R.permissionId&&(R!=null&&R.name)||u.getSubunitRuleList(c,d).map(O=>O.ranges).flat().some(O=>l.Rectangle.intersects(b,O)))}))})):A.of(!0)))}function Da(n){const o=n.get(l.IUniverInstanceService),e=n.get(l.IPermissionService),t=o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),i=n.get(l.UserManagerService);return A.combineLatest([t,i.currentUser$]).pipe(A.switchMap(([r,s])=>r?r.activeSheet$.pipe(A.switchMap(a=>{var u,h;if(!a)return A.of(!0);const c=r.getUnitId();return((h=(u=e.getPermissionPoint$(new m.WorkbookEditablePermission(c).id))==null?void 0:u.pipe(A.map(f=>!!f.value)))!=null?h:A.of(!1)).pipe(A.map(f=>!f))})):A.of(!0)))}const zn="sheet.contextMenu.permission";function MS(n){return{id:ro.id,type:T.MenuItemType.BUTTON,positions:[T.MenuPosition.TOOLBAR_START],group:T.MenuGroup.TOOLBAR_OTHERS,icon:Kl,tooltip:"permission.toolbarMenu",hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET),disabled$:Na(n)}}function OS(n){return{id:zn,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.SUBITEMS,title:"rightClick.protectRange",icon:ql,positions:[T.MenuPosition.CONTEXT_MENU,le.ROW_HEADER_CONTEXT_MENU,le.COL_HEADER_CONTEXT_MENU],hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function AS(n){return{id:so.id,type:T.MenuItemType.BUTTON,title:"rightClick.turnOnProtectRange",positions:[zn],hidden$:bS(n),disabled$:Na(n)}}function NS(n){return{id:ho.id,type:T.MenuItemType.BUTTON,title:"rightClick.editProtectRange",positions:[zn],hidden$:RS(n),disabled$:TS(n)}}function DS(n){return{id:uo.id,type:T.MenuItemType.BUTTON,title:"rightClick.removeProtectRange",positions:[zn],disabled$:yS(n),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function kS(n){return{id:lo.id,type:T.MenuItemType.BUTTON,title:"rightClick.viewAllProtectArea",positions:[zn],disabled$:Da(n),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function HS(n){return{id:ao.id,type:T.MenuItemType.BUTTON,positions:[le.SHEET_BAR],title:"sheetConfig.addProtectSheet",disabled$:ES(n),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function VS(n){return{id:io.id,type:T.MenuItemType.BUTTON,positions:[le.SHEET_BAR],title:"sheetConfig.removeProtectSheet",disabled$:PS(n),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function LS(n){return{id:oo.id,type:T.MenuItemType.BUTTON,positions:[le.SHEET_BAR],title:"sheetConfig.changeSheetPermission",disabled$:wS(n),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}function WS(n){return{id:co.id,type:T.MenuItemType.BUTTON,positions:[le.SHEET_BAR],title:"sheetConfig.viewAllProtectArea",disabled$:Da(n),hidden$:T.getMenuHiddenObservable(n,l.UniverInstanceType.UNIVER_SHEET)}}var xS=Object.defineProperty,US=Object.getOwnPropertyDescriptor,BS=(n,o,e,t)=>{for(var i=t>1?void 0:t?US(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&xS(o,e,i),i},wt=(n,o)=>(e,t)=>o(e,t,n);const ka={};let Yn=class extends l.Disposable{constructor(n,o,e,t,i,r,s,a){super(),this._config=n,this._injector=o,this._componentManager=e,this._layoutService=t,this._commandService=i,this._shortcutService=r,this._menuService=s,this._uiPartsService=a,this._init()}_init(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts(),this._initWorkbenchParts(),this._initFocusHandler()}_initCustomComponents(){const n=this._componentManager;this.disposeWithMe(n.register(Oi,zs)),this.disposeWithMe(n.register(Nr,Wl)),this.disposeWithMe(n.register(wn,$.ColorPicker)),this.disposeWithMe(n.register(or,T.FontFamily)),this.disposeWithMe(n.register(rr,T.FontFamilyItem)),this.disposeWithMe(n.register(sr,T.FontSize)),this.disposeWithMe(n.register(Dr,zl))}_initCommands(){[Wi,Le,Ui,xi,jt,ye,Ee,Be,Zi,Xi,Fi,ji,Ii,bi,xe,Po,ci,Yi,m.SetBoldCommand,Ft,Pe,In,Zt,Gt,Kt,qt,nr,ir,Ri,Ti,Qt,m.SetItalicCommand,m.SetStrikeThroughCommand,m.SetFontFamilyCommand,m.SetFontSizeCommand,Tn,Pi,En,Pn,Qe,ot,$t,wi,yi,Ql,Mi,m.SetUnderlineCommand,Xt,Ye,zi,Bi,on,nn,Wn,Ln,qi,gt,Ut,Ge,Wr,ro,so,lo,ao,co,oo,uo,ho,Fn,Pt,xr,io,mo].forEach(n=>{this.disposeWithMe(this._commandService.registerCommand(n))})}_initMenus(){const{menu:n={}}=this._config;[qs,Du,ku,Hu,Vu,Lu,Wu,Zf,Gf,Kf,Yf,tS,nS,iS,oS,rS,sS,lS,Jf,Yu,Gu,Zu,Ku,Qf,qu,xu,Qu,qf,$f,eS,aS,cS,Fu,ju,Xu,zu,Uu,Bu,vu,Cu,_u,Iu,bu,Ru,Tu,Eu,Pu,wu,yu,gS,pS,vS,CS,_S,IS,Mu,Ou,Au,Nu,dS,uS,hS,mS,fS,SS,OS,AS,NS,DS,kS,HS,VS,LS,WS,MS].forEach(o=>{this.disposeWithMe(this._menuService.addMenuItem(this._injector.invoke(o),n))})}_initShortcuts(){[ea,ta,na,ia,oa,ra,sa,la,aa,ca,da,ua,ha,ma,fa,Sa,ga,pa,va,Ca,_a,Pa,ya,Oa,Aa,wa,Ma,Ia,ba,Ra,Ta,Ea,...rl(),ll,sl,al,dl,ul,hl,cl,Jl,$l].forEach(n=>{this.disposeWithMe(this._shortcutService.registerShortcut(n))})}_initWorkbenchParts(){const n=this._uiPartsService,o=this._injector;this.disposeWithMe(n.registerComponent(T.BuiltInUIPart.HEADER,()=>l.connectInjector(kf,o))),this.disposeWithMe(n.registerComponent(T.BuiltInUIPart.FOOTER,()=>l.connectInjector(Df,o))),this.disposeWithMe(n.registerComponent(T.BuiltInUIPart.CONTENT,()=>l.connectInjector(Hf,o)))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(l.UniverInstanceType.UNIVER_SHEET,n=>{this._injector.get(w.ITextSelectionRenderManager).focus()}))}};Yn=BS([l.OnLifecycle(l.LifecycleStages.Ready,Yn),wt(1,l.Inject(l.Injector)),wt(2,l.Inject(T.ComponentManager)),wt(3,T.ILayoutService),wt(4,l.ICommandService),wt(5,T.IShortcutService),wt(6,T.IMenuService),wt(7,T.IUIPartsService)],Yn);var FS=Object.defineProperty,jS=Object.getOwnPropertyDescriptor,XS=(n,o,e,t)=>{for(var i=t>1?void 0:t?jS(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&FS(o,e,i),i},yt=(n,o)=>(e,t)=>o(e,t,n);const Ha=l.createInterceptorKey("statusBarPermissionCorrect");M.StatusBarController=class extends l.Disposable{constructor(e,t,i,r,s,a,c){super();E(this,"_calculateTimeout",-1);E(this,"interceptor",new l.InterceptorManager({STATUS_BAR_PERMISSION_CORRECT:Ha}));this._univerInstanceService=e,this._selectionManagerService=t,this._functionService=i,this._statusBarService=r,this._commandService=s,this._formulaDataModel=a,this._numfmtService=c,this._init()}_init(){this._registerSelectionListener()}_registerSelectionListener(){const e=l.debounce(t=>{var r;const i=(r=t[t.length-1])==null?void 0:r.primary;this._calculateSelection(t.map(s=>s.range),i)},100);this.disposeWithMe(l.toDisposable(this._selectionManagerService.selectionMoving$.subscribe(t=>{t&&e(t)}))),this.disposeWithMe(l.toDisposable(this._selectionManagerService.selectionMoveEnd$.subscribe(t=>{t&&e(t)}))),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===m.SetRangeValuesMutation.id){const i=this._selectionManagerService.getCurrentSelections();i&&e(i)}}))}_clearResult(){this._statusBarService.setState(null)}_calculateSelection(e,t){var d,u;const i=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!i)return this._clearResult();const r=i.getUnitId(),s=(d=i.getActiveSheet())==null?void 0:d.getSheetId();if(!s)return this._clearResult();const a={},c=this._formulaDataModel.getArrayFormulaCellData();if(this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getSheets().forEach(h=>{const f=h.getConfig();a[h.getSheetId()]={cellData:new l.ObjectMatrix(f.cellData),rowCount:f.rowCount,columnCount:f.columnCount,rowData:f.rowData,columnData:f.columnData}}),e!=null&&e.length){const h=e.map(b=>new q.RangeReferenceObject(b,s,r));h.forEach(b=>{b.setUnitData({[r]:a}),c&&b.setArrayFormulaCellData(q.convertUnitDataToRuntime(c))});const f=this._statusBarService.getFunctions();let S=h.map(b=>b.toArrayValueObject(!1));const g=this.interceptor.fetchThroughInterceptors(Ha)(S,S);g&&(S=g);const p=f.map(b=>{const R=this._functionService.getExecutor(b.func);if(!R)return;const P=R==null?void 0:R.calculate(...S),y=P==null?void 0:P.getValue();if(y)return{func:b.func,value:y}});if(p.every(b=>b===void 0))return;let v=null;if(t){const{actualRow:b,actualColumn:R}=t;v=(u=this._numfmtService.getValue(r,s,b,R))==null?void 0:u.pattern}const I={values:p.filter(b=>b!==void 0),pattern:v};this._statusBarService.setState(I)}else this._clearResult()}},M.StatusBarController=XS([l.OnLifecycle(l.LifecycleStages.Ready,M.StatusBarController),yt(0,l.IUniverInstanceService),yt(1,l.Inject(m.SheetsSelectionsService)),yt(2,q.IFunctionService),yt(3,$i),yt(4,l.ICommandService),yt(5,l.Inject(q.FormulaDataModel)),yt(6,l.Inject(m.INumfmtService))],M.StatusBarController);var zS=Object.defineProperty,YS=Object.getOwnPropertyDescriptor,ZS=(n,o,e,t)=>{for(var i=t>1?void 0:t?YS(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&zS(o,e,i),i},Fr=(n,o)=>(e,t)=>o(e,t,n);M.SheetRenderController=class extends l.RxDisposable{constructor(o,e,t,i){super(),this._context=o,this._sheetSkeletonManagerService=e,this._sheetRenderService=t,this._commandService=i,this._addNewRender()}_addNewRender(){const{scene:o,engine:e,unit:t}=this._context;o.addLayer(new w.Layer(o,[],0),new w.Layer(o,[],2)),this._addComponent(t),this._initRerenderScheduler(),this._initCommandListener();const i=this._context.unit.getActiveSheet();if(!i)throw new Error("No active sheet found");const r=i.getSheetId();this._sheetSkeletonManagerService.setCurrent({sheetId:r}),t.getShouldRenderLoopImmediately()&&e.runRenderLoop(()=>o.render())}_addComponent(o){const{scene:e,components:t}=this._context,i=o.getActiveSheet();if(!i)throw new Error("No active sheet found");const r=new w.Spreadsheet(de.MAIN);this._addViewport(i);const s=new w.SpreadsheetRowHeader(de.ROW),a=new w.SpreadsheetColumnHeader(de.COLUMN),c=new w.Rect(de.LEFT_TOP,{zIndex:2,left:-1,top:-1,fill:"rgb(248, 249, 250)",stroke:"rgb(217, 217, 217)",strokeWidth:1});this._context.mainComponent=r,t.set(de.MAIN,r),t.set(de.ROW,s),t.set(de.COLUMN,a),t.set(de.LEFT_TOP,c),e.addObjects([r],gs),e.addObjects([s,a,c],st),e.enableLayerCache(gs,st)}_initViewports(o,e,t){const s=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN,o,{left:e.width,top:t.height,bottom:0,right:0,isWheelPreventDefaultX:!0,isRelativeX:!0,isRelativeY:!0,allowCache:!0,bufferEdgeX:100,bufferEdgeY:100}),a=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP,o,{isWheelPreventDefaultX:!0,active:!1,isRelativeX:!1,isRelativeY:!1,allowCache:!0,bufferEdgeX:0,bufferEdgeY:0}),c=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT,o,{isWheelPreventDefaultX:!0,active:!1,isRelativeX:!1,isRelativeY:!0,allowCache:!0,bufferEdgeX:0,bufferEdgeY:100}),d=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP,o,{isWheelPreventDefaultX:!0,active:!1,isRelativeX:!0,isRelativeY:!1,allowCache:!0,bufferEdgeX:100,bufferEdgeY:0}),u=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP,o,{active:!1,isWheelPreventDefaultX:!0,isRelativeX:!1,isRelativeY:!1}),h=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM,o,{left:0,top:t.height,bottom:0,width:e.width,isWheelPreventDefaultX:!0,isRelativeX:!1,isRelativeY:!0}),f=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT,o,{active:!1,isWheelPreventDefaultX:!0,isRelativeX:!1,isRelativeY:!1}),S=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT,o,{left:e.width,top:0,height:t.height,right:0,isWheelPreventDefaultX:!0,isRelativeX:!0,isRelativeY:!1}),g=new w.Viewport(w.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP,o,{left:0,top:0,width:e.width,height:t.height,isWheelPreventDefaultX:!0,isRelativeX:!1,isRelativeY:!1});return{viewMain:s,viewLeftTop:g,viewMainLeftTop:a,viewMainLeft:c,viewMainTop:d,viewColumnLeft:f,viewRowTop:u,viewRowBottom:h,viewColumnRight:S}}_addViewport(o){const e=this._context.scene;if(e==null)return;const{rowHeader:t,columnHeader:i}=o.getConfig(),{viewMain:r}=this._initViewports(e,t,i);return this._initMouseWheel(e,r),new w.ScrollBar(r),e.attachControl(),r}_initRerenderScheduler(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(o=>{if(!o)return null;const{skeleton:e,sheetId:t}=o,i=this._context.unit,r=i==null?void 0:i.getSheetBySheetId(t);if(i==null||r==null)return;const{mainComponent:s,components:a}=this._context,c=s,d=a.get(de.ROW),u=a.get(de.COLUMN),h=a.get(de.LEFT_TOP),{rowHeaderWidth:f,columnHeaderHeight:S}=e;c==null||c.updateSkeleton(e),d==null||d.updateSkeleton(e),u==null||u.updateSkeleton(e),h==null||h.transformByState({width:f,height:S})}))}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{const{unit:e,unitId:t}=this._context,{id:i}=o;if(m.COMMAND_LISTENER_SKELETON_CHANGE.includes(i)||this._sheetRenderService.checkMutationShouldTriggerRerender(i)){const r=e.getActiveSheet();if(!r)return;const s=this._context.unitId,a=r.getSheetId(),c=o.params,{unitId:d,subUnitId:u}=c;if(d!==s||u!==a)return;i!==m.SetWorksheetActiveOperation.id&&this._sheetSkeletonManagerService.makeDirty({sheetId:a,commandId:i},!0),this._sheetSkeletonManagerService.setCurrent({sheetId:a,commandId:i})}else m.COMMAND_LISTENER_VALUE_CHANGE.includes(i)&&this._sheetSkeletonManagerService.reCalculate();o.type===l.CommandType.MUTATION&&this._markUnitDirty(t,o)}))}_markUnitDirty(o,e){const{mainComponent:t,scene:i}=this._context;if(t&&t.makeDirty(),i.makeDirty(),!e.params)return;const r=e.params,s=this._spreadsheetViewports(i);if(e.id===m.SetRangeValuesMutation.id&&r.cellValue){const a=this._cellValueToRange(r.cellValue),c=this._rangeToBounds([a]);this._markViewportDirty(s,c),t.setDirtyArea(c)}if(e.id===m.MoveRangeMutation.id&&r.from&&r.to){const a=this._cellValueToRange(r.from.value),c=this._cellValueToRange(r.to.value),d=this._rangeToBounds([a,c]);this._markViewportDirty(s,d),t.setDirtyArea(d)}}_cellValueToRange(o){const e=Object.keys(o).map(Number),t=[];for(const[c,d]of Object.entries(o))for(const u in d)t.push(Number(u));const i=Math.min(...e),r=Math.max(...e),s=Math.min(...t),a=Math.max(...t);return{startRow:i,endRow:r,startColumn:s,endColumn:a}}_rangeToBounds(o){const e=this._sheetSkeletonManagerService.getCurrent().skeleton,{rowHeightAccumulation:t,columnWidthAccumulation:i,rowHeaderWidth:r,columnHeaderHeight:s}=e,a=[];for(const c of o){const{startRow:d,endRow:u,startColumn:h,endColumn:f}=c,S=d===0?0:t[d-1]+s,g=t[u]+s,p=h===0?0:i[h-1]+r,v=i[f]+r;a.push({top:S,left:p,bottom:g,right:v,width:v-p,height:g-S})}return a}_markViewportDirty(o,e){const t=o.filter(i=>i.isActive&&i.cacheBound);for(const i of t)for(const r of e)l.Rectangle.hasIntersectionBetweenTwoRect(i.cacheBound,r)&&i.markDirty(!0)}_spreadsheetViewports(o){return o.getViewports().filter(e=>["viewMain","viewMainLeftTop","viewMainTop","viewMainLeft"].includes(e.viewportKey))}_initMouseWheel(o,e){this.disposeWithMe(o.onMouseWheel$.subscribeEvent((t,i)=>{if(t.ctrlKey)return;let r=0,s=0;const a=e.limitedScroll();if(t.inputIndex===w.PointerInput.MouseWheelX){const d=Math.abs(t.deltaX);t.deltaX>0?r=d:r=-d,this._commandService.executeCommand(ot.id,{offsetX:r}),o.getParent().classType===w.RENDER_CLASS_TYPE.SCENE_VIEWER?a!=null&&a.isLimitedX||i.stopPropagation():e.isWheelPreventDefaultX?t.preventDefault():a!=null&&a.isLimitedX||t.preventDefault()}if(t.inputIndex===w.PointerInput.MouseWheelY){let d=Math.abs(t.deltaY);t.shiftKey?(d*=3,t.deltaY>0?r=d:r=-d,this._commandService.executeCommand(ot.id,{offsetX:r}),o.getParent().classType===w.RENDER_CLASS_TYPE.SCENE_VIEWER?a!=null&&a.isLimitedX||i.stopPropagation():e.isWheelPreventDefaultX?t.preventDefault():a!=null&&a.isLimitedX||t.preventDefault()):(t.deltaY>0?s=d:s=-d,this._commandService.executeCommand(ot.id,{offsetY:s}),o.getParent().classType===w.RENDER_CLASS_TYPE.SCENE_VIEWER?a!=null&&a.isLimitedY||i.stopPropagation():e.isWheelPreventDefaultY?t.preventDefault():a!=null&&a.isLimitedY||t.preventDefault())}this._context.scene.makeDirty(!0)}))}},M.SheetRenderController=ZS([Fr(1,l.Inject(M.SheetSkeletonManagerService)),Fr(2,l.Inject(M.SheetsRenderService)),Fr(3,l.ICommandService)],M.SheetRenderController);var GS=Object.defineProperty,KS=Object.getOwnPropertyDescriptor,qS=(n,o,e,t)=>{for(var i=t>1?void 0:t?KS(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&GS(o,e,i),i},Va=(n,o)=>(e,t)=>o(e,t,n);M.HoverManagerService=class extends l.Disposable{constructor(e,t){super();E(this,"_currentCell$",new A.Subject);E(this,"currentCell$",this._currentCell$.asObservable().pipe(A.distinctUntilChanged((e,t)=>{var i,r,s,a,c,d,u,h;return((i=e==null?void 0:e.location)==null?void 0:i.unitId)===((r=t==null?void 0:t.location)==null?void 0:r.unitId)&&((s=e==null?void 0:e.location)==null?void 0:s.subUnitId)===((a=t==null?void 0:t.location)==null?void 0:a.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,"currentPosition$",this._currentCell$.asObservable());E(this,"_lastPosition",null);this._univerInstanceService=e,this._renderManagerService=t,this._initCellDisposableListener()}dispose(){super.dispose(),this._currentCell$.complete()}_initCellDisposableListener(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{e||this._currentCell$.next(null)}))}_calcActiveCell(){if(!this._lastPosition)return;const{offsetX:e,offsetY:t}=this._lastPosition,i=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!i){this._currentCell$.next(null);return}const r=i.getActiveSheet();if(!r){this._currentCell$.next(null);return}const s=this._renderManagerService.getRenderById(i.getUnitId()),a=s==null?void 0:s.with(M.SheetSkeletonManagerService).getWorksheetSkeleton(r.getSheetId()),c=s==null?void 0:s.with(be),d=c==null?void 0:c.getCurrentScrollState();if(!a||!d||!s)return;const u=El(s,i,r,a,e,t);if(!u){this._currentCell$.next(null);return}const{location:h,position:f}=u;this._currentCell$.next({location:h,position:f})}onMouseMove(e,t){this._lastPosition={offsetX:e,offsetY:t},this._calcActiveCell()}onScroll(){this._currentCell$.next(null)}},M.HoverManagerService=qS([Va(0,l.IUniverInstanceService),Va(1,w.IRenderManagerService)],M.HoverManagerService);var QS=Object.defineProperty,JS=Object.getOwnPropertyDescriptor,$S=(n,o,e,t)=>{for(var i=t>1?void 0:t?JS(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&QS(o,e,i),i},jr=(n,o)=>(e,t)=>o(e,t,n);M.HoverRenderController=class extends l.Disposable{constructor(o,e,t,i){super(),this._context=o,this._hoverManagerService=e,this._sheetSkeletonManagerService=t,this._scrollManagerService=i,this._initPointerEvent(),this._initScrollEvent()}_initPointerEvent(){const o=new l.DisposableCollection,e=t=>{if(o.dispose(),!t)return;const{mainComponent:i}=this._context,r=i==null?void 0:i.onPointerMove$.subscribeEvent(s=>{this._hoverManagerService.onMouseMove(s.offsetX,s.offsetY)});r&&o.add(r)};e(this._sheetSkeletonManagerService.getCurrent()),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(t=>{e(t)}))}_initScrollEvent(){this.disposeWithMe(this._scrollManagerService.validViewportScrollInfo$.subscribe(()=>this._hoverManagerService.onScroll()))}},M.HoverRenderController=$S([jr(1,l.Inject(M.HoverManagerService)),jr(2,l.Inject(M.SheetSkeletonManagerService)),jr(3,l.Inject(be))],M.HoverRenderController);const it={cellAlert:"univer-cell-alert",cellAlertTitle:"univer-cell-alert-title",cellAlertIcon:"univer-cell-alert-icon",cellAlertIconError:"univer-cell-alert-icon-error",cellAlertIconInfo:"univer-cell-alert-icon-info",cellAlertIconWarning:"univer-cell-alert-icon-warning",cellAlertContent:"univer-cell-alert-content"};function eg({popup:n}){var s;const o=(s=n.extraProps)==null?void 0:s.alert;if(!o)return null;const{type:e,title:t,message:i}=o,r={[cn.ERROR]:_.jsx(Pr,{className:he(it.cellAlertIcon,it.cellAlertIconError)}),[cn.INFO]:_.jsx(Or,{className:he(it.cellAlertIcon,it.cellAlertIconInfo)}),[cn.WARNING]:_.jsx(Or,{className:he(it.cellAlertIcon,it.cellAlertIconWarning)})};return _.jsxs("div",{className:it.cellAlert,children:[_.jsxs("div",{className:it.cellAlertTitle,children:[e?r[e]:null,t]}),_.jsx("div",{className:it.cellAlertContent,children:i})]})}const La="univer.sheet.cell-alert";var tg=Object.defineProperty,ng=Object.getOwnPropertyDescriptor,ig=(n,o,e,t)=>{for(var i=t>1?void 0:t?ng(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&tg(o,e,i),i},Zn=(n,o)=>(e,t)=>o(e,t,n);M.SheetCanvasPopManagerService=class extends l.Disposable{constructor(o,e,t,i,r){super(),this._globalPopupManagerService=o,this._renderManagerService=e,this._univerInstanceService=t,this._refRangeService=i,this._commandService=r}_createObjectPositionObserver(o,e,t,i){const r=()=>{const{scene:d}=e,{left:u,top:h,width:f,height:S}=o,g={left:u,right:u+f,top:h,bottom:h+S},p=Om(g,d,t,i);return{left:p.left,right:p.right,top:p.top,bottom:p.bottom}},s=r(),a=new A.BehaviorSubject(s),c=new l.DisposableCollection;return c.add(this._commandService.onCommandExecuted(d=>{(d.id===Qe.id||d.id===Ye.id)&&a.next(r())})),{position:s,position$:a,disposable:c}}attachPopupToObject(o,e){var S;const t=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),i=t.getActiveSheet();if(!i)return{dispose:()=>{}};const r=t.getUnitId(),s=i.getSheetId(),a=(S=this._renderManagerService.getRenderById(r))==null?void 0:S.with(M.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:s}),c=this._renderManagerService.getRenderById(r);if(!c||!a)return{dispose:()=>{}};const{position:d,position$:u,disposable:h}=this._createObjectPositionObserver(o,c,a,i),f=this._globalPopupManagerService.addPopup({...e,unitId:r,subUnitId:s,anchorRect:d,anchorRect$:u});return{dispose:()=>{this._globalPopupManagerService.removePopup(f),u.complete(),h.dispose()}}}attachPopupToCell(o,e,t,i,r=!1){const s=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),a=s.getActiveSheet();if(!a)return null;const c=s.getUnitId(),d=a.getSheetId(),u=this._renderManagerService.getRenderById(c),h=u==null?void 0:u.with(M.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:d}),f=u==null?void 0:u.with(pe);if(!u||!h||!f)return null;if(f.selectionMoving&&!r)return;const S=i!=null?i:Mm(o,e,u.scene,a);if(!S)return null;const{position:g,position$:p,disposable:v,updateRowCol:C}=this._createCellPositionObserver(o,e,u,h,S),I=this._globalPopupManagerService.addPopup({...t,unitId:c,subUnitId:d,anchorRect:g,anchorRect$:p}),b=new l.DisposableCollection;b.add(v),b.add(l.toDisposable(()=>{this._globalPopupManagerService.removePopup(I),p.complete()}));const R={startRow:o,endRow:o,startColumn:e,endColumn:e};return b.add(this._refRangeService.watchRange(c,d,R,(P,y)=>{y?C(y.startRow,y.startColumn):b.dispose()})),b}_createCellPositionObserver(o,e,t,i,r){let s=o,a=e;const c=this._calcCellPositionByCell(s,a,t,i,r),d=new A.BehaviorSubject(c),u=()=>d.next(this._calcCellPositionByCell(s,a,t,i,r)),h=new l.DisposableCollection;return h.add(t.engine.clientRect$.subscribe(()=>u())),h.add(this._commandService.onCommandExecuted(S=>{if(S.id===m.SetWorksheetRowAutoHeightMutation.id&&S.params.rowsAutoHeightInfo.findIndex(p=>p.row===s)>-1){u();return}(m.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(S.id)>-1||S.id===Qe.id||S.id===Ye.id)&&u()})),{position$:d,disposable:h,position:c,updateRowCol:(S,g)=>{s=S,a=g,u()}}}_calcCellPositionByCell(o,e,t,i,r){const{scene:s,engine:a}=t,c=i.getCellByIndex(o,e),d=c.isMergedMainCell?c.mergeInfo:c,{scaleX:u,scaleY:h}=s.getAncestorScale(),f={x:r.viewportScrollX,y:r.viewportScrollY},S=a.getCanvasElement().getBoundingClientRect(),{top:g,left:p}=S;return{left:(d.startX-f.x)*u+p,right:(d.endX-f.x)*u+p,top:(d.startY-f.y)*h+g,bottom:(d.endY-f.y)*h+g}}},M.SheetCanvasPopManagerService=ig([Zn(0,l.Inject(T.ICanvasPopupService)),Zn(1,w.IRenderManagerService),Zn(2,l.IUniverInstanceService),Zn(3,l.Inject(m.RefRangeService)),Zn(4,l.ICommandService)],M.SheetCanvasPopManagerService);var og=Object.defineProperty,rg=Object.getOwnPropertyDescriptor,sg=(n,o,e,t)=>{for(var i=t>1?void 0:t?rg(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&og(o,e,i),i},Wa=(n,o)=>(e,t)=>o(e,t,n),cn=(n=>(n[n.INFO=0]="INFO",n[n.WARNING=1]="WARNING",n[n.ERROR=2]="ERROR",n))(cn||{});M.CellAlertManagerService=class extends l.Disposable{constructor(e,t){super();E(this,"_currentAlert$",new A.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:i}=e,{row:r,col:s,unitId:a}=i;if(!this._renderManagerService.getRenderById(a))return;const d=this._canvasPopManagerService.attachPopupToCell(r,s,{componentKey:La,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()))}},M.CellAlertManagerService=sg([Wa(0,w.IRenderManagerService),Wa(1,l.Inject(M.SheetCanvasPopManagerService))],M.CellAlertManagerService);var lg=Object.defineProperty,ag=Object.getOwnPropertyDescriptor,cg=(n,o,e,t)=>{for(var i=t>1?void 0:t?ag(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&lg(o,e,i),i},dg=(n,o)=>(e,t)=>o(e,t,n);let Gn=class extends l.Disposable{constructor(n,o){super(),this._context=n,this._componentManager=o,this._initComponent()}_initComponent(){this._componentManager.register(La,eg)}};Gn=cg([l.OnLifecycle(l.LifecycleStages.Starting,Gn),dg(1,l.Inject(T.ComponentManager))],Gn);var ug=Object.defineProperty,hg=Object.getOwnPropertyDescriptor,mg=(n,o,e,t)=>{for(var i=t>1?void 0:t?hg(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&ug(o,e,i),i},xa=(n,o)=>(e,t)=>o(e,t,n);let Kn=class extends l.RxDisposable{constructor(n,o,e){super(),this._context=n,this._sheetSkeletonManagerService=o,this._sheetInterceptorService=e,this._init()}_init(){this._initViewModelIntercept()}_initViewModelIntercept(){const n={tl:{size:6,color:"#409f11"}};this.disposeWithMe(this._sheetInterceptorService.intercept(m.INTERCEPTOR_POINT.CELL_CONTENT,{priority:10,handler:(o,e,t)=>{var s;if(!((s=this._sheetSkeletonManagerService.getCurrent())==null?void 0:s.skeleton))return t(o);const r=e.worksheet.getCellRaw(e.row,e.col);return!r||r.v===null||r.v===void 0?t(o):(o==null?void 0:o.t)===l.CellValueType.FORCE_STRING&&l.isRealNum(r.v)?t({...o,markers:{...o==null?void 0:o.markers,...n}}):t(o)}}))}};Kn=mg([l.OnLifecycle(l.LifecycleStages.Rendered,Kn),xa(1,l.Inject(M.SheetSkeletonManagerService)),xa(2,l.Inject(m.SheetInterceptorService))],Kn);var fg=Object.defineProperty,Sg=Object.getOwnPropertyDescriptor,gg=(n,o,e,t)=>{for(var i=t>1?void 0:t?Sg(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&fg(o,e,i),i},Xr=(n,o)=>(e,t)=>o(e,t,n);const zr="SHEET_FORCE_STRING_ALERT";let qn=class extends l.Disposable{constructor(n,o,e,t){super(),this._context=n,this._hoverManagerService=o,this._cellAlertManagerService=e,this._localeService=t,this._init()}_init(){this._initCellAlertPopup()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.subscribe(n=>{var o;if(n){const t=this._context.unit.getActiveSheet();if(!t)return;const i=t.getCell(n.location.row,n.location.col);if((i==null?void 0:i.t)===l.CellValueType.FORCE_STRING&&i.v&&l.isRealNum(i.v)){const r=this._cellAlertManagerService.currentAlert.get(zr),s=(o=r==null?void 0:r.alert)==null?void 0:o.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:cn.ERROR,title:this._localeService.t("info.error"),message:this._localeService.t("info.forceStringInfo"),location:n.location,width:200,height:74,key:zr});return}}this._cellAlertManagerService.removeAlert(zr)}))}};qn=gg([l.OnLifecycle(l.LifecycleStages.Rendered,qn),Xr(1,l.Inject(M.HoverManagerService)),Xr(2,l.Inject(M.CellAlertManagerService)),Xr(3,l.Inject(l.LocaleService))],qn);var pg=Object.defineProperty,vg=Object.getOwnPropertyDescriptor,Cg=(n,o,e,t)=>{for(var i=t>1?void 0:t?vg(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&pg(o,e,i),i},Yr=(n,o)=>(e,t)=>o(e,t,n);let Zr=class extends l.Disposable{constructor(n,o,e,t){super(),this._context=n,this._contextMenuService=o,this._selectionManagerService=e,this._selectionRenderService=t,this._init()}_init(){var a,c;const o=((c=(a=this._context)==null?void 0:a.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 f=h.range.rangeType,S=this._selectionRenderService.getSkeleton(),p=pt(h,S).rangeWithCoord,v=()=>{if(!p)return!1;const I=d.offsetX,b=d.offsetY;switch(f){case l.RANGE_TYPE.ROW:return p.startY<=b&&p.endY>=b;case l.RANGE_TYPE.COLUMN:return p.startX<=I&&p.endX>=I;default:return p.startX<=I&&p.endX>=I&&p.startY<=b&&p.endY>=b}},C=I=>{this._contextMenuService.triggerContextMenu(d,I)};v()?f===l.RANGE_TYPE.COLUMN?C(le.COL_HEADER_CONTEXT_MENU):f===l.RANGE_TYPE.ROW?C(le.ROW_HEADER_CONTEXT_MENU):C(T.MenuPosition.CONTEXT_MENU):C(T.MenuPosition.CONTEXT_MENU)}});this.disposeWithMe(o);const e=this._context.components.get(de.COLUMN),i=this._context.components.get(de.ROW).onPointerDown$.subscribeEvent(d=>{d.button===2&&this._contextMenuService.triggerContextMenu(d,le.ROW_HEADER_CONTEXT_MENU)});this.disposeWithMe(i);const s=e.onPointerDown$.subscribeEvent(d=>{d.button===2&&this._contextMenuService.triggerContextMenu(d,le.COL_HEADER_CONTEXT_MENU)});this.disposeWithMe(s)}};Zr=Cg([Yr(1,T.IContextMenuService),Yr(2,l.Inject(m.SheetsSelectionsService)),Yr(3,pe)],Zr);var _g=Object.defineProperty,Ig=Object.getOwnPropertyDescriptor,bg=(n,o,e,t)=>{for(var i=t>1?void 0:t?Ig(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&_g(o,e,i),i},Qn=(n,o)=>(e,t)=>o(e,t,n);let Gr=class extends l.RxDisposable{constructor(o,e,t,i,r,s){super();E(this,"_d");this._context=o,this._instanceSrv=e,this._commandService=t,this._editorBridgeService=i,this._selectionManagerService=r,this._rangeSelectorService=s,this.disposeWithMe(this._instanceSrv.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).subscribe(a=>{a&&a.getUnitId()===this._context.unitId?this._d=this._init():this._disposeCurrent()})),this._initialRangeSelector()}_init(){const o=new l.DisposableCollection;return this._initSelectionChangeListener(o),this._initEventListener(o),this._commandExecutedListener(o),o}_disposeCurrent(){var o;(o=this._d)==null||o.dispose(),this._d=null}_initSelectionChangeListener(o){o.add(A.merge(this._selectionManagerService.selectionMoveEnd$,this._selectionManagerService.selectionMoveStart$).subscribe(e=>this._updateEditorPosition(e)))}_updateEditorPosition(o){var t,i;if(this._editorBridgeService.isVisible().visible)return;const e=(t=o==null?void 0:o[o.length-1])==null?void 0:t.primary;if(e){const r=this._getSheetObject(),{scene:s,engine:a}=r,c=this._context.unitId,d=(i=this._context.unit.getActiveSheet())==null?void 0:i.getSheetId();if(!d)return;this._commandService.executeCommand(Yi.id,{scene:s,engine:a,primary:e,unitId:c,sheetId:d})}}_initEventListener(o){const e=this._getSheetObject(),{spreadsheet:t,spreadsheetColumnHeader:i,spreadsheetLeftTopPlaceholder:r,spreadsheetRowHeader:s}=e;o.add(t.onDblclick$.subscribeEvent(a=>{a.button!==2&&this._commandService.executeCommand(Pe.id,{visible:!0,eventType:w.DeviceInputEventType.Dblclick,unitId:this._context.unitId})})),o.add(t.onPointerDown$.subscribeEvent(this._tryHideEditor.bind(this))),o.add(i.onPointerDown$.subscribeEvent(this._tryHideEditor.bind(this))),o.add(r.onPointerDown$.subscribeEvent(this._tryHideEditor.bind(this))),o.add(s.onPointerDown$.subscribeEvent(this._tryHideEditor.bind(this)))}_tryHideEditor(){this._editorBridgeService.isForceKeepVisible()||this._hideEditor()}_hideEditor(){this._editorBridgeService.isVisible().visible===!0&&this._commandService.executeCommand(Pe.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:o,sheetId:e,sheetName:t}=this._getCurrentUnitIdAndSheetId();if(!e||!t)return;const i=this._selectionManagerService.getCurrentSelections(),r=i==null?void 0:i.map(s=>({range:s.range,unitId:o,sheetId:e,sheetName:t}));r&&this._rangeSelectorService.selectionChange(r)}))}_rangeSelector(o){if(!o)return;const{unitId:e,sheetId:t,sheetName:i}=this._getCurrentUnitIdAndSheetId();if(!t||!i)return;const r=o.map(s=>({range:s.range,unitId:e,sheetId:t,sheetName:i}));this._rangeSelectorService.selectionChange(r)}_getCurrentUnitIdAndSheetId(){const o=this._context.unit,e=o.getActiveSheet();return{unitId:o.getUnitId(),sheetId:e==null?void 0:e.getSheetId(),sheetName:e==null?void 0:e.getName()}}_getSheetObject(){return je(this._context.unit,this._context)}_commandExecutedListener(o){o.add(this._commandService.onCommandExecuted((e,t)=>{e.id===Xt.id&&this._editorBridgeService.refreshEditCellState(),!(t!=null&&t.fromCollab)&&(e.id===m.SetWorksheetActiveOperation.id?this._tryHideEditor():m.COMMAND_LISTENER_SKELETON_CHANGE.includes(e.id)&&this._hideEditor())}))}};Gr=bg([Qn(1,l.IUniverInstanceService),Qn(2,l.ICommandService),Qn(3,ze),Qn(4,l.Inject(m.SheetsSelectionsService)),Qn(5,T.IRangeSelectorService)],Gr);var Rg=Object.defineProperty,Tg=Object.getOwnPropertyDescriptor,Eg=(n,o,e,t)=>{for(var i=t>1?void 0:t?Tg(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Rg(o,e,i),i},Mt=(n,o)=>(e,t)=>o(e,t,n);let go=class extends l.Disposable{constructor(n,o,e,t,i,r,s){super(),this._commandService=n,this._formatPainterService=o,this._univerInstanceService=e,this._renderManagerService=t,this._selectionManagerService=i,this._sheetInterceptorService=r,this._injector=s,this._initialize()}_initialize(){this._commandExecutedListener(),this._addDefaultHook()}_commandExecutedListener(){const n=this._renderManagerService.getCurrentTypeOfRenderer(l.UniverInstanceType.UNIVER_SHEET).with(pe);this.disposeWithMe(n.selectionMoveEnd$.subscribe(o=>{var e,t;if(this._formatPainterService.getStatus()!==Ae.OFF){const{rangeWithCoord:i}=o[o.length-1];this._commandService.executeCommand(Pn.id,{unitId:((e=this._univerInstanceService.getFocusedUnit())==null?void 0:e.getUnitId())||"",subUnitId:((t=this._univerInstanceService.getFocusedUnit().getActiveSheet())==null?void 0:t.getSheetId())||"",range:{startRow:i.startRow,startColumn:i.startColumn,endRow:i.endRow,endColumn:i.endColumn}}),this._formatPainterService.getStatus()===Ae.ONCE&&this._commandService.executeCommand(En.id)}}))}_addDefaultHook(){const n={id:"default-format-painter",priority:0,isDefaultHook:!0,onStatusChange:o=>{if(o!==Ae.OFF){const e=this._collectSelectionRangeFormat();e&&this._formatPainterService.setSelectionFormat(e)}},onApply:(o,e,t,i)=>this._getUndoRedoMutationInfo(o,e,t,i)};this._formatPainterService.addHook(n)}_collectSelectionRangeFormat(){const n=this._selectionManagerService.getCurrentLastSelection(),o=n==null?void 0:n.range;if(!o)return null;const{startRow:e,endRow:t,startColumn:i,endColumn:r}=o,s=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),a=s==null?void 0:s.getActiveSheet();if(!a)return null;const c=a.getCellMatrix(),d=a.getMergeData(),u=s.getStyles(),h=new l.ObjectMatrix,f=[];for(let S=e;S<=t;S++)for(let g=i;g<=r;g++){const p=c.getValue(S,g);h.setValue(S,g,u.getStyleByCell(p)||{});const{isMergedMainCell:v,...C}=l.getCellInfoInMergeData(S,g,d);v&&f.push({startRow:C.startRow,startColumn:C.startColumn,endRow:C.endRow,endColumn:C.endColumn})}return{styles:h,merges:f}}_getUndoRedoMutationInfo(n,o,e,t){const i=this._sheetInterceptorService,r=this._univerInstanceService,s={get:this._injector.get.bind(this._injector)},{merges:a,styles:c}=t;if(!c)return{undos:[],redos:[]};const{startRow:d,startColumn:u,endRow:h,endColumn:f}=c.getDataRange(),S=h-d+1,g=f-u+1,p=Array.from({length:e.endRow-e.startRow+1},()=>Array.from({length:e.endColumn-e.startColumn+1},()=>({}))),v=[];p.forEach((Y,j)=>{Y.forEach((z,F)=>{const Z=j%S+d,x=F%g+u,B=c.getValue(Z,x);B&&(p[j][F].s=B)})}),a.forEach(Y=>{const j={startRow:Y.startRow-d,startColumn:Y.startColumn-u,endRow:Y.endRow-d,endColumn:Y.endColumn-u},z=Math.max(1,Math.floor((e.endRow-e.startRow+1)/S)),F=Math.max(1,Math.floor((e.endColumn-e.startColumn+1)/g));for(let Z=0;Z<z;Z++)for(let x=0;x<F;x++)v.push({startRow:j.startRow+Z*S+e.startRow,startColumn:j.startColumn+x*g+e.startColumn,endRow:j.endRow+Z*S+e.startRow,endColumn:j.endColumn+x*g+e.startColumn})});const C=[e],I=new l.ObjectMatrix;let b;if(l.Tools.isArray(p))for(let Y=0;Y<C.length;Y++){const{startRow:j,startColumn:z,endRow:F,endColumn:Z}=C[Y];for(let x=0;x<=F-j;x++)for(let B=0;B<=Z-z;B++)I.setValue(x+j,B+z,p[x][B])}else if(l.isICellData(p))for(let Y=0;Y<C.length;Y++){const{startRow:j,startColumn:z}=C[Y];I.setValue(j,z,p)}else b=p;const R={subUnitId:o,unitId:n,cellValue:b!=null?b:I.getMatrix()},P=m.SetRangeValuesUndoMutationFactory(s,R),{undos:y,redos:O}=i.onCommandExecute({id:m.SetRangeValuesCommand.id,params:{...R,range:C}}),N=m.getAddMergeMutationRangeByType(v),D=[],k=[],H=r.getUnit(n).getSheetBySheetId(o),V=bl(H,N),U={unitId:n,subUnitId:o,ranges:N},W={unitId:n,subUnitId:o,ranges:N};D.push({id:m.RemoveWorksheetMergeMutation.id,params:U}),D.push({id:m.AddWorksheetMergeMutation.id,params:W});const X=m.RemoveMergeUndoMutationFactory(s,U),K=m.AddMergeUndoMutationFactory(s,W);if(k.push({id:m.RemoveWorksheetMergeMutation.id,params:K}),k.push({id:m.AddWorksheetMergeMutation.id,params:X}),V){const Y=Rl(s,n,H,N);D.unshift(...Y.redos),k.push(...Y.undos)}return{undos:[{id:m.SetRangeValuesMutation.id,params:P},...y,...k],redos:[{id:m.SetRangeValuesMutation.id,params:R},...O,...D]}}};go=Eg([l.OnLifecycle(l.LifecycleStages.Steady,go),Mt(0,l.ICommandService),Mt(1,et),Mt(2,l.IUniverInstanceService),Mt(3,w.IRenderManagerService),Mt(4,l.Inject(m.SheetsSelectionsService)),Mt(5,l.Inject(m.SheetInterceptorService)),Mt(6,l.Inject(l.Injector))],go);var Pg=Object.defineProperty,wg=Object.getOwnPropertyDescriptor,yg=(n,o,e,t)=>{for(var i=t>1?void 0:t?wg(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Pg(o,e,i),i},Ua=(n,o)=>(e,t)=>o(e,t,n);M.DragManagerService=class extends l.Disposable{constructor(e,t){super();E(this,"_currentCell$",new A.Subject);E(this,"currentCell$",this._currentCell$.asObservable().pipe(A.distinctUntilChanged((e,t)=>{var i,r,s,a,c,d,u,h;return((i=e==null?void 0:e.location)==null?void 0:i.unitId)===((r=t==null?void 0:t.location)==null?void 0:r.unitId)&&((s=e==null?void 0:e.location)==null?void 0:s.subUnitId)===((a=t==null?void 0:t.location)==null?void 0:a.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 A.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$(l.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{e||(this._currentCell$.next(null),this._endCell$.next(null))}))}_calcActiveCell(e,t){const i=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!i)return null;const r=i.getActiveSheet();if(!r)return;const s=this._renderManagerService.getRenderById(i.getUnitId());if(!s)return;const a=s.with(M.SheetSkeletonManagerService).getCurrent(),d=s.with(be).getCurrentScrollState();if(!(!a||!d||!s))return El(s,i,r,a,e,t)}onDragOver(e){const{offsetX:t,offsetY:i,dataTransfer:r}=e,s=this._calcActiveCell(t,i);if(!s){this._currentCell$.next(null);return}const{location:a,position:c}=s;this._currentCell$.next({location:a,position:c,dataTransfer:r})}onDrop(e){const{offsetX:t,offsetY:i,dataTransfer:r}=e,s=this._calcActiveCell(t,i);if(!s){this._endCell$.next(null);return}const{location:a,position:c}=s;this._endCell$.next({location:a,position:c,dataTransfer:r})}},M.DragManagerService=yg([Ua(0,l.IUniverInstanceService),Ua(1,w.IRenderManagerService)],M.DragManagerService);var Mg=Object.defineProperty,Og=Object.getOwnPropertyDescriptor,Ag=(n,o,e,t)=>{for(var i=t>1?void 0:t?Og(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Mg(o,e,i),i},Kr=(n,o)=>(e,t)=>o(e,t,n);M.DragRenderController=class extends l.Disposable{constructor(o,e,t,i){super(),this._context=o,this._renderManagerService=e,this._dragManagerService=t,this._sheetSkeletonManagerService=i,this._initDragEvent()}_initDragEvent(){const o=new l.DisposableCollection,e=t=>{if(o.dispose(),!t)return;const{scene:i}=this._context,r=i.onDragOver$.subscribeEvent(a=>{this._dragManagerService.onDragOver(a)}),s=i.onDrop$.subscribeEvent(a=>{this._dragManagerService.onDrop(a)});o.add({dispose(){r.unsubscribe(),s.unsubscribe()}})};e(this._sheetSkeletonManagerService.getCurrent()),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(t=>{e(t)}))}},M.DragRenderController=Ag([Kr(1,w.IRenderManagerService),Kr(2,l.Inject(M.DragManagerService)),Kr(3,l.Inject(M.SheetSkeletonManagerService))],M.DragRenderController);const qr="UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID",Ba="UNIVER_SHEET_PERMISSION_ALERT_DIALOG";var Ng=Object.defineProperty,Dg=Object.getOwnPropertyDescriptor,kg=(n,o,e,t)=>{for(var i=t>1?void 0:t?Dg(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Ng(o,e,i),i},ke=(n,o)=>(e,t)=>o(e,t,n);M.SheetPermissionInterceptorBaseController=class extends l.Disposable{constructor(e,t,i,r,s,a,c,d,u,h,f,S){super();E(this,"disposableCollection",new l.DisposableCollection);E(this,"_showPermissionDialog",!0);this._commandService=e,this._univerInstanceService=t,this._permissionService=i,this._selectionManagerService=r,this._dialogService=s,this._rangeProtectionRuleModel=a,this._worksheetProtectionRuleModel=c,this._autoFillService=d,this._localeService=u,this._lexerTreeBuilder=h,this._contextService=f,this._definedNamesService=S,this._initialize()}setShowPermissionDialog(e){this._showPermissionDialog=e}haveNotPermissionHandle(e){const t={id:qr,title:{title:""},children:{label:Ba,errorMsg:e},width:320,destroyOnClose:!0,onClose:()=>this._dialogService.close(qr),className:"sheet-permission-user-dialog"};throw this._showPermissionDialog&&this._dialogService.open(t),new Error("have not permission")}_getPermissionCheck(e,t){var s,a;let i=!0,r="";switch(e){case te.InsertCommand.id:case te.IMEInputCommand.id:case Pe.id:if(this._contextService.getContextValue(l.FOCUSING_EDITOR_STANDALONE)===!0)break;i=this.permissionCheckWithoutRange({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetEditPermission]}),r=this._localeService.t("permission.dialog.editErr");break;case m.SetRangeValuesCommand.id:l.isICellData(t.value)&&t.value.f?(i=this._permissionCheckWithFormula(t),r=this._localeService.t("permission.dialog.formulaErr")):i=this._permissionCheckBySetRangeValue({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetEditPermission]},t);break;case m.ClearSelectionContentCommand.id:i=this.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetEditPermission]}),r=this._localeService.t("permission.dialog.editErr");break;case _i.id:i=this.permissionCheckWithoutRange({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetColumnStylePermission]}),r=this._localeService.t("permission.dialog.pasteErr");break;case Ci.id:i=this._permissionCheckByPaste(t),r=this._localeService.t("permission.dialog.pasteErr");break;case Pn.id:i=this.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission,m.WorksheetSetCellStylePermission]}),r=this._localeService.t("permission.dialog.commonErr");break;case m.SetBackgroundColorCommand.id:case Zt.id:case Gt.id:case Kt.id:case qt.id:i=this.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission]}),r=this._localeService.t("permission.dialog.setStyleErr");break;case Qo.id:case Jo.id:i=this.permissionCheckWithRanges({workbookTypes:[m.WorkbookCopyPermission],rangeTypes:[m.RangeProtectionPermissionViewPoint],worksheetTypes:[m.WorksheetCopyPermission]}),r=this._localeService.t("permission.dialog.copyErr"),(s=this._permissionService.getPermissionPoint(new m.WorkbookCopyPermission(this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getUnitId()).id))!=null&&s.value||(r=this._localeService.t("permission.dialog.workbookCopyErr"));break;case m.DeltaColumnWidthCommand.id:case m.SetColWidthCommand.id:i=this.permissionCheckWithoutRange({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetRowStylePermission,m.WorksheetEditPermission]}),r=this._localeService.t("permission.dialog.setRowColStyleErr");break;case m.DeltaRowHeightCommand.id:case m.SetRowHeightCommand.id:case m.SetWorksheetRowIsAutoHeightCommand.id:i=this.permissionCheckWithoutRange({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetRowStylePermission,m.WorksheetEditPermission]}),r=this._localeService.t("permission.dialog.setRowColStyleErr");break;case m.MoveColsCommand.id:case m.MoveRowsCommand.id:i=this._permissionCheckByMoveCommand(t),r=this._localeService.t("permission.dialog.moveRowColErr");break;case m.MoveRangeCommand.id:i=this._permissionCheckByMoveRangeCommand(t),r=this._localeService.t("permission.dialog.moveRangeErr");break;case gt.id:i=this._permissionCheckByAutoFillCommand((a=this._autoFillService.autoFillLocation)==null?void 0:a.target),r=this._localeService.t("permission.dialog.autoFillErr");break;case m.SetWorksheetOrderCommand.id:i=this._permissionCheckByWorksheetCommand([m.WorkbookEditablePermission,m.WorkbookMoveSheetPermission]),r=this._localeService.t("permission.dialog.operatorSheetErr"),i===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case m.SetWorksheetNameCommand.id:i=this._permissionCheckByWorksheetCommand([m.WorkbookEditablePermission,m.WorkbookRenameSheetPermission]),r=this._localeService.t("permission.dialog.operatorSheetErr"),i===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case m.SetWorksheetShowCommand.id:i=this._permissionCheckByWorksheetCommand([m.WorkbookEditablePermission,m.WorkbookHideSheetPermission]),r=this._localeService.t("permission.dialog.operatorSheetErr"),i===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case m.SetSpecificColsVisibleCommand.id:i=this.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetColumnStylePermission]},t.ranges),r=this._localeService.t("permission.dialog.setRowColStyleErr");break;case m.SetSpecificRowsVisibleCommand.id:i=this.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetRowStylePermission]},t.ranges),r=this._localeService.t("permission.dialog.setRowColStyleErr");break;case m.SetSelectedColsVisibleCommand.id:i=this.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetColumnStylePermission]}),r=this._localeService.t("permission.dialog.setRowColStyleErr");break;case m.SetSelectedRowsVisibleCommand.id:i=this.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetRowStylePermission]}),r=this._localeService.t("permission.dialog.setRowColStyleErr");break;case m.InsertRangeMoveRightCommand.id:i=this._permissionCheckWithInsertRangeMove("right"),r=this._localeService.t("permission.dialog.insertOrDeleteMoveRangeErr");break;case m.InsertRangeMoveDownCommand.id:i=this._permissionCheckWithInsertRangeMove("bottom"),r=this._localeService.t("permission.dialog.insertOrDeleteMoveRangeErr");break;case m.DeleteRangeMoveLeftCommand.id:i=this._permissionCheckWithInsertRangeMove("left"),r=this._localeService.t("permission.dialog.insertOrDeleteMoveRangeErr");break;case m.DeleteRangeMoveUpCommand.id:i=this._permissionCheckWithInsertRangeMove("top"),r=this._localeService.t("permission.dialog.insertOrDeleteMoveRangeErr");break}i||this.haveNotPermissionHandle(r)}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{this._getPermissionCheck(e.id,e==null?void 0:e.params)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var t;if(e.id===m.SetWorksheetNameMutation.id){const i=e.params,{unitId:r=(t=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET))==null?void 0:t.getUnitId(),subUnitId:s}=i;if(!r||!s)return;const a=this._worksheetProtectionRuleModel.getRule(r,s),c=this._rangeProtectionRuleModel.getSubunitRuleList(r,s);a&&this._worksheetProtectionRuleModel.ruleRefresh(a.permissionId),c.length&&this._rangeProtectionRuleModel.ruleRefresh(s)}}))}_permissionCheckWithInsertRangeMove(e){var u;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:i,unitId:r,subUnitId:s}=t,a=(u=this._selectionManagerService.getCurrentLastSelection())==null?void 0:u.range;return!(!a||(e==="top"?a.startRow=0:e==="left"?a.startColumn=0:e==="right"?a.endColumn=i.getColumnCount()-1:e==="bottom"&&(a.endRow=i.getRowCount()-1),this._rangeProtectionRuleModel.getSubunitRuleList(r,s).map(h=>h.ranges).flat().some(h=>l.Rectangle.getIntersects(a,h))))}_permissionCheckByWorksheetCommand(e){var c,d;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{unitId:i,subUnitId:r}=t,s=this._worksheetProtectionRuleModel.getRule(i,r),a=this._rangeProtectionRuleModel.getSubunitRuleList(i,r).length>0;return s||a?(d=(c=this._permissionService.getPermissionPoint(new m.WorkbookManageCollaboratorPermission(i).id))==null?void 0:c.value)!=null?d:!1:this._permissionService.composePermission(e.map(u=>new u(i).id)).every(u=>u.value)}permissionCheckWithoutRange(e){var S,g,p,v;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:i,unitId:r,subUnitId:s}=t,a=this._selectionManagerService.getCurrentLastSelection();if(!a)return!0;const c=(g=(S=a==null?void 0:a.primary)==null?void 0:S.actualRow)!=null?g:0,d=(v=(p=a==null?void 0:a.primary)==null?void 0:p.actualColumn)!=null?v:0,{workbookTypes:u=[m.WorkbookEditablePermission],worksheetTypes:h,rangeTypes:f}=e;return!(u&&u.some(I=>{var P,y;const b=new I(r);return((y=(P=this._permissionService.getPermissionPoint(b.id))==null?void 0:P.value)!=null?y:!1)===!1})===!0||h&&h.some(I=>{var P,y;const b=new I(r,s);return((y=(P=this._permissionService.getPermissionPoint(b.id))==null?void 0:P.value)!=null?y:!1)===!1})===!0||f&&f.some(I=>{var O,N,D,k,H;const b=(N=(O=i.getCell(c,d))==null?void 0:O.selectionProtection)==null?void 0:N[0];if(!(b!=null&&b.ruleId))return!1;const R=(D=this._rangeProtectionRuleModel.getRule(r,s,b.ruleId))==null?void 0:D.permissionId;if(!R)return!1;const P=new I(r,s,R);return((H=(k=this._permissionService.getPermissionPoint(P.id))==null?void 0:k.value)!=null?H:!1)===!1})===!0)}permissionCheckWithRanges(e,t,i,r){var S;const s=m.getSheetCommandTarget(this._univerInstanceService);if(!s)return!1;const{workbook:a,worksheet:c}=s;i||(i=a.getUnitId()),r||(r=c.getSheetId());const d=t!=null?t:(S=this._selectionManagerService.getCurrentSelections())==null?void 0:S.map(g=>g.range);if(!d)return!1;const{workbookTypes:u=[m.WorkbookEditablePermission],worksheetTypes:h,rangeTypes:f}=e;return u&&u.some(p=>{var I,b;const v=new p(i);return((b=(I=this._permissionService.getPermissionPoint(v.id))==null?void 0:I.value)!=null?b:!1)===!1})===!0||h&&h.some(p=>{var I,b;const v=new p(i,r);return((b=(I=this._permissionService.getPermissionPoint(v.id))==null?void 0:I.value)!=null?b:!1)===!1})===!0?!1:f?d==null?void 0:d.every(p=>f.every(v=>{var C,I,b,R,P;for(let y=p.startRow;y<=p.endRow;y++)for(let O=p.startColumn;O<=p.endColumn;O++){const N=(I=(C=c.getCell(y,O))==null?void 0:C.selectionProtection)==null?void 0:I[0];if(!(N!=null&&N.ruleId))continue;const D=(b=this._rangeProtectionRuleModel.getRule(i,r,N.ruleId))==null?void 0:b.permissionId;if(!D)continue;const k=new v(i,r,D);if(((P=(R=this._permissionService.getPermissionPoint(k.id))==null?void 0:R.value)!=null?P:!1)===!1)return!1}return!0})):!0}_permissionCheckByPaste(e){return e.value===Se.SPECIAL_PASTE_VALUE||e.value===Se.SPECIAL_PASTE_FORMULA?this.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission]}):e.value===Se.SPECIAL_PASTE_FORMAT?this.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission]}):this.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetSetCellStylePermission,m.WorksheetEditPermission]})}_permissionCheckByMoveCommand(e){const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:i,unitId:r,subUnitId:s}=t,a=e.toRange;a.endRow===i.getRowCount()-1?a.endColumn=a.startColumn:a.endRow=a.startRow;const c=this._rangeProtectionRuleModel.getSubunitRuleList(r,s).reduce((d,u)=>[...d,...u.ranges],[]).filter(d=>l.Rectangle.intersects(d,a));return c.length>0?!1:(c.forEach(d=>{var u,h;for(let f=d.startRow;f<=d.endRow;f++)for(let S=d.startColumn;S<=d.endColumn;S++){const g=(h=(u=i.getCell(f,S))==null?void 0:u.selectionProtection)==null?void 0:h[0];if((g==null?void 0:g[Q.Edit])===!1)return!1}}),!0)}_permissionCheckByAutoFillCommand(e){if(!e)return!1;const{rows:t,cols:i}=e,r=t[0],s=t[t.length-1],a=i[0],c=i[i.length-1],d={startRow:r,endRow:s,startColumn:a,endColumn:c},u=m.getSheetCommandTarget(this._univerInstanceService);if(!u)return!1;const{worksheet:h,unitId:f,subUnitId:S}=u;return!this._rangeProtectionRuleModel.getSubunitRuleList(f,S).reduce((v,C)=>[...v,...C.ranges],[]).filter(v=>l.Rectangle.intersects(v,d)).some(v=>{var C,I;for(let b=v.startRow;b<=v.endRow;b++)for(let R=v.startColumn;R<=v.endColumn;R++){const P=(I=(C=h.getCell(b,R))==null?void 0:C.selectionProtection)==null?void 0:I[0];if((P==null?void 0:P[Q.Edit])===!1)return!0}return!1})}_permissionCheckByMoveRangeCommand(e){const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:i,unitId:r,subUnitId:s}=t,a=e.toRange,c=this._rangeProtectionRuleModel.getSubunitRuleList(r,s).reduce((d,u)=>[...d,...u.ranges],[]).filter(d=>l.Rectangle.intersects(d,a));return c.length>0?!1:(c.forEach(d=>{var u,h;for(let f=d.startRow;f<=d.endRow;f++)for(let S=d.startColumn;S<=d.endColumn;S++){const g=(h=(u=i.getCell(f,S))==null?void 0:u.selectionProtection)==null?void 0:h[0];if((g==null?void 0:g[Q.Edit])===!1)return!1}}),!0)}_permissionCheckBySetRangeValue(e,t){let i=[];t.range?i=[t.range]:i=[new l.ObjectMatrix(t.value).getDataRange()];const{unitId:r,subUnitId:s}=t;return this.permissionCheckWithRanges(e,i,r,s)}_permissionCheckWithFormula(e){var s,a,c,d,u;const t=e.value,i=e.range,r=t.f;if(r){const h=r.substring(1),f=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),S=(s=e.unitId)!=null?s:f.getUnitId(),g=this._definedNamesService.getValueByName(S,h);if(g){let p=g.formulaOrRefString;p.startsWith(q.operatorToken.EQUALS)&&(p=p.slice(1));const v=p.split(",");for(let C=0;C<v.length;C++){const I=v[C],b=q.deserializeRangeWithSheet(I);if(b.sheetName){const R=f.getSheetBySheetName(b.sheetName);if(!R)return!1;const{startRow:P,endRow:y,startColumn:O,endColumn:N}=b.range;for(let D=P;D<=y;D++)for(let k=O;k<=N;k++){const H=(c=(a=R.getCell(D,k))==null?void 0:a.selectionProtection)==null?void 0:c[0];if((H==null?void 0:H[Q.View])===!1)return!1}}}return!0}else{const p=this._lexerTreeBuilder.sequenceNodesBuilder(r);if(!p)return!0;for(let v=0;v<p.length;v++){const C=p[v];if(typeof C=="string")continue;const{token:I}=C,b=q.deserializeRangeWithSheet(I),R=b.unitId?this._univerInstanceService.getUnit(b.unitId):this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!R)return!0;let P=b.sheetName?R.getSheetBySheetName(b.sheetName):R.getActiveSheet();const y=R.getUnitId();if(b.sheetName){if(P=R.getSheetBySheetName(b.sheetName),!P)return!0;const H=P==null?void 0:P.getSheetId();if(!this._permissionService.getPermissionPoint(new m.WorksheetViewPermission(y,H).id))return!1}if(!P)return!0;const{startRow:O,endRow:N,startColumn:D,endColumn:k}=b.range;for(let H=O;H<=N;H++)for(let V=D;V<=k;V++){const U=(u=(d=P.getCell(H,V))==null?void 0:d.selectionProtection)==null?void 0:u[0];if((U==null?void 0:U[Q.View])===!1)return!1}}}}if(i){const h=m.getSheetCommandTarget(this._univerInstanceService);if(!h)return!1;const f=e.unitId||h.unitId,S=e.subUnitId||h.subUnitId,p=this._rangeProtectionRuleModel.getSubunitRuleList(f,S).filter(C=>C.ranges.some(I=>l.Rectangle.intersects(I,i))).map(C=>new m.RangeProtectionPermissionEditPoint(f,S,C.permissionId).id);if(!this._permissionService.composePermission(p).every(C=>C.value))return!1}return!0}},M.SheetPermissionInterceptorBaseController=kg([l.OnLifecycle(l.LifecycleStages.Steady,M.SheetPermissionInterceptorBaseController),ke(0,l.ICommandService),ke(1,l.IUniverInstanceService),ke(2,l.IPermissionService),ke(3,l.Inject(m.SheetsSelectionsService)),ke(4,T.IDialogService),ke(5,l.Inject(m.RangeProtectionRuleModel)),ke(6,l.Inject(m.WorksheetProtectionRuleModel)),ke(7,lt),ke(8,l.Inject(l.LocaleService)),ke(9,l.Inject(q.LexerTreeBuilder)),ke(10,l.IContextService),ke(11,q.IDefinedNamesService)],M.SheetPermissionInterceptorBaseController);var Hg=Object.defineProperty,Vg=Object.getOwnPropertyDescriptor,Lg=(n,o,e,t)=>{for(var i=t>1?void 0:t?Vg(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Hg(o,e,i),i},Jn=(n,o)=>(e,t)=>o(e,t,n);const Wg="SHEET_PERMISSION_PASTE_PLUGIN";let $n=class extends l.Disposable{constructor(o,e,t,i,r){super();E(this,"disposableCollection",new l.DisposableCollection);this._univerInstanceService=o,this._selectionManagerService=e,this._localService=t,this._sheetClipboardService=i,this._sheetPermissionInterceptorBaseController=r,this._initClipboardHook()}_initClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook({id:Wg,onBeforePaste:o=>{var f,S,g;const[e]=Lt([o.range]).ranges,t=(f=this._selectionManagerService.getCurrentLastSelection())==null?void 0:f.range;if(!t)return!1;const i={startRow:t.startRow+e.startRow,endRow:t.startRow+e.endRow,startColumn:t.startColumn+e.startColumn,endColumn:t.startColumn+e.endColumn},s=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!s)return!1;const{startRow:a,endRow:c,startColumn:d,endColumn:u}=i;let h=!0;for(let p=a;p<=c;p++)for(let v=d;v<=u;v++){const C=(g=(S=s.getCell(p,v))==null?void 0:S.selectionProtection)==null?void 0:g[0];if((C==null?void 0:C[Q.Edit])===!1){h=!1;break}}return h||this._sheetPermissionInterceptorBaseController.haveNotPermissionHandle(this._localService.t("permission.dialog.pasteErr")),h}}))}};$n=Lg([l.OnLifecycle(l.LifecycleStages.Steady,$n),Jn(0,l.IUniverInstanceService),Jn(1,l.Inject(m.SheetsSelectionsService)),Jn(2,l.Inject(l.LocaleService)),Jn(3,l.Inject($e)),Jn(4,l.Inject(M.SheetPermissionInterceptorBaseController))],$n);var xg=Object.defineProperty,Ug=Object.getOwnPropertyDescriptor,Bg=(n,o,e,t)=>{for(var i=t>1?void 0:t?Ug(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&xg(o,e,i),i},Ke=(n,o)=>(e,t)=>o(e,t,n);M.SheetPermissionInitController=class extends l.Disposable{constructor(o,e,t,i,r,s,a,c,d,u){super(),this._univerInstanceService=o,this._dialogService=e,this._permissionService=t,this._authzIoService=i,this._rangeProtectionRuleModel=r,this._worksheetProtectionRuleModel=s,this._userManagerService=a,this._worksheetProtectionPointRuleModel=c,this._sheetInterceptorService=d,this._selectionProtectionRenderModel=u,this._initRangePermissionFromSnapshot(),this._initRangePermissionChange(),this._initWorksheetPermissionFromSnapshot(),this._initWorksheetPermissionChange(),this._initWorksheetPermissionPointsChange(),this.initWorkbookPermissionChange(),this._initUserChange(),this._initViewModelByRangeInterceptor(),this._initViewModelBySheetInterceptor()}_initRangePermissionFromSnapshot(){const o=[],e=this._univerInstanceService.getCurrentUnitForType(di.UNIVER_SHEET),t=e.getUnitId(),i=e.getSheets(),r=new Map;i.forEach(s=>{const a=s.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(t,a).forEach(c=>{r.set(c.permissionId,c),o.push({objectID:c.permissionId,unitID:t,objectType:oe.SelectRange,actions:[Q.View,Q.Edit]})})}),o.length&&this._authzIoService.batchAllowed(o).then(s=>{s.forEach(a=>{const c=r.get(a.objectID);c&&m.getAllRangePermissionPoint().forEach(d=>{const u=new d(t,c.subUnitId,a.objectID),h=u.subType,f=a.actions.find(S=>S.action===h);(f==null?void 0:f.allowed)!==void 0&&this._permissionService.updatePermissionPoint(u.id,f.allowed)})})})}_initRangePermissionChange(){this.disposeWithMe(this._rangeProtectionRuleModel.ruleChange$.subscribe(o=>{o.type!=="delete"?this._authzIoService.allowed({objectID:o.rule.permissionId,unitID:o.unitId,objectType:oe.SelectRange,actions:[Q.Edit,Q.View]}).then(e=>{m.getAllRangePermissionPoint().forEach(t=>{if(o.type==="set"){const{rule:c,oldRule:d}=o;if(c.permissionId===(d==null?void 0:d.permissionId))return}const i=o.rule,r=new t(i.unitId,i.subUnitId,i.permissionId),s=r.subType,a=e.find(c=>c.action===s);a&&this._permissionService.updatePermissionPoint(r.id,a.allowed)})}):this._rangeProtectionRuleModel.getSubunitRuleList(o.unitId,o.subUnitId).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(o.unitId,o.subUnitId),[...m.getAllWorksheetPermissionPointByPointPanel()].forEach(t=>{const i=new t(o.unitId,o.subUnitId);this._permissionService.updatePermissionPoint(i.id,i.value)}))}))}initWorkbookPermissionChange(o){const e=o||this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getUnitId();this._authzIoService.allowed({objectID:e,objectType:oe.Workbook,unitID:e,actions:m.defaultWorkbookPermissionPoints}).then(t=>{m.getAllWorkbookPermissionPoint().forEach(i=>{const r=new i(e),s=r.subType,a=t.find(c=>c.action===s);a&&this._permissionService.updatePermissionPoint(r.id,a.allowed)})})}_initWorksheetPermissionChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(o=>{o.type!=="delete"?this._authzIoService.allowed({objectID:o.rule.permissionId,unitID:o.unitId,objectType:oe.Worksheet,actions:[Q.Edit,Q.View]}).then(e=>{m.getAllWorksheetPermissionPoint().forEach(t=>{const i=new t(o.unitId,o.subUnitId),r=i.subType,s=e.find(a=>a.action===r);s&&this._permissionService.updatePermissionPoint(i.id,s.allowed)})}):([...m.getAllWorksheetPermissionPoint(),...m.getAllWorksheetPermissionPointByPointPanel()].forEach(e=>{const t=new e(o.unitId,o.subUnitId);this._permissionService.updatePermissionPoint(t.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(o.unitId,o.subUnitId))}))}_initWorksheetPermissionPointsChange(){this.disposeWithMe(this._worksheetProtectionPointRuleModel.pointChange$.subscribe(o=>{this._authzIoService.allowed({objectID:o.permissionId,unitID:o.unitId,objectType:oe.Worksheet,actions:m.defaultWorksheetPermissionPoint}).then(e=>{m.getAllWorksheetPermissionPointByPointPanel().forEach(t=>{const i=new t(o.unitId,o.subUnitId),r=i.subType,s=e.find(a=>a.action===r);s&&this._permissionService.updatePermissionPoint(i.id,s.allowed)})})}))}_initWorksheetPermissionFromSnapshot(){const o=[],e=this._univerInstanceService.getCurrentUnitForType(di.UNIVER_SHEET),t=e.getUnitId(),i=e.getSheets(),r=new Map;i.forEach(s=>{const a=s.getSheetId(),c=this._worksheetProtectionRuleModel.getRule(t,a);c&&(r.set(c.permissionId,c),o.push({objectID:c.permissionId,unitID:t,objectType:oe.Worksheet,actions:[Q.Edit,Q.View]}));const d=this._worksheetProtectionPointRuleModel.getRule(t,a);d&&(r.set(d.permissionId,d),o.push({objectID:d.permissionId,unitID:t,objectType:oe.Worksheet,actions:m.defaultWorksheetPermissionPoint}))}),o.length&&this._authzIoService.batchAllowed(o).then(s=>{s.forEach(a=>{const c=r.get(a.objectID);c&&[...m.getAllWorksheetPermissionPoint(),...m.getAllWorksheetPermissionPointByPointPanel()].forEach(d=>{const u=new d(t,c.subUnitId),h=u.subType,f=a.actions.find(S=>S.action===h);(f==null?void 0:f.allowed)!==void 0&&this._permissionService.updatePermissionPoint(u.id,f.allowed)})})})}_initUserChange(){this.disposeWithMe(this._userManagerService.currentUser$.subscribe(()=>{const o=this._permissionService.getAllPermissionPoint();this._permissionService.clearPermissionMap(),this._worksheetProtectionRuleModel.changeRuleInitState(!1),this._univerInstanceService.getAllUnitsForType(l.UniverInstanceType.UNIVER_SHEET).forEach(t=>{const i=t.getUnitId();m.getAllWorkbookPermissionPoint().forEach(r=>{let s=new r(i);o.has(s.id)&&(s=o.get(s.id)),this._permissionService.addPermissionPoint(s)}),t.getSheets().forEach(r=>{const s=r.getSheetId();[...m.getAllWorksheetPermissionPoint(),...m.getAllWorksheetPermissionPointByPointPanel()].forEach(c=>{let d=new c(i,s);o.has(d.id)&&(d=o.get(d.id)),this._permissionService.addPermissionPoint(d)}),this._rangeProtectionRuleModel.getSubunitRuleList(i,s).forEach(c=>{m.getAllRangePermissionPoint().forEach(d=>{let u=new d(i,s,c.permissionId);o.has(u.id)&&(u=o.get(u.id)),this._permissionService.addPermissionPoint(u)})})}),this.initWorkbookPermissionChange(),this._initWorksheetPermissionFromSnapshot(),this._initRangePermissionFromSnapshot()})}))}_initViewModelByRangeInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(m.INTERCEPTOR_POINT.CELL_CONTENT,{priority:999,handler:(o={},e,t)=>{const{unitId:i,subUnitId:r,row:s,col:a}=e,c=this._selectionProtectionRenderModel.getCellInfo(i,r,s,a).filter(d=>!!d.ruleId).map(d=>{const u=this._rangeProtectionRuleModel.getRule(i,r,d.ruleId)||{};return{...d,ranges:u.ranges}}).filter(d=>!!d.ranges);if(c.length){const d=c.some(h=>!(h!=null&&h[Q.View])),u={...o,selectionProtection:c};return d?(delete u.s,delete u.v,delete u.p,u):t(u)}return t(o)}}))}_initViewModelBySheetInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(m.INTERCEPTOR_POINT.CELL_CONTENT,{priority:999,handler:(o={},e,t)=>{var a,c,d,u,h;const{unitId:i,subUnitId:r}=e,s=this._worksheetProtectionRuleModel.getRule(i,r);if(s!=null&&s.permissionId&&s.name){const f=[{[Q.View]:(c=(a=this._permissionService.getPermissionPoint(new m.WorksheetViewPermission(i,r).id))==null?void 0:a.value)!=null?c:!1,[Q.Edit]:(u=(d=this._permissionService.getPermissionPoint(new m.WorksheetEditPermission(i,r).id))==null?void 0:d.value)!=null?u:!1}],S=!((h=f[0])!=null&&h[Q.View]),g={...o,hasWorksheetRule:!0,selectionProtection:f};return S?(delete g.s,delete g.v,delete g.p,g):t(g)}return t(o)}}))}},M.SheetPermissionInitController=Bg([l.OnLifecycle(l.LifecycleStages.Rendered,M.SheetPermissionInitController),Ke(0,l.IUniverInstanceService),Ke(1,T.IDialogService),Ke(2,l.IPermissionService),Ke(3,l.IAuthzIoService),Ke(4,l.Inject(m.RangeProtectionRuleModel)),Ke(5,l.Inject(m.WorksheetProtectionRuleModel)),Ke(6,l.Inject(l.UserManagerService)),Ke(7,l.Inject(m.WorksheetProtectionPointModel)),Ke(8,l.Inject(m.SheetInterceptorService)),Ke(9,l.Inject(m.RangeProtectionRenderModel))],M.SheetPermissionInitController);const Fa="data:image/png;base64,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",po={spinContainer:"univer-spin-container",spinOverlay:"univer-spin-overlay",spinner:"univer-spinner",spin:"univer-spin",contentBlur:"univer-content-blur"},ja=({loading:n,children:o})=>_.jsxs("div",{className:po.spinContainer,children:[n&&_.jsx("div",{className:po.spinOverlay,children:_.jsx("div",{className:po.spinner})}),_.jsx("div",{className:n?po.contentBlur:"",children:o})]}),ue={permissionPanelDetailWrapper:"univer-permission-panel-detail-wrapper",radioGroupVertical:"univer-radio-group-vertical",sheetPermissionDesignPersonPanel:"univer-sheet-permission-design-person-panel",sheetPermissionDesignPersonPanelHeader:"univer-sheet-permission-design-person-panel-header",sheetPermissionDesignPersonPanelHeaderAdd:"univer-sheet-permission-design-person-panel-header-add",sheetPermissionDesignPersonPanelSplit:"univer-sheet-permission-design-person-panel-split",sheetPermissionDesignPersonPanelContentItem:"univer-sheet-permission-design-person-panel-content-item",sheetPermissionDesignPersonPanelContentItemName:"univer-sheet-permission-design-person-panel-content-item-name",sheetPermissionDesignPersonPanelContentItemSelect:"univer-sheet-permission-design-person-panel-content-item-select",sheetPermissionDesignPersonPanelContent:"univer-sheet-permission-design-person-panel-content",sheetPermissionUserListEmpty:"univer-sheet-permission-user-list-empty",sheetPermissionUserListEmptyText:"univer-sheet-permission-user-list-empty-text",sheetPermissionPanelTitle:"univer-sheet-permission-panel-title",permissionRangeSelector:"univer-permission-range-selector",permissionRangeSelectorError:"univer-permission-range-selector-error",sheetPermissionPanelNameInputError:"univer-sheet-permission-panel-name-input-error",permissionRangeSelectorErrorText:"univer-permission-range-selector-error-text",sheetPermissionPanelNameInputErrorText:"univer-sheet-permission-panel-name-input-error-text"},Fg=({fromSheetBar:n})=>{var H,V,U;const o=l.useDependency(l.LocaleService),e=l.useDependency(T.IDialogService),t=l.useDependency(l.IUniverInstanceService),i=l.useDependency(m.SheetsSelectionsService),r=l.useDependency(Ce),s=T.useObservable(r.rule$,r.rule),a=l.useDependency(l.UserManagerService),c=l.useDependency(an),d=l.useDependency(l.IAuthzIoService),u=l.useDependency(T.ISidebarService),h=l.useDependency(m.RangeProtectionRuleModel),f=l.useDependency(m.WorksheetProtectionRuleModel),S=T.useObservable(r.rangeErrorMsg$),g=t.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),p=g.getActiveSheet(),v=g.getUnitId(),C=p.getSheetId(),I=T.useObservable(c.selectUserList$,c.selectUserList),[b,R]=L.useState(I.length?"designedUserCanEdit":"onlyMe"),[P,y]=L.useState(ln.othersCanView),[O,N]=L.useState(!1),D=async()=>{const W=await d.listCollaborators({objectID:v,unitID:v});W.forEach(X=>{X!=null&&X.subject&&a.addUser(X.subject)}),c.setUserList(W),e.open({id:eo,title:{title:""},children:{label:Zl},width:280,destroyOnClose:!0,onClose:()=>e.close(eo),className:"sheet-permission-user-dialog"})},k=W=>{let X="";if(W.length===0)X=o.t("permission.panel.emptyRangeError");else if(W.length>1){let K=!1;for(let Y=0;Y<W.length;Y++){for(let j=Y+1;j<W.length;j++)if(l.Rectangle.intersects(W[Y],W[j])){K=!0;break}if(K)break}K&&(X=o.t("permission.panel.rangeOverlapError"))}if(!X){if(f.getRule(v,C)&&!(s!=null&&s.permissionId))return X=o.t("permission.panel.rangeOverlapOverPermissionError"),X;const Y=h.getSubunitRuleList(v,C).filter(z=>z.permissionId!==(s==null?void 0:s.permissionId)).find(z=>z.ranges.some(F=>W.some(Z=>l.Rectangle.intersects(F,Z))));(Y==null?void 0:Y.ranges.find(z=>W.some(F=>l.Rectangle.intersects(z,F))))&&(X=o.t("permission.panel.rangeOverlapOverPermissionError"))}return X};return L.useEffect(()=>{var z,F;if(s==null?void 0:s.permissionId){s.unitType===oe.Worksheet&&r.setRule({ranges:[{startRow:0,startColumn:0,endRow:p.getRowCount()-1,endColumn:p.getColumnCount()-1,rangeType:l.RANGE_TYPE.ALL}]});return}n&&(i.clearCurrentSelections(),i.addSelections([{primary:null,style:null,range:{startRow:0,startColumn:0,endRow:p.getRowCount()-1,endColumn:p.getColumnCount()-1,rangeType:l.RANGE_TYPE.ALL}}]));const X=(F=(z=i.getCurrentSelections())==null?void 0:z.map(Z=>Z.range))!=null?F:[],K=k(X);r.setRangeErrorMsg(K);const Y=X!=null&&X.length?X.map(Z=>{const x=q.serializeRange(Z);return x==="NaN"?"":x}).filter(Z=>!!Z).join(","):"",j=p.getName();r.setRule({ranges:X,name:n?`${j}`:`${j}(${Y})`,unitId:v,subUnitId:C,unitType:n?oe.Worksheet:oe.SelectRange})},[s==null?void 0:s.permissionId,n,i,r,C,v,p]),L.useEffect(()=>{const W=async()=>{const X=s==null?void 0:s.permissionId;N(!0);const K=await d.listCollaborators({objectID:X,unitID:v}),Y=K.filter(z=>z.role===_e.Editor);c.setSelectUserList(Y),N(!1),(Y==null?void 0:Y.length)>0&&R("designedUserCanEdit");const j=K.filter(z=>z.role===_e.Reader);j.length===0&&y(ln.noOneElseCanView),c.setOldCollaboratorList(Y.concat(j))};s!=null&&s.permissionId?W():(c.setSelectUserList([]),R("onlyMe"))},[s==null?void 0:s.permissionId]),L.useEffect(()=>{(async()=>{const X=await d.listCollaborators({objectID:v,unitID:v});X.forEach(K=>{K!=null&&K.subject&&a.addUser(K.subject)}),c.setUserList(X.filter(K=>K.role===_e.Editor)),c.setAllUserList(X.filter(K=>K.role===_e.Editor||K.role===_e.Reader))})()},[]),L.useEffect(()=>{r.setRule({viewStatus:P})},[r,P]),L.useEffect(()=>{const W=t.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!W)return;const X=W.activeSheet$.subscribe(K=>{(K==null?void 0:K.getSheetId())!==C&&u.close()});return()=>{X.unsubscribe()}},[u,C,t]),(H=s==null?void 0:s.ranges)==null||H.map(W=>q.serializeRange(W)).join(","),_.jsxs("div",{className:ue.permissionPanelDetailWrapper,children:[_.jsxs($.FormLayout,{className:ue.sheetPermissionPanelTitle,label:o.t("permission.panel.protectedRange"),children:[_.jsx(T.RangeSelector,{className:he(ue.permissionRangeSelector),textEditorClassName:he({[ue.permissionRangeSelectorError]:S}),value:(V=s==null?void 0:s.ranges)==null?void 0:V.map(W=>q.serializeRange(W)).join(","),id:l.createInternalEditorID("sheet-permission-panel"),openForSheetUnitId:v,openForSheetSubUnitId:C,onChange:W=>{if(W.some(G=>!l.isValidRange(G.range)||G.range.endColumn<G.range.startColumn||G.range.endRow<G.range.startRow))return;const X=t.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),K=X.getActiveSheet(),Y=X.getUnitId(),j=K.getSheetId(),z=W.map(G=>{const J={...G.range},ee=K.getRowCount(),ie=K.getColumnCount();return m.setEndForRange(J,ee,ie),J}),F=k(z);if(r.setRangeErrorMsg(F),F)return;const Z=K.getName(),x=z.map(G=>{const J=q.serializeRange(G);return J==="NaN"?"":J}).filter(G=>!!G).join(","),B={ranges:z,unitId:Y,subUnitId:j,unitType:oe.SelectRange,name:`${Z}(${x})`};if(B.ranges.length===1){const{startRow:G,endRow:J,startColumn:ee,endColumn:ie}=B.ranges[0];G===0&&J===K.getRowCount()-1&&ee===0&&K.getColumnCount()-1===ie&&(B.unitType=oe.Worksheet,B.name=`${Z}`)}r.setRule(B)}}),S&&_.jsx("span",{className:ue.sheetPermissionPanelNameInputErrorText,children:S})]}),_.jsx($.FormLayout,{className:ue.sheetPermissionPanelTitle,label:o.t("permission.panel.permissionDirection"),children:_.jsx($.Input,{value:(U=s==null?void 0:s.description)!=null?U:"",onChange:W=>r.setRule({description:W}),placeholder:o.t("permission.panel.permissionDirectionPlaceholder")})}),_.jsx($.FormLayout,{className:ue.sheetPermissionPanelTitle,label:o.t("permission.panel.editPermission"),children:_.jsxs($.RadioGroup,{value:b,onChange:W=>{R(W),W==="onlyMe"&&c.setSelectUserList([])},className:ue.radioGroupVertical,children:[_.jsx($.Radio,{value:"onlyMe",children:_.jsx("span",{className:ue.text,children:o.t("permission.panel.onlyICanEdit")})}),_.jsx($.Radio,{value:"designedUserCanEdit",children:_.jsx("span",{className:ue.text,children:o.t("permission.panel.designedUserCanEdit")})})]})}),b==="designedUserCanEdit"&&_.jsx("div",{className:ue.sheetPermissionDesignPersonPanel,children:_.jsxs(ja,{loading:O,children:[_.jsxs("div",{className:ue.sheetPermissionDesignPersonPanelHeader,children:[_.jsx("span",{children:o.t("permission.panel.designedPerson")}),_.jsx("span",{className:ue.sheetPermissionDesignPersonPanelHeaderAdd,onClick:D,children:o.t("permission.panel.addPerson")})]}),_.jsx("div",{className:ue.sheetPermissionDesignPersonPanelSplit}),_.jsx("div",{className:ue.sheetPermissionDesignPersonPanelContent,children:(I==null?void 0:I.length)>0?I.map(W=>{var X,K,Y;return _.jsxs("div",{className:ue.sheetPermissionDesignPersonPanelContentItem,children:[_.jsx($.Avatar,{size:24,src:(X=W.subject)==null?void 0:X.avatar}),_.jsx("span",{className:ue.sheetPermissionDesignPersonPanelContentItemName,children:(K=W.subject)==null?void 0:K.name}),_.jsx($.Select,{className:ue.sheetPermissionDesignPersonPanelContentItemSelect,value:"edit",onChange:j=>{j==="delete"&&c.setSelectUserList(I.filter(z=>{var F,Z;return((F=z.subject)==null?void 0:F.userID)!==((Z=W.subject)==null?void 0:Z.userID)}))},options:[{label:`${o.t("permission.panel.canEdit")}`,value:"edit"},{label:`${o.t("permission.panel.delete")}`,value:"delete"}]})]},(Y=W.subject)==null?void 0:Y.userID)}):_.jsxs("div",{className:ue.sheetPermissionUserListEmpty,children:[_.jsx("img",{width:240,height:120,src:Fa,alt:""}),_.jsx("p",{className:ue.sheetPermissionUserListEmptyText,children:o.t("permission.dialog.userEmpty")})]})})]})}),_.jsx($.FormLayout,{className:ue.sheetPermissionPanelTitle,label:o.t("permission.panel.viewPermission"),children:_.jsxs($.RadioGroup,{value:P,onChange:W=>y(W),className:ue.radioGroupVertical,children:[_.jsx($.Radio,{value:ln.othersCanView,children:_.jsx("span",{className:ue.text,children:o.t("permission.panel.othersCanView")})}),_.jsx($.Radio,{value:ln.noOneElseCanView,children:_.jsx("span",{className:ue.text,children:o.t("permission.panel.noOneElseCanView")})})]})})]})},Xa=(n=[])=>{const o=l.useDependency(Ct);L.useEffect(()=>{const e=n.map(t=>o.addShape({range:t,style:{hasAutoFill:!1,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&&o.removeShape(t)})}},[n])},jg="data:image/png;base64,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",ce={sheetPermissionListPanelWrapper:"univer-sheet-permission-list-panel-wrapper",sheetPermissionListPanelHeader:"univer-sheet-permission-list-panel-header",sheetPermissionListPanelHeaderType:"univer-sheet-permission-list-panel-header-type",sheetPermissionListPanelHeaderTypeBottom:"univer-sheet-permission-list-panel-header-type-bottom",sheetPermissionListPanelHeaderSelect:"univer-sheet-permission-list-panel-header-select",sheetPermissionListItemHeaderIcon:"univer-sheet-permission-list-item-header-icon",sheetPermissionListItem:"univer-sheet-permission-list-item",sheetPermissionListItemHeader:"univer-sheet-permission-list-item-header",sheetPermissionListItemHeaderName:"univer-sheet-permission-list-item-header-name",sheetPermissionListItemHeaderOperator:"univer-sheet-permission-list-item-header-operator",sheetPermissionListItemSplit:"univer-sheet-permission-list-item-split",sheetPermissionListItemContentEdit:"univer-sheet-permission-list-item-content-edit",sheetPermissionListItemContentView:"univer-sheet-permission-list-item-content-view",sheetPermissionListItemContentDesc:"univer-sheet-permission-list-item-content-desc",sheetPermissionListEmpty:"univer-sheet-permission-list-empty",sheetPermissionListEmptyText:"univer-sheet-permission-list-empty-text",sheetPermissionListItemContentTitle:"univer-sheet-permission-list-item-content-title",sheetPermissionListItemContentSub:"univer-sheet-permission-list-item-content-sub"},Xg=()=>{const[n,o]=L.useState(!0),[e,t]=L.useState(!1),i=l.useDependency(Ce),r=l.useDependency(l.LocaleService),s=l.useDependency(m.RangeProtectionRuleModel),a=l.useDependency(m.WorksheetProtectionRuleModel),d=l.useDependency(l.IUniverInstanceService).getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),u=d.getUnitId(),h=l.useDependency(l.ICommandService),f=l.useDependency(T.ISidebarService),S=l.useDependency(l.IAuthzIoService),g=l.useDependency(l.IPermissionService),v=l.useDependency(l.UserManagerService).getCurrentUser(),[C,I]=L.useState([]);T.useObservable(a.ruleRefresh$),T.useObservable(s.ruleRefresh$);const b=L.useCallback(async k=>{var Z;const H=d.getActiveSheet(),V=d.getUnitId(),U=H.getSheetId(),W=[],X=[];d.getSheets().forEach(x=>{const B=x.getSheetId();s.getSubunitRuleList(V,B).forEach(ee=>{ee.permissionId&&ee.name&&W.push(ee.permissionId)});const J=a.getRule(V,B);J!=null&&J.permissionId&&J.name&&X.push(J.permissionId)});const K=[...W,...X],Y=await S.list({objectIDs:K,unitID:V,actions:[Q.View,Q.Edit]}),j=s.getSubunitRuleList(V,U).map(x=>x.permissionId),z=(Z=a.getRule(V,U))==null?void 0:Z.permissionId;z&&j.push(z);const F=Y.filter(x=>{var B;return j.includes(x.objectID)||x.objectID===((B=a.getRule(V,U))==null?void 0:B.permissionId)});return k?F:Y},[]),[R,P]=L.useState([]);L.useEffect(()=>{const k=A.merge(s.ruleChange$,a.ruleChange$).subscribe(async()=>{const H=await b(n);P(H)});return()=>{k.unsubscribe()}},[n]),L.useEffect(()=>{const k=d.activeSheet$.subscribe(async()=>{const H=await b(!0);P(H)});return()=>{k.unsubscribe()}},[]);const y=k=>{const{unitId:H,subUnitId:V,unitType:U}=k;let W;U===oe.Worksheet?W=h.executeCommand(Pt.id,{unitId:H,subUnitId:V,rule:k}):U===oe.SelectRange&&(W=h.executeCommand(m.DeleteRangeProtectionCommand.id,{unitId:H,subUnitId:V,rule:k})),W&&(t(!e),k.ranges===C&&I([]))};Xa(C);const O=new Map;d.getSheets().forEach(k=>{const H=k.getSheetId();s.getSubunitRuleList(u,H).forEach(W=>{O.set(W.permissionId,W)});const U=a.getRule(u,H);U&&O.set(U==null?void 0:U.permissionId,U)});const N=k=>{i.setRule(k),i.setOldRule(k),h.executeCommand(m.SetWorksheetActiveOperation.id,{unitId:k.unitId,subUnitId:k.subUnitId});const H={header:{title:"permission.panel.title"},children:{label:Un,showDetail:!0},width:330,footer:{label:Bn,showDetail:!0}};f.open(H)},D=async k=>{o(k);const H=await b(k);P(H)};return _.jsxs("div",{className:ce.sheetPermissionListPanelWrapper,children:[_.jsxs("div",{className:ce.sheetPermissionListPanelHeader,children:[_.jsxs("div",{className:ce.sheetPermissionListPanelHeaderType,onClick:()=>D(!0),children:[_.jsx("div",{className:he({[ce.sheetPermissionListPanelHeaderSelect]:n}),children:r.t("permission.panel.currentSheet")}),n&&_.jsx("div",{className:ce.sheetPermissionListPanelHeaderTypeBottom})]}),_.jsxs("div",{className:ce.sheetPermissionListPanelHeaderType,onClick:()=>D(!1),children:[_.jsx("div",{className:he({[ce.sheetPermissionListPanelHeaderSelect]:!n}),children:r.t("permission.panel.allSheet")}),!n&&_.jsx("div",{className:ce.sheetPermissionListPanelHeaderTypeBottom})]})]}),(R==null?void 0:R.length)>0?_.jsx("div",{className:ce.sheetPermissionListPanelContent,children:R==null?void 0:R.map(k=>{var Z,x,B,G,J;const H=O.get(k.objectID);if(!H)return null;const V=k.actions.find(ee=>ee.action===Q.Edit),U=V==null?void 0:V.allowed,W=k.actions.find(ee=>ee.action===Q.View),X=W==null?void 0:W.allowed,Y=((x=(Z=g.getPermissionPoint(new m.WorkbookManageCollaboratorPermission(u).id))==null?void 0:Z.value)!=null?x:!1)||v.userID===((B=k.creator)==null?void 0:B.userID);let j="";const z=d.getSheetBySheetId(H.subUnitId),F=z==null?void 0:z.getName();if(H.unitType===oe.SelectRange){const ee=H.ranges,ie=ee!=null&&ee.length?ee.map(fe=>{const Ie=q.serializeRange(fe);return Ie==="NaN"?"":Ie}).filter(fe=>!!fe).join(","):"";j=`${F}(${ie})`}else H.unitType===oe.Worksheet&&(j=F||"");return _.jsxs("div",{className:ce.sheetPermissionListItem,onMouseMove:()=>{const{subUnitId:ee,unitType:ie}=H,fe=d.getActiveSheet();if(!fe)return!1;const Ie=fe.getSheetId();if(ee!==Ie)return!1;if(ie===oe.SelectRange){const He=H.ranges||[];He!==C&&I(He)}else if(ie===oe.Worksheet){const He=[{startRow:0,endRow:fe.getRowCount()-1,startColumn:0,endColumn:fe.getColumnCount()-1}];He!==C&&I(He)}},onMouseLeave:()=>I([]),children:[_.jsxs("div",{className:ce.sheetPermissionListItemHeader,children:[_.jsx($.Tooltip,{title:j,children:_.jsx("div",{className:ce.sheetPermissionListItemHeaderName,children:j})}),Y&&_.jsxs("div",{className:ce.sheetPermissionListItemHeaderOperator,children:[_.jsx($.Tooltip,{title:r.t("permission.panel.edit"),children:_.jsx("div",{className:ce.sheetPermissionListItemHeaderIcon,onClick:()=>N(H),children:_.jsx(Ar,{})})}),_.jsx($.Tooltip,{title:r.t("permission.panel.delete"),children:_.jsx("div",{className:ce.sheetPermissionListItemHeaderIcon,onClick:()=>y(H),children:_.jsx(Gi,{})})})]})]}),_.jsx("div",{className:ce.sheetPermissionListItemSplit}),_.jsxs("div",{className:ce.sheetPermissionListItemContent,children:[_.jsxs("div",{className:ce.sheetPermissionListItemContentEdit,children:[_.jsx($.Tooltip,{title:(G=k.creator)==null?void 0:G.userID,children:_.jsx("div",{children:_.jsx($.Avatar,{src:(J=k.creator)==null?void 0:J.avatar,style:{marginRight:6},size:24})})}),_.jsx("span",{className:ce.sheetPermissionListItemContentTitle,children:r.t("permission.panel.created")}),_.jsx("span",{className:ce.sheetPermissionListItemContentSub,children:U?`${r.t("permission.panel.iCanEdit")}`:`${r.t("permission.panel.iCanNotEdit")}`})]}),_.jsxs("div",{className:ce.sheetPermissionListItemContentView,children:[_.jsx("span",{className:ce.sheetPermissionListItemContentTitle,children:r.t("permission.panel.viewPermission")}),_.jsx("span",{className:ce.sheetPermissionListItemContentSub,children:X?`${r.t("permission.panel.iCanView")}`:`${r.t("permission.panel.iCanNotView")}`})]}),H.description&&_.jsx($.Tooltip,{title:H.description,children:_.jsx("div",{className:ce.sheetPermissionListItemContentDesc,children:H.description})})]})]},k.objectID)})}):_.jsxs("div",{className:ce.sheetPermissionListEmpty,children:[_.jsx("img",{width:240,height:120,src:jg,alt:""}),_.jsx("p",{className:ce.sheetPermissionListEmptyText,children:r.t("permission.dialog.listEmpty")})]})]})},zg=({showDetail:n,fromSheetBar:o})=>n?_.jsx(Fg,{fromSheetBar:o}):_.jsx(Xg,{}),Qr={sheetPermissionPanelFooter:"univer-sheet-permission-panel-footer",sheetPermissionPanelFooterCancel:"univer-sheet-permission-panel-footer-cancel",sheetPermissionPanelAddButton:"univer-sheet-permission-panel-add-button"},Yg=()=>{var g,p,v,C;const n=l.useDependency(T.ISidebarService),o=l.useDependency(l.LocaleService),e=l.useDependency(l.IUniverInstanceService),t=l.useDependency(l.IPermissionService),i=e.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),r=i.getUnitId(),s=T.useObservable(i.activeSheet$),a=(p=(g=t.getPermissionPoint(new m.WorkbookEditablePermission(r).id))==null?void 0:g.value)!=null?p:!1,c=(C=(v=t.getPermissionPoint(new m.WorkbookManageCollaboratorPermission(r).id))==null?void 0:v.value)!=null?C:!1,d=a&&c,u=l.useDependency(Ce),h=l.useDependency(m.WorksheetProtectionRuleModel),f=s==null?void 0:s.getSheetId();if(!f)return null;const S=h.getRule(r,f);return!d||S?null:_.jsx("div",{children:_.jsxs($.Button,{className:Qr.sheetPermissionPanelAddButton,type:"primary",onClick:()=>{u.resetRule();const I={header:{title:`${o.t("permission.panel.title")}`},children:{label:Un,showDetail:!0},width:330,footer:{label:Bn,showDetail:!0}};n.open(I)},children:[_.jsx("div",{children:"+ "}),o.t("permission.button.addNewPermission")]})})},Zg=()=>{const n=l.useDependency(Ce),o=T.useObservable(n.rule$,n.rule),e=l.useDependency(T.ISidebarService),t=l.useDependency(l.IAuthzIoService),i=l.useDependency(l.LocaleService),r=l.useDependency(l.ICommandService),s=l.useDependency(an),a=T.useObservable(n.rangeErrorMsg$);return _.jsxs("div",{className:Qr.sheetPermissionPanelFooter,children:[_.jsx($.Button,{type:"primary",onClick:async()=>{if(!o.name||a)return;const c=s.selectUserList;o.viewStatus===ln.othersCanView&&s.allUserList.forEach(h=>{if(!c.some(S=>S.id===h.id)){const S={...h,role:_e.Reader};c.push(S)}});const d=Em(c,s.oldCollaboratorList);if(o.permissionId){const h=n.oldRule;if(o.unitType===(h==null?void 0:h.unitType)&&o.name===h.name&&o.description===h.description&&o.ranges===h.ranges&&!d)await t.putCollaborators({objectID:o.permissionId,unitID:o.unitId,collaborators:c});else{let f=o.permissionId;d||(o.unitType===oe.Worksheet?f=await t.create({worksheetObject:{collaborators:c,unitID:o.unitId,name:o.name,strategies:[{role:_e.Editor,action:Q.Edit},{role:_e.Reader,action:Q.View}],scope:kt.SomeCollaborator},objectType:oe.Worksheet}):f=await t.create({selectRangeObject:{collaborators:c,unitID:o.unitId,name:o.name,readScope:kt.SomeCollaborator},objectType:oe.SelectRange})),r.executeCommand(mo.id,{rule:{...o,permissionId:f}})}}else if(o.unitType===oe.Worksheet){const h=await t.create({worksheetObject:{collaborators:c,unitID:o.unitId,name:o.name,strategies:[{role:_e.Editor,action:Q.Edit},{role:_e.Reader,action:Q.View}],scope:kt.SomeCollaborator},objectType:oe.Worksheet}),{ranges:f=[],...S}=o;S.permissionId=h,r.executeCommand(Fn.id,{rule:S,unitId:o.unitId})}else if(o.unitType===oe.SelectRange){const h=await t.create({selectRangeObject:{collaborators:c,unitID:o.unitId,name:o.name,readScope:kt.SomeCollaborator},objectType:oe.SelectRange});r.executeCommand(m.AddRangeProtectionCommand.id,{rule:o,permissionId:h})}n.resetRule(),s.setSelectUserList([]);const u={header:{title:`${i.t("permission.panel.title")}`},children:{label:Un,showDetail:!1},width:330,footer:{label:Bn,showDetail:!1}};e.open(u)},children:i.t("permission.button.confirm")}),_.jsx($.Button,{className:Qr.sheetPermissionPanelFooterCancel,onClick:()=>{n.resetRule(),s.setSelectUserList([]),e.close()},children:i.t("permission.button.cancel")})]})},Gg=({showDetail:n})=>n?_.jsx(Zg,{}):_.jsx(Yg,{}),Me={sheetPermissionUserDialogWrapper:"univer-sheet-permission-user-dialog-wrapper",sheetPermissionUserDialogSearchInput:"univer-sheet-permission-user-dialog-search-input",sheetPermissionUserList:"univer-sheet-permission-user-list",sheetPermissionUserListEmpty:"univer-sheet-permission-user-list-empty",sheetPermissionUserListEmptyText:"univer-sheet-permission-user-list-empty-text",sheetPermissionUserItem:"univer-sheet-permission-user-item",sheetPermissionUserItemName:"univer-sheet-permission-user-item-name",sheetPermissionSplit:"univer-sheet-permission-split",sheetPermissionUserDialogFooter:"univer-sheet-permission-user-dialog-footer",sheetPermissionUserDialogFooterConfirm:"univer-sheet-permission-user-dialog-footer-confirm",sheetPermissionUserDialogButton:"univer-sheet-permission-user-dialog-button"},Kg=()=>{const[n,o]=L.useState(""),e=l.useDependency(l.LocaleService),t=l.useDependency(T.IDialogService),i=l.useDependency(an),s=i.userList.filter(u=>{var h;return((h=u.subject)==null?void 0:h.name.toLocaleLowerCase().includes(n.toLocaleLowerCase()))&&u.role===_e.Editor}),[a,c]=L.useState(i.selectUserList),d=u=>{if((a==null?void 0:a.findIndex(f=>{var S,g;return((S=f.subject)==null?void 0:S.userID)===((g=u.subject)==null?void 0:g.userID)}))===-1){const f={...u};c([...a,f])}else{const f=a.filter(S=>{var g,p;return((g=S.subject)==null?void 0:g.userID)!==((p=u.subject)==null?void 0:p.userID)});c(f)}};return _.jsxs("div",{className:Me.sheetPermissionUserDialogWrapper,children:[_.jsx("div",{className:Me.sheetPermissionUserDialogSearch,children:_.jsx($.Input,{placeholder:"search",className:Me.sheetPermissionUserDialogSearchInput,value:n,onChange:u=>o(u)})}),_.jsx("div",{className:Me.sheetPermissionUserList,children:(s==null?void 0:s.length)>0?_.jsx(_.Fragment,{children:s==null?void 0:s.map(u=>{var h,f,S;return _.jsxs("div",{className:Me.sheetPermissionUserItem,onClick:()=>d(u),children:[_.jsx($.Avatar,{src:(h=u.subject)==null?void 0:h.avatar,size:24}),_.jsx("div",{className:Me.sheetPermissionUserItemName,children:(f=u.subject)==null?void 0:f.name}),(a==null?void 0:a.findIndex(g=>{var p,v;return((p=g.subject)==null?void 0:p.userID)===((v=u.subject)==null?void 0:v.userID)}))!==-1&&_.jsx("div",{children:_.jsx(dt,{})})]},(S=u.subject)==null?void 0:S.userID)})}):_.jsxs("div",{className:Me.sheetPermissionUserListEmpty,children:[_.jsx("img",{width:240,height:120,src:Fa,alt:""}),_.jsx("p",{className:Me.sheetPermissionUserListEmptyText,children:e.t("permission.dialog.userEmpty")})]})}),_.jsx("div",{className:Me.sheetPermissionSplit}),_.jsxs("div",{className:Me.sheetPermissionUserDialogFooter,children:[_.jsx($.Button,{className:Me.sheetPermissionUserDialogButton,onClick:()=>t.close(eo),children:e.t("permission.button.cancel")}),_.jsx($.Button,{type:"primary",onClick:()=>{i.setSelectUserList(a),t.close(eo)},className:he(Me.sheetPermissionUserDialogFooterConfirm,Me.sheetPermissionUserDialogButton),children:e.t("permission.button.confirm")})]})]})},ht={sheetPermissionDialogWrapper:"univer-sheet-permission-dialog-wrapper",sheetPermissionDialogSplit:"univer-sheet-permission-dialog-split",sheetPermissionDialogItem:"univer-sheet-permission-dialog-item",sheetPermissionUserDialogFooter:"univer-sheet-permission-user-dialog-footer",sheetPermissionUserDialogFooterConfirm:"univer-sheet-permission-user-dialog-footer-confirm",sheetPermissionUserDialogButton:"univer-sheet-permission-user-dialog-button"},qg=()=>{const n=l.useDependency(l.LocaleService),o=l.useDependency(l.IUniverInstanceService),e=l.useDependency(l.IAuthzIoService),t=l.useDependency(m.WorksheetProtectionPointModel),i=l.useDependency(T.IDialogService),r=l.useDependency(l.IPermissionService),s=o.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),a=s.getActiveSheet();if(!a)throw new Error("No active sheet found");const[c,d]=L.useState([]),u=l.useDependency(l.ICommandService),[h,f]=L.useState(()=>!!t.getRule(s.getUnitId(),a.getSheetId())),[S,g]=L.useState(()=>Object.keys(no).reduce((v,C)=>(v[C]={text:n.t(`permission.panel.${no[Number(C)]}`),allowed:!0},v),{}));L.useEffect(()=>{(async()=>{const C=s.getUnitId(),I=await e.listCollaborators({objectID:C,unitID:C});d(I)})()},[]),L.useEffect(()=>{(async()=>{const C=s.getUnitId(),I=t.getRule(C,a.getSheetId());if(!I)return;f(!0);const R=(await e.list({unitID:s.getUnitId(),objectIDs:[I.permissionId],actions:xf}))[0].strategies.reduce((P,y)=>(no[y.action]&&(P[y.action]={text:n.t(`permission.panel.${no[y.action]}`),allowed:y.role!==_e.Owner}),P),{});g(R),setTimeout(()=>{f(!1)},100)})()},[]);const p=async()=>{const v=o.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),C=v==null?void 0:v.getActiveSheet();if(!C)throw new Error("No active sheet found");const I=v.getUnitId(),b=C.getSheetId(),R=t.getRule(I,b),P=Object.keys(S).map(O=>({action:Number(O),role:S[O].allowed?_e.Editor:_e.Owner}));let y=R==null?void 0:R.permissionId;y?e.update({objectType:oe.Worksheet,objectID:y,unitID:I,strategies:P,share:void 0,name:""}).then(()=>{m.getAllWorksheetPermissionPoint().forEach(O=>{const N=new O(I,b),D=N.subType,k=P.find(H=>H.action===D);k&&r.updatePermissionPoint(N.id,k.role===_e.Editor)})}):(y=await e.create({objectType:oe.Worksheet,worksheetObject:{unitID:I,collaborators:c,name:"",strategies:P,scope:kt.AllCollaborator}}),u.executeCommand(m.SetWorksheetPermissionPointsCommand.id,{rule:{permissionId:y,unitId:I,subUnitId:b}}))};return _.jsx(ja,{loading:h,children:_.jsx("div",{className:ht.sheetPermissionDialogWrapper,children:_.jsxs(_.Fragment,{children:[_.jsx("div",{className:ht.sheetPermissionDialogSplit}),Object.keys(S).map(v=>{const C=S[v],{text:I,allowed:b}=C;return _.jsxs("div",{className:ht.sheetPermissionDialogItem,children:[_.jsx("div",{children:I}),_.jsx($.Switch,{defaultChecked:b,onChange:()=>{g({...S,[v]:{...C,allowed:!b}})}})]},I)}),_.jsx("div",{className:ht.sheetPermissionDialogSplit}),_.jsxs("div",{className:ht.sheetPermissionUserDialogFooter,children:[_.jsx($.Button,{className:ht.sheetPermissionUserDialogButton,onClick:()=>{i.close(to)},children:n.t("permission.button.cancel")}),_.jsx($.Button,{type:"primary",onClick:()=>{p(),i.close(to)},className:he(ht.sheetPermissionUserDialogFooterConfirm,ht.sheetPermissionUserDialogButton),children:n.t("permission.button.confirm")})]})]})})})},Jr={sheetPermissionAlertDialog:"univer-sheet-permission-alert-dialog",sheetPermissionAlertDialogTitle:"univer-sheet-permission-alert-dialog-title",sheetPermissionAlertDialogButton:"univer-sheet-permission-alert-dialog-button"},Qg=({errorMsg:n})=>{const o=l.useDependency(l.LocaleService),e=l.useDependency(T.IDialogService);return _.jsxs("div",{className:Jr.sheetPermissionAlertDialog,children:[_.jsx("h1",{className:Jr.sheetPermissionAlertDialogTitle,children:o.t("permission.dialog.alert")}),_.jsx("p",{children:n||o.t("permission.dialog.alertContent")}),_.jsx("div",{className:Jr.sheetPermissionAlertDialogButton,children:_.jsx($.Button,{type:"primary",onClick:()=>{e.close(qr)},children:o.t("permission.button.confirm")})})]})},za="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNCIgaGVpZ2h0PSI0IiB2aWV3Qm94PSIwIDAgNCA0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWFzayBpZD0ibWFzazBfNzU5XzExMDgiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjRDZEOEQ5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF83NTlfMTEwOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTS0zLjY0MDAyIDMuNDQxNDFMMi4wNzM5NyAtMi4yNzI1OEwyLjc4MTA4IC0xLjU2NTQ4TC0yLjkzMjkxIDQuMTQ4NTJMLTMuNjQwMDIgMy40NDE0MVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0tMS41MTg2OCA1LjU2Mjc1TDQuMTk1MzEgLTAuMTUxMjQ1TDQuOTAyNDIgMC41NTU4NjJMLTAuODExNTc1IDYuMjY5ODZMLTEuNTE4NjggNS41NjI3NVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjYwMjY1NiA3LjY4NDAzTDYuMzE2NjUgMS45NzAwM0w3LjAyMzc2IDIuNjc3MTRMMS4zMDk3NiA4LjM5MTEzTDAuNjAyNjU2IDcuNjg0MDNaIiBmaWxsPSIjRDZEOERCIi8+CjwvZz4KPC9zdmc+",Ya="RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY",Za="RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY",Jg=25,$g=80;class Ga extends w.SheetExtension{constructor(){super();E(this,"_pattern",null);E(this,"_img",new Image);E(this,"renderCache",new Set);this._img.src=za}clearCache(){this.renderCache.clear()}draw(e,t,i,r){const{rowHeightAccumulation:s,columnWidthAccumulation:a,worksheet:c,dataMergeCache:d}=i;c&&(e.save(),this._pattern||(this._pattern=e.createPattern(this._img,"repeat")),this.renderCache.clear(),l.Range.foreach(i.rowColumnSegment,(u,h)=>{if(!c.getColVisible(h)||!c.getRowVisible(u))return;const{selectionProtection:f=[]}=c.getCell(u,h)||{};this._pattern&&(e.fillStyle=this._pattern,f.forEach(S=>{if(S.ruleId&&this.shouldRender(S)){if(this.renderCache.has(S.ruleId))return;this.renderCache.add(S.ruleId),S.ranges.forEach(g=>{const p=this.getCellIndex(g.startRow,g.startColumn,s,a,d),v=this.getCellIndex(g.endRow,g.endColumn,s,a,d);e.fillRect(p.startX,p.startY,v.endX-p.startX,v.endY-p.startY)})}}))}),e.restore())}}class ep extends Ga{constructor(){super();E(this,"uKey",Ya);E(this,"Z_INDEX",Jg)}shouldRender(e){return(e==null?void 0:e[Q.View])!==!1}}class tp extends Ga{constructor(){super();E(this,"uKey",Za);E(this,"Z_INDEX",$g)}shouldRender(e){return(e==null?void 0:e[Q.View])===!1}}var np=Object.defineProperty,ip=Object.getOwnPropertyDescriptor,Ka=(n,o,e,t)=>{for(var i=t>1?void 0:t?ip(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&np(o,e,i),i},dn=(n,o)=>(e,t)=>o(e,t,n);let Ot=class extends l.Disposable{constructor(n,o,e,t){super(),this._config=n,this._menuService=o,this._componentManager=e,this._injector=t,this._init()}_init(){this._initComponents()}_initComponents(){[[Kl,kl],[Uf,Gi],[Bf,Ar],[Ff,dt],[ql,yr],[Un,zg],[Bn,Gg],[Zl,Kg],[Gl,qg],[Ba,Qg]].forEach(([n,o])=>{this.disposeWithMe(this._componentManager.register(n,o))})}};Ot=Ka([l.OnLifecycle(l.LifecycleStages.Rendered,Ot),dn(1,T.IMenuService),dn(2,l.Inject(T.ComponentManager)),dn(3,l.Inject(l.Injector))],Ot);let vo=class extends l.Disposable{constructor(o,e,t,i){super();E(this,"_rangeProtectionCanViewRenderExtension",new ep);E(this,"_rangeProtectionCanNotViewRenderExtension",new tp);this._context=o,this._rangeProtectionRuleModel=e,this._sheetSkeletonManagerService=t,this._permissionService=i,this._initRender(),this._initSkeleton(),this._rangeProtectionRuleModel.ruleChange$.subscribe(r=>{var s,a;((s=r.oldRule)!=null&&s.id&&this._rangeProtectionCanViewRenderExtension.renderCache.has(r.oldRule.id)||this._rangeProtectionCanViewRenderExtension.renderCache.has(r.rule.id))&&this._rangeProtectionCanViewRenderExtension.clearCache(),((a=r.oldRule)!=null&&a.id&&this._rangeProtectionCanNotViewRenderExtension.renderCache.has(r.oldRule.id)||this._rangeProtectionCanNotViewRenderExtension.renderCache.has(r.rule.id))&&this._rangeProtectionCanNotViewRenderExtension.clearCache()})}_initRender(){const o=this._context.mainComponent;o&&(o.getExtensionByKey(Ya)||o.register(this._rangeProtectionCanViewRenderExtension),o.getExtensionByKey(Za)||o.register(this._rangeProtectionCanNotViewRenderExtension))}_initSkeleton(){const o=()=>{var e;this._sheetSkeletonManagerService.reCalculate(),(e=this._context.mainComponent)==null||e.makeDirty()};this.disposeWithMe(A.merge(this._permissionService.permissionPointUpdate$.pipe(A.throttleTime(300,void 0,{trailing:!0})),this._rangeProtectionRuleModel.ruleChange$).pipe().subscribe(o))}};vo=Ka([dn(1,l.Inject(m.RangeProtectionRuleModel)),dn(2,l.Inject(M.SheetSkeletonManagerService)),dn(3,l.IPermissionService)],vo);var op=Object.defineProperty,rp=Object.getOwnPropertyDescriptor,sp=(n,o,e,t)=>{for(var i=t>1?void 0:t?rp(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&op(o,e,i),i},mt=(n,o)=>(e,t)=>o(e,t,n);let ei=class extends l.RxDisposable{constructor(o,e,t,i,r,s,a,c,d){super();E(this,"disposableCollection",new l.DisposableCollection);this._context=o,this._univerInstanceService=e,this._permissionService=t,this._selectionManagerService=i,this._rangeProtectionRuleModel=r,this._headerMoveRenderController=s,this._selectionRenderService=a,this._headerFreezeRenderController=c,this._headerResizeRenderController=d,this._initHeaderMovePermissionInterceptor(),this._initHeaderResizePermissionInterceptor(),this._initRangeFillPermissionInterceptor(),this._initRangeMovePermissionInterceptor(),this._initFreezePermissionInterceptor()}_initHeaderMovePermissionInterceptor(){this.disposeWithMe(this._headerMoveRenderController.interceptor.intercept(this._headerMoveRenderController.interceptor.getInterceptPoints().HEADER_MOVE_PERMISSION_CHECK,{handler:(o,e)=>{const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:i,unitId:r,subUnitId:s}=t;return this._permissionService.composePermission([new m.WorkbookEditablePermission(r).id,new m.WorksheetEditPermission(r,s).id]).every(u=>u.value)?e?!this._rangeProtectionRuleModel.getSubunitRuleList(r,s).reduce((u,h)=>[...u,...h.ranges],[]).filter(u=>l.Rectangle.intersects(u,e)).some(u=>{var p,v;const{startRow:h,startColumn:f,endRow:S,endColumn:g}=u;for(let C=h;C<=S;C++)for(let I=f;I<=g;I++){const b=(v=(p=i.getCell(C,I))==null?void 0:p.selectionProtection)==null?void 0:v[0];if((b==null?void 0:b[Q.Edit])===!1)return!0}return!1}):!0:!1}}))}_initHeaderResizePermissionInterceptor(){this._headerResizeRenderController&&this.disposeWithMe(this._headerResizeRenderController.interceptor.intercept(this._headerResizeRenderController.interceptor.getInterceptPoints().HEADER_RESIZE_PERMISSION_CHECK,{handler:(o,e)=>{var v,C,I,b;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:i,unitId:r,subUnitId:s}=t;if(!this._permissionService.composePermission([new m.WorkbookEditablePermission(r).id,new m.WorksheetEditPermission(r,s).id]).every(R=>R.value))return!1;if(e.row){if(((C=(v=this._permissionService.getPermissionPoint(new m.WorksheetSetRowStylePermission(r,s).id))==null?void 0:v.value)!=null?C:!1)===!1)return!1}else if(e.col&&((b=(I=this._permissionService.getPermissionPoint(new m.WorksheetSetColumnStylePermission(r,s).id))==null?void 0:I.value)!=null?b:!1)===!1)return!1;let c;if(e.row!==void 0?c={startRow:e.row,endRow:e.row,startColumn:0,endColumn:i.getColumnCount()-1}:e.col!==void 0&&(c={startRow:0,endRow:i.getRowCount()-1,startColumn:e.col,endColumn:e.col}),!c)return!0;let u=this._rangeProtectionRuleModel.getSubunitRuleList(r,s).reduce((R,P)=>[...R,...P.ranges],[]).filter(R=>l.Rectangle.intersects(R,c)).some(R=>{var D,k;const{startRow:P,startColumn:y,endRow:O,endColumn:N}=R;for(let H=P;H<=O;H++)for(let V=y;V<=N;V++){const U=(k=(D=i.getCell(H,V))==null?void 0:D.selectionProtection)==null?void 0:k[0];if((U==null?void 0:U[Q.Edit])===!1)return!0}return!1});if(u)return!1;const h=e.row!==void 0?l.RANGE_TYPE.ROW:l.RANGE_TYPE.COLUMN,f=[],S=this._selectionManagerService.getCurrentSelections();let g=!1;return h===l.RANGE_TYPE.ROW?S==null||S.forEach(R=>{var P,y;(((P=R==null?void 0:R.range)==null?void 0:P.rangeType)===l.RANGE_TYPE.ROW||((y=R==null?void 0:R.range)==null?void 0:y.rangeType)===l.RANGE_TYPE.ALL)&&(f.push(R.range),R.range.startRow<=e.row&&R.range.endRow>=e.row&&(g=!0))}):S==null||S.forEach(R=>{var P,y;(((P=R==null?void 0:R.range)==null?void 0:P.rangeType)===l.RANGE_TYPE.COLUMN||((y=R==null?void 0:R.range)==null?void 0:y.rangeType)===l.RANGE_TYPE.ALL)&&(f.push(R.range),R.range.startColumn<=e.col&&R.range.endColumn>=e.col&&(g=!0))}),g?(u=this._rangeProtectionRuleModel.getSubunitRuleList(r,s).reduce((R,P)=>[...R,...P.ranges],[]).filter(R=>f.some(P=>l.Rectangle.intersects(R,P))).some(R=>{var D,k;const{startRow:P,startColumn:y,endRow:O,endColumn:N}=R;for(let H=P;H<=O;H++)for(let V=y;V<=N;V++){const U=(k=(D=i.getCell(H,V))==null?void 0:D.selectionProtection)==null?void 0:k[0];if((U==null?void 0:U[Q.Edit])===!1)return!0}return!1}),!u):!0}}))}_initRangeFillPermissionInterceptor(){this.disposeWithMe(this._selectionRenderService.interceptor.intercept(this._selectionRenderService.interceptor.getInterceptPoints().RANGE_FILL_PERMISSION_CHECK,{handler:(o,e)=>{var g,p,v;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:i,unitId:r,subUnitId:s}=t;if(!this._permissionService.composePermission([new m.WorkbookEditablePermission(r).id,new m.WorksheetEditPermission(r,s).id]).every(C=>C.value))return!1;const c=(g=this._selectionManagerService.getCurrentSelections())==null?void 0:g.map(C=>C.range),d=c==null?void 0:c.find(C=>{const I=gn(e.x,e.y,e.scene,e.skeleton),b=e.skeleton.getCellByIndex(C.endRow,C.endColumn),R=Math.abs(b.endX-I.x),P=Math.abs(b.endY-I.y);return R<=5&&P<=5});if(!d)return!0;const{startRow:u,endRow:h,startColumn:f,endColumn:S}=d;for(let C=u;C<=h;C++)for(let I=f;I<=S;I++){const b=(v=(p=i.getCell(C,I))==null?void 0:p.selectionProtection)==null?void 0:v[0];if((b==null?void 0:b[Q.Edit])===!1||(b==null?void 0:b[Q.View])===!1)return!1}return!0}}))}_initRangeMovePermissionInterceptor(){this.disposeWithMe(this._selectionRenderService.interceptor.intercept(this._selectionRenderService.interceptor.getInterceptPoints().RANGE_MOVE_PERMISSION_CHECK,{handler:(o,e)=>{var f;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:i,unitId:r,subUnitId:s}=t;if(!this._permissionService.composePermission([new m.WorkbookEditablePermission(r).id,new m.WorksheetEditPermission(r,s).id]).every(S=>S.value))return!1;const c=(f=this._selectionManagerService.getCurrentSelections())==null?void 0:f.map(S=>S.range),d=this._rangeProtectionRuleModel.getSubunitRuleList(r,s).reduce((S,g)=>[...S,...g.ranges],[]),u=c==null?void 0:c.filter(S=>d.some(g=>l.Rectangle.intersects(g,S)));return!(u==null?void 0:u.some(S=>{var I,b;const{startRow:g,startColumn:p,endRow:v,endColumn:C}=S;for(let R=g;R<=v;R++)for(let P=p;P<=C;P++){const y=(b=(I=i.getCell(R,P))==null?void 0:I.selectionProtection)==null?void 0:b[0];if((y==null?void 0:y[Q.Edit])===!1)return!0}return!1}))}}))}_initFreezePermissionInterceptor(){this.disposeWithMe(this._headerFreezeRenderController.interceptor.intercept(this._headerFreezeRenderController.interceptor.getInterceptPoints().FREEZE_PERMISSION_CHECK,{handler:(o,e)=>{var s,a;const t=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);return t.getActiveSheet()&&(a=(s=this._permissionService.getPermissionPoint(new m.WorkbookEditablePermission(t.getUnitId()).id))==null?void 0:s.value)!=null?a:!1}}))}};ei=sp([l.OnLifecycle(l.LifecycleStages.Steady,ei),mt(1,l.IUniverInstanceService),mt(2,l.IPermissionService),mt(3,l.Inject(m.SheetsSelectionsService)),mt(4,l.Inject(m.RangeProtectionRuleModel)),mt(5,l.Inject(M.HeaderMoveRenderController)),mt(6,pe),mt(7,l.Inject(M.HeaderFreezeRenderController)),mt(8,l.Optional(M.HeaderResizeRenderController))],ei);var lp=Object.defineProperty,ap=Object.getOwnPropertyDescriptor,cp=(n,o,e,t)=>{for(var i=t>1?void 0:t?ap(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&lp(o,e,i),i},ti=(n,o)=>(e,t)=>o(e,t,n);let ni=class extends l.RxDisposable{constructor(o,e,t,i,r,s){super();E(this,"disposableCollection",new l.DisposableCollection);this._context=o,this._injector=e,this._univerInstanceService=t,this._permissionService=i,this._statusBarController=r,this._rangeProtectionRenderModel=s,this._initStatusBarPermissionInterceptor()}_initStatusBarPermissionInterceptor(){this.disposeWithMe(this._statusBarController.interceptor.intercept(this._statusBarController.interceptor.getInterceptPoints().STATUS_BAR_PERMISSION_CORRECT,{priority:100,handler:(o,e)=>{var c;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return o!=null?o:[];const{worksheet:i,unitId:r,subUnitId:s}=t;return((c=this._permissionService.getPermissionPoint(new m.WorksheetViewPermission(r,s).id))==null?void 0:c.value)===!1?e.forEach(d=>{const u=d.getArrayValue();u.forEach((h,f)=>{h.forEach((S,g)=>{u[f][g]=q.NullValueObject.create()})})}):e.forEach(d=>{const u=d.getArrayValue(),h=d.getCurrentRow(),f=d.getCurrentColumn();u.forEach((S,g)=>{S.forEach((p,v)=>{var b,R;if(((b=i.getCellRaw(g+h,v+f))==null?void 0:b.v)===void 0)return;const I=(R=this._rangeProtectionRenderModel.getCellInfo(r,s,g+h,v+f))==null?void 0:R[0];(I==null?void 0:I[Q.View])===!1&&(u[g][v]=q.NullValueObject.create())})})}),e}}))}};ni=cp([l.OnLifecycle(l.LifecycleStages.Steady,ni),ti(1,l.Inject(l.Injector)),ti(2,l.IUniverInstanceService),ti(3,l.IPermissionService),ti(4,l.Inject(M.StatusBarController)),ti(5,l.Inject(m.RangeProtectionRenderModel))],ni);const qa="worksheet-protection",Qa=25,dp=80;class up extends w.SheetExtension{constructor(){super();E(this,"uKey",qa);E(this,"Z_INDEX",Qa);E(this,"_pattern");E(this,"_img",new Image);this._img.src=za}draw(e,t,i,r){const{rowHeightAccumulation:s,columnWidthAccumulation:a,worksheet:c,dataMergeCache:d}=i;if(!c)return!1;e.save(),this._pattern||(this._pattern=e.createPattern(this._img,"repeat"));const{startRow:u,startColumn:h,endRow:f,endColumn:S}=i.rowColumnSegment,g=this.getCellIndex(u,h,s,a,d),p=this.getCellIndex(f,S,s,a,d),{hasWorksheetRule:v=!1,selectionProtection:C=[]}=c.getCell(u,h)||{};if(this._pattern){if(C.length>0){const I=C[0];(I==null?void 0:I[Q.View])?this.setZIndex(Qa):this.setZIndex(dp)}e.fillStyle=this._pattern,v&&e.fillRect(g.startX,g.startY,p.endX-g.startX,p.endY-g.startY),e.restore()}}setZIndex(e){this.Z_INDEX=e}}var hp=Object.defineProperty,mp=Object.getOwnPropertyDescriptor,fp=(n,o,e,t)=>{for(var i=t>1?void 0:t?mp(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&hp(o,e,i),i},Ja=(n,o)=>(e,t)=>o(e,t,n);let ii=class extends l.Disposable{constructor(o,e){super();E(this,"_worksheetProtectionRenderExtension",new up);this._renderManagerService=o,this._univerInstanceService=e,this._initRender()}_initRender(){const o=t=>{const i=t&&this._renderManagerService.getRenderById(t),r=i&&i.mainComponent;r&&(r.getExtensionByKey(qa)||r.register(this._worksheetProtectionRenderExtension))};this.disposeWithMe(this._renderManagerService.currentRender$.subscribe(t=>{t&&o(t)}));const e=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);e&&o(e.getUnitId())}};ii=fp([l.OnLifecycle(l.LifecycleStages.Ready,ii),Ja(0,l.Inject(w.IRenderManagerService)),Ja(1,l.Inject(l.IUniverInstanceService))],ii);const Sp=l.createInterceptorKey("PRINTING_RANGE"),gp=l.createInterceptorKey("PRINTING_COMPONENT_COLLECT");class $r extends l.Disposable{constructor(){super();E(this,"interceptor",new l.InterceptorManager({PRINTING_RANGE:Sp,PRINTING_COMPONENT_COLLECT:gp}));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}))}}var pp=Object.defineProperty,vp=Object.getOwnPropertyDescriptor,Cp=(n,o,e,t)=>{for(var i=t>1?void 0:t?vp(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&pp(o,e,i),i},oi=(n,o)=>(e,t)=>o(e,t,n);let Co=class extends l.Disposable{constructor(n,o,e,t,i){super(),this._selectionManagerService=n,this._themeService=o,this._instanceSrv=e,this._cmdSrv=t,this._definedNamesService=i,this._init()}_init(){this.disposeWithMe(A.merge(this._selectionManagerService.selectionMoveStart$,this._selectionManagerService.selectionMoving$,this._selectionManagerService.selectionMoveEnd$).pipe(A.filter(n=>!!n)).subscribe(n=>{this._syncDefinedNameRange(n)})),this.disposeWithMe(this._definedNamesService.focusRange$.subscribe(async n=>{if(n==null)return;const{unitId:o}=n;let{formulaOrRefString:e}=n;if(e.substring(0,1)===q.operatorToken.EQUALS&&(e=e.substring(1)),!q.isReferenceStrings(e))return;const i=this._instanceSrv.getUnit(o),r=await this._getSelections(i,o,e);this._selectionManagerService.setSelections(r),this._cmdSrv.executeCommand(m.ScrollToCellOperation.id,r[0].range)}))}_syncDefinedNameRange(n){if(n.length===0)return;const o=n[n.length-1],e=this._instanceSrv.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),t=e==null?void 0:e.getActiveSheet();t&&this._definedNamesService.setCurrentRange({range:o.range,unitId:e.getUnitId(),sheetId:t.getSheetId()})}async _getSelections(n,o,e){const t=e.split(",");let i=n.getActiveSheet();if(!i)return[];const r=[];for(let s=0;s<t.length;s++){const a=t[s].trim(),c=q.deserializeRangeWithSheet(a.trim());if(s===0){const u=n.getSheetBySheetName(c.sheetName);u&&i.getSheetId()!==u.getSheetId()&&(i=u,await this._cmdSrv.executeCommand(m.SetWorksheetActivateCommand.id,{subUnitId:i.getSheetId(),unitId:o}))}if(i.getName()!==c.sheetName)continue;let d=null;if(s===t.length-1){const u=c.range,{startRow:h,startColumn:f,endRow:S,endColumn:g}=u;d=m.getPrimaryForRange({startRow:h,startColumn:f,endRow:S,endColumn:g},i)}r.push({range:c.range,style:m.getNormalSelectionStyle(this._themeService),primary:d})}return r}};Co=Cp([l.OnLifecycle(l.LifecycleStages.Rendered,Co),oi(0,l.Inject(m.SheetsSelectionsService)),oi(1,l.Inject(l.ThemeService)),oi(2,l.IUniverInstanceService),oi(3,l.ICommandService),oi(4,q.IDefinedNamesService)],Co);var _p=Object.defineProperty,Ip=Object.getOwnPropertyDescriptor,bp=(n,o,e,t)=>{for(var i=t>1?void 0:t?Ip(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&_p(o,e,i),i},es=(n,o)=>(e,t)=>o(e,t,n);let ts=class extends l.Disposable{constructor(o,e,t,i){super();E(this,"_initialize",()=>{const o=new l.DisposableCollection;this.disposeWithMe(this._selectionManagerService.selectionMoveEnd$.subscribe(()=>{o.dispose(),this._selectionRenderService.getSelectionControls().forEach(t=>{o.add(l.toDisposable(t.selectionMoved$.subscribe(i=>{if(!i)return;const r=t.model.getRange(),s={startRow:r.startRow,startColumn:r.startColumn,endRow:r.endRow,endColumn:r.endColumn,rangeType:r.rangeType},a={startRow:i.startRow,startColumn:i.startColumn,endRow:i.endRow,endColumn:i.endColumn,rangeType:r.rangeType};if(s.startRow===a.startRow&&s.startColumn===a.startColumn||a.startRow<0||a.startColumn<0)return;const c={fromRange:s,toRange:a};this._commandService.executeCommand(m.MoveRangeCommand.id,c)})))})}))});this._context=o,this._selectionRenderService=e,this._selectionManagerService=t,this._commandService=i,this._initialize()}};ts=bp([es(1,l.Inject(pe)),es(2,l.Inject(m.SheetsSelectionsService)),es(3,l.Inject(l.ICommandService))],ts);var $a=Object.defineProperty,Rp=Object.getOwnPropertyDescriptor,Tp=(n,o,e)=>o in n?$a(n,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[o]=e,Ep=(n,o,e,t)=>{for(var i=t>1?void 0:t?Rp(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&$a(o,e,i),i},ns=(n,o)=>(e,t)=>o(e,t,n),ec=(n,o,e)=>Tp(n,typeof o!="symbol"?o+"":o,e);M.UniverSheetsUIPlugin=class extends l.Plugin{constructor(o={},e,t,i){super(),this._config=o,this._injector=e,this._renderManagerService=t,this._univerInstanceService=i,this._config=l.Tools.deepMerge({},ka,this._config)}onStarting(o){[[Dt],[ze,{useClass:M.EditorBridgeService}],[$e,{useClass:M.SheetClipboardService}],[Rt,{useClass:Pl}],[et,{useClass:Ei}],[Ni,{useClass:Qs}],[Di,{useClass:eh}],[lt,{useClass:M.AutoFillService}],[$r],[$i,{useClass:Fl}],[Ct,{useClass:M.MarkSelectionService}],[M.HoverManagerService],[M.DragManagerService],[M.SheetCanvasPopManagerService],[M.CellAlertManagerService],[An],[M.AutoHeightController],[M.FormulaEditorController],[Dn],[M.SheetsRenderService],[Yn,{useFactory:()=>this._injector.createInstance(Yn,this._config)}],[M.StatusBarController],[M.AutoFillController],[go],[Co],[Ce],[an],[ii],[$n],[M.SheetPermissionInterceptorBaseController],[M.SheetPermissionInitController]].forEach(e=>o.add(e)),this._injector.add([Ot,{useFactory:()=>this._injector.createInstance(Ot,this._config)}])}onReady(){this._markSheetAsFocused(),this._registerRenderBasics()}onRendered(){this._registerRenderModules()}_registerRenderBasics(){[[M.SheetSkeletonManagerService],[M.SheetRenderController],[pe,{useClass:M.SheetSelectionRenderService}]].forEach(o=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(l.UniverInstanceType.UNIVER_SHEET,o))})}_registerRenderModules(){[[M.HeaderMoveRenderController],[Rr],[M.HeaderResizeRenderController],[be],[M.SheetsScrollRenderController],[M.HeaderFreezeRenderController],[bn],[ki],[Sr],[Gn],[qn],[Li],[M.HoverRenderController],[M.DragRenderController],[Kn],[M.CellCustomRenderController],[Zr],[ts],[Gr],[hr],[ei],[ni],[vo]].forEach(o=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(l.UniverInstanceType.UNIVER_SHEET,o))})}_markSheetAsFocused(){const o=this._univerInstanceService;o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).pipe(ls.filter(e=>!!e)).subscribe(e=>o.focusUnit(e.getUnitId()))}},ec(M.UniverSheetsUIPlugin,"pluginName","SHEET_UI_PLUGIN"),ec(M.UniverSheetsUIPlugin,"type",l.UniverInstanceType.UNIVER_SHEET),M.UniverSheetsUIPlugin=Ep([l.DependentOn(m.UniverSheetsPlugin),ns(1,l.Inject(l.Injector)),ns(2,w.IRenderManagerService),ns(3,l.IUniverInstanceService)],M.UniverSheetsUIPlugin);var Pp=Object.defineProperty,wp=Object.getOwnPropertyDescriptor,yp=(n,o,e,t)=>{for(var i=t>1?void 0:t?wp(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Pp(o,e,i),i},un=(n,o)=>(e,t)=>o(e,t,n);const Mp=[Ee.id,Be.id];let is=class extends l.Disposable{constructor(n,o,e,t,i,r,s){super(),this._context=n,this._sheetSkeletonManagerService=o,this._commandService=e,this._renderManagerService=t,this._selectionManagerService=i,this._scrollManagerService=r,this._univerInstanceService=s,this._init()}scrollToRange(n){let{endRow:o,endColumn:e,startColumn:t,startRow:i}=n;const r=this._getViewportBounding();if(n.rangeType===l.RANGE_TYPE.ROW?(t=0,e=0):n.rangeType===l.RANGE_TYPE.COLUMN&&(i=0,o=0),r){const s=r.startRow>o?i:o,a=r.startColumn>e?t:e;return this._scrollToCell(s,a)}else return this._scrollToCell(i,t)}_init(){this._initCommandListener(),this._initScrollEventListener(),this._initPointerScrollEvent(),this._initSkeletonListener()}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(Mp.includes(n.id))this._scrollToSelection();else if(n.id===m.ScrollToCellOperation.id){const o=n.params;this.scrollToRange(o)}else if(n.id===ye.id){const o=n.params;this._scrollToSelectionForExpand(o)}}))}_scrollToSelectionForExpand(n){setTimeout(()=>{const o=this._selectionManagerService.getCurrentLastSelection();if(o==null)return;const{startRow:e,startColumn:t,endRow:i,endColumn:r}=o.range,s=this._getViewportBounding();if(s==null)return;const{startRow:a,startColumn:c,endRow:d,endColumn:u}=s;let h=0,f=0;e>a?h=i:i<d?h=e:h=a,t>c?f=r:r<u?f=t:f=c,n.direction===l.Direction.DOWN?h=i:n.direction===l.Direction.UP?h=e:n.direction===l.Direction.RIGHT?f=r:n.direction===l.Direction.LEFT&&(f=t),this._scrollToCell(h,f)},0)}_getFreeze(){var o;const n=(o=this._sheetSkeletonManagerService.getCurrent())==null?void 0:o.skeleton.getWorksheetConfig();if(n!=null)return n.freeze}_initScrollEventListener(){const{scene:n}=this._context;if(n==null)return;const o=n.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);o&&(this.disposeWithMe(l.toDisposable(this._scrollManagerService.rawScrollInfo$.subscribe(e=>{var f;if(e==null){o.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0});return}const t=(f=this._sheetSkeletonManagerService.getCurrent())==null?void 0:f.skeleton;if(!t)return;const{sheetViewStartRow:i,sheetViewStartColumn:r,offsetX:s,offsetY:a}=e,{startX:c,startY:d}=t.getCellByIndexWithNoHeader(i,r),u=c+s,h=d+a;o.scrollToViewportPos({viewportScrollX:u,viewportScrollY:h})}))),this.disposeWithMe(o.onScrollAfter$.subscribeEvent(e=>{var g;if(!e)return;const t=(g=this._sheetSkeletonManagerService.getCurrent())==null?void 0:g.skeleton;if(t==null)return;const i=this._getSheetObject();if(t==null||i==null)return;const{viewportScrollX:r,viewportScrollY:s,scrollX:a,scrollY:c}=e,{row:d,column:u,rowOffset:h,columnOffset:f}=t.getDecomposedOffset(r,s),S={sheetViewStartRow:d,sheetViewStartColumn:u,offsetX:f,offsetY:h};this._scrollManagerService.setScrollStateToCurrSheet(S),this._scrollManagerService.validViewportScrollInfo$.next({...S,scrollX:a,scrollY:c,viewportScrollX:r,viewportScrollY:s})})),this.disposeWithMe(o.onScrollByBar$.subscribeEvent(e=>{var f;const t=(f=this._sheetSkeletonManagerService.getCurrent())==null?void 0:f.skeleton;if(t==null||e.isTrigger===!1)return;const i=this._getSheetObject();if(t==null||i==null)return;const{viewportScrollX:r=0,viewportScrollY:s=0}=e,a=this._getFreeze(),{row:c,column:d,rowOffset:u,columnOffset:h}=t.getDecomposedOffset(r,s);this._commandService.executeCommand(xe.id,{sheetViewStartRow:c+((a==null?void 0:a.ySplit)||0),sheetViewStartColumn:d+((a==null?void 0:a.xSplit)||0),offsetX:h,offsetY:u})})))}_initSkeletonListener(){this.disposeWithMe(l.toDisposable(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(n=>{if(n==null)return;const o={unitId:n.unitId,sheetId:n.sheetId};this._scrollManagerService.setSearchParam(o);const e=this._getSheetObject();if(!e)return;const i=e.scene.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),r=this._scrollManagerService.getScrollStateByParam(o),{viewportScrollX:s,viewportScrollY:a}=this._scrollManagerService.calcViewportScrollFromRowColOffset(r);i&&(r?(i.viewportScrollX=s,i.viewportScrollY=a):(i.viewportScrollX=0,i.viewportScrollY=0),this._updateSceneSize(n))})))}_initPointerScrollEvent(){const n=this._getSheetObject();if(!n)return;const o=this._scrollManagerService,e=n.scene,t=n.spreadsheet,i=e.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),r={x:0,y:0};let s=!1;const a={x:0,y:0},c=.95;let d=null;const u=()=>{if(!i)return;a.x*=c,a.y*=c,r.x+=a.x,r.y+=a.y;const f=a.x,S=a.y;(S!==0||f!==0)&&this._commandService.executeCommand(ot.id,{offsetY:S,offsetX:f}),Math.abs(a.x)>1||Math.abs(a.y)>1?d=requestAnimationFrame(u):d=null},h=()=>{cancelAnimationFrame(d),d=null};t.onPointerDown$.subscribeEvent((f,S)=>{h(),i&&(r.x=f.offsetX,r.y=f.offsetY,s=!0,S.stopPropagation())}),t.onPointerMove$.subscribeEvent((f,S)=>{if(!s||!i)return;const g=f,p=-(g.offsetX-r.x),v=-(g.offsetY-r.y);a.x=-(g.offsetX-r.x),a.y=-(g.offsetY-r.y);const C=p,I=v;(p!==0||v!==0)&&(I!==0||C!==0)&&this._commandService.executeCommand(ot.id,{offsetY:I,offsetX:C}),o.getCurrentScrollState(),r.x=g.offsetX,r.y=g.offsetY,S.stopPropagation()}),t.onPointerUp$.subscribeEvent(f=>{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:o}=this._context,{skeleton:e}=n,t=(h=this._renderManagerService.getRenderById(o))==null?void 0:h.scene;if(e==null||t==null)return;const{rowTotalHeight:i,columnTotalWidth:r,rowHeaderWidthAndMarginLeft:s,columnHeaderHeightAndMarginTop:a}=e,d=this._context.unit.getActiveSheet();if(!d)return;const u=d.getZoomRatio()||1;t==null||t.setScaleValue(u,u),t==null||t.transformByState({width:s+r,height:a+i})}_getSheetObject(){return je(this._context.unit,this._context)}_scrollToSelectionByDirection(n){const o=this._getViewportBounding();if(o==null)return!1;const{startRow:e,startColumn:t,endRow:i,endColumn:r}=o;let s=0,a=0;const{startRow:c,startColumn:d,endRow:u,endColumn:h}=n;c>=e&&(s=u),u<=i&&(s=c),d>=t&&(a=h),h<=r&&(a=d),this._scrollToCell(s,a)}_scrollToSelection(n=!0){const o=this._selectionManagerService.getCurrentLastSelection();if(o==null)return;const{startRow:e,startColumn:t,actualRow:i,actualColumn:r}=o.primary,s=n?i:e,a=n?r:t;this._scrollToCell(s,a)}_getViewportBounding(){var i,r;const n=(i=this._getSheetObject())==null?void 0:i.scene;if(n==null)return;const o=n.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(o==null)return;const e=(r=this._sheetSkeletonManagerService.getCurrent())==null?void 0:r.skeleton;if(e==null)return;const t=o.getBounding();return e.getRowColumnSegment(t)}_scrollToCell(n,o){var P,y,O,N;const{rowHeightAccumulation:e,columnWidthAccumulation:t}=(y=(P=this._sheetSkeletonManagerService.getCurrent())==null?void 0:P.skeleton)!=null?y:{};if(e==null||t==null)return!1;const i=(O=this._getSheetObject())==null?void 0:O.scene;if(i==null)return!1;const r=i.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(r==null||((N=this._sheetSkeletonManagerService.getCurrent())==null?void 0:N.skeleton)==null)return!1;const a=this._context.unit.getActiveSheet();if(!a)return!1;const{startColumn:c,startRow:d,ySplit:u,xSplit:h}=a.getFreeze(),f=this._getViewportBounding();if(f==null)return!1;const{startRow:S,startColumn:g,endRow:p,endColumn:v}=f;let C,I;if(n>=d&&o>=c-h&&(n<=S&&(C=n),n>=p)){const D=e[n]-r.height;for(let k=S;k<=n;k++)if(e[k]>=D){C=k+1;break}}if(o>=c&&n>=d-u&&(o<=g&&(I=o),o>=v)){const D=t[o]-r.width;for(let k=g;k<=o;k++)if(t[k]>=D){I=k+1;break}}if(C===void 0&&I===void 0)return!1;const{offsetX:b,offsetY:R}=this._scrollManagerService.getCurrentScrollState()||{};return this._commandService.syncExecuteCommand(xe.id,{sheetViewStartRow:C,sheetViewStartColumn:I,offsetX:I===void 0?b:0,offsetY:C===void 0?R:0})}};is=yp([un(1,l.Inject(M.SheetSkeletonManagerService)),un(2,l.ICommandService),un(3,w.IRenderManagerService),un(4,l.Inject(m.SheetsSelectionsService)),un(5,l.Inject(be)),un(6,l.IUniverInstanceService)],is);const _o={mobileSheetBarContainer:"univer-mobile-sheet-bar-container",mobileSheetBarSlider:"univer-mobile-sheet-bar-slider",mobileSheetBarItem:"univer-mobile-sheet-bar-item",mobileSheetBarItemActivated:"univer-mobile-sheet-bar-item-activated"};function tc(){const n=It();return n?_.jsx(Op,{workbook:n}):null}function Op(n){const{workbook:o}=n,[e,t]=L.useState([]),[i,r]=L.useState(""),s=L.useRef(new Map),a=l.useDependency(l.ICommandService),c=L.useCallback(()=>{const u=o.getActiveSheet().getSheetId(),h=o.getSheets(),f=o.getActiveSheet(),S=h.filter(g=>!g.isSheetHidden()).map((g,p)=>{var v;return{sheetId:g.getSheetId(),label:g.getName(),index:p,selected:f===g,color:(v=g.getTabColor())!=null?v:void 0}});if(t(S),r(u),s.current.has(u)){const g=s.current.get(u);g&&g.scrollIntoView({behavior:"smooth",block:"nearest"})}s.current.clear()},[o]);L.useEffect(()=>c(),[c]);const d=L.useCallback(u=>{a.executeCommand(m.SetWorksheetActiveOperation.id,{unitId:o.getUnitId(),subUnitId:u})},[a,o]);return L.useEffect(()=>{const u=a.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()},[a,c]),_.jsx("div",{className:_o.mobileSheetBarContainer,children:_.jsx("div",{className:_o.mobileSheetBarSlider,children:e.map(u=>_.jsx("div",{className:he(_o.mobileSheetBarItem,{[_o.mobileSheetBarItemActivated]:u.sheetId===i}),onClick:()=>d(u.sheetId),ref:h=>s.current.set(u.sheetId,h),children:u.label},u.sheetId))})})}var Ap=Object.defineProperty,Np=Object.getOwnPropertyDescriptor,Dp=(n,o,e,t)=>{for(var i=t>1?void 0:t?Np(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Ap(o,e,i),i},At=(n,o)=>(e,t)=>o(e,t,n);let ri=class extends l.Disposable{constructor(n,o,e,t,i,r,s,a){super(),this._config=n,this._injector=o,this._componentManager=e,this._layoutService=t,this._commandService=i,this._shortcutService=r,this._menuService=s,this._uiPartsService=a,this._init()}_init(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts(),this._initWorkbenchParts(),this._initFocusHandler()}_initCustomComponents(){const n=this._componentManager;this.disposeWithMe(n.register(Oi,zs)),this.disposeWithMe(n.register(Nr,Wl)),this.disposeWithMe(n.register(wn,$.ColorPicker)),this.disposeWithMe(n.register(or,T.FontFamily)),this.disposeWithMe(n.register(rr,T.FontFamilyItem)),this.disposeWithMe(n.register(sr,T.FontSize)),this.disposeWithMe(n.register(Dr,zl))}_initCommands(){[Wi,Le,Ui,xi,jt,ye,Ee,Be,Zi,Xi,Fi,ji,Ii,bi,xe,Po,ci,Yi,m.SetBoldCommand,Ft,Pe,In,Zt,Gt,Kt,qt,nr,ir,Ri,Ti,Qt,m.SetItalicCommand,m.SetStrikeThroughCommand,m.SetFontFamilyCommand,m.SetFontSizeCommand,Tn,Pi,En,Pn,Qe,ot,$t,wi,yi,Mi,m.SetUnderlineCommand,Xt,Ye,zi,Bi,on,nn,Wn,Ln,qi,gt,Ut,Ge,Wr,ro,so,lo,ao,co,oo,uo,ho,Fn,Pt,xr,io,mo].forEach(n=>{this.disposeWithMe(this._commandService.registerCommand(n))})}_initMenus(){const{menu:n={}}=this._config;[qs].forEach(o=>{this.disposeWithMe(this._menuService.addMenuItem(this._injector.invoke(o),n))})}_initShortcuts(){[ea,ta,na,ia,oa,ra,sa,la,aa,ca,da,ua,ha,ma,fa,Sa,ga,pa,va,Ca,_a,Pa,ya,Oa,Aa,wa,Ma,Ia,ba,Ra,Ta,Ea,...rl(),ll,sl,al,dl,ul,hl,cl,Jl,$l].forEach(n=>{this.disposeWithMe(this._shortcutService.registerShortcut(n))})}_initWorkbenchParts(){this._uiPartsService.registerComponent(T.BuiltInUIPart.HEADER,()=>l.connectInjector(tc,this._injector))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(l.UniverInstanceType.UNIVER_SHEET,n=>{}))}};ri=Dp([l.OnLifecycle(l.LifecycleStages.Ready,ri),At(1,l.Inject(l.Injector)),At(2,l.Inject(T.ComponentManager)),At(3,T.ILayoutService),At(4,l.ICommandService),At(5,T.IShortcutService),At(6,T.IMenuService),At(7,T.IUIPartsService)],ri);var kp=Object.defineProperty,Hp=Object.getOwnPropertyDescriptor,Vp=(n,o,e,t)=>{for(var i=t>1?void 0:t?Hp(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&kp(o,e,i),i},si=(n,o)=>(e,t)=>o(e,t,n);let os=class extends l.Disposable{constructor(n,o,e,t,i,r){super(),this._context=n,this._layoutService=o,this._contextMenuService=e,this._selectionManagerService=t,this._selectionRenderService=i,this._sheetSkeletonManagerService=r,this._init()}_init(){let n=!1;this.disposeWithMe(this._selectionManagerService.selectionMoveStart$.subscribe(()=>n=!0)),this.disposeWithMe(this._selectionManagerService.selectionMoveEnd$.subscribe(o=>{if(!o||n===!1)return;n=!1;const e=o[0];if(!e.primary)return;const t=this._layoutService.getCanvasElement().getBoundingClientRect(),i=this._selectionRenderService.attachSelectionWithCoord(e),r=e.range.rangeType,{scene:s}=this._context,a=s.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),c=(a==null?void 0:a.viewportScrollX)||0,d=(a==null?void 0:a.viewportScrollY)||0;let u=0,h=0;const S=this._sheetSkeletonManagerService.getCurrent().skeleton.rowHeaderWidth;switch(r){case l.RANGE_TYPE.NORMAL:u=i.rangeWithCoord.startX+t.left-c,h=i.rangeWithCoord.endY+t.top-d;break;case l.RANGE_TYPE.COLUMN:u=i.rangeWithCoord.startX+t.left-c,h=Math.min(t.height/2,i.rangeWithCoord.endY)+40;break;case l.RANGE_TYPE.ROW:u=(t.width-S)/2+20,h=i.rangeWithCoord.endY+t.top-d;break;case l.RANGE_TYPE.ALL:u=i.rangeWithCoord.startX+t.left,h=i.rangeWithCoord.startY+t.top;break;default:u=i.rangeWithCoord.startX+t.left-c,h=i.rangeWithCoord.endY+t.top-d;break}u=l.Tools.clamp(u,S,t.width),h=l.Tools.clamp(h,t.top,t.height),this._contextMenuService.triggerContextMenu({clientX:u,clientY:h,preventDefault:()=>{},stopPropagation:()=>{}},T.MenuPosition.CONTEXT_MENU)}))}};os=Vp([si(1,T.ILayoutService),si(2,T.IContextMenuService),si(3,l.Inject(m.SheetsSelectionsService)),si(4,pe),si(5,l.Inject(M.SheetSkeletonManagerService))],os);class Lp extends pi{constructor(e,t,i=!0,r,s=l.RANGE_TYPE.NORMAL){super(e,t,i,r);E(this,"_fillControlTopLeft");E(this,"_fillControlBottomRight");E(this,"_fillControlTopLeftInner");E(this,"_fillControlBottomRightInner");this._scene=e,this._zIndex=t,this._isHeaderHighlight=i,this._themeService=r,this._rangeType=s,this.initControlPoints()}initControlPoints(){const e=this.defaultStyle,t=e.expandCornerSize||0,i=(e.expandCornerSize||0)/4,r=e.AutofillStrokeWidth||0,s=e.stroke,a=e.AutofillStroke,c=this.zIndex,d=w.Rect;this._fillControlTopLeft=new d(_n.fillTopLeft+c,{zIndex:c+2,width:t,height:t,radius:t/2,strokeWidth:r}),this._fillControlTopLeftInner=new d(_n.fillTopLeftInner+c,{zIndex:c+1,width:i,height:i,radius:i/2,strokeWidth:r}),this._fillControlBottomRight=new d(_n.fillBottomRight+c,{zIndex:c+2,width:t,height:t,radius:t/2,strokeWidth:r}),this._fillControlBottomRightInner=new d(_n.fillBottomRightInner+c,{zIndex:c+1,width:i,height:i,radius:i/2,strokeWidth:r});const u={fill:s,stroke:a,strokeScaleEnabled:!1};this._fillControlTopLeftInner.setProps({...u}),this._fillControlBottomRightInner.setProps({...u});const h=[this._fillControlTopLeft,this._fillControlBottomRight,this._fillControlTopLeftInner,this._fillControlBottomRightInner];switch(this._rangeType){case l.RANGE_TYPE.ROW:this.rowHeaderGroup.addObjects(...h);break;case l.RANGE_TYPE.COLUMN:this.columnHeaderGroup.addObjects(...h);break;case l.RANGE_TYPE.NORMAL:this.selectionShapeGroup.addObjects(...h)}this.getScene().addObjects(h,ps)}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()}updateRange(e){this._selectionModel.setValue(e),this._updateControl(null,this._rowHeaderWidth,this._columnHeaderHeight)}_updateControl(e,t,i){var c,d,u,h;super._updateControl(e,t,i);const r=this.defaultStyle;e==null&&(e=r);const{widgets:s=r.widgets,hasAutoFill:a=r.hasAutoFill}=e;if(this.currentStyle=e,a===!0&&!super._hasWidgets(s)){const{viewportScrollX:f,viewportScrollY:S}=this.getViewportMainScrollInfo(),{endX:g,endY:p}=this.selectionModel;this.transformControlPoint(f,S,g,p),this.fillControlTopLeft.show(),this.fillControlBottomRight.show(),this._fillControlTopLeftInner.show(),this._fillControlBottomRightInner.show()}else(c=this.fillControlTopLeft)==null||c.hide(),(d=this.fillControlBottomRight)==null||d.hide(),(u=this._fillControlTopLeftInner)==null||u.hide(),(h=this._fillControlBottomRightInner)==null||h.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,i=0,r=0){const s=this.currentStyle,a=this.selectionModel.rangeType,c=s.expandCornerSize/4,d=s.expandCornerSize,{startX:u,startY:h,endX:f,endY:S}=this.selectionModel,g=this.getViewportMainScrollInfo(),p=g.width,v=g.height;switch(a){case l.RANGE_TYPE.NORMAL:this.fillControlTopLeft.transformByState({left:-d/2,top:-d/2}),this.fillControlBottomRight.transformByState({left:f-u-d/2,top:S-h-d/2}),this._fillControlTopLeftInner.transformByState({left:-c/2,top:-c/2}),this._fillControlBottomRightInner.transformByState({left:f-u-c/2,top:S-h-c/2});break;case l.RANGE_TYPE.ROW:{const C=Math.min(p/2+e,i),I=-d/2+C,b=-c/2+C;this.fillControlTopLeft.transformByState({left:I,top:-d/2}),this.fillControlBottomRight.transformByState({left:I,top:-d/2+S-h}),this._fillControlTopLeftInner.transformByState({left:b,top:-c/2}),this._fillControlBottomRightInner.transformByState({left:b,top:-c/2+S-h})}break;case l.RANGE_TYPE.COLUMN:{const C=Math.min(+v/2+t,r),I=-d/2+C,b=-c/2+C;this.fillControlTopLeft.transformByState({left:-d/2,top:I}),this.fillControlBottomRight.transformByState({left:-d/2+f-u,top:I}),this._fillControlTopLeftInner.transformByState({left:-c/2,top:b}),this._fillControlBottomRightInner.transformByState({left:-c/2+f-u,top:b})}break;default:console.error("unknown range type")}}}var Wp=Object.defineProperty,xp=Object.getOwnPropertyDescriptor,Up=(n,o,e,t)=>{for(var i=t>1?void 0:t?xp(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&Wp(o,e,i),i},qe=(n,o)=>(e,t)=>o(e,t,n);let Io=class extends xo{constructor(o,e,t,i,r,s,a,c,d,u,h){super(e,t,i,r);E(this,"_workbookSelections");E(this,"_renderDisposable",null);E(this,"_expandingSelection",!1);E(this,"_selectionControls",[]);E(this,"expandingControlMode","bottom-right");this._context=o,this._logService=a,this._commandService=c,this._contextService=d,this._sheetSkeletonManagerService=u,this._scrollManagerService=h,this._workbookSelections=s.getWorkbookSelections(this._context.unitId),this._init()}_init(){const o=this._getSheetObject();this._initEventListeners(o),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._updateControlPointWhenScrolling()}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(o=>{if(o==null){this._logService.error("[SelectionRenderService]: should not receive null!");return}const e=this._context.unitId,{sheetId:t,skeleton:i}=o,{scene:r}=this._context,s=r.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._changeRuntime(i,r,s),this._workbookSelections.getCurrentLastSelection()||this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:e,subUnitId:t,selections:[vi(i)]})}))}_initSelectionChangeListener(){this.disposeWithMe(this._workbookSelections.selectionMoveEnd$.subscribe(o=>{this._reset();for(const e of o){const t=pt(e,this._skeleton);this._addSelectionControlBySelectionData(t)}}))}_initEventListeners(o){const{spreadsheetRowHeader:e,spreadsheetColumnHeader:t,spreadsheet:i,spreadsheetLeftTopPlaceholder:r}=o,{scene:s}=this._context;this._initSpreadsheetEvent(o),this.disposeWithMe(e==null?void 0:e.onPointerUp$.subscribeEvent((a,c)=>{if(this._normalSelectionDisabled())return;const d=this._sheetSkeletonManagerService.getCurrent().skeleton,{row:u}=Xe(a.offsetX,a.offsetY,s,d);_t(this._workbookSelections.getCurrentSelections(),u,l.RANGE_TYPE.ROW)||(this.createNewSelection(a,(i.zIndex||1)+1,l.RANGE_TYPE.ROW,this._getActiveViewport(a)),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()))})),this.disposeWithMe(t==null?void 0:t.onPointerUp$.subscribeEvent((a,c)=>{if(this._normalSelectionDisabled())return;const d=this._sheetSkeletonManagerService.getCurrent().skeleton,{column:u}=Xe(a.offsetX,a.offsetY,s,d);_t(this._workbookSelections.getCurrentSelections(),u,l.RANGE_TYPE.COLUMN)||(this.createNewSelection(a,(i.zIndex||1)+1,l.RANGE_TYPE.COLUMN,this._getActiveViewport(a)),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()))})),this.disposeWithMe(r==null?void 0:r.onPointerUp$.subscribeEvent((a,c)=>{if(this._normalSelectionDisabled())return;this._reset();const d=this._sheetSkeletonManagerService.getCurrent().skeleton,u=Uo(d),h=pt(u,d);this._addSelectionControlBySelectionData(h),this.refreshSelectionMoveStart(),c.stopPropagation(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}))}_initSpreadsheetEvent(o){const{spreadsheet:e}=o;let t;const i=500,r={x:0,y:0},s=()=>{clearTimeout(t)},a=(u,h)=>{this.createNewSelection(u,e.zIndex+1,l.RANGE_TYPE.NORMAL,this._getActiveViewport(u)),h&&this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())};e==null||e.onPointerMove$.subscribeEvent((u,h)=>{(Math.abs(u.offsetX-r.x)>10||Math.abs(u.offsetY-r.y)>10)&&s()});const c=e==null?void 0:e.onPointerDown$.subscribeEvent((u,h)=>{r.x=u.offsetX,r.y=u.offsetY,t=setTimeout(()=>{a(u,!0)},i),h.stopPropagation()}),d=e==null?void 0:e.onPointerUp$.subscribeEvent((u,h)=>{if(this._normalSelectionDisabled())return;clearTimeout(t);const f=10;Math.abs(u.offsetX-r.x)>f||Math.abs(u.offsetY-r.y)>f||(a(u,!1),h.stopPropagation())});this.disposeWithMe(l.toDisposable(c)),this.disposeWithMe(l.toDisposable(d))}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(o=>this._updateSelections(o,m.SelectionMoveType.MOVE_START))),this.disposeWithMe(this.selectionMoving$.subscribe(o=>this._updateSelections(o,m.SelectionMoveType.MOVING))),this.disposeWithMe(this._contextService.subscribeContextValue$(m.DISABLE_NORMAL_SELECTIONS).pipe(A.startWith(!1),A.distinctUntilChanged()).subscribe(o=>{var e;o?((e=this._renderDisposable)==null||e.dispose(),this._renderDisposable=null,this._reset()):this._renderDisposable=l.toDisposable(this.selectionMoveEnd$.subscribe(t=>this._updateSelections(t,m.SelectionMoveType.MOVE_END)))}))}_updateSelections(o,e){const t=this._context.unit,i=t.getUnitId(),r=t.getActiveSheet().getSheetId();o.length!==0&&this._commandService.executeCommand(m.SetSelectionsOperation.id,{unitId:i,subUnitId:r,type:e,selections:o.map(s=>m.convertSelectionDataToRange(s))})}createNewSelection(o,e=0,t=l.RANGE_TYPE.NORMAL,i){this._shouldDetectMergedCells=t===l.RANGE_TYPE.NORMAL;const r=this._skeleton,s=this._scene;if(!s||!r)return;i&&(this._activeViewport=i);const{offsetX:a,offsetY:c}=o,d=s.getRelativeToViewportCoord(w.Vector2.FromArray([a,c]));let{x:u,y:h}=d;const f=s.getVpScrollXYInfoByPosToVp(d),{scaleX:S,scaleY:g}=s.getAncestorScale(),p=this._getCellRangeByCursorPosition(u,h,S,g,f);if(!p)return!1;const{rangeWithCoord:v,primaryWithCoord:C}=p,I={...v,rangeType:t};this._startRangeWhenPointerDown={...v,rangeType:t};let b=this.getActiveSelectionControl();for(const R of this.getSelectionControls())if(R.model.isEqual(I)){b=R;break}(b==null?void 0:b.model.rangeType)!==t&&(this._clearSelectionControls(),b=this.newSelectionControl(s,t)),this._updateSelectionControlRange(b,I,C),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._clearUpdatingListeners(),this._expandingSelection=!1,(t===l.RANGE_TYPE.ROW||t===l.RANGE_TYPE.COLUMN)&&(t===l.RANGE_TYPE.ROW?u=0:t===l.RANGE_TYPE.COLUMN&&(h=0),this._moving(u,h,b,t))}newSelectionControl(o,e){const t=this.getSelectionControls(),i=new Lp(o,t.length,this._isHeaderHighlight,this._themeService,e);this._selectionControls.push(i);const{expandingModeForTopLeft:r,expandingModeForBottomRight:s}=(()=>{switch(e){case l.RANGE_TYPE.NORMAL:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"};case l.RANGE_TYPE.ROW:return{expandingModeForTopLeft:"top",expandingModeForBottomRight:"bottom"};case l.RANGE_TYPE.COLUMN:return{expandingModeForTopLeft:"left",expandingModeForBottomRight:"right"};case l.RANGE_TYPE.ALL:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"};default:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"}}})();return i.fillControlTopLeft.onPointerDown$.subscribeEvent(a=>{this._expandingSelection=!0,this.expandingControlMode=r,this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._fillControlPointerDownHandler(a,e,this._activeViewport)}),i.fillControlBottomRight.onPointerDown$.subscribeEvent(a=>{this._expandingSelection=!0,this.expandingControlMode=s,this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._fillControlPointerDownHandler(a,e,this._activeViewport)}),(e===l.RANGE_TYPE.ROW||e===l.RANGE_TYPE.COLUMN)&&!o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN),i}_getActiveViewport(o){const e=this._getSheetObject();return e==null?void 0:e.scene.getActiveViewportByCoord(w.Vector2.FromArray([o.offsetX,o.offsetY]))}_getSheetObject(){return je(this._context.unit,this._context)}_normalSelectionDisabled(){return this._contextService.getContextValue(m.DISABLE_NORMAL_SELECTIONS)}getSelectionControls(){return this._selectionControls}_fillControlPointerDownHandler(o,e=l.RANGE_TYPE.NORMAL,t,i=w.ScrollTimerType.ALL){var u,h,f;const r=this._skeleton,s=this._scene;if(!s||!r)return;t&&(this._activeViewport=t);const a=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,i),this._scrollTimer.startScroll((u=a==null?void 0:a.left)!=null?u:0,(h=a==null?void 0:a.top)!=null?h:0,a),(f=s.getTransformer())==null||f.clearSelectedObjects();const d=s.getRelativeToViewportCoord(w.Vector2.FromArray([o.offsetX,o.offsetY]));this._setupPointerMoveListener(a,c,e,i,d.x,d.y),this._scenePointerUpSub=s.onPointerUp$.subscribeEvent(S=>{this.endSelection(),this._expandingSelection=!1,this.expandingControlMode="bottom-right",this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),this._shortcutService.setDisable(!1)}),this._shortcutService.setDisable(!0)}_changeCurrCellWhenControlPointerDown(){const o=this.getActiveSelectionControl(),e=this._skeleton;let t;const{startRow:i,startColumn:r,endRow:s,endColumn:a}=o.model;switch(this.expandingControlMode){case"top-left":t=e.getCellByIndex(s,a);break;case"bottom-right":t=e.getCellByIndex(i,r);break;case"left":t=e.getCellByIndex(i,a),t.isMerged=!1,t.isMergedMainCell=!1;break;case"right":t=e.getCellByIndex(i,r),t.isMerged=!1,t.isMergedMainCell=!1;break;case"top":t=e.getCellByIndex(s,r),t.isMerged=!1,t.isMergedMainCell=!1;break;case"bottom":t=e.getCellByIndex(i,r),t.isMerged=!1,t.isMergedMainCell=!1;break;default:t=e.getCellByIndex(i,r)}return o.updateCurrCell(t),t}_moving(o,e,t,i){var D,k,H,V,U,W,X,K,Y,j,z,F,Z;this._shouldDetectMergedCells=i===l.RANGE_TYPE.NORMAL;const r=this._skeleton,s=this._scene,a={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=(D=this._getViewportByCell(a.endRow,a.endColumn))!=null?D:c,u=s.getVpScrollXYInfoByPosToVp(w.Vector2.FromArray([this._startViewportPosX,this._startViewportPosY]),d),{scaleX:h,scaleY:f}=s.getAncestorScale();i===l.RANGE_TYPE.ROW?o=Number.POSITIVE_INFINITY:i===l.RANGE_TYPE.COLUMN&&(e=Number.POSITIVE_INFINITY);const S=this._getCellRangeByCursorPosition(o,e,h,f,u);if(!S)return!1;const{rangeWithCoord:g}=S,p=t.model.currentCell,v=(k=p==null?void 0:p.mergeInfo.startRow)!=null?k:-1,C=(H=p==null?void 0:p.mergeInfo.endRow)!=null?H:-1,I=(V=p==null?void 0:p.mergeInfo.startColumn)!=null?V:-1,b=(U=p==null?void 0:p.mergeInfo.endColumn)!=null?U:-1;let R={startRow:Math.min(g.startRow,v),startColumn:Math.min(g.startColumn,I),endRow:Math.max(g.endRow,C),endColumn:Math.max(g.endColumn,b)};if(i===l.RANGE_TYPE.NORMAL?R=r.getSelectionMergeBounding(R.startRow,R.startColumn,R.endRow,R.endColumn):i===l.RANGE_TYPE.COLUMN?R={startRow:Math.min(g.startRow,(W=p==null?void 0:p.actualRow)!=null?W:-1),startColumn:Math.min(g.startColumn,(X=p==null?void 0:p.actualColumn)!=null?X:-1),endRow:Math.max(g.endRow,(K=p==null?void 0:p.actualRow)!=null?K:-1),endColumn:Math.max(g.endColumn,(Y=p==null?void 0:p.actualColumn)!=null?Y:-1)}:i===l.RANGE_TYPE.ROW&&(R={startRow:Math.min(g.startRow,(j=p==null?void 0:p.actualRow)!=null?j:-1),startColumn:Math.min(g.startColumn,(z=p==null?void 0:p.actualColumn)!=null?z:-1),endRow:Math.max(g.endRow,(F=p==null?void 0:p.actualRow)!=null?F:-1),endColumn:Math.max(g.endColumn,(Z=p==null?void 0:p.actualColumn)!=null?Z:-1)}),!R)return!1;const P=r.getNoMergeCellPositionByIndex(R.startRow,R.startColumn),y=r.getNoMergeCellPositionByIndex(R.endRow,R.endColumn),O={startColumn:R.startColumn,startRow:R.startRow,endColumn:R.endColumn,endRow:R.endRow,startY:(P==null?void 0:P.startY)||0,endY:(y==null?void 0:y.endY)||0,startX:(P==null?void 0:P.startX)||0,endX:(y==null?void 0:y.endX)||0};(a.startRow!==R.startRow||a.startColumn!==R.startColumn||a.endRow!==R.endRow||a.endColumn!==R.endColumn)&&t&&(this._updateSelectionControlRange(t,O),this._selectionMoving$.next(this.getSelectionDataWithStyle()))}_updateControlPointWhenScrolling(){const{scene:o}=this._context;if(!o.getViewport(w.SHEET_VIEWPORT_KEY.VIEW_MAIN))return;const t=this._scrollManagerService.validViewportScrollInfo$.subscribe(i=>{var f;if(i==null)return;const{viewportScrollX:r,viewportScrollY:s}=i,a=this.getActiveSelectionControl();if(a==null)return;const c=(f=this._sheetSkeletonManagerService.getCurrent())==null?void 0:f.skeleton,d=c==null?void 0:c.rowTotalHeight,u=c==null?void 0:c.columnTotalWidth,h=a.rangeType;h===l.RANGE_TYPE.COLUMN?a.transformControlPoint(0,s,u,d):h===l.RANGE_TYPE.ROW&&a.transformControlPoint(r,0,u,d)});this.disposeWithMe(l.toDisposable(t))}};Io=Up([qe(1,l.Inject(l.Injector)),qe(2,l.Inject(l.ThemeService)),qe(3,T.IShortcutService),qe(4,w.IRenderManagerService),qe(5,l.Inject(m.SheetsSelectionsService)),qe(6,l.ILogService),qe(7,l.ICommandService),qe(8,l.IContextService),qe(9,l.Inject(M.SheetSkeletonManagerService)),qe(10,l.Inject(be))],Io);var nc=Object.defineProperty,Bp=Object.getOwnPropertyDescriptor,Fp=(n,o,e)=>o in n?nc(n,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[o]=e,jp=(n,o,e,t)=>{for(var i=t>1?void 0:t?Bp(o,e):o,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(o,e,i):s(i))||i);return t&&i&&nc(o,e,i),i},rs=(n,o)=>(e,t)=>o(e,t,n),ic=(n,o,e)=>Fp(n,typeof o!="symbol"?o+"":o,e);M.UniverSheetsMobileUIPlugin=class extends l.Plugin{constructor(o={},e,t,i){super(),this._config=o,this._injector=e,this._renderManagerService=t,this._univerInstanceService=i,this._config=l.Tools.deepMerge({},ka,this._config)}onStarting(o){[[Dt],[$e,{useClass:M.SheetClipboardService}],[Rt,{useClass:Pl}],[et,{useClass:Ei}],[lt,{useClass:M.AutoFillService}],[$r],[pe,{useClass:Io}],[$i,{useClass:Fl}],[Ct,{useClass:M.MarkSelectionService}],[M.HoverManagerService],[M.DragManagerService],[M.SheetCanvasPopManagerService],[M.CellAlertManagerService],[An],[M.AutoHeightController],[Dn],[M.SheetsRenderService],[ri,{useFactory:()=>this._injector.createInstance(ri,this._config)}],[M.StatusBarController],[Ce],[an],[ii],[$n],[M.SheetPermissionInterceptorBaseController],[M.SheetPermissionInitController]].forEach(e=>o.add(e)),this._injector.add([Ot,{useFactory:()=>this._injector.createInstance(Ot,this._config)}])}onReady(){this._markSheetAsFocused(),this._registerRenderBasics()}onRendered(){this._registerRenderModules()}_registerRenderBasics(){[[M.SheetSkeletonManagerService],[M.SheetRenderController],[pe,{useClass:Io}],[be]].forEach(o=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(l.UniverInstanceType.UNIVER_SHEET,o))})}_registerRenderModules(){[[M.HeaderMoveRenderController],[M.HeaderFreezeRenderController],[is],[bn],[ki],[Gn],[qn],[Li],[M.HoverRenderController],[M.DragRenderController],[Kn],[M.CellCustomRenderController],[os],[ei],[ni],[vo]].forEach(o=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(l.UniverInstanceType.UNIVER_SHEET,o))})}_markSheetAsFocused(){const o=this._univerInstanceService;o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).pipe(ls.filter(e=>!!e)).subscribe(e=>{o.focusUnit(e.getUnitId())})}},ic(M.UniverSheetsMobileUIPlugin,"pluginName","SHEET_UI_PLUGIN"),ic(M.UniverSheetsMobileUIPlugin,"type",l.UniverInstanceType.UNIVER_SHEET),M.UniverSheetsMobileUIPlugin=jp([l.DependentOn(m.UniverSheetsPlugin,T.UniverMobileUIPlugin),rs(1,l.Inject(l.Injector)),rs(2,w.IRenderManagerService),rs(3,l.IUniverInstanceService)],M.UniverSheetsMobileUIPlugin),M.APPLY_TYPE=se,M.AddRangeProtectionCommand=jf,M.AddRangeProtectionFromContextMenuCommand=so,M.AddRangeProtectionFromSheetBarCommand=ao,M.AddRangeProtectionFromToolbarCommand=ro,M.AddWorksheetMergeAllCommand=Wi,M.AddWorksheetMergeCommand=Le,M.AddWorksheetMergeHorizontalCommand=Ui,M.AddWorksheetMergeVerticalCommand=xi,M.AddWorksheetProtectionCommand=Fn,M.ApplyFormatPainterCommand=Pn,M.AutoClearContentCommand=Ut,M.AutoFillCommand=gt,M.BaseSelectionRenderService=xo,M.COPY_TYPE=at,M.CancelFrozenCommand=Mi,M.CellAlertType=cn,M.CellEditorManagerService=Qs,M.ChangeSheetProtectionFromSheetBarCommand=oo,M.ChangeZoomRatioCommand=jt,M.DATA_TYPE=me,M.DeleteRangeMoveLeftConfirmCommand=Ln,M.DeleteRangeMoveUpConfirmCommand=nn,M.DeleteRangeProtectionFromContextMenuCommand=uo,M.DeleteRangeSelectionCommand=Xf,M.DeleteWorksheetProtectionCommand=Pt,M.DeleteWorksheetProtectionFormSheetBarCommand=io,M.ExpandSelectionCommand=ye,M.HideColConfirmCommand=bi,M.HideRowConfirmCommand=Ii,M.IAutoFillService=lt,M.ICellEditorManagerService=Ni,M.IEditorBridgeService=ze,M.IFormulaEditorManagerService=Di,M.IMarkSelectionService=Ct,M.ISheetClipboardService=$e,M.ISheetSelectionRenderService=pe,M.InsertRangeMoveDownConfirmCommand=on,M.InsertRangeMoveRightConfirmCommand=Wn,M.JumpOver=Ue,M.MobileSheetBar=tc,M.MoveSelectionCommand=Ee,M.MoveSelectionEnterAndTabCommand=Be,M.PASTE_SPECIAL_MENU_ID=tn,M.PREDEFINED_HOOK_NAME=Se,M.RefillCommand=Bi,M.RemoveColConfirmCommand=ji,M.RemoveRowConfirmCommand=Fi,M.RemoveSheetConfirmCommand=Xi,M.RenameSheetOperation=Zi,M.ResetScrollCommand=Cc,M.SHEET_UI_PLUGIN_NAME=dc,M.SHEET_VIEW_KEY=de,M.ScrollCommand=xe,M.ScrollToCellCommand=Po,M.ScrollToRangeOperation=Ql,M.SelectAllCommand=ci,M.SelectionShape=pi,M.SetActivateCellEditOperation=Yi,M.SetCellEditVisibleArrowOperation=Ft,M.SetCellEditVisibleOperation=Pe,M.SetCellEditVisibleWithF2Operation=In,M.SetColumnFrozenCommand=yi,M.SetFormatPainterOperation=Tn,M.SetInfiniteFormatPainterCommand=Pi,M.SetOnceFormatPainterCommand=En,M.SetProtectionCommand=mo,M.SetRangeBoldCommand=Zt,M.SetRangeFontFamilyCommand=Ti,M.SetRangeFontSizeCommand=Ri,M.SetRangeItalicCommand=Gt,M.SetRangeProtectionCommand=zf,M.SetRangeProtectionFromContextMenuCommand=ho,M.SetRangeStrickThroughCommand=qt,M.SetRangeSubscriptCommand=nr,M.SetRangeSuperscriptCommand=ir,M.SetRangeTextColorCommand=Qt,M.SetRangeUnderlineCommand=Kt,M.SetRowFrozenCommand=wi,M.SetScrollOperation=Qe,M.SetScrollRelativeCommand=ot,M.SetSelectionFrozenCommand=$t,M.SetWorksheetProtectionCommand=xr,M.SetZoomRatioCommand=Xt,M.SetZoomRatioOperation=Ye,M.SheetCopyCommand=Qo,M.SheetCutCommand=Jo,M.SheetMenuPosition=le,M.SheetPasteBesidesBorderCommand=tr,M.SheetPasteColWidthCommand=_i,M.SheetPasteCommand=Yt,M.SheetPasteFormatCommand=er,M.SheetPasteShortKeyCommand=Ci,M.SheetPasteValueCommand=$o,M.SheetPermissionOpenDialogOperation=Wr,M.SheetPermissionOpenPanelOperation=Ge,M.SheetPrintInterceptorService=$r,M.SheetsUIPart=as,M.ShowMenuListCommand=zi,M.SidebarDefinedNameOperation=qi,M.VIEWPORT_KEY=Ss,M.ViewSheetPermissionFromContextMenuCommand=lo,M.ViewSheetPermissionFromSheetBarCommand=co,M.attachRangeWithCoord=Eo,M.checkInHeaderRanges=_t,M.deriveStateFromActiveSheet$=Re,M.expandToContinuousRange=us,M.getAllSelection=Uo,M.getAutoFillRepeatRange=Jc,M.getCoordByCell=No,M.getCoordByOffset=Xe,M.getCurrentRangeDisable$=ne,M.getEditorObject=To,M.getRepeatRange=qd,M.getSheetObject=je,M.getTopLeftSelection=vi,M.getTransformCoord=gn,M.mergeSetRangeValues=Zo,M.rangeToDiscreteRange=Vt,M.useActiveWorkbook=It,M.useActiveWorksheet=$u,M.useHighlightRange=Xa,M.virtualizeDiscreteRanges=Lt,M.whenFormulaEditorActivated=Md,M.whenSheetEditorFocused=re,Object.defineProperty(M,Symbol.toStringTag,{value:"Module"})});
9
+ */var f=React,k=Symbol.for("react.element"),l=Symbol.for("react.fragment"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};function q(c,a,g){var b,d={},e=null,h=null;g!==void 0&&(e=""+g),a.key!==void 0&&(e=""+a.key),a.ref!==void 0&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)d[b]===void 0&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}__name(q,"q"),reactJsxRuntime_production_min.Fragment=l,reactJsxRuntime_production_min.jsx=q,reactJsxRuntime_production_min.jsxs=q,jsxRuntime.exports=reactJsxRuntime_production_min;var jsxRuntimeExports=jsxRuntime.exports,__assign=function(){return __assign=Object.assign||function(t){for(var s,i=1,n2=arguments.length;i<n2;i++){s=arguments[i];for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&(t[p2]=s[p2])}return t},__assign.apply(this,arguments)},__rest=function(s,e){var t={};for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&e.indexOf(p2)<0&&(t[p2]=s[p2]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p2=Object.getOwnPropertySymbols(s);i<p2.length;i++)e.indexOf(p2[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p2[i])&&(t[p2[i]]=s[p2[i]]);return t},IconBase=React.forwardRef(function(props,ref){var icon=props.icon,id=props.id,className=props.className,extend=props.extend,restProps=__rest(props,["icon","id","className","extend"]),cls="univerjs-icon univerjs-icon-".concat(id," ").concat(className||"").trim(),idSuffix=React.useRef("_".concat(generateShortUuid()));return render(icon,"".concat(id),{defIds:icon.defIds,idSuffix:idSuffix.current},__assign({ref,className:cls},restProps),extend)});function render(node,id,runtimeProps,rootProps,extend){return React.createElement(node.tag,__assign(__assign({key:id},replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend)),rootProps),(replaceRuntimeIdsInDefs(node,runtimeProps).children||[]).map(function(child,index){return render(child,"".concat(id,"-").concat(node.tag,"-").concat(index),runtimeProps,void 0,extend)}))}__name(render,"render");function replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend){var attrs=__assign({},node.attrs);extend!=null&&extend.colorChannel1&&attrs.fill==="colorChannel1"&&(attrs.fill=extend.colorChannel1);var defIds=runtimeProps.defIds;return!defIds||defIds.length===0||(node.tag==="use"&&attrs["xlink:href"]&&(attrs["xlink:href"]=attrs["xlink:href"]+runtimeProps.idSuffix),Object.entries(attrs).forEach(function(_a2){var key=_a2[0],value=_a2[1];typeof value=="string"&&(attrs[key]=value.replace(/url\(#(.*)\)/,"url(#$1".concat(runtimeProps.idSuffix,")")))})),attrs}__name(replaceRuntimeIdsAndExtInAttrs,"replaceRuntimeIdsAndExtInAttrs");function replaceRuntimeIdsInDefs(node,runtimeProps){var _a2,defIds=runtimeProps.defIds;return!defIds||defIds.length===0?node:node.tag==="defs"&&(!((_a2=node.children)===null||_a2===void 0)&&_a2.length)?__assign(__assign({},node),{children:node.children.map(function(child){return typeof child.attrs.id=="string"&&defIds&&defIds.indexOf(child.attrs.id)>-1?__assign(__assign({},child),{attrs:__assign(__assign({},child.attrs),{id:child.attrs.id+runtimeProps.idSuffix})}):child})}):node}__name(replaceRuntimeIdsInDefs,"replaceRuntimeIdsInDefs");function generateShortUuid(){return Math.random().toString(36).substring(2,8)}__name(generateShortUuid,"generateShortUuid"),IconBase.displayName="UniverIcon";var element$g={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"colorChannel1",d:"M11.0363 12.2367V14.0367C11.0363 14.3681 11.3049 14.6367 11.6363 14.6367C11.9676 14.6367 12.2363 14.3681 12.2363 14.0367V12.2367H14.0364C14.3677 12.2367 14.6364 11.9681 14.6364 11.6367C14.6364 11.3054 14.3677 11.0367 14.0364 11.0367H12.2363V9.23672C12.2363 8.90535 11.9676 8.63672 11.6363 8.63672C11.3049 8.63672 11.0363 8.90535 11.0363 9.23672V11.0367H9.23635C8.90498 11.0367 8.63635 11.3054 8.63635 11.6367C8.63635 11.9681 8.90498 12.2367 9.23635 12.2367H11.0363Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M2.56365 1.36377C1.90091 1.36377 1.36365 1.90103 1.36365 2.56377V6.16377C1.36365 6.82651 1.90091 7.36377 2.56365 7.36377H6.16365C6.82639 7.36377 7.36365 6.82651 7.36365 6.16377V2.56377C7.36365 1.90103 6.82639 1.36377 6.16365 1.36377H2.56365zM6.16365 2.56377H2.56365L2.56365 6.16377H6.16365V2.56377zM2.56365 8.63647C1.90091 8.63647 1.36365 9.17373 1.36365 9.83647V13.4365C1.36365 14.0992 1.90091 14.6365 2.56365 14.6365H6.16365C6.82639 14.6365 7.36365 14.0992 7.36365 13.4365V9.83647C7.36365 9.17373 6.82639 8.63647 6.16365 8.63647H2.56365zM6.16365 9.83647H2.56365L2.56365 13.4365H6.16365V9.83647zM9.83635 7.36377C9.17361 7.36377 8.63635 6.82651 8.63635 6.16377V2.56377C8.63635 1.90103 9.17361 1.36377 9.83635 1.36377H13.4364C14.0991 1.36377 14.6364 1.90103 14.6364 2.56377V6.16377C14.6364 6.82651 14.0991 7.36377 13.4364 7.36377H9.83635zM9.83635 6.16377V2.56377L13.4364 2.56377V6.16377H9.83635z",fillRule:"evenodd",clipRule:"evenodd"}}]},Autofill=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"autofill",ref,icon:element$g}))});Autofill.displayName="Autofill";var element$f={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},CheckMarkSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"check-mark-single",ref,icon:element$f}))});CheckMarkSingle.displayName="CheckMarkSingle";var element$e={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},CloseSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"close-single",ref,icon:element$e}))});CloseSingle.displayName="CloseSingle";var element$d={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"g",attrs:{fill:"currentColor",clipPath:"url(#convert-single_clip0_911_593)"},children:[{tag:"path",attrs:{d:"M2.44766.848145C1.564.848145.847656 1.56449.847656 2.44814V6.44814C.847656 7.3318 1.564 8.04814 2.44766 8.04814H6.44766C7.33131 8.04814 8.04766 7.3318 8.04766 6.44814V2.44814C8.04766 1.56449 7.33131.848145 6.44766.848145H2.44766zM2.04766 6.44814V5.04824H3.84775V6.84814H2.44766C2.22674 6.84814 2.04766 6.66906 2.04766 6.44814zM2.04766 3.84824H3.84775V2.04814H2.44766C2.22674 2.04814 2.04766 2.22723 2.04766 2.44814V3.84824zM5.04775 6.84814V5.04824H6.84766V6.44814C6.84766 6.66906 6.66857 6.84814 6.44766 6.84814H5.04775zM5.04775 3.84824H6.84766V2.44814C6.84766 2.22723 6.66857 2.04814 6.44766 2.04814H5.04775V3.84824zM9.55215 7.95166C8.66849 7.95166 7.95215 8.668 7.95215 9.55166V13.5517C7.95215 14.4353 8.66849 15.1517 9.55215 15.1517L11.5522 15.1517 13.5521 15.1517C14.4358 15.1517 15.1521 14.4353 15.1521 13.5517L15.1521 11.5518 15.1521 9.55166C15.1521 8.668 14.4358 7.95166 13.5521 7.95166H9.55215zM13.9521 10.9518V9.55166C13.9521 9.33075 13.7731 9.15166 13.5521 9.15166H12.1522V10.9518H13.9521zM10.9522 10.9518V9.15166H9.55215C9.33123 9.15166 9.15215 9.33075 9.15215 9.55166V10.9518H10.9522zM9.15215 12.1518H10.9522V13.9517H9.55215C9.33123 13.9517 9.15215 13.7726 9.15215 13.5517V12.1518zM12.1522 12.1518H13.9521V13.5517C13.9521 13.7726 13.7731 13.9517 13.5521 13.9517H12.1522V12.1518z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{d:"M9.62158 2.44912C9.62158 2.11775 9.89021 1.84912 10.2216 1.84912H12.7516C13.6352 1.84912 14.3516 2.56547 14.3516 3.44912V5.9791C14.3516 6.31047 14.0829 6.5791 13.7516 6.5791 13.4202 6.5791 13.1516 6.31047 13.1516 5.9791V3.44912C13.1516 3.22821 12.9725 3.04912 12.7516 3.04912H10.2216C9.89021 3.04912 9.62158 2.78049 9.62158 2.44912zM5.77871 14.1507C6.11008 14.1507 6.37871 13.8821 6.37871 13.5507 6.37871 13.2193 6.11008 12.9507 5.77871 12.9507L3.24873 12.9507C3.02782 12.9507 2.84873 12.7716 2.84873 12.5507L2.84873 10.0207C2.84873 9.68933 2.5801 9.4207 2.24873 9.4207 1.91736 9.4207 1.64873 9.68933 1.64873 10.0207L1.64873 12.5507C1.64873 13.4343 2.36507 14.1507 3.24873 14.1507H5.77871z"}}]},{tag:"defs",attrs:{},children:[{tag:"clipPath",attrs:{id:"convert-single_clip0_911_593"},children:[{tag:"path",attrs:{fill:"#fff",d:"M0 0H16V16H0z"}}]}]}],defIds:["convert-single_clip0_911_593"]},ConvertSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"convert-single",ref,icon:element$d}))});ConvertSingle.displayName="ConvertSingle";var element$c={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.3313 1.4667C5.3313 1.13533 5.59993.866699 5.9313.866699H10.069C10.4004.866699 10.669 1.13533 10.669 1.4667 10.669 1.79807 10.4004 2.0667 10.069 2.0667H5.9313C5.59993 2.0667 5.3313 1.79807 5.3313 1.4667zM1.09985 3.64443C1.09985 3.31306 1.36848 3.04443 1.69985 3.04443H14.2999C14.6312 3.04443 14.8999 3.31306 14.8999 3.64443 14.8999 3.9758 14.6312 4.24443 14.2999 4.24443H1.69985C1.36848 4.24443 1.09985 3.9758 1.09985 3.64443zM6.12398 8.30171C6.35829 8.0674 6.73819 8.0674 6.97251 8.30171L8.00007 9.32928 9.02764 8.30171C9.26195 8.0674 9.64185 8.0674 9.87617 8.30171 10.1105 8.53603 10.1105 8.91593 9.87617 9.15024L8.8486 10.1778 9.87617 11.2054C10.1105 11.4397 10.1105 11.8196 9.87617 12.0539 9.64185 12.2882 9.26195 12.2882 9.02764 12.0539L8.00007 11.0263 6.97251 12.0539C6.73819 12.2882 6.35829 12.2882 6.12398 12.0539 5.88966 11.8196 5.88966 11.4397 6.12398 11.2054L7.15154 10.1778 6.12398 9.15024C5.88966 8.91593 5.88966 8.53603 6.12398 8.30171z"}},{tag:"path",attrs:{fill:"currentColor",d:"M4.75332 5.22217C3.86966 5.22217 3.15332 5.93851 3.15332 6.82217V12.5331C3.15332 13.9691 4.31738 15.1332 5.75332 15.1332H10.2465C11.6825 15.1332 12.8465 13.9691 12.8465 12.5331V6.82217C12.8465 5.93851 12.1302 5.22217 11.2465 5.22217H4.75332ZM4.35332 6.82217C4.35332 6.60125 4.53241 6.42217 4.75332 6.42217H11.2465C11.4674 6.42217 11.6465 6.60125 11.6465 6.82217V12.5331C11.6465 13.3063 11.0197 13.9332 10.2465 13.9332H5.75332C4.98012 13.9332 4.35332 13.3063 4.35332 12.5331V6.82217Z",fillRule:"evenodd",clipRule:"evenodd"}}]},DeleteSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"delete-single",ref,icon:element$c}))});DeleteSingle.displayName="DeleteSingle";var element$b={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_371_77",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#DCDCDC",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_371_77)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.85869 12.9216C8.38445 13.4708 7.61555 13.4708 7.14131 12.9216L0.358114 5.06726C-0.406895 4.18144 0.134916 2.66683 1.2168 2.66683L14.7832 2.66683C15.8651 2.66683 16.4069 4.18144 15.6419 5.06726L8.85869 12.9216Z"}}]}]},DropdownSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"dropdown-single",ref,icon:element$b}))});DropdownSingle.displayName="DropdownSingle";var element$a={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM10.3097 5.69014C10.544 5.92445 10.544 6.30435 10.3097 6.53867L8.84843 7.9999L10.3099 9.46137C10.5442 9.69569 10.5442 10.0756 10.3099 10.3099C10.0756 10.5442 9.69569 10.5442 9.46137 10.3099L7.9999 8.84843L6.53842 10.3099C6.30411 10.5442 5.92421 10.5442 5.6899 10.3099C5.45558 10.0756 5.45558 9.69569 5.6899 9.46137L7.15137 7.9999L5.69014 6.53867C5.45583 6.30435 5.45583 5.92445 5.69014 5.69014C5.92445 5.45583 6.30435 5.45583 6.53867 5.69014L7.9999 7.15137L9.46113 5.69014C9.69544 5.45583 10.0753 5.45583 10.3097 5.69014Z",fillRule:"evenodd",clipRule:"evenodd"}}]},ErrorSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"error-single",ref,icon:element$a}))});ErrorSingle.displayName="ErrorSingle";var element$9={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1.28096 4.6541C1.57489 4.50109 1.93721 4.61533 2.09022 4.90926C2.27315 5.26067 2.55999 5.60455 2.94829 5.92278C4.04628 6.82266 5.87505 7.44865 7.99828 7.44865C10.1215 7.44865 11.9503 6.82267 13.0482 5.92279C13.4366 5.60455 13.7234 5.26067 13.9063 4.90927C14.0594 4.61533 14.4217 4.50109 14.7156 4.65409C15.0095 4.8071 15.1238 5.16941 14.9708 5.46334C14.6995 5.98445 14.2981 6.44997 13.8089 6.8509C13.7298 6.91575 13.6481 6.97914 13.564 7.041L15.2245 8.70153C15.4588 8.93585 15.4588 9.31575 15.2245 9.55006C14.9902 9.78438 14.6103 9.78438 14.376 9.55006L12.5041 7.67822C11.8977 7.97568 11.2181 8.21208 10.4884 8.37706L11.0996 10.6581C11.1853 10.9782 10.9954 11.3072 10.6753 11.393C10.3552 11.4787 10.0262 11.2888 9.94045 10.9687L9.29949 8.57652C8.8758 8.62404 8.44081 8.64865 7.99828 8.64865C7.55276 8.64865 7.11487 8.62371 6.68846 8.57555L6.04723 10.9687C5.96147 11.2888 5.63247 11.4788 5.31239 11.393C4.99231 11.3073 4.80236 10.9783 4.88812 10.6582L5.49983 8.37516C4.7743 8.2105 4.09843 7.9752 3.49498 7.67947L1.62436 9.55009C1.39005 9.78441 1.01015 9.78441 0.775835 9.5501C0.54152 9.31578 0.541518 8.93588 0.775832 8.70157L2.43478 7.04261C2.34987 6.98024 2.26746 6.91632 2.18764 6.8509C1.69842 6.44997 1.29706 5.98445 1.0258 5.46335C0.872791 5.16942 0.987031 4.80711 1.28096 4.6541Z"}}]},EyelashSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"eyelash-single",ref,icon:element$9}))});EyelashSingle.displayName="EyelashSingle";var element$8={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M6.06409 5.53454C5.93592 5.53454 5.84083 5.41567 5.86897 5.29063L5.95442 4.9109C6.05444 4.48178 6.23806 4.11547 6.51182 3.81952 6.81082 3.49628 7.25398 3.35405 7.79738 3.35405 7.99847 3.35405 8.21359 3.37775 8.44188 3.42245 8.46089 3.42617 8.47974 3.43006 8.49846 3.4341 8.7099 3.4798 8.93698 3.38478 9.02031 3.18514L9.24767 2.6404C9.33457 2.43219 9.23178 2.19404 9.01582 2.12874 8.98358 2.11899 8.95028 2.10912 8.91591 2.09914 8.62745 2.01631 8.28392 1.97217 7.88074 1.97217 6.82015 1.97217 6.02714 2.23936 5.4746 2.7444 4.90987 3.26069 4.50889 3.99917 4.28413 4.9762L2.83703 11.1909C2.76126 11.5286 2.666 11.8917 2.54844 12.2812 2.42975 12.6734 2.2873 13.0595 2.12221 13.4373 1.95577 13.8159 1.76813 14.1762 1.55955 14.5171 1.49345 14.6251 1.42515 14.7282 1.35467 14.8263 1.26508 14.9509 1.3347 15.133 1.48655 15.1554 2.13635 15.2509 2.8179 15.0763 3.18197 14.5296 3.32661 14.3124 3.46779 14.0646 3.60509 13.7851 3.96635 13.0497 4.30522 12.0103 4.61867 10.6574L5.469 7.01534C5.49013 6.92483 5.57082 6.86081 5.66376 6.86081H7.62478C7.8097 6.86081 7.97051 6.73405 8.01371 6.55425L8.14014 6.02798C8.20057 5.77642 8.00992 5.53454 7.75121 5.53454H6.06409zM14.3211 5.72037L12.5124 7.96963 11.4089 5.77754C11.3422 5.63012 11.1954 5.5354 11.0336 5.5354H10.3129C10.0085 5.5354 9.80921 5.85428 9.9427 6.1279L11.4089 9.05502 8.79783 12.1493C8.56587 12.4158 8.75519 12.8315 9.10855 12.8315H9.68607C9.80672 12.8315 9.9605 12.7822 10.0388 12.6904L12.1108 10.2648 13.1176 12.561C13.1786 12.7231 13.333 12.8315 13.5061 12.8315H14.3C14.5831 12.8315 14.7417 12.6175 14.6426 12.3524L13.1728 9.28628C13.1728 9.28628 15.4009 6.45542 15.6013 6.17892 15.7966 5.90929 15.6023 5.5354 15.2693 5.5354H14.6661C14.5275 5.5354 14.4333 5.58887 14.3211 5.72037z"}}]},FxSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"fx-single",ref,icon:element$8}))});FxSingle.displayName="FxSingle";var element$7={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.6 1.99991C8.60001 1.66854 8.33138 1.39991 8.00001 1.3999C7.66864 1.3999 7.40001 1.66853 7.4 1.9999L7.39996 7.3999H1.9999C1.66853 7.3999 1.3999 7.66853 1.3999 7.9999C1.3999 8.33127 1.66853 8.5999 1.9999 8.5999H7.39995L7.3999 13.9999C7.3999 14.3313 7.66853 14.5999 7.9999 14.5999C8.33127 14.5999 8.5999 14.3313 8.5999 13.9999L8.59995 8.5999H13.9999C14.3313 8.5999 14.5999 8.33127 14.5999 7.9999C14.5999 7.66853 14.3313 7.3999 13.9999 7.3999H8.59996L8.6 1.99991Z"}}]},IncreaseSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"increase-single",ref,icon:element$7}))});IncreaseSingle.displayName="IncreaseSingle";var element$6={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M2.62402 7.72905C2.58427 7.72905 2.55205 7.76127 2.55205 7.80102V13.6782C2.55205 13.7179 2.58427 13.7502 2.62402 13.7502H13.3755C13.4152 13.7502 13.4474 13.7179 13.4474 13.6782V7.80102C13.4474 7.76127 13.4152 7.72905 13.3755 7.72905H2.62402ZM1.35205 7.80102C1.35205 7.09853 1.92153 6.52905 2.62402 6.52905H13.3755C14.0779 6.52905 14.6474 7.09853 14.6474 7.80102V13.6782C14.6474 14.3807 14.0779 14.9502 13.3755 14.9502H2.62402C1.92153 14.9502 1.35205 14.3807 1.35205 13.6782V7.80102Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M8 2.25005C6.69847 2.25003 5.64336 3.30513 5.64336 4.60666V7.12895C5.64336 7.46032 5.37473 7.72895 5.04336 7.72895 4.71199 7.72895 4.44336 7.46032 4.44336 7.12895V4.60666C4.44336 2.64239 6.04451 1.05565 8.00879 1.05566M8 2.25005L8.00879 1.05566 8 2.25005zM8.00879 1.05566L8 2.25005C9.30154 2.25003 10.3567 3.30513 10.3567 4.60666V7.12895C10.3567 7.46032 10.6253 7.72895 10.9567 7.72895 11.288 7.72895 11.5567 7.46032 11.5567 7.12895V4.60666C11.5567 2.64239 9.97306 1.05565 8.00879 1.05566zM8.00039 9.4668C8.33176 9.4668 8.60039 9.73543 8.60039 10.0668V12.0827C8.60039 12.4141 8.33176 12.6827 8.00039 12.6827 7.66902 12.6827 7.40039 12.4141 7.40039 12.0827V10.0668C7.40039 9.73543 7.66902 9.4668 8.00039 9.4668z",fillRule:"evenodd",clipRule:"evenodd"}}]},LockSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"lock-single",ref,icon:element$6}))});LockSingle.displayName="LockSingle";var element$5={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M11.3536 6.14645C11.5488 6.34171 11.5488 6.65829 11.3536 6.85355L8.35355 9.85355C8.15829 10.0488 7.84171 10.0488 7.64645 9.85355L4.64645 6.85355C4.45118 6.65829 4.45118 6.34171 4.64645 6.14645C4.84171 5.95118 5.15829 5.95118 5.35355 6.14645L8 8.79289L10.6464 6.14645C10.8417 5.95118 11.1583 5.95118 11.3536 6.14645Z",fillRule:"evenodd",clipRule:"evenodd"}}]},MoreDownSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"more-down-single",ref,icon:element$5}))});MoreDownSingle.displayName="MoreDownSingle";var element$4={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.90913 3.57564C6.14345 3.34132 6.52335 3.34132 6.75766 3.57564L10.7577 7.57564C10.992 7.80995 10.992 8.18985 10.7577 8.42417L6.75766 12.4242C6.52335 12.6585 6.14345 12.6585 5.90913 12.4242C5.67482 12.1899 5.67482 11.81 5.90913 11.5756L9.48487 7.9999L5.90913 4.42417C5.67482 4.18985 5.67482 3.80995 5.90913 3.57564Z",fillRule:"evenodd",clipRule:"evenodd"}}]},MoreSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"more-single",ref,icon:element$4}))});MoreSingle.displayName="MoreSingle";var element$3={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_1204",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#DCDCDC",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_1204)"},children:[{tag:"rect",attrs:{width:12.62,height:2.79,x:1.69,y:12.25,fill:"colorChannel1",rx:1.4}},{tag:"path",attrs:{fill:"currentColor",d:"M7.74646 2.1642C7.34284 1.65121 6.85947 1.28205 6.38447 1.09593C5.86863 0.893787 5.15166 0.852126 4.70047 1.42917C4.29842 1.94344 4.33082 2.70249 4.57691 3.50395C4.68808 3.8661 4.86846 4.22254 5.12522 4.56617C5.13695 4.58185 5.14927 4.5968 5.16211 4.61102C5.17152 4.6214 5.18122 4.63139 5.19115 4.64096C5.20459 4.65393 5.21855 4.66618 5.23296 4.6777L3.5064 6.40422C3.26756 6.64306 3.26756 7.03033 3.5064 7.26919L7.23756 11.0004C7.47648 11.2392 7.86375 11.2392 8.1026 11.0004L12.8329 6.27001C13.0717 6.03117 13.0717 5.6439 12.8329 5.40505L9.10172 1.67387C8.86288 1.43503 8.47561 1.43503 8.23676 1.67387L7.74646 2.1642ZM7.46162 4.50638C7.47252 4.57574 7.48163 4.64652 7.4888 4.71868C7.52232 5.05481 7.82194 5.30013 8.15807 5.26661C8.4942 5.23311 8.73954 4.93345 8.70601 4.59732C8.65786 4.11463 8.54251 3.6666 8.37892 3.26169L8.66928 2.97135L11.5354 5.83753L10.6106 6.76237H4.87824L7.40802 4.2326C7.42885 4.32128 7.44684 4.41255 7.46162 4.50638ZM6.87284 3.03784C6.57441 2.62008 6.22261 2.34634 5.93815 2.23487C5.80233 2.18165 5.71528 2.17827 5.67638 2.18335C5.6725 2.18387 5.66929 2.18443 5.6666 2.18497L5.6619 2.18607C5.64166 2.21954 5.53594 2.45979 5.74626 3.1449C5.81241 3.36036 5.92262 3.58602 6.09307 3.81761L6.87284 3.03784Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M12.1932 11.5463C12.6454 11.5463 13.012 11.1797 13.012 10.7275C13.012 10.4475 12.6981 9.92821 12.459 9.5733C12.3299 9.38173 12.0564 9.38174 11.9274 9.57331C11.6883 9.92822 11.3744 10.4475 11.3744 10.7275C11.3744 11.1797 11.741 11.5463 12.1932 11.5463Z"}}]}]},PaintBucket=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"paint-bucket",ref,icon:element$3}))});PaintBucket.displayName="PaintBucket";var element$2={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.785 6.77762C5.78908 6.7777 5.79316 6.77774 5.79725 6.77774C5.80134 6.77774 5.80543 6.7777 5.8095 6.77762H10.0184C10.0225 6.7777 10.0266 6.77774 10.0307 6.77774C10.0347 6.77774 10.0388 6.7777 10.0429 6.77762H13.6638V7.63727C13.6638 7.96864 13.9324 8.23727 14.2638 8.23727C14.5951 8.23727 14.8638 7.96864 14.8638 7.63727V3.9999C14.8638 2.56395 13.6997 1.39989 12.2637 1.3999L3.56389 1.39999C2.12797 1.40001 0.96393 2.56405 0.96392 3.99998L0.963867 11.6666C0.963857 13.1025 2.12792 14.2666 3.56387 14.2666H8.0542C8.38557 14.2666 8.6542 13.9979 8.6542 13.6666C8.6542 13.3352 8.38557 13.0666 8.0542 13.0666H3.56387C2.79067 13.0666 2.16386 12.4398 2.16387 11.6666L2.1639 6.77762H5.785ZM6.39725 2.59996L9.43065 2.59993V5.57762H6.39725V2.59996ZM5.19725 5.57762V2.59998L3.56391 2.59999C2.79072 2.6 2.16393 3.22679 2.16392 3.99998L2.16391 5.57762H5.19725ZM13.6638 5.57762V3.9999C13.6638 3.2267 13.037 2.59989 12.2638 2.5999L10.6307 2.59992V5.57762H13.6638Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M14.1223 10.2333V10.7496C14.7087 10.9869 15.1223 11.5618 15.1223 12.2333V12.8999C15.1223 13.7836 14.406 14.4999 13.5223 14.4999H11.5223C10.6387 14.4999 9.92235 13.7836 9.92235 12.8999V12.2333C9.92235 11.5618 10.336 10.9869 10.9223 10.7496V10.2333C10.9223 9.34961 11.6387 8.63328 12.5223 8.63328C13.406 8.63328 14.1223 9.34961 14.1223 10.2333ZM11.1223 12.2333C11.1223 12.0124 11.3014 11.8333 11.5223 11.8333H13.5223C13.7433 11.8333 13.9223 12.0124 13.9223 12.2333V12.8999C13.9223 13.1209 13.7433 13.2999 13.5223 13.2999H11.5223C11.3014 13.2999 11.1223 13.1209 11.1223 12.8999V12.2333ZM12.9223 10.2333V10.6333H12.1223V10.2333C12.1223 10.0124 12.3014 9.83328 12.5223 9.83328C12.7433 9.83328 12.9223 10.0124 12.9223 10.2333Z",fillRule:"evenodd",clipRule:"evenodd"}}]},ProtectSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"protect-single",ref,icon:element$2}))});ProtectSingle.displayName="ProtectSingle";var element$1={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM8.00008 12.3671C8.46031 12.3671 8.83342 11.994 8.83342 11.5338C8.83342 11.0735 8.46031 10.7004 8.00008 10.7004C7.53985 10.7004 7.16675 11.0735 7.16675 11.5338C7.16675 11.994 7.53985 12.3671 8.00008 12.3671ZM8.5999 4.4335C8.5999 4.10213 8.33127 3.8335 7.9999 3.8335C7.66853 3.8335 7.3999 4.10213 7.3999 4.4335V9.36683C7.3999 9.6982 7.66853 9.96683 7.9999 9.96683C8.33127 9.96683 8.5999 9.6982 8.5999 9.36683V4.4335Z",fillRule:"evenodd",clipRule:"evenodd"}}]},WarningSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"warning-single",ref,icon:element$1}))});WarningSingle.displayName="WarningSingle";var element={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.6551 1.98906C11.7476 1.08113 10.2757 1.08149 9.3686 1.98987L4.82542 6.53955C4.75087 6.61421 4.69336 6.70411 4.65682 6.80309L3.2461 10.625C3.16506 10.8446 3.21909 11.0912 3.3845 11.2568C3.54991 11.4224 3.79651 11.4767 4.01616 11.3959L7.85031 9.98517C7.94979 9.94856 8.04014 9.89077 8.11508 9.81579L12.6552 5.27327C13.5618 4.36621 13.5618 2.89607 12.6551 1.98906ZM10.2177 2.83779C10.6562 2.39869 11.3677 2.39851 11.8064 2.8374C12.2447 3.27584 12.2447 3.9865 11.8065 4.42497L7.3392 8.89457L4.82213 9.82068L5.74706 7.31487L10.2177 2.83779Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.79238 13.2999C1.46101 13.2999 1.19238 13.5685 1.19238 13.8999C1.19238 14.2313 1.46101 14.4999 1.79238 14.4999H14.4924C14.8238 14.4999 15.0924 14.2313 15.0924 13.8999C15.0924 13.5685 14.8238 13.2999 14.4924 13.2999H1.79238Z"}}]},WriteSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"write-single",ref,icon:element}))});WriteSingle.displayName="WriteSingle";const BorderDashDot=__name(()=>jsxRuntimeExports.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("path",{d:"M0.98999 1.08218H-0.0100098V0.0821838H0.98999V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M5.78992 1.08218H2.78992V0.0821838H5.78992V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M7.58984 1.08218H8.58984V0.0821838H7.58984V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M14.9152 1.08218H13.9152V0.0821838H14.9152V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M16.7151 1.08218H19.7151V0.0821838H16.7151V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M22.515 1.08218H21.515V0.0821838H22.515V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M27.8405 1.08218H28.8405V0.0821838H27.8405V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M33.6404 1.08218H30.6404V0.0821838H33.6404V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M35.4403 1.08218H36.4403V0.0821838H35.4403V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M42.7657 1.08218H41.7657V0.0821838H42.7657V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M44.5657 1.08218H47.5657V0.0821838H44.5657V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M50.3656 1.08218H49.3656V0.0821838H50.3656V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M55.691 1.08218H56.691V0.0821838H55.691V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M61.491 1.08218H58.491V0.0821838H61.491V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M63.2909 1.08218H64.2909V0.0821838H63.2909V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M70.6163 1.08218H69.6163V0.0821838H70.6163V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M72.4163 1.08218H75.4163V0.0821838H72.4163V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M78.2162 1.08218H77.2162V0.0821838H78.2162V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M83.5416 1.08218H84.5416V0.0821838H83.5416V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M89.3416 1.08218H86.3416V0.0821838H89.3416V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M91.1415 1.08218H92.1415V0.0821838H91.1415V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M98.4669 1.08218H97.4669V0.0821838H98.4669V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M100.267 1.08218H103.267V0.0821838H100.267V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M106.067 1.08218H105.067V0.0821838H106.067V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M111.392 1.08218H112.392V0.0821838H111.392V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M117.192 1.08218H114.192V0.0821838H117.192V1.08218Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M118.992 1.08218H119.992V0.0821838H118.992V1.08218Z",fill:"black"})]}),"BorderDashDot"),BorderDashDotDot=__name(()=>jsxRuntimeExports.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("path",{d:"M-0.0100098 1.15771H0.98999V0.157715H-0.0100098V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M2.78992 1.15771H5.78992V0.157715H2.78992V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M8.58984 1.15771H7.58984V0.157715H8.58984V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M10.3899 1.15771H11.3899V0.157715H10.3899V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M19.0903 1.15771H18.0903V0.157715H19.0903V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M20.8903 1.15771H23.8903V0.157715H20.8903V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M26.6902 1.15771H25.6902V0.157715H26.6902V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M28.4902 1.15771H29.4902V0.157715H28.4902V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M37.1907 1.15771H36.1907V0.157715H37.1907V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M38.9906 1.15771H41.9906V0.157715H38.9906V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M44.7905 1.15771H43.7905V0.157715H44.7905V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M46.5906 1.15771H47.5906V0.157715H46.5906V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M55.291 1.15771H54.291V0.157715H55.291V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M57.0909 1.15771H60.0909V0.157715H57.0909V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M62.8909 1.15771H61.8909V0.157715H62.8909V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M64.6909 1.15771H65.6909V0.157715H64.6909V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M73.3914 1.15771H72.3914V0.157715H73.3914V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M75.1913 1.15771H78.1913V0.157715H75.1913V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M80.9912 1.15771H79.9912V0.157715H80.9912V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M82.7913 1.15771H83.7913V0.157715H82.7913V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M91.4917 1.15771H90.4917V0.157715H91.4917V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M93.2916 1.15771H96.2916V0.157715H93.2916V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M99.0916 1.15771H98.0916V0.157715H99.0916V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M100.892 1.15771H101.892V0.157715H100.892V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M109.592 1.15771H108.592V0.157715H109.592V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M111.392 1.15771H114.392V0.157715H111.392V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M117.192 1.15771H116.192V0.157715H117.192V1.15771Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M118.992 1.15771H119.992V0.157715H118.992V1.15771Z",fill:"black"})]}),"BorderDashDotDot"),BorderDashed=__name(()=>jsxRuntimeExports.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("path",{d:"M-0.00842285 1.22449H2.99158V0.224487H-0.00842285V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M6.14941 1.22449H9.14941V0.224487H6.14941V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M15.3073 1.22449H12.3073V0.224487H15.3073V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M18.4651 1.22449H21.4651V0.224487H18.4651V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M27.6229 1.22449H24.6229V0.224487H27.6229V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M30.7808 1.22449H33.7808V0.224487H30.7808V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M39.9386 1.22449H36.9386V0.224487H39.9386V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M43.0964 1.22449H46.0964V0.224487H43.0964V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M52.2543 1.22449H49.2543V0.224487H52.2543V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M55.4121 1.22449H58.4121V0.224487H55.4121V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M64.5699 1.22449H61.5699V0.224487H64.5699V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M67.7278 1.22449H70.7278V0.224487H67.7278V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M76.8856 1.22449H73.8856V0.224487H76.8856V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M80.0435 1.22449H83.0435V0.224487H80.0435V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M89.2013 1.22449H86.2013V0.224487H89.2013V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M92.3591 1.22449H95.3591V0.224487H92.3591V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M101.517 1.22449H98.517V0.224487H101.517V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M104.675 1.22449H107.675V0.224487H104.675V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M113.833 1.22449H110.833V0.224487H113.833V1.22449Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M116.99 1.22449H119.99V0.224487H116.99V1.22449Z",fill:"black"})]}),"BorderDashed"),BorderHair=__name(()=>jsxRuntimeExports.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("path",{d:"M-0.00976562 1.65707H0.990234V0.657074H-0.00976562V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M2.32361 1.65707H3.32361V0.657074H2.32361V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M5.65698 1.65707H4.65698V0.657074H5.65698V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M6.99036 1.65707H7.99036V0.657074H6.99036V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M10.3237 1.65707H9.32373V0.657074H10.3237V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M11.6571 1.65707H12.6571V0.657074H11.6571V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M14.9905 1.65707H13.9905V0.657074H14.9905V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M16.3239 1.65707H17.3239V0.657074H16.3239V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M19.6572 1.65707H18.6572V0.657074H19.6572V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M20.9906 1.65707H21.9906V0.657074H20.9906V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M24.324 1.65707H23.324V0.657074H24.324V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M25.6573 1.65707H26.6573V0.657074H25.6573V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M28.9907 1.65707H27.9907V0.657074H28.9907V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M30.3241 1.65707H31.3241V0.657074H30.3241V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M33.6575 1.65707H32.6575V0.657074H33.6575V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M34.9908 1.65707H35.9908V0.657074H34.9908V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M38.3242 1.65707H37.3242V0.657074H38.3242V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M39.6576 1.65707H40.6576V0.657074H39.6576V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M42.991 1.65707H41.991V0.657074H42.991V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M44.3243 1.65707H45.3243V0.657074H44.3243V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M47.6577 1.65707H46.6577V0.657074H47.6577V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M48.9911 1.65707H49.9911V0.657074H48.9911V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M52.3245 1.65707H51.3245V0.657074H52.3245V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M53.6578 1.65707H54.6578V0.657074H53.6578V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M56.9912 1.65707H55.9912V0.657074H56.9912V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M58.3246 1.65707H59.3246V0.657074H58.3246V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M61.658 1.65707H60.658V0.657074H61.658V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M62.9913 1.65707H63.9913V0.657074H62.9913V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M66.3247 1.65707H65.3247V0.657074H66.3247V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M67.6581 1.65707H68.6581V0.657074H67.6581V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M70.9915 1.65707H69.9915V0.657074H70.9915V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M72.3248 1.65707H73.3248V0.657074H72.3248V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M75.6582 1.65707H74.6582V0.657074H75.6582V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M76.9916 1.65707H77.9916V0.657074H76.9916V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M80.325 1.65707H79.325V0.657074H80.325V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M81.6583 1.65707H82.6583V0.657074H81.6583V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M84.9917 1.65707H83.9917V0.657074H84.9917V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M86.3251 1.65707H87.3251V0.657074H86.3251V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M89.6584 1.65707H88.6584V0.657074H89.6584V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M90.9918 1.65707H91.9918V0.657074H90.9918V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M94.3252 1.65707H93.3252V0.657074H94.3252V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M95.6586 1.65707H96.6586V0.657074H95.6586V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M98.9919 1.65707H97.9919V0.657074H98.9919V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M100.325 1.65707H101.325V0.657074H100.325V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M103.659 1.65707H102.659V0.657074H103.659V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M104.992 1.65707H105.992V0.657074H104.992V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M108.325 1.65707H107.325V0.657074H108.325V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M109.659 1.65707H110.659V0.657074H109.659V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M112.992 1.65707H111.992V0.657074H112.992V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M114.325 1.65707H115.325V0.657074H114.325V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M117.659 1.65707H116.659V0.657074H117.659V1.65707Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M118.992 1.65707H119.992V0.657074H118.992V1.65707Z",fill:"black"})]}),"BorderHair"),BorderMedium=__name(()=>jsxRuntimeExports.jsx("svg",{width:"120",height:"3",viewBox:"0 0 120 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntimeExports.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 2.42035H-0.0090332V0.420349H119.991V2.42035Z",fill:"black"})}),"BorderMedium"),BorderMediumDashDot=__name(()=>jsxRuntimeExports.jsxs("svg",{width:"120",height:"3",viewBox:"0 0 120 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("path",{d:"M-0.0100098 2.47614H1.98999V0.476135H-0.0100098V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M3.99014 2.47614H9.99014V0.476135H3.99014V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M13.9901 2.47614H11.9901V0.476135H13.9901V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M21.1904 2.47614H23.1904V0.476135H21.1904V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M31.1906 2.47614H25.1906V0.476135H31.1906V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M33.1906 2.47614H35.1906V0.476135H33.1906V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M44.3909 2.47614H42.3909V0.476135H44.3909V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M46.391 2.47614H52.391V0.476135H46.391V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M56.391 2.47614H54.391V0.476135H56.391V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M63.5913 2.47614H65.5913V0.476135H63.5913V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M73.5915 2.47614H67.5915V0.476135H73.5915V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M75.5915 2.47614H77.5915V0.476135H75.5915V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M86.7917 2.47614H84.7917V0.476135H86.7917V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M88.7919 2.47614H94.7919V0.476135H88.7919V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M98.7919 2.47614H96.7919V0.476135H98.7919V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M105.992 2.47614H107.992V0.476135H105.992V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M115.992 2.47614H109.992V0.476135H115.992V2.47614Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M117.992 2.47614H119.992V0.476135H117.992V2.47614Z",fill:"black"})]}),"BorderMediumDashDot"),BorderMediumDashDotDot=__name(()=>jsxRuntimeExports.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("path",{d:"M-0.0100098 2.00415H1.98999V0.00415039H-0.0100098V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M3.99014 2.00415H9.99014V0.00415039H3.99014V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M13.9901 2.00415H11.9901V0.00415039H13.9901V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M15.9901 2.00415H17.9901V0.00415039H15.9901V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M27.4905 2.00415H25.4905V0.00415039H27.4905V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M29.4906 2.00415H35.4906V0.00415039H29.4906V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M39.4906 2.00415H37.4906V0.00415039H39.4906V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M41.4906 2.00415H43.4906V0.00415039H41.4906V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M52.991 2.00415H50.991V0.00415039H52.991V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M54.9911 2.00415H60.9911V0.00415039H54.9911V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M64.9911 2.00415H62.9911V0.00415039H64.9911V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M66.9911 2.00415H68.9911V0.00415039H66.9911V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M78.4915 2.00415H76.4915V0.00415039H78.4915V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M80.4916 2.00415H86.4916V0.00415039H80.4916V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M90.4916 2.00415H88.4916V0.00415039H90.4916V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M92.4916 2.00415H94.4916V0.00415039H92.4916V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M103.992 2.00415H101.992V0.00415039H103.992V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M105.992 2.00415H111.992V0.00415039H105.992V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M115.992 2.00415H113.992V0.00415039H115.992V2.00415Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M117.992 2.00415H119.992V0.00415039H117.992V2.00415Z",fill:"black"})]}),"BorderMediumDashDotDot"),BorderMediumDashed=__name(()=>jsxRuntimeExports.jsxs("svg",{width:"118",height:"3",viewBox:"0 0 118 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("path",{d:"M-0.00854492 2.94815H1.99146V0.948151H-0.00854492V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M6.09668 2.94815H8.09668V0.948151H6.09668V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M14.2019 2.94815H12.2019V0.948151H14.2019V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M18.3071 2.94815H20.3071V0.948151H18.3071V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M26.4124 2.94815H24.4124V0.948151H26.4124V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M30.5176 2.94815H32.5176V0.948151H30.5176V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M38.6228 2.94815H36.6228V0.948151H38.6228V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M42.728 2.94815H44.728V0.948151H42.728V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M50.8333 2.94815H48.8333V0.948151H50.8333V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M54.9385 2.94815H56.9385V0.948151H54.9385V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M63.0437 2.94815H61.0437V0.948151H63.0437V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M67.1489 2.94815H69.1489V0.948151H67.1489V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M75.2542 2.94815H73.2542V0.948151H75.2542V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M79.3594 2.94815H81.3594V0.948151H79.3594V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M87.4645 2.94815H85.4645V0.948151H87.4645V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M91.5697 2.94815H93.5697V0.948151H91.5697V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M99.6749 2.94815H97.6749V0.948151H99.6749V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M103.78 2.94815H105.78V0.948151H103.78V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M111.885 2.94815H109.885V0.948151H111.885V2.94815Z",fill:"black"}),jsxRuntimeExports.jsx("path",{d:"M115.991 2.94815H117.991V0.948151H115.991V2.94815Z",fill:"black"})]}),"BorderMediumDashed"),BorderThick=__name(()=>jsxRuntimeExports.jsx("svg",{width:"120",height:"4",viewBox:"0 0 120 4",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntimeExports.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 3.86215H-0.0090332V0.862152H119.991V3.86215Z",fill:"black"})}),"BorderThick"),BorderThin=__name(()=>jsxRuntimeExports.jsx("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntimeExports.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 1.15668H-0.0090332V0.156677H119.991V1.15668Z",fill:"black"})}),"BorderThin");function BorderLine(props){const{type=core.BorderStyleTypes.THIN}=props;switch(type){case core.BorderStyleTypes.DASH_DOT:return jsxRuntimeExports.jsx(BorderDashDot,{});case core.BorderStyleTypes.DASH_DOT_DOT:return jsxRuntimeExports.jsx(BorderDashDotDot,{});case core.BorderStyleTypes.DASHED:return jsxRuntimeExports.jsx(BorderDashed,{});case core.BorderStyleTypes.HAIR:return jsxRuntimeExports.jsx(BorderHair,{});case core.BorderStyleTypes.MEDIUM:return jsxRuntimeExports.jsx(BorderMedium,{});case core.BorderStyleTypes.MEDIUM_DASH_DOT:return jsxRuntimeExports.jsx(BorderMediumDashDot,{});case core.BorderStyleTypes.MEDIUM_DASH_DOT_DOT:return jsxRuntimeExports.jsx(BorderMediumDashDotDot,{});case core.BorderStyleTypes.MEDIUM_DASHED:return jsxRuntimeExports.jsx(BorderMediumDashed,{});case core.BorderStyleTypes.THICK:return jsxRuntimeExports.jsx(BorderThick,{});case core.BorderStyleTypes.THIN:return jsxRuntimeExports.jsx(BorderThin,{});default:return jsxRuntimeExports.jsx(BorderThin,{})}}__name(BorderLine,"BorderLine");const styles$l={uiPluginSheetsBorderPanel:"univer-ui-plugin-sheets-border-panel",uiPluginSheetsBorderPanelPosition:"univer-ui-plugin-sheets-border-panel-position",uiPluginSheetsBorderPanelPositionItem:"univer-ui-plugin-sheets-border-panel-position-item",uiPluginSheetsBorderPanelPositionItemActive:"univer-ui-plugin-sheets-border-panel-position-item-active",uiPluginSheetsBorderPanelStyles:"univer-ui-plugin-sheets-border-panel-styles",uiPluginSheetsBorderPanelBoard:"univer-ui-plugin-sheets-border-panel-board",uiPluginSheetsBorderPanelButton:"univer-ui-plugin-sheets-border-panel-button",uiPluginSheetsBorderPanelMoreIcon:"univer-ui-plugin-sheets-border-panel-more-icon"},COMPONENT_PREFIX="UI_PLUGIN_SHEETS",BORDER_PANEL_COMPONENT=`${COMPONENT_PREFIX}_BORDER_PANEL_COMPONENT`,BORDER_LINE_CHILDREN=[{label:"borderLine.borderTop",icon:"UpBorder",value:"top"},{label:"borderLine.borderBottom",icon:"DownBorder",value:"bottom"},{label:"borderLine.borderLeft",icon:"LeftBorder",value:"left"},{label:"borderLine.borderRight",icon:"RightBorder",value:"right"},{label:"borderLine.borderNone",icon:"NoBorderSingle",value:"none"},{label:"borderLine.borderAll",icon:"AllBorderSingle",value:"all"},{label:"borderLine.borderOutside",icon:"OuterBorder",value:"outside"},{label:"borderLine.borderInside",icon:"InnerBorder",value:"inside"},{label:"borderLine.borderHorizontal",icon:"HorizontalBorder",value:"horizontal"},{label:"borderLine.borderVertical",icon:"VerticalBorder",value:"vertical"},{label:"borderLine.borderTlbr",icon:"BackSlashSingle",value:"tlbr"},{label:"borderLine.borderTlbcTlmr",icon:"LeftDoubleDiagonalSingle",value:"tlbc_tlmr"},{label:"borderLine.borderTlbrTlbcTlmr",icon:"LeftTridiagonalSingle",value:"tlbr_tlbc_tlmr"},{label:"borderLine.borderBlTr",icon:"SlashSingle",value:"bltr"},{label:"borderLine.borderMltrBctr",icon:"RightDoubleDiagonalSingle",value:"mltr_bctr"}],BORDER_SIZE_CHILDREN=[{label:core.BorderStyleTypes.THIN,value:core.BorderStyleTypes.THIN},{label:core.BorderStyleTypes.HAIR,value:core.BorderStyleTypes.HAIR},{label:core.BorderStyleTypes.DOTTED,value:core.BorderStyleTypes.DOTTED},{label:core.BorderStyleTypes.DASHED,value:core.BorderStyleTypes.DASHED},{label:core.BorderStyleTypes.DASH_DOT,value:core.BorderStyleTypes.DASH_DOT},{label:core.BorderStyleTypes.DASH_DOT_DOT,value:core.BorderStyleTypes.DASH_DOT_DOT},{label:core.BorderStyleTypes.MEDIUM,value:core.BorderStyleTypes.MEDIUM},{label:core.BorderStyleTypes.MEDIUM_DASHED,value:core.BorderStyleTypes.MEDIUM_DASHED},{label:core.BorderStyleTypes.MEDIUM_DASH_DOT,value:core.BorderStyleTypes.MEDIUM_DASH_DOT},{label:core.BorderStyleTypes.MEDIUM_DASH_DOT_DOT,value:core.BorderStyleTypes.MEDIUM_DASH_DOT_DOT},{label:core.BorderStyleTypes.THICK,value:core.BorderStyleTypes.THICK}];function BorderPanel(props){var _a2;const componentManager=core.useDependency(ui.ComponentManager),borderStyleManagerService=core.useDependency(sheets.BorderStyleManagerService),{onChange,value}=props;function handleClick(v,type){onChange==null||onChange({...value,[type]:v})}__name(handleClick,"handleClick");function renderIcon(icon){const Icon=componentManager.get(icon);return Icon&&jsxRuntimeExports.jsx(Icon,{extend:{colorChannel1:"rgb(var(--primary-color))"}})}__name(renderIcon,"renderIcon");function stopPropagation(e){e.stopPropagation()}return __name(stopPropagation,"stopPropagation"),jsxRuntimeExports.jsxs("section",{className:styles$l.uiPluginSheetsBorderPanel,children:[jsxRuntimeExports.jsx("div",{className:styles$l.uiPluginSheetsBorderPanelPosition,children:BORDER_LINE_CHILDREN.map(item=>jsxRuntimeExports.jsx("div",{className:borderStyleManagerService.getBorderInfo().type===item.value?`${styles$l.uiPluginSheetsBorderPanelPositionItemActive} ${styles$l.uiPluginSheetsBorderPanelPositionItem}`:styles$l.uiPluginSheetsBorderPanelPositionItem,onClick:__name(e=>{e.stopPropagation(),handleClick(item.value,"type")},"onClick"),children:renderIcon(item.icon)},item.value))}),jsxRuntimeExports.jsxs("div",{className:styles$l.uiPluginSheetsBorderPanelStyles,children:[jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(design.Dropdown,{align:{offset:[0,18]},overlay:jsxRuntimeExports.jsx("section",{className:styles$l.uiPluginSheetsBorderPanelBoard,onClick:stopPropagation,children:jsxRuntimeExports.jsx(design.ColorPicker,{onChange:__name(value2=>handleClick(value2,"color"),"onChange")})}),children:jsxRuntimeExports.jsxs("a",{className:styles$l.uiPluginSheetsBorderPanelButton,onClick:stopPropagation,children:[jsxRuntimeExports.jsx(PaintBucket,{extend:{colorChannel1:(_a2=value.color)!=null?_a2:"rgb(var(--primary-color))"}}),jsxRuntimeExports.jsx("span",{className:styles$l.uiPluginSheetsBorderPanelMoreIcon,children:jsxRuntimeExports.jsx(MoreDownSingle,{})})]})})}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(design.Dropdown,{align:{offset:[0,18]},overlay:jsxRuntimeExports.jsx("section",{onClick:stopPropagation,children:jsxRuntimeExports.jsx(design.Menu,{children:BORDER_SIZE_CHILDREN.map(item=>jsxRuntimeExports.jsx(design.MenuItem,{eventKey:item.value.toString(),onClick:__name(()=>handleClick(item.value,"style"),"onClick"),children:jsxRuntimeExports.jsx(BorderLine,{type:item.value})},item.value))})}),children:jsxRuntimeExports.jsxs("a",{className:styles$l.uiPluginSheetsBorderPanelButton,onClick:stopPropagation,children:[jsxRuntimeExports.jsx(BorderLine,{type:core.BorderStyleTypes.THIN}),jsxRuntimeExports.jsx("span",{className:styles$l.uiPluginSheetsBorderPanelMoreIcon,children:jsxRuntimeExports.jsx(MoreDownSingle,{})})]})})})]})]})}__name(BorderPanel,"BorderPanel");const COLOR_PICKER_COMPONENT=`${COMPONENT_PREFIX}_COLOR_PICKER_COMPONENT`,FONT_FAMILY_COMPONENT=`${COMPONENT_PREFIX}_FONT_FAMILY_COMPONENT`,FONT_FAMILY_ITEM_COMPONENT=`${COMPONENT_PREFIX}_FONT_FAMILY_ITEM_COMPONENT`,FONT_SIZE_COMPONENT=`${COMPONENT_PREFIX}_FONT_SIZE_COMPONENT`,MENU_ITEM_INPUT_COMPONENT=`${COMPONENT_PREFIX}_MENU_ITEM_INPUT_COMPONENT`,styles$k={sheetsUiContextMenuInput:"univer-sheets-ui-context-menu-input",sheetsUiContextMenuInputContainer:"univer-sheets-ui-context-menu-input-container",sheetsUiContextMenuInputNumber:"univer-sheets-ui-context-menu-input-number"},MenuItemInput=__name(props=>{const{prefix,suffix,value,onChange,min=Number.MIN_SAFE_INTEGER,max=Number.MAX_SAFE_INTEGER}=props,localeService=core.useDependency(core.LocaleService),[inputValue,setInputValue]=React.useState(),handleChange=__name(value2=>{var _a2;setInputValue(value2==null?void 0:value2.toString()),onChange((_a2=value2==null?void 0:value2.toString())!=null?_a2:"")},"handleChange");React.useEffect(()=>{setInputValue(value)},[value]);function handleKeyDown(e){e.key==="Backspace"&&e.stopPropagation()}return __name(handleKeyDown,"handleKeyDown"),jsxRuntimeExports.jsxs("div",{className:styles$k.sheetsUiContextMenuInput,children:[localeService.t(prefix),jsxRuntimeExports.jsx("span",{className:styles$k.sheetsUiContextMenuInputContainer,onClick:__name(e=>e.stopPropagation(),"onClick"),children:jsxRuntimeExports.jsx(design.InputNumber,{className:styles$k.sheetsUiContextMenuInputNumber,value:Number(inputValue),precision:0,onKeyDown:handleKeyDown,onChange:handleChange,min,max})}),localeService.t(suffix)]})},"MenuItemInput"),styles$j={countBar:"univer-count-bar"};function useActiveWorkbook(){const univerInstanceService=core.useDependency(core.IUniverInstanceService),workbook=ui.useObservable(()=>univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),void 0,void 0,[]);return workbook!=null?workbook:null}__name(useActiveWorkbook,"useActiveWorkbook");function useActiveWorksheet(workbook){return ui.useObservable(()=>{var _a2;return(_a2=workbook==null?void 0:workbook.activeSheet$)!=null?_a2:rxjs.of(null)},void 0,void 0,[workbook])}__name(useActiveWorksheet,"useActiveWorksheet");function useWorkbooks(){const univerInstanceService=core.useDependency(core.IUniverInstanceService);return ui.useObservable(()=>rxjs.merge([univerInstanceService.getTypeOfUnitAdded$(core.UniverInstanceType.UNIVER_SHEET),univerInstanceService.getTypeOfUnitDisposed$(core.UniverInstanceType.UNIVER_SHEET)]).pipe(rxjs.map(()=>univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET)),rxjs.startWith(univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET))),[],void 0,[univerInstanceService])}__name(useWorkbooks,"useWorkbooks");const ZOOM_MAP=[50,80,100,130,150,170,200,400];function ZoomSlider(){const commandService=core.useDependency(core.ICommandService),univerInstanceService=core.useDependency(core.IUniverInstanceService),workbook=useActiveWorkbook(),getCurrentZoom=React.useCallback(()=>{if(!workbook)return 100;const worksheet=workbook.getActiveSheet(),currentZoom=worksheet&&worksheet.getZoomRatio()*100||100;return Math.round(currentZoom)},[workbook]),[zoom,setZoom]=React.useState(()=>getCurrentZoom());React.useEffect(()=>(setZoom(getCurrentZoom()),commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===SetZoomRatioOperation.id||commandInfo.id===sheets.SetWorksheetActiveOperation.id){const currentZoom=getCurrentZoom();setZoom(currentZoom)}}).dispose),[commandService,getCurrentZoom]);function handleChange(value){setZoom(value);const workbook2=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook2==null?void 0:workbook2.getActiveSheet();if(worksheet==null)return;const zoomRatio=value/100;commandService.executeCommand(SetZoomRatioCommand.id,{unitId:workbook2.getUnitId(),subUnitId:worksheet.getSheetId(),zoomRatio})}return __name(handleChange,"handleChange"),jsxRuntimeExports.jsx(design.Slider,{min:SHEET_ZOOM_RANGE[0],value:zoom,shortcuts:ZOOM_MAP,onChange:handleChange})}__name(ZoomSlider,"ZoomSlider");function CountBar(props){return jsxRuntimeExports.jsx("section",{className:styles$j.countBar,children:jsxRuntimeExports.jsx(ZoomSlider,{})})}__name(CountBar,"CountBar");const _CellEditorManagerService=class _CellEditorManagerService{constructor(){__publicField(this,"_state",null);__publicField(this,"_rect",null);__publicField(this,"_state$",new rxjs.BehaviorSubject(null));__publicField(this,"state$",this._state$.asObservable());__publicField(this,"_rect$",new rxjs.BehaviorSubject(null));__publicField(this,"rect$",this._rect$.asObservable());__publicField(this,"_focus",!1);__publicField(this,"_focus$",new rxjs.BehaviorSubject(this._focus));__publicField(this,"focus$",this._focus$.asObservable())}dispose(){this._state$.complete(),this._state=null,this._rect$.complete(),this._rect=null}setState(param){this._state=param,this._refresh(param)}getRect(){return this._rect}setRect(param){this._rect=param,this._rect$.next(param)}getState(){return this._state}setFocus(param=!1){this._focus=param,this._focus$.next(param)}_refresh(param){this._state$.next(param)}};__name(_CellEditorManagerService,"CellEditorManagerService");let CellEditorManagerService=_CellEditorManagerService;const ICellEditorManagerService=core.createIdentifier("univer.sheet-cell-editor-manager.service"),styles$i={editorContainer:"univer-editor-container",editorInput:"univer-editor-input"},HIDDEN_EDITOR_POSITION$1=-1e3,EDITOR_DEFAULT_POSITION={width:0,height:0,top:HIDDEN_EDITOR_POSITION$1,left:HIDDEN_EDITOR_POSITION$1},EditorContainer=__name(()=>{const[state,setState]=React.useState({...EDITOR_DEFAULT_POSITION}),cellEditorManagerService=core.useDependency(ICellEditorManagerService),editorService=core.useDependency(ui.IEditorService),contextService=core.useDependency(core.IContextService),disableAutoFocus=ui.useObservable(()=>contextService.subscribeContextValue$(ui.DISABLE_AUTO_FOCUS_KEY),!1,void 0,[contextService,ui.DISABLE_AUTO_FOCUS_KEY]),snapshot={id:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,body:{dataStream:`${core.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[],paragraphs:[{startIndex:0}]},documentStyle:{documentFlavor:core.DocumentFlavor.MODERN}};return React.useEffect(()=>{cellEditorManagerService.state$.subscribe(param=>{if(param==null)return;const{startX=HIDDEN_EDITOR_POSITION$1,startY=HIDDEN_EDITOR_POSITION$1,endX=0,endY=0,show=!1}=param;if(!show)setState({...EDITOR_DEFAULT_POSITION});else{setState({width:endX-startX-engineRender.FIX_ONE_PIXEL_BLUR_OFFSET+2,height:endY-startY-engineRender.FIX_ONE_PIXEL_BLUR_OFFSET+2,left:startX+engineRender.FIX_ONE_PIXEL_BLUR_OFFSET,top:startY+engineRender.FIX_ONE_PIXEL_BLUR_OFFSET});const editor=editorService.getEditor(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);if(editor==null)return;const{left,top,width,height}=editor.getBoundingClientRect();cellEditorManagerService.setRect({left,top,width,height})}})},[]),React.useEffect(()=>{disableAutoFocus||cellEditorManagerService.setFocus(!0)},[disableAutoFocus,state]),jsxRuntimeExports.jsx("div",{className:styles$i.editorContainer,style:{left:state.left,top:state.top,width:state.width,height:state.height},children:jsxRuntimeExports.jsx(ui.TextEditor,{id:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,className:styles$i.editorInput,snapshot,cancelDefaultResizeListener:!0,isSheetEditor:!0,isSingle:!1})})},"EditorContainer"),_FormulaEditorManagerService=class _FormulaEditorManagerService{constructor(){__publicField(this,"_position",null);__publicField(this,"_position$",new rxjs.BehaviorSubject(null));__publicField(this,"position$",this._position$.asObservable());__publicField(this,"_focus",!1);__publicField(this,"_focus$",new rxjs.BehaviorSubject(this._focus));__publicField(this,"focus$",this._focus$.asObservable());__publicField(this,"_fxBtnClick$",new rxjs.Subject);__publicField(this,"fxBtnClick$",this._fxBtnClick$.asObservable());__publicField(this,"_foldBtnStatus$",new rxjs.Subject);__publicField(this,"foldBtnStatus$",this._foldBtnStatus$.asObservable())}dispose(){this._position$.complete(),this._focus$.complete(),this._position=null,this._focus=!1}setPosition(param){this._position=param,this._refresh(param)}getPosition(){return this._position}setFocus(param=!1){this._focus=param,this._focus$.next(param)}handleFxBtnClick(params){this._fxBtnClick$.next(params)}handleFoldBtnClick(params){this._foldBtnStatus$.next(params)}_refresh(param){this._position$.next(param)}};__name(_FormulaEditorManagerService,"FormulaEditorManagerService");let FormulaEditorManagerService=_FormulaEditorManagerService;const IFormulaEditorManagerService=core.createIdentifier("univer.sheet-formula-editor-manager.service"),styles$h={definedName:"univer-defined-name",definedNameDropDown:"univer-defined-name-drop-down",definedNameDropDownDisable:"univer-defined-name-drop-down-disable",definedNameOverlay:"univer-defined-name-overlay",definedNameOverlayContainer:"univer-defined-name-overlay-container",definedNameOverlayItem:"univer-defined-name-overlay-item",definedNameOverlayItemName:"univer-defined-name-overlay-item-name",definedNameOverlayItemNameForSheet:"univer-defined-name-overlay-item-name-for-sheet",definedNameOverlayItemFormula:"univer-defined-name-overlay-item-formula",definedNameOverlayManager:"univer-defined-name-overlay-manager",definedNameOverlayManagerTitle:"univer-defined-name-overlay-manager-title",definedNameOverlayManagerContent:"univer-defined-name-overlay-manager-content",definedNameContainer:"univer-defined-name-container",definedNameContainerScroll:"univer-defined-name-container-scroll",definedNameContainerAddButton:"univer-defined-name-container-addButton",definedNameContainerAddButtonText:"univer-defined-name-container-addButton-text",definedNameContainerItem:"univer-defined-name-container-item",definedNameContainerItemName:"univer-defined-name-container-item-name",definedNameContainerItemNameForSheet:"univer-defined-name-container-item-name-for-sheet",definedNameContainerItemFormulaOrRefString:"univer-defined-name-container-item-formula-or-refString",definedNameContainerItemUpdate:"univer-defined-name-container-item-update",definedNameContainerItemDelete:"univer-defined-name-container-item-delete",definedNameContainerItemShow:"univer-defined-name-container-item-show",definedNameInput:"univer-defined-name-input",definedNameInputValidation:"univer-defined-name-input-validation",definedNameInputDisable:"univer-defined-name-input-disable"},DEFINED_NAME_CONTAINER="DefinedNameContainer",SCOPE_WORKBOOK_VALUE="AllDefaultWorkbook",SidebarDefinedNameOperation={id:"sidebar.operation.defined-name",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const sidebarService=accessor.get(ui.ISidebarService),editorService=accessor.get(ui.IEditorService),localeService=accessor.get(core.LocaleService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{unitId}=target;switch(params.value){case"open":editorService.setOperationSheetUnitId(unitId),sidebarService.open({header:{title:localeService.t("definedName.featureTitle")},children:{label:DEFINED_NAME_CONTAINER},onClose:__name(()=>{editorService.closeRangePrompt()},"onClose"),width:333});break;case"close":default:sidebarService.close();break}return!0},"handler")};function DefinedNameOverlay(props){const commandService=core.useDependency(core.ICommandService),localeService=core.useDependency(core.LocaleService),definedNamesService=core.useDependency(engineFormula.IDefinedNamesService),unitId=core.useDependency(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId(),getDefinedNameMap=__name(()=>{const definedNameMap=definedNamesService.getDefinedNameMap(unitId);return definedNameMap?Array.from(Object.values(definedNameMap)):[]},"getDefinedNameMap"),[definedNames,setDefinedNames]=React.useState(getDefinedNameMap());React.useEffect(()=>{const definedNamesSubscription=definedNamesService.update$.subscribe(()=>{setDefinedNames(getDefinedNameMap())});return()=>{definedNamesSubscription.unsubscribe()}},[]);const openSlider=__name(()=>{commandService.executeCommand(SidebarDefinedNameOperation.id,{value:"open"})},"openSlider"),focusDefinedName=__name(definedName2=>{definedNamesService.focusRange(unitId,definedName2.id)},"focusDefinedName");return jsxRuntimeExports.jsxs("div",{className:styles$h.definedNameOverlay,children:[jsxRuntimeExports.jsx("div",{className:styles$h.definedNameOverlayContainer,children:definedNames.map((definedName2,index)=>jsxRuntimeExports.jsxs("div",{className:styles$h.definedNameOverlayItem,onClick:__name(()=>{focusDefinedName(definedName2)},"onClick"),children:[jsxRuntimeExports.jsx("div",{className:styles$h.definedNameOverlayItemName,title:definedName2.name,children:definedName2.name}),jsxRuntimeExports.jsx("div",{className:styles$h.definedNameOverlayItemFormula,title:definedName2.formulaOrRefString,children:definedName2.formulaOrRefString})]},index))}),jsxRuntimeExports.jsxs("div",{className:styles$h.definedNameOverlayManager,onClick:openSlider,children:[jsxRuntimeExports.jsx("div",{className:styles$h.definedNameOverlayManagerTitle,children:localeService.t("definedName.managerTitle")}),jsxRuntimeExports.jsx("div",{className:styles$h.definedNameOverlayManagerContent,children:localeService.t("definedName.managerDescription")})]})]})}__name(DefinedNameOverlay,"DefinedNameOverlay");function DefinedName({disable}){const[rangeString,setRangeString]=React.useState(""),definedNamesService=core.useDependency(engineFormula.IDefinedNamesService);return React.useEffect(()=>{const subscription=definedNamesService.currentRange$.subscribe(()=>{setRangeString(definedNamesService.getCurrentRangeForString())});return()=>{subscription.unsubscribe()}},[]),jsxRuntimeExports.jsxs("div",{className:styles$h.definedName,children:[jsxRuntimeExports.jsx(design.Input,{className:clsx({[styles$h.defineNameInputDisable]:disable}),value:rangeString,type:"text",size:"small",affixWrapperStyle:{border:"none",paddingLeft:"6px",paddingRight:"6px",height:"100%"}}),jsxRuntimeExports.jsx(design.Dropdown,{overlay:jsxRuntimeExports.jsx(DefinedNameOverlay,{}),children:jsxRuntimeExports.jsx("div",{className:clsx(styles$h.definedNameDropDown,{[styles$h.definedNameDropDownDisable]:disable}),children:jsxRuntimeExports.jsx(MoreDownSingle,{})})})]})}__name(DefinedName,"DefinedName");const styles$g={formulaBox:"univer-formula-box",nameRanges:"univer-name-ranges",formulaBar:"univer-formula-bar",formulaIcon:"univer-formula-icon",formulaIconDisable:"univer-formula-icon-disable",formulaIconWrapper:"univer-formula-icon-wrapper",iconContainer:"univer-icon-container",iconContainerSuccess:"univer-icon-container-success",formulaActive:"univer-formula-active",iconContainerError:"univer-icon-container-error",iconContainerFx:"univer-icon-container-fx",formulaInput:"univer-formula-input",formulaContent:"univer-formula-content",arrowContainer:"univer-arrow-container",arrowContainerDisable:"univer-arrow-container-disable"};function FormulaBar(){const[iconStyle,setIconStyle]=React.useState(styles$g.formulaGrey),[arrowDirection,setArrowDirection]=React.useState(0),formulaEditorManagerService=core.useDependency(IFormulaEditorManagerService),editorBridgeService=core.useDependency(IEditorBridgeService),progressBarColor=core.useDependency(core.ThemeService).getCurrentTheme().primaryColor,[disable,setDisable]=React.useState(!1),univerInstanceService=core.useDependency(core.IUniverInstanceService),selectionManager=core.useDependency(sheets.SheetsSelectionsService),worksheetProtectionRuleModel=core.useDependency(sheets.WorksheetProtectionRuleModel),rangeProtectionRuleModel=core.useDependency(sheets.RangeProtectionRuleModel),permissionService=core.useDependency(core.IPermissionService),currentWorkbook=useActiveWorkbook();function getPermissionIds(unitId,subUnitId){return[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetSetCellValuePermission(unitId,subUnitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id]}__name(getPermissionIds,"getPermissionIds"),React.useLayoutEffect(()=>{const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),subscription=rxjs.merge(worksheetProtectionRuleModel.ruleChange$,rangeProtectionRuleModel.ruleChange$,selectionManager.selectionMoveEnd$,workbook.activeSheet$).pipe(rxjs.switchMap(()=>{var _a2,_b2;const unitId=workbook.getUnitId(),worksheet=workbook.getActiveSheet();if(!worksheet)return rxjs.EMPTY;const subUnitId=worksheet.getSheetId();if(!((_a2=selectionManager.getCurrentLastSelection())==null?void 0:_a2.range))return rxjs.EMPTY;const permissionIds=getPermissionIds(unitId,subUnitId),selectionRanges=(_b2=selectionManager.getCurrentSelections())==null?void 0:_b2.map(selection=>selection.range);return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.ranges.some(r=>selectionRanges==null?void 0:selectionRanges.some(selectionRange=>core.Rectangle.intersects(r,selectionRange)))).forEach(p2=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,p2.permissionId).id)}),permissionService.composePermission$(permissionIds)})).subscribe(permissions=>{permissions&&setDisable(!permissions.every(p2=>p2.value))});return()=>{subscription.unsubscribe()}},[]);const INITIAL_SNAPSHOT={id:core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,body:{dataStream:`${core.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[],paragraphs:[{startIndex:0}]},documentStyle:{pageSize:{width:Number.POSITIVE_INFINITY,height:Number.POSITIVE_INFINITY},documentFlavor:core.DocumentFlavor.MODERN,marginTop:5,marginBottom:5,marginRight:0,marginLeft:0,paragraphLineGapDefault:0,renderConfig:{horizontalAlign:core.HorizontalAlign.UNSPECIFIED,verticalAlign:core.VerticalAlign.TOP,centerAngle:0,vertexAngle:0,wrapStrategy:core.WrapStrategy.WRAP,isRenderStyle:core.BooleanNumber.FALSE}}};React.useEffect(()=>{const subscription=editorBridgeService.visible$.subscribe(visibleInfo=>{setIconStyle(visibleInfo.visible?styles$g.formulaActive:styles$g.formulaGrey)});return()=>subscription.unsubscribe()},[editorBridgeService.visible$]);function resizeCallBack(editor){if(editor==null)return;const editorRect=editor.getBoundingClientRect();formulaEditorManagerService.setPosition(editorRect)}__name(resizeCallBack,"resizeCallBack");function handleArrowClick(){setArrowDirection(arrowDirection===0?1:0),setTimeout(()=>{formulaEditorManagerService.handleFoldBtnClick(arrowDirection===1)},150)}__name(handleArrowClick,"handleArrowClick");function handleCloseBtnClick(){var _a2;editorBridgeService.isVisible().visible&&editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.ESC,unitId:(_a2=currentWorkbook==null?void 0:currentWorkbook.getUnitId())!=null?_a2:""})}__name(handleCloseBtnClick,"handleCloseBtnClick");function handleConfirmBtnClick(){var _a2;editorBridgeService.isVisible().visible&&editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.PointerDown,unitId:(_a2=currentWorkbook==null?void 0:currentWorkbook.getUnitId())!=null?_a2:""})}__name(handleConfirmBtnClick,"handleConfirmBtnClick");function handlerFxBtnClick(){formulaEditorManagerService.handleFxBtnClick(!0)}return __name(handlerFxBtnClick,"handlerFxBtnClick"),jsxRuntimeExports.jsxs("div",{className:styles$g.formulaBox,style:{height:arrowDirection===0?"28px":"82px",pointerEvents:disable?"none":"auto"},children:[jsxRuntimeExports.jsx("div",{className:styles$g.nameRanges,children:jsxRuntimeExports.jsx(DefinedName,{disable})}),jsxRuntimeExports.jsxs("div",{className:styles$g.formulaBar,children:[jsxRuntimeExports.jsx("div",{className:clsx(styles$g.formulaIcon,{[styles$g.formulaIconDisable]:disable}),children:jsxRuntimeExports.jsxs("div",{className:styles$g.formulaIconWrapper,children:[jsxRuntimeExports.jsx("span",{className:clsx(styles$g.iconContainer,styles$g.iconContainerError,iconStyle),onClick:handleCloseBtnClick,children:jsxRuntimeExports.jsx(CloseSingle,{})}),jsxRuntimeExports.jsx("span",{className:clsx(styles$g.iconContainer,styles$g.iconContainerSuccess,iconStyle),onClick:handleConfirmBtnClick,children:jsxRuntimeExports.jsx(CheckMarkSingle,{})}),jsxRuntimeExports.jsx("span",{className:clsx(styles$g.iconContainer,styles$g.iconContainerFx),onClick:handlerFxBtnClick,children:jsxRuntimeExports.jsx(FxSingle,{})})]})}),jsxRuntimeExports.jsxs("div",{className:styles$g.formulaInput,children:[jsxRuntimeExports.jsx(ui.TextEditor,{id:core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,isSheetEditor:!0,resizeCallBack,cancelDefaultResizeListener:!0,onContextMenu:__name(e=>e.preventDefault(),"onContextMenu"),className:styles$g.formulaContent,snapshot:INITIAL_SNAPSHOT,isSingle:!1}),jsxRuntimeExports.jsx("div",{className:clsx(styles$g.arrowContainer,{[styles$g.arrowContainerDisable]:disable}),onClick:handleArrowClick,children:arrowDirection===0?jsxRuntimeExports.jsx(DropdownSingle,{}):jsxRuntimeExports.jsx(DropdownSingle,{style:{transform:"rotateZ(180deg)"}})})]})]}),jsxRuntimeExports.jsx(ui.ProgressBar,{barColor:progressBarColor})]})}__name(FormulaBar,"FormulaBar");const styles$f={operateContainer:"univer-operate-container",autoFillPopupMenu:"univer-auto-fill-popup-menu",autoFillPopupMenuItem:"univer-auto-fill-popup-menu-item",autoFillPopupMenuItemIcon:"univer-auto-fill-popup-menu-item-icon",autoFillPopupMenuItemTitle:"univer-auto-fill-popup-menu-item-title",autoFillPopupMenuItemHide:"univer-auto-fill-popup-menu-item-hide",btnContainer:"univer-btn-container",btnContainerExpand:"univer-btn-container-expand"},useUpdate=__name(()=>{const[,setState]=React.useState({});return React.useCallback(()=>setState(prevState=>!prevState),[])},"useUpdate"),AutoFillPopupMenu=__name(()=>{const commandService=core.useDependency(core.ICommandService),univerInstanceService=core.useDependency(core.IUniverInstanceService),renderManagerService=core.useDependency(engineRender.IRenderManagerService),autoFillService=core.useDependency(IAutoFillService),localeService=core.useDependency(core.LocaleService),[menu,setMenu]=React.useState([]),[visible,setVisible]=React.useState(!1),[anchor,setAnchor]=React.useState({row:-1,col:-1}),[selected,setSelected]=React.useState(APPLY_TYPE.SERIES),[isHovered,setHovered]=React.useState(!1),workbook=useActiveWorkbook(),{sheetSkeletonManagerService,selectionRenderService}=React.useMemo(()=>{if(workbook){const ru=renderManagerService.getRenderById(workbook.getUnitId());return{sheetSkeletonManagerService:ru==null?void 0:ru.with(exports2.SheetSkeletonManagerService),selectionRenderService:ru==null?void 0:ru.with(ISheetSelectionRenderService)}}return{sheetSkeletonManagerService:null,selectionRenderService:null}},[workbook,renderManagerService]),handleMouseEnter=__name(()=>{setHovered(!0)},"handleMouseEnter"),handleMouseLeave=__name(()=>{setHovered(!1)},"handleMouseLeave"),forceUpdate=useUpdate();if(React.useEffect(()=>commandService.onCommandExecuted((command,options)=>{command.id===SetScrollOperation.id&&forceUpdate()}).dispose,[forceUpdate,commandService]),React.useEffect(()=>{const disposable=sheetSkeletonManagerService&&core.toDisposable(sheetSkeletonManagerService.currentSkeleton$.subscribe(skeleton2=>{skeleton2&&forceUpdate()}));return disposable==null?void 0:disposable.dispose},[sheetSkeletonManagerService,forceUpdate]),React.useEffect(()=>core.toDisposable(autoFillService.menu$.subscribe(menu2=>{setMenu(menu2.map(i=>({...i,index:menu2.indexOf(i)})))})).dispose,[autoFillService]),React.useEffect(()=>core.toDisposable(autoFillService.showMenu$.subscribe(show=>{const{source,target}=autoFillService.autoFillLocation||{source:null,target:null};if(show&&source&&target){const lastRow=Math.max(source.rows[source.rows.length-1],target.rows[target.rows.length-1]),lastCol=Math.max(source.cols[source.cols.length-1],target.cols[target.cols.length-1]);setAnchor({row:lastRow,col:lastCol})}else setAnchor({row:-1,col:-1})})).dispose,[autoFillService]),React.useEffect(()=>core.toDisposable(autoFillService.applyType$.subscribe(type=>{setSelected(type)})).dispose,[autoFillService]),React.useEffect(()=>{function handleClose(){setVisible(!1)}return __name(handleClose,"handleClose"),document.addEventListener("wheel",handleClose),()=>{document.removeEventListener("wheel",handleClose)}},[visible]),anchor.col<0||anchor.row<0)return null;const sheetObject=getSheetObject(univerInstanceService,renderManagerService);if(!sheetObject||!selectionRenderService)return null;const{scene}=sheetObject,skeleton=sheetSkeletonManagerService==null?void 0:sheetSkeletonManagerService.getCurrentSkeleton(),viewport=selectionRenderService.getViewPort(),scaleX=scene==null?void 0:scene.scaleX,scaleY=scene==null?void 0:scene.scaleY,scrollXY=scene==null?void 0:scene.getViewportScrollXY(viewport);if(!scaleX||!scene||!scaleX||!scaleY||!scrollXY)return null;const x=(skeleton==null?void 0:skeleton.getNoMergeCellPositionByIndex(anchor.row,anchor.col).endX)||0,y=(skeleton==null?void 0:skeleton.getNoMergeCellPositionByIndex(anchor.row,anchor.col).endY)||0,relativeX=skeleton==null?void 0:skeleton.convertTransformToOffsetX(x,scaleX,scrollXY),relativeY=skeleton==null?void 0:skeleton.convertTransformToOffsetY(y,scaleY,scrollXY);if(relativeX==null||relativeY==null)return null;const onVisibleChange=__name(visible2=>{setVisible(visible2)},"onVisibleChange"),handleClick=__name(item=>{commandService.executeCommand(RefillCommand.id,{type:item.value})},"handleClick"),showMore=visible||isHovered,availableMenu=menu.filter(item=>!item.disable);return jsxRuntimeExports.jsx("div",{onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,style:{left:`${relativeX+2}px`,top:`${relativeY+2}px`,position:"absolute"},children:jsxRuntimeExports.jsx(design.Dropdown,{placement:"bottomLeft",trigger:["click"],overlay:jsxRuntimeExports.jsx("ul",{className:styles$f.autoFillPopupMenu,children:availableMenu.map(item=>jsxRuntimeExports.jsxs("li",{onClick:__name(()=>handleClick(item),"onClick"),className:styles$f.autoFillPopupMenuItem,children:[jsxRuntimeExports.jsx("span",{className:styles$f.autoFillPopupMenuItemIcon,children:item.value===selected&&jsxRuntimeExports.jsx(CheckMarkSingle,{style:{color:"rgb(var(--green-700, #409f11))"}})}),jsxRuntimeExports.jsx("span",{className:styles$f.autoFillPopupMenuItemTitle,children:localeService.t(item.label)})]},item.index))}),visible,onVisibleChange,children:jsxRuntimeExports.jsxs("div",{className:clsx(styles$f.btnContainer,{[styles$f.btnContainerExpand]:visible}),children:[jsxRuntimeExports.jsx(Autofill,{style:{color:"#35322B"},extend:{colorChannel1:"rgb(var(--green-700, #409f11))"}}),showMore&&jsxRuntimeExports.jsx(MoreDownSingle,{style:{color:"#CCCCCC",fontSize:"8px",marginLeft:"8px"}})]})})})},"AutoFillPopupMenu"),OperateContainer=__name(()=>jsxRuntimeExports.jsx("div",{className:styles$f.operateContainer,children:jsxRuntimeExports.jsx(AutoFillPopupMenu,{})}),"OperateContainer"),styles$e={sheetBar:"univer-sheet-bar",sheetBarOptions:"univer-sheet-bar-options",sheetBarOptionsDivider:"univer-sheet-bar-options-divider"},styles$d={sheetBarBtn:"univer-sheet-bar-btn"};function SheetBarButton(props){const{children,className,style,disabled=!1,onClick,...restProps}=props,handleClick=__name(e=>{if(disabled){e.preventDefault();return}onClick&&onClick(e)},"handleClick");return jsxRuntimeExports.jsx("button",{className:styles$d.sheetBarBtn,style,disabled,onClick:handleClick,...restProps,children})}__name(SheetBarButton,"SheetBarButton");const styles$c={sheetBarMenu:"univer-sheet-bar-menu",sheetBarMenuItem:"univer-sheet-bar-menu-item",sheetBarMenuItemIcon:"univer-sheet-bar-menu-item-icon",sheetBarMenuItemHide:"univer-sheet-bar-menu-item-hide",sheetBarMenuItemSelect:"univer-sheet-bar-menu-item-select",sheetBarMenuItemLabel:"univer-sheet-bar-menu-item-label"};function SheetBarMenu(props){const{style}=props,[menu,setMenu]=React.useState([]),[visible,setVisible]=React.useState(!1),univerInstanceService=core.useDependency(core.IUniverInstanceService),commandService=core.useDependency(core.ICommandService),sheetBarService=core.useDependency(ISheetBarService),worksheetProtectionRuleModel=core.useDependency(sheets.WorksheetProtectionRuleModel),workbook=ui.useObservable(()=>univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),null,!1,[]),handleClick=__name(item=>{const{sheetId}=item;!sheetId||!workbook||(item.hidden?commandService.executeCommand(sheets.SetWorksheetShowCommand.id,{unitId:workbook.getUnitId(),subUnitId:sheetId,value:sheetId}):item.selected||commandService.executeCommand(sheets.SetWorksheetActivateCommand.id,{unitId:workbook.getUnitId(),subUnitId:sheetId}),setVisible(!1))},"handleClick"),statusInit=React.useCallback(()=>{if(!workbook)return;const sheets2=workbook.getSheets(),activeSheet=workbook.getActiveSheet(),worksheetMenuItems=sheets2.map((sheet,index)=>({label:sheet.getName(),index:`${index}`,sheetId:sheet.getSheetId(),hidden:sheet.isSheetHidden()===core.BooleanNumber.TRUE,selected:activeSheet===sheet}));setMenu(worksheetMenuItems)},[workbook,worksheetProtectionRuleModel]),setupStatusUpdate=React.useCallback(()=>commandService.onCommandExecuted(commandInfo=>{switch(commandInfo.id){case sheets.SetWorksheetHideMutation.id:case sheets.RemoveSheetMutation.id:case sheets.SetWorksheetNameMutation.id:case sheets.InsertSheetMutation.id:case sheets.SetWorksheetOrderMutation.id:case sheets.SetWorksheetActiveOperation.id:statusInit();break}}),[commandService,statusInit]);function handleSheetBarMenu(){setVisible(!0)}__name(handleSheetBarMenu,"handleSheetBarMenu");const onVisibleChange=__name(visible2=>{setVisible(visible2)},"onVisibleChange");return React.useEffect(()=>{statusInit();const disposables=new core.DisposableCollection;return disposables.add(setupStatusUpdate()),disposables.add(sheetBarService.registerSheetBarMenuHandler({handleSheetBarMenu})),()=>disposables.dispose()},[setupStatusUpdate,sheetBarService,statusInit,workbook]),jsxRuntimeExports.jsx(design.Dropdown,{placement:"topLeft",trigger:["click"],overlay:jsxRuntimeExports.jsx("ul",{className:styles$c.sheetBarMenu,style:{...style},children:menu.map(item=>jsxRuntimeExports.jsxs("li",{onClick:__name(()=>handleClick(item),"onClick"),className:item.selected?`${styles$c.sheetBarMenuItem} ${styles$c.sheetBarMenuItemSelect}`:item.hidden?`${styles$c.sheetBarMenuItem} ${styles$c.sheetBarMenuItemHide}`:styles$c.sheetBarMenuItem,children:[jsxRuntimeExports.jsx("span",{className:styles$c.sheetBarMenuItemIcon,children:item.selected?jsxRuntimeExports.jsx(CheckMarkSingle,{}):item.hidden?jsxRuntimeExports.jsx(EyelashSingle,{}):jsxRuntimeExports.jsx(CheckMarkSingle,{})}),jsxRuntimeExports.jsx("div",{className:styles$c.sheetBarMenuItemLabel,children:item.label})]},item.index))}),visible,onVisibleChange,children:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(SheetBarButton,{children:jsxRuntimeExports.jsx(ConvertSingle,{})})})})}__name(SheetBarMenu,"SheetBarMenu");function whenSheetFocused(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)}__name(whenSheetFocused,"whenSheetFocused");function whenSheetEditorFocused(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&!contextService.getContextValue(core.EDITOR_ACTIVATED)&&!contextService.getContextValue(core.FOCUSING_COMMON_DRAWINGS)}__name(whenSheetEditorFocused,"whenSheetEditorFocused");function whenSheetEditorFocusedAndFxNotFocused(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&!contextService.getContextValue(core.EDITOR_ACTIVATED)&&!contextService.getContextValue(core.FOCUSING_FX_BAR_EDITOR)&&!contextService.getContextValue(core.FOCUSING_COMMON_DRAWINGS)}__name(whenSheetEditorFocusedAndFxNotFocused,"whenSheetEditorFocusedAndFxNotFocused");function whenSheetEditorActivated(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&contextService.getContextValue(core.EDITOR_ACTIVATED)}__name(whenSheetEditorActivated,"whenSheetEditorActivated");function whenEditorActivated(contextService){return contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&contextService.getContextValue(core.EDITOR_ACTIVATED)}__name(whenEditorActivated,"whenEditorActivated");function whenFormulaEditorFocused(contextService){return contextService.getContextValue(core.FOCUSING_FX_BAR_EDITOR)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)}__name(whenFormulaEditorFocused,"whenFormulaEditorFocused");function whenFormulaEditorActivated(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)}__name(whenFormulaEditorActivated,"whenFormulaEditorActivated");function whenEditorDidNotInputFormulaActivated(contextService){return contextService.getContextValue(core.FOCUSING_SHEET)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&!contextService.getContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA)&&!contextService.getContextValue(core.FOCUSING_EDITOR_STANDALONE)}__name(whenEditorDidNotInputFormulaActivated,"whenEditorDidNotInputFormulaActivated");const COPY_CONTENT_CACHE_LIMIT=10,ID_LENGTH=6;function genId(){return core.Tools.generateRandomId(ID_LENGTH)}__name(genId,"genId");function extractId(html){const match=html.match(/data-copy-id="([^\s]+)"/);return match&&match[1]?match[1]:null}__name(extractId,"extractId");const _CopyContentCache=class _CopyContentCache{constructor(){__publicField(this,"_cache",new core.LRUMap(COPY_CONTENT_CACHE_LIMIT))}set(id,clipboardData){this._cache.set(id,clipboardData)}get(id){return this._cache.get(id)}del(id){this._cache.delete(id)}clear(){this._cache.clear()}};__name(_CopyContentCache,"CopyContentCache");let CopyContentCache=_CopyContentCache;function extractNodeStyle(node,predefinedStyles){const styles2=predefinedStyles!=null?predefinedStyles:node.style,docStyles={},tagName=node.tagName.toLowerCase();switch(tagName){case"b":case"em":case"strong":{docStyles.bl=core.BooleanNumber.TRUE;break}case"s":{docStyles.st={s:core.BooleanNumber.TRUE};break}case"u":{docStyles.ul={s:core.BooleanNumber.TRUE};break}case"i":{docStyles.it=core.BooleanNumber.TRUE;break}case"sub":case"sup":{docStyles.va=tagName==="sup"?core.BaselineOffset.SUPERSCRIPT:core.BaselineOffset.SUBSCRIPT;break}}return parseStyleByProperty(styles2,docStyles),docStyles}__name(extractNodeStyle,"extractNodeStyle");function parseStyleByProperty(styles2,docStyles){if(styles2 instanceof CSSStyleDeclaration)for(let i=0;i<styles2.length;i++){const cssRule=styles2[i],cssValue=styles2.getPropertyValue(cssRule);handleStyle(cssRule,cssValue,docStyles)}else for(const cssRule in styles2){const cssValue=styles2[cssRule];handleStyle(cssRule,cssValue,docStyles)}}__name(parseStyleByProperty,"parseStyleByProperty");function handleStyle(cssRule,cssValue,docStyles){switch(cssRule){case"font-family":docStyles.ff=cssValue;break;case"font-size":{const fontSize=Number.parseInt(cssValue);Number.isNaN(fontSize)||(cssValue.endsWith("pt")?docStyles.fs=fontSize:cssValue.endsWith("px")&&(docStyles.fs=fontSize*.75));break}case"font-style":cssValue==="italic"&&(docStyles.it=core.BooleanNumber.TRUE);break;case"font-weight":{(Number(cssValue)>400||cssValue==="bold")&&(docStyles.bl=core.BooleanNumber.TRUE);break}case"text-decoration":{/underline/.test(cssValue)?docStyles.ul={s:core.BooleanNumber.TRUE}:/overline/.test(cssValue)?docStyles.ol={s:core.BooleanNumber.TRUE}:/line-through/.test(cssValue)&&(docStyles.st={s:core.BooleanNumber.TRUE});break}case"color":{const color=new core.ColorKit(cssValue);color.isValid&&(docStyles.cl={rgb:color.toRgbString()});break}case"background-color":{const color=new core.ColorKit(cssValue),bgColor=color.isValid?color.toRgbString():"";bgColor!==ui.DEFAULT_BACKGROUND_COLOR_RGB&&bgColor!==ui.DEFAULT_BACKGROUND_COLOR_RGBA&&(docStyles.bg={rgb:bgColor});break}}}__name(handleStyle,"handleStyle");function parseToDom(rawHtml){const template=document.createElement("body");return template.innerHTML=rawHtml,template}__name(parseToDom,"parseToDom");function getParagraphStyle(el){const styles2=el.style,paragraphStyle={};for(let i=0;i<styles2.length;i++){const cssRule=styles2[i],cssValue=styles2.getPropertyValue(cssRule);switch(cssRule){case"margin-top":{const marginTopValue=Number.parseInt(cssValue);paragraphStyle.spaceAbove={v:/pt/.test(cssValue)?engineRender.ptToPixel(marginTopValue):marginTopValue};break}case"margin-bottom":{const marginBottomValue=Number.parseInt(cssValue);paragraphStyle.spaceBelow={v:/pt/.test(cssValue)?engineRender.ptToPixel(marginBottomValue):marginBottomValue};break}case"line-height":{const lineHeightValue=Number.parseFloat(cssValue);paragraphStyle.lineSpacing=lineHeightValue;break}}}return Object.getOwnPropertyNames(paragraphStyle).length?paragraphStyle:null}__name(getParagraphStyle,"getParagraphStyle");function generateParagraphs(dataStream,prevParagraph){const paragraphs=[];for(let i=0,len=dataStream.length;i<len;i++)dataStream[i]===core.DataStreamTreeTokenType.PARAGRAPH&&paragraphs.push({startIndex:i});return paragraphs}__name(generateParagraphs,"generateParagraphs");const sheetStyleRules=["color","background","font-size","text-align","vertical-align","font-weight","font-style","font-family","text-decoration","white-space","word-wrap","border-left","border-right","border-top","border-bottom","--data-rotate"];function matchFilter(node,filter){const tagName=node.tagName.toLowerCase();return typeof filter=="string"?tagName===filter:Array.isArray(filter)?filter.some(name=>name===tagName):filter(node)}__name(matchFilter,"matchFilter");const _HtmlToUSMService=class _HtmlToUSMService{constructor(props){__publicField(this,"_styleMap",new Map);__publicField(this,"_styleCache",new Map);__publicField(this,"_styleRules",[]);__publicField(this,"_afterProcessRules",[]);__publicField(this,"_dom",null);__publicField(this,"_getCurrentSkeleton");this._getCurrentSkeleton=props.getCurrentSkeleton}static use(plugin){if(this._pluginList.includes(plugin))throw new Error(`Univer paste plugin ${plugin.name} already added`);this._pluginList.push(plugin)}convert(html){var _a2;const pastePlugin=_HtmlToUSMService._pluginList.find(plugin=>plugin.checkPasteType(html));pastePlugin&&(this._styleRules=[...pastePlugin.stylesRules],this._afterProcessRules=[...pastePlugin.afterProcessRules]);const valueMatrix=new core.ObjectMatrix;this._dom=parseToDom(html);const style=this._dom.querySelector("style");if(style){const shadowHost=document.createElement("div"),shadowRoot=shadowHost.attachShadow({mode:"open"});document.body.appendChild(shadowHost),shadowRoot.appendChild(style);for(const rule of style.sheet.cssRules){const cssRule=rule,selectorText=cssRule.selectorText,style2=cssRule.style;this._styleMap.set(selectorText,style2)}style.remove(),shadowHost.remove()}const newDocBody={dataStream:"",textRuns:[]},rowProperties=[],colProperties=[],tableStrings=html.match(/<table\b[^>]*>([\s\S]*?)<\/table>/gi),tables=[];this.process(null,this._dom.childNodes,newDocBody,tables);const{paragraphs,dataStream,textRuns,payloads}=newDocBody;if(paragraphs){const starts=paragraphs.map(p2=>p2.startIndex+1);starts.unshift(0);for(let i=0;i<starts.length;i++){let cellDataStream;if(i===starts.length-1){if(cellDataStream=`${dataStream.substring(starts[i])}\r
10
+ `,cellDataStream===`\r
11
+ `)continue}else cellDataStream=`${dataStream.substring(starts[i],starts[i+1]-1)}\r
12
+ `;const cellTextRuns=[];textRuns==null||textRuns.forEach(t=>{t.st>=starts[i]&&t.ed<=starts[i+1]&&cellTextRuns.push({st:t.st-starts[i],ed:t.ed-starts[i],ts:t.ts})});const p2=this._generateDocumentDataModelSnapshot({body:{dataStream:cellDataStream,textRuns:cellTextRuns,paragraphs:generateParagraphs(cellDataStream)}}),isEmptyMatrix=Object.keys(valueMatrix.getMatrix()).length===0;valueMatrix.setValue(isEmptyMatrix?0:valueMatrix.getLength(),0,{v:cellDataStream,p:p2}),rowProperties.push({})}}else if(dataStream){const singleDataStream=`${dataStream}\r
13
+ `,singleDocBody={dataStream:singleDataStream,textRuns,paragraphs:generateParagraphs(singleDataStream),payloads},dataStreamLength=dataStream.length,textRunsLength=(_a2=textRuns==null?void 0:textRuns.length)!=null?_a2:0;if(!textRunsLength||textRunsLength===1&&textRuns[0].st===0&&textRuns[0].ed===dataStreamLength)valueMatrix.setValue(0,0,{v:dataStream});else{const p2=this._generateDocumentDataModelSnapshot({body:singleDocBody});valueMatrix.setValue(0,0,{v:dataStream,p:p2})}rowProperties.push({})}return tableStrings&&tableStrings.forEach((t,index)=>{const curRow=valueMatrix.getDataRange().endRow+1,{cellMatrix,rowProperties:tableRowProp,colProperties:tableColProp}=this._parseTable(t,index);cellMatrix&&cellMatrix.forValue((row,col,value)=>{valueMatrix.setValue(curRow+row,col,value)}),tableColProp&&colProperties.push(...tableColProp),rowProperties.push(...tableRowProp)}),this.dispose(),{rowProperties,colProperties,cellMatrix:valueMatrix}}_getStyleBySelectorText(selectorText,cssText){var _a2;const css=(_a2=this._styleMap.get(selectorText))==null?void 0:_a2.getPropertyValue(cssText);return css||""}_getStyle(node,styleStr){const recordStyle=turnToStyleObject(styleStr),style=node.style;let newStyleStr="";for(let l2=0;l2<sheetStyleRules.length;l2++){const key=sheetStyleRules[l2];if(key==="background"){let value2="";node.classList.forEach(className=>{value2=this._getStyleBySelectorText(`.${className}`,"background-color")||this._getStyleBySelectorText(`.${className}`,key)});const bgColor=style.getPropertyValue("background-color")||value2||this._getStyleBySelectorText(`#${node.id}`,"background-color")||this._getStyleBySelectorText(`#${node.id}`,key)||this._getStyleBySelectorText(node.nodeName.toLowerCase(),key)||this._getStyleBySelectorText(node.nodeName,"background-color")||recordStyle["background-color"]||"";bgColor&&(newStyleStr+=`background:${bgColor};`);continue}if(key==="text-decoration"){let value2="";node.classList.forEach(className=>{value2=this._getStyleBySelectorText(`.${className}`,"text-decoration-line")||this._getStyleBySelectorText(`.${className}`,key)});const textDecoration=style.getPropertyValue("text-decoration-line")||style.getPropertyValue("text-decoration")||value2||this._getStyleBySelectorText(`#${node.id}`,"text-decoration-line")||this._getStyleBySelectorText(`#${node.id}`,key)||this._getStyleBySelectorText(node.nodeName.toLowerCase(),key)||this._getStyleBySelectorText(node.nodeName,"text-decoration-line")||recordStyle["text-decoration-line"]||"";textDecoration&&(newStyleStr+=`text-decoration:${textDecoration};`);continue}let value="";node.classList.forEach(className=>{value=this._getStyleBySelectorText(`.${className}`,key)}),value=style.getPropertyValue(key)||this._getStyleBySelectorText(`#${node.id}`,key)||value||this._getStyleBySelectorText(node.nodeName.toLowerCase(),key)||recordStyle[key]||"",value&&(newStyleStr+=`${key}:${value};`)}return newStyleStr}_parseTable(html,tableElIndex){var _a2,_b2;const valueMatrix=new core.ObjectMatrix,colProperties=(_a2=parseColGroup(html))!=null?_a2:[],{rowProperties=[]}=parseTableRows(html),parsedCellMatrix=this._parseTableByHtml(this._dom,tableElIndex,(_b2=this._getCurrentSkeleton())==null?void 0:_b2.skeleton);return parsedCellMatrix&&parsedCellMatrix.forValue((row,col,value)=>{var _a3,_b3,_c2,_d2,_e2,_f2,_g2,_h2,_i2,_j2,_k2,_l2,_m2,_n2,_o2,_p2,_q2,_r2,_s2,_t2,_u2,_v2,_w2,_x2;let style=ui.handleStringToStyle(void 0,value.style);if((_d2=(_c2=(_b3=(_a3=value==null?void 0:value.richTextParma)==null?void 0:_a3.p)==null?void 0:_b3.body)==null?void 0:_c2.textRuns)!=null&&_d2.length){const textLen=(_f2=(_e2=value==null?void 0:value.richTextParma)==null?void 0:_e2.v)==null?void 0:_f2.length;for(let i=0;i<((_j2=(_i2=(_h2=(_g2=value==null?void 0:value.richTextParma)==null?void 0:_g2.p)==null?void 0:_h2.body)==null?void 0:_i2.textRuns)==null?void 0:_j2.length);i++){const textRunItem=(_m2=(_l2=(_k2=value==null?void 0:value.richTextParma)==null?void 0:_k2.p)==null?void 0:_l2.body)==null?void 0:_m2.textRuns[i];textRunItem.st===0&&textRunItem.ed===textLen&&(style={...textRunItem.ts,...style},(_p2=(_o2=(_n2=value==null?void 0:value.richTextParma)==null?void 0:_n2.p)==null?void 0:_o2.body)==null||_p2.textRuns.splice(i,1),i--)}((_t2=(_s2=(_r2=(_q2=value==null?void 0:value.richTextParma)==null?void 0:_q2.p)==null?void 0:_r2.body)==null?void 0:_s2.textRuns)==null?void 0:_t2.length)===0&&(value.content=(_u2=value==null?void 0:value.richTextParma)==null?void 0:_u2.v,delete value.richTextParma)}const cellValue=(_x2=(_w2=(_v2=value==null?void 0:value.richTextParma)==null?void 0:_v2.p)==null?void 0:_w2.body)!=null&&_x2.textRuns?{v:value.richTextParma.v,p:value.richTextParma.p,s:style,rowSpan:value.rowSpan,colSpan:value.colSpan}:{v:value.content,s:style,rowSpan:value.rowSpan,colSpan:value.colSpan};valueMatrix.setValue(row,col,cellValue)}),{rowProperties,colProperties,cellMatrix:valueMatrix}}_parseTableByHtml(htmlElement,tableElIndex,skeleton){var _a2,_b2;const cellMatrix=new core.ObjectMatrix,tableEle=htmlElement.querySelectorAll("table")[tableElIndex];if(!tableEle)return cellMatrix;const tableStyle=this._getStyle(tableEle,""),rows=tableEle==null?void 0:tableEle.querySelectorAll("tr");for(let rowIndex=0;rowIndex<rows.length;rowIndex++){const row=rows[rowIndex],rowStyle=this._getStyle(row,tableStyle),cells=row.querySelectorAll("td, th");let colSetValueIndex=0;for(let colIndex=0;colIndex<cells.length;){const cell=cells[colIndex];let cellStyle="";const rowSpan=Number(cell.getAttribute("rowSpan"))||1,colSpan=Number(cell.getAttribute("colSpan"))||1;if(cellStyle=this._getStyle(cell,rowStyle),rowIndex>0){const cellValueAbove=cellMatrix.getValue(rowIndex-1,colSetValueIndex);if((_a2=cellValueAbove==null?void 0:cellValueAbove.style)!=null&&_a2.includes("border-bottom")&&cellStyle.includes("border-top")){const borderBottom=extractStyleProperty(cellValueAbove.style,"border-bottom");borderBottom&&ui.textTrim(borderBottom.substr(borderBottom.indexOf(":")+1))!=="none"&&(cellStyle=cellStyle.replace(/border-top:[^;]+;/,""))}}if(colIndex>0){const cellValueLeft=cellMatrix.getValue(rowIndex,colSetValueIndex-1);if((_b2=cellValueLeft==null?void 0:cellValueLeft.style)!=null&&_b2.includes("border-right")&&cellStyle.includes("border-left")){const borderRight=extractStyleProperty(cellValueLeft.style,"border-right");borderRight&&ui.textTrim(borderRight.substr(borderRight.indexOf(":")+1))!=="none"&&(cellStyle=cellStyle.replace(/border-left:[^;]+;/,""))}}const{cellText,cellRichStyle}=this._getCellTextAndRichText(cell,cellStyle,skeleton),cellValue={rowSpan,colSpan,content:cellText,style:cellStyle,richTextParma:{p:cellRichStyle,v:cellText}};if(cellMatrix.getValue(rowIndex,colSetValueIndex)){colSetValueIndex+=1;continue}else rowSpan>1||colSpan>1?setMergedCellStyle(cellMatrix,cellStyle,cellValue,{colSpan,rowSpan,rowIndex,colIndex,colSetValueIndex}):cellMatrix.setValue(rowIndex,colSetValueIndex,cellValue),colSetValueIndex+=colSpan,colIndex++}}return cellMatrix}_parseCellHtml(parent,nodes,doc,styleCache=new Map,styleStr){var _a2;for(const node of nodes)if(node.nodeType===Node.TEXT_NODE){const text=(_a2=node.nodeValue)==null?void 0:_a2.replace(/[\r\n]/g,"");let style;parent&&styleCache.has(parent)&&(style=styleCache.get(parent)),doc.dataStream+=text,style&&Object.getOwnPropertyNames(style).length&&doc.textRuns.push({st:doc.dataStream.length-text.length,ed:doc.dataStream.length,ts:style})}else{if(node.nodeType===Node.COMMENT_NODE||node.nodeName==="STYLE")continue;if(node.nodeType===Node.ELEMENT_NODE){const currentNodeStyle=this._getStyle(node,styleStr),parentStyles=parent?styleCache.get(parent):{},predefinedStyles=turnToStyleObject(currentNodeStyle),nodeStyles=extractNodeStyle(node,predefinedStyles);styleCache.set(node,{...parentStyles,...nodeStyles});const{childNodes}=node;this._parseCellHtml(node,childNodes,doc,styleCache,currentNodeStyle)}}}_getCellTextAndRichText(cell,styleStr,skeleton){var _a2;let cellText="",cellRichStyle;if(/<[^>]+>/.test(cell.innerHTML)&&skeleton){const newDocBody={dataStream:"",textRuns:[]};this._parseCellHtml(null,cell.childNodes,newDocBody,void 0,styleStr);const documentModel=(_a2=skeleton.getBlankCellDocumentModel())==null?void 0:_a2.documentModel,p2=documentModel==null?void 0:documentModel.getSnapshot(),singleDataStream=`${newDocBody.dataStream}\r
14
+ `,documentData={...p2,body:{dataStream:singleDataStream,textRuns:newDocBody.textRuns,paragraphs:generateParagraphs(singleDataStream)}};documentModel==null||documentModel.reset(documentData),cellRichStyle=documentModel==null?void 0:documentModel.getSnapshot(),cellText=newDocBody.dataStream}else cellText=decodeHTMLEntities(cell.innerHTML.replace(/[\r\n]/g,""));return{cellText,cellRichStyle}}_generateDocumentDataModelSnapshot(snapshot){var _a2;const currentSkeleton=this._getCurrentSkeleton();if(currentSkeleton==null)return null;const{skeleton}=currentSkeleton,documentModel=(_a2=skeleton.getBlankCellDocumentModel())==null?void 0:_a2.documentModel,documentData={...documentModel==null?void 0:documentModel.getSnapshot(),...snapshot};return documentModel==null||documentModel.reset(documentData),documentModel==null?void 0:documentModel.getSnapshot()}process(parent,nodes,doc,tables){var _a2,_b2,_c2;for(const node of nodes)if(node.nodeName.toLowerCase()==="table")tables.push({index:((_a2=doc==null?void 0:doc.paragraphs)==null?void 0:_a2.length)||0});else if(node.nodeType===Node.TEXT_NODE){if(((_b2=node.nodeValue)==null?void 0:_b2.trim())==="")continue;const text=(_c2=node.nodeValue)==null?void 0:_c2.replace(/[\r\n]/g,"");let style;parent&&this._styleCache.has(parent)&&(style=this._styleCache.get(parent));const newDoc={dataStream:"",textRuns:[]};doc.dataStream+=text,newDoc.dataStream+=text,style&&Object.getOwnPropertyNames(style).length&&(doc.textRuns.push({st:doc.dataStream.length-text.length,ed:doc.dataStream.length,ts:style}),newDoc.textRuns.push({st:doc.dataStream.length-text.length,ed:doc.dataStream.length,ts:style}))}else{if(core.skipParseTagNames.includes(node.nodeName.toLowerCase()))continue;if(node.nodeType===Node.ELEMENT_NODE){if(node.nodeName==="STYLE")continue;const parentStyles=parent?this._styleCache.get(parent):{},styleRule=this._styleRules.find(({filter})=>matchFilter(node,filter)),nodeStyles=styleRule?styleRule.getStyle(node):extractNodeStyle(node);this._styleCache.set(node,{...parentStyles,...nodeStyles});const{childNodes}=node;this.process(node,childNodes,doc,tables);const afterProcessRule=this._afterProcessRules.find(({filter})=>matchFilter(node,filter));afterProcessRule&&afterProcessRule.handler(doc,node)}}}dispose(){this._dom=null,this._styleCache.clear(),this._styleMap.clear()}};__name(_HtmlToUSMService,"HtmlToUSMService"),__publicField(_HtmlToUSMService,"_pluginList",[]);let HtmlToUSMService=_HtmlToUSMService;function parseTableRows(html){const ROWS_REGEX=/<tr([\s\S]*?)>([\s\S]*?)<\/tr>/gi,rowMatches=html.matchAll(ROWS_REGEX);if(!rowMatches)return{rowProperties:[],rowCount:0};const rowProperties=Array.from(rowMatches).map(rowMatch=>parseProperties(rowMatch[1]));return{rowProperties,rowCount:rowProperties.length}}__name(parseTableRows,"parseTableRows");function turnToStyleObject(styleStr){const styleObj={};return styleStr.split(";").forEach(style=>{const[key,value]=style.split(":");styleObj[key]=value}),styleObj}__name(turnToStyleObject,"turnToStyleObject");function parseProperties(propertyStr){if(!propertyStr)return{};const property={},PROPERTY_REGEX=/([\w-]+)\s*=\s*(?:(['"])([^'"]*)\2|(\S+))/g;let match;for(;(match=PROPERTY_REGEX.exec(propertyStr))!==null;){const[,attributeName,,attributeValue1,attributeValue2]=match,attributeValue=attributeValue1!==void 0?attributeValue1:attributeValue2;property[attributeName]=attributeValue}return property}__name(parseProperties,"parseProperties");function parseColGroup(raw){const COLGROUP_TAG_REGEX=/<colgroup([\s\S]*?)>(.*?)<\/colgroup>/,colgroupMatch=raw.match(COLGROUP_TAG_REGEX),COL_TAG_REGEX=/<col([\s\S]*?)>/g;let colMatches;return colgroupMatch!=null&&colgroupMatch[2]?colMatches=colgroupMatch[2].matchAll(COL_TAG_REGEX):colMatches=raw.matchAll(COL_TAG_REGEX),colMatches?Array.from(colMatches).map(colMatch=>parseProperties(colMatch[1])):null}__name(parseColGroup,"parseColGroup");function decodeHTMLEntities(input){const entities={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&#39;":"'","&nbsp;":" "};return input.replace(/&lt;|&gt;|&amp;|&quot;|&#39;|&nbsp;|<br>/g,match=>entities[match])}__name(decodeHTMLEntities,"decodeHTMLEntities");function extractStyleProperty(styleString,propertyName){if(!styleString||!propertyName)return null;const regex=new RegExp(`(${propertyName}\\s*:\\s*[^;]+);`,"i"),match=styleString.match(regex);return match?match[1]:null}__name(extractStyleProperty,"extractStyleProperty");function setMergedCellStyle(cellMatrix,cellStyle,cellValue,indexParams){const{rowSpan,colSpan,rowIndex,colSetValueIndex}=indexParams;for(let i=rowIndex;i<rowIndex+rowSpan;i++)for(let j=colSetValueIndex;j<colSetValueIndex+colSpan;j++)i===rowIndex&&j===colSetValueIndex?cellMatrix.setValue(i,j,{...cellValue,style:cellStyle}):cellMatrix.setValue(i,j,{style:cellStyle})}__name(setMergedCellStyle,"setMergedCellStyle");var COPY_TYPE=(COPY_TYPE2=>(COPY_TYPE2.COPY="COPY",COPY_TYPE2.CUT="CUT",COPY_TYPE2))(COPY_TYPE||{});function getRowContent(row,cols,hooks,matrix,mergeSet){const properties=hooks.map(hook=>{var _a2;return(_a2=hook.onCopyRow)==null?void 0:_a2.call(hook,row)}).filter(v=>!!v),mergedProperties=mergeProperties(properties),str=zipClipboardPropertyItemToString(mergedProperties),tds=cols.map(col=>{if(!mergeSet.has(`${row}-${col}`)){const v=matrix.getValue(row,col);if(v!=null&&v.rowSpan&&(v!=null&&v.colSpan))for(let i=row;i<row+v.rowSpan;i++)for(let j=col;j<col+v.colSpan;j++)mergeSet.add(`${i}-${j}`);return getTDContent(row,col,hooks,matrix)}return null}).filter(v=>!!v).join("");return`<tr${str}>${tds}</tr>`}__name(getRowContent,"getRowContent");function getTDContent(row,col,hooks,matrix){const v=matrix.getValue(row,col),properties=hooks.map(hook=>{var _a2;return(_a2=hook.onCopyCellStyle)==null?void 0:_a2.call(hook,row,col,v==null?void 0:v.rowSpan,v==null?void 0:v.colSpan)}).filter(v2=>!!v2),mergedProperties=mergeProperties(properties),str=zipClipboardPropertyItemToString(mergedProperties),content=hooks.reduce((acc,hook)=>{var _a2;return acc||((_a2=hook.onCopyCellContent)==null?void 0:_a2.call(hook,row,col))||""},"");return`<td${str}>${content}</td>`}__name(getTDContent,"getTDContent");function getColStyle(cols,hooks){return`<colgroup>${cols.map(col=>{const properties=hooks.map(hook=>{var _a2;return(_a2=hook.onCopyColumn)==null?void 0:_a2.call(hook,col)}).filter(v=>!!v),mergedProperties=mergeProperties(properties);return`<col ${zipClipboardPropertyItemToString(mergedProperties)}>`}).join("")}</colgroup>`}__name(getColStyle,"getColStyle");function mergeProperties(properties){return properties.reduce((acc,cur)=>(Object.keys(cur).forEach(key=>{acc[key]?acc[key]+=`;${cur[key]}`:acc[key]=cur[key]}),acc),{})}__name(mergeProperties,"mergeProperties");function zipClipboardPropertyItemToString(item){return Object.keys(item).reduce((acc,cur)=>(acc+=` ${cur}="${item[cur]}"`,acc),"")}__name(zipClipboardPropertyItemToString,"zipClipboardPropertyItemToString");function getArrayFromTo(f2,to){const arr=[];for(let i=f2;i<=to;i++)arr.push(i);return arr}__name(getArrayFromTo,"getArrayFromTo");const _USMToHtmlService=class _USMToHtmlService{convert(matrix,range,hooks){const{startColumn,endColumn}=range,colStyles=getColStyle(getArrayFromTo(startColumn,endColumn),hooks),rowContents=[],mergeSet=new Set,{startRow:dataStartRow,endRow:dataEndRow,startColumn:dataStartColumn,endColumn:dataEndColumn}=matrix.getDataRange();for(let row=dataStartRow;row<=dataEndRow;row++){const cols=Array.from({length:dataEndColumn-dataStartColumn+1},(_,index)=>dataStartColumn+index);rowContents.push(getRowContent(row,cols,hooks,matrix,mergeSet))}return`<google-sheets-html-origin><table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" cellpadding="0" dir="ltr" style="table-layout:fixed;font-size:10pt;font-family:Arial;width:0px;border-collapse:collapse;border:none">${colStyles}
15
+ <tbody>${rowContents.join("")}</tbody></table>`}};__name(_USMToHtmlService,"USMToHtmlService");let USMToHtmlService=_USMToHtmlService;const getRepeatRange=__name((sourceRange,targetRang,isStrictMode=!1)=>{const getRowLength=__name(range=>range.endRow-range.startRow+1,"getRowLength"),getColLength=__name(range=>range.endColumn-range.startColumn+1,"getColLength"),rowMod=getRowLength(targetRang)%getRowLength(sourceRange),colMod=getColLength(targetRang)%getColLength(sourceRange),repeatRelativeRange={startRow:0,endRow:getRowLength(sourceRange)-1,startColumn:0,endColumn:getColLength(sourceRange)-1},repeatRow=Math.floor(getRowLength(targetRang)/getRowLength(sourceRange)),repeatCol=Math.floor(getColLength(targetRang)/getColLength(sourceRange)),repeatList=[];if(!rowMod&&!colMod)for(let countRow=1;countRow<=repeatRow;countRow++)for(let countCol=1;countCol<=repeatCol;countCol++){const row=getRowLength(sourceRange)*(countRow-1),col=getColLength(sourceRange)*(countCol-1),startRange={startRow:row+targetRang.startRow,endRow:row+targetRang.startRow,startColumn:col+targetRang.startColumn,endColumn:col+targetRang.startColumn};repeatList.push({repeatRelativeRange,startRange})}else if(!rowMod&&colMod&&!isStrictMode)for(let countRow=1;countRow<=repeatRow;countRow++){const row=getRowLength(sourceRange)*(countRow-1),col=0,startRange={startRow:row+targetRang.startRow,endRow:row+targetRang.startRow,startColumn:col+targetRang.startColumn,endColumn:col+targetRang.startColumn};repeatList.push({repeatRelativeRange,startRange})}else if(rowMod&&!colMod&&!isStrictMode)for(let countCol=1;countCol<=repeatCol;countCol++){const col=getColLength(sourceRange)*(countCol-1),startRange={startRow:0+targetRang.startRow,endRow:0+targetRang.startRow,startColumn:col+targetRang.startColumn,endColumn:col+targetRang.startColumn};repeatList.push({repeatRelativeRange,startRange})}else{const startRange={startRow:targetRang.startRow,endRow:targetRang.startRow,startColumn:targetRang.startColumn,endColumn:targetRang.startColumn};repeatList.push({startRange,repeatRelativeRange})}return repeatList},"getRepeatRange");async function clipboardItemIsFromExcel(html){return html?/<td[^>]*class=".*?xl.*?"[^>]*>.*?<\/td>/.test(html):!1}__name(clipboardItemIsFromExcel,"clipboardItemIsFromExcel");function mergeCellValues(...cellValues){if(cellValues.length===1)return cellValues[0];const newMatrix=new core.ObjectMatrix;return cellValues.forEach(cellValue=>{cellValue&&new core.ObjectMatrix(cellValue).forValue((row,col,value)=>{newMatrix.setValue(row,col,{...newMatrix.getValue(row,col),...value})})}),newMatrix.getMatrix()}__name(mergeCellValues,"mergeCellValues");function getRangeValuesMergeable(m1,m2){return m1.id===m2.id&&m1.params.unitId===m2.params.unitId&&m1.params.subUnitId===m2.params.subUnitId}__name(getRangeValuesMergeable,"getRangeValuesMergeable");function mergeSetRangeValues(mutations){const newMutations=[];for(let i=0;i<mutations.length;){let cursor=1;if(mutations[i].id===sheets.SetRangeValuesMutation.id){const current=mutations[i],toMerge=[current];for(;i+cursor<mutations.length&&getRangeValuesMergeable(current,mutations[i+cursor]);)toMerge.push(mutations[i+cursor]),cursor+=1;const merged=mergeCellValues(...toMerge.map(m2=>m2.params.cellValue||{}));newMutations.push({...current,params:{...current.params,cellValue:merged}})}else newMutations.push(mutations[i]);i+=cursor}return newMutations}__name(mergeSetRangeValues,"mergeSetRangeValues");function rangeIntersectWithDiscreteRange(range,discrete){const{startRow,endRow,startColumn,endColumn}=range;for(let i=startRow;i<=endRow;i++)for(let j=startColumn;j<=endColumn;j++)if(discrete.rows.includes(i)&&discrete.cols.includes(j))return!0}__name(rangeIntersectWithDiscreteRange,"rangeIntersectWithDiscreteRange");function discreteRangeContainsRange(discrete,range){const{startRow,endRow,startColumn,endColumn}=range;for(let i=startRow;i<=endRow;i++)if(!discrete.rows.includes(i))return!1;for(let j=startColumn;j<=endColumn;j++)if(!discrete.cols.includes(j))return!1;return!0}__name(discreteRangeContainsRange,"discreteRangeContainsRange");function convertTextToTable(text){const rows=text.trim().split(`
16
+ `);let html="<table>";return rows.forEach(row=>{const columns=row.split(" ");html+="<tr>",columns.forEach(column=>{html+=`<td>${column}</td>`}),html+="</tr>"}),html+="</table>",html}__name(convertTextToTable,"convertTextToTable");const WordPastePlugin={name:"univer-doc-paste-plugin-word",checkPasteType(html){return/word|mso/i.test(html)},stylesRules:[{filter:["b"],getStyle(node){const inlineStyle=extractNodeStyle(node);return{bl:core.BooleanNumber.TRUE,...inlineStyle}}}],afterProcessRules:[{filter(el){return el.tagName==="P"&&/mso/i.test(el.className)},handler(doc,el){doc.paragraphs==null&&(doc.paragraphs=[]);const paragraph={startIndex:doc.dataStream.length},paragraphStyle=getParagraphStyle(el);paragraphStyle&&(paragraph.paragraphStyle=paragraphStyle),doc.paragraphs.push(paragraph),doc.dataStream+="\r"}}]},LarkPastePlugin={name:"univer-doc-paste-plugin-lark",checkPasteType(html){return/lark-record-clipboard/i.test(html)},stylesRules:[{filter:["s"],getStyle(node){const inlineStyle=extractNodeStyle(node);return{st:{s:core.BooleanNumber.TRUE},...inlineStyle}}}],afterProcessRules:[{filter(el){return el.tagName==="DIV"&&/ace-line/i.test(el.className)},handler(doc){doc.paragraphs==null&&(doc.paragraphs=[]),doc.paragraphs.push({startIndex:doc.dataStream.length}),doc.dataStream+="\r"}}]},UniverPastePlugin={name:"univer-doc-paste-plugin-univer",checkPasteType(html){return/UniverNormal/i.test(html)},stylesRules:[],afterProcessRules:[{filter(el){return el.tagName==="P"&&/UniverNormal/i.test(el.className)},handler(doc,el){doc.paragraphs==null&&(doc.paragraphs=[]);const paragraph={startIndex:doc.dataStream.length},paragraphStyle=getParagraphStyle(el);paragraphStyle&&(paragraph.paragraphStyle=paragraphStyle),doc.paragraphs.push(paragraph),doc.dataStream+="\r"}}]};var __defProp$I=Object.defineProperty,__getOwnPropDesc$I=Object.getOwnPropertyDescriptor,__decorateClass$I=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$I(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$I(target,key,result),result},"__decorateClass$I"),__decorateParam$H=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$H");const PREDEFINED_HOOK_NAME={DEFAULT_COPY:"default-copy",DEFAULT_PASTE:"default-paste",SPECIAL_PASTE_VALUE:"special-paste-value",SPECIAL_PASTE_FORMAT:"special-paste-format",SPECIAL_PASTE_COL_WIDTH:"special-paste-col-width",SPECIAL_PASTE_BESIDES_BORDER:"special-paste-besides-border",SPECIAL_PASTE_FORMULA:"special-paste-formula"};HtmlToUSMService.use(WordPastePlugin),HtmlToUSMService.use(LarkPastePlugin),HtmlToUSMService.use(UniverPastePlugin);const ISheetClipboardService=core.createIdentifier("sheet.clipboard-service");exports2.SheetClipboardService=(_m=class extends core.Disposable{constructor(_logService,_univerInstanceService,_selectionManagerService,_clipboardInterfaceService,_undoRedoService,_commandService,_markSelectionService,_notificationService,_platformService,_renderManagerService,_themeService,_localeService,_errorService,_injector){super();__publicField(this,"_clipboardHooks",[]);__publicField(this,"_clipboardHooks$",new rxjs.BehaviorSubject([]));__publicField(this,"clipboardHooks$",this._clipboardHooks$.asObservable());__publicField(this,"_htmlToUSM");__publicField(this,"_usmToHtml");__publicField(this,"_copyContentCache");__publicField(this,"_copyMarkId",null);this._logService=_logService,this._univerInstanceService=_univerInstanceService,this._selectionManagerService=_selectionManagerService,this._clipboardInterfaceService=_clipboardInterfaceService,this._undoRedoService=_undoRedoService,this._commandService=_commandService,this._markSelectionService=_markSelectionService,this._notificationService=_notificationService,this._platformService=_platformService,this._renderManagerService=_renderManagerService,this._themeService=_themeService,this._localeService=_localeService,this._errorService=_errorService,this._injector=_injector,this._htmlToUSM=new HtmlToUSMService({getCurrentSkeleton:__name(()=>{var _a2;return(_a2=this._renderManagerService.withCurrentTypeOfUnit(core.UniverInstanceType.UNIVER_SHEET,exports2.SheetSkeletonManagerService))==null?void 0:_a2.getCurrent()},"getCurrentSkeleton")}),this._usmToHtml=new USMToHtmlService,this._copyContentCache=new CopyContentCache,this.disposeWithMe(this._htmlToUSM)}copyContentCache(){return this._copyContentCache}generateCopyContent(workbookId,worksheetId,range){const hooks=this._clipboardHooks;hooks.forEach(h=>{var _a2;return(_a2=h.onBeforeCopy)==null?void 0:_a2.call(h,workbookId,worksheetId,range)});const copyContent=this._generateCopyContent(workbookId,worksheetId,range,hooks);return hooks.forEach(h=>{var _a2;return(_a2=h.onAfterCopy)==null?void 0:_a2.call(h)}),copyContent}async copy(copyType=COPY_TYPE.COPY){const selection=this._selectionManagerService.getCurrentLastSelection();if(!selection)return!1;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return!1;const copyContent=this.generateCopyContent(workbook.getUnitId(),worksheet.getSheetId(),selection.range);if(!copyContent)return!1;const{html,plain,matrixFragment,copyId,discreteRange}=copyContent;this._copyContentCache.set(copyId,{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),range:discreteRange,matrix:matrixFragment,copyType}),await this._clipboardInterfaceService.write(plain,html),this._markSelectionService.removeAllShapes();const style=createCopyPasteSelectionStyle(this._themeService);return this._copyMarkId=this._markSelectionService.addShape({...selection,style}),!0}async cut(){return this.copy(COPY_TYPE.CUT)}async paste(item,pasteType=PREDEFINED_HOOK_NAME.DEFAULT_PASTE){const types=item.types,text=types.indexOf(ui.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await item.getType(ui.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(blob=>blob&&blob.text()):"",html=types.indexOf(ui.HTML_CLIPBOARD_MIME_TYPE)!==-1?await item.getType(ui.HTML_CLIPBOARD_MIME_TYPE).then(blob=>blob&&blob.text()):"";return html?this._platformService.isWindows&&await clipboardItemIsFromExcel(html)?(this._notificationService.show({type:"warning",title:this._localeService.t("clipboard.shortCutNotify.title"),content:this._localeService.t("clipboard.shortCutNotify.useShortCutInstead")}),!1):this._pasteHTML(html,pasteType):text?this._pastePlainText(text,pasteType):(this._logService.error("[SheetClipboardService]","No valid data on clipboard"),!1)}legacyPaste(html,text){return html?this._pasteHTML(html,PREDEFINED_HOOK_NAME.DEFAULT_PASTE):text?/[\n\t]/.test(text)?this._pasteHTML(convertTextToTable(text),PREDEFINED_HOOK_NAME.DEFAULT_PASTE):this._pastePlainText(text,PREDEFINED_HOOK_NAME.DEFAULT_PASTE):Promise.resolve(!1)}addClipboardHook(hook){if(this._clipboardHooks.findIndex(h=>h.id===hook.id)!==-1)return this._logService.error("[SheetClipboardService]","hook already exists",hook.id),{dispose:__name(()=>{},"dispose")};const insertIndex=this._clipboardHooks.findIndex(existingHook=>{const existingHookPriority=existingHook.priority||0;return(hook.priority||0)<existingHookPriority});return this._clipboardHooks.splice(insertIndex!==-1?insertIndex:this._clipboardHooks.length,0,hook),this._notifyClipboardHook(),core.toDisposable(()=>{const index=this._clipboardHooks.indexOf(hook);index>-1&&(this._clipboardHooks.splice(index,1),this._notifyClipboardHook())})}getClipboardHooks(){return this._clipboardHooks}_generateCopyContent(unitId,subUnitId,range,hooks){const workbook=this._univerInstanceService.getUniverSheetInstance(unitId),worksheet=workbook==null?void 0:workbook.getSheetBySheetId(subUnitId);if(!workbook||!worksheet)return null;const filteredRows=hooks.reduce((acc,cur)=>{var _a2;const rows=(_a2=cur.getFilteredOutRows)==null?void 0:_a2.call(cur,range);return rows==null||rows.forEach(r=>acc.add(r)),acc},new Set),{startColumn,startRow,endColumn,endRow}=range,matrix=worksheet.getMatrixWithMergedCells(startRow,startColumn,endRow,endColumn,!0),matrixFragment=new core.ObjectMatrix;let rowIndex=startRow;const discreteRange={rows:[],cols:[]};for(let r=startRow;r<=endRow;r++)if(!filteredRows.has(r)){discreteRange.rows.push(r);for(let c=startColumn;c<=endColumn;c++){const cellData=matrix.getValue(r,c);cellData?matrixFragment.setValue(rowIndex-startRow,c-startColumn,{...getEmptyCell(),...core.Tools.deepClone(cellData)}):(matrixFragment.setValue(rowIndex-startRow,c-startColumn,getEmptyCell()),matrix.setValue(r,c,getEmptyCell()))}rowIndex+=1}for(let c=startColumn;c<=endColumn;c++)discreteRange.cols.push(c);let html=this._usmToHtml.convert(matrix,range,hooks);const plain=getMatrixPlainText(matrixFragment),copyId=genId();return html=html.replace(/(<[a-z]+)/,(_p0,p1)=>`${p1} data-copy-id="${copyId}"`),{copyId,plain,html,matrixFragment,discreteRange}}_notifyClipboardHook(){this._clipboardHooks$.next(this._clipboardHooks)}async _pastePlainText(text,pasteType){const target=this._getPastingTarget();if(!target.subUnitId||!target.selection)return!1;const accessor={get:this._injector.get.bind(this._injector)},range=rangeToDiscreteRange(target.selection.range,accessor,target.unitId,target.subUnitId);if(!range)return!1;const{unitId,subUnitId}=target,hooks=this._clipboardHooks,enabledHooks=[];if(hooks.some(h=>{var _a2;return enabledHooks.push(h)&&((_a2=h.onBeforePaste)==null?void 0:_a2.call(h,{unitId,subUnitId,range}))===!1}))return enabledHooks.forEach(h=>{var _a2;return(_a2=h.onAfterPaste)==null?void 0:_a2.call(h,!1)}),!1;const redoMutationsInfo=[],undoMutationsInfo=[];enabledHooks.forEach(h=>{var _a2;const contentReturn=(_a2=h.onPastePlainText)==null?void 0:_a2.call(h,{unitId,subUnitId,range},text,{pasteType});contentReturn&&(redoMutationsInfo.push(...contentReturn.redos),undoMutationsInfo.push(...contentReturn.undos))});const result=redoMutationsInfo.every(m2=>this._commandService.executeCommand(m2.id,m2.params));return result&&this._undoRedoService.pushUndoRedo({unitID:this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId(),undoMutations:undoMutationsInfo,redoMutations:redoMutationsInfo}),result}async _pasteHTML(html,pasteType){const copyId=extractId(html);return copyId&&this._copyContentCache.get(copyId)?this._pasteInternal(copyId,pasteType):this._pasteExternal(html,pasteType)}async _pasteExternal(html,pasteType){var _a2;const{rowProperties,colProperties,cellMatrix}=this._htmlToUSM.convert(html);if(!cellMatrix)return!1;const pasteTarget=this._getPastedRange(cellMatrix);if(!pasteTarget)return!1;const worksheet=(_a2=this._univerInstanceService.getUniverSheetInstance(pasteTarget.unitId))==null?void 0:_a2.getSheetBySheetId(pasteTarget.subUnitId);if(!worksheet)return!1;const mergeData=worksheet==null?void 0:worksheet.getMergeData();return mergeData.length&&mergeData.some(m2=>rangeIntersectWithDiscreteRange(m2,pasteTarget.pastedRange)&&!discreteRangeContainsRange(pasteTarget.pastedRange,m2))?(this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1):this._pasteUSM({rowProperties,colProperties,cellMatrix},pasteTarget,pasteType)}async _pasteInternal(copyId,pasteType){var _a2,_b2;const cachedData=core.Tools.deepClone(this._copyContentCache.get(copyId)),{range,matrix:cellMatrix,unitId:copyUnitId,subUnitId:copySubUnitId}=cachedData||{};if(!cellMatrix||!cachedData||!range||!copyUnitId||!copySubUnitId||!cellMatrix||!cachedData)return!1;const styles2=(_a2=this._univerInstanceService.getUniverSheetInstance(copyUnitId))==null?void 0:_a2.getStyles();cellMatrix.forValue((row,col,value)=>{if(typeof value.s=="string"){const newValue=core.Tools.deepClone(value);newValue.s=styles2==null?void 0:styles2.getStyleByCell(value),cellMatrix.setValue(row,col,newValue)}if(value.colSpan||value.rowSpan)for(let rStart=0;rStart<value.rowSpan;rStart++)for(let cStart=0;cStart<value.colSpan;cStart++){if(rStart===0&&cStart===0)continue;const r=row+rStart,c=col+cStart;cellMatrix.setValue(r,c,{s:styles2==null?void 0:styles2.getStyleByCell(value)})}});const pasteTarget=this._getPastedRange(cellMatrix);if(!pasteTarget)return!1;const worksheet=(_b2=this._univerInstanceService.getUniverSheetInstance(pasteTarget.unitId))==null?void 0:_b2.getSheetBySheetId(pasteTarget.subUnitId);if(!worksheet)return!1;const mergeData=worksheet==null?void 0:worksheet.getMergeData();if(mergeData&&mergeData.some(m2=>rangeIntersectWithDiscreteRange(m2,pasteTarget.pastedRange)&&!discreteRangeContainsRange(pasteTarget.pastedRange,m2)))return this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1;const colManager=worksheet.getColumnManager(),rowManager=worksheet.getRowManager(),defaultColumnWidth=worksheet.getConfig().defaultColumnWidth,defaultRowHeight=worksheet.getConfig().defaultRowHeight,colProperties=[],rowProperties=[];if(range.cols.forEach(i=>{const column=colManager.getColumnOrCreate(i);colProperties.push({width:`${column.w||defaultColumnWidth}`})}),range.rows.forEach(j=>{const row=rowManager.getRowOrCreate(j);rowProperties.push({height:`${row.ah||row.h||defaultRowHeight}`})}),cachedData.copyType===COPY_TYPE.CUT){const start=pasteTarget.pastedRange.rows[0],end=range.rows[range.rows.length-1]-range.rows[0]+start;pasteTarget.pastedRange.rows=Array.from(new Array(end+1).keys()).slice(start)}const pasteRes=this._pasteUSM({cellMatrix,colProperties,rowProperties},pasteTarget,pasteType,{range,unitId:cachedData.unitId,subUnitId:cachedData.subUnitId,copyType:cachedData.copyType,copyId});return cachedData.copyType===COPY_TYPE.CUT&&(this._copyContentCache.set(copyId,{...cachedData,matrix:null}),this._copyMarkId&&this._markSelectionService.removeShape(this._copyMarkId),this._copyMarkId=null),pasteRes}_pasteUSM(data,target,pasteType,source){const{rowProperties,colProperties,cellMatrix}=data,{unitId,subUnitId,pastedRange}=target,colCount=pastedRange.cols.length,hooks=this._clipboardHooks,enabledHooks=[];if(hooks.some(h=>{var _a2;return enabledHooks.push(h)&&((_a2=h.onBeforePaste)==null?void 0:_a2.call(h,{unitId,subUnitId,range:pastedRange}))===!1}))return enabledHooks.forEach(h=>{var _a2;return(_a2=h.onAfterPaste)==null?void 0:_a2.call(h,!1)}),!1;if(!cellMatrix)return!1;const pasteFrom=source?{unitId:source.unitId,subUnitId:source.subUnitId,range:source.range}:null,payload={copyType:(source==null?void 0:source.copyType)||COPY_TYPE.COPY,copyId:source==null?void 0:source.copyId,pasteType};let redoMutationsInfo=[],undoMutationsInfo=[];enabledHooks.filter(h=>!h.specialPasteInfo&&h.id!==PREDEFINED_HOOK_NAME.DEFAULT_PASTE||pasteType===h.id).forEach(h=>{var _a2,_b2,_c2;if(rowProperties){const rowReturn=(_a2=h.onPasteRows)==null?void 0:_a2.call(h,{range:pastedRange,unitId,subUnitId},rowProperties,{pasteType});rowReturn&&(redoMutationsInfo.push(...rowReturn.redos),undoMutationsInfo.push(...rowReturn.undos))}const colReturn=(_b2=h.onPasteColumns)==null?void 0:_b2.call(h,{range:pastedRange,unitId,subUnitId},colProperties||new Array(colCount).map(()=>({})),{pasteType});colReturn&&(redoMutationsInfo.push(...colReturn.redos),undoMutationsInfo.push(...colReturn.undos));const contentReturn=(_c2=h.onPasteCells)==null?void 0:_c2.call(h,pasteFrom,{range:pastedRange,unitId,subUnitId},cellMatrix,payload);contentReturn&&(redoMutationsInfo.push(...contentReturn.redos),undoMutationsInfo.push(...contentReturn.undos))});const setSelectionOperation=this._getSetSelectionOperation(unitId,subUnitId,pastedRange,cellMatrix);setSelectionOperation&&redoMutationsInfo.push(setSelectionOperation),redoMutationsInfo=mergeSetRangeValues(redoMutationsInfo),undoMutationsInfo=mergeSetRangeValues(undoMutationsInfo),this._logService.log("[SheetClipboardService]","pasting mutations",{undoMutationsInfo,redoMutationsInfo});const result=redoMutationsInfo.every(m2=>this._commandService.syncExecuteCommand(m2.id,m2.params));return result&&this._undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:undoMutationsInfo,redoMutations:redoMutationsInfo}),result}_getSetSelectionOperation(unitId,subUnitId,range,cellMatrix){var _a2;const worksheet=(_a2=this._univerInstanceService.getUniverSheetInstance(unitId))==null?void 0:_a2.getSheetBySheetId(subUnitId);if(!worksheet)return null;const{rows,cols}=range,startRow=rows[0],startColumn=cols[0],endRow=rows[rows.length-1],endColumn=cols[cols.length-1],primaryCell={startRow,endRow:startRow,startColumn,endColumn:startColumn},primary=sheets.getPrimaryForRange(primaryCell,worksheet),mainCell=cellMatrix.getValue(0,0),rowSpan=(mainCell==null?void 0:mainCell.rowSpan)||1,colSpan=(mainCell==null?void 0:mainCell.colSpan)||1;if(rowSpan>1||colSpan>1){const mergeRange={startRow,endRow:startRow+rowSpan-1,startColumn,endColumn:startColumn+colSpan-1};primary.startRow=mergeRange.startRow,primary.endRow=mergeRange.endRow,primary.startColumn=mergeRange.startColumn,primary.endColumn=mergeRange.endColumn,primary.isMerged=!0,primary.isMergedMainCell=!0}const setSelectionsParam={unitId,subUnitId,selections:[{range:{startRow,endRow,startColumn,endColumn},primary,style:null}]};return{id:sheets.SetSelectionsOperation.id,params:setSelectionsParam}}_getPastingTarget(){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),selection=this._selectionManagerService.getCurrentLastSelection();return{unitId:workbook.getUnitId(),subUnitId:worksheet==null?void 0:worksheet.getSheetId(),selection}}_transformPastedData(rowCount,colCount,cellMatrix){const target=this._getPastingTarget(),{selection,unitId,subUnitId}=target;if(!subUnitId||!selection)return null;const accessor={get:this._injector.get.bind(this._injector)},discreteRange=rangeToDiscreteRange(selection.range,accessor,unitId,subUnitId);if(!discreteRange)return null;const{ranges:[vRange],mapFunc}=virtualizeDiscreteRanges([discreteRange]),{startRow,startColumn,endRow,endColumn}=vRange,destinationRows=endRow-startRow+1,destinationColumns=endColumn-startColumn+1,workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!worksheet)return null;const mergedCellsInRange=worksheet.getMergeData().filter(rect=>discreteRange.rows.includes(rect.startRow)&&discreteRange.cols.includes(rect.startColumn)),mergedRange=mergedCellsInRange[0];let mergedRangeStartRow=0,mergedRangeStartColumn=0,mergedRangeEndRow=0,mergedRangeEndColumn=0;if(mergedRange&&(mergedRangeStartRow=mergedRange.startRow,mergedRangeStartColumn=mergedRange.startColumn,mergedRangeEndRow=mergedRange.endRow,mergedRangeEndColumn=mergedRange.endColumn),destinationRows%rowCount===0&&destinationColumns%colCount===0)if(mergedCellsInRange.length>0&&(destinationRows!==rowCount||destinationColumns!==colCount))if(mergedRangeStartRow===discreteRange.rows[0]&&mergedRangeStartColumn===discreteRange.cols[0]&&mergedRangeEndRow===discreteRange.rows[destinationRows-1]&&mergedRangeEndColumn===discreteRange.cols[destinationColumns-1])if(isMultipleCells(cellMatrix))for(let r=0;r<destinationRows;r++)for(let c=0;c<destinationColumns;c++){const cell=cellMatrix.getValue(r%rowCount,c%colCount);cell&&cellMatrix.setValue(r,c,cell)}else cellMatrix.forValue((row,col,cell)=>{cell.s=null,delete cell.colSpan,delete cell.rowSpan});else for(let r=0;r<destinationRows;r++)for(let c=0;c<destinationColumns;c++){const cell=cellMatrix.getValue(r%rowCount,c%colCount);cell&&cellMatrix.setValue(r,c,cell)}else for(let r=0;r<destinationRows;r++)for(let c=0;c<destinationColumns;c++){const cell=cellMatrix.getValue(r%rowCount,c%colCount);cell&&cellMatrix.setValue(r,c,cell)}else if(mergedCellsInRange.length>0){const{row:topRow,col:leftCol}=mapFunc(startRow,startColumn);if(this._topLeftCellsMatch(rowCount,colCount,{topRow,leftCol})){const newDiscreteRange=this._expandOrShrinkRowsCols(unitId,subUnitId,discreteRange,colCount,rowCount);discreteRange.rows=newDiscreteRange.rows,discreteRange.cols=newDiscreteRange.cols}else{if(endRow>mergedRange.endRow||endColumn>mergedRange.endColumn)return null;cellMatrix.forValue((row,col,cell)=>{cell.s=null,delete cell.colSpan,delete cell.rowSpan})}}else{const newDiscreteRange=this._expandOrShrinkRowsCols(unitId,subUnitId,discreteRange,colCount,rowCount);discreteRange.rows=newDiscreteRange.rows,discreteRange.cols=newDiscreteRange.cols}return{pastedRange:discreteRange,unitId,subUnitId}}_getPastedRange(cellMatrix){var _a2;const target=this._getPastingTarget(),{selection,unitId,subUnitId}=target;if(!subUnitId||!selection)return null;const accessor={get:this._injector.get.bind(this._injector)},discreteRange=rangeToDiscreteRange(selection.range,accessor,unitId,subUnitId);if(!discreteRange)return null;const{startColumn,endColumn,startRow,endRow}=cellMatrix.getDataRange(),rowCount=endRow-startRow+1,colCount=endColumn-startColumn+1;if(rowCount<=0||colCount<=0)return null;const pasteSelectionRangeRowLen=discreteRange.rows.length,pasteSelectionRangeColLen=discreteRange.cols.length,worksheet=(_a2=this._univerInstanceService.getUniverSheetInstance(unitId))==null?void 0:_a2.getSheetBySheetId(subUnitId);if(!worksheet)return null;const mergeData=worksheet==null?void 0:worksheet.getMergeData();if(pasteSelectionRangeRowLen%rowCount===0&&pasteSelectionRangeColLen%colCount===0&&!(mergeData==null?void 0:mergeData.some(merge=>rangeIntersectWithDiscreteRange(merge,discreteRange)))){for(let r=0;r<pasteSelectionRangeRowLen;r++)for(let c=0;c<pasteSelectionRangeColLen;c++){const cell=cellMatrix.getValue(r%rowCount,c%colCount);cell&&cellMatrix.setValue(r,c,cell)}return{pastedRange:discreteRange,unitId,subUnitId}}const newDiscreteRange=this._expandOrShrinkRowsCols(unitId,subUnitId,discreteRange,colCount,rowCount);return discreteRange.rows=newDiscreteRange.rows,discreteRange.cols=newDiscreteRange.cols,{pastedRange:discreteRange,unitId,subUnitId}}_expandOrShrinkRowsCols(unitId,subUnitId,range,colCount,rowCount){const{rows,cols}=range,workbook=this._univerInstanceService.getUniverSheetInstance(unitId),worksheet=workbook==null?void 0:workbook.getSheetBySheetId(subUnitId);let newRows,newCols;if(rows.length>=rowCount)newRows=rows.slice(0,rowCount);else{newRows=rows.slice(0);let rowIndex=rows[rows.length-1]+1;for(;newRows.length<rowCount;)worksheet.getRowFiltered(rowIndex)||newRows.push(rowIndex),rowIndex++}if(cols.length>=colCount)newCols=cols.slice(0,colCount);else{newCols=cols.slice(0);let colIndex=cols[cols.length-1]+1;for(;newCols.length<colCount;)newCols.push(colIndex),colIndex++}return{rows:newRows,cols:newCols}}_topLeftCellsMatch(rowCount,colCount,range){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!worksheet)return!1;const{topRow,leftCol}=range,isRowAcross=rowAcrossMergedCell(topRow+rowCount-1,leftCol,leftCol+colCount-1,worksheet),isColAcross=columnAcrossMergedCell(leftCol+colCount-1,topRow,topRow+rowCount-1,worksheet);return!isRowAcross&&!isColAcross}},__name(_m,"SheetClipboardService"),_m),exports2.SheetClipboardService=__decorateClass$I([__decorateParam$H(0,core.ILogService),__decorateParam$H(1,core.IUniverInstanceService),__decorateParam$H(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$H(3,ui.IClipboardInterfaceService),__decorateParam$H(4,core.IUndoRedoService),__decorateParam$H(5,core.ICommandService),__decorateParam$H(6,IMarkSelectionService),__decorateParam$H(7,ui.INotificationService),__decorateParam$H(8,ui.IPlatformService),__decorateParam$H(9,engineRender.IRenderManagerService),__decorateParam$H(10,core.Inject(core.ThemeService)),__decorateParam$H(11,core.Inject(core.LocaleService)),__decorateParam$H(12,core.Inject(core.ErrorService)),__decorateParam$H(13,core.Inject(core.Injector))],exports2.SheetClipboardService);function getMatrixPlainText(matrix){let plain="";const matrixLength=matrix.getLength();return matrix.forRow((row,cols)=>{const arr=[];cols.forEach(col=>{const cell=matrix.getValue(row,col);if(cell){const cellText=getCellTextForClipboard(cell);arr.push(cellText)}}),plain+=arr.join(" "),row!==matrixLength-1&&(plain+=`
17
+ `)}),plain}__name(getMatrixPlainText,"getMatrixPlainText");function getCellTextForClipboard(cell){return core.extractPureTextFromCell(cell)}__name(getCellTextForClipboard,"getCellTextForClipboard");function rowAcrossMergedCell(row,startColumn,endColumn,worksheet){return worksheet.getMergeData().some(mergedCell=>mergedCell.startRow<=row&&row<mergedCell.endRow&&startColumn<=mergedCell.startColumn&&mergedCell.startColumn<=endColumn)}__name(rowAcrossMergedCell,"rowAcrossMergedCell");function columnAcrossMergedCell(col,startRow,endRow,worksheet){return worksheet.getMergeData().some(mergedCell=>mergedCell.startColumn<=col&&col<mergedCell.endColumn&&startRow<=mergedCell.startRow&&mergedCell.startRow<=endRow)}__name(columnAcrossMergedCell,"columnAcrossMergedCell");function isMultipleCells(cellMatrix){let count=0;return cellMatrix.forValue((row,col,cell)=>{if(cell&&count++,count>1)return!1}),count>1}__name(isMultipleCells,"isMultipleCells");function getEmptyCell(){return{p:null,v:null,s:null,f:null,si:null,t:null}}__name(getEmptyCell,"getEmptyCell");const SHEET_CLIPBOARD_PRIORITY=998,SheetCopyCommand={id:ui.CopyCommand.id,name:"sheet.command.copy",type:core.CommandType.COMMAND,multi:!0,priority:SHEET_CLIPBOARD_PRIORITY,preconditions:whenSheetFocused,handler:__name(async accessor=>accessor.get(ISheetClipboardService).copy(),"handler")},SheetCutCommand={id:ui.CutCommand.id,name:"sheet.command.cut",type:core.CommandType.COMMAND,multi:!0,priority:SHEET_CLIPBOARD_PRIORITY,preconditions:whenSheetFocused,handler:__name(async accessor=>accessor.get(ISheetClipboardService).cut(),"handler")},SheetPasteCommand={id:ui.PasteCommand.id,type:core.CommandType.COMMAND,multi:!0,name:"sheet.command.paste",priority:SHEET_CLIPBOARD_PRIORITY,preconditions:whenSheetFocused,handler:__name(async(accessor,params)=>{const clipboardItems=await accessor.get(ui.IClipboardInterfaceService).read(),sheetClipboardService=accessor.get(ISheetClipboardService);return clipboardItems.length!==0?sheetClipboardService.paste(clipboardItems[0],params==null?void 0:params.value):!1},"handler")},SheetPasteShortKeyCommand={id:"sheet.command.paste-bu-short-key",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const clipboardService=accessor.get(ISheetClipboardService),{htmlContent,textContent}=params;return clipboardService.legacyPaste(htmlContent,textContent),!0},"handler")},SheetPasteValueCommand={id:"sheet.command.paste-value",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE}),"handler")},SheetPasteFormatCommand={id:"sheet.command.paste-format",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT}),"handler")},SheetPasteColWidthCommand={id:"sheet.command.paste-col-width",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH}),"handler")},SheetPasteBesidesBorderCommand={id:"sheet.command.paste-besides-border",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_BESIDES_BORDER}),"handler")};var SheetMenuPosition=(SheetMenuPosition2=>(SheetMenuPosition2.ROW_HEADER_CONTEXT_MENU="ROW_HEADER_CONTEXT_MENU",SheetMenuPosition2.COL_HEADER_CONTEXT_MENU="COL_HEADER_CONTEXT_MENU",SheetMenuPosition2.SHEET_BAR="SHEET_BAR",SheetMenuPosition2))(SheetMenuPosition||{});function FormatPainterMenuItemFactory(accessor){const formatPainterService=accessor.get(IFormatPainterService);return{id:SetOnceFormatPainterCommand.id,subId:SetInfiniteFormatPainterCommand.id,group:ui.MenuGroup.TOOLBAR_FORMAT,type:ui.MenuItemType.BUTTON,icon:"BrushSingle",title:"Format Painter",tooltip:"toolbar.formatPainter",positions:[ui.MenuPosition.TOOLBAR_START],activated$:new rxjs.Observable(subscriber=>{let active=!1;const status$=formatPainterService.status$.subscribe(s=>{active=s!==FormatPainterStatus.OFF,subscriber.next(active)});return subscriber.next(active),()=>{status$.unsubscribe()}}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetCopyPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(FormatPainterMenuItemFactory,"FormatPainterMenuItemFactory");function BoldMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),contextService=accessor.get(core.IContextService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService);return{id:SetRangeBoldCommand.id,group:ui.MenuGroup.TOOLBAR_FORMAT,type:ui.MenuItemType.BUTTON,icon:"BoldSingle",title:"Set bold",tooltip:"toolbar.bold",positions:[ui.MenuPosition.TOOLBAR_START],disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a2;const disposable=commandService.onCommandExecuted(c=>{var _a3,_b2;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a3=selectionManagerService.getCurrentLastSelection())==null?void 0:_a3.primary;let isBold2=core.FontWeight.NORMAL;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);isBold2=range==null?void 0:range.getFontWeight()}subscriber.next(isBold2===core.FontWeight.BOLD)}if((id===docs.SetTextSelectionsOperation.id||id===docs.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const bl=(_b2=textRun.ts)==null?void 0:_b2.bl;subscriber.next(bl===core.BooleanNumber.TRUE)}}),primary=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.primary;if(!worksheet){subscriber.next(!1);return}let isBold=core.FontWeight.NORMAL;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);isBold=range==null?void 0:range.getFontWeight()}return subscriber.next(isBold===core.FontWeight.BOLD),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(BoldMenuItemFactory,"BoldMenuItemFactory");function ItalicMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService);return{id:SetRangeItalicCommand.id,group:ui.MenuGroup.TOOLBAR_FORMAT,type:ui.MenuItemType.BUTTON,icon:"ItalicSingle",title:"Set italic",tooltip:"toolbar.italic",positions:[ui.MenuPosition.TOOLBAR_START],disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a2;const disposable=commandService.onCommandExecuted(c=>{var _a3,_b2;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a3=selectionManagerService.getCurrentLastSelection())==null?void 0:_a3.primary;let isItalic2=core.FontItalic.NORMAL;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);isItalic2=range==null?void 0:range.getFontStyle()}subscriber.next(isItalic2===core.FontItalic.ITALIC)}if((id===docs.SetTextSelectionsOperation.id||id===docs.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const it=(_b2=textRun.ts)==null?void 0:_b2.it;subscriber.next(it===core.BooleanNumber.TRUE)}}),primary=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.primary;let isItalic=core.FontItalic.NORMAL;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);isItalic=range==null?void 0:range.getFontStyle()}return subscriber.next(isItalic===core.FontItalic.ITALIC),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ItalicMenuItemFactory,"ItalicMenuItemFactory");function UnderlineMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService);return{id:SetRangeUnderlineCommand.id,group:ui.MenuGroup.TOOLBAR_FORMAT,type:ui.MenuItemType.BUTTON,icon:"UnderlineSingle",title:"Set underline",tooltip:"toolbar.underline",positions:[ui.MenuPosition.TOOLBAR_START],activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a2;const disposable=commandService.onCommandExecuted(c=>{var _a3,_b2;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a3=selectionManagerService.getCurrentLastSelection())==null?void 0:_a3.primary;let isUnderline2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);isUnderline2=range==null?void 0:range.getUnderline()}subscriber.next(!!(isUnderline2&&isUnderline2.s))}if((id===docs.SetTextSelectionsOperation.id||id===docs.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const ul=(_b2=textRun.ts)==null?void 0:_b2.ul;subscriber.next((ul==null?void 0:ul.s)===core.BooleanNumber.TRUE)}}),primary=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.primary;let isUnderline;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);isUnderline=range==null?void 0:range.getUnderline()}return subscriber.next(!!(isUnderline&&isUnderline.s)),disposable.dispose})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(UnderlineMenuItemFactory,"UnderlineMenuItemFactory");function StrikeThroughMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService);return{id:SetRangeStrickThroughCommand.id,group:ui.MenuGroup.TOOLBAR_FORMAT,type:ui.MenuItemType.BUTTON,icon:"StrikethroughSingle",title:"Set strike through",tooltip:"toolbar.strikethrough",positions:[ui.MenuPosition.TOOLBAR_START],disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a2;const disposable=commandService.onCommandExecuted(c=>{var _a3,_b2;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a3=selectionManagerService.getCurrentLastSelection())==null?void 0:_a3.primary;let st2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);st2=range==null?void 0:range.getStrikeThrough()}subscriber.next(!!(st2&&st2.s))}if((id===docs.SetTextSelectionsOperation.id||id===docs.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const st2=(_b2=textRun.ts)==null?void 0:_b2.st;subscriber.next((st2==null?void 0:st2.s)===core.BooleanNumber.TRUE)}}),primary=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.primary;let st;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);st=range==null?void 0:range.getStrikeThrough()}return subscriber.next(!!(st&&st.s)),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(StrikeThroughMenuItemFactory,"StrikeThroughMenuItemFactory");function FontFamilySelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=core.DEFAULT_STYLES.ff;return{id:SetRangeFontFamilyCommand.id,tooltip:"toolbar.font",group:ui.MenuGroup.TOOLBAR_FORMAT,type:ui.MenuItemType.SELECTOR,label:FONT_FAMILY_COMPONENT,positions:[ui.MenuPosition.TOOLBAR_START],selections:ui.FONT_FAMILY_LIST.map(item=>({label:{name:FONT_FAMILY_ITEM_COMPONENT,hoverable:!0},value:item.value})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a2;const disposable=commandService.onCommandExecuted(c=>{var _a3;const id=c.id;if(id!==sheets.SetRangeValuesMutation.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a3=selectionManagerService.getCurrentLastSelection())==null?void 0:_a3.primary;let ff2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);ff2=range==null?void 0:range.getFontFamily()}subscriber.next(ff2!=null?ff2:defaultValue)}),primary=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.primary;let ff;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);ff=range==null?void 0:range.getFontFamily()}return subscriber.next(ff!=null?ff:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FontFamilySelectorMenuItemFactory,"FontFamilySelectorMenuItemFactory");function FontSizeSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService),defaultValue=core.DEFAULT_STYLES.fs,disabled$=getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]});return{id:SetRangeFontSizeCommand.id,group:ui.MenuGroup.TOOLBAR_FORMAT,type:ui.MenuItemType.SELECTOR,tooltip:"toolbar.fontSize",label:{name:FONT_SIZE_COMPONENT,props:{min:1,max:400,disabled$}},positions:[ui.MenuPosition.TOOLBAR_START],selections:ui.FONT_SIZE_LIST,disabled$,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a2;const disposable=commandService.onCommandExecuted(c=>{var _a3,_b2;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a3=selectionManagerService.getCurrentLastSelection())==null?void 0:_a3.primary;let fs2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);fs2=range==null?void 0:range.getFontSize()}subscriber.next(fs2!=null?fs2:defaultValue)}if((id===docs.SetTextSelectionsOperation.id||id===docs.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const fs2=(_b2=textRun.ts)==null?void 0:_b2.fs;subscriber.next(fs2!=null?fs2:defaultValue)}}),primary=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.primary;let fs;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);fs=range==null?void 0:range.getFontSize()}return subscriber.next(fs!=null?fs:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FontSizeSelectorMenuItemFactory,"FontSizeSelectorMenuItemFactory");function ResetTextColorMenuItemFactory(accessor){return{id:sheets.ResetTextColorCommand.id,type:ui.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",positions:SetRangeTextColorCommand.id,disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ResetTextColorMenuItemFactory,"ResetTextColorMenuItemFactory");function TextColorSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),themeService=accessor.get(core.ThemeService);return{id:SetRangeTextColorCommand.id,icon:"FontColor",tooltip:"toolbar.textColor.main",group:ui.MenuGroup.TOOLBAR_FORMAT,type:ui.MenuItemType.BUTTON_SELECTOR,positions:[ui.MenuPosition.TOOLBAR_START],selections:[{label:{name:COLOR_PICKER_COMPONENT,hoverable:!1}}],value$:new rxjs.Observable(subscriber=>{const defaultValue=themeService.getCurrentTheme().textColor,disposable=commandService.onCommandExecuted(c=>{if(c.id===SetRangeTextColorCommand.id){const color=c.params.value;subscriber.next(color!=null?color:defaultValue)}});return subscriber.next(defaultValue),disposable.dispose}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(TextColorSelectorMenuItemFactory,"TextColorSelectorMenuItemFactory");function ResetBackgroundColorMenuItemFactory(accessor){return{id:sheets.ResetBackgroundColorCommand.id,type:ui.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",positions:sheets.SetBackgroundColorCommand.id,disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(ResetBackgroundColorMenuItemFactory,"ResetBackgroundColorMenuItemFactory");function BackgroundColorSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),themeService=accessor.get(core.ThemeService);return{id:sheets.SetBackgroundColorCommand.id,tooltip:"toolbar.fillColor.main",group:ui.MenuGroup.TOOLBAR_FORMAT,type:ui.MenuItemType.BUTTON_SELECTOR,positions:[ui.MenuPosition.TOOLBAR_START],icon:"PaintBucket",selections:[{label:{name:COLOR_PICKER_COMPONENT,hoverable:!1}}],value$:new rxjs.Observable(subscriber=>{const defaultValue=themeService.getCurrentTheme().primaryColor,disposable=commandService.onCommandExecuted(c=>{if(c.id===sheets.SetBackgroundColorCommand.id){const color=c.params.value;subscriber.next(color!=null?color:defaultValue)}});return subscriber.next(defaultValue),disposable.dispose}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(BackgroundColorSelectorMenuItemFactory,"BackgroundColorSelectorMenuItemFactory");const HORIZONTAL_ALIGN_CHILDREN=[{label:"align.left",icon:"LeftJustifyingSingle",value:core.HorizontalAlign.LEFT},{label:"align.center",icon:"HorizontallySingle",value:core.HorizontalAlign.CENTER},{label:"align.right",icon:"RightJustifyingSingle",value:core.HorizontalAlign.RIGHT}];function HorizontalAlignMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=core.HorizontalAlign.LEFT;return{id:sheets.SetHorizontalTextAlignCommand.id,icon:HORIZONTAL_ALIGN_CHILDREN[0].icon,positions:[ui.MenuPosition.TOOLBAR_START],tooltip:"toolbar.horizontalAlignMode.main",group:ui.MenuGroup.TOOLBAR_LAYOUT,type:ui.MenuItemType.SELECTOR,selections:HORIZONTAL_ALIGN_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a2;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a3;const id=c.id;if(id!==sheets.SetHorizontalTextAlignCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a3=selectionManagerService.getCurrentLastSelection())==null?void 0:_a3.primary;let ha2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);ha2=range==null?void 0:range.getHorizontalAlignment()}subscriber.next(ha2!=null?ha2:defaultValue)}),primary=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.primary;let ha;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);ha=range==null?void 0:range.getHorizontalAlignment()}return subscriber.next(ha!=null?ha:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(HorizontalAlignMenuItemFactory,"HorizontalAlignMenuItemFactory");const VERTICAL_ALIGN_CHILDREN=[{label:"align.top",icon:"AlignTopSingle",value:core.VerticalAlign.TOP},{label:"align.middle",icon:"VerticalCenterSingle",value:core.VerticalAlign.MIDDLE},{label:"align.bottom",icon:"AlignBottomSingle",value:core.VerticalAlign.BOTTOM}];function VerticalAlignMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=core.VerticalAlign.BOTTOM;return{id:sheets.SetVerticalTextAlignCommand.id,icon:VERTICAL_ALIGN_CHILDREN[2].icon,tooltip:"toolbar.verticalAlignMode.main",group:ui.MenuGroup.TOOLBAR_LAYOUT,type:ui.MenuItemType.SELECTOR,positions:[ui.MenuPosition.TOOLBAR_START],selections:VERTICAL_ALIGN_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a2;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a3;const id=c.id;if(id!==sheets.SetVerticalTextAlignCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a3=selectionManagerService.getCurrentLastSelection())==null?void 0:_a3.primary;let va2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);va2=range==null?void 0:range.getVerticalAlignment()}subscriber.next(va2!=null?va2:defaultValue)}),primary=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.primary;let va;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);va=range==null?void 0:range.getVerticalAlignment()}return subscriber.next(va!=null?va:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(VerticalAlignMenuItemFactory,"VerticalAlignMenuItemFactory");const TEXT_WRAP_CHILDREN=[{label:"textWrap.overflow",icon:"OverflowSingle",value:core.WrapStrategy.OVERFLOW},{label:"textWrap.wrap",icon:"AutowrapSingle",value:core.WrapStrategy.WRAP},{label:"textWrap.clip",icon:"TruncationSingle",value:core.WrapStrategy.CLIP}];function WrapTextMenuItemFactory(accessor){const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),defaultValue=core.WrapStrategy.OVERFLOW;return{id:sheets.SetTextWrapCommand.id,tooltip:"toolbar.textWrapMode.main",icon:TEXT_WRAP_CHILDREN[0].icon,group:ui.MenuGroup.TOOLBAR_LAYOUT,type:ui.MenuItemType.SELECTOR,positions:[ui.MenuPosition.TOOLBAR_START],selections:TEXT_WRAP_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a2;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a3;const id=c.id;if(id!==sheets.SetTextWrapCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a3=selectionManagerService.getCurrentLastSelection())==null?void 0:_a3.primary;let ws2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);ws2=range==null?void 0:range.getWrapStrategy()}subscriber.next(ws2!=null?ws2:defaultValue)}),primary=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.primary;let ws;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);ws=range==null?void 0:range.getWrapStrategy()}return subscriber.next(ws!=null?ws:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(WrapTextMenuItemFactory,"WrapTextMenuItemFactory");const TEXT_ROTATE_CHILDREN=[{label:"textRotate.none",icon:"NoRotationSingle",value:0},{label:"textRotate.angleUp",icon:"LeftRotationFortyFiveDegreesSingle",value:-45},{label:"textRotate.angleDown",icon:"RightRotationFortyFiveDegreesSingle",value:45},{label:"textRotate.vertical",icon:"VerticalTextSingle",value:"v"},{label:"textRotate.rotationUp",icon:"LeftRotationNinetyDegreesSingle",value:-90},{label:"textRotate.rotationDown",icon:"RightRotationNinetyDegreesSingle",value:90}];function TextRotateMenuItemFactory(accessor){const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),defaultValue=0;return{id:sheets.SetTextRotationCommand.id,tooltip:"toolbar.textRotateMode.main",icon:TEXT_ROTATE_CHILDREN[0].icon,group:ui.MenuGroup.TOOLBAR_LAYOUT,type:ui.MenuItemType.SELECTOR,selections:TEXT_ROTATE_CHILDREN,positions:[ui.MenuPosition.TOOLBAR_START],value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a2,_b2;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a3,_b3;const id=c.id;if(id!==sheets.SetTextRotationCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a3=selectionManagerService.getCurrentLastSelection())==null?void 0:_a3.primary;let tr2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);tr2=range==null?void 0:range.getTextRotation()}(tr2==null?void 0:tr2.v)===core.BooleanNumber.TRUE?subscriber.next("v"):subscriber.next((_b3=tr2&&tr2.a)!=null?_b3:defaultValue)}),primary=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.primary;let tr;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);tr=range==null?void 0:range.getTextRotation()}return(tr==null?void 0:tr.v)===core.BooleanNumber.TRUE?subscriber.next("v"):subscriber.next((_b2=tr&&tr.a)!=null?_b2:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(TextRotateMenuItemFactory,"TextRotateMenuItemFactory");function menuClipboardDisabledObservable(injector){return new rxjs.Observable(subscriber=>subscriber.next(!injector.get(ui.IClipboardInterfaceService).supportClipboard))}__name(menuClipboardDisabledObservable,"menuClipboardDisabledObservable");function CopyMenuItemFactory(accessor){return{id:SheetCopyCommand.name,commandId:SheetCopyCommand.id,group:ui.MenuGroup.CONTEXT_MENU_FORMAT,type:ui.MenuItemType.BUTTON,title:"rightClick.copy",icon:"Copy",positions:[ui.MenuPosition.CONTEXT_MENU,"COL_HEADER_CONTEXT_MENU","ROW_HEADER_CONTEXT_MENU"],disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookCopyPermission],worksheetTypes:[sheets.WorksheetCopyPermission],rangeTypes:[sheets.RangeProtectionPermissionViewPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CopyMenuItemFactory,"CopyMenuItemFactory");function PasteMenuItemFactory(accessor){return{id:SheetPasteCommand.name,commandId:SheetPasteCommand.id,group:ui.MenuGroup.CONTEXT_MENU_FORMAT,type:ui.MenuItemType.BUTTON,title:"rightClick.paste",icon:"PasteSpecial",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission,sheets.WorksheetSetCellValuePermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),positions:[ui.MenuPosition.CONTEXT_MENU,"COL_HEADER_CONTEXT_MENU","ROW_HEADER_CONTEXT_MENU"],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteMenuItemFactory,"PasteMenuItemFactory");const PASTE_SPECIAL_MENU_ID="sheet.menu.paste-special";function PasteSpacialMenuItemFactory(accessor){return{id:PASTE_SPECIAL_MENU_ID,group:ui.MenuGroup.CONTEXT_MENU_FORMAT,type:ui.MenuItemType.SUBITEMS,icon:"PasteSpecial",title:"rightClick.pasteSpecial",positions:[ui.MenuPosition.CONTEXT_MENU,"COL_HEADER_CONTEXT_MENU","ROW_HEADER_CONTEXT_MENU"],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteSpacialMenuItemFactory,"PasteSpacialMenuItemFactory");function PasteValueMenuItemFactory(accessor){return{id:SheetPasteValueCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteValue",positions:[PASTE_SPECIAL_MENU_ID],disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteValueMenuItemFactory,"PasteValueMenuItemFactory");function PasteFormatMenuItemFactory(accessor){return{id:SheetPasteFormatCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteFormat",positions:[PASTE_SPECIAL_MENU_ID],disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteFormatMenuItemFactory,"PasteFormatMenuItemFactory");function PasteColWidthMenuItemFactory(accessor){return{id:SheetPasteColWidthCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteColWidth",positions:[PASTE_SPECIAL_MENU_ID],disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetColumnStylePermission,sheets.WorksheetEditPermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2))}}__name(PasteColWidthMenuItemFactory,"PasteColWidthMenuItemFactory");function PasteBesidesBorderMenuItemFactory(accessor){return{id:SheetPasteBesidesBorderCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteBesidesBorder",positions:[PASTE_SPECIAL_MENU_ID],disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission,sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetRowStylePermission,sheets.WorksheetSetColumnStylePermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteBesidesBorderMenuItemFactory,"PasteBesidesBorderMenuItemFactory");function FitContentMenuItemFactory(accessor){return{id:sheets.SetWorksheetRowIsAutoHeightCommand.id,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.BUTTON,positions:["ROW_HEADER_CONTEXT_MENU"],icon:"AutoHeight",title:"rightClick.fitContent",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetRowStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FitContentMenuItemFactory,"FitContentMenuItemFactory");const SHEET_FROZEN_MENU_ID="sheet.menu.sheet-frozen";function SheetFrozenMenuItemFactory(accessor){return{id:SHEET_FROZEN_MENU_ID,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",positions:[ui.MenuPosition.CONTEXT_MENU],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(SheetFrozenMenuItemFactory,"SheetFrozenMenuItemFactory");const SHEET_FROZEN_HEADER_MENU_ID="sheet.header-menu.sheet-frozen";function SheetFrozenHeaderMenuItemFactory(accessor){return{id:SHEET_FROZEN_HEADER_MENU_ID,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",positions:["ROW_HEADER_CONTEXT_MENU","COL_HEADER_CONTEXT_MENU"],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(SheetFrozenHeaderMenuItemFactory,"SheetFrozenHeaderMenuItemFactory");function FrozenMenuItemFactory(accessor){return{id:SetSelectionFrozenCommand.id,type:ui.MenuItemType.BUTTON,positions:[SHEET_FROZEN_MENU_ID,SHEET_FROZEN_HEADER_MENU_ID],title:"rightClick.freeze",icon:"FreezeToSelectedSingle",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FrozenMenuItemFactory,"FrozenMenuItemFactory");function FrozenRowMenuItemFactory(accessor){return{id:SetRowFrozenCommand.id,type:ui.MenuItemType.BUTTON,positions:[SHEET_FROZEN_MENU_ID],title:"rightClick.freezeRow",icon:"FreezeRowSingle",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FrozenRowMenuItemFactory,"FrozenRowMenuItemFactory");function FrozenColMenuItemFactory(accessor){return{id:SetColumnFrozenCommand.id,type:ui.MenuItemType.BUTTON,positions:[SHEET_FROZEN_MENU_ID],title:"rightClick.freezeCol",icon:"FreezeColumnSingle",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FrozenColMenuItemFactory,"FrozenColMenuItemFactory");function CancelFrozenMenuItemFactory(accessor){return{id:CancelFrozenCommand.id,type:ui.MenuItemType.BUTTON,positions:[SHEET_FROZEN_MENU_ID,SHEET_FROZEN_HEADER_MENU_ID],title:"rightClick.cancelFreeze",icon:"CancelFreezeSingle",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CancelFrozenMenuItemFactory,"CancelFrozenMenuItemFactory");function HideRowMenuItemFactory(accessor){return{id:HideRowConfirmCommand.id,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.BUTTON,positions:["ROW_HEADER_CONTEXT_MENU"],icon:"Hide",title:"rightClick.hideSelectedRow",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetRowStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(HideRowMenuItemFactory,"HideRowMenuItemFactory");function HideColMenuItemFactory(accessor){return{id:HideColConfirmCommand.id,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.BUTTON,positions:["COL_HEADER_CONTEXT_MENU"],icon:"Hide",title:"rightClick.hideSelectedColumn",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetColumnStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(HideColMenuItemFactory,"HideColMenuItemFactory");function ShowRowMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),commandService=accessor.get(core.ICommandService),affectedCommands=[sheets.SetSelectionsOperation,sheets.SetRowHiddenMutation,sheets.SetRowVisibleMutation].map(c=>c.id);return{id:sheets.SetSelectedRowsVisibleCommand.id,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.BUTTON,positions:["ROW_HEADER_CONTEXT_MENU"],title:"rightClick.showHideRow",hidden$:deriveStateFromActiveSheet$(univerInstanceService,!0,({worksheet})=>new rxjs.Observable(subscriber=>{function hasHiddenRowsInSelections(){var _a2;const rowRanges=(_a2=selectionManagerService.getCurrentSelections())==null?void 0:_a2.map(s=>s.range).filter(r=>r.rangeType===core.RANGE_TYPE.ROW);return!!(rowRanges!=null&&rowRanges.some(range=>{for(let r=range.startRow;r<=range.endRow;r++)if(!worksheet.getRowRawVisible(r))return!0;return!1}))}__name(hasHiddenRowsInSelections,"hasHiddenRowsInSelections");const disposable=commandService.onCommandExecuted(command=>{affectedCommands.findIndex(c=>c===command.id)!==-1&&subscriber.next(!hasHiddenRowsInSelections())});return subscriber.next(!hasHiddenRowsInSelections()),()=>disposable.dispose()})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetRowStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(ShowRowMenuItemFactory,"ShowRowMenuItemFactory");function ShowColMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),commandService=accessor.get(core.ICommandService),affectedCommands=[sheets.SetSelectionsOperation,sheets.SetColHiddenMutation,sheets.SetColVisibleMutation].map(c=>c.id);return{id:sheets.SetSelectedColsVisibleCommand.id,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.BUTTON,positions:["COL_HEADER_CONTEXT_MENU"],title:"rightClick.showHideColumn",hidden$:deriveStateFromActiveSheet$(univerInstanceService,!0,({worksheet})=>new rxjs.Observable(subscriber=>{function hasHiddenColsInSelections(){var _a2;const colRanges=(_a2=selectionManagerService.getCurrentSelections())==null?void 0:_a2.map(s=>s.range).filter(r=>r.rangeType===core.RANGE_TYPE.COLUMN);return!colRanges||colRanges.length===0?!1:!!colRanges.some(range=>{for(let r=range.startColumn;r<=range.endColumn;r++)if(!worksheet.getColVisible(r))return!0;return!1})}__name(hasHiddenColsInSelections,"hasHiddenColsInSelections");const disposable=commandService.onCommandExecuted(commandInfo=>{affectedCommands.findIndex(c=>c===commandInfo.id)!==-1&&subscriber.next(!hasHiddenColsInSelections())});return subscriber.next(!hasHiddenColsInSelections()),()=>disposable.dispose()})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetColumnStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(ShowColMenuItemFactory,"ShowColMenuItemFactory");function SetRowHeightMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=0;return{id:sheets.SetRowHeightCommand.id,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.BUTTON,icon:"AdjustHeight",positions:["ROW_HEADER_CONTEXT_MENU"],label:{name:MENU_ITEM_INPUT_COMPONENT,props:{prefix:"rightClick.rowHeight",suffix:"px",min:2,max:1e3}},value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{function update(){var _a2;const primary=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.primary,rowHeight=primary?worksheet.getRowHeight(primary.startRow):defaultValue;subscriber.next(rowHeight)}__name(update,"update");const disposable=commandService.onCommandExecuted(c=>{const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetRowIsAutoHeightMutation.id)return update()});return update(),disposable.dispose})),hidden$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetRowStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(SetRowHeightMenuItemFactory,"SetRowHeightMenuItemFactory");function SetColWidthMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=0;return{id:sheets.SetColWidthCommand.id,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.BUTTON,icon:"AdjustWidth",positions:["COL_HEADER_CONTEXT_MENU"],label:{name:MENU_ITEM_INPUT_COMPONENT,props:{prefix:"rightClick.columnWidth",suffix:"px",min:2,max:1e3}},value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{function update(){var _a2;const primary=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.primary;let colWidth=defaultValue;primary!=null&&(colWidth=worksheet.getColumnWidth(primary.startColumn)),subscriber.next(colWidth)}__name(update,"update");const disposable=commandService.onCommandExecuted(c=>{const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetColWidthMutation.id)return update()});return update(),disposable.dispose})),hidden$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetColumnStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(SetColWidthMenuItemFactory,"SetColWidthMenuItemFactory");function getFontStyleAtCursor(accessor){var _a2;const univerInstanceService=accessor.get(core.IUniverInstanceService),textSelectionService=accessor.get(docs.TextSelectionManagerService),editorDataModel=univerInstanceService.getUniverDocInstance(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),activeTextRange=textSelectionService.getActiveTextRangeWithStyle();if(editorDataModel==null||activeTextRange==null)return null;const textRuns=(_a2=editorDataModel.getBody())==null?void 0:_a2.textRuns;if(textRuns==null)return;const{startOffset}=activeTextRange;return textRuns.find(({st,ed})=>startOffset>=st&&startOffset<=ed)}__name(getFontStyleAtCursor,"getFontStyleAtCursor");const styles$b={slideTabBarContainer:"univer-slide-tab-bar-container",slideTabBar:"univer-slide-tab-bar",slideTabItem:"univer-slide-tab-item",slideTabActive:"univer-slide-tab-active",slideTabDiv:"univer-slide-tab-div",slideTabDivEdit:"univer-slide-tab-div-edit",slideTabItemDropdown:"univer-slide-tab-item-dropdown"};function SheetBarItem(props){const{sheetId,label,color,selected}=props,[currentSelected,setCurrentSelected]=React.useState(selected),themeService=core.useDependency(core.ThemeService);React.useEffect(()=>{setCurrentSelected(selected)},[selected]);const getTextColor=__name(color2=>{const theme=themeService.getCurrentTheme(),darkTextColor=theme.textColor,lightTextColor=theme.colorWhite;return new core.ColorKit(color2).isDark()?lightTextColor:darkTextColor},"getTextColor");return jsxRuntimeExports.jsx("div",{"data-id":sheetId,className:currentSelected?`${styles$b.slideTabActive} ${styles$b.slideTabItem}`:styles$b.slideTabItem,style:{backgroundColor:!currentSelected&&color?color:"",color:!currentSelected&&color?getTextColor(color):"",boxShadow:currentSelected&&color?`0px 0px 8px rgba(0, 0, 0, 0.08), inset 0px -2px 0px 0px ${color}`:""},children:jsxRuntimeExports.jsx("div",{className:styles$b.slideTabDiv,children:label})},sheetId)}__name(SheetBarItem,"SheetBarItem");const Tween={easeOutStrong(t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b},backOut(t,b,c,d,s){return typeof s>"u"&&(s=.7),c*((t=t/d-1)*t*((s+1)*t+s)+1)+b}},CONFIG={loop:!1,begin:0,end:0,duration:300,delay:0,type:"easeOutStrong",receive(v){},success(v){},cancel(v){},complete(v){}},_Animate=class _Animate{constructor(config){__publicField(this,"_config");__publicField(this,"_status",0);__publicField(this,"_start",0);__publicField(this,"_handle",0);__publicField(this,"_delayHandle",null);this._config={...CONFIG,...config},this._config.loop&&(this._config.complete=()=>{},this._config.success=()=>{this.request()})}static success(...animates){let successNumber=0;return new Promise(resolve=>{for(let i=0;i<animates.length;i++){const animate=animates[i],config=animate._config,success=config.success;config.loop||(config.success=v=>{successNumber++,success&&success.call(animate,v),successNumber===animates.length&&resolve()})}})}request(){this._config.delay===0?(this._status=0,this._start=Date.now(),this._fakeHandle()):(this._delayHandle&&clearTimeout(this._delayHandle),this._delayHandle=setTimeout(()=>{this._status=0,this._start=Date.now(),this._fakeHandle()},this._config.delay))}cancel(){this._status=1,this._delayHandle&&clearTimeout(this._delayHandle),cancelAnimationFrame(this._handle)}_fakeHandle(){let times=Date.now()-this._start;times=times>=this._config.duration?this._config.duration:times;const fix=Tween[this._config.type](times,this._config.begin,this._config.end-this._config.begin,this._config.duration,.7).toFixed(2);if(this._config.receive(fix),this._status===1){this._config.cancel(fix),this._config.complete(fix);return}if(times===this._config.duration){this._config.success(fix),this._config.complete(fix);return}this._handle=requestAnimationFrame(()=>{this._fakeHandle()})}};__name(_Animate,"Animate");let Animate=_Animate;const _SlideTabItem=class _SlideTabItem{constructor(slideTabItem2,slideTabBar2){__publicField(this,"_slideTabItem");__publicField(this,"_animate");__publicField(this,"_midline",0);__publicField(this,"_translateX");__publicField(this,"_scrollbar");__publicField(this,"_slideTabBar");__publicField(this,"_editMode");__publicField(this,"_placeholder");this._slideTabItem=slideTabItem2,this._animate=null,this._translateX=0,this._editMode=!1,this._slideTabBar=slideTabBar2,this._placeholder=null,this._scrollbar=slideTabBar2.getScrollbar(),this.update()}static midline(item){return item.getBoundingRect().x+item.getBoundingRect().width/2}static leftLine(item){return item.getBoundingRect().x}static rightLine(item){return item.getBoundingRect().x+item.getBoundingRect().width}static make(nodeList,slideTabBar2){const result=[];return nodeList.forEach(item=>result.push(new _SlideTabItem(item,slideTabBar2))),result}getSlideTabItem(){return this._slideTabItem}getEditor(){return this._slideTabItem.querySelector("span")}focus(){var _a2;(_a2=this.getEditor())==null||_a2.focus()}selectAll(){const input=this.getEditor();input&&SlideTabBar.keepSelectAll(input)}isEditMode(){return this._editMode}classList(){return this._slideTabItem.classList}translateX(x){return this._translateX=x,this._slideTabItem.style.transform=`translateX(${x}px)`,this.getTranslateXDirection()}setEditor(callback){if(!this._slideTabBar.getConfig().onNameChangeCheck())return;let compositionFlag=!0;if(this._editMode===!1){const input=this._slideTabItem.querySelector("span"),blurAction=__name(focusEvent=>{if(!this.nameCheck()){if(this._editMode=!1,input&&(input.removeAttribute("contentEditable"),input.removeEventListener("focusout",blurAction),input.removeEventListener("compositionstart",compositionstartAction),input.removeEventListener("compositionend",compositionendAction),input.removeEventListener("input",inputAction),input.removeEventListener("keydown",keydownAction),input.classList.remove(this._slideTabBar.getConfig().slideTabBarSpanEditClassName)),this._slideTabBar.removeListener(),this._slideTabBar.updateItems(),this._slideTabBar.getConfig().onChangeName){const text=(input==null?void 0:input.innerText)||"",id=this.getId();this._slideTabBar.getConfig().onChangeName(id,text)}callback&&callback(focusEvent)}},"blurAction");let keydownAction=__name(e=>{input&&(e.stopPropagation(),e.key==="Enter"&&input.blur())},"keydownAction");const compositionstartAction=__name(e=>{compositionFlag=!1},"compositionstartAction"),compositionendAction=__name(e=>{compositionFlag=!0},"compositionendAction"),inputAction=__name(e=>{if(!input)return;const maxLength=31;setTimeout(()=>{if(compositionFlag){const text=input.innerText;text.length>maxLength&&(input.innerText=text.substring(0,maxLength),SlideTabBar.keepLastIndex(input))}},0)},"inputAction");input&&(input.setAttribute("contentEditable","true"),input.addEventListener("focusout",blurAction),input.addEventListener("compositionstart",compositionstartAction),input.addEventListener("compositionend",compositionendAction),input.addEventListener("input",inputAction),input.addEventListener("keydown",keydownAction),input.classList.add(this._slideTabBar.getConfig().slideTabBarSpanEditClassName),this._editMode=!0,SlideTabBar.keepSelectAll(input))}}nameCheck(){const input=this._slideTabItem.querySelector("span");if(!input)return!1;const text=input.innerText;return this._slideTabBar.getConfig().onNameCheckAlert(text)}animate(){return{translateX:__name(x=>{this._translateX!==x&&(this._animate&&(this._animate.cancel(),this._animate=null),this._animate=new Animate({begin:this._translateX,end:x,receive:__name(val=>{this._slideTabItem.style.transform=`translateX(${val}px)`},"receive")}),this._translateX=x,this._animate.request())},"translateX"),cancel:__name(()=>{this._animate&&(this._animate.cancel(),this._animate=null)},"cancel")}}after(other){this._slideTabItem.after(other._slideTabItem||other)}update(){this._midline=_SlideTabItem.midline(this)}disableFixed(){if(this._placeholder){const primeval=this._slideTabBar.primeval();this._slideTabItem.style.removeProperty("position"),this._slideTabItem.style.removeProperty("left"),this._slideTabItem.style.removeProperty("top"),this._slideTabItem.style.removeProperty("width"),this._slideTabItem.style.removeProperty("height"),this._slideTabItem.style.removeProperty("background"),this._slideTabItem.style.removeProperty("padding"),this._slideTabItem.style.removeProperty("box-sizing"),this._slideTabItem.style.removeProperty("font-size"),this._slideTabItem.style.removeProperty("font-family"),this._slideTabItem.style.removeProperty("font-weight"),this._slideTabItem.style.removeProperty("color"),this._slideTabItem.style.removeProperty("border-radius"),this._placeholder.after(this._slideTabItem),primeval.removeChild(this._placeholder),this._placeholder=null}}enableFixed(){const placeholder=document.createElement("div"),boundingRect=this.getBoundingRect(),computedStyles=getComputedStyle(this._slideTabItem),innerSpan=this._slideTabItem.querySelector("span");if(this._placeholder=placeholder,this._placeholder.style.width=`${boundingRect.width}px`,this._placeholder.style.height=`${boundingRect.height}px`,this._placeholder.style.flexShrink="0",this._placeholder.style.margin=computedStyles.margin,this._slideTabItem.style.background=computedStyles.background,innerSpan){const innerPadding=getComputedStyle(innerSpan).padding;this._slideTabItem.style.padding=innerPadding}this._slideTabItem.style.boxSizing=computedStyles.boxSizing,this._slideTabItem.style.fontSize=computedStyles.fontSize,this._slideTabItem.style.fontFamily=computedStyles.fontFamily,this._slideTabItem.style.fontWeight=computedStyles.fontWeight,this._slideTabItem.style.color=computedStyles.color,this._slideTabItem.style.borderRadius=computedStyles.borderRadius,this._slideTabItem.style.left=`${boundingRect.x-this.getScrollbar().getScrollX()}px`,this._slideTabItem.style.top=`${boundingRect.y}px`,this._slideTabItem.style.width=`${boundingRect.width}px`,this._slideTabItem.style.height=`${boundingRect.height}px`,this._slideTabItem.style.position="fixed",this._slideTabItem.after(placeholder),document.body.appendChild(this._slideTabItem)}addEventListener(type,action,options){this._slideTabItem.addEventListener(type,action,options)}removeEventListener(type,action,options){this._slideTabItem.removeEventListener(type,action,options)}getScrollbar(){return this._scrollbar}getMidLine(){return this._midline}getBoundingRect(){const boundingClientRect=this._slideTabItem.getBoundingClientRect();return boundingClientRect.x+=this._scrollbar.getScrollX(),boundingClientRect}getWidth(){return this.getBoundingRect().width}getTranslateXDirection(){const midline=_SlideTabItem.midline(this);return midline>this._midline?1:midline<this._midline?-1:0}equals(other){return other&&other._slideTabItem===this._slideTabItem}getId(){return this._slideTabItem.dataset.id||""}};__name(_SlideTabItem,"SlideTabItem");let SlideTabItem=_SlideTabItem;const _SlideScrollbar=class _SlideScrollbar{constructor(slideTabBar2){__publicField(this,"_slideTabBar");__publicField(this,"_scrollX");const primeval=slideTabBar2.primeval();this._scrollX=primeval.scrollLeft,this._slideTabBar=slideTabBar2}scrollX(x){const primeval=this._slideTabBar.primeval();primeval.scrollLeft=x,this._scrollX=primeval.scrollLeft}scrollRight(){const primeval=this._slideTabBar.primeval();primeval.scrollLeft=primeval.scrollWidth,this._scrollX=primeval.scrollLeft}getScrollX(){return this._scrollX}};__name(_SlideScrollbar,"SlideScrollbar");let SlideScrollbar=_SlideScrollbar;const _SlideTabBar=class _SlideTabBar{constructor(config){__publicField(this,"_activeTabItemIndex",0);__publicField(this,"_slideTabBar");__publicField(this,"_slideTabItems",[]);__publicField(this,"_config");__publicField(this,"_downActionX",0);__publicField(this,"_moveActionX",0);__publicField(this,"_compareIndex",0);__publicField(this,"_activeTabItem",null);__publicField(this,"_moveAction");__publicField(this,"_upAction");__publicField(this,"_downAction");__publicField(this,"_wheelAction");__publicField(this,"_scrollIncremental",0);__publicField(this,"_compareDirection",0);__publicField(this,"_autoScrollTime",null);__publicField(this,"_slideScrollbar");__publicField(this,"_longPressTimer",null);__publicField(this,"_leftBoundingLine",0);__publicField(this,"_rightBoundingLine",0);__publicField(this,"_leftMoveX",0);__publicField(this,"_rightMoveX",0);var _a2;if(config.slideTabBarContainer==null)throw new Error("not found slide-tab-bar root element");const slideTabBar2=config.slideTabBarContainer.querySelector(`.${(_a2=config.slideTabBarClassName)!=null?_a2:"slide-tab-bar"}`);if(slideTabBar2==null)throw new Error("not found slide-tab-bar");this._slideTabBar=slideTabBar2,this._slideScrollbar=new SlideScrollbar(this),this._config=config,this._initConfig();let lastPageX=0,lastPageY=0,lastTime=0;this._downAction=downEvent=>{var _a3,_b2,_c2,_d2,_e2,_f2;if((_a3=this._activeTabItem)!=null&&_a3.isEditMode())return;this._longPressTimer&&(clearTimeout(this._longPressTimer),this._longPressTimer=null);const slideItemId=(_c2=(_b2=downEvent.target)==null?void 0:_b2.closest(`.${config.slideTabBarItemClassName}`))==null?void 0:_c2.getAttribute("data-id"),slideItemIndex=this._slideTabItems.findIndex(item=>item.getId()===slideItemId);if(slideItemId==null||slideItemIndex===-1)return;if(this._activeTabItemIndex!==slideItemIndex){(_d2=this._activeTabItem)==null||_d2.removeEventListener("pointermove",this._moveAction),(_e2=this._activeTabItem)==null||_e2.removeEventListener("pointerup",this._upAction),this.removeListener(),this._config.onChangeTab(downEvent,slideItemId);return}if(this._compareIndex=slideItemIndex,this._downActionX=downEvent.pageX,this._moveActionX=0,this._scrollIncremental=0,this._activeTabItem=this._slideTabItems[slideItemIndex],!this._activeTabItem){console.error("Not found active slide-tab-item in sheet bar");return}const activeSlideItemElement=this._activeTabItem.getSlideTabItem();activeSlideItemElement==null||activeSlideItemElement.setPointerCapture(downEvent.pointerId),(_f2=this._activeTabItem)==null||_f2.addEventListener("pointerup",this._upAction);const{x,width}=this._activeTabItem.getBoundingRect(),{x:containerX,width:containerWidth}=this.getBoundingRect(),scrollX=this._slideScrollbar.getScrollX();if(this._leftBoundingLine=this._downActionX-(x-scrollX),this._rightBoundingLine=x-scrollX+width-this._downActionX,this._leftMoveX=x-containerX-scrollX,this._rightMoveX=containerX+containerWidth-(x+width)+scrollX,downEvent.button===2||this._hasEditItem())return;const{pageX,pageY}=downEvent,current=Date.now(),diffTime=current-lastTime<=_SlideTabBar.DoubleClickDelay,diffPageX=Math.abs(pageX-lastPageX)<10,diffPageY=Math.abs(pageY-lastPageY)<10;diffTime&&diffPageX&&diffPageY&&this._activeTabItem.setEditor(),lastPageX=pageX,lastPageY=pageY,lastTime=current,this._longPressTimer=setTimeout(()=>{var _a4,_b3,_c3;!activeSlideItemElement||(_a4=this._activeTabItem)!=null&&_a4.isEditMode()||((_b3=this._activeTabItem)==null||_b3.enableFixed(),this._startAutoScroll(),activeSlideItemElement.setPointerCapture(downEvent.pointerId),activeSlideItemElement.style.cursor="move",(_c3=this._activeTabItem)==null||_c3.addEventListener("pointermove",this._moveAction))},_SlideTabBar.LongPressDelay)},this._upAction=upEvent=>{var _a3,_b2,_c2,_d2;if((_a3=this._activeTabItem)!=null&&_a3.isEditMode()||(this._longPressTimer&&(clearTimeout(this._longPressTimer),this._longPressTimer=null),!this._activeTabItem))return;const isFromScroll=this._autoScrollTime!==null;this._closeAutoScroll(),this._activeTabItem.disableFixed(),this.updateItems();const activeSlideItemElement=(_b2=this._activeTabItem)==null?void 0:_b2.getSlideTabItem();activeSlideItemElement&&(activeSlideItemElement.style.cursor="",activeSlideItemElement.releasePointerCapture(upEvent.pointerId),(_c2=this._activeTabItem)==null||_c2.removeEventListener("pointermove",this._moveAction),(_d2=this._activeTabItem)==null||_d2.removeEventListener("pointerup",this._upAction),this._config.onSlideEnd&&this._activeTabItemIndex!==this._compareIndex&&isFromScroll&&(this.removeListener(),this._config.onSlideEnd(upEvent,this._compareIndex||0)),this._scrollIncremental=0,this._downActionX=0,this._moveActionX=0,this._compareIndex=0)},this._moveAction=moveEvent=>{this._activeTabItem&&(this._moveActionX=moveEvent.pageX-this._downActionX,this._moveActionX<=-this._leftMoveX?this._moveActionX=-this._leftMoveX:this._moveActionX>=this._rightMoveX&&(this._moveActionX=this._rightMoveX),this._scrollIncremental=0,this._scrollLeft(moveEvent),this._scrollRight(moveEvent))},this._wheelAction=wheelEvent=>{this.setScroll(wheelEvent.deltaY)},this.addListener()}static checkedSkipSlide(event){let parent=event.target;for(;parent!=null&&parent!==document.body;){if(parent.getAttribute("data-slide-skip"))return!0;parent=parent.parentElement}return!1}static keepLastIndex(inputHtml){setTimeout(()=>{const range=window.getSelection();range&&(range.selectAllChildren(inputHtml),range.collapseToEnd())})}static keepSelectAll(inputHtml){setTimeout(()=>{const selection=window.getSelection();if(!selection)return;const range=document.createRange();range.selectNodeContents(inputHtml),selection.removeAllRanges(),selection.addRange(range)})}update(currentIndex){this._config.currentIndex=currentIndex,this._initConfig(),this.removeListener(),this.addListener(),this.scrollToItem(currentIndex)}primeval(){return this._slideTabBar}updateItems(){for(let i=0;i<this._slideTabItems.length;i++)this._slideTabItems[i].animate().cancel(),this._slideTabItems[i].translateX(0),this._slideTabItems[i].update()}getScrollbar(){return this._slideScrollbar}getConfig(){return this._config}getBoundingRect(){return this._slideTabBar.getBoundingClientRect()}getSlideTabItems(){return this._slideTabItems}getActiveItem(){return this._activeTabItem}isLeftEnd(){return this._slideTabBar.scrollLeft===0}isRightEnd(){const parent=this._slideTabBar.parentElement;return parent?this._slideTabBar.scrollWidth-parent.clientWidth===this._slideTabBar.scrollLeft:!1}addListener(){this._slideTabBar.addEventListener("wheel",this._wheelAction),this._slideTabItems.forEach(item=>{item.addEventListener("pointerdown",this._downAction)})}removeListener(){this._slideTabBar.removeEventListener("wheel",this._wheelAction),this._slideTabItems.forEach(item=>{item.removeEventListener("pointerdown",this._downAction)})}setScroll(x){if(this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+x),x>0){const left=this.calculateLeftScrollX();this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+left)}else if(x<0){const right=this.calculateRightScrollX();this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+right)}this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}flipPage(x){if(x>0){const left=this.calculateLeftScrollX(!0);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+left)}else if(x<0){const right=this.calculateRightScrollX(!0);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+right)}this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}scrollToItem(index){if(index=index!=null?index:this._config.currentIndex,index<0||index>=this._slideTabItems.length){console.error("Index out of bounds");return}const right=this.calculateTabItemScrollX(index);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+right),this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}calculateLeftScrollX(shouldFlipPage){let scrollX=0;const padding=4;return this._slideTabItems.some(item=>{const containerRect=this._slideTabBar.getBoundingClientRect(),containerPosition=containerRect.left+containerRect.width,itemReact=item.getSlideTabItem().getBoundingClientRect(),itemLeft=itemReact.left,itemWidth=itemReact.width;return itemLeft<containerPosition&&itemLeft+itemWidth+padding*2>containerPosition?(scrollX=shouldFlipPage?itemLeft-containerRect.left-padding:itemLeft+itemWidth-containerPosition+padding,!0):!1}),scrollX}calculateRightScrollX(shouldFlipPage){let scrollX=0;const padding=4;return this._slideTabItems.some(item=>{const containerRect=this._slideTabBar.getBoundingClientRect(),containerPosition=containerRect.left,itemReact=item.getSlideTabItem().getBoundingClientRect(),itemLeft=itemReact.left,itemWidth=itemReact.width;return itemLeft-padding*2<containerPosition&&itemLeft+itemWidth>containerPosition?(scrollX=shouldFlipPage?itemLeft+itemWidth-containerRect.left-containerRect.width+padding:itemLeft-containerPosition-padding,!0):!1}),scrollX}calculateTabItemScrollX(index){let scrollX=0;const padding=4,containerRect=this._slideTabBar.getBoundingClientRect(),containerLeftPosition=containerRect.left,containerRightPosition=containerRect.left+containerRect.width,itemReact=this._slideTabItems[index].getSlideTabItem().getBoundingClientRect(),itemLeft=itemReact.left,itemWidth=itemReact.width;return itemLeft-padding*2<containerLeftPosition&&(scrollX=itemLeft-containerLeftPosition-padding),itemLeft+itemWidth+padding*2>containerRightPosition&&(scrollX=itemLeft+itemWidth-containerRightPosition+padding),scrollX}calculateActiveTabItemScrollX(){var _a2;let scrollX=0;const padding=4,containerRect=this._slideTabBar.getBoundingClientRect(),containerLeftPosition=containerRect.left,containerRightPosition=containerRect.left+containerRect.width,itemReact=(_a2=this._activeTabItem)==null?void 0:_a2.getSlideTabItem().getBoundingClientRect();if(!itemReact)return 0;const itemLeft=itemReact.left,itemWidth=itemReact.width;return itemLeft-padding*2<containerLeftPosition&&itemLeft+itemWidth>containerLeftPosition&&(scrollX=itemLeft-containerLeftPosition-padding),itemLeft<containerRightPosition&&itemLeft+itemWidth+padding*2>containerRightPosition&&(scrollX=itemLeft+itemWidth-containerRightPosition+padding),scrollX}destroy(){this._downActionX=0,this._moveActionX=0,this._compareDirection=0,this._compareIndex=0,this._slideTabItems=[],this._activeTabItem=null,this.removeListener()}_hasEditItem(){for(let index=0;index<this._slideTabItems.length;index++)if(this._slideTabItems[index].isEditMode())return!0;return!1}_autoScrollFrame(){if(this._activeTabItem)switch(this._compareDirection=this._activeTabItem.translateX(this._moveActionX),this._compareDirection){case 1:{this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+this._scrollIncremental),this._compareRight();break}case 0:{this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+this._scrollIncremental),this._compareIndex=this._activeTabItemIndex;break}case-1:{this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+this._scrollIncremental),this._compareLeft();break}}this._autoScrollTime=requestAnimationFrame(()=>{this._autoScrollFrame()})}_startAutoScroll(){this._autoScrollTime==null&&this._autoScrollFrame()}_closeAutoScroll(){this._autoScrollTime&&cancelAnimationFrame(this._autoScrollTime),this._autoScrollTime=null}_scrollLeft(event){const boundingRect=this.getBoundingRect(),x=event.pageX-boundingRect.x;x<this._leftBoundingLine&&(this._scrollIncremental=-Math.min(Math.abs(x-this._leftBoundingLine)*.1,50))}_scrollRight(event){const boundingRect=this.getBoundingRect(),x=event.pageX-boundingRect.x;x>boundingRect.width-this._rightBoundingLine&&(this._scrollIncremental=Math.min(Math.abs(x-(boundingRect.width-this._rightBoundingLine))*.1,50))}_sortedItems(){if(this._activeTabItem!=null&&this._activeTabItemIndex!=null&&this._compareIndex!=null&&(this._slideTabItems.splice(this._activeTabItemIndex,1),this._slideTabItems.splice(this._compareIndex,0,this._activeTabItem),this._config.slideTabBarItemAutoSort))for(let i=0;i<this._slideTabItems.length;i++){const item=this._slideTabItems[i],next=this._slideTabItems[i+1];next&&item.after(next)}}_compareLeft(){if(this._activeTabItem&&this._activeTabItemIndex){const splice=this._slideTabItems.findIndex(item=>item.equals(this._activeTabItem)),length=this._slideTabItems.length,collect=[];for(let i=0;i<splice&&!(i>=splice);i++)collect.push(this._slideTabItems[i]);for(let i=splice+1;i<length;i++)this._slideTabItems[i].animate().translateX(0);let notFound=!0;for(let i=collect.length-1;i>=0;i--){const item=collect[i];SlideTabItem.leftLine(this._activeTabItem)<item.getMidLine()?(item.animate().translateX(this._activeTabItem.getWidth()),this._compareIndex=i,notFound=!1):(item.animate().translateX(0),notFound&&(this._compareIndex=this._activeTabItemIndex))}}}_compareRight(){if(this._activeTabItem){const splice=this._slideTabItems.findIndex(item=>item.equals(this._activeTabItem)),length=this._slideTabItems.length,collect=[];for(let i=splice+1;i<length;i++)collect.push(this._slideTabItems[i]);for(let i=0;i<splice;i++)this._slideTabItems[i].animate().translateX(0);let notFound=!0;for(let i=0;i<collect.length;i++){const item=collect[i];SlideTabItem.rightLine(this._activeTabItem)>item.getMidLine()?(item.animate().translateX(-this._activeTabItem.getWidth()),this._compareIndex=splice+i+1,notFound=!1):(item.animate().translateX(0),notFound&&(this._compareIndex=this._activeTabItemIndex))}}}_initConfig(){var _a2;const slideTabItems=this._slideTabBar.querySelectorAll(`.${(_a2=this._config.slideTabBarItemClassName)!=null?_a2:"slide-tab-item"}`);this._downActionX=0,this._moveActionX=0,this._compareDirection=0,this._compareIndex=0,this._slideTabItems=SlideTabItem.make(slideTabItems,this),this._activeTabItemIndex=this._config.currentIndex,this._activeTabItem=this._slideTabItems[this._activeTabItemIndex]}};__name(_SlideTabBar,"SlideTabBar"),__publicField(_SlideTabBar,"LongPressDelay",500),__publicField(_SlideTabBar,"DoubleClickDelay",300);let SlideTabBar=_SlideTabBar;function SheetBarTabs(){const[sheetList,setSheetList]=React.useState([]),[activeKey,setActiveKey]=React.useState(""),[boxShadow,setBoxShadow]=React.useState(""),[visible,setVisible]=React.useState(!1),[offset,setOffset]=React.useState([0,0]),slideTabBarRef=React.useRef({slideTabBar:null}),slideTabBarContainerRef=React.useRef(null),commandService=core.useDependency(core.ICommandService),sheetBarService=core.useDependency(ISheetBarService),localeService=core.useDependency(core.LocaleService),confirmService=core.useDependency(ui.IConfirmService),editorBridgeService=core.useDependency(IEditorBridgeService,core.Quantity.OPTIONAL),worksheetProtectionRuleModel=core.useDependency(sheets.WorksheetProtectionRuleModel),rangeProtectionRuleModel=core.useDependency(sheets.RangeProtectionRuleModel),resetOrder=ui.useObservable(worksheetProtectionRuleModel.resetOrder$),workbook=useActiveWorkbook(),permissionService=core.useDependency(core.IPermissionService),updateSheetItems=React.useCallback(()=>{var _a2;const currentSubUnitId=((_a2=workbook.getActiveSheet())==null?void 0:_a2.getSheetId())||"";setActiveKey(currentSubUnitId);const sheets2=workbook.getSheets(),activeSheet=workbook.getActiveSheet(),sheetListItems=sheets2.filter(sheet=>!sheet.isSheetHidden()).map((sheet,index)=>{var _a3;const worksheetRule=worksheetProtectionRuleModel.getRule(workbook.getUnitId(),sheet.getSheetId()),hasSelectionRule=rangeProtectionRuleModel.getSubunitRuleList(workbook.getUnitId(),sheet.getSheetId()).length>0,name=(worksheetRule==null?void 0:worksheetRule.permissionId)||hasSelectionRule?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(LockSingle,{}),jsxRuntimeExports.jsx("span",{children:sheet.getName()})]}):jsxRuntimeExports.jsx("span",{children:sheet.getName()});return{sheetId:sheet.getSheetId(),label:name,index,selected:activeSheet===sheet,color:(_a3=sheet.getTabColor())!=null?_a3:void 0}});setSheetList(sheetListItems),setActiveKey(currentSubUnitId)},[rangeProtectionRuleModel,workbook,worksheetProtectionRuleModel]);React.useEffect(()=>{updateSheetItems();const slideTabBar2=setupSlideTabBarInit(),disposable=setupStatusUpdate(),subscribeList=[setupSubscribeScroll(),setupSubscribeScrollX(),setupSubscribeRenameId()];return()=>{disposable.dispose(),slideTabBar2.destroy(),subscribeList.forEach(subscribe=>subscribe.unsubscribe())}},[resetOrder,workbook]),React.useEffect(()=>{sheetList.length>0&&setupSlideTabBarUpdate()},[sheetList]),React.useEffect(()=>{const subscription=rxjs.merge(worksheetProtectionRuleModel.ruleChange$,rangeProtectionRuleModel.ruleChange$).subscribe(()=>{updateSheetItems()});return()=>{subscription.unsubscribe()}},[worksheetProtectionRuleModel,updateSheetItems]);const setupSlideTabBarInit=__name(()=>{const slideTabBar2=new SlideTabBar({slideTabBarClassName:styles$b.slideTabBar,slideTabBarItemActiveClassName:styles$b.slideTabActive,slideTabBarItemClassName:styles$b.slideTabItem,slideTabBarSpanEditClassName:styles$b.slideTabDivEdit,slideTabBarItemAutoSort:!0,slideTabBarContainer:slideTabBarContainerRef.current,currentIndex:0,onChangeName:__name((subUnitId,worksheetName)=>{commandService.executeCommand(sheets.SetWorksheetNameCommand.id,{subUnitId,name:worksheetName})},"onChangeName"),onSlideEnd:__name(async(event,order)=>{await commandService.executeCommand(sheets.SetWorksheetOrderCommand.id,{order})},"onSlideEnd"),onChangeTab:__name((event,subUnitId)=>{commandService.executeCommand(sheets.SetWorksheetActiveOperation.id,{subUnitId,unitId:workbook.getUnitId()}).then(()=>{event.button===2&&onVisibleChange(!0)})},"onChangeTab"),onScroll:__name(state=>{sheetBarService.setScroll(state)},"onScroll"),onNameCheckAlert:__name(text=>nameEmptyCheck(text)||sheetNameSpecCharCheck(text)||nameRepeatCheck(text),"onNameCheckAlert"),onNameChangeCheck:__name(()=>{var _a2,_b2,_c2,_d2;const unitId=workbook.getUnitId(),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const subUnitId=worksheet.getSheetId(),worksheetRule=worksheetProtectionRuleModel.getRule(unitId,subUnitId),selectionRule=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).length>0;return worksheetRule||selectionRule?(_b2=(_a2=permissionService.getPermissionPoint(new sheets.WorkbookManageCollaboratorPermission(unitId).id))==null?void 0:_a2.value)!=null?_b2:!1:(_d2=(_c2=permissionService.getPermissionPoint(new sheets.WorkbookRenameSheetPermission(unitId).id))==null?void 0:_c2.value)!=null?_d2:!1},"onNameChangeCheck")});return slideTabBarRef.current.slideTabBar=slideTabBar2,resizeInit(slideTabBar2),slideTabBar2},"setupSlideTabBarInit"),nameEmptyCheck=__name(name=>{if(name.trim()===""){const id="sheetNameEmptyAlert";return confirmService.open({id,title:{title:localeService.t("sheetConfig.sheetNameErrorTitle")},children:{title:localeService.t("sheetConfig.sheetNameCannotIsEmptyError")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm"),onClose(){focusTabEditor(),confirmService.close(id)},onConfirm(){focusTabEditor(),confirmService.close(id)}}),!0}return!1},"nameEmptyCheck"),sheetNameSpecCharCheck=__name(name=>{if(!core.nameCharacterCheck(name)){const id="sheetNameSpecCharAlert";return confirmService.open({id,title:{title:localeService.t("sheetConfig.sheetNameErrorTitle")},children:{title:localeService.t("sheetConfig.sheetNameSpecCharError")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm"),onClose(){focusTabEditor(),confirmService.close(id)},onConfirm(){focusTabEditor(),confirmService.close(id)}}),!0}return!1},"sheetNameSpecCharCheck"),nameRepeatCheck=__name(name=>{const worksheet=workbook.getActiveSheet();if((worksheet==null?void 0:worksheet.getName())===name)return!1;const checked=workbook.checkSheetName(name);if(checked){const id="sheetNameRepeatAlert";confirmService.open({id,title:{title:localeService.t("sheetConfig.sheetNameErrorTitle")},children:{title:localeService.t("sheetConfig.sheetNameAlreadyExistsError")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm"),onClose(){confirmService.close(id),focusTabEditor()},onConfirm(){confirmService.close(id),focusTabEditor()}})}return checked},"nameRepeatCheck"),focusTabEditor=__name(()=>{setTimeout(()=>{var _a2;const activeSlideTab=(_a2=slideTabBarRef.current.slideTabBar)==null?void 0:_a2.getActiveItem();activeSlideTab&&(activeSlideTab.focus(),activeSlideTab.selectAll())},0)},"focusTabEditor"),setTabEditor=__name(()=>{var _a2,_b2;(_b2=(_a2=slideTabBarRef.current.slideTabBar)==null?void 0:_a2.getActiveItem())==null||_b2.setEditor()},"setTabEditor"),setupSlideTabBarUpdate=__name(()=>{var _a2;const currentIndex=sheetList.findIndex(item=>item.selected);(_a2=slideTabBarRef.current.slideTabBar)==null||_a2.update(currentIndex)},"setupSlideTabBarUpdate"),setupStatusUpdate=__name(()=>commandService.onCommandExecuted(commandInfo=>{switch(commandInfo.id){case sheets.SetTabColorMutation.id:case sheets.SetWorksheetHideMutation.id:case sheets.RemoveSheetMutation.id:case sheets.SetWorksheetNameMutation.id:case sheets.InsertSheetMutation.id:case sheets.SetWorksheetOrderMutation.id:case sheets.SetWorksheetActiveOperation.id:updateSheetItems();break}}),"setupStatusUpdate"),setupSubscribeScroll=__name(()=>sheetBarService.scroll$.subscribe(state=>{updateScrollButtonState(state)}),"setupSubscribeScroll"),setupSubscribeScrollX=__name(()=>sheetBarService.scrollX$.subscribe(x=>{var _a2;(_a2=slideTabBarRef.current.slideTabBar)==null||_a2.flipPage(x)}),"setupSubscribeScrollX"),setupSubscribeRenameId=__name(()=>sheetBarService.renameId$.subscribe(()=>{setTabEditor()}),"setupSubscribeRenameId"),updateScrollButtonState=__name(state=>{const{leftEnd,rightEnd}=state;let boxShadow2="";leftEnd&&rightEnd?boxShadow2="":leftEnd&&!rightEnd?boxShadow2="inset -10px 0px 10px -10px rgba(0, 0, 0, 0.2)":!leftEnd&&rightEnd?boxShadow2="inset 10px 0px 10px -10px rgba(0, 0, 0, 0.2)":!leftEnd&&!rightEnd&&(boxShadow2="inset 10px 0px 10px -10px rgba(0, 0, 0, 0.2), inset -10px 0px 10px -10px rgba(0, 0, 0, 0.2)"),setBoxShadow(boxShadow2)},"updateScrollButtonState"),buttonScroll=__name(slideTabBar2=>{const scrollX=slideTabBar2.calculateActiveTabItemScrollX();if(scrollX){const scrollBar=slideTabBar2.getScrollbar();scrollBar.scrollX(scrollBar.getScrollX()+scrollX)}sheetBarService.setScroll({leftEnd:slideTabBar2.isLeftEnd(),rightEnd:slideTabBar2.isRightEnd()})},"buttonScroll"),resizeInit=__name(slideTabBar2=>{var _a2;const slideTabBarContainer2=(_a2=slideTabBarContainerRef.current)==null?void 0:_a2.querySelector(`.${styles$b.slideTabBar}`);if(!slideTabBarContainer2)return;new ResizeObserver(()=>{buttonScroll(slideTabBar2)}).observe(slideTabBarContainer2)},"resizeInit"),onVisibleChange=__name(visible2=>{var _a2,_b2,_c2,_d2,_e2;if(!(editorBridgeService!=null&&editorBridgeService.isForceKeepVisible())){if(visible2){const{left:containerLeft}=(_b2=(_a2=slideTabBarContainerRef.current)==null?void 0:_a2.getBoundingClientRect())!=null?_b2:{},{left:activeTabLeft}=(_e2=(_d2=(_c2=slideTabBarRef.current.slideTabBar)==null?void 0:_c2.getActiveItem())==null?void 0:_d2.getSlideTabItem().getBoundingClientRect())!=null?_e2:{};containerLeft!==void 0&&activeTabLeft!==void 0&&setOffset([activeTabLeft-containerLeft,0])}setVisible(visible2)}},"onVisibleChange");return jsxRuntimeExports.jsx(design.Dropdown,{className:styles$b.slideTabItemDropdown,visible,align:{offset},trigger:["contextMenu"],overlay:jsxRuntimeExports.jsx(ui.Menu,{menuType:SheetMenuPosition.SHEET_BAR,onOptionSelect:__name(params=>{const{label:id,value,commandId}=params;commandService.executeCommand(commandId!=null?commandId:id,{value,subUnitId:activeKey}),setVisible(!1)},"onOptionSelect")}),onVisibleChange,children:jsxRuntimeExports.jsx("div",{className:styles$b.slideTabBarContainer,ref:slideTabBarContainerRef,onDragStart:__name(e=>e.preventDefault(),"onDragStart"),onContextMenu:__name(e=>e.preventDefault(),"onContextMenu"),children:jsxRuntimeExports.jsx("div",{className:styles$b.slideTabBar,style:{boxShadow},children:sheetList.map(item=>React.createElement(SheetBarItem,{...item,key:item.sheetId,selected:activeKey===item.sheetId}))})})})}__name(SheetBarTabs,"SheetBarTabs");const SCROLL_WIDTH=100,SheetBar=__name(()=>{var _a2,_b2;const[leftScrollState,setLeftScrollState]=React.useState(!0),[rightScrollState,setRightScrollState]=React.useState(!0),commandService=core.useDependency(core.ICommandService),sheetBarService=core.useDependency(ISheetBarService),permissionService=core.useDependency(core.IPermissionService),unitId=useActiveWorkbook().getUnitId(),workbookEditablePermission=ui.useObservable(permissionService.getPermissionPoint$((_a2=new sheets.WorkbookEditablePermission(unitId))==null?void 0:_a2.id)),workbookCreateSheetPermission=ui.useObservable(permissionService.getPermissionPoint$((_b2=new sheets.WorkbookCreateSheetPermission(unitId))==null?void 0:_b2.id));React.useEffect(()=>{const subscription=sheetBarService.scroll$.subscribe(state=>{updateScrollButtonState(state)});return()=>{subscription.unsubscribe()}},[]);const updateScrollButtonState=__name(state=>{const{leftEnd,rightEnd}=state;setLeftScrollState(leftEnd),setRightScrollState(rightEnd)},"updateScrollButtonState"),addSheet=__name(()=>{commandService.executeCommand(sheets.InsertSheetCommand.id),setTimeout(()=>{sheetBarService.setAddSheet(0)},0)},"addSheet"),handleScrollLeft=__name(()=>{sheetBarService.setScrollX(-SCROLL_WIDTH)},"handleScrollLeft"),handleScrollRight=__name(()=>{sheetBarService.setScrollX(SCROLL_WIDTH)},"handleScrollRight");return jsxRuntimeExports.jsxs("div",{className:styles$e.sheetBar,children:[jsxRuntimeExports.jsxs("div",{className:styles$e.sheetBarOptions,children:[jsxRuntimeExports.jsx(SheetBarButton,{onClick:addSheet,disabled:!(workbookCreateSheetPermission!=null&&workbookCreateSheetPermission.value&&(workbookEditablePermission!=null&&workbookEditablePermission.value)),children:jsxRuntimeExports.jsx(IncreaseSingle,{})}),jsxRuntimeExports.jsx(SheetBarMenu,{})]}),jsxRuntimeExports.jsx(SheetBarTabs,{}),(!leftScrollState||!rightScrollState)&&jsxRuntimeExports.jsxs("div",{className:`${styles$e.sheetBarOptions} ${styles$e.sheetBarOptionsDivider}`,children:[jsxRuntimeExports.jsx(SheetBarButton,{disabled:leftScrollState,onClick:handleScrollLeft,children:jsxRuntimeExports.jsx(MoreSingle,{style:{transform:"rotateZ(180deg)"}})}),jsxRuntimeExports.jsx(SheetBarButton,{disabled:rightScrollState,onClick:handleScrollRight,children:jsxRuntimeExports.jsx(MoreSingle,{})})]})]})},"SheetBar"),_StatusBarService=class _StatusBarService{constructor(){__publicField(this,"_functions",[{func:engineFormula.FUNCTION_NAMES_STATISTICAL.MAX,filter:__name(status=>{var _a2,_b2,_c2,_d2;return((_b2=(_a2=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a2.value)!=null?_b2:0)>1&&((_d2=(_c2=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:_c2.value)!=null?_d2:0)>0},"filter")},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.MIN,filter:__name(status=>{var _a2,_b2,_c2,_d2;return((_b2=(_a2=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a2.value)!=null?_b2:0)>1&&((_d2=(_c2=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:_c2.value)!=null?_d2:0)>0},"filter")},{func:engineFormula.FUNCTION_NAMES_MATH.SUM,filter:__name(status=>{var _a2,_b2,_c2,_d2;return((_b2=(_a2=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a2.value)!=null?_b2:0)>1&&((_d2=(_c2=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:_c2.value)!=null?_d2:0)>0},"filter")},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA,filter:__name(status=>{var _a2,_b2;return((_b2=(_a2=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a2.value)!=null?_b2:0)>1},"filter")},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT,filter:__name(status=>{var _a2,_b2,_c2,_d2;return((_b2=(_a2=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a2.value)!=null?_b2:0)>1&&((_d2=(_c2=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:_c2.value)!=null?_d2:0)>0},"filter")},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.AVERAGE,filter:__name(status=>{var _a2,_b2,_c2,_d2;return((_b2=(_a2=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:_a2.value)!=null?_b2:0)>1&&((_d2=(_c2=status.values.find(item=>item.func===engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:_c2.value)!=null?_d2:0)>0},"filter")}]);__publicField(this,"_state$",new rxjs.BehaviorSubject(null));__publicField(this,"state$",this._state$.asObservable())}dispose(){this._state$.complete()}setState(param){var _a2;const newState={values:[],pattern:null};param==null||param.values.forEach(item=>{const func=this._functions.find(func2=>func2.func===item.func);func&&(func.filter===void 0||func.filter(param))&&newState.values.push(item)}),newState.pattern=(_a2=param==null?void 0:param.pattern)!=null?_a2:null,this._state$.next(newState)}getState(){return this._state$.getValue()}getFunctions(){return this._functions}addFunctions(functions){this._functions.push(...functions)}};__name(_StatusBarService,"StatusBarService");let StatusBarService=_StatusBarService;const IStatusBarService=core.createIdentifier("univer.sheet-status-bar.service"),styles$a={statusBar:"univer-status-bar",singleMode:"univer-single-mode",statusBarDiv:"univer-status-bar-div",statisticList:"univer-statistic-list",statisticListColumn:"univer-statistic-list-column",statisticItem:"univer-statistic-item",statisticPicker:"univer-statistic-picker",statisticPickerItem:"univer-statistic-picker-item",statisticMore:"univer-statistic-more"},allowPatternFunctions=[engineFormula.FUNCTION_NAMES_MATH.SUM,engineFormula.FUNCTION_NAMES_STATISTICAL.AVERAGE,engineFormula.FUNCTION_NAMES_STATISTICAL.MIN,engineFormula.FUNCTION_NAMES_STATISTICAL.MAX],functionDisplayNames={[engineFormula.FUNCTION_NAMES_MATH.SUM]:"statusbar.sum",[engineFormula.FUNCTION_NAMES_STATISTICAL.AVERAGE]:"statusbar.average",[engineFormula.FUNCTION_NAMES_STATISTICAL.MIN]:"statusbar.min",[engineFormula.FUNCTION_NAMES_STATISTICAL.MAX]:"statusbar.max",[engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT]:"statusbar.count",[engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA]:"statusbar.countA",[engineFormula.FUNCTION_NAMES_TEXT.CONCATENATE]:"concatenate"},CopyableStatisticItem=__name(item=>{const localeService=core.useDependency(core.LocaleService),messageService=core.useDependency(ui.IMessageService),clipboardService=core.useDependency(ui.IClipboardInterfaceService),formateValue=formatNumber(item),copyToClipboard=__name(async()=>{await clipboardService.writeText(item.value.toString()),messageService.show({type:design.MessageType.Success,content:localeService.t("statusbar.copied")})},"copyToClipboard");return jsxRuntimeExports.jsx(design.Tooltip,{title:localeService.t("statusbar.clickToCopy"),placement:"top",children:jsxRuntimeExports.jsx("div",{className:styles$a.statisticItem,onClick:copyToClipboard,children:jsxRuntimeExports.jsx("span",{children:`${localeService.t((functionDisplayNames==null?void 0:functionDisplayNames[item.name])||item.name)}: ${formateValue}`})},item.name)})},"CopyableStatisticItem");function formatNumber(item){const{pattern,value:num}=item;return typeof num!="number"?0:num>=1e8?num.toExponential(2):pattern&&allowPatternFunctions.includes(item.name)?engineNumfmt.numfmt.format(pattern,num):num.toLocaleString()}__name(formatNumber,"formatNumber");const SINGLE_MODE_WIDTH=800,ROW_COUNT_THRESHOLD=3,StatusBar=__name(()=>{const[isSingle,setIsSingle]=React.useState(window.innerWidth<SINGLE_MODE_WIDTH),[show,setShow]=React.useState(!0),statusBarService=core.useDependency(IStatusBarService),items=statusBarService.getFunctions().map((item,index)=>({name:item.func,value:0,show:!0,disable:!1,pattern:null})),[statistics,setStatistics]=React.useState(items),firstItem=statistics.find(item=>item.show&&!item.disable),showList=isSingle&&firstItem?[firstItem]:statistics.filter(item=>item.show&&!item.disable);React.useEffect(()=>{const subscription=statusBarService.state$.subscribe(state=>{const item=state==null?void 0:state.values;if(!item||item.length===0)setShow(!1);else{setShow(!0);const newStatistics=statistics.map(stat=>{var _a2;const target=item.find(i=>i.func===stat.name);return target?(stat.value=target.value,stat.disable=!1):stat.disable=!0,stat.pattern=(_a2=state==null?void 0:state.pattern)!=null?_a2:null,stat});setStatistics(newStatistics)}});return()=>{subscription.unsubscribe()}},[statusBarService]);const handleResize=core.debounce(()=>{const newSingleState=window.innerWidth<SINGLE_MODE_WIDTH;isSingle!==newSingleState&&setIsSingle(newSingleState)},100);React.useEffect(()=>(window.addEventListener("resize",handleResize),()=>{window.removeEventListener("resize",handleResize)}),[isSingle]);let renderContent=null;if(showList.length>ROW_COUNT_THRESHOLD){const doubleLineList=[];showList.forEach((_,index)=>{index%2===0&&doubleLineList.push(showList.slice(index,index+2))}),renderContent=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[" ",doubleLineList.map((item,index)=>jsxRuntimeExports.jsxs("div",{className:styles$a.statisticListColumn,children:[(item==null?void 0:item[0])&&jsxRuntimeExports.jsx(CopyableStatisticItem,{...item==null?void 0:item[0]},item==null?void 0:item[0].name),(item==null?void 0:item[1])&&jsxRuntimeExports.jsx(CopyableStatisticItem,{...item==null?void 0:item[1]},item==null?void 0:item[1].name)]},`stat-col-${index}`))," "]})}else renderContent=jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:showList.map(item=>jsxRuntimeExports.jsx(CopyableStatisticItem,{...item},item.name))});return show&&jsxRuntimeExports.jsxs("div",{className:clsx(styles$a.statusBar,{[styles$a.singleMode]:isSingle}),children:[jsxRuntimeExports.jsx("div",{className:clsx(styles$a.statisticList),children:renderContent}),jsxRuntimeExports.jsx("div",{className:styles$a.statusBarDiv})]})},"StatusBar"),styles$9={sheetFooterBarHeight:"36",sheetContainer:"univer-sheet-container"};function RenderSheetFooter(){return useActiveWorkbook()?jsxRuntimeExports.jsxs("section",{className:styles$9.sheetContainer,"data-range-selector":!0,children:[jsxRuntimeExports.jsx(SheetBar,{}),jsxRuntimeExports.jsx(StatusBar,{}),jsxRuntimeExports.jsx(CountBar,{})]}):null}__name(RenderSheetFooter,"RenderSheetFooter");function RenderSheetHeader(){return useHasWorkbook()?jsxRuntimeExports.jsx(FormulaBar,{}):null}__name(RenderSheetHeader,"RenderSheetHeader");function RenderSheetContent(){return useHasWorkbook()?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(EditorContainer,{}),jsxRuntimeExports.jsx(OperateContainer,{})]}):null}__name(RenderSheetContent,"RenderSheetContent");function useHasWorkbook(){const univerInstanceService=core.useDependency(core.IUniverInstanceService),workbook=ui.useObservable(()=>univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),null,!1,[]);return React.useMemo(()=>univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET).length>0,[univerInstanceService,workbook])}__name(useHasWorkbook,"useHasWorkbook");const widthStyle={width:"100%"},DefinedNameInput=__name(props=>{const{inputId,state=!1,type="range",confirm,cancel,name,formulaOrRefString,comment="",localSheetId=SCOPE_WORKBOOK_VALUE,hidden=!1,id}=props,workbook=core.useDependency(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),localeService=core.useDependency(core.LocaleService),definedNamesService=core.useDependency(engineFormula.IDefinedNamesService),functionService=core.useDependency(engineFormula.IFunctionService),lexerTreeBuilder=core.useDependency(engineFormula.LexerTreeBuilder);if(workbook==null)return;const unitId=workbook.getUnitId(),[nameValue,setNameValue]=React.useState(name),[formulaOrRefStringValue,setFormulaOrRefStringValue]=React.useState(formulaOrRefString),[commentValue,setCommentValue]=React.useState(comment),[localSheetIdValue,setLocalSheetIdValue]=React.useState(localSheetId),[validString,setValidString]=React.useState(""),[typeValue,setTypeValue]=React.useState(type),[validFormulaOrRange,setValidFormulaOrRange]=React.useState(!0),options=[{label:localeService.t("definedName.scopeWorkbook"),value:SCOPE_WORKBOOK_VALUE}],isFormula=__name(token=>!engineFormula.isReferenceStrings(token),"isFormula");React.useEffect(()=>{setValidFormulaOrRange(!0),setNameValue(name),setCommentValue(comment),setLocalSheetIdValue(localSheetId);let formulaOrRefStringCache=formulaOrRefString;formulaOrRefString.substring(0,1)===engineFormula.operatorToken.EQUALS?setTypeValue("formula"):isFormula(formulaOrRefString)?(setTypeValue("formula"),formulaOrRefStringCache=engineFormula.operatorToken.EQUALS+formulaOrRefString):setTypeValue("range"),setFormulaOrRefStringValue(formulaOrRefStringCache),setValidString("")},[state]),workbook.getSheetOrders().forEach(sheetId=>{const sheet=workbook.getSheetBySheetId(sheetId);options.push({label:(sheet==null?void 0:sheet.getName())||"",value:sheetId})});const convertRangeToString=__name(ranges=>ranges.map(range=>{var _a2;return engineFormula.serializeRangeToRefString({...range,sheetName:((_a2=workbook.getSheetBySheetId(range.sheetId))==null?void 0:_a2.getName())||""})}).join(","),"convertRangeToString"),rangeSelectorChange=__name(ranges=>{setFormulaOrRefStringValue(convertRangeToString(ranges))},"rangeSelectorChange"),formulaEditorChange=__name(value=>{setFormulaOrRefStringValue(value||"")},"formulaEditorChange"),confirmChange=__name(()=>{if(nameValue.length===0){setValidString(localeService.t("definedName.nameEmpty"));return}if(definedNamesService.getValueByName(unitId,nameValue)!=null&&(id==null||id.length===0)){setValidString(localeService.t("definedName.nameDuplicate"));return}if(!core.Tools.isValidParameter(nameValue)||engineFormula.isReferenceStringWithEffectiveColumn(nameValue)||!core.Tools.isStartValidPosition(nameValue)&&!engineRender.hasCJKText(nameValue.substring(0,1))){setValidString(localeService.t("definedName.nameInvalid"));return}if(workbook.getSheetOrders().map(sheetId=>{var _a2;return((_a2=workbook.getSheetBySheetId(sheetId))==null?void 0:_a2.getName())||""}).includes(nameValue)){setValidString(localeService.t("definedName.nameSheetConflict"));return}if(formulaOrRefStringValue.length===0){setValidString(localeService.t("definedName.formulaOrRefStringEmpty"));return}if(!validFormulaOrRange){setValidString(localeService.t("definedName.formulaOrRefStringInvalid"));return}if(functionService.hasExecutor(nameValue.toUpperCase())){setValidString(localeService.t("definedName.nameConflict"));return}confirm&&confirm({id:id||"",name:nameValue,formulaOrRefString:lexerTreeBuilder.convertRefersToAbsolute(formulaOrRefStringValue,core.AbsoluteRefType.ALL,core.AbsoluteRefType.ALL),comment:commentValue,localSheetId:localSheetIdValue})},"confirmChange"),typeValueChange=__name(value=>{const type2=value;type2==="formula"&&formulaOrRefStringValue.substring(0,1)!==engineFormula.operatorToken.EQUALS?(setFormulaOrRefStringValue(`${engineFormula.operatorToken.EQUALS}`),setFormulaOrRefStringValue(`${engineFormula.operatorToken.EQUALS}`)):formulaOrRefStringValue.substring(0,1)===engineFormula.operatorToken.EQUALS&&(setFormulaOrRefStringValue(""),setFormulaOrRefStringValue("")),setTypeValue(type2)},"typeValueChange");return jsxRuntimeExports.jsxs("div",{className:styles$h.definedNameInput,style:{display:state?"block":"none"},children:[jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(design.Input,{placeholder:localeService.t("definedName.inputNamePlaceholder"),value:nameValue,allowClear:!0,onChange:setNameValue,affixWrapperStyle:widthStyle})}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsxs(design.RadioGroup,{value:typeValue,onChange:typeValueChange,children:[jsxRuntimeExports.jsx(design.Radio,{value:"range",children:localeService.t("definedName.ratioRange")}),jsxRuntimeExports.jsx(design.Radio,{value:"formula",children:localeService.t("definedName.ratioFormula")})]})}),jsxRuntimeExports.jsx("div",{style:{display:typeValue==="range"?"block":"none"},children:jsxRuntimeExports.jsx(ui.RangeSelector,{value:formulaOrRefStringValue,onValid:setValidFormulaOrRange,onChange:rangeSelectorChange,placeholder:localeService.t("definedName.inputRangePlaceholder"),id:core.createInternalEditorID(`${inputId}-rangeSelector`),width:"99%",openForSheetUnitId:unitId},`${inputId}-rangeSelector`)}),jsxRuntimeExports.jsx("div",{style:{display:typeValue==="range"?"none":"block"},children:jsxRuntimeExports.jsx(ui.TextEditor,{value:formulaOrRefStringValue,onValid:setValidFormulaOrRange,onChange:formulaEditorChange,id:core.createInternalEditorID(`${inputId}-editor`),placeholder:localeService.t("definedName.inputFormulaPlaceholder"),openForSheetUnitId:unitId,onlyInputFormula:!0,style:{width:"99%"},canvasStyle:{fontSize:10}},`${inputId}-editor`)}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(design.Select,{style:widthStyle,value:localSheetIdValue,options,onChange:setLocalSheetIdValue})}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(design.Input,{affixWrapperStyle:widthStyle,placeholder:localeService.t("definedName.inputCommentPlaceholder"),value:commentValue,onChange:setCommentValue})}),jsxRuntimeExports.jsxs("div",{style:{display:validString.length===0?"none":"flex"},className:styles$h.definedNameInputValidation,children:[jsxRuntimeExports.jsx("span",{children:validString}),jsxRuntimeExports.jsx(ErrorSingle,{})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(design.Button,{onClick:__name(()=>{cancel&&cancel()},"onClick"),children:localeService.t("definedName.cancel")}),jsxRuntimeExports.jsx(design.Button,{style:{marginLeft:15},type:"primary",onClick:confirmChange,children:localeService.t("definedName.confirm")})]})]})},"DefinedNameInput"),DefinedNameContainer=__name(()=>{const commandService=core.useDependency(core.ICommandService),workbook=core.useDependency(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),localeService=core.useDependency(core.LocaleService),definedNamesService=core.useDependency(engineFormula.IDefinedNamesService),selectionManagerService=core.useDependency(sheets.SheetsSelectionsService);if(workbook==null)return;const unitId=workbook.getUnitId(),getDefinedNameMap=__name(()=>{const definedNameMap=definedNamesService.getDefinedNameMap(unitId);return definedNameMap?Array.from(Object.values(definedNameMap)):[]},"getDefinedNameMap"),[editState,setEditState]=React.useState(!1),[definedNames,setDefinedNames]=React.useState(getDefinedNameMap()),[editorKey,setEditorKey]=React.useState(null),[deleteConformKey,setDeleteConformKey]=React.useState();React.useEffect(()=>{const definedNamesSubscription=definedNamesService.update$.subscribe(()=>{setDefinedNames(getDefinedNameMap())});return()=>{definedNamesSubscription.unsubscribe()}},[]);const insertConfirm=__name(param=>{const{name,formulaOrRefString,comment,localSheetId,hidden}=param;let id=param.id;if(id==null||id.length===0)id=core.Tools.generateRandomId(10),commandService.executeCommand(sheets.InsertDefinedNameCommand.id,{id,unitId,name,formulaOrRefString,comment,localSheetId,hidden});else{const oldDefinedName=definedNamesService.getValueById(unitId,id),newDefinedName={id,unitId,name,formulaOrRefString,comment,localSheetId,hidden};commandService.executeCommand(sheets.SetDefinedNameCommand.id,{unitId,oldDefinedName:{...oldDefinedName,unitId},newDefinedName})}setEditState(!1),setEditorKey(null)},"insertConfirm"),deleteDefinedName=__name(id=>{setDeleteConformKey(id)},"deleteDefinedName");function handleDeleteClose(){setDeleteConformKey(null)}__name(handleDeleteClose,"handleDeleteClose");function handleDeleteConfirm(id){const item=definedNamesService.getValueById(unitId,id);commandService.executeCommand(sheets.RemoveDefinedNameCommand.id,{...item,unitId}),setDeleteConformKey(null)}__name(handleDeleteConfirm,"handleDeleteConfirm");const focusDefinedName=__name(definedName2=>{definedNamesService.focusRange(unitId,definedName2.id)},"focusDefinedName"),getInsertDefinedName=__name(()=>{const count=definedNames.length+1,name=localeService.t("definedName.defaultName")+count;if(definedNamesService.getValueByName(unitId,name)==null)return name;let i=count+1;for(;;){const newName=localeService.t("definedName.defaultName")+i;if(definedNamesService.getValueByName(unitId,newName)==null)return newName;i++}},"getInsertDefinedName"),getInertFormulaOrRefString=__name(()=>{var _a2;const sheetName=(_a2=workbook.getActiveSheet())==null?void 0:_a2.getName();if(!sheetName)return"";const selections=selectionManagerService.getCurrentSelections();return selections==null?"":selections.map(selection=>engineFormula.serializeRangeWithSheet(sheetName,selection.range)).join(",")},"getInertFormulaOrRefString"),closeInput=__name(()=>{setEditState(!1),setEditorKey(null)},"closeInput"),openInsertCloseKeyEditor=__name(()=>{setEditState(!0),setEditorKey(null)},"openInsertCloseKeyEditor"),closeInsertOpenKeyEditor=__name(id=>{setEditState(!1),setEditorKey(id)},"closeInsertOpenKeyEditor"),getSheetNameBySheetId=__name(sheetId=>{const sheet=workbook.getSheetBySheetId(sheetId);return sheet==null?"":sheet.getName()},"getSheetNameBySheetId");return jsxRuntimeExports.jsx("div",{className:styles$h.definedNameContainer,children:jsxRuntimeExports.jsxs("div",{className:styles$h.definedNameContainerScroll,children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{onClick:openInsertCloseKeyEditor,className:styles$h.definedNameContainerAddButton,style:{display:editState?"none":"flex"},children:[jsxRuntimeExports.jsx(IncreaseSingle,{}),jsxRuntimeExports.jsx("span",{className:styles$h.definedNameContainerAddButtonText,children:localeService.t("definedName.addButton")})]}),jsxRuntimeExports.jsx(DefinedNameInput,{confirm:insertConfirm,cancel:closeInput,state:editState,inputId:"insertDefinedName",name:getInsertDefinedName(),formulaOrRefString:getInertFormulaOrRefString()})]},"insertDefinedName"),definedNames.map((definedName2,index)=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{onClick:__name(()=>{focusDefinedName(definedName2)},"onClick"),className:styles$h.definedNameContainerItem,style:{display:definedName2.id===editorKey?"none":"flex"},children:[jsxRuntimeExports.jsxs("div",{title:definedName2.comment,children:[jsxRuntimeExports.jsxs("div",{className:styles$h.definedNameContainerItemName,children:[definedName2.name,jsxRuntimeExports.jsx("span",{className:styles$h.definedNameContainerItemNameForSheet,children:definedName2.localSheetId===SCOPE_WORKBOOK_VALUE||definedName2.localSheetId==null?"":getSheetNameBySheetId(definedName2.localSheetId)})]}),jsxRuntimeExports.jsx("div",{className:styles$h.definedNameContainerItemFormulaOrRefString,children:definedName2.formulaOrRefString})]}),jsxRuntimeExports.jsx(design.Tooltip,{title:localeService.t("definedName.updateButton"),placement:"top",style:{pointerEvents:"none"},children:jsxRuntimeExports.jsx("div",{className:clsx(styles$h.definedNameContainerItemUpdate,styles$h.definedNameContainerItemShow),onClick:__name(()=>{closeInsertOpenKeyEditor(definedName2.id)},"onClick"),children:jsxRuntimeExports.jsx(CheckMarkSingle,{})})}),jsxRuntimeExports.jsx(design.Tooltip,{title:localeService.t("definedName.deleteButton"),placement:"top",style:{pointerEvents:"none"},children:jsxRuntimeExports.jsx("div",{className:clsx(styles$h.definedNameContainerItemDelete,styles$h.definedNameContainerItemShow),onClick:__name(()=>{deleteDefinedName(definedName2.id)},"onClick"),children:jsxRuntimeExports.jsx(DeleteSingle,{})})})]}),jsxRuntimeExports.jsx(design.Confirm,{visible:deleteConformKey===definedName2.id,onClose:handleDeleteClose,onConfirm:__name(()=>{handleDeleteConfirm(definedName2.id)},"onConfirm"),children:localeService.t("definedName.deleteConfirmText")}),jsxRuntimeExports.jsx(DefinedNameInput,{confirm:insertConfirm,cancel:closeInput,state:definedName2.id===editorKey,id:definedName2.id,inputId:definedName2.id+index,name:definedName2.name,formulaOrRefString:definedName2.formulaOrRefString,comment:definedName2.comment,localSheetId:definedName2.localSheetId})]},index))]})})},"DefinedNameContainer");var __defProp$H=Object.defineProperty,__getOwnPropDesc$H=Object.getOwnPropertyDescriptor,__decorateClass$H=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$H(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$H(target,key,result),result},"__decorateClass$H");const DEFAULT_RANGE_RULE={name:"",unitId:"",subUnitId:"",permissionId:"",unitType:l$1.Unkonwn,id:"",ranges:[]};var viewState=(viewState2=>(viewState2.othersCanView="othersCanView",viewState2.noOneElseCanView="noOneElseCanView",viewState2))(viewState||{});let SheetPermissionPanelModel=(_n=class{constructor(){__publicField(this,"_rule",DEFAULT_RANGE_RULE);__publicField(this,"_rule$",new rxjs.BehaviorSubject(this._rule));__publicField(this,"_oldRule");__publicField(this,"_rangeErrorMsg$",new rxjs.BehaviorSubject(""));__publicField(this,"rangeErrorMsg$",this._rangeErrorMsg$.asObservable());__publicField(this,"rule$",this._rule$.asObservable())}setRangeErrorMsg(msg){this._rangeErrorMsg$.next(msg)}get rule(){return this._rule}setRule(ruleObj){this._rule={...this._rule,...ruleObj},this._rule$.next(this._rule)}resetRule(){this._rule=DEFAULT_RANGE_RULE,this._rule$.next(this._rule)}get oldRule(){return this._oldRule}setOldRule(ruleObj){this._oldRule=ruleObj}},__name(_n,"SheetPermissionPanelModel"),_n);SheetPermissionPanelModel=__decorateClass$H([core.OnLifecycle(core.LifecycleStages.Starting,SheetPermissionPanelModel)],SheetPermissionPanelModel);const _SheetPermissionUserManagerService=class _SheetPermissionUserManagerService{constructor(){__publicField(this,"_userList",[]);__publicField(this,"_oldCollaboratorList",[]);__publicField(this,"_selectUserList",[]);__publicField(this,"_allUserList",[]);__publicField(this,"_selectUserList$",new rxjs.BehaviorSubject(this._selectUserList));__publicField(this,"selectUserList$",this._selectUserList$.asObservable())}get userList(){return this._userList}get allUserList(){return this._allUserList}setAllUserList(userList){this._allUserList=userList}setUserList(userList){this._userList=userList}get oldCollaboratorList(){return this._oldCollaboratorList}setOldCollaboratorList(userList){this._oldCollaboratorList=userList}get selectUserList(){return this._selectUserList}setSelectUserList(userList){this._selectUserList=userList,this._selectUserList$.next(userList)}};__name(_SheetPermissionUserManagerService,"SheetPermissionUserManagerService");let SheetPermissionUserManagerService=_SheetPermissionUserManagerService;const UNIVER_SHEET_PERMISSION_PANEL="UNIVER_SHEET_PERMISSION_PANEL",UNIVER_SHEET_PERMISSION_PANEL_FOOTER="UNIVER_SHEET_PERMISSION_PANEL_FOOTER",UNIVER_SHEET_PERMISSION_USER_DIALOG="UNIVER_SHEET_PERMISSION_USER_DIALOG",UNIVER_SHEET_PERMISSION_DIALOG="UNIVER_SHEET_PERMISSION_DIALOG",UNIVER_SHEET_PERMISSION_USER_DIALOG_ID="UNIVER_SHEET_PERMISSION_USER_DIALOG_ID",UNIVER_SHEET_PERMISSION_DIALOG_ID="UNIVER_SHEET_PERMISSION_DIALOG_ID",subUnitPermissionTypeMap={[P.Copy]:"Copy",[P.SetCellStyle]:"SetCellStyle",[P.SetCellValue]:"SetCellValue",[P.SetRowStyle]:"SetRowStyle",[P.SetColumnStyle]:"SetColumnStyle",[P.InsertRow]:"InsertRow",[P.InsertColumn]:"InsertColumn",[P.InsertHyperlink]:"InsertHyperlink",[P.DeleteRow]:"DeleteRow",[P.DeleteColumn]:"DeleteColumn",[P.Sort]:"Sort",[P.Filter]:"Filter",[P.PivotTable]:"PivotTable",[P.EditExtraObject]:"EditExtraObject"},defaultWorksheetUnitActionList=[P.Copy,P.SetCellStyle,P.SetCellValue,P.SetRowStyle,P.SetColumnStyle,P.InsertRow,P.InsertColumn,P.InsertHyperlink,P.DeleteRow,P.DeleteColumn,P.Sort,P.Filter,P.PivotTable,P.EditExtraObject,P.View],permissionMenuIconKey="sheet-permission-menu-icon",permissionDeleteIconKey="sheet-permission-delete-icon",permissionEditIconKey="sheet-permission-edit-icon",permissionCheckIconKey="sheet-permission-check-icon",permissionLockIconKey="sheet-permission-lock-icon",SheetPermissionOpenPanelOperation={type:core.CommandType.OPERATION,id:"sheet-permission.operation.openPanel",async handler(accessor,_params={}){const sidebarService=accessor.get(ui.ISidebarService),sheetPermissionPanelModel=accessor.get(SheetPermissionPanelModel),sheetPermissionUserManagerService=accessor.get(SheetPermissionUserManagerService),{showDetail=!0,fromSheetBar=!1}=_params,sidebarProps={header:{title:"permission.panel.title"},children:{label:UNIVER_SHEET_PERMISSION_PANEL,showDetail,fromSheetBar},width:330,footer:{label:UNIVER_SHEET_PERMISSION_PANEL_FOOTER,showDetail},onClose:__name(()=>{sheetPermissionPanelModel.setRangeErrorMsg(""),sheetPermissionPanelModel.resetRule(),sheetPermissionUserManagerService.setUserList([]),sheetPermissionUserManagerService.setSelectUserList([]),sheetPermissionUserManagerService.setOldCollaboratorList([]),sheetPermissionUserManagerService.setAllUserList([])},"onClose")};return sidebarService.open(sidebarProps),!0}},SheetPermissionOpenDialogOperation={type:core.CommandType.OPERATION,id:"sheet-permission.operation.openDialog",async handler(accessor,_params){const dialogService=accessor.get(ui.IDialogService);return dialogService.close("DESKTOP_FIND_REPLACE_DIALOG"),dialogService.open({id:UNIVER_SHEET_PERMISSION_DIALOG_ID,title:{title:"permission.dialog.allowedPermissionType"},children:{label:UNIVER_SHEET_PERMISSION_DIALOG},width:393,destroyOnClose:!0,onClose:__name(()=>dialogService.close(UNIVER_SHEET_PERMISSION_DIALOG_ID),"onClose")}),!0}},AddWorksheetProtectionCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-protection",async handler(accessor,params){if(!params)return!1;const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),{rule,unitId}=params,subUnitId=rule.subUnitId;if(await commandService.executeCommand(sheets.AddWorksheetProtectionMutation.id,{unitId,rule,subUnitId:rule.subUnitId})){const redoMutations=[{id:sheets.AddWorksheetProtectionMutation.id,params:{unitId,rule,subUnitId:rule.subUnitId}}],undoMutations=[{id:sheets.DeleteWorksheetProtectionMutation.id,params:{unitId,subUnitId}}];undoRedoService.pushUndoRedo({unitID:unitId,redoMutations,undoMutations})}return!0}},DeleteWorksheetProtectionCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-worksheet-protection",handler(accessor,params){if(!params)return!1;const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),{rule,unitId,subUnitId}=params;commandService.executeCommand(sheets.DeleteWorksheetProtectionMutation.id,{unitId,subUnitId});const redoMutations=[{id:sheets.DeleteWorksheetProtectionMutation.id,params:{unitId,subUnitId}}],undoMutations=[{id:sheets.AddWorksheetProtectionMutation.id,params:{unitId,rule,subUnitId}}];return undoRedoService.pushUndoRedo({unitID:unitId,redoMutations,undoMutations}),!0}},SetWorksheetProtectionCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-worksheet-protection",async handler(accessor,params){if(!params)return!1;const commandService=accessor.get(core.ICommandService),sheetPermissionPanelModel=accessor.get(SheetPermissionPanelModel),undoRedoService=accessor.get(core.IUndoRedoService),{rule,permissionId}=params,{unitId,subUnitId}=rule,newRule={...rule,permissionId},oldRule=sheetPermissionPanelModel.oldRule;if(await commandService.executeCommand(sheets.SetWorksheetProtectionMutation.id,{unitId,subUnitId,newRule})){const redoMutations=[{id:sheets.SetWorksheetProtectionMutation.id,params:{unitId,subUnitId,newRule}}],undoMutations=[{id:sheets.SetWorksheetProtectionMutation.id,params:{unitId,subUnitId,rule:oldRule}}];undoRedoService.pushUndoRedo({unitID:unitId,redoMutations,undoMutations})}return!0}},DeleteWorksheetProtectionFormSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-worksheet-protection-from-sheet-bar",async handler(accessor,params){if(!params)return!1;const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(I.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet(),unitId=workbook.getUnitId();if(!worksheet)return!1;const subUnitId=worksheet.getSheetId(),rule=worksheetProtectionRuleModel.getRule(unitId,subUnitId);if(await commandService.executeCommand(DeleteWorksheetProtectionCommand.id,{unitId,subUnitId})){const redoMutations=[{id:DeleteWorksheetProtectionCommand.id,params:{unitId,subUnitId}}],undoMutations=[{id:AddWorksheetProtectionCommand.id,params:{unitId,rule}}];undoRedoService.pushUndoRedo({unitID:unitId,redoMutations,undoMutations})}return!0}},ChangeSheetProtectionFromSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.change-sheet-protection-from-sheet-bar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand("sheet-permission.operation.openDialog"),!0}},AddRangeProtectionFromToolbarCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-toolbar",async handler(accessor){const commandService=accessor.get(core.ICommandService);return accessor.get(SheetPermissionPanelModel).resetRule(),await commandService.executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0}),!0}},AddRangeProtectionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-context-menu",async handler(accessor){const commandService=accessor.get(core.ICommandService);return accessor.get(SheetPermissionPanelModel).resetRule(),await commandService.executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0}),!0}},ViewSheetPermissionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-context-menu",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!1}),!0}},AddRangeProtectionFromSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-sheet-bar",async handler(accessor){const commandService=accessor.get(core.ICommandService);return accessor.get(SheetPermissionPanelModel).resetRule(),await commandService.executeCommand(SheetPermissionOpenPanelOperation.id,{fromSheetBar:!0,showDetail:!0}),!0}},ViewSheetPermissionFromSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-sheet-bar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!1}),!0}},AddRangeProtectionCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-range-protection",async handler(accessor,params){if(!params)return!1;const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),selectionProtectionModel=accessor.get(sheets.RangeProtectionRuleModel),{rule,permissionId}=params,{unitId,subUnitId,ranges,name,description}=rule,rules=[{ranges,permissionId,id:selectionProtectionModel.createRuleId(unitId,subUnitId),name,description}];if(await commandService.executeCommand(sheets.AddRangeProtectionMutation.id,{unitId,subUnitId,rules})){const redoMutations=[{id:sheets.AddRangeProtectionMutation.id,params:{unitId,subUnitId,rules}}],undoMutations=[{id:sheets.DeleteRangeProtectionMutation.id,params:{unitId,subUnitId,ruleIds:rules.map(rule2=>rule2.id)}}];undoRedoService.pushUndoRedo({unitID:unitId,redoMutations,undoMutations})}return!0}},DeleteRangeSelectionCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-range-protection",async handler(accessor,params){if(!params)return!1;const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),{unitId,subUnitId,rule}=params,redoMutationParam={unitId,subUnitId,ruleIds:[rule.id]};return await commandService.executeCommand(sheets.DeleteRangeProtectionMutation.id,redoMutationParam)&&undoRedoService.pushUndoRedo({unitID:unitId,redoMutations:[{id:sheets.DeleteRangeProtectionMutation.id,params:redoMutationParam}],undoMutations:[{id:sheets.AddRangeProtectionMutation.id,params:{unitId,subUnitId,rules:[rule]}}]}),!0}},SetRangeProtectionCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-protection",async handler(accessor,params){if(!params)return!1;const commandService=accessor.get(core.ICommandService),selectionProtectionModel=accessor.get(sheets.RangeProtectionRuleModel),sheetPermissionPanelModel=accessor.get(SheetPermissionPanelModel),undoRedoService=accessor.get(core.IUndoRedoService),{rule,permissionId}=params,{unitId,subUnitId,ranges,name,description}=rule;if(rule.id){const redoMutationParam={unitId,subUnitId,ruleId:rule.id,rule:{ranges,permissionId,id:selectionProtectionModel.createRuleId(unitId,subUnitId),name,description}};if(await commandService.executeCommand(sheets.SetRangeProtectionMutation.id,redoMutationParam)){const redoMutations=[{id:sheets.SetRangeProtectionMutation.id,params:redoMutationParam}],undoMutations=[{id:sheets.SetRangeProtectionMutation.id,params:{unitId,subUnitId,ruleId:rule.id,rule:sheetPermissionPanelModel.oldRule}}];undoRedoService.pushUndoRedo({unitID:unitId,redoMutations,undoMutations})}}return!0}},DeleteRangeProtectionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-range-protection-from-context-menu",async handler(accessor){var _a2;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),undoRedoService=accessor.get(core.IUndoRedoService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId&&(worksheetRule!=null&&worksheetRule.name))return commandService.executeCommand(DeleteWorksheetProtectionCommand.id,{unitId,subUnitId,rule:worksheetRule});{const selectRange=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.range;if(!selectRange)return!1;const rule=accessor.get(sheets.RangeProtectionRuleModel).getSubunitRuleList(unitId,subUnitId).find(item=>item.ranges.some(range=>core.Rectangle.intersects(range,selectRange)));if(rule){const redoMutationParam={unitId,subUnitId,ruleIds:[rule.id]};return await commandService.executeCommand(sheets.DeleteRangeProtectionMutation.id,redoMutationParam)&&undoRedoService.pushUndoRedo({unitID:unitId,redoMutations:[{id:sheets.DeleteRangeProtectionMutation.id,params:redoMutationParam}],undoMutations:[{id:sheets.AddRangeProtectionMutation.id,params:{unitId,subUnitId,rules:[rule]}}]}),!0}else return!1}}},SetRangeProtectionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-protection-from-context-menu",async handler(accessor){var _a2;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId),sheetPermissionPanelModel=accessor.get(SheetPermissionPanelModel);if(worksheetRule!=null&&worksheetRule.permissionId&&(worksheetRule!=null&&worksheetRule.name)){const oldRule={...worksheetRule,unitId,subUnitId,ranges:[]};return sheetPermissionPanelModel.setRule(oldRule),sheetPermissionPanelModel.setOldRule(oldRule),await commandService.executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0}),!0}else{const selectRange=(_a2=selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.range;if(!selectRange)return!1;const rule=accessor.get(sheets.RangeProtectionRuleModel).getSubunitRuleList(unitId,subUnitId).find(item=>{var _a3;return(_a3=item==null?void 0:item.ranges)==null?void 0:_a3.some(range=>core.Rectangle.intersects(range,selectRange))});if(rule){const oldRule={...rule,unitId,subUnitId};return sheetPermissionPanelModel.setRule(oldRule),sheetPermissionPanelModel.setOldRule(oldRule),await commandService.executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0}),!0}else return!1}}},SetProtectionCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-protection",async handler(accessor,params){if(!params)return!1;const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),sheetPermissionPanelModel=accessor.get(SheetPermissionPanelModel),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),{rule}=params,{unitId,subUnitId}=rule,redoMutations=[],undoMutations=[],oldRule=sheetPermissionPanelModel.oldRule;return(oldRule==null?void 0:oldRule.unitType)===rule.unitType?rule.unitType===l$1.Worksheet?(redoMutations.push({id:sheets.SetWorksheetProtectionMutation.id,params:{unitId,subUnitId,rule}}),undoMutations.push({id:sheets.SetWorksheetProtectionMutation.id,params:{unitId,subUnitId,rule:oldRule}})):(redoMutations.push({id:sheets.SetRangeProtectionMutation.id,params:{unitId,subUnitId,rule,ruleId:rule.id}}),undoMutations.push({id:sheets.SetRangeProtectionMutation.id,params:{unitId,subUnitId,ruleId:oldRule.id,rule:oldRule}})):(oldRule&&(oldRule.unitType===l$1.Worksheet?(redoMutations.push({id:sheets.DeleteWorksheetProtectionMutation.id,params:{unitId,subUnitId}}),undoMutations.push({id:sheets.AddWorksheetProtectionMutation.id,params:{unitId,rule:oldRule,subUnitId:oldRule.subUnitId}})):oldRule.unitType===l$1.SelectRange&&(redoMutations.push({id:sheets.DeleteRangeProtectionMutation.id,params:{unitId,subUnitId,ruleIds:[oldRule.id]}}),undoMutations.push({id:sheets.AddRangeProtectionMutation.id,params:{unitId,subUnitId,rules:[oldRule]}}))),rule.unitType===l$1.Worksheet?(redoMutations.push({id:sheets.AddWorksheetProtectionMutation.id,params:{unitId,rule,subUnitId:rule.subUnitId}}),undoMutations.unshift({id:sheets.DeleteWorksheetProtectionMutation.id,params:{unitId,subUnitId}})):rule.unitType===l$1.SelectRange&&(rule.id=rangeProtectionRuleModel.createRuleId(unitId,subUnitId),redoMutations.push({id:sheets.AddRangeProtectionMutation.id,params:{unitId,subUnitId,rules:[rule]}}),undoMutations.unshift({id:sheets.DeleteRangeProtectionMutation.id,params:{unitId,subUnitId,ruleIds:[rule.id]}}))),core.sequenceExecute(redoMutations,commandService)&&undoRedoService.pushUndoRedo({unitID:unitId,undoMutations,redoMutations}),!0}},ScrollToRangeOperation={id:"sheet.operation.scroll-to-range",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>{const instanceService=accessor.get(core.IUniverInstanceService);return accessor.get(engineRender.IRenderManagerService).getRenderById(instanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports2.SheetsScrollRenderController).scrollToRange(params.range)},"handler")},CLEAR_SELECTION_MENU_ID="sheet.menu.clear-selection";function ClearSelectionMenuItemFactory(accessor){return{id:CLEAR_SELECTION_MENU_ID,group:ui.MenuGroup.CONTEXT_MENU_FORMAT,type:ui.MenuItemType.SUBITEMS,icon:"ClearFormat",title:"rightClick.clearSelection",positions:[ui.MenuPosition.CONTEXT_MENU,SheetMenuPosition.COL_HEADER_CONTEXT_MENU,SheetMenuPosition.ROW_HEADER_CONTEXT_MENU],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ClearSelectionMenuItemFactory,"ClearSelectionMenuItemFactory");function ClearSelectionContentMenuItemFactory(accessor){return{id:sheets.ClearSelectionContentCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.clearContent",positions:[CLEAR_SELECTION_MENU_ID],disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ClearSelectionContentMenuItemFactory,"ClearSelectionContentMenuItemFactory");function ClearSelectionFormatMenuItemFactory(accessor){return{id:sheets.ClearSelectionFormatCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.clearFormat",positions:[CLEAR_SELECTION_MENU_ID],disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ClearSelectionFormatMenuItemFactory,"ClearSelectionFormatMenuItemFactory");function ClearSelectionAllMenuItemFactory(accessor){return{id:sheets.ClearSelectionAllCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.clearAll",positions:[CLEAR_SELECTION_MENU_ID],disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ClearSelectionAllMenuItemFactory,"ClearSelectionAllMenuItemFactory");const DELETE_RANGE_MENU_ID="sheet.menu.delete";function DeleteRangeMenuItemFactory(accessor){return{id:DELETE_RANGE_MENU_ID,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.SUBITEMS,title:"rightClick.delete",icon:"Reduce",positions:[ui.MenuPosition.CONTEXT_MENU],hidden$:getBaseRangeMenuHidden$(accessor),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission]})}}__name(DeleteRangeMenuItemFactory,"DeleteRangeMenuItemFactory");function RemoveColMenuItemFactory(accessor){return{id:RemoveColConfirmCommand.id,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.BUTTON,icon:"DeleteColumn",positions:[DELETE_RANGE_MENU_ID,SheetMenuPosition.COL_HEADER_CONTEXT_MENU],title:"rightClick.deleteSelectedColumn",hidden$:getDeleteMenuHidden$(accessor,"col"),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetDeleteColumnPermission]})}}__name(RemoveColMenuItemFactory,"RemoveColMenuItemFactory");function RemoveRowMenuItemFactory(accessor){return{id:RemoveRowConfirmCommand.id,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.BUTTON,icon:"DeleteRow",positions:[DELETE_RANGE_MENU_ID,SheetMenuPosition.ROW_HEADER_CONTEXT_MENU],title:"rightClick.deleteSelectedRow",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetDeleteRowPermission]}),hidden$:getDeleteMenuHidden$(accessor,"row")}}__name(RemoveRowMenuItemFactory,"RemoveRowMenuItemFactory");function DeleteRangeMoveLeftMenuItemFactory(accessor){return{id:DeleteRangeMoveLeftConfirmCommand.id,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.BUTTON,title:"rightClick.moveLeft",icon:"DeleteCellShiftLeft",positions:[DELETE_RANGE_MENU_ID],disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getCellMenuHidden$(accessor,"col")}}__name(DeleteRangeMoveLeftMenuItemFactory,"DeleteRangeMoveLeftMenuItemFactory");function DeleteRangeMoveUpMenuItemFactory(accessor){return{id:DeleteRangeMoveUpConfirmCommand.id,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.BUTTON,title:"rightClick.moveUp",icon:"DeleteCellShiftUp",positions:[DELETE_RANGE_MENU_ID],disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getCellMenuHidden$(accessor,"row")}}__name(DeleteRangeMoveUpMenuItemFactory,"DeleteRangeMoveUpMenuItemFactory");const COL_INSERT_MENU_ID="sheet.menu.col-insert";function ColInsertMenuItemFactory(accessor){return{id:COL_INSERT_MENU_ID,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",positions:[SheetMenuPosition.COL_HEADER_CONTEXT_MENU],hidden$:getBaseRangeMenuHidden$(accessor),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetInsertColumnPermission]})}}__name(ColInsertMenuItemFactory,"ColInsertMenuItemFactory");const ROW_INSERT_MENU_ID="sheet.menu.row-insert";function RowInsertMenuItemFactory(accessor){return{id:ROW_INSERT_MENU_ID,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",positions:[SheetMenuPosition.ROW_HEADER_CONTEXT_MENU],hidden$:getBaseRangeMenuHidden$(accessor),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertRowPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(RowInsertMenuItemFactory,"RowInsertMenuItemFactory");const CELL_INSERT_MENU_ID="sheet.menu.cell-insert";function CellInsertMenuItemFactory(accessor){return{id:CELL_INSERT_MENU_ID,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",positions:[ui.MenuPosition.CONTEXT_MENU],hidden$:getBaseRangeMenuHidden$(accessor),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertColumnPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(CellInsertMenuItemFactory,"CellInsertMenuItemFactory");function InsertRowBeforeMenuItemFactory(accessor){return{id:sheets.InsertRowBeforeCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.insertRowBefore",icon:"InsertRowAbove",positions:[ROW_INSERT_MENU_ID,CELL_INSERT_MENU_ID],disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertRowPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getInsertBeforeMenuHidden$(accessor,"row")}}__name(InsertRowBeforeMenuItemFactory,"InsertRowBeforeMenuItemFactory");function InsertRowAfterMenuItemFactory(accessor){return{id:sheets.InsertRowAfterCommand.id,type:ui.MenuItemType.BUTTON,positions:[ROW_INSERT_MENU_ID],title:"rightClick.insertRow",icon:"InsertRowBelow",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertRowPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getInsertAfterMenuHidden$(accessor,"row")}}__name(InsertRowAfterMenuItemFactory,"InsertRowAfterMenuItemFactory");function InsertColBeforeMenuItemFactory(accessor){return{id:sheets.InsertColBeforeCommand.id,type:ui.MenuItemType.BUTTON,positions:[COL_INSERT_MENU_ID,CELL_INSERT_MENU_ID],title:"rightClick.insertColumnBefore",icon:"LeftInsertColumn",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertColumnPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getInsertBeforeMenuHidden$(accessor,"col")}}__name(InsertColBeforeMenuItemFactory,"InsertColBeforeMenuItemFactory");function InsertColAfterMenuItemFactory(accessor){return{id:sheets.InsertColAfterCommand.id,type:ui.MenuItemType.BUTTON,positions:[COL_INSERT_MENU_ID],title:"rightClick.insertColumn",icon:"RightInsertColumn",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetInsertColumnPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getInsertAfterMenuHidden$(accessor,"col")}}__name(InsertColAfterMenuItemFactory,"InsertColAfterMenuItemFactory");function InsertRangeMoveRightMenuItemFactory(accessor){return{id:InsertRangeMoveRightConfirmCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.moveRight",icon:"InsertCellShiftRight",positions:[CELL_INSERT_MENU_ID],disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getCellMenuHidden$(accessor,"col")}}__name(InsertRangeMoveRightMenuItemFactory,"InsertRangeMoveRightMenuItemFactory");function InsertRangeMoveDownMenuItemFactory(accessor){return{id:InsertRangeMoveDownConfirmCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.moveDown",icon:"InsertCellDown",positions:[CELL_INSERT_MENU_ID],disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:getCellMenuHidden$(accessor,"row")}}__name(InsertRangeMoveDownMenuItemFactory,"InsertRangeMoveDownMenuItemFactory");function DeleteSheetMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),defaultDisable$=new rxjs.Observable(subscriber=>{const disposable=commandService.onCommandExecuted(c=>{const id=c.id;(id===sheets.RemoveSheetMutation.id||id===sheets.InsertSheetMutation.id||id===sheets.SetWorksheetHideMutation.id)&&disableFunction(univerInstanceService,subscriber)});return disableFunction(univerInstanceService,subscriber),disposable.dispose}),permissionDisable$=getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission,sheets.WorkbookDeleteSheetPermission]);return{id:RemoveSheetConfirmCommand.id,type:ui.MenuItemType.BUTTON,positions:[SheetMenuPosition.SHEET_BAR],title:"sheetConfig.delete",disabled$:rxjs.combineLatest([defaultDisable$,permissionDisable$]).pipe(rxjs.map(([defaultDisabled,permissionDisabled])=>defaultDisabled||permissionDisabled)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(DeleteSheetMenuItemFactory,"DeleteSheetMenuItemFactory");function CopySheetMenuItemFactory(accessor){return{id:sheets.CopySheetCommand.id,type:ui.MenuItemType.BUTTON,positions:[SheetMenuPosition.SHEET_BAR],title:"sheetConfig.copy",disabled$:getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission,sheets.WorkbookCreateSheetPermission]),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CopySheetMenuItemFactory,"CopySheetMenuItemFactory");function RenameSheetMenuItemFactory(accessor){return{id:RenameSheetOperation.id,type:ui.MenuItemType.BUTTON,positions:[SheetMenuPosition.SHEET_BAR],title:"sheetConfig.rename",disabled$:getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission,sheets.WorkbookRenameSheetPermission]),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(RenameSheetMenuItemFactory,"RenameSheetMenuItemFactory");function ChangeColorSheetMenuItemFactory(accessor){return{id:sheets.SetTabColorCommand.id,title:"sheetConfig.changeColor",positions:[SheetMenuPosition.SHEET_BAR],type:ui.MenuItemType.SELECTOR,selections:[{label:{name:COLOR_PICKER_COMPONENT,hoverable:!1}}],hidden$:getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission])}}__name(ChangeColorSheetMenuItemFactory,"ChangeColorSheetMenuItemFactory");function HideSheetMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService);return{id:sheets.SetWorksheetHideCommand.id,type:ui.MenuItemType.BUTTON,positions:[SheetMenuPosition.SHEET_BAR],title:"sheetConfig.hide",disabled$:new rxjs.Observable(subscriber=>{const disposable=commandService.onCommandExecuted(c=>{const id=c.id;(id===sheets.RemoveSheetMutation.id||id===sheets.InsertSheetMutation.id||id===sheets.SetWorksheetHideMutation.id)&&disableFunction(univerInstanceService,subscriber)});return disableFunction(univerInstanceService,subscriber),disposable.dispose}).pipe(rxjs.combineLatestWith(getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission,sheets.WorkbookHideSheetPermission])),rxjs.map(([defaultDisabled,permissionDisabled])=>defaultDisabled||permissionDisabled)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(HideSheetMenuItemFactory,"HideSheetMenuItemFactory");function ShowMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService);return{id:ShowMenuListCommand.id,type:ui.MenuItemType.BUTTON,positions:[SheetMenuPosition.SHEET_BAR],title:"sheetConfig.unhide",disabled$:new rxjs.Observable(subscriber=>{function disableFunction2(){const worksheets=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getWorksheets(),visibleSheets=Array.from(worksheets.values());subscriber.next(visibleSheets.length===1)}__name(disableFunction2,"disableFunction2");const disposable=commandService.onCommandExecuted(c=>{const id=c.id;(id===sheets.RemoveSheetMutation.id||id===sheets.InsertSheetMutation.id||id===sheets.SetWorksheetHideMutation.id)&&disableFunction2()});return disableFunction2(),disposable.dispose}).pipe(rxjs.combineLatestWith(getWorkbookPermissionDisable$(accessor,[sheets.WorkbookEditablePermission,sheets.WorkbookHideSheetPermission])),rxjs.map(([defaultDisabled,permissionDisabled])=>defaultDisabled||permissionDisabled)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ShowMenuItemFactory,"ShowMenuItemFactory");function disableFunction(univerInstanceService,subscriber){const worksheets=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getWorksheets(),visibleSheets=Array.from(worksheets.values()).filter(sheet=>sheet.getConfig().hidden===core.BooleanNumber.FALSE);subscriber.next(visibleSheets.length===1)}__name(disableFunction,"disableFunction");const ARROW_SELECTION_KEYCODE_LIST=[ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP,ui.KeyCode.ARROW_LEFT,ui.KeyCode.ARROW_RIGHT],MOVE_SELECTION_KEYCODE_LIST=[ui.KeyCode.ENTER,ui.KeyCode.TAB,...ARROW_SELECTION_KEYCODE_LIST];function generateArrowSelectionShortCutItem(){const shortcutList=[];for(const keycode of ARROW_SELECTION_KEYCODE_LIST)shortcutList.push({id:SetCellEditVisibleArrowOperation.id,binding:keycode,preconditions:__name(contextService=>whenEditorDidNotInputFormulaActivated(contextService),"preconditions"),staticParameters:{visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,isShift:!1}}),shortcutList.push({id:SetCellEditVisibleArrowOperation.id,binding:keycode|ui.MetaKeys.SHIFT,preconditions:__name(contextService=>whenEditorDidNotInputFormulaActivated(contextService),"preconditions"),staticParameters:{visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,isShift:!0}});return shortcutList}__name(generateArrowSelectionShortCutItem,"generateArrowSelectionShortCutItem");const StartEditWithF2Shortcut={id:SetCellEditVisibleWithF2Operation.id,binding:ui.KeyCode.F2,description:"shortcut.sheet.start-editing",group:"4_sheet-edit",preconditions:whenSheetEditorFocused,staticParameters:{visible:!0,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.F2}},EditorCursorEnterShortcut={id:SetCellEditVisibleOperation.id,binding:ui.KeyCode.ENTER,description:"shortcut.sheet.toggle-editing",group:"4_sheet-edit",preconditions:__name(contextService=>whenEditorDidNotInputFormulaActivated(contextService),"preconditions"),staticParameters:{visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.ENTER}},EditorCursorTabShortcut={id:SetCellEditVisibleOperation.id,binding:ui.KeyCode.TAB,preconditions:__name(contextService=>whenEditorDidNotInputFormulaActivated(contextService),"preconditions"),staticParameters:{visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.TAB}},EditorCursorEscShortcut={id:SetCellEditVisibleOperation.id,binding:ui.KeyCode.ESC,description:"shortcut.sheet.abort-editing",group:"4_sheet-edit",preconditions:__name(contextService=>whenEditorDidNotInputFormulaActivated(contextService),"preconditions"),staticParameters:{visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.ESC}},EditorBreakLineShortcut={id:docs.BreakLineCommand.id,description:"shortcut.sheet.break-line",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorActivated(contextService),"preconditions"),binding:ui.KeyCode.ENTER|ui.MetaKeys.ALT},EditorDeleteLeftShortcut={id:docs.DeleteLeftCommand.id,preconditions:__name(contextService=>whenEditorActivated(contextService)||whenFormulaEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.BACKSPACE},EditorDeleteLeftShortcutInActive={id:SetCellEditVisibleOperation.id,description:"shortcut.sheet.delete-and-start-editing",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorFocused(contextService)&&!whenFormulaEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.BACKSPACE,staticParameters:{visible:!0,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.BACKSPACE}},SetRowHiddenShortcutItem={id:sheets.SetRowHiddenCommand.id,preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.Digit9|ui.MetaKeys.CTRL_COMMAND},SetColHiddenShortcutItem={id:sheets.SetColHiddenCommand.id,preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.Digit0|ui.MetaKeys.CTRL_COMMAND|ui.MetaKeys.SHIFT},MoveSelectionDownShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-below-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_DOWN,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.DOWN}},MoveSelectionUpShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-up-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_UP,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.UP}},MoveSelectionLeftShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-left-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_LEFT,priority:100,preconditions:whenSheetEditorFocusedAndFxNotFocused,staticParameters:{direction:core.Direction.LEFT}},MoveSelectionRightShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-right-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_RIGHT,priority:100,preconditions:whenSheetEditorFocusedAndFxNotFocused,staticParameters:{direction:core.Direction.RIGHT}},MoveSelectionTabShortcutItem={id:MoveSelectionEnterAndTabCommand.id,description:"shortcut.sheet.select-next-cell",group:"3_sheet-view",binding:ui.KeyCode.TAB,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.RIGHT,keycode:ui.KeyCode.TAB}},MoveSelectionTabLeftShortcutItem={id:MoveSelectionEnterAndTabCommand.id,description:"shortcut.sheet.select-previous-cell",group:"3_sheet-view",binding:ui.KeyCode.TAB|ui.MetaKeys.SHIFT,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.LEFT,keycode:ui.KeyCode.TAB}},MoveSelectionEnterShortcutItem={id:MoveSelectionEnterAndTabCommand.id,description:"shortcut.sheet.select-below-cell",group:"3_sheet-view",binding:ui.KeyCode.ENTER,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.DOWN,keycode:ui.KeyCode.ENTER}},MoveSelectionEnterUpShortcutItem={id:MoveSelectionEnterAndTabCommand.id,description:"shortcut.sheet.select-up-cell",group:"3_sheet-view",binding:ui.KeyCode.ENTER|ui.MetaKeys.SHIFT,priority:100,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.UP,keycode:ui.KeyCode.ENTER}},MoveSelectionEndDownShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-below-value-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_DOWN|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.DOWN,jumpOver:JumpOver.moveGap}},MoveSelectionEndUpShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-up-value-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_UP|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.UP,jumpOver:JumpOver.moveGap}},MoveSelectionEndLeftShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-left-value-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_LEFT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.LEFT,jumpOver:JumpOver.moveGap}},MoveSelectionEndRightShortcutItem={id:MoveSelectionCommand.id,description:"shortcut.sheet.select-right-value-cell",group:"3_sheet-view",binding:ui.KeyCode.ARROW_RIGHT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.RIGHT,jumpOver:JumpOver.moveGap}},ExpandSelectionDownShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-down",group:"3_sheet-view",binding:ui.KeyCode.ARROW_DOWN|ui.MetaKeys.SHIFT,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.DOWN}},ExpandSelectionUpShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-up",group:"3_sheet-view",binding:ui.KeyCode.ARROW_UP|ui.MetaKeys.SHIFT,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.UP}},ExpandSelectionLeftShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-left",group:"3_sheet-view",binding:ui.KeyCode.ARROW_LEFT|ui.MetaKeys.SHIFT,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.LEFT}},ExpandSelectionRightShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-right",group:"3_sheet-view",binding:ui.KeyCode.ARROW_RIGHT|ui.MetaKeys.SHIFT,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.RIGHT}},ExpandSelectionEndDownShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-to-below-gap",group:"3_sheet-view",binding:ui.KeyCode.ARROW_DOWN|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.DOWN,jumpOver:JumpOver.moveGap}},ExpandSelectionEndUpShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-to-up-gap",group:"3_sheet-view",binding:ui.KeyCode.ARROW_UP|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.UP,jumpOver:JumpOver.moveGap}},ExpandSelectionEndLeftShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-to-left-gap",group:"3_sheet-view",binding:ui.KeyCode.ARROW_LEFT|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.LEFT,jumpOver:JumpOver.moveGap}},ExpandSelectionEndRightShortcutItem={id:ExpandSelectionCommand.id,description:"shortcut.sheet.expand-selection-to-right-gap",group:"3_sheet-view",binding:ui.KeyCode.ARROW_RIGHT|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{direction:core.Direction.RIGHT,jumpOver:JumpOver.moveGap}},SelectAllShortcutItem={id:SelectAllCommand.id,description:"shortcut.sheet.select-all",group:"3_sheet-view",binding:ui.KeyCode.A|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,staticParameters:{expandToGapFirst:!0,loop:!0}},SetBoldShortcutItem={id:SetRangeBoldCommand.id,description:"shortcut.sheet.set-bold",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.B|ui.MetaKeys.CTRL_COMMAND},SetItalicShortcutItem={id:SetRangeItalicCommand.id,description:"shortcut.sheet.set-italic",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.I|ui.MetaKeys.CTRL_COMMAND},SetUnderlineShortcutItem={id:SetRangeUnderlineCommand.id,description:"shortcut.sheet.set-underline",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.U|ui.MetaKeys.CTRL_COMMAND},SetStrikeThroughShortcutItem={id:SetRangeStrickThroughCommand.id,description:"shortcut.sheet.set-strike-through",group:"4_sheet-edit",preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.X|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND},ClearSelectionValueShortcutItem={id:sheets.ClearSelectionContentCommand.id,preconditions:__name(contextService=>whenSheetEditorFocused(contextService),"preconditions"),binding:ui.KeyCode.DELETE,mac:ui.KeyCode.BACKSPACE},ZoomInShortcutItem={id:ChangeZoomRatioCommand.id,description:"shortcut.sheet.zoom-in",binding:ui.KeyCode.EQUAL|ui.MetaKeys.CTRL_COMMAND,group:"3_sheet-view",preconditions:whenSheetEditorFocused,priority:1,staticParameters:{delta:.2}},PreventDefaultZoomInShortcutItem={id:core.NilCommand.id,binding:ui.KeyCode.EQUAL|ui.MetaKeys.CTRL_COMMAND},ZoomOutShortcutItem={id:ChangeZoomRatioCommand.id,description:"shortcut.sheet.zoom-out",binding:ui.KeyCode.MINUS|ui.MetaKeys.CTRL_COMMAND,group:"3_sheet-view",preconditions:whenSheetEditorFocused,priority:1,staticParameters:{delta:-.2}},PreventDefaultZoomOutShortcutItem={id:core.NilCommand.id,binding:ui.KeyCode.MINUS|ui.MetaKeys.CTRL_COMMAND},ResetZoomShortcutItem={id:ChangeZoomRatioCommand.id,description:"shortcut.sheet.reset-zoom",binding:ui.KeyCode.Digit0|ui.MetaKeys.CTRL_COMMAND,preconditions:whenSheetEditorFocused,group:"3_sheet-view",priority:1,staticParameters:{reset:!0}},PreventDefaultResetZoomShortcutItem={id:core.NilCommand.id,binding:ui.KeyCode.Digit0|ui.MetaKeys.CTRL_COMMAND};function CellBorderSelectorMenuItemFactory(accessor){const borderStyleManagerService=accessor.get(sheets.BorderStyleManagerService),disabled$=getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]});return{id:sheets.SetBorderBasicCommand.id,icon:new rxjs.Observable(subscriber=>{const defaultIcon="AllBorderSingle",borderManager=accessor.get(sheets.BorderStyleManagerService),disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a2;if(c.id!==sheets.SetBorderBasicCommand.id)return;const{type}=borderManager.getBorderInfo(),item=BORDER_LINE_CHILDREN.find(item2=>item2.value===type),icon=(_a2=item==null?void 0:item.icon)!=null?_a2:defaultIcon;subscriber.next(icon)});return subscriber.next(defaultIcon),disposable.dispose}),group:ui.MenuGroup.TOOLBAR_FORMAT,tooltip:"toolbar.border.main",positions:[ui.MenuPosition.TOOLBAR_START],type:ui.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:BORDER_PANEL_COMPONENT,hoverable:!1},value$:borderStyleManagerService.borderInfo$}],value$:borderStyleManagerService.borderInfo$,hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$}}__name(CellBorderSelectorMenuItemFactory,"CellBorderSelectorMenuItemFactory");function getSheetSelectionsDisabled$(accessor){const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),univerInstanceService=accessor.get(core.IUniverInstanceService),mergeCellController=accessor.get(sheets.MergeCellController),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET);return rxjs.combineLatest([selectionManagerService.selectionMoveEnd$,workbook$.pipe(rxjs.map(workbook=>{var _a2;return(_a2=workbook==null?void 0:workbook.getUnitId())!=null?_a2:""})),workbook$.pipe(rxjs.switchMap(workbook=>{var _a2;return(_a2=workbook==null?void 0:workbook.activeSheet$)!=null?_a2:rxjs.of(null)}))]).pipe(rxjs.map(([selection,unitId,sheet])=>{if(!sheet||!selection||selection.length===0)return!1;const subUnitId=sheet.getSheetId(),selectionRanges=selection.map(sel=>sel.range);if(mergeCellController.interceptor.fetchThroughInterceptors(sheets.MERGE_CELL_INTERCEPTOR_CHECK)(!1,selectionRanges))return!0;const subUnitRuleRange=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).map(rule=>rule.ranges).flat();if(selection.length<2){const range=selection[0].range;return subUnitRuleRange.some(ruleRange=>core.Rectangle.intersects(ruleRange,range)&&!core.Rectangle.contains(ruleRange,range))}for(let i=0;i<selection.length;i++)for(let j=i+1;j<selection.length;j++)if(core.Rectangle.intersects(selection[i].range,selection[j].range))return!0;return!1}))}__name(getSheetSelectionsDisabled$,"getSheetSelectionsDisabled$");function checkInHeaderRanges(selections,num,rType){const matchSelectionData=selections.find(sel=>{const range=sel.range,{startRow,endRow,startColumn,endColumn,rangeType}=range;return rangeType===core.RANGE_TYPE.ALL||rangeType===core.RANGE_TYPE.NORMAL?!1:rType===core.RANGE_TYPE.COLUMN&&core.RANGE_TYPE.COLUMN===rangeType?num>=startColumn&&num<=endColumn:rangeType===core.RANGE_TYPE.ROW&&num>=startRow&&num<=endRow});return matchSelectionData!=null?matchSelectionData:!1}__name(checkInHeaderRanges,"checkInHeaderRanges");function CellMergeMenuItemFactory(accessor){const editDisabled$=getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),selectionsHasCross$=getSheetSelectionsDisabled$(accessor);return{id:AddWorksheetMergeCommand.id,icon:"MergeAllSingle",tooltip:"toolbar.mergeCell.main",positions:[ui.MenuPosition.TOOLBAR_START],group:ui.MenuGroup.TOOLBAR_LAYOUT,type:ui.MenuItemType.SUBITEMS,hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:editDisabled$.pipe(rxjs.combineLatestWith(selectionsHasCross$),rxjs.map(([disable,hasCross])=>disable||hasCross))}}__name(CellMergeMenuItemFactory,"CellMergeMenuItemFactory");function CellMergeAllMenuItemFactory(accessor){return{id:AddWorksheetMergeAllCommand.id,type:ui.MenuItemType.BUTTON,title:"merge.all",icon:"MergeAllSingle",positions:[AddWorksheetMergeCommand.id],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CellMergeAllMenuItemFactory,"CellMergeAllMenuItemFactory");function CellMergeVerticalMenuItemFactory(accessor){return{id:AddWorksheetMergeVerticalCommand.id,type:ui.MenuItemType.BUTTON,title:"merge.vertical",icon:"VerticalIntegrationSingle",positions:[AddWorksheetMergeCommand.id],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CellMergeVerticalMenuItemFactory,"CellMergeVerticalMenuItemFactory");function CellMergeHorizontalMenuItemFactory(accessor){return{id:AddWorksheetMergeHorizontalCommand.id,type:ui.MenuItemType.BUTTON,title:"merge.horizontal",icon:"HorizontalMergeSingle",positions:[AddWorksheetMergeCommand.id],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CellMergeHorizontalMenuItemFactory,"CellMergeHorizontalMenuItemFactory");function CellMergeCancelMenuItemFactory(accessor){return{id:sheets.RemoveWorksheetMergeCommand.id,type:ui.MenuItemType.BUTTON,title:"merge.cancel",icon:"CancelMergeSingle",positions:[AddWorksheetMergeCommand.id],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CellMergeCancelMenuItemFactory,"CellMergeCancelMenuItemFactory");function getAddPermissionHidden$(accessor){const workbook$=accessor.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{if(!worksheet)return rxjs.of(!0);const rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),selectionManagerService=accessor.get(sheets.SheetsSelectionsService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,rangeProtectionRuleModel.ruleChange$,worksheetRuleModel.ruleChange$).pipe(rxjs.map(()=>{const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),subUnitRuleList=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId),selections=selectionManagerService.getCurrentSelections(),selectionsRanges=selections==null?void 0:selections.map(selection=>selection.range),ruleRanges=subUnitRuleList.map(rule=>rule.ranges).flat();if(!selectionsRanges)return!1;const worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId);return worksheetRule!=null&&worksheetRule.permissionId&&(worksheetRule!=null&&worksheetRule.name)?!0:selectionsRanges==null?void 0:selectionsRanges.some(selectionRange=>ruleRanges.some(ruleRange=>core.Rectangle.intersects(selectionRange,ruleRange)))}))})):rxjs.of(!0)))}__name(getAddPermissionHidden$,"getAddPermissionHidden$");function getEditPermissionHidden$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),rangeRuleModel=accessor.get(sheets.RangeProtectionRuleModel),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{if(!worksheet)return rxjs.of(!0);const rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),selectionManagerService=accessor.get(sheets.SheetsSelectionsService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,rangeProtectionRuleModel.ruleChange$,worksheetRuleModel.ruleChange$).pipe(rxjs.map(()=>{var _a2;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),subUnitRuleList=rangeRuleModel.getSubunitRuleList(unitId,subUnitId),selectionRanges=(_a2=selectionManagerService.getCurrentSelections())==null?void 0:_a2.map(selection=>selection.range),ruleRanges=subUnitRuleList.map(rule=>rule.ranges).flat();if(!(selectionRanges!=null&&selectionRanges.length)||selectionRanges.length>1)return!0;const selectedRange=selectionRanges[0],worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId);return worksheetRule!=null&&worksheetRule.permissionId&&(worksheetRule!=null&&worksheetRule.name)?!1:ruleRanges.filter(ruleRange=>core.Rectangle.intersects(ruleRange,selectedRange)).length!==1}))})):rxjs.of(!0)))}__name(getEditPermissionHidden$,"getEditPermissionHidden$");function getPermissionDisableBase$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a2;if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),selectionProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),permission$=(_a2=permissionService.composePermission$([new sheets.WorkbookManageCollaboratorPermission(unitId).id,new sheets.WorkbookEditablePermission(unitId).id]).pipe(rxjs.map(permissions=>permissions.every(permission=>permission.value))))!=null?_a2:rxjs.of(!1),ruleChange$=rxjs.merge(selectionProtectionRuleModel.ruleChange$,worksheetProtectionRuleModel.ruleChange$).pipe(rxjs.startWith(null));return rxjs.combineLatest([permission$,ruleChange$,selectionManagerService.selectionMoveEnd$]).pipe(rxjs.map(([permission,_2,__2])=>{if(!permission)return!0;const selections=selectionManagerService.getCurrentSelections(),selectionRanges=selections==null?void 0:selections.map(selection=>selection.range);return selectionRanges!=null&&selectionRanges.length?selectionRanges.length>1:!1}))})):rxjs.of(!0)))}__name(getPermissionDisableBase$,"getPermissionDisableBase$");function getAddPermissionDisableBase$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a2;if(!worksheet)return rxjs.of(!0);const focusingDrawing$=accessor.get(core.IContextService).subscribeContextValue$(core.FOCUSING_COMMON_DRAWINGS).pipe(rxjs.startWith(!1)),unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),selectionProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),permission$=(_a2=permissionService.composePermission$([new sheets.WorkbookManageCollaboratorPermission(unitId).id,new sheets.WorkbookEditablePermission(unitId).id]).pipe(rxjs.map(permissions=>permissions.every(permission=>permission.value))))!=null?_a2:rxjs.of(!1),ruleChange$=rxjs.merge(selectionProtectionRuleModel.ruleChange$,worksheetProtectionRuleModel.ruleChange$).pipe(rxjs.startWith(null));return rxjs.combineLatest([permission$,ruleChange$,selectionManagerService.selectionMoveEnd$,focusingDrawing$]).pipe(rxjs.map(([permission,_2,__2,focus])=>{if(!permission||focus)return!0;const selections=selectionManagerService.getCurrentSelections(),selectionRanges=selections==null?void 0:selections.map(selection=>selection.range);if(!(selectionRanges!=null&&selectionRanges.length))return!0;const worksheetRule=worksheetProtectionRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId&&(worksheetRule!=null&&worksheetRule.name))return!0;const subunitRuleList=selectionProtectionRuleModel.getSubunitRuleList(unitId,subUnitId);return selectionRanges==null?void 0:selectionRanges.some(selectionRange=>subunitRuleList.some(rule=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(selectionRange,ruleRange))))}))})):rxjs.of(!0)))}__name(getAddPermissionDisableBase$,"getAddPermissionDisableBase$");function getAddPermissionFromSheetBarDisable$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a2;if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),selectionProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),permission$=(_a2=permissionService.composePermission$([new sheets.WorkbookManageCollaboratorPermission(unitId).id,new sheets.WorkbookEditablePermission(unitId).id]).pipe(rxjs.map(permissions=>permissions.every(permission=>permission.value))))!=null?_a2:rxjs.of(!1),ruleChange$=rxjs.merge(selectionProtectionRuleModel.ruleChange$,worksheetProtectionRuleModel.ruleChange$).pipe(rxjs.startWith(null));return rxjs.combineLatest([permission$,ruleChange$]).pipe(rxjs.map(([permission,_2])=>{var _a3;if(!permission)return!0;const worksheetRule=worksheetProtectionRuleModel.getRule(unitId,subUnitId);return worksheetRule!=null&&worksheetRule.permissionId&&(worksheetRule!=null&&worksheetRule.name)?!0:((_a3=selectionProtectionRuleModel.getSubunitRuleList(unitId,subUnitId))==null?void 0:_a3.filter(item=>(item==null?void 0:item.permissionId)&&(item==null?void 0:item.name))).length>0}))})):rxjs.of(!0)))}__name(getAddPermissionFromSheetBarDisable$,"getAddPermissionFromSheetBarDisable$");function getRemovePermissionFromSheetBarDisable$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a2;if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),permission$=(_a2=permissionService.composePermission$([new sheets.WorkbookManageCollaboratorPermission(unitId).id,new sheets.WorkbookEditablePermission(unitId).id]).pipe(rxjs.map(permissions=>permissions.every(permission=>permission.value))))!=null?_a2:rxjs.of(!1);return rxjs.combineLatest([permission$,worksheetProtectionRuleModel.ruleChange$.pipe(rxjs.startWith(null))]).pipe(rxjs.map(([permission,_2])=>{if(!permission)return!0;const worksheetPermissionRule=worksheetProtectionRuleModel.getRule(unitId,subUnitId);return!(worksheetPermissionRule!=null&&worksheetPermissionRule.permissionId&&(worksheetPermissionRule!=null&&worksheetPermissionRule.name))}))})):rxjs.of(!0)))}__name(getRemovePermissionFromSheetBarDisable$,"getRemovePermissionFromSheetBarDisable$");function getSetPermissionFromSheetBarDisable$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a2;if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),selectionProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),permission$=(_a2=permissionService.composePermission$([new sheets.WorkbookManageCollaboratorPermission(unitId).id,new sheets.WorkbookEditablePermission(unitId).id]).pipe(rxjs.map(permissions=>permissions.every(permission=>permission.value))))!=null?_a2:rxjs.of(!1),worksheetRuleChange$=worksheetProtectionRuleModel.ruleChange$.pipe(rxjs.startWith(null)),selectionRuleChange$=selectionProtectionRuleModel.ruleChange$.pipe(rxjs.startWith(null));return rxjs.combineLatest([permission$,worksheetRuleChange$,selectionRuleChange$]).pipe(rxjs.map(([permission,_2,__2])=>{if(!permission)return!0;const subUnitId=worksheet.getSheetId(),worksheetRule=worksheetProtectionRuleModel.getRule(unitId,subUnitId),selectionRuleList=selectionProtectionRuleModel.getSubunitRuleList(unitId,subUnitId);return!(worksheetRule||selectionRuleList.length)}))})):rxjs.of(!0)))}__name(getSetPermissionFromSheetBarDisable$,"getSetPermissionFromSheetBarDisable$");function getRemovePermissionDisable$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a2;if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),selectionProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),permission$=(_a2=permissionService.composePermission$([new sheets.WorkbookManageCollaboratorPermission(unitId).id,new sheets.WorkbookEditablePermission(unitId).id]).pipe(rxjs.map(permissions=>permissions.every(permission=>permission.value))))!=null?_a2:rxjs.of(!1),changes$=rxjs.merge(selectionProtectionRuleModel.ruleChange$,worksheetProtectionRuleModel.ruleChange$).pipe(rxjs.startWith(null));return rxjs.combineLatest([changes$,permission$]).pipe(rxjs.map(([_2,permission])=>{if(!permission)return!0;const selections=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections(),selectionRanges=selections==null?void 0:selections.map(selection=>selection.range);if(!(selectionRanges!=null&&selectionRanges.length)||selectionRanges.length>1)return!0;const selectionRange=selectionRanges[0],worksheetRule=worksheetProtectionRuleModel.getRule(unitId,subUnitId);return!(worksheetRule!=null&&worksheetRule.permissionId&&(worksheetRule!=null&&worksheetRule.name)||selectionProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).map(rule=>rule.ranges).flat().some(ruleRange=>core.Rectangle.intersects(selectionRange,ruleRange)))}))})):rxjs.of(!0)))}__name(getRemovePermissionDisable$,"getRemovePermissionDisable$");function getViewPermissionDisable$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),permissionService=accessor.get(core.IPermissionService),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([workbook$,userManagerService.currentUser$]).pipe(rxjs.switchMap(([workbook,_])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{var _a2,_b2;if(!worksheet)return rxjs.of(!0);const unitId=workbook.getUnitId();return((_b2=(_a2=permissionService.getPermissionPoint$(new sheets.WorkbookEditablePermission(unitId).id))==null?void 0:_a2.pipe(rxjs.map(e=>!!e.value)))!=null?_b2:rxjs.of(!1)).pipe(rxjs.map(permission=>!permission))})):rxjs.of(!0)))}__name(getViewPermissionDisable$,"getViewPermissionDisable$");const SHEET_PERMISSION_CONTEXT_MENU_ID="sheet.contextMenu.permission";function sheetPermissionToolbarMenuFactory(accessor){return{id:AddRangeProtectionFromToolbarCommand.id,type:ui.MenuItemType.BUTTON,positions:[ui.MenuPosition.TOOLBAR_START],group:ui.MenuGroup.TOOLBAR_OTHERS,icon:permissionMenuIconKey,tooltip:"permission.toolbarMenu",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getAddPermissionDisableBase$(accessor)}}__name(sheetPermissionToolbarMenuFactory,"sheetPermissionToolbarMenuFactory");function sheetPermissionContextMenuFactory(accessor){return{id:SHEET_PERMISSION_CONTEXT_MENU_ID,group:ui.MenuGroup.CONTEXT_MENU_LAYOUT,type:ui.MenuItemType.SUBITEMS,title:"rightClick.protectRange",icon:permissionLockIconKey,positions:[ui.MenuPosition.CONTEXT_MENU,SheetMenuPosition.ROW_HEADER_CONTEXT_MENU,SheetMenuPosition.COL_HEADER_CONTEXT_MENU],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionContextMenuFactory,"sheetPermissionContextMenuFactory");function sheetPermissionAddProtectContextMenuFactory(accessor){return{id:AddRangeProtectionFromContextMenuCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.turnOnProtectRange",positions:[SHEET_PERMISSION_CONTEXT_MENU_ID],hidden$:getAddPermissionHidden$(accessor),disabled$:getAddPermissionDisableBase$(accessor)}}__name(sheetPermissionAddProtectContextMenuFactory,"sheetPermissionAddProtectContextMenuFactory");function sheetPermissionEditProtectContextMenuFactory(accessor){return{id:SetRangeProtectionFromContextMenuCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.editProtectRange",positions:[SHEET_PERMISSION_CONTEXT_MENU_ID],hidden$:getEditPermissionHidden$(accessor),disabled$:getPermissionDisableBase$(accessor)}}__name(sheetPermissionEditProtectContextMenuFactory,"sheetPermissionEditProtectContextMenuFactory");function sheetPermissionRemoveProtectContextMenuFactory(accessor){return{id:DeleteRangeProtectionFromContextMenuCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.removeProtectRange",positions:[SHEET_PERMISSION_CONTEXT_MENU_ID],disabled$:getRemovePermissionDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionRemoveProtectContextMenuFactory,"sheetPermissionRemoveProtectContextMenuFactory");function sheetPermissionViewAllProtectRuleContextMenuFactory(accessor){return{id:ViewSheetPermissionFromContextMenuCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.viewAllProtectArea",positions:[SHEET_PERMISSION_CONTEXT_MENU_ID],disabled$:getViewPermissionDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionViewAllProtectRuleContextMenuFactory,"sheetPermissionViewAllProtectRuleContextMenuFactory");function sheetPermissionProtectSheetInSheetBarMenuFactory(accessor){return{id:AddRangeProtectionFromSheetBarCommand.id,type:ui.MenuItemType.BUTTON,positions:[SheetMenuPosition.SHEET_BAR],title:"sheetConfig.addProtectSheet",disabled$:getAddPermissionFromSheetBarDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionProtectSheetInSheetBarMenuFactory,"sheetPermissionProtectSheetInSheetBarMenuFactory");function sheetPermissionRemoveProtectionSheetBarMenuFactory(accessor){return{id:DeleteWorksheetProtectionFormSheetBarCommand.id,type:ui.MenuItemType.BUTTON,positions:[SheetMenuPosition.SHEET_BAR],title:"sheetConfig.removeProtectSheet",disabled$:getRemovePermissionFromSheetBarDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionRemoveProtectionSheetBarMenuFactory,"sheetPermissionRemoveProtectionSheetBarMenuFactory");function sheetPermissionChangeSheetPermissionSheetBarMenuFactory(accessor){return{id:ChangeSheetProtectionFromSheetBarCommand.id,type:ui.MenuItemType.BUTTON,positions:[SheetMenuPosition.SHEET_BAR],title:"sheetConfig.changeSheetPermission",disabled$:getSetPermissionFromSheetBarDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionChangeSheetPermissionSheetBarMenuFactory,"sheetPermissionChangeSheetPermissionSheetBarMenuFactory");function sheetPermissionViewAllProtectRuleSheetBarMenuFactory(accessor){return{id:ViewSheetPermissionFromSheetBarCommand.id,type:ui.MenuItemType.BUTTON,positions:[SheetMenuPosition.SHEET_BAR],title:"sheetConfig.viewAllProtectArea",disabled$:getViewPermissionDisable$(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(sheetPermissionViewAllProtectRuleSheetBarMenuFactory,"sheetPermissionViewAllProtectRuleSheetBarMenuFactory");var __defProp$G=Object.defineProperty,__getOwnPropDesc$G=Object.getOwnPropertyDescriptor,__decorateClass$G=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$G(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$G(target,key,result),result},"__decorateClass$G"),__decorateParam$G=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$G");const DefaultSheetUiConfig={};exports2.SheetUIController=(_o=class extends core.Disposable{constructor(_config,_injector,_componentManager,_layoutService,_commandService,_shortcutService,_menuService,_uiPartsService){super(),this._config=_config,this._injector=_injector,this._componentManager=_componentManager,this._layoutService=_layoutService,this._commandService=_commandService,this._shortcutService=_shortcutService,this._menuService=_menuService,this._uiPartsService=_uiPartsService,this._init()}_init(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts(),this._initWorkbenchParts(),this._initFocusHandler()}_initCustomComponents(){const componentManager=this._componentManager;this.disposeWithMe(componentManager.register(MENU_ITEM_INPUT_COMPONENT,MenuItemInput)),this.disposeWithMe(componentManager.register(BORDER_PANEL_COMPONENT,BorderPanel)),this.disposeWithMe(componentManager.register(COLOR_PICKER_COMPONENT,design.ColorPicker)),this.disposeWithMe(componentManager.register(FONT_FAMILY_COMPONENT,ui.FontFamily)),this.disposeWithMe(componentManager.register(FONT_FAMILY_ITEM_COMPONENT,ui.FontFamilyItem)),this.disposeWithMe(componentManager.register(FONT_SIZE_COMPONENT,ui.FontSize)),this.disposeWithMe(componentManager.register(DEFINED_NAME_CONTAINER,DefinedNameContainer))}_initCommands(){[AddWorksheetMergeAllCommand,AddWorksheetMergeCommand,AddWorksheetMergeHorizontalCommand,AddWorksheetMergeVerticalCommand,ChangeZoomRatioCommand,ExpandSelectionCommand,MoveSelectionCommand,MoveSelectionEnterAndTabCommand,RenameSheetOperation,RemoveSheetConfirmCommand,RemoveRowConfirmCommand,RemoveColConfirmCommand,HideRowConfirmCommand,HideColConfirmCommand,ScrollCommand,ScrollToCellCommand,SelectAllCommand,SetActivateCellEditOperation,sheets.SetBoldCommand,SetCellEditVisibleArrowOperation,SetCellEditVisibleOperation,SetCellEditVisibleWithF2Operation,SetRangeBoldCommand,SetRangeItalicCommand,SetRangeUnderlineCommand,SetRangeStrickThroughCommand,SetRangeSubscriptCommand,SetRangeSuperscriptCommand,SetRangeFontSizeCommand,SetRangeFontFamilyCommand,SetRangeTextColorCommand,sheets.SetItalicCommand,sheets.SetStrikeThroughCommand,sheets.SetFontFamilyCommand,sheets.SetFontSizeCommand,SetFormatPainterOperation,SetInfiniteFormatPainterCommand,SetOnceFormatPainterCommand,ApplyFormatPainterCommand,SetScrollOperation,SetScrollRelativeCommand,SetSelectionFrozenCommand,SetRowFrozenCommand,SetColumnFrozenCommand,ScrollToRangeOperation,CancelFrozenCommand,sheets.SetUnderlineCommand,SetZoomRatioCommand,SetZoomRatioOperation,ShowMenuListCommand,RefillCommand,InsertRangeMoveDownConfirmCommand,DeleteRangeMoveUpConfirmCommand,InsertRangeMoveRightConfirmCommand,DeleteRangeMoveLeftConfirmCommand,SidebarDefinedNameOperation,AutoFillCommand,AutoClearContentCommand,SheetPermissionOpenPanelOperation,SheetPermissionOpenDialogOperation,AddRangeProtectionFromToolbarCommand,AddRangeProtectionFromContextMenuCommand,ViewSheetPermissionFromContextMenuCommand,AddRangeProtectionFromSheetBarCommand,ViewSheetPermissionFromSheetBarCommand,ChangeSheetProtectionFromSheetBarCommand,DeleteRangeProtectionFromContextMenuCommand,SetRangeProtectionFromContextMenuCommand,AddWorksheetProtectionCommand,DeleteWorksheetProtectionCommand,SetWorksheetProtectionCommand,DeleteWorksheetProtectionFormSheetBarCommand,SetProtectionCommand].forEach(c=>{this.disposeWithMe(this._commandService.registerCommand(c))})}_initMenus(){const{menu={}}=this._config;[CopyMenuItemFactory,PasteMenuItemFactory,PasteSpacialMenuItemFactory,PasteValueMenuItemFactory,PasteFormatMenuItemFactory,PasteColWidthMenuItemFactory,PasteBesidesBorderMenuItemFactory,ClearSelectionContentMenuItemFactory,ClearSelectionFormatMenuItemFactory,ClearSelectionAllMenuItemFactory,ClearSelectionMenuItemFactory,ColInsertMenuItemFactory,RowInsertMenuItemFactory,CellInsertMenuItemFactory,InsertRowBeforeMenuItemFactory,InsertRowAfterMenuItemFactory,InsertColBeforeMenuItemFactory,InsertColAfterMenuItemFactory,RemoveRowMenuItemFactory,HideRowMenuItemFactory,ShowRowMenuItemFactory,HideColMenuItemFactory,ShowColMenuItemFactory,RemoveColMenuItemFactory,SetRowHeightMenuItemFactory,FitContentMenuItemFactory,SetColWidthMenuItemFactory,DeleteRangeMenuItemFactory,DeleteRangeMoveLeftMenuItemFactory,DeleteRangeMoveUpMenuItemFactory,InsertRangeMoveRightMenuItemFactory,InsertRangeMoveDownMenuItemFactory,FrozenMenuItemFactory,FrozenRowMenuItemFactory,FrozenColMenuItemFactory,CancelFrozenMenuItemFactory,SheetFrozenMenuItemFactory,SheetFrozenHeaderMenuItemFactory,FormatPainterMenuItemFactory,BoldMenuItemFactory,ItalicMenuItemFactory,UnderlineMenuItemFactory,StrikeThroughMenuItemFactory,FontFamilySelectorMenuItemFactory,FontSizeSelectorMenuItemFactory,ResetTextColorMenuItemFactory,TextColorSelectorMenuItemFactory,ResetBackgroundColorMenuItemFactory,BackgroundColorSelectorMenuItemFactory,CellBorderSelectorMenuItemFactory,CellMergeMenuItemFactory,CellMergeAllMenuItemFactory,CellMergeVerticalMenuItemFactory,CellMergeHorizontalMenuItemFactory,CellMergeCancelMenuItemFactory,HorizontalAlignMenuItemFactory,VerticalAlignMenuItemFactory,WrapTextMenuItemFactory,TextRotateMenuItemFactory,DeleteSheetMenuItemFactory,CopySheetMenuItemFactory,RenameSheetMenuItemFactory,ChangeColorSheetMenuItemFactory,HideSheetMenuItemFactory,ShowMenuItemFactory,sheetPermissionContextMenuFactory,sheetPermissionAddProtectContextMenuFactory,sheetPermissionEditProtectContextMenuFactory,sheetPermissionRemoveProtectContextMenuFactory,sheetPermissionViewAllProtectRuleContextMenuFactory,sheetPermissionProtectSheetInSheetBarMenuFactory,sheetPermissionRemoveProtectionSheetBarMenuFactory,sheetPermissionChangeSheetPermissionSheetBarMenuFactory,sheetPermissionViewAllProtectRuleSheetBarMenuFactory,sheetPermissionToolbarMenuFactory].forEach(factory=>{this.disposeWithMe(this._menuService.addMenuItem(this._injector.invoke(factory),menu))})}_initShortcuts(){[MoveSelectionDownShortcutItem,MoveSelectionUpShortcutItem,MoveSelectionLeftShortcutItem,MoveSelectionRightShortcutItem,MoveSelectionTabShortcutItem,MoveSelectionTabLeftShortcutItem,MoveSelectionEnterShortcutItem,MoveSelectionEnterUpShortcutItem,MoveSelectionEndDownShortcutItem,MoveSelectionEndUpShortcutItem,MoveSelectionEndLeftShortcutItem,MoveSelectionEndRightShortcutItem,ExpandSelectionDownShortcutItem,ExpandSelectionUpShortcutItem,ExpandSelectionLeftShortcutItem,ExpandSelectionRightShortcutItem,ExpandSelectionEndDownShortcutItem,ExpandSelectionEndUpShortcutItem,ExpandSelectionEndLeftShortcutItem,ExpandSelectionEndRightShortcutItem,SelectAllShortcutItem,ZoomInShortcutItem,ZoomOutShortcutItem,ResetZoomShortcutItem,PreventDefaultResetZoomShortcutItem,PreventDefaultZoomInShortcutItem,PreventDefaultZoomOutShortcutItem,SetBoldShortcutItem,SetItalicShortcutItem,SetUnderlineShortcutItem,SetStrikeThroughShortcutItem,ClearSelectionValueShortcutItem,...generateArrowSelectionShortCutItem(),EditorCursorEnterShortcut,StartEditWithF2Shortcut,EditorCursorTabShortcut,EditorBreakLineShortcut,EditorDeleteLeftShortcut,EditorDeleteLeftShortcutInActive,EditorCursorEscShortcut,SetRowHiddenShortcutItem,SetColHiddenShortcutItem].forEach(item=>{this.disposeWithMe(this._shortcutService.registerShortcut(item))})}_initWorkbenchParts(){const uiController=this._uiPartsService,injector=this._injector;this.disposeWithMe(uiController.registerComponent(ui.BuiltInUIPart.HEADER,()=>core.connectInjector(RenderSheetHeader,injector))),this.disposeWithMe(uiController.registerComponent(ui.BuiltInUIPart.FOOTER,()=>core.connectInjector(RenderSheetFooter,injector))),this.disposeWithMe(uiController.registerComponent(ui.BuiltInUIPart.CONTENT,()=>core.connectInjector(RenderSheetContent,injector)))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(core.UniverInstanceType.UNIVER_SHEET,_unitId=>{this._injector.get(engineRender.ITextSelectionRenderManager).focus()}))}},__name(_o,"SheetUIController"),_o),exports2.SheetUIController=__decorateClass$G([core.OnLifecycle(core.LifecycleStages.Ready,exports2.SheetUIController),__decorateParam$G(1,core.Inject(core.Injector)),__decorateParam$G(2,core.Inject(ui.ComponentManager)),__decorateParam$G(3,ui.ILayoutService),__decorateParam$G(4,core.ICommandService),__decorateParam$G(5,ui.IShortcutService),__decorateParam$G(6,ui.IMenuService),__decorateParam$G(7,ui.IUIPartsService)],exports2.SheetUIController);var __defProp$F=Object.defineProperty,__getOwnPropDesc$F=Object.getOwnPropertyDescriptor,__decorateClass$F=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$F(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$F(target,key,result),result},"__decorateClass$F"),__decorateParam$F=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$F");exports2.SheetSelectionRenderService=(_p=class extends BaseSelectionRenderService{constructor(_context,injector,themeService,shortcutService,renderManagerService,_selectionManagerService,_logService,_commandService,_contextService,_sheetSkeletonManagerService){super(injector,themeService,shortcutService,renderManagerService);__publicField(this,"_workbookSelections");__publicField(this,"_renderDisposable",null);this._context=_context,this._selectionManagerService=_selectionManagerService,this._logService=_logService,this._commandService=_commandService,this._contextService=_contextService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._workbookSelections=_selectionManagerService.getWorkbookSelections(this._context.unitId),this._init()}_init(){const sheetObject=this._getSheetObject();this._initEventListeners(sheetObject),this._initSelectionChangeListener(),this._initThemeChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener()}_initEventListeners(sheetObject){const{spreadsheetRowHeader,spreadsheetColumnHeader,spreadsheet,spreadsheetLeftTopPlaceholder}=sheetObject,{scene}=this._context;this.disposeWithMe(spreadsheet==null?void 0:spreadsheet.onPointerDown$.subscribeEvent((evt,state)=>{this._normalSelectionDisabled()||(this._onPointerDown(evt,spreadsheet.zIndex+1,core.RANGE_TYPE.NORMAL,this._getActiveViewport(evt)),evt.button!==2&&state.stopPropagation())})),this.disposeWithMe(spreadsheetRowHeader==null?void 0:spreadsheetRowHeader.onPointerDown$.subscribeEvent((evt,state)=>{if(this._normalSelectionDisabled())return;const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{row}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),row,core.RANGE_TYPE.ROW)||(this._onPointerDown(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.ROW,this._getActiveViewport(evt),engineRender.ScrollTimerType.Y),evt.button!==2&&state.stopPropagation())})),this.disposeWithMe(spreadsheetColumnHeader==null?void 0:spreadsheetColumnHeader.onPointerDown$.subscribeEvent((evt,state)=>{if(this._normalSelectionDisabled())return;const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),column,core.RANGE_TYPE.COLUMN)||(this._onPointerDown(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.COLUMN,this._getActiveViewport(evt),engineRender.ScrollTimerType.X),evt.button!==2&&state.stopPropagation())})),this.disposeWithMe(spreadsheetLeftTopPlaceholder==null?void 0:spreadsheetLeftTopPlaceholder.onPointerDown$.subscribeEvent((evt,state)=>{if(this._normalSelectionDisabled())return;this._reset();const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,selectionWithStyle=getAllSelection(skeleton),selectionData=attachSelectionWithCoord(selectionWithStyle,skeleton);this._addSelectionControlBySelectionData(selectionData),this.refreshSelectionMoveStart(),evt.button!==2&&state.stopPropagation()}))}_initThemeChangeListener(){this.disposeWithMe(this._themeService.currentTheme$.subscribe(()=>{this._resetStyle();const param=this._workbookSelections.getCurrentSelections();param&&this._refreshSelectionControl(param)}))}_normalSelectionDisabled(){return this._contextService.getContextValue(sheets.DISABLE_NORMAL_SELECTIONS)}_initSelectionChangeListener(){this.disposeWithMe(this._workbookSelections.selectionMoveEnd$.subscribe(params=>{this._reset();for(const selectionWithStyle of params){const selectionData=attachSelectionWithCoord(selectionWithStyle,this._skeleton);this._addSelectionControlBySelectionData(selectionData)}}))}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(params=>this._updateSelections(params,sheets.SelectionMoveType.MOVE_START))),this.disposeWithMe(this.selectionMoving$.subscribe(params=>this._updateSelections(params,sheets.SelectionMoveType.MOVING))),this.disposeWithMe(this._contextService.subscribeContextValue$(sheets.DISABLE_NORMAL_SELECTIONS).pipe(rxjs.startWith(!1),rxjs.distinctUntilChanged()).subscribe(disabled=>{var _a2;disabled?((_a2=this._renderDisposable)==null||_a2.dispose(),this._renderDisposable=null,this._reset()):this._renderDisposable=core.toDisposable(this.selectionMoveEnd$.subscribe(params=>this._updateSelections(params,sheets.SelectionMoveType.MOVE_END)))}))}_updateSelections(selectionDataWithStyleList,type){const workbook=this._context.unit,unitId=workbook.getUnitId(),sheetId=workbook.getActiveSheet().getSheetId();selectionDataWithStyleList.length!==0&&this._commandService.executeCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId:sheetId,type,selections:selectionDataWithStyleList.map(selectionDataWithStyle=>sheets.convertSelectionDataToRange(selectionDataWithStyle))})}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{var _a2,_b2;if(param==null){this._logService.error("[SelectionRenderService]: should not receive null!");return}const unitId=this._context.unitId,{sheetId,skeleton}=param,{scene}=this._context,viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),prevSheetId=(_b2=(_a2=this._skeleton)==null?void 0:_a2.worksheet)==null?void 0:_b2.getSheetId();if(this._changeRuntime(skeleton,scene,viewportMain),this._normalSelectionDisabled())return;prevSheetId!==skeleton.worksheet.getSheetId()&&(this._workbookSelections.getCurrentLastSelection()||this._commandService.syncExecuteCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId:sheetId,selections:[getTopLeftSelection(skeleton)]}));const currentSelections=this._workbookSelections.getCurrentSelections();currentSelections!=null&&this._refreshSelectionControl(currentSelections)}))}_getActiveViewport(evt){const sheetObject=this._getSheetObject();return sheetObject==null?void 0:sheetObject.scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([evt.offsetX,evt.offsetY]))}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}},__name(_p,"SheetSelectionRenderService"),_p),exports2.SheetSelectionRenderService=__decorateClass$F([__decorateParam$F(1,core.Inject(core.Injector)),__decorateParam$F(2,core.Inject(core.ThemeService)),__decorateParam$F(3,ui.IShortcutService),__decorateParam$F(4,engineRender.IRenderManagerService),__decorateParam$F(5,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$F(6,core.ILogService),__decorateParam$F(7,core.ICommandService),__decorateParam$F(8,core.IContextService),__decorateParam$F(9,core.Inject(exports2.SheetSkeletonManagerService))],exports2.SheetSelectionRenderService);var __defProp$E=Object.defineProperty,__getOwnPropDesc$E=Object.getOwnPropertyDescriptor,__decorateClass$E=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$E(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$E(target,key,result),result},"__decorateClass$E"),__decorateParam$E=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$E");let ActiveWorksheetController=(_q=class extends core.Disposable{constructor(_commandService,_univerInstanceService){super();__publicField(this,"_previousSheetIndex",-1);this._commandService=_commandService,this._univerInstanceService=_univerInstanceService,this.disposeWithMe(this._commandService.beforeCommandExecuted(command=>{if(command.id===sheets.RemoveSheetMutation.id)return this._beforeAdjustActiveSheetOnRemoveSheet(command)})),this.disposeWithMe(this._commandService.onCommandExecuted((command,options)=>{if(command.id===sheets.RemoveSheetMutation.id)return this._adjustActiveSheetOnRemoveSheet(command);if(command.id===sheets.SetWorksheetHideMutation.id&&command.params.hidden)return this._adjustActiveSheetOnHideSheet(command);if(!(options!=null&&options.fromCollab)){if(command.id===sheets.InsertSheetMutation.id)return this._adjustActiveSheetOnInsertSheet(command);if(command.id===sheets.SetWorksheetHideMutation.id&&!command.params.hidden)return this._adjustActiveSheetOnShowSheet(command)}}))}_adjustActiveSheetOnHideSheet(mutation){var _a2;const{unitId,subUnitId}=mutation.params,workbook=this._univerInstanceService.getUniverSheetInstance(unitId);if(!workbook||((_a2=workbook.getActiveSheet())==null?void 0:_a2.getSheetId())!==subUnitId)return;const activeIndex=workbook.getActiveSheetIndex(),nextId=findTheNextUnhiddenSheet(workbook,activeIndex);this._switchToNextSheet(unitId,nextId)}_beforeAdjustActiveSheetOnRemoveSheet(mutation){const{unitId,subUnitId}=mutation.params,workbook=this._univerInstanceService.getUniverSheetInstance(unitId);if(!workbook)return;const worksheet=workbook.getSheetBySheetId(subUnitId);worksheet&&(this._previousSheetIndex=workbook.getSheetIndex(worksheet))}_adjustActiveSheetOnRemoveSheet(mutation){if(this._previousSheetIndex===-1)return;const{unitId}=mutation.params,workbook=this._univerInstanceService.getUniverSheetInstance(unitId);if(!workbook)return;if(workbook.getActiveSheet().getSheetId()===mutation.params.subUnitId){const previousIndex=this._previousSheetIndex,nextIndex=previousIndex>=1?previousIndex-1:0,nextId=findTheNextUnhiddenSheet(workbook,nextIndex);this._switchToNextSheet(unitId,nextId)}}_adjustActiveSheetOnInsertSheet(mutation){const{unitId,sheet}=mutation.params;this._switchToNextSheet(unitId,sheet.id)}_adjustActiveSheetOnShowSheet(mutation){const{unitId,subUnitId}=mutation.params;this._switchToNextSheet(unitId,subUnitId)}_switchToNextSheet(unitId,subUnitId){this._commandService.executeCommand(sheets.SetWorksheetActiveOperation.id,{unitId,subUnitId})}},__name(_q,"ActiveWorksheetController"),_q);ActiveWorksheetController=__decorateClass$E([core.OnLifecycle(core.LifecycleStages.Ready,ActiveWorksheetController),__decorateParam$E(0,core.ICommandService),__decorateParam$E(1,core.IUniverInstanceService)],ActiveWorksheetController);function findTheNextUnhiddenSheet(workbook,startIndex){const countOfSheets=workbook.getSheetSize();for(let i=startIndex;i>-1;i--){const sheet=workbook.getSheetByIndex(i);if(!sheet.getConfig().hidden)return sheet.getSheetId()}for(let i=startIndex;i<countOfSheets;i++){const sheet=workbook.getSheetByIndex(i);if(!sheet.getConfig().hidden)return sheet.getSheetId()}throw new Error("[ActiveWorksheetController]: could not find the next unhidden sheet! Collaboration error perhaps.")}__name(findTheNextUnhiddenSheet,"findTheNextUnhiddenSheet");var __defProp$D=Object.defineProperty,__getOwnPropDesc$D=Object.getOwnPropertyDescriptor,__decorateClass$D=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$D(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$D(target,key,result),result},"__decorateClass$D"),__decorateParam$D=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$D");exports2.AutoHeightController=(_r=class extends core.Disposable{constructor(_renderManagerService,_injector,_sheetInterceptorService,_selectionManagerService,_univerInstanceService){super(),this._renderManagerService=_renderManagerService,this._injector=_injector,this._sheetInterceptorService=_sheetInterceptorService,this._selectionManagerService=_selectionManagerService,this._univerInstanceService=_univerInstanceService,this._initialize()}getUndoRedoParamsOfAutoHeight(ranges){var _a2;const{_univerInstanceService:univerInstanceService,_injector:injector}=this,workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),unitId=workbook.getUnitId(),subUnitId=(_a2=workbook.getActiveSheet())==null?void 0:_a2.getSheetId(),sheetSkeletonService=this._renderManagerService.getRenderById(unitId).with(exports2.SheetSkeletonManagerService);if(!subUnitId||!sheetSkeletonService.getCurrent())return{redos:[],undos:[]};const{skeleton}=sheetSkeletonService.getCurrent(),rowsAutoHeightInfo=skeleton.calculateAutoHeightInRange(ranges),redoParams={subUnitId,unitId,rowsAutoHeightInfo},undoParams=sheets.SetWorksheetRowAutoHeightMutationFactory(injector,redoParams);return{undos:[{id:sheets.SetWorksheetRowAutoHeightMutation.id,params:undoParams}],redos:[{id:sheets.SetWorksheetRowAutoHeightMutation.id,params:redoParams}]}}_initialize(){const{_sheetInterceptorService:sheetInterceptorService,_selectionManagerService:selectionManagerService}=this;this.disposeWithMe(sheetInterceptorService.interceptCommand({getMutations:__name(command=>command.id!==sheets.SetRangeValuesCommand.id?{redos:[],undos:[]}:this.getUndoRedoParamsOfAutoHeight(command.params.range),"getMutations")})),this.disposeWithMe(sheetInterceptorService.interceptCommand({getMutations:__name(command=>command.id!==sheets.SetWorksheetRowIsAutoHeightCommand.id?{redos:[],undos:[]}:this.getUndoRedoParamsOfAutoHeight(command.params.ranges),"getMutations")})),this.disposeWithMe(sheetInterceptorService.interceptCommand({getMutations:__name(command=>{var _a2,_b2;if(command.id!==sheets.SetStyleCommand.id)return{redos:[],undos:[]};if(!["ff","fs","tr","tb"].includes((_a2=command.params)==null?void 0:_a2.style.type))return{redos:[],undos:[]};const selections=(_b2=selectionManagerService.getCurrentSelections())==null?void 0:_b2.map(s=>s.range);return selections!=null&&selections.length?this.getUndoRedoParamsOfAutoHeight(selections):{redos:[],undos:[]}},"getMutations")}))}},__name(_r,"AutoHeightController"),_r),exports2.AutoHeightController=__decorateClass$D([core.OnLifecycle(core.LifecycleStages.Ready,exports2.AutoHeightController),__decorateParam$D(0,engineRender.IRenderManagerService),__decorateParam$D(1,core.Inject(core.Injector)),__decorateParam$D(2,core.Inject(sheets.SheetInterceptorService)),__decorateParam$D(3,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$D(4,core.Inject(core.IUniverInstanceService))],exports2.AutoHeightController);function getDefaultOnPasteCellMutations(pasteFrom,pasteTo,data,payload,accessor){const redoMutationsInfo=[],undoMutationsInfo=[];if(payload.copyType===COPY_TYPE.CUT){const{undos,redos}=getMoveRangeMutations(pasteFrom,pasteTo,accessor);redoMutationsInfo.push(...redos),undoMutationsInfo.push(...undos)}else{const{undos:clearStyleUndos,redos:clearStyleRedos}=getClearCellStyleMutations(pasteTo,data,accessor);redoMutationsInfo.push(...clearStyleRedos),undoMutationsInfo.push(...clearStyleUndos);const{undos:setValuesUndos,redos:setValuesRedos}=getSetCellValueMutations(pasteTo,pasteFrom,data,accessor);redoMutationsInfo.push(...setValuesRedos),undoMutationsInfo.push(...setValuesUndos);const{undos:setStyleUndos,redos:setStyleRedos}=getSetCellStyleMutations(pasteTo,data,accessor,!0);redoMutationsInfo.push(...setStyleRedos),undoMutationsInfo.push(...setStyleUndos);const{undos:clearMergeUndos,redos:clearMergeRedos}=getClearAndSetMergeMutations(pasteTo,data,accessor);redoMutationsInfo.push(...clearMergeRedos),undoMutationsInfo.push(...clearMergeUndos)}return{undos:undoMutationsInfo,redos:redoMutationsInfo}}__name(getDefaultOnPasteCellMutations,"getDefaultOnPasteCellMutations");function getMoveRangeMutations(from,to,accessor){let redos=[],undos=[];const{range:fromDiscreteRange,subUnitId:fromSubUnitId,unitId}=from,{range:toDiscreteRange,subUnitId:toSubUnitId}=to,toRange=toDiscreteRange?discreteRangeToRange(toDiscreteRange):null,fromRange=fromDiscreteRange?discreteRangeToRange(fromDiscreteRange):null;if(fromRange&&toRange){const univerInstanceService=accessor.get(core.IUniverInstanceService),sheetInterceptorService=accessor.get(sheets.SheetInterceptorService),workbook=univerInstanceService.getUniverSheetInstance(unitId),fromWorksheet=workbook==null?void 0:workbook.getSheetBySheetId(fromSubUnitId),toWorksheet=workbook==null?void 0:workbook.getSheetBySheetId(toSubUnitId);if(fromWorksheet&&toWorksheet){const fromCellValue=new core.ObjectMatrix,newFromCellValue=new core.ObjectMatrix,fromCellMatrix=fromWorksheet.getCellMatrix(),toCellMatrix=toWorksheet.getCellMatrix();core.Range.foreach(fromRange,(row,col)=>{fromCellValue.setValue(row,col,core.Tools.deepClone(fromCellMatrix.getValue(row,col))),newFromCellValue.setValue(row,col,null)});const toCellValue=new core.ObjectMatrix;core.Range.foreach(toRange,(row,col)=>{toCellValue.setValue(row,col,core.Tools.deepClone(toCellMatrix.getValue(row,col)))});const newToCellValue=new core.ObjectMatrix;core.Range.foreach(fromRange,(row,col)=>{const cellRange=core.cellToRange(row,col),relativeRange=core.Rectangle.getRelativeRange(cellRange,fromRange),range=core.Rectangle.getPositionRange(relativeRange,toRange);newToCellValue.setValue(range.startRow,range.startColumn,fromCellMatrix.getValue(row,col))});const doMoveRangeMutation={from:{value:newFromCellValue.getMatrix(),subUnitId:fromSubUnitId},to:{value:newToCellValue.getMatrix(),subUnitId:toSubUnitId},unitId},undoMoveRangeMutation={from:{value:fromCellValue.getMatrix(),subUnitId:fromSubUnitId},to:{value:toCellValue.getMatrix(),subUnitId:toSubUnitId},unitId},interceptorCommands=sheetInterceptorService.onCommandExecute({id:sheets.MoveRangeCommand.id,params:{toRange,fromRange}}),fromMergeData=fromWorksheet.getMergeData(),toMergeData=toWorksheet.getMergeData(),fromMergeRanges=fromMergeData.filter(item=>core.Rectangle.intersects(item,fromRange)),toMergeRanges=toMergeData.filter(item=>core.Rectangle.intersects(item,toRange)),willMoveToMergeRanges=fromMergeRanges.map(mergeRange=>core.Rectangle.getRelativeRange(mergeRange,fromRange)).map(relativeRange=>core.Rectangle.getPositionRange(relativeRange,toRange)),addMergeCellRanges=sheets.getAddMergeMutationRangeByType(willMoveToMergeRanges).filter(range=>!toMergeData.some(mergeRange=>core.Rectangle.equals(range,mergeRange))),mergeRedos=[{id:sheets.RemoveWorksheetMergeMutation.id,params:{unitId,subUnitId:fromSubUnitId,ranges:fromMergeRanges}},{id:sheets.RemoveWorksheetMergeMutation.id,params:{unitId,subUnitId:fromSubUnitId,ranges:toMergeRanges}},{id:sheets.AddWorksheetMergeMutation.id,params:{unitId,subUnitId:toSubUnitId,ranges:addMergeCellRanges}}],mergeUndos=[{id:sheets.RemoveWorksheetMergeMutation.id,params:{unitId,subUnitId:toSubUnitId,ranges:addMergeCellRanges}},{id:sheets.AddWorksheetMergeMutation.id,params:{unitId,subUnitId:toSubUnitId,ranges:toMergeRanges}},{id:sheets.AddWorksheetMergeMutation.id,params:{unitId,subUnitId:fromSubUnitId,ranges:fromMergeRanges}}];redos=[{id:sheets.MoveRangeMutation.id,params:doMoveRangeMutation},...interceptorCommands.redos,...mergeRedos,{id:sheets.SetSelectionsOperation.id,params:{unitId,subUnitId:toSubUnitId,selections:[{range:toRange}]}}],undos=[{id:sheets.MoveRangeMutation.id,params:undoMoveRangeMutation},...interceptorCommands.undos,...mergeUndos,{id:sheets.SetSelectionsOperation.id,params:{unitId,sheetId:fromSubUnitId,selections:[{range:fromRange}]}}]}}return{undos,redos}}__name(getMoveRangeMutations,"getMoveRangeMutations");function getSetCellValueMutations(pasteTo,pasteFrom,matrix,accessor){const{unitId,subUnitId,range}=pasteTo,redoMutationsInfo=[],undoMutationsInfo=[],{mapFunc}=virtualizeDiscreteRanges([range]),valueMatrix=new core.ObjectMatrix;matrix.forValue((row,col,value)=>{var _a2;let originNumberValue;if(!value.p&&value.v&&!pasteFrom){const content=String(value.v),numfmtValue=engineNumfmt.numfmt.parseDate(content)||engineNumfmt.numfmt.parseTime(content)||engineNumfmt.numfmt.parseNumber(content);numfmtValue!=null&&numfmtValue.v&&typeof numfmtValue.v=="number"&&(originNumberValue=numfmtValue.v)}const{row:realRow,col:realCol}=mapFunc(row,col);(_a2=value.p)!=null&&_a2.body?valueMatrix.setValue(realRow,realCol,core.Tools.deepClone({p:value.p,v:originNumberValue!=null?originNumberValue:value.v})):valueMatrix.setValue(realRow,realCol,core.Tools.deepClone({v:originNumberValue!=null?originNumberValue:value.v}))});const setValuesMutation={unitId,subUnitId,cellValue:core.Tools.deepClone(valueMatrix.getMatrix())};redoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:setValuesMutation});const undoSetValuesMutation=sheets.SetRangeValuesUndoMutationFactory(accessor,setValuesMutation);return undoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:undoSetValuesMutation}),{undos:undoMutationsInfo,redos:redoMutationsInfo}}__name(getSetCellValueMutations,"getSetCellValueMutations");function getSetCellStyleMutations(pasteTo,matrix,accessor,withRichFormat=!1){const redoMutationsInfo=[],undoMutationsInfo=[],{unitId,subUnitId,range}=pasteTo,valueMatrix=new core.ObjectMatrix,{mapFunc}=virtualizeDiscreteRanges([range]);matrix.forValue((row,col,value)=>{var _a2,_b2;const newValue={s:Object.assign({},{...core.DEFAULT_STYLES,pd:engineRender.DEFAULT_PADDING_DATA,bg:null},value.s)};withRichFormat&&((_a2=value.p)!=null&&_a2.body)&&(newValue.p=value.p);const content=String(value.v),numfmtValue=engineNumfmt.numfmt.parseDate(content)||engineNumfmt.numfmt.parseTime(content)||engineNumfmt.numfmt.parseNumber(content);numfmtValue!=null&&numfmtValue.z&&(newValue.s||(newValue.s={}),typeof newValue.s=="object"&&((_b2=newValue.s)!=null&&_b2.n?newValue.s.n.pattern=numfmtValue.z:newValue.s.n={pattern:numfmtValue.z}));const{row:actualRow,col:actualCol}=mapFunc(row,col);valueMatrix.setValue(actualRow,actualCol,newValue)});const setValuesMutation={unitId,subUnitId,cellValue:core.Tools.deepClone(valueMatrix.getMatrix())};redoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:setValuesMutation});const undoSetValuesMutation=sheets.SetRangeValuesUndoMutationFactory(accessor,setValuesMutation);return undoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:undoSetValuesMutation}),{undos:undoMutationsInfo,redos:redoMutationsInfo}}__name(getSetCellStyleMutations,"getSetCellStyleMutations");function getClearCellStyleMutations(pasteTo,matrix,accessor){const redoMutationsInfo=[],undoMutationsInfo=[],clearStyleMatrix=new core.ObjectMatrix,{unitId,subUnitId,range}=pasteTo,{mapFunc}=virtualizeDiscreteRanges([range]);if(matrix.forValue((row,col,value)=>{if(value.s){const{row:actualRow,col:actualCol}=mapFunc(row,col);clearStyleMatrix.setValue(actualRow,actualCol,{s:null})}}),clearStyleMatrix.getLength()>0){const clearMutation={subUnitId,unitId,cellValue:core.Tools.deepClone(clearStyleMatrix.getMatrix())};redoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:clearMutation});const undoClearMutation=sheets.SetRangeValuesUndoMutationFactory(accessor,clearMutation);undoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:undoClearMutation})}return{undos:undoMutationsInfo,redos:redoMutationsInfo}}__name(getClearCellStyleMutations,"getClearCellStyleMutations");function getClearAndSetMergeMutations(pasteTo,matrix,accessor){const redoMutationsInfo=[],undoMutationsInfo=[],{unitId,subUnitId,range}=pasteTo,{startColumn,startRow,endColumn,endRow}=discreteRangeToRange(range),mergeRangeData=[];matrix.forValue((row,col,value)=>{if(value.rowSpan&&value.rowSpan>1){const colSpan=value.colSpan||1,mergeRange={startRow:startRow+row,endRow:startRow+row+value.rowSpan-1,startColumn:startColumn+col,endColumn:startColumn+col+colSpan-1};mergeRangeData.push(mergeRange)}else if(value.colSpan&&value.colSpan>1){const rowSpan=value.rowSpan||1,mergeRange={startRow:startRow+row,endRow:startRow+row+rowSpan-1,startColumn:startColumn+col,endColumn:startColumn+col+value.colSpan-1};mergeRangeData.push(mergeRange)}});const workbook=accessor.get(core.IUniverInstanceService).getUniverSheetInstance(unitId),worksheet=workbook==null?void 0:workbook.getSheetBySheetId(subUnitId);if(workbook&&worksheet){const mergedCellsInRange=worksheet.getMergeData().filter(rect=>core.Rectangle.intersects({startRow,startColumn,endRow,endColumn},rect)),removeMergeMutationParams={unitId,subUnitId,ranges:mergedCellsInRange};redoMutationsInfo.push({id:sheets.RemoveWorksheetMergeMutation.id,params:removeMergeMutationParams});const undoRemoveMergeMutationParams=sheets.RemoveMergeUndoMutationFactory(accessor,removeMergeMutationParams);undoMutationsInfo.push({id:sheets.AddWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams})}const addMergeMutationParams={unitId,subUnitId,ranges:mergeRangeData};mergeRangeData.length>0&&redoMutationsInfo.push({id:sheets.AddWorksheetMergeMutation.id,params:addMergeMutationParams});const undoAddMergeMutation=sheets.AddMergeUndoMutationFactory(accessor,addMergeMutationParams);return mergeRangeData.length>0&&undoMutationsInfo.push({id:sheets.RemoveWorksheetMergeMutation.id,params:undoAddMergeMutation}),{undos:undoMutationsInfo,redos:redoMutationsInfo}}__name(getClearAndSetMergeMutations,"getClearAndSetMergeMutations");function generateBody(text){let dataStream=text.replace(/(\r\n|\n)/g,"\r");dataStream.endsWith(`\r
18
+ `)||(dataStream+=`\r
19
+ `);const paragraphs=[];for(let i=0;i<dataStream.length;i++)dataStream[i]==="\r"&&paragraphs.push({startIndex:i});return{dataStream,paragraphs,sectionBreaks:[{startIndex:dataStream.indexOf(`
20
+ `)}]}}__name(generateBody,"generateBody");var __defProp$C=Object.defineProperty,__getOwnPropDesc$C=Object.getOwnPropertyDescriptor,__decorateClass$C=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$C(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$C(target,key,result),result},"__decorateClass$C"),__decorateParam$C=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$C");let SheetClipboardController=(_s=class extends core.RxDisposable{constructor(_injector,_currentUniverSheet,_renderManagerService,_commandService,_contextService,_configService,_sheetClipboardService,_messageService,_localService,_textSelectionRenderManager){var _a2;super(),this._injector=_injector,this._currentUniverSheet=_currentUniverSheet,this._renderManagerService=_renderManagerService,this._commandService=_commandService,this._contextService=_contextService,this._configService=_configService,this._sheetClipboardService=_sheetClipboardService,this._messageService=_messageService,this._localService=_localService,this._textSelectionRenderManager=_textSelectionRenderManager,this._init(),(_a2=this._textSelectionRenderManager)==null||_a2.onPaste$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(config=>{var _a3,_b2;if(!whenSheetEditorFocused(this._contextService))return;config.event.preventDefault();const clipboardEvent=config.event,htmlContent=(_a3=clipboardEvent.clipboardData)==null?void 0:_a3.getData("text/html"),textContent=(_b2=clipboardEvent.clipboardData)==null?void 0:_b2.getData("text/plain");this._commandService.executeCommand(SheetPasteShortKeyCommand.id,{htmlContent,textContent})})}_init(){[SheetCopyCommand,SheetCutCommand,SheetPasteCommand].forEach(command=>this.disposeWithMe(this._commandService.registerMultipleCommand(command))),[SheetPasteValueCommand,SheetPasteFormatCommand,SheetPasteColWidthCommand,SheetPasteBesidesBorderCommand,SheetPasteShortKeyCommand].forEach(command=>this.disposeWithMe(this._commandService.registerCommand(command))),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._initCopyingHooks())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._initPastingHook()));const disposables=this._initSpecialPasteHooks().map(hook=>this._sheetClipboardService.addClipboardHook(hook));this.disposeWithMe({dispose:__name(()=>disposables.forEach(d=>d.dispose()),"dispose")})}_initCopyingHooks(){const self2=this;let currentSheet=null;return{id:PREDEFINED_HOOK_NAME.DEFAULT_COPY,isDefaultHook:!0,onBeforeCopy(unitId,subUnitId){currentSheet=self2._getWorksheet(unitId,subUnitId)},onCopyCellContent(row,col){var _a2,_b2,_c2,_d2;const cell=currentSheet.getCell(row,col);return(_b2=(_a2=cell==null?void 0:cell.p)==null?void 0:_a2.body)!=null&&_b2.paragraphs||(_d2=(_c2=cell==null?void 0:cell.p)==null?void 0:_c2.body)!=null&&_d2.textRuns?core.convertBodyToHtml(cell.p.body):cell?core.extractPureTextFromCell(cell):""},onCopyCellStyle:__name((row,col,rowSpan,colSpan)=>{const properties={};(rowSpan||colSpan)&&(properties.rowspan=`${rowSpan||1}`,properties.colspan=`${colSpan||1}`);const range=currentSheet.getRange(row,col),mergedCellByRowCol=currentSheet.getMergedCell(row,col),textStyle=range.getTextStyle();let style="";if(textStyle&&(style=core.handleStyleToString(textStyle)),mergedCellByRowCol){const endRow=mergedCellByRowCol.endRow,endColumn=mergedCellByRowCol.endColumn,lastTextStyle=currentSheet.getRange(endRow,endColumn).getTextStyle();if(lastTextStyle){const lastStyle=core.handleStyleToString(lastTextStyle);style?style+=lastStyle?`;${lastStyle}`:"":style=lastStyle}}return style&&(properties.style=style),properties},"onCopyCellStyle"),onCopyColumn(col){return{width:`${currentSheet.getColumnWidth(col)}`}},onCopyRow(row){return{style:`height: ${currentSheet.getRowHeight(row)}px;`}},onAfterCopy(){currentSheet=null},getFilteredOutRows(range){var _a2;const{startRow,endRow}=range,worksheet=(_a2=self2._currentUniverSheet.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET))==null?void 0:_a2.getActiveSheet(),res=[];if(!worksheet)return res;for(let r=startRow;r<=endRow;r++)worksheet.getRowFiltered(r)&&res.push(r);return res}}}_initPastingHook(){const self2=this;let unitId=null,subUnitId=null,currentSheet=null;return{id:PREDEFINED_HOOK_NAME.DEFAULT_PASTE,isDefaultHook:!0,onBeforePaste({unitId:unitId_,subUnitId:subUnitId_,range}){currentSheet=self2._getWorksheet(unitId_,subUnitId_),unitId=unitId_,subUnitId=subUnitId_;const maxConfig=self2._configService.getConfig(sheets.MAX_CELL_PER_SHEET_KEY),endRow=range.rows[range.rows.length-1],endColumn=range.cols[range.cols.length-1];return maxConfig&&endRow*endColumn>maxConfig?(self2._messageService.show({type:design.MessageType.Error,content:self2._localService.t("clipboard.paste.exceedMaxCells")}),!1):!0},onPasteRows(pasteTo,rowProperties){const{range}=pasteTo,redoMutations=[],undoMutations=[],maxRow=currentSheet.getMaxRows(),addingRowsCount=range.rows[range.rows.length-1]-maxRow,existingRowsCount=rowProperties.length-addingRowsCount,rowManager=currentSheet.getRowManager();if(addingRowsCount>0){const rowInfo={};rowProperties.slice(existingRowsCount).forEach((property,index)=>{const{style,height:PropertyHeight}=property||{};if(style){const cssTextArray=style.split(";");let height=core.DEFAULT_WORKSHEET_ROW_HEIGHT;cssTextArray.find(css=>{css=css.toLowerCase();const key=ui.textTrim(css.substr(0,css.indexOf(":"))),value=ui.textTrim(css.substr(css.indexOf(":")+1));return key==="height"?(value.endsWith("pt")?height=engineRender.ptToPx(Number.parseFloat(value)):height=Number.parseFloat(value),!0):!1}),rowInfo[index]={h:height,hd:core.BooleanNumber.FALSE}}else PropertyHeight&&(rowInfo[index]={h:Number.parseFloat(PropertyHeight),hd:core.BooleanNumber.FALSE})});const addRowMutation={unitId,subUnitId,range:{startColumn:range.cols[0],endColumn:range.cols[range.cols.length-1],endRow:range.rows[range.rows.length-1],startRow:maxRow},rowInfo};redoMutations.push({id:sheets.InsertRowMutation.id,params:addRowMutation})}const rowHeight={},originRowHeight={};rowProperties.slice(0,existingRowsCount).forEach((property,index)=>{var _a2,_b2;const{style,height:propertyHeight}=property;if(style){const cssTextArray=style.split(";");let height=core.DEFAULT_WORKSHEET_ROW_HEIGHT;cssTextArray.find(css=>{css=css.toLowerCase();const key=ui.textTrim(css.substr(0,css.indexOf(":"))),value=ui.textTrim(css.substr(css.indexOf(":")+1));return key==="height"?(value.endsWith("pt")?height=engineRender.ptToPx(Number.parseFloat(value)):height=Number.parseFloat(value),!0):!1}),rowHeight[index+range.rows[0]]=height}else if(propertyHeight){const rowConfigBeforePaste=rowManager.getRow(range.rows[0]+index),willSetHeight=Number.parseFloat(propertyHeight);if(rowConfigBeforePaste){const{h=core.DEFAULT_WORKSHEET_ROW_HEIGHT,ah=0}=rowConfigBeforePaste,nowRowHeight=Math.max(h,ah);willSetHeight>nowRowHeight&&(rowHeight[index+range.rows[0]]=willSetHeight,originRowHeight[index+range.rows[0]]=nowRowHeight)}else rowHeight[index+range.rows[0]]=willSetHeight,originRowHeight[index+range.rows[0]]=(_b2=(_a2=rowManager.getRow(range.rows[0]+index))==null?void 0:_a2.h)!=null?_b2:core.DEFAULT_WORKSHEET_ROW_HEIGHT}});const setRowPropertyMutation={unitId,subUnitId,ranges:[{startRow:range.rows[0],endRow:Math.min(range.rows[range.rows.length-1],maxRow),startColumn:range.cols[0],endColumn:range.cols[range.cols.length-1]}],rowHeight};return redoMutations.push({id:sheets.SetWorksheetRowHeightMutation.id,params:setRowPropertyMutation}),undoMutations.push({id:sheets.SetWorksheetRowHeightMutation.id,params:{...setRowPropertyMutation,rowHeight:20}}),{redos:redoMutations,undos:undoMutations}},onPasteColumns(pasteTo,colProperties,pasteType){var _a2;const{range}=pasteTo,redoMutations=[],maxColumn=currentSheet.getMaxColumns(),addingColsCount=range.cols[range.cols.length-1]-maxColumn,existingColsCount=colProperties.length-addingColsCount,defaultColumnWidth=(_a2=self2._configService.getConfig(core.DEFAULT_WORKSHEET_COLUMN_WIDTH_KEY))!=null?_a2:core.DEFAULT_WORKSHEET_COLUMN_WIDTH;if(addingColsCount>0){const addColMutation={unitId,subUnitId,range:{startRow:range.rows[0],endRow:range.rows[range.rows.length-1],endColumn:range.cols[range.cols.length-1],startColumn:maxColumn},colInfo:colProperties.slice(existingColsCount).map(property=>({w:property.width?+property.width:defaultColumnWidth,hd:core.BooleanNumber.FALSE}))};redoMutations.push({id:sheets.InsertColMutation.id,params:addColMutation})}const setColPropertyMutation={unitId,subUnitId,ranges:[{startRow:range.rows[0],endRow:range.rows[range.rows.length-1],startColumn:range.cols[0],endColumn:Math.min(range.cols[range.cols.length-1],maxColumn)}],colWidth:colProperties.slice(0,existingColsCount).map(property=>property.width?+property.width:defaultColumnWidth)};return redoMutations.push({id:sheets.SetWorksheetColWidthMutation.id,params:setColPropertyMutation}),{redos:redoMutations,undos:[]}},onPastePlainText(pasteTo,text,payload){return self2._onPastePlainText(pasteTo,text,payload)},onPasteCells(pasteFrom,pasteTo,data,payload){return self2._onPasteCells(pasteFrom,pasteTo,data,payload)},onAfterPaste(success){currentSheet=null}}}_generateDocumentDataModelSnapshot(snapshot){var _a2,_b2;const currentSkeleton=(_a2=this._renderManagerService.withCurrentTypeOfUnit(core.UniverInstanceType.UNIVER_SHEET,exports2.SheetSkeletonManagerService))==null?void 0:_a2.getCurrent();if(currentSkeleton==null)return null;const{skeleton}=currentSkeleton,documentModel=(_b2=skeleton.getBlankCellDocumentModel())==null?void 0:_b2.documentModel,documentData={...documentModel==null?void 0:documentModel.getSnapshot(),...snapshot};return documentModel==null||documentModel.reset(documentData),documentModel==null?void 0:documentModel.getSnapshot()}_onPastePlainText(pasteTo,text,payload){const{range,unitId,subUnitId}=pasteTo;let cellValue;if(/\r|\n/.test(text)){const body=generateBody(text),p2=this._generateDocumentDataModelSnapshot({body});cellValue={[range.rows[0]]:{[range.cols[0]]:{p:p2}}}}else core.isFormulaString(text)?cellValue={[range.rows[0]]:{[range.cols[0]]:{f:text}}}:cellValue={[range.rows[0]]:{[range.cols[0]]:{v:text}}};const setRangeValuesParams={unitId,subUnitId,cellValue};return{redos:[{id:sheets.SetRangeValuesMutation.id,params:setRangeValuesParams}],undos:[{id:sheets.SetRangeValuesMutation.id,params:sheets.SetRangeValuesUndoMutationFactory(this._injector,setRangeValuesParams)}]}}_onPasteCells(pasteFrom,pasteTo,data,payload){const accessor={get:this._injector.get.bind(this._injector)};return getDefaultOnPasteCellMutations(pasteFrom,pasteTo,data,payload,accessor)}_initSpecialPasteHooks(){const accessor={get:this._injector.get.bind(this._injector)},self2=this,specialPasteValueHook={id:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE,specialPasteInfo:{label:"specialPaste.value"},onPasteCells:__name((pasteFrom,pasteTo,data)=>getSetCellValueMutations(pasteTo,pasteFrom,data,accessor),"onPasteCells")},specialPasteFormatHook={id:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT,specialPasteInfo:{label:"specialPaste.format"},onPasteCells(pasteFrom,pasteTo,matrix){const redoMutationsInfo=[],undoMutationsInfo=[],{undos:styleUndos,redos:styleRedos}=getClearCellStyleMutations(pasteTo,matrix,accessor);redoMutationsInfo.push(...styleRedos),undoMutationsInfo.push(...styleUndos);const{undos:mergeUndos,redos:mergeRedos}=getClearAndSetMergeMutations(pasteTo,matrix,accessor);redoMutationsInfo.push(...mergeRedos),undoMutationsInfo.push(...mergeUndos);const{undos:setStyleUndos,redos:setStyleRedos}=getSetCellStyleMutations(pasteTo,matrix,accessor);return redoMutationsInfo.push(...setStyleRedos),undoMutationsInfo.push(...setStyleUndos),{undos:undoMutationsInfo,redos:redoMutationsInfo}}},specialPasteColWidthHook={id:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH,specialPasteInfo:{label:"specialPaste.colWidth"},onPasteCells(){return{undos:[],redos:[]}},onPasteColumns(pasteTo,colProperties,payload){var _a2,_b2;const workbook=self2._currentUniverSheet.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),unitId=workbook.getUnitId(),subUnitId=(_a2=workbook.getActiveSheet())==null?void 0:_a2.getSheetId();if(!unitId||!subUnitId)throw new Error("Cannot find unitId or subUnitId");const redoMutations=[],currentSheet=self2._getWorksheet(unitId,subUnitId),{range}=pasteTo,maxColumn=currentSheet.getMaxColumns(),addingColsCount=range.cols[range.cols.length-1]-maxColumn,existingColsCount=colProperties.length-addingColsCount,defaultColumnWidth=(_b2=self2._configService.getConfig(core.DEFAULT_WORKSHEET_COLUMN_WIDTH_KEY))!=null?_b2:core.DEFAULT_WORKSHEET_COLUMN_WIDTH,setColPropertyMutation={unitId,subUnitId,ranges:[{startRow:range.rows[0],endRow:Math.min(range.cols[range.cols.length-1],maxColumn),startColumn:range.cols[0],endColumn:range.cols[range.cols.length-1]}],colWidth:colProperties.slice(0,existingColsCount).map(property=>property.width?+property.width:defaultColumnWidth)};return redoMutations.push({id:sheets.SetWorksheetColWidthMutation.id,params:setColPropertyMutation}),redoMutations.push({id:sheets.SetWorksheetColWidthMutation.id,params:setColPropertyMutation}),{redos:redoMutations,undos:[]}}},specialPasteBesidesBorder={id:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_BESIDES_BORDER,specialPasteInfo:{label:"specialPaste.besidesBorder"},onPasteCells(pasteFrom,pasteTo,matrix,payload){self2._currentUniverSheet.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);const redoMutationsInfo=[],undoMutationsInfo=[],{range,unitId,subUnitId}=pasteTo,valueMatrix=new core.ObjectMatrix;matrix.forValue((row,col,value)=>{const style=value.s;typeof style=="object"&&valueMatrix.setValue(range.rows[row],range.cols[col],{s:{...style,bd:void 0},v:value.v})});const setValuesMutation={unitId,subUnitId,cellValue:valueMatrix.getData()};redoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:setValuesMutation});const undoSetValuesMutation=sheets.SetRangeValuesUndoMutationFactory(accessor,setValuesMutation);undoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:undoSetValuesMutation});const{undos,redos}=getClearAndSetMergeMutations(pasteTo,matrix,accessor);return undoMutationsInfo.push(...undos),redoMutationsInfo.push(...redos),{redos:redoMutationsInfo,undos:undoMutationsInfo}}};return[specialPasteValueHook,specialPasteFormatHook,specialPasteColWidthHook,specialPasteBesidesBorder]}_getWorksheet(unitId,subUnitId){var _a2;const worksheet=(_a2=this._currentUniverSheet.getUniverSheetInstance(unitId))==null?void 0:_a2.getSheetBySheetId(subUnitId);if(!worksheet)throw new Error(`[SheetClipboardController]: cannot find a worksheet with unitId ${unitId} and subUnitId ${subUnitId}.`);return worksheet}},__name(_s,"SheetClipboardController"),_s);SheetClipboardController=__decorateClass$C([core.OnLifecycle(core.LifecycleStages.Steady,SheetClipboardController),__decorateParam$C(0,core.Inject(core.Injector)),__decorateParam$C(1,core.IUniverInstanceService),__decorateParam$C(2,engineRender.IRenderManagerService),__decorateParam$C(3,core.ICommandService),__decorateParam$C(4,core.IContextService),__decorateParam$C(5,core.IConfigService),__decorateParam$C(6,ISheetClipboardService),__decorateParam$C(7,ui.IMessageService),__decorateParam$C(8,core.Inject(core.LocaleService)),__decorateParam$C(9,core.Optional(engineRender.ITextSelectionRenderManager))],SheetClipboardController);var __defProp$B=Object.defineProperty,__getOwnPropDesc$B=Object.getOwnPropertyDescriptor,__decorateClass$B=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$B(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$B(target,key,result),result},"__decorateClass$B"),__decorateParam$B=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$B");exports2.FormulaEditorController=(_t=class extends core.RxDisposable{constructor(_univerInstanceService,_renderManagerService,_editorBridgeService,_commandService,_contextService,_formulaEditorManagerService,_undoRedoService,_textSelectionManagerService){super();__publicField(this,"_loadedMap",new WeakSet);__publicField(this,"_scheduledCallback",-1);this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._editorBridgeService=_editorBridgeService,this._commandService=_commandService,this._contextService=_contextService,this._formulaEditorManagerService=_formulaEditorManagerService,this._undoRedoService=_undoRedoService,this._textSelectionManagerService=_textSelectionManagerService,this._initialize()}_initialize(){this._syncFormulaEditorContent(),this._commandExecutedListener(),this._syncEditorSize(),this._listenFxBtnClick(),this._listenFoldBtnClick(),this._renderManagerService.currentRender$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(unitId=>{this._create(unitId)}),this._create(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),this._textSelectionManagerService.textSelection$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(param=>{if(param==null)return;const{unitId}=param;unitId!==core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&(this._contextService.setContextValue(core.FOCUSING_FX_BAR_EDITOR,!1),this._undoRedoService.clearUndoRedo(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))})}_create(unitId){if(unitId!==core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)return;const formulaEditorDocObject=this._renderManagerService.getRenderById(unitId);if(formulaEditorDocObject==null)return;const{mainComponent:documentComponent}=formulaEditorDocObject;documentComponent!=null&&(this._loadedMap.has(documentComponent)||(this._initialMain(unitId),this._loadedMap.add(documentComponent)))}_listenFxBtnClick(){this._formulaEditorManagerService.fxBtnClick$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(()=>{var _a2,_b2;if(this._contextService.getContextValue(core.FOCUSING_EDITOR_BUT_HIDDEN)&&!this._contextService.getContextValue(core.EDITOR_ACTIVATED)){this._univerInstanceService.setCurrentUnitForType(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),this._contextService.setContextValue(core.FOCUSING_FX_BAR_EDITOR,!0);const currentSheet=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),formulaEditorDataModel=this._univerInstanceService.getUniverDocInstance(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);this._editorBridgeService.isVisible().visible===!1&&this._editorBridgeService.changeVisible({visible:!0,eventType:engineRender.DeviceInputEventType.PointerDown,unitId:(_a2=currentSheet==null?void 0:currentSheet.getUnitId())!=null?_a2:""});const content=(_b2=formulaEditorDataModel==null?void 0:formulaEditorDataModel.getBody())==null?void 0:_b2.dataStream;if(content==null)return;let newContent=content.startsWith("=")?content:`=${content}`;newContent=newContent.replace(/\r\n$/,"");const textRanges=[{startOffset:newContent.length,endOffset:newContent.length}],coverContentParams={unitId:core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,body:{dataStream:newContent},segmentId:""};this._commandService.executeCommand(docs.CoverContentCommand.id,coverContentParams),this._textSelectionManagerService.replaceTextRanges(textRanges)}})}_listenFoldBtnClick(){this._formulaEditorManagerService.foldBtnStatus$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(()=>{this._textSelectionManagerService.refreshSelection()})}_initialMain(unitId){const formulaEditorDocObject=this._renderManagerService.getRenderById(unitId);if(formulaEditorDocObject==null)return;const{mainComponent:documentComponent}=formulaEditorDocObject;documentComponent!=null&&this.disposeWithMe(documentComponent.onPointerDown$.subscribeEvent(()=>{this._editorBridgeService.isVisible().visible===!1&&this._editorBridgeService.changeVisible({visible:!0,eventType:engineRender.DeviceInputEventType.Dblclick,unitId}),this._contextService.setContextValue(core.FOCUSING_FX_BAR_EDITOR,!0),this._undoRedoService.clearUndoRedo(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)}))}_syncEditorSize(){this._formulaEditorManagerService.position$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(position=>{if(!position)return this._clearScheduledCallback();const editorObject=getEditorObject(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,this._renderManagerService),formulaEditorDataModel=this._univerInstanceService.getUniverDocInstance(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);if(editorObject==null||formulaEditorDataModel==null)return this._clearScheduledCallback();const{width,height}=position;if(width===0||height===0)return this._clearScheduledCallback();const{engine}=editorObject;formulaEditorDataModel.updateDocumentDataPageSize(width),this._autoScroll(),this._scheduledCallback=requestIdleCallback(()=>engine.resizeBySize(width,height))})}_clearScheduledCallback(){this._scheduledCallback!==-1&&cancelIdleCallback(this._scheduledCallback),this._scheduledCallback=-1}_syncFormulaEditorContent(){this._editorBridgeService.currentEditCellState$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(editCellState=>{editCellState==null||this._editorBridgeService.isForceKeepVisible()||this._editorSyncHandler(editCellState)}),this._editorBridgeService.visible$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(state=>{if(state==null||state.visible===!1||this._editorBridgeService.isForceKeepVisible())return;const cellEditState=this._editorBridgeService.getLatestEditCellState();cellEditState!=null&&this._editorSyncHandler(cellEditState)})}_editorSyncHandler(param){var _a2;const body=(_a2=param.documentLayoutObject.documentModel)==null?void 0:_a2.getBody();let dataStream=body==null?void 0:body.dataStream,paragraphs=body==null?void 0:body.paragraphs,textRuns=body==null?void 0:body.textRuns;dataStream==null||paragraphs==null||(param.isInArrayFormulaRange===!0&&this._editorBridgeService.isVisible().eventType===engineRender.DeviceInputEventType.Dblclick&&(dataStream=`\r
21
+ `,paragraphs=[{startIndex:0}],textRuns=[]),this._syncContentAndRender(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,dataStream,paragraphs,textRuns),this._autoScroll())}_commandExecutedListener(){const INCLUDE_LIST=[core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{var _a2,_b2,_c2;if(command.id!==docs.RichTextEditingMutation.id)return;const params=command.params,{unitId,actions}=params;if(INCLUDE_LIST.includes(unitId)){const editorDocDataModel=this._univerInstanceService.getUniverDocInstance(unitId),dataStream=(_a2=editorDocDataModel==null?void 0:editorDocDataModel.getBody())==null?void 0:_a2.dataStream,paragraphs=(_b2=editorDocDataModel==null?void 0:editorDocDataModel.getBody())==null?void 0:_b2.paragraphs,textRuns=(_c2=editorDocDataModel==null?void 0:editorDocDataModel.getBody())==null?void 0:_c2.textRuns,syncId=unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY?core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY:core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY;if(dataStream==null||paragraphs==null)return;syncId===core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY?(this._checkAndSetRenderStyleConfig(editorDocDataModel),this._syncActionsAndRender(syncId,actions)):this._syncContentAndRender(syncId,dataStream,paragraphs,textRuns),this._autoScroll()}})),this.disposeWithMe(this._commandService.onCommandExecuted(command=>{var _a2,_b2,_c2;if(command.id!==ui.SetEditorResizeOperation.id)return;const params=command.params,{unitId}=params;if(INCLUDE_LIST.includes(unitId)){const editorDocDataModel=this._univerInstanceService.getUniverDocInstance(unitId),dataStream=(_a2=editorDocDataModel==null?void 0:editorDocDataModel.getBody())==null?void 0:_a2.dataStream,paragraphs=(_b2=editorDocDataModel==null?void 0:editorDocDataModel.getBody())==null?void 0:_b2.paragraphs,textRuns=(_c2=editorDocDataModel==null?void 0:editorDocDataModel.getBody())==null?void 0:_c2.textRuns,syncId=unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY?core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY:core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY;if(dataStream==null||paragraphs==null)return;this._syncContentAndRender(syncId,dataStream,paragraphs,textRuns),this._autoScroll()}}));const needUpdateFormulaEditorContentCommandList=[sheets.SetRangeValuesMutation.id,sheets.MoveRangeMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{var _a2,_b2,_c2,_d2,_e2;if(needUpdateFormulaEditorContentCommandList.includes(command.id)){const editCellState=this._editorBridgeService.getLatestEditCellState();if(editCellState==null)return;let needUpdate=!1;const{row,column}=editCellState;if(command.id===sheets.SetRangeValuesMutation.id&&command.params?(_b2=(_a2=command.params.cellValue)==null?void 0:_a2[row])!=null&&_b2[column]&&(needUpdate=!0):command.id===sheets.MoveRangeMutation.id&&command.params&&(_d2=(_c2=command.params.to.value)==null?void 0:_c2[row])!=null&&_d2[column]&&(needUpdate=!0),needUpdate){const body=(_e2=editCellState.documentLayoutObject.documentModel)==null?void 0:_e2.getBody();if(body==null)return;const{dataStream,paragraphs=[]}=body;this._syncContentAndRender(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,dataStream,paragraphs),this._autoScroll()}}}))}_syncActionsAndRender(unitId,actions){var _a2;const INCLUDE_LIST=[core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY],currentRender=this._renderManagerService.getRenderById(unitId);if(currentRender==null)return;const skeleton=currentRender.with(docs.DocSkeletonManagerService).getSkeleton(),docDataModel=this._univerInstanceService.getUniverDocInstance(unitId),docViewModel=this._getEditorViewModel(unitId);docDataModel==null||docViewModel==null||(docDataModel.apply(actions),this._checkAndSetRenderStyleConfig(docDataModel),docViewModel.reset(docDataModel),skeleton.calculate(),INCLUDE_LIST.includes(unitId)&&((_a2=currentRender.mainComponent)==null||_a2.makeDirty()))}_syncContentAndRender(unitId,dataStream,paragraphs,textRuns=[]){var _a2,_b2;const INCLUDE_LIST=[core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY],skeleton=(_a2=this._renderManagerService.getRenderById(unitId))==null?void 0:_a2.with(docs.DocSkeletonManagerService).getSkeleton(),docDataModel=this._univerInstanceService.getUniverDocInstance(unitId),docViewModel=this._getEditorViewModel(unitId);if(docDataModel==null||docViewModel==null||skeleton==null)return;docDataModel.getBody().dataStream=dataStream,docDataModel.getBody().paragraphs=this._clearParagraph(paragraphs),textRuns.length>0&&(docDataModel.getBody().textRuns=textRuns),this._checkAndSetRenderStyleConfig(docDataModel),docViewModel.reset(docDataModel);const currentRender=this._renderManagerService.getRenderById(unitId);currentRender!=null&&(skeleton.calculate(),INCLUDE_LIST.includes(unitId)&&((_b2=currentRender.mainComponent)==null||_b2.makeDirty()))}_checkAndSetRenderStyleConfig(documentDataModel){var _a2;const snapshot=documentDataModel.getSnapshot(),{body}=snapshot;if(snapshot.id!==core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)return;let renderConfig=snapshot.documentStyle.renderConfig;renderConfig==null&&(renderConfig={},snapshot.documentStyle.renderConfig=renderConfig),((_a2=body==null?void 0:body.dataStream)!=null?_a2:"").startsWith("=")?renderConfig.isRenderStyle=core.BooleanNumber.TRUE:renderConfig.isRenderStyle=core.BooleanNumber.FALSE}_clearParagraph(paragraphs){const newParagraphs=core.Tools.deepClone(paragraphs);for(const paragraph of newParagraphs)paragraph.paragraphStyle&&(paragraph.paragraphStyle.horizontalAlign=core.HorizontalAlign.UNSPECIFIED);return newParagraphs}_autoScroll(){var _a2,_b2;const position=this._formulaEditorManagerService.getPosition(),skeleton=(_a2=this._renderManagerService.getRenderById(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))==null?void 0:_a2.with(docs.DocSkeletonManagerService).getSkeleton(),editorObject=this._renderManagerService.getRenderById(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),formulaEditorDataModel=this._univerInstanceService.getUniverDocInstance(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);if(skeleton==null||position==null||editorObject==null||formulaEditorDataModel==null)return;const{marginTop=0,marginBottom=0}=formulaEditorDataModel.getSnapshot().documentStyle,{scene,mainComponent}=editorObject;let{actualHeight}=skeleton.getActualSize();actualHeight+=marginTop+marginBottom;const{width,height}=position,viewportMain=scene.getViewport(docs.VIEWPORT_KEY.VIEW_MAIN);let scrollBar=viewportMain==null?void 0:viewportMain.getScrollBar();scene.transformByState({width,height:actualHeight}),mainComponent==null||mainComponent.resize(width,actualHeight),actualHeight>height?scrollBar==null?viewportMain&&new engineRender.ScrollBar(viewportMain,{enableHorizontal:!1,barSize:8}):viewportMain==null||viewportMain.resetCanvasSizeAndUpdateScroll():(scrollBar=null,viewportMain==null||viewportMain.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0}),(_b2=viewportMain==null?void 0:viewportMain.getScrollBar())==null||_b2.dispose())}_getEditorViewModel(unitId){var _a2;return(_a2=this._renderManagerService.getRenderById(unitId))==null?void 0:_a2.with(docs.DocSkeletonManagerService).getViewModel()}},__name(_t,"FormulaEditorController"),_t),exports2.FormulaEditorController=__decorateClass$B([core.OnLifecycle(core.LifecycleStages.Rendered,exports2.FormulaEditorController),__decorateParam$B(0,core.IUniverInstanceService),__decorateParam$B(1,engineRender.IRenderManagerService),__decorateParam$B(2,IEditorBridgeService),__decorateParam$B(3,core.ICommandService),__decorateParam$B(4,core.IContextService),__decorateParam$B(5,IFormulaEditorManagerService),__decorateParam$B(6,core.IUndoRedoService),__decorateParam$B(7,core.Inject(docs.TextSelectionManagerService))],exports2.FormulaEditorController);function isForceString(str){return str.startsWith("'")}__name(isForceString,"isForceString");function extractStringFromForceString(str){return str.slice(1)}__name(extractStringFromForceString,"extractStringFromForceString");const fullWidthToHalfWidthMap={"0":"0","1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9",A:"A",B:"B",C:"C",D:"D",E:"E",F:"F",G:"G",H:"H",I:"I",J:"J",K:"K",L:"L",M:"M",N:"N",O:"O",P:"P",Q:"Q",R:"R",S:"S",T:"T",U:"U",V:"V",W:"W",X:"X",Y:"Y",Z:"Z",a:"a",b:"b",c:"c",d:"d",e:"e",f:"f",g:"g",h:"h",i:"i",j:"j",k:"k",l:"l",m:"m",n:"n",o:"o",p:"p",q:"q",r:"r",s:"s",t:"t",u:"u",v:"v",w:"w",x:"x",y:"y",z:"z","%":"%","-":"-",".":".",":":":","/":"/","+":"+","@":"@","&":"&","*":"*","#":"#","=":"=",">":">","<":"<","$":"$",""":'"',"'":"'","(":"(",")":")"," ":" ",",":",","!":"!","?":"?",";":";","[":"[","]":"]","{":"{","}":"}"},booleanMap={true:"TRUE",false:"FALSE"};function isCJKLocale(locale){return[core.LocaleType.ZH_CN,core.LocaleType.ZH_TW].includes(locale)}__name(isCJKLocale,"isCJKLocale");function normalizeString(str,lexerTreeBuilder,currentLocale,functionService){let normalStr=str;if(isCJKLocale(currentLocale)){if(str.startsWith("'")||str.startsWith("'"))return`'${str.slice(1)}`;normalStr=str.split("").map(toHalfWidth).join("")}if(normalStr.startsWith("="))return normalizeFormulaString(str,normalStr,lexerTreeBuilder,functionService);const lowerCaseStr=normalStr.toLowerCase();return booleanMap[lowerCaseStr]?booleanMap[lowerCaseStr]:engineNumfmt.numfmt.parseValue(normalStr)==null?str:normalStr}__name(normalizeString,"normalizeString");function normalizeFormulaString(str,normalStr,lexerTreeBuilder,functionService){const nodes=lexerTreeBuilder.sequenceNodesBuilder(normalStr);if(!nodes)return str;let _normalStr=normalStr;return nodes.forEach((node,index)=>{if(typeof node=="object"){const token=node.token;if(booleanMap[token.toLowerCase()]){const startIndex=node.startIndex+1,endIndex=node.endIndex+2;_normalStr=replaceString(token.toLocaleUpperCase(),_normalStr,startIndex,endIndex)}else if(node.nodeType===engineFormula.sequenceNodeType.FUNCTION&&hasFunctionName(token,functionService,nodes,index)||node.nodeType===engineFormula.sequenceNodeType.REFERENCE){const sheetNameIndex=token.indexOf("!");if(sheetNameIndex>-1){const refBody=token.substring(sheetNameIndex+1),startIndex=node.startIndex+(sheetNameIndex+1)+1,endIndex=node.endIndex+2;_normalStr=replaceString(refBody.toLocaleUpperCase(),_normalStr,startIndex,endIndex)}else{const startIndex=node.startIndex+1,endIndex=node.endIndex+2;_normalStr=replaceString(token.toLocaleUpperCase(),_normalStr,startIndex,endIndex)}}else if(token.startsWith('"')&&token.endsWith('"')||token.startsWith("'")&&token.endsWith("'")){const startIndex=node.startIndex+2,endIndex=node.endIndex+1;_normalStr=replaceString(str.slice(startIndex,endIndex),_normalStr,startIndex,endIndex)}else if(node.nodeType!==engineFormula.sequenceNodeType.ARRAY&&engineNumfmt.numfmt.parseValue(token)==null){const startIndex=node.startIndex+1,endIndex=node.endIndex+2;_normalStr=replaceString(str.slice(startIndex,endIndex),_normalStr,startIndex,endIndex)}}}),_normalStr}__name(normalizeFormulaString,"normalizeFormulaString");function hasFunctionName(name,functionService,nodes,index){const functionList=functionService.getDescriptions();return nodes[index+1]!==engineFormula.matchToken.OPEN_BRACKET?!1:functionList.get(removeLeadingAtSymbols(name).toLocaleUpperCase())!==void 0}__name(hasFunctionName,"hasFunctionName");function removeLeadingAtSymbols(str){const regex=/^@+/;return str.replace(regex,"")}__name(removeLeadingAtSymbols,"removeLeadingAtSymbols");function toHalfWidth(char){return fullWidthToHalfWidthMap[char]||char}__name(toHalfWidth,"toHalfWidth");function replaceString(replacedString,normalStr,startIndex,endIndex){return normalStr.substring(0,startIndex)+replacedString+normalStr.substring(endIndex)}__name(replaceString,"replaceString");var __defProp$A=Object.defineProperty,__getOwnPropDesc$A=Object.getOwnPropertyDescriptor,__decorateClass$A=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$A(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$A(target,key,result),result},"__decorateClass$A"),__decorateParam$A=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$A");const HIDDEN_EDITOR_POSITION=-1e3,EDITOR_INPUT_SELF_EXTEND_GAP=5,EDITOR_BORDER_SIZE=2;let EditingRenderController=(_u=class extends core.Disposable{constructor(_context,_layoutService,selectionManagerService,_undoRedoService,_contextService,_instanceSrv,_renderManagerService,_editorBridgeService,_cellEditorManagerService,_textSelectionRenderManager,_lexerTreeBuilder,_functionService,_textSelectionManagerService,_commandService,_localService,_editorService,_resourceLoaderService){super();__publicField(this,"_cursorChange",0);__publicField(this,"_isUnitEditing",!1);__publicField(this,"_workbookSelections");__publicField(this,"_d");this._context=_context,this._layoutService=_layoutService,this._undoRedoService=_undoRedoService,this._contextService=_contextService,this._instanceSrv=_instanceSrv,this._renderManagerService=_renderManagerService,this._editorBridgeService=_editorBridgeService,this._cellEditorManagerService=_cellEditorManagerService,this._textSelectionRenderManager=_textSelectionRenderManager,this._lexerTreeBuilder=_lexerTreeBuilder,this._functionService=_functionService,this._textSelectionManagerService=_textSelectionManagerService,this._commandService=_commandService,this._localService=_localService,this._editorService=_editorService,this._resourceLoaderService=_resourceLoaderService,this._workbookSelections=selectionManagerService.getWorkbookSelections(this._context.unitId),this.disposeWithMe(this._instanceSrv.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).subscribe(workbook=>{(workbook==null?void 0:workbook.getUnitId())===this._context.unitId?this._d=this._init():(this._disposeCurrent(),this._isUnitEditing&&(this._handleEditorInvisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.ESC,unitId:this._context.unitId}),this._isUnitEditing=!1))})),this._initEditorVisibilityListener()}dispose(){super.dispose(),this._disposeCurrent()}_disposeCurrent(){var _a2;(_a2=this._d)==null||_a2.dispose(),this._d=null}_init(){const d=new core.DisposableCollection;return this._subscribeToCurrentCell(d),this._initialKeyboardListener(d),this._initialCursorSync(d),this._listenEditorFocus(d),this._commandExecutedListener(d),this._cursorStateListener(d),d}_initEditorVisibilityListener(){this.disposeWithMe(this._editorBridgeService.visible$.pipe(rxjs.distinctUntilChanged((prev,curr)=>prev.visible===curr.visible)).subscribe(param=>{(param.unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY||param.unitId===this._context.unitId)&&param.visible?(this._isUnitEditing=!0,this._handleEditorVisible(param)):this._isUnitEditing&&(this._handleEditorInvisible(param),this._isUnitEditing=!1)}))}_listenEditorFocus(d){const renderConfig=this._getEditorObject();renderConfig&&d.add(renderConfig.document.onPointerDown$.subscribeEvent(()=>{if(this._isUnitEditing&&this._editorBridgeService.isVisible()){const param=this._editorBridgeService.getEditCellState(),editorId=this._editorBridgeService.getCurrentEditorId();if(!param||!editorId||!this._editorService.isSheetEditor(editorId))return;const skeleton=this._getEditorSkeleton(editorId);if(!skeleton)return;const{position,documentLayoutObject,canvasOffset,scaleX,scaleY}=param;this._fitTextSize(position,canvasOffset,skeleton,documentLayoutObject,scaleX,scaleY)}}))}_getEditorSkeleton(editorId){var _a2;return(_a2=this._renderManagerService.getRenderById(editorId))==null?void 0:_a2.with(docs.DocSkeletonManagerService).getSkeleton()}_getEditorViewModel(editorId){var _a2;return(_a2=this._renderManagerService.getRenderById(editorId))==null?void 0:_a2.with(docs.DocSkeletonManagerService).getViewModel()}_initialCursorSync(d){d.add(this._cellEditorManagerService.focus$.pipe(rxjs.filter(f2=>!!f2)).subscribe(()=>{this._textSelectionRenderManager.sync()}))}_subscribeToCurrentCell(d){d.add(this._editorBridgeService.currentEditCellState$.subscribe(editCellState=>{if(editCellState==null||this._editorBridgeService.isForceKeepVisible())return;const{position,documentLayoutObject,scaleX,editorUnitId}=editCellState;if(this._contextService.getContextValue(core.FOCUSING_EDITOR_STANDALONE)||this._contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE))return;const{startX,endX}=position,{textRotation,wrapStrategy,documentModel}=documentLayoutObject,{vertexAngle:angle}=engineRender.convertTextRotation(textRotation);documentModel.updateDocumentId(editorUnitId),wrapStrategy===core.WrapStrategy.WRAP&&angle===0&&documentModel.updateDocumentDataPageSize((endX-startX)/scaleX),this._instanceSrv.changeDoc(editorUnitId,documentModel),this._contextService.setContextValue(core.FOCUSING_EDITOR_BUT_HIDDEN,!0),this._textSelectionManagerService.replaceTextRanges([{startOffset:0,endOffset:0}]),this._textSelectionRenderManager.activate(HIDDEN_EDITOR_POSITION,HIDDEN_EDITOR_POSITION)}))}_fitTextSize(actualRangeWithCoord,canvasOffset,documentSkeleton,documentLayoutObject,scaleX=1,scaleY=1){const{startX,startY,endX,endY}=actualRangeWithCoord,documentDataModel=documentLayoutObject.documentModel;if(documentDataModel==null)return;const{actualWidth,actualHeight}=this._predictingSize(actualRangeWithCoord,canvasOffset,documentSkeleton,documentLayoutObject,scaleX,scaleY),{verticalAlign,paddingData,fill}=documentLayoutObject;let editorWidth=endX-startX,editorHeight=endY-startY;if(editorWidth<actualWidth&&(editorWidth=actualWidth),editorHeight<actualHeight)editorHeight=actualHeight,documentDataModel.updateDocumentDataMargin(paddingData);else{let offsetTop=0;verticalAlign===core.VerticalAlign.MIDDLE?offsetTop=(editorHeight-actualHeight)/2/scaleY:verticalAlign===core.VerticalAlign.TOP?offsetTop=paddingData.t||0:offsetTop=(editorHeight-actualHeight)/scaleY-(paddingData.b||0),offsetTop=offsetTop<(paddingData.t||0)?paddingData.t||0:offsetTop,documentDataModel.updateDocumentDataMargin({t:offsetTop})}documentSkeleton.calculate(),this._editAreaProcessing(editorWidth,editorHeight,actualRangeWithCoord,canvasOffset,fill,scaleX,scaleY)}_predictingSize(actualRangeWithCoord,canvasOffset,documentSkeleton,documentLayoutObject,scaleX=1,scaleY=1){const{startX,endX}=actualRangeWithCoord,{textRotation,wrapStrategy}=documentLayoutObject,documentDataModel=documentLayoutObject.documentModel,{vertexAngle:angle}=engineRender.convertTextRotation(textRotation),clientWidth=document.body.clientWidth;if(wrapStrategy===core.WrapStrategy.WRAP&&angle===0){const{actualWidth,actualHeight}=documentSkeleton.getActualSize();return{actualWidth:actualWidth*scaleX,actualHeight:actualHeight*scaleY}}documentDataModel==null||documentDataModel.updateDocumentDataPageSize((clientWidth-startX-canvasOffset.left)/scaleX),documentSkeleton.calculate();const size=documentSkeleton.getActualSize();let editorWidth=endX-startX;return editorWidth<size.actualWidth*scaleX+EDITOR_INPUT_SELF_EXTEND_GAP*scaleX&&(editorWidth=size.actualWidth*scaleX+EDITOR_INPUT_SELF_EXTEND_GAP*scaleX),documentDataModel==null||documentDataModel.updateDocumentDataPageSize(editorWidth/scaleX),documentDataModel==null||documentDataModel.updateDocumentRenderConfig({horizontalAlign:core.HorizontalAlign.UNSPECIFIED,cellValueType:void 0}),{actualWidth:editorWidth,actualHeight:size.actualHeight*scaleY}}_editAreaProcessing(editorWidth,editorHeight,actualRangeWithCoord,canvasOffset,fill,scaleX=1,scaleY=1){var _a2;const editorObject=this._getEditorObject();if(editorObject==null)return;function pxToNum2(width2){return Number.parseInt(width2.replace("px",""))}__name(pxToNum2,"pxToNum");const canvasElement=this._context.engine.getCanvasElement(),canvasClientRect=canvasElement.getBoundingClientRect(),widthOfCanvas=pxToNum2(canvasElement.style.width),{top,left,width}=canvasClientRect,scaleAdjust=width/widthOfCanvas;let{startX,startY}=actualRangeWithCoord;const{document:documentComponent,scene:editorScene,engine:docEngine}=editorObject,viewportMain=editorScene.getViewport(docs.VIEWPORT_KEY.VIEW_MAIN),clientHeight=document.body.clientHeight-startY-Number.parseFloat(styles$9.sheetFooterBarHeight)-canvasOffset.top-EDITOR_BORDER_SIZE*2,clientWidth=document.body.clientWidth-startX-canvasOffset.left;let physicHeight=editorHeight,scrollBar=viewportMain==null?void 0:viewportMain.getScrollBar();physicHeight>clientHeight?(physicHeight=clientHeight,scrollBar==null?viewportMain&&new engineRender.ScrollBar(viewportMain,{enableHorizontal:!1,barSize:8}):viewportMain==null||viewportMain.resetCanvasSizeAndUpdateScroll()):(scrollBar=null,(_a2=viewportMain==null?void 0:viewportMain.getScrollBar())==null||_a2.dispose()),editorWidth+=(scrollBar==null?void 0:scrollBar.barSize)||0,editorWidth>clientWidth&&(editorWidth=clientWidth),startX-=engineRender.FIX_ONE_PIXEL_BLUR_OFFSET,startY-=engineRender.FIX_ONE_PIXEL_BLUR_OFFSET,this._addBackground(editorScene,editorWidth/scaleX,editorHeight/scaleY,fill);const{scaleX:precisionScaleX,scaleY:precisionScaleY}=editorScene.getPrecisionScale();editorScene.transformByState({width:editorWidth*scaleAdjust/scaleX,height:editorHeight*scaleAdjust/scaleY,scaleX:scaleX*scaleAdjust,scaleY:scaleY*scaleAdjust}),documentComponent.resize(editorWidth*scaleAdjust/scaleX,editorHeight*scaleAdjust/scaleY),setTimeout(()=>{docEngine.resizeBySize(engineRender.fixLineWidthByScale(editorWidth,precisionScaleX),engineRender.fixLineWidthByScale(physicHeight,precisionScaleY))},0);const contentBoundingRect=this._layoutService.getContentElement().getBoundingClientRect(),canvasBoundingRect=canvasElement.getBoundingClientRect();startX=startX*scaleAdjust+(canvasBoundingRect.left-contentBoundingRect.left),startY=startY*scaleAdjust+(canvasBoundingRect.top-contentBoundingRect.top),this._cellEditorManagerService.setState({startX,startY,endX:editorWidth*scaleAdjust+startX,endY:physicHeight*scaleAdjust+startY,show:!0})}_addBackground(scene,editorWidth,editorHeight,fill){const fillRectKey="_backgroundRectHelperColor_",rect=scene.getObject(fillRectKey);rect==null&&fill==null||(rect==null?scene.addObjects([new engineRender.Rect(fillRectKey,{width:editorWidth,height:editorHeight,fill,evented:!1})],docs.DOCS_COMPONENT_MAIN_LAYER_INDEX):fill==null?rect.dispose():(rect.setProps({fill}),rect.transformByState({width:editorWidth,height:editorHeight})))}_handleEditorVisible(param){var _a2,_b2;const{eventType,keycode}=param;this._cursorChange=eventType===engineRender.DeviceInputEventType.PointerDown?2:1;const editCellState=this._editorBridgeService.getEditCellState();if(editCellState==null)return;const{position,documentLayoutObject,canvasOffset,scaleX,scaleY,editorUnitId,unitId,sheetId,isInArrayFormulaRange=!1}=editCellState,editorObject=this._getEditorObject();if(editorObject==null)return;this._setOpenForCurrent(unitId,sheetId);const{document:document2,scene}=editorObject;this._contextService.setContextValue(core.EDITOR_ACTIVATED,!0);const{documentModel:documentDataModel}=documentLayoutObject,skeleton=this._getEditorSkeleton(editorUnitId);if(!(!skeleton||!documentDataModel)){if(this._fitTextSize(position,canvasOffset,skeleton,documentLayoutObject,scaleX,scaleY),eventType===engineRender.DeviceInputEventType.Keyboard||eventType===engineRender.DeviceInputEventType.Dblclick&&isInArrayFormulaRange){const snapshot=core.Tools.deepClone(documentDataModel.getSnapshot()),documentViewModel=this._getEditorViewModel(editorUnitId);if(documentViewModel==null)return;this._resetBodyStyle(snapshot.body,!!isInArrayFormulaRange),documentDataModel.reset(snapshot),documentViewModel.reset(documentDataModel),document2.makeDirty(),(keycode===ui.KeyCode.BACKSPACE||eventType===engineRender.DeviceInputEventType.Dblclick)&&(skeleton.calculate(),this._editorBridgeService.changeEditorDirty(!0)),this._textSelectionManagerService.replaceTextRanges([{startOffset:0,endOffset:0}])}else if(eventType===engineRender.DeviceInputEventType.Dblclick){const cursor=documentDataModel.getBody().dataStream.length-2||0;(_a2=scene.getViewport(docs.VIEWPORT_KEY.VIEW_MAIN))==null||_a2.scrollToViewportPos({viewportScrollX:Number.POSITIVE_INFINITY}),this._textSelectionManagerService.replaceTextRanges([{startOffset:cursor,endOffset:cursor}])}(_b2=this._renderManagerService.getRenderById(unitId))==null||_b2.scene.resetCursor()}}_resetBodyStyle(body,removeStyle=!1){body.dataStream=core.DEFAULT_EMPTY_DOCUMENT_VALUE,body.textRuns!=null&&(body.textRuns.length===1&&!removeStyle?(body.textRuns[0].st=0,body.textRuns[0].ed=1):body.textRuns=void 0),body.paragraphs!=null&&(body.paragraphs.length===1?body.paragraphs[0].startIndex=0:body.paragraphs=[{startIndex:0}]),body.sectionBreaks!=null&&(body.sectionBreaks=void 0),body.tables!=null&&(body.tables=void 0),body.customRanges!=null&&(body.customRanges=void 0),body.customBlocks!=null&&(body.customBlocks=void 0)}_initialKeyboardListener(d){d.add(this._textSelectionRenderManager.onInputBefore$.subscribe(config=>{var _a2;if(!this._isCurrentSheetFocused())return;const isFocusFormulaEditor=this._contextService.getContextValue(core.FOCUSING_FX_BAR_EDITOR),isFocusSheets=this._contextService.getContextValue(core.FOCUSING_SHEET),unitId=(_a2=this._instanceSrv.getCurrentUniverDocInstance())==null?void 0:_a2.getUnitId();unitId&&isFocusSheets&&!isFocusFormulaEditor&&this._editorService.isSheetEditor(unitId)&&this._showEditorByKeyboard(config)}))}_showEditorByKeyboard(config){if(config==null)return;const event=config.event;this._commandService.executeCommand(SetCellEditVisibleOperation.id,{visible:!0,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:event.which,unitId:this._context.unitId})}_commandExecutedListener(d){const updateCommandList=[docs.RichTextEditingMutation.id,ui.SetEditorResizeOperation.id];d.add(this._commandService.onCommandExecuted(command=>{if(updateCommandList.includes(command.id)){const params=command.params,{unitId:commandUnitId}=params;if(!this._isCurrentSheetFocused()||!this._editorService.isSheetEditor(commandUnitId))return;const editorId=this._editorBridgeService.getCurrentEditorId();if(editorId==null)return;const skeleton=this._getEditorSkeleton(editorId);if(skeleton==null)return;this._editorBridgeService.changeEditorDirty(!0);const param=this._editorBridgeService.getEditCellState();if(param==null)return;const{position,documentLayoutObject,canvasOffset,scaleX,scaleY}=param;this._fitTextSize(position,canvasOffset,skeleton,documentLayoutObject,scaleX,scaleY)}})),d.add(this._commandService.onCommandExecuted(command=>{command.id===sheets.ClearSelectionFormatCommand.id&&this._editorBridgeService.refreshEditCellState()}));const closeEditorOperation=[SetCellEditVisibleArrowOperation.id];d.add(this._commandService.onCommandExecuted(command=>{if(closeEditorOperation.includes(command.id)){const params=command.params,{keycode,isShift}=params;if(keycode!=null&&(this._cursorChange===2||this._contextService.getContextValue(core.FOCUSING_FX_BAR_EDITOR))){this._moveInEditor(keycode,isShift);return}this._editorBridgeService.changeVisible(params)}command.id===SetCellEditVisibleWithF2Operation.id&&(this._cursorChange=2)}))}_setOpenForCurrent(unitId,sheetId){const sheetEditors=this._editorService.getAllEditor();for(const[_,sheetEditor]of sheetEditors)sheetEditor.isSheetEditor()&&(sheetEditor.setOpenForSheetUnitId(unitId),sheetEditor.setOpenForSheetSubUnitId(sheetId))}_getEditorObject(){return getEditorObject(this._editorBridgeService.getCurrentEditorId(),this._renderManagerService)}async _handleEditorInvisible(param){const{keycode}=param;this._setOpenForCurrent(null,null),this._cursorChange=0,this._exitInput(param);const editCellState=this._editorBridgeService.getEditCellState();if(editCellState==null)return;const{unitId,sheetId,row,column,documentLayoutObject}=editCellState;if(this._editorBridgeService.getEditorDirty()===!1){this._moveCursor(keycode);return}const workbook=this._context.unit;let worksheet=workbook.getActiveSheet();const workbookId=this._context.unitId,worksheetId=worksheet.getSheetId();if(keycode===ui.KeyCode.ESC){const selections=this._workbookSelections.getCurrentSelections();selections&&this._commandService.syncExecuteCommand(sheets.SetSelectionsOperation.id,{unitId:this._context.unit.getUnitId(),subUnitId:worksheetId,selections:[...selections]});return}workbookId===unitId&&sheetId!==worksheetId&&this._editorBridgeService.isForceKeepVisible()&&await this._commandService.executeCommand(sheets.SetWorksheetActivateCommand.id,{subUnitId:sheetId,unitId}),worksheet=workbook.getActiveSheet();const cellData=getCellDataByInput(worksheet.getCellRaw(row,column)||{},documentLayoutObject,this._lexerTreeBuilder,model=>this._resourceLoaderService.saveDoc(model),this._localService,this._functionService);if(!cellData){this._moveCursor(keycode);return}const context={subUnitId:sheetId,unitId,workbook,worksheet,row,col:column},cell=this._editorBridgeService.interceptor.fetchThroughInterceptors(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT)(cellData,context),finalCell=await this._editorBridgeService.interceptor.fetchThroughInterceptors(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT_ASYNC)(Promise.resolve(cell),context);this._commandService.executeCommand(sheets.SetRangeValuesCommand.id,{subUnitId:sheetId,unitId,range:{startRow:row,startColumn:column,endRow:row,endColumn:column},value:finalCell}),this._moveCursor(keycode)}_exitInput(param){this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(core.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(core.FOCUSING_EDITOR_BUT_HIDDEN,!1),this._contextService.setContextValue(core.FOCUSING_FX_BAR_EDITOR,!1),this._cellEditorManagerService.setState({show:param.visible});const editorUnitId=this._editorBridgeService.getCurrentEditorId();editorUnitId==null||!this._editorService.isSheetEditor(editorUnitId)||(this._undoRedoService.clearUndoRedo(editorUnitId),this._undoRedoService.clearUndoRedo(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))}_moveCursor(keycode){if(keycode==null||!MOVE_SELECTION_KEYCODE_LIST.includes(keycode))return;let direction=core.Direction.LEFT;switch(keycode){case ui.KeyCode.ENTER:direction=core.Direction.DOWN;break;case ui.KeyCode.TAB:direction=core.Direction.RIGHT;break;case ui.KeyCode.ARROW_DOWN:direction=core.Direction.DOWN;break;case ui.KeyCode.ARROW_UP:direction=core.Direction.UP;break;case ui.KeyCode.ARROW_LEFT:direction=core.Direction.LEFT;break;case ui.KeyCode.ARROW_RIGHT:direction=core.Direction.RIGHT;break}keycode===ui.KeyCode.ENTER||keycode===ui.KeyCode.TAB?this._commandService.executeCommand(MoveSelectionEnterAndTabCommand.id,{keycode,direction}):this._commandService.executeCommand(MoveSelectionCommand.id,{direction})}_cursorStateListener(d){const editorObject=this._getEditorObject(),{document:documentComponent}=editorObject;d.add(core.toDisposable(documentComponent.onPointerDown$.subscribeEvent(()=>{this._cursorChange===1&&(this._cursorChange=2)})))}_moveInEditor(keycode,isShift){let direction=core.Direction.LEFT;keycode===ui.KeyCode.ARROW_DOWN?direction=core.Direction.DOWN:keycode===ui.KeyCode.ARROW_UP?direction=core.Direction.UP:keycode===ui.KeyCode.ARROW_RIGHT&&(direction=core.Direction.RIGHT),isShift?this._commandService.executeCommand(docs.MoveSelectionOperation.id,{direction}):this._commandService.executeCommand(docs.MoveCursorOperation.id,{direction})}_isCurrentSheetFocused(){var _a2;return((_a2=this._instanceSrv.getFocusedUnit())==null?void 0:_a2.getUnitId())===this._context.unitId}},__name(_u,"EditingRenderController"),_u);EditingRenderController=__decorateClass$A([__decorateParam$A(1,ui.ILayoutService),__decorateParam$A(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$A(3,core.IUndoRedoService),__decorateParam$A(4,core.IContextService),__decorateParam$A(5,core.IUniverInstanceService),__decorateParam$A(6,engineRender.IRenderManagerService),__decorateParam$A(7,IEditorBridgeService),__decorateParam$A(8,ICellEditorManagerService),__decorateParam$A(9,engineRender.ITextSelectionRenderManager),__decorateParam$A(10,core.Inject(engineFormula.LexerTreeBuilder)),__decorateParam$A(11,engineFormula.IFunctionService),__decorateParam$A(12,core.Inject(docs.TextSelectionManagerService)),__decorateParam$A(13,core.ICommandService),__decorateParam$A(14,core.Inject(core.LocaleService)),__decorateParam$A(15,ui.IEditorService),__decorateParam$A(16,core.IResourceLoaderService)],EditingRenderController);function getCellDataByInput(cellData,documentLayoutObject,lexerTreeBuilder,getSnapshot,localeService,functionService){cellData=core.Tools.deepClone(cellData);const{documentModel}=documentLayoutObject;if(documentModel==null)return null;const snapshot=getSnapshot(documentModel),{body}=snapshot;if(body==null)return null;cellData.t=void 0;const data=body.dataStream;let newDataStream=data.substring(data.length-2,data.length)===core.DEFAULT_EMPTY_DOCUMENT_VALUE?data.substring(0,data.length-2):data;const currentLocale=localeService.getCurrentLocale();if(newDataStream=normalizeString(newDataStream,lexerTreeBuilder,currentLocale,functionService),core.isFormulaString(newDataStream)){if(cellData.f===newDataStream)return null;const bracketCount=lexerTreeBuilder.checkIfAddBracket(newDataStream);for(let i=0;i<bracketCount;i++)newDataStream+=engineFormula.matchToken.CLOSE_BRACKET;cellData.f=newDataStream,cellData.si=null,cellData.v=null,cellData.p=null}else if(isForceString(newDataStream)){const v=extractStringFromForceString(newDataStream);cellData.v=v,cellData.f=null,cellData.si=null,cellData.p=null,cellData.t=core.CellValueType.FORCE_STRING}else if(isRichText(body))body.dataStream===`\r
22
+ `?(cellData.v="",cellData.f=null,cellData.si=null,cellData.p=null):(cellData.p=snapshot,cellData.v=null,cellData.f=null,cellData.si=null);else{if((newDataStream===cellData.v||newDataStream===""&&cellData.v==null)&&cellData.p==null)return null;cellData.v=newDataStream,cellData.f=null,cellData.si=null,cellData.p=null}return cellData}__name(getCellDataByInput,"getCellDataByInput");function isRichText(body){const{textRuns=[],paragraphs=[],customRanges,customBlocks=[]}=body,bodyNoLineBreak=body.dataStream.replace(`\r
23
+ `,"");return textRuns.some(textRun=>textRun.ts&&(textRun.st!==0||textRun.ed!==bodyNoLineBreak.length))||paragraphs.some(paragraph=>paragraph.bullet)||paragraphs.length>=2||!!(customRanges!=null&&customRanges.length)||customBlocks.length>0}__name(isRichText,"isRichText");var __defProp$z=Object.defineProperty,__getOwnPropDesc$z=Object.getOwnPropertyDescriptor,__decorateClass$z=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$z(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$z(target,key,result),result},"__decorateClass$z"),__decorateParam$z=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$z");let FormatPainterRenderController=(_v=class extends core.Disposable{constructor(_context,_formatPainterService){super(),this._context=_context,this._formatPainterService=_formatPainterService,this._initialize()}_initialize(){this._bindFormatPainterStatus()}_bindFormatPainterStatus(){this.disposeWithMe(core.toDisposable(this._formatPainterService.status$.subscribe(status=>{const scene=this._context.scene;scene&&(status!==FormatPainterStatus.OFF?scene.setDefaultCursor(engineRender.CURSOR_TYPE.CELL):scene.setDefaultCursor(engineRender.CURSOR_TYPE.DEFAULT))})))}},__name(_v,"FormatPainterRenderController"),_v);FormatPainterRenderController=__decorateClass$z([__decorateParam$z(1,IFormatPainterService)],FormatPainterRenderController);var __defProp$y=Object.defineProperty,__getOwnPropDesc$y=Object.getOwnPropertyDescriptor,__decorateClass$y=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$y(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$y(target,key,result),result},"__decorateClass$y"),__decorateParam$y=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$y");const FREEZE_ROW_MAIN_NAME="__SpreadsheetFreezeRowMainName__",FREEZE_ROW_HEADER_NAME="__SpreadsheetFreezeRowHeaderName__",FREEZE_COLUMN_MAIN_NAME="__SpreadsheetFreezeColumnMainName__",FREEZE_COLUMN_HEADER_NAME="__SpreadsheetFreezeColumnHeaderName__",FREEZE_SIZE_NORMAL=2,AUXILIARY_CLICK_HIDDEN_OBJECT_TRANSPARENCY=.01,FREEZE_PERMISSION_CHECK=core.createInterceptorKey("freezePermissionCheck");exports2.HeaderFreezeRenderController=(_w=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_commandService,_selectionManagerService,_scrollManagerService,_themeService,_sheetInterceptorService,_injector){super();__publicField(this,"_rowFreezeHeaderRect");__publicField(this,"_rowFreezeMainRect");__publicField(this,"_columnFreezeHeaderRect");__publicField(this,"_columnFreezeMainRect");__publicField(this,"_freezeDownSubs");__publicField(this,"_freezePointerEnterSubs");__publicField(this,"_freezePointerLeaveSubs");__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_changeToRow",-1);__publicField(this,"_changeToColumn",-1);__publicField(this,"_changeToOffsetX",0);__publicField(this,"_changeToOffsetY",0);__publicField(this,"_activeViewport",null);__publicField(this,"_freezeNormalHeaderColor","");__publicField(this,"_freezeNormalMainColor","");__publicField(this,"_freezeActiveColor","");__publicField(this,"_freezeHoverColor","");__publicField(this,"_lastFreeze");__publicField(this,"interceptor",new core.InterceptorManager({FREEZE_PERMISSION_CHECK}));this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._selectionManagerService=_selectionManagerService,this._scrollManagerService=_scrollManagerService,this._themeService=_themeService,this._sheetInterceptorService=_sheetInterceptorService,this._injector=_injector,this._initialize()}dispose(){super.dispose()}_initialize(){this._skeletonListener(),this._commandExecutedListener(),this._themeChangeListener(),this._interceptorCommands(),this._bindViewportScroll(),this._zoomRefresh()}_createFreeze(freezeDirectionType=0,freezeConfig){var _a2;const config=freezeConfig!=null?freezeConfig:this._getFreeze();if(config==null)return null;const skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton,{startRow:freezeRow,startColumn:freezeColumn}=config,position=this._getPositionByIndex(freezeRow,freezeColumn);if(position==null||skeleton==null)return null;const sheetObject=this._getSheetObject(),engine=sheetObject.engine,canvasMaxWidth=(engine==null?void 0:engine.width)||0,canvasMaxHeight=(engine==null?void 0:engine.height)||0,scene=sheetObject.scene,{startX,startY}=position,{rowTotalHeight,columnTotalWidth,rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton,shapeWidth=canvasMaxWidth>columnTotalWidth+rowHeaderWidthAndMarginLeft?canvasMaxWidth:columnTotalWidth+columnHeaderHeightAndMarginTop,shapeHeight=canvasMaxHeight>rowTotalHeight+columnHeaderHeightAndMarginTop?canvasMaxHeight:rowTotalHeight+columnHeaderHeightAndMarginTop;this._changeToRow=freezeRow,this._changeToColumn=freezeColumn,this._changeToOffsetX=startX,this._changeToOffsetY=startY;const scale=Math.max(scene.scaleX,scene.scaleY);let FREEZE_SIZE=FREEZE_SIZE_NORMAL/(scale<1?1:scale);if(freezeDirectionType===0){(freezeRow===-1||freezeRow===0)&&(FREEZE_SIZE=FREEZE_SIZE*2);const FREEZE_OFFSET=FREEZE_SIZE;this._rowFreezeHeaderRect=new engineRender.Rect(FREEZE_ROW_HEADER_NAME,{fill:this._freezeNormalHeaderColor,width:rowHeaderWidthAndMarginLeft,height:FREEZE_SIZE,left:0,top:startY-FREEZE_OFFSET,zIndex:3});let fill=this._freezeNormalHeaderColor;(freezeRow===-1||freezeRow===0)&&(fill=this._freezeNormalMainColor),this._rowFreezeMainRect=new engineRender.Rect(FREEZE_ROW_MAIN_NAME,{fill,width:shapeWidth*2/scale,height:FREEZE_SIZE,left:rowHeaderWidthAndMarginLeft,top:startY-FREEZE_OFFSET,zIndex:3}),scene.addObjects([this._rowFreezeHeaderRect,this._rowFreezeMainRect],SHEET_COMPONENT_HEADER_LAYER_INDEX)}else{(freezeColumn===-1||freezeColumn===0)&&(FREEZE_SIZE=FREEZE_SIZE*2);const FREEZE_OFFSET=FREEZE_SIZE;this._columnFreezeHeaderRect=new engineRender.Rect(FREEZE_COLUMN_HEADER_NAME,{fill:this._freezeNormalHeaderColor,width:FREEZE_SIZE,height:columnHeaderHeightAndMarginTop,left:startX-FREEZE_OFFSET,top:0,zIndex:3});let fill=this._freezeNormalHeaderColor;(freezeColumn===-1||freezeColumn===0)&&(fill=this._freezeNormalMainColor),this._columnFreezeMainRect=new engineRender.Rect(FREEZE_COLUMN_MAIN_NAME,{fill,width:FREEZE_SIZE,height:shapeHeight*2/scale,left:startX-FREEZE_OFFSET,top:columnHeaderHeightAndMarginTop,zIndex:3}),scene.addObjects([this._columnFreezeHeaderRect,this._columnFreezeMainRect],SHEET_COMPONENT_HEADER_LAYER_INDEX)}this._eventBinding(freezeDirectionType)}_eventBinding(freezeDirectionType=0){let freezeObjectHeaderRect=this._rowFreezeHeaderRect,freezeObjectMainRect=this._rowFreezeMainRect;freezeDirectionType===1&&(freezeObjectHeaderRect=this._columnFreezeHeaderRect,freezeObjectMainRect=this._columnFreezeMainRect);const sheetObject=this._getSheetObject();if(sheetObject==null)return;const{scene}=sheetObject;if(this._freezePointerEnterSubs=new rxjs.Subscription,this._freezePointerLeaveSubs=new rxjs.Subscription,this._freezeDownSubs=new rxjs.Subscription,freezeObjectMainRect){const _freezeObjectMainRectEnterSub=freezeObjectMainRect.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(null,null))return!1;freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeHoverColor,zIndex:4}),scene.setCursor(engineRender.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(_freezeObjectMainRectEnterSub);const _freezeObjectMainPointerLeaveSub=freezeObjectMainRect.onPointerLeave$.subscribeEvent(()=>{freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),scene.resetCursor()});this._freezePointerLeaveSubs.add(_freezeObjectMainPointerLeaveSub)}if(freezeObjectHeaderRect){const _freezeObjHeaderPointerEnterSub=freezeObjectHeaderRect.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(null,null))return!1;freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeHoverColor,zIndex:4}),scene.setCursor(engineRender.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(_freezeObjHeaderPointerEnterSub);const _freezeObjHeaderPointerLeaveSub=freezeObjectHeaderRect.onPointerLeave$.subscribeEvent(()=>{freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),scene.resetCursor()});this._freezePointerLeaveSubs.add(_freezeObjHeaderPointerLeaveSub)}const s1=freezeObjectHeaderRect==null?void 0:freezeObjectHeaderRect.onPointerDown$.subscribeEvent(evt=>{this._freezeDown(evt,freezeObjectHeaderRect,freezeObjectMainRect,freezeDirectionType)});s1&&this._freezeDownSubs.add(s1);const s2=freezeObjectMainRect==null?void 0:freezeObjectMainRect.onPointerDown$.subscribeEvent(evt=>{this._freezeDown(evt,freezeObjectHeaderRect,freezeObjectMainRect,freezeDirectionType)});s2&&this._freezeDownSubs.add(s2)}_getCurrentLastVisible(){var _a2,_b2,_c2,_d2,_e2,_f2,_g2;const sheetObject=this._getSheetObject();if(sheetObject==null)return;const skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton;if(skeleton==null)return;const scene=sheetObject.scene,scale=Math.max(scene.scaleX,scene.scaleY),currentScroll=this._scrollManagerService.getCurrentScrollState(),skeletonViewHeight=(sheetObject.engine.height-skeleton.columnHeaderHeight)/scale,skeletonViewWidth=(sheetObject.engine.width-skeleton.rowHeaderWidth)/scale,startRow=(_b2=currentScroll==null?void 0:currentScroll.sheetViewStartRow)!=null?_b2:0,startHeight=startRow===0?-((_c2=currentScroll==null?void 0:currentScroll.offsetY)!=null?_c2:0):skeleton.rowHeightAccumulation[startRow-1]-((_d2=currentScroll==null?void 0:currentScroll.offsetY)!=null?_d2:0);let lastRow=0,hadFind=!1;for(let i=startRow,len=skeleton.rowHeightAccumulation.length;i<len;i++)if(skeleton.rowHeightAccumulation[i]-startHeight>skeletonViewHeight){lastRow=i,hadFind=!0;break}hadFind||(lastRow=skeleton.rowHeightAccumulation.length-1);const startColumn=(_e2=currentScroll==null?void 0:currentScroll.sheetViewStartColumn)!=null?_e2:0,startWidth=startColumn===0?-((_f2=currentScroll==null?void 0:currentScroll.offsetX)!=null?_f2:0):skeleton.columnWidthAccumulation[startColumn-1]-((_g2=currentScroll==null?void 0:currentScroll.offsetX)!=null?_g2:0);let lastColumn=0,hadFindCol=!1;for(let i=startColumn,len=skeleton.columnWidthAccumulation.length;i<len;i++)if(skeleton.columnWidthAccumulation[i]-startWidth>skeletonViewWidth){lastColumn=i,hadFindCol=!0;break}return hadFindCol||(lastColumn=skeleton.columnWidthAccumulation.length-1),{lastRow,lastColumn}}_getActiveViewport(evt){var _a2;const viewports=(_a2=this._getSheetObject())==null?void 0:_a2.scene.getViewports();return viewports&&viewports.find(i=>i.isHit(new engineRender.Vector2(evt.offsetX,evt.offsetY)))||null}_freezeDown(evt,freezeObjectHeaderRect,freezeObjectMainRect,freezeDirectionType=0){var _a2;const skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton;if(skeleton==null)return;const sheetObject=this._getSheetObject();if(sheetObject==null)return;if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(null,null))return!1;const{scene}=sheetObject;scene.setCursor(engineRender.CURSOR_TYPE.GRABBING),scene.disableEvent();const last=this._getCurrentLastVisible(),lastRowY=last===void 0?Number.POSITIVE_INFINITY:skeleton.rowHeightAccumulation[last.lastRow],lastColumnX=last===void 0?Number.POSITIVE_INFINITY:skeleton.columnWidthAccumulation[last.lastColumn-1]+skeleton.rowHeaderWidth;this._activeViewport=null;const oldFreeze=this._getFreeze();oldFreeze&&(this._changeToColumn=oldFreeze.startColumn,this._changeToRow=oldFreeze.startRow),this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{var _a3,_b2,_c2,_d2;const activeViewport=this._getActiveViewport(moveEvt),{startX,startY,row,column}=getCoordByOffset(moveEvt.offsetX,moveEvt.offsetY,scene,skeleton,activeViewport||void 0,!0);if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(null,null))return!1;scene.setCursor(engineRender.CURSOR_TYPE.GRABBING);const FREEZE_SIZE=FREEZE_SIZE_NORMAL/Math.max(scene.scaleX,scene.scaleY);freezeDirectionType===0?((_a3=freezeObjectHeaderRect.transformByState({top:Math.min(startY,lastRowY)-FREEZE_SIZE/2}))==null||_a3.setProps({fill:this._freezeActiveColor}),(_b2=freezeObjectMainRect.transformByState({top:Math.min(startY,lastRowY)-FREEZE_SIZE/2}))==null||_b2.setProps({fill:this._freezeNormalHeaderColor}),this._changeToRow=last===void 0?row:Math.min(row,last.lastRow),this._changeToOffsetY=Math.min(startY,lastRowY),this._activeViewport=activeViewport):((_c2=freezeObjectHeaderRect.transformByState({left:Math.min(startX,lastColumnX)-FREEZE_SIZE/2}))==null||_c2.setProps({fill:this._freezeActiveColor}),(_d2=freezeObjectMainRect.transformByState({left:Math.min(startX,lastColumnX)-FREEZE_SIZE/2}))==null||_d2.setProps({fill:this._freezeNormalHeaderColor}),this._changeToColumn=last===void 0?column:Math.min(column,last.lastColumn),this._changeToOffsetX=startX,this._activeViewport=activeViewport)}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a3,_b2;scene.resetCursor(),scene.enableEvent(),this._clearObserverEvent();const{rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton;freezeDirectionType===0&&(this._changeToRow===0||this._changeToRow===-1)||freezeDirectionType===1&&(this._changeToColumn===0||this._changeToColumn===-1)?(freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor}),freezeObjectMainRect.setProps({fill:this._freezeNormalMainColor})):(freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor}),freezeObjectMainRect==null||freezeObjectMainRect.setProps({fill:this._freezeNormalHeaderColor}));const FREEZE_SIZE=FREEZE_SIZE_NORMAL/Math.max(scene.scaleX,scene.scaleY);freezeDirectionType===0?(this._changeToRow===0||this._changeToRow===-1)&&(freezeObjectHeaderRect.transformByState({top:columnHeaderHeightAndMarginTop-FREEZE_SIZE}),freezeObjectMainRect.transformByState({top:columnHeaderHeightAndMarginTop-FREEZE_SIZE})):(this._changeToColumn===0||this._changeToColumn===-1)&&(freezeObjectHeaderRect.transformByState({left:rowHeaderWidthAndMarginLeft-FREEZE_SIZE}),freezeObjectMainRect.transformByState({left:rowHeaderWidthAndMarginLeft-FREEZE_SIZE}));const sheetViewScroll=this._scrollManagerService.getCurrentScrollState()||{sheetViewStartRow:0,sheetViewStartColumn:0},{sheetViewStartRow,sheetViewStartColumn}=sheetViewScroll;if(sheetViewStartColumn==null||sheetViewStartRow==null)return;const workbook=this._context.unit,worksheet=workbook.getActiveSheet();if(!worksheet)return;const oldFreeze2=(_a3=worksheet.getConfig())==null?void 0:_a3.freeze;let xSplit=(oldFreeze2==null?void 0:oldFreeze2.xSplit)||0,ySplit=(oldFreeze2==null?void 0:oldFreeze2.ySplit)||0;const viewPortKey=(_b2=this._activeViewport)==null?void 0:_b2.viewportKey;freezeDirectionType===0&&(!viewPortKey||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP?ySplit=this._changeToRow-(oldFreeze2.startRow-oldFreeze2.ySplit):ySplit=this._changeToRow-sheetViewStartRow,ySplit=ySplit<0?0:ySplit),freezeDirectionType===1&&(!viewPortKey||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT?xSplit=this._changeToColumn-(oldFreeze2.startColumn-oldFreeze2.xSplit):xSplit=this._changeToColumn-sheetViewStartColumn,xSplit=xSplit<0?0:xSplit),this._commandService.executeCommand(sheets.SetFrozenCommand.id,{startRow:ySplit===0?-1:this._changeToRow,startColumn:xSplit===0?-1:this._changeToColumn,ySplit,xSplit,unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId()})})}_getViewports(){const sheetObject=this._getSheetObject();if(sheetObject==null)return;const{scene}=sheetObject,viewColumnLeft=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT),viewColumnRight=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT),viewRowTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP),viewRowBottom=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM),viewLeftTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP),viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),viewMainLeftTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP),viewMainLeft=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT),viewMainTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(!(viewColumnLeft==null||viewColumnRight==null||viewRowTop==null||viewRowBottom==null||viewLeftTop==null||viewMain==null||viewMainLeftTop==null||viewMainLeft==null||viewMainTop==null))return{viewMain,viewMainLeftTop,viewMainLeft,viewMainTop,viewColumnLeft,viewColumnRight,viewRowTop,viewRowBottom,viewLeftTop}}_bindViewportScroll(){const viewports=this._getViewports();if(!viewports)return;const{viewRowBottom,viewColumnRight,viewMainLeft,viewMainTop}=viewports;this.disposeWithMe(this._scrollManagerService.validViewportScrollInfo$.subscribe(param=>{if(!param)return;const{scrollX,scrollY,viewportScrollX,viewportScrollY}=param;viewRowBottom.isActive&&viewRowBottom.updateScrollVal({scrollY,viewportScrollY}),viewColumnRight.isActive&&viewColumnRight.updateScrollVal({scrollX,viewportScrollX}),viewMainLeft.isActive&&viewMainLeft.updateScrollVal({scrollY,viewportScrollY}),viewMainTop.isActive&&viewMainTop.updateScrollVal({scrollX,viewportScrollX})}))}_updateViewport(row=-1,column=-1,ySplit=0,xSplit=0,resetScroll=3){var _a2;const skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton;if(skeleton==null)return;const{rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton,viewports=this._getViewports();if(!viewports)return;const{viewMain,viewMainLeftTop,viewMainLeft,viewMainTop,viewColumnLeft,viewColumnRight,viewRowTop,viewRowBottom,viewLeftTop}=viewports;viewColumnRight.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:0,height:columnHeaderHeightAndMarginTop,right:0}),viewRowBottom.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop,bottom:0,width:rowHeaderWidthAndMarginLeft}),viewLeftTop.resizeWhenFreezeChange({left:0,top:0,width:rowHeaderWidthAndMarginLeft,height:columnHeaderHeightAndMarginTop});let isTopView=!0,isLeftView=!0;viewMainLeftTop.enable(),(row===-1||row===0)&&(isTopView=!1),(column===-1||column===0)&&(isLeftView=!1);const startSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(row-ySplit,column-xSplit),endSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(row,column);if(viewMainLeftTop.disable(),viewMainTop.disable(),viewMainLeft.disable(),viewRowTop.disable(),viewColumnLeft.disable(),viewMainLeftTop.resetPadding(),viewMainTop.resetPadding(),viewMainLeft.resetPadding(),viewRowTop.resetPadding(),viewColumnLeft.resetPadding(),isTopView===!1&&isLeftView===!1)viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,bottom:0,right:0}),viewMain.resetPadding();else if(isTopView===!0&&isLeftView===!1){const topGap=endSheetView.startY-startSheetView.startY;viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,right:0}),viewMain.setPadding({startY:startSheetView.startY,endY:endSheetView.startY,startX:0,endX:0}),resetScroll&2&&this._commandService.executeCommand(ScrollCommand.id,{sheetViewStartRow:0,offsetY:0}),viewMainTop.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,height:topGap,right:0}),viewMainTop.updateScrollVal({viewportScrollY:startSheetView.startY,rawScrollX:viewMain.scrollX,viewportScrollX:viewMain.viewportScrollX}),viewRowTop.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop,width:rowHeaderWidthAndMarginLeft,height:topGap}),viewRowTop.updateScrollVal({viewportScrollY:startSheetView.startY}),viewRowBottom.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,width:rowHeaderWidthAndMarginLeft}),viewMainTop.enable(),viewRowTop.enable()}else if(isTopView===!1&&isLeftView===!0){const leftGap=endSheetView.startX-startSheetView.startX;viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:columnHeaderHeightAndMarginTop,bottom:0,right:0}),viewMain.setPadding({startX:startSheetView.startX,endX:endSheetView.startX,startY:0,endY:0}),resetScroll&1&&this._commandService.executeCommand(ScrollCommand.id,{sheetViewStartColumn:0,offsetX:0}),viewMainLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,width:leftGap,bottom:0,right:0}),viewMainLeft.updateScrollVal({viewportScrollX:startSheetView.startX,rawScrollY:viewMain.scrollY,viewportScrollY:viewMain.viewportScrollY}),viewColumnLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:0,width:leftGap,height:columnHeaderHeightAndMarginTop}),viewColumnLeft.updateScrollVal({viewportScrollX:startSheetView.startX}),viewColumnRight.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:0,height:columnHeaderHeightAndMarginTop,right:0}),viewMainLeft.enable(),viewColumnLeft.enable()}else{const leftGap=endSheetView.startX-startSheetView.startX,topGap=endSheetView.startY-startSheetView.startY;viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,right:0}),viewMain.setPadding({startY:startSheetView.startY,endY:endSheetView.startY,startX:startSheetView.startX,endX:endSheetView.startX}),resetScroll&&this._commandService.executeCommand(ScrollCommand.id,{...resetScroll&1?{sheetViewStartColumn:0,offsetX:0}:null,...resetScroll&2?{sheetViewStartRow:0,offsetY:0}:null}),viewMainLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop+topGap,width:leftGap,bottom:0}),viewMainLeft.updateScrollVal({viewportScrollX:startSheetView.startX,rawScrollY:viewMain.scrollY,viewportScrollY:viewMain.viewportScrollY}),viewMainTop.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:columnHeaderHeightAndMarginTop,height:topGap,right:0}),viewMainTop.updateScrollVal({viewportScrollY:startSheetView.startY,rawScrollX:viewMain.scrollX,viewportScrollX:viewMain.viewportScrollX}),viewMainLeftTop.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,width:leftGap,height:topGap}),viewMainLeftTop.updateScrollVal({viewportScrollX:startSheetView.startX,viewportScrollY:startSheetView.startY}),viewRowTop.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop,width:rowHeaderWidthAndMarginLeft,height:topGap}),viewRowTop.updateScrollVal({viewportScrollY:startSheetView.startY}),viewRowBottom.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,width:rowHeaderWidthAndMarginLeft}),viewColumnLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:0,width:leftGap,height:columnHeaderHeightAndMarginTop}),viewColumnLeft.updateScrollVal({viewportScrollX:startSheetView.startX}),viewColumnRight.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:0,height:columnHeaderHeightAndMarginTop,right:0}),viewMainLeftTop.enable(),viewMainTop.enable(),viewMainLeft.enable(),viewRowTop.enable(),viewColumnLeft.enable()}}_skeletonListener(){this.disposeWithMe(core.toDisposable(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{[sheets.SetWorksheetActiveOperation.id,sheets.InsertRangeMoveDownCommand.id,sheets.InsertRangeMoveRightCommand.id].includes((param==null?void 0:param.commandId)||"")&&this._refreshCurrent()})))}_refreshCurrent(){const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const freeze=worksheet.getConfig().freeze,{startRow=-1,startColumn=-1,ySplit=0,xSplit=0}=freeze;this._refreshFreeze(startRow,startColumn,ySplit,xSplit,0)}_themeChangeListener(){this._themeChange(this._themeService.getCurrentTheme()),this.disposeWithMe(this._themeService.currentTheme$.subscribe(style=>{this._clearFreeze(),this._themeChange(style),this._refreshCurrent()}))}_themeChange(style){this._freezeNormalHeaderColor=style.grey400,this._freezeNormalMainColor=new core.ColorKit(style.grey400).setAlpha(AUXILIARY_CLICK_HIDDEN_OBJECT_TRANSPARENCY).toRgbString(),this._freezeActiveColor=style.primaryColor,this._freezeHoverColor=style.grey500}_interceptorCommands(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:__name(command=>{const empty={redos:[],undos:[]},freeze=this._getFreeze();if(!freeze)return empty;const createFreezeMutationAndRefresh=__name(newFreeze=>{const workbook=this._context.unit,unitId=workbook.getUnitId(),worksheet=workbook.getActiveSheet();if(!worksheet)return empty;const subUnitId=worksheet.getSheetId();this._refreshFreeze(newFreeze.startRow,newFreeze.startColumn,newFreeze.ySplit,newFreeze.xSplit,0);const redoMutationParams={...newFreeze,unitId,subUnitId,resetScroll:!1},undoMutationParams=sheets.SetFrozenMutationFactory(this._injector,redoMutationParams);return{undos:[{id:sheets.SetFrozenMutation.id,params:undoMutationParams}],redos:[{id:sheets.SetFrozenMutation.id,params:redoMutationParams}]}},"createFreezeMutationAndRefresh");if(command.id===sheets.InsertRowCommand.id){const params=command.params,{range,direction}=params,insertCount=range.endRow-range.startRow+1;if(range.startRow+1<freeze.startRow||range.startRow+1===freeze.startRow&&direction===core.Direction.UP){const newFreeze={...freeze,startRow:Math.max(1,freeze.startRow+insertCount),ySplit:Math.max(1,freeze.ySplit+insertCount)};return createFreezeMutationAndRefresh(newFreeze)}}if(command.id===sheets.InsertColCommand.id){const params=command.params,{range,direction}=params,insertCount=range.endColumn-range.startColumn+1;if(range.startColumn+1<freeze.startColumn||range.startColumn+1===freeze.startColumn&&direction===core.Direction.LEFT){const newFreeze={...freeze,startColumn:Math.max(1,freeze.startColumn+insertCount),xSplit:Math.max(1,freeze.xSplit+insertCount)};return createFreezeMutationAndRefresh(newFreeze)}}if(command.id===sheets.MoveColsCommand.id){const selections=this._selectionManagerService.getCurrentSelections(),{fromRange:{startColumn:fromCol},toRange:{startColumn:toCol}}=command.params,filteredSelections=selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.COLUMN&&selection.range.startColumn<=fromCol&&fromCol<=selection.range.endColumn);if(!(filteredSelections!=null&&filteredSelections.length))return empty;const sourceRange=filteredSelections[0].range,targetRange={...sourceRange,startColumn:toCol,endColumn:toCol+sourceRange.endColumn-sourceRange.startColumn};if(!freeze||freeze.startColumn<=0||sourceRange.startColumn>=freeze.startColumn&&targetRange.startColumn>=freeze.startColumn||sourceRange.startColumn===targetRange.startColumn||sourceRange.endColumn<freeze.startColumn&&targetRange.startColumn<freeze.startColumn)return empty;const totalColCount=sourceRange.endColumn-sourceRange.startColumn+1,moveFreezeColCount=Math.max(Math.min(freeze.startColumn,sourceRange.endColumn+1)-sourceRange.startColumn,0);let newStartColumn,newXSplit;targetRange.startColumn>=freeze.startColumn?(newStartColumn=Math.max(freeze.startColumn-moveFreezeColCount,1),newXSplit=Math.max(freeze.xSplit-moveFreezeColCount,1)):(newStartColumn=freeze.startColumn+totalColCount-moveFreezeColCount,newXSplit=freeze.xSplit+totalColCount-moveFreezeColCount);const redoMutationParams={...freeze,startColumn:newStartColumn,xSplit:newXSplit};return createFreezeMutationAndRefresh(redoMutationParams)}if(command.id===sheets.MoveRowsCommand.id){const selections=this._selectionManagerService.getCurrentSelections(),{fromRange:{startRow:fromRow},toRange:{startRow:toRow}}=command.params,filteredSelections=selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.ROW&&selection.range.startRow<=fromRow&&fromRow<=selection.range.endRow);if(!(filteredSelections!=null&&filteredSelections.length))return empty;const sourceRange=filteredSelections[0].range,targetRange={...sourceRange,startRow:toRow,endRow:toRow+sourceRange.endRow-sourceRange.startRow};if(!freeze||freeze.startRow<=0||sourceRange.startRow>=freeze.startRow&&targetRange.startRow>=freeze.startRow||sourceRange.startRow===targetRange.startRow||sourceRange.endRow<freeze.startRow&&targetRange.startRow<freeze.startRow)return empty;const totalColCount=sourceRange.endRow-sourceRange.startRow+1,moveFreezeColCount=Math.max(Math.min(freeze.startRow,sourceRange.endRow+1)-sourceRange.startRow,0);let newStartRow,newYSplit;targetRange.startRow>=freeze.startRow?(newStartRow=Math.max(freeze.startRow-moveFreezeColCount,1),newYSplit=Math.max(freeze.ySplit-moveFreezeColCount,1)):(newStartRow=freeze.startRow+totalColCount-moveFreezeColCount,newYSplit=freeze.ySplit+totalColCount-moveFreezeColCount);const redoMutationParams={...freeze,startRow:newStartRow,ySplit:newYSplit};return createFreezeMutationAndRefresh(redoMutationParams)}if(command.id===sheets.RemoveColCommand.id||command.id===sheets.RemoveRowCommand.id){const params=command.params,range=params.range;if(range.rangeType===core.RANGE_TYPE.COLUMN&&range.startColumn<freeze.startColumn){const deleteFreezeColCount=Math.min(freeze.startColumn,range.endColumn+1)-range.startColumn,newFreeze={...freeze,startColumn:Math.max(1,freeze.startColumn-deleteFreezeColCount),xSplit:Math.max(1,freeze.xSplit-deleteFreezeColCount)};return createFreezeMutationAndRefresh(newFreeze)}if(params.range.rangeType===core.RANGE_TYPE.ROW&&range.startRow<freeze.startRow){const deleteFreezeRowCount=Math.min(freeze.startRow,range.endRow+1)-range.startRow,newFreeze={...freeze,startRow:Math.max(1,freeze.startRow-deleteFreezeRowCount),ySplit:Math.max(1,freeze.ySplit-deleteFreezeRowCount)};return createFreezeMutationAndRefresh(newFreeze)}}return empty},"getMutations")}))}_commandExecutedListener(){const updateCommandList=[sheets.SetFrozenMutation.id,SetZoomRatioOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(updateCommandList.includes(command.id)){const lastFreeze=this._lastFreeze,workbook=this._context.unit,worksheet=workbook.getActiveSheet(),params=command.params,{unitId,subUnitId}=params;if(!(unitId===workbook.getUnitId()&&subUnitId===(worksheet==null?void 0:worksheet.getSheetId())))return;const freeze=worksheet.getConfig().freeze;if(this._lastFreeze=freeze,freeze==null)return;let resetScroll=0;const{startRow=-1,startColumn=-1,ySplit=0,xSplit=0}=freeze;(!lastFreeze||lastFreeze.startRow!==startRow||lastFreeze.ySplit!==ySplit)&&(resetScroll|=2),(!lastFreeze||lastFreeze.startColumn!==startColumn||lastFreeze.xSplit!==xSplit)&&(resetScroll|=1),params.resetScroll===!1&&(resetScroll=0),this._refreshFreeze(startRow,startColumn,ySplit,xSplit,resetScroll)}else if(command.id===sheets.SetWorksheetRowHeightMutation.id){const freeze=this._getFreeze(),isRefresh=freeze&&command.params.ranges.some(i=>i.startRow<freeze.startRow);command.params&&isRefresh&&this._refreshCurrent()}else if(command.id===sheets.SetWorksheetColWidthMutation.id){const freeze=this._getFreeze();command.params&&freeze&&command.params.ranges.some(i=>i.startColumn<freeze.startColumn)&&this._refreshCurrent()}else if(command.id===sheets.SetWorksheetRowAutoHeightMutation.id){const params=command.params,freeze=this._getFreeze();if(freeze&&freeze.startRow>-1&&params.rowsAutoHeightInfo.some(info=>info.row<freeze.startRow)){const subscription=this._sheetSkeletonManagerService.currentSkeleton$.subscribe(()=>{this._refreshCurrent(),setTimeout(()=>{subscription.unsubscribe()})})}}else if(command.id===sheets.SetColHiddenMutation.id||command.id===sheets.SetColVisibleMutation.id){const params=command.params,freeze=this._getFreeze(),ranges=params.ranges;freeze&&freeze.startColumn>-1&&ranges.some(range=>range.startColumn<freeze.startColumn)&&this._refreshCurrent()}else if(command.id===sheets.SetRowHiddenMutation.id||command.id===sheets.SetRowVisibleMutation.id){const params=command.params,freeze=this._getFreeze(),ranges=params.ranges;freeze&&freeze.startRow>-1&&ranges.some(range=>range.startRow<freeze.startRow)&&this._refreshCurrent()}}))}_zoomRefresh(){const sheetObject=this._getSheetObject();if(sheetObject==null)return;const{scene}=sheetObject;scene.onTransformChange$.subscribeEvent(state=>{state.type===engineRender.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale&&this._refreshCurrent()})}_clearObserverEvent(){var _a2,_b2;this._getSheetObject()!=null&&((_a2=this._scenePointerMoveSub)==null||_a2.unsubscribe(),(_b2=this._scenePointerUpSub)==null||_b2.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_clearFreeze(){var _a2,_b2,_c2,_d2,_e2,_f2;(_a2=this._rowFreezeHeaderRect)==null||_a2.dispose(),(_b2=this._rowFreezeMainRect)==null||_b2.dispose(),(_c2=this._columnFreezeHeaderRect)==null||_c2.dispose(),(_d2=this._columnFreezeMainRect)==null||_d2.dispose(),this._getSheetObject()!=null&&([this._freezeDownSubs,this._freezePointerEnterSubs,this._freezePointerLeaveSubs].forEach(s=>{s==null||s.unsubscribe()}),this._freezeDownSubs=null,this._freezePointerEnterSubs=null,this._freezePointerLeaveSubs=null,(_e2=this._scenePointerMoveSub)==null||_e2.unsubscribe(),(_f2=this._scenePointerUpSub)==null||_f2.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_getPositionByIndex(row,column){var _a2;if(this._getSheetObject()==null)return;const skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton,position=skeleton==null?void 0:skeleton.getNoMergeCellPositionByIndex(row,column);if(skeleton==null)return;if(position!=null&&(!isNaN(position.endX)||!isNaN(position.endY)))return position;const{rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton;return{startX:rowHeaderWidthAndMarginLeft,endX:rowHeaderWidthAndMarginLeft,startY:columnHeaderHeightAndMarginTop,endY:columnHeaderHeightAndMarginTop}}_getFreeze(){var _a2;const config=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton.getWorksheetConfig();if(config!=null)return config.freeze}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_refreshFreeze(startRow,startColumn,ySplit,xSplit,resetScroll){var _a2;const newFreeze={startRow,startColumn,ySplit,xSplit};this._clearFreeze(),this._createFreeze(0,newFreeze),this._createFreeze(1,newFreeze),this._updateViewport(startRow,startColumn,ySplit,xSplit,resetScroll),(_a2=this._getSheetObject())==null||_a2.spreadsheet.makeForceDirty()}},__name(_w,"HeaderFreezeRenderController"),_w),exports2.HeaderFreezeRenderController=__decorateClass$y([__decorateParam$y(1,core.Inject(exports2.SheetSkeletonManagerService)),__decorateParam$y(2,core.ICommandService),__decorateParam$y(3,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$y(4,core.Inject(SheetScrollManagerService)),__decorateParam$y(5,core.Inject(core.ThemeService)),__decorateParam$y(6,core.Inject(sheets.SheetInterceptorService)),__decorateParam$y(7,core.Inject(core.Injector))],exports2.HeaderFreezeRenderController);var HEADER_MENU_SHAPE_TYPE=(HEADER_MENU_SHAPE_TYPE2=>(HEADER_MENU_SHAPE_TYPE2[HEADER_MENU_SHAPE_TYPE2.NORMAL=0]="NORMAL",HEADER_MENU_SHAPE_TYPE2[HEADER_MENU_SHAPE_TYPE2.HIGHLIGHT=1]="HIGHLIGHT",HEADER_MENU_SHAPE_TYPE2))(HEADER_MENU_SHAPE_TYPE||{});const HEADER_MENU_SHAPE_CIRCLE_FILL="rgba(0, 0, 0, 0.15)",HEADER_MENU_SHAPE_TRIANGLE_FILL="rgb(0, 0, 0)",HEADER_MENU_BACKGROUND_COLOR="rgb(255, 255, 255, 1)",_HeaderMenuShape=class _HeaderMenuShape extends engineRender.Shape{constructor(key,props){super(key,props);__publicField(this,"_size",12);__publicField(this,"_iconRatio",.4);__publicField(this,"_mode",0);this.setShapeProps(props)}setShapeProps(props){props!=null&&props.size&&(this._size=props.size),props!=null&&props.mode&&(this._mode=props.mode),this.transformByState({width:this._size,height:this._size})}_draw(ctx){this._mode===1&&engineRender.Rect.drawWith(ctx,{width:this._size,height:this._size,radius:this._size,fill:HEADER_MENU_SHAPE_CIRCLE_FILL});const iconSize=this._size*.5*this._iconRatio,sixtyDegree=Math.PI/180*60,left=iconSize*Math.sin(sixtyDegree),top=iconSize*Math.cos(sixtyDegree);engineRender.RegularPolygon.drawWith(ctx,{pointsGroup:[[{x:-left+this._size/2,y:-top+this._size/2},{x:left+this._size/2,y:-top+this._size/2},{x:this._size/2,y:iconSize+this._size/2}]],fill:HEADER_MENU_SHAPE_TRIANGLE_FILL})}};__name(_HeaderMenuShape,"HeaderMenuShape");let HeaderMenuShape=_HeaderMenuShape;var __defProp$x=Object.defineProperty,__getOwnPropDesc$x=Object.getOwnPropertyDescriptor,__decorateClass$x=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$x(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$x(target,key,result),result},"__decorateClass$x"),__decorateParam$x=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$x");const HEADER_MENU_CONTROLLER_SHAPE="__SpreadsheetHeaderMenuSHAPEControllerShape__",HEADER_MENU_CONTROLLER_MENU="__SpreadsheetHeaderMenuMAINControllerShape__",HEADER_MENU_CONTROLLER_SHAPE_COLOR="rgba(0, 0, 0, 0.1)";let HeaderMenuRenderController=(_x=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_contextMenuService,_commandService,_selectionManagerService){super();__publicField(this,"_hoverRect");__publicField(this,"_hoverMenu");__publicField(this,"_currentColumn",Number.POSITIVE_INFINITY);__publicField(this,"_headerPointerSubs");__publicField(this,"_colHeaderPointerSubs");this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._contextMenuService=_contextMenuService,this._commandService=_commandService,this._selectionManagerService=_selectionManagerService,this._initialize()}dispose(){var _a2,_b2,_c2;(_a2=this._hoverRect)==null||_a2.dispose(),(_b2=this._hoverMenu)==null||_b2.dispose(),(_c2=this._headerPointerSubs)==null||_c2.unsubscribe(),this._headerPointerSubs=null}_initialize(){const scene=this._context.scene;this._hoverRect=new engineRender.Rect(HEADER_MENU_CONTROLLER_SHAPE,{fill:HEADER_MENU_CONTROLLER_SHAPE_COLOR,evented:!1}),this._hoverMenu=new HeaderMenuShape(HEADER_MENU_CONTROLLER_MENU,{zIndex:100,visible:!1}),scene.addObjects([this._hoverRect,this._hoverMenu],SHEET_COMPONENT_HEADER_LAYER_INDEX),this._initialHover(0),this._initialHover(1),this._initialHoverMenu()}_initialHover(initialType=0){var _a2,_b2,_c2;const spreadsheetColumnHeader=this._context.components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetRowHeader=this._context.components.get(SHEET_VIEW_KEY.ROW),eventBindingObject=initialType===0?spreadsheetRowHeader:spreadsheetColumnHeader,pointerMoveHandler=__name(evt=>{var _a3,_b3,_c3;const skeleton=(_a3=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a3.skeleton;if(skeleton==null)return;const{rowHeaderWidth,columnHeaderHeight}=skeleton,{startX,startY,endX,endY,column}=getCoordByOffset(evt.offsetX,evt.offsetY,this._context.scene,skeleton);if(initialType===0)(_b3=this._hoverRect)==null||_b3.transformByState({width:rowHeaderWidth,height:endY-startY,left:0,top:startY});else{if(this._currentColumn=column,(_c3=this._hoverRect)==null||_c3.transformByState({width:endX-startX,height:columnHeaderHeight,left:startX,top:0}),this._hoverMenu==null)return;if(endX-startX<columnHeaderHeight*2){this._hoverMenu.hide();return}const menuSize=columnHeaderHeight*.8;this._hoverMenu.transformByState({left:endX-columnHeaderHeight,top:columnHeaderHeight/2-menuSize/2}),this._hoverMenu.setShapeProps({size:menuSize}),this._hoverMenu.show()}},"pointerMoveHandler"),pointerEnterHandler=__name(()=>{var _a3;(_a3=this._hoverRect)==null||_a3.show()},"pointerEnterHandler"),pointerLeaveHandler=__name(()=>{var _a3,_b3;(_a3=this._hoverRect)==null||_a3.hide(),(_b3=this._hoverMenu)==null||_b3.hide()},"pointerLeaveHandler");this._headerPointerSubs=new rxjs.Subscription;const headerPointerMoveSub=eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveHandler),headerPointerEnterSub=eventBindingObject.onPointerEnter$.subscribeEvent(pointerEnterHandler),headerPointerLeaveSub=eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveHandler);(_a2=this._headerPointerSubs)==null||_a2.add(headerPointerMoveSub),(_b2=this._headerPointerSubs)==null||_b2.add(headerPointerEnterSub),(_c2=this._headerPointerSubs)==null||_c2.add(headerPointerLeaveSub)}_initialHoverMenu(){this._hoverMenu!=null&&(this._hoverMenu.onPointerEnter$.subscribeEvent(()=>{this._hoverMenu!=null&&(this._hoverMenu.setProps({mode:HEADER_MENU_SHAPE_TYPE.HIGHLIGHT,visible:!0}),this._context.scene.setCursor(engineRender.CURSOR_TYPE.POINTER))}),this._hoverMenu.onPointerLeave$.subscribeEvent(()=>{this._hoverMenu!=null&&(this._hoverMenu.setProps({mode:HEADER_MENU_SHAPE_TYPE.NORMAL,visible:!1}),this._context.scene.resetCursor())}),this._hoverMenu.onPointerDown$.subscribeEvent(evt=>{var _a2;const currentColumn=this._currentColumn,currentSelectionDatas=(_a2=this._selectionManagerService.getCurrentSelections())==null?void 0:_a2.map(s=>s.range);if(!!!(currentSelectionDatas!=null&&currentSelectionDatas.filter(range=>range.rangeType===core.RANGE_TYPE.COLUMN).find(data=>{const{startColumn,endColumn}=data;return currentColumn>=startColumn&&currentColumn<=endColumn}))){const selection=this._getSelectionOnColumn(currentColumn);this._commandService.syncExecuteCommand(sheets.SetSelectionsOperation.id,selection)}evt.stopPropagation(),evt.preventDefault(),this._contextMenuService.triggerContextMenu(evt,SheetMenuPosition.COL_HEADER_CONTEXT_MENU)}))}_getSelectionOnColumn(column){const workbook=this._context.unit,worksheet=workbook.getActiveSheet();if(!worksheet)throw new Error("No active worksheet");return{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),selections:[{range:{startRow:0,startColumn:column,endRow:worksheet.getRowCount()-1,endColumn:column,rangeType:core.RANGE_TYPE.COLUMN},primary:{startRow:0,startColumn:column,endRow:0,endColumn:column,actualRow:0,actualColumn:column,isMerged:!1,isMergedMainCell:!1},style:null}]}}},__name(_x,"HeaderMenuRenderController"),_x);HeaderMenuRenderController=__decorateClass$x([__decorateParam$x(1,core.Inject(exports2.SheetSkeletonManagerService)),__decorateParam$x(2,ui.IContextMenuService),__decorateParam$x(3,core.ICommandService),__decorateParam$x(4,core.Inject(sheets.SheetsSelectionsService))],HeaderMenuRenderController);var __defProp$w=Object.defineProperty,__getOwnPropDesc$w=Object.getOwnPropertyDescriptor,__decorateClass$w=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$w(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$w(target,key,result),result},"__decorateClass$w"),__decorateParam$w=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$w");const HEADER_MOVE_CONTROLLER_BACKGROUND="__SpreadsheetHeaderMoveControllerBackground__",HEADER_MOVE_CONTROLLER_LINE="__SpreadsheetHeaderMoveControllerShapeLine__",HEADER_MOVE_CONTROLLER_BACKGROUND_FILL="rgba(0, 0, 0, 0.1)",HEADER_MOVE_CONTROLLER_LINE_FILL="rgb(119, 119, 119)",HEADER_MOVE_CONTROLLER_LINE_SIZE=4,HEADER_MOVE_PERMISSION_CHECK=core.createInterceptorKey("headerMovePermissionCheck");exports2.HeaderMoveRenderController=(_y=class extends core.Disposable{constructor(_context,selectionManagerService,_sheetSkeletonManagerService,_commandService){super();__publicField(this,"_startOffsetX",Number.NEGATIVE_INFINITY);__publicField(this,"_startOffsetY",Number.NEGATIVE_INFINITY);__publicField(this,"_moveHelperBackgroundShape");__publicField(this,"_moveHelperLineShape");__publicField(this,"_headerPointerDownSubs");__publicField(this,"_headerPointerMoveSubs");__publicField(this,"_headerPointerLeaveSubs");__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_scrollTimer");__publicField(this,"_changeFromColumn",-1);__publicField(this,"_changeFromRow",-1);__publicField(this,"_changeToColumn",-1);__publicField(this,"_changeToRow",-1);__publicField(this,"interceptor",new core.InterceptorManager({HEADER_MOVE_PERMISSION_CHECK}));__publicField(this,"_workbookSelections");this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._workbookSelections=selectionManagerService.getWorkbookSelections(this._context.unitId),this._init()}dispose(){var _a2,_b2,_c2,_d2,_e2,_f2,_g2,_h2;(_a2=this._moveHelperBackgroundShape)==null||_a2.dispose(),(_b2=this._moveHelperLineShape)==null||_b2.dispose(),(_c2=this._headerPointerMoveSubs)==null||_c2.unsubscribe(),(_d2=this._headerPointerLeaveSubs)==null||_d2.unsubscribe(),(_e2=this._headerPointerDownSubs)==null||_e2.unsubscribe(),this._headerPointerMoveSubs=null,this._headerPointerLeaveSubs=null,this._headerPointerDownSubs=null,(_f2=this._scenePointerMoveSub)==null||_f2.unsubscribe(),(_g2=this._scenePointerUpSub)==null||_g2.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null,(_h2=this._scrollTimer)==null||_h2.dispose()}_init(){this._initialRowOrColumn(core.RANGE_TYPE.ROW),this._initialRowOrColumn(core.RANGE_TYPE.COLUMN)}_initialRowOrColumn(initialType=core.RANGE_TYPE.ROW){const spreadsheetColumnHeader=this._context.components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetRowHeader=this._context.components.get(SHEET_VIEW_KEY.ROW),scene=this._context.scene,eventBindingObject=initialType===core.RANGE_TYPE.ROW?spreadsheetRowHeader:spreadsheetColumnHeader,pointerMoveHandler=__name(evt=>{var _a2,_b2;const skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton;if(skeleton==null)return;const selectionRange=(_b2=this._workbookSelections.getCurrentLastSelection())==null?void 0:_b2.range;if(!selectionRange||!this.interceptor.fetchThroughInterceptors(HEADER_MOVE_PERMISSION_CHECK)(!1,selectionRange))return;const currentSelections=this._workbookSelections.getCurrentSelections(),{row,column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);if(checkInHeaderRanges(currentSelections,initialType===core.RANGE_TYPE.ROW?row:column,initialType)===!1){scene.resetCursor();return}scene.setCursor(engineRender.CURSOR_TYPE.GRAB)},"pointerMoveHandler"),pointerLeaveHandler=__name(()=>{var _a2,_b2;(_a2=this._moveHelperBackgroundShape)==null||_a2.hide(),(_b2=this._moveHelperLineShape)==null||_b2.hide(),scene.resetCursor()},"pointerLeaveHandler"),pointerDownHandler=__name((evt,state)=>{var _a2,_b2;if(state.isStopPropagation)return;const skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton;if(skeleton==null)return;const selectionRange=(_b2=this._workbookSelections.getCurrentLastSelection())==null?void 0:_b2.range;if(!selectionRange||!this.interceptor.fetchThroughInterceptors(HEADER_MOVE_PERMISSION_CHECK)(!1,selectionRange))return;const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,relativeCoords=scene.getRelativeToViewportCoord(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords;this._startOffsetX=newEvtOffsetX,this._startOffsetY=newEvtOffsetY;const{row,column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);let scrollType;initialType===core.RANGE_TYPE.ROW?(this._changeFromRow=row,scrollType=engineRender.ScrollTimerType.Y):(this._changeFromColumn=column,scrollType=engineRender.ScrollTimerType.X);const currentSelections=this._workbookSelections.getCurrentSelections(),matchSelectionData=checkInHeaderRanges(currentSelections,initialType===core.RANGE_TYPE.ROW?row:column,initialType);if(matchSelectionData===!1)return;const startScrollXY=scene.getVpScrollXYInfoByPosToVp(engineRender.Vector2.FromArray([this._startOffsetX,this._startOffsetY]));this._newBackgroundAndLine(),scene.setCursor(engineRender.CURSOR_TYPE.GRABBING),scene.disableEvent();let scrollTimerInitd=!1,scrollTimer;const initScrollTimer=__name(()=>{if(scrollTimerInitd)return;scrollTimer=engineRender.ScrollTimer.create(scene,scrollType);const mainViewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);scrollTimer.startScroll(newEvtOffsetX,newEvtOffsetY,mainViewport),this._scrollTimer=scrollTimer,scrollTimerInitd=!0},"initScrollTimer");this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{initScrollTimer();const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt,{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getRelativeToViewportCoord(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._rowColumnMoving(newMoveOffsetX,newMoveOffsetY,matchSelectionData,startScrollXY,initialType),scrollTimer.scrolling(newMoveOffsetX,newMoveOffsetY,()=>{this._rowColumnMoving(newMoveOffsetX,newMoveOffsetY,matchSelectionData,startScrollXY,initialType)})}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a3,_b3,_c2;this._disposeBackgroundAndLine(),scene.resetCursor(),scene.enableEvent(),this._clearObserverEvent(),(_a3=this._scrollTimer)==null||_a3.dispose();const selections=this._workbookSelections.getCurrentSelections();if(initialType===core.RANGE_TYPE.ROW){if(this._changeFromRow!==this._changeToRow&&this._changeToRow!==-1){const range=(_b3=((selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.ROW&&selection.range.startRow<=this._changeFromRow&&this._changeFromRow<=selection.range.endRow))||[])[0])==null?void 0:_b3.range;range&&this._commandService.executeCommand(sheets.MoveRowsCommand.id,{fromRange:range,toRange:{...range,startRow:this._changeToRow,endRow:this._changeToRow+range.endRow-range.startRow}})}this._changeToRow=this._changeFromRow=-1}else{if(this._changeFromColumn!==this._changeToColumn&&this._changeToColumn!==-1){const range=(_c2=((selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.COLUMN&&selection.range.startColumn<=this._changeFromColumn&&this._changeFromColumn<=selection.range.endColumn))||[])[0])==null?void 0:_c2.range;range&&this._commandService.executeCommand(sheets.MoveColsCommand.id,{fromRange:range,toRange:{...range,startColumn:this._changeToColumn,endColumn:this._changeToColumn+range.endColumn-range.startColumn}})}this._changeToColumn=this._changeFromColumn=-1}})},"pointerDownHandler");this._headerPointerMoveSubs=new rxjs.Subscription,this._headerPointerMoveSubs.add(eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveHandler)),this._headerPointerLeaveSubs=new rxjs.Subscription,this._headerPointerLeaveSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveHandler)),this._headerPointerDownSubs=new rxjs.Subscription,this._headerPointerDownSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerDown$.subscribeEvent(pointerDownHandler))}_rowColumnMoving(moveOffsetX,moveOffsetY,matchSelectionData,startScrollXY,initialType){var _a2,_b2,_c2,_d2,_e2,_f2,_g2;const scene=this._context.scene,skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton;if(skeleton==null)return;const{rowHeaderWidth,columnHeaderHeight,rowTotalHeight,columnTotalWidth}=skeleton,scrollXY=scene.getViewportScrollXY(scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX,scaleY}=scene.getAncestorScale(),moveActualSelection=skeleton.getCellPositionByOffset(moveOffsetX,moveOffsetY,scaleX,scaleY,scrollXY),{row,column}=moveActualSelection,startCell=skeleton.getNoMergeCellPositionByIndex(row,column),{startX:cellStartX,startY:cellStartY,endX:cellEndX,endY:cellEndY}=startCell,selectionWithCoord=this._sheetSkeletonManagerService.attachRangeWithCoord(matchSelectionData.range);if(selectionWithCoord==null)return;const scale=Math.max(scaleX,scaleX),{startX:selectedStartX,endX:selectedEndX,startY:selectedStartY,endY:selectedEndY,startRow:selectedStartRow,startColumn:selectedStartColumn,endRow:selectedEndRow,endColumn:selectedEndColumn}=selectionWithCoord;initialType===core.RANGE_TYPE.ROW?(_b2=this._moveHelperBackgroundShape)==null||_b2.transformByState({height:selectedEndY-selectedStartY,width:columnTotalWidth+rowHeaderWidth,left:0,top:selectedStartY+(moveOffsetY-this._startOffsetY)/scale+scrollXY.y-startScrollXY.y}):(_c2=this._moveHelperBackgroundShape)==null||_c2.transformByState({height:rowTotalHeight+columnHeaderHeight,width:selectedEndX-selectedStartX,left:selectedStartX+(moveOffsetX-this._startOffsetX)/scale+scrollXY.x-startScrollXY.x,top:0}),(_d2=this._moveHelperBackgroundShape)==null||_d2.show();const HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE=HEADER_MOVE_CONTROLLER_LINE_SIZE/scale;if(initialType===core.RANGE_TYPE.ROW){let top=0;if(row<=selectedStartRow)top=cellStartY-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToRow=row;else if(row>selectedEndRow)top=cellEndY-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToRow=row+1;else return;(_e2=this._moveHelperLineShape)==null||_e2.transformByState({height:HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE,width:columnTotalWidth,left:rowHeaderWidth,top})}else{let left=0;if(column<=selectedStartColumn)left=cellStartX-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToColumn=column;else if(column>selectedEndColumn)left=cellEndX-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToColumn=column+1;else return;(_f2=this._moveHelperLineShape)==null||_f2.transformByState({height:rowTotalHeight,width:HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE,left,top:columnHeaderHeight})}(_g2=this._moveHelperLineShape)==null||_g2.show()}_clearObserverEvent(){var _a2,_b2;(_a2=this._scenePointerMoveSub)==null||_a2.unsubscribe(),(_b2=this._scenePointerUpSub)==null||_b2.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}_newBackgroundAndLine(){const scene=this._context.scene;this._moveHelperBackgroundShape=new engineRender.Rect(HEADER_MOVE_CONTROLLER_BACKGROUND,{fill:HEADER_MOVE_CONTROLLER_BACKGROUND_FILL,evented:!1,zIndex:100}),this._moveHelperLineShape=new engineRender.Rect(HEADER_MOVE_CONTROLLER_LINE,{fill:HEADER_MOVE_CONTROLLER_LINE_FILL,evented:!1,zIndex:100}),scene.addObjects([this._moveHelperBackgroundShape,this._moveHelperLineShape],SHEET_COMPONENT_HEADER_LAYER_INDEX)}_disposeBackgroundAndLine(){var _a2,_b2;(_a2=this._moveHelperBackgroundShape)==null||_a2.dispose(),(_b2=this._moveHelperLineShape)==null||_b2.dispose()}},__name(_y,"HeaderMoveRenderController"),_y),exports2.HeaderMoveRenderController=__decorateClass$w([__decorateParam$w(1,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$w(2,core.Inject(exports2.SheetSkeletonManagerService)),__decorateParam$w(3,core.ICommandService)],exports2.HeaderMoveRenderController);var HEADER_RESIZE_SHAPE_TYPE=(HEADER_RESIZE_SHAPE_TYPE2=>(HEADER_RESIZE_SHAPE_TYPE2[HEADER_RESIZE_SHAPE_TYPE2.VERTICAL=0]="VERTICAL",HEADER_RESIZE_SHAPE_TYPE2[HEADER_RESIZE_SHAPE_TYPE2.HORIZONTAL=1]="HORIZONTAL",HEADER_RESIZE_SHAPE_TYPE2))(HEADER_RESIZE_SHAPE_TYPE||{});const HEADER_MENU_SHAPE_RECT_BACKGROUND_FILL="rgba(120, 120, 120, 0.01)",HEADER_MENU_SHAPE_RECT_FILL="rgb(68, 71, 70)",HEADER_MENU_SHAPE_SIZE=12,MAX_HEADER_MENU_SHAPE_SIZE=44,HEADER_MENU_SHAPE_THUMB_SIZE=4,_HeaderMenuResizeShape=class _HeaderMenuResizeShape extends engineRender.Shape{constructor(key,props){super(key,props);__publicField(this,"_size",HEADER_MENU_SHAPE_SIZE);__publicField(this,"_color",HEADER_MENU_SHAPE_RECT_FILL);__publicField(this,"_mode",0);this.setShapeProps(props)}get size(){return this._size}get mode(){return this._mode}get color(){return this._color}_draw(ctx){let{width,height}=this,left=0,top=0;const scene=this.getScene(),{scaleX,scaleY}=scene.getAncestorScale(),scale=Math.max(scaleX,scaleY),HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE=HEADER_MENU_SHAPE_SIZE/scale,HEADER_MENU_SHAPE_THUMB_SIZE_SCALE=HEADER_MENU_SHAPE_THUMB_SIZE/scale;this.mode===0?(width=HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,left=HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE):(height=HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,top=HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE),engineRender.Rect.drawWith(ctx,{width:this.width,height:this.height,left:0,top:0,fill:HEADER_MENU_SHAPE_RECT_BACKGROUND_FILL}),engineRender.Rect.drawWith(ctx,{width,height,fill:HEADER_MENU_SHAPE_RECT_FILL,radius:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE}),ctx.save(),ctx.transform(1,0,0,1,left,top),engineRender.Rect.drawWith(ctx,{width,height,fill:HEADER_MENU_SHAPE_RECT_FILL,radius:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE}),ctx.restore()}setShapeProps(props){return props!=null&&props.size&&(this._size=props.size),props!=null&&props.mode&&(this._mode=props.mode),props!=null&&props.color&&(this._color=props.color),this.mode===0?this.transformByState({width:HEADER_MENU_SHAPE_SIZE,height:this.size}):this.transformByState({width:this.size,height:HEADER_MENU_SHAPE_SIZE}),this}};__name(_HeaderMenuResizeShape,"HeaderMenuResizeShape");let HeaderMenuResizeShape=_HeaderMenuResizeShape;var __defProp$v=Object.defineProperty,__getOwnPropDesc$v=Object.getOwnPropertyDescriptor,__decorateClass$v=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$v(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$v(target,key,result),result},"__decorateClass$v"),__decorateParam$v=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$v");const HEADER_RESIZE_CONTROLLER_SHAPE_ROW="__SpreadsheetHeaderResizeControllerShapeRow__",HEADER_RESIZE_CONTROLLER_SHAPE_COLUMN="__SpreadsheetHeaderResizeControllerShapeColumn__",HEADER_RESIZE_CONTROLLER_SHAPE_HELPER="__SpreadsheetHeaderResizeControllerShapeHelper__",HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR="rgb(199, 199, 199)",MINIMAL_OFFSET=2,HEADER_RESIZE_PERMISSION_CHECK=core.createInterceptorKey("headerResizePermissionCheck");exports2.HeaderResizeRenderController=(_z=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_commandService){super();__publicField(this,"_currentRow",0);__publicField(this,"_currentColumn",0);__publicField(this,"_rowResizeRect");__publicField(this,"_columnResizeRect");__publicField(this,"_headerPointerSubs");__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_resizeHelperShape");__publicField(this,"_startOffsetX",Number.POSITIVE_INFINITY);__publicField(this,"_startOffsetY",Number.POSITIVE_INFINITY);__publicField(this,"interceptor",new core.InterceptorManager({HEADER_RESIZE_PERMISSION_CHECK}));this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._init()}dispose(){var _a2,_b2,_c2;(_a2=this._rowResizeRect)==null||_a2.dispose(),this._rowResizeRect=null,(_b2=this._columnResizeRect)==null||_b2.dispose(),this._columnResizeRect=null,(_c2=this._headerPointerSubs)==null||_c2.unsubscribe(),this._headerPointerSubs=null}_init(){const scene=this._context.scene;this._rowResizeRect=new HeaderMenuResizeShape(HEADER_RESIZE_CONTROLLER_SHAPE_ROW,{visible:!1,mode:HEADER_RESIZE_SHAPE_TYPE.HORIZONTAL,zIndex:100}),this._columnResizeRect=new HeaderMenuResizeShape(HEADER_RESIZE_CONTROLLER_SHAPE_COLUMN,{visible:!1,mode:HEADER_RESIZE_SHAPE_TYPE.VERTICAL,zIndex:100}),scene.addObjects([this._rowResizeRect,this._columnResizeRect],SHEET_COMPONENT_HEADER_LAYER_INDEX),this._initialHover(0),this._initialHover(1),this._initialHoverResize(0),this._initialHoverResize(1)}_initialHover(initialType=0){const spreadsheetColumnHeader=this._context.components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetRowHeader=this._context.components.get(SHEET_VIEW_KEY.ROW),scene=this._context.scene,eventBindingObject=initialType===0?spreadsheetRowHeader:spreadsheetColumnHeader,pointerLeaveEvent=__name((_evt,_state)=>{var _a2,_b2;(_a2=this._rowResizeRect)==null||_a2.hide(),(_b2=this._columnResizeRect)==null||_b2.hide()},"pointerLeaveEvent"),pointerMoveEvent=__name((evt,_state)=>{var _a2;const skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton;if(skeleton==null||this._rowResizeRect==null||this._columnResizeRect==null)return;const{rowHeaderWidth,columnHeaderHeight}=skeleton,{startX,startY,endX,endY,row,column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton),transformCoord=getTransformCoord(evt.offsetX,evt.offsetY,scene),{scaleX,scaleY}=scene.getAncestorScale(),scale=Math.max(scaleX,scaleY),HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE=HEADER_MENU_SHAPE_SIZE/scale;if(initialType===0){let top=startY-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;if(transformCoord.y<=startY+HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.y>=startY)this._currentRow=row-1;else if(transformCoord.y>=endY-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.y<=endY)this._currentRow=row,top=endY-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;else{this._rowResizeRect.hide();return}if(this._currentRow===-1)return;if(!this.interceptor.fetchThroughInterceptors(HEADER_RESIZE_PERMISSION_CHECK)(null,{row:this._currentRow}))return!1;const rowSize=Math.min(MAX_HEADER_MENU_SHAPE_SIZE,rowHeaderWidth/3);this._rowResizeRect.transformByState({left:rowHeaderWidth/2-rowSize/2,top}),this._rowResizeRect.setShapeProps({size:rowSize}),this._rowResizeRect.show()}else{let left=startX-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;if(transformCoord.x<=startX+HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.x>=startX)this._currentColumn=column-1;else if(transformCoord.x>=endX-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.x<=endX)this._currentColumn=column,left=endX-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;else{this._columnResizeRect.hide();return}if(this._currentColumn===-1)return;if(!this.interceptor.fetchThroughInterceptors(HEADER_RESIZE_PERMISSION_CHECK)(null,{col:this._currentColumn}))return!1;const columnSize=columnHeaderHeight*.7;this._columnResizeRect.transformByState({left,top:columnHeaderHeight/2-columnSize/2}),this._columnResizeRect.setShapeProps({size:columnSize}),this._columnResizeRect.show()}},"pointerMoveEvent");this._headerPointerSubs=new rxjs.Subscription,this._headerPointerSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveEvent)),this._headerPointerSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveEvent))}_initialHoverResize(initialType=0){const scene=this._context.scene,eventBindingObject=initialType===0?this._rowResizeRect:this._columnResizeRect;eventBindingObject!=null&&(this.disposeWithMe(core.toDisposable(eventBindingObject.onPointerEnter$.subscribeEvent(()=>{eventBindingObject!=null&&(eventBindingObject.show(),scene.setCursor(initialType===0?engineRender.CURSOR_TYPE.ROW_RESIZE:engineRender.CURSOR_TYPE.COLUMN_RESIZE))}))),this.disposeWithMe(core.toDisposable(eventBindingObject.onPointerLeave$.subscribeEvent(()=>{eventBindingObject!=null&&(eventBindingObject.hide(),scene.resetCursor())}))),this.disposeWithMe(core.toDisposable(eventBindingObject.onPointerDown$.subscribeEvent(evt=>{var _a2,_b2,_c2,_d2,_e2,_f2,_g2;const skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton;if(skeleton==null)return;const scene2=this._context.scene,engine=scene2.getEngine(),canvasMaxHeight=(engine==null?void 0:engine.height)||0,canvasMaxWidth=(engine==null?void 0:engine.width)||0,viewPort=scene2.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),scrollBarHorizontalHeight=(((_c2=(_b2=viewPort==null?void 0:viewPort.getScrollBar())==null?void 0:_b2.horizonBarRect)==null?void 0:_c2.height)||0)+10,scrollBarVerticalWidth=(((_e2=(_d2=viewPort==null?void 0:viewPort.getScrollBar())==null?void 0:_d2.verticalBarRect)==null?void 0:_e2.width)||0)+10,transformCoord=getTransformCoord(evt.offsetX,evt.offsetY,scene2),{scaleX,scaleY}=scene2.getAncestorScale();this._startOffsetX=transformCoord.x,this._startOffsetY=transformCoord.y;const currentOffsetX=skeleton.getOffsetByPositionX(this._currentColumn),currentOffsetY=skeleton.getOffsetByPositionY(this._currentRow),cell=skeleton.getNoMergeCellPositionByIndex(this._currentRow,this._currentColumn);let isStartMove=!1,moveChangeX=0,moveChangeY=0;const{columnTotalWidth,rowHeaderWidth,rowTotalHeight,columnHeaderHeight}=skeleton,shapeWidth=canvasMaxWidth>columnTotalWidth+rowHeaderWidth?canvasMaxWidth:columnTotalWidth+rowHeaderWidth,shapeHeight=canvasMaxHeight>rowTotalHeight+columnHeaderHeight?canvasMaxHeight:rowTotalHeight+columnHeaderHeight,scale=Math.max(scaleX,scaleY),HEADER_MENU_SHAPE_THUMB_SIZE_SCALE=HEADER_MENU_SHAPE_THUMB_SIZE/scale;initialType===0?this._resizeHelperShape=new engineRender.Rect(HEADER_RESIZE_CONTROLLER_SHAPE_HELPER,{width:shapeWidth,height:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,fill:HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR,left:0,top:currentOffsetY-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE/2}):this._resizeHelperShape=new engineRender.Rect(HEADER_RESIZE_CONTROLLER_SHAPE_HELPER,{width:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,height:shapeHeight,fill:HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR,left:currentOffsetX-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE/2,top:0});const rowResizeRectX=((_f2=this._columnResizeRect)==null?void 0:_f2.left)||0,rowResizeRectY=((_g2=this._rowResizeRect)==null?void 0:_g2.top)||0;scene2.addObject(this._resizeHelperShape,SHEET_COMPONENT_HEADER_LAYER_INDEX),scene2.disableEvent(),this._scenePointerMoveSub=scene2.onPointerMove$.subscribeEvent(moveEvt=>{var _a3,_b3,_c3,_d3,_e3,_f3;const relativeCoords=scene2.getRelativeToViewportCoord(engineRender.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),scrollXY=scene2.getVpScrollXYInfoByPosToVp(relativeCoords,viewPort),transformCoord2=getTransformCoord(moveEvt.offsetX,moveEvt.offsetY,scene2),{x:moveOffsetX,y:moveOffsetY}=transformCoord2,{scaleX:scaleX2,scaleY:scaleY2}=scene2.getAncestorScale(),scale2=Math.max(scaleX2,scaleY2),HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2=HEADER_MENU_SHAPE_THUMB_SIZE/scale2;moveChangeX=moveOffsetX-this._startOffsetX-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2,moveChangeY=moveOffsetY-this._startOffsetY-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2,Math.abs(initialType===0?moveChangeY:moveChangeX)>=MINIMAL_OFFSET&&(isStartMove=!0),initialType===0?(moveChangeY>canvasMaxHeight-scrollBarHorizontalHeight+scrollXY.y-cell.startY&&(moveChangeY=canvasMaxHeight-scrollBarHorizontalHeight+scrollXY.y-cell.startY),moveChangeY<-(cell.endY-cell.startY)+2&&(moveChangeY=-(cell.endY-cell.startY)+2),isStartMove&&((_a3=this._resizeHelperShape)==null||_a3.transformByState({top:currentOffsetY+moveChangeY}),(_b3=this._rowResizeRect)==null||_b3.transformByState({top:rowResizeRectY+moveChangeY+HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2}),(_c3=this._rowResizeRect)==null||_c3.show(),scene2.setCursor(engineRender.CURSOR_TYPE.ROW_RESIZE))):(moveChangeX>canvasMaxWidth-scrollBarVerticalWidth+scrollXY.x-cell.startX&&(moveChangeX=canvasMaxWidth-scrollBarVerticalWidth+scrollXY.x-cell.startX),moveChangeX<-(cell.endX-cell.startX)+2&&(moveChangeX=-(cell.endX-cell.startX)+2),isStartMove&&((_d3=this._resizeHelperShape)==null||_d3.transformByState({left:currentOffsetX+moveChangeX}),(_e3=this._columnResizeRect)==null||_e3.transformByState({left:rowResizeRectX+moveChangeX+HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2}),(_f3=this._columnResizeRect)==null||_f3.show(),scene2.setCursor(engineRender.CURSOR_TYPE.COLUMN_RESIZE)))}),this._scenePointerUpSub=scene2.onPointerUp$.subscribeEvent(upEvt=>{var _a3,_b3,_c3;const scene3=this._context.scene;this._clearObserverEvent(),(_a3=this._resizeHelperShape)==null||_a3.dispose(),this._resizeHelperShape=null,scene3.enableEvent(),isStartMove&&(scene3.resetCursor(),(_b3=this._rowResizeRect)==null||_b3.hide(),(_c3=this._columnResizeRect)==null||_c3.hide(),initialType===0?this._commandService.executeCommand(sheets.DeltaRowHeightCommand.id,{deltaY:moveChangeY,anchorRow:this._currentRow}):this._commandService.executeCommand(sheets.DeltaColumnWidthCommand.id,{deltaX:moveChangeX,anchorCol:this._currentColumn}))})}))),this.disposeWithMe(core.toDisposable(eventBindingObject.onDblclick$.subscribeEvent(()=>{var _a2;initialType===0&&(this._context.scene.resetCursor(),this._commandService.executeCommand(sheets.SetWorksheetRowIsAutoHeightCommand.id,{anchorRow:this._currentRow}),(_a2=this._rowResizeRect)==null||_a2.hide())}))))}_clearObserverEvent(){var _a2,_b2;(_a2=this._scenePointerMoveSub)==null||_a2.unsubscribe(),(_b2=this._scenePointerUpSub)==null||_b2.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}},__name(_z,"HeaderResizeRenderController"),_z),exports2.HeaderResizeRenderController=__decorateClass$v([__decorateParam$v(1,core.Inject(exports2.SheetSkeletonManagerService)),__decorateParam$v(2,core.ICommandService)],exports2.HeaderResizeRenderController);var HeaderUnhideShapeType=(HeaderUnhideShapeType2=>(HeaderUnhideShapeType2[HeaderUnhideShapeType2.ROW=0]="ROW",HeaderUnhideShapeType2[HeaderUnhideShapeType2.COLUMN=1]="COLUMN",HeaderUnhideShapeType2))(HeaderUnhideShapeType||{});const UNHIDE_ICON_SIZE=12,UNHIDE_ARROW_RATIO=.4,_HeaderUnhideShape=class _HeaderUnhideShape extends engineRender.Shape{constructor(key,props,onClick){super(key,props);__publicField(this,"_size",UNHIDE_ICON_SIZE);__publicField(this,"_iconRatio",UNHIDE_ARROW_RATIO);__publicField(this,"_hovered",!0);__publicField(this,"_hasPrevious",!0);__publicField(this,"_hasNext",!0);__publicField(this,"_unhideType");props&&this.setShapeProps(props),this.onPointerEnter$.subscribeEvent(()=>this.setShapeProps({hovered:!0})),this.onPointerLeave$.subscribeEvent(()=>this.setShapeProps({hovered:!1})),this.onPointerDown$.subscribeEvent(()=>onClick==null?void 0:onClick())}setShapeProps(props){props.type!==void 0&&(this._unhideType=props.type),props.hovered!==void 0&&(this._hovered=props.hovered),props.hasPrevious!==void 0&&(this._hasPrevious=props.hasPrevious),props.hasNext!==void 0&&(this._hasNext=props.hasNext),this.transformByState({width:this._size*(this._unhideType===1?2:1),height:this._size*(this._unhideType===0?2:1)})}_draw(ctx){this._unhideType===0?this._drawOnRow(ctx):this._drawOnCol(ctx)}_drawOnRow(ctx){this._hovered&&(!this._hasNext||!this._hasPrevious?engineRender.Rect.drawWith(ctx,{width:this._size,height:this._size,stroke:HEADER_MENU_SHAPE_TRIANGLE_FILL,fill:HEADER_MENU_BACKGROUND_COLOR}):engineRender.Rect.drawWith(ctx,{width:this._size,height:2*this._size,stroke:HEADER_MENU_SHAPE_TRIANGLE_FILL,fill:HEADER_MENU_BACKGROUND_COLOR}));const iconSize=this._size*.5*this._iconRatio,sixtyDegree=Math.PI/3,top=iconSize*Math.cos(sixtyDegree),left=iconSize*Math.sin(sixtyDegree);if(this._hasPrevious&&engineRender.RegularPolygon.drawWith(ctx,{pointsGroup:[[{x:this._size/2,y:this._size/2-left},{x:this._size/2-left,y:this._size/2+top},{x:this._size/2+left,y:this._size/2+top}]],fill:HEADER_MENU_SHAPE_TRIANGLE_FILL}),this._hasNext){const offset=this._hasPrevious?3:1;engineRender.RegularPolygon.drawWith(ctx,{pointsGroup:[[{x:this._size/2,y:this._size*offset/2+left},{x:this._size/2-left,y:this._size*offset/2-top},{x:this._size/2+left,y:this._size*offset/2-top}]],fill:HEADER_MENU_SHAPE_TRIANGLE_FILL})}}_drawOnCol(ctx){this._hovered&&(!this._hasNext||!this._hasPrevious?engineRender.Rect.drawWith(ctx,{width:this._size,height:this._size,stroke:HEADER_MENU_SHAPE_TRIANGLE_FILL,fill:HEADER_MENU_BACKGROUND_COLOR}):engineRender.Rect.drawWith(ctx,{width:2*this._size,height:this._size,stroke:HEADER_MENU_SHAPE_TRIANGLE_FILL,fill:HEADER_MENU_BACKGROUND_COLOR}));const iconSize=this._size*.5*this._iconRatio,sixtyDegree=Math.PI/3,top=iconSize*Math.cos(sixtyDegree),left=iconSize*Math.sin(sixtyDegree);if(this._hasPrevious&&engineRender.RegularPolygon.drawWith(ctx,{pointsGroup:[[{x:-top+this._size/2,y:this._size/2},{x:this._size/2+left,y:this._size/2-left},{x:this._size/2+left,y:this._size/2+left}]],fill:HEADER_MENU_SHAPE_TRIANGLE_FILL}),this._hasNext){const offset=this._hasPrevious?3:1;engineRender.RegularPolygon.drawWith(ctx,{pointsGroup:[[{x:top+this._size*offset/2,y:this._size/2},{x:-left+this._size*offset/2,y:this._size/2-left},{x:-left+this._size*offset/2,y:this._size/2+left}]],fill:HEADER_MENU_SHAPE_TRIANGLE_FILL})}}};__name(_HeaderUnhideShape,"HeaderUnhideShape");let HeaderUnhideShape=_HeaderUnhideShape;var __defProp$u=Object.defineProperty,__getOwnPropDesc$u=Object.getOwnPropertyDescriptor,__decorateClass$u=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$u(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$u(target,key,result),result},"__decorateClass$u"),__decorateParam$u=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$u");const HEADER_UNHIDE_CONTROLLER_SHAPE="__SpreadsheetHeaderUnhideSHAPEControllerShape__",RENDER_COMMANDS=[sheets.InsertColMutation.id,sheets.InsertRowMutation.id,sheets.RemoveColMutation.id,sheets.RemoveRowMutation.id,sheets.MoveColsMutation.id,sheets.MoveRowsMutation.id,sheets.SetWorksheetColWidthMutation.id,sheets.SetWorksheetRowIsAutoHeightMutation.id,sheets.SetRowHiddenMutation.id,sheets.SetRowVisibleMutation.id,sheets.SetColHiddenMutation.id,sheets.SetColVisibleMutation.id];let HeaderUnhideRenderController=(_A=class extends core.RxDisposable{constructor(_context,_sheetSkeletonManagerService,_commandService){super();__publicField(this,"_shapes",{cols:[],rows:[]});this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._init()}get _workbook(){return this._context.unit}dispose(){super.dispose(),this._clearShapes()}_init(){let activeSheetId="";this._context.unit.activeSheet$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(worksheet=>{if(this._clearShapes(),!worksheet){activeSheetId="";return}activeSheetId=worksheet.getSheetId(),this._update(this._workbook,worksheet)}),this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(!RENDER_COMMANDS.includes(command.id)||!command.params||!command.params.unitId||command.params.subUnitId!==activeSheetId)return;const workbook=this._workbook,worksheet=workbook.getSheetBySheetId(command.params.subUnitId);worksheet&&this._update(workbook,worksheet)}))}_update(workbook,worksheet){var _a2;const skeleton=(_a2=this._sheetSkeletonManagerService.getWorksheetSkeleton(worksheet.getSheetId()))==null?void 0:_a2.skeleton;if(!skeleton)return;const hiddenRowRanges=worksheet.getHiddenRows(),hiddenColRanges=worksheet.getHiddenCols(),sheetObject=this._getSheetObject(),{scene}=sheetObject,rowCount=worksheet.getRowCount(),rowShapes=hiddenRowRanges.map(range=>{const{startRow,endRow}=range,position=getCoordByCell(startRow,0,scene,skeleton),hasPrevious=startRow!==0,hasNext=endRow!==rowCount-1;return new HeaderUnhideShape(HEADER_UNHIDE_CONTROLLER_SHAPE,{type:HeaderUnhideShapeType.ROW,hovered:!1,hasPrevious,hasNext,top:position.startY-(hasPrevious?UNHIDE_ICON_SIZE:0),left:position.startX-UNHIDE_ICON_SIZE},()=>this._commandService.executeCommand(sheets.SetSpecificRowsVisibleCommand.id,{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),ranges:[range]}))}),colCount=worksheet.getColumnCount(),colShapes=hiddenColRanges.map(range=>{const{startColumn,endColumn}=range,position=getCoordByCell(0,startColumn,scene,skeleton),hasPrevious=startColumn!==0,hasNext=endColumn!==colCount-1;return new HeaderUnhideShape(HEADER_UNHIDE_CONTROLLER_SHAPE,{type:HeaderUnhideShapeType.COLUMN,hovered:!1,hasPrevious,hasNext,top:20-UNHIDE_ICON_SIZE,left:position.startX-(hasPrevious?UNHIDE_ICON_SIZE:0)},()=>this._commandService.executeCommand(sheets.SetSpecificColsVisibleCommand.id,{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),ranges:[range]}))});scene.addObjects(colShapes,SHEET_COMPONENT_UNHIDE_LAYER_INDEX),scene.addObjects(rowShapes,SHEET_COMPONENT_UNHIDE_LAYER_INDEX),this._clearShapes(),this._shapes={cols:colShapes,rows:rowShapes}}_clearShapes(){this._shapes.cols.forEach(shape=>shape.dispose()),this._shapes.rows.forEach(shape=>shape.dispose()),this._shapes={cols:[],rows:[]}}_getSheetObject(){return getSheetObject(this._workbook,this._context)}},__name(_A,"HeaderUnhideRenderController"),_A);HeaderUnhideRenderController=__decorateClass$u([__decorateParam$u(1,core.Inject(exports2.SheetSkeletonManagerService)),__decorateParam$u(2,core.ICommandService)],HeaderUnhideRenderController);var __defProp$t=Object.defineProperty,__getOwnPropDesc$t=Object.getOwnPropertyDescriptor,__decorateClass$t=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$t(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$t(target,key,result),result},"__decorateClass$t"),__decorateParam$t=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$t");let MarkSelectionRenderController=(_B=class extends core.Disposable{constructor(_context,_markSelectionService,_commandService,_sheetSkeletonManagerService){super(),this._context=_context,this._markSelectionService=_markSelectionService,this._commandService=_commandService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._initListeners()}_initListeners(){this._addRemoveListener(),this._addRefreshListener()}_addRemoveListener(){const removeCommands=[SetCellEditVisibleOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{removeCommands.includes(command.id)?this._markSelectionService.removeAllShapes():this._markSelectionService.getShapeMap().forEach((shape,id)=>{shape.exits.includes(command.id)&&this._markSelectionService.removeShape(id)})}))}_addRefreshListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(skeleton=>{skeleton&&this._markSelectionService.refreshShapes()}))}},__name(_B,"MarkSelectionRenderController"),_B);MarkSelectionRenderController=__decorateClass$t([__decorateParam$t(1,core.Inject(IMarkSelectionService)),__decorateParam$t(2,core.ICommandService),__decorateParam$t(3,core.Inject(exports2.SheetSkeletonManagerService))],MarkSelectionRenderController);var __defProp$s=Object.defineProperty,__getOwnPropDesc$s=Object.getOwnPropertyDescriptor,__decorateClass$s=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$s(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$s(target,key,result),result},"__decorateClass$s"),__decorateParam$s=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$s");const STATUS_BAR_PERMISSION_CORRECT=core.createInterceptorKey("statusBarPermissionCorrect");exports2.StatusBarController=(_C=class extends core.Disposable{constructor(_univerInstanceService,_selectionManagerService,_functionService,_statusBarService,_commandService,_formulaDataModel,_numfmtService){super();__publicField(this,"_calculateTimeout",-1);__publicField(this,"interceptor",new core.InterceptorManager({STATUS_BAR_PERMISSION_CORRECT}));this._univerInstanceService=_univerInstanceService,this._selectionManagerService=_selectionManagerService,this._functionService=_functionService,this._statusBarService=_statusBarService,this._commandService=_commandService,this._formulaDataModel=_formulaDataModel,this._numfmtService=_numfmtService,this._init()}_init(){this._registerSelectionListener()}_registerSelectionListener(){const _statisticsHandler=core.debounce(selections=>{var _a2;const primary=(_a2=selections[selections.length-1])==null?void 0:_a2.primary;this._calculateSelection(selections.map(selection=>selection.range),primary)},100);this.disposeWithMe(core.toDisposable(this._selectionManagerService.selectionMoving$.subscribe(selections=>{selections&&_statisticsHandler(selections)}))),this.disposeWithMe(core.toDisposable(this._selectionManagerService.selectionMoveEnd$.subscribe(selections=>{selections&&_statisticsHandler(selections)}))),this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===sheets.SetRangeValuesMutation.id){const selections=this._selectionManagerService.getCurrentSelections();selections&&_statisticsHandler(selections)}}))}_clearResult(){this._statusBarService.setState(null)}_calculateSelection(selections,primary){var _a2,_b2;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return this._clearResult();const unitId=workbook.getUnitId(),sheetId=(_a2=workbook.getActiveSheet())==null?void 0:_a2.getSheetId();if(!sheetId)return this._clearResult();const sheetData={},arrayFormulaMatrixCell=this._formulaDataModel.getArrayFormulaCellData();if(this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getSheets().forEach(sheet=>{const sheetConfig=sheet.getConfig();sheetData[sheet.getSheetId()]={cellData:new core.ObjectMatrix(sheetConfig.cellData),rowCount:sheetConfig.rowCount,columnCount:sheetConfig.columnCount,rowData:sheetConfig.rowData,columnData:sheetConfig.columnData}}),selections!=null&&selections.length){const refs=selections.map(s=>new engineFormula.RangeReferenceObject(s,sheetId,unitId));refs.forEach(ref=>{ref.setUnitData({[unitId]:sheetData}),arrayFormulaMatrixCell&&ref.setArrayFormulaCellData(engineFormula.convertUnitDataToRuntime(arrayFormulaMatrixCell))});const functions=this._statusBarService.getFunctions();let arrayValue=refs.map(ref=>ref.toArrayValueObject(!1));const correctArrayValue=this.interceptor.fetchThroughInterceptors(STATUS_BAR_PERMISSION_CORRECT)(arrayValue,arrayValue);correctArrayValue&&(arrayValue=correctArrayValue);const calcResult=functions.map(f2=>{const executor=this._functionService.getExecutor(f2.func);if(!executor)return;const res=executor==null?void 0:executor.calculate(...arrayValue),value=res==null?void 0:res.getValue();if(value)return{func:f2.func,value}});if(calcResult.every(r=>r===void 0))return;let pattern=null;if(primary){const{actualRow,actualColumn}=primary;pattern=(_b2=this._numfmtService.getValue(unitId,sheetId,actualRow,actualColumn))==null?void 0:_b2.pattern}const newState={values:calcResult.filter(r=>r!==void 0),pattern};this._statusBarService.setState(newState)}else this._clearResult()}},__name(_C,"StatusBarController"),_C),exports2.StatusBarController=__decorateClass$s([core.OnLifecycle(core.LifecycleStages.Ready,exports2.StatusBarController),__decorateParam$s(0,core.IUniverInstanceService),__decorateParam$s(1,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$s(2,engineFormula.IFunctionService),__decorateParam$s(3,IStatusBarService),__decorateParam$s(4,core.ICommandService),__decorateParam$s(5,core.Inject(engineFormula.FormulaDataModel)),__decorateParam$s(6,core.Inject(sheets.INumfmtService))],exports2.StatusBarController);var __defProp$r=Object.defineProperty,__getOwnPropDesc$r=Object.getOwnPropertyDescriptor,__decorateClass$r=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$r(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$r(target,key,result),result},"__decorateClass$r"),__decorateParam$r=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$r");exports2.SheetRenderController=(_D=class extends core.RxDisposable{constructor(_context,_contextService,_sheetSkeletonManagerService,_sheetRenderService,_commandService){super(),this._context=_context,this._contextService=_contextService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._sheetRenderService=_sheetRenderService,this._commandService=_commandService,this._addNewRender()}_addNewRender(){const{scene,engine,unit:workbook}=this._context;scene.addLayer(new engineRender.Layer(scene,[],0),new engineRender.Layer(scene,[],2)),this._addComponent(workbook),this._initRerenderScheduler(),this._initCommandListener();const worksheet=this._context.unit.getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const sheetId=worksheet.getSheetId();this._sheetSkeletonManagerService.setCurrent({sheetId}),workbook.getShouldRenderLoopImmediately()&&engine.runRenderLoop(()=>scene.render())}_addComponent(workbook){const{scene,components}=this._context,worksheet=workbook.getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const spreadsheet=new engineRender.Spreadsheet(SHEET_VIEW_KEY.MAIN);this._addViewport(worksheet);const spreadsheetRowHeader=new engineRender.SpreadsheetRowHeader(SHEET_VIEW_KEY.ROW),spreadsheetColumnHeader=new engineRender.SpreadsheetColumnHeader(SHEET_VIEW_KEY.COLUMN),SpreadsheetLeftTopPlaceholder=new engineRender.Rect(SHEET_VIEW_KEY.LEFT_TOP,{zIndex:2,left:-1,top:-1,fill:"rgb(248, 249, 250)",stroke:"rgb(217, 217, 217)",strokeWidth:1});this._context.mainComponent=spreadsheet,components.set(SHEET_VIEW_KEY.MAIN,spreadsheet),components.set(SHEET_VIEW_KEY.ROW,spreadsheetRowHeader),components.set(SHEET_VIEW_KEY.COLUMN,spreadsheetColumnHeader),components.set(SHEET_VIEW_KEY.LEFT_TOP,SpreadsheetLeftTopPlaceholder),scene.addObjects([spreadsheet],SHEET_COMPONENT_MAIN_LAYER_INDEX),scene.addObjects([spreadsheetRowHeader,spreadsheetColumnHeader,SpreadsheetLeftTopPlaceholder],SHEET_COMPONENT_HEADER_LAYER_INDEX),scene.enableLayerCache(SHEET_COMPONENT_MAIN_LAYER_INDEX,SHEET_COMPONENT_HEADER_LAYER_INDEX)}_initViewports(scene,rowHeader,columnHeader){const viewMain=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN,scene,{left:rowHeader.width,top:columnHeader.height,bottom:0,right:0,isWheelPreventDefaultX:!0,isRelativeX:!0,isRelativeY:!0,allowCache:!0,bufferEdgeX:100,bufferEdgeY:100}),viewMainLeftTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP,scene,{isWheelPreventDefaultX:!0,active:!1,isRelativeX:!1,isRelativeY:!1,allowCache:!0,bufferEdgeX:0,bufferEdgeY:0}),viewMainLeft=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT,scene,{isWheelPreventDefaultX:!0,active:!1,isRelativeX:!1,isRelativeY:!0,allowCache:!0,bufferEdgeX:0,bufferEdgeY:100}),viewMainTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP,scene,{isWheelPreventDefaultX:!0,active:!1,isRelativeX:!0,isRelativeY:!1,allowCache:!0,bufferEdgeX:100,bufferEdgeY:0}),viewRowTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP,scene,{active:!1,isWheelPreventDefaultX:!0,isRelativeX:!1,isRelativeY:!1}),viewRowBottom=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM,scene,{left:0,top:columnHeader.height,bottom:0,width:rowHeader.width,isWheelPreventDefaultX:!0,isRelativeX:!1,isRelativeY:!0}),viewColumnLeft=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT,scene,{active:!1,isWheelPreventDefaultX:!0,isRelativeX:!1,isRelativeY:!1}),viewColumnRight=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT,scene,{left:rowHeader.width,top:0,height:columnHeader.height,right:0,isWheelPreventDefaultX:!0,isRelativeX:!0,isRelativeY:!1}),viewLeftTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP,scene,{left:0,top:0,width:rowHeader.width,height:columnHeader.height,isWheelPreventDefaultX:!0,isRelativeX:!1,isRelativeY:!1});return{viewMain,viewLeftTop,viewMainLeftTop,viewMainLeft,viewMainTop,viewColumnLeft,viewRowTop,viewRowBottom,viewColumnRight}}_addViewport(worksheet){const scene=this._context.scene;if(scene==null)return;const{rowHeader,columnHeader}=worksheet.getConfig(),{viewMain}=this._initViewports(scene,rowHeader,columnHeader);return this._initMouseWheel(scene,viewMain),new engineRender.ScrollBar(viewMain),scene.attachControl(),viewMain}_initRerenderScheduler(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{if(!param)return null;const{skeleton:spreadsheetSkeleton,sheetId}=param,workbook=this._context.unit,worksheet=workbook==null?void 0:workbook.getSheetBySheetId(sheetId);if(workbook==null||worksheet==null)return;const{mainComponent,components}=this._context,spreadsheet=mainComponent,spreadsheetRowHeader=components.get(SHEET_VIEW_KEY.ROW),spreadsheetColumnHeader=components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetLeftTopPlaceholder=components.get(SHEET_VIEW_KEY.LEFT_TOP),{rowHeaderWidth,columnHeaderHeight}=spreadsheetSkeleton;spreadsheet==null||spreadsheet.updateSkeleton(spreadsheetSkeleton),spreadsheetRowHeader==null||spreadsheetRowHeader.updateSkeleton(spreadsheetSkeleton),spreadsheetColumnHeader==null||spreadsheetColumnHeader.updateSkeleton(spreadsheetSkeleton),spreadsheetLeftTopPlaceholder==null||spreadsheetLeftTopPlaceholder.transformByState({width:rowHeaderWidth,height:columnHeaderHeight})}))}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{const{unit:workbook,unitId:workbookId}=this._context,{id:commandId}=command;if(sheets.COMMAND_LISTENER_SKELETON_CHANGE.includes(commandId)||this._sheetRenderService.checkMutationShouldTriggerRerender(commandId)){const worksheet=workbook.getActiveSheet();if(!worksheet)return;const workbookId2=this._context.unitId,worksheetId=worksheet.getSheetId(),params=command.params,{unitId,subUnitId}=params;if(unitId!==workbookId2||subUnitId!==worksheetId)return;commandId!==sheets.SetWorksheetActiveOperation.id&&this._sheetSkeletonManagerService.makeDirty({sheetId:worksheetId,commandId},!0),this._sheetSkeletonManagerService.setCurrent({sheetId:worksheetId,commandId})}else sheets.COMMAND_LISTENER_VALUE_CHANGE.includes(commandId)&&this._sheetSkeletonManagerService.reCalculate();command.type===core.CommandType.MUTATION&&this._markUnitDirty(workbookId,command)}))}_markUnitDirty(unitId,command){const{mainComponent:spreadsheet,scene}=this._context;if(spreadsheet&&spreadsheet.makeDirty(),scene.makeDirty(),!command.params)return;const cmdParams=command.params,viewports=this._spreadsheetViewports(scene);if(command.id===sheets.SetRangeValuesMutation.id&&cmdParams.cellValue){const dirtyRange=this._cellValueToRange(cmdParams.cellValue),dirtyBounds=this._rangeToBounds([dirtyRange]);this._markViewportDirty(viewports,dirtyBounds),spreadsheet.setDirtyArea(dirtyBounds)}if(command.id===sheets.MoveRangeMutation.id&&cmdParams.from&&cmdParams.to){const fromRange=this._cellValueToRange(cmdParams.from.value),toRange=this._cellValueToRange(cmdParams.to.value),dirtyBounds=this._rangeToBounds([fromRange,toRange]);this._markViewportDirty(viewports,dirtyBounds),spreadsheet.setDirtyArea(dirtyBounds)}}_cellValueToRange(cellValue){const rows=Object.keys(cellValue).map(Number),columns=[];for(const[_row,columnObj]of Object.entries(cellValue))for(const column in columnObj)columns.push(Number(column));const startRow=Math.min(...rows),endRow=Math.max(...rows),startColumn=Math.min(...columns),endColumn=Math.max(...columns);return{startRow,endRow,startColumn,endColumn}}_rangeToBounds(ranges){const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{rowHeightAccumulation,columnWidthAccumulation,rowHeaderWidth,columnHeaderHeight}=skeleton,dirtyBounds=[];for(const r of ranges){const{startRow,endRow,startColumn,endColumn}=r,top=startRow===0?0:rowHeightAccumulation[startRow-1]+columnHeaderHeight,bottom=rowHeightAccumulation[endRow]+columnHeaderHeight,left=startColumn===0?0:columnWidthAccumulation[startColumn-1]+rowHeaderWidth,right=columnWidthAccumulation[endColumn]+rowHeaderWidth;dirtyBounds.push({top,left,bottom,right,width:right-left,height:bottom-top})}return dirtyBounds}_markViewportDirty(viewports,dirtyBounds){const activeViewports=viewports.filter(vp=>vp.isActive&&vp.cacheBound);for(const vp of activeViewports)for(const b of dirtyBounds)core.Rectangle.hasIntersectionBetweenTwoRect(vp.cacheBound,b)&&vp.markDirty(!0)}_spreadsheetViewports(scene){return scene.getViewports().filter(v=>["viewMain","viewMainLeftTop","viewMainTop","viewMainLeft"].includes(v.viewportKey))}_initMouseWheel(scene,viewMain){this.disposeWithMe(scene.onMouseWheel$.subscribeEvent((evt,state)=>{if(evt.ctrlKey||!this._contextService.getContextValue(core.FOCUSING_SHEET))return;let offsetX=0,offsetY=0;const isLimitedStore=viewMain.limitedScroll();if(evt.inputIndex===engineRender.PointerInput.MouseWheelX){const scrollNum=Math.abs(evt.deltaX);evt.deltaX>0?offsetX=scrollNum:offsetX=-scrollNum,this._commandService.executeCommand(SetScrollRelativeCommand.id,{offsetX}),scene.getParent().classType===engineRender.RENDER_CLASS_TYPE.SCENE_VIEWER?isLimitedStore!=null&&isLimitedStore.isLimitedX||state.stopPropagation():viewMain.isWheelPreventDefaultX?evt.preventDefault():isLimitedStore!=null&&isLimitedStore.isLimitedX||evt.preventDefault()}if(evt.inputIndex===engineRender.PointerInput.MouseWheelY){let scrollNum=Math.abs(evt.deltaY);evt.shiftKey?(scrollNum*=3,evt.deltaY>0?offsetX=scrollNum:offsetX=-scrollNum,this._commandService.executeCommand(SetScrollRelativeCommand.id,{offsetX}),scene.getParent().classType===engineRender.RENDER_CLASS_TYPE.SCENE_VIEWER?isLimitedStore!=null&&isLimitedStore.isLimitedX||state.stopPropagation():viewMain.isWheelPreventDefaultX?evt.preventDefault():isLimitedStore!=null&&isLimitedStore.isLimitedX||evt.preventDefault()):(evt.deltaY>0?offsetY=scrollNum:offsetY=-scrollNum,this._commandService.executeCommand(SetScrollRelativeCommand.id,{offsetY}),scene.getParent().classType===engineRender.RENDER_CLASS_TYPE.SCENE_VIEWER?isLimitedStore!=null&&isLimitedStore.isLimitedY||state.stopPropagation():viewMain.isWheelPreventDefaultY?evt.preventDefault():isLimitedStore!=null&&isLimitedStore.isLimitedY||evt.preventDefault())}this._context.scene.makeDirty(!0)}))}},__name(_D,"SheetRenderController"),_D),exports2.SheetRenderController=__decorateClass$r([__decorateParam$r(1,core.IContextService),__decorateParam$r(2,core.Inject(exports2.SheetSkeletonManagerService)),__decorateParam$r(3,core.Inject(exports2.SheetsRenderService)),__decorateParam$r(4,core.ICommandService)],exports2.SheetRenderController);var __defProp$q=Object.defineProperty,__getOwnPropDesc$q=Object.getOwnPropertyDescriptor,__decorateClass$q=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$q(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$q(target,key,result),result},"__decorateClass$q"),__decorateParam$q=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$q");exports2.HoverManagerService=(_E=class extends core.Disposable{constructor(_univerInstanceService,_renderManagerService){super();__publicField(this,"_currentCell$",new rxjs.Subject);__publicField(this,"currentCell$",this._currentCell$.asObservable().pipe(rxjs.distinctUntilChanged((pre,aft)=>{var _a2,_b2,_c2,_d2,_e2,_f2,_g2,_h2;return((_a2=pre==null?void 0:pre.location)==null?void 0:_a2.unitId)===((_b2=aft==null?void 0:aft.location)==null?void 0:_b2.unitId)&&((_c2=pre==null?void 0:pre.location)==null?void 0:_c2.subUnitId)===((_d2=aft==null?void 0:aft.location)==null?void 0:_d2.subUnitId)&&((_e2=pre==null?void 0:pre.location)==null?void 0:_e2.row)===((_f2=aft==null?void 0:aft.location)==null?void 0:_f2.row)&&((_g2=pre==null?void 0:pre.location)==null?void 0:_g2.col)===((_h2=aft==null?void 0:aft.location)==null?void 0:_h2.col)})));__publicField(this,"currentPosition$",this._currentCell$.asObservable());__publicField(this,"_lastPosition",null);this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._initCellDisposableListener()}dispose(){super.dispose(),this._currentCell$.complete()}_initCellDisposableListener(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).subscribe(workbook=>{workbook||this._currentCell$.next(null)}))}_calcActiveCell(){if(!this._lastPosition)return;const{offsetX,offsetY}=this._lastPosition,workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook){this._currentCell$.next(null);return}const worksheet=workbook.getActiveSheet();if(!worksheet){this._currentCell$.next(null);return}const currentRender=this._renderManagerService.getRenderById(workbook.getUnitId()),skeletonParam=currentRender==null?void 0:currentRender.with(exports2.SheetSkeletonManagerService).getWorksheetSkeleton(worksheet.getSheetId()),scrollManagerService=currentRender==null?void 0:currentRender.with(SheetScrollManagerService),scrollInfo=scrollManagerService==null?void 0:scrollManagerService.getCurrentScrollState();if(!skeletonParam||!scrollInfo||!currentRender)return;const hoverPosition=getHoverCellPosition(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY);if(!hoverPosition){this._currentCell$.next(null);return}const{location,position}=hoverPosition;this._currentCell$.next({location,position})}onMouseMove(offsetX,offsetY){this._lastPosition={offsetX,offsetY},this._calcActiveCell()}onScroll(){this._currentCell$.next(null)}},__name(_E,"HoverManagerService"),_E),exports2.HoverManagerService=__decorateClass$q([__decorateParam$q(0,core.IUniverInstanceService),__decorateParam$q(1,engineRender.IRenderManagerService)],exports2.HoverManagerService);var __defProp$p=Object.defineProperty,__getOwnPropDesc$p=Object.getOwnPropertyDescriptor,__decorateClass$p=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$p(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$p(target,key,result),result},"__decorateClass$p"),__decorateParam$p=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$p");exports2.HoverRenderController=(_F=class extends core.Disposable{constructor(_context,_hoverManagerService,_sheetSkeletonManagerService,_scrollManagerService){super(),this._context=_context,this._hoverManagerService=_hoverManagerService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._scrollManagerService=_scrollManagerService,this._initPointerEvent(),this._initScrollEvent()}_initPointerEvent(){const disposeSet=new core.DisposableCollection,handleSkeletonChange=__name(skeletonParam=>{if(disposeSet.dispose(),!skeletonParam)return;const{mainComponent}=this._context,subscription=mainComponent==null?void 0:mainComponent.onPointerMove$.subscribeEvent(evt=>{this._hoverManagerService.onMouseMove(evt.offsetX,evt.offsetY)});subscription&&disposeSet.add(subscription)},"handleSkeletonChange");handleSkeletonChange(this._sheetSkeletonManagerService.getCurrent()),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(skeletonParam=>{handleSkeletonChange(skeletonParam)}))}_initScrollEvent(){this.disposeWithMe(this._scrollManagerService.validViewportScrollInfo$.subscribe(()=>this._hoverManagerService.onScroll()))}},__name(_F,"HoverRenderController"),_F),exports2.HoverRenderController=__decorateClass$p([__decorateParam$p(1,core.Inject(exports2.HoverManagerService)),__decorateParam$p(2,core.Inject(exports2.SheetSkeletonManagerService)),__decorateParam$p(3,core.Inject(SheetScrollManagerService))],exports2.HoverRenderController);const styles$8={cellAlert:"univer-cell-alert",cellAlertTitle:"univer-cell-alert-title",cellAlertIcon:"univer-cell-alert-icon",cellAlertIconError:"univer-cell-alert-icon-error",cellAlertIconInfo:"univer-cell-alert-icon-info",cellAlertIconWarning:"univer-cell-alert-icon-warning",cellAlertContent:"univer-cell-alert-content"};function CellAlert({popup}){var _a2;const alert=(_a2=popup.extraProps)==null?void 0:_a2.alert;if(!alert)return null;const{type,title,message}=alert,iconMap={[CellAlertType.ERROR]:jsxRuntimeExports.jsx(ErrorSingle,{className:clsx(styles$8.cellAlertIcon,styles$8.cellAlertIconError)}),[CellAlertType.INFO]:jsxRuntimeExports.jsx(WarningSingle,{className:clsx(styles$8.cellAlertIcon,styles$8.cellAlertIconInfo)}),[CellAlertType.WARNING]:jsxRuntimeExports.jsx(WarningSingle,{className:clsx(styles$8.cellAlertIcon,styles$8.cellAlertIconWarning)})};return jsxRuntimeExports.jsxs("div",{className:styles$8.cellAlert,children:[jsxRuntimeExports.jsxs("div",{className:styles$8.cellAlertTitle,children:[type?iconMap[type]:null,title]}),jsxRuntimeExports.jsx("div",{className:styles$8.cellAlertContent,children:message})]})}__name(CellAlert,"CellAlert");const CELL_ALERT_KEY="univer.sheet.cell-alert";var __defProp$o=Object.defineProperty,__getOwnPropDesc$o=Object.getOwnPropertyDescriptor,__decorateClass$o=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$o(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$o(target,key,result),result},"__decorateClass$o"),__decorateParam$o=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$o");exports2.SheetCanvasPopManagerService=(_G=class extends core.Disposable{constructor(_globalPopupManagerService,_renderManagerService,_univerInstanceService,_refRangeService,_commandService){super(),this._globalPopupManagerService=_globalPopupManagerService,this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService,this._refRangeService=_refRangeService,this._commandService=_commandService}_createObjectPositionObserver(targetObject,currentRender,skeleton,worksheet){const calc=__name(()=>{const{scene}=currentRender,{left,top,width,height}=targetObject,bound={left,right:left+width,top,bottom:top+height},offsetBound=transformBound2OffsetBound(bound,scene,skeleton,worksheet);return{left:offsetBound.left,right:offsetBound.right,top:offsetBound.top,bottom:offsetBound.bottom}},"calc"),position=calc(),position$=new rxjs.BehaviorSubject(position),disposable=new core.DisposableCollection;return disposable.add(this._commandService.onCommandExecuted(commandInfo=>{(commandInfo.id===SetScrollOperation.id||commandInfo.id===SetZoomRatioOperation.id)&&position$.next(calc())})),{position,position$,disposable}}attachPopupToObject(targetObject,popup){var _a2;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return{dispose:__name(()=>{},"dispose")};const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),skeleton=(_a2=this._renderManagerService.getRenderById(unitId))==null?void 0:_a2.with(exports2.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:subUnitId}),currentRender=this._renderManagerService.getRenderById(unitId);if(!currentRender||!skeleton)return{dispose:__name(()=>{},"dispose")};const{position,position$,disposable}=this._createObjectPositionObserver(targetObject,currentRender,skeleton,worksheet),id=this._globalPopupManagerService.addPopup({...popup,unitId,subUnitId,anchorRect:position,anchorRect$:position$});return{dispose:__name(()=>{this._globalPopupManagerService.removePopup(id),position$.complete(),disposable.dispose()},"dispose")}}attachPopupToCell(row,col,popup,viewport,showOnSelectionMoving=!1){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return null;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),currentRender=this._renderManagerService.getRenderById(unitId),skeleton=currentRender==null?void 0:currentRender.with(exports2.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:subUnitId}),sheetSelectionRenderService=currentRender==null?void 0:currentRender.with(ISheetSelectionRenderService);if(!currentRender||!skeleton||!sheetSelectionRenderService)return null;if(sheetSelectionRenderService.selectionMoving&&!showOnSelectionMoving)return;const activeViewport=viewport!=null?viewport:getViewportByCell(row,col,currentRender.scene,worksheet);if(!activeViewport)return null;const{position,position$,disposable:positionObserverDisposable,updateRowCol}=this._createCellPositionObserver(row,col,currentRender,skeleton,activeViewport),id=this._globalPopupManagerService.addPopup({...popup,unitId,subUnitId,anchorRect:position,anchorRect$:position$}),disposableCollection=new core.DisposableCollection;disposableCollection.add(positionObserverDisposable),disposableCollection.add(core.toDisposable(()=>{this._globalPopupManagerService.removePopup(id),position$.complete()}));const watchedRange={startRow:row,endRow:row,startColumn:col,endColumn:col};return disposableCollection.add(this._refRangeService.watchRange(unitId,subUnitId,watchedRange,(_,after)=>{after?updateRowCol(after.startRow,after.startColumn):disposableCollection.dispose()})),disposableCollection}_createCellPositionObserver(initialRow,initialCol,currentRender,skeleton,activeViewport){let row=initialRow,col=initialCol;const position=this._calcCellPositionByCell(row,col,currentRender,skeleton,activeViewport),position$=new rxjs.BehaviorSubject(position),updatePosition=__name(()=>position$.next(this._calcCellPositionByCell(row,col,currentRender,skeleton,activeViewport)),"updatePosition"),disposable=new core.DisposableCollection;return disposable.add(currentRender.engine.clientRect$.subscribe(()=>updatePosition())),disposable.add(this._commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===sheets.SetWorksheetRowAutoHeightMutation.id&&commandInfo.params.rowsAutoHeightInfo.findIndex(item=>item.row===row)>-1){updatePosition();return}(sheets.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(commandInfo.id)>-1||commandInfo.id===SetScrollOperation.id||commandInfo.id===SetZoomRatioOperation.id)&&updatePosition()})),{position$,disposable,position,updateRowCol:__name((newRow,newCol)=>{row=newRow,col=newCol,updatePosition()},"updateRowCol")}}_calcCellPositionByCell(row,col,currentRender,skeleton,activeViewport){const{scene,engine}=currentRender,primaryWithCoord=skeleton.getCellByIndex(row,col),cellInfo=primaryWithCoord.isMergedMainCell?primaryWithCoord.mergeInfo:primaryWithCoord,{scaleX,scaleY}=scene.getAncestorScale(),scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY},canvasElement=engine.getCanvasElement(),canvasClientRect=canvasElement.getBoundingClientRect(),widthOfCanvas=pxToNum(canvasElement.style.width),{top,left,width}=canvasClientRect,scaleAdjust=width/widthOfCanvas;return{left:(cellInfo.startX-scrollXY.x)*scaleAdjust*scaleX+left,right:(cellInfo.endX-scrollXY.x)*scaleAdjust*scaleX+left,top:(cellInfo.startY-scrollXY.y)*scaleAdjust*scaleY+top,bottom:(cellInfo.endY-scrollXY.y)*scaleAdjust*scaleY+top}}},__name(_G,"SheetCanvasPopManagerService"),_G),exports2.SheetCanvasPopManagerService=__decorateClass$o([__decorateParam$o(0,core.Inject(ui.ICanvasPopupService)),__decorateParam$o(1,engineRender.IRenderManagerService),__decorateParam$o(2,core.IUniverInstanceService),__decorateParam$o(3,core.Inject(sheets.RefRangeService)),__decorateParam$o(4,core.ICommandService)],exports2.SheetCanvasPopManagerService);function pxToNum(width){return Number.parseInt(width.replace("px",""))}__name(pxToNum,"pxToNum");var __defProp$n=Object.defineProperty,__getOwnPropDesc$n=Object.getOwnPropertyDescriptor,__decorateClass$n=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$n(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$n(target,key,result),result},"__decorateClass$n"),__decorateParam$n=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$n"),CellAlertType=(CellAlertType2=>(CellAlertType2[CellAlertType2.INFO=0]="INFO",CellAlertType2[CellAlertType2.WARNING=1]="WARNING",CellAlertType2[CellAlertType2.ERROR=2]="ERROR",CellAlertType2))(CellAlertType||{});exports2.CellAlertManagerService=(_H=class extends core.Disposable{constructor(_renderManagerService,_canvasPopManagerService){super();__publicField(this,"_currentAlert$",new rxjs.Subject);__publicField(this,"_currentAlert",new Map);__publicField(this,"currentAlert$",this._currentAlert$.asObservable());this._renderManagerService=_renderManagerService,this._canvasPopManagerService=_canvasPopManagerService,this.disposeWithMe(()=>{this._currentAlert$.complete()})}get currentAlert(){return this._currentAlert}showAlert(alert){let lastPopup=this._currentAlert.get(alert.key);lastPopup&&lastPopup.dispose.dispose(),lastPopup?lastPopup.dispose.dispose():(lastPopup={alert,dispose:{dispose(){}}},this._currentAlert.set(alert.key,lastPopup));const{location}=alert,{row,col,unitId}=location;if(!this._renderManagerService.getRenderById(unitId))return;const disposable=this._canvasPopManagerService.attachPopupToCell(row,col,{componentKey:CELL_ALERT_KEY,direction:"horizontal",offset:[2,0],extraProps:{alert}});disposable&&(lastPopup.dispose=disposable),this._currentAlert$.next(Array.from(this._currentAlert.entries()))}removeAlert(key){const lastPopup=this._currentAlert.get(key);lastPopup&&(this._currentAlert.delete(key),lastPopup==null||lastPopup.dispose.dispose(),this._currentAlert$.next(Array.from(this._currentAlert.entries())))}clearAlert(){this._currentAlert.forEach(alert=>{alert.dispose.dispose()}),this._currentAlert.clear(),this._currentAlert$.next(Array.from(this._currentAlert.entries()))}},__name(_H,"CellAlertManagerService"),_H),exports2.CellAlertManagerService=__decorateClass$n([__decorateParam$n(0,engineRender.IRenderManagerService),__decorateParam$n(1,core.Inject(exports2.SheetCanvasPopManagerService))],exports2.CellAlertManagerService);var __defProp$m=Object.defineProperty,__getOwnPropDesc$m=Object.getOwnPropertyDescriptor,__decorateClass$m=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$m(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$m(target,key,result),result},"__decorateClass$m"),__decorateParam$m=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$m");let CellAlertRenderController=(_I=class extends core.Disposable{constructor(_context,_componentManager){super(),this._context=_context,this._componentManager=_componentManager,this._initComponent()}_initComponent(){this._componentManager.register(CELL_ALERT_KEY,CellAlert)}},__name(_I,"CellAlertRenderController"),_I);CellAlertRenderController=__decorateClass$m([core.OnLifecycle(core.LifecycleStages.Starting,CellAlertRenderController),__decorateParam$m(1,core.Inject(ui.ComponentManager))],CellAlertRenderController);var __defProp$l=Object.defineProperty,__getOwnPropDesc$l=Object.getOwnPropertyDescriptor,__decorateClass$l=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$l(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$l(target,key,result),result},"__decorateClass$l"),__decorateParam$l=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$l");let ForceStringRenderController=(_J=class extends core.RxDisposable{constructor(_context,_sheetSkeletonManagerService,_sheetInterceptorService){super(),this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._sheetInterceptorService=_sheetInterceptorService,this._init()}_init(){this._initViewModelIntercept()}_initViewModelIntercept(){const FORCE_STRING_MARK={tl:{size:6,color:"#409f11"}};this.disposeWithMe(this._sheetInterceptorService.intercept(sheets.INTERCEPTOR_POINT.CELL_CONTENT,{priority:10,handler:__name((cell,pos,next)=>{var _a2;if(!((_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton))return next(cell);const cellRaw=pos.worksheet.getCellRaw(pos.row,pos.col);return!cellRaw||cellRaw.v===null||cellRaw.v===void 0?next(cell):(cell==null?void 0:cell.t)===core.CellValueType.FORCE_STRING&&core.isRealNum(cellRaw.v)?next({...cell,markers:{...cell==null?void 0:cell.markers,...FORCE_STRING_MARK}}):next(cell)},"handler")}))}},__name(_J,"ForceStringRenderController"),_J);ForceStringRenderController=__decorateClass$l([core.OnLifecycle(core.LifecycleStages.Rendered,ForceStringRenderController),__decorateParam$l(1,core.Inject(exports2.SheetSkeletonManagerService)),__decorateParam$l(2,core.Inject(sheets.SheetInterceptorService))],ForceStringRenderController);var __defProp$k=Object.defineProperty,__getOwnPropDesc$k=Object.getOwnPropertyDescriptor,__decorateClass$k=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$k(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$k(target,key,result),result},"__decorateClass$k"),__decorateParam$k=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$k");const ALERT_KEY="SHEET_FORCE_STRING_ALERT";let ForceStringAlertRenderController=(_K=class extends core.Disposable{constructor(_context,_hoverManagerService,_cellAlertManagerService,_localeService){super(),this._context=_context,this._hoverManagerService=_hoverManagerService,this._cellAlertManagerService=_cellAlertManagerService,this._localeService=_localeService,this._init()}_init(){this._initCellAlertPopup()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.subscribe(cellPos=>{var _a2;if(cellPos){const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const cellData=worksheet.getCell(cellPos.location.row,cellPos.location.col);if((cellData==null?void 0:cellData.t)===core.CellValueType.FORCE_STRING&&cellData.v&&core.isRealNum(cellData.v)){const currentAlert=this._cellAlertManagerService.currentAlert.get(ALERT_KEY),currentLoc=(_a2=currentAlert==null?void 0:currentAlert.alert)==null?void 0:_a2.location;if(currentLoc&&currentLoc.row===cellPos.location.row&&currentLoc.col===cellPos.location.col&&currentLoc.subUnitId===cellPos.location.subUnitId&&currentLoc.unitId===cellPos.location.unitId)return;this._cellAlertManagerService.showAlert({type:CellAlertType.ERROR,title:this._localeService.t("info.error"),message:this._localeService.t("info.forceStringInfo"),location:cellPos.location,width:200,height:74,key:ALERT_KEY});return}}this._cellAlertManagerService.removeAlert(ALERT_KEY)}))}},__name(_K,"ForceStringAlertRenderController"),_K);ForceStringAlertRenderController=__decorateClass$k([core.OnLifecycle(core.LifecycleStages.Rendered,ForceStringAlertRenderController),__decorateParam$k(1,core.Inject(exports2.HoverManagerService)),__decorateParam$k(2,core.Inject(exports2.CellAlertManagerService)),__decorateParam$k(3,core.Inject(core.LocaleService))],ForceStringAlertRenderController);var __defProp$j=Object.defineProperty,__getOwnPropDesc$j=Object.getOwnPropertyDescriptor,__decorateClass$j=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$j(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$j(target,key,result),result},"__decorateClass$j"),__decorateParam$j=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$j");let SheetContextMenuRenderController=(_L=class extends core.Disposable{constructor(_context,_contextMenuService,_selectionManagerService,_selectionRenderService){super(),this._context=_context,this._contextMenuService=_contextMenuService,this._selectionManagerService=_selectionManagerService,this._selectionRenderService=_selectionRenderService,this._init()}_init(){var _a2,_b2;const spreadsheetSubscription=((_b2=(_a2=this._context)==null?void 0:_a2.mainComponent)==null?void 0:_b2.onPointerDown$).subscribeEvent(event=>{if(event.button===2){const selections=this._selectionManagerService.getCurrentSelections(),currentSelection=selections==null?void 0:selections[0];if(!currentSelection)return;const rangeType=currentSelection.range.rangeType,skeleton=this._selectionRenderService.getSkeleton(),range=attachSelectionWithCoord(currentSelection,skeleton).rangeWithCoord,isPointerInRange=__name(()=>{if(!range)return!1;const x=event.offsetX,y=event.offsetY;switch(rangeType){case core.RANGE_TYPE.ROW:return range.startY<=y&&range.endY>=y;case core.RANGE_TYPE.COLUMN:return range.startX<=x&&range.endX>=x;default:return range.startX<=x&&range.endX>=x&&range.startY<=y&&range.endY>=y}},"isPointerInRange"),triggerMenu=__name(position=>{this._contextMenuService.triggerContextMenu(event,position)},"triggerMenu");isPointerInRange()?rangeType===core.RANGE_TYPE.COLUMN?triggerMenu(SheetMenuPosition.COL_HEADER_CONTEXT_MENU):rangeType===core.RANGE_TYPE.ROW?triggerMenu(SheetMenuPosition.ROW_HEADER_CONTEXT_MENU):triggerMenu(ui.MenuPosition.CONTEXT_MENU):triggerMenu(ui.MenuPosition.CONTEXT_MENU)}});this.disposeWithMe(spreadsheetSubscription);const spreadsheetColumnHeader=this._context.components.get(SHEET_VIEW_KEY.COLUMN),rowHeaderSub=this._context.components.get(SHEET_VIEW_KEY.ROW).onPointerDown$.subscribeEvent(event=>{event.button===2&&this._contextMenuService.triggerContextMenu(event,SheetMenuPosition.ROW_HEADER_CONTEXT_MENU)});this.disposeWithMe(rowHeaderSub);const colHeaderObserver=spreadsheetColumnHeader.onPointerDown$.subscribeEvent(event=>{event.button===2&&this._contextMenuService.triggerContextMenu(event,SheetMenuPosition.COL_HEADER_CONTEXT_MENU)});this.disposeWithMe(colHeaderObserver)}},__name(_L,"SheetContextMenuRenderController"),_L);SheetContextMenuRenderController=__decorateClass$j([__decorateParam$j(1,ui.IContextMenuService),__decorateParam$j(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$j(3,ISheetSelectionRenderService)],SheetContextMenuRenderController);var __defProp$i=Object.defineProperty,__getOwnPropDesc$i=Object.getOwnPropertyDescriptor,__decorateClass$i=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$i(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$i(target,key,result),result},"__decorateClass$i"),__decorateParam$i=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$i");let EditorBridgeRenderController=(_M=class extends core.RxDisposable{constructor(_context,_instanceSrv,_commandService,_editorBridgeService,_selectionManagerService,_rangeSelectorService){super();__publicField(this,"_d");this._context=_context,this._instanceSrv=_instanceSrv,this._commandService=_commandService,this._editorBridgeService=_editorBridgeService,this._selectionManagerService=_selectionManagerService,this._rangeSelectorService=_rangeSelectorService,this.disposeWithMe(this._instanceSrv.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).subscribe(workbook=>{workbook&&workbook.getUnitId()===this._context.unitId?this._d=this._init():this._disposeCurrent()})),this._initialRangeSelector()}_init(){const d=new core.DisposableCollection;return this._initSelectionChangeListener(d),this._initEventListener(d),this._commandExecutedListener(d),d}_disposeCurrent(){var _a2;(_a2=this._d)==null||_a2.dispose(),this._d=null}_initSelectionChangeListener(d){d.add(rxjs.merge(this._selectionManagerService.selectionMoveEnd$,this._selectionManagerService.selectionMoveStart$).subscribe(params=>this._updateEditorPosition(params)))}_updateEditorPosition(params){var _a2,_b2;if(this._editorBridgeService.isVisible().visible)return;const primary=(_a2=params==null?void 0:params[params.length-1])==null?void 0:_a2.primary;if(primary){const sheetObject=this._getSheetObject(),{scene,engine}=sheetObject,unitId=this._context.unitId,sheetId=(_b2=this._context.unit.getActiveSheet())==null?void 0:_b2.getSheetId();if(!sheetId)return;this._commandService.executeCommand(SetActivateCellEditOperation.id,{scene,engine,primary,unitId,sheetId})}}_initEventListener(d){const sheetObject=this._getSheetObject(),{spreadsheet,spreadsheetColumnHeader,spreadsheetLeftTopPlaceholder,spreadsheetRowHeader}=sheetObject;d.add(spreadsheet.onDblclick$.subscribeEvent(evt=>{evt.button!==2&&this._commandService.executeCommand(SetCellEditVisibleOperation.id,{visible:!0,eventType:engineRender.DeviceInputEventType.Dblclick,unitId:this._context.unitId})})),d.add(spreadsheet.onPointerDown$.subscribeEvent(this._tryHideEditor.bind(this))),d.add(spreadsheetColumnHeader.onPointerDown$.subscribeEvent(this._tryHideEditor.bind(this))),d.add(spreadsheetLeftTopPlaceholder.onPointerDown$.subscribeEvent(this._tryHideEditor.bind(this))),d.add(spreadsheetRowHeader.onPointerDown$.subscribeEvent(this._tryHideEditor.bind(this)))}_tryHideEditor(){this._editorBridgeService.isForceKeepVisible()||this._hideEditor()}_hideEditor(){this._editorBridgeService.isVisible().visible===!0&&this._commandService.executeCommand(SetCellEditVisibleOperation.id,{visible:!1,eventType:engineRender.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,sheetId,sheetName}=this._getCurrentUnitIdAndSheetId();if(!sheetId||!sheetName)return;const selectionWithStyle=this._selectionManagerService.getCurrentSelections(),ranges=selectionWithStyle==null?void 0:selectionWithStyle.map(value=>({range:value.range,unitId,sheetId,sheetName}));ranges&&this._rangeSelectorService.selectionChange(ranges)}))}_rangeSelector(selectionWithStyle){if(!selectionWithStyle)return;const{unitId,sheetId,sheetName}=this._getCurrentUnitIdAndSheetId();if(!sheetId||!sheetName)return;const ranges=selectionWithStyle.map(value=>({range:value.range,unitId,sheetId,sheetName}));this._rangeSelectorService.selectionChange(ranges)}_getCurrentUnitIdAndSheetId(){const workbook=this._context.unit,worksheet=workbook.getActiveSheet();return{unitId:workbook.getUnitId(),sheetId:worksheet==null?void 0:worksheet.getSheetId(),sheetName:worksheet==null?void 0:worksheet.getName()}}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_commandExecutedListener(d){d.add(this._commandService.onCommandExecuted((command,options)=>{command.id===SetZoomRatioCommand.id&&this._editorBridgeService.refreshEditCellState(),!(options!=null&&options.fromCollab)&&(command.id===sheets.SetWorksheetActiveOperation.id?this._tryHideEditor():sheets.COMMAND_LISTENER_SKELETON_CHANGE.includes(command.id)&&this._hideEditor())}))}},__name(_M,"EditorBridgeRenderController"),_M);EditorBridgeRenderController=__decorateClass$i([__decorateParam$i(1,core.IUniverInstanceService),__decorateParam$i(2,core.ICommandService),__decorateParam$i(3,IEditorBridgeService),__decorateParam$i(4,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$i(5,ui.IRangeSelectorService)],EditorBridgeRenderController);var __defProp$h=Object.defineProperty,__getOwnPropDesc$h=Object.getOwnPropertyDescriptor,__decorateClass$h=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$h(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$h(target,key,result),result},"__decorateClass$h"),__decorateParam$h=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$h");let FormatPainterController=(_N=class extends core.Disposable{constructor(_commandService,_formatPainterService,_univerInstanceService,_renderManagerService,_selectionManagerService,_sheetInterceptorService,_injector){super(),this._commandService=_commandService,this._formatPainterService=_formatPainterService,this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._selectionManagerService=_selectionManagerService,this._sheetInterceptorService=_sheetInterceptorService,this._injector=_injector,this._initialize()}_initialize(){this._commandExecutedListener(),this._addDefaultHook()}_commandExecutedListener(){const selectionRenderService=this._renderManagerService.getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_SHEET).with(ISheetSelectionRenderService);this.disposeWithMe(selectionRenderService.selectionMoveEnd$.subscribe(selections=>{var _a2,_b2;if(this._formatPainterService.getStatus()!==FormatPainterStatus.OFF){const{rangeWithCoord}=selections[selections.length-1];this._commandService.executeCommand(ApplyFormatPainterCommand.id,{unitId:((_a2=this._univerInstanceService.getFocusedUnit())==null?void 0:_a2.getUnitId())||"",subUnitId:((_b2=this._univerInstanceService.getFocusedUnit().getActiveSheet())==null?void 0:_b2.getSheetId())||"",range:{startRow:rangeWithCoord.startRow,startColumn:rangeWithCoord.startColumn,endRow:rangeWithCoord.endRow,endColumn:rangeWithCoord.endColumn}}),this._formatPainterService.getStatus()===FormatPainterStatus.ONCE&&this._commandService.executeCommand(SetOnceFormatPainterCommand.id)}}))}_addDefaultHook(){const defaultHook={id:"default-format-painter",priority:0,isDefaultHook:!0,onStatusChange:__name(status=>{if(status!==FormatPainterStatus.OFF){const format=this._collectSelectionRangeFormat();format&&this._formatPainterService.setSelectionFormat(format)}},"onStatusChange"),onApply:__name((unitId,subUnitId,range,format)=>this._getUndoRedoMutationInfo(unitId,subUnitId,range,format),"onApply")};this._formatPainterService.addHook(defaultHook)}_collectSelectionRangeFormat(){const selection=this._selectionManagerService.getCurrentLastSelection(),range=selection==null?void 0:selection.range;if(!range)return null;const{startRow,endRow,startColumn,endColumn}=range,workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!worksheet)return null;const cellData=worksheet.getCellMatrix(),mergeData=worksheet.getMergeData(),styles2=workbook.getStyles(),stylesMatrix=new core.ObjectMatrix,merges=[];for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++){const cell=cellData.getValue(r,c);stylesMatrix.setValue(r,c,styles2.getStyleByCell(cell)||{});const{isMergedMainCell,...mergeInfo}=core.getCellInfoInMergeData(r,c,mergeData);isMergedMainCell&&merges.push({startRow:mergeInfo.startRow,startColumn:mergeInfo.startColumn,endRow:mergeInfo.endRow,endColumn:mergeInfo.endColumn})}return{styles:stylesMatrix,merges}}_getUndoRedoMutationInfo(unitId,subUnitId,range,format){const sheetInterceptorService=this._sheetInterceptorService,univerInstanceService=this._univerInstanceService,accessor={get:this._injector.get.bind(this._injector)},{merges,styles:stylesMatrix}=format;if(!stylesMatrix)return{undos:[],redos:[]};const{startRow,startColumn,endRow,endColumn}=stylesMatrix.getDataRange(),styleRowsNum=endRow-startRow+1,styleColsNum=endColumn-startColumn+1,styleValues=Array.from({length:range.endRow-range.startRow+1},()=>Array.from({length:range.endColumn-range.startColumn+1},()=>({}))),mergeRanges=[];styleValues.forEach((row,rowIndex)=>{row.forEach((col,colIndex)=>{const mappedRowIndex=rowIndex%styleRowsNum+startRow,mappedColIndex=colIndex%styleColsNum+startColumn,style=stylesMatrix.getValue(mappedRowIndex,mappedColIndex);style&&(styleValues[rowIndex][colIndex].s=style)})}),merges.forEach(merge=>{const relatedRange={startRow:merge.startRow-startRow,startColumn:merge.startColumn-startColumn,endRow:merge.endRow-startRow,endColumn:merge.endColumn-startColumn},rowRepeats=Math.max(1,Math.floor((range.endRow-range.startRow+1)/styleRowsNum)),colRepeats=Math.max(1,Math.floor((range.endColumn-range.startColumn+1)/styleColsNum));for(let i=0;i<rowRepeats;i++)for(let j=0;j<colRepeats;j++)mergeRanges.push({startRow:relatedRange.startRow+i*styleRowsNum+range.startRow,startColumn:relatedRange.startColumn+j*styleColsNum+range.startColumn,endRow:relatedRange.endRow+i*styleRowsNum+range.startRow,endColumn:relatedRange.endColumn+j*styleColsNum+range.startColumn})});const currentSelections=[range],cellValue=new core.ObjectMatrix;let realCellValue;if(core.Tools.isArray(styleValues))for(let i=0;i<currentSelections.length;i++){const{startRow:startRow2,startColumn:startColumn2,endRow:endRow2,endColumn:endColumn2}=currentSelections[i];for(let r=0;r<=endRow2-startRow2;r++)for(let c=0;c<=endColumn2-startColumn2;c++)cellValue.setValue(r+startRow2,c+startColumn2,styleValues[r][c])}else if(core.isICellData(styleValues))for(let i=0;i<currentSelections.length;i++){const{startRow:startRow2,startColumn:startColumn2}=currentSelections[i];cellValue.setValue(startRow2,startColumn2,styleValues)}else realCellValue=styleValues;const setRangeValuesMutationParams={subUnitId,unitId,cellValue:realCellValue!=null?realCellValue:cellValue.getMatrix()},undoSetRangeValuesMutationParams=sheets.SetRangeValuesUndoMutationFactory(accessor,setRangeValuesMutationParams),{undos:interceptorUndos,redos:interceptorRedos}=sheetInterceptorService.onCommandExecute({id:sheets.SetRangeValuesCommand.id,params:{...setRangeValuesMutationParams,range:currentSelections}}),ranges=sheets.getAddMergeMutationRangeByType(mergeRanges),mergeRedos=[],mergeUndos=[],worksheet=univerInstanceService.getUnit(unitId).getSheetBySheetId(subUnitId),willRemoveSomeCell=checkCellContentInRanges(worksheet,ranges),removeMergeMutationParams={unitId,subUnitId,ranges},addMergeMutationParams={unitId,subUnitId,ranges};mergeRedos.push({id:sheets.RemoveWorksheetMergeMutation.id,params:removeMergeMutationParams}),mergeRedos.push({id:sheets.AddWorksheetMergeMutation.id,params:addMergeMutationParams});const undoRemoveMergeMutationParams=sheets.RemoveMergeUndoMutationFactory(accessor,removeMergeMutationParams),undoMutationParams=sheets.AddMergeUndoMutationFactory(accessor,addMergeMutationParams);if(mergeUndos.push({id:sheets.RemoveWorksheetMergeMutation.id,params:undoMutationParams}),mergeUndos.push({id:sheets.AddWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams}),willRemoveSomeCell){const data=getClearContentMutationParamsForRanges(accessor,unitId,worksheet,ranges);mergeRedos.unshift(...data.redos),mergeUndos.push(...data.undos)}return{undos:[{id:sheets.SetRangeValuesMutation.id,params:undoSetRangeValuesMutationParams},...interceptorUndos,...mergeUndos],redos:[{id:sheets.SetRangeValuesMutation.id,params:setRangeValuesMutationParams},...interceptorRedos,...mergeRedos]}}},__name(_N,"FormatPainterController"),_N);FormatPainterController=__decorateClass$h([core.OnLifecycle(core.LifecycleStages.Steady,FormatPainterController),__decorateParam$h(0,core.ICommandService),__decorateParam$h(1,IFormatPainterService),__decorateParam$h(2,core.IUniverInstanceService),__decorateParam$h(3,engineRender.IRenderManagerService),__decorateParam$h(4,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$h(5,core.Inject(sheets.SheetInterceptorService)),__decorateParam$h(6,core.Inject(core.Injector))],FormatPainterController);var __defProp$g=Object.defineProperty,__getOwnPropDesc$g=Object.getOwnPropertyDescriptor,__decorateClass$g=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$g(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$g(target,key,result),result},"__decorateClass$g"),__decorateParam$g=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$g");exports2.DragManagerService=(_O=class extends core.Disposable{constructor(_univerInstanceService,_renderManagerService){super();__publicField(this,"_currentCell$",new rxjs.Subject);__publicField(this,"currentCell$",this._currentCell$.asObservable().pipe(rxjs.distinctUntilChanged((pre,aft)=>{var _a2,_b2,_c2,_d2,_e2,_f2,_g2,_h2;return((_a2=pre==null?void 0:pre.location)==null?void 0:_a2.unitId)===((_b2=aft==null?void 0:aft.location)==null?void 0:_b2.unitId)&&((_c2=pre==null?void 0:pre.location)==null?void 0:_c2.subUnitId)===((_d2=aft==null?void 0:aft.location)==null?void 0:_d2.subUnitId)&&((_e2=pre==null?void 0:pre.location)==null?void 0:_e2.row)===((_f2=aft==null?void 0:aft.location)==null?void 0:_f2.row)&&((_g2=pre==null?void 0:pre.location)==null?void 0:_g2.col)===((_h2=aft==null?void 0:aft.location)==null?void 0:_h2.col)})));__publicField(this,"_endCell$",new rxjs.Subject);__publicField(this,"endCell$",this._endCell$.asObservable());this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._initCellDisposableListener()}dispose(){super.dispose(),this._currentCell$.complete(),this._endCell$.complete()}_initCellDisposableListener(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).subscribe(workbook=>{workbook||(this._currentCell$.next(null),this._endCell$.next(null))}))}_calcActiveCell(offsetX,offsetY){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return null;const worksheet=workbook.getActiveSheet();if(!worksheet)return;const currentRender=this._renderManagerService.getRenderById(workbook.getUnitId());if(!currentRender)return;const skeletonParam=currentRender.with(exports2.SheetSkeletonManagerService).getCurrent(),scrollInfo=currentRender.with(SheetScrollManagerService).getCurrentScrollState();if(!(!skeletonParam||!scrollInfo||!currentRender))return getHoverCellPosition(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY)}onDragOver(evt){const{offsetX,offsetY,dataTransfer}=evt,activeCell=this._calcActiveCell(offsetX,offsetY);if(!activeCell){this._currentCell$.next(null);return}const{location,position}=activeCell;this._currentCell$.next({location,position,dataTransfer})}onDrop(evt){const{offsetX,offsetY,dataTransfer}=evt,activeCell=this._calcActiveCell(offsetX,offsetY);if(!activeCell){this._endCell$.next(null);return}const{location,position}=activeCell;this._endCell$.next({location,position,dataTransfer})}},__name(_O,"DragManagerService"),_O),exports2.DragManagerService=__decorateClass$g([__decorateParam$g(0,core.IUniverInstanceService),__decorateParam$g(1,engineRender.IRenderManagerService)],exports2.DragManagerService);var __defProp$f=Object.defineProperty,__getOwnPropDesc$f=Object.getOwnPropertyDescriptor,__decorateClass$f=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$f(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$f(target,key,result),result},"__decorateClass$f"),__decorateParam$f=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$f");exports2.DragRenderController=(_P=class extends core.Disposable{constructor(_context,_renderManagerService,_dragManagerService,_sheetSkeletonManagerService){super(),this._context=_context,this._renderManagerService=_renderManagerService,this._dragManagerService=_dragManagerService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._initDragEvent()}_initDragEvent(){const disposeSet=new core.DisposableCollection,handleSkeletonChange=__name(skeletonParam=>{if(disposeSet.dispose(),!skeletonParam)return;const{scene}=this._context,dragOverSub=scene.onDragOver$.subscribeEvent(evt=>{this._dragManagerService.onDragOver(evt)}),dropSub=scene.onDrop$.subscribeEvent(evt=>{this._dragManagerService.onDrop(evt)});disposeSet.add({dispose(){dragOverSub.unsubscribe(),dropSub.unsubscribe()}})},"handleSkeletonChange");handleSkeletonChange(this._sheetSkeletonManagerService.getCurrent()),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(skeletonParam=>{handleSkeletonChange(skeletonParam)}))}},__name(_P,"DragRenderController"),_P),exports2.DragRenderController=__decorateClass$f([__decorateParam$f(1,engineRender.IRenderManagerService),__decorateParam$f(2,core.Inject(exports2.DragManagerService)),__decorateParam$f(3,core.Inject(exports2.SheetSkeletonManagerService))],exports2.DragRenderController);const UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID="UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID",UNIVER_SHEET_PERMISSION_ALERT_DIALOG="UNIVER_SHEET_PERMISSION_ALERT_DIALOG";var __defProp$e=Object.defineProperty,__getOwnPropDesc$e=Object.getOwnPropertyDescriptor,__decorateClass$e=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$e(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$e(target,key,result),result},"__decorateClass$e"),__decorateParam$e=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$e");exports2.SheetPermissionInterceptorBaseController=(_Q=class extends core.Disposable{constructor(_commandService,_univerInstanceService,_permissionService,_selectionManagerService,_dialogService,_rangeProtectionRuleModel,_worksheetProtectionRuleModel,_autoFillService,_localeService,_lexerTreeBuilder,_contextService,_definedNamesService){super();__publicField(this,"disposableCollection",new core.DisposableCollection);__publicField(this,"_showPermissionDialog",!0);this._commandService=_commandService,this._univerInstanceService=_univerInstanceService,this._permissionService=_permissionService,this._selectionManagerService=_selectionManagerService,this._dialogService=_dialogService,this._rangeProtectionRuleModel=_rangeProtectionRuleModel,this._worksheetProtectionRuleModel=_worksheetProtectionRuleModel,this._autoFillService=_autoFillService,this._localeService=_localeService,this._lexerTreeBuilder=_lexerTreeBuilder,this._contextService=_contextService,this._definedNamesService=_definedNamesService,this._initialize()}setShowPermissionDialog(value){this._showPermissionDialog=value}haveNotPermissionHandle(errorMsg){const dialogProps={id:UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID,title:{title:""},children:{label:UNIVER_SHEET_PERMISSION_ALERT_DIALOG,errorMsg},width:320,destroyOnClose:!0,onClose:__name(()=>this._dialogService.close(UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID),"onClose"),className:"sheet-permission-user-dialog"};throw this._showPermissionDialog&&this._dialogService.open(dialogProps),new Error("have not permission")}_getPermissionCheck(id,params){var _a2,_b2;let permission=!0,errorMsg="";switch(id){case docs.InsertCommand.id:case docs.IMEInputCommand.id:case SetCellEditVisibleOperation.id:if(this._contextService.getContextValue(core.FOCUSING_EDITOR_STANDALONE)===!0)break;permission=this.permissionCheckWithoutRange({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission]}),errorMsg=this._localeService.t("permission.dialog.editErr");break;case sheets.SetRangeValuesCommand.id:core.isICellData(params.value)&&params.value.f?(permission=this._permissionCheckWithFormula(params),errorMsg=this._localeService.t("permission.dialog.formulaErr")):permission=this._permissionCheckBySetRangeValue({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission]},params);break;case sheets.ClearSelectionContentCommand.id:permission=this.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission]}),errorMsg=this._localeService.t("permission.dialog.editErr");break;case SheetPasteColWidthCommand.id:permission=this.permissionCheckWithoutRange({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetColumnStylePermission]}),errorMsg=this._localeService.t("permission.dialog.pasteErr");break;case SheetPasteShortKeyCommand.id:permission=this._permissionCheckByPaste(params),errorMsg=this._localeService.t("permission.dialog.pasteErr");break;case ApplyFormatPainterCommand.id:permission=this.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetCellStylePermission]}),errorMsg=this._localeService.t("permission.dialog.commonErr");break;case sheets.SetBackgroundColorCommand.id:case SetRangeBoldCommand.id:case SetRangeItalicCommand.id:case SetRangeUnderlineCommand.id:case SetRangeStrickThroughCommand.id:permission=this.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission]}),errorMsg=this._localeService.t("permission.dialog.setStyleErr");break;case SheetCopyCommand.id:case SheetCutCommand.id:permission=this.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookCopyPermission],rangeTypes:[sheets.RangeProtectionPermissionViewPoint],worksheetTypes:[sheets.WorksheetCopyPermission]}),errorMsg=this._localeService.t("permission.dialog.copyErr"),(_a2=this._permissionService.getPermissionPoint(new sheets.WorkbookCopyPermission(this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId()).id))!=null&&_a2.value||(errorMsg=this._localeService.t("permission.dialog.workbookCopyErr"));break;case sheets.DeltaColumnWidthCommand.id:case sheets.SetColWidthCommand.id:permission=this.permissionCheckWithoutRange({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetRowStylePermission,sheets.WorksheetEditPermission]}),errorMsg=this._localeService.t("permission.dialog.setRowColStyleErr");break;case sheets.DeltaRowHeightCommand.id:case sheets.SetRowHeightCommand.id:case sheets.SetWorksheetRowIsAutoHeightCommand.id:permission=this.permissionCheckWithoutRange({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetRowStylePermission,sheets.WorksheetEditPermission]}),errorMsg=this._localeService.t("permission.dialog.setRowColStyleErr");break;case sheets.MoveColsCommand.id:case sheets.MoveRowsCommand.id:permission=this._permissionCheckByMoveCommand(params),errorMsg=this._localeService.t("permission.dialog.moveRowColErr");break;case sheets.MoveRangeCommand.id:permission=this._permissionCheckByMoveRangeCommand(params),errorMsg=this._localeService.t("permission.dialog.moveRangeErr");break;case AutoFillCommand.id:permission=this._permissionCheckByAutoFillCommand((_b2=this._autoFillService.autoFillLocation)==null?void 0:_b2.target),errorMsg=this._localeService.t("permission.dialog.autoFillErr");break;case sheets.SetWorksheetOrderCommand.id:permission=this._permissionCheckByWorksheetCommand([sheets.WorkbookEditablePermission,sheets.WorkbookMoveSheetPermission]),errorMsg=this._localeService.t("permission.dialog.operatorSheetErr"),permission===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case sheets.SetWorksheetNameCommand.id:permission=this._permissionCheckByWorksheetCommand([sheets.WorkbookEditablePermission,sheets.WorkbookRenameSheetPermission]),errorMsg=this._localeService.t("permission.dialog.operatorSheetErr"),permission===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case sheets.SetWorksheetShowCommand.id:permission=this._permissionCheckByWorksheetCommand([sheets.WorkbookEditablePermission,sheets.WorkbookHideSheetPermission]),errorMsg=this._localeService.t("permission.dialog.operatorSheetErr"),permission===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case sheets.SetSpecificColsVisibleCommand.id:permission=this.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetColumnStylePermission]},params.ranges),errorMsg=this._localeService.t("permission.dialog.setRowColStyleErr");break;case sheets.SetSpecificRowsVisibleCommand.id:permission=this.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetRowStylePermission]},params.ranges),errorMsg=this._localeService.t("permission.dialog.setRowColStyleErr");break;case sheets.SetSelectedColsVisibleCommand.id:permission=this.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetColumnStylePermission]}),errorMsg=this._localeService.t("permission.dialog.setRowColStyleErr");break;case sheets.SetSelectedRowsVisibleCommand.id:permission=this.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetRowStylePermission]}),errorMsg=this._localeService.t("permission.dialog.setRowColStyleErr");break;case sheets.InsertRangeMoveRightCommand.id:permission=this._permissionCheckWithInsertRangeMove("right"),errorMsg=this._localeService.t("permission.dialog.insertOrDeleteMoveRangeErr");break;case sheets.InsertRangeMoveDownCommand.id:permission=this._permissionCheckWithInsertRangeMove("bottom"),errorMsg=this._localeService.t("permission.dialog.insertOrDeleteMoveRangeErr");break;case sheets.DeleteRangeMoveLeftCommand.id:permission=this._permissionCheckWithInsertRangeMove("left"),errorMsg=this._localeService.t("permission.dialog.insertOrDeleteMoveRangeErr");break;case sheets.DeleteRangeMoveUpCommand.id:permission=this._permissionCheckWithInsertRangeMove("top"),errorMsg=this._localeService.t("permission.dialog.insertOrDeleteMoveRangeErr");break}permission||this.haveNotPermissionHandle(errorMsg)}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(command=>{this._getPermissionCheck(command.id,command==null?void 0:command.params)})),this.disposeWithMe(this._commandService.onCommandExecuted(command=>{var _a2;if(command.id===sheets.SetWorksheetNameMutation.id){const params=command.params,{unitId=(_a2=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET))==null?void 0:_a2.getUnitId(),subUnitId}=params;if(!unitId||!subUnitId)return;const worksheetRule=this._worksheetProtectionRuleModel.getRule(unitId,subUnitId),selectionRuleList=this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId);worksheetRule&&this._worksheetProtectionRuleModel.ruleRefresh(worksheetRule.permissionId),selectionRuleList.length&&this._rangeProtectionRuleModel.ruleRefresh(subUnitId)}}))}_permissionCheckWithInsertRangeMove(direction){var _a2;const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{worksheet,unitId,subUnitId}=target,selectionRange=(_a2=this._selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.range;return!(!selectionRange||(direction==="top"?selectionRange.startRow=0:direction==="left"?selectionRange.startColumn=0:direction==="right"?selectionRange.endColumn=worksheet.getColumnCount()-1:direction==="bottom"&&(selectionRange.endRow=worksheet.getRowCount()-1),this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).map(rule=>rule.ranges).flat().some(range=>core.Rectangle.getIntersects(selectionRange,range))))}_permissionCheckByWorksheetCommand(types){var _a2,_b2;const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{unitId,subUnitId}=target,worksheetRule=this._worksheetProtectionRuleModel.getRule(unitId,subUnitId),selectionRule=this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).length>0;return worksheetRule||selectionRule?(_b2=(_a2=this._permissionService.getPermissionPoint(new sheets.WorkbookManageCollaboratorPermission(unitId).id))==null?void 0:_a2.value)!=null?_b2:!1:this._permissionService.composePermission(types.map(F=>new F(unitId).id)).every(permission=>permission.value)}permissionCheckWithoutRange(permissionTypes){var _a2,_b2,_c2,_d2;const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{worksheet,unitId,subUnitId}=target,selection=this._selectionManagerService.getCurrentLastSelection();if(!selection)return!0;const row=(_b2=(_a2=selection==null?void 0:selection.primary)==null?void 0:_a2.actualRow)!=null?_b2:0,col=(_d2=(_c2=selection==null?void 0:selection.primary)==null?void 0:_c2.actualColumn)!=null?_d2:0,{workbookTypes=[sheets.WorkbookEditablePermission],worksheetTypes,rangeTypes}=permissionTypes;return!(workbookTypes&&workbookTypes.some(F=>{var _a3,_b3;const instance=new F(unitId);return((_b3=(_a3=this._permissionService.getPermissionPoint(instance.id))==null?void 0:_a3.value)!=null?_b3:!1)===!1})===!0||worksheetTypes&&worksheetTypes.some(F=>{var _a3,_b3;const instance=new F(unitId,subUnitId);return((_b3=(_a3=this._permissionService.getPermissionPoint(instance.id))==null?void 0:_a3.value)!=null?_b3:!1)===!1})===!0||rangeTypes&&rangeTypes.some(F=>{var _a3,_b3,_c3,_d3,_e2;const cellInfo=(_b3=(_a3=worksheet.getCell(row,col))==null?void 0:_a3.selectionProtection)==null?void 0:_b3[0];if(!(cellInfo!=null&&cellInfo.ruleId))return!1;const permissionId=(_c3=this._rangeProtectionRuleModel.getRule(unitId,subUnitId,cellInfo.ruleId))==null?void 0:_c3.permissionId;if(!permissionId)return!1;const instance=new F(unitId,subUnitId,permissionId);return((_e2=(_d3=this._permissionService.getPermissionPoint(instance.id))==null?void 0:_d3.value)!=null?_e2:!1)===!1})===!0)}permissionCheckWithRanges(permissionTypes,selectionRanges,unitId,subUnitId){var _a2;const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{workbook,worksheet}=target;unitId||(unitId=workbook.getUnitId()),subUnitId||(subUnitId=worksheet.getSheetId());const ranges=selectionRanges!=null?selectionRanges:(_a2=this._selectionManagerService.getCurrentSelections())==null?void 0:_a2.map(selection=>selection.range);if(!ranges)return!1;const{workbookTypes=[sheets.WorkbookEditablePermission],worksheetTypes,rangeTypes}=permissionTypes;return workbookTypes&&workbookTypes.some(F=>{var _a3,_b2;const instance=new F(unitId);return((_b2=(_a3=this._permissionService.getPermissionPoint(instance.id))==null?void 0:_a3.value)!=null?_b2:!1)===!1})===!0||worksheetTypes&&worksheetTypes.some(F=>{var _a3,_b2;const instance=new F(unitId,subUnitId);return((_b2=(_a3=this._permissionService.getPermissionPoint(instance.id))==null?void 0:_a3.value)!=null?_b2:!1)===!1})===!0?!1:rangeTypes?ranges==null?void 0:ranges.every(range=>rangeTypes.every(F=>{var _a3,_b2,_c2,_d2,_e2;for(let row=range.startRow;row<=range.endRow;row++)for(let col=range.startColumn;col<=range.endColumn;col++){const cellInfo=(_b2=(_a3=worksheet.getCell(row,col))==null?void 0:_a3.selectionProtection)==null?void 0:_b2[0];if(!(cellInfo!=null&&cellInfo.ruleId))continue;const permissionId=(_c2=this._rangeProtectionRuleModel.getRule(unitId,subUnitId,cellInfo.ruleId))==null?void 0:_c2.permissionId;if(!permissionId)continue;const instance=new F(unitId,subUnitId,permissionId);if(((_e2=(_d2=this._permissionService.getPermissionPoint(instance.id))==null?void 0:_d2.value)!=null?_e2:!1)===!1)return!1}return!0})):!0}_permissionCheckByPaste(params){return params.value===PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE||params.value===PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA?this.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission]}):params.value===PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT?this.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission]}):this.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission]})}_permissionCheckByMoveCommand(params){const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{worksheet,unitId,subUnitId}=target,toRange=params.toRange;toRange.endRow===worksheet.getRowCount()-1?toRange.endColumn=toRange.startColumn:toRange.endRow=toRange.startRow;const permissionLapRanges=this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).reduce((p2,c)=>[...p2,...c.ranges],[]).filter(range=>core.Rectangle.intersects(range,toRange));return permissionLapRanges.length>0?!1:(permissionLapRanges.forEach(range=>{var _a2,_b2;for(let row=range.startRow;row<=range.endRow;row++)for(let col=range.startColumn;col<=range.endColumn;col++){const permission=(_b2=(_a2=worksheet.getCell(row,col))==null?void 0:_a2.selectionProtection)==null?void 0:_b2[0];if((permission==null?void 0:permission[P.Edit])===!1)return!1}}),!0)}_permissionCheckByAutoFillCommand(params){if(!params)return!1;const{rows,cols}=params,startRow=rows[0],endRow=rows[rows.length-1],startCol=cols[0],endCol=cols[cols.length-1],targetRange={startRow,endRow,startColumn:startCol,endColumn:endCol},target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{worksheet,unitId,subUnitId}=target;return!this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).reduce((p2,c)=>[...p2,...c.ranges],[]).filter(range=>core.Rectangle.intersects(range,targetRange)).some(range=>{var _a2,_b2;for(let row=range.startRow;row<=range.endRow;row++)for(let col=range.startColumn;col<=range.endColumn;col++){const permission=(_b2=(_a2=worksheet.getCell(row,col))==null?void 0:_a2.selectionProtection)==null?void 0:_b2[0];if((permission==null?void 0:permission[P.Edit])===!1)return!0}return!1})}_permissionCheckByMoveRangeCommand(params){const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{worksheet,unitId,subUnitId}=target,toRange=params.toRange,permissionLapRanges=this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).reduce((p2,c)=>[...p2,...c.ranges],[]).filter(range=>core.Rectangle.intersects(range,toRange));return permissionLapRanges.length>0?!1:(permissionLapRanges.forEach(range=>{var _a2,_b2;for(let row=range.startRow;row<=range.endRow;row++)for(let col=range.startColumn;col<=range.endColumn;col++){const permission=(_b2=(_a2=worksheet.getCell(row,col))==null?void 0:_a2.selectionProtection)==null?void 0:_b2[0];if((permission==null?void 0:permission[P.Edit])===!1)return!1}}),!0)}_permissionCheckBySetRangeValue(permissionTypes,setRangeValueParams){let ranges=[];setRangeValueParams.range?ranges=[setRangeValueParams.range]:ranges=[new core.ObjectMatrix(setRangeValueParams.value).getDataRange()];const{unitId,subUnitId}=setRangeValueParams;return this.permissionCheckWithRanges(permissionTypes,ranges,unitId,subUnitId)}_permissionCheckWithFormula(params){var _a2,_b2,_c2,_d2,_e2;const value=params.value,range=params.range,formulaString=value.f;if(formulaString){const definedNameStr=formulaString.substring(1),workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),unitId=(_a2=params.unitId)!=null?_a2:workbook.getUnitId(),definedName2=this._definedNamesService.getValueByName(unitId,definedNameStr);if(definedName2){let formulaOrRefString=definedName2.formulaOrRefString;formulaOrRefString.startsWith(engineFormula.operatorToken.EQUALS)&&(formulaOrRefString=formulaOrRefString.slice(1));const refRangesArr=formulaOrRefString.split(",");for(let i=0;i<refRangesArr.length;i++){const refRange=refRangesArr[i],sequenceGrid=engineFormula.deserializeRangeWithSheet(refRange);if(sequenceGrid.sheetName){const targetSheet=workbook.getSheetBySheetName(sequenceGrid.sheetName);if(!targetSheet)return!1;const{startRow,endRow,startColumn,endColumn}=sequenceGrid.range;for(let i2=startRow;i2<=endRow;i2++)for(let j=startColumn;j<=endColumn;j++){const permission=(_c2=(_b2=targetSheet.getCell(i2,j))==null?void 0:_b2.selectionProtection)==null?void 0:_c2[0];if((permission==null?void 0:permission[P.View])===!1)return!1}}}return!0}else{const sequenceNodes=this._lexerTreeBuilder.sequenceNodesBuilder(formulaString);if(!sequenceNodes)return!0;for(let i=0;i<sequenceNodes.length;i++){const node=sequenceNodes[i];if(typeof node=="string")continue;const{token}=node,sequenceGrid=engineFormula.deserializeRangeWithSheet(token),workbook2=sequenceGrid.unitId?this._univerInstanceService.getUnit(sequenceGrid.unitId):this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook2)return!0;let targetSheet=sequenceGrid.sheetName?workbook2.getSheetBySheetName(sequenceGrid.sheetName):workbook2.getActiveSheet();const unitId2=workbook2.getUnitId();if(sequenceGrid.sheetName){if(targetSheet=workbook2.getSheetBySheetName(sequenceGrid.sheetName),!targetSheet)return!0;const subUnitId=targetSheet==null?void 0:targetSheet.getSheetId();if(!this._permissionService.getPermissionPoint(new sheets.WorksheetViewPermission(unitId2,subUnitId).id))return!1}if(!targetSheet)return!0;const{startRow,endRow,startColumn,endColumn}=sequenceGrid.range;for(let i2=startRow;i2<=endRow;i2++)for(let j=startColumn;j<=endColumn;j++){const permission=(_e2=(_d2=targetSheet.getCell(i2,j))==null?void 0:_d2.selectionProtection)==null?void 0:_e2[0];if((permission==null?void 0:permission[P.View])===!1)return!1}}}}if(range){const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const unitId=params.unitId||target.unitId,subunitId=params.subUnitId||target.subUnitId,permissionIds=this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subunitId).filter(rule=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(ruleRange,range))).map(rule=>new sheets.RangeProtectionPermissionEditPoint(unitId,subunitId,rule.permissionId).id);if(!this._permissionService.composePermission(permissionIds).every(permission=>permission.value))return!1}return!0}},__name(_Q,"SheetPermissionInterceptorBaseController"),_Q),exports2.SheetPermissionInterceptorBaseController=__decorateClass$e([core.OnLifecycle(core.LifecycleStages.Steady,exports2.SheetPermissionInterceptorBaseController),__decorateParam$e(0,core.ICommandService),__decorateParam$e(1,core.IUniverInstanceService),__decorateParam$e(2,core.IPermissionService),__decorateParam$e(3,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$e(4,ui.IDialogService),__decorateParam$e(5,core.Inject(sheets.RangeProtectionRuleModel)),__decorateParam$e(6,core.Inject(sheets.WorksheetProtectionRuleModel)),__decorateParam$e(7,IAutoFillService),__decorateParam$e(8,core.Inject(core.LocaleService)),__decorateParam$e(9,core.Inject(engineFormula.LexerTreeBuilder)),__decorateParam$e(10,core.IContextService),__decorateParam$e(11,engineFormula.IDefinedNamesService)],exports2.SheetPermissionInterceptorBaseController);var __defProp$d=Object.defineProperty,__getOwnPropDesc$d=Object.getOwnPropertyDescriptor,__decorateClass$d=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$d(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$d(target,key,result),result},"__decorateClass$d"),__decorateParam$d=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$d");const SHEET_PERMISSION_PASTE_PLUGIN="SHEET_PERMISSION_PASTE_PLUGIN";let SheetPermissionInterceptorClipboardController=(_R=class extends core.Disposable{constructor(_univerInstanceService,_selectionManagerService,_localService,_sheetClipboardService,_sheetPermissionInterceptorBaseController){super();__publicField(this,"disposableCollection",new core.DisposableCollection);this._univerInstanceService=_univerInstanceService,this._selectionManagerService=_selectionManagerService,this._localService=_localService,this._sheetClipboardService=_sheetClipboardService,this._sheetPermissionInterceptorBaseController=_sheetPermissionInterceptorBaseController,this._initClipboardHook()}_initClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook({id:SHEET_PERMISSION_PASTE_PLUGIN,onBeforePaste:__name(pasteTo=>{var _a2,_b2,_c2;const[ranges]=virtualizeDiscreteRanges([pasteTo.range]).ranges,startRange=(_a2=this._selectionManagerService.getCurrentLastSelection())==null?void 0:_a2.range;if(!startRange)return!1;const targetRange={startRow:startRange.startRow+ranges.startRow,endRow:startRange.startRow+ranges.endRow,startColumn:startRange.startColumn+ranges.startColumn,endColumn:startRange.startColumn+ranges.endColumn},worksheet=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!worksheet)return!1;const{startRow,endRow,startColumn,endColumn}=targetRange;let hasPermission=!0;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_c2=(_b2=worksheet.getCell(row,col))==null?void 0:_b2.selectionProtection)==null?void 0:_c2[0];if((permission==null?void 0:permission[P.Edit])===!1){hasPermission=!1;break}}return hasPermission||this._sheetPermissionInterceptorBaseController.haveNotPermissionHandle(this._localService.t("permission.dialog.pasteErr")),hasPermission},"onBeforePaste")}))}},__name(_R,"SheetPermissionInterceptorClipboardController"),_R);SheetPermissionInterceptorClipboardController=__decorateClass$d([core.OnLifecycle(core.LifecycleStages.Steady,SheetPermissionInterceptorClipboardController),__decorateParam$d(0,core.IUniverInstanceService),__decorateParam$d(1,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$d(2,core.Inject(core.LocaleService)),__decorateParam$d(3,core.Inject(ISheetClipboardService)),__decorateParam$d(4,core.Inject(exports2.SheetPermissionInterceptorBaseController))],SheetPermissionInterceptorClipboardController);var __defProp$c=Object.defineProperty,__getOwnPropDesc$c=Object.getOwnPropertyDescriptor,__decorateClass$c=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$c(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$c(target,key,result),result},"__decorateClass$c"),__decorateParam$c=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$c");exports2.SheetPermissionInitController=(_S=class extends core.Disposable{constructor(_univerInstanceService,_dialogService,_permissionService,_authzIoService,_rangeProtectionRuleModel,_worksheetProtectionRuleModel,_userManagerService,_worksheetProtectionPointRuleModel,_sheetInterceptorService,_selectionProtectionRenderModel){super(),this._univerInstanceService=_univerInstanceService,this._dialogService=_dialogService,this._permissionService=_permissionService,this._authzIoService=_authzIoService,this._rangeProtectionRuleModel=_rangeProtectionRuleModel,this._worksheetProtectionRuleModel=_worksheetProtectionRuleModel,this._userManagerService=_userManagerService,this._worksheetProtectionPointRuleModel=_worksheetProtectionPointRuleModel,this._sheetInterceptorService=_sheetInterceptorService,this._selectionProtectionRenderModel=_selectionProtectionRenderModel,this._initRangePermissionFromSnapshot(),this._initRangePermissionChange(),this._initWorksheetPermissionFromSnapshot(),this._initWorksheetPermissionChange(),this._initWorksheetPermissionPointsChange(),this.initWorkbookPermissionChange(),this._initUserChange(),this._initViewModelByRangeInterceptor(),this._initViewModelBySheetInterceptor()}_initRangePermissionFromSnapshot(){const allAllowedParams=[],workbook=this._univerInstanceService.getCurrentUnitForType(I.UNIVER_SHEET),unitId=workbook.getUnitId(),allSheets=workbook.getSheets(),permissionIdWithRuleInstanceMap=new Map;allSheets.forEach(sheet=>{const subunitId=sheet.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subunitId).forEach(rule=>{permissionIdWithRuleInstanceMap.set(rule.permissionId,rule),allAllowedParams.push({objectID:rule.permissionId,unitID:unitId,objectType:l$1.SelectRange,actions:[P.View,P.Edit]})})}),allAllowedParams.length&&this._authzIoService.batchAllowed(allAllowedParams).then(permissionMap=>{permissionMap.forEach(item=>{const rule=permissionIdWithRuleInstanceMap.get(item.objectID);rule&&sheets.getAllRangePermissionPoint().forEach(F=>{const instance=new F(unitId,rule.subUnitId,item.objectID),unitActionName=instance.subType,result=item.actions.find(action=>action.action===unitActionName);(result==null?void 0:result.allowed)!==void 0&&this._permissionService.updatePermissionPoint(instance.id,result.allowed)})})})}_initRangePermissionChange(){this.disposeWithMe(this._rangeProtectionRuleModel.ruleChange$.subscribe(info=>{info.type!=="delete"?this._authzIoService.allowed({objectID:info.rule.permissionId,unitID:info.unitId,objectType:l$1.SelectRange,actions:[P.Edit,P.View]}).then(actionList=>{sheets.getAllRangePermissionPoint().forEach(F=>{if(info.type==="set"){const{rule:rule2,oldRule}=info;if(rule2.permissionId===(oldRule==null?void 0:oldRule.permissionId))return}const rule=info.rule,instance=new F(rule.unitId,rule.subUnitId,rule.permissionId),unitActionName=instance.subType,action=actionList.find(item=>item.action===unitActionName);action&&this._permissionService.updatePermissionPoint(instance.id,action.allowed)})}):this._rangeProtectionRuleModel.getSubunitRuleList(info.unitId,info.subUnitId).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(info.unitId,info.subUnitId),[...sheets.getAllWorksheetPermissionPointByPointPanel()].forEach(F=>{const instance=new F(info.unitId,info.subUnitId);this._permissionService.updatePermissionPoint(instance.id,instance.value)}))}))}initWorkbookPermissionChange(_unitId){const unitId=_unitId||this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId();this._authzIoService.allowed({objectID:unitId,objectType:l$1.Workbook,unitID:unitId,actions:sheets.defaultWorkbookPermissionPoints}).then(actionList=>{sheets.getAllWorkbookPermissionPoint().forEach(F=>{const instance=new F(unitId),unitActionName=instance.subType,action=actionList.find(item=>item.action===unitActionName);action&&this._permissionService.updatePermissionPoint(instance.id,action.allowed)})})}_initWorksheetPermissionChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(info=>{info.type!=="delete"?this._authzIoService.allowed({objectID:info.rule.permissionId,unitID:info.unitId,objectType:l$1.Worksheet,actions:[P.Edit,P.View]}).then(actionList=>{sheets.getAllWorksheetPermissionPoint().forEach(F=>{const instance=new F(info.unitId,info.subUnitId),unitActionName=instance.subType,action=actionList.find(item=>item.action===unitActionName);action&&this._permissionService.updatePermissionPoint(instance.id,action.allowed)})}):([...sheets.getAllWorksheetPermissionPoint(),...sheets.getAllWorksheetPermissionPointByPointPanel()].forEach(F=>{const instance=new F(info.unitId,info.subUnitId);this._permissionService.updatePermissionPoint(instance.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(info.unitId,info.subUnitId))}))}_initWorksheetPermissionPointsChange(){this.disposeWithMe(this._worksheetProtectionPointRuleModel.pointChange$.subscribe(info=>{this._authzIoService.allowed({objectID:info.permissionId,unitID:info.unitId,objectType:l$1.Worksheet,actions:sheets.defaultWorksheetPermissionPoint}).then(actionList=>{sheets.getAllWorksheetPermissionPointByPointPanel().forEach(F=>{const instance=new F(info.unitId,info.subUnitId),unitActionName=instance.subType,action=actionList.find(item=>item.action===unitActionName);action&&this._permissionService.updatePermissionPoint(instance.id,action.allowed)})})}))}_initWorksheetPermissionFromSnapshot(){const allAllowedParams=[],workbook=this._univerInstanceService.getCurrentUnitForType(I.UNIVER_SHEET),unitId=workbook.getUnitId(),allSheets=workbook.getSheets(),permissionIdWithRuleInstanceMap=new Map;allSheets.forEach(sheet=>{const subUnitId=sheet.getSheetId(),rule=this._worksheetProtectionRuleModel.getRule(unitId,subUnitId);rule&&(permissionIdWithRuleInstanceMap.set(rule.permissionId,rule),allAllowedParams.push({objectID:rule.permissionId,unitID:unitId,objectType:l$1.Worksheet,actions:[P.Edit,P.View]}));const pointRule=this._worksheetProtectionPointRuleModel.getRule(unitId,subUnitId);pointRule&&(permissionIdWithRuleInstanceMap.set(pointRule.permissionId,pointRule),allAllowedParams.push({objectID:pointRule.permissionId,unitID:unitId,objectType:l$1.Worksheet,actions:sheets.defaultWorksheetPermissionPoint}))}),allAllowedParams.length&&this._authzIoService.batchAllowed(allAllowedParams).then(permissionMap=>{permissionMap.forEach(item=>{const rule=permissionIdWithRuleInstanceMap.get(item.objectID);rule&&[...sheets.getAllWorksheetPermissionPoint(),...sheets.getAllWorksheetPermissionPointByPointPanel()].forEach(F=>{const instance=new F(unitId,rule.subUnitId),unitActionName=instance.subType,result=item.actions.find(action=>action.action===unitActionName);(result==null?void 0:result.allowed)!==void 0&&this._permissionService.updatePermissionPoint(instance.id,result.allowed)})})})}_initUserChange(){this.disposeWithMe(this._userManagerService.currentUser$.subscribe(()=>{const _map=this._permissionService.getAllPermissionPoint();this._permissionService.clearPermissionMap(),this._worksheetProtectionRuleModel.changeRuleInitState(!1),this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET).forEach(workbook=>{const unitId=workbook.getUnitId();sheets.getAllWorkbookPermissionPoint().forEach(F=>{let instance=new F(unitId);_map.has(instance.id)&&(instance=_map.get(instance.id)),this._permissionService.addPermissionPoint(instance)}),workbook.getSheets().forEach(sheet=>{const subUnitId=sheet.getSheetId();[...sheets.getAllWorksheetPermissionPoint(),...sheets.getAllWorksheetPermissionPointByPointPanel()].forEach(F=>{let instance=new F(unitId,subUnitId);_map.has(instance.id)&&(instance=_map.get(instance.id)),this._permissionService.addPermissionPoint(instance)}),this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).forEach(rule=>{sheets.getAllRangePermissionPoint().forEach(F=>{let instance=new F(unitId,subUnitId,rule.permissionId);_map.has(instance.id)&&(instance=_map.get(instance.id)),this._permissionService.addPermissionPoint(instance)})})}),this.initWorkbookPermissionChange(),this._initWorksheetPermissionFromSnapshot(),this._initRangePermissionFromSnapshot()})}))}_initViewModelByRangeInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(sheets.INTERCEPTOR_POINT.CELL_CONTENT,{priority:999,handler:__name((cell={},context,next)=>{const{unitId,subUnitId,row,col}=context,permissionList=this._selectionProtectionRenderModel.getCellInfo(unitId,subUnitId,row,col).filter(p2=>!!p2.ruleId).map(p2=>{const rule=this._rangeProtectionRuleModel.getRule(unitId,subUnitId,p2.ruleId)||{};return{...p2,ranges:rule.ranges}}).filter(p2=>!!p2.ranges);if(permissionList.length){const isSkipRender=permissionList.some(p2=>!(p2!=null&&p2[P.View])),_cellData={...cell,selectionProtection:permissionList};return isSkipRender?(delete _cellData.s,delete _cellData.v,delete _cellData.p,_cellData):next(_cellData)}return next(cell)},"handler")}))}_initViewModelBySheetInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(sheets.INTERCEPTOR_POINT.CELL_CONTENT,{priority:999,handler:__name((cell={},context,next)=>{var _a2,_b2,_c2,_d2,_e2;const{unitId,subUnitId}=context,worksheetRule=this._worksheetProtectionRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId&&worksheetRule.name){const selectionProtection=[{[P.View]:(_b2=(_a2=this._permissionService.getPermissionPoint(new sheets.WorksheetViewPermission(unitId,subUnitId).id))==null?void 0:_a2.value)!=null?_b2:!1,[P.Edit]:(_d2=(_c2=this._permissionService.getPermissionPoint(new sheets.WorksheetEditPermission(unitId,subUnitId).id))==null?void 0:_c2.value)!=null?_d2:!1}],isSkipRender=!((_e2=selectionProtection[0])!=null&&_e2[P.View]),_cellData={...cell,hasWorksheetRule:!0,selectionProtection};return isSkipRender?(delete _cellData.s,delete _cellData.v,delete _cellData.p,_cellData):next(_cellData)}return next(cell)},"handler")}))}},__name(_S,"SheetPermissionInitController"),_S),exports2.SheetPermissionInitController=__decorateClass$c([core.OnLifecycle(core.LifecycleStages.Rendered,exports2.SheetPermissionInitController),__decorateParam$c(0,core.IUniverInstanceService),__decorateParam$c(1,ui.IDialogService),__decorateParam$c(2,core.IPermissionService),__decorateParam$c(3,core.IAuthzIoService),__decorateParam$c(4,core.Inject(sheets.RangeProtectionRuleModel)),__decorateParam$c(5,core.Inject(sheets.WorksheetProtectionRuleModel)),__decorateParam$c(6,core.Inject(core.UserManagerService)),__decorateParam$c(7,core.Inject(sheets.WorksheetProtectionPointModel)),__decorateParam$c(8,core.Inject(sheets.SheetInterceptorService)),__decorateParam$c(9,core.Inject(sheets.RangeProtectionRenderModel))],exports2.SheetPermissionInitController);const UserEmptyBase64="data:image/png;base64,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",styles$7={spinContainer:"univer-spin-container",spinOverlay:"univer-spin-overlay",spinner:"univer-spinner",spin:"univer-spin",contentBlur:"univer-content-blur"},Spin=__name(({loading,children})=>jsxRuntimeExports.jsxs("div",{className:styles$7.spinContainer,children:[loading&&jsxRuntimeExports.jsx("div",{className:styles$7.spinOverlay,children:jsxRuntimeExports.jsx("div",{className:styles$7.spinner})}),jsxRuntimeExports.jsx("div",{className:loading?styles$7.contentBlur:"",children})]}),"Spin"),styles$6={permissionPanelDetailWrapper:"univer-permission-panel-detail-wrapper",radioGroupVertical:"univer-radio-group-vertical",sheetPermissionDesignPersonPanel:"univer-sheet-permission-design-person-panel",sheetPermissionDesignPersonPanelHeader:"univer-sheet-permission-design-person-panel-header",sheetPermissionDesignPersonPanelHeaderAdd:"univer-sheet-permission-design-person-panel-header-add",sheetPermissionDesignPersonPanelSplit:"univer-sheet-permission-design-person-panel-split",sheetPermissionDesignPersonPanelContentItem:"univer-sheet-permission-design-person-panel-content-item",sheetPermissionDesignPersonPanelContentItemName:"univer-sheet-permission-design-person-panel-content-item-name",sheetPermissionDesignPersonPanelContentItemSelect:"univer-sheet-permission-design-person-panel-content-item-select",sheetPermissionDesignPersonPanelContent:"univer-sheet-permission-design-person-panel-content",sheetPermissionUserListEmpty:"univer-sheet-permission-user-list-empty",sheetPermissionUserListEmptyText:"univer-sheet-permission-user-list-empty-text",sheetPermissionPanelTitle:"univer-sheet-permission-panel-title",permissionRangeSelector:"univer-permission-range-selector",permissionRangeSelectorError:"univer-permission-range-selector-error",sheetPermissionPanelNameInputError:"univer-sheet-permission-panel-name-input-error",permissionRangeSelectorErrorText:"univer-permission-range-selector-error-text",sheetPermissionPanelNameInputErrorText:"univer-sheet-permission-panel-name-input-error-text"},SheetPermissionPanelDetail=__name(({fromSheetBar})=>{var _a2,_b2,_c2;const localeService=core.useDependency(core.LocaleService),dialogService=core.useDependency(ui.IDialogService),univerInstanceService=core.useDependency(core.IUniverInstanceService),selectionManagerService=core.useDependency(sheets.SheetsSelectionsService),sheetPermissionPanelModel=core.useDependency(SheetPermissionPanelModel),activeRule=ui.useObservable(sheetPermissionPanelModel.rule$,sheetPermissionPanelModel.rule),userManagerService=core.useDependency(core.UserManagerService),sheetPermissionUserManagerService=core.useDependency(SheetPermissionUserManagerService),authzIoService=core.useDependency(core.IAuthzIoService),sidebarService=core.useDependency(ui.ISidebarService),rangeProtectionRuleModel=core.useDependency(sheets.RangeProtectionRuleModel),worksheetRuleModel=core.useDependency(sheets.WorksheetProtectionRuleModel),rangeErrorMsg=ui.useObservable(sheetPermissionPanelModel.rangeErrorMsg$),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),selectUserList=ui.useObservable(sheetPermissionUserManagerService.selectUserList$,sheetPermissionUserManagerService.selectUserList),[editorGroupValue,setEditorGroupValue]=React.useState(selectUserList.length?"designedUserCanEdit":"onlyMe"),[viewGroupValue,setViewGroupValue]=React.useState(viewState.othersCanView),[loading,setLoading]=React.useState(!1),handleAddPerson=__name(async()=>{const userList=await authzIoService.listCollaborators({objectID:unitId,unitID:unitId});userList.forEach(user=>{user!=null&&user.subject&&userManagerService.addUser(user.subject)}),sheetPermissionUserManagerService.setUserList(userList),dialogService.open({id:UNIVER_SHEET_PERMISSION_USER_DIALOG_ID,title:{title:""},children:{label:UNIVER_SHEET_PERMISSION_USER_DIALOG},width:280,destroyOnClose:!0,onClose:__name(()=>dialogService.close(UNIVER_SHEET_PERMISSION_USER_DIALOG_ID),"onClose"),className:"sheet-permission-user-dialog"})},"handleAddPerson"),checkRangeValid=__name(permissionRanges=>{let rangeErrorString="";if(permissionRanges.length===0)rangeErrorString=localeService.t("permission.panel.emptyRangeError");else if(permissionRanges.length>1){let hasLap=!1;for(let i=0;i<permissionRanges.length;i++){for(let j=i+1;j<permissionRanges.length;j++)if(core.Rectangle.intersects(permissionRanges[i],permissionRanges[j])){hasLap=!0;break}if(hasLap)break}hasLap&&(rangeErrorString=localeService.t("permission.panel.rangeOverlapError"))}if(!rangeErrorString){if(worksheetRuleModel.getRule(unitId,subUnitId)&&!(activeRule!=null&&activeRule.permissionId))return rangeErrorString=localeService.t("permission.panel.rangeOverlapOverPermissionError"),rangeErrorString;const lapRule=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.permissionId!==(activeRule==null?void 0:activeRule.permissionId)).find(rule=>rule.ranges.some(ruleRange=>permissionRanges.some(r=>core.Rectangle.intersects(ruleRange,r))));(lapRule==null?void 0:lapRule.ranges.find(range=>permissionRanges.some(r=>core.Rectangle.intersects(range,r))))&&(rangeErrorString=localeService.t("permission.panel.rangeOverlapOverPermissionError"))}return rangeErrorString},"checkRangeValid");return React.useEffect(()=>{var _a3,_b3;if(activeRule==null?void 0:activeRule.permissionId){activeRule.unitType===l$1.Worksheet&&sheetPermissionPanelModel.setRule({ranges:[{startRow:0,startColumn:0,endRow:worksheet.getRowCount()-1,endColumn:worksheet.getColumnCount()-1,rangeType:core.RANGE_TYPE.ALL}]});return}fromSheetBar&&(selectionManagerService.clearCurrentSelections(),selectionManagerService.addSelections([{primary:null,style:null,range:{startRow:0,startColumn:0,endRow:worksheet.getRowCount()-1,endColumn:worksheet.getColumnCount()-1,rangeType:core.RANGE_TYPE.ALL}}]));const ranges=(_b3=(_a3=selectionManagerService.getCurrentSelections())==null?void 0:_a3.map(s=>s.range))!=null?_b3:[],rangeErrorString=checkRangeValid(ranges);sheetPermissionPanelModel.setRangeErrorMsg(rangeErrorString);const rangeStr=ranges!=null&&ranges.length?ranges.map(range=>{const v=engineFormula.serializeRange(range);return v==="NaN"?"":v}).filter(r=>!!r).join(","):"",sheetName=worksheet.getName();sheetPermissionPanelModel.setRule({ranges,name:fromSheetBar?`${sheetName}`:`${sheetName}(${rangeStr})`,unitId,subUnitId,unitType:fromSheetBar?l$1.Worksheet:l$1.SelectRange})},[activeRule==null?void 0:activeRule.permissionId,fromSheetBar,selectionManagerService,sheetPermissionPanelModel,subUnitId,unitId,worksheet]),React.useEffect(()=>{const getSelectUserList=__name(async()=>{const permissionId=activeRule==null?void 0:activeRule.permissionId;setLoading(!0);const collaborators=await authzIoService.listCollaborators({objectID:permissionId,unitID:unitId}),selectUserList2=collaborators.filter(user=>user.role===M.Editor);sheetPermissionUserManagerService.setSelectUserList(selectUserList2),setLoading(!1),(selectUserList2==null?void 0:selectUserList2.length)>0&&setEditorGroupValue("designedUserCanEdit");const readerList=collaborators.filter(user=>user.role===M.Reader);readerList.length===0&&setViewGroupValue(viewState.noOneElseCanView),sheetPermissionUserManagerService.setOldCollaboratorList(selectUserList2.concat(readerList))},"getSelectUserList");activeRule!=null&&activeRule.permissionId?getSelectUserList():(sheetPermissionUserManagerService.setSelectUserList([]),setEditorGroupValue("onlyMe"))},[activeRule==null?void 0:activeRule.permissionId]),React.useEffect(()=>{__name(async()=>{const userList=await authzIoService.listCollaborators({objectID:unitId,unitID:unitId});userList.forEach(user=>{user!=null&&user.subject&&userManagerService.addUser(user.subject)}),sheetPermissionUserManagerService.setUserList(userList.filter(user=>user.role===M.Editor)),sheetPermissionUserManagerService.setAllUserList(userList.filter(user=>user.role===M.Editor||user.role===M.Reader))},"getListCollaborators")()},[]),React.useEffect(()=>{sheetPermissionPanelModel.setRule({viewStatus:viewGroupValue})},[sheetPermissionPanelModel,viewGroupValue]),React.useEffect(()=>{const workbook2=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook2)return;const activeSheetSubscribe=workbook2.activeSheet$.subscribe(sheet=>{(sheet==null?void 0:sheet.getSheetId())!==subUnitId&&sidebarService.close()});return()=>{activeSheetSubscribe.unsubscribe()}},[sidebarService,subUnitId,univerInstanceService]),(_a2=activeRule==null?void 0:activeRule.ranges)==null||_a2.map(i=>engineFormula.serializeRange(i)).join(","),jsxRuntimeExports.jsxs("div",{className:styles$6.permissionPanelDetailWrapper,children:[jsxRuntimeExports.jsxs(design.FormLayout,{className:styles$6.sheetPermissionPanelTitle,label:localeService.t("permission.panel.protectedRange"),children:[jsxRuntimeExports.jsx(ui.RangeSelector,{className:clsx(styles$6.permissionRangeSelector),textEditorClassName:clsx({[styles$6.permissionRangeSelectorError]:rangeErrorMsg}),value:(_b2=activeRule==null?void 0:activeRule.ranges)==null?void 0:_b2.map(i=>engineFormula.serializeRange(i)).join(","),id:core.createInternalEditorID("sheet-permission-panel"),openForSheetUnitId:unitId,openForSheetSubUnitId:subUnitId,onChange:__name(newRange=>{if(newRange.some(i=>!core.isValidRange(i.range)||i.range.endColumn<i.range.startColumn||i.range.endRow<i.range.startRow))return;const workbook2=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet2=workbook2.getActiveSheet(),unitId2=workbook2.getUnitId(),subUnitId2=worksheet2.getSheetId(),transformedRange=newRange.map(i=>{const range={...i.range},rowCount=worksheet2.getRowCount(),colCount=worksheet2.getColumnCount();return sheets.setEndForRange(range,rowCount,colCount),range}),rangeErrorString=checkRangeValid(transformedRange);if(sheetPermissionPanelModel.setRangeErrorMsg(rangeErrorString),rangeErrorString)return;const sheetName=worksheet2.getName(),rangeStr=transformedRange.map(range=>{const v=engineFormula.serializeRange(range);return v==="NaN"?"":v}).filter(r=>!!r).join(","),rule={ranges:transformedRange,unitId:unitId2,subUnitId:subUnitId2,unitType:l$1.SelectRange,name:`${sheetName}(${rangeStr})`};if(rule.ranges.length===1){const{startRow,endRow,startColumn,endColumn}=rule.ranges[0];startRow===0&&endRow===worksheet2.getRowCount()-1&&startColumn===0&&worksheet2.getColumnCount()-1===endColumn&&(rule.unitType=l$1.Worksheet,rule.name=`${sheetName}`)}sheetPermissionPanelModel.setRule(rule)},"onChange")}),rangeErrorMsg&&jsxRuntimeExports.jsx("span",{className:styles$6.sheetPermissionPanelNameInputErrorText,children:rangeErrorMsg})]}),jsxRuntimeExports.jsx(design.FormLayout,{className:styles$6.sheetPermissionPanelTitle,label:localeService.t("permission.panel.permissionDirection"),children:jsxRuntimeExports.jsx(design.Input,{value:(_c2=activeRule==null?void 0:activeRule.description)!=null?_c2:"",onChange:__name(v=>sheetPermissionPanelModel.setRule({description:v}),"onChange"),placeholder:localeService.t("permission.panel.permissionDirectionPlaceholder")})}),jsxRuntimeExports.jsx(design.FormLayout,{className:styles$6.sheetPermissionPanelTitle,label:localeService.t("permission.panel.editPermission"),children:jsxRuntimeExports.jsxs(design.RadioGroup,{value:editorGroupValue,onChange:__name(v=>{setEditorGroupValue(v),v==="onlyMe"&&sheetPermissionUserManagerService.setSelectUserList([])},"onChange"),className:styles$6.radioGroupVertical,children:[jsxRuntimeExports.jsx(design.Radio,{value:"onlyMe",children:jsxRuntimeExports.jsx("span",{className:styles$6.text,children:localeService.t("permission.panel.onlyICanEdit")})}),jsxRuntimeExports.jsx(design.Radio,{value:"designedUserCanEdit",children:jsxRuntimeExports.jsx("span",{className:styles$6.text,children:localeService.t("permission.panel.designedUserCanEdit")})})]})}),editorGroupValue==="designedUserCanEdit"&&jsxRuntimeExports.jsx("div",{className:styles$6.sheetPermissionDesignPersonPanel,children:jsxRuntimeExports.jsxs(Spin,{loading,children:[jsxRuntimeExports.jsxs("div",{className:styles$6.sheetPermissionDesignPersonPanelHeader,children:[jsxRuntimeExports.jsx("span",{children:localeService.t("permission.panel.designedPerson")}),jsxRuntimeExports.jsx("span",{className:styles$6.sheetPermissionDesignPersonPanelHeaderAdd,onClick:handleAddPerson,children:localeService.t("permission.panel.addPerson")})]}),jsxRuntimeExports.jsx("div",{className:styles$6.sheetPermissionDesignPersonPanelSplit}),jsxRuntimeExports.jsx("div",{className:styles$6.sheetPermissionDesignPersonPanelContent,children:(selectUserList==null?void 0:selectUserList.length)>0?selectUserList.map(item=>{var _a3,_b3,_c3;return jsxRuntimeExports.jsxs("div",{className:styles$6.sheetPermissionDesignPersonPanelContentItem,children:[jsxRuntimeExports.jsx(design.Avatar,{size:24,src:(_a3=item.subject)==null?void 0:_a3.avatar}),jsxRuntimeExports.jsx("span",{className:styles$6.sheetPermissionDesignPersonPanelContentItemName,children:(_b3=item.subject)==null?void 0:_b3.name}),jsxRuntimeExports.jsx(design.Select,{className:styles$6.sheetPermissionDesignPersonPanelContentItemSelect,value:"edit",onChange:__name(v=>{v==="delete"&&sheetPermissionUserManagerService.setSelectUserList(selectUserList.filter(i=>{var _a4,_b4;return((_a4=i.subject)==null?void 0:_a4.userID)!==((_b4=item.subject)==null?void 0:_b4.userID)}))},"onChange"),options:[{label:`${localeService.t("permission.panel.canEdit")}`,value:"edit"},{label:`${localeService.t("permission.panel.delete")}`,value:"delete"}]})]},(_c3=item.subject)==null?void 0:_c3.userID)}):jsxRuntimeExports.jsxs("div",{className:styles$6.sheetPermissionUserListEmpty,children:[jsxRuntimeExports.jsx("img",{width:240,height:120,src:UserEmptyBase64,alt:""}),jsxRuntimeExports.jsx("p",{className:styles$6.sheetPermissionUserListEmptyText,children:localeService.t("permission.dialog.userEmpty")})]})})]})}),jsxRuntimeExports.jsx(design.FormLayout,{className:styles$6.sheetPermissionPanelTitle,label:localeService.t("permission.panel.viewPermission"),children:jsxRuntimeExports.jsxs(design.RadioGroup,{value:viewGroupValue,onChange:__name(v=>setViewGroupValue(v),"onChange"),className:styles$6.radioGroupVertical,children:[jsxRuntimeExports.jsx(design.Radio,{value:viewState.othersCanView,children:jsxRuntimeExports.jsx("span",{className:styles$6.text,children:localeService.t("permission.panel.othersCanView")})}),jsxRuntimeExports.jsx(design.Radio,{value:viewState.noOneElseCanView,children:jsxRuntimeExports.jsx("span",{className:styles$6.text,children:localeService.t("permission.panel.noOneElseCanView")})})]})})]})},"SheetPermissionPanelDetail"),useHighlightRange=__name((ranges=[])=>{const markSelectionService=core.useDependency(IMarkSelectionService);React.useEffect(()=>{const ids=ranges.map(range=>markSelectionService.addShape({range,style:{hasAutoFill:!1,fill:"rgba(73, 184, 17, 0.05)",strokeWidth:1,stroke:"#49B811",widgets:{}},primary:{startColumn:range.startColumn,endColumn:range.endColumn,startRow:range.startRow,endRow:range.endRow,actualRow:range.startRow,actualColumn:range.startColumn,isMerged:!1,isMergedMainCell:!1}}));return()=>{ids.forEach(id=>{id&&markSelectionService.removeShape(id)})}},[ranges])},"useHighlightRange"),panelListEmptyBase64="data:image/png;base64,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",styles$5={sheetPermissionListPanelWrapper:"univer-sheet-permission-list-panel-wrapper",sheetPermissionListPanelHeader:"univer-sheet-permission-list-panel-header",sheetPermissionListPanelHeaderType:"univer-sheet-permission-list-panel-header-type",sheetPermissionListPanelHeaderTypeBottom:"univer-sheet-permission-list-panel-header-type-bottom",sheetPermissionListPanelHeaderSelect:"univer-sheet-permission-list-panel-header-select",sheetPermissionListItemHeaderIcon:"univer-sheet-permission-list-item-header-icon",sheetPermissionListItem:"univer-sheet-permission-list-item",sheetPermissionListItemHeader:"univer-sheet-permission-list-item-header",sheetPermissionListItemHeaderName:"univer-sheet-permission-list-item-header-name",sheetPermissionListItemHeaderOperator:"univer-sheet-permission-list-item-header-operator",sheetPermissionListItemSplit:"univer-sheet-permission-list-item-split",sheetPermissionListItemContentEdit:"univer-sheet-permission-list-item-content-edit",sheetPermissionListItemContentView:"univer-sheet-permission-list-item-content-view",sheetPermissionListItemContentDesc:"univer-sheet-permission-list-item-content-desc",sheetPermissionListEmpty:"univer-sheet-permission-list-empty",sheetPermissionListEmptyText:"univer-sheet-permission-list-empty-text",sheetPermissionListItemContentTitle:"univer-sheet-permission-list-item-content-title",sheetPermissionListItemContentSub:"univer-sheet-permission-list-item-content-sub"},SheetPermissionPanelList=__name(()=>{const[isCurrentSheet,setIsCurrentSheet]=React.useState(!0),[forceUpdateFlag,setForceUpdateFlag]=React.useState(!1),sheetPermissionPanelModel=core.useDependency(SheetPermissionPanelModel),localeService=core.useDependency(core.LocaleService),rangeProtectionRuleModel=core.useDependency(sheets.RangeProtectionRuleModel),worksheetProtectionModel=core.useDependency(sheets.WorksheetProtectionRuleModel),workbook=core.useDependency(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),unitId=workbook.getUnitId(),commandService=core.useDependency(core.ICommandService),sidebarService=core.useDependency(ui.ISidebarService),authzIoService=core.useDependency(core.IAuthzIoService),permissionService=core.useDependency(core.IPermissionService),currentUser=core.useDependency(core.UserManagerService).getCurrentUser(),[currentRuleRanges,currentRuleRangesSet]=React.useState([]);ui.useObservable(worksheetProtectionModel.ruleRefresh$),ui.useObservable(rangeProtectionRuleModel.ruleRefresh$);const getRuleList=React.useCallback(async isCurrentSheet2=>{var _a2;const worksheet=workbook.getActiveSheet(),unitId2=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),allRangePermissionId=[],allSheetPermissionId=[];workbook.getSheets().forEach(sheet=>{const sheetId=sheet.getSheetId();rangeProtectionRuleModel.getSubunitRuleList(unitId2,sheetId).forEach(rule=>{rule.permissionId&&rule.name&&allRangePermissionId.push(rule.permissionId)});const worksheetPermissionRule=worksheetProtectionModel.getRule(unitId2,sheetId);worksheetPermissionRule!=null&&worksheetPermissionRule.permissionId&&worksheetPermissionRule.name&&allSheetPermissionId.push(worksheetPermissionRule.permissionId)});const allPermissionId=[...allRangePermissionId,...allSheetPermissionId],allPermissionRule=await authzIoService.list({objectIDs:allPermissionId,unitID:unitId2,actions:[P.View,P.Edit]}),subUnitPermissionIds=rangeProtectionRuleModel.getSubunitRuleList(unitId2,subUnitId).map(item=>item.permissionId),sheetPermissionId=(_a2=worksheetProtectionModel.getRule(unitId2,subUnitId))==null?void 0:_a2.permissionId;sheetPermissionId&&subUnitPermissionIds.push(sheetPermissionId);const subUnitRuleList=allPermissionRule.filter(item=>{var _a3;return subUnitPermissionIds.includes(item.objectID)||item.objectID===((_a3=worksheetProtectionModel.getRule(unitId2,subUnitId))==null?void 0:_a3.permissionId)});return isCurrentSheet2?subUnitRuleList:allPermissionRule},[]),[ruleList,setRuleList]=React.useState([]);React.useEffect(()=>{const subscription=rxjs.merge(rangeProtectionRuleModel.ruleChange$,worksheetProtectionModel.ruleChange$).subscribe(async()=>{const ruleList2=await getRuleList(isCurrentSheet);setRuleList(ruleList2)});return()=>{subscription.unsubscribe()}},[isCurrentSheet]),React.useEffect(()=>{const subscribe=workbook.activeSheet$.subscribe(async()=>{const ruleList2=await getRuleList(!0);setRuleList(ruleList2)});return()=>{subscribe.unsubscribe()}},[]);const handleDelete=__name(rule=>{const{unitId:unitId2,subUnitId,unitType}=rule;let res;unitType===l$1.Worksheet?res=commandService.executeCommand(DeleteWorksheetProtectionCommand.id,{unitId:unitId2,subUnitId,rule}):unitType===l$1.SelectRange&&(res=commandService.executeCommand(sheets.DeleteRangeProtectionCommand.id,{unitId:unitId2,subUnitId,rule})),res&&(setForceUpdateFlag(!forceUpdateFlag),rule.ranges===currentRuleRanges&&currentRuleRangesSet([]))},"handleDelete");useHighlightRange(currentRuleRanges);const allRuleMap=new Map;workbook.getSheets().forEach(sheet=>{const sheetId=sheet.getSheetId();rangeProtectionRuleModel.getSubunitRuleList(unitId,sheetId).forEach(rule=>{allRuleMap.set(rule.permissionId,rule)});const sheetRule=worksheetProtectionModel.getRule(unitId,sheetId);sheetRule&&allRuleMap.set(sheetRule==null?void 0:sheetRule.permissionId,sheetRule)});const handleEdit=__name(rule=>{sheetPermissionPanelModel.setRule(rule),sheetPermissionPanelModel.setOldRule(rule),commandService.executeCommand(sheets.SetWorksheetActiveOperation.id,{unitId:rule.unitId,subUnitId:rule.subUnitId});const sidebarProps={header:{title:"permission.panel.title"},children:{label:UNIVER_SHEET_PERMISSION_PANEL,showDetail:!0},width:330,footer:{label:UNIVER_SHEET_PERMISSION_PANEL_FOOTER,showDetail:!0}};sidebarService.open(sidebarProps)},"handleEdit"),handleChangeHeaderType=__name(async isCurrentSheet2=>{setIsCurrentSheet(isCurrentSheet2);const ruleList2=await getRuleList(isCurrentSheet2);setRuleList(ruleList2)},"handleChangeHeaderType");return jsxRuntimeExports.jsxs("div",{className:styles$5.sheetPermissionListPanelWrapper,children:[jsxRuntimeExports.jsxs("div",{className:styles$5.sheetPermissionListPanelHeader,children:[jsxRuntimeExports.jsxs("div",{className:styles$5.sheetPermissionListPanelHeaderType,onClick:__name(()=>handleChangeHeaderType(!0),"onClick"),children:[jsxRuntimeExports.jsx("div",{className:clsx({[styles$5.sheetPermissionListPanelHeaderSelect]:isCurrentSheet}),children:localeService.t("permission.panel.currentSheet")}),isCurrentSheet&&jsxRuntimeExports.jsx("div",{className:styles$5.sheetPermissionListPanelHeaderTypeBottom})]}),jsxRuntimeExports.jsxs("div",{className:styles$5.sheetPermissionListPanelHeaderType,onClick:__name(()=>handleChangeHeaderType(!1),"onClick"),children:[jsxRuntimeExports.jsx("div",{className:clsx({[styles$5.sheetPermissionListPanelHeaderSelect]:!isCurrentSheet}),children:localeService.t("permission.panel.allSheet")}),!isCurrentSheet&&jsxRuntimeExports.jsx("div",{className:styles$5.sheetPermissionListPanelHeaderTypeBottom})]})]}),(ruleList==null?void 0:ruleList.length)>0?jsxRuntimeExports.jsx("div",{className:styles$5.sheetPermissionListPanelContent,children:ruleList==null?void 0:ruleList.map(item=>{var _a2,_b2,_c2,_d2,_e2;const rule=allRuleMap.get(item.objectID);if(!rule)return null;const editAction=item.actions.find(action=>action.action===P.Edit),editPermission=editAction==null?void 0:editAction.allowed,viewAction=item.actions.find(action=>action.action===P.View),viewPermission=viewAction==null?void 0:viewAction.allowed,hasManagerPermission=((_b2=(_a2=permissionService.getPermissionPoint(new sheets.WorkbookManageCollaboratorPermission(unitId).id))==null?void 0:_a2.value)!=null?_b2:!1)||currentUser.userID===((_c2=item.creator)==null?void 0:_c2.userID);let ruleName="";const targetSheet=workbook.getSheetBySheetId(rule.subUnitId),targetName=targetSheet==null?void 0:targetSheet.getName();if(rule.unitType===l$1.SelectRange){const ranges=rule.ranges,rangeStr=ranges!=null&&ranges.length?ranges.map(range=>{const v=engineFormula.serializeRange(range);return v==="NaN"?"":v}).filter(r=>!!r).join(","):"";ruleName=`${targetName}(${rangeStr})`}else rule.unitType===l$1.Worksheet&&(ruleName=targetName||"");return jsxRuntimeExports.jsxs("div",{className:styles$5.sheetPermissionListItem,onMouseMove:__name(()=>{const{subUnitId,unitType}=rule,activeSheet=workbook.getActiveSheet();if(!activeSheet)return!1;const activeSubUnitId=activeSheet.getSheetId();if(subUnitId!==activeSubUnitId)return!1;if(unitType===l$1.SelectRange){const ranges=rule.ranges||[];ranges!==currentRuleRanges&&currentRuleRangesSet(ranges)}else if(unitType===l$1.Worksheet){const ranges=[{startRow:0,endRow:activeSheet.getRowCount()-1,startColumn:0,endColumn:activeSheet.getColumnCount()-1}];ranges!==currentRuleRanges&&currentRuleRangesSet(ranges)}},"onMouseMove"),onMouseLeave:__name(()=>currentRuleRangesSet([]),"onMouseLeave"),children:[jsxRuntimeExports.jsxs("div",{className:styles$5.sheetPermissionListItemHeader,children:[jsxRuntimeExports.jsx(design.Tooltip,{title:ruleName,children:jsxRuntimeExports.jsx("div",{className:styles$5.sheetPermissionListItemHeaderName,children:ruleName})}),hasManagerPermission&&jsxRuntimeExports.jsxs("div",{className:styles$5.sheetPermissionListItemHeaderOperator,children:[jsxRuntimeExports.jsx(design.Tooltip,{title:localeService.t("permission.panel.edit"),children:jsxRuntimeExports.jsx("div",{className:styles$5.sheetPermissionListItemHeaderIcon,onClick:__name(()=>handleEdit(rule),"onClick"),children:jsxRuntimeExports.jsx(WriteSingle,{})})}),jsxRuntimeExports.jsx(design.Tooltip,{title:localeService.t("permission.panel.delete"),children:jsxRuntimeExports.jsx("div",{className:styles$5.sheetPermissionListItemHeaderIcon,onClick:__name(()=>handleDelete(rule),"onClick"),children:jsxRuntimeExports.jsx(DeleteSingle,{})})})]})]}),jsxRuntimeExports.jsx("div",{className:styles$5.sheetPermissionListItemSplit}),jsxRuntimeExports.jsxs("div",{className:styles$5.sheetPermissionListItemContent,children:[jsxRuntimeExports.jsxs("div",{className:styles$5.sheetPermissionListItemContentEdit,children:[jsxRuntimeExports.jsx(design.Tooltip,{title:(_d2=item.creator)==null?void 0:_d2.userID,children:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(design.Avatar,{src:(_e2=item.creator)==null?void 0:_e2.avatar,style:{marginRight:6},size:24})})}),jsxRuntimeExports.jsx("span",{className:styles$5.sheetPermissionListItemContentTitle,children:localeService.t("permission.panel.created")}),jsxRuntimeExports.jsx("span",{className:styles$5.sheetPermissionListItemContentSub,children:editPermission?`${localeService.t("permission.panel.iCanEdit")}`:`${localeService.t("permission.panel.iCanNotEdit")}`})]}),jsxRuntimeExports.jsxs("div",{className:styles$5.sheetPermissionListItemContentView,children:[jsxRuntimeExports.jsx("span",{className:styles$5.sheetPermissionListItemContentTitle,children:localeService.t("permission.panel.viewPermission")}),jsxRuntimeExports.jsx("span",{className:styles$5.sheetPermissionListItemContentSub,children:viewPermission?`${localeService.t("permission.panel.iCanView")}`:`${localeService.t("permission.panel.iCanNotView")}`})]}),rule.description&&jsxRuntimeExports.jsx(design.Tooltip,{title:rule.description,children:jsxRuntimeExports.jsx("div",{className:styles$5.sheetPermissionListItemContentDesc,children:rule.description})})]})]},item.objectID)})}):jsxRuntimeExports.jsxs("div",{className:styles$5.sheetPermissionListEmpty,children:[jsxRuntimeExports.jsx("img",{width:240,height:120,src:panelListEmptyBase64,alt:""}),jsxRuntimeExports.jsx("p",{className:styles$5.sheetPermissionListEmptyText,children:localeService.t("permission.dialog.listEmpty")})]})]})},"SheetPermissionPanelList"),SheetPermissionPanel=__name(({showDetail,fromSheetBar})=>showDetail?jsxRuntimeExports.jsx(SheetPermissionPanelDetail,{fromSheetBar}):jsxRuntimeExports.jsx(SheetPermissionPanelList,{}),"SheetPermissionPanel"),styles$4={sheetPermissionPanelFooter:"univer-sheet-permission-panel-footer",sheetPermissionPanelFooterCancel:"univer-sheet-permission-panel-footer-cancel",sheetPermissionPanelAddButton:"univer-sheet-permission-panel-add-button"},SheetPermissionPanelAddFooter=__name(()=>{var _a2,_b2,_c2,_d2;const sidebarService=core.useDependency(ui.ISidebarService),localeService=core.useDependency(core.LocaleService),univerInstanceService=core.useDependency(core.IUniverInstanceService),permissionService=core.useDependency(core.IPermissionService),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),unitId=workbook.getUnitId(),activeSheet$=ui.useObservable(workbook.activeSheet$),workbookEditPermission=(_b2=(_a2=permissionService.getPermissionPoint(new sheets.WorkbookEditablePermission(unitId).id))==null?void 0:_a2.value)!=null?_b2:!1,workbookManagePermission=(_d2=(_c2=permissionService.getPermissionPoint(new sheets.WorkbookManageCollaboratorPermission(unitId).id))==null?void 0:_c2.value)!=null?_d2:!1,hasSetProtectPermission=workbookEditPermission&&workbookManagePermission,sheetPermissionPanelModel=core.useDependency(SheetPermissionPanelModel),worksheetProtectionRuleModel=core.useDependency(sheets.WorksheetProtectionRuleModel),subUnitId=activeSheet$==null?void 0:activeSheet$.getSheetId();if(!subUnitId)return null;const worksheetRule=worksheetProtectionRuleModel.getRule(unitId,subUnitId);return!hasSetProtectPermission||worksheetRule?null:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsxs(design.Button,{className:styles$4.sheetPermissionPanelAddButton,type:"primary",onClick:__name(()=>{sheetPermissionPanelModel.resetRule();const sidebarProps={header:{title:`${localeService.t("permission.panel.title")}`},children:{label:UNIVER_SHEET_PERMISSION_PANEL,showDetail:!0},width:330,footer:{label:UNIVER_SHEET_PERMISSION_PANEL_FOOTER,showDetail:!0}};sidebarService.open(sidebarProps)},"onClick"),children:[jsxRuntimeExports.jsx("div",{children:"+ "}),localeService.t("permission.button.addNewPermission")]})})},"SheetPermissionPanelAddFooter"),SheetPermissionPanelDetailFooter=__name(()=>{const sheetPermissionPanelModel=core.useDependency(SheetPermissionPanelModel),activeRule=ui.useObservable(sheetPermissionPanelModel.rule$,sheetPermissionPanelModel.rule),sidebarService=core.useDependency(ui.ISidebarService),authzIoService=core.useDependency(core.IAuthzIoService),localeService=core.useDependency(core.LocaleService),commandService=core.useDependency(core.ICommandService),sheetPermissionUserManagerService=core.useDependency(SheetPermissionUserManagerService),rangeErrMsg=ui.useObservable(sheetPermissionPanelModel.rangeErrorMsg$);return jsxRuntimeExports.jsxs("div",{className:styles$4.sheetPermissionPanelFooter,children:[jsxRuntimeExports.jsx(design.Button,{type:"primary",onClick:__name(async()=>{if(!activeRule.name||rangeErrMsg)return;const collaborators=sheetPermissionUserManagerService.selectUserList;activeRule.viewStatus===viewState.othersCanView&&sheetPermissionUserManagerService.allUserList.forEach(user=>{if(!collaborators.some(collaborator=>collaborator.id===user.id)){const userCanRead={...user,role:M.Reader};collaborators.push(userCanRead)}});const isSameCollaborators=getUserListEqual(collaborators,sheetPermissionUserManagerService.oldCollaboratorList);if(activeRule.permissionId){const oldRule=sheetPermissionPanelModel.oldRule;if(activeRule.unitType===(oldRule==null?void 0:oldRule.unitType)&&activeRule.name===oldRule.name&&activeRule.description===oldRule.description&&activeRule.ranges===oldRule.ranges&&!isSameCollaborators)await authzIoService.putCollaborators({objectID:activeRule.permissionId,unitID:activeRule.unitId,collaborators});else{let newPermissionId=activeRule.permissionId;isSameCollaborators||(activeRule.unitType===l$1.Worksheet?newPermissionId=await authzIoService.create({worksheetObject:{collaborators,unitID:activeRule.unitId,name:activeRule.name,strategies:[{role:M.Editor,action:P.Edit},{role:M.Reader,action:P.View}],scope:L.SomeCollaborator},objectType:l$1.Worksheet}):newPermissionId=await authzIoService.create({selectRangeObject:{collaborators,unitID:activeRule.unitId,name:activeRule.name,readScope:L.SomeCollaborator},objectType:l$1.SelectRange})),commandService.executeCommand(SetProtectionCommand.id,{rule:{...activeRule,permissionId:newPermissionId}})}}else if(activeRule.unitType===l$1.Worksheet){const permissionId=await authzIoService.create({worksheetObject:{collaborators,unitID:activeRule.unitId,name:activeRule.name,strategies:[{role:M.Editor,action:P.Edit},{role:M.Reader,action:P.View}],scope:L.SomeCollaborator},objectType:l$1.Worksheet}),{ranges:_range=[],...sheetRule}=activeRule;sheetRule.permissionId=permissionId,commandService.executeCommand(AddWorksheetProtectionCommand.id,{rule:sheetRule,unitId:activeRule.unitId})}else if(activeRule.unitType===l$1.SelectRange){const permissionId=await authzIoService.create({selectRangeObject:{collaborators,unitID:activeRule.unitId,name:activeRule.name,readScope:L.SomeCollaborator},objectType:l$1.SelectRange});commandService.executeCommand(sheets.AddRangeProtectionCommand.id,{rule:activeRule,permissionId})}sheetPermissionPanelModel.resetRule(),sheetPermissionUserManagerService.setSelectUserList([]);const sidebarProps={header:{title:`${localeService.t("permission.panel.title")}`},children:{label:UNIVER_SHEET_PERMISSION_PANEL,showDetail:!1},width:330,footer:{label:UNIVER_SHEET_PERMISSION_PANEL_FOOTER,showDetail:!1}};sidebarService.open(sidebarProps)},"onClick"),children:localeService.t("permission.button.confirm")}),jsxRuntimeExports.jsx(design.Button,{className:styles$4.sheetPermissionPanelFooterCancel,onClick:__name(()=>{sheetPermissionPanelModel.resetRule(),sheetPermissionUserManagerService.setSelectUserList([]),sidebarService.close()},"onClick"),children:localeService.t("permission.button.cancel")})]})},"SheetPermissionPanelDetailFooter"),SheetPermissionPanelFooter=__name(({showDetail})=>showDetail?jsxRuntimeExports.jsx(SheetPermissionPanelDetailFooter,{}):jsxRuntimeExports.jsx(SheetPermissionPanelAddFooter,{}),"SheetPermissionPanelFooter"),styles$3={sheetPermissionUserDialogWrapper:"univer-sheet-permission-user-dialog-wrapper",sheetPermissionUserDialogSearchInput:"univer-sheet-permission-user-dialog-search-input",sheetPermissionUserList:"univer-sheet-permission-user-list",sheetPermissionUserListEmpty:"univer-sheet-permission-user-list-empty",sheetPermissionUserListEmptyText:"univer-sheet-permission-user-list-empty-text",sheetPermissionUserItem:"univer-sheet-permission-user-item",sheetPermissionUserItemName:"univer-sheet-permission-user-item-name",sheetPermissionSplit:"univer-sheet-permission-split",sheetPermissionUserDialogFooter:"univer-sheet-permission-user-dialog-footer",sheetPermissionUserDialogFooterConfirm:"univer-sheet-permission-user-dialog-footer-confirm",sheetPermissionUserDialogButton:"univer-sheet-permission-user-dialog-button"},SheetPermissionUserDialog=__name(()=>{const[inputValue,setInputValue]=React.useState(""),localeService=core.useDependency(core.LocaleService),dialogService=core.useDependency(ui.IDialogService),sheetPermissionUserManagerService=core.useDependency(SheetPermissionUserManagerService),searchUserList=sheetPermissionUserManagerService.userList.filter(item=>{var _a2;return((_a2=item.subject)==null?void 0:_a2.name.toLocaleLowerCase().includes(inputValue.toLocaleLowerCase()))&&item.role===M.Editor}),[selectUserInfo,setSelectUserInfo]=React.useState(sheetPermissionUserManagerService.selectUserList),handleChangeUser=__name(item=>{if((selectUserInfo==null?void 0:selectUserInfo.findIndex(v=>{var _a2,_b2;return((_a2=v.subject)==null?void 0:_a2.userID)===((_b2=item.subject)==null?void 0:_b2.userID)}))===-1){const select={...item};setSelectUserInfo([...selectUserInfo,select])}else{const newSelectUserInfo=selectUserInfo.filter(v=>{var _a2,_b2;return((_a2=v.subject)==null?void 0:_a2.userID)!==((_b2=item.subject)==null?void 0:_b2.userID)});setSelectUserInfo(newSelectUserInfo)}},"handleChangeUser");return jsxRuntimeExports.jsxs("div",{className:styles$3.sheetPermissionUserDialogWrapper,children:[jsxRuntimeExports.jsx("div",{className:styles$3.sheetPermissionUserDialogSearch,children:jsxRuntimeExports.jsx(design.Input,{placeholder:"search",className:styles$3.sheetPermissionUserDialogSearchInput,value:inputValue,onChange:__name(v=>setInputValue(v),"onChange")})}),jsxRuntimeExports.jsx("div",{className:styles$3.sheetPermissionUserList,children:(searchUserList==null?void 0:searchUserList.length)>0?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:searchUserList==null?void 0:searchUserList.map(item=>{var _a2,_b2,_c2;return jsxRuntimeExports.jsxs("div",{className:styles$3.sheetPermissionUserItem,onClick:__name(()=>handleChangeUser(item),"onClick"),children:[jsxRuntimeExports.jsx(design.Avatar,{src:(_a2=item.subject)==null?void 0:_a2.avatar,size:24}),jsxRuntimeExports.jsx("div",{className:styles$3.sheetPermissionUserItemName,children:(_b2=item.subject)==null?void 0:_b2.name}),(selectUserInfo==null?void 0:selectUserInfo.findIndex(v=>{var _a3,_b3;return((_a3=v.subject)==null?void 0:_a3.userID)===((_b3=item.subject)==null?void 0:_b3.userID)}))!==-1&&jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(CheckMarkSingle,{})})]},(_c2=item.subject)==null?void 0:_c2.userID)})}):jsxRuntimeExports.jsxs("div",{className:styles$3.sheetPermissionUserListEmpty,children:[jsxRuntimeExports.jsx("img",{width:240,height:120,src:UserEmptyBase64,alt:""}),jsxRuntimeExports.jsx("p",{className:styles$3.sheetPermissionUserListEmptyText,children:localeService.t("permission.dialog.userEmpty")})]})}),jsxRuntimeExports.jsx("div",{className:styles$3.sheetPermissionSplit}),jsxRuntimeExports.jsxs("div",{className:styles$3.sheetPermissionUserDialogFooter,children:[jsxRuntimeExports.jsx(design.Button,{className:styles$3.sheetPermissionUserDialogButton,onClick:__name(()=>dialogService.close(UNIVER_SHEET_PERMISSION_USER_DIALOG_ID),"onClick"),children:localeService.t("permission.button.cancel")}),jsxRuntimeExports.jsx(design.Button,{type:"primary",onClick:__name(()=>{sheetPermissionUserManagerService.setSelectUserList(selectUserInfo),dialogService.close(UNIVER_SHEET_PERMISSION_USER_DIALOG_ID)},"onClick"),className:clsx(styles$3.sheetPermissionUserDialogFooterConfirm,styles$3.sheetPermissionUserDialogButton),children:localeService.t("permission.button.confirm")})]})]})},"SheetPermissionUserDialog"),styles$2={sheetPermissionDialogWrapper:"univer-sheet-permission-dialog-wrapper",sheetPermissionDialogSplit:"univer-sheet-permission-dialog-split",sheetPermissionDialogItem:"univer-sheet-permission-dialog-item",sheetPermissionUserDialogFooter:"univer-sheet-permission-user-dialog-footer",sheetPermissionUserDialogFooterConfirm:"univer-sheet-permission-user-dialog-footer-confirm",sheetPermissionUserDialogButton:"univer-sheet-permission-user-dialog-button"},SheetPermissionDialog=__name(()=>{const localeService=core.useDependency(core.LocaleService),univerInstanceService=core.useDependency(core.IUniverInstanceService),authzIoService=core.useDependency(core.IAuthzIoService),worksheetProtectionPointRuleModel=core.useDependency(sheets.WorksheetProtectionPointModel),dialogService=core.useDependency(ui.IDialogService),permissionService=core.useDependency(core.IPermissionService),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const[collaborators,setCollaborators]=React.useState([]),commandService=core.useDependency(core.ICommandService),[loading,setLoading]=React.useState(()=>!!worksheetProtectionPointRuleModel.getRule(workbook.getUnitId(),worksheet.getSheetId())),[permissionMap,setPermissionMap]=React.useState(()=>Object.keys(subUnitPermissionTypeMap).reduce((acc,action)=>(acc[action]={text:localeService.t(`permission.panel.${subUnitPermissionTypeMap[Number(action)]}`),allowed:!0},acc),{}));React.useEffect(()=>{__name(async()=>{const unitId=workbook.getUnitId(),collaborators2=await authzIoService.listCollaborators({objectID:unitId,unitID:unitId});setCollaborators(collaborators2)},"getUserList")()},[]),React.useEffect(()=>{__name(async()=>{const unitId=workbook.getUnitId(),worksheetPointRule=worksheetProtectionPointRuleModel.getRule(unitId,worksheet.getSheetId());if(!worksheetPointRule)return;setLoading(!0);const actions=(await authzIoService.list({unitID:workbook.getUnitId(),objectIDs:[worksheetPointRule.permissionId],actions:defaultWorksheetUnitActionList}))[0].strategies.reduce((p2,c)=>(subUnitPermissionTypeMap[c.action]&&(p2[c.action]={text:localeService.t(`permission.panel.${subUnitPermissionTypeMap[c.action]}`),allowed:c.role!==M.Owner}),p2),{});setPermissionMap(actions),setTimeout(()=>{setLoading(!1)},100)},"getPermissionPoints")()},[]);const handleChangeActionPermission=__name(async()=>{const workbook2=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet2=workbook2==null?void 0:workbook2.getActiveSheet();if(!worksheet2)throw new Error("No active sheet found");const unitId=workbook2.getUnitId(),subUnitId=worksheet2.getSheetId(),pointRule=worksheetProtectionPointRuleModel.getRule(unitId,subUnitId),actions=Object.keys(permissionMap).map(action=>({action:Number(action),role:permissionMap[action].allowed?M.Editor:M.Owner}));let permissionId=pointRule==null?void 0:pointRule.permissionId;permissionId?authzIoService.update({objectType:l$1.Worksheet,objectID:permissionId,unitID:unitId,strategies:actions,share:void 0,name:""}).then(()=>{sheets.getAllWorksheetPermissionPoint().forEach(F=>{const instance=new F(unitId,subUnitId),unitActionName=instance.subType,action=actions.find(item=>item.action===unitActionName);action&&permissionService.updatePermissionPoint(instance.id,action.role===M.Editor)})}):(permissionId=await authzIoService.create({objectType:l$1.Worksheet,worksheetObject:{unitID:unitId,collaborators,name:"",strategies:actions,scope:L.AllCollaborator}}),commandService.executeCommand(sheets.SetWorksheetPermissionPointsCommand.id,{rule:{permissionId,unitId,subUnitId}}))},"handleChangeActionPermission");return jsxRuntimeExports.jsx(Spin,{loading,children:jsxRuntimeExports.jsx("div",{className:styles$2.sheetPermissionDialogWrapper,children:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:styles$2.sheetPermissionDialogSplit}),Object.keys(permissionMap).map(action=>{const actionItem=permissionMap[action],{text,allowed}=actionItem;return jsxRuntimeExports.jsxs("div",{className:styles$2.sheetPermissionDialogItem,children:[jsxRuntimeExports.jsx("div",{children:text}),jsxRuntimeExports.jsx(design.Switch,{defaultChecked:allowed,onChange:__name(()=>{setPermissionMap({...permissionMap,[action]:{...actionItem,allowed:!allowed}})},"onChange")})]},text)}),jsxRuntimeExports.jsx("div",{className:styles$2.sheetPermissionDialogSplit}),jsxRuntimeExports.jsxs("div",{className:styles$2.sheetPermissionUserDialogFooter,children:[jsxRuntimeExports.jsx(design.Button,{className:styles$2.sheetPermissionUserDialogButton,onClick:__name(()=>{dialogService.close(UNIVER_SHEET_PERMISSION_DIALOG_ID)},"onClick"),children:localeService.t("permission.button.cancel")}),jsxRuntimeExports.jsx(design.Button,{type:"primary",onClick:__name(()=>{handleChangeActionPermission(),dialogService.close(UNIVER_SHEET_PERMISSION_DIALOG_ID)},"onClick"),className:clsx(styles$2.sheetPermissionUserDialogFooterConfirm,styles$2.sheetPermissionUserDialogButton),children:localeService.t("permission.button.confirm")})]})]})})})},"SheetPermissionDialog"),styles$1={sheetPermissionAlertDialog:"univer-sheet-permission-alert-dialog",sheetPermissionAlertDialogTitle:"univer-sheet-permission-alert-dialog-title",sheetPermissionAlertDialogButton:"univer-sheet-permission-alert-dialog-button"},AlertDialog=__name(({errorMsg})=>{const localeService=core.useDependency(core.LocaleService),dialogService=core.useDependency(ui.IDialogService);return jsxRuntimeExports.jsxs("div",{className:styles$1.sheetPermissionAlertDialog,children:[jsxRuntimeExports.jsx("h1",{className:styles$1.sheetPermissionAlertDialogTitle,children:localeService.t("permission.dialog.alert")}),jsxRuntimeExports.jsx("p",{children:errorMsg||localeService.t("permission.dialog.alertContent")}),jsxRuntimeExports.jsx("div",{className:styles$1.sheetPermissionAlertDialogButton,children:jsxRuntimeExports.jsx(design.Button,{type:"primary",onClick:__name(()=>{dialogService.close(UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID)},"onClick"),children:localeService.t("permission.button.confirm")})})]})},"AlertDialog"),base64="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNCIgaGVpZ2h0PSI0IiB2aWV3Qm94PSIwIDAgNCA0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWFzayBpZD0ibWFzazBfNzU5XzExMDgiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjRDZEOEQ5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF83NTlfMTEwOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTS0zLjY0MDAyIDMuNDQxNDFMMi4wNzM5NyAtMi4yNzI1OEwyLjc4MTA4IC0xLjU2NTQ4TC0yLjkzMjkxIDQuMTQ4NTJMLTMuNjQwMDIgMy40NDE0MVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0tMS41MTg2OCA1LjU2Mjc1TDQuMTk1MzEgLTAuMTUxMjQ1TDQuOTAyNDIgMC41NTU4NjJMLTAuODExNTc1IDYuMjY5ODZMLTEuNTE4NjggNS41NjI3NVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjYwMjY1NiA3LjY4NDAzTDYuMzE2NjUgMS45NzAwM0w3LjAyMzc2IDIuNjc3MTRMMS4zMDk3NiA4LjM5MTEzTDAuNjAyNjU2IDcuNjg0MDNaIiBmaWxsPSIjRDZEOERCIi8+CjwvZz4KPC9zdmc+",RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY="RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY",RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY="RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY",EXTENSION_CAN_VIEW_Z_INDEX$1=25,EXTENSION_CAN_NOT_VIEW_Z_INDEX$1=80,_RangeProtectionRenderExtension=class _RangeProtectionRenderExtension extends engineRender.SheetExtension{constructor(){super();__publicField(this,"_pattern",null);__publicField(this,"_img",new Image);__publicField(this,"renderCache",new Set);this._img.src=base64}clearCache(){this.renderCache.clear()}draw(ctx,_parentScale,spreadsheetSkeleton,_diffRanges){const{rowHeightAccumulation,columnWidthAccumulation,worksheet,dataMergeCache}=spreadsheetSkeleton;worksheet&&(ctx.save(),this._pattern||(this._pattern=ctx.createPattern(this._img,"repeat")),this.renderCache.clear(),core.Range.foreach(spreadsheetSkeleton.rowColumnSegment,(row,col)=>{if(!worksheet.getColVisible(col)||!worksheet.getRowVisible(row))return;const{selectionProtection=[]}=worksheet.getCell(row,col)||{};this._pattern&&(ctx.fillStyle=this._pattern,selectionProtection.forEach(config=>{if(config.ruleId&&this.shouldRender(config)){if(this.renderCache.has(config.ruleId))return;this.renderCache.add(config.ruleId),config.ranges.forEach(range=>{const start=this.getCellIndex(range.startRow,range.startColumn,rowHeightAccumulation,columnWidthAccumulation,dataMergeCache),end=this.getCellIndex(range.endRow,range.endColumn,rowHeightAccumulation,columnWidthAccumulation,dataMergeCache);ctx.fillRect(start.startX,start.startY,end.endX-start.startX,end.endY-start.startY)})}}))}),ctx.restore())}};__name(_RangeProtectionRenderExtension,"RangeProtectionRenderExtension");let RangeProtectionRenderExtension=_RangeProtectionRenderExtension;const _RangeProtectionCanViewRenderExtension=class _RangeProtectionCanViewRenderExtension extends RangeProtectionRenderExtension{constructor(){super();__publicField(this,"uKey",RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY);__publicField(this,"Z_INDEX",EXTENSION_CAN_VIEW_Z_INDEX$1)}shouldRender(config){return(config==null?void 0:config[P.View])!==!1}};__name(_RangeProtectionCanViewRenderExtension,"RangeProtectionCanViewRenderExtension");let RangeProtectionCanViewRenderExtension=_RangeProtectionCanViewRenderExtension;const _RangeProtectionCanNotViewRenderExtension=class _RangeProtectionCanNotViewRenderExtension extends RangeProtectionRenderExtension{constructor(){super();__publicField(this,"uKey",RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY);__publicField(this,"Z_INDEX",EXTENSION_CAN_NOT_VIEW_Z_INDEX$1)}shouldRender(config){return(config==null?void 0:config[P.View])===!1}};__name(_RangeProtectionCanNotViewRenderExtension,"RangeProtectionCanNotViewRenderExtension");let RangeProtectionCanNotViewRenderExtension=_RangeProtectionCanNotViewRenderExtension;var __defProp$b=Object.defineProperty,__getOwnPropDesc$b=Object.getOwnPropertyDescriptor,__decorateClass$b=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$b(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$b(target,key,result),result},"__decorateClass$b"),__decorateParam$b=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$b");let SheetPermissionRenderManagerController=(_T=class extends core.Disposable{constructor(_config,_menuService,_componentManager,_injector){super(),this._config=_config,this._menuService=_menuService,this._componentManager=_componentManager,this._injector=_injector,this._init()}_init(){this._initComponents()}_initComponents(){[[permissionMenuIconKey,ProtectSingle],[permissionDeleteIconKey,DeleteSingle],[permissionEditIconKey,WriteSingle],[permissionCheckIconKey,CheckMarkSingle],[permissionLockIconKey,LockSingle],[UNIVER_SHEET_PERMISSION_PANEL,SheetPermissionPanel],[UNIVER_SHEET_PERMISSION_PANEL_FOOTER,SheetPermissionPanelFooter],[UNIVER_SHEET_PERMISSION_USER_DIALOG,SheetPermissionUserDialog],[UNIVER_SHEET_PERMISSION_DIALOG,SheetPermissionDialog],[UNIVER_SHEET_PERMISSION_ALERT_DIALOG,AlertDialog]].forEach(([key,component])=>{this.disposeWithMe(this._componentManager.register(key,component))})}},__name(_T,"SheetPermissionRenderManagerController"),_T);SheetPermissionRenderManagerController=__decorateClass$b([core.OnLifecycle(core.LifecycleStages.Rendered,SheetPermissionRenderManagerController),__decorateParam$b(1,ui.IMenuService),__decorateParam$b(2,core.Inject(ui.ComponentManager)),__decorateParam$b(3,core.Inject(core.Injector))],SheetPermissionRenderManagerController);let SheetPermissionRenderController=(_U=class extends core.Disposable{constructor(_context,_rangeProtectionRuleModel,_sheetSkeletonManagerService,_permissionService){super();__publicField(this,"_rangeProtectionCanViewRenderExtension",new RangeProtectionCanViewRenderExtension);__publicField(this,"_rangeProtectionCanNotViewRenderExtension",new RangeProtectionCanNotViewRenderExtension);this._context=_context,this._rangeProtectionRuleModel=_rangeProtectionRuleModel,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._permissionService=_permissionService,this._initRender(),this._initSkeleton(),this._rangeProtectionRuleModel.ruleChange$.subscribe(info=>{var _a2,_b2;((_a2=info.oldRule)!=null&&_a2.id&&this._rangeProtectionCanViewRenderExtension.renderCache.has(info.oldRule.id)||this._rangeProtectionCanViewRenderExtension.renderCache.has(info.rule.id))&&this._rangeProtectionCanViewRenderExtension.clearCache(),((_b2=info.oldRule)!=null&&_b2.id&&this._rangeProtectionCanNotViewRenderExtension.renderCache.has(info.oldRule.id)||this._rangeProtectionCanNotViewRenderExtension.renderCache.has(info.rule.id))&&this._rangeProtectionCanNotViewRenderExtension.clearCache()})}_initRender(){const spreadsheetRender=this._context.mainComponent;spreadsheetRender&&(spreadsheetRender.getExtensionByKey(RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY)||spreadsheetRender.register(this._rangeProtectionCanViewRenderExtension),spreadsheetRender.getExtensionByKey(RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY)||spreadsheetRender.register(this._rangeProtectionCanNotViewRenderExtension))}_initSkeleton(){const markDirtySkeleton=__name(()=>{var _a2;this._sheetSkeletonManagerService.reCalculate(),(_a2=this._context.mainComponent)==null||_a2.makeDirty()},"markDirtySkeleton");this.disposeWithMe(rxjs.merge(this._permissionService.permissionPointUpdate$.pipe(rxjs.throttleTime(300,void 0,{trailing:!0})),this._rangeProtectionRuleModel.ruleChange$).pipe().subscribe(markDirtySkeleton))}},__name(_U,"SheetPermissionRenderController"),_U);SheetPermissionRenderController=__decorateClass$b([__decorateParam$b(1,core.Inject(sheets.RangeProtectionRuleModel)),__decorateParam$b(2,core.Inject(exports2.SheetSkeletonManagerService)),__decorateParam$b(3,core.IPermissionService)],SheetPermissionRenderController);var __defProp$a=Object.defineProperty,__getOwnPropDesc$a=Object.getOwnPropertyDescriptor,__decorateClass$a=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$a(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$a(target,key,result),result},"__decorateClass$a"),__decorateParam$a=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$a");let SheetPermissionInterceptorCanvasRenderController=(_V=class extends core.RxDisposable{constructor(_context,_univerInstanceService,_permissionService,_selectionManagerService,_rangeProtectionRuleModel,_headerMoveRenderController,_selectionRenderService,_headerFreezeRenderController,_headerResizeRenderController){super();__publicField(this,"disposableCollection",new core.DisposableCollection);this._context=_context,this._univerInstanceService=_univerInstanceService,this._permissionService=_permissionService,this._selectionManagerService=_selectionManagerService,this._rangeProtectionRuleModel=_rangeProtectionRuleModel,this._headerMoveRenderController=_headerMoveRenderController,this._selectionRenderService=_selectionRenderService,this._headerFreezeRenderController=_headerFreezeRenderController,this._headerResizeRenderController=_headerResizeRenderController,this._initHeaderMovePermissionInterceptor(),this._initHeaderResizePermissionInterceptor(),this._initRangeFillPermissionInterceptor(),this._initRangeMovePermissionInterceptor(),this._initFreezePermissionInterceptor()}_initHeaderMovePermissionInterceptor(){this.disposeWithMe(this._headerMoveRenderController.interceptor.intercept(this._headerMoveRenderController.interceptor.getInterceptPoints().HEADER_MOVE_PERMISSION_CHECK,{handler:__name((defaultValue,selectionRange)=>{const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{worksheet,unitId,subUnitId}=target;return this._permissionService.composePermission([new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id]).every(permission=>permission.value)?selectionRange?!this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).reduce((p2,c)=>[...p2,...c.ranges],[]).filter(range=>core.Rectangle.intersects(range,selectionRange)).some(range=>{var _a2,_b2;const{startRow,startColumn,endRow,endColumn}=range;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_b2=(_a2=worksheet.getCell(row,col))==null?void 0:_a2.selectionProtection)==null?void 0:_b2[0];if((permission==null?void 0:permission[P.Edit])===!1)return!0}return!1}):!0:!1},"handler")}))}_initHeaderResizePermissionInterceptor(){this._headerResizeRenderController&&this.disposeWithMe(this._headerResizeRenderController.interceptor.intercept(this._headerResizeRenderController.interceptor.getInterceptPoints().HEADER_RESIZE_PERMISSION_CHECK,{handler:__name((defaultValue,rangeParams)=>{var _a2,_b2,_c2,_d2;const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{worksheet,unitId,subUnitId}=target;if(!this._permissionService.composePermission([new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id]).every(permission=>permission.value))return!1;if(rangeParams.row){if(((_b2=(_a2=this._permissionService.getPermissionPoint(new sheets.WorksheetSetRowStylePermission(unitId,subUnitId).id))==null?void 0:_a2.value)!=null?_b2:!1)===!1)return!1}else if(rangeParams.col&&((_d2=(_c2=this._permissionService.getPermissionPoint(new sheets.WorksheetSetColumnStylePermission(unitId,subUnitId).id))==null?void 0:_c2.value)!=null?_d2:!1)===!1)return!1;let selectionRange;if(rangeParams.row!==void 0?selectionRange={startRow:rangeParams.row,endRow:rangeParams.row,startColumn:0,endColumn:worksheet.getColumnCount()-1}:rangeParams.col!==void 0&&(selectionRange={startRow:0,endRow:worksheet.getRowCount()-1,startColumn:rangeParams.col,endColumn:rangeParams.col}),!selectionRange)return!0;let haveNotPermission=this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).reduce((p2,c)=>[...p2,...c.ranges],[]).filter(range=>core.Rectangle.intersects(range,selectionRange)).some(range=>{var _a3,_b3;const{startRow,startColumn,endRow,endColumn}=range;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_b3=(_a3=worksheet.getCell(row,col))==null?void 0:_a3.selectionProtection)==null?void 0:_b3[0];if((permission==null?void 0:permission[P.Edit])===!1)return!0}return!1});if(haveNotPermission)return!1;const resizeType=rangeParams.row!==void 0?core.RANGE_TYPE.ROW:core.RANGE_TYPE.COLUMN,selectionRowColRanges=[],selectionRanges=this._selectionManagerService.getCurrentSelections();let isResizeTargetInSelectionRanges=!1;return resizeType===core.RANGE_TYPE.ROW?selectionRanges==null||selectionRanges.forEach(selection=>{var _a3,_b3;(((_a3=selection==null?void 0:selection.range)==null?void 0:_a3.rangeType)===core.RANGE_TYPE.ROW||((_b3=selection==null?void 0:selection.range)==null?void 0:_b3.rangeType)===core.RANGE_TYPE.ALL)&&(selectionRowColRanges.push(selection.range),selection.range.startRow<=rangeParams.row&&selection.range.endRow>=rangeParams.row&&(isResizeTargetInSelectionRanges=!0))}):selectionRanges==null||selectionRanges.forEach(selection=>{var _a3,_b3;(((_a3=selection==null?void 0:selection.range)==null?void 0:_a3.rangeType)===core.RANGE_TYPE.COLUMN||((_b3=selection==null?void 0:selection.range)==null?void 0:_b3.rangeType)===core.RANGE_TYPE.ALL)&&(selectionRowColRanges.push(selection.range),selection.range.startColumn<=rangeParams.col&&selection.range.endColumn>=rangeParams.col&&(isResizeTargetInSelectionRanges=!0))}),isResizeTargetInSelectionRanges?(haveNotPermission=this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).reduce((p2,c)=>[...p2,...c.ranges],[]).filter(range=>selectionRowColRanges.some(selectionRange2=>core.Rectangle.intersects(range,selectionRange2))).some(range=>{var _a3,_b3;const{startRow,startColumn,endRow,endColumn}=range;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_b3=(_a3=worksheet.getCell(row,col))==null?void 0:_a3.selectionProtection)==null?void 0:_b3[0];if((permission==null?void 0:permission[P.Edit])===!1)return!0}return!1}),!haveNotPermission):!0},"handler")}))}_initRangeFillPermissionInterceptor(){this.disposeWithMe(this._selectionRenderService.interceptor.intercept(this._selectionRenderService.interceptor.getInterceptPoints().RANGE_FILL_PERMISSION_CHECK,{handler:__name((_,position)=>{var _a2,_b2,_c2;const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{worksheet,unitId,subUnitId}=target;if(!this._permissionService.composePermission([new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id]).every(permission=>permission.value))return!1;const ranges=(_a2=this._selectionManagerService.getCurrentSelections())==null?void 0:_a2.map(selection=>selection.range),selectionRange=ranges==null?void 0:ranges.find(range=>{const transformCoord=getTransformCoord(position.x,position.y,position.scene,position.skeleton),cellPosition=position.skeleton.getCellByIndex(range.endRow,range.endColumn),missX=Math.abs(cellPosition.endX-transformCoord.x),missY=Math.abs(cellPosition.endY-transformCoord.y);return missX<=5&&missY<=5});if(!selectionRange)return!0;const{startRow,endRow,startColumn,endColumn}=selectionRange;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_c2=(_b2=worksheet.getCell(row,col))==null?void 0:_b2.selectionProtection)==null?void 0:_c2[0];if((permission==null?void 0:permission[P.Edit])===!1||(permission==null?void 0:permission[P.View])===!1)return!1}return!0},"handler")}))}_initRangeMovePermissionInterceptor(){this.disposeWithMe(this._selectionRenderService.interceptor.intercept(this._selectionRenderService.interceptor.getInterceptPoints().RANGE_MOVE_PERMISSION_CHECK,{handler:__name((_,_cellInfo)=>{var _a2;const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{worksheet,unitId,subUnitId}=target;if(!this._permissionService.composePermission([new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id]).every(permission=>permission.value))return!1;const ranges=(_a2=this._selectionManagerService.getCurrentSelections())==null?void 0:_a2.map(selection=>selection.range),ruleRanges=this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).reduce((p2,c)=>[...p2,...c.ranges],[]),permissionLapRanges=ranges==null?void 0:ranges.filter(range=>ruleRanges.some(ruleRange=>core.Rectangle.intersects(ruleRange,range)));return!(permissionLapRanges==null?void 0:permissionLapRanges.some(range=>{var _a3,_b2;const{startRow,startColumn,endRow,endColumn}=range;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_b2=(_a3=worksheet.getCell(row,col))==null?void 0:_a3.selectionProtection)==null?void 0:_b2[0];if((permission==null?void 0:permission[P.Edit])===!1)return!0}return!1}))},"handler")}))}_initFreezePermissionInterceptor(){this.disposeWithMe(this._headerFreezeRenderController.interceptor.intercept(this._headerFreezeRenderController.interceptor.getInterceptPoints().FREEZE_PERMISSION_CHECK,{handler:__name((_,__2)=>{var _a2,_b2;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);return!(workbook==null?void 0:workbook.getActiveSheet())||!workbook?!1:(_b2=(_a2=this._permissionService.getPermissionPoint(new sheets.WorkbookEditablePermission(workbook.getUnitId()).id))==null?void 0:_a2.value)!=null?_b2:!1},"handler")}))}},__name(_V,"SheetPermissionInterceptorCanvasRenderController"),_V);SheetPermissionInterceptorCanvasRenderController=__decorateClass$a([core.OnLifecycle(core.LifecycleStages.Steady,SheetPermissionInterceptorCanvasRenderController),__decorateParam$a(1,core.IUniverInstanceService),__decorateParam$a(2,core.IPermissionService),__decorateParam$a(3,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$a(4,core.Inject(sheets.RangeProtectionRuleModel)),__decorateParam$a(5,core.Inject(exports2.HeaderMoveRenderController)),__decorateParam$a(6,ISheetSelectionRenderService),__decorateParam$a(7,core.Inject(exports2.HeaderFreezeRenderController)),__decorateParam$a(8,core.Optional(exports2.HeaderResizeRenderController))],SheetPermissionInterceptorCanvasRenderController);var __defProp$9=Object.defineProperty,__getOwnPropDesc$9=Object.getOwnPropertyDescriptor,__decorateClass$9=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$9(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$9(target,key,result),result},"__decorateClass$9"),__decorateParam$9=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$9");let SheetPermissionInterceptorFormulaRenderController=(_W=class extends core.RxDisposable{constructor(_context,_injector,_univerInstanceService,_permissionService,_statusBarController,_rangeProtectionRenderModel){super();__publicField(this,"disposableCollection",new core.DisposableCollection);this._context=_context,this._injector=_injector,this._univerInstanceService=_univerInstanceService,this._permissionService=_permissionService,this._statusBarController=_statusBarController,this._rangeProtectionRenderModel=_rangeProtectionRenderModel,this._initStatusBarPermissionInterceptor()}_initStatusBarPermissionInterceptor(){this.disposeWithMe(this._statusBarController.interceptor.intercept(this._statusBarController.interceptor.getInterceptPoints().STATUS_BAR_PERMISSION_CORRECT,{priority:100,handler:__name((defaultValue,originValue)=>{var _a2;const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return defaultValue!=null?defaultValue:[];const{worksheet,unitId,subUnitId}=target;return((_a2=this._permissionService.getPermissionPoint(new sheets.WorksheetViewPermission(unitId,subUnitId).id))==null?void 0:_a2.value)===!1?originValue.forEach(item=>{const itemValue=item.getArrayValue();itemValue.forEach((row,rowIndex)=>{row.forEach((col,colIndex)=>{itemValue[rowIndex][colIndex]=engineFormula.NullValueObject.create()})})}):originValue.forEach(item=>{const itemValue=item.getArrayValue(),startRow=item.getCurrentRow(),startCol=item.getCurrentColumn();itemValue.forEach((row,rowIndex)=>{row.forEach((col,colIndex)=>{var _a3,_b2;if(((_a3=worksheet.getCellRaw(rowIndex+startRow,colIndex+startCol))==null?void 0:_a3.v)===void 0)return;const permission=(_b2=this._rangeProtectionRenderModel.getCellInfo(unitId,subUnitId,rowIndex+startRow,colIndex+startCol))==null?void 0:_b2[0];(permission==null?void 0:permission[P.View])===!1&&(itemValue[rowIndex][colIndex]=engineFormula.NullValueObject.create())})})}),originValue},"handler")}))}},__name(_W,"SheetPermissionInterceptorFormulaRenderController"),_W);SheetPermissionInterceptorFormulaRenderController=__decorateClass$9([core.OnLifecycle(core.LifecycleStages.Steady,SheetPermissionInterceptorFormulaRenderController),__decorateParam$9(1,core.Inject(core.Injector)),__decorateParam$9(2,core.IUniverInstanceService),__decorateParam$9(3,core.IPermissionService),__decorateParam$9(4,core.Inject(exports2.StatusBarController)),__decorateParam$9(5,core.Inject(sheets.RangeProtectionRenderModel))],SheetPermissionInterceptorFormulaRenderController);const worksheetProtectionKey="worksheet-protection",EXTENSION_CAN_VIEW_Z_INDEX=25,EXTENSION_CAN_NOT_VIEW_Z_INDEX=80,_WorksheetProtectionRenderExtension=class _WorksheetProtectionRenderExtension extends engineRender.SheetExtension{constructor(){super();__publicField(this,"uKey",worksheetProtectionKey);__publicField(this,"Z_INDEX",EXTENSION_CAN_VIEW_Z_INDEX);__publicField(this,"_pattern");__publicField(this,"_img",new Image);this._img.src=base64}draw(ctx,_parentScale,spreadsheetSkeleton,_diffRanges){const{rowHeightAccumulation,columnWidthAccumulation,worksheet,dataMergeCache}=spreadsheetSkeleton;if(!worksheet)return!1;ctx.save(),this._pattern||(this._pattern=ctx.createPattern(this._img,"repeat"));const{startRow,startColumn,endRow,endColumn}=spreadsheetSkeleton.rowColumnSegment,start=this.getCellIndex(startRow,startColumn,rowHeightAccumulation,columnWidthAccumulation,dataMergeCache),end=this.getCellIndex(endRow,endColumn,rowHeightAccumulation,columnWidthAccumulation,dataMergeCache),{hasWorksheetRule=!1,selectionProtection=[]}=worksheet.getCell(startRow,startColumn)||{};if(this._pattern){if(selectionProtection.length>0){const cellProtectionConfig=selectionProtection[0];(cellProtectionConfig==null?void 0:cellProtectionConfig[P.View])?this.setZIndex(EXTENSION_CAN_VIEW_Z_INDEX):this.setZIndex(EXTENSION_CAN_NOT_VIEW_Z_INDEX)}ctx.fillStyle=this._pattern,hasWorksheetRule&&ctx.fillRect(start.startX,start.startY,end.endX-start.startX,end.endY-start.startY),ctx.restore()}}setZIndex(zIndex){this.Z_INDEX=zIndex}};__name(_WorksheetProtectionRenderExtension,"WorksheetProtectionRenderExtension");let WorksheetProtectionRenderExtension=_WorksheetProtectionRenderExtension;var __defProp$8=Object.defineProperty,__getOwnPropDesc$8=Object.getOwnPropertyDescriptor,__decorateClass$8=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$8(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$8(target,key,result),result},"__decorateClass$8"),__decorateParam$8=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$8");let WorksheetProtectionRenderService=(_X=class extends core.Disposable{constructor(_renderManagerService,_univerInstanceService){super();__publicField(this,"_worksheetProtectionRenderExtension",new WorksheetProtectionRenderExtension);this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService,this._initRender()}_initRender(){const register=__name(renderId=>{const render2=renderId&&this._renderManagerService.getRenderById(renderId),spreadsheetRender=render2&&render2.mainComponent;spreadsheetRender&&(spreadsheetRender.getExtensionByKey(worksheetProtectionKey)||spreadsheetRender.register(this._worksheetProtectionRenderExtension))},"register");this.disposeWithMe(this._renderManagerService.currentRender$.subscribe(renderId=>{renderId&&register(renderId)}));const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);workbook&&register(workbook.getUnitId())}},__name(_X,"WorksheetProtectionRenderService"),_X);WorksheetProtectionRenderService=__decorateClass$8([core.OnLifecycle(core.LifecycleStages.Ready,WorksheetProtectionRenderService),__decorateParam$8(0,core.Inject(engineRender.IRenderManagerService)),__decorateParam$8(1,core.Inject(core.IUniverInstanceService))],WorksheetProtectionRenderService);const PRINTING_RANGE=core.createInterceptorKey("PRINTING_RANGE"),PRINTING_COMPONENT_COLLECT=core.createInterceptorKey("PRINTING_COMPONENT_COLLECT"),_SheetPrintInterceptorService=class _SheetPrintInterceptorService extends core.Disposable{constructor(){super();__publicField(this,"interceptor",new core.InterceptorManager({PRINTING_RANGE,PRINTING_COMPONENT_COLLECT}));this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().PRINTING_RANGE,{priority:-1,handler:__name(_value=>_value,"handler")})),this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,{priority:-1,handler:__name(_value=>_value,"handler")}))}};__name(_SheetPrintInterceptorService,"SheetPrintInterceptorService");let SheetPrintInterceptorService=_SheetPrintInterceptorService;var __defProp$7=Object.defineProperty,__getOwnPropDesc$7=Object.getOwnPropertyDescriptor,__decorateClass$7=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$7(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$7(target,key,result),result},"__decorateClass$7"),__decorateParam$7=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$7");let SheetsDefinedNameController=(_Y=class extends core.Disposable{constructor(_selectionManagerService,_themeService,_instanceSrv,_cmdSrv,_definedNamesService){super(),this._selectionManagerService=_selectionManagerService,this._themeService=_themeService,this._instanceSrv=_instanceSrv,this._cmdSrv=_cmdSrv,this._definedNamesService=_definedNamesService,this._init()}_init(){this.disposeWithMe(rxjs.merge(this._selectionManagerService.selectionMoveStart$,this._selectionManagerService.selectionMoving$,this._selectionManagerService.selectionMoveEnd$).pipe(rxjs.filter(params=>!!params)).subscribe(params=>{this._syncDefinedNameRange(params)})),this.disposeWithMe(this._definedNamesService.focusRange$.subscribe(async item=>{if(item==null)return;const{unitId}=item;let{formulaOrRefString}=item;if(formulaOrRefString.substring(0,1)===engineFormula.operatorToken.EQUALS&&(formulaOrRefString=formulaOrRefString.substring(1)),!engineFormula.isReferenceStrings(formulaOrRefString))return;const workbook=this._instanceSrv.getUnit(unitId),selections=await this._getSelections(workbook,unitId,formulaOrRefString);this._selectionManagerService.setSelections(selections),this._cmdSrv.executeCommand(sheets.ScrollToCellOperation.id,selections[0].range)}))}_syncDefinedNameRange(params){if(params.length===0)return;const lastSelection=params[params.length-1],workbook=this._instanceSrv.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();worksheet&&this._definedNamesService.setCurrentRange({range:lastSelection.range,unitId:workbook.getUnitId(),sheetId:worksheet.getSheetId()})}async _getSelections(workbook,unitId,formulaOrRefString){const valueArray=formulaOrRefString.split(",");let worksheet=workbook.getActiveSheet();if(!worksheet)return[];const selections=[];for(let i=0;i<valueArray.length;i++){const refString=valueArray[i].trim(),unitRange=engineFormula.deserializeRangeWithSheet(refString.trim());if(i===0){const worksheetCache=workbook.getSheetBySheetName(unitRange.sheetName);worksheetCache&&worksheet.getSheetId()!==worksheetCache.getSheetId()&&(worksheet=worksheetCache,await this._cmdSrv.executeCommand(sheets.SetWorksheetActivateCommand.id,{subUnitId:worksheet.getSheetId(),unitId}))}if(worksheet.getName()!==unitRange.sheetName)continue;let primary=null;if(i===valueArray.length-1){const range=unitRange.range,{startRow,startColumn,endRow,endColumn}=range;primary=sheets.getPrimaryForRange({startRow,startColumn,endRow,endColumn},worksheet)}selections.push({range:unitRange.range,style:sheets.getNormalSelectionStyle(this._themeService),primary})}return selections}},__name(_Y,"SheetsDefinedNameController"),_Y);SheetsDefinedNameController=__decorateClass$7([core.OnLifecycle(core.LifecycleStages.Rendered,SheetsDefinedNameController),__decorateParam$7(0,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$7(1,core.Inject(core.ThemeService)),__decorateParam$7(2,core.IUniverInstanceService),__decorateParam$7(3,core.ICommandService),__decorateParam$7(4,engineFormula.IDefinedNamesService)],SheetsDefinedNameController);var __defProp$6=Object.defineProperty,__getOwnPropDesc$6=Object.getOwnPropertyDescriptor,__decorateClass$6=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$6(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$6(target,key,result),result},"__decorateClass$6"),__decorateParam$6=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$6");let MoveRangeRenderController=(_Z=class extends core.Disposable{constructor(_context,_selectionRenderService,_selectionManagerService,_commandService){super();__publicField(this,"_initialize",__name(()=>{const disposableCollection=new core.DisposableCollection;this.disposeWithMe(this._selectionManagerService.selectionMoveEnd$.subscribe(()=>{disposableCollection.dispose(),this._selectionRenderService.getSelectionControls().forEach(controlSelection=>{disposableCollection.add(core.toDisposable(controlSelection.selectionMoved$.subscribe(_toRange=>{if(!_toRange)return;const _fromRange=controlSelection.model.getRange(),fromRange={startRow:_fromRange.startRow,startColumn:_fromRange.startColumn,endRow:_fromRange.endRow,endColumn:_fromRange.endColumn,rangeType:_fromRange.rangeType},toRange={startRow:_toRange.startRow,startColumn:_toRange.startColumn,endRow:_toRange.endRow,endColumn:_toRange.endColumn,rangeType:_fromRange.rangeType};if(fromRange.startRow===toRange.startRow&&fromRange.startColumn===toRange.startColumn||toRange.startRow<0||toRange.startColumn<0)return;const params={fromRange,toRange};this._commandService.executeCommand(sheets.MoveRangeCommand.id,params)})))})}))},"_initialize"));this._context=_context,this._selectionRenderService=_selectionRenderService,this._selectionManagerService=_selectionManagerService,this._commandService=_commandService,this._initialize()}},__name(_Z,"MoveRangeRenderController"),_Z);MoveRangeRenderController=__decorateClass$6([__decorateParam$6(1,core.Inject(ISheetSelectionRenderService)),__decorateParam$6(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$6(3,core.Inject(core.ICommandService))],MoveRangeRenderController);var __defProp$5=Object.defineProperty,__getOwnPropDesc$5=Object.getOwnPropertyDescriptor,__defNormalProp$1=__name((obj,key,value)=>key in obj?__defProp$5(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,"__defNormalProp$1"),__decorateClass$5=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$5(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$5(target,key,result),result},"__decorateClass$5"),__decorateParam$5=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$5"),__publicField$1=__name((obj,key,value)=>__defNormalProp$1(obj,typeof key!="symbol"?key+"":key,value),"__publicField$1");exports2.UniverSheetsUIPlugin=(__=class extends core.Plugin{constructor(_config={},_injector,_renderManagerService,_univerInstanceService){super(),this._config=_config,this._injector=_injector,this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService,this._config=core.Tools.deepMerge({},DefaultSheetUiConfig,this._config)}onStarting(injector){core.mergeOverrideWithDependencies([[ShortcutExperienceService],[IEditorBridgeService,{useClass:exports2.EditorBridgeService}],[ISheetClipboardService,{useClass:exports2.SheetClipboardService}],[ISheetBarService,{useClass:SheetBarService}],[IFormatPainterService,{useClass:FormatPainterService}],[ICellEditorManagerService,{useClass:CellEditorManagerService}],[IFormulaEditorManagerService,{useClass:FormulaEditorManagerService}],[IAutoFillService,{useClass:exports2.AutoFillService}],[SheetPrintInterceptorService],[IStatusBarService,{useClass:StatusBarService}],[IMarkSelectionService,{useClass:exports2.MarkSelectionService}],[exports2.HoverManagerService],[exports2.DragManagerService],[exports2.SheetCanvasPopManagerService],[exports2.CellAlertManagerService],[ActiveWorksheetController],[exports2.AutoHeightController],[exports2.FormulaEditorController],[SheetClipboardController],[exports2.SheetsRenderService],[exports2.SheetUIController,{useFactory:__name(()=>this._injector.createInstance(exports2.SheetUIController,this._config),"useFactory")}],[exports2.StatusBarController],[exports2.AutoFillController],[FormatPainterController],[SheetsDefinedNameController],[SheetPermissionPanelModel],[SheetPermissionUserManagerService],[WorksheetProtectionRenderService],[SheetPermissionInterceptorClipboardController],[exports2.SheetPermissionInterceptorBaseController],[exports2.SheetPermissionInitController]],this._config.override).forEach(d=>injector.add(d)),this._injector.add([SheetPermissionRenderManagerController,{useFactory:__name(()=>this._injector.createInstance(SheetPermissionRenderManagerController,this._config),"useFactory")}])}onReady(){this._markSheetAsFocused(),this._registerRenderBasics()}onRendered(){this._registerRenderModules()}_registerRenderBasics(){[[exports2.SheetSkeletonManagerService],[exports2.SheetRenderController],[ISheetSelectionRenderService,{useClass:exports2.SheetSelectionRenderService}]].forEach(m2=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,m2))})}_registerRenderModules(){[[exports2.HeaderMoveRenderController],[HeaderUnhideRenderController],[exports2.HeaderResizeRenderController],[SheetScrollManagerService],[exports2.SheetsScrollRenderController],[exports2.HeaderFreezeRenderController],[SheetsZoomRenderController],[FormatPainterRenderController],[HeaderMenuRenderController],[CellAlertRenderController],[ForceStringAlertRenderController],[MarkSelectionRenderController],[exports2.HoverRenderController],[exports2.DragRenderController],[ForceStringRenderController],[exports2.CellCustomRenderController],[SheetContextMenuRenderController],[MoveRangeRenderController],[EditorBridgeRenderController],[EditingRenderController],[SheetPermissionInterceptorCanvasRenderController],[SheetPermissionInterceptorFormulaRenderController],[SheetPermissionRenderController]].forEach(m2=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,m2))})}_markSheetAsFocused(){const univerInstanceService=this._univerInstanceService;univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(operators.filter(v=>!!v)).subscribe(workbook=>univerInstanceService.focusUnit(workbook.getUnitId()))}},__name(__,"UniverSheetsUIPlugin"),__),__publicField$1(exports2.UniverSheetsUIPlugin,"pluginName","SHEET_UI_PLUGIN"),__publicField$1(exports2.UniverSheetsUIPlugin,"type",core.UniverInstanceType.UNIVER_SHEET),exports2.UniverSheetsUIPlugin=__decorateClass$5([core.DependentOn(sheets.UniverSheetsPlugin),__decorateParam$5(1,core.Inject(core.Injector)),__decorateParam$5(2,engineRender.IRenderManagerService),__decorateParam$5(3,core.IUniverInstanceService)],exports2.UniverSheetsUIPlugin);var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__decorateClass$4=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$4(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$4(target,key,result),result},"__decorateClass$4"),__decorateParam$4=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$4");const SHEET_NAVIGATION_COMMANDS=[MoveSelectionCommand.id,MoveSelectionEnterAndTabCommand.id];let MobileSheetsScrollRenderController=(_$=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_commandService,_renderManagerService,_selectionManagerService,_scrollManagerService,_univerInstanceService){super(),this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._renderManagerService=_renderManagerService,this._selectionManagerService=_selectionManagerService,this._scrollManagerService=_scrollManagerService,this._univerInstanceService=_univerInstanceService,this._init()}scrollToRange(range){let{endRow,endColumn,startColumn,startRow}=range;const bounding=this._getViewportBounding();if(range.rangeType===core.RANGE_TYPE.ROW?(startColumn=0,endColumn=0):range.rangeType===core.RANGE_TYPE.COLUMN&&(startRow=0,endRow=0),bounding){const row=bounding.startRow>endRow?startRow:endRow,col=bounding.startColumn>endColumn?startColumn:endColumn;return this._scrollToCell(row,col)}else return this._scrollToCell(startRow,startColumn)}_init(){this._initCommandListener(),this._initScrollEventListener(),this._initPointerScrollEvent(),this._initSkeletonListener()}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(SHEET_NAVIGATION_COMMANDS.includes(command.id))this._scrollToSelection();else if(command.id===sheets.ScrollToCellOperation.id){const param=command.params;this.scrollToRange(param)}else if(command.id===ExpandSelectionCommand.id){const param=command.params;this._scrollToSelectionForExpand(param)}}))}_scrollToSelectionForExpand(param){setTimeout(()=>{const selection=this._selectionManagerService.getCurrentLastSelection();if(selection==null)return;const{startRow,startColumn,endRow,endColumn}=selection.range,bounds=this._getViewportBounding();if(bounds==null)return;const{startRow:viewportStartRow,startColumn:viewportStartColumn,endRow:viewportEndRow,endColumn:viewportEndColumn}=bounds;let row=0,column=0;startRow>viewportStartRow?row=endRow:endRow<viewportEndRow?row=startRow:row=viewportStartRow,startColumn>viewportStartColumn?column=endColumn:endColumn<viewportEndColumn?column=startColumn:column=viewportStartColumn,param.direction===core.Direction.DOWN?row=endRow:param.direction===core.Direction.UP?row=startRow:param.direction===core.Direction.RIGHT?column=endColumn:param.direction===core.Direction.LEFT&&(column=startColumn),this._scrollToCell(row,column)},0)}_getFreeze(){var _a2;const snapshot=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton.getWorksheetConfig();if(snapshot!=null)return snapshot.freeze}_initScrollEventListener(){const{scene}=this._context;if(scene==null)return;const viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);viewportMain&&(this.disposeWithMe(core.toDisposable(this._scrollManagerService.rawScrollInfo$.subscribe(rawScrollInfo=>{var _a2;if(rawScrollInfo==null){viewportMain.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0});return}const skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton;if(!skeleton)return;const{sheetViewStartRow,sheetViewStartColumn,offsetX,offsetY}=rawScrollInfo,{startX,startY}=skeleton.getCellByIndexWithNoHeader(sheetViewStartRow,sheetViewStartColumn),viewportScrollX=startX+offsetX,viewportScrollY=startY+offsetY;viewportMain.scrollToViewportPos({viewportScrollX,viewportScrollY})}))),this.disposeWithMe(viewportMain.onScrollAfter$.subscribeEvent(scrollAfterParam=>{var _a2;if(!scrollAfterParam)return;const skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton;if(skeleton==null)return;const sheetObject=this._getSheetObject();if(skeleton==null||sheetObject==null)return;const{viewportScrollX,viewportScrollY,scrollX,scrollY}=scrollAfterParam,{row,column,rowOffset,columnOffset}=skeleton.getDecomposedOffset(viewportScrollX,viewportScrollY),scrollInfo={sheetViewStartRow:row,sheetViewStartColumn:column,offsetX:columnOffset,offsetY:rowOffset};this._scrollManagerService.setScrollStateToCurrSheet(scrollInfo),this._scrollManagerService.validViewportScrollInfo$.next({...scrollInfo,scrollX,scrollY,viewportScrollX,viewportScrollY})})),this.disposeWithMe(viewportMain.onScrollByBar$.subscribeEvent(param=>{var _a2;const skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton;if(skeleton==null||param.isTrigger===!1)return;const sheetObject=this._getSheetObject();if(skeleton==null||sheetObject==null)return;const{viewportScrollX=0,viewportScrollY=0}=param,freeze=this._getFreeze(),{row,column,rowOffset,columnOffset}=skeleton.getDecomposedOffset(viewportScrollX,viewportScrollY);this._commandService.executeCommand(ScrollCommand.id,{sheetViewStartRow:row+((freeze==null?void 0:freeze.ySplit)||0),sheetViewStartColumn:column+((freeze==null?void 0:freeze.xSplit)||0),offsetX:columnOffset,offsetY:rowOffset})})))}_initSkeletonListener(){this.disposeWithMe(core.toDisposable(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(param=>{if(param==null)return;const scrollParam={unitId:param.unitId,sheetId:param.sheetId};this._scrollManagerService.setSearchParam(scrollParam);const sheetObject=this._getSheetObject();if(!sheetObject)return;const viewportMain=sheetObject.scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),currScrollInfo=this._scrollManagerService.getScrollStateByParam(scrollParam),{viewportScrollX,viewportScrollY}=this._scrollManagerService.calcViewportScrollFromRowColOffset(currScrollInfo);viewportMain&&(currScrollInfo?(viewportMain.viewportScrollX=viewportScrollX,viewportMain.viewportScrollY=viewportScrollY):(viewportMain.viewportScrollX=0,viewportMain.viewportScrollY=0),this._updateSceneSize(param))})))}_initPointerScrollEvent(){const sheetObject=this._getSheetObject();if(!sheetObject)return;const scrollManagerService=this._scrollManagerService,scene=sheetObject.scene,spreadsheet=sheetObject.spreadsheet,viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),lastPointerPos={x:0,y:0};let _pointerScrolling=!1;const velocity={x:0,y:0},deceleration=.95;let scrollInertiaAnimationID=null;const pointerScrollInertia=__name(()=>{if(!viewportMain)return;velocity.x*=deceleration,velocity.y*=deceleration,lastPointerPos.x+=velocity.x,lastPointerPos.y+=velocity.y;const offsetX=velocity.x,offsetY=velocity.y;(offsetY!==0||offsetX!==0)&&this._commandService.executeCommand(SetScrollRelativeCommand.id,{offsetY,offsetX}),Math.abs(velocity.x)>1||Math.abs(velocity.y)>1?scrollInertiaAnimationID=requestAnimationFrame(pointerScrollInertia):scrollInertiaAnimationID=null},"pointerScrollInertia"),cancelInertiaAnimation=__name(()=>{cancelAnimationFrame(scrollInertiaAnimationID),scrollInertiaAnimationID=null},"cancelInertiaAnimation");spreadsheet.onPointerDown$.subscribeEvent((evt,state)=>{cancelInertiaAnimation(),viewportMain&&(lastPointerPos.x=evt.offsetX,lastPointerPos.y=evt.offsetY,_pointerScrolling=!0,state.stopPropagation())}),spreadsheet.onPointerMove$.subscribeEvent((evt,state)=>{if(!_pointerScrolling||!viewportMain)return;const e=evt,deltaX=-(e.offsetX-lastPointerPos.x),deltaY=-(e.offsetY-lastPointerPos.y);velocity.x=-(e.offsetX-lastPointerPos.x),velocity.y=-(e.offsetY-lastPointerPos.y);const offsetX=deltaX,offsetY=deltaY;(deltaX!==0||deltaY!==0)&&(offsetY!==0||offsetX!==0)&&this._commandService.executeCommand(SetScrollRelativeCommand.id,{offsetY,offsetX}),scrollManagerService.getCurrentScrollState(),lastPointerPos.x=e.offsetX,lastPointerPos.y=e.offsetY,state.stopPropagation()}),spreadsheet.onPointerUp$.subscribeEvent(_evt=>{_pointerScrolling=!1,scrollInertiaAnimationID=requestAnimationFrame(pointerScrollInertia)}),spreadsheet.onPointerLeave$.subscribeEvent(()=>{_pointerScrolling=!1}),spreadsheet.onPointerOut$.subscribeEvent(()=>{_pointerScrolling=!1}),scene.onPointerOut$.subscribeEvent(()=>{_pointerScrolling=!1}),scene.onPointerCancel$.subscribeEvent(()=>{_pointerScrolling=!1})}_updateSceneSize(param){var _a2;if(param==null)return;const{unitId}=this._context,{skeleton}=param,scene=(_a2=this._renderManagerService.getRenderById(unitId))==null?void 0:_a2.scene;if(skeleton==null||scene==null)return;const{rowTotalHeight,columnTotalWidth,rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton,worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const zoomRatio=worksheet.getZoomRatio()||1;scene==null||scene.setScaleValue(zoomRatio,zoomRatio),scene==null||scene.transformByState({width:rowHeaderWidthAndMarginLeft+columnTotalWidth,height:columnHeaderHeightAndMarginTop+rowTotalHeight})}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_scrollToSelectionByDirection(range){const bounds=this._getViewportBounding();if(bounds==null)return!1;const{startRow:viewportStartRow,startColumn:viewportStartColumn,endRow:viewportEndRow,endColumn:viewportEndColumn}=bounds;let row=0,column=0;const{startRow,startColumn,endRow,endColumn}=range;startRow>=viewportStartRow&&(row=endRow),endRow<=viewportEndRow&&(row=startRow),startColumn>=viewportStartColumn&&(column=endColumn),endColumn<=viewportEndColumn&&(column=startColumn),this._scrollToCell(row,column)}_scrollToSelection(targetIsActualRowAndColumn=!0){const selection=this._selectionManagerService.getCurrentLastSelection();if(selection==null)return;const{startRow,startColumn,actualRow,actualColumn}=selection.primary,selectionStartRow=targetIsActualRowAndColumn?actualRow:startRow,selectionStartColumn=targetIsActualRowAndColumn?actualColumn:startColumn;this._scrollToCell(selectionStartRow,selectionStartColumn)}_getViewportBounding(){var _a2,_b2;const scene=(_a2=this._getSheetObject())==null?void 0:_a2.scene;if(scene==null)return;const viewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(viewport==null)return;const skeleton=(_b2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_b2.skeleton;if(skeleton==null)return;const bounds=viewport.getBounding();return skeleton.getRowColumnSegment(bounds)}_scrollToCell(row,column){var _a2,_b2,_c2,_d2;const{rowHeightAccumulation,columnWidthAccumulation}=(_b2=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton)!=null?_b2:{};if(rowHeightAccumulation==null||columnWidthAccumulation==null)return!1;const scene=(_c2=this._getSheetObject())==null?void 0:_c2.scene;if(scene==null)return!1;const viewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(viewport==null||((_d2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_d2.skeleton)==null)return!1;const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return!1;const{startColumn:freezeStartColumn,startRow:freezeStartRow,ySplit:freezeYSplit,xSplit:freezeXSplit}=worksheet.getFreeze(),bounds=this._getViewportBounding();if(bounds==null)return!1;const{startRow:viewportStartRow,startColumn:viewportStartColumn,endRow:viewportEndRow,endColumn:viewportEndColumn}=bounds;let startSheetViewRow,startSheetViewColumn;if(row>=freezeStartRow&&column>=freezeStartColumn-freezeXSplit&&(row<=viewportStartRow&&(startSheetViewRow=row),row>=viewportEndRow)){const minRowAccumulation=rowHeightAccumulation[row]-viewport.height;for(let r=viewportStartRow;r<=row;r++)if(rowHeightAccumulation[r]>=minRowAccumulation){startSheetViewRow=r+1;break}}if(column>=freezeStartColumn&&row>=freezeStartRow-freezeYSplit&&(column<=viewportStartColumn&&(startSheetViewColumn=column),column>=viewportEndColumn)){const minColumnAccumulation=columnWidthAccumulation[column]-viewport.width;for(let c=viewportStartColumn;c<=column;c++)if(columnWidthAccumulation[c]>=minColumnAccumulation){startSheetViewColumn=c+1;break}}if(startSheetViewRow===void 0&&startSheetViewColumn===void 0)return!1;const{offsetX,offsetY}=this._scrollManagerService.getCurrentScrollState()||{};return this._commandService.syncExecuteCommand(ScrollCommand.id,{sheetViewStartRow:startSheetViewRow,sheetViewStartColumn:startSheetViewColumn,offsetX:startSheetViewColumn===void 0?offsetX:0,offsetY:startSheetViewRow===void 0?offsetY:0})}},__name(_$,"MobileSheetsScrollRenderController"),_$);MobileSheetsScrollRenderController=__decorateClass$4([__decorateParam$4(1,core.Inject(exports2.SheetSkeletonManagerService)),__decorateParam$4(2,core.ICommandService),__decorateParam$4(3,engineRender.IRenderManagerService),__decorateParam$4(4,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$4(5,core.Inject(SheetScrollManagerService)),__decorateParam$4(6,core.IUniverInstanceService)],MobileSheetsScrollRenderController);const styles={mobileSheetBarContainer:"univer-mobile-sheet-bar-container",mobileSheetBarSlider:"univer-mobile-sheet-bar-slider",mobileSheetBarItem:"univer-mobile-sheet-bar-item",mobileSheetBarItemActivated:"univer-mobile-sheet-bar-item-activated"};function MobileSheetBar(){const workbook=useActiveWorkbook();return workbook?jsxRuntimeExports.jsx(MobileSheetBarImpl,{workbook}):null}__name(MobileSheetBar,"MobileSheetBar");function MobileSheetBarImpl(props){const{workbook}=props,[sheetList,setSheetList]=React.useState([]),[activeKey,setActiveKey]=React.useState(""),tabMapRef=React.useRef(new Map),commandService=core.useDependency(core.ICommandService),updateSheetItems=React.useCallback(()=>{const currentSubUnitId=workbook.getActiveSheet().getSheetId(),sheets2=workbook.getSheets(),activeSheet=workbook.getActiveSheet(),sheetListItems=sheets2.filter(sheet=>!sheet.isSheetHidden()).map((sheet,index)=>{var _a2;return{sheetId:sheet.getSheetId(),label:sheet.getName(),index,selected:activeSheet===sheet,color:(_a2=sheet.getTabColor())!=null?_a2:void 0}});if(setSheetList(sheetListItems),setActiveKey(currentSubUnitId),tabMapRef.current.has(currentSubUnitId)){const element2=tabMapRef.current.get(currentSubUnitId);element2&&element2.scrollIntoView({behavior:"smooth",block:"nearest"})}tabMapRef.current.clear()},[workbook]);React.useEffect(()=>updateSheetItems(),[updateSheetItems]);const onTabClick=React.useCallback(sheetId=>{commandService.executeCommand(sheets.SetWorksheetActiveOperation.id,{unitId:workbook.getUnitId(),subUnitId:sheetId})},[commandService,workbook]);return React.useEffect(()=>{const disposable=commandService.onCommandExecuted(commandInfo=>{switch(commandInfo.id){case sheets.SetWorksheetHideMutation.id:case sheets.RemoveSheetMutation.id:case sheets.SetWorksheetNameMutation.id:case sheets.InsertSheetMutation.id:case sheets.SetWorksheetOrderMutation.id:case sheets.SetWorksheetActiveOperation.id:updateSheetItems();break}});return()=>disposable.dispose()},[commandService,updateSheetItems]),jsxRuntimeExports.jsx("div",{className:styles.mobileSheetBarContainer,children:jsxRuntimeExports.jsx("div",{className:styles.mobileSheetBarSlider,children:sheetList.map(sheet=>jsxRuntimeExports.jsx("div",{className:clsx(styles.mobileSheetBarItem,{[styles.mobileSheetBarItemActivated]:sheet.sheetId===activeKey}),onClick:__name(()=>onTabClick(sheet.sheetId),"onClick"),ref:__name(element2=>tabMapRef.current.set(sheet.sheetId,element2),"ref"),children:sheet.label},sheet.sheetId))})})}__name(MobileSheetBarImpl,"MobileSheetBarImpl");var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3");let SheetUIMobileController=(_aa=class extends core.Disposable{constructor(_config,_injector,_componentManager,_layoutService,_commandService,_shortcutService,_menuService,_uiPartsService){super(),this._config=_config,this._injector=_injector,this._componentManager=_componentManager,this._layoutService=_layoutService,this._commandService=_commandService,this._shortcutService=_shortcutService,this._menuService=_menuService,this._uiPartsService=_uiPartsService,this._init()}_init(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts(),this._initWorkbenchParts(),this._initFocusHandler()}_initCustomComponents(){const componentManager=this._componentManager;this.disposeWithMe(componentManager.register(MENU_ITEM_INPUT_COMPONENT,MenuItemInput)),this.disposeWithMe(componentManager.register(BORDER_PANEL_COMPONENT,BorderPanel)),this.disposeWithMe(componentManager.register(COLOR_PICKER_COMPONENT,design.ColorPicker)),this.disposeWithMe(componentManager.register(FONT_FAMILY_COMPONENT,ui.FontFamily)),this.disposeWithMe(componentManager.register(FONT_FAMILY_ITEM_COMPONENT,ui.FontFamilyItem)),this.disposeWithMe(componentManager.register(FONT_SIZE_COMPONENT,ui.FontSize)),this.disposeWithMe(componentManager.register(DEFINED_NAME_CONTAINER,DefinedNameContainer))}_initCommands(){[AddWorksheetMergeAllCommand,AddWorksheetMergeCommand,AddWorksheetMergeHorizontalCommand,AddWorksheetMergeVerticalCommand,ChangeZoomRatioCommand,ExpandSelectionCommand,MoveSelectionCommand,MoveSelectionEnterAndTabCommand,RenameSheetOperation,RemoveSheetConfirmCommand,RemoveRowConfirmCommand,RemoveColConfirmCommand,HideRowConfirmCommand,HideColConfirmCommand,ScrollCommand,ScrollToCellCommand,SelectAllCommand,SetActivateCellEditOperation,sheets.SetBoldCommand,SetCellEditVisibleArrowOperation,SetCellEditVisibleOperation,SetCellEditVisibleWithF2Operation,SetRangeBoldCommand,SetRangeItalicCommand,SetRangeUnderlineCommand,SetRangeStrickThroughCommand,SetRangeSubscriptCommand,SetRangeSuperscriptCommand,SetRangeFontSizeCommand,SetRangeFontFamilyCommand,SetRangeTextColorCommand,sheets.SetItalicCommand,sheets.SetStrikeThroughCommand,sheets.SetFontFamilyCommand,sheets.SetFontSizeCommand,SetFormatPainterOperation,SetInfiniteFormatPainterCommand,SetOnceFormatPainterCommand,ApplyFormatPainterCommand,SetScrollOperation,SetScrollRelativeCommand,SetSelectionFrozenCommand,SetRowFrozenCommand,SetColumnFrozenCommand,CancelFrozenCommand,sheets.SetUnderlineCommand,SetZoomRatioCommand,SetZoomRatioOperation,ShowMenuListCommand,RefillCommand,InsertRangeMoveDownConfirmCommand,DeleteRangeMoveUpConfirmCommand,InsertRangeMoveRightConfirmCommand,DeleteRangeMoveLeftConfirmCommand,SidebarDefinedNameOperation,AutoFillCommand,AutoClearContentCommand,SheetPermissionOpenPanelOperation,SheetPermissionOpenDialogOperation,AddRangeProtectionFromToolbarCommand,AddRangeProtectionFromContextMenuCommand,ViewSheetPermissionFromContextMenuCommand,AddRangeProtectionFromSheetBarCommand,ViewSheetPermissionFromSheetBarCommand,ChangeSheetProtectionFromSheetBarCommand,DeleteRangeProtectionFromContextMenuCommand,SetRangeProtectionFromContextMenuCommand,AddWorksheetProtectionCommand,DeleteWorksheetProtectionCommand,SetWorksheetProtectionCommand,DeleteWorksheetProtectionFormSheetBarCommand,SetProtectionCommand].forEach(c=>{this.disposeWithMe(this._commandService.registerCommand(c))})}_initMenus(){const{menu={}}=this._config;[CopyMenuItemFactory].forEach(factory=>{this.disposeWithMe(this._menuService.addMenuItem(this._injector.invoke(factory),menu))})}_initShortcuts(){[MoveSelectionDownShortcutItem,MoveSelectionUpShortcutItem,MoveSelectionLeftShortcutItem,MoveSelectionRightShortcutItem,MoveSelectionTabShortcutItem,MoveSelectionTabLeftShortcutItem,MoveSelectionEnterShortcutItem,MoveSelectionEnterUpShortcutItem,MoveSelectionEndDownShortcutItem,MoveSelectionEndUpShortcutItem,MoveSelectionEndLeftShortcutItem,MoveSelectionEndRightShortcutItem,ExpandSelectionDownShortcutItem,ExpandSelectionUpShortcutItem,ExpandSelectionLeftShortcutItem,ExpandSelectionRightShortcutItem,ExpandSelectionEndDownShortcutItem,ExpandSelectionEndUpShortcutItem,ExpandSelectionEndLeftShortcutItem,ExpandSelectionEndRightShortcutItem,SelectAllShortcutItem,ZoomInShortcutItem,ZoomOutShortcutItem,ResetZoomShortcutItem,PreventDefaultResetZoomShortcutItem,PreventDefaultZoomInShortcutItem,PreventDefaultZoomOutShortcutItem,SetBoldShortcutItem,SetItalicShortcutItem,SetUnderlineShortcutItem,SetStrikeThroughShortcutItem,ClearSelectionValueShortcutItem,...generateArrowSelectionShortCutItem(),EditorCursorEnterShortcut,StartEditWithF2Shortcut,EditorCursorTabShortcut,EditorBreakLineShortcut,EditorDeleteLeftShortcut,EditorDeleteLeftShortcutInActive,EditorCursorEscShortcut,SetRowHiddenShortcutItem,SetColHiddenShortcutItem].forEach(item=>{this.disposeWithMe(this._shortcutService.registerShortcut(item))})}_initWorkbenchParts(){this._uiPartsService.registerComponent(ui.BuiltInUIPart.HEADER,()=>core.connectInjector(MobileSheetBar,this._injector))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(core.UniverInstanceType.UNIVER_SHEET,_unitId=>{}))}},__name(_aa,"SheetUIMobileController"),_aa);SheetUIMobileController=__decorateClass$3([core.OnLifecycle(core.LifecycleStages.Ready,SheetUIMobileController),__decorateParam$3(1,core.Inject(core.Injector)),__decorateParam$3(2,core.Inject(ui.ComponentManager)),__decorateParam$3(3,ui.ILayoutService),__decorateParam$3(4,core.ICommandService),__decorateParam$3(5,ui.IShortcutService),__decorateParam$3(6,ui.IMenuService),__decorateParam$3(7,ui.IUIPartsService)],SheetUIMobileController);var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2");let SheetContextMenuMobileRenderController=(_ba=class extends core.Disposable{constructor(_context,_layoutService,_contextMenuService,_selectionManagerService,_selectionRenderService,_sheetSkeletonManagerService){super(),this._context=_context,this._layoutService=_layoutService,this._contextMenuService=_contextMenuService,this._selectionManagerService=_selectionManagerService,this._selectionRenderService=_selectionRenderService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._init()}_init(){let listenToSelectionChangeEvent=!1;this.disposeWithMe(this._selectionManagerService.selectionMoveStart$.subscribe(()=>listenToSelectionChangeEvent=!0)),this.disposeWithMe(this._selectionManagerService.selectionMoveEnd$.subscribe(selectionsList=>{if(!selectionsList||listenToSelectionChangeEvent===!1)return;listenToSelectionChangeEvent=!1;const selectionRangeWithStyle=selectionsList[0];if(!selectionRangeWithStyle.primary)return;const canvasRect=this._layoutService.getContentElement().getBoundingClientRect(),range=this._selectionRenderService.attachSelectionWithCoord(selectionRangeWithStyle),rangeType=selectionRangeWithStyle.range.rangeType,{scene}=this._context,viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),viewportScrollX=(viewMain==null?void 0:viewMain.viewportScrollX)||0,viewportScrollY=(viewMain==null?void 0:viewMain.viewportScrollY)||0;let clientX=0,clientY=0;const rowHeaderWidth=this._sheetSkeletonManagerService.getCurrent().skeleton.rowHeaderWidth;switch(rangeType){case core.RANGE_TYPE.NORMAL:clientX=range.rangeWithCoord.startX+canvasRect.left-viewportScrollX,clientY=range.rangeWithCoord.endY+canvasRect.top-viewportScrollY;break;case core.RANGE_TYPE.COLUMN:clientX=range.rangeWithCoord.startX+canvasRect.left-viewportScrollX,clientY=Math.min(canvasRect.height/2,range.rangeWithCoord.endY)+40;break;case core.RANGE_TYPE.ROW:clientX=(canvasRect.width-rowHeaderWidth)/2+20,clientY=range.rangeWithCoord.endY+canvasRect.top-viewportScrollY;break;case core.RANGE_TYPE.ALL:clientX=range.rangeWithCoord.startX+canvasRect.left,clientY=range.rangeWithCoord.startY+canvasRect.top;break;default:clientX=range.rangeWithCoord.startX+canvasRect.left-viewportScrollX,clientY=range.rangeWithCoord.endY+canvasRect.top-viewportScrollY;break}clientX=core.Tools.clamp(clientX,rowHeaderWidth,canvasRect.width),clientY=core.Tools.clamp(clientY,canvasRect.top,canvasRect.height),this._contextMenuService.triggerContextMenu({clientX,clientY,preventDefault:__name(()=>{},"preventDefault"),stopPropagation:__name(()=>{},"stopPropagation")},ui.MenuPosition.CONTEXT_MENU)}))}},__name(_ba,"SheetContextMenuMobileRenderController"),_ba);SheetContextMenuMobileRenderController=__decorateClass$2([__decorateParam$2(1,ui.ILayoutService),__decorateParam$2(2,ui.IContextMenuService),__decorateParam$2(3,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$2(4,ISheetSelectionRenderService),__decorateParam$2(5,core.Inject(exports2.SheetSkeletonManagerService))],SheetContextMenuMobileRenderController);const _MobileSelectionControl=class _MobileSelectionControl extends SelectionControl{constructor(_scene,_zIndex,_isHeaderHighlight=!0,_themeService,_rangeType=core.RANGE_TYPE.NORMAL){super(_scene,_zIndex,_isHeaderHighlight,_themeService);__publicField(this,"_fillControlTopLeft");__publicField(this,"_fillControlBottomRight");__publicField(this,"_fillControlTopLeftInner");__publicField(this,"_fillControlBottomRightInner");this._scene=_scene,this._zIndex=_zIndex,this._isHeaderHighlight=_isHeaderHighlight,this._themeService=_themeService,this._rangeType=_rangeType,this.initControlPoints()}initControlPoints(){const defaultStyle=this.defaultStyle,expandCornerSize=defaultStyle.expandCornerSize||0,expandCornerInnerSize=(defaultStyle.expandCornerSize||0)/4,AutofillStrokeWidth=defaultStyle.AutofillStrokeWidth||0,stroke=defaultStyle.stroke,AutofillStroke=defaultStyle.AutofillStroke,zIndex=this.zIndex,RectCtor=engineRender.Rect;this._fillControlTopLeft=new RectCtor(SELECTION_MANAGER_KEY.fillTopLeft+zIndex,{zIndex:zIndex+2,width:expandCornerSize,height:expandCornerSize,radius:expandCornerSize/2,strokeWidth:AutofillStrokeWidth}),this._fillControlTopLeftInner=new RectCtor(SELECTION_MANAGER_KEY.fillTopLeftInner+zIndex,{zIndex:zIndex+1,width:expandCornerInnerSize,height:expandCornerInnerSize,radius:expandCornerInnerSize/2,strokeWidth:AutofillStrokeWidth}),this._fillControlBottomRight=new RectCtor(SELECTION_MANAGER_KEY.fillBottomRight+zIndex,{zIndex:zIndex+2,width:expandCornerSize,height:expandCornerSize,radius:expandCornerSize/2,strokeWidth:AutofillStrokeWidth}),this._fillControlBottomRightInner=new RectCtor(SELECTION_MANAGER_KEY.fillBottomRightInner+zIndex,{zIndex:zIndex+1,width:expandCornerInnerSize,height:expandCornerInnerSize,radius:expandCornerInnerSize/2,strokeWidth:AutofillStrokeWidth});const fillProps={fill:stroke,stroke:AutofillStroke,strokeScaleEnabled:!1};this._fillControlTopLeftInner.setProps({...fillProps}),this._fillControlBottomRightInner.setProps({...fillProps});const objs=[this._fillControlTopLeft,this._fillControlBottomRight,this._fillControlTopLeftInner,this._fillControlBottomRightInner];switch(this._rangeType){case core.RANGE_TYPE.ROW:this.rowHeaderGroup.addObjects(...objs);break;case core.RANGE_TYPE.COLUMN:this.columnHeaderGroup.addObjects(...objs);break;case core.RANGE_TYPE.NORMAL:this.selectionShapeGroup.addObjects(...objs)}this.getScene().addObjects(objs,SHEET_COMPONENT_SELECTION_LAYER_INDEX)}get fillControlTopLeft(){return this._fillControlTopLeft}set fillControlTopLeft(value){this._fillControlTopLeft=value}get fillControlBottomRight(){return this._fillControlBottomRight}set fillControlBottomRight(value){this._fillControlBottomRight=value}get rangeType(){return this._rangeType}set rangeType(value){this._rangeType=value}dispose(){var _a2,_b2;(_a2=this._fillControlBottomRight)==null||_a2.dispose(),(_b2=this._fillControlTopLeft)==null||_b2.dispose(),super.dispose()}updateRange(range){this._selectionModel.setValue(range),this._updateControl(null,this._rowHeaderWidth,this._columnHeaderHeight)}_updateControl(style,rowHeaderWidth,columnHeaderHeight){var _a2,_b2,_c2,_d2;super._updateControl(style,rowHeaderWidth,columnHeaderHeight);const defaultStyle=this.defaultStyle;style==null&&(style=defaultStyle);const{widgets=defaultStyle.widgets,hasAutoFill:autoFillEnabled=defaultStyle.hasAutoFill}=style;if(this.currentStyle=style,autoFillEnabled===!0&&!super._hasWidgets(widgets)){const{viewportScrollX,viewportScrollY}=this.getViewportMainScrollInfo(),{endX,endY}=this.selectionModel;this.transformControlPoint(viewportScrollX,viewportScrollY,endX,endY),this.fillControlTopLeft.show(),this.fillControlBottomRight.show(),this._fillControlTopLeftInner.show(),this._fillControlBottomRightInner.show()}else(_a2=this.fillControlTopLeft)==null||_a2.hide(),(_b2=this.fillControlBottomRight)==null||_b2.hide(),(_c2=this._fillControlTopLeftInner)==null||_c2.hide(),(_d2=this._fillControlBottomRightInner)==null||_d2.hide()}getViewportMainScrollInfo(){const viewMain=this.getScene().getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);return{viewportScrollX:(viewMain==null?void 0:viewMain.viewportScrollX)||0,viewportScrollY:(viewMain==null?void 0:viewMain.viewportScrollY)||0,width:(viewMain==null?void 0:viewMain.width)||0,height:(viewMain==null?void 0:viewMain.height)||0}}transformControlPoint(viewportScrollX=0,viewportScrollY=0,sheetContentWidth=0,sheetContentHeight=0){const style=this.currentStyle,rangeType=this.selectionModel.rangeType,expandCornerSizeInner=style.expandCornerSize/4,expandCornerSize=style.expandCornerSize,{startX,startY,endX,endY}=this.selectionModel,viewportSizeInfo=this.getViewportMainScrollInfo(),viewportW=viewportSizeInfo.width,viewportH=viewportSizeInfo.height;switch(rangeType){case core.RANGE_TYPE.NORMAL:this.fillControlTopLeft.transformByState({left:-expandCornerSize/2,top:-expandCornerSize/2}),this.fillControlBottomRight.transformByState({left:endX-startX-expandCornerSize/2,top:endY-startY-expandCornerSize/2}),this._fillControlTopLeftInner.transformByState({left:-expandCornerSizeInner/2,top:-expandCornerSizeInner/2}),this._fillControlBottomRightInner.transformByState({left:endX-startX-expandCornerSizeInner/2,top:endY-startY-expandCornerSizeInner/2});break;case core.RANGE_TYPE.ROW:{const left=Math.min(viewportW/2+viewportScrollX,sheetContentWidth),controlLeft=-expandCornerSize/2+left,innerLeft=-expandCornerSizeInner/2+left;this.fillControlTopLeft.transformByState({left:controlLeft,top:-expandCornerSize/2}),this.fillControlBottomRight.transformByState({left:controlLeft,top:-expandCornerSize/2+endY-startY}),this._fillControlTopLeftInner.transformByState({left:innerLeft,top:-expandCornerSizeInner/2}),this._fillControlBottomRightInner.transformByState({left:innerLeft,top:-expandCornerSizeInner/2+endY-startY})}break;case core.RANGE_TYPE.COLUMN:{const top=Math.min(+viewportH/2+viewportScrollY,sheetContentHeight),controlTop=-expandCornerSize/2+top,innerTop=-expandCornerSizeInner/2+top;this.fillControlTopLeft.transformByState({left:-expandCornerSize/2,top:controlTop}),this.fillControlBottomRight.transformByState({left:-expandCornerSize/2+endX-startX,top:controlTop}),this._fillControlTopLeftInner.transformByState({left:-expandCornerSizeInner/2,top:innerTop}),this._fillControlBottomRightInner.transformByState({left:-expandCornerSizeInner/2+endX-startX,top:innerTop})}break;default:console.error("unknown range type")}}};__name(_MobileSelectionControl,"MobileSelectionControl");let MobileSelectionControl=_MobileSelectionControl;var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1");let MobileSheetsSelectionRenderService=(_ca=class extends BaseSelectionRenderService{constructor(_context,injector,themeService,shortcutService,renderManagerService,selectionManagerService,_logService,_commandService,_contextService,_sheetSkeletonManagerService,_scrollManagerService){super(injector,themeService,shortcutService,renderManagerService);__publicField(this,"_workbookSelections");__publicField(this,"_renderDisposable",null);__publicField(this,"_expandingSelection",!1);__publicField(this,"_selectionControls",[]);__publicField(this,"expandingControlMode","bottom-right");this._context=_context,this._logService=_logService,this._commandService=_commandService,this._contextService=_contextService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._scrollManagerService=_scrollManagerService,this._workbookSelections=selectionManagerService.getWorkbookSelections(this._context.unitId),this._init()}_init(){const sheetObject=this._getSheetObject();this._initEventListeners(sheetObject),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._updateControlPointWhenScrolling()}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{if(param==null){this._logService.error("[SelectionRenderService]: should not receive null!");return}const unitId=this._context.unitId,{sheetId,skeleton}=param,{scene}=this._context,viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._changeRuntime(skeleton,scene,viewportMain),this._workbookSelections.getCurrentLastSelection()||this._commandService.syncExecuteCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId:sheetId,selections:[getTopLeftSelection(skeleton)]})}))}_initSelectionChangeListener(){this.disposeWithMe(this._workbookSelections.selectionMoveEnd$.subscribe(params=>{this._reset();for(const selectionWithStyle of params){const selectionData=attachSelectionWithCoord(selectionWithStyle,this._skeleton);this._addSelectionControlBySelectionData(selectionData)}}))}_initEventListeners(sheetObject){const{spreadsheetRowHeader,spreadsheetColumnHeader,spreadsheet,spreadsheetLeftTopPlaceholder}=sheetObject,{scene}=this._context;this._initSpreadsheetEvent(sheetObject),this.disposeWithMe(spreadsheetRowHeader==null?void 0:spreadsheetRowHeader.onPointerUp$.subscribeEvent((evt,_state)=>{if(this._normalSelectionDisabled())return;const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{row}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),row,core.RANGE_TYPE.ROW)||(this.createNewSelection(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.ROW,this._getActiveViewport(evt)),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()))})),this.disposeWithMe(spreadsheetColumnHeader==null?void 0:spreadsheetColumnHeader.onPointerUp$.subscribeEvent((evt,_state)=>{if(this._normalSelectionDisabled())return;const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),column,core.RANGE_TYPE.COLUMN)||(this.createNewSelection(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.COLUMN,this._getActiveViewport(evt)),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()))})),this.disposeWithMe(spreadsheetLeftTopPlaceholder==null?void 0:spreadsheetLeftTopPlaceholder.onPointerUp$.subscribeEvent((_evt,state)=>{if(this._normalSelectionDisabled())return;this._reset();const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,selectionWithStyle=getAllSelection(skeleton),selectionData=attachSelectionWithCoord(selectionWithStyle,skeleton);this._addSelectionControlBySelectionData(selectionData),this.refreshSelectionMoveStart(),state.stopPropagation(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}))}_initSpreadsheetEvent(sheetObject){const{spreadsheet}=sheetObject;let longPressTimer;const longPressDuration=500,pointerDownPos={x:0,y:0},clearLongPressTimer=__name(()=>{clearTimeout(longPressTimer)},"clearLongPressTimer"),createNewSelection=__name((evt,showContextMenu)=>{this.createNewSelection(evt,spreadsheet.zIndex+1,core.RANGE_TYPE.NORMAL,this._getActiveViewport(evt)),showContextMenu&&this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())},"createNewSelection");spreadsheet==null||spreadsheet.onPointerMove$.subscribeEvent((evt,_state)=>{(Math.abs(evt.offsetX-pointerDownPos.x)>10||Math.abs(evt.offsetY-pointerDownPos.y)>10)&&clearLongPressTimer()});const spreadsheetPointerDownSub=spreadsheet==null?void 0:spreadsheet.onPointerDown$.subscribeEvent((evt,state)=>{pointerDownPos.x=evt.offsetX,pointerDownPos.y=evt.offsetY,longPressTimer=setTimeout(()=>{createNewSelection(evt,!0)},longPressDuration),state.stopPropagation()}),spreadsheetPointerUpSub=spreadsheet==null?void 0:spreadsheet.onPointerUp$.subscribeEvent((evt,state)=>{if(this._normalSelectionDisabled())return;clearTimeout(longPressTimer);const edge=10;Math.abs(evt.offsetX-pointerDownPos.x)>edge||Math.abs(evt.offsetY-pointerDownPos.y)>edge||(createNewSelection(evt,!1),state.stopPropagation())});this.disposeWithMe(core.toDisposable(spreadsheetPointerDownSub)),this.disposeWithMe(core.toDisposable(spreadsheetPointerUpSub))}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(params=>this._updateSelections(params,sheets.SelectionMoveType.MOVE_START))),this.disposeWithMe(this.selectionMoving$.subscribe(params=>this._updateSelections(params,sheets.SelectionMoveType.MOVING))),this.disposeWithMe(this._contextService.subscribeContextValue$(sheets.DISABLE_NORMAL_SELECTIONS).pipe(rxjs.startWith(!1),rxjs.distinctUntilChanged()).subscribe(disabled=>{var _a2;disabled?((_a2=this._renderDisposable)==null||_a2.dispose(),this._renderDisposable=null,this._reset()):this._renderDisposable=core.toDisposable(this.selectionMoveEnd$.subscribe(params=>this._updateSelections(params,sheets.SelectionMoveType.MOVE_END)))}))}_updateSelections(selectionDataWithStyleList,type){const workbook=this._context.unit,unitId=workbook.getUnitId(),sheetId=workbook.getActiveSheet().getSheetId();selectionDataWithStyleList.length!==0&&this._commandService.executeCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId:sheetId,type,selections:selectionDataWithStyleList.map(selectionDataWithStyle=>sheets.convertSelectionDataToRange(selectionDataWithStyle))})}createNewSelection(evt,_zIndex=0,rangeType=core.RANGE_TYPE.NORMAL,viewport){this._shouldDetectMergedCells=rangeType===core.RANGE_TYPE.NORMAL;const skeleton=this._skeleton,scene=this._scene;if(!scene||!skeleton)return;viewport&&(this._activeViewport=viewport);const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,relativeCoords=scene.getRelativeToViewportCoord(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY]));let{x:viewportPosX,y:viewportPosY}=relativeCoords;const scrollXY=scene.getVpScrollXYInfoByPosToVp(relativeCoords),{scaleX,scaleY}=scene.getAncestorScale(),cursorCellRangeInfo=this._getCellRangeByCursorPosition(viewportPosX,viewportPosY,scaleX,scaleY,scrollXY);if(!cursorCellRangeInfo)return!1;const{rangeWithCoord:cursorCellRange,primaryWithCoord:primaryCursorCellRange}=cursorCellRangeInfo,cursorCellRangeWithRangeType={...cursorCellRange,rangeType};this._startRangeWhenPointerDown={...cursorCellRange,rangeType};let activeSelectionControl=this.getActiveSelectionControl();for(const control of this.getSelectionControls())if(control.model.isEqual(cursorCellRangeWithRangeType)){activeSelectionControl=control;break}(activeSelectionControl==null?void 0:activeSelectionControl.model.rangeType)!==rangeType&&(this._clearSelectionControls(),activeSelectionControl=this.newSelectionControl(scene,rangeType)),this._updateSelectionControlRange(activeSelectionControl,cursorCellRangeWithRangeType,primaryCursorCellRange),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._clearUpdatingListeners(),this._expandingSelection=!1,(rangeType===core.RANGE_TYPE.ROW||rangeType===core.RANGE_TYPE.COLUMN)&&(rangeType===core.RANGE_TYPE.ROW?viewportPosX=0:rangeType===core.RANGE_TYPE.COLUMN&&(viewportPosY=0),this._moving(viewportPosX,viewportPosY,activeSelectionControl,rangeType))}newSelectionControl(scene,rangeType){const selectionControls=this.getSelectionControls(),control=new MobileSelectionControl(scene,selectionControls.length,this._isHeaderHighlight,this._themeService,rangeType);this._selectionControls.push(control);const{expandingModeForTopLeft,expandingModeForBottomRight}=(()=>{switch(rangeType){case core.RANGE_TYPE.NORMAL:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"};case core.RANGE_TYPE.ROW:return{expandingModeForTopLeft:"top",expandingModeForBottomRight:"bottom"};case core.RANGE_TYPE.COLUMN:return{expandingModeForTopLeft:"left",expandingModeForBottomRight:"right"};case core.RANGE_TYPE.ALL:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"};default:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"}}})();return control.fillControlTopLeft.onPointerDown$.subscribeEvent(evt=>{this._expandingSelection=!0,this.expandingControlMode=expandingModeForTopLeft,this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._fillControlPointerDownHandler(evt,rangeType,this._activeViewport)}),control.fillControlBottomRight.onPointerDown$.subscribeEvent(evt=>{this._expandingSelection=!0,this.expandingControlMode=expandingModeForBottomRight,this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._fillControlPointerDownHandler(evt,rangeType,this._activeViewport)}),(rangeType===core.RANGE_TYPE.ROW||rangeType===core.RANGE_TYPE.COLUMN)&&!scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),control}_getActiveViewport(evt){const sheetObject=this._getSheetObject();return sheetObject==null?void 0:sheetObject.scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([evt.offsetX,evt.offsetY]))}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_normalSelectionDisabled(){return this._contextService.getContextValue(sheets.DISABLE_NORMAL_SELECTIONS)}getSelectionControls(){return this._selectionControls}_fillControlPointerDownHandler(evt,rangeType=core.RANGE_TYPE.NORMAL,viewport,scrollTimerType=engineRender.ScrollTimerType.ALL){var _a2,_b2,_c2;const skeleton=this._skeleton,scene=this._scene;if(!scene||!skeleton)return;viewport&&(this._activeViewport=viewport);const viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),activeSelectionControl=this.getActiveSelectionControl();if(!activeSelectionControl)return;this._changeCurrCellWhenControlPointerDown(),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._clearUpdatingListeners(),this._addEndingListeners(),this._scrollTimer=engineRender.ScrollTimer.create(this._scene,scrollTimerType),this._scrollTimer.startScroll((_a2=viewportMain==null?void 0:viewportMain.left)!=null?_a2:0,(_b2=viewportMain==null?void 0:viewportMain.top)!=null?_b2:0,viewportMain),(_c2=scene.getTransformer())==null||_c2.clearSelectedObjects();const relativeCoords=scene.getRelativeToViewportCoord(engineRender.Vector2.FromArray([evt.offsetX,evt.offsetY]));this._setupPointerMoveListener(viewportMain,activeSelectionControl,rangeType,scrollTimerType,relativeCoords.x,relativeCoords.y),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(_evt=>{this.endSelection(),this._expandingSelection=!1,this.expandingControlMode="bottom-right",this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),this._shortcutService.setDisable(!1)}),this._shortcutService.setDisable(!0)}_changeCurrCellWhenControlPointerDown(){const activeSelectionControl=this.getActiveSelectionControl(),skeleton=this._skeleton;let currCellRange;const{startRow,startColumn,endRow,endColumn}=activeSelectionControl.model;switch(this.expandingControlMode){case"top-left":currCellRange=skeleton.getCellByIndex(endRow,endColumn);break;case"bottom-right":currCellRange=skeleton.getCellByIndex(startRow,startColumn);break;case"left":currCellRange=skeleton.getCellByIndex(startRow,endColumn),currCellRange.isMerged=!1,currCellRange.isMergedMainCell=!1;break;case"right":currCellRange=skeleton.getCellByIndex(startRow,startColumn),currCellRange.isMerged=!1,currCellRange.isMergedMainCell=!1;break;case"top":currCellRange=skeleton.getCellByIndex(endRow,startColumn),currCellRange.isMerged=!1,currCellRange.isMergedMainCell=!1;break;case"bottom":currCellRange=skeleton.getCellByIndex(startRow,startColumn),currCellRange.isMerged=!1,currCellRange.isMergedMainCell=!1;break;default:currCellRange=skeleton.getCellByIndex(startRow,startColumn)}return activeSelectionControl.updateCurrCell(currCellRange),currCellRange}_moving(offsetX,offsetY,activeSelectionControl,rangeType){var _a2,_b2,_c2,_d2,_e2,_f2,_g2,_h2,_i2,_j2,_k2,_l2,_m2;this._shouldDetectMergedCells=rangeType===core.RANGE_TYPE.NORMAL;const skeleton=this._skeleton,scene=this._scene,currSelectionRange={startRow:activeSelectionControl.model.startRow,endRow:activeSelectionControl.model.endRow,startColumn:activeSelectionControl.model.startColumn,endColumn:activeSelectionControl.model.endColumn},viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),targetViewport=(_a2=this._getViewportByCell(currSelectionRange.endRow,currSelectionRange.endColumn))!=null?_a2:viewportMain,scrollXY=scene.getVpScrollXYInfoByPosToVp(engineRender.Vector2.FromArray([this._startViewportPosX,this._startViewportPosY]),targetViewport),{scaleX,scaleY}=scene.getAncestorScale();rangeType===core.RANGE_TYPE.ROW?offsetX=Number.POSITIVE_INFINITY:rangeType===core.RANGE_TYPE.COLUMN&&(offsetY=Number.POSITIVE_INFINITY);const cursorCellRangeInfo=this._getCellRangeByCursorPosition(offsetX,offsetY,scaleX,scaleY,scrollXY);if(!cursorCellRangeInfo)return!1;const{rangeWithCoord:cursorCellRange}=cursorCellRangeInfo,currCellRange=activeSelectionControl.model.currentCell,startRowOfActiveCell=(_b2=currCellRange==null?void 0:currCellRange.mergeInfo.startRow)!=null?_b2:-1,endRowOfActiveCell=(_c2=currCellRange==null?void 0:currCellRange.mergeInfo.endRow)!=null?_c2:-1,startColumnOfActiveCell=(_d2=currCellRange==null?void 0:currCellRange.mergeInfo.startColumn)!=null?_d2:-1,endColOfActiveCell=(_e2=currCellRange==null?void 0:currCellRange.mergeInfo.endColumn)!=null?_e2:-1;let newSelectionRange={startRow:Math.min(cursorCellRange.startRow,startRowOfActiveCell),startColumn:Math.min(cursorCellRange.startColumn,startColumnOfActiveCell),endRow:Math.max(cursorCellRange.endRow,endRowOfActiveCell),endColumn:Math.max(cursorCellRange.endColumn,endColOfActiveCell)};if(rangeType===core.RANGE_TYPE.NORMAL?newSelectionRange=skeleton.getSelectionMergeBounding(newSelectionRange.startRow,newSelectionRange.startColumn,newSelectionRange.endRow,newSelectionRange.endColumn):rangeType===core.RANGE_TYPE.COLUMN?newSelectionRange={startRow:Math.min(cursorCellRange.startRow,(_f2=currCellRange==null?void 0:currCellRange.actualRow)!=null?_f2:-1),startColumn:Math.min(cursorCellRange.startColumn,(_g2=currCellRange==null?void 0:currCellRange.actualColumn)!=null?_g2:-1),endRow:Math.max(cursorCellRange.endRow,(_h2=currCellRange==null?void 0:currCellRange.actualRow)!=null?_h2:-1),endColumn:Math.max(cursorCellRange.endColumn,(_i2=currCellRange==null?void 0:currCellRange.actualColumn)!=null?_i2:-1)}:rangeType===core.RANGE_TYPE.ROW&&(newSelectionRange={startRow:Math.min(cursorCellRange.startRow,(_j2=currCellRange==null?void 0:currCellRange.actualRow)!=null?_j2:-1),startColumn:Math.min(cursorCellRange.startColumn,(_k2=currCellRange==null?void 0:currCellRange.actualColumn)!=null?_k2:-1),endRow:Math.max(cursorCellRange.endRow,(_l2=currCellRange==null?void 0:currCellRange.actualRow)!=null?_l2:-1),endColumn:Math.max(cursorCellRange.endColumn,(_m2=currCellRange==null?void 0:currCellRange.actualColumn)!=null?_m2:-1)}),!newSelectionRange)return!1;const startCellXY=skeleton.getNoMergeCellPositionByIndex(newSelectionRange.startRow,newSelectionRange.startColumn),endCellXY=skeleton.getNoMergeCellPositionByIndex(newSelectionRange.endRow,newSelectionRange.endColumn),newSelectionRangeWithCoord={startColumn:newSelectionRange.startColumn,startRow:newSelectionRange.startRow,endColumn:newSelectionRange.endColumn,endRow:newSelectionRange.endRow,startY:(startCellXY==null?void 0:startCellXY.startY)||0,endY:(endCellXY==null?void 0:endCellXY.endY)||0,startX:(startCellXY==null?void 0:startCellXY.startX)||0,endX:(endCellXY==null?void 0:endCellXY.endX)||0};(currSelectionRange.startRow!==newSelectionRange.startRow||currSelectionRange.startColumn!==newSelectionRange.startColumn||currSelectionRange.endRow!==newSelectionRange.endRow||currSelectionRange.endColumn!==newSelectionRange.endColumn)&&activeSelectionControl&&(this._updateSelectionControlRange(activeSelectionControl,newSelectionRangeWithCoord),this._selectionMoving$.next(this.getSelectionDataWithStyle()))}_updateControlPointWhenScrolling(){const{scene}=this._context;if(!scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN))return;const sub=this._scrollManagerService.validViewportScrollInfo$.subscribe(param=>{var _a2;if(param==null)return;const{viewportScrollX,viewportScrollY}=param,activeControl=this.getActiveSelectionControl();if(activeControl==null)return;const skeleton=(_a2=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a2.skeleton,sheetContentHeight=skeleton==null?void 0:skeleton.rowTotalHeight,sheetContentWidth=skeleton==null?void 0:skeleton.columnTotalWidth,rangeType=activeControl.rangeType;rangeType===core.RANGE_TYPE.COLUMN?activeControl.transformControlPoint(0,viewportScrollY,sheetContentWidth,sheetContentHeight):rangeType===core.RANGE_TYPE.ROW&&activeControl.transformControlPoint(viewportScrollX,0,sheetContentWidth,sheetContentHeight)});this.disposeWithMe(core.toDisposable(sub))}},__name(_ca,"MobileSheetsSelectionRenderService"),_ca);MobileSheetsSelectionRenderService=__decorateClass$1([__decorateParam$1(1,core.Inject(core.Injector)),__decorateParam$1(2,core.Inject(core.ThemeService)),__decorateParam$1(3,ui.IShortcutService),__decorateParam$1(4,engineRender.IRenderManagerService),__decorateParam$1(5,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$1(6,core.ILogService),__decorateParam$1(7,core.ICommandService),__decorateParam$1(8,core.IContextService),__decorateParam$1(9,core.Inject(exports2.SheetSkeletonManagerService)),__decorateParam$1(10,core.Inject(SheetScrollManagerService))],MobileSheetsSelectionRenderService);var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__defNormalProp2=__name((obj,key,value)=>key in obj?__defProp2(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,"__defNormalProp"),__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam"),__publicField2=__name((obj,key,value)=>__defNormalProp2(obj,typeof key!="symbol"?key+"":key,value),"__publicField");exports2.UniverSheetsMobileUIPlugin=(_da=class extends core.Plugin{constructor(_config={},_injector,_renderManagerService,_univerInstanceService){super(),this._config=_config,this._injector=_injector,this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService,this._config=core.Tools.deepMerge({},DefaultSheetUiConfig,this._config)}onStarting(){[[ShortcutExperienceService],[ISheetClipboardService,{useClass:exports2.SheetClipboardService}],[ISheetBarService,{useClass:SheetBarService}],[IFormatPainterService,{useClass:FormatPainterService}],[IAutoFillService,{useClass:exports2.AutoFillService}],[SheetPrintInterceptorService],[ISheetSelectionRenderService,{useClass:MobileSheetsSelectionRenderService}],[IStatusBarService,{useClass:StatusBarService}],[IMarkSelectionService,{useClass:exports2.MarkSelectionService}],[exports2.HoverManagerService],[exports2.DragManagerService],[exports2.SheetCanvasPopManagerService],[exports2.CellAlertManagerService],[ActiveWorksheetController],[exports2.AutoHeightController],[SheetClipboardController],[exports2.SheetsRenderService],[SheetUIMobileController,{useFactory:__name(()=>this._injector.createInstance(SheetUIMobileController,this._config),"useFactory")}],[exports2.StatusBarController],[SheetPermissionPanelModel],[SheetPermissionUserManagerService],[WorksheetProtectionRenderService],[SheetPermissionInterceptorClipboardController],[exports2.SheetPermissionInterceptorBaseController],[exports2.SheetPermissionInitController]].forEach(d=>this._injector.add(d)),this._injector.add([SheetPermissionRenderManagerController,{useFactory:__name(()=>this._injector.createInstance(SheetPermissionRenderManagerController,this._config),"useFactory")}])}onReady(){this._markSheetAsFocused(),this._registerRenderBasics()}onRendered(){this._registerRenderModules()}_registerRenderBasics(){[[exports2.SheetSkeletonManagerService],[exports2.SheetRenderController],[ISheetSelectionRenderService,{useClass:MobileSheetsSelectionRenderService}],[SheetScrollManagerService]].forEach(renderDep=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,renderDep))})}_registerRenderModules(){[[exports2.HeaderMoveRenderController],[exports2.HeaderFreezeRenderController],[MobileSheetsScrollRenderController],[SheetsZoomRenderController],[FormatPainterRenderController],[CellAlertRenderController],[ForceStringAlertRenderController],[MarkSelectionRenderController],[exports2.HoverRenderController],[exports2.DragRenderController],[ForceStringRenderController],[exports2.CellCustomRenderController],[SheetContextMenuMobileRenderController],[SheetPermissionInterceptorCanvasRenderController],[SheetPermissionInterceptorFormulaRenderController],[SheetPermissionRenderController]].forEach(renderModule=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,renderModule))})}_markSheetAsFocused(){const univerInstanceService=this._univerInstanceService;univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(operators.filter(v=>!!v)).subscribe(workbook=>{univerInstanceService.focusUnit(workbook.getUnitId())})}},__name(_da,"UniverSheetsMobileUIPlugin"),_da),__publicField2(exports2.UniverSheetsMobileUIPlugin,"pluginName","SHEET_UI_PLUGIN"),__publicField2(exports2.UniverSheetsMobileUIPlugin,"type",core.UniverInstanceType.UNIVER_SHEET),exports2.UniverSheetsMobileUIPlugin=__decorateClass([core.DependentOn(sheets.UniverSheetsPlugin,ui.UniverMobileUIPlugin),__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,engineRender.IRenderManagerService),__decorateParam(3,core.IUniverInstanceService)],exports2.UniverSheetsMobileUIPlugin),exports2.APPLY_TYPE=APPLY_TYPE,exports2.AddRangeProtectionCommand=AddRangeProtectionCommand,exports2.AddRangeProtectionFromContextMenuCommand=AddRangeProtectionFromContextMenuCommand,exports2.AddRangeProtectionFromSheetBarCommand=AddRangeProtectionFromSheetBarCommand,exports2.AddRangeProtectionFromToolbarCommand=AddRangeProtectionFromToolbarCommand,exports2.AddWorksheetMergeAllCommand=AddWorksheetMergeAllCommand,exports2.AddWorksheetMergeCommand=AddWorksheetMergeCommand,exports2.AddWorksheetMergeHorizontalCommand=AddWorksheetMergeHorizontalCommand,exports2.AddWorksheetMergeVerticalCommand=AddWorksheetMergeVerticalCommand,exports2.AddWorksheetProtectionCommand=AddWorksheetProtectionCommand,exports2.ApplyFormatPainterCommand=ApplyFormatPainterCommand,exports2.AutoClearContentCommand=AutoClearContentCommand,exports2.AutoFillCommand=AutoFillCommand,exports2.BaseSelectionRenderService=BaseSelectionRenderService,exports2.COPY_TYPE=COPY_TYPE,exports2.CancelFrozenCommand=CancelFrozenCommand,exports2.CellAlertType=CellAlertType,exports2.CellEditorManagerService=CellEditorManagerService,exports2.ChangeSheetProtectionFromSheetBarCommand=ChangeSheetProtectionFromSheetBarCommand,exports2.ChangeZoomRatioCommand=ChangeZoomRatioCommand,exports2.DATA_TYPE=DATA_TYPE,exports2.DeleteRangeMoveLeftConfirmCommand=DeleteRangeMoveLeftConfirmCommand,exports2.DeleteRangeMoveUpConfirmCommand=DeleteRangeMoveUpConfirmCommand,exports2.DeleteRangeProtectionFromContextMenuCommand=DeleteRangeProtectionFromContextMenuCommand,exports2.DeleteRangeSelectionCommand=DeleteRangeSelectionCommand,exports2.DeleteWorksheetProtectionCommand=DeleteWorksheetProtectionCommand,exports2.DeleteWorksheetProtectionFormSheetBarCommand=DeleteWorksheetProtectionFormSheetBarCommand,exports2.ExpandSelectionCommand=ExpandSelectionCommand,exports2.FONT_FAMILY_COMPONENT=FONT_FAMILY_COMPONENT,exports2.FONT_FAMILY_ITEM_COMPONENT=FONT_FAMILY_ITEM_COMPONENT,exports2.FONT_SIZE_COMPONENT=FONT_SIZE_COMPONENT,exports2.HideColConfirmCommand=HideColConfirmCommand,exports2.HideRowConfirmCommand=HideRowConfirmCommand,exports2.IAutoFillService=IAutoFillService,exports2.ICellEditorManagerService=ICellEditorManagerService,exports2.IEditorBridgeService=IEditorBridgeService,exports2.IFormulaEditorManagerService=IFormulaEditorManagerService,exports2.IMarkSelectionService=IMarkSelectionService,exports2.ISheetClipboardService=ISheetClipboardService,exports2.ISheetSelectionRenderService=ISheetSelectionRenderService,exports2.InsertRangeMoveDownConfirmCommand=InsertRangeMoveDownConfirmCommand,exports2.InsertRangeMoveRightConfirmCommand=InsertRangeMoveRightConfirmCommand,exports2.JumpOver=JumpOver,exports2.MobileSheetBar=MobileSheetBar,exports2.MoveSelectionCommand=MoveSelectionCommand,exports2.MoveSelectionEnterAndTabCommand=MoveSelectionEnterAndTabCommand,exports2.PASTE_SPECIAL_MENU_ID=PASTE_SPECIAL_MENU_ID,exports2.PREDEFINED_HOOK_NAME=PREDEFINED_HOOK_NAME,exports2.RefillCommand=RefillCommand,exports2.RemoveColConfirmCommand=RemoveColConfirmCommand,exports2.RemoveRowConfirmCommand=RemoveRowConfirmCommand,exports2.RemoveSheetConfirmCommand=RemoveSheetConfirmCommand,exports2.RenameSheetOperation=RenameSheetOperation,exports2.RenderSheetContent=RenderSheetContent,exports2.RenderSheetFooter=RenderSheetFooter,exports2.RenderSheetHeader=RenderSheetHeader,exports2.ResetScrollCommand=ResetScrollCommand,exports2.SHEET_UI_PLUGIN_NAME=SHEET_UI_PLUGIN_NAME,exports2.SHEET_VIEW_KEY=SHEET_VIEW_KEY,exports2.ScrollCommand=ScrollCommand,exports2.ScrollToCellCommand=ScrollToCellCommand,exports2.ScrollToRangeOperation=ScrollToRangeOperation,exports2.SelectAllCommand=SelectAllCommand,exports2.SelectionShape=SelectionControl,exports2.SetActivateCellEditOperation=SetActivateCellEditOperation,exports2.SetCellEditVisibleArrowOperation=SetCellEditVisibleArrowOperation,exports2.SetCellEditVisibleOperation=SetCellEditVisibleOperation,exports2.SetCellEditVisibleWithF2Operation=SetCellEditVisibleWithF2Operation,exports2.SetColumnFrozenCommand=SetColumnFrozenCommand,exports2.SetFormatPainterOperation=SetFormatPainterOperation,exports2.SetInfiniteFormatPainterCommand=SetInfiniteFormatPainterCommand,exports2.SetOnceFormatPainterCommand=SetOnceFormatPainterCommand,exports2.SetProtectionCommand=SetProtectionCommand,exports2.SetRangeBoldCommand=SetRangeBoldCommand,exports2.SetRangeFontFamilyCommand=SetRangeFontFamilyCommand,exports2.SetRangeFontSizeCommand=SetRangeFontSizeCommand,exports2.SetRangeItalicCommand=SetRangeItalicCommand,exports2.SetRangeProtectionCommand=SetRangeProtectionCommand,exports2.SetRangeProtectionFromContextMenuCommand=SetRangeProtectionFromContextMenuCommand,exports2.SetRangeStrickThroughCommand=SetRangeStrickThroughCommand,exports2.SetRangeSubscriptCommand=SetRangeSubscriptCommand,exports2.SetRangeSuperscriptCommand=SetRangeSuperscriptCommand,exports2.SetRangeTextColorCommand=SetRangeTextColorCommand,exports2.SetRangeUnderlineCommand=SetRangeUnderlineCommand,exports2.SetRowFrozenCommand=SetRowFrozenCommand,exports2.SetScrollOperation=SetScrollOperation,exports2.SetScrollRelativeCommand=SetScrollRelativeCommand,exports2.SetSelectionFrozenCommand=SetSelectionFrozenCommand,exports2.SetWorksheetProtectionCommand=SetWorksheetProtectionCommand,exports2.SetZoomRatioCommand=SetZoomRatioCommand,exports2.SetZoomRatioOperation=SetZoomRatioOperation,exports2.SheetBar=SheetBar,exports2.SheetCopyCommand=SheetCopyCommand,exports2.SheetCutCommand=SheetCutCommand,exports2.SheetMenuPosition=SheetMenuPosition,exports2.SheetPasteBesidesBorderCommand=SheetPasteBesidesBorderCommand,exports2.SheetPasteColWidthCommand=SheetPasteColWidthCommand,exports2.SheetPasteCommand=SheetPasteCommand,exports2.SheetPasteFormatCommand=SheetPasteFormatCommand,exports2.SheetPasteShortKeyCommand=SheetPasteShortKeyCommand,exports2.SheetPasteValueCommand=SheetPasteValueCommand,exports2.SheetPermissionOpenDialogOperation=SheetPermissionOpenDialogOperation,exports2.SheetPermissionOpenPanelOperation=SheetPermissionOpenPanelOperation,exports2.SheetPrintInterceptorService=SheetPrintInterceptorService,exports2.SheetsUIPart=SheetsUIPart,exports2.ShowMenuListCommand=ShowMenuListCommand,exports2.SidebarDefinedNameOperation=SidebarDefinedNameOperation,exports2.VIEWPORT_KEY=SHEET_VIEWPORT_KEY,exports2.ViewSheetPermissionFromContextMenuCommand=ViewSheetPermissionFromContextMenuCommand,exports2.ViewSheetPermissionFromSheetBarCommand=ViewSheetPermissionFromSheetBarCommand,exports2.attachPrimaryWithCoord=attachPrimaryWithCoord,exports2.attachRangeWithCoord=attachRangeWithCoord,exports2.attachSelectionWithCoord=attachSelectionWithCoord,exports2.checkInHeaderRanges=checkInHeaderRanges,exports2.deriveStateFromActiveSheet$=deriveStateFromActiveSheet$,exports2.getAllSelection=getAllSelection,exports2.getAutoFillRepeatRange=getAutoFillRepeatRange,exports2.getCoordByCell=getCoordByCell,exports2.getCoordByOffset=getCoordByOffset,exports2.getCurrentRangeDisable$=getCurrentRangeDisable$,exports2.getEditorObject=getEditorObject,exports2.getRepeatRange=getRepeatRange,exports2.getSheetObject=getSheetObject,exports2.getTopLeftSelection=getTopLeftSelection,exports2.getTransformCoord=getTransformCoord,exports2.mergeSetRangeValues=mergeSetRangeValues,exports2.rangeToDiscreteRange=rangeToDiscreteRange,exports2.useActiveWorkbook=useActiveWorkbook,exports2.useActiveWorksheet=useActiveWorksheet,exports2.useHighlightRange=useHighlightRange,exports2.useWorkbooks=useWorkbooks,exports2.virtualizeDiscreteRanges=virtualizeDiscreteRanges,exports2.whenFormulaEditorActivated=whenFormulaEditorActivated,exports2.whenSheetEditorFocused=whenSheetEditorFocused,Object.defineProperty(exports2,Symbol.toStringTag,{value:"Module"})});