@univerjs/sheets-ui 0.2.3 → 0.2.4-alpha.0

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 (65) hide show
  1. package/lib/cjs/index.js +15 -15
  2. package/lib/es/index.js +6106 -6082
  3. package/lib/types/commands/commands/__tests__/create-command-test-bed.d.ts +2 -3
  4. package/lib/types/commands/commands/__tests__/create-selection-command-test-bed.d.ts +12 -12
  5. package/lib/types/commands/operations/cell-edit.operation.d.ts +2 -0
  6. package/lib/types/common/utils.d.ts +1 -2
  7. package/lib/types/controllers/auto-fill.controller.d.ts +1 -2
  8. package/lib/types/controllers/auto-height.controller.d.ts +1 -2
  9. package/lib/types/controllers/clipboard/clipboard.controller.d.ts +1 -2
  10. package/lib/types/controllers/clipboard/utils.d.ts +1 -2
  11. package/lib/types/controllers/editor/__tests__/create-test-bed.d.ts +1 -2
  12. package/lib/types/controllers/editor/editing.render-controller.d.ts +24 -9
  13. package/lib/types/controllers/format-painter/format-painter.controller.d.ts +1 -2
  14. package/lib/types/controllers/hover-render.controller.d.ts +2 -2
  15. package/lib/types/controllers/menu/__tests__/create-menu-test-bed.d.ts +6 -6
  16. package/lib/types/controllers/menu/border.menu.d.ts +1 -1
  17. package/lib/types/controllers/menu/clear.menu.d.ts +1 -1
  18. package/lib/types/controllers/menu/delete.menu.d.ts +1 -1
  19. package/lib/types/controllers/menu/insert.menu.d.ts +1 -1
  20. package/lib/types/controllers/menu/menu-util.d.ts +1 -2
  21. package/lib/types/controllers/menu/menu.d.ts +1 -2
  22. package/lib/types/controllers/menu/merge.menu.d.ts +1 -1
  23. package/lib/types/controllers/menu/permission-menu-util.d.ts +1 -1
  24. package/lib/types/controllers/menu/permission.menu.d.ts +1 -1
  25. package/lib/types/controllers/menu/sheet.menu.d.ts +1 -1
  26. package/lib/types/controllers/mobile/mobile-sheet-ui.controller.d.ts +1 -2
  27. package/lib/types/controllers/permission/sheet-permission-interceptor-base.controller.d.ts +2 -0
  28. package/lib/types/controllers/permission/sheet-permission-interceptor-formula-render.controller.d.ts +1 -2
  29. package/lib/types/controllers/permission/sheet-permission-render.controller.d.ts +1 -2
  30. package/lib/types/controllers/render-controllers/editor-bridge.render-controller.d.ts +7 -5
  31. package/lib/types/controllers/render-controllers/freeze.render-controller.d.ts +3 -4
  32. package/lib/types/controllers/render-controllers/mobile/mobile-scroll.render-controller.d.ts +2 -2
  33. package/lib/types/controllers/render-controllers/scroll.render-controller.d.ts +3 -4
  34. package/lib/types/controllers/sheet-ui.controller.d.ts +1 -2
  35. package/lib/types/controllers/utils/range-tools.d.ts +1 -2
  36. package/lib/types/controllers/utils/selections-tools.d.ts +1 -2
  37. package/lib/types/mobile-sheets-ui-plugin.d.ts +1 -2
  38. package/lib/types/services/auto-fill/auto-fill.service.d.ts +2 -3
  39. package/lib/types/services/auto-fill/type.d.ts +1 -2
  40. package/lib/types/services/canvas-pop-manager.service.d.ts +1 -2
  41. package/lib/types/services/cell-alert-manager.service.d.ts +1 -1
  42. package/lib/types/services/clipboard/__tests__/clipboard-test-bed.d.ts +7 -8
  43. package/lib/types/services/clipboard/clipboard.service.d.ts +2 -3
  44. package/lib/types/services/drag-manager.service.d.ts +1 -3
  45. package/lib/types/services/editor/cell-editor-manager.service.d.ts +2 -3
  46. package/lib/types/services/editor/formula-editor-manager.service.d.ts +2 -3
  47. package/lib/types/services/editor-bridge.service.d.ts +7 -5
  48. package/lib/types/services/format-painter/format-painter.service.d.ts +1 -1
  49. package/lib/types/services/hover-manager.service.d.ts +1 -3
  50. package/lib/types/services/mark-selection/mark-selection.service.d.ts +1 -1
  51. package/lib/types/services/permission/worksheet-permission-render.service.d.ts +1 -1
  52. package/lib/types/services/scroll-manager.service.d.ts +7 -6
  53. package/lib/types/services/selection/base-selection-render.service.d.ts +5 -5
  54. package/lib/types/services/selection/mobile-selection-render.service.d.ts +3 -4
  55. package/lib/types/services/selection/selection-render-model.d.ts +8 -30
  56. package/lib/types/services/selection/selection-render.service.d.ts +1 -2
  57. package/lib/types/services/selection/selection-shape-extension.d.ts +1 -2
  58. package/lib/types/services/sheet-bar/sheet-bar.service.d.ts +2 -3
  59. package/lib/types/services/sheet-skeleton-manager.service.d.ts +2 -3
  60. package/lib/types/services/sheets-render.service.d.ts +1 -2
  61. package/lib/types/services/shortcut-experience.service.d.ts +1 -2
  62. package/lib/types/services/status-bar.service.d.ts +2 -3
  63. package/lib/types/sheets-ui-plugin.d.ts +1 -2
  64. package/lib/umd/index.js +13 -13
  65. package/package.json +23 -25
package/lib/cjs/index.js CHANGED
@@ -1,12 +1,12 @@
1
- "use strict";var cc=Object.defineProperty;var dc=(n,i,e)=>i in n?cc(n,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[i]=e;var E=(n,i,e)=>dc(n,typeof i!="symbol"?i+"":i,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const oe=require("@univerjs/docs"),a=require("@univerjs/core"),P=require("@univerjs/engine-render"),m=require("@univerjs/sheets"),k=require("@wendellhu/redi"),O=require("rxjs"),R=require("@univerjs/ui"),tt=require("@univerjs/engine-numfmt"),yr=require("@univerjs/docs-ui"),j=require("@wendellhu/redi/react-bindings"),al=require("rxjs/operators"),te=require("@univerjs/design"),$=require("@univerjs/engine-formula"),V=require("react"),ge=require("clsx"),uc="SheetUI";var cl=(n=>(n.FILTER_PANEL_EMBED_POINT="filter-panel-embed-point",n))(cl||{});function Mr(n,i){if(n==null)return;const e=i.getRenderById(n);if(e==null)return;const{mainComponent:t,scene:o,engine:r,components:s}=e,l=t,c=s.get(oe.DOCS_VIEW_KEY.BACKGROUND);return{document:l,docBackground:c,scene:o,engine:r}}var hc=Object.defineProperty,mc=Object.getOwnPropertyDescriptor,gc=(n,i,e,t)=>{for(var o=t>1?void 0:t?mc(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&hc(i,e,o),o},pc=(n,i)=>(e,t)=>i(e,t,n);exports.SheetSkeletonManagerService=class extends a.Disposable{constructor(e,t){super();E(this,"_currentSkeletonSearchParam",{sheetId:""});E(this,"_sheetSkeletonParam",[]);E(this,"_currentSkeleton$",new O.BehaviorSubject(null));E(this,"currentSkeleton$",this._currentSkeleton$.asObservable());E(this,"_currentSkeletonBefore$",new O.BehaviorSubject(null));E(this,"currentSkeletonBefore$",this._currentSkeletonBefore$.asObservable());this._context=e,this._injector=t,this.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(){return this.getCurrent().skeleton}getCurrent(){return this._getSkeleton(this._currentSkeletonSearchParam)}getWorksheetSkeleton(e){return this._getSkeleton({sheetId:e})}getUnitSkeleton(e,t){const o=this._getSkeleton({sheetId:t});return o!=null&&(o.unitId=e),o}setCurrent(e){this._setCurrent(e)}_setCurrent(e){const t=this._getSkeleton(e);if(t!=null)this._reCalculate(t);else{const{sheetId:l}=e,d=this._context.unit.getSheetBySheetId(e.sheetId);if(d==null)return;const u=this._buildSkeleton(d);this._sheetSkeletonParam.push({sheetId:l,skeleton:u,dirty:!1})}this._currentSkeletonSearchParam=e;const o=this._context.unitId,r=this._currentSkeletonSearchParam.sheetId,s=this.getUnitSkeleton(o,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 o=this._getSkeleton(e);o!=null&&(o.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(o=>o.sheetId===e.sheetId);t>-1&&(this._sheetSkeletonParam[t].skeleton.dispose(),this._sheetSkeletonParam.splice(t,1))}attachRangeWithCoord(e){const t=this.getCurrentSkeleton();return Or(t,e)}_getSkeleton(e){const t=this._sheetSkeletonParam.find(o=>o.sheetId===e.sheetId);return t!=null&&(t.commandId=e.commandId),t}_buildSkeleton(e){const t=e.getConfig();return this._injector.createInstance(P.SpreadsheetSkeleton,e,t,e.getCellMatrix(),this._context.unit.getStyles())}};exports.SheetSkeletonManagerService=gc([pc(1,k.Inject(k.Injector))],exports.SheetSkeletonManagerService);function Or(n,i){const{startRow:e,startColumn:t,endRow:o,endColumn:r,rangeType:s}=i,l=n.getNoMergeCellPositionByIndex(e,t),c=n.getNoMergeCellPositionByIndex(o,r);return{startRow:e,startColumn:t,endRow:o,endColumn:r,rangeType:s,startY:(l==null?void 0:l.startY)||0,endY:(c==null?void 0:c.endY)||0,startX:(l==null?void 0:l.startX)||0,endX:(c==null?void 0:c.endX)||0}}var fc=Object.defineProperty,Sc=Object.getOwnPropertyDescriptor,vc=(n,i,e,t)=>{for(var o=t>1?void 0:t?Sc(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&fc(i,e,o),o},gs=(n,i)=>(e,t)=>i(e,t,n);let Re=class{constructor(n,i){E(this,"_scrollInfoMap",new Map);E(this,"_scrollInfo$",new O.BehaviorSubject(null));E(this,"rawScrollInfo$",this._scrollInfo$.asObservable());E(this,"validViewportScrollInfo$",new O.BehaviorSubject(null));E(this,"_searchParamForScroll",null);this._univerInstanceService=n,this._renderManagerService=i}dispose(){this._scrollInfo$.complete()}setSearchParam(n){this._searchParamForScroll=n}setSearchParamAndRefresh(n){this._searchParamForScroll=n,this._notifyCurrentScrollInfo(n)}getScrollInfoByParam(n){return this._getCurrentScroll(n)}getCurrentScrollInfo(){return this._getCurrentScroll(this._searchParamForScroll)}setScrollInfoToSnapshot(n){if(this._searchParamForScroll==null)return;const{unitId:i,sheetId:e}=this._searchParamForScroll,t=this._univerInstanceService.getUniverSheetInstance(i),o=t==null?void 0:t.getSheetBySheetId(e),r=o==null?void 0:o.getConfig();r&&(r.scrollLeft=n.viewportScrollX||0,r.scrollTop=n.viewportScrollY||0)}setScrollInfoAndEmitEvent(n){this._setScrollInfo(n,!0)}setScrollInfoToCurrSheetAndEmitEvent(n){this._searchParamForScroll!=null&&this._setScrollInfo({...this._searchParamForScroll,...n},!0)}justSetScrollInfoToCurrSheet(n){this._searchParamForScroll!=null&&this._setScrollInfo({...this._searchParamForScroll,...n},!1)}clear(){this._searchParamForScroll!=null&&this._clearByParam(this._searchParamForScroll)}calcViewportScrollFromRowColOffset(n){var g;const{unitId:i}=n;if(this._scrollInfoMap.get(i)==null)return{scrollTop:0,scrollLeft:0};let{sheetViewStartColumn:t,sheetViewStartRow:o,offsetX:r,offsetY:s}=n;o=o||0,s=s||0;const l=(g=this._renderManagerService.withCurrentTypeOfUnit(a.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:g.getCurrentSkeleton(),c=(l==null?void 0:l.rowHeightAccumulation[o-1])||0,u=((l==null?void 0:l.columnWidthAccumulation[t-1])||0)+r,h=c+s;return{overallScrollX:u,overallScrollY:h}}_setScrollInfo(n,i=!0){const{unitId:e,sheetId:t,sheetViewStartColumn:o,sheetViewStartRow:r,offsetX:s,offsetY:l}=n;this._scrollInfoMap.has(e)||this._scrollInfoMap.set(e,new Map);const c=this._scrollInfoMap.get(e),d=this.calcViewportScrollFromRowColOffset(n),u={sheetViewStartRow:r,sheetViewStartColumn:o,offsetX:s,offsetY:l,viewportScrollX:d.overallScrollX,viewportScrollY:d.overallScrollY};c.set(t,u),i===!0&&this._notifyCurrentScrollInfo({unitId:e,sheetId:t})}_clearByParam(n){this._setScrollInfo({...n,sheetViewStartRow:0,sheetViewStartColumn:0,offsetX:0,offsetY:0}),this._notifyCurrentScrollInfo(n)}_getCurrentScroll(n){var t;if(n==null)return;const{unitId:i,sheetId:e}=n;return(t=this._scrollInfoMap.get(i))==null?void 0:t.get(e)}_notifyCurrentScrollInfo(n){const i=this._getCurrentScroll(n);this._scrollInfo$.next(i)}};Re=vc([gs(0,a.IUniverInstanceService),gs(1,P.IRenderManagerService)],Re);const nt={id:"sheet.operation.set-scroll",type:a.CommandType.OPERATION,handler:(n,i)=>{if(i==null)return!1;const e=n.get(Re),r=n.get(a.IUniverInstanceService).getUniverSheetInstance(i.unitId).getSheetBySheetId(i.sheetId),{xSplit:s,ySplit:l}=r.getConfig().freeze;return e.setScrollInfoAndEmitEvent({unitId:i.unitId,sheetId:i.sheetId,offsetX:i.offsetX,offsetY:i.offsetY,sheetViewStartRow:i.sheetViewStartRow-l,sheetViewStartColumn:i.sheetViewStartColumn-s}),!0}},ut={id:"sheet.command.set-scroll-relative",type:a.CommandType.COMMAND,handler:async(n,i)=>{const e=n.get(a.ICommandService),t=n.get(Re),o=n.get(a.IUniverInstanceService),r=m.getSheetCommandTarget(o);if(!r)return!1;const{unitId:s,subUnitId:l,worksheet:c}=r,{xSplit:d,ySplit:u}=c.getConfig().freeze,h=t.getCurrentScrollInfo(),{offsetX:g=0,offsetY:p=0}=i||{},{sheetViewStartRow:f=0,sheetViewStartColumn:S=0,offsetX:v=0,offsetY:C=0}=h||{};return e.executeCommand(nt.id,{unitId:s,sheetId:l,sheetViewStartRow:f+u,sheetViewStartColumn:S+d,offsetX:v+g,offsetY:C+p})}},je={id:"sheet.command.scroll-view",type:a.CommandType.COMMAND,handler:(n,i)=>{if(!i)return!1;const e=n.get(a.IUniverInstanceService),t=n.get(Re),o=m.getSheetCommandTarget(e);if(!o)return!1;const{workbook:r,worksheet:s}=o,l=t.getCurrentScrollInfo();if(!s)return!1;const{sheetViewStartRow:c,sheetViewStartColumn:d,offsetX:u,offsetY:h}=i,{sheetViewStartColumn:g,sheetViewStartRow:p,offsetX:f,offsetY:S}=l||{},{xSplit:v,ySplit:C}=s.getConfig().freeze;return n.get(a.ICommandService).syncExecuteCommand(nt.id,{unitId:r.getUnitId(),sheetId:s.getSheetId(),sheetViewStartRow:c!=null?c:(p!=null?p:0)+C,sheetViewStartColumn:d!=null?d:(g!=null?g:0)+v,offsetX:u!=null?u:f,offsetY:h!=null?h:S})}},Ar={id:"sheet.command.scroll-to-cell",type:a.CommandType.COMMAND,handler:(n,i)=>{const e=n.get(a.IUniverInstanceService);return n.get(P.IRenderManagerService).getRenderById(e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports.SheetsScrollRenderController).scrollToRange(i.range)}},Cc={id:"sheet.command.scroll-view-reset",type:a.CommandType.COMMAND,handler:async n=>{const i=n.get(a.IUniverInstanceService),e=m.getSheetCommandTarget(i);if(!e)return!1;const{subUnitId:t,unitId:o}=e;return n.get(a.ICommandService).executeCommand(nt.id,{unitId:o,sheetId:t,sheetViewStartRow:0,sheetViewStartColumn:0})}};var _c=Object.defineProperty,Ic=Object.getOwnPropertyDescriptor,bc=(n,i,e,t)=>{for(var o=t>1?void 0:t?Ic(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&_c(i,e,o),o},ps=(n,i)=>(e,t)=>i(e,t,n);let Yt=class{constructor(n,i){E(this,"_current",null);E(this,"_shortcutParam",[]);this._univerInstanceService=n,this._localeService=i}dispose(){this._shortcutParam=[]}getCurrentBySearch(n){return this._getCurrentBySearch(n)}getCurrent(){return this._getCurrentBySearch(this._current)}addOrUpdate(n){const i=this._getCurrentBySearch({unitId:n.unitId,sheetId:n.sheetId,keycode:n.keycode});if(i!=null){const e=this._shortcutParam.indexOf(i);this._shortcutParam.splice(e,1)}return this._shortcutParam.push(n),i}remove(n){if(n==null)return;const i=this._getCurrentBySearch(n);if(i==null)return;const e=this._shortcutParam.indexOf(i);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)}};Yt=bc([ps(0,a.IUniverInstanceService),ps(1,k.Inject(a.LocaleService))],Yt);var Ho=(n=>(n.MergeAll="mergeAll",n.MergeVertical="mergeVertical",n.MergeHorizontal="mergeHorizontal",n))(Ho||{});function dt(n,i,e,t,o=!0,r=1,s=!0){let l={...n};t==null&&(t={startRow:0,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1});let c;switch(i){case a.Direction.UP:for(c=n.startRow-r;c>-1&&!e.getRowVisible(c);)c-=1;c>=t.startRow?(l.startRow=c,l.endRow=c):s&&(l.startRow=t.endRow,l.endRow=t.endRow,o&&(l=dt(l,a.Direction.LEFT,e,t,!1)));break;case a.Direction.DOWN:for(c=n.endRow+r;c<e.getRowCount()&&!e.getRowVisible(c);)c+=1;c<=t.endRow?(l.startRow=c,l.endRow=c):s&&(l.startRow=t.startRow,l.endRow=t.startRow,o&&(l=dt(l,a.Direction.RIGHT,e,t,!1)));break;case a.Direction.LEFT:for(c=n.startColumn-r;c>-1&&!e.getColVisible(c);)c-=1;c>=t.startColumn?(l.startColumn=c,l.endColumn=c):s&&(l.startColumn=t.endColumn,l.endColumn=t.endColumn,o&&(l=dt(l,a.Direction.UP,e,t,!1)));break;case a.Direction.RIGHT:for(c=n.endColumn+r;c<e.getColumnCount()&&!e.getColVisible(c);)c+=1;c<=t.endColumn?(l.startColumn=c,l.endColumn=c):s&&(l.startColumn=t.startColumn,l.endColumn=t.startColumn,o&&(l=dt(l,a.Direction.DOWN,e,t,!1)));break}return l}function Nr(n,i,e){const t={...n},{startRow:o,startColumn:r,endRow:s,endColumn:l}=Un(n,i,e);let c=pn(e,o,r,s,l).hasValue,d=!0,u=!0;for(;u;){if(a.Direction.UP===i){let h=t.startRow-1;for(;h>-1&&!e.getRowVisible(h);)h-=1;if(h===-1){u=!1;break}const{hasValue:g,matrix:p}=pn(e,h,t.startColumn,h,t.endColumn);if(c&&!g&&!d){u=!1;break}else{if(p.getLength()!==0){let f=h;p.forValue(S=>{f=Math.min(S,f)}),t.startRow=f}else t.startRow=h;if(t.endRow=t.startRow,!c&&g){u=!1;break}c=g,d=!1}}if(a.Direction.DOWN===i){let h=t.endRow+1;for(;h<e.getRowCount()&&!e.getRowVisible(h);)h+=1;if(h===e.getRowCount()){u=!1;break}const{hasValue:g,matrix:p}=pn(e,h,t.startColumn,h,t.endColumn);if(c&&!g&&!d){u=!1;break}else{if(p.getLength()!==0){let f=h;p.forValue((S,v,C)=>{f=Math.max(S+(C.rowSpan||1)-1,f)}),t.endRow=f}else t.endRow=h;if(t.startRow=t.endRow,!c&&g){u=!1;break}c=g,d=!1}}if(a.Direction.LEFT===i){let h=t.startColumn-1;for(;h>-1&&!e.getColVisible(h);)h-=1;if(h===-1){u=!1;break}const{hasValue:g,matrix:p}=pn(e,t.startRow,h,t.endRow,h);if(c&&!g&&!d){u=!1;break}else{if(p.getLength()!==0){let f=h;p.forValue((S,v)=>{f=Math.min(v,f)}),t.startColumn=f}else t.startColumn=h;if(t.endColumn=t.startColumn,!c&&g){u=!1;break}c=g,d=!1}}if(a.Direction.RIGHT===i){let h=t.endColumn+1;for(;h<e.getColumnCount()&&!e.getColVisible(h);)h+=1;if(h===e.getColumnCount()){u=!1;break}const{hasValue:g,matrix:p}=pn(e,t.startRow,h,t.endRow,h);if(c&&!g&&!d){u=!1;break}else{if(p.getLength()!==0){let f=h;p.forValue((S,v,C)=>{f=Math.max(v+(C.colSpan||1)-1,f)}),t.endColumn=f}else t.endColumn=h;if(t.startColumn=t.endColumn,!c&&g){u=!1;break}c=g,d=!1}}}return m.alignToMergedCellsBorders(t,e,!0)}function dl(n,i,e){return dt(n,i,e,void 0,!1,1,!1)}function Rc(n,i,e){const t=Nr(n,i,e);return m.alignToMergedCellsBorders(a.Rectangle.union(t,n),e,!0)}function Tc(n,i,e){const t=dl(n,i,e),o={startRow:Math.min(n.startRow,t.startRow),startColumn:Math.min(n.startColumn,t.startColumn),endRow:Math.max(n.endRow,t.endRow),endColumn:Math.max(n.endColumn,t.endColumn)};return m.alignToMergedCellsBorders(a.Rectangle.union(n,o),e)}function Ec(n,i,e,t){const o=a.getReverseDirection(e),r=Nr(Un(n,o,t),e,t);return e===a.Direction.UP&&r.startRow<=n.startRow?m.alignToMergedCellsBorders({...i,startColumn:n.startColumn,endColumn:n.endColumn},t,!0):e===a.Direction.DOWN&&r.endRow>=n.endRow?m.alignToMergedCellsBorders({...i,startColumn:n.startColumn,endColumn:n.endColumn},t,!0):e===a.Direction.LEFT&&r.startColumn<=n.startColumn?m.alignToMergedCellsBorders({...i,startRow:n.startRow,endRow:n.endRow},t,!0):e===a.Direction.RIGHT&&r.endColumn>=n.endColumn?m.alignToMergedCellsBorders({...i,startRow:n.startRow,endRow:n.endRow},t,!0):a.Rectangle.union(a.Rectangle.clone(i),r)}function wc(n,i,e){const t=a.getReverseDirection(i),o=Un(n,t,e),r=Un(n,i,e),s=dl(o,i,e);return m.alignToMergedCellsBorders(a.Rectangle.union(r,s),e,!1)}function ul(n,i,e){const{left:t,right:o,up:r,down:s}=i,l=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((p,f,S)=>{Rn(S)&&(u.startRow=Math.min(p,u.startRow),u.startColumn=Math.min(f,u.startColumn),u.endColumn=Math.max(f,u.endColumn),d=!0)})}if(s&&u.endRow!==l-1){const h=u.endRow+1;e.getMatrixWithMergedCells(h,u.startColumn,h,u.endColumn).forValue((p,f,S)=>{Rn(S)&&(u.endRow=Math.max(p+(S.rowSpan!==void 0?S.rowSpan-1:0),u.endRow),u.startColumn=Math.min(f,u.startColumn),u.endColumn=Math.max(f,u.endColumn),d=!0)})}if(t&&u.startColumn!==0){const h=u.startColumn-1;e.getMatrixWithMergedCells(u.startRow,h,u.endRow,h).forValue((p,f,S)=>{Rn(S)&&(u.startColumn=Math.min(f,u.startColumn),u.startRow=Math.min(p,u.startRow),u.endRow=Math.max(p,u.endRow),d=!0)})}if(o&&u.endColumn!==c-1){const h=u.endColumn+1;e.getMatrixWithMergedCells(u.startRow,h,u.endRow,h).forValue((p,f,S)=>{Rn(S)&&(u.endColumn=Math.max(f+(S.colSpan!==void 0?S.colSpan-1:0),u.endColumn),u.startRow=Math.min(p,u.startRow),u.endRow=Math.max(p,u.endRow),d=!0)})}}return u}function fs(n){return{startRow:0,startColumn:0,endRow:n.getRowCount()-1,endColumn:n.getColumnCount()-1,rangeType:a.RANGE_TYPE.ALL}}function Un(n,i,e){let t;switch(i){case a.Direction.UP:t={startRow:n.startRow,startColumn:n.startColumn,endRow:n.startRow,endColumn:n.endColumn,rangeType:a.RANGE_TYPE.NORMAL};break;case a.Direction.DOWN:t={startRow:n.endRow,startColumn:n.startColumn,endRow:n.endRow,endColumn:n.endColumn,rangeType:a.RANGE_TYPE.NORMAL};break;case a.Direction.LEFT:t={startRow:n.startRow,startColumn:n.startColumn,endRow:n.endRow,endColumn:n.startColumn,rangeType:a.RANGE_TYPE.NORMAL};break;case a.Direction.RIGHT:t={startRow:n.startRow,startColumn:n.endColumn,endRow:n.endRow,endColumn:n.endColumn,rangeType:a.RANGE_TYPE.NORMAL};break;default:throw new Error("Invalid direction")}return m.alignToMergedCellsBorders(t,e,!1)}function pn(n,i,e,t,o){let r=!1;const s=n.getMatrixWithMergedCells(i,e,t,o).forValue((l,c,d)=>{if(Rn(d))return r=!0,!1});return{hasValue:r,matrix:s}}function nr(n,i,e){const t=a.Rectangle.clone(n);if(i==null)return t;switch(e){case a.Direction.UP:case a.Direction.DOWN:t.startColumn=t.endColumn=i.actualColumn;break;case a.Direction.LEFT:case a.Direction.RIGHT:t.startRow=t.endRow=i.actualRow;break}return t}function Pc(n,i,e){const{primary:t,range:o}=n,r=a.Rectangle.clone(o);switch(i){case a.Direction.UP:case a.Direction.DOWN:r.startRow=t.startRow,r.endRow=t.endRow;break;case a.Direction.LEFT:case a.Direction.RIGHT:r.startColumn=t.startColumn,r.endColumn=t.endColumn;break}const s=Un(r,i,e);switch(i){case a.Direction.DOWN:return o.startRow<s.startRow;case a.Direction.UP:return o.endRow>s.endRow;case a.Direction.LEFT:return s.endColumn<o.endColumn;case a.Direction.RIGHT:return s.startColumn>o.startColumn}}function hl(n,i){let e=n[0].startRow,t=n[0].endRow;n.forEach(r=>{const{startRow:s,endRow:l}=r;e=Math.min(e,s),t=Math.max(t,l)});const o=new Array(t-e+1).fill(!1);return i.forEach(r=>{const{startRow:s,endRow:l}=r;for(let c=Math.max(s,e);c<=Math.min(l,t);c++)o[c-e]=!0}),n.every(r=>{const{startRow:s,endRow:l}=r;for(let c=s;c<=l;c++)if(!o[c-e])return!1;return!0})}function ml(n,i){let e=n[0].startColumn,t=n[0].endColumn;n.forEach(r=>{const{startColumn:s,endColumn:l}=r;e=Math.min(e,s),t=Math.max(t,l)});const o=new Array(t-e+1).fill(!1);return i.forEach(r=>{const{startColumn:s,endColumn:l}=r;for(let c=Math.max(s,e);c<=Math.min(l,t);c++)o[c-e]=!0}),n.every(r=>{const{startColumn:s,endColumn:l}=r;for(let c=s;c<=l;c++)if(!o[c-e])return!1;return!0})}function xr(n,i){return i?n==="mergeAll"?i.filter(e=>!(e.startRow===e.endRow&&e.startColumn===e.endColumn)):n==="mergeVertical"?i.filter(e=>e.startRow!==e.endRow):n==="mergeHorizontal"?i.filter(e=>e.startColumn!==e.endColumn):i:null}function Rn(n){return n.v!==void 0&&n.v!==null&&n.v!==""||n.p!==void 0}var Ze=(n=>(n[n.moveStopeOne=0]="moveStopeOne",n[n.moveGap=1]="moveGap",n[n.moveStepPage=2]="moveStepPage",n[n.moveStepEnd=3]="moveStepEnd",n))(Ze||{});const ye={id:"sheet.command.move-selection",type:a.CommandType.COMMAND,handler:async(n,i)=>{if(!i)return!1;const e=m.getSheetCommandTarget(n.get(a.IUniverInstanceService));if(!e)return!1;const{workbook:t,worksheet:o}=e,r=m.getSelectionsService(n).getCurrentLastSelection();if(!r)return!1;const{direction:s,jumpOver:l}=i,{range:c,primary:d}=r,u=nr(c,d,s),h=l===1?Nr(u,s,o):dt(u,s,o),g=m.getCellAtRowCol(h.startRow,h.startColumn,o);return a.Rectangle.equals(g,u)?!1:(n.get(Yt).remove({unitId:t.getUnitId(),sheetId:o.getSheetId(),keycode:R.KeyCode.TAB}),n.get(a.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:t.getUnitId(),subUnitId:o.getSheetId(),selections:[{range:a.Rectangle.clone(g),primary:{startRow:g.startRow,startColumn:g.startColumn,endRow:g.endRow,endColumn:g.endColumn,actualRow:h.startRow,actualColumn:h.startColumn,isMerged:g.isMerged,isMergedMainCell:g.startRow===h.startRow&&g.startColumn===h.startColumn}}]}))}},Ge={id:"sheet.command.move-selection-enter-tab",type:a.CommandType.COMMAND,handler:async(n,i)=>{if(!i)return!1;const e=m.getSheetCommandTarget(n.get(a.IUniverInstanceService));if(!e)return!1;const{workbook:t,worksheet:o}=e,r=m.getSelectionsService(n).getCurrentLastSelection();if(!r)return!1;const s=t.getUnitId(),l=o.getSheetId();if(!r)return!1;const{direction:c,keycode:d}=i,{range:u,primary:h}=r;let g=nr(u,h,c);const p=n.get(Yt),f=p.getCurrentBySearch({unitId:s,sheetId:l,keycode:R.KeyCode.TAB});let S;const{startRow:v,endRow:C,startColumn:I,endColumn:b}=u;if(a.Rectangle.equals(u,h)){if(d===R.KeyCode.TAB)f==null&&p.addOrUpdate({unitId:s,sheetId:l,keycode:R.KeyCode.TAB,selection:r});else{const y=f==null?void 0:f.selection;if(y!=null){const{range:M,primary:A}=y;g=nr(M,A,c)}p.remove({unitId:s,sheetId:l,keycode:R.KeyCode.TAB})}const T=dt(g,c,o),w=m.getCellAtRowCol(T.startRow,T.startColumn,o);if(a.Rectangle.equals(w,g))return!1;S={range:a.Rectangle.clone(w),primary:{startRow:w.startRow,startColumn:w.startColumn,endRow:w.endRow,endColumn:w.endColumn,actualRow:T.startRow,actualColumn:T.startColumn,isMerged:w.isMerged,isMergedMainCell:w.startRow===T.startRow&&w.startColumn===T.startColumn}}}else{p.remove({unitId:s,sheetId:l,keycode:R.KeyCode.TAB});const T=a.Tools.deepClone(h),w=dt({startRow:T.startRow,startColumn:T.startColumn,endRow:T.endRow,endColumn:T.endColumn},c,o,{startRow:v,endRow:C,startColumn:I,endColumn:b}),y=m.getCellAtRowCol(w.startRow,w.startColumn,o);S={range:a.Rectangle.clone(u),primary:{startRow:y.startRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.endColumn,actualRow:w.startRow,actualColumn:w.startColumn,isMerged:y.isMerged,isMergedMainCell:y.startRow===w.startRow&&y.startColumn===w.startColumn}}}return n.get(a.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:s,subUnitId:l,selections:[S]})}},Ae={id:"sheet.command.expand-selection",type:a.CommandType.COMMAND,handler:async(n,i)=>{if(!i)return!1;const e=m.getSheetCommandTarget(n.get(a.IUniverInstanceService));if(!e)return!1;const{worksheet:t,unitId:o,subUnitId:r}=e,s=m.getSelectionsService(n).getCurrentLastSelection();if(!s)return!1;const{range:l,primary:c}=s,{jumpOver:d,direction:u}=i,g=Pc(s,u,t)?d===1?Ec(l,{...a.Rectangle.clone(c),rangeType:a.RANGE_TYPE.NORMAL},u,t):wc(l,u,t):d===1?Rc(l,u,t):Tc(l,u,t);return a.Rectangle.equals(g,l)?!1:n.get(a.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:o,subUnitId:r,selections:[{range:g,primary:c}]})}};let Le=[],wi="";const Vo={id:"sheet.command.select-all",type:a.CommandType.COMMAND,onDispose(){Le=[],wi=""},handler:async(n,i={expandToGapFirst:!0,loop:!1})=>{const e=m.getSelectionsService(n).getCurrentLastSelection(),t=m.getSheetCommandTarget(n.get(a.IUniverInstanceService));if(!t)return!1;const{worksheet:o,unitId:r,subUnitId:s}=t;if(!e||!o)return!1;const l=`${r}|${s}`;l!==wi&&(Le=[],wi=l);const c=o.getMaxRows(),d=o.getMaxColumns(),{expandToGapFirst:u,loop:h}=i,{range:g,primary:p}=e,f=g.endColumn===d-1&&g.endRow===c-1&&g.startRow===0&&g.startColumn===0;Le.some(v=>a.Rectangle.equals(v,g))||(Le=[],Le.push(g));let S;if(f)if(h){if(Le.findIndex(C=>a.Rectangle.equals(C,g))!==Le.length-1)return!1;S=Le[0]}else return!1;else u?(S=ul(g,{left:!0,right:!0,up:!0,down:!0},o),a.Rectangle.equals(S,g)&&(S=fs(o))):S=fs(o);return Le.some(v=>a.Rectangle.equals(v,S))||Le.push(S),n.get(a.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:r,subUnitId:s,selections:[{range:S,primary:p}]})}};var me=(n=>(n.MAIN="__SpreadsheetRender__",n.ROW="__SpreadsheetRowHeader__",n.COLUMN="__SpreadsheetColumnHeader__",n.LEFT_TOP="__SpreadsheetLeftTopPlaceholder__",n))(me||{}),gl=(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))(gl||{});const Ss=0,pl=1,ht=10,or=[10,400],yc=11,vs=12;function Mc(n){return typeof n.isMainScene>"u"}function Ke(n,i){const e=n instanceof a.Workbook?n:n.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!e)return null;const t=e.getUnitId();let o,r,s,l;if(Mc(i)){const g=i.getRenderById(t);if(g==null)return null;o=g.components,o=g.components,r=g.mainComponent,s=g.scene,l=g.engine}else o=i.components,r=i.mainComponent,s=i.scene,l=i.engine;if(!o||!r)return null;const c=r,d=o.get(me.ROW),u=o.get(me.COLUMN),h=o.get(me.LEFT_TOP);return{spreadsheet:c,spreadsheetRowHeader:d,spreadsheetColumnHeader:u,spreadsheetLeftTopPlaceholder:h,scene:s,engine:l}}function ir(n,i,e,t){const{startX:o,startY:r,endX:s,endY:l}=t.getCellByIndex(n,i);return{startX:o,startY:r,endX:s,endY:l}}function Xe(n,i,e,t,o,r){const s=e.getRelativeToViewportCoord(P.Vector2.FromArray([n,i])),{x:l,y:c}=s,d=e.getVpScrollXYInfoByPosToVp(s,o),{scaleX:u,scaleY:h}=e.getAncestorScale(),g=t.getCellPositionByOffset(l,c,u,h,d,r),{row:p,column:f}=g,S=t.getNoMergeCellPositionByIndex(p,f),{startX:v,startY:C,endX:I,endY:b}=S;return{startX:v,startY:C,endX:I,endY:b,row:p,column:f}}function Pn(n,i,e,t){const o=e.getRelativeToViewportCoord(P.Vector2.FromArray([n,i])),r=e.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),s=e.getVpScrollXYInfoByPosToVp(o,r),{scaleX:l,scaleY:c}=e.getAncestorScale(),{x:d,y:u}=s,h=n/l+d,g=i/c+u;return{x:h,y:g}}var Oc=Object.defineProperty,Ac=Object.getOwnPropertyDescriptor,Nc=(n,i,e,t)=>{for(var o=t>1?void 0:t?Ac(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&Oc(i,e,o),o},fn=(n,i)=>(e,t)=>i(e,t,n);const xc=[ye.id,Ge.id];exports.SheetsScrollRenderController=class extends a.Disposable{constructor(i,e,t,o,r,s){super(),this._context=i,this._injector=e,this._sheetSkeletonManagerService=t,this._commandService=o,this._renderManagerService=r,this._scrollManagerService=s,this._init()}scrollToRange(i){let{endRow:e,endColumn:t,startColumn:o,startRow:r}=i;const s=this._getViewportBounding();if(i.rangeType===a.RANGE_TYPE.ROW?(o=0,t=0):i.rangeType===a.RANGE_TYPE.COLUMN&&(r=0,e=0),s){const l=s.startRow>e?r:e,c=s.startColumn>t?o:t;return this._scrollToCell(l,c)}else return this._scrollToCell(r,o)}_init(){this._initCommandListener(),this._initScrollEventListener(),this._scrollSubscribeBinding(),this._initSkeletonListener()}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(i=>{if(xc.includes(i.id))this._scrollToSelection();else if(i.id===m.ScrollToCellOperation.id){const e=i.params;this.scrollToRange(e)}else if(i.id===Ae.id){const e=i.params;this._scrollToSelectionForExpand(e)}}))}_scrollToSelectionForExpand(i){setTimeout(()=>{const e=this._getSelectionsService().getCurrentLastSelection();if(e==null)return;const{startRow:t,startColumn:o,endRow:r,endColumn:s}=e.range,l=this._getViewportBounding();if(l==null)return;const{startRow:c,startColumn:d,endRow:u,endColumn:h}=l;let g=0,p=0;t>c?g=r:r<u?g=t:g=c,o>d?p=s:s<h?p=o:p=d,i.direction===a.Direction.DOWN?g=r:i.direction===a.Direction.UP?g=t:i.direction===a.Direction.RIGHT?p=s:i.direction===a.Direction.LEFT&&(p=o),this._scrollToCell(g,p)},0)}_getFreeze(){var e;const i=(e=this._sheetSkeletonManagerService.getCurrent())==null?void 0:e.skeleton.getWorksheetConfig();if(i!=null)return i.freeze}_initScrollEventListener(){var t;const i=(t=this._getSheetObject())==null?void 0:t.scene;if(i==null)return;const e=i.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);e&&(this.disposeWithMe(e.onScrollAfter$.subscribeEvent(o=>{var f;const r=(f=this._sheetSkeletonManagerService.getCurrent())==null?void 0:f.skeleton;if(r==null||o.isTrigger===!1)return;const s=this._getSheetObject();if(r==null||s==null)return;const{viewportScrollX:l=0,viewportScrollY:c=0}=o,{row:d,column:u,rowOffset:h,columnOffset:g}=r.getDecomposedOffset(l,c),p={sheetViewStartRow:d,sheetViewStartColumn:u,offsetX:g,offsetY:h,viewportScrollX:l,viewportScrollY:c};this._scrollManagerService.justSetScrollInfoToCurrSheet(p),this._scrollManagerService.validViewportScrollInfo$.next({scrollX:o.scrollX||0,scrollY:o.scrollY||0,viewportScrollX:o.viewportScrollX||0,viewportScrollY:o.viewportScrollY||0})})),this.disposeWithMe(e.onScrollByBar$.subscribeEvent(o=>{var f;const r=(f=this._sheetSkeletonManagerService.getCurrent())==null?void 0:f.skeleton;if(r==null||o.isTrigger===!1)return;const s=this._getSheetObject();if(r==null||s==null)return;const{viewportScrollX:l=0,viewportScrollY:c=0}=o,d=this._getFreeze(),{row:u,column:h,rowOffset:g,columnOffset:p}=r.getDecomposedOffset(l,c);this._commandService.executeCommand(je.id,{sheetViewStartRow:u+((d==null?void 0:d.ySplit)||0),sheetViewStartColumn:h+((d==null?void 0:d.xSplit)||0),offsetX:p,offsetY:g})})))}_scrollSubscribeBinding(){const{scene:i}=this._context;if(!i)return;const e=i.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);e&&this.disposeWithMe(a.toDisposable(this._scrollManagerService.rawScrollInfo$.subscribe(t=>{var f;const o=(f=this._sheetSkeletonManagerService.getCurrent())==null?void 0:f.skeleton;if(!o)return;if(t==null){e.scrollTo({x:0,y:0});return}const{sheetViewStartRow:r,sheetViewStartColumn:s,offsetX:l,offsetY:c}=t,{startX:d,startY:u}=o.getCellByIndexWithNoHeader(r,s),h=d+l,g=u+c,p=e.transViewportScroll2ScrollValue(h,g);e.scrollTo({x:p.x,y:p.y})})))}_initSkeletonListener(){this.disposeWithMe(a.toDisposable(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(i=>{if(i==null)return;this._scrollManagerService.setSearchParam(i);const e=this._getSheetObject();if(!e)return;const o=e.scene.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),r=this._scrollManagerService.getScrollInfoByParam(i);o&&(o.viewportScrollX=(r==null?void 0:r.viewportScrollX)||0,o.viewportScrollY=(r==null?void 0:r.viewportScrollY)||0,this._updateSceneSize(i))})))}_updateSceneSize(i){var g;if(i==null)return;const{unitId:e}=this._context,{skeleton:t}=i,o=(g=this._renderManagerService.getRenderById(e))==null?void 0:g.scene;if(t==null||o==null)return;const{rowTotalHeight:r,columnTotalWidth:s,rowHeaderWidthAndMarginLeft:l,columnHeaderHeightAndMarginTop:c}=t,u=this._context.unit.getActiveSheet();if(!u)return;const h=u.getZoomRatio()||1;o==null||o.setScaleValue(h,h),o==null||o.transformByState({width:l+s,height:c+r})}_getSheetObject(){return Ke(this._context.unit,this._context)}_scrollToSelectionByDirection(i){const e=this._getViewportBounding();if(e==null)return!1;const{startRow:t,startColumn:o,endRow:r,endColumn:s}=e;let l=0,c=0;const{startRow:d,startColumn:u,endRow:h,endColumn:g}=i;d>=t&&(l=h),h<=r&&(l=d),u>=o&&(c=g),g<=s&&(c=u),this._scrollToCell(l,c)}_scrollToSelection(i=!0){const e=this._getSelectionsService().getCurrentLastSelection();if(e==null)return;const{startRow:t,startColumn:o,actualRow:r,actualColumn:s}=e.primary,l=i?r:t,c=i?s:o;this._scrollToCell(l,c)}_getSelectionsService(){return m.getSelectionsService(this._injector)}_getViewportBounding(){var r,s;const i=(r=this._getSheetObject())==null?void 0:r.scene;if(i==null)return;const e=i.getViewport(P.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 o=e.getBounding();return t.getRowColumnSegment(o)}_scrollToCell(i,e){var y,M,A,N;const{rowHeightAccumulation:t,columnWidthAccumulation:o}=(M=(y=this._sheetSkeletonManagerService.getCurrent())==null?void 0:y.skeleton)!=null?M:{};if(t==null||o==null)return!1;const r=(A=this._getSheetObject())==null?void 0:A.scene;if(r==null)return!1;const s=r.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(s==null||((N=this._sheetSkeletonManagerService.getCurrent())==null?void 0:N.skeleton)==null)return!1;const c=this._context.unit.getActiveSheet();if(!c)return!1;const{startColumn:d,startRow:u,ySplit:h,xSplit:g}=c.getFreeze(),p=this._getViewportBounding();if(p==null)return!1;const{startRow:f,startColumn:S,endRow:v,endColumn:C}=p;let I,b;if(i>=u&&e>=d-g&&(i<=f&&(I=i),i>=v)){const x=t[i]-s.height;for(let D=f;D<=i;D++)if(t[D]>=x){I=D+1;break}}if(e>=d&&i>=u-h&&(e<=S&&(b=e),e>=C)){const x=o[e]-s.width;for(let D=S;D<=e;D++)if(o[D]>=x){b=D+1;break}}if(I===void 0&&b===void 0)return!1;const{offsetX:T,offsetY:w}=this._scrollManagerService.getCurrentScrollInfo()||{};return this._commandService.syncExecuteCommand(je.id,{sheetViewStartRow:I,sheetViewStartColumn:b,offsetX:b===void 0?T:0,offsetY:I===void 0?w:0})}};exports.SheetsScrollRenderController=Nc([fn(1,k.Inject(k.Injector)),fn(2,k.Inject(exports.SheetSkeletonManagerService)),fn(3,a.ICommandService),fn(4,P.IRenderManagerService),fn(5,k.Inject(Re))],exports.SheetsScrollRenderController);var bo=(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))(bo||{}),Vt=(n=>(n[n.SomeCollaborator=0]="SomeCollaborator",n[n.AllCollaborator=1]="AllCollaborator",n[n.OneSelf=2]="OneSelf",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(Vt||{}),J=(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.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(J||{}),be=(n=>(n[n.Reader=0]="Reader",n[n.Editor=1]="Editor",n[n.Owner=2]="Owner",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(be||{}),ie=(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))(ie||{});function Dc(n){return n.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).pipe(O.switchMap(i=>i?i.activeSheet$.pipe(O.map(e=>e?{workbook:i,worksheet:e}:null)):O.of(null)))}function Te(n,i,e){return Dc(n).pipe(O.switchMap(t=>t?e(t):O.of(i)))}function ne(n,i={}){const t=n.get(a.IUniverInstanceService).getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([o.currentUser$,t]).pipe(O.switchMap(([r,s])=>s?s.activeSheet$.pipe(O.switchMap(l=>{if(!l)return O.of(!0);const c=n.get(m.SheetsSelectionsService),d=n.get(m.RangeProtectionRuleModel),u=n.get(m.WorksheetProtectionRuleModel),g=n.get(a.IContextService).subscribeContextValue$(a.FOCUSING_COMMON_DRAWINGS).pipe(O.startWith(!1));return O.combineLatest([c.selectionMoveEnd$,g]).pipe(O.switchMap(([p,f])=>{if(f)return O.of(!0);const S=s.getUnitId(),v=l.getSheetId(),C=n.get(a.IPermissionService),{workbookTypes:I=[m.WorkbookEditablePermission],worksheetTypes:b,rangeTypes:T}=i,w=[];if(I==null||I.forEach(N=>{w.push(new N(S).id)}),b==null||b.forEach(N=>{w.push(new N(S,v).id)}),u.getRule(S,v))return C.composePermission$(w).pipe(O.map(N=>N.some(x=>x.value===!1)));const M=p==null?void 0:p.map(N=>N.range),A=d.getSubunitRuleList(S,v).filter(N=>M==null?void 0:M.some(x=>N.ranges.some(D=>a.Rectangle.intersects(x,D))));return T==null||T.forEach(N=>{A.forEach(x=>{w.push(new N(S,v,x.permissionId).id)})}),C.composePermission$(w).pipe(O.map(N=>N.some(x=>x.value===!1)))}))})):O.of(!0)))}function Wo(n){const i=n.get(a.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=n.get(m.RangeProtectionRuleModel);return e.selectionMoveEnd$.pipe(O.map(()=>{var u;const o=(u=e.getCurrentLastSelection())==null?void 0:u.range;if(!o)return!0;const r=i.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=r.getActiveSheet();if(!s)return!0;const l=r.getUnitId(),c=s.getSheetId();return t.getSubunitRuleList(l,c).reduce((h,g)=>[...h,...g.ranges],[]).filter(h=>a.Rectangle.intersects(o,h)).some(h=>{var v,C;const{startRow:g,startColumn:p,endRow:f,endColumn:S}=h;for(let I=g;I<=f;I++)for(let b=p;b<=S;b++){const T=(C=(v=s.getCell(I,b))==null?void 0:v.selectionProtection)==null?void 0:C[0];if((T==null?void 0:T[J.Edit])===!1)return!0}return!1})}))}function fl(n,i){const e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(m.RangeProtectionRuleModel);return t.selectionMoveEnd$.pipe(O.map(()=>{var h;const r=(h=t.getCurrentLastSelection())==null?void 0:h.range;if(!r)return!0;const s=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s.getActiveSheet();if(!l)return!0;const c=s.getUnitId(),d=l.getSheetId();return o.getSubunitRuleList(c,d).reduce((g,p)=>[...g,...p.ranges],[]).filter(g=>i==="row"?r.endRow>g.startRow&&r.endRow<=g.endRow:r.endColumn>g.startColumn&&r.endColumn<=g.endColumn).some(g=>{var C,I;const{startRow:p,startColumn:f,endRow:S,endColumn:v}=g;for(let b=p;b<=S;b++)for(let T=f;T<=v;T++){const w=(I=(C=l.getCell(b,T))==null?void 0:C.selectionProtection)==null?void 0:I[0];if((w==null?void 0:w[J.Edit])===!1)return!0}return!1})}))}function Sl(n,i){const e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(m.RangeProtectionRuleModel);return t.selectionMoveEnd$.pipe(O.map(()=>{var h;const r=(h=t.getCurrentLastSelection())==null?void 0:h.range;if(!r)return!0;const s=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s.getActiveSheet();if(!l)return!0;const c=s.getUnitId(),d=l.getSheetId();return o.getSubunitRuleList(c,d).reduce((g,p)=>[...g,...p.ranges],[]).filter(g=>i==="row"?r.startRow>g.startRow&&r.startRow<=g.endRow:r.startColumn>g.startColumn&&r.startColumn<=g.endColumn).some(g=>{var C,I;const{startRow:p,startColumn:f,endRow:S,endColumn:v}=g;for(let b=p;b<=S;b++)for(let T=f;T<=v;T++){const w=(I=(C=l.getCell(b,T))==null?void 0:C.selectionProtection)==null?void 0:I[0];if((w==null?void 0:w[J.Edit])===!1)return!0}return!1})}))}function vl(n,i){const e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(m.RangeProtectionRuleModel);return t.selectionMoveEnd$.pipe(O.map(()=>{var g;const r=(g=t.getCurrentLastSelection())==null?void 0:g.range;if(!r)return!0;const s=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s.getActiveSheet();if(!l)return!0;const c=s.getUnitId(),d=l.getSheetId(),u=a.Tools.deepClone(r);return i==="row"?(u.startColumn=0,u.endColumn=l.getColumnCount()-1):(u.startRow=0,u.endRow=l.getRowCount()-1),o.getSubunitRuleList(c,d).reduce((p,f)=>[...p,...f.ranges],[]).filter(p=>a.Rectangle.intersects(u,p)).some(p=>{var I,b;const{startRow:f,startColumn:S,endRow:v,endColumn:C}=p;for(let T=f;T<=v;T++)for(let w=S;w<=C;w++){const y=(b=(I=l.getCell(T,w))==null?void 0:I.selectionProtection)==null?void 0:b[0];if((y==null?void 0:y[J.Edit])===!1)return!0}return!1})}))}function Lo(n,i){const e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(m.RangeProtectionRuleModel);return t.selectionMoveEnd$.pipe(O.map(()=>{var g;const r=(g=t.getCurrentLastSelection())==null?void 0:g.range;if(!r)return!0;const s=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s.getActiveSheet();if(!l)return!0;const c=s.getUnitId(),d=l.getSheetId(),u=a.Tools.deepClone(r);return i==="row"?u.endRow=l.getRowCount()-1:u.endColumn=l.getColumnCount()-1,o.getSubunitRuleList(c,d).reduce((p,f)=>[...p,...f.ranges],[]).filter(p=>a.Rectangle.intersects(p,u)).some(p=>{var I,b;const{startRow:f,startColumn:S,endRow:v,endColumn:C}=p;for(let T=f;T<=v;T++)for(let w=S;w<=C;w++){const y=(b=(I=l.getCell(T,w))==null?void 0:I.selectionProtection)==null?void 0:b[0];if((y==null?void 0:y[J.Edit])===!1)return!0}return!1})}))}function $t(n,i){const t=n.get(a.IUniverInstanceService).getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(m.WorksheetProtectionRuleModel),r=n.get(m.RangeProtectionRuleModel),s=n.get(a.IPermissionService),l=n.get(a.UserManagerService);return O.combineLatest([l.currentUser$,t]).pipe(O.switchMap(([c,d])=>d?d.activeSheet$.pipe(O.switchMap(u=>{var S,v;if(!u)return O.of(!0);const h=d.getUnitId(),g=[];i.forEach(C=>g.push(new C(h).id));const p=s.composePermission$(g).pipe(O.map(C=>C.every(I=>I.value===!0))),f=(v=(S=s.getPermissionPoint$(new m.WorkbookManageCollaboratorPermission(h).id))==null?void 0:S.pipe(O.map(C=>C.value)))!=null?v:O.of(!1);return O.combineLatest([p,f]).pipe(O.map(([C,I])=>{if(!C)return!0;const b=u.getSheetId(),T=o.getRule(h,b),w=r.getSubunitRuleList(h,b);return T||w.length?!I:!1}))})):O.of(!0)))}var kc=Object.defineProperty,Hc=Object.getOwnPropertyDescriptor,Vc=(n,i,e,t)=>{for(var o=t>1?void 0:t?Hc(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&kc(i,e,o),o},Pi=(n,i)=>(e,t)=>i(e,t,n);exports.SheetsRenderService=class extends a.RxDisposable{constructor(e,t,o){super();E(this,"_skeletonChangeMutations",new Set);this._contextService=e,this._instanceSrv=t,this._renderManagerService=o,Promise.resolve().then(()=>this._init())}registerSkeletonChangingMutations(e){if(this._skeletonChangeMutations.has(e))throw new Error(`[SheetsRenderService]: the mutationId ${e} has already been registered!`);return this._skeletonChangeMutations.add(e),a.toDisposable(()=>this._skeletonChangeMutations.delete(e))}checkMutationShouldTriggerRerender(e){return this._skeletonChangeMutations.has(e)}_init(){this._initWorkbookListener(),this._initContextListener()}_initWorkbookListener(){this._instanceSrv.getTypeOfUnitAdded$(a.UniverInstanceType.UNIVER_SHEET).pipe(O.takeUntil(this.dispose$)).subscribe(e=>this._createRenderer(e)),this._instanceSrv.getAllUnitsForType(a.UniverInstanceType.UNIVER_SHEET).forEach(e=>this._createRenderer(e)),this._instanceSrv.getTypeOfUnitDisposed$(a.UniverInstanceType.UNIVER_SHEET).pipe(O.takeUntil(this.dispose$)).subscribe(e=>this._disposeRenderer(e))}_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$(P.RENDER_RAW_FORMULA_KEY).pipe(O.distinctUntilChanged(),O.takeUntil(this.dispose$)).subscribe(()=>{this._renderManagerService.getRenderAll().forEach(e=>{e.mainComponent instanceof P.Spreadsheet&&e.mainComponent.makeForceDirty(!0)})})}};exports.SheetsRenderService=Vc([a.OnLifecycle(a.LifecycleStages.Ready,exports.SheetsRenderService),Pi(0,a.IContextService),Pi(1,a.IUniverInstanceService),Pi(2,P.IRenderManagerService)],exports.SheetsRenderService);function Bt(n,i,e,t){const o=i.get(a.IUniverInstanceService),r=e?o.getUnit(e,a.UniverInstanceType.UNIVER_SHEET):o.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=t?r==null?void 0:r.getSheetBySheetId(t):r==null?void 0:r.getActiveSheet();if(!s)return null;const{startRow:l,endRow:c,startColumn:d,endColumn:u}=n,h=[],g=[];for(let p=l;p<=c;p++)s.getRowFiltered(p)||h.push(p);for(let p=d;p<=u;p++)g.push(p);return{rows:h,cols:g}}function wt(n){const{rows:i,cols:e}=n;return{startRow:i[0],endRow:i[i.length-1],startColumn:e[0],endColumn:e[e.length-1]}}function en(n){let i=[],e=[];const t=[];return n.forEach(o=>{i.push(...o.rows),e.push(...o.cols)}),i=Array.from(new Set(i)).sort((o,r)=>o-r),e=Array.from(new Set(e)).sort((o,r)=>o-r),n.forEach(o=>{t.push({startRow:i.findIndex(r=>r===o.rows[0]),endRow:i.findIndex(r=>r===o.rows[o.rows.length-1]),startColumn:e.findIndex(r=>r===o.cols[0]),endColumn:e.findIndex(r=>r===o.cols[o.cols.length-1])})}),{ranges:t,mapFunc:(o,r)=>({row:i[o],col:e[r]})}}function Wc(n){const i=new a.ObjectMatrix;return n.forEach(e=>{const{rows:t,cols:o}=e;t.forEach(r=>{o.forEach(s=>{i.setValue(r,s,{v:null,p:null,f:null,si:null,custom:null})})})}),i.getData()}const rr={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},Ro=["零","一","二","三","四","五","六","七","八","九"],Cs=["","万","亿","万亿","亿亿"],Lc=["","十","百","千"],Cl={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function et(n){if(!n)return 0;let i=0,e=0,t=0,o=!1;const r=n.split("");for(let s=0;s<r.length;s++){const l=rr[r[s]];if(typeof l<"u")t=l,s===r.length-1&&(e+=t);else{const c=Cl[r[s]],d=c.value;o=c.secUnit,o?(e=(e+t)*d,i+=e,e=0):e+=t*d,t=0}}return i+e}function Uc(n){let i="",e="",t=0,o=!0;for(;n>0;){const r=n%10;r===0?o||(o=!0,e=Ro[r]+e):(o=!1,i=Ro[r],i+=Lc[t],e=i+e),t++,n=Math.floor(n/10)}return e}function Bc(n){let i=0,e="",t="",o=!1;if(n===0)return Ro[0];for(;n>0;){const r=n%1e4;o&&(t=Ro[0]+t),e=Uc(r),e+=r!==0?Cs[i]:Cs[0],t=e+t,o=r<1e3&&r>0,n=Math.floor(n/1e4),i++}return t}function Fc(n){if(!n)return!1;let i=!0;if(n)if(n.length===1)n==="日"||n in rr?i=!0:i=!1;else{const e=n.split("");for(let t=0;t<e.length;t++)if(!(e[t]in rr||e[t]in Cl)){i=!1;break}}return i}function lo(n){if(!n)return{isExtendNumber:!1};const i=/0|([1-9]+[0-9]*)/g,e=i.test(n);if(e){const t=n.match(i);if(t&&t.length>0){const o=t[t.length-1],r=n.lastIndexOf(o),s=n.substr(0,r),l=n.substr(r+o.length);return{isExtendNumber:!0,matchTxt:Number(o),beforeTxt:s,afterTxt:l}}return{isExtendNumber:!1}}return{isExtendNumber:e}}function jc(n){let i;return n.length===2&&(n==="周一"||n==="周二"||n==="周三"||n==="周四"||n==="周五"||n==="周六"||n==="周日")?i=!0:i=!1,i}function Xc(n){let i;return n.length===3&&(n==="星期一"||n==="星期二"||n==="星期三"||n==="星期四"||n==="星期五"||n==="星期六"||n==="星期日")?i=!0:i=!1,i}function zc(n,i){let e=0;for(let t=0;t<n.length&&n[t]<i;t++)e++;return e}function Xn(n){let i=!0;const e=n[1]-n[0];for(let t=1;t<n.length;t++)if(n[t]-n[t-1]!==e){i=!1;break}return i}function Yc(n,i,e){const t=[],o=Math.floor(i/n),r=i%n;let s=0;if(o>0){for(let l=0;l<o;l++)for(let c=0;c<e.length;c++)t[e[c]+l*n]=s,s++;for(let l=0;l<e.length&&e[l]<r;l++)t[e[l]+n*o]=s,s++}else for(let l=0;l<e.length&&e[l]<r;l++)t[e[l]]=s,s++;return t}function Pt(n,i){const e=[];for(let t=1;t<=i;t++){const o=(t-1)%n.length,r=a.Tools.deepClone(n[o]);e.push({v:null,s:null,p:null,f:null,si:null,t:null,...r})}return e}function Zc(n,i){var t;const e=[];for(let o=1;o<=i;o++){const r=(o-1)%n.length,s={s:(t=n[r])==null?void 0:t.s};e.push(s)}return e}function Gc(n){let i=!0;const e=n[1]/n[0];for(let t=1;t<n.length;t++)if(n[t]/n[t-1]!==e){i=!1;break}return i}function Kc(n){const i=[];for(let e=1;e<=n;e++)i.push(e);return i}function To(n,i,e){var r,s,l,c;const t=[],o=[];for(let d=0;d<n.length;d++)o.push(Number((r=n[d])==null?void 0:r.v));if(n.length>2&&Gc(o))for(let d=1;d<=i;d++){const u=(d-1)%n.length,h=a.Tools.deepClone(n[u]),g=Number((s=n[n.length-1])==null?void 0:s.v)*(Number((l=n[1])==null?void 0:l.v)/Number((c=n[0])==null?void 0:c.v))**d;h&&(h.t!==a.CellValueType.BOOLEAN&&(h.v=g),t.push(h))}else{const d=Kc(n.length);for(let u=1;u<=i;u++){const h=(u-1)%n.length,g=a.Tools.deepClone(n[h]),p=e===a.Direction.DOWN||e===a.Direction.RIGHT,f=qc(n.length+u,o,d,p);g&&(g.t!==a.CellValueType.BOOLEAN&&(g.v=f),t.push(g))}}return t}function qc(n,i,e,t=!0){function o(h){let g=0;for(let p=0;p<h.length;p++)g+=h[p];return g/h.length}const r=o(e),s=o(i);let l=0,c=0;for(let h=0;h<e.length;h++)l+=(e[h]-r)*(i[h]-s),c+=(e[h]-r)*(e[h]-r);let d;c===0?d=t?1:-1:d=l/c;const u=s-d*r;return Math.round((u+d*n)*1e5)/1e5}function _s(n,i,e){var r;const t=[],o=/0|([1-9]+[0-9]*)/g;for(let s=1;s<=i;s++){const l=(s-1)%n.length,c=a.Tools.deepClone(n[l]),d=`${(r=n[n.length-1])==null?void 0:r.v}`,u=d==null?void 0:d.match(o),h=u==null?void 0:u[u.length-1],g=Math.abs(Number(h)+e*s);if(!d||!h)continue;const p=d.lastIndexOf(h),f=d.substr(0,p)+g.toString()+d.substr(p+h.length);c&&(c.v=f,t.push(c))}return t}function Zt(n,i,e,t=0){var l,c;const o=[["日","一","二","三","四","五","六"],["周日","周一","周二","周三","周四","周五","周六"],["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]];if(t>=o.length)return[];const r=o[t],s=[];for(let d=1;d<=i;d++){const u=(d-1)%n.length,h=a.Tools.deepClone(n[u]);let g=0;if(((l=n[n.length-1])==null?void 0:l.v)===r[0])g=7+e*d;else{const f=`${(c=n[n.length-1])==null?void 0:c.v}`;if(f){const S=f.substr(f.length-1,1);g=et(S)+e*d}}g<0&&(g=Math.ceil(Math.abs(g)/7)*7+g);const p=g%7;h&&(h.v=r[p],s.push(h))}return s}function Is(n,i,e){var o;const t=[];for(let r=1;r<=i;r++){const s=(r-1)%n.length,l=a.Tools.deepClone(n[s]),c=`${(o=n[n.length-1])==null?void 0:o.v}`,d=et(c)+e*r;let u;d<=0?u="零":u=Bc(d),l&&(l.v=u,t.push(l))}return t}const yn={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 i=!1;return Object.keys(yn).forEach(e=>{yn[e].includes(n)&&(i=!0)}),i}function yi(n){let i="";const e=[];return Object.keys(yn).forEach(t=>{yn[t].includes(n)&&(i=t,e.push(...yn[t]))}),{name:i,series:e}}function bs(n,i,e,t){var s;const o=t.length,r=[];for(let l=1;l<=i;l++){const c=(l-1)%n.length,d=a.Tools.deepClone(n[c]),u=`${(s=n[n.length-1])==null?void 0:s.v}`;let h=t.indexOf(u)+e*l;h<0&&(h+=Math.abs(e)*o);const g=h%o;d&&(d.v=t[g],r.push(d))}return r}function Jc(n,i){const e=[];let t;if(i.startRow<n.startRow)t=a.Direction.UP;else if(i.endRow>n.endRow)t=a.Direction.DOWN;else if(i.startColumn<n.startColumn)t=a.Direction.LEFT;else if(i.endColumn>n.endColumn)t=a.Direction.RIGHT;else return[];if(t===a.Direction.DOWN||t===a.Direction.UP){const o=n.endRow-n.startRow+1,r=i.endRow-i.startRow+1,s=Math.floor(r/o),l=r%o,c={startRow:0,startColumn:0,endRow:n.endRow-n.startRow,endColumn:n.endColumn-n.startColumn};if(t===a.Direction.DOWN){for(let d=0;d<s;d++)e.push({repeatStartCell:{row:n.startRow+(d+1)*o,col:n.startColumn},relativeRange:c});l>0&&e.push({repeatStartCell:{row:n.startRow+(s+1)*o,col:n.startColumn},relativeRange:{startRow:0,startColumn:0,endRow:l-1,endColumn:n.endColumn-n.startColumn}})}else{for(let d=0;d<s;d++)e.push({repeatStartCell:{row:n.startRow-(d+1)*o,col:n.startColumn},relativeRange:c});l>0&&e.push({repeatStartCell:{row:n.startRow-(s+1)*o,col:n.startColumn},relativeRange:{startRow:o-l,endRow:o-1,startColumn:0,endColumn:n.endColumn-n.startColumn}})}}if(t===a.Direction.RIGHT||t===a.Direction.LEFT){const o=n.endColumn-n.startColumn+1,r=i.endColumn-i.startColumn+1,s=Math.floor(r/o),l=r%o,c={startRow:0,startColumn:0,endRow:n.endRow-n.startRow,endColumn:n.endColumn-n.startColumn};if(t===a.Direction.RIGHT){for(let d=0;d<s;d++)e.push({repeatStartCell:{row:n.startRow,col:n.startColumn+(d+1)*o},relativeRange:c});l>0&&e.push({repeatStartCell:{row:n.startRow,col:n.startColumn+(s+1)*o},relativeRange:{startRow:0,startColumn:0,endRow:n.endRow-n.startRow,endColumn:l-1}})}else{for(let d=0;d<s;d++)e.push({repeatStartCell:{row:n.startRow,col:n.startColumn-(d+1)*o},relativeRange:c});l>0&&e.push({repeatStartCell:{row:n.startRow,col:n.startColumn-(s+1)*o},relativeRange:{startRow:0,startColumn:o-l,endRow:n.endRow-n.startRow,endColumn:o-1}})}}return e}var Wt=(n=>(n.Append="APPEND",n.Default="DEFAULT",n.Only="ONLY",n))(Wt||{}),pe=(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))(pe||{}),le=(n=>(n.COPY="COPY",n.SERIES="SERIES",n.ONLY_FORMAT="ONLY_FORMAT",n.NO_FORMAT="NO_FORMAT",n))(le||{});const $c={type:pe.DATE,priority:1100,match:(n,i)=>{var e;if((typeof(n==null?void 0:n.v)=="number"||(n==null?void 0:n.t)===a.CellValueType.NUMBER)&&n.s){if(typeof n.s=="string"){const o=i.get(a.IUniverInstanceService).getFocusedUnit().getStyles().get(n.s),r=(e=o==null?void 0:o.n)==null?void 0:e.pattern;if(r)return tt.getInfo(r).isDate}else if(n.s.n&&tt.getInfo(n.s.n.pattern).isDate)return!0}return!1},isContinue:(n,i)=>n.type===pe.DATE,applyFunctions:{[le.SERIES]:(n,i,e)=>{const{data:t}=n;return e===a.Direction.LEFT||e===a.Direction.UP?(t.reverse(),To(t,i,e).reverse()):To(t,i,e)}}},ed={type:pe.NUMBER,priority:1e3,match:n=>typeof(n==null?void 0:n.v)=="number"||(n==null?void 0:n.t)===a.CellValueType.NUMBER,isContinue:(n,i)=>n.type===pe.NUMBER,applyFunctions:{[le.SERIES]:(n,i,e)=>{const{data:t}=n;return e===a.Direction.LEFT||e===a.Direction.UP?(t.reverse(),To(t,i,e).reverse()):To(t,i,e)}}},_l={type:pe.OTHER,priority:0,match:()=>!0,isContinue:(n,i)=>n.type===pe.OTHER},td={type:pe.EXTEND_NUMBER,priority:900,match:n=>lo(`${n==null?void 0:n.v}`||"").isExtendNumber,isContinue:(n,i)=>{var e;if(n.type===pe.EXTEND_NUMBER){const{beforeTxt:t,afterTxt:o}=lo(`${(e=n.cellData)==null?void 0:e.v}`||""),{beforeTxt:r,afterTxt:s}=lo(`${i==null?void 0:i.v}`||"");if(t===r&&o===s)return!0}return!1},applyFunctions:{[le.SERIES]:(n,i,e)=>{var l;const{data:t}=n,o=e===a.Direction.UP||e===a.Direction.LEFT;let r;if(t.length===1)return r=o?-1:1,ke(_s(t,i,r),o);const s=[];for(let c=0;c<t.length;c++){const d=`${(l=t[c])==null?void 0:l.v}`;d&&s.push(Number(lo(d).matchTxt))}return o&&(t.reverse(),s.reverse()),Xn(s)?(r=s[1]-s[0],ke(_s(t,i,r),o)):Pt(t,i)}}},nd={type:pe.CHN_NUMBER,priority:830,match:n=>!!Fc(`${n==null?void 0:n.v}`||""),isContinue:(n,i)=>n.type===pe.CHN_NUMBER,applyFunctions:{[le.SERIES]:(n,i,e)=>{var c,d,u;const{data:t}=n,o=e===a.Direction.LEFT||e===a.Direction.UP;if(t.length===1){const h=`${(c=t[0])==null?void 0:c.v}`;let g;return o?g=-1:g=1,h&&(h==="日"||et(h)<7)?ke(Zt(t,i,g),o):ke(Is(t,i,g),o)}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 l=0;for(let h=0;h<t.length;h++){const g=`${(u=t[h])==null?void 0:u.v}`;g==="日"?h===0?s.push(0):(l++,s.push(l*7)):r&&et(g)>0&&et(g)<7?s.push(et(g)+l*7):s.push(et(g))}if(o&&(t.reverse(),s.reverse()),Xn(s)){if(r||s[s.length-1]<6&&s[0]>0||s[0]<6&&s[s.length-1]>0){const g=s[1]-s[0];return ke(Zt(t,i,g),o)}const h=s[1]-s[0];return ke(Is(t,i,h),o)}return Pt(t,i)}}},od={type:pe.CHN_WEEK2,priority:820,match:n=>!!jc(`${n==null?void 0:n.v}`||""),isContinue:(n,i)=>n.type===pe.CHN_WEEK2,applyFunctions:{[le.SERIES]:(n,i,e)=>{var l;const{data:t}=n,o=e===a.Direction.LEFT||e===a.Direction.UP;if(t.length===1){let c;return o?c=-1:c=1,ke(Zt(t,i,c,1),o)}const r=[];let s=0;for(let c=0;c<t.length;c++){const d=`${(l=t[c])==null?void 0:l.v}`,u=d==null?void 0:d.substr(d.length-1,1);d==="周日"?c===0?r.push(0):(s++,r.push(s*7)):r.push(et(u)+s*7)}if(o&&(t.reverse(),r.reverse()),Xn(r)){const c=r[1]-r[0];return ke(Zt(t,i,c,1),o)}return Pt(t,i)}}},id={type:pe.CHN_WEEK3,priority:810,match:n=>Xc(`${n==null?void 0:n.v}`||""),isContinue:(n,i)=>n.type===pe.CHN_WEEK3,applyFunctions:{[le.SERIES]:(n,i,e)=>{var l;const{data:t}=n,o=e===a.Direction.LEFT||e===a.Direction.UP;if(t.length===1){let c;return o?c=-1:c=1,ke(Zt(t,i,c,2),o)}const r=[];let s=0;for(let c=0;c<t.length;c++){const d=`${(l=t[c])==null?void 0:l.v}`;if(d){const u=d.substr(d.length-1,1);d==="星期日"?c===0?r.push(0):(s++,r.push(s*7)):r.push(et(u)+s*7)}}if(o&&(t.reverse(),r.reverse()),Xn(r)){const c=r[1]-r[0];return ke(Zt(t,i,c,2),o)}return Pt(t,i)}}},rd={type:pe.LOOP_SERIES,priority:800,match:n=>Qc(`${n==null?void 0:n.v}`||""),isContinue:(n,i)=>{var e;return n.type===pe.LOOP_SERIES?yi(`${(e=n.cellData)==null?void 0:e.v}`||"").name===yi(`${i==null?void 0:i.v}`||"").name:!1},applyFunctions:{[le.SERIES]:(n,i,e)=>{var c,d;const{data:t}=n,o=e===a.Direction.LEFT||e===a.Direction.UP,{series:r}=yi(`${(c=t[0])==null?void 0:c.v}`||"");if(t.length===1){let u;return o?u=-1:u=1,ke(bs(t,i,u,r),o)}const s=[];let l=0;for(let u=0;u<t.length;u++){const h=`${(d=t[u])==null?void 0:d.v}`;h&&(h===r[0]?u===0?s.push(0):(l++,s.push(l*r.length)):s.push(r.indexOf(h)+l*7))}if(o&&(t.reverse(),s.reverse()),Xn(s)){const u=s[1]-s[0];return ke(bs(t,i,u,r),o)}return Pt(t,i)}}};function ke(n,i){return i?n.reverse():n}var sd=Object.defineProperty,ld=Object.getOwnPropertyDescriptor,ad=(n,i,e,t)=>{for(var o=t>1?void 0:t?ld(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&sd(i,e,o),o},ao=(n,i)=>(e,t)=>i(e,t,n);exports.AutoFillService=class extends a.Disposable{constructor(e,t,o,r){super();E(this,"_rules",[]);E(this,"_hooks",[]);E(this,"_applyType$",new O.BehaviorSubject(le.SERIES));E(this,"_isFillingStyle",!0);E(this,"_autoFillLocation$",new O.BehaviorSubject(null));E(this,"autoFillLocation$",this._autoFillLocation$.asObservable());E(this,"_showMenu$",new O.BehaviorSubject(!1));E(this,"showMenu$",this._showMenu$.asObservable());E(this,"_direction",a.Direction.DOWN);E(this,"applyType$",this._applyType$.asObservable());E(this,"_menu$",new O.BehaviorSubject([{label:"autoFill.copy",value:le.COPY,disable:!1},{label:"autoFill.series",value:le.SERIES,disable:!1},{label:"autoFill.formatOnly",value:le.ONLY_FORMAT,disable:!1},{label:"autoFill.noFormat",value:le.NO_FORMAT,disable:!1}]));E(this,"menu$",this._menu$.asObservable());this._univerInstanceService=e,this._selectionManagerService=t,this._commandService=o,this._undoRedoService=r,this._init()}_init(){this._rules=[$c,ed,td,nd,od,id,rd,_l].sort((e,t)=>t.priority-e.priority),this._isFillingStyle=!0}getOneByPriority(e){return e.length<=0?[]:[e.reduce((o,r)=>(r.priority||0)>(o.priority||0)?r:o,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=Wt.Append),this._hooks.push(e),a.toDisposable(()=>{const t=this._hooks.findIndex(o=>o===e);t>-1&&this._hooks.splice(t,1)})}registerRule(e){if(this._rules.find(o=>o.type===e.type))throw new Error(`Registry rule failed, type '${e.type}' already exist!`);const t=this._rules.findIndex(o=>o.priority<e.priority);this._rules.splice(t===-1?this._rules.length:t,0,e)}getRules(){return this._rules}getAllHooks(){return this._hooks}getActiveHooks(){const{source:e,target:t,unitId:o,subUnitId:r}=this.autoFillLocation||{};if(!e||!t||!o||!r)return[];const s=this._hooks.filter(u=>{var h;return!((h=u.disable)!=null&&h.call(u,{source:e,target:t,unitId:o,subUnitId:r},this._direction,this.applyType))}),l=s.filter(u=>u.type===Wt.Only);if(l.length>0)return this.getOneByPriority(l);const c=this.getOneByPriority(s.filter(u=>u.type===Wt.Default)),d=s.filter(u=>u.type===Wt.Append)||[];return[...c,...d]}get applyType(){return this._applyType$.getValue()}set applyType(e){this._applyType$.next(e)}get menu(){return this._menu$.getValue()}get direction(){return this._direction}set direction(e){this._direction=e}isFillingStyle(){return this._isFillingStyle}setFillingStyle(e){this._isFillingStyle=e}get autoFillLocation(){return this._autoFillLocation$.getValue()}set autoFillLocation(e){this._autoFillLocation$.next(e)}setDisableApplyType(e,t){this._menu$.next(this._menu$.getValue().map(o=>o.value===e?{...o,disable:t}:o))}setShowMenu(e){this._showMenu$.next(e)}fillData(e,t){var S,v,C;const{source:o,target:r,unitId:s=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId(),subUnitId:l=(S=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:S.getSheetId()}=this.autoFillLocation||{},c=this.direction;if(!o||!r||s!==e||l!==t)return!1;const d=a.Rectangle.union(wt(o),wt(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:a.RANGE_TYPE.NORMAL}}],unitId:s,subUnitId:l});const g=[],p=[];return h.forEach(I=>{var w;const{undos:b,redos:T}=((w=I.onFillData)==null?void 0:w.call(I,{source:o,target:r,unitId:s,subUnitId:l},c,u))||{};b&&g.push(...b),T&&p.push(...T)}),p.every(I=>this._commandService.syncExecuteCommand(I.id,I.params))&&this._undoRedoService.pushUndoRedo({unitID:s,undoMutations:g,redoMutations:p}),h.forEach(I=>{var b;(b=I.onAfterFillData)==null||b.call(I,{source:o,target:r,unitId:s,subUnitId:l},c,u)}),this.setShowMenu(!0),!0}};exports.AutoFillService=ad([a.OnLifecycle(a.LifecycleStages.Rendered,exports.AutoFillService),ao(0,k.Inject(a.IUniverInstanceService)),ao(1,k.Inject(m.SheetsSelectionsService)),ao(2,a.ICommandService),ao(3,a.IUndoRedoService)],exports.AutoFillService);const gt=k.createIdentifier("univer.auto-fill-service"),bt={type:a.CommandType.COMMAND,id:"sheet.command.auto-fill",handler:async(n,i)=>n.get(gt).fillData(i.unitId,i.subUnitId)},Ft={id:"sheet.command.auto-clear-content",type:a.CommandType.COMMAND,handler:async(n,i)=>{const e=n.get(a.IUniverInstanceService),t=n.get(a.ICommandService),o=n.get(a.IUndoRedoService),r=m.getSheetCommandTarget(e);if(!r)return!1;const{unitId:s,subUnitId:l}=r,{clearRange:c,selectionRange:d}=i,u={subUnitId:l,unitId:s,cellValue:m.generateNullCellValue([c])},h=m.SetRangeValuesUndoMutationFactory(n,u),{startColumn:g,startRow:p}=d;return t.executeCommand(m.SetSelectionsOperation.id,{selections:[{primary:{startColumn:g,startRow:p,endColumn:g,endRow:p,actualRow:p,actualColumn:g,isMerge:!1,isMergedMainCell:!1},range:{...d}}],unitId:s,subUnitId:l}),t.syncExecuteCommand(m.SetRangeValuesMutation.id,u)?(o.pushUndoRedo({unitID:s,undoMutations:[{id:m.SetRangeValuesMutation.id,params:h}],redoMutations:[{id:m.SetRangeValuesMutation.id,params:u}]}),!0):!1}},sr=a.createInterceptorKey("rangeMovePermissionCheck"),lr=a.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,"_currentCell");E(this,"_rangeType",a.RANGE_TYPE.NORMAL)}get startColumn(){return this._startColumn}get startRow(){return this._startRow}get endColumn(){return this._endColumn}get endRow(){return this._endRow}get startX(){return this._startX}get startY(){return this._startY}get endX(){return this._endX}get endY(){return this._endY}get currentCell(){return this._currentCell}get rangeType(){return this._rangeType}isEqual(i){const{startColumn:e,startRow:t,endColumn:o,endRow:r}=this,{startColumn:s,startRow:l,endColumn:c,endRow:d}=i;return e===s&&t===l&&o===c&&r===d}isInclude(i){const{startColumn:e,startRow:t,endColumn:o,endRow:r}=this,{startColumn:s,startRow:l,endColumn:c,endRow:d}=i;return!(c<e||s>o||l>r||d<t)}highlightToSelection(){if(this._currentCell)return a.makeCellToSelection(this._currentCell)}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._currentCell}getRangeType(){return this._rangeType}setRangeType(i){this._rangeType=i}getValue(){return{rangeWithCoord:{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},primaryWithCoord:this._currentCell}}setValue(i,e){const{startColumn:t,startRow:o,endColumn:r,endRow:s,startX:l,startY:c,endX:d,endY:u,rangeType:h}=i;this._startColumn=t,this._startRow=o,this._endColumn=r,this._endRow=s,this._startX=l,this._startY=c,this._endX=d,this._endY=u,h!=null&&(this._rangeType=h),this.setCurrentCell(e)}setCurrentCell(i){i&&(this._currentCell=i)}clearCurrentCell(){this._currentCell=null}}var Tn=(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))(Tn||{});const Rs=.3;class Uo extends a.Disposable{constructor(e,t,o=!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 O.BehaviorSubject(this));E(this,"dispose$",this._dispose$.asObservable());E(this,"selectionMoving$",new O.Subject);E(this,"selectionMoved$",new O.Subject);E(this,"selectionScaling$",new O.Subject);E(this,"selectionScaled$",new O.Subject);E(this,"selectionFilling$",new O.Subject);E(this,"_selectionFilled$",new O.Subject);E(this,"selectionFilled$",this._selectionFilled$.asObservable());E(this,"_defaultStyle");E(this,"_currentStyle");E(this,"_isHelperSelection",!0);E(this,"_antLineOffset",0);E(this,"_antRequestNewFrame",-1);this._scene=e,this._zIndex=t,this._isHeaderHighlight=o,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,o=0,r,s){this._selectionModel.setValue(e,s),r==null&&(r=this._selectionStyle),this._updateControl(r,t,o)}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,o,r,s,l,c,d,u,h,g,p,f,S,v,C,I,b,T,w,y,M,A,N;(e=this._leftControl)==null||e.dispose(),(t=this._rightControl)==null||t.dispose(),(o=this._topControl)==null||o.dispose(),(r=this._bottomControl)==null||r.dispose(),(s=this._backgroundControlTop)==null||s.dispose(),(l=this._backgroundControlMiddleLeft)==null||l.dispose(),(c=this._backgroundControlMiddleRight)==null||c.dispose(),(d=this._backgroundControlBottom)==null||d.dispose(),this._fillControl.dispose(),(u=this._selectionShapeGroup)==null||u.dispose(),(h=this._rowHeaderBackground)==null||h.dispose(),(g=this._rowHeaderBorder)==null||g.dispose(),(p=this._rowHeaderGroup)==null||p.dispose(),(f=this._rowHeaderBackground)==null||f.dispose(),(S=this._columnHeaderBackground)==null||S.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(),(T=this._topRightWidget)==null||T.dispose(),(w=this._middleLeftWidget)==null||w.dispose(),(y=this._middleRightWidget)==null||y.dispose(),(M=this._bottomLeftWidget)==null||M.dispose(),(A=this._bottomCenterWidget)==null||A.dispose(),(N=this._bottomRightWidget)==null||N.dispose(),super.dispose(),this._dispose$.next(this),this._dispose$.complete()}getCurrentCellInfo(){const e=this.model.currentCell;if(e){let t;if(e.isMerged){const o=e.mergeInfo;t={startRow:o.startRow,endRow:o.endRow,startColumn:o.startColumn,endColumn:o.endColumn,startX:o.startX,endX:o.endX,startY:o.startY,endY:o.endY}}else{const{actualRow:o,actualColumn:r,startX:s,endX:l,startY:c,endY:d}=e;t={startRow:o,endRow:o,startColumn:r,endColumn:r,startX:s,endX:l,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,o){const{startX:r,startY:s,endX:l,endY:c}=this._selectionModel,d=this._defaultStyle;e==null&&(e=d),this._currentStyle=e;const{stroke:u=d.stroke,widgets:h=d.widgets,hasAutoFill:g=d.hasAutoFill,AutofillStroke:p=d.AutofillStroke,strokeDash:f,isAnimationDash:S}=e;let{strokeWidth:v=d.strokeWidth,AutofillSize:C=d.AutofillSize,AutofillStrokeWidth:I=d.AutofillStrokeWidth}=e;const b=this._getScale(),T=(v+m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH)/2/b;v/=b,C/=b,I/=b<1?1:b;const w=m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/b,y=P.FIX_ONE_PIXEL_BLUR_OFFSET/b;if(this.leftControl.transformByState({height:c-s,left:-T+y,width:v,strokeWidth:w,top:-w/2+y}),this.leftControl.setProps({fill:u,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.rightControl.transformByState({height:c-s,left:l-r-T+y,width:v,strokeWidth:w,top:-w/2+y}),this.rightControl.setProps({fill:u,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.topControl.transformByState({width:l-r+v,top:-T+y,left:-T+y,height:v,strokeWidth:w}),this.topControl.setProps({fill:u,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.bottomControl.transformByState({width:l-r+v,top:c-s-T+y,height:v,left:-T+y,strokeWidth:w}),this.bottomControl.setProps({fill:u,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),f==null)this.dashRect.hide(),this._stopAntLineAnimation();else{const M=e.strokeWidth*2/b;this.dashRect.transformByState({height:c-s,width:l-r,strokeWidth:M,left:-M/2+y,top:-M/2+y}),this.dashRect.setProps({strokeDashArray:[0,f/b]}),this._stopAntLineAnimation(),S!==!1&&this._startAntLineAnimation(),this.dashRect.show()}if(g===!0&&!this._hasWidgets(h)){const M={fill:u,stroke:p,strokeScaleEnabled:!1},A={width:C-I,height:C-I,left:l-r-C/2+I/2-y,top:c-s-C/2+I/2-y,strokeWidth:I};this.fillControl.setProps(M),this.fillControl.transformByState(A),this.fillControl.show()}else this.fillControl.hide();this._updateBackgroundControl(e),this._updateBackgroundTitle(e,t,o),this._updateWidgets(e),this.selectionShape.show(),this.selectionShape.translate(r,s),this._selectionStyle=e,this._rowHeaderWidth=t||0,this._columnHeaderHeight=o||0,this.selectionShape.makeDirtyNoDebounce(!0)}_initialize(){this._defaultStyle=m.getNormalSelectionStyle(this._themeService),this._selectionModel=new cd;const e=this._zIndex;this._leftControl=new P.Rect("__SpreadsheetSelectionShapeLeftControl__"+e,{zIndex:e}),this._rightControl=new P.Rect("__SpreadsheetSelectionShapeRightControl__"+e,{zIndex:e}),this._topControl=new P.Rect("__SpreadsheetSelectionTopControl__"+e,{zIndex:e}),this._bottomControl=new P.Rect("__SpreadsheetSelectionBottomControl__"+e,{zIndex:e}),this._backgroundControlTop=new P.Rect("__SpreadsheetSelectionBackgroundControlTop__"+e,{zIndex:e-1,evented:!1}),this._backgroundControlBottom=new P.Rect("__SpreadsheetSelectionBackgroundControlBottom__"+e,{zIndex:e-1,evented:!1}),this._backgroundControlMiddleLeft=new P.Rect("__SpreadsheetSelectionBackgroundControlMiddleLeft__"+e,{zIndex:e-1,evented:!1}),this._backgroundControlMiddleRight=new P.Rect("__SpreadsheetSelectionBackgroundControlMiddleRight__"+e,{zIndex:e-1,evented:!1}),this._fillControl=new P.Rect("__SpreadsheetSelectionFillControl__"+e,{zIndex:e+1}),this._dashRect=new P.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 P.Group("__SpreadsheetSelectionShape__"+e,...t,...this._widgetRects),this._selectionShapeGroup.hide(),this._selectionShapeGroup.evented=!1,this._selectionShapeGroup.zIndex=e;const o=this.getScene();o.addObject(this._selectionShapeGroup,pl),this.disposeWithMe(a.toDisposable(o.onTransformChange$.subscribeEvent(r=>{r.type===P.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale&&this._updateControl(this._currentStyle,this._rowHeaderWidth,this._columnHeaderHeight)}))),this._initialTitle()}_initialTitle(){const e=this._zIndex;this._rowHeaderBackground=new P.Rect("__SpreadSheetSelectionRowHeaderBackground__"+e,{zIndex:e-1,evented:!1}),this._rowHeaderBorder=new P.Rect("__SpreadSheetSelectionRowHeaderBorder__"+e,{zIndex:e-1,evented:!1}),this._rowHeaderGroup=new P.Group("__SpreadSheetSelectionRowHeaderGroup__"+e,this._rowHeaderBackground,this._rowHeaderBorder),this._rowHeaderGroup.hide(),this._rowHeaderGroup.evented=!1,this._rowHeaderGroup.zIndex=e,this._columnHeaderBackground=new P.Rect("__SpreadSheetSelectionColumnHeaderBackground__"+e,{zIndex:e-1,evented:!1}),this._columnHeaderBorder=new P.Rect("__SpreadSheetSelectionColumnHeaderBorder__"+e,{zIndex:e-1,evented:!1}),this._columnHeaderGroup=new P.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 P.Rect("__SpreadSheetSelectionTopLeftWidget__"+e,{zIndex:e+1}),this._topCenterWidget=new P.Rect("__SpreadSheetSelectionTopCenterWidget__"+e,{zIndex:e+1}),this._topRightWidget=new P.Rect("__SpreadSheetSelectionTopRightWidget__"+e,{zIndex:e+1}),this._middleLeftWidget=new P.Rect("__SpreadSheetSelectionMiddleLeftWidget__"+e,{zIndex:e+1}),this._middleRightWidget=new P.Rect("__SpreadSheetSelectionMiddleRightWidget__"+e,{zIndex:e+1}),this._bottomLeftWidget=new P.Rect("__SpreadSheetSelectionBottomLeftWidget__"+e,{zIndex:e+1}),this._bottomCenterWidget=new P.Rect("__SpreadSheetSelectionBottomCenterWidget__"+e,{zIndex:e+1}),this._bottomRightWidget=new P.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,o){const{startX:r,startY:s,endX:l,endY:c,rangeType:d}=this._selectionModel,u=this._defaultStyle;e==null&&(e=u);const h=this._getScale(),{stroke:g,hasRowHeader:p,rowHeaderFill:f=u.rowHeaderFill,rowHeaderStroke:S=u.rowHeaderStroke,hasColumnHeader:v,columnHeaderFill:C=u.columnHeaderFill,columnHeaderStroke:I=u.columnHeaderStroke}=e;let{rowHeaderStrokeWidth:b=u.rowHeaderStrokeWidth,columnHeaderStrokeWidth:T=u.columnHeaderStrokeWidth}=e;if(b/=h,T/=h,v===!0){let w=C;this._isHeaderHighlight&&d===a.RANGE_TYPE.COLUMN&&(w=new a.ColorKit(g).setAlpha(Rs).toString()),this._columnHeaderBackground.setProps({fill:w}),this._columnHeaderBackground.resize(l-r,o),this._columnHeaderBorder.setProps({fill:I}),this._columnHeaderBorder.transformByState({width:l-r,height:T,top:o-T+1/h}),this._columnHeaderGroup.show(),this._columnHeaderGroup.translate(r,0)}else this._columnHeaderGroup.hide();if(this._columnHeaderGroup.makeDirty(!0),p===!0){let w=f;this._isHeaderHighlight&&d===a.RANGE_TYPE.ROW&&(w=new a.ColorKit(g).setAlpha(Rs).toString()),this._rowHeaderBackground.setProps({fill:w}),this._rowHeaderBackground.resize(t,c-s),this._rowHeaderBorder.setProps({fill:S}),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:o,endX:r,endY:s}=this._selectionModel,l=this._defaultStyle;e==null&&(e=l);const c=this._getScale(),{fill:d=l.fill}=e;let{strokeWidth:u=l.strokeWidth}=e;u/=c;const h=this._selectionModel.highlightToSelection();if(!h){this._backgroundControlTop.resize(r-t,s-o),this._backgroundControlTop.setProps({fill:d}),this._backgroundControlBottom.resize(0,0),this._backgroundControlMiddleLeft.resize(0,0),this._backgroundControlMiddleRight.resize(0,0);return}const{startX:g,startY:p,endX:f,endY:S}=h,v=u/2,C={left:-v,top:-v,width:r-t+v*2,height:p-o+v};C.height<0&&(C.width=0,C.height=0),this._backgroundControlTop.transformByState(C);const I={left:-v,top:p-o,width:g-t+v,height:S-p};I.width<0&&(I.width=0,I.height=0),this._backgroundControlMiddleLeft.transformByState(I);const b={left:f-t-v,top:p-o,width:r-f+v*2,height:S-p};b.width<0&&(b.width=0,b.height=0),this._backgroundControlMiddleRight.transformByState(b);const T={left:-v,top:S-o,width:r-t+v*2,height:s-S+v};T.height<0&&(T.width=0,T.height=0),this._backgroundControlBottom.transformByState(T),this._backgroundControlTop.setProps({fill:d}),this._backgroundControlMiddleLeft.setProps({fill:d}),this._backgroundControlMiddleRight.setProps({fill:d}),this._backgroundControlBottom.setProps({fill:d})}_updateWidgets(e){const{startX:t,startY:o,endX:r,endY:s}=this._selectionModel,l=this._defaultStyle;e==null&&(e=l);const{stroke:c=l.stroke,widgets:d=l.widgets,widgetStroke:u=l.widgetStroke}=e,h=this._getScale();let{widgetSize:g=l.widgetSize,widgetStrokeWidth:p=l.widgetStrokeWidth}=e;g/=h,p/=h;const f={left:-g/2+p/2,center:(r-t)/2-g/2+p/2,right:r-t-g/2+p/2,top:-g/2,middle:(s-o)/2-g/2,bottom:s-o-g/2+p/2},S=g-p;this._widgetRects.forEach(v=>{v.setProps({fill:c,stroke:u})}),d.tl===!0?(this._topLeftWidget.transformByState({height:S,width:S,left:f.left,top:f.top,strokeWidth:p}),this._topLeftWidget.show()):this._topLeftWidget.hide(),d.tc===!0?(this._topCenterWidget.transformByState({height:S,width:S,left:f.center,top:f.top,strokeWidth:p}),this._topCenterWidget.show()):this._topCenterWidget.hide(),d.tr===!0?(this._topRightWidget.transformByState({height:S,width:S,left:f.right,top:f.top,strokeWidth:p}),this._topRightWidget.show()):this._topRightWidget.hide(),d.ml===!0?(this._middleLeftWidget.transformByState({height:S,width:S,left:f.left,top:f.middle,strokeWidth:p}),this._middleLeftWidget.show()):this._middleLeftWidget.hide(),d.mr===!0?(this._middleRightWidget.transformByState({height:S,width:S,left:f.right,top:f.middle,strokeWidth:p}),this._middleRightWidget.show()):this._middleRightWidget.hide(),d.bl===!0?(this._bottomLeftWidget.transformByState({height:S,width:S,left:f.left,top:f.bottom,strokeWidth:p}),this._bottomLeftWidget.show()):this._bottomLeftWidget.hide(),d.bc===!0?(this._bottomCenterWidget.transformByState({height:S,width:S,left:f.center,top:f.bottom,strokeWidth:p}),this._bottomCenterWidget.show()):this._bottomCenterWidget.hide(),d.br===!0?(this._bottomRightWidget.transformByState({height:S,width:S,left:f.right,top:f.bottom,strokeWidth:p}),this._bottomRightWidget.show()):this._bottomRightWidget.hide()}_hasWidgets(e){if(e==null)return!1;const t=Object.keys(e);if(t.length===0)return!1;for(const o of t)if(e[o]===!0)return!0;return!0}_getScale(){const{scaleX:e,scaleY:t}=this._scene.getAncestorScale();return Math.max(e,t)}_stopAntLineAnimation(){this._antLineOffset=0,P.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=P.requestNewFrame(()=>{this._startAntLineAnimation()})}}const Ts="__SpreadsheetHelperSelectionTempRect",dd=35;class ud{constructor(i,e,t,o,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=i,this._skeleton=e,this._scene=t,this._themeService=o,this._injector=r,this._initialControl(),this._initialWidget(),this._initialFill(),this._control.dispose$.subscribe(()=>{this.dispose()})}get isHelperSelection(){return this._control.isHelperSelection}dispose(){var i,e;(i=this._scrollTimer)==null||i.dispose(),this._fillControlColors=[],this._clearObserverEvent(),(e=this._helperSelection)==null||e.dispose()}_getFreeze(){var t,o;return(o=(t=this._injector.get(P.IRenderManagerService).withCurrentTypeOfUnit(a.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:t.getCurrent())==null?void 0:o.skeleton.getWorksheetConfig().freeze}_isSelectionInViewport(i,e){const t=this._getFreeze()||{startRow:-1,startColumn:-1,xSplit:0,ySplit:0};switch(e.viewportKey){case P.SHEET_VIEWPORT_KEY.VIEW_MAIN:return i.endRow>=t.startRow&&i.endColumn>=t.startColumn;case P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP:case P.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT:return i.endColumn>=t.startColumn&&i.startRow<t.startRow;case P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT:case P.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM:return i.endRow>=t.startRow&&i.startColumn<t.startColumn;case P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP:case P.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT:case P.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP:case P.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP:return i.startRow<t.startRow&&i.startColumn<t.startColumn}}_clearObserverEvent(){var i,e;(i=this._scenePointerMoveSub)==null||i.unsubscribe(),(e=this._scenePointerUpSub)==null||e.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}_initialControl(){const{leftControl:i,rightControl:e,topControl:t,bottomControl:o}=this._control;[i,e,t,o].forEach(r=>{r.onPointerDown$.subscribeEvent(()=>{var l;((l=this._injector.get(_e,k.Quantity.OPTIONAL))==null?void 0:l.interceptor.fetchThroughInterceptors(sr)(!1,null))!==!1&&r.setCursor(P.CURSOR_TYPE.MOVE)}),r.onPointerLeave$.subscribeEvent(()=>{r.resetCursor()}),r.onPointerDown$.subscribeEvent(this._controlEvent.bind(this))})}_controlMoving(i,e){var y;const t=this._scene,o=t.getVpScrollXYInfoByPosToVp(P.Vector2.FromArray([i,e])),{scaleX:r,scaleY:s}=t.getAncestorScale(),l=this._skeleton.getCellPositionByOffset(i,e,r,s,o),{row:c,column:d}=l,u=this._skeleton.getRowCount()-1,h=this._skeleton.getColumnCount()-1;let g=c+this._relativeSelectionPositionRow;g<0&&(g=0);let p=g+this._relativeSelectionRowLength;p>u&&(p=u,p-g<this._relativeSelectionRowLength&&(g=p-this._relativeSelectionRowLength));let f=d+this._relativeSelectionPositionColumn;f<0&&(f=0);let S=f+this._relativeSelectionColumnLength;S>h&&(S=h,S-f<this._relativeSelectionColumnLength&&(f=S-this._relativeSelectionColumnLength));const v=this._skeleton.getNoMergeCellPositionByIndex(g,f),C=this._skeleton.getNoMergeCellPositionByIndex(p,S),I=(v==null?void 0:v.startY)||0,b=(C==null?void 0:C.endY)||0,T=(v==null?void 0:v.startX)||0,w=(C==null?void 0:C.endX)||0;(y=this._helperSelection)==null||y.transformByState({left:T,top:I,width:w-T,height:b-I}),this._targetSelection={startY:I,endY:b,startX:T,endX:w,startRow:g,endRow:p,startColumn:f,endColumn:S},this._control.selectionMoving$.next(this._targetSelection)}_controlEvent(i){const{offsetX:e,offsetY:t}=i,o=this._scene,r=o.getRelativeToViewportCoord(P.Vector2.FromArray([e,t])),{x:s,y:l}=r,c=o.getVpScrollXYInfoByPosToVp(r),{scaleX:d,scaleY:u}=o.getAncestorScale(),h=this._skeleton.getCellPositionByOffset(s,l,d,u,c);this._startOffsetX=s,this._startOffsetY=l;const{row:g,column:p}=h,{startRow:f,startColumn:S,endRow:v,endColumn:C}=this._control.model;let I=0,b=0;g<f?I-=1:g>v&&(I+=1),p<S?b-=1:p>C&&(b+=1),this._relativeSelectionPositionRow=f-g+I,this._relativeSelectionPositionColumn=S-p+b,this._relativeSelectionRowLength=v-f,this._relativeSelectionColumnLength=C-S;const T=this._control.selectionStyle,w=this._getScale();this.isHelperSelection&&(this._helperSelection=new P.Rect(Ts,{stroke:T.stroke,strokeWidth:T.strokeWidth/w}),o.addObject(this._helperSelection));const y=o.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),M=P.ScrollTimer.create(o);M.startScroll(s,l,y),this._scrollTimer=M,o.disableEvent(),this._scenePointerMoveSub=o.onPointerMove$.subscribeEvent(A=>{var W;const{offsetX:N,offsetY:x}=A;if(((W=this._injector.get(_e,k.Quantity.OPTIONAL))==null?void 0:W.interceptor.fetchThroughInterceptors(sr)(!1,null))===!1)return;const{x:H,y:L}=o.getRelativeToViewportCoord(P.Vector2.FromArray([N,x]));this._controlMoving(H,L),o.setCursor(P.CURSOR_TYPE.MOVE),M.scrolling(H,L,()=>{this._controlMoving(H,L)})}),this._scenePointerUpSub=o.onPointerUp$.subscribeEvent(()=>{var N,x;(N=this._helperSelection)==null||N.dispose();const A=this._scene;A.resetCursor(),this._clearObserverEvent(),A.enableEvent(),(x=this._scrollTimer)==null||x.dispose(),this._control.selectionMoved$.next(this._targetSelection)})}_initialWidget(){const{topLeftWidget:i,topCenterWidget:e,topRightWidget:t,middleLeftWidget:o,middleRightWidget:r,bottomLeftWidget:s,bottomCenterWidget:l,bottomRightWidget:c}=this._control,d=[P.CURSOR_TYPE.NORTH_WEST_RESIZE,P.CURSOR_TYPE.NORTH_RESIZE,P.CURSOR_TYPE.NORTH_EAST_RESIZE,P.CURSOR_TYPE.WEST_RESIZE,P.CURSOR_TYPE.EAST_RESIZE,P.CURSOR_TYPE.SOUTH_WEST_RESIZE,P.CURSOR_TYPE.SOUTH_RESIZE,P.CURSOR_TYPE.SOUTH_EAST_RESIZE];[i,e,t,o,r,s,l,c].forEach((u,h)=>{u.onPointerEnter$.subscribeEvent(()=>{u.setCursor(d[h])}),u.onPointerLeave$.subscribeEvent(()=>{u.resetCursor()}),u.onPointerDown$.subscribeEvent(g=>{this._widgetEvent(g,d[h])})})}_widgetMoving(i,e,t){const o=this._scene,r=o.getVpScrollXYInfoByPosToVp(P.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),{scaleX:s,scaleY:l}=o.getAncestorScale(),c=this._skeleton.getCellPositionByOffset(i,e,s,l,r),{row:d,column:u}=c,{rowHeaderWidth:h,columnHeaderHeight:g}=this._skeleton;let p=this._relativeSelectionPositionRow,f=this._relativeSelectionPositionColumn,S=d,v=u;t===P.CURSOR_TYPE.NORTH_WEST_RESIZE?(p=d,f=u,S=this._relativeSelectionPositionRow,v=this._relativeSelectionPositionColumn):t===P.CURSOR_TYPE.NORTH_RESIZE?(p=d,f=this._relativeSelectionPositionColumn,S=this._relativeSelectionPositionRow,v=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength):t===P.CURSOR_TYPE.NORTH_EAST_RESIZE?(p=d,f=this._relativeSelectionPositionColumn,S=this._relativeSelectionPositionRow,v=u):t===P.CURSOR_TYPE.WEST_RESIZE?(p=this._relativeSelectionPositionRow,f=u,S=this._relativeSelectionPositionRow+this._relativeSelectionRowLength,v=this._relativeSelectionPositionColumn):t===P.CURSOR_TYPE.EAST_RESIZE?S=this._relativeSelectionPositionRow+this._relativeSelectionRowLength:t===P.CURSOR_TYPE.SOUTH_WEST_RESIZE?(p=this._relativeSelectionPositionRow,f=u,S=d,v=this._relativeSelectionPositionColumn):t===P.CURSOR_TYPE.SOUTH_RESIZE&&(p=this._relativeSelectionPositionRow,f=this._relativeSelectionPositionColumn,S=d,v=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength);const{startRow:C,startColumn:I,endRow:b,endColumn:T}=this._swapPositions(p,f,S,v),w=this._skeleton.getNoMergeCellPositionByIndex(C,I),y=this._skeleton.getNoMergeCellPositionByIndex(b,T),M=(w==null?void 0:w.startY)||0,A=(y==null?void 0:y.endY)||0,N=(w==null?void 0:w.startX)||0,x=(y==null?void 0:y.endX)||0;this._targetSelection={startY:M,endY:A,startX:N,endX:x,startRow:p,endRow:S,startColumn:f,endColumn:v},this._control.update(this._targetSelection,h,g,this._control.selectionStyle),this._control.clearHighlight(),this._control.selectionScaling$.next(this._targetSelection)}_widgetEvent(i,e){const{offsetX:t,offsetY:o}=i,r=this._scene,s=r.getRelativeToViewportCoord(P.Vector2.FromArray([t,o])),{x:l,y:c}=s;this._startOffsetX=t,this._startOffsetY=o;const{startRow:d,startColumn:u,endRow:h,endColumn:g}=this._control.model;this._relativeSelectionPositionRow=d,this._relativeSelectionPositionColumn=u,this._relativeSelectionRowLength=h-d,this._relativeSelectionColumnLength=g-u,e===P.CURSOR_TYPE.NORTH_WEST_RESIZE?(this._relativeSelectionPositionRow=h,this._relativeSelectionPositionColumn=g):e===P.CURSOR_TYPE.NORTH_RESIZE?this._relativeSelectionPositionRow=h:e===P.CURSOR_TYPE.NORTH_EAST_RESIZE?this._relativeSelectionPositionRow=h:e===P.CURSOR_TYPE.WEST_RESIZE?this._relativeSelectionPositionColumn=g:e===P.CURSOR_TYPE.SOUTH_WEST_RESIZE&&(this._relativeSelectionPositionColumn=g);const p=P.ScrollTimer.create(r);p.startScroll(l,c),this._scrollTimer=p,r.disableEvent(),this._scenePointerMoveSub=r.onPointerMove$.subscribeEvent(f=>{const{offsetX:S,offsetY:v}=f,{x:C,y:I}=r.getRelativeToViewportCoord(P.Vector2.FromArray([S,v]));this._widgetMoving(C,I,e),r.setCursor(e),p.scrolling(C,I,()=>{this._widgetMoving(C,I,e)})}),this._scenePointerUpSub=r.onPointerUp$.subscribeEvent(()=>{var S;const f=this._scene;f.resetCursor(),this._clearObserverEvent(),f.enableEvent(),(S=this._scrollTimer)==null||S.dispose(),this._control.selectionScaled$.next(this._targetSelection)})}_initialFill(){const{fillControl:i}=this._control;i.onPointerEnter$.subscribeEvent(e=>{this._injector.get(_e).interceptor.fetchThroughInterceptors(lr)(!1,{x:e.offsetX,y:e.offsetY,skeleton:this._skeleton,scene:this._scene})&&i.setCursor(P.CURSOR_TYPE.CROSSHAIR)}),i.onPointerLeave$.subscribeEvent(()=>{i.resetCursor()}),i.onPointerDown$.subscribeEvent(this._fillEvent.bind(this))}_fillMoving(i,e){var x,D,H;const t=this._scene,o=t.getViewportScrollXY(this._activeViewport),{scaleX:r,scaleY:s}=t.getAncestorScale(),l=this._skeleton.getCellPositionByOffset(i,e,r,s,o),{row:c,column:d}=l,u=t.getRelativeToViewportCoord(P.Vector2.FromArray([i,e])),h=this._skeleton.getRowCount()-1,g=this._skeleton.getColumnCount()-1;let p=this._relativeSelectionPositionRow,f=this._relativeSelectionPositionColumn,S=this._relativeSelectionPositionRow+this._relativeSelectionRowLength,v=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength,C=!1,I=!0;if((d<f||d>v)&&c>=p&&c<=S){const L=this._fillRuler(d,f,v,this._relativeSelectionColumnLength,g);f=L.startRowOrColumn,v=L.endRowOrColumn,C=L.isLighten,I=!1}else if((c<p||c>S)&&d>=f&&d<=v){const L=this._fillRuler(c,p,S,this._relativeSelectionRowLength,h);p=L.startRowOrColumn,S=L.endRowOrColumn,C=L.isLighten}else if(Math.abs(this._startOffsetX-u.x-o.x)/2>Math.abs(this._startOffsetY-u.y-o.y)){const L=this._fillRuler(d,f,v,this._relativeSelectionColumnLength,g);f=L.startRowOrColumn,v=L.endRowOrColumn,C=L.isLighten,I=!1}else{const L=this._fillRuler(c,p,S,this._relativeSelectionRowLength,h);p=L.startRowOrColumn,S=L.endRowOrColumn,C=L.isLighten}const b=this._skeleton.getNoMergeCellPositionByIndex(p,f),T=this._skeleton.getNoMergeCellPositionByIndex(S,v),w=(b==null?void 0:b.startY)||0,y=(T==null?void 0:T.endY)||0,M=(b==null?void 0:b.startX)||0,A=(T==null?void 0:T.endX)||0;C?this._controlHandler((L,W)=>{const X=new a.ColorKit(this._fillControlColors[W]).lighten(dd).toRgbString();L.setProps({fill:X})}):this._controlHandler((L,W)=>{L.setProps({fill:this._fillControlColors[W]})});const N=m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/this._getScale();p===S&&I===!0||f===v&&I===!1?(x=this._helperSelection)==null||x.hide():((D=this._helperSelection)==null||D.transformByState({left:M-N/2,top:w-N/2,width:A-M,height:y-w}),(H=this._helperSelection)==null||H.show()),this._targetSelection={startY:w,endY:y,startX:M,endX:A,startRow:p,endRow:S,startColumn:f,endColumn:v},this._control.selectionFilling$.next(this._targetSelection)}_fillEvent(i){const{offsetX:e,offsetY:t}=i,o=this._scene,r=o.getRelativeToViewportCoord(P.Vector2.FromArray([e,t])),{x:s,y:l}=r;this._startOffsetX=s,this._startOffsetY=l;const{startRow:c,startColumn:d,endRow:u,endColumn:h}=this._control.model;this._isInMergeState=this._hasMergeInRange(c,d,u,h),this._relativeSelectionPositionRow=c,this._relativeSelectionPositionColumn=d,this._relativeSelectionRowLength=u-c,this._relativeSelectionColumnLength=h-d;const g=this._control.selectionStyle;let p=g==null?void 0:g.stroke,f=g==null?void 0:g.strokeWidth;const S=m.getNormalSelectionStyle(this._themeService);p==null&&(p=S.stroke),f==null&&(f=S.strokeWidth);const v=this._getScale();f/=v;const C=m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/v,I=new a.ColorKit(p).darken(2).toRgbString();this.isHelperSelection&&(this._helperSelection=new P.Rect(Ts,{stroke:I,strokeWidth:f+C/2}),o.addObject(this._helperSelection)),this._activeViewport=o.getActiveViewportByCoord(P.Vector2.FromArray([e,t]));const b=o.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),T=P.ScrollTimer.create(o,this._activeViewport.viewportKey===P.SHEET_VIEWPORT_KEY.VIEW_MAIN?P.ScrollTimerType.ALL:P.ScrollTimerType.NONE);T.startScroll(s,l,b),this._scrollTimer=T,o.disableEvent(),this._controlHandler(w=>{this._fillControlColors.push(w.fill)}),this._scenePointerMoveSub=o.onPointerMove$.subscribeEvent(w=>{var L;const{offsetX:y,offsetY:M}=w,A=o.getActiveViewportByCoord(P.Vector2.FromArray([y,M]));if(!this._injector.get(_e).interceptor.fetchThroughInterceptors(lr)(!1,{x:i.offsetX,y:i.offsetY,skeleton:this._skeleton,scene:this._scene}))return;const{x,y:D}=o.getRelativeToViewportCoord(P.Vector2.FromArray([y,M]));this._fillMoving(x,D),o.setCursor(P.CURSOR_TYPE.CROSSHAIR);const H=this._targetSelection;if(b&&A&&((L=this._activeViewport)==null?void 0:L.viewportKey)!==(A==null?void 0:A.viewportKey)){let W;H.startRow!==c?(T.scrollTimerType=P.ScrollTimerType.Y,W={...H,endRow:H.startRow}):H.endRow!==u?(T.scrollTimerType=P.ScrollTimerType.Y,W={...H,startRow:H.endRow}):H.startColumn!==d?(T.scrollTimerType=P.ScrollTimerType.X,W={...H,endColumn:H.startColumn}):(T.scrollTimerType=P.ScrollTimerType.X,W={...H,startColumn:H.endColumn}),this._isSelectionInViewport(W,A)&&(b.scrollTo({x:T.scrollTimerType===P.ScrollTimerType.X?0:void 0,y:T.scrollTimerType===P.ScrollTimerType.Y?0:void 0}),this._activeViewport=A)}T.scrolling(x,D,()=>{this._fillMoving(x,D)})}),this._scenePointerUpSub=o.onPointerUp$.subscribeEvent(()=>{var y,M;(y=this._helperSelection)==null||y.dispose();const w=this._scene;w.resetCursor(),this._clearObserverEvent(),w.enableEvent(),(M=this._scrollTimer)==null||M.dispose(),this._control.refreshSelectionFilled(this._targetSelection),this._isInMergeState=!1,this._controlHandler((A,N)=>{A.setProps({fill:this._fillControlColors[N]})}),this._fillControlColors=[]})}_hasMergeInRange(i,e,t,o){const r=this._skeleton.mergeData;if(!r)return!1;for(const s of r){const{startRow:l,startColumn:c,endRow:d,endColumn:u}=s,h={left:e,top:i,right:o,bottom:t},g={left:c,top:l,right:u,bottom:d};if(P.isRectIntersect(h,g))return!0}return!1}_swapPositions(i,e,t,o){const r=Math.min(i,t),s=Math.min(e,o),l=Math.max(i,t),c=Math.max(e,o);return{startRow:r,startColumn:s,endRow:l,endColumn:c}}_controlHandler(i){const{leftControl:e,rightControl:t,topControl:o,bottomControl:r,backgroundControlTop:s,backgroundControlMiddleLeft:l,backgroundControlMiddleRight:c,backgroundControlBottom:d,fillControl:u}=this._control,h=[e,t,o,r,s,l,c,d,u];for(let g=0,p=h.length;g<p;g++){const f=h[g];i(f,g)}}_fillRuler(i,e,t,o,r){let s=!1;if(i<e)if(this._isInMergeState&&i<e){const l=e-i,c=o+1,d=Math.ceil(l/c);let u=e-d*c;u<0&&(u=e-(d-1)*c),e=u}else e=i;else if(i>=e&&i<=t)s=!0,this._isInMergeState||(t=i);else if(this._isInMergeState&&i>t){const l=i-t,c=o+1,d=Math.ceil(l/c);let u=t+d*c;u>r&&(u=t+(d-1)*c),t=u}else t=i;return{rowOrColumn:i,startRowOrColumn:e,endRowOrColumn:t,isLighten:s}}_getScale(){const{scaleX:i,scaleY:e}=this._scene.getAncestorScale();return Math.max(i,e)}}function Rt(n,i){const{range:e,primary:t,style:o}=n;return{rangeWithCoord:Or(i,e),primaryWithCoord:t?Dr(t,i):null,style:o}}function Dr(n,i){const{actualRow:e,actualColumn:t,isMerged:o,isMergedMainCell:r,startRow:s,startColumn:l,endRow:c,endColumn:d}=n,u=i.getNoMergeCellPositionByIndex(e,t),h=i.getNoMergeCellPositionByIndex(s,l),g=i.getNoMergeCellPositionByIndex(c,d);return{actualRow:e,actualColumn:t,isMerged:o,isMergedMainCell:r,startX:u.startX,startY:u.startY,endX:u.endX,endY:u.endY,mergeInfo:{startRow:s,startColumn:l,endRow:c,endColumn:d,startY:(h==null?void 0:h.startY)||0,endY:(g==null?void 0:g.endY)||0,startX:(h==null?void 0:h.startX)||0,endX:(g==null?void 0:g.endX)||0}}}const _e=k.createIdentifier("univer.sheet.selection-render-service");class kr extends a.Disposable{constructor(e,t,o,r){super();E(this,"_downObserver");E(this,"_scenePointerMoveSub");E(this,"_scenePointerUpSub");E(this,"_controlFillConfig$",new O.BehaviorSubject(null));E(this,"controlFillConfig$",this._controlFillConfig$.asObservable());E(this,"_selectionControls",[]);E(this,"_startRangeWhenPointerDown",{startY:0,endY:0,startX:0,endX:0,startRow:-1,endRow:-1,startColumn:-1,endColumn:-1});E(this,"_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 O.BehaviorSubject([]));E(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());E(this,"_selectionMoving$",new O.Subject);E(this,"selectionMoving$",this._selectionMoving$.asObservable());E(this,"_selectionMoveStart$",new O.Subject);E(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());E(this,"_activeViewport");E(this,"interceptor",new a.InterceptorManager({RANGE_MOVE_PERMISSION_CHECK:sr,RANGE_FILL_PERMISSION_CHECK:lr}));this._injector=e,this._themeService=t,this._shortcutService=o,this._renderManagerService=r,this._resetStyle()}_setStyle(e){this._selectionStyle=e}_resetStyle(){this._setStyle(m.getNormalSelectionStyle(this._themeService))}getViewPort(){return this._activeViewport}_addSelectionControlBySelectionData(e){var g;const{rangeWithCoord:t,primaryWithCoord:o}=e,{rangeType:r}=t,s=this._skeleton,l=(g=e.style)!=null?g:m.getNormalSelectionStyle(this._themeService),c=this._scene;if(!c||!s)return;const d=this.newSelectionControl(c,r||a.RANGE_TYPE.NORMAL);new ud(d,s,c,this._themeService,this._injector);const{rowHeaderWidth:u,columnHeaderHeight:h}=s;d.update(t,u,h,l,o)}newSelectionControl(e,t){const o=this.getSelectionControls(),r=new Uo(e,o.length,this._isHeaderHighlight,this._themeService);return this._selectionControls.push(r),r}updateControlForCurrentByRangeData(e){const t=this.getSelectionControls();if(!t)return;const o=this._skeleton;if(o==null)return;const{rowHeaderWidth:r,columnHeaderHeight:s}=o;for(let l=0,c=e.length;l<c;l++){const{rangeWithCoord:d,primaryWithCoord:u,style:h}=e[l];t[l].update(d,r,s,h,u)}}refreshSelectionMoveStart(){this._selectionMoveStart$.next(this.getSelectionDataWithStyle())}_changeRuntime(e,t,o){this._skeleton=e,this._scene=t,this._activeViewport=o||(t==null?void 0:t.getViewports()[0])}getSkeleton(){return this._skeleton}getSelectionDataWithStyle(){return this._selectionControls.map(t=>t.getValue())}getSelectionControls(){return this._selectionControls}_clearSelectionControls(){const e=this.getSelectionControls();for(const t of e)t.dispose();this._selectionControls.length=0}_getFreeze(){var t,o;return(o=(t=this._renderManagerService.withCurrentTypeOfUnit(a.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:t.getCurrent())==null?void 0:o.skeleton.getWorksheetConfig().freeze}_getViewportByCell(e,t){if(e===void 0||t===void 0)return null;const o=this._getFreeze();if(!o||o.startRow<=0&&o.startColumn<=0)return this._scene.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(e>o.startRow&&t>o.startColumn)return this._scene.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(e<=o.startRow&&t<=o.startColumn)return this._scene.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(e<=o.startRow&&t>o.startColumn)return this._scene.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(e>o.startRow&&t<=o.startColumn)return this._scene.getViewport(P.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._clearEndingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),this._shortcutService.setDisable(!1)}_reset(){var e,t;this._clearSelectionControls(),this._clearMove(),(e=this._downObserver)==null||e.unsubscribe(),this._downObserver=null,(t=this._scenePointerUpSub)==null||t.unsubscribe(),this._scenePointerUpSub=null}resetAndEndSelection(){this.endSelection(),this._reset()}_onPointerDown(e,t=0,o=a.RANGE_TYPE.NORMAL,r,s=P.ScrollTimerType.ALL){var D;this._shouldDetectMergedCells=o===a.RANGE_TYPE.NORMAL;const l=this._skeleton,c=this._scene;if(!c||!l)return;r&&(this._activeViewport=r);const{offsetX:d,offsetY:u}=e,h=c.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!h)return;const g=c.getRelativeToViewportCoord(P.Vector2.FromArray([d,u]));let{x:p,y:f}=g;this._startViewportPosX=p,this._startViewportPosY=f;const S=c.getVpScrollXYInfoByPosToVp(g),{scaleX:v,scaleY:C}=c.getAncestorScale(),I=this._getCellRangeByCursorPosition(p,f,v,C,S);if(!I)return!1;const{rangeWithCoord:b,primaryWithCoord:T}=I,w={...b,rangeType:o};this._startRangeWhenPointerDown={...b,rangeType:o};let y=this.getActiveSelectionControl();const M=this.getSelectionControls();for(const H of M){if(e.button===2&&H.model.isInclude(w)){y=H;return}if(H.model.isEqual(w)){y=H;break}e.shiftKey||H.clearHighlight()}this._checkClearPreviousControls(e);const A=y==null?void 0:y.model.currentCell,N=e.shiftKey&&A,x=this._remainLastEnabled&&!e.ctrlKey&&!e.shiftKey&&!this._skipLastEnabled&&!this._singleSelectionEnabled;N&&A?this._performSelectionByTwoCells(A,w,l,o,y):x&&y?this._updateSelectionControlRange(y,w,T):(y=this.newSelectionControl(c,o),this._updateSelectionControlRange(y,w,T)),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),c.disableEvent(),this._clearEndingListeners(),this._addEndingListeners(),(D=c.getTransformer())==null||D.clearSelectedObjects(),(o===a.RANGE_TYPE.ROW||o===a.RANGE_TYPE.COLUMN)&&(o===a.RANGE_TYPE.ROW?p=0:o===a.RANGE_TYPE.COLUMN&&(f=0),this._moving(p,f,y,o)),this._setupPointerMoveListener(h,y,o,s,p,f),this._shortcutService.setDisable(!0),this._scenePointerUpSub=c.onPointerUp$.subscribeEvent(()=>{this._clearEndingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),this._shortcutService.setDisable(!1)})}_setupPointerMoveListener(e,t,o,r=P.ScrollTimerType.ALL,s,l){var f,S;let c=0,d=0,u=s,h=l;this._scrollTimer=P.ScrollTimer.create(this._scene,r),this._scrollTimer.startScroll((f=e==null?void 0:e.left)!=null?f:0,(S=e==null?void 0:e.top)!=null?S:0,e);const g=this._scene,p=g.getActiveViewportByCoord(P.Vector2.FromArray([s,l]));this._scenePointerMoveSub=g.onPointerMove$.subscribeEvent(v=>{var D,H,L,W,X,q,G,z,Y;const{offsetX:C,offsetY:I}=v,{x:b,y:T}=g.getRelativeToViewportCoord(P.Vector2.FromArray([C,I]));this._moving(b,T,t,o);let w=b,y=T;const M=this.getActiveSelectionControl(),A=this._getFreeze(),N=M==null?void 0:M.model,x=(D=g.getActiveViewportByCoord(P.Vector2.FromArray([C,I])))!=null?D:this._getViewportByCell(N==null?void 0:N.endRow,N==null?void 0:N.endColumn);if(p&&x&&e){const F=u<e.left&&b>e.left||u>e.left&&b<e.left,Z=h<e.top&&T>e.top||h>e.top&&T<e.top;F&&(c+=1),Z&&(d+=1);const K=p.viewportKey,B=x.viewportKey;if(K===P.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP)I<e.top&&((H=N==null?void 0:N.endRow)!=null?H:0)<((L=A==null?void 0:A.startRow)!=null?L:0)?y=e.top:Z&&d%2===1&&e.scrollTo({y:0});else if(K===P.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT)C<e.left&&((W=N==null?void 0:N.endColumn)!=null?W:0)<((X=A==null?void 0:A.startColumn)!=null?X:0)?w=e.left:F&&c%2===1&&e.scrollTo({x:0});else if(K===B){let U=!1,Q=!1;K===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP?(U=!0,Q=!0):K===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP?Q=!0:K===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT&&(U=!0),((q=N==null?void 0:N.endRow)!=null?q:0)>((G=A==null?void 0:A.startRow)!=null?G:0)&&(Q=!1),((z=N==null?void 0:N.endColumn)!=null?z:0)>((Y=A==null?void 0:A.startColumn)!=null?Y:0)&&(U=!1),U&&(w=e.left),Q&&(y=e.top)}else{const U={x:p.scrollX,y:p.scrollY},Q={x:x.scrollX,y:x.scrollY},ee=U.x!==Q.x&&F&&c%2===1,ae=U.y!==Q.y&&Z&&d%2===1;(ee||ae)&&(e.scrollTo({x:ee?U.x:void 0,y:ae?U.y:void 0}),ee||(w=e.left),ae||(y=e.top)),(K===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&B===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||B===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&K===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)&&(w=e.left),(K===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&B===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||B===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&K===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP)&&(y=e.top)}u=b,h=T}this._scrollTimer.scrolling(w,y,()=>{this._moving(b,T,t,o)})})}attachSelectionWithCoord(e){return Rt(e,this._skeleton)}attachPrimaryWithCoord(e){return Dr(e,this._skeleton)}getSelectionCellByPosition(e,t){const o=this._scene,r=this._skeleton,s=o.getViewportScrollXY(o.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX:l,scaleY:c}=o.getAncestorScale();return r.calculateCellIndexByPosition(e,t,l,c,s)}_moving(e,t,o,r){var y,M,A,N,x;const s=this._skeleton,l=this._scene,c={startRow:(y=o==null?void 0:o.model.startRow)!=null?y:-1,endRow:(M=o==null?void 0:o.model.endRow)!=null?M:-1,startColumn:(A=o==null?void 0:o.model.startColumn)!=null?A:-1,endColumn:(N=o==null?void 0:o.model.endColumn)!=null?N:-1},d=l.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),u=(x=this._getViewportByCell(c.endRow,c.endColumn))!=null?x:d,h=l.getVpScrollXYInfoByPosToVp(P.Vector2.FromArray([this._startViewportPosX,this._startViewportPosY]),u),{scaleX:g,scaleY:p}=l.getAncestorScale();r===a.RANGE_TYPE.ROW?e=Number.POSITIVE_INFINITY:r===a.RANGE_TYPE.COLUMN&&(t=Number.POSITIVE_INFINITY);const f=this._getCellRangeByCursorPosition(e,t,g,p,h);if(!f)return!1;const{rangeWithCoord:S}=f,v=this._startRangeWhenPointerDown;let C={startRow:Math.min(S.startRow,v.startRow),startColumn:Math.min(S.startColumn,v.startColumn),endRow:Math.max(S.endRow,v.endRow),endColumn:Math.max(S.endColumn,v.endColumn)};if(this._shouldDetectMergedCells&&(C=s.getSelectionMergeBounding(C.startRow,C.startColumn,C.endRow,C.endColumn)),!C)return!1;const I=s.getNoMergeCellPositionByIndex(C.startRow,C.startColumn),b=s.getNoMergeCellPositionByIndex(C.endRow,C.endColumn),T={startRow:C.startRow,startColumn:C.startColumn,endRow:C.endRow,endColumn:C.endColumn,startY:(I==null?void 0:I.startY)||0,endY:(b==null?void 0:b.endY)||0,startX:(I==null?void 0:I.startX)||0,endX:(b==null?void 0:b.endX)||0},w=c.startRow!==C.startRow||c.startColumn!==C.startColumn||c.endRow!==C.endRow||c.endColumn!==C.endColumn;o!=null&&w&&(this._updateSelectionControlRange(o,T),this._selectionMoving$.next(this.getSelectionDataWithStyle()))}_updateSelectionControlRange(e,t,o){const r=this._skeleton,{rowHeaderWidth:s,columnHeaderHeight:l}=r;e.update(t,s,l,this._selectionStyle,o||null)}_clearMove(){var e;(e=this._scenePointerMoveSub)==null||e.unsubscribe(),this._scenePointerMoveSub=null}_clearEndingListeners(){var t,o,r,s;this._scene.enableEvent(),this._clearMove(),(t=this._scenePointerUpSub)==null||t.unsubscribe(),this._scenePointerUpSub=null,(o=this._scrollTimer)==null||o.dispose(),(r=this._cancelDownSubscription)==null||r.unsubscribe(),this._cancelDownSubscription=null,(s=this._cancelUpSubscription)==null||s.unsubscribe(),this._cancelUpSubscription=null}_addEndingListeners(){var o,r,s;const e=this._scene,t=(o=e.getEngine())==null?void 0:o.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._clearEndingListeners()),this._cancelUpSubscription=t.onPointerUp$.subscribeEvent(()=>this._clearEndingListeners()))}_getCellRangeByCursorPosition(e,t,o,r,s){var I;if(this._shouldDetectMergedCells){const b=(I=this._skeleton)==null?void 0:I.calculateCellIndexByPosition(e,t,o,r,s);if(!b)return;const T=a.makeCellToSelection(b);return{primaryWithCoord:b,rangeWithCoord:T}}const l=this._skeleton;if(l==null)return;const c=l.getCellPositionByOffset(e,t,o,r,s),{row:d,column:u}=c,h=l.getNoMergeCellPositionByIndex(d,u),{startX:g,startY:p,endX:f,endY:S}=h,v={startY:p,endY:S,startX:g,endX:f,startRow:d,endRow:d,startColumn:u,endColumn:u};return{primaryWithCoord:{actualRow:d,actualColumn:u,isMerged:!1,isMergedMainCell:!1,startY:p,endY:S,startX:g,endX:f,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,o,r,s){const{actualRow:l,actualColumn:c,mergeInfo:d}=e,u=Math.min(l,t.startRow,d.startRow),h=Math.max(l,t.endRow,d.endRow),g=Math.min(c,t.startColumn,d.startColumn),p=Math.max(c,t.endColumn,d.endColumn),f=o.getMergeBounding(u,g,h,p),S=o.getNoMergeCellPositionByIndex(f.startRow,f.startColumn),v=o.getNoMergeCellPositionByIndex(f.endRow,f.endColumn),C={startColumn:f.startColumn,startRow:f.startRow,endColumn:f.endColumn,endRow:f.endRow,startY:S.startY,endY:v.endY,startX:S.startX,endX:v.endX,rangeType:r},I=o.getCellByIndex(l,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 Hr(n){return{range:{startRow:0,startColumn:0,endRow:n.getRowCount()-1,endColumn:n.getColumnCount()-1,rangeType:a.RANGE_TYPE.ALL},primary:Bo(n).primary,style:null}}function Bo(n){const i=n.mergeData;return m.transformCellDataToSelectionData(0,0,i)||{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,gd=(n,i,e,t)=>{for(var o=t>1?void 0:t?md(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&hd(i,e,o),o},co=(n,i)=>(e,t)=>i(e,t,n);const pd=a.createInterceptorKey("BEFORE_CELL_EDIT"),fd=a.createInterceptorKey("AFTER_CELL_EDIT"),Sd=a.createInterceptorKey("AFTER_CELL_EDIT_ASYNC");exports.EditorBridgeService=class extends a.Disposable{constructor(e,t,o,r){super();E(this,"_editorUnitId",a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);E(this,"_isForceKeepVisible",!1);E(this,"_editorIsDirty",!1);E(this,"_visible",{visible:!1,eventType:P.DeviceInputEventType.Dblclick});E(this,"_currentEditCell",null);E(this,"_currentEditCellState",null);E(this,"_currentEditCellState$",new O.BehaviorSubject(null));E(this,"currentEditCellState$",this._currentEditCellState$.asObservable());E(this,"_visible$",new O.BehaviorSubject(this._visible));E(this,"visible$",this._visible$.asObservable());E(this,"_afterVisible$",new O.BehaviorSubject(this._visible));E(this,"afterVisible$",this._afterVisible$.asObservable());E(this,"interceptor",new a.InterceptorManager({BEFORE_CELL_EDIT:pd,AFTER_CELL_EDIT:fd,AFTER_CELL_EDIT_ASYNC:Sd}));this._renderManagerService=e,this._themeService=t,this._univerInstanceService=o,this._editorService=r,this.disposeWithMe(a.toDisposable(()=>{this._currentEditCellState$.complete(),this._currentEditCell=null})),this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().AFTER_CELL_EDIT,{priority:-1,handler:s=>s})),this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().BEFORE_CELL_EDIT,{priority:-1,handler:s=>s})),this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().AFTER_CELL_EDIT_ASYNC,{priority:-1,handler:s=>s}))}refreshEditCellState(){const e=this.getLatestEditCellState();this._currentEditCellState=e,this._currentEditCellState$.next(e)}setEditCell(e){this._currentEditCell=e;const t=this.getLatestEditCellState();this._currentEditCellState=t,this._currentEditCellState$.next(t)}getEditCellState(){return this._currentEditCellState}getLatestEditCellState(){var L,W,X;const e=this._currentEditCell;if(e==null)return;const t=this._renderManagerService.getCurrentTypeOfRenderer(a.UniverInstanceType.UNIVER_SHEET);if(!t)return;const o=t.with(exports.SheetSkeletonManagerService).getCurrentSkeleton(),r=t.with(_e),{primary:s,unitId:l,sheetId:c,scene:d,engine:u}=e,{startRow:h,startColumn:g}=s,p=Dr(s,o);if(p==null)return;const f=a.makeCellToSelection(p),S=P.getCanvasOffsetByEngine(u);let{startX:v,startY:C,endX:I,endY:b}=f;const{scaleX:T,scaleY:w}=d.getAncestorScale(),y=d.getViewportScrollXY(r.getViewPort());v=o.convertTransformToOffsetX(v,T,y),C=o.convertTransformToOffsetY(C,w,y),I=o.convertTransformToOffsetX(I,T,y),b=o.convertTransformToOffsetY(b,w,y);const M=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),A=M.getActiveSheet();if(!A)return;const N={workbook:M,worksheet:A,unitId:M.getUnitId(),subUnitId:A.getSheetId(),row:h,col:g},x=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().BEFORE_CELL_EDIT)(A.getCell(h,g),N);let D=x&&o.getCellDocumentModelWithFormula(x);const H=(L=D==null?void 0:D.documentModel)==null?void 0:L.documentStyle.renderConfig;if(H!=null&&(H.cellValueType=a.CellValueType.STRING),!D||D.documentModel==null){const q=o.getBlankCellDocumentModel(x);if(D!=null){const{verticalAlign:G,horizontalAlign:z,wrapStrategy:Y,textRotation:F,fill:Z}=D,{centerAngle:K,vertexAngle:B}=P.convertTextRotation(F);q.documentModel.documentStyle.renderConfig={verticalAlign:G,horizontalAlign:z,wrapStrategy:Y,background:{rgb:Z},centerAngle:K,vertexAngle:B}}D=q}if((W=D.documentModel)==null||W.setZoomRatio(Math.max(T,w)),(x==null?void 0:x.isInArrayFormulaRange)===!0){const q=(X=D.documentModel)==null?void 0:X.getBody();q&&(q.textRuns=[{st:0,ed:q.dataStream.length-2,ts:{cl:{rgb:this._themeService.getCurrentTheme().textColorSecondary}}}])}return this._editorService.setOperationSheetUnitId(l),this._editorService.setOperationSheetSubUnitId(c),{position:{startX:v,startY:C,endX:I,endY:b},scaleX:T,scaleY:w,canvasOffset:S,row:h,column:g,unitId:l,sheetId:c,documentLayoutObject:D,editorUnitId:this._editorUnitId,isInArrayFormulaRange:x==null?void 0:x.isInArrayFormulaRange}}getCurrentEditorId(){return this._editorUnitId}changeVisible(e){this._visible=e,e.visible&&(this._editorIsDirty=!1),this._visible$.next(this._visible),this._afterVisible$.next(this._visible)}isVisible(){return this._visible}enableForceKeepVisible(){this._isForceKeepVisible=!0}disableForceKeepVisible(){this._isForceKeepVisible=!1}isForceKeepVisible(){return this._isForceKeepVisible}changeEditorDirty(e){this._editorIsDirty=e}getEditorDirty(){return this._editorIsDirty}};exports.EditorBridgeService=gd([co(0,P.IRenderManagerService),co(1,k.Inject(a.ThemeService)),co(2,a.IUniverInstanceService),co(3,R.IEditorService)],exports.EditorBridgeService);const qe=k.createIdentifier("univer.sheet-editor-bridge.service"),Pe={id:"sheet.operation.set-cell-edit-visible",type:a.CommandType.OPERATION,handler:(n,i)=>{const e=n.get(qe);return i==null?!1:(e.changeVisible(i),!0)}},zn={id:"sheet.operation.set-cell-edit-visible-f2",type:a.CommandType.OPERATION,handler:(n,i)=>(n.get(a.ICommandService).syncExecuteCommand(Pe.id,i),!0)},Gt={id:"sheet.operation.set-cell-edit-visible-arrow",type:a.CommandType.OPERATION,handler:()=>!0},tn={id:"sheet.command.change-zoom-ratio",type:a.CommandType.COMMAND,handler:async(n,i)=>{if(!i)return!1;const e=n.get(a.IUniverInstanceService),t=m.getSheetCommandTarget(e);if(!t)return!1;const{worksheet:o,subUnitId:r,unitId:s}=t,{delta:l,reset:c}=i;let d=c?100:Math.round((o.getConfig().zoomRatio+l)*100);d=Math.max(or[0],d),d=Math.min(or[1],d);const u=d/100;return n.get(a.ICommandService).executeCommand(ze.id,{unitId:s,subUnitId:r,zoomRatio:u})}},nn={id:"sheet.command.set-zoom-ratio",type:a.CommandType.COMMAND,handler:async(n,i)=>{if(!i)return!1;const{unitId:e,subUnitId:t,zoomRatio:o}=i;return n.get(a.ICommandService).executeCommand(ze.id,{unitId:e,subUnitId:t,zoomRatio:o})}};var vd=Object.defineProperty,Cd=Object.getOwnPropertyDescriptor,_d=(n,i,e,t)=>{for(var o=t>1?void 0:t?Cd(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&vd(i,e,o),o},Es=(n,i)=>(e,t)=>i(e,t,n);let Bn=class extends a.Disposable{constructor(n,i,e){super(),this._context=n,this._sheetSkeletonManagerService=i,this._commandService=e,this._skeletonListener(),this._zoomEventBinding()}updateZoom(n,i){const e=this._context.unit.getSheetBySheetId(n);return e?(e.getConfig().zoomRatio=i,e===this._context.unit.getActiveSheet()&&this._updateViewZoom(i),!0):!1}_zoomEventBinding(){var i;const n=(i=this._getSheetObject())==null?void 0:i.scene;n!=null&&this.disposeWithMe(n.onMouseWheel$.subscribeEvent(e=>{if(!e.ctrlKey)return;const t=Math.abs(e.deltaX);let o=t<40?.2:t<80?.4:.2;o*=e.deltaY>0?-1:1,n.scaleX<1&&(o/=2);const r=this._context.unit,s=r.getActiveSheet();if(!s)return;const l=s.getZoomRatio();let c=+Number.parseFloat(`${l+o}`).toFixed(1);c=c>=4?4:c<=.1?.1:c,this._commandService.executeCommand(nn.id,{zoomRatio:Math.round(c*10)/10,unitId: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 i=this._getSheetObject();i==null||i.scene.scale(n,n),i==null||i.spreadsheet.makeForceDirty()}_getSheetObject(){return Ke(this._context.unit,this._context)}};Bn=_d([Es(1,k.Inject(exports.SheetSkeletonManagerService)),Es(2,a.ICommandService)],Bn);const ze={id:"sheet.operation.set-zoom-ratio",type:a.CommandType.OPERATION,handler:(n,i)=>{const t=n.get(P.IRenderManagerService).getRenderById(i.unitId);return t?t.with(Bn).updateZoom(i.subUnitId,i.zoomRatio):!1}};var Id=Object.defineProperty,bd=Object.getOwnPropertyDescriptor,Rd=(n,i,e,t)=>{for(var o=t>1?void 0:t?bd(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&Id(i,e,o),o},pt=(n,i)=>(e,t)=>i(e,t,n);exports.AutoFillController=class extends a.Disposable{constructor(e,t,o,r,s,l,c){super();E(this,"_beforeApplyData",[]);E(this,"_currentLocation",null);E(this,"_copyData",[]);E(this,"_defaultHook");this._univerInstanceService=e,this._commandService=t,this._autoFillService=o,this._editorBridgeService=r,this._renderManagerService=s,this._injector=l,this._sheetsRenderService=c,this._defaultHook={id:"default",type:Wt.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(bt.id))}_initDefaultHook(){this.disposeWithMe(this._autoFillService.addHook(this._defaultHook))}_initQuitListener(){const e=[Pe.id,Ft.id,m.SetRangeValuesCommand.id,ze.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,o)=>{var s,l;const r=o==null?void 0:o.fromCollab;e.includes(t.id)&&!r&&t.params.trigger!==bt.id&&this._quit(),t.id===m.RemoveSheetMutation.id&&t.params.unitId===((s=this._currentLocation)==null?void 0:s.unitId)&&t.params.subUnitId===((l=this._currentLocation)==null?void 0:l.subUnitId)&&this._quit()})),this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(t=>{var o;t.getUnitId()===((o=this._currentLocation)==null?void 0:o.unitId)&&this._quit()}))}_quit(){this._currentLocation=null,this._beforeApplyData=[],this._copyData=[],this._autoFillService.setShowMenu(!1)}_onSelectionControlFillChanged(){const e=new a.DisposableCollection,t=o=>{o.dispose();const r=this._renderManagerService.getCurrentTypeOfRenderer(a.UniverInstanceType.UNIVER_SHEET);if(!r)return;r.with(_e).getSelectionControls().forEach(c=>{o.add(a.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)}))),o.add(a.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)}))),o.add(a.toDisposable(c.fillControl.onPointerDown$.subscribeEvent(()=>{this._editorBridgeService.isVisible().visible&&this._editorBridgeService.changeVisible({visible:!1,eventType:P.DeviceInputEventType.PointerDown})})))})};t(e),this.disposeWithMe(this._commandService.onCommandExecuted(o=>{o.id===m.SetSelectionsOperation.id&&t(e)}))}_onApplyTypeChanged(){this.disposeWithMe(a.toDisposable(this._autoFillService.applyType$.subscribe(()=>{this._handleFillData()})))}_triggerAutoFill(e,t){var S,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(Ft.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(Ft.id,{clearRange:{startRow:t.endRow+1,endRow:e.endRow,startColumn:t.startColumn,endColumn:t.endColumn},selectionRange:t});return}const o={startRow:t.startRow,endRow:t.endRow,startColumn:t.startColumn,endColumn:t.endColumn};let r=null;if(t.startRow<e.startRow)r=a.Direction.UP,o.endRow=e.startRow-1;else if(t.endRow>e.endRow)r=a.Direction.DOWN,o.startRow=e.endRow+1;else if(t.startColumn<e.startColumn)r=a.Direction.LEFT,o.endColumn=e.startColumn-1;else if(t.endColumn>e.endColumn)r=a.Direction.RIGHT,o.startColumn=e.endColumn+1;else return;const s=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!s)return;const l=s.getUnitId(),c=(S=s.getActiveSheet())==null?void 0:S.getSheetId();if(!c)return;this._autoFillService.direction=r;const d={get:this._injector.get.bind(this._injector)},u=Bt(e,d),h=Bt(o,d);if(!u||!h)return;this._autoFillService.autoFillLocation={source:u,target:h,unitId:l,subUnitId:c};const g=[];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:l,subUnitId:c},r);I&&g.unshift(I)});for(let C=0;C<g.length;C++){const I=this._autoFillService.menu.find(b=>b.value===g[C]);if(I&&!I.disable){this._autoFillService.applyType=g[C];return}}const f=(v=this._autoFillService.menu.find(C=>C.disable===!1))==null?void 0:v.value;f&&(this._autoFillService.applyType=f)}_handleDbClickFill(e){const t=this._detectFillRange(e);t.endRow<=e.endRow||this._triggerAutoFill(e,t)}_detectFillRange(e){var g,p,f,S,v,C;const{startRow:t,endRow:o,startColumn:r,endColumn:s}=e,l=(g=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET))==null?void 0:g.getActiveSheet();if(!l)return e;const c=l.getCellMatrix(),d=l.getMaxRows()-1,u=l.getMaxColumns()-1;let h=o;if(r>0&&((p=c.getValue(t,r-1))==null?void 0:p.v)!=null){let I=t;for(;((f=c.getValue(I,r-1))==null?void 0:f.v)!=null&&I<d;)I+=1;h=I-1}else if(s<u&&((S=c.getValue(o,s+1))==null?void 0:S.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=o+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(bt.id,{unitId:(e=this._currentLocation)==null?void 0:e.unitId,subUnitId:(t=this._currentLocation)==null?void 0:t.subUnitId})}_getApplyData(e,t,o,r,s,l=!0){const c=[],d=Math.floor(o/t),u=o%t,h=this._autoFillService.getRules();if(!l&&s===le.ONLY_FORMAT)return console.error("ERROR: only format can not be applied when hasStyle is false"),[];const g={};h.forEach(p=>{g[p.type]=[]}),h.forEach(p=>{const{type:f,applyFunctions:S={}}=p,v=e[f];v&&v.forEach(C=>{const I=zc(C.index,u),b=C.index.length*d+I,T=this._applyFunctions(C,b,r,s,S,e),w=Yc(t,o,C.index);g[f].push({data:T,index:w})})});for(let p=0;p<o;p++)h.forEach(f=>{const{type:S}=f,v=g[S];for(let C=0;C<v.length;C++)p in v[C].index&&c.push(v[C].data[v[C].index[p]])});return c}_applyFunctions(e,t,o,r,s,l){const{data:c}=e,d=o===a.Direction.UP||o===a.Direction.LEFT;if(r===le.COPY){const u=s==null?void 0:s[le.COPY];return u?u(e,t,o,l):(d&&c.reverse(),Pt(c,t))}if(r===le.SERIES){const u=s==null?void 0:s[le.SERIES];return u?u(e,t,o,l):(d&&c.reverse(),s!=null&&s[le.COPY]?s[le.COPY](e,t,o,l):Pt(c,t))}if(r===le.ONLY_FORMAT){const u=s==null?void 0:s[le.ONLY_FORMAT];return u?u(e,t,o,l):Zc(c,t)}}_getCopyData(e,t){const o=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!o)throw new Error("No active sheet found");const r=o.getCellMatrix(),s=this._autoFillService.getRules(),l=[],c=t===a.Direction.DOWN||t===a.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(g=>{const p=this._getEmptyCopyDataPiece(),f={type:void 0,cellData:void 0};u.forEach(S=>{let v;c?v=r.getValue(S,g):v=r.getValue(g,S);const{type:C,isContinue:I}=s.find(b=>b.match(v,h))||_l;if(I(f,v)){const b=p[C],T=b[b.length-1];T.data.push(v),T.index.push(S-u[0])}else{const b=p[C];b?b.push({data:[v],index:[S-u[0]]}):p[C]=[{data:[v],index:[S-u[0]]}]}f.type=C,f.cellData=v}),l.push(p)}),l}_getEmptyCopyDataPiece(){const e={};return this._autoFillService.getRules().forEach(t=>{e[t.type]=[]}),e}_getMergeApplyData(e,t,o,r){const s=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!s)throw new Error("No active sheet found");const l=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:g,startColumn:p,endRow:f,endColumn:S}=a.getCellInfoInMergeData(d,u,l);if(h){if(o===a.Direction.DOWN){let v=g+r,C=f+r;for(;C<=t.endRow;)c.push({startRow:v,startColumn:p,endRow:C,endColumn:S}),v+=r,C+=r}else if(o===a.Direction.UP){let v=g-r,C=f-r;for(;v>=t.startRow;)c.push({startRow:v,startColumn:p,endRow:C,endColumn:S}),v-=r,C-=r}else if(o===a.Direction.RIGHT){let v=p+r,C=S+r;for(;C<=t.endColumn;)c.push({startRow:g,startColumn:v,endRow:f,endColumn:C}),v+=r,C+=r}else if(o===a.Direction.LEFT){let v=p-r,C=S-r;for(;v>=t.startColumn;)c.push({startRow:g,startColumn:v,endRow:f,endColumn:C}),v-=r,C-=r}}}return c}_presetAndCacheData(e,t){const{source:o,target:r}=e,s=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!s)throw new Error("No active sheet found");const l=s.getCellMatrix(),c=[];return r.rows.forEach(d=>{const u=[];r.cols.forEach(h=>{u.push(a.Tools.deepClone(l.getValue(d,h)))}),c.push(u)}),this._beforeApplyData=c,this._copyData=this._getCopyData(o,t),this._currentLocation=e,this._shouldDisableSeries(this._copyData)?(this._autoFillService.setDisableApplyType(le.SERIES,!0),le.COPY):(this._autoFillService.setDisableApplyType(le.SERIES,!1),this._getPreferredApplyType(this._copyData))}_fillData(e,t,o){var G,z;const r=[],s=[];let l=!0;o===le.NO_FORMAT&&(l=!1,o=le.SERIES);const{source:c,target:d,unitId:u,subUnitId:h}=e;if(!c||!d||t==null)return{undos:r,redos:s};const g=wt(c),p=wt(d),{cols:f,rows:S}=d,{cols:v,rows:C}=c,I=this._copyData;let b;t===a.Direction.DOWN||t===a.Direction.UP?b=C.length:b=v.length;const T=[];if(t===a.Direction.DOWN||t===a.Direction.UP){const Y=S.length,F=[];f.forEach((Z,K)=>{const B=I[K],U=this._getApplyData(B,b,Y,t,o,l);F.push(U)});for(let Z=0;Z<F[0].length;Z++){const K=[];for(let B=0;B<F.length;B++)K.push({s:null,...F[B][Z]});T.push(K)}}else{const Y=f.length;S.forEach((F,Z)=>{const K=I[Z],B=this._getApplyData(K,b,Y,t,o,l),U=[];for(let Q=0;Q<B.length;Q++)U.push({s:null,...B[Q]});T.push(U)})}let w=[];const y=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getStyles();l?(w=this._getMergeApplyData(g,p,t,b),T.forEach(Y=>{Y.forEach(F=>{F&&y&&y&&(F.s=y.getStyleByCell(F))})})):T.forEach((Y,F)=>{Y.forEach((Z,K)=>{Z&&y&&(Z.s=y.getStyleByCell(this._beforeApplyData[F][K])||null)})}),o===le.ONLY_FORMAT&&T.forEach((Y,F)=>{Y.forEach((Z,K)=>{if(Z){const B=this._beforeApplyData[F][K]||{};Z.f=B.f,Z.si=B.si,Z.t=B.t,Z.v=B.v}})});const M={get:this._injector.get.bind(this._injector)},A=[],N=(z=(G=this._univerInstanceService.getUniverSheetInstance(u))==null?void 0:G.getSheetBySheetId(h))==null?void 0:z.getMergeData();N&&N.forEach(Y=>{a.Rectangle.intersects(Y,p)&&A.push(Y)});const x={unitId:u,subUnitId:h,ranges:A},D=m.RemoveMergeUndoMutationFactory(M,x);A.length&&(s.push({id:m.RemoveWorksheetMergeMutation.id,params:x}),r.push({id:m.AddWorksheetMergeMutation.id,params:D}));const H={subUnitId:h,unitId:u,cellValue:Wc([d])},L=m.SetRangeValuesUndoMutationFactory(M,H);s.push({id:m.SetRangeValuesMutation.id,params:H}),r.push({id:m.SetRangeValuesMutation.id,params:L});const W=new a.ObjectMatrix;S.forEach((Y,F)=>{f.forEach((Z,K)=>{T[F][K]&&W.setValue(Y,Z,T[F][K])})});const X={subUnitId:h,unitId:u,cellValue:W.getMatrix()},q=m.SetRangeValuesUndoMutationFactory(M,X);if(r.push({id:m.SetRangeValuesMutation.id,params:q}),s.push({id:m.SetRangeValuesMutation.id,params:X}),w!=null&&w.length){const Y=m.getAddMergeMutationRangeByType(w),F={unitId:u,subUnitId:h,ranges:Y},Z=m.AddMergeUndoMutationFactory(M,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(o=>{var r;return((r=t[o])==null?void 0:r.length)===0||[pe.OTHER,pe.FORMULA].includes(o)}))}_getPreferredApplyType(e){return e.every(o=>Object.keys(o).every(r=>{var s,l;return((s=o[r])==null?void 0:s.length)===0||((l=o[r])==null?void 0:l.length)===1&&o[r][0].data.length===1&&pe.NUMBER===r}))?le.COPY:le.SERIES}};exports.AutoFillController=Rd([a.OnLifecycle(a.LifecycleStages.Steady,exports.AutoFillController),pt(0,a.IUniverInstanceService),pt(1,a.ICommandService),pt(2,gt),pt(3,qe),pt(4,P.IRenderManagerService),pt(5,k.Inject(k.Injector)),pt(6,k.Inject(exports.SheetsRenderService))],exports.AutoFillController);var Td=Object.defineProperty,Ed=Object.getOwnPropertyDescriptor,wd=(n,i,e,t)=>{for(var o=t>1?void 0:t?Ed(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&Td(i,e,o),o},Mi=(n,i)=>(e,t)=>i(e,t,n);exports.CellCustomRenderController=class extends a.Disposable{constructor(e,t,o,r){super();E(this,"_enterActiveRender");this._context=e,this._sheetSkeletonManagerService=t,this._renderManagerService=o,this._univerInstanceService=r,this._initEventBinding()}_initEventBinding(){const e=new a.DisposableCollection,t=this._context.unit,o=r=>{if(e.dispose(),!r)return;const s=this._context.unitId,{skeleton:l}=r,c=this._renderManagerService.getRenderById(s);if(c&&c.mainComponent){const d=c.mainComponent,u=p=>{const{offsetX:f,offsetY:S}=p,v=c.scene,C=t.getActiveSheet();if(!C)return;const I=v.getActiveViewportByCoord(P.Vector2.FromArray([f,S]));if(!I)return;const{scaleX:b,scaleY:T}=v.getAncestorScale(),w={x:I.viewportScrollX,y:I.viewportScrollY},y=l.getCellPositionByOffset(f,S,b,T,w),M=l.mergeData.find(z=>{const{startColumn:Y,startRow:F,endColumn:Z,endRow:K}=z;return y.row>=F&&y.column>=Y&&y.row<=K&&y.column<=Z}),A={actualRow:M?M.startRow:y.row,actualCol:M?M.startColumn:y.column,mergeCell:M,row:y.row,col:y.column};if(!A||!l)return;const N=C.getCell(A.actualRow,A.actualCol);if(!N)return;const x=N.customRender;if(!(x!=null&&x.length))return;const D=A.actualRow,H=A.actualCol,L=x.sort(a.sortRules),W=C.getSheetId(),X={data:N,style:l.getsStyles().getStyleByCell(N),primaryWithCoord:l.getCellByIndex(A.actualRow,A.actualCol),unitId:s,subUnitId:W,row:D,col:H,workbook:t,worksheet:C},q={x:w.x+f/b,y:w.y+S/T},G=L.find(z=>{var Y;return(Y=z.isHit)==null?void 0:Y.call(z,q,X)});if(G)return[G,X]},h=d.onPointerDown$.subscribeEvent(p=>{var S;const f=u(p);if(f){const[v,C]=f;(S=v.onPointerDown)==null||S.call(v,C,p)}}),g=d.onPointerMove$.subscribeEvent(p=>{var S,v,C,I;const f=u(p);if(f){const[b,T]=f;this._enterActiveRender?this._enterActiveRender.render!==b&&((v=(S=this._enterActiveRender.render).onPointerLeave)==null||v.call(S,this._enterActiveRender.cellContext,p),this._enterActiveRender={render:b,cellContext:T},(C=b.onPointerEnter)==null||C.call(b,T,p)):(this._enterActiveRender={render:b,cellContext:T},(I=b.onPointerEnter)==null||I.call(b,T,p))}});h&&e.add(h),g&&e.add(g)}};this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(o)),o(this._sheetSkeletonManagerService.getCurrent()),this.disposeWithMe(e)}};exports.CellCustomRenderController=wd([a.OnLifecycle(a.LifecycleStages.Rendered,exports.CellCustomRenderController),Mi(1,k.Inject(exports.SheetSkeletonManagerService)),Mi(2,P.IRenderManagerService),Mi(3,a.IUniverInstanceService)],exports.CellCustomRenderController);function Vr(n){return n.getContextValue(a.FOCUSING_SHEET)}function re(n){return n.getContextValue(a.FOCUSING_SHEET)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)&&!n.getContextValue(a.EDITOR_ACTIVATED)&&!n.getContextValue(a.FOCUSING_COMMON_DRAWINGS)}function Il(n){return n.getContextValue(a.FOCUSING_SHEET)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)&&!n.getContextValue(a.EDITOR_ACTIVATED)&&!n.getContextValue(a.FOCUSING_FORMULA_EDITOR)&&!n.getContextValue(a.FOCUSING_COMMON_DRAWINGS)}function Pd(n){return n.getContextValue(a.FOCUSING_SHEET)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)&&n.getContextValue(a.EDITOR_ACTIVATED)}function yd(n){return n.getContextValue(a.FOCUSING_UNIVER_EDITOR)&&n.getContextValue(a.EDITOR_ACTIVATED)}function bl(n){return n.getContextValue(a.FOCUSING_FORMULA_EDITOR)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)}function Md(n){return n.getContextValue(a.FOCUSING_SHEET)&&n.getContextValue(a.EDITOR_ACTIVATED)&&n.getContextValue(a.FOCUSING_EDITOR_INPUT_FORMULA)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)}function Fn(n){return n.getContextValue(a.FOCUSING_SHEET)&&n.getContextValue(a.FOCUSING_UNIVER_EDITOR)&&n.getContextValue(a.EDITOR_ACTIVATED)&&!n.getContextValue(a.FOCUSING_EDITOR_INPUT_FORMULA)&&!n.getContextValue(a.FOCUSING_EDITOR_STANDALONE)}var Od=Object.defineProperty,Ad=Object.getOwnPropertyDescriptor,Nd=(n,i,e,t)=>{for(var o=t>1?void 0:t?Ad(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&Od(i,e,o),o},Oi=(n,i)=>(e,t)=>i(e,t,n);const xd=1e4,Ot=k.createIdentifier("univer.mark-selection-service");exports.MarkSelectionService=class extends a.Disposable{constructor(e,t,o){super();E(this,"_shapeMap",new Map);this._currentService=e,this._renderManagerService=t,this._themeService=o}addShape(e,t=[],o=xd){var c;const r=this._currentService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=(c=r.getActiveSheet())==null?void 0:c.getSheetId();if(!s)return null;const l=a.Tools.generateRandomId();return this._shapeMap.set(l,{selection:e,subUnitId:s,unitId:r.getUnitId(),zIndex:o,control:null,exits:t}),this.refreshShapes(),l}refreshShapes(){var r;const e=this._currentService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!e)return;const t=e.getUnitId(),o=(r=e.getActiveSheet())==null?void 0:r.getSheetId();this._shapeMap.forEach(s=>{var w;const{unitId:l,subUnitId:c,selection:d,control:u,zIndex:h}=s;if(u&&u.dispose(),l!==t||c!==o)return;const{style:g}=d,p=this._renderManagerService.getRenderById(l);if(!p)return;const f=(w=this._renderManagerService.withCurrentTypeOfUnit(a.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:w.getCurrentSkeleton();if(!f)return;const{scene:S}=p,{rowHeaderWidth:v,columnHeaderHeight:C}=f,I=new Uo(S,h,!1,this._themeService),{rangeWithCoord:b,primaryWithCoord:T}=p.with(_e).attachSelectionWithCoord(d);I.update(b,v,C,g,T),s.control=I})}getShapeMap(){return this._shapeMap}removeShape(e){const t=this._shapeMap.get(e);if(!t)return;const{control:o}=t;o&&o.dispose(),this._shapeMap.delete(e)}removeAllShapes(){for(const e of this._shapeMap.values()){const{control:t}=e;t&&t.dispose()}this._shapeMap.clear()}};exports.MarkSelectionService=Nd([Oi(0,a.IUniverInstanceService),Oi(1,P.IRenderManagerService),Oi(2,k.Inject(a.ThemeService))],exports.MarkSelectionService);function Rl(n){return{strokeWidth:1.5,stroke:n.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}const Dd=10,kd=6;function Hd(){return a.Tools.generateRandomId(kd)}function Vd(n){const i=n.match(/data-copy-id="([^\s]+)"/);return i&&i[1]?i[1]:null}class Wd{constructor(){E(this,"_cache",new a.LRUMap(Dd))}set(i,e){this._cache.set(i,e)}get(i){return this._cache.get(i)}del(i){this._cache.delete(i)}clear(){this._cache.clear()}}function ws(n,i){const e=i!=null?i:n.style,t={},o=n.tagName.toLowerCase();switch(o){case"b":case"em":case"strong":{t.bl=a.BooleanNumber.TRUE;break}case"s":{t.st={s:a.BooleanNumber.TRUE};break}case"u":{t.ul={s:a.BooleanNumber.TRUE};break}case"i":{t.it=a.BooleanNumber.TRUE;break}case"sub":case"sup":{t.va=o==="sup"?a.BaselineOffset.SUPERSCRIPT:a.BaselineOffset.SUBSCRIPT;break}}return Ld(e,t),t}function Ld(n,i){if(n instanceof CSSStyleDeclaration)for(let e=0;e<n.length;e++){const t=n[e],o=n.getPropertyValue(t);Ps(t,o,i)}else for(const e in n){const t=n[e];Ps(e,t,i)}}function Ps(n,i,e){switch(n){case"font-family":e.ff=i;break;case"font-size":{const t=Number.parseInt(i);Number.isNaN(t)||(i.endsWith("pt")?e.fs=t:i.endsWith("px")&&(e.fs=t*.75));break}case"font-style":i==="italic"&&(e.it=a.BooleanNumber.TRUE);break;case"font-weight":{(Number(i)>400||i==="bold")&&(e.bl=a.BooleanNumber.TRUE);break}case"text-decoration":{/underline/.test(i)?e.ul={s:a.BooleanNumber.TRUE}:/overline/.test(i)?e.ol={s:a.BooleanNumber.TRUE}:/line-through/.test(i)&&(e.st={s:a.BooleanNumber.TRUE});break}case"color":{const t=new a.ColorKit(i);t.isValid&&(e.cl={rgb:t.toRgbString()});break}case"background-color":{const t=new a.ColorKit(i),o=t.isValid?t.toRgbString():"";o!==R.DEFAULT_BACKGROUND_COLOR_RGB&&o!==R.DEFAULT_BACKGROUND_COLOR_RGBA&&(e.bg={rgb:o});break}}}function Ud(n){const i=document.createElement("body");return i.innerHTML=n,i}function Ai(n,i){const e=[];for(let t=0,o=n.length;t<o;t++)n[t]===a.DataStreamTreeTokenType.PARAGRAPH&&e.push({startIndex:t});return e}const ys=["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 Ms(n,i){const e=n.tagName.toLowerCase();return typeof i=="string"?e===i:Array.isArray(i)?i.some(t=>t===e):i(n)}const ko=class ko{constructor(i){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=i.getCurrentSkeleton}static use(i){if(this.pluginList.includes(i))throw new Error(`Univer paste plugin ${i.name} already added`);this.pluginList.push(i)}convert(i){var p;const e=ko.pluginList.find(f=>f.checkPasteType(i));e&&(this._styleRules=[...e.stylesRules],this._afterProcessRules=[...e.afterProcessRules]);const t=new a.ObjectMatrix;this._dom=Ud(i);const o=this._dom.querySelector("style");if(o){const f=document.createElement("div"),S=f.attachShadow({mode:"open"});document.body.appendChild(f),S.appendChild(o);for(const v of o.sheet.cssRules){const C=v,I=C.selectorText,b=C.style;this._styleMap.set(I,b)}o.remove(),f.remove()}const r={dataStream:"",textRuns:[]},s=[],l=[],c=i.match(/<table\b[^>]*>([\s\S]*?)<\/table>/gi),d=[];this.process(null,this._dom.childNodes,r,d);const{paragraphs:u,dataStream:h,textRuns:g}=r;if(u){const f=u.map(S=>S.startIndex+1);f.unshift(0);for(let S=0;S<f.length;S++){let v;if(S===f.length-1){if(v=`${h.substring(f[S])}\r
2
- `,v===`\r
3
- `)continue}else v=`${h.substring(f[S],f[S+1]-1)}\r
4
- `;const C=[];g==null||g.forEach(T=>{T.st>=f[S]&&T.ed<=f[S+1]&&C.push({st:T.st-f[S],ed:T.ed-f[S],ts:T.ts})});const I=this._generateDocumentDataModelSnapshot({body:{dataStream:v,textRuns:C,paragraphs:Ai(v)}}),b=Object.keys(t.getMatrix()).length===0;t.setValue(b?0:t.getLength(),0,{v,p:I}),s.push({})}}else if(h){const f=`${h}\r
5
- `,S={dataStream:f,textRuns:g,paragraphs:Ai(f)},v=h.length,C=(p=g==null?void 0:g.length)!=null?p:0;if(!C||C===1&&g[0].st===0&&g[0].ed===v)t.setValue(0,0,{v:h});else{const I=this._generateDocumentDataModelSnapshot({body:S});t.setValue(0,0,{v:h,p:I})}s.push({})}return c&&c.forEach((f,S)=>{const v=t.getDataRange().endRow+1,{cellMatrix:C,rowProperties:I,colProperties:b}=this._parseTable(f,S);C&&C.forValue((T,w,y)=>{t.setValue(v+T,w,y)}),b&&l.push(...b),s.push(...I)}),this.dispose(),{rowProperties:s,colProperties:l,cellMatrix:t}}_getStyleBySelectorText(i,e){var o;const t=(o=this._styleMap.get(i))==null?void 0:o.getPropertyValue(e);return t||""}_getStyle(i,e){const t=Os(e),o=i.style;let r="";for(let s=0;s<ys.length;s++){const l=ys[s];if(l==="background"){let d="";i.classList.forEach(h=>{d=this._getStyleBySelectorText(`.${h}`,"background-color")||this._getStyleBySelectorText(`.${h}`,l)});const u=o.getPropertyValue("background-color")||d||this._getStyleBySelectorText(`#${i.id}`,"background-color")||this._getStyleBySelectorText(`#${i.id}`,l)||this._getStyleBySelectorText(i.nodeName.toLowerCase(),l)||this._getStyleBySelectorText(i.nodeName,"background-color")||t["background-color"]||"";u&&(r+=`background:${u};`);continue}if(l==="text-decoration"){let d="";i.classList.forEach(h=>{d=this._getStyleBySelectorText(`.${h}`,"text-decoration-line")||this._getStyleBySelectorText(`.${h}`,l)});const u=o.getPropertyValue("text-decoration-line")||o.getPropertyValue("text-decoration")||d||this._getStyleBySelectorText(`#${i.id}`,"text-decoration-line")||this._getStyleBySelectorText(`#${i.id}`,l)||this._getStyleBySelectorText(i.nodeName.toLowerCase(),l)||this._getStyleBySelectorText(i.nodeName,"text-decoration-line")||t["text-decoration-line"]||"";u&&(r+=`text-decoration:${u};`);continue}let c="";i.classList.forEach(d=>{c=this._getStyleBySelectorText(`.${d}`,l)}),c=o.getPropertyValue(l)||this._getStyleBySelectorText(`#${i.id}`,l)||c||this._getStyleBySelectorText(i.nodeName.toLowerCase(),l)||t[l]||"",c&&(r+=`${l}:${c};`)}return r}_parseTable(i,e){var l,c;const t=new a.ObjectMatrix,o=(l=Fd(i))!=null?l:[],{rowProperties:r=[]}=Bd(i),s=this._parseTableByHtml(this._dom,e,(c=this._getCurrentSkeleton())==null?void 0:c.skeleton);return s&&s.forValue((d,u,h)=>{var f,S,v,C,I,b,T,w,y,M,A,N,x,D,H,L,W,X,q,G,z,Y,F,Z;let g=R.handleStringToStyle(void 0,h.style);if((C=(v=(S=(f=h==null?void 0:h.richTextParma)==null?void 0:f.p)==null?void 0:S.body)==null?void 0:v.textRuns)!=null&&C.length){const K=(b=(I=h==null?void 0:h.richTextParma)==null?void 0:I.v)==null?void 0:b.length;for(let B=0;B<((M=(y=(w=(T=h==null?void 0:h.richTextParma)==null?void 0:T.p)==null?void 0:w.body)==null?void 0:y.textRuns)==null?void 0:M.length);B++){const U=(x=(N=(A=h==null?void 0:h.richTextParma)==null?void 0:A.p)==null?void 0:N.body)==null?void 0:x.textRuns[B];U.st===0&&U.ed===K&&(g={...U.ts,...g},(L=(H=(D=h==null?void 0:h.richTextParma)==null?void 0:D.p)==null?void 0:H.body)==null||L.textRuns.splice(B,1),B--)}((G=(q=(X=(W=h==null?void 0:h.richTextParma)==null?void 0:W.p)==null?void 0:X.body)==null?void 0:q.textRuns)==null?void 0:G.length)===0&&(h.content=(z=h==null?void 0:h.richTextParma)==null?void 0:z.v,delete h.richTextParma)}const p=(Z=(F=(Y=h==null?void 0:h.richTextParma)==null?void 0:Y.p)==null?void 0:F.body)!=null&&Z.textRuns?{v:h.richTextParma.v,p:h.richTextParma.p,s:g,rowSpan:h.rowSpan,colSpan:h.colSpan}:{v:h.content,s:g,rowSpan:h.rowSpan,colSpan:h.colSpan};t.setValue(d,u,p)}),{rowProperties:r,colProperties:o,cellMatrix:t}}_parseTableByHtml(i,e,t){var c,d;const o=new a.ObjectMatrix,r=i.querySelectorAll("table")[e];if(!r)return o;const s=this._getStyle(r,""),l=r==null?void 0:r.querySelectorAll("tr");for(let u=0;u<l.length;u++){const h=l[u],g=this._getStyle(h,s),p=h.querySelectorAll("td, th");let f=0;for(let S=0;S<p.length;){const v=p[S];let C="";const I=Number(v.getAttribute("rowSpan"))||1,b=Number(v.getAttribute("colSpan"))||1;if(C=this._getStyle(v,g),u>0){const M=o.getValue(u-1,f);if((c=M==null?void 0:M.style)!=null&&c.includes("border-bottom")&&C.includes("border-top")){const A=As(M.style,"border-bottom");A&&R.textTrim(A.substr(A.indexOf(":")+1))!=="none"&&(C=C.replace(/border-top:[^;]+;/,""))}}if(S>0){const M=o.getValue(u,f-1);if((d=M==null?void 0:M.style)!=null&&d.includes("border-right")&&C.includes("border-left")){const A=As(M.style,"border-right");A&&R.textTrim(A.substr(A.indexOf(":")+1))!=="none"&&(C=C.replace(/border-left:[^;]+;/,""))}}const{cellText:T,cellRichStyle:w}=this._getCellTextAndRichText(v,C,t),y={rowSpan:I,colSpan:b,content:T,style:C,richTextParma:{p:w,v:T}};if(o.getValue(u,f)){f+=1;continue}else I>1||b>1?Xd(o,C,y,{colSpan:b,rowSpan:I,rowIndex:u,colIndex:S,colSetValueIndex:f}):o.setValue(u,f,y),f+=b,S++}}return o}_parseCellHtml(i,e,t,o=new Map,r){var s;for(const l of e)if(l.nodeType===Node.TEXT_NODE){const c=(s=l.nodeValue)==null?void 0:s.replace(/[\r\n]/g,"");let d;i&&o.has(i)&&(d=o.get(i)),t.dataStream+=c,d&&Object.getOwnPropertyNames(d).length&&t.textRuns.push({st:t.dataStream.length-c.length,ed:t.dataStream.length,ts:d})}else{if(l.nodeType===Node.COMMENT_NODE||l.nodeName==="STYLE")continue;if(l.nodeType===Node.ELEMENT_NODE){const c=this._getStyle(l,r),d=i?o.get(i):{},u=Os(c),h=ws(l,u);o.set(l,{...d,...h});const{childNodes:g}=l;this._parseCellHtml(l,g,t,o,c)}}}_getCellTextAndRichText(i,e,t){var l;let o="",r;if(/<[^>]+>/.test(i.innerHTML)&&t){const c={dataStream:"",textRuns:[]};this._parseCellHtml(null,i.childNodes,c,void 0,e);const d=(l=t.getBlankCellDocumentModel())==null?void 0:l.documentModel,u=d==null?void 0:d.getSnapshot(),h=`${c.dataStream}\r
6
- `,g={...u,body:{dataStream:h,textRuns:c.textRuns,paragraphs:Ai(h)}};d==null||d.reset(g),r=d==null?void 0:d.getSnapshot(),o=c.dataStream}else o=jd(i.innerHTML.replace(/[\r\n]/g,""));return{cellText:o,cellRichStyle:r}}_generateDocumentDataModelSnapshot(i){var l;const e=this._getCurrentSkeleton();if(e==null)return null;const{skeleton:t}=e,o=(l=t.getBlankCellDocumentModel())==null?void 0:l.documentModel,s={...o==null?void 0:o.getSnapshot(),...i};return o==null||o.reset(s),o==null?void 0:o.getSnapshot()}process(i,e,t,o){var r,s,l;for(const c of e)if(c.nodeName.toLowerCase()==="table")o.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=(l=c.nodeValue)==null?void 0:l.replace(/[\r\n]/g,"");let u;i&&this._styleCache.has(i)&&(u=this._styleCache.get(i));const h={dataStream:"",textRuns:[]};t.dataStream+=d,h.dataStream+=d,u&&Object.getOwnPropertyNames(u).length&&(t.textRuns.push({st:t.dataStream.length-d.length,ed:t.dataStream.length,ts:u}),h.textRuns.push({st:t.dataStream.length-d.length,ed:t.dataStream.length,ts:u}))}else{if(a.skipParseTagNames.includes(c.nodeName.toLowerCase()))continue;if(c.nodeType===Node.ELEMENT_NODE){if(c.nodeName==="STYLE")continue;const d=i?this._styleCache.get(i):{},u=this._styleRules.find(({filter:f})=>Ms(c,f)),h=u?u.getStyle(c):ws(c);this._styleCache.set(c,{...d,...h});const{childNodes:g}=c;this.process(c,g,t,o);const p=this._afterProcessRules.find(({filter:f})=>Ms(c,f));p&&p.handler(t,c)}}}dispose(){this._dom=null,this._styleCache.clear(),this._styleMap.clear()}};E(ko,"pluginList",[]);let Kt=ko;function Bd(n){const i=/<tr([\s\S]*?)>([\s\S]*?)<\/tr>/gi,e=n.matchAll(i);if(!e)return{rowProperties:[],rowCount:0};const o=Array.from(e).map(r=>Tl(r[1]));return{rowProperties:o,rowCount:o.length}}function Os(n){const i={};return n.split(";").forEach(t=>{const[o,r]=t.split(":");i[o]=r}),i}function Tl(n){if(!n)return{};const i={},e=/([\w-]+)\s*=\s*(?:(['"])([^'"]*)\2|(\S+))/g;let t;for(;(t=e.exec(n))!==null;){const[,o,,r,s]=t,l=r!==void 0?r:s;i[o]=l}return i}function Fd(n){const i=/<colgroup([\s\S]*?)>(.*?)<\/colgroup>/,e=n.match(i),t=/<col([\s\S]*?)>/g;let o;return e!=null&&e[2]?o=e[2].matchAll(t):o=n.matchAll(t),o?Array.from(o).map(r=>Tl(r[1])):null}function jd(n){const i={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&#39;":"'","&nbsp;":" "};return n.replace(/&lt;|&gt;|&amp;|&quot;|&#39;|&nbsp;|<br>/g,e=>i[e])}function As(n,i){if(!n||!i)return null;const e=new RegExp(`(${i}\\s*:\\s*[^;]+);`,"i"),t=n.match(e);return t?t[1]:null}function Xd(n,i,e,t){const{rowSpan:o,colSpan:r,rowIndex:s,colSetValueIndex:l}=t;for(let c=s;c<s+o;c++)for(let d=l;d<l+r;d++)c===s&&d===l?n.setValue(c,d,{...e,style:i}):n.setValue(c,d,{style:i})}var ct=(n=>(n.COPY="COPY",n.CUT="CUT",n))(ct||{});function zd(n,i,e,t,o){const r=e.map(d=>{var u;return(u=d.onCopyRow)==null?void 0:u.call(d,n)}).filter(d=>!!d),s=Wr(r),l=Lr(s),c=i.map(d=>{if(!o.has(`${n}-${d}`)){const u=t.getValue(n,d);if(u!=null&&u.rowSpan&&(u!=null&&u.colSpan))for(let h=n;h<n+u.rowSpan;h++)for(let g=d;g<d+u.colSpan;g++)o.add(`${h}-${g}`);return Yd(n,d,e,t)}return null}).filter(d=>!!d).join("");return`<tr${l}>${c}</tr>`}function Yd(n,i,e,t){const o=t.getValue(n,i),r=e.map(d=>{var u;return(u=d.onCopyCellStyle)==null?void 0:u.call(d,n,i,o==null?void 0:o.rowSpan,o==null?void 0:o.colSpan)}).filter(d=>!!d),s=Wr(r),l=Lr(s),c=e.reduce((d,u)=>{var h;return d||((h=u.onCopyCellContent)==null?void 0:h.call(u,n,i))||""},"");return`<td${l}>${c}</td>`}function Zd(n,i){return`<colgroup>${n.map(t=>{const o=i.map(l=>{var c;return(c=l.onCopyColumn)==null?void 0:c.call(l,t)}).filter(l=>!!l),r=Wr(o);return`<col ${Lr(r)}>`}).join("")}</colgroup>`}function Wr(n){return n.reduce((i,e)=>(Object.keys(e).forEach(o=>{i[o]?i[o]+=`;${e[o]}`:i[o]=e[o]}),i),{})}function Lr(n){return Object.keys(n).reduce((i,e)=>(i+=` ${e}="${n[e]}"`,i),"")}function Gd(n,i){const e=[];for(let t=n;t<=i;t++)e.push(t);return e}class Kd{convert(i,e,t){const{startColumn:o,endColumn:r}=e,s=Zd(Gd(o,r),t),l=[],c=new Set,{startRow:d,endRow:u,startColumn:h,endColumn:g}=i.getDataRange();for(let f=d;f<=u;f++){const S=Array.from({length:g-h+1},(v,C)=>h+C);l.push(zd(f,S,t,i,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>${l.join("")}</tbody></table>`}}const qd=(n,i,e=!1)=>{const t=h=>h.endRow-h.startRow+1,o=h=>h.endColumn-h.startColumn+1,r=t(i)%t(n),s=o(i)%o(n),l={startRow:0,endRow:t(n)-1,startColumn:0,endColumn:o(n)-1},c=Math.floor(t(i)/t(n)),d=Math.floor(o(i)/o(n)),u=[];if(!r&&!s)for(let h=1;h<=c;h++)for(let g=1;g<=d;g++){const p=t(n)*(h-1),f=o(n)*(g-1),S={startRow:p+i.startRow,endRow:p+i.startRow,startColumn:f+i.startColumn,endColumn:f+i.startColumn};u.push({repeatRelativeRange:l,startRange:S})}else if(!r&&s&&!e)for(let h=1;h<=c;h++){const g=t(n)*(h-1),p=0,f={startRow:g+i.startRow,endRow:g+i.startRow,startColumn:p+i.startColumn,endColumn:p+i.startColumn};u.push({repeatRelativeRange:l,startRange:f})}else if(r&&!s&&!e)for(let h=1;h<=d;h++){const p=o(n)*(h-1),f={startRow:0+i.startRow,endRow:0+i.startRow,startColumn:p+i.startColumn,endColumn:p+i.startColumn};u.push({repeatRelativeRange:l,startRange:f})}else{const h={startRow:i.startRow,endRow:i.startRow,startColumn:i.startColumn,endColumn:i.startColumn};u.push({startRange:h,repeatRelativeRange:l})}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 i=new a.ObjectMatrix;return n.forEach(e=>{e&&new a.ObjectMatrix(e).forValue((o,r,s)=>{i.setValue(o,r,{...i.getValue(o,r),...s})})}),i.getMatrix()}function $d(n,i){return n.id===i.id&&n.params.unitId===i.params.unitId&&n.params.subUnitId===i.params.subUnitId}function ar(n){const i=[];for(let e=0;e<n.length;){let t=1;if(n[e].id===m.SetRangeValuesMutation.id){const o=n[e],r=[o];for(;e+t<n.length&&$d(o,n[e+t]);)r.push(n[e+t]),t+=1;const s=Jd(...r.map(l=>l.params.cellValue||{}));i.push({...o,params:{...o.params,cellValue:s}})}else i.push(n[e]);e+=t}return i}function Ni(n,i){const{startRow:e,endRow:t,startColumn:o,endColumn:r}=n;for(let s=e;s<=t;s++)for(let l=o;l<=r;l++)if(i.rows.includes(s)&&i.cols.includes(l))return!0}function Ns(n,i){const{startRow:e,endRow:t,startColumn:o,endColumn:r}=i;for(let s=e;s<=t;s++)if(!n.rows.includes(s))return!1;for(let s=o;s<=r;s++)if(!n.cols.includes(s))return!1;return!0}function eu(n){const i=n.trim().split(`
8
- `);let e="<table>";return i.forEach(t=>{const o=t.split(" ");e+="<tr>",o.forEach(r=>{e+=`<td>${r}</td>`}),e+="</tr>"}),e+="</table>",e}var tu=Object.defineProperty,nu=Object.getOwnPropertyDescriptor,ou=(n,i,e,t)=>{for(var o=t>1?void 0:t?nu(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&tu(i,e,o),o},we=(n,i)=>(e,t)=>i(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"};Kt.use(yr.PastePluginWord);Kt.use(yr.PastePluginLark);Kt.use(yr.PastePluginUniver);const ot=k.createIdentifier("sheet.clipboard-service");exports.SheetClipboardService=class extends a.Disposable{constructor(e,t,o,r,s,l,c,d,u,h,g,p,f,S){super();E(this,"_clipboardHooks",[]);E(this,"_clipboardHooks$",new O.BehaviorSubject([]));E(this,"clipboardHooks$",this._clipboardHooks$.asObservable());E(this,"_htmlToUSM");E(this,"_usmToHtml");E(this,"_copyContentCache");E(this,"_copyMarkId",null);this._logService=e,this._univerInstanceService=t,this._selectionManagerService=o,this._clipboardInterfaceService=r,this._undoRedoService=s,this._commandService=l,this._markSelectionService=c,this._notificationService=d,this._platformService=u,this._renderManagerService=h,this._themeService=g,this._localeService=p,this._errorService=f,this._injector=S,this._htmlToUSM=new Kt({getCurrentSkeleton:()=>{var v;return(v=this._renderManagerService.withCurrentTypeOfUnit(a.UniverInstanceType.UNIVER_SHEET,exports.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,o){const r=this._clipboardHooks;r.forEach(l=>{var c;return(c=l.onBeforeCopy)==null?void 0:c.call(l,e,t,o)});const s=this._generateCopyContent(e,t,o,r);return r.forEach(l=>{var c;return(c=l.onAfterCopy)==null?void 0:c.call(l)}),s}async copy(e=ct.COPY){const t=this._selectionManagerService.getCurrentLastSelection();if(!t)return!1;const o=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),r=o.getActiveSheet();if(!r)return!1;const s=this.generateCopyContent(o.getUnitId(),r.getSheetId(),t.range);if(!s)return!1;const{html:l,plain:c,matrixFragment:d,copyId:u,discreteRange:h}=s;this._copyContentCache.set(u,{unitId:o.getUnitId(),subUnitId:r.getSheetId(),range:h,matrix:d,copyType:e}),await this._clipboardInterfaceService.write(c,l),this._markSelectionService.removeAllShapes();const g=Rl(this._themeService);return this._copyMarkId=this._markSelectionService.addShape({...t,style:g}),!0}async cut(){return this.copy(ct.CUT)}async paste(e,t=Se.DEFAULT_PASTE){const o=e.types,r=o.indexOf(R.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await e.getType(R.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(l=>l&&l.text()):"",s=o.indexOf(R.HTML_CLIPBOARD_MIME_TYPE)!==-1?await e.getType(R.HTML_CLIPBOARD_MIME_TYPE).then(l=>l&&l.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(o=>o.id===e.id)!==-1)return this._logService.error("[SheetClipboardService]","hook already exists",e.id),{dispose:()=>{}};const t=this._clipboardHooks.findIndex(o=>{const r=o.priority||0;return(e.priority||0)<r});return this._clipboardHooks.splice(t!==-1?t:this._clipboardHooks.length,0,e),this._notifyClipboardHook(),a.toDisposable(()=>{const o=this._clipboardHooks.indexOf(e);o>-1&&(this._clipboardHooks.splice(o,1),this._notifyClipboardHook())})}getClipboardHooks(){return this._clipboardHooks}_generateCopyContent(e,t,o,r){const s=this._univerInstanceService.getUniverSheetInstance(e),l=s==null?void 0:s.getSheetBySheetId(t);if(!s||!l)return null;const c=r.reduce((T,w)=>{var M;const y=(M=w.getFilteredOutRows)==null?void 0:M.call(w,o);return y==null||y.forEach(A=>T.add(A)),T},new Set),{startColumn:d,startRow:u,endColumn:h,endRow:g}=o,p=l.getMatrixWithMergedCells(u,d,g,h,!0),f=new a.ObjectMatrix;let S=u;const v={rows:[],cols:[]};for(let T=u;T<=g;T++)if(!c.has(T)){v.rows.push(T);for(let w=d;w<=h;w++){const y=p.getValue(T,w);y?f.setValue(S-u,w-d,{...xi(),...a.Tools.deepClone(y)}):(f.setValue(S-u,w-d,xi()),p.setValue(T,w,xi()))}S+=1}for(let T=d;T<=h;T++)v.cols.push(T);let C=this._usmToHtml.convert(p,o,r);const I=iu(f),b=Hd();return C=C.replace(/(<[a-z]+)/,(T,w)=>`${w} data-copy-id="${b}"`),{copyId:b,plain:I,html:C,matrixFragment:f,discreteRange:v}}_notifyClipboardHook(){this._clipboardHooks$.next(this._clipboardHooks)}async _pastePlainText(e,t){const o=this._getPastingTarget();if(!o.subUnitId||!o.selection)return!1;const r={get:this._injector.get.bind(this._injector)},s=Bt(o.selection.range,r,o.unitId,o.subUnitId);if(!s)return!1;const{unitId:l,subUnitId:c}=o,d=this._clipboardHooks,u=[];if(d.some(S=>{var v;return u.push(S)&&((v=S.onBeforePaste)==null?void 0:v.call(S,{unitId:l,subUnitId:c,range:s}))===!1}))return u.forEach(S=>{var v;return(v=S.onAfterPaste)==null?void 0:v.call(S,!1)}),!1;const g=[],p=[];u.forEach(S=>{var C;const v=(C=S.onPastePlainText)==null?void 0:C.call(S,{unitId:l,subUnitId:c,range:s},e,{pasteType:t});v&&(g.push(...v.redos),p.push(...v.undos))});const f=g.every(S=>this._commandService.executeCommand(S.id,S.params));return f&&this._undoRedoService.pushUndoRedo({unitID:this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId(),undoMutations:p,redoMutations:g}),f}async _pasteHTML(e,t){const o=Vd(e);return o&&this._copyContentCache.get(o)?this._pasteInternal(o,t):this._pasteExternal(e,t)}async _pasteExternal(e,t){var u;const{rowProperties:o,colProperties:r,cellMatrix:s}=this._htmlToUSM.convert(e);if(!s)return!1;const l=this._getPastedRange(s);if(!l)return!1;const c=(u=this._univerInstanceService.getUniverSheetInstance(l.unitId))==null?void 0:u.getSheetBySheetId(l.subUnitId);if(!c)return!1;const d=c==null?void 0:c.getMergeData();return d.length&&d.some(g=>Ni(g,l.pastedRange)&&!Ns(l.pastedRange,g))?(this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1):this._pasteUSM({rowProperties:o,colProperties:r,cellMatrix:s},l,t)}async _pasteInternal(e,t){var T,w;const o=a.Tools.deepClone(this._copyContentCache.get(e)),{range:r,matrix:s,unitId:l,subUnitId:c}=o||{};if(!s||!o||!r||!l||!c||!s||!o)return!1;const d=(T=this._univerInstanceService.getUniverSheetInstance(l))==null?void 0:T.getStyles();s.forValue((y,M,A)=>{if(typeof A.s=="string"){const N=a.Tools.deepClone(A);N.s=d==null?void 0:d.getStyleByCell(A),s.setValue(y,M,N)}if(A.colSpan||A.rowSpan)for(let N=0;N<A.rowSpan;N++)for(let x=0;x<A.colSpan;x++){if(N===0&&x===0)continue;const D=y+N,H=M+x;s.setValue(D,H,{s:d==null?void 0:d.getStyleByCell(A)})}});const u=this._getPastedRange(s);if(!u)return!1;const h=(w=this._univerInstanceService.getUniverSheetInstance(u.unitId))==null?void 0:w.getSheetBySheetId(u.subUnitId);if(!h)return!1;const g=h==null?void 0:h.getMergeData();if(g&&g.some(M=>Ni(M,u.pastedRange)&&!Ns(u.pastedRange,M)))return this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1;const p=h.getColumnManager(),f=h.getRowManager(),S=h.getConfig().defaultColumnWidth,v=h.getConfig().defaultRowHeight,C=[],I=[];if(r.cols.forEach(y=>{const M=p.getColumnOrCreate(y);C.push({width:`${M.w||S}`})}),r.rows.forEach(y=>{const M=f.getRowOrCreate(y);I.push({height:`${M.ah||M.h||v}`})}),o.copyType===ct.CUT){const y=u.pastedRange.rows[0],M=r.rows[r.rows.length-1]-r.rows[0]+y;u.pastedRange.rows=Array.from(new Array(M+1).keys()).slice(y)}const b=this._pasteUSM({cellMatrix:s,colProperties:C,rowProperties:I},u,t,{range:r,unitId:o.unitId,subUnitId:o.subUnitId,copyType:o.copyType,copyId:e});return o.copyType===ct.CUT&&(this._copyContentCache.set(e,{...o,matrix:null}),this._copyMarkId&&this._markSelectionService.removeShape(this._copyMarkId),this._copyMarkId=null),b}_pasteUSM(e,t,o,r){const{rowProperties:s,colProperties:l,cellMatrix:c}=e,{unitId:d,subUnitId:u,pastedRange:h}=t,g=h.cols.length,p=this._clipboardHooks,f=[];if(p.some(M=>{var A;return f.push(M)&&((A=M.onBeforePaste)==null?void 0:A.call(M,{unitId:d,subUnitId:u,range:h}))===!1}))return f.forEach(M=>{var A;return(A=M.onAfterPaste)==null?void 0:A.call(M,!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)||ct.COPY,copyId:r==null?void 0:r.copyId,pasteType:o};let I=[],b=[];f.filter(M=>!M.specialPasteInfo&&M.id!==Se.DEFAULT_PASTE||o===M.id).forEach(M=>{var x,D,H;if(s){const L=(x=M.onPasteRows)==null?void 0:x.call(M,{range:h,unitId:d,subUnitId:u},s,{pasteType:o});L&&(I.push(...L.redos),b.push(...L.undos))}const A=(D=M.onPasteColumns)==null?void 0:D.call(M,{range:h,unitId:d,subUnitId:u},l||new Array(g).map(()=>({})),{pasteType:o});A&&(I.push(...A.redos),b.push(...A.undos));const N=(H=M.onPasteCells)==null?void 0:H.call(M,v,{range:h,unitId:d,subUnitId:u},c,C);N&&(I.push(...N.redos),b.push(...N.undos))});const w=this._getSetSelectionOperation(d,u,h,c);w&&I.push(w),I=ar(I),b=ar(b),this._logService.log("[SheetClipboardService]","pasting mutations",{undoMutationsInfo:b,redoMutationsInfo:I});const y=I.every(M=>this._commandService.executeCommand(M.id,M.params));return y&&this._undoRedoService.pushUndoRedo({unitID:d,undoMutations:b,redoMutations:I}),y}_getSetSelectionOperation(e,t,o,r){var b;const s=(b=this._univerInstanceService.getUniverSheetInstance(e))==null?void 0:b.getSheetBySheetId(t);if(!s)return null;const{rows:l,cols:c}=o,d=l[0],u=c[0],h=l[l.length-1],g=c[c.length-1],p={startRow:d,endRow:d,startColumn:u,endColumn:u},f=m.getPrimaryForRange(p,s),S=r.getValue(0,0),v=(S==null?void 0:S.rowSpan)||1,C=(S==null?void 0:S.colSpan)||1;if(v>1||C>1){const T={startRow:d,endRow:d+v-1,startColumn:u,endColumn:u+C-1};f.startRow=T.startRow,f.endRow=T.endRow,f.startColumn=T.startColumn,f.endColumn=T.endColumn,f.isMerged=!0,f.isMergedMainCell=!0}const I={unitId:e,subUnitId:t,selections:[{range:{startRow:d,endRow:h,startColumn:u,endColumn:g},primary:f,style:null}]};return{id:m.SetSelectionsOperation.id,params:I}}_getPastingTarget(){const e=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),t=e.getActiveSheet(),o=this._selectionManagerService.getCurrentLastSelection();return{unitId:e.getUnitId(),subUnitId:t==null?void 0:t.getSheetId(),selection:o}}_transformPastedData(e,t,o){const r=this._getPastingTarget(),{selection:s,unitId:l,subUnitId:c}=r;if(!c||!s)return null;const d={get:this._injector.get.bind(this._injector)},u=Bt(s.range,d,l,c);if(!u)return null;const{ranges:[h],mapFunc:g}=en([u]),{startRow:p,startColumn:f,endRow:S,endColumn:v}=h,C=S-p+1,I=v-f+1,b=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),T=b==null?void 0:b.getActiveSheet();if(!T)return null;const y=T.getMergeData().filter(H=>u.rows.includes(H.startRow)&&u.cols.includes(H.startColumn)),M=y[0];let A=0,N=0,x=0,D=0;if(M&&(A=M.startRow,N=M.startColumn,x=M.endRow,D=M.endColumn),C%e===0&&I%t===0)if(y.length>0&&(C!==e||I!==t))if(A===u.rows[0]&&N===u.cols[0]&&x===u.rows[C-1]&&D===u.cols[I-1])if(au(o))for(let L=0;L<C;L++)for(let W=0;W<I;W++){const X=o.getValue(L%e,W%t);X&&o.setValue(L,W,X)}else o.forValue((L,W,X)=>{X.s=null,delete X.colSpan,delete X.rowSpan});else for(let H=0;H<C;H++)for(let L=0;L<I;L++){const W=o.getValue(H%e,L%t);W&&o.setValue(H,L,W)}else for(let H=0;H<C;H++)for(let L=0;L<I;L++){const W=o.getValue(H%e,L%t);W&&o.setValue(H,L,W)}else if(y.length>0){const{row:H,col:L}=g(p,f);if(this._topLeftCellsMatch(e,t,{topRow:H,leftCol:L})){const X=this._expandOrShrinkRowsCols(l,c,u,t,e);u.rows=X.rows,u.cols=X.cols}else{if(S>M.endRow||v>M.endColumn)return null;o.forValue((X,q,G)=>{G.s=null,delete G.colSpan,delete G.rowSpan})}}else{const H=this._expandOrShrinkRowsCols(l,c,u,t,e);u.rows=H.rows,u.cols=H.cols}return{pastedRange:u,unitId:l,subUnitId:c}}_getPastedRange(e){var T;const t=this._getPastingTarget(),{selection:o,unitId:r,subUnitId:s}=t;if(!s||!o)return null;const l={get:this._injector.get.bind(this._injector)},c=Bt(o.range,l,r,s);if(!c)return null;const{startColumn:d,endColumn:u,startRow:h,endRow:g}=e.getDataRange(),p=g-h+1,f=u-d+1;if(p<=0||f<=0)return null;const S=c.rows.length,v=c.cols.length,C=(T=this._univerInstanceService.getUniverSheetInstance(r))==null?void 0:T.getSheetBySheetId(s);if(!C)return null;const I=C==null?void 0:C.getMergeData();if(S%p===0&&v%f===0&&!(I==null?void 0:I.some(y=>Ni(y,c)))){for(let y=0;y<S;y++)for(let M=0;M<v;M++){const A=e.getValue(y%p,M%f);A&&e.setValue(y,M,A)}return{pastedRange:c,unitId:r,subUnitId:s}}const b=this._expandOrShrinkRowsCols(r,s,c,f,p);return c.rows=b.rows,c.cols=b.cols,{pastedRange:c,unitId:r,subUnitId:s}}_expandOrShrinkRowsCols(e,t,o,r,s){const{rows:l,cols:c}=o,d=this._univerInstanceService.getUniverSheetInstance(e),u=d==null?void 0:d.getSheetBySheetId(t);let h,g;if(l.length>=s)h=l.slice(0,s);else{h=l.slice(0);let p=l[l.length-1]+1;for(;h.length<s;)u.getRowFiltered(p)||h.push(p),p++}if(c.length>=r)g=c.slice(0,r);else{g=c.slice(0);let p=c[c.length-1]+1;for(;g.length<r;)g.push(p),p++}return{rows:h,cols:g}}_topLeftCellsMatch(e,t,o){const r=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=r==null?void 0:r.getActiveSheet();if(!s)return!1;const{topRow:l,leftCol:c}=o,d=su(l+e-1,c,c+t-1,s),u=lu(c+t-1,l,l+e-1,s);return!d&&!u}};exports.SheetClipboardService=ou([we(0,a.ILogService),we(1,a.IUniverInstanceService),we(2,k.Inject(m.SheetsSelectionsService)),we(3,R.IClipboardInterfaceService),we(4,a.IUndoRedoService),we(5,a.ICommandService),we(6,Ot),we(7,R.INotificationService),we(8,R.IPlatformService),we(9,P.IRenderManagerService),we(10,k.Inject(a.ThemeService)),we(11,k.Inject(a.LocaleService)),we(12,k.Inject(a.ErrorService)),we(13,k.Inject(k.Injector))],exports.SheetClipboardService);function iu(n){let i="";const e=n.getLength();return n.forRow((t,o)=>{const r=[];o.forEach(s=>{const l=n.getValue(t,s);if(l){const c=ru(l);r.push(c)}}),i+=r.join(" "),t!==e-1&&(i+=`
9
- `)}),i}function ru(n){return a.extractPureTextFromCell(n)}function su(n,i,e,t){return t.getMergeData().some(o=>o.startRow<=n&&n<o.endRow&&i<=o.startColumn&&o.startColumn<=e)}function lu(n,i,e,t){return t.getMergeData().some(o=>o.startColumn<=n&&n<o.endColumn&&i<=o.startRow&&o.startRow<=e)}function au(n){let i=0;return n.forValue((e,t,o)=>{if(o&&i++,i>1)return!1}),i>1}function xi(){return{p:null,v:null,s:null,f:null,si:null,t:null}}const Ur=998,Br={id:R.CopyCommand.id,name:"sheet.command.copy",type:a.CommandType.COMMAND,multi:!0,priority:Ur,preconditions:Vr,handler:async n=>n.get(ot).copy()},Fr={id:R.CutCommand.id,name:"sheet.command.cut",type:a.CommandType.COMMAND,multi:!0,priority:Ur,preconditions:Vr,handler:async n=>n.get(ot).cut()},on={id:R.PasteCommand.id,type:a.CommandType.COMMAND,multi:!0,name:"sheet.command.paste",priority:Ur,preconditions:Vr,handler:async(n,i)=>{const t=await n.get(R.IClipboardInterfaceService).read(),o=n.get(ot);return t.length!==0?o.paste(t[0],i==null?void 0:i.value):!1}},Eo={id:"sheet.command.paste-bu-short-key",type:a.CommandType.COMMAND,handler:async(n,i)=>{const e=n.get(ot),{htmlContent:t,textContent:o}=i;return e.legacyPaste(t,o),!0}},jr={id:"sheet.command.paste-value",type:a.CommandType.COMMAND,handler:async n=>n.get(a.ICommandService).executeCommand(on.id,{value:Se.SPECIAL_PASTE_VALUE})},Xr={id:"sheet.command.paste-format",type:a.CommandType.COMMAND,handler:async n=>n.get(a.ICommandService).executeCommand(on.id,{value:Se.SPECIAL_PASTE_FORMAT})},Fo={id:"sheet.command.paste-col-width",type:a.CommandType.COMMAND,handler:async n=>n.get(a.ICommandService).executeCommand(on.id,{value:Se.SPECIAL_PASTE_COL_WIDTH})},zr={id:"sheet.command.paste-besides-border",type:a.CommandType.COMMAND,handler:async n=>n.get(a.ICommandService).executeCommand(on.id,{value:Se.SPECIAL_PASTE_BESIDES_BORDER})},jo={id:"sheet.command.hide-row-confirm",type:a.CommandType.COMMAND,handler:async n=>{var c;const e=(c=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:c.map(d=>d.range);if(!(e!=null&&e.length))return!1;const t=n.get(a.ICommandService),o=n.get(a.IUniverInstanceService),r=m.getSheetCommandTarget(o);if(!r)return!1;const{worksheet:s}=r,l=s.getVisibleRows();if(hl(l,e)){const d=n.get(R.IConfirmService),u=n.get(a.LocaleService);return await d.confirm({id:"sheet.confirm.hide-row",title:{title:u.t("info.problem")},children:{title:u.t("rightClick.hideAllRowsAlert")},cancelText:u.t("button.cancel"),confirmText:u.t("button.confirm")}),!1}return await t.executeCommand(m.SetRowHiddenCommand.id),!0}},Xo={id:"sheet.command.hide-col-confirm",type:a.CommandType.COMMAND,handler:async n=>{var c;const e=(c=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:c.map(d=>d.range);if(!(e!=null&&e.length))return!1;const t=n.get(a.ICommandService),o=n.get(a.IUniverInstanceService),r=m.getSheetCommandTarget(o);if(!r)return!1;const{worksheet:s}=r,l=s.getVisibleCols();if(ml(l,e)){const d=n.get(R.IConfirmService),u=n.get(a.LocaleService);return await d.confirm({id:"sheet.confirm.hide-col",title:{title:u.t("info.problem")},children:{title:u.t("rightClick.hideAllColumnsAlert")},cancelText:u.t("button.cancel"),confirmText:u.t("button.confirm")}),!1}return await t.executeCommand(m.SetColHiddenCommand.id),!0}},rn={type:a.CommandType.COMMAND,id:"sheet.command.set-range-bold",handler:async n=>{const i=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?i.executeCommand(oe.SetInlineFormatBoldCommand.id):i.executeCommand(m.SetBoldCommand.id)}},sn={type:a.CommandType.COMMAND,id:"sheet.command.set-range-italic",handler:async n=>{const i=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?i.executeCommand(oe.SetInlineFormatItalicCommand.id):i.executeCommand(m.SetItalicCommand.id)}},ln={type:a.CommandType.COMMAND,id:"sheet.command.set-range-underline",handler:async n=>{const i=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?i.executeCommand(oe.SetInlineFormatUnderlineCommand.id):i.executeCommand(m.SetUnderlineCommand.id)}},an={type:a.CommandType.COMMAND,id:"sheet.command.set-range-stroke",handler:async n=>{const i=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?i.executeCommand(oe.SetInlineFormatStrikethroughCommand.id):i.executeCommand(m.SetStrikeThroughCommand.id)}},Yr={type:a.CommandType.COMMAND,id:"sheet.command.set-range-subscript",handler:async n=>{const i=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?i.executeCommand(oe.SetInlineFormatSubscriptCommand.id):!1}},Zr={type:a.CommandType.COMMAND,id:"sheet.command.set-range-superscript",handler:async n=>{const i=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?i.executeCommand(oe.SetInlineFormatSuperscriptCommand.id):!1}},zo={type:a.CommandType.COMMAND,id:"sheet.command.set-range-fontsize",handler:async(n,i)=>{const e=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?e.executeCommand(oe.SetInlineFormatFontSizeCommand.id,i):e.executeCommand(m.SetFontSizeCommand.id,i)}},Yo={type:a.CommandType.COMMAND,id:"sheet.command.set-range-font-family",handler:async(n,i)=>{const e=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?e.executeCommand(oe.SetInlineFormatFontFamilyCommand.id,i):e.executeCommand(m.SetFontFamilyCommand.id,i)}},qt={type:a.CommandType.COMMAND,id:"sheet.command.set-range-text-color",handler:async(n,i)=>{const e=n.get(a.ICommandService);return n.get(a.IContextService).getContextValue(a.EDITOR_ACTIVATED)?e.executeCommand(oe.SetInlineFormatTextColorCommand.id,i):e.executeCommand(m.SetTextColorCommand.id,i)}};var cu=Object.defineProperty,du=Object.getOwnPropertyDescriptor,uu=(n,i,e,t)=>{for(var o=t>1?void 0:t?du(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&cu(i,e,o),o},Dt=(n,i)=>(e,t)=>i(e,t,n),He=(n=>(n[n.OFF=0]="OFF",n[n.ONCE=1]="ONCE",n[n.INFINITE=2]="INFINITE",n))(He||{});const it=k.createIdentifier("univer.format-painter-service");let wo=class extends a.Disposable{constructor(i,e,t,o,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=i,this._themeService=e,this._markSelectionService=t,this._logService=o,this._commandService=r,this._undoRedoService=s,this._status$=new O.BehaviorSubject(0),this.status$=this._status$.asObservable(),this._selectionFormat={styles:new a.ObjectMatrix,merges:[]}}addHook(i){var e,t,o;i.isDefaultHook&&((e=i.priority)!=null?e:0)>((o=(t=this._defaultHook)==null?void 0:t.priority)!=null?o:-1)?this._defaultHook=i:(this._extendHooks.push(i),this._extendHooks.sort((r,s)=>(r.priority||0)-(s.priority||0)))}getHooks(){return this._defaultHook?[this._defaultHook,...this._extendHooks]:this._extendHooks}setStatus(i){this._updateRangeMark(i),this._status$.next(i),this.getHooks().forEach(t=>{t.onStatusChange(i)})}getStatus(){return this._status$.getValue()}setSelectionFormat(i){this._selectionFormat=i}getSelectionFormat(){return this._selectionFormat}applyFormatPainter(i,e,t){const o=this.getHooks(),r=[],s=[];o.forEach(c=>{const d=c.onApply(i,e,t,this._selectionFormat);d&&(r.push(...d.redos),s.push(...d.undos))}),this._logService.log("[FormatPainterService]","apply mutations",{undoMutationsInfo:s,redoMutationsInfo:r});const l=r.every(c=>this._commandService.executeCommand(c.id,c.params));return l&&this._undoRedoService.pushUndoRedo({unitID:i,undoMutations:s,redoMutations:r}),l}_updateRangeMark(i){if(this._markSelectionService.removeAllShapes(),i!==0){const e=this._selectionManagerService.getCurrentLastSelection();if(e){const t=Rl(this._themeService);i===2?this._markId=this._markSelectionService.addShape({...e,style:t}):this._markId=this._markSelectionService.addShape({...e,style:t},[m.SetRangeValuesMutation.id])}}}};wo=uu([Dt(0,k.Inject(m.SheetsSelectionsService)),Dt(1,k.Inject(a.ThemeService)),Dt(2,Ot),Dt(3,a.ILogService),Dt(4,a.ICommandService),Dt(5,a.IUndoRedoService)],wo);const Yn={id:"sheet.operation.set-format-painter",type:a.CommandType.OPERATION,handler:(n,i)=>i?(n.get(it).setStatus(i.status),!0):!1},Zo={type:a.CommandType.COMMAND,id:"sheet.command.set-infinite-format-painter",handler:async n=>{const e=n.get(it).getStatus();let t;return e!==He.OFF?t=He.OFF:t=He.INFINITE,n.get(a.ICommandService).executeCommand(Yn.id,{status:t})}},Zn={type:a.CommandType.COMMAND,id:"sheet.command.set-once-format-painter",handler:async n=>{const e=n.get(it).getStatus();let t;return e!==He.OFF?t=He.OFF:t=He.ONCE,n.get(a.ICommandService).executeCommand(Yn.id,{status:t})}},Gn={type:a.CommandType.COMMAND,id:"sheet.command.apply-format-painter",handler:async(n,i)=>n.get(it).applyFormatPainter(i.unitId,i.subUnitId,i.range)},cn={type:a.CommandType.COMMAND,id:"sheet.command.set-selection-frozen",handler:async(n,i)=>{const{type:e}=i||{},t=n.get(a.IUniverInstanceService),o=n.get(a.IUndoRedoService),r=m.getSheetCommandTarget(t);if(!r)return!1;const{unitId:s,subUnitId:l}=r,c=n.get(a.ICommandService),u=n.get(m.SheetsSelectionsService).getCurrentSelections();if(!u)return!1;const h=u[(u==null?void 0:u.length)-1],{range:g}=h,p=n.get(Re),{sheetViewStartRow:f=0,sheetViewStartColumn:S=0}=p.getCurrentScrollInfo()||{};let v,C,I,b;const{startRow:T,startColumn:w,rangeType:y}=g;if(y===a.RANGE_TYPE.ROW||e===1)v=T,I=T-f,C=-1,b=0;else if(y===a.RANGE_TYPE.COLUMN||e===2)v=-1,I=0,C=w,b=w-S;else if(y===a.RANGE_TYPE.NORMAL)v=T,I=T-f,C=w,b=w-S;else return!1;const M={unitId:s,subUnitId:l,startRow:v,startColumn:C,xSplit:C>0?Math.max(1,b):b,ySplit:v>0?Math.max(1,I):I},A=m.SetFrozenMutationFactory(n,M);return c.syncExecuteCommand(m.SetFrozenMutation.id,M)&&o.pushUndoRedo({unitID:s,undoMutations:[{id:m.SetFrozenMutation.id,params:A}],redoMutations:[{id:m.SetFrozenMutation.id,params:M}]}),!0}},Go={type:a.CommandType.COMMAND,id:"sheet.command.set-row-frozen",handler:async n=>(n.get(a.ICommandService).executeCommand(cn.id,{type:1}),!0)},Ko={type:a.CommandType.COMMAND,id:"sheet.command.set-col-frozen",handler:async n=>(n.get(a.ICommandService).executeCommand(cn.id,{type:2}),!0)},qo={type:a.CommandType.COMMAND,id:"sheet.command.cancel-frozen",handler:async n=>{const i=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(a.IUndoRedoService),o=m.getSheetCommandTarget(e);if(!o)return!1;const{unitId:r,subUnitId:s}=o,l={unitId:r,subUnitId:s,startRow:-1,startColumn:-1,xSplit:0,ySplit:0},c=m.SetFrozenMutationFactory(n,l);return i.syncExecuteCommand(m.SetFrozenMutation.id,l)&&t.pushUndoRedo({unitID:r,undoMutations:[{id:m.SetFrozenMutation.id,params:c}],redoMutations:[{id:m.SetFrozenMutation.id,params:l}]}),!0}},dn="UI_PLUGIN_SHEETS",Kn=`${dn}_COLOR_PICKER_COMPONENT`,Gr=`${dn}_FONT_FAMILY_COMPONENT`,Kr=`${dn}_FONT_FAMILY_ITEM_COMPONENT`,qr=`${dn}_FONT_SIZE_COMPONENT`,Qo=`${dn}_MENU_ITEM_INPUT_COMPONENT`;var El={exports:{}},Jo={};/**
1
+ "use strict";var sc=Object.defineProperty;var lc=(i,o,e)=>o in i?sc(i,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[o]=e;var E=(i,o,e)=>lc(i,typeof o!="symbol"?o+"":o,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const te=require("@univerjs/docs"),l=require("@univerjs/core"),P=require("@univerjs/engine-render"),m=require("@univerjs/sheets"),O=require("rxjs"),T=require("@univerjs/ui"),$e=require("@univerjs/engine-numfmt"),br=require("@univerjs/docs-ui"),rl=require("rxjs/operators"),J=require("@univerjs/design"),Q=require("@univerjs/engine-formula"),H=require("react"),ue=require("clsx"),ac="SheetUI";var sl=(i=>(i.FILTER_PANEL_EMBED_POINT="filter-panel-embed-point",i))(sl||{});function Tr(i,o){if(i==null)return;const e=o.getRenderById(i);if(e==null)return;const{mainComponent:t,scene:n,engine:r,components:s}=e,a=t,c=s.get(te.DOCS_VIEW_KEY.BACKGROUND);return{document:a,docBackground:c,scene:n,engine:r}}var cc=Object.defineProperty,dc=Object.getOwnPropertyDescriptor,uc=(i,o,e,t)=>{for(var n=t>1?void 0:t?dc(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&cc(o,e,n),n},hc=(i,o)=>(e,t)=>o(e,t,i);exports.SheetSkeletonManagerService=class extends l.Disposable{constructor(e,t){super();E(this,"_currentSkeletonSearchParam",{sheetId:""});E(this,"_sheetSkeletonParam",[]);E(this,"_currentSkeleton$",new O.BehaviorSubject(null));E(this,"currentSkeleton$",this._currentSkeleton$.asObservable());E(this,"_currentSkeletonBefore$",new O.BehaviorSubject(null));E(this,"currentSkeletonBefore$",this._currentSkeletonBefore$.asObservable());this._context=e,this._injector=t,this.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 n=this._getSkeleton({sheetId:t});return n!=null&&(n.unitId=e),n}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 n=this._context.unitId,r=this._currentSkeletonSearchParam.sheetId,s=this.getUnitSkeleton(n,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 n=this._getSkeleton(e);n!=null&&(n.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(n=>n.sheetId===e.sheetId);t>-1&&(this._sheetSkeletonParam[t].skeleton.dispose(),this._sheetSkeletonParam.splice(t,1))}attachRangeWithCoord(e){const t=this.getCurrentSkeleton();return t?Er(t,e):null}_getSkeleton(e){const t=this._sheetSkeletonParam.find(n=>n.sheetId===e.sheetId);return t!=null&&(t.commandId=e.commandId),t}_buildSkeleton(e){const t=e.getConfig();return this._injector.createInstance(P.SpreadsheetSkeleton,e,t,e.getCellMatrix(),this._context.unit.getStyles())}};exports.SheetSkeletonManagerService=uc([hc(1,l.Inject(l.Injector))],exports.SheetSkeletonManagerService);function Er(i,o){const{startRow:e,startColumn:t,endRow:n,endColumn:r,rangeType:s}=o,a=i.getNoMergeCellPositionByIndex(e,t),c=i.getNoMergeCellPositionByIndex(n,r);return{startRow:e,startColumn:t,endRow:n,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 mc=Object.defineProperty,gc=Object.getOwnPropertyDescriptor,pc=(i,o,e,t)=>{for(var n=t>1?void 0:t?gc(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&mc(o,e,n),n},fc=(i,o)=>(e,t)=>o(e,t,i);let Ie=class{constructor(i,o){E(this,"_scrollInfoMap",new Map);E(this,"_scrollInfo$",new O.BehaviorSubject(null));E(this,"rawScrollInfo$",this._scrollInfo$.asObservable());E(this,"validViewportScrollInfo$",new O.BehaviorSubject(null));E(this,"_searchParamForScroll",null);this._context=i,this._sheetSkeletonManagerService=o}dispose(){this._scrollInfo$.complete()}setSearchParam(i){this._searchParamForScroll=i}setSearchParamAndRefresh(i){this._searchParamForScroll=i,this._notifyCurrentScrollInfo(i)}getScrollInfoByParam(i){return this._getCurrentScroll(i)}getCurrentScrollInfo(){return this._getCurrentScroll(this._searchParamForScroll)}setScrollInfoToSnapshot(i){if(this._searchParamForScroll==null)return;const{sheetId:o}=this._searchParamForScroll,e=this._context.unit,t=e==null?void 0:e.getSheetBySheetId(o),n=t==null?void 0:t.getConfig();n&&(n.scrollLeft=i.viewportScrollX||0,n.scrollTop=i.viewportScrollY||0)}setScrollInfoAndEmitEvent(i){this._setScrollInfo(i,!0)}setScrollInfoToCurrSheetAndEmitEvent(i){this._searchParamForScroll!=null&&this._setScrollInfo({...this._searchParamForScroll,...i},!0)}justSetScrollInfoToCurrSheet(i){this._searchParamForScroll!=null&&this._setScrollInfo({...this._searchParamForScroll,...i},!1)}clear(){this._searchParamForScroll!=null&&this._clearByParam(this._searchParamForScroll)}calcViewportScrollFromRowColOffset(i){const{unitId:o}=i;if(this._scrollInfoMap.get(o)==null)return{scrollTop:0,scrollLeft:0};let{sheetViewStartColumn:t,sheetViewStartRow:n,offsetX:r,offsetY:s}=i;n=n||0,s=s||0;const a=this._sheetSkeletonManagerService.getCurrentSkeleton(),c=(a==null?void 0:a.rowHeightAccumulation[n-1])||0,u=((a==null?void 0:a.columnWidthAccumulation[t-1])||0)+r,h=c+s;return{overallScrollX:u,overallScrollY:h}}_setScrollInfo(i,o=!0){const{unitId:e,sheetId:t,sheetViewStartColumn:n,sheetViewStartRow:r,offsetX:s,offsetY:a}=i;this._scrollInfoMap.has(e)||this._scrollInfoMap.set(e,new Map);const c=this._scrollInfoMap.get(e),d=this.calcViewportScrollFromRowColOffset(i),u={sheetViewStartRow:r,sheetViewStartColumn:n,offsetX:s,offsetY:a,viewportScrollX:d.overallScrollX,viewportScrollY:d.overallScrollY};c.set(t,u),o===!0&&this._notifyCurrentScrollInfo({unitId:e,sheetId:t})}_clearByParam(i){this._setScrollInfo({...i,sheetViewStartRow:0,sheetViewStartColumn:0,offsetX:0,offsetY:0}),this._notifyCurrentScrollInfo(i)}_getCurrentScroll(i){var t;if(i==null)return;const{unitId:o,sheetId:e}=i;return(t=this._scrollInfoMap.get(o))==null?void 0:t.get(e)}_notifyCurrentScrollInfo(i){const o=this._getCurrentScroll(i);this._scrollInfo$.next(o)}};Ie=pc([fc(1,l.Inject(exports.SheetSkeletonManagerService))],Ie);const et={id:"sheet.operation.set-scroll",type:l.CommandType.OPERATION,handler:(i,o)=>{if(!o)return!1;const{unitId:e,sheetId:t,offsetX:n,offsetY:r,sheetViewStartColumn:s,sheetViewStartRow:a}=o,c=i.get(l.IUniverInstanceService),d=i.get(P.IRenderManagerService),h=c.getUniverSheetInstance(e).getSheetBySheetId(t),g=d.getRenderById(e).with(Ie),{xSplit:p,ySplit:f}=h.getConfig().freeze;return g.setScrollInfoAndEmitEvent({unitId:e,sheetId:t,offsetX:n,offsetY:r,sheetViewStartRow:a-f,sheetViewStartColumn:s-p}),!0}},ct={id:"sheet.command.set-scroll-relative",type:l.CommandType.COMMAND,handler:async(i,o)=>{const e=i.get(l.ICommandService),t=i.get(l.IUniverInstanceService),n=i.get(P.IRenderManagerService),r=m.getSheetCommandTarget(t);if(!r)return!1;const{unitId:s,subUnitId:a,worksheet:c}=r,{xSplit:d,ySplit:u}=c.getConfig().freeze,g=n.getRenderById(s).with(Ie).getCurrentScrollInfo(),{offsetX:p=0,offsetY:f=0}=o||{},{sheetViewStartRow:S=0,sheetViewStartColumn:v=0,offsetX:C=0,offsetY:I=0}=g||{};return e.executeCommand(et.id,{unitId:s,sheetId:a,sheetViewStartRow:S+u,sheetViewStartColumn:v+d,offsetX:C+p,offsetY:I+f})}},Be={id:"sheet.command.scroll-view",type:l.CommandType.COMMAND,handler:(i,o)=>{if(!o)return!1;const e=i.get(l.IUniverInstanceService),t=i.get(P.IRenderManagerService),n=m.getSheetCommandTarget(e);if(!n)return!1;const{workbook:r,worksheet:s,unitId:a}=n,d=t.getRenderById(a).with(Ie).getCurrentScrollInfo();if(!s)return!1;const{sheetViewStartRow:u,sheetViewStartColumn:h,offsetX:g,offsetY:p}=o,{sheetViewStartColumn:f,sheetViewStartRow:S,offsetX:v,offsetY:C}=d||{},{xSplit:I,ySplit:R}=s.getConfig().freeze;return i.get(l.ICommandService).syncExecuteCommand(et.id,{unitId:r.getUnitId(),sheetId:s.getSheetId(),sheetViewStartRow:u!=null?u:(S!=null?S:0)+R,sheetViewStartColumn:h!=null?h:(f!=null?f:0)+I,offsetX:g!=null?g:v,offsetY:p!=null?p:C})}},wr={id:"sheet.command.scroll-to-cell",type:l.CommandType.COMMAND,handler:(i,o)=>{const e=i.get(l.IUniverInstanceService);return i.get(P.IRenderManagerService).getRenderById(e.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports.SheetsScrollRenderController).scrollToRange(o.range)}},Sc={id:"sheet.command.scroll-view-reset",type:l.CommandType.COMMAND,handler:async i=>{const o=i.get(l.IUniverInstanceService),e=m.getSheetCommandTarget(o);if(!e)return!1;const{subUnitId:t,unitId:n}=e;return i.get(l.ICommandService).executeCommand(et.id,{unitId:n,sheetId:t,sheetViewStartRow:0,sheetViewStartColumn:0})}};var vc=Object.defineProperty,Cc=Object.getOwnPropertyDescriptor,_c=(i,o,e,t)=>{for(var n=t>1?void 0:t?Cc(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&vc(o,e,n),n},ds=(i,o)=>(e,t)=>o(e,t,i);let zt=class{constructor(i,o){E(this,"_current",null);E(this,"_shortcutParam",[]);this._univerInstanceService=i,this._localeService=o}dispose(){this._shortcutParam=[]}getCurrentBySearch(i){return this._getCurrentBySearch(i)}getCurrent(){return this._getCurrentBySearch(this._current)}addOrUpdate(i){const o=this._getCurrentBySearch({unitId:i.unitId,sheetId:i.sheetId,keycode:i.keycode});if(o!=null){const e=this._shortcutParam.indexOf(o);this._shortcutParam.splice(e,1)}return this._shortcutParam.push(i),o}remove(i){if(i==null)return;const o=this._getCurrentBySearch(i);if(o==null)return;const e=this._shortcutParam.indexOf(o);return this._shortcutParam.splice(e,1)[0]}_getCurrentBySearch(i){return i==null?void 0:this._shortcutParam.find(e=>e.unitId===i.unitId&&e.sheetId===i.sheetId&&e.keycode===i.keycode)}};zt=_c([ds(0,l.IUniverInstanceService),ds(1,l.Inject(l.LocaleService))],zt);var Ni=(i=>(i.MergeAll="mergeAll",i.MergeVertical="mergeVertical",i.MergeHorizontal="mergeHorizontal",i))(Ni||{});function at(i,o,e,t,n=!0,r=1,s=!0){let a={...i};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=i.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,n&&(a=at(a,l.Direction.LEFT,e,t,!1)));break;case l.Direction.DOWN:for(c=i.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,n&&(a=at(a,l.Direction.RIGHT,e,t,!1)));break;case l.Direction.LEFT:for(c=i.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,n&&(a=at(a,l.Direction.UP,e,t,!1)));break;case l.Direction.RIGHT:for(c=i.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,n&&(a=at(a,l.Direction.DOWN,e,t,!1)));break}return a}function Pr(i,o,e){const t={...i},{startRow:n,startColumn:r,endRow:s,endColumn:a}=Ln(i,o,e);let c=mn(e,n,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:g,matrix:p}=mn(e,h,t.startColumn,h,t.endColumn);if(c&&!g&&!d){u=!1;break}else{if(p.getLength()!==0){let f=h;p.forValue(S=>{f=Math.min(S,f)}),t.startRow=f}else t.startRow=h;if(t.endRow=t.startRow,!c&&g){u=!1;break}c=g,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:g,matrix:p}=mn(e,h,t.startColumn,h,t.endColumn);if(c&&!g&&!d){u=!1;break}else{if(p.getLength()!==0){let f=h;p.forValue((S,v,C)=>{f=Math.max(S+(C.rowSpan||1)-1,f)}),t.endRow=f}else t.endRow=h;if(t.startRow=t.endRow,!c&&g){u=!1;break}c=g,d=!1}}if(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:g,matrix:p}=mn(e,t.startRow,h,t.endRow,h);if(c&&!g&&!d){u=!1;break}else{if(p.getLength()!==0){let f=h;p.forValue((S,v)=>{f=Math.min(v,f)}),t.startColumn=f}else t.startColumn=h;if(t.endColumn=t.startColumn,!c&&g){u=!1;break}c=g,d=!1}}if(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:g,matrix:p}=mn(e,t.startRow,h,t.endRow,h);if(c&&!g&&!d){u=!1;break}else{if(p.getLength()!==0){let f=h;p.forValue((S,v,C)=>{f=Math.max(v+(C.colSpan||1)-1,f)}),t.endColumn=f}else t.endColumn=h;if(t.startColumn=t.endColumn,!c&&g){u=!1;break}c=g,d=!1}}}return m.alignToMergedCellsBorders(t,e,!0)}function ll(i,o,e){return at(i,o,e,void 0,!1,1,!1)}function Ic(i,o,e){const t=Pr(i,o,e);return m.alignToMergedCellsBorders(l.Rectangle.union(t,i),e,!0)}function Rc(i,o,e){const t=ll(i,o,e),n={startRow:Math.min(i.startRow,t.startRow),startColumn:Math.min(i.startColumn,t.startColumn),endRow:Math.max(i.endRow,t.endRow),endColumn:Math.max(i.endColumn,t.endColumn)};return m.alignToMergedCellsBorders(l.Rectangle.union(i,n),e)}function bc(i,o,e,t){const n=l.getReverseDirection(e),r=Pr(Ln(i,n,t),e,t);return e===l.Direction.UP&&r.startRow<=i.startRow?m.alignToMergedCellsBorders({...o,startColumn:i.startColumn,endColumn:i.endColumn},t,!0):e===l.Direction.DOWN&&r.endRow>=i.endRow?m.alignToMergedCellsBorders({...o,startColumn:i.startColumn,endColumn:i.endColumn},t,!0):e===l.Direction.LEFT&&r.startColumn<=i.startColumn?m.alignToMergedCellsBorders({...o,startRow:i.startRow,endRow:i.endRow},t,!0):e===l.Direction.RIGHT&&r.endColumn>=i.endColumn?m.alignToMergedCellsBorders({...o,startRow:i.startRow,endRow:i.endRow},t,!0):l.Rectangle.union(l.Rectangle.clone(o),r)}function Tc(i,o,e){const t=l.getReverseDirection(o),n=Ln(i,t,e),r=Ln(i,o,e),s=ll(n,o,e);return m.alignToMergedCellsBorders(l.Rectangle.union(r,s),e,!1)}function al(i,o,e){const{left:t,right:n,up:r,down:s}=o,a=e.getMaxRows(),c=e.getMaxColumns();let d=!0;const u={...i};for(;d;){if(d=!1,r&&u.startRow!==0){const h=u.startRow-1;e.getMatrixWithMergedCells(h,u.startColumn,h,u.endColumn).forValue((p,f,S)=>{Rn(S)&&(u.startRow=Math.min(p,u.startRow),u.startColumn=Math.min(f,u.startColumn),u.endColumn=Math.max(f,u.endColumn),d=!0)})}if(s&&u.endRow!==a-1){const h=u.endRow+1;e.getMatrixWithMergedCells(h,u.startColumn,h,u.endColumn).forValue((p,f,S)=>{Rn(S)&&(u.endRow=Math.max(p+(S.rowSpan!==void 0?S.rowSpan-1:0),u.endRow),u.startColumn=Math.min(f,u.startColumn),u.endColumn=Math.max(f,u.endColumn),d=!0)})}if(t&&u.startColumn!==0){const h=u.startColumn-1;e.getMatrixWithMergedCells(u.startRow,h,u.endRow,h).forValue((p,f,S)=>{Rn(S)&&(u.startColumn=Math.min(f,u.startColumn),u.startRow=Math.min(p,u.startRow),u.endRow=Math.max(p,u.endRow),d=!0)})}if(n&&u.endColumn!==c-1){const h=u.endColumn+1;e.getMatrixWithMergedCells(u.startRow,h,u.endRow,h).forValue((p,f,S)=>{Rn(S)&&(u.endColumn=Math.max(f+(S.colSpan!==void 0?S.colSpan-1:0),u.endColumn),u.startRow=Math.min(p,u.startRow),u.endRow=Math.max(p,u.endRow),d=!0)})}}return u}function us(i){return{startRow:0,startColumn:0,endRow:i.getRowCount()-1,endColumn:i.getColumnCount()-1,rangeType:l.RANGE_TYPE.ALL}}function Ln(i,o,e){let t;switch(o){case l.Direction.UP:t={startRow:i.startRow,startColumn:i.startColumn,endRow:i.startRow,endColumn:i.endColumn,rangeType:l.RANGE_TYPE.NORMAL};break;case l.Direction.DOWN:t={startRow:i.endRow,startColumn:i.startColumn,endRow:i.endRow,endColumn:i.endColumn,rangeType:l.RANGE_TYPE.NORMAL};break;case l.Direction.LEFT:t={startRow:i.startRow,startColumn:i.startColumn,endRow:i.endRow,endColumn:i.startColumn,rangeType:l.RANGE_TYPE.NORMAL};break;case l.Direction.RIGHT:t={startRow:i.startRow,startColumn:i.endColumn,endRow:i.endRow,endColumn:i.endColumn,rangeType:l.RANGE_TYPE.NORMAL};break;default:throw new Error("Invalid direction")}return m.alignToMergedCellsBorders(t,e,!1)}function mn(i,o,e,t,n){let r=!1;const s=i.getMatrixWithMergedCells(o,e,t,n).forValue((a,c,d)=>{if(Rn(d))return r=!0,!1});return{hasValue:r,matrix:s}}function Qo(i,o,e){const t=l.Rectangle.clone(i);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 Ec(i,o,e){const{primary:t,range:n}=i,r=l.Rectangle.clone(n);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=Ln(r,o,e);switch(o){case l.Direction.DOWN:return n.startRow<s.startRow;case l.Direction.UP:return n.endRow>s.endRow;case l.Direction.LEFT:return s.endColumn<n.endColumn;case l.Direction.RIGHT:return s.startColumn>n.startColumn}}function cl(i,o){let e=i[0].startRow,t=i[0].endRow;i.forEach(r=>{const{startRow:s,endRow:a}=r;e=Math.min(e,s),t=Math.max(t,a)});const n=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++)n[c-e]=!0}),i.every(r=>{const{startRow:s,endRow:a}=r;for(let c=s;c<=a;c++)if(!n[c-e])return!1;return!0})}function dl(i,o){let e=i[0].startColumn,t=i[0].endColumn;i.forEach(r=>{const{startColumn:s,endColumn:a}=r;e=Math.min(e,s),t=Math.max(t,a)});const n=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++)n[c-e]=!0}),i.every(r=>{const{startColumn:s,endColumn:a}=r;for(let c=s;c<=a;c++)if(!n[c-e])return!1;return!0})}function yr(i,o){return o?i==="mergeAll"?o.filter(e=>!(e.startRow===e.endRow&&e.startColumn===e.endColumn)):i==="mergeVertical"?o.filter(e=>e.startRow!==e.endRow):i==="mergeHorizontal"?o.filter(e=>e.startColumn!==e.endColumn):o:null}function Rn(i){return i.v!==void 0&&i.v!==null&&i.v!==""||i.p!==void 0}var ze=(i=>(i[i.moveStopeOne=0]="moveStopeOne",i[i.moveGap=1]="moveGap",i[i.moveStepPage=2]="moveStepPage",i[i.moveStepEnd=3]="moveStepEnd",i))(ze||{});const we={id:"sheet.command.move-selection",type:l.CommandType.COMMAND,handler:async(i,o)=>{if(!o)return!1;const e=m.getSheetCommandTarget(i.get(l.IUniverInstanceService));if(!e)return!1;const{workbook:t,worksheet:n}=e,r=m.getSelectionsService(i).getCurrentLastSelection();if(!r)return!1;const{direction:s,jumpOver:a}=o,{range:c,primary:d}=r,u=Qo(c,d,s),h=a===1?Pr(u,s,n):at(u,s,n),g=m.getCellAtRowCol(h.startRow,h.startColumn,n);return l.Rectangle.equals(g,u)?!1:(i.get(zt).remove({unitId:t.getUnitId(),sheetId:n.getSheetId(),keycode:T.KeyCode.TAB}),i.get(l.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:t.getUnitId(),subUnitId:n.getSheetId(),selections:[{range:l.Rectangle.clone(g),primary:{startRow:g.startRow,startColumn:g.startColumn,endRow:g.endRow,endColumn:g.endColumn,actualRow:h.startRow,actualColumn:h.startColumn,isMerged:g.isMerged,isMergedMainCell:g.startRow===h.startRow&&g.startColumn===h.startColumn}}]}))}},Ye={id:"sheet.command.move-selection-enter-tab",type:l.CommandType.COMMAND,handler:async(i,o)=>{if(!o)return!1;const e=m.getSheetCommandTarget(i.get(l.IUniverInstanceService));if(!e)return!1;const{workbook:t,worksheet:n}=e,r=m.getSelectionsService(i).getCurrentLastSelection();if(!r)return!1;const s=t.getUnitId(),a=n.getSheetId();if(!r)return!1;const{direction:c,keycode:d}=o,{range:u,primary:h}=r;let g=Qo(u,h,c);const p=i.get(zt),f=p.getCurrentBySearch({unitId:s,sheetId:a,keycode:T.KeyCode.TAB});let S;const{startRow:v,endRow:C,startColumn:I,endColumn:R}=u;if(l.Rectangle.equals(u,h)){if(d===T.KeyCode.TAB)f==null&&p.addOrUpdate({unitId:s,sheetId:a,keycode:T.KeyCode.TAB,selection:r});else{const y=f==null?void 0:f.selection;if(y!=null){const{range:M,primary:A}=y;g=Qo(M,A,c)}p.remove({unitId:s,sheetId:a,keycode:T.KeyCode.TAB})}const b=at(g,c,n),w=m.getCellAtRowCol(b.startRow,b.startColumn,n);if(l.Rectangle.equals(w,g))return!1;S={range:l.Rectangle.clone(w),primary:{startRow:w.startRow,startColumn:w.startColumn,endRow:w.endRow,endColumn:w.endColumn,actualRow:b.startRow,actualColumn:b.startColumn,isMerged:w.isMerged,isMergedMainCell:w.startRow===b.startRow&&w.startColumn===b.startColumn}}}else{p.remove({unitId:s,sheetId:a,keycode:T.KeyCode.TAB});const b=l.Tools.deepClone(h),w=at({startRow:b.startRow,startColumn:b.startColumn,endRow:b.endRow,endColumn:b.endColumn},c,n,{startRow:v,endRow:C,startColumn:I,endColumn:R}),y=m.getCellAtRowCol(w.startRow,w.startColumn,n);S={range:l.Rectangle.clone(u),primary:{startRow:y.startRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.endColumn,actualRow:w.startRow,actualColumn:w.startColumn,isMerged:y.isMerged,isMergedMainCell:y.startRow===w.startRow&&y.startColumn===w.startColumn}}}return i.get(l.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:s,subUnitId:a,selections:[S]})}},ye={id:"sheet.command.expand-selection",type:l.CommandType.COMMAND,handler:async(i,o)=>{if(!o)return!1;const e=m.getSheetCommandTarget(i.get(l.IUniverInstanceService));if(!e)return!1;const{worksheet:t,unitId:n,subUnitId:r}=e,s=m.getSelectionsService(i).getCurrentLastSelection();if(!s)return!1;const{range:a,primary:c}=s,{jumpOver:d,direction:u}=o,g=Ec(s,u,t)?d===1?bc(a,{...l.Rectangle.clone(c),rangeType:l.RANGE_TYPE.NORMAL},u,t):Tc(a,u,t):d===1?Ic(a,u,t):Rc(a,u,t);return l.Rectangle.equals(g,a)?!1:i.get(l.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:n,subUnitId:r,selections:[{range:g,primary:c}]})}};let Ve=[],bo="";const xi={id:"sheet.command.select-all",type:l.CommandType.COMMAND,onDispose(){Ve=[],bo=""},handler:async(i,o={expandToGapFirst:!0,loop:!1})=>{const e=m.getSelectionsService(i).getCurrentLastSelection(),t=m.getSheetCommandTarget(i.get(l.IUniverInstanceService));if(!t)return!1;const{worksheet:n,unitId:r,subUnitId:s}=t;if(!e||!n)return!1;const a=`${r}|${s}`;a!==bo&&(Ve=[],bo=a);const c=n.getMaxRows(),d=n.getMaxColumns(),{expandToGapFirst:u,loop:h}=o,{range:g,primary:p}=e,f=g.endColumn===d-1&&g.endRow===c-1&&g.startRow===0&&g.startColumn===0;Ve.some(v=>l.Rectangle.equals(v,g))||(Ve=[],Ve.push(g));let S;if(f)if(h){if(Ve.findIndex(C=>l.Rectangle.equals(C,g))!==Ve.length-1)return!1;S=Ve[0]}else return!1;else u?(S=al(g,{left:!0,right:!0,up:!0,down:!0},n),l.Rectangle.equals(S,g)&&(S=us(n))):S=us(n);return Ve.some(v=>l.Rectangle.equals(v,S))||Ve.push(S),i.get(l.ICommandService).executeCommand(m.SetSelectionsOperation.id,{unitId:r,subUnitId:s,selections:[{range:S,primary:p}]})}};var de=(i=>(i.MAIN="__SpreadsheetRender__",i.ROW="__SpreadsheetRowHeader__",i.COLUMN="__SpreadsheetColumnHeader__",i.LEFT_TOP="__SpreadsheetLeftTopPlaceholder__",i))(de||{}),ul=(i=>(i.VIEW_MAIN="viewMain",i.VIEW_MAIN_LEFT_TOP="viewMainLeftTop",i.VIEW_MAIN_TOP="viewMainTop",i.VIEW_MAIN_LEFT="viewMainLeft",i.VIEW_ROW_TOP="viewRowTop",i.VIEW_ROW_BOTTOM="viewRowBottom",i.VIEW_COLUMN_LEFT="viewColumnLeft",i.VIEW_COLUMN_RIGHT="viewColumnRight",i.VIEW_LEFT_TOP="viewLeftTop",i))(ul||{});const hs=0,hl=1,dt=10,Jo=[10,400],wc=11,ms=12;function Pc(i){return typeof i.isMainScene>"u"}function Ge(i,o){const e=i instanceof l.Workbook?i:i.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!e)return null;const t=e.getUnitId();let n,r,s,a;if(Pc(o)){const g=o.getRenderById(t);if(g==null)return null;n=g.components,n=g.components,r=g.mainComponent,s=g.scene,a=g.engine}else n=o.components,r=o.mainComponent,s=o.scene,a=o.engine;if(!n||!r)return null;const c=r,d=n.get(de.ROW),u=n.get(de.COLUMN),h=n.get(de.LEFT_TOP);return{spreadsheet:c,spreadsheetRowHeader:d,spreadsheetColumnHeader:u,spreadsheetLeftTopPlaceholder:h,scene:s,engine:a}}function $o(i,o,e,t){const{startX:n,startY:r,endX:s,endY:a}=t.getCellByIndex(i,o);return{startX:n,startY:r,endX:s,endY:a}}function Fe(i,o,e,t,n,r){const s=e.getRelativeToViewportCoord(P.Vector2.FromArray([i,o])),{x:a,y:c}=s,d=e.getVpScrollXYInfoByPosToVp(s,n),{scaleX:u,scaleY:h}=e.getAncestorScale(),g=t.getCellPositionByOffset(a,c,u,h,d,r),{row:p,column:f}=g,S=t.getNoMergeCellPositionByIndex(p,f),{startX:v,startY:C,endX:I,endY:R}=S;return{startX:v,startY:C,endX:I,endY:R,row:p,column:f}}function wn(i,o,e,t){const n=e.getRelativeToViewportCoord(P.Vector2.FromArray([i,o])),r=e.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),s=e.getVpScrollXYInfoByPosToVp(n,r),{scaleX:a,scaleY:c}=e.getAncestorScale(),{x:d,y:u}=s,h=i/a+d,g=o/c+u;return{x:h,y:g}}var yc=Object.defineProperty,Mc=Object.getOwnPropertyDescriptor,Oc=(i,o,e,t)=>{for(var n=t>1?void 0:t?Mc(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&yc(o,e,n),n},gn=(i,o)=>(e,t)=>o(e,t,i);const Ac=[we.id,Ye.id];exports.SheetsScrollRenderController=class extends l.Disposable{constructor(o,e,t,n,r,s){super(),this._context=o,this._injector=e,this._sheetSkeletonManagerService=t,this._commandService=n,this._renderManagerService=r,this._scrollManagerService=s,this._init()}scrollToRange(o){let{endRow:e,endColumn:t,startColumn:n,startRow:r}=o;const s=this._getViewportBounding();if(o.rangeType===l.RANGE_TYPE.ROW?(n=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?n:t;return this._scrollToCell(a,c)}else return this._scrollToCell(r,n)}_init(){this._initCommandListener(),this._initScrollEventListener(),this._scrollSubscribeBinding(),this._initSkeletonListener()}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(Ac.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:n,endRow:r,endColumn:s}=e.range,a=this._getViewportBounding();if(a==null)return;const{startRow:c,startColumn:d,endRow:u,endColumn:h}=a;let g=0,p=0;t>c?g=r:r<u?g=t:g=c,n>d?p=s:s<h?p=n:p=d,o.direction===l.Direction.DOWN?g=r:o.direction===l.Direction.UP?g=t:o.direction===l.Direction.RIGHT?p=s:o.direction===l.Direction.LEFT&&(p=n),this._scrollToCell(g,p)},0)}_getFreeze(){var e;const o=(e=this._sheetSkeletonManagerService.getCurrent())==null?void 0:e.skeleton.getWorksheetConfig();if(o!=null)return o.freeze}_initScrollEventListener(){var t;const o=(t=this._getSheetObject())==null?void 0:t.scene;if(o==null)return;const e=o.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);e&&(this.disposeWithMe(e.onScrollAfter$.subscribeEvent(n=>{var f;const r=(f=this._sheetSkeletonManagerService.getCurrent())==null?void 0:f.skeleton;if(r==null||n.isTrigger===!1)return;const s=this._getSheetObject();if(r==null||s==null)return;const{viewportScrollX:a=0,viewportScrollY:c=0}=n,{row:d,column:u,rowOffset:h,columnOffset:g}=r.getDecomposedOffset(a,c),p={sheetViewStartRow:d,sheetViewStartColumn:u,offsetX:g,offsetY:h,viewportScrollX:a,viewportScrollY:c};this._scrollManagerService.justSetScrollInfoToCurrSheet(p),this._scrollManagerService.validViewportScrollInfo$.next({scrollX:n.scrollX||0,scrollY:n.scrollY||0,viewportScrollX:n.viewportScrollX||0,viewportScrollY:n.viewportScrollY||0})})),this.disposeWithMe(e.onScrollByBar$.subscribeEvent(n=>{var f;const r=(f=this._sheetSkeletonManagerService.getCurrent())==null?void 0:f.skeleton;if(r==null||n.isTrigger===!1)return;const s=this._getSheetObject();if(r==null||s==null)return;const{viewportScrollX:a=0,viewportScrollY:c=0}=n,d=this._getFreeze(),{row:u,column:h,rowOffset:g,columnOffset:p}=r.getDecomposedOffset(a,c);this._commandService.executeCommand(Be.id,{sheetViewStartRow:u+((d==null?void 0:d.ySplit)||0),sheetViewStartColumn:h+((d==null?void 0:d.xSplit)||0),offsetX:p,offsetY:g})})))}_scrollSubscribeBinding(){const{scene:o}=this._context;if(!o)return;const e=o.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);e&&this.disposeWithMe(l.toDisposable(this._scrollManagerService.rawScrollInfo$.subscribe(t=>{var f;const n=(f=this._sheetSkeletonManagerService.getCurrent())==null?void 0:f.skeleton;if(!n)return;if(t==null){e.scrollTo({x:0,y:0});return}const{sheetViewStartRow:r,sheetViewStartColumn:s,offsetX:a,offsetY:c}=t,{startX:d,startY:u}=n.getCellByIndexWithNoHeader(r,s),h=d+a,g=u+c,p=e.transViewportScroll2ScrollValue(h,g);e.scrollTo({x:p.x,y:p.y})})))}_initSkeletonListener(){this.disposeWithMe(l.toDisposable(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(o=>{if(o==null)return;this._scrollManagerService.setSearchParam(o);const e=this._getSheetObject();if(!e)return;const n=e.scene.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),r=this._scrollManagerService.getScrollInfoByParam(o);n&&(n.viewportScrollX=(r==null?void 0:r.viewportScrollX)||0,n.viewportScrollY=(r==null?void 0:r.viewportScrollY)||0,this._updateSceneSize(o))})))}_updateSceneSize(o){var g;if(o==null)return;const{unitId:e}=this._context,{skeleton:t}=o,n=(g=this._renderManagerService.getRenderById(e))==null?void 0:g.scene;if(t==null||n==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;n==null||n.setScaleValue(h,h),n==null||n.transformByState({width:a+s,height:c+r})}_getSheetObject(){return Ge(this._context.unit,this._context)}_scrollToSelectionByDirection(o){const e=this._getViewportBounding();if(e==null)return!1;const{startRow:t,startColumn:n,endRow:r,endColumn:s}=e;let a=0,c=0;const{startRow:d,startColumn:u,endRow:h,endColumn:g}=o;d>=t&&(a=h),h<=r&&(a=d),u>=n&&(c=g),g<=s&&(c=u),this._scrollToCell(a,c)}_scrollToSelection(o=!0){const e=this._getSelectionsService().getCurrentLastSelection();if(e==null)return;const{startRow:t,startColumn:n,actualRow:r,actualColumn:s}=e.primary,a=o?r:t,c=o?s:n;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(P.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 n=e.getBounding();return t.getRowColumnSegment(n)}_scrollToCell(o,e){var y,M,A,N;const{rowHeightAccumulation:t,columnWidthAccumulation:n}=(M=(y=this._sheetSkeletonManagerService.getCurrent())==null?void 0:y.skeleton)!=null?M:{};if(t==null||n==null)return!1;const r=(A=this._getSheetObject())==null?void 0:A.scene;if(r==null)return!1;const s=r.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(s==null||((N=this._sheetSkeletonManagerService.getCurrent())==null?void 0:N.skeleton)==null)return!1;const c=this._context.unit.getActiveSheet();if(!c)return!1;const{startColumn:d,startRow:u,ySplit:h,xSplit:g}=c.getFreeze(),p=this._getViewportBounding();if(p==null)return!1;const{startRow:f,startColumn:S,endRow:v,endColumn:C}=p;let I,R;if(o>=u&&e>=d-g&&(o<=f&&(I=o),o>=v)){const x=t[o]-s.height;for(let D=f;D<=o;D++)if(t[D]>=x){I=D+1;break}}if(e>=d&&o>=u-h&&(e<=S&&(R=e),e>=C)){const x=n[e]-s.width;for(let D=S;D<=e;D++)if(n[D]>=x){R=D+1;break}}if(I===void 0&&R===void 0)return!1;const{offsetX:b,offsetY:w}=this._scrollManagerService.getCurrentScrollInfo()||{};return this._commandService.syncExecuteCommand(Be.id,{sheetViewStartRow:I,sheetViewStartColumn:R,offsetX:R===void 0?b:0,offsetY:I===void 0?w:0})}};exports.SheetsScrollRenderController=Oc([gn(1,l.Inject(l.Injector)),gn(2,l.Inject(exports.SheetSkeletonManagerService)),gn(3,l.ICommandService),gn(4,P.IRenderManagerService),gn(5,l.Inject(Ie))],exports.SheetsScrollRenderController);var vi=(i=>(i[i.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",i[i.UNIVER_DOC=1]="UNIVER_DOC",i[i.UNIVER_SHEET=2]="UNIVER_SHEET",i[i.UNIVER_SLIDE=3]="UNIVER_SLIDE",i[i.UNRECOGNIZED=-1]="UNRECOGNIZED",i))(vi||{}),Ht=(i=>(i[i.SomeCollaborator=0]="SomeCollaborator",i[i.AllCollaborator=1]="AllCollaborator",i[i.OneSelf=2]="OneSelf",i[i.UNRECOGNIZED=-1]="UNRECOGNIZED",i))(Ht||{}),K=(i=>(i[i.View=0]="View",i[i.Edit=1]="Edit",i[i.ManageCollaborator=2]="ManageCollaborator",i[i.Print=3]="Print",i[i.Duplicate=4]="Duplicate",i[i.Comment=5]="Comment",i[i.Copy=6]="Copy",i[i.Share=7]="Share",i[i.Export=8]="Export",i[i.MoveWorksheet=9]="MoveWorksheet",i[i.DeleteWorksheet=10]="DeleteWorksheet",i[i.HideWorksheet=11]="HideWorksheet",i[i.RenameWorksheet=12]="RenameWorksheet",i[i.CreateWorksheet=13]="CreateWorksheet",i[i.SetWorksheetStyle=14]="SetWorksheetStyle",i[i.EditWorksheetCell=15]="EditWorksheetCell",i[i.InsertHyperlink=16]="InsertHyperlink",i[i.Sort=17]="Sort",i[i.Filter=18]="Filter",i[i.PivotTable=19]="PivotTable",i[i.FloatImg=20]="FloatImg",i[i.History=21]="History",i[i.RwHgtClWdt=22]="RwHgtClWdt",i[i.ViemRwHgtClWdt=23]="ViemRwHgtClWdt",i[i.ViewFilter=24]="ViewFilter",i[i.MoveSheet=25]="MoveSheet",i[i.DeleteSheet=26]="DeleteSheet",i[i.HideSheet=27]="HideSheet",i[i.CopySheet=28]="CopySheet",i[i.RenameSheet=29]="RenameSheet",i[i.CreateSheet=30]="CreateSheet",i[i.SelectProtectedCells=31]="SelectProtectedCells",i[i.SelectUnProtectedCells=32]="SelectUnProtectedCells",i[i.SetCellStyle=33]="SetCellStyle",i[i.SetCellValue=34]="SetCellValue",i[i.SetRowStyle=35]="SetRowStyle",i[i.SetColumnStyle=36]="SetColumnStyle",i[i.InsertRow=37]="InsertRow",i[i.InsertColumn=38]="InsertColumn",i[i.DeleteRow=39]="DeleteRow",i[i.DeleteColumn=40]="DeleteColumn",i[i.EditExtraObject=41]="EditExtraObject",i[i.Delete=42]="Delete",i[i.RecoverHistory=43]="RecoverHistory",i[i.ViewHistory=44]="ViewHistory",i[i.UNRECOGNIZED=-1]="UNRECOGNIZED",i))(K||{}),_e=(i=>(i[i.Reader=0]="Reader",i[i.Editor=1]="Editor",i[i.Owner=2]="Owner",i[i.UNRECOGNIZED=-1]="UNRECOGNIZED",i))(_e||{}),ie=(i=>(i[i.Unkonwn=0]="Unkonwn",i[i.Workbook=1]="Workbook",i[i.Worksheet=2]="Worksheet",i[i.SelectRange=3]="SelectRange",i[i.Document=4]="Document",i[i.Slide=5]="Slide",i[i.UNRECOGNIZED=-1]="UNRECOGNIZED",i))(ie||{});function Nc(i){return i.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).pipe(O.switchMap(o=>o?o.activeSheet$.pipe(O.map(e=>e?{workbook:o,worksheet:e}:null)):O.of(null)))}function Re(i,o,e){return Nc(i).pipe(O.switchMap(t=>t?e(t):O.of(o)))}function ee(i,o={}){const t=i.get(l.IUniverInstanceService).getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),n=i.get(l.UserManagerService);return O.combineLatest([n.currentUser$,t]).pipe(O.switchMap(([r,s])=>s?s.activeSheet$.pipe(O.switchMap(a=>{if(!a)return O.of(!0);const c=i.get(m.SheetsSelectionsService),d=i.get(m.RangeProtectionRuleModel),u=i.get(m.WorksheetProtectionRuleModel),g=i.get(l.IContextService).subscribeContextValue$(l.FOCUSING_COMMON_DRAWINGS).pipe(O.startWith(!1));return O.combineLatest([c.selectionMoveEnd$,g]).pipe(O.switchMap(([p,f])=>{if(f)return O.of(!0);const S=s.getUnitId(),v=a.getSheetId(),C=i.get(l.IPermissionService),{workbookTypes:I=[m.WorkbookEditablePermission],worksheetTypes:R,rangeTypes:b}=o,w=[];if(I==null||I.forEach(N=>{w.push(new N(S).id)}),R==null||R.forEach(N=>{w.push(new N(S,v).id)}),u.getRule(S,v))return C.composePermission$(w).pipe(O.map(N=>N.some(x=>x.value===!1)));const M=p==null?void 0:p.map(N=>N.range),A=d.getSubunitRuleList(S,v).filter(N=>M==null?void 0:M.some(x=>N.ranges.some(D=>l.Rectangle.intersects(x,D))));return b==null||b.forEach(N=>{A.forEach(x=>{w.push(new N(S,v,x.permissionId).id)})}),C.composePermission$(w).pipe(O.map(N=>N.some(x=>x.value===!1)))}))})):O.of(!0)))}function Di(i){const o=i.get(l.IUniverInstanceService),e=i.get(m.SheetsSelectionsService),t=i.get(m.RangeProtectionRuleModel);return e.selectionMoveEnd$.pipe(O.map(()=>{var u;const n=(u=e.getCurrentLastSelection())==null?void 0:u.range;if(!n)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,g)=>[...h,...g.ranges],[]).filter(h=>l.Rectangle.intersects(n,h)).some(h=>{var v,C;const{startRow:g,startColumn:p,endRow:f,endColumn:S}=h;for(let I=g;I<=f;I++)for(let R=p;R<=S;R++){const b=(C=(v=s.getCell(I,R))==null?void 0:v.selectionProtection)==null?void 0:C[0];if((b==null?void 0:b[K.Edit])===!1)return!0}return!1})}))}function ml(i,o){const e=i.get(l.IUniverInstanceService),t=i.get(m.SheetsSelectionsService),n=i.get(m.RangeProtectionRuleModel);return t.selectionMoveEnd$.pipe(O.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 n.getSubunitRuleList(c,d).reduce((g,p)=>[...g,...p.ranges],[]).filter(g=>o==="row"?r.endRow>g.startRow&&r.endRow<=g.endRow:r.endColumn>g.startColumn&&r.endColumn<=g.endColumn).some(g=>{var C,I;const{startRow:p,startColumn:f,endRow:S,endColumn:v}=g;for(let R=p;R<=S;R++)for(let b=f;b<=v;b++){const w=(I=(C=a.getCell(R,b))==null?void 0:C.selectionProtection)==null?void 0:I[0];if((w==null?void 0:w[K.Edit])===!1)return!0}return!1})}))}function gl(i,o){const e=i.get(l.IUniverInstanceService),t=i.get(m.SheetsSelectionsService),n=i.get(m.RangeProtectionRuleModel);return t.selectionMoveEnd$.pipe(O.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 n.getSubunitRuleList(c,d).reduce((g,p)=>[...g,...p.ranges],[]).filter(g=>o==="row"?r.startRow>g.startRow&&r.startRow<=g.endRow:r.startColumn>g.startColumn&&r.startColumn<=g.endColumn).some(g=>{var C,I;const{startRow:p,startColumn:f,endRow:S,endColumn:v}=g;for(let R=p;R<=S;R++)for(let b=f;b<=v;b++){const w=(I=(C=a.getCell(R,b))==null?void 0:C.selectionProtection)==null?void 0:I[0];if((w==null?void 0:w[K.Edit])===!1)return!0}return!1})}))}function pl(i,o){const e=i.get(l.IUniverInstanceService),t=i.get(m.SheetsSelectionsService),n=i.get(m.RangeProtectionRuleModel);return t.selectionMoveEnd$.pipe(O.map(()=>{var g;const r=(g=t.getCurrentLastSelection())==null?void 0:g.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),n.getSubunitRuleList(c,d).reduce((p,f)=>[...p,...f.ranges],[]).filter(p=>l.Rectangle.intersects(u,p)).some(p=>{var I,R;const{startRow:f,startColumn:S,endRow:v,endColumn:C}=p;for(let b=f;b<=v;b++)for(let w=S;w<=C;w++){const y=(R=(I=a.getCell(b,w))==null?void 0:I.selectionProtection)==null?void 0:R[0];if((y==null?void 0:y[K.Edit])===!1)return!0}return!1})}))}function ki(i,o){const e=i.get(l.IUniverInstanceService),t=i.get(m.SheetsSelectionsService),n=i.get(m.RangeProtectionRuleModel);return t.selectionMoveEnd$.pipe(O.map(()=>{var g;const r=(g=t.getCurrentLastSelection())==null?void 0:g.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,n.getSubunitRuleList(c,d).reduce((p,f)=>[...p,...f.ranges],[]).filter(p=>l.Rectangle.intersects(p,u)).some(p=>{var I,R;const{startRow:f,startColumn:S,endRow:v,endColumn:C}=p;for(let b=f;b<=v;b++)for(let w=S;w<=C;w++){const y=(R=(I=a.getCell(b,w))==null?void 0:I.selectionProtection)==null?void 0:R[0];if((y==null?void 0:y[K.Edit])===!1)return!0}return!1})}))}function Jt(i,o){const t=i.get(l.IUniverInstanceService).getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),n=i.get(m.WorksheetProtectionRuleModel),r=i.get(m.RangeProtectionRuleModel),s=i.get(l.IPermissionService),a=i.get(l.UserManagerService);return O.combineLatest([a.currentUser$,t]).pipe(O.switchMap(([c,d])=>d?d.activeSheet$.pipe(O.switchMap(u=>{var S,v;if(!u)return O.of(!0);const h=d.getUnitId(),g=[];o.forEach(C=>g.push(new C(h).id));const p=s.composePermission$(g).pipe(O.map(C=>C.every(I=>I.value===!0))),f=(v=(S=s.getPermissionPoint$(new m.WorkbookManageCollaboratorPermission(h).id))==null?void 0:S.pipe(O.map(C=>C.value)))!=null?v:O.of(!1);return O.combineLatest([p,f]).pipe(O.map(([C,I])=>{if(!C)return!0;const R=u.getSheetId(),b=n.getRule(h,R),w=r.getSubunitRuleList(h,R);return b||w.length?!I:!1}))})):O.of(!0)))}var xc=Object.defineProperty,Dc=Object.getOwnPropertyDescriptor,kc=(i,o,e,t)=>{for(var n=t>1?void 0:t?Dc(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&xc(o,e,n),n},To=(i,o)=>(e,t)=>o(e,t,i);exports.SheetsRenderService=class extends l.RxDisposable{constructor(e,t,n){super();E(this,"_skeletonChangeMutations",new Set);this._contextService=e,this._instanceSrv=t,this._renderManagerService=n,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(O.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(O.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$(P.RENDER_RAW_FORMULA_KEY).pipe(O.distinctUntilChanged(),O.takeUntil(this.dispose$)).subscribe(()=>{this._renderManagerService.getRenderAll().forEach(e=>{e.mainComponent instanceof P.Spreadsheet&&e.mainComponent.makeForceDirty(!0)})})}};exports.SheetsRenderService=kc([l.OnLifecycle(l.LifecycleStages.Ready,exports.SheetsRenderService),To(0,l.IContextService),To(1,l.IUniverInstanceService),To(2,P.IRenderManagerService)],exports.SheetsRenderService);function Ut(i,o,e,t){const n=o.get(l.IUniverInstanceService),r=e?n.getUnit(e,l.UniverInstanceType.UNIVER_SHEET):n.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}=i,h=[],g=[];for(let p=a;p<=c;p++)s.getRowFiltered(p)||h.push(p);for(let p=d;p<=u;p++)g.push(p);return{rows:h,cols:g}}function Et(i){const{rows:o,cols:e}=i;return{startRow:o[0],endRow:o[o.length-1],startColumn:e[0],endColumn:e[e.length-1]}}function $t(i){let o=[],e=[];const t=[];return i.forEach(n=>{o.push(...n.rows),e.push(...n.cols)}),o=Array.from(new Set(o)).sort((n,r)=>n-r),e=Array.from(new Set(e)).sort((n,r)=>n-r),i.forEach(n=>{t.push({startRow:o.findIndex(r=>r===n.rows[0]),endRow:o.findIndex(r=>r===n.rows[n.rows.length-1]),startColumn:e.findIndex(r=>r===n.cols[0]),endColumn:e.findIndex(r=>r===n.cols[n.cols.length-1])})}),{ranges:t,mapFunc:(n,r)=>({row:o[n],col:e[r]})}}function Hc(i){const o=new l.ObjectMatrix;return i.forEach(e=>{const{rows:t,cols:n}=e;t.forEach(r=>{n.forEach(s=>{o.setValue(r,s,{v:null,p:null,f:null,si:null,custom:null})})})}),o.getData()}const er={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},Ci=["零","一","二","三","四","五","六","七","八","九"],gs=["","万","亿","万亿","亿亿"],Vc=["","十","百","千"],fl={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function Je(i){if(!i)return 0;let o=0,e=0,t=0,n=!1;const r=i.split("");for(let s=0;s<r.length;s++){const a=er[r[s]];if(typeof a<"u")t=a,s===r.length-1&&(e+=t);else{const c=fl[r[s]],d=c.value;n=c.secUnit,n?(e=(e+t)*d,o+=e,e=0):e+=t*d,t=0}}return o+e}function Wc(i){let o="",e="",t=0,n=!0;for(;i>0;){const r=i%10;r===0?n||(n=!0,e=Ci[r]+e):(n=!1,o=Ci[r],o+=Vc[t],e=o+e),t++,i=Math.floor(i/10)}return e}function Lc(i){let o=0,e="",t="",n=!1;if(i===0)return Ci[0];for(;i>0;){const r=i%1e4;n&&(t=Ci[0]+t),e=Wc(r),e+=r!==0?gs[o]:gs[0],t=e+t,n=r<1e3&&r>0,i=Math.floor(i/1e4),o++}return t}function Uc(i){if(!i)return!1;let o=!0;if(i)if(i.length===1)i==="日"||i in er?o=!0:o=!1;else{const e=i.split("");for(let t=0;t<e.length;t++)if(!(e[t]in er||e[t]in fl)){o=!1;break}}return o}function si(i){if(!i)return{isExtendNumber:!1};const o=/0|([1-9]+[0-9]*)/g,e=o.test(i);if(e){const t=i.match(o);if(t&&t.length>0){const n=t[t.length-1],r=i.lastIndexOf(n),s=i.substr(0,r),a=i.substr(r+n.length);return{isExtendNumber:!0,matchTxt:Number(n),beforeTxt:s,afterTxt:a}}return{isExtendNumber:!1}}return{isExtendNumber:e}}function Bc(i){let o;return i.length===2&&(i==="周一"||i==="周二"||i==="周三"||i==="周四"||i==="周五"||i==="周六"||i==="周日")?o=!0:o=!1,o}function Fc(i){let o;return i.length===3&&(i==="星期一"||i==="星期二"||i==="星期三"||i==="星期四"||i==="星期五"||i==="星期六"||i==="星期日")?o=!0:o=!1,o}function jc(i,o){let e=0;for(let t=0;t<i.length&&i[t]<o;t++)e++;return e}function jn(i){let o=!0;const e=i[1]-i[0];for(let t=1;t<i.length;t++)if(i[t]-i[t-1]!==e){o=!1;break}return o}function Xc(i,o,e){const t=[],n=Math.floor(o/i),r=o%i;let s=0;if(n>0){for(let a=0;a<n;a++)for(let c=0;c<e.length;c++)t[e[c]+a*i]=s,s++;for(let a=0;a<e.length&&e[a]<r;a++)t[e[a]+i*n]=s,s++}else for(let a=0;a<e.length&&e[a]<r;a++)t[e[a]]=s,s++;return t}function wt(i,o){const e=[];for(let t=1;t<=o;t++){const n=(t-1)%i.length,r=l.Tools.deepClone(i[n]);e.push({v:null,s:null,p:null,f:null,si:null,t:null,...r})}return e}function zc(i,o){var t;const e=[];for(let n=1;n<=o;n++){const r=(n-1)%i.length,s={s:(t=i[r])==null?void 0:t.s};e.push(s)}return e}function Yc(i){let o=!0;const e=i[1]/i[0];for(let t=1;t<i.length;t++)if(i[t]/i[t-1]!==e){o=!1;break}return o}function Gc(i){const o=[];for(let e=1;e<=i;e++)o.push(e);return o}function _i(i,o,e){var r,s,a,c;const t=[],n=[];for(let d=0;d<i.length;d++)n.push(Number((r=i[d])==null?void 0:r.v));if(i.length>2&&Yc(n))for(let d=1;d<=o;d++){const u=(d-1)%i.length,h=l.Tools.deepClone(i[u]),g=Number((s=i[i.length-1])==null?void 0:s.v)*(Number((a=i[1])==null?void 0:a.v)/Number((c=i[0])==null?void 0:c.v))**d;h&&(h.t!==l.CellValueType.BOOLEAN&&(h.v=g),t.push(h))}else{const d=Gc(i.length);for(let u=1;u<=o;u++){const h=(u-1)%i.length,g=l.Tools.deepClone(i[h]),p=e===l.Direction.DOWN||e===l.Direction.RIGHT,f=Zc(i.length+u,n,d,p);g&&(g.t!==l.CellValueType.BOOLEAN&&(g.v=f),t.push(g))}}return t}function Zc(i,o,e,t=!0){function n(h){let g=0;for(let p=0;p<h.length;p++)g+=h[p];return g/h.length}const r=n(e),s=n(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*i)*1e5)/1e5}function ps(i,o,e){var r;const t=[],n=/0|([1-9]+[0-9]*)/g;for(let s=1;s<=o;s++){const a=(s-1)%i.length,c=l.Tools.deepClone(i[a]),d=`${(r=i[i.length-1])==null?void 0:r.v}`,u=d==null?void 0:d.match(n),h=u==null?void 0:u[u.length-1],g=Math.abs(Number(h)+e*s);if(!d||!h)continue;const p=d.lastIndexOf(h),f=d.substr(0,p)+g.toString()+d.substr(p+h.length);c&&(c.v=f,t.push(c))}return t}function Yt(i,o,e,t=0){var a,c;const n=[["日","一","二","三","四","五","六"],["周日","周一","周二","周三","周四","周五","周六"],["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]];if(t>=n.length)return[];const r=n[t],s=[];for(let d=1;d<=o;d++){const u=(d-1)%i.length,h=l.Tools.deepClone(i[u]);let g=0;if(((a=i[i.length-1])==null?void 0:a.v)===r[0])g=7+e*d;else{const f=`${(c=i[i.length-1])==null?void 0:c.v}`;if(f){const S=f.substr(f.length-1,1);g=Je(S)+e*d}}g<0&&(g=Math.ceil(Math.abs(g)/7)*7+g);const p=g%7;h&&(h.v=r[p],s.push(h))}return s}function fs(i,o,e){var n;const t=[];for(let r=1;r<=o;r++){const s=(r-1)%i.length,a=l.Tools.deepClone(i[s]),c=`${(n=i[i.length-1])==null?void 0:n.v}`,d=Je(c)+e*r;let u;d<=0?u="零":u=Lc(d),a&&(a.v=u,t.push(a))}return t}const Pn={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 Kc(i){let o=!1;return Object.keys(Pn).forEach(e=>{Pn[e].includes(i)&&(o=!0)}),o}function Eo(i){let o="";const e=[];return Object.keys(Pn).forEach(t=>{Pn[t].includes(i)&&(o=t,e.push(...Pn[t]))}),{name:o,series:e}}function Ss(i,o,e,t){var s;const n=t.length,r=[];for(let a=1;a<=o;a++){const c=(a-1)%i.length,d=l.Tools.deepClone(i[c]),u=`${(s=i[i.length-1])==null?void 0:s.v}`;let h=t.indexOf(u)+e*a;h<0&&(h+=Math.abs(e)*n);const g=h%n;d&&(d.v=t[g],r.push(d))}return r}function qc(i,o){const e=[];let t;if(o.startRow<i.startRow)t=l.Direction.UP;else if(o.endRow>i.endRow)t=l.Direction.DOWN;else if(o.startColumn<i.startColumn)t=l.Direction.LEFT;else if(o.endColumn>i.endColumn)t=l.Direction.RIGHT;else return[];if(t===l.Direction.DOWN||t===l.Direction.UP){const n=i.endRow-i.startRow+1,r=o.endRow-o.startRow+1,s=Math.floor(r/n),a=r%n,c={startRow:0,startColumn:0,endRow:i.endRow-i.startRow,endColumn:i.endColumn-i.startColumn};if(t===l.Direction.DOWN){for(let d=0;d<s;d++)e.push({repeatStartCell:{row:i.startRow+(d+1)*n,col:i.startColumn},relativeRange:c});a>0&&e.push({repeatStartCell:{row:i.startRow+(s+1)*n,col:i.startColumn},relativeRange:{startRow:0,startColumn:0,endRow:a-1,endColumn:i.endColumn-i.startColumn}})}else{for(let d=0;d<s;d++)e.push({repeatStartCell:{row:i.startRow-(d+1)*n,col:i.startColumn},relativeRange:c});a>0&&e.push({repeatStartCell:{row:i.startRow-(s+1)*n,col:i.startColumn},relativeRange:{startRow:n-a,endRow:n-1,startColumn:0,endColumn:i.endColumn-i.startColumn}})}}if(t===l.Direction.RIGHT||t===l.Direction.LEFT){const n=i.endColumn-i.startColumn+1,r=o.endColumn-o.startColumn+1,s=Math.floor(r/n),a=r%n,c={startRow:0,startColumn:0,endRow:i.endRow-i.startRow,endColumn:i.endColumn-i.startColumn};if(t===l.Direction.RIGHT){for(let d=0;d<s;d++)e.push({repeatStartCell:{row:i.startRow,col:i.startColumn+(d+1)*n},relativeRange:c});a>0&&e.push({repeatStartCell:{row:i.startRow,col:i.startColumn+(s+1)*n},relativeRange:{startRow:0,startColumn:0,endRow:i.endRow-i.startRow,endColumn:a-1}})}else{for(let d=0;d<s;d++)e.push({repeatStartCell:{row:i.startRow,col:i.startColumn-(d+1)*n},relativeRange:c});a>0&&e.push({repeatStartCell:{row:i.startRow,col:i.startColumn-(s+1)*n},relativeRange:{startRow:0,startColumn:n-a,endRow:i.endRow-i.startRow,endColumn:n-1}})}}return e}var Vt=(i=>(i.Append="APPEND",i.Default="DEFAULT",i.Only="ONLY",i))(Vt||{}),me=(i=>(i.NUMBER="number",i.DATE="date",i.EXTEND_NUMBER="extendNumber",i.CHN_NUMBER="chnNumber",i.CHN_WEEK2="chnWeek2",i.CHN_WEEK3="chnWeek3",i.LOOP_SERIES="loopSeries",i.FORMULA="formula",i.OTHER="other",i))(me||{}),re=(i=>(i.COPY="COPY",i.SERIES="SERIES",i.ONLY_FORMAT="ONLY_FORMAT",i.NO_FORMAT="NO_FORMAT",i))(re||{});const Qc={type:me.DATE,priority:1100,match:(i,o)=>{var e;if((typeof(i==null?void 0:i.v)=="number"||(i==null?void 0:i.t)===l.CellValueType.NUMBER)&&i.s){if(typeof i.s=="string"){const n=o.get(l.IUniverInstanceService).getFocusedUnit().getStyles().get(i.s),r=(e=n==null?void 0:n.n)==null?void 0:e.pattern;if(r)return $e.getInfo(r).isDate}else if(i.s.n&&$e.getInfo(i.s.n.pattern).isDate)return!0}return!1},isContinue:(i,o)=>i.type===me.DATE,applyFunctions:{[re.SERIES]:(i,o,e)=>{const{data:t}=i;return e===l.Direction.LEFT||e===l.Direction.UP?(t.reverse(),_i(t,o,e).reverse()):_i(t,o,e)}}},Jc={type:me.NUMBER,priority:1e3,match:i=>typeof(i==null?void 0:i.v)=="number"||(i==null?void 0:i.t)===l.CellValueType.NUMBER,isContinue:(i,o)=>i.type===me.NUMBER,applyFunctions:{[re.SERIES]:(i,o,e)=>{const{data:t}=i;return e===l.Direction.LEFT||e===l.Direction.UP?(t.reverse(),_i(t,o,e).reverse()):_i(t,o,e)}}},Sl={type:me.OTHER,priority:0,match:()=>!0,isContinue:(i,o)=>i.type===me.OTHER},$c={type:me.EXTEND_NUMBER,priority:900,match:i=>si(`${i==null?void 0:i.v}`||"").isExtendNumber,isContinue:(i,o)=>{var e;if(i.type===me.EXTEND_NUMBER){const{beforeTxt:t,afterTxt:n}=si(`${(e=i.cellData)==null?void 0:e.v}`||""),{beforeTxt:r,afterTxt:s}=si(`${o==null?void 0:o.v}`||"");if(t===r&&n===s)return!0}return!1},applyFunctions:{[re.SERIES]:(i,o,e)=>{var a;const{data:t}=i,n=e===l.Direction.UP||e===l.Direction.LEFT;let r;if(t.length===1)return r=n?-1:1,xe(ps(t,o,r),n);const s=[];for(let c=0;c<t.length;c++){const d=`${(a=t[c])==null?void 0:a.v}`;d&&s.push(Number(si(d).matchTxt))}return n&&(t.reverse(),s.reverse()),jn(s)?(r=s[1]-s[0],xe(ps(t,o,r),n)):wt(t,o)}}},ed={type:me.CHN_NUMBER,priority:830,match:i=>!!Uc(`${i==null?void 0:i.v}`||""),isContinue:(i,o)=>i.type===me.CHN_NUMBER,applyFunctions:{[re.SERIES]:(i,o,e)=>{var c,d,u;const{data:t}=i,n=e===l.Direction.LEFT||e===l.Direction.UP;if(t.length===1){const h=`${(c=t[0])==null?void 0:c.v}`;let g;return n?g=-1:g=1,h&&(h==="日"||Je(h)<7)?xe(Yt(t,o,g),n):xe(fs(t,o,g),n)}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 g=`${(u=t[h])==null?void 0:u.v}`;g==="日"?h===0?s.push(0):(a++,s.push(a*7)):r&&Je(g)>0&&Je(g)<7?s.push(Je(g)+a*7):s.push(Je(g))}if(n&&(t.reverse(),s.reverse()),jn(s)){if(r||s[s.length-1]<6&&s[0]>0||s[0]<6&&s[s.length-1]>0){const g=s[1]-s[0];return xe(Yt(t,o,g),n)}const h=s[1]-s[0];return xe(fs(t,o,h),n)}return wt(t,o)}}},td={type:me.CHN_WEEK2,priority:820,match:i=>!!Bc(`${i==null?void 0:i.v}`||""),isContinue:(i,o)=>i.type===me.CHN_WEEK2,applyFunctions:{[re.SERIES]:(i,o,e)=>{var a;const{data:t}=i,n=e===l.Direction.LEFT||e===l.Direction.UP;if(t.length===1){let c;return n?c=-1:c=1,xe(Yt(t,o,c,1),n)}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(n&&(t.reverse(),r.reverse()),jn(r)){const c=r[1]-r[0];return xe(Yt(t,o,c,1),n)}return wt(t,o)}}},nd={type:me.CHN_WEEK3,priority:810,match:i=>Fc(`${i==null?void 0:i.v}`||""),isContinue:(i,o)=>i.type===me.CHN_WEEK3,applyFunctions:{[re.SERIES]:(i,o,e)=>{var a;const{data:t}=i,n=e===l.Direction.LEFT||e===l.Direction.UP;if(t.length===1){let c;return n?c=-1:c=1,xe(Yt(t,o,c,2),n)}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(n&&(t.reverse(),r.reverse()),jn(r)){const c=r[1]-r[0];return xe(Yt(t,o,c,2),n)}return wt(t,o)}}},id={type:me.LOOP_SERIES,priority:800,match:i=>Kc(`${i==null?void 0:i.v}`||""),isContinue:(i,o)=>{var e;return i.type===me.LOOP_SERIES?Eo(`${(e=i.cellData)==null?void 0:e.v}`||"").name===Eo(`${o==null?void 0:o.v}`||"").name:!1},applyFunctions:{[re.SERIES]:(i,o,e)=>{var c,d;const{data:t}=i,n=e===l.Direction.LEFT||e===l.Direction.UP,{series:r}=Eo(`${(c=t[0])==null?void 0:c.v}`||"");if(t.length===1){let u;return n?u=-1:u=1,xe(Ss(t,o,u,r),n)}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(n&&(t.reverse(),s.reverse()),jn(s)){const u=s[1]-s[0];return xe(Ss(t,o,u,r),n)}return wt(t,o)}}};function xe(i,o){return o?i.reverse():i}var od=Object.defineProperty,rd=Object.getOwnPropertyDescriptor,sd=(i,o,e,t)=>{for(var n=t>1?void 0:t?rd(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&od(o,e,n),n},li=(i,o)=>(e,t)=>o(e,t,i);exports.AutoFillService=class extends l.Disposable{constructor(e,t,n,r){super();E(this,"_rules",[]);E(this,"_hooks",[]);E(this,"_applyType$",new O.BehaviorSubject(re.SERIES));E(this,"_isFillingStyle",!0);E(this,"_autoFillLocation$",new O.BehaviorSubject(null));E(this,"autoFillLocation$",this._autoFillLocation$.asObservable());E(this,"_showMenu$",new O.BehaviorSubject(!1));E(this,"showMenu$",this._showMenu$.asObservable());E(this,"_direction",l.Direction.DOWN);E(this,"applyType$",this._applyType$.asObservable());E(this,"_menu$",new O.BehaviorSubject([{label:"autoFill.copy",value:re.COPY,disable:!1},{label:"autoFill.series",value:re.SERIES,disable:!1},{label:"autoFill.formatOnly",value:re.ONLY_FORMAT,disable:!1},{label:"autoFill.noFormat",value:re.NO_FORMAT,disable:!1}]));E(this,"menu$",this._menu$.asObservable());this._univerInstanceService=e,this._selectionManagerService=t,this._commandService=n,this._undoRedoService=r,this._init()}_init(){this._rules=[Qc,Jc,$c,ed,td,nd,id,Sl].sort((e,t)=>t.priority-e.priority),this._isFillingStyle=!0}getOneByPriority(e){return e.length<=0?[]:[e.reduce((n,r)=>(r.priority||0)>(n.priority||0)?r:n,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=Vt.Append),this._hooks.push(e),l.toDisposable(()=>{const t=this._hooks.findIndex(n=>n===e);t>-1&&this._hooks.splice(t,1)})}registerRule(e){if(this._rules.find(n=>n.type===e.type))throw new Error(`Registry rule failed, type '${e.type}' already exist!`);const t=this._rules.findIndex(n=>n.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:n,subUnitId:r}=this.autoFillLocation||{};if(!e||!t||!n||!r)return[];const s=this._hooks.filter(u=>{var h;return!((h=u.disable)!=null&&h.call(u,{source:e,target:t,unitId:n,subUnitId:r},this._direction,this.applyType))}),a=s.filter(u=>u.type===Vt.Only);if(a.length>0)return this.getOneByPriority(a);const c=this.getOneByPriority(s.filter(u=>u.type===Vt.Default)),d=s.filter(u=>u.type===Vt.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(n=>n.value===e?{...n,disable:t}:n))}setShowMenu(e){this._showMenu$.next(e)}fillData(e,t){var S,v,C;const{source:n,target:r,unitId:s=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getUnitId(),subUnitId:a=(S=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:S.getSheetId()}=this.autoFillLocation||{},c=this.direction;if(!n||!r||s!==e||a!==t)return!1;const d=l.Rectangle.union(Et(n),Et(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 g=[],p=[];return h.forEach(I=>{var w;const{undos:R,redos:b}=((w=I.onFillData)==null?void 0:w.call(I,{source:n,target:r,unitId:s,subUnitId:a},c,u))||{};R&&g.push(...R),b&&p.push(...b)}),p.every(I=>this._commandService.syncExecuteCommand(I.id,I.params))&&this._undoRedoService.pushUndoRedo({unitID:s,undoMutations:g,redoMutations:p}),h.forEach(I=>{var R;(R=I.onAfterFillData)==null||R.call(I,{source:n,target:r,unitId:s,subUnitId:a},c,u)}),this.setShowMenu(!0),!0}};exports.AutoFillService=sd([l.OnLifecycle(l.LifecycleStages.Rendered,exports.AutoFillService),li(0,l.Inject(l.IUniverInstanceService)),li(1,l.Inject(m.SheetsSelectionsService)),li(2,l.ICommandService),li(3,l.IUndoRedoService)],exports.AutoFillService);const ht=l.createIdentifier("univer.auto-fill-service"),It={type:l.CommandType.COMMAND,id:"sheet.command.auto-fill",handler:async(i,o)=>i.get(ht).fillData(o.unitId,o.subUnitId)},Bt={id:"sheet.command.auto-clear-content",type:l.CommandType.COMMAND,handler:async(i,o)=>{const e=i.get(l.IUniverInstanceService),t=i.get(l.ICommandService),n=i.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(i,u),{startColumn:g,startRow:p}=d;return t.executeCommand(m.SetSelectionsOperation.id,{selections:[{primary:{startColumn:g,startRow:p,endColumn:g,endRow:p,actualRow:p,actualColumn:g,isMerge:!1,isMergedMainCell:!1},range:{...d}}],unitId:s,subUnitId:a}),t.syncExecuteCommand(m.SetRangeValuesMutation.id,u)?(n.pushUndoRedo({unitID:s,undoMutations:[{id:m.SetRangeValuesMutation.id,params:h}],redoMutations:[{id:m.SetRangeValuesMutation.id,params:u}]}),!0):!1}},tr=l.createInterceptorKey("rangeMovePermissionCheck"),nr=l.createInterceptorKey("rangeFillPermissionCheck");class ld{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:n,endRow:r}=this,{startColumn:s,startRow:a,endColumn:c,endRow:d}=o;return e===s&&t===a&&n===c&&r===d}isInclude(o){const{startColumn:e,startRow:t,endColumn:n,endRow:r}=this,{startColumn:s,startRow:a,endColumn:c,endRow:d}=o;return!(c<e||s>n||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:n,endColumn:r,endRow:s,startX:a,startY:c,endX:d,endY:u,rangeType:h}=o;this._startColumn=t,this._startRow=n,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 bn=(i=>(i.Selection="__SpreadsheetSelectionShape__",i.top="__SpreadsheetSelectionTopControl__",i.bottom="__SpreadsheetSelectionBottomControl__",i.left="__SpreadsheetSelectionShapeLeftControl__",i.right="__SpreadsheetSelectionShapeRightControl__",i.backgroundTop="__SpreadsheetSelectionBackgroundControlTop__",i.backgroundMiddleLeft="__SpreadsheetSelectionBackgroundControlMiddleLeft__",i.backgroundMiddleRight="__SpreadsheetSelectionBackgroundControlMiddleRight__",i.backgroundBottom="__SpreadsheetSelectionBackgroundControlBottom__",i.fill="__SpreadsheetSelectionFillControl__",i.fillTopLeft="__SpreadsheetSelectionFillControlTopLeft__",i.fillBottomRight="__SpreadsheetSelectionFillControlBottomRight__",i.fillTopLeftInner="__SpreadsheetSelectionFillControlTopLeftInner__",i.fillBottomRightInner="__SpreadsheetSelectionFillControlBottomRightInner__",i.lineMain="__SpreadsheetDragLineMainControl__",i.lineContent="__SpreadsheetDragLineContentControl__",i.line="__SpreadsheetDragLineControl__",i.dash="__SpreadsheetDragDashControl__",i.rowHeaderBackground="__SpreadSheetSelectionRowHeaderBackground__",i.rowHeaderBorder="__SpreadSheetSelectionRowHeaderBorder__",i.rowHeaderGroup="__SpreadSheetSelectionRowHeaderGroup__",i.columnHeaderBackground="__SpreadSheetSelectionColumnHeaderBackground__",i.columnHeaderBorder="__SpreadSheetSelectionColumnHeaderBorder__",i.columnHeaderGroup="__SpreadSheetSelectionColumnHeaderGroup__",i.topLeftWidget="__SpreadSheetSelectionTopLeftWidget__",i.topCenterWidget="__SpreadSheetSelectionTopCenterWidget__",i.topRightWidget="__SpreadSheetSelectionTopRightWidget__",i.middleLeftWidget="__SpreadSheetSelectionMiddleLeftWidget__",i.middleRightWidget="__SpreadSheetSelectionMiddleRightWidget__",i.bottomLeftWidget="__SpreadSheetSelectionBottomLeftWidget__",i.bottomCenterWidget="__SpreadSheetSelectionBottomCenterWidget__",i.bottomRightWidget="__SpreadSheetSelectionBottomRightWidget__",i))(bn||{});const vs=.3;class Hi extends l.Disposable{constructor(e,t,n=!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 O.BehaviorSubject(this));E(this,"dispose$",this._dispose$.asObservable());E(this,"selectionMoving$",new O.Subject);E(this,"selectionMoved$",new O.Subject);E(this,"selectionScaling$",new O.Subject);E(this,"selectionScaled$",new O.Subject);E(this,"selectionFilling$",new O.Subject);E(this,"_selectionFilled$",new O.Subject);E(this,"selectionFilled$",this._selectionFilled$.asObservable());E(this,"_defaultStyle");E(this,"_currentStyle");E(this,"_isHelperSelection",!0);E(this,"_antLineOffset",0);E(this,"_antRequestNewFrame",-1);this._scene=e,this._zIndex=t,this._isHeaderHighlight=n,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,n=0,r,s){this._selectionModel.setValue(e,s),r==null&&(r=this._selectionStyle),this._updateControl(r,t,n)}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,n,r,s,a,c,d,u,h,g,p,f,S,v,C,I,R,b,w,y,M,A,N;(e=this._leftControl)==null||e.dispose(),(t=this._rightControl)==null||t.dispose(),(n=this._topControl)==null||n.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(),(g=this._rowHeaderBorder)==null||g.dispose(),(p=this._rowHeaderGroup)==null||p.dispose(),(f=this._rowHeaderBackground)==null||f.dispose(),(S=this._columnHeaderBackground)==null||S.dispose(),(v=this._columnHeaderBorder)==null||v.dispose(),(C=this._columnHeaderGroup)==null||C.dispose(),(I=this._topLeftWidget)==null||I.dispose(),(R=this._topCenterWidget)==null||R.dispose(),(b=this._topRightWidget)==null||b.dispose(),(w=this._middleLeftWidget)==null||w.dispose(),(y=this._middleRightWidget)==null||y.dispose(),(M=this._bottomLeftWidget)==null||M.dispose(),(A=this._bottomCenterWidget)==null||A.dispose(),(N=this._bottomRightWidget)==null||N.dispose(),super.dispose(),this._dispose$.next(this),this._dispose$.complete()}getCurrentCellInfo(){const e=this.model.currentCell;if(e){let t;if(e.isMerged){const n=e.mergeInfo;t={startRow:n.startRow,endRow:n.endRow,startColumn:n.startColumn,endColumn:n.endColumn,startX:n.startX,endX:n.endX,startY:n.startY,endY:n.endY}}else{const{actualRow:n,actualColumn:r,startX:s,endX:a,startY:c,endY:d}=e;t={startRow:n,endRow:n,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,n){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:g=d.hasAutoFill,AutofillStroke:p=d.AutofillStroke,strokeDash:f,isAnimationDash:S}=e;let{strokeWidth:v=d.strokeWidth,AutofillSize:C=d.AutofillSize,AutofillStrokeWidth:I=d.AutofillStrokeWidth}=e;const R=this._getScale(),b=(v+m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH)/2/R;v/=R,C/=R,I/=R<1?1:R;const w=m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/R,y=P.FIX_ONE_PIXEL_BLUR_OFFSET/R;if(this.leftControl.transformByState({height:c-s,left:-b+y,width:v,strokeWidth:w,top:-w/2+y}),this.leftControl.setProps({fill:u,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.rightControl.transformByState({height:c-s,left:a-r-b+y,width:v,strokeWidth:w,top:-w/2+y}),this.rightControl.setProps({fill:u,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.topControl.transformByState({width:a-r+v,top:-b+y,left:-b+y,height:v,strokeWidth:w}),this.topControl.setProps({fill:u,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),this.bottomControl.transformByState({width:a-r+v,top:c-s-b+y,height:v,left:-b+y,strokeWidth:w}),this.bottomControl.setProps({fill:u,stroke:m.SELECTION_CONTROL_BORDER_BUFFER_COLOR}),f==null)this.dashRect.hide(),this._stopAntLineAnimation();else{const M=e.strokeWidth*2/R;this.dashRect.transformByState({height:c-s,width:a-r,strokeWidth:M,left:-M/2+y,top:-M/2+y}),this.dashRect.setProps({strokeDashArray:[0,f/R]}),this._stopAntLineAnimation(),S!==!1&&this._startAntLineAnimation(),this.dashRect.show()}if(g===!0&&!this._hasWidgets(h)){const M={fill:u,stroke:p,strokeScaleEnabled:!1},A={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(M),this.fillControl.transformByState(A),this.fillControl.show()}else this.fillControl.hide();this._updateBackgroundControl(e),this._updateBackgroundTitle(e,t,n),this._updateWidgets(e),this.selectionShape.show(),this.selectionShape.translate(r,s),this._selectionStyle=e,this._rowHeaderWidth=t||0,this._columnHeaderHeight=n||0,this.selectionShape.makeDirtyNoDebounce(!0)}_initialize(){this._defaultStyle=m.getNormalSelectionStyle(this._themeService),this._selectionModel=new ld;const e=this._zIndex;this._leftControl=new P.Rect("__SpreadsheetSelectionShapeLeftControl__"+e,{zIndex:e}),this._rightControl=new P.Rect("__SpreadsheetSelectionShapeRightControl__"+e,{zIndex:e}),this._topControl=new P.Rect("__SpreadsheetSelectionTopControl__"+e,{zIndex:e}),this._bottomControl=new P.Rect("__SpreadsheetSelectionBottomControl__"+e,{zIndex:e}),this._backgroundControlTop=new P.Rect("__SpreadsheetSelectionBackgroundControlTop__"+e,{zIndex:e-1,evented:!1}),this._backgroundControlBottom=new P.Rect("__SpreadsheetSelectionBackgroundControlBottom__"+e,{zIndex:e-1,evented:!1}),this._backgroundControlMiddleLeft=new P.Rect("__SpreadsheetSelectionBackgroundControlMiddleLeft__"+e,{zIndex:e-1,evented:!1}),this._backgroundControlMiddleRight=new P.Rect("__SpreadsheetSelectionBackgroundControlMiddleRight__"+e,{zIndex:e-1,evented:!1}),this._fillControl=new P.Rect("__SpreadsheetSelectionFillControl__"+e,{zIndex:e+1}),this._dashRect=new P.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 P.Group("__SpreadsheetSelectionShape__"+e,...t,...this._widgetRects),this._selectionShapeGroup.hide(),this._selectionShapeGroup.evented=!1,this._selectionShapeGroup.zIndex=e;const n=this.getScene();n.addObject(this._selectionShapeGroup,hl),this.disposeWithMe(l.toDisposable(n.onTransformChange$.subscribeEvent(r=>{r.type===P.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale&&this._updateControl(this._currentStyle,this._rowHeaderWidth,this._columnHeaderHeight)}))),this._initialTitle()}_initialTitle(){const e=this._zIndex;this._rowHeaderBackground=new P.Rect("__SpreadSheetSelectionRowHeaderBackground__"+e,{zIndex:e-1,evented:!1}),this._rowHeaderBorder=new P.Rect("__SpreadSheetSelectionRowHeaderBorder__"+e,{zIndex:e-1,evented:!1}),this._rowHeaderGroup=new P.Group("__SpreadSheetSelectionRowHeaderGroup__"+e,this._rowHeaderBackground,this._rowHeaderBorder),this._rowHeaderGroup.hide(),this._rowHeaderGroup.evented=!1,this._rowHeaderGroup.zIndex=e,this._columnHeaderBackground=new P.Rect("__SpreadSheetSelectionColumnHeaderBackground__"+e,{zIndex:e-1,evented:!1}),this._columnHeaderBorder=new P.Rect("__SpreadSheetSelectionColumnHeaderBorder__"+e,{zIndex:e-1,evented:!1}),this._columnHeaderGroup=new P.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],wc)}_initialWidget(){const e=this._zIndex;return this._topLeftWidget=new P.Rect("__SpreadSheetSelectionTopLeftWidget__"+e,{zIndex:e+1}),this._topCenterWidget=new P.Rect("__SpreadSheetSelectionTopCenterWidget__"+e,{zIndex:e+1}),this._topRightWidget=new P.Rect("__SpreadSheetSelectionTopRightWidget__"+e,{zIndex:e+1}),this._middleLeftWidget=new P.Rect("__SpreadSheetSelectionMiddleLeftWidget__"+e,{zIndex:e+1}),this._middleRightWidget=new P.Rect("__SpreadSheetSelectionMiddleRightWidget__"+e,{zIndex:e+1}),this._bottomLeftWidget=new P.Rect("__SpreadSheetSelectionBottomLeftWidget__"+e,{zIndex:e+1}),this._bottomCenterWidget=new P.Rect("__SpreadSheetSelectionBottomCenterWidget__"+e,{zIndex:e+1}),this._bottomRightWidget=new P.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,n){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:g,hasRowHeader:p,rowHeaderFill:f=u.rowHeaderFill,rowHeaderStroke:S=u.rowHeaderStroke,hasColumnHeader:v,columnHeaderFill:C=u.columnHeaderFill,columnHeaderStroke:I=u.columnHeaderStroke}=e;let{rowHeaderStrokeWidth:R=u.rowHeaderStrokeWidth,columnHeaderStrokeWidth:b=u.columnHeaderStrokeWidth}=e;if(R/=h,b/=h,v===!0){let w=C;this._isHeaderHighlight&&d===l.RANGE_TYPE.COLUMN&&(w=new l.ColorKit(g).setAlpha(vs).toString()),this._columnHeaderBackground.setProps({fill:w}),this._columnHeaderBackground.resize(a-r,n),this._columnHeaderBorder.setProps({fill:I}),this._columnHeaderBorder.transformByState({width:a-r,height:b,top:n-b+1/h}),this._columnHeaderGroup.show(),this._columnHeaderGroup.translate(r,0)}else this._columnHeaderGroup.hide();if(this._columnHeaderGroup.makeDirty(!0),p===!0){let w=f;this._isHeaderHighlight&&d===l.RANGE_TYPE.ROW&&(w=new l.ColorKit(g).setAlpha(vs).toString()),this._rowHeaderBackground.setProps({fill:w}),this._rowHeaderBackground.resize(t,c-s),this._rowHeaderBorder.setProps({fill:S}),this._rowHeaderBorder.transformByState({width:R,height:c-s,left:t-R+1/h}),this._rowHeaderGroup.show(),this._rowHeaderGroup.translate(0,s)}else this._rowHeaderGroup.hide();this._rowHeaderGroup.makeDirty(!0)}_updateBackgroundControl(e){const{startX:t,startY:n,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-n),this._backgroundControlTop.setProps({fill:d}),this._backgroundControlBottom.resize(0,0),this._backgroundControlMiddleLeft.resize(0,0),this._backgroundControlMiddleRight.resize(0,0);return}const{startX:g,startY:p,endX:f,endY:S}=h,v=u/2,C={left:-v,top:-v,width:r-t+v*2,height:p-n+v};C.height<0&&(C.width=0,C.height=0),this._backgroundControlTop.transformByState(C);const I={left:-v,top:p-n,width:g-t+v,height:S-p};I.width<0&&(I.width=0,I.height=0),this._backgroundControlMiddleLeft.transformByState(I);const R={left:f-t-v,top:p-n,width:r-f+v*2,height:S-p};R.width<0&&(R.width=0,R.height=0),this._backgroundControlMiddleRight.transformByState(R);const b={left:-v,top:S-n,width:r-t+v*2,height:s-S+v};b.height<0&&(b.width=0,b.height=0),this._backgroundControlBottom.transformByState(b),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:n,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:g=a.widgetSize,widgetStrokeWidth:p=a.widgetStrokeWidth}=e;g/=h,p/=h;const f={left:-g/2+p/2,center:(r-t)/2-g/2+p/2,right:r-t-g/2+p/2,top:-g/2,middle:(s-n)/2-g/2,bottom:s-n-g/2+p/2},S=g-p;this._widgetRects.forEach(v=>{v.setProps({fill:c,stroke:u})}),d.tl===!0?(this._topLeftWidget.transformByState({height:S,width:S,left:f.left,top:f.top,strokeWidth:p}),this._topLeftWidget.show()):this._topLeftWidget.hide(),d.tc===!0?(this._topCenterWidget.transformByState({height:S,width:S,left:f.center,top:f.top,strokeWidth:p}),this._topCenterWidget.show()):this._topCenterWidget.hide(),d.tr===!0?(this._topRightWidget.transformByState({height:S,width:S,left:f.right,top:f.top,strokeWidth:p}),this._topRightWidget.show()):this._topRightWidget.hide(),d.ml===!0?(this._middleLeftWidget.transformByState({height:S,width:S,left:f.left,top:f.middle,strokeWidth:p}),this._middleLeftWidget.show()):this._middleLeftWidget.hide(),d.mr===!0?(this._middleRightWidget.transformByState({height:S,width:S,left:f.right,top:f.middle,strokeWidth:p}),this._middleRightWidget.show()):this._middleRightWidget.hide(),d.bl===!0?(this._bottomLeftWidget.transformByState({height:S,width:S,left:f.left,top:f.bottom,strokeWidth:p}),this._bottomLeftWidget.show()):this._bottomLeftWidget.hide(),d.bc===!0?(this._bottomCenterWidget.transformByState({height:S,width:S,left:f.center,top:f.bottom,strokeWidth:p}),this._bottomCenterWidget.show()):this._bottomCenterWidget.hide(),d.br===!0?(this._bottomRightWidget.transformByState({height:S,width:S,left:f.right,top:f.bottom,strokeWidth:p}),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 n of t)if(e[n]===!0)return!0;return!0}_getScale(){const{scaleX:e,scaleY:t}=this._scene.getAncestorScale();return Math.max(e,t)}_stopAntLineAnimation(){this._antLineOffset=0,P.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=P.requestNewFrame(()=>{this._startAntLineAnimation()})}}const Cs="__SpreadsheetHelperSelectionTempRect",ad=35;class cd{constructor(o,e,t,n,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=n,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,n;return(n=(t=this._injector.get(P.IRenderManagerService).withCurrentTypeOfUnit(l.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:t.getCurrent())==null?void 0:n.skeleton.getWorksheetConfig().freeze}_isSelectionInViewport(o,e){const t=this._getFreeze()||{startRow:-1,startColumn:-1,xSplit:0,ySplit:0};switch(e.viewportKey){case P.SHEET_VIEWPORT_KEY.VIEW_MAIN:return o.endRow>=t.startRow&&o.endColumn>=t.startColumn;case P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP:case P.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT:return o.endColumn>=t.startColumn&&o.startRow<t.startRow;case P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT:case P.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM:return o.endRow>=t.startRow&&o.startColumn<t.startColumn;case P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP:case P.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT:case P.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP:case P.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:n}=this._control;[o,e,t,n].forEach(r=>{r.onPointerDown$.subscribeEvent(()=>{var a;((a=this._injector.get(Se,l.Quantity.OPTIONAL))==null?void 0:a.interceptor.fetchThroughInterceptors(tr)(!1,null))!==!1&&r.setCursor(P.CURSOR_TYPE.MOVE)}),r.onPointerLeave$.subscribeEvent(()=>{r.resetCursor()}),r.onPointerDown$.subscribeEvent(this._controlEvent.bind(this))})}_controlMoving(o,e){var y;const t=this._scene,n=t.getVpScrollXYInfoByPosToVp(P.Vector2.FromArray([o,e])),{scaleX:r,scaleY:s}=t.getAncestorScale(),a=this._skeleton.getCellPositionByOffset(o,e,r,s,n),{row:c,column:d}=a,u=this._skeleton.getRowCount()-1,h=this._skeleton.getColumnCount()-1;let g=c+this._relativeSelectionPositionRow;g<0&&(g=0);let p=g+this._relativeSelectionRowLength;p>u&&(p=u,p-g<this._relativeSelectionRowLength&&(g=p-this._relativeSelectionRowLength));let f=d+this._relativeSelectionPositionColumn;f<0&&(f=0);let S=f+this._relativeSelectionColumnLength;S>h&&(S=h,S-f<this._relativeSelectionColumnLength&&(f=S-this._relativeSelectionColumnLength));const v=this._skeleton.getNoMergeCellPositionByIndex(g,f),C=this._skeleton.getNoMergeCellPositionByIndex(p,S),I=(v==null?void 0:v.startY)||0,R=(C==null?void 0:C.endY)||0,b=(v==null?void 0:v.startX)||0,w=(C==null?void 0:C.endX)||0;(y=this._helperSelection)==null||y.transformByState({left:b,top:I,width:w-b,height:R-I}),this._targetSelection={startY:I,endY:R,startX:b,endX:w,startRow:g,endRow:p,startColumn:f,endColumn:S},this._control.selectionMoving$.next(this._targetSelection)}_controlEvent(o){const{offsetX:e,offsetY:t}=o,n=this._scene,r=n.getRelativeToViewportCoord(P.Vector2.FromArray([e,t])),{x:s,y:a}=r,c=n.getVpScrollXYInfoByPosToVp(r),{scaleX:d,scaleY:u}=n.getAncestorScale(),h=this._skeleton.getCellPositionByOffset(s,a,d,u,c);this._startOffsetX=s,this._startOffsetY=a;const{row:g,column:p}=h,{startRow:f,startColumn:S,endRow:v,endColumn:C}=this._control.model;let I=0,R=0;g<f?I-=1:g>v&&(I+=1),p<S?R-=1:p>C&&(R+=1),this._relativeSelectionPositionRow=f-g+I,this._relativeSelectionPositionColumn=S-p+R,this._relativeSelectionRowLength=v-f,this._relativeSelectionColumnLength=C-S;const b=this._control.selectionStyle,w=this._getScale();this.isHelperSelection&&(this._helperSelection=new P.Rect(Cs,{stroke:b.stroke,strokeWidth:b.strokeWidth/w}),n.addObject(this._helperSelection));const y=n.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),M=P.ScrollTimer.create(n);M.startScroll(s,a,y),this._scrollTimer=M,n.disableEvent(),this._scenePointerMoveSub=n.onPointerMove$.subscribeEvent(A=>{var V;const{offsetX:N,offsetY:x}=A;if(((V=this._injector.get(Se,l.Quantity.OPTIONAL))==null?void 0:V.interceptor.fetchThroughInterceptors(tr)(!1,null))===!1)return;const{x:k,y:L}=n.getRelativeToViewportCoord(P.Vector2.FromArray([N,x]));this._controlMoving(k,L),n.setCursor(P.CURSOR_TYPE.MOVE),M.scrolling(k,L,()=>{this._controlMoving(k,L)})}),this._scenePointerUpSub=n.onPointerUp$.subscribeEvent(()=>{var N,x;(N=this._helperSelection)==null||N.dispose();const A=this._scene;A.resetCursor(),this._clearObserverEvent(),A.enableEvent(),(x=this._scrollTimer)==null||x.dispose(),this._control.selectionMoved$.next(this._targetSelection)})}_initialWidget(){const{topLeftWidget:o,topCenterWidget:e,topRightWidget:t,middleLeftWidget:n,middleRightWidget:r,bottomLeftWidget:s,bottomCenterWidget:a,bottomRightWidget:c}=this._control,d=[P.CURSOR_TYPE.NORTH_WEST_RESIZE,P.CURSOR_TYPE.NORTH_RESIZE,P.CURSOR_TYPE.NORTH_EAST_RESIZE,P.CURSOR_TYPE.WEST_RESIZE,P.CURSOR_TYPE.EAST_RESIZE,P.CURSOR_TYPE.SOUTH_WEST_RESIZE,P.CURSOR_TYPE.SOUTH_RESIZE,P.CURSOR_TYPE.SOUTH_EAST_RESIZE];[o,e,t,n,r,s,a,c].forEach((u,h)=>{u.onPointerEnter$.subscribeEvent(()=>{u.setCursor(d[h])}),u.onPointerLeave$.subscribeEvent(()=>{u.resetCursor()}),u.onPointerDown$.subscribeEvent(g=>{this._widgetEvent(g,d[h])})})}_widgetMoving(o,e,t){const n=this._scene,r=n.getVpScrollXYInfoByPosToVp(P.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),{scaleX:s,scaleY:a}=n.getAncestorScale(),c=this._skeleton.getCellPositionByOffset(o,e,s,a,r),{row:d,column:u}=c,{rowHeaderWidth:h,columnHeaderHeight:g}=this._skeleton;let p=this._relativeSelectionPositionRow,f=this._relativeSelectionPositionColumn,S=d,v=u;t===P.CURSOR_TYPE.NORTH_WEST_RESIZE?(p=d,f=u,S=this._relativeSelectionPositionRow,v=this._relativeSelectionPositionColumn):t===P.CURSOR_TYPE.NORTH_RESIZE?(p=d,f=this._relativeSelectionPositionColumn,S=this._relativeSelectionPositionRow,v=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength):t===P.CURSOR_TYPE.NORTH_EAST_RESIZE?(p=d,f=this._relativeSelectionPositionColumn,S=this._relativeSelectionPositionRow,v=u):t===P.CURSOR_TYPE.WEST_RESIZE?(p=this._relativeSelectionPositionRow,f=u,S=this._relativeSelectionPositionRow+this._relativeSelectionRowLength,v=this._relativeSelectionPositionColumn):t===P.CURSOR_TYPE.EAST_RESIZE?S=this._relativeSelectionPositionRow+this._relativeSelectionRowLength:t===P.CURSOR_TYPE.SOUTH_WEST_RESIZE?(p=this._relativeSelectionPositionRow,f=u,S=d,v=this._relativeSelectionPositionColumn):t===P.CURSOR_TYPE.SOUTH_RESIZE&&(p=this._relativeSelectionPositionRow,f=this._relativeSelectionPositionColumn,S=d,v=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength);const{startRow:C,startColumn:I,endRow:R,endColumn:b}=this._swapPositions(p,f,S,v),w=this._skeleton.getNoMergeCellPositionByIndex(C,I),y=this._skeleton.getNoMergeCellPositionByIndex(R,b),M=(w==null?void 0:w.startY)||0,A=(y==null?void 0:y.endY)||0,N=(w==null?void 0:w.startX)||0,x=(y==null?void 0:y.endX)||0;this._targetSelection={startY:M,endY:A,startX:N,endX:x,startRow:p,endRow:S,startColumn:f,endColumn:v},this._control.update(this._targetSelection,h,g,this._control.selectionStyle),this._control.clearHighlight(),this._control.selectionScaling$.next(this._targetSelection)}_widgetEvent(o,e){const{offsetX:t,offsetY:n}=o,r=this._scene,s=r.getRelativeToViewportCoord(P.Vector2.FromArray([t,n])),{x:a,y:c}=s;this._startOffsetX=t,this._startOffsetY=n;const{startRow:d,startColumn:u,endRow:h,endColumn:g}=this._control.model;this._relativeSelectionPositionRow=d,this._relativeSelectionPositionColumn=u,this._relativeSelectionRowLength=h-d,this._relativeSelectionColumnLength=g-u,e===P.CURSOR_TYPE.NORTH_WEST_RESIZE?(this._relativeSelectionPositionRow=h,this._relativeSelectionPositionColumn=g):e===P.CURSOR_TYPE.NORTH_RESIZE?this._relativeSelectionPositionRow=h:e===P.CURSOR_TYPE.NORTH_EAST_RESIZE?this._relativeSelectionPositionRow=h:e===P.CURSOR_TYPE.WEST_RESIZE?this._relativeSelectionPositionColumn=g:e===P.CURSOR_TYPE.SOUTH_WEST_RESIZE&&(this._relativeSelectionPositionColumn=g);const p=P.ScrollTimer.create(r);p.startScroll(a,c),this._scrollTimer=p,r.disableEvent(),this._scenePointerMoveSub=r.onPointerMove$.subscribeEvent(f=>{const{offsetX:S,offsetY:v}=f,{x:C,y:I}=r.getRelativeToViewportCoord(P.Vector2.FromArray([S,v]));this._widgetMoving(C,I,e),r.setCursor(e),p.scrolling(C,I,()=>{this._widgetMoving(C,I,e)})}),this._scenePointerUpSub=r.onPointerUp$.subscribeEvent(()=>{var S;const f=this._scene;f.resetCursor(),this._clearObserverEvent(),f.enableEvent(),(S=this._scrollTimer)==null||S.dispose(),this._control.selectionScaled$.next(this._targetSelection)})}_initialFill(){const{fillControl:o}=this._control;o.onPointerEnter$.subscribeEvent(e=>{this._injector.get(Se).interceptor.fetchThroughInterceptors(nr)(!1,{x:e.offsetX,y:e.offsetY,skeleton:this._skeleton,scene:this._scene})&&o.setCursor(P.CURSOR_TYPE.CROSSHAIR)}),o.onPointerLeave$.subscribeEvent(()=>{o.resetCursor()}),o.onPointerDown$.subscribeEvent(this._fillEvent.bind(this))}_fillMoving(o,e){var x,D,k;const t=this._scene,n=t.getViewportScrollXY(this._activeViewport),{scaleX:r,scaleY:s}=t.getAncestorScale(),a=this._skeleton.getCellPositionByOffset(o,e,r,s,n),{row:c,column:d}=a,u=t.getRelativeToViewportCoord(P.Vector2.FromArray([o,e])),h=this._skeleton.getRowCount()-1,g=this._skeleton.getColumnCount()-1;let p=this._relativeSelectionPositionRow,f=this._relativeSelectionPositionColumn,S=this._relativeSelectionPositionRow+this._relativeSelectionRowLength,v=this._relativeSelectionPositionColumn+this._relativeSelectionColumnLength,C=!1,I=!0;if((d<f||d>v)&&c>=p&&c<=S){const L=this._fillRuler(d,f,v,this._relativeSelectionColumnLength,g);f=L.startRowOrColumn,v=L.endRowOrColumn,C=L.isLighten,I=!1}else if((c<p||c>S)&&d>=f&&d<=v){const L=this._fillRuler(c,p,S,this._relativeSelectionRowLength,h);p=L.startRowOrColumn,S=L.endRowOrColumn,C=L.isLighten}else if(Math.abs(this._startOffsetX-u.x-n.x)/2>Math.abs(this._startOffsetY-u.y-n.y)){const L=this._fillRuler(d,f,v,this._relativeSelectionColumnLength,g);f=L.startRowOrColumn,v=L.endRowOrColumn,C=L.isLighten,I=!1}else{const L=this._fillRuler(c,p,S,this._relativeSelectionRowLength,h);p=L.startRowOrColumn,S=L.endRowOrColumn,C=L.isLighten}const R=this._skeleton.getNoMergeCellPositionByIndex(p,f),b=this._skeleton.getNoMergeCellPositionByIndex(S,v),w=(R==null?void 0:R.startY)||0,y=(b==null?void 0:b.endY)||0,M=(R==null?void 0:R.startX)||0,A=(b==null?void 0:b.endX)||0;C?this._controlHandler((L,V)=>{const j=new l.ColorKit(this._fillControlColors[V]).lighten(ad).toRgbString();L.setProps({fill:j})}):this._controlHandler((L,V)=>{L.setProps({fill:this._fillControlColors[V]})});const N=m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/this._getScale();p===S&&I===!0||f===v&&I===!1?(x=this._helperSelection)==null||x.hide():((D=this._helperSelection)==null||D.transformByState({left:M-N/2,top:w-N/2,width:A-M,height:y-w}),(k=this._helperSelection)==null||k.show()),this._targetSelection={startY:w,endY:y,startX:M,endX:A,startRow:p,endRow:S,startColumn:f,endColumn:v},this._control.selectionFilling$.next(this._targetSelection)}_fillEvent(o){const{offsetX:e,offsetY:t}=o,n=this._scene,r=n.getRelativeToViewportCoord(P.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 g=this._control.selectionStyle;let p=g==null?void 0:g.stroke,f=g==null?void 0:g.strokeWidth;const S=m.getNormalSelectionStyle(this._themeService);p==null&&(p=S.stroke),f==null&&(f=S.strokeWidth);const v=this._getScale();f/=v;const C=m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH/v,I=new l.ColorKit(p).darken(2).toRgbString();this.isHelperSelection&&(this._helperSelection=new P.Rect(Cs,{stroke:I,strokeWidth:f+C/2}),n.addObject(this._helperSelection)),this._activeViewport=n.getActiveViewportByCoord(P.Vector2.FromArray([e,t]));const R=n.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),b=P.ScrollTimer.create(n,this._activeViewport.viewportKey===P.SHEET_VIEWPORT_KEY.VIEW_MAIN?P.ScrollTimerType.ALL:P.ScrollTimerType.NONE);b.startScroll(s,a,R),this._scrollTimer=b,n.disableEvent(),this._controlHandler(w=>{this._fillControlColors.push(w.fill)}),this._scenePointerMoveSub=n.onPointerMove$.subscribeEvent(w=>{var L;const{offsetX:y,offsetY:M}=w,A=n.getActiveViewportByCoord(P.Vector2.FromArray([y,M]));if(!this._injector.get(Se).interceptor.fetchThroughInterceptors(nr)(!1,{x:o.offsetX,y:o.offsetY,skeleton:this._skeleton,scene:this._scene}))return;const{x,y:D}=n.getRelativeToViewportCoord(P.Vector2.FromArray([y,M]));this._fillMoving(x,D),n.setCursor(P.CURSOR_TYPE.CROSSHAIR);const k=this._targetSelection;if(R&&A&&((L=this._activeViewport)==null?void 0:L.viewportKey)!==(A==null?void 0:A.viewportKey)){let V;k.startRow!==c?(b.scrollTimerType=P.ScrollTimerType.Y,V={...k,endRow:k.startRow}):k.endRow!==u?(b.scrollTimerType=P.ScrollTimerType.Y,V={...k,startRow:k.endRow}):k.startColumn!==d?(b.scrollTimerType=P.ScrollTimerType.X,V={...k,endColumn:k.startColumn}):(b.scrollTimerType=P.ScrollTimerType.X,V={...k,startColumn:k.endColumn}),this._isSelectionInViewport(V,A)&&(R.scrollTo({x:b.scrollTimerType===P.ScrollTimerType.X?0:void 0,y:b.scrollTimerType===P.ScrollTimerType.Y?0:void 0}),this._activeViewport=A)}b.scrolling(x,D,()=>{this._fillMoving(x,D)})}),this._scenePointerUpSub=n.onPointerUp$.subscribeEvent(()=>{var y,M;(y=this._helperSelection)==null||y.dispose();const w=this._scene;w.resetCursor(),this._clearObserverEvent(),w.enableEvent(),(M=this._scrollTimer)==null||M.dispose(),this._control.refreshSelectionFilled(this._targetSelection),this._isInMergeState=!1,this._controlHandler((A,N)=>{A.setProps({fill:this._fillControlColors[N]})}),this._fillControlColors=[]})}_hasMergeInRange(o,e,t,n){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:n,bottom:t},g={left:c,top:a,right:u,bottom:d};if(P.isRectIntersect(h,g))return!0}return!1}_swapPositions(o,e,t,n){const r=Math.min(o,t),s=Math.min(e,n),a=Math.max(o,t),c=Math.max(e,n);return{startRow:r,startColumn:s,endRow:a,endColumn:c}}_controlHandler(o){const{leftControl:e,rightControl:t,topControl:n,bottomControl:r,backgroundControlTop:s,backgroundControlMiddleLeft:a,backgroundControlMiddleRight:c,backgroundControlBottom:d,fillControl:u}=this._control,h=[e,t,n,r,s,a,c,d,u];for(let g=0,p=h.length;g<p;g++){const f=h[g];o(f,g)}}_fillRuler(o,e,t,n,r){let s=!1;if(o<e)if(this._isInMergeState&&o<e){const a=e-o,c=n+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=n+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 Rt(i,o){const{range:e,primary:t,style:n}=i;return{rangeWithCoord:Er(o,e),primaryWithCoord:t?Mr(t,o):null,style:n}}function Mr(i,o){const{actualRow:e,actualColumn:t,isMerged:n,isMergedMainCell:r,startRow:s,startColumn:a,endRow:c,endColumn:d}=i,u=o.getNoMergeCellPositionByIndex(e,t),h=o.getNoMergeCellPositionByIndex(s,a),g=o.getNoMergeCellPositionByIndex(c,d);return{actualRow:e,actualColumn:t,isMerged:n,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:(g==null?void 0:g.endY)||0,startX:(h==null?void 0:h.startX)||0,endX:(g==null?void 0:g.endX)||0}}}const Se=l.createIdentifier("univer.sheet.selection-render-service");class Or extends l.Disposable{constructor(e,t,n,r){super();E(this,"_downObserver");E(this,"_scenePointerMoveSub");E(this,"_scenePointerUpSub");E(this,"_controlFillConfig$",new O.BehaviorSubject(null));E(this,"controlFillConfig$",this._controlFillConfig$.asObservable());E(this,"_selectionControls",[]);E(this,"_startRangeWhenPointerDown",{startY:0,endY:0,startX:0,endX:0,startRow:-1,endRow:-1,startColumn:-1,endColumn:-1});E(this,"_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 O.BehaviorSubject([]));E(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());E(this,"_selectionMoving$",new O.Subject);E(this,"selectionMoving$",this._selectionMoving$.asObservable());E(this,"_selectionMoveStart$",new O.Subject);E(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());E(this,"_activeViewport");E(this,"interceptor",new l.InterceptorManager({RANGE_MOVE_PERMISSION_CHECK:tr,RANGE_FILL_PERMISSION_CHECK:nr}));this._injector=e,this._themeService=t,this._shortcutService=n,this._renderManagerService=r,this._resetStyle()}_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 g;const{rangeWithCoord:t,primaryWithCoord:n}=e,{rangeType:r}=t,s=this._skeleton,a=(g=e.style)!=null?g:m.getNormalSelectionStyle(this._themeService),c=this._scene;if(!c||!s)return;const d=this.newSelectionControl(c,r||l.RANGE_TYPE.NORMAL);new cd(d,s,c,this._themeService,this._injector);const{rowHeaderWidth:u,columnHeaderHeight:h}=s;d.update(t,u,h,a,n)}newSelectionControl(e,t){const n=this.getSelectionControls(),r=new Hi(e,n.length,this._isHeaderHighlight,this._themeService);return this._selectionControls.push(r),r}updateControlForCurrentByRangeData(e){const t=this.getSelectionControls();if(!t)return;const n=this._skeleton;if(n==null)return;const{rowHeaderWidth:r,columnHeaderHeight:s}=n;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,n){this._skeleton=e,this._scene=t,this._activeViewport=n||(t==null?void 0:t.getViewports()[0])}getSkeleton(){return this._skeleton}getSelectionDataWithStyle(){const e=this._selectionControls,[t,n]=this._skeleton.getLocation();return e.map(r=>{const s=r.getValue();return s.rangeWithCoord.sheetId=n,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,n;return(n=(t=this._renderManagerService.withCurrentTypeOfUnit(l.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:t.getCurrent())==null?void 0:n.skeleton.getWorksheetConfig().freeze}_getViewportByCell(e,t){if(e===void 0||t===void 0)return null;const n=this._getFreeze();if(!n||n.startRow<=0&&n.startColumn<=0)return this._scene.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(e>n.startRow&&t>n.startColumn)return this._scene.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(e<=n.startRow&&t<=n.startColumn)return this._scene.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(e<=n.startRow&&t>n.startColumn)return this._scene.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(e>n.startRow&&t<=n.startColumn)return this._scene.getViewport(P.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,n=l.RANGE_TYPE.NORMAL,r,s=P.ScrollTimerType.ALL){var D;this._shouldDetectMergedCells=n===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(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!h)return;const g=c.getRelativeToViewportCoord(P.Vector2.FromArray([d,u]));let{x:p,y:f}=g;this._startViewportPosX=p,this._startViewportPosY=f;const S=c.getVpScrollXYInfoByPosToVp(g),{scaleX:v,scaleY:C}=c.getAncestorScale(),I=this._getCellRangeByCursorPosition(p,f,v,C,S);if(!I)return!1;const{rangeWithCoord:R,primaryWithCoord:b}=I,w={...R,rangeType:n};this._startRangeWhenPointerDown={...R,rangeType:n};let y=this.getActiveSelectionControl();const M=this.getSelectionControls();for(const k of M){if(e.button===2&&k.model.isInclude(w)){y=k;return}if(k.model.isEqual(w)){y=k;break}e.shiftKey||k.clearHighlight()}this._checkClearPreviousControls(e);const A=y==null?void 0:y.model.currentCell,N=e.shiftKey&&A,x=this._remainLastEnabled&&!e.ctrlKey&&!e.shiftKey&&!this._skipLastEnabled&&!this._singleSelectionEnabled;N&&A?this._performSelectionByTwoCells(A,w,a,n,y):x&&y?this._updateSelectionControlRange(y,w,b):(y=this.newSelectionControl(c,n),this._updateSelectionControlRange(y,w,b)),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),c.disableEvent(),this._clearUpdatingListeners(),this._addEndingListeners(),(D=c.getTransformer())==null||D.clearSelectedObjects(),(n===l.RANGE_TYPE.ROW||n===l.RANGE_TYPE.COLUMN)&&(n===l.RANGE_TYPE.ROW?p=0:n===l.RANGE_TYPE.COLUMN&&(f=0),this._moving(p,f,y,n)),this._setupPointerMoveListener(h,y,n,s,p,f),this._shortcutService.setDisable(!0),this._scenePointerUpSub=c.onPointerUp$.subscribeEvent(()=>{this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),this._shortcutService.setDisable(!1)})}_setupPointerMoveListener(e,t,n,r=P.ScrollTimerType.ALL,s,a){var f,S;let c=0,d=0,u=s,h=a;this._scrollTimer=P.ScrollTimer.create(this._scene,r),this._scrollTimer.startScroll((f=e==null?void 0:e.left)!=null?f:0,(S=e==null?void 0:e.top)!=null?S:0,e);const g=this._scene,p=g.getActiveViewportByCoord(P.Vector2.FromArray([s,a]));this._scenePointerMoveSub=g.onPointerMove$.subscribeEvent(v=>{var D,k,L,V,j,Z,z,F,X;const{offsetX:C,offsetY:I}=v,{x:R,y:b}=g.getRelativeToViewportCoord(P.Vector2.FromArray([C,I]));this._moving(R,b,t,n);let w=R,y=b;const M=this.getActiveSelectionControl(),A=this._getFreeze(),N=M==null?void 0:M.model,x=(D=g.getActiveViewportByCoord(P.Vector2.FromArray([C,I])))!=null?D:this._getViewportByCell(N==null?void 0:N.endRow,N==null?void 0:N.endColumn);if(p&&x&&e){const B=u<e.left&&R>e.left||u>e.left&&R<e.left,Y=h<e.top&&b>e.top||h>e.top&&b<e.top;B&&(c+=1),Y&&(d+=1);const W=p.viewportKey,U=x.viewportKey;if(W===P.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP)I<e.top&&((k=N==null?void 0:N.endRow)!=null?k:0)<((L=A==null?void 0:A.startRow)!=null?L:0)?y=e.top:Y&&d%2===1&&e.scrollTo({y:0});else if(W===P.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT)C<e.left&&((V=N==null?void 0:N.endColumn)!=null?V:0)<((j=A==null?void 0:A.startColumn)!=null?j:0)?w=e.left:B&&c%2===1&&e.scrollTo({x:0});else if(W===U){let G=!1,q=!1;W===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP?(G=!0,q=!0):W===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP?q=!0:W===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT&&(G=!0),((Z=N==null?void 0:N.endRow)!=null?Z:0)>((z=A==null?void 0:A.startRow)!=null?z:0)&&(q=!1),((F=N==null?void 0:N.endColumn)!=null?F:0)>((X=A==null?void 0:A.startColumn)!=null?X:0)&&(G=!1),G&&(w=e.left),q&&(y=e.top)}else{const G={x:p.scrollX,y:p.scrollY},q={x:x.scrollX,y:x.scrollY},$=G.x!==q.x&&B&&c%2===1,ne=G.y!==q.y&&Y&&d%2===1;($||ne)&&(e.scrollTo({x:$?G.x:void 0,y:ne?G.y:void 0}),$||(w=e.left),ne||(y=e.top)),(W===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&U===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||U===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&W===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)&&(w=e.left),(W===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&U===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||U===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP&&W===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP)&&(y=e.top)}u=R,h=b}this._scrollTimer.scrolling(w,y,()=>{this._moving(R,b,t,n)})})}attachSelectionWithCoord(e){return Rt(e,this._skeleton)}attachPrimaryWithCoord(e){return Mr(e,this._skeleton)}getSelectionCellByPosition(e,t){const n=this._scene,r=this._skeleton,s=n.getViewportScrollXY(n.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX:a,scaleY:c}=n.getAncestorScale();return r.calculateCellIndexByPosition(e,t,a,c,s)}_moving(e,t,n,r){var A,N,x,D,k;const s=this._skeleton,a=this._scene,[c,d]=s.getLocation(),u={startRow:(A=n==null?void 0:n.model.startRow)!=null?A:-1,endRow:(N=n==null?void 0:n.model.endRow)!=null?N:-1,startColumn:(x=n==null?void 0:n.model.startColumn)!=null?x:-1,endColumn:(D=n==null?void 0:n.model.endColumn)!=null?D:-1,unitId:c,sheetId:d},h=a.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),g=(k=this._getViewportByCell(u.endRow,u.endColumn))!=null?k:h,p=a.getVpScrollXYInfoByPosToVp(P.Vector2.FromArray([this._startViewportPosX,this._startViewportPosY]),g),{scaleX:f,scaleY:S}=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,f,S,p);if(!v)return!1;const{rangeWithCoord:C}=v,I=this._startRangeWhenPointerDown;let R={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&&(R=s.getSelectionMergeBounding(R.startRow,R.startColumn,R.endRow,R.endColumn)),!R)return!1;const b=s.getNoMergeCellPositionByIndex(R.startRow,R.startColumn),w=s.getNoMergeCellPositionByIndex(R.endRow,R.endColumn),y={startRow:R.startRow,startColumn:R.startColumn,endRow:R.endRow,endColumn:R.endColumn,unitId:c,sheetId:d,startY:(b==null?void 0:b.startY)||0,endY:(w==null?void 0:w.endY)||0,startX:(b==null?void 0:b.startX)||0,endX:(w==null?void 0:w.endX)||0},M=u.startRow!==R.startRow||u.startColumn!==R.startColumn||u.endRow!==R.endRow||u.endColumn!==R.endColumn;n!=null&&M&&(this._updateSelectionControlRange(n,y),this._selectionMoving$.next(this.getSelectionDataWithStyle()))}_updateSelectionControlRange(e,t,n){const r=this._skeleton,{rowHeaderWidth:s,columnHeaderHeight:a}=r;e.update(t,s,a,this._selectionStyle,n||null)}_clearUpdatingListeners(){var t,n,r,s,a;this._scene.enableEvent(),(t=this._scenePointerMoveSub)==null||t.unsubscribe(),this._scenePointerMoveSub=null,(n=this._scenePointerUpSub)==null||n.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 n,r,s;const e=this._scene,t=(n=e.getEngine())==null?void 0:n.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,n,r,s){var I;if(this._shouldDetectMergedCells){const R=(I=this._skeleton)==null?void 0:I.calculateCellIndexByPosition(e,t,n,r,s);if(!R)return;const b=l.makeCellToSelection(R);return{primaryWithCoord:R,rangeWithCoord:b}}const a=this._skeleton;if(a==null)return;const c=a.getCellPositionByOffset(e,t,n,r,s),{row:d,column:u}=c,h=a.getNoMergeCellPositionByIndex(d,u),{startX:g,startY:p,endX:f,endY:S}=h,v={startY:p,endY:S,startX:g,endX:f,startRow:d,endRow:d,startColumn:u,endColumn:u};return{primaryWithCoord:{actualRow:d,actualColumn:u,isMerged:!1,isMergedMainCell:!1,startY:p,endY:S,startX:g,endX:f,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,n,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),g=Math.min(c,t.startColumn,d.startColumn),p=Math.max(c,t.endColumn,d.endColumn),f=n.getMergeBounding(u,g,h,p),S=n.getNoMergeCellPositionByIndex(f.startRow,f.startColumn),v=n.getNoMergeCellPositionByIndex(f.endRow,f.endColumn),C={startColumn:f.startColumn,startRow:f.startRow,endColumn:f.endColumn,endRow:f.endRow,startY:S.startY,endY:v.endY,startX:S.startX,endX:v.endX,rangeType:r},I=n.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 Ar(i){return{range:{startRow:0,startColumn:0,endRow:i.getRowCount()-1,endColumn:i.getColumnCount()-1,rangeType:l.RANGE_TYPE.ALL},primary:Vi(i).primary,style:null}}function Vi(i){const o=i.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 dd=Object.defineProperty,ud=Object.getOwnPropertyDescriptor,hd=(i,o,e,t)=>{for(var n=t>1?void 0:t?ud(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&dd(o,e,n),n},Nt=(i,o)=>(e,t)=>o(e,t,i);const md=l.createInterceptorKey("BEFORE_CELL_EDIT"),gd=l.createInterceptorKey("AFTER_CELL_EDIT"),pd=l.createInterceptorKey("AFTER_CELL_EDIT_ASYNC");exports.EditorBridgeService=class extends l.Disposable{constructor(e,t,n,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:P.DeviceInputEventType.Dblclick,unitId:""});E(this,"_currentEditCell",null);E(this,"_currentEditCellState",null);E(this,"_currentEditCellState$",new O.BehaviorSubject(null));E(this,"currentEditCellState$",this._currentEditCellState$.asObservable());E(this,"_visible$",new O.BehaviorSubject(this._visible));E(this,"visible$",this._visible$.asObservable());E(this,"_afterVisible$",new O.BehaviorSubject(this._visible));E(this,"afterVisible$",this._afterVisible$.asObservable());E(this,"interceptor",new l.InterceptorManager({BEFORE_CELL_EDIT:md,AFTER_CELL_EDIT:gd,AFTER_CELL_EDIT_ASYNC:pd}));this._renderManagerService=e,this._themeService=t,this._univerInstanceService=n,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.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 L,V,j;const e=this._currentEditCell;if(e==null)return;const t=this._renderManagerService.getCurrentTypeOfRenderer(l.UniverInstanceType.UNIVER_SHEET);if(!t)return;const n=t.with(exports.SheetSkeletonManagerService).getCurrentSkeleton(),r=t.with(Se);if(!n)return;const{primary:s,unitId:a,sheetId:c,scene:d,engine:u}=e,{startRow:h,startColumn:g}=s,p=Mr(s,n);if(p==null)return;const f=l.makeCellToSelection(p),S=P.getCanvasOffsetByEngine(u);let{startX:v,startY:C,endX:I,endY:R}=f;const{scaleX:b,scaleY:w}=d.getAncestorScale(),y=d.getViewportScrollXY(r.getViewPort());v=n.convertTransformToOffsetX(v,b,y),C=n.convertTransformToOffsetY(C,w,y),I=n.convertTransformToOffsetX(I,b,y),R=n.convertTransformToOffsetY(R,w,y);const M=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),A=M.getActiveSheet();if(!A)return;const N={workbook:M,worksheet:A,unitId:M.getUnitId(),subUnitId:A.getSheetId(),row:h,col:g},x=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().BEFORE_CELL_EDIT)(A.getCell(h,g),N);let D=x&&n.getCellDocumentModelWithFormula(x);const k=(L=D==null?void 0:D.documentModel)==null?void 0:L.documentStyle.renderConfig;if(k!=null&&(k.cellValueType=l.CellValueType.STRING),!D||D.documentModel==null){const Z=n.getBlankCellDocumentModel(x);if(D!=null){const{verticalAlign:z,horizontalAlign:F,wrapStrategy:X,textRotation:B,fill:Y}=D,{centerAngle:W,vertexAngle:U}=P.convertTextRotation(B);Z.documentModel.documentStyle.renderConfig={verticalAlign:z,horizontalAlign:F,wrapStrategy:X,background:{rgb:Y},centerAngle:W,vertexAngle:U}}D=Z}if((V=D.documentModel)==null||V.setZoomRatio(Math.max(b,w)),(x==null?void 0:x.isInArrayFormulaRange)===!0){const Z=(j=D.documentModel)==null?void 0:j.getBody();Z&&(Z.textRuns=[{st:0,ed:Z.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:R},scaleX:b,scaleY:w,canvasOffset:S,row:h,column:g,unitId:a,sheetId:c,documentLayoutObject:D,editorUnitId:this._editorUnitId,isInArrayFormulaRange:x==null?void 0:x.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}};exports.EditorBridgeService=hd([Nt(0,P.IRenderManagerService),Nt(1,l.Inject(l.ThemeService)),Nt(2,l.IUniverInstanceService),Nt(3,T.IEditorService),Nt(4,m.IRefSelectionsService),Nt(5,l.IContextService)],exports.EditorBridgeService);const Ze=l.createIdentifier("univer.sheet-editor-bridge.service"),Ee={id:"sheet.operation.set-cell-edit-visible",type:l.CommandType.OPERATION,handler:(i,o)=>o?(i.get(Ze).changeVisible(o),!0):!1},Xn={id:"sheet.operation.set-cell-edit-visible-f2",type:l.CommandType.OPERATION,handler:(i,o)=>(i.get(l.ICommandService).syncExecuteCommand(Ee.id,o),!0)},Gt={id:"sheet.operation.set-cell-edit-visible-arrow",type:l.CommandType.OPERATION,handler:()=>!0},en={id:"sheet.command.change-zoom-ratio",type:l.CommandType.COMMAND,handler:async(i,o)=>{if(!o)return!1;const e=i.get(l.IUniverInstanceService),t=m.getSheetCommandTarget(e);if(!t)return!1;const{worksheet:n,subUnitId:r,unitId:s}=t,{delta:a,reset:c}=o;let d=c?100:Math.round((n.getConfig().zoomRatio+a)*100);d=Math.max(Jo[0],d),d=Math.min(Jo[1],d);const u=d/100;return i.get(l.ICommandService).executeCommand(je.id,{unitId:s,subUnitId:r,zoomRatio:u})}},tn={id:"sheet.command.set-zoom-ratio",type:l.CommandType.COMMAND,handler:async(i,o)=>{if(!o)return!1;const{unitId:e,subUnitId:t,zoomRatio:n}=o;return i.get(l.ICommandService).executeCommand(je.id,{unitId:e,subUnitId:t,zoomRatio:n})}};var fd=Object.defineProperty,Sd=Object.getOwnPropertyDescriptor,vd=(i,o,e,t)=>{for(var n=t>1?void 0:t?Sd(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&fd(o,e,n),n},_s=(i,o)=>(e,t)=>o(e,t,i);let Un=class extends l.Disposable{constructor(i,o,e){super(),this._context=i,this._sheetSkeletonManagerService=o,this._commandService=e,this._skeletonListener(),this._zoomEventBinding()}updateZoom(i,o){const e=this._context.unit.getSheetBySheetId(i);return e?(e.getConfig().zoomRatio=o,e===this._context.unit.getActiveSheet()&&this._updateViewZoom(o),!0):!1}_zoomEventBinding(){var o;const i=(o=this._getSheetObject())==null?void 0:o.scene;i!=null&&this.disposeWithMe(i.onMouseWheel$.subscribeEvent(e=>{if(!e.ctrlKey)return;const t=Math.abs(e.deltaX);let n=t<40?.2:t<80?.4:.2;n*=e.deltaY>0?-1:1,i.scaleX<1&&(n/=2);const r=this._context.unit,s=r.getActiveSheet();if(!s)return;const a=s.getZoomRatio();let c=+Number.parseFloat(`${a+n}`).toFixed(1);c=c>=4?4:c<=.1?.1:c,this._commandService.executeCommand(tn.id,{zoomRatio:Math.round(c*10)/10,unitId:r.getUnitId(),subUnitId:s.getSheetId()}),e.preventDefault()}))}_skeletonListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(i=>{if(i==null)return;const e=this._context.unit.getActiveSheet();if(!e)return;const t=e.getZoomRatio()||1;this._updateViewZoom(t)}))}_updateViewZoom(i){const o=this._getSheetObject();o==null||o.scene.scale(i,i),o==null||o.spreadsheet.makeForceDirty()}_getSheetObject(){return Ge(this._context.unit,this._context)}};Un=vd([_s(1,l.Inject(exports.SheetSkeletonManagerService)),_s(2,l.ICommandService)],Un);const je={id:"sheet.operation.set-zoom-ratio",type:l.CommandType.OPERATION,handler:(i,o)=>{const t=i.get(P.IRenderManagerService).getRenderById(o.unitId);return t?t.with(Un).updateZoom(o.subUnitId,o.zoomRatio):!1}};var Cd=Object.defineProperty,_d=Object.getOwnPropertyDescriptor,Id=(i,o,e,t)=>{for(var n=t>1?void 0:t?_d(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&Cd(o,e,n),n},gt=(i,o)=>(e,t)=>o(e,t,i);exports.AutoFillController=class extends l.Disposable{constructor(e,t,n,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=n,this._editorBridgeService=r,this._renderManagerService=s,this._injector=a,this._sheetsRenderService=c,this._defaultHook={id:"default",type:Vt.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(It.id))}_initDefaultHook(){this.disposeWithMe(this._autoFillService.addHook(this._defaultHook))}_initQuitListener(){const e=[Ee.id,Bt.id,m.SetRangeValuesCommand.id,je.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,n)=>{var s,a;const r=n==null?void 0:n.fromCollab;e.includes(t.id)&&!r&&t.params.trigger!==It.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 n;t.getUnitId()===((n=this._currentLocation)==null?void 0:n.unitId)&&this._quit()}))}_quit(){this._currentLocation=null,this._beforeApplyData=[],this._copyData=[],this._autoFillService.setShowMenu(!1)}_onSelectionControlFillChanged(){const e=new l.DisposableCollection,t=n=>{n.dispose();const r=this._renderManagerService.getCurrentTypeOfRenderer(l.UniverInstanceType.UNIVER_SHEET);if(!r)return;r.with(Se).getSelectionControls().forEach(c=>{n.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)}))),n.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)}))),n.add(l.toDisposable(c.fillControl.onPointerDown$.subscribeEvent(()=>{this._editorBridgeService.isVisible().visible&&this._editorBridgeService.changeVisible({visible:!1,eventType:P.DeviceInputEventType.PointerDown,unitId:r.unitId})})))})};t(e),this.disposeWithMe(this._commandService.onCommandExecuted(n=>{n.id===m.SetSelectionsOperation.id&&t(e)}))}_onApplyTypeChanged(){this.disposeWithMe(l.toDisposable(this._autoFillService.applyType$.subscribe(()=>{this._handleFillData()})))}_triggerAutoFill(e,t){var S,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(Bt.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(Bt.id,{clearRange:{startRow:t.endRow+1,endRow:e.endRow,startColumn:t.startColumn,endColumn:t.endColumn},selectionRange:t});return}const n={startRow:t.startRow,endRow:t.endRow,startColumn:t.startColumn,endColumn:t.endColumn};let r=null;if(t.startRow<e.startRow)r=l.Direction.UP,n.endRow=e.startRow-1;else if(t.endRow>e.endRow)r=l.Direction.DOWN,n.startRow=e.endRow+1;else if(t.startColumn<e.startColumn)r=l.Direction.LEFT,n.endColumn=e.startColumn-1;else if(t.endColumn>e.endColumn)r=l.Direction.RIGHT,n.startColumn=e.endColumn+1;else return;const s=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!s)return;const a=s.getUnitId(),c=(S=s.getActiveSheet())==null?void 0:S.getSheetId();if(!c)return;this._autoFillService.direction=r;const d={get:this._injector.get.bind(this._injector)},u=Ut(e,d),h=Ut(n,d);if(!u||!h)return;this._autoFillService.autoFillLocation={source:u,target:h,unitId:a,subUnitId:c};const g=[];this._autoFillService.getActiveHooks().forEach(C=>{var R;const I=(R=C==null?void 0:C.onBeforeFillData)==null?void 0:R.call(C,{source:u,target:h,unitId:a,subUnitId:c},r);I&&g.unshift(I)});for(let C=0;C<g.length;C++){const I=this._autoFillService.menu.find(R=>R.value===g[C]);if(I&&!I.disable){this._autoFillService.applyType=g[C];return}}const f=(v=this._autoFillService.menu.find(C=>C.disable===!1))==null?void 0:v.value;f&&(this._autoFillService.applyType=f)}_handleDbClickFill(e){const t=this._detectFillRange(e);t.endRow<=e.endRow||this._triggerAutoFill(e,t)}_detectFillRange(e){var g,p,f,S,v,C;const{startRow:t,endRow:n,startColumn:r,endColumn:s}=e,a=(g=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET))==null?void 0:g.getActiveSheet();if(!a)return e;const c=a.getCellMatrix(),d=a.getMaxRows()-1,u=a.getMaxColumns()-1;let h=n;if(r>0&&((p=c.getValue(t,r-1))==null?void 0:p.v)!=null){let I=t;for(;((f=c.getValue(I,r-1))==null?void 0:f.v)!=null&&I<d;)I+=1;h=I-1}else if(s<u&&((S=c.getValue(n,s+1))==null?void 0:S.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=n+1;I<=h;I++)for(let R=r;R<=s;R++)if(((C=c.getValue(I,R))==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(It.id,{unitId:(e=this._currentLocation)==null?void 0:e.unitId,subUnitId:(t=this._currentLocation)==null?void 0:t.subUnitId})}_getApplyData(e,t,n,r,s,a=!0){const c=[],d=Math.floor(n/t),u=n%t,h=this._autoFillService.getRules();if(!a&&s===re.ONLY_FORMAT)return console.error("ERROR: only format can not be applied when hasStyle is false"),[];const g={};h.forEach(p=>{g[p.type]=[]}),h.forEach(p=>{const{type:f,applyFunctions:S={}}=p,v=e[f];v&&v.forEach(C=>{const I=jc(C.index,u),R=C.index.length*d+I,b=this._applyFunctions(C,R,r,s,S,e),w=Xc(t,n,C.index);g[f].push({data:b,index:w})})});for(let p=0;p<n;p++)h.forEach(f=>{const{type:S}=f,v=g[S];for(let C=0;C<v.length;C++)p in v[C].index&&c.push(v[C].data[v[C].index[p]])});return c}_applyFunctions(e,t,n,r,s,a){const{data:c}=e,d=n===l.Direction.UP||n===l.Direction.LEFT;if(r===re.COPY){const u=s==null?void 0:s[re.COPY];return u?u(e,t,n,a):(d&&c.reverse(),wt(c,t))}if(r===re.SERIES){const u=s==null?void 0:s[re.SERIES];return u?u(e,t,n,a):(d&&c.reverse(),s!=null&&s[re.COPY]?s[re.COPY](e,t,n,a):wt(c,t))}if(r===re.ONLY_FORMAT){const u=s==null?void 0:s[re.ONLY_FORMAT];return u?u(e,t,n,a):zc(c,t)}}_getCopyData(e,t){const n=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!n)throw new Error("No active sheet found");const r=n.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(g=>{const p=this._getEmptyCopyDataPiece(),f={type:void 0,cellData:void 0};u.forEach(S=>{let v;c?v=r.getValue(S,g):v=r.getValue(g,S);const{type:C,isContinue:I}=s.find(R=>R.match(v,h))||Sl;if(I(f,v)){const R=p[C],b=R[R.length-1];b.data.push(v),b.index.push(S-u[0])}else{const R=p[C];R?R.push({data:[v],index:[S-u[0]]}):p[C]=[{data:[v],index:[S-u[0]]}]}f.type=C,f.cellData=v}),a.push(p)}),a}_getEmptyCopyDataPiece(){const e={};return this._autoFillService.getRules().forEach(t=>{e[t.type]=[]}),e}_getMergeApplyData(e,t,n,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:g,startColumn:p,endRow:f,endColumn:S}=l.getCellInfoInMergeData(d,u,a);if(h){if(n===l.Direction.DOWN){let v=g+r,C=f+r;for(;C<=t.endRow;)c.push({startRow:v,startColumn:p,endRow:C,endColumn:S}),v+=r,C+=r}else if(n===l.Direction.UP){let v=g-r,C=f-r;for(;v>=t.startRow;)c.push({startRow:v,startColumn:p,endRow:C,endColumn:S}),v-=r,C-=r}else if(n===l.Direction.RIGHT){let v=p+r,C=S+r;for(;C<=t.endColumn;)c.push({startRow:g,startColumn:v,endRow:f,endColumn:C}),v+=r,C+=r}else if(n===l.Direction.LEFT){let v=p-r,C=S-r;for(;v>=t.startColumn;)c.push({startRow:g,startColumn:v,endRow:f,endColumn:C}),v-=r,C-=r}}}return c}_presetAndCacheData(e,t){const{source:n,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(n,t),this._currentLocation=e,this._shouldDisableSeries(this._copyData)?(this._autoFillService.setDisableApplyType(re.SERIES,!0),re.COPY):(this._autoFillService.setDisableApplyType(re.SERIES,!1),this._getPreferredApplyType(this._copyData))}_fillData(e,t,n){var z,F;const r=[],s=[];let a=!0;n===re.NO_FORMAT&&(a=!1,n=re.SERIES);const{source:c,target:d,unitId:u,subUnitId:h}=e;if(!c||!d||t==null)return{undos:r,redos:s};const g=Et(c),p=Et(d),{cols:f,rows:S}=d,{cols:v,rows:C}=c,I=this._copyData;let R;t===l.Direction.DOWN||t===l.Direction.UP?R=C.length:R=v.length;const b=[];if(t===l.Direction.DOWN||t===l.Direction.UP){const X=S.length,B=[];f.forEach((Y,W)=>{const U=I[W],G=this._getApplyData(U,R,X,t,n,a);B.push(G)});for(let Y=0;Y<B[0].length;Y++){const W=[];for(let U=0;U<B.length;U++)W.push({s:null,...B[U][Y]});b.push(W)}}else{const X=f.length;S.forEach((B,Y)=>{const W=I[Y],U=this._getApplyData(W,R,X,t,n,a),G=[];for(let q=0;q<U.length;q++)G.push({s:null,...U[q]});b.push(G)})}let w=[];const y=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getStyles();a?(w=this._getMergeApplyData(g,p,t,R),b.forEach(X=>{X.forEach(B=>{B&&y&&y&&(B.s=y.getStyleByCell(B))})})):b.forEach((X,B)=>{X.forEach((Y,W)=>{Y&&y&&(Y.s=y.getStyleByCell(this._beforeApplyData[B][W])||null)})}),n===re.ONLY_FORMAT&&b.forEach((X,B)=>{X.forEach((Y,W)=>{if(Y){const U=this._beforeApplyData[B][W]||{};Y.f=U.f,Y.si=U.si,Y.t=U.t,Y.v=U.v}})});const M={get:this._injector.get.bind(this._injector)},A=[],N=(F=(z=this._univerInstanceService.getUniverSheetInstance(u))==null?void 0:z.getSheetBySheetId(h))==null?void 0:F.getMergeData();N&&N.forEach(X=>{l.Rectangle.intersects(X,p)&&A.push(X)});const x={unitId:u,subUnitId:h,ranges:A},D=m.RemoveMergeUndoMutationFactory(M,x);A.length&&(s.push({id:m.RemoveWorksheetMergeMutation.id,params:x}),r.push({id:m.AddWorksheetMergeMutation.id,params:D}));const k={subUnitId:h,unitId:u,cellValue:Hc([d])},L=m.SetRangeValuesUndoMutationFactory(M,k);s.push({id:m.SetRangeValuesMutation.id,params:k}),r.push({id:m.SetRangeValuesMutation.id,params:L});const V=new l.ObjectMatrix;S.forEach((X,B)=>{f.forEach((Y,W)=>{b[B][W]&&V.setValue(X,Y,b[B][W])})});const j={subUnitId:h,unitId:u,cellValue:V.getMatrix()},Z=m.SetRangeValuesUndoMutationFactory(M,j);if(r.push({id:m.SetRangeValuesMutation.id,params:Z}),s.push({id:m.SetRangeValuesMutation.id,params:j}),w!=null&&w.length){const X=m.getAddMergeMutationRangeByType(w),B={unitId:u,subUnitId:h,ranges:X},Y=m.AddMergeUndoMutationFactory(M,B);r.push({id:m.RemoveWorksheetMergeMutation.id,params:Y}),s.push({id:m.AddWorksheetMergeMutation.id,params:B})}return{undos:r,redos:s}}_shouldDisableSeries(e){return e.every(t=>Object.keys(t).every(n=>{var r;return((r=t[n])==null?void 0:r.length)===0||[me.OTHER,me.FORMULA].includes(n)}))}_getPreferredApplyType(e){return e.every(n=>Object.keys(n).every(r=>{var s,a;return((s=n[r])==null?void 0:s.length)===0||((a=n[r])==null?void 0:a.length)===1&&n[r][0].data.length===1&&me.NUMBER===r}))?re.COPY:re.SERIES}};exports.AutoFillController=Id([l.OnLifecycle(l.LifecycleStages.Steady,exports.AutoFillController),gt(0,l.IUniverInstanceService),gt(1,l.ICommandService),gt(2,ht),gt(3,Ze),gt(4,P.IRenderManagerService),gt(5,l.Inject(l.Injector)),gt(6,l.Inject(exports.SheetsRenderService))],exports.AutoFillController);var Rd=Object.defineProperty,bd=Object.getOwnPropertyDescriptor,Td=(i,o,e,t)=>{for(var n=t>1?void 0:t?bd(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&Rd(o,e,n),n},wo=(i,o)=>(e,t)=>o(e,t,i);exports.CellCustomRenderController=class extends l.Disposable{constructor(e,t,n,r){super();E(this,"_enterActiveRender");this._context=e,this._sheetSkeletonManagerService=t,this._renderManagerService=n,this._univerInstanceService=r,this._initEventBinding()}_initEventBinding(){const e=new l.DisposableCollection,t=this._context.unit,n=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=p=>{const{offsetX:f,offsetY:S}=p,v=c.scene,C=t.getActiveSheet();if(!C)return;const I=v.getActiveViewportByCoord(P.Vector2.FromArray([f,S]));if(!I)return;const{scaleX:R,scaleY:b}=v.getAncestorScale(),w={x:I.viewportScrollX,y:I.viewportScrollY},y=a.getCellPositionByOffset(f,S,R,b,w),M=a.mergeData.find(F=>{const{startColumn:X,startRow:B,endColumn:Y,endRow:W}=F;return y.row>=B&&y.column>=X&&y.row<=W&&y.column<=Y}),A={actualRow:M?M.startRow:y.row,actualCol:M?M.startColumn:y.column,mergeCell:M,row:y.row,col:y.column};if(!A||!a)return;const N=C.getCell(A.actualRow,A.actualCol);if(!N)return;const x=N.customRender;if(!(x!=null&&x.length))return;const D=A.actualRow,k=A.actualCol,L=x.sort(l.sortRules),V=C.getSheetId(),j={data:N,style:a.getsStyles().getStyleByCell(N),primaryWithCoord:a.getCellByIndex(A.actualRow,A.actualCol),unitId:s,subUnitId:V,row:D,col:k,workbook:t,worksheet:C},Z={x:w.x+f/R,y:w.y+S/b},z=L.find(F=>{var X;return(X=F.isHit)==null?void 0:X.call(F,Z,j)});if(z)return[z,j]},h=d.onPointerDown$.subscribeEvent(p=>{var S;const f=u(p);if(f){const[v,C]=f;(S=v.onPointerDown)==null||S.call(v,C,p)}}),g=d.onPointerMove$.subscribeEvent(p=>{var S,v,C,I;const f=u(p);if(f){const[R,b]=f;this._enterActiveRender?this._enterActiveRender.render!==R&&((v=(S=this._enterActiveRender.render).onPointerLeave)==null||v.call(S,this._enterActiveRender.cellContext,p),this._enterActiveRender={render:R,cellContext:b},(C=R.onPointerEnter)==null||C.call(R,b,p)):(this._enterActiveRender={render:R,cellContext:b},(I=R.onPointerEnter)==null||I.call(R,b,p))}});h&&e.add(h),g&&e.add(g)}};this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(n)),n(this._sheetSkeletonManagerService.getCurrent()),this.disposeWithMe(e)}};exports.CellCustomRenderController=Td([l.OnLifecycle(l.LifecycleStages.Rendered,exports.CellCustomRenderController),wo(1,l.Inject(exports.SheetSkeletonManagerService)),wo(2,P.IRenderManagerService),wo(3,l.IUniverInstanceService)],exports.CellCustomRenderController);function Nr(i){return i.getContextValue(l.FOCUSING_SHEET)}function oe(i){return i.getContextValue(l.FOCUSING_SHEET)&&i.getContextValue(l.FOCUSING_UNIVER_EDITOR)&&!i.getContextValue(l.EDITOR_ACTIVATED)&&!i.getContextValue(l.FOCUSING_COMMON_DRAWINGS)}function vl(i){return i.getContextValue(l.FOCUSING_SHEET)&&i.getContextValue(l.FOCUSING_UNIVER_EDITOR)&&!i.getContextValue(l.EDITOR_ACTIVATED)&&!i.getContextValue(l.FOCUSING_FORMULA_EDITOR)&&!i.getContextValue(l.FOCUSING_COMMON_DRAWINGS)}function Ed(i){return i.getContextValue(l.FOCUSING_SHEET)&&i.getContextValue(l.FOCUSING_UNIVER_EDITOR)&&i.getContextValue(l.EDITOR_ACTIVATED)}function wd(i){return i.getContextValue(l.FOCUSING_UNIVER_EDITOR)&&i.getContextValue(l.EDITOR_ACTIVATED)}function Cl(i){return i.getContextValue(l.FOCUSING_FORMULA_EDITOR)&&i.getContextValue(l.FOCUSING_UNIVER_EDITOR)}function Pd(i){return i.getContextValue(l.FOCUSING_SHEET)&&i.getContextValue(l.EDITOR_ACTIVATED)&&i.getContextValue(l.FOCUSING_EDITOR_INPUT_FORMULA)&&i.getContextValue(l.FOCUSING_UNIVER_EDITOR)}function Bn(i){return i.getContextValue(l.FOCUSING_SHEET)&&i.getContextValue(l.FOCUSING_UNIVER_EDITOR)&&i.getContextValue(l.EDITOR_ACTIVATED)&&!i.getContextValue(l.FOCUSING_EDITOR_INPUT_FORMULA)&&!i.getContextValue(l.FOCUSING_EDITOR_STANDALONE)}var yd=Object.defineProperty,Md=Object.getOwnPropertyDescriptor,Od=(i,o,e,t)=>{for(var n=t>1?void 0:t?Md(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&yd(o,e,n),n},Po=(i,o)=>(e,t)=>o(e,t,i);const Ad=1e4,Mt=l.createIdentifier("univer.mark-selection-service");exports.MarkSelectionService=class extends l.Disposable{constructor(e,t,n){super();E(this,"_shapeMap",new Map);this._currentService=e,this._renderManagerService=t,this._themeService=n}addShape(e,t=[],n=Ad){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:n,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(),n=(r=e.getActiveSheet())==null?void 0:r.getSheetId();this._shapeMap.forEach(s=>{var w;const{unitId:a,subUnitId:c,selection:d,control:u,zIndex:h}=s;if(u&&u.dispose(),a!==t||c!==n)return;const{style:g}=d,p=this._renderManagerService.getRenderById(a);if(!p)return;const f=(w=this._renderManagerService.withCurrentTypeOfUnit(l.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:w.getCurrentSkeleton();if(!f)return;const{scene:S}=p,{rowHeaderWidth:v,columnHeaderHeight:C}=f,I=new Hi(S,h,!1,this._themeService),{rangeWithCoord:R,primaryWithCoord:b}=p.with(Se).attachSelectionWithCoord(d);I.update(R,v,C,g,b),s.control=I})}getShapeMap(){return this._shapeMap}removeShape(e){const t=this._shapeMap.get(e);if(!t)return;const{control:n}=t;n&&n.dispose(),this._shapeMap.delete(e)}removeAllShapes(){for(const e of this._shapeMap.values()){const{control:t}=e;t&&t.dispose()}this._shapeMap.clear()}};exports.MarkSelectionService=Od([Po(0,l.IUniverInstanceService),Po(1,P.IRenderManagerService),Po(2,l.Inject(l.ThemeService))],exports.MarkSelectionService);function _l(i){return{strokeWidth:1.5,stroke:i.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}const Nd=10,xd=6;function Dd(){return l.Tools.generateRandomId(xd)}function kd(i){const o=i.match(/data-copy-id="([^\s]+)"/);return o&&o[1]?o[1]:null}class Hd{constructor(){E(this,"_cache",new l.LRUMap(Nd))}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 Is(i,o){const e=o!=null?o:i.style,t={},n=i.tagName.toLowerCase();switch(n){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=n==="sup"?l.BaselineOffset.SUPERSCRIPT:l.BaselineOffset.SUBSCRIPT;break}}return Vd(e,t),t}function Vd(i,o){if(i instanceof CSSStyleDeclaration)for(let e=0;e<i.length;e++){const t=i[e],n=i.getPropertyValue(t);Rs(t,n,o)}else for(const e in i){const t=i[e];Rs(e,t,o)}}function Rs(i,o,e){switch(i){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),n=t.isValid?t.toRgbString():"";n!==T.DEFAULT_BACKGROUND_COLOR_RGB&&n!==T.DEFAULT_BACKGROUND_COLOR_RGBA&&(e.bg={rgb:n});break}}}function Wd(i){const o=document.createElement("body");return o.innerHTML=i,o}function yo(i,o){const e=[];for(let t=0,n=i.length;t<n;t++)i[t]===l.DataStreamTreeTokenType.PARAGRAPH&&e.push({startIndex:t});return e}const bs=["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 Ts(i,o){const e=i.tagName.toLowerCase();return typeof o=="string"?e===o:Array.isArray(o)?o.some(t=>t===e):o(i)}const Ai=class Ai{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 f;const e=Ai.pluginList.find(S=>S.checkPasteType(o));e&&(this._styleRules=[...e.stylesRules],this._afterProcessRules=[...e.afterProcessRules]);const t=new l.ObjectMatrix;this._dom=Wd(o);const n=this._dom.querySelector("style");if(n){const S=document.createElement("div"),v=S.attachShadow({mode:"open"});document.body.appendChild(S),v.appendChild(n);for(const C of n.sheet.cssRules){const I=C,R=I.selectorText,b=I.style;this._styleMap.set(R,b)}n.remove(),S.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:g,payloads:p}=r;if(u){const S=u.map(v=>v.startIndex+1);S.unshift(0);for(let v=0;v<S.length;v++){let C;if(v===S.length-1){if(C=`${h.substring(S[v])}\r
2
+ `,C===`\r
3
+ `)continue}else C=`${h.substring(S[v],S[v+1]-1)}\r
4
+ `;const I=[];g==null||g.forEach(w=>{w.st>=S[v]&&w.ed<=S[v+1]&&I.push({st:w.st-S[v],ed:w.ed-S[v],ts:w.ts})});const R=this._generateDocumentDataModelSnapshot({body:{dataStream:C,textRuns:I,paragraphs:yo(C)}}),b=Object.keys(t.getMatrix()).length===0;t.setValue(b?0:t.getLength(),0,{v:C,p:R}),s.push({})}}else if(h){const S=`${h}\r
5
+ `,v={dataStream:S,textRuns:g,paragraphs:yo(S),payloads:p},C=h.length,I=(f=g==null?void 0:g.length)!=null?f:0;if(!I||I===1&&g[0].st===0&&g[0].ed===C)t.setValue(0,0,{v:h});else{const R=this._generateDocumentDataModelSnapshot({body:v});t.setValue(0,0,{v:h,p:R})}s.push({})}return c&&c.forEach((S,v)=>{const C=t.getDataRange().endRow+1,{cellMatrix:I,rowProperties:R,colProperties:b}=this._parseTable(S,v);I&&I.forValue((w,y,M)=>{t.setValue(C+w,y,M)}),b&&a.push(...b),s.push(...R)}),this.dispose(),{rowProperties:s,colProperties:a,cellMatrix:t}}_getStyleBySelectorText(o,e){var n;const t=(n=this._styleMap.get(o))==null?void 0:n.getPropertyValue(e);return t||""}_getStyle(o,e){const t=Es(e),n=o.style;let r="";for(let s=0;s<bs.length;s++){const a=bs[s];if(a==="background"){let d="";o.classList.forEach(h=>{d=this._getStyleBySelectorText(`.${h}`,"background-color")||this._getStyleBySelectorText(`.${h}`,a)});const u=n.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=n.getPropertyValue("text-decoration-line")||n.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=n.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,n=(a=Ud(o))!=null?a:[],{rowProperties:r=[]}=Ld(o),s=this._parseTableByHtml(this._dom,e,(c=this._getCurrentSkeleton())==null?void 0:c.skeleton);return s&&s.forValue((d,u,h)=>{var f,S,v,C,I,R,b,w,y,M,A,N,x,D,k,L,V,j,Z,z,F,X,B,Y;let g=T.handleStringToStyle(void 0,h.style);if((C=(v=(S=(f=h==null?void 0:h.richTextParma)==null?void 0:f.p)==null?void 0:S.body)==null?void 0:v.textRuns)!=null&&C.length){const W=(R=(I=h==null?void 0:h.richTextParma)==null?void 0:I.v)==null?void 0:R.length;for(let U=0;U<((M=(y=(w=(b=h==null?void 0:h.richTextParma)==null?void 0:b.p)==null?void 0:w.body)==null?void 0:y.textRuns)==null?void 0:M.length);U++){const G=(x=(N=(A=h==null?void 0:h.richTextParma)==null?void 0:A.p)==null?void 0:N.body)==null?void 0:x.textRuns[U];G.st===0&&G.ed===W&&(g={...G.ts,...g},(L=(k=(D=h==null?void 0:h.richTextParma)==null?void 0:D.p)==null?void 0:k.body)==null||L.textRuns.splice(U,1),U--)}((z=(Z=(j=(V=h==null?void 0:h.richTextParma)==null?void 0:V.p)==null?void 0:j.body)==null?void 0:Z.textRuns)==null?void 0:z.length)===0&&(h.content=(F=h==null?void 0:h.richTextParma)==null?void 0:F.v,delete h.richTextParma)}const p=(Y=(B=(X=h==null?void 0:h.richTextParma)==null?void 0:X.p)==null?void 0:B.body)!=null&&Y.textRuns?{v:h.richTextParma.v,p:h.richTextParma.p,s:g,rowSpan:h.rowSpan,colSpan:h.colSpan}:{v:h.content,s:g,rowSpan:h.rowSpan,colSpan:h.colSpan};t.setValue(d,u,p)}),{rowProperties:r,colProperties:n,cellMatrix:t}}_parseTableByHtml(o,e,t){var c,d;const n=new l.ObjectMatrix,r=o.querySelectorAll("table")[e];if(!r)return n;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],g=this._getStyle(h,s),p=h.querySelectorAll("td, th");let f=0;for(let S=0;S<p.length;){const v=p[S];let C="";const I=Number(v.getAttribute("rowSpan"))||1,R=Number(v.getAttribute("colSpan"))||1;if(C=this._getStyle(v,g),u>0){const M=n.getValue(u-1,f);if((c=M==null?void 0:M.style)!=null&&c.includes("border-bottom")&&C.includes("border-top")){const A=ws(M.style,"border-bottom");A&&T.textTrim(A.substr(A.indexOf(":")+1))!=="none"&&(C=C.replace(/border-top:[^;]+;/,""))}}if(S>0){const M=n.getValue(u,f-1);if((d=M==null?void 0:M.style)!=null&&d.includes("border-right")&&C.includes("border-left")){const A=ws(M.style,"border-right");A&&T.textTrim(A.substr(A.indexOf(":")+1))!=="none"&&(C=C.replace(/border-left:[^;]+;/,""))}}const{cellText:b,cellRichStyle:w}=this._getCellTextAndRichText(v,C,t),y={rowSpan:I,colSpan:R,content:b,style:C,richTextParma:{p:w,v:b}};if(n.getValue(u,f)){f+=1;continue}else I>1||R>1?Fd(n,C,y,{colSpan:R,rowSpan:I,rowIndex:u,colIndex:S,colSetValueIndex:f}):n.setValue(u,f,y),f+=R,S++}}return n}_parseCellHtml(o,e,t,n=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&&n.has(o)&&(d=n.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?n.get(o):{},u=Es(c),h=Is(a,u);n.set(a,{...d,...h});const{childNodes:g}=a;this._parseCellHtml(a,g,t,n,c)}}}_getCellTextAndRichText(o,e,t){var a;let n="",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
+ `,g={...u,body:{dataStream:h,textRuns:c.textRuns,paragraphs:yo(h)}};d==null||d.reset(g),r=d==null?void 0:d.getSnapshot(),n=c.dataStream}else n=Bd(o.innerHTML.replace(/[\r\n]/g,""));return{cellText:n,cellRichStyle:r}}_generateDocumentDataModelSnapshot(o){var a;const e=this._getCurrentSkeleton();if(e==null)return null;const{skeleton:t}=e,n=(a=t.getBlankCellDocumentModel())==null?void 0:a.documentModel,s={...n==null?void 0:n.getSnapshot(),...o};return n==null||n.reset(s),n==null?void 0:n.getSnapshot()}process(o,e,t,n){var r,s,a;for(const c of e)if(c.nodeName.toLowerCase()==="table")n.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:f})=>Ts(c,f)),h=u?u.getStyle(c):Is(c);this._styleCache.set(c,{...d,...h});const{childNodes:g}=c;this.process(c,g,t,n);const p=this._afterProcessRules.find(({filter:f})=>Ts(c,f));p&&p.handler(t,c)}}}dispose(){this._dom=null,this._styleCache.clear(),this._styleMap.clear()}};E(Ai,"pluginList",[]);let Zt=Ai;function Ld(i){const o=/<tr([\s\S]*?)>([\s\S]*?)<\/tr>/gi,e=i.matchAll(o);if(!e)return{rowProperties:[],rowCount:0};const n=Array.from(e).map(r=>Il(r[1]));return{rowProperties:n,rowCount:n.length}}function Es(i){const o={};return i.split(";").forEach(t=>{const[n,r]=t.split(":");o[n]=r}),o}function Il(i){if(!i)return{};const o={},e=/([\w-]+)\s*=\s*(?:(['"])([^'"]*)\2|(\S+))/g;let t;for(;(t=e.exec(i))!==null;){const[,n,,r,s]=t,a=r!==void 0?r:s;o[n]=a}return o}function Ud(i){const o=/<colgroup([\s\S]*?)>(.*?)<\/colgroup>/,e=i.match(o),t=/<col([\s\S]*?)>/g;let n;return e!=null&&e[2]?n=e[2].matchAll(t):n=i.matchAll(t),n?Array.from(n).map(r=>Il(r[1])):null}function Bd(i){const o={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&#39;":"'","&nbsp;":" "};return i.replace(/&lt;|&gt;|&amp;|&quot;|&#39;|&nbsp;|<br>/g,e=>o[e])}function ws(i,o){if(!i||!o)return null;const e=new RegExp(`(${o}\\s*:\\s*[^;]+);`,"i"),t=i.match(e);return t?t[1]:null}function Fd(i,o,e,t){const{rowSpan:n,colSpan:r,rowIndex:s,colSetValueIndex:a}=t;for(let c=s;c<s+n;c++)for(let d=a;d<a+r;d++)c===s&&d===a?i.setValue(c,d,{...e,style:o}):i.setValue(c,d,{style:o})}var lt=(i=>(i.COPY="COPY",i.CUT="CUT",i))(lt||{});function jd(i,o,e,t,n){const r=e.map(d=>{var u;return(u=d.onCopyRow)==null?void 0:u.call(d,i)}).filter(d=>!!d),s=xr(r),a=Dr(s),c=o.map(d=>{if(!n.has(`${i}-${d}`)){const u=t.getValue(i,d);if(u!=null&&u.rowSpan&&(u!=null&&u.colSpan))for(let h=i;h<i+u.rowSpan;h++)for(let g=d;g<d+u.colSpan;g++)n.add(`${h}-${g}`);return Xd(i,d,e,t)}return null}).filter(d=>!!d).join("");return`<tr${a}>${c}</tr>`}function Xd(i,o,e,t){const n=t.getValue(i,o),r=e.map(d=>{var u;return(u=d.onCopyCellStyle)==null?void 0:u.call(d,i,o,n==null?void 0:n.rowSpan,n==null?void 0:n.colSpan)}).filter(d=>!!d),s=xr(r),a=Dr(s),c=e.reduce((d,u)=>{var h;return d||((h=u.onCopyCellContent)==null?void 0:h.call(u,i,o))||""},"");return`<td${a}>${c}</td>`}function zd(i,o){return`<colgroup>${i.map(t=>{const n=o.map(a=>{var c;return(c=a.onCopyColumn)==null?void 0:c.call(a,t)}).filter(a=>!!a),r=xr(n);return`<col ${Dr(r)}>`}).join("")}</colgroup>`}function xr(i){return i.reduce((o,e)=>(Object.keys(e).forEach(n=>{o[n]?o[n]+=`;${e[n]}`:o[n]=e[n]}),o),{})}function Dr(i){return Object.keys(i).reduce((o,e)=>(o+=` ${e}="${i[e]}"`,o),"")}function Yd(i,o){const e=[];for(let t=i;t<=o;t++)e.push(t);return e}class Gd{convert(o,e,t){const{startColumn:n,endColumn:r}=e,s=zd(Yd(n,r),t),a=[],c=new Set,{startRow:d,endRow:u,startColumn:h,endColumn:g}=o.getDataRange();for(let f=d;f<=u;f++){const S=Array.from({length:g-h+1},(v,C)=>h+C);a.push(jd(f,S,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 Zd=(i,o,e=!1)=>{const t=h=>h.endRow-h.startRow+1,n=h=>h.endColumn-h.startColumn+1,r=t(o)%t(i),s=n(o)%n(i),a={startRow:0,endRow:t(i)-1,startColumn:0,endColumn:n(i)-1},c=Math.floor(t(o)/t(i)),d=Math.floor(n(o)/n(i)),u=[];if(!r&&!s)for(let h=1;h<=c;h++)for(let g=1;g<=d;g++){const p=t(i)*(h-1),f=n(i)*(g-1),S={startRow:p+o.startRow,endRow:p+o.startRow,startColumn:f+o.startColumn,endColumn:f+o.startColumn};u.push({repeatRelativeRange:a,startRange:S})}else if(!r&&s&&!e)for(let h=1;h<=c;h++){const g=t(i)*(h-1),p=0,f={startRow:g+o.startRow,endRow:g+o.startRow,startColumn:p+o.startColumn,endColumn:p+o.startColumn};u.push({repeatRelativeRange:a,startRange:f})}else if(r&&!s&&!e)for(let h=1;h<=d;h++){const p=n(i)*(h-1),f={startRow:0+o.startRow,endRow:0+o.startRow,startColumn:p+o.startColumn,endColumn:p+o.startColumn};u.push({repeatRelativeRange:a,startRange:f})}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 Kd(i){return i?/<td[^>]*class=".*?xl.*?"[^>]*>.*?<\/td>/.test(i):!1}function qd(...i){if(i.length===1)return i[0];const o=new l.ObjectMatrix;return i.forEach(e=>{e&&new l.ObjectMatrix(e).forValue((n,r,s)=>{o.setValue(n,r,{...o.getValue(n,r),...s})})}),o.getMatrix()}function Qd(i,o){return i.id===o.id&&i.params.unitId===o.params.unitId&&i.params.subUnitId===o.params.subUnitId}function ir(i){const o=[];for(let e=0;e<i.length;){let t=1;if(i[e].id===m.SetRangeValuesMutation.id){const n=i[e],r=[n];for(;e+t<i.length&&Qd(n,i[e+t]);)r.push(i[e+t]),t+=1;const s=qd(...r.map(a=>a.params.cellValue||{}));o.push({...n,params:{...n.params,cellValue:s}})}else o.push(i[e]);e+=t}return o}function Mo(i,o){const{startRow:e,endRow:t,startColumn:n,endColumn:r}=i;for(let s=e;s<=t;s++)for(let a=n;a<=r;a++)if(o.rows.includes(s)&&o.cols.includes(a))return!0}function Ps(i,o){const{startRow:e,endRow:t,startColumn:n,endColumn:r}=o;for(let s=e;s<=t;s++)if(!i.rows.includes(s))return!1;for(let s=n;s<=r;s++)if(!i.cols.includes(s))return!1;return!0}function Jd(i){const o=i.trim().split(`
8
+ `);let e="<table>";return o.forEach(t=>{const n=t.split(" ");e+="<tr>",n.forEach(r=>{e+=`<td>${r}</td>`}),e+="</tr>"}),e+="</table>",e}var $d=Object.defineProperty,eu=Object.getOwnPropertyDescriptor,tu=(i,o,e,t)=>{for(var n=t>1?void 0:t?eu(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&$d(o,e,n),n},be=(i,o)=>(e,t)=>o(e,t,i);const pe={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(br.PastePluginWord);Zt.use(br.PastePluginLark);Zt.use(br.PastePluginUniver);const tt=l.createIdentifier("sheet.clipboard-service");exports.SheetClipboardService=class extends l.Disposable{constructor(e,t,n,r,s,a,c,d,u,h,g,p,f,S){super();E(this,"_clipboardHooks",[]);E(this,"_clipboardHooks$",new O.BehaviorSubject([]));E(this,"clipboardHooks$",this._clipboardHooks$.asObservable());E(this,"_htmlToUSM");E(this,"_usmToHtml");E(this,"_copyContentCache");E(this,"_copyMarkId",null);this._logService=e,this._univerInstanceService=t,this._selectionManagerService=n,this._clipboardInterfaceService=r,this._undoRedoService=s,this._commandService=a,this._markSelectionService=c,this._notificationService=d,this._platformService=u,this._renderManagerService=h,this._themeService=g,this._localeService=p,this._errorService=f,this._injector=S,this._htmlToUSM=new Zt({getCurrentSkeleton:()=>{var v;return(v=this._renderManagerService.withCurrentTypeOfUnit(l.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:v.getCurrent()}}),this._usmToHtml=new Gd,this._copyContentCache=new Hd,this.disposeWithMe(this._htmlToUSM)}copyContentCache(){return this._copyContentCache}generateCopyContent(e,t,n){const r=this._clipboardHooks;r.forEach(a=>{var c;return(c=a.onBeforeCopy)==null?void 0:c.call(a,e,t,n)});const s=this._generateCopyContent(e,t,n,r);return r.forEach(a=>{var c;return(c=a.onAfterCopy)==null?void 0:c.call(a)}),s}async copy(e=lt.COPY){const t=this._selectionManagerService.getCurrentLastSelection();if(!t)return!1;const n=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),r=n.getActiveSheet();if(!r)return!1;const s=this.generateCopyContent(n.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:n.getUnitId(),subUnitId:r.getSheetId(),range:h,matrix:d,copyType:e}),await this._clipboardInterfaceService.write(c,a),this._markSelectionService.removeAllShapes();const g=_l(this._themeService);return this._copyMarkId=this._markSelectionService.addShape({...t,style:g}),!0}async cut(){return this.copy(lt.CUT)}async paste(e,t=pe.DEFAULT_PASTE){const n=e.types,r=n.indexOf(T.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await e.getType(T.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(a=>a&&a.text()):"",s=n.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 Kd(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,pe.DEFAULT_PASTE):t?/[\n\t]/.test(t)?this._pasteHTML(Jd(t),pe.DEFAULT_PASTE):this._pastePlainText(t,pe.DEFAULT_PASTE):Promise.resolve(!1)}addClipboardHook(e){if(this._clipboardHooks.findIndex(n=>n.id===e.id)!==-1)return this._logService.error("[SheetClipboardService]","hook already exists",e.id),{dispose:()=>{}};const t=this._clipboardHooks.findIndex(n=>{const r=n.priority||0;return(e.priority||0)<r});return this._clipboardHooks.splice(t!==-1?t:this._clipboardHooks.length,0,e),this._notifyClipboardHook(),l.toDisposable(()=>{const n=this._clipboardHooks.indexOf(e);n>-1&&(this._clipboardHooks.splice(n,1),this._notifyClipboardHook())})}getClipboardHooks(){return this._clipboardHooks}_generateCopyContent(e,t,n,r){const s=this._univerInstanceService.getUniverSheetInstance(e),a=s==null?void 0:s.getSheetBySheetId(t);if(!s||!a)return null;const c=r.reduce((b,w)=>{var M;const y=(M=w.getFilteredOutRows)==null?void 0:M.call(w,n);return y==null||y.forEach(A=>b.add(A)),b},new Set),{startColumn:d,startRow:u,endColumn:h,endRow:g}=n,p=a.getMatrixWithMergedCells(u,d,g,h,!0),f=new l.ObjectMatrix;let S=u;const v={rows:[],cols:[]};for(let b=u;b<=g;b++)if(!c.has(b)){v.rows.push(b);for(let w=d;w<=h;w++){const y=p.getValue(b,w);y?f.setValue(S-u,w-d,{...Oo(),...l.Tools.deepClone(y)}):(f.setValue(S-u,w-d,Oo()),p.setValue(b,w,Oo()))}S+=1}for(let b=d;b<=h;b++)v.cols.push(b);let C=this._usmToHtml.convert(p,n,r);const I=nu(f),R=Dd();return C=C.replace(/(<[a-z]+)/,(b,w)=>`${w} data-copy-id="${R}"`),{copyId:R,plain:I,html:C,matrixFragment:f,discreteRange:v}}_notifyClipboardHook(){this._clipboardHooks$.next(this._clipboardHooks)}async _pastePlainText(e,t){const n=this._getPastingTarget();if(!n.subUnitId||!n.selection)return!1;const r={get:this._injector.get.bind(this._injector)},s=Ut(n.selection.range,r,n.unitId,n.subUnitId);if(!s)return!1;const{unitId:a,subUnitId:c}=n,d=this._clipboardHooks,u=[];if(d.some(S=>{var v;return u.push(S)&&((v=S.onBeforePaste)==null?void 0:v.call(S,{unitId:a,subUnitId:c,range:s}))===!1}))return u.forEach(S=>{var v;return(v=S.onAfterPaste)==null?void 0:v.call(S,!1)}),!1;const g=[],p=[];u.forEach(S=>{var C;const v=(C=S.onPastePlainText)==null?void 0:C.call(S,{unitId:a,subUnitId:c,range:s},e,{pasteType:t});v&&(g.push(...v.redos),p.push(...v.undos))});const f=g.every(S=>this._commandService.executeCommand(S.id,S.params));return f&&this._undoRedoService.pushUndoRedo({unitID:this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getUnitId(),undoMutations:p,redoMutations:g}),f}async _pasteHTML(e,t){const n=kd(e);return n&&this._copyContentCache.get(n)?this._pasteInternal(n,t):this._pasteExternal(e,t)}async _pasteExternal(e,t){var h;const{rowProperties:n,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(p=>Mo(p,a.pastedRange)&&!Ps(a.pastedRange,p))?(this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1):this._pasteUSM({rowProperties:n,colProperties:r,cellMatrix:s},a,t)}async _pasteInternal(e,t){var b,w;const n=l.Tools.deepClone(this._copyContentCache.get(e)),{range:r,matrix:s,unitId:a,subUnitId:c}=n||{};if(!s||!n||!r||!a||!c||!s||!n)return!1;const d=(b=this._univerInstanceService.getUniverSheetInstance(a))==null?void 0:b.getStyles();s.forValue((y,M,A)=>{if(typeof A.s=="string"){const N=l.Tools.deepClone(A);N.s=d==null?void 0:d.getStyleByCell(A),s.setValue(y,M,N)}if(A.colSpan||A.rowSpan)for(let N=0;N<A.rowSpan;N++)for(let x=0;x<A.colSpan;x++){if(N===0&&x===0)continue;const D=y+N,k=M+x;s.setValue(D,k,{s:d==null?void 0:d.getStyleByCell(A)})}});const u=this._getPastedRange(s);if(!u)return!1;const h=(w=this._univerInstanceService.getUniverSheetInstance(u.unitId))==null?void 0:w.getSheetBySheetId(u.subUnitId);if(!h)return!1;const g=h==null?void 0:h.getMergeData();if(g&&g.some(M=>Mo(M,u.pastedRange)&&!Ps(u.pastedRange,M)))return this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1;const p=h.getColumnManager(),f=h.getRowManager(),S=h.getConfig().defaultColumnWidth,v=h.getConfig().defaultRowHeight,C=[],I=[];if(r.cols.forEach(y=>{const M=p.getColumnOrCreate(y);C.push({width:`${M.w||S}`})}),r.rows.forEach(y=>{const M=f.getRowOrCreate(y);I.push({height:`${M.ah||M.h||v}`})}),n.copyType===lt.CUT){const y=u.pastedRange.rows[0],M=r.rows[r.rows.length-1]-r.rows[0]+y;u.pastedRange.rows=Array.from(new Array(M+1).keys()).slice(y)}const R=this._pasteUSM({cellMatrix:s,colProperties:C,rowProperties:I},u,t,{range:r,unitId:n.unitId,subUnitId:n.subUnitId,copyType:n.copyType,copyId:e});return n.copyType===lt.CUT&&(this._copyContentCache.set(e,{...n,matrix:null}),this._copyMarkId&&this._markSelectionService.removeShape(this._copyMarkId),this._copyMarkId=null),R}_pasteUSM(e,t,n,r){const{rowProperties:s,colProperties:a,cellMatrix:c}=e,{unitId:d,subUnitId:u,pastedRange:h}=t,g=h.cols.length,p=this._clipboardHooks,f=[];if(p.some(M=>{var A;return f.push(M)&&((A=M.onBeforePaste)==null?void 0:A.call(M,{unitId:d,subUnitId:u,range:h}))===!1}))return f.forEach(M=>{var A;return(A=M.onAfterPaste)==null?void 0:A.call(M,!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)||lt.COPY,copyId:r==null?void 0:r.copyId,pasteType:n};let I=[],R=[];f.filter(M=>!M.specialPasteInfo&&M.id!==pe.DEFAULT_PASTE||n===M.id).forEach(M=>{var x,D,k;if(s){const L=(x=M.onPasteRows)==null?void 0:x.call(M,{range:h,unitId:d,subUnitId:u},s,{pasteType:n});L&&(I.push(...L.redos),R.push(...L.undos))}const A=(D=M.onPasteColumns)==null?void 0:D.call(M,{range:h,unitId:d,subUnitId:u},a||new Array(g).map(()=>({})),{pasteType:n});A&&(I.push(...A.redos),R.push(...A.undos));const N=(k=M.onPasteCells)==null?void 0:k.call(M,v,{range:h,unitId:d,subUnitId:u},c,C);N&&(I.push(...N.redos),R.push(...N.undos))});const w=this._getSetSelectionOperation(d,u,h,c);w&&I.push(w),I=ir(I),R=ir(R),this._logService.log("[SheetClipboardService]","pasting mutations",{undoMutationsInfo:R,redoMutationsInfo:I});const y=I.every(M=>this._commandService.executeCommand(M.id,M.params));return y&&this._undoRedoService.pushUndoRedo({unitID:d,undoMutations:R,redoMutations:I}),y}_getSetSelectionOperation(e,t,n,r){var R;const s=(R=this._univerInstanceService.getUniverSheetInstance(e))==null?void 0:R.getSheetBySheetId(t);if(!s)return null;const{rows:a,cols:c}=n,d=a[0],u=c[0],h=a[a.length-1],g=c[c.length-1],p={startRow:d,endRow:d,startColumn:u,endColumn:u},f=m.getPrimaryForRange(p,s),S=r.getValue(0,0),v=(S==null?void 0:S.rowSpan)||1,C=(S==null?void 0:S.colSpan)||1;if(v>1||C>1){const b={startRow:d,endRow:d+v-1,startColumn:u,endColumn:u+C-1};f.startRow=b.startRow,f.endRow=b.endRow,f.startColumn=b.startColumn,f.endColumn=b.endColumn,f.isMerged=!0,f.isMergedMainCell=!0}const I={unitId:e,subUnitId:t,selections:[{range:{startRow:d,endRow:h,startColumn:u,endColumn:g},primary:f,style:null}]};return{id:m.SetSelectionsOperation.id,params:I}}_getPastingTarget(){const e=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),t=e.getActiveSheet(),n=this._selectionManagerService.getCurrentLastSelection();return{unitId:e.getUnitId(),subUnitId:t==null?void 0:t.getSheetId(),selection:n}}_transformPastedData(e,t,n){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=Ut(s.range,d,a,c);if(!u)return null;const{ranges:[h],mapFunc:g}=$t([u]),{startRow:p,startColumn:f,endRow:S,endColumn:v}=h,C=S-p+1,I=v-f+1,R=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),b=R==null?void 0:R.getActiveSheet();if(!b)return null;const y=b.getMergeData().filter(k=>u.rows.includes(k.startRow)&&u.cols.includes(k.startColumn)),M=y[0];let A=0,N=0,x=0,D=0;if(M&&(A=M.startRow,N=M.startColumn,x=M.endRow,D=M.endColumn),C%e===0&&I%t===0)if(y.length>0&&(C!==e||I!==t))if(A===u.rows[0]&&N===u.cols[0]&&x===u.rows[C-1]&&D===u.cols[I-1])if(su(n))for(let L=0;L<C;L++)for(let V=0;V<I;V++){const j=n.getValue(L%e,V%t);j&&n.setValue(L,V,j)}else n.forValue((L,V,j)=>{j.s=null,delete j.colSpan,delete j.rowSpan});else for(let k=0;k<C;k++)for(let L=0;L<I;L++){const V=n.getValue(k%e,L%t);V&&n.setValue(k,L,V)}else for(let k=0;k<C;k++)for(let L=0;L<I;L++){const V=n.getValue(k%e,L%t);V&&n.setValue(k,L,V)}else if(y.length>0){const{row:k,col:L}=g(p,f);if(this._topLeftCellsMatch(e,t,{topRow:k,leftCol:L})){const j=this._expandOrShrinkRowsCols(a,c,u,t,e);u.rows=j.rows,u.cols=j.cols}else{if(S>M.endRow||v>M.endColumn)return null;n.forValue((j,Z,z)=>{z.s=null,delete z.colSpan,delete z.rowSpan})}}else{const k=this._expandOrShrinkRowsCols(a,c,u,t,e);u.rows=k.rows,u.cols=k.cols}return{pastedRange:u,unitId:a,subUnitId:c}}_getPastedRange(e){var b;const t=this._getPastingTarget(),{selection:n,unitId:r,subUnitId:s}=t;if(!s||!n)return null;const a={get:this._injector.get.bind(this._injector)},c=Ut(n.range,a,r,s);if(!c)return null;const{startColumn:d,endColumn:u,startRow:h,endRow:g}=e.getDataRange(),p=g-h+1,f=u-d+1;if(p<=0||f<=0)return null;const S=c.rows.length,v=c.cols.length,C=(b=this._univerInstanceService.getUniverSheetInstance(r))==null?void 0:b.getSheetBySheetId(s);if(!C)return null;const I=C==null?void 0:C.getMergeData();if(S%p===0&&v%f===0&&!(I==null?void 0:I.some(y=>Mo(y,c)))){for(let y=0;y<S;y++)for(let M=0;M<v;M++){const A=e.getValue(y%p,M%f);A&&e.setValue(y,M,A)}return{pastedRange:c,unitId:r,subUnitId:s}}const R=this._expandOrShrinkRowsCols(r,s,c,f,p);return c.rows=R.rows,c.cols=R.cols,{pastedRange:c,unitId:r,subUnitId:s}}_expandOrShrinkRowsCols(e,t,n,r,s){const{rows:a,cols:c}=n,d=this._univerInstanceService.getUniverSheetInstance(e),u=d==null?void 0:d.getSheetBySheetId(t);let h,g;if(a.length>=s)h=a.slice(0,s);else{h=a.slice(0);let p=a[a.length-1]+1;for(;h.length<s;)u.getRowFiltered(p)||h.push(p),p++}if(c.length>=r)g=c.slice(0,r);else{g=c.slice(0);let p=c[c.length-1]+1;for(;g.length<r;)g.push(p),p++}return{rows:h,cols:g}}_topLeftCellsMatch(e,t,n){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}=n,d=ou(a+e-1,c,c+t-1,s),u=ru(c+t-1,a,a+e-1,s);return!d&&!u}};exports.SheetClipboardService=tu([be(0,l.ILogService),be(1,l.IUniverInstanceService),be(2,l.Inject(m.SheetsSelectionsService)),be(3,T.IClipboardInterfaceService),be(4,l.IUndoRedoService),be(5,l.ICommandService),be(6,Mt),be(7,T.INotificationService),be(8,T.IPlatformService),be(9,P.IRenderManagerService),be(10,l.Inject(l.ThemeService)),be(11,l.Inject(l.LocaleService)),be(12,l.Inject(l.ErrorService)),be(13,l.Inject(l.Injector))],exports.SheetClipboardService);function nu(i){let o="";const e=i.getLength();return i.forRow((t,n)=>{const r=[];n.forEach(s=>{const a=i.getValue(t,s);if(a){const c=iu(a);r.push(c)}}),o+=r.join(" "),t!==e-1&&(o+=`
9
+ `)}),o}function iu(i){return l.extractPureTextFromCell(i)}function ou(i,o,e,t){return t.getMergeData().some(n=>n.startRow<=i&&i<n.endRow&&o<=n.startColumn&&n.startColumn<=e)}function ru(i,o,e,t){return t.getMergeData().some(n=>n.startColumn<=i&&i<n.endColumn&&o<=n.startRow&&n.startRow<=e)}function su(i){let o=0;return i.forValue((e,t,n)=>{if(n&&o++,o>1)return!1}),o>1}function Oo(){return{p:null,v:null,s:null,f:null,si:null,t:null}}const kr=998,Hr={id:T.CopyCommand.id,name:"sheet.command.copy",type:l.CommandType.COMMAND,multi:!0,priority:kr,preconditions:Nr,handler:async i=>i.get(tt).copy()},Vr={id:T.CutCommand.id,name:"sheet.command.cut",type:l.CommandType.COMMAND,multi:!0,priority:kr,preconditions:Nr,handler:async i=>i.get(tt).cut()},nn={id:T.PasteCommand.id,type:l.CommandType.COMMAND,multi:!0,name:"sheet.command.paste",priority:kr,preconditions:Nr,handler:async(i,o)=>{const t=await i.get(T.IClipboardInterfaceService).read(),n=i.get(tt);return t.length!==0?n.paste(t[0],o==null?void 0:o.value):!1}},Ii={id:"sheet.command.paste-bu-short-key",type:l.CommandType.COMMAND,handler:async(i,o)=>{const e=i.get(tt),{htmlContent:t,textContent:n}=o;return e.legacyPaste(t,n),!0}},Wr={id:"sheet.command.paste-value",type:l.CommandType.COMMAND,handler:async i=>i.get(l.ICommandService).executeCommand(nn.id,{value:pe.SPECIAL_PASTE_VALUE})},Lr={id:"sheet.command.paste-format",type:l.CommandType.COMMAND,handler:async i=>i.get(l.ICommandService).executeCommand(nn.id,{value:pe.SPECIAL_PASTE_FORMAT})},Wi={id:"sheet.command.paste-col-width",type:l.CommandType.COMMAND,handler:async i=>i.get(l.ICommandService).executeCommand(nn.id,{value:pe.SPECIAL_PASTE_COL_WIDTH})},Ur={id:"sheet.command.paste-besides-border",type:l.CommandType.COMMAND,handler:async i=>i.get(l.ICommandService).executeCommand(nn.id,{value:pe.SPECIAL_PASTE_BESIDES_BORDER})},Li={id:"sheet.command.hide-row-confirm",type:l.CommandType.COMMAND,handler:async i=>{var c;const e=(c=i.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:c.map(d=>d.range);if(!(e!=null&&e.length))return!1;const t=i.get(l.ICommandService),n=i.get(l.IUniverInstanceService),r=m.getSheetCommandTarget(n);if(!r)return!1;const{worksheet:s}=r,a=s.getVisibleRows();if(cl(a,e)){const d=i.get(T.IConfirmService),u=i.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}},Ui={id:"sheet.command.hide-col-confirm",type:l.CommandType.COMMAND,handler:async i=>{var c;const e=(c=i.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:c.map(d=>d.range);if(!(e!=null&&e.length))return!1;const t=i.get(l.ICommandService),n=i.get(l.IUniverInstanceService),r=m.getSheetCommandTarget(n);if(!r)return!1;const{worksheet:s}=r,a=s.getVisibleCols();if(dl(a,e)){const d=i.get(T.IConfirmService),u=i.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}},on={type:l.CommandType.COMMAND,id:"sheet.command.set-range-bold",handler:async i=>{const o=i.get(l.ICommandService);return i.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?o.executeCommand(te.SetInlineFormatBoldCommand.id):o.executeCommand(m.SetBoldCommand.id)}},rn={type:l.CommandType.COMMAND,id:"sheet.command.set-range-italic",handler:async i=>{const o=i.get(l.ICommandService);return i.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?o.executeCommand(te.SetInlineFormatItalicCommand.id):o.executeCommand(m.SetItalicCommand.id)}},sn={type:l.CommandType.COMMAND,id:"sheet.command.set-range-underline",handler:async i=>{const o=i.get(l.ICommandService);return i.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?o.executeCommand(te.SetInlineFormatUnderlineCommand.id):o.executeCommand(m.SetUnderlineCommand.id)}},ln={type:l.CommandType.COMMAND,id:"sheet.command.set-range-stroke",handler:async i=>{const o=i.get(l.ICommandService);return i.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?o.executeCommand(te.SetInlineFormatStrikethroughCommand.id):o.executeCommand(m.SetStrikeThroughCommand.id)}},Br={type:l.CommandType.COMMAND,id:"sheet.command.set-range-subscript",handler:async i=>{const o=i.get(l.ICommandService);return i.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?o.executeCommand(te.SetInlineFormatSubscriptCommand.id):!1}},Fr={type:l.CommandType.COMMAND,id:"sheet.command.set-range-superscript",handler:async i=>{const o=i.get(l.ICommandService);return i.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?o.executeCommand(te.SetInlineFormatSuperscriptCommand.id):!1}},Bi={type:l.CommandType.COMMAND,id:"sheet.command.set-range-fontsize",handler:async(i,o)=>{const e=i.get(l.ICommandService);return i.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?e.executeCommand(te.SetInlineFormatFontSizeCommand.id,o):e.executeCommand(m.SetFontSizeCommand.id,o)}},Fi={type:l.CommandType.COMMAND,id:"sheet.command.set-range-font-family",handler:async(i,o)=>{const e=i.get(l.ICommandService);return i.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?e.executeCommand(te.SetInlineFormatFontFamilyCommand.id,o):e.executeCommand(m.SetFontFamilyCommand.id,o)}},Kt={type:l.CommandType.COMMAND,id:"sheet.command.set-range-text-color",handler:async(i,o)=>{const e=i.get(l.ICommandService);return i.get(l.IContextService).getContextValue(l.EDITOR_ACTIVATED)?e.executeCommand(te.SetInlineFormatTextColorCommand.id,o):e.executeCommand(m.SetTextColorCommand.id,o)}};var lu=Object.defineProperty,au=Object.getOwnPropertyDescriptor,cu=(i,o,e,t)=>{for(var n=t>1?void 0:t?au(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&lu(o,e,n),n},xt=(i,o)=>(e,t)=>o(e,t,i),De=(i=>(i[i.OFF=0]="OFF",i[i.ONCE=1]="ONCE",i[i.INFINITE=2]="INFINITE",i))(De||{});const nt=l.createIdentifier("univer.format-painter-service");let Ri=class extends l.Disposable{constructor(o,e,t,n,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=n,this._commandService=r,this._undoRedoService=s,this._status$=new O.BehaviorSubject(0),this.status$=this._status$.asObservable(),this._selectionFormat={styles:new l.ObjectMatrix,merges:[]}}addHook(o){var e,t,n;o.isDefaultHook&&((e=o.priority)!=null?e:0)>((n=(t=this._defaultHook)==null?void 0:t.priority)!=null?n:-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 n=this.getHooks(),r=[],s=[];n.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=_l(this._themeService);o===2?this._markId=this._markSelectionService.addShape({...e,style:t}):this._markId=this._markSelectionService.addShape({...e,style:t},[m.SetRangeValuesMutation.id])}}}};Ri=cu([xt(0,l.Inject(m.SheetsSelectionsService)),xt(1,l.Inject(l.ThemeService)),xt(2,Mt),xt(3,l.ILogService),xt(4,l.ICommandService),xt(5,l.IUndoRedoService)],Ri);const zn={id:"sheet.operation.set-format-painter",type:l.CommandType.OPERATION,handler:(i,o)=>o?(i.get(nt).setStatus(o.status),!0):!1},ji={type:l.CommandType.COMMAND,id:"sheet.command.set-infinite-format-painter",handler:async i=>{const e=i.get(nt).getStatus();let t;return e!==De.OFF?t=De.OFF:t=De.INFINITE,i.get(l.ICommandService).executeCommand(zn.id,{status:t})}},Yn={type:l.CommandType.COMMAND,id:"sheet.command.set-once-format-painter",handler:async i=>{const e=i.get(nt).getStatus();let t;return e!==De.OFF?t=De.OFF:t=De.ONCE,i.get(l.ICommandService).executeCommand(zn.id,{status:t})}},Gn={type:l.CommandType.COMMAND,id:"sheet.command.apply-format-painter",handler:async(i,o)=>i.get(nt).applyFormatPainter(o.unitId,o.subUnitId,o.range)},an={type:l.CommandType.COMMAND,id:"sheet.command.set-selection-frozen",handler:async(i,o)=>{const{type:e}=o||{},t=i.get(l.IUniverInstanceService),n=i.get(l.IUndoRedoService),r=m.getSheetCommandTarget(t);if(!r)return!1;const{unitId:s,subUnitId:a}=r,c=i.get(l.ICommandService),u=i.get(m.SheetsSelectionsService).getCurrentSelections();if(!u)return!1;const h=u[(u==null?void 0:u.length)-1],{range:g}=h,p=i.get(Ie),{sheetViewStartRow:f=0,sheetViewStartColumn:S=0}=p.getCurrentScrollInfo()||{};let v,C,I,R;const{startRow:b,startColumn:w,rangeType:y}=g;if(y===l.RANGE_TYPE.ROW||e===1)v=b,I=b-f,C=-1,R=0;else if(y===l.RANGE_TYPE.COLUMN||e===2)v=-1,I=0,C=w,R=w-S;else if(y===l.RANGE_TYPE.NORMAL)v=b,I=b-f,C=w,R=w-S;else return!1;const M={unitId:s,subUnitId:a,startRow:v,startColumn:C,xSplit:C>0?Math.max(1,R):R,ySplit:v>0?Math.max(1,I):I},A=m.SetFrozenMutationFactory(i,M);return c.syncExecuteCommand(m.SetFrozenMutation.id,M)&&n.pushUndoRedo({unitID:s,undoMutations:[{id:m.SetFrozenMutation.id,params:A}],redoMutations:[{id:m.SetFrozenMutation.id,params:M}]}),!0}},Xi={type:l.CommandType.COMMAND,id:"sheet.command.set-row-frozen",handler:async i=>(i.get(l.ICommandService).executeCommand(an.id,{type:1}),!0)},zi={type:l.CommandType.COMMAND,id:"sheet.command.set-col-frozen",handler:async i=>(i.get(l.ICommandService).executeCommand(an.id,{type:2}),!0)},Yi={type:l.CommandType.COMMAND,id:"sheet.command.cancel-frozen",handler:async i=>{const o=i.get(l.ICommandService),e=i.get(l.IUniverInstanceService),t=i.get(l.IUndoRedoService),n=m.getSheetCommandTarget(e);if(!n)return!1;const{unitId:r,subUnitId:s}=n,a={unitId:r,subUnitId:s,startRow:-1,startColumn:-1,xSplit:0,ySplit:0},c=m.SetFrozenMutationFactory(i,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}},cn="UI_PLUGIN_SHEETS",Zn=`${cn}_COLOR_PICKER_COMPONENT`,jr=`${cn}_FONT_FAMILY_COMPONENT`,Xr=`${cn}_FONT_FAMILY_ITEM_COMPONENT`,zr=`${cn}_FONT_SIZE_COMPONENT`,Gi=`${cn}_MENU_ITEM_INPUT_COMPONENT`;var Rl={exports:{}},Zi={};/**
10
10
  * @license React
11
11
  * react-jsx-runtime.production.min.js
12
12
  *
@@ -14,9 +14,9 @@
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
- */var hu=V,mu=Symbol.for("react.element"),gu=Symbol.for("react.fragment"),pu=Object.prototype.hasOwnProperty,fu=hu.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Su={key:!0,ref:!0,__self:!0,__source:!0};function wl(n,i,e){var t,o={},r=null,s=null;e!==void 0&&(r=""+e),i.key!==void 0&&(r=""+i.key),i.ref!==void 0&&(s=i.ref);for(t in i)pu.call(i,t)&&!Su.hasOwnProperty(t)&&(o[t]=i[t]);if(n&&n.defaultProps)for(t in i=n.defaultProps,i)o[t]===void 0&&(o[t]=i[t]);return{$$typeof:mu,type:n,key:r,ref:s,props:o,_owner:fu.current}}Jo.Fragment=gu;Jo.jsx=wl;Jo.jsxs=wl;El.exports=Jo;var _=El.exports;const vu="univer-sheets-ui-context-menu-input",Cu="univer-sheets-ui-context-menu-input-container",_u="univer-sheets-ui-context-menu-input-number",Di={sheetsUiContextMenuInput:vu,sheetsUiContextMenuInputContainer:Cu,sheetsUiContextMenuInputNumber:_u},Pl=n=>{const{prefix:i,suffix:e,value:t,onChange:o,min:r=Number.MIN_SAFE_INTEGER,max:s=Number.MAX_SAFE_INTEGER}=n,l=j.useDependency(a.LocaleService),[c,d]=V.useState(),u=g=>{var p;d(g==null?void 0:g.toString()),o((p=g==null?void 0:g.toString())!=null?p:"")};V.useEffect(()=>{d(t)},[t]);function h(g){g.key==="Backspace"&&g.stopPropagation()}return _.jsxs("div",{className:Di.sheetsUiContextMenuInput,children:[l.t(i),_.jsx("span",{className:Di.sheetsUiContextMenuInputContainer,onClick:g=>g.stopPropagation(),children:_.jsx(te.InputNumber,{className:Di.sheetsUiContextMenuInputNumber,value:Number(c),precision:0,onKeyDown:h,onChange:u,min:r,max:s})}),l.t(e)]})};var ue=(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))(ue||{});function Iu(n){const i=n.get(it);return{id:Zn.id,subId:Zo.id,group:R.MenuGroup.TOOLBAR_FORMAT,type:R.MenuItemType.BUTTON,icon:"BrushSingle",title:"Format Painter",tooltip:"toolbar.formatPainter",positions:[R.MenuPosition.TOOLBAR_START],activated$:new O.Observable(e=>{let t=!1;const o=i.status$.subscribe(r=>{t=r!==He.OFF,e.next(t)});return e.next(t),()=>{o.unsubscribe()}}),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetCopyPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function bu(n){const i=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(a.IContextService),o=n.get(m.SheetsSelectionsService);return{id:rn.id,group:R.MenuGroup.TOOLBAR_FORMAT,type:R.MenuItemType.BUTTON,icon:"BoldSingle",title:"Set bold",tooltip:"toolbar.bold",positions:[R.MenuPosition.TOOLBAR_START],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),activated$:Te(e,!1,({worksheet:r})=>new O.Observable(s=>{var u;const l=i.onCommandExecuted(h=>{var p,f;const g=h.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const S=(p=o.getCurrentLastSelection())==null?void 0:p.primary;let v=a.FontWeight.NORMAL;if(S!=null){const C=r.getRange(S.startRow,S.startColumn);v=C==null?void 0:C.getFontWeight()}s.next(v===a.FontWeight.BOLD)}if((g===oe.SetTextSelectionsOperation.id||g===oe.SetInlineFormatCommand.id)&&t.getContextValue(a.EDITOR_ACTIVATED)&&t.getContextValue(a.FOCUSING_SHEET)){const S=Jn(n);if(S==null)return;const v=(f=S.ts)==null?void 0:f.bl;s.next(v===a.BooleanNumber.TRUE)}}),c=(u=o.getCurrentLastSelection())==null?void 0:u.primary;if(!r){s.next(!1);return}let d=a.FontWeight.NORMAL;if(c!=null){const h=r.getRange(c.startRow,c.startColumn);d=h==null?void 0:h.getFontWeight()}return s.next(d===a.FontWeight.BOLD),l.dispose})),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Ru(n){const i=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(a.IContextService);return{id:sn.id,group:R.MenuGroup.TOOLBAR_FORMAT,type:R.MenuItemType.BUTTON,icon:"ItalicSingle",title:"Set italic",tooltip:"toolbar.italic",positions:[R.MenuPosition.TOOLBAR_START],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),activated$:Te(e,!1,({worksheet:r})=>new O.Observable(s=>{var u;const l=i.onCommandExecuted(h=>{var p,f;const g=h.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const S=(p=t.getCurrentLastSelection())==null?void 0:p.primary;let v=a.FontItalic.NORMAL;if(S!=null){const C=r.getRange(S.startRow,S.startColumn);v=C==null?void 0:C.getFontStyle()}s.next(v===a.FontItalic.ITALIC)}if((g===oe.SetTextSelectionsOperation.id||g===oe.SetInlineFormatCommand.id)&&o.getContextValue(a.EDITOR_ACTIVATED)&&o.getContextValue(a.FOCUSING_SHEET)){const S=Jn(n);if(S==null)return;const v=(f=S.ts)==null?void 0:f.it;s.next(v===a.BooleanNumber.TRUE)}}),c=(u=t.getCurrentLastSelection())==null?void 0:u.primary;let d=a.FontItalic.NORMAL;if(c!=null){const h=r.getRange(c.startRow,c.startColumn);d=h==null?void 0:h.getFontStyle()}return s.next(d===a.FontItalic.ITALIC),l.dispose})),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Tu(n){const i=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(a.IContextService);return{id:ln.id,group:R.MenuGroup.TOOLBAR_FORMAT,type:R.MenuItemType.BUTTON,icon:"UnderlineSingle",title:"Set underline",tooltip:"toolbar.underline",positions:[R.MenuPosition.TOOLBAR_START],activated$:Te(e,!1,({worksheet:r})=>new O.Observable(s=>{var u;const l=i.onCommandExecuted(h=>{var p,f;const g=h.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const S=(p=t.getCurrentLastSelection())==null?void 0:p.primary;let v;if(S!=null){const C=r.getRange(S.startRow,S.startColumn);v=C==null?void 0:C.getUnderline()}s.next(!!(v&&v.s))}if((g===oe.SetTextSelectionsOperation.id||g===oe.SetInlineFormatCommand.id)&&o.getContextValue(a.EDITOR_ACTIVATED)&&o.getContextValue(a.FOCUSING_SHEET)){const S=Jn(n);if(S==null)return;const v=(f=S.ts)==null?void 0:f.ul;s.next((v==null?void 0:v.s)===a.BooleanNumber.TRUE)}}),c=(u=t.getCurrentLastSelection())==null?void 0:u.primary;let d;if(c!=null){const h=r.getRange(c.startRow,c.startColumn);d=h==null?void 0:h.getUnderline()}return s.next(!!(d&&d.s)),l.dispose})),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Eu(n){const i=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(a.IContextService);return{id:an.id,group:R.MenuGroup.TOOLBAR_FORMAT,type:R.MenuItemType.BUTTON,icon:"StrikethroughSingle",title:"Set strike through",tooltip:"toolbar.strikethrough",positions:[R.MenuPosition.TOOLBAR_START],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),activated$:Te(e,!1,({worksheet:r})=>new O.Observable(s=>{var u;const l=i.onCommandExecuted(h=>{var p,f;const g=h.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const S=(p=t.getCurrentLastSelection())==null?void 0:p.primary;let v;if(S!=null){const C=r.getRange(S.startRow,S.startColumn);v=C==null?void 0:C.getStrikeThrough()}s.next(!!(v&&v.s))}if((g===oe.SetTextSelectionsOperation.id||g===oe.SetInlineFormatCommand.id)&&o.getContextValue(a.EDITOR_ACTIVATED)&&o.getContextValue(a.FOCUSING_SHEET)){const S=Jn(n);if(S==null)return;const v=(f=S.ts)==null?void 0:f.st;s.next((v==null?void 0:v.s)===a.BooleanNumber.TRUE)}}),c=(u=t.getCurrentLastSelection())==null?void 0:u.primary;let d;if(c!=null){const h=r.getRange(c.startRow,c.startColumn);d=h==null?void 0:h.getStrikeThrough()}return s.next(!!(d&&d.s)),l.dispose})),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function wu(n){const i=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=a.DEFAULT_STYLES.ff;return{id:Yo.id,tooltip:"toolbar.font",group:R.MenuGroup.TOOLBAR_FORMAT,type:R.MenuItemType.SELECTOR,label:Gr,positions:[R.MenuPosition.TOOLBAR_START],selections:R.FONT_FAMILY_LIST.map(r=>({label:{name:Kr,hoverable:!0},value:r.value})),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),value$:Te(e,o,({worksheet:r})=>new O.Observable(s=>{var u;const l=i.onCommandExecuted(h=>{var S;const g=h.id;if(g!==m.SetRangeValuesMutation.id&&g!==m.SetSelectionsOperation.id&&g!==m.SetWorksheetActiveOperation.id)return;const p=(S=t.getCurrentLastSelection())==null?void 0:S.primary;let f;if(p!=null){const v=r.getRange(p.startRow,p.startColumn);f=v==null?void 0:v.getFontFamily()}s.next(f!=null?f:o)}),c=(u=t.getCurrentLastSelection())==null?void 0:u.primary;let d;if(c!=null){const h=r.getRange(c.startRow,c.startColumn);d=h==null?void 0:h.getFontFamily()}return s.next(d!=null?d:o),l.dispose})),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Pu(n){const i=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(a.IContextService),r=a.DEFAULT_STYLES.fs,s=ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]});return{id:zo.id,group:R.MenuGroup.TOOLBAR_FORMAT,type:R.MenuItemType.SELECTOR,tooltip:"toolbar.fontSize",label:{name:qr,props:{min:1,max:400,disabled$:s}},positions:[R.MenuPosition.TOOLBAR_START],selections:R.FONT_SIZE_LIST,disabled$:s,value$:Te(e,r,({worksheet:l})=>new O.Observable(c=>{var g;const d=i.onCommandExecuted(p=>{var S,v;const f=p.id;if(f===m.SetRangeValuesMutation.id||f===m.SetSelectionsOperation.id||f===m.SetWorksheetActiveOperation.id){const C=(S=t.getCurrentLastSelection())==null?void 0:S.primary;let I;if(C!=null){const b=l.getRange(C.startRow,C.startColumn);I=b==null?void 0:b.getFontSize()}c.next(I!=null?I:r)}if((f===oe.SetTextSelectionsOperation.id||f===oe.SetInlineFormatCommand.id)&&o.getContextValue(a.EDITOR_ACTIVATED)&&o.getContextValue(a.FOCUSING_SHEET)){const C=Jn(n);if(C==null)return;const I=(v=C.ts)==null?void 0:v.fs;c.next(I!=null?I:r)}}),u=(g=t.getCurrentLastSelection())==null?void 0:g.primary;let h;if(u!=null){const p=l.getRange(u.startRow,u.startColumn);h=p==null?void 0:p.getFontSize()}return c.next(h!=null?h:r),d.dispose})),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function yu(n){return{id:m.ResetTextColorCommand.id,type:R.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$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Mu(n){const i=n.get(a.ICommandService),e=n.get(a.ThemeService);return{id:qt.id,icon:"FontColor",tooltip:"toolbar.textColor.main",group:R.MenuGroup.TOOLBAR_FORMAT,type:R.MenuItemType.BUTTON_SELECTOR,positions:[R.MenuPosition.TOOLBAR_START],selections:[{label:{name:Kn,hoverable:!1}}],value$:new O.Observable(t=>{const o=e.getCurrentTheme().textColor,r=i.onCommandExecuted(s=>{if(s.id===qt.id){const l=s.params.value;t.next(l!=null?l:o)}});return t.next(o),r.dispose}),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Ou(n){return{id:m.ResetBackgroundColorCommand.id,type:R.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 Au(n){const i=n.get(a.ICommandService),e=n.get(a.ThemeService);return{id:m.SetBackgroundColorCommand.id,tooltip:"toolbar.fillColor.main",group:R.MenuGroup.TOOLBAR_FORMAT,type:R.MenuItemType.BUTTON_SELECTOR,positions:[R.MenuPosition.TOOLBAR_START],icon:"PaintBucket",selections:[{label:{name:Kn,hoverable:!1}}],value$:new O.Observable(t=>{const o=e.getCurrentTheme().primaryColor,r=i.onCommandExecuted(s=>{if(s.id===m.SetBackgroundColorCommand.id){const l=s.params.value;t.next(l!=null?l:o)}});return t.next(o),r.dispose}),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const xs=[{label:"align.left",icon:"LeftJustifyingSingle",value:a.HorizontalAlign.LEFT},{label:"align.center",icon:"HorizontallySingle",value:a.HorizontalAlign.CENTER},{label:"align.right",icon:"RightJustifyingSingle",value:a.HorizontalAlign.RIGHT}];function Nu(n){const i=n.get(a.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=a.HorizontalAlign.LEFT;return{id:m.SetHorizontalTextAlignCommand.id,icon:xs[0].icon,positions:[R.MenuPosition.TOOLBAR_START],tooltip:"toolbar.horizontalAlignMode.main",group:R.MenuGroup.TOOLBAR_LAYOUT,type:R.MenuItemType.SELECTOR,selections:xs,value$:Te(i,t,({worksheet:o})=>new O.Observable(r=>{var d;const s=n.get(a.ICommandService).onCommandExecuted(u=>{var f;const h=u.id;if(h!==m.SetHorizontalTextAlignCommand.id&&h!==m.SetSelectionsOperation.id&&h!==m.SetWorksheetActiveOperation.id)return;const g=(f=e.getCurrentLastSelection())==null?void 0:f.primary;let p;if(g!=null){const S=o.getRange(g.startRow,g.startColumn);p=S==null?void 0:S.getHorizontalAlignment()}r.next(p!=null?p:t)}),l=(d=e.getCurrentLastSelection())==null?void 0:d.primary;let c;if(l!=null){const u=o.getRange(l.startRow,l.startColumn);c=u==null?void 0:u.getHorizontalAlignment()}return r.next(c!=null?c:t),s.dispose})),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const Ds=[{label:"align.top",icon:"AlignTopSingle",value:a.VerticalAlign.TOP},{label:"align.middle",icon:"VerticalCenterSingle",value:a.VerticalAlign.MIDDLE},{label:"align.bottom",icon:"AlignBottomSingle",value:a.VerticalAlign.BOTTOM}];function xu(n){const i=n.get(a.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=a.VerticalAlign.BOTTOM;return{id:m.SetVerticalTextAlignCommand.id,icon:Ds[2].icon,tooltip:"toolbar.verticalAlignMode.main",group:R.MenuGroup.TOOLBAR_LAYOUT,type:R.MenuItemType.SELECTOR,positions:[R.MenuPosition.TOOLBAR_START],selections:Ds,value$:Te(i,t,({worksheet:o})=>new O.Observable(r=>{var d;const s=n.get(a.ICommandService).onCommandExecuted(u=>{var f;const h=u.id;if(h!==m.SetVerticalTextAlignCommand.id&&h!==m.SetSelectionsOperation.id&&h!==m.SetWorksheetActiveOperation.id)return;const g=(f=e.getCurrentLastSelection())==null?void 0:f.primary;let p;if(g!=null){const S=o.getRange(g.startRow,g.startColumn);p=S==null?void 0:S.getVerticalAlignment()}r.next(p!=null?p:t)}),l=(d=e.getCurrentLastSelection())==null?void 0:d.primary;let c;if(l!=null){const u=o.getRange(l.startRow,l.startColumn);c=u==null?void 0:u.getVerticalAlignment()}return r.next(c!=null?c:t),s.dispose})),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const ks=[{label:"textWrap.overflow",icon:"OverflowSingle",value:a.WrapStrategy.OVERFLOW},{label:"textWrap.wrap",icon:"AutowrapSingle",value:a.WrapStrategy.WRAP},{label:"textWrap.clip",icon:"TruncationSingle",value:a.WrapStrategy.CLIP}];function Du(n){const i=n.get(m.SheetsSelectionsService),e=n.get(a.IUniverInstanceService),t=a.WrapStrategy.OVERFLOW;return{id:m.SetTextWrapCommand.id,tooltip:"toolbar.textWrapMode.main",icon:ks[0].icon,group:R.MenuGroup.TOOLBAR_LAYOUT,type:R.MenuItemType.SELECTOR,positions:[R.MenuPosition.TOOLBAR_START],selections:ks,value$:Te(e,t,({worksheet:o})=>new O.Observable(r=>{var d;const s=n.get(a.ICommandService).onCommandExecuted(u=>{var f;const h=u.id;if(h!==m.SetTextWrapCommand.id&&h!==m.SetSelectionsOperation.id&&h!==m.SetWorksheetActiveOperation.id)return;const g=(f=i.getCurrentLastSelection())==null?void 0:f.primary;let p;if(g!=null){const S=o.getRange(g.startRow,g.startColumn);p=S==null?void 0:S.getWrapStrategy()}r.next(p!=null?p:t)}),l=(d=i.getCurrentLastSelection())==null?void 0:d.primary;let c;if(l!=null){const u=o.getRange(l.startRow,l.startColumn);c=u==null?void 0:u.getWrapStrategy()}return r.next(c!=null?c:t),s.dispose})),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const Hs=[{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 ku(n){const i=n.get(m.SheetsSelectionsService),e=n.get(a.IUniverInstanceService),t=0;return{id:m.SetTextRotationCommand.id,tooltip:"toolbar.textRotateMode.main",icon:Hs[0].icon,group:R.MenuGroup.TOOLBAR_LAYOUT,type:R.MenuItemType.SELECTOR,selections:Hs,positions:[R.MenuPosition.TOOLBAR_START],value$:Te(e,t,({worksheet:o})=>new O.Observable(r=>{var d,u;const s=n.get(a.ICommandService).onCommandExecuted(h=>{var S,v;const g=h.id;if(g!==m.SetTextRotationCommand.id&&g!==m.SetSelectionsOperation.id&&g!==m.SetWorksheetActiveOperation.id)return;const p=(S=i.getCurrentLastSelection())==null?void 0:S.primary;let f;if(p!=null){const C=o.getRange(p.startRow,p.startColumn);f=C==null?void 0:C.getTextRotation()}(f==null?void 0:f.v)===a.BooleanNumber.TRUE?r.next("v"):r.next((v=f&&f.a)!=null?v:t)}),l=(d=i.getCurrentLastSelection())==null?void 0:d.primary;let c;if(l!=null){const h=o.getRange(l.startRow,l.startColumn);c=h==null?void 0:h.getTextRotation()}return(c==null?void 0:c.v)===a.BooleanNumber.TRUE?r.next("v"):r.next((u=c&&c.a)!=null?u:t),s.dispose})),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function qn(n){return new O.Observable(e=>e.next(!n.get(R.IClipboardInterfaceService).supportClipboard))}function yl(n){return{id:R.CopyCommand.id,group:R.MenuGroup.CONTEXT_MENU_FORMAT,type:R.MenuItemType.BUTTON,title:"rightClick.copy",icon:"Copy",positions:[R.MenuPosition.CONTEXT_MENU,"COL_HEADER_CONTEXT_MENU","ROW_HEADER_CONTEXT_MENU"],disabled$:ne(n,{workbookTypes:[m.WorkbookCopyPermission],worksheetTypes:[m.WorksheetCopyPermission],rangeTypes:[m.RangeProtectionPermissionViewPoint]}),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Hu(n){return{id:R.PasteCommand.id,group:R.MenuGroup.CONTEXT_MENU_FORMAT,type:R.MenuItemType.BUTTON,title:"rightClick.paste",icon:"PasteSpecial",disabled$:qn(n).pipe(O.combineLatestWith(ne(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission,m.WorksheetSetCellValuePermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([i,e])=>i||e)),positions:[R.MenuPosition.CONTEXT_MENU,"COL_HEADER_CONTEXT_MENU","ROW_HEADER_CONTEXT_MENU"],hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}const un="sheet.menu.paste-special";function Vu(n){return{id:un,group:R.MenuGroup.CONTEXT_MENU_FORMAT,type:R.MenuItemType.SUBITEMS,icon:"PasteSpecial",title:"rightClick.pasteSpecial",positions:[R.MenuPosition.CONTEXT_MENU,"COL_HEADER_CONTEXT_MENU","ROW_HEADER_CONTEXT_MENU"],hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Wu(n){return{id:jr.id,type:R.MenuItemType.BUTTON,title:"rightClick.pasteValue",positions:[un],disabled$:qn(n).pipe(O.combineLatestWith(ne(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetEditPermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([i,e])=>i||e)),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Lu(n){return{id:Xr.id,type:R.MenuItemType.BUTTON,title:"rightClick.pasteFormat",positions:[un],disabled$:qn(n).pipe(O.combineLatestWith(ne(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([i,e])=>i||e)),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Uu(n){return{id:Fo.id,type:R.MenuItemType.BUTTON,title:"rightClick.pasteColWidth",positions:[un],disabled$:qn(n).pipe(O.combineLatestWith(ne(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetColumnStylePermission,m.WorksheetEditPermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([i,e])=>i||e))}}function Bu(n){return{id:zr.id,type:R.MenuItemType.BUTTON,title:"rightClick.pasteBesidesBorder",positions:[un],disabled$:qn(n).pipe(O.combineLatestWith(ne(n,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission,m.WorksheetSetCellValuePermission,m.WorksheetSetRowStylePermission,m.WorksheetSetColumnStylePermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([i,e])=>i||e)),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Fu(n){return{id:m.SetWorksheetRowIsAutoHeightCommand.id,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.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$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}const Qn="sheet.menu.sheet-frozen";function ju(n){return{id:Qn,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",positions:[R.MenuPosition.CONTEXT_MENU],hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}const Qr="sheet.header-menu.sheet-frozen";function Xu(n){return{id:Qr,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",positions:["ROW_HEADER_CONTEXT_MENU","COL_HEADER_CONTEXT_MENU"],hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function zu(n){return{id:cn.id,type:R.MenuItemType.BUTTON,positions:[Qn,Qr],title:"rightClick.freeze",icon:"FreezeToSelectedSingle",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Yu(n){return{id:Go.id,type:R.MenuItemType.BUTTON,positions:[Qn],title:"rightClick.freezeRow",icon:"FreezeRowSingle",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Zu(n){return{id:Ko.id,type:R.MenuItemType.BUTTON,positions:[Qn],title:"rightClick.freezeCol",icon:"FreezeColumnSingle",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Gu(n){return{id:qo.id,type:R.MenuItemType.BUTTON,positions:[Qn,Qr],title:"rightClick.cancelFreeze",icon:"CancelFreezeSingle",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Ku(n){return{id:jo.id,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.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$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function qu(n){return{id:Xo.id,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.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$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Qu(n){const i=n.get(a.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=n.get(a.ICommandService),o=[m.SetSelectionsOperation,m.SetRowHiddenMutation,m.SetRowVisibleMutation].map(r=>r.id);return{id:m.SetSelectedRowsVisibleCommand.id,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.MenuItemType.BUTTON,positions:["ROW_HEADER_CONTEXT_MENU"],title:"rightClick.showHideRow",hidden$:Te(i,!0,({worksheet:r})=>new O.Observable(s=>{function l(){var u;const d=(u=e.getCurrentSelections())==null?void 0:u.map(h=>h.range).filter(h=>h.rangeType===a.RANGE_TYPE.ROW);return!!(d!=null&&d.some(h=>{for(let g=h.startRow;g<=h.endRow;g++)if(!r.getRowRawVisible(g))return!0;return!1}))}const c=t.onCommandExecuted(d=>{o.findIndex(u=>u===d.id)!==-1&&s.next(!l())});return s.next(!l()),()=>c.dispose()})),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetRowStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Ju(n){const i=n.get(a.IUniverInstanceService),e=n.get(m.SheetsSelectionsService),t=n.get(a.ICommandService),o=[m.SetSelectionsOperation,m.SetColHiddenMutation,m.SetColVisibleMutation].map(r=>r.id);return{id:m.SetSelectedColsVisibleCommand.id,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.MenuItemType.BUTTON,positions:["COL_HEADER_CONTEXT_MENU"],title:"rightClick.showHideColumn",hidden$:Te(i,!0,({worksheet:r})=>new O.Observable(s=>{function l(){var u;const d=(u=e.getCurrentSelections())==null?void 0:u.map(h=>h.range).filter(h=>h.rangeType===a.RANGE_TYPE.COLUMN);return!d||d.length===0?!1:!!d.some(h=>{for(let g=h.startColumn;g<=h.endColumn;g++)if(!r.getColVisible(g))return!0;return!1})}const c=t.onCommandExecuted(d=>{o.findIndex(u=>u===d.id)!==-1&&s.next(!l())});return s.next(!l()),()=>c.dispose()})),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetColumnStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function $u(n){const i=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=0;return{id:m.SetRowHeightCommand.id,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.MenuItemType.BUTTON,icon:"AdjustHeight",positions:["ROW_HEADER_CONTEXT_MENU"],label:{name:Qo,props:{prefix:"rightClick.rowHeight",suffix:"px",min:2,max:1e3}},value$:Te(e,o,({worksheet:r})=>new O.Observable(s=>{function l(){var h;const d=(h=t.getCurrentLastSelection())==null?void 0:h.primary,u=d?r.getRowHeight(d.startRow):o;s.next(u)}const c=i.onCommandExecuted(d=>{const u=d.id;if(u===m.SetRangeValuesMutation.id||u===m.SetSelectionsOperation.id||u===m.SetWorksheetRowIsAutoHeightMutation.id)return l()});return l(),c.dispose})),hidden$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetRowStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function eh(n){const i=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=0;return{id:m.SetColWidthCommand.id,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.MenuItemType.BUTTON,icon:"AdjustWidth",positions:["COL_HEADER_CONTEXT_MENU"],label:{name:Qo,props:{prefix:"rightClick.columnWidth",suffix:"px",min:2,max:1e3}},value$:Te(e,o,({worksheet:r})=>new O.Observable(s=>{function l(){var h;const d=(h=t.getCurrentLastSelection())==null?void 0:h.primary;let u=o;d!=null&&(u=r.getColumnWidth(d.startColumn)),s.next(u)}const c=i.onCommandExecuted(d=>{const u=d.id;if(u===m.SetRangeValuesMutation.id||u===m.SetSelectionsOperation.id||u===m.SetWorksheetColWidthMutation.id)return l()});return l(),c.dispose})),hidden$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetColumnStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Jn(n){var c;const i=n.get(a.IUniverInstanceService),e=n.get(oe.TextSelectionManagerService),t=i.getUniverDocInstance(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),o=e.getActiveRange();if(t==null||o==null)return null;const r=(c=t.getBody())==null?void 0:c.textRuns;if(r==null)return;const{startOffset:s}=o;return r.find(({st:d,ed:u})=>s>=d&&s<=u)}function th(n){const i=n.get(m.SheetsSelectionsService),e=n.get(m.RangeProtectionRuleModel),o=n.get(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),r=o.getUnitId();return O.combineLatest([i.selectionMoveEnd$,o.activeSheet$]).pipe(O.map(([s,l])=>{if(!l||!s||s.length===0)return!1;const c=l.getSheetId(),d=e.getSubunitRuleList(r,c).map(u=>u.ranges).flat();if(s.length<2){const u=s[0].range;return d.some(g=>a.Rectangle.intersects(g,u)&&!a.Rectangle.contains(g,u))}for(let u=0;u<s.length;u++)for(let h=u+1;h<s.length;h++)if(a.Rectangle.intersects(s[u].range,s[h].range))return!0;return!1}))}function yt(n,i,e){const t=n.find(o=>{const r=o.range,{startRow:s,endRow:l,startColumn:c,endColumn:d,rangeType:u}=r;return u===a.RANGE_TYPE.ALL||u===a.RANGE_TYPE.NORMAL?!1:e===a.RANGE_TYPE.COLUMN&&a.RANGE_TYPE.COLUMN===u?i>=c&&i<=d:u===a.RANGE_TYPE.ROW&&i>=s&&i<=l});return t!=null?t:!1}function $o(){const n=j.useDependency(a.IUniverInstanceService),i=R.useObservable(()=>n.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),void 0,void 0,[]);return i!=null?i:null}function nh(n){return R.useObservable(()=>{var e;return(e=n==null?void 0:n.activeSheet$)!=null?e:O.of(null)},void 0,void 0,[n])}class Ml{constructor(){E(this,"_state",null);E(this,"_rect",null);E(this,"_state$",new O.BehaviorSubject(null));E(this,"state$",this._state$.asObservable());E(this,"_rect$",new O.BehaviorSubject(null));E(this,"rect$",this._rect$.asObservable());E(this,"_focus",!1);E(this,"_focus$",new O.BehaviorSubject(this._focus));E(this,"focus$",this._focus$.asObservable())}dispose(){this._state$.complete(),this._state=null,this._rect$.complete(),this._rect=null}setState(i){this._state=i,this._refresh(i)}getRect(){return this._rect}setRect(i){this._rect=i,this._rect$.next(i)}getState(){return this._state}setFocus(i=!1){this._focus=i,this._focus$.next(i)}_refresh(i){this._state$.next(i)}}const ei=k.createIdentifier("univer.sheet-cell-editor-manager.service");class oh{constructor(){E(this,"_position",null);E(this,"_position$",new O.BehaviorSubject(null));E(this,"position$",this._position$.asObservable());E(this,"_focus",!1);E(this,"_focus$",new O.BehaviorSubject(this._focus));E(this,"focus$",this._focus$.asObservable());E(this,"_fxBtnClick$",new O.Subject);E(this,"fxBtnClick$",this._fxBtnClick$.asObservable());E(this,"_foldBtnStatus$",new O.Subject);E(this,"foldBtnStatus$",this._foldBtnStatus$.asObservable())}dispose(){this._position$.complete(),this._focus$.complete(),this._position=null,this._focus=!1}setPosition(i){this._position=i,this._refresh(i)}getPosition(){return this._position}setFocus(i=!1){this._focus=i,this._focus$.next(i)}handleFxBtnClick(i){this._fxBtnClick$.next(i)}handleFoldBtnClick(i){this._foldBtnStatus$.next(i)}_refresh(i){this._position$.next(i)}}const ti=k.createIdentifier("univer.sheet-formula-editor-manager.service");var ih=Object.defineProperty,rh=Object.getOwnPropertyDescriptor,sh=(n,i,e,t)=>{for(var o=t>1?void 0:t?rh(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&ih(i,e,o),o},Qe=(n,i)=>(e,t)=>i(e,t,n);exports.SheetSelectionRenderService=class extends kr{constructor(e,t,o,r,s,l,c,d,u,h){super(t,o,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=l.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:o,spreadsheet:r,spreadsheetLeftTopPlaceholder:s}=e,{scene:l}=this._context;this.disposeWithMe(r==null?void 0:r.onPointerDown$.subscribeEvent((c,d)=>{this._normalSelectionDisabled()||(this._onPointerDown(c,r.zIndex+1,a.RANGE_TYPE.NORMAL,this._getActiveViewport(c)),c.button!==2&&d.stopPropagation())})),this.disposeWithMe(t==null?void 0:t.onPointerDown$.subscribeEvent((c,d)=>{if(this._normalSelectionDisabled())return;const u=this._sheetSkeletonManagerService.getCurrent().skeleton,{row:h}=Xe(c.offsetX,c.offsetY,l,u);yt(this._workbookSelections.getCurrentSelections(),h,a.RANGE_TYPE.ROW)||(this._onPointerDown(c,(r.zIndex||1)+1,a.RANGE_TYPE.ROW,this._getActiveViewport(c),P.ScrollTimerType.Y),c.button!==2&&d.stopPropagation())})),this.disposeWithMe(o==null?void 0:o.onPointerDown$.subscribeEvent((c,d)=>{if(this._normalSelectionDisabled())return;const u=this._sheetSkeletonManagerService.getCurrent().skeleton,{column:h}=Xe(c.offsetX,c.offsetY,l,u);yt(this._workbookSelections.getCurrentSelections(),h,a.RANGE_TYPE.COLUMN)||(this._onPointerDown(c,(r.zIndex||1)+1,a.RANGE_TYPE.COLUMN,this._getActiveViewport(c),P.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=Hr(u),g=Rt(h,u);this._addSelectionControlBySelectionData(g),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(o=>{const r=Rt(o,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 o=Rt(t,this._skeleton);this._addSelectionControlBySelectionData(o)}}))}_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(O.startWith(!1),O.distinctUntilChanged()).subscribe(e=>{var t;e?((t=this._renderDisposable)==null||t.dispose(),this._renderDisposable=null,this._reset()):this._renderDisposable=a.toDisposable(this.selectionMoveEnd$.subscribe(o=>this._updateSelections(o,m.SelectionMoveType.MOVE_END)))}))}_updateSelections(e,t){const o=this._context.unit,r=o.getUnitId(),s=o.getActiveSheet().getSheetId();e.length!==0&&this._commandService.executeCommand(m.SetSelectionsOperation.id,{unitId:r,subUnitId:s,type:t,selections:e.map(l=>m.convertSelectionDataToRange(l))})}_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:o,skeleton:r}=e,{scene:s}=this._context,l=s.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._changeRuntime(r,s,l),this._workbookSelections.getCurrentLastSelection()||this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:t,subUnitId:o,selections:[Bo(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(P.Vector2.FromArray([e.offsetX,e.offsetY]))}_getSheetObject(){return Ke(this._context.unit,this._context)}};exports.SheetSelectionRenderService=sh([Qe(1,k.Inject(k.Injector)),Qe(2,k.Inject(a.ThemeService)),Qe(3,R.IShortcutService),Qe(4,P.IRenderManagerService),Qe(5,k.Inject(m.SheetsSelectionsService)),Qe(6,a.ILogService),Qe(7,a.ICommandService),Qe(8,a.IContextService),Qe(9,k.Inject(exports.SheetSkeletonManagerService))],exports.SheetSelectionRenderService);var lh=Object.defineProperty,ah=Object.getOwnPropertyDescriptor,ch=(n,i,e,t)=>{for(var o=t>1?void 0:t?ah(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&lh(i,e,o),o},Vs=(n,i)=>(e,t)=>i(e,t,n);let Mn=class extends a.Disposable{constructor(i,e){super();E(this,"_previousSheetIndex",-1);this._commandService=i,this._univerInstanceService=e,this.disposeWithMe(this._commandService.beforeCommandExecuted(t=>{if(t.id===m.RemoveSheetMutation.id)return this._beforeAdjustActiveSheetOnRemoveSheet(t)})),this.disposeWithMe(this._commandService.onCommandExecuted((t,o)=>{if(t.id===m.RemoveSheetMutation.id)return this._adjustActiveSheetOnRemoveSheet(t);if(t.id===m.SetWorksheetHideMutation.id&&t.params.hidden)return this._adjustActiveSheetOnHideSheet(t);if(!(o!=null&&o.fromCollab)){if(t.id===m.InsertSheetMutation.id)return this._adjustActiveSheetOnInsertSheet(t);if(t.id===m.SetWorksheetHideMutation.id&&!t.params.hidden)return this._adjustActiveSheetOnShowSheet(t)}}))}_adjustActiveSheetOnHideSheet(i){var c;const{unitId:e,subUnitId:t}=i.params,o=this._univerInstanceService.getUniverSheetInstance(e);if(!o||((c=o.getActiveSheet())==null?void 0:c.getSheetId())!==t)return;const s=o.getActiveSheetIndex(),l=Ws(o,s);this._switchToNextSheet(e,l)}_beforeAdjustActiveSheetOnRemoveSheet(i){const{unitId:e,subUnitId:t}=i.params,o=this._univerInstanceService.getUniverSheetInstance(e);if(!o)return;const r=o.getSheetBySheetId(t);r&&(this._previousSheetIndex=o.getSheetIndex(r))}_adjustActiveSheetOnRemoveSheet(i){if(this._previousSheetIndex===-1)return;const{unitId:e}=i.params,t=this._univerInstanceService.getUniverSheetInstance(e);if(!t)return;if(t.getActiveSheet().getSheetId()===i.params.subUnitId){const r=this._previousSheetIndex,s=r>=1?r-1:0,l=Ws(t,s);this._switchToNextSheet(e,l)}}_adjustActiveSheetOnInsertSheet(i){const{unitId:e,sheet:t}=i.params;this._switchToNextSheet(e,t.id)}_adjustActiveSheetOnShowSheet(i){const{unitId:e,subUnitId:t}=i.params;this._switchToNextSheet(e,t)}_switchToNextSheet(i,e){this._commandService.executeCommand(m.SetWorksheetActiveOperation.id,{unitId:i,subUnitId:e})}};Mn=ch([a.OnLifecycle(a.LifecycleStages.Ready,Mn),Vs(0,a.ICommandService),Vs(1,a.IUniverInstanceService)],Mn);function Ws(n,i){const e=n.getSheetSize();for(let t=i;t>-1;t--){const o=n.getSheetByIndex(t);if(!o.getConfig().hidden)return o.getSheetId()}for(let t=i;t<e;t++){const o=n.getSheetByIndex(t);if(!o.getConfig().hidden)return o.getSheetId()}throw new Error("[ActiveWorksheetController]: could not find the next unhidden sheet! Collaboration error perhaps.")}var dh=Object.defineProperty,uh=Object.getOwnPropertyDescriptor,hh=(n,i,e,t)=>{for(var o=t>1?void 0:t?uh(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&dh(i,e,o),o},Sn=(n,i)=>(e,t)=>i(e,t,n);exports.AutoHeightController=class extends a.Disposable{constructor(i,e,t,o,r){super(),this._renderManagerService=i,this._injector=e,this._sheetInterceptorService=t,this._selectionManagerService=o,this._univerInstanceService=r,this._initialize()}getUndoRedoParamsOfAutoHeight(i){var g;const{_univerInstanceService:e,_injector:t}=this,o=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),r=o.getUnitId(),s=(g=o.getActiveSheet())==null?void 0:g.getSheetId(),l=this._renderManagerService.getRenderById(r).with(exports.SheetSkeletonManagerService);if(!s||!l.getCurrent())return{redos:[],undos:[]};const{skeleton:c}=l.getCurrent(),d=c.calculateAutoHeightInRange(i),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:i,_selectionManagerService:e}=this;this.disposeWithMe(i.interceptCommand({getMutations:t=>t.id!==m.SetRangeValuesCommand.id?{redos:[],undos:[]}:this.getUndoRedoParamsOfAutoHeight(t.params.range)})),this.disposeWithMe(i.interceptCommand({getMutations:t=>t.id!==m.SetWorksheetRowIsAutoHeightCommand.id?{redos:[],undos:[]}:this.getUndoRedoParamsOfAutoHeight(t.params.ranges)})),this.disposeWithMe(i.interceptCommand({getMutations:t=>{var s,l;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=(l=e.getCurrentSelections())==null?void 0:l.map(c=>c.range);return r!=null&&r.length?this.getUndoRedoParamsOfAutoHeight(r):{redos:[],undos:[]}}}))}};exports.AutoHeightController=hh([a.OnLifecycle(a.LifecycleStages.Ready,exports.AutoHeightController),Sn(0,P.IRenderManagerService),Sn(1,k.Inject(k.Injector)),Sn(2,k.Inject(m.SheetInterceptorService)),Sn(3,k.Inject(m.SheetsSelectionsService)),Sn(4,k.Inject(a.IUniverInstanceService))],exports.AutoHeightController);function mh(n,i,e,t,o){const r=[],s=[];if(t.copyType===ct.CUT){const{undos:l,redos:c}=gh(n,i,o);r.push(...c),s.push(...l)}else{const{undos:l,redos:c}=Nl(i,e,o);r.push(...c),s.push(...l);const{undos:d,redos:u}=Ol(i,n,e,o);r.push(...u),s.push(...d);const{undos:h,redos:g}=Al(i,e,o,!0);r.push(...g),s.push(...h);const{undos:p,redos:f}=cr(i,e,o);r.push(...f),s.push(...p)}return{undos:s,redos:r}}function gh(n,i,e){let t=[],o=[];const{range:r,subUnitId:s,unitId:l}=n,{range:c,subUnitId:d}=i,u=c?wt(c):null,h=r?wt(r):null;if(h&&u){const g=e.get(a.IUniverInstanceService),p=e.get(m.SheetInterceptorService),f=g.getUniverSheetInstance(l),S=f==null?void 0:f.getSheetBySheetId(s),v=f==null?void 0:f.getSheetBySheetId(d);if(S&&v){const C=new a.ObjectMatrix,I=new a.ObjectMatrix,b=S.getCellMatrix(),T=v.getCellMatrix();a.Range.foreach(h,(z,Y)=>{C.setValue(z,Y,a.Tools.deepClone(b.getValue(z,Y))),I.setValue(z,Y,null)});const w=new a.ObjectMatrix;a.Range.foreach(u,(z,Y)=>{w.setValue(z,Y,a.Tools.deepClone(T.getValue(z,Y)))});const y=new a.ObjectMatrix;a.Range.foreach(h,(z,Y)=>{const F=a.cellToRange(z,Y),Z=a.Rectangle.getRelativeRange(F,h),K=a.Rectangle.getPositionRange(Z,u);y.setValue(K.startRow,K.startColumn,b.getValue(z,Y))});const M={from:{value:I.getMatrix(),subUnitId:s},to:{value:y.getMatrix(),subUnitId:d},unitId:l},A={from:{value:C.getMatrix(),subUnitId:s},to:{value:w.getMatrix(),subUnitId:d},unitId:l},N=p.onCommandExecute({id:m.MoveRangeCommand.id,params:{toRange:u,fromRange:h}}),x=S.getMergeData(),D=v.getMergeData(),H=x.filter(z=>a.Rectangle.intersects(z,h)),L=D.filter(z=>a.Rectangle.intersects(z,u)),W=H.map(z=>a.Rectangle.getRelativeRange(z,h)).map(z=>a.Rectangle.getPositionRange(z,u)),X=m.getAddMergeMutationRangeByType(W).filter(z=>!D.some(Y=>a.Rectangle.equals(z,Y))),q=[{id:m.RemoveWorksheetMergeMutation.id,params:{unitId:l,subUnitId:s,ranges:H}},{id:m.RemoveWorksheetMergeMutation.id,params:{unitId:l,subUnitId:s,ranges:L}},{id:m.AddWorksheetMergeMutation.id,params:{unitId:l,subUnitId:d,ranges:X}}],G=[{id:m.RemoveWorksheetMergeMutation.id,params:{unitId:l,subUnitId:d,ranges:X}},{id:m.AddWorksheetMergeMutation.id,params:{unitId:l,subUnitId:d,ranges:L}},{id:m.AddWorksheetMergeMutation.id,params:{unitId:l,subUnitId:s,ranges:H}}];t=[{id:m.MoveRangeMutation.id,params:M},...N.redos,...q,{id:m.SetSelectionsOperation.id,params:{unitId:l,subUnitId:d,selections:[{range:u}]}}],o=[{id:m.MoveRangeMutation.id,params:A},...N.undos,...G,{id:m.SetSelectionsOperation.id,params:{unitId:l,sheetId:s,selections:[{range:h}]}}]}}return{undos:o,redos:t}}function Ol(n,i,e,t){const{unitId:o,subUnitId:r,range:s}=n,l=[],c=[],{mapFunc:d}=en([s]),u=new a.ObjectMatrix;e.forValue((p,f,S)=>{var b;let v;if(!S.p&&S.v&&!i){const T=String(S.v),w=tt.parseDate(T)||tt.parseTime(T)||tt.parseNumber(T);w!=null&&w.v&&typeof w.v=="number"&&(v=w.v)}const{row:C,col:I}=d(p,f);(b=S.p)!=null&&b.body?u.setValue(C,I,a.Tools.deepClone({p:S.p,v:v!=null?v:S.v})):u.setValue(C,I,a.Tools.deepClone({v:v!=null?v:S.v}))});const h={unitId:o,subUnitId:r,cellValue:a.Tools.deepClone(u.getMatrix())};l.push({id:m.SetRangeValuesMutation.id,params:h});const g=m.SetRangeValuesUndoMutationFactory(t,h);return c.push({id:m.SetRangeValuesMutation.id,params:g}),{undos:c,redos:l}}function Al(n,i,e,t=!1){const o=[],r=[],{unitId:s,subUnitId:l,range:c}=n,d=new a.ObjectMatrix,{mapFunc:u}=en([c]);i.forValue((p,f,S)=>{var w,y;const v={s:Object.assign({},{...a.DEFAULT_STYLES,pd:P.DEFAULT_PADDING_DATA,bg:null},S.s)};t&&((w=S.p)!=null&&w.body)&&(v.p=S.p);const C=String(S.v),I=tt.parseDate(C)||tt.parseTime(C)||tt.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:T}=u(p,f);d.setValue(b,T,v)});const h={unitId:s,subUnitId:l,cellValue:a.Tools.deepClone(d.getMatrix())};o.push({id:m.SetRangeValuesMutation.id,params:h});const g=m.SetRangeValuesUndoMutationFactory(e,h);return r.push({id:m.SetRangeValuesMutation.id,params:g}),{undos:r,redos:o}}function Nl(n,i,e){const t=[],o=[],r=new a.ObjectMatrix,{unitId:s,subUnitId:l,range:c}=n,{mapFunc:d}=en([c]);if(i.forValue((u,h,g)=>{if(g.s){const{row:p,col:f}=d(u,h);r.setValue(p,f,{s:null})}}),r.getLength()>0){const u={subUnitId:l,unitId:s,cellValue:a.Tools.deepClone(r.getMatrix())};t.push({id:m.SetRangeValuesMutation.id,params:u});const h=m.SetRangeValuesUndoMutationFactory(e,u);o.push({id:m.SetRangeValuesMutation.id,params:h})}return{undos:o,redos:t}}function cr(n,i,e){const t=[],o=[],{unitId:r,subUnitId:s,range:l}=n,{startColumn:c,startRow:d,endColumn:u,endRow:h}=wt(l),g=[];i.forValue((I,b,T)=>{if(T.rowSpan&&T.rowSpan>1){const w=T.colSpan||1,y={startRow:d+I,endRow:d+I+T.rowSpan-1,startColumn:c+b,endColumn:c+b+w-1};g.push(y)}else if(T.colSpan&&T.colSpan>1){const w=T.rowSpan||1,y={startRow:d+I,endRow:d+I+w-1,startColumn:c+b,endColumn:c+b+T.colSpan-1};g.push(y)}});const f=e.get(a.IUniverInstanceService).getUniverSheetInstance(r),S=f==null?void 0:f.getSheetBySheetId(s);if(f&&S){const b=S.getMergeData().filter(y=>a.Rectangle.intersects({startRow:d,startColumn:c,endRow:h,endColumn:u},y)),T={unitId:r,subUnitId:s,ranges:b};t.push({id:m.RemoveWorksheetMergeMutation.id,params:T});const w=m.RemoveMergeUndoMutationFactory(e,T);o.push({id:m.AddWorksheetMergeMutation.id,params:w})}const v={unitId:r,subUnitId:s,ranges:g};g.length>0&&t.push({id:m.AddWorksheetMergeMutation.id,params:v});const C=m.AddMergeUndoMutationFactory(e,v);return g.length>0&&o.push({id:m.RemoveWorksheetMergeMutation.id,params:C}),{undos:o,redos:t}}function ph(n){let i=n.replace(/(\r\n|\n)/g,"\r");i.endsWith(`\r
18
- `)||(i+=`\r
19
- `);const e=[];for(let t=0;t<i.length;t++)i[t]==="\r"&&e.push({startIndex:t});return{dataStream:i,paragraphs:e,sectionBreaks:[{startIndex:i.indexOf(`
20
- `)}]}}var fh=Object.defineProperty,Sh=Object.getOwnPropertyDescriptor,vh=(n,i,e,t)=>{for(var o=t>1?void 0:t?Sh(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&fh(i,e,o),o},Ue=(n,i)=>(e,t)=>i(e,t,n);let On=class extends a.RxDisposable{constructor(n,i,e,t,o,r,s,l,c,d){var u;super(),this._injector=n,this._currentUniverSheet=i,this._renderManagerService=e,this._commandService=t,this._contextService=o,this._configService=r,this._sheetClipboardService=s,this._messageService=l,this._localService=c,this._textSelectionRenderManager=d,this._init(),(u=this._textSelectionRenderManager)==null||u.onPaste$.pipe(O.takeUntil(this.dispose$)).subscribe(h=>{var S,v;if(!re(this._contextService))return;h.event.preventDefault();const g=h.event,p=(S=g.clipboardData)==null?void 0:S.getData("text/html"),f=(v=g.clipboardData)==null?void 0:v.getData("text/plain");this._commandService.executeCommand(Eo.id,{htmlContent:p,textContent:f})})}_init(){[Br,Fr,on].forEach(i=>this.disposeWithMe(this._commandService.registerMultipleCommand(i))),[jr,Xr,Fo,zr,Eo].forEach(i=>this.disposeWithMe(this._commandService.registerCommand(i))),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._initCopyingHooks())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._initPastingHook()));const n=this._initSpecialPasteHooks().map(i=>this._sheetClipboardService.addClipboardHook(i));this.disposeWithMe({dispose:()=>n.forEach(i=>i.dispose())})}_initCopyingHooks(){const n=this;let i=null;return{id:Se.DEFAULT_COPY,isDefaultHook:!0,onBeforeCopy(e,t){i=n._getWorksheet(e,t)},onCopyCellContent(e,t){var s,l,c,d;const o=i.getCell(e,t);return(l=(s=o==null?void 0:o.p)==null?void 0:s.body)!=null&&l.paragraphs||(d=(c=o==null?void 0:o.p)==null?void 0:c.body)!=null&&d.textRuns?a.convertBodyToHtml(o.p.body):o?a.extractPureTextFromCell(o):""},onCopyCellStyle:(e,t,o,r)=>{const s={};(o||r)&&(s.rowspan=`${o||1}`,s.colspan=`${r||1}`);const l=i.getRange(e,t),c=i.getMergedCell(e,t),d=l.getTextStyle();let u="";if(d&&(u=a.handleStyleToString(d)),c){const h=c.endRow,g=c.endColumn,f=i.getRange(h,g).getTextStyle();if(f){const S=a.handleStyleToString(f);u?u+=S?`;${S}`:"":u=S}}return u&&(s.style=u),s},onCopyColumn(e){return{width:`${i.getColumnWidth(e)}`}},onCopyRow(e){return{style:`height: ${i.getRowHeight(e)}px;`}},onAfterCopy(){i=null},getFilteredOutRows(e){var l;const{startRow:t,endRow:o}=e,r=(l=n._currentUniverSheet.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET))==null?void 0:l.getActiveSheet(),s=[];if(!r)return s;for(let c=t;c<=o;c++)r.getRowFiltered(c)&&s.push(c);return s}}}_initPastingHook(){const n=this;let i=null,e=null,t=null;return{id:Se.DEFAULT_PASTE,isDefaultHook:!0,onBeforePaste({unitId:o,subUnitId:r,range:s}){t=n._getWorksheet(o,r),i=o,e=r;const l=n._configService.getConfig(m.MAX_CELL_PER_SHEET_KEY),c=s.rows[s.rows.length-1],d=s.cols[s.cols.length-1];return l&&c*d>l?(n._messageService.show({type:te.MessageType.Error,content:n._localService.t("clipboard.paste.exceedMaxCells")}),!1):!0},onPasteRows(o,r){const{range:s}=o,l=[],c=[],d=t.getMaxRows(),u=s.rows[s.rows.length-1]-d,h=r.length-u,g=t.getRowManager();if(u>0){const v={};r.slice(h).forEach((I,b)=>{const{style:T,height:w}=I||{};if(T){const y=T.split(";");let M=a.DEFAULT_WORKSHEET_ROW_HEIGHT;y.find(A=>{A=A.toLowerCase();const N=R.textTrim(A.substr(0,A.indexOf(":"))),x=R.textTrim(A.substr(A.indexOf(":")+1));return N==="height"?(x.endsWith("pt")?M=P.ptToPx(Number.parseFloat(x)):M=Number.parseFloat(x),!0):!1}),v[b]={h:M,hd:a.BooleanNumber.FALSE}}else w&&(v[b]={h:Number.parseFloat(w),hd:a.BooleanNumber.FALSE})});const C={unitId:i,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};l.push({id:m.InsertRowMutation.id,params:C})}const p={},f={};r.slice(0,h).forEach((v,C)=>{var T,w;const{style:I,height:b}=v;if(I){const y=I.split(";");let M=a.DEFAULT_WORKSHEET_ROW_HEIGHT;y.find(A=>{A=A.toLowerCase();const N=R.textTrim(A.substr(0,A.indexOf(":"))),x=R.textTrim(A.substr(A.indexOf(":")+1));return N==="height"?(x.endsWith("pt")?M=P.ptToPx(Number.parseFloat(x)):M=Number.parseFloat(x),!0):!1}),p[C+s.rows[0]]=M}else if(b){const y=g.getRow(s.rows[0]+C),M=Number.parseFloat(b);if(y){const{h:A=a.DEFAULT_WORKSHEET_ROW_HEIGHT,ah:N=0}=y,x=Math.max(A,N);M>x&&(p[C+s.rows[0]]=M,f[C+s.rows[0]]=x)}else p[C+s.rows[0]]=M,f[C+s.rows[0]]=(w=(T=g.getRow(s.rows[0]+C))==null?void 0:T.h)!=null?w:a.DEFAULT_WORKSHEET_ROW_HEIGHT}});const S={unitId:i,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:p};return l.push({id:m.SetWorksheetRowHeightMutation.id,params:S}),c.push({id:m.SetWorksheetRowHeightMutation.id,params:{...S,rowHeight:20}}),{redos:l,undos:c}},onPasteColumns(o,r,s){var f;const{range:l}=o,c=[],d=t.getMaxColumns(),u=l.cols[l.cols.length-1]-d,h=r.length-u,g=(f=n._configService.getConfig(a.DEFAULT_WORKSHEET_COLUMN_WIDTH_KEY))!=null?f:a.DEFAULT_WORKSHEET_COLUMN_WIDTH;if(u>0){const S={unitId:i,subUnitId:e,range:{startRow:l.rows[0],endRow:l.rows[l.rows.length-1],endColumn:l.cols[l.cols.length-1],startColumn:d},colInfo:r.slice(h).map(v=>({w:v.width?+v.width:g,hd:a.BooleanNumber.FALSE}))};c.push({id:m.InsertColMutation.id,params:S})}const p={unitId:i,subUnitId:e,ranges:[{startRow:l.rows[0],endRow:l.rows[l.rows.length-1],startColumn:l.cols[0],endColumn:Math.min(l.cols[l.cols.length-1],d)}],colWidth:r.slice(0,h).map(S=>S.width?+S.width:g)};return c.push({id:m.SetWorksheetColWidthMutation.id,params:p}),{redos:c,undos:[]}},onPastePlainText(o,r,s){return n._onPastePlainText(o,r,s)},onPasteCells(o,r,s,l){return n._onPasteCells(o,r,s,l)},onAfterPaste(o){t=null}}}_generateDocumentDataModelSnapshot(n){var s,l;const i=(s=this._renderManagerService.withCurrentTypeOfUnit(a.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:s.getCurrent();if(i==null)return null;const{skeleton:e}=i,t=(l=e.getBlankCellDocumentModel())==null?void 0:l.documentModel,r={...t==null?void 0:t.getSnapshot(),...n};return t==null||t.reset(r),t==null?void 0:t.getSnapshot()}_onPastePlainText(n,i,e){const{range:t,unitId:o,subUnitId:r}=n;let s;if(/\r|\n/.test(i)){const c=ph(i),d=this._generateDocumentDataModelSnapshot({body:c});s={[t.rows[0]]:{[t.cols[0]]:{p:d}}}}else a.isFormulaString(i)?s={[t.rows[0]]:{[t.cols[0]]:{f:i}}}:s={[t.rows[0]]:{[t.cols[0]]:{v:i}}};const l={unitId:o,subUnitId:r,cellValue:s};return{redos:[{id:m.SetRangeValuesMutation.id,params:l}],undos:[{id:m.SetRangeValuesMutation.id,params:m.SetRangeValuesUndoMutationFactory(this._injector,l)}]}}_onPasteCells(n,i,e,t){const o={get:this._injector.get.bind(this._injector)};return mh(n,i,e,t,o)}_initSpecialPasteHooks(){const n={get:this._injector.get.bind(this._injector)},i=this,e={id:Se.SPECIAL_PASTE_VALUE,specialPasteInfo:{label:"specialPaste.value"},onPasteCells:(s,l,c)=>Ol(l,s,c,n)},t={id:Se.SPECIAL_PASTE_FORMAT,specialPasteInfo:{label:"specialPaste.format"},onPasteCells(s,l,c){const d=[],u=[],{undos:h,redos:g}=Nl(l,c,n);d.push(...g),u.push(...h);const{undos:p,redos:f}=cr(l,c,n);d.push(...f),u.push(...p);const{undos:S,redos:v}=Al(l,c,n);return d.push(...v),u.push(...S),{undos:u,redos:d}}},o={id:Se.SPECIAL_PASTE_COL_WIDTH,specialPasteInfo:{label:"specialPaste.colWidth"},onPasteCells(){return{undos:[],redos:[]}},onPasteColumns(s,l,c){var T,w;const d=i._currentUniverSheet.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),u=d.getUnitId(),h=(T=d.getActiveSheet())==null?void 0:T.getSheetId();if(!u||!h)throw new Error("Cannot find unitId or subUnitId");const g=[],p=i._getWorksheet(u,h),{range:f}=s,S=p.getMaxColumns(),v=f.cols[f.cols.length-1]-S,C=l.length-v,I=(w=i._configService.getConfig(a.DEFAULT_WORKSHEET_COLUMN_WIDTH_KEY))!=null?w:a.DEFAULT_WORKSHEET_COLUMN_WIDTH,b={unitId:u,subUnitId:h,ranges:[{startRow:f.rows[0],endRow:Math.min(f.cols[f.cols.length-1],S),startColumn:f.cols[0],endColumn:f.cols[f.cols.length-1]}],colWidth:l.slice(0,C).map(y=>y.width?+y.width:I)};return g.push({id:m.SetWorksheetColWidthMutation.id,params:b}),g.push({id:m.SetWorksheetColWidthMutation.id,params:b}),{redos:g,undos:[]}}},r={id:Se.SPECIAL_PASTE_BESIDES_BORDER,specialPasteInfo:{label:"specialPaste.besidesBorder"},onPasteCells(s,l,c,d){i._currentUniverSheet.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);const u=[],h=[],{range:g,unitId:p,subUnitId:f}=l,S=new a.ObjectMatrix;c.forValue((T,w,y)=>{const M=y.s;typeof M=="object"&&S.setValue(g.rows[T],g.cols[w],{s:{...M,bd:void 0},v:y.v})});const v={unitId:p,subUnitId:f,cellValue:S.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(l,c,n);return h.push(...I),u.push(...b),{redos:u,undos:h}}};return[e,t,o,r]}_getWorksheet(n,i){var t;const e=(t=this._currentUniverSheet.getUniverSheetInstance(n))==null?void 0:t.getSheetBySheetId(i);if(!e)throw new Error(`[SheetClipboardController]: cannot find a worksheet with unitId ${n} and subUnitId ${i}.`);return e}};On=vh([a.OnLifecycle(a.LifecycleStages.Steady,On),Ue(0,k.Inject(k.Injector)),Ue(1,a.IUniverInstanceService),Ue(2,P.IRenderManagerService),Ue(3,a.ICommandService),Ue(4,a.IContextService),Ue(5,a.IConfigService),Ue(6,ot),Ue(7,R.IMessageService),Ue(8,k.Inject(a.LocaleService)),Ue(9,k.Optional(P.ITextSelectionRenderManager))],On);var Ch=Object.defineProperty,_h=Object.getOwnPropertyDescriptor,Ih=(n,i,e,t)=>{for(var o=t>1?void 0:t?_h(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&Ch(i,e,o),o},rt=(n,i)=>(e,t)=>i(e,t,n);exports.FormulaEditorController=class extends a.RxDisposable{constructor(e,t,o,r,s,l,c,d){super();E(this,"_loadedMap",new WeakSet);E(this,"_scheduledCallback",-1);this._univerInstanceService=e,this._renderManagerService=t,this._editorBridgeService=o,this._commandService=r,this._contextService=s,this._formulaEditorManagerService=l,this._undoRedoService=c,this._textSelectionManagerService=d,this._initialize()}_initialize(){this._syncFormulaEditorContent(),this._commandExecutedListener(),this._syncEditorSize(),this._listenFxBtnClick(),this._listenFoldBtnClick(),this._renderManagerService.currentRender$.pipe(O.takeUntil(this.dispose$)).subscribe(e=>{this._create(e)}),this._create(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),this._textSelectionManagerService.textSelection$.pipe(O.takeUntil(this.dispose$)).subscribe(e=>{if(e==null)return;const{unitId:t}=e;t!==a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&(this._contextService.setContextValue(a.FOCUSING_FORMULA_EDITOR,!1),this._undoRedoService.clearUndoRedo(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))})}_create(e){if(e!==a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)return;const t=this._renderManagerService.getRenderById(e);if(t==null)return;const{mainComponent:o}=t;o!=null&&(this._loadedMap.has(o)||(this._initialMain(e),this._loadedMap.add(o)))}_listenFxBtnClick(){this._formulaEditorManagerService.fxBtnClick$.pipe(O.takeUntil(this.dispose$)).subscribe(()=>{var t;if(this._contextService.getContextValue(a.FOCUSING_EDITOR_BUT_HIDDEN)&&!this._contextService.getContextValue(a.EDITOR_ACTIVATED)){this._univerInstanceService.setCurrentUnitForType(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),this._contextService.setContextValue(a.FOCUSING_FORMULA_EDITOR,!0);const o=this._univerInstanceService.getUniverDocInstance(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);this._editorBridgeService.isVisible().visible===!1&&this._editorBridgeService.changeVisible({visible:!0,eventType:P.DeviceInputEventType.PointerDown});const s=(t=o==null?void 0:o.getBody())==null?void 0:t.dataStream;if(s==null)return;let l=s.startsWith("=")?s:`=${s}`;l=l.replace(/\r\n$/,"");const c=[{startOffset:l.length,endOffset:l.length}],d={unitId:a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,body:{dataStream:l},segmentId:""};this._commandService.executeCommand(oe.CoverContentCommand.id,d),this._textSelectionManagerService.replaceTextRanges(c)}})}_listenFoldBtnClick(){this._formulaEditorManagerService.foldBtnStatus$.pipe(O.takeUntil(this.dispose$)).subscribe(()=>{this._textSelectionManagerService.refreshSelection()})}_initialMain(e){const t=this._renderManagerService.getRenderById(e);if(t==null)return;const{mainComponent:o}=t;o!=null&&this.disposeWithMe(a.toDisposable(o.onPointerDown$.subscribeEvent(()=>{this._editorBridgeService.isVisible().visible===!1&&this._editorBridgeService.changeVisible({visible:!0,eventType:P.DeviceInputEventType.Dblclick}),this._contextService.setContextValue(a.FOCUSING_FORMULA_EDITOR,!0),this._undoRedoService.clearUndoRedo(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)})))}_syncEditorSize(){this._formulaEditorManagerService.position$.pipe(O.takeUntil(this.dispose$)).subscribe(e=>{if(!e)return this._clearScheduledCallback();const t=Mr(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,this._renderManagerService),o=this._univerInstanceService.getUniverDocInstance(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);if(t==null||o==null)return this._clearScheduledCallback();const{width:r,height:s}=e;if(r===0||s===0)return this._clearScheduledCallback();const{engine:l}=t;o.updateDocumentDataPageSize(r),this._autoScroll(),this._scheduledCallback=requestIdleCallback(()=>l.resizeBySize(r,s))})}_clearScheduledCallback(){this._scheduledCallback!==-1&&cancelIdleCallback(this._scheduledCallback),this._scheduledCallback=-1}_syncFormulaEditorContent(){this._editorBridgeService.currentEditCellState$.pipe(O.takeUntil(this.dispose$)).subscribe(e=>{e==null||this._editorBridgeService.isForceKeepVisible()||this._editorSyncHandler(e)}),this._editorBridgeService.visible$.pipe(O.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 l;const t=(l=e.documentLayoutObject.documentModel)==null?void 0:l.getBody();let o=t==null?void 0:t.dataStream,r=t==null?void 0:t.paragraphs,s=t==null?void 0:t.textRuns;o==null||r==null||(e.isInArrayFormulaRange===!0&&this._editorBridgeService.isVisible().eventType===P.DeviceInputEventType.Dblclick&&(o=`\r
21
- `,r=[{startIndex:0}],s=[]),this._syncContentAndRender(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,o,r,s),this._autoScroll())}_commandExecutedListener(){const e=[a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY];this.disposeWithMe(this._commandService.onCommandExecuted(o=>{var c,d,u;if(o.id!==oe.RichTextEditingMutation.id)return;const r=o.params,{unitId:s,actions:l}=r;if(e.includes(s)){const h=this._univerInstanceService.getUniverDocInstance(s),g=(c=h==null?void 0:h.getBody())==null?void 0:c.dataStream,p=(d=h==null?void 0:h.getBody())==null?void 0:d.paragraphs,f=(u=h==null?void 0:h.getBody())==null?void 0:u.textRuns,S=s===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY?a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY:a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY;if(g==null||p==null)return;S===a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY?(this._checkAndSetRenderStyleConfig(h),this._syncActionsAndRender(S,l)):this._syncContentAndRender(S,g,p,f),this._autoScroll()}})),this.disposeWithMe(this._commandService.onCommandExecuted(o=>{var l,c,d;if(o.id!==R.SetEditorResizeOperation.id)return;const r=o.params,{unitId:s}=r;if(e.includes(s)){const u=this._univerInstanceService.getUniverDocInstance(s),h=(l=u==null?void 0:u.getBody())==null?void 0:l.dataStream,g=(c=u==null?void 0:u.getBody())==null?void 0:c.paragraphs,p=(d=u==null?void 0:u.getBody())==null?void 0:d.textRuns,f=s===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY?a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY:a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY;if(h==null||g==null)return;this._syncContentAndRender(f,h,g,p),this._autoScroll()}}));const t=[m.SetRangeValuesMutation.id,m.MoveRangeMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted(o=>{var r,s,l,c,d;if(t.includes(o.id)){const u=this._editorBridgeService.getLatestEditCellState();if(u==null)return;let h=!1;const{row:g,column:p}=u;if(o.id===m.SetRangeValuesMutation.id&&o.params?(s=(r=o.params.cellValue)==null?void 0:r[g])!=null&&s[p]&&(h=!0):o.id===m.MoveRangeMutation.id&&o.params&&(c=(l=o.params.to.value)==null?void 0:l[g])!=null&&c[p]&&(h=!0),h){const f=(d=u.documentLayoutObject.documentModel)==null?void 0:d.getBody();if(f==null)return;const{dataStream:S,paragraphs:v=[]}=f;this._syncContentAndRender(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,S,v),this._autoScroll()}}}))}_syncActionsAndRender(e,t){var d;const o=[a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY],r=this._renderManagerService.getRenderById(e);if(r==null)return;const s=r.with(oe.DocSkeletonManagerService).getSkeleton(),l=this._univerInstanceService.getUniverDocInstance(e),c=this._getEditorViewModel(e);l==null||c==null||(l.apply(t),this._checkAndSetRenderStyleConfig(l),c.reset(l),s.calculate(),o.includes(e)&&((d=r.mainComponent)==null||d.makeDirty()))}_syncContentAndRender(e,t,o,r=[]){var h,g;const s=[a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY],l=(h=this._renderManagerService.getRenderById(e))==null?void 0:h.with(oe.DocSkeletonManagerService).getSkeleton(),c=this._univerInstanceService.getUniverDocInstance(e),d=this._getEditorViewModel(e);if(c==null||d==null||l==null)return;c.getBody().dataStream=t,c.getBody().paragraphs=this._clearParagraph(o),r.length>0&&(c.getBody().textRuns=r),this._checkAndSetRenderStyleConfig(c),d.reset(c);const u=this._renderManagerService.getRenderById(e);u!=null&&(l.calculate(),s.includes(e)&&((g=u.mainComponent)==null||g.makeDirty()))}_checkAndSetRenderStyleConfig(e){var s;const t=e.getSnapshot(),{body:o}=t;if(t.id!==a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)return;let r=t.documentStyle.renderConfig;r==null&&(r={},t.documentStyle.renderConfig=r),((s=o==null?void 0:o.dataStream)!=null?s:"").startsWith("=")?r.isRenderStyle=a.BooleanNumber.TRUE:r.isRenderStyle=a.BooleanNumber.FALSE}_clearParagraph(e){const t=a.Tools.deepClone(e);for(const o of t)o.paragraphStyle&&(o.paragraphStyle.horizontalAlign=a.HorizontalAlign.UNSPECIFIED);return t}_autoScroll(){var S,v;const e=this._formulaEditorManagerService.getPosition(),t=(S=this._renderManagerService.getRenderById(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))==null?void 0:S.with(oe.DocSkeletonManagerService).getSkeleton(),o=this._renderManagerService.getRenderById(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),r=this._univerInstanceService.getUniverDocInstance(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);if(t==null||e==null||o==null||r==null)return;const{marginTop:s=0,marginBottom:l=0}=r.getSnapshot().documentStyle,{scene:c,mainComponent:d}=o;let{actualHeight:u}=t.getActualSize();u+=s+l;const{width:h,height:g}=e,p=c.getViewport(oe.VIEWPORT_KEY.VIEW_MAIN);let f=p==null?void 0:p.getScrollBar();c.transformByState({width:h,height:u}),d==null||d.resize(h,u),u>g?f==null?p&&new P.ScrollBar(p,{enableHorizontal:!1,barSize:8}):p==null||p.resetCanvasSizeAndUpdateScrollBar():(f=null,p==null||p.scrollTo({x:0,y:0}),(v=p==null?void 0:p.getScrollBar())==null||v.dispose())}_getEditorViewModel(e){var t;return(t=this._renderManagerService.getRenderById(e))==null?void 0:t.with(oe.DocSkeletonManagerService).getViewModel()}};exports.FormulaEditorController=Ih([a.OnLifecycle(a.LifecycleStages.Rendered,exports.FormulaEditorController),rt(0,a.IUniverInstanceService),rt(1,P.IRenderManagerService),rt(2,qe),rt(3,a.ICommandService),rt(4,a.IContextService),rt(5,ti),rt(6,a.IUndoRedoService),rt(7,k.Inject(oe.TextSelectionManagerService))],exports.FormulaEditorController);const bh="36",Rh="univer-sheet-container",xl={sheetFooterBarHeight:bh,sheetContainer:Rh},Dl=[R.KeyCode.ARROW_DOWN,R.KeyCode.ARROW_UP,R.KeyCode.ARROW_LEFT,R.KeyCode.ARROW_RIGHT],Th=[R.KeyCode.ENTER,R.KeyCode.TAB,...Dl];function kl(){const n=[];for(const i of Dl)n.push({id:Gt.id,binding:i,preconditions:e=>Fn(e),staticParameters:{visible:!1,eventType:P.DeviceInputEventType.Keyboard,keycode:i,isShift:!1}}),n.push({id:Gt.id,binding:i|R.MetaKeys.SHIFT,preconditions:e=>Fn(e),staticParameters:{visible:!1,eventType:P.DeviceInputEventType.Keyboard,keycode:i,isShift:!0}});return n}const Hl={id:zn.id,binding:R.KeyCode.F2,description:"shortcut.sheet.start-editing",group:"4_sheet-edit",preconditions:re,staticParameters:{visible:!0,eventType:P.DeviceInputEventType.Keyboard,keycode:R.KeyCode.F2}},Vl={id:Pe.id,binding:R.KeyCode.ENTER,description:"shortcut.sheet.toggle-editing",group:"4_sheet-edit",preconditions:n=>Fn(n),staticParameters:{visible:!1,eventType:P.DeviceInputEventType.Keyboard,keycode:R.KeyCode.ENTER}},Wl={id:Pe.id,binding:R.KeyCode.TAB,preconditions:n=>Fn(n),staticParameters:{visible:!1,eventType:P.DeviceInputEventType.Keyboard,keycode:R.KeyCode.TAB}},Ll={id:Pe.id,binding:R.KeyCode.ESC,description:"shortcut.sheet.abort-editing",group:"4_sheet-edit",preconditions:n=>Fn(n),staticParameters:{visible:!1,eventType:P.DeviceInputEventType.Keyboard,keycode:R.KeyCode.ESC}},Ul={id:oe.BreakLineCommand.id,description:"shortcut.sheet.break-line",group:"4_sheet-edit",preconditions:n=>Pd(n),binding:R.KeyCode.ENTER|R.MetaKeys.ALT},Bl={id:oe.DeleteLeftCommand.id,preconditions:n=>yd(n)||bl(n),binding:R.KeyCode.BACKSPACE},Fl={id:Pe.id,description:"shortcut.sheet.delete-and-start-editing",group:"4_sheet-edit",preconditions:n=>re(n)&&!bl(n),binding:R.KeyCode.BACKSPACE,staticParameters:{visible:!0,eventType:P.DeviceInputEventType.Keyboard,keycode:R.KeyCode.BACKSPACE}};function Eh(n){return n.startsWith("'")}function wh(n){return n.slice(1)}var Ph=Object.defineProperty,yh=Object.getOwnPropertyDescriptor,Mh=(n,i,e,t)=>{for(var o=t>1?void 0:t?yh(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&Ph(i,e,o),o},Me=(n,i)=>(e,t)=>i(e,t,n);const Ls=-1e3,Us=5,Oh=2;let dr=class extends a.Disposable{constructor(i,e,t,o,r,s,l,c,d,u,h,g,p,f){super();E(this,"_cursorChange",0);this._context=i,this._undoRedoService=e,this._contextService=t,this._univerInstanceService=o,this._renderManagerService=r,this._editorBridgeService=s,this._cellEditorManagerService=l,this._textSelectionRenderManager=c,this._selectionManagerService=d,this._lexerTreeBuilder=u,this._textSelectionManagerService=h,this._commandService=g,this._localService=p,this._editorService=f,this._init()}_init(){this._initialEditFocusListener(),this._initialKeyboardListener(),this._initialCursorSync(),this._listenEditorFocus(),this._commandExecutedListener(),this._initEditorVisibilityListener(),this._cursorStateListener()}_initEditorVisibilityListener(){this.disposeWithMe(this._editorBridgeService.visible$.pipe(O.distinctUntilChanged((i,e)=>i.visible===e.visible)).subscribe(i=>{i.visible?this._handleEditorVisible(i):this._handleEditorInvisible(i)}))}_listenEditorFocus(){const i=this._getEditorObject();i!=null&&this.disposeWithMe(a.toDisposable(i.document.onPointerDown$.subscribeEvent(()=>{if(this._editorBridgeService.isVisible()){const e=this._editorBridgeService.getEditCellState(),t=this._editorBridgeService.getCurrentEditorId();if(e==null||t==null||!this._editorService.isSheetEditor(t))return;const o=this._getEditorSkeleton(t);if(!o)return;const{position:r,documentLayoutObject:s,canvasOffset:l,scaleX:c,scaleY:d}=e;this._fitTextSize(r,l,o,s,c,d)}})))}_getEditorSkeleton(i){var e;return(e=this._renderManagerService.getRenderById(i))==null?void 0:e.with(oe.DocSkeletonManagerService).getSkeleton()}_getEditorViewModel(i){var e;return(e=this._renderManagerService.getRenderById(i))==null?void 0:e.with(oe.DocSkeletonManagerService).getViewModel()}_initialCursorSync(){this.disposeWithMe(this._cellEditorManagerService.focus$.pipe(O.filter(i=>!!i)).subscribe(()=>{this._textSelectionRenderManager.sync()}))}_initialEditFocusListener(){this.disposeWithMe(this._editorBridgeService.currentEditCellState$.subscribe(i=>{if(i==null||this._editorBridgeService.isForceKeepVisible())return;const{position:e,documentLayoutObject:t,scaleX:o,editorUnitId:r}=i;if(this._getEditorObject()==null||this._contextService.getContextValue(a.FOCUSING_EDITOR_STANDALONE)===!0||this._contextService.getContextValue(a.FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE)===!0)return;const{startX:l,endX:c}=e,{textRotation:d,wrapStrategy:u,documentModel:h}=t,{vertexAngle:g}=P.convertTextRotation(d);h.updateDocumentId(r),u===a.WrapStrategy.WRAP&&g===0&&h.updateDocumentDataPageSize((c-l)/o),this._univerInstanceService.changeDoc(r,h),this._contextService.setContextValue(a.FOCUSING_EDITOR_BUT_HIDDEN,!0),this._textSelectionManagerService.replaceTextRanges([{startOffset:0,endOffset:0}]),this._textSelectionRenderManager.activate(Ls,Ls)}))}_fitTextSize(i,e,t,o,r=1,s=1){const{startX:l,startY:c,endX:d,endY:u}=i,h=o.documentModel;if(h==null)return;const{actualWidth:g,actualHeight:p}=this._predictingSize(i,e,t,o,r,s),{verticalAlign:f,paddingData:S,fill:v}=o;let C=d-l,I=u-c;if(C<g&&(C=g),I<p)I=p,h.updateDocumentDataMargin(S);else{let b=0;f===a.VerticalAlign.MIDDLE?b=(I-p)/2/s:f===a.VerticalAlign.TOP?b=S.t||0:b=(I-p)/s-(S.b||0),b=b<(S.t||0)?S.t||0:b,h.updateDocumentDataMargin({t:b})}t.calculate(),this._editAreaProcessing(C,I,i,e,v,r,s)}_predictingSize(i,e,t,o,r=1,s=1){const{startX:l,endX:c}=i,{textRotation:d,wrapStrategy:u}=o,h=o.documentModel,{vertexAngle:g}=P.convertTextRotation(d),p=document.body.clientWidth;if(u===a.WrapStrategy.WRAP&&g===0){const{actualWidth:v,actualHeight:C}=t.getActualSize();return{actualWidth:v*r,actualHeight:C*s}}h==null||h.updateDocumentDataPageSize((p-l-e.left)/r),t.calculate();const f=t.getActualSize();let S=c-l;return S<f.actualWidth*r+Us*r&&(S=f.actualWidth*r+Us*r),h==null||h.updateDocumentDataPageSize(S/r),h==null||h.updateDocumentRenderConfig({horizontalAlign:a.HorizontalAlign.UNSPECIFIED,cellValueType:void 0}),{actualWidth:S,actualHeight:f.actualHeight*s}}_editAreaProcessing(i,e,t,o,r,s=1,l=1){var w;const c=this._getEditorObject();if(c==null)return;let{startX:d,startY:u}=t;const{document:h,scene:g,engine:p}=c,f=g.getViewport(oe.VIEWPORT_KEY.VIEW_MAIN),S=document.body.clientHeight-u-Number.parseFloat(xl.sheetFooterBarHeight)-o.top-Oh*2,v=document.body.clientWidth-d-o.left;let C=e,I=f==null?void 0:f.getScrollBar();C>S?(C=S,I==null?f&&new P.ScrollBar(f,{enableHorizontal:!1,barSize:8}):f==null||f.resetCanvasSizeAndUpdateScrollBar()):(I=null,(w=f==null?void 0:f.getScrollBar())==null||w.dispose()),i+=(I==null?void 0:I.barSize)||0,i>v&&(i=v),d-=P.FIX_ONE_PIXEL_BLUR_OFFSET,u-=P.FIX_ONE_PIXEL_BLUR_OFFSET,this._addBackground(g,i/s,e/l,r);const{scaleX:b,scaleY:T}=g.getPrecisionScale();g.transformByState({width:i/s,height:e/l,scaleX:s,scaleY:l}),h.resize(i/s,e/l),requestIdleCallback(()=>{p.resizeBySize(P.fixLineWidthByScale(i,b),P.fixLineWidthByScale(C,T))}),this._cellEditorManagerService.setState({startX:d,startY:u,endX:i+d,endY:C+u,show:!0})}_addBackground(i,e,t,o){const r="_backgroundRectHelperColor_",s=i.getObject(r);s==null&&o==null||(s==null?i.addObjects([new P.Rect(r,{width:e,height:t,fill:o,evented:!1})],oe.DOCS_COMPONENT_MAIN_LAYER_INDEX):o==null?s.dispose():(s.setProps({fill:o}),s.transformByState({width:e,height:t})))}_handleEditorVisible(i){var b,T;const{eventType:e,keycode:t}=i;this._cursorChange=e===P.DeviceInputEventType.PointerDown?2:1;const o=this._editorBridgeService.getEditCellState();if(o==null)return;const{position:r,documentLayoutObject:s,canvasOffset:l,scaleX:c,scaleY:d,editorUnitId:u,unitId:h,sheetId:g,isInArrayFormulaRange:p=!1}=o,f=this._getEditorObject();if(f==null)return;this._setOpenForCurrent(h,g);const{document:S,scene:v}=f;this._contextService.setContextValue(a.EDITOR_ACTIVATED,!0);const{documentModel:C}=s,I=this._getEditorSkeleton(u);if(!(!I||!C)){if(this._fitTextSize(r,l,I,s,c,d),e===P.DeviceInputEventType.Keyboard||e===P.DeviceInputEventType.Dblclick&&p){const w=a.Tools.deepClone(C.getSnapshot()),y=this._getEditorViewModel(u);if(y==null)return;this._resetBodyStyle(w.body,!!p),C.reset(w),y.reset(C),S.makeDirty(),(t===R.KeyCode.BACKSPACE||e===P.DeviceInputEventType.Dblclick)&&(I.calculate(),this._editorBridgeService.changeEditorDirty(!0)),this._textSelectionManagerService.replaceTextRanges([{startOffset:0,endOffset:0}])}else if(e===P.DeviceInputEventType.Dblclick){const w=C.getBody().dataStream.length-2||0;(b=v.getViewport(oe.VIEWPORT_KEY.VIEW_MAIN))==null||b.scrollTo({y:Number.POSITIVE_INFINITY}),this._textSelectionManagerService.replaceTextRanges([{startOffset:w,endOffset:w}])}(T=this._renderManagerService.getRenderById(h))==null||T.scene.resetCursor()}}_resetBodyStyle(i,e=!1){i.dataStream=a.DEFAULT_EMPTY_DOCUMENT_VALUE,i.textRuns!=null&&(i.textRuns.length===1&&!e?(i.textRuns[0].st=0,i.textRuns[0].ed=1):i.textRuns=void 0),i.paragraphs!=null&&(i.paragraphs.length===1?i.paragraphs[0].startIndex=0:i.paragraphs=[{startIndex:0}]),i.sectionBreaks!=null&&(i.sectionBreaks=void 0),i.tables!=null&&(i.tables=void 0),i.customRanges!=null&&(i.customRanges=void 0),i.customBlocks!=null&&(i.customBlocks=void 0)}_initialKeyboardListener(){this.disposeWithMe(this._textSelectionRenderManager.onInputBefore$.subscribe(i=>{var r;const e=this._contextService.getContextValue(a.FOCUSING_FORMULA_EDITOR),t=this._contextService.getContextValue(a.FOCUSING_SHEET),o=(r=this._univerInstanceService.getCurrentUniverDocInstance())==null?void 0:r.getUnitId();o&&t&&!e&&this._editorService.isSheetEditor(o)&&this._showEditorByKeyboard(i)}))}_showEditorByKeyboard(i){if(i==null)return;const e=i.event;this._commandService.executeCommand(Pe.id,{visible:!0,eventType:P.DeviceInputEventType.Keyboard,keycode:e.which})}_commandExecutedListener(){const i=[oe.RichTextEditingMutation.id,R.SetEditorResizeOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(i.includes(t.id)){const o=t.params,{unitId:r}=o;if(!this._editorService.isSheetEditor(r))return;const s=this._editorBridgeService.getCurrentEditorId();if(s==null)return;const l=this._getEditorSkeleton(s);if(l==null)return;this._editorBridgeService.changeEditorDirty(!0);const c=this._editorBridgeService.getEditCellState();if(c==null)return;const{position:d,documentLayoutObject:u,canvasOffset:h,scaleX:g,scaleY:p}=c;this._fitTextSize(d,h,l,u,g,p)}})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{t.id===m.ClearSelectionFormatCommand.id&&this._editorBridgeService.refreshEditCellState()}));const e=[Gt.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(e.includes(t.id)){const o=t.params,{keycode:r,isShift:s}=o;if(r!=null&&(this._cursorChange===2||this._contextService.getContextValue(a.FOCUSING_FORMULA_EDITOR))){this._moveInEditor(r,s);return}this._editorBridgeService.changeVisible(o)}t.id===zn.id&&(this._cursorChange=2)}))}_setOpenForCurrent(i,e){const t=this._editorService.getAllEditor();for(const[o,r]of t)r.isSheetEditor()&&(r.setOpenForSheetUnitId(i),r.setOpenForSheetSubUnitId(e))}_getEditorObject(){return Mr(this._editorBridgeService.getCurrentEditorId(),this._renderManagerService)}async _handleEditorInvisible(i){const{keycode:e}=i;this._setOpenForCurrent(null,null),this._cursorChange=0,this._exitInput(i);const t=this._editorBridgeService.getEditCellState();if(t==null)return;const{unitId:o,sheetId:r,row:s,column:l,documentLayoutObject:c}=t;if(this._editorBridgeService.getEditorDirty()===!1){this._moveCursor(e);return}const u=this._univerInstanceService.getUniverSheetInstance(o),h=u==null?void 0:u.getActiveSheet();if(h==null)return;const g=u.getUnitId(),p=h.getSheetId();if(e===R.KeyCode.ESC){const I=this._selectionManagerService.getCurrentSelections();I&&this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:g,subUnitId:p,selections:I});return}const f=Ah(h.getCellRaw(s,l)||{},c,this._lexerTreeBuilder);if(f==null){this._moveCursor(e);return}const S={subUnitId:r,unitId:o,workbook:u,worksheet:h,row:s,col:l};g===o&&r!==p&&this._editorBridgeService.isForceKeepVisible()&&await this._commandService.executeCommand(m.SetWorksheetActivateCommand.id,{subUnitId:r,unitId:o});const v=this._editorBridgeService.interceptor.fetchThroughInterceptors(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT)(f,S),C=await this._editorBridgeService.interceptor.fetchThroughInterceptors(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT_ASYNC)(Promise.resolve(v),S);this._commandService.executeCommand(m.SetRangeValuesCommand.id,{subUnitId:r,unitId:o,range:{startRow:s,startColumn:l,endRow:s,endColumn:l},value:C}),this._moveCursor(e)}_exitInput(i){this._contextService.setContextValue(a.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(a.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(a.FOCUSING_EDITOR_BUT_HIDDEN,!1),this._contextService.setContextValue(a.FOCUSING_FORMULA_EDITOR,!1),this._cellEditorManagerService.setState({show:i.visible});const e=this._editorBridgeService.getCurrentEditorId();e==null||!this._editorService.isSheetEditor(e)||(this._undoRedoService.clearUndoRedo(e),this._undoRedoService.clearUndoRedo(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))}_moveCursor(i){if(i==null||!Th.includes(i))return;let e=a.Direction.LEFT;switch(i){case R.KeyCode.ENTER:e=a.Direction.DOWN;break;case R.KeyCode.TAB:e=a.Direction.RIGHT;break;case R.KeyCode.ARROW_DOWN:e=a.Direction.DOWN;break;case R.KeyCode.ARROW_UP:e=a.Direction.UP;break;case R.KeyCode.ARROW_LEFT:e=a.Direction.LEFT;break;case R.KeyCode.ARROW_RIGHT:e=a.Direction.RIGHT;break}i===R.KeyCode.ENTER||i===R.KeyCode.TAB?this._commandService.executeCommand(Ge.id,{keycode:i,direction:e}):this._commandService.executeCommand(ye.id,{direction:e})}_cursorStateListener(){const i=this._getEditorObject();if(i==null)return;const{document:e}=i;this.disposeWithMe(a.toDisposable(e.onPointerDown$.subscribeEvent(()=>{this._cursorChange===1&&(this._cursorChange=2)})))}_moveInEditor(i,e){let t=a.Direction.LEFT;i===R.KeyCode.ARROW_DOWN?t=a.Direction.DOWN:i===R.KeyCode.ARROW_UP?t=a.Direction.UP:i===R.KeyCode.ARROW_RIGHT&&(t=a.Direction.RIGHT),e?this._commandService.executeCommand(oe.MoveSelectionOperation.id,{direction:t}):this._commandService.executeCommand(oe.MoveCursorOperation.id,{direction:t})}};dr=Mh([Me(1,a.IUndoRedoService),Me(2,a.IContextService),Me(3,a.IUniverInstanceService),Me(4,P.IRenderManagerService),Me(5,qe),Me(6,ei),Me(7,P.ITextSelectionRenderManager),Me(8,k.Inject(m.SheetsSelectionsService)),Me(9,k.Inject($.LexerTreeBuilder)),Me(10,k.Inject(oe.TextSelectionManagerService)),Me(11,a.ICommandService),Me(12,k.Inject(a.LocaleService)),Me(13,R.IEditorService)],dr);function Ah(n,i,e){n=a.Tools.deepClone(n);const{documentModel:t}=i;if(t==null)return null;const o=t.getSnapshot(),{body:r}=o;if(r==null)return null;n.t=void 0;const s=r.dataStream;let c=s.substring(s.length-2,s.length)===a.DEFAULT_EMPTY_DOCUMENT_VALUE?s.substring(0,s.length-2):s;if(a.isFormulaString(c)){if(n.f===c)return null;const d=e.checkIfAddBracket(c);for(let u=0;u<d;u++)c+=$.matchToken.CLOSE_BRACKET;n.f=c,n.v=null,n.p=null}else if(Eh(c)){const d=wh(c);n.v=d,n.f=null,n.si=null,n.p=null,n.t=a.CellValueType.FORCE_STRING}else if(Nh(r))r.dataStream===`\r
22
- `?(n.v="",n.f=null,n.si=null,n.p=null):(n.p=o,n.v=null,n.f=null,n.si=null);else{if((c===n.v||c===""&&n.v==null)&&n.p==null)return null;n.v=c,n.f=null,n.si=null,n.p=null}return n}function Nh(n){const{textRuns:i=[],paragraphs:e=[],customBlocks:t=[]}=n;return i.some(o=>o.ts&&!a.Tools.isEmptyObject(o.ts))||e.some(o=>o.bullet)||e.length>=2||t.length>0}var xh=Object.defineProperty,Dh=Object.getOwnPropertyDescriptor,kh=(n,i,e,t)=>{for(var o=t>1?void 0:t?Dh(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&xh(i,e,o),o},Hh=(n,i)=>(e,t)=>i(e,t,n);let Po=class extends a.Disposable{constructor(n,i){super(),this._context=n,this._formatPainterService=i,this._initialize()}_initialize(){this._bindFormatPainterStatus()}_bindFormatPainterStatus(){this.disposeWithMe(a.toDisposable(this._formatPainterService.status$.subscribe(n=>{const i=this._context.scene;i&&(n!==He.OFF?i.setDefaultCursor(P.CURSOR_TYPE.CELL):i.setDefaultCursor(P.CURSOR_TYPE.DEFAULT))})))}};Po=kh([Hh(1,it)],Po);var Vh=Object.defineProperty,Wh=Object.getOwnPropertyDescriptor,Lh=(n,i,e,t)=>{for(var o=t>1?void 0:t?Wh(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&Vh(i,e,o),o},ft=(n,i)=>(e,t)=>i(e,t,n);const Uh="__SpreadsheetFreezeRowMainName__",Bh="__SpreadsheetFreezeRowHeaderName__",Fh="__SpreadsheetFreezeColumnMainName__",jh="__SpreadsheetFreezeColumnHeaderName__",ki=2,Xh=.01,vn=a.createInterceptorKey("freezePermissionCheck");exports.HeaderFreezeRenderController=class extends a.Disposable{constructor(e,t,o,r,s,l,c,d){super();E(this,"_rowFreezeHeaderRect");E(this,"_rowFreezeMainRect");E(this,"_columnFreezeHeaderRect");E(this,"_columnFreezeMainRect");E(this,"_freezeDownSubs");E(this,"_freezePointerEnterSubs");E(this,"_freezePointerLeaveSubs");E(this,"_scenePointerMoveSub");E(this,"_scenePointerUpSub");E(this,"_changeToRow",-1);E(this,"_changeToColumn",-1);E(this,"_changeToOffsetX",0);E(this,"_changeToOffsetY",0);E(this,"_activeViewport",null);E(this,"_freezeNormalHeaderColor","");E(this,"_freezeNormalMainColor","");E(this,"_freezeActiveColor","");E(this,"_freezeHoverColor","");E(this,"_lastFreeze");E(this,"interceptor",new a.InterceptorManager({FREEZE_PERMISSION_CHECK:vn}));this._context=e,this._sheetSkeletonManagerService=t,this._commandService=o,this._selectionManagerService=r,this._scrollManagerService=s,this._themeService=l,this._sheetInterceptorService=c,this._injector=d,this._initialize()}dispose(){super.dispose()}_initialize(){this._skeletonListener(),this._commandExecutedListener(),this._themeChangeListener(),this._interceptorCommands(),this._bindViewportScroll(),this._zoomRefresh()}_createFreeze(e=0,t){var A;const o=t!=null?t:this._getFreeze();if(o==null)return null;const r=(A=this._sheetSkeletonManagerService.getCurrent())==null?void 0:A.skeleton,{startRow:s,startColumn:l}=o,c=this._getPositionByIndex(s,l);if(c==null||r==null)return null;const d=this._getSheetObject(),u=d.engine,h=(u==null?void 0:u.width)||0,g=(u==null?void 0:u.height)||0,p=d.scene,{startX:f,startY:S}=c,{rowTotalHeight:v,columnTotalWidth:C,rowHeaderWidthAndMarginLeft:I,columnHeaderHeightAndMarginTop:b}=r,T=h>C+I?h:C+b,w=g>v+b?g:v+b;this._changeToRow=s,this._changeToColumn=l,this._changeToOffsetX=f,this._changeToOffsetY=S;const y=Math.max(p.scaleX,p.scaleY);let M=ki/(y<1?1:y);if(e===0){(s===-1||s===0)&&(M=M*2);const N=M;this._rowFreezeHeaderRect=new P.Rect(Bh,{fill:this._freezeNormalHeaderColor,width:I,height:M,left:0,top:S-N,zIndex:3});let x=this._freezeNormalHeaderColor;(s===-1||s===0)&&(x=this._freezeNormalMainColor),this._rowFreezeMainRect=new P.Rect(Uh,{fill:x,width:T*2/y,height:M,left:I,top:S-N,zIndex:3}),p.addObjects([this._rowFreezeHeaderRect,this._rowFreezeMainRect],ht)}else{(l===-1||l===0)&&(M=M*2);const N=M;this._columnFreezeHeaderRect=new P.Rect(jh,{fill:this._freezeNormalHeaderColor,width:M,height:b,left:f-N,top:0,zIndex:3});let x=this._freezeNormalHeaderColor;(l===-1||l===0)&&(x=this._freezeNormalMainColor),this._columnFreezeMainRect=new P.Rect(Fh,{fill:x,width:M,height:w*2/y,left:f-N,top:b,zIndex:3}),p.addObjects([this._columnFreezeHeaderRect,this._columnFreezeMainRect],ht)}this._eventBinding(e)}_eventBinding(e=0){let t=this._rowFreezeHeaderRect,o=this._rowFreezeMainRect;e===1&&(t=this._columnFreezeHeaderRect,o=this._columnFreezeMainRect);const r=this._getSheetObject();if(r==null)return;const{scene:s}=r;if(this._freezePointerEnterSubs=new O.Subscription,this._freezePointerLeaveSubs=new O.Subscription,this._freezeDownSubs=new O.Subscription,o){const d=o.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(vn)(null,null))return!1;t==null||t.setProps({fill:this._freezeHoverColor,zIndex:4}),s.setCursor(P.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(d);const u=o.onPointerLeave$.subscribeEvent(()=>{t==null||t.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),s.resetCursor()});this._freezePointerLeaveSubs.add(u)}if(t){const d=t.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(vn)(null,null))return!1;t==null||t.setProps({fill:this._freezeHoverColor,zIndex:4}),s.setCursor(P.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(d);const u=t.onPointerLeave$.subscribeEvent(()=>{t==null||t.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),s.resetCursor()});this._freezePointerLeaveSubs.add(u)}const l=t==null?void 0:t.onPointerDown$.subscribeEvent(d=>{this._freezeDown(d,t,o,e)});l&&this._freezeDownSubs.add(l);const c=o==null?void 0:o.onPointerDown$.subscribeEvent(d=>{this._freezeDown(d,t,o,e)});c&&this._freezeDownSubs.add(c)}_getCurrentLastVisibleRow(){var g,p,f,S;const e=this._getSheetObject();if(e==null)return;const t=(g=this._sheetSkeletonManagerService.getCurrent())==null?void 0:g.skeleton;if(t==null)return;const o=e.scene,r=Math.max(o.scaleX,o.scaleY),s=this._scrollManagerService.getCurrentScrollInfo(),l=(e.engine.height-t.columnHeaderHeight)/r,c=(p=s==null?void 0:s.sheetViewStartRow)!=null?p:0,d=c===0?-((f=s==null?void 0:s.offsetY)!=null?f:0):t.rowHeightAccumulation[c-1]-((S=s==null?void 0:s.offsetY)!=null?S:0);let u=0,h=!1;for(let v=c,C=t.rowHeightAccumulation.length;v<C;v++)if(t.rowHeightAccumulation[v]-d>l){u=v,h=!0;break}return h||(u=t.rowHeightAccumulation.length-1),u}_getActiveViewport(e){var o;const t=(o=this._getSheetObject())==null?void 0:o.scene.getViewports();return t&&t.find(r=>r.isHit(new P.Vector2(e.offsetX,e.offsetY)))||null}_freezeDown(e,t,o,r=0){var p;const s=(p=this._sheetSkeletonManagerService.getCurrent())==null?void 0:p.skeleton;if(s==null)return;const l=this._getSheetObject();if(l==null)return;if(!this.interceptor.fetchThroughInterceptors(vn)(null,null))return!1;const{scene:d}=l;d.setCursor(P.CURSOR_TYPE.GRABBING),d.disableEvent();const u=this._getCurrentLastVisibleRow(),h=u===void 0?Number.POSITIVE_INFINITY:s.rowHeightAccumulation[u];this._activeViewport=null;const g=this._getFreeze();g&&(this._changeToColumn=g.startColumn,this._changeToRow=g.startRow),this._scenePointerMoveSub=d.onPointerMove$.subscribeEvent(f=>{var y,M,A,N;const S=this._getActiveViewport(f),{startX:v,startY:C,row:I,column:b}=Xe(f.offsetX,f.offsetY,d,s,S||void 0,!0);if(!this.interceptor.fetchThroughInterceptors(vn)(null,null))return!1;d.setCursor(P.CURSOR_TYPE.GRABBING);const w=ki/Math.max(d.scaleX,d.scaleY);r===0?((y=t.transformByState({top:Math.min(C,h)-w/2}))==null||y.setProps({fill:this._freezeActiveColor}),(M=o.transformByState({top:Math.min(C,h)-w/2}))==null||M.setProps({fill:this._freezeNormalHeaderColor}),this._changeToRow=u===void 0?I:Math.min(I,u),this._changeToOffsetY=Math.min(C,h),this._activeViewport=S):((A=t.transformByState({left:v-w/2}))==null||A.setProps({fill:this._freezeActiveColor}),(N=o.transformByState({left:v-w/2}))==null||N.setProps({fill:this._freezeNormalHeaderColor}),this._changeToColumn=b,this._changeToOffsetX=v,this._activeViewport=S)}),this._scenePointerUpSub=d.onPointerUp$.subscribeEvent(()=>{var x,D;d.resetCursor(),d.enableEvent(),this._clearObserverEvent();const{rowHeaderWidthAndMarginLeft:f,columnHeaderHeightAndMarginTop:S}=s;r===0&&(this._changeToRow===0||this._changeToRow===-1)||r===1&&(this._changeToColumn===0||this._changeToColumn===-1)?(t.setProps({fill:this._freezeNormalHeaderColor}),o.setProps({fill:this._freezeNormalMainColor})):(t==null||t.setProps({fill:this._freezeNormalHeaderColor}),o==null||o.setProps({fill:this._freezeNormalHeaderColor}));const v=ki/Math.max(d.scaleX,d.scaleY);r===0?(this._changeToRow===0||this._changeToRow===-1)&&(t.transformByState({top:S-v}),o.transformByState({top:S-v})):(this._changeToColumn===0||this._changeToColumn===-1)&&(t.transformByState({left:f-v}),o.transformByState({left:f-v}));const C=this._scrollManagerService.getCurrentScrollInfo()||{sheetViewStartRow:0,sheetViewStartColumn:0},{sheetViewStartRow:I,sheetViewStartColumn:b}=C;if(b==null||I==null)return;const T=this._context.unit,w=T.getActiveSheet();if(!w)return;const y=(x=w.getConfig())==null?void 0:x.freeze;let M=(y==null?void 0:y.xSplit)||0,A=(y==null?void 0:y.ySplit)||0;const N=(D=this._activeViewport)==null?void 0:D.viewportKey;r===0&&(!N||N===P.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||N===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||N===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||N===P.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP?A=this._changeToRow-(y.startRow-y.ySplit):A=this._changeToRow-I,A=A<0?0:A),r===1&&(!N||N===P.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||N===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||N===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||N===P.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT?M=this._changeToColumn-(y.startColumn-y.xSplit):M=this._changeToColumn-b,M=M<0?0:M),this._commandService.executeCommand(m.SetFrozenCommand.id,{startRow:A===0?-1:this._changeToRow,startColumn:M===0?-1:this._changeToColumn,ySplit:A,xSplit:M,unitId:T.getUnitId(),subUnitId:w.getSheetId()})})}_getViewports(){const e=this._getSheetObject();if(e==null)return;const{scene:t}=e,o=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT),r=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT),s=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP),l=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM),c=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP),d=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),u=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP),h=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT),g=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(!(o==null||r==null||s==null||l==null||c==null||d==null||u==null||h==null||g==null))return{viewMain:d,viewMainLeftTop:u,viewMainLeft:h,viewMainTop:g,viewColumnLeft:o,viewColumnRight:r,viewRowTop:s,viewRowBottom:l,viewLeftTop:c}}_bindViewportScroll(){const e=this._getViewports();if(!e)return;const{viewMain:t,viewRowBottom:o,viewColumnRight:r,viewMainLeft:s,viewMainTop:l}=e;this.disposeWithMe(t.onScrollAfter$.subscribeEvent(c=>{const{scrollX:d,scrollY:u,viewportScrollX:h,viewportScrollY:g}=c;o.isActive&&o.updateScroll({scrollY:u,viewportScrollY:g}),r.isActive&&r.updateScroll({scrollX:d,viewportScrollX:h}),s.isActive&&s.updateScroll({scrollY:u,viewportScrollY:g}),l.isActive&&l.updateScroll({scrollX:d,viewportScrollX:h})}))}_updateViewport(e=-1,t=-1,o=0,r=0,s=3){var A;const l=(A=this._sheetSkeletonManagerService.getCurrent())==null?void 0:A.skeleton;if(l==null)return;const{rowHeaderWidthAndMarginLeft:c,columnHeaderHeightAndMarginTop:d}=l,u=this._getViewports();if(!u)return;const{viewMain:h,viewMainLeftTop:g,viewMainLeft:p,viewMainTop:f,viewColumnLeft:S,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 T=!0,w=!0;g.enable(),(e===-1||e===0)&&(T=!1),(t===-1||t===0)&&(w=!1);const y=l.getNoMergeCellPositionByIndexWithNoHeader(e-o,t-r),M=l.getNoMergeCellPositionByIndexWithNoHeader(e,t);if(g.disable(),f.disable(),p.disable(),C.disable(),S.disable(),g.resetPadding(),f.resetPadding(),p.resetPadding(),C.resetPadding(),S.resetPadding(),T===!1&&w===!1)h.resizeWhenFreezeChange({left:c,top:d,bottom:0,right:0}),h.resetPadding();else if(T===!0&&w===!1){const N=M.startY-y.startY;h.resizeWhenFreezeChange({left:c,top:d+N,bottom:0,right:0}),h.setPadding({startY:y.startY,endY:M.startY,startX:0,endX:0}),s&2&&this._commandService.executeCommand(je.id,{sheetViewStartRow:0,offsetY:0}),f.resizeWhenFreezeChange({left:c,top:d,height:N,right:0}),f.updateScroll({viewportScrollY:y.startY,x:h.scrollX,viewportScrollX:h.viewportScrollX}),C.resizeWhenFreezeChange({left:0,top:d,width:c,height:N}),C.updateScroll({viewportScrollY:y.startY}),I.resizeWhenFreezeChange({left:0,top:d+N,bottom:0,width:c}),f.enable(),C.enable()}else if(T===!1&&w===!0){const N=M.startX-y.startX;h.resizeWhenFreezeChange({left:c+N,top:d,bottom:0,right:0}),h.setPadding({startX:y.startX,endX:M.startX,startY:0,endY:0}),s&1&&this._commandService.executeCommand(je.id,{sheetViewStartColumn:0,offsetX:0}),p.resizeWhenFreezeChange({left:c,top:d,width:N,bottom:0,right:0}),p.updateScroll({viewportScrollX:y.startX,y:h.scrollY,viewportScrollY:h.viewportScrollY}),S.resizeWhenFreezeChange({left:c,top:0,width:N,height:d}),S.updateScroll({viewportScrollX:y.startX}),v.resizeWhenFreezeChange({left:c+N,top:0,height:d,right:0}),p.enable(),S.enable()}else{const N=M.startX-y.startX,x=M.startY-y.startY;h.resizeWhenFreezeChange({left:c+N,top:d+x,bottom:0,right:0}),h.setPadding({startY:y.startY,endY:M.startY,startX:y.startX,endX:M.startX}),s&&this._commandService.executeCommand(je.id,{...s&1?{sheetViewStartColumn:0,offsetX:0}:null,...s&2?{sheetViewStartRow:0,offsetY:0}:null}),p.resizeWhenFreezeChange({left:c,top:d+x,width:N,bottom:0}),p.updateScroll({viewportScrollX:y.startX,y:h.scrollY,viewportScrollY:h.viewportScrollY}),f.resizeWhenFreezeChange({left:c+N,top:d,height:x,right:0}),f.updateScroll({viewportScrollY:y.startY,x:h.scrollX,viewportScrollX:h.viewportScrollX}),g.resizeWhenFreezeChange({left:c,top:d,width:N,height:x}),g.updateScroll({viewportScrollX:y.startX,viewportScrollY:y.startY}),C.resizeWhenFreezeChange({left:0,top:d,width:c,height:x}),C.updateScroll({viewportScrollY:y.startY}),I.resizeWhenFreezeChange({left:0,top:d+x,bottom:0,width:c}),S.resizeWhenFreezeChange({left:c,top:0,width:N,height:d}),S.updateScroll({viewportScrollX:y.startX}),v.resizeWhenFreezeChange({left:c+N,top:0,height:d,right:0}),g.enable(),f.enable(),p.enable(),C.enable(),S.enable()}}_skeletonListener(){this.disposeWithMe(a.toDisposable(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(e=>{[m.SetWorksheetActiveOperation.id,m.InsertRangeMoveDownCommand.id,m.InsertRangeMoveRightCommand.id].includes((e==null?void 0:e.commandId)||"")&&this._refreshCurrent()})))}_refreshCurrent(){const t=this._context.unit.getActiveSheet();if(!t)return;const o=t.getConfig().freeze,{startRow:r=-1,startColumn:s=-1,ySplit:l=0,xSplit:c=0}=o;this._refreshFreeze(r,s,l,c,0)}_themeChangeListener(){this._themeChange(this._themeService.getCurrentTheme()),this.disposeWithMe(this._themeService.currentTheme$.subscribe(e=>{this._clearFreeze(),this._themeChange(e),this._refreshCurrent()}))}_themeChange(e){this._freezeNormalHeaderColor=e.grey400,this._freezeNormalMainColor=new a.ColorKit(e.grey400).setAlpha(Xh).toRgbString(),this._freezeActiveColor=e.primaryColor,this._freezeHoverColor=e.grey500}_interceptorCommands(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{const t={redos:[],undos:[]},o=this._getFreeze();if(!o)return t;const r=s=>{const l=this._context.unit,c=l.getUnitId(),d=l.getActiveSheet();if(!d)return t;const u=d.getSheetId();this._refreshFreeze(s.startRow,s.startColumn,s.ySplit,s.xSplit,0);const h={...s,unitId:c,subUnitId:u,resetScroll:!1},g=m.SetFrozenMutationFactory(this._injector,h);return{undos:[{id:m.SetFrozenMutation.id,params:g}],redos:[{id:m.SetFrozenMutation.id,params:h}]}};if(e.id===m.InsertRowCommand.id){const s=e.params,{range:l,direction:c}=s,d=l.endRow-l.startRow+1;if(l.startRow+1<o.startRow||l.startRow+1===o.startRow&&c===a.Direction.UP){const u={...o,startRow:Math.max(1,o.startRow+d),ySplit:Math.max(1,o.ySplit+d)};return r(u)}}if(e.id===m.InsertColCommand.id){const s=e.params,{range:l,direction:c}=s,d=l.endColumn-l.startColumn+1;if(l.startColumn+1<o.startColumn||l.startColumn+1===o.startColumn&&c===a.Direction.LEFT){const u={...o,startColumn:Math.max(1,o.startColumn+d),xSplit:Math.max(1,o.xSplit+d)};return r(u)}}if(e.id===m.MoveColsCommand.id){const s=this._selectionManagerService.getCurrentSelections(),{fromRange:{startColumn:l},toRange:{startColumn:c}}=e.params,d=s==null?void 0:s.filter(C=>C.range.rangeType===a.RANGE_TYPE.COLUMN&&C.range.startColumn<=l&&l<=C.range.endColumn);if(!(d!=null&&d.length))return t;const u=d[0].range,h={...u,startColumn:c,endColumn:c+u.endColumn-u.startColumn};if(!o||o.startColumn<=0||u.startColumn>=o.startColumn&&h.startColumn>=o.startColumn||u.startColumn===h.startColumn||u.endColumn<o.startColumn&&h.startColumn<o.startColumn)return t;const g=u.endColumn-u.startColumn+1,p=Math.max(Math.min(o.startColumn,u.endColumn+1)-u.startColumn,0);let f,S;h.startColumn>=o.startColumn?(f=Math.max(o.startColumn-p,1),S=Math.max(o.xSplit-p,1)):(f=o.startColumn+g-p,S=o.xSplit+g-p);const v={...o,startColumn:f,xSplit:S};return r(v)}if(e.id===m.MoveRowsCommand.id){const s=this._selectionManagerService.getCurrentSelections(),{fromRange:{startRow:l},toRange:{startRow:c}}=e.params,d=s==null?void 0:s.filter(C=>C.range.rangeType===a.RANGE_TYPE.ROW&&C.range.startRow<=l&&l<=C.range.endRow);if(!(d!=null&&d.length))return t;const u=d[0].range,h={...u,startRow:c,endRow:c+u.endRow-u.startRow};if(!o||o.startRow<=0||u.startRow>=o.startRow&&h.startRow>=o.startRow||u.startRow===h.startRow||u.endRow<o.startRow&&h.startRow<o.startRow)return t;const g=u.endRow-u.startRow+1,p=Math.max(Math.min(o.startRow,u.endRow+1)-u.startRow,0);let f,S;h.startRow>=o.startRow?(f=Math.max(o.startRow-p,1),S=Math.max(o.ySplit-p,1)):(f=o.startRow+g-p,S=o.ySplit+g-p);const v={...o,startRow:f,ySplit:S};return r(v)}if(e.id===m.RemoveColCommand.id||e.id===m.RemoveRowCommand.id){const s=e.params,l=s.range;if(l.rangeType===a.RANGE_TYPE.COLUMN&&l.startColumn<o.startColumn){const c=Math.min(o.startColumn,l.endColumn+1)-l.startColumn,d={...o,startColumn:Math.max(1,o.startColumn-c),xSplit:Math.max(1,o.xSplit-c)};return r(d)}if(s.range.rangeType===a.RANGE_TYPE.ROW&&l.startRow<o.startRow){const c=Math.min(o.startRow,l.endRow+1)-l.startRow,d={...o,startRow:Math.max(1,o.startRow-c),ySplit:Math.max(1,o.ySplit-c)};return r(d)}}return t}}))}_commandExecutedListener(){const e=[m.SetFrozenMutation.id,ze.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(e.includes(t.id)){const o=this._lastFreeze,r=this._context.unit,s=r.getActiveSheet(),l=t.params,{unitId:c,subUnitId:d}=l;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:g=-1,startColumn:p=-1,ySplit:f=0,xSplit:S=0}=u;(!o||o.startRow!==g||o.ySplit!==f)&&(h|=2),(!o||o.startColumn!==p||o.xSplit!==S)&&(h|=1),l.resetScroll===!1&&(h=0),this._refreshFreeze(g,p,f,S,h)}else if(t.id===m.SetWorksheetRowHeightMutation.id){const o=this._getFreeze(),r=o&&t.params.ranges.some(s=>s.startRow<o.startRow);t.params&&r&&this._refreshCurrent()}else if(t.id===m.SetWorksheetColWidthMutation.id){const o=this._getFreeze();t.params&&o&&t.params.ranges.some(r=>r.startColumn<o.startColumn)&&this._refreshCurrent()}else if(t.id===m.SetWorksheetRowAutoHeightMutation.id){const o=t.params,r=this._getFreeze();if(r&&r.startRow>-1&&o.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 o=t.params,r=this._getFreeze(),s=o.ranges;r&&r.startColumn>-1&&s.some(l=>l.startColumn<r.startColumn)&&this._refreshCurrent()}else if(t.id===m.SetRowHiddenMutation.id||t.id===m.SetRowVisibleMutation.id){const o=t.params,r=this._getFreeze(),s=o.ranges;r&&r.startRow>-1&&s.some(l=>l.startRow<r.startRow)&&this._refreshCurrent()}}))}_zoomRefresh(){const e=this._getSheetObject();if(e==null)return;const{scene:t}=e;t.onTransformChange$.subscribeEvent(o=>{o.type===P.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale&&this._refreshCurrent()})}_clearObserverEvent(){var t,o;this._getSheetObject()!=null&&((t=this._scenePointerMoveSub)==null||t.unsubscribe(),(o=this._scenePointerUpSub)==null||o.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_clearFreeze(){var t,o,r,s,l,c;(t=this._rowFreezeHeaderRect)==null||t.dispose(),(o=this._rowFreezeMainRect)==null||o.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,(l=this._scenePointerMoveSub)==null||l.unsubscribe(),(c=this._scenePointerUpSub)==null||c.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_getPositionByIndex(e,t){var d;if(this._getSheetObject()==null)return;const 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:l,columnHeaderHeightAndMarginTop:c}=r;return{startX:l,endX:l,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 Ke(this._context.unit,this._context)}_refreshFreeze(e,t,o,r,s){var c;const l={startRow:e,startColumn:t,ySplit:o,xSplit:r};this._clearFreeze(),this._createFreeze(0,l),this._createFreeze(1,l),this._updateViewport(e,t,o,r,s),(c=this._getSheetObject())==null||c.spreadsheet.makeForceDirty()}};exports.HeaderFreezeRenderController=Lh([ft(1,k.Inject(exports.SheetSkeletonManagerService)),ft(2,a.ICommandService),ft(3,k.Inject(m.SheetsSelectionsService)),ft(4,k.Inject(Re)),ft(5,k.Inject(a.ThemeService)),ft(6,k.Inject(m.SheetInterceptorService)),ft(7,k.Inject(k.Injector))],exports.HeaderFreezeRenderController);var ur=(n=>(n[n.NORMAL=0]="NORMAL",n[n.HIGHLIGHT=1]="HIGHLIGHT",n))(ur||{});const zh="rgba(0, 0, 0, 0.15)",$e="rgb(0, 0, 0)",uo="rgb(255, 255, 255, 1)";class Yh extends P.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&&P.Rect.drawWith(e,{width:this._size,height:this._size,radius:this._size,fill:zh});const t=this._size*.5*this._iconRatio,o=Math.PI/180*60,r=t*Math.sin(o),s=t*Math.cos(o);P.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:$e})}}var Zh=Object.defineProperty,Gh=Object.getOwnPropertyDescriptor,Kh=(n,i,e,t)=>{for(var o=t>1?void 0:t?Gh(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&Zh(i,e,o),o},ho=(n,i)=>(e,t)=>i(e,t,n);const qh="__SpreadsheetHeaderMenuSHAPEControllerShape__",Qh="__SpreadsheetHeaderMenuMAINControllerShape__",Jh="rgba(0, 0, 0, 0.1)";let hr=class extends a.Disposable{constructor(i,e,t,o,r){super();E(this,"_hoverRect");E(this,"_hoverMenu");E(this,"_currentColumn",Number.POSITIVE_INFINITY);E(this,"_headerPointerSubs");E(this,"_colHeaderPointerSubs");this._context=i,this._sheetSkeletonManagerService=e,this._contextMenuService=t,this._commandService=o,this._selectionManagerService=r,this._initialize()}dispose(){var i,e,t;(i=this._hoverRect)==null||i.dispose(),(e=this._hoverMenu)==null||e.dispose(),(t=this._headerPointerSubs)==null||t.unsubscribe(),this._headerPointerSubs=null}_initialize(){const i=this._context.scene;this._hoverRect=new P.Rect(qh,{fill:Jh,evented:!1}),this._hoverMenu=new Yh(Qh,{zIndex:100,visible:!1}),i.addObjects([this._hoverRect,this._hoverMenu],ht),this._initialHover(0),this._initialHover(1),this._initialHoverMenu()}_initialHover(i=0){var h,g,p;const e=this._context.components.get(me.COLUMN),t=this._context.components.get(me.ROW),o=i===0?t:e,r=f=>{var M,A,N;const S=(M=this._sheetSkeletonManagerService.getCurrent())==null?void 0:M.skeleton;if(S==null)return;const{rowHeaderWidth:v,columnHeaderHeight:C}=S,{startX:I,startY:b,endX:T,endY:w,column:y}=Xe(f.offsetX,f.offsetY,this._context.scene,S);if(i===0)(A=this._hoverRect)==null||A.transformByState({width:v,height:w-b,left:0,top:b});else{if(this._currentColumn=y,(N=this._hoverRect)==null||N.transformByState({width:T-I,height:C,left:I,top:0}),this._hoverMenu==null)return;if(T-I<C*2){this._hoverMenu.hide();return}const x=C*.8;this._hoverMenu.transformByState({left:T-C,top:C/2-x/2}),this._hoverMenu.setShapeProps({size:x}),this._hoverMenu.show()}},s=()=>{var f;(f=this._hoverRect)==null||f.show()},l=()=>{var f,S;(f=this._hoverRect)==null||f.hide(),(S=this._hoverMenu)==null||S.hide()};this._headerPointerSubs=new O.Subscription;const c=o.onPointerMove$.subscribeEvent(r),d=o.onPointerEnter$.subscribeEvent(s),u=o.onPointerLeave$.subscribeEvent(l);(h=this._headerPointerSubs)==null||h.add(c),(g=this._headerPointerSubs)==null||g.add(d),(p=this._headerPointerSubs)==null||p.add(u)}_initialHoverMenu(){this._hoverMenu!=null&&(this._hoverMenu.onPointerEnter$.subscribeEvent(()=>{this._hoverMenu!=null&&(this._hoverMenu.setProps({mode:ur.HIGHLIGHT,visible:!0}),this._context.scene.setCursor(P.CURSOR_TYPE.POINTER))}),this._hoverMenu.onPointerLeave$.subscribeEvent(()=>{this._hoverMenu!=null&&(this._hoverMenu.setProps({mode:ur.NORMAL,visible:!1}),this._context.scene.resetCursor())}),this._hoverMenu.onPointerDown$.subscribeEvent(i=>{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===a.RANGE_TYPE.COLUMN).find(s=>{const{startColumn:l,endColumn:c}=s;return e>=l&&e<=c}))){const s=this._getSelectionOnColumn(e);this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,s)}i.stopPropagation(),i.preventDefault(),this._contextMenuService.triggerContextMenu(i,ue.COL_HEADER_CONTEXT_MENU)}))}_getSelectionOnColumn(i){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:i,endRow:t.getRowCount()-1,endColumn:i,rangeType:a.RANGE_TYPE.COLUMN},primary:{startRow:0,startColumn:i,endRow:0,endColumn:i,actualRow:0,actualColumn:i,isMerged:!1,isMergedMainCell:!1},style:null}]}}};hr=Kh([ho(1,k.Inject(exports.SheetSkeletonManagerService)),ho(2,R.IContextMenuService),ho(3,a.ICommandService),ho(4,k.Inject(m.SheetsSelectionsService))],hr);var $h=Object.defineProperty,em=Object.getOwnPropertyDescriptor,tm=(n,i,e,t)=>{for(var o=t>1?void 0:t?em(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&$h(i,e,o),o},Hi=(n,i)=>(e,t)=>i(e,t,n);const nm="__SpreadsheetHeaderMoveControllerBackground__",om="__SpreadsheetHeaderMoveControllerShapeLine__",im="rgba(0, 0, 0, 0.1)",rm="rgb(119, 119, 119)",sm=4,Vi=a.createInterceptorKey("headerMovePermissionCheck");exports.HeaderMoveRenderController=class extends a.Disposable{constructor(e,t,o,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 a.InterceptorManager({HEADER_MOVE_PERMISSION_CHECK:Vi}));E(this,"_workbookSelections");this._context=e,this._sheetSkeletonManagerService=o,this._commandService=r,this._workbookSelections=t.getWorkbookSelections(this._context.unitId),this._init()}dispose(){var e,t,o,r,s,l,c,d;(e=this._moveHelperBackgroundShape)==null||e.dispose(),(t=this._moveHelperLineShape)==null||t.dispose(),(o=this._headerPointerMoveSubs)==null||o.unsubscribe(),(r=this._headerPointerLeaveSubs)==null||r.unsubscribe(),(s=this._headerPointerDownSubs)==null||s.unsubscribe(),this._headerPointerMoveSubs=null,this._headerPointerLeaveSubs=null,this._headerPointerDownSubs=null,(l=this._scenePointerMoveSub)==null||l.unsubscribe(),(c=this._scenePointerUpSub)==null||c.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null,(d=this._scrollTimer)==null||d.dispose()}_init(){this._initialRowOrColumn(a.RANGE_TYPE.ROW),this._initialRowOrColumn(a.RANGE_TYPE.COLUMN)}_initialRowOrColumn(e=a.RANGE_TYPE.ROW){const t=this._context.components.get(me.COLUMN),o=this._context.components.get(me.ROW),r=this._context.scene,s=e===a.RANGE_TYPE.ROW?o:t,l=u=>{var I,b;const h=(I=this._sheetSkeletonManagerService.getCurrent())==null?void 0:I.skeleton;if(h==null)return;const g=(b=this._workbookSelections.getCurrentLastSelection())==null?void 0:b.range;if(!g||!this.interceptor.fetchThroughInterceptors(Vi)(!1,g))return;const f=this._workbookSelections.getCurrentSelections(),{row:S,column:v}=Xe(u.offsetX,u.offsetY,r,h);if(yt(f,e===a.RANGE_TYPE.ROW?S:v,e)===!1){r.resetCursor();return}r.setCursor(P.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 L,W;if(h.isStopPropagation)return;const g=(L=this._sheetSkeletonManagerService.getCurrent())==null?void 0:L.skeleton;if(g==null)return;const p=(W=this._workbookSelections.getCurrentLastSelection())==null?void 0:W.range;if(!p||!this.interceptor.fetchThroughInterceptors(Vi)(!1,p))return;const{offsetX:S,offsetY:v}=u,C=r.getRelativeToViewportCoord(P.Vector2.FromArray([S,v])),{x:I,y:b}=C;this._startOffsetX=I,this._startOffsetY=b;const{row:T,column:w}=Xe(u.offsetX,u.offsetY,r,g);let y;e===a.RANGE_TYPE.ROW?(this._changeFromRow=T,y=P.ScrollTimerType.Y):(this._changeFromColumn=w,y=P.ScrollTimerType.X);const M=this._workbookSelections.getCurrentSelections(),A=yt(M,e===a.RANGE_TYPE.ROW?T:w,e);if(A===!1)return;const N=r.getVpScrollXYInfoByPosToVp(P.Vector2.FromArray([this._startOffsetX,this._startOffsetY]));this._newBackgroundAndLine(),r.setCursor(P.CURSOR_TYPE.GRABBING),r.disableEvent();let x=!1,D;const H=()=>{if(x)return;D=P.ScrollTimer.create(r,y);const X=r.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);D.startScroll(I,b,X),this._scrollTimer=D,x=!0};this._scenePointerMoveSub=r.onPointerMove$.subscribeEvent(X=>{H();const{offsetX:q,offsetY:G}=X,{x:z,y:Y}=r.getRelativeToViewportCoord(P.Vector2.FromArray([q,G]));this._rowColumnMoving(z,Y,A,N,e),D.scrolling(z,Y,()=>{this._rowColumnMoving(z,Y,A,N,e)})}),this._scenePointerUpSub=r.onPointerUp$.subscribeEvent(()=>{var q,G,z;this._disposeBackgroundAndLine(),r.resetCursor(),r.enableEvent(),this._clearObserverEvent(),(q=this._scrollTimer)==null||q.dispose();const X=this._workbookSelections.getCurrentSelections();if(e===a.RANGE_TYPE.ROW){if(this._changeFromRow!==this._changeToRow&&this._changeToRow!==-1){const F=(G=((X==null?void 0:X.filter(Z=>Z.range.rangeType===a.RANGE_TYPE.ROW&&Z.range.startRow<=this._changeFromRow&&this._changeFromRow<=Z.range.endRow))||[])[0])==null?void 0:G.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=(z=((X==null?void 0:X.filter(Z=>Z.range.rangeType===a.RANGE_TYPE.COLUMN&&Z.range.startColumn<=this._changeFromColumn&&this._changeFromColumn<=Z.range.endColumn))||[])[0])==null?void 0:z.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 O.Subscription,this._headerPointerMoveSubs.add(s.onPointerMove$.subscribeEvent(l)),this._headerPointerLeaveSubs=new O.Subscription,this._headerPointerLeaveSubs.add(s==null?void 0:s.onPointerLeave$.subscribeEvent(c)),this._headerPointerDownSubs=new O.Subscription,this._headerPointerDownSubs.add(s==null?void 0:s.onPointerDown$.subscribeEvent(d))}_rowColumnMoving(e,t,o,r,s){var Y,F,Z,K,B,U,Q;const l=this._context.scene,c=(Y=this._sheetSkeletonManagerService.getCurrent())==null?void 0:Y.skeleton;if(c==null)return;const{rowHeaderWidth:d,columnHeaderHeight:u,rowTotalHeight:h,columnTotalWidth:g}=c,p=l.getViewportScrollXY(l.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX:f,scaleY:S}=l.getAncestorScale(),v=c.getCellPositionByOffset(e,t,f,S,p),{row:C,column:I}=v,b=c.getNoMergeCellPositionByIndex(C,I),{startX:T,startY:w,endX:y,endY:M}=b,A=this._sheetSkeletonManagerService.attachRangeWithCoord(o.range);if(A==null)return;const N=Math.max(f,f),{startX:x,endX:D,startY:H,endY:L,startRow:W,startColumn:X,endRow:q,endColumn:G}=A;s===a.RANGE_TYPE.ROW?(F=this._moveHelperBackgroundShape)==null||F.transformByState({height:L-H,width:g+d,left:0,top:H+(t-this._startOffsetY)/N+p.y-r.y}):(Z=this._moveHelperBackgroundShape)==null||Z.transformByState({height:h+u,width:D-x,left:x+(e-this._startOffsetX)/N+p.x-r.x,top:0}),(K=this._moveHelperBackgroundShape)==null||K.show();const z=sm/N;if(s===a.RANGE_TYPE.ROW){let ee=0;if(C<=W)ee=w-z/2,this._changeToRow=C;else if(C>q)ee=M-z/2,this._changeToRow=C+1;else return;(B=this._moveHelperLineShape)==null||B.transformByState({height:z,width:g,left:d,top:ee})}else{let ee=0;if(I<=X)ee=T-z/2,this._changeToColumn=I;else if(I>G)ee=y-z/2,this._changeToColumn=I+1;else return;(U=this._moveHelperLineShape)==null||U.transformByState({height:h,width:z,left:ee,top:u})}(Q=this._moveHelperLineShape)==null||Q.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 P.Rect(nm,{fill:im,evented:!1,zIndex:100}),this._moveHelperLineShape=new P.Rect(om,{fill:rm,evented:!1,zIndex:100}),e.addObjects([this._moveHelperBackgroundShape,this._moveHelperLineShape],ht)}_disposeBackgroundAndLine(){var e,t;(e=this._moveHelperBackgroundShape)==null||e.dispose(),(t=this._moveHelperLineShape)==null||t.dispose()}};exports.HeaderMoveRenderController=tm([Hi(1,k.Inject(m.SheetsSelectionsService)),Hi(2,k.Inject(exports.SheetSkeletonManagerService)),Hi(3,a.ICommandService)],exports.HeaderMoveRenderController);var mr=(n=>(n[n.VERTICAL=0]="VERTICAL",n[n.HORIZONTAL=1]="HORIZONTAL",n))(mr||{});const lm="rgba(120, 120, 120, 0.01)",Wi="rgb(68, 71, 70)",En=12,gr=4;class Bs extends P.Shape{constructor(e,t){super(e,t);E(this,"_size",En);E(this,"_color",Wi);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:o}=this,r=0,s=0;const l=this.getScene(),{scaleX:c,scaleY:d}=l.getAncestorScale(),u=Math.max(c,d),h=En/u,g=gr/u;this.mode===0?(t=g,r=h-g):(o=g,s=h-g),P.Rect.drawWith(e,{width:this.width,height:this.height,left:0,top:0,fill:lm}),P.Rect.drawWith(e,{width:t,height:o,fill:Wi,radius:g}),e.save(),e.transform(1,0,0,1,r,s),P.Rect.drawWith(e,{width:t,height:o,fill:Wi,radius:g}),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:En,height:this.size}):this.transformByState({width:this.size,height:En}),this}}var am=Object.defineProperty,cm=Object.getOwnPropertyDescriptor,dm=(n,i,e,t)=>{for(var o=t>1?void 0:t?cm(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&am(i,e,o),o},Fs=(n,i)=>(e,t)=>i(e,t,n);const um="__SpreadsheetHeaderResizeControllerShapeRow__",hm="__SpreadsheetHeaderResizeControllerShapeColumn__",js="__SpreadsheetHeaderResizeControllerShapeHelper__",Xs="rgb(199, 199, 199)",mm=2,Li=a.createInterceptorKey("headerResizePermissionCheck");exports.HeaderResizeRenderController=class extends a.Disposable{constructor(e,t,o){super();E(this,"_currentRow",0);E(this,"_currentColumn",0);E(this,"_rowResizeRect");E(this,"_columnResizeRect");E(this,"_headerPointerSubs");E(this,"_scenePointerMoveSub");E(this,"_scenePointerUpSub");E(this,"_resizeHelperShape");E(this,"_startOffsetX",Number.POSITIVE_INFINITY);E(this,"_startOffsetY",Number.POSITIVE_INFINITY);E(this,"interceptor",new a.InterceptorManager({HEADER_RESIZE_PERMISSION_CHECK:Li}));this._context=e,this._sheetSkeletonManagerService=t,this._commandService=o,this._init()}dispose(){var e,t,o;(e=this._rowResizeRect)==null||e.dispose(),this._rowResizeRect=null,(t=this._columnResizeRect)==null||t.dispose(),this._columnResizeRect=null,(o=this._headerPointerSubs)==null||o.unsubscribe(),this._headerPointerSubs=null}_init(){const e=this._context.scene;this._rowResizeRect=new Bs(um,{visible:!1,mode:mr.HORIZONTAL,zIndex:100}),this._columnResizeRect=new Bs(hm,{visible:!1,mode:mr.VERTICAL,zIndex:100}),e.addObjects([this._rowResizeRect,this._columnResizeRect],ht),this._initialHover(0),this._initialHover(1),this._initialHoverResize(0),this._initialHoverResize(1)}_initialHover(e=0){const t=this._context.components.get(me.COLUMN),o=this._context.components.get(me.ROW),r=this._context.scene,s=e===0?o:t,l=(d,u)=>{var h,g;(h=this._rowResizeRect)==null||h.hide(),(g=this._columnResizeRect)==null||g.hide()},c=(d,u)=>{var N;const h=(N=this._sheetSkeletonManagerService.getCurrent())==null?void 0:N.skeleton;if(h==null||this._rowResizeRect==null||this._columnResizeRect==null)return;const{rowHeaderWidth:g,columnHeaderHeight:p}=h,{startX:f,startY:S,endX:v,endY:C,row:I,column:b}=Xe(d.offsetX,d.offsetY,r,h),T=Pn(d.offsetX,d.offsetY,r),{scaleX:w,scaleY:y}=r.getAncestorScale(),M=Math.max(w,y),A=En/M;if(e===0){let x=S-A/2;if(T.y<=S+A/2&&T.y>=S)this._currentRow=I-1;else if(T.y>=C-A/2&&T.y<=C)this._currentRow=I,x=C-A/2;else{this._rowResizeRect.hide();return}if(this._currentRow===-1)return;if(!this.interceptor.fetchThroughInterceptors(Li)(null,{row:this._currentRow}))return!1;const H=g/3;this._rowResizeRect.transformByState({left:g/2-H/2,top:x}),this._rowResizeRect.setShapeProps({size:H}),this._rowResizeRect.show()}else{let x=f-A/2;if(T.x<=f+A/2&&T.x>=f)this._currentColumn=b-1;else if(T.x>=v-A/2&&T.x<=v)this._currentColumn=b,x=v-A/2;else{this._columnResizeRect.hide();return}if(this._currentColumn===-1)return;if(!this.interceptor.fetchThroughInterceptors(Li)(null,{col:this._currentColumn}))return!1;const H=p*.7;this._columnResizeRect.transformByState({left:x,top:p/2-H/2}),this._columnResizeRect.setShapeProps({size:H}),this._columnResizeRect.show()}};this._headerPointerSubs=new O.Subscription,this._headerPointerSubs.add(s==null?void 0:s.onPointerMove$.subscribeEvent(c)),this._headerPointerSubs.add(s==null?void 0:s.onPointerLeave$.subscribeEvent(l))}_initialHoverResize(e=0){const t=this._context.scene,o=e===0?this._rowResizeRect:this._columnResizeRect;o!=null&&(this.disposeWithMe(a.toDisposable(o.onPointerEnter$.subscribeEvent(()=>{o!=null&&(o.show(),t.setCursor(e===0?P.CURSOR_TYPE.ROW_RESIZE:P.CURSOR_TYPE.COLUMN_RESIZE))}))),this.disposeWithMe(a.toDisposable(o.onPointerLeave$.subscribeEvent(()=>{o!=null&&(o.hide(),t.resetCursor())}))),this.disposeWithMe(a.toDisposable(o.onPointerDown$.subscribeEvent(r=>{var G,z,Y,F,Z,K,B;const s=(G=this._sheetSkeletonManagerService.getCurrent())==null?void 0:G.skeleton;if(s==null)return;const l=this._context.scene,c=l.getEngine(),d=(c==null?void 0:c.height)||0,u=(c==null?void 0:c.width)||0,h=l.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),g=(((Y=(z=h==null?void 0:h.getScrollBar())==null?void 0:z.horizonBarRect)==null?void 0:Y.height)||0)+10,p=(((Z=(F=h==null?void 0:h.getScrollBar())==null?void 0:F.verticalBarRect)==null?void 0:Z.width)||0)+10,f=Pn(r.offsetX,r.offsetY,l),{scaleX:S,scaleY:v}=l.getAncestorScale();this._startOffsetX=f.x,this._startOffsetY=f.y;const C=s.getOffsetByPositionX(this._currentColumn),I=s.getOffsetByPositionY(this._currentRow),b=s.getNoMergeCellPositionByIndex(this._currentRow,this._currentColumn);let T=!1,w=0,y=0;const{columnTotalWidth:M,rowHeaderWidth:A,rowTotalHeight:N,columnHeaderHeight:x}=s,D=u>M+A?u:M+A,H=d>N+x?d:N+x,L=Math.max(S,v),W=gr/L;e===0?this._resizeHelperShape=new P.Rect(js,{width:D,height:W,fill:Xs,left:0,top:I-W/2}):this._resizeHelperShape=new P.Rect(js,{width:W,height:H,fill:Xs,left:C-W/2,top:0});const X=((K=this._columnResizeRect)==null?void 0:K.left)||0,q=((B=this._rowResizeRect)==null?void 0:B.top)||0;l.addObject(this._resizeHelperShape,ht),l.disableEvent(),this._scenePointerMoveSub=l.onPointerMove$.subscribeEvent(U=>{var gn,cs,ds,us,hs,ms;const Q=l.getRelativeToViewportCoord(P.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),ee=l.getVpScrollXYInfoByPosToVp(Q,h),ae=Pn(U.offsetX,U.offsetY,l),{x:se,y:Ee}=ae,{scaleX:Ce,scaleY:Nt}=l.getAncestorScale(),mn=Math.max(Ce,Nt),xt=gr/mn;w=se-this._startOffsetX-xt/2,y=Ee-this._startOffsetY-xt/2,Math.abs(e===0?y:w)>=mm&&(T=!0),e===0?(y>d-g+ee.y-b.startY&&(y=d-g+ee.y-b.startY),y<-(b.endY-b.startY)+2&&(y=-(b.endY-b.startY)+2),T&&((gn=this._resizeHelperShape)==null||gn.transformByState({top:I+y}),(cs=this._rowResizeRect)==null||cs.transformByState({top:q+y+xt/2}),(ds=this._rowResizeRect)==null||ds.show(),l.setCursor(P.CURSOR_TYPE.ROW_RESIZE))):(w>u-p+ee.x-b.startX&&(w=u-p+ee.x-b.startX),w<-(b.endX-b.startX)+2&&(w=-(b.endX-b.startX)+2),T&&((us=this._resizeHelperShape)==null||us.transformByState({left:C+w}),(hs=this._columnResizeRect)==null||hs.transformByState({left:X+w+xt/2}),(ms=this._columnResizeRect)==null||ms.show(),l.setCursor(P.CURSOR_TYPE.COLUMN_RESIZE)))}),this._scenePointerUpSub=l.onPointerUp$.subscribeEvent(U=>{var ee,ae,se;const Q=this._context.scene;this._clearObserverEvent(),(ee=this._resizeHelperShape)==null||ee.dispose(),this._resizeHelperShape=null,Q.enableEvent(),T&&(Q.resetCursor(),(ae=this._rowResizeRect)==null||ae.hide(),(se=this._columnResizeRect)==null||se.hide(),e===0?this._commandService.executeCommand(m.DeltaRowHeightCommand.id,{deltaY:y,anchorRow:this._currentRow}):this._commandService.executeCommand(m.DeltaColumnWidthCommand.id,{deltaX:w,anchorCol:this._currentColumn}))})}))),this.disposeWithMe(a.toDisposable(o.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}};exports.HeaderResizeRenderController=dm([Fs(1,k.Inject(exports.SheetSkeletonManagerService)),Fs(2,a.ICommandService)],exports.HeaderResizeRenderController);var pr=(n=>(n[n.ROW=0]="ROW",n[n.COLUMN=1]="COLUMN",n))(pr||{});const wn=12,gm=.4;class zs extends P.Shape{constructor(e,t,o){super(e,t);E(this,"_size",wn);E(this,"_iconRatio",gm);E(this,"_hovered",!0);E(this,"_hasPrevious",!0);E(this,"_hasNext",!0);E(this,"_unhideType");t&&this.setShapeProps(t),this.onPointerEnter$.subscribeEvent(()=>this.setShapeProps({hovered:!0})),this.onPointerLeave$.subscribeEvent(()=>this.setShapeProps({hovered:!1})),this.onPointerDown$.subscribeEvent(()=>o==null?void 0:o())}setShapeProps(e){e.type!==void 0&&(this._unhideType=e.type),e.hovered!==void 0&&(this._hovered=e.hovered),e.hasPrevious!==void 0&&(this._hasPrevious=e.hasPrevious),e.hasNext!==void 0&&(this._hasNext=e.hasNext),this.transformByState({width:this._size*(this._unhideType===1?2:1),height:this._size*(this._unhideType===0?2:1)})}_draw(e){this._unhideType===0?this._drawOnRow(e):this._drawOnCol(e)}_drawOnRow(e){this._hovered&&(!this._hasNext||!this._hasPrevious?P.Rect.drawWith(e,{width:this._size,height:this._size,stroke:$e,fill:uo}):P.Rect.drawWith(e,{width:this._size,height:2*this._size,stroke:$e,fill:uo}));const t=this._size*.5*this._iconRatio,o=Math.PI/3,r=t*Math.cos(o),s=t*Math.sin(o);if(this._hasPrevious&&P.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:$e}),this._hasNext){const l=this._hasPrevious?3:1;P.RegularPolygon.drawWith(e,{pointsGroup:[[{x:this._size/2,y:this._size*l/2+s},{x:this._size/2-s,y:this._size*l/2-r},{x:this._size/2+s,y:this._size*l/2-r}]],fill:$e})}}_drawOnCol(e){this._hovered&&(!this._hasNext||!this._hasPrevious?P.Rect.drawWith(e,{width:this._size,height:this._size,stroke:$e,fill:uo}):P.Rect.drawWith(e,{width:2*this._size,height:this._size,stroke:$e,fill:uo}));const t=this._size*.5*this._iconRatio,o=Math.PI/3,r=t*Math.cos(o),s=t*Math.sin(o);if(this._hasPrevious&&P.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:$e}),this._hasNext){const l=this._hasPrevious?3:1;P.RegularPolygon.drawWith(e,{pointsGroup:[[{x:r+this._size*l/2,y:this._size/2},{x:-s+this._size*l/2,y:this._size/2-s},{x:-s+this._size*l/2,y:this._size/2+s}]],fill:$e})}}}var pm=Object.defineProperty,fm=Object.getOwnPropertyDescriptor,Sm=(n,i,e,t)=>{for(var o=t>1?void 0:t?fm(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&pm(i,e,o),o},Ys=(n,i)=>(e,t)=>i(e,t,n);const Zs="__SpreadsheetHeaderUnhideSHAPEControllerShape__",vm=[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 fr=class extends a.RxDisposable{constructor(i,e,t){super();E(this,"_shapes",{cols:[],rows:[]});this._context=i,this._sheetSkeletonManagerService=e,this._commandService=t,this._init()}get _workbook(){return this._context.unit}dispose(){super.dispose(),this._clearShapes()}_init(){let i="";this._context.unit.activeSheet$.pipe(O.takeUntil(this.dispose$)).subscribe(e=>{if(this._clearShapes(),!e){i="";return}i=e.getSheetId(),this._update(this._workbook,e)}),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(!vm.includes(e.id)||!e.params||!e.params.unitId||e.params.subUnitId!==i)return;const t=this._workbook,o=t.getSheetBySheetId(e.params.subUnitId);o&&this._update(t,o)}))}_update(i,e){var g;const t=(g=this._sheetSkeletonManagerService.getWorksheetSkeleton(e.getSheetId()))==null?void 0:g.skeleton;if(!t)return;const o=e.getHiddenRows(),r=e.getHiddenCols(),s=this._getSheetObject(),{scene:l}=s,c=e.getRowCount(),d=o.map(p=>{const{startRow:f,endRow:S}=p,v=ir(f,0,l,t),C=f!==0,I=S!==c-1;return new zs(Zs,{type:pr.ROW,hovered:!1,hasPrevious:C,hasNext:I,top:v.startY-(C?wn:0),left:v.startX-wn},()=>this._commandService.executeCommand(m.SetSpecificRowsVisibleCommand.id,{unitId:i.getUnitId(),subUnitId:e.getSheetId(),ranges:[p]}))}),u=e.getColumnCount(),h=r.map(p=>{const{startColumn:f,endColumn:S}=p,v=ir(0,f,l,t),C=f!==0,I=S!==u-1;return new zs(Zs,{type:pr.COLUMN,hovered:!1,hasPrevious:C,hasNext:I,top:20-wn,left:v.startX-(C?wn:0)},()=>this._commandService.executeCommand(m.SetSpecificColsVisibleCommand.id,{unitId:i.getUnitId(),subUnitId:e.getSheetId(),ranges:[p]}))});l.addObjects(h,vs),l.addObjects(d,vs),this._clearShapes(),this._shapes={cols:h,rows:d}}_clearShapes(){this._shapes.cols.forEach(i=>i.dispose()),this._shapes.rows.forEach(i=>i.dispose()),this._shapes={cols:[],rows:[]}}_getSheetObject(){return Ke(this._workbook,this._context)}};fr=Sm([Ys(1,k.Inject(exports.SheetSkeletonManagerService)),Ys(2,a.ICommandService)],fr);var Cm=Object.defineProperty,_m=Object.getOwnPropertyDescriptor,Im=(n,i,e,t)=>{for(var o=t>1?void 0:t?_m(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&Cm(i,e,o),o},Ui=(n,i)=>(e,t)=>i(e,t,n);let yo=class extends a.Disposable{constructor(n,i,e,t){super(),this._context=n,this._markSelectionService=i,this._commandService=e,this._sheetSkeletonManagerService=t,this._initListeners()}_initListeners(){this._addRemoveListener(),this._addRefreshListener()}_addRemoveListener(){const n=[Pe.id];this.disposeWithMe(this._commandService.onCommandExecuted(i=>{n.includes(i.id)?this._markSelectionService.removeAllShapes():this._markSelectionService.getShapeMap().forEach((t,o)=>{t.exits.includes(i.id)&&this._markSelectionService.removeShape(o)})}))}_addRefreshListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(n=>{n&&this._markSelectionService.refreshShapes()}))}};yo=Im([Ui(1,k.Inject(Ot)),Ui(2,a.ICommandService),Ui(3,k.Inject(exports.SheetSkeletonManagerService))],yo);function bm(n,i){if(n.length!==i.length)return!1;const e=n.sort((o,r)=>o.id.localeCompare(r.id)),t=i.sort((o,r)=>o.id.localeCompare(r.id));return e.every((o,r)=>{var s,l;return((s=o.subject)==null?void 0:s.userID)===((l=t[r].subject)==null?void 0:l.userID)&&o.role===t[r].role})}function jl(n,i){return i.some(e=>Rm(n,e))}function Rm(n,i){const{startRow:e,startColumn:t,endColumn:o,endRow:r}=i,s=n.getMatrixWithMergedCells(e,t,r,o);let l=!1;return s.forValue((c,d,u)=>{if(u&&(c!==e||d!==t)&&n.cellHasValue(u))return l=!0,!1}),l}function Xl(n,i,e,t){const o=[],r=[],s=e.getSheetId();return t.forEach(l=>{const c=Tm(e,l),d={unitId:i,subUnitId:s,cellValue:c.getData()},u=m.SetRangeValuesUndoMutationFactory(n,d);o.push({id:m.SetRangeValuesMutation.id,params:u}),r.push({id:m.SetRangeValuesMutation.id,params:d})}),{undos:o,redos:r}}function Tm(n,i){const{startRow:e,startColumn:t,endColumn:o,endRow:r}=i,s=n.getMatrixWithMergedCells(e,t,r,o,!0),l=new a.ObjectMatrix;let c=null;return s.forValue((d,u,h)=>{h&&(!c&&h.v!==void 0&&(c=h),l.setValue(d,u,null))}),l.setValue(e,t,c),l}function Em(n,i,e,t){const o=e.getActiveViewportByCoord(P.Vector2.FromArray([n,i]));if(!o)return;const{scaleX:r,scaleY:s}=e.getAncestorScale(),l={x:o.viewportScrollX,y:o.viewportScrollY},c=t.getCellPositionByOffset(n,i,r,s,l),d=t.mergeData.find(h=>{const{startColumn:g,startRow:p,endColumn:f,endRow:S}=h;return c.row>=p&&c.column>=g&&c.row<=S&&c.column<=f});return{actualRow:d?d.startRow:c.row,actualCol:d?d.startColumn:c.column,mergeCell:d,row:c.row,col:c.column}}function wm(n,i,e,t){const o=t.getFreeze();if(!o||o.startRow<=0&&o.startColumn<=0||n>o.startRow&&i>o.startColumn)return e.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(n<=o.startRow&&i<=o.startColumn)return e.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(n<=o.startRow&&i>o.startColumn)return e.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(n>o.startRow&&i<=o.startColumn)return e.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)}function Pm(n,i,e,t){const o=Gs(n.left,n.top,i,e,t),r=Gs(n.right,n.bottom,i,e,t);return{left:o.x,top:o.y,right:r.x,bottom:r.y}}function Gs(n,i,e,t,o){const{scaleX:r,scaleY:s}=e.getAncestorScale(),l=e.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!l)return{x:n,y:i};const c=o.getFreeze(),{startColumn:d,startRow:u,xSplit:h,ySplit:g}=c,p=t.getNoMergeCellPositionByIndexWithNoHeader(u-g,d-h),f=t.getNoMergeCellPositionByIndexWithNoHeader(u,d),{rowHeaderWidth:S,columnHeaderHeight:v}=t,C=f.startX-p.startX,I=f.startY-p.startY,{top:b,left:T,viewportScrollX:w,viewportScrollY:y}=l;let M;n>T?M=(n-w)*r:M=(C+S-(T-n))*r;let A;return i>b?A=(i-y)*s:A=(I+v-(b-i))*r,{x:M,y:A}}function zl(n,i,e,t,o,r){const{scene:s}=n,l=i.getUnitId(),{skeleton:c,sheetId:d}=t,u=Em(o,r,s,c);if(!u)return null;const{row:h,col:g,mergeCell:p,actualCol:f,actualRow:S}=u,v={unitId:l,subUnitId:d,workbook:i,worksheet:e,row:S,col:f};let C;p?C=p:C={startRow:h,endRow:h,startColumn:g,endColumn:g};const I=s.getActiveViewportByCoord(P.Vector2.FromArray([o,r]));if(!I)return;const{scaleX:b,scaleY:T}=s.getAncestorScale(),w={x:I.viewportScrollX,y:I.viewportScrollY};return{position:{startX:(c.getOffsetByPositionX(C.startColumn-1)-w.x)*b,endX:(c.getOffsetByPositionX(C.endColumn)-w.x)*b,startY:(c.getOffsetByPositionY(C.startRow-1)-w.y)*T,endY:(c.getOffsetByPositionY(C.endRow)-w.y)*T},location:v}}const We={type:a.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge",handler:async(n,i)=>{const e=n.get(a.ICommandService),t=n.get(a.IUndoRedoService),o=n.get(a.IUniverInstanceService),r=n.get(R.IConfirmService),s=n.get(a.LocaleService),l=i.unitId,c=i.subUnitId,d=i.selections,u=m.getAddMergeMutationRangeByType(d,i.value),h=o.getUniverSheetInstance(l).getSheetBySheetId(c),g=[],p=[],f=jl(h,u);if(f&&!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 S={unitId:l,subUnitId:c,ranges:u},v={unitId:l,subUnitId:c,ranges:u},C=m.RemoveMergeUndoMutationFactory(n,S),I=m.AddMergeUndoMutationFactory(n,v);if(C.ranges.length>0&&g.push({id:m.RemoveWorksheetMergeMutation.id,params:C}),g.push({id:m.AddWorksheetMergeMutation.id,params:v}),p.push({id:m.RemoveWorksheetMergeMutation.id,params:I}),C.ranges.length>0&&p.push({id:m.AddWorksheetMergeMutation.id,params:C}),f){const y=Xl(n,l,h,u);g.unshift(...y.redos),p.push(...y.undos)}const b=m.AddMergeRedoSelectionsOperationFactory(n,i,u);b&&g.push(b);const T=m.AddMergeUndoSelectionsOperationFactory(n,i);return T&&p.push(T),a.sequenceExecute(g,e).result?(t.pushUndoRedo({unitID:l,undoMutations:p,redoMutations:g}),!0):!1}},ni={type:a.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-all",handler:async n=>{var u;const i=n.get(a.ICommandService),t=(u=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:u.map(h=>h.range),o=xr(Ho.MergeAll,t);if(!(o!=null&&o.length))return!1;const s=n.get(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const l=s.getActiveSheet();if(!l)return!1;const c=s.getUnitId(),d=l.getSheetId();return i.executeCommand(We.id,{selections:o,unitId:c,subUnitId:d})}},oi={type:a.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-vertical",handler:async n=>{var u;const i=n.get(a.ICommandService),t=(u=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:u.map(h=>h.range),o=xr(Ho.MergeVertical,t);if(!(o!=null&&o.length))return!1;const s=n.get(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const l=s.getActiveSheet();if(!l)return!1;const c=s.getUnitId(),d=l.getSheetId();return i.executeCommand(We.id,{value:a.Dimension.COLUMNS,selections:o,unitId:c,subUnitId:d})}},ii={type:a.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-horizontal",handler:async n=>{var u;const i=n.get(a.ICommandService),t=(u=n.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:u.map(h=>h.range),o=xr(Ho.MergeHorizontal,t);if(!(o!=null&&o.length))return!1;const s=n.get(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const l=s.getActiveSheet();if(!l)return!1;const c=s.getUnitId(),d=l.getSheetId();return i.executeCommand(We.id,{value:a.Dimension.ROWS,selections:o,unitId:c,subUnitId:d})}},$n={type:a.CommandType.COMMAND,id:"sheet.command.delete-range-move-left-confirm",handler:async n=>{const i=n.get(R.IConfirmService),e=n.get(a.ICommandService),t=n.get(a.LocaleService),o=n.get(m.SheetsSelectionsService),r=n.get(a.IUniverInstanceService),s=o.getCurrentSelections();if(!s)return!1;const l=m.getSheetCommandTarget(r);if(!l)return!1;const{worksheet:c}=l;let d=s[0].range;if(!d)return!1;d={...d,endColumn:c.getColumnCount()-1};const u=p=>p.endRow-p.startRow;return!c.getMergeData().find(p=>{const f=a.Rectangle.getIntersects(p,d);return f?u(p)>u(f):!1})||await i.confirm({id:$n.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}},Qt={type:a.CommandType.COMMAND,id:"sheet.command.delete-range-move-up-confirm",handler:async n=>{const i=n.get(R.IConfirmService),e=n.get(a.ICommandService),t=n.get(a.LocaleService),o=n.get(m.SheetsSelectionsService),r=n.get(a.IUniverInstanceService),s=o.getCurrentSelections();if(!s)return!1;const l=m.getSheetCommandTarget(r);if(!l)return!1;const{worksheet:c}=l;let d=s[0].range;if(!d)return!1;d={...d,endRow:c.getRowCount()-1};for(let p=d.startRow;p<=d.endRow;p++)if(c.getRowFiltered(p)&&await i.confirm({id:Qt.id,title:{title:t.t("filter.confirm.error")},children:{title:t.t("filter.confirm.notAllowedToInsertRange")},confirmText:t.t("button.confirm")}))return!1;const u=p=>p.endColumn-p.startColumn;return!c.getMergeData().find(p=>{const f=a.Rectangle.getIntersects(p,d);return f?u(p)>u(f):!1})||await i.confirm({id:Qt.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}},Jt={type:a.CommandType.COMMAND,id:"sheet.command.insert-range-move-down-confirm",handler:async n=>{const i=n.get(R.IConfirmService),e=n.get(a.ICommandService),t=n.get(a.LocaleService),o=n.get(m.SheetsSelectionsService),r=n.get(a.IUniverInstanceService),s=o.getCurrentSelections();if(!s)return!1;const l=m.getSheetCommandTarget(r);if(!l)return!1;const{worksheet:c}=l;let d=s[0].range;if(!d)return!1;d={...d,endRow:c.getRowCount()-1};for(let p=d.startRow;p<=d.endRow;p++)if(c.getRowFiltered(p)&&await i.confirm({id:Jt.id,title:{title:t.t("filter.confirm.error")},children:{title:t.t("filter.confirm.notAllowedToInsertRange")},confirmText:t.t("button.confirm")}))return!1;const u=p=>p.endColumn-p.startColumn;return!c.getMergeData().find(p=>{const f=a.Rectangle.getIntersects(p,d);return f?u(p)>u(f):!1})||await i.confirm({id:Jt.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}},eo={type:a.CommandType.COMMAND,id:"sheet.command.insert-range-move-right-confirm",handler:async n=>{const i=n.get(R.IConfirmService),e=n.get(a.ICommandService),t=n.get(a.LocaleService),o=n.get(m.SheetsSelectionsService),r=n.get(a.IUniverInstanceService),s=o.getCurrentSelections();if(!s)return!1;const l=m.getSheetCommandTarget(r);if(!l)return!1;const{worksheet:c}=l;let d=s[0].range;if(!d)return!1;d={...d,endColumn:c.getColumnCount()-1};const u=p=>p.endRow-p.startRow;return!c.getMergeData().find(p=>{const f=a.Rectangle.getIntersects(p,d);return f?u(p)>u(f):!1})||await i.confirm({id:eo.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}},ri={id:"sheet.command.refill",type:a.CommandType.COMMAND,handler:async(n,i)=>{const e=n.get(gt);return e.applyType=i.type,!0}},si={id:"sheet.command.remove-row-confirm",type:a.CommandType.COMMAND,handler:async(n,i)=>{var d;const e=n.get(m.SheetsSelectionsService);let t=i==null?void 0:i.range;if(t||(t=(d=e.getCurrentLastSelection())==null?void 0:d.range),!t)return!1;const o=n.get(a.ICommandService),r=n.get(a.IUniverInstanceService),s=m.getSheetCommandTarget(r);if(!s)return!1;const{worksheet:l}=s,c=l.getVisibleRows();if(hl(c,[t])){const u=n.get(R.IConfirmService),h=n.get(a.LocaleService);return await u.confirm({id:"sheet.confirm.remove-row",title:{title:h.t("info.problem")},children:{title:h.t("rightClick.deleteAllRowsAlert")},cancelText:h.t("button.cancel"),confirmText:h.t("button.confirm")}),!1}return await o.executeCommand(m.RemoveRowCommand.id,{range:t}),!0}},li={id:"sheet.command.remove-col-confirm",type:a.CommandType.COMMAND,handler:async(n,i)=>{var d;const e=n.get(m.SheetsSelectionsService);let t=i==null?void 0:i.range;if(t||(t=(d=e.getCurrentLastSelection())==null?void 0:d.range),!t)return!1;const o=n.get(a.ICommandService),r=n.get(a.IUniverInstanceService),s=m.getSheetCommandTarget(r);if(!s)return!1;const{worksheet:l}=s,c=l.getVisibleCols();if(ml(c,[t])){const u=n.get(R.IConfirmService),h=n.get(a.LocaleService);return await u.confirm({id:"sheet.confirm.remove-col",title:{title:h.t("info.problem")},children:{title:h.t("rightClick.deleteAllColumnsAlert")},cancelText:h.t("button.cancel"),confirmText:h.t("button.confirm")}),!1}return await o.executeCommand(m.RemoveColCommand.id,{range:t}),!0}},ai={id:"sheet.command.remove-sheet-confirm",type:a.CommandType.COMMAND,handler:async(n,i)=>{const{subUnitId:e}=i,t=n.get(R.IConfirmService),o=n.get(a.ICommandService),r=n.get(a.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 o.executeCommand(m.RemoveSheetCommand.id,{subUnitId:e}),!0):!1}},At=k.createIdentifier("univer.sheetbar-service");class Yl extends a.Disposable{constructor(){super();E(this,"renameId$");E(this,"removeId$");E(this,"scroll$");E(this,"scrollX$");E(this,"addSheet$");E(this,"_renameId$");E(this,"_removeId$");E(this,"_scroll$");E(this,"_scrollX$");E(this,"_addSheet$");E(this,"_currentHandler",null);this._renameId$=new O.Subject,this.renameId$=this._renameId$.asObservable(),this._removeId$=new O.Subject,this.removeId$=this._removeId$.asObservable(),this._scroll$=new O.Subject,this.scroll$=this._scroll$.asObservable(),this._scrollX$=new O.Subject,this.scrollX$=this._scrollX$.asObservable(),this._addSheet$=new O.Subject,this.addSheet$=this._addSheet$.asObservable()}setRenameId(e){this._renameId$.next(e)}setRemoveId(e){this._removeId$.next(e)}setScroll(e){this._scroll$.next(e)}setScrollX(e){this._scrollX$.next(e)}setAddSheet(e){this._addSheet$.next(e)}triggerSheetBarMenu(){var e;(e=this._currentHandler)==null||e.handleSheetBarMenu()}registerSheetBarMenuHandler(e){if(this._currentHandler)throw new Error("There is already a context menu handler!");return this._currentHandler=e,a.toDisposable(()=>{this._currentHandler=null})}}const ci={id:"ui-sheet.command.show-menu-list",type:a.CommandType.OPERATION,handler:async n=>(n.get(At).triggerSheetBarMenu(),!0)},di={id:"sheet.operation.set-activate-cell-edit",type:a.CommandType.OPERATION,handler:(n,i)=>(n.get(qe).setEditCell(i),!0)},ui={id:"sheet.operation.rename-sheet",type:a.CommandType.OPERATION,handler:async(n,i)=>{const e=n.get(At);return i&&e.setRenameId(i.subUnitId),!0}};var De=function(){return De=Object.assign||function(n){for(var i,e=1,t=arguments.length;e<t;e++){i=arguments[e];for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(n[o]=i[o])}return n},De.apply(this,arguments)},ym=function(n,i){var e={};for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&i.indexOf(t)<0&&(e[t]=n[t]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,t=Object.getOwnPropertySymbols(n);o<t.length;o++)i.indexOf(t[o])<0&&Object.prototype.propertyIsEnumerable.call(n,t[o])&&(e[t[o]]=n[t[o]]);return e},ve=V.forwardRef(function(n,i){var e=n.icon,t=n.id,o=n.className,r=n.extend,s=ym(n,["icon","id","className","extend"]),l="univerjs-icon univerjs-icon-".concat(t," ").concat(o||"").trim(),c=V.useRef("_".concat(Am()));return Zl(e,"".concat(t),{defIds:e.defIds,idSuffix:c.current},De({ref:i,className:l},s),r)});function Zl(n,i,e,t,o){return V.createElement(n.tag,De(De({key:i},Mm(n,e,o)),t),(Om(n,e).children||[]).map(function(r,s){return Zl(r,"".concat(i,"-").concat(n.tag,"-").concat(s),e,void 0,o)}))}function Mm(n,i,e){var t=De({},n.attrs);e!=null&&e.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=e.colorChannel1);var o=i.defIds;return!o||o.length===0||(n.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+i.idSuffix),Object.entries(t).forEach(function(r){var s=r[0],l=r[1];typeof l=="string"&&(t[s]=l.replace(/url\(#(.*)\)/,"url(#$1".concat(i.idSuffix,")")))})),t}function Om(n,i){var e,t=i.defIds;return!t||t.length===0?n:n.tag==="defs"&&(!((e=n.children)===null||e===void 0)&&e.length)?De(De({},n),{children:n.children.map(function(o){return typeof o.attrs.id=="string"&&t&&t.indexOf(o.attrs.id)>-1?De(De({},o),{attrs:De(De({},o.attrs),{id:o.attrs.id+i.idSuffix})}):o})}):n}function Am(){return Math.random().toString(36).substring(2,8)}ve.displayName="UniverIcon";var Nm={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"}}]},Gl=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"autofill",ref:i,icon:Nm}))});Gl.displayName="Autofill";var xm={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"}}]},mt=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"check-mark-single",ref:i,icon:xm}))});mt.displayName="CheckMarkSingle";var Dm={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"}}]},Kl=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"close-single",ref:i,icon:Dm}))});Kl.displayName="CloseSingle";var km={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"]},ql=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"convert-single",ref:i,icon:km}))});ql.displayName="ConvertSingle";var Hm={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"}}]},hi=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"delete-single",ref:i,icon:Hm}))});hi.displayName="DeleteSingle";var Vm={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"}}]}]},Sr=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"dropdown-single",ref:i,icon:Vm}))});Sr.displayName="DropdownSingle";var Wm={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"}}]},Jr=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"error-single",ref:i,icon:Wm}))});Jr.displayName="ErrorSingle";var Lm={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"}}]},Ql=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"eyelash-single",ref:i,icon:Lm}))});Ql.displayName="EyelashSingle";var Um={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"}}]},Jl=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"fx-single",ref:i,icon:Um}))});Jl.displayName="FxSingle";var Bm={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"}}]},$r=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"increase-single",ref:i,icon:Bm}))});$r.displayName="IncreaseSingle";var Fm={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"}}]},es=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"lock-single",ref:i,icon:Fm}))});es.displayName="LockSingle";var jm={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M11.3536 6.14645C11.5488 6.34171 11.5488 6.65829 11.3536 6.85355L8.35355 9.85355C8.15829 10.0488 7.84171 10.0488 7.64645 9.85355L4.64645 6.85355C4.45118 6.65829 4.45118 6.34171 4.64645 6.14645C4.84171 5.95118 5.15829 5.95118 5.35355 6.14645L8 8.79289L10.6464 6.14645C10.8417 5.95118 11.1583 5.95118 11.3536 6.14645Z",fillRule:"evenodd",clipRule:"evenodd"}}]},jn=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"more-down-single",ref:i,icon:jm}))});jn.displayName="MoreDownSingle";var Xm={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"}}]},vr=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"more-single",ref:i,icon:Xm}))});vr.displayName="MoreSingle";var zm={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"}}]}]},$l=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"paint-bucket",ref:i,icon:zm}))});$l.displayName="PaintBucket";var Ym={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"}}]},ea=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"protect-single",ref:i,icon:Ym}))});ea.displayName="ProtectSingle";var Zm={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"}}]},Cr=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"warning-single",ref:i,icon:Zm}))});Cr.displayName="WarningSingle";var Gm={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"}}]},ts=V.forwardRef(function(n,i){return V.createElement(ve,Object.assign({},n,{id:"write-single",ref:i,icon:Gm}))});ts.displayName="WriteSingle";const Km=()=>_.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"})]}),qm=()=>_.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"})]}),Qm=()=>_.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"})]}),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:"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"})]}),$m=()=>_.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"})}),eg=()=>_.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"})]}),tg=()=>_.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"})]}),ng=()=>_.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"})]}),og=()=>_.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"})}),Ks=()=>_.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 qs(n){const{type:i=a.BorderStyleTypes.THIN}=n;switch(i){case a.BorderStyleTypes.DASH_DOT:return _.jsx(Km,{});case a.BorderStyleTypes.DASH_DOT_DOT:return _.jsx(qm,{});case a.BorderStyleTypes.DASHED:return _.jsx(Qm,{});case a.BorderStyleTypes.HAIR:return _.jsx(Jm,{});case a.BorderStyleTypes.MEDIUM:return _.jsx($m,{});case a.BorderStyleTypes.MEDIUM_DASH_DOT:return _.jsx(eg,{});case a.BorderStyleTypes.MEDIUM_DASH_DOT_DOT:return _.jsx(tg,{});case a.BorderStyleTypes.MEDIUM_DASHED:return _.jsx(ng,{});case a.BorderStyleTypes.THICK:return _.jsx(og,{});case a.BorderStyleTypes.THIN:return _.jsx(Ks,{});default:return _.jsx(Ks,{})}}const ig="univer-ui-plugin-sheets-border-panel",rg="univer-ui-plugin-sheets-border-panel-position",sg="univer-ui-plugin-sheets-border-panel-position-item",lg="univer-ui-plugin-sheets-border-panel-position-item-active",ag="univer-ui-plugin-sheets-border-panel-styles",cg="univer-ui-plugin-sheets-border-panel-board",dg="univer-ui-plugin-sheets-border-panel-button",ug="univer-ui-plugin-sheets-border-panel-more-icon",Ve={uiPluginSheetsBorderPanel:ig,uiPluginSheetsBorderPanelPosition:rg,uiPluginSheetsBorderPanelPositionItem:sg,uiPluginSheetsBorderPanelPositionItemActive:lg,uiPluginSheetsBorderPanelStyles:ag,uiPluginSheetsBorderPanelBoard:cg,uiPluginSheetsBorderPanelButton:dg,uiPluginSheetsBorderPanelMoreIcon:ug},ns=`${dn}_BORDER_PANEL_COMPONENT`,ta=[{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"}],hg=[{label:a.BorderStyleTypes.THIN,value:a.BorderStyleTypes.THIN},{label:a.BorderStyleTypes.HAIR,value:a.BorderStyleTypes.HAIR},{label:a.BorderStyleTypes.DOTTED,value:a.BorderStyleTypes.DOTTED},{label:a.BorderStyleTypes.DASHED,value:a.BorderStyleTypes.DASHED},{label:a.BorderStyleTypes.DASH_DOT,value:a.BorderStyleTypes.DASH_DOT},{label:a.BorderStyleTypes.DASH_DOT_DOT,value:a.BorderStyleTypes.DASH_DOT_DOT},{label:a.BorderStyleTypes.MEDIUM,value:a.BorderStyleTypes.MEDIUM},{label:a.BorderStyleTypes.MEDIUM_DASHED,value:a.BorderStyleTypes.MEDIUM_DASHED},{label:a.BorderStyleTypes.MEDIUM_DASH_DOT,value:a.BorderStyleTypes.MEDIUM_DASH_DOT},{label:a.BorderStyleTypes.MEDIUM_DASH_DOT_DOT,value:a.BorderStyleTypes.MEDIUM_DASH_DOT_DOT},{label:a.BorderStyleTypes.THICK,value:a.BorderStyleTypes.THICK}];function na(n){var c;const i=j.useDependency(R.ComponentManager),e=j.useDependency(m.BorderStyleManagerService),{onChange:t,value:o}=n;function r(d,u){t==null||t({...o,[u]:d})}function s(d){const u=i.get(d);return u&&_.jsx(u,{extend:{colorChannel1:"rgb(var(--primary-color))"}})}function l(d){d.stopPropagation()}return _.jsxs("section",{className:Ve.uiPluginSheetsBorderPanel,children:[_.jsx("div",{className:Ve.uiPluginSheetsBorderPanelPosition,children:ta.map(d=>_.jsx("div",{className:e.getBorderInfo().type===d.value?`${Ve.uiPluginSheetsBorderPanelPositionItemActive} ${Ve.uiPluginSheetsBorderPanelPositionItem}`:Ve.uiPluginSheetsBorderPanelPositionItem,onClick:u=>{u.stopPropagation(),r(d.value,"type")},children:s(d.icon)},d.value))}),_.jsxs("div",{className:Ve.uiPluginSheetsBorderPanelStyles,children:[_.jsx("div",{children:_.jsx(te.Dropdown,{align:{offset:[0,18]},overlay:_.jsx("section",{className:Ve.uiPluginSheetsBorderPanelBoard,onClick:l,children:_.jsx(te.ColorPicker,{onChange:d=>r(d,"color")})}),children:_.jsxs("a",{className:Ve.uiPluginSheetsBorderPanelButton,onClick:l,children:[_.jsx($l,{extend:{colorChannel1:(c=o.color)!=null?c:"rgb(var(--primary-color))"}}),_.jsx("span",{className:Ve.uiPluginSheetsBorderPanelMoreIcon,children:_.jsx(jn,{})})]})})}),_.jsx("div",{children:_.jsx(te.Dropdown,{align:{offset:[0,18]},overlay:_.jsx("section",{onClick:l,children:_.jsx(te.Menu,{children:hg.map(d=>_.jsx(te.MenuItem,{eventKey:d.value.toString(),onClick:()=>r(d.value,"style"),children:_.jsx(qs,{type:d.value})},d.value))})}),children:_.jsxs("a",{className:Ve.uiPluginSheetsBorderPanelButton,onClick:l,children:[_.jsx(qs,{type:a.BorderStyleTypes.THIN}),_.jsx("span",{className:Ve.uiPluginSheetsBorderPanelMoreIcon,children:_.jsx(jn,{})})]})})})]})]})}const mg="univer-count-bar",gg={countBar:mg},pg=[50,80,100,130,150,170,200,400];function fg(){const n=j.useDependency(a.ICommandService),i=j.useDependency(a.IUniverInstanceService),e=V.useCallback(()=>{const s=i.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),l=s&&s.getZoomRatio()*100||100;return Math.round(l)},[i]),[t,o]=V.useState(()=>e());V.useEffect(()=>n.onCommandExecuted(l=>{if(l.id===ze.id||l.id===m.SetWorksheetActiveOperation.id){const c=e();o(c)}}).dispose,[n,e]);function r(s){o(s);const l=i.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),c=l==null?void 0:l.getActiveSheet();if(c==null)return;const d=s/100;n.executeCommand(nn.id,{unitId:l.getUnitId(),subUnitId:c.getSheetId(),zoomRatio:d})}return _.jsx(te.Slider,{min:or[0],value:t,shortcuts:pg,onChange:r})}function Sg(n){return _.jsx("section",{className:gg.countBar,children:_.jsx(fg,{})})}const vg="univer-editor-container",Cg="univer-editor-input",Qs={editorContainer:vg,editorInput:Cg},Mo=-1e3,Js={width:0,height:0,top:Mo,left:Mo},_g=()=>{const[n,i]=V.useState({...Js}),e=j.useDependency(ei),t=j.useDependency(R.IEditorService),o=j.useDependency(a.IContextService),r=R.useObservable(()=>o.subscribeContextValue$(R.DISABLE_AUTO_FOCUS_KEY),!1,void 0,[o,R.DISABLE_AUTO_FOCUS_KEY]),s={id:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,body:{dataStream:`${a.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[],paragraphs:[{startIndex:0}]},documentStyle:{documentFlavor:a.DocumentFlavor.MODERN}};return V.useEffect(()=>{e.state$.subscribe(l=>{if(l==null)return;const{startX:c=Mo,startY:d=Mo,endX:u=0,endY:h=0,show:g=!1}=l;if(!g)i({...Js});else{i({width:u-c-P.FIX_ONE_PIXEL_BLUR_OFFSET+2,height:h-d-P.FIX_ONE_PIXEL_BLUR_OFFSET+2,left:c+P.FIX_ONE_PIXEL_BLUR_OFFSET,top:d+P.FIX_ONE_PIXEL_BLUR_OFFSET});const p=t.getEditor(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);if(p==null)return;const{left:f,top:S,width:v,height:C}=p.getBoundingClientRect();e.setRect({left:f,top:S,width:v,height:C})}})},[]),V.useEffect(()=>{r||e.setFocus(!0)},[r,n]),_.jsx("div",{className:Qs.editorContainer,style:{left:n.left,top:n.top,width:n.width,height:n.height},children:_.jsx(R.TextEditor,{id:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,className:Qs.editorInput,snapshot:s,cancelDefaultResizeListener:!0,isSheetEditor:!0,isSingle:!1})})},Ig="univer-defined-name",bg="univer-defined-name-drop-down",Rg="univer-defined-name-drop-down-disable",Tg="univer-defined-name-overlay",Eg="univer-defined-name-overlay-container",wg="univer-defined-name-overlay-item",Pg="univer-defined-name-overlay-item-name",yg="univer-defined-name-overlay-item-name-for-sheet",Mg="univer-defined-name-overlay-item-formula",Og="univer-defined-name-overlay-manager",Ag="univer-defined-name-overlay-manager-title",Ng="univer-defined-name-overlay-manager-content",xg="univer-defined-name-container",Dg="univer-defined-name-container-scroll",kg="univer-defined-name-container-addButton",Hg="univer-defined-name-container-addButton-text",Vg="univer-defined-name-container-item",Wg="univer-defined-name-container-item-name",Lg="univer-defined-name-container-item-name-for-sheet",Ug="univer-defined-name-container-item-formula-or-refString",Bg="univer-defined-name-container-item-update",Fg="univer-defined-name-container-item-delete",jg="univer-defined-name-container-item-show",Xg="univer-defined-name-input",zg="univer-defined-name-input-validation",Yg="univer-defined-name-input-disable",de={definedName:Ig,definedNameDropDown:bg,definedNameDropDownDisable:Rg,definedNameOverlay:Tg,definedNameOverlayContainer:Eg,definedNameOverlayItem:wg,definedNameOverlayItemName:Pg,definedNameOverlayItemNameForSheet:yg,definedNameOverlayItemFormula:Mg,definedNameOverlayManager:Og,definedNameOverlayManagerTitle:Ag,definedNameOverlayManagerContent:Ng,definedNameContainer:xg,definedNameContainerScroll:Dg,definedNameContainerAddButton:kg,definedNameContainerAddButtonText:Hg,definedNameContainerItem:Vg,definedNameContainerItemName:Wg,definedNameContainerItemNameForSheet:Lg,definedNameContainerItemFormulaOrRefString:Ug,definedNameContainerItemUpdate:Bg,definedNameContainerItemDelete:Fg,definedNameContainerItemShow:jg,definedNameInput:Xg,definedNameInputValidation:zg,definedNameInputDisable:Yg},os="DefinedNameContainer",_r="AllDefaultWorkbook",mi={id:"sidebar.operation.defined-name",type:a.CommandType.COMMAND,handler:async(n,i)=>{const e=n.get(R.ISidebarService),t=n.get(R.IEditorService),o=n.get(a.LocaleService),r=n.get(a.IUniverInstanceService),s=m.getSheetCommandTarget(r);if(!s)return!1;const{unitId:l}=s;switch(i.value){case"open":t.setOperationSheetUnitId(l),e.open({header:{title:o.t("definedName.featureTitle")},children:{label:os},onClose:()=>{t.closeRangePrompt()},width:333});break;case"close":default:e.close();break}return!0}};function Zg(n){const i=j.useDependency(a.ICommandService),e=j.useDependency(a.LocaleService),t=j.useDependency($.IDefinedNamesService),s=j.useDependency(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId(),l=()=>{const g=t.getDefinedNameMap(s);return g?Array.from(Object.values(g)):[]},[c,d]=V.useState(l());V.useEffect(()=>{const g=t.update$.subscribe(()=>{d(l())});return()=>{g.unsubscribe()}},[]);const u=()=>{i.executeCommand(mi.id,{value:"open"})},h=g=>{t.focusRange(s,g.id)};return _.jsxs("div",{className:de.definedNameOverlay,children:[_.jsx("div",{className:de.definedNameOverlayContainer,children:c.map((g,p)=>_.jsxs("div",{className:de.definedNameOverlayItem,onClick:()=>{h(g)},children:[_.jsx("div",{className:de.definedNameOverlayItemName,title:g.name,children:g.name}),_.jsx("div",{className:de.definedNameOverlayItemFormula,title:g.formulaOrRefString,children:g.formulaOrRefString})]},p))}),_.jsxs("div",{className:de.definedNameOverlayManager,onClick:u,children:[_.jsx("div",{className:de.definedNameOverlayManagerTitle,children:e.t("definedName.managerTitle")}),_.jsx("div",{className:de.definedNameOverlayManagerContent,children:e.t("definedName.managerDescription")})]})]})}function Gg({disable:n}){const[i,e]=V.useState(""),t=j.useDependency($.IDefinedNamesService);return V.useEffect(()=>{const o=t.currentRange$.subscribe(()=>{e(t.getCurrentRangeForString())});return()=>{o.unsubscribe()}},[]),_.jsxs("div",{className:de.definedName,children:[_.jsx(te.Input,{className:ge({[de.defineNameInputDisable]:n}),value:i,type:"text",size:"small",affixWrapperStyle:{border:"none",paddingLeft:"6px",paddingRight:"6px",height:"100%"}}),_.jsx(te.Dropdown,{overlay:_.jsx(Zg,{}),children:_.jsx("div",{className:ge(de.definedNameDropDown,{[de.definedNameDropDownDisable]:n}),children:_.jsx(jn,{})})})]})}const Kg="univer-formula-box",qg="univer-name-ranges",Qg="univer-formula-bar",Jg="univer-formula-icon",$g="univer-formula-icon-disable",ep="univer-formula-icon-wrapper",tp="univer-icon-container",np="univer-icon-container-success",op="univer-formula-active",ip="univer-icon-container-error",rp="univer-icon-container-fx",sp="univer-formula-input",lp="univer-formula-content",ap="univer-arrow-container",cp="univer-arrow-container-disable",fe={formulaBox:Kg,nameRanges:qg,formulaBar:Qg,formulaIcon:Jg,formulaIconDisable:$g,formulaIconWrapper:ep,iconContainer:tp,iconContainerSuccess:np,formulaActive:op,iconContainerError:ip,iconContainerFx:rp,formulaInput:sp,formulaContent:lp,arrowContainer:ap,arrowContainerDisable:cp};function dp(){const[n,i]=V.useState(fe.formulaGrey),[e,t]=V.useState(0),o=j.useDependency(ti),r=j.useDependency(qe),l=j.useDependency(a.ThemeService).getCurrentTheme().primaryColor,[c,d]=V.useState(!1),u=j.useDependency(a.IUniverInstanceService),h=j.useDependency(m.SheetsSelectionsService),g=j.useDependency(m.WorksheetProtectionRuleModel),p=j.useDependency(m.RangeProtectionRuleModel),f=j.useDependency(a.IPermissionService);V.useLayoutEffect(()=>{const w=u.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);O.merge(g.ruleChange$,p.ruleChange$,h.selectionMoveEnd$).subscribe(()=>{var G,z,Y,F,Z;const y=w.getUnitId(),M=w.getActiveSheet();if(!M)return;const A=M.getSheetId();if(!((G=h.getCurrentLastSelection())==null?void 0:G.range))return;const x=(z=f.getPermissionPoint(new m.WorkbookEditablePermission(y).id))==null?void 0:z.value,D=(Y=f.getPermissionPoint(new m.WorksheetSetCellValuePermission(y,A).id))==null?void 0:Y.value,H=(F=f.getPermissionPoint(new m.WorksheetEditPermission(y,A).id))==null?void 0:F.value;if(!x||!D||!H){d(!0);return}const L=(Z=h.getCurrentSelections())==null?void 0:Z.map(K=>K.range),W=p.getSubunitRuleList(y,A).filter(K=>K.ranges.some(B=>L==null?void 0:L.some(U=>a.Rectangle.intersects(B,U)))),X=[];W.forEach(K=>{X.push(new m.RangeProtectionPermissionEditPoint(y,A,K.permissionId).id)});const q=f.composePermission(X).every(K=>K.value);d(!q)})},[]);const S={id:a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,body:{dataStream:`${a.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[],paragraphs:[{startIndex:0}]},documentStyle:{pageSize:{width:Number.POSITIVE_INFINITY,height:Number.POSITIVE_INFINITY},documentFlavor:a.DocumentFlavor.MODERN,marginTop:5,marginBottom:5,marginRight:0,marginLeft:0,paragraphLineGapDefault:0,renderConfig:{horizontalAlign:a.HorizontalAlign.UNSPECIFIED,verticalAlign:a.VerticalAlign.TOP,centerAngle:0,vertexAngle:0,wrapStrategy:a.WrapStrategy.WRAP,isRenderStyle:a.BooleanNumber.FALSE}}};V.useEffect(()=>{const w=r.visible$.subscribe(y=>{i(y.visible?fe.formulaActive:fe.formulaGrey)});return()=>w.unsubscribe()},[r.visible$]);function v(w){if(w==null)return;const y=w.getBoundingClientRect();o.setPosition(y)}function C(){t(e===0?1:0),setTimeout(()=>{o.handleFoldBtnClick(e===1)},150)}function I(){r.isVisible().visible&&r.changeVisible({visible:!1,eventType:P.DeviceInputEventType.Keyboard,keycode:R.KeyCode.ESC})}function b(){r.isVisible().visible&&r.changeVisible({visible:!1,eventType:P.DeviceInputEventType.PointerDown})}function T(){o.handleFxBtnClick(!0)}return _.jsxs("div",{className:fe.formulaBox,style:{height:e===0?"28px":"82px",pointerEvents:c?"none":"auto"},children:[_.jsx("div",{className:fe.nameRanges,children:_.jsx(Gg,{disable:c})}),_.jsxs("div",{className:fe.formulaBar,children:[_.jsx("div",{className:ge(fe.formulaIcon,{[fe.formulaIconDisable]:c}),children:_.jsxs("div",{className:fe.formulaIconWrapper,children:[_.jsx("span",{className:ge(fe.iconContainer,fe.iconContainerError,n),onClick:I,children:_.jsx(Kl,{})}),_.jsx("span",{className:ge(fe.iconContainer,fe.iconContainerSuccess,n),onClick:b,children:_.jsx(mt,{})}),_.jsx("span",{className:ge(fe.iconContainer,fe.iconContainerFx),onClick:T,children:_.jsx(Jl,{})})]})}),_.jsxs("div",{className:fe.formulaInput,children:[_.jsx(R.TextEditor,{id:a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,isSheetEditor:!0,resizeCallBack:v,cancelDefaultResizeListener:!0,onContextMenu:w=>w.preventDefault(),className:fe.formulaContent,snapshot:S,isSingle:!1}),_.jsx("div",{className:ge(fe.arrowContainer,{[fe.arrowContainerDisable]:c}),onClick:C,children:e===0?_.jsx(Sr,{}):_.jsx(Sr,{style:{transform:"rotateZ(180deg)"}})})]})]}),_.jsx(R.ProgressBar,{barColor:l})]})}const up="univer-operate-container",hp="univer-auto-fill-popup-menu",mp="univer-auto-fill-popup-menu-item",gp="univer-auto-fill-popup-menu-item-icon",pp="univer-auto-fill-popup-menu-item-title",fp="univer-auto-fill-popup-menu-item-hide",Sp="univer-btn-container",vp="univer-btn-container-expand",It={operateContainer:up,autoFillPopupMenu:hp,autoFillPopupMenuItem:mp,autoFillPopupMenuItemIcon:gp,autoFillPopupMenuItemTitle:pp,autoFillPopupMenuItemHide:fp,btnContainer:Sp,btnContainerExpand:vp},Cp=()=>{const[,n]=V.useState({});return V.useCallback(()=>n(i=>!i),[])},_p=()=>{const n=j.useDependency(a.ICommandService),i=j.useDependency(a.IUniverInstanceService),e=j.useDependency(P.IRenderManagerService),t=j.useDependency(gt),o=j.useDependency(a.LocaleService),[r,s]=V.useState([]),[l,c]=V.useState(!1),[d,u]=V.useState({row:-1,col:-1}),[h,g]=V.useState(le.SERIES),[p,f]=V.useState(!1),S=$o(),{sheetSkeletonManagerService:v,selectionRenderService:C}=V.useMemo(()=>{if(S){const F=e.getRenderById(S.getUnitId());return{sheetSkeletonManagerService:F==null?void 0:F.with(exports.SheetSkeletonManagerService),selectionRenderService:F==null?void 0:F.with(_e)}}return{sheetSkeletonManagerService:null,selectionRenderService:null}},[S,e]),I=()=>{f(!0)},b=()=>{f(!1)},T=Cp();if(V.useEffect(()=>n.onCommandExecuted((Z,K)=>{Z.id===nt.id&&T()}).dispose,[T,n]),V.useEffect(()=>{const F=v&&a.toDisposable(v.currentSkeleton$.subscribe(Z=>{Z&&T()}));return F==null?void 0:F.dispose},[v,T]),V.useEffect(()=>a.toDisposable(t.menu$.subscribe(Z=>{s(Z.map(K=>({...K,index:Z.indexOf(K)})))})).dispose,[t]),V.useEffect(()=>a.toDisposable(t.showMenu$.subscribe(Z=>{const{source:K,target:B}=t.autoFillLocation||{source:null,target:null};if(Z&&K&&B){const U=Math.max(K.rows[K.rows.length-1],B.rows[B.rows.length-1]),Q=Math.max(K.cols[K.cols.length-1],B.cols[B.cols.length-1]);u({row:U,col:Q})}else u({row:-1,col:-1})})).dispose,[t]),V.useEffect(()=>a.toDisposable(t.applyType$.subscribe(Z=>{g(Z)})).dispose,[t]),V.useEffect(()=>{function F(){c(!1)}return document.addEventListener("wheel",F),()=>{document.removeEventListener("wheel",F)}},[l]),d.col<0||d.row<0)return null;const w=Ke(i,e);if(!w||!C)return null;const{scene:y}=w,M=v==null?void 0:v.getCurrentSkeleton(),A=C.getViewPort(),N=y==null?void 0:y.scaleX,x=y==null?void 0:y.scaleY,D=y==null?void 0:y.getViewportScrollXY(A);if(!N||!y||!N||!x||!D)return null;const H=(M==null?void 0:M.getNoMergeCellPositionByIndex(d.row,d.col).endX)||0,L=(M==null?void 0:M.getNoMergeCellPositionByIndex(d.row,d.col).endY)||0,W=M==null?void 0:M.convertTransformToOffsetX(H,N,D),X=M==null?void 0:M.convertTransformToOffsetY(L,x,D);if(W==null||X==null)return null;const q=F=>{c(F)},G=F=>{n.executeCommand(ri.id,{type:F.value})},z=l||p,Y=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(te.Dropdown,{placement:"bottomLeft",trigger:["click"],overlay:_.jsx("ul",{className:It.autoFillPopupMenu,children:Y.map(F=>_.jsxs("li",{onClick:()=>G(F),className:It.autoFillPopupMenuItem,children:[_.jsx("span",{className:It.autoFillPopupMenuItemIcon,children:F.value===h&&_.jsx(mt,{style:{color:"rgb(var(--green-700, #409f11))"}})}),_.jsx("span",{className:It.autoFillPopupMenuItemTitle,children:o.t(F.label)})]},F.index))}),visible:l,onVisibleChange:q,children:_.jsxs("div",{className:ge(It.btnContainer,{[It.btnContainerExpand]:l}),children:[_.jsx(Gl,{style:{color:"#35322B"},extend:{colorChannel1:"rgb(var(--green-700, #409f11))"}}),z&&_.jsx(jn,{style:{color:"#CCCCCC",fontSize:"8px",marginLeft:"8px"}})]})})})},Ip=()=>_.jsx("div",{className:It.operateContainer,children:_.jsx(_p,{})}),bp="univer-sheet-bar",Rp="univer-sheet-bar-options",Tp="univer-sheet-bar-options-divider",mo={sheetBar:bp,sheetBarOptions:Rp,sheetBarOptionsDivider:Tp},Ep="univer-sheet-bar-btn",wp={sheetBarBtn:Ep};function Co(n){const{children:i,className:e,style:t,disabled:o=!1,onClick:r,...s}=n,l=c=>{if(o){c.preventDefault();return}r&&r(c)};return _.jsx("button",{className:wp.sheetBarBtn,style:t,disabled:o,onClick:l,...s,children:i})}const Pp="univer-sheet-bar-menu",yp="univer-sheet-bar-menu-item",Mp="univer-sheet-bar-menu-item-icon",Op="univer-sheet-bar-menu-item-hide",Ap="univer-sheet-bar-menu-item-select",Np="univer-sheet-bar-menu-item-label",st={sheetBarMenu:Pp,sheetBarMenuItem:yp,sheetBarMenuItemIcon:Mp,sheetBarMenuItemHide:Op,sheetBarMenuItemSelect:Ap,sheetBarMenuItemLabel:Np};function xp(n){const{style:i}=n,[e,t]=V.useState([]),[o,r]=V.useState(!1),s=j.useDependency(a.IUniverInstanceService),l=j.useDependency(a.ICommandService),c=j.useDependency(At),d=j.useDependency(m.WorksheetProtectionRuleModel),u=R.useObservable(()=>s.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),null,!1,[]),h=v=>{const{sheetId:C}=v;!C||!u||(v.hidden?l.executeCommand(m.SetWorksheetShowCommand.id,{unitId:u.getUnitId(),subUnitId:C,value:C}):v.selected||l.executeCommand(m.SetWorksheetActivateCommand.id,{unitId:u.getUnitId(),subUnitId:C}),r(!1))},g=V.useCallback(()=>{if(!u)return;const v=u.getSheets(),C=u.getActiveSheet(),I=v.map((b,T)=>({label:b.getName(),index:`${T}`,sheetId:b.getSheetId(),hidden:b.isSheetHidden()===a.BooleanNumber.TRUE,selected:C===b}));t(I)},[u,d]),p=V.useCallback(()=>l.onCommandExecuted(v=>{switch(v.id){case m.SetWorksheetHideMutation.id:case m.RemoveSheetMutation.id:case m.SetWorksheetNameMutation.id:case m.InsertSheetMutation.id:case m.SetWorksheetOrderMutation.id:case m.SetWorksheetActiveOperation.id:g();break}}),[l,g]);function f(){r(!0)}const S=v=>{r(v)};return V.useEffect(()=>{g();const v=new a.DisposableCollection;return v.add(p()),v.add(c.registerSheetBarMenuHandler({handleSheetBarMenu:f})),()=>v.dispose()},[p,c,g,u]),_.jsx(te.Dropdown,{placement:"topLeft",trigger:["click"],overlay:_.jsx("ul",{className:st.sheetBarMenu,style:{...i},children:e.map(v=>_.jsxs("li",{onClick:()=>h(v),className:v.selected?`${st.sheetBarMenuItem} ${st.sheetBarMenuItemSelect}`:v.hidden?`${st.sheetBarMenuItem} ${st.sheetBarMenuItemHide}`:st.sheetBarMenuItem,children:[_.jsx("span",{className:st.sheetBarMenuItemIcon,children:v.selected?_.jsx(mt,{}):v.hidden?_.jsx(Ql,{}):_.jsx(mt,{})}),_.jsx("div",{className:st.sheetBarMenuItemLabel,children:v.label})]},v.index))}),visible:o,onVisibleChange:S,children:_.jsx("div",{children:_.jsx(Co,{children:_.jsx(ql,{})})})})}const Dp="univer-slide-tab-bar-container",kp="univer-slide-tab-bar",Hp="univer-slide-tab-item",Vp="univer-slide-tab-active",Wp="univer-slide-tab-div",Lp="univer-slide-tab-div-edit",Up="univer-slide-tab-item-dropdown",xe={slideTabBarContainer:Dp,slideTabBar:kp,slideTabItem:Hp,slideTabActive:Vp,slideTabDiv:Wp,slideTabDivEdit:Lp,slideTabItemDropdown:Up};function Bp(n){const{sheetId:i,label:e,color:t,selected:o}=n,[r,s]=V.useState(o),l=j.useDependency(a.ThemeService);V.useEffect(()=>{s(o)},[o]);const c=d=>{const u=l.getCurrentTheme(),h=u.textColor,g=u.colorWhite;return new a.ColorKit(d).isDark()?g:h};return _.jsx("div",{"data-id":i,className:r?`${xe.slideTabActive} ${xe.slideTabItem}`:xe.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:xe.slideTabDiv,children:e})},i)}const Fp={easeOutStrong(n,i,e,t){return-e*((n=n/t-1)*n*n*n-1)+i},backOut(n,i,e,t,o){return typeof o>"u"&&(o=.7),e*((n=n/t-1)*n*((o+1)*n+o)+1)+i}},jp={loop:!1,begin:0,end:0,duration:300,delay:0,type:"easeOutStrong",receive(n){},success(n){},cancel(n){},complete(n){}};class Xp{constructor(i){E(this,"_config");E(this,"_status",0);E(this,"_start",0);E(this,"_handle",0);E(this,"_delayHandle",null);this._config={...jp,...i},this._config.loop&&(this._config.complete=()=>{},this._config.success=()=>{this.request()})}static success(...i){let e=0;return new Promise(t=>{for(let o=0;o<i.length;o++){const r=i[o],s=r._config,l=s.success;s.loop||(s.success=d=>{e++,l&&l.call(r,d),e===i.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 i=Date.now()-this._start;i=i>=this._config.duration?this._config.duration:i;const t=Fp[this._config.type](i,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(i===this._config.duration){this._config.success(t),this._config.complete(t);return}this._handle=requestAnimationFrame(()=>{this._fakeHandle()})}}class Tt{constructor(i,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=i,this._animate=null,this._translateX=0,this._editMode=!1,this._slideTabBar=e,this._placeholder=null,this._scrollbar=e.getScrollbar(),this.update()}static midline(i){return i.getBoundingRect().x+i.getBoundingRect().width/2}static leftLine(i){return i.getBoundingRect().x}static rightLine(i){return i.getBoundingRect().x+i.getBoundingRect().width}static make(i,e){const t=[];return i.forEach(o=>t.push(new Tt(o,e))),t}getSlideTabItem(){return this._slideTabItem}getEditor(){return this._slideTabItem.querySelector("span")}focus(){var i;(i=this.getEditor())==null||i.focus()}selectAll(){const i=this.getEditor();i&&jt.keepSelectAll(i)}isEditMode(){return this._editMode}classList(){return this._slideTabItem.classList}translateX(i){return this._translateX=i,this._slideTabItem.style.transform=`translateX(${i}px)`,this.getTranslateXDirection()}setEditor(i){if(!this._slideTabBar.getConfig().onNameChangeCheck())return;let e=!0;if(this._editMode===!1){const t=this._slideTabItem.querySelector("span"),o=d=>{if(!this.nameCheck()){if(this._editMode=!1,t&&(t.removeAttribute("contentEditable"),t.removeEventListener("focusout",o),t.removeEventListener("compositionstart",s),t.removeEventListener("compositionend",l),t.removeEventListener("input",c),t.removeEventListener("keydown",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)}i&&i(d)}};let r=d=>{t&&(d.stopPropagation(),d.key==="Enter"&&t.blur())};const s=d=>{e=!1},l=d=>{e=!0},c=d=>{if(!t)return;const u=31;setTimeout(()=>{if(e){const h=t.innerText;h.length>u&&(t.innerText=h.substring(0,u),jt.keepLastIndex(t))}},0)};t&&(t.setAttribute("contentEditable","true"),t.addEventListener("focusout",o),t.addEventListener("compositionstart",s),t.addEventListener("compositionend",l),t.addEventListener("input",c),t.addEventListener("keydown",r),t.classList.add(this._slideTabBar.getConfig().slideTabBarSpanEditClassName),this._editMode=!0,jt.keepSelectAll(t))}}nameCheck(){const i=this._slideTabItem.querySelector("span");if(!i)return!1;const e=i.innerText;return this._slideTabBar.getConfig().onNameCheckAlert(e)}animate(){return{translateX:i=>{this._translateX!==i&&(this._animate&&(this._animate.cancel(),this._animate=null),this._animate=new Xp({begin:this._translateX,end:i,receive:e=>{this._slideTabItem.style.transform=`translateX(${e}px)`}}),this._translateX=i,this._animate.request())},cancel:()=>{this._animate&&(this._animate.cancel(),this._animate=null)}}}after(i){this._slideTabItem.after(i._slideTabItem||i)}update(){this._midline=Tt.midline(this)}disableFixed(){if(this._placeholder){const i=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),i.removeChild(this._placeholder),this._placeholder=null}}enableFixed(){const i=document.createElement("div"),e=this.getBoundingRect(),t=getComputedStyle(this._slideTabItem),o=this._slideTabItem.querySelector("span");if(this._placeholder=i,this._placeholder.style.width=`${e.width}px`,this._placeholder.style.height=`${e.height}px`,this._placeholder.style.flexShrink="0",this._placeholder.style.margin=t.margin,this._slideTabItem.style.background=t.background,o){const r=getComputedStyle(o).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(i),document.body.appendChild(this._slideTabItem)}addEventListener(i,e,t){this._slideTabItem.addEventListener(i,e,t)}removeEventListener(i,e,t){this._slideTabItem.removeEventListener(i,e,t)}getScrollbar(){return this._scrollbar}getMidLine(){return this._midline}getBoundingRect(){const i=this._slideTabItem.getBoundingClientRect();return i.x+=this._scrollbar.getScrollX(),i}getWidth(){return this.getBoundingRect().width}getTranslateXDirection(){const i=Tt.midline(this);return i>this._midline?1:i<this._midline?-1:0}equals(i){return i&&i._slideTabItem===this._slideTabItem}getId(){return this._slideTabItem.dataset.id||""}}class zp{constructor(i){E(this,"_slideTabBar");E(this,"_scrollX");const e=i.primeval();this._scrollX=e.scrollLeft,this._slideTabBar=i}scrollX(i){const e=this._slideTabBar.primeval();e.scrollLeft=i,this._scrollX=e.scrollLeft}scrollRight(){const i=this._slideTabBar.primeval();i.scrollLeft=i.scrollWidth,this._scrollX=i.scrollLeft}getScrollX(){return this._scrollX}}const Ut=class Ut{constructor(i){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(i.slideTabBarContainer==null)throw new Error("not found slide-tab-bar root element");const e=i.slideTabBarContainer.querySelector(`.${(s=i.slideTabBarClassName)!=null?s:"slide-tab-bar"}`);if(e==null)throw new Error("not found slide-tab-bar");this._slideTabBar=e,this._slideScrollbar=new zp(this),this._config=i,this._initConfig();let t=0,o=0,r=0;this._downAction=l=>{var y,M,A,N,x,D;if((y=this._activeTabItem)!=null&&y.isEditMode())return;this._longPressTimer&&(clearTimeout(this._longPressTimer),this._longPressTimer=null);const c=(A=(M=l.target)==null?void 0:M.closest(`.${i.slideTabBarItemClassName}`))==null?void 0:A.getAttribute("data-id"),d=this._slideTabItems.findIndex(H=>H.getId()===c);if(c==null||d===-1)return;if(this._activeTabItemIndex!==d){(N=this._activeTabItem)==null||N.removeEventListener("pointermove",this._moveAction),(x=this._activeTabItem)==null||x.removeEventListener("pointerup",this._upAction),this.removeListener(),this._config.onChangeTab(l,c);return}if(this._compareIndex=d,this._downActionX=l.pageX,this._moveActionX=0,this._scrollIncremental=0,this._activeTabItem=this._slideTabItems[d],!this._activeTabItem){console.error("Not found active slide-tab-item in sheet bar");return}const u=this._activeTabItem.getSlideTabItem();u==null||u.setPointerCapture(l.pointerId),(D=this._activeTabItem)==null||D.addEventListener("pointerup",this._upAction);const{x:h,width:g}=this._activeTabItem.getBoundingRect(),{x:p,width:f}=this.getBoundingRect(),S=this._slideScrollbar.getScrollX();if(this._leftBoundingLine=this._downActionX-(h-S),this._rightBoundingLine=h-S+g-this._downActionX,this._leftMoveX=h-p-S,this._rightMoveX=p+f-(h+g)+S,l.button===2||this._hasEditItem())return;const{pageX:v,pageY:C}=l,I=Date.now(),b=I-r<=Ut.DoubleClickDelay,T=Math.abs(v-t)<10,w=Math.abs(C-o)<10;b&&T&&w&&this._activeTabItem.setEditor(),t=v,o=C,r=I,this._longPressTimer=setTimeout(()=>{var H,L,W;!u||(H=this._activeTabItem)!=null&&H.isEditMode()||((L=this._activeTabItem)==null||L.enableFixed(),this._startAutoScroll(),u.setPointerCapture(l.pointerId),u.style.cursor="move",(W=this._activeTabItem)==null||W.addEventListener("pointermove",this._moveAction))},Ut.LongPressDelay)},this._upAction=l=>{var d,u,h,g;if((d=this._activeTabItem)!=null&&d.isEditMode()||(this._longPressTimer&&(clearTimeout(this._longPressTimer),this._longPressTimer=null),!this._activeTabItem))return;this._closeAutoScroll(),this._activeTabItem.disableFixed(),this.updateItems();const c=(u=this._activeTabItem)==null?void 0:u.getSlideTabItem();c&&(c.style.cursor="",c.releasePointerCapture(l.pointerId),(h=this._activeTabItem)==null||h.removeEventListener("pointermove",this._moveAction),(g=this._activeTabItem)==null||g.removeEventListener("pointerup",this._upAction),this._config.onSlideEnd&&this._activeTabItemIndex!==this._compareIndex&&(this.removeListener(),this._config.onSlideEnd(l,this._compareIndex||0)),this._scrollIncremental=0,this._downActionX=0,this._moveActionX=0,this._compareIndex=0)},this._moveAction=l=>{this._activeTabItem&&(this._moveActionX=l.pageX-this._downActionX,this._moveActionX<=-this._leftMoveX?this._moveActionX=-this._leftMoveX:this._moveActionX>=this._rightMoveX&&(this._moveActionX=this._rightMoveX),this._scrollIncremental=0,this._scrollLeft(l),this._scrollRight(l))},this._wheelAction=l=>{this.setScroll(l.deltaY)},this.addListener()}static checkedSkipSlide(i){let e=i.target;for(;e!=null&&e!==document.body;){if(e.getAttribute("data-slide-skip"))return!0;e=e.parentElement}return!1}static keepLastIndex(i){setTimeout(()=>{const e=window.getSelection();e&&(e.selectAllChildren(i),e.collapseToEnd())})}static keepSelectAll(i){setTimeout(()=>{const e=window.getSelection();if(!e)return;const t=document.createRange();t.selectNodeContents(i),e.removeAllRanges(),e.addRange(t)})}update(i){this._config.currentIndex=i,this._initConfig(),this.removeListener(),this.addListener(),this.scrollToItem(i)}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 i=this._slideTabBar.parentElement;return i?this._slideTabBar.scrollWidth-i.clientWidth===this._slideTabBar.scrollLeft:!1}addListener(){this._slideTabBar.addEventListener("wheel",this._wheelAction),this._slideTabItems.forEach(i=>{i.addEventListener("pointerdown",this._downAction)})}removeListener(){this._slideTabBar.removeEventListener("wheel",this._wheelAction),this._slideTabItems.forEach(i=>{i.removeEventListener("pointerdown",this._downAction)})}setScroll(i){if(this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+i),i>0){const e=this.calculateLeftScrollX();this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e)}else if(i<0){const e=this.calculateRightScrollX();this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e)}this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}flipPage(i){if(i>0){const e=this.calculateLeftScrollX(!0);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e)}else if(i<0){const e=this.calculateRightScrollX(!0);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e)}this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}scrollToItem(i){if(i=i!=null?i:this._config.currentIndex,i<0||i>=this._slideTabItems.length){console.error("Index out of bounds");return}const e=this.calculateTabItemScrollX(i);this._slideScrollbar.scrollX(this._slideScrollbar.getScrollX()+e),this._config.onScroll({leftEnd:this.isLeftEnd(),rightEnd:this.isRightEnd()})}calculateLeftScrollX(i){let e=0;const t=4;return this._slideTabItems.some(o=>{const r=this._slideTabBar.getBoundingClientRect(),s=r.left+r.width,l=o.getSlideTabItem().getBoundingClientRect(),c=l.left,d=l.width;return c<s&&c+d+t*2>s?(e=i?c-r.left-t:c+d-s+t,!0):!1}),e}calculateRightScrollX(i){let e=0;const t=4;return this._slideTabItems.some(o=>{const r=this._slideTabBar.getBoundingClientRect(),s=r.left,l=o.getSlideTabItem().getBoundingClientRect(),c=l.left,d=l.width;return c-t*2<s&&c+d>s?(e=i?c+d-r.left-r.width+t:c-s-t,!0):!1}),e}calculateTabItemScrollX(i){let e=0;const t=4,o=this._slideTabBar.getBoundingClientRect(),r=o.left,s=o.left+o.width,l=this._slideTabItems[i].getSlideTabItem().getBoundingClientRect(),c=l.left,d=l.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 i=0;const e=4,t=this._slideTabBar.getBoundingClientRect(),o=t.left,r=t.left+t.width,s=(d=this._activeTabItem)==null?void 0:d.getSlideTabItem().getBoundingClientRect();if(!s)return 0;const l=s.left,c=s.width;return l-e*2<o&&l+c>o&&(i=l-o-e),l<r&&l+c+e*2>r&&(i=l+c-r+e),i}destroy(){this._downActionX=0,this._moveActionX=0,this._compareDirection=0,this._compareIndex=0,this._slideTabItems=[],this._activeTabItem=null,this.removeListener()}_hasEditItem(){for(let i=0;i<this._slideTabItems.length;i++)if(this._slideTabItems[i].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(i){const e=this.getBoundingRect(),t=i.pageX-e.x;t<this._leftBoundingLine&&(this._scrollIncremental=-Math.min(Math.abs(t-this._leftBoundingLine)*.1,50))}_scrollRight(i){const e=this.getBoundingRect(),t=i.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 i=0;i<this._slideTabItems.length;i++){const e=this._slideTabItems[i],t=this._slideTabItems[i+1];t&&e.after(t)}}_compareLeft(){if(this._activeTabItem&&this._activeTabItemIndex){const i=this._slideTabItems.findIndex(r=>r.equals(this._activeTabItem)),e=this._slideTabItems.length,t=[];for(let r=0;r<i&&!(r>=i);r++)t.push(this._slideTabItems[r]);for(let r=i+1;r<e;r++)this._slideTabItems[r].animate().translateX(0);let o=!0;for(let r=t.length-1;r>=0;r--){const s=t[r];Tt.leftLine(this._activeTabItem)<s.getMidLine()?(s.animate().translateX(this._activeTabItem.getWidth()),this._compareIndex=r,o=!1):(s.animate().translateX(0),o&&(this._compareIndex=this._activeTabItemIndex))}}}_compareRight(){if(this._activeTabItem){const i=this._slideTabItems.findIndex(r=>r.equals(this._activeTabItem)),e=this._slideTabItems.length,t=[];for(let r=i+1;r<e;r++)t.push(this._slideTabItems[r]);for(let r=0;r<i;r++)this._slideTabItems[r].animate().translateX(0);let o=!0;for(let r=0;r<t.length;r++){const s=t[r];Tt.rightLine(this._activeTabItem)>s.getMidLine()?(s.animate().translateX(-this._activeTabItem.getWidth()),this._compareIndex=i+r+1,o=!1):(s.animate().translateX(0),o&&(this._compareIndex=this._activeTabItemIndex))}}}_initConfig(){var e;const i=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=Tt.make(i,this),this._activeTabItemIndex=this._config.currentIndex,this._activeTabItem=this._slideTabItems[this._activeTabItemIndex]}};E(Ut,"LongPressDelay",500),E(Ut,"DoubleClickDelay",300);let jt=Ut;function Yp(){const[n,i]=V.useState([]),[e,t]=V.useState(""),[o,r]=V.useState(""),[s,l]=V.useState(!1),[c,d]=V.useState([0,0]),u=V.useRef({slideTabBar:null}),h=V.useRef(null),g=j.useDependency(a.IUniverInstanceService),p=j.useDependency(a.ICommandService),f=j.useDependency(At),S=j.useDependency(a.LocaleService),v=j.useDependency(R.IConfirmService),C=j.useDependency(qe,k.Quantity.OPTIONAL),I=j.useDependency(m.WorksheetProtectionRuleModel),b=j.useDependency(m.RangeProtectionRuleModel),T=R.useObservable(I.resetOrder$),w=$o(),y=j.useDependency(a.IPermissionService),M=V.useCallback(()=>{var ae;const B=((ae=w.getActiveSheet())==null?void 0:ae.getSheetId())||"";t(B);const U=w.getSheets(),Q=w.getActiveSheet(),ee=U.filter(se=>!se.isSheetHidden()).map((se,Ee)=>{var gn;const Ce=I.getRule(w.getUnitId(),se.getSheetId()),Nt=b.getSubunitRuleList(w.getUnitId(),se.getSheetId()).length>0,xt=(Ce==null?void 0:Ce.permissionId)||Nt?_.jsxs(_.Fragment,{children:[_.jsx(es,{}),_.jsx("span",{children:se.getName()})]}):_.jsx("span",{children:se.getName()});return{sheetId:se.getSheetId(),label:xt,index:Ee,selected:Q===se,color:(gn=se.getTabColor())!=null?gn:void 0}});i(ee),t(B)},[b,w,I]);V.useEffect(()=>{M();const B=A(),U=X(),Q=[q(),G(),z()];return()=>{U.dispose(),B.destroy(),Q.forEach(ee=>ee.unsubscribe())}},[T]),V.useEffect(()=>{n.length>0&&W()},[n]),V.useEffect(()=>{const B=O.merge(I.ruleChange$,b.ruleChange$).subscribe(()=>{M()});return()=>{B.unsubscribe()}},[I,M]);const A=()=>{const B=new jt({slideTabBarClassName:xe.slideTabBar,slideTabBarItemActiveClassName:xe.slideTabActive,slideTabBarItemClassName:xe.slideTabItem,slideTabBarSpanEditClassName:xe.slideTabDivEdit,slideTabBarItemAutoSort:!0,slideTabBarContainer:h.current,currentIndex:0,onChangeName:(U,Q)=>{p.executeCommand(m.SetWorksheetNameCommand.id,{subUnitId:U,name:Q})},onSlideEnd:async(U,Q)=>{await p.executeCommand(m.SetWorksheetOrderCommand.id,{order:Q})},onChangeTab:(U,Q)=>{p.executeCommand(m.SetWorksheetActiveOperation.id,{subUnitId:Q,unitId:w.getUnitId()}).then(()=>{U.button===2&&K(!0)})},onScroll:U=>{f.setScroll(U)},onNameCheckAlert:U=>N(U)||x(U)||D(U),onNameChangeCheck:()=>{var Ee,Ce,Nt,mn;const U=w.getUnitId(),Q=w==null?void 0:w.getActiveSheet();if(!Q)throw new Error("No active sheet found");const ee=Q.getSheetId(),ae=I.getRule(U,ee),se=b.getSubunitRuleList(U,ee).length>0;return ae||se?(Ce=(Ee=y.getPermissionPoint(new m.WorkbookManageCollaboratorPermission(U).id))==null?void 0:Ee.value)!=null?Ce:!1:(mn=(Nt=y.getPermissionPoint(new m.WorkbookRenameSheetPermission(U).id))==null?void 0:Nt.value)!=null?mn:!1}});return u.current.slideTabBar=B,Z(B),B},N=B=>{if(B.trim()===""){const U="sheetNameEmptyAlert";return v.open({id:U,title:{title:S.t("sheetConfig.sheetNameErrorTitle")},children:{title:S.t("sheetConfig.sheetNameCannotIsEmptyError")},cancelText:S.t("button.cancel"),confirmText:S.t("button.confirm"),onClose(){H(),v.close(U)},onConfirm(){H(),v.close(U)}}),!0}return!1},x=B=>{if(!a.nameCharacterCheck(B)){const U="sheetNameSpecCharAlert";return v.open({id:U,title:{title:S.t("sheetConfig.sheetNameErrorTitle")},children:{title:S.t("sheetConfig.sheetNameSpecCharError")},cancelText:S.t("button.cancel"),confirmText:S.t("button.confirm"),onClose(){H(),v.close(U)},onConfirm(){H(),v.close(U)}}),!0}return!1},D=B=>{const U=g.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),Q=U.getActiveSheet();if((Q==null?void 0:Q.getName())===B)return!1;const ae=U.checkSheetName(B);if(ae){const se="sheetNameRepeatAlert";v.open({id:se,title:{title:S.t("sheetConfig.sheetNameErrorTitle")},children:{title:S.t("sheetConfig.sheetNameAlreadyExistsError")},cancelText:S.t("button.cancel"),confirmText:S.t("button.confirm"),onClose(){v.close(se),H()},onConfirm(){v.close(se),H()}})}return ae},H=()=>{setTimeout(()=>{var U;const B=(U=u.current.slideTabBar)==null?void 0:U.getActiveItem();B&&(B.focus(),B.selectAll())},0)},L=()=>{var B,U;(U=(B=u.current.slideTabBar)==null?void 0:B.getActiveItem())==null||U.setEditor()},W=()=>{var U;const B=n.findIndex(Q=>Q.selected);(U=u.current.slideTabBar)==null||U.update(B)},X=()=>p.onCommandExecuted(B=>{switch(B.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:M();break}}),q=()=>f.scroll$.subscribe(B=>{Y(B)}),G=()=>f.scrollX$.subscribe(B=>{var U;(U=u.current.slideTabBar)==null||U.flipPage(B)}),z=()=>f.renameId$.subscribe(()=>{L()}),Y=B=>{const{leftEnd:U,rightEnd:Q}=B;let ee="";U&&Q?ee="":U&&!Q?ee="inset -10px 0px 10px -10px rgba(0, 0, 0, 0.2)":!U&&Q?ee="inset 10px 0px 10px -10px rgba(0, 0, 0, 0.2)":!U&&!Q&&(ee="inset 10px 0px 10px -10px rgba(0, 0, 0, 0.2), inset -10px 0px 10px -10px rgba(0, 0, 0, 0.2)"),r(ee)},F=B=>{const U=B.calculateActiveTabItemScrollX();if(U){const Q=B.getScrollbar();Q.scrollX(Q.getScrollX()+U)}f.setScroll({leftEnd:B.isLeftEnd(),rightEnd:B.isRightEnd()})},Z=B=>{var ee;const U=(ee=h.current)==null?void 0:ee.querySelector(`.${xe.slideTabBar}`);if(!U)return;new ResizeObserver(()=>{F(B)}).observe(U)},K=B=>{var U,Q,ee,ae,se;if(!(C!=null&&C.isForceKeepVisible())){if(B){const{left:Ee}=(Q=(U=h.current)==null?void 0:U.getBoundingClientRect())!=null?Q:{},{left:Ce}=(se=(ae=(ee=u.current.slideTabBar)==null?void 0:ee.getActiveItem())==null?void 0:ae.getSlideTabItem().getBoundingClientRect())!=null?se:{};Ee!==void 0&&Ce!==void 0&&d([Ce-Ee,0])}l(B)}};return _.jsx(te.Dropdown,{className:xe.slideTabItemDropdown,visible:s,align:{offset:c},trigger:["contextMenu"],overlay:_.jsx(R.Menu,{menuType:ue.SHEET_BAR,onOptionSelect:B=>{const{label:U,value:Q}=B;p.executeCommand(U,{value:Q,subUnitId:e}),l(!1)}}),onVisibleChange:K,children:_.jsx("div",{className:xe.slideTabBarContainer,ref:h,onDragStart:B=>B.preventDefault(),onContextMenu:B=>B.preventDefault(),children:_.jsx("div",{className:xe.slideTabBar,style:{boxShadow:o},children:n.map(B=>V.createElement(Bp,{...B,key:B.sheetId,selected:e===B.sheetId}))})})})}const $s=100,Zp=()=>{var v,C;const[n,i]=V.useState(!0),[e,t]=V.useState(!0),o=j.useDependency(a.ICommandService),r=j.useDependency(At),s=j.useDependency(a.IPermissionService),d=j.useDependency(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId(),u=R.useObservable(s.getPermissionPoint$((v=new m.WorkbookEditablePermission(d))==null?void 0:v.id)),h=R.useObservable(s.getPermissionPoint$((C=new m.WorkbookCreateSheetPermission(d))==null?void 0:C.id));V.useEffect(()=>{const I=r.scroll$.subscribe(b=>{g(b)});return()=>{I.unsubscribe()}},[]);const g=I=>{const{leftEnd:b,rightEnd:T}=I;i(b),t(T)},p=()=>{o.executeCommand(m.InsertSheetCommand.id),setTimeout(()=>{r.setAddSheet(0)},0)},f=()=>{r.setScrollX(-$s)},S=()=>{r.setScrollX($s)};return _.jsxs("div",{className:mo.sheetBar,children:[_.jsxs("div",{className:mo.sheetBarOptions,children:[_.jsx(Co,{onClick:p,disabled:!(h!=null&&h.value&&(u!=null&&u.value)),children:_.jsx($r,{})}),_.jsx(xp,{})]}),_.jsx(Yp,{}),(!n||!e)&&_.jsxs("div",{className:`${mo.sheetBarOptions} ${mo.sheetBarOptionsDivider}`,children:[_.jsx(Co,{disabled:n,onClick:f,children:_.jsx(vr,{style:{transform:"rotateZ(180deg)"}})}),_.jsx(Co,{disabled:e,onClick:S,children:_.jsx(vr,{})})]})]})};class oa{constructor(){E(this,"_functions",[{func:$.FUNCTION_NAMES_STATISTICAL.MAX,filter:i=>{var e,t,o,r;return((t=(e=i.values.find(s=>s.func===$.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((r=(o=i.values.find(s=>s.func===$.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:o.value)!=null?r:0)>0}},{func:$.FUNCTION_NAMES_STATISTICAL.MIN,filter:i=>{var e,t,o,r;return((t=(e=i.values.find(s=>s.func===$.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((r=(o=i.values.find(s=>s.func===$.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:o.value)!=null?r:0)>0}},{func:$.FUNCTION_NAMES_MATH.SUM,filter:i=>{var e,t,o,r;return((t=(e=i.values.find(s=>s.func===$.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((r=(o=i.values.find(s=>s.func===$.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:o.value)!=null?r:0)>0}},{func:$.FUNCTION_NAMES_STATISTICAL.COUNTA,filter:i=>{var e,t;return((t=(e=i.values.find(o=>o.func===$.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1}},{func:$.FUNCTION_NAMES_STATISTICAL.COUNT,filter:i=>{var e,t,o,r;return((t=(e=i.values.find(s=>s.func===$.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((r=(o=i.values.find(s=>s.func===$.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:o.value)!=null?r:0)>0}},{func:$.FUNCTION_NAMES_STATISTICAL.AVERAGE,filter:i=>{var e,t,o,r;return((t=(e=i.values.find(s=>s.func===$.FUNCTION_NAMES_STATISTICAL.COUNTA))==null?void 0:e.value)!=null?t:0)>1&&((r=(o=i.values.find(s=>s.func===$.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:o.value)!=null?r:0)>0}}]);E(this,"_state$",new O.BehaviorSubject(null));E(this,"state$",this._state$.asObservable())}dispose(){this._state$.complete()}setState(i){var t;const e={values:[],pattern:null};i==null||i.values.forEach(o=>{const r=this._functions.find(s=>s.func===o.func);r&&(r.filter===void 0||r.filter(i))&&e.values.push(o)}),e.pattern=(t=i==null?void 0:i.pattern)!=null?t:null,this._state$.next(e)}getState(){return this._state$.getValue()}getFunctions(){return this._functions}addFunctions(i){this._functions.push(...i)}}const gi=k.createIdentifier("univer.sheet-status-bar.service"),Gp="univer-status-bar",Kp="univer-single-mode",qp="univer-status-bar-div",Qp="univer-statistic-list",Jp="univer-statistic-list-column",$p="univer-statistic-item",ef="univer-statistic-picker",tf="univer-statistic-picker-item",nf="univer-statistic-more",Ht={statusBar:Gp,singleMode:Kp,statusBarDiv:qp,statisticList:Qp,statisticListColumn:Jp,statisticItem:$p,statisticPicker:ef,statisticPickerItem:tf,statisticMore:nf},of=[$.FUNCTION_NAMES_MATH.SUM,$.FUNCTION_NAMES_STATISTICAL.AVERAGE,$.FUNCTION_NAMES_STATISTICAL.MIN,$.FUNCTION_NAMES_STATISTICAL.MAX],Bi={[$.FUNCTION_NAMES_MATH.SUM]:"statusbar.sum",[$.FUNCTION_NAMES_STATISTICAL.AVERAGE]:"statusbar.average",[$.FUNCTION_NAMES_STATISTICAL.MIN]:"statusbar.min",[$.FUNCTION_NAMES_STATISTICAL.MAX]:"statusbar.max",[$.FUNCTION_NAMES_STATISTICAL.COUNT]:"statusbar.count",[$.FUNCTION_NAMES_STATISTICAL.COUNTA]:"statusbar.countA",[$.FUNCTION_NAMES_TEXT.CONCATENATE]:"concatenate"},Fi=n=>{const i=j.useDependency(a.LocaleService),e=j.useDependency(R.IMessageService),t=j.useDependency(R.IClipboardInterfaceService),o=rf(n),r=async()=>{await t.writeText(n.value.toString()),e.show({type:te.MessageType.Success,content:i.t("statusbar.copied")})};return _.jsx(te.Tooltip,{title:i.t("statusbar.clickToCopy"),placement:"top",children:_.jsx("div",{className:Ht.statisticItem,onClick:r,children:_.jsx("span",{children:`${i.t((Bi==null?void 0:Bi[n.name])||n.name)}: ${o}`})},n.name)})};function rf(n){const{pattern:i,value:e}=n;return typeof e!="number"?0:e>=1e8?e.toExponential(2):i&&of.includes(n.name)?tt.format(i,e):e.toLocaleString()}const el=800,sf=3,lf=()=>{const[n,i]=V.useState(window.innerWidth<el),[e,t]=V.useState(!0),o=j.useDependency(gi),r=o.getFunctions().map((g,p)=>({name:g.func,value:0,show:!0,disable:!1,pattern:null})),[s,l]=V.useState(r),c=s.find(g=>g.show&&!g.disable),d=n&&c?[c]:s.filter(g=>g.show&&!g.disable);V.useEffect(()=>{const g=o.state$.subscribe(p=>{const f=p==null?void 0:p.values;if(!f||f.length===0)t(!1);else{t(!0);const S=s.map(v=>{var I;const C=f.find(b=>b.func===v.name);return C?(v.value=C.value,v.disable=!1):v.disable=!0,v.pattern=(I=p==null?void 0:p.pattern)!=null?I:null,v});l(S)}});return()=>{g.unsubscribe()}},[o]);const u=a.debounce(()=>{const g=window.innerWidth<el;n!==g&&i(g)},100);V.useEffect(()=>(window.addEventListener("resize",u),()=>{window.removeEventListener("resize",u)}),[n]);let h=null;if(d.length>sf){const g=[];d.forEach((p,f)=>{f%2===0&&g.push(d.slice(f,f+2))}),h=_.jsxs(_.Fragment,{children:[" ",g.map((p,f)=>_.jsxs("div",{className:Ht.statisticListColumn,children:[(p==null?void 0:p[0])&&_.jsx(Fi,{...p==null?void 0:p[0]},p==null?void 0:p[0].name),(p==null?void 0:p[1])&&_.jsx(Fi,{...p==null?void 0:p[1]},p==null?void 0:p[1].name)]},`stat-col-${f}`))," "]})}else h=_.jsx(_.Fragment,{children:d.map(g=>_.jsx(Fi,{...g},g.name))});return e&&_.jsxs("div",{className:ge(Ht.statusBar,{[Ht.singleMode]:n}),children:[_.jsx("div",{className:ge(Ht.statisticList),children:h}),_.jsx("div",{className:Ht.statusBarDiv})]})};function af(){const n=j.useDependency(a.IUniverInstanceService);return R.useObservable(()=>n.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),null,!1,[])?_.jsxs("section",{className:xl.sheetContainer,"data-range-selector":!0,children:[_.jsx(Zp,{}),_.jsx(lf,{}),_.jsx(Sg,{})]}):null}function cf(){const n=j.useDependency(a.IUniverInstanceService);return R.useObservable(()=>n.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),null,!1,[])?_.jsx(dp,{}):null}function df(){const n=j.useDependency(a.IUniverInstanceService);return R.useObservable(()=>n.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),null,!1,[])?_.jsxs(_.Fragment,{children:[_.jsx(_g,{}),_.jsx(Ip,{})]}):null}const ji={width:"100%"},tl=n=>{const{inputId:i,state:e=!1,type:t="range",confirm:o,cancel:r,name:s,formulaOrRefString:l,comment:c="",localSheetId:d=_r,hidden:u=!1,id:h}=n,p=j.useDependency(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),f=j.useDependency(a.LocaleService),S=j.useDependency($.IDefinedNamesService),v=j.useDependency($.IFunctionService),C=j.useDependency($.LexerTreeBuilder);if(p==null)return;const I=p.getUnitId(),[b,T]=V.useState(s),[w,y]=V.useState(l),[M,A]=V.useState(c),[N,x]=V.useState(d),[D,H]=V.useState(""),[L,W]=V.useState(t),[X,q]=V.useState(!0),G=[{label:f.t("definedName.scopeWorkbook"),value:_r}],z=U=>!$.isReferenceStrings(U);V.useEffect(()=>{q(!0),T(s),A(c),x(d);let U=l;l.substring(0,1)===$.operatorToken.EQUALS?W("formula"):z(l)?(W("formula"),U=$.operatorToken.EQUALS+l):W("range"),y(U),H("")},[e]),p.getSheetOrders().forEach(U=>{const Q=p.getSheetBySheetId(U);G.push({label:(Q==null?void 0:Q.getName())||"",value:U})});const Y=U=>U.map(ee=>{var ae;return $.serializeRangeToRefString({...ee,sheetName:((ae=p.getSheetBySheetId(ee.sheetId))==null?void 0:ae.getName())||""})}).join(","),F=U=>{y(Y(U))},Z=U=>{y(U||"")},K=()=>{if(b.length===0){H(f.t("definedName.nameEmpty"));return}if(S.getValueByName(I,b)!=null&&(h==null||h.length===0)){H(f.t("definedName.nameDuplicate"));return}if(!a.Tools.isValidParameter(b)||$.isReferenceStringWithEffectiveColumn(b)||!a.Tools.isStartValidPosition(b)&&!P.hasCJKText(b.substring(0,1))){H(f.t("definedName.nameInvalid"));return}if(p.getSheetOrders().map(Q=>{var ee;return((ee=p.getSheetBySheetId(Q))==null?void 0:ee.getName())||""}).includes(b)){H(f.t("definedName.nameSheetConflict"));return}if(w.length===0){H(f.t("definedName.formulaOrRefStringEmpty"));return}if(!X){H(f.t("definedName.formulaOrRefStringInvalid"));return}if(v.hasExecutor(b.toUpperCase())){H(f.t("definedName.nameConflict"));return}o&&o({id:h||"",name:b,formulaOrRefString:C.convertRefersToAbsolute(w,a.AbsoluteRefType.ALL,a.AbsoluteRefType.ALL),comment:M,localSheetId:N})},B=U=>{const Q=U;Q==="formula"&&w.substring(0,1)!==$.operatorToken.EQUALS?(y(`${$.operatorToken.EQUALS}`),y(`${$.operatorToken.EQUALS}`)):w.substring(0,1)===$.operatorToken.EQUALS&&(y(""),y("")),W(Q)};return _.jsxs("div",{className:de.definedNameInput,style:{display:e?"block":"none"},children:[_.jsx("div",{children:_.jsx(te.Input,{placeholder:f.t("definedName.inputNamePlaceholder"),value:b,allowClear:!0,onChange:T,affixWrapperStyle:ji})}),_.jsx("div",{children:_.jsxs(te.RadioGroup,{value:L,onChange:B,children:[_.jsx(te.Radio,{value:"range",children:f.t("definedName.ratioRange")}),_.jsx(te.Radio,{value:"formula",children:f.t("definedName.ratioFormula")})]})}),_.jsx("div",{style:{display:L==="range"?"block":"none"},children:_.jsx(R.RangeSelector,{value:w,onValid:q,onChange:F,placeholder:f.t("definedName.inputRangePlaceholder"),id:a.createInternalEditorID(`${i}-rangeSelector`),width:"99%",openForSheetUnitId:I},`${i}-rangeSelector`)}),_.jsx("div",{style:{display:L==="range"?"none":"block"},children:_.jsx(R.TextEditor,{value:w,onValid:q,onChange:Z,id:a.createInternalEditorID(`${i}-editor`),placeholder:f.t("definedName.inputFormulaPlaceholder"),openForSheetUnitId:I,onlyInputFormula:!0,style:{width:"99%"},canvasStyle:{fontSize:10}},`${i}-editor`)}),_.jsx("div",{children:_.jsx(te.Select,{style:ji,value:N,options:G,onChange:x})}),_.jsx("div",{children:_.jsx(te.Input,{affixWrapperStyle:ji,placeholder:f.t("definedName.inputCommentPlaceholder"),value:M,onChange:A})}),_.jsxs("div",{style:{display:D.length===0?"none":"flex"},className:de.definedNameInputValidation,children:[_.jsx("span",{children:D}),_.jsx(Jr,{})]}),_.jsxs("div",{children:[_.jsx(te.Button,{onClick:()=>{r&&r()},children:f.t("definedName.cancel")}),_.jsx(te.Button,{style:{marginLeft:15},type:"primary",onClick:K,children:f.t("definedName.confirm")})]})]})},ia=()=>{const n=j.useDependency(a.ICommandService),e=j.useDependency(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),t=j.useDependency(a.LocaleService),o=j.useDependency($.IDefinedNamesService),r=j.useDependency(m.SheetsSelectionsService);if(e==null)return;const s=e.getUnitId(),l=()=>{const D=o.getDefinedNameMap(s);return D?Array.from(Object.values(D)):[]},[c,d]=V.useState(!1),[u,h]=V.useState(l()),[g,p]=V.useState(null),[f,S]=V.useState();V.useEffect(()=>{const D=o.update$.subscribe(()=>{h(l())});return()=>{D.unsubscribe()}},[]);const v=D=>{const{name:H,formulaOrRefString:L,comment:W,localSheetId:X,hidden:q}=D;let G=D.id;if(G==null||G.length===0)G=a.Tools.generateRandomId(10),n.executeCommand(m.InsertDefinedNameCommand.id,{id:G,unitId:s,name:H,formulaOrRefString:L,comment:W,localSheetId:X,hidden:q});else{const z=o.getValueById(s,G),Y={id:G,unitId:s,name:H,formulaOrRefString:L,comment:W,localSheetId:X,hidden:q};n.executeCommand(m.SetDefinedNameCommand.id,{unitId:s,oldDefinedName:{...z,unitId:s},newDefinedName:Y})}d(!1),p(null)},C=D=>{S(D)};function I(){S(null)}function b(D){const H=o.getValueById(s,D);n.executeCommand(m.RemoveDefinedNameCommand.id,{...H,unitId:s}),S(null)}const T=D=>{o.focusRange(s,D.id)},w=()=>{const D=u.length+1,H=t.t("definedName.defaultName")+D;if(o.getValueByName(s,H)==null)return H;let L=D+1;for(;;){const W=t.t("definedName.defaultName")+L;if(o.getValueByName(s,W)==null)return W;L++}},y=()=>{var W;const D=(W=e.getActiveSheet())==null?void 0:W.getName();if(!D)return"";const H=r.getCurrentSelections();return H==null?"":H.map(X=>$.serializeRangeWithSheet(D,X.range)).join(",")},M=()=>{d(!1),p(null)},A=()=>{d(!0),p(null)},N=D=>{d(!1),p(D)},x=D=>{const H=e.getSheetBySheetId(D);return H==null?"":H.getName()};return _.jsx("div",{className:de.definedNameContainer,children:_.jsxs("div",{className:de.definedNameContainerScroll,children:[_.jsxs("div",{children:[_.jsxs("div",{onClick:A,className:de.definedNameContainerAddButton,style:{display:c?"none":"flex"},children:[_.jsx($r,{}),_.jsx("span",{className:de.definedNameContainerAddButtonText,children:t.t("definedName.addButton")})]}),_.jsx(tl,{confirm:v,cancel:M,state:c,inputId:"insertDefinedName",name:w(),formulaOrRefString:y()})]},"insertDefinedName"),u.map((D,H)=>_.jsxs("div",{children:[_.jsxs("div",{onClick:()=>{T(D)},className:de.definedNameContainerItem,style:{display:D.id===g?"none":"flex"},children:[_.jsxs("div",{title:D.comment,children:[_.jsxs("div",{className:de.definedNameContainerItemName,children:[D.name,_.jsx("span",{className:de.definedNameContainerItemNameForSheet,children:D.localSheetId===_r||D.localSheetId==null?"":x(D.localSheetId)})]}),_.jsx("div",{className:de.definedNameContainerItemFormulaOrRefString,children:D.formulaOrRefString})]}),_.jsx(te.Tooltip,{title:t.t("definedName.updateButton"),placement:"top",style:{pointerEvents:"none"},children:_.jsx("div",{className:ge(de.definedNameContainerItemUpdate,de.definedNameContainerItemShow),onClick:()=>{N(D.id)},children:_.jsx(mt,{})})}),_.jsx(te.Tooltip,{title:t.t("definedName.deleteButton"),placement:"top",style:{pointerEvents:"none"},children:_.jsx("div",{className:ge(de.definedNameContainerItemDelete,de.definedNameContainerItemShow),onClick:()=>{C(D.id)},children:_.jsx(hi,{})})})]}),_.jsx(te.Confirm,{visible:f===D.id,onClose:I,onConfirm:()=>{b(D.id)},children:t.t("definedName.deleteConfirmText")}),_.jsx(tl,{confirm:v,cancel:M,state:D.id===g,id:D.id,inputId:D.id+H,name:D.name,formulaOrRefString:D.formulaOrRefString,comment:D.comment,localSheetId:D.localSheetId})]},H))]})})};var uf=Object.defineProperty,hf=Object.getOwnPropertyDescriptor,mf=(n,i,e,t)=>{for(var o=t>1?void 0:t?hf(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&uf(i,e,o),o};const nl={name:"",unitId:"",subUnitId:"",permissionId:"",unitType:ie.Unkonwn,id:"",ranges:[]};var Lt=(n=>(n.othersCanView="othersCanView",n.noOneElseCanView="noOneElseCanView",n))(Lt||{});let Ie=class{constructor(){E(this,"_rule",nl);E(this,"_rule$",new O.BehaviorSubject(this._rule));E(this,"_oldRule");E(this,"_rangeErrorMsg$",new O.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=nl,this._rule$.next(this._rule)}get oldRule(){return this._oldRule}setOldRule(n){this._oldRule=n}};Ie=mf([a.OnLifecycle(a.LifecycleStages.Starting,Ie)],Ie);class hn{constructor(){E(this,"_userList",[]);E(this,"_oldCollaboratorList",[]);E(this,"_selectUserList",[]);E(this,"_allUserList",[]);E(this,"_selectUserList$",new O.BehaviorSubject(this._selectUserList));E(this,"selectUserList$",this._selectUserList$.asObservable())}get userList(){return this._userList}get allUserList(){return this._allUserList}setAllUserList(i){this._allUserList=i}setUserList(i){this._userList=i}get oldCollaboratorList(){return this._oldCollaboratorList}setOldCollaboratorList(i){this._oldCollaboratorList=i}get selectUserList(){return this._selectUserList}setSelectUserList(i){this._selectUserList=i,this._selectUserList$.next(i)}}const to="UNIVER_SHEET_PERMISSION_PANEL",no="UNIVER_SHEET_PERMISSION_PANEL_FOOTER",ra="UNIVER_SHEET_PERMISSION_USER_DIALOG",sa="UNIVER_SHEET_PERMISSION_DIALOG",Oo="UNIVER_SHEET_PERMISSION_USER_DIALOG_ID",Ao="UNIVER_SHEET_PERMISSION_DIALOG_ID",go={[J.Copy]:"Copy",[J.SetCellStyle]:"SetCellStyle",[J.SetCellValue]:"SetCellValue",[J.SetRowStyle]:"SetRowStyle",[J.SetColumnStyle]:"SetColumnStyle",[J.InsertRow]:"InsertRow",[J.InsertColumn]:"InsertColumn",[J.InsertHyperlink]:"InsertHyperlink",[J.DeleteRow]:"DeleteRow",[J.DeleteColumn]:"DeleteColumn",[J.Sort]:"Sort",[J.Filter]:"Filter",[J.PivotTable]:"PivotTable",[J.EditExtraObject]:"EditExtraObject"},gf=[J.Copy,J.SetCellStyle,J.SetCellValue,J.SetRowStyle,J.SetColumnStyle,J.InsertRow,J.InsertColumn,J.InsertHyperlink,J.DeleteRow,J.DeleteColumn,J.Sort,J.Filter,J.PivotTable,J.EditExtraObject,J.View],la="sheet-permission-menu-icon",pf="sheet-permission-delete-icon",ff="sheet-permission-edit-icon",Sf="sheet-permission-check-icon",aa="sheet-permission-lock-icon",Ye={type:a.CommandType.OPERATION,id:"sheet-permission.operation.openPanel",async handler(n,i={}){const e=n.get(R.ISidebarService),t=n.get(Ie),o=n.get(hn),{showDetail:r=!0,fromSheetBar:s=!1}=i,l={header:{title:"permission.panel.title"},children:{label:to,showDetail:r,fromSheetBar:s},width:330,footer:{label:no,showDetail:r},onClose:()=>{t.setRangeErrorMsg(""),t.resetRule(),o.setUserList([]),o.setSelectUserList([]),o.setOldCollaboratorList([]),o.setAllUserList([])}};return e.open(l),!0}},is={type:a.CommandType.OPERATION,id:"sheet-permission.operation.openDialog",async handler(n,i){const e=n.get(R.IDialogService);return e.close("DESKTOP_FIND_REPLACE_DIALOG"),e.open({id:Ao,title:{title:"permission.dialog.allowedPermissionType"},children:{label:sa},width:393,destroyOnClose:!0,onClose:()=>e.close(Ao)}),!0}},oo={type:a.CommandType.COMMAND,id:"sheet.command.add-worksheet-protection",async handler(n,i){if(!i)return!1;const e=n.get(a.ICommandService),t=n.get(a.IUndoRedoService),{rule:o,unitId:r}=i,s=o.subUnitId;if(await e.executeCommand(m.AddWorksheetProtectionMutation.id,{unitId:r,rule:o,subUnitId:o.subUnitId})){const c=[{id:m.AddWorksheetProtectionMutation.id,params:{unitId:r,rule:o,subUnitId:o.subUnitId}}],d=[{id:m.DeleteWorksheetProtectionMutation.id,params:{unitId:r,subUnitId:s}}];t.pushUndoRedo({unitID:r,redoMutations:c,undoMutations:d})}return!0}},Mt={type:a.CommandType.COMMAND,id:"sheet.command.delete-worksheet-protection",handler(n,i){if(!i)return!1;const e=n.get(a.ICommandService),t=n.get(a.IUndoRedoService),{rule:o,unitId:r,subUnitId:s}=i;e.executeCommand(m.DeleteWorksheetProtectionMutation.id,{unitId:r,subUnitId:s});const l=[{id:m.DeleteWorksheetProtectionMutation.id,params:{unitId:r,subUnitId:s}}],c=[{id:m.AddWorksheetProtectionMutation.id,params:{unitId:r,rule:o,subUnitId:s}}];return t.pushUndoRedo({unitID:r,redoMutations:l,undoMutations:c}),!0}},rs={type:a.CommandType.COMMAND,id:"sheet.command.set-worksheet-protection",async handler(n,i){if(!i)return!1;const e=n.get(a.ICommandService),t=n.get(Ie),o=n.get(a.IUndoRedoService),{rule:r,permissionId:s}=i,{unitId:l,subUnitId:c}=r,d={...r,permissionId:s},u=t.oldRule;if(await e.executeCommand(m.SetWorksheetProtectionMutation.id,{unitId:l,subUnitId:c,newRule:d})){const g=[{id:m.SetWorksheetProtectionMutation.id,params:{unitId:l,subUnitId:c,newRule:d}}],p=[{id:m.SetWorksheetProtectionMutation.id,params:{unitId:l,subUnitId:c,rule:u}}];o.pushUndoRedo({unitID:l,redoMutations:g,undoMutations:p})}return!0}},pi={type:a.CommandType.COMMAND,id:"sheet.command.delete-worksheet-protection-from-sheet-bar",async handler(n,i){if(!i)return!1;const e=n.get(a.ICommandService),t=n.get(a.IUndoRedoService),o=n.get(m.WorksheetProtectionRuleModel),s=n.get(a.IUniverInstanceService).getCurrentUnitForType(bo.UNIVER_SHEET),l=s==null?void 0:s.getActiveSheet(),c=s.getUnitId();if(!l)return!1;const d=l.getSheetId(),u=o.getRule(c,d);if(await e.executeCommand(Mt.id,{unitId:c,subUnitId:d})){const g=[{id:Mt.id,params:{unitId:c,subUnitId:d}}],p=[{id:oo.id,params:{unitId:c,rule:u}}];t.pushUndoRedo({unitID:c,redoMutations:g,undoMutations:p})}return!0}},fi={type:a.CommandType.COMMAND,id:"sheet.command.change-sheet-protection-from-sheet-bar",async handler(n){return await n.get(a.ICommandService).executeCommand("sheet-permission.operation.openDialog"),!0}},Si={type:a.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-toolbar",async handler(n){const i=n.get(a.ICommandService);return n.get(Ie).resetRule(),await i.executeCommand(Ye.id,{showDetail:!0}),!0}},vi={type:a.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-context-menu",async handler(n){const i=n.get(a.ICommandService);return n.get(Ie).resetRule(),await i.executeCommand(Ye.id,{showDetail:!0}),!0}},Ci={type:a.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-context-menu",async handler(n){return await n.get(a.ICommandService).executeCommand(Ye.id,{showDetail:!1}),!0}},_i={type:a.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-sheet-bar",async handler(n){const i=n.get(a.ICommandService);return n.get(Ie).resetRule(),await i.executeCommand(Ye.id,{fromSheetBar:!0,showDetail:!0}),!0}},Ii={type:a.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-sheet-bar",async handler(n){return await n.get(a.ICommandService).executeCommand(Ye.id,{showDetail:!1}),!0}},vf={type:a.CommandType.COMMAND,id:"sheet.command.add-range-protection",async handler(n,i){if(!i)return!1;const e=n.get(a.ICommandService),t=n.get(a.IUndoRedoService),o=n.get(m.RangeProtectionRuleModel),{rule:r,permissionId:s}=i,{unitId:l,subUnitId:c,ranges:d,name:u,description:h}=r,g=[{ranges:d,permissionId:s,id:o.createRuleId(l,c),name:u,description:h}];if(await e.executeCommand(m.AddRangeProtectionMutation.id,{unitId:l,subUnitId:c,rules:g})){const f=[{id:m.AddRangeProtectionMutation.id,params:{unitId:l,subUnitId:c,rules:g}}],S=[{id:m.DeleteRangeProtectionMutation.id,params:{unitId:l,subUnitId:c,ruleIds:g.map(v=>v.id)}}];t.pushUndoRedo({unitID:l,redoMutations:f,undoMutations:S})}return!0}},Cf={type:a.CommandType.COMMAND,id:"sheet.command.delete-range-protection",async handler(n,i){if(!i)return!1;const e=n.get(a.ICommandService),t=n.get(a.IUndoRedoService),{unitId:o,subUnitId:r,rule:s}=i,l={unitId:o,subUnitId:r,ruleIds:[s.id]};return await e.executeCommand(m.DeleteRangeProtectionMutation.id,l)&&t.pushUndoRedo({unitID:o,redoMutations:[{id:m.DeleteRangeProtectionMutation.id,params:l}],undoMutations:[{id:m.AddRangeProtectionMutation.id,params:{unitId:o,subUnitId:r,rules:[s]}}]}),!0}},_f={type:a.CommandType.COMMAND,id:"sheet.command.set-range-protection",async handler(n,i){if(!i)return!1;const e=n.get(a.ICommandService),t=n.get(m.RangeProtectionRuleModel),o=n.get(Ie),r=n.get(a.IUndoRedoService),{rule:s,permissionId:l}=i,{unitId:c,subUnitId:d,ranges:u,name:h,description:g}=s;if(s.id){const p={unitId:c,subUnitId:d,ruleId:s.id,rule:{ranges:u,permissionId:l,id:t.createRuleId(c,d),name:h,description:g}};if(await e.executeCommand(m.SetRangeProtectionMutation.id,p)){const S=[{id:m.SetRangeProtectionMutation.id,params:p}],v=[{id:m.SetRangeProtectionMutation.id,params:{unitId:c,subUnitId:d,ruleId:s.id,rule:o.oldRule}}];r.pushUndoRedo({unitID:c,redoMutations:S,undoMutations:v})}}return!0}},bi={type:a.CommandType.COMMAND,id:"sheet.command.delete-range-protection-from-context-menu",async handler(n){var h;const i=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(a.IUndoRedoService),o=n.get(m.SheetsSelectionsService),r=n.get(m.WorksheetProtectionRuleModel),s=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s.getActiveSheet(),c=s.getUnitId(),d=l.getSheetId(),u=r.getRule(c,d);if(u!=null&&u.permissionId&&(u!=null&&u.name))return i.executeCommand(Mt.id,{unitId:c,subUnitId:d,rule:u});{const g=(h=o.getCurrentLastSelection())==null?void 0:h.range;if(!g)return!1;const S=n.get(m.RangeProtectionRuleModel).getSubunitRuleList(c,d).find(v=>v.ranges.some(C=>a.Rectangle.intersects(C,g)));if(S){const v={unitId:c,subUnitId:d,ruleIds:[S.id]};return await i.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:[S]}}]}),!0}else return!1}}},Ri={type:a.CommandType.COMMAND,id:"sheet.command.set-range-protection-from-context-menu",async handler(n){var h;const i=n.get(a.ICommandService),e=n.get(a.IUniverInstanceService),t=n.get(m.SheetsSelectionsService),o=n.get(m.WorksheetProtectionRuleModel),r=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=r.getActiveSheet(),l=r.getUnitId(),c=s.getSheetId(),d=o.getRule(l,c),u=n.get(Ie);if(d!=null&&d.permissionId&&(d!=null&&d.name)){const g={...d,unitId:l,subUnitId:c,ranges:[]};return u.setRule(g),u.setOldRule(g),await i.executeCommand(Ye.id,{showDetail:!0}),!0}else{const g=(h=t.getCurrentLastSelection())==null?void 0:h.range;if(!g)return!1;const S=n.get(m.RangeProtectionRuleModel).getSubunitRuleList(l,c).find(v=>{var C;return(C=v==null?void 0:v.ranges)==null?void 0:C.some(I=>a.Rectangle.intersects(I,g))});if(S){const v={...S,unitId:l,subUnitId:c};return u.setRule(v),u.setOldRule(v),await i.executeCommand(Ye.id,{showDetail:!0}),!0}else return!1}}},Ti={type:a.CommandType.COMMAND,id:"sheet.command.set-protection",async handler(n,i){if(!i)return!1;const e=n.get(a.ICommandService),t=n.get(a.IUndoRedoService),o=n.get(Ie),r=n.get(m.RangeProtectionRuleModel),{rule:s}=i,{unitId:l,subUnitId:c}=s,d=[],u=[],h=o.oldRule;return(h==null?void 0:h.unitType)===s.unitType?s.unitType===ie.Worksheet?(d.push({id:m.SetWorksheetProtectionMutation.id,params:{unitId:l,subUnitId:c,rule:s}}),u.push({id:m.SetWorksheetProtectionMutation.id,params:{unitId:l,subUnitId:c,rule:h}})):(d.push({id:m.SetRangeProtectionMutation.id,params:{unitId:l,subUnitId:c,rule:s,ruleId:s.id}}),u.push({id:m.SetRangeProtectionMutation.id,params:{unitId:l,subUnitId:c,ruleId:h.id,rule:h}})):(h&&(h.unitType===ie.Worksheet?(d.push({id:m.DeleteWorksheetProtectionMutation.id,params:{unitId:l,subUnitId:c}}),u.push({id:m.AddWorksheetProtectionMutation.id,params:{unitId:l,rule:h,subUnitId:h.subUnitId}})):h.unitType===ie.SelectRange&&(d.push({id:m.DeleteRangeProtectionMutation.id,params:{unitId:l,subUnitId:c,ruleIds:[h.id]}}),u.push({id:m.AddRangeProtectionMutation.id,params:{unitId:l,subUnitId:c,rules:[h]}}))),s.unitType===ie.Worksheet?(d.push({id:m.AddWorksheetProtectionMutation.id,params:{unitId:l,rule:s,subUnitId:s.subUnitId}}),u.unshift({id:m.DeleteWorksheetProtectionMutation.id,params:{unitId:l,subUnitId:c}})):s.unitType===ie.SelectRange&&(s.id=r.createRuleId(l,c),d.push({id:m.AddRangeProtectionMutation.id,params:{unitId:l,subUnitId:c,rules:[s]}}),u.unshift({id:m.DeleteRangeProtectionMutation.id,params:{unitId:l,subUnitId:c,ruleIds:[s.id]}}))),a.sequenceExecute(d,e)&&t.pushUndoRedo({unitID:l,undoMutations:u,redoMutations:d}),!0}},ca={id:"sheet.operation.scroll-to-range",type:a.CommandType.OPERATION,handler:(n,i)=>{const e=n.get(a.IUniverInstanceService);return n.get(P.IRenderManagerService).getRenderById(e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports.SheetsScrollRenderController).scrollToRange(i.range)}},Ei="sheet.menu.clear-selection";function If(n){return{id:Ei,group:R.MenuGroup.CONTEXT_MENU_FORMAT,type:R.MenuItemType.SUBITEMS,icon:"ClearFormat",title:"rightClick.clearSelection",positions:[R.MenuPosition.CONTEXT_MENU,ue.COL_HEADER_CONTEXT_MENU,ue.ROW_HEADER_CONTEXT_MENU],hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function bf(n){return{id:m.ClearSelectionContentCommand.id,type:R.MenuItemType.BUTTON,title:"rightClick.clearContent",positions:[Ei],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Rf(n){return{id:m.ClearSelectionFormatCommand.id,type:R.MenuItemType.BUTTON,title:"rightClick.clearFormat",positions:[Ei],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Tf(n){return{id:m.ClearSelectionAllCommand.id,type:R.MenuItemType.BUTTON,title:"rightClick.clearAll",positions:[Ei],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}const io="sheet.menu.delete";function Ef(n){return{id:io,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.MenuItemType.SUBITEMS,title:"rightClick.delete",icon:"Reduce",positions:[R.MenuPosition.CONTEXT_MENU],hidden$:Wo(n),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission]})}}function wf(n){return{id:li.id,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.MenuItemType.BUTTON,icon:"DeleteColumn",positions:[io,ue.COL_HEADER_CONTEXT_MENU],title:"rightClick.deleteSelectedColumn",hidden$:vl(n,"col"),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetDeleteColumnPermission]})}}function Pf(n){return{id:si.id,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.MenuItemType.BUTTON,icon:"DeleteRow",positions:[io,ue.ROW_HEADER_CONTEXT_MENU],title:"rightClick.deleteSelectedRow",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetDeleteRowPermission]}),hidden$:vl(n,"row")}}function yf(n){return{id:$n.id,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.MenuItemType.BUTTON,title:"rightClick.moveLeft",icon:"DeleteCellShiftLeft",positions:[io],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Lo(n,"col")}}function Mf(n){return{id:Qt.id,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.MenuItemType.BUTTON,title:"rightClick.moveUp",icon:"DeleteCellShiftUp",positions:[io],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Lo(n,"row")}}const ss="sheet.menu.col-insert";function Of(n){return{id:ss,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",positions:[ue.COL_HEADER_CONTEXT_MENU],hidden$:Wo(n),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetInsertColumnPermission]})}}const ls="sheet.menu.row-insert";function Af(n){return{id:ls,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",positions:[ue.ROW_HEADER_CONTEXT_MENU],hidden$:Wo(n),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertRowPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const ro="sheet.menu.cell-insert";function Nf(n){return{id:ro,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",positions:[R.MenuPosition.CONTEXT_MENU],hidden$:Wo(n),disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertColumnPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function xf(n){return{id:m.InsertRowBeforeCommand.id,type:R.MenuItemType.BUTTON,title:"rightClick.insertRowBefore",icon:"InsertRowAbove",positions:[ls,ro],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertRowPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Sl(n,"row")}}function Df(n){return{id:m.InsertRowAfterCommand.id,type:R.MenuItemType.BUTTON,positions:[ls],title:"rightClick.insertRow",icon:"InsertRowBelow",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertRowPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:fl(n,"row")}}function kf(n){return{id:m.InsertColBeforeCommand.id,type:R.MenuItemType.BUTTON,positions:[ss,ro],title:"rightClick.insertColumnBefore",icon:"LeftInsertColumn",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertColumnPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Sl(n,"col")}}function Hf(n){return{id:m.InsertColAfterCommand.id,type:R.MenuItemType.BUTTON,positions:[ss],title:"rightClick.insertColumn",icon:"RightInsertColumn",disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertColumnPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:fl(n,"col")}}function Vf(n){return{id:eo.id,type:R.MenuItemType.BUTTON,title:"rightClick.moveRight",icon:"InsertCellShiftRight",positions:[ro],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Lo(n,"col")}}function Wf(n){return{id:Jt.id,type:R.MenuItemType.BUTTON,title:"rightClick.moveDown",icon:"InsertCellDown",positions:[ro],disabled$:ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:Lo(n,"row")}}function Lf(n){const i=n.get(a.IUniverInstanceService),e=n.get(a.ICommandService),t=new O.Observable(r=>{const s=e.onCommandExecuted(l=>{const c=l.id;(c===m.RemoveSheetMutation.id||c===m.InsertSheetMutation.id||c===m.SetWorksheetHideMutation.id)&&No(i,r)});return No(i,r),s.dispose}),o=$t(n,[m.WorkbookEditablePermission,m.WorkbookDeleteSheetPermission]);return{id:ai.id,type:R.MenuItemType.BUTTON,positions:[ue.SHEET_BAR],title:"sheetConfig.delete",disabled$:O.combineLatest([t,o]).pipe(O.map(([r,s])=>r||s)),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Uf(n){return{id:m.CopySheetCommand.id,type:R.MenuItemType.BUTTON,positions:[ue.SHEET_BAR],title:"sheetConfig.copy",disabled$:$t(n,[m.WorkbookEditablePermission,m.WorkbookCreateSheetPermission]),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Bf(n){return{id:ui.id,type:R.MenuItemType.BUTTON,positions:[ue.SHEET_BAR],title:"sheetConfig.rename",disabled$:$t(n,[m.WorkbookEditablePermission,m.WorkbookRenameSheetPermission]),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Ff(n){return{id:m.SetTabColorCommand.id,title:"sheetConfig.changeColor",positions:[ue.SHEET_BAR],type:R.MenuItemType.SELECTOR,selections:[{label:{name:Kn,hoverable:!1}}],hidden$:$t(n,[m.WorkbookEditablePermission])}}function jf(n){const i=n.get(a.IUniverInstanceService),e=n.get(a.ICommandService);return{id:m.SetWorksheetHideCommand.id,type:R.MenuItemType.BUTTON,positions:[ue.SHEET_BAR],title:"sheetConfig.hide",disabled$:new O.Observable(t=>{const o=e.onCommandExecuted(r=>{const s=r.id;(s===m.RemoveSheetMutation.id||s===m.InsertSheetMutation.id||s===m.SetWorksheetHideMutation.id)&&No(i,t)});return No(i,t),o.dispose}).pipe(O.combineLatestWith($t(n,[m.WorkbookEditablePermission,m.WorkbookHideSheetPermission])),O.map(([t,o])=>t||o)),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Xf(n){const i=n.get(a.IUniverInstanceService),e=n.get(a.ICommandService);return{id:ci.id,type:R.MenuItemType.BUTTON,positions:[ue.SHEET_BAR],title:"sheetConfig.unhide",disabled$:new O.Observable(t=>{function o(){const s=i.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getWorksheets(),l=Array.from(s.values());t.next(l.length===1)}const r=e.onCommandExecuted(s=>{const l=s.id;(l===m.RemoveSheetMutation.id||l===m.InsertSheetMutation.id||l===m.SetWorksheetHideMutation.id)&&o()});return o(),r.dispose}).pipe(O.combineLatestWith($t(n,[m.WorkbookEditablePermission,m.WorkbookHideSheetPermission])),O.map(([t,o])=>t||o)),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function No(n,i){const e=n.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getWorksheets(),t=Array.from(e.values()).filter(o=>o.getConfig().hidden===a.BooleanNumber.FALSE);i.next(t.length===1)}const da={id:m.SetRowHiddenCommand.id,preconditions:n=>re(n),binding:R.KeyCode.Digit9|R.MetaKeys.CTRL_COMMAND},ua={id:m.SetColHiddenCommand.id,preconditions:n=>re(n),binding:R.KeyCode.Digit0|R.MetaKeys.CTRL_COMMAND|R.MetaKeys.SHIFT},ha={id:ye.id,description:"shortcut.sheet.select-below-cell",group:"3_sheet-view",binding:R.KeyCode.ARROW_DOWN,priority:100,preconditions:re,staticParameters:{direction:a.Direction.DOWN}},ma={id:ye.id,description:"shortcut.sheet.select-up-cell",group:"3_sheet-view",binding:R.KeyCode.ARROW_UP,priority:100,preconditions:re,staticParameters:{direction:a.Direction.UP}},ga={id:ye.id,description:"shortcut.sheet.select-left-cell",group:"3_sheet-view",binding:R.KeyCode.ARROW_LEFT,priority:100,preconditions:Il,staticParameters:{direction:a.Direction.LEFT}},pa={id:ye.id,description:"shortcut.sheet.select-right-cell",group:"3_sheet-view",binding:R.KeyCode.ARROW_RIGHT,priority:100,preconditions:Il,staticParameters:{direction:a.Direction.RIGHT}},fa={id:Ge.id,description:"shortcut.sheet.select-next-cell",group:"3_sheet-view",binding:R.KeyCode.TAB,priority:100,preconditions:re,staticParameters:{direction:a.Direction.RIGHT,keycode:R.KeyCode.TAB}},Sa={id:Ge.id,description:"shortcut.sheet.select-previous-cell",group:"3_sheet-view",binding:R.KeyCode.TAB|R.MetaKeys.SHIFT,priority:100,preconditions:re,staticParameters:{direction:a.Direction.LEFT,keycode:R.KeyCode.TAB}},va={id:Ge.id,description:"shortcut.sheet.select-below-cell",group:"3_sheet-view",binding:R.KeyCode.ENTER,priority:100,preconditions:re,staticParameters:{direction:a.Direction.DOWN,keycode:R.KeyCode.ENTER}},Ca={id:Ge.id,description:"shortcut.sheet.select-up-cell",group:"3_sheet-view",binding:R.KeyCode.ENTER|R.MetaKeys.SHIFT,priority:100,preconditions:re,staticParameters:{direction:a.Direction.UP,keycode:R.KeyCode.ENTER}},_a={id:ye.id,description:"shortcut.sheet.select-below-value-cell",group:"3_sheet-view",binding:R.KeyCode.ARROW_DOWN|R.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{direction:a.Direction.DOWN,jumpOver:Ze.moveGap}},Ia={id:ye.id,description:"shortcut.sheet.select-up-value-cell",group:"3_sheet-view",binding:R.KeyCode.ARROW_UP|R.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{direction:a.Direction.UP,jumpOver:Ze.moveGap}},ba={id:ye.id,description:"shortcut.sheet.select-left-value-cell",group:"3_sheet-view",binding:R.KeyCode.ARROW_LEFT|R.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{direction:a.Direction.LEFT,jumpOver:Ze.moveGap}},Ra={id:ye.id,description:"shortcut.sheet.select-right-value-cell",group:"3_sheet-view",binding:R.KeyCode.ARROW_RIGHT|R.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{direction:a.Direction.RIGHT,jumpOver:Ze.moveGap}},Ta={id:Ae.id,description:"shortcut.sheet.expand-selection-down",group:"3_sheet-view",binding:R.KeyCode.ARROW_DOWN|R.MetaKeys.SHIFT,preconditions:re,staticParameters:{direction:a.Direction.DOWN}},Ea={id:Ae.id,description:"shortcut.sheet.expand-selection-up",group:"3_sheet-view",binding:R.KeyCode.ARROW_UP|R.MetaKeys.SHIFT,preconditions:re,staticParameters:{direction:a.Direction.UP}},wa={id:Ae.id,description:"shortcut.sheet.expand-selection-left",group:"3_sheet-view",binding:R.KeyCode.ARROW_LEFT|R.MetaKeys.SHIFT,preconditions:re,staticParameters:{direction:a.Direction.LEFT}},Pa={id:Ae.id,description:"shortcut.sheet.expand-selection-right",group:"3_sheet-view",binding:R.KeyCode.ARROW_RIGHT|R.MetaKeys.SHIFT,preconditions:re,staticParameters:{direction:a.Direction.RIGHT}},ya={id:Ae.id,description:"shortcut.sheet.expand-selection-to-below-gap",group:"3_sheet-view",binding:R.KeyCode.ARROW_DOWN|R.MetaKeys.SHIFT|R.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{direction:a.Direction.DOWN,jumpOver:Ze.moveGap}},Ma={id:Ae.id,description:"shortcut.sheet.expand-selection-to-up-gap",group:"3_sheet-view",binding:R.KeyCode.ARROW_UP|R.MetaKeys.SHIFT|R.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{direction:a.Direction.UP,jumpOver:Ze.moveGap}},Oa={id:Ae.id,description:"shortcut.sheet.expand-selection-to-left-gap",group:"3_sheet-view",binding:R.KeyCode.ARROW_LEFT|R.MetaKeys.SHIFT|R.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{direction:a.Direction.LEFT,jumpOver:Ze.moveGap}},Aa={id:Ae.id,description:"shortcut.sheet.expand-selection-to-right-gap",group:"3_sheet-view",binding:R.KeyCode.ARROW_RIGHT|R.MetaKeys.SHIFT|R.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{direction:a.Direction.RIGHT,jumpOver:Ze.moveGap}},Na={id:Vo.id,description:"shortcut.sheet.select-all",group:"3_sheet-view",binding:R.KeyCode.A|R.MetaKeys.CTRL_COMMAND,preconditions:re,staticParameters:{expandToGapFirst:!0,loop:!0}},xa={id:rn.id,description:"shortcut.sheet.set-bold",group:"4_sheet-edit",preconditions:n=>re(n),binding:R.KeyCode.B|R.MetaKeys.CTRL_COMMAND},Da={id:sn.id,description:"shortcut.sheet.set-italic",group:"4_sheet-edit",preconditions:n=>re(n),binding:R.KeyCode.I|R.MetaKeys.CTRL_COMMAND},ka={id:ln.id,description:"shortcut.sheet.set-underline",group:"4_sheet-edit",preconditions:n=>re(n),binding:R.KeyCode.U|R.MetaKeys.CTRL_COMMAND},Ha={id:an.id,description:"shortcut.sheet.set-strike-through",group:"4_sheet-edit",preconditions:n=>re(n),binding:R.KeyCode.X|R.MetaKeys.SHIFT|R.MetaKeys.CTRL_COMMAND},Va={id:m.ClearSelectionContentCommand.id,preconditions:n=>re(n),binding:R.KeyCode.DELETE,mac:R.KeyCode.BACKSPACE},Wa={id:tn.id,description:"shortcut.sheet.zoom-in",binding:R.KeyCode.EQUAL|R.MetaKeys.CTRL_COMMAND,group:"3_sheet-view",preconditions:re,priority:1,staticParameters:{delta:.2}},La={id:a.NilCommand.id,binding:R.KeyCode.EQUAL|R.MetaKeys.CTRL_COMMAND},Ua={id:tn.id,description:"shortcut.sheet.zoom-out",binding:R.KeyCode.MINUS|R.MetaKeys.CTRL_COMMAND,group:"3_sheet-view",preconditions:re,priority:1,staticParameters:{delta:-.2}},Ba={id:a.NilCommand.id,binding:R.KeyCode.MINUS|R.MetaKeys.CTRL_COMMAND},Fa={id:tn.id,description:"shortcut.sheet.reset-zoom",binding:R.KeyCode.Digit0|R.MetaKeys.CTRL_COMMAND,preconditions:re,group:"3_sheet-view",priority:1,staticParameters:{reset:!0}},ja={id:a.NilCommand.id,binding:R.KeyCode.Digit0|R.MetaKeys.CTRL_COMMAND};function zf(n){const i=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 O.Observable(t=>{const o="AllBorderSingle",r=n.get(m.BorderStyleManagerService),s=n.get(a.ICommandService).onCommandExecuted(l=>{var g;if(l.id!==m.SetBorderBasicCommand.id)return;const{type:d}=r.getBorderInfo(),u=ta.find(p=>p.value===d),h=(g=u==null?void 0:u.icon)!=null?g:o;t.next(h)});return t.next(o),s.dispose}),group:R.MenuGroup.TOOLBAR_FORMAT,tooltip:"toolbar.border.main",positions:[R.MenuPosition.TOOLBAR_START],type:R.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:ns,hoverable:!1},value$:i.borderInfo$}],value$:i.borderInfo$,hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:e}}function Yf(n){const i=ne(n,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),e=th(n);return{id:We.id,icon:"MergeAllSingle",tooltip:"toolbar.mergeCell.main",positions:[R.MenuPosition.TOOLBAR_START],group:R.MenuGroup.TOOLBAR_LAYOUT,type:R.MenuItemType.SUBITEMS,hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:i.pipe(O.combineLatestWith(e),O.map(([t,o])=>t||o))}}function Zf(n){return{id:ni.id,type:R.MenuItemType.BUTTON,title:"merge.all",icon:"MergeAllSingle",positions:[We.id],hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Gf(n){return{id:oi.id,type:R.MenuItemType.BUTTON,title:"merge.vertical",icon:"VerticalIntegrationSingle",positions:[We.id],hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Kf(n){return{id:ii.id,type:R.MenuItemType.BUTTON,title:"merge.horizontal",icon:"HorizontalMergeSingle",positions:[We.id],hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function qf(n){return{id:m.RemoveWorksheetMergeCommand.id,type:R.MenuItemType.BUTTON,title:"merge.cancel",icon:"CancelMergeSingle",positions:[We.id],hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function Qf(n){const e=n.get(a.IUniverInstanceService).getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),t=n.get(a.UserManagerService);return O.combineLatest([e,t.currentUser$]).pipe(O.switchMap(([o,r])=>o?o.activeSheet$.pipe(O.switchMap(s=>{if(!s)return O.of(!0);const l=n.get(m.RangeProtectionRuleModel),c=n.get(m.WorksheetProtectionRuleModel),d=n.get(m.SheetsSelectionsService);return O.merge(d.selectionMoveEnd$,l.ruleChange$,c.ruleChange$).pipe(O.map(()=>{const u=o.getUnitId(),h=s.getSheetId(),g=l.getSubunitRuleList(u,h),p=d.getCurrentSelections(),f=p==null?void 0:p.map(C=>C.range),S=g.map(C=>C.ranges).flat();if(!f)return!1;const v=c.getRule(u,h);return v!=null&&v.permissionId&&(v!=null&&v.name)?!0:f==null?void 0:f.some(C=>S.some(I=>a.Rectangle.intersects(C,I)))}))})):O.of(!0)))}function Jf(n){const i=n.get(a.IUniverInstanceService),e=n.get(m.RangeProtectionRuleModel),t=i.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([r,s])=>r?r.activeSheet$.pipe(O.switchMap(l=>{if(!l)return O.of(!0);const c=n.get(m.RangeProtectionRuleModel),d=n.get(m.WorksheetProtectionRuleModel),u=n.get(m.SheetsSelectionsService);return O.merge(u.selectionMoveEnd$,c.ruleChange$,d.ruleChange$).pipe(O.map(()=>{var b;const h=r.getUnitId(),g=l.getSheetId(),p=e.getSubunitRuleList(h,g),f=(b=u.getCurrentSelections())==null?void 0:b.map(T=>T.range),S=p.map(T=>T.ranges).flat();if(!(f!=null&&f.length)||f.length>1)return!0;const v=f[0],C=d.getRule(h,g);return C!=null&&C.permissionId&&(C!=null&&C.name)?!1:S.filter(T=>a.Rectangle.intersects(T,v)).length!==1}))})):O.of(!0)))}function $f(n){const i=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=i.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([r,s])=>r?r.activeSheet$.pipe(O.switchMap(l=>{var f;if(!l)return O.of(!0);const c=r.getUnitId(),d=n.get(m.SheetsSelectionsService),u=n.get(m.RangeProtectionRuleModel),h=n.get(m.WorksheetProtectionRuleModel),g=(f=e.composePermission$([new m.WorkbookManageCollaboratorPermission(c).id,new m.WorkbookEditablePermission(c).id]).pipe(O.map(S=>S.every(v=>v.value))))!=null?f:O.of(!1),p=O.merge(u.ruleChange$,h.ruleChange$).pipe(O.startWith(null));return O.combineLatest([g,p,d.selectionMoveEnd$]).pipe(O.map(([S,v,C])=>{if(!S)return!0;const I=d.getCurrentSelections(),b=I==null?void 0:I.map(T=>T.range);return b!=null&&b.length?b.length>1:!1}))})):O.of(!0)))}function Xa(n){const i=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=i.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([r,s])=>r?r.activeSheet$.pipe(O.switchMap(l=>{var C;if(!l)return O.of(!0);const d=n.get(a.IContextService).subscribeContextValue$(a.FOCUSING_COMMON_DRAWINGS).pipe(O.startWith(!1)),u=r.getUnitId(),h=l.getSheetId(),g=n.get(m.RangeProtectionRuleModel),p=n.get(m.WorksheetProtectionRuleModel),f=n.get(m.SheetsSelectionsService),S=(C=e.composePermission$([new m.WorkbookManageCollaboratorPermission(u).id,new m.WorkbookEditablePermission(u).id]).pipe(O.map(I=>I.every(b=>b.value))))!=null?C:O.of(!1),v=O.merge(g.ruleChange$,p.ruleChange$).pipe(O.startWith(null));return O.combineLatest([S,v,f.selectionMoveEnd$,d]).pipe(O.map(([I,b,T,w])=>{if(!I||w)return!0;const y=f.getCurrentSelections(),M=y==null?void 0:y.map(D=>D.range);if(!(M!=null&&M.length))return!0;const A=p.getRule(u,h);if(A!=null&&A.permissionId&&(A!=null&&A.name))return!0;const N=g.getSubunitRuleList(u,h);return M==null?void 0:M.some(D=>N.some(H=>H.ranges.some(L=>a.Rectangle.intersects(D,L))))}))})):O.of(!0)))}function eS(n){const i=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=i.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([r,s])=>r?r.activeSheet$.pipe(O.switchMap(l=>{var f;if(!l)return O.of(!0);const c=r.getUnitId(),d=l.getSheetId(),u=n.get(m.RangeProtectionRuleModel),h=n.get(m.WorksheetProtectionRuleModel),g=(f=e.composePermission$([new m.WorkbookManageCollaboratorPermission(c).id,new m.WorkbookEditablePermission(c).id]).pipe(O.map(S=>S.every(v=>v.value))))!=null?f:O.of(!1),p=O.merge(u.ruleChange$,h.ruleChange$).pipe(O.startWith(null));return O.combineLatest([g,p]).pipe(O.map(([S,v])=>{var b;if(!S)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(T=>(T==null?void 0:T.permissionId)&&(T==null?void 0:T.name))).length>0}))})):O.of(!0)))}function tS(n){const i=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=i.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([r,s])=>r?r.activeSheet$.pipe(O.switchMap(l=>{var g;if(!l)return O.of(!0);const c=r.getUnitId(),d=l.getSheetId(),u=n.get(m.WorksheetProtectionRuleModel),h=(g=e.composePermission$([new m.WorkbookManageCollaboratorPermission(c).id,new m.WorkbookEditablePermission(c).id]).pipe(O.map(p=>p.every(f=>f.value))))!=null?g:O.of(!1);return O.combineLatest([h,u.ruleChange$.pipe(O.startWith(null))]).pipe(O.map(([p,f])=>{if(!p)return!0;const S=u.getRule(c,d);return!(S!=null&&S.permissionId&&(S!=null&&S.name))}))})):O.of(!0)))}function nS(n){const i=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=i.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([r,s])=>r?r.activeSheet$.pipe(O.switchMap(l=>{var f;if(!l)return O.of(!0);const c=r.getUnitId(),d=n.get(m.RangeProtectionRuleModel),u=n.get(m.WorksheetProtectionRuleModel),h=(f=e.composePermission$([new m.WorkbookManageCollaboratorPermission(c).id,new m.WorkbookEditablePermission(c).id]).pipe(O.map(S=>S.every(v=>v.value))))!=null?f:O.of(!1),g=u.ruleChange$.pipe(O.startWith(null)),p=d.ruleChange$.pipe(O.startWith(null));return O.combineLatest([h,g,p]).pipe(O.map(([S,v,C])=>{if(!S)return!0;const I=l.getSheetId(),b=u.getRule(c,I),T=d.getSubunitRuleList(c,I);return!(b||T.length)}))})):O.of(!0)))}function oS(n){const i=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=i.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([r,s])=>r?r.activeSheet$.pipe(O.switchMap(l=>{var f;if(!l)return O.of(!0);const c=r.getUnitId(),d=l.getSheetId(),u=n.get(m.RangeProtectionRuleModel),h=n.get(m.WorksheetProtectionRuleModel),g=(f=e.composePermission$([new m.WorkbookManageCollaboratorPermission(c).id,new m.WorkbookEditablePermission(c).id]).pipe(O.map(S=>S.every(v=>v.value))))!=null?f:O.of(!1),p=O.merge(u.ruleChange$,h.ruleChange$).pipe(O.startWith(null));return O.combineLatest([p,g]).pipe(O.map(([S,v])=>{if(!v)return!0;const C=n.get(m.SheetsSelectionsService).getCurrentSelections(),I=C==null?void 0:C.map(M=>M.range);if(!(I!=null&&I.length)||I.length>1)return!0;const b=I[0],T=h.getRule(c,d);return!(T!=null&&T.permissionId&&(T!=null&&T.name)||u.getSubunitRuleList(c,d).map(M=>M.ranges).flat().some(M=>a.Rectangle.intersects(b,M)))}))})):O.of(!0)))}function za(n){const i=n.get(a.IUniverInstanceService),e=n.get(a.IPermissionService),t=i.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),o=n.get(a.UserManagerService);return O.combineLatest([t,o.currentUser$]).pipe(O.switchMap(([r,s])=>r?r.activeSheet$.pipe(O.switchMap(l=>{var u,h;if(!l)return O.of(!0);const c=r.getUnitId();return((h=(u=e.getPermissionPoint$(new m.WorkbookEditablePermission(c).id))==null?void 0:u.pipe(O.map(g=>!!g.value)))!=null?h:O.of(!1)).pipe(O.map(g=>!g))})):O.of(!0)))}const so="sheet.contextMenu.permission";function iS(n){return{id:Si.id,type:R.MenuItemType.BUTTON,positions:[R.MenuPosition.TOOLBAR_START],group:R.MenuGroup.TOOLBAR_OTHERS,icon:la,tooltip:"permission.toolbarMenu",hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET),disabled$:Xa(n)}}function rS(n){return{id:so,group:R.MenuGroup.CONTEXT_MENU_LAYOUT,type:R.MenuItemType.SUBITEMS,title:"rightClick.protectRange",icon:aa,positions:[R.MenuPosition.CONTEXT_MENU,ue.ROW_HEADER_CONTEXT_MENU,ue.COL_HEADER_CONTEXT_MENU],hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function sS(n){return{id:vi.id,type:R.MenuItemType.BUTTON,title:"rightClick.turnOnProtectRange",positions:[so],hidden$:Qf(n),disabled$:Xa(n)}}function lS(n){return{id:Ri.id,type:R.MenuItemType.BUTTON,title:"rightClick.editProtectRange",positions:[so],hidden$:Jf(n),disabled$:$f(n)}}function aS(n){return{id:bi.id,type:R.MenuItemType.BUTTON,title:"rightClick.removeProtectRange",positions:[so],disabled$:oS(n),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function cS(n){return{id:Ci.id,type:R.MenuItemType.BUTTON,title:"rightClick.viewAllProtectArea",positions:[so],disabled$:za(n),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function dS(n){return{id:_i.id,type:R.MenuItemType.BUTTON,positions:[ue.SHEET_BAR],title:"sheetConfig.addProtectSheet",disabled$:eS(n),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function uS(n){return{id:pi.id,type:R.MenuItemType.BUTTON,positions:[ue.SHEET_BAR],title:"sheetConfig.removeProtectSheet",disabled$:tS(n),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function hS(n){return{id:fi.id,type:R.MenuItemType.BUTTON,positions:[ue.SHEET_BAR],title:"sheetConfig.changeSheetPermission",disabled$:nS(n),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}function mS(n){return{id:Ii.id,type:R.MenuItemType.BUTTON,positions:[ue.SHEET_BAR],title:"sheetConfig.viewAllProtectArea",disabled$:za(n),hidden$:R.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}var gS=Object.defineProperty,pS=Object.getOwnPropertyDescriptor,fS=(n,i,e,t)=>{for(var o=t>1?void 0:t?pS(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&gS(i,e,o),o},St=(n,i)=>(e,t)=>i(e,t,n);const Ya={};let An=class extends a.Disposable{constructor(n,i,e,t,o,r,s,l){super(),this._config=n,this._injector=i,this._componentManager=e,this._layoutService=t,this._commandService=o,this._shortcutService=r,this._menuService=s,this._uiPartsService=l,this._init()}_init(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts(),this._initWorkbenchParts(),this._initFocusHandler()}_initCustomComponents(){const n=this._componentManager;this.disposeWithMe(n.register(Qo,Pl)),this.disposeWithMe(n.register(ns,na)),this.disposeWithMe(n.register(Kn,te.ColorPicker)),this.disposeWithMe(n.register(Gr,R.FontFamily)),this.disposeWithMe(n.register(Kr,R.FontFamilyItem)),this.disposeWithMe(n.register(qr,R.FontSize)),this.disposeWithMe(n.register(os,ia))}_initCommands(){[ni,We,ii,oi,tn,Ae,ye,Ge,ui,ai,si,li,jo,Xo,je,Ar,Vo,di,m.SetBoldCommand,Gt,Pe,zn,rn,sn,ln,an,Yr,Zr,zo,Yo,qt,m.SetItalicCommand,m.SetStrikeThroughCommand,m.SetFontFamilyCommand,m.SetFontSizeCommand,Yn,Zo,Zn,Gn,nt,ut,cn,Go,Ko,ca,qo,m.SetUnderlineCommand,nn,ze,ci,ri,Jt,Qt,eo,$n,mi,bt,Ft,Ye,is,Si,vi,Ci,_i,Ii,fi,bi,Ri,oo,Mt,rs,pi,Ti].forEach(n=>{this.disposeWithMe(this._commandService.registerCommand(n))})}_initMenus(){const{menu:n={}}=this._config;[yl,Hu,Vu,Wu,Lu,Uu,Bu,bf,Rf,Tf,If,Of,Af,Nf,xf,Df,kf,Hf,Pf,Ku,Qu,qu,Ju,wf,$u,Fu,eh,Ef,yf,Mf,Vf,Wf,zu,Yu,Zu,Gu,ju,Xu,Iu,bu,Ru,Tu,Eu,wu,Pu,yu,Mu,Ou,Au,zf,Yf,Zf,Gf,Kf,qf,Nu,xu,Du,ku,Lf,Uf,Bf,Ff,jf,Xf,rS,sS,lS,aS,cS,dS,uS,hS,mS,iS].forEach(i=>{this.disposeWithMe(this._menuService.addMenuItem(this._injector.invoke(i),n))})}_initShortcuts(){[ha,ma,ga,pa,fa,Sa,va,Ca,_a,Ia,ba,Ra,Ta,Ea,wa,Pa,ya,Ma,Oa,Aa,Na,Wa,Ua,Fa,ja,La,Ba,xa,Da,ka,Ha,Va,...kl(),Vl,Hl,Wl,Ul,Bl,Fl,Ll,da,ua].forEach(n=>{this.disposeWithMe(this._shortcutService.registerShortcut(n))})}_initWorkbenchParts(){const n=this._uiPartsService,i=this._injector;this.disposeWithMe(n.registerComponent(R.BuiltInUIPart.HEADER,()=>j.connectInjector(cf,i))),this.disposeWithMe(n.registerComponent(R.BuiltInUIPart.FOOTER,()=>j.connectInjector(af,i))),this.disposeWithMe(n.registerComponent(R.BuiltInUIPart.CONTENT,()=>j.connectInjector(df,i)))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(a.UniverInstanceType.UNIVER_SHEET,n=>{this._injector.get(P.ITextSelectionRenderManager).focus()}))}};An=fS([a.OnLifecycle(a.LifecycleStages.Ready,An),St(1,k.Inject(k.Injector)),St(2,k.Inject(R.ComponentManager)),St(3,R.ILayoutService),St(4,a.ICommandService),St(5,R.IShortcutService),St(6,R.IMenuService),St(7,R.IUIPartsService)],An);var SS=Object.defineProperty,vS=Object.getOwnPropertyDescriptor,CS=(n,i,e,t)=>{for(var o=t>1?void 0:t?vS(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&SS(i,e,o),o},vt=(n,i)=>(e,t)=>i(e,t,n);const ol=a.createInterceptorKey("statusBarPermissionCorrect");exports.StatusBarController=class extends a.Disposable{constructor(e,t,o,r,s,l,c){super();E(this,"_calculateTimeout",-1);E(this,"interceptor",new a.InterceptorManager({STATUS_BAR_PERMISSION_CORRECT:ol}));this._univerInstanceService=e,this._selectionManagerService=t,this._functionService=o,this._statusBarService=r,this._commandService=s,this._formulaDataModel=l,this._numfmtService=c,this._init()}_init(){this._registerSelectionListener()}_registerSelectionListener(){const e=a.debounce(t=>{var r;const o=(r=t[t.length-1])==null?void 0:r.primary;this._calculateSelection(t.map(s=>s.range),o)},100);this.disposeWithMe(a.toDisposable(this._selectionManagerService.selectionMoving$.subscribe(t=>{t&&e(t)}))),this.disposeWithMe(a.toDisposable(this._selectionManagerService.selectionMoveEnd$.subscribe(t=>{t&&e(t)}))),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===m.SetRangeValuesMutation.id){const o=this._selectionManagerService.getCurrentSelections();o&&e(o)}}))}_clearResult(){this._statusBarService.setState(null)}_calculateSelection(e,t){var d,u;const o=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!o)return this._clearResult();const r=o.getUnitId(),s=(d=o.getActiveSheet())==null?void 0:d.getSheetId();if(!s)return this._clearResult();const l={},c=this._formulaDataModel.getArrayFormulaCellData();if(this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getSheets().forEach(h=>{const g=h.getConfig();l[h.getSheetId()]={cellData:new a.ObjectMatrix(g.cellData),rowCount:g.rowCount,columnCount:g.columnCount,rowData:g.rowData,columnData:g.columnData}}),e!=null&&e.length){const h=e.map(b=>new $.RangeReferenceObject(b,s,r));h.forEach(b=>{b.setUnitData({[r]:l}),c&&b.setArrayFormulaCellData($.convertUnitDataToRuntime(c))});const g=this._statusBarService.getFunctions();let p=h.map(b=>b.toArrayValueObject(!1));const f=this.interceptor.fetchThroughInterceptors(ol)(p,p);f&&(p=f);const S=g.map(b=>{const T=this._functionService.getExecutor(b.func);if(!T)return;const w=T==null?void 0:T.calculate(...p),y=w==null?void 0:w.getValue();if(y)return{func:b.func,value:y}});if(S.every(b=>b===void 0))return;let v=null;if(t){const{actualRow:b,actualColumn:T}=t;v=(u=this._numfmtService.getValue(r,s,b,T))==null?void 0:u.pattern}const I={values:S.filter(b=>b!==void 0),pattern:v};this._statusBarService.setState(I)}else this._clearResult()}};exports.StatusBarController=CS([a.OnLifecycle(a.LifecycleStages.Ready,exports.StatusBarController),vt(0,a.IUniverInstanceService),vt(1,k.Inject(m.SheetsSelectionsService)),vt(2,$.IFunctionService),vt(3,gi),vt(4,a.ICommandService),vt(5,k.Inject($.FormulaDataModel)),vt(6,k.Inject(m.INumfmtService))],exports.StatusBarController);var _S=Object.defineProperty,IS=Object.getOwnPropertyDescriptor,bS=(n,i,e,t)=>{for(var o=t>1?void 0:t?IS(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&_S(i,e,o),o},Xi=(n,i)=>(e,t)=>i(e,t,n);exports.SheetRenderController=class extends a.RxDisposable{constructor(i,e,t,o){super(),this._context=i,this._sheetSkeletonManagerService=e,this._sheetRenderService=t,this._commandService=o,this._addNewRender()}_addNewRender(){const{scene:i,engine:e,unit:t}=this._context;i.addLayer(new P.Layer(i,[],0),new P.Layer(i,[],2)),this._addComponent(t),this._initRerenderScheduler(),this._initCommandListener();const o=this._context.unit.getActiveSheet();if(!o)throw new Error("No active sheet found");const r=o.getSheetId();this._sheetSkeletonManagerService.setCurrent({sheetId:r}),t.getShouldRenderLoopImmediately()&&e.runRenderLoop(()=>i.render())}_addComponent(i){const{scene:e,components:t}=this._context,o=i.getActiveSheet();if(!o)throw new Error("No active sheet found");const r=new P.Spreadsheet(me.MAIN);this._addViewport(o);const s=new P.SpreadsheetRowHeader(me.ROW),l=new P.SpreadsheetColumnHeader(me.COLUMN),c=new P.Rect(me.LEFT_TOP,{zIndex:2,left:-1,top:-1,fill:"rgb(248, 249, 250)",stroke:"rgb(217, 217, 217)",strokeWidth:1});this._context.mainComponent=r,t.set(me.MAIN,r),t.set(me.ROW,s),t.set(me.COLUMN,l),t.set(me.LEFT_TOP,c),e.addObjects([r],Ss),e.addObjects([s,l,c],ht),e.enableLayerCache(Ss,ht)}_initViewports(i,e,t){const s=new P.Viewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN,i,{left:e.width,top:t.height,bottom:0,right:0,isWheelPreventDefaultX:!0,isRelativeX:!0,isRelativeY:!0,allowCache:!0,bufferEdgeX:100,bufferEdgeY:100}),l=new P.Viewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP,i,{isWheelPreventDefaultX:!0,active:!1,isRelativeX:!1,isRelativeY:!1,allowCache:!0,bufferEdgeX:0,bufferEdgeY:0}),c=new P.Viewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT,i,{isWheelPreventDefaultX:!0,active:!1,isRelativeX:!1,isRelativeY:!0,allowCache:!0,bufferEdgeX:0,bufferEdgeY:100}),d=new P.Viewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP,i,{isWheelPreventDefaultX:!0,active:!1,isRelativeX:!0,isRelativeY:!1,allowCache:!0,bufferEdgeX:100,bufferEdgeY:0}),u=new P.Viewport(P.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP,i,{active:!1,isWheelPreventDefaultX:!0,isRelativeX:!1,isRelativeY:!1}),h=new P.Viewport(P.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM,i,{left:0,top:t.height,bottom:0,width:e.width,isWheelPreventDefaultX:!0,isRelativeX:!1,isRelativeY:!0}),g=new P.Viewport(P.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT,i,{active:!1,isWheelPreventDefaultX:!0,isRelativeX:!1,isRelativeY:!1}),p=new P.Viewport(P.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT,i,{left:e.width,top:0,height:t.height,right:0,isWheelPreventDefaultX:!0,isRelativeX:!0,isRelativeY:!1}),f=new P.Viewport(P.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP,i,{left:0,top:0,width:e.width,height:t.height,isWheelPreventDefaultX:!0,isRelativeX:!1,isRelativeY:!1});return{viewMain:s,viewLeftTop:f,viewMainLeftTop:l,viewMainLeft:c,viewMainTop:d,viewColumnLeft:g,viewRowTop:u,viewRowBottom:h,viewColumnRight:p}}_addViewport(i){const e=this._context.scene;if(e==null)return;const{rowHeader:t,columnHeader:o}=i.getConfig(),{viewMain:r}=this._initViewports(e,t,o);return this._initMouseWheel(e,r),new P.ScrollBar(r),e.attachControl(),r}_initRerenderScheduler(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(i=>{if(!i)return null;const{skeleton:e,sheetId:t}=i,o=this._context.unit,r=o==null?void 0:o.getSheetBySheetId(t);if(o==null||r==null)return;const{mainComponent:s,components:l}=this._context,c=s,d=l.get(me.ROW),u=l.get(me.COLUMN),h=l.get(me.LEFT_TOP),{rowHeaderWidth:g,columnHeaderHeight:p}=e;c==null||c.updateSkeleton(e),d==null||d.updateSkeleton(e),u==null||u.updateSkeleton(e),h==null||h.transformByState({width:g,height:p})}))}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(i=>{const{unit:e,unitId:t}=this._context,{id:o}=i;if(m.COMMAND_LISTENER_SKELETON_CHANGE.includes(o)||this._sheetRenderService.checkMutationShouldTriggerRerender(o)){const r=e.getActiveSheet();if(!r)return;const s=this._context.unitId,l=r.getSheetId(),c=i.params,{unitId:d,subUnitId:u}=c;if(d!==s||u!==l)return;o!==m.SetWorksheetActiveOperation.id&&this._sheetSkeletonManagerService.makeDirty({sheetId:l,commandId:o},!0),this._sheetSkeletonManagerService.setCurrent({sheetId:l,commandId:o})}else m.COMMAND_LISTENER_VALUE_CHANGE.includes(o)&&this._sheetSkeletonManagerService.reCalculate();i.type===a.CommandType.MUTATION&&this._markUnitDirty(t,i)}))}_markUnitDirty(i,e){const{mainComponent:t,scene:o}=this._context;if(t&&t.makeDirty(),o.makeDirty(),!e.params)return;const r=e.params,s=this._spreadsheetViewports(o);if(e.id===m.SetRangeValuesMutation.id&&r.cellValue){const l=this._cellValueToRange(r.cellValue),c=this._rangeToBounds([l]);this._markViewportDirty(s,c),t.setDirtyArea(c)}if(e.id===m.MoveRangeMutation.id&&r.from&&r.to){const l=this._cellValueToRange(r.from.value),c=this._cellValueToRange(r.to.value),d=this._rangeToBounds([l,c]);this._markViewportDirty(s,d),t.setDirtyArea(d)}}_cellValueToRange(i){const e=Object.keys(i).map(Number),t=[];for(const[c,d]of Object.entries(i))for(const u in d)t.push(Number(u));const o=Math.min(...e),r=Math.max(...e),s=Math.min(...t),l=Math.max(...t);return{startRow:o,endRow:r,startColumn:s,endColumn:l}}_rangeToBounds(i){const e=this._sheetSkeletonManagerService.getCurrent().skeleton,{rowHeightAccumulation:t,columnWidthAccumulation:o,rowHeaderWidth:r,columnHeaderHeight:s}=e,l=[];for(const c of i){const{startRow:d,endRow:u,startColumn:h,endColumn:g}=c,p=d===0?0:t[d-1]+s,f=t[u]+s,S=h===0?0:o[h-1]+r,v=o[g]+r;l.push({top:p,left:S,bottom:f,right:v,width:v-S,height:f-p})}return l}_markViewportDirty(i,e){const t=i.filter(o=>o.isActive&&o.cacheBound);for(const o of t)for(const r of e)a.Rectangle.hasIntersectionBetweenTwoRect(o.cacheBound,r)&&o.markDirty(!0)}_spreadsheetViewports(i){return i.getViewports().filter(e=>["viewMain","viewMainLeftTop","viewMainTop","viewMainLeft"].includes(e.viewportKey))}_initMouseWheel(i,e){this.disposeWithMe(i.onMouseWheel$.subscribeEvent((t,o)=>{if(t.ctrlKey)return;let r=0,s=0;const l=e.limitedScroll();if(t.inputIndex===P.PointerInput.MouseWheelX){const d=Math.abs(t.deltaX);t.deltaX>0?r=d:r=-d,this._commandService.executeCommand(ut.id,{offsetX:r}),i.getParent().classType===P.RENDER_CLASS_TYPE.SCENE_VIEWER?l!=null&&l.isLimitedX||o.stopPropagation():e.isWheelPreventDefaultX?t.preventDefault():l!=null&&l.isLimitedX||t.preventDefault()}if(t.inputIndex===P.PointerInput.MouseWheelY){let d=Math.abs(t.deltaY);t.shiftKey?(d*=3,t.deltaY>0?r=d:r=-d,this._commandService.executeCommand(ut.id,{offsetX:r}),i.getParent().classType===P.RENDER_CLASS_TYPE.SCENE_VIEWER?l!=null&&l.isLimitedX||o.stopPropagation():e.isWheelPreventDefaultX?t.preventDefault():l!=null&&l.isLimitedX||t.preventDefault()):(t.deltaY>0?s=d:s=-d,this._commandService.executeCommand(ut.id,{offsetY:s}),i.getParent().classType===P.RENDER_CLASS_TYPE.SCENE_VIEWER?l!=null&&l.isLimitedY||o.stopPropagation():e.isWheelPreventDefaultY?t.preventDefault():l!=null&&l.isLimitedY||t.preventDefault())}this._context.scene.makeDirty(!0)}))}};exports.SheetRenderController=bS([Xi(1,k.Inject(exports.SheetSkeletonManagerService)),Xi(2,k.Inject(exports.SheetsRenderService)),Xi(3,a.ICommandService)],exports.SheetRenderController);var RS=Object.defineProperty,TS=Object.getOwnPropertyDescriptor,ES=(n,i,e,t)=>{for(var o=t>1?void 0:t?TS(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&RS(i,e,o),o},zi=(n,i)=>(e,t)=>i(e,t,n);exports.HoverManagerService=class extends a.Disposable{constructor(e,t,o){super();E(this,"_currentCell$",new O.Subject);E(this,"currentCell$",this._currentCell$.asObservable().pipe(O.distinctUntilChanged((e,t)=>{var o,r,s,l,c,d,u,h;return((o=e==null?void 0:e.location)==null?void 0:o.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)===((l=t==null?void 0:t.location)==null?void 0:l.subUnitId)&&((c=e==null?void 0:e.location)==null?void 0:c.row)===((d=t==null?void 0:t.location)==null?void 0:d.row)&&((u=e==null?void 0:e.location)==null?void 0:u.col)===((h=t==null?void 0:t.location)==null?void 0:h.col)})));E(this,"currentPosition$",this._currentCell$.asObservable());E(this,"_lastPosition",null);this._univerInstanceService=e,this._scrollManagerService=t,this._renderManagerService=o,this._initCellDisposableListener()}dispose(){super.dispose(),this._currentCell$.complete()}_initCellDisposableListener(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{e||this._currentCell$.next(null)}))}_calcActiveCell(){if(!this._lastPosition)return;const{offsetX:e,offsetY:t}=this._lastPosition,o=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!o){this._currentCell$.next(null);return}const r=o.getActiveSheet();if(!r){this._currentCell$.next(null);return}const s=this._renderManagerService.getRenderById(o.getUnitId()),l=s==null?void 0:s.with(exports.SheetSkeletonManagerService).getWorksheetSkeleton(r.getSheetId()),c=this._scrollManagerService.getCurrentScrollInfo();if(!l||!c||!s)return;const d=zl(s,o,r,l,e,t);if(!d){this._currentCell$.next(null);return}const{location:u,position:h}=d;this._currentCell$.next({location:u,position:h})}onMouseMove(e,t){this._lastPosition={offsetX:e,offsetY:t},this._calcActiveCell()}onScroll(){this._currentCell$.next(null)}};exports.HoverManagerService=ES([zi(0,a.IUniverInstanceService),zi(1,k.Inject(Re)),zi(2,P.IRenderManagerService)],exports.HoverManagerService);var wS=Object.defineProperty,PS=Object.getOwnPropertyDescriptor,yS=(n,i,e,t)=>{for(var o=t>1?void 0:t?PS(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&wS(i,e,o),o},Yi=(n,i)=>(e,t)=>i(e,t,n);exports.HoverRenderController=class extends a.Disposable{constructor(i,e,t,o){super(),this._context=i,this._hoverManagerService=e,this._sheetSkeletonManagerService=t,this._scrollManagerService=o,this._initPointerEvent(),this._initScrollEvent()}_initPointerEvent(){const i=new a.DisposableCollection,e=t=>{if(i.dispose(),!t)return;const{mainComponent:o}=this._context,r=o==null?void 0:o.onPointerMove$.subscribeEvent(s=>{this._hoverManagerService.onMouseMove(s.offsetX,s.offsetY)});r&&i.add(r)};e(this._sheetSkeletonManagerService.getCurrent()),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(t=>{e(t)}))}_initScrollEvent(){this.disposeWithMe(this._scrollManagerService.rawScrollInfo$.subscribe(()=>this._hoverManagerService.onScroll()))}};exports.HoverRenderController=yS([Yi(1,k.Inject(exports.HoverManagerService)),Yi(2,k.Inject(exports.SheetSkeletonManagerService)),Yi(3,k.Inject(Re))],exports.HoverRenderController);const MS="univer-cell-alert",OS="univer-cell-alert-title",AS="univer-cell-alert-icon",NS="univer-cell-alert-icon-error",xS="univer-cell-alert-icon-info",DS="univer-cell-alert-icon-warning",kS="univer-cell-alert-content",Je={cellAlert:MS,cellAlertTitle:OS,cellAlertIcon:AS,cellAlertIconError:NS,cellAlertIconInfo:xS,cellAlertIconWarning:DS,cellAlertContent:kS};function HS({popup:n}){var s;const i=(s=n.extraProps)==null?void 0:s.alert;if(!i)return null;const{type:e,title:t,message:o}=i,r={[Xt.ERROR]:_.jsx(Jr,{className:ge(Je.cellAlertIcon,Je.cellAlertIconError)}),[Xt.INFO]:_.jsx(Cr,{className:ge(Je.cellAlertIcon,Je.cellAlertIconInfo)}),[Xt.WARNING]:_.jsx(Cr,{className:ge(Je.cellAlertIcon,Je.cellAlertIconWarning)})};return _.jsxs("div",{className:Je.cellAlert,children:[_.jsxs("div",{className:Je.cellAlertTitle,children:[e?r[e]:null,t]}),_.jsx("div",{className:Je.cellAlertContent,children:o})]})}const Za="univer.sheet.cell-alert";var VS=Object.defineProperty,WS=Object.getOwnPropertyDescriptor,LS=(n,i,e,t)=>{for(var o=t>1?void 0:t?WS(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&VS(i,e,o),o},Cn=(n,i)=>(e,t)=>i(e,t,n);exports.SheetCanvasPopManagerService=class extends a.Disposable{constructor(i,e,t,o,r){super(),this._globalPopupManagerService=i,this._renderManagerService=e,this._univerInstanceService=t,this._refRangeService=o,this._commandService=r}_createObjectPositionObserver(i,e,t,o){const r=()=>{const{scene:d}=e,{left:u,top:h,width:g,height:p}=i,f={left:u,right:u+g,top:h,bottom:h+p},S=Pm(f,d,t,o);return{left:S.left,right:S.right,top:S.top,bottom:S.bottom}},s=r(),l=new O.BehaviorSubject(s),c=new a.DisposableCollection;return c.add(this._commandService.onCommandExecuted(d=>{(d.id===nt.id||d.id===ze.id)&&l.next(r())})),{position:s,position$:l,disposable:c}}attachPopupToObject(i,e){var p;const t=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),o=t.getActiveSheet();if(!o)return{dispose:()=>{}};const r=t.getUnitId(),s=o.getSheetId(),l=(p=this._renderManagerService.getRenderById(r))==null?void 0:p.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:s}),c=this._renderManagerService.getRenderById(r);if(!c||!l)return{dispose:()=>{}};const{position:d,position$:u,disposable:h}=this._createObjectPositionObserver(i,c,l,o),g=this._globalPopupManagerService.addPopup({...e,unitId:r,subUnitId:s,anchorRect:d,anchorRect$:u});return{dispose:()=>{this._globalPopupManagerService.removePopup(g),u.complete(),h.dispose()}}}attachPopupToCell(i,e,t,o){var b;const r=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),s=r.getActiveSheet();if(!s)return null;const l=r.getUnitId(),c=s.getSheetId(),d=(b=this._renderManagerService.getRenderById(l))==null?void 0:b.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:c}),u=this._renderManagerService.getRenderById(l);if(!u||!d)return null;const h=o!=null?o:wm(i,e,u.scene,s);if(!h)return null;const{position:g,position$:p,disposable:f,updateRowCol:S}=this._createCellPositionObserver(i,e,u,d,h),v=this._globalPopupManagerService.addPopup({...t,unitId:l,subUnitId:c,anchorRect:g,anchorRect$:p}),C=new a.DisposableCollection;C.add(f),C.add(a.toDisposable(()=>{this._globalPopupManagerService.removePopup(v),p.complete()}));const I={startRow:i,endRow:i,startColumn:e,endColumn:e};return C.add(this._refRangeService.watchRange(l,c,I,(T,w)=>{w?S(w.startRow,w.startColumn):C.dispose()})),C}_createCellPositionObserver(i,e,t,o,r){let s=i,l=e;const c=this._calcCellPositionByCell(s,l,t,o,r),d=new O.BehaviorSubject(c),u=()=>d.next(this._calcCellPositionByCell(s,l,t,o,r)),h=new a.DisposableCollection;return h.add(t.engine.clientRect$.subscribe(()=>u())),h.add(this._commandService.onCommandExecuted(p=>{if(p.id===m.SetWorksheetRowAutoHeightMutation.id&&p.params.rowsAutoHeightInfo.findIndex(S=>S.row===s)>-1){u();return}(m.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(p.id)>-1||p.id===nt.id||p.id===ze.id)&&u()})),{position$:d,disposable:h,position:c,updateRowCol:(p,f)=>{s=p,l=f,u()}}}_calcCellPositionByCell(i,e,t,o,r){const{scene:s,engine:l}=t,c=o.getCellByIndex(i,e),d=c.isMergedMainCell?c.mergeInfo:c,{scaleX:u,scaleY:h}=s.getAncestorScale(),g={x:r.viewportScrollX,y:r.viewportScrollY},p=l.getCanvasElement().getBoundingClientRect(),{top:f,left:S}=p;return{left:(d.startX-g.x)*u+S,right:(d.endX-g.x)*u+S,top:(d.startY-g.y)*h+f,bottom:(d.endY-g.y)*h+f}}};exports.SheetCanvasPopManagerService=LS([Cn(0,k.Inject(R.ICanvasPopupService)),Cn(1,P.IRenderManagerService),Cn(2,a.IUniverInstanceService),Cn(3,k.Inject(m.RefRangeService)),Cn(4,a.ICommandService)],exports.SheetCanvasPopManagerService);var US=Object.defineProperty,BS=Object.getOwnPropertyDescriptor,FS=(n,i,e,t)=>{for(var o=t>1?void 0:t?BS(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&US(i,e,o),o},il=(n,i)=>(e,t)=>i(e,t,n),Xt=(n=>(n[n.INFO=0]="INFO",n[n.WARNING=1]="WARNING",n[n.ERROR=2]="ERROR",n))(Xt||{});exports.CellAlertManagerService=class{constructor(i,e){E(this,"_currentAlert$",new O.Subject);E(this,"_currentAlert",new Map);E(this,"currentAlert$",this._currentAlert$.asObservable());this._renderManagerService=i,this._canvasPopManagerService=e}get currentAlert(){return this._currentAlert}showAlert(i){let e=this._currentAlert.get(i.key);e&&e.dispose.dispose(),e?e.dispose.dispose():(e={alert:i,dispose:{dispose(){}}},this._currentAlert.set(i.key,e));const{location:t}=i,{row:o,col:r,unitId:s}=t;if(!this._renderManagerService.getRenderById(s))return;const c=this._canvasPopManagerService.attachPopupToCell(o,r,{componentKey:Za,direction:"horizontal",offset:[2,0],extraProps:{alert:i}});c&&(e.dispose=c),this._currentAlert$.next(Array.from(this._currentAlert.entries()))}removeAlert(i){const e=this._currentAlert.get(i);e&&(this._currentAlert.delete(i),e==null||e.dispose.dispose(),this._currentAlert$.next(Array.from(this._currentAlert.entries())))}clearAlert(){this._currentAlert.forEach(i=>{i.dispose.dispose()}),this._currentAlert.clear(),this._currentAlert$.next(Array.from(this._currentAlert.entries()))}};exports.CellAlertManagerService=FS([il(0,P.IRenderManagerService),il(1,k.Inject(exports.SheetCanvasPopManagerService))],exports.CellAlertManagerService);var jS=Object.defineProperty,XS=Object.getOwnPropertyDescriptor,zS=(n,i,e,t)=>{for(var o=t>1?void 0:t?XS(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&jS(i,e,o),o},YS=(n,i)=>(e,t)=>i(e,t,n);let Nn=class extends a.Disposable{constructor(n,i){super(),this._context=n,this._componentManager=i,this._initComponent()}_initComponent(){this._componentManager.register(Za,HS)}};Nn=zS([a.OnLifecycle(a.LifecycleStages.Starting,Nn),YS(1,k.Inject(R.ComponentManager))],Nn);var ZS=Object.defineProperty,GS=Object.getOwnPropertyDescriptor,KS=(n,i,e,t)=>{for(var o=t>1?void 0:t?GS(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&ZS(i,e,o),o},rl=(n,i)=>(e,t)=>i(e,t,n);let xn=class extends a.RxDisposable{constructor(n,i,e){super(),this._context=n,this._sheetSkeletonManagerService=i,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:(i,e,t)=>{var s;if(!((s=this._sheetSkeletonManagerService.getCurrent())==null?void 0:s.skeleton))return t(i);const r=e.worksheet.getCellRaw(e.row,e.col);return!r||r.v===null||r.v===void 0?t(i):(i==null?void 0:i.t)===a.CellValueType.FORCE_STRING&&a.isRealNum(r.v)?t({...i,markers:{...i==null?void 0:i.markers,...n}}):t(i)}}))}};xn=KS([a.OnLifecycle(a.LifecycleStages.Rendered,xn),rl(1,k.Inject(exports.SheetSkeletonManagerService)),rl(2,k.Inject(m.SheetInterceptorService))],xn);var qS=Object.defineProperty,QS=Object.getOwnPropertyDescriptor,JS=(n,i,e,t)=>{for(var o=t>1?void 0:t?QS(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&qS(i,e,o),o},Zi=(n,i)=>(e,t)=>i(e,t,n);const Gi="SHEET_FORCE_STRING_ALERT";let Dn=class extends a.Disposable{constructor(n,i,e,t){super(),this._context=n,this._hoverManagerService=i,this._cellAlertManagerService=e,this._localeService=t,this._init()}_init(){this._initCellAlertPopup()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.subscribe(n=>{var i;if(n){const t=this._context.unit.getActiveSheet();if(!t)return;const o=t.getCell(n.location.row,n.location.col);if((o==null?void 0:o.t)===a.CellValueType.FORCE_STRING&&o.v&&a.isRealNum(o.v)){const r=this._cellAlertManagerService.currentAlert.get(Gi),s=(i=r==null?void 0:r.alert)==null?void 0:i.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:Xt.ERROR,title:this._localeService.t("info.error"),message:this._localeService.t("info.forceStringInfo"),location:n.location,width:200,height:74,key:Gi});return}}this._cellAlertManagerService.removeAlert(Gi)}))}};Dn=JS([a.OnLifecycle(a.LifecycleStages.Rendered,Dn),Zi(1,k.Inject(exports.HoverManagerService)),Zi(2,k.Inject(exports.CellAlertManagerService)),Zi(3,k.Inject(a.LocaleService))],Dn);var $S=Object.defineProperty,ev=Object.getOwnPropertyDescriptor,tv=(n,i,e,t)=>{for(var o=t>1?void 0:t?ev(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&$S(i,e,o),o},Ki=(n,i)=>(e,t)=>i(e,t,n);let Ir=class extends a.Disposable{constructor(n,i,e,t){super(),this._context=n,this._contextMenuService=i,this._selectionManagerService=e,this._selectionRenderService=t,this._init()}_init(){var l,c;const i=((c=(l=this._context)==null?void 0:l.mainComponent)==null?void 0:c.onPointerDown$).subscribeEvent(d=>{if(d.button===2){const u=this._selectionManagerService.getCurrentSelections(),h=u==null?void 0:u[0];if(!h)return;const g=h.range.rangeType,p=this._selectionRenderService.getSkeleton(),S=Rt(h,p).rangeWithCoord,v=()=>{if(!S)return!1;const I=d.offsetX,b=d.offsetY;switch(g){case a.RANGE_TYPE.ROW:return S.startY<=b&&S.endY>=b;case a.RANGE_TYPE.COLUMN:return S.startX<=I&&S.endX>=I;default:return S.startX<=I&&S.endX>=I&&S.startY<=b&&S.endY>=b}},C=I=>{this._contextMenuService.triggerContextMenu(d,I)};v()?g===a.RANGE_TYPE.COLUMN?C(ue.COL_HEADER_CONTEXT_MENU):g===a.RANGE_TYPE.ROW?C(ue.ROW_HEADER_CONTEXT_MENU):C(R.MenuPosition.CONTEXT_MENU):C(R.MenuPosition.CONTEXT_MENU)}});this.disposeWithMe(i);const e=this._context.components.get(me.COLUMN),o=this._context.components.get(me.ROW).onPointerDown$.subscribeEvent(d=>{d.button===2&&this._contextMenuService.triggerContextMenu(d,ue.ROW_HEADER_CONTEXT_MENU)});this.disposeWithMe(o);const s=e.onPointerDown$.subscribeEvent(d=>{d.button===2&&this._contextMenuService.triggerContextMenu(d,ue.COL_HEADER_CONTEXT_MENU)});this.disposeWithMe(s)}};Ir=tv([Ki(1,R.IContextMenuService),Ki(2,k.Inject(m.SheetsSelectionsService)),Ki(3,_e)],Ir);var nv=Object.defineProperty,ov=Object.getOwnPropertyDescriptor,iv=(n,i,e,t)=>{for(var o=t>1?void 0:t?ov(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&nv(i,e,o),o},po=(n,i)=>(e,t)=>i(e,t,n);let br=class extends a.RxDisposable{constructor(n,i,e,t,o){super(),this._context=n,this._commandService=i,this._editorBridgeService=e,this._selectionManagerService=t,this._rangeSelectorService=o,this._initialize(),this._commandExecutedListener()}_initialize(){this._initSelectionChangeListener(),this._initEventListener(),this._initialRangeSelector()}_initSelectionChangeListener(){O.merge(this._selectionManagerService.selectionMoveEnd$,this._selectionManagerService.selectionMoveStart$).pipe(O.takeUntil(this.dispose$)).subscribe(n=>this._handleSelectionChange(n))}_updateEditorPosition(n){var s;const i=this._getSheetObject(),{scene:e,engine:t}=i,o=this._context.unitId,r=(s=this._context.unit.getActiveSheet())==null?void 0:s.getSheetId();r&&this._commandService.executeCommand(di.id,{scene:e,engine:t,primary:n,unitId:o,sheetId:r})}_handleSelectionChange(n){var e;if(this._editorBridgeService.isVisible().visible)return;const i=(e=n==null?void 0:n[n.length-1])==null?void 0:e.primary;i&&this._updateEditorPosition(i)}_initEventListener(){const n=this._getSheetObject(),{spreadsheet:i,spreadsheetColumnHeader:e,spreadsheetLeftTopPlaceholder:t,spreadsheetRowHeader:o}=n;i.onDblclick$.subscribeEvent(r=>{r.button!==2&&this._commandService.executeCommand(Pe.id,{visible:!0,eventType:P.DeviceInputEventType.Dblclick})}),i.onPointerDown$.subscribeEvent(this._onCanvasPointerDown.bind(this)),e.onPointerDown$.subscribeEvent(this._onCanvasPointerDown.bind(this)),t.onPointerDown$.subscribeEvent(this._onCanvasPointerDown.bind(this)),o.onPointerDown$.subscribeEvent(this._onCanvasPointerDown.bind(this))}_onCanvasPointerDown(){this._editorBridgeService.isForceKeepVisible()||this._hideEditor()}_hideEditor(){this._editorBridgeService.isVisible().visible===!0&&this._commandService.executeCommand(Pe.id,{visible:!1,eventType:P.DeviceInputEventType.PointerDown})}_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 n=this._selectionManagerService.getCurrentSelections(),{unitId:i,sheetId:e,sheetName:t}=this._getCurrentUnitIdAndSheetId();if(!e||!t)return;const o=n==null?void 0:n.map(r=>({range:r.range,unitId:i,sheetId:e,sheetName:t}));o&&this._rangeSelectorService.selectionChange(o)}))}_rangeSelector(n){if(!n)return;const{unitId:i,sheetId:e,sheetName:t}=this._getCurrentUnitIdAndSheetId();if(!e||!t)return;const o=n.map(r=>({range:r.range,unitId:i,sheetId:e,sheetName:t}));this._rangeSelectorService.selectionChange(o)}_getCurrentUnitIdAndSheetId(){const n=this._context.unit,i=n.getActiveSheet();return{unitId:n.getUnitId(),sheetId:i==null?void 0:i.getSheetId(),sheetName:i==null?void 0:i.getName()}}_getSheetObject(){return Ke(this._context.unit,this._context)}_commandExecutedListener(){const n=m.COMMAND_LISTENER_SKELETON_CHANGE;this.disposeWithMe(this._commandService.onCommandExecuted((i,e)=>{e!=null&&e.fromCollab||(i.id===m.SetWorksheetActiveOperation.id?this._onCanvasPointerDown():n.includes(i.id)&&this._hideEditor())})),this.disposeWithMe(this._commandService.onCommandExecuted(i=>{i.id===nn.id&&this._editorBridgeService.refreshEditCellState()}))}};br=iv([po(1,a.ICommandService),po(2,qe),po(3,k.Inject(m.SheetsSelectionsService)),po(4,R.IRangeSelectorService)],br);var rv=Object.defineProperty,sv=Object.getOwnPropertyDescriptor,lv=(n,i,e,t)=>{for(var o=t>1?void 0:t?sv(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&rv(i,e,o),o},Ct=(n,i)=>(e,t)=>i(e,t,n);let _o=class extends a.Disposable{constructor(n,i,e,t,o,r,s){super(),this._commandService=n,this._formatPainterService=i,this._univerInstanceService=e,this._renderManagerService=t,this._selectionManagerService=o,this._sheetInterceptorService=r,this._injector=s,this._initialize()}_initialize(){this._commandExecutedListener(),this._addDefaultHook()}_commandExecutedListener(){const n=this._renderManagerService.getCurrentTypeOfRenderer(a.UniverInstanceType.UNIVER_SHEET).with(_e);this.disposeWithMe(n.selectionMoveEnd$.subscribe(i=>{var e,t;if(this._formatPainterService.getStatus()!==He.OFF){const{rangeWithCoord:o}=i[i.length-1];this._commandService.executeCommand(Gn.id,{unitId:((e=this._univerInstanceService.getFocusedUnit())==null?void 0:e.getUnitId())||"",subUnitId:((t=this._univerInstanceService.getFocusedUnit().getActiveSheet())==null?void 0:t.getSheetId())||"",range:{startRow:o.startRow,startColumn:o.startColumn,endRow:o.endRow,endColumn:o.endColumn}}),this._formatPainterService.getStatus()===He.ONCE&&this._commandService.executeCommand(Zn.id)}}))}_addDefaultHook(){const n={id:"default-format-painter",priority:0,isDefaultHook:!0,onStatusChange:i=>{if(i!==He.OFF){const e=this._collectSelectionRangeFormat();e&&this._formatPainterService.setSelectionFormat(e)}},onApply:(i,e,t,o)=>this._getUndoRedoMutationInfo(i,e,t,o)};this._formatPainterService.addHook(n)}_collectSelectionRangeFormat(){const n=this._selectionManagerService.getCurrentLastSelection(),i=n==null?void 0:n.range;if(!i)return null;const{startRow:e,endRow:t,startColumn:o,endColumn:r}=i,s=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s==null?void 0:s.getActiveSheet();if(!l)return null;const c=l.getCellMatrix(),d=l.getMergeData(),u=s.getStyles(),h=new a.ObjectMatrix,g=[];for(let p=e;p<=t;p++)for(let f=o;f<=r;f++){const S=c.getValue(p,f);h.setValue(p,f,u.getStyleByCell(S)||{});const{isMergedMainCell:v,...C}=a.getCellInfoInMergeData(p,f,d);v&&g.push({startRow:C.startRow,startColumn:C.startColumn,endRow:C.endRow,endColumn:C.endColumn})}return{styles:h,merges:g}}_getUndoRedoMutationInfo(n,i,e,t){const o=this._sheetInterceptorService,r=this._univerInstanceService,s={get:this._injector.get.bind(this._injector)},{merges:l,styles:c}=t;if(!c)return{undos:[],redos:[]};const{startRow:d,startColumn:u,endRow:h,endColumn:g}=c.getDataRange(),p=h-d+1,f=g-u+1,S=Array.from({length:e.endRow-e.startRow+1},()=>Array.from({length:e.endColumn-e.startColumn+1},()=>({}))),v=[];S.forEach((G,z)=>{G.forEach((Y,F)=>{const Z=z%p+d,K=F%f+u,B=c.getValue(Z,K);B&&(S[z][F].s=B)})}),l.forEach(G=>{const z={startRow:G.startRow-d,startColumn:G.startColumn-u,endRow:G.endRow-d,endColumn:G.endColumn-u},Y=Math.max(1,Math.floor((e.endRow-e.startRow+1)/p)),F=Math.max(1,Math.floor((e.endColumn-e.startColumn+1)/f));for(let Z=0;Z<Y;Z++)for(let K=0;K<F;K++)v.push({startRow:z.startRow+Z*p+e.startRow,startColumn:z.startColumn+K*f+e.startColumn,endRow:z.endRow+Z*p+e.startRow,endColumn:z.endColumn+K*f+e.startColumn})});const C=[e],I=new a.ObjectMatrix;let b;if(a.Tools.isArray(S))for(let G=0;G<C.length;G++){const{startRow:z,startColumn:Y,endRow:F,endColumn:Z}=C[G];for(let K=0;K<=F-z;K++)for(let B=0;B<=Z-Y;B++)I.setValue(K+z,B+Y,S[K][B])}else if(a.isICellData(S))for(let G=0;G<C.length;G++){const{startRow:z,startColumn:Y}=C[G];I.setValue(z,Y,S)}else b=S;const T={subUnitId:i,unitId:n,cellValue:b!=null?b:I.getMatrix()},w=m.SetRangeValuesUndoMutationFactory(s,T),{undos:y,redos:M}=o.onCommandExecute({id:m.SetRangeValuesCommand.id,params:{...T,range:C}}),A=m.getAddMergeMutationRangeByType(v),N=[],x=[],D=r.getUnit(n).getSheetBySheetId(i),H=jl(D,A),L={unitId:n,subUnitId:i,ranges:A},W={unitId:n,subUnitId:i,ranges:A};N.push({id:m.RemoveWorksheetMergeMutation.id,params:L}),N.push({id:m.AddWorksheetMergeMutation.id,params:W});const X=m.RemoveMergeUndoMutationFactory(s,L),q=m.AddMergeUndoMutationFactory(s,W);if(x.push({id:m.RemoveWorksheetMergeMutation.id,params:q}),x.push({id:m.AddWorksheetMergeMutation.id,params:X}),H){const G=Xl(s,n,D,A);N.unshift(...G.redos),x.push(...G.undos)}return{undos:[{id:m.SetRangeValuesMutation.id,params:w},...y,...x],redos:[{id:m.SetRangeValuesMutation.id,params:T},...M,...N]}}};_o=lv([a.OnLifecycle(a.LifecycleStages.Steady,_o),Ct(0,a.ICommandService),Ct(1,it),Ct(2,a.IUniverInstanceService),Ct(3,P.IRenderManagerService),Ct(4,k.Inject(m.SheetsSelectionsService)),Ct(5,k.Inject(m.SheetInterceptorService)),Ct(6,k.Inject(k.Injector))],_o);var av=Object.defineProperty,cv=Object.getOwnPropertyDescriptor,dv=(n,i,e,t)=>{for(var o=t>1?void 0:t?cv(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&av(i,e,o),o},qi=(n,i)=>(e,t)=>i(e,t,n);exports.DragManagerService=class extends a.Disposable{constructor(e,t,o){super();E(this,"_currentCell$",new O.Subject);E(this,"currentCell$",this._currentCell$.asObservable().pipe(O.distinctUntilChanged((e,t)=>{var o,r,s,l,c,d,u,h;return((o=e==null?void 0:e.location)==null?void 0:o.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)===((l=t==null?void 0:t.location)==null?void 0:l.subUnitId)&&((c=e==null?void 0:e.location)==null?void 0:c.row)===((d=t==null?void 0:t.location)==null?void 0:d.row)&&((u=e==null?void 0:e.location)==null?void 0:u.col)===((h=t==null?void 0:t.location)==null?void 0:h.col)})));E(this,"_endCell$",new O.Subject);E(this,"endCell$",this._endCell$.asObservable());this._univerInstanceService=e,this._scrollManagerService=t,this._renderManagerService=o,this._initCellDisposableListener()}dispose(){super.dispose(),this._currentCell$.complete(),this._endCell$.complete()}_initCellDisposableListener(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{e||(this._currentCell$.next(null),this._endCell$.next(null))}))}_calcActiveCell(e,t){var d;const o=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!o)return null;const r=o.getActiveSheet();if(!r)return;const s=this._renderManagerService.getRenderById(o.getUnitId()),l=(d=s==null?void 0:s.with(exports.SheetSkeletonManagerService))==null?void 0:d.getCurrent(),c=this._scrollManagerService.getCurrentScrollInfo();if(!(!l||!c||!s))return zl(s,o,r,l,e,t)}onDragOver(e){const{offsetX:t,offsetY:o,dataTransfer:r}=e,s=this._calcActiveCell(t,o);if(!s){this._currentCell$.next(null);return}const{location:l,position:c}=s;this._currentCell$.next({location:l,position:c,dataTransfer:r})}onDrop(e){const{offsetX:t,offsetY:o,dataTransfer:r}=e,s=this._calcActiveCell(t,o);if(!s){this._endCell$.next(null);return}const{location:l,position:c}=s;this._endCell$.next({location:l,position:c,dataTransfer:r})}};exports.DragManagerService=dv([qi(0,a.IUniverInstanceService),qi(1,k.Inject(Re)),qi(2,P.IRenderManagerService)],exports.DragManagerService);var uv=Object.defineProperty,hv=Object.getOwnPropertyDescriptor,mv=(n,i,e,t)=>{for(var o=t>1?void 0:t?hv(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&uv(i,e,o),o},Qi=(n,i)=>(e,t)=>i(e,t,n);exports.DragRenderController=class extends a.Disposable{constructor(i,e,t,o){super(),this._context=i,this._renderManagerService=e,this._dragManagerService=t,this._sheetSkeletonManagerService=o,this._initDragEvent()}_initDragEvent(){const i=new a.DisposableCollection,e=t=>{if(i.dispose(),!t)return;const{scene:o}=this._context,r=o.onDragOver$.subscribeEvent(l=>{this._dragManagerService.onDragOver(l)}),s=o.onDrop$.subscribeEvent(l=>{this._dragManagerService.onDrop(l)});i.add({dispose(){r.unsubscribe(),s.unsubscribe()}})};e(this._sheetSkeletonManagerService.getCurrent()),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(t=>{e(t)}))}};exports.DragRenderController=mv([Qi(1,P.IRenderManagerService),Qi(2,k.Inject(exports.DragManagerService)),Qi(3,k.Inject(exports.SheetSkeletonManagerService))],exports.DragRenderController);const Rr="UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID",Ga="UNIVER_SHEET_PERMISSION_ALERT_DIALOG";var gv=Object.defineProperty,pv=Object.getOwnPropertyDescriptor,fv=(n,i,e,t)=>{for(var o=t>1?void 0:t?pv(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&gv(i,e,o),o},Ne=(n,i)=>(e,t)=>i(e,t,n);exports.SheetPermissionInterceptorBaseController=class extends a.Disposable{constructor(e,t,o,r,s,l,c,d,u,h,g,p){super();E(this,"disposableCollection",new a.DisposableCollection);this._commandService=e,this._univerInstanceService=t,this._permissionService=o,this._selectionManagerService=r,this._dialogService=s,this._rangeProtectionRuleModel=l,this._worksheetProtectionRuleModel=c,this._autoFillService=d,this._localeService=u,this._lexerTreeBuilder=h,this._contextService=g,this._definedNamesService=p,this._initialize()}haveNotPermissionHandle(e){const t={id:Rr,title:{title:""},children:{label:Ga,errorMsg:e},width:320,destroyOnClose:!0,onClose:()=>this._dialogService.close(Rr),className:"sheet-permission-user-dialog"};throw this._dialogService.open(t),new Error("have not permission")}_getPermissionCheck(e,t){var s,l;let o=!0,r="";switch(e){case oe.InsertCommand.id:case oe.IMEInputCommand.id:case Pe.id:if(this._contextService.getContextValue(a.FOCUSING_EDITOR_STANDALONE)===!0)break;o=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:a.isICellData(t.value)&&t.value.f?(o=this._permissionCheckWithFormula(t),r=this._localeService.t("permission.dialog.formulaErr")):o=this._permissionCheckBySetRangeValue({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetEditPermission]},t);break;case m.ClearSelectionContentCommand.id:o=this.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetEditPermission]}),r=this._localeService.t("permission.dialog.editErr");break;case Fo.id:o=this.permissionCheckWithoutRange({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetColumnStylePermission]}),r=this._localeService.t("permission.dialog.pasteErr");break;case Eo.id:o=this._permissionCheckByPaste(t),r=this._localeService.t("permission.dialog.pasteErr");break;case Gn.id:o=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 rn.id:case sn.id:case ln.id:case an.id:o=this.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission]}),r=this._localeService.t("permission.dialog.setStyleErr");break;case Br.id:case Fr.id:o=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(a.UniverInstanceType.UNIVER_SHEET).getUnitId()).id))!=null&&s.value||(r=this._localeService.t("permission.dialog.workbookCopyErr"));break;case m.DeltaColumnWidthCommand.id:case m.SetColWidthCommand.id:o=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:o=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:o=this._permissionCheckByMoveCommand(t),r=this._localeService.t("permission.dialog.moveRowColErr");break;case m.MoveRangeCommand.id:o=this._permissionCheckByMoveRangeCommand(t),r=this._localeService.t("permission.dialog.moveRangeErr");break;case bt.id:o=this._permissionCheckByAutoFillCommand((l=this._autoFillService.autoFillLocation)==null?void 0:l.target),r=this._localeService.t("permission.dialog.autoFillErr");break;case m.SetWorksheetOrderCommand.id:o=this._permissionCheckByWorksheetCommand([m.WorkbookEditablePermission,m.WorkbookMoveSheetPermission]),r=this._localeService.t("permission.dialog.operatorSheetErr"),o===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case m.SetWorksheetNameCommand.id:o=this._permissionCheckByWorksheetCommand([m.WorkbookEditablePermission,m.WorkbookRenameSheetPermission]),r=this._localeService.t("permission.dialog.operatorSheetErr"),o===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case m.SetWorksheetShowCommand.id:o=this._permissionCheckByWorksheetCommand([m.WorkbookEditablePermission,m.WorkbookHideSheetPermission]),r=this._localeService.t("permission.dialog.operatorSheetErr"),o===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case m.SetSpecificColsVisibleCommand.id:o=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:o=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:o=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:o=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:o=this._permissionCheckWithInsertRangeMove("right"),r=this._localeService.t("permission.dialog.insertOrDeleteMoveRangeErr");break;case m.InsertRangeMoveDownCommand.id:o=this._permissionCheckWithInsertRangeMove("bottom"),r=this._localeService.t("permission.dialog.insertOrDeleteMoveRangeErr");break;case m.DeleteRangeMoveLeftCommand.id:o=this._permissionCheckWithInsertRangeMove("left"),r=this._localeService.t("permission.dialog.insertOrDeleteMoveRangeErr");break;case m.DeleteRangeMoveUpCommand.id:o=this._permissionCheckWithInsertRangeMove("top"),r=this._localeService.t("permission.dialog.insertOrDeleteMoveRangeErr");break}o||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 o=e.params,{unitId:r=(t=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET))==null?void 0:t.getUnitId(),subUnitId:s}=o;if(!r||!s)return;const l=this._worksheetProtectionRuleModel.getRule(r,s),c=this._rangeProtectionRuleModel.getSubunitRuleList(r,s);l&&this._worksheetProtectionRuleModel.ruleRefresh(l.permissionId),c.length&&this._rangeProtectionRuleModel.ruleRefresh(s)}}))}_permissionCheckWithInsertRangeMove(e){var u;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:o,unitId:r,subUnitId:s}=t,l=(u=this._selectionManagerService.getCurrentLastSelection())==null?void 0:u.range;return!(!l||(e==="top"?l.startRow=0:e==="left"?l.startColumn=0:e==="right"?l.endColumn=o.getColumnCount()-1:e==="bottom"&&(l.endRow=o.getRowCount()-1),this._rangeProtectionRuleModel.getSubunitRuleList(r,s).map(h=>h.ranges).flat().some(h=>a.Rectangle.getIntersects(l,h))))}_permissionCheckByWorksheetCommand(e){var c,d;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{unitId:o,subUnitId:r}=t,s=this._worksheetProtectionRuleModel.getRule(o,r),l=this._rangeProtectionRuleModel.getSubunitRuleList(o,r).length>0;return s||l?(d=(c=this._permissionService.getPermissionPoint(new m.WorkbookManageCollaboratorPermission(o).id))==null?void 0:c.value)!=null?d:!1:this._permissionService.composePermission(e.map(u=>new u(o).id)).every(u=>u.value)}permissionCheckWithoutRange(e){var p,f,S,v;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:o,unitId:r,subUnitId:s}=t,l=this._selectionManagerService.getCurrentLastSelection();if(!l)return!0;const c=(f=(p=l==null?void 0:l.primary)==null?void 0:p.actualRow)!=null?f:0,d=(v=(S=l==null?void 0:l.primary)==null?void 0:S.actualColumn)!=null?v:0,{workbookTypes:u=[m.WorkbookEditablePermission],worksheetTypes:h,rangeTypes:g}=e;return!(u&&u.some(I=>{var w,y;const b=new I(r);return((y=(w=this._permissionService.getPermissionPoint(b.id))==null?void 0:w.value)!=null?y:!1)===!1})===!0||h&&h.some(I=>{var w,y;const b=new I(r,s);return((y=(w=this._permissionService.getPermissionPoint(b.id))==null?void 0:w.value)!=null?y:!1)===!1})===!0||g&&g.some(I=>{var M,A,N,x,D;const b=(A=(M=o.getCell(c,d))==null?void 0:M.selectionProtection)==null?void 0:A[0];if(!(b!=null&&b.ruleId))return!1;const T=(N=this._rangeProtectionRuleModel.getRule(r,s,b.ruleId))==null?void 0:N.permissionId;if(!T)return!1;const w=new I(r,s,T);return((D=(x=this._permissionService.getPermissionPoint(w.id))==null?void 0:x.value)!=null?D:!1)===!1})===!0)}permissionCheckWithRanges(e,t,o,r){var p;const s=m.getSheetCommandTarget(this._univerInstanceService);if(!s)return!1;const{workbook:l,worksheet:c}=s;o||(o=l.getUnitId()),r||(r=c.getSheetId());const d=t!=null?t:(p=this._selectionManagerService.getCurrentSelections())==null?void 0:p.map(f=>f.range);if(!d)return!1;const{workbookTypes:u=[m.WorkbookEditablePermission],worksheetTypes:h,rangeTypes:g}=e;return u&&u.some(S=>{var I,b;const v=new S(o);return((b=(I=this._permissionService.getPermissionPoint(v.id))==null?void 0:I.value)!=null?b:!1)===!1})===!0||h&&h.some(S=>{var I,b;const v=new S(o,r);return((b=(I=this._permissionService.getPermissionPoint(v.id))==null?void 0:I.value)!=null?b:!1)===!1})===!0?!1:g?d==null?void 0:d.every(S=>g.every(v=>{var C,I,b,T,w;for(let y=S.startRow;y<=S.endRow;y++)for(let M=S.startColumn;M<=S.endColumn;M++){const A=(I=(C=c.getCell(y,M))==null?void 0:C.selectionProtection)==null?void 0:I[0];if(!(A!=null&&A.ruleId))continue;const N=(b=this._rangeProtectionRuleModel.getRule(o,r,A.ruleId))==null?void 0:b.permissionId;if(!N)continue;const x=new v(o,r,N);if(((w=(T=this._permissionService.getPermissionPoint(x.id))==null?void 0:T.value)!=null?w:!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:o,unitId:r,subUnitId:s}=t,l=e.toRange;l.endRow===o.getRowCount()-1?l.endColumn=l.startColumn:l.endRow=l.startRow;const c=this._rangeProtectionRuleModel.getSubunitRuleList(r,s).reduce((d,u)=>[...d,...u.ranges],[]).filter(d=>a.Rectangle.intersects(d,l));return c.length>0?!1:(c.forEach(d=>{var u,h;for(let g=d.startRow;g<=d.endRow;g++)for(let p=d.startColumn;p<=d.endColumn;p++){const f=(h=(u=o.getCell(g,p))==null?void 0:u.selectionProtection)==null?void 0:h[0];if((f==null?void 0:f[J.Edit])===!1)return!1}}),!0)}_permissionCheckByAutoFillCommand(e){if(!e)return!1;const{rows:t,cols:o}=e,r=t[0],s=t[t.length-1],l=o[0],c=o[o.length-1],d={startRow:r,endRow:s,startColumn:l,endColumn:c},u=m.getSheetCommandTarget(this._univerInstanceService);if(!u)return!1;const{worksheet:h,unitId:g,subUnitId:p}=u;return!this._rangeProtectionRuleModel.getSubunitRuleList(g,p).reduce((v,C)=>[...v,...C.ranges],[]).filter(v=>a.Rectangle.intersects(v,d)).some(v=>{var C,I;for(let b=v.startRow;b<=v.endRow;b++)for(let T=v.startColumn;T<=v.endColumn;T++){const w=(I=(C=h.getCell(b,T))==null?void 0:C.selectionProtection)==null?void 0:I[0];if((w==null?void 0:w[J.Edit])===!1)return!0}return!1})}_permissionCheckByMoveRangeCommand(e){const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:o,unitId:r,subUnitId:s}=t,l=e.toRange,c=this._rangeProtectionRuleModel.getSubunitRuleList(r,s).reduce((d,u)=>[...d,...u.ranges],[]).filter(d=>a.Rectangle.intersects(d,l));return c.length>0?!1:(c.forEach(d=>{var u,h;for(let g=d.startRow;g<=d.endRow;g++)for(let p=d.startColumn;p<=d.endColumn;p++){const f=(h=(u=o.getCell(g,p))==null?void 0:u.selectionProtection)==null?void 0:h[0];if((f==null?void 0:f[J.Edit])===!1)return!1}}),!0)}_permissionCheckBySetRangeValue(e,t){let o=[];t.range?o=[t.range]:o=[new a.ObjectMatrix(t.value).getDataRange()];const{unitId:r,subUnitId:s}=t;return this.permissionCheckWithRanges(e,o,r,s)}_permissionCheckWithFormula(e){var s,l,c,d,u;const t=e.value,o=e.range,r=t.f;if(r){const h=r.substring(1),g=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),p=(s=e.unitId)!=null?s:g.getUnitId(),f=this._definedNamesService.getValueByName(p,h);if(f){let S=f.formulaOrRefString;S.startsWith($.operatorToken.EQUALS)&&(S=S.slice(1));const v=S.split(",");for(let C=0;C<v.length;C++){const I=v[C],b=$.deserializeRangeWithSheet(I);if(b.sheetName){const T=g.getSheetBySheetName(b.sheetName);if(!T)return!1;const{startRow:w,endRow:y,startColumn:M,endColumn:A}=b.range;for(let N=w;N<=y;N++)for(let x=M;x<=A;x++){const D=(c=(l=T.getCell(N,x))==null?void 0:l.selectionProtection)==null?void 0:c[0];if((D==null?void 0:D[J.View])===!1)return!1}}}return!0}else{const S=this._lexerTreeBuilder.sequenceNodesBuilder(r);if(!S)return!0;for(let v=0;v<S.length;v++){const C=S[v];if(typeof C=="string")continue;const{token:I}=C,b=$.deserializeRangeWithSheet(I),T=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);let w=T.getActiveSheet();const y=T.getUnitId();if(b.sheetName){if(w=T.getSheetBySheetName(b.sheetName),!w)return!1;const D=w==null?void 0:w.getSheetId();if(!this._permissionService.getPermissionPoint(new m.WorksheetViewPermission(y,D).id))return!1}if(!w)return!1;const{startRow:M,endRow:A,startColumn:N,endColumn:x}=b.range;for(let D=M;D<=A;D++)for(let H=N;H<=x;H++){const L=(u=(d=w.getCell(D,H))==null?void 0:d.selectionProtection)==null?void 0:u[0];if((L==null?void 0:L[J.View])===!1)return!1}}}}if(o){const h=m.getSheetCommandTarget(this._univerInstanceService);if(!h)return!1;const g=e.unitId||h.unitId,p=e.subUnitId||h.subUnitId,S=this._rangeProtectionRuleModel.getSubunitRuleList(g,p).filter(C=>C.ranges.some(I=>a.Rectangle.intersects(I,o))).map(C=>new m.RangeProtectionPermissionEditPoint(g,p,C.permissionId).id);if(!this._permissionService.composePermission(S).every(C=>C.value))return!1}return!0}};exports.SheetPermissionInterceptorBaseController=fv([a.OnLifecycle(a.LifecycleStages.Steady,exports.SheetPermissionInterceptorBaseController),Ne(0,a.ICommandService),Ne(1,a.IUniverInstanceService),Ne(2,a.IPermissionService),Ne(3,k.Inject(m.SheetsSelectionsService)),Ne(4,R.IDialogService),Ne(5,k.Inject(m.RangeProtectionRuleModel)),Ne(6,k.Inject(m.WorksheetProtectionRuleModel)),Ne(7,gt),Ne(8,k.Inject(a.LocaleService)),Ne(9,k.Inject($.LexerTreeBuilder)),Ne(10,a.IContextService),Ne(11,$.IDefinedNamesService)],exports.SheetPermissionInterceptorBaseController);var Sv=Object.defineProperty,vv=Object.getOwnPropertyDescriptor,Cv=(n,i,e,t)=>{for(var o=t>1?void 0:t?vv(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&Sv(i,e,o),o},_n=(n,i)=>(e,t)=>i(e,t,n);const _v="SHEET_PERMISSION_PASTE_PLUGIN";let kn=class extends a.Disposable{constructor(i,e,t,o,r){super();E(this,"disposableCollection",new a.DisposableCollection);this._univerInstanceService=i,this._selectionManagerService=e,this._localService=t,this._sheetClipboardService=o,this._sheetPermissionInterceptorBaseController=r,this._initClipboardHook()}_initClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook({id:_v,onBeforePaste:i=>{var g,p,f;const[e]=en([i.range]).ranges,t=(g=this._selectionManagerService.getCurrentLastSelection())==null?void 0:g.range;if(!t)return!1;const o={startRow:t.startRow+e.startRow,endRow:t.startRow+e.endRow,startColumn:t.startColumn+e.startColumn,endColumn:t.startColumn+e.endColumn},s=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!s)return!1;const{startRow:l,endRow:c,startColumn:d,endColumn:u}=o;let h=!0;for(let S=l;S<=c;S++)for(let v=d;v<=u;v++){const C=(f=(p=s.getCell(S,v))==null?void 0:p.selectionProtection)==null?void 0:f[0];if((C==null?void 0:C[J.Edit])===!1){h=!1;break}}return h||this._sheetPermissionInterceptorBaseController.haveNotPermissionHandle(this._localService.t("permission.dialog.pasteErr")),h}}))}};kn=Cv([a.OnLifecycle(a.LifecycleStages.Steady,kn),_n(0,a.IUniverInstanceService),_n(1,k.Inject(m.SheetsSelectionsService)),_n(2,k.Inject(a.LocaleService)),_n(3,k.Inject(ot)),_n(4,k.Inject(exports.SheetPermissionInterceptorBaseController))],kn);var Iv=Object.defineProperty,bv=Object.getOwnPropertyDescriptor,Rv=(n,i,e,t)=>{for(var o=t>1?void 0:t?bv(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&Iv(i,e,o),o},Be=(n,i)=>(e,t)=>i(e,t,n);exports.SheetPermissionInitController=class extends a.Disposable{constructor(i,e,t,o,r,s,l,c,d,u){super(),this._univerInstanceService=i,this._dialogService=e,this._permissionService=t,this._authzIoService=o,this._rangeProtectionRuleModel=r,this._worksheetProtectionRuleModel=s,this._userManagerService=l,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 i=[],e=this._univerInstanceService.getCurrentUnitForType(bo.UNIVER_SHEET),t=e.getUnitId(),o=e.getSheets(),r=new Map;o.forEach(s=>{const l=s.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(t,l).forEach(c=>{r.set(c.permissionId,c),i.push({objectID:c.permissionId,unitID:t,objectType:ie.SelectRange,actions:[J.View,J.Edit]})})}),i.length&&this._authzIoService.batchAllowed(i).then(s=>{s.forEach(l=>{const c=r.get(l.objectID);c&&m.getAllRangePermissionPoint().forEach(d=>{const u=new d(t,c.subUnitId,l.objectID),h=u.subType,g=l.actions.find(p=>p.action===h);(g==null?void 0:g.allowed)!==void 0&&this._permissionService.updatePermissionPoint(u.id,g.allowed)})})})}_initRangePermissionChange(){this.disposeWithMe(this._rangeProtectionRuleModel.ruleChange$.subscribe(i=>{i.type!=="delete"?this._authzIoService.allowed({objectID:i.rule.permissionId,unitID:i.unitId,objectType:ie.SelectRange,actions:[J.Edit,J.View]}).then(e=>{m.getAllRangePermissionPoint().forEach(t=>{if(i.type==="set"){const{rule:c,oldRule:d}=i;if(c.permissionId===(d==null?void 0:d.permissionId))return}const o=i.rule,r=new t(o.unitId,o.subUnitId,o.permissionId),s=r.subType,l=e.find(c=>c.action===s);l&&this._permissionService.updatePermissionPoint(r.id,l.allowed)})}):this._rangeProtectionRuleModel.getSubunitRuleList(i.unitId,i.subUnitId).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(i.unitId,i.subUnitId),[...m.getAllWorksheetPermissionPointByPointPanel()].forEach(t=>{const o=new t(i.unitId,i.subUnitId);this._permissionService.addPermissionPoint(o)}))}))}initWorkbookPermissionChange(i){const e=i||this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId();this._authzIoService.allowed({objectID:e,objectType:ie.Workbook,unitID:e,actions:m.defaultWorkbookPermissionPoints}).then(t=>{m.getAllWorkbookPermissionPoint().forEach(o=>{const r=new o(e),s=r.subType,l=t.find(c=>c.action===s);l&&this._permissionService.updatePermissionPoint(r.id,l.allowed)})})}_initWorksheetPermissionChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(i=>{i.type!=="delete"?this._authzIoService.allowed({objectID:i.rule.permissionId,unitID:i.unitId,objectType:ie.Worksheet,actions:[J.Edit,J.View]}).then(e=>{m.getAllWorksheetPermissionPoint().forEach(t=>{const o=new t(i.unitId,i.subUnitId),r=o.subType,s=e.find(l=>l.action===r);s&&this._permissionService.updatePermissionPoint(o.id,s.allowed)})}):([...m.getAllWorksheetPermissionPoint(),...m.getAllWorksheetPermissionPointByPointPanel()].forEach(e=>{const t=new e(i.unitId,i.subUnitId);this._permissionService.updatePermissionPoint(t.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(i.unitId,i.subUnitId))}))}_initWorksheetPermissionPointsChange(){this.disposeWithMe(this._worksheetProtectionPointRuleModel.pointChange$.subscribe(i=>{this._authzIoService.allowed({objectID:i.permissionId,unitID:i.unitId,objectType:ie.Worksheet,actions:m.defaultWorksheetPermissionPoint}).then(e=>{m.getAllWorksheetPermissionPointByPointPanel().forEach(t=>{const o=new t(i.unitId,i.subUnitId),r=o.subType,s=e.find(l=>l.action===r);s&&this._permissionService.updatePermissionPoint(o.id,s.allowed)})})}))}_initWorksheetPermissionFromSnapshot(){const i=[],e=this._univerInstanceService.getCurrentUnitForType(bo.UNIVER_SHEET),t=e.getUnitId(),o=e.getSheets(),r=new Map;o.forEach(s=>{const l=s.getSheetId(),c=this._worksheetProtectionRuleModel.getRule(t,l);c&&(r.set(c.permissionId,c),i.push({objectID:c.permissionId,unitID:t,objectType:ie.Worksheet,actions:[J.Edit,J.View]}));const d=this._worksheetProtectionPointRuleModel.getRule(t,l);d&&(r.set(d.permissionId,d),i.push({objectID:d.permissionId,unitID:t,objectType:ie.Worksheet,actions:m.defaultWorksheetPermissionPoint}))}),i.length&&this._authzIoService.batchAllowed(i).then(s=>{s.forEach(l=>{const c=r.get(l.objectID);c&&[...m.getAllWorksheetPermissionPoint(),...m.getAllWorksheetPermissionPointByPointPanel()].forEach(d=>{const u=new d(t,c.subUnitId),h=u.subType,g=l.actions.find(p=>p.action===h);(g==null?void 0:g.allowed)!==void 0&&this._permissionService.updatePermissionPoint(u.id,g.allowed)})})})}_initUserChange(){this.disposeWithMe(this._userManagerService.currentUser$.subscribe(()=>{const i=this._permissionService.getAllPermissionPoint();this._permissionService.clearPermissionMap(),this._worksheetProtectionRuleModel.changeRuleInitState(!1);const e=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),t=e.getUnitId();m.getAllWorkbookPermissionPoint().forEach(o=>{let r=new o(t);i.has(r.id)&&(r=i.get(r.id)),this._permissionService.addPermissionPoint(r)}),e.getSheets().forEach(o=>{const r=o.getSheetId();[...m.getAllWorksheetPermissionPoint(),...m.getAllWorksheetPermissionPointByPointPanel()].forEach(l=>{let c=new l(t,r);i.has(c.id)&&(c=i.get(c.id)),this._permissionService.addPermissionPoint(c)}),this._rangeProtectionRuleModel.getSubunitRuleList(t,r).forEach(l=>{m.getAllRangePermissionPoint().forEach(c=>{let d=new c(t,r,l.permissionId);i.has(d.id)&&(d=i.get(d.id)),this._permissionService.addPermissionPoint(d)})})}),this.initWorkbookPermissionChange(),this._initWorksheetPermissionFromSnapshot(),this._initRangePermissionFromSnapshot()}))}_initViewModelByRangeInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(m.INTERCEPTOR_POINT.CELL_CONTENT,{priority:999,handler:(i={},e,t)=>{const{unitId:o,subUnitId:r,row:s,col:l}=e,c=this._selectionProtectionRenderModel.getCellInfo(o,r,s,l).filter(d=>!!d.ruleId).map(d=>{const u=this._rangeProtectionRuleModel.getRule(o,r,d.ruleId)||{};return{...d,ranges:u.ranges}}).filter(d=>!!d.ranges);if(c.length){const d=c.some(h=>!(h!=null&&h[J.View])),u={...i,selectionProtection:c};return d?(delete u.s,delete u.v,delete u.p,u):t(u)}return t(i)}}))}_initViewModelBySheetInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(m.INTERCEPTOR_POINT.CELL_CONTENT,{priority:999,handler:(i={},e,t)=>{var l,c,d,u,h;const{unitId:o,subUnitId:r}=e,s=this._worksheetProtectionRuleModel.getRule(o,r);if(s!=null&&s.permissionId&&s.name){const g=[{[J.View]:(c=(l=this._permissionService.getPermissionPoint(new m.WorksheetViewPermission(o,r).id))==null?void 0:l.value)!=null?c:!1,[J.Edit]:(u=(d=this._permissionService.getPermissionPoint(new m.WorksheetEditPermission(o,r).id))==null?void 0:d.value)!=null?u:!1}],p=!((h=g[0])!=null&&h[J.View]),f={...i,hasWorksheetRule:!0,selectionProtection:g};return p?(delete f.s,delete f.v,delete f.p,f):t(f)}return t(i)}}))}};exports.SheetPermissionInitController=Rv([a.OnLifecycle(a.LifecycleStages.Rendered,exports.SheetPermissionInitController),Be(0,a.IUniverInstanceService),Be(1,R.IDialogService),Be(2,a.IPermissionService),Be(3,a.IAuthzIoService),Be(4,k.Inject(m.RangeProtectionRuleModel)),Be(5,k.Inject(m.WorksheetProtectionRuleModel)),Be(6,k.Inject(a.UserManagerService)),Be(7,k.Inject(m.WorksheetProtectionPointModel)),Be(8,k.Inject(m.SheetInterceptorService)),Be(9,k.Inject(m.RangeProtectionRenderModel))],exports.SheetPermissionInitController);const Ka="data:image/png;base64,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",Tv="univer-spin-container",Ev="univer-spin-overlay",wv="univer-spinner",Pv="univer-spin",yv="univer-content-blur",fo={spinContainer:Tv,spinOverlay:Ev,spinner:wv,spin:Pv,contentBlur:yv},qa=({loading:n,children:i})=>_.jsxs("div",{className:fo.spinContainer,children:[n&&_.jsx("div",{className:fo.spinOverlay,children:_.jsx("div",{className:fo.spinner})}),_.jsx("div",{className:n?fo.contentBlur:"",children:i})]}),Mv="univer-permission-panel-detail-wrapper",Ov="univer-radio-group-vertical",Av="univer-sheet-permission-design-person-panel",Nv="univer-sheet-permission-design-person-panel-header",xv="univer-sheet-permission-design-person-panel-header-add",Dv="univer-sheet-permission-design-person-panel-split",kv="univer-sheet-permission-design-person-panel-content-item",Hv="univer-sheet-permission-design-person-panel-content-item-name",Vv="univer-sheet-permission-design-person-panel-content-item-select",Wv="univer-sheet-permission-design-person-panel-content",Lv="univer-sheet-permission-user-list-empty",Uv="univer-sheet-permission-user-list-empty-text",Bv="univer-sheet-permission-panel-title",Fv="univer-permission-range-selector",jv="univer-permission-range-selector-error",Xv="univer-sheet-permission-panel-name-input-error",zv="univer-permission-range-selector-error-text",Yv="univer-sheet-permission-panel-name-input-error-text",he={permissionPanelDetailWrapper:Mv,radioGroupVertical:Ov,sheetPermissionDesignPersonPanel:Av,sheetPermissionDesignPersonPanelHeader:Nv,sheetPermissionDesignPersonPanelHeaderAdd:xv,sheetPermissionDesignPersonPanelSplit:Dv,sheetPermissionDesignPersonPanelContentItem:kv,sheetPermissionDesignPersonPanelContentItemName:Hv,sheetPermissionDesignPersonPanelContentItemSelect:Vv,sheetPermissionDesignPersonPanelContent:Wv,sheetPermissionUserListEmpty:Lv,sheetPermissionUserListEmptyText:Uv,sheetPermissionPanelTitle:Bv,permissionRangeSelector:Fv,permissionRangeSelectorError:jv,sheetPermissionPanelNameInputError:Xv,permissionRangeSelectorErrorText:zv,sheetPermissionPanelNameInputErrorText:Yv},Zv=({fromSheetBar:n})=>{var D,H,L;const i=j.useDependency(a.LocaleService),e=j.useDependency(R.IDialogService),t=j.useDependency(a.IUniverInstanceService),o=j.useDependency(m.SheetsSelectionsService),r=j.useDependency(Ie),s=R.useObservable(r.rule$,r.rule),l=j.useDependency(a.UserManagerService),c=j.useDependency(hn),d=j.useDependency(a.IAuthzIoService),u=j.useDependency(R.ISidebarService),h=j.useDependency(m.RangeProtectionRuleModel),g=j.useDependency(m.WorksheetProtectionRuleModel),p=R.useObservable(r.rangeErrorMsg$),f=t.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),S=f.getActiveSheet(),v=f.getUnitId(),C=S.getSheetId(),I=R.useObservable(c.selectUserList$,c.selectUserList),[b,T]=V.useState(I.length?"designedUserCanEdit":"onlyMe"),[w,y]=V.useState(Lt.othersCanView),[M,A]=V.useState(!1),N=async()=>{const W=await d.listCollaborators({objectID:v,unitID:v});W.forEach(X=>{X!=null&&X.subject&&l.addUser(X.subject)}),c.setUserList(W),e.open({id:Oo,title:{title:""},children:{label:ra},width:280,destroyOnClose:!0,onClose:()=>e.close(Oo),className:"sheet-permission-user-dialog"})},x=W=>{let X="";if(W.length===0)X=i.t("permission.panel.emptyRangeError");else if(W.length>1){let q=!1;for(let G=0;G<W.length;G++){for(let z=G+1;z<W.length;z++)if(a.Rectangle.intersects(W[G],W[z])){q=!0;break}if(q)break}q&&(X=i.t("permission.panel.rangeOverlapError"))}if(!X){if(g.getRule(v,C)&&!(s!=null&&s.permissionId))return X=i.t("permission.panel.rangeOverlapOverPermissionError"),X;const G=h.getSubunitRuleList(v,C).filter(Y=>Y.permissionId!==(s==null?void 0:s.permissionId)).find(Y=>Y.ranges.some(F=>W.some(Z=>a.Rectangle.intersects(F,Z))));(G==null?void 0:G.ranges.find(Y=>W.some(F=>a.Rectangle.intersects(Y,F))))&&(X=i.t("permission.panel.rangeOverlapOverPermissionError"))}return X};return V.useEffect(()=>{var Y,F;if(s==null?void 0:s.permissionId){s.unitType===ie.Worksheet&&r.setRule({ranges:[{startRow:0,startColumn:0,endRow:S.getRowCount()-1,endColumn:S.getColumnCount()-1,rangeType:a.RANGE_TYPE.ALL}]});return}n&&(o.clearCurrentSelections(),o.addSelections([{primary:null,style:null,range:{startRow:0,startColumn:0,endRow:S.getRowCount()-1,endColumn:S.getColumnCount()-1,rangeType:a.RANGE_TYPE.ALL}}]));const X=(F=(Y=o.getCurrentSelections())==null?void 0:Y.map(Z=>Z.range))!=null?F:[],q=x(X);r.setRangeErrorMsg(q);const G=X!=null&&X.length?X.map(Z=>{const K=$.serializeRange(Z);return K==="NaN"?"":K}).filter(Z=>!!Z).join(","):"",z=S.getName();r.setRule({ranges:X,name:n?`${z}`:`${z}(${G})`,unitId:v,subUnitId:C,unitType:n?ie.Worksheet:ie.SelectRange})},[s==null?void 0:s.permissionId,n,o,r,C,v,S]),V.useEffect(()=>{const W=async()=>{const X=s==null?void 0:s.permissionId;A(!0);const q=await d.listCollaborators({objectID:X,unitID:v}),G=q.filter(Y=>Y.role===be.Editor);c.setSelectUserList(G),A(!1),(G==null?void 0:G.length)>0&&T("designedUserCanEdit");const z=q.filter(Y=>Y.role===be.Reader);z.length===0&&y(Lt.noOneElseCanView),c.setOldCollaboratorList(G.concat(z))};s!=null&&s.permissionId?W():(c.setSelectUserList([]),T("onlyMe"))},[s==null?void 0:s.permissionId]),V.useEffect(()=>{(async()=>{const X=await d.listCollaborators({objectID:v,unitID:v});X.forEach(q=>{q!=null&&q.subject&&l.addUser(q.subject)}),c.setUserList(X.filter(q=>q.role===be.Editor)),c.setAllUserList(X.filter(q=>q.role===be.Editor||q.role===be.Reader))})()},[]),V.useEffect(()=>{r.setRule({viewStatus:w})},[r,w]),V.useEffect(()=>{const W=t.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!W)return;const X=W.activeSheet$.subscribe(q=>{(q==null?void 0:q.getSheetId())!==C&&u.close()});return()=>{X.unsubscribe()}},[u,C,t]),(D=s==null?void 0:s.ranges)==null||D.map(W=>$.serializeRange(W)).join(","),_.jsxs("div",{className:he.permissionPanelDetailWrapper,children:[_.jsxs(te.FormLayout,{className:he.sheetPermissionPanelTitle,label:i.t("permission.panel.protectedRange"),children:[_.jsx(R.RangeSelector,{className:ge(he.permissionRangeSelector),textEditorClassName:ge({[he.permissionRangeSelectorError]:p}),value:(H=s==null?void 0:s.ranges)==null?void 0:H.map(W=>$.serializeRange(W)).join(","),id:a.createInternalEditorID("sheet-permission-panel"),openForSheetUnitId:v,openForSheetSubUnitId:C,onChange:W=>{if(W.some(U=>!a.isValidRange(U.range)||U.range.endColumn<U.range.startColumn||U.range.endRow<U.range.startRow))return;const X=t.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),q=X.getActiveSheet(),G=X.getUnitId(),z=q.getSheetId(),Y=W.map(U=>{const Q={...U.range},ee=q.getRowCount(),ae=q.getColumnCount();return m.setEndForRange(Q,ee,ae),Q}),F=x(Y);if(r.setRangeErrorMsg(F),F)return;const Z=q.getName(),K=Y.map(U=>{const Q=$.serializeRange(U);return Q==="NaN"?"":Q}).filter(U=>!!U).join(","),B={ranges:Y,unitId:G,subUnitId:z,unitType:ie.SelectRange,name:`${Z}(${K})`};if(B.ranges.length===1){const{startRow:U,endRow:Q,startColumn:ee,endColumn:ae}=B.ranges[0];U===0&&Q===q.getRowCount()-1&&ee===0&&q.getColumnCount()-1===ae&&(B.unitType=ie.Worksheet,B.name=`${Z}`)}r.setRule(B)}}),p&&_.jsx("span",{className:he.sheetPermissionPanelNameInputErrorText,children:p})]}),_.jsx(te.FormLayout,{className:he.sheetPermissionPanelTitle,label:i.t("permission.panel.permissionDirection"),children:_.jsx(te.Input,{value:(L=s==null?void 0:s.description)!=null?L:"",onChange:W=>r.setRule({description:W}),placeholder:i.t("permission.panel.permissionDirectionPlaceholder")})}),_.jsx(te.FormLayout,{className:he.sheetPermissionPanelTitle,label:i.t("permission.panel.editPermission"),children:_.jsxs(te.RadioGroup,{value:b,onChange:W=>{T(W),W==="onlyMe"&&c.setSelectUserList([])},className:he.radioGroupVertical,children:[_.jsx(te.Radio,{value:"onlyMe",children:_.jsx("span",{className:he.text,children:i.t("permission.panel.onlyICanEdit")})}),_.jsx(te.Radio,{value:"designedUserCanEdit",children:_.jsx("span",{className:he.text,children:i.t("permission.panel.designedUserCanEdit")})})]})}),b==="designedUserCanEdit"&&_.jsx("div",{className:he.sheetPermissionDesignPersonPanel,children:_.jsxs(qa,{loading:M,children:[_.jsxs("div",{className:he.sheetPermissionDesignPersonPanelHeader,children:[_.jsx("span",{children:i.t("permission.panel.designedPerson")}),_.jsx("span",{className:he.sheetPermissionDesignPersonPanelHeaderAdd,onClick:N,children:i.t("permission.panel.addPerson")})]}),_.jsx("div",{className:he.sheetPermissionDesignPersonPanelSplit}),_.jsx("div",{className:he.sheetPermissionDesignPersonPanelContent,children:(I==null?void 0:I.length)>0?I.map(W=>{var X,q,G;return _.jsxs("div",{className:he.sheetPermissionDesignPersonPanelContentItem,children:[_.jsx(te.Avatar,{size:24,src:(X=W.subject)==null?void 0:X.avatar}),_.jsx("span",{className:he.sheetPermissionDesignPersonPanelContentItemName,children:(q=W.subject)==null?void 0:q.name}),_.jsx(te.Select,{className:he.sheetPermissionDesignPersonPanelContentItemSelect,value:"edit",onChange:z=>{z==="delete"&&c.setSelectUserList(I.filter(Y=>{var F,Z;return((F=Y.subject)==null?void 0:F.userID)!==((Z=W.subject)==null?void 0:Z.userID)}))},options:[{label:`${i.t("permission.panel.canEdit")}`,value:"edit"},{label:`${i.t("permission.panel.delete")}`,value:"delete"}]})]},(G=W.subject)==null?void 0:G.userID)}):_.jsxs("div",{className:he.sheetPermissionUserListEmpty,children:[_.jsx("img",{width:240,height:120,src:Ka,alt:""}),_.jsx("p",{className:he.sheetPermissionUserListEmptyText,children:i.t("permission.dialog.userEmpty")})]})})]})}),_.jsx(te.FormLayout,{className:he.sheetPermissionPanelTitle,label:i.t("permission.panel.viewPermission"),children:_.jsxs(te.RadioGroup,{value:w,onChange:W=>y(W),className:he.radioGroupVertical,children:[_.jsx(te.Radio,{value:Lt.othersCanView,children:_.jsx("span",{className:he.text,children:i.t("permission.panel.othersCanView")})}),_.jsx(te.Radio,{value:Lt.noOneElseCanView,children:_.jsx("span",{className:he.text,children:i.t("permission.panel.noOneElseCanView")})})]})})]})},Qa=(n=[])=>{const i=j.useDependency(Ot);V.useEffect(()=>{const e=n.map(t=>i.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&&i.removeShape(t)})}},[n])},Gv="data:image/png;base64,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",Kv="univer-sheet-permission-list-panel-wrapper",qv="univer-sheet-permission-list-panel-header",Qv="univer-sheet-permission-list-panel-header-type",Jv="univer-sheet-permission-list-panel-header-type-bottom",$v="univer-sheet-permission-list-panel-header-select",eC="univer-sheet-permission-list-item-header-icon",tC="univer-sheet-permission-list-item",nC="univer-sheet-permission-list-item-header",oC="univer-sheet-permission-list-item-header-name",iC="univer-sheet-permission-list-item-header-operator",rC="univer-sheet-permission-list-item-split",sC="univer-sheet-permission-list-item-content-edit",lC="univer-sheet-permission-list-item-content-view",aC="univer-sheet-permission-list-item-content-desc",cC="univer-sheet-permission-list-empty",dC="univer-sheet-permission-list-empty-text",uC="univer-sheet-permission-list-item-content-title",hC="univer-sheet-permission-list-item-content-sub",ce={sheetPermissionListPanelWrapper:Kv,sheetPermissionListPanelHeader:qv,sheetPermissionListPanelHeaderType:Qv,sheetPermissionListPanelHeaderTypeBottom:Jv,sheetPermissionListPanelHeaderSelect:$v,sheetPermissionListItemHeaderIcon:eC,sheetPermissionListItem:tC,sheetPermissionListItemHeader:nC,sheetPermissionListItemHeaderName:oC,sheetPermissionListItemHeaderOperator:iC,sheetPermissionListItemSplit:rC,sheetPermissionListItemContentEdit:sC,sheetPermissionListItemContentView:lC,sheetPermissionListItemContentDesc:aC,sheetPermissionListEmpty:cC,sheetPermissionListEmptyText:dC,sheetPermissionListItemContentTitle:uC,sheetPermissionListItemContentSub:hC},mC=()=>{const[n,i]=V.useState(!0),[e,t]=V.useState(!1),o=j.useDependency(Ie),r=j.useDependency(a.LocaleService),s=j.useDependency(m.RangeProtectionRuleModel),l=j.useDependency(m.WorksheetProtectionRuleModel),d=j.useDependency(a.IUniverInstanceService).getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),u=d.getUnitId(),h=j.useDependency(a.ICommandService),g=j.useDependency(R.ISidebarService),p=j.useDependency(a.IAuthzIoService),f=j.useDependency(a.IPermissionService),v=j.useDependency(a.UserManagerService).getCurrentUser(),[C,I]=V.useState([]);R.useObservable(l.ruleRefresh$),R.useObservable(s.ruleRefresh$);const b=V.useCallback(async x=>{var Z;const D=d.getActiveSheet(),H=d.getUnitId(),L=D.getSheetId(),W=[],X=[];d.getSheets().forEach(K=>{const B=K.getSheetId();s.getSubunitRuleList(H,B).forEach(ee=>{ee.permissionId&&ee.name&&W.push(ee.permissionId)});const Q=l.getRule(H,B);Q!=null&&Q.permissionId&&Q.name&&X.push(Q.permissionId)});const q=[...W,...X],G=await p.list({objectIDs:q,unitID:H,actions:[J.View,J.Edit]}),z=s.getSubunitRuleList(H,L).map(K=>K.permissionId),Y=(Z=l.getRule(H,L))==null?void 0:Z.permissionId;Y&&z.push(Y);const F=G.filter(K=>{var B;return z.includes(K.objectID)||K.objectID===((B=l.getRule(H,L))==null?void 0:B.permissionId)});return x?F:G},[]),[T,w]=V.useState([]);V.useEffect(()=>{const x=O.merge(s.ruleChange$,l.ruleChange$).subscribe(async()=>{const D=await b(n);w(D)});return()=>{x.unsubscribe()}},[n]),V.useEffect(()=>{const x=d.activeSheet$.subscribe(async()=>{const D=await b(!0);w(D)});return()=>{x.unsubscribe()}},[]);const y=x=>{const{unitId:D,subUnitId:H,unitType:L}=x;let W;L===ie.Worksheet?W=h.executeCommand(Mt.id,{unitId:D,subUnitId:H,rule:x}):L===ie.SelectRange&&(W=h.executeCommand(m.DeleteRangeProtectionCommand.id,{unitId:D,subUnitId:H,rule:x})),W&&(t(!e),x.ranges===C&&I([]))};Qa(C);const M=new Map;d.getSheets().forEach(x=>{const D=x.getSheetId();s.getSubunitRuleList(u,D).forEach(W=>{M.set(W.permissionId,W)});const L=l.getRule(u,D);L&&M.set(L==null?void 0:L.permissionId,L)});const A=x=>{o.setRule(x),o.setOldRule(x),h.executeCommand(m.SetWorksheetActiveOperation.id,{unitId:x.unitId,subUnitId:x.subUnitId});const D={header:{title:"permission.panel.title"},children:{label:to,showDetail:!0},width:330,footer:{label:no,showDetail:!0}};g.open(D)},N=async x=>{i(x);const D=await b(x);w(D)};return _.jsxs("div",{className:ce.sheetPermissionListPanelWrapper,children:[_.jsxs("div",{className:ce.sheetPermissionListPanelHeader,children:[_.jsxs("div",{className:ce.sheetPermissionListPanelHeaderType,onClick:()=>N(!0),children:[_.jsx("div",{className:ge({[ce.sheetPermissionListPanelHeaderSelect]:n}),children:r.t("permission.panel.currentSheet")}),n&&_.jsx("div",{className:ce.sheetPermissionListPanelHeaderTypeBottom})]}),_.jsxs("div",{className:ce.sheetPermissionListPanelHeaderType,onClick:()=>N(!1),children:[_.jsx("div",{className:ge({[ce.sheetPermissionListPanelHeaderSelect]:!n}),children:r.t("permission.panel.allSheet")}),!n&&_.jsx("div",{className:ce.sheetPermissionListPanelHeaderTypeBottom})]})]}),(T==null?void 0:T.length)>0?_.jsx("div",{className:ce.sheetPermissionListPanelContent,children:T==null?void 0:T.map(x=>{var Z,K,B,U,Q;const D=M.get(x.objectID);if(!D)return null;const H=x.actions.find(ee=>ee.action===J.Edit),L=H==null?void 0:H.allowed,W=x.actions.find(ee=>ee.action===J.View),X=W==null?void 0:W.allowed,G=((K=(Z=f.getPermissionPoint(new m.WorkbookManageCollaboratorPermission(u).id))==null?void 0:Z.value)!=null?K:!1)||v.userID===((B=x.creator)==null?void 0:B.userID);let z="";const Y=d.getSheetBySheetId(D.subUnitId),F=Y==null?void 0:Y.getName();if(D.unitType===ie.SelectRange){const ee=D.ranges,ae=ee!=null&&ee.length?ee.map(se=>{const Ee=$.serializeRange(se);return Ee==="NaN"?"":Ee}).filter(se=>!!se).join(","):"";z=`${F}(${ae})`}else D.unitType===ie.Worksheet&&(z=F||"");return _.jsxs("div",{className:ce.sheetPermissionListItem,onMouseMove:()=>{const{subUnitId:ee,unitType:ae}=D,se=d.getActiveSheet();if(!se)return!1;const Ee=se.getSheetId();if(ee!==Ee)return!1;if(ae===ie.SelectRange){const Ce=D.ranges||[];Ce!==C&&I(Ce)}else if(ae===ie.Worksheet){const Ce=[{startRow:0,endRow:se.getRowCount()-1,startColumn:0,endColumn:se.getColumnCount()-1}];Ce!==C&&I(Ce)}},onMouseLeave:()=>I([]),children:[_.jsxs("div",{className:ce.sheetPermissionListItemHeader,children:[_.jsx(te.Tooltip,{title:z,children:_.jsx("div",{className:ce.sheetPermissionListItemHeaderName,children:z})}),G&&_.jsxs("div",{className:ce.sheetPermissionListItemHeaderOperator,children:[_.jsx(te.Tooltip,{title:r.t("permission.panel.edit"),children:_.jsx("div",{className:ce.sheetPermissionListItemHeaderIcon,onClick:()=>A(D),children:_.jsx(ts,{})})}),_.jsx(te.Tooltip,{title:r.t("permission.panel.delete"),children:_.jsx("div",{className:ce.sheetPermissionListItemHeaderIcon,onClick:()=>y(D),children:_.jsx(hi,{})})})]})]}),_.jsx("div",{className:ce.sheetPermissionListItemSplit}),_.jsxs("div",{className:ce.sheetPermissionListItemContent,children:[_.jsxs("div",{className:ce.sheetPermissionListItemContentEdit,children:[_.jsx(te.Tooltip,{title:(U=x.creator)==null?void 0:U.userID,children:_.jsx("div",{children:_.jsx(te.Avatar,{src:(Q=x.creator)==null?void 0:Q.avatar,style:{marginRight:6},size:24})})}),_.jsx("span",{className:ce.sheetPermissionListItemContentTitle,children:r.t("permission.panel.created")}),_.jsx("span",{className:ce.sheetPermissionListItemContentSub,children:L?`${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")}`})]}),D.description&&_.jsx(te.Tooltip,{title:D.description,children:_.jsx("div",{className:ce.sheetPermissionListItemContentDesc,children:D.description})})]})]},x.objectID)})}):_.jsxs("div",{className:ce.sheetPermissionListEmpty,children:[_.jsx("img",{width:240,height:120,src:Gv,alt:""}),_.jsx("p",{className:ce.sheetPermissionListEmptyText,children:r.t("permission.dialog.listEmpty")})]})]})},gC=({showDetail:n,fromSheetBar:i})=>n?_.jsx(Zv,{fromSheetBar:i}):_.jsx(mC,{}),pC="univer-sheet-permission-panel-footer",fC="univer-sheet-permission-panel-footer-cancel",SC="univer-sheet-permission-panel-add-button",Tr={sheetPermissionPanelFooter:pC,sheetPermissionPanelFooterCancel:fC,sheetPermissionPanelAddButton:SC},vC=()=>{var f,S,v,C;const n=j.useDependency(R.ISidebarService),i=j.useDependency(a.LocaleService),e=j.useDependency(a.IUniverInstanceService),t=j.useDependency(a.IPermissionService),o=e.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),r=o.getUnitId(),s=R.useObservable(o.activeSheet$),l=(S=(f=t.getPermissionPoint(new m.WorkbookEditablePermission(r).id))==null?void 0:f.value)!=null?S:!1,c=(C=(v=t.getPermissionPoint(new m.WorkbookManageCollaboratorPermission(r).id))==null?void 0:v.value)!=null?C:!1,d=l&&c,u=j.useDependency(Ie),h=j.useDependency(m.WorksheetProtectionRuleModel),g=s==null?void 0:s.getSheetId();if(!g)return null;const p=h.getRule(r,g);return!d||p?null:_.jsx("div",{children:_.jsxs(te.Button,{className:Tr.sheetPermissionPanelAddButton,type:"primary",onClick:()=>{u.resetRule();const I={header:{title:`${i.t("permission.panel.title")}`},children:{label:to,showDetail:!0},width:330,footer:{label:no,showDetail:!0}};n.open(I)},children:[_.jsx("div",{children:"+ "}),i.t("permission.button.addNewPermission")]})})},CC=()=>{const n=j.useDependency(Ie),i=R.useObservable(n.rule$,n.rule),e=j.useDependency(R.ISidebarService),t=j.useDependency(a.IAuthzIoService),o=j.useDependency(a.LocaleService),r=j.useDependency(a.ICommandService),s=j.useDependency(hn),l=R.useObservable(n.rangeErrorMsg$);return _.jsxs("div",{className:Tr.sheetPermissionPanelFooter,children:[_.jsx(te.Button,{type:"primary",onClick:async()=>{if(!i.name||l)return;const c=s.selectUserList;i.viewStatus===Lt.othersCanView&&s.allUserList.forEach(h=>{if(!c.some(p=>p.id===h.id)){const p={...h,role:be.Reader};c.push(p)}});const d=bm(c,s.oldCollaboratorList);if(i.permissionId){const h=n.oldRule;if(i.unitType===(h==null?void 0:h.unitType)&&i.name===h.name&&i.description===h.description&&i.ranges===h.ranges&&!d)await t.putCollaborators({objectID:i.permissionId,unitID:i.unitId,collaborators:c});else{let g=i.permissionId;d||(i.unitType===ie.Worksheet?g=await t.create({worksheetObject:{collaborators:c,unitID:i.unitId,name:i.name,strategies:[{role:be.Editor,action:J.Edit},{role:be.Reader,action:J.View}],scope:Vt.SomeCollaborator},objectType:ie.Worksheet}):g=await t.create({selectRangeObject:{collaborators:c,unitID:i.unitId,name:i.name,readScope:Vt.SomeCollaborator},objectType:ie.SelectRange})),r.executeCommand(Ti.id,{rule:{...i,permissionId:g}})}}else if(i.unitType===ie.Worksheet){const h=await t.create({worksheetObject:{collaborators:c,unitID:i.unitId,name:i.name,strategies:[{role:be.Editor,action:J.Edit},{role:be.Reader,action:J.View}],scope:Vt.SomeCollaborator},objectType:ie.Worksheet}),{ranges:g=[],...p}=i;p.permissionId=h,r.executeCommand(oo.id,{rule:p,unitId:i.unitId})}else if(i.unitType===ie.SelectRange){const h=await t.create({selectRangeObject:{collaborators:c,unitID:i.unitId,name:i.name,readScope:Vt.SomeCollaborator},objectType:ie.SelectRange});r.executeCommand(m.AddRangeProtectionCommand.id,{rule:i,permissionId:h})}n.resetRule(),s.setSelectUserList([]);const u={header:{title:`${o.t("permission.panel.title")}`},children:{label:to,showDetail:!1},width:330,footer:{label:no,showDetail:!1}};e.open(u)},children:o.t("permission.button.confirm")}),_.jsx(te.Button,{className:Tr.sheetPermissionPanelFooterCancel,onClick:()=>{n.resetRule(),s.setSelectUserList([]),e.close()},children:o.t("permission.button.cancel")})]})},_C=({showDetail:n})=>n?_.jsx(CC,{}):_.jsx(vC,{}),IC="univer-sheet-permission-user-dialog-wrapper",bC="univer-sheet-permission-user-dialog-search-input",RC="univer-sheet-permission-user-list",TC="univer-sheet-permission-user-list-empty",EC="univer-sheet-permission-user-list-empty-text",wC="univer-sheet-permission-user-item",PC="univer-sheet-permission-user-item-name",yC="univer-sheet-permission-split",MC="univer-sheet-permission-user-dialog-footer",OC="univer-sheet-permission-user-dialog-footer-confirm",AC="univer-sheet-permission-user-dialog-button",Oe={sheetPermissionUserDialogWrapper:IC,sheetPermissionUserDialogSearchInput:bC,sheetPermissionUserList:RC,sheetPermissionUserListEmpty:TC,sheetPermissionUserListEmptyText:EC,sheetPermissionUserItem:wC,sheetPermissionUserItemName:PC,sheetPermissionSplit:yC,sheetPermissionUserDialogFooter:MC,sheetPermissionUserDialogFooterConfirm:OC,sheetPermissionUserDialogButton:AC},NC=()=>{const[n,i]=V.useState(""),e=j.useDependency(a.LocaleService),t=j.useDependency(R.IDialogService),o=j.useDependency(hn),s=o.userList.filter(u=>{var h;return((h=u.subject)==null?void 0:h.name.toLocaleLowerCase().includes(n.toLocaleLowerCase()))&&u.role===be.Editor}),[l,c]=V.useState(o.selectUserList),d=u=>{if((l==null?void 0:l.findIndex(g=>{var p,f;return((p=g.subject)==null?void 0:p.userID)===((f=u.subject)==null?void 0:f.userID)}))===-1){const g={...u};c([...l,g])}else{const g=l.filter(p=>{var f,S;return((f=p.subject)==null?void 0:f.userID)!==((S=u.subject)==null?void 0:S.userID)});c(g)}};return _.jsxs("div",{className:Oe.sheetPermissionUserDialogWrapper,children:[_.jsx("div",{className:Oe.sheetPermissionUserDialogSearch,children:_.jsx(te.Input,{placeholder:"search",className:Oe.sheetPermissionUserDialogSearchInput,value:n,onChange:u=>i(u)})}),_.jsx("div",{className:Oe.sheetPermissionUserList,children:(s==null?void 0:s.length)>0?_.jsx(_.Fragment,{children:s==null?void 0:s.map(u=>{var h,g,p;return _.jsxs("div",{className:Oe.sheetPermissionUserItem,onClick:()=>d(u),children:[_.jsx(te.Avatar,{src:(h=u.subject)==null?void 0:h.avatar,size:24}),_.jsx("div",{className:Oe.sheetPermissionUserItemName,children:(g=u.subject)==null?void 0:g.name}),(l==null?void 0:l.findIndex(f=>{var S,v;return((S=f.subject)==null?void 0:S.userID)===((v=u.subject)==null?void 0:v.userID)}))!==-1&&_.jsx("div",{children:_.jsx(mt,{})})]},(p=u.subject)==null?void 0:p.userID)})}):_.jsxs("div",{className:Oe.sheetPermissionUserListEmpty,children:[_.jsx("img",{width:240,height:120,src:Ka,alt:""}),_.jsx("p",{className:Oe.sheetPermissionUserListEmptyText,children:e.t("permission.dialog.userEmpty")})]})}),_.jsx("div",{className:Oe.sheetPermissionSplit}),_.jsxs("div",{className:Oe.sheetPermissionUserDialogFooter,children:[_.jsx(te.Button,{className:Oe.sheetPermissionUserDialogButton,onClick:()=>t.close(Oo),children:e.t("permission.button.cancel")}),_.jsx(te.Button,{type:"primary",onClick:()=>{o.setSelectUserList(l),t.close(Oo)},className:ge(Oe.sheetPermissionUserDialogFooterConfirm,Oe.sheetPermissionUserDialogButton),children:e.t("permission.button.confirm")})]})]})},xC="univer-sheet-permission-dialog-wrapper",DC="univer-sheet-permission-dialog-split",kC="univer-sheet-permission-dialog-item",HC="univer-sheet-permission-user-dialog-footer",VC="univer-sheet-permission-user-dialog-footer-confirm",WC="univer-sheet-permission-user-dialog-button",lt={sheetPermissionDialogWrapper:xC,sheetPermissionDialogSplit:DC,sheetPermissionDialogItem:kC,sheetPermissionUserDialogFooter:HC,sheetPermissionUserDialogFooterConfirm:VC,sheetPermissionUserDialogButton:WC},LC=()=>{const n=j.useDependency(a.LocaleService),i=j.useDependency(a.IUniverInstanceService),e=j.useDependency(a.IAuthzIoService),t=j.useDependency(m.WorksheetProtectionPointModel),o=j.useDependency(R.IDialogService),r=j.useDependency(a.IPermissionService),s=i.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),l=s.getActiveSheet();if(!l)throw new Error("No active sheet found");const[c,d]=V.useState([]),u=j.useDependency(a.ICommandService),[h,g]=V.useState(()=>!!t.getRule(s.getUnitId(),l.getSheetId())),[p,f]=V.useState(()=>Object.keys(go).reduce((v,C)=>(v[C]={text:n.t(`permission.panel.${go[Number(C)]}`),allowed:!0},v),{}));V.useEffect(()=>{(async()=>{const C=s.getUnitId(),I=await e.listCollaborators({objectID:C,unitID:C});d(I)})()},[]),V.useEffect(()=>{(async()=>{const C=s.getUnitId(),I=t.getRule(C,l.getSheetId());if(!I)return;g(!0);const T=(await e.list({unitID:s.getUnitId(),objectIDs:[I.permissionId],actions:gf}))[0].strategies.reduce((w,y)=>(go[y.action]&&(w[y.action]={text:n.t(`permission.panel.${go[y.action]}`),allowed:y.role!==be.Owner}),w),{});f(T),setTimeout(()=>{g(!1)},100)})()},[]);const S=async()=>{const v=i.getCurrentUnitForType(a.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(),T=t.getRule(I,b),w=Object.keys(p).map(M=>({action:Number(M),role:p[M].allowed?be.Editor:be.Owner}));let y=T==null?void 0:T.permissionId;y?e.update({objectType:ie.Worksheet,objectID:y,unitID:I,strategies:w,share:void 0,name:""}).then(()=>{m.getAllWorksheetPermissionPoint().forEach(M=>{const A=new M(I,b),N=A.subType,x=w.find(D=>D.action===N);x&&r.updatePermissionPoint(A.id,x.role===be.Editor)})}):(y=await e.create({objectType:ie.Worksheet,worksheetObject:{unitID:I,collaborators:c,name:"",strategies:w,scope:Vt.AllCollaborator}}),u.executeCommand(m.SetWorksheetPermissionPointsCommand.id,{rule:{permissionId:y,unitId:I,subUnitId:b}}))};return _.jsx(qa,{loading:h,children:_.jsx("div",{className:lt.sheetPermissionDialogWrapper,children:_.jsxs(_.Fragment,{children:[_.jsx("div",{className:lt.sheetPermissionDialogSplit}),Object.keys(p).map(v=>{const C=p[v],{text:I,allowed:b}=C;return _.jsxs("div",{className:lt.sheetPermissionDialogItem,children:[_.jsx("div",{children:I}),_.jsx(te.Switch,{defaultChecked:b,onChange:()=>{f({...p,[v]:{...C,allowed:!b}})}})]},I)}),_.jsx("div",{className:lt.sheetPermissionDialogSplit}),_.jsxs("div",{className:lt.sheetPermissionUserDialogFooter,children:[_.jsx(te.Button,{className:lt.sheetPermissionUserDialogButton,onClick:()=>{o.close(Ao)},children:n.t("permission.button.cancel")}),_.jsx(te.Button,{type:"primary",onClick:()=>{S(),o.close(Ao)},className:ge(lt.sheetPermissionUserDialogFooterConfirm,lt.sheetPermissionUserDialogButton),children:n.t("permission.button.confirm")})]})]})})})},UC="univer-sheet-permission-alert-dialog",BC="univer-sheet-permission-alert-dialog-title",FC="univer-sheet-permission-alert-dialog-button",Ji={sheetPermissionAlertDialog:UC,sheetPermissionAlertDialogTitle:BC,sheetPermissionAlertDialogButton:FC},jC=({errorMsg:n})=>{const i=j.useDependency(a.LocaleService),e=j.useDependency(R.IDialogService);return _.jsxs("div",{className:Ji.sheetPermissionAlertDialog,children:[_.jsx("h1",{className:Ji.sheetPermissionAlertDialogTitle,children:i.t("permission.dialog.alert")}),_.jsx("p",{children:n||i.t("permission.dialog.alertContent")}),_.jsx("div",{className:Ji.sheetPermissionAlertDialogButton,children:_.jsx(te.Button,{type:"primary",onClick:()=>{e.close(Rr)},children:i.t("permission.button.confirm")})})]})},Ja="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNCIgaGVpZ2h0PSI0IiB2aWV3Qm94PSIwIDAgNCA0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWFzayBpZD0ibWFzazBfNzU5XzExMDgiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjRDZEOEQ5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF83NTlfMTEwOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTS0zLjY0MDAyIDMuNDQxNDFMMi4wNzM5NyAtMi4yNzI1OEwyLjc4MTA4IC0xLjU2NTQ4TC0yLjkzMjkxIDQuMTQ4NTJMLTMuNjQwMDIgMy40NDE0MVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0tMS41MTg2OCA1LjU2Mjc1TDQuMTk1MzEgLTAuMTUxMjQ1TDQuOTAyNDIgMC41NTU4NjJMLTAuODExNTc1IDYuMjY5ODZMLTEuNTE4NjggNS41NjI3NVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjYwMjY1NiA3LjY4NDAzTDYuMzE2NjUgMS45NzAwM0w3LjAyMzc2IDIuNjc3MTRMMS4zMDk3NiA4LjM5MTEzTDAuNjAyNjU2IDcuNjg0MDNaIiBmaWxsPSIjRDZEOERCIi8+CjwvZz4KPC9zdmc+",$a="RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY",ec="RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY",XC=25,zC=80;class tc extends P.SheetExtension{constructor(){super();E(this,"_pattern",null);E(this,"_img",new Image);E(this,"renderCache",new Set);this._img.src=Ja}clearCache(){this.renderCache.clear()}draw(e,t,o,r){const{rowHeightAccumulation:s,columnWidthAccumulation:l,worksheet:c,dataMergeCache:d}=o;c&&(e.save(),this._pattern||(this._pattern=e.createPattern(this._img,"repeat")),this.renderCache.clear(),a.Range.foreach(o.rowColumnSegment,(u,h)=>{if(!c.getColVisible(h)||!c.getRowVisible(u))return;const{selectionProtection:g=[]}=c.getCell(u,h)||{};this._pattern&&(e.fillStyle=this._pattern,g.forEach(p=>{if(p.ruleId&&this.shouldRender(p)){if(this.renderCache.has(p.ruleId))return;this.renderCache.add(p.ruleId),p.ranges.forEach(f=>{const S=this.getCellIndex(f.startRow,f.startColumn,s,l,d),v=this.getCellIndex(f.endRow,f.endColumn,s,l,d);e.fillRect(S.startX,S.startY,v.endX-S.startX,v.endY-S.startY)})}}))}),e.restore())}}class YC extends tc{constructor(){super();E(this,"uKey",$a);E(this,"Z_INDEX",XC)}shouldRender(e){return(e==null?void 0:e[J.View])!==!1}}class ZC extends tc{constructor(){super();E(this,"uKey",ec);E(this,"Z_INDEX",zC)}shouldRender(e){return(e==null?void 0:e[J.View])===!1}}var GC=Object.defineProperty,KC=Object.getOwnPropertyDescriptor,nc=(n,i,e,t)=>{for(var o=t>1?void 0:t?KC(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&GC(i,e,o),o},zt=(n,i)=>(e,t)=>i(e,t,n);let Et=class extends a.Disposable{constructor(n,i,e,t){super(),this._config=n,this._menuService=i,this._componentManager=e,this._injector=t,this._init()}_init(){this._initComponents()}_initComponents(){[[la,ea],[pf,hi],[ff,ts],[Sf,mt],[aa,es],[to,gC],[no,_C],[ra,NC],[sa,LC],[Ga,jC]].forEach(([n,i])=>{this.disposeWithMe(this._componentManager.register(n,i))})}};Et=nc([a.OnLifecycle(a.LifecycleStages.Rendered,Et),zt(1,R.IMenuService),zt(2,k.Inject(R.ComponentManager)),zt(3,k.Inject(k.Injector))],Et);let xo=class extends a.Disposable{constructor(i,e,t,o){super();E(this,"_rangeProtectionCanViewRenderExtension",new YC);E(this,"_rangeProtectionCanNotViewRenderExtension",new ZC);this._context=i,this._rangeProtectionRuleModel=e,this._sheetSkeletonManagerService=t,this._permissionService=o,this._initRender(),this._initSkeleton(),this._rangeProtectionRuleModel.ruleChange$.subscribe(r=>{var s,l;((s=r.oldRule)!=null&&s.id&&this._rangeProtectionCanViewRenderExtension.renderCache.has(r.oldRule.id)||this._rangeProtectionCanViewRenderExtension.renderCache.has(r.rule.id))&&this._rangeProtectionCanViewRenderExtension.clearCache(),((l=r.oldRule)!=null&&l.id&&this._rangeProtectionCanNotViewRenderExtension.renderCache.has(r.oldRule.id)||this._rangeProtectionCanNotViewRenderExtension.renderCache.has(r.rule.id))&&this._rangeProtectionCanNotViewRenderExtension.clearCache()})}_initRender(){const i=this._context.mainComponent;i&&(i.getExtensionByKey($a)||i.register(this._rangeProtectionCanViewRenderExtension),i.getExtensionByKey(ec)||i.register(this._rangeProtectionCanNotViewRenderExtension))}_initSkeleton(){const i=()=>{var e;this._sheetSkeletonManagerService.reCalculate(),(e=this._context.mainComponent)==null||e.makeDirty()};this.disposeWithMe(O.merge(this._permissionService.permissionPointUpdate$.pipe(O.throttleTime(300,void 0,{trailing:!0})),this._rangeProtectionRuleModel.ruleChange$).pipe().subscribe(i))}};xo=nc([zt(1,k.Inject(m.RangeProtectionRuleModel)),zt(2,k.Inject(exports.SheetSkeletonManagerService)),zt(3,a.IPermissionService)],xo);var qC=Object.defineProperty,QC=Object.getOwnPropertyDescriptor,JC=(n,i,e,t)=>{for(var o=t>1?void 0:t?QC(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&qC(i,e,o),o},at=(n,i)=>(e,t)=>i(e,t,n);let Hn=class extends a.RxDisposable{constructor(i,e,t,o,r,s,l,c,d){super();E(this,"disposableCollection",new a.DisposableCollection);this._context=i,this._univerInstanceService=e,this._permissionService=t,this._selectionManagerService=o,this._rangeProtectionRuleModel=r,this._headerMoveRenderController=s,this._selectionRenderService=l,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:(i,e)=>{const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:o,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=>a.Rectangle.intersects(u,e)).some(u=>{var S,v;const{startRow:h,startColumn:g,endRow:p,endColumn:f}=u;for(let C=h;C<=p;C++)for(let I=g;I<=f;I++){const b=(v=(S=o.getCell(C,I))==null?void 0:S.selectionProtection)==null?void 0:v[0];if((b==null?void 0:b[J.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:(i,e)=>{var h,g,p,f;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:o,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;if(e.row){if(((g=(h=this._permissionService.getPermissionPoint(new m.WorksheetSetRowStylePermission(r,s).id))==null?void 0:h.value)!=null?g:!1)===!1)return!1}else if(e.col&&((f=(p=this._permissionService.getPermissionPoint(new m.WorksheetSetColumnStylePermission(r,s).id))==null?void 0:p.value)!=null?f:!1)===!1)return!1;let c;return e.row!==void 0?c={startRow:e.row,endRow:e.row,startColumn:0,endColumn:o.getColumnCount()-1}:e.col!==void 0&&(c={startRow:0,endRow:o.getRowCount()-1,startColumn:e.col,endColumn:e.col}),c?!this._rangeProtectionRuleModel.getSubunitRuleList(r,s).reduce((S,v)=>[...S,...v.ranges],[]).filter(S=>a.Rectangle.intersects(S,c)).some(S=>{var T,w;const{startRow:v,startColumn:C,endRow:I,endColumn:b}=S;for(let y=v;y<=I;y++)for(let M=C;M<=b;M++){const A=(w=(T=o.getCell(y,M))==null?void 0:T.selectionProtection)==null?void 0:w[0];if((A==null?void 0:A[J.Edit])===!1)return!0}return!1}):!0}}))}_initRangeFillPermissionInterceptor(){this.disposeWithMe(this._selectionRenderService.interceptor.intercept(this._selectionRenderService.interceptor.getInterceptPoints().RANGE_FILL_PERMISSION_CHECK,{handler:(i,e)=>{var f,S,v;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:o,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=(f=this._selectionManagerService.getCurrentSelections())==null?void 0:f.map(C=>C.range),d=c==null?void 0:c.find(C=>{const I=Pn(e.x,e.y,e.scene,e.skeleton),b=e.skeleton.getCellByIndex(C.endRow,C.endColumn),T=Math.abs(b.endX-I.x),w=Math.abs(b.endY-I.y);return T<=5&&w<=5});if(!d)return!0;const{startRow:u,endRow:h,startColumn:g,endColumn:p}=d;for(let C=u;C<=h;C++)for(let I=g;I<=p;I++){const b=(v=(S=o.getCell(C,I))==null?void 0:S.selectionProtection)==null?void 0:v[0];if((b==null?void 0:b[J.Edit])===!1||(b==null?void 0:b[J.View])===!1)return!1}return!0}}))}_initRangeMovePermissionInterceptor(){this.disposeWithMe(this._selectionRenderService.interceptor.intercept(this._selectionRenderService.interceptor.getInterceptPoints().RANGE_MOVE_PERMISSION_CHECK,{handler:(i,e)=>{var g;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:o,unitId:r,subUnitId:s}=t;if(!this._permissionService.composePermission([new m.WorkbookEditablePermission(r).id,new m.WorksheetEditPermission(r,s).id]).every(p=>p.value))return!1;const c=(g=this._selectionManagerService.getCurrentSelections())==null?void 0:g.map(p=>p.range),d=this._rangeProtectionRuleModel.getSubunitRuleList(r,s).reduce((p,f)=>[...p,...f.ranges],[]),u=c==null?void 0:c.filter(p=>d.some(f=>a.Rectangle.intersects(f,p)));return!(u==null?void 0:u.some(p=>{var I,b;const{startRow:f,startColumn:S,endRow:v,endColumn:C}=p;for(let T=f;T<=v;T++)for(let w=S;w<=C;w++){const y=(b=(I=o.getCell(T,w))==null?void 0:I.selectionProtection)==null?void 0:b[0];if((y==null?void 0:y[J.Edit])===!1)return!0}return!1}))}}))}_initFreezePermissionInterceptor(){this.disposeWithMe(this._headerFreezeRenderController.interceptor.intercept(this._headerFreezeRenderController.interceptor.getInterceptPoints().FREEZE_PERMISSION_CHECK,{handler:(i,e)=>{var s,l;const t=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);return t.getActiveSheet()&&(l=(s=this._permissionService.getPermissionPoint(new m.WorkbookEditablePermission(t.getUnitId()).id))==null?void 0:s.value)!=null?l:!1}}))}};Hn=JC([a.OnLifecycle(a.LifecycleStages.Steady,Hn),at(1,a.IUniverInstanceService),at(2,a.IPermissionService),at(3,k.Inject(m.SheetsSelectionsService)),at(4,k.Inject(m.RangeProtectionRuleModel)),at(5,k.Inject(exports.HeaderMoveRenderController)),at(6,_e),at(7,k.Inject(exports.HeaderFreezeRenderController)),at(8,k.Optional(exports.HeaderResizeRenderController))],Hn);var $C=Object.defineProperty,e_=Object.getOwnPropertyDescriptor,t_=(n,i,e,t)=>{for(var o=t>1?void 0:t?e_(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&$C(i,e,o),o},In=(n,i)=>(e,t)=>i(e,t,n);let Vn=class extends a.RxDisposable{constructor(i,e,t,o,r,s){super();E(this,"disposableCollection",new a.DisposableCollection);this._context=i,this._injector=e,this._univerInstanceService=t,this._permissionService=o,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:(i,e)=>{var c;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return i!=null?i:[];const{worksheet:o,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,g)=>{h.forEach((p,f)=>{u[g][f]=$.NullValueObject.create()})})}):e.forEach(d=>{const u=d.getArrayValue(),h=d.getCurrentRow(),g=d.getCurrentColumn();u.forEach((p,f)=>{p.forEach((S,v)=>{var b,T;if(((b=o.getCellRaw(f+h,v+g))==null?void 0:b.v)===void 0)return;const I=(T=this._rangeProtectionRenderModel.getCellInfo(r,s,f+h,v+g))==null?void 0:T[0];(I==null?void 0:I[J.View])===!1&&(u[f][v]=$.NullValueObject.create())})})}),e}}))}};Vn=t_([a.OnLifecycle(a.LifecycleStages.Steady,Vn),In(1,k.Inject(k.Injector)),In(2,a.IUniverInstanceService),In(3,a.IPermissionService),In(4,k.Inject(exports.StatusBarController)),In(5,k.Inject(m.RangeProtectionRenderModel))],Vn);const oc="worksheet-protection",sl=25,n_=80;class o_ extends P.SheetExtension{constructor(){super();E(this,"uKey",oc);E(this,"Z_INDEX",sl);E(this,"_pattern");E(this,"_img",new Image);this._img.src=Ja}draw(e,t,o,r){const{rowHeightAccumulation:s,columnWidthAccumulation:l,worksheet:c,dataMergeCache:d}=o;if(!c)return!1;e.save(),this._pattern||(this._pattern=e.createPattern(this._img,"repeat"));const{startRow:u,startColumn:h,endRow:g,endColumn:p}=o.rowColumnSegment,f=this.getCellIndex(u,h,s,l,d),S=this.getCellIndex(g,p,s,l,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[J.View])?this.setZIndex(sl):this.setZIndex(n_)}e.fillStyle=this._pattern,v&&e.fillRect(f.startX,f.startY,S.endX-f.startX,S.endY-f.startY),e.restore()}}setZIndex(e){this.Z_INDEX=e}}var i_=Object.defineProperty,r_=Object.getOwnPropertyDescriptor,s_=(n,i,e,t)=>{for(var o=t>1?void 0:t?r_(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&i_(i,e,o),o},ll=(n,i)=>(e,t)=>i(e,t,n);let Wn=class extends a.Disposable{constructor(i,e){super();E(this,"_worksheetProtectionRenderExtension",new o_);this._renderManagerService=i,this._univerInstanceService=e,this._initRender()}_initRender(){const i=t=>{const o=t&&this._renderManagerService.getRenderById(t),r=o&&o.mainComponent;r&&(r.getExtensionByKey(oc)||r.register(this._worksheetProtectionRenderExtension))};this.disposeWithMe(this._renderManagerService.currentRender$.subscribe(t=>{t&&i(t)}));const e=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);e&&i(e.getUnitId())}};Wn=s_([a.OnLifecycle(a.LifecycleStages.Ready,Wn),ll(0,k.Inject(P.IRenderManagerService)),ll(1,k.Inject(a.IUniverInstanceService))],Wn);const l_=a.createInterceptorKey("PRINTING_RANGE"),a_=a.createInterceptorKey("PRINTING_COMPONENT_COLLECT");class as extends a.Disposable{constructor(){super();E(this,"interceptor",new a.InterceptorManager({PRINTING_RANGE:l_,PRINTING_COMPONENT_COLLECT:a_}));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 c_=Object.defineProperty,d_=Object.getOwnPropertyDescriptor,u_=(n,i,e,t)=>{for(var o=t>1?void 0:t?d_(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&c_(i,e,o),o},bn=(n,i)=>(e,t)=>i(e,t,n);let Io=class extends a.Disposable{constructor(n,i,e,t,o){super(),this._selectionManagerService=n,this._themeService=i,this._instanceSrv=e,this._cmdSrv=t,this._definedNamesService=o,this._init()}_init(){this.disposeWithMe(O.merge(this._selectionManagerService.selectionMoveStart$,this._selectionManagerService.selectionMoving$,this._selectionManagerService.selectionMoveEnd$).pipe(O.filter(n=>!!n)).subscribe(n=>{this._syncDefinedNameRange(n)})),this.disposeWithMe(this._definedNamesService.focusRange$.subscribe(async n=>{if(n==null)return;const{unitId:i}=n;let{formulaOrRefString:e}=n;if(e.substring(0,1)===$.operatorToken.EQUALS&&(e=e.substring(1)),!$.isReferenceStrings(e))return;const o=this._instanceSrv.getUnit(i),r=await this._getSelections(o,i,e);this._selectionManagerService.setSelections(r),this._cmdSrv.executeCommand(m.ScrollToCellOperation.id,r[0].range)}))}_syncDefinedNameRange(n){if(n.length===0)return;const i=n[n.length-1],e=this._instanceSrv.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),t=e==null?void 0:e.getActiveSheet();t&&this._definedNamesService.setCurrentRange({range:i.range,unitId:e.getUnitId(),sheetId:t.getSheetId()})}async _getSelections(n,i,e){const t=e.split(",");let o=n.getActiveSheet();if(!o)return[];const r=[];for(let s=0;s<t.length;s++){const l=t[s].trim(),c=$.deserializeRangeWithSheet(l.trim());if(s===0){const u=n.getSheetBySheetName(c.sheetName);u&&o.getSheetId()!==u.getSheetId()&&(o=u,await this._cmdSrv.executeCommand(m.SetWorksheetActivateCommand.id,{subUnitId:o.getSheetId(),unitId:i}))}if(o.getName()!==c.sheetName)continue;let d=null;if(s===t.length-1){const u=c.range,{startRow:h,startColumn:g,endRow:p,endColumn:f}=u;d=m.getPrimaryForRange({startRow:h,startColumn:g,endRow:p,endColumn:f},o)}r.push({range:c.range,style:m.getNormalSelectionStyle(this._themeService),primary:d})}return r}};Io=u_([a.OnLifecycle(a.LifecycleStages.Rendered,Io),bn(0,k.Inject(m.SheetsSelectionsService)),bn(1,k.Inject(a.ThemeService)),bn(2,a.IUniverInstanceService),bn(3,a.ICommandService),bn(4,$.IDefinedNamesService)],Io);var h_=Object.defineProperty,m_=Object.getOwnPropertyDescriptor,g_=(n,i,e,t)=>{for(var o=t>1?void 0:t?m_(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&h_(i,e,o),o},$i=(n,i)=>(e,t)=>i(e,t,n);let Er=class extends a.Disposable{constructor(i,e,t,o){super();E(this,"_initialize",()=>{const i=new a.DisposableCollection;this.disposeWithMe(this._selectionManagerService.selectionMoveEnd$.subscribe(()=>{i.dispose(),this._selectionRenderService.getSelectionControls().forEach(t=>{i.add(a.toDisposable(t.selectionMoved$.subscribe(o=>{if(!o)return;const r=t.model.getRange(),s={startRow:r.startRow,startColumn:r.startColumn,endRow:r.endRow,endColumn:r.endColumn,rangeType:r.rangeType},l={startRow:o.startRow,startColumn:o.startColumn,endRow:o.endRow,endColumn:o.endColumn,rangeType:r.rangeType};if(s.startRow===l.startRow&&s.startColumn===l.startColumn||l.startRow<0||l.startColumn<0)return;const c={fromRange:s,toRange:l};this._commandService.executeCommand(m.MoveRangeCommand.id,c)})))})}))});this._context=i,this._selectionRenderService=e,this._selectionManagerService=t,this._commandService=o,this._initialize()}};Er=g_([$i(1,k.Inject(_e)),$i(2,k.Inject(m.SheetsSelectionsService)),$i(3,k.Inject(a.ICommandService))],Er);var ic=Object.defineProperty,p_=Object.getOwnPropertyDescriptor,f_=(n,i,e)=>i in n?ic(n,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[i]=e,S_=(n,i,e,t)=>{for(var o=t>1?void 0:t?p_(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&ic(i,e,o),o},er=(n,i)=>(e,t)=>i(e,t,n),rc=(n,i,e)=>f_(n,typeof i!="symbol"?i+"":i,e);exports.UniverSheetsUIPlugin=class extends a.Plugin{constructor(i={},e,t,o){super(),this._config=i,this._injector=e,this._renderManagerService=t,this._univerInstanceService=o,this._config=a.Tools.deepMerge({},Ya,this._config)}onStarting(i){[[Yt],[qe,{useClass:exports.EditorBridgeService}],[ot,{useClass:exports.SheetClipboardService}],[At,{useClass:Yl}],[it,{useClass:wo}],[ei,{useClass:Ml}],[ti,{useClass:oh}],[gt,{useClass:exports.AutoFillService}],[as],[Re],[gi,{useClass:oa}],[Ot,{useClass:exports.MarkSelectionService}],[exports.HoverManagerService],[exports.DragManagerService],[exports.SheetCanvasPopManagerService],[exports.CellAlertManagerService],[Mn],[exports.AutoHeightController],[exports.FormulaEditorController],[exports.HeaderFreezeRenderController],[On],[exports.SheetsRenderService],[An,{useFactory:()=>this._injector.createInstance(An,this._config)}],[exports.StatusBarController],[exports.AutoFillController],[_o],[Io],[Ie],[hn],[Wn],[kn],[exports.SheetPermissionInterceptorBaseController],[exports.SheetPermissionInitController]].forEach(e=>i.add(e)),this._injector.add([Et,{useFactory:()=>this._injector.createInstance(Et,this._config)}])}onReady(){this._markSheetAsFocused(),this._registerRenderBasics()}onRendered(){this._registerRenderModules()}_registerRenderBasics(){[[exports.SheetSkeletonManagerService],[exports.SheetRenderController],[_e,{useClass:exports.SheetSelectionRenderService}]].forEach(i=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(a.UniverInstanceType.UNIVER_SHEET,i))})}_registerRenderModules(){[[exports.HeaderMoveRenderController],[exports.HeaderFreezeRenderController],[fr],[exports.HeaderResizeRenderController],[exports.SheetsScrollRenderController],[Bn],[Po],[hr],[Nn],[Dn],[yo],[exports.HoverRenderController],[exports.DragRenderController],[xn],[exports.CellCustomRenderController],[Ir],[Er],[br],[dr],[Hn],[Vn],[xo]].forEach(i=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(a.UniverInstanceType.UNIVER_SHEET,i))})}_markSheetAsFocused(){const i=this._univerInstanceService;i.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).pipe(al.filter(e=>!!e)).subscribe(e=>i.focusUnit(e.getUnitId()))}};rc(exports.UniverSheetsUIPlugin,"pluginName","SHEET_UI_PLUGIN");rc(exports.UniverSheetsUIPlugin,"type",a.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsUIPlugin=S_([a.DependentOn(m.UniverSheetsPlugin),er(1,k.Inject(k.Injector)),er(2,P.IRenderManagerService),er(3,a.IUniverInstanceService)],exports.UniverSheetsUIPlugin);var v_=Object.defineProperty,C_=Object.getOwnPropertyDescriptor,__=(n,i,e,t)=>{for(var o=t>1?void 0:t?C_(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&v_(i,e,o),o},kt=(n,i)=>(e,t)=>i(e,t,n);const I_=[ye.id,Ge.id];let wr=class extends a.Disposable{constructor(n,i,e,t,o,r,s){super(),this._context=n,this._sheetSkeletonManagerService=i,this._commandService=e,this._renderManagerService=t,this._selectionManagerService=o,this._scrollManagerService=r,this._univerInstanceService=s,this._init()}scrollToRange(n){let{endRow:i,endColumn:e,startColumn:t,startRow:o}=n;const r=this._getViewportBounding();if(n.rangeType===a.RANGE_TYPE.ROW?(t=0,e=0):n.rangeType===a.RANGE_TYPE.COLUMN&&(o=0,i=0),r){const s=r.startRow>i?o:i,l=r.startColumn>e?t:e;return this._scrollToCell(s,l)}else return this._scrollToCell(o,t)}_init(){this._initCommandListener(),this._initScrollEventListener(),this._initPointerScrollEvent(),this._scrollInfo$Handler(),this._initSkeletonListener()}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(I_.includes(n.id))this._scrollToSelection();else if(n.id===m.ScrollToCellOperation.id){const i=n.params;this.scrollToRange(i)}else if(n.id===Ae.id){const i=n.params;this._scrollToSelectionForExpand(i)}}))}_scrollToSelectionForExpand(n){setTimeout(()=>{const i=this._selectionManagerService.getCurrentLastSelection();if(i==null)return;const{startRow:e,startColumn:t,endRow:o,endColumn:r}=i.range,s=this._getViewportBounding();if(s==null)return;const{startRow:l,startColumn:c,endRow:d,endColumn:u}=s;let h=0,g=0;e>l?h=o:o<d?h=e:h=l,t>c?g=r:r<u?g=t:g=c,n.direction===a.Direction.DOWN?h=o:n.direction===a.Direction.UP?h=e:n.direction===a.Direction.RIGHT?g=r:n.direction===a.Direction.LEFT&&(g=t),this._scrollToCell(h,g)},0)}_getFreeze(){var i;const n=(i=this._sheetSkeletonManagerService.getCurrent())==null?void 0:i.skeleton.getWorksheetConfig();if(n!=null)return n.freeze}_initScrollEventListener(){var e;const n=(e=this._getSheetObject())==null?void 0:e.scene;if(n==null)return;const i=n.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);i&&(this.disposeWithMe(i.onScrollAfter$.subscribeEvent(t=>{var p;const o=(p=this._sheetSkeletonManagerService.getCurrent())==null?void 0:p.skeleton;if(o==null)return;const r=this._getSheetObject();if(o==null||r==null)return;const{viewportScrollX:s=0,viewportScrollY:l=0}=t,{row:c,column:d,rowOffset:u,columnOffset:h}=o.getDecomposedOffset(s,l),g={sheetViewStartRow:c,sheetViewStartColumn:d,offsetX:h,offsetY:u};this._scrollManagerService.justSetScrollInfoToCurrSheet(g),this._scrollManagerService.validViewportScrollInfo$.next({scrollX:t.scrollX||0,scrollY:t.scrollY||0,viewportScrollX:t.viewportScrollX||0,viewportScrollY:t.viewportScrollY||0})})),this.disposeWithMe(i.onScrollByBar$.subscribeEvent(t=>{var p;const o=(p=this._sheetSkeletonManagerService.getCurrent())==null?void 0:p.skeleton;if(o==null||t.isTrigger===!1)return;const r=this._getSheetObject();if(o==null||r==null)return;const{viewportScrollX:s=0,viewportScrollY:l=0}=t,c=this._getFreeze(),{row:d,column:u,rowOffset:h,columnOffset:g}=o.getDecomposedOffset(s,l);this._commandService.executeCommand(je.id,{sheetViewStartRow:d+((c==null?void 0:c.ySplit)||0),sheetViewStartColumn:u+((c==null?void 0:c.xSplit)||0),offsetX:g,offsetY:h})})))}_scrollInfo$Handler(){var t;const{unitId:n}=this._context,i=(t=this._renderManagerService.getRenderById(n))==null?void 0:t.scene;if(!i)return;const e=i.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);e&&this.disposeWithMe(a.toDisposable(this._scrollManagerService.rawScrollInfo$.subscribe(o=>{var S;if(o==null){e.scrollTo({x:0,y:0});return}const r=(S=this._sheetSkeletonManagerService.getCurrent())==null?void 0:S.skeleton;if(!r)return;const{sheetViewStartRow:s,sheetViewStartColumn:l,offsetX:c,offsetY:d}=o,{startX:u,startY:h}=r.getCellByIndexWithNoHeader(s,l),g=u+c,p=h+d,f=e.transViewportScroll2ScrollValue(g,p);e.scrollTo(f)})))}_initSkeletonListener(){this.disposeWithMe(a.toDisposable(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(n=>{if(n==null)return;this._scrollManagerService.setSearchParam(n);const i=this._getSheetObject();if(!i)return;const t=i.scene.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),o=this._scrollManagerService.getScrollInfoByParam(n);t&&(t.viewportScrollX=(o==null?void 0:o.viewportScrollX)||0,t.viewportScrollY=(o==null?void 0:o.viewportScrollY)||0,this._updateSceneSize(n))})))}_initPointerScrollEvent(){const n=this._getSheetObject();if(!n)return;this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);const i=this._scrollManagerService,e=n.scene,t=n.spreadsheet,o=e.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),r={x:0,y:0};let s=!1;const l={x:0,y:0},c=.95;let d=null;const u=()=>{if(!o)return;l.x*=c,l.y*=c,r.x+=l.x,r.y+=l.y;const g=l.x,p=l.y;(p!==0||g!==0)&&this._commandService.executeCommand(ut.id,{offsetY:p,offsetX:g}),i.getCurrentScrollInfo(),Math.abs(l.x)>1||Math.abs(l.y)>1?d=requestAnimationFrame(u):d=null},h=()=>{cancelAnimationFrame(d),d=null};t.onPointerDown$.subscribeEvent((g,p)=>{h(),o&&(r.x=g.offsetX,r.y=g.offsetY,s=!0,p.stopPropagation())}),t.onPointerMove$.subscribeEvent((g,p)=>{if(!s||!o)return;const f=g,S=-(f.offsetX-r.x),v=-(f.offsetY-r.y);l.x=-(f.offsetX-r.x),l.y=-(f.offsetY-r.y);const C=S,I=v;(S!==0||v!==0)&&(I!==0||C!==0)&&this._commandService.executeCommand(ut.id,{offsetY:I,offsetX:C}),i.getCurrentScrollInfo(),r.x=f.offsetX,r.y=f.offsetY,p.stopPropagation()}),t.onPointerUp$.subscribeEvent((g,p)=>{s=!1,d=requestAnimationFrame(u)}),t.onPointerLeave$.subscribeEvent(()=>{}),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:i}=this._context,{skeleton:e}=n,t=(h=this._renderManagerService.getRenderById(i))==null?void 0:h.scene;if(e==null||t==null)return;const{rowTotalHeight:o,columnTotalWidth:r,rowHeaderWidthAndMarginLeft:s,columnHeaderHeightAndMarginTop:l}=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:l+o})}_getSheetObject(){return Ke(this._context.unit,this._context)}_scrollToSelectionByDirection(n){const i=this._getViewportBounding();if(i==null)return!1;const{startRow:e,startColumn:t,endRow:o,endColumn:r}=i;let s=0,l=0;const{startRow:c,startColumn:d,endRow:u,endColumn:h}=n;c>=e&&(s=u),u<=o&&(s=c),d>=t&&(l=h),h<=r&&(l=d),this._scrollToCell(s,l)}_scrollToSelection(n=!0){const i=this._selectionManagerService.getCurrentLastSelection();if(i==null)return;const{startRow:e,startColumn:t,actualRow:o,actualColumn:r}=i.primary,s=n?o:e,l=n?r:t;this._scrollToCell(s,l)}_getViewportBounding(){var o,r;const n=(o=this._getSheetObject())==null?void 0:o.scene;if(n==null)return;const i=n.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(i==null)return;const e=(r=this._sheetSkeletonManagerService.getCurrent())==null?void 0:r.skeleton;if(e==null)return;const t=i.getBounding();return e.getRowColumnSegment(t)}_scrollToCell(n,i){var w,y,M,A;const{rowHeightAccumulation:e,columnWidthAccumulation:t}=(y=(w=this._sheetSkeletonManagerService.getCurrent())==null?void 0:w.skeleton)!=null?y:{};if(e==null||t==null)return!1;const o=(M=this._getSheetObject())==null?void 0:M.scene;if(o==null)return!1;const r=o.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(r==null||((A=this._sheetSkeletonManagerService.getCurrent())==null?void 0:A.skeleton)==null)return!1;const l=this._context.unit.getActiveSheet();if(!l)return!1;const{startColumn:c,startRow:d,ySplit:u,xSplit:h}=l.getFreeze(),g=this._getViewportBounding();if(g==null)return!1;const{startRow:p,startColumn:f,endRow:S,endColumn:v}=g;let C,I;if(n>=d&&i>=c-h&&(n<=p&&(C=n),n>=S)){const N=e[n]-r.height;for(let x=p;x<=n;x++)if(e[x]>=N){C=x+1;break}}if(i>=c&&n>=d-u&&(i<=f&&(I=i),i>=v)){const N=t[i]-r.width;for(let x=f;x<=i;x++)if(t[x]>=N){I=x+1;break}}if(C===void 0&&I===void 0)return!1;const{offsetX:b,offsetY:T}=this._scrollManagerService.getCurrentScrollInfo()||{};return this._commandService.syncExecuteCommand(je.id,{sheetViewStartRow:C,sheetViewStartColumn:I,offsetX:I===void 0?b:0,offsetY:C===void 0?T:0})}};wr=__([kt(1,k.Inject(exports.SheetSkeletonManagerService)),kt(2,a.ICommandService),kt(3,P.IRenderManagerService),kt(4,k.Inject(m.SheetsSelectionsService)),kt(5,k.Inject(Re)),kt(6,a.IUniverInstanceService)],wr);const b_="univer-mobile-sheet-bar-container",R_="univer-mobile-sheet-bar-slider",T_="univer-mobile-sheet-bar-item",E_="univer-mobile-sheet-bar-item-activated",So={mobileSheetBarContainer:b_,mobileSheetBarSlider:R_,mobileSheetBarItem:T_,mobileSheetBarItemActivated:E_};function sc(){const n=$o();return n?_.jsx(w_,{workbook:n}):null}function w_(n){const{workbook:i}=n,[e,t]=V.useState([]),[o,r]=V.useState(""),s=V.useRef(new Map),l=j.useDependency(a.ICommandService),c=V.useCallback(()=>{const u=i.getActiveSheet().getSheetId(),h=i.getSheets(),g=i.getActiveSheet(),p=h.filter(f=>!f.isSheetHidden()).map((f,S)=>{var v;return{sheetId:f.getSheetId(),label:f.getName(),index:S,selected:g===f,color:(v=f.getTabColor())!=null?v:void 0}});if(t(p),r(u),s.current.has(u)){const f=s.current.get(u);f&&f.scrollIntoView({behavior:"smooth",block:"nearest"})}s.current.clear()},[i]);V.useEffect(()=>c(),[c]);const d=V.useCallback(u=>{l.executeCommand(m.SetWorksheetActiveOperation.id,{unitId:i.getUnitId(),subUnitId:u})},[l,i]);return V.useEffect(()=>{const u=l.onCommandExecuted(h=>{switch(h.id){case m.SetWorksheetHideMutation.id:case m.RemoveSheetMutation.id:case m.SetWorksheetNameMutation.id:case m.InsertSheetMutation.id:case m.SetWorksheetOrderMutation.id:case m.SetWorksheetActiveOperation.id:c();break}});return()=>u.dispose()},[l,c]),_.jsx("div",{className:So.mobileSheetBarContainer,children:_.jsx("div",{className:So.mobileSheetBarSlider,children:e.map(u=>_.jsx("div",{className:ge(So.mobileSheetBarItem,{[So.mobileSheetBarItemActivated]:u.sheetId===o}),onClick:()=>d(u.sheetId),ref:h=>s.current.set(u.sheetId,h),children:u.label},u.sheetId))})})}var P_=Object.defineProperty,y_=Object.getOwnPropertyDescriptor,M_=(n,i,e,t)=>{for(var o=t>1?void 0:t?y_(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&P_(i,e,o),o},_t=(n,i)=>(e,t)=>i(e,t,n);let Ln=class extends a.Disposable{constructor(n,i,e,t,o,r,s,l){super(),this._config=n,this._injector=i,this._componentManager=e,this._layoutService=t,this._commandService=o,this._shortcutService=r,this._menuService=s,this._uiPartsService=l,this._init()}_init(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts(),this._initWorkbenchParts(),this._initFocusHandler()}_initCustomComponents(){const n=this._componentManager;this.disposeWithMe(n.register(Qo,Pl)),this.disposeWithMe(n.register(ns,na)),this.disposeWithMe(n.register(Kn,te.ColorPicker)),this.disposeWithMe(n.register(Gr,R.FontFamily)),this.disposeWithMe(n.register(Kr,R.FontFamilyItem)),this.disposeWithMe(n.register(qr,R.FontSize)),this.disposeWithMe(n.register(os,ia))}_initCommands(){[ni,We,ii,oi,tn,Ae,ye,Ge,ui,ai,si,li,jo,Xo,je,Ar,Vo,di,m.SetBoldCommand,Gt,Pe,zn,rn,sn,ln,an,Yr,Zr,zo,Yo,qt,m.SetItalicCommand,m.SetStrikeThroughCommand,m.SetFontFamilyCommand,m.SetFontSizeCommand,Yn,Zo,Zn,Gn,nt,ut,cn,Go,Ko,qo,m.SetUnderlineCommand,nn,ze,ci,ri,Jt,Qt,eo,$n,mi,bt,Ft,Ye,is,Si,vi,Ci,_i,Ii,fi,bi,Ri,oo,Mt,rs,pi,Ti].forEach(n=>{this.disposeWithMe(this._commandService.registerCommand(n))})}_initMenus(){const{menu:n={}}=this._config;[yl].forEach(i=>{this.disposeWithMe(this._menuService.addMenuItem(this._injector.invoke(i),n))})}_initShortcuts(){[ha,ma,ga,pa,fa,Sa,va,Ca,_a,Ia,ba,Ra,Ta,Ea,wa,Pa,ya,Ma,Oa,Aa,Na,Wa,Ua,Fa,ja,La,Ba,xa,Da,ka,Ha,Va,...kl(),Vl,Hl,Wl,Ul,Bl,Fl,Ll,da,ua].forEach(n=>{this.disposeWithMe(this._shortcutService.registerShortcut(n))})}_initWorkbenchParts(){this._uiPartsService.registerComponent(R.BuiltInUIPart.HEADER,()=>j.connectInjector(sc,this._injector))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(a.UniverInstanceType.UNIVER_SHEET,n=>{}))}};Ln=M_([a.OnLifecycle(a.LifecycleStages.Ready,Ln),_t(1,k.Inject(k.Injector)),_t(2,k.Inject(R.ComponentManager)),_t(3,R.ILayoutService),_t(4,a.ICommandService),_t(5,R.IShortcutService),_t(6,R.IMenuService),_t(7,R.IUIPartsService)],Ln);var O_=Object.defineProperty,A_=Object.getOwnPropertyDescriptor,N_=(n,i,e,t)=>{for(var o=t>1?void 0:t?A_(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&O_(i,e,o),o},vo=(n,i)=>(e,t)=>i(e,t,n);let Pr=class extends a.Disposable{constructor(n,i,e,t,o){super(),this._context=n,this._layoutService=i,this._contextMenuService=e,this._selectionManagerService=t,this._selectionRenderService=o,this._init()}_init(){let n=!1;this.disposeWithMe(this._selectionManagerService.selectionMoveStart$.subscribe(()=>n=!0)),this.disposeWithMe(this._selectionManagerService.selectionMoveEnd$.subscribe(i=>{if(!i||n===!1)return;n=!1;const e=i[0];if(!e.primary)return;const t=this._layoutService.getCanvasElement().getBoundingClientRect(),o=this._selectionRenderService.attachSelectionWithCoord(e),r=e.range.rangeType,{scene:s}=this._context,l=s.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),c=(l==null?void 0:l.viewportScrollX)||0,d=(l==null?void 0:l.viewportScrollY)||0;let u=0,h=0;const g=46;switch(r){case a.RANGE_TYPE.NORMAL:u=o.rangeWithCoord.startX+t.left-c,h=o.rangeWithCoord.endY+t.top-d;break;case a.RANGE_TYPE.COLUMN:u=o.rangeWithCoord.startX+t.left-c,h=Math.min(t.height/2,o.rangeWithCoord.endY)+40;break;case a.RANGE_TYPE.ROW:u=(t.width-g)/2+20,h=o.rangeWithCoord.endY+t.top-d;break;case a.RANGE_TYPE.ALL:u=o.rangeWithCoord.startX+t.left,h=o.rangeWithCoord.startY+t.top;break;default:u=o.rangeWithCoord.startX+t.left-c,h=o.rangeWithCoord.endY+t.top-d;break}u=a.Tools.clamp(u,g,t.width),h=a.Tools.clamp(h,t.top,t.height),this._contextMenuService.triggerContextMenu({clientX:u,clientY:h,preventDefault:()=>{},stopPropagation:()=>{}},R.MenuPosition.CONTEXT_MENU)}))}};Pr=N_([vo(1,R.ILayoutService),vo(2,R.IContextMenuService),vo(3,k.Inject(m.SheetsSelectionsService)),vo(4,_e)],Pr);class x_ extends Uo{constructor(e,t,o=!0,r,s=a.RANGE_TYPE.NORMAL){super(e,t,o,r);E(this,"_fillControlTopLeft");E(this,"_fillControlBottomRight");E(this,"_fillControlTopLeftInner");E(this,"_fillControlBottomRightInner");this._scene=e,this._zIndex=t,this._isHeaderHighlight=o,this._themeService=r,this._rangeType=s,this.initControlPoints()}initControlPoints(){const e=this.defaultStyle,t=e.expandCornerSize||0,o=(e.expandCornerSize||0)/4,r=e.AutofillStrokeWidth||0,s=e.stroke,l=e.AutofillStroke,c=this.zIndex,d=P.Rect;this._fillControlTopLeft=new d(Tn.fillTopLeft+c,{zIndex:c+2,width:t,height:t,radius:t/2,strokeWidth:r}),this._fillControlTopLeftInner=new d(Tn.fillTopLeftInner+c,{zIndex:c+1,width:o,height:o,radius:o/2,strokeWidth:r}),this._fillControlBottomRight=new d(Tn.fillBottomRight+c,{zIndex:c+2,width:t,height:t,radius:t/2,strokeWidth:r}),this._fillControlBottomRightInner=new d(Tn.fillBottomRightInner+c,{zIndex:c+1,width:o,height:o,radius:o/2,strokeWidth:r});const u={fill:s,stroke:l,strokeScaleEnabled:!1};this._fillControlTopLeftInner.setProps({...u}),this._fillControlBottomRightInner.setProps({...u});const h=[this._fillControlTopLeft,this._fillControlBottomRight,this._fillControlTopLeftInner,this._fillControlBottomRightInner];switch(this._rangeType){case a.RANGE_TYPE.ROW:this.rowHeaderGroup.addObjects(...h);break;case a.RANGE_TYPE.COLUMN:this.columnHeaderGroup.addObjects(...h);break;case a.RANGE_TYPE.NORMAL:this.selectionShapeGroup.addObjects(...h)}this.getScene().addObjects(h,pl)}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,o){var c,d,u,h;super._updateControl(e,t,o);const r=this.defaultStyle;e==null&&(e=r);const{widgets:s=r.widgets,hasAutoFill:l=r.hasAutoFill}=e;if(this.currentStyle=e,l===!0&&!super._hasWidgets(s)){const{viewportScrollX:g,viewportScrollY:p}=this.getViewportMainScrollInfo(),{endX:f,endY:S}=this.selectionModel;this.transformControlPoint(g,p,f,S),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(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);return{viewportScrollX:(e==null?void 0:e.viewportScrollX)||0,viewportScrollY:(e==null?void 0:e.viewportScrollY)||0,width:(e==null?void 0:e.width)||0,height:(e==null?void 0:e.height)||0}}transformControlPoint(e=0,t=0,o=0,r=0){const s=this.currentStyle,l=this.selectionModel.rangeType,c=s.expandCornerSize/4,d=s.expandCornerSize,{startX:u,startY:h,endX:g,endY:p}=this.selectionModel,f=this.getViewportMainScrollInfo(),S=f.width,v=f.height;switch(l){case a.RANGE_TYPE.NORMAL:this.fillControlTopLeft.transformByState({left:-d/2,top:-d/2}),this.fillControlBottomRight.transformByState({left:g-u-d/2,top:p-h-d/2}),this._fillControlTopLeftInner.transformByState({left:-c/2,top:-c/2}),this._fillControlBottomRightInner.transformByState({left:g-u-c/2,top:p-h-c/2});break;case a.RANGE_TYPE.ROW:{const C=Math.min(S/2+e,o),I=-d/2+C,b=-c/2+C;this.fillControlTopLeft.transformByState({left:I,top:-d/2}),this.fillControlBottomRight.transformByState({left:I,top:-d/2+p-h}),this._fillControlTopLeftInner.transformByState({left:b,top:-c/2}),this._fillControlBottomRightInner.transformByState({left:b,top:-c/2+p-h})}break;case a.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+g-u,top:I}),this._fillControlTopLeftInner.transformByState({left:-c/2,top:b}),this._fillControlBottomRightInner.transformByState({left:-c/2+g-u,top:b})}break;default:console.error("unknown range type")}}}var D_=Object.defineProperty,k_=Object.getOwnPropertyDescriptor,H_=(n,i,e,t)=>{for(var o=t>1?void 0:t?k_(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&D_(i,e,o),o},Fe=(n,i)=>(e,t)=>i(e,t,n);let Do=class extends kr{constructor(i,e,t,o,r,s,l,c,d,u,h){super(e,t,o,r);E(this,"_workbookSelections");E(this,"_renderDisposable",null);E(this,"_expandingSelection",!1);E(this,"_selectionControls",[]);E(this,"expandingControlMode","bottom-right");this._context=i,this._logService=l,this._commandService=c,this._contextService=d,this._sheetSkeletonManagerService=u,this._scrollManagerService=h,this._workbookSelections=s.getWorkbookSelections(this._context.unitId),this._init()}_init(){const i=this._getSheetObject();this._initEventListeners(i),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._updateControlPointWhenScrolling()}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(i=>{if(i==null){this._logService.error("[SelectionRenderService]: should not receive null!");return}const e=this._context.unitId,{sheetId:t,skeleton:o}=i,{scene:r}=this._context,s=r.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._changeRuntime(o,r,s),this._workbookSelections.getCurrentLastSelection()||this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:e,subUnitId:t,selections:[Bo(o)]})}))}_initSelectionChangeListener(){this.disposeWithMe(this._workbookSelections.selectionMoveEnd$.subscribe(i=>{this._reset();for(const e of i){const t=Rt(e,this._skeleton);this._addSelectionControlBySelectionData(t)}}))}_initEventListeners(i){const{spreadsheetRowHeader:e,spreadsheetColumnHeader:t,spreadsheet:o,spreadsheetLeftTopPlaceholder:r}=i,{scene:s}=this._context;this._initSpreadsheetEvent(i),this.disposeWithMe(e==null?void 0:e.onPointerUp$.subscribeEvent((l,c)=>{if(this._normalSelectionDisabled())return;const d=this._sheetSkeletonManagerService.getCurrent().skeleton,{row:u}=Xe(l.offsetX,l.offsetY,s,d);yt(this._workbookSelections.getCurrentSelections(),u,a.RANGE_TYPE.ROW)||(this.createNewSelection(l,(o.zIndex||1)+1,a.RANGE_TYPE.ROW,this._getActiveViewport(l)),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()))})),this.disposeWithMe(t==null?void 0:t.onPointerUp$.subscribeEvent((l,c)=>{if(this._normalSelectionDisabled())return;const d=this._sheetSkeletonManagerService.getCurrent().skeleton,{column:u}=Xe(l.offsetX,l.offsetY,s,d);yt(this._workbookSelections.getCurrentSelections(),u,a.RANGE_TYPE.COLUMN)||(this.createNewSelection(l,(o.zIndex||1)+1,a.RANGE_TYPE.COLUMN,this._getActiveViewport(l)),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()))})),this.disposeWithMe(r==null?void 0:r.onPointerUp$.subscribeEvent((l,c)=>{if(this._normalSelectionDisabled())return;this._reset();const d=this._sheetSkeletonManagerService.getCurrent().skeleton,u=Hr(d),h=Rt(u,d);this._addSelectionControlBySelectionData(h),this.refreshSelectionMoveStart(),c.stopPropagation(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}))}_initSpreadsheetEvent(i){const{spreadsheet:e}=i;let t;const o=500,r={x:0,y:0},s=()=>{clearTimeout(t)},l=(u,h)=>{this.createNewSelection(u,e.zIndex+1,a.RANGE_TYPE.NORMAL,this._getActiveViewport(u)),h&&this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())};e==null||e.onPointerMove$.subscribeEvent((u,h)=>{(Math.abs(u.offsetX-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(()=>{l(u,!0)},o),h.stopPropagation()}),d=e==null?void 0:e.onPointerUp$.subscribeEvent((u,h)=>{if(this._normalSelectionDisabled())return;clearTimeout(t);const g=10;Math.abs(u.offsetX-r.x)>g||Math.abs(u.offsetY-r.y)>g||(l(u,!1),h.stopPropagation())});this.disposeWithMe(a.toDisposable(c)),this.disposeWithMe(a.toDisposable(d))}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(i=>this._updateSelections(i,m.SelectionMoveType.MOVE_START))),this.disposeWithMe(this.selectionMoving$.subscribe(i=>this._updateSelections(i,m.SelectionMoveType.MOVING))),this.disposeWithMe(this._contextService.subscribeContextValue$(m.DISABLE_NORMAL_SELECTIONS).pipe(O.startWith(!1),O.distinctUntilChanged()).subscribe(i=>{var e;i?((e=this._renderDisposable)==null||e.dispose(),this._renderDisposable=null,this._reset()):this._renderDisposable=a.toDisposable(this.selectionMoveEnd$.subscribe(t=>this._updateSelections(t,m.SelectionMoveType.MOVE_END)))}))}_updateSelections(i,e){const t=this._context.unit,o=t.getUnitId(),r=t.getActiveSheet().getSheetId();i.length!==0&&this._commandService.executeCommand(m.SetSelectionsOperation.id,{unitId:o,subUnitId:r,type:e,selections:i.map(s=>m.convertSelectionDataToRange(s))})}createNewSelection(i,e=0,t=a.RANGE_TYPE.NORMAL,o){this._shouldDetectMergedCells=t===a.RANGE_TYPE.NORMAL;const r=this._skeleton,s=this._scene;if(!s||!r)return;o&&(this._activeViewport=o);const{offsetX:l,offsetY:c}=i,d=s.getRelativeToViewportCoord(P.Vector2.FromArray([l,c]));let{x:u,y:h}=d;const g=s.getVpScrollXYInfoByPosToVp(d),{scaleX:p,scaleY:f}=s.getAncestorScale(),S=this._getCellRangeByCursorPosition(u,h,p,f,g);if(!S)return!1;const{rangeWithCoord:v,primaryWithCoord:C}=S,I={...v,rangeType:t};this._startRangeWhenPointerDown={...v,rangeType:t};let b=this.getActiveSelectionControl();for(const T of this.getSelectionControls())if(T.model.isEqual(I)){b=T;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._clearEndingListeners(),this._expandingSelection=!1,(t===a.RANGE_TYPE.ROW||t===a.RANGE_TYPE.COLUMN)&&(t===a.RANGE_TYPE.ROW?u=0:t===a.RANGE_TYPE.COLUMN&&(h=0),this._moving(u,h,b,t))}newSelectionControl(i,e){const t=this.getSelectionControls(),o=new x_(i,t.length,this._isHeaderHighlight,this._themeService,e);this._selectionControls.push(o);const{expandingModeForTopLeft:r,expandingModeForBottomRight:s}=(()=>{switch(e){case a.RANGE_TYPE.NORMAL:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"};case a.RANGE_TYPE.ROW:return{expandingModeForTopLeft:"top",expandingModeForBottomRight:"bottom"};case a.RANGE_TYPE.COLUMN:return{expandingModeForTopLeft:"left",expandingModeForBottomRight:"right"};case a.RANGE_TYPE.ALL:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"};default:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"}}})();return o.fillControlTopLeft.onPointerDown$.subscribeEvent(l=>{this._expandingSelection=!0,this.expandingControlMode=r,this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._fillControlPointerDownHandler(l,e,this._activeViewport)}),o.fillControlBottomRight.onPointerDown$.subscribeEvent(l=>{this._expandingSelection=!0,this.expandingControlMode=s,this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._fillControlPointerDownHandler(l,e,this._activeViewport)}),(e===a.RANGE_TYPE.ROW||e===a.RANGE_TYPE.COLUMN)&&!i.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),o}_getActiveViewport(i){const e=this._getSheetObject();return e==null?void 0:e.scene.getActiveViewportByCoord(P.Vector2.FromArray([i.offsetX,i.offsetY]))}_getSheetObject(){return Ke(this._context.unit,this._context)}_normalSelectionDisabled(){return this._contextService.getContextValue(m.DISABLE_NORMAL_SELECTIONS)}getSelectionControls(){return this._selectionControls}_fillControlPointerDownHandler(i,e=a.RANGE_TYPE.NORMAL,t,o=P.ScrollTimerType.ALL){var u,h,g;const r=this._skeleton,s=this._scene;if(!s||!r)return;t&&(this._activeViewport=t);const l=s.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),c=this.getActiveSelectionControl();if(!c)return;this._changeCurrCellWhenControlPointerDown(),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._clearEndingListeners(),this._addEndingListeners(),this._scrollTimer=P.ScrollTimer.create(this._scene,o),this._scrollTimer.startScroll((u=l==null?void 0:l.left)!=null?u:0,(h=l==null?void 0:l.top)!=null?h:0,l),(g=s.getTransformer())==null||g.clearSelectedObjects();const d=s.getRelativeToViewportCoord(P.Vector2.FromArray([i.offsetX,i.offsetY]));this._setupPointerMoveListener(l,c,e,o,d.x,d.y),this._scenePointerUpSub=s.onPointerUp$.subscribeEvent(p=>{this.endSelection(),this._expandingSelection=!1,this.expandingControlMode="bottom-right",this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),this._shortcutService.setDisable(!1)}),this._shortcutService.setDisable(!0)}_changeCurrCellWhenControlPointerDown(){const i=this.getActiveSelectionControl(),e=this._skeleton;let t;const{startRow:o,startColumn:r,endRow:s,endColumn:l}=i.model;switch(this.expandingControlMode){case"top-left":t=e.getCellByIndex(s,l);break;case"bottom-right":t=e.getCellByIndex(o,r);break;case"left":t=e.getCellByIndex(o,l),t.isMerged=!1,t.isMergedMainCell=!1;break;case"right":t=e.getCellByIndex(o,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(o,r),t.isMerged=!1,t.isMergedMainCell=!1;break;default:t=e.getCellByIndex(o,r)}return i.updateCurrCell(t),t}_moving(i,e,t,o){var N,x,D,H,L,W,X,q,G,z,Y,F,Z;this._shouldDetectMergedCells=o===a.RANGE_TYPE.NORMAL;const r=this._skeleton,s=this._scene,l={startRow:t.model.startRow,endRow:t.model.endRow,startColumn:t.model.startColumn,endColumn:t.model.endColumn},c=s.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),d=(N=this._getViewportByCell(l.endRow,l.endColumn))!=null?N:c,u=s.getVpScrollXYInfoByPosToVp(P.Vector2.FromArray([this._startViewportPosX,this._startViewportPosY]),d),{scaleX:h,scaleY:g}=s.getAncestorScale();o===a.RANGE_TYPE.ROW?i=Number.POSITIVE_INFINITY:o===a.RANGE_TYPE.COLUMN&&(e=Number.POSITIVE_INFINITY);const p=this._getCellRangeByCursorPosition(i,e,h,g,u);if(!p)return!1;const{rangeWithCoord:f}=p,S=t.model.currentCell,v=(x=S==null?void 0:S.mergeInfo.startRow)!=null?x:-1,C=(D=S==null?void 0:S.mergeInfo.endRow)!=null?D:-1,I=(H=S==null?void 0:S.mergeInfo.startColumn)!=null?H:-1,b=(L=S==null?void 0:S.mergeInfo.endColumn)!=null?L:-1;let T={startRow:Math.min(f.startRow,v),startColumn:Math.min(f.startColumn,I),endRow:Math.max(f.endRow,C),endColumn:Math.max(f.endColumn,b)};if(o===a.RANGE_TYPE.NORMAL?T=r.getSelectionMergeBounding(T.startRow,T.startColumn,T.endRow,T.endColumn):o===a.RANGE_TYPE.COLUMN?T={startRow:Math.min(f.startRow,(W=S==null?void 0:S.actualRow)!=null?W:-1),startColumn:Math.min(f.startColumn,(X=S==null?void 0:S.actualColumn)!=null?X:-1),endRow:Math.max(f.endRow,(q=S==null?void 0:S.actualRow)!=null?q:-1),endColumn:Math.max(f.endColumn,(G=S==null?void 0:S.actualColumn)!=null?G:-1)}:o===a.RANGE_TYPE.ROW&&(T={startRow:Math.min(f.startRow,(z=S==null?void 0:S.actualRow)!=null?z:-1),startColumn:Math.min(f.startColumn,(Y=S==null?void 0:S.actualColumn)!=null?Y:-1),endRow:Math.max(f.endRow,(F=S==null?void 0:S.actualRow)!=null?F:-1),endColumn:Math.max(f.endColumn,(Z=S==null?void 0:S.actualColumn)!=null?Z:-1)}),!T)return!1;const w=r.getNoMergeCellPositionByIndex(T.startRow,T.startColumn),y=r.getNoMergeCellPositionByIndex(T.endRow,T.endColumn),M={startColumn:T.startColumn,startRow:T.startRow,endColumn:T.endColumn,endRow:T.endRow,startY:(w==null?void 0:w.startY)||0,endY:(y==null?void 0:y.endY)||0,startX:(w==null?void 0:w.startX)||0,endX:(y==null?void 0:y.endX)||0};(l.startRow!==T.startRow||l.startColumn!==T.startColumn||l.endRow!==T.endRow||l.endColumn!==T.endColumn)&&t&&(this._updateSelectionControlRange(t,M),this._selectionMoving$.next(this.getSelectionDataWithStyle()))}_updateControlPointWhenScrolling(){const{scene:i}=this._context;if(!i.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN))return;const t=this._scrollManagerService.validViewportScrollInfo$.subscribe(o=>{var g;if(o==null)return;const{viewportScrollX:r,viewportScrollY:s}=o,l=this.getActiveSelectionControl();if(l==null)return;const c=(g=this._sheetSkeletonManagerService.getCurrent())==null?void 0:g.skeleton,d=c==null?void 0:c.rowTotalHeight,u=c==null?void 0:c.columnTotalWidth,h=l.rangeType;h===a.RANGE_TYPE.COLUMN?l.transformControlPoint(0,s,u,d):h===a.RANGE_TYPE.ROW&&l.transformControlPoint(r,0,u,d)});this.disposeWithMe(a.toDisposable(t))}};Do=H_([Fe(1,k.Inject(k.Injector)),Fe(2,k.Inject(a.ThemeService)),Fe(3,R.IShortcutService),Fe(4,P.IRenderManagerService),Fe(5,k.Inject(m.SheetsSelectionsService)),Fe(6,a.ILogService),Fe(7,a.ICommandService),Fe(8,a.IContextService),Fe(9,k.Inject(exports.SheetSkeletonManagerService)),Fe(10,k.Inject(Re))],Do);var lc=Object.defineProperty,V_=Object.getOwnPropertyDescriptor,W_=(n,i,e)=>i in n?lc(n,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[i]=e,L_=(n,i,e,t)=>{for(var o=t>1?void 0:t?V_(i,e):i,r=n.length-1,s;r>=0;r--)(s=n[r])&&(o=(t?s(i,e,o):s(o))||o);return t&&o&&lc(i,e,o),o},tr=(n,i)=>(e,t)=>i(e,t,n),ac=(n,i,e)=>W_(n,typeof i!="symbol"?i+"":i,e);exports.UniverSheetsMobileUIPlugin=class extends a.Plugin{constructor(i={},e,t,o){super(),this._config=i,this._injector=e,this._renderManagerService=t,this._univerInstanceService=o,this._config=a.Tools.deepMerge({},Ya,this._config)}onStarting(i){[[Yt],[ot,{useClass:exports.SheetClipboardService}],[At,{useClass:Yl}],[it,{useClass:wo}],[gt,{useClass:exports.AutoFillService}],[as],[Re],[_e,{useClass:Do}],[gi,{useClass:oa}],[Ot,{useClass:exports.MarkSelectionService}],[exports.HoverManagerService],[exports.DragManagerService],[exports.SheetCanvasPopManagerService],[exports.CellAlertManagerService],[Mn],[exports.AutoHeightController],[exports.HeaderFreezeRenderController],[On],[exports.SheetsRenderService],[Ln,{useFactory:()=>this._injector.createInstance(Ln,this._config)}],[exports.StatusBarController],[Ie],[hn],[Wn],[kn],[exports.SheetPermissionInterceptorBaseController],[exports.SheetPermissionInitController]].forEach(e=>i.add(e)),this._injector.add([Et,{useFactory:()=>this._injector.createInstance(Et,this._config)}])}onReady(){this._markSheetAsFocused(),this._registerRenderBasics()}onRendered(){this._registerRenderModules()}_registerRenderBasics(){[[exports.SheetSkeletonManagerService],[exports.SheetRenderController],[_e,{useClass:Do}]].forEach(i=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(a.UniverInstanceType.UNIVER_SHEET,i))})}_registerRenderModules(){[[exports.HeaderMoveRenderController],[exports.HeaderFreezeRenderController],[wr],[Bn],[Po],[Nn],[Dn],[yo],[exports.HoverRenderController],[exports.DragRenderController],[xn],[exports.CellCustomRenderController],[Pr],[Hn],[Vn],[xo]].forEach(i=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(a.UniverInstanceType.UNIVER_SHEET,i))})}_markSheetAsFocused(){const i=this._univerInstanceService;i.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).pipe(al.filter(e=>!!e)).subscribe(e=>{i.focusUnit(e.getUnitId())})}};ac(exports.UniverSheetsMobileUIPlugin,"pluginName","SHEET_UI_PLUGIN");ac(exports.UniverSheetsMobileUIPlugin,"type",a.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsMobileUIPlugin=L_([a.DependentOn(m.UniverSheetsPlugin,R.UniverMobileUIPlugin),tr(1,k.Inject(k.Injector)),tr(2,P.IRenderManagerService),tr(3,a.IUniverInstanceService)],exports.UniverSheetsMobileUIPlugin);exports.APPLY_TYPE=le;exports.AddRangeProtectionCommand=vf;exports.AddRangeProtectionFromContextMenuCommand=vi;exports.AddRangeProtectionFromSheetBarCommand=_i;exports.AddRangeProtectionFromToolbarCommand=Si;exports.AddWorksheetMergeAllCommand=ni;exports.AddWorksheetMergeCommand=We;exports.AddWorksheetMergeHorizontalCommand=ii;exports.AddWorksheetMergeVerticalCommand=oi;exports.AddWorksheetProtectionCommand=oo;exports.ApplyFormatPainterCommand=Gn;exports.AutoClearContentCommand=Ft;exports.AutoFillCommand=bt;exports.BaseSelectionRenderService=kr;exports.COPY_TYPE=ct;exports.CancelFrozenCommand=qo;exports.CellAlertType=Xt;exports.CellEditorManagerService=Ml;exports.ChangeSheetProtectionFromSheetBarCommand=fi;exports.ChangeZoomRatioCommand=tn;exports.DATA_TYPE=pe;exports.DeleteRangeMoveLeftConfirmCommand=$n;exports.DeleteRangeMoveUpConfirmCommand=Qt;exports.DeleteRangeProtectionFromContextMenuCommand=bi;exports.DeleteRangeSelectionCommand=Cf;exports.DeleteWorksheetProtectionCommand=Mt;exports.DeleteWorksheetProtectionFormSheetBarCommand=pi;exports.ExpandSelectionCommand=Ae;exports.HideColConfirmCommand=Xo;exports.HideRowConfirmCommand=jo;exports.IAutoFillService=gt;exports.ICellEditorManagerService=ei;exports.IEditorBridgeService=qe;exports.IFormulaEditorManagerService=ti;exports.IMarkSelectionService=Ot;exports.ISheetClipboardService=ot;exports.ISheetSelectionRenderService=_e;exports.InsertRangeMoveDownConfirmCommand=Jt;exports.InsertRangeMoveRightConfirmCommand=eo;exports.JumpOver=Ze;exports.MobileSheetBar=sc;exports.MoveSelectionCommand=ye;exports.MoveSelectionEnterAndTabCommand=Ge;exports.PASTE_SPECIAL_MENU_ID=un;exports.PREDEFINED_HOOK_NAME=Se;exports.RefillCommand=ri;exports.RemoveColConfirmCommand=li;exports.RemoveRowConfirmCommand=si;exports.RemoveSheetConfirmCommand=ai;exports.RenameSheetOperation=ui;exports.ResetScrollCommand=Cc;exports.SHEET_UI_PLUGIN_NAME=uc;exports.SHEET_VIEW_KEY=me;exports.ScrollCommand=je;exports.ScrollToCellCommand=Ar;exports.ScrollToRangeOperation=ca;exports.SelectAllCommand=Vo;exports.SelectionShape=Uo;exports.SetActivateCellEditOperation=di;exports.SetCellEditVisibleArrowOperation=Gt;exports.SetCellEditVisibleOperation=Pe;exports.SetCellEditVisibleWithF2Operation=zn;exports.SetColumnFrozenCommand=Ko;exports.SetFormatPainterOperation=Yn;exports.SetInfiniteFormatPainterCommand=Zo;exports.SetOnceFormatPainterCommand=Zn;exports.SetProtectionCommand=Ti;exports.SetRangeBoldCommand=rn;exports.SetRangeFontFamilyCommand=Yo;exports.SetRangeFontSizeCommand=zo;exports.SetRangeItalicCommand=sn;exports.SetRangeProtectionCommand=_f;exports.SetRangeProtectionFromContextMenuCommand=Ri;exports.SetRangeStrickThroughCommand=an;exports.SetRangeSubscriptCommand=Yr;exports.SetRangeSuperscriptCommand=Zr;exports.SetRangeTextColorCommand=qt;exports.SetRangeUnderlineCommand=ln;exports.SetRowFrozenCommand=Go;exports.SetScrollOperation=nt;exports.SetScrollRelativeCommand=ut;exports.SetSelectionFrozenCommand=cn;exports.SetWorksheetProtectionCommand=rs;exports.SetZoomRatioCommand=nn;exports.SetZoomRatioOperation=ze;exports.SheetCopyCommand=Br;exports.SheetCutCommand=Fr;exports.SheetMenuPosition=ue;exports.SheetPasteBesidesBorderCommand=zr;exports.SheetPasteColWidthCommand=Fo;exports.SheetPasteCommand=on;exports.SheetPasteFormatCommand=Xr;exports.SheetPasteShortKeyCommand=Eo;exports.SheetPasteValueCommand=jr;exports.SheetPermissionOpenDialogOperation=is;exports.SheetPermissionOpenPanelOperation=Ye;exports.SheetPrintInterceptorService=as;exports.SheetsUIPart=cl;exports.ShowMenuListCommand=ci;exports.SidebarDefinedNameOperation=mi;exports.VIEWPORT_KEY=gl;exports.ViewSheetPermissionFromContextMenuCommand=Ci;exports.ViewSheetPermissionFromSheetBarCommand=Ii;exports.attachRangeWithCoord=Or;exports.checkInHeaderRanges=yt;exports.deriveStateFromActiveSheet$=Te;exports.expandToContinuousRange=ul;exports.getAllSelection=Hr;exports.getAutoFillRepeatRange=Jc;exports.getCoordByCell=ir;exports.getCoordByOffset=Xe;exports.getCurrentRangeDisable$=ne;exports.getEditorObject=Mr;exports.getRepeatRange=qd;exports.getSheetObject=Ke;exports.getTopLeftSelection=Bo;exports.getTransformCoord=Pn;exports.mergeSetRangeValues=ar;exports.rangeToDiscreteRange=Bt;exports.useActiveWorkbook=$o;exports.useActiveWorksheet=nh;exports.useHighlightRange=Qa;exports.virtualizeDiscreteRanges=en;exports.whenFormulaEditorActivated=Md;exports.whenSheetEditorFocused=re;
17
+ */var du=H,uu=Symbol.for("react.element"),hu=Symbol.for("react.fragment"),mu=Object.prototype.hasOwnProperty,gu=du.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,pu={key:!0,ref:!0,__self:!0,__source:!0};function bl(i,o,e){var t,n={},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)mu.call(o,t)&&!pu.hasOwnProperty(t)&&(n[t]=o[t]);if(i&&i.defaultProps)for(t in o=i.defaultProps,o)n[t]===void 0&&(n[t]=o[t]);return{$$typeof:uu,type:i,key:r,ref:s,props:n,_owner:gu.current}}Zi.Fragment=hu;Zi.jsx=bl;Zi.jsxs=bl;Rl.exports=Zi;var _=Rl.exports;const fu="univer-sheets-ui-context-menu-input",Su="univer-sheets-ui-context-menu-input-container",vu="univer-sheets-ui-context-menu-input-number",Ao={sheetsUiContextMenuInput:fu,sheetsUiContextMenuInputContainer:Su,sheetsUiContextMenuInputNumber:vu},Tl=i=>{const{prefix:o,suffix:e,value:t,onChange:n,min:r=Number.MIN_SAFE_INTEGER,max:s=Number.MAX_SAFE_INTEGER}=i,a=l.useDependency(l.LocaleService),[c,d]=H.useState(),u=g=>{var p;d(g==null?void 0:g.toString()),n((p=g==null?void 0:g.toString())!=null?p:"")};H.useEffect(()=>{d(t)},[t]);function h(g){g.key==="Backspace"&&g.stopPropagation()}return _.jsxs("div",{className:Ao.sheetsUiContextMenuInput,children:[a.t(o),_.jsx("span",{className:Ao.sheetsUiContextMenuInputContainer,onClick:g=>g.stopPropagation(),children:_.jsx(J.InputNumber,{className:Ao.sheetsUiContextMenuInputNumber,value:Number(c),precision:0,onKeyDown:h,onChange:u,min:r,max:s})}),a.t(e)]})};var ae=(i=>(i.ROW_HEADER_CONTEXT_MENU="ROW_HEADER_CONTEXT_MENU",i.COL_HEADER_CONTEXT_MENU="COL_HEADER_CONTEXT_MENU",i.SHEET_BAR="SHEET_BAR",i))(ae||{});function Cu(i){const o=i.get(nt);return{id:Yn.id,subId:ji.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 O.Observable(e=>{let t=!1;const n=o.status$.subscribe(r=>{t=r!==De.OFF,e.next(t)});return e.next(t),()=>{n.unsubscribe()}}),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET),disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetCopyPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function _u(i){const o=i.get(l.ICommandService),e=i.get(l.IUniverInstanceService),t=i.get(l.IContextService),n=i.get(m.SheetsSelectionsService);return{id:on.id,group:T.MenuGroup.TOOLBAR_FORMAT,type:T.MenuItemType.BUTTON,icon:"BoldSingle",title:"Set bold",tooltip:"toolbar.bold",positions:[T.MenuPosition.TOOLBAR_START],disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),activated$:Re(e,!1,({worksheet:r})=>new O.Observable(s=>{var u;const a=o.onCommandExecuted(h=>{var p,f;const g=h.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const S=(p=n.getCurrentLastSelection())==null?void 0:p.primary;let v=l.FontWeight.NORMAL;if(S!=null){const C=r.getRange(S.startRow,S.startColumn);v=C==null?void 0:C.getFontWeight()}s.next(v===l.FontWeight.BOLD)}if((g===te.SetTextSelectionsOperation.id||g===te.SetInlineFormatCommand.id)&&t.getContextValue(l.EDITOR_ACTIVATED)&&t.getContextValue(l.FOCUSING_SHEET)){const S=Qn(i);if(S==null)return;const v=(f=S.ts)==null?void 0:f.bl;s.next(v===l.BooleanNumber.TRUE)}}),c=(u=n.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(i,l.UniverInstanceType.UNIVER_SHEET)}}function Iu(i){const o=i.get(l.ICommandService),e=i.get(l.IUniverInstanceService),t=i.get(m.SheetsSelectionsService),n=i.get(l.IContextService);return{id:rn.id,group:T.MenuGroup.TOOLBAR_FORMAT,type:T.MenuItemType.BUTTON,icon:"ItalicSingle",title:"Set italic",tooltip:"toolbar.italic",positions:[T.MenuPosition.TOOLBAR_START],disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),activated$:Re(e,!1,({worksheet:r})=>new O.Observable(s=>{var u;const a=o.onCommandExecuted(h=>{var p,f;const g=h.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const S=(p=t.getCurrentLastSelection())==null?void 0:p.primary;let v=l.FontItalic.NORMAL;if(S!=null){const C=r.getRange(S.startRow,S.startColumn);v=C==null?void 0:C.getFontStyle()}s.next(v===l.FontItalic.ITALIC)}if((g===te.SetTextSelectionsOperation.id||g===te.SetInlineFormatCommand.id)&&n.getContextValue(l.EDITOR_ACTIVATED)&&n.getContextValue(l.FOCUSING_SHEET)){const S=Qn(i);if(S==null)return;const v=(f=S.ts)==null?void 0:f.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(i,l.UniverInstanceType.UNIVER_SHEET)}}function Ru(i){const o=i.get(l.ICommandService),e=i.get(l.IUniverInstanceService),t=i.get(m.SheetsSelectionsService),n=i.get(l.IContextService);return{id:sn.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 O.Observable(s=>{var u;const a=o.onCommandExecuted(h=>{var p,f;const g=h.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const S=(p=t.getCurrentLastSelection())==null?void 0:p.primary;let v;if(S!=null){const C=r.getRange(S.startRow,S.startColumn);v=C==null?void 0:C.getUnderline()}s.next(!!(v&&v.s))}if((g===te.SetTextSelectionsOperation.id||g===te.SetInlineFormatCommand.id)&&n.getContextValue(l.EDITOR_ACTIVATED)&&n.getContextValue(l.FOCUSING_SHEET)){const S=Qn(i);if(S==null)return;const v=(f=S.ts)==null?void 0:f.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$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function bu(i){const o=i.get(l.ICommandService),e=i.get(l.IUniverInstanceService),t=i.get(m.SheetsSelectionsService),n=i.get(l.IContextService);return{id:ln.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$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),activated$:Re(e,!1,({worksheet:r})=>new O.Observable(s=>{var u;const a=o.onCommandExecuted(h=>{var p,f;const g=h.id;if(g===m.SetRangeValuesMutation.id||g===m.SetSelectionsOperation.id||g===m.SetWorksheetActiveOperation.id){const S=(p=t.getCurrentLastSelection())==null?void 0:p.primary;let v;if(S!=null){const C=r.getRange(S.startRow,S.startColumn);v=C==null?void 0:C.getStrikeThrough()}s.next(!!(v&&v.s))}if((g===te.SetTextSelectionsOperation.id||g===te.SetInlineFormatCommand.id)&&n.getContextValue(l.EDITOR_ACTIVATED)&&n.getContextValue(l.FOCUSING_SHEET)){const S=Qn(i);if(S==null)return;const v=(f=S.ts)==null?void 0:f.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(i,l.UniverInstanceType.UNIVER_SHEET)}}function Tu(i){const o=i.get(l.ICommandService),e=i.get(l.IUniverInstanceService),t=i.get(m.SheetsSelectionsService),n=l.DEFAULT_STYLES.ff;return{id:Fi.id,tooltip:"toolbar.font",group:T.MenuGroup.TOOLBAR_FORMAT,type:T.MenuItemType.SELECTOR,label:jr,positions:[T.MenuPosition.TOOLBAR_START],selections:T.FONT_FAMILY_LIST.map(r=>({label:{name:Xr,hoverable:!0},value:r.value})),disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),value$:Re(e,n,({worksheet:r})=>new O.Observable(s=>{var u;const a=o.onCommandExecuted(h=>{var S;const g=h.id;if(g!==m.SetRangeValuesMutation.id&&g!==m.SetSelectionsOperation.id&&g!==m.SetWorksheetActiveOperation.id)return;const p=(S=t.getCurrentLastSelection())==null?void 0:S.primary;let f;if(p!=null){const v=r.getRange(p.startRow,p.startColumn);f=v==null?void 0:v.getFontFamily()}s.next(f!=null?f:n)}),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:n),a.dispose})),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Eu(i){const o=i.get(l.ICommandService),e=i.get(l.IUniverInstanceService),t=i.get(m.SheetsSelectionsService),n=i.get(l.IContextService),r=l.DEFAULT_STYLES.fs,s=ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]});return{id:Bi.id,group:T.MenuGroup.TOOLBAR_FORMAT,type:T.MenuItemType.SELECTOR,tooltip:"toolbar.fontSize",label:{name:zr,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 O.Observable(c=>{var g;const d=o.onCommandExecuted(p=>{var S,v;const f=p.id;if(f===m.SetRangeValuesMutation.id||f===m.SetSelectionsOperation.id||f===m.SetWorksheetActiveOperation.id){const C=(S=t.getCurrentLastSelection())==null?void 0:S.primary;let I;if(C!=null){const R=a.getRange(C.startRow,C.startColumn);I=R==null?void 0:R.getFontSize()}c.next(I!=null?I:r)}if((f===te.SetTextSelectionsOperation.id||f===te.SetInlineFormatCommand.id)&&n.getContextValue(l.EDITOR_ACTIVATED)&&n.getContextValue(l.FOCUSING_SHEET)){const C=Qn(i);if(C==null)return;const I=(v=C.ts)==null?void 0:v.fs;c.next(I!=null?I:r)}}),u=(g=t.getCurrentLastSelection())==null?void 0:g.primary;let h;if(u!=null){const p=a.getRange(u.startRow,u.startColumn);h=p==null?void 0:p.getFontSize()}return c.next(h!=null?h:r),d.dispose})),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function wu(i){return{id:m.ResetTextColorCommand.id,type:T.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",positions:Kt.id,disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Pu(i){const o=i.get(l.ICommandService),e=i.get(l.ThemeService);return{id:Kt.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:Zn,hoverable:!1}}],value$:new O.Observable(t=>{const n=e.getCurrentTheme().textColor,r=o.onCommandExecuted(s=>{if(s.id===Kt.id){const a=s.params.value;t.next(a!=null?a:n)}});return t.next(n),r.dispose}),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET),disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function yu(i){return{id:m.ResetBackgroundColorCommand.id,type:T.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",positions:m.SetBackgroundColorCommand.id,disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Mu(i){const o=i.get(l.ICommandService),e=i.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:Zn,hoverable:!1}}],value$:new O.Observable(t=>{const n=e.getCurrentTheme().primaryColor,r=o.onCommandExecuted(s=>{if(s.id===m.SetBackgroundColorCommand.id){const a=s.params.value;t.next(a!=null?a:n)}});return t.next(n),r.dispose}),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET),disabled$:ee(i,{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 Ou(i){const o=i.get(l.IUniverInstanceService),e=i.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:n})=>new O.Observable(r=>{var d;const s=i.get(l.ICommandService).onCommandExecuted(u=>{var f;const h=u.id;if(h!==m.SetHorizontalTextAlignCommand.id&&h!==m.SetSelectionsOperation.id&&h!==m.SetWorksheetActiveOperation.id)return;const g=(f=e.getCurrentLastSelection())==null?void 0:f.primary;let p;if(g!=null){const S=n.getRange(g.startRow,g.startColumn);p=S==null?void 0:S.getHorizontalAlignment()}r.next(p!=null?p:t)}),a=(d=e.getCurrentLastSelection())==null?void 0:d.primary;let c;if(a!=null){const u=n.getRange(a.startRow,a.startColumn);c=u==null?void 0:u.getHorizontalAlignment()}return r.next(c!=null?c:t),s.dispose})),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET),disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const Ms=[{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 Au(i){const o=i.get(l.IUniverInstanceService),e=i.get(m.SheetsSelectionsService),t=l.VerticalAlign.BOTTOM;return{id:m.SetVerticalTextAlignCommand.id,icon:Ms[2].icon,tooltip:"toolbar.verticalAlignMode.main",group:T.MenuGroup.TOOLBAR_LAYOUT,type:T.MenuItemType.SELECTOR,positions:[T.MenuPosition.TOOLBAR_START],selections:Ms,value$:Re(o,t,({worksheet:n})=>new O.Observable(r=>{var d;const s=i.get(l.ICommandService).onCommandExecuted(u=>{var f;const h=u.id;if(h!==m.SetVerticalTextAlignCommand.id&&h!==m.SetSelectionsOperation.id&&h!==m.SetWorksheetActiveOperation.id)return;const g=(f=e.getCurrentLastSelection())==null?void 0:f.primary;let p;if(g!=null){const S=n.getRange(g.startRow,g.startColumn);p=S==null?void 0:S.getVerticalAlignment()}r.next(p!=null?p:t)}),a=(d=e.getCurrentLastSelection())==null?void 0:d.primary;let c;if(a!=null){const u=n.getRange(a.startRow,a.startColumn);c=u==null?void 0:u.getVerticalAlignment()}return r.next(c!=null?c:t),s.dispose})),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET),disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const Os=[{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 Nu(i){const o=i.get(m.SheetsSelectionsService),e=i.get(l.IUniverInstanceService),t=l.WrapStrategy.OVERFLOW;return{id:m.SetTextWrapCommand.id,tooltip:"toolbar.textWrapMode.main",icon:Os[0].icon,group:T.MenuGroup.TOOLBAR_LAYOUT,type:T.MenuItemType.SELECTOR,positions:[T.MenuPosition.TOOLBAR_START],selections:Os,value$:Re(e,t,({worksheet:n})=>new O.Observable(r=>{var d;const s=i.get(l.ICommandService).onCommandExecuted(u=>{var f;const h=u.id;if(h!==m.SetTextWrapCommand.id&&h!==m.SetSelectionsOperation.id&&h!==m.SetWorksheetActiveOperation.id)return;const g=(f=o.getCurrentLastSelection())==null?void 0:f.primary;let p;if(g!=null){const S=n.getRange(g.startRow,g.startColumn);p=S==null?void 0:S.getWrapStrategy()}r.next(p!=null?p:t)}),a=(d=o.getCurrentLastSelection())==null?void 0:d.primary;let c;if(a!=null){const u=n.getRange(a.startRow,a.startColumn);c=u==null?void 0:u.getWrapStrategy()}return r.next(c!=null?c:t),s.dispose})),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET),disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const As=[{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 xu(i){const o=i.get(m.SheetsSelectionsService),e=i.get(l.IUniverInstanceService),t=0;return{id:m.SetTextRotationCommand.id,tooltip:"toolbar.textRotateMode.main",icon:As[0].icon,group:T.MenuGroup.TOOLBAR_LAYOUT,type:T.MenuItemType.SELECTOR,selections:As,positions:[T.MenuPosition.TOOLBAR_START],value$:Re(e,t,({worksheet:n})=>new O.Observable(r=>{var d,u;const s=i.get(l.ICommandService).onCommandExecuted(h=>{var S,v;const g=h.id;if(g!==m.SetTextRotationCommand.id&&g!==m.SetSelectionsOperation.id&&g!==m.SetWorksheetActiveOperation.id)return;const p=(S=o.getCurrentLastSelection())==null?void 0:S.primary;let f;if(p!=null){const C=n.getRange(p.startRow,p.startColumn);f=C==null?void 0:C.getTextRotation()}(f==null?void 0:f.v)===l.BooleanNumber.TRUE?r.next("v"):r.next((v=f&&f.a)!=null?v:t)}),a=(d=o.getCurrentLastSelection())==null?void 0:d.primary;let c;if(a!=null){const h=n.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(i,l.UniverInstanceType.UNIVER_SHEET),disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Kn(i){return new O.Observable(e=>e.next(!i.get(T.IClipboardInterfaceService).supportClipboard))}function El(i){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$:ee(i,{workbookTypes:[m.WorkbookCopyPermission],worksheetTypes:[m.WorksheetCopyPermission],rangeTypes:[m.RangeProtectionPermissionViewPoint]}),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Du(i){return{id:T.PasteCommand.id,group:T.MenuGroup.CONTEXT_MENU_FORMAT,type:T.MenuItemType.BUTTON,title:"rightClick.paste",icon:"PasteSpecial",disabled$:Kn(i).pipe(O.combineLatestWith(ee(i,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission,m.WorksheetSetCellValuePermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([o,e])=>o||e)),positions:[T.MenuPosition.CONTEXT_MENU,"COL_HEADER_CONTEXT_MENU","ROW_HEADER_CONTEXT_MENU"],hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}const dn="sheet.menu.paste-special";function ku(i){return{id:dn,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(i,l.UniverInstanceType.UNIVER_SHEET)}}function Hu(i){return{id:Wr.id,type:T.MenuItemType.BUTTON,title:"rightClick.pasteValue",positions:[dn],disabled$:Kn(i).pipe(O.combineLatestWith(ee(i,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetEditPermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([o,e])=>o||e)),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Vu(i){return{id:Lr.id,type:T.MenuItemType.BUTTON,title:"rightClick.pasteFormat",positions:[dn],disabled$:Kn(i).pipe(O.combineLatestWith(ee(i,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([o,e])=>o||e)),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Wu(i){return{id:Wi.id,type:T.MenuItemType.BUTTON,title:"rightClick.pasteColWidth",positions:[dn],disabled$:Kn(i).pipe(O.combineLatestWith(ee(i,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetColumnStylePermission,m.WorksheetEditPermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([o,e])=>o||e))}}function Lu(i){return{id:Ur.id,type:T.MenuItemType.BUTTON,title:"rightClick.pasteBesidesBorder",positions:[dn],disabled$:Kn(i).pipe(O.combineLatestWith(ee(i,{rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission,m.WorksheetSetCellValuePermission,m.WorksheetSetRowStylePermission,m.WorksheetSetColumnStylePermission],workbookTypes:[m.WorkbookEditablePermission]})),O.map(([o,e])=>o||e)),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Uu(i){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$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetRowStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}const qn="sheet.menu.sheet-frozen";function Bu(i){return{id:qn,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",positions:[T.MenuPosition.CONTEXT_MENU],hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}const Yr="sheet.header-menu.sheet-frozen";function Fu(i){return{id:Yr,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(i,l.UniverInstanceType.UNIVER_SHEET)}}function ju(i){return{id:an.id,type:T.MenuItemType.BUTTON,positions:[qn,Yr],title:"rightClick.freeze",icon:"FreezeToSelectedSingle",disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Xu(i){return{id:Xi.id,type:T.MenuItemType.BUTTON,positions:[qn],title:"rightClick.freezeRow",icon:"FreezeRowSingle",disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function zu(i){return{id:zi.id,type:T.MenuItemType.BUTTON,positions:[qn],title:"rightClick.freezeCol",icon:"FreezeColumnSingle",disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Yu(i){return{id:Yi.id,type:T.MenuItemType.BUTTON,positions:[qn,Yr],title:"rightClick.cancelFreeze",icon:"CancelFreezeSingle",disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Gu(i){return{id:Li.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,positions:["ROW_HEADER_CONTEXT_MENU"],icon:"Hide",title:"rightClick.hideSelectedRow",disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetRowStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Zu(i){return{id:Ui.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,positions:["COL_HEADER_CONTEXT_MENU"],icon:"Hide",title:"rightClick.hideSelectedColumn",disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetColumnStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Ku(i){const o=i.get(l.IUniverInstanceService),e=i.get(m.SheetsSelectionsService),t=i.get(l.ICommandService),n=[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 O.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 g=h.startRow;g<=h.endRow;g++)if(!r.getRowRawVisible(g))return!0;return!1}))}const c=t.onCommandExecuted(d=>{n.findIndex(u=>u===d.id)!==-1&&s.next(!a())});return s.next(!a()),()=>c.dispose()})),disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetRowStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function qu(i){const o=i.get(l.IUniverInstanceService),e=i.get(m.SheetsSelectionsService),t=i.get(l.ICommandService),n=[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 O.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 g=h.startColumn;g<=h.endColumn;g++)if(!r.getColVisible(g))return!0;return!1})}const c=t.onCommandExecuted(d=>{n.findIndex(u=>u===d.id)!==-1&&s.next(!a())});return s.next(!a()),()=>c.dispose()})),disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetColumnStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Qu(i){const o=i.get(l.ICommandService),e=i.get(l.IUniverInstanceService),t=i.get(m.SheetsSelectionsService),n=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:Gi,props:{prefix:"rightClick.rowHeight",suffix:"px",min:2,max:1e3}},value$:Re(e,n,({worksheet:r})=>new O.Observable(s=>{function a(){var h;const d=(h=t.getCurrentLastSelection())==null?void 0:h.primary,u=d?r.getRowHeight(d.startRow):n;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$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetRowStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Ju(i){const o=i.get(l.ICommandService),e=i.get(l.IUniverInstanceService),t=i.get(m.SheetsSelectionsService),n=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:Gi,props:{prefix:"rightClick.columnWidth",suffix:"px",min:2,max:1e3}},value$:Re(e,n,({worksheet:r})=>new O.Observable(s=>{function a(){var h;const d=(h=t.getCurrentLastSelection())==null?void 0:h.primary;let u=n;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$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetColumnStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Qn(i){var c;const o=i.get(l.IUniverInstanceService),e=i.get(te.TextSelectionManagerService),t=o.getUniverDocInstance(l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),n=e.getActiveRange();if(t==null||n==null)return null;const r=(c=t.getBody())==null?void 0:c.textRuns;if(r==null)return;const{startOffset:s}=n;return r.find(({st:d,ed:u})=>s>=d&&s<=u)}function $u(i){const o=i.get(m.SheetsSelectionsService),e=i.get(m.RangeProtectionRuleModel),n=i.get(l.IUniverInstanceService).getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),r=n.getUnitId();return O.combineLatest([o.selectionMoveEnd$,n.activeSheet$]).pipe(O.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(g=>l.Rectangle.intersects(g,u)&&!l.Rectangle.contains(g,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 Pt(i,o,e){const t=i.find(n=>{const r=n.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 Ot(){const i=l.useDependency(l.IUniverInstanceService),o=T.useObservable(()=>i.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),void 0,void 0,[]);return o!=null?o:null}function eh(i){return T.useObservable(()=>{var e;return(e=i==null?void 0:i.activeSheet$)!=null?e:O.of(null)},void 0,void 0,[i])}class wl{constructor(){E(this,"_state",null);E(this,"_rect",null);E(this,"_state$",new O.BehaviorSubject(null));E(this,"state$",this._state$.asObservable());E(this,"_rect$",new O.BehaviorSubject(null));E(this,"rect$",this._rect$.asObservable());E(this,"_focus",!1);E(this,"_focus$",new O.BehaviorSubject(this._focus));E(this,"focus$",this._focus$.asObservable())}dispose(){this._state$.complete(),this._state=null,this._rect$.complete(),this._rect=null}setState(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 Ki=l.createIdentifier("univer.sheet-cell-editor-manager.service");class th{constructor(){E(this,"_position",null);E(this,"_position$",new O.BehaviorSubject(null));E(this,"position$",this._position$.asObservable());E(this,"_focus",!1);E(this,"_focus$",new O.BehaviorSubject(this._focus));E(this,"focus$",this._focus$.asObservable());E(this,"_fxBtnClick$",new O.Subject);E(this,"fxBtnClick$",this._fxBtnClick$.asObservable());E(this,"_foldBtnStatus$",new O.Subject);E(this,"foldBtnStatus$",this._foldBtnStatus$.asObservable())}dispose(){this._position$.complete(),this._focus$.complete(),this._position=null,this._focus=!1}setPosition(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 qi=l.createIdentifier("univer.sheet-formula-editor-manager.service");var nh=Object.defineProperty,ih=Object.getOwnPropertyDescriptor,oh=(i,o,e,t)=>{for(var n=t>1?void 0:t?ih(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&nh(o,e,n),n},Ke=(i,o)=>(e,t)=>o(e,t,i);exports.SheetSelectionRenderService=class extends Or{constructor(e,t,n,r,s,a,c,d,u,h){super(t,n,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:n,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}=Fe(c.offsetX,c.offsetY,a,u);Pt(this._workbookSelections.getCurrentSelections(),h,l.RANGE_TYPE.ROW)||(this._onPointerDown(c,(r.zIndex||1)+1,l.RANGE_TYPE.ROW,this._getActiveViewport(c),P.ScrollTimerType.Y),c.button!==2&&d.stopPropagation())})),this.disposeWithMe(n==null?void 0:n.onPointerDown$.subscribeEvent((c,d)=>{if(this._normalSelectionDisabled())return;const u=this._sheetSkeletonManagerService.getCurrent().skeleton,{column:h}=Fe(c.offsetX,c.offsetY,a,u);Pt(this._workbookSelections.getCurrentSelections(),h,l.RANGE_TYPE.COLUMN)||(this._onPointerDown(c,(r.zIndex||1)+1,l.RANGE_TYPE.COLUMN,this._getActiveViewport(c),P.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=Ar(u),g=Rt(h,u);this._addSelectionControlBySelectionData(g),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(n=>{const r=Rt(n,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 n=Rt(t,this._skeleton);this._addSelectionControlBySelectionData(n)}}))}_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(O.startWith(!1),O.distinctUntilChanged()).subscribe(e=>{var t;e?((t=this._renderDisposable)==null||t.dispose(),this._renderDisposable=null,this._reset()):this._renderDisposable=l.toDisposable(this.selectionMoveEnd$.subscribe(n=>this._updateSelections(n,m.SelectionMoveType.MOVE_END)))}))}_updateSelections(e,t){const n=this._context.unit,r=n.getUnitId(),s=n.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:n,skeleton:r}=e,{scene:s}=this._context,a=s.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._changeRuntime(r,s,a),this._workbookSelections.getCurrentLastSelection()||this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:t,subUnitId:n,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(P.Vector2.FromArray([e.offsetX,e.offsetY]))}_getSheetObject(){return Ge(this._context.unit,this._context)}};exports.SheetSelectionRenderService=oh([Ke(1,l.Inject(l.Injector)),Ke(2,l.Inject(l.ThemeService)),Ke(3,T.IShortcutService),Ke(4,P.IRenderManagerService),Ke(5,l.Inject(m.SheetsSelectionsService)),Ke(6,l.ILogService),Ke(7,l.ICommandService),Ke(8,l.IContextService),Ke(9,l.Inject(exports.SheetSkeletonManagerService))],exports.SheetSelectionRenderService);var rh=Object.defineProperty,sh=Object.getOwnPropertyDescriptor,lh=(i,o,e,t)=>{for(var n=t>1?void 0:t?sh(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&rh(o,e,n),n},Ns=(i,o)=>(e,t)=>o(e,t,i);let yn=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,n)=>{if(t.id===m.RemoveSheetMutation.id)return this._adjustActiveSheetOnRemoveSheet(t);if(t.id===m.SetWorksheetHideMutation.id&&t.params.hidden)return this._adjustActiveSheetOnHideSheet(t);if(!(n!=null&&n.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,n=this._univerInstanceService.getUniverSheetInstance(e);if(!n||((c=n.getActiveSheet())==null?void 0:c.getSheetId())!==t)return;const s=n.getActiveSheetIndex(),a=xs(n,s);this._switchToNextSheet(e,a)}_beforeAdjustActiveSheetOnRemoveSheet(o){const{unitId:e,subUnitId:t}=o.params,n=this._univerInstanceService.getUniverSheetInstance(e);if(!n)return;const r=n.getSheetBySheetId(t);r&&(this._previousSheetIndex=n.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=xs(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})}};yn=lh([l.OnLifecycle(l.LifecycleStages.Ready,yn),Ns(0,l.ICommandService),Ns(1,l.IUniverInstanceService)],yn);function xs(i,o){const e=i.getSheetSize();for(let t=o;t>-1;t--){const n=i.getSheetByIndex(t);if(!n.getConfig().hidden)return n.getSheetId()}for(let t=o;t<e;t++){const n=i.getSheetByIndex(t);if(!n.getConfig().hidden)return n.getSheetId()}throw new Error("[ActiveWorksheetController]: could not find the next unhidden sheet! Collaboration error perhaps.")}var ah=Object.defineProperty,ch=Object.getOwnPropertyDescriptor,dh=(i,o,e,t)=>{for(var n=t>1?void 0:t?ch(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&ah(o,e,n),n},pn=(i,o)=>(e,t)=>o(e,t,i);exports.AutoHeightController=class extends l.Disposable{constructor(o,e,t,n,r){super(),this._renderManagerService=o,this._injector=e,this._sheetInterceptorService=t,this._selectionManagerService=n,this._univerInstanceService=r,this._initialize()}getUndoRedoParamsOfAutoHeight(o){var g;const{_univerInstanceService:e,_injector:t}=this,n=e.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),r=n.getUnitId(),s=(g=n.getActiveSheet())==null?void 0:g.getSheetId(),a=this._renderManagerService.getRenderById(r).with(exports.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:[]}}}))}};exports.AutoHeightController=dh([l.OnLifecycle(l.LifecycleStages.Ready,exports.AutoHeightController),pn(0,P.IRenderManagerService),pn(1,l.Inject(l.Injector)),pn(2,l.Inject(m.SheetInterceptorService)),pn(3,l.Inject(m.SheetsSelectionsService)),pn(4,l.Inject(l.IUniverInstanceService))],exports.AutoHeightController);function uh(i,o,e,t,n){const r=[],s=[];if(t.copyType===lt.CUT){const{undos:a,redos:c}=hh(i,o,n);r.push(...c),s.push(...a)}else{const{undos:a,redos:c}=Ml(o,e,n);r.push(...c),s.push(...a);const{undos:d,redos:u}=Pl(o,i,e,n);r.push(...u),s.push(...d);const{undos:h,redos:g}=yl(o,e,n,!0);r.push(...g),s.push(...h);const{undos:p,redos:f}=or(o,e,n);r.push(...f),s.push(...p)}return{undos:s,redos:r}}function hh(i,o,e){let t=[],n=[];const{range:r,subUnitId:s,unitId:a}=i,{range:c,subUnitId:d}=o,u=c?Et(c):null,h=r?Et(r):null;if(h&&u){const g=e.get(l.IUniverInstanceService),p=e.get(m.SheetInterceptorService),f=g.getUniverSheetInstance(a),S=f==null?void 0:f.getSheetBySheetId(s),v=f==null?void 0:f.getSheetBySheetId(d);if(S&&v){const C=new l.ObjectMatrix,I=new l.ObjectMatrix,R=S.getCellMatrix(),b=v.getCellMatrix();l.Range.foreach(h,(F,X)=>{C.setValue(F,X,l.Tools.deepClone(R.getValue(F,X))),I.setValue(F,X,null)});const w=new l.ObjectMatrix;l.Range.foreach(u,(F,X)=>{w.setValue(F,X,l.Tools.deepClone(b.getValue(F,X)))});const y=new l.ObjectMatrix;l.Range.foreach(h,(F,X)=>{const B=l.cellToRange(F,X),Y=l.Rectangle.getRelativeRange(B,h),W=l.Rectangle.getPositionRange(Y,u);y.setValue(W.startRow,W.startColumn,R.getValue(F,X))});const M={from:{value:I.getMatrix(),subUnitId:s},to:{value:y.getMatrix(),subUnitId:d},unitId:a},A={from:{value:C.getMatrix(),subUnitId:s},to:{value:w.getMatrix(),subUnitId:d},unitId:a},N=p.onCommandExecute({id:m.MoveRangeCommand.id,params:{toRange:u,fromRange:h}}),x=S.getMergeData(),D=v.getMergeData(),k=x.filter(F=>l.Rectangle.intersects(F,h)),L=D.filter(F=>l.Rectangle.intersects(F,u)),V=k.map(F=>l.Rectangle.getRelativeRange(F,h)).map(F=>l.Rectangle.getPositionRange(F,u)),j=m.getAddMergeMutationRangeByType(V).filter(F=>!D.some(X=>l.Rectangle.equals(F,X))),Z=[{id:m.RemoveWorksheetMergeMutation.id,params:{unitId:a,subUnitId:s,ranges:k}},{id:m.RemoveWorksheetMergeMutation.id,params:{unitId:a,subUnitId:s,ranges:L}},{id:m.AddWorksheetMergeMutation.id,params:{unitId:a,subUnitId:d,ranges:j}}],z=[{id:m.RemoveWorksheetMergeMutation.id,params:{unitId:a,subUnitId:d,ranges:j}},{id:m.AddWorksheetMergeMutation.id,params:{unitId:a,subUnitId:d,ranges:L}},{id:m.AddWorksheetMergeMutation.id,params:{unitId:a,subUnitId:s,ranges:k}}];t=[{id:m.MoveRangeMutation.id,params:M},...N.redos,...Z,{id:m.SetSelectionsOperation.id,params:{unitId:a,subUnitId:d,selections:[{range:u}]}}],n=[{id:m.MoveRangeMutation.id,params:A},...N.undos,...z,{id:m.SetSelectionsOperation.id,params:{unitId:a,sheetId:s,selections:[{range:h}]}}]}}return{undos:n,redos:t}}function Pl(i,o,e,t){const{unitId:n,subUnitId:r,range:s}=i,a=[],c=[],{mapFunc:d}=$t([s]),u=new l.ObjectMatrix;e.forValue((p,f,S)=>{var R;let v;if(!S.p&&S.v&&!o){const b=String(S.v),w=$e.parseDate(b)||$e.parseTime(b)||$e.parseNumber(b);w!=null&&w.v&&typeof w.v=="number"&&(v=w.v)}const{row:C,col:I}=d(p,f);(R=S.p)!=null&&R.body?u.setValue(C,I,l.Tools.deepClone({p:S.p,v:v!=null?v:S.v})):u.setValue(C,I,l.Tools.deepClone({v:v!=null?v:S.v}))});const h={unitId:n,subUnitId:r,cellValue:l.Tools.deepClone(u.getMatrix())};a.push({id:m.SetRangeValuesMutation.id,params:h});const g=m.SetRangeValuesUndoMutationFactory(t,h);return c.push({id:m.SetRangeValuesMutation.id,params:g}),{undos:c,redos:a}}function yl(i,o,e,t=!1){const n=[],r=[],{unitId:s,subUnitId:a,range:c}=i,d=new l.ObjectMatrix,{mapFunc:u}=$t([c]);o.forValue((p,f,S)=>{var w,y;const v={s:Object.assign({},{...l.DEFAULT_STYLES,pd:P.DEFAULT_PADDING_DATA,bg:null},S.s)};t&&((w=S.p)!=null&&w.body)&&(v.p=S.p);const C=String(S.v),I=$e.parseDate(C)||$e.parseTime(C)||$e.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:R,col:b}=u(p,f);d.setValue(R,b,v)});const h={unitId:s,subUnitId:a,cellValue:l.Tools.deepClone(d.getMatrix())};n.push({id:m.SetRangeValuesMutation.id,params:h});const g=m.SetRangeValuesUndoMutationFactory(e,h);return r.push({id:m.SetRangeValuesMutation.id,params:g}),{undos:r,redos:n}}function Ml(i,o,e){const t=[],n=[],r=new l.ObjectMatrix,{unitId:s,subUnitId:a,range:c}=i,{mapFunc:d}=$t([c]);if(o.forValue((u,h,g)=>{if(g.s){const{row:p,col:f}=d(u,h);r.setValue(p,f,{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);n.push({id:m.SetRangeValuesMutation.id,params:h})}return{undos:n,redos:t}}function or(i,o,e){const t=[],n=[],{unitId:r,subUnitId:s,range:a}=i,{startColumn:c,startRow:d,endColumn:u,endRow:h}=Et(a),g=[];o.forValue((I,R,b)=>{if(b.rowSpan&&b.rowSpan>1){const w=b.colSpan||1,y={startRow:d+I,endRow:d+I+b.rowSpan-1,startColumn:c+R,endColumn:c+R+w-1};g.push(y)}else if(b.colSpan&&b.colSpan>1){const w=b.rowSpan||1,y={startRow:d+I,endRow:d+I+w-1,startColumn:c+R,endColumn:c+R+b.colSpan-1};g.push(y)}});const f=e.get(l.IUniverInstanceService).getUniverSheetInstance(r),S=f==null?void 0:f.getSheetBySheetId(s);if(f&&S){const R=S.getMergeData().filter(y=>l.Rectangle.intersects({startRow:d,startColumn:c,endRow:h,endColumn:u},y)),b={unitId:r,subUnitId:s,ranges:R};t.push({id:m.RemoveWorksheetMergeMutation.id,params:b});const w=m.RemoveMergeUndoMutationFactory(e,b);n.push({id:m.AddWorksheetMergeMutation.id,params:w})}const v={unitId:r,subUnitId:s,ranges:g};g.length>0&&t.push({id:m.AddWorksheetMergeMutation.id,params:v});const C=m.AddMergeUndoMutationFactory(e,v);return g.length>0&&n.push({id:m.RemoveWorksheetMergeMutation.id,params:C}),{undos:n,redos:t}}function mh(i){let o=i.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 gh=Object.defineProperty,ph=Object.getOwnPropertyDescriptor,fh=(i,o,e,t)=>{for(var n=t>1?void 0:t?ph(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&gh(o,e,n),n},We=(i,o)=>(e,t)=>o(e,t,i);let Mn=class extends l.RxDisposable{constructor(i,o,e,t,n,r,s,a,c,d){var u;super(),this._injector=i,this._currentUniverSheet=o,this._renderManagerService=e,this._commandService=t,this._contextService=n,this._configService=r,this._sheetClipboardService=s,this._messageService=a,this._localService=c,this._textSelectionRenderManager=d,this._init(),(u=this._textSelectionRenderManager)==null||u.onPaste$.pipe(O.takeUntil(this.dispose$)).subscribe(h=>{var S,v;if(!oe(this._contextService))return;h.event.preventDefault();const g=h.event,p=(S=g.clipboardData)==null?void 0:S.getData("text/html"),f=(v=g.clipboardData)==null?void 0:v.getData("text/plain");this._commandService.executeCommand(Ii.id,{htmlContent:p,textContent:f})})}_init(){[Hr,Vr,nn].forEach(o=>this.disposeWithMe(this._commandService.registerMultipleCommand(o))),[Wr,Lr,Wi,Ur,Ii].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._initCopyingHooks())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._initPastingHook()));const i=this._initSpecialPasteHooks().map(o=>this._sheetClipboardService.addClipboardHook(o));this.disposeWithMe({dispose:()=>i.forEach(o=>o.dispose())})}_initCopyingHooks(){const i=this;let o=null;return{id:pe.DEFAULT_COPY,isDefaultHook:!0,onBeforeCopy(e,t){o=i._getWorksheet(e,t)},onCopyCellContent(e,t){var s,a,c,d;const n=o.getCell(e,t);return(a=(s=n==null?void 0:n.p)==null?void 0:s.body)!=null&&a.paragraphs||(d=(c=n==null?void 0:n.p)==null?void 0:c.body)!=null&&d.textRuns?l.convertBodyToHtml(n.p.body):n?l.extractPureTextFromCell(n):""},onCopyCellStyle:(e,t,n,r)=>{const s={};(n||r)&&(s.rowspan=`${n||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,g=c.endColumn,f=o.getRange(h,g).getTextStyle();if(f){const S=l.handleStyleToString(f);u?u+=S?`;${S}`:"":u=S}}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:n}=e,r=(a=i._currentUniverSheet.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET))==null?void 0:a.getActiveSheet(),s=[];if(!r)return s;for(let c=t;c<=n;c++)r.getRowFiltered(c)&&s.push(c);return s}}}_initPastingHook(){const i=this;let o=null,e=null,t=null;return{id:pe.DEFAULT_PASTE,isDefaultHook:!0,onBeforePaste({unitId:n,subUnitId:r,range:s}){t=i._getWorksheet(n,r),o=n,e=r;const a=i._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?(i._messageService.show({type:J.MessageType.Error,content:i._localService.t("clipboard.paste.exceedMaxCells")}),!1):!0},onPasteRows(n,r){const{range:s}=n,a=[],c=[],d=t.getMaxRows(),u=s.rows[s.rows.length-1]-d,h=r.length-u,g=t.getRowManager();if(u>0){const v={};r.slice(h).forEach((I,R)=>{const{style:b,height:w}=I||{};if(b){const y=b.split(";");let M=l.DEFAULT_WORKSHEET_ROW_HEIGHT;y.find(A=>{A=A.toLowerCase();const N=T.textTrim(A.substr(0,A.indexOf(":"))),x=T.textTrim(A.substr(A.indexOf(":")+1));return N==="height"?(x.endsWith("pt")?M=P.ptToPx(Number.parseFloat(x)):M=Number.parseFloat(x),!0):!1}),v[R]={h:M,hd:l.BooleanNumber.FALSE}}else w&&(v[R]={h:Number.parseFloat(w),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 p={},f={};r.slice(0,h).forEach((v,C)=>{var b,w;const{style:I,height:R}=v;if(I){const y=I.split(";");let M=l.DEFAULT_WORKSHEET_ROW_HEIGHT;y.find(A=>{A=A.toLowerCase();const N=T.textTrim(A.substr(0,A.indexOf(":"))),x=T.textTrim(A.substr(A.indexOf(":")+1));return N==="height"?(x.endsWith("pt")?M=P.ptToPx(Number.parseFloat(x)):M=Number.parseFloat(x),!0):!1}),p[C+s.rows[0]]=M}else if(R){const y=g.getRow(s.rows[0]+C),M=Number.parseFloat(R);if(y){const{h:A=l.DEFAULT_WORKSHEET_ROW_HEIGHT,ah:N=0}=y,x=Math.max(A,N);M>x&&(p[C+s.rows[0]]=M,f[C+s.rows[0]]=x)}else p[C+s.rows[0]]=M,f[C+s.rows[0]]=(w=(b=g.getRow(s.rows[0]+C))==null?void 0:b.h)!=null?w:l.DEFAULT_WORKSHEET_ROW_HEIGHT}});const S={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:p};return a.push({id:m.SetWorksheetRowHeightMutation.id,params:S}),c.push({id:m.SetWorksheetRowHeightMutation.id,params:{...S,rowHeight:20}}),{redos:a,undos:c}},onPasteColumns(n,r,s){var f;const{range:a}=n,c=[],d=t.getMaxColumns(),u=a.cols[a.cols.length-1]-d,h=r.length-u,g=(f=i._configService.getConfig(l.DEFAULT_WORKSHEET_COLUMN_WIDTH_KEY))!=null?f:l.DEFAULT_WORKSHEET_COLUMN_WIDTH;if(u>0){const S={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:g,hd:l.BooleanNumber.FALSE}))};c.push({id:m.InsertColMutation.id,params:S})}const p={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(S=>S.width?+S.width:g)};return c.push({id:m.SetWorksheetColWidthMutation.id,params:p}),{redos:c,undos:[]}},onPastePlainText(n,r,s){return i._onPastePlainText(n,r,s)},onPasteCells(n,r,s,a){return i._onPasteCells(n,r,s,a)},onAfterPaste(n){t=null}}}_generateDocumentDataModelSnapshot(i){var s,a;const o=(s=this._renderManagerService.withCurrentTypeOfUnit(l.UniverInstanceType.UNIVER_SHEET,exports.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(),...i};return t==null||t.reset(r),t==null?void 0:t.getSnapshot()}_onPastePlainText(i,o,e){const{range:t,unitId:n,subUnitId:r}=i;let s;if(/\r|\n/.test(o)){const c=mh(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:n,subUnitId:r,cellValue:s};return{redos:[{id:m.SetRangeValuesMutation.id,params:a}],undos:[{id:m.SetRangeValuesMutation.id,params:m.SetRangeValuesUndoMutationFactory(this._injector,a)}]}}_onPasteCells(i,o,e,t){const n={get:this._injector.get.bind(this._injector)};return uh(i,o,e,t,n)}_initSpecialPasteHooks(){const i={get:this._injector.get.bind(this._injector)},o=this,e={id:pe.SPECIAL_PASTE_VALUE,specialPasteInfo:{label:"specialPaste.value"},onPasteCells:(s,a,c)=>Pl(a,s,c,i)},t={id:pe.SPECIAL_PASTE_FORMAT,specialPasteInfo:{label:"specialPaste.format"},onPasteCells(s,a,c){const d=[],u=[],{undos:h,redos:g}=Ml(a,c,i);d.push(...g),u.push(...h);const{undos:p,redos:f}=or(a,c,i);d.push(...f),u.push(...p);const{undos:S,redos:v}=yl(a,c,i);return d.push(...v),u.push(...S),{undos:u,redos:d}}},n={id:pe.SPECIAL_PASTE_COL_WIDTH,specialPasteInfo:{label:"specialPaste.colWidth"},onPasteCells(){return{undos:[],redos:[]}},onPasteColumns(s,a,c){var b,w;const d=o._currentUniverSheet.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),u=d.getUnitId(),h=(b=d.getActiveSheet())==null?void 0:b.getSheetId();if(!u||!h)throw new Error("Cannot find unitId or subUnitId");const g=[],p=o._getWorksheet(u,h),{range:f}=s,S=p.getMaxColumns(),v=f.cols[f.cols.length-1]-S,C=a.length-v,I=(w=o._configService.getConfig(l.DEFAULT_WORKSHEET_COLUMN_WIDTH_KEY))!=null?w:l.DEFAULT_WORKSHEET_COLUMN_WIDTH,R={unitId:u,subUnitId:h,ranges:[{startRow:f.rows[0],endRow:Math.min(f.cols[f.cols.length-1],S),startColumn:f.cols[0],endColumn:f.cols[f.cols.length-1]}],colWidth:a.slice(0,C).map(y=>y.width?+y.width:I)};return g.push({id:m.SetWorksheetColWidthMutation.id,params:R}),g.push({id:m.SetWorksheetColWidthMutation.id,params:R}),{redos:g,undos:[]}}},r={id:pe.SPECIAL_PASTE_BESIDES_BORDER,specialPasteInfo:{label:"specialPaste.besidesBorder"},onPasteCells(s,a,c,d){o._currentUniverSheet.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);const u=[],h=[],{range:g,unitId:p,subUnitId:f}=a,S=new l.ObjectMatrix;c.forValue((b,w,y)=>{const M=y.s;typeof M=="object"&&S.setValue(g.rows[b],g.cols[w],{s:{...M,bd:void 0},v:y.v})});const v={unitId:p,subUnitId:f,cellValue:S.getData()};u.push({id:m.SetRangeValuesMutation.id,params:v});const C=m.SetRangeValuesUndoMutationFactory(i,v);h.push({id:m.SetRangeValuesMutation.id,params:C});const{undos:I,redos:R}=or(a,c,i);return h.push(...I),u.push(...R),{redos:u,undos:h}}};return[e,t,n,r]}_getWorksheet(i,o){var t;const e=(t=this._currentUniverSheet.getUniverSheetInstance(i))==null?void 0:t.getSheetBySheetId(o);if(!e)throw new Error(`[SheetClipboardController]: cannot find a worksheet with unitId ${i} and subUnitId ${o}.`);return e}};Mn=fh([l.OnLifecycle(l.LifecycleStages.Steady,Mn),We(0,l.Inject(l.Injector)),We(1,l.IUniverInstanceService),We(2,P.IRenderManagerService),We(3,l.ICommandService),We(4,l.IContextService),We(5,l.IConfigService),We(6,tt),We(7,T.IMessageService),We(8,l.Inject(l.LocaleService)),We(9,l.Optional(P.ITextSelectionRenderManager))],Mn);var Sh=Object.defineProperty,vh=Object.getOwnPropertyDescriptor,Ch=(i,o,e,t)=>{for(var n=t>1?void 0:t?vh(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&Sh(o,e,n),n},it=(i,o)=>(e,t)=>o(e,t,i);exports.FormulaEditorController=class extends l.RxDisposable{constructor(e,t,n,r,s,a,c,d){super();E(this,"_loadedMap",new WeakSet);E(this,"_scheduledCallback",-1);this._univerInstanceService=e,this._renderManagerService=t,this._editorBridgeService=n,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(O.takeUntil(this.dispose$)).subscribe(e=>{this._create(e)}),this._create(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),this._textSelectionManagerService.textSelection$.pipe(O.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:n}=t;n!=null&&(this._loadedMap.has(n)||(this._initialMain(e),this._loadedMap.add(n)))}_listenFxBtnClick(){this._formulaEditorManagerService.fxBtnClick$.pipe(O.takeUntil(this.dispose$)).subscribe(()=>{var t,n;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:P.DeviceInputEventType.PointerDown,unitId:(t=r==null?void 0:r.getUnitId())!=null?t:""});const c=(n=s==null?void 0:s.getBody())==null?void 0:n.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(O.takeUntil(this.dispose$)).subscribe(()=>{this._textSelectionManagerService.refreshSelection()})}_initialMain(e){const t=this._renderManagerService.getRenderById(e);if(t==null)return;const{mainComponent:n}=t;n!=null&&this.disposeWithMe(n.onPointerDown$.subscribeEvent(()=>{this._editorBridgeService.isVisible().visible===!1&&this._editorBridgeService.changeVisible({visible:!0,eventType:P.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(O.takeUntil(this.dispose$)).subscribe(e=>{if(!e)return this._clearScheduledCallback();const t=Tr(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,this._renderManagerService),n=this._univerInstanceService.getUniverDocInstance(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);if(t==null||n==null)return this._clearScheduledCallback();const{width:r,height:s}=e;if(r===0||s===0)return this._clearScheduledCallback();const{engine:a}=t;n.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(O.takeUntil(this.dispose$)).subscribe(e=>{e==null||this._editorBridgeService.isForceKeepVisible()||this._editorSyncHandler(e)}),this._editorBridgeService.visible$.pipe(O.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 n=t==null?void 0:t.dataStream,r=t==null?void 0:t.paragraphs,s=t==null?void 0:t.textRuns;n==null||r==null||(e.isInArrayFormulaRange===!0&&this._editorBridgeService.isVisible().eventType===P.DeviceInputEventType.Dblclick&&(n=`\r
21
+ `,r=[{startIndex:0}],s=[]),this._syncContentAndRender(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,n,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(n=>{var c,d,u;if(n.id!==te.RichTextEditingMutation.id)return;const r=n.params,{unitId:s,actions:a}=r;if(e.includes(s)){const h=this._univerInstanceService.getUniverDocInstance(s),g=(c=h==null?void 0:h.getBody())==null?void 0:c.dataStream,p=(d=h==null?void 0:h.getBody())==null?void 0:d.paragraphs,f=(u=h==null?void 0:h.getBody())==null?void 0:u.textRuns,S=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(g==null||p==null)return;S===l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY?(this._checkAndSetRenderStyleConfig(h),this._syncActionsAndRender(S,a)):this._syncContentAndRender(S,g,p,f),this._autoScroll()}})),this.disposeWithMe(this._commandService.onCommandExecuted(n=>{var a,c,d;if(n.id!==T.SetEditorResizeOperation.id)return;const r=n.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,g=(c=u==null?void 0:u.getBody())==null?void 0:c.paragraphs,p=(d=u==null?void 0:u.getBody())==null?void 0:d.textRuns,f=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||g==null)return;this._syncContentAndRender(f,h,g,p),this._autoScroll()}}));const t=[m.SetRangeValuesMutation.id,m.MoveRangeMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted(n=>{var r,s,a,c,d;if(t.includes(n.id)){const u=this._editorBridgeService.getLatestEditCellState();if(u==null)return;let h=!1;const{row:g,column:p}=u;if(n.id===m.SetRangeValuesMutation.id&&n.params?(s=(r=n.params.cellValue)==null?void 0:r[g])!=null&&s[p]&&(h=!0):n.id===m.MoveRangeMutation.id&&n.params&&(c=(a=n.params.to.value)==null?void 0:a[g])!=null&&c[p]&&(h=!0),h){const f=(d=u.documentLayoutObject.documentModel)==null?void 0:d.getBody();if(f==null)return;const{dataStream:S,paragraphs:v=[]}=f;this._syncContentAndRender(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,S,v),this._autoScroll()}}}))}_syncActionsAndRender(e,t){var d;const n=[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(),n.includes(e)&&((d=r.mainComponent)==null||d.makeDirty()))}_syncContentAndRender(e,t,n,r=[]){var h,g;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(n),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)&&((g=u.mainComponent)==null||g.makeDirty()))}_checkAndSetRenderStyleConfig(e){var s;const t=e.getSnapshot(),{body:n}=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=n==null?void 0:n.dataStream)!=null?s:"").startsWith("=")?r.isRenderStyle=l.BooleanNumber.TRUE:r.isRenderStyle=l.BooleanNumber.FALSE}_clearParagraph(e){const t=l.Tools.deepClone(e);for(const n of t)n.paragraphStyle&&(n.paragraphStyle.horizontalAlign=l.HorizontalAlign.UNSPECIFIED);return t}_autoScroll(){var S,v;const e=this._formulaEditorManagerService.getPosition(),t=(S=this._renderManagerService.getRenderById(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))==null?void 0:S.with(te.DocSkeletonManagerService).getSkeleton(),n=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||n==null||r==null)return;const{marginTop:s=0,marginBottom:a=0}=r.getSnapshot().documentStyle,{scene:c,mainComponent:d}=n;let{actualHeight:u}=t.getActualSize();u+=s+a;const{width:h,height:g}=e,p=c.getViewport(te.VIEWPORT_KEY.VIEW_MAIN);let f=p==null?void 0:p.getScrollBar();c.transformByState({width:h,height:u}),d==null||d.resize(h,u),u>g?f==null?p&&new P.ScrollBar(p,{enableHorizontal:!1,barSize:8}):p==null||p.resetCanvasSizeAndUpdateScrollBar():(f=null,p==null||p.scrollTo({x:0,y:0}),(v=p==null?void 0:p.getScrollBar())==null||v.dispose())}_getEditorViewModel(e){var t;return(t=this._renderManagerService.getRenderById(e))==null?void 0:t.with(te.DocSkeletonManagerService).getViewModel()}};exports.FormulaEditorController=Ch([l.OnLifecycle(l.LifecycleStages.Rendered,exports.FormulaEditorController),it(0,l.IUniverInstanceService),it(1,P.IRenderManagerService),it(2,Ze),it(3,l.ICommandService),it(4,l.IContextService),it(5,qi),it(6,l.IUndoRedoService),it(7,l.Inject(te.TextSelectionManagerService))],exports.FormulaEditorController);const _h="36",Ih="univer-sheet-container",Ol={sheetFooterBarHeight:_h,sheetContainer:Ih},Al=[T.KeyCode.ARROW_DOWN,T.KeyCode.ARROW_UP,T.KeyCode.ARROW_LEFT,T.KeyCode.ARROW_RIGHT],Rh=[T.KeyCode.ENTER,T.KeyCode.TAB,...Al];function Nl(){const i=[];for(const o of Al)i.push({id:Gt.id,binding:o,preconditions:e=>Bn(e),staticParameters:{visible:!1,eventType:P.DeviceInputEventType.Keyboard,keycode:o,isShift:!1}}),i.push({id:Gt.id,binding:o|T.MetaKeys.SHIFT,preconditions:e=>Bn(e),staticParameters:{visible:!1,eventType:P.DeviceInputEventType.Keyboard,keycode:o,isShift:!0}});return i}const xl={id:Xn.id,binding:T.KeyCode.F2,description:"shortcut.sheet.start-editing",group:"4_sheet-edit",preconditions:oe,staticParameters:{visible:!0,eventType:P.DeviceInputEventType.Keyboard,keycode:T.KeyCode.F2}},Dl={id:Ee.id,binding:T.KeyCode.ENTER,description:"shortcut.sheet.toggle-editing",group:"4_sheet-edit",preconditions:i=>Bn(i),staticParameters:{visible:!1,eventType:P.DeviceInputEventType.Keyboard,keycode:T.KeyCode.ENTER}},kl={id:Ee.id,binding:T.KeyCode.TAB,preconditions:i=>Bn(i),staticParameters:{visible:!1,eventType:P.DeviceInputEventType.Keyboard,keycode:T.KeyCode.TAB}},Hl={id:Ee.id,binding:T.KeyCode.ESC,description:"shortcut.sheet.abort-editing",group:"4_sheet-edit",preconditions:i=>Bn(i),staticParameters:{visible:!1,eventType:P.DeviceInputEventType.Keyboard,keycode:T.KeyCode.ESC}},Vl={id:te.BreakLineCommand.id,description:"shortcut.sheet.break-line",group:"4_sheet-edit",preconditions:i=>Ed(i),binding:T.KeyCode.ENTER|T.MetaKeys.ALT},Wl={id:te.DeleteLeftCommand.id,preconditions:i=>wd(i)||Cl(i),binding:T.KeyCode.BACKSPACE},Ll={id:Ee.id,description:"shortcut.sheet.delete-and-start-editing",group:"4_sheet-edit",preconditions:i=>oe(i)&&!Cl(i),binding:T.KeyCode.BACKSPACE,staticParameters:{visible:!0,eventType:P.DeviceInputEventType.Keyboard,keycode:T.KeyCode.BACKSPACE}};function bh(i){return i.startsWith("'")}function Th(i){return i.slice(1)}var Eh=Object.defineProperty,wh=Object.getOwnPropertyDescriptor,Ph=(i,o,e,t)=>{for(var n=t>1?void 0:t?wh(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&Eh(o,e,n),n},Te=(i,o)=>(e,t)=>o(e,t,i);const Ds=-1e3,ks=5,yh=2;let rr=class extends l.Disposable{constructor(o,e,t,n,r,s,a,c,d,u,h,g,p,f,S){super();E(this,"_cursorChange",0);E(this,"_isUnitEditing",!1);E(this,"_workbookSelections");E(this,"_d");this._context=o,this._undoRedoService=t,this._contextService=n,this._instanceSrv=r,this._renderManagerService=s,this._editorBridgeService=a,this._cellEditorManagerService=c,this._textSelectionRenderManager=d,this._lexerTreeBuilder=u,this._textSelectionManagerService=h,this._commandService=g,this._localService=p,this._editorService=f,this._resourceLoaderService=S,this._workbookSelections=e.getWorkbookSelections(this._context.unitId),this.disposeWithMe(this._instanceSrv.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).subscribe(v=>{(v==null?void 0:v.getUnitId())===this._context.unitId?this._d=this._init():(this._disposeCurrent(),this._isUnitEditing&&(this._handleEditorInvisible({visible:!1,eventType:P.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(O.distinctUntilChanged((o,e)=>o.visible===e.visible)).subscribe(o=>{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(),n=this._editorBridgeService.getCurrentEditorId();if(!t||!n||!this._editorService.isSheetEditor(n))return;const r=this._getEditorSkeleton(n);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(O.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:n,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}=n,{vertexAngle:g}=P.convertTextRotation(d);h.updateDocumentId(s),u===l.WrapStrategy.WRAP&&g===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(Ds,Ds)}))}_fitTextSize(o,e,t,n,r=1,s=1){const{startX:a,startY:c,endX:d,endY:u}=o,h=n.documentModel;if(h==null)return;const{actualWidth:g,actualHeight:p}=this._predictingSize(o,e,t,n,r,s),{verticalAlign:f,paddingData:S,fill:v}=n;let C=d-a,I=u-c;if(C<g&&(C=g),I<p)I=p,h.updateDocumentDataMargin(S);else{let R=0;f===l.VerticalAlign.MIDDLE?R=(I-p)/2/s:f===l.VerticalAlign.TOP?R=S.t||0:R=(I-p)/s-(S.b||0),R=R<(S.t||0)?S.t||0:R,h.updateDocumentDataMargin({t:R})}t.calculate(),this._editAreaProcessing(C,I,o,e,v,r,s)}_predictingSize(o,e,t,n,r=1,s=1){const{startX:a,endX:c}=o,{textRotation:d,wrapStrategy:u}=n,h=n.documentModel,{vertexAngle:g}=P.convertTextRotation(d),p=document.body.clientWidth;if(u===l.WrapStrategy.WRAP&&g===0){const{actualWidth:v,actualHeight:C}=t.getActualSize();return{actualWidth:v*r,actualHeight:C*s}}h==null||h.updateDocumentDataPageSize((p-a-e.left)/r),t.calculate();const f=t.getActualSize();let S=c-a;return S<f.actualWidth*r+ks*r&&(S=f.actualWidth*r+ks*r),h==null||h.updateDocumentDataPageSize(S/r),h==null||h.updateDocumentRenderConfig({horizontalAlign:l.HorizontalAlign.UNSPECIFIED,cellValueType:void 0}),{actualWidth:S,actualHeight:f.actualHeight*s}}_editAreaProcessing(o,e,t,n,r,s=1,a=1){var M;const c=this._getEditorObject();if(c==null)return;let{startX:d,startY:u}=t;const{document:h,scene:g,engine:p}=c,f=g.getViewport(te.VIEWPORT_KEY.VIEW_MAIN),S=document.body.clientHeight-u-Number.parseFloat(Ol.sheetFooterBarHeight)-n.top-yh*2,v=document.body.clientWidth-d-n.left;let C=e,I=f==null?void 0:f.getScrollBar();C>S?(C=S,I==null?f&&new P.ScrollBar(f,{enableHorizontal:!1,barSize:8}):f==null||f.resetCanvasSizeAndUpdateScrollBar()):(I=null,(M=f==null?void 0:f.getScrollBar())==null||M.dispose()),o+=(I==null?void 0:I.barSize)||0,o>v&&(o=v),d-=P.FIX_ONE_PIXEL_BLUR_OFFSET,u-=P.FIX_ONE_PIXEL_BLUR_OFFSET,this._addBackground(g,o/s,e/a,r);const{scaleX:R,scaleY:b}=g.getPrecisionScale();g.transformByState({width:o/s,height:e/a,scaleX:s,scaleY:a}),h.resize(o/s,e/a),requestIdleCallback(()=>{p.resizeBySize(P.fixLineWidthByScale(o,R),P.fixLineWidthByScale(C,b))});const y=this._context.engine.getCanvasElement().getBoundingClientRect();d+=y.left,this._cellEditorManagerService.setState({startX:d,startY:u,endX:o+d,endY:C+u,show:!0})}_addBackground(o,e,t,n){const r="_backgroundRectHelperColor_",s=o.getObject(r);s==null&&n==null||(s==null?o.addObjects([new P.Rect(r,{width:e,height:t,fill:n,evented:!1})],te.DOCS_COMPONENT_MAIN_LAYER_INDEX):n==null?s.dispose():(s.setProps({fill:n}),s.transformByState({width:e,height:t})))}_handleEditorVisible(o){var R,b;const{eventType:e,keycode:t}=o;this._cursorChange=e===P.DeviceInputEventType.PointerDown?2:1;const n=this._editorBridgeService.getEditCellState();if(n==null)return;const{position:r,documentLayoutObject:s,canvasOffset:a,scaleX:c,scaleY:d,editorUnitId:u,unitId:h,sheetId:g,isInArrayFormulaRange:p=!1}=n,f=this._getEditorObject();if(f==null)return;this._setOpenForCurrent(h,g);const{document:S,scene:v}=f;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===P.DeviceInputEventType.Keyboard||e===P.DeviceInputEventType.Dblclick&&p){const w=l.Tools.deepClone(C.getSnapshot()),y=this._getEditorViewModel(u);if(y==null)return;this._resetBodyStyle(w.body,!!p),C.reset(w),y.reset(C),S.makeDirty(),(t===T.KeyCode.BACKSPACE||e===P.DeviceInputEventType.Dblclick)&&(I.calculate(),this._editorBridgeService.changeEditorDirty(!0)),this._textSelectionManagerService.replaceTextRanges([{startOffset:0,endOffset:0}])}else if(e===P.DeviceInputEventType.Dblclick){const w=C.getBody().dataStream.length-2||0;(R=v.getViewport(te.VIEWPORT_KEY.VIEW_MAIN))==null||R.scrollTo({y:Number.POSITIVE_INFINITY}),this._textSelectionManagerService.replaceTextRanges([{startOffset:w,endOffset:w}])}(b=this._renderManagerService.getRenderById(h))==null||b.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),n=this._contextService.getContextValue(l.FOCUSING_SHEET),r=(s=this._instanceSrv.getCurrentUniverDocInstance())==null?void 0:s.getUnitId();r&&n&&!t&&this._editorService.isSheetEditor(r)&&this._showEditorByKeyboard(e)}))}_showEditorByKeyboard(o){if(o==null)return;const e=o.event;this._commandService.executeCommand(Ee.id,{visible:!0,eventType:P.DeviceInputEventType.Keyboard,keycode:e.which,unitId:this._context.unitId})}_commandExecutedListener(o){const e=[te.RichTextEditingMutation.id,T.SetEditorResizeOperation.id];o.add(this._commandService.onCommandExecuted(n=>{if(e.includes(n.id)){const r=n.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:g,scaleX:p,scaleY:f}=d;this._fitTextSize(u,g,c,h,p,f)}})),o.add(this._commandService.onCommandExecuted(n=>{n.id===m.ClearSelectionFormatCommand.id&&this._editorBridgeService.refreshEditCellState()}));const t=[Gt.id];o.add(this._commandService.onCommandExecuted(n=>{if(t.includes(n.id)){const r=n.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)}n.id===Xn.id&&(this._cursorChange=2)}))}_setOpenForCurrent(o,e){const t=this._editorService.getAllEditor();for(const[n,r]of t)r.isSheetEditor()&&(r.setOpenForSheetUnitId(o),r.setOpenForSheetSubUnitId(e))}_getEditorObject(){return Tr(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:n,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(),g=this._context.unitId,p=h.getSheetId();if(e===T.KeyCode.ESC){const I=this._workbookSelections.getCurrentSelections();I&&this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:this._context.unit,subUnitId:p,selections:I});return}const f=Mh(h.getCellRaw(s,a)||{},c,this._lexerTreeBuilder,I=>this._resourceLoaderService.saveDoc(I));if(!f){this._moveCursor(e);return}const S={subUnitId:r,unitId:n,workbook:u,worksheet:h,row:s,col:a};g===n&&r!==p&&this._editorBridgeService.isForceKeepVisible()&&await this._commandService.executeCommand(m.SetWorksheetActivateCommand.id,{subUnitId:r,unitId:n});const v=this._editorBridgeService.interceptor.fetchThroughInterceptors(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT)(f,S),C=await this._editorBridgeService.interceptor.fetchThroughInterceptors(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT_ASYNC)(Promise.resolve(v),S);this._commandService.executeCommand(m.SetRangeValuesCommand.id,{subUnitId:r,unitId:n,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||!Rh.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(Ye.id,{keycode:o,direction:e}):this._commandService.executeCommand(we.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})}};rr=Ph([Te(1,l.Inject(m.SheetsSelectionsService)),Te(2,l.IUndoRedoService),Te(3,l.IContextService),Te(4,l.IUniverInstanceService),Te(5,P.IRenderManagerService),Te(6,Ze),Te(7,Ki),Te(8,P.ITextSelectionRenderManager),Te(9,l.Inject(Q.LexerTreeBuilder)),Te(10,l.Inject(te.TextSelectionManagerService)),Te(11,l.ICommandService),Te(12,l.Inject(l.LocaleService)),Te(13,T.IEditorService),Te(14,l.IResourceLoaderService)],rr);function Mh(i,o,e,t){i=l.Tools.deepClone(i);const{documentModel:n}=o;if(n==null)return null;const r=t(n),{body:s}=r;if(s==null)return null;i.t=void 0;const a=s.dataStream;let d=a.substring(a.length-2,a.length)===l.DEFAULT_EMPTY_DOCUMENT_VALUE?a.substring(0,a.length-2):a;if(l.isFormulaString(d)){if(i.f===d)return null;const u=e.checkIfAddBracket(d);for(let h=0;h<u;h++)d+=Q.matchToken.CLOSE_BRACKET;i.f=d,i.v=null,i.p=null}else if(bh(d)){const u=Th(d);i.v=u,i.f=null,i.si=null,i.p=null,i.t=l.CellValueType.FORCE_STRING}else if(Oh(s))s.dataStream===`\r
22
+ `?(i.v="",i.f=null,i.si=null,i.p=null):(i.p=r,i.v=null,i.f=null,i.si=null);else{if((d===i.v||d===""&&i.v==null)&&i.p==null)return null;i.v=d,i.f=null,i.si=null,i.p=null}return i}function Oh(i){const{textRuns:o=[],paragraphs:e=[],customRanges:t,customBlocks:n=[]}=i;return o.some(r=>r.ts&&!l.Tools.isEmptyObject(r.ts))||e.some(r=>r.bullet)||e.length>=2||!!(t!=null&&t.length)||n.length>0}var Ah=Object.defineProperty,Nh=Object.getOwnPropertyDescriptor,xh=(i,o,e,t)=>{for(var n=t>1?void 0:t?Nh(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&Ah(o,e,n),n},Dh=(i,o)=>(e,t)=>o(e,t,i);let bi=class extends l.Disposable{constructor(i,o){super(),this._context=i,this._formatPainterService=o,this._initialize()}_initialize(){this._bindFormatPainterStatus()}_bindFormatPainterStatus(){this.disposeWithMe(l.toDisposable(this._formatPainterService.status$.subscribe(i=>{const o=this._context.scene;o&&(i!==De.OFF?o.setDefaultCursor(P.CURSOR_TYPE.CELL):o.setDefaultCursor(P.CURSOR_TYPE.DEFAULT))})))}};bi=xh([Dh(1,nt)],bi);var kh=Object.defineProperty,Hh=Object.getOwnPropertyDescriptor,Vh=(i,o,e,t)=>{for(var n=t>1?void 0:t?Hh(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&kh(o,e,n),n},pt=(i,o)=>(e,t)=>o(e,t,i);const Wh="__SpreadsheetFreezeRowMainName__",Lh="__SpreadsheetFreezeRowHeaderName__",Uh="__SpreadsheetFreezeColumnMainName__",Bh="__SpreadsheetFreezeColumnHeaderName__",No=2,Fh=.01,fn=l.createInterceptorKey("freezePermissionCheck");exports.HeaderFreezeRenderController=class extends l.Disposable{constructor(e,t,n,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:fn}));this._context=e,this._sheetSkeletonManagerService=t,this._commandService=n,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 A;const n=t!=null?t:this._getFreeze();if(n==null)return null;const r=(A=this._sheetSkeletonManagerService.getCurrent())==null?void 0:A.skeleton,{startRow:s,startColumn:a}=n,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,g=(u==null?void 0:u.height)||0,p=d.scene,{startX:f,startY:S}=c,{rowTotalHeight:v,columnTotalWidth:C,rowHeaderWidthAndMarginLeft:I,columnHeaderHeightAndMarginTop:R}=r,b=h>C+I?h:C+R,w=g>v+R?g:v+R;this._changeToRow=s,this._changeToColumn=a,this._changeToOffsetX=f,this._changeToOffsetY=S;const y=Math.max(p.scaleX,p.scaleY);let M=No/(y<1?1:y);if(e===0){(s===-1||s===0)&&(M=M*2);const N=M;this._rowFreezeHeaderRect=new P.Rect(Lh,{fill:this._freezeNormalHeaderColor,width:I,height:M,left:0,top:S-N,zIndex:3});let x=this._freezeNormalHeaderColor;(s===-1||s===0)&&(x=this._freezeNormalMainColor),this._rowFreezeMainRect=new P.Rect(Wh,{fill:x,width:b*2/y,height:M,left:I,top:S-N,zIndex:3}),p.addObjects([this._rowFreezeHeaderRect,this._rowFreezeMainRect],dt)}else{(a===-1||a===0)&&(M=M*2);const N=M;this._columnFreezeHeaderRect=new P.Rect(Bh,{fill:this._freezeNormalHeaderColor,width:M,height:R,left:f-N,top:0,zIndex:3});let x=this._freezeNormalHeaderColor;(a===-1||a===0)&&(x=this._freezeNormalMainColor),this._columnFreezeMainRect=new P.Rect(Uh,{fill:x,width:M,height:w*2/y,left:f-N,top:R,zIndex:3}),p.addObjects([this._columnFreezeHeaderRect,this._columnFreezeMainRect],dt)}this._eventBinding(e)}_eventBinding(e=0){let t=this._rowFreezeHeaderRect,n=this._rowFreezeMainRect;e===1&&(t=this._columnFreezeHeaderRect,n=this._columnFreezeMainRect);const r=this._getSheetObject();if(r==null)return;const{scene:s}=r;if(this._freezePointerEnterSubs=new O.Subscription,this._freezePointerLeaveSubs=new O.Subscription,this._freezeDownSubs=new O.Subscription,n){const d=n.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(fn)(null,null))return!1;t==null||t.setProps({fill:this._freezeHoverColor,zIndex:4}),s.setCursor(P.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(d);const u=n.onPointerLeave$.subscribeEvent(()=>{t==null||t.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),s.resetCursor()});this._freezePointerLeaveSubs.add(u)}if(t){const d=t.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(fn)(null,null))return!1;t==null||t.setProps({fill:this._freezeHoverColor,zIndex:4}),s.setCursor(P.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,n,e)});a&&this._freezeDownSubs.add(a);const c=n==null?void 0:n.onPointerDown$.subscribeEvent(d=>{this._freezeDown(d,t,n,e)});c&&this._freezeDownSubs.add(c)}_getCurrentLastVisibleRow(){var g,p,f,S;const e=this._getSheetObject();if(e==null)return;const t=(g=this._sheetSkeletonManagerService.getCurrent())==null?void 0:g.skeleton;if(t==null)return;const n=e.scene,r=Math.max(n.scaleX,n.scaleY),s=this._scrollManagerService.getCurrentScrollInfo(),a=(e.engine.height-t.columnHeaderHeight)/r,c=(p=s==null?void 0:s.sheetViewStartRow)!=null?p:0,d=c===0?-((f=s==null?void 0:s.offsetY)!=null?f:0):t.rowHeightAccumulation[c-1]-((S=s==null?void 0:s.offsetY)!=null?S: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 n;const t=(n=this._getSheetObject())==null?void 0:n.scene.getViewports();return t&&t.find(r=>r.isHit(new P.Vector2(e.offsetX,e.offsetY)))||null}_freezeDown(e,t,n,r=0){var p;const s=(p=this._sheetSkeletonManagerService.getCurrent())==null?void 0:p.skeleton;if(s==null)return;const a=this._getSheetObject();if(a==null)return;if(!this.interceptor.fetchThroughInterceptors(fn)(null,null))return!1;const{scene:d}=a;d.setCursor(P.CURSOR_TYPE.GRABBING),d.disableEvent();const u=this._getCurrentLastVisibleRow(),h=u===void 0?Number.POSITIVE_INFINITY:s.rowHeightAccumulation[u];this._activeViewport=null;const g=this._getFreeze();g&&(this._changeToColumn=g.startColumn,this._changeToRow=g.startRow),this._scenePointerMoveSub=d.onPointerMove$.subscribeEvent(f=>{var y,M,A,N;const S=this._getActiveViewport(f),{startX:v,startY:C,row:I,column:R}=Fe(f.offsetX,f.offsetY,d,s,S||void 0,!0);if(!this.interceptor.fetchThroughInterceptors(fn)(null,null))return!1;d.setCursor(P.CURSOR_TYPE.GRABBING);const w=No/Math.max(d.scaleX,d.scaleY);r===0?((y=t.transformByState({top:Math.min(C,h)-w/2}))==null||y.setProps({fill:this._freezeActiveColor}),(M=n.transformByState({top:Math.min(C,h)-w/2}))==null||M.setProps({fill:this._freezeNormalHeaderColor}),this._changeToRow=u===void 0?I:Math.min(I,u),this._changeToOffsetY=Math.min(C,h),this._activeViewport=S):((A=t.transformByState({left:v-w/2}))==null||A.setProps({fill:this._freezeActiveColor}),(N=n.transformByState({left:v-w/2}))==null||N.setProps({fill:this._freezeNormalHeaderColor}),this._changeToColumn=R,this._changeToOffsetX=v,this._activeViewport=S)}),this._scenePointerUpSub=d.onPointerUp$.subscribeEvent(()=>{var x,D;d.resetCursor(),d.enableEvent(),this._clearObserverEvent();const{rowHeaderWidthAndMarginLeft:f,columnHeaderHeightAndMarginTop:S}=s;r===0&&(this._changeToRow===0||this._changeToRow===-1)||r===1&&(this._changeToColumn===0||this._changeToColumn===-1)?(t.setProps({fill:this._freezeNormalHeaderColor}),n.setProps({fill:this._freezeNormalMainColor})):(t==null||t.setProps({fill:this._freezeNormalHeaderColor}),n==null||n.setProps({fill:this._freezeNormalHeaderColor}));const v=No/Math.max(d.scaleX,d.scaleY);r===0?(this._changeToRow===0||this._changeToRow===-1)&&(t.transformByState({top:S-v}),n.transformByState({top:S-v})):(this._changeToColumn===0||this._changeToColumn===-1)&&(t.transformByState({left:f-v}),n.transformByState({left:f-v}));const C=this._scrollManagerService.getCurrentScrollInfo()||{sheetViewStartRow:0,sheetViewStartColumn:0},{sheetViewStartRow:I,sheetViewStartColumn:R}=C;if(R==null||I==null)return;const b=this._context.unit,w=b.getActiveSheet();if(!w)return;const y=(x=w.getConfig())==null?void 0:x.freeze;let M=(y==null?void 0:y.xSplit)||0,A=(y==null?void 0:y.ySplit)||0;const N=(D=this._activeViewport)==null?void 0:D.viewportKey;r===0&&(!N||N===P.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||N===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||N===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||N===P.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP?A=this._changeToRow-(y.startRow-y.ySplit):A=this._changeToRow-I,A=A<0?0:A),r===1&&(!N||N===P.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||N===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||N===P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||N===P.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT?M=this._changeToColumn-(y.startColumn-y.xSplit):M=this._changeToColumn-R,M=M<0?0:M),this._commandService.executeCommand(m.SetFrozenCommand.id,{startRow:A===0?-1:this._changeToRow,startColumn:M===0?-1:this._changeToColumn,ySplit:A,xSplit:M,unitId:b.getUnitId(),subUnitId:w.getSheetId()})})}_getViewports(){const e=this._getSheetObject();if(e==null)return;const{scene:t}=e,n=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT),r=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT),s=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP),a=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM),c=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP),d=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),u=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP),h=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT),g=t.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(!(n==null||r==null||s==null||a==null||c==null||d==null||u==null||h==null||g==null))return{viewMain:d,viewMainLeftTop:u,viewMainLeft:h,viewMainTop:g,viewColumnLeft:n,viewColumnRight:r,viewRowTop:s,viewRowBottom:a,viewLeftTop:c}}_bindViewportScroll(){const e=this._getViewports();if(!e)return;const{viewMain:t,viewRowBottom:n,viewColumnRight:r,viewMainLeft:s,viewMainTop:a}=e;this.disposeWithMe(t.onScrollAfter$.subscribeEvent(c=>{const{scrollX:d,scrollY:u,viewportScrollX:h,viewportScrollY:g}=c;n.isActive&&n.updateScroll({scrollY:u,viewportScrollY:g}),r.isActive&&r.updateScroll({scrollX:d,viewportScrollX:h}),s.isActive&&s.updateScroll({scrollY:u,viewportScrollY:g}),a.isActive&&a.updateScroll({scrollX:d,viewportScrollX:h})}))}_updateViewport(e=-1,t=-1,n=0,r=0,s=3){var A;const a=(A=this._sheetSkeletonManagerService.getCurrent())==null?void 0:A.skeleton;if(a==null)return;const{rowHeaderWidthAndMarginLeft:c,columnHeaderHeightAndMarginTop:d}=a,u=this._getViewports();if(!u)return;const{viewMain:h,viewMainLeftTop:g,viewMainLeft:p,viewMainTop:f,viewColumnLeft:S,viewColumnRight:v,viewRowTop:C,viewRowBottom:I,viewLeftTop:R}=u;v.resizeWhenFreezeChange({left:c,top:0,height:d,right:0}),I.resizeWhenFreezeChange({left:0,top:d,bottom:0,width:c}),R.resizeWhenFreezeChange({left:0,top:0,width:c,height:d});let b=!0,w=!0;g.enable(),(e===-1||e===0)&&(b=!1),(t===-1||t===0)&&(w=!1);const y=a.getNoMergeCellPositionByIndexWithNoHeader(e-n,t-r),M=a.getNoMergeCellPositionByIndexWithNoHeader(e,t);if(g.disable(),f.disable(),p.disable(),C.disable(),S.disable(),g.resetPadding(),f.resetPadding(),p.resetPadding(),C.resetPadding(),S.resetPadding(),b===!1&&w===!1)h.resizeWhenFreezeChange({left:c,top:d,bottom:0,right:0}),h.resetPadding();else if(b===!0&&w===!1){const N=M.startY-y.startY;h.resizeWhenFreezeChange({left:c,top:d+N,bottom:0,right:0}),h.setPadding({startY:y.startY,endY:M.startY,startX:0,endX:0}),s&2&&this._commandService.executeCommand(Be.id,{sheetViewStartRow:0,offsetY:0}),f.resizeWhenFreezeChange({left:c,top:d,height:N,right:0}),f.updateScroll({viewportScrollY:y.startY,x:h.scrollX,viewportScrollX:h.viewportScrollX}),C.resizeWhenFreezeChange({left:0,top:d,width:c,height:N}),C.updateScroll({viewportScrollY:y.startY}),I.resizeWhenFreezeChange({left:0,top:d+N,bottom:0,width:c}),f.enable(),C.enable()}else if(b===!1&&w===!0){const N=M.startX-y.startX;h.resizeWhenFreezeChange({left:c+N,top:d,bottom:0,right:0}),h.setPadding({startX:y.startX,endX:M.startX,startY:0,endY:0}),s&1&&this._commandService.executeCommand(Be.id,{sheetViewStartColumn:0,offsetX:0}),p.resizeWhenFreezeChange({left:c,top:d,width:N,bottom:0,right:0}),p.updateScroll({viewportScrollX:y.startX,y:h.scrollY,viewportScrollY:h.viewportScrollY}),S.resizeWhenFreezeChange({left:c,top:0,width:N,height:d}),S.updateScroll({viewportScrollX:y.startX}),v.resizeWhenFreezeChange({left:c+N,top:0,height:d,right:0}),p.enable(),S.enable()}else{const N=M.startX-y.startX,x=M.startY-y.startY;h.resizeWhenFreezeChange({left:c+N,top:d+x,bottom:0,right:0}),h.setPadding({startY:y.startY,endY:M.startY,startX:y.startX,endX:M.startX}),s&&this._commandService.executeCommand(Be.id,{...s&1?{sheetViewStartColumn:0,offsetX:0}:null,...s&2?{sheetViewStartRow:0,offsetY:0}:null}),p.resizeWhenFreezeChange({left:c,top:d+x,width:N,bottom:0}),p.updateScroll({viewportScrollX:y.startX,y:h.scrollY,viewportScrollY:h.viewportScrollY}),f.resizeWhenFreezeChange({left:c+N,top:d,height:x,right:0}),f.updateScroll({viewportScrollY:y.startY,x:h.scrollX,viewportScrollX:h.viewportScrollX}),g.resizeWhenFreezeChange({left:c,top:d,width:N,height:x}),g.updateScroll({viewportScrollX:y.startX,viewportScrollY:y.startY}),C.resizeWhenFreezeChange({left:0,top:d,width:c,height:x}),C.updateScroll({viewportScrollY:y.startY}),I.resizeWhenFreezeChange({left:0,top:d+x,bottom:0,width:c}),S.resizeWhenFreezeChange({left:c,top:0,width:N,height:d}),S.updateScroll({viewportScrollX:y.startX}),v.resizeWhenFreezeChange({left:c+N,top:0,height:d,right:0}),g.enable(),f.enable(),p.enable(),C.enable(),S.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 n=t.getConfig().freeze,{startRow:r=-1,startColumn:s=-1,ySplit:a=0,xSplit:c=0}=n;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(Fh).toRgbString(),this._freezeActiveColor=e.primaryColor,this._freezeHoverColor=e.grey500}_interceptorCommands(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{const t={redos:[],undos:[]},n=this._getFreeze();if(!n)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},g=m.SetFrozenMutationFactory(this._injector,h);return{undos:[{id:m.SetFrozenMutation.id,params:g}],redos:[{id:m.SetFrozenMutation.id,params:h}]}};if(e.id===m.InsertRowCommand.id){const s=e.params,{range:a,direction:c}=s,d=a.endRow-a.startRow+1;if(a.startRow+1<n.startRow||a.startRow+1===n.startRow&&c===l.Direction.UP){const u={...n,startRow:Math.max(1,n.startRow+d),ySplit:Math.max(1,n.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<n.startColumn||a.startColumn+1===n.startColumn&&c===l.Direction.LEFT){const u={...n,startColumn:Math.max(1,n.startColumn+d),xSplit:Math.max(1,n.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(!n||n.startColumn<=0||u.startColumn>=n.startColumn&&h.startColumn>=n.startColumn||u.startColumn===h.startColumn||u.endColumn<n.startColumn&&h.startColumn<n.startColumn)return t;const g=u.endColumn-u.startColumn+1,p=Math.max(Math.min(n.startColumn,u.endColumn+1)-u.startColumn,0);let f,S;h.startColumn>=n.startColumn?(f=Math.max(n.startColumn-p,1),S=Math.max(n.xSplit-p,1)):(f=n.startColumn+g-p,S=n.xSplit+g-p);const v={...n,startColumn:f,xSplit:S};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(!n||n.startRow<=0||u.startRow>=n.startRow&&h.startRow>=n.startRow||u.startRow===h.startRow||u.endRow<n.startRow&&h.startRow<n.startRow)return t;const g=u.endRow-u.startRow+1,p=Math.max(Math.min(n.startRow,u.endRow+1)-u.startRow,0);let f,S;h.startRow>=n.startRow?(f=Math.max(n.startRow-p,1),S=Math.max(n.ySplit-p,1)):(f=n.startRow+g-p,S=n.ySplit+g-p);const v={...n,startRow:f,ySplit:S};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<n.startColumn){const c=Math.min(n.startColumn,a.endColumn+1)-a.startColumn,d={...n,startColumn:Math.max(1,n.startColumn-c),xSplit:Math.max(1,n.xSplit-c)};return r(d)}if(s.range.rangeType===l.RANGE_TYPE.ROW&&a.startRow<n.startRow){const c=Math.min(n.startRow,a.endRow+1)-a.startRow,d={...n,startRow:Math.max(1,n.startRow-c),ySplit:Math.max(1,n.ySplit-c)};return r(d)}}return t}}))}_commandExecutedListener(){const e=[m.SetFrozenMutation.id,je.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(e.includes(t.id)){const n=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:g=-1,startColumn:p=-1,ySplit:f=0,xSplit:S=0}=u;(!n||n.startRow!==g||n.ySplit!==f)&&(h|=2),(!n||n.startColumn!==p||n.xSplit!==S)&&(h|=1),a.resetScroll===!1&&(h=0),this._refreshFreeze(g,p,f,S,h)}else if(t.id===m.SetWorksheetRowHeightMutation.id){const n=this._getFreeze(),r=n&&t.params.ranges.some(s=>s.startRow<n.startRow);t.params&&r&&this._refreshCurrent()}else if(t.id===m.SetWorksheetColWidthMutation.id){const n=this._getFreeze();t.params&&n&&t.params.ranges.some(r=>r.startColumn<n.startColumn)&&this._refreshCurrent()}else if(t.id===m.SetWorksheetRowAutoHeightMutation.id){const n=t.params,r=this._getFreeze();if(r&&r.startRow>-1&&n.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 n=t.params,r=this._getFreeze(),s=n.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 n=t.params,r=this._getFreeze(),s=n.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(n=>{n.type===P.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale&&this._refreshCurrent()})}_clearObserverEvent(){var t,n;this._getSheetObject()!=null&&((t=this._scenePointerMoveSub)==null||t.unsubscribe(),(n=this._scenePointerUpSub)==null||n.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_clearFreeze(){var t,n,r,s,a,c;(t=this._rowFreezeHeaderRect)==null||t.dispose(),(n=this._rowFreezeMainRect)==null||n.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 Ge(this._context.unit,this._context)}_refreshFreeze(e,t,n,r,s){var c;const a={startRow:e,startColumn:t,ySplit:n,xSplit:r};this._clearFreeze(),this._createFreeze(0,a),this._createFreeze(1,a),this._updateViewport(e,t,n,r,s),(c=this._getSheetObject())==null||c.spreadsheet.makeForceDirty()}};exports.HeaderFreezeRenderController=Vh([pt(1,l.Inject(exports.SheetSkeletonManagerService)),pt(2,l.ICommandService),pt(3,l.Inject(m.SheetsSelectionsService)),pt(4,l.Inject(Ie)),pt(5,l.Inject(l.ThemeService)),pt(6,l.Inject(m.SheetInterceptorService)),pt(7,l.Inject(l.Injector))],exports.HeaderFreezeRenderController);var sr=(i=>(i[i.NORMAL=0]="NORMAL",i[i.HIGHLIGHT=1]="HIGHLIGHT",i))(sr||{});const jh="rgba(0, 0, 0, 0.15)",Qe="rgb(0, 0, 0)",ai="rgb(255, 255, 255, 1)";class Xh extends P.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&&P.Rect.drawWith(e,{width:this._size,height:this._size,radius:this._size,fill:jh});const t=this._size*.5*this._iconRatio,n=Math.PI/180*60,r=t*Math.sin(n),s=t*Math.cos(n);P.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:Qe})}}var zh=Object.defineProperty,Yh=Object.getOwnPropertyDescriptor,Gh=(i,o,e,t)=>{for(var n=t>1?void 0:t?Yh(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&zh(o,e,n),n},ci=(i,o)=>(e,t)=>o(e,t,i);const Zh="__SpreadsheetHeaderMenuSHAPEControllerShape__",Kh="__SpreadsheetHeaderMenuMAINControllerShape__",qh="rgba(0, 0, 0, 0.1)";let lr=class extends l.Disposable{constructor(o,e,t,n,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=n,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 P.Rect(Zh,{fill:qh,evented:!1}),this._hoverMenu=new Xh(Kh,{zIndex:100,visible:!1}),o.addObjects([this._hoverRect,this._hoverMenu],dt),this._initialHover(0),this._initialHover(1),this._initialHoverMenu()}_initialHover(o=0){var h,g,p;const e=this._context.components.get(de.COLUMN),t=this._context.components.get(de.ROW),n=o===0?t:e,r=f=>{var M,A,N;const S=(M=this._sheetSkeletonManagerService.getCurrent())==null?void 0:M.skeleton;if(S==null)return;const{rowHeaderWidth:v,columnHeaderHeight:C}=S,{startX:I,startY:R,endX:b,endY:w,column:y}=Fe(f.offsetX,f.offsetY,this._context.scene,S);if(o===0)(A=this._hoverRect)==null||A.transformByState({width:v,height:w-R,left:0,top:R});else{if(this._currentColumn=y,(N=this._hoverRect)==null||N.transformByState({width:b-I,height:C,left:I,top:0}),this._hoverMenu==null)return;if(b-I<C*2){this._hoverMenu.hide();return}const x=C*.8;this._hoverMenu.transformByState({left:b-C,top:C/2-x/2}),this._hoverMenu.setShapeProps({size:x}),this._hoverMenu.show()}},s=()=>{var f;(f=this._hoverRect)==null||f.show()},a=()=>{var f,S;(f=this._hoverRect)==null||f.hide(),(S=this._hoverMenu)==null||S.hide()};this._headerPointerSubs=new O.Subscription;const c=n.onPointerMove$.subscribeEvent(r),d=n.onPointerEnter$.subscribeEvent(s),u=n.onPointerLeave$.subscribeEvent(a);(h=this._headerPointerSubs)==null||h.add(c),(g=this._headerPointerSubs)==null||g.add(d),(p=this._headerPointerSubs)==null||p.add(u)}_initialHoverMenu(){this._hoverMenu!=null&&(this._hoverMenu.onPointerEnter$.subscribeEvent(()=>{this._hoverMenu!=null&&(this._hoverMenu.setProps({mode:sr.HIGHLIGHT,visible:!0}),this._context.scene.setCursor(P.CURSOR_TYPE.POINTER))}),this._hoverMenu.onPointerLeave$.subscribeEvent(()=>{this._hoverMenu!=null&&(this._hoverMenu.setProps({mode:sr.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,ae.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}]}}};lr=Gh([ci(1,l.Inject(exports.SheetSkeletonManagerService)),ci(2,T.IContextMenuService),ci(3,l.ICommandService),ci(4,l.Inject(m.SheetsSelectionsService))],lr);var Qh=Object.defineProperty,Jh=Object.getOwnPropertyDescriptor,$h=(i,o,e,t)=>{for(var n=t>1?void 0:t?Jh(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&Qh(o,e,n),n},xo=(i,o)=>(e,t)=>o(e,t,i);const em="__SpreadsheetHeaderMoveControllerBackground__",tm="__SpreadsheetHeaderMoveControllerShapeLine__",nm="rgba(0, 0, 0, 0.1)",im="rgb(119, 119, 119)",om=4,Do=l.createInterceptorKey("headerMovePermissionCheck");exports.HeaderMoveRenderController=class extends l.Disposable{constructor(e,t,n,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:Do}));E(this,"_workbookSelections");this._context=e,this._sheetSkeletonManagerService=n,this._commandService=r,this._workbookSelections=t.getWorkbookSelections(this._context.unitId),this._init()}dispose(){var e,t,n,r,s,a,c,d;(e=this._moveHelperBackgroundShape)==null||e.dispose(),(t=this._moveHelperLineShape)==null||t.dispose(),(n=this._headerPointerMoveSubs)==null||n.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),n=this._context.components.get(de.ROW),r=this._context.scene,s=e===l.RANGE_TYPE.ROW?n:t,a=u=>{var I,R;const h=(I=this._sheetSkeletonManagerService.getCurrent())==null?void 0:I.skeleton;if(h==null)return;const g=(R=this._workbookSelections.getCurrentLastSelection())==null?void 0:R.range;if(!g||!this.interceptor.fetchThroughInterceptors(Do)(!1,g))return;const f=this._workbookSelections.getCurrentSelections(),{row:S,column:v}=Fe(u.offsetX,u.offsetY,r,h);if(Pt(f,e===l.RANGE_TYPE.ROW?S:v,e)===!1){r.resetCursor();return}r.setCursor(P.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 L,V;if(h.isStopPropagation)return;const g=(L=this._sheetSkeletonManagerService.getCurrent())==null?void 0:L.skeleton;if(g==null)return;const p=(V=this._workbookSelections.getCurrentLastSelection())==null?void 0:V.range;if(!p||!this.interceptor.fetchThroughInterceptors(Do)(!1,p))return;const{offsetX:S,offsetY:v}=u,C=r.getRelativeToViewportCoord(P.Vector2.FromArray([S,v])),{x:I,y:R}=C;this._startOffsetX=I,this._startOffsetY=R;const{row:b,column:w}=Fe(u.offsetX,u.offsetY,r,g);let y;e===l.RANGE_TYPE.ROW?(this._changeFromRow=b,y=P.ScrollTimerType.Y):(this._changeFromColumn=w,y=P.ScrollTimerType.X);const M=this._workbookSelections.getCurrentSelections(),A=Pt(M,e===l.RANGE_TYPE.ROW?b:w,e);if(A===!1)return;const N=r.getVpScrollXYInfoByPosToVp(P.Vector2.FromArray([this._startOffsetX,this._startOffsetY]));this._newBackgroundAndLine(),r.setCursor(P.CURSOR_TYPE.GRABBING),r.disableEvent();let x=!1,D;const k=()=>{if(x)return;D=P.ScrollTimer.create(r,y);const j=r.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);D.startScroll(I,R,j),this._scrollTimer=D,x=!0};this._scenePointerMoveSub=r.onPointerMove$.subscribeEvent(j=>{k();const{offsetX:Z,offsetY:z}=j,{x:F,y:X}=r.getRelativeToViewportCoord(P.Vector2.FromArray([Z,z]));this._rowColumnMoving(F,X,A,N,e),D.scrolling(F,X,()=>{this._rowColumnMoving(F,X,A,N,e)})}),this._scenePointerUpSub=r.onPointerUp$.subscribeEvent(()=>{var Z,z,F;this._disposeBackgroundAndLine(),r.resetCursor(),r.enableEvent(),this._clearObserverEvent(),(Z=this._scrollTimer)==null||Z.dispose();const j=this._workbookSelections.getCurrentSelections();if(e===l.RANGE_TYPE.ROW){if(this._changeFromRow!==this._changeToRow&&this._changeToRow!==-1){const B=(z=((j==null?void 0:j.filter(Y=>Y.range.rangeType===l.RANGE_TYPE.ROW&&Y.range.startRow<=this._changeFromRow&&this._changeFromRow<=Y.range.endRow))||[])[0])==null?void 0:z.range;B&&this._commandService.executeCommand(m.MoveRowsCommand.id,{fromRange:B,toRange:{...B,startRow:this._changeToRow,endRow:this._changeToRow+B.endRow-B.startRow}})}this._changeToRow=this._changeFromRow=-1}else{if(this._changeFromColumn!==this._changeToColumn&&this._changeToColumn!==-1){const B=(F=((j==null?void 0:j.filter(Y=>Y.range.rangeType===l.RANGE_TYPE.COLUMN&&Y.range.startColumn<=this._changeFromColumn&&this._changeFromColumn<=Y.range.endColumn))||[])[0])==null?void 0:F.range;B&&this._commandService.executeCommand(m.MoveColsCommand.id,{fromRange:B,toRange:{...B,startColumn:this._changeToColumn,endColumn:this._changeToColumn+B.endColumn-B.startColumn}})}this._changeToColumn=this._changeFromColumn=-1}})};this._headerPointerMoveSubs=new O.Subscription,this._headerPointerMoveSubs.add(s.onPointerMove$.subscribeEvent(a)),this._headerPointerLeaveSubs=new O.Subscription,this._headerPointerLeaveSubs.add(s==null?void 0:s.onPointerLeave$.subscribeEvent(c)),this._headerPointerDownSubs=new O.Subscription,this._headerPointerDownSubs.add(s==null?void 0:s.onPointerDown$.subscribeEvent(d))}_rowColumnMoving(e,t,n,r,s){var X,B,Y,W,U,G,q;const a=this._context.scene,c=(X=this._sheetSkeletonManagerService.getCurrent())==null?void 0:X.skeleton;if(c==null)return;const{rowHeaderWidth:d,columnHeaderHeight:u,rowTotalHeight:h,columnTotalWidth:g}=c,p=a.getViewportScrollXY(a.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX:f,scaleY:S}=a.getAncestorScale(),v=c.getCellPositionByOffset(e,t,f,S,p),{row:C,column:I}=v,R=c.getNoMergeCellPositionByIndex(C,I),{startX:b,startY:w,endX:y,endY:M}=R,A=this._sheetSkeletonManagerService.attachRangeWithCoord(n.range);if(A==null)return;const N=Math.max(f,f),{startX:x,endX:D,startY:k,endY:L,startRow:V,startColumn:j,endRow:Z,endColumn:z}=A;s===l.RANGE_TYPE.ROW?(B=this._moveHelperBackgroundShape)==null||B.transformByState({height:L-k,width:g+d,left:0,top:k+(t-this._startOffsetY)/N+p.y-r.y}):(Y=this._moveHelperBackgroundShape)==null||Y.transformByState({height:h+u,width:D-x,left:x+(e-this._startOffsetX)/N+p.x-r.x,top:0}),(W=this._moveHelperBackgroundShape)==null||W.show();const F=om/N;if(s===l.RANGE_TYPE.ROW){let $=0;if(C<=V)$=w-F/2,this._changeToRow=C;else if(C>Z)$=M-F/2,this._changeToRow=C+1;else return;(U=this._moveHelperLineShape)==null||U.transformByState({height:F,width:g,left:d,top:$})}else{let $=0;if(I<=j)$=b-F/2,this._changeToColumn=I;else if(I>z)$=y-F/2,this._changeToColumn=I+1;else return;(G=this._moveHelperLineShape)==null||G.transformByState({height:h,width:F,left:$,top:u})}(q=this._moveHelperLineShape)==null||q.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 P.Rect(em,{fill:nm,evented:!1,zIndex:100}),this._moveHelperLineShape=new P.Rect(tm,{fill:im,evented:!1,zIndex:100}),e.addObjects([this._moveHelperBackgroundShape,this._moveHelperLineShape],dt)}_disposeBackgroundAndLine(){var e,t;(e=this._moveHelperBackgroundShape)==null||e.dispose(),(t=this._moveHelperLineShape)==null||t.dispose()}};exports.HeaderMoveRenderController=$h([xo(1,l.Inject(m.SheetsSelectionsService)),xo(2,l.Inject(exports.SheetSkeletonManagerService)),xo(3,l.ICommandService)],exports.HeaderMoveRenderController);var ar=(i=>(i[i.VERTICAL=0]="VERTICAL",i[i.HORIZONTAL=1]="HORIZONTAL",i))(ar||{});const rm="rgba(120, 120, 120, 0.01)",ko="rgb(68, 71, 70)",Tn=12,cr=4;class Hs extends P.Shape{constructor(e,t){super(e,t);E(this,"_size",Tn);E(this,"_color",ko);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:n}=this,r=0,s=0;const a=this.getScene(),{scaleX:c,scaleY:d}=a.getAncestorScale(),u=Math.max(c,d),h=Tn/u,g=cr/u;this.mode===0?(t=g,r=h-g):(n=g,s=h-g),P.Rect.drawWith(e,{width:this.width,height:this.height,left:0,top:0,fill:rm}),P.Rect.drawWith(e,{width:t,height:n,fill:ko,radius:g}),e.save(),e.transform(1,0,0,1,r,s),P.Rect.drawWith(e,{width:t,height:n,fill:ko,radius:g}),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:Tn,height:this.size}):this.transformByState({width:this.size,height:Tn}),this}}var sm=Object.defineProperty,lm=Object.getOwnPropertyDescriptor,am=(i,o,e,t)=>{for(var n=t>1?void 0:t?lm(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&sm(o,e,n),n},Vs=(i,o)=>(e,t)=>o(e,t,i);const cm="__SpreadsheetHeaderResizeControllerShapeRow__",dm="__SpreadsheetHeaderResizeControllerShapeColumn__",Ws="__SpreadsheetHeaderResizeControllerShapeHelper__",Ls="rgb(199, 199, 199)",um=2,Ho=l.createInterceptorKey("headerResizePermissionCheck");exports.HeaderResizeRenderController=class extends l.Disposable{constructor(e,t,n){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:Ho}));this._context=e,this._sheetSkeletonManagerService=t,this._commandService=n,this._init()}dispose(){var e,t,n;(e=this._rowResizeRect)==null||e.dispose(),this._rowResizeRect=null,(t=this._columnResizeRect)==null||t.dispose(),this._columnResizeRect=null,(n=this._headerPointerSubs)==null||n.unsubscribe(),this._headerPointerSubs=null}_init(){const e=this._context.scene;this._rowResizeRect=new Hs(cm,{visible:!1,mode:ar.HORIZONTAL,zIndex:100}),this._columnResizeRect=new Hs(dm,{visible:!1,mode:ar.VERTICAL,zIndex:100}),e.addObjects([this._rowResizeRect,this._columnResizeRect],dt),this._initialHover(0),this._initialHover(1),this._initialHoverResize(0),this._initialHoverResize(1)}_initialHover(e=0){const t=this._context.components.get(de.COLUMN),n=this._context.components.get(de.ROW),r=this._context.scene,s=e===0?n:t,a=(d,u)=>{var h,g;(h=this._rowResizeRect)==null||h.hide(),(g=this._columnResizeRect)==null||g.hide()},c=(d,u)=>{var N;const h=(N=this._sheetSkeletonManagerService.getCurrent())==null?void 0:N.skeleton;if(h==null||this._rowResizeRect==null||this._columnResizeRect==null)return;const{rowHeaderWidth:g,columnHeaderHeight:p}=h,{startX:f,startY:S,endX:v,endY:C,row:I,column:R}=Fe(d.offsetX,d.offsetY,r,h),b=wn(d.offsetX,d.offsetY,r),{scaleX:w,scaleY:y}=r.getAncestorScale(),M=Math.max(w,y),A=Tn/M;if(e===0){let x=S-A/2;if(b.y<=S+A/2&&b.y>=S)this._currentRow=I-1;else if(b.y>=C-A/2&&b.y<=C)this._currentRow=I,x=C-A/2;else{this._rowResizeRect.hide();return}if(this._currentRow===-1)return;if(!this.interceptor.fetchThroughInterceptors(Ho)(null,{row:this._currentRow}))return!1;const k=g/3;this._rowResizeRect.transformByState({left:g/2-k/2,top:x}),this._rowResizeRect.setShapeProps({size:k}),this._rowResizeRect.show()}else{let x=f-A/2;if(b.x<=f+A/2&&b.x>=f)this._currentColumn=R-1;else if(b.x>=v-A/2&&b.x<=v)this._currentColumn=R,x=v-A/2;else{this._columnResizeRect.hide();return}if(this._currentColumn===-1)return;if(!this.interceptor.fetchThroughInterceptors(Ho)(null,{col:this._currentColumn}))return!1;const k=p*.7;this._columnResizeRect.transformByState({left:x,top:p/2-k/2}),this._columnResizeRect.setShapeProps({size:k}),this._columnResizeRect.show()}};this._headerPointerSubs=new O.Subscription,this._headerPointerSubs.add(s==null?void 0:s.onPointerMove$.subscribeEvent(c)),this._headerPointerSubs.add(s==null?void 0:s.onPointerLeave$.subscribeEvent(a))}_initialHoverResize(e=0){const t=this._context.scene,n=e===0?this._rowResizeRect:this._columnResizeRect;n!=null&&(this.disposeWithMe(l.toDisposable(n.onPointerEnter$.subscribeEvent(()=>{n!=null&&(n.show(),t.setCursor(e===0?P.CURSOR_TYPE.ROW_RESIZE:P.CURSOR_TYPE.COLUMN_RESIZE))}))),this.disposeWithMe(l.toDisposable(n.onPointerLeave$.subscribeEvent(()=>{n!=null&&(n.hide(),t.resetCursor())}))),this.disposeWithMe(l.toDisposable(n.onPointerDown$.subscribeEvent(r=>{var z,F,X,B,Y,W,U;const s=(z=this._sheetSkeletonManagerService.getCurrent())==null?void 0:z.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(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),g=(((X=(F=h==null?void 0:h.getScrollBar())==null?void 0:F.horizonBarRect)==null?void 0:X.height)||0)+10,p=(((Y=(B=h==null?void 0:h.getScrollBar())==null?void 0:B.verticalBarRect)==null?void 0:Y.width)||0)+10,f=wn(r.offsetX,r.offsetY,a),{scaleX:S,scaleY:v}=a.getAncestorScale();this._startOffsetX=f.x,this._startOffsetY=f.y;const C=s.getOffsetByPositionX(this._currentColumn),I=s.getOffsetByPositionY(this._currentRow),R=s.getNoMergeCellPositionByIndex(this._currentRow,this._currentColumn);let b=!1,w=0,y=0;const{columnTotalWidth:M,rowHeaderWidth:A,rowTotalHeight:N,columnHeaderHeight:x}=s,D=u>M+A?u:M+A,k=d>N+x?d:N+x,L=Math.max(S,v),V=cr/L;e===0?this._resizeHelperShape=new P.Rect(Ws,{width:D,height:V,fill:Ls,left:0,top:I-V/2}):this._resizeHelperShape=new P.Rect(Ws,{width:V,height:k,fill:Ls,left:C-V/2,top:0});const j=((W=this._columnResizeRect)==null?void 0:W.left)||0,Z=((U=this._rowResizeRect)==null?void 0:U.top)||0;a.addObject(this._resizeHelperShape,dt),a.disableEvent(),this._scenePointerMoveSub=a.onPointerMove$.subscribeEvent(G=>{var os,rs,ss,ls,as,cs;const q=a.getRelativeToViewportCoord(P.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),$=a.getVpScrollXYInfoByPosToVp(q,h),ne=wn(G.offsetX,G.offsetY,a),{x:he,y:Ce}=ne,{scaleX:Me,scaleY:hn}=a.getAncestorScale(),Ro=Math.max(Me,hn),mt=cr/Ro;w=he-this._startOffsetX-mt/2,y=Ce-this._startOffsetY-mt/2,Math.abs(e===0?y:w)>=um&&(b=!0),e===0?(y>d-g+$.y-R.startY&&(y=d-g+$.y-R.startY),y<-(R.endY-R.startY)+2&&(y=-(R.endY-R.startY)+2),b&&((os=this._resizeHelperShape)==null||os.transformByState({top:I+y}),(rs=this._rowResizeRect)==null||rs.transformByState({top:Z+y+mt/2}),(ss=this._rowResizeRect)==null||ss.show(),a.setCursor(P.CURSOR_TYPE.ROW_RESIZE))):(w>u-p+$.x-R.startX&&(w=u-p+$.x-R.startX),w<-(R.endX-R.startX)+2&&(w=-(R.endX-R.startX)+2),b&&((ls=this._resizeHelperShape)==null||ls.transformByState({left:C+w}),(as=this._columnResizeRect)==null||as.transformByState({left:j+w+mt/2}),(cs=this._columnResizeRect)==null||cs.show(),a.setCursor(P.CURSOR_TYPE.COLUMN_RESIZE)))}),this._scenePointerUpSub=a.onPointerUp$.subscribeEvent(G=>{var $,ne,he;const q=this._context.scene;this._clearObserverEvent(),($=this._resizeHelperShape)==null||$.dispose(),this._resizeHelperShape=null,q.enableEvent(),b&&(q.resetCursor(),(ne=this._rowResizeRect)==null||ne.hide(),(he=this._columnResizeRect)==null||he.hide(),e===0?this._commandService.executeCommand(m.DeltaRowHeightCommand.id,{deltaY:y,anchorRow:this._currentRow}):this._commandService.executeCommand(m.DeltaColumnWidthCommand.id,{deltaX:w,anchorCol:this._currentColumn}))})}))),this.disposeWithMe(l.toDisposable(n.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}};exports.HeaderResizeRenderController=am([Vs(1,l.Inject(exports.SheetSkeletonManagerService)),Vs(2,l.ICommandService)],exports.HeaderResizeRenderController);var dr=(i=>(i[i.ROW=0]="ROW",i[i.COLUMN=1]="COLUMN",i))(dr||{});const En=12,hm=.4;class Us extends P.Shape{constructor(e,t,n){super(e,t);E(this,"_size",En);E(this,"_iconRatio",hm);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(()=>n==null?void 0:n())}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?P.Rect.drawWith(e,{width:this._size,height:this._size,stroke:Qe,fill:ai}):P.Rect.drawWith(e,{width:this._size,height:2*this._size,stroke:Qe,fill:ai}));const t=this._size*.5*this._iconRatio,n=Math.PI/3,r=t*Math.cos(n),s=t*Math.sin(n);if(this._hasPrevious&&P.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:Qe}),this._hasNext){const a=this._hasPrevious?3:1;P.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:Qe})}}_drawOnCol(e){this._hovered&&(!this._hasNext||!this._hasPrevious?P.Rect.drawWith(e,{width:this._size,height:this._size,stroke:Qe,fill:ai}):P.Rect.drawWith(e,{width:2*this._size,height:this._size,stroke:Qe,fill:ai}));const t=this._size*.5*this._iconRatio,n=Math.PI/3,r=t*Math.cos(n),s=t*Math.sin(n);if(this._hasPrevious&&P.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:Qe}),this._hasNext){const a=this._hasPrevious?3:1;P.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:Qe})}}}var mm=Object.defineProperty,gm=Object.getOwnPropertyDescriptor,pm=(i,o,e,t)=>{for(var n=t>1?void 0:t?gm(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&mm(o,e,n),n},Bs=(i,o)=>(e,t)=>o(e,t,i);const Fs="__SpreadsheetHeaderUnhideSHAPEControllerShape__",fm=[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 ur=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(O.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(!fm.includes(e.id)||!e.params||!e.params.unitId||e.params.subUnitId!==o)return;const t=this._workbook,n=t.getSheetBySheetId(e.params.subUnitId);n&&this._update(t,n)}))}_update(o,e){var g;const t=(g=this._sheetSkeletonManagerService.getWorksheetSkeleton(e.getSheetId()))==null?void 0:g.skeleton;if(!t)return;const n=e.getHiddenRows(),r=e.getHiddenCols(),s=this._getSheetObject(),{scene:a}=s,c=e.getRowCount(),d=n.map(p=>{const{startRow:f,endRow:S}=p,v=$o(f,0,a,t),C=f!==0,I=S!==c-1;return new Us(Fs,{type:dr.ROW,hovered:!1,hasPrevious:C,hasNext:I,top:v.startY-(C?En:0),left:v.startX-En},()=>this._commandService.executeCommand(m.SetSpecificRowsVisibleCommand.id,{unitId:o.getUnitId(),subUnitId:e.getSheetId(),ranges:[p]}))}),u=e.getColumnCount(),h=r.map(p=>{const{startColumn:f,endColumn:S}=p,v=$o(0,f,a,t),C=f!==0,I=S!==u-1;return new Us(Fs,{type:dr.COLUMN,hovered:!1,hasPrevious:C,hasNext:I,top:20-En,left:v.startX-(C?En:0)},()=>this._commandService.executeCommand(m.SetSpecificColsVisibleCommand.id,{unitId:o.getUnitId(),subUnitId:e.getSheetId(),ranges:[p]}))});a.addObjects(h,ms),a.addObjects(d,ms),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 Ge(this._workbook,this._context)}};ur=pm([Bs(1,l.Inject(exports.SheetSkeletonManagerService)),Bs(2,l.ICommandService)],ur);var Sm=Object.defineProperty,vm=Object.getOwnPropertyDescriptor,Cm=(i,o,e,t)=>{for(var n=t>1?void 0:t?vm(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&Sm(o,e,n),n},Vo=(i,o)=>(e,t)=>o(e,t,i);let Ti=class extends l.Disposable{constructor(i,o,e,t){super(),this._context=i,this._markSelectionService=o,this._commandService=e,this._sheetSkeletonManagerService=t,this._initListeners()}_initListeners(){this._addRemoveListener(),this._addRefreshListener()}_addRemoveListener(){const i=[Ee.id];this.disposeWithMe(this._commandService.onCommandExecuted(o=>{i.includes(o.id)?this._markSelectionService.removeAllShapes():this._markSelectionService.getShapeMap().forEach((t,n)=>{t.exits.includes(o.id)&&this._markSelectionService.removeShape(n)})}))}_addRefreshListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(i=>{i&&this._markSelectionService.refreshShapes()}))}};Ti=Cm([Vo(1,l.Inject(Mt)),Vo(2,l.ICommandService),Vo(3,l.Inject(exports.SheetSkeletonManagerService))],Ti);function _m(i,o){if(i.length!==o.length)return!1;const e=i.sort((n,r)=>n.id.localeCompare(r.id)),t=o.sort((n,r)=>n.id.localeCompare(r.id));return e.every((n,r)=>{var s,a;return((s=n.subject)==null?void 0:s.userID)===((a=t[r].subject)==null?void 0:a.userID)&&n.role===t[r].role})}function Ul(i,o){return o.some(e=>Im(i,e))}function Im(i,o){const{startRow:e,startColumn:t,endColumn:n,endRow:r}=o,s=i.getMatrixWithMergedCells(e,t,r,n);let a=!1;return s.forValue((c,d,u)=>{if(u&&(c!==e||d!==t)&&i.cellHasValue(u))return a=!0,!1}),a}function Bl(i,o,e,t){const n=[],r=[],s=e.getSheetId();return t.forEach(a=>{const c=Rm(e,a),d={unitId:o,subUnitId:s,cellValue:c.getData()},u=m.SetRangeValuesUndoMutationFactory(i,d);n.push({id:m.SetRangeValuesMutation.id,params:u}),r.push({id:m.SetRangeValuesMutation.id,params:d})}),{undos:n,redos:r}}function Rm(i,o){const{startRow:e,startColumn:t,endColumn:n,endRow:r}=o,s=i.getMatrixWithMergedCells(e,t,r,n,!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 bm(i,o,e,t){const n=e.getActiveViewportByCoord(P.Vector2.FromArray([i,o]));if(!n)return;const{scaleX:r,scaleY:s}=e.getAncestorScale(),a={x:n.viewportScrollX,y:n.viewportScrollY},c=t.getCellPositionByOffset(i,o,r,s,a),d=t.mergeData.find(h=>{const{startColumn:g,startRow:p,endColumn:f,endRow:S}=h;return c.row>=p&&c.column>=g&&c.row<=S&&c.column<=f});return{actualRow:d?d.startRow:c.row,actualCol:d?d.startColumn:c.column,mergeCell:d,row:c.row,col:c.column}}function Tm(i,o,e,t){const n=t.getFreeze();if(!n||n.startRow<=0&&n.startColumn<=0||i>n.startRow&&o>n.startColumn)return e.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(i<=n.startRow&&o<=n.startColumn)return e.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(i<=n.startRow&&o>n.startColumn)return e.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(i>n.startRow&&o<=n.startColumn)return e.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)}function Em(i,o,e,t){const n=js(i.left,i.top,o,e,t),r=js(i.right,i.bottom,o,e,t);return{left:n.x,top:n.y,right:r.x,bottom:r.y}}function js(i,o,e,t,n){const{scaleX:r,scaleY:s}=e.getAncestorScale(),a=e.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!a)return{x:i,y:o};const c=n.getFreeze(),{startColumn:d,startRow:u,xSplit:h,ySplit:g}=c,p=t.getNoMergeCellPositionByIndexWithNoHeader(u-g,d-h),f=t.getNoMergeCellPositionByIndexWithNoHeader(u,d),{rowHeaderWidth:S,columnHeaderHeight:v}=t,C=f.startX-p.startX,I=f.startY-p.startY,{top:R,left:b,viewportScrollX:w,viewportScrollY:y}=a;let M;i>b?M=(i-w)*r:M=(C+S-(b-i))*r;let A;return o>R?A=(o-y)*s:A=(I+v-(R-o))*r,{x:M,y:A}}function Fl(i,o,e,t,n,r){const{scene:s}=i,a=o.getUnitId(),{skeleton:c,sheetId:d}=t,u=bm(n,r,s,c);if(!u)return null;const{row:h,col:g,mergeCell:p,actualCol:f,actualRow:S}=u,v={unitId:a,subUnitId:d,workbook:o,worksheet:e,row:S,col:f};let C;p?C=p:C={startRow:h,endRow:h,startColumn:g,endColumn:g};const I=s.getActiveViewportByCoord(P.Vector2.FromArray([n,r]));if(!I)return;const{scaleX:R,scaleY:b}=s.getAncestorScale(),w={x:I.viewportScrollX,y:I.viewportScrollY};return{position:{startX:(c.getOffsetByPositionX(C.startColumn-1)-w.x)*R,endX:(c.getOffsetByPositionX(C.endColumn)-w.x)*R,startY:(c.getOffsetByPositionY(C.startRow-1)-w.y)*b,endY:(c.getOffsetByPositionY(C.endRow)-w.y)*b},location:v}}const He={type:l.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge",handler:async(i,o)=>{const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),n=i.get(l.IUniverInstanceService),r=i.get(T.IConfirmService),s=i.get(l.LocaleService),a=o.unitId,c=o.subUnitId,d=o.selections,u=m.getAddMergeMutationRangeByType(d,o.value),h=n.getUniverSheetInstance(a).getSheetBySheetId(c),g=[],p=[],f=Ul(h,u);if(f&&!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 S={unitId:a,subUnitId:c,ranges:u},v={unitId:a,subUnitId:c,ranges:u},C=m.RemoveMergeUndoMutationFactory(i,S),I=m.AddMergeUndoMutationFactory(i,v);if(C.ranges.length>0&&g.push({id:m.RemoveWorksheetMergeMutation.id,params:C}),g.push({id:m.AddWorksheetMergeMutation.id,params:v}),p.push({id:m.RemoveWorksheetMergeMutation.id,params:I}),C.ranges.length>0&&p.push({id:m.AddWorksheetMergeMutation.id,params:C}),f){const y=Bl(i,a,h,u);g.unshift(...y.redos),p.push(...y.undos)}const R=m.AddMergeRedoSelectionsOperationFactory(i,o,u);R&&g.push(R);const b=m.AddMergeUndoSelectionsOperationFactory(i,o);return b&&p.push(b),l.sequenceExecute(g,e).result?(t.pushUndoRedo({unitID:a,undoMutations:p,redoMutations:g}),!0):!1}},Qi={type:l.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-all",handler:async i=>{var u;const o=i.get(l.ICommandService),t=(u=i.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:u.map(h=>h.range),n=yr(Ni.MergeAll,t);if(!(n!=null&&n.length))return!1;const s=i.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(He.id,{selections:n,unitId:c,subUnitId:d})}},Ji={type:l.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-vertical",handler:async i=>{var u;const o=i.get(l.ICommandService),t=(u=i.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:u.map(h=>h.range),n=yr(Ni.MergeVertical,t);if(!(n!=null&&n.length))return!1;const s=i.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(He.id,{value:l.Dimension.COLUMNS,selections:n,unitId:c,subUnitId:d})}},$i={type:l.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-horizontal",handler:async i=>{var u;const o=i.get(l.ICommandService),t=(u=i.get(m.SheetsSelectionsService).getCurrentSelections())==null?void 0:u.map(h=>h.range),n=yr(Ni.MergeHorizontal,t);if(!(n!=null&&n.length))return!1;const s=i.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(He.id,{value:l.Dimension.ROWS,selections:n,unitId:c,subUnitId:d})}},Jn={type:l.CommandType.COMMAND,id:"sheet.command.delete-range-move-left-confirm",handler:async i=>{const o=i.get(T.IConfirmService),e=i.get(l.ICommandService),t=i.get(l.LocaleService),n=i.get(m.SheetsSelectionsService),r=i.get(l.IUniverInstanceService),s=n.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=p=>p.endRow-p.startRow;return!c.getMergeData().find(p=>{const f=l.Rectangle.getIntersects(p,d);return f?u(p)>u(f):!1})||await o.confirm({id:Jn.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}},qt={type:l.CommandType.COMMAND,id:"sheet.command.delete-range-move-up-confirm",handler:async i=>{const o=i.get(T.IConfirmService),e=i.get(l.ICommandService),t=i.get(l.LocaleService),n=i.get(m.SheetsSelectionsService),r=i.get(l.IUniverInstanceService),s=n.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 p=d.startRow;p<=d.endRow;p++)if(c.getRowFiltered(p)&&await o.confirm({id:qt.id,title:{title:t.t("filter.confirm.error")},children:{title:t.t("filter.confirm.notAllowedToInsertRange")},confirmText:t.t("button.confirm")}))return!1;const u=p=>p.endColumn-p.startColumn;return!c.getMergeData().find(p=>{const f=l.Rectangle.getIntersects(p,d);return f?u(p)>u(f):!1})||await o.confirm({id:qt.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}},Qt={type:l.CommandType.COMMAND,id:"sheet.command.insert-range-move-down-confirm",handler:async i=>{const o=i.get(T.IConfirmService),e=i.get(l.ICommandService),t=i.get(l.LocaleService),n=i.get(m.SheetsSelectionsService),r=i.get(l.IUniverInstanceService),s=n.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 p=d.startRow;p<=d.endRow;p++)if(c.getRowFiltered(p)&&await o.confirm({id:Qt.id,title:{title:t.t("filter.confirm.error")},children:{title:t.t("filter.confirm.notAllowedToInsertRange")},confirmText:t.t("button.confirm")}))return!1;const u=p=>p.endColumn-p.startColumn;return!c.getMergeData().find(p=>{const f=l.Rectangle.getIntersects(p,d);return f?u(p)>u(f):!1})||await o.confirm({id:Qt.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}},$n={type:l.CommandType.COMMAND,id:"sheet.command.insert-range-move-right-confirm",handler:async i=>{const o=i.get(T.IConfirmService),e=i.get(l.ICommandService),t=i.get(l.LocaleService),n=i.get(m.SheetsSelectionsService),r=i.get(l.IUniverInstanceService),s=n.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=p=>p.endRow-p.startRow;return!c.getMergeData().find(p=>{const f=l.Rectangle.getIntersects(p,d);return f?u(p)>u(f):!1})||await o.confirm({id:$n.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}},eo={id:"sheet.command.refill",type:l.CommandType.COMMAND,handler:async(i,o)=>{const e=i.get(ht);return e.applyType=o.type,!0}},to={id:"sheet.command.remove-row-confirm",type:l.CommandType.COMMAND,handler:async(i,o)=>{var d;const e=i.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 n=i.get(l.ICommandService),r=i.get(l.IUniverInstanceService),s=m.getSheetCommandTarget(r);if(!s)return!1;const{worksheet:a}=s,c=a.getVisibleRows();if(cl(c,[t])){const u=i.get(T.IConfirmService),h=i.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 n.executeCommand(m.RemoveRowCommand.id,{range:t}),!0}},no={id:"sheet.command.remove-col-confirm",type:l.CommandType.COMMAND,handler:async(i,o)=>{var d;const e=i.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 n=i.get(l.ICommandService),r=i.get(l.IUniverInstanceService),s=m.getSheetCommandTarget(r);if(!s)return!1;const{worksheet:a}=s,c=a.getVisibleCols();if(dl(c,[t])){const u=i.get(T.IConfirmService),h=i.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 n.executeCommand(m.RemoveColCommand.id,{range:t}),!0}},io={id:"sheet.command.remove-sheet-confirm",type:l.CommandType.COMMAND,handler:async(i,o)=>{const{subUnitId:e}=o,t=i.get(T.IConfirmService),n=i.get(l.ICommandService),r=i.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 n.executeCommand(m.RemoveSheetCommand.id,{subUnitId:e}),!0):!1}},At=l.createIdentifier("univer.sheetbar-service");class jl 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 O.Subject,this.renameId$=this._renameId$.asObservable(),this._removeId$=new O.Subject,this.removeId$=this._removeId$.asObservable(),this._scroll$=new O.Subject,this.scroll$=this._scroll$.asObservable(),this._scrollX$=new O.Subject,this.scrollX$=this._scrollX$.asObservable(),this._addSheet$=new O.Subject,this.addSheet$=this._addSheet$.asObservable()}setRenameId(e){this._renameId$.next(e)}setRemoveId(e){this._removeId$.next(e)}setScroll(e){this._scroll$.next(e)}setScrollX(e){this._scrollX$.next(e)}setAddSheet(e){this._addSheet$.next(e)}triggerSheetBarMenu(){var e;(e=this._currentHandler)==null||e.handleSheetBarMenu()}registerSheetBarMenuHandler(e){if(this._currentHandler)throw new Error("There is already a context menu handler!");return this._currentHandler=e,l.toDisposable(()=>{this._currentHandler=null})}}const oo={id:"ui-sheet.command.show-menu-list",type:l.CommandType.OPERATION,handler:async i=>(i.get(At).triggerSheetBarMenu(),!0)},ro={id:"sheet.operation.set-activate-cell-edit",type:l.CommandType.OPERATION,handler:(i,o)=>(i.get(Ze).setEditCell(o),!0)},so={id:"sheet.operation.rename-sheet",type:l.CommandType.OPERATION,handler:async(i,o)=>{const e=i.get(At);return o&&e.setRenameId(o.subUnitId),!0}};var Ne=function(){return Ne=Object.assign||function(i){for(var o,e=1,t=arguments.length;e<t;e++){o=arguments[e];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(i[n]=o[n])}return i},Ne.apply(this,arguments)},wm=function(i,o){var e={};for(var t in i)Object.prototype.hasOwnProperty.call(i,t)&&o.indexOf(t)<0&&(e[t]=i[t]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(i);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(i,t[n])&&(e[t[n]]=i[t[n]]);return e},fe=H.forwardRef(function(i,o){var e=i.icon,t=i.id,n=i.className,r=i.extend,s=wm(i,["icon","id","className","extend"]),a="univerjs-icon univerjs-icon-".concat(t," ").concat(n||"").trim(),c=H.useRef("_".concat(Mm()));return Xl(e,"".concat(t),{defIds:e.defIds,idSuffix:c.current},Ne({ref:o,className:a},s),r)});function Xl(i,o,e,t,n){return H.createElement(i.tag,Ne(Ne({key:o},Pm(i,e,n)),t),(ym(i,e).children||[]).map(function(r,s){return Xl(r,"".concat(o,"-").concat(i.tag,"-").concat(s),e,void 0,n)}))}function Pm(i,o,e){var t=Ne({},i.attrs);e!=null&&e.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=e.colorChannel1);var n=o.defIds;return!n||n.length===0||(i.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 ym(i,o){var e,t=o.defIds;return!t||t.length===0?i:i.tag==="defs"&&(!((e=i.children)===null||e===void 0)&&e.length)?Ne(Ne({},i),{children:i.children.map(function(n){return typeof n.attrs.id=="string"&&t&&t.indexOf(n.attrs.id)>-1?Ne(Ne({},n),{attrs:Ne(Ne({},n.attrs),{id:n.attrs.id+o.idSuffix})}):n})}):i}function Mm(){return Math.random().toString(36).substring(2,8)}fe.displayName="UniverIcon";var Om={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"}}]},zl=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"autofill",ref:o,icon:Om}))});zl.displayName="Autofill";var Am={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},ut=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"check-mark-single",ref:o,icon:Am}))});ut.displayName="CheckMarkSingle";var Nm={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"}}]},Yl=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"close-single",ref:o,icon:Nm}))});Yl.displayName="CloseSingle";var xm={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"]},Gl=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"convert-single",ref:o,icon:xm}))});Gl.displayName="ConvertSingle";var Dm={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"}}]},lo=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"delete-single",ref:o,icon:Dm}))});lo.displayName="DeleteSingle";var km={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"}}]}]},hr=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"dropdown-single",ref:o,icon:km}))});hr.displayName="DropdownSingle";var Hm={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"}}]},Gr=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"error-single",ref:o,icon:Hm}))});Gr.displayName="ErrorSingle";var Vm={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"}}]},Zl=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"eyelash-single",ref:o,icon:Vm}))});Zl.displayName="EyelashSingle";var Wm={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"}}]},Kl=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"fx-single",ref:o,icon:Wm}))});Kl.displayName="FxSingle";var Lm={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"}}]},Zr=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"increase-single",ref:o,icon:Lm}))});Zr.displayName="IncreaseSingle";var Um={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"}}]},Kr=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"lock-single",ref:o,icon:Um}))});Kr.displayName="LockSingle";var Bm={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"}}]},Fn=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"more-down-single",ref:o,icon:Bm}))});Fn.displayName="MoreDownSingle";var Fm={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=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"more-single",ref:o,icon:Fm}))});mr.displayName="MoreSingle";var jm={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"}}]}]},ql=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"paint-bucket",ref:o,icon:jm}))});ql.displayName="PaintBucket";var Xm={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"}}]},Ql=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"protect-single",ref:o,icon:Xm}))});Ql.displayName="ProtectSingle";var zm={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"}}]},gr=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"warning-single",ref:o,icon:zm}))});gr.displayName="WarningSingle";var Ym={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"}}]},qr=H.forwardRef(function(i,o){return H.createElement(fe,Object.assign({},i,{id:"write-single",ref:o,icon:Ym}))});qr.displayName="WriteSingle";const Gm=()=>_.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"})]}),Zm=()=>_.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"})]}),Km=()=>_.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"})]}),qm=()=>_.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"})]}),Qm=()=>_.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"})}),Jm=()=>_.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"})]}),$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 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"})]}),eg=()=>_.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"})]}),tg=()=>_.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"})}),Xs=()=>_.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 zs(i){const{type:o=l.BorderStyleTypes.THIN}=i;switch(o){case l.BorderStyleTypes.DASH_DOT:return _.jsx(Gm,{});case l.BorderStyleTypes.DASH_DOT_DOT:return _.jsx(Zm,{});case l.BorderStyleTypes.DASHED:return _.jsx(Km,{});case l.BorderStyleTypes.HAIR:return _.jsx(qm,{});case l.BorderStyleTypes.MEDIUM:return _.jsx(Qm,{});case l.BorderStyleTypes.MEDIUM_DASH_DOT:return _.jsx(Jm,{});case l.BorderStyleTypes.MEDIUM_DASH_DOT_DOT:return _.jsx($m,{});case l.BorderStyleTypes.MEDIUM_DASHED:return _.jsx(eg,{});case l.BorderStyleTypes.THICK:return _.jsx(tg,{});case l.BorderStyleTypes.THIN:return _.jsx(Xs,{});default:return _.jsx(Xs,{})}}const ng="univer-ui-plugin-sheets-border-panel",ig="univer-ui-plugin-sheets-border-panel-position",og="univer-ui-plugin-sheets-border-panel-position-item",rg="univer-ui-plugin-sheets-border-panel-position-item-active",sg="univer-ui-plugin-sheets-border-panel-styles",lg="univer-ui-plugin-sheets-border-panel-board",ag="univer-ui-plugin-sheets-border-panel-button",cg="univer-ui-plugin-sheets-border-panel-more-icon",ke={uiPluginSheetsBorderPanel:ng,uiPluginSheetsBorderPanelPosition:ig,uiPluginSheetsBorderPanelPositionItem:og,uiPluginSheetsBorderPanelPositionItemActive:rg,uiPluginSheetsBorderPanelStyles:sg,uiPluginSheetsBorderPanelBoard:lg,uiPluginSheetsBorderPanelButton:ag,uiPluginSheetsBorderPanelMoreIcon:cg},Qr=`${cn}_BORDER_PANEL_COMPONENT`,Jl=[{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"}],dg=[{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 $l(i){var c;const o=l.useDependency(T.ComponentManager),e=l.useDependency(m.BorderStyleManagerService),{onChange:t,value:n}=i;function r(d,u){t==null||t({...n,[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:ke.uiPluginSheetsBorderPanel,children:[_.jsx("div",{className:ke.uiPluginSheetsBorderPanelPosition,children:Jl.map(d=>_.jsx("div",{className:e.getBorderInfo().type===d.value?`${ke.uiPluginSheetsBorderPanelPositionItemActive} ${ke.uiPluginSheetsBorderPanelPositionItem}`:ke.uiPluginSheetsBorderPanelPositionItem,onClick:u=>{u.stopPropagation(),r(d.value,"type")},children:s(d.icon)},d.value))}),_.jsxs("div",{className:ke.uiPluginSheetsBorderPanelStyles,children:[_.jsx("div",{children:_.jsx(J.Dropdown,{align:{offset:[0,18]},overlay:_.jsx("section",{className:ke.uiPluginSheetsBorderPanelBoard,onClick:a,children:_.jsx(J.ColorPicker,{onChange:d=>r(d,"color")})}),children:_.jsxs("a",{className:ke.uiPluginSheetsBorderPanelButton,onClick:a,children:[_.jsx(ql,{extend:{colorChannel1:(c=n.color)!=null?c:"rgb(var(--primary-color))"}}),_.jsx("span",{className:ke.uiPluginSheetsBorderPanelMoreIcon,children:_.jsx(Fn,{})})]})})}),_.jsx("div",{children:_.jsx(J.Dropdown,{align:{offset:[0,18]},overlay:_.jsx("section",{onClick:a,children:_.jsx(J.Menu,{children:dg.map(d=>_.jsx(J.MenuItem,{eventKey:d.value.toString(),onClick:()=>r(d.value,"style"),children:_.jsx(zs,{type:d.value})},d.value))})}),children:_.jsxs("a",{className:ke.uiPluginSheetsBorderPanelButton,onClick:a,children:[_.jsx(zs,{type:l.BorderStyleTypes.THIN}),_.jsx("span",{className:ke.uiPluginSheetsBorderPanelMoreIcon,children:_.jsx(Fn,{})})]})})})]})]})}const ug="univer-count-bar",hg={countBar:ug},mg=[50,80,100,130,150,170,200,400];function gg(){const i=l.useDependency(l.ICommandService),o=l.useDependency(l.IUniverInstanceService),e=Ot(),t=H.useCallback(()=>{if(!e)return 100;const a=e.getActiveSheet(),c=a&&a.getZoomRatio()*100||100;return Math.round(c)},[e]),[n,r]=H.useState(()=>t());H.useEffect(()=>(r(t()),i.onCommandExecuted(c=>{if(c.id===je.id||c.id===m.SetWorksheetActiveOperation.id){const d=t();r(d)}}).dispose),[i,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;i.executeCommand(tn.id,{unitId:c.getUnitId(),subUnitId:d.getSheetId(),zoomRatio:u})}return _.jsx(J.Slider,{min:Jo[0],value:n,shortcuts:mg,onChange:s})}function pg(i){return _.jsx("section",{className:hg.countBar,children:_.jsx(gg,{})})}const fg="univer-editor-container",Sg="univer-editor-input",Ys={editorContainer:fg,editorInput:Sg},Ei=-1e3,Gs={width:0,height:0,top:Ei,left:Ei},vg=()=>{const[i,o]=H.useState({...Gs}),e=l.useDependency(Ki),t=l.useDependency(T.IEditorService),n=l.useDependency(l.IContextService),r=T.useObservable(()=>n.subscribeContextValue$(T.DISABLE_AUTO_FOCUS_KEY),!1,void 0,[n,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 H.useEffect(()=>{e.state$.subscribe(a=>{if(a==null)return;const{startX:c=Ei,startY:d=Ei,endX:u=0,endY:h=0,show:g=!1}=a;if(!g)o({...Gs});else{o({width:u-c-P.FIX_ONE_PIXEL_BLUR_OFFSET+2,height:h-d-P.FIX_ONE_PIXEL_BLUR_OFFSET+2,left:c+P.FIX_ONE_PIXEL_BLUR_OFFSET,top:d+P.FIX_ONE_PIXEL_BLUR_OFFSET});const p=t.getEditor(l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);if(p==null)return;const{left:f,top:S,width:v,height:C}=p.getBoundingClientRect();e.setRect({left:f,top:S,width:v,height:C})}})},[]),H.useEffect(()=>{r||e.setFocus(!0)},[r,i]),_.jsx("div",{className:Ys.editorContainer,style:{left:i.left,top:i.top,width:i.width,height:i.height},children:_.jsx(T.TextEditor,{id:l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,className:Ys.editorInput,snapshot:s,cancelDefaultResizeListener:!0,isSheetEditor:!0,isSingle:!1})})},Cg="univer-defined-name",_g="univer-defined-name-drop-down",Ig="univer-defined-name-drop-down-disable",Rg="univer-defined-name-overlay",bg="univer-defined-name-overlay-container",Tg="univer-defined-name-overlay-item",Eg="univer-defined-name-overlay-item-name",wg="univer-defined-name-overlay-item-name-for-sheet",Pg="univer-defined-name-overlay-item-formula",yg="univer-defined-name-overlay-manager",Mg="univer-defined-name-overlay-manager-title",Og="univer-defined-name-overlay-manager-content",Ag="univer-defined-name-container",Ng="univer-defined-name-container-scroll",xg="univer-defined-name-container-addButton",Dg="univer-defined-name-container-addButton-text",kg="univer-defined-name-container-item",Hg="univer-defined-name-container-item-name",Vg="univer-defined-name-container-item-name-for-sheet",Wg="univer-defined-name-container-item-formula-or-refString",Lg="univer-defined-name-container-item-update",Ug="univer-defined-name-container-item-delete",Bg="univer-defined-name-container-item-show",Fg="univer-defined-name-input",jg="univer-defined-name-input-validation",Xg="univer-defined-name-input-disable",le={definedName:Cg,definedNameDropDown:_g,definedNameDropDownDisable:Ig,definedNameOverlay:Rg,definedNameOverlayContainer:bg,definedNameOverlayItem:Tg,definedNameOverlayItemName:Eg,definedNameOverlayItemNameForSheet:wg,definedNameOverlayItemFormula:Pg,definedNameOverlayManager:yg,definedNameOverlayManagerTitle:Mg,definedNameOverlayManagerContent:Og,definedNameContainer:Ag,definedNameContainerScroll:Ng,definedNameContainerAddButton:xg,definedNameContainerAddButtonText:Dg,definedNameContainerItem:kg,definedNameContainerItemName:Hg,definedNameContainerItemNameForSheet:Vg,definedNameContainerItemFormulaOrRefString:Wg,definedNameContainerItemUpdate:Lg,definedNameContainerItemDelete:Ug,definedNameContainerItemShow:Bg,definedNameInput:Fg,definedNameInputValidation:jg,definedNameInputDisable:Xg},Jr="DefinedNameContainer",pr="AllDefaultWorkbook",ao={id:"sidebar.operation.defined-name",type:l.CommandType.COMMAND,handler:async(i,o)=>{const e=i.get(T.ISidebarService),t=i.get(T.IEditorService),n=i.get(l.LocaleService),r=i.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:n.t("definedName.featureTitle")},children:{label:Jr},onClose:()=>{t.closeRangePrompt()},width:333});break;case"close":default:e.close();break}return!0}};function zg(i){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 g=t.getDefinedNameMap(s);return g?Array.from(Object.values(g)):[]},[c,d]=H.useState(a());H.useEffect(()=>{const g=t.update$.subscribe(()=>{d(a())});return()=>{g.unsubscribe()}},[]);const u=()=>{o.executeCommand(ao.id,{value:"open"})},h=g=>{t.focusRange(s,g.id)};return _.jsxs("div",{className:le.definedNameOverlay,children:[_.jsx("div",{className:le.definedNameOverlayContainer,children:c.map((g,p)=>_.jsxs("div",{className:le.definedNameOverlayItem,onClick:()=>{h(g)},children:[_.jsx("div",{className:le.definedNameOverlayItemName,title:g.name,children:g.name}),_.jsx("div",{className:le.definedNameOverlayItemFormula,title:g.formulaOrRefString,children:g.formulaOrRefString})]},p))}),_.jsxs("div",{className:le.definedNameOverlayManager,onClick:u,children:[_.jsx("div",{className:le.definedNameOverlayManagerTitle,children:e.t("definedName.managerTitle")}),_.jsx("div",{className:le.definedNameOverlayManagerContent,children:e.t("definedName.managerDescription")})]})]})}function Yg({disable:i}){const[o,e]=H.useState(""),t=l.useDependency(Q.IDefinedNamesService);return H.useEffect(()=>{const n=t.currentRange$.subscribe(()=>{e(t.getCurrentRangeForString())});return()=>{n.unsubscribe()}},[]),_.jsxs("div",{className:le.definedName,children:[_.jsx(J.Input,{className:ue({[le.defineNameInputDisable]:i}),value:o,type:"text",size:"small",affixWrapperStyle:{border:"none",paddingLeft:"6px",paddingRight:"6px",height:"100%"}}),_.jsx(J.Dropdown,{overlay:_.jsx(zg,{}),children:_.jsx("div",{className:ue(le.definedNameDropDown,{[le.definedNameDropDownDisable]:i}),children:_.jsx(Fn,{})})})]})}const Gg="univer-formula-box",Zg="univer-name-ranges",Kg="univer-formula-bar",qg="univer-formula-icon",Qg="univer-formula-icon-disable",Jg="univer-formula-icon-wrapper",$g="univer-icon-container",ep="univer-icon-container-success",tp="univer-formula-active",np="univer-icon-container-error",ip="univer-icon-container-fx",op="univer-formula-input",rp="univer-formula-content",sp="univer-arrow-container",lp="univer-arrow-container-disable",ge={formulaBox:Gg,nameRanges:Zg,formulaBar:Kg,formulaIcon:qg,formulaIconDisable:Qg,formulaIconWrapper:Jg,iconContainer:$g,iconContainerSuccess:ep,formulaActive:tp,iconContainerError:np,iconContainerFx:ip,formulaInput:op,formulaContent:rp,arrowContainer:sp,arrowContainerDisable:lp};function ap(){const[i,o]=H.useState(ge.formulaGrey),[e,t]=H.useState(0),n=l.useDependency(qi),r=l.useDependency(Ze),a=l.useDependency(l.ThemeService).getCurrentTheme().primaryColor,[c,d]=H.useState(!1),u=l.useDependency(l.IUniverInstanceService),h=l.useDependency(m.SheetsSelectionsService),g=l.useDependency(m.WorksheetProtectionRuleModel),p=l.useDependency(m.RangeProtectionRuleModel),f=l.useDependency(l.IPermissionService),S=Ot();function v(M,A){return[new m.WorkbookEditablePermission(M).id,new m.WorksheetSetCellValuePermission(M,A).id,new m.WorksheetEditPermission(M,A).id]}H.useLayoutEffect(()=>{const M=u.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),A=O.merge(g.ruleChange$,p.ruleChange$,h.selectionMoveEnd$,M.activeSheet$).pipe(O.switchMap(()=>{var Z,z;const N=M.getUnitId(),x=M.getActiveSheet();if(!x)return O.EMPTY;const D=x.getSheetId();if(!((Z=h.getCurrentLastSelection())==null?void 0:Z.range))return O.EMPTY;const L=v(N,D),V=(z=h.getCurrentSelections())==null?void 0:z.map(F=>F.range);return p.getSubunitRuleList(N,D).filter(F=>F.ranges.some(X=>V==null?void 0:V.some(B=>l.Rectangle.intersects(X,B)))).forEach(F=>{L.push(new m.RangeProtectionPermissionEditPoint(N,D,F.permissionId).id)}),f.composePermission$(L)})).subscribe(N=>{N&&d(!N.every(x=>x.value))});return()=>{A.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}}};H.useEffect(()=>{const M=r.visible$.subscribe(A=>{o(A.visible?ge.formulaActive:ge.formulaGrey)});return()=>M.unsubscribe()},[r.visible$]);function I(M){if(M==null)return;const A=M.getBoundingClientRect();n.setPosition(A)}function R(){t(e===0?1:0),setTimeout(()=>{n.handleFoldBtnClick(e===1)},150)}function b(){var A;r.isVisible().visible&&r.changeVisible({visible:!1,eventType:P.DeviceInputEventType.Keyboard,keycode:T.KeyCode.ESC,unitId:(A=S==null?void 0:S.getUnitId())!=null?A:""})}function w(){var A;r.isVisible().visible&&r.changeVisible({visible:!1,eventType:P.DeviceInputEventType.PointerDown,unitId:(A=S==null?void 0:S.getUnitId())!=null?A:""})}function y(){n.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(Yg,{disable:c})}),_.jsxs("div",{className:ge.formulaBar,children:[_.jsx("div",{className:ue(ge.formulaIcon,{[ge.formulaIconDisable]:c}),children:_.jsxs("div",{className:ge.formulaIconWrapper,children:[_.jsx("span",{className:ue(ge.iconContainer,ge.iconContainerError,i),onClick:b,children:_.jsx(Yl,{})}),_.jsx("span",{className:ue(ge.iconContainer,ge.iconContainerSuccess,i),onClick:w,children:_.jsx(ut,{})}),_.jsx("span",{className:ue(ge.iconContainer,ge.iconContainerFx),onClick:y,children:_.jsx(Kl,{})})]})}),_.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:M=>M.preventDefault(),className:ge.formulaContent,snapshot:C,isSingle:!1}),_.jsx("div",{className:ue(ge.arrowContainer,{[ge.arrowContainerDisable]:c}),onClick:R,children:e===0?_.jsx(hr,{}):_.jsx(hr,{style:{transform:"rotateZ(180deg)"}})})]})]}),_.jsx(T.ProgressBar,{barColor:a})]})}const cp="univer-operate-container",dp="univer-auto-fill-popup-menu",up="univer-auto-fill-popup-menu-item",hp="univer-auto-fill-popup-menu-item-icon",mp="univer-auto-fill-popup-menu-item-title",gp="univer-auto-fill-popup-menu-item-hide",pp="univer-btn-container",fp="univer-btn-container-expand",_t={operateContainer:cp,autoFillPopupMenu:dp,autoFillPopupMenuItem:up,autoFillPopupMenuItemIcon:hp,autoFillPopupMenuItemTitle:mp,autoFillPopupMenuItemHide:gp,btnContainer:pp,btnContainerExpand:fp},Sp=()=>{const[,i]=H.useState({});return H.useCallback(()=>i(o=>!o),[])},vp=()=>{const i=l.useDependency(l.ICommandService),o=l.useDependency(l.IUniverInstanceService),e=l.useDependency(P.IRenderManagerService),t=l.useDependency(ht),n=l.useDependency(l.LocaleService),[r,s]=H.useState([]),[a,c]=H.useState(!1),[d,u]=H.useState({row:-1,col:-1}),[h,g]=H.useState(re.SERIES),[p,f]=H.useState(!1),S=Ot(),{sheetSkeletonManagerService:v,selectionRenderService:C}=H.useMemo(()=>{if(S){const B=e.getRenderById(S.getUnitId());return{sheetSkeletonManagerService:B==null?void 0:B.with(exports.SheetSkeletonManagerService),selectionRenderService:B==null?void 0:B.with(Se)}}return{sheetSkeletonManagerService:null,selectionRenderService:null}},[S,e]),I=()=>{f(!0)},R=()=>{f(!1)},b=Sp();if(H.useEffect(()=>i.onCommandExecuted((Y,W)=>{Y.id===et.id&&b()}).dispose,[b,i]),H.useEffect(()=>{const B=v&&l.toDisposable(v.currentSkeleton$.subscribe(Y=>{Y&&b()}));return B==null?void 0:B.dispose},[v,b]),H.useEffect(()=>l.toDisposable(t.menu$.subscribe(Y=>{s(Y.map(W=>({...W,index:Y.indexOf(W)})))})).dispose,[t]),H.useEffect(()=>l.toDisposable(t.showMenu$.subscribe(Y=>{const{source:W,target:U}=t.autoFillLocation||{source:null,target:null};if(Y&&W&&U){const G=Math.max(W.rows[W.rows.length-1],U.rows[U.rows.length-1]),q=Math.max(W.cols[W.cols.length-1],U.cols[U.cols.length-1]);u({row:G,col:q})}else u({row:-1,col:-1})})).dispose,[t]),H.useEffect(()=>l.toDisposable(t.applyType$.subscribe(Y=>{g(Y)})).dispose,[t]),H.useEffect(()=>{function B(){c(!1)}return document.addEventListener("wheel",B),()=>{document.removeEventListener("wheel",B)}},[a]),d.col<0||d.row<0)return null;const w=Ge(o,e);if(!w||!C)return null;const{scene:y}=w,M=v==null?void 0:v.getCurrentSkeleton(),A=C.getViewPort(),N=y==null?void 0:y.scaleX,x=y==null?void 0:y.scaleY,D=y==null?void 0:y.getViewportScrollXY(A);if(!N||!y||!N||!x||!D)return null;const k=(M==null?void 0:M.getNoMergeCellPositionByIndex(d.row,d.col).endX)||0,L=(M==null?void 0:M.getNoMergeCellPositionByIndex(d.row,d.col).endY)||0,V=M==null?void 0:M.convertTransformToOffsetX(k,N,D),j=M==null?void 0:M.convertTransformToOffsetY(L,x,D);if(V==null||j==null)return null;const Z=B=>{c(B)},z=B=>{i.executeCommand(eo.id,{type:B.value})},F=a||p,X=r.filter(B=>!B.disable);return _.jsx("div",{onMouseEnter:I,onMouseLeave:R,style:{left:`${V+2}px`,top:`${j+2}px`,position:"absolute"},children:_.jsx(J.Dropdown,{placement:"bottomLeft",trigger:["click"],overlay:_.jsx("ul",{className:_t.autoFillPopupMenu,children:X.map(B=>_.jsxs("li",{onClick:()=>z(B),className:_t.autoFillPopupMenuItem,children:[_.jsx("span",{className:_t.autoFillPopupMenuItemIcon,children:B.value===h&&_.jsx(ut,{style:{color:"rgb(var(--green-700, #409f11))"}})}),_.jsx("span",{className:_t.autoFillPopupMenuItemTitle,children:n.t(B.label)})]},B.index))}),visible:a,onVisibleChange:Z,children:_.jsxs("div",{className:ue(_t.btnContainer,{[_t.btnContainerExpand]:a}),children:[_.jsx(zl,{style:{color:"#35322B"},extend:{colorChannel1:"rgb(var(--green-700, #409f11))"}}),F&&_.jsx(Fn,{style:{color:"#CCCCCC",fontSize:"8px",marginLeft:"8px"}})]})})})},Cp=()=>_.jsx("div",{className:_t.operateContainer,children:_.jsx(vp,{})}),_p="univer-sheet-bar",Ip="univer-sheet-bar-options",Rp="univer-sheet-bar-options-divider",di={sheetBar:_p,sheetBarOptions:Ip,sheetBarOptionsDivider:Rp},bp="univer-sheet-bar-btn",Tp={sheetBarBtn:bp};function pi(i){const{children:o,className:e,style:t,disabled:n=!1,onClick:r,...s}=i,a=c=>{if(n){c.preventDefault();return}r&&r(c)};return _.jsx("button",{className:Tp.sheetBarBtn,style:t,disabled:n,onClick:a,...s,children:o})}const Ep="univer-sheet-bar-menu",wp="univer-sheet-bar-menu-item",Pp="univer-sheet-bar-menu-item-icon",yp="univer-sheet-bar-menu-item-hide",Mp="univer-sheet-bar-menu-item-select",Op="univer-sheet-bar-menu-item-label",ot={sheetBarMenu:Ep,sheetBarMenuItem:wp,sheetBarMenuItemIcon:Pp,sheetBarMenuItemHide:yp,sheetBarMenuItemSelect:Mp,sheetBarMenuItemLabel:Op};function Ap(i){const{style:o}=i,[e,t]=H.useState([]),[n,r]=H.useState(!1),s=l.useDependency(l.IUniverInstanceService),a=l.useDependency(l.ICommandService),c=l.useDependency(At),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))},g=H.useCallback(()=>{if(!u)return;const v=u.getSheets(),C=u.getActiveSheet(),I=v.map((R,b)=>({label:R.getName(),index:`${b}`,sheetId:R.getSheetId(),hidden:R.isSheetHidden()===l.BooleanNumber.TRUE,selected:C===R}));t(I)},[u,d]),p=H.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:g();break}}),[a,g]);function f(){r(!0)}const S=v=>{r(v)};return H.useEffect(()=>{g();const v=new l.DisposableCollection;return v.add(p()),v.add(c.registerSheetBarMenuHandler({handleSheetBarMenu:f})),()=>v.dispose()},[p,c,g,u]),_.jsx(J.Dropdown,{placement:"topLeft",trigger:["click"],overlay:_.jsx("ul",{className:ot.sheetBarMenu,style:{...o},children:e.map(v=>_.jsxs("li",{onClick:()=>h(v),className:v.selected?`${ot.sheetBarMenuItem} ${ot.sheetBarMenuItemSelect}`:v.hidden?`${ot.sheetBarMenuItem} ${ot.sheetBarMenuItemHide}`:ot.sheetBarMenuItem,children:[_.jsx("span",{className:ot.sheetBarMenuItemIcon,children:v.selected?_.jsx(ut,{}):v.hidden?_.jsx(Zl,{}):_.jsx(ut,{})}),_.jsx("div",{className:ot.sheetBarMenuItemLabel,children:v.label})]},v.index))}),visible:n,onVisibleChange:S,children:_.jsx("div",{children:_.jsx(pi,{children:_.jsx(Gl,{})})})})}const Np="univer-slide-tab-bar-container",xp="univer-slide-tab-bar",Dp="univer-slide-tab-item",kp="univer-slide-tab-active",Hp="univer-slide-tab-div",Vp="univer-slide-tab-div-edit",Wp="univer-slide-tab-item-dropdown",Ae={slideTabBarContainer:Np,slideTabBar:xp,slideTabItem:Dp,slideTabActive:kp,slideTabDiv:Hp,slideTabDivEdit:Vp,slideTabItemDropdown:Wp};function Lp(i){const{sheetId:o,label:e,color:t,selected:n}=i,[r,s]=H.useState(n),a=l.useDependency(l.ThemeService);H.useEffect(()=>{s(n)},[n]);const c=d=>{const u=a.getCurrentTheme(),h=u.textColor,g=u.colorWhite;return new l.ColorKit(d).isDark()?g:h};return _.jsx("div",{"data-id":o,className:r?`${Ae.slideTabActive} ${Ae.slideTabItem}`:Ae.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:Ae.slideTabDiv,children:e})},o)}const Up={easeOutStrong(i,o,e,t){return-e*((i=i/t-1)*i*i*i-1)+o},backOut(i,o,e,t,n){return typeof n>"u"&&(n=.7),e*((i=i/t-1)*i*((n+1)*i+n)+1)+o}},Bp={loop:!1,begin:0,end:0,duration:300,delay:0,type:"easeOutStrong",receive(i){},success(i){},cancel(i){},complete(i){}};class Fp{constructor(o){E(this,"_config");E(this,"_status",0);E(this,"_start",0);E(this,"_handle",0);E(this,"_delayHandle",null);this._config={...Bp,...o},this._config.loop&&(this._config.complete=()=>{},this._config.success=()=>{this.request()})}static success(...o){let e=0;return new Promise(t=>{for(let n=0;n<o.length;n++){const r=o[n],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=Up[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 bt{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(n=>t.push(new bt(n,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&&Ft.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"),n=d=>{if(!this.nameCheck()){if(this._editMode=!1,t&&(t.removeAttribute("contentEditable"),t.removeEventListener("focusout",n),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),Ft.keepLastIndex(t))}},0)};t&&(t.setAttribute("contentEditable","true"),t.addEventListener("focusout",n),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,Ft.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 Fp({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=bt.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),n=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,n){const r=getComputedStyle(n).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=bt.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 jp{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 Lt=class Lt{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 jp(this),this._config=o,this._initConfig();let t=0,n=0,r=0;this._downAction=a=>{var y,M,A,N,x,D;if((y=this._activeTabItem)!=null&&y.isEditMode())return;this._longPressTimer&&(clearTimeout(this._longPressTimer),this._longPressTimer=null);const c=(A=(M=a.target)==null?void 0:M.closest(`.${o.slideTabBarItemClassName}`))==null?void 0:A.getAttribute("data-id"),d=this._slideTabItems.findIndex(k=>k.getId()===c);if(c==null||d===-1)return;if(this._activeTabItemIndex!==d){(N=this._activeTabItem)==null||N.removeEventListener("pointermove",this._moveAction),(x=this._activeTabItem)==null||x.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),(D=this._activeTabItem)==null||D.addEventListener("pointerup",this._upAction);const{x:h,width:g}=this._activeTabItem.getBoundingRect(),{x:p,width:f}=this.getBoundingRect(),S=this._slideScrollbar.getScrollX();if(this._leftBoundingLine=this._downActionX-(h-S),this._rightBoundingLine=h-S+g-this._downActionX,this._leftMoveX=h-p-S,this._rightMoveX=p+f-(h+g)+S,a.button===2||this._hasEditItem())return;const{pageX:v,pageY:C}=a,I=Date.now(),R=I-r<=Lt.DoubleClickDelay,b=Math.abs(v-t)<10,w=Math.abs(C-n)<10;R&&b&&w&&this._activeTabItem.setEditor(),t=v,n=C,r=I,this._longPressTimer=setTimeout(()=>{var k,L,V;!u||(k=this._activeTabItem)!=null&&k.isEditMode()||((L=this._activeTabItem)==null||L.enableFixed(),this._startAutoScroll(),u.setPointerCapture(a.pointerId),u.style.cursor="move",(V=this._activeTabItem)==null||V.addEventListener("pointermove",this._moveAction))},Lt.LongPressDelay)},this._upAction=a=>{var d,u,h,g;if((d=this._activeTabItem)!=null&&d.isEditMode()||(this._longPressTimer&&(clearTimeout(this._longPressTimer),this._longPressTimer=null),!this._activeTabItem))return;this._closeAutoScroll(),this._activeTabItem.disableFixed(),this.updateItems();const c=(u=this._activeTabItem)==null?void 0:u.getSlideTabItem();c&&(c.style.cursor="",c.releasePointerCapture(a.pointerId),(h=this._activeTabItem)==null||h.removeEventListener("pointermove",this._moveAction),(g=this._activeTabItem)==null||g.removeEventListener("pointerup",this._upAction),this._config.onSlideEnd&&this._activeTabItemIndex!==this._compareIndex&&(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(n=>{const r=this._slideTabBar.getBoundingClientRect(),s=r.left+r.width,a=n.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(n=>{const r=this._slideTabBar.getBoundingClientRect(),s=r.left,a=n.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,n=this._slideTabBar.getBoundingClientRect(),r=n.left,s=n.left+n.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(),n=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<n&&a+c>n&&(o=a-n-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 n=!0;for(let r=t.length-1;r>=0;r--){const s=t[r];bt.leftLine(this._activeTabItem)<s.getMidLine()?(s.animate().translateX(this._activeTabItem.getWidth()),this._compareIndex=r,n=!1):(s.animate().translateX(0),n&&(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 n=!0;for(let r=0;r<t.length;r++){const s=t[r];bt.rightLine(this._activeTabItem)>s.getMidLine()?(s.animate().translateX(-this._activeTabItem.getWidth()),this._compareIndex=o+r+1,n=!1):(s.animate().translateX(0),n&&(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=bt.make(o,this),this._activeTabItemIndex=this._config.currentIndex,this._activeTabItem=this._slideTabItems[this._activeTabItemIndex]}};E(Lt,"LongPressDelay",500),E(Lt,"DoubleClickDelay",300);let Ft=Lt;function Xp(){const[i,o]=H.useState([]),[e,t]=H.useState(""),[n,r]=H.useState(""),[s,a]=H.useState(!1),[c,d]=H.useState([0,0]),u=H.useRef({slideTabBar:null}),h=H.useRef(null),g=l.useDependency(l.ICommandService),p=l.useDependency(At),f=l.useDependency(l.LocaleService),S=l.useDependency(T.IConfirmService),v=l.useDependency(Ze,l.Quantity.OPTIONAL),C=l.useDependency(m.WorksheetProtectionRuleModel),I=l.useDependency(m.RangeProtectionRuleModel),R=T.useObservable(C.resetOrder$),b=Ot(),w=l.useDependency(l.IPermissionService),y=H.useCallback(()=>{var $;const W=(($=b.getActiveSheet())==null?void 0:$.getSheetId())||"";t(W);const U=b.getSheets(),G=b.getActiveSheet(),q=U.filter(ne=>!ne.isSheetHidden()).map((ne,he)=>{var mt;const Ce=C.getRule(b.getUnitId(),ne.getSheetId()),Me=I.getSubunitRuleList(b.getUnitId(),ne.getSheetId()).length>0,Ro=(Ce==null?void 0:Ce.permissionId)||Me?_.jsxs(_.Fragment,{children:[_.jsx(Kr,{}),_.jsx("span",{children:ne.getName()})]}):_.jsx("span",{children:ne.getName()});return{sheetId:ne.getSheetId(),label:Ro,index:he,selected:G===ne,color:(mt=ne.getTabColor())!=null?mt:void 0}});o(q),t(W)},[I,b,C]);H.useEffect(()=>{y();const W=M(),U=V(),G=[j(),Z(),z()];return()=>{U.dispose(),W.destroy(),G.forEach(q=>q.unsubscribe())}},[R,b]),H.useEffect(()=>{i.length>0&&L()},[i]),H.useEffect(()=>{const W=O.merge(C.ruleChange$,I.ruleChange$).subscribe(()=>{y()});return()=>{W.unsubscribe()}},[C,y]);const M=()=>{const W=new Ft({slideTabBarClassName:Ae.slideTabBar,slideTabBarItemActiveClassName:Ae.slideTabActive,slideTabBarItemClassName:Ae.slideTabItem,slideTabBarSpanEditClassName:Ae.slideTabDivEdit,slideTabBarItemAutoSort:!0,slideTabBarContainer:h.current,currentIndex:0,onChangeName:(U,G)=>{g.executeCommand(m.SetWorksheetNameCommand.id,{subUnitId:U,name:G})},onSlideEnd:async(U,G)=>{await g.executeCommand(m.SetWorksheetOrderCommand.id,{order:G})},onChangeTab:(U,G)=>{g.executeCommand(m.SetWorksheetActiveOperation.id,{subUnitId:G,unitId:b.getUnitId()}).then(()=>{U.button===2&&Y(!0)})},onScroll:U=>{p.setScroll(U)},onNameCheckAlert:U=>A(U)||N(U)||x(U),onNameChangeCheck:()=>{var he,Ce,Me,hn;const U=b.getUnitId(),G=b==null?void 0:b.getActiveSheet();if(!G)throw new Error("No active sheet found");const q=G.getSheetId(),$=C.getRule(U,q),ne=I.getSubunitRuleList(U,q).length>0;return $||ne?(Ce=(he=w.getPermissionPoint(new m.WorkbookManageCollaboratorPermission(U).id))==null?void 0:he.value)!=null?Ce:!1:(hn=(Me=w.getPermissionPoint(new m.WorkbookRenameSheetPermission(U).id))==null?void 0:Me.value)!=null?hn:!1}});return u.current.slideTabBar=W,B(W),W},A=W=>{if(W.trim()===""){const U="sheetNameEmptyAlert";return S.open({id:U,title:{title:f.t("sheetConfig.sheetNameErrorTitle")},children:{title:f.t("sheetConfig.sheetNameCannotIsEmptyError")},cancelText:f.t("button.cancel"),confirmText:f.t("button.confirm"),onClose(){D(),S.close(U)},onConfirm(){D(),S.close(U)}}),!0}return!1},N=W=>{if(!l.nameCharacterCheck(W)){const U="sheetNameSpecCharAlert";return S.open({id:U,title:{title:f.t("sheetConfig.sheetNameErrorTitle")},children:{title:f.t("sheetConfig.sheetNameSpecCharError")},cancelText:f.t("button.cancel"),confirmText:f.t("button.confirm"),onClose(){D(),S.close(U)},onConfirm(){D(),S.close(U)}}),!0}return!1},x=W=>{const U=b.getActiveSheet();if((U==null?void 0:U.getName())===W)return!1;const q=b.checkSheetName(W);if(q){const $="sheetNameRepeatAlert";S.open({id:$,title:{title:f.t("sheetConfig.sheetNameErrorTitle")},children:{title:f.t("sheetConfig.sheetNameAlreadyExistsError")},cancelText:f.t("button.cancel"),confirmText:f.t("button.confirm"),onClose(){S.close($),D()},onConfirm(){S.close($),D()}})}return q},D=()=>{setTimeout(()=>{var U;const W=(U=u.current.slideTabBar)==null?void 0:U.getActiveItem();W&&(W.focus(),W.selectAll())},0)},k=()=>{var W,U;(U=(W=u.current.slideTabBar)==null?void 0:W.getActiveItem())==null||U.setEditor()},L=()=>{var U;const W=i.findIndex(G=>G.selected);(U=u.current.slideTabBar)==null||U.update(W)},V=()=>g.onCommandExecuted(W=>{switch(W.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}}),j=()=>p.scroll$.subscribe(W=>{F(W)}),Z=()=>p.scrollX$.subscribe(W=>{var U;(U=u.current.slideTabBar)==null||U.flipPage(W)}),z=()=>p.renameId$.subscribe(()=>{k()}),F=W=>{const{leftEnd:U,rightEnd:G}=W;let q="";U&&G?q="":U&&!G?q="inset -10px 0px 10px -10px rgba(0, 0, 0, 0.2)":!U&&G?q="inset 10px 0px 10px -10px rgba(0, 0, 0, 0.2)":!U&&!G&&(q="inset 10px 0px 10px -10px rgba(0, 0, 0, 0.2), inset -10px 0px 10px -10px rgba(0, 0, 0, 0.2)"),r(q)},X=W=>{const U=W.calculateActiveTabItemScrollX();if(U){const G=W.getScrollbar();G.scrollX(G.getScrollX()+U)}p.setScroll({leftEnd:W.isLeftEnd(),rightEnd:W.isRightEnd()})},B=W=>{var q;const U=(q=h.current)==null?void 0:q.querySelector(`.${Ae.slideTabBar}`);if(!U)return;new ResizeObserver(()=>{X(W)}).observe(U)},Y=W=>{var U,G,q,$,ne;if(!(v!=null&&v.isForceKeepVisible())){if(W){const{left:he}=(G=(U=h.current)==null?void 0:U.getBoundingClientRect())!=null?G:{},{left:Ce}=(ne=($=(q=u.current.slideTabBar)==null?void 0:q.getActiveItem())==null?void 0:$.getSlideTabItem().getBoundingClientRect())!=null?ne:{};he!==void 0&&Ce!==void 0&&d([Ce-he,0])}a(W)}};return _.jsx(J.Dropdown,{className:Ae.slideTabItemDropdown,visible:s,align:{offset:c},trigger:["contextMenu"],overlay:_.jsx(T.Menu,{menuType:ae.SHEET_BAR,onOptionSelect:W=>{const{label:U,value:G}=W;g.executeCommand(U,{value:G,subUnitId:e}),a(!1)}}),onVisibleChange:Y,children:_.jsx("div",{className:Ae.slideTabBarContainer,ref:h,onDragStart:W=>W.preventDefault(),onContextMenu:W=>W.preventDefault(),children:_.jsx("div",{className:Ae.slideTabBar,style:{boxShadow:n},children:i.map(W=>H.createElement(Lp,{...W,key:W.sheetId,selected:e===W.sheetId}))})})})}const Zs=100,zp=()=>{var S,v;const[i,o]=H.useState(!0),[e,t]=H.useState(!0),n=l.useDependency(l.ICommandService),r=l.useDependency(At),s=l.useDependency(l.IPermissionService),c=Ot().getUnitId(),d=T.useObservable(s.getPermissionPoint$((S=new m.WorkbookEditablePermission(c))==null?void 0:S.id)),u=T.useObservable(s.getPermissionPoint$((v=new m.WorkbookCreateSheetPermission(c))==null?void 0:v.id));H.useEffect(()=>{const C=r.scroll$.subscribe(I=>{h(I)});return()=>{C.unsubscribe()}},[]);const h=C=>{const{leftEnd:I,rightEnd:R}=C;o(I),t(R)},g=()=>{n.executeCommand(m.InsertSheetCommand.id),setTimeout(()=>{r.setAddSheet(0)},0)},p=()=>{r.setScrollX(-Zs)},f=()=>{r.setScrollX(Zs)};return _.jsxs("div",{className:di.sheetBar,children:[_.jsxs("div",{className:di.sheetBarOptions,children:[_.jsx(pi,{onClick:g,disabled:!(u!=null&&u.value&&(d!=null&&d.value)),children:_.jsx(Zr,{})}),_.jsx(Ap,{})]}),_.jsx(Xp,{}),(!i||!e)&&_.jsxs("div",{className:`${di.sheetBarOptions} ${di.sheetBarOptionsDivider}`,children:[_.jsx(pi,{disabled:i,onClick:p,children:_.jsx(mr,{style:{transform:"rotateZ(180deg)"}})}),_.jsx(pi,{disabled:e,onClick:f,children:_.jsx(mr,{})})]})]})};class ea{constructor(){E(this,"_functions",[{func:Q.FUNCTION_NAMES_STATISTICAL.MAX,filter:o=>{var e,t,n,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=(n=o.values.find(s=>s.func===Q.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:n.value)!=null?r:0)>0}},{func:Q.FUNCTION_NAMES_STATISTICAL.MIN,filter:o=>{var e,t,n,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=(n=o.values.find(s=>s.func===Q.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:n.value)!=null?r:0)>0}},{func:Q.FUNCTION_NAMES_MATH.SUM,filter:o=>{var e,t,n,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=(n=o.values.find(s=>s.func===Q.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:n.value)!=null?r:0)>0}},{func:Q.FUNCTION_NAMES_STATISTICAL.COUNTA,filter:o=>{var e,t;return((t=(e=o.values.find(n=>n.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,n,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=(n=o.values.find(s=>s.func===Q.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:n.value)!=null?r:0)>0}},{func:Q.FUNCTION_NAMES_STATISTICAL.AVERAGE,filter:o=>{var e,t,n,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=(n=o.values.find(s=>s.func===Q.FUNCTION_NAMES_STATISTICAL.COUNT))==null?void 0:n.value)!=null?r:0)>0}}]);E(this,"_state$",new O.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(n=>{const r=this._functions.find(s=>s.func===n.func);r&&(r.filter===void 0||r.filter(o))&&e.values.push(n)}),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 co=l.createIdentifier("univer.sheet-status-bar.service"),Yp="univer-status-bar",Gp="univer-single-mode",Zp="univer-status-bar-div",Kp="univer-statistic-list",qp="univer-statistic-list-column",Qp="univer-statistic-item",Jp="univer-statistic-picker",$p="univer-statistic-picker-item",ef="univer-statistic-more",kt={statusBar:Yp,singleMode:Gp,statusBarDiv:Zp,statisticList:Kp,statisticListColumn:qp,statisticItem:Qp,statisticPicker:Jp,statisticPickerItem:$p,statisticMore:ef},tf=[Q.FUNCTION_NAMES_MATH.SUM,Q.FUNCTION_NAMES_STATISTICAL.AVERAGE,Q.FUNCTION_NAMES_STATISTICAL.MIN,Q.FUNCTION_NAMES_STATISTICAL.MAX],Wo={[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"},Lo=i=>{const o=l.useDependency(l.LocaleService),e=l.useDependency(T.IMessageService),t=l.useDependency(T.IClipboardInterfaceService),n=nf(i),r=async()=>{await t.writeText(i.value.toString()),e.show({type:J.MessageType.Success,content:o.t("statusbar.copied")})};return _.jsx(J.Tooltip,{title:o.t("statusbar.clickToCopy"),placement:"top",children:_.jsx("div",{className:kt.statisticItem,onClick:r,children:_.jsx("span",{children:`${o.t((Wo==null?void 0:Wo[i.name])||i.name)}: ${n}`})},i.name)})};function nf(i){const{pattern:o,value:e}=i;return typeof e!="number"?0:e>=1e8?e.toExponential(2):o&&tf.includes(i.name)?$e.format(o,e):e.toLocaleString()}const Ks=800,of=3,rf=()=>{const[i,o]=H.useState(window.innerWidth<Ks),[e,t]=H.useState(!0),n=l.useDependency(co),r=n.getFunctions().map((g,p)=>({name:g.func,value:0,show:!0,disable:!1,pattern:null})),[s,a]=H.useState(r),c=s.find(g=>g.show&&!g.disable),d=i&&c?[c]:s.filter(g=>g.show&&!g.disable);H.useEffect(()=>{const g=n.state$.subscribe(p=>{const f=p==null?void 0:p.values;if(!f||f.length===0)t(!1);else{t(!0);const S=s.map(v=>{var I;const C=f.find(R=>R.func===v.name);return C?(v.value=C.value,v.disable=!1):v.disable=!0,v.pattern=(I=p==null?void 0:p.pattern)!=null?I:null,v});a(S)}});return()=>{g.unsubscribe()}},[n]);const u=l.debounce(()=>{const g=window.innerWidth<Ks;i!==g&&o(g)},100);H.useEffect(()=>(window.addEventListener("resize",u),()=>{window.removeEventListener("resize",u)}),[i]);let h=null;if(d.length>of){const g=[];d.forEach((p,f)=>{f%2===0&&g.push(d.slice(f,f+2))}),h=_.jsxs(_.Fragment,{children:[" ",g.map((p,f)=>_.jsxs("div",{className:kt.statisticListColumn,children:[(p==null?void 0:p[0])&&_.jsx(Lo,{...p==null?void 0:p[0]},p==null?void 0:p[0].name),(p==null?void 0:p[1])&&_.jsx(Lo,{...p==null?void 0:p[1]},p==null?void 0:p[1].name)]},`stat-col-${f}`))," "]})}else h=_.jsx(_.Fragment,{children:d.map(g=>_.jsx(Lo,{...g},g.name))});return e&&_.jsxs("div",{className:ue(kt.statusBar,{[kt.singleMode]:i}),children:[_.jsx("div",{className:ue(kt.statisticList),children:h}),_.jsx("div",{className:kt.statusBarDiv})]})};function sf(){const i=l.useDependency(l.IUniverInstanceService);return T.useObservable(()=>i.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),null,!1,[])?_.jsxs("section",{className:Ol.sheetContainer,"data-range-selector":!0,children:[_.jsx(zp,{}),_.jsx(rf,{}),_.jsx(pg,{})]}):null}function lf(){const i=l.useDependency(l.IUniverInstanceService);return T.useObservable(()=>i.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),null,!1,[])?_.jsx(ap,{}):null}function af(){const i=l.useDependency(l.IUniverInstanceService);return T.useObservable(()=>i.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),null,!1,[])?_.jsxs(_.Fragment,{children:[_.jsx(vg,{}),_.jsx(Cp,{})]}):null}const Uo={width:"100%"},qs=i=>{const{inputId:o,state:e=!1,type:t="range",confirm:n,cancel:r,name:s,formulaOrRefString:a,comment:c="",localSheetId:d=pr,hidden:u=!1,id:h}=i,p=l.useDependency(l.IUniverInstanceService).getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),f=l.useDependency(l.LocaleService),S=l.useDependency(Q.IDefinedNamesService),v=l.useDependency(Q.IFunctionService),C=l.useDependency(Q.LexerTreeBuilder);if(p==null)return;const I=p.getUnitId(),[R,b]=H.useState(s),[w,y]=H.useState(a),[M,A]=H.useState(c),[N,x]=H.useState(d),[D,k]=H.useState(""),[L,V]=H.useState(t),[j,Z]=H.useState(!0),z=[{label:f.t("definedName.scopeWorkbook"),value:pr}],F=G=>!Q.isReferenceStrings(G);H.useEffect(()=>{Z(!0),b(s),A(c),x(d);let G=a;a.substring(0,1)===Q.operatorToken.EQUALS?V("formula"):F(a)?(V("formula"),G=Q.operatorToken.EQUALS+a):V("range"),y(G),k("")},[e]),p.getSheetOrders().forEach(G=>{const q=p.getSheetBySheetId(G);z.push({label:(q==null?void 0:q.getName())||"",value:G})});const X=G=>G.map($=>{var ne;return Q.serializeRangeToRefString({...$,sheetName:((ne=p.getSheetBySheetId($.sheetId))==null?void 0:ne.getName())||""})}).join(","),B=G=>{y(X(G))},Y=G=>{y(G||"")},W=()=>{if(R.length===0){k(f.t("definedName.nameEmpty"));return}if(S.getValueByName(I,R)!=null&&(h==null||h.length===0)){k(f.t("definedName.nameDuplicate"));return}if(!l.Tools.isValidParameter(R)||Q.isReferenceStringWithEffectiveColumn(R)||!l.Tools.isStartValidPosition(R)&&!P.hasCJKText(R.substring(0,1))){k(f.t("definedName.nameInvalid"));return}if(p.getSheetOrders().map(q=>{var $;return(($=p.getSheetBySheetId(q))==null?void 0:$.getName())||""}).includes(R)){k(f.t("definedName.nameSheetConflict"));return}if(w.length===0){k(f.t("definedName.formulaOrRefStringEmpty"));return}if(!j){k(f.t("definedName.formulaOrRefStringInvalid"));return}if(v.hasExecutor(R.toUpperCase())){k(f.t("definedName.nameConflict"));return}n&&n({id:h||"",name:R,formulaOrRefString:C.convertRefersToAbsolute(w,l.AbsoluteRefType.ALL,l.AbsoluteRefType.ALL),comment:M,localSheetId:N})},U=G=>{const q=G;q==="formula"&&w.substring(0,1)!==Q.operatorToken.EQUALS?(y(`${Q.operatorToken.EQUALS}`),y(`${Q.operatorToken.EQUALS}`)):w.substring(0,1)===Q.operatorToken.EQUALS&&(y(""),y("")),V(q)};return _.jsxs("div",{className:le.definedNameInput,style:{display:e?"block":"none"},children:[_.jsx("div",{children:_.jsx(J.Input,{placeholder:f.t("definedName.inputNamePlaceholder"),value:R,allowClear:!0,onChange:b,affixWrapperStyle:Uo})}),_.jsx("div",{children:_.jsxs(J.RadioGroup,{value:L,onChange:U,children:[_.jsx(J.Radio,{value:"range",children:f.t("definedName.ratioRange")}),_.jsx(J.Radio,{value:"formula",children:f.t("definedName.ratioFormula")})]})}),_.jsx("div",{style:{display:L==="range"?"block":"none"},children:_.jsx(T.RangeSelector,{value:w,onValid:Z,onChange:B,placeholder:f.t("definedName.inputRangePlaceholder"),id:l.createInternalEditorID(`${o}-rangeSelector`),width:"99%",openForSheetUnitId:I},`${o}-rangeSelector`)}),_.jsx("div",{style:{display:L==="range"?"none":"block"},children:_.jsx(T.TextEditor,{value:w,onValid:Z,onChange:Y,id:l.createInternalEditorID(`${o}-editor`),placeholder:f.t("definedName.inputFormulaPlaceholder"),openForSheetUnitId:I,onlyInputFormula:!0,style:{width:"99%"},canvasStyle:{fontSize:10}},`${o}-editor`)}),_.jsx("div",{children:_.jsx(J.Select,{style:Uo,value:N,options:z,onChange:x})}),_.jsx("div",{children:_.jsx(J.Input,{affixWrapperStyle:Uo,placeholder:f.t("definedName.inputCommentPlaceholder"),value:M,onChange:A})}),_.jsxs("div",{style:{display:D.length===0?"none":"flex"},className:le.definedNameInputValidation,children:[_.jsx("span",{children:D}),_.jsx(Gr,{})]}),_.jsxs("div",{children:[_.jsx(J.Button,{onClick:()=>{r&&r()},children:f.t("definedName.cancel")}),_.jsx(J.Button,{style:{marginLeft:15},type:"primary",onClick:W,children:f.t("definedName.confirm")})]})]})},ta=()=>{const i=l.useDependency(l.ICommandService),e=l.useDependency(l.IUniverInstanceService).getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),t=l.useDependency(l.LocaleService),n=l.useDependency(Q.IDefinedNamesService),r=l.useDependency(m.SheetsSelectionsService);if(e==null)return;const s=e.getUnitId(),a=()=>{const D=n.getDefinedNameMap(s);return D?Array.from(Object.values(D)):[]},[c,d]=H.useState(!1),[u,h]=H.useState(a()),[g,p]=H.useState(null),[f,S]=H.useState();H.useEffect(()=>{const D=n.update$.subscribe(()=>{h(a())});return()=>{D.unsubscribe()}},[]);const v=D=>{const{name:k,formulaOrRefString:L,comment:V,localSheetId:j,hidden:Z}=D;let z=D.id;if(z==null||z.length===0)z=l.Tools.generateRandomId(10),i.executeCommand(m.InsertDefinedNameCommand.id,{id:z,unitId:s,name:k,formulaOrRefString:L,comment:V,localSheetId:j,hidden:Z});else{const F=n.getValueById(s,z),X={id:z,unitId:s,name:k,formulaOrRefString:L,comment:V,localSheetId:j,hidden:Z};i.executeCommand(m.SetDefinedNameCommand.id,{unitId:s,oldDefinedName:{...F,unitId:s},newDefinedName:X})}d(!1),p(null)},C=D=>{S(D)};function I(){S(null)}function R(D){const k=n.getValueById(s,D);i.executeCommand(m.RemoveDefinedNameCommand.id,{...k,unitId:s}),S(null)}const b=D=>{n.focusRange(s,D.id)},w=()=>{const D=u.length+1,k=t.t("definedName.defaultName")+D;if(n.getValueByName(s,k)==null)return k;let L=D+1;for(;;){const V=t.t("definedName.defaultName")+L;if(n.getValueByName(s,V)==null)return V;L++}},y=()=>{var V;const D=(V=e.getActiveSheet())==null?void 0:V.getName();if(!D)return"";const k=r.getCurrentSelections();return k==null?"":k.map(j=>Q.serializeRangeWithSheet(D,j.range)).join(",")},M=()=>{d(!1),p(null)},A=()=>{d(!0),p(null)},N=D=>{d(!1),p(D)},x=D=>{const k=e.getSheetBySheetId(D);return k==null?"":k.getName()};return _.jsx("div",{className:le.definedNameContainer,children:_.jsxs("div",{className:le.definedNameContainerScroll,children:[_.jsxs("div",{children:[_.jsxs("div",{onClick:A,className:le.definedNameContainerAddButton,style:{display:c?"none":"flex"},children:[_.jsx(Zr,{}),_.jsx("span",{className:le.definedNameContainerAddButtonText,children:t.t("definedName.addButton")})]}),_.jsx(qs,{confirm:v,cancel:M,state:c,inputId:"insertDefinedName",name:w(),formulaOrRefString:y()})]},"insertDefinedName"),u.map((D,k)=>_.jsxs("div",{children:[_.jsxs("div",{onClick:()=>{b(D)},className:le.definedNameContainerItem,style:{display:D.id===g?"none":"flex"},children:[_.jsxs("div",{title:D.comment,children:[_.jsxs("div",{className:le.definedNameContainerItemName,children:[D.name,_.jsx("span",{className:le.definedNameContainerItemNameForSheet,children:D.localSheetId===pr||D.localSheetId==null?"":x(D.localSheetId)})]}),_.jsx("div",{className:le.definedNameContainerItemFormulaOrRefString,children:D.formulaOrRefString})]}),_.jsx(J.Tooltip,{title:t.t("definedName.updateButton"),placement:"top",style:{pointerEvents:"none"},children:_.jsx("div",{className:ue(le.definedNameContainerItemUpdate,le.definedNameContainerItemShow),onClick:()=>{N(D.id)},children:_.jsx(ut,{})})}),_.jsx(J.Tooltip,{title:t.t("definedName.deleteButton"),placement:"top",style:{pointerEvents:"none"},children:_.jsx("div",{className:ue(le.definedNameContainerItemDelete,le.definedNameContainerItemShow),onClick:()=>{C(D.id)},children:_.jsx(lo,{})})})]}),_.jsx(J.Confirm,{visible:f===D.id,onClose:I,onConfirm:()=>{R(D.id)},children:t.t("definedName.deleteConfirmText")}),_.jsx(qs,{confirm:v,cancel:M,state:D.id===g,id:D.id,inputId:D.id+k,name:D.name,formulaOrRefString:D.formulaOrRefString,comment:D.comment,localSheetId:D.localSheetId})]},k))]})})};var cf=Object.defineProperty,df=Object.getOwnPropertyDescriptor,uf=(i,o,e,t)=>{for(var n=t>1?void 0:t?df(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&cf(o,e,n),n};const Qs={name:"",unitId:"",subUnitId:"",permissionId:"",unitType:ie.Unkonwn,id:"",ranges:[]};var Wt=(i=>(i.othersCanView="othersCanView",i.noOneElseCanView="noOneElseCanView",i))(Wt||{});let ve=class{constructor(){E(this,"_rule",Qs);E(this,"_rule$",new O.BehaviorSubject(this._rule));E(this,"_oldRule");E(this,"_rangeErrorMsg$",new O.BehaviorSubject(""));E(this,"rangeErrorMsg$",this._rangeErrorMsg$.asObservable());E(this,"rule$",this._rule$.asObservable())}setRangeErrorMsg(i){this._rangeErrorMsg$.next(i)}get rule(){return this._rule}setRule(i){this._rule={...this._rule,...i},this._rule$.next(this._rule)}resetRule(){this._rule=Qs,this._rule$.next(this._rule)}get oldRule(){return this._oldRule}setOldRule(i){this._oldRule=i}};ve=uf([l.OnLifecycle(l.LifecycleStages.Starting,ve)],ve);class un{constructor(){E(this,"_userList",[]);E(this,"_oldCollaboratorList",[]);E(this,"_selectUserList",[]);E(this,"_allUserList",[]);E(this,"_selectUserList$",new O.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 ei="UNIVER_SHEET_PERMISSION_PANEL",ti="UNIVER_SHEET_PERMISSION_PANEL_FOOTER",na="UNIVER_SHEET_PERMISSION_USER_DIALOG",ia="UNIVER_SHEET_PERMISSION_DIALOG",wi="UNIVER_SHEET_PERMISSION_USER_DIALOG_ID",Pi="UNIVER_SHEET_PERMISSION_DIALOG_ID",ui={[K.Copy]:"Copy",[K.SetCellStyle]:"SetCellStyle",[K.SetCellValue]:"SetCellValue",[K.SetRowStyle]:"SetRowStyle",[K.SetColumnStyle]:"SetColumnStyle",[K.InsertRow]:"InsertRow",[K.InsertColumn]:"InsertColumn",[K.InsertHyperlink]:"InsertHyperlink",[K.DeleteRow]:"DeleteRow",[K.DeleteColumn]:"DeleteColumn",[K.Sort]:"Sort",[K.Filter]:"Filter",[K.PivotTable]:"PivotTable",[K.EditExtraObject]:"EditExtraObject"},hf=[K.Copy,K.SetCellStyle,K.SetCellValue,K.SetRowStyle,K.SetColumnStyle,K.InsertRow,K.InsertColumn,K.InsertHyperlink,K.DeleteRow,K.DeleteColumn,K.Sort,K.Filter,K.PivotTable,K.EditExtraObject,K.View],oa="sheet-permission-menu-icon",mf="sheet-permission-delete-icon",gf="sheet-permission-edit-icon",pf="sheet-permission-check-icon",ra="sheet-permission-lock-icon",Xe={type:l.CommandType.OPERATION,id:"sheet-permission.operation.openPanel",async handler(i,o={}){const e=i.get(T.ISidebarService),t=i.get(ve),n=i.get(un),{showDetail:r=!0,fromSheetBar:s=!1}=o,a={header:{title:"permission.panel.title"},children:{label:ei,showDetail:r,fromSheetBar:s},width:330,footer:{label:ti,showDetail:r},onClose:()=>{t.setRangeErrorMsg(""),t.resetRule(),n.setUserList([]),n.setSelectUserList([]),n.setOldCollaboratorList([]),n.setAllUserList([])}};return e.open(a),!0}},$r={type:l.CommandType.OPERATION,id:"sheet-permission.operation.openDialog",async handler(i,o){const e=i.get(T.IDialogService);return e.close("DESKTOP_FIND_REPLACE_DIALOG"),e.open({id:Pi,title:{title:"permission.dialog.allowedPermissionType"},children:{label:ia},width:393,destroyOnClose:!0,onClose:()=>e.close(Pi)}),!0}},ni={type:l.CommandType.COMMAND,id:"sheet.command.add-worksheet-protection",async handler(i,o){if(!o)return!1;const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),{rule:n,unitId:r}=o,s=n.subUnitId;if(await e.executeCommand(m.AddWorksheetProtectionMutation.id,{unitId:r,rule:n,subUnitId:n.subUnitId})){const c=[{id:m.AddWorksheetProtectionMutation.id,params:{unitId:r,rule:n,subUnitId:n.subUnitId}}],d=[{id:m.DeleteWorksheetProtectionMutation.id,params:{unitId:r,subUnitId:s}}];t.pushUndoRedo({unitID:r,redoMutations:c,undoMutations:d})}return!0}},yt={type:l.CommandType.COMMAND,id:"sheet.command.delete-worksheet-protection",handler(i,o){if(!o)return!1;const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),{rule:n,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:n,subUnitId:s}}];return t.pushUndoRedo({unitID:r,redoMutations:a,undoMutations:c}),!0}},es={type:l.CommandType.COMMAND,id:"sheet.command.set-worksheet-protection",async handler(i,o){if(!o)return!1;const e=i.get(l.ICommandService),t=i.get(ve),n=i.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 g=[{id:m.SetWorksheetProtectionMutation.id,params:{unitId:a,subUnitId:c,newRule:d}}],p=[{id:m.SetWorksheetProtectionMutation.id,params:{unitId:a,subUnitId:c,rule:u}}];n.pushUndoRedo({unitID:a,redoMutations:g,undoMutations:p})}return!0}},uo={type:l.CommandType.COMMAND,id:"sheet.command.delete-worksheet-protection-from-sheet-bar",async handler(i,o){if(!o)return!1;const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),n=i.get(m.WorksheetProtectionRuleModel),s=i.get(l.IUniverInstanceService).getCurrentUnitForType(vi.UNIVER_SHEET),a=s==null?void 0:s.getActiveSheet(),c=s.getUnitId();if(!a)return!1;const d=a.getSheetId(),u=n.getRule(c,d);if(await e.executeCommand(yt.id,{unitId:c,subUnitId:d})){const g=[{id:yt.id,params:{unitId:c,subUnitId:d}}],p=[{id:ni.id,params:{unitId:c,rule:u}}];t.pushUndoRedo({unitID:c,redoMutations:g,undoMutations:p})}return!0}},ho={type:l.CommandType.COMMAND,id:"sheet.command.change-sheet-protection-from-sheet-bar",async handler(i){return await i.get(l.ICommandService).executeCommand("sheet-permission.operation.openDialog"),!0}},mo={type:l.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-toolbar",async handler(i){const o=i.get(l.ICommandService);return i.get(ve).resetRule(),await o.executeCommand(Xe.id,{showDetail:!0}),!0}},go={type:l.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-context-menu",async handler(i){const o=i.get(l.ICommandService);return i.get(ve).resetRule(),await o.executeCommand(Xe.id,{showDetail:!0}),!0}},po={type:l.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-context-menu",async handler(i){return await i.get(l.ICommandService).executeCommand(Xe.id,{showDetail:!1}),!0}},fo={type:l.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-sheet-bar",async handler(i){const o=i.get(l.ICommandService);return i.get(ve).resetRule(),await o.executeCommand(Xe.id,{fromSheetBar:!0,showDetail:!0}),!0}},So={type:l.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-sheet-bar",async handler(i){return await i.get(l.ICommandService).executeCommand(Xe.id,{showDetail:!1}),!0}},ff={type:l.CommandType.COMMAND,id:"sheet.command.add-range-protection",async handler(i,o){if(!o)return!1;const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),n=i.get(m.RangeProtectionRuleModel),{rule:r,permissionId:s}=o,{unitId:a,subUnitId:c,ranges:d,name:u,description:h}=r,g=[{ranges:d,permissionId:s,id:n.createRuleId(a,c),name:u,description:h}];if(await e.executeCommand(m.AddRangeProtectionMutation.id,{unitId:a,subUnitId:c,rules:g})){const f=[{id:m.AddRangeProtectionMutation.id,params:{unitId:a,subUnitId:c,rules:g}}],S=[{id:m.DeleteRangeProtectionMutation.id,params:{unitId:a,subUnitId:c,ruleIds:g.map(v=>v.id)}}];t.pushUndoRedo({unitID:a,redoMutations:f,undoMutations:S})}return!0}},Sf={type:l.CommandType.COMMAND,id:"sheet.command.delete-range-protection",async handler(i,o){if(!o)return!1;const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),{unitId:n,subUnitId:r,rule:s}=o,a={unitId:n,subUnitId:r,ruleIds:[s.id]};return await e.executeCommand(m.DeleteRangeProtectionMutation.id,a)&&t.pushUndoRedo({unitID:n,redoMutations:[{id:m.DeleteRangeProtectionMutation.id,params:a}],undoMutations:[{id:m.AddRangeProtectionMutation.id,params:{unitId:n,subUnitId:r,rules:[s]}}]}),!0}},vf={type:l.CommandType.COMMAND,id:"sheet.command.set-range-protection",async handler(i,o){if(!o)return!1;const e=i.get(l.ICommandService),t=i.get(m.RangeProtectionRuleModel),n=i.get(ve),r=i.get(l.IUndoRedoService),{rule:s,permissionId:a}=o,{unitId:c,subUnitId:d,ranges:u,name:h,description:g}=s;if(s.id){const p={unitId:c,subUnitId:d,ruleId:s.id,rule:{ranges:u,permissionId:a,id:t.createRuleId(c,d),name:h,description:g}};if(await e.executeCommand(m.SetRangeProtectionMutation.id,p)){const S=[{id:m.SetRangeProtectionMutation.id,params:p}],v=[{id:m.SetRangeProtectionMutation.id,params:{unitId:c,subUnitId:d,ruleId:s.id,rule:n.oldRule}}];r.pushUndoRedo({unitID:c,redoMutations:S,undoMutations:v})}}return!0}},vo={type:l.CommandType.COMMAND,id:"sheet.command.delete-range-protection-from-context-menu",async handler(i){var h;const o=i.get(l.ICommandService),e=i.get(l.IUniverInstanceService),t=i.get(l.IUndoRedoService),n=i.get(m.SheetsSelectionsService),r=i.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(yt.id,{unitId:c,subUnitId:d,rule:u});{const g=(h=n.getCurrentLastSelection())==null?void 0:h.range;if(!g)return!1;const S=i.get(m.RangeProtectionRuleModel).getSubunitRuleList(c,d).find(v=>v.ranges.some(C=>l.Rectangle.intersects(C,g)));if(S){const v={unitId:c,subUnitId:d,ruleIds:[S.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:[S]}}]}),!0}else return!1}}},Co={type:l.CommandType.COMMAND,id:"sheet.command.set-range-protection-from-context-menu",async handler(i){var h;const o=i.get(l.ICommandService),e=i.get(l.IUniverInstanceService),t=i.get(m.SheetsSelectionsService),n=i.get(m.WorksheetProtectionRuleModel),r=e.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),s=r.getActiveSheet(),a=r.getUnitId(),c=s.getSheetId(),d=n.getRule(a,c),u=i.get(ve);if(d!=null&&d.permissionId&&(d!=null&&d.name)){const g={...d,unitId:a,subUnitId:c,ranges:[]};return u.setRule(g),u.setOldRule(g),await o.executeCommand(Xe.id,{showDetail:!0}),!0}else{const g=(h=t.getCurrentLastSelection())==null?void 0:h.range;if(!g)return!1;const S=i.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,g))});if(S){const v={...S,unitId:a,subUnitId:c};return u.setRule(v),u.setOldRule(v),await o.executeCommand(Xe.id,{showDetail:!0}),!0}else return!1}}},_o={type:l.CommandType.COMMAND,id:"sheet.command.set-protection",async handler(i,o){if(!o)return!1;const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),n=i.get(ve),r=i.get(m.RangeProtectionRuleModel),{rule:s}=o,{unitId:a,subUnitId:c}=s,d=[],u=[],h=n.oldRule;return(h==null?void 0:h.unitType)===s.unitType?s.unitType===ie.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===ie.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===ie.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===ie.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===ie.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}},sa={id:"sheet.operation.scroll-to-range",type:l.CommandType.OPERATION,handler:(i,o)=>{const e=i.get(l.IUniverInstanceService);return i.get(P.IRenderManagerService).getRenderById(e.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports.SheetsScrollRenderController).scrollToRange(o.range)}},Io="sheet.menu.clear-selection";function Cf(i){return{id:Io,group:T.MenuGroup.CONTEXT_MENU_FORMAT,type:T.MenuItemType.SUBITEMS,icon:"ClearFormat",title:"rightClick.clearSelection",positions:[T.MenuPosition.CONTEXT_MENU,ae.COL_HEADER_CONTEXT_MENU,ae.ROW_HEADER_CONTEXT_MENU],hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function _f(i){return{id:m.ClearSelectionContentCommand.id,type:T.MenuItemType.BUTTON,title:"rightClick.clearContent",positions:[Io],disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function If(i){return{id:m.ClearSelectionFormatCommand.id,type:T.MenuItemType.BUTTON,title:"rightClick.clearFormat",positions:[Io],disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Rf(i){return{id:m.ClearSelectionAllCommand.id,type:T.MenuItemType.BUTTON,title:"rightClick.clearAll",positions:[Io],disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}const ii="sheet.menu.delete";function bf(i){return{id:ii,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.SUBITEMS,title:"rightClick.delete",icon:"Reduce",positions:[T.MenuPosition.CONTEXT_MENU],hidden$:Di(i),disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission]})}}function Tf(i){return{id:no.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,icon:"DeleteColumn",positions:[ii,ae.COL_HEADER_CONTEXT_MENU],title:"rightClick.deleteSelectedColumn",hidden$:pl(i,"col"),disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetDeleteColumnPermission]})}}function Ef(i){return{id:to.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,icon:"DeleteRow",positions:[ii,ae.ROW_HEADER_CONTEXT_MENU],title:"rightClick.deleteSelectedRow",disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetDeleteRowPermission]}),hidden$:pl(i,"row")}}function wf(i){return{id:Jn.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,title:"rightClick.moveLeft",icon:"DeleteCellShiftLeft",positions:[ii],disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:ki(i,"col")}}function Pf(i){return{id:qt.id,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.BUTTON,title:"rightClick.moveUp",icon:"DeleteCellShiftUp",positions:[ii],disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:ki(i,"row")}}const ts="sheet.menu.col-insert";function yf(i){return{id:ts,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",positions:[ae.COL_HEADER_CONTEXT_MENU],hidden$:Di(i),disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetInsertColumnPermission]})}}const ns="sheet.menu.row-insert";function Mf(i){return{id:ns,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",positions:[ae.ROW_HEADER_CONTEXT_MENU],hidden$:Di(i),disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertRowPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}const oi="sheet.menu.cell-insert";function Of(i){return{id:oi,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.SUBITEMS,title:"rightClick.insert",icon:"Insert",positions:[T.MenuPosition.CONTEXT_MENU],hidden$:Di(i),disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertColumnPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}}function Af(i){return{id:m.InsertRowBeforeCommand.id,type:T.MenuItemType.BUTTON,title:"rightClick.insertRowBefore",icon:"InsertRowAbove",positions:[ns,oi],disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertRowPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:gl(i,"row")}}function Nf(i){return{id:m.InsertRowAfterCommand.id,type:T.MenuItemType.BUTTON,positions:[ns],title:"rightClick.insertRow",icon:"InsertRowBelow",disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertRowPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:ml(i,"row")}}function xf(i){return{id:m.InsertColBeforeCommand.id,type:T.MenuItemType.BUTTON,positions:[ts,oi],title:"rightClick.insertColumnBefore",icon:"LeftInsertColumn",disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertColumnPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:gl(i,"col")}}function Df(i){return{id:m.InsertColAfterCommand.id,type:T.MenuItemType.BUTTON,positions:[ts],title:"rightClick.insertColumn",icon:"RightInsertColumn",disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetInsertColumnPermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:ml(i,"col")}}function kf(i){return{id:$n.id,type:T.MenuItemType.BUTTON,title:"rightClick.moveRight",icon:"InsertCellShiftRight",positions:[oi],disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:ki(i,"col")}}function Hf(i){return{id:Qt.id,type:T.MenuItemType.BUTTON,title:"rightClick.moveDown",icon:"InsertCellDown",positions:[oi],disabled$:ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),hidden$:ki(i,"row")}}function Vf(i){const o=i.get(l.IUniverInstanceService),e=i.get(l.ICommandService),t=new O.Observable(r=>{const s=e.onCommandExecuted(a=>{const c=a.id;(c===m.RemoveSheetMutation.id||c===m.InsertSheetMutation.id||c===m.SetWorksheetHideMutation.id)&&yi(o,r)});return yi(o,r),s.dispose}),n=Jt(i,[m.WorkbookEditablePermission,m.WorkbookDeleteSheetPermission]);return{id:io.id,type:T.MenuItemType.BUTTON,positions:[ae.SHEET_BAR],title:"sheetConfig.delete",disabled$:O.combineLatest([t,n]).pipe(O.map(([r,s])=>r||s)),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Wf(i){return{id:m.CopySheetCommand.id,type:T.MenuItemType.BUTTON,positions:[ae.SHEET_BAR],title:"sheetConfig.copy",disabled$:Jt(i,[m.WorkbookEditablePermission,m.WorkbookCreateSheetPermission]),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Lf(i){return{id:so.id,type:T.MenuItemType.BUTTON,positions:[ae.SHEET_BAR],title:"sheetConfig.rename",disabled$:Jt(i,[m.WorkbookEditablePermission,m.WorkbookRenameSheetPermission]),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Uf(i){return{id:m.SetTabColorCommand.id,title:"sheetConfig.changeColor",positions:[ae.SHEET_BAR],type:T.MenuItemType.SELECTOR,selections:[{label:{name:Zn,hoverable:!1}}],hidden$:Jt(i,[m.WorkbookEditablePermission])}}function Bf(i){const o=i.get(l.IUniverInstanceService),e=i.get(l.ICommandService);return{id:m.SetWorksheetHideCommand.id,type:T.MenuItemType.BUTTON,positions:[ae.SHEET_BAR],title:"sheetConfig.hide",disabled$:new O.Observable(t=>{const n=e.onCommandExecuted(r=>{const s=r.id;(s===m.RemoveSheetMutation.id||s===m.InsertSheetMutation.id||s===m.SetWorksheetHideMutation.id)&&yi(o,t)});return yi(o,t),n.dispose}).pipe(O.combineLatestWith(Jt(i,[m.WorkbookEditablePermission,m.WorkbookHideSheetPermission])),O.map(([t,n])=>t||n)),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Ff(i){const o=i.get(l.IUniverInstanceService),e=i.get(l.ICommandService);return{id:oo.id,type:T.MenuItemType.BUTTON,positions:[ae.SHEET_BAR],title:"sheetConfig.unhide",disabled$:new O.Observable(t=>{function n(){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)&&n()});return n(),r.dispose}).pipe(O.combineLatestWith(Jt(i,[m.WorkbookEditablePermission,m.WorkbookHideSheetPermission])),O.map(([t,n])=>t||n)),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function yi(i,o){const e=i.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getWorksheets(),t=Array.from(e.values()).filter(n=>n.getConfig().hidden===l.BooleanNumber.FALSE);o.next(t.length===1)}const la={id:m.SetRowHiddenCommand.id,preconditions:i=>oe(i),binding:T.KeyCode.Digit9|T.MetaKeys.CTRL_COMMAND},aa={id:m.SetColHiddenCommand.id,preconditions:i=>oe(i),binding:T.KeyCode.Digit0|T.MetaKeys.CTRL_COMMAND|T.MetaKeys.SHIFT},ca={id:we.id,description:"shortcut.sheet.select-below-cell",group:"3_sheet-view",binding:T.KeyCode.ARROW_DOWN,priority:100,preconditions:oe,staticParameters:{direction:l.Direction.DOWN}},da={id:we.id,description:"shortcut.sheet.select-up-cell",group:"3_sheet-view",binding:T.KeyCode.ARROW_UP,priority:100,preconditions:oe,staticParameters:{direction:l.Direction.UP}},ua={id:we.id,description:"shortcut.sheet.select-left-cell",group:"3_sheet-view",binding:T.KeyCode.ARROW_LEFT,priority:100,preconditions:vl,staticParameters:{direction:l.Direction.LEFT}},ha={id:we.id,description:"shortcut.sheet.select-right-cell",group:"3_sheet-view",binding:T.KeyCode.ARROW_RIGHT,priority:100,preconditions:vl,staticParameters:{direction:l.Direction.RIGHT}},ma={id:Ye.id,description:"shortcut.sheet.select-next-cell",group:"3_sheet-view",binding:T.KeyCode.TAB,priority:100,preconditions:oe,staticParameters:{direction:l.Direction.RIGHT,keycode:T.KeyCode.TAB}},ga={id:Ye.id,description:"shortcut.sheet.select-previous-cell",group:"3_sheet-view",binding:T.KeyCode.TAB|T.MetaKeys.SHIFT,priority:100,preconditions:oe,staticParameters:{direction:l.Direction.LEFT,keycode:T.KeyCode.TAB}},pa={id:Ye.id,description:"shortcut.sheet.select-below-cell",group:"3_sheet-view",binding:T.KeyCode.ENTER,priority:100,preconditions:oe,staticParameters:{direction:l.Direction.DOWN,keycode:T.KeyCode.ENTER}},fa={id:Ye.id,description:"shortcut.sheet.select-up-cell",group:"3_sheet-view",binding:T.KeyCode.ENTER|T.MetaKeys.SHIFT,priority:100,preconditions:oe,staticParameters:{direction:l.Direction.UP,keycode:T.KeyCode.ENTER}},Sa={id:we.id,description:"shortcut.sheet.select-below-value-cell",group:"3_sheet-view",binding:T.KeyCode.ARROW_DOWN|T.MetaKeys.CTRL_COMMAND,preconditions:oe,staticParameters:{direction:l.Direction.DOWN,jumpOver:ze.moveGap}},va={id:we.id,description:"shortcut.sheet.select-up-value-cell",group:"3_sheet-view",binding:T.KeyCode.ARROW_UP|T.MetaKeys.CTRL_COMMAND,preconditions:oe,staticParameters:{direction:l.Direction.UP,jumpOver:ze.moveGap}},Ca={id:we.id,description:"shortcut.sheet.select-left-value-cell",group:"3_sheet-view",binding:T.KeyCode.ARROW_LEFT|T.MetaKeys.CTRL_COMMAND,preconditions:oe,staticParameters:{direction:l.Direction.LEFT,jumpOver:ze.moveGap}},_a={id:we.id,description:"shortcut.sheet.select-right-value-cell",group:"3_sheet-view",binding:T.KeyCode.ARROW_RIGHT|T.MetaKeys.CTRL_COMMAND,preconditions:oe,staticParameters:{direction:l.Direction.RIGHT,jumpOver:ze.moveGap}},Ia={id:ye.id,description:"shortcut.sheet.expand-selection-down",group:"3_sheet-view",binding:T.KeyCode.ARROW_DOWN|T.MetaKeys.SHIFT,preconditions:oe,staticParameters:{direction:l.Direction.DOWN}},Ra={id:ye.id,description:"shortcut.sheet.expand-selection-up",group:"3_sheet-view",binding:T.KeyCode.ARROW_UP|T.MetaKeys.SHIFT,preconditions:oe,staticParameters:{direction:l.Direction.UP}},ba={id:ye.id,description:"shortcut.sheet.expand-selection-left",group:"3_sheet-view",binding:T.KeyCode.ARROW_LEFT|T.MetaKeys.SHIFT,preconditions:oe,staticParameters:{direction:l.Direction.LEFT}},Ta={id:ye.id,description:"shortcut.sheet.expand-selection-right",group:"3_sheet-view",binding:T.KeyCode.ARROW_RIGHT|T.MetaKeys.SHIFT,preconditions:oe,staticParameters:{direction:l.Direction.RIGHT}},Ea={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:oe,staticParameters:{direction:l.Direction.DOWN,jumpOver:ze.moveGap}},wa={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:oe,staticParameters:{direction:l.Direction.UP,jumpOver:ze.moveGap}},Pa={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:oe,staticParameters:{direction:l.Direction.LEFT,jumpOver:ze.moveGap}},ya={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:oe,staticParameters:{direction:l.Direction.RIGHT,jumpOver:ze.moveGap}},Ma={id:xi.id,description:"shortcut.sheet.select-all",group:"3_sheet-view",binding:T.KeyCode.A|T.MetaKeys.CTRL_COMMAND,preconditions:oe,staticParameters:{expandToGapFirst:!0,loop:!0}},Oa={id:on.id,description:"shortcut.sheet.set-bold",group:"4_sheet-edit",preconditions:i=>oe(i),binding:T.KeyCode.B|T.MetaKeys.CTRL_COMMAND},Aa={id:rn.id,description:"shortcut.sheet.set-italic",group:"4_sheet-edit",preconditions:i=>oe(i),binding:T.KeyCode.I|T.MetaKeys.CTRL_COMMAND},Na={id:sn.id,description:"shortcut.sheet.set-underline",group:"4_sheet-edit",preconditions:i=>oe(i),binding:T.KeyCode.U|T.MetaKeys.CTRL_COMMAND},xa={id:ln.id,description:"shortcut.sheet.set-strike-through",group:"4_sheet-edit",preconditions:i=>oe(i),binding:T.KeyCode.X|T.MetaKeys.SHIFT|T.MetaKeys.CTRL_COMMAND},Da={id:m.ClearSelectionContentCommand.id,preconditions:i=>oe(i),binding:T.KeyCode.DELETE,mac:T.KeyCode.BACKSPACE},ka={id:en.id,description:"shortcut.sheet.zoom-in",binding:T.KeyCode.EQUAL|T.MetaKeys.CTRL_COMMAND,group:"3_sheet-view",preconditions:oe,priority:1,staticParameters:{delta:.2}},Ha={id:l.NilCommand.id,binding:T.KeyCode.EQUAL|T.MetaKeys.CTRL_COMMAND},Va={id:en.id,description:"shortcut.sheet.zoom-out",binding:T.KeyCode.MINUS|T.MetaKeys.CTRL_COMMAND,group:"3_sheet-view",preconditions:oe,priority:1,staticParameters:{delta:-.2}},Wa={id:l.NilCommand.id,binding:T.KeyCode.MINUS|T.MetaKeys.CTRL_COMMAND},La={id:en.id,description:"shortcut.sheet.reset-zoom",binding:T.KeyCode.Digit0|T.MetaKeys.CTRL_COMMAND,preconditions:oe,group:"3_sheet-view",priority:1,staticParameters:{reset:!0}},Ua={id:l.NilCommand.id,binding:T.KeyCode.Digit0|T.MetaKeys.CTRL_COMMAND};function jf(i){const o=i.get(m.BorderStyleManagerService),e=ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]});return{id:m.SetBorderBasicCommand.id,icon:new O.Observable(t=>{const n="AllBorderSingle",r=i.get(m.BorderStyleManagerService),s=i.get(l.ICommandService).onCommandExecuted(a=>{var g;if(a.id!==m.SetBorderBasicCommand.id)return;const{type:d}=r.getBorderInfo(),u=Jl.find(p=>p.value===d),h=(g=u==null?void 0:u.icon)!=null?g:n;t.next(h)});return t.next(n),s.dispose}),group:T.MenuGroup.TOOLBAR_FORMAT,tooltip:"toolbar.border.main",positions:[T.MenuPosition.TOOLBAR_START],type:T.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:Qr,hoverable:!1},value$:o.borderInfo$}],value$:o.borderInfo$,hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET),disabled$:e}}function Xf(i){const o=ee(i,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellValuePermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]}),e=$u(i);return{id:He.id,icon:"MergeAllSingle",tooltip:"toolbar.mergeCell.main",positions:[T.MenuPosition.TOOLBAR_START],group:T.MenuGroup.TOOLBAR_LAYOUT,type:T.MenuItemType.SUBITEMS,hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET),disabled$:o.pipe(O.combineLatestWith(e),O.map(([t,n])=>t||n))}}function zf(i){return{id:Qi.id,type:T.MenuItemType.BUTTON,title:"merge.all",icon:"MergeAllSingle",positions:[He.id],hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Yf(i){return{id:Ji.id,type:T.MenuItemType.BUTTON,title:"merge.vertical",icon:"VerticalIntegrationSingle",positions:[He.id],hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Gf(i){return{id:$i.id,type:T.MenuItemType.BUTTON,title:"merge.horizontal",icon:"HorizontalMergeSingle",positions:[He.id],hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Zf(i){return{id:m.RemoveWorksheetMergeCommand.id,type:T.MenuItemType.BUTTON,title:"merge.cancel",icon:"CancelMergeSingle",positions:[He.id],hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Kf(i){const e=i.get(l.IUniverInstanceService).getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),t=i.get(l.UserManagerService);return O.combineLatest([e,t.currentUser$]).pipe(O.switchMap(([n,r])=>n?n.activeSheet$.pipe(O.switchMap(s=>{if(!s)return O.of(!0);const a=i.get(m.RangeProtectionRuleModel),c=i.get(m.WorksheetProtectionRuleModel),d=i.get(m.SheetsSelectionsService);return O.merge(d.selectionMoveEnd$,a.ruleChange$,c.ruleChange$).pipe(O.map(()=>{const u=n.getUnitId(),h=s.getSheetId(),g=a.getSubunitRuleList(u,h),p=d.getCurrentSelections(),f=p==null?void 0:p.map(C=>C.range),S=g.map(C=>C.ranges).flat();if(!f)return!1;const v=c.getRule(u,h);return v!=null&&v.permissionId&&(v!=null&&v.name)?!0:f==null?void 0:f.some(C=>S.some(I=>l.Rectangle.intersects(C,I)))}))})):O.of(!0)))}function qf(i){const o=i.get(l.IUniverInstanceService),e=i.get(m.RangeProtectionRuleModel),t=o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),n=i.get(l.UserManagerService);return O.combineLatest([t,n.currentUser$]).pipe(O.switchMap(([r,s])=>r?r.activeSheet$.pipe(O.switchMap(a=>{if(!a)return O.of(!0);const c=i.get(m.RangeProtectionRuleModel),d=i.get(m.WorksheetProtectionRuleModel),u=i.get(m.SheetsSelectionsService);return O.merge(u.selectionMoveEnd$,c.ruleChange$,d.ruleChange$).pipe(O.map(()=>{var R;const h=r.getUnitId(),g=a.getSheetId(),p=e.getSubunitRuleList(h,g),f=(R=u.getCurrentSelections())==null?void 0:R.map(b=>b.range),S=p.map(b=>b.ranges).flat();if(!(f!=null&&f.length)||f.length>1)return!0;const v=f[0],C=d.getRule(h,g);return C!=null&&C.permissionId&&(C!=null&&C.name)?!1:S.filter(b=>l.Rectangle.intersects(b,v)).length!==1}))})):O.of(!0)))}function Qf(i){const o=i.get(l.IUniverInstanceService),e=i.get(l.IPermissionService),t=o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),n=i.get(l.UserManagerService);return O.combineLatest([t,n.currentUser$]).pipe(O.switchMap(([r,s])=>r?r.activeSheet$.pipe(O.switchMap(a=>{var f;if(!a)return O.of(!0);const c=r.getUnitId(),d=i.get(m.SheetsSelectionsService),u=i.get(m.RangeProtectionRuleModel),h=i.get(m.WorksheetProtectionRuleModel),g=(f=e.composePermission$([new m.WorkbookManageCollaboratorPermission(c).id,new m.WorkbookEditablePermission(c).id]).pipe(O.map(S=>S.every(v=>v.value))))!=null?f:O.of(!1),p=O.merge(u.ruleChange$,h.ruleChange$).pipe(O.startWith(null));return O.combineLatest([g,p,d.selectionMoveEnd$]).pipe(O.map(([S,v,C])=>{if(!S)return!0;const I=d.getCurrentSelections(),R=I==null?void 0:I.map(b=>b.range);return R!=null&&R.length?R.length>1:!1}))})):O.of(!0)))}function Ba(i){const o=i.get(l.IUniverInstanceService),e=i.get(l.IPermissionService),t=o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),n=i.get(l.UserManagerService);return O.combineLatest([t,n.currentUser$]).pipe(O.switchMap(([r,s])=>r?r.activeSheet$.pipe(O.switchMap(a=>{var C;if(!a)return O.of(!0);const d=i.get(l.IContextService).subscribeContextValue$(l.FOCUSING_COMMON_DRAWINGS).pipe(O.startWith(!1)),u=r.getUnitId(),h=a.getSheetId(),g=i.get(m.RangeProtectionRuleModel),p=i.get(m.WorksheetProtectionRuleModel),f=i.get(m.SheetsSelectionsService),S=(C=e.composePermission$([new m.WorkbookManageCollaboratorPermission(u).id,new m.WorkbookEditablePermission(u).id]).pipe(O.map(I=>I.every(R=>R.value))))!=null?C:O.of(!1),v=O.merge(g.ruleChange$,p.ruleChange$).pipe(O.startWith(null));return O.combineLatest([S,v,f.selectionMoveEnd$,d]).pipe(O.map(([I,R,b,w])=>{if(!I||w)return!0;const y=f.getCurrentSelections(),M=y==null?void 0:y.map(D=>D.range);if(!(M!=null&&M.length))return!0;const A=p.getRule(u,h);if(A!=null&&A.permissionId&&(A!=null&&A.name))return!0;const N=g.getSubunitRuleList(u,h);return M==null?void 0:M.some(D=>N.some(k=>k.ranges.some(L=>l.Rectangle.intersects(D,L))))}))})):O.of(!0)))}function Jf(i){const o=i.get(l.IUniverInstanceService),e=i.get(l.IPermissionService),t=o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),n=i.get(l.UserManagerService);return O.combineLatest([t,n.currentUser$]).pipe(O.switchMap(([r,s])=>r?r.activeSheet$.pipe(O.switchMap(a=>{var f;if(!a)return O.of(!0);const c=r.getUnitId(),d=a.getSheetId(),u=i.get(m.RangeProtectionRuleModel),h=i.get(m.WorksheetProtectionRuleModel),g=(f=e.composePermission$([new m.WorkbookManageCollaboratorPermission(c).id,new m.WorkbookEditablePermission(c).id]).pipe(O.map(S=>S.every(v=>v.value))))!=null?f:O.of(!1),p=O.merge(u.ruleChange$,h.ruleChange$).pipe(O.startWith(null));return O.combineLatest([g,p]).pipe(O.map(([S,v])=>{var R;if(!S)return!0;const C=h.getRule(c,d);return C!=null&&C.permissionId&&(C!=null&&C.name)?!0:((R=u.getSubunitRuleList(c,d))==null?void 0:R.filter(b=>(b==null?void 0:b.permissionId)&&(b==null?void 0:b.name))).length>0}))})):O.of(!0)))}function $f(i){const o=i.get(l.IUniverInstanceService),e=i.get(l.IPermissionService),t=o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),n=i.get(l.UserManagerService);return O.combineLatest([t,n.currentUser$]).pipe(O.switchMap(([r,s])=>r?r.activeSheet$.pipe(O.switchMap(a=>{var g;if(!a)return O.of(!0);const c=r.getUnitId(),d=a.getSheetId(),u=i.get(m.WorksheetProtectionRuleModel),h=(g=e.composePermission$([new m.WorkbookManageCollaboratorPermission(c).id,new m.WorkbookEditablePermission(c).id]).pipe(O.map(p=>p.every(f=>f.value))))!=null?g:O.of(!1);return O.combineLatest([h,u.ruleChange$.pipe(O.startWith(null))]).pipe(O.map(([p,f])=>{if(!p)return!0;const S=u.getRule(c,d);return!(S!=null&&S.permissionId&&(S!=null&&S.name))}))})):O.of(!0)))}function eS(i){const o=i.get(l.IUniverInstanceService),e=i.get(l.IPermissionService),t=o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),n=i.get(l.UserManagerService);return O.combineLatest([t,n.currentUser$]).pipe(O.switchMap(([r,s])=>r?r.activeSheet$.pipe(O.switchMap(a=>{var f;if(!a)return O.of(!0);const c=r.getUnitId(),d=i.get(m.RangeProtectionRuleModel),u=i.get(m.WorksheetProtectionRuleModel),h=(f=e.composePermission$([new m.WorkbookManageCollaboratorPermission(c).id,new m.WorkbookEditablePermission(c).id]).pipe(O.map(S=>S.every(v=>v.value))))!=null?f:O.of(!1),g=u.ruleChange$.pipe(O.startWith(null)),p=d.ruleChange$.pipe(O.startWith(null));return O.combineLatest([h,g,p]).pipe(O.map(([S,v,C])=>{if(!S)return!0;const I=a.getSheetId(),R=u.getRule(c,I),b=d.getSubunitRuleList(c,I);return!(R||b.length)}))})):O.of(!0)))}function tS(i){const o=i.get(l.IUniverInstanceService),e=i.get(l.IPermissionService),t=o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),n=i.get(l.UserManagerService);return O.combineLatest([t,n.currentUser$]).pipe(O.switchMap(([r,s])=>r?r.activeSheet$.pipe(O.switchMap(a=>{var f;if(!a)return O.of(!0);const c=r.getUnitId(),d=a.getSheetId(),u=i.get(m.RangeProtectionRuleModel),h=i.get(m.WorksheetProtectionRuleModel),g=(f=e.composePermission$([new m.WorkbookManageCollaboratorPermission(c).id,new m.WorkbookEditablePermission(c).id]).pipe(O.map(S=>S.every(v=>v.value))))!=null?f:O.of(!1),p=O.merge(u.ruleChange$,h.ruleChange$).pipe(O.startWith(null));return O.combineLatest([p,g]).pipe(O.map(([S,v])=>{if(!v)return!0;const C=i.get(m.SheetsSelectionsService).getCurrentSelections(),I=C==null?void 0:C.map(M=>M.range);if(!(I!=null&&I.length)||I.length>1)return!0;const R=I[0],b=h.getRule(c,d);return!(b!=null&&b.permissionId&&(b!=null&&b.name)||u.getSubunitRuleList(c,d).map(M=>M.ranges).flat().some(M=>l.Rectangle.intersects(R,M)))}))})):O.of(!0)))}function Fa(i){const o=i.get(l.IUniverInstanceService),e=i.get(l.IPermissionService),t=o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),n=i.get(l.UserManagerService);return O.combineLatest([t,n.currentUser$]).pipe(O.switchMap(([r,s])=>r?r.activeSheet$.pipe(O.switchMap(a=>{var u,h;if(!a)return O.of(!0);const c=r.getUnitId();return((h=(u=e.getPermissionPoint$(new m.WorkbookEditablePermission(c).id))==null?void 0:u.pipe(O.map(g=>!!g.value)))!=null?h:O.of(!1)).pipe(O.map(g=>!g))})):O.of(!0)))}const ri="sheet.contextMenu.permission";function nS(i){return{id:mo.id,type:T.MenuItemType.BUTTON,positions:[T.MenuPosition.TOOLBAR_START],group:T.MenuGroup.TOOLBAR_OTHERS,icon:oa,tooltip:"permission.toolbarMenu",hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET),disabled$:Ba(i)}}function iS(i){return{id:ri,group:T.MenuGroup.CONTEXT_MENU_LAYOUT,type:T.MenuItemType.SUBITEMS,title:"rightClick.protectRange",icon:ra,positions:[T.MenuPosition.CONTEXT_MENU,ae.ROW_HEADER_CONTEXT_MENU,ae.COL_HEADER_CONTEXT_MENU],hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function oS(i){return{id:go.id,type:T.MenuItemType.BUTTON,title:"rightClick.turnOnProtectRange",positions:[ri],hidden$:Kf(i),disabled$:Ba(i)}}function rS(i){return{id:Co.id,type:T.MenuItemType.BUTTON,title:"rightClick.editProtectRange",positions:[ri],hidden$:qf(i),disabled$:Qf(i)}}function sS(i){return{id:vo.id,type:T.MenuItemType.BUTTON,title:"rightClick.removeProtectRange",positions:[ri],disabled$:tS(i),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function lS(i){return{id:po.id,type:T.MenuItemType.BUTTON,title:"rightClick.viewAllProtectArea",positions:[ri],disabled$:Fa(i),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function aS(i){return{id:fo.id,type:T.MenuItemType.BUTTON,positions:[ae.SHEET_BAR],title:"sheetConfig.addProtectSheet",disabled$:Jf(i),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function cS(i){return{id:uo.id,type:T.MenuItemType.BUTTON,positions:[ae.SHEET_BAR],title:"sheetConfig.removeProtectSheet",disabled$:$f(i),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function dS(i){return{id:ho.id,type:T.MenuItemType.BUTTON,positions:[ae.SHEET_BAR],title:"sheetConfig.changeSheetPermission",disabled$:eS(i),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function uS(i){return{id:So.id,type:T.MenuItemType.BUTTON,positions:[ae.SHEET_BAR],title:"sheetConfig.viewAllProtectArea",disabled$:Fa(i),hidden$:T.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}var hS=Object.defineProperty,mS=Object.getOwnPropertyDescriptor,gS=(i,o,e,t)=>{for(var n=t>1?void 0:t?mS(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&hS(o,e,n),n},ft=(i,o)=>(e,t)=>o(e,t,i);const ja={};let On=class extends l.Disposable{constructor(i,o,e,t,n,r,s,a){super(),this._config=i,this._injector=o,this._componentManager=e,this._layoutService=t,this._commandService=n,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 i=this._componentManager;this.disposeWithMe(i.register(Gi,Tl)),this.disposeWithMe(i.register(Qr,$l)),this.disposeWithMe(i.register(Zn,J.ColorPicker)),this.disposeWithMe(i.register(jr,T.FontFamily)),this.disposeWithMe(i.register(Xr,T.FontFamilyItem)),this.disposeWithMe(i.register(zr,T.FontSize)),this.disposeWithMe(i.register(Jr,ta))}_initCommands(){[Qi,He,$i,Ji,en,ye,we,Ye,so,io,to,no,Li,Ui,Be,wr,xi,ro,m.SetBoldCommand,Gt,Ee,Xn,on,rn,sn,ln,Br,Fr,Bi,Fi,Kt,m.SetItalicCommand,m.SetStrikeThroughCommand,m.SetFontFamilyCommand,m.SetFontSizeCommand,zn,ji,Yn,Gn,et,ct,an,Xi,zi,sa,Yi,m.SetUnderlineCommand,tn,je,oo,eo,Qt,qt,$n,Jn,ao,It,Bt,Xe,$r,mo,go,po,fo,So,ho,vo,Co,ni,yt,es,uo,_o].forEach(i=>{this.disposeWithMe(this._commandService.registerCommand(i))})}_initMenus(){const{menu:i={}}=this._config;[El,Du,ku,Hu,Vu,Wu,Lu,_f,If,Rf,Cf,yf,Mf,Of,Af,Nf,xf,Df,Ef,Gu,Ku,Zu,qu,Tf,Qu,Uu,Ju,bf,wf,Pf,kf,Hf,ju,Xu,zu,Yu,Bu,Fu,Cu,_u,Iu,Ru,bu,Tu,Eu,wu,Pu,yu,Mu,jf,Xf,zf,Yf,Gf,Zf,Ou,Au,Nu,xu,Vf,Wf,Lf,Uf,Bf,Ff,iS,oS,rS,sS,lS,aS,cS,dS,uS,nS].forEach(o=>{this.disposeWithMe(this._menuService.addMenuItem(this._injector.invoke(o),i))})}_initShortcuts(){[ca,da,ua,ha,ma,ga,pa,fa,Sa,va,Ca,_a,Ia,Ra,ba,Ta,Ea,wa,Pa,ya,Ma,ka,Va,La,Ua,Ha,Wa,Oa,Aa,Na,xa,Da,...Nl(),Dl,xl,kl,Vl,Wl,Ll,Hl,la,aa].forEach(i=>{this.disposeWithMe(this._shortcutService.registerShortcut(i))})}_initWorkbenchParts(){const i=this._uiPartsService,o=this._injector;this.disposeWithMe(i.registerComponent(T.BuiltInUIPart.HEADER,()=>l.connectInjector(lf,o))),this.disposeWithMe(i.registerComponent(T.BuiltInUIPart.FOOTER,()=>l.connectInjector(sf,o))),this.disposeWithMe(i.registerComponent(T.BuiltInUIPart.CONTENT,()=>l.connectInjector(af,o)))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(l.UniverInstanceType.UNIVER_SHEET,i=>{this._injector.get(P.ITextSelectionRenderManager).focus()}))}};On=gS([l.OnLifecycle(l.LifecycleStages.Ready,On),ft(1,l.Inject(l.Injector)),ft(2,l.Inject(T.ComponentManager)),ft(3,T.ILayoutService),ft(4,l.ICommandService),ft(5,T.IShortcutService),ft(6,T.IMenuService),ft(7,T.IUIPartsService)],On);var pS=Object.defineProperty,fS=Object.getOwnPropertyDescriptor,SS=(i,o,e,t)=>{for(var n=t>1?void 0:t?fS(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&pS(o,e,n),n},St=(i,o)=>(e,t)=>o(e,t,i);const Js=l.createInterceptorKey("statusBarPermissionCorrect");exports.StatusBarController=class extends l.Disposable{constructor(e,t,n,r,s,a,c){super();E(this,"_calculateTimeout",-1);E(this,"interceptor",new l.InterceptorManager({STATUS_BAR_PERMISSION_CORRECT:Js}));this._univerInstanceService=e,this._selectionManagerService=t,this._functionService=n,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 n=(r=t[t.length-1])==null?void 0:r.primary;this._calculateSelection(t.map(s=>s.range),n)},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 n=this._selectionManagerService.getCurrentSelections();n&&e(n)}}))}_clearResult(){this._statusBarService.setState(null)}_calculateSelection(e,t){var d,u;const n=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!n)return this._clearResult();const r=n.getUnitId(),s=(d=n.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 g=h.getConfig();a[h.getSheetId()]={cellData:new l.ObjectMatrix(g.cellData),rowCount:g.rowCount,columnCount:g.columnCount,rowData:g.rowData,columnData:g.columnData}}),e!=null&&e.length){const h=e.map(R=>new Q.RangeReferenceObject(R,s,r));h.forEach(R=>{R.setUnitData({[r]:a}),c&&R.setArrayFormulaCellData(Q.convertUnitDataToRuntime(c))});const g=this._statusBarService.getFunctions();let p=h.map(R=>R.toArrayValueObject(!1));const f=this.interceptor.fetchThroughInterceptors(Js)(p,p);f&&(p=f);const S=g.map(R=>{const b=this._functionService.getExecutor(R.func);if(!b)return;const w=b==null?void 0:b.calculate(...p),y=w==null?void 0:w.getValue();if(y)return{func:R.func,value:y}});if(S.every(R=>R===void 0))return;let v=null;if(t){const{actualRow:R,actualColumn:b}=t;v=(u=this._numfmtService.getValue(r,s,R,b))==null?void 0:u.pattern}const I={values:S.filter(R=>R!==void 0),pattern:v};this._statusBarService.setState(I)}else this._clearResult()}};exports.StatusBarController=SS([l.OnLifecycle(l.LifecycleStages.Ready,exports.StatusBarController),St(0,l.IUniverInstanceService),St(1,l.Inject(m.SheetsSelectionsService)),St(2,Q.IFunctionService),St(3,co),St(4,l.ICommandService),St(5,l.Inject(Q.FormulaDataModel)),St(6,l.Inject(m.INumfmtService))],exports.StatusBarController);var vS=Object.defineProperty,CS=Object.getOwnPropertyDescriptor,_S=(i,o,e,t)=>{for(var n=t>1?void 0:t?CS(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&vS(o,e,n),n},Bo=(i,o)=>(e,t)=>o(e,t,i);exports.SheetRenderController=class extends l.RxDisposable{constructor(o,e,t,n){super(),this._context=o,this._sheetSkeletonManagerService=e,this._sheetRenderService=t,this._commandService=n,this._addNewRender()}_addNewRender(){const{scene:o,engine:e,unit:t}=this._context;o.addLayer(new P.Layer(o,[],0),new P.Layer(o,[],2)),this._addComponent(t),this._initRerenderScheduler(),this._initCommandListener();const n=this._context.unit.getActiveSheet();if(!n)throw new Error("No active sheet found");const r=n.getSheetId();this._sheetSkeletonManagerService.setCurrent({sheetId:r}),t.getShouldRenderLoopImmediately()&&e.runRenderLoop(()=>o.render())}_addComponent(o){const{scene:e,components:t}=this._context,n=o.getActiveSheet();if(!n)throw new Error("No active sheet found");const r=new P.Spreadsheet(de.MAIN);this._addViewport(n);const s=new P.SpreadsheetRowHeader(de.ROW),a=new P.SpreadsheetColumnHeader(de.COLUMN),c=new P.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],hs),e.addObjects([s,a,c],dt),e.enableLayerCache(hs,dt)}_initViewports(o,e,t){const s=new P.Viewport(P.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 P.Viewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP,o,{isWheelPreventDefaultX:!0,active:!1,isRelativeX:!1,isRelativeY:!1,allowCache:!0,bufferEdgeX:0,bufferEdgeY:0}),c=new P.Viewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT,o,{isWheelPreventDefaultX:!0,active:!1,isRelativeX:!1,isRelativeY:!0,allowCache:!0,bufferEdgeX:0,bufferEdgeY:100}),d=new P.Viewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP,o,{isWheelPreventDefaultX:!0,active:!1,isRelativeX:!0,isRelativeY:!1,allowCache:!0,bufferEdgeX:100,bufferEdgeY:0}),u=new P.Viewport(P.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP,o,{active:!1,isWheelPreventDefaultX:!0,isRelativeX:!1,isRelativeY:!1}),h=new P.Viewport(P.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM,o,{left:0,top:t.height,bottom:0,width:e.width,isWheelPreventDefaultX:!0,isRelativeX:!1,isRelativeY:!0}),g=new P.Viewport(P.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT,o,{active:!1,isWheelPreventDefaultX:!0,isRelativeX:!1,isRelativeY:!1}),p=new P.Viewport(P.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT,o,{left:e.width,top:0,height:t.height,right:0,isWheelPreventDefaultX:!0,isRelativeX:!0,isRelativeY:!1}),f=new P.Viewport(P.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:f,viewMainLeftTop:a,viewMainLeft:c,viewMainTop:d,viewColumnLeft:g,viewRowTop:u,viewRowBottom:h,viewColumnRight:p}}_addViewport(o){const e=this._context.scene;if(e==null)return;const{rowHeader:t,columnHeader:n}=o.getConfig(),{viewMain:r}=this._initViewports(e,t,n);return this._initMouseWheel(e,r),new P.ScrollBar(r),e.attachControl(),r}_initRerenderScheduler(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(o=>{if(!o)return null;const{skeleton:e,sheetId:t}=o,n=this._context.unit,r=n==null?void 0:n.getSheetBySheetId(t);if(n==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:g,columnHeaderHeight:p}=e;c==null||c.updateSkeleton(e),d==null||d.updateSkeleton(e),u==null||u.updateSkeleton(e),h==null||h.transformByState({width:g,height:p})}))}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{const{unit:e,unitId:t}=this._context,{id:n}=o;if(m.COMMAND_LISTENER_SKELETON_CHANGE.includes(n)||this._sheetRenderService.checkMutationShouldTriggerRerender(n)){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;n!==m.SetWorksheetActiveOperation.id&&this._sheetSkeletonManagerService.makeDirty({sheetId:a,commandId:n},!0),this._sheetSkeletonManagerService.setCurrent({sheetId:a,commandId:n})}else m.COMMAND_LISTENER_VALUE_CHANGE.includes(n)&&this._sheetSkeletonManagerService.reCalculate();o.type===l.CommandType.MUTATION&&this._markUnitDirty(t,o)}))}_markUnitDirty(o,e){const{mainComponent:t,scene:n}=this._context;if(t&&t.makeDirty(),n.makeDirty(),!e.params)return;const r=e.params,s=this._spreadsheetViewports(n);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 n=Math.min(...e),r=Math.max(...e),s=Math.min(...t),a=Math.max(...t);return{startRow:n,endRow:r,startColumn:s,endColumn:a}}_rangeToBounds(o){const e=this._sheetSkeletonManagerService.getCurrent().skeleton,{rowHeightAccumulation:t,columnWidthAccumulation:n,rowHeaderWidth:r,columnHeaderHeight:s}=e,a=[];for(const c of o){const{startRow:d,endRow:u,startColumn:h,endColumn:g}=c,p=d===0?0:t[d-1]+s,f=t[u]+s,S=h===0?0:n[h-1]+r,v=n[g]+r;a.push({top:p,left:S,bottom:f,right:v,width:v-S,height:f-p})}return a}_markViewportDirty(o,e){const t=o.filter(n=>n.isActive&&n.cacheBound);for(const n of t)for(const r of e)l.Rectangle.hasIntersectionBetweenTwoRect(n.cacheBound,r)&&n.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,n)=>{if(t.ctrlKey)return;let r=0,s=0;const a=e.limitedScroll();if(t.inputIndex===P.PointerInput.MouseWheelX){const d=Math.abs(t.deltaX);t.deltaX>0?r=d:r=-d,this._commandService.executeCommand(ct.id,{offsetX:r}),o.getParent().classType===P.RENDER_CLASS_TYPE.SCENE_VIEWER?a!=null&&a.isLimitedX||n.stopPropagation():e.isWheelPreventDefaultX?t.preventDefault():a!=null&&a.isLimitedX||t.preventDefault()}if(t.inputIndex===P.PointerInput.MouseWheelY){let d=Math.abs(t.deltaY);t.shiftKey?(d*=3,t.deltaY>0?r=d:r=-d,this._commandService.executeCommand(ct.id,{offsetX:r}),o.getParent().classType===P.RENDER_CLASS_TYPE.SCENE_VIEWER?a!=null&&a.isLimitedX||n.stopPropagation():e.isWheelPreventDefaultX?t.preventDefault():a!=null&&a.isLimitedX||t.preventDefault()):(t.deltaY>0?s=d:s=-d,this._commandService.executeCommand(ct.id,{offsetY:s}),o.getParent().classType===P.RENDER_CLASS_TYPE.SCENE_VIEWER?a!=null&&a.isLimitedY||n.stopPropagation():e.isWheelPreventDefaultY?t.preventDefault():a!=null&&a.isLimitedY||t.preventDefault())}this._context.scene.makeDirty(!0)}))}};exports.SheetRenderController=_S([Bo(1,l.Inject(exports.SheetSkeletonManagerService)),Bo(2,l.Inject(exports.SheetsRenderService)),Bo(3,l.ICommandService)],exports.SheetRenderController);var IS=Object.defineProperty,RS=Object.getOwnPropertyDescriptor,bS=(i,o,e,t)=>{for(var n=t>1?void 0:t?RS(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&IS(o,e,n),n},$s=(i,o)=>(e,t)=>o(e,t,i);exports.HoverManagerService=class extends l.Disposable{constructor(e,t){super();E(this,"_currentCell$",new O.Subject);E(this,"currentCell$",this._currentCell$.asObservable().pipe(O.distinctUntilChanged((e,t)=>{var n,r,s,a,c,d,u,h;return((n=e==null?void 0:e.location)==null?void 0:n.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,n=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!n){this._currentCell$.next(null);return}const r=n.getActiveSheet();if(!r){this._currentCell$.next(null);return}const s=this._renderManagerService.getRenderById(n.getUnitId()),a=s==null?void 0:s.with(exports.SheetSkeletonManagerService).getWorksheetSkeleton(r.getSheetId()),c=s==null?void 0:s.with(Ie),d=c==null?void 0:c.getCurrentScrollInfo();if(!a||!d||!s)return;const u=Fl(s,n,r,a,e,t);if(!u){this._currentCell$.next(null);return}const{location:h,position:g}=u;this._currentCell$.next({location:h,position:g})}onMouseMove(e,t){this._lastPosition={offsetX:e,offsetY:t},this._calcActiveCell()}onScroll(){this._currentCell$.next(null)}};exports.HoverManagerService=bS([$s(0,l.IUniverInstanceService),$s(1,P.IRenderManagerService)],exports.HoverManagerService);var TS=Object.defineProperty,ES=Object.getOwnPropertyDescriptor,wS=(i,o,e,t)=>{for(var n=t>1?void 0:t?ES(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&TS(o,e,n),n},Fo=(i,o)=>(e,t)=>o(e,t,i);exports.HoverRenderController=class extends l.Disposable{constructor(o,e,t,n){super(),this._context=o,this._hoverManagerService=e,this._sheetSkeletonManagerService=t,this._scrollManagerService=n,this._initPointerEvent(),this._initScrollEvent()}_initPointerEvent(){const o=new l.DisposableCollection,e=t=>{if(o.dispose(),!t)return;const{mainComponent:n}=this._context,r=n==null?void 0:n.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.rawScrollInfo$.subscribe(()=>this._hoverManagerService.onScroll()))}};exports.HoverRenderController=wS([Fo(1,l.Inject(exports.HoverManagerService)),Fo(2,l.Inject(exports.SheetSkeletonManagerService)),Fo(3,l.Inject(Ie))],exports.HoverRenderController);const PS="univer-cell-alert",yS="univer-cell-alert-title",MS="univer-cell-alert-icon",OS="univer-cell-alert-icon-error",AS="univer-cell-alert-icon-info",NS="univer-cell-alert-icon-warning",xS="univer-cell-alert-content",qe={cellAlert:PS,cellAlertTitle:yS,cellAlertIcon:MS,cellAlertIconError:OS,cellAlertIconInfo:AS,cellAlertIconWarning:NS,cellAlertContent:xS};function DS({popup:i}){var s;const o=(s=i.extraProps)==null?void 0:s.alert;if(!o)return null;const{type:e,title:t,message:n}=o,r={[jt.ERROR]:_.jsx(Gr,{className:ue(qe.cellAlertIcon,qe.cellAlertIconError)}),[jt.INFO]:_.jsx(gr,{className:ue(qe.cellAlertIcon,qe.cellAlertIconInfo)}),[jt.WARNING]:_.jsx(gr,{className:ue(qe.cellAlertIcon,qe.cellAlertIconWarning)})};return _.jsxs("div",{className:qe.cellAlert,children:[_.jsxs("div",{className:qe.cellAlertTitle,children:[e?r[e]:null,t]}),_.jsx("div",{className:qe.cellAlertContent,children:n})]})}const Xa="univer.sheet.cell-alert";var kS=Object.defineProperty,HS=Object.getOwnPropertyDescriptor,VS=(i,o,e,t)=>{for(var n=t>1?void 0:t?HS(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&kS(o,e,n),n},Sn=(i,o)=>(e,t)=>o(e,t,i);exports.SheetCanvasPopManagerService=class extends l.Disposable{constructor(o,e,t,n,r){super(),this._globalPopupManagerService=o,this._renderManagerService=e,this._univerInstanceService=t,this._refRangeService=n,this._commandService=r}_createObjectPositionObserver(o,e,t,n){const r=()=>{const{scene:d}=e,{left:u,top:h,width:g,height:p}=o,f={left:u,right:u+g,top:h,bottom:h+p},S=Em(f,d,t,n);return{left:S.left,right:S.right,top:S.top,bottom:S.bottom}},s=r(),a=new O.BehaviorSubject(s),c=new l.DisposableCollection;return c.add(this._commandService.onCommandExecuted(d=>{(d.id===et.id||d.id===je.id)&&a.next(r())})),{position:s,position$:a,disposable:c}}attachPopupToObject(o,e){var p;const t=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),n=t.getActiveSheet();if(!n)return{dispose:()=>{}};const r=t.getUnitId(),s=n.getSheetId(),a=(p=this._renderManagerService.getRenderById(r))==null?void 0:p.with(exports.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,n),g=this._globalPopupManagerService.addPopup({...e,unitId:r,subUnitId:s,anchorRect:d,anchorRect$:u});return{dispose:()=>{this._globalPopupManagerService.removePopup(g),u.complete(),h.dispose()}}}attachPopupToCell(o,e,t,n){var R;const r=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),s=r.getActiveSheet();if(!s)return null;const a=r.getUnitId(),c=s.getSheetId(),d=(R=this._renderManagerService.getRenderById(a))==null?void 0:R.with(exports.SheetSkeletonManagerService).getOrCreateSkeleton({sheetId:c}),u=this._renderManagerService.getRenderById(a);if(!u||!d)return null;const h=n!=null?n:Tm(o,e,u.scene,s);if(!h)return null;const{position:g,position$:p,disposable:f,updateRowCol:S}=this._createCellPositionObserver(o,e,u,d,h),v=this._globalPopupManagerService.addPopup({...t,unitId:a,subUnitId:c,anchorRect:g,anchorRect$:p}),C=new l.DisposableCollection;C.add(f),C.add(l.toDisposable(()=>{this._globalPopupManagerService.removePopup(v),p.complete()}));const I={startRow:o,endRow:o,startColumn:e,endColumn:e};return C.add(this._refRangeService.watchRange(a,c,I,(b,w)=>{w?S(w.startRow,w.startColumn):C.dispose()})),C}_createCellPositionObserver(o,e,t,n,r){let s=o,a=e;const c=this._calcCellPositionByCell(s,a,t,n,r),d=new O.BehaviorSubject(c),u=()=>d.next(this._calcCellPositionByCell(s,a,t,n,r)),h=new l.DisposableCollection;return h.add(t.engine.clientRect$.subscribe(()=>u())),h.add(this._commandService.onCommandExecuted(p=>{if(p.id===m.SetWorksheetRowAutoHeightMutation.id&&p.params.rowsAutoHeightInfo.findIndex(S=>S.row===s)>-1){u();return}(m.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(p.id)>-1||p.id===et.id||p.id===je.id)&&u()})),{position$:d,disposable:h,position:c,updateRowCol:(p,f)=>{s=p,a=f,u()}}}_calcCellPositionByCell(o,e,t,n,r){const{scene:s,engine:a}=t,c=n.getCellByIndex(o,e),d=c.isMergedMainCell?c.mergeInfo:c,{scaleX:u,scaleY:h}=s.getAncestorScale(),g={x:r.viewportScrollX,y:r.viewportScrollY},p=a.getCanvasElement().getBoundingClientRect(),{top:f,left:S}=p;return{left:(d.startX-g.x)*u+S,right:(d.endX-g.x)*u+S,top:(d.startY-g.y)*h+f,bottom:(d.endY-g.y)*h+f}}};exports.SheetCanvasPopManagerService=VS([Sn(0,l.Inject(T.ICanvasPopupService)),Sn(1,P.IRenderManagerService),Sn(2,l.IUniverInstanceService),Sn(3,l.Inject(m.RefRangeService)),Sn(4,l.ICommandService)],exports.SheetCanvasPopManagerService);var WS=Object.defineProperty,LS=Object.getOwnPropertyDescriptor,US=(i,o,e,t)=>{for(var n=t>1?void 0:t?LS(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&WS(o,e,n),n},el=(i,o)=>(e,t)=>o(e,t,i),jt=(i=>(i[i.INFO=0]="INFO",i[i.WARNING=1]="WARNING",i[i.ERROR=2]="ERROR",i))(jt||{});exports.CellAlertManagerService=class{constructor(o,e){E(this,"_currentAlert$",new O.Subject);E(this,"_currentAlert",new Map);E(this,"currentAlert$",this._currentAlert$.asObservable());this._renderManagerService=o,this._canvasPopManagerService=e}get currentAlert(){return this._currentAlert}showAlert(o){let e=this._currentAlert.get(o.key);e&&e.dispose.dispose(),e?e.dispose.dispose():(e={alert:o,dispose:{dispose(){}}},this._currentAlert.set(o.key,e));const{location:t}=o,{row:n,col:r,unitId:s}=t;if(!this._renderManagerService.getRenderById(s))return;const c=this._canvasPopManagerService.attachPopupToCell(n,r,{componentKey:Xa,direction:"horizontal",offset:[2,0],extraProps:{alert:o}});c&&(e.dispose=c),this._currentAlert$.next(Array.from(this._currentAlert.entries()))}removeAlert(o){const e=this._currentAlert.get(o);e&&(this._currentAlert.delete(o),e==null||e.dispose.dispose(),this._currentAlert$.next(Array.from(this._currentAlert.entries())))}clearAlert(){this._currentAlert.forEach(o=>{o.dispose.dispose()}),this._currentAlert.clear(),this._currentAlert$.next(Array.from(this._currentAlert.entries()))}};exports.CellAlertManagerService=US([el(0,P.IRenderManagerService),el(1,l.Inject(exports.SheetCanvasPopManagerService))],exports.CellAlertManagerService);var BS=Object.defineProperty,FS=Object.getOwnPropertyDescriptor,jS=(i,o,e,t)=>{for(var n=t>1?void 0:t?FS(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&BS(o,e,n),n},XS=(i,o)=>(e,t)=>o(e,t,i);let An=class extends l.Disposable{constructor(i,o){super(),this._context=i,this._componentManager=o,this._initComponent()}_initComponent(){this._componentManager.register(Xa,DS)}};An=jS([l.OnLifecycle(l.LifecycleStages.Starting,An),XS(1,l.Inject(T.ComponentManager))],An);var zS=Object.defineProperty,YS=Object.getOwnPropertyDescriptor,GS=(i,o,e,t)=>{for(var n=t>1?void 0:t?YS(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&zS(o,e,n),n},tl=(i,o)=>(e,t)=>o(e,t,i);let Nn=class extends l.RxDisposable{constructor(i,o,e){super(),this._context=i,this._sheetSkeletonManagerService=o,this._sheetInterceptorService=e,this._init()}_init(){this._initViewModelIntercept()}_initViewModelIntercept(){const i={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,...i}}):t(o)}}))}};Nn=GS([l.OnLifecycle(l.LifecycleStages.Rendered,Nn),tl(1,l.Inject(exports.SheetSkeletonManagerService)),tl(2,l.Inject(m.SheetInterceptorService))],Nn);var ZS=Object.defineProperty,KS=Object.getOwnPropertyDescriptor,qS=(i,o,e,t)=>{for(var n=t>1?void 0:t?KS(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&ZS(o,e,n),n},jo=(i,o)=>(e,t)=>o(e,t,i);const Xo="SHEET_FORCE_STRING_ALERT";let xn=class extends l.Disposable{constructor(i,o,e,t){super(),this._context=i,this._hoverManagerService=o,this._cellAlertManagerService=e,this._localeService=t,this._init()}_init(){this._initCellAlertPopup()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.subscribe(i=>{var o;if(i){const t=this._context.unit.getActiveSheet();if(!t)return;const n=t.getCell(i.location.row,i.location.col);if((n==null?void 0:n.t)===l.CellValueType.FORCE_STRING&&n.v&&l.isRealNum(n.v)){const r=this._cellAlertManagerService.currentAlert.get(Xo),s=(o=r==null?void 0:r.alert)==null?void 0:o.location;if(s&&s.row===i.location.row&&s.col===i.location.col&&s.subUnitId===i.location.subUnitId&&s.unitId===i.location.unitId)return;this._cellAlertManagerService.showAlert({type:jt.ERROR,title:this._localeService.t("info.error"),message:this._localeService.t("info.forceStringInfo"),location:i.location,width:200,height:74,key:Xo});return}}this._cellAlertManagerService.removeAlert(Xo)}))}};xn=qS([l.OnLifecycle(l.LifecycleStages.Rendered,xn),jo(1,l.Inject(exports.HoverManagerService)),jo(2,l.Inject(exports.CellAlertManagerService)),jo(3,l.Inject(l.LocaleService))],xn);var QS=Object.defineProperty,JS=Object.getOwnPropertyDescriptor,$S=(i,o,e,t)=>{for(var n=t>1?void 0:t?JS(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&QS(o,e,n),n},zo=(i,o)=>(e,t)=>o(e,t,i);let fr=class extends l.Disposable{constructor(i,o,e,t){super(),this._context=i,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 g=h.range.rangeType,p=this._selectionRenderService.getSkeleton(),S=Rt(h,p).rangeWithCoord,v=()=>{if(!S)return!1;const I=d.offsetX,R=d.offsetY;switch(g){case l.RANGE_TYPE.ROW:return S.startY<=R&&S.endY>=R;case l.RANGE_TYPE.COLUMN:return S.startX<=I&&S.endX>=I;default:return S.startX<=I&&S.endX>=I&&S.startY<=R&&S.endY>=R}},C=I=>{this._contextMenuService.triggerContextMenu(d,I)};v()?g===l.RANGE_TYPE.COLUMN?C(ae.COL_HEADER_CONTEXT_MENU):g===l.RANGE_TYPE.ROW?C(ae.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),n=this._context.components.get(de.ROW).onPointerDown$.subscribeEvent(d=>{d.button===2&&this._contextMenuService.triggerContextMenu(d,ae.ROW_HEADER_CONTEXT_MENU)});this.disposeWithMe(n);const s=e.onPointerDown$.subscribeEvent(d=>{d.button===2&&this._contextMenuService.triggerContextMenu(d,ae.COL_HEADER_CONTEXT_MENU)});this.disposeWithMe(s)}};fr=$S([zo(1,T.IContextMenuService),zo(2,l.Inject(m.SheetsSelectionsService)),zo(3,Se)],fr);var ev=Object.defineProperty,tv=Object.getOwnPropertyDescriptor,nv=(i,o,e,t)=>{for(var n=t>1?void 0:t?tv(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&ev(o,e,n),n},vn=(i,o)=>(e,t)=>o(e,t,i);let Sr=class extends l.RxDisposable{constructor(o,e,t,n,r,s){super();E(this,"_d");this._context=o,this._instanceSrv=e,this._commandService=t,this._editorBridgeService=n,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(O.merge(this._selectionManagerService.selectionMoveEnd$,this._selectionManagerService.selectionMoveStart$).subscribe(e=>this._updateEditorPosition(e)))}_updateEditorPosition(o){var t,n;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=(n=this._context.unit.getActiveSheet())==null?void 0:n.getSheetId();if(!d)return;this._commandService.executeCommand(ro.id,{scene:s,engine:a,primary:e,unitId:c,sheetId:d})}}_initEventListener(o){const e=this._getSheetObject(),{spreadsheet:t,spreadsheetColumnHeader:n,spreadsheetLeftTopPlaceholder:r,spreadsheetRowHeader:s}=e;o.add(t.onDblclick$.subscribeEvent(a=>{a.button!==2&&this._commandService.executeCommand(Ee.id,{visible:!0,eventType:P.DeviceInputEventType.Dblclick,unitId:this._context.unitId})})),o.add(t.onPointerDown$.subscribeEvent(this._tryHideEditor.bind(this))),o.add(n.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(Ee.id,{visible:!1,eventType:P.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 n=this._selectionManagerService.getCurrentSelections(),r=n==null?void 0:n.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:n}=this._getCurrentUnitIdAndSheetId();if(!t||!n)return;const r=o.map(s=>({range:s.range,unitId:e,sheetId:t,sheetName:n}));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 Ge(this._context.unit,this._context)}_commandExecutedListener(o){o.add(this._commandService.onCommandExecuted((e,t)=>{e.id===tn.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())}))}};Sr=nv([vn(1,l.IUniverInstanceService),vn(2,l.ICommandService),vn(3,Ze),vn(4,l.Inject(m.SheetsSelectionsService)),vn(5,T.IRangeSelectorService)],Sr);var iv=Object.defineProperty,ov=Object.getOwnPropertyDescriptor,rv=(i,o,e,t)=>{for(var n=t>1?void 0:t?ov(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&iv(o,e,n),n},vt=(i,o)=>(e,t)=>o(e,t,i);let fi=class extends l.Disposable{constructor(i,o,e,t,n,r,s){super(),this._commandService=i,this._formatPainterService=o,this._univerInstanceService=e,this._renderManagerService=t,this._selectionManagerService=n,this._sheetInterceptorService=r,this._injector=s,this._initialize()}_initialize(){this._commandExecutedListener(),this._addDefaultHook()}_commandExecutedListener(){const i=this._renderManagerService.getCurrentTypeOfRenderer(l.UniverInstanceType.UNIVER_SHEET).with(Se);this.disposeWithMe(i.selectionMoveEnd$.subscribe(o=>{var e,t;if(this._formatPainterService.getStatus()!==De.OFF){const{rangeWithCoord:n}=o[o.length-1];this._commandService.executeCommand(Gn.id,{unitId:((e=this._univerInstanceService.getFocusedUnit())==null?void 0:e.getUnitId())||"",subUnitId:((t=this._univerInstanceService.getFocusedUnit().getActiveSheet())==null?void 0:t.getSheetId())||"",range:{startRow:n.startRow,startColumn:n.startColumn,endRow:n.endRow,endColumn:n.endColumn}}),this._formatPainterService.getStatus()===De.ONCE&&this._commandService.executeCommand(Yn.id)}}))}_addDefaultHook(){const i={id:"default-format-painter",priority:0,isDefaultHook:!0,onStatusChange:o=>{if(o!==De.OFF){const e=this._collectSelectionRangeFormat();e&&this._formatPainterService.setSelectionFormat(e)}},onApply:(o,e,t,n)=>this._getUndoRedoMutationInfo(o,e,t,n)};this._formatPainterService.addHook(i)}_collectSelectionRangeFormat(){const i=this._selectionManagerService.getCurrentLastSelection(),o=i==null?void 0:i.range;if(!o)return null;const{startRow:e,endRow:t,startColumn:n,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,g=[];for(let p=e;p<=t;p++)for(let f=n;f<=r;f++){const S=c.getValue(p,f);h.setValue(p,f,u.getStyleByCell(S)||{});const{isMergedMainCell:v,...C}=l.getCellInfoInMergeData(p,f,d);v&&g.push({startRow:C.startRow,startColumn:C.startColumn,endRow:C.endRow,endColumn:C.endColumn})}return{styles:h,merges:g}}_getUndoRedoMutationInfo(i,o,e,t){const n=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:g}=c.getDataRange(),p=h-d+1,f=g-u+1,S=Array.from({length:e.endRow-e.startRow+1},()=>Array.from({length:e.endColumn-e.startColumn+1},()=>({}))),v=[];S.forEach((z,F)=>{z.forEach((X,B)=>{const Y=F%p+d,W=B%f+u,U=c.getValue(Y,W);U&&(S[F][B].s=U)})}),a.forEach(z=>{const F={startRow:z.startRow-d,startColumn:z.startColumn-u,endRow:z.endRow-d,endColumn:z.endColumn-u},X=Math.max(1,Math.floor((e.endRow-e.startRow+1)/p)),B=Math.max(1,Math.floor((e.endColumn-e.startColumn+1)/f));for(let Y=0;Y<X;Y++)for(let W=0;W<B;W++)v.push({startRow:F.startRow+Y*p+e.startRow,startColumn:F.startColumn+W*f+e.startColumn,endRow:F.endRow+Y*p+e.startRow,endColumn:F.endColumn+W*f+e.startColumn})});const C=[e],I=new l.ObjectMatrix;let R;if(l.Tools.isArray(S))for(let z=0;z<C.length;z++){const{startRow:F,startColumn:X,endRow:B,endColumn:Y}=C[z];for(let W=0;W<=B-F;W++)for(let U=0;U<=Y-X;U++)I.setValue(W+F,U+X,S[W][U])}else if(l.isICellData(S))for(let z=0;z<C.length;z++){const{startRow:F,startColumn:X}=C[z];I.setValue(F,X,S)}else R=S;const b={subUnitId:o,unitId:i,cellValue:R!=null?R:I.getMatrix()},w=m.SetRangeValuesUndoMutationFactory(s,b),{undos:y,redos:M}=n.onCommandExecute({id:m.SetRangeValuesCommand.id,params:{...b,range:C}}),A=m.getAddMergeMutationRangeByType(v),N=[],x=[],D=r.getUnit(i).getSheetBySheetId(o),k=Ul(D,A),L={unitId:i,subUnitId:o,ranges:A},V={unitId:i,subUnitId:o,ranges:A};N.push({id:m.RemoveWorksheetMergeMutation.id,params:L}),N.push({id:m.AddWorksheetMergeMutation.id,params:V});const j=m.RemoveMergeUndoMutationFactory(s,L),Z=m.AddMergeUndoMutationFactory(s,V);if(x.push({id:m.RemoveWorksheetMergeMutation.id,params:Z}),x.push({id:m.AddWorksheetMergeMutation.id,params:j}),k){const z=Bl(s,i,D,A);N.unshift(...z.redos),x.push(...z.undos)}return{undos:[{id:m.SetRangeValuesMutation.id,params:w},...y,...x],redos:[{id:m.SetRangeValuesMutation.id,params:b},...M,...N]}}};fi=rv([l.OnLifecycle(l.LifecycleStages.Steady,fi),vt(0,l.ICommandService),vt(1,nt),vt(2,l.IUniverInstanceService),vt(3,P.IRenderManagerService),vt(4,l.Inject(m.SheetsSelectionsService)),vt(5,l.Inject(m.SheetInterceptorService)),vt(6,l.Inject(l.Injector))],fi);var sv=Object.defineProperty,lv=Object.getOwnPropertyDescriptor,av=(i,o,e,t)=>{for(var n=t>1?void 0:t?lv(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&sv(o,e,n),n},nl=(i,o)=>(e,t)=>o(e,t,i);exports.DragManagerService=class extends l.Disposable{constructor(e,t){super();E(this,"_currentCell$",new O.Subject);E(this,"currentCell$",this._currentCell$.asObservable().pipe(O.distinctUntilChanged((e,t)=>{var n,r,s,a,c,d,u,h;return((n=e==null?void 0:e.location)==null?void 0:n.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 O.Subject);E(this,"endCell$",this._endCell$.asObservable());this._univerInstanceService=e,this._renderManagerService=t,this._initCellDisposableListener()}dispose(){super.dispose(),this._currentCell$.complete(),this._endCell$.complete()}_initCellDisposableListener(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{e||(this._currentCell$.next(null),this._endCell$.next(null))}))}_calcActiveCell(e,t){const n=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!n)return null;const r=n.getActiveSheet();if(!r)return;const s=this._renderManagerService.getRenderById(n.getUnitId());if(!s)return;const a=s.with(exports.SheetSkeletonManagerService).getCurrent(),d=s.with(Ie).getCurrentScrollInfo();if(!(!a||!d||!s))return Fl(s,n,r,a,e,t)}onDragOver(e){const{offsetX:t,offsetY:n,dataTransfer:r}=e,s=this._calcActiveCell(t,n);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:n,dataTransfer:r}=e,s=this._calcActiveCell(t,n);if(!s){this._endCell$.next(null);return}const{location:a,position:c}=s;this._endCell$.next({location:a,position:c,dataTransfer:r})}};exports.DragManagerService=av([nl(0,l.IUniverInstanceService),nl(1,P.IRenderManagerService)],exports.DragManagerService);var cv=Object.defineProperty,dv=Object.getOwnPropertyDescriptor,uv=(i,o,e,t)=>{for(var n=t>1?void 0:t?dv(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&cv(o,e,n),n},Yo=(i,o)=>(e,t)=>o(e,t,i);exports.DragRenderController=class extends l.Disposable{constructor(o,e,t,n){super(),this._context=o,this._renderManagerService=e,this._dragManagerService=t,this._sheetSkeletonManagerService=n,this._initDragEvent()}_initDragEvent(){const o=new l.DisposableCollection,e=t=>{if(o.dispose(),!t)return;const{scene:n}=this._context,r=n.onDragOver$.subscribeEvent(a=>{this._dragManagerService.onDragOver(a)}),s=n.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)}))}};exports.DragRenderController=uv([Yo(1,P.IRenderManagerService),Yo(2,l.Inject(exports.DragManagerService)),Yo(3,l.Inject(exports.SheetSkeletonManagerService))],exports.DragRenderController);const vr="UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID",za="UNIVER_SHEET_PERMISSION_ALERT_DIALOG";var hv=Object.defineProperty,mv=Object.getOwnPropertyDescriptor,gv=(i,o,e,t)=>{for(var n=t>1?void 0:t?mv(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&hv(o,e,n),n},Oe=(i,o)=>(e,t)=>o(e,t,i);exports.SheetPermissionInterceptorBaseController=class extends l.Disposable{constructor(e,t,n,r,s,a,c,d,u,h,g,p){super();E(this,"disposableCollection",new l.DisposableCollection);E(this,"_showPermissionDialog",!0);this._commandService=e,this._univerInstanceService=t,this._permissionService=n,this._selectionManagerService=r,this._dialogService=s,this._rangeProtectionRuleModel=a,this._worksheetProtectionRuleModel=c,this._autoFillService=d,this._localeService=u,this._lexerTreeBuilder=h,this._contextService=g,this._definedNamesService=p,this._initialize()}setShowPermissionDialog(e){this._showPermissionDialog=e}haveNotPermissionHandle(e){const t={id:vr,title:{title:""},children:{label:za,errorMsg:e},width:320,destroyOnClose:!0,onClose:()=>this._dialogService.close(vr),className:"sheet-permission-user-dialog"};throw this._showPermissionDialog&&this._dialogService.open(t),new Error("have not permission")}_getPermissionCheck(e,t){var s,a;let n=!0,r="";switch(e){case te.InsertCommand.id:case te.IMEInputCommand.id:case Ee.id:if(this._contextService.getContextValue(l.FOCUSING_EDITOR_STANDALONE)===!0)break;n=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?(n=this._permissionCheckWithFormula(t),r=this._localeService.t("permission.dialog.formulaErr")):n=this._permissionCheckBySetRangeValue({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetEditPermission]},t);break;case m.ClearSelectionContentCommand.id:n=this.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellValuePermission,m.WorksheetEditPermission]}),r=this._localeService.t("permission.dialog.editErr");break;case Wi.id:n=this.permissionCheckWithoutRange({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetColumnStylePermission]}),r=this._localeService.t("permission.dialog.pasteErr");break;case Ii.id:n=this._permissionCheckByPaste(t),r=this._localeService.t("permission.dialog.pasteErr");break;case Gn.id:n=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 on.id:case rn.id:case sn.id:case ln.id:n=this.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission]}),r=this._localeService.t("permission.dialog.setStyleErr");break;case Hr.id:case Vr.id:n=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:n=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:n=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:n=this._permissionCheckByMoveCommand(t),r=this._localeService.t("permission.dialog.moveRowColErr");break;case m.MoveRangeCommand.id:n=this._permissionCheckByMoveRangeCommand(t),r=this._localeService.t("permission.dialog.moveRangeErr");break;case It.id:n=this._permissionCheckByAutoFillCommand((a=this._autoFillService.autoFillLocation)==null?void 0:a.target),r=this._localeService.t("permission.dialog.autoFillErr");break;case m.SetWorksheetOrderCommand.id:n=this._permissionCheckByWorksheetCommand([m.WorkbookEditablePermission,m.WorkbookMoveSheetPermission]),r=this._localeService.t("permission.dialog.operatorSheetErr"),n===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case m.SetWorksheetNameCommand.id:n=this._permissionCheckByWorksheetCommand([m.WorkbookEditablePermission,m.WorkbookRenameSheetPermission]),r=this._localeService.t("permission.dialog.operatorSheetErr"),n===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case m.SetWorksheetShowCommand.id:n=this._permissionCheckByWorksheetCommand([m.WorkbookEditablePermission,m.WorkbookHideSheetPermission]),r=this._localeService.t("permission.dialog.operatorSheetErr"),n===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case m.SetSpecificColsVisibleCommand.id:n=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:n=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:n=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:n=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:n=this._permissionCheckWithInsertRangeMove("right"),r=this._localeService.t("permission.dialog.insertOrDeleteMoveRangeErr");break;case m.InsertRangeMoveDownCommand.id:n=this._permissionCheckWithInsertRangeMove("bottom"),r=this._localeService.t("permission.dialog.insertOrDeleteMoveRangeErr");break;case m.DeleteRangeMoveLeftCommand.id:n=this._permissionCheckWithInsertRangeMove("left"),r=this._localeService.t("permission.dialog.insertOrDeleteMoveRangeErr");break;case m.DeleteRangeMoveUpCommand.id:n=this._permissionCheckWithInsertRangeMove("top"),r=this._localeService.t("permission.dialog.insertOrDeleteMoveRangeErr");break}n||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 n=e.params,{unitId:r=(t=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET))==null?void 0:t.getUnitId(),subUnitId:s}=n;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:n,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=n.getColumnCount()-1:e==="bottom"&&(a.endRow=n.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:n,subUnitId:r}=t,s=this._worksheetProtectionRuleModel.getRule(n,r),a=this._rangeProtectionRuleModel.getSubunitRuleList(n,r).length>0;return s||a?(d=(c=this._permissionService.getPermissionPoint(new m.WorkbookManageCollaboratorPermission(n).id))==null?void 0:c.value)!=null?d:!1:this._permissionService.composePermission(e.map(u=>new u(n).id)).every(u=>u.value)}permissionCheckWithoutRange(e){var p,f,S,v;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:n,unitId:r,subUnitId:s}=t,a=this._selectionManagerService.getCurrentLastSelection();if(!a)return!0;const c=(f=(p=a==null?void 0:a.primary)==null?void 0:p.actualRow)!=null?f:0,d=(v=(S=a==null?void 0:a.primary)==null?void 0:S.actualColumn)!=null?v:0,{workbookTypes:u=[m.WorkbookEditablePermission],worksheetTypes:h,rangeTypes:g}=e;return!(u&&u.some(I=>{var w,y;const R=new I(r);return((y=(w=this._permissionService.getPermissionPoint(R.id))==null?void 0:w.value)!=null?y:!1)===!1})===!0||h&&h.some(I=>{var w,y;const R=new I(r,s);return((y=(w=this._permissionService.getPermissionPoint(R.id))==null?void 0:w.value)!=null?y:!1)===!1})===!0||g&&g.some(I=>{var M,A,N,x,D;const R=(A=(M=n.getCell(c,d))==null?void 0:M.selectionProtection)==null?void 0:A[0];if(!(R!=null&&R.ruleId))return!1;const b=(N=this._rangeProtectionRuleModel.getRule(r,s,R.ruleId))==null?void 0:N.permissionId;if(!b)return!1;const w=new I(r,s,b);return((D=(x=this._permissionService.getPermissionPoint(w.id))==null?void 0:x.value)!=null?D:!1)===!1})===!0)}permissionCheckWithRanges(e,t,n,r){var p;const s=m.getSheetCommandTarget(this._univerInstanceService);if(!s)return!1;const{workbook:a,worksheet:c}=s;n||(n=a.getUnitId()),r||(r=c.getSheetId());const d=t!=null?t:(p=this._selectionManagerService.getCurrentSelections())==null?void 0:p.map(f=>f.range);if(!d)return!1;const{workbookTypes:u=[m.WorkbookEditablePermission],worksheetTypes:h,rangeTypes:g}=e;return u&&u.some(S=>{var I,R;const v=new S(n);return((R=(I=this._permissionService.getPermissionPoint(v.id))==null?void 0:I.value)!=null?R:!1)===!1})===!0||h&&h.some(S=>{var I,R;const v=new S(n,r);return((R=(I=this._permissionService.getPermissionPoint(v.id))==null?void 0:I.value)!=null?R:!1)===!1})===!0?!1:g?d==null?void 0:d.every(S=>g.every(v=>{var C,I,R,b,w;for(let y=S.startRow;y<=S.endRow;y++)for(let M=S.startColumn;M<=S.endColumn;M++){const A=(I=(C=c.getCell(y,M))==null?void 0:C.selectionProtection)==null?void 0:I[0];if(!(A!=null&&A.ruleId))continue;const N=(R=this._rangeProtectionRuleModel.getRule(n,r,A.ruleId))==null?void 0:R.permissionId;if(!N)continue;const x=new v(n,r,N);if(((w=(b=this._permissionService.getPermissionPoint(x.id))==null?void 0:b.value)!=null?w:!1)===!1)return!1}return!0})):!0}_permissionCheckByPaste(e){return e.value===pe.SPECIAL_PASTE_VALUE||e.value===pe.SPECIAL_PASTE_FORMULA?this.permissionCheckWithRanges({workbookTypes:[m.WorkbookEditablePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission]}):e.value===pe.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:n,unitId:r,subUnitId:s}=t,a=e.toRange;a.endRow===n.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 g=d.startRow;g<=d.endRow;g++)for(let p=d.startColumn;p<=d.endColumn;p++){const f=(h=(u=n.getCell(g,p))==null?void 0:u.selectionProtection)==null?void 0:h[0];if((f==null?void 0:f[K.Edit])===!1)return!1}}),!0)}_permissionCheckByAutoFillCommand(e){if(!e)return!1;const{rows:t,cols:n}=e,r=t[0],s=t[t.length-1],a=n[0],c=n[n.length-1],d={startRow:r,endRow:s,startColumn:a,endColumn:c},u=m.getSheetCommandTarget(this._univerInstanceService);if(!u)return!1;const{worksheet:h,unitId:g,subUnitId:p}=u;return!this._rangeProtectionRuleModel.getSubunitRuleList(g,p).reduce((v,C)=>[...v,...C.ranges],[]).filter(v=>l.Rectangle.intersects(v,d)).some(v=>{var C,I;for(let R=v.startRow;R<=v.endRow;R++)for(let b=v.startColumn;b<=v.endColumn;b++){const w=(I=(C=h.getCell(R,b))==null?void 0:C.selectionProtection)==null?void 0:I[0];if((w==null?void 0:w[K.Edit])===!1)return!0}return!1})}_permissionCheckByMoveRangeCommand(e){const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:n,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 g=d.startRow;g<=d.endRow;g++)for(let p=d.startColumn;p<=d.endColumn;p++){const f=(h=(u=n.getCell(g,p))==null?void 0:u.selectionProtection)==null?void 0:h[0];if((f==null?void 0:f[K.Edit])===!1)return!1}}),!0)}_permissionCheckBySetRangeValue(e,t){let n=[];t.range?n=[t.range]:n=[new l.ObjectMatrix(t.value).getDataRange()];const{unitId:r,subUnitId:s}=t;return this.permissionCheckWithRanges(e,n,r,s)}_permissionCheckWithFormula(e){var s,a,c,d,u;const t=e.value,n=e.range,r=t.f;if(r){const h=r.substring(1),g=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),p=(s=e.unitId)!=null?s:g.getUnitId(),f=this._definedNamesService.getValueByName(p,h);if(f){let S=f.formulaOrRefString;S.startsWith(Q.operatorToken.EQUALS)&&(S=S.slice(1));const v=S.split(",");for(let C=0;C<v.length;C++){const I=v[C],R=Q.deserializeRangeWithSheet(I);if(R.sheetName){const b=g.getSheetBySheetName(R.sheetName);if(!b)return!1;const{startRow:w,endRow:y,startColumn:M,endColumn:A}=R.range;for(let N=w;N<=y;N++)for(let x=M;x<=A;x++){const D=(c=(a=b.getCell(N,x))==null?void 0:a.selectionProtection)==null?void 0:c[0];if((D==null?void 0:D[K.View])===!1)return!1}}}return!0}else{const S=this._lexerTreeBuilder.sequenceNodesBuilder(r);if(!S)return!0;for(let v=0;v<S.length;v++){const C=S[v];if(typeof C=="string")continue;const{token:I}=C,R=Q.deserializeRangeWithSheet(I),b=R.unitId?this._univerInstanceService.getUnit(R.unitId):this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!b)return!0;let w=R.sheetName?b.getSheetBySheetName(R.sheetName):b.getActiveSheet();const y=b.getUnitId();if(R.sheetName){if(w=b.getSheetBySheetName(R.sheetName),!w)return!0;const D=w==null?void 0:w.getSheetId();if(!this._permissionService.getPermissionPoint(new m.WorksheetViewPermission(y,D).id))return!1}if(!w)return!0;const{startRow:M,endRow:A,startColumn:N,endColumn:x}=R.range;for(let D=M;D<=A;D++)for(let k=N;k<=x;k++){const L=(u=(d=w.getCell(D,k))==null?void 0:d.selectionProtection)==null?void 0:u[0];if((L==null?void 0:L[K.View])===!1)return!1}}}}if(n){const h=m.getSheetCommandTarget(this._univerInstanceService);if(!h)return!1;const g=e.unitId||h.unitId,p=e.subUnitId||h.subUnitId,S=this._rangeProtectionRuleModel.getSubunitRuleList(g,p).filter(C=>C.ranges.some(I=>l.Rectangle.intersects(I,n))).map(C=>new m.RangeProtectionPermissionEditPoint(g,p,C.permissionId).id);if(!this._permissionService.composePermission(S).every(C=>C.value))return!1}return!0}};exports.SheetPermissionInterceptorBaseController=gv([l.OnLifecycle(l.LifecycleStages.Steady,exports.SheetPermissionInterceptorBaseController),Oe(0,l.ICommandService),Oe(1,l.IUniverInstanceService),Oe(2,l.IPermissionService),Oe(3,l.Inject(m.SheetsSelectionsService)),Oe(4,T.IDialogService),Oe(5,l.Inject(m.RangeProtectionRuleModel)),Oe(6,l.Inject(m.WorksheetProtectionRuleModel)),Oe(7,ht),Oe(8,l.Inject(l.LocaleService)),Oe(9,l.Inject(Q.LexerTreeBuilder)),Oe(10,l.IContextService),Oe(11,Q.IDefinedNamesService)],exports.SheetPermissionInterceptorBaseController);var pv=Object.defineProperty,fv=Object.getOwnPropertyDescriptor,Sv=(i,o,e,t)=>{for(var n=t>1?void 0:t?fv(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&pv(o,e,n),n},Cn=(i,o)=>(e,t)=>o(e,t,i);const vv="SHEET_PERMISSION_PASTE_PLUGIN";let Dn=class extends l.Disposable{constructor(o,e,t,n,r){super();E(this,"disposableCollection",new l.DisposableCollection);this._univerInstanceService=o,this._selectionManagerService=e,this._localService=t,this._sheetClipboardService=n,this._sheetPermissionInterceptorBaseController=r,this._initClipboardHook()}_initClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook({id:vv,onBeforePaste:o=>{var g,p,f;const[e]=$t([o.range]).ranges,t=(g=this._selectionManagerService.getCurrentLastSelection())==null?void 0:g.range;if(!t)return!1;const n={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}=n;let h=!0;for(let S=a;S<=c;S++)for(let v=d;v<=u;v++){const C=(f=(p=s.getCell(S,v))==null?void 0:p.selectionProtection)==null?void 0:f[0];if((C==null?void 0:C[K.Edit])===!1){h=!1;break}}return h||this._sheetPermissionInterceptorBaseController.haveNotPermissionHandle(this._localService.t("permission.dialog.pasteErr")),h}}))}};Dn=Sv([l.OnLifecycle(l.LifecycleStages.Steady,Dn),Cn(0,l.IUniverInstanceService),Cn(1,l.Inject(m.SheetsSelectionsService)),Cn(2,l.Inject(l.LocaleService)),Cn(3,l.Inject(tt)),Cn(4,l.Inject(exports.SheetPermissionInterceptorBaseController))],Dn);var Cv=Object.defineProperty,_v=Object.getOwnPropertyDescriptor,Iv=(i,o,e,t)=>{for(var n=t>1?void 0:t?_v(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&Cv(o,e,n),n},Le=(i,o)=>(e,t)=>o(e,t,i);exports.SheetPermissionInitController=class extends l.Disposable{constructor(o,e,t,n,r,s,a,c,d,u){super(),this._univerInstanceService=o,this._dialogService=e,this._permissionService=t,this._authzIoService=n,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(vi.UNIVER_SHEET),t=e.getUnitId(),n=e.getSheets(),r=new Map;n.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:ie.SelectRange,actions:[K.View,K.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,g=a.actions.find(p=>p.action===h);(g==null?void 0:g.allowed)!==void 0&&this._permissionService.updatePermissionPoint(u.id,g.allowed)})})})}_initRangePermissionChange(){this.disposeWithMe(this._rangeProtectionRuleModel.ruleChange$.subscribe(o=>{o.type!=="delete"?this._authzIoService.allowed({objectID:o.rule.permissionId,unitID:o.unitId,objectType:ie.SelectRange,actions:[K.Edit,K.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 n=o.rule,r=new t(n.unitId,n.subUnitId,n.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 n=new t(o.unitId,o.subUnitId);this._permissionService.updatePermissionPoint(n.id,n.value)}))}))}initWorkbookPermissionChange(o){const e=o||this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET).getUnitId();this._authzIoService.allowed({objectID:e,objectType:ie.Workbook,unitID:e,actions:m.defaultWorkbookPermissionPoints}).then(t=>{m.getAllWorkbookPermissionPoint().forEach(n=>{const r=new n(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:ie.Worksheet,actions:[K.Edit,K.View]}).then(e=>{m.getAllWorksheetPermissionPoint().forEach(t=>{const n=new t(o.unitId,o.subUnitId),r=n.subType,s=e.find(a=>a.action===r);s&&this._permissionService.updatePermissionPoint(n.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:ie.Worksheet,actions:m.defaultWorksheetPermissionPoint}).then(e=>{m.getAllWorksheetPermissionPointByPointPanel().forEach(t=>{const n=new t(o.unitId,o.subUnitId),r=n.subType,s=e.find(a=>a.action===r);s&&this._permissionService.updatePermissionPoint(n.id,s.allowed)})})}))}_initWorksheetPermissionFromSnapshot(){const o=[],e=this._univerInstanceService.getCurrentUnitForType(vi.UNIVER_SHEET),t=e.getUnitId(),n=e.getSheets(),r=new Map;n.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:ie.Worksheet,actions:[K.Edit,K.View]}));const d=this._worksheetProtectionPointRuleModel.getRule(t,a);d&&(r.set(d.permissionId,d),o.push({objectID:d.permissionId,unitID:t,objectType:ie.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,g=a.actions.find(p=>p.action===h);(g==null?void 0:g.allowed)!==void 0&&this._permissionService.updatePermissionPoint(u.id,g.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 n=t.getUnitId();m.getAllWorkbookPermissionPoint().forEach(r=>{let s=new r(n);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(n,s);o.has(d.id)&&(d=o.get(d.id)),this._permissionService.addPermissionPoint(d)}),this._rangeProtectionRuleModel.getSubunitRuleList(n,s).forEach(c=>{m.getAllRangePermissionPoint().forEach(d=>{let u=new d(n,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:n,subUnitId:r,row:s,col:a}=e,c=this._selectionProtectionRenderModel.getCellInfo(n,r,s,a).filter(d=>!!d.ruleId).map(d=>{const u=this._rangeProtectionRuleModel.getRule(n,r,d.ruleId)||{};return{...d,ranges:u.ranges}}).filter(d=>!!d.ranges);if(c.length){const d=c.some(h=>!(h!=null&&h[K.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:n,subUnitId:r}=e,s=this._worksheetProtectionRuleModel.getRule(n,r);if(s!=null&&s.permissionId&&s.name){const g=[{[K.View]:(c=(a=this._permissionService.getPermissionPoint(new m.WorksheetViewPermission(n,r).id))==null?void 0:a.value)!=null?c:!1,[K.Edit]:(u=(d=this._permissionService.getPermissionPoint(new m.WorksheetEditPermission(n,r).id))==null?void 0:d.value)!=null?u:!1}],p=!((h=g[0])!=null&&h[K.View]),f={...o,hasWorksheetRule:!0,selectionProtection:g};return p?(delete f.s,delete f.v,delete f.p,f):t(f)}return t(o)}}))}};exports.SheetPermissionInitController=Iv([l.OnLifecycle(l.LifecycleStages.Rendered,exports.SheetPermissionInitController),Le(0,l.IUniverInstanceService),Le(1,T.IDialogService),Le(2,l.IPermissionService),Le(3,l.IAuthzIoService),Le(4,l.Inject(m.RangeProtectionRuleModel)),Le(5,l.Inject(m.WorksheetProtectionRuleModel)),Le(6,l.Inject(l.UserManagerService)),Le(7,l.Inject(m.WorksheetProtectionPointModel)),Le(8,l.Inject(m.SheetInterceptorService)),Le(9,l.Inject(m.RangeProtectionRenderModel))],exports.SheetPermissionInitController);const Ya="data:image/png;base64,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",Rv="univer-spin-container",bv="univer-spin-overlay",Tv="univer-spinner",Ev="univer-spin",wv="univer-content-blur",hi={spinContainer:Rv,spinOverlay:bv,spinner:Tv,spin:Ev,contentBlur:wv},Ga=({loading:i,children:o})=>_.jsxs("div",{className:hi.spinContainer,children:[i&&_.jsx("div",{className:hi.spinOverlay,children:_.jsx("div",{className:hi.spinner})}),_.jsx("div",{className:i?hi.contentBlur:"",children:o})]}),Pv="univer-permission-panel-detail-wrapper",yv="univer-radio-group-vertical",Mv="univer-sheet-permission-design-person-panel",Ov="univer-sheet-permission-design-person-panel-header",Av="univer-sheet-permission-design-person-panel-header-add",Nv="univer-sheet-permission-design-person-panel-split",xv="univer-sheet-permission-design-person-panel-content-item",Dv="univer-sheet-permission-design-person-panel-content-item-name",kv="univer-sheet-permission-design-person-panel-content-item-select",Hv="univer-sheet-permission-design-person-panel-content",Vv="univer-sheet-permission-user-list-empty",Wv="univer-sheet-permission-user-list-empty-text",Lv="univer-sheet-permission-panel-title",Uv="univer-permission-range-selector",Bv="univer-permission-range-selector-error",Fv="univer-sheet-permission-panel-name-input-error",jv="univer-permission-range-selector-error-text",Xv="univer-sheet-permission-panel-name-input-error-text",ce={permissionPanelDetailWrapper:Pv,radioGroupVertical:yv,sheetPermissionDesignPersonPanel:Mv,sheetPermissionDesignPersonPanelHeader:Ov,sheetPermissionDesignPersonPanelHeaderAdd:Av,sheetPermissionDesignPersonPanelSplit:Nv,sheetPermissionDesignPersonPanelContentItem:xv,sheetPermissionDesignPersonPanelContentItemName:Dv,sheetPermissionDesignPersonPanelContentItemSelect:kv,sheetPermissionDesignPersonPanelContent:Hv,sheetPermissionUserListEmpty:Vv,sheetPermissionUserListEmptyText:Wv,sheetPermissionPanelTitle:Lv,permissionRangeSelector:Uv,permissionRangeSelectorError:Bv,sheetPermissionPanelNameInputError:Fv,permissionRangeSelectorErrorText:jv,sheetPermissionPanelNameInputErrorText:Xv},zv=({fromSheetBar:i})=>{var D,k,L;const o=l.useDependency(l.LocaleService),e=l.useDependency(T.IDialogService),t=l.useDependency(l.IUniverInstanceService),n=l.useDependency(m.SheetsSelectionsService),r=l.useDependency(ve),s=T.useObservable(r.rule$,r.rule),a=l.useDependency(l.UserManagerService),c=l.useDependency(un),d=l.useDependency(l.IAuthzIoService),u=l.useDependency(T.ISidebarService),h=l.useDependency(m.RangeProtectionRuleModel),g=l.useDependency(m.WorksheetProtectionRuleModel),p=T.useObservable(r.rangeErrorMsg$),f=t.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),S=f.getActiveSheet(),v=f.getUnitId(),C=S.getSheetId(),I=T.useObservable(c.selectUserList$,c.selectUserList),[R,b]=H.useState(I.length?"designedUserCanEdit":"onlyMe"),[w,y]=H.useState(Wt.othersCanView),[M,A]=H.useState(!1),N=async()=>{const V=await d.listCollaborators({objectID:v,unitID:v});V.forEach(j=>{j!=null&&j.subject&&a.addUser(j.subject)}),c.setUserList(V),e.open({id:wi,title:{title:""},children:{label:na},width:280,destroyOnClose:!0,onClose:()=>e.close(wi),className:"sheet-permission-user-dialog"})},x=V=>{let j="";if(V.length===0)j=o.t("permission.panel.emptyRangeError");else if(V.length>1){let Z=!1;for(let z=0;z<V.length;z++){for(let F=z+1;F<V.length;F++)if(l.Rectangle.intersects(V[z],V[F])){Z=!0;break}if(Z)break}Z&&(j=o.t("permission.panel.rangeOverlapError"))}if(!j){if(g.getRule(v,C)&&!(s!=null&&s.permissionId))return j=o.t("permission.panel.rangeOverlapOverPermissionError"),j;const z=h.getSubunitRuleList(v,C).filter(X=>X.permissionId!==(s==null?void 0:s.permissionId)).find(X=>X.ranges.some(B=>V.some(Y=>l.Rectangle.intersects(B,Y))));(z==null?void 0:z.ranges.find(X=>V.some(B=>l.Rectangle.intersects(X,B))))&&(j=o.t("permission.panel.rangeOverlapOverPermissionError"))}return j};return H.useEffect(()=>{var X,B;if(s==null?void 0:s.permissionId){s.unitType===ie.Worksheet&&r.setRule({ranges:[{startRow:0,startColumn:0,endRow:S.getRowCount()-1,endColumn:S.getColumnCount()-1,rangeType:l.RANGE_TYPE.ALL}]});return}i&&(n.clearCurrentSelections(),n.addSelections([{primary:null,style:null,range:{startRow:0,startColumn:0,endRow:S.getRowCount()-1,endColumn:S.getColumnCount()-1,rangeType:l.RANGE_TYPE.ALL}}]));const j=(B=(X=n.getCurrentSelections())==null?void 0:X.map(Y=>Y.range))!=null?B:[],Z=x(j);r.setRangeErrorMsg(Z);const z=j!=null&&j.length?j.map(Y=>{const W=Q.serializeRange(Y);return W==="NaN"?"":W}).filter(Y=>!!Y).join(","):"",F=S.getName();r.setRule({ranges:j,name:i?`${F}`:`${F}(${z})`,unitId:v,subUnitId:C,unitType:i?ie.Worksheet:ie.SelectRange})},[s==null?void 0:s.permissionId,i,n,r,C,v,S]),H.useEffect(()=>{const V=async()=>{const j=s==null?void 0:s.permissionId;A(!0);const Z=await d.listCollaborators({objectID:j,unitID:v}),z=Z.filter(X=>X.role===_e.Editor);c.setSelectUserList(z),A(!1),(z==null?void 0:z.length)>0&&b("designedUserCanEdit");const F=Z.filter(X=>X.role===_e.Reader);F.length===0&&y(Wt.noOneElseCanView),c.setOldCollaboratorList(z.concat(F))};s!=null&&s.permissionId?V():(c.setSelectUserList([]),b("onlyMe"))},[s==null?void 0:s.permissionId]),H.useEffect(()=>{(async()=>{const j=await d.listCollaborators({objectID:v,unitID:v});j.forEach(Z=>{Z!=null&&Z.subject&&a.addUser(Z.subject)}),c.setUserList(j.filter(Z=>Z.role===_e.Editor)),c.setAllUserList(j.filter(Z=>Z.role===_e.Editor||Z.role===_e.Reader))})()},[]),H.useEffect(()=>{r.setRule({viewStatus:w})},[r,w]),H.useEffect(()=>{const V=t.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!V)return;const j=V.activeSheet$.subscribe(Z=>{(Z==null?void 0:Z.getSheetId())!==C&&u.close()});return()=>{j.unsubscribe()}},[u,C,t]),(D=s==null?void 0:s.ranges)==null||D.map(V=>Q.serializeRange(V)).join(","),_.jsxs("div",{className:ce.permissionPanelDetailWrapper,children:[_.jsxs(J.FormLayout,{className:ce.sheetPermissionPanelTitle,label:o.t("permission.panel.protectedRange"),children:[_.jsx(T.RangeSelector,{className:ue(ce.permissionRangeSelector),textEditorClassName:ue({[ce.permissionRangeSelectorError]:p}),value:(k=s==null?void 0:s.ranges)==null?void 0:k.map(V=>Q.serializeRange(V)).join(","),id:l.createInternalEditorID("sheet-permission-panel"),openForSheetUnitId:v,openForSheetSubUnitId:C,onChange:V=>{if(V.some(G=>!l.isValidRange(G.range)||G.range.endColumn<G.range.startColumn||G.range.endRow<G.range.startRow))return;const j=t.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),Z=j.getActiveSheet(),z=j.getUnitId(),F=Z.getSheetId(),X=V.map(G=>{const q={...G.range},$=Z.getRowCount(),ne=Z.getColumnCount();return m.setEndForRange(q,$,ne),q}),B=x(X);if(r.setRangeErrorMsg(B),B)return;const Y=Z.getName(),W=X.map(G=>{const q=Q.serializeRange(G);return q==="NaN"?"":q}).filter(G=>!!G).join(","),U={ranges:X,unitId:z,subUnitId:F,unitType:ie.SelectRange,name:`${Y}(${W})`};if(U.ranges.length===1){const{startRow:G,endRow:q,startColumn:$,endColumn:ne}=U.ranges[0];G===0&&q===Z.getRowCount()-1&&$===0&&Z.getColumnCount()-1===ne&&(U.unitType=ie.Worksheet,U.name=`${Y}`)}r.setRule(U)}}),p&&_.jsx("span",{className:ce.sheetPermissionPanelNameInputErrorText,children:p})]}),_.jsx(J.FormLayout,{className:ce.sheetPermissionPanelTitle,label:o.t("permission.panel.permissionDirection"),children:_.jsx(J.Input,{value:(L=s==null?void 0:s.description)!=null?L:"",onChange:V=>r.setRule({description:V}),placeholder:o.t("permission.panel.permissionDirectionPlaceholder")})}),_.jsx(J.FormLayout,{className:ce.sheetPermissionPanelTitle,label:o.t("permission.panel.editPermission"),children:_.jsxs(J.RadioGroup,{value:R,onChange:V=>{b(V),V==="onlyMe"&&c.setSelectUserList([])},className:ce.radioGroupVertical,children:[_.jsx(J.Radio,{value:"onlyMe",children:_.jsx("span",{className:ce.text,children:o.t("permission.panel.onlyICanEdit")})}),_.jsx(J.Radio,{value:"designedUserCanEdit",children:_.jsx("span",{className:ce.text,children:o.t("permission.panel.designedUserCanEdit")})})]})}),R==="designedUserCanEdit"&&_.jsx("div",{className:ce.sheetPermissionDesignPersonPanel,children:_.jsxs(Ga,{loading:M,children:[_.jsxs("div",{className:ce.sheetPermissionDesignPersonPanelHeader,children:[_.jsx("span",{children:o.t("permission.panel.designedPerson")}),_.jsx("span",{className:ce.sheetPermissionDesignPersonPanelHeaderAdd,onClick:N,children:o.t("permission.panel.addPerson")})]}),_.jsx("div",{className:ce.sheetPermissionDesignPersonPanelSplit}),_.jsx("div",{className:ce.sheetPermissionDesignPersonPanelContent,children:(I==null?void 0:I.length)>0?I.map(V=>{var j,Z,z;return _.jsxs("div",{className:ce.sheetPermissionDesignPersonPanelContentItem,children:[_.jsx(J.Avatar,{size:24,src:(j=V.subject)==null?void 0:j.avatar}),_.jsx("span",{className:ce.sheetPermissionDesignPersonPanelContentItemName,children:(Z=V.subject)==null?void 0:Z.name}),_.jsx(J.Select,{className:ce.sheetPermissionDesignPersonPanelContentItemSelect,value:"edit",onChange:F=>{F==="delete"&&c.setSelectUserList(I.filter(X=>{var B,Y;return((B=X.subject)==null?void 0:B.userID)!==((Y=V.subject)==null?void 0:Y.userID)}))},options:[{label:`${o.t("permission.panel.canEdit")}`,value:"edit"},{label:`${o.t("permission.panel.delete")}`,value:"delete"}]})]},(z=V.subject)==null?void 0:z.userID)}):_.jsxs("div",{className:ce.sheetPermissionUserListEmpty,children:[_.jsx("img",{width:240,height:120,src:Ya,alt:""}),_.jsx("p",{className:ce.sheetPermissionUserListEmptyText,children:o.t("permission.dialog.userEmpty")})]})})]})}),_.jsx(J.FormLayout,{className:ce.sheetPermissionPanelTitle,label:o.t("permission.panel.viewPermission"),children:_.jsxs(J.RadioGroup,{value:w,onChange:V=>y(V),className:ce.radioGroupVertical,children:[_.jsx(J.Radio,{value:Wt.othersCanView,children:_.jsx("span",{className:ce.text,children:o.t("permission.panel.othersCanView")})}),_.jsx(J.Radio,{value:Wt.noOneElseCanView,children:_.jsx("span",{className:ce.text,children:o.t("permission.panel.noOneElseCanView")})})]})})]})},Za=(i=[])=>{const o=l.useDependency(Mt);H.useEffect(()=>{const e=i.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)})}},[i])},Yv="data:image/png;base64,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",Gv="univer-sheet-permission-list-panel-wrapper",Zv="univer-sheet-permission-list-panel-header",Kv="univer-sheet-permission-list-panel-header-type",qv="univer-sheet-permission-list-panel-header-type-bottom",Qv="univer-sheet-permission-list-panel-header-select",Jv="univer-sheet-permission-list-item-header-icon",$v="univer-sheet-permission-list-item",eC="univer-sheet-permission-list-item-header",tC="univer-sheet-permission-list-item-header-name",nC="univer-sheet-permission-list-item-header-operator",iC="univer-sheet-permission-list-item-split",oC="univer-sheet-permission-list-item-content-edit",rC="univer-sheet-permission-list-item-content-view",sC="univer-sheet-permission-list-item-content-desc",lC="univer-sheet-permission-list-empty",aC="univer-sheet-permission-list-empty-text",cC="univer-sheet-permission-list-item-content-title",dC="univer-sheet-permission-list-item-content-sub",se={sheetPermissionListPanelWrapper:Gv,sheetPermissionListPanelHeader:Zv,sheetPermissionListPanelHeaderType:Kv,sheetPermissionListPanelHeaderTypeBottom:qv,sheetPermissionListPanelHeaderSelect:Qv,sheetPermissionListItemHeaderIcon:Jv,sheetPermissionListItem:$v,sheetPermissionListItemHeader:eC,sheetPermissionListItemHeaderName:tC,sheetPermissionListItemHeaderOperator:nC,sheetPermissionListItemSplit:iC,sheetPermissionListItemContentEdit:oC,sheetPermissionListItemContentView:rC,sheetPermissionListItemContentDesc:sC,sheetPermissionListEmpty:lC,sheetPermissionListEmptyText:aC,sheetPermissionListItemContentTitle:cC,sheetPermissionListItemContentSub:dC},uC=()=>{const[i,o]=H.useState(!0),[e,t]=H.useState(!1),n=l.useDependency(ve),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),g=l.useDependency(T.ISidebarService),p=l.useDependency(l.IAuthzIoService),f=l.useDependency(l.IPermissionService),v=l.useDependency(l.UserManagerService).getCurrentUser(),[C,I]=H.useState([]);T.useObservable(a.ruleRefresh$),T.useObservable(s.ruleRefresh$);const R=H.useCallback(async x=>{var Y;const D=d.getActiveSheet(),k=d.getUnitId(),L=D.getSheetId(),V=[],j=[];d.getSheets().forEach(W=>{const U=W.getSheetId();s.getSubunitRuleList(k,U).forEach($=>{$.permissionId&&$.name&&V.push($.permissionId)});const q=a.getRule(k,U);q!=null&&q.permissionId&&q.name&&j.push(q.permissionId)});const Z=[...V,...j],z=await p.list({objectIDs:Z,unitID:k,actions:[K.View,K.Edit]}),F=s.getSubunitRuleList(k,L).map(W=>W.permissionId),X=(Y=a.getRule(k,L))==null?void 0:Y.permissionId;X&&F.push(X);const B=z.filter(W=>{var U;return F.includes(W.objectID)||W.objectID===((U=a.getRule(k,L))==null?void 0:U.permissionId)});return x?B:z},[]),[b,w]=H.useState([]);H.useEffect(()=>{const x=O.merge(s.ruleChange$,a.ruleChange$).subscribe(async()=>{const D=await R(i);w(D)});return()=>{x.unsubscribe()}},[i]),H.useEffect(()=>{const x=d.activeSheet$.subscribe(async()=>{const D=await R(!0);w(D)});return()=>{x.unsubscribe()}},[]);const y=x=>{const{unitId:D,subUnitId:k,unitType:L}=x;let V;L===ie.Worksheet?V=h.executeCommand(yt.id,{unitId:D,subUnitId:k,rule:x}):L===ie.SelectRange&&(V=h.executeCommand(m.DeleteRangeProtectionCommand.id,{unitId:D,subUnitId:k,rule:x})),V&&(t(!e),x.ranges===C&&I([]))};Za(C);const M=new Map;d.getSheets().forEach(x=>{const D=x.getSheetId();s.getSubunitRuleList(u,D).forEach(V=>{M.set(V.permissionId,V)});const L=a.getRule(u,D);L&&M.set(L==null?void 0:L.permissionId,L)});const A=x=>{n.setRule(x),n.setOldRule(x),h.executeCommand(m.SetWorksheetActiveOperation.id,{unitId:x.unitId,subUnitId:x.subUnitId});const D={header:{title:"permission.panel.title"},children:{label:ei,showDetail:!0},width:330,footer:{label:ti,showDetail:!0}};g.open(D)},N=async x=>{o(x);const D=await R(x);w(D)};return _.jsxs("div",{className:se.sheetPermissionListPanelWrapper,children:[_.jsxs("div",{className:se.sheetPermissionListPanelHeader,children:[_.jsxs("div",{className:se.sheetPermissionListPanelHeaderType,onClick:()=>N(!0),children:[_.jsx("div",{className:ue({[se.sheetPermissionListPanelHeaderSelect]:i}),children:r.t("permission.panel.currentSheet")}),i&&_.jsx("div",{className:se.sheetPermissionListPanelHeaderTypeBottom})]}),_.jsxs("div",{className:se.sheetPermissionListPanelHeaderType,onClick:()=>N(!1),children:[_.jsx("div",{className:ue({[se.sheetPermissionListPanelHeaderSelect]:!i}),children:r.t("permission.panel.allSheet")}),!i&&_.jsx("div",{className:se.sheetPermissionListPanelHeaderTypeBottom})]})]}),(b==null?void 0:b.length)>0?_.jsx("div",{className:se.sheetPermissionListPanelContent,children:b==null?void 0:b.map(x=>{var Y,W,U,G,q;const D=M.get(x.objectID);if(!D)return null;const k=x.actions.find($=>$.action===K.Edit),L=k==null?void 0:k.allowed,V=x.actions.find($=>$.action===K.View),j=V==null?void 0:V.allowed,z=((W=(Y=f.getPermissionPoint(new m.WorkbookManageCollaboratorPermission(u).id))==null?void 0:Y.value)!=null?W:!1)||v.userID===((U=x.creator)==null?void 0:U.userID);let F="";const X=d.getSheetBySheetId(D.subUnitId),B=X==null?void 0:X.getName();if(D.unitType===ie.SelectRange){const $=D.ranges,ne=$!=null&&$.length?$.map(he=>{const Ce=Q.serializeRange(he);return Ce==="NaN"?"":Ce}).filter(he=>!!he).join(","):"";F=`${B}(${ne})`}else D.unitType===ie.Worksheet&&(F=B||"");return _.jsxs("div",{className:se.sheetPermissionListItem,onMouseMove:()=>{const{subUnitId:$,unitType:ne}=D,he=d.getActiveSheet();if(!he)return!1;const Ce=he.getSheetId();if($!==Ce)return!1;if(ne===ie.SelectRange){const Me=D.ranges||[];Me!==C&&I(Me)}else if(ne===ie.Worksheet){const Me=[{startRow:0,endRow:he.getRowCount()-1,startColumn:0,endColumn:he.getColumnCount()-1}];Me!==C&&I(Me)}},onMouseLeave:()=>I([]),children:[_.jsxs("div",{className:se.sheetPermissionListItemHeader,children:[_.jsx(J.Tooltip,{title:F,children:_.jsx("div",{className:se.sheetPermissionListItemHeaderName,children:F})}),z&&_.jsxs("div",{className:se.sheetPermissionListItemHeaderOperator,children:[_.jsx(J.Tooltip,{title:r.t("permission.panel.edit"),children:_.jsx("div",{className:se.sheetPermissionListItemHeaderIcon,onClick:()=>A(D),children:_.jsx(qr,{})})}),_.jsx(J.Tooltip,{title:r.t("permission.panel.delete"),children:_.jsx("div",{className:se.sheetPermissionListItemHeaderIcon,onClick:()=>y(D),children:_.jsx(lo,{})})})]})]}),_.jsx("div",{className:se.sheetPermissionListItemSplit}),_.jsxs("div",{className:se.sheetPermissionListItemContent,children:[_.jsxs("div",{className:se.sheetPermissionListItemContentEdit,children:[_.jsx(J.Tooltip,{title:(G=x.creator)==null?void 0:G.userID,children:_.jsx("div",{children:_.jsx(J.Avatar,{src:(q=x.creator)==null?void 0:q.avatar,style:{marginRight:6},size:24})})}),_.jsx("span",{className:se.sheetPermissionListItemContentTitle,children:r.t("permission.panel.created")}),_.jsx("span",{className:se.sheetPermissionListItemContentSub,children:L?`${r.t("permission.panel.iCanEdit")}`:`${r.t("permission.panel.iCanNotEdit")}`})]}),_.jsxs("div",{className:se.sheetPermissionListItemContentView,children:[_.jsx("span",{className:se.sheetPermissionListItemContentTitle,children:r.t("permission.panel.viewPermission")}),_.jsx("span",{className:se.sheetPermissionListItemContentSub,children:j?`${r.t("permission.panel.iCanView")}`:`${r.t("permission.panel.iCanNotView")}`})]}),D.description&&_.jsx(J.Tooltip,{title:D.description,children:_.jsx("div",{className:se.sheetPermissionListItemContentDesc,children:D.description})})]})]},x.objectID)})}):_.jsxs("div",{className:se.sheetPermissionListEmpty,children:[_.jsx("img",{width:240,height:120,src:Yv,alt:""}),_.jsx("p",{className:se.sheetPermissionListEmptyText,children:r.t("permission.dialog.listEmpty")})]})]})},hC=({showDetail:i,fromSheetBar:o})=>i?_.jsx(zv,{fromSheetBar:o}):_.jsx(uC,{}),mC="univer-sheet-permission-panel-footer",gC="univer-sheet-permission-panel-footer-cancel",pC="univer-sheet-permission-panel-add-button",Cr={sheetPermissionPanelFooter:mC,sheetPermissionPanelFooterCancel:gC,sheetPermissionPanelAddButton:pC},fC=()=>{var f,S,v,C;const i=l.useDependency(T.ISidebarService),o=l.useDependency(l.LocaleService),e=l.useDependency(l.IUniverInstanceService),t=l.useDependency(l.IPermissionService),n=e.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),r=n.getUnitId(),s=T.useObservable(n.activeSheet$),a=(S=(f=t.getPermissionPoint(new m.WorkbookEditablePermission(r).id))==null?void 0:f.value)!=null?S:!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(ve),h=l.useDependency(m.WorksheetProtectionRuleModel),g=s==null?void 0:s.getSheetId();if(!g)return null;const p=h.getRule(r,g);return!d||p?null:_.jsx("div",{children:_.jsxs(J.Button,{className:Cr.sheetPermissionPanelAddButton,type:"primary",onClick:()=>{u.resetRule();const I={header:{title:`${o.t("permission.panel.title")}`},children:{label:ei,showDetail:!0},width:330,footer:{label:ti,showDetail:!0}};i.open(I)},children:[_.jsx("div",{children:"+ "}),o.t("permission.button.addNewPermission")]})})},SC=()=>{const i=l.useDependency(ve),o=T.useObservable(i.rule$,i.rule),e=l.useDependency(T.ISidebarService),t=l.useDependency(l.IAuthzIoService),n=l.useDependency(l.LocaleService),r=l.useDependency(l.ICommandService),s=l.useDependency(un),a=T.useObservable(i.rangeErrorMsg$);return _.jsxs("div",{className:Cr.sheetPermissionPanelFooter,children:[_.jsx(J.Button,{type:"primary",onClick:async()=>{if(!o.name||a)return;const c=s.selectUserList;o.viewStatus===Wt.othersCanView&&s.allUserList.forEach(h=>{if(!c.some(p=>p.id===h.id)){const p={...h,role:_e.Reader};c.push(p)}});const d=_m(c,s.oldCollaboratorList);if(o.permissionId){const h=i.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 g=o.permissionId;d||(o.unitType===ie.Worksheet?g=await t.create({worksheetObject:{collaborators:c,unitID:o.unitId,name:o.name,strategies:[{role:_e.Editor,action:K.Edit},{role:_e.Reader,action:K.View}],scope:Ht.SomeCollaborator},objectType:ie.Worksheet}):g=await t.create({selectRangeObject:{collaborators:c,unitID:o.unitId,name:o.name,readScope:Ht.SomeCollaborator},objectType:ie.SelectRange})),r.executeCommand(_o.id,{rule:{...o,permissionId:g}})}}else if(o.unitType===ie.Worksheet){const h=await t.create({worksheetObject:{collaborators:c,unitID:o.unitId,name:o.name,strategies:[{role:_e.Editor,action:K.Edit},{role:_e.Reader,action:K.View}],scope:Ht.SomeCollaborator},objectType:ie.Worksheet}),{ranges:g=[],...p}=o;p.permissionId=h,r.executeCommand(ni.id,{rule:p,unitId:o.unitId})}else if(o.unitType===ie.SelectRange){const h=await t.create({selectRangeObject:{collaborators:c,unitID:o.unitId,name:o.name,readScope:Ht.SomeCollaborator},objectType:ie.SelectRange});r.executeCommand(m.AddRangeProtectionCommand.id,{rule:o,permissionId:h})}i.resetRule(),s.setSelectUserList([]);const u={header:{title:`${n.t("permission.panel.title")}`},children:{label:ei,showDetail:!1},width:330,footer:{label:ti,showDetail:!1}};e.open(u)},children:n.t("permission.button.confirm")}),_.jsx(J.Button,{className:Cr.sheetPermissionPanelFooterCancel,onClick:()=>{i.resetRule(),s.setSelectUserList([]),e.close()},children:n.t("permission.button.cancel")})]})},vC=({showDetail:i})=>i?_.jsx(SC,{}):_.jsx(fC,{}),CC="univer-sheet-permission-user-dialog-wrapper",_C="univer-sheet-permission-user-dialog-search-input",IC="univer-sheet-permission-user-list",RC="univer-sheet-permission-user-list-empty",bC="univer-sheet-permission-user-list-empty-text",TC="univer-sheet-permission-user-item",EC="univer-sheet-permission-user-item-name",wC="univer-sheet-permission-split",PC="univer-sheet-permission-user-dialog-footer",yC="univer-sheet-permission-user-dialog-footer-confirm",MC="univer-sheet-permission-user-dialog-button",Pe={sheetPermissionUserDialogWrapper:CC,sheetPermissionUserDialogSearchInput:_C,sheetPermissionUserList:IC,sheetPermissionUserListEmpty:RC,sheetPermissionUserListEmptyText:bC,sheetPermissionUserItem:TC,sheetPermissionUserItemName:EC,sheetPermissionSplit:wC,sheetPermissionUserDialogFooter:PC,sheetPermissionUserDialogFooterConfirm:yC,sheetPermissionUserDialogButton:MC},OC=()=>{const[i,o]=H.useState(""),e=l.useDependency(l.LocaleService),t=l.useDependency(T.IDialogService),n=l.useDependency(un),s=n.userList.filter(u=>{var h;return((h=u.subject)==null?void 0:h.name.toLocaleLowerCase().includes(i.toLocaleLowerCase()))&&u.role===_e.Editor}),[a,c]=H.useState(n.selectUserList),d=u=>{if((a==null?void 0:a.findIndex(g=>{var p,f;return((p=g.subject)==null?void 0:p.userID)===((f=u.subject)==null?void 0:f.userID)}))===-1){const g={...u};c([...a,g])}else{const g=a.filter(p=>{var f,S;return((f=p.subject)==null?void 0:f.userID)!==((S=u.subject)==null?void 0:S.userID)});c(g)}};return _.jsxs("div",{className:Pe.sheetPermissionUserDialogWrapper,children:[_.jsx("div",{className:Pe.sheetPermissionUserDialogSearch,children:_.jsx(J.Input,{placeholder:"search",className:Pe.sheetPermissionUserDialogSearchInput,value:i,onChange:u=>o(u)})}),_.jsx("div",{className:Pe.sheetPermissionUserList,children:(s==null?void 0:s.length)>0?_.jsx(_.Fragment,{children:s==null?void 0:s.map(u=>{var h,g,p;return _.jsxs("div",{className:Pe.sheetPermissionUserItem,onClick:()=>d(u),children:[_.jsx(J.Avatar,{src:(h=u.subject)==null?void 0:h.avatar,size:24}),_.jsx("div",{className:Pe.sheetPermissionUserItemName,children:(g=u.subject)==null?void 0:g.name}),(a==null?void 0:a.findIndex(f=>{var S,v;return((S=f.subject)==null?void 0:S.userID)===((v=u.subject)==null?void 0:v.userID)}))!==-1&&_.jsx("div",{children:_.jsx(ut,{})})]},(p=u.subject)==null?void 0:p.userID)})}):_.jsxs("div",{className:Pe.sheetPermissionUserListEmpty,children:[_.jsx("img",{width:240,height:120,src:Ya,alt:""}),_.jsx("p",{className:Pe.sheetPermissionUserListEmptyText,children:e.t("permission.dialog.userEmpty")})]})}),_.jsx("div",{className:Pe.sheetPermissionSplit}),_.jsxs("div",{className:Pe.sheetPermissionUserDialogFooter,children:[_.jsx(J.Button,{className:Pe.sheetPermissionUserDialogButton,onClick:()=>t.close(wi),children:e.t("permission.button.cancel")}),_.jsx(J.Button,{type:"primary",onClick:()=>{n.setSelectUserList(a),t.close(wi)},className:ue(Pe.sheetPermissionUserDialogFooterConfirm,Pe.sheetPermissionUserDialogButton),children:e.t("permission.button.confirm")})]})]})},AC="univer-sheet-permission-dialog-wrapper",NC="univer-sheet-permission-dialog-split",xC="univer-sheet-permission-dialog-item",DC="univer-sheet-permission-user-dialog-footer",kC="univer-sheet-permission-user-dialog-footer-confirm",HC="univer-sheet-permission-user-dialog-button",rt={sheetPermissionDialogWrapper:AC,sheetPermissionDialogSplit:NC,sheetPermissionDialogItem:xC,sheetPermissionUserDialogFooter:DC,sheetPermissionUserDialogFooterConfirm:kC,sheetPermissionUserDialogButton:HC},VC=()=>{const i=l.useDependency(l.LocaleService),o=l.useDependency(l.IUniverInstanceService),e=l.useDependency(l.IAuthzIoService),t=l.useDependency(m.WorksheetProtectionPointModel),n=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]=H.useState([]),u=l.useDependency(l.ICommandService),[h,g]=H.useState(()=>!!t.getRule(s.getUnitId(),a.getSheetId())),[p,f]=H.useState(()=>Object.keys(ui).reduce((v,C)=>(v[C]={text:i.t(`permission.panel.${ui[Number(C)]}`),allowed:!0},v),{}));H.useEffect(()=>{(async()=>{const C=s.getUnitId(),I=await e.listCollaborators({objectID:C,unitID:C});d(I)})()},[]),H.useEffect(()=>{(async()=>{const C=s.getUnitId(),I=t.getRule(C,a.getSheetId());if(!I)return;g(!0);const b=(await e.list({unitID:s.getUnitId(),objectIDs:[I.permissionId],actions:hf}))[0].strategies.reduce((w,y)=>(ui[y.action]&&(w[y.action]={text:i.t(`permission.panel.${ui[y.action]}`),allowed:y.role!==_e.Owner}),w),{});f(b),setTimeout(()=>{g(!1)},100)})()},[]);const S=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(),R=C.getSheetId(),b=t.getRule(I,R),w=Object.keys(p).map(M=>({action:Number(M),role:p[M].allowed?_e.Editor:_e.Owner}));let y=b==null?void 0:b.permissionId;y?e.update({objectType:ie.Worksheet,objectID:y,unitID:I,strategies:w,share:void 0,name:""}).then(()=>{m.getAllWorksheetPermissionPoint().forEach(M=>{const A=new M(I,R),N=A.subType,x=w.find(D=>D.action===N);x&&r.updatePermissionPoint(A.id,x.role===_e.Editor)})}):(y=await e.create({objectType:ie.Worksheet,worksheetObject:{unitID:I,collaborators:c,name:"",strategies:w,scope:Ht.AllCollaborator}}),u.executeCommand(m.SetWorksheetPermissionPointsCommand.id,{rule:{permissionId:y,unitId:I,subUnitId:R}}))};return _.jsx(Ga,{loading:h,children:_.jsx("div",{className:rt.sheetPermissionDialogWrapper,children:_.jsxs(_.Fragment,{children:[_.jsx("div",{className:rt.sheetPermissionDialogSplit}),Object.keys(p).map(v=>{const C=p[v],{text:I,allowed:R}=C;return _.jsxs("div",{className:rt.sheetPermissionDialogItem,children:[_.jsx("div",{children:I}),_.jsx(J.Switch,{defaultChecked:R,onChange:()=>{f({...p,[v]:{...C,allowed:!R}})}})]},I)}),_.jsx("div",{className:rt.sheetPermissionDialogSplit}),_.jsxs("div",{className:rt.sheetPermissionUserDialogFooter,children:[_.jsx(J.Button,{className:rt.sheetPermissionUserDialogButton,onClick:()=>{n.close(Pi)},children:i.t("permission.button.cancel")}),_.jsx(J.Button,{type:"primary",onClick:()=>{S(),n.close(Pi)},className:ue(rt.sheetPermissionUserDialogFooterConfirm,rt.sheetPermissionUserDialogButton),children:i.t("permission.button.confirm")})]})]})})})},WC="univer-sheet-permission-alert-dialog",LC="univer-sheet-permission-alert-dialog-title",UC="univer-sheet-permission-alert-dialog-button",Go={sheetPermissionAlertDialog:WC,sheetPermissionAlertDialogTitle:LC,sheetPermissionAlertDialogButton:UC},BC=({errorMsg:i})=>{const o=l.useDependency(l.LocaleService),e=l.useDependency(T.IDialogService);return _.jsxs("div",{className:Go.sheetPermissionAlertDialog,children:[_.jsx("h1",{className:Go.sheetPermissionAlertDialogTitle,children:o.t("permission.dialog.alert")}),_.jsx("p",{children:i||o.t("permission.dialog.alertContent")}),_.jsx("div",{className:Go.sheetPermissionAlertDialogButton,children:_.jsx(J.Button,{type:"primary",onClick:()=>{e.close(vr)},children:o.t("permission.button.confirm")})})]})},Ka="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNCIgaGVpZ2h0PSI0IiB2aWV3Qm94PSIwIDAgNCA0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWFzayBpZD0ibWFzazBfNzU5XzExMDgiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjRDZEOEQ5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF83NTlfMTEwOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTS0zLjY0MDAyIDMuNDQxNDFMMi4wNzM5NyAtMi4yNzI1OEwyLjc4MTA4IC0xLjU2NTQ4TC0yLjkzMjkxIDQuMTQ4NTJMLTMuNjQwMDIgMy40NDE0MVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0tMS41MTg2OCA1LjU2Mjc1TDQuMTk1MzEgLTAuMTUxMjQ1TDQuOTAyNDIgMC41NTU4NjJMLTAuODExNTc1IDYuMjY5ODZMLTEuNTE4NjggNS41NjI3NVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjYwMjY1NiA3LjY4NDAzTDYuMzE2NjUgMS45NzAwM0w3LjAyMzc2IDIuNjc3MTRMMS4zMDk3NiA4LjM5MTEzTDAuNjAyNjU2IDcuNjg0MDNaIiBmaWxsPSIjRDZEOERCIi8+CjwvZz4KPC9zdmc+",qa="RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY",Qa="RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY",FC=25,jC=80;class Ja extends P.SheetExtension{constructor(){super();E(this,"_pattern",null);E(this,"_img",new Image);E(this,"renderCache",new Set);this._img.src=Ka}clearCache(){this.renderCache.clear()}draw(e,t,n,r){const{rowHeightAccumulation:s,columnWidthAccumulation:a,worksheet:c,dataMergeCache:d}=n;c&&(e.save(),this._pattern||(this._pattern=e.createPattern(this._img,"repeat")),this.renderCache.clear(),l.Range.foreach(n.rowColumnSegment,(u,h)=>{if(!c.getColVisible(h)||!c.getRowVisible(u))return;const{selectionProtection:g=[]}=c.getCell(u,h)||{};this._pattern&&(e.fillStyle=this._pattern,g.forEach(p=>{if(p.ruleId&&this.shouldRender(p)){if(this.renderCache.has(p.ruleId))return;this.renderCache.add(p.ruleId),p.ranges.forEach(f=>{const S=this.getCellIndex(f.startRow,f.startColumn,s,a,d),v=this.getCellIndex(f.endRow,f.endColumn,s,a,d);e.fillRect(S.startX,S.startY,v.endX-S.startX,v.endY-S.startY)})}}))}),e.restore())}}class XC extends Ja{constructor(){super();E(this,"uKey",qa);E(this,"Z_INDEX",FC)}shouldRender(e){return(e==null?void 0:e[K.View])!==!1}}class zC extends Ja{constructor(){super();E(this,"uKey",Qa);E(this,"Z_INDEX",jC)}shouldRender(e){return(e==null?void 0:e[K.View])===!1}}var YC=Object.defineProperty,GC=Object.getOwnPropertyDescriptor,$a=(i,o,e,t)=>{for(var n=t>1?void 0:t?GC(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&YC(o,e,n),n},Xt=(i,o)=>(e,t)=>o(e,t,i);let Tt=class extends l.Disposable{constructor(i,o,e,t){super(),this._config=i,this._menuService=o,this._componentManager=e,this._injector=t,this._init()}_init(){this._initComponents()}_initComponents(){[[oa,Ql],[mf,lo],[gf,qr],[pf,ut],[ra,Kr],[ei,hC],[ti,vC],[na,OC],[ia,VC],[za,BC]].forEach(([i,o])=>{this.disposeWithMe(this._componentManager.register(i,o))})}};Tt=$a([l.OnLifecycle(l.LifecycleStages.Rendered,Tt),Xt(1,T.IMenuService),Xt(2,l.Inject(T.ComponentManager)),Xt(3,l.Inject(l.Injector))],Tt);let Mi=class extends l.Disposable{constructor(o,e,t,n){super();E(this,"_rangeProtectionCanViewRenderExtension",new XC);E(this,"_rangeProtectionCanNotViewRenderExtension",new zC);this._context=o,this._rangeProtectionRuleModel=e,this._sheetSkeletonManagerService=t,this._permissionService=n,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(qa)||o.register(this._rangeProtectionCanViewRenderExtension),o.getExtensionByKey(Qa)||o.register(this._rangeProtectionCanNotViewRenderExtension))}_initSkeleton(){const o=()=>{var e;this._sheetSkeletonManagerService.reCalculate(),(e=this._context.mainComponent)==null||e.makeDirty()};this.disposeWithMe(O.merge(this._permissionService.permissionPointUpdate$.pipe(O.throttleTime(300,void 0,{trailing:!0})),this._rangeProtectionRuleModel.ruleChange$).pipe().subscribe(o))}};Mi=$a([Xt(1,l.Inject(m.RangeProtectionRuleModel)),Xt(2,l.Inject(exports.SheetSkeletonManagerService)),Xt(3,l.IPermissionService)],Mi);var ZC=Object.defineProperty,KC=Object.getOwnPropertyDescriptor,qC=(i,o,e,t)=>{for(var n=t>1?void 0:t?KC(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&ZC(o,e,n),n},st=(i,o)=>(e,t)=>o(e,t,i);let kn=class extends l.RxDisposable{constructor(o,e,t,n,r,s,a,c,d){super();E(this,"disposableCollection",new l.DisposableCollection);this._context=o,this._univerInstanceService=e,this._permissionService=t,this._selectionManagerService=n,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:n,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 S,v;const{startRow:h,startColumn:g,endRow:p,endColumn:f}=u;for(let C=h;C<=p;C++)for(let I=g;I<=f;I++){const R=(v=(S=n.getCell(C,I))==null?void 0:S.selectionProtection)==null?void 0:v[0];if((R==null?void 0:R[K.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,R;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:n,unitId:r,subUnitId:s}=t;if(!this._permissionService.composePermission([new m.WorkbookEditablePermission(r).id,new m.WorksheetEditPermission(r,s).id]).every(b=>b.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&&((R=(I=this._permissionService.getPermissionPoint(new m.WorksheetSetColumnStylePermission(r,s).id))==null?void 0:I.value)!=null?R:!1)===!1)return!1;let c;if(e.row!==void 0?c={startRow:e.row,endRow:e.row,startColumn:0,endColumn:n.getColumnCount()-1}:e.col!==void 0&&(c={startRow:0,endRow:n.getRowCount()-1,startColumn:e.col,endColumn:e.col}),!c)return!0;let u=this._rangeProtectionRuleModel.getSubunitRuleList(r,s).reduce((b,w)=>[...b,...w.ranges],[]).filter(b=>l.Rectangle.intersects(b,c)).some(b=>{var N,x;const{startRow:w,startColumn:y,endRow:M,endColumn:A}=b;for(let D=w;D<=M;D++)for(let k=y;k<=A;k++){const L=(x=(N=n.getCell(D,k))==null?void 0:N.selectionProtection)==null?void 0:x[0];if((L==null?void 0:L[K.Edit])===!1)return!0}return!1});if(u)return!1;const h=e.row!==void 0?l.RANGE_TYPE.ROW:l.RANGE_TYPE.COLUMN,g=[],p=this._selectionManagerService.getCurrentSelections();let f=!1;return h===l.RANGE_TYPE.ROW?p==null||p.forEach(b=>{var w,y;(((w=b==null?void 0:b.range)==null?void 0:w.rangeType)===l.RANGE_TYPE.ROW||((y=b==null?void 0:b.range)==null?void 0:y.rangeType)===l.RANGE_TYPE.ALL)&&(g.push(b.range),b.range.startRow<=e.row&&b.range.endRow>=e.row&&(f=!0))}):p==null||p.forEach(b=>{var w,y;(((w=b==null?void 0:b.range)==null?void 0:w.rangeType)===l.RANGE_TYPE.COLUMN||((y=b==null?void 0:b.range)==null?void 0:y.rangeType)===l.RANGE_TYPE.ALL)&&(g.push(b.range),b.range.startColumn<=e.col&&b.range.endColumn>=e.col&&(f=!0))}),f?(u=this._rangeProtectionRuleModel.getSubunitRuleList(r,s).reduce((b,w)=>[...b,...w.ranges],[]).filter(b=>g.some(w=>l.Rectangle.intersects(b,w))).some(b=>{var N,x;const{startRow:w,startColumn:y,endRow:M,endColumn:A}=b;for(let D=w;D<=M;D++)for(let k=y;k<=A;k++){const L=(x=(N=n.getCell(D,k))==null?void 0:N.selectionProtection)==null?void 0:x[0];if((L==null?void 0:L[K.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 f,S,v;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:n,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=(f=this._selectionManagerService.getCurrentSelections())==null?void 0:f.map(C=>C.range),d=c==null?void 0:c.find(C=>{const I=wn(e.x,e.y,e.scene,e.skeleton),R=e.skeleton.getCellByIndex(C.endRow,C.endColumn),b=Math.abs(R.endX-I.x),w=Math.abs(R.endY-I.y);return b<=5&&w<=5});if(!d)return!0;const{startRow:u,endRow:h,startColumn:g,endColumn:p}=d;for(let C=u;C<=h;C++)for(let I=g;I<=p;I++){const R=(v=(S=n.getCell(C,I))==null?void 0:S.selectionProtection)==null?void 0:v[0];if((R==null?void 0:R[K.Edit])===!1||(R==null?void 0:R[K.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 g;const t=m.getSheetCommandTarget(this._univerInstanceService);if(!t)return!1;const{worksheet:n,unitId:r,subUnitId:s}=t;if(!this._permissionService.composePermission([new m.WorkbookEditablePermission(r).id,new m.WorksheetEditPermission(r,s).id]).every(p=>p.value))return!1;const c=(g=this._selectionManagerService.getCurrentSelections())==null?void 0:g.map(p=>p.range),d=this._rangeProtectionRuleModel.getSubunitRuleList(r,s).reduce((p,f)=>[...p,...f.ranges],[]),u=c==null?void 0:c.filter(p=>d.some(f=>l.Rectangle.intersects(f,p)));return!(u==null?void 0:u.some(p=>{var I,R;const{startRow:f,startColumn:S,endRow:v,endColumn:C}=p;for(let b=f;b<=v;b++)for(let w=S;w<=C;w++){const y=(R=(I=n.getCell(b,w))==null?void 0:I.selectionProtection)==null?void 0:R[0];if((y==null?void 0:y[K.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}}))}};kn=qC([l.OnLifecycle(l.LifecycleStages.Steady,kn),st(1,l.IUniverInstanceService),st(2,l.IPermissionService),st(3,l.Inject(m.SheetsSelectionsService)),st(4,l.Inject(m.RangeProtectionRuleModel)),st(5,l.Inject(exports.HeaderMoveRenderController)),st(6,Se),st(7,l.Inject(exports.HeaderFreezeRenderController)),st(8,l.Optional(exports.HeaderResizeRenderController))],kn);var QC=Object.defineProperty,JC=Object.getOwnPropertyDescriptor,$C=(i,o,e,t)=>{for(var n=t>1?void 0:t?JC(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&QC(o,e,n),n},_n=(i,o)=>(e,t)=>o(e,t,i);let Hn=class extends l.RxDisposable{constructor(o,e,t,n,r,s){super();E(this,"disposableCollection",new l.DisposableCollection);this._context=o,this._injector=e,this._univerInstanceService=t,this._permissionService=n,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:n,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,g)=>{h.forEach((p,f)=>{u[g][f]=Q.NullValueObject.create()})})}):e.forEach(d=>{const u=d.getArrayValue(),h=d.getCurrentRow(),g=d.getCurrentColumn();u.forEach((p,f)=>{p.forEach((S,v)=>{var R,b;if(((R=n.getCellRaw(f+h,v+g))==null?void 0:R.v)===void 0)return;const I=(b=this._rangeProtectionRenderModel.getCellInfo(r,s,f+h,v+g))==null?void 0:b[0];(I==null?void 0:I[K.View])===!1&&(u[f][v]=Q.NullValueObject.create())})})}),e}}))}};Hn=$C([l.OnLifecycle(l.LifecycleStages.Steady,Hn),_n(1,l.Inject(l.Injector)),_n(2,l.IUniverInstanceService),_n(3,l.IPermissionService),_n(4,l.Inject(exports.StatusBarController)),_n(5,l.Inject(m.RangeProtectionRenderModel))],Hn);const ec="worksheet-protection",il=25,e_=80;class t_ extends P.SheetExtension{constructor(){super();E(this,"uKey",ec);E(this,"Z_INDEX",il);E(this,"_pattern");E(this,"_img",new Image);this._img.src=Ka}draw(e,t,n,r){const{rowHeightAccumulation:s,columnWidthAccumulation:a,worksheet:c,dataMergeCache:d}=n;if(!c)return!1;e.save(),this._pattern||(this._pattern=e.createPattern(this._img,"repeat"));const{startRow:u,startColumn:h,endRow:g,endColumn:p}=n.rowColumnSegment,f=this.getCellIndex(u,h,s,a,d),S=this.getCellIndex(g,p,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[K.View])?this.setZIndex(il):this.setZIndex(e_)}e.fillStyle=this._pattern,v&&e.fillRect(f.startX,f.startY,S.endX-f.startX,S.endY-f.startY),e.restore()}}setZIndex(e){this.Z_INDEX=e}}var n_=Object.defineProperty,i_=Object.getOwnPropertyDescriptor,o_=(i,o,e,t)=>{for(var n=t>1?void 0:t?i_(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&n_(o,e,n),n},ol=(i,o)=>(e,t)=>o(e,t,i);let Vn=class extends l.Disposable{constructor(o,e){super();E(this,"_worksheetProtectionRenderExtension",new t_);this._renderManagerService=o,this._univerInstanceService=e,this._initRender()}_initRender(){const o=t=>{const n=t&&this._renderManagerService.getRenderById(t),r=n&&n.mainComponent;r&&(r.getExtensionByKey(ec)||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())}};Vn=o_([l.OnLifecycle(l.LifecycleStages.Ready,Vn),ol(0,l.Inject(P.IRenderManagerService)),ol(1,l.Inject(l.IUniverInstanceService))],Vn);const r_=l.createInterceptorKey("PRINTING_RANGE"),s_=l.createInterceptorKey("PRINTING_COMPONENT_COLLECT");class is extends l.Disposable{constructor(){super();E(this,"interceptor",new l.InterceptorManager({PRINTING_RANGE:r_,PRINTING_COMPONENT_COLLECT:s_}));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 l_=Object.defineProperty,a_=Object.getOwnPropertyDescriptor,c_=(i,o,e,t)=>{for(var n=t>1?void 0:t?a_(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&l_(o,e,n),n},In=(i,o)=>(e,t)=>o(e,t,i);let Si=class extends l.Disposable{constructor(i,o,e,t,n){super(),this._selectionManagerService=i,this._themeService=o,this._instanceSrv=e,this._cmdSrv=t,this._definedNamesService=n,this._init()}_init(){this.disposeWithMe(O.merge(this._selectionManagerService.selectionMoveStart$,this._selectionManagerService.selectionMoving$,this._selectionManagerService.selectionMoveEnd$).pipe(O.filter(i=>!!i)).subscribe(i=>{this._syncDefinedNameRange(i)})),this.disposeWithMe(this._definedNamesService.focusRange$.subscribe(async i=>{if(i==null)return;const{unitId:o}=i;let{formulaOrRefString:e}=i;if(e.substring(0,1)===Q.operatorToken.EQUALS&&(e=e.substring(1)),!Q.isReferenceStrings(e))return;const n=this._instanceSrv.getUnit(o),r=await this._getSelections(n,o,e);this._selectionManagerService.setSelections(r),this._cmdSrv.executeCommand(m.ScrollToCellOperation.id,r[0].range)}))}_syncDefinedNameRange(i){if(i.length===0)return;const o=i[i.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(i,o,e){const t=e.split(",");let n=i.getActiveSheet();if(!n)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=i.getSheetBySheetName(c.sheetName);u&&n.getSheetId()!==u.getSheetId()&&(n=u,await this._cmdSrv.executeCommand(m.SetWorksheetActivateCommand.id,{subUnitId:n.getSheetId(),unitId:o}))}if(n.getName()!==c.sheetName)continue;let d=null;if(s===t.length-1){const u=c.range,{startRow:h,startColumn:g,endRow:p,endColumn:f}=u;d=m.getPrimaryForRange({startRow:h,startColumn:g,endRow:p,endColumn:f},n)}r.push({range:c.range,style:m.getNormalSelectionStyle(this._themeService),primary:d})}return r}};Si=c_([l.OnLifecycle(l.LifecycleStages.Rendered,Si),In(0,l.Inject(m.SheetsSelectionsService)),In(1,l.Inject(l.ThemeService)),In(2,l.IUniverInstanceService),In(3,l.ICommandService),In(4,Q.IDefinedNamesService)],Si);var d_=Object.defineProperty,u_=Object.getOwnPropertyDescriptor,h_=(i,o,e,t)=>{for(var n=t>1?void 0:t?u_(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&d_(o,e,n),n},Zo=(i,o)=>(e,t)=>o(e,t,i);let _r=class extends l.Disposable{constructor(o,e,t,n){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(n=>{if(!n)return;const r=t.model.getRange(),s={startRow:r.startRow,startColumn:r.startColumn,endRow:r.endRow,endColumn:r.endColumn,rangeType:r.rangeType},a={startRow:n.startRow,startColumn:n.startColumn,endRow:n.endRow,endColumn:n.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=n,this._initialize()}};_r=h_([Zo(1,l.Inject(Se)),Zo(2,l.Inject(m.SheetsSelectionsService)),Zo(3,l.Inject(l.ICommandService))],_r);var tc=Object.defineProperty,m_=Object.getOwnPropertyDescriptor,g_=(i,o,e)=>o in i?tc(i,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[o]=e,p_=(i,o,e,t)=>{for(var n=t>1?void 0:t?m_(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&tc(o,e,n),n},Ko=(i,o)=>(e,t)=>o(e,t,i),nc=(i,o,e)=>g_(i,typeof o!="symbol"?o+"":o,e);exports.UniverSheetsUIPlugin=class extends l.Plugin{constructor(o={},e,t,n){super(),this._config=o,this._injector=e,this._renderManagerService=t,this._univerInstanceService=n,this._config=l.Tools.deepMerge({},ja,this._config)}onStarting(o){[[zt],[Ze,{useClass:exports.EditorBridgeService}],[tt,{useClass:exports.SheetClipboardService}],[At,{useClass:jl}],[nt,{useClass:Ri}],[Ki,{useClass:wl}],[qi,{useClass:th}],[ht,{useClass:exports.AutoFillService}],[is],[co,{useClass:ea}],[Mt,{useClass:exports.MarkSelectionService}],[exports.HoverManagerService],[exports.DragManagerService],[exports.SheetCanvasPopManagerService],[exports.CellAlertManagerService],[yn],[exports.AutoHeightController],[exports.FormulaEditorController],[Mn],[exports.SheetsRenderService],[On,{useFactory:()=>this._injector.createInstance(On,this._config)}],[exports.StatusBarController],[exports.AutoFillController],[fi],[Si],[ve],[un],[Vn],[Dn],[exports.SheetPermissionInterceptorBaseController],[exports.SheetPermissionInitController]].forEach(e=>o.add(e)),this._injector.add([Tt,{useFactory:()=>this._injector.createInstance(Tt,this._config)}])}onReady(){this._markSheetAsFocused(),this._registerRenderBasics()}onRendered(){this._registerRenderModules()}_registerRenderBasics(){[[exports.SheetSkeletonManagerService],[exports.SheetRenderController],[Se,{useClass:exports.SheetSelectionRenderService}]].forEach(o=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(l.UniverInstanceType.UNIVER_SHEET,o))})}_registerRenderModules(){[[exports.HeaderMoveRenderController],[ur],[exports.HeaderResizeRenderController],[Ie],[exports.SheetsScrollRenderController],[exports.HeaderFreezeRenderController],[Un],[bi],[lr],[An],[xn],[Ti],[exports.HoverRenderController],[exports.DragRenderController],[Nn],[exports.CellCustomRenderController],[fr],[_r],[Sr],[rr],[kn],[Hn],[Mi]].forEach(o=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(l.UniverInstanceType.UNIVER_SHEET,o))})}_markSheetAsFocused(){const o=this._univerInstanceService;o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).pipe(rl.filter(e=>!!e)).subscribe(e=>o.focusUnit(e.getUnitId()))}};nc(exports.UniverSheetsUIPlugin,"pluginName","SHEET_UI_PLUGIN");nc(exports.UniverSheetsUIPlugin,"type",l.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsUIPlugin=p_([l.DependentOn(m.UniverSheetsPlugin),Ko(1,l.Inject(l.Injector)),Ko(2,P.IRenderManagerService),Ko(3,l.IUniverInstanceService)],exports.UniverSheetsUIPlugin);var f_=Object.defineProperty,S_=Object.getOwnPropertyDescriptor,v_=(i,o,e,t)=>{for(var n=t>1?void 0:t?S_(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&f_(o,e,n),n},Dt=(i,o)=>(e,t)=>o(e,t,i);const C_=[we.id,Ye.id];let Ir=class extends l.Disposable{constructor(i,o,e,t,n,r,s){super(),this._context=i,this._sheetSkeletonManagerService=o,this._commandService=e,this._renderManagerService=t,this._selectionManagerService=n,this._scrollManagerService=r,this._univerInstanceService=s,this._init()}scrollToRange(i){let{endRow:o,endColumn:e,startColumn:t,startRow:n}=i;const r=this._getViewportBounding();if(i.rangeType===l.RANGE_TYPE.ROW?(t=0,e=0):i.rangeType===l.RANGE_TYPE.COLUMN&&(n=0,o=0),r){const s=r.startRow>o?n:o,a=r.startColumn>e?t:e;return this._scrollToCell(s,a)}else return this._scrollToCell(n,t)}_init(){this._initCommandListener(),this._initScrollEventListener(),this._initPointerScrollEvent(),this._scrollInfo$Handler(),this._initSkeletonListener()}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(i=>{if(C_.includes(i.id))this._scrollToSelection();else if(i.id===m.ScrollToCellOperation.id){const o=i.params;this.scrollToRange(o)}else if(i.id===ye.id){const o=i.params;this._scrollToSelectionForExpand(o)}}))}_scrollToSelectionForExpand(i){setTimeout(()=>{const o=this._selectionManagerService.getCurrentLastSelection();if(o==null)return;const{startRow:e,startColumn:t,endRow:n,endColumn:r}=o.range,s=this._getViewportBounding();if(s==null)return;const{startRow:a,startColumn:c,endRow:d,endColumn:u}=s;let h=0,g=0;e>a?h=n:n<d?h=e:h=a,t>c?g=r:r<u?g=t:g=c,i.direction===l.Direction.DOWN?h=n:i.direction===l.Direction.UP?h=e:i.direction===l.Direction.RIGHT?g=r:i.direction===l.Direction.LEFT&&(g=t),this._scrollToCell(h,g)},0)}_getFreeze(){var o;const i=(o=this._sheetSkeletonManagerService.getCurrent())==null?void 0:o.skeleton.getWorksheetConfig();if(i!=null)return i.freeze}_initScrollEventListener(){var e;const i=(e=this._getSheetObject())==null?void 0:e.scene;if(i==null)return;const o=i.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);o&&(this.disposeWithMe(o.onScrollAfter$.subscribeEvent(t=>{var p;const n=(p=this._sheetSkeletonManagerService.getCurrent())==null?void 0:p.skeleton;if(n==null)return;const r=this._getSheetObject();if(n==null||r==null)return;const{viewportScrollX:s=0,viewportScrollY:a=0}=t,{row:c,column:d,rowOffset:u,columnOffset:h}=n.getDecomposedOffset(s,a),g={sheetViewStartRow:c,sheetViewStartColumn:d,offsetX:h,offsetY:u};this._scrollManagerService.justSetScrollInfoToCurrSheet(g),this._scrollManagerService.validViewportScrollInfo$.next({scrollX:t.scrollX||0,scrollY:t.scrollY||0,viewportScrollX:t.viewportScrollX||0,viewportScrollY:t.viewportScrollY||0})})),this.disposeWithMe(o.onScrollByBar$.subscribeEvent(t=>{var p;const n=(p=this._sheetSkeletonManagerService.getCurrent())==null?void 0:p.skeleton;if(n==null||t.isTrigger===!1)return;const r=this._getSheetObject();if(n==null||r==null)return;const{viewportScrollX:s=0,viewportScrollY:a=0}=t,c=this._getFreeze(),{row:d,column:u,rowOffset:h,columnOffset:g}=n.getDecomposedOffset(s,a);this._commandService.executeCommand(Be.id,{sheetViewStartRow:d+((c==null?void 0:c.ySplit)||0),sheetViewStartColumn:u+((c==null?void 0:c.xSplit)||0),offsetX:g,offsetY:h})})))}_scrollInfo$Handler(){var t;const{unitId:i}=this._context,o=(t=this._renderManagerService.getRenderById(i))==null?void 0:t.scene;if(!o)return;const e=o.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);e&&this.disposeWithMe(l.toDisposable(this._scrollManagerService.rawScrollInfo$.subscribe(n=>{var S;if(n==null){e.scrollTo({x:0,y:0});return}const r=(S=this._sheetSkeletonManagerService.getCurrent())==null?void 0:S.skeleton;if(!r)return;const{sheetViewStartRow:s,sheetViewStartColumn:a,offsetX:c,offsetY:d}=n,{startX:u,startY:h}=r.getCellByIndexWithNoHeader(s,a),g=u+c,p=h+d,f=e.transViewportScroll2ScrollValue(g,p);e.scrollTo(f)})))}_initSkeletonListener(){this.disposeWithMe(l.toDisposable(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(i=>{if(i==null)return;this._scrollManagerService.setSearchParam(i);const o=this._getSheetObject();if(!o)return;const t=o.scene.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),n=this._scrollManagerService.getScrollInfoByParam(i);t&&(t.viewportScrollX=(n==null?void 0:n.viewportScrollX)||0,t.viewportScrollY=(n==null?void 0:n.viewportScrollY)||0,this._updateSceneSize(i))})))}_initPointerScrollEvent(){const i=this._getSheetObject();if(!i)return;this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);const o=this._scrollManagerService,e=i.scene,t=i.spreadsheet,n=e.getViewport(P.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(!n)return;a.x*=c,a.y*=c,r.x+=a.x,r.y+=a.y;const g=a.x,p=a.y;(p!==0||g!==0)&&this._commandService.executeCommand(ct.id,{offsetY:p,offsetX:g}),o.getCurrentScrollInfo(),Math.abs(a.x)>1||Math.abs(a.y)>1?d=requestAnimationFrame(u):d=null},h=()=>{cancelAnimationFrame(d),d=null};t.onPointerDown$.subscribeEvent((g,p)=>{h(),n&&(r.x=g.offsetX,r.y=g.offsetY,s=!0,p.stopPropagation())}),t.onPointerMove$.subscribeEvent((g,p)=>{if(!s||!n)return;const f=g,S=-(f.offsetX-r.x),v=-(f.offsetY-r.y);a.x=-(f.offsetX-r.x),a.y=-(f.offsetY-r.y);const C=S,I=v;(S!==0||v!==0)&&(I!==0||C!==0)&&this._commandService.executeCommand(ct.id,{offsetY:I,offsetX:C}),o.getCurrentScrollInfo(),r.x=f.offsetX,r.y=f.offsetY,p.stopPropagation()}),t.onPointerUp$.subscribeEvent((g,p)=>{s=!1,d=requestAnimationFrame(u)}),t.onPointerLeave$.subscribeEvent(()=>{}),t.onPointerOut$.subscribeEvent(()=>{s=!1}),e.onPointerOut$.subscribeEvent(()=>{s=!1}),e.onPointerCancel$.subscribeEvent(()=>{s=!1})}_updateSceneSize(i){var h;if(i==null)return;const{unitId:o}=this._context,{skeleton:e}=i,t=(h=this._renderManagerService.getRenderById(o))==null?void 0:h.scene;if(e==null||t==null)return;const{rowTotalHeight:n,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+n})}_getSheetObject(){return Ge(this._context.unit,this._context)}_scrollToSelectionByDirection(i){const o=this._getViewportBounding();if(o==null)return!1;const{startRow:e,startColumn:t,endRow:n,endColumn:r}=o;let s=0,a=0;const{startRow:c,startColumn:d,endRow:u,endColumn:h}=i;c>=e&&(s=u),u<=n&&(s=c),d>=t&&(a=h),h<=r&&(a=d),this._scrollToCell(s,a)}_scrollToSelection(i=!0){const o=this._selectionManagerService.getCurrentLastSelection();if(o==null)return;const{startRow:e,startColumn:t,actualRow:n,actualColumn:r}=o.primary,s=i?n:e,a=i?r:t;this._scrollToCell(s,a)}_getViewportBounding(){var n,r;const i=(n=this._getSheetObject())==null?void 0:n.scene;if(i==null)return;const o=i.getViewport(P.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(i,o){var w,y,M,A;const{rowHeightAccumulation:e,columnWidthAccumulation:t}=(y=(w=this._sheetSkeletonManagerService.getCurrent())==null?void 0:w.skeleton)!=null?y:{};if(e==null||t==null)return!1;const n=(M=this._getSheetObject())==null?void 0:M.scene;if(n==null)return!1;const r=n.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(r==null||((A=this._sheetSkeletonManagerService.getCurrent())==null?void 0:A.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(),g=this._getViewportBounding();if(g==null)return!1;const{startRow:p,startColumn:f,endRow:S,endColumn:v}=g;let C,I;if(i>=d&&o>=c-h&&(i<=p&&(C=i),i>=S)){const N=e[i]-r.height;for(let x=p;x<=i;x++)if(e[x]>=N){C=x+1;break}}if(o>=c&&i>=d-u&&(o<=f&&(I=o),o>=v)){const N=t[o]-r.width;for(let x=f;x<=o;x++)if(t[x]>=N){I=x+1;break}}if(C===void 0&&I===void 0)return!1;const{offsetX:R,offsetY:b}=this._scrollManagerService.getCurrentScrollInfo()||{};return this._commandService.syncExecuteCommand(Be.id,{sheetViewStartRow:C,sheetViewStartColumn:I,offsetX:I===void 0?R:0,offsetY:C===void 0?b:0})}};Ir=v_([Dt(1,l.Inject(exports.SheetSkeletonManagerService)),Dt(2,l.ICommandService),Dt(3,P.IRenderManagerService),Dt(4,l.Inject(m.SheetsSelectionsService)),Dt(5,l.Inject(Ie)),Dt(6,l.IUniverInstanceService)],Ir);const __="univer-mobile-sheet-bar-container",I_="univer-mobile-sheet-bar-slider",R_="univer-mobile-sheet-bar-item",b_="univer-mobile-sheet-bar-item-activated",mi={mobileSheetBarContainer:__,mobileSheetBarSlider:I_,mobileSheetBarItem:R_,mobileSheetBarItemActivated:b_};function ic(){const i=Ot();return i?_.jsx(T_,{workbook:i}):null}function T_(i){const{workbook:o}=i,[e,t]=H.useState([]),[n,r]=H.useState(""),s=H.useRef(new Map),a=l.useDependency(l.ICommandService),c=H.useCallback(()=>{const u=o.getActiveSheet().getSheetId(),h=o.getSheets(),g=o.getActiveSheet(),p=h.filter(f=>!f.isSheetHidden()).map((f,S)=>{var v;return{sheetId:f.getSheetId(),label:f.getName(),index:S,selected:g===f,color:(v=f.getTabColor())!=null?v:void 0}});if(t(p),r(u),s.current.has(u)){const f=s.current.get(u);f&&f.scrollIntoView({behavior:"smooth",block:"nearest"})}s.current.clear()},[o]);H.useEffect(()=>c(),[c]);const d=H.useCallback(u=>{a.executeCommand(m.SetWorksheetActiveOperation.id,{unitId:o.getUnitId(),subUnitId:u})},[a,o]);return H.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:mi.mobileSheetBarContainer,children:_.jsx("div",{className:mi.mobileSheetBarSlider,children:e.map(u=>_.jsx("div",{className:ue(mi.mobileSheetBarItem,{[mi.mobileSheetBarItemActivated]:u.sheetId===n}),onClick:()=>d(u.sheetId),ref:h=>s.current.set(u.sheetId,h),children:u.label},u.sheetId))})})}var E_=Object.defineProperty,w_=Object.getOwnPropertyDescriptor,P_=(i,o,e,t)=>{for(var n=t>1?void 0:t?w_(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&E_(o,e,n),n},Ct=(i,o)=>(e,t)=>o(e,t,i);let Wn=class extends l.Disposable{constructor(i,o,e,t,n,r,s,a){super(),this._config=i,this._injector=o,this._componentManager=e,this._layoutService=t,this._commandService=n,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 i=this._componentManager;this.disposeWithMe(i.register(Gi,Tl)),this.disposeWithMe(i.register(Qr,$l)),this.disposeWithMe(i.register(Zn,J.ColorPicker)),this.disposeWithMe(i.register(jr,T.FontFamily)),this.disposeWithMe(i.register(Xr,T.FontFamilyItem)),this.disposeWithMe(i.register(zr,T.FontSize)),this.disposeWithMe(i.register(Jr,ta))}_initCommands(){[Qi,He,$i,Ji,en,ye,we,Ye,so,io,to,no,Li,Ui,Be,wr,xi,ro,m.SetBoldCommand,Gt,Ee,Xn,on,rn,sn,ln,Br,Fr,Bi,Fi,Kt,m.SetItalicCommand,m.SetStrikeThroughCommand,m.SetFontFamilyCommand,m.SetFontSizeCommand,zn,ji,Yn,Gn,et,ct,an,Xi,zi,Yi,m.SetUnderlineCommand,tn,je,oo,eo,Qt,qt,$n,Jn,ao,It,Bt,Xe,$r,mo,go,po,fo,So,ho,vo,Co,ni,yt,es,uo,_o].forEach(i=>{this.disposeWithMe(this._commandService.registerCommand(i))})}_initMenus(){const{menu:i={}}=this._config;[El].forEach(o=>{this.disposeWithMe(this._menuService.addMenuItem(this._injector.invoke(o),i))})}_initShortcuts(){[ca,da,ua,ha,ma,ga,pa,fa,Sa,va,Ca,_a,Ia,Ra,ba,Ta,Ea,wa,Pa,ya,Ma,ka,Va,La,Ua,Ha,Wa,Oa,Aa,Na,xa,Da,...Nl(),Dl,xl,kl,Vl,Wl,Ll,Hl,la,aa].forEach(i=>{this.disposeWithMe(this._shortcutService.registerShortcut(i))})}_initWorkbenchParts(){this._uiPartsService.registerComponent(T.BuiltInUIPart.HEADER,()=>l.connectInjector(ic,this._injector))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(l.UniverInstanceType.UNIVER_SHEET,i=>{}))}};Wn=P_([l.OnLifecycle(l.LifecycleStages.Ready,Wn),Ct(1,l.Inject(l.Injector)),Ct(2,l.Inject(T.ComponentManager)),Ct(3,T.ILayoutService),Ct(4,l.ICommandService),Ct(5,T.IShortcutService),Ct(6,T.IMenuService),Ct(7,T.IUIPartsService)],Wn);var y_=Object.defineProperty,M_=Object.getOwnPropertyDescriptor,O_=(i,o,e,t)=>{for(var n=t>1?void 0:t?M_(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&y_(o,e,n),n},gi=(i,o)=>(e,t)=>o(e,t,i);let Rr=class extends l.Disposable{constructor(i,o,e,t,n){super(),this._context=i,this._layoutService=o,this._contextMenuService=e,this._selectionManagerService=t,this._selectionRenderService=n,this._init()}_init(){let i=!1;this.disposeWithMe(this._selectionManagerService.selectionMoveStart$.subscribe(()=>i=!0)),this.disposeWithMe(this._selectionManagerService.selectionMoveEnd$.subscribe(o=>{if(!o||i===!1)return;i=!1;const e=o[0];if(!e.primary)return;const t=this._layoutService.getCanvasElement().getBoundingClientRect(),n=this._selectionRenderService.attachSelectionWithCoord(e),r=e.range.rangeType,{scene:s}=this._context,a=s.getViewport(P.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 g=46;switch(r){case l.RANGE_TYPE.NORMAL:u=n.rangeWithCoord.startX+t.left-c,h=n.rangeWithCoord.endY+t.top-d;break;case l.RANGE_TYPE.COLUMN:u=n.rangeWithCoord.startX+t.left-c,h=Math.min(t.height/2,n.rangeWithCoord.endY)+40;break;case l.RANGE_TYPE.ROW:u=(t.width-g)/2+20,h=n.rangeWithCoord.endY+t.top-d;break;case l.RANGE_TYPE.ALL:u=n.rangeWithCoord.startX+t.left,h=n.rangeWithCoord.startY+t.top;break;default:u=n.rangeWithCoord.startX+t.left-c,h=n.rangeWithCoord.endY+t.top-d;break}u=l.Tools.clamp(u,g,t.width),h=l.Tools.clamp(h,t.top,t.height),this._contextMenuService.triggerContextMenu({clientX:u,clientY:h,preventDefault:()=>{},stopPropagation:()=>{}},T.MenuPosition.CONTEXT_MENU)}))}};Rr=O_([gi(1,T.ILayoutService),gi(2,T.IContextMenuService),gi(3,l.Inject(m.SheetsSelectionsService)),gi(4,Se)],Rr);class A_ extends Hi{constructor(e,t,n=!0,r,s=l.RANGE_TYPE.NORMAL){super(e,t,n,r);E(this,"_fillControlTopLeft");E(this,"_fillControlBottomRight");E(this,"_fillControlTopLeftInner");E(this,"_fillControlBottomRightInner");this._scene=e,this._zIndex=t,this._isHeaderHighlight=n,this._themeService=r,this._rangeType=s,this.initControlPoints()}initControlPoints(){const e=this.defaultStyle,t=e.expandCornerSize||0,n=(e.expandCornerSize||0)/4,r=e.AutofillStrokeWidth||0,s=e.stroke,a=e.AutofillStroke,c=this.zIndex,d=P.Rect;this._fillControlTopLeft=new d(bn.fillTopLeft+c,{zIndex:c+2,width:t,height:t,radius:t/2,strokeWidth:r}),this._fillControlTopLeftInner=new d(bn.fillTopLeftInner+c,{zIndex:c+1,width:n,height:n,radius:n/2,strokeWidth:r}),this._fillControlBottomRight=new d(bn.fillBottomRight+c,{zIndex:c+2,width:t,height:t,radius:t/2,strokeWidth:r}),this._fillControlBottomRightInner=new d(bn.fillBottomRightInner+c,{zIndex:c+1,width:n,height:n,radius:n/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,hl)}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,n){var c,d,u,h;super._updateControl(e,t,n);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:g,viewportScrollY:p}=this.getViewportMainScrollInfo(),{endX:f,endY:S}=this.selectionModel;this.transformControlPoint(g,p,f,S),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(P.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,n=0,r=0){const s=this.currentStyle,a=this.selectionModel.rangeType,c=s.expandCornerSize/4,d=s.expandCornerSize,{startX:u,startY:h,endX:g,endY:p}=this.selectionModel,f=this.getViewportMainScrollInfo(),S=f.width,v=f.height;switch(a){case l.RANGE_TYPE.NORMAL:this.fillControlTopLeft.transformByState({left:-d/2,top:-d/2}),this.fillControlBottomRight.transformByState({left:g-u-d/2,top:p-h-d/2}),this._fillControlTopLeftInner.transformByState({left:-c/2,top:-c/2}),this._fillControlBottomRightInner.transformByState({left:g-u-c/2,top:p-h-c/2});break;case l.RANGE_TYPE.ROW:{const C=Math.min(S/2+e,n),I=-d/2+C,R=-c/2+C;this.fillControlTopLeft.transformByState({left:I,top:-d/2}),this.fillControlBottomRight.transformByState({left:I,top:-d/2+p-h}),this._fillControlTopLeftInner.transformByState({left:R,top:-c/2}),this._fillControlBottomRightInner.transformByState({left:R,top:-c/2+p-h})}break;case l.RANGE_TYPE.COLUMN:{const C=Math.min(+v/2+t,r),I=-d/2+C,R=-c/2+C;this.fillControlTopLeft.transformByState({left:-d/2,top:I}),this.fillControlBottomRight.transformByState({left:-d/2+g-u,top:I}),this._fillControlTopLeftInner.transformByState({left:-c/2,top:R}),this._fillControlBottomRightInner.transformByState({left:-c/2+g-u,top:R})}break;default:console.error("unknown range type")}}}var N_=Object.defineProperty,x_=Object.getOwnPropertyDescriptor,D_=(i,o,e,t)=>{for(var n=t>1?void 0:t?x_(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&N_(o,e,n),n},Ue=(i,o)=>(e,t)=>o(e,t,i);let Oi=class extends Or{constructor(o,e,t,n,r,s,a,c,d,u,h){super(e,t,n,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:n}=o,{scene:r}=this._context,s=r.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._changeRuntime(n,r,s),this._workbookSelections.getCurrentLastSelection()||this._commandService.syncExecuteCommand(m.SetSelectionsOperation.id,{unitId:e,subUnitId:t,selections:[Vi(n)]})}))}_initSelectionChangeListener(){this.disposeWithMe(this._workbookSelections.selectionMoveEnd$.subscribe(o=>{this._reset();for(const e of o){const t=Rt(e,this._skeleton);this._addSelectionControlBySelectionData(t)}}))}_initEventListeners(o){const{spreadsheetRowHeader:e,spreadsheetColumnHeader:t,spreadsheet:n,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}=Fe(a.offsetX,a.offsetY,s,d);Pt(this._workbookSelections.getCurrentSelections(),u,l.RANGE_TYPE.ROW)||(this.createNewSelection(a,(n.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}=Fe(a.offsetX,a.offsetY,s,d);Pt(this._workbookSelections.getCurrentSelections(),u,l.RANGE_TYPE.COLUMN)||(this.createNewSelection(a,(n.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=Ar(d),h=Rt(u,d);this._addSelectionControlBySelectionData(h),this.refreshSelectionMoveStart(),c.stopPropagation(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}))}_initSpreadsheetEvent(o){const{spreadsheet:e}=o;let t;const n=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)},n),h.stopPropagation()}),d=e==null?void 0:e.onPointerUp$.subscribeEvent((u,h)=>{if(this._normalSelectionDisabled())return;clearTimeout(t);const g=10;Math.abs(u.offsetX-r.x)>g||Math.abs(u.offsetY-r.y)>g||(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(O.startWith(!1),O.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,n=t.getUnitId(),r=t.getActiveSheet().getSheetId();o.length!==0&&this._commandService.executeCommand(m.SetSelectionsOperation.id,{unitId:n,subUnitId:r,type:e,selections:o.map(s=>m.convertSelectionDataToRange(s))})}createNewSelection(o,e=0,t=l.RANGE_TYPE.NORMAL,n){this._shouldDetectMergedCells=t===l.RANGE_TYPE.NORMAL;const r=this._skeleton,s=this._scene;if(!s||!r)return;n&&(this._activeViewport=n);const{offsetX:a,offsetY:c}=o,d=s.getRelativeToViewportCoord(P.Vector2.FromArray([a,c]));let{x:u,y:h}=d;const g=s.getVpScrollXYInfoByPosToVp(d),{scaleX:p,scaleY:f}=s.getAncestorScale(),S=this._getCellRangeByCursorPosition(u,h,p,f,g);if(!S)return!1;const{rangeWithCoord:v,primaryWithCoord:C}=S,I={...v,rangeType:t};this._startRangeWhenPointerDown={...v,rangeType:t};let R=this.getActiveSelectionControl();for(const b of this.getSelectionControls())if(b.model.isEqual(I)){R=b;break}(R==null?void 0:R.model.rangeType)!==t&&(this._clearSelectionControls(),R=this.newSelectionControl(s,t)),this._updateSelectionControlRange(R,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,R,t))}newSelectionControl(o,e){const t=this.getSelectionControls(),n=new A_(o,t.length,this._isHeaderHighlight,this._themeService,e);this._selectionControls.push(n);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 n.fillControlTopLeft.onPointerDown$.subscribeEvent(a=>{this._expandingSelection=!0,this.expandingControlMode=r,this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._fillControlPointerDownHandler(a,e,this._activeViewport)}),n.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(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),n}_getActiveViewport(o){const e=this._getSheetObject();return e==null?void 0:e.scene.getActiveViewportByCoord(P.Vector2.FromArray([o.offsetX,o.offsetY]))}_getSheetObject(){return Ge(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,n=P.ScrollTimerType.ALL){var u,h,g;const r=this._skeleton,s=this._scene;if(!s||!r)return;t&&(this._activeViewport=t);const a=s.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),c=this.getActiveSelectionControl();if(!c)return;this._changeCurrCellWhenControlPointerDown(),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._clearUpdatingListeners(),this._addEndingListeners(),this._scrollTimer=P.ScrollTimer.create(this._scene,n),this._scrollTimer.startScroll((u=a==null?void 0:a.left)!=null?u:0,(h=a==null?void 0:a.top)!=null?h:0,a),(g=s.getTransformer())==null||g.clearSelectedObjects();const d=s.getRelativeToViewportCoord(P.Vector2.FromArray([o.offsetX,o.offsetY]));this._setupPointerMoveListener(a,c,e,n,d.x,d.y),this._scenePointerUpSub=s.onPointerUp$.subscribeEvent(p=>{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:n,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(n,r);break;case"left":t=e.getCellByIndex(n,a),t.isMerged=!1,t.isMergedMainCell=!1;break;case"right":t=e.getCellByIndex(n,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(n,r),t.isMerged=!1,t.isMergedMainCell=!1;break;default:t=e.getCellByIndex(n,r)}return o.updateCurrCell(t),t}_moving(o,e,t,n){var N,x,D,k,L,V,j,Z,z,F,X,B,Y;this._shouldDetectMergedCells=n===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(P.SHEET_VIEWPORT_KEY.VIEW_MAIN),d=(N=this._getViewportByCell(a.endRow,a.endColumn))!=null?N:c,u=s.getVpScrollXYInfoByPosToVp(P.Vector2.FromArray([this._startViewportPosX,this._startViewportPosY]),d),{scaleX:h,scaleY:g}=s.getAncestorScale();n===l.RANGE_TYPE.ROW?o=Number.POSITIVE_INFINITY:n===l.RANGE_TYPE.COLUMN&&(e=Number.POSITIVE_INFINITY);const p=this._getCellRangeByCursorPosition(o,e,h,g,u);if(!p)return!1;const{rangeWithCoord:f}=p,S=t.model.currentCell,v=(x=S==null?void 0:S.mergeInfo.startRow)!=null?x:-1,C=(D=S==null?void 0:S.mergeInfo.endRow)!=null?D:-1,I=(k=S==null?void 0:S.mergeInfo.startColumn)!=null?k:-1,R=(L=S==null?void 0:S.mergeInfo.endColumn)!=null?L:-1;let b={startRow:Math.min(f.startRow,v),startColumn:Math.min(f.startColumn,I),endRow:Math.max(f.endRow,C),endColumn:Math.max(f.endColumn,R)};if(n===l.RANGE_TYPE.NORMAL?b=r.getSelectionMergeBounding(b.startRow,b.startColumn,b.endRow,b.endColumn):n===l.RANGE_TYPE.COLUMN?b={startRow:Math.min(f.startRow,(V=S==null?void 0:S.actualRow)!=null?V:-1),startColumn:Math.min(f.startColumn,(j=S==null?void 0:S.actualColumn)!=null?j:-1),endRow:Math.max(f.endRow,(Z=S==null?void 0:S.actualRow)!=null?Z:-1),endColumn:Math.max(f.endColumn,(z=S==null?void 0:S.actualColumn)!=null?z:-1)}:n===l.RANGE_TYPE.ROW&&(b={startRow:Math.min(f.startRow,(F=S==null?void 0:S.actualRow)!=null?F:-1),startColumn:Math.min(f.startColumn,(X=S==null?void 0:S.actualColumn)!=null?X:-1),endRow:Math.max(f.endRow,(B=S==null?void 0:S.actualRow)!=null?B:-1),endColumn:Math.max(f.endColumn,(Y=S==null?void 0:S.actualColumn)!=null?Y:-1)}),!b)return!1;const w=r.getNoMergeCellPositionByIndex(b.startRow,b.startColumn),y=r.getNoMergeCellPositionByIndex(b.endRow,b.endColumn),M={startColumn:b.startColumn,startRow:b.startRow,endColumn:b.endColumn,endRow:b.endRow,startY:(w==null?void 0:w.startY)||0,endY:(y==null?void 0:y.endY)||0,startX:(w==null?void 0:w.startX)||0,endX:(y==null?void 0:y.endX)||0};(a.startRow!==b.startRow||a.startColumn!==b.startColumn||a.endRow!==b.endRow||a.endColumn!==b.endColumn)&&t&&(this._updateSelectionControlRange(t,M),this._selectionMoving$.next(this.getSelectionDataWithStyle()))}_updateControlPointWhenScrolling(){const{scene:o}=this._context;if(!o.getViewport(P.SHEET_VIEWPORT_KEY.VIEW_MAIN))return;const t=this._scrollManagerService.validViewportScrollInfo$.subscribe(n=>{var g;if(n==null)return;const{viewportScrollX:r,viewportScrollY:s}=n,a=this.getActiveSelectionControl();if(a==null)return;const c=(g=this._sheetSkeletonManagerService.getCurrent())==null?void 0:g.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))}};Oi=D_([Ue(1,l.Inject(l.Injector)),Ue(2,l.Inject(l.ThemeService)),Ue(3,T.IShortcutService),Ue(4,P.IRenderManagerService),Ue(5,l.Inject(m.SheetsSelectionsService)),Ue(6,l.ILogService),Ue(7,l.ICommandService),Ue(8,l.IContextService),Ue(9,l.Inject(exports.SheetSkeletonManagerService)),Ue(10,l.Inject(Ie))],Oi);var oc=Object.defineProperty,k_=Object.getOwnPropertyDescriptor,H_=(i,o,e)=>o in i?oc(i,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[o]=e,V_=(i,o,e,t)=>{for(var n=t>1?void 0:t?k_(o,e):o,r=i.length-1,s;r>=0;r--)(s=i[r])&&(n=(t?s(o,e,n):s(n))||n);return t&&n&&oc(o,e,n),n},qo=(i,o)=>(e,t)=>o(e,t,i),rc=(i,o,e)=>H_(i,typeof o!="symbol"?o+"":o,e);exports.UniverSheetsMobileUIPlugin=class extends l.Plugin{constructor(o={},e,t,n){super(),this._config=o,this._injector=e,this._renderManagerService=t,this._univerInstanceService=n,this._config=l.Tools.deepMerge({},ja,this._config)}onStarting(o){[[zt],[tt,{useClass:exports.SheetClipboardService}],[At,{useClass:jl}],[nt,{useClass:Ri}],[ht,{useClass:exports.AutoFillService}],[is],[Ie],[Se,{useClass:Oi}],[co,{useClass:ea}],[Mt,{useClass:exports.MarkSelectionService}],[exports.HoverManagerService],[exports.DragManagerService],[exports.SheetCanvasPopManagerService],[exports.CellAlertManagerService],[yn],[exports.AutoHeightController],[Mn],[exports.SheetsRenderService],[Wn,{useFactory:()=>this._injector.createInstance(Wn,this._config)}],[exports.StatusBarController],[ve],[un],[Vn],[Dn],[exports.SheetPermissionInterceptorBaseController],[exports.SheetPermissionInitController]].forEach(e=>o.add(e)),this._injector.add([Tt,{useFactory:()=>this._injector.createInstance(Tt,this._config)}])}onReady(){this._markSheetAsFocused(),this._registerRenderBasics()}onRendered(){this._registerRenderModules()}_registerRenderBasics(){[[exports.SheetSkeletonManagerService],[exports.SheetRenderController],[Se,{useClass:Oi}]].forEach(o=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(l.UniverInstanceType.UNIVER_SHEET,o))})}_registerRenderModules(){[[exports.HeaderMoveRenderController],[exports.HeaderFreezeRenderController],[Ir],[Un],[bi],[An],[xn],[Ti],[exports.HoverRenderController],[exports.DragRenderController],[Nn],[exports.CellCustomRenderController],[Rr],[kn],[Hn],[Mi]].forEach(o=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(l.UniverInstanceType.UNIVER_SHEET,o))})}_markSheetAsFocused(){const o=this._univerInstanceService;o.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).pipe(rl.filter(e=>!!e)).subscribe(e=>{o.focusUnit(e.getUnitId())})}};rc(exports.UniverSheetsMobileUIPlugin,"pluginName","SHEET_UI_PLUGIN");rc(exports.UniverSheetsMobileUIPlugin,"type",l.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsMobileUIPlugin=V_([l.DependentOn(m.UniverSheetsPlugin,T.UniverMobileUIPlugin),qo(1,l.Inject(l.Injector)),qo(2,P.IRenderManagerService),qo(3,l.IUniverInstanceService)],exports.UniverSheetsMobileUIPlugin);exports.APPLY_TYPE=re;exports.AddRangeProtectionCommand=ff;exports.AddRangeProtectionFromContextMenuCommand=go;exports.AddRangeProtectionFromSheetBarCommand=fo;exports.AddRangeProtectionFromToolbarCommand=mo;exports.AddWorksheetMergeAllCommand=Qi;exports.AddWorksheetMergeCommand=He;exports.AddWorksheetMergeHorizontalCommand=$i;exports.AddWorksheetMergeVerticalCommand=Ji;exports.AddWorksheetProtectionCommand=ni;exports.ApplyFormatPainterCommand=Gn;exports.AutoClearContentCommand=Bt;exports.AutoFillCommand=It;exports.BaseSelectionRenderService=Or;exports.COPY_TYPE=lt;exports.CancelFrozenCommand=Yi;exports.CellAlertType=jt;exports.CellEditorManagerService=wl;exports.ChangeSheetProtectionFromSheetBarCommand=ho;exports.ChangeZoomRatioCommand=en;exports.DATA_TYPE=me;exports.DeleteRangeMoveLeftConfirmCommand=Jn;exports.DeleteRangeMoveUpConfirmCommand=qt;exports.DeleteRangeProtectionFromContextMenuCommand=vo;exports.DeleteRangeSelectionCommand=Sf;exports.DeleteWorksheetProtectionCommand=yt;exports.DeleteWorksheetProtectionFormSheetBarCommand=uo;exports.ExpandSelectionCommand=ye;exports.HideColConfirmCommand=Ui;exports.HideRowConfirmCommand=Li;exports.IAutoFillService=ht;exports.ICellEditorManagerService=Ki;exports.IEditorBridgeService=Ze;exports.IFormulaEditorManagerService=qi;exports.IMarkSelectionService=Mt;exports.ISheetClipboardService=tt;exports.ISheetSelectionRenderService=Se;exports.InsertRangeMoveDownConfirmCommand=Qt;exports.InsertRangeMoveRightConfirmCommand=$n;exports.JumpOver=ze;exports.MobileSheetBar=ic;exports.MoveSelectionCommand=we;exports.MoveSelectionEnterAndTabCommand=Ye;exports.PASTE_SPECIAL_MENU_ID=dn;exports.PREDEFINED_HOOK_NAME=pe;exports.RefillCommand=eo;exports.RemoveColConfirmCommand=no;exports.RemoveRowConfirmCommand=to;exports.RemoveSheetConfirmCommand=io;exports.RenameSheetOperation=so;exports.ResetScrollCommand=Sc;exports.SHEET_UI_PLUGIN_NAME=ac;exports.SHEET_VIEW_KEY=de;exports.ScrollCommand=Be;exports.ScrollToCellCommand=wr;exports.ScrollToRangeOperation=sa;exports.SelectAllCommand=xi;exports.SelectionShape=Hi;exports.SetActivateCellEditOperation=ro;exports.SetCellEditVisibleArrowOperation=Gt;exports.SetCellEditVisibleOperation=Ee;exports.SetCellEditVisibleWithF2Operation=Xn;exports.SetColumnFrozenCommand=zi;exports.SetFormatPainterOperation=zn;exports.SetInfiniteFormatPainterCommand=ji;exports.SetOnceFormatPainterCommand=Yn;exports.SetProtectionCommand=_o;exports.SetRangeBoldCommand=on;exports.SetRangeFontFamilyCommand=Fi;exports.SetRangeFontSizeCommand=Bi;exports.SetRangeItalicCommand=rn;exports.SetRangeProtectionCommand=vf;exports.SetRangeProtectionFromContextMenuCommand=Co;exports.SetRangeStrickThroughCommand=ln;exports.SetRangeSubscriptCommand=Br;exports.SetRangeSuperscriptCommand=Fr;exports.SetRangeTextColorCommand=Kt;exports.SetRangeUnderlineCommand=sn;exports.SetRowFrozenCommand=Xi;exports.SetScrollOperation=et;exports.SetScrollRelativeCommand=ct;exports.SetSelectionFrozenCommand=an;exports.SetWorksheetProtectionCommand=es;exports.SetZoomRatioCommand=tn;exports.SetZoomRatioOperation=je;exports.SheetCopyCommand=Hr;exports.SheetCutCommand=Vr;exports.SheetMenuPosition=ae;exports.SheetPasteBesidesBorderCommand=Ur;exports.SheetPasteColWidthCommand=Wi;exports.SheetPasteCommand=nn;exports.SheetPasteFormatCommand=Lr;exports.SheetPasteShortKeyCommand=Ii;exports.SheetPasteValueCommand=Wr;exports.SheetPermissionOpenDialogOperation=$r;exports.SheetPermissionOpenPanelOperation=Xe;exports.SheetPrintInterceptorService=is;exports.SheetsUIPart=sl;exports.ShowMenuListCommand=oo;exports.SidebarDefinedNameOperation=ao;exports.VIEWPORT_KEY=ul;exports.ViewSheetPermissionFromContextMenuCommand=po;exports.ViewSheetPermissionFromSheetBarCommand=So;exports.attachRangeWithCoord=Er;exports.checkInHeaderRanges=Pt;exports.deriveStateFromActiveSheet$=Re;exports.expandToContinuousRange=al;exports.getAllSelection=Ar;exports.getAutoFillRepeatRange=qc;exports.getCoordByCell=$o;exports.getCoordByOffset=Fe;exports.getCurrentRangeDisable$=ee;exports.getEditorObject=Tr;exports.getRepeatRange=Zd;exports.getSheetObject=Ge;exports.getTopLeftSelection=Vi;exports.getTransformCoord=wn;exports.mergeSetRangeValues=ir;exports.rangeToDiscreteRange=Ut;exports.useActiveWorkbook=Ot;exports.useActiveWorksheet=eh;exports.useHighlightRange=Za;exports.virtualizeDiscreteRanges=$t;exports.whenFormulaEditorActivated=Pd;exports.whenSheetEditorFocused=oe;