hxy-editor 0.4.10 → 0.4.11

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.
@@ -680,4 +680,4 @@ COUNTIF 仅使用一个条件。 如果要使用多个条件,请使用 COUNTIF
680
680
  univer-text-gray-900 dark:hover:!univer-bg-gray-900
681
681
  dark:!univer-text-white
682
682
  `,attachRender:e=>(0,H.jsxs)(`div`,{className:`univer-ml-1 univer-flex univer-h-5 univer-flex-1 univer-cursor-pointer univer-items-center univer-justify-between univer-text-sm univer-text-primary-500`,children:[(0,H.jsx)(`span`,{"data-u-comp":`sheets-filter-panel-values-item-count`,className:`univer-text-gray-400 dark:!univer-text-gray-500`,children:`(${e.count})`}),(0,H.jsx)(`a`,{className:`univer-box-border univer-hidden univer-h-4 univer-whitespace-nowrap univer-px-1.5`,onClick:()=>{let n=[];e.children?e.children.forEach(e=>{e.children?e.children.forEach(e=>{n.push(e.key)}):n.push(e.key)}):n.push(e.key),t.onFilterOnly(n)},children:a})]})})})]})]})}function Skt(){let e=U(g6);if(!KD(e.visible$,void 0,!0))return null;let t=U(Xb),n=U($j),r=KD(e.enabled$,void 0,!0);return(0,H.jsxs)(`div`,{className:`univer-mt-2 univer-flex univer-items-center univer-justify-between univer-text-sm univer-text-gray-900 dark:!univer-text-gray-200`,children:[(0,H.jsxs)(`div`,{className:`univer-flex univer-items-center univer-gap-1`,children:[(0,H.jsx)(`span`,{children:t.t(`sheets-filter-ui.sync.title`)}),(0,H.jsx)(uj,{title:r?t.t(`sheets-filter-ui.sync.statusTips.off`):t.t(`sheets-filter-ui.sync.statusTips.on`),asChild:!0,children:(0,H.jsx)(TD,{className:`univer-block`})})]}),(0,H.jsx)(lKe,{defaultChecked:r,onChange:r=>{let i=r?t.t(`sheets-filter-ui.sync.switchTips.on`):t.t(`sheets-filter-ui.sync.switchTips.off`);e.setEnabled(r),n.show({content:i,type:dj.Success,duration:2e3})}})]})}function Ckt(){let e=U(P6),t=U(Xb),n=U(R),r=KD(e.filterBy$,void 0,!0),i=KD(e.filterByModel$,void 0,!1),a=KD(()=>i?.canApply$||ts(!1),void 0,!1,[i]),o=wkt(t),s=!KD(e.hasCriteria$),c=(0,V.useCallback)(e=>{n.executeCommand(akt.id,{filterBy:e})},[n]),l=(0,V.useCallback)(async()=>{await i?.clear(),n.executeCommand(B6.id)},[i,n]),u=(0,V.useCallback)(()=>{n.executeCommand(B6.id)},[n]),d=(0,V.useCallback)(async()=>{await i?.apply(),n.executeCommand(B6.id)},[i,n]),f=U(r6).activeFilterModel?.getRange(),p=e.col;return(0,H.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel`,className:`univer-box-border univer-flex univer-max-h-[500px] univer-w-[400px] univer-flex-col univer-rounded-lg univer-bg-white univer-p-4 univer-shadow-lg dark:!univer-border-gray-600 dark:!univer-bg-gray-700`,children:[(0,H.jsx)(OM,{components:kM(M1.FILTER_PANEL_EMBED_POINT),sharedProps:{range:f,colIndex:p,onClose:u}}),(0,H.jsx)(`div`,{className:`univer-mb-1 univer-flex-shrink-0 univer-flex-grow-0`,children:(0,H.jsx)(UGe,{value:r,items:o,onChange:e=>c(e)})}),i?(0,H.jsx)(`div`,{"data-u-comp":`sheets-filter-panel-content`,className:`univer-flex-shrink univer-flex-grow univer-pt-2`,children:r===Y3.VALUES?(0,H.jsx)(xkt,{model:i}):r===Y3.COLORS?(0,H.jsx)(gkt,{model:i}):(0,H.jsx)(vkt,{model:i})}):(0,H.jsx)(`div`,{className:`univer-flex-1`}),(0,H.jsx)(Skt,{}),(0,H.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel-footer`,className:`univer-mt-4 univer-inline-flex univer-flex-shrink-0 univer-flex-grow-0 univer-flex-nowrap univer-justify-between univer-overflow-hidden`,children:[(0,H.jsx)(VA,{variant:`link`,onClick:l,disabled:s,children:t.t(`sheets-filter-ui.panel.clear-filter`)}),(0,H.jsxs)(`span`,{className:`univer-flex univer-gap-2`,children:[(0,H.jsx)(VA,{variant:`default`,onClick:u,children:t.t(`sheets-filter-ui.panel.cancel`)}),(0,H.jsx)(VA,{disabled:!a,variant:`primary`,onClick:d,children:t.t(`sheets-filter-ui.panel.confirm`)})]})]})]})}function wkt(e){return(0,V.useMemo)(()=>[{label:e.t(`sheets-filter-ui.panel.by-values`),value:Y3.VALUES},{label:e.t(`sheets-filter-ui.panel.by-colors`),value:Y3.COLORS},{label:e.t(`sheets-filter-ui.panel.by-conditions`),value:Y3.CONDITIONS}],[e.getCurrentLocale(),e])}var Tkt={id:u6.id,binding:iM.L|aM.CTRL_COMMAND|aM.SHIFT,description:`sheets-filter-ui.shortcut.smart-toggle-filter`,preconditions:iQ,group:`4_sheet-edit`,groupTitle:`sheets-ui.shortcut.sheet-edit`},Ekt=`FILTER_PANEL_POPUP`,X6=class extends J6{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f){super(f,d),this._injector=e,this._componentManager=t,this._sheetsFilterPanelService=n,this._sheetCanvasPopupService=r,this._sheetsFilterService=i,this._localeService=a,this._shortcutService=o,this._commandService=s,this._menuManagerService=c,this._contextService=l,this._messageService=u,A6(this,`_popupDisposable`,void 0),this._initCommands(),this._initShortcuts(),this._initMenuItems(),this._initUI()}dispose(){super.dispose(),this._closeFilterPopup()}_initShortcuts(){[Tkt].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_initCommands(){[u6,akt,z6,B6].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenuItems(){this._menuManagerService.mergeMenu(hkt)}_initUI(){[[Ekt,Ckt],[`FilterIcon`,$je]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))}),this.disposeWithMe(this._contextService.subscribeContextValue$(R6).pipe(Ys()).subscribe(e=>{e?this._openFilterPopup():this._closeFilterPopup()})),this.disposeWithMe(this._sheetsFilterService.errorMsg$.subscribe(e=>{e&&this._messageService.show({type:dj.Error,content:this._localeService.t(e)})}))}_openFilterPopup(){let e=this._sheetsFilterPanelService.filterModel;if(!e)throw Error(`[SheetsFilterUIController]: no filter model when opening filter popup!`);let t=e.getRange(),n=this._sheetsFilterPanelService.col,{startRow:r}=t;this._popupDisposable=this._sheetCanvasPopupService.attachPopupToCell(r,n,{componentKey:Ekt,direction:`horizontal`,onClickOutside:()=>this._commandService.syncExecuteCommand(B6.id),offset:[5,0]})}_closeFilterPopup(){var e;(e=this._popupDisposable)==null||e.dispose(),this._popupDisposable=null}};X6=C6([S6(0,j(We)),S6(1,j(Mj)),S6(2,j(P6)),S6(3,j(i2)),S6(4,j(r6)),S6(5,j(Xb)),S6(6,sM),S6(7,R),S6(8,gM),S6(9,Pm),S6(10,$j),S6(11,j(N1)),S6(12,zE)],X6);var Z6=class extends ax{constructor(e=U6,t,n,r){super(),this._config=e,this._injector=t,this._configService=n,this._rpcChannelService=r;let{menu:i,...a}=Qi({},U6,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(okt,a)}onStarting(){df(this._injector,[[P6],[W6],[X6]]),this._config.useRemoteFilterValuesGenerator&&this._rpcChannelService&&this._injector.add([T6,{useFactory:()=>gR(this._rpcChannelService.requestChannel(w6))}])}onReady(){ff(this._injector,[[W6]])}onRendered(){ff(this._injector,[[X6]])}};A6(Z6,`type`,M.UNIVER_SHEET),A6(Z6,`pluginName`,`SHEET_FILTER_UI_PLUGIN`),A6(Z6,`packageName`,V6),A6(Z6,`version`,H6),Z6=C6([sx(v6),S6(1,j(We)),S6(2,Mm),S6(3,be(_R))],Z6);var Q6=class extends ax{constructor(e,t,n){super(),this._config=e,this._injector=t,this._rpcChannelService=n}onStarting(){[[T6,{useClass:E6}]].forEach(e=>this._injector.add(e))}onReady(){this._rpcChannelService.registerChannel(w6,hR(this._injector.get(T6)))}};A6(Q6,`type`,M.UNIVER_SHEET),A6(Q6,`pluginName`,`SHEET_FILTER_UI_WORKER_PLUGIN`),A6(Q6,`packageName`,V6),A6(Q6,`version`,H6),Q6=C6([S6(1,j(We)),S6(2,_R)],Q6);var Dkt=class extends oS{_initialize(e){let t=e.get(R);this.disposeWithMe(this.registerEventHandler(this.Event.SheetBeforeRangeFilter,()=>t.beforeCommandExecuted(e=>{e.id===d6.id&&this._beforeRangeFilter(e)}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetBeforeRangeFilterClear,()=>t.beforeCommandExecuted(e=>{e.id===f6.id&&this._beforeRangeFilterClear()}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetRangeFiltered,()=>t.onCommandExecuted(e=>{e.id===d6.id&&this._onRangeFiltered(e)}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetRangeFilterCleared,()=>t.onCommandExecuted(e=>{e.id===f6.id&&this._onRangeFilterCleared()})))}_beforeRangeFilter(e){let t=e.params,n=this.getUniverSheet(t.unitId),r={workbook:n,worksheet:n.getSheetBySheetId(t.subUnitId),col:t.col,criteria:t.criteria};if(this.fireEvent(this.Event.SheetBeforeRangeFilter,r),r.cancel)throw Error(`SetSheetsFilterCriteriaCommand canceled.`)}_onRangeFiltered(e){let t=e.params,n=this.getUniverSheet(t.unitId),r={workbook:n,worksheet:n.getSheetBySheetId(t.subUnitId),col:t.col,criteria:t.criteria};this.fireEvent(this.Event.SheetRangeFiltered,r)}_beforeRangeFilterClear(){let e=this.getActiveWorkbook();if(!e)return;let t={workbook:e,worksheet:e.getActiveSheet()};if(this.fireEvent(this.Event.SheetBeforeRangeFilterClear,t),t.cancel)throw Error(`SetSheetsFilterCriteriaCommand canceled.`)}_onRangeFilterCleared(){let e=this.getActiveWorkbook();if(!e)return;let t={workbook:e,worksheet:e.getActiveSheet()};this.fireEvent(this.Event.SheetRangeFilterCleared,t)}};oS.extend(Dkt);function Okt(e,t){return function(n,r){t(n,r,e)}}function kkt(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var $6=class{constructor(e,t,n,r,i){this._workbook=e,this._worksheet=t,this._filterModel=n,this._injector=r,this._commandSrv=i}getFilteredOutRows(){return Array.from(this._filterModel.filteredOutRows).sort()}getColumnFilterCriteria(e){return this._filterModel.getFilterColumn(e)?.getColumnData()}removeColumnFilterCriteria(e){return this._commandSrv.syncExecuteCommand(d6.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),col:e,criteria:null}),this}setColumnFilterCriteria(e,t){return this._commandSrv.syncExecuteCommand(d6.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),col:e,criteria:t}),this}getRange(){let e=this._filterModel.getRange();return this._injector.createInstance(P3,this._workbook,this._worksheet,e)}removeFilterCriteria(){return this._commandSrv.syncExecuteCommand(f6.id),this}remove(){return this._commandSrv.syncExecuteCommand(l6.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()})}};$6=kkt([Okt(3,j(We)),Okt(4,R)],$6);var Akt=class extends P3{createFilter(){return this._getFilterModel()||!this._commandService.syncExecuteCommand(c6.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range})?null:this.getFilter()}getFilter(){let e=this._getFilterModel();return e?this._injector.createInstance($6,this._workbook,this._worksheet,e):null}_getFilterModel(){return this._injector.get(r6).getFilterModel(this._workbook.getUnitId(),this._worksheet.getSheetId())}};P3.extend(Akt);var jkt=class extends j3{getFilter(){let e=this._getFilterModel();return e?this._injector.createInstance($6,this._workbook,this._worksheet,e):null}_getFilterModel(){return this._injector.get(r6).getFilterModel(this._workbook.getUnitId(),this._worksheet.getSheetId())}};j3.extend(jkt);var Mkt=class extends Zx{get CustomFilterOperator(){return X3}};Zx.extend(Mkt);var Nkt=class extends Qx{get SheetBeforeRangeFilter(){return`SheetBeforeRangeFilter`}get SheetRangeFiltered(){return`SheetRangeFiltered`}get SheetRangeFilterCleared(){return`SheetRangeFilterCleared`}get SheetBeforeRangeFilterClear(){return`SheetBeforeRangeFilterClear`}};Qx.extend(Nkt);function Pkt(e={}){let{enableSyncSwitch:t}=e;return{plugins:[[v6,{enableSyncSwitch:t}],Z6].filter(e=>!!e)}}var Fkt=Ig({"sheets-filter":{command:{"not-valid-filter-range":`选中的区域只有一行,无法进行筛选`},msg:{"filter-header-forbidden":`无法移动筛选行头`}}},{"sheets-filter-ui":{toolbar:{"smart-toggle-filter-tooltip":`筛选`,"clear-filter-criteria":`清除筛选条件`,"re-calc-filter-conditions":`重新计算`},shortcut:{"smart-toggle-filter":`切换筛选`},panel:{"clear-filter":`清除筛选`,cancel:`取消`,confirm:`确认`,"by-values":`按值`,"by-colors":`按颜色`,"filter-by-cell-fill-color":`按单元格填充颜色筛选`,"filter-by-cell-text-color":`按单元格文本颜色筛选`,"filter-by-color-none":`该列仅包含一种颜色`,"by-conditions":`按条件`,"filter-only":`仅筛选`,"search-placeholder":`使用空格分隔关键字`,"select-all":`全选`,"input-values-placeholder":`请输入`,or:`或`,and:`和`,empty:`(空白)`,"?":`可用 ? 代表单个字符`,"*":`可用 * 代表任意多个字符`},conditions:{none:`无`,empty:`为空`,"not-empty":`不为空`,"text-contains":`文本包含`,"does-not-contain":`文本不包含`,"starts-with":`文本开头`,"ends-with":`文本结尾`,equals:`文本相符`,"greater-than":`大于`,"greater-than-or-equal":`大于等于`,"less-than":`小于`,"less-than-or-equal":`小于等于`,equal:`等于`,"not-equal":`不等于`,between:`介于`,"not-between":`不介于`,custom:`自定义`},date:{1:`1月`,2:`2月`,3:`3月`,4:`4月`,5:`5月`,6:`6月`,7:`7月`,8:`8月`,9:`9月`,10:`10月`,11:`11月`,12:`12月`},sync:{title:`筛选对所有人可见`,statusTips:{on:`开启后,所有协作者都将看到此次筛选结果`,off:`关闭后,仅你可见此次筛选结果`},switchTips:{on:`已开启“筛选对所有人可见”,所有协作者都将看到此次筛选结果`,off:`已关闭“筛选对所有人可见”,仅你可见此次筛选结果`}}}}),e8=function(e){return e.DESC=`desc`,e.ASC=`asc`,e}({}),Ikt=e=>e.replace(/-/gi,``).replace(/'/gi,``),Lkt=(e,t)=>{let n=e===null||e===``,r=t===null||t===``;return n&&r?0:n?1:r?-1:null},Rkt=(e,t,n)=>{let r=typeof e==`number`,i=typeof t==`number`;return r&&i?e<t?n===`asc`?-1:1:e>t?n===`asc`?1:-1:0:r?n===`asc`?1:-1:i?n===`asc`?-1:1:null},zkt=(e,t,n)=>{let r=typeof e==`string`,i=typeof t==`string`;if(r&&(e=Ikt(e.toLocaleLowerCase())),i&&(t=Ikt(t.toLocaleLowerCase())),!r&&!i)return null;if(r&&i){let r=e,i=t;return r<i?n===`asc`?-1:1:r>i?n===`asc`?1:-1:0}return r?n===`asc`?1:-1:i?n===`asc`?-1:1:null},Bkt=e=>!e||Object.keys(e).length===0||e?.v==null&&e?.p==null;function t8(e){"@babel/helpers - typeof";return t8=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t8(e)}function Vkt(e,t){if(t8(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(t8(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Hkt(e){var t=Vkt(e,`string`);return t8(t)==`symbol`?t:t+``}function n8(e,t,n){return(t=Hkt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r8(e,t){return function(n,r){t(n,r,e)}}function i8(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var a8=class extends P{constructor(e,t,n){super(),this._univerInstanceService=e,this._commandService=t,this._formulaDataModel=n,n8(this,`_compareFns`,[])}mergeCheck(e){let{unitId:t,subUnitId:n,range:r}=e,i=this._univerInstanceService.getUnit(t)?.getSheetBySheetId(n);if(!i)return!1;let a=i.getMergeData().filter(e=>l_.contains(r,e));return a.length===0||Ukt(r,a)}emptyCheck(e){let{unitId:t,subUnitId:n,range:r}=e,i=this._univerInstanceService.getUnit(t)?.getSheetBySheetId(n);if(!i)return!1;for(let e=r.startRow;e<=r.endRow;e++)for(let t=r.startColumn;t<=r.endColumn;t++)if(!Bkt(i.getCellRaw(e,t)))return!0;return!1}singleCheck(e){return e.range.startRow!==e.range.endRow}formulaCheck(e){var t;let{unitId:n,subUnitId:r,range:i}=e,a=(t=this._formulaDataModel.getArrayFormulaRange())==null||(t=t[n])==null?void 0:t[r];for(let e in a){let t=a[Number(e)];for(let e in t){let n=t[Number(e)];if(n&&l_.intersects(i,n))return!1}}return!0}registerCompareFn(e){this._compareFns.unshift(e)}getAllCompareFns(){return this._compareFns}applySort(e,t,n){let{unitId:r,subUnitId:i}=bG(this._univerInstanceService)||{};this._commandService.executeCommand(o8.id,{orderRules:e.orderRules,range:e.range,hasTitle:e.hasTitle??!1,unitId:t||r,subUnitId:n||i})}};a8=i8([r8(0,z),r8(1,R),r8(2,j(CB))],a8);function Ukt(e,t){let n=e.endRow-e.startRow+1,r=e.endColumn-e.startColumn+1,i=null,a=null,o=n*r,s=0;for(let n of t)if(n.startRow>=e.startRow&&n.endRow<=e.endRow&&n.startColumn>=e.startColumn&&n.endColumn<=e.endColumn){let e=n.endRow-n.startRow+1,t=n.endColumn-n.startColumn+1;if(i===null&&a===null)i=e,a=t;else if(e!==i||t!==a)return!1;s+=e*t}return s===o}var o8={id:`sheet.command.sort-range`,type:L.COMMAND,handler:(e,t)=>{let{range:n,orderRules:r,hasTitle:i,unitId:a,subUnitId:o}=t,s=e.get(a8),{worksheet:c}=bG(e.get(z),t)||{};if(!c)return!1;let l=c.getMergeData().filter(e=>l_.contains(n,e)),u=l.map(e=>e.startRow),{startRow:d,endRow:f}=n,p=i?d+1:d,m=[],h=[];for(let e=p;e<=f;e++)c.getRowFiltered(e)||c.getRowRawVisible(e)!==!1&&(!l.length||u.includes(e))&&(m.push({index:e,value:Wkt(c,e,r)}),h.push(e));let g=s.getAllCompareFns();m.sort(Kkt(r,Gkt(g)));let _={};m.forEach(({index:e,value:t},n)=>{_[h[n]]=e});let v={id:jq.id,params:{unitId:a,subUnitId:o,range:n,order:_}},y=e.get(R);return Gm([v],y).result}};function Wkt(e,t,n){let r=[];return n.forEach(({colIndex:n})=>{r.push(e.getCellRaw(t,n))}),r}function Gkt(e){return(t,n,r)=>{for(let i=0;i<e.length;i++){let a=e[i](t,n,r);if(a!=null)return a}return 0}}function Kkt(e,t){return function(n,r){let i=null;for(let a=0;a<e.length;a++){let o=n.value[a],s=r.value[a];if(i=t(e[a].type,o,s),i!==0&&i!=null)return i}return 0}}var qkt=`@univerjs/sheets-sort`,Jkt=`0.25.1`,Ykt=`sheets-sort.config`,Xkt={},s8=class extends P{constructor(e,t){super(),this._commandService=e,this._sortService=t,this._initCommands(),this._registerCompareFns()}_initCommands(){[o8].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_registerCompareFns(){this._sortService.registerCompareFn((e,t,n)=>{let r=this._getCommonValue(t),i=this._getCommonValue(n),a=[Lkt,zkt,Rkt];for(let t=0;t<a.length;t++){let n=a[t](r,i,e);if(n!==null)return n}return null})}_getCommonValue(e){var t;return Bkt(e)?null:(e==null||(t=e.p)==null||(t=t.body)==null?void 0:t.dataStream)||(e?.t===Np.NUMBER?Number.parseFloat(`${e.v}`):e?.t===Np.STRING?typeof e.v==`number`?e.v:`${e.v}`:e?.t===Np.BOOLEAN?`${e.v}`:e?.t===Np.FORCE_STRING?Number.parseFloat(`${e.v}`):`${e?.v}`)}};s8=i8([r8(0,R),r8(1,j(a8))],s8);var c8=class extends ax{constructor(e=Xkt,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{...r}=Qi({},Xkt,this._config);this._configService.setConfig(Ykt,r)}onStarting(){[[s8],[a8]].forEach(e=>this._injector.add(e))}onReady(){this._injector.get(s8)}};n8(c8,`type`,M.UNIVER_SHEET),n8(c8,`pluginName`,`SHEET_SORT_PLUGIN`),n8(c8,`packageName`,qkt),n8(c8,`version`,Jkt),c8=i8([sx(mZ,vU),r8(1,j(We)),r8(2,Mm)],c8);var Zkt=e=>{let[t,n]=(0,V.useState)(`0`),r=U(Xb);return(0,H.jsxs)(`div`,{className:`univer-text-sm`,children:[(0,H.jsx)(`div`,{className:`extend-confirm-desc`,children:r.t(`sheets-sort-ui.dialog.sort-reminder-desc`)}),(0,H.jsxs)(gj,{className:`univer-mt-4`,value:t,direction:`vertical`,onChange:t=>{n(t),e.onChange(t)},children:[(0,H.jsx)(_j,{value:`0`,children:r.t(`sheets-sort-ui.dialog.sort-reminder-no`)}),(0,H.jsx)(_j,{value:`1`,children:r.t(`sheets-sort-ui.dialog.sort-reminder-ext`)})]})]})};function l8(e){"@babel/helpers - typeof";return l8=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},l8(e)}function Qkt(e,t){if(l8(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(l8(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function $kt(e){var t=Qkt(e,`string`);return l8(t)==`symbol`?t:t+``}function u8(e,t,n){return(t=$kt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d8(e,t){return function(n,r){t(n,r,e)}}function f8(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var p8={MERGE_ERROR:`sheets-sort-ui.error.merge-size`,EMPTY_ERROR:`sheets-sort-ui.error.empty`,SINGLE_ERROR:`sheets-sort-ui.error.single`,FORMULA_ARRAY:`sheets-sort-ui.error.formula-array`},m8=class extends P{constructor(e,t,n,r,i,a){super(),this._univerInstanceService=e,this._confirmService=t,this._selectionManagerService=n,this._sheetsSortService=r,this._localeService=i,this._commandService=a,u8(this,`_customSortState$`,new so(null)),u8(this,`customSortState$`,this._customSortState$.asObservable())}async triggerSortDirectly(e,t,n){let r=n||await this._detectSortLocation(t);if(!r||!this._check(r))return!1;let i={orderRules:[{type:e?e8.ASC:e8.DESC,colIndex:r.colIndex}],range:r.range};return this._sheetsSortService.applySort(i,r.unitId,r.subUnitId),!0}async triggerSortCustomize(){let e=await this._detectSortLocation();return!e||!this._check(e)?!1:(this.showCustomSortPanel(e),!0)}customSortState(){return this._customSortState$.getValue()}getTitles(e){let t=this.customSortState()?.location;if(!t)return[];let{unitId:n,subUnitId:r,range:i}=t,a=this._univerInstanceService.getUnit(n)?.getSheetBySheetId(r);if(!a)return[];let o=eAt(this._localeService);return Array.from({length:i.endColumn-i.startColumn+1},(t,n)=>{let r=a.getCell(i.startRow,n+i.startColumn)?.v;return{index:n+i.startColumn,label:e?`${r??o(n+i.startColumn)}`:o(n+i.startColumn)}})}setSelection(e,t,n){let r=this._univerInstanceService.getUnit(e)?.getSheetBySheetId(t);if(!r)return;let i={unitId:e,subUnitId:t,selections:[{range:n,primary:QK(n,r),style:null}]};this._commandService.executeCommand(iq.id,i)}async showCheckError(e){return await this._confirmService.confirm({id:`sort-range-check-error`,title:{title:this._localeService.t(`sheets-sort-ui.info.tooltip`)},children:{title:(0,H.jsx)(`div`,{children:this._localeService.t(e)})},cancelText:this._localeService.t(`sheets-sort-ui.dialog.cancel`),confirmText:this._localeService.t(`sheets-sort-ui.dialog.confirm`)})}async showExtendConfirm(){let e=!1;return await this._confirmService.confirm({id:`extend-sort-range-dialog`,title:{title:this._localeService.t(`sheets-sort-ui.dialog.sort-reminder`)},children:{title:(0,H.jsx)(Zkt,{onChange:t=>{e=t===`1`}})},width:400,cancelText:this._localeService.t(`sheets-sort-ui.dialog.cancel`),confirmText:this._localeService.t(`sheets-sort-ui.dialog.confirm`)})?e?`extend`:`keep`:`cancel`}showCustomSortPanel(e){this._customSortState$.next({location:e,show:!0})}closeCustomSortPanel(){this._customSortState$.next({show:!1})}_check(e){return this._sheetsSortService.singleCheck(e)?this._sheetsSortService.mergeCheck(e)?this._sheetsSortService.formulaCheck(e)?this._sheetsSortService.emptyCheck(e)?!0:(this.showCheckError(p8.EMPTY_ERROR),!1):(this.showCheckError(p8.FORMULA_ARRAY),!1):(this.showCheckError(p8.MERGE_ERROR),!1):(this.showCheckError(p8.SINGLE_ERROR),!1)}async _detectSortLocation(e){let t=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET),n=t.getActiveSheet(),r=t.getUnitId(),i=n.getSheetId(),a=this._selectionManagerService.getCurrentLastSelection();if(!a)return null;let o;if(e===!0)o=EK(a.range,{up:!0,down:!0,left:!0,right:!0},n),this.setSelection(r,i,o);else if(e===!1)o=a.range;else{let e=await this.showExtendConfirm();if(e===`cancel`)return null;e===`keep`?o=a.range:(o=EK(a.range,{up:!0,down:!0,left:!0,right:!0},n),this.setSelection(r,i,o))}return{range:o,unitId:r,subUnitId:i,colIndex:a.primary.actualColumn}}};m8=f8([d8(0,z),d8(1,Vy),d8(2,j(HK)),d8(3,j(a8)),d8(4,j(Xb)),d8(5,R)],m8);function eAt(e){return t=>{let n=F.chatAtABC(t);switch(e.getCurrentLocale()){case yp.ZH_CN:return`"${n}"列`;case yp.EN_US:return`Column "${n}"`;default:return`Column "${n}"`}}}var h8={id:`sheet.command.sort-range-asc`,type:L.COMMAND,handler:async e=>await e.get(m8).triggerSortDirectly(!0,!1)},g8={id:`sheet.command.sort-range-asc-ext`,type:L.COMMAND,handler:async e=>await e.get(m8).triggerSortDirectly(!0,!0)},_8={id:`sheet.command.sort-range-desc`,type:L.COMMAND,handler:async e=>await e.get(m8).triggerSortDirectly(!1,!1)},v8={id:`sheet.command.sort-range-desc-ext`,type:L.COMMAND,handler:async e=>await e.get(m8).triggerSortDirectly(!1,!0)},y8={id:`sheet.command.sort-range-custom`,type:L.COMMAND,handler:async e=>await e.get(m8).triggerSortCustomize()},b8={id:`sheet.command.sort-range-asc-ctx`,type:L.COMMAND,handler:async e=>await e.get(m8).triggerSortDirectly(!0,!1)},x8={id:`sheet.command.sort-range-asc-ext-ctx`,type:L.COMMAND,handler:async e=>await e.get(m8).triggerSortDirectly(!0,!0)},S8={id:`sheet.command.sort-range-desc-ctx`,type:L.COMMAND,handler:async e=>await e.get(m8).triggerSortDirectly(!1,!1)},C8={id:`sheet.command.sort-range-desc-ext-ctx`,type:L.COMMAND,handler:async e=>await e.get(m8).triggerSortDirectly(!1,!0)},w8={id:`sheet.command.sort-range-custom-ctx`,type:L.COMMAND,handler:async e=>await e.get(m8).triggerSortCustomize()},tAt=`@univerjs/sheets-sort-ui`,nAt=`0.25.1`,rAt=`sheets-sort-ui.config`,iAt={},aAt=`sheet.menu.sheets-sort`,oAt=`sheet.menu.sheets-sort-ctx`,T8=`AscendingIcon`,E8=`ExpandAscendingIcon`,D8=`DescendingIcon`,O8=`ExpandDescendingIcon`,k8=`CustomSortIcon`;function sAt(e){return{id:aAt,type:yM.SUBITEMS,icon:T8,tooltip:`sheets-sort-ui.general.sort`,hidden$:Nj(e,M.UNIVER_SHEET),disabled$:T0(e,{workbookTypes:[rX],worksheetTypes:[TX,hX],rangeTypes:[KY]})}}function cAt(e){return{id:h8.id,icon:T8,title:`sheets-sort-ui.general.sort-asc-cur`,type:yM.BUTTON,hidden$:Pyt(e)}}function lAt(e){return{id:g8.id,title:`sheets-sort-ui.general.sort-asc-ext`,icon:E8,type:yM.BUTTON}}function uAt(e){return{id:_8.id,title:`sheets-sort-ui.general.sort-desc-cur`,icon:D8,type:yM.BUTTON}}function dAt(e){return{id:v8.id,title:`sheets-sort-ui.general.sort-desc-ext`,icon:O8,type:yM.BUTTON}}function fAt(e){return{id:y8.id,title:`sheets-sort-ui.general.sort-custom`,type:yM.BUTTON,icon:k8}}function pAt(e){return{id:oAt,title:`sheets-sort-ui.general.sort`,type:yM.SUBITEMS,icon:T8,hidden$:Nj(e,M.UNIVER_SHEET),disabled$:T0(e,{workbookTypes:[rX],worksheetTypes:[TX,hX],rangeTypes:[KY]})}}function mAt(e){return{id:b8.id,title:`sheets-sort-ui.general.sort-asc-cur`,type:yM.BUTTON,icon:T8,disabled$:T0(e,{workbookTypes:[rX],worksheetTypes:[TX,hX],rangeTypes:[KY]})}}function hAt(e){return{id:x8.id,title:`sheets-sort-ui.general.sort-asc-ext`,type:yM.BUTTON,icon:E8,disabled$:T0(e,{workbookTypes:[rX],worksheetTypes:[TX,hX],rangeTypes:[KY]})}}function gAt(e){return{id:S8.id,title:`sheets-sort-ui.general.sort-desc-cur`,type:yM.BUTTON,icon:D8,disabled$:T0(e,{workbookTypes:[rX],worksheetTypes:[TX,hX],rangeTypes:[KY]})}}function _At(e){return{id:C8.id,title:`sheets-sort-ui.general.sort-desc-ext`,type:yM.BUTTON,icon:O8,disabled$:T0(e,{workbookTypes:[rX],worksheetTypes:[TX,hX],rangeTypes:[KY]})}}function vAt(e){return{id:w8.id,title:`sheets-sort-ui.general.sort-custom`,type:yM.BUTTON,icon:k8,disabled$:T0(e,{workbookTypes:[rX],worksheetTypes:[TX,hX],rangeTypes:[KY]})}}var yAt={[pM.ORGANIZATION]:{[aAt]:{order:3,menuItemFactory:sAt,[h8.id]:{order:0,menuItemFactory:cAt},[g8.id]:{order:1,menuItemFactory:lAt},[_8.id]:{order:2,menuItemFactory:uAt},[v8.id]:{order:3,menuItemFactory:dAt},[y8.id]:{order:4,menuItemFactory:fAt}}},[mM.MAIN_AREA]:{[hM.DATA]:{[oAt]:{order:0,menuItemFactory:pAt,[b8.id]:{order:0,menuItemFactory:mAt},[x8.id]:{order:1,menuItemFactory:hAt},[S8.id]:{order:2,menuItemFactory:gAt},[C8.id]:{order:3,menuItemFactory:_At},[w8.id]:{order:4,menuItemFactory:vAt}}}}};function bAt(){let e=KD(U(m8).customSortState$);return!e||!e.location?null:(0,H.jsx)(xAt,{state:e})}function xAt({state:e}){let t=U(a8),n=U(Xb),r=U(m8),[i,a]=(0,V.useState)(!1),[o,s]=(0,V.useState)(0),c=(0,V.useRef)(null),{range:l,unitId:u,subUnitId:d}=e.location,f=r.getTitles(i),[p,m]=(0,V.useState)([{type:e8.ASC,colIndex:l.startColumn}]),h=(0,V.useCallback)((e,t)=>{let n=[...p];t===null?n.splice(e,1):n[e]=t,m(n)},[p]),g=(0,V.useCallback)(_f(()=>{let e=[...p],t=CAt(l,p);t!==null&&(e.push({type:e8.ASC,colIndex:t}),m(e))},200),[p,l]),_=(0,V.useCallback)((e,n)=>{t.applySort({range:l,orderRules:e,hasTitle:n}),r.closeCustomSortPanel()},[t,r,l]),v=(0,V.useCallback)(()=>{r.closeCustomSortPanel()},[r]),y=(0,V.useCallback)(e=>{a(e),e?r.setSelection(u,d,{...l,startRow:l.startRow+1}):r.setSelection(u,d,l)},[r,l,d,u]);(0,V.useEffect)(()=>{c.current&&p.length>5&&(c.current.scrollTop=c.current.scrollHeight)},[p]);let b=p.length<f.length,x=p.map(e=>({...e,id:`${e.colIndex}`}));return(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(`div`,{onMouseDown:e=>{e.stopPropagation()},children:[(0,H.jsxs)(`div`,{className:`univer-mb-2 univer-flex univer-items-center univer-justify-between`,children:[(0,H.jsx)(QA,{checked:i,onChange:e=>y(!!e),children:n.t(`sheets-sort-ui.dialog.first-row-check`)}),b?(0,H.jsxs)(`div`,{className:`univer-flex univer-cursor-pointer univer-select-none univer-items-center univer-text-base`,onClick:g,children:[(0,H.jsx)(wD,{}),(0,H.jsx)(`span`,{className:`univer-ml-1.5`,children:n.t(`sheets-sort-ui.dialog.add-condition`)})]}):(0,H.jsxs)(`div`,{className:`univer-flex univer-cursor-pointer univer-select-none univer-items-center univer-text-base univer-text-primary-500 disabled:univer-cursor-not-allowed disabled:univer-divide-opacity-30 disabled:univer-text-gray-800`,children:[(0,H.jsx)(wD,{}),(0,H.jsx)(`span`,{className:`univer-ml-1.5 univer-text-xs`,children:n.t(`sheets-sort-ui.dialog.add-condition`)})]})]}),(0,H.jsx)(`div`,{ref:c,className:W(`univer-max-h-[310px] univer-overflow-y-auto univer-overflow-x-hidden`,WA),onScroll:e=>{let t=e.currentTarget.scrollTop;s(t)},children:(0,H.jsx)(wGe,{list:x,onListChange:m,idKey:`id`,draggableHandle:`[data-u-comp=sort-panel-item-handler]`,itemRender:e=>(0,H.jsx)(SAt,{titles:f,list:x,item:e,onChange:(e,t)=>h(t,e),scrollPosition:o}),rowHeight:32,margin:[0,12]})})]}),(0,H.jsxs)(`div`,{className:`univer-mt-5 univer-flex univer-justify-end`,children:[(0,H.jsx)(VA,{className:`univer-ml-3`,onClick:()=>v(),children:n.t(`sheets-sort-ui.dialog.cancel`)}),(0,H.jsx)(VA,{className:`univer-ml-3`,variant:`primary`,onClick:()=>_(p,i),children:n.t(`sheets-sort-ui.dialog.confirm`)})]})]})}function SAt(e){let{list:t,item:n,titles:r,onChange:i,scrollPosition:a}=e,o=U(Xb),s=r.filter(e=>!t.some(t=>t.colIndex===e.index)||e.index===n.colIndex),c=t.findIndex(e=>e.colIndex===n.colIndex),l=(0,V.useCallback)(e=>{i({...n,colIndex:e.index},c),d(!1)},[c,n,i]),[u,d]=(0,V.useState)(!1),f=e=>{d(e)};(0,V.useEffect)(()=>{d(!1)},[a]);let p=t.length>1,m=r.find(e=>e.index===n.colIndex)?.label;return(0,H.jsxs)(`div`,{className:`univer-grid univer-grid-flow-col univer-grid-cols-2 univer-items-center univer-gap-2`,children:[(0,H.jsxs)(`div`,{className:`univer-flex univer-items-center`,children:[(0,H.jsx)(`div`,{"data-u-comp":`sort-panel-item-handler`,className:`univer-flex univer-cursor-pointer univer-items-center univer-justify-center univer-text-base univer-text-gray-700`,children:(0,H.jsx)(ZNe,{})}),(0,H.jsx)(aj,{overlay:(0,H.jsx)(`ul`,{className:W(`univer-my-0 univer-box-border univer-grid univer-max-h-[310px] univer-w-[--radix-popper-anchor-width] univer-items-center univer-gap-1 univer-overflow-y-auto univer-overflow-x-hidden univer-rounded-lg univer-border univer-bg-white univer-p-1 univer-text-base univer-shadow-lg`,WA),children:s.map(e=>(0,H.jsxs)(`li`,{onClick:()=>l(e),className:`univer-relative univer-box-border univer-flex univer-h-7 univer-cursor-pointer univer-list-none univer-items-center univer-justify-between univer-rounded univer-px-2 univer-text-sm univer-transition-all hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,children:[(0,H.jsx)(`span`,{className:`univer-max-w-[220px] univer-truncate`,children:e.label}),(0,H.jsx)(`span`,{children:e.index===n.colIndex&&(0,H.jsx)(lD,{})})]},e.index))}),open:u,onOpenChange:f,children:(0,H.jsxs)(`div`,{className:W(`univer-ml-2 univer-flex univer-w-full univer-items-center univer-justify-between univer-overflow-hidden univer-rounded-md univer-py-1.5 univer-text-sm univer-text-gray-900 dark:!univer-text-white`),children:[(0,H.jsx)(`span`,{className:`univer-max-w-[220px] univer-truncate`,children:m}),(0,H.jsx)(kD,{})]})})]}),(0,H.jsxs)(`div`,{className:`univer-flex univer-items-center univer-justify-end univer-gap-2`,children:[(0,H.jsxs)(gj,{value:n.type,onChange:e=>{i({...n,type:e},c)},children:[(0,H.jsx)(_j,{value:e8.ASC,children:o.t(`sheets-sort-ui.general.sort-asc`)}),(0,H.jsx)(_j,{value:e8.DESC,children:o.t(`sheets-sort-ui.general.sort-desc`)})]}),(0,H.jsx)(`a`,{className:`univer-flex univer-cursor-pointer univer-items-center univer-text-sm univer-transition-colors hover:univer-text-red-500`,onClick:()=>i(null,c),children:!p&&(0,H.jsx)(Eje,{})})]})]})}function CAt(e,t){let{startColumn:n,endColumn:r}=e,i=new Set(t.map(e=>e?.colIndex));for(let e=n;e<=r;e++)if(!i.has(e))return e;return null}function wAt(e){let{range:t,colIndex:n,onClose:r}=e,i=U(m8),a=U(z),o=U(Xb),s=(0,V.useCallback)(e=>{let{unitId:o,subUnitId:s}=bG(a)||{};if(t&&o&&s){let r={...t,startRow:t.startRow+1};i.triggerSortDirectly(e,!1,{unitId:o,subUnitId:s,range:r,colIndex:n})}else throw Error(`Cannot find the target to sort. unitId: ${o}, subUnitId: ${s}, range: ${t}, colIndex: ${n}`);r()},[t,n,i,a,r]);return(0,H.jsxs)(MWe,{className:`univer-mb-3 univer-w-full univer-grid-cols-2`,children:[(0,H.jsxs)(VA,{onClick:()=>s(!0),children:[(0,H.jsx)(cD,{}),o.t(`sheets-sort-ui.general.sort-asc`)]}),(0,H.jsxs)(VA,{onClick:()=>s(!1),children:[(0,H.jsx)(pD,{}),o.t(`sheets-sort-ui.general.sort-desc`)]})]})}var TAt=`custom-sort-dialog`,EAt=560,DAt=128,A8=class extends Kf{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._commandService=e,this._menuManagerService=t,this._dialogService=n,this._layoutService=r,this._uiPartsService=i,this._sheetRenderService=a,this._localeService=o,this._sheetsSortUIService=s,this._injector=c,this._componentManager=l,this._initCommands(),this._initMenu(),this._initUI()}_initMenu(){this._menuManagerService.mergeMenu(yAt)}_initCommands(){[h8,g8,_8,v8,y8,b8,x8,S8,C8,w8].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e))),this.disposeWithMe(this._sheetRenderService.registerSkeletonChangingMutations(o8.id))}_initUI(){this.disposeWithMe(this._uiPartsService.registerComponent(M1.FILTER_PANEL_EMBED_POINT,()=>GD(wAt,this._injector))),[[`CustomSortPanel`,bAt],[T8,cD],[E8,Vje],[D8,pD],[O8,Uje],[k8,bje]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))}),this._sheetsSortUIService.customSortState$.pipe(cc(this.dispose$)).subscribe(e=>{e&&e.show&&e.location?this._openCustomSortPanel(e.location):e&&!e?.show&&this._closePanel()})}_openCustomSortPanel(e){this._dialogService.open({id:TAt,draggable:!0,width:EAt,title:{title:`${this._localeService.t(`sheets-sort-ui.general.sort-custom`)}: ${_z(e.range)}`},children:{label:`CustomSortPanel`},destroyOnClose:!0,defaultPosition:OAt(),preservePositionOnDestroy:!1,onClose:()=>this._closePanel(),mask:!0})}_closePanel(){this._dialogService.close(TAt),queueMicrotask(()=>this._layoutService.focus())}};A8=f8([d8(0,R),d8(1,gM),d8(2,oN),d8(3,Jj),d8(4,xM),d8(5,j(N1)),d8(6,j(Xb)),d8(7,j(m8)),d8(8,j(We)),d8(9,j(Mj))],A8);function OAt(){return{x:(window.innerWidth-EAt)/2,y:DAt}}var j8=class extends ax{constructor(e=iAt,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{...r}=Qi({},iAt,this._config);this._configService.setConfig(rAt,r)}onStarting(){[[m8],[A8]].forEach(e=>this._injector.add(e))}onRendered(){this._injector.get(A8)}};u8(j8,`type`,M.UNIVER_SHEET),u8(j8,`pluginName`,`SHEET_SORT_UI_PLUGIN`),u8(j8,`packageName`,tAt),u8(j8,`version`,nAt),j8=f8([sx(c8),d8(1,j(We)),d8(2,Mm)],j8);var kAt=class extends oS{_initialize(e){let t=e.get(R);this.disposeWithMe(this.registerEventHandler(this.Event.SheetBeforeRangeSort,()=>t.beforeCommandExecuted(e=>{e.id===o8.id&&this._beforeRangeSort(e)}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetRangeSorted,()=>t.onCommandExecuted(e=>{e.id===o8.id&&this._onRangeSorted(e)})))}_beforeRangeSort(e){let t=e.params,n=this.getUniverSheet(t.unitId),r=n.getSheetBySheetId(t.subUnitId),{startColumn:i,endColumn:a,startRow:o,endRow:s}=t.range,c={workbook:n,worksheet:r,range:r.getRange(o,i,s-o+1,a-i+1),sortColumn:t.orderRules.map(e=>({column:e.colIndex-i,ascending:e.type===e8.ASC}))};if(this.fireEvent(this.Event.SheetBeforeRangeSort,c),c.cancel)throw Error(`SortRangeCommand canceled.`)}_onRangeSorted(e){let t=e.params,n=this.getUniverSheet(t.unitId),r=n.getSheetBySheetId(t.subUnitId),{startColumn:i,endColumn:a,startRow:o,endRow:s}=t.range,c={workbook:n,worksheet:r,range:r.getRange(o,i,s-o+1,a-i+1),sortColumn:t.orderRules.map(e=>({column:e.colIndex-i,ascending:e.type===e8.ASC}))};if(this.fireEvent(this.Event.SheetRangeSorted,c),c.cancel)throw Error(`SortRangeCommand canceled.`)}};oS.extend(kAt);var AAt=class extends P3{sort(e){let t=this._range.startColumn,n=(Array.isArray(e)?e:[e]).map(e=>typeof e==`number`?{colIndex:e+t,type:e8.ASC}:{colIndex:e.column+t,type:e.ascending?e8.ASC:e8.DESC});return this._commandService.syncExecuteCommand(o8.id,{orderRules:n,range:this._range,hasTitle:!1,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}};P3.extend(AAt);var jAt=class extends j3{sort(e,t=!0){let n=[{colIndex:e,type:t?e8.ASC:e8.DESC}],r={startRow:0,startColumn:0,endRow:this._worksheet.getRowCount()-1,endColumn:this._worksheet.getColumnCount()-1,rangeType:_h.ALL};return this._commandService.syncExecuteCommand(o8.id,{orderRules:n,range:r,hasTitle:!1,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}};j3.extend(jAt);var MAt=class{get SheetRangeSorted(){return`SheetRangeSorted`}get SheetBeforeRangeSort(){return`SheetBeforeRangeSort`}};Qx.extend(MAt);function NAt(){return{plugins:[c8,j8].filter(e=>!!e)}}var PAt=Ig({"sheets-sort-ui":{general:{sort:`排序`,"sort-asc":`升序`,"sort-desc":`降序`,"sort-custom":`自定义排序`,"sort-asc-ext":`拓展区域升序`,"sort-desc-ext":`拓展区域降序`,"sort-asc-cur":`当前区域升序`,"sort-desc-cur":`当前区域降序`},error:{"merge-size":`所选区域的合并单元格的大小不一致,无法排序。`,empty:`所选区域无内容,无法排序。`,single:`所选区域仅有一行,无法排序。`,"formula-array":`所选区域含数组公式,无法排序。`},dialog:{"sort-reminder":`排序提醒`,"sort-reminder-desc":`当前仅会对选中区域进行排序,是否拓展排序范围?`,"sort-reminder-ext":`拓展排序范围`,"sort-reminder-no":`保持所选排序范围`,"first-row-check":`标题不参与排序`,"add-condition":`添加排序条件`,cancel:`取消`,confirm:`确认`},info:{tooltip:`提示`}}}),FAt=`FIND_REPLACE_INPUT_FOCUS`,IAt=`FIND_REPLACE_DIALOG_FOCUS`,LAt=`FIND_REPLACE_REPLACE_REVEALED`;function M8(e){"@babel/helpers - typeof";return M8=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},M8(e)}function RAt(e,t){if(M8(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(M8(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function zAt(e){var t=RAt(e,`string`);return M8(t)==`symbol`?t:t+``}function N8(e,t,n){return(t=zAt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P8(e,t){return function(n,r){t(n,r,e)}}function F8(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var BAt=class extends P{},I8=ce(`find-replace.service`);function VAt(e){return e.findString!==void 0||e.inputtingFindString!==void 0||e.findDirection!==void 0||e.matchesTheWholeCell!==void 0||e.caseSensitive!==void 0||e.findScope!==void 0||e.findBy!==void 0}var L8=class extends P{get searched(){return this._findModels.length>0}constructor(e,t,n,r){super(),this._state=e,this._providers=t,this._univerInstanceService=n,this._commandService=r,N8(this,`currentMatch$`,new so(null)),N8(this,`replaceables$`,new so([])),N8(this,`_findModels`,[]),N8(this,`_matchingModel`,null),N8(this,`_matches`,[]),N8(this,`_currentSearchingDisposables`,null),this.disposeWithMe(this._state.stateUpdates$.pipe(dc(200,void 0,{leading:!0,trailing:!0})).subscribe(async e=>{let t=this._state.state;VAt(e)&&(t.findString!==``&&!t.replaceRevealed?(await this._startSearching(),this._state.changeState({findCompleted:!0})):e.replaceRevealed!==!0&&this._stopSearching())}))}dispose(){super.dispose(),this._stopSearching(),this.currentMatch$.complete(),this.replaceables$.complete(),this._state.changeState({...V8(),revealed:!1})}async start(){if(!this._state.findString)return{results:[]};let e=await this._startSearching();return this._state.changeState({findCompleted:!0}),e}focusSelection(){var e;(e=this._matchingModel)==null||e.focusSelection()}async _startSearching(){if(!this._state.findString)return{results:[]};let e=Array.from(this._providers),t=this._findModels=(await Promise.all(e.map(e=>e.find({findString:this._state.findString,findDirection:this._state.findDirection,findScope:this._state.findScope,findBy:this._state.findBy,replaceRevealed:this._state.replaceRevealed,caseSensitive:this._state.caseSensitive,matchesTheWholeCell:this._state.matchesTheWholeCell})))).flat();this._subscribeToModelsChanges(t);let n=this._matches=t.map(e=>e.getMatches()).flat();return this.replaceables$.next(n.filter(e=>e.replaceable)),n.length?(this._moveToInitialMatch(t),this._state.changeState({matchesCount:n.length}),{results:n}):(this._state.changeState({matchesCount:0,matchesPosition:0}),{results:[]})}_stopSearching(){var e;this._providers.forEach(e=>e.terminate()),this._findModels=[],this._matches=[],this._matchingModel=null,(e=this._currentSearchingDisposables)==null||e.dispose(),this._currentSearchingDisposables=null,this.currentMatch$.next(null),this.replaceables$.next([]),this._state.changeState({findCompleted:!1,matchesCount:0,matchesPosition:0})}_subscribeToModelsChanges(e){let t=this._currentSearchingDisposables=new Gf,n=_s(e.map(e=>e.matchesUpdate$)).pipe(Ks(220)).subscribe(([...e])=>{let t=this._matches=e.flat();t.length?(this._moveToInitialMatch(this._findModels,!0),this._state.changeState({matchesCount:t.length}),this.replaceables$.next(t.filter(e=>e.replaceable))):(this._state.changeState({matchesCount:0,matchesPosition:0}),this.replaceables$.next([]))});e.forEach(e=>t.add(Wf(e.activelyChangingMatch$.subscribe(e=>{let t=this._matches.findIndex(t=>t===e);this._state.changeState({matchesPosition:t+1})})))),t.add(Wf(n))}async replace(){return this._matchingModel?this._matchingModel.replace(this._state.replaceString):!1}async replaceAll(){let e=await Promise.all(this._findModels.map(e=>e.replaceAll(this._state.replaceString))).then(e=>e.reduce((e,t)=>(e.success+=t.success,e.failure+=t.failure,e),{success:0,failure:0}));return e.failure===0&&this._stopSearching(),e}getCurrentMatch(){return this._state.matchesPosition>0?this._matches[this._state.matchesPosition-1]:null}_markMatch(e){let t=this._matches.findIndex(t=>t===e);this.currentMatch$.next(e),this._state.changeState({matchesPosition:t+1})}moveToNextMatch(){if(!this._matchingModel)return;let e=this._findModels.length===1,t=this._matchingModel.moveToNextMatch({loop:e});if(t)return this._markMatch(t),t;{let e=this._findModels.findIndex(e=>e===this._matchingModel);return this._moveToNextUnitMatch(e)}}_moveToNextUnitMatch(e){let t=this._findModels.length;for(let n=(e+1)%t;n!==e;){let e=this._findModels[n],r=e.moveToNextMatch({ignoreSelection:!0});if(r)return this._matchingModel=e,this._markMatch(r),r;n=(n+1)%t}if(this._matchingModel){let e=this._matchingModel.moveToNextMatch({ignoreSelection:!0});return e&&this._markMatch(e),e}}moveToPreviousMatch(){if(!this._matchingModel)return;let e=this._findModels.length===1,t=this._matchingModel.moveToPreviousMatch({loop:e});if(t){let e=this._matches.findIndex(e=>e===t);return this.currentMatch$.next(t),this._state.changeState({matchesPosition:e+1}),t}{let e=this._findModels.length,t=this._findModels.findIndex(e=>e===this._matchingModel);for(let n=(t-1+e)%e;n!==t;){let t=this._findModels[n],r=t.moveToPreviousMatch({ignoreSelection:!0});if(r)return this._matchingModel=t,this._markMatch(r),r;n=(n-1)%e}let n=this._matchingModel.moveToPreviousMatch({ignoreSelection:!0});return n&&this._markMatch(n),n}}_moveToInitialMatch(e,t=!1){let n=this._univerInstanceService.getFocusedUnit()?.getUnitId();if(!n)return-1;let r=e.findIndex(e=>e.unitId===n);if(r!==-1){this._matchingModel=e[r];let n=this._matchingModel.moveToNextMatch({stayIfOnMatch:!0,noFocus:t});if(n)return this._markMatch(n),r}return this._moveToNextUnitMatch(r),0}};L8=F8([P8(2,z),P8(3,R)],L8);var R8=function(e){return e.ROW=`row`,e.COLUMN=`column`,e}({}),z8=function(e){return e.VALUE=`value`,e.FORMULA=`formula`,e}({}),B8=function(e){return e.SUBUNIT=`subunit`,e.UNIT=`unit`,e}({});function V8(){return{caseSensitive:!1,findBy:`value`,findCompleted:!1,findDirection:`row`,findScope:`subunit`,findString:``,inputtingFindString:``,matchesCount:0,matchesPosition:0,matchesTheWholeCell:!1,replaceRevealed:!1,replaceString:``,revealed:!0}}var HAt=class{constructor(){N8(this,`_stateUpdates$`,new ao),N8(this,`stateUpdates$`,this._stateUpdates$.asObservable()),N8(this,`_state$`,new so(V8())),N8(this,`state$`,this._state$.asObservable()),N8(this,`_findString`,``),N8(this,`_inputtingFindString`,``),N8(this,`_replaceString`,``),N8(this,`_revealed`,!1),N8(this,`_replaceRevealed`,!1),N8(this,`_matchesPosition`,0),N8(this,`_matchesCount`,0),N8(this,`_caseSensitive`,!0),N8(this,`_matchesTheWholeCell`,!1),N8(this,`_findDirection`,`row`),N8(this,`_findScope`,`subunit`),N8(this,`_findBy`,`value`),N8(this,`_findCompleted`,!1)}get state(){return this._state$.getValue()}get inputtingFindString(){return this._inputtingFindString}get findString(){return this._findString}get revealed(){return this._revealed}get replaceRevealed(){return this._replaceRevealed}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get replaceString(){return this._replaceString}get caseSensitive(){return this._caseSensitive}get matchesTheWholeCell(){return this._matchesTheWholeCell}get findDirection(){return this._findDirection}get findScope(){return this._findScope}get findBy(){return this._findBy}get findCompleted(){return this._findCompleted}changeState(e){let t=!1,n={};e.findString!==void 0&&e.findString!==this._findString&&(this._findString=e.findString,n.findString=this._findString,t=!0),e.revealed!==void 0&&e.revealed!==this._revealed&&(this._revealed=e.revealed,n.revealed=e.revealed,t=!0),e.replaceRevealed!==void 0&&e.replaceRevealed!==this._replaceRevealed&&(this._replaceRevealed=e.replaceRevealed,n.replaceRevealed=e.replaceRevealed,t=!0),e.replaceString!==void 0&&e.replaceString!==this._replaceString&&(this._replaceString=e.replaceString,n.replaceString=e.replaceString,t=!0),e.matchesCount!==void 0&&e.matchesCount!==this._matchesCount&&(this._matchesCount=e.matchesCount,n.matchesCount=e.matchesCount,t=!0),e.matchesPosition!==void 0&&e.matchesPosition!==this._matchesPosition&&(this._matchesPosition=e.matchesPosition,n.matchesPosition=e.matchesPosition,t=!0),e.findBy!==void 0&&e.findBy!==this._findBy&&(this._findBy=e.findBy,n.findBy=e.findBy,t=!0),e.findScope!==void 0&&e.findScope!==this._findScope&&(this._findScope=e.findScope,n.findScope=e.findScope,t=!0),e.findDirection!==void 0&&e.findDirection!==this._findDirection&&(this._findDirection=e.findDirection,n.findDirection=e.findDirection,t=!0),e.caseSensitive!==void 0&&e.caseSensitive!==this._caseSensitive&&(this._caseSensitive=e.caseSensitive,n.caseSensitive=e.caseSensitive,t=!0),e.matchesTheWholeCell!==void 0&&e.matchesTheWholeCell!==this._matchesTheWholeCell&&(this._matchesTheWholeCell=e.matchesTheWholeCell,n.matchesTheWholeCell=e.matchesTheWholeCell,t=!0),e.inputtingFindString!==void 0&&e.inputtingFindString!==this._inputtingFindString&&(this._inputtingFindString=e.inputtingFindString,n.inputtingFindString=e.inputtingFindString,t=!0),e.findCompleted!==void 0&&e.findCompleted!==this._findCompleted&&(this._findCompleted=e.findCompleted,n.findCompleted=e.findCompleted,t=!0),t&&(this._state$.next({caseSensitive:this._caseSensitive,findBy:this._findBy,findCompleted:this._findCompleted,findDirection:this._findDirection,findScope:this._findScope,findString:this._findString,inputtingFindString:this._inputtingFindString,matchesCount:this._matchesCount,matchesPosition:this._matchesPosition,matchesTheWholeCell:this._matchesTheWholeCell,replaceRevealed:this._replaceRevealed,revealed:this._revealed}),this._stateUpdates$.next(n))}},H8=class extends P{get stateUpdates$(){return this._state.stateUpdates$}get state$(){return this._state.state$}get revealed(){return this._state.revealed}get replaceRevealed(){return this._state.replaceRevealed}constructor(e,t){super(),this._injector=e,this._contextService=t,N8(this,`_providers`,new Set),N8(this,`_state`,new HAt),N8(this,`_model`,void 0),N8(this,`_modelDisposables`,null),N8(this,`_currentMatch$`,new so(null)),N8(this,`currentMatch$`,this._currentMatch$.asObservable()),N8(this,`_replaceables$`,new so([])),N8(this,`replaceables$`,this._replaceables$.asObservable()),N8(this,`_focusSignal$`,new ao),N8(this,`focusSignal$`,this._focusSignal$.asObservable())}dispose(){super.dispose(),this._currentMatch$.next(null),this._currentMatch$.complete(),this._replaceables$.next([]),this._replaceables$.complete(),this._focusSignal$.complete()}getProviders(){return this._providers}getCurrentMatch(){return this._model?.getCurrentMatch()}getFindString(){return this._state.findString}changeFindString(e){this._state.changeState({findString:e})}focusFindInput(){this._focusSignal$.next()}changeInputtingFindString(e){e?this._state.changeState({inputtingFindString:e}):this._state.changeState({inputtingFindString:``,findString:``})}changeReplaceString(e){this._state.changeState({replaceString:e})}changeMatchesTheWholeCell(e){this._state.changeState({matchesTheWholeCell:e})}changeCaseSensitive(e){this._state.changeState({caseSensitive:e})}changeFindBy(e){this._state.changeState({findBy:e}),this._toggleDisplayRawFormula(e===`formula`)}changeFindScope(e){this._state.changeState({findScope:e})}changeFindDirection(e){this._state.changeState({findDirection:e})}moveToNextMatch(){this._model&&(this._state.replaceRevealed&&!this._model.searched?(this._state.changeState({findString:this._state.inputtingFindString}),this._model.start()):this._model.moveToNextMatch(),this._focusSignal$.next())}moveToPreviousMatch(){this._model&&(this._state.replaceRevealed&&!this._model.searched?(this._state.changeState({findString:this._state.inputtingFindString}),this._model.start()):this._model.moveToPreviousMatch(),this._focusSignal$.next())}async replace(){return this._model?this._model.replace():!1}async replaceAll(){if(!this._model)throw Error(`[FindReplaceService] replaceAll: model is not initialized!`);return this._model.replaceAll()}revealReplace(){this._state.changeState({replaceRevealed:!0,inputtingFindString:this._state.findString}),this._toggleRevealReplace(!0)}focusSelection(){var e;(e=this._model)==null||e.focusSelection()}start(e=!1){if(this._providers.size===0)return!1;this._model=this._injector.createInstance(L8,this._state,this._providers),this._modelDisposables=new Gf,this._modelDisposables.add(Wf(this._model.currentMatch$.subscribe(e=>this._currentMatch$.next(e)))),this._modelDisposables.add(Wf(this._model.replaceables$.subscribe(e=>this._replaceables$.next(e))));let t=V8();return e&&(t.replaceRevealed=!0),this._state.changeState(t),this._toggleRevealReplace(e),!0}find(){var e;(e=this._model)==null||e.start()}terminate(){var e,t;(e=this._model)==null||e.dispose(),this._model=null,(t=this._modelDisposables)==null||t.dispose(),this._modelDisposables=null,this._toggleDisplayRawFormula(!1),this._toggleRevealReplace(!1)}registerFindReplaceProvider(e){return this._providers.add(e),Wf(()=>this._providers.delete(e))}_toggleRevealReplace(e){this._contextService.setContextValue(LAt,e)}_toggleDisplayRawFormula(e){this._contextService.setContextValue(gE,e)}};H8=F8([P8(0,j(We)),P8(1,Pm)],H8);var UAt={id:`ui.command.replace-current-match`,type:L.COMMAND,handler:e=>e.get(I8).replace()},WAt=`CONFIRM_REPLACE_ALL`,GAt={id:`ui.command.replace-all-matches`,type:L.COMMAND,handler:async e=>{let t=e.get(Vy),n=e.get(Xb),r=e.get($j);if(!await t.confirm({id:WAt,title:{title:n.t(`find-replace.replace.confirm.title`)},cancelText:n.t(`find-replace.button.cancel`),confirmText:n.t(`find-replace.button.confirm`)}))return!1;let{success:i,failure:a}=await e.get(I8).replaceAll();return a>0?(i===0?r.show({type:dj.Error,content:n.t(`find-replace.replace.all-failure`)}):r.show({type:dj.Warning,content:n.t(`find-replace.replace.partial-success`,`${i}`,`${a}`)}),!1):(r.show({type:dj.Success,content:n.t(`find-replace.replace.all-success`,`${i}`)}),!0)}},U8={id:`ui.operation.open-find-dialog`,type:L.OPERATION,handler:e=>{let t=e.get(I8);return t.revealed?t.focusFindInput():t.start(),!0}},W8={id:`ui.operation.open-replace-dialog`,type:L.OPERATION,handler:e=>{let t=e.get(I8);return t.revealed?t.replaceRevealed?t.focusFindInput():t.revealReplace():t.start(!0),!0}},KAt={type:L.OPERATION,id:`ui.operation.go-to-next-match`,handler:e=>(e.get(I8).moveToNextMatch(),!0)},qAt={type:L.OPERATION,id:`ui.operation.go-to-previous-match`,handler:e=>(e.get(I8).moveToPreviousMatch(),!0)},JAt={type:L.OPERATION,id:`ui.operation.focus-selection`,handler:e=>(e.get(I8).focusSelection(),!0)};function YAt(e){let t=e.get(Pm);return{id:U8.id,icon:`SearchIcon`,tooltip:`find-replace.toolbar`,type:yM.BUTTON,hidden$:Nj(e,M.UNIVER_SHEET),disabled$:_s([t.subscribeContextValue$(qy),t.subscribeContextValue$(Uy)]).pipe(os(([e,t])=>e||!t))}}var XAt={[pM.ORGANIZATION]:{[U8.id]:{order:2,menuItemFactory:YAt}}};function ZAt(e){let{findCompleted:t,localeService:n,matchesCount:r,matchesPosition:i,initialFindString:a,findReplaceService:o,onChange:s,...c}=e,[l,u]=(0,V.useState)(a),d=t&&r===0?n.t(`find-replace.dialog.no-result`):r===0?` `:void 0;function f(e){i===r&&e===1?o.moveToNextMatch():i===1&&e===r||e<i?o.moveToPreviousMatch():o.moveToNextMatch()}return(0,H.jsx)(`div`,{className:`univer-relative univer-flex univer-items-center univer-gap-2`,onDrag:e=>e.stopPropagation(),children:(0,H.jsx)(cj,{"data-u-comp":`search-input`,autoFocus:!0,placeholder:n.t(`find-replace.dialog.find-placeholder`),value:l,onChange:e=>{u(e),s?.(e)},slot:(0,H.jsx)(zGe,{loop:!0,text:d,value:i,total:r,onChange:f}),...c})})}function QAt(e,t){let n=(0,V.useCallback)(()=>{var e;(e=document.querySelector(`.univer-find-input input`))==null||e.focus()},[]),r=(0,V.useCallback)(()=>{let e=document.querySelectorAll(`[data-u-comp=find-replace-dialog] [data-u-comp=search-input]`);return Array.from(e).some(e=>e===document.activeElement)},[]);return(0,V.useImperativeHandle)(t,()=>({focus:n,selectHasFocus:r})),(0,V.useEffect)(()=>{let t=e.focusSignal$.subscribe(()=>n());return()=>t.unsubscribe()},[e,n]),{focus:n,selectHasFocus:r}}var $At=(0,V.forwardRef)(function(e,t){let n=U(Xb),r=U(I8),i=U(R),{findCompleted:a,findString:o,matchesCount:s,matchesPosition:c}=KD(r.state$,void 0,!0),l=(0,V.useCallback)(()=>{i.executeCommand(W8.id)},[i]),u=zKe(e=>r.changeFindString(e),500);return QAt(r,t),(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ZAt,{findCompleted:a,matchesCount:s,matchesPosition:c,findReplaceService:r,localeService:n,initialFindString:o,onChange:u}),(0,H.jsx)(`div`,{className:`univer-mt-4 univer-text-center`,children:(0,H.jsx)(`a`,{className:`hover:univer-text-primary-500/80 univer-cursor-pointer univer-text-sm univer-text-primary-500 univer-transition-colors`,onClick:l,children:n.t(`find-replace.dialog.advanced-finding`)})})]})}),ejt=(0,V.forwardRef)(function(e,t){let n=U(I8),r=U(Xb),i=U(R),a=U($j),o=KD(n.currentMatch$,void 0,!0),s=KD(n.replaceables$,void 0,!0),{matchesCount:c,matchesPosition:l,findString:u,inputtingFindString:d,replaceString:f,caseSensitive:p,matchesTheWholeCell:m,findDirection:h,findScope:g,findBy:_,findCompleted:v}=KD(n.state$,void 0,!0),y=d.length===0,b=c===0||!o?.replaceable,x=s.length===0,S=(0,V.useCallback)(e=>n.changeInputtingFindString(e),[n]),C=(0,V.useCallback)(e=>n.changeReplaceString(e),[n]),{focus:w}=QAt(n,t),T=(0,V.useCallback)(()=>{u===d?n.moveToNextMatch():(n.changeFindString(d),n.find())},[u,d,n]),E=(0,V.useCallback)(()=>i.executeCommand(UAt.id),[i]),D=(0,V.useCallback)(async()=>{await i.executeCommand(GAt.id),w()},[i]),O=(0,V.useCallback)(e=>{n.changeFindDirection(e)},[n]),k=(0,V.useCallback)(e=>{n.changeFindScope(e)},[n]),A=(0,V.useCallback)(e=>{n.changeFindBy(e)},[n]),ee=njt(r),te=rjt(r),ne=ijt(r);return(0,V.useEffect)(()=>{v&&c===0&&a.show({content:r.t(`find-replace.dialog.no-match`),type:dj.Warning,duration:5e3})},[v,c,a,r]),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(sj,{label:r.t(`find-replace.dialog.find`),children:(0,H.jsx)(ZAt,{findCompleted:v,className:`univer-find-input`,matchesCount:c,matchesPosition:l,findReplaceService:n,localeService:r,initialFindString:d,onChange:S})}),(0,H.jsx)(sj,{label:r.t(`find-replace.dialog.replace`),children:(0,H.jsx)(cj,{placeholder:r.t(`find-replace.dialog.replace-placeholder`),value:f,onChange:e=>C(e)})}),(0,H.jsx)(sj,{label:r.t(`find-replace.dialog.find-direction.title`),children:(0,H.jsx)(yj,{value:h,options:te,onChange:O})}),(0,H.jsx)(RGe,{children:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(sj,{label:r.t(`find-replace.dialog.find-scope.title`),children:(0,H.jsx)(yj,{value:g,options:ee,onChange:k})}),(0,H.jsx)(sj,{label:r.t(`find-replace.dialog.find-by.title`),children:(0,H.jsx)(yj,{value:_,options:ne,onChange:A})})]})}),(0,H.jsx)(RGe,{children:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(sj,{children:(0,H.jsx)(QA,{checked:p,onChange:e=>{n.changeCaseSensitive(e)},children:r.t(`find-replace.dialog.case-sensitive`)})}),(0,H.jsx)(sj,{children:(0,H.jsx)(QA,{checked:m,onChange:e=>{n.changeMatchesTheWholeCell(e)},children:r.t(`find-replace.dialog.match-the-whole-cell`)})})]})}),(0,H.jsxs)(`div`,{className:`univer-mt-6 univer-flex univer-justify-between`,children:[(0,H.jsx)(VA,{variant:`primary`,onClick:T,disabled:y,children:r.t(`find-replace.dialog.find`)}),(0,H.jsxs)(`span`,{className:`univer-inline-flex univer-gap-2`,children:[(0,H.jsx)(VA,{disabled:b,onClick:E,children:r.t(`find-replace.dialog.replace`)}),(0,H.jsx)(VA,{disabled:x,onClick:D,children:r.t(`find-replace.dialog.replace-all`)})]})]})]})});function tjt(){let e=U(I8),t=U(Jj),n=U(Pm),r=KD(e.state$,void 0,!0),i=(0,V.useRef)(null);(0,V.useEffect)(()=>{let e;return i.current&&(e=t.registerContainerElement(i.current)),()=>e?.dispose()},[t]);let a=(0,V.useRef)(null),o=(0,V.useCallback)(e=>n.setContextValue(IAt,e),[n]),s=(0,V.useCallback)(e=>n.setContextValue(FAt,e),[n]);return(0,V.useEffect)(()=>{var e;let t=Os(document,`focusin`).subscribe(e=>{e.target&&i.current?.contains(e.target)?o(!0):o(!1),!a.current||!a.current.selectHasFocus()?s(!1):s(!0)});return(e=a.current)==null||e.focus(),o(!0),s(!0),()=>{t.unsubscribe(),o(!1)}},[o,s]),(0,H.jsx)(`div`,{ref:i,"data-u-comp":`find-replace-dialog`,children:r.replaceRevealed?(0,H.jsx)(ejt,{ref:a}):(0,H.jsx)($At,{ref:a})})}function njt(e){return(0,V.useMemo)(()=>[{label:e.t(`find-replace.dialog.find-scope.current-sheet`),value:`subunit`},{label:e.t(`find-replace.dialog.find-scope.workbook`),value:`unit`}],[e.getCurrentLocale()])}function rjt(e){return(0,V.useMemo)(()=>[{label:e.t(`find-replace.dialog.find-direction.row`),value:`row`},{label:e.t(`find-replace.dialog.find-direction.column`),value:`column`}],[e.getCurrentLocale()])}function ijt(e){return(0,V.useMemo)(()=>[{label:e.t(`find-replace.dialog.find-by.value`),value:`value`},{label:e.t(`find-replace.dialog.find-by.formula`),value:`formula`}],[e.getCurrentLocale()])}function G8(e){return e.getContextValue(IAt)}function ajt(e){return e.getContextValue(LAt)}function ojt(e){return e.getContextValue(FAt)}var K8=`7_find-replace-shortcuts`;function q8(e){return e.getContextValue(Uy)}function J8(e){return!e.getContextValue(qy)}var sjt={id:U8.id,description:`find-replace.shortcut.open-find-dialog`,binding:iM.F|aM.CTRL_COMMAND,group:K8,groupTitle:`find-replace.shortcut.panel`,preconditions(e){return!G8(e)&&q8(e)&&J8(e)}},cjt={id:U8.id,description:`find-replace.shortcut.open-find-dialog`,binding:iM.F|aM.CTRL_COMMAND,mac:iM.F|aM.MAC_CTRL,preconditions(e){return!G8(e)&&q8(e)&&J8(e)}},ljt={id:W8.id,description:`find-replace.shortcut.open-replace-dialog`,binding:iM.H|aM.CTRL_COMMAND,mac:iM.H|aM.MAC_CTRL,group:K8,groupTitle:`find-replace.shortcut.panel`,preconditions(e){return q8(e)&&J8(e)&&(!G8(e)||!ajt(e))}},ujt={id:KAt.id,description:`find-replace.shortcut.go-to-next-match`,binding:iM.ENTER,group:K8,groupTitle:`find-replace.shortcut.panel`,priority:1e3,preconditions(e){return ojt(e)&&G8(e)}},djt={id:qAt.id,description:`find-replace.shortcut.go-to-previous-match`,binding:iM.ENTER|aM.SHIFT,group:K8,groupTitle:`find-replace.shortcut.panel`,priority:1e3,preconditions(e){return ojt(e)&&G8(e)}},fjt={id:JAt.id,description:`find-replace.shortcut.focus-selection`,binding:iM.ESC,group:K8,groupTitle:`find-replace.shortcut.panel`,priority:1e3,preconditions(e){return G8(e)}},pjt=`DESKTOP_FIND_REPLACE_DIALOG`,mjt=350,hjt=20,gjt=64,Y8=class extends Kf{constructor(e,t,n,r,i,a,o,s,c){super(),this._univerInstanceService=e,this._menuManagerService=t,this._shortcutService=n,this._commandService=r,this._findReplaceService=i,this._dialogService=a,this._layoutService=o,this._localeService=s,this._componentManager=c,N8(this,`_closingListenerDisposable`,void 0),this._initCommands(),this._initUI(),this._initShortcuts()}dispose(){var e;super.dispose(),(e=this._closingListenerDisposable)==null||e.dispose(),this._closingListenerDisposable=null}_initCommands(){[U8,W8,KAt,qAt,GAt,UAt,JAt].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initShortcuts(){[ljt,sjt,cjt,djt,ujt,fjt].forEach(e=>this.disposeWithMe(this._shortcutService.registerShortcut(e)))}_initUI(){[[`FindReplaceDialog`,tjt],[`SearchIcon`,qNe]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))}),this._menuManagerService.mergeMenu(XAt),this._findReplaceService.stateUpdates$.pipe(cc(this.dispose$)).subscribe(e=>{e.revealed===!0&&this._openPanel()})}_openPanel(){this._dialogService.open({id:pjt,draggable:!0,width:mjt,title:{title:this._localeService.t(`find-replace.dialog.title`)},children:{label:`FindReplaceDialog`},destroyOnClose:!0,mask:!1,maskClosable:!1,defaultPosition:_jt(),preservePositionOnDestroy:!0,onClose:()=>this.closePanel()}),this._closingListenerDisposable=Wf(this._univerInstanceService.focused$.pipe(cc(this.dispose$)).subscribe(e=>{(!e||!this._univerInstanceService.getUniverSheetInstance(e))&&this.closePanel()}))}closePanel(){this._closingListenerDisposable&&(this._closingListenerDisposable.dispose(),this._closingListenerDisposable=null,this._dialogService.close(pjt),this._findReplaceService.terminate(),queueMicrotask(()=>this._layoutService.focus()))}};Y8=F8([P8(0,z),P8(1,gM),P8(2,sM),P8(3,R),P8(4,I8),P8(5,oN),P8(6,Jj),P8(7,j(Xb)),P8(8,j(Mj))],Y8);function _jt(){let{innerWidth:e}=window;return{x:e-mjt-hjt,y:gjt}}var vjt=`@univerjs/find-replace`,yjt=`0.25.1`,bjt=`find-replace.config`,xjt={},X8=class extends ax{constructor(e=xjt,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{...r}=Qi({},xjt,this._config);this._configService.setConfig(bjt,r)}onStarting(){[[Y8],[I8,{useClass:H8}]].forEach(e=>this._injector.add(e))}onRendered(){this._injector.get(Y8)}};N8(X8,`pluginName`,`UNIVER_FIND_REPLACE_PLUGIN`),N8(X8,`packageName`,vjt),N8(X8,`version`,yjt),X8=F8([P8(1,j(We)),P8(2,Mm)],X8);var Sjt={id:`sheet.command.replace`,type:L.COMMAND,handler:async(e,t)=>{let n=e.get(fx),r=e.get(R),{unitId:i,replacements:a}=t,o=n.__tempBatchingUndoRedo(i),s=await Promise.all(a.map(e=>r.executeCommand(sq.id,{unitId:i,subUnitId:e.subUnitId,value:e.value})));return o.dispose(),Cjt(s,a)}};function Cjt(e,t){let n=0,r=0;return e.forEach((e,i)=>{let a=t[i].count;e?n+=a:r+=a}),{success:n,failure:r}}function Z8(e){"@babel/helpers - typeof";return Z8=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Z8(e)}function wjt(e,t){if(Z8(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Z8(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Tjt(e){var t=wjt(e,`string`);return Z8(t)==`symbol`?t:t+``}function Q8(e,t,n){return(t=Tjt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ejt=class extends vT{constructor(e,t){super(e,t),Q8(this,`_activated`,!1),Q8(this,`_inHiddenRange`,!1),Q8(this,`_color`,void 0),t&&this.setShapeProps(t)}setShapeProps(e){this._activated=!!e.activated,e.inHiddenRange!==void 0&&(this._inHiddenRange=e.inHiddenRange),e.color!==void 0&&(this._color=e.color),this.transformByState({width:e.width,height:e.height})}_draw(e){let t=this._activated,n=`rgba(${this._color.r}, ${this._color.g}, ${this._color.b}, 0.35)`,r=`rgb(${this._color.r}, ${this._color.g}, ${this._color.b})`;CE.drawWith(e,{width:this.width,height:this.height,fill:n,stroke:t?r:void 0,strokeWidth:t?2:0,evented:!1})}};function Djt(e,t){return e.startRow===t.startRow&&e.startColumn===t.startColumn}function Ojt(e,t){return e.startRow<t.startRow||e.startRow===t.startRow&&e.startColumn<=t.startColumn}function kjt(e,t){return e.startColumn<t.startColumn||e.startColumn===t.startColumn&&e.startRow<=t.startRow}function Ajt(e,t){return e.startRow>t.startRow||e.startRow===t.startRow&&e.startColumn>=t.startColumn}function jjt(e,t){return e.startColumn>t.startColumn||e.startColumn===t.startColumn&&e.startRow>=t.startRow}function Mjt(e,t){let{range:n}=e,{startRow:r,startColumn:i}=n,a=t.getMergedCell(r,i);return a?l_.equals(n,a):n.endRow===n.startRow&&n.endColumn===n.startColumn}function $8(e,t){return function(n,r){t(n,r,e)}}function e5(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var t5=class extends P{constructor(e,t,n,r,i){super(),this._injector=e,this._findReplaceController=t,this._contextService=n,this._findReplaceService=r,this._commandService=i,Q8(this,`_provider`,void 0),this._init(),this._initCommands()}dispose(){super.dispose(),this._findReplaceController.closePanel(),this._provider.dispose()}_init(){let e=this._injector.createInstance(r5);this._provider=e,this.disposeWithMe(this._findReplaceService.registerFindReplaceProvider(e)),this.disposeWithMe(this._contextService.subscribeContextValue$(qy).pipe(Ls(e=>!!e)).subscribe(()=>this._findReplaceController.closePanel()))}_initCommands(){[Sjt].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}};t5=e5([$8(0,j(We)),$8(1,j(Y8)),$8(2,Pm),$8(3,I8),$8(4,R)],t5);var Njt=`sheets-find-replace-provider`,Pjt=1e4,n5=class extends BAt{get _matchesCount(){return this._matches.length}get unitId(){return this._workbook.getUnitId()}get matchesCount(){return this._matchesCount}get matchesPosition(){return this._matchesPosition}get currentMatch(){return this._matchesPosition>0?this._matches[this._matchesPosition-1]:null}constructor(e,t,n,r,i,a,o,s){super(),this._workbook=e,this._sheetSkeletonManagerService=t,this._univerInstanceService=n,this._renderManagerService=r,this._commandService=i,this._contextService=a,this._themeService=o,Q8(this,`_matchesUpdate$`,new ao),Q8(this,`matchesUpdate$`,this._matchesUpdate$.asObservable()),Q8(this,`_activelyChangingMatch$`,new ao),Q8(this,`activelyChangingMatch$`,this._activelyChangingMatch$.asObservable()),Q8(this,`_matchesByWorksheet`,new Map),Q8(this,`_matches`,[]),Q8(this,`_matchesPosition`,0),Q8(this,`_activeHighlightIndex`,-1),Q8(this,`_highlightShapes`,[]),Q8(this,`_currentHighlightShape`,null),Q8(this,`_query`,null),Q8(this,`_workbookSelections`,void 0),this._workbookSelections=s.getWorkbookSelections(this.unitId)}dispose(){super.dispose(),this._disposeHighlights(),this._toggleDisplayRawFormula(!1)}getMatches(){return this._matches}start(e){switch(this._query=e,e.findBy===z8.FORMULA?this._toggleDisplayRawFormula(!0):this._toggleDisplayRawFormula(!1),e.findScope){case B8.UNIT:this.findInWorkbook(e);break;case B8.SUBUNIT:default:this.findInActiveWorksheet(e)}}focusSelection(){let e=this.currentMatch;e&&this._commandService.executeCommand(wut.id,{unitId:e.unitId,subUnit:e.range.subUnitId,range:e.range.range})}_toggleDisplayRawFormula(e){this._contextService.setContextValue(gE,e)}findInWorkbook(e){let t=this._workbook.getUnitId(),n,r=!0,i=()=>{let i=this._workbook.getSheets().filter(e=>!e.isSheetHidden()).map(n=>{let r=this._findInWorksheet(n,e,t),i=n.getSheetId(),{results:a}=r;return a.length?this._matchesByWorksheet.set(i,r.results):this._matchesByWorksheet.delete(i),r});this._matches=i.map(e=>e.results).flat(),this._updateFindHighlight(),r?(n={results:this._matches},r=!1):this._matchesUpdate$.next(this._matches)};return this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(()=>{this._updateFindHighlight(),this._updateCurrentHighlightShape(this._activeHighlightIndex)})),this.disposeWithMe(qm(this._commandService.onCommandExecuted.bind(this._commandService)).pipe(Ls(([e,t])=>e.id===SK.id&&!t?.fromFindReplace)).subscribe(()=>{let e=this._workbook.getActiveSheet();if(!e)return;let t=e.getSheetId();this._matchesByWorksheet.has(t)&&this._findNextMatchOnActiveSheetChange(e)})),this.disposeWithMe(qm(this._commandService.onCommandExecuted.bind(this._commandService)).pipe(Ls(([e])=>e.type===L.MUTATION&&e.params.unitId===this._workbook.getUnitId()),dc(600,void 0,{leading:!1,trailing:!0})).subscribe(()=>i())),i(),n}_findNextMatchOnActiveSheetChange(e){let t,n,r=0,i=this._matchesByWorksheet.get(e.getSheetId()),a=this._workbookSelections.getCurrentSelections();a?.length?([t,r]=this._findNextMatchByRange(i,a[0].range),n=i.findIndex(e=>e===t)):(t=i[0],n=0,r=this._matches.findIndex(e=>e===t)),this._matchesPosition=r+1,this._activelyChangingMatch$.next(t),this._activeHighlightIndex=n,this._updateFindHighlight(),this._updateCurrentHighlightShape(n)}findInActiveWorksheet(e){let t=this._workbook.getUnitId(),n=()=>{let e=this._workbook.getActiveSheet();return e?this._workbookSelections.getCurrentSelections()?.some(t=>!Mjt(t,e))??!1:!1},r,i=!0,a=!1,o=()=>{let o=this._workbook.getActiveSheet();if(!o)return{results:[]};let s=this.currentMatch;a=n();let c=this._workbookSelections.getCurrentSelections(),l=a?this._findInSelections(o,c,e,t):this._findInWorksheet(o,e,t);return this._matches=l.results,this._matchesPosition=this._tryRestoreLastMatchesPosition(s,this._matches),i?(r=l,i=!1):this._matchesUpdate$.next(this._matches),this._updateFindHighlight(),l};return this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(()=>this._updateFindHighlight())),this.disposeWithMe(Ps(qm(this._commandService.onCommandExecuted.bind(this._commandService)).pipe(Ls(([e])=>{if(e.type===L.MUTATION&&e.params.unitId===this._workbook.getUnitId())return!0;if(e.id===iq.id&&e.params.unitId===t){let e=n();return e===!1&&a===!1?!1:(a=e,!0)}return!1})),this._workbook.activeSheet$.pipe(ac(1))).pipe(Ks(200)).subscribe(()=>o())),o(),r}_findInRange(e,t,n,r,i){let a=[],o=e.getSheetId(),s=(t.findDirection===R8.COLUMN?e.iterateByColumn:e.iterateByRow).bind(e)(n);for(let n of s){let{row:s,col:c,colSpan:l,rowSpan:u,value:d}=n;if(i?.(s,c)||!d||e.getRowFiltered(s))continue;let{hit:f,replaceable:p,isFormula:m}=Fjt(e,s,c,t,d);if(f){let e={provider:Njt,unitId:r,replaceable:p,isFormula:m,range:{subUnitId:o,range:{startRow:s,startColumn:c,endColumn:c+(l??1)-1,endRow:s+(u??1)-1}}};a.push(e)}}return{results:a}}_findInSelections(e,t,n,r){let{findDirection:i}=n,a=i===R8.ROW?Ojt:kjt,o=new Set;return{results:t.map(t=>this._findInRange(e,n,t.range,r,(e,t)=>{let n=`${e}-${t}`;return o.has(n)?!0:(o.add(n),!1)}).results).flat().sort((e,t)=>a(e.range.range,t.range.range)?-1:1)}}_findInWorksheet(e,t,n){let r=e.getRowCount(),i=e.getColumnCount(),a={startRow:0,startColumn:0,endRow:r-1,endColumn:i-1};return this._findInRange(e,t,a,n)}_disposeHighlights(){var e;this._highlightShapes.forEach(e=>{var t;(t=e.getScene())==null||t.makeDirty(),e.dispose()}),this._highlightShapes=[],(e=this._currentHighlightShape)==null||e.dispose(),this._currentHighlightShape=null}_updateFindHighlight(){this._disposeHighlights();let e=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!e)return;let t=this._workbook.getUnitId(),n=this._renderManagerService.getRenderById(t);if(n==null)return;let{scene:r}=n,i=this._matches,a=new nh(this._themeService.getColorFromTheme(`yellow.400`)).toRgb(),o=this._workbook.getActiveSheet();if(!o)return;let s=o.getSheetId(),c=i.filter(e=>e.range.subUnitId===s).map((t,n)=>{let{startColumn:i,startRow:s,endColumn:c,endRow:l}=t.range.range,u=e1(s,i,r,e),d=e1(l,c,r,e),{startX:f,startY:p}=u,{endX:m,endY:h}=d,g=!0;for(let e=s;e<=l;e++)if(o.getRowRawVisible(e)){g=!1;break}let _=!0;for(let e=i;e<=c;e++)if(o.getColVisible(e)){_=!1;break}let v=g||_,y={left:f,top:p,color:a,width:_?2:m-f,height:g?2:h-p,evented:!1,inHiddenRange:v,zIndex:Pjt};return new Ejt(`find-highlight-${n}`,y)});r.addObjects(c),this._highlightShapes=c,r.makeDirty()}_updateCurrentHighlightShape(e){var t;if((t=this._currentHighlightShape)==null||t.setShapeProps({activated:!1}),this._currentHighlightShape=null,e!==void 0){let t=this._highlightShapes[e];if(!t)return;this._currentHighlightShape=t,t.setShapeProps({activated:!0})}}_getSheetObject(){return $$(this._univerInstanceService,this._renderManagerService)}async _focusMatch(e){let{subUnitId:t,range:n}=e.range;if(t!==this._workbook.getActiveSheet()?.getSheetId()){let e=this._workbook.getUnitId();await this._commandService.executeCommand(FY.id,{unitId:e,subUnitId:t},{fromFindReplace:!0})}this._commandService.executeCommand(s1.id,{range:n},{fromFindReplace:!0})}_tryRestoreLastMatchesPosition(e,t){if(!e)return 0;let{subUnitId:n}=e.range,{startColumn:r,startRow:i}=e.range.range,a=t.findIndex(e=>{if(n!==e.range.subUnitId)return!1;let{startColumn:t,startRow:a}=e.range.range;return t===r&&a===i});return a>-1?a+1:0}moveToNextMatch(e){if(!this._matches.length)return null;let t=e?.loop??!1,n=e?.stayIfOnMatch??!1,r=e?.noFocus??!1,i=e?.ignoreSelection??!1,a=this._findNextMatch(t,n,i);if(a){let[e,t]=a;return this._matchesPosition=t+1,this._activeHighlightIndex=this._query.findScope===B8.UNIT?this._matchesByWorksheet.get(e.range.subUnitId).findIndex(t=>t===e):t,r||this._focusMatch(e),this._updateCurrentHighlightShape(this._activeHighlightIndex),e}return this._matchesPosition=0,this._updateCurrentHighlightShape(),null}moveToPreviousMatch(e){if(!this._matches.length)return null;let t=e?.loop??!1,n=e?.stayIfOnMatch??!1,r=e?.noFocus??!1,i=e?.ignoreSelection??!1,a=this._findPreviousMatch(t,n,i);if(a){let[e,t]=a;return this._matchesPosition=t+1,this._activeHighlightIndex=this._query.findScope===B8.UNIT?this._matchesByWorksheet.get(e.range.subUnitId).findIndex(t=>t===e):t,r||this._focusMatch(e),this._updateCurrentHighlightShape(this._activeHighlightIndex),e}return this._matchesPosition=0,this._updateCurrentHighlightShape(),null}_findPreviousMatch(e=!1,t=!1,n=!1){if(this.currentMatch){let n=this._matches.findIndex(e=>e===this.currentMatch);if(t)return[this.currentMatch,n];let r=n-1;if(!e&&r<0)return null;let i=this._matches.length,a=(r+i)%i;return[this._matches[a],a]}let r=this._workbookSelections.getCurrentLastSelection();if(n||!r){let e=this._matches.length-1;return[this._matches[e],e]}if(this._query.findScope!==B8.UNIT)return this._findPreviousMatchByRange(this._matches,r.range);let i=this._workbook.getActiveSheet()?.getSheetId();if(!i)return null;let a=this._findPreviousWorksheetThatHasAMatch(i,e);return a?this._findPreviousMatchByRange(this._matchesByWorksheet.get(a),r.range):null}_findNextMatch(e=!1,t=!1,n=!1){if(this.currentMatch){let n=this._matches.findIndex(e=>e===this.currentMatch);if(t)return[this.currentMatch,n];let r=n+1,i=this._matches.length;if(!e&&r>=i)return null;let a=r%i;return[this._matches[a],a]}let r=this._workbookSelections.getCurrentLastSelection();if(n||!r)return[this._matches[0],0];if(this._query.findScope!==B8.UNIT)return this._findNextMatchByRange(this._matches,r.range,t);let i=this._workbook.getActiveSheet()?.getSheetId();if(!i)return null;let a=this._findNextWorksheetThatHasAMatch(i,e);return a?this._findNextMatchByRange(this._matchesByWorksheet.get(a),r.range):null}_findPreviousWorksheetThatHasAMatch(e,t=!1){let n=this._workbook.getSheetOrders(),r=n.findIndex(t=>t===e);return(t?Xd(n,r+1):n.slice(0,r+1)).findLast(e=>this._matchesByWorksheet.has(e))??null}_findNextWorksheetThatHasAMatch(e,t=!1){let n=this._workbook.getSheetOrders(),r=n.findIndex(t=>t===e);return(t?Xd(n,r):n.slice(r)).find(e=>this._matchesByWorksheet.has(e))??null}_findNextMatchByRange(e,t,n=!1){let r=this._query.findDirection===R8.ROW,i=e.findIndex(e=>{let i=e.range.range;if(!(r?Ojt(t,i):kjt(t,i)))return!1;let a=Djt(t,i);return n?a:!a});i===-1&&(i=e.length-1);let a=e[i];return[a,this._matches.findIndex(e=>e===a)]}_findPreviousMatchByRange(e,t,n=!1){let r=this._query.findDirection===R8.ROW,i=this._matches.findLastIndex(e=>{let i=e.range.range;if(!(r?Ajt(t,i):jjt(t,i)))return!1;let a=Djt(t,i);return n?a:!a});i===-1&&(i=0);let a=e[i];return[a,this._matches.findIndex(e=>e===a)]}async replace(e){if(this._matchesCount===0||!this.currentMatch||!this._query||!this.currentMatch.replaceable)return!1;let t=this.currentMatch.range,n=this._workbook.getSheetBySheetId(this.currentMatch.range.subUnitId),r=this._getReplacedCellData(this.currentMatch,n,this._query.findBy===z8.FORMULA,this._query.findString,e,this._query.caseSensitive?`g`:`ig`),i={unitId:this.currentMatch.unitId,subUnitId:t.subUnitId,value:{[t.range.startRow]:{[t.range.startColumn]:r}}};return this._commandService.executeCommand(sq.id,i)}async replaceAll(e){if(this._matchesCount===0||!this._query)return{success:0,failure:0};let t=this._workbook.getUnitId(),{findString:n,caseSensitive:r,findBy:i}=this._query,a=i===z8.FORMULA,o=r?`g`:`ig`,s=[];return Zd(this._matches.filter(e=>e.replaceable),e=>e.range.subUnitId).forEach((t,r)=>{let i=new Ih,c=this._workbook.getSheetBySheetId(r);t.forEach(t=>{let{startColumn:r,startRow:s}=t.range.range,l=this._getReplacedCellData(t,c,a,n,e,o);l&&i.setValue(s,r,l)}),s.push({count:t.length,subUnitId:r,value:i.getMatrix()})}),s?this._commandService.executeCommand(Sjt.id,{unitId:t,replacements:s}):{success:0,failure:0}}_getReplacedCellData(e,t,n,r,i,a){let{startRow:o,startColumn:s}=e.range.range,c=t.getCellRaw(o,s);if(e.isFormula)return n?{f:c.f.replace(new RegExp(sp(r),a),i),v:null}:null;if(c.p?.body){let e=F.deepClone(c.p);return xy(e.body,r,i,this._query.caseSensitive),{p:e}}return{v:c.v.toString().replace(new RegExp(sp(r),a),i)}}};n5=e5([$8(2,z),$8(3,zE),$8(4,R),$8(5,Pm),$8(6,j(dx)),$8(7,j(HK))],n5);var r5=class extends P{constructor(e,t,n){super(),this._univerInstanceService=e,this._renderManagerService=t,this._injector=n,Q8(this,`_findModelsByUnitId`,new Map)}async find(e){this._terminate();let t=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET);if(!t)return[];let n=this._preprocessQuery(e),r=this._renderManagerService.getRenderById(t.getUnitId()).with(TQ),i=this._injector.createInstance(n5,t,r);return this._findModelsByUnitId.set(t.getUnitId(),i),i.start(n),[i]}terminate(){this._terminate()}_terminate(){this._findModelsByUnitId.forEach(e=>e.dispose()),this._findModelsByUnitId.clear()}_preprocessQuery(e){let t=e.caseSensitive?e.findString:e.findString.toLowerCase();return t=t.trim(),{...e,findString:t}}};r5=e5([$8(0,z),$8(1,zE),$8(2,j(We))],r5);var i5={hit:!1,replaceable:!1,isFormula:!1,rawData:null};function Fjt(e,t,n,r,i){let{findBy:a}=r,o=a===z8.FORMULA,s=e.getCellRaw(t,n);return i5.rawData=s,s?.f?(i5.isFormula=!0,o?a5({v:s.f},r)?(i5.hit=!0,i5.replaceable=!0,i5):(i5.hit=!1,i5.replaceable=!1,i5):(i5.replaceable=!1,i5.hit=!!a5(i,r),i5)):(i5.isFormula=!1,a5(i,r)?s?(i5.hit=!0,i5.replaceable=!0):(i5.hit=!0,i5.replaceable=!1):(i5.hit=!1,i5.replaceable=!1),i5)}function a5(e,t){let n=Ijt(e);return n?t.matchesTheWholeCell?(n=Ljt(n),t.caseSensitive?n===t.findString:n.toLowerCase()===t.findString):t.caseSensitive?n.indexOf(t.findString)>-1:n.toLowerCase().indexOf(t.findString)>-1:!1}function Ijt(e){var t;let n=(e==null||(t=e.p)==null||(t=t.body)==null?void 0:t.dataStream)??e?.v;return typeof n==`number`?`${n}`:typeof n==`boolean`?n?`1`:`0`:n}function Ljt(e){return e.replace(/^ +/g,``).replace(/ +$/g,``)}var Rjt=`@univerjs/sheets-find-replace`,zjt=`0.25.1`,Bjt=`sheets-find-replace.config`,Vjt={},o5=class extends ax{constructor(e=Vjt,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{...r}=Qi({},Vjt,this._config);this._configService.setConfig(Bjt,r)}onStarting(){[[t5]].forEach(e=>this._injector.add(e))}onSteady(){this._injector.get(t5)}};Q8(o5,`pluginName`,`SHEET_FIND_REPLACE_PLUGIN`),Q8(o5,`packageName`,Rjt),Q8(o5,`version`,zjt),Q8(o5,`type`,M.UNIVER_SHEET),o5=e5([sx(mZ,mZ,X8),$8(1,j(We)),$8(2,Mm)],o5);function s5(e){"@babel/helpers - typeof";return s5=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},s5(e)}function Hjt(e,t){if(s5(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(s5(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ujt(e){var t=Hjt(e,`string`);return s5(t)==`symbol`?t:t+``}function c5(e,t,n){return(t=Ujt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l5(e,t){return function(n,r){t(n,r,e)}}function Wjt(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var u5=class extends P{constructor(e,t,n,r){super(),this._injector=t,this._univerInstanceService=n,this._findReplaceService=r,c5(this,`_state`,new HAt),c5(this,`_model`,void 0),c5(this,`_complete`,void 0);let i=this._findReplaceService.getProviders();this._model=this._injector.createInstance(L8,this._state,i);let a={...V8(),...e};this._state.changeState(a)}findAll(){return!this._state.findCompleted||!this._complete?[]:this._complete.results.map(e=>this._findMatchToFRange(e))}findNext(){if(!this._state.findCompleted||!this._complete)return null;let e=this._model?.moveToNextMatch();return e?this._findMatchToFRange(e):null}findPrevious(){let e=this._model?.moveToPreviousMatch();return e?this._findMatchToFRange(e):null}getCurrentMatch(){if(!this._state.findCompleted||!this._complete)throw Error(`Find operation is not completed.`);let e=this._model?.currentMatch$.value;return e?this._findMatchToFRange(e):null}async matchCaseAsync(e){return this._state.changeState({caseSensitive:e,findCompleted:!1}),await is(this._state.stateUpdates$.pipe(Ls(e=>e.findCompleted===!0))),await this.ensureCompleteAsync(),this}async matchEntireCellAsync(e){return this._state.changeState({matchesTheWholeCell:e,findCompleted:!1}),await is(this._state.stateUpdates$.pipe(Ls(e=>e.findCompleted===!0))),await this.ensureCompleteAsync(),this}async matchFormulaTextAsync(e){return this._state.changeState({findBy:e?z8.FORMULA:z8.VALUE,findCompleted:!1}),await is(this._state.stateUpdates$.pipe(Ls(e=>e.findCompleted===!0))),await this.ensureCompleteAsync(),this}async replaceAllWithAsync(e){await this._state.changeState({replaceRevealed:!0,replaceString:e});let t=(await this._model?.replaceAll())?.success??0;return this._state.changeState({replaceRevealed:!1}),t}async replaceWithAsync(e){return await this._state.changeState({replaceRevealed:!0,replaceString:e}),await this._model?.replace(),this._state.changeState({replaceRevealed:!1}),!0}async ensureCompleteAsync(){this._complete=await this._model?.start()}_findMatchToFRange(e){let{unitId:t}=e,{subUnitId:n,range:r}=e.range,i=this._univerInstanceService.getUnit(t),a=i.getSheetBySheetId(n);return this._injector.createInstance(P3,i,a,r)}};u5=Wjt([l5(1,j(We)),l5(2,z),l5(3,I8)],u5);var Gjt=class extends oS{async createTextFinderAsync(e){let t={findString:e},n=this._injector.createInstance(u5,t);return await n.ensureCompleteAsync(),n}};oS.extend(Gjt);function Kjt(e={}){return{plugins:[[X8],[o5]].filter(e=>!!e)}}var qjt=Ig({"find-replace":{toolbar:`查找替换`,shortcut:{"open-find-dialog":`打开查找对话框`,"open-replace-dialog":`打开替换对话框`,"close-dialog":`关闭查找替换对话框`,"go-to-next-match":`下一个匹配项`,"go-to-previous-match":`下一个匹配项`,"focus-selection":`聚焦选区`,panel:`查找替换`},dialog:{title:`查找`,find:`查找`,replace:`替换`,"replace-all":`替换全部`,"find-placeholder":`输入查找内容`,"advanced-finding":`替换 / 高级查找`,"replace-placeholder":`输入替换内容`,"case-sensitive":`匹配大小写`,"match-the-whole-cell":`匹配整个单元格`,"find-scope":{title:`查找范围`,"current-sheet":`当前子表`,workbook:`整个工作簿`},"find-direction":{title:`查找顺序`,column:`按列查找`,row:`按行查找`},"find-by":{title:`查找方式`,formula:`查找公式`,value:`查找值`},"no-match":`已完成搜索,但是未找到任何匹配项`,"no-result":`无结果`},replace:{"all-success":`已全部替换 {0} 个匹配项`,"all-failure":`替换失败`,confirm:{title:`确定要替换所有的匹配项吗?`}},button:{confirm:`确定`,cancel:`取消`}}});function d5(e,t){if(!t)return;let{unitId:n,sheetId:r,skeleton:i}=t,{from:a,to:o,flipY:s=!1,flipX:c=!1,angle:l=0,skewX:u=0,skewY:d=0}=e,{left:f,top:p,width:m,height:h}=smt(n,r,{from:a,to:o},i),g=i.rowHeaderWidth+i.columnTotalWidth,_=i.columnHeaderHeight+i.rowTotalHeight;return f+m>g&&(f=g-m),p+h>_&&(p=_-h),{flipY:s,flipX:c,angle:l,skewX:u,skewY:d,left:f,top:p,width:m,height:h}}function f5(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,flipY:o=!1,flipX:s=!1,angle:c=0,skewX:l=0,skewY:u=0}=e;return{flipY:o,flipX:s,angle:c,skewX:l,skewY:u,from:t.getCellIndexAndOffsetByPosition(n,r),to:t.getCellIndexAndOffsetByPosition(n+i,r+a)}}function p5(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,angle:o=0}=e,s=(o%360+360)%360;return f5(s>=45&&s<135||s>=225&&s<315?{...e,left:n+i/2-a/2,top:r+a/2-i/2,width:a,height:i}:e,t)}var m5=function(e){return e.Position=`0`,e.Both=`1`,e.None=`2`,e}({}),Jjt=class extends wN{},h5=ce(`sheets-drawing.sheet-drawing.service`),g5=function(e){return e[e.INSERT=0]=`INSERT`,e[e.REMOVE=1]=`REMOVE`,e[e.UPDATE=2]=`UPDATE`,e[e.ARRANGE=3]=`ARRANGE`,e[e.GROUP=4]=`GROUP`,e[e.UNGROUP=5]=`UNGROUP`,e}({}),_5={id:`sheet.mutation.set-drawing-apply`,type:L.MUTATION,handler:(e,t)=>{let n=e.get(bN),r=e.get(h5),{op:i,unitId:a,subUnitId:o,type:s,objects:c}=t;switch(n.applyJson1(a,o,i),r.applyJson1(a,o,i),s){case 0:n.addNotification(c),r.addNotification(c);break;case 1:n.removeNotification(c),r.removeNotification(c);break;case 2:n.updateNotification(c),r.updateNotification(c);break;case 3:n.orderNotification(c),r.orderNotification(c);break;case 4:n.groupUpdateNotification(c),r.groupUpdateNotification(c);break;case 5:n.ungroupUpdateNotification(c),r.ungroupUpdateNotification(c)}return!0}},v5={id:`sheet.operation.clear-drawing-transformer`,type:L.MUTATION,handler:(e,t)=>{let n=e.get(zE);return t.forEach(e=>{var t;(t=n.getRenderById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},y5={id:`sheet.command.insert-sheet-image`,type:L.COMMAND,handler:(e,t)=>{if(!t)return!1;let n=e.get(R),r=e.get(fx),i=e.get(h5),a=e.get(MG),o=t.drawings,{unitId:s,subUnitId:c,undo:l,redo:u,objects:d}=i.getBatchAddOp(o),f=a.onCommandExecute({id:y5.id,params:t}),p=[...f.preRedos??[],{id:_5.id,params:{unitId:s,subUnitId:c,op:u,objects:d,type:0}},{id:v5.id,params:[s]},...f.redos],m=[...f.preUndos??[],{id:_5.id,params:{unitId:s,subUnitId:c,op:l,objects:d,type:1}},{id:v5.id,params:[s]},...f.undos];return Gm(p,n).result?(r.pushUndoRedo({unitID:s,undoMutations:m,redoMutations:p}),!0):!1}},b5={id:`sheet.command.remove-sheet-image`,type:L.COMMAND,handler:(e,t)=>{if(!t)return!1;let n=e.get(R),r=e.get(fx),i=e.get(MG),a=e.get(h5),{drawings:o}=t,{unitId:s,subUnitId:c,undo:l,redo:u,objects:d}=a.getBatchRemoveOp(o),f=i.onCommandExecute({id:b5.id,params:t}),p=[...f.preRedos??[],{id:_5.id,params:{unitId:s,subUnitId:c,op:u,objects:d,type:1}},{id:v5.id,params:[s]},...f.redos],m=[...f.preUndos??[],{id:_5.id,params:{unitId:s,subUnitId:c,op:l,objects:d,type:0}},{id:v5.id,params:[s]},...f.undos];return Gm(p,n).result?(r.pushUndoRedo({unitID:s,undoMutations:m,redoMutations:p}),!0):!1}},x5={id:`sheet.command.set-drawing-arrange`,type:L.COMMAND,handler:(e,t)=>{let n=e.get(R),r=e.get(fx);if(!t)return!1;let i=e.get(h5),{unitId:a,subUnitId:o,drawingIds:s,arrangeType:c}=t,l={unitId:a,subUnitId:o,drawingIds:s},u;if(c===cm.forward?u=i.getForwardDrawingsOp(l):c===cm.backward?u=i.getBackwardDrawingOp(l):c===cm.front?u=i.getFrontDrawingsOp(l):c===cm.back&&(u=i.getBackDrawingsOp(l)),u==null)return!1;let{objects:d,redo:f,undo:p}=u;return n.syncExecuteCommand(_5.id,{op:f,unitId:a,subUnitId:o,objects:d,type:3})?(r.pushUndoRedo({unitID:a,undoMutations:[{id:_5.id,params:{op:p,unitId:a,subUnitId:o,objects:d,type:3}}],redoMutations:[{id:_5.id,params:{op:f,unitId:a,subUnitId:o,objects:d,type:3}}]}),!0):!1}},S5={id:`sheet.command.set-sheet-image`,type:L.COMMAND,handler:(e,t)=>{if(!t)return!1;let n=e.get(R),r=e.get(fx),i=e.get(h5),a=e.get(MG),{drawings:o}=t,{unitId:s,subUnitId:c,undo:l,redo:u,objects:d}=i.getBatchUpdateOp(o),f=a.onCommandExecute({id:S5.id,params:t}),p=[...f.preRedos??[],{id:_5.id,params:{unitId:s,subUnitId:c,op:u,objects:d,type:2}},{id:v5.id,params:[s]},...f.redos],m=[...f.preUndos??[],{id:_5.id,params:{unitId:s,subUnitId:c,op:l,objects:d,type:2}},{id:v5.id,params:[s]},...f.undos];return Gm(p,n).result?(r.pushUndoRedo({unitID:s,undoMutations:m,redoMutations:p}),!0):!1}};function C5(e,t){return function(n,r){t(n,r,e)}}function Yjt(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var Xjt=`SHEET_DRAWING_PLUGIN`,w5=class extends P{constructor(e,t,n,r,i,a){super(),this._sheetInterceptorService=e,this._univerInstanceService=t,this._commandService=n,this._sheetDrawingService=r,this._drawingManagerService=i,this._resourceManagerService=a,this._initCommands(),this._initSnapshot(),this._initSheetChange(),this.disposeWithMe(this._commandService.registerCommand(_5))}_initCommands(){[S5,y5,b5,x5,v5].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initSnapshot(){let e=(e,t)=>{let n=t||this._sheetDrawingService.getDrawingDataForUnit(e);return n?JSON.stringify(n):``},t=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:Xjt,businesses:[M.UNIVER_SHEET],toJson:(t,n)=>e(t,n),parseJson:e=>t(e),onUnLoad:e=>{this._sheetDrawingService.removeDrawingDataForUnit(e),this._drawingManagerService.removeDrawingDataForUnit(e)},onLoad:(e,t)=>{this._sheetDrawingService.registerDrawingData(e,t),this._drawingManagerService.registerDrawingData(e,t)}}))}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===lY.id){let t=e.params,n=t.unitId||this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET).getUnitId(),r=t.subUnitId||this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET).getActiveSheet()?.getSheetId();if(!n||!r)return{redos:[],undos:[]};let i=this._sheetDrawingService.getDrawingData(n,r),a=Object.values(i).filter(e=>e.drawingType!==lm.DRAWING_CHART);if(a.length===0)return{redos:[],undos:[]};let{unitId:o,subUnitId:s,undo:c,redo:l,objects:u}=this._sheetDrawingService.getBatchRemoveOp(a);return{redos:[{id:_5.id,params:{op:l,unitId:o,subUnitId:s,objects:u,type:1}}],undos:[{id:_5.id,params:{op:c,unitId:o,subUnitId:s,objects:u,type:0}}]}}if(e.id===tY.id){let{unitId:t,subUnitId:n,targetSubUnitId:r}=e.params;if(!t||!n||!r)return{redos:[],undos:[]};let i=this._sheetDrawingService.getDrawingData(t,n),a=Object.values(i).filter(e=>e.drawingType!==lm.DRAWING_CHART).map(e=>({...e,subUnitId:r,drawingId:rp(6)}));if(a.length===0)return{redos:[],undos:[]};let{unitId:o,subUnitId:s,undo:c,redo:l,objects:u}=this._sheetDrawingService.getBatchAddOp(a);return{redos:[{id:_5.id,params:{op:l,unitId:o,subUnitId:s,objects:u,type:0}}],undos:[{id:_5.id,params:{op:c,unitId:o,subUnitId:s,objects:u,type:1}}]}}return{redos:[],undos:[]}}}))}};w5=Yjt([C5(0,j(MG)),C5(1,j(z)),C5(2,R),C5(3,h5),C5(4,bN),C5(5,Py)],w5);var Zjt=`@univerjs/sheets-drawing`,Qjt=`0.25.1`,$jt=`sheets-drawing.config`,eMt={};function T5(e){"@babel/helpers - typeof";return T5=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},T5(e)}function tMt(e,t){if(T5(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(T5(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function nMt(e){var t=tMt(e,`string`);return T5(t)==`symbol`?t:t+``}function E5(e,t,n){return(t=nMt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var D5=class extends ax{constructor(e=eMt,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{...r}=Qi({},eMt,this._config);this._configService.setConfig($jt,r)}onStarting(){[[w5],[h5,{useClass:Jjt}]].forEach(e=>this._injector.add(e)),this._injector.get(w5)}};E5(D5,`pluginName`,Xjt),E5(D5,`packageName`,Zjt),E5(D5,`version`,Qjt),E5(D5,`type`,M.UNIVER_SHEET),D5=Yjt([sx(EN),C5(1,j(We)),C5(2,Mm)],D5);var rMt={id:`sheet.command.delete-drawing`,type:L.COMMAND,handler:e=>{let t=e.get(R),n=e.get(h5).getFocusDrawings();if(n.length===0)return!1;let r=n[0].unitId,i=n.map(e=>{let{unitId:t,subUnitId:n,drawingId:r,drawingType:i}=e;return{unitId:t,subUnitId:n,drawingId:r,drawingType:i}});return t.executeCommand(b5.id,{unitId:r,drawings:i})}};function iMt(e){let t=[];return e.forEach(e=>{let{parent:n,children:r}=e,{unitId:i,subUnitId:a,drawingId:o}=n,s=Lw(0,0,r.map(e=>e.transform||{})),c=r.map(e=>{let t=e.transform||{left:0,top:0},{unitId:n,subUnitId:r,drawingId:i}=e;return{unitId:n,subUnitId:r,drawingId:i,transform:{...t,left:t.left,top:t.top},groupId:o}}),l={unitId:i,subUnitId:a,drawingId:o,drawingType:lm.DRAWING_GROUP,groupBaseBound:{...n.groupBaseBound},transform:s};t.push({parent:l,children:c})}),t}function aMt(e){let t=[];return e.forEach(e=>{let{parent:n,children:r}=e,{unitId:i,subUnitId:a,drawingId:o,transform:s={width:0,height:0}}=n;if(s==null)return;let c=r.map(e=>{let{transform:t}=e,{unitId:r,subUnitId:i,drawingId:a}=e;return{unitId:r,subUnitId:i,drawingId:a,transform:Rw(t||{},s,s.width||0,s.height||0,n.groupBaseBound),groupId:void 0}}),l={unitId:i,subUnitId:a,drawingId:o,drawingType:lm.DRAWING_GROUP,transform:{left:0,top:0}};t.push({parent:l,children:c})}),t}function oMt(e){var t;let n=new Map;(t=e.flatChildren)==null||t.forEach(e=>n.set(e.drawingId,rp(10))),e.groups.forEach(e=>n.set(e.drawingId,rp(10)));let r={};for(let[t,i]of Object.entries(e.nestedIdRecord)){let e=n.get(t)??t;r[e]={drawingId:e,children:i.children?.map(e=>n.get(e)??e)}}let i=[],a=[];for(let t of e.groups){let e=n.get(t.drawingId)??t.drawingId,r=t.groupId?n.get(t.groupId)??t.groupId:void 0;a.push(sMt(t,e,r))}for(let t of e.flatChildren||[]){let e=n.get(t.drawingId)??t.drawingId,r=t.groupId?n.get(t.groupId)??t.groupId:void 0;i.push(sMt(t,e,r))}return{cloned:{nestedIdRecord:r,flatChildren:i,groups:a},idMap:n}}function sMt(e,t,n){let r={...e};return t&&(r.drawingId=t),n?r.groupId=n:delete r.groupId,JSON.parse(JSON.stringify(r))}var cMt={id:`sheet.command.group-sheet-image`,type:L.COMMAND,handler:(e,t)=>{let n=e.get(R),r=e.get(fx),i=e.get(h5);if(!t)return!1;let a=[];t.forEach(({parent:e,children:t})=>{a.push(e.unitId),t.forEach(e=>{a.push(e.unitId)})});let{unitId:o,subUnitId:s,undo:c,redo:l,objects:u}=i.getGroupDrawingOp(t);return n.syncExecuteCommand(_5.id,{op:l,unitId:o,subUnitId:s,objects:u,type:g5.GROUP})?(r.pushUndoRedo({unitID:o,undoMutations:[{id:_5.id,params:{op:c,unitId:o,subUnitId:s,objects:aMt(u),type:g5.UNGROUP}},{id:v5.id,params:a}],redoMutations:[{id:_5.id,params:{op:l,unitId:o,subUnitId:s,objects:u,type:g5.GROUP}},{id:v5.id,params:a}]}),!0):!1}},lMt={id:`sheet.command.ungroup-sheet-image`,type:L.COMMAND,handler:(e,t)=>{let n=e.get(R),r=e.get(fx),i=e.get(h5);if(!t)return!1;let a=[];t.forEach(({parent:e,children:t})=>{a.push(e.unitId),t.forEach(e=>{a.push(e.unitId)})});let{unitId:o,subUnitId:s,undo:c,redo:l,objects:u}=i.getUngroupDrawingOp(t);return n.syncExecuteCommand(_5.id,{op:l,unitId:o,subUnitId:s,objects:u,type:g5.UNGROUP})?(r.pushUndoRedo({unitID:o,undoMutations:[{id:_5.id,params:{op:c,unitId:o,subUnitId:s,objects:iMt(u),type:g5.GROUP}},{id:v5.id,params:a}],redoMutations:[{id:_5.id,params:{op:l,unitId:o,subUnitId:s,objects:u,type:g5.UNGROUP}},{id:v5.id,params:a}]}),!0):!1}};function O5(e){"@babel/helpers - typeof";return O5=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},O5(e)}function uMt(e,t){if(O5(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(O5(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function dMt(e){var t=uMt(e,`string`);return O5(t)==`symbol`?t:t+``}function k5(e,t,n){return(t=dMt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function A5(e,t){return function(n,r){t(n,r,e)}}function j5(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function fMt(e,t,n){let r=n*Math.PI/180;return{rotatedWidth:Math.abs(e*Math.cos(r))+Math.abs(t*Math.sin(r)),rotatedHeight:Math.abs(e*Math.sin(r))+Math.abs(t*Math.cos(r))}}function M5(e,t,n,r,i){let{rotatedHeight:a,rotatedWidth:o}=fMt(n,r,i),s=e.get(zE).getRenderById(t.unitId);if(!s)return!1;let c=s.with(TQ).getSkeletonParam(t.subUnitId)?.skeleton;if(c==null)return!1;let l=c.getCellByIndex(t.row,t.col),u=l.mergeInfo.endX-l.mergeInfo.startX-2,d=l.mergeInfo.endY-l.mergeInfo.startY-2,f=o/a,p=Math.ceil(Math.min(u,d*f))/o,m=!p||Number.isNaN(p)?.001:p;return{width:n*m,height:r*m}}var N5=class extends P{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){super(),this._context=e,this._commandService=t,this._sheetInterceptorService=n,this._selectionRenderService=r,this._imageIoService=i,this._fileOpenerService=a,this._sheetDrawingService=o,this._drawingManagerService=s,this._contextService=c,this._messageService=l,this._localeService=u,this._sheetSkeletonService=f,this._injector=p,this._urlImageService=m,k5(this,`_workbookSelections`,void 0),this._workbookSelections=d.getWorkbookSelections(this._context.unitId),this._updateDrawingListener(),this._updateOrderListener(),this._groupDrawingListener(),this._focusDrawingListener()}async insertFloatImage(){let e=await this._fileOpenerService.openFile({multiple:!0,accept:yN.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}),t=e.length;return t>10?(this._messageService.show({type:dj.Error,content:this._localeService.t(`sheets-drawing-ui.update-status.exceedMaxCount`,`10`)}),!1):t!==0&&(e.forEach(async e=>await this.insertFloatImageByFile(e)),!0)}async insertCellImage(){let e=(await this._fileOpenerService.openFile({multiple:!1,accept:yN.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}))[0];return e?(await this._insertCellImage(e),!0):!1}insertCellImageByFile(e,t){return this._insertCellImage(e,t)}async insertFloatImageByFile(e){let t;try{t=await this._imageIoService.saveImage(e)}catch(e){let t=e.message;t===rb.ERROR_EXCEED_SIZE?this._messageService.show({type:dj.Error,content:this._localeService.t(`sheets-drawing-ui.update-status.exceedMaxSize`,String(vN()/1048576))}):t===rb.ERROR_IMAGE_TYPE?this._messageService.show({type:dj.Error,content:this._localeService.t(`sheets-drawing-ui.update-status.invalidImageType`)}):t===rb.ERROR_IMAGE&&this._messageService.show({type:dj.Error,content:this._localeService.t(`sheets-drawing-ui.update-status.invalidImage`)})}if(t==null)return;let{unitId:n,subUnitId:r}=this._getUnitInfo(),{imageId:i,imageSourceType:a,source:o,base64Cache:s}=t,{width:c,height:l,image:u}=await ON(s||``),{width:d,height:f}=this._context.scene;this._imageIoService.addImageSourceCache(o,a,u);let p=1;if(c>500||l>500){let e=500/c,t=500/l;p=Math.max(e,t)}let m=this._sheetSkeletonService.getSkeletonParam(n,r);if(!m)return;let{skeleton:h}=m,g=this._getImagePosition(c*p,l*p,d,f,h);if(!g)return;let _=d5(g,m);if(!_)return;let v={unitId:n,subUnitId:r,drawingId:i,drawingType:lm.DRAWING_IMAGE,imageSourceType:a,source:o,transform:_,sheetTransform:g,axisAlignSheetTransform:p5(_,h)??g};return this._commandService.executeCommand(y5.id,{unitId:n,drawings:[v]})}async _insertCellImage(e,t){let n;try{n=await this._imageIoService.saveImage(e)}catch(e){let t=e.message;t===rb.ERROR_EXCEED_SIZE?this._messageService.show({type:dj.Error,content:this._localeService.t(`sheets-drawing-ui.update-status.exceedMaxSize`,String(vN()/1048576))}):t===rb.ERROR_IMAGE_TYPE?this._messageService.show({type:dj.Error,content:this._localeService.t(`sheets-drawing-ui.update-status.invalidImageType`)}):t===rb.ERROR_IMAGE&&this._messageService.show({type:dj.Error,content:this._localeService.t(`sheets-drawing-ui.update-status.invalidImage`)})}if(n==null)return!1;let{imageId:r,imageSourceType:i,source:a,base64Cache:o}=n,{width:s,height:c,image:l}=await ON(o||``);this._imageIoService.addImageSourceCache(a,i,l);let u=this._workbookSelections.getCurrentLastSelection();if(!u)return!1;let d=u.primary.actualRow,f=u.primary.actualColumn;u.primary.isMerged&&(d=u.primary.startRow,f=u.primary.startColumn);let p=pb(``,{}),m=M5(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:d,col:f},s,c,0);if(!m)return!1;let h={size:{width:m.width,height:m.height},positionH:{relativeFrom:tm.PAGE,posOffset:0},positionV:{relativeFrom:nm.PARAGRAPH,posOffset:0},angle:0},g={unitId:p.getUnitId(),subUnitId:p.getUnitId(),drawingId:r,drawingType:lm.DRAWING_IMAGE,imageSourceType:i,source:a,transform:PN(h),docTransform:h,behindDoc:Mp.FALSE,title:``,description:``,layoutType:Gp.INLINE,wrapText:Wp.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},_=by.drawing.add({documentDataModel:p,drawings:[g],selection:{collapsed:!0,startOffset:0,endOffset:0}});return _?(p.apply(_),this._commandService.syncExecuteCommand(sq.id,{value:{[t?.row??d]:{[t?.col??f]:{p:p.getSnapshot(),t:1}}},unitId:t?.unitId,subUnitId:t?.subUnitId})):!1}async insertCellImageByUrl(e,t){let n=e;try{n=await this._urlImageService.getImage(e)}catch(t){console.error(`Failed to get image from URLImageService: ${e}`,t)}let{width:r,height:i,image:a}=await ON(n||``);this._imageIoService.addImageSourceCache(e,nb.URL,a);let o=this._workbookSelections.getCurrentLastSelection();if(!o)return!1;let s=pb(``,{}),c=M5(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:o.primary.actualRow,col:o.primary.actualColumn},r,i,0);if(!c)return!1;let l={size:{width:c.width,height:c.height},positionH:{relativeFrom:tm.PAGE,posOffset:0},positionV:{relativeFrom:nm.PARAGRAPH,posOffset:0},angle:0},u={unitId:s.getUnitId(),subUnitId:s.getUnitId(),drawingId:rp(),drawingType:lm.DRAWING_IMAGE,imageSourceType:nb.URL,source:e,transform:PN(l),docTransform:l,behindDoc:Mp.FALSE,title:``,description:``,layoutType:Gp.INLINE,wrapText:Wp.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},d=by.drawing.add({documentDataModel:s,drawings:[u],selection:{collapsed:!0,startOffset:0,endOffset:0}});return d?(s.apply(d),this._commandService.syncExecuteCommand(sq.id,{value:{[t?.row??o.primary.actualRow]:{[t?.col??o.primary.actualColumn]:{p:s.getSnapshot(),t:1}}},unitId:t?.unitId,subUnitId:t?.subUnitId})):!1}_getUnitInfo(){let e=this._context.unit,t=e.getActiveSheet();return{unitId:e.getUnitId(),subUnitId:t.getSheetId()}}_getImagePosition(e,t,n,r,i){let a=this._workbookSelections.getCurrentSelections(),o={startRow:0,endRow:0,startColumn:0,endColumn:0};a&&a.length>0&&(o=a[a.length-1].range);let s=gZ(i,o);if(s==null)return;let{startColumn:c,startRow:l,startX:u,startY:d}=s,f=!1;if(u+e>n&&(u=n-e,u<0&&(u=0,e=n),f=!0),d+t>r&&(d=r-t,d<0&&(d=0,t=r),f=!0),f){let e=this._selectionRenderService.getCellWithCoordByOffset(u,d);if(e==null)return;u=e.startX,d=e.startY,c=e.actualColumn,l=e.actualRow}let p={column:c,columnOffset:0,row:l,rowOffset:0},m=this._selectionRenderService.getCellWithCoordByOffset(u+e,d+t);if(m!=null)return{from:p,to:{column:m.actualColumn,columnOffset:u+e-m.startX,row:m.actualRow,rowOffset:d+t-m.startY}}}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{let{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i}=e;this._commandService.executeCommand(x5.id,{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i})}))}_updateDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginUpdate$.subscribe(e=>{let t=[];e.length!==0&&(e.forEach(e=>{let{unitId:n,subUnitId:r,drawingId:i,transform:a}=e,o=this._sheetSkeletonService.getSkeletonParam(n,r);if(!a||!o)return;let{skeleton:s}=o,c=this._sheetDrawingService.getDrawingByParam({unitId:n,subUnitId:r,drawingId:i});if(c==null||c.unitId!==this._context.unitId)return;let l=f5({...c.transform,...a},s),u=p5({...c.transform,...a},s);if(l==null||u==null)return;let d={...e,transform:{...c.transform,...a,...d5(l,o)},sheetTransform:{...l},axisAlignSheetTransform:{...u}};t.push(d)}),t.length>0&&this._commandService.executeCommand(S5.id,{unitId:e[0].unitId,drawings:t}))}))}_getSheetTransformByParam(e,t){let{unitId:n,subUnitId:r,drawingId:i,transform:a}=e,o=this._sheetSkeletonService.getSkeleton(n,r);if(!a||!o)return null;let s=this._sheetDrawingService.getDrawingByParam({unitId:n,subUnitId:r,drawingId:i}),c=s?.transform;if(t&&(c={}),!t&&(!s||s.unitId!==this._context.unitId))return null;let l=f5({...c,...a},o),u=p5({...c,...a},o);return!l||!u?null:{sheetTransform:l,axisAlignSheetTransform:u}}_groupDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginGroupUpdate$.subscribe(e=>{let t=[];for(let n of e){let e=this._getSheetTransformByParam(n.parent,!0),r=[];for(let e of n.children){let t=this._getSheetTransformByParam(e,!1);t!=null&&r.push({...e,sheetTransform:t.sheetTransform,axisAlignSheetTransform:t.axisAlignSheetTransform})}let i={parent:{...n.parent,sheetTransform:e?.sheetTransform,axisAlignSheetTransform:e?.axisAlignSheetTransform},children:r};t.push(i)}if(t.length>0){this._commandService.executeCommand(cMt.id,t);let{unitId:n,subUnitId:r,drawingId:i}=e[0].parent;this._commandService.syncExecuteCommand(xN.id,[{unitId:n,subUnitId:r,drawingId:i}])}})),this.disposeWithMe(this._drawingManagerService.featurePluginUngroupUpdate$.subscribe(e=>{let t=[];for(let n of e){let{children:e}=n,r=[];for(let t of e){let e=this._getSheetTransformByParam(t,!1);e!=null&&r.push({...t,sheetTransform:e.sheetTransform,axisAlignSheetTransform:e.axisAlignSheetTransform})}t.push({...n,children:r})}this._commandService.executeCommand(lMt.id,t)}))}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e==null||e.length===0?(this._contextService.setContextValue($y,!1),this._sheetDrawingService.focusDrawing([])):(this._contextService.setContextValue($y,!0),this._sheetDrawingService.focusDrawing(e))}))}};N5=j5([A5(1,R),A5(2,j(MG)),A5(3,bQ),A5(4,ib),A5(5,uN),A5(6,h5),A5(7,bN),A5(8,Pm),A5(9,$j),A5(10,j(Xb)),A5(11,j(HK)),A5(12,j(GK)),A5(13,j(We)),A5(14,ab)],N5);var P5={id:`sheet.command.insert-float-image`,type:L.COMMAND,handler:async(e,t)=>{let n=e.get(z),r=e.get(zE),i=BE(M.UNIVER_SHEET,n,r)?.with(N5);if(!i)return!1;let a=t?.files;if(a){let e=a.map(e=>i.insertFloatImageByFile(e));return(await Promise.all(e)).every(e=>e)}return i.insertFloatImage()??!1}},F5={id:`sheet.command.insert-cell-image`,type:L.COMMAND,handler:e=>{let t=e.get(z),n=e.get(zE);return BE(M.UNIVER_SHEET,t,n)?.with(N5).insertCellImage()??!1}},I5={id:`sheet.command.move-drawing`,type:L.COMMAND,handler:(e,t)=>{let n=e.get(R),r=e.get(h5),i=e.get(GK),{direction:a}=t,o=r.getFocusDrawings();if(o.length===0)return!1;let s=o[0].unitId,c=o.map(e=>{let{transform:t,unitId:n,subUnitId:r}=e,o=i.getSkeleton(n,r);if(!t||!o)return null;let s={...t},{left:c=0,top:l=0}=t;return a===I.UP?s.top=l-1:a===I.DOWN?s.top=l+1:a===I.LEFT?s.left=c-1:a===I.RIGHT&&(s.left=c+1),{...e,transform:s,sheetTransform:f5(s,o),axisAlignSheetTransform:p5(s,o)}}).filter(e=>e!=null);return n.syncExecuteCommand(S5.id,{unitId:s,drawings:c})?(n.syncExecuteCommand(v5.id,[s]),!0):!1}},L5=function(e){return e.CELL_ADDRESS=`cellAddress`,e.COLUMN_VALUE=`columnValue`,e}({}),R5=ce(`sheets-drawing-ui.batch-save-images.service`);function z5(e){let t=``,n=e;for(;n>=0;)t=String.fromCharCode(n%26+65)+t,n=Math.floor(n/26)-1;return t}function B5(e,t){return`${z5(t)}${e+1}`}function pMt(e){let t=B5(e.startRow,e.startColumn),n=B5(e.endRow,e.endColumn);return t===n?t:`${t}:${n}`}function mMt(e){var t,n;return!!(e!=null&&(t=e.p)!=null&&(t=t.drawingsOrder)!=null&&t.length&&(e==null||(n=e.p)==null||(n=n.drawingsOrder)==null?void 0:n.length)>0)}function hMt(e){var t;if(!((t=e.p)!=null&&(t=t.drawingsOrder)!=null&&t.length)||!e.p?.drawings)return null;let n=e.p.drawingsOrder[0],r=e.p.drawings[n];return!r||!(`source`in r)||!(`imageSourceType`in r)?null:r}function V5(e,t){if(t===nb.BASE64){let t=e.match(/^data:image\/(\w+);/);if(t)return t[1]===`jpeg`?`jpg`:t[1]}if(t===nb.URL){let t=e.match(/\.(\w+)(?:\?|$)/);if(t)return t[1].toLowerCase()}return`png`}async function gMt(e,t){if(t===nb.BASE64||t===nb.URL)return(await fetch(e)).blob();throw Error(`UUID image type requires additional handling`)}var H5=class extends P{constructor(e,t,n,r){super(),this._univerInstanceService=e,this._selectionService=t,this._imageIoService=n,this._urlImageService=r}registerURLImageDownloader(e){return this._urlImageService.registerURLImageDownloader(e)}getCellImagesInSelection(){let e=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET);if(!e)return[];let t=e.getActiveSheet();if(!t)return[];let n=this._selectionService.getCurrentSelections();if(!n||n.length===0)return[];let r=t.getCellMatrix(),i=[];for(let e of n){let{startRow:t,endRow:n,startColumn:a,endColumn:o}=e.range;for(let e=t;e<=n;e++)for(let t=a;t<=o;t++){let n=r.getValue(e,t);if(mMt(n)){let r=hMt(n);r&&i.push({row:e,col:t,cellAddress:B5(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return i}getCellImagesFromRanges(e,t,n){let r=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET);if(!r)return[];let i=r.getSheetBySheetId(t);if(!i)return[];let a=i.getCellMatrix(),o=[];for(let e of n){let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e;for(let e=t;e<=n;e++)for(let t=r;t<=i;t++){let n=a.getValue(e,t);if(mMt(n)){let r=hMt(n);r&&o.push({row:e,col:t,cellAddress:B5(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return o}getDataColumns(){let e=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET);if(!e)return[];let t=e.getActiveSheet();if(!t)return[];let n=this._selectionService.getCurrentSelections();if(!n||n.length===0)return[];let r=t.getCellMatrix(),i=r.getDataRange(),a=1/0,o=-1/0,s=new Set;for(let e of n){a=Math.min(a,e.range.startRow),o=Math.max(o,e.range.endRow);for(let t=e.range.startColumn;t<=e.range.endColumn;t++)s.add(t)}let c=new Set;for(let e=i.startColumn;e<=i.endColumn;e++)if(!s.has(e))for(let t=a;t<=o;t++){let n=r.getValue(t,e);if(n){var l;if(n.v?.toString()||(l=n.p)!=null&&(l=l.body)!=null&&(l=l.dataStream)!=null&&l.trim()){c.add(e);break}}}let u=[],d=Array.from(c).sort((e,t)=>e-t);for(let e of d)u.push({index:e,label:z5(e)});return u}getDataColumnsForRanges(e,t,n){let r=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET);if(!r)return[];let i=r.getSheetBySheetId(t);if(!i)return[];let a=i.getCellMatrix(),o=a.getDataRange(),s=1/0,c=-1/0,l=new Set;for(let e of n){s=Math.min(s,e.startRow),c=Math.max(c,e.endRow);for(let t=e.startColumn;t<=e.endColumn;t++)l.add(t)}let u=new Set;for(let e=o.startColumn;e<=o.endColumn;e++)if(!l.has(e))for(let t=s;t<=c;t++){let n=a.getValue(t,e);if(n){var d;if(n.v?.toString()||(d=n.p)!=null&&(d=d.body)!=null&&(d=d.dataStream)!=null&&d.trim()){u.add(e);break}}}let f=[],p=Array.from(u).sort((e,t)=>e-t);for(let e of p)f.push({index:e,label:z5(e)});return f}getSelectionRangeNotation(){let e=this._selectionService.getCurrentSelections();return!e||e.length===0?``:e.map(e=>pMt(e.range)).join(`, `)}getSelectionRowRange(){let e=this._selectionService.getCurrentSelections();if(!e||e.length===0)return null;let t=1/0,n=-1/0;for(let r of e)t=Math.min(t,r.range.startRow),n=Math.max(n,r.range.endRow);return{startRow:t,endRow:n}}getSelectionColumnIndices(){let e=this._selectionService.getCurrentSelections();if(!e||e.length===0)return new Set;let t=new Set;for(let n of e)for(let e=n.range.startColumn;e<=n.range.endColumn;e++)t.add(e);return t}generateFileName(e,t){let n=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET),r=V5(e.source,e.imageSourceType),i=[];for(let r of t.fileNameParts)if(r===`cellAddress`)i.push(e.cellAddress);else if(r===`columnValue`&&t.columnIndex!==void 0){let r=n?.getActiveSheet();if(r){let n=r.getCellMatrix().getValue(e.row,t.columnIndex);if(n){var a;let e=n.v?.toString()||((a=n.p)==null||(a=a.body)==null||(a=a.dataStream)==null?void 0:a.trim())||``;if(e){let t=e.replace(/[<>:"/\\|?*]/g,`_`).trim();t&&i.push(t)}}}}return i.length===0?`${e.cellAddress}.${r}`:`${i.join(`_`)}.${r}`}generateFileNameWithContext(e,t,n,r){let i=this._univerInstanceService.getUnit(n,M.UNIVER_SHEET),a=V5(e.source,e.imageSourceType),o=[];for(let n of t.fileNameParts)if(n===`cellAddress`)o.push(e.cellAddress);else if(n===`columnValue`&&t.columnIndex!==void 0){let n=i?.getSheetBySheetId(r);if(n){let r=n.getCellMatrix().getValue(e.row,t.columnIndex);if(r){var s;let e=r.v?.toString()||((s=r.p)==null||(s=s.body)==null||(s=s.dataStream)==null?void 0:s.trim())||``;if(e){let t=e.replace(/[<>:"/\\|?*]/g,`_`).trim();t&&o.push(t)}}}}return o.length===0?`${e.cellAddress}.${a}`:`${o.join(`_`)}.${a}`}async saveImages(e,t){let n=await window.showDirectoryPicker({mode:`readwrite`}),r=new Map;for(let i of e){let e=this.generateFileName(i,t),a=e.replace(/\.\w+$/,``),o=e.match(/\.\w+$/)?.[0]||`.png`,s=r.get(a)||0;s>0&&(e=`${a}_${s}${o}`),r.set(a,s+1);try{let t=await this._getImageBlob(i),r=await(await n.getFileHandle(e,{create:!0})).createWritable();await r.write(t),await r.close()}catch(t){throw console.error(`Failed to save image ${e}:`,t),t}}}async saveImagesWithContext(e,t,n,r){let i=await window.showDirectoryPicker({mode:`readwrite`}),a=new Map;for(let o of e){let e=this.generateFileNameWithContext(o,t,n,r),s=e.replace(/\.\w+$/,``),c=e.match(/\.\w+$/)?.[0]||`.png`,l=a.get(s)||0;l>0&&(e=`${s}_${l}${c}`),a.set(s,l+1);try{let t=await this._getImageBlob(o),n=await(await i.getFileHandle(e,{create:!0})).createWritable();await n.write(t),await n.close()}catch(t){throw console.error(`Failed to save image ${e}:`,t),t}}}async downloadSingleImage(e){let t=V5(e.source,e.imageSourceType),n=`${e.cellAddress}.${t}`;try{let t=await this._getImageBlob(e),r=URL.createObjectURL(t),i=document.createElement(`a`);i.href=r,i.download=n,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)}catch(e){throw console.error(`Failed to download image ${n}:`,e),e}}async _getImageBlob(e){return e.imageSourceType===nb.UUID?gMt(await this._imageIoService.getImage(e.source),nb.URL):e.imageSourceType===nb.URL?this._urlImageService.downloadImage(e.source):gMt(e.source,e.imageSourceType)}};H5=j5([A5(0,z),A5(1,j(HK)),A5(2,ib),A5(3,ab)],H5);var U5=`sheet.dialog.batch-save-images`,W5={id:`sheet.command.save-cell-images`,type:L.COMMAND,handler:async e=>{let t=e.get(oN),n=e.get(R5),r=n.getCellImagesInSelection();if(r.length===1)try{return await n.downloadSingleImage(r[0]),!0}catch(e){return console.error(`Failed to download image:`,e),!1}let i=e.get(Xb),a=n.getSelectionRangeNotation(),o=`${i.t(`sheets-drawing-ui.save.title`)} (${a})`;return t.open({id:U5,draggable:!0,width:360,title:{title:o},children:{label:U5},destroyOnClose:!0,preservePositionOnDestroy:!0,onClose:()=>t.close(U5)}),!0}},_Mt=`COMPONENT_SHEET_DRAWING_PANEL`,vMt={id:`sidebar.operation.sheet-image`,type:L.COMMAND,handler:async(e,t)=>{let n=e.get(kj),r=e.get(Xb),i=e.get(z),a=e.get(R);if(!bG(i))return!1;switch(t.value){case`open`:n.open({header:{title:r.t(`sheets-drawing-ui.panel.title`)},children:{label:_Mt},onClose:()=>{a.syncExecuteCommand(xN.id,[])},width:360});break;default:n.close()}return!0}},yMt={id:`sheet.operation.edit-sheet-image`,type:L.OPERATION,handler:(e,t)=>{let n=e.get(R);return t!=null&&(n.syncExecuteCommand(xN.id,[t]),n.executeCommand(vMt.id,{value:`open`}),!0)}},bMt=[LQ.SPECIAL_PASTE_COL_WIDTH,LQ.SPECIAL_PASTE_VALUE,LQ.SPECIAL_PASTE_FORMAT,LQ.SPECIAL_PASTE_FORMULA],G5=class extends P{constructor(e,t,n,r,i){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._sheetSkeletonService=n,this._sheetDrawingService=r,this._drawingManagerService=i,k5(this,`_featurePasteHooks`,[]),k5(this,`_copyInfo`,void 0),this._initCopyPaste()}get _focusedDrawings(){return this._sheetDrawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:`SHEET_DRAWING_GROUP`,onBeforeCopy:(e,t)=>{this._copyInfo=null;let n=this._focusedDrawings;if(n.length===0)return;let r=n.find(e=>e.drawingType===lm.DRAWING_GROUP);if(!r)return;let i=this._drawingManagerService.getDrawingsByGroupNested({unitId:r.unitId,subUnitId:r.subUnitId,drawingId:r.drawingId});i&&(this._copyInfo={unitId:r.unitId,subUnitId:r.subUnitId,groupNestedParam:i})},onPasteCells:(e,t,n,r)=>{if(!this._copyInfo)return{redos:[],undos:[]};let{pasteType:i}=r;return bMt.includes(i)?{redos:[],undos:[]}:this._generateGroupPasteMutations(t)},onPasteUnrecognized:e=>this._copyInfo?this._generateGroupPasteMutations(e):{redos:[],undos:[]}})}registerFeaturePasteHook(e){this._featurePasteHooks.push(e)}_getGroupFeaturePasteMutations(e){let t=[],n=[];for(let r of this._featurePasteHooks){let i=r(e);t.push(...i.redos),n.push(...i.undos)}return{redos:t,undos:n}}_generateGroupPasteMutations(e){if(!this._copyInfo)return{redos:[],undos:[]};let{unitId:t,subUnitId:n,range:r}=e,i=this._sheetSkeletonService.getSkeleton(t,n);if(!i)return{redos:[],undos:[]};let{groupNestedParam:a}=this._copyInfo,o=a.groups[a.groups.length-1],{cloned:s,idMap:c}=oMt(a),l=s.groups[s.groups.length-1].drawingId,u=MK(r),d=gZ(i,{startRow:u.startRow,endRow:u.endRow,startColumn:u.startColumn,endColumn:u.endColumn});if(!d)return{redos:[],undos:[]};let f={...o.transform,left:d.startX,top:d.startY},p=[...(s.flatChildren??[]).map(e=>({...e,unitId:t,subUnitId:n})),...s.groups.map(e=>e.drawingId===l?{...e,unitId:t,subUnitId:n,transform:f,sheetTransform:f5(f,i)??o.sheetTransform,axisAlignSheetTransform:p5(f,i)??o.sheetTransform}:{...e,unitId:t,subUnitId:n})],{undo:m,redo:h,objects:g}=this._sheetDrawingService.getBatchAddOp(p),_=[{id:_5.id,params:{op:h,unitId:t,subUnitId:n,objects:g,type:g5.INSERT}}],v=[{id:_5.id,params:{op:m,unitId:t,subUnitId:n,objects:g,type:g5.REMOVE}}],y=this._getGroupFeaturePasteMutations({fromUnitId:this._copyInfo.unitId,fromSubUnitId:this._copyInfo.subUnitId,toUnitId:t,toSubUnitId:n,idMap:c,cloned:s});return _.push(...y.redos),v.push(...y.undos),{redos:_,undos:v}}dispose(){this._copyInfo=null,this._featurePasteHooks.length=0,super.dispose()}};G5=j5([A5(0,RQ),A5(1,zE),A5(2,j(GK)),A5(3,h5),A5(4,bN)],G5);var xMt=`sheet.menu.image`;function SMt(e){return{id:xMt,type:yM.SUBITEMS,icon:`AddImageIcon`,tooltip:`sheets-drawing-ui.title`,hidden$:Nj(e,M.UNIVER_SHEET),disabled$:T0(e,{workbookTypes:[rX],worksheetTypes:[hX],rangeTypes:[KY]})}}function CMt(e){return{id:P5.id,title:`sheets-drawing-ui.upload.float`,type:yM.BUTTON,hidden$:Nj(e,M.UNIVER_SHEET)}}function wMt(e){return{id:F5.id,title:`sheets-drawing-ui.upload.cell`,type:yM.BUTTON,hidden$:Nj(e,M.UNIVER_SHEET)}}var TMt=`@univerjs/sheets-drawing-ui`,EMt=`0.25.1`,DMt=`sheets-drawing-ui.config`,OMt={},K5=class extends Kf{constructor(e,t,n,r){super(),this._drawingManagerService=e,this._contextMenuService=t,this._renderManagerService=n,this._univerInstanceService=r,this._init()}_init(){this._univerInstanceService.getAllUnitsForType(M.UNIVER_SHEET).forEach(e=>this._contextMenuListener(e))}_contextMenuListener(e){if(!e)return;let t=this._renderManagerService.getRenderById(e.getUnitId())?.scene;if(!t)return;let n=t.getTransformerByCreate();n&&this.disposeWithMe(n.changeEnd$.subscribe(e=>{let{event:t}=e;if(t.button!==2)return;let r=n.getSelectedObjectMap();if(r.size!==0){for(let e of r.values()){let t=e.oKey;if(!this._drawingManagerService.getDrawingOKey(t))return}this._contextMenuService.triggerContextMenu(t,mM.DRAWING)}}))}};K5=j5([A5(0,bN),A5(1,PM),A5(2,zE),A5(3,z)],K5);var q5=class extends P{constructor(e,t,n,r,i){super(),this._context=e,this._hoverManagerService=t,this._selectionsService=n,this._drawingRenderService=r,this._sheetSkeletonManagerService=i,k5(this,`_isSetCursor`,!1),this._initHover(),this._initImageClick()}_initHover(){this.disposeWithMe(this._hoverManagerService.currentRichTextNoDistinct$.pipe(dc(33)).subscribe(e=>{let t=[];e!==null&&(t=this._selectionsService.getWorkbookSelections(this._context.unitId).getCurrentSelections()),t.length>0&&e?.unitId===this._context.unitId&&e?.drawing&&t.length===1&&t[0].primary?.actualRow===e.row&&t[0].primary?.actualColumn===e.col?(this._isSetCursor=!0,this._context.scene.setCursor(lw.ZOOM_IN)):this._isSetCursor&&(this._isSetCursor=!1,this._context.scene.resetCursor())}))}_initImageClick(){this.disposeWithMe(this._hoverManagerService.currentClickedCell$.subscribe(e=>{if(e?.drawing&&this._isSetCursor){let t=e.drawing.drawing.drawingOrigin,n=this._sheetSkeletonManagerService.getCurrentSkeleton()?.imageCacheMap.getImage(t.imageSourceType,t.source);if(!n)return;this._drawingRenderService.previewImage(`preview-cell-image`,n.src,n.width,n.height),this._context.scene.resetCursor(),this._isSetCursor=!1}}))}};q5=j5([A5(1,j(e0)),A5(2,j(HK)),A5(3,j(SW)),A5(4,j(TQ))],q5);var J5=class extends P{constructor(e,t,n,r){super(),this._context=e,this._sheetDrawingService=t,this._drawingManagerService=n,this._sheetSkeletonService=r,this._init()}_init(){this._drawingInitializeListener()}_drawingInitializeListener(){this._sheetDrawingService.initializeNotification(this._context.unitId);let e=this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId);for(let t in e){let n=e[t];for(let e in n.data){let t=n.data[e],{unitId:r,subUnitId:i}=t,a=this._sheetSkeletonService.getSkeletonParam(r,i);a&&t.sheetTransform&&(t.transform=d5(t.sheetTransform,a))}}this._drawingManagerService.registerDrawingData(this._context.unitId,this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId)),this._drawingManagerService.initializeNotification(this._context.unitId)}};J5=j5([A5(1,h5),A5(2,bN),A5(3,j(GK))],J5);function kMt(e,t,n){var r,i;if((n==null||(r=n.p)==null||(r=r.body)==null?void 0:r.dataStream.length)===3&&((i=n.p)==null||(i=i.drawingsOrder)==null?void 0:i.length)===1){let r=n.p.drawings[n.p.drawingsOrder[0]],i=M5(e,{unitId:t.unitId,subUnitId:t.subUnitId,row:t.row,col:t.col},r.docTransform.size.width,r.docTransform.size.height,r.docTransform.angle);if(i)return r.transform.width=i.width,r.transform.height=i.height,r.docTransform.size.width=i.width,r.docTransform.size.height=i.height,r.transform.left=0,r.transform.top=0,r.docTransform.positionH.posOffset=0,r.docTransform.positionV.posOffset=0,n.p.documentStyle.pageSize.width=1/0,n.p.documentStyle.pageSize.height=1/0,!0}return!1}var Y5=class extends P{constructor(e,t,n,r,i,a){super(),this._commandService=e,this._sheetInterceptorService=t,this._injector=n,this._drawingManagerService=r,this._docDrawingController=i,this._editorBridgeService=a,this._handleInitEditor(),this._initCellContentInterceptor()}_handleInitEditor(){this.disposeWithMe(this._editorBridgeService.visible$.subscribe(e=>{e.visible?e.visible&&(this._drawingManagerService.removeDrawingDataForUnit(tf),this._docDrawingController.loadDrawingDataForUnit(tf),this._drawingManagerService.initializeNotification(tf)):this._drawingManagerService.removeDrawingDataForUnit(tf)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{e.id===iF.id&&e.params.unitId===rf&&(this._drawingManagerService.removeDrawingDataForUnit(rf),this._docDrawingController.loadDrawingDataForUnit(rf),this._drawingManagerService.initializeNotification(rf))}))}_initCellContentInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(wG.CELL_CONTENT,{effect:Sf.Style,priority:TG.CELL_IMAGE,handler:(e,t,n)=>(e?.p&&e.p.drawingsOrder?.length&&(e===t.rawData&&(e={...t.rawData}),e.interceptorStyle||(e.interceptorStyle={}),e.interceptorStyle.tr={a:0},kMt(this._injector,{unitId:t.unitId,subUnitId:t.subUnitId,row:t.row,col:t.col},e)),n(e))}))}};Y5=j5([A5(0,R),A5(1,j(MG)),A5(2,j(We)),A5(3,bN),A5(4,j(IU)),A5(5,j(d1))],Y5);var X5=class extends P{constructor(e,t){super(),this._autoFillService=e,this._injector=t,this._initAutoFillHooks()}_initAutoFillHooks(){this.disposeWithMe(this._autoFillService.addHook({id:`sheet-cell-image-autofill`,onBeforeSubmit:(e,t,n,r)=>{new Ih(r).forValue((t,n,r)=>{kMt(this._injector,{unitId:e.unitId,subUnitId:e.subUnitId,row:t,col:n},r)})}}))}};X5=j5([A5(0,j(qJ)),A5(1,j(We))],X5);var AMt=[tf,nf,rf],Z5=class extends P{constructor(e,t,n,r,i){super(),this._commandService=e,this._univerInstanceService=t,this._dialogService=n,this._renderManagerService=r,this._localeService=i,this._initDocImageCopyPasteHooks()}_setCellImage(e){let t=pb(``,{}),n=BE(M.UNIVER_SHEET,this._univerInstanceService,this._renderManagerService)?.with(W1),r=by.drawing.add({documentDataModel:t,drawings:[e],selection:{collapsed:!0,startOffset:0,endOffset:0}});r&&(t.apply(r),n&&n.submitCellData(t))}_initDocImageCopyPasteHooks(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===UYe.id){let{doc:t}=e.params,n=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_DOC);if(n==null||!Object.keys(t.drawings??{}).length)return;let r=n.getUnitId();if(AMt.includes(r)&&r!==rf){let e=()=>{this._dialogService.close(`sheet-cell-image-copy-paste`),this._commandService.syncExecuteCommand(w1.id,{visible:!1})};n.getBody()?.dataStream===`\r
683
- `?(this._commandService.syncExecuteCommand(w1.id,{visible:!1}),this._setCellImage(Object.values(t.drawings)[0])):this._dialogService.open({id:`sheet-cell-image-copy-paste`,title:{label:this._localeService.t(`sheets-drawing-ui.cell-image.pasteTitle`)},children:{label:this._localeService.t(`sheets-drawing-ui.cell-image.pasteContent`)},width:320,destroyOnClose:!0,onClose:e,showOk:!0,showCancel:!0,onOk:()=>{e(),this._setCellImage(Object.values(t.drawings)[0])},onCancel:e})}}}))}};Z5=j5([A5(0,R),A5(1,z),A5(2,oN),A5(3,zE),A5(4,j(Xb))],Z5);var jMt=`image/png`;function MMt(e){let t=e.split(`,`),n=atob(t[1]),r=n.length,i=new Uint8Array(r);for(let e=0;e<r;e++)i[e]=n.charCodeAt(e);return new Blob([i],{type:jMt})}function NMt(e){let t=new ClipboardItem({[jMt]:MMt(e)});navigator.clipboard.write([t]).catch(e=>{console.error(`Could not copy image using clipboard API: `,e)})}function PMt(){function e(){let e=document.createElement(`input`);return e.style.position=`absolute`,e.style.height=`1px`,e.style.width=`1px`,e.style.opacity=`0`,e}let t=document.activeElement,n=e();return document.body.appendChild(n),n.focus(),()=>{n.blur(),document.body.removeChild(n),t instanceof HTMLElement&&t.focus()}}var FMt=[LQ.SPECIAL_PASTE_COL_WIDTH,LQ.SPECIAL_PASTE_VALUE,LQ.SPECIAL_PASTE_FORMAT,LQ.SPECIAL_PASTE_FORMULA],Q5=class extends P{constructor(e,t,n,r,i,a){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._sheetSkeletonService=n,this._drawingService=r,this._clipboardInterfaceService=i,this._commandService=a,k5(this,`_copyInfo`,void 0),this._initCopyPaste()}get _focusedDrawings(){return this._drawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:`SHEET_IMAGE_UI_PLUGIN`,onBeforeCopy:(e,t,n,r)=>{this._copyInfo=null;let i=this._focusedDrawings;if(i.length>0){let[t]=i;if(t.drawingType!==lm.DRAWING_IMAGE)return;if(r===MQ.CUT){let n={unitId:e,drawings:[t]};this._commandService.executeCommand(b5.id,n)}setTimeout(()=>{let e=PMt();t.drawingType===lm.DRAWING_IMAGE&&t.imageSourceType===nb.BASE64?NMt(t.source):this._clipboardInterfaceService.writeText(``),e()},200);let n={unitId:t.unitId,subUnitId:t.subUnitId,drawings:[t]};this._copyInfo=n}else{let r=this._createDrawingsCopyInfoByRange(e,t,n);this._copyInfo=r}},onPasteCells:(e,t,n,r)=>{if(!this._copyInfo)return{redos:[],undos:[]};let{copyType:i=MQ.COPY,pasteType:a}=r,{range:o,unitId:s,subUnitId:c}=e||{},{range:l,unitId:u,subUnitId:d}=t;return this._copyInfo.copyRange?this._generateRangeDrawingsPasteMutations({unitId:u,subUnitId:d,pasteRange:l,pasteType:a},{unitId:s,subUnitId:c,copyType:i,copyRange:o}):this._generateSingleDrawingPasteMutations({pasteTo:t,pasteType:a},MQ.COPY)},onPastePlainText:(e,t)=>({undos:[],redos:[]}),onPasteUnrecognized:e=>this._copyInfo?this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:LQ.DEFAULT_PASTE},MQ.COPY):{undos:[],redos:[]},onPasteFiles:(e,t)=>{if(this._copyInfo)return this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:LQ.DEFAULT_PASTE},MQ.COPY);{let e=t.filter(e=>e.type.includes(`image`));if(e.length)return{undos:[],redos:[{id:P5.id,params:{files:e}}]}}return{undos:[],redos:[]}}})}_createDrawingsCopyInfoByRange(e,t,n){let r=this._sheetSkeletonService.getSkeleton(e,t);if(!r)return;let i=gZ(r,n);if(!i)return;let{startX:a,endX:o,startY:s,endY:c}=i,l=this._drawingService.getDrawingData(e,t),u=this._focusedDrawings.slice();if(Object.keys(l).forEach(e=>{let t=l[e];if(t.drawingType!==lm.DRAWING_IMAGE)return;let{transform:n}=t;if(t.anchorType!==m5.Both||!n)return;let{left:r=0,top:i=0,width:d=0,height:f=0}=n,{drawingStartX:p,drawingEndX:m,drawingStartY:h,drawingEndY:g}={drawingStartX:r,drawingEndX:r+d,drawingStartY:i,drawingEndY:i+f};a<=p&&m<=o&&s<=h&&g<=c&&u.push(t)}),u.length)return{copyRange:n,drawings:u,unitId:e,subUnitId:t}}_generateSingleDrawingPasteMutations(e,t){let{pasteType:n,pasteTo:r}=e;if(FMt.includes(n))return{redos:[],undos:[]};let{unitId:i,subUnitId:a,range:o}=r,s=this._sheetSkeletonService.getSkeleton(i,a);if(!s)return{redos:[],undos:[]};let{drawings:c}=this._copyInfo,l=MK(o);return this._generateMutations(c,{unitId:i,subUnitId:a,isCut:t===MQ.CUT,getTransform:(e,t)=>{let n=gZ(s,{startRow:l.startRow,endRow:l.endRow,startColumn:l.startColumn,endColumn:l.endColumn}),r={...e,left:n?.startX,top:n?.startY};return{transform:r,sheetTransform:f5(r,s)??t,axisAlignSheetTransform:p5(r,s)??t}}})}_generateMutations(e,t){let{unitId:n,subUnitId:r,getTransform:i,isCut:a}=t,o=[],s=[],{_drawingService:c}=this;return e.forEach(e=>{let{transform:t,sheetTransform:l}=e;if(!t)return;let u=i(t,l),d={...e,unitId:n,subUnitId:r,drawingId:a?e.drawingId:rp(),transform:u.transform,sheetTransform:u.sheetTransform,axisAlignSheetTransform:u.axisAlignSheetTransform};if(a){let{undo:e,redo:t,objects:i}=c.getBatchUpdateOp([d]);o.push({id:_5.id,params:{unitId:n,subUnitId:r,type:g5.UPDATE,op:t,objects:i}}),s.push({id:_5.id,params:{unitId:n,subUnitId:r,type:g5.UPDATE,op:e,objects:i}})}else{let{undo:e,redo:t,objects:i}=c.getBatchAddOp([d]);o.push({id:_5.id,params:{op:t,unitId:n,subUnitId:r,objects:i,type:g5.INSERT}}),s.push({id:_5.id,params:{op:e,unitId:n,subUnitId:r,objects:i,type:g5.REMOVE}})}}),{redos:o,undos:s}}_generateRangeDrawingsPasteMutations(e,t){if(!this._copyInfo)return{redos:[],undos:[]};let{unitId:n,subUnitId:r,pasteRange:i,pasteType:a}=e,{unitId:o,subUnitId:s,copyRange:c,copyType:l}=t;if(FMt.includes(a))return{redos:[],undos:[]};let u=this._sheetSkeletonService.getSkeleton(n,r);if(!u)return{redos:[],undos:[]};let{drawings:d}=this._copyInfo;if(!c)return this._generateSingleDrawingPasteMutations({pasteTo:{unitId:n,subUnitId:r,range:MK(i)},pasteType:a},l);let f=this._sheetSkeletonService.getSkeleton(o,s);if(!f)return{redos:[],undos:[]};let{ranges:[p,m],mapFunc:h}=lQ([c,i]),{row:g,col:_}=h(p.startRow,p.startColumn),{row:v,col:y}=h(m.startRow,m.startColumn),b=gZ(f,{startRow:g,endRow:g,startColumn:_,endColumn:_}),x=gZ(u,{startRow:v,endRow:v,startColumn:y,endColumn:y});if(!b||!x)return{redos:[],undos:[]};let S=x.startX-b.startX,C=x.startY-b.startY,w=v-g,T=y-_;return this._generateMutations(d,{unitId:n,subUnitId:r,getTransform:(e,t)=>{let n={...e,left:(e?.left??0)+S,top:(e?.top??0)+C};return{transform:n,sheetTransform:{...t,to:{...t.to,row:t.to.row+w,column:t.to.column+T},from:{...t.from,row:t.from.row+w,column:t.from.column+T}},axisAlignSheetTransform:p5(n,u)??t}},isCut:l===MQ.CUT})}};Q5=j5([A5(0,RQ),A5(1,zE),A5(2,j(GK)),A5(3,bN),A5(4,nN),A5(5,R)],Q5);var $5=[Yw.IMAGE,Yw.SHAPE,Yw.CHART,Yw.DRAWING_DOM],e7=class extends P{constructor(e,t,n,r,i,a,o,s){super(),this._commandService=e,this._localeService=t,this._renderManagerService=n,this._permissionService=r,this._univerInstanceService=i,this._userManagerService=a,this._sheetPermissionCheckController=o,this._sheetDrawingService=s,this._initDrawingVisible(),this._initDrawingEditable(),this._initViewPermissionChange(),this._initEditPermissionChange(),this._initCommandPermissionCheck()}_initDrawingVisible(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(M.UNIVER_SHEET),t=this._userManagerService.currentUser$,n=_s([e,t]);this.disposeWithMe(n.pipe(sc(([e,t])=>e?e.activeSheet$.pipe(lc(t=>{if(!t){this._sheetDrawingService.setDrawingVisible(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new uX(n).id,new EX(n,r).id]).every(e=>e.value)?this._sheetDrawingService.setDrawingVisible(!0):this._handleDrawingVisibilityFalse(e,t)})):(this._sheetDrawingService.setDrawingVisible(!1),bo))).subscribe())}_handleDrawingVisibilityFalse(e,t){this._sheetDrawingService.setDrawingVisible(!1);let n=e.getUnitId(),r=t.getSheetId(),i=this._sheetDrawingService.getDrawingData(n,r),a=Object.values(i),o=this._renderManagerService.getRenderById(n)?.scene;o&&o.getAllObjectsByOrder().forEach(e=>{$5.includes(e.objectType)&&a.some(t=>e.oKey.includes(t.drawingId))&&o.removeObject(e)})}_initDrawingEditable(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(M.UNIVER_SHEET),t=this._userManagerService.currentUser$,n=_s([e,t]);this.disposeWithMe(n.pipe(sc(([e,t])=>e?e.activeSheet$.pipe(lc(t=>{if(!t){this._sheetDrawingService.setDrawingEditable(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new rX(n).id,new hX(n,r).id]).every(e=>e.value)?this._sheetDrawingService.setDrawingEditable(!0):this._handleDrawingEditableFalse(e,t)})):(this._sheetDrawingService.setDrawingEditable(!1),bo))).subscribe())}_handleDrawingEditableFalse(e,t){this._sheetDrawingService.setDrawingEditable(!1);let n=e.getUnitId(),r=t.getSheetId(),i=this._sheetDrawingService.getDrawingData(n,r),a=Object.values(i),o=this._renderManagerService.getRenderById(n)?.scene;o&&o.getAllObjectsByOrder().forEach(e=>{$5.includes(e.objectType)&&a.some(t=>e.oKey.includes(t.drawingId))&&o.detachTransformerFrom(e)})}_initViewPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(M.UNIVER_SHEET),t=this._userManagerService.currentUser$;this.disposeWithMe(_s([e,t]).pipe(sc(([e,t])=>e?e.activeSheet$.pipe(sc(t=>{if(!t)return bo;let n=e.getUnitId(),r=t.getSheetId(),i=this._renderManagerService.getRenderById(n)?.scene;if(!i)return bo;let a=i.getTransformerByCreate();return this._permissionService.composePermission$([new uX(n).id,new EX(n,r).id]).pipe(os(e=>e.every(e=>e.value)),Ys()).pipe(os(e=>({permission:e,scene:i,transformer:a,unitId:n,subUnitId:r})))})):bo)).subscribe({next:({permission:e,scene:t,transformer:n,unitId:r,subUnitId:i})=>{this._sheetDrawingService.setDrawingVisible(e);let a=t.getAllObjectsByOrder(),o=this._sheetDrawingService.getDrawingData(r,i),s=Object.values(o);e?this._sheetDrawingService.addNotification(s):(a.forEach(e=>{$5.includes(e.objectType)&&s.some(t=>e.oKey.includes(t.drawingId))&&t.removeObject(e)}),n.clearSelectedObjects())},complete:()=>{this._sheetDrawingService.setDrawingVisible(!0);let e=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET),t=e?.getActiveSheet(),n=e?.getUnitId(),r=t?.getSheetId();if(!n||!r)return;let i=this._sheetDrawingService.getDrawingData(n,r),a=Object.values(i);this._sheetDrawingService.addNotification(a)}}))}_initEditPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(M.UNIVER_SHEET),t=this._userManagerService.currentUser$;this.disposeWithMe(_s([e,t]).pipe(sc(([e,t])=>e?e.activeSheet$.pipe(sc(t=>{if(!t)return bo;let n=e.getUnitId(),r=t.getSheetId(),i=this._renderManagerService.getRenderById(n)?.scene;if(!i)return bo;let a=i.getTransformerByCreate();return this._permissionService.composePermission$([new rX(n).id,new hX(n,r).id]).pipe(os(e=>e.every(e=>e.value)),Ys()).pipe(os(e=>({permission:e,scene:i,transformer:a,unitId:n,subUnitId:r})))})):bo)).subscribe({next:({permission:e,scene:t,transformer:n,unitId:r,subUnitId:i})=>{this._sheetDrawingService.setDrawingEditable(e);let a=t.getAllObjectsByOrder(),o=this._sheetDrawingService.getDrawingData(r,i),s=Object.values(o);e?(a.forEach(e=>{$5.includes(e.objectType)&&s.some(t=>e.oKey.includes(t.drawingId))&&t.attachTransformerTo(e)}),this._sheetDrawingService.addNotification(s)):(a.forEach(e=>{$5.includes(e.objectType)&&s.some(t=>e.oKey.includes(t.drawingId))&&t.detachTransformerFrom(e)}),n.clearSelectedObjects())},complete:()=>{let e=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET);if(!e)return;let t=e.getUnitId(),n=e.getActiveSheet();if(!n)return;let r=n.getSheetId(),i=this._renderManagerService.getRenderById(t)?.scene;if(!i)return;let a=this._sheetDrawingService.getDrawingData(t,r),o=Object.values(a);this._sheetDrawingService.setDrawingEditable(!0),i.getAllObjectsByOrder().forEach(e=>{$5.includes(e.objectType)&&o.some(t=>e.oKey.includes(t.drawingId))&&i.detachTransformerFrom(e)})}}))}_initCommandPermissionCheck(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{let t,n;if(e.id===y5.id||e.id===b5.id||e.id===S5.id){var r,i;let{drawings:a}=e.params;t=a==null||(r=a[0])==null?void 0:r.unitId,n=a==null||(i=a[0])==null?void 0:i.subUnitId}else if(e.id===x5.id){let r=e.params;t=r.unitId,n=r.subUnitId}t&&n&&(this._sheetPermissionCheckController.permissionCheckWithoutRange({workbookTypes:[rX],worksheetTypes:[hX]},t,n)||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localeService.t(`sheets-drawing-ui.permission.dialog.editErr`)))}))}};e7=j5([A5(0,j(R)),A5(1,j(Xb)),A5(2,zE),A5(3,ex),A5(4,z),A5(5,j(Ry)),A5(6,j(QX)),A5(7,j(h5))],e7);var IMt=`univer-sheet-float-dom-`;function LMt(e,t,n,r,i,a=!1){let{scaleX:o,scaleY:s}=t.getAncestorScale(),c=t.getViewport(eT.VIEW_MAIN),{startColumn:l,startRow:u,xSplit:d,ySplit:f}=r.getFreeze(),p={left:!0,top:!0};if(!c)return{...e,absolute:p};let{left:m,right:h,top:g,bottom:_}=e,{top:v,left:y,viewportScrollX:b,viewportScrollY:x}=c,{boundsOfViewArea:S,scrollDirectionResponse:C}=i||{},{rowHeaderWidth:w,columnHeaderHeight:T}=n,E={top:a?0:T,left:a?0:w};S&&(F.isDefine(E.top)&&(E.top=S.top),F.isDefine(E.left)&&(E.left=S.left)),C===`HORIZONTAL`&&(x=0),C===`VERTICAL`&&(b=0);let D=0,O=0,k=n.rowStartY(u-f)+T,A=n.colStartX(l-d)+w,ee=n.rowStartY(u)+T,te=n.colStartX(l)+w;if(d===0)p.left=!1,D=(m-b)*o,O=(h-b)*o;else{let e=m-(A-w),t=h-(A-w);h<te?(D=e*o,O=t*o):m<=te&&h>=te?(D=e*o,O=Math.max(y,(h-b)*o)):m>te&&(p.left=!1,D=Math.max((m-b)*o,y),O=Math.max((h-b)*o,y))}let ne=0,re=0;if(f===0)p.top=!1,ne=(g-x)*s,re=(_-x)*s;else{let e=g-(k-T),t=_-(k-T);_<ee?(ne=e*s,re=t*s):g<=ee&&_>=ee?(ne=e*s,re=Math.max(v,(_-x)*s)):g>ee&&(p.top=!1,ne=Math.max((g-x)*s,v),re=Math.max((_-x)*s,v))}return D=Math.max(D,E.left),ne=Math.max(ne,E.top),O=Math.max(O,E.left),re=Math.max(re,E.top),{left:D,right:O,top:ne,bottom:re,absolute:p}}var t7=(e,t,n,r,i)=>{let{left:a,top:o,width:s,height:c,angle:l}=e,u=LMt({left:a,right:a+s,top:o,bottom:o+c},t,n,r,i),{scaleX:d,scaleY:f}=t.getAncestorScale();return{startX:u.left,endX:u.right,startY:u.top,endY:u.bottom,rotate:l,width:s*d,height:c*f,absolute:u.absolute}},n7=class extends P{constructor(e,t,n,r,i,a,o){super(),this._renderManagerService=e,this._univerInstanceService=t,this._commandService=n,this._drawingManagerService=r,this._canvasFloatDomService=i,this._sheetDrawingService=a,this._lifecycleService=o,k5(this,`_domLayerInfoMap`,new Map),k5(this,`_transformChange$`,new ao),k5(this,`transformChange$`,this._transformChange$.asObservable()),k5(this,`_add$`,new ao),k5(this,`add$`,this._add$.asObservable()),k5(this,`_remove$`,new ao),k5(this,`remove$`,this._remove$.asObservable()),this._drawingAddListener(),this._featureUpdateListener(),this._deleteListener(),this._bindScrollEvent()}_bindScrollEvent(){this._lifecycleService.lifecycle$.pipe(Ls(e=>e===Wb.Rendered),Js(1)).subscribe(()=>{this._scrollUpdateListener()})}getFloatDomInfo(e){return this._domLayerInfoMap.get(e)}getFloatDomsBySubUnitId(e,t){return Array.from(this._domLayerInfoMap.values()).filter(n=>n.subUnitId===t&&n.unitId===e)}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e),n=t?.scene;return t==null||n==null?null:{scene:n,transformer:n.getTransformerByCreate(),renderUnit:t,canvas:t.engine.getCanvasElement()}}_drawingAddListener(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e,i=bG(this._univerInstanceService,{unitId:t,subUnitId:n}),a=this._drawingManagerService.getDrawingByParam(e),o=this._univerInstanceService.getUnit(t,M.UNIVER_SHEET);if(!o)return;let s=o.getActiveSheet().getSheetId();if(!a||!i)return;let c=this._renderManagerService.getRenderById(t)?.with(TQ).getSkeletonParam(n);if(!c)return;let{transform:l,drawingType:u,data:d,hidden:f}=a;if(u!==lm.DRAWING_DOM&&u!==lm.DRAWING_CHART)return;let p=this._getSceneAndTransformerByDrawingSearch(t);if(p==null||f)return;let{scene:m,canvas:h}=p;if(l==null)return!0;if(s!==n)return;let{left:g,top:_,width:v,height:y,angle:b,flipX:x,flipY:S,skewX:C,skewY:w}=l,T=DN({unitId:t,subUnitId:n,drawingId:r}),E=m.getObject(T);if(E!=null){E.transformByState({left:g,top:_,width:v,height:y,angle:b,flipX:x,flipY:S,skewX:C,skewY:w});return}let D={left:g,top:_,width:v,height:y,zIndex:this._drawingManagerService.getDrawingOrder(t,n).length-1},O=u===lm.DRAWING_CHART;D.rotateEnabled=!1,O&&(D.fill=d?d.backgroundColor:`white`,d&&d.border&&(D.stroke=d.border),D.paintFirst=`stroke`,D.strokeWidth=1,D.borderEnabled=!1,D.radius=8);let k=new CE(T,D);O?k.setObjectType(Yw.CHART):u===lm.DRAWING_DOM&&k.setObjectType(Yw.DRAWING_DOM),m.addObject(k,4),a.allowTransform!==!1&&m.attachTransformerTo(k);let A=new Gf,ee=new so(t7(k,p.renderUnit.scene,c.skeleton,i.worksheet)),te=`${IMt}${rp(6)}`,ne={dispose:A,rect:k,position$:ee,unitId:t,subUnitId:n,id:r,domId:te};this._canvasFloatDomService.addFloatDom({position$:ee,id:r,domId:te,componentKey:a.componentKey,onPointerDown:e=>{h.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{h.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{h.dispatchEvent(new PointerEvent(e.type,e))},onWheel:e=>{h.dispatchEvent(new WheelEvent(e.type,e))},data:d,unitId:t});let re=k.onTransformChange$.subscribeEvent(()=>{let e=t7(k,p.renderUnit.scene,c.skeleton,i.worksheet);ee.next(e)});A.add(()=>{this._canvasFloatDomService.removeFloatDom(r)}),re&&A.add(re),this._domLayerInfoMap.set(r,ne)})})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e,i=DN({unitId:t,subUnitId:n,drawingId:r}),a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;let{transformer:o,scene:s}=a,c=s.getObject(i);if(c?.oKey){var l;o.clearControlByIds([c?.oKey]),(l=s.getTransformer())==null||l.clearSelectedObjects()}})}))}_scrollUpdateListener(){let e=(e,t)=>{let n=this._getSceneAndTransformerByDrawingSearch(e),r=Array.from(this._domLayerInfoMap.keys()).map(e=>({id:e,...this._domLayerInfoMap.get(e)})).filter(n=>n.subUnitId===t&&n.unitId===e).map(e=>e.id),i=bG(this._univerInstanceService,{unitId:e,subUnitId:t}),a=this._renderManagerService.getRenderById(e)?.with(TQ).getSkeletonParam(t);n&&i&&a&&r.forEach(e=>{let t=this._domLayerInfoMap.get(e);if(t){let e=t7(t.rect,n.renderUnit.scene,a.skeleton,i.worksheet,t);t.position$.next(e)}})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(M.UNIVER_SHEET).pipe(sc(e=>e?e.activeSheet$:ts(null)),os(e=>{if(!e)return null;let t=e.getUnitId(),n=this._renderManagerService.getRenderById(t);return n?{render:n,unitId:t,subUnitId:e.getSheetId()}:null}),sc(e=>e?Ny(e.render.scene.getViewport(eT.VIEW_MAIN).onScrollAfter$).pipe(os(()=>({unitId:e.unitId,subUnitId:e.subUnitId}))):ts(null))).subscribe(t=>{if(!t)return;let{unitId:n,subUnitId:r}=t;e(n,r)})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===p1.id){let{unitId:n}=t.params;Array.from(this._domLayerInfoMap.values()).filter(e=>e.unitId===n).map(e=>e.subUnitId).forEach(t=>{e(n,t)})}else if(t.id===xY.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}else if(t.id===iq.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}}))}updateFloatDomProps(e,t,n,r){let i=this._domLayerInfoMap.get(n),a=this._getSceneAndTransformerByDrawingSearch(e);if(i&&a){let{scene:i}=a,o=DN({unitId:e,subUnitId:t,drawingId:n}),s=i.getObject(o);s&&s instanceof CE&&s.setProps(r)}}_getPosition(e,t){let{startX:n,endX:r,startY:i,endY:a}=e,o=this._renderManagerService.getRenderById(t)?.with(bQ);if(o==null)return;let s=o.getCellWithCoordByOffset(n,i);if(s==null)return;let c={column:s.actualColumn,columnOffset:n-s.startX,row:s.actualRow,rowOffset:i-s.startY},l=o.getCellWithCoordByOffset(r,a);if(l!=null)return{from:c,to:{column:l.actualColumn,columnOffset:r-l.startX,row:l.actualRow,rowOffset:a-l.startY}}}_featureUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(e=>{e.forEach(e=>{let t=this._drawingManagerService.getDrawingByParam(e);if(!t||t.drawingType!==lm.DRAWING_DOM&&t.drawingType!==lm.DRAWING_CHART)return;let n={...t.transform};this._transformChange$.next({id:e.drawingId,value:n}),this._canvasFloatDomService.updateFloatDom(e.drawingId,{...t});let r=this._getSceneAndTransformerByDrawingSearch(e.unitId);if(r&&t.drawingType!==lm.DRAWING_CHART){let{scene:n}=r,i=this._domLayerInfoMap.get(e.drawingId);i?.rect&&(t.allowTransform===!1?n.detachTransformerFrom(i.rect):n.attachTransformerTo(i.rect))}})}))}_deleteListener(){this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}addFloatDomToPosition(e,t){let n=bG(this._univerInstanceService,{unitId:e.unitId,subUnitId:e.subUnitId});if(!n)throw Error(`cannot find current target!`);let{unitId:r,subUnitId:i}=n,{initPosition:a,componentKey:o,data:s,allowTransform:c=!0}=e,l=t??rp(),u=this._getPosition(a,r);if(u==null)return;let d={unitId:r,subUnitId:i,drawingId:l,drawingType:e.type||lm.DRAWING_DOM,componentKey:o,sheetTransform:u,transform:{left:a.startX,top:a.startY,width:a.endX-a.startX,height:a.endY-a.startY},axisAlignSheetTransform:u,data:s,allowTransform:c};return this._commandService.executeCommand(y5.id,{unitId:r,drawings:[d]}),this._add$.next({unitId:r,subUnitId:i,id:l}),{id:l,dispose:()=>{this._removeDom(l,!0)}}}_removeDom(e,t=!1){let n=this._domLayerInfoMap.get(e);if(!n)return;let{unitId:r,subUnitId:i}=n;this._domLayerInfoMap.delete(e),n.dispose.dispose();let a=this._getSceneAndTransformerByDrawingSearch(r);if(a&&a.scene.removeObject(n.rect),t){let t=this._drawingManagerService.getDrawingByParam({unitId:r,subUnitId:i,drawingId:e});if(!t)return;let{redo:n,objects:a}=this._sheetDrawingService.getBatchRemoveOp([t]);this._commandService.syncExecuteCommand(_5.id,{unitId:r,subUnitId:i,op:n,objects:a,type:g5.REMOVE})}}removeFloatDom(e,t=!0){this._removeDom(e,t)}addFloatDomToRange(e,t,n,r){let i=bG(this._univerInstanceService,{unitId:t.unitId,subUnitId:t.subUnitId});if(!i)throw Error(`cannot find current target!`);let{unitId:a,subUnitId:o}=i,s=this._getSceneAndTransformerByDrawingSearch(a);if(!s)return;let c=this._renderManagerService.getRenderById(a);if(!c)return;let l=this._renderManagerService.getRenderById(a)?.with(TQ).getSkeletonParam(o);if(!l)return;let{componentKey:u,data:d,allowTransform:f=!0}=t,p=r??rp(),{position:m,position$:h}=this._createRangePositionObserver(e,c,l.skeleton),g=this._getPosition(m,a);if(g==null)return;let{scaleX:_}=s.scene.getAncestorScale(),v=i7(m,n,_),y={unitId:a,subUnitId:o,drawingId:p,drawingType:t.type||lm.DRAWING_DOM,componentKey:u,sheetTransform:g,axisAlignSheetTransform:g,transform:{left:v.startX,top:v.startY,width:v.width,height:v.height},data:d,allowTransform:f};{let{unitId:e,subUnitId:r,drawingId:i}=y,a=bG(this._univerInstanceService,{unitId:e,subUnitId:r}),o=y,s=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET);if(!s)return;let c=s.getActiveSheet().getSheetId();if(!o||!a)return;let l=this._renderManagerService.getRenderById(e)?.with(TQ);if(!l)return;let u=l.getSkeletonParam(r);if(!u)return;let{transform:d,drawingType:f,data:g}=o;if(f!==lm.DRAWING_DOM&&f!==lm.DRAWING_CHART)return;let _=this._getSceneAndTransformerByDrawingSearch(e);if(_==null)return;let{scene:v,canvas:b}=_;if(d==null||c!==r)return;let{left:x,top:S,width:C,height:w,angle:T,flipX:E,flipY:D,skewX:O,skewY:k}=d,A=DN({unitId:e,subUnitId:r,drawingId:i}),ee=v.getObject(A);if(ee!=null){ee.transformByState({left:x,top:S,width:C,height:w,angle:T,flipX:E,flipY:D,skewX:O,skewY:k});return}let te={left:x,top:S,width:C,height:w,zIndex:this._drawingManagerService.getDrawingOrder(e,r).length-1},ne=f===lm.DRAWING_CHART;ne&&(te.fill=g?g.backgroundColor:`white`,te.rotateEnabled=!1,g&&g.border&&(te.stroke=g.border),te.paintFirst=`stroke`,te.strokeWidth=1,te.borderEnabled=!1,te.radius=8);let re=new CE(A,te);ne&&re.setObjectType(Yw.CHART),v.addObject(re,4),o.allowTransform!==!1&&v.attachTransformerTo(re);let ie=new Gf,ae=v.getMainViewport(),{rowHeaderWidth:oe,columnHeaderHeight:se}=u.skeleton,ce={dispose:ie,rect:re,boundsOfViewArea:{top:se,left:oe,bottom:ae.bottom,right:ae.right},domAnchor:n,unitId:e,subUnitId:r,id:i},le=new so(t7(re,_.renderUnit.scene,u.skeleton,a.worksheet,ce));ce.position$=le;let ue={position$:le,id:i,componentKey:o.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{b.dispatchEvent(new WheelEvent(e.type,e))},data:g,unitId:e};t.eventPassThrough&&(ue={...ue,onPointerDown:e=>{b.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{b.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{b.dispatchEvent(new PointerEvent(e.type,e))}}),this._canvasFloatDomService.addFloatDom(ue),this.disposeWithMe(h.subscribe(t=>{let o=i7({rotate:0,startX:t.startX,startY:t.startY,endX:t.endX,endY:t.endY,width:n.width??t.width,height:n.height??t.height,absolute:{left:m.absolute.left,top:m.absolute.top}},n),s=t7(new CE(DN({unitId:e,subUnitId:r,drawingId:i}),{left:o.startX,top:o.startY,width:n.width??t.width,height:n.height??t.height,zIndex:this._drawingManagerService.getDrawingOrder(e,r).length-1}),_.renderUnit.scene,u.skeleton,a.worksheet,ce);le.next(s)}));let de=(this._renderManagerService.getRenderById(e)?.with(TQ))?.currentSkeleton$.subscribe(e=>{e&&u.sheetId!==e.sheetId&&this._removeDom(p,!0)});de&&ie.add(de);let fe=re.onTransformChange$.subscribeEvent(()=>{let e=t7(re,_.renderUnit.scene,u.skeleton,a.worksheet,ce);le.next(e)});ie.add(()=>{this._canvasFloatDomService.removeFloatDom(i)}),fe&&ie.add(fe),this._domLayerInfoMap.set(i,ce)}return{id:p,dispose:()=>{this._removeDom(p,!0)}}}addFloatDomToColumnHeader(e,t,n,r){let i=bG(this._univerInstanceService,{unitId:t.unitId,subUnitId:t.subUnitId});if(!i)throw Error(`cannot find current target!`);let{unitId:a,subUnitId:o}=i;if(!this._getSceneAndTransformerByDrawingSearch(a))return;let s=this._renderManagerService.getRenderById(a);if(!s)return;let c=this._renderManagerService.getRenderById(a)?.with(TQ).getSkeletonParam(o);if(!c)return;let{componentKey:l,data:u,allowTransform:d=!0}=t,f=r??rp(),{position:p,position$:m}=this._createRangePositionObserver({startRow:0,endRow:0,startColumn:e,endColumn:e},s,c.skeleton),h=p;h.startY=0;let g=this._getPosition(p,a);if(g==null)return;let _={unitId:a,subUnitId:o,drawingId:f,drawingType:t.type||lm.DRAWING_DOM,componentKey:l,sheetTransform:g,axisAlignSheetTransform:g,transform:{left:h.startX,top:h.startY,width:h.width,height:h.height},data:u,allowTransform:d};{let{unitId:e,subUnitId:r,drawingId:i}=_,a=bG(this._univerInstanceService,{unitId:e,subUnitId:r}),o=_,s=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET);if(!s)return;let l=s.getActiveSheet().getSheetId();if(!o||!a)return;let u=this._renderManagerService.getRenderById(e)?.with(TQ);if(!u)return;let d=u.getSkeletonParam(r);if(!d)return;let{transform:g,data:v}=o,y=this._getSceneAndTransformerByDrawingSearch(e);if(y==null)return;let{scene:b,canvas:x}=y;if(g==null||l!==r)return;let{left:S,top:C,width:w,height:T,angle:E,flipX:D,flipY:O,skewX:k,skewY:A}=g,ee=DN({unitId:e,subUnitId:r,drawingId:i}),te=b.getObject(ee);if(te!=null){te.transformByState({left:S,top:C,width:w,height:T,angle:E,flipX:D,flipY:O,skewX:k,skewY:A});return}let ne=i7({rotate:0,startX:h.startX,startY:0,endX:p.endX,endY:p.endY,width:n.width,height:n.height,absolute:{left:p.absolute.left,top:p.absolute.top}},n),re=new CE(ee,{left:ne.startX,top:ne.startY,width:ne.width,height:ne.height,zIndex:this._drawingManagerService.getDrawingOrder(e,r).length-1});b.addObject(re,4),o.allowTransform!==!1&&b.attachTransformerTo(re);let ie=new Gf,ae=b.getMainViewport(),oe={dispose:ie,rect:re,unitId:e,subUnitId:r,id:i,boundsOfViewArea:{top:0,left:ae.left,bottom:ae.bottom,right:ae.right},domAnchor:n,scrollDirectionResponse:`HORIZONTAL`},se=new so(t7(re,y.renderUnit.scene,d.skeleton,a.worksheet,oe));oe.position$=se;let ce={position$:se,id:i,componentKey:o.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{x.dispatchEvent(new WheelEvent(e.type,e))},data:v,unitId:e};t.eventPassThrough&&(ce={...ce,onPointerDown:e=>{x.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{x.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{x.dispatchEvent(new PointerEvent(e.type,e))}}),this._canvasFloatDomService.addFloatDom(ce);let le=re.onTransformChange$.subscribeEvent(()=>{let e=t7(re,y.renderUnit.scene,d.skeleton,a.worksheet,oe);se.next(e)});this.disposeWithMe(m.subscribe(t=>{let o=i7({rotate:0,startX:t.startX,startY:0,endX:t.endX,endY:t.endY,width:n.width,height:n.height,absolute:{left:p.absolute.left,top:p.absolute.top}},n),s=t7(new CE(DN({unitId:e,subUnitId:r,drawingId:i}),{left:o.startX,top:0,width:n.width,height:n.height,zIndex:this._drawingManagerService.getDrawingOrder(e,r).length-1}),y.renderUnit.scene,d.skeleton,a.worksheet,oe);se.next(s)})),(this._renderManagerService.getRenderById(e)?.with(TQ))?.currentSkeleton$.subscribe(e=>{e&&c.sheetId!==e.sheetId&&this._removeDom(f,!0)}),ie.add(()=>{this._canvasFloatDomService.removeFloatDom(i)}),le&&ie.add(le),this._domLayerInfoMap.set(i,oe)}return{id:f,dispose:()=>{this._removeDom(f,!0)}}}_createRangePositionObserver(e,t,n){let{startRow:r,startColumn:i}=e,a=r7(r,i,n),o=new so(a),s=r7(e.endRow,e.endColumn,n),c=new so(s),l=()=>{let t=r7(r,i,n),a=r7(e.endRow,e.endColumn,n);o.next(t),c.next(a)},u=new Gf;return u.add(t.engine.clientRect$.subscribe(()=>l())),u.add(this._commandService.onCommandExecuted(e=>{if(e.id===bK.id&&e.params.rowsAutoHeightInfo.findIndex(e=>e.row===r)>-1){l();return}(CK.indexOf(e.id)>-1||e.id===i1.id||e.id===p1.id)&&l()})),{position$:o.pipe(os(t=>{let r=r7(e.endRow,e.endColumn,n);return{rotate:0,width:r.right-t.left,height:r.bottom-t.top,absolute:{left:!0,top:!0},startX:t.left,startY:t.top,endX:r.right,endY:r.bottom}})),position:{rotate:0,width:s.right-a.left,height:s.bottom-a.top,absolute:{left:!0,top:!0},startX:a.left,startY:a.top,endX:s.right,endY:s.bottom},updateRowCol:(e,t)=>{r=e,i=t,l()},topLeftPos$:o,rightBottomPos$:c,disposable:u}}};n7=j5([A5(0,j(zE)),A5(1,z),A5(2,j(R)),A5(3,bN),A5(4,j(SM)),A5(5,h5),A5(6,j(qb))],n7);function r7(e,t,n){let r=n.getCellWithCoordByIndex(e,t),i=r.isMergedMainCell?r.mergeInfo:r;return{left:i.startX,right:i.endX,top:i.startY,bottom:i.endY}}function i7(e,t,n){n??=1;let r=e.endX-e.startX,i=e.endY-e.startY,a=t?.width??r,o=t?.height??i,s=0,c=0;if(t){if(t.horizonOffsetAlign===`right`){let i=a7(t.marginX,r*n);s=e.endX-i-a}else s=e.startX+a7(t.marginX,r);if(t.verticalOffsetAlign===`bottom`){let r=a7(t.marginY,i*n);c=e.endY-r-o}else c=e.startY+a7(t.marginY,i)}return{rotate:0,startX:s,startY:c,endX:e.endX,endY:e.endY,width:a,height:o,absolute:{left:e.absolute.left,top:e.absolute.top}}}function a7(e,t){return e===void 0?0:typeof e==`number`?e:t*Number.parseFloat(e)/100}var RMt=e=>{let{floatDomInfos:t,scene:n,skeleton:r,worksheet:i}=e;return(0,H.jsx)(`div`,{style:{position:`absolute`,top:0,left:0},children:(0,V.useMemo)(()=>t.map(e=>{let{width:t,height:a,angle:o,left:s,top:c}=e.transform,l=LMt({left:s??0,right:(s??0)+(t??0),top:c??0,bottom:(c??0)+(a??0)},n,r,i,void 0,!0),{scaleX:u,scaleY:d}=n.getAncestorScale(),f={startX:l.left,endX:l.right,startY:l.top,endY:l.bottom,rotate:o,width:t*u,height:a*d,absolute:l.absolute},p={position$:new so(f),position:f,id:e.drawingId,componentKey:e.componentKey,onPointerMove:()=>{},onPointerDown:()=>{},onPointerUp:()=>{},onWheel:()=>{},unitId:e.unitId,data:e.data};return[e.drawingId,p]}),[t,n,r,i]).map(([e,t])=>(0,H.jsx)(cYe,{layer:t,id:e,position:t.position},e))})},o7=class extends P{constructor(e,t,n,r,i,a,o){super(),this._sheetPrintInterceptorService=e,this._drawingRenderService=t,this._drawingManagerService=n,this._renderManagerService=r,this._canvasFloatDomManagerService=i,this._componetManager=a,this._injector=o,this._initPrinting(),this._initPrintingDom()}_initPrinting(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,{handler:(e,t,n)=>{let{unitId:r,scene:i,subUnitId:a}=t,o=this._drawingManagerService.getDrawingDataForUnit(r)?.[a];return o&&o.order.forEach(e=>{let t=o.data[e];t.drawingType!==lm.DRAWING_CHART&&t.drawingType!==lm.DRAWING_DOM&&this._drawingRenderService.renderDrawing(t,i)}),n()}})),this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_RANGE,{handler:(e,t,n)=>{let{unitId:r,subUnitId:i}=t,a=this._renderManagerService.getRenderById(r);if(!a)return n(e);let o=a.with(TQ).getSkeletonParam(i);if(!o)return n(e);let s=this._drawingManagerService.getDrawingDataForUnit(r)?.[t.subUnitId];if(!s)return n(e);let{scaleX:c,scaleY:l}=a.scene,u=e?{...e}:{startColumn:0,endColumn:0,endRow:0,startRow:0},d=s.order.map(e=>s.data[e]);return d.length?(d.forEach(e=>{if(!e.groupId&&e.transform&&F.isDefine(e.transform.left)&&F.isDefine(e.transform.top)&&F.isDefine(e.transform.width)&&F.isDefine(e.transform.height)){let t=o.skeleton.getCellIndexByOffset(e.transform.left,e.transform.top,c,l,{x:0,y:0}),n=o.skeleton.getCellIndexByOffset(e.transform.left+e.transform.width,e.transform.top+e.transform.height,c,l,{x:0,y:0});t.column<u.startColumn&&(u.startColumn=t.column),t.row<u.startRow&&(u.startRow=t.row),u.endRow<n.row&&(u.endRow=n.row),u.endColumn<n.column&&(u.endColumn=n.column)}}),n(u)):n(e)}}))}_initPrintingDom(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(e,t,n)=>{let{unitId:r,subUnitId:i}=t,a=this._drawingManagerService.getDrawingDataForUnit(r)?.[i];if(a){let r=a.order.map(e=>{let t=a.data[e];if(t.drawingType===lm.DRAWING_CHART)return{...t,componentKey:this._componetManager.get(Cm)};if(t.drawingType===lm.DRAWING_DOM){let e=this._sheetPrintInterceptorService.getPrintComponent(t.componentKey);return{...t,componentKey:this._componetManager.get(e||t.componentKey)}}return null}).filter(Boolean);return xj((0,H.jsx)(GD(RMt,this._injector),{floatDomInfos:r,scene:t.scene,skeleton:t.skeleton,worksheet:t.worksheet}),t.root),e?.add(()=>{Sj(t.root)}),n(e)}}}))}};o7=j5([A5(0,j(q2)),A5(1,j(SW)),A5(2,bN),A5(3,zE),A5(4,j(n7)),A5(5,j(Mj)),A5(6,j(We))],o7);var zMt=[fq.id,_q.id,wq.id,Dq.id,cq.id,lq.id,uq.id,dq.id,NX.id,PX.id,IY.id,LY.id,jY.id,kY.id,gY.id,vY.id,Aq.id,kq.id,aq.id],BMt=[lK.id,uK.id,$G.id,QG.id,vK.id,bK.id,yK.id,fK.id],s7=class extends P{constructor(e,t,n,r,i,a,o,s,c){super(),this._context=e,this._commandService=t,this._sheetSkeletonService=n,this._selectionRenderService=r,this._sheetInterceptorService=i,this._selectionManagerService=a,this._sheetDrawingService=o,this._drawingManagerService=s,this._univerInstanceService=c,this._sheetInterceptorListener(),this._commandListener(),this._sheetRefreshListener()}_sheetInterceptorListener(){this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({getMutations:e=>{let{id:t,params:n}=e;if(!zMt.includes(t)||!n)return{redos:[],undos:[]};if(t===fq.id)return this._moveRowInterceptor(n,`insert`);if([Aq.id,kq.id,aq.id].includes(t)){let e;if(t===aq.id){let t=n;if(t.toUnitId&&t.fromUnitId&&t.toUnitId!==t.fromUnitId||t.toSubUnitId&&t.fromSubUnitId&&t.toSubUnitId!==t.fromSubUnitId)return{redos:[],undos:[]};e=bG(this._univerInstanceService,{unitId:t.toUnitId,subUnitId:t.toSubUnitId})}else e=bG(this._univerInstanceService,n);if(!e)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=e,{fromRange:a,toRange:o}=n;return this._moveRangeInterceptor(r,i,a,o)}if(t===_q.id)return this._moveColInterceptor(n,`insert`);if(t===wq.id)return this._moveRowInterceptor(n,`remove`);if(t===Dq.id)return this._moveColInterceptor(n,`remove`);if(t===cq.id){let{range:e}=n;return this._getRangeMoveUndo(e,0)}if(t===lq.id){let{range:e}=n;return this._getRangeMoveUndo(e,1)}if(t===uq.id){let{range:e}=n;return this._getRangeMoveUndo(e,2)}if(t===dq.id){let{range:e}=n;return this._getRangeMoveUndo(e,3)}if(t===jY.id||t===kY.id){let e=n,t=bG(this._univerInstanceService,e);if(!t)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=t,a=e.ranges||this._selectionManagerService.getCurrentSelections()?.map(e=>e.range).filter(e=>e.rangeType===_h.ROW);return!a||a.length===0?{redos:[],undos:[]}:this._getDrawingUndoForRowVisible(r,i,a)}if(t===vY.id||t===gY.id){let e=n,t=bG(this._univerInstanceService,e);if(!t)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=t,a=e.ranges||this._selectionManagerService.getCurrentSelections()?.map(e=>e.range).filter(e=>e.rangeType===_h.COLUMN);return!a||a.length===0?{redos:[],undos:[]}:this._getDrawingUndoForColVisible(r,i,a)}if(t===NX.id||t===IY.id){let e=bG(this._univerInstanceService);if(!e)return{redos:[],undos:[]};let{unitId:r,subUnitId:i,worksheet:a}=e,o=[];return t===NX.id?o.push({startRow:n.anchorRow,endRow:n.anchorRow,startColumn:0,endColumn:a.getColumnCount()-1}):o.push({startRow:0,endRow:a.getRowCount()-1,startColumn:n.anchorCol,endColumn:n.anchorCol}),this._getDrawingUndoForRowAndColSize(r,i,o)}if(t===PX.id||t===LY.id){let e=n,t=bG(this._univerInstanceService,e);if(!t)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=t,a=e.ranges||this._selectionManagerService.getCurrentSelections()?.map(e=>e.range);return!a||a.length===0?{redos:[],undos:[]}:this._getDrawingUndoForRowAndColSize(r,i,a)}return{redos:[],undos:[]}}}))}_getRangeMoveUndo(e,t){let n=bG(this._univerInstanceService);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,a=this._sheetDrawingService.getDrawingData(r,i),o=[],s=[],c=[],l=[];if(Object.keys(a).forEach(n=>{let r=a[n],{updateDrawings:i,deleteDrawings:o}=this._getUpdateOrDeleteDrawings(e,t,r);c.push(...i),l.push(...o)}),c.length===0&&l.length===0)return{redos:[],undos:[]};if(c.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(c);o.push({id:_5.id,params:{unitId:r,subUnitId:i,op:t,objects:n,type:g5.UPDATE}}),s.push({id:_5.id,params:{unitId:r,subUnitId:i,op:e,objects:n,type:g5.UPDATE}})}if(l.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(l),t=e.undo,n=e.redo,a=e.objects;o.push({id:_5.id,params:{unitId:r,subUnitId:i,op:n,objects:a,type:g5.REMOVE}}),s.push({id:_5.id,params:{unitId:r,subUnitId:i,op:t,objects:a,type:g5.INSERT}})}return o.push({id:v5.id,params:[r]}),s.push({id:v5.id,params:[r]}),{redos:o,undos:s}}_getUpdateOrDeleteDrawings(e,t,n){let r=[],i=[],{sheetTransform:a,anchorType:o=m5.Position,transform:s,unitId:c,subUnitId:l,drawingId:u}=n,d=this._sheetSkeletonService.getSkeletonParam(c,l);if(!a||!s||!d)return{updateDrawings:r,deleteDrawings:i};let{from:f,to:p}=a,{row:m,column:h}=f,{row:g,column:_}=p,{startRow:v,endRow:y,startColumn:b,endColumn:x}=e,S=null,C=null,w;if(t===0&&m>=v&&g<=y){if(h>=b&&_<=x)i.push({unitId:c,subUnitId:l,drawingId:u});else{let e=this._shrinkCol(b,x,{sheetSkeletonParam:d,sheetTransform:a,transform:s,anchorType:o});S=e?.newSheetTransform,C=e?.newTransform,w=e?.axisAlignSheetTransform??void 0}}else if(t===1&&h>=b&&_<=x){if(m>=v&&g<=y)i.push({unitId:c,subUnitId:l,drawingId:u});else{let e=this._shrinkRow(v,y,{sheetSkeletonParam:d,sheetTransform:a,transform:s,anchorType:o});S=e?.newSheetTransform,C=e?.newTransform,w=e?.axisAlignSheetTransform??void 0}}else if(t===2){let e=this._expandRow(v,y,{sheetSkeletonParam:d,sheetTransform:a,transform:s,anchorType:o});S=e?.newSheetTransform,C=e?.newTransform,w=e?.axisAlignSheetTransform??void 0}else if(t===3){let e=this._expandCol(b,x,{sheetSkeletonParam:d,sheetTransform:a,transform:s,anchorType:o});S=e?.newSheetTransform,C=e?.newTransform,w=e?.axisAlignSheetTransform??void 0}if(S&&C){let e=d5(S,d);r.push({...n,sheetTransform:S,transform:e,axisAlignSheetTransform:w})}return{updateDrawings:r,deleteDrawings:i}}_remainDrawingSize(e,t,n,r){let i=f5({...e},r);if(i){let a=p5({...e},r);t.push({...n,sheetTransform:i,axisAlignSheetTransform:a})}}_getDrawingUndoForColVisible(e,t,n){let r=this._sheetSkeletonService.getSkeleton(e,t);if(!r)return{redos:[],undos:[]};let i=this._drawingManagerService.getDrawingData(e,t),a=[],o=[];if(Object.keys(i).forEach(e=>{let t=i[e],{sheetTransform:s,transform:c,anchorType:l=m5.Position}=t;if(l===m5.None)this._remainDrawingSize(c,a,t,r);else{let{from:e,to:i}=s,{row:u,column:d}=e,{row:f,column:p}=i;for(let e=0;e<n.length;e++){let{startColumn:i,endColumn:s}=n[e];if(p<i)continue;if(l===m5.Position){let e=null,n=null;if(d>=i&&d<=s){let e=gZ(r,{startColumn:d,endColumn:s,startRow:u,endRow:f});n={...c,left:e.startX}}if(n){e=f5(n,r);let i=p5(n,r);if(e&&n){a.push({...t,sheetTransform:e,transform:n,axisAlignSheetTransform:i});break}}continue}if(d>=i&&p<=s)continue;let m=null,h=null;if(d>=i&&d<=s){let e=gZ(r,{startColumn:d,endColumn:s,startRow:u,endRow:f});h={...c,left:e?.startX||0,width:(c?.width||0)-e.endX+e.startX}}else if(p>=i&&p<=s){let e=gZ(r,{startColumn:i,endColumn:p,startRow:u,endRow:f});h={...c,left:e.startX-(c?.width||0)}}else{let e=gZ(r,{startColumn:i,endColumn:s,startRow:u,endRow:f});if(h={...c,width:(c?.width||0)-e.endX+e.startX},m=f5(h,r),m&&h){let e=p5(h,r);o.push({...t,sheetTransform:m,transform:h,axisAlignSheetTransform:e});break}}if(h&&(m=f5(h,r)),h&&m){let e=p5(h,r);a.push({...t,sheetTransform:m,transform:h,axisAlignSheetTransform:e});break}this._remainDrawingSize(c,a,t,r)}}}),a.length===0&&o.length===0)return{redos:[],undos:[]};let{redos:s,undos:c}=this._createUndoAndRedoMutation(e,t,a),l=[],u=[];if(o.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,o);l.push(...n),u.push(...r)}return{redos:s,undos:c,preRedos:l,preUndos:u}}_createUndoAndRedoMutation(e,t,n){let{undo:r,redo:i,objects:a}=this._sheetDrawingService.getBatchUpdateOp(n);return{redos:[{id:_5.id,params:{unitId:e,subUnitId:t,op:i,objects:a,type:g5.UPDATE}},{id:v5.id,params:[e]}],undos:[{id:_5.id,params:{unitId:e,subUnitId:t,op:r,objects:a,type:g5.UPDATE}},{id:v5.id,params:[e]}]}}_getDrawingUndoForRowVisible(e,t,n){let r=this._sheetSkeletonService.getSkeleton(e,t);if(!r)return{redos:[],undos:[]};let i=this._drawingManagerService.getDrawingData(e,t),a=[],o=[];if(Object.keys(i).forEach(e=>{let t=i[e],{sheetTransform:s,transform:c,anchorType:l=m5.Position}=t;if(l===m5.None)this._remainDrawingSize(c,a,t,r);else{let{from:e,to:i}=s,{row:u,column:d}=e,{row:f,column:p}=i;for(let e=0;e<n.length;e++){let{startRow:i,endRow:s}=n[e];if(f<i)continue;if(l===m5.Position){let e=null,n=null;if(u>=i&&u<=s){let e=gZ(r,{startColumn:d,endColumn:p,startRow:u,endRow:s});n={...c,top:e.startY}}if(n){e=f5(n,r);let i=p5(n,r);if(e&&n){a.push({...t,sheetTransform:e,transform:n,axisAlignSheetTransform:i});break}}continue}if(u>=i&&f<=s)continue;let m=null,h=null;if(u>=i&&u<=s){let e=gZ(r,{startColumn:d,endColumn:p,startRow:u,endRow:s});h={...c,top:e?.startY||0,height:(c?.height||0)-e.endY+e.startY}}else if(f>=i&&f<=s){let e=gZ(r,{startColumn:d,endColumn:p,startRow:i,endRow:f});h={...c,top:e.startY-(c?.height||0)}}else{let e=gZ(r,{startColumn:d,endColumn:p,startRow:i,endRow:s});if(h={...c,height:(c?.height||0)-e.endY+e.startY},m=f5(h,r),m&&h){let e=p5(h,r);o.push({...t,sheetTransform:m,transform:h,axisAlignSheetTransform:e});break}}if(h&&(m=f5(h,r)),h&&m){let e=p5(h,r);a.push({...t,sheetTransform:m,transform:h,axisAlignSheetTransform:e});break}this._remainDrawingSize(c,a,t,r)}}}),a.length===0&&o.length===0)return{redos:[],undos:[]};let{redos:s,undos:c}=this._createUndoAndRedoMutation(e,t,a),l=[],u=[];if(o.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,o);l.push(...n),u.push(...r)}return{redos:s,undos:c,preRedos:l,preUndos:u}}_getDrawingUndoForRowAndColSize(e,t,n){let r=this._sheetSkeletonService.getSkeletonParam(e,t);if(!r)return{redos:[],undos:[]};let{skeleton:i}=r,a=this._drawingManagerService.getDrawingData(e,t),o=[];return Object.keys(a).forEach(e=>{let t=a[e],{sheetTransform:s,transform:c,anchorType:l=m5.Position}=t;if(l===m5.None)this._remainDrawingSize(c,o,t,i);else{let{from:e,to:a}=s,{row:u,column:d}=e,{row:f,column:p}=a;for(let e=0;e<n.length;e++){let{startRow:a,endRow:m,startColumn:h,endColumn:g}=n[e];if(f<a||p<h)continue;if(l===m5.Position&&(u<=a&&f>=m||d<=h&&p>=g)){this._remainDrawingSize(c,o,t,i);continue}let _=d5({...s},r);if(_){o.push({...t,transform:_});break}}}}),o.length===0?{redos:[],undos:[]}:this._createUndoAndRedoMutation(e,t,o)}_getUnitIdAndSubUnitId(e,t){let n;if(n=t===`insert`?bG(this._univerInstanceService,e):bG(this._univerInstanceService),!n)return;let{unitId:r,subUnitId:i}=n;return{unitId:r,subUnitId:i}}_moveRangeInterceptor(e,t,n,r){let i=this._sheetSkeletonService.getSkeletonParam(e,t);if(!i)return{redos:[],undos:[]};let{skeleton:a}=i,o=gZ(a,n);if(!o)return{redos:[],undos:[]};let{startX:s,endX:c,startY:l,endY:u}=o,d=this._sheetDrawingService.getDrawingData(e,t),f=[];Object.keys(d).forEach(e=>{let t=d[e];if(t.anchorType!==m5.Both)return;let{transform:n}=t;if(!n)return;let{left:r=0,top:i=0,width:a=0,height:o=0}=n,{drawingStartX:p,drawingEndX:m,drawingStartY:h,drawingEndY:g}={drawingStartX:r,drawingEndX:r+a,drawingStartY:i,drawingEndY:i+o};s<=p&&m<=c&&l<=h&&g<=u&&f.push(t)});let p=[],m=[],h=r.startRow-n.startRow,g=r.startColumn-n.startColumn,_=f.map(n=>{let r=n.sheetTransform,a={to:{...r.to,row:r.to.row+h,column:r.to.column+g},from:{...r.from,row:r.from.row+h,column:r.from.column+g}},o=d5(a,i);return{unitId:e,subUnitId:t,drawingId:n.drawingId,transform:o,sheetTransform:a}});if(_.length){let{undo:n,redo:r,objects:i}=this._sheetDrawingService.getBatchUpdateOp(_);p.push({id:_5.id,params:{unitId:e,subUnitId:t,op:r,objects:i,type:g5.UPDATE}}),m.push({id:_5.id,params:{unitId:e,subUnitId:t,op:n,objects:i,type:g5.UPDATE}})}return{redos:p,undos:m}}_moveRowInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,a=this._sheetSkeletonService.getSkeletonParam(r,i);if(!a)return{redos:[],undos:[]};let{range:o}=e,s=o.startRow,c=o.endRow,l=[],u=[],d=this._sheetDrawingService.getDrawingData(r,i),f=[],p=[];if(Object.keys(d).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:l=m5.Position}=d[e];if(!n||!o)return;let u,m,h;if(t===`insert`){let e=this._expandRow(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:l});u=e?.newSheetTransform,m=e?.newTransform,h=e?.axisAlignSheetTransform??void 0}else{let{from:t,to:d}=n,{row:f}=t,{row:g}=d;if(l===m5.Both&&f>=s&&g<=c)p.push({unitId:r,subUnitId:i,drawingId:e});else{let e=this._shrinkRow(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:l});u=e?.newSheetTransform,m=e?.newTransform,h=e?.axisAlignSheetTransform??void 0}}if(!u||!m)return;let g={unitId:r,subUnitId:i,drawingId:e,transform:m,sheetTransform:u,axisAlignSheetTransform:h};f.push(g)}),f.length===0&&p.length===0)return{redos:[],undos:[]};if(f.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(f);l.push({id:_5.id,params:{unitId:r,subUnitId:i,op:t,objects:n,type:g5.UPDATE}}),u.push({id:_5.id,params:{unitId:r,subUnitId:i,op:e,objects:n,type:g5.UPDATE}})}if(p.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(p),t=e.undo,n=e.redo,a=e.objects;l.push({id:_5.id,params:{unitId:r,subUnitId:i,op:n,objects:a,type:g5.REMOVE}}),u.push({id:_5.id,params:{unitId:r,subUnitId:i,op:t,objects:a,type:g5.INSERT}})}return l.push({id:v5.id,params:[r]}),u.push({id:v5.id,params:[r]}),{redos:l,undos:u}}_moveColInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,a=this._sheetSkeletonService.getSkeletonParam(r,i);if(!a)return{redos:[],undos:[]};let{range:o}=e,s=o.startColumn,c=o.endColumn,l=[],u=[],d=this._sheetDrawingService.getDrawingData(r,i),f=[],p=[];if(Object.keys(d).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:l=m5.Position}=d[e];if(!n||!o)return;let u,m,h;if(t===`insert`){let e=this._expandCol(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:l});u=e?.newSheetTransform,m=e?.newTransform,h=e?.axisAlignSheetTransform??void 0}else{let{from:t,to:d}=n,{column:f}=t,{column:g}=d;if(l===m5.Both&&f>=s&&g<=c)p.push({unitId:r,subUnitId:i,drawingId:e});else{let e=this._shrinkCol(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:l});u=e?.newSheetTransform,m=e?.newTransform,h=e?.axisAlignSheetTransform??void 0}}if(!u||!m)return;let g={unitId:r,subUnitId:i,drawingId:e,transform:m,sheetTransform:u,axisAlignSheetTransform:h};f.push(g)}),f.length===0&&p.length===0)return{redos:[],undos:[]};if(f.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(f);l.push({id:_5.id,params:{unitId:r,subUnitId:i,op:t,objects:n,type:g5.UPDATE}}),u.push({id:_5.id,params:{unitId:r,subUnitId:i,op:e,objects:n,type:g5.UPDATE}})}if(p.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(p),t=e.undo,n=e.redo,a=e.objects;l.push({id:_5.id,params:{unitId:r,subUnitId:i,op:n,objects:a,type:g5.REMOVE}}),u.push({id:_5.id,params:{unitId:r,subUnitId:i,op:t,objects:a,type:g5.INSERT}})}return l.push({id:v5.id,params:[r]}),u.push({id:v5.id,params:[r]}),{redos:l,undos:u}}_expandCol(e,t,n){let{sheetSkeletonParam:r,sheetTransform:i,transform:a,anchorType:o=m5.Position}=n,{skeleton:s}=r,c=t-e+1,{from:l,to:u}=i,{column:d}=l,{column:f}=u;if(o===m5.None)return{newSheetTransform:f5({...a},s),newTransform:a,axisAlignSheetTransform:p5({...a},s)};let p=null,m=null,h=null;if(d>=e){let n=gZ(s,{startColumn:e,endColumn:t,startRow:l.row,endRow:u.row});m={...a,left:(a.left||0)+n.endX-n.startX},p=f5(m,s),h=p5(m,s)}else if(f>=t){if(o===m5.Both)p={from:{...l},to:{...u,column:f+c}},m=d5(p,r);else return{newSheetTransform:f5({...a},s),newTransform:a,axisAlignSheetTransform:p5({...a},s)}}return p&&m?{newSheetTransform:p,newTransform:m,axisAlignSheetTransform:h}:null}_shrinkCol(e,t,n){let{sheetSkeletonParam:r,sheetTransform:i,transform:a,anchorType:o=m5.Position}=n,{skeleton:s}=r,c=t-e+1,{from:l,to:u}=i,{column:d}=l,{column:f}=u;if(o===m5.None)return{newSheetTransform:f5({...a},s),newTransform:a,axisAlignSheetTransform:p5({...a},s)};let p=null,m=null,h=null;if(d>t)p={from:{...l,column:d-c},to:{...u,column:f-c}},m=d5(p,r);else if(d>=e&&f<=t)return null;else if(d<e&&f>t){if(o===m5.Both)p={from:{...l},to:{...u,column:f-c}},m=d5(p,r);else return{newSheetTransform:f5({...a},s),newTransform:a,axisAlignSheetTransform:p5({...a},s)}}else if(d>=e&&d<=t){if(d===e)m={...a,left:(a.left||0)-i.from.columnOffset};else{let t=gZ(s,{startColumn:e,endColumn:d-1,startRow:l.row,endRow:u.row});m={...a,left:(a.left||0)-t.endX+t.startX-i.from.columnOffset}}p=f5(m,s),h=p5(m,s)}else if(f>=e&&f<=t&&o===m5.Both){let t=gZ(s,{startColumn:e-1,endColumn:e-1,startRow:l.row,endRow:u.row});p={from:{...l},to:{...u,column:e-1,columnOffset:t.endX-t.startX}},m=d5(p,r)}return p&&m?{newSheetTransform:p,newTransform:m,axisAlignSheetTransform:h}:null}_expandRow(e,t,n){let{sheetSkeletonParam:r,sheetTransform:i,transform:a,anchorType:o=m5.Position}=n,{skeleton:s}=r,c=t-e+1,{from:l,to:u}=i,{row:d}=l,{row:f}=u;if(o===m5.None)return{newSheetTransform:f5({...a},s),newTransform:a,axisAlignSheetTransform:p5({...a},s)};let p=null,m=null,h=null;if(d>=e){let n=gZ(s,{startRow:e,endRow:t,startColumn:l.column,endColumn:u.column});m={...a,top:(a.top||0)+n.endY-n.startY},p=f5(m,s),h=p5(m,s)}else if(f>=t){if(o===m5.Both)p={from:{...l},to:{...u,row:f+c}},m=d5(p,r);else return{newSheetTransform:f5({...a},s),newTransform:a,axisAlignSheetTransform:p5({...a},s)}}return p&&m?{newSheetTransform:p,newTransform:m,axisAlignSheetTransform:h}:null}_shrinkRow(e,t,n){let{sheetSkeletonParam:r,sheetTransform:i,transform:a,anchorType:o=m5.Position}=n,{skeleton:s}=r,c=t-e+1,{from:l,to:u}=i,{row:d}=l,{row:f}=u;if(o===m5.None)return{newSheetTransform:f5({...a},s),newTransform:a,axisAlignSheetTransform:p5({...a},s)};let p=null,m=null,h=null;if(d>t)p={from:{...l,row:d-c},to:{...u,row:f-c}},m=d5(p,r);else if(d>=e&&f<=t)return null;else if(d<e&&f>t){if(o===m5.Both)p={from:{...l},to:{...u,row:f-c}},m=d5(p,r);else return{newSheetTransform:f5({...a},s),newTransform:a,axisAlignSheetTransform:p5({...a},s)}}else if(d>=e&&d<=t){if(d===e)m={...a,top:(a.top||0)-i.from.rowOffset};else{let t=gZ(s,{startRow:e,endRow:d-1,startColumn:l.column,endColumn:u.column});m={...a,top:(a.top||0)-t.endY+t.startY-i.from.rowOffset}}p=f5(m,s),h=p5(m,s)}else if(f>=e&&f<=t&&o===m5.Both){let t=gZ(s,{startColumn:l.column,endColumn:l.column,startRow:e-1,endRow:e-1});p={from:{...l},to:{...u,row:e-1,rowOffset:t.endY-t.startY}},m=d5(p,r)}return p&&m?{newSheetTransform:p,newTransform:m,axisAlignSheetTransform:h}:null}_commandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===SK.id){let{unitId:t,subUnitId:n}=e.params;this._updateDrawings(t,n)}})),this.disposeWithMe(this._context.activated$.subscribe(e=>{let{unit:t,unitId:n}=this._context;if(e){let e=t.getActiveSheet().getSheetId();this._updateDrawings(n,e)}else this._clearDrawings(n)}))}_clearDrawings(e){setTimeout(()=>{let t=this._drawingManagerService.drawingManagerData,n=[];Object.keys(t).forEach(r=>{let i=t[r];Object.keys(i).forEach(t=>{let a=i[t].data;Object.keys(a).forEach(t=>{r===e&&n.push(a[t])})})}),this._sheetDrawingService.removeNotification(n),this._drawingManagerService.removeNotification(n)})}_updateDrawings(e,t){setTimeout(()=>{let n=this._sheetSkeletonService.getSkeletonParam(e,t),r=this._drawingManagerService.drawingManagerData,i=[],a=[];Object.keys(r).forEach(o=>{let s=r[o];Object.keys(s).forEach(r=>{let c=s[r].data;Object.keys(c).forEach(s=>{if(o===e&&r===t){let e=c[s];e.sheetTransform&&(e.transform=d5(e.sheetTransform,n)),i.push(c[s])}else a.push(c[s])})})}),this._sheetDrawingService.removeNotification(a),this._sheetDrawingService.addNotification(i),this._drawingManagerService.removeNotification(a),this._drawingManagerService.addNotification(i)},0)}_sheetRefreshListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{BMt.includes(e.id)&&requestIdleCallback(()=>{let t=e.params,n=bG(this._univerInstanceService,t);if(!n)return;let{unitId:r,subUnitId:i,worksheet:a}=n,o=[];`ranges`in t?o=t.ranges:`rowsAutoHeightInfo`in t&&(o=t.rowsAutoHeightInfo.map(e=>({startRow:e.row,endRow:e.row,startColumn:0,endColumn:a.getColumnCount()-1}))),this._refreshDrawingTransform(r,i,o)})}))}_refreshDrawingTransform(e,t,n){let r=this._sheetSkeletonService.getSkeletonParam(e,t),i=this._drawingManagerService.getDrawingData(e,t),a=[];Object.keys(i).forEach(e=>{let t=i[e],{sheetTransform:o,transform:s,anchorType:c=m5.Position}=t;if(c===m5.None)return!0;let{from:l,to:u}=o,{row:d,column:f}=l,{row:p,column:m}=u;for(let e=0;e<n.length;e++){let{startRow:i,endRow:l,startColumn:u,endColumn:h}=n[e];if(l_.intersects({startRow:i,endRow:l,startColumn:u,endColumn:h},{startRow:d,endRow:p,startColumn:f,endColumn:m})||d>l||f>h){let e=c===m5.Position,n=d5(o,r);a.push({...t,transform:{...n,width:e?s?.width:n?.width,height:e?s?.height:n?.height}});break}}}),a.length!==0&&(this._sheetDrawingService.refreshTransform(a),this._drawingManagerService.refreshTransform(a),this._commandService.syncExecuteCommand(v5.id,[e]))}};s7=j5([A5(1,R),A5(2,j(GK)),A5(3,bQ),A5(4,j(MG)),A5(5,j(HK)),A5(6,h5),A5(7,bN),A5(8,z)],s7);var c7={id:`sheet.command.toggle-flip-drawings`,type:L.COMMAND,handler:(e,t)=>{if(!t)return!1;let n=e.get(R),r=e.get(fx),i=e.get(h5),a=e.get(GK),{drawings:o}=t,s=t.flipH,c=t.flipV,l=[],u=[];for(let t of o){let{unitId:n,subUnitId:r,drawingId:o}=t;l.push(n);let d=i.getDrawingData(n,r)?.[o];if(!d)continue;let f=a.getSkeleton(n,r);if(!f)continue;let p={...d.transform};s&&(p.flipX=!p.flipX),c&&(p.flipY=!p.flipY);let m=f5(p,f),h=p5(p,f),g={unitId:n,subUnitId:r,drawingType:d.drawingType,drawingId:o,transform:p,sheetTransform:m,axisAlignSheetTransform:h};if(d.drawingType===lm.DRAWING_IMAGE){let t=VMt(e,n);if(t){let e=DN({unitId:n,subUnitId:r,drawingId:o}),i=t.getObject(e);if(i){let e=i.srcRect;if(e){let t,{left:n=0,top:r=0,right:i=0,bottom:a=0}=e;if(s){let e=n+(i-n)/2;t={left:e-(i-n)/2,top:r,right:e+(i-n)/2,bottom:a}}if(c){let e=r+(a-r)/2;t={left:n,top:e-(a-r)/2,right:i,bottom:e+(a-r)/2}}t&&(g.srcRect=t)}}}}u.push(g)}if(u.length===0)return!1;let{unitId:d,subUnitId:f,undo:p,redo:m,objects:h}=i.getBatchUpdateOp(u),g={id:_5.id,params:{unitId:d,subUnitId:f,op:m,objects:h,type:g5.UPDATE}},_={id:_5.id,params:{unitId:d,subUnitId:f,op:p,objects:h,type:g5.UPDATE}};return Gm([g],n).result?(r.pushUndoRedo({unitID:d,undoMutations:[_,{id:v5.id,params:l}],redoMutations:[g,{id:v5.id,params:l}]}),!0):!1}};function VMt(e,t){let n=e.get(zE).getRenderById(t);return n?n.scene:null}function HMt(e){var t,n;return!!(e!=null&&(t=e.p)!=null&&(t=t.drawingsOrder)!=null&&t.length&&(e==null||(n=e.p)==null||(n=n.drawingsOrder)==null?void 0:n.length)>0)}function UMt(e,t){let n=e.getActiveSheet();if(!n)return!1;let r=n.getCellMatrix(),{startRow:i,endRow:a,startColumn:o,endColumn:s}=t;for(let e=i;e<=a;e++)for(let t=o;t<=s;t++)if(HMt(r.getValue(e,t)))return!0;return!1}function WMt(){return`showDirectoryPicker`in window}function l7(e){let t=e.get(z),n=e.get(HK),r=_s([Nj(e,M.UNIVER_SHEET),t.getCurrentTypeOfUnit$(M.UNIVER_SHEET).pipe(sc(e=>e?n.selectionMoveEnd$.pipe(os(()=>{if(!WMt())return!0;let t=n.getCurrentSelections();if(!t||t.length===0)return!0;for(let n of t)if(UMt(e,n.range))return!1;return!0})):ts(!0)))]).pipe(os(([e,t])=>e||t));return{id:W5.id,type:yM.BUTTON,icon:`DownloadImageIcon`,title:`sheets-drawing-ui.save.menuLabel`,hidden$:r}}var GMt={[fM.MEDIA]:{[xMt]:{order:0,menuItemFactory:SMt,[P5.id]:{order:0,menuItemFactory:CMt},[F5.id]:{order:1,menuItemFactory:wMt}}},[mM.MAIN_AREA]:{[hM.OTHERS]:{[W5.id]:{order:10,menuItemFactory:l7}}},[mM.COL_HEADER]:{[hM.OTHERS]:{[W5.id]:{order:10,menuItemFactory:l7}}},[mM.ROW_HEADER]:{[hM.OTHERS]:{[W5.id]:{order:10,menuItemFactory:l7}}}};function KMt(){let e=U(Xb),t=U(oN),n=U(R5),[r,i]=(0,V.useState)([`cellAddress`]),[a,o]=(0,V.useState)(!1),[s,c]=(0,V.useState)(null),l=(0,V.useMemo)(()=>n.getCellImagesInSelection(),[n]),u=(0,V.useMemo)(()=>n.getDataColumns(),[n]),d=(0,V.useMemo)(()=>n.getSelectionRowRange(),[n]),f=u.length>0,p=(0,V.useMemo)(()=>u.map(e=>({label:e.label,value:String(e.index)})),[u]),[m,h]=(0,V.useState)(()=>p.length>0?p[0].value:`0`);QSt((0,V.useMemo)(()=>{if(!r.includes(`columnValue`)||!d)return[];let e=Number(m);return[{startRow:d.startRow,endRow:d.endRow,startColumn:e,endColumn:e}]},[r,m,d]));let g=(0,V.useCallback)(e=>{e.length!==0&&i(e)},[]),_=(0,V.useCallback)(e=>{h(String(e))},[]),v=(0,V.useCallback)(()=>{t.close(U5)},[t]),y=(0,V.useCallback)(async()=>{if(l.length!==0){o(!0),c(null);try{await n.saveImages(l,{fileNameParts:r,columnIndex:r.includes(`columnValue`)?Number(m):void 0}),t.close(U5)}catch(t){console.error(`Failed to save images:`,t),c(e.t(`sheets-drawing-ui.save.error`))}finally{o(!1)}}},[n,l,r,m,t,e]),b=r.includes(`columnValue`);return(0,H.jsxs)(`div`,{className:`univer-flex univer-flex-col`,children:[(0,H.jsx)(sj,{label:e.t(`sheets-drawing-ui.save.imageCount`),children:(0,H.jsx)(`div`,{className:`univer-text-sm univer-text-gray-600`,children:l.length})}),(0,H.jsx)(sj,{label:e.t(`sheets-drawing-ui.save.fileNameConfig`),children:(0,H.jsxs)(KWe,{value:r,onChange:g,direction:`vertical`,children:[(0,H.jsx)(QA,{value:`cellAddress`,disabled:!f,children:e.t(`sheets-drawing-ui.save.useRowCol`)}),f&&(0,H.jsx)(QA,{value:`columnValue`,children:e.t(`sheets-drawing-ui.save.useColumnValue`)})]})}),b&&(0,H.jsx)(sj,{label:e.t(`sheets-drawing-ui.save.selectColumn`),children:(0,H.jsx)(yj,{value:m,options:p,onChange:_})}),s&&(0,H.jsx)(`div`,{className:`univer-text-xs univer-text-red-500`,children:s}),(0,H.jsxs)(`div`,{className:`univer-flex univer-justify-end univer-gap-2 univer-border-t univer-border-gray-200 univer-pt-3`,children:[(0,H.jsx)(VA,{onClick:v,disabled:a,children:e.t(`sheets-drawing-ui.save.cancel`)}),(0,H.jsx)(VA,{variant:`primary`,onClick:y,disabled:a||l.length===0,children:a?e.t(`sheets-drawing-ui.save.saving`):e.t(`sheets-drawing-ui.save.confirm`)})]})]})}var qMt=e=>{let t=U(R),n=U(Xb),r=U(bN),i=U(zE),{drawings:a}=e,o=a[0];if(o==null)return;let{unitId:s}=o,c=i.getRenderById(s)?.scene;if(c==null)return;let l=c.getTransformerByCreate(),[u,d]=(0,V.useState)(!0),[f,p]=(0,V.useState)(o.anchorType??m5.Position);function m(e,t){let n=[];return e.forEach(e=>{let{oKey:r}=e,i=t.getDrawingOKey(r);if(i==null)return n.push(null),!0;let{unitId:a,subUnitId:o,drawingId:s,drawingType:c,anchorType:l,sheetTransform:u,axisAlignSheetTransform:d}=i;n.push({unitId:a,subUnitId:o,drawingId:s,anchorType:l,sheetTransform:u,drawingType:c,axisAlignSheetTransform:d})}),n}(0,V.useEffect)(()=>{let e=l.clearControl$.subscribe(e=>{e===!0&&d(!1)}),t=l.changeStart$.subscribe(e=>{let{objects:t}=e,n=m(t,r);n.length===0?d(!1):n.length>=1&&(d(!0),p(n[0]?.anchorType||m5.Position))});return()=>{t.unsubscribe(),e.unsubscribe()}},[]);function h(e){p(e);let n=r.getFocusDrawings();if(n.length===0)return;let i=n.map(t=>({unitId:t.unitId,subUnitId:t.subUnitId,drawingId:t.drawingId,anchorType:e}));t.executeCommand(S5.id,{unitId:n[0].unitId,drawings:i})}return(0,H.jsxs)(`div`,{className:W(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!u}),children:[(0,H.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,H.jsx)(`div`,{children:n.t(`sheets-drawing-ui.drawing-anchor.title`)})}),(0,H.jsx)(`div`,{children:(0,H.jsxs)(gj,{value:f,onChange:h,direction:`vertical`,children:[(0,H.jsx)(_j,{value:m5.Both,children:n.t(`sheets-drawing-ui.drawing-anchor.both`)}),(0,H.jsx)(_j,{value:m5.Position,children:n.t(`sheets-drawing-ui.drawing-anchor.position`)}),(0,H.jsx)(_j,{value:m5.None,children:n.t(`sheets-drawing-ui.drawing-anchor.none`)})]})})]})},JMt=()=>{let e=U(bN),[t,n]=(0,V.useState)(e.getFocusDrawings());return(0,V.useEffect)(()=>{let t=e.focus$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[]),!!t?.length&&(0,H.jsxs)(`div`,{className:`univer-text-sm`,children:[(0,H.jsx)(oot,{drawings:t}),(0,H.jsx)(qMt,{drawings:t})]})};function u7(e){return e.getContextValue(`FOCUSING_SHEET`)&&!e.getContextValue(`FOCUSING_FX_BAR_EDITOR`)&&!e.getContextValue(`FOCUSING_PANEL_EDITOR`)&&e.getContextValue(`FOCUSING_COMMON_DRAWINGS`)&&!e.getContextValue(`FOCUSING_SHAPE_TEXT_EDITOR`)}var YMt={id:I5.id,description:`sheets-drawing-ui.shortcut.drawing-move-down`,group:`4_drawing-view`,groupTitle:`sheets-drawing-ui.shortcut.drawing-view`,binding:iM.ARROW_DOWN,priority:100,preconditions:u7,staticParameters:{direction:I.DOWN}},XMt={id:I5.id,description:`sheets-drawing-ui.shortcut.drawing-move-up`,group:`4_drawing-view`,groupTitle:`sheets-drawing-ui.shortcut.drawing-view`,binding:iM.ARROW_UP,priority:100,preconditions:u7,staticParameters:{direction:I.UP}},ZMt={id:I5.id,description:`sheets-drawing-ui.shortcut.drawing-move-left`,group:`4_drawing-view`,groupTitle:`sheets-drawing-ui.shortcut.drawing-view`,binding:iM.ARROW_LEFT,priority:100,preconditions:u7,staticParameters:{direction:I.LEFT}},QMt={id:I5.id,description:`sheets-drawing-ui.shortcut.drawing-move-right`,group:`4_drawing-view`,groupTitle:`sheets-drawing-ui.shortcut.drawing-view`,binding:iM.ARROW_RIGHT,priority:100,preconditions:u7,staticParameters:{direction:I.RIGHT}},$Mt={id:rMt.id,description:`sheets-drawing-ui.shortcut.drawing-delete`,group:`4_drawing-view`,groupTitle:`sheets-drawing-ui.shortcut.drawing-view`,priority:100,preconditions:u7,binding:iM.DELETE,mac:iM.BACKSPACE},d7=class extends P{constructor(e,t,n,r){super(),this._componentManager=e,this._menuManagerService=t,this._commandService=n,this._shortcutService=r,this._init()}_initCustomComponents(){let e=this._componentManager;this.disposeWithMe(e.register(_Mt,JMt)),this.disposeWithMe(e.register(U5,KMt))}_initMenus(){this._menuManagerService.mergeMenu(GMt)}_initCommands(){[P5,F5,vMt,yMt,cMt,lMt,I5,rMt,W5,c7].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[YMt,XMt,ZMt,QMt,$Mt].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};d7=j5([A5(0,j(Mj)),A5(1,gM),A5(2,R),A5(3,sM)],d7);var f7=class extends Kf{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._injector=e,this._localeService=t,this._drawingManagerService=n,this._canvasPopManagerService=r,this._renderManagerService=i,this._univerInstanceService=a,this._messageService=o,this._contextService=s,this._ioService=c,this._commandService=l,k5(this,`_initImagePopupMenu`,new Set),this._init()}_init(){this._univerInstanceService.getCurrentTypeOfUnit$(M.UNIVER_SHEET).subscribe(e=>this._create(e)),this._univerInstanceService.getTypeOfUnitDisposed$(M.UNIVER_SHEET).subscribe(e=>this._dispose(e)),this._univerInstanceService.getAllUnitsForType(M.UNIVER_SHEET).forEach(e=>this._create(e)),this._setupLoadingStatus()}_setupLoadingStatus(){let e;this.disposeWithMe(this._ioService.change$.subscribe(t=>{t>0&&!e?e=this._messageService.show({id:`image-upload-loading`,type:dj.Loading,content:`${this._localeService.t(`sheets-ui.uploadLoading.loading`)}: ${t}`,duration:0}):t===0&&(e?.dispose(),e=void 0)}))}_dispose(e){super.dispose();let t=e.getUnitId();this._renderManagerService.removeRender(t),this._initImagePopupMenu.delete(t)}_create(e){if(!e)return;let t=e.getUnitId();this._renderManagerService.has(t)&&!this._initImagePopupMenu.has(t)&&(this._popupMenuListener(t),this._initImagePopupMenu.add(t))}_hasCropObject(e){let t=e.getAllObjectsByOrder();for(let e of t)if(e instanceof bW)return!0;return!1}_popupMenuListener(e){let t=this._renderManagerService.getRenderById(e)?.scene;if(!t)return;let n=t.getTransformerByCreate();if(!n)return;let r;this.disposeWithMe(n.createControl$.subscribe(()=>{if(this._contextService.setContextValue($y,!0),this._hasCropObject(t))return;let e=n.getSelectedObjectMap();if(e.size>1){r?.dispose();return}let i=e.values().next().value;if(!i)return;let a=i.oKey,o=this._drawingManagerService.getDrawingOKey(a);if(!o)return;let{unitId:s,subUnitId:c,drawingId:l,drawingType:u}=o,d=o.data;if(d&&d.disablePopup)return;r?.dispose();let f=this._canvasPopManagerService.getFeatureMenu(s,c,l,u);r=this.disposeWithMe(this._canvasPopManagerService.attachPopupToObject(i,{componentKey:lW,direction:`horizontal`,offset:[2,0],extraProps:{menuItems:f||this._getImageMenuItems(s,c,l,u)}}))})),this.disposeWithMe(n.clearControl$.subscribe(()=>{r?.dispose(),this._contextService.setContextValue($y,!1),this._commandService.syncExecuteCommand(xN.id,[])})),this.disposeWithMe(this._contextService.contextChanged$.subscribe(e=>{e.FOCUSING_COMMON_DRAWINGS===!1&&r?.dispose()})),this.disposeWithMe(n.changing$.subscribe(()=>{r?.dispose()}))}_getImageMenuItems(e,t,n,r){return[{label:`sheets-drawing-ui.image-popup.edit`,index:0,commandId:yMt.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:r===lm.DRAWING_DOM},{label:`sheets-drawing-ui.image-popup.delete`,index:1,commandId:b5.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:!1},{label:`sheets-drawing-ui.image-popup.crop`,index:2,commandId:rW.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:r===lm.DRAWING_DOM},{label:`sheets-drawing-ui.image-popup.flipH`,index:2,commandId:c7.id,commandParams:{unitId:e,flipH:!0,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:r===lm.DRAWING_DOM},{label:`sheets-drawing-ui.image-popup.flipV`,index:2,commandId:c7.id,commandParams:{unitId:e,flipV:!0,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:r===lm.DRAWING_DOM},{label:`sheets-drawing-ui.image-popup.reset`,index:3,commandId:oW.id,commandParams:[{unitId:e,subUnitId:t,drawingId:n}],disable:r===lm.DRAWING_DOM}]}};f7=j5([A5(0,j(We)),A5(1,j(Xb)),A5(2,bN),A5(3,j(i2)),A5(4,zE),A5(5,z),A5(6,$j),A5(7,Pm),A5(8,ib),A5(9,R)],f7);var p7=class extends ax{constructor(e=OMt,t,n,r){super(),this._config=e,this._injector=t,this._renderManagerService=n,this._configService=r;let{menu:i,...a}=Qi({},OMt,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(DMt,a)}onStarting(){df(this._injector,[[n7],[d7],[f7],[o7],[e7],[Q5],[G5],[Y5],[X5],[Z5],[R5,{useClass:H5}],[K5]]),ff(this._injector,[[n7]])}onReady(){ff(this._injector,[[Q5],[Z5],[G5]])}onRendered(){this._registerRenderModules(),ff(this._injector,[[e7],[o7],[d7],[Y5],[X5]])}onSteady(){this._injector.get(f7),this._injector.get(K5)}_registerRenderModules(){[[N5],[s7],[J5],[q5]].forEach(e=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(M.UNIVER_SHEET,e))})}};k5(p7,`type`,M.UNIVER_SHEET),k5(p7,`pluginName`,`SHEET_IMAGE_UI_PLUGIN`),k5(p7,`packageName`,TMt),k5(p7,`version`,EMt),p7=j5([sx(EN,zU,wW,D5),A5(1,j(We)),A5(2,zE),A5(3,Mm)],p7);function m7(e){"@babel/helpers - typeof";return m7=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},m7(e)}function eNt(e,t){if(m7(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(m7(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function tNt(e){var t=eNt(e,`string`);return m7(t)==`symbol`?t:t+``}function nNt(e,t,n){return(t=tNt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h7(e,t){return function(n,r){t(n,r,e)}}function rNt(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function iNt(e,t){let{from:n,to:r,flipY:i=!1,flipX:a=!1,angle:o=0,skewX:s=0,skewY:c=0}=e.sheetTransform,{column:l,columnOffset:u,row:d,rowOffset:f}=n,{width:p,height:m}=smt(e.unitId,e.subUnitId,{from:n,to:r},t);return{...e,column:l,columnOffset:u,row:d,rowOffset:f,width:p,height:m,flipY:i,flipX:a,angle:o,skewX:s,skewY:c}}function aNt(e,t){let n=t.ensureSkeleton(e.unitId,e.subUnitId);if(!n)throw Error(`Skeleton for unitId ${e.unitId} and subUnitId ${e.subUnitId} not found`);let{column:r,columnOffset:i,row:a,rowOffset:o,flipY:s=!1,flipX:c=!1,angle:l=0,skewX:u=0,skewY:d=0,width:f,height:p}=e,{sheetTransform:m,transform:h}=cmt(e.unitId,e.subUnitId,{column:r,columnOffset:i,row:a,rowOffset:o},f,p,n);return{...e,sheetTransform:{...m,flipY:s,flipX:c,angle:l,skewX:u,skewY:d},transform:{...h,flipY:s,flipX:c,angle:l,skewX:u,skewY:d},axisAlignSheetTransform:p5(h,n)}}var g7=class{constructor(e,t,n){this._injector=n,nNt(this,`_image`,void 0),this._image={drawingId:rp(6),drawingType:lm.DRAWING_IMAGE,imageSourceType:nb.BASE64,source:``,unitId:e,subUnitId:t,column:0,columnOffset:0,row:0,rowOffset:0,width:0,height:0,axisAlignSheetTransform:{from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}}}}setImage(e){let{unitId:t,subUnitId:n}=e,r=this._injector.get(GK).getSkeleton(t,n);if(!r)throw Error(`Skeleton for unitId ${t} and subUnitId ${n} not found`);return e.sheetTransform??={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}},e.axisAlignSheetTransform??={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}},this._image=iNt(e,r),this}setSource(e,t){let n=t??nb.URL;return this._image.source=e,this._image.imageSourceType=n,this}getSource(){return this._image.source}getSourceType(){return this._image.imageSourceType}setColumn(e){return this._image.column=e,this}setRow(e){return this._image.row=e,this}setColumnOffset(e){return this._image.columnOffset=e,this}setRowOffset(e){return this._image.rowOffset=e,this}setWidth(e){return this._image.width=e,this}setHeight(e){return this._image.height=e,this}setAnchorType(e){return this._image.anchorType=e,this}setCropTop(e){return this._initializeSrcRect(),this._image.srcRect.top=e,this}setCropLeft(e){return this._initializeSrcRect(),this._image.srcRect.left=e,this}setCropBottom(e){return this._initializeSrcRect(),this._image.srcRect.bottom=e,this}setCropRight(e){return this._initializeSrcRect(),this._image.srcRect.right=e,this}_initializeSrcRect(){this._image.srcRect??(this._image.srcRect={top:0,left:0,bottom:0,right:0})}setRotate(e){return this._image.angle=e,this}setUnitId(e){return this._image.unitId=e,this}setSubUnitId(e){return this._image.subUnitId=e,this}async buildAsync(){let e=this._injector.get(GK);if(this._image.width===0||this._image.height===0){let e=await ON(this._image.source),t=e.width,n=e.height;this._image.width===0&&(this._image.width=t),this._image.height===0&&(this._image.height=n)}return aNt(this._image,e)}};g7=rNt([h7(2,j(We))],g7);var _7=class extends Bx{constructor(e,t,n){super(),this._image=e,this._commandService=t,this._injector=n}getId(){return this._image.drawingId}getType(){return this._image.drawingType}remove(){return this._commandService.syncExecuteCommand(b5.id,{unitId:this._image.unitId,drawings:[this._image]})}toBuilder(){let e=this._injector.createInstance(g7,this._image.unitId,this._image.subUnitId);return e.setImage(this._image),e}setSource(e,t){let n=t??nb.URL;return this._image.source=e,this._image.imageSourceType=n,this._commandService.syncExecuteCommand(S5.id,{unitId:this._image.unitId,drawings:[this._image]})}async setPositionAsync(e,t,n,r){let i=this.toBuilder();i.setColumn(t),i.setRow(e),n!=null&&i.setRowOffset(n),r!=null&&i.setColumnOffset(r);let a=await i.buildAsync();return this._commandService.syncExecuteCommand(S5.id,{unitId:this._image.unitId,drawings:[a]})}async setSizeAsync(e,t){let n=this.toBuilder();n.setWidth(e),n.setHeight(t);let r=await n.buildAsync();return this._commandService.syncExecuteCommand(S5.id,{unitId:this._image.unitId,drawings:[r]})}setCrop(e,t,n,r){return this._image.srcRect??(this._image.srcRect={top:0,left:0,bottom:0,right:0}),e!=null&&(this._image.srcRect.top=e),t!=null&&(this._image.srcRect.left=t),n!=null&&(this._image.srcRect.bottom=n),r!=null&&(this._image.srcRect.right=r),this._commandService.syncExecuteCommand(S5.id,{unitId:this._image.unitId,drawings:[this._image]})}setRotate(e){if(this._image.sheetTransform.angle=e,this._image.transform&&(this._image.transform.angle=e),this._image.transform){let e=this._injector.get(GK).getSkeleton(this._image.unitId,this._image.subUnitId);if(!e)throw Error(`Skeleton for unitId ${this._image.unitId} and subUnitId ${this._image.subUnitId} not found`);this._image.axisAlignSheetTransform&&(this._image.axisAlignSheetTransform=p5(this._image.transform,e))}return this._commandService.syncExecuteCommand(S5.id,{unitId:this._image.unitId,drawings:[this._image]})}setForward(){return this._commandService.syncExecuteCommand(x5.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:cm.forward})}setBackward(){return this._commandService.syncExecuteCommand(x5.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:cm.backward})}setBack(){return this._commandService.syncExecuteCommand(x5.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:cm.back})}setFront(){return this._commandService.syncExecuteCommand(x5.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:cm.front})}};_7=rNt([h7(1,R),h7(2,j(We))],_7);var oNt=class extends j3{async insertImage(e,t,n,r,i){let a=this.newOverGridImage();if(typeof e==`string`)a.setSource(e);else{let t=await e.getBlob().getDataAsString();a.setSource(t,nb.BASE64)}t===void 0?a.setColumn(0):a.setColumn(t),n===void 0?a.setRow(0):a.setRow(n),r===void 0?a.setColumnOffset(0):a.setColumnOffset(r),i===void 0?a.setRowOffset(0):a.setRowOffset(i);let o=await a.buildAsync();return this._commandService.syncExecuteCommand(y5.id,{unitId:this._fWorkbook.getId(),drawings:[o]})}insertImages(e){let t=e.map(e=>(e.unitId=this._fWorkbook.getId(),e.subUnitId=this.getSheetId(),e));return this._commandService.syncExecuteCommand(y5.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}deleteImages(e){let t=e.map(e=>({unitId:this._fWorkbook.getId(),drawingId:e.getId(),subUnitId:this.getSheetId(),drawingType:e.getType()}));return this._commandService.syncExecuteCommand(b5.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}getImages(){let e=this._injector.get(h5).getDrawingData(this._fWorkbook.getId(),this.getSheetId()),t=[];for(let n in e){let r=e[n];r.drawingType===lm.DRAWING_IMAGE&&t.push(this._injector.createInstance(_7,r))}return t}getImageById(e){let t=this._injector.get(h5).getDrawingByParam({unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawingId:e});return t&&t.drawingType===lm.DRAWING_IMAGE?this._injector.createInstance(_7,t):null}getActiveImages(){let e=this._injector.get(h5).getFocusDrawings(),t=[];for(let n in e){let r=e[n];t.push(this._injector.createInstance(_7,r))}return t}updateImages(e){return this._commandService.syncExecuteCommand(S5.id,{unitId:this._fWorkbook.getId(),drawings:e}),this}newOverGridImage(){let e=this._fWorkbook.getId(),t=this.getSheetId();return this._injector.createInstance(g7,e,t)}};j3.extend(oNt);var sNt=class extends Zx{get DrawingType(){return lm}get ImageSourceType(){return nb}get SheetDrawingAnchorType(){return m5}};Zx.extend(sNt);var cNt=class extends Qx{get BeforeFloatDomAdd(){return`BeforeFloatDomAdd`}get FloatDomAdded(){return`FloatDomAdded`}get BeforeFloatDomUpdate(){return`BeforeFloatDomUpdate`}get FloatDomUpdated(){return`FloatDomUpdated`}get BeforeFloatDomDelete(){return`BeforeFloatDomDelete`}get FloatDomDeleted(){return`FloatDomDeleted`}get BeforeOverGridImageChange(){return`BeforeOverGridImageChange`}get OverGridImageChanged(){return`OverGridImageChanged`}get BeforeOverGridImageInsert(){return`BeforeOverGridImageInsert`}get OverGridImageInserted(){return`OverGridImageInserted`}get BeforeOverGridImageRemove(){return`BeforeOverGridImageRemove`}get OverGridImageRemoved(){return`OverGridImageRemoved`}get BeforeOverGridImageSelect(){return`BeforeOverGridImageSelect`}get OverGridImageSelected(){return`OverGridImageSelected`}};Qx.extend(cNt);var lNt=class extends oS{_initialize(e){let t=e.get(R);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageInsert,()=>t.beforeCommandExecuted(e=>{if(e.id!==y5.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,i={workbook:n,insertImageParams:r};if(this.fireEvent(this.Event.BeforeOverGridImageInsert,i),i.cancel)throw new hf}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageRemove,()=>t.beforeCommandExecuted(t=>{if(t.id!==b5.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let i=e.get(bN),{drawings:a}=n,o=a.map(e=>i.getDrawingByParam(e)),s={workbook:r,images:this._createFOverGridImage(o)};if(this.fireEvent(this.Event.BeforeOverGridImageRemove,s),s.cancel)throw new hf}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageChange,()=>t.beforeCommandExecuted(t=>{if(t.id!==S5.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:i}=n,a=e.get(bN),o=[];i.forEach(e=>{let t=a.getDrawingByParam(e);t!=null&&o.push({changeParam:e,image:this._injector.createInstance(_7,t)})});let s={workbook:r,images:o};if(this.fireEvent(this.Event.BeforeOverGridImageChange,s),s.cancel)throw a.updateNotification(i),new hf}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageSelect,()=>t.beforeCommandExecuted(t=>{if(t.id!==xN.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null)return;let i=e.get(bN),a=i.getFocusDrawings(),o=n.map(e=>i.getDrawingByParam(e)),s={workbook:r,selectedImages:this._createFOverGridImage(o),oldSelectedImages:this._createFOverGridImage(a)};if(this.fireEvent(this.Event.BeforeOverGridImageSelect,s),s.cancel)throw new hf}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageInserted,()=>t.onCommandExecuted(e=>{if(e.id!==y5.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,i={workbook:n,images:this._createFOverGridImage(r)};this.fireEvent(this.Event.OverGridImageInserted,i)}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageRemoved,()=>t.onCommandExecuted(e=>{if(e.id!==b5.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,i={workbook:n,removeImageParams:r};this.fireEvent(this.Event.OverGridImageRemoved,i)}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageChanged,()=>t.onCommandExecuted(t=>{if(t.id!==S5.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:i}=n,a=e.get(bN),o={workbook:r,images:i.map(e=>this._injector.createInstance(_7,a.getDrawingByParam(e)))};this.fireEvent(this.Event.OverGridImageChanged,o)}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageSelected,()=>t.onCommandExecuted(t=>{if(t.id!==xN.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null)return;let i=e.get(bN),a=n.map(e=>i.getDrawingByParam(e)),o={workbook:r,selectedImages:this._createFOverGridImage(a)};this.fireEvent(this.Event.OverGridImageSelected,o)})))}_createFOverGridImage(e){return e.map(e=>this._injector.createInstance(_7,e))}};oS.extend(lNt);var uNt=class extends j3{getFloatDomById(e){let t=this._injector.get(n7).getFloatDomInfo(e);if(!t)return null;let{unitId:n,subUnitId:r}=t,{rect:i}=t,{left:a=0,top:o=0,width:s=0,height:c=0,flipX:l=!1,flipY:u=!1,angle:d=0,skewX:f=0,skewY:p=0}=i.getState(),m=this._injector.get(h5).getDrawingByParam({drawingId:t.id,unitId:n,subUnitId:r});return m?{position:{left:a,top:o,width:s,height:c,flipX:l,flipY:u,angle:d,skewX:f,skewY:p},componentKey:m.componentKey,allowTransform:m.allowTransform,data:m.data,id:t.id}:null}getAllFloatDoms(){let e=this._injector.get(n7),t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return Array.from(e.getFloatDomsBySubUnitId(t,n).values()).map(e=>{let{rect:r}=e,i=this._injector.get(h5).getDrawingByParam({drawingId:e.id,unitId:t,subUnitId:n}),{left:a,top:o,width:s,height:c,flipX:l,flipY:u,angle:d,skewX:f,skewY:p}=r.getState();return{position:{left:a,top:o,width:s,height:c,flipX:l,flipY:u,angle:d,skewX:f,skewY:p},componentKey:i.componentKey,allowTransform:i.allowTransform,data:i.data,id:e.id}})}updateFloatDom(e,t){let n=this._injector.get(GK),r=this._injector.get(n7).getFloatDomInfo(e);if(!r)return this;let{unitId:i,subUnitId:a}=r,o=n.getSkeleton(i,a);if(!o)return this;let s=this._injector.get(h5).getDrawingByParam({unitId:i,subUnitId:a,drawingId:e}),c={...s,componentKey:t.componentKey||s.componentKey,allowTransform:t.allowTransform===void 0?s.allowTransform:t.allowTransform,data:t.data||s.data,sheetTransform:t.position?f5(t.position,o)??s.sheetTransform:s.sheetTransform,transform:{...s.transform,...t.position},axisAlignSheetTransform:t.position?p5(t.position,o)??s.sheetTransform:s.sheetTransform};if(!this._commandService.syncExecuteCommand(S5.id,{unitId:i,subUnitId:a,drawings:[c]}))throw Error(`updateFloatDom failed`);return this}batchUpdateFloatDoms(e){let t=this._injector.get(n7),n=this._injector.get(h5),r=this._injector.get(GK),i=[];for(let a of e){let e=t.getFloatDomInfo(a.id);if(!e)continue;let{unitId:o,subUnitId:s}=e,c=r.getSkeleton(o,s);if(!c)continue;let l=n.getDrawingByParam({unitId:o,subUnitId:s,drawingId:a.id});if(!l)continue;let u={...l,componentKey:a.config.componentKey||l.componentKey,allowTransform:a.config.allowTransform===void 0?l.allowTransform:a.config.allowTransform,data:a.config.data||l.data,sheetTransform:a.config.position?f5(a.config.position,c)??l.sheetTransform:l.sheetTransform,transform:{...l.transform,...a.config.position},axisAlignSheetTransform:a.config.position?p5(a.config.position,c)??l.sheetTransform:l.sheetTransform};i.push(u)}if(i.length>0){let e=this._workbook.getUnitId(),t=this._worksheet.getSheetId();if(!this._commandService.syncExecuteCommand(S5.id,{unitId:e,subUnitId:t,drawings:i}))throw Error(`batchUpdateFloatDoms failed`)}return this}removeFloatDom(e){return this._injector.get(n7).removeFloatDom(e),this}addFloatDomToPosition(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),{key:i,disposableCollection:a}=G3(e,this._injector.get(Mj)),o=this._injector.get(n7).addFloatDomToPosition({...e,componentKey:i,unitId:n,subUnitId:r},t);return o?(a.add(o.dispose),{id:o.id,dispose:()=>{a.dispose(),o.dispose()}}):(a.dispose(),null)}addFloatDomToRange(e,t,n,r){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),{key:o,disposableCollection:s}=G3(t,this._injector.get(Mj)),c=this._injector.get(n7).addFloatDomToRange(e.getRange(),{...t,componentKey:o,unitId:i,subUnitId:a},n,r);return c?(s.add(c.dispose),{id:c.id,dispose:()=>{s.dispose(),c.dispose()}}):(s.dispose(),null)}addFloatDomToColumnHeader(e,t,n,r){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),{key:o,disposableCollection:s}=G3(t,this._injector.get(Mj)),c=this._injector.get(n7).addFloatDomToColumnHeader(e,{...t,componentKey:o,unitId:i,subUnitId:a},n,r);return c?(s.add(c.dispose),{id:c.id,dispose:()=>{s.dispose(),c.dispose()}}):(s.dispose(),null)}async saveCellImagesAsync(e,t){let n=this._injector.get(R5),r=this._fWorkbook.getId(),i=this.getSheetId(),a=t?t.map(e=>e.getRange()):[this._worksheet.getCellMatrix().getDataRange()],o=n.getCellImagesFromRanges(r,i,a);if(o.length===0)return!1;if(o.length===1)try{return await n.downloadSingleImage(o[0]),!0}catch(e){return console.error(`Failed to download image:`,e),!1}let s=[],c=e?.useCellAddress??!0,l=e?.useColumnIndex;c&&s.push(L5.CELL_ADDRESS),l!==void 0&&s.push(L5.COLUMN_VALUE),s.length===0&&s.push(L5.CELL_ADDRESS);try{return await n.saveImagesWithContext(o,{fileNameParts:s,columnIndex:l},r,i),!0}catch(e){return console.error(`Failed to save images:`,e),!1}}};j3.extend(uNt);var dNt=class extends Qx{get BeforeFloatDomAdd(){return`BeforeFloatDomAdd`}get FloatDomAdded(){return`FloatDomAdded`}get BeforeFloatDomUpdate(){return`BeforeFloatDomUpdate`}get FloatDomUpdated(){return`FloatDomUpdated`}get BeforeFloatDomDelete(){return`BeforeFloatDomDelete`}get FloatDomDeleted(){return`FloatDomDeleted`}};Qx.extend(dNt);var fNt=class extends oS{_initialize(e){let t=e.get(R);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomAdd,()=>t.beforeCommandExecuted(e=>{if(e.id!==y5.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,i=r.filter(e=>e.drawingType===lm.DRAWING_DOM);if(i.length===0)return;let a={workbook:n,drawings:i};if(this.fireEvent(this.Event.BeforeFloatDomAdd,a),a.cancel)throw new hf}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomAdded,()=>t.onCommandExecuted(e=>{if(e.id!==y5.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,i=r.filter(e=>e.drawingType===lm.DRAWING_DOM);if(i.length===0)return;let a={workbook:n,drawings:i};this.fireEvent(this.Event.FloatDomAdded,a)}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomUpdate,()=>t.beforeCommandExecuted(t=>{if(t.id!==S5.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:i}=n,a=e.get(bN),o=[];if(i.forEach(e=>{let t=a.getDrawingByParam(e);t?.drawingType===lm.DRAWING_DOM&&o.push(t)}),o.length===0)return;let s={workbook:r,drawings:o};if(this.fireEvent(this.Event.BeforeFloatDomUpdate,s),s.cancel)throw a.updateNotification(i),new hf}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomUpdated,()=>t.onCommandExecuted(t=>{if(t.id!==S5.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:i}=n,a=e.get(bN),o=[];if(i.forEach(e=>{let t=a.getDrawingByParam(e);t?.drawingType===lm.DRAWING_DOM&&o.push(t)}),o.length===0)return;let s={workbook:r,drawings:o};this.fireEvent(this.Event.FloatDomUpdated,s)}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomDelete,()=>t.beforeCommandExecuted(t=>{if(t.id!==b5.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let i=e.get(bN),{drawings:a}=n,o=a.map(e=>i.getDrawingByParam(e)).filter(e=>e?.drawingType===lm.DRAWING_DOM);if(o.length===0)return;let s={workbook:r,drawings:o};if(this.fireEvent(this.Event.BeforeFloatDomDelete,s),s.cancel)throw new hf}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomDeleted,()=>t.onCommandExecuted(e=>{if(e.id!==b5.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,i={workbook:n,drawings:r.filter(e=>e.drawingType===lm.DRAWING_DOM).map(e=>e.drawingId)};this.fireEvent(this.Event.FloatDomDeleted,i)})))}registerURLImageDownloader(e){return this._injector.get(ab).registerURLImageDownloader(e)}};oS.extend(fNt);var pNt=class extends P3{async insertCellImageAsync(e){let t=this._injector.get(zE),n=BE(M.UNIVER_SHEET,this._injector.get(z),t)?.with(N5);if(!n)return!1;let r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this.getRow(),col:this.getColumn()};return typeof e==`string`?n.insertCellImageByUrl(e,r):n.insertCellImageByFile(e,r)}async saveCellImagesAsync(e){let t=this._injector.get(R5),n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=this.getRange(),a=t.getCellImagesFromRanges(n,r,[i]);if(a.length===0)return!1;if(a.length===1)try{return await t.downloadSingleImage(a[0]),!0}catch(e){return console.error(`Failed to download image:`,e),!1}let o=[],s=e?.useCellAddress??!0,c=e?.useColumnIndex;s&&o.push(L5.CELL_ADDRESS),c!==void 0&&o.push(L5.COLUMN_VALUE),o.length===0&&o.push(L5.CELL_ADDRESS);try{return await t.saveImagesWithContext(a,{fileNameParts:o,columnIndex:c},n,r),!0}catch(e){return console.error(`Failed to save images:`,e),!1}}};P3.extend(pNt);function mNt(e={}){let{collaboration:t=!1,allowImageSize:n}=e;return{plugins:[[EN,{override:t?[[ib,null]]:[],allowImageSize:n}],zU,wW,D5,p7].filter(e=>!!e)}}var hNt=Ig(rst,{"sheets-drawing-ui":{title:`图片`,upload:{float:`浮动图片`,cell:`单元格图片`},panel:{title:`编辑图片`},save:{title:`保存单元格图片`,menuLabel:`保存单元格图片`,imageCount:`图片数量`,fileNameConfig:`文件名`,useRowCol:`使用单元格地址 (A1, B2...)`,useColumnValue:`使用某列的值`,selectColumn:`选择列`,cancel:`取消`,confirm:`保存`,saving:`保存中...`,error:`保存单元格图片失败`},"image-popup":{replace:`替换`,delete:`删除`,edit:`编辑`,crop:`裁剪`,reset:`重置大小`,flipH:`水平翻转`,flipV:`垂直翻转`},"update-status":{exceedMaxSize:`图片大小超过限制, 限制为{0}M`,invalidImageType:`图片类型错误`,exceedMaxCount:`图片只能一次上传{0}张`,invalidImage:`无效图片`},"drawing-anchor":{title:`锚点属性`,both:`与单元格一起移动和调整大小`,position:`移动但不调整大小与单元格`,none:`不要移动或调整大小与单元格`},"cell-image":{pasteTitle:`粘贴为单元格图片`,pasteContent:`粘贴单元格图片将覆盖单元格中的现有内容,继续粘贴`,pasteError:`此单元中不支持单元格图片复制粘贴`},permission:{dialog:{editErr:`该范围已被保护,目前无编辑权限。如需编辑,请联系创建者。`}},shortcut:{"drawing-view":`绘图视图`,"drawing-move-down":`下移绘图`,"drawing-move-up":`上移绘图`,"drawing-move-left":`左移绘图`,"drawing-move-right":`右移绘图`,"drawing-delete":`删除绘图`}}});function v7(e){"@babel/helpers - typeof";return v7=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},v7(e)}function gNt(e,t){if(v7(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(v7(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function _Nt(e){var t=gNt(e,`string`);return v7(t)==`symbol`?t:t+``}function y7(e,t,n){return(t=_Nt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function b7(e,t){return function(n,r){t(n,r,e)}}function x7(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var S7=class extends P{constructor(e){super(),this._univerInstanceService=e,y7(this,`_linkUpdate$`,new ao),y7(this,`linkUpdate$`,this._linkUpdate$.asObservable()),y7(this,`_linkMap`,new Map),y7(this,`_linkPositionMap`,new Map),this.disposeWithMe({dispose:()=>{this._linkUpdate$.complete()}})}_ensureMap(e,t){let n=this._linkMap.get(e);n||(n=new Map,this._linkMap.set(e,n));let r=n.get(t);r||(r=new Ih,n.set(t,r));let i=this._linkPositionMap.get(e);i||(i=new Map,this._linkPositionMap.set(e,i));let a=i.get(t);return a||(a=new Map,i.set(t,a)),{matrix:r,positionMap:a}}addHyperLink(e,t,n){let{matrix:r,positionMap:i}=this._ensureMap(e,t);return r.setValue(n.row,n.column,n),i.set(n.id,{row:n.row,column:n.column,link:n}),this._linkUpdate$.next({unitId:e,subUnitId:t,payload:n,type:`add`}),!0}updateHyperLink(e,t,n,r,i=!1){let{matrix:a,positionMap:o}=this._ensureMap(e,t),s=o.get(n);if(!s)return!0;let c=a.getValue(s.row,s.column);return!c||(Object.assign(c,r),this._linkUpdate$.next({unitId:e,subUnitId:t,payload:{display:c.display,payload:c.payload},id:n,type:`update`,silent:i}),!0)}updateHyperLinkRef(e,t,n,r,i=!1){let{matrix:a,positionMap:o}=this._ensureMap(e,t),s=o.get(n);if(!s)return!0;let c=a.getValue(s.row,s.column);return!c||c.id!==n?c=s.link:a.realDeleteValue(s.row,s.column),Object.assign(c,r),o.set(n,{...r,link:c}),a.setValue(r.row,r.column,c),this._linkUpdate$.next({unitId:e,subUnitId:t,payload:r,id:n,type:`updateRef`,silent:i}),!0}removeHyperLink(e,t,n){let{matrix:r,positionMap:i}=this._ensureMap(e,t),a=i.get(n);if(!a)return!1;i.delete(n);let o=r.getValue(a.row,a.column);return o&&o.id===n&&r.realDeleteValue(a.row,a.column),this._linkUpdate$.next({unitId:e,subUnitId:t,payload:a.link,type:`remove`}),!0}getHyperLink(e,t,n){let{matrix:r,positionMap:i}=this._ensureMap(e,t),a=i.get(n);if(a)return r.getValue(a.row,a.column)}getHyperLinkByLocation(e,t,n,r){let{matrix:i}=this._ensureMap(e,t);return i.getValue(n,r)}getHyperLinkByLocationSync(e,t,n,r){var i,a;let{matrix:o}=this._ensureMap(e,t),s=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET),c=s==null||(i=s.getSheetBySheetId(t))==null?void 0:i.getCellRaw(n,r),l=(c?.v??(c==null||(a=c.p)==null||(a=a.body)==null?void 0:a.dataStream.slice(0,-2))??``).toString(),u=o.getValue(n,r);if(u)return{...u,display:l}}getSubUnit(e,t){let{matrix:n}=this._ensureMap(e,t),r=[];return n.forValue((e,t,n)=>{n&&r.push(n)}),r}getUnit(e){let t=this._linkMap.get(e);return t?Array.from(t.keys()).map(t=>({unitId:e,subUnitId:t,links:this.getSubUnit(e,t)})):[]}deleteUnit(e){let t=this.getUnit(e);this._linkMap.delete(e),this._linkPositionMap.delete(e),this._linkUpdate$.next({type:`unload`,unitId:e,unitLinks:t})}getAll(){return Array.from(this._linkMap.keys()).map(e=>this.getUnit(e))}};S7=x7([b7(0,z)],S7);var C7={type:L.MUTATION,id:`sheets.mutation.add-hyper-link`,handler(e,t){if(!t)return!1;let n=e.get(S7),{unitId:r,subUnitId:i,link:a}=t;return n.addHyperLink(r,i,a)}},w7={type:L.MUTATION,id:`sheets.mutation.remove-hyper-link`,handler(e,t){if(!t)return!1;let n=e.get(S7),{unitId:r,subUnitId:i,id:a}=t;return n.removeHyperLink(r,i,a)}},vNt={type:L.COMMAND,id:`sheets.command.add-hyper-link`,async handler(e,t){if(!t)return!1;let n=e.get(R),r=e.get(fx),i=e.get(z),a=e.get(S7),o=e.get(MG),s=bG(i,t);if(!s)return!1;let{unitId:c,subUnitId:l,workbook:u,worksheet:d}=s,{link:f}=t,{payload:p,display:m,row:h,column:g,id:_}=f,v=d.getCell(h,g),y=d.getBlankCellDocumentModel(v,h,g),b=y.documentModel.getSnapshot(),x=F.deepClone(b.body);if(!x)return!1;let S;if(S=m?by.selection.replace({selection:{startOffset:0,endOffset:x.dataStream.length-2,collapsed:x.dataStream.length-2==0},body:{dataStream:`${m}`,customRanges:[{startIndex:0,endIndex:m.length-1,rangeType:Lp.HYPERLINK,rangeId:_,properties:{url:p}}]},doc:y.documentModel}):by.customRange.add({body:x,ranges:[{startOffset:0,endOffset:x.dataStream.length-2,collapsed:!1}],rangeId:_,rangeType:Lp.HYPERLINK,properties:{url:p,refId:_}}),!S)return!1;let C=Fv.apply(x,S.serialize()),w={p:{...b,body:C},t:Np.STRING},T=o.onWriteCell(u,d,h,g,w),E={unitId:c,subUnitId:l,cellValue:{[f.row]:{[f.column]:T}}},D={id:sK.id,params:E},O=oK(e,E),k={id:sK.id,params:O},A=[D],ee=[k],te=a.getHyperLinkByLocation(c,l,h,g);return te&&(A.push({id:w7.id,params:{unitId:c,subUnitId:l,id:te.id}}),ee.push({id:C7.id,params:{unitId:c,subUnitId:l,link:te}})),await Gm(A,n)?await o.onValidateCell(u,d,h,g)===!1?(Gm(ee,n),!1):(r.pushUndoRedo({redoMutations:A,undoMutations:ee,unitID:c}),!0):!1}},yNt={id:`sheets.command.add-rich-hyper-link`,type:L.COMMAND,handler:async(e,t)=>{if(!t)return!1;let{documentId:n,link:r}=t,i=e.get(R),a=rp(),{payload:o}=r,s=_Ae(e,{unitId:n,rangeId:a,rangeType:Lp.HYPERLINK,properties:{url:o,refId:a}});return s?i.syncExecuteCommand(s.id,s.params):!1}},bNt={type:L.COMMAND,id:`sheets.command.cancel-hyper-link`,handler(e,t){var n;if(!t)return!1;let r=e.get(R),i=e.get(fx),a=e.get(z),o=e.get(S7),s=bG(a,t);if(!s)return!1;let{row:c,column:l,id:u}=t,{unitId:d,subUnitId:f,worksheet:p}=s,m=p.getCell(c,l);if(!m)return!1;let h=p.getCellDocumentModelWithFormula(m,c,l);if(!h?.documentModel)return!1;let g=F.deepClone(h.documentModel.getSnapshot()),_=(n=g.body)==null||(n=n.customRanges)==null?void 0:n.find(e=>`${e.rangeId}`===u);if(!_)return!1;let v=by.customRange.delete({documentDataModel:h.documentModel,rangeId:_.rangeId});if(!v)return!1;let y=Fv.apply(g.body,v.serialize()),b=[],x=[],S={unitId:d,subUnitId:f,cellValue:{[c]:{[l]:{p:{...g,body:y},t:Np.STRING}}}};b.push({id:sK.id,params:S});let C=oK(e,S);x.push({id:sK.id,params:C});let w=o.getHyperLinkByLocation(d,f,c,l);return w&&(b.push({id:w7.id,params:{unitId:d,subUnitId:f,id:w.id}}),x.push({id:C7.id,params:{unitId:d,subUnitId:f,link:{...w}}})),Gm(b,r).result?(i.pushUndoRedo({redoMutations:b,undoMutations:x,unitID:d}),!0):!1}},xNt={type:L.COMMAND,id:`sheets.command.cancel-rich-hyper-link`,handler(e,t){var n;if(!t)return!1;let{id:r,documentId:i}=t,a=e.get(R),o=e.get(z).getUnit(i,M.UNIVER_DOC),s=o==null||(n=o.getBody())==null||(n=n.customRanges)==null?void 0:n.find(e=>e.rangeId===r),c=null;s&&s.endIndex===o.getBody().dataStream.length-3&&(c={dataStream:` `});let l=vAe(e,{unitId:i,rangeId:r,insert:c});return l?a.syncExecuteCommand(l.id,l.params):!1}},SNt={type:L.COMMAND,id:`sheets.command.update-hyper-link`,async handler(e,t){var n;if(!t)return!1;let r=e.get(R),i=e.get(fx),a=e.get(z),o=e.get(S7),s=e.get(MG),c=bG(a,{unitId:t.unitId,subUnitId:t.subUnitId});if(!c)return!1;let{payload:l,row:u,column:d,id:f}=t,{workbook:p,worksheet:m,unitId:h,subUnitId:g}=c,{payload:_,display:v=``}=l,y=m.getCell(u,d);if(!y)return!1;let b=m.getCellDocumentModelWithFormula(y,u,d);if(!b?.documentModel)return!1;let x=b.documentModel.getSnapshot(),S=(n=x.body)==null||(n=n.customRanges)==null?void 0:n.find(e=>`${e.rangeId}`===f);if(!S)return!1;let C=rp(),w=mv(b.documentModel.getBody(),S.startIndex,S.endIndex+1).textRuns?.[0];w&&(w.ed=v.length+1);let T=rD(e,{unitId:h,body:{dataStream:`${v}`,customRanges:[{rangeId:C,rangeType:Lp.HYPERLINK,startIndex:0,endIndex:v.length-1,properties:{url:_}}],textRuns:w?[w]:void 0},selection:{startOffset:S.startIndex,endOffset:S.endIndex+1,collapsed:!1},doc:b.documentModel});if(!T)return!1;let E=Fv.apply(F.deepClone(x.body),T.textX.serialize()),D={p:{...x,body:E},t:Np.STRING},O=s.onWriteCell(p,m,u,d,D),k={id:sK.id,params:{unitId:h,subUnitId:g,cellValue:{[u]:{[d]:O}}}},A=oK(e,k.params),ee={id:sK.id,params:A},te=[k],ne=[ee],re=o.getHyperLinkByLocation(h,g,u,d);return re&&(te.push({id:w7.id,params:{unitId:h,subUnitId:g,id:re.id}}),ne.push({id:C7.id,params:{unitId:h,subUnitId:g,link:re}})),Gm(te,r).result?await s.onValidateCell(p,m,u,d)===!1?(Gm(ne,r),!1):(i.pushUndoRedo({redoMutations:te,undoMutations:ne,unitID:h}),!0):!1}},CNt={type:L.COMMAND,id:`sheets.command.update-rich-hyper-link`,handler:(e,t)=>{var n;if(!t)return!1;let{documentId:r,payload:i,id:a}=t,o=e.get(z),s=e.get(R),c=o.getUnit(r,M.UNIVER_DOC);if(!c)return!1;let l=(n=c.getBody())==null||(n=n.customRanges)==null?void 0:n.find(e=>e.rangeId===a);if(!l)return!1;let u=t.payload.display??``,d=rp(),f=mv(c.getBody(),l.startIndex,l.endIndex+1).textRuns?.[0];f&&(f.ed=u.length+1);let p=rD(e,{unitId:r,body:{dataStream:`${u}`,customRanges:[{rangeId:d,rangeType:Lp.HYPERLINK,startIndex:0,endIndex:u.length-1,properties:{url:i.payload}}],textRuns:f?[f]:void 0},selection:{startOffset:l.startIndex,endOffset:l.endIndex+1,collapsed:!1},doc:c});return p?s.syncExecuteCommand(p.id,p.params):!1}},T7={type:L.MUTATION,id:`sheets.mutation.update-hyper-link`,handler(e,t){if(!t)return!1;let n=e.get(S7),{unitId:r,subUnitId:i,payload:a,id:o}=t;return n.updateHyperLink(r,i,o,a,!1)}},E7={type:L.MUTATION,id:`sheets.mutation.update-hyper-link-ref`,handler(e,t){if(!t)return!1;let n=e.get(S7),{unitId:r,subUnitId:i,id:a,row:o,column:s,silent:c}=t;return n.updateHyperLinkRef(r,i,a,{row:o,column:s},c)}},D7={type:L.MUTATION,id:`sheets.mutation.update-rich-hyper-link`,handler(e,t){var n;if(!t)return!1;let{unitId:r,subUnitId:i,row:a,col:o,id:s,url:c}=t,l=bG(e.get(z),{unitId:r,subUnitId:i});if(!l)return!1;let{worksheet:u}=l,d=u.getCellRaw(a,o),f=d==null||(n=d.p)==null||(n=n.body)==null||(n=n.customRanges)==null?void 0:n.find(e=>e.rangeType===Lp.HYPERLINK&&e.rangeId===s);return f&&(f.properties.url=c),!0}},wNt=`@univerjs/sheets-hyper-link`,TNt=`0.25.1`,ENt=`sheets-hyper-link.config`,DNt={},ONt=`SHEET_HYPER_LINK_PLUGIN`,O7=class extends P{constructor(e,t,n,r){super(),this._refRangeService=e,this._hyperLinkModel=t,this._selectionManagerService=n,this._commandService=r,y7(this,`_disposableMap`,new Map),y7(this,`_watchDisposableMap`,new Map),y7(this,`_rangeDisableMap`,new Map),y7(this,`_rangeWatcherMap`,new Map),y7(this,`_handlePositionChange`,(e,t,n,r,i)=>{let a={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row};return r?{redos:[{id:E7.id,params:{unitId:e,subUnitId:t,id:n.id,row:r.startRow,column:r.startColumn,silent:i}}],undos:[{id:E7.id,params:{unitId:e,subUnitId:t,id:n.id,row:a.startRow,column:a.startColumn,silent:i}}]}:{redos:[{id:w7.id,params:{unitId:e,subUnitId:t,id:n.id}}],undos:[{id:C7.id,params:{unitId:e,subUnitId:t,link:n}}]}}),this._initData(),this._initRefRange()}_registerPosition(e,t,n){let r=n.id,i={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row};this._disposableMap.set(r,this._refRangeService.registerRefRange(i,r=>{let a=sdt(i,r,{selectionManagerService:this._selectionManagerService}),o=Array.isArray(a)?a[0]:a;return o&&o.startColumn===i.startColumn&&o.startRow===i.startRow?{undos:[],redos:[]}:this._handlePositionChange(e,t,n,o,!1)},e,t))}_watchPosition(e,t,n){let r=n.id,i={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row};this._watchDisposableMap.set(r,this._refRangeService.watchRange(e,t,i,(r,i)=>{let{redos:a}=this._handlePositionChange(e,t,n,i,!0);Km(a,this._commandService,{onlyLocal:!0})},!0))}_unregisterPosition(e){this._disposableMap.get(e)?.dispose(),this._disposableMap.delete(e)}_unwatchPosition(e){this._watchDisposableMap.get(e)?.dispose(),this._watchDisposableMap.delete(e)}_registerRange(e,t,n,r=!1){if(n.startsWith(`#`)){let i=new URLSearchParams(n.slice(1)),a={gid:i.get(`gid`)??``,range:i.get(`range`)??``,rangeid:i.get(`rangeid`)??``};if(a.range&&a.gid){let i=a.gid,o=Cz(a.range).range;Kh(o)&&a.range!==`err`&&(this._rangeDisableMap.set(t,this._refRangeService.registerRefRange(o,r=>{let a=odt(o,r,{selectionManagerService:this._selectionManagerService});return a&&_z(a)===_z(o)?{redos:[],undos:[]}:{redos:[{id:T7.id,params:{unitId:e,subUnitId:i,id:t,payload:{payload:`#gid=${i}&range=${a?_z(a):`err`}`}}}],undos:[{id:T7.id,params:{unitId:e,subUnitId:i,id:t,payload:{payload:n}}}]}},e,i)),r||this._rangeWatcherMap.set(t,this._refRangeService.watchRange(e,i,o,(n,r)=>{this._hyperLinkModel.updateHyperLink(e,i,t,{payload:`#gid=${i}&range=${r?_z(r):`err`}`},!0)},!0)))}}}_unregisterRange(e){this._rangeDisableMap.get(e)?.dispose(),this._rangeDisableMap.delete(e)}_unwatchRange(e){this._rangeWatcherMap.get(e)?.dispose(),this._rangeWatcherMap.delete(e)}_initData(){this._hyperLinkModel.getAll().forEach(e=>{e.forEach(e=>{let{unitId:t,subUnitId:n,links:r}=e;r.forEach(e=>{this._registerPosition(t,n,e),this._watchPosition(t,n,e),this._registerRange(t,e.id,e.payload)})})})}_initRefRange(){this.disposeWithMe(this._hyperLinkModel.linkUpdate$.subscribe(e=>{switch(e.type){case`add`:this._registerPosition(e.unitId,e.subUnitId,e.payload),this._watchPosition(e.unitId,e.subUnitId,e.payload),this._registerRange(e.unitId,e.payload.id,e.payload.payload);break;case`remove`:this._unregisterPosition(e.payload.id),this._unwatchPosition(e.payload.id),this._unregisterRange(e.payload.id),this._unwatchRange(e.payload.id);break;case`updateRef`:{let{unitId:t,subUnitId:n,id:r,silent:i}=e,a=this._hyperLinkModel.getHyperLink(t,n,r);if(!a)return;this._unregisterPosition(r),this._registerPosition(t,n,a),i||(this._unwatchPosition(r),this._watchPosition(t,n,a));break}case`unload`:{let{unitLinks:t}=e;t.forEach(e=>{let{links:t}=e;t.forEach(e=>{this._unregisterPosition(e.id),this._unwatchPosition(e.id),this._unregisterRange(e.id),this._unwatchRange(e.id)})});break}case`update`:e.silent||this._unwatchRange(e.id),this._unregisterRange(e.id),this._registerRange(e.unitId,e.id,e.payload.payload,e.silent)}})),this.disposeWithMe(Wf(()=>{this._disposableMap.forEach(e=>{e.dispose()}),this._disposableMap.clear()}))}};O7=x7([b7(0,j(Qq)),b7(1,j(S7)),b7(2,j(HK)),b7(3,R)],O7);var k7=class extends P{constructor(e,t,n){super(),this._sheetInterceptorService=e,this._univerInstanceService=t,this._hyperLinkModel=n,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===lY.id){let t=e.params,n=t.unitId?this._univerInstanceService.getUnit(t.unitId):this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET);if(!n)return{redos:[],undos:[]};let r=n.getUnitId(),i=t.subUnitId||n.getActiveSheet()?.getSheetId();if(!i)return{redos:[],undos:[]};let a=this._hyperLinkModel.getSubUnit(r,i);return{redos:a.map(e=>({id:w7.id,params:{unitId:r,subUnitId:i,id:e.id}})),undos:a.map(e=>({id:C7.id,params:{unitId:r,subUnitId:i,link:e}}))}}return{redos:[],undos:[]}}}))}};k7=x7([b7(0,j(MG)),b7(1,z),b7(2,j(S7))],k7);var A7=class extends P{constructor(e,t,n){super(),this._commandService=e,this._univerInstanceService=t,this._refRangeService=n,y7(this,`_refRangeMap`,new Map),this._initWorkbookLoad(),this._initWorkbookUnload(),this._initSetRangesListener()}_enusreMap(e,t){let n=this._refRangeMap.get(e);n||(n=new Map,this._refRangeMap.set(e,n));let r=n.get(t);return r||(r=new Ih,n.set(t,r)),r}_isLegalRangeUrl(e,t){let n=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET);if(!n)return null;if(t&&t.startsWith(`#`)){let e=new URLSearchParams(t.slice(1)),r={gid:e.get(`gid`)??``,range:e.get(`range`)??``,rangeid:e.get(`rangeid`)??``};if(r.range&&r.gid){let e=r.gid,t=n.getSheetBySheetId(e);if(!t)return null;let i=Cz(r.range).range;if(Kh(i,t)&&r.range!==`err`)return{range:i,worksheet:t}}}return null}_registerRange(e,t,n,r,i){var a;let o=this._enusreMap(e,t);if((a=i.body)!=null&&(a=a.customRanges)!=null&&a.some(t=>t.rangeType===Lp.HYPERLINK&&this._isLegalRangeUrl(e,t.properties?.url))){var s;let a=new Gf,c=!1;(s=i.body)==null||(s=s.customRanges)==null||s.forEach(i=>{if(i.rangeType===Lp.HYPERLINK){let o=i.properties?.url,s=this._isLegalRangeUrl(e,o);if(s){let{range:l,worksheet:u}=s;c=!0,a.add(this._refRangeService.registerRefRange(l,a=>{let s=Xq(l,a);return s&&l_.equals(s,l)?{preRedos:[],preUndos:[],redos:[],undos:[]}:{preRedos:[{id:D7.id,params:{unitId:e,subUnitId:t,row:n,col:r,id:i.rangeId,url:`#gid=${t}&range=${s?_z(s):`err`}`}}],undos:[{id:D7.id,params:{unitId:e,subUnitId:t,row:n,col:r,id:i.rangeId,url:o}}],redos:[]}},u.getUnitId(),u.getSheetId()))}}}),c&&o.setValue(n,r,a)}}_initWorkbookLoad(){let e=e=>{let t=e.getUnitId();e.getSheets().forEach(e=>{let n=e.getSheetId(),r=this._enusreMap(t,n);e.getCellMatrix().forValue((e,i,a)=>{let o=r.getValue(e,i);o&&o.dispose(),a&&a.p&&this._registerRange(t,n,e,i,a.p)})})};this._univerInstanceService.getAllUnitsForType(M.UNIVER_SHEET).forEach(t=>{e(t)}),this.disposeWithMe(this._univerInstanceService.unitAdded$.subscribe(t=>{let{unit:n}=t;n.type===M.UNIVER_SHEET&&e(n)}))}_initWorkbookUnload(){this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(e=>{if(e.type===M.UNIVER_SHEET){let t=e,n=t.getUnitId();t.getSheets().forEach(e=>{let t=e.getSheetId();this._enusreMap(n,t).forValue((e,t,n)=>{n&&n.dispose()})}),this._refRangeMap.delete(n)}}))}_initSetRangesListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===sK.id){let{unitId:t,subUnitId:n,cellValue:r}=e.params,i=this._enusreMap(t,n);r&&new Ih(r).forValue((e,r,a)=>{let o=i.getValue(e,r);o&&o.dispose(),a&&a.p&&this._registerRange(t,n,e,r,a.p)})}})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===D7.id){let{unitId:t,subUnitId:n,row:r,col:i}=e.params,a=bG(this._univerInstanceService,{unitId:t,subUnitId:n}),o=this._enusreMap(t,n).getValue(r,i);if(o&&o.dispose(),a){let{worksheet:e}=a,o=e.getCellRaw(r,i);o&&o.p&&this._registerRange(t,n,r,i,o.p)}}}))}};A7=x7([b7(0,R),b7(1,z),b7(2,j(Qq))],A7);var j7=class extends P{constructor(e,t,n,r){super(),this._sheetInterceptorService=e,this._hyperLinkModel=t,this._selectionManagerService=n,this._univerInstanceService=r,this._initCommandInterceptor(),this._initAfterEditor()}_initCommandInterceptor(){this._initSetRangeValuesCommandInterceptor(),this._initClearSelectionCommandInterceptor()}_initSetRangeValuesCommandInterceptor(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===sq.id){let t=e.params,{unitId:n,subUnitId:r}=t,i=[],a=[];return t.cellValue&&new Ih(t.cellValue).forValue((e,t)=>{let o=this._hyperLinkModel.getHyperLinkByLocation(n,r,e,t);o&&(i.push({id:w7.id,params:{unitId:n,subUnitId:r,id:o.id}}),a.push({id:C7.id,params:{unitId:n,subUnitId:r,link:o}}))}),{undos:a,redos:i}}return{redos:[],undos:[]}}}))}_initClearSelectionCommandInterceptor(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===XJ.id||e.id===JK.id||e.id===YK.id){let t=[],n=[],r=this._selectionManagerService.getCurrentLastSelection(),i=bG(this._univerInstanceService,e.params);if(r&&i){let{unitId:e,subUnitId:a}=i;$g.foreach(r.range,(r,i)=>{let o=this._hyperLinkModel.getHyperLinkByLocation(e,a,r,i);o&&(t.push({id:w7.id,params:{unitId:e,subUnitId:a,id:o.id}}),n.push({id:C7.id,params:{unitId:e,subUnitId:a,link:o}}))})}return{redos:t,undos:n}}return{redos:[],undos:[]}}}))}_initAfterEditor(){this.disposeWithMe(this._sheetInterceptorService.writeCellInterceptor.intercept(AG,{handler:(e,t,n)=>{if(!e||e.p)return n(e);if(typeof e.v==`string`&&F.isLegalUrl(e.v)&&e.v[e.v.length-1]!==` `){let{unitId:r,subUnitId:i,row:a,col:o}=t,s=F.normalizeUrl(e.v),c=this._univerInstanceService.getUnit(r,M.UNIVER_SHEET)?.getSheetBySheetId(i);if(!c)return n(e);let l=c.getBlankCellDocumentModel(e,a,o);if(!l.documentModel)return n(e);let u=by.selection.replace({selection:{startOffset:0,endOffset:e.v.length,collapsed:!1},body:{dataStream:`${e.v}`,customRanges:[{startIndex:0,endIndex:e.v.length-1,rangeId:rp(),rangeType:Lp.HYPERLINK,properties:{url:s}}]},doc:l.documentModel});if(!u)return n(e);let d=l.documentModel.getBody();return Fv.apply(d,u.serialize()),n({...e,p:{id:tf,body:d,documentStyle:{pageSize:{width:1/0,height:1/0}}}})}return n(e)}}))}};j7=x7([b7(0,j(MG)),b7(1,j(S7)),b7(2,j(HK)),b7(3,z)],j7);var M7=class extends P{constructor(e){super(),this._commandService=e,this._registerCommands()}_registerCommands(){[vNt,SNt,bNt,CNt,xNt,yNt,C7,T7,w7,E7,D7].forEach(e=>{this._commandService.registerCommand(e)})}};M7=x7([b7(0,R)],M7);var N7=function(e){return e.SHEET=`gid`,e.RANGE=`range`,e.DEFINE_NAME=`rangeid`,e.INVALID=`invalid`,e.URL=`url`,e}({}),P7=class{constructor(e,t,n){this._univerInstanceService=e,this._localeService=t,this._definedNamesService=n}buildHyperLink(e,t){if(typeof e==`string`)return`#rangeid=${e}`;let n=`#gid=${t}`;return e&&(n+=`&range=${_z(e)}`),n}parseHyperLink(e){if(e.startsWith(`#`)){let t=new URLSearchParams(e.slice(1)),n={gid:t.get(`gid`)??``,range:t.get(`range`)??``,rangeid:t.get(`rangeid`)??``,unitid:t.get(`unitid`)??``},r=this._getURLName(n);return{type:r.type,name:r.name,url:e,searchObj:n}}return{type:`url`,name:e,url:e,searchObj:null}}_getURLName(e){let{gid:t,range:n,rangeid:r,unitid:i}=e,a=i?this._univerInstanceService.getUnit(i,M.UNIVER_SHEET):this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET),o={type:`invalid`,name:this._localeService.t(`sheets-hyper-link.message.refError`)};if(!a)return o;let s=t?a.getSheetBySheetId(t):a.getActiveSheet(),c=s?.getName()??``;if(n){if(!s)return o;let e=Cz(n).range;return Kh(e,s)&&n!==`err`?{type:`range`,name:vz(c,e)}:o}if(r){let e=this._definedNamesService.getValueById(a.getUnitId(),r);return e?{type:`rangeid`,name:e.formulaOrRefString}:o}if(t){let e=a.getSheetBySheetId(t);return e?{type:`gid`,name:e.getName()}:o}return o}};P7=x7([b7(0,z),b7(1,j(Xb)),b7(2,Mz)],P7);var F7=class extends ax{constructor(e=DNt,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{...r}=Qi({},DNt,this._config);this._configService.setConfig(ENt,r)}onStarting(){df(this._injector,[[S7],[P7],[M7],[O7],[j7],[k7],[A7]]),ff(this._injector,[[O7],[M7],[j7],[k7],[A7]])}};y7(F7,`pluginName`,ONt),y7(F7,`packageName`,wNt),y7(F7,`version`,TNt),y7(F7,`type`,M.UNIVER_SHEET),F7=x7([sx(mZ),b7(1,j(We)),b7(2,Mm)],F7);var kNt={"sheets-hyper-link":{message:{refError:`错误的引用`}}};function I7(e){return{type:e.type,operator:e.operator,formula1:e.formula1,formula2:e.formula2,allowBlank:e.allowBlank}}function L7(e){return{error:e.error,errorStyle:e.errorStyle,errorTitle:e.errorTitle,imeMode:e.imeMode,prompt:e.prompt,promptTitle:e.promptTitle,showDropDown:e.showDropDown,showErrorMessage:e.showErrorMessage,showInputMessage:e.showInputMessage,renderMode:e.renderMode,bizInfo:e.bizInfo}}var R7=function(e){return e[e.SETTING=0]=`SETTING`,e[e.RANGE=1]=`RANGE`,e[e.OPTIONS=2]=`OPTIONS`,e[e.ALL=3]=`ALL`,e}({});function z7(e){"@babel/helpers - typeof";return z7=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},z7(e)}function ANt(e,t){if(z7(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(z7(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function jNt(e){var t=ANt(e,`string`);return z7(t)==`symbol`?t:t+``}function B7(e,t,n){return(t=jNt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function V7(e,t){return function(n,r){t(n,r,e)}}function H7(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var U7=class extends P{constructor(e){super(),this._logService=e,B7(this,`_model`,new Map),B7(this,`_ruleChange$`,new ao),B7(this,`ruleChange$`,this._ruleChange$.asObservable()),B7(this,`ruleChangeDebounce$`,this.ruleChange$.pipe(Ks(20))),this.disposeWithMe({dispose:()=>{this._ruleChange$.complete()}})}_ensureMap(e,t){this._model.has(e)||this._model.set(e,new Map);let n=this._model.get(e);if(n.has(t))return n.get(t);let r={map:new Map,list:[]};return n.set(t,r),r}_addSubUnitRule(e,t,n){let{map:r,list:i}=e,a=(Array.isArray(t)?t:[t]).filter(e=>!r.has(e.uid));typeof n==`number`&&n<i.length?i.splice(n,0,...a):i.push(...a),a.forEach(e=>{r.set(e.uid,e)})}_removeSubUnitRule(e,t){let{map:n,list:r}=e,i=r.findIndex(e=>e.uid===t);i>-1&&(r.splice(i,1),n.delete(t))}_updateSubUnitRule(e,t,n){let{map:r,list:i}=e,a=r.get(t),o=i.findIndex(e=>t===e.uid);if(!a)throw Error(`Data validation rule is not found, ruleId: ${t}.`);let s={...a};switch(n.type){case 1:s.ranges=n.payload;break;case 0:Object.assign(s,I7(n.payload));break;case 2:Object.assign(s,L7(n.payload));break;case 3:Object.assign(s,n.payload)}return i[o]=s,r.set(t,s),s}_addRuleSideEffect(e,t,n,r){if(!this._ensureMap(e,t).map.get(n.uid))return{rule:n,type:`add`,unitId:e,subUnitId:t,source:r}}addRule(e,t,n,r,i){try{let a=this._ensureMap(e,t),o=(Array.isArray(n)?n:[n]).map(n=>this._addRuleSideEffect(e,t,n,r));this._addSubUnitRule(a,n,i),o.forEach(e=>{e&&this._ruleChange$.next(e)})}catch(e){this._logService.error(e)}}updateRule(e,t,n,r,i){try{let a=this._ensureMap(e,t),o=F.deepClone(a.map.get(n));if(!o)throw Error(`Data validation rule is not found, ruleId: ${n}.`);let s=this._updateSubUnitRule(a,n,r);this._ruleChange$.next({rule:s,type:`update`,unitId:e,subUnitId:t,source:i,updatePayload:r,oldRule:o})}catch(e){this._logService.error(e)}}removeRule(e,t,n,r){try{let i=this._ensureMap(e,t),a=i.map.get(n);a&&(this._removeSubUnitRule(i,n),this._ruleChange$.next({rule:a,type:`remove`,unitId:e,subUnitId:t,source:r}))}catch(e){this._logService.error(e)}}getRuleById(e,t,n){return this._ensureMap(e,t).map.get(n)}getRuleIndex(e,t,n){return this._ensureMap(e,t).list.findIndex(e=>e.uid===n)}getRules(e,t){return[...this._ensureMap(e,t).list]}getUnitRules(e){let t=this._model.get(e);if(!t)return[];let n=[];return t.forEach((e,t)=>{n.push([t,e.list])}),n}deleteUnitRules(e){this._model.delete(e)}getSubUnitIds(e){return Array.from(this._model.get(e)?.keys()??[])}getAll(){return Array.from(this._model.keys()).map(e=>[e,this.getUnitRules(e)])}};U7=H7([V7(0,Lm)],U7);var W7={type:L.MUTATION,id:`data-validation.mutation.addRule`,handler(e,t){if(!t)return!1;let{unitId:n,subUnitId:r,rule:i,index:a,source:o=`command`}=t;return e.get(U7).addRule(n,r,i,o,a),!0}},G7={type:L.MUTATION,id:`data-validation.mutation.removeRule`,handler(e,t){if(!t)return!1;let{unitId:n,subUnitId:r,ruleId:i,source:a=`command`}=t,o=e.get(U7);return Array.isArray(i)?i.forEach(e=>{o.removeRule(n,r,e,a)}):o.removeRule(n,r,i,a),!0}},K7={type:L.MUTATION,id:`data-validation.mutation.updateRule`,handler(e,t){if(!t)return!1;let{unitId:n,subUnitId:r,ruleId:i,payload:a,source:o=`command`}=t;return e.get(U7).updateRule(n,r,i,a,o),!0}},MNt=`SHEET_DATA_VALIDATION_PLUGIN`,q7=class extends P{constructor(e,t,n){super(),this._resourceManagerService=e,this._univerInstanceService=t,this._dataValidationModel=n,this._initSnapshot()}_initSnapshot(){let e=e=>{let t=this._dataValidationModel.getUnitRules(e),n={};return t?(t.forEach(([e,t])=>{n[e]=t}),JSON.stringify(n)):``},t=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:MNt,businesses:[M.UNIVER_SHEET],toJson:t=>e(t),parseJson:e=>t(e),onUnLoad:e=>{this._dataValidationModel.deleteUnitRules(e)},onLoad:(e,t)=>{Object.keys(t).forEach(n=>{t[n].forEach(t=>{this._dataValidationModel.addRule(e,n,t,`patched`)})})}}))}};q7=H7([V7(0,Py),V7(1,z),V7(2,j(U7))],q7);var NNt=`@univerjs/data-validation`,PNt=`0.25.1`,J7=class{constructor(){B7(this,`_validatorByScopes`,new Map),B7(this,`_validatorMap`,new Map),B7(this,`_validatorsChange$`,new so(void 0)),B7(this,`validatorsChange$`,this._validatorsChange$.asObservable())}_addValidatorToScope(e,t){this._validatorByScopes.has(t)||this._validatorByScopes.set(t,[]);let n=this._validatorByScopes.get(t);if(n.findIndex(t=>t.id===e.id)>-1)throw Error(`Validator item with the same id ${e.id} has already been added!`);n.push(e)}_removeValidatorFromScope(e,t){let n=this._validatorByScopes.get(t);if(!n)return;let r=n.findIndex(t=>t.id===e.id);r>-1&&n.splice(r,1)}register(e){return this._validatorMap.set(e.id,e),Array.isArray(e.scopes)?e.scopes.forEach(t=>{this._addValidatorToScope(e,t)}):this._addValidatorToScope(e,e.scopes),this._validatorsChange$.next(),Wf(()=>{this._validatorMap.delete(e.id),Array.isArray(e.scopes)?e.scopes.forEach(t=>{this._removeValidatorFromScope(e,t)}):this._removeValidatorFromScope(e,e.scopes),this._validatorsChange$.next()})}getValidatorItem(e){return this._validatorMap.get(e)}getValidatorsByScope(e){return this._validatorByScopes.get(e)}},FNt={type:L.COMMAND,id:`data-validation.command.addRule`,async handler(e,t){if(e.get(Lm).error("[Deprecated]: `AddDataValidationCommand` is deprecated, please use `AddSheetDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!t)return!1;let{rule:n,unitId:r,subUnitId:i}=t,a=e.get(R),o=e.get(fx),s={...t,rule:{...t.rule,ranges:[t.rule.range]}},c=[{id:W7.id,params:s}],l=[{id:G7.id,params:{unitId:r,subUnitId:i,ruleId:n.uid}}];return o.pushUndoRedo({unitID:r,redoMutations:c,undoMutations:l}),await a.executeCommand(W7.id,s),!0}},INt={type:L.COMMAND,id:`data-validation.command.removeRule`,handler(e,t){if(e.get(Lm).error("[Deprecated]: `RemoveDataValidationCommand` is deprecated, please use `RemoveSheetDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!t)return!1;let{unitId:n,subUnitId:r,ruleId:i}=t,a=e.get(R),o=e.get(fx),s=e.get(U7),c=[{id:G7.id,params:t}],l=[{id:W7.id,params:{unitId:n,subUnitId:r,rule:{...s.getRuleById(n,r,i)},index:s.getRuleIndex(n,r,i)}}];return o.pushUndoRedo({undoMutations:l,redoMutations:c,unitID:t.unitId}),a.executeCommand(G7.id,t),!0}},LNt={type:L.COMMAND,id:`data-validation.command.updateDataValidationSetting`,handler(e,t){if(e.get(Lm).warn("[Deprecated]: `UpdateDataValidationOptionsCommand` is deprecated, please use `UpdateSheetDataValidationOptionsCommand` in `@univerjs/sheets-data-validation` instead!"),!t)return!1;let n=e.get(R),r=e.get(fx),i=e.get(U7),{unitId:a,subUnitId:o,ruleId:s,options:c}=t,l=i.getRuleById(a,o,s);if(!l)return!1;let u={unitId:a,subUnitId:o,ruleId:s,payload:{type:2,payload:c}},d=[{id:K7.id,params:u}],f={unitId:a,subUnitId:o,ruleId:s,payload:{type:2,payload:L7(l)}},p=[{id:K7.id,params:f}];return r.pushUndoRedo({unitID:a,redoMutations:d,undoMutations:p}),n.executeCommand(K7.id,u),!0}},RNt={type:L.COMMAND,id:`data-validation.command.updateDataValidationOptions`,handler(e,t){if(e.get(Lm).error("[Deprecated]: `UpdateDataValidationSettingCommand` is deprecated, please use `UpdateSheetDataValidationSettingCommand` in `@univerjs/sheets-data-validation` instead!"),!t)return!1;let n=e.get(R),r=e.get(fx),i=e.get(U7),a=e.get(J7),{unitId:o,subUnitId:s,ruleId:c,setting:l}=t,u=a.getValidatorItem(l.type);if(!u)return!1;let d=i.getRuleById(o,s,c);if(!d)return!1;let f={...d,...l};if(!u.validatorFormula(f,o,s).success)return!1;let p={unitId:o,subUnitId:s,ruleId:c,payload:{type:0,payload:{...l,...u.normalizeFormula(f,o,s)}}},m=[{id:K7.id,params:p}],h={unitId:o,subUnitId:s,ruleId:c,payload:{type:0,payload:I7(d)}},g=[{id:K7.id,params:h}];return r.pushUndoRedo({unitID:o,redoMutations:m,undoMutations:g}),n.executeCommand(K7.id,p),!0}},zNt={type:L.COMMAND,id:`data-validation.command.removeAll`,handler(e,t){if(e.get(Lm).error("[Deprecated]: `RemoveAllDataValidationCommand` is deprecated, please use `RemoveSheetAllDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!t)return!1;let{unitId:n,subUnitId:r}=t,i=e.get(R),a=e.get(U7),o=e.get(fx),s=[...a.getRules(n,r)],c={unitId:n,subUnitId:r,ruleId:s.map(e=>e.uid)},l=[{id:G7.id,params:c}],u=[{id:W7.id,params:{unitId:n,subUnitId:r,rule:s}}];return o.pushUndoRedo({redoMutations:l,undoMutations:u,unitID:n}),i.executeCommand(G7.id,c),!0}},BNt=`data-validation.config`,VNt={},Y7=class extends ax{constructor(e=VNt,t,n,r){super(),this._config=e,this._injector=t,this._commandService=n,this._configService=r;let{...i}=Qi({},VNt,this._config);this._configService.setConfig(BNt,i)}onStarting(){[[U7],[J7],[q7]].forEach(e=>this._injector.add(e)),[FNt,zNt,LNt,RNt,INt,W7,K7,G7].forEach(e=>{this._commandService.registerCommand(e)})}onReady(){this._injector.get(q7)}};B7(Y7,`pluginName`,`UNIVER_DATA_VALIDATION_PLUGIN`),B7(Y7,`packageName`,NNt),B7(Y7,`version`,PNt),B7(Y7,`type`,M.UNIVER_SHEET),Y7=H7([V7(1,j(We)),V7(2,R),V7(3,Mm)],Y7),Mx.BETWEEN,Mx.NOT_BETWEEN,Mx.BETWEEN,Mx.EQUAL,Mx.GREATER_THAN,Mx.GREATER_THAN_OR_EQUAL,Mx.LESS_THAN,Mx.LESS_THAN_OR_EQUAL,Mx.NOT_BETWEEN,Mx.NOT_EQUAL;var HNt={[Mx.BETWEEN]:`data-validation.ruleName.between`,[Mx.EQUAL]:`data-validation.ruleName.equal`,[Mx.GREATER_THAN]:`data-validation.ruleName.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`data-validation.ruleName.greaterThanOrEqual`,[Mx.LESS_THAN]:`data-validation.ruleName.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`data-validation.ruleName.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`data-validation.ruleName.notBetween`,[Mx.NOT_EQUAL]:`data-validation.ruleName.notEqual`,NONE:`data-validation.ruleName.legal`},UNt={[Mx.BETWEEN]:`data-validation.errorMsg.between`,[Mx.EQUAL]:`data-validation.errorMsg.equal`,[Mx.GREATER_THAN]:`data-validation.errorMsg.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`data-validation.errorMsg.greaterThanOrEqual`,[Mx.LESS_THAN]:`data-validation.errorMsg.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`data-validation.errorMsg.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`data-validation.errorMsg.notBetween`,[Mx.NOT_EQUAL]:`data-validation.errorMsg.notEqual`,NONE:`data-validation.errorMsg.legal`},WNt=`{FORMULA1}`,GNt=`{FORMULA2}`,KNt=`{TYPE}`,qNt={[Mx.BETWEEN]:`data-validation.operators.between`,[Mx.EQUAL]:`data-validation.operators.equal`,[Mx.GREATER_THAN]:`data-validation.operators.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`data-validation.operators.greaterThanOrEqual`,[Mx.LESS_THAN]:`data-validation.operators.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`data-validation.operators.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`data-validation.operators.notBetween`,[Mx.NOT_EQUAL]:`data-validation.operators.notEqual`},X7=class{constructor(e,t){this.localeService=e,this.injector=t,B7(this,`offsetFormulaByRange`,!0),B7(this,`formulaInput`,void 0),B7(this,`canvasRender`,null),B7(this,`dropdownType`,void 0),B7(this,`optionsInput`,void 0),B7(this,`skipDefaultFontRender`,void 0)}get operatorNames(){return this.operators.map(e=>this.localeService.t(qNt[e]))}get titleStr(){return this.localeService.t(this.title)}generateRuleName(e){if(!e.operator)return this.localeService.t(HNt.NONE).replace(KNt,this.titleStr);let t=this.localeService.t(HNt[e.operator]).replace(WNt,e.formula1??``).replace(GNt,e.formula2??``);return`${this.titleStr} ${t}`}generateRuleErrorMessage(e,t){return e.operator?`${this.localeService.t(UNt[e.operator]).replace(WNt,e.formula1??``).replace(GNt,e.formula2??``)}`:this.localeService.t(UNt.NONE).replace(KNt,this.titleStr)}getExtraStyle(e,t,n,r,i){}getRuleFinalError(e,t){return e.showErrorMessage&&e.error?e.error:this.generateRuleErrorMessage(e,t)}isEmptyCellValue(e){return e===``||e==null}normalizeFormula(e,t,n){return{formula1:e.formula1,formula2:e.formula2}}async isValidType(e,t,n){return!0}transform(e,t,n){return e}async validatorIsEqual(e,t,n){let{formula1:r}=t,{value:i}=e;return Number.isNaN(r)?!0:i===r}async validatorIsNotEqual(e,t,n){let{formula1:r}=t;return Number.isNaN(r)?!0:e.value!==r}async validatorIsBetween(e,t,n){let{formula1:r,formula2:i}=t;if(Number.isNaN(r)||Number.isNaN(i))return!0;let a=Math.min(r,i),o=Math.max(r,i);return e.value>=a&&e.value<=o}async validatorIsNotBetween(e,t,n){let{formula1:r,formula2:i}=t;if(Number.isNaN(r)||Number.isNaN(i))return!0;let a=Math.min(r,i),o=Math.max(r,i);return e.value<a||e.value>o}async validatorIsGreaterThan(e,t,n){let{formula1:r}=t;return Number.isNaN(r)?!0:e.value>r}async validatorIsGreaterThanOrEqual(e,t,n){let{formula1:r}=t;return Number.isNaN(r)?!0:e.value>=r}async validatorIsLessThan(e,t,n){let{formula1:r}=t;return Number.isNaN(r)?!0:e.value<r}async validatorIsLessThanOrEqual(e,t,n){let{formula1:r}=t;return Number.isNaN(r)?!0:e.value<=r}async validator(e,t){let{value:n,unitId:r,subUnitId:i}=e,a=this.isEmptyCellValue(n),{allowBlank:o=!0,operator:s}=t;if(a)return o;let c=await this.parseFormula(t,r,i,e.row,e.column);if(!c.isFormulaValid||!await this.isValidType(e,c,t))return!1;if(!s)return!0;let l=this.transform(e,c,t);switch(s){case Mx.BETWEEN:return this.validatorIsBetween(l,c,t);case Mx.EQUAL:return this.validatorIsEqual(l,c,t);case Mx.GREATER_THAN:return this.validatorIsGreaterThan(l,c,t);case Mx.GREATER_THAN_OR_EQUAL:return this.validatorIsGreaterThanOrEqual(l,c,t);case Mx.LESS_THAN:return this.validatorIsLessThan(l,c,t);case Mx.LESS_THAN_OR_EQUAL:return this.validatorIsLessThanOrEqual(l,c,t);case Mx.NOT_BETWEEN:return this.validatorIsNotBetween(l,c,t);case Mx.NOT_EQUAL:return this.validatorIsNotEqual(l,c,t);default:throw Error(`Unknown operator.`)}}};X7=H7([V7(0,j(Xb)),V7(1,j(We))],X7);function Z7(e){"@babel/helpers - typeof";return Z7=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Z7(e)}function JNt(e,t){if(Z7(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Z7(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function YNt(e){var t=JNt(e,`string`);return Z7(t)==`symbol`?t:t+``}function Q7(e,t,n){return(t=YNt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $7(e,t){return function(n,r){t(n,r,e)}}function e9(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var t9=class extends P{constructor(e,t,n){super(),this._commandService=e,this._univerInstanceService=t,this._sheetDataValidationModel=n,Q7(this,`_cacheMatrix`,new Map),Q7(this,`_dirtyRanges$`,new ao),Q7(this,`dirtyRanges$`,this._dirtyRanges$.asObservable()),this._initDirtyRanges(),this._initSheetRemove()}_initDirtyRanges(){this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(e.id===sK.id&&!t?.onlyLocal){let{cellValue:t,unitId:n,subUnitId:r}=e.params;if(t){let e=new Ih(t).getDataRange();if(e.endRow===-1)return;let i=this._sheetDataValidationModel.getRules(n,r),a=[];for(let e of i)a.push(...e.ranges);let o=[];for(let t of a){let n=a_(t,e);n&&o.push(n)}o.length&&this.markRangeDirty(n,r,o,!0)}}}))}_initSheetRemove(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===Oq.id){var t;let{unitId:n,subUnitId:r}=e.params;(t=this._cacheMatrix.get(n))==null||t.delete(r)}})),this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(e=>{e.type===M.UNIVER_SHEET&&this._cacheMatrix.delete(e.getUnitId())}))}_ensureCache(e,t){let n=this._cacheMatrix.get(e);n||(n=new Map,this._cacheMatrix.set(e,n));let r=n.get(t);return r||(r=new Ih,n.set(t,r)),r}ensureCache(e,t){return this._ensureCache(e,t)}addRule(e,t,n){this.markRangeDirty(e,t,n.ranges)}removeRule(e,t,n){this._deleteRange(e,t,n.ranges)}markRangeDirty(e,t,n,r){let i=this._ensureCache(e,t);n.forEach(e=>{$g.foreach(e,(e,t)=>{i.getValue(e,t)!==void 0&&i.setValue(e,t,void 0)})}),this._dirtyRanges$.next({unitId:e,subUnitId:t,ranges:n,isSetRange:r})}_deleteRange(e,t,n){let r=this._ensureCache(e,t);n.forEach(e=>{$g.foreach(e,(e,t)=>{r.realDeleteValue(e,t)})}),this._dirtyRanges$.next({unitId:e,subUnitId:t,ranges:n})}getValue(e,t,n,r){return this._ensureCache(e,t).getValue(n,r)}};t9=e9([$7(0,j(R)),$7(1,j(z)),$7(2,j(U7))],t9);function n9(e){var t;return e==null||(t=e[0])==null||(t=t[0])==null?void 0:t.v}function r9(e){var t;return e==null||(t=e[0])==null?void 0:t[0]}function i9(e){return!TR.has(e)}function a9(e,t){return t.getValidatorItem(e)?.offsetFormulaByRange??!1}var o9=class extends P{constructor(e,t,n,r,i){super(),this._instanceSrv=e,this._registerOtherFormulaService=t,this._dataValidationModel=n,this._dataValidationCacheService=r,this._validatorRegistryService=i,Q7(this,`_ruleFormulaMap`,new Map),Q7(this,`_ruleFormulaMap2`,new Map),this._initFormulaResultHandler(),this._initDirtyRanges()}dispose(){super.dispose(),this._ruleFormulaMap.clear(),this._ruleFormulaMap2.clear()}_initFormulaResultHandler(){this.disposeWithMe(this._registerOtherFormulaService.formulaResult$.subscribe(e=>{for(let t in e){let n=e[t];if(this._instanceSrv.getUnitType(t)===M.UNIVER_SHEET)for(let e in n){let r=n[e],{ruleFormulaMap:i}=this._ensureMaps(t,e);r.forEach(n=>{let r=i.get(n.extra?.ruleId),a=this._dataValidationModel.getRuleById(t,e,n.extra?.ruleId);a&&r&&this._dataValidationCacheService.markRangeDirty(t,e,a.ranges)})}}}))}_ensureMaps(e,t){let n=this._ruleFormulaMap.get(e),r=this._ruleFormulaMap2.get(e);n||(n=new Map,this._ruleFormulaMap.set(e,n)),r||(r=new Map,this._ruleFormulaMap2.set(e,r));let i=n.get(t);i||(i=new Map,n.set(t,i));let a=r.get(t);return a||(a=new Map,r.set(t,a)),{ruleFormulaMap:i,ruleFormulaMap2:a}}_registerFormula(e,t,n,r,i){return this._registerOtherFormulaService.registerFormulaWithRange(e,t,r,i,{ruleId:n},Oit.DATA_VALIDATION_CUSTOM,n)}_handleDirtyRanges(e,t,n){this._dataValidationModel.getRules(e,t).forEach(r=>{let i=r.ranges;l_.doAnyRangesIntersect(i,n)&&this.makeRuleDirty(e,t,r.uid)})}_initDirtyRanges(){this.disposeWithMe(this._dataValidationCacheService.dirtyRanges$.subscribe(e=>{e.isSetRange&&this._handleDirtyRanges(e.unitId,e.subUnitId,e.ranges)}))}deleteByRuleId(e,t,n){let{ruleFormulaMap:r,ruleFormulaMap2:i}=this._ensureMaps(e,t),a=this._dataValidationModel.getRuleById(e,t,n),o=r.get(n);if(!a||!o)return;let s=r.get(n);s&&(r.delete(n),this._registerOtherFormulaService.deleteFormula(e,t,[s.formulaId]));let c=i.get(n);c&&(i.delete(n),this._registerOtherFormulaService.deleteFormula(e,t,[c.formulaId]))}_addFormulaByRange(e,t,n,r,i,a){let{ruleFormulaMap:o,ruleFormulaMap2:s}=this._ensureMaps(e,t),c=a[0].startRow,l=a[0].startColumn;if(r&&Vh(r)){let i=this._registerFormula(e,t,n,r,a);o.set(n,{formula:r,originCol:l,originRow:c,formulaId:i})}if(i&&Vh(i)){let r=this._registerFormula(e,t,n,i,a);s.set(n,{formula:i,originCol:l,originRow:c,formulaId:r})}}addRule(e,t,n){if(a9(n.type,this._validatorRegistryService)){let{ranges:r,formula1:i,formula2:a,uid:o}=n;this._addFormulaByRange(e,t,o,i,a,r)}}async getCellFormulaValue(e,t,n,r,i){var a;let{ruleFormulaMap:o}=this._ensureMaps(e,t),s=o.get(n);if(!s)return Promise.resolve(void 0);let c=await this._registerOtherFormulaService.getFormulaValue(e,t,s.formulaId),{originRow:l,originCol:u}=s,d=r-l,f=i-u;return r9(c==null||(a=c.result)==null||(a=a[d])==null?void 0:a[f])}async getCellFormula2Value(e,t,n,r,i){var a;let{ruleFormulaMap2:o}=this._ensureMaps(e,t),s=o.get(n);if(!s)return Promise.resolve(void 0);let c=await this._registerOtherFormulaService.getFormulaValue(e,t,s.formulaId),{originRow:l,originCol:u}=s,d=r-l,f=i-u;return r9(c==null||(a=c.result)==null||(a=a[d])==null?void 0:a[f])}getCellFormulaValueSync(e,t,n,r,i){var a;let{ruleFormulaMap:o}=this._ensureMaps(e,t),s=o.get(n);if(!s)return;let c=this._registerOtherFormulaService.getFormulaValueSync(e,t,s.formulaId),{originRow:l,originCol:u}=s,d=r-l,f=i-u;return r9(c==null||(a=c.result)==null||(a=a[d])==null?void 0:a[f])}getCellFormula2ValueSync(e,t,n,r,i){var a;let{ruleFormulaMap2:o}=this._ensureMaps(e,t),s=o.get(n);if(!s)return;let c=this._registerOtherFormulaService.getFormulaValueSync(e,t,s.formulaId),{originRow:l,originCol:u}=s,d=r-l,f=i-u;return r9(c==null||(a=c.result)==null||(a=a[d])==null?void 0:a[f])}getRuleFormulaInfo(e,t,n){let{ruleFormulaMap:r}=this._ensureMaps(e,t);return r.get(n)}makeRuleDirty(e,t,n){var r,i;let a=(r=this._ruleFormulaMap.get(e))==null||(r=r.get(t))==null?void 0:r.get(n),o=(i=this._ruleFormulaMap2.get(e))==null||(i=i.get(t))==null?void 0:i.get(n);a&&this._registerOtherFormulaService.markFormulaDirty(e,t,a.formulaId),o&&this._registerOtherFormulaService.markFormulaDirty(e,t,o.formulaId)}};o9=e9([$7(0,z),$7(1,j(_U)),$7(2,j(U7)),$7(3,j(t9)),$7(4,j(J7))],o9);function s9(e){return Vb(e)}function XNt(e){return String(s9(e)??``)}var c9=class extends P{constructor(e,t){super(),this._injector=e,this._dataValidationModel=t,Q7(this,`_cache`,new Map),this._initRuleChangeListener()}_initRuleChangeListener(){this.disposeWithMe(this._dataValidationModel.ruleChange$.subscribe(e=>{(e.type===`remove`||e.type===`update`)&&this.markRuleDirty(e.unitId,e.subUnitId,e.rule.uid)}))}getOrCompute(e,t,n){let r=this.getCache(e,t,n.uid);if(r)return r;let i=this._injector.get(l9).getRuleFormulaResultSync(e,t,n.uid);return this.computeAndCache(e,t,n,i)}_ensureCache(e,t){let n=this._cache.get(e);n||(n=new Map,this._cache.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}getCache(e,t,n){var r;return(r=this._cache.get(e))==null||(r=r.get(t))==null?void 0:r.get(n)}setCache(e,t,n,r){this._ensureCache(e,t).set(n,r)}markRuleDirty(e,t,n){var r;(r=this._cache.get(e))==null||(r=r.get(t))==null||r.delete(n)}clear(){this._cache.clear()}computeAndCache(e,t,n,r){var i;let{formula1:a=``,formula2:o=``}=n,s=Vh(a)?this._getRuleFormulaResultSet(r==null||(i=r[0])==null||(i=i.result)==null||(i=i[0])==null?void 0:i[0]):FK(a),c=o.split(`,`),l=s.map((e,t)=>({label:e,color:c[t]||``})),u={};for(let e of l)e.color&&(u[e.label]=e.color);let d={list:s,listWithColor:l,colorMap:u,set:new Set(s)};return this.setCache(e,t,n.uid,d),d}_getRuleFormulaResultSet(e){if(!e)return[];let t=new Set;for(let r=0,i=e.length;r<i;r++){let i=e[r];if(i)for(let e=0,r=i.length;e<r;e++){let r=i[e],a=s9(r);if(a!=null){var n;if(typeof a!=`string`&&typeof r?.s==`object`&&(n=r.s)!=null&&(n=n.n)!=null&&n.pattern){t.add(rd(r.s.n.pattern,a,{throws:!1}));continue}let e=typeof a==`string`?a:String(a);i9(e)&&t.add(e)}}}return[...t]}};c9=e9([$7(0,j(We)),$7(1,j(U7))],c9);var l9=class extends P{constructor(e,t,n,r,i,a){super(),this._instanceService=e,this._registerOtherFormulaService=t,this._dataValidationCacheService=n,this._dataValidationModel=r,this._validatorRegistryService=i,this._listCacheService=a,Q7(this,`_formulaRuleMap`,new Map),this._initFormulaResultHandler()}_initFormulaResultHandler(){this.disposeWithMe(this._registerOtherFormulaService.formulaResult$.subscribe(e=>{for(let t in e){let n=e[t];if(this._instanceService.getUnitType(t)===M.UNIVER_SHEET)for(let e in n){let r=n[e],i=this._ensureRuleFormulaMap(t,e);r.forEach(n=>{let r=n.extra?.ruleId;if(r&&i.get(r)){let n=this._dataValidationModel.getRuleById(t,e,r);n&&(this._listCacheService.markRuleDirty(t,e,r),this._dataValidationCacheService.markRangeDirty(t,e,n.ranges))}})}}}))}_ensureRuleFormulaMap(e,t){let n=this._formulaRuleMap.get(e);n||(n=new Map,this._formulaRuleMap.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}_registerSingleFormula(e,t,n,r){return this._registerOtherFormulaService.registerFormulaWithRange(e,t,n,[{startColumn:0,endColumn:0,startRow:0,endRow:0}],{ruleId:r},Oit.DATA_VALIDATION,r)}addRule(e,t,n){if(!a9(n.type,this._validatorRegistryService)&&n.type!==Fx.CHECKBOX){let{formula1:r,formula2:i,uid:a}=n,o=Vh(r),s=Vh(i);if(!o&&!s)return;let c=this._ensureRuleFormulaMap(e,t),l=[void 0,void 0];o&&(l[0]={id:this._registerSingleFormula(e,t,r,a),text:r}),s&&(l[1]={id:this._registerSingleFormula(e,t,i,a),text:i}),c.set(a,l)}}removeRule(e,t,n){let r=this._ensureRuleFormulaMap(e,t).get(n);if(!r)return;let[i,a]=r,o=[i?.id,a?.id].filter(Boolean);o.length&&this._registerOtherFormulaService.deleteFormula(e,t,o)}getRuleFormulaResult(e,t,n){let r=this._ensureRuleFormulaMap(e,t).get(n);if(!r)return Promise.resolve(null);let i=async n=>n&&this._registerOtherFormulaService.getFormulaValue(e,t,n.id);return Promise.all([i(r[0]),i(r[1])])}getRuleFormulaResultSync(e,t,n){let r=this._ensureRuleFormulaMap(e,t).get(n);if(r)return r.map(n=>{if(n)return this._registerOtherFormulaService.getFormulaValueSync(e,t,n.id)})}getRuleFormulaInfo(e,t,n){return this._ensureRuleFormulaMap(e,t).get(n)}};l9=e9([$7(0,z),$7(1,j(_U)),$7(2,j(t9)),$7(3,j(U7)),$7(4,j(J7)),$7(5,j(c9))],l9);var ZNt=class e{constructor(e,t,n,r,i=!1){this._unitId=t,this._subUnitId=n,this._univerInstanceService=r,this._disableTree=i,Q7(this,`_map`,void 0),Q7(this,`_tree`,new hd),Q7(this,`_dirty`,!0),Q7(this,`_buildTree`,()=>{if(!this._dirty||this._disableTree)return;this._tree.clear();let e=[];this._map.forEach((t,n)=>{t.forEach(t=>{e.push({minX:t.startRow,maxX:t.endRow,minY:t.startColumn,maxY:t.endColumn,ruleId:n})})}),this._tree.load(e),this._dirty=!1}),Q7(this,`_debonceBuildTree`,Wi(this._buildTree,0)),this._map=e,this._buildTree()}get _worksheet(){return this._univerInstanceService.getUnit(this._unitId,M.UNIVER_SHEET)?.getSheetBySheetId(this._subUnitId)}_addRule(e,t){if(!this._worksheet)return;let n=l_.mergeRanges(t.map(e=>$g.transformRange(e,this._worksheet)));this._map.forEach((e,t)=>{let r=l_.subtractMulti(e,n);r.length===0?this._map.delete(t):this._map.set(t,r)}),this._dirty=!0,this._map.set(e,n),this._debonceBuildTree()}addRule(e){this._addRule(e.uid,e.ranges)}removeRange(e){if(!this._worksheet)return;let t=e.map(e=>$g.transformRange(e,this._worksheet));this._map.forEach((e,n)=>{let r=l_.subtractMulti(e,t);r.length===0?this._map.delete(n):this._map.set(n,r)}),this._dirty=!0,this._debonceBuildTree()}_removeRule(e){this._map.delete(e),this._dirty=!0,this._debonceBuildTree()}removeRule(e){this._removeRule(e.uid)}updateRange(e,t){this._removeRule(e),this._addRule(e,t)}addRangeRules(e){e.forEach(({id:e,ranges:t})=>{if(!t.length)return;let n=this._map.get(e);n?(this._map.set(e,l_.mergeRanges([...n,...t])),n=this._map.get(e)):(n=t,this._map.set(e,n)),this._map.forEach((n,r)=>{if(r===e)return;let i=l_.subtractMulti(n,t);i.length===0?this._map.delete(r):this._map.set(r,i)})}),this._dirty=!0,this._debonceBuildTree()}diff(e){let t=[],n=0;return e.forEach((e,r)=>{let i=this._map.get(e.uid)??[],a=e.ranges;i.length!==0&&(i.length!==a.length||i.some((e,t)=>!l_.equals(e,a[t])))&&t.push({type:`update`,ruleId:e.uid,oldRanges:a,newRanges:l_.sort(i),rule:e}),i.length===0&&(t.push({type:`delete`,rule:e,index:r-n}),n++)}),t}diffWithAddition(e,t){let n=[],r=0;return e.forEach((e,t)=>{let i=this._map.get(e.uid)??[],a=e.ranges;i.length!==0&&(i.length!==a.length||i.some((e,t)=>!l_.equals(e,a[t])))&&n.push({type:`update`,ruleId:e.uid,oldRanges:a,newRanges:l_.sort(i),rule:e}),i.length===0&&(n.push({type:`delete`,rule:e,index:t-r}),r++)}),Array.from(t).forEach(e=>{let t=this._map.get(e.uid)??[];n.push({type:`add`,rule:{...e,ranges:l_.sort(t)}})}),n}clone(){return new e(new Map(F.deepClone(Array.from(this._map.entries()))),this._unitId,this._subUnitId,this._univerInstanceService,!0)}getValue(e,t){this._dirty&&this._buildTree();let n=this._tree.search({minX:e,maxX:e,minY:t,maxY:t});return n.length>0?n[0].ruleId:void 0}},u9=class extends P{constructor(e,t,n,r,i,a,o){super(),this._dataValidationModel=e,this._univerInstanceService=t,this._dataValidatorRegistryService=n,this._dataValidationCacheService=r,this._dataValidationFormulaService=i,this._dataValidationCustomFormulaService=a,this._commandService=o,Q7(this,`_ruleMatrixMap`,new Map),Q7(this,`_validStatusChange$`,new ao),Q7(this,`_ruleChange$`,new ao),Q7(this,`ruleChange$`,this._ruleChange$.asObservable()),Q7(this,`validStatusChange$`,this._validStatusChange$.asObservable()),this._initRuleUpdateListener(),this.disposeWithMe(()=>{this._ruleChange$.complete(),this._validStatusChange$.complete()}),this._initUniverInstanceListener()}_initUniverInstanceListener(){this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(e=>{this._ruleMatrixMap.delete(e.getUnitId())})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===Oq.id){let{unitId:t,subUnitId:n}=e.params,r=this._ruleMatrixMap.get(t);r&&r.delete(n)}}))}_initRuleUpdateListener(){let e=this._dataValidationModel.getAll();for(let[t,n]of e)for(let[e,r]of n)for(let n of r)this._addRule(t,e,n),this._ruleChange$.next({type:`add`,unitId:t,subUnitId:e,rule:n,source:`patched`});this.disposeWithMe(this._dataValidationModel.ruleChange$.subscribe(e=>{switch(e.type){case`add`:this._addRule(e.unitId,e.subUnitId,e.rule);break;case`update`:this._updateRule(e.unitId,e.subUnitId,e.rule.uid,e.oldRule,e.updatePayload);break;case`remove`:this._removeRule(e.unitId,e.subUnitId,e.rule)}this._ruleChange$.next(e)}))}_ensureRuleMatrix(e,t){let n=this._ruleMatrixMap.get(e);n||(n=new Map,this._ruleMatrixMap.set(e,n));let r=n.get(t);return r||(r=new ZNt(new Map,e,t,this._univerInstanceService),n.set(t,r)),r}_addRuleSideEffect(e,t,n){this._ensureRuleMatrix(e,t).addRule(n),this._dataValidationCacheService.addRule(e,t,n),this._dataValidationFormulaService.addRule(e,t,n),this._dataValidationCustomFormulaService.addRule(e,t,n)}_addRule(e,t,n){(Array.isArray(n)?n:[n]).forEach(n=>{this._addRuleSideEffect(e,t,n)})}_updateRule(e,t,n,r,i){let a=this._ensureRuleMatrix(e,t),o={...r,...i.payload};i.type===R7.RANGE?a.updateRange(n,i.payload):i.type===R7.ALL&&a.updateRange(n,i.payload.ranges),this._dataValidationCacheService.removeRule(e,t,r),this._dataValidationCacheService.addRule(e,t,o),this._dataValidationFormulaService.removeRule(e,t,r.uid),this._dataValidationFormulaService.addRule(e,t,o),this._dataValidationCustomFormulaService.deleteByRuleId(e,t,n),this._dataValidationCustomFormulaService.addRule(e,t,o)}_removeRule(e,t,n){this._ensureRuleMatrix(e,t).removeRule(n),this._dataValidationCacheService.removeRule(e,t,n),this._dataValidationCustomFormulaService.deleteByRuleId(e,t,n.uid)}getValidator(e){return this._dataValidatorRegistryService.getValidatorItem(e)}getRuleIdByLocation(e,t,n,r){return this._ensureRuleMatrix(e,t).getValue(n,r)}getRuleByLocation(e,t,n,r){let i=this.getRuleIdByLocation(e,t,n,r);if(i)return this._dataValidationModel.getRuleById(e,t,i)}validator(e,t,n){let{col:r,row:i,unitId:a,subUnitId:o,worksheet:s}=t,c=(t,s)=>{n&&n(t,s),s&&this._validStatusChange$.next({unitId:a,subUnitId:o,ruleId:e.uid,status:t,row:i,col:r})},l=s.getCellValueOnly(i,r),u=this.getValidator(e.type),d=s.getCellRaw(i,r),f=s9(d);if(u){let n=this._dataValidationCacheService.ensureCache(a,o),s=n.getValue(i,r);return s==null?(n.setValue(i,r,Px.VALIDATING),u.validator({value:f,unitId:a,subUnitId:o,row:i,column:r,worksheet:t.worksheet,workbook:t.workbook,interceptValue:s9(l),t:d?.t},e).then(e=>{let t=e?Px.VALID:Px.INVALID,a=n.getValue(i,r);t===Px.VALID?n.realDeleteValue(i,r):n.setValue(i,r,t),c(t,s!==a)}),Px.VALIDATING):(c(s??Px.VALID,!1),s??Px.VALID)}return c(Px.VALID,!1),Px.VALID}getRuleObjectMatrix(e,t){return this._ensureRuleMatrix(e,t)}getRuleById(e,t,n){return this._dataValidationModel.getRuleById(e,t,n)}getRuleIndex(e,t,n){return this._dataValidationModel.getRuleIndex(e,t,n)}getRules(e,t){return[...this._dataValidationModel.getRules(e,t)]}getUnitRules(e){return this._dataValidationModel.getUnitRules(e)}deleteUnitRules(e){return this._dataValidationModel.deleteUnitRules(e)}getSubUnitIds(e){return this._dataValidationModel.getSubUnitIds(e)}getAll(){return this._dataValidationModel.getAll()}};u9=e9([$7(0,j(U7)),$7(1,z),$7(2,j(J7)),$7(3,j(t9)),$7(4,j(l9)),$7(5,j(o9)),$7(6,R)],u9);var QNt={[Mx.BETWEEN]:`sheets-data-validation.operators.between`,[Mx.EQUAL]:`sheets-data-validation.operators.equal`,[Mx.GREATER_THAN]:`sheets-data-validation.operators.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`sheets-data-validation.operators.greaterThanOrEqual`,[Mx.LESS_THAN]:`sheets-data-validation.operators.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`sheets-data-validation.operators.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`sheets-data-validation.operators.notBetween`,[Mx.NOT_EQUAL]:`sheets-data-validation.operators.notEqual`},$Nt={[Mx.BETWEEN]:`sheets-data-validation.ruleName.between`,[Mx.EQUAL]:`sheets-data-validation.ruleName.equal`,[Mx.GREATER_THAN]:`sheets-data-validation.ruleName.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`sheets-data-validation.ruleName.greaterThanOrEqual`,[Mx.LESS_THAN]:`sheets-data-validation.ruleName.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`sheets-data-validation.ruleName.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`sheets-data-validation.ruleName.notBetween`,[Mx.NOT_EQUAL]:`sheets-data-validation.ruleName.notEqual`,NONE:`sheets-data-validation.ruleName.legal`},d9={[Mx.BETWEEN]:`sheets-data-validation.errorMsg.between`,[Mx.EQUAL]:`sheets-data-validation.errorMsg.equal`,[Mx.GREATER_THAN]:`sheets-data-validation.errorMsg.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`sheets-data-validation.errorMsg.greaterThanOrEqual`,[Mx.LESS_THAN]:`sheets-data-validation.errorMsg.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`sheets-data-validation.errorMsg.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`sheets-data-validation.errorMsg.notBetween`,[Mx.NOT_EQUAL]:`sheets-data-validation.errorMsg.notEqual`,NONE:`sheets-data-validation.errorMsg.legal`},ePt={[Mx.BETWEEN]:`sheets-data-validation.textLength.errorMsg.between`,[Mx.EQUAL]:`sheets-data-validation.textLength.errorMsg.equal`,[Mx.GREATER_THAN]:`sheets-data-validation.textLength.errorMsg.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`sheets-data-validation.textLength.errorMsg.greaterThanOrEqual`,[Mx.LESS_THAN]:`sheets-data-validation.textLength.errorMsg.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`sheets-data-validation.textLength.errorMsg.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`sheets-data-validation.textLength.errorMsg.notBetween`,[Mx.NOT_EQUAL]:`sheets-data-validation.textLength.errorMsg.notEqual`},tPt=`{FORMULA1}`,nPt=`{FORMULA2}`,rPt=`{TYPE}`,f9=class extends X7{get operatorNames(){return this.operators.map(e=>this.localeService.t(QNt[e]))}generateRuleName(e){if(!e.operator)return this.localeService.t($Nt.NONE).replace(rPt,this.titleStr);let t=this.localeService.t($Nt[e.operator]).replace(tPt,e.formula1??``).replace(nPt,e.formula2??``);return`${this.titleStr} ${t}`}generateRuleErrorMessage(e,t){return e.operator?`${this.localeService.t(d9[e.operator]).replace(tPt,e.formula1??``).replace(nPt,e.formula2??``)}`:this.localeService.t(d9.NONE).replace(rPt,this.titleStr)}};function iPt(e,t){return F.isBlank(e)?t.t(`sheets-data-validation.validFail.value`):Vh(e)?t.t(`sheets-data-validation.validFail.primitive`):``}var p9=e=>F.isDefine(e)&&String(e).toLowerCase()===`true`?`1`:String(e).toLowerCase()===`false`?`0`:e,aPt=class extends f9{constructor(...e){super(...e),Q7(this,`id`,Fx.CHECKBOX),Q7(this,`title`,`sheets-data-validation.checkbox.title`),Q7(this,`operators`,[]),Q7(this,`scopes`,[`sheet`]),Q7(this,`order`,41),Q7(this,`offsetFormulaByRange`,!1),Q7(this,`_formulaService`,this.injector.get(l9)),Q7(this,`skipDefaultFontRender`,(e,t,n)=>{let{unitId:r,subUnitId:i}=n,{formula1:a,formula2:o}=this.parseFormulaSync(e,r,i),s=`${t??``}`;return!s||s===`${a}`||s===`${o}`})}validatorFormula(e,t,n){let{formula1:r,formula2:i}=e,a=r===i;if(F.isBlank(r)&&F.isBlank(i))return{success:!0};if(a)return{success:!1,formula1:this.localeService.t(`sheets-data-validation.validFail.checkboxEqual`),formula2:this.localeService.t(`sheets-data-validation.validFail.checkboxEqual`)};let o=iPt(r,this.localeService),s=iPt(i,this.localeService);return{success:!o&&!s,formula1:o,formula2:s}}async parseFormula(e,t,n){var r,i;let{formula1:a=1,formula2:o=0}=e,s=await this._formulaService.getRuleFormulaResult(t,n,e.uid),c=Vh(a)?n9(s==null||(r=s[0])==null||(r=r.result)==null?void 0:r[0][0]):a,l=Vh(o)?n9(s==null||(i=s[1])==null||(i=i.result)==null?void 0:i[0][0]):o,u=i9(String(c))&&i9(String(l));return{formula1:p9(c),formula2:p9(l),originFormula1:c,originFormula2:l,isFormulaValid:u}}getExtraStyle(e,t){return{tb:Op.CLIP}}parseFormulaSync(e,t,n){var r,i;let{formula1:a=1,formula2:o=0}=e,s=this._formulaService.getRuleFormulaResultSync(t,n,e.uid),c=Vh(a)?n9(s==null||(r=s[0])==null||(r=r.result)==null?void 0:r[0][0]):a,l=Vh(o)?n9(s==null||(i=s[1])==null||(i=i.result)==null?void 0:i[0][0]):o,u=i9(String(c))&&i9(String(l));return{formula1:p9(c),formula2:p9(l),originFormula1:c,originFormula2:l,isFormulaValid:u}}async isValidType(e,t,n){let{value:r,unitId:i,subUnitId:a}=e,{formula1:o,formula2:s,originFormula1:c,originFormula2:l}=await this.parseFormula(n,i,a);return!F.isDefine(o)||!F.isDefine(s)||F.isDefine(r)&&(String(r)===String(o)||String(r)===String(s)||String(r)===String(c??``)||String(r)===String(l??``))}generateRuleErrorMessage(e){return this.localeService.t(`sheets-data-validation.checkbox.error`)}generateRuleName(e){return this.titleStr}},oPt={[Mx.BETWEEN]:`sheets-data-validation.date.operators.between`,[Mx.EQUAL]:`sheets-data-validation.date.operators.equal`,[Mx.GREATER_THAN]:`sheets-data-validation.date.operators.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`sheets-data-validation.date.operators.greaterThanOrEqual`,[Mx.LESS_THAN]:`sheets-data-validation.date.operators.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`sheets-data-validation.date.operators.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`sheets-data-validation.date.operators.notBetween`,[Mx.NOT_EQUAL]:`sheets-data-validation.date.operators.notEqual`};Mx.BETWEEN,Mx.EQUAL,Mx.GREATER_THAN,Mx.GREATER_THAN_OR_EQUAL,Mx.LESS_THAN,Mx.LESS_THAN_OR_EQUAL,Mx.NOT_BETWEEN,Mx.NOT_EQUAL;var sPt={[Mx.BETWEEN]:`sheets-data-validation.date.ruleName.between`,[Mx.EQUAL]:`sheets-data-validation.date.ruleName.equal`,[Mx.GREATER_THAN]:`sheets-data-validation.date.ruleName.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`sheets-data-validation.date.ruleName.greaterThanOrEqual`,[Mx.LESS_THAN]:`sheets-data-validation.date.ruleName.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`sheets-data-validation.date.ruleName.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`sheets-data-validation.date.ruleName.notBetween`,[Mx.NOT_EQUAL]:`sheets-data-validation.date.ruleName.notEqual`,NONE:`sheets-data-validation.date.ruleName.legal`},cPt={[Mx.BETWEEN]:`sheets-data-validation.date.errorMsg.between`,[Mx.EQUAL]:`sheets-data-validation.date.errorMsg.equal`,[Mx.GREATER_THAN]:`sheets-data-validation.date.errorMsg.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`sheets-data-validation.date.errorMsg.greaterThanOrEqual`,[Mx.LESS_THAN]:`sheets-data-validation.date.errorMsg.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`sheets-data-validation.date.errorMsg.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`sheets-data-validation.date.errorMsg.notBetween`,[Mx.NOT_EQUAL]:`sheets-data-validation.date.errorMsg.notEqual`,NONE:`sheets-data-validation.date.errorMsg.legal`},m9=[Mx.BETWEEN,Mx.NOT_BETWEEN],h9=`{FORMULA1}`,g9=`{FORMULA2}`;function _9(e,t,n){let{formula1:r,formula2:i}=t,a=t.ranges[0].startRow,o=t.ranges[0].startColumn,s=n.row-a,c=n.col-o;return{transformedFormula1:Vh(r)?e.moveFormulaRefOffset(r,c,s,!0):r,transformedFormula2:Vh(i)?e.moveFormulaRefOffset(i,c,s,!0):i}}var v9=e=>{if(e==null||typeof e==`boolean`)return;if(typeof e==`number`||!Number.isNaN(+e))return+e;let t=fu(e)?.v;return F.isDefine(t)?t:fu(Dg(e).format(`YYYY-MM-DD HH:mm:ss`))?.v},lPt=class extends f9{constructor(...e){super(...e),Q7(this,`id`,Fx.DATE),Q7(this,`title`,`sheets-data-validation.date.title`),Q7(this,`order`,40),Q7(this,`operators`,[Mx.BETWEEN,Mx.EQUAL,Mx.GREATER_THAN,Mx.GREATER_THAN_OR_EQUAL,Mx.LESS_THAN,Mx.LESS_THAN_OR_EQUAL,Mx.NOT_BETWEEN,Mx.NOT_EQUAL]),Q7(this,`scopes`,[`sheet`]),Q7(this,`_customFormulaService`,this.injector.get(o9)),Q7(this,`_lexerTreeBuilder`,this.injector.get(SB))}async parseFormula(e,t,n,r,i){let a=await this._customFormulaService.getCellFormulaValue(t,n,e.uid,r,i),o=await this._customFormulaService.getCellFormula2Value(t,n,e.uid,r,i),{formula1:s,formula2:c}=e,l=i9(String(a?.v))&&i9(String(o?.v));return{formula1:v9(Vh(s)?a?.v:s),formula2:v9(Vh(c)?o?.v:c),isFormulaValid:l}}async isValidType(e){let{interceptValue:t,value:n}=e;return typeof n==`number`&&typeof t==`string`||typeof t==`string`?!!fu(t):!1}_validatorSingleFormula(e){return!F.isBlank(e)&&(Vh(e)||!Number.isNaN(+e)||!!(e&&fu(e)))}validatorFormula(e,t,n){let r=e.operator;if(!r)return{success:!0};let i=this._validatorSingleFormula(e.formula1),a=this.localeService.t(`sheets-data-validation.validFail.date`);if(m9.includes(r)){let t=this._validatorSingleFormula(e.formula2);return{success:i&&t,formula1:i?void 0:a,formula2:t?void 0:a}}return{success:i,formula1:i?void 0:a}}normalizeFormula(e,t,n){let{formula1:r,formula2:i,bizInfo:a}=e,o=e=>{if(!e)return e;let t;if(!Number.isNaN(+e))t=Hl(+e);else{let n=fu(e)?.v;if(n==null)return``;t=Hl(n)}return Dg(`${t[0]}/${t[1]}/${t[2]} ${t[3]}:${t[4]}:${t[5]}`).format(a?.showTime?`YYYY-MM-DD HH:mm:ss`:`YYYY-MM-DD`)};return{formula1:Vh(r)?r:o(`${r}`),formula2:Vh(i)?i:o(`${i}`)}}transform(e,t,n){let{value:r}=e;return{...e,value:v9(r)}}get operatorNames(){return this.operators.map(e=>this.localeService.t(oPt[e]))}generateRuleName(e){if(!e.operator)return this.localeService.t(sPt.NONE);let t=this.localeService.t(sPt[e.operator]).replace(h9,e.formula1??``).replace(g9,e.formula2??``);return`${this.titleStr} ${t}`}generateRuleErrorMessage(e,t){if(!e.operator)return this.titleStr;let{transformedFormula1:n,transformedFormula2:r}=_9(this._lexerTreeBuilder,e,t);return`${this.localeService.t(cPt[e.operator]).replace(h9,n??``).replace(g9,r??``)}`}};function y9(e){return+e}var uPt=class extends f9{constructor(...e){super(...e),Q7(this,`_customFormulaService`,this.injector.get(o9)),Q7(this,`id`,Fx.DECIMAL),Q7(this,`_lexerTreeBuilder`,this.injector.get(SB)),Q7(this,`title`,`sheets-data-validation.decimal.title`),Q7(this,`order`,20),Q7(this,`operators`,[Mx.BETWEEN,Mx.EQUAL,Mx.GREATER_THAN,Mx.GREATER_THAN_OR_EQUAL,Mx.LESS_THAN,Mx.LESS_THAN_OR_EQUAL,Mx.NOT_BETWEEN,Mx.NOT_EQUAL]),Q7(this,`scopes`,[`sheet`])}_isFormulaOrNumber(e){return!F.isBlank(e)&&(Vh(e)||!Number.isNaN(+e))}async isValidType(e,t,n){let{value:r}=e;return!Number.isNaN(y9(r))}transform(e,t,n){let{value:r}=e;return{...e,value:y9(r)}}_parseNumber(e){return e==null?NaN:+e}async parseFormula(e,t,n,r,i){let a=await this._customFormulaService.getCellFormulaValue(t,n,e.uid,r,i),o=await this._customFormulaService.getCellFormula2Value(t,n,e.uid,r,i),{formula1:s,formula2:c}=e,l=i9(String(a?.v))&&i9(String(o?.v));return{formula1:this._parseNumber(Vh(s)?a?.v:s),formula2:this._parseNumber(Vh(c)?o?.v:c),isFormulaValid:l}}validatorFormula(e,t,n){let r=e.operator;if(!r)return{success:!0};let i=F.isDefine(e.formula1)&&this._isFormulaOrNumber(e.formula1),a=F.isDefine(e.formula2)&&this._isFormulaOrNumber(e.formula2),o=m9.includes(r),s=this.localeService.t(`sheets-data-validation.validFail.number`);return o?{success:i&&a,formula1:i?void 0:s,formula2:a?void 0:s}:{success:i,formula1:i?``:s}}generateRuleErrorMessage(e,t){if(!e.operator)return this.localeService.t(d9.NONE).replace(`{TYPE}`,this.titleStr);let{transformedFormula1:n,transformedFormula2:r}=_9(this._lexerTreeBuilder,e,t);return`${this.localeService.t(d9[e.operator]).replace(h9,n??``).replace(g9,r??``)}`}};function dPt(e){if(!e)return[];let t=new Set;for(let r=0,i=e.length;r<i;r++){let i=e[r];if(i)for(let e=0,r=i.length;e<r;e++){let r=i[e],a=s9(r);if(a!=null){var n;if(typeof a!=`string`&&typeof r?.s==`object`&&(n=r.s)!=null&&(n=n.n)!=null&&n.pattern){t.add(rd(r.s.n.pattern,a,{throws:!1}));continue}let e=typeof a==`string`?a:String(a);i9(e)&&t.add(e)}}}return[...t]}var fPt=[`if`,`indirect`,`choose`,`offset`];function pPt(e,t){if(!Vh(e)||pz(e.slice(1)))return!0;let n=t.sequenceNodesBuilder(e);return n&&n.some(e=>typeof e==`object`&&e.nodeType===_B.FUNCTION&&fPt.indexOf(e.token.toLowerCase())>-1)}function mPt(e,t){let{formula1:n=``,ranges:r}=e;if(pz(n.slice(1))){let e=Cz(n.slice(1));if((!e.sheetName||e.sheetName===t)&&r.some(t=>l_.intersects(t,e.range)))return!0}return!1}var hPt=class extends f9{constructor(...e){super(...e),Q7(this,`formulaService`,this.injector.get(l9)),Q7(this,`_lexer`,this.injector.get(SB)),Q7(this,`_univerInstanceService`,this.injector.get(z)),Q7(this,`_listCacheService`,this.injector.get(c9)),Q7(this,`order`,50),Q7(this,`offsetFormulaByRange`,!1),Q7(this,`id`,Fx.LIST),Q7(this,`title`,`sheets-data-validation.list.title`),Q7(this,`operators`,[]),Q7(this,`scopes`,[`sheet`]),Q7(this,`skipDefaultFontRender`,e=>e.renderMode!==Nx.TEXT)}validatorFormula(e,t,n){var r;let i=!F.isBlank(e.formula1),a=pPt(e.formula1??``,this._lexer),o=mPt(e,((r=this._univerInstanceService.getUnit(t,M.UNIVER_SHEET))==null||(r=r.getSheetBySheetId(n))==null?void 0:r.getName())??``);return{success:!!(i&&a&&!o),formula1:i?a?o?this.localeService.t(`sheets-data-validation.validFail.listIntersects`):void 0:this.localeService.t(`sheets-data-validation.validFail.listInvalid`):this.localeService.t(`sheets-data-validation.validFail.list`)}}getExtraStyle(e,t,{style:n}){let r=(n.tb===Op.OVERFLOW?Op.CLIP:n.tb)??Op.WRAP;if(e.type===Fx.LIST&&(e.renderMode===Nx.ARROW||e.renderMode===Nx.TEXT)){let n=this.getListWithColorMap(e)[`${t??``}`];if(n)return{bg:{rgb:n},tb:r}}return{tb:r}}parseCellValue(e){return FK(e.toString())}async parseFormula(e,t,n){var r;let i=await this.formulaService.getRuleFormulaResult(t,n,e.uid),a=n9(i==null||(r=i[0])==null||(r=r.result)==null?void 0:r[0][0]);return{formula1:void 0,formula2:void 0,isFormulaValid:i9(String(a))}}async isValidType(e,t,n){let{value:r,unitId:i,subUnitId:a}=e,{formula1:o=``}=n,s=Vh(o)?this._listCacheService.getOrCompute(i,a,n).list:FK(o);return(n.type===Fx.LIST?r==null||r===``?[]:[`${r}`]:this.parseCellValue(r)).every(e=>s.includes(e))}generateRuleName(){return this.localeService.t(`sheets-data-validation.list.name`)}generateRuleErrorMessage(){return this.localeService.t(`sheets-data-validation.list.error`)}_getUnitAndSubUnit(e,t){let n=(e?this._univerInstanceService.getUniverSheetInstance(e):void 0)??this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET);if(!n)return null;let r=(t?n.getSheetBySheetId(t):void 0)??n.getActiveSheet();return r?{unitId:n.getUnitId(),subUnitId:r.getSheetId()}:null}getList(e,t,n){let r=this._getUnitAndSubUnit(t,n);if(!r)return[];let{unitId:i,subUnitId:a}=r;return this._listCacheService.getOrCompute(i,a,e).list}async getListAsync(e,t,n){var r;let{formula1:i=``}=e,a=this._getUnitAndSubUnit(t,n);if(!a)return[];let{unitId:o,subUnitId:s}=a,c=await this.formulaService.getRuleFormulaResult(o,s,e.uid);return Vh(i)?dPt(c==null||(r=c[0])==null||(r=r.result)==null?void 0:r[0][0]):FK(i)}getListWithColor(e,t,n){let r=this._getUnitAndSubUnit(t,n);if(!r)return[];let{unitId:i,subUnitId:a}=r;return this._listCacheService.getOrCompute(i,a,e).listWithColor}getListWithColorMap(e,t,n){let r=this._getUnitAndSubUnit(t,n);if(!r)return{};let{unitId:i,subUnitId:a}=r;return this._listCacheService.getOrCompute(i,a,e).colorMap}},gPt=class extends f9{constructor(...e){super(...e),Q7(this,`id`,Fx.TEXT_LENGTH),Q7(this,`title`,`sheets-data-validation.textLength.title`),Q7(this,`_lexerTreeBuilder`,this.injector.get(SB)),Q7(this,`order`,30),Q7(this,`operators`,[Mx.BETWEEN,Mx.EQUAL,Mx.GREATER_THAN,Mx.GREATER_THAN_OR_EQUAL,Mx.LESS_THAN,Mx.LESS_THAN_OR_EQUAL,Mx.NOT_BETWEEN,Mx.NOT_EQUAL]),Q7(this,`scopes`,[`sheet`]),Q7(this,`_customFormulaService`,this.injector.get(o9))}_isFormulaOrInt(e){return!F.isBlank(e)&&(Vh(e)||!Number.isNaN(+e)&&Number.isInteger(+e))}validatorFormula(e,t,n){let r=e.operator;if(!r)return{success:!1};let i=F.isDefine(e.formula1)&&this._isFormulaOrInt(e.formula1),a=F.isDefine(e.formula2)&&this._isFormulaOrInt(e.formula2),o=m9.includes(r),s=this.localeService.t(`sheets-data-validation.validFail.number`);return o?{success:i&&a,formula1:i?void 0:s,formula2:a?void 0:s}:{success:i,formula1:s}}_parseNumber(e){return e==null?NaN:+e}async parseFormula(e,t,n,r,i){let a=await this._customFormulaService.getCellFormulaValue(t,n,e.uid,r,i),o=await this._customFormulaService.getCellFormula2Value(t,n,e.uid,r,i),{formula1:s,formula2:c}=e,l=i9(String(a?.v))&&i9(String(o?.v));return{formula1:this._parseNumber(Vh(s)?a?.v:s),formula2:this._parseNumber(Vh(c)?o?.v:c),isFormulaValid:l}}transform(e,t,n){return{...e,value:e.value.toString().length}}async isValidType(e,t,n){let{value:r}=e;return typeof r==`string`||typeof r==`number`}generateRuleErrorMessage(e,t){if(!e.operator)return this.titleStr;let{transformedFormula1:n,transformedFormula2:r}=_9(this._lexerTreeBuilder,e,t);return`${this.localeService.t(ePt[e.operator]).replace(h9,n??``).replace(g9,r??``)}`}};function _Pt(e){return e?e.p?!(e.p.body?.dataStream??``).slice(0,-2).trim():F.isBlank(e.v):!0}function b9(e,t,n,r,i=`command`,a=!0){let o=r.get(SB),s=r.get(J7),c=[],l=[],u=r.get(u9),d=bG(r.get(z),{unitId:e,subUnitId:t});if(!d)return{redoMutations:c,undoMutations:l};let{worksheet:f}=d,p=new Ih,m=!1;function h(e,t){a&&e.forEach(e=>{$g.foreach(e,(e,n)=>{let r=f.getCellRaw(e,n),i=XNt(r);(_Pt(r)||i===t)&&!r?.p&&(m=!0,p.setValue(e,n,{v:t,p:null}))})})}if(n.forEach(n=>{switch(n.type){case`delete`:c.push({id:G7.id,params:{unitId:e,subUnitId:t,ruleId:n.rule.uid,source:i}}),l.unshift({id:W7.id,params:{unitId:e,subUnitId:t,rule:n.rule,index:n.index,source:i}});break;case`update`:{if(a9(n.rule.type,s)){let r=n.oldRanges[0].startRow,a=n.oldRanges[0].startColumn,s=n.newRanges[0].startRow,u=n.newRanges[0].startColumn,d=s-r,f=u-a,p=Vh(n.rule.formula1)?o.moveFormulaRefOffset(n.rule.formula1,f,d):n.rule.formula1,m=Vh(n.rule.formula2)?o.moveFormulaRefOffset(n.rule.formula2,f,d):n.rule.formula2;p!==n.rule.formula1||m!==n.rule.formula2||!ub(n.newRanges,n.oldRanges)?(c.push({id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.ruleId,payload:{type:R7.ALL,payload:{formula1:p,formula2:m,ranges:n.newRanges}}}}),l.unshift({id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.ruleId,payload:{type:R7.ALL,payload:{formula1:n.rule.formula1,formula2:n.rule.formula2,ranges:n.oldRanges}}}})):(c.push({id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.ruleId,payload:{type:R7.RANGE,payload:n.newRanges},source:i}}),l.unshift({id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.ruleId,payload:{type:R7.RANGE,payload:n.oldRanges},source:i}}))}else c.push({id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.ruleId,payload:{type:R7.RANGE,payload:n.newRanges},source:i}}),l.unshift({id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.ruleId,payload:{type:R7.RANGE,payload:n.oldRanges},source:i}});let r=u.getRuleById(e,t,n.ruleId);if(r&&r.type===Fx.CHECKBOX){let i=u.getValidator(Fx.CHECKBOX).parseFormulaSync(r,e,t);h(n.newRanges,i.formula2)}break}case`add`:if(c.push({id:W7.id,params:{unitId:e,subUnitId:t,rule:n.rule,source:i}}),l.unshift({id:G7.id,params:{unitId:e,subUnitId:t,ruleId:n.rule.uid,source:i}}),n.rule.type===Fx.CHECKBOX){let r=u.getValidator(Fx.CHECKBOX).parseFormulaSync(n.rule,e,t);h(n.rule.ranges,r.originFormula2)}}}),m){let n={id:sK.id,params:{unitId:e,subUnitId:t,cellValue:p.getData()}},i={id:sK.id,params:oK(r,n.params)};c.push(n),l.push(i)}return{redoMutations:c,undoMutations:l}}var vPt={type:L.COMMAND,id:`sheet.command.updateDataValidationRuleRange`,handler(e,t){if(!t)return!1;let{unitId:n,subUnitId:r,ranges:i,ruleId:a}=t,o=e.get(u9),s=e.get(R),c=e.get(fx);if(!o.getRuleById(n,r,a))return!1;let l=o.getRuleObjectMatrix(n,r).clone();l.updateRange(a,i);let{redoMutations:u,undoMutations:d}=b9(n,r,l.diff(o.getRules(n,r)),e);return c.pushUndoRedo({undoMutations:d,redoMutations:u,unitID:n}),Gm(u,s),!0}},yPt={type:L.COMMAND,id:`sheet.command.addDataValidation`,handler(e,t){if(!t)return!1;let{unitId:n,subUnitId:r,rule:i}=t,a=e.get(u9),o=e.get(R),s=e.get(fx),c=a.getRuleObjectMatrix(n,r).clone();c.addRule(i);let l=c.diff(a.getRules(n,r)),u=a.getValidator(i.type),d={unitId:n,subUnitId:r,rule:{...i,...u?.normalizeFormula(i,n,r)}},{redoMutations:f,undoMutations:p}=b9(n,r,l,e);return f.push({id:W7.id,params:d}),p.unshift({id:G7.id,params:{unitId:n,subUnitId:r,ruleId:i.uid}}),s.pushUndoRedo({unitID:n,redoMutations:f,undoMutations:p}),Gm(f,o),!0}},bPt={type:L.COMMAND,id:`sheets.command.update-data-validation-setting`,handler(e,t){if(!t)return!1;let n=e.get(R),r=e.get(fx),i=e.get(u9),a=e.get(J7),{unitId:o,subUnitId:s,ruleId:c,setting:l}=t,u=a.getValidatorItem(l.type);if(!u)return!1;let d=i.getRuleById(o,s,c);if(!d)return!1;let f={...d,...l};if(!u.validatorFormula(f,o,s).success)return!1;let p={unitId:o,subUnitId:s,ruleId:c,payload:{type:R7.SETTING,payload:{...l,...u.normalizeFormula(f,o,s)}}},m=[{id:K7.id,params:p}],h={unitId:o,subUnitId:s,ruleId:c,payload:{type:R7.SETTING,payload:I7(d)}},g=[{id:K7.id,params:h}];if(l.type===Fx.CHECKBOX){let t=d.ranges,n=bG(e.get(z),{unitId:o,subUnitId:s});if(n){let r=new Ih,{worksheet:i}=n,{formula2:a=0,formula1:c=1}=d,{formula2:u=0,formula1:f=1}=l,p=!1;if(t.forEach(e=>{$g.foreach(e,(e,t)=>{let n=i.getCellRaw(e,t),o=XNt(n);(_Pt(n)||o===String(a))&&!n?.p?(r.setValue(e,t,{v:u,p:null}),p=!0):o===String(c)&&!n?.p&&(r.setValue(e,t,{v:f,p:null}),p=!0)})}),p){let t={id:sK.id,params:{unitId:o,subUnitId:s,cellValue:r.getData()}},n={id:sK.id,params:oK(e,t.params)};m.push(t),g.push(n)}}}return Gm(m,n).result?(r.pushUndoRedo({unitID:o,redoMutations:m,undoMutations:g}),!0):!1}},xPt={type:L.COMMAND,id:`sheets.command.update-data-validation-options`,handler(e,t){if(!t)return!1;let n=e.get(R),r=e.get(fx),i=e.get(u9),{unitId:a,subUnitId:o,ruleId:s,options:c}=t,l=i.getRuleById(a,o,s);if(!l)return!1;let u={unitId:a,subUnitId:o,ruleId:s,payload:{type:R7.OPTIONS,payload:c}},d=[{id:K7.id,params:u}],f={unitId:a,subUnitId:o,ruleId:s,payload:{type:R7.OPTIONS,payload:L7(l)}},p=[{id:K7.id,params:f}];return r.pushUndoRedo({unitID:a,redoMutations:d,undoMutations:p}),n.executeCommand(K7.id,u),!0}},SPt={type:L.COMMAND,id:`sheets.command.clear-range-data-validation`,handler(e,t){if(!t)return!1;let{unitId:n,subUnitId:r,ranges:i}=t,a=e.get(R),o=bG(e.get(z),{unitId:n,subUnitId:r}),s=e.get(u9);if(!o)return!1;let c=e.get(fx),l=s.getRuleObjectMatrix(n,r).clone();l.removeRange(i);let{redoMutations:u,undoMutations:d}=b9(n,r,l.diff(s.getRules(n,r)),e);return c.pushUndoRedo({unitID:n,redoMutations:u,undoMutations:d}),Gm(u,a).result}},CPt={type:L.COMMAND,id:`sheet.command.remove-all-data-validation`,handler(e,t){if(!t)return!1;let{unitId:n,subUnitId:r}=t,i=e.get(R),a=e.get(u9),o=e.get(fx),s=[...a.getRules(n,r)],c={unitId:n,subUnitId:r,ruleId:s.map(e=>e.uid)},l=[{id:G7.id,params:c}],u=[{id:W7.id,params:{unitId:n,subUnitId:r,rule:s}}];return o.pushUndoRedo({redoMutations:l,undoMutations:u,unitID:n}),i.executeCommand(G7.id,c),!0}},wPt=(e,t)=>{let n=e.get(u9),{unitId:r,subUnitId:i,ruleId:a,source:o}=t;if(Array.isArray(a)){let e=a.map(e=>n.getRuleById(r,i,e)).filter(Boolean);return[{id:W7.id,params:{unitId:r,subUnitId:i,rule:e,source:o}}]}return[{id:W7.id,params:{unitId:r,subUnitId:i,rule:{...n.getRuleById(r,i,a)},index:n.getRuleIndex(r,i,a)}}]},TPt={type:L.COMMAND,id:`sheet.command.remove-data-validation-rule`,handler(e,t){if(!t)return!1;let{unitId:n,subUnitId:r,ruleId:i}=t,a=e.get(R),o=e.get(fx),s=e.get(u9),c=[{id:G7.id,params:t}],l=[{id:W7.id,params:{unitId:n,subUnitId:r,rule:{...s.getRuleById(n,r,i)},index:s.getRuleIndex(n,r,i)}}];return o.pushUndoRedo({undoMutations:l,redoMutations:c,unitID:t.unitId}),a.executeCommand(G7.id,t),!0}},EPt=`SHEET_DATA_VALIDATION_PLUGIN`,x9=class extends P{constructor(e,t,n){super(),this._univerInstanceService=e,this._permissionService=t,this._lexerTreeBuilder=n}getFormulaRefCheck(e){let t=this._lexerTreeBuilder.sequenceNodesBuilder(e);if(!t)return!0;for(let e=0;e<t.length;e++){let r=t[e];if(typeof r==`string`)continue;let{token:i}=r,a=gB(i),o=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET),s=o.getActiveSheet(),c=o.getUnitId();if(a.sheetName){if(s=o.getSheetBySheetName(a.sheetName),!s)return!1;let e=s?.getSheetId();if(!this._permissionService.getPermissionPoint(new EX(c,e).id))return!1}if(!s)return!1;let{startRow:l,endRow:u,startColumn:d,endColumn:f}=a.range;for(let e=l;e<=u;e++)for(let t=d;t<=f;t++){var n;if(((n=s.getCell(e,t))==null||(n=n.selectionProtection)==null?void 0:n[0])?.[ta.View]===!1)return!1}}return!0}};x9=e9([$7(0,z),$7(1,ex),$7(2,j(SB))],x9);var DPt=`@univerjs/sheets-data-validation`,OPt=`0.25.1`,kPt=`sheets-data-validation.config`,APt={},S9=class extends P{constructor(e,t,n){super(),this._dataValidationModel=e,this._formulaRefRangeService=t,this._validatorRegistryService=n,Q7(this,`_disposableMap`,new Map),Q7(this,`registerRule`,(e,t,n)=>{a9(n.type,this._validatorRegistryService)&&this.register(e,t,n)}),this._initRefRange()}_getIdWithUnitId(e,t,n){return`${e}_${t}_${n}`}register(e,t,n){let r=n.ranges,i=n.formula1,a=n.formula2,o=this._formulaRefRangeService.registerRangeFormula(e,t,r,[i??``,a??``],o=>{if(o.length===0)return{undos:[{id:W7.id,params:{unitId:e,subUnitId:t,rule:n,source:`patched`}}],redos:[{id:G7.id,params:{unitId:e,subUnitId:t,ruleId:n.uid,source:`patched`}}]};let s=[],c=[],l=o[0];s.push({id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.uid,payload:{type:R7.ALL,payload:{ranges:l.ranges,formula1:l.formulas[0],formula2:l.formulas[1]}},source:`patched`}}),c.push({id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.uid,payload:{type:R7.ALL,payload:{ranges:r,formula1:i,formula2:a}},source:`patched`}});for(let r=1;r<o.length;r++){let i=o[r],a=rp();s.push({id:W7.id,params:{unitId:e,subUnitId:t,rule:{...n,uid:a,formula1:i.formulas[0],formula2:i.formulas[1],ranges:i.ranges},source:`patched`}}),c.push({id:G7.id,params:{unitId:e,subUnitId:t,ruleId:a,source:`patched`}})}return{undos:c,redos:s}}),s=this._getIdWithUnitId(e,t,n.uid);this._disposableMap.set(s,o)}_initRefRange(){let e=this._dataValidationModel.getAll();for(let[t,n]of e)for(let[e,r]of n)for(let n of r)this.registerRule(t,e,n);this.disposeWithMe(this._dataValidationModel.ruleChange$.subscribe(e=>{let{unitId:t,subUnitId:n,rule:r}=e;switch(e.type){case`add`:{let t=e.rule;this.registerRule(e.unitId,e.subUnitId,t);break}case`remove`:{let e=this._disposableMap.get(this._getIdWithUnitId(t,n,r.uid));e&&e.dispose();break}case`update`:{let r=e.rule,i=this._disposableMap.get(this._getIdWithUnitId(t,n,r.uid));i&&i.dispose(),this.registerRule(e.unitId,e.subUnitId,r);break}}})),this.disposeWithMe(Wf(()=>{this._disposableMap.forEach(e=>{e.dispose()}),this._disposableMap.clear()}))}};S9=e9([$7(0,j(u9)),$7(1,j(YZ)),$7(2,j(J7))],S9);var C9=class extends P{constructor(e,t,n,r,i,a){super(),this._dataValidationModel=e,this._injector=t,this._refRangeService=n,this._dataValidationFormulaService=r,this._formulaRefRangeService=i,this._validatorRegistryService=a,Q7(this,`_disposableMap`,new Map),Q7(this,`registerRule`,(e,t,n)=>{a9(n.type,this._validatorRegistryService)||(this.register(e,t,n),this.registerFormula(e,t,n))}),this._initRefRange()}_getIdWithUnitId(e,t,n){return`${e}_${t}_${n}`}registerFormula(e,t,n){let r=n.uid,i=this._getIdWithUnitId(e,t,r),a=this._disposableMap.get(i)??new Set,o=(i,a)=>{let o=this._dataValidationModel.getRuleById(e,t,r);if(!o)return{redos:[],undos:[]};let s=o[i];if(!s||s===a)return{redos:[],undos:[]};let c={unitId:e,subUnitId:t,ruleId:n.uid,payload:{type:R7.SETTING,payload:{type:o.type,formula1:o.formula1,formula2:o.formula2,[i]:a}},source:`patched`},l={unitId:e,subUnitId:t,ruleId:n.uid,payload:{type:R7.SETTING,payload:{type:o.type,formula1:o.formula1,formula2:o.formula2}},source:`patched`};return{redos:[{id:K7.id,params:c}],undos:[{id:K7.id,params:l}]}},s=this._dataValidationFormulaService.getRuleFormulaInfo(e,t,r);if(s){let[n,r]=s;if(n){let r=this._formulaRefRangeService.registerFormula(e,t,n.text,e=>o(`formula1`,e));a.add(()=>r.dispose())}if(r){let n=this._formulaRefRangeService.registerFormula(e,t,r.text,e=>o(`formula2`,e));a.add(()=>n.dispose())}}}register(e,t,n){let r=r=>{let i=[...n.ranges],a=i.map(e=>Zq(e,r)).filter(e=>!!e).flat();if(ub(a,i))return{redos:[],undos:[]};if(a.length){let r={unitId:e,subUnitId:t,ruleId:n.uid,payload:{type:R7.RANGE,payload:a},source:`patched`};return{redos:[{id:K7.id,params:r}],undos:[{id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.uid,payload:{type:R7.RANGE,payload:i},source:`patched`}}]}}{let r={unitId:e,subUnitId:t,ruleId:n.uid};return{redos:[{id:G7.id,params:r}],undos:wPt(this._injector,r)}}},i=[];n.ranges.forEach(n=>{let a=this._refRangeService.registerRefRange(n,r,e,t);i.push(()=>a.dispose())});let a=this._getIdWithUnitId(e,t,n.uid),o=this._disposableMap.get(a)??new Set;o.add(()=>i.forEach(e=>e())),this._disposableMap.set(a,o)}_initRefRange(){let e=this._dataValidationModel.getAll();for(let[t,n]of e)for(let[e,r]of n)for(let n of r)this.registerRule(t,e,n);this.disposeWithMe(this._dataValidationModel.ruleChange$.subscribe(e=>{let{unitId:t,subUnitId:n,rule:r}=e;switch(e.type){case`add`:{let t=e.rule;this.registerRule(e.unitId,e.subUnitId,t);break}case`remove`:{let e=this._disposableMap.get(this._getIdWithUnitId(t,n,r.uid));e&&e.forEach(e=>e());break}case`update`:{let r=e.rule,i=this._disposableMap.get(this._getIdWithUnitId(t,n,r.uid));i&&i.forEach(e=>e()),this.registerRule(e.unitId,e.subUnitId,r);break}}})),this.disposeWithMe(Wf(()=>{this._disposableMap.forEach(e=>{e.forEach(e=>e())}),this._disposableMap.clear()}))}};C9=e9([$7(0,j(u9)),$7(1,j(We)),$7(2,j(Qq)),$7(3,j(l9)),$7(4,j(YZ)),$7(5,j(J7))],C9);var w9=class extends P{constructor(e,t,n){super(),this._sheetInterceptorService=e,this._univerInstanceService=t,this._sheetDataValidationModel=n,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===lY.id){let t=e.params,n=t.unitId||this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET).getUnitId(),r=this._univerInstanceService.getUniverSheetInstance(n);if(!r)return{redos:[],undos:[]};let i=t.subUnitId||r.getActiveSheet()?.getSheetId();if(!i)return{redos:[],undos:[]};let a=this._sheetDataValidationModel.getRules(n,i);if(a.length===0)return{redos:[],undos:[]};let o={unitId:n,subUnitId:i,ruleId:a.map(e=>e.uid),source:`patched`},s={unitId:n,subUnitId:i,rule:[...a],source:`patched`};return{redos:[{id:G7.id,params:o}],undos:[{id:W7.id,params:s}]}}if(e.id===tY.id){let{unitId:t,subUnitId:n,targetSubUnitId:r}=e.params;if(!t||!n||!r)return{redos:[],undos:[]};let i=this._sheetDataValidationModel.getRules(t,n);if(i.length===0)return{redos:[],undos:[]};let a=i.map(e=>({...e,uid:rp(6)}));return{redos:[{id:W7.id,params:{unitId:t,subUnitId:r,rule:a,source:`patched`}}],undos:[{id:G7.id,params:{unitId:t,subUnitId:r,ruleId:a.map(e=>e.uid),source:`patched`}}]}}return{redos:[],undos:[]}}}))}};w9=e9([$7(0,j(MG)),$7(1,j(z)),$7(2,j(u9))],w9);var jPt=class extends f9{constructor(...e){super(...e),Q7(this,`id`,Fx.ANY),Q7(this,`title`,`sheets-data-validation.any.title`),Q7(this,`operators`,[]),Q7(this,`scopes`,[`sheet`]),Q7(this,`order`,0),Q7(this,`offsetFormulaByRange`,!1)}async parseFormula(e,t,n){return{formula1:e.formula1,formula2:e.formula2,isFormulaValid:!0}}validatorFormula(e,t,n){return{success:!0}}async isValidType(e,t,n){return!0}generateRuleErrorMessage(e){return this.localeService.t(`sheets-data-validation.any.error`)}},MPt=class extends f9{constructor(...e){super(...e),Q7(this,`id`,Fx.CUSTOM),Q7(this,`title`,`sheets-data-validation.custom.title`),Q7(this,`operators`,[]),Q7(this,`scopes`,[`sheet`]),Q7(this,`order`,60),Q7(this,`_customFormulaService`,this.injector.get(o9)),Q7(this,`_lexerTreeBuilder`,this.injector.get(SB))}validatorFormula(e,t,n){let r=Vh(e.formula1),i=e.formula1??``,a=this._lexerTreeBuilder.checkIfAddBracket(i)===0&&i.startsWith(DR.EQUALS);return{success:r&&a,formula1:r&&a?``:this.localeService.t(`sheets-data-validation.validFail.formula`)}}async parseFormula(e,t,n){return{formula1:void 0,formula2:void 0,isFormulaValid:!0}}async isValidType(e,t,n){let{column:r,row:i,unitId:a,subUnitId:o}=e,s=await this._customFormulaService.getCellFormulaValue(a,o,n.uid,i,r),c=s?.v;return i9(String(c))&&F.isDefine(c)&&c!==``?s.t===Np.BOOLEAN?!!c:typeof c==`boolean`?c:typeof c==`number`?!!c:typeof c==`string`?i9(c):!!c:!1}generateRuleErrorMessage(e){return this.localeService.t(`sheets-data-validation.custom.error`)}generateRuleName(e){return this.localeService.t(`sheets-data-validation.custom.ruleName`).replace(`{FORMULA1}`,e.formula1??``)}},NPt=class extends hPt{constructor(...e){super(...e),Q7(this,`id`,Fx.LIST_MULTIPLE),Q7(this,`title`,`sheets-data-validation.listMultiple.title`),Q7(this,`offsetFormulaByRange`,!1),Q7(this,`skipDefaultFontRender`,()=>!0)}},PPt=class extends f9{constructor(...e){super(...e),Q7(this,`_customFormulaService`,this.injector.get(o9)),Q7(this,`_lexerTreeBuilder`,this.injector.get(SB)),Q7(this,`id`,Fx.WHOLE),Q7(this,`title`,`sheets-data-validation.whole.title`),Q7(this,`order`,10),Q7(this,`operators`,[Mx.BETWEEN,Mx.EQUAL,Mx.GREATER_THAN,Mx.GREATER_THAN_OR_EQUAL,Mx.LESS_THAN,Mx.LESS_THAN_OR_EQUAL,Mx.NOT_BETWEEN,Mx.NOT_EQUAL]),Q7(this,`scopes`,[`sheet`])}_isFormulaOrInt(e){return!F.isBlank(e)&&(Vh(e)||!Number.isNaN(+e)&&Number.isInteger(+e))}async isValidType(e,t,n){let{value:r}=e,i=y9(r);return!Number.isNaN(i)&&Number.isInteger(i)}transform(e,t,n){let{value:r}=e;return{...e,value:y9(r)}}_parseNumber(e){return e==null?NaN:+e}async parseFormula(e,t,n,r,i){let a=await this._customFormulaService.getCellFormulaValue(t,n,e.uid,r,i),o=await this._customFormulaService.getCellFormula2Value(t,n,e.uid,r,i),{formula1:s,formula2:c}=e,l=Vh(s)?a?.v:s,u=Vh(c)?o?.v:c,d=i9(`${l}`)&&i9(`${u}`);return{formula1:this._parseNumber(l),formula2:this._parseNumber(u),isFormulaValid:d}}validatorFormula(e,t,n){let r=e.operator;if(!r)return{success:!0};let i=F.isDefine(e.formula1)&&this._isFormulaOrInt(e.formula1),a=F.isDefine(e.formula2)&&this._isFormulaOrInt(e.formula2),o=m9.includes(r),s=this.localeService.t(`sheets-data-validation.validFail.number`);return o?{success:i&&a,formula1:i?void 0:s,formula2:a?void 0:s}:{success:i,formula1:s}}generateRuleErrorMessage(e,t){if(!e.operator)return this.localeService.t(d9.NONE).replace(`{TYPE}`,this.titleStr);let{transformedFormula1:n,transformedFormula2:r}=_9(this._lexerTreeBuilder,e,t);return`${this.localeService.t(d9[e.operator]).replace(h9,n??``).replace(g9,r??``)}`}},T9=class extends Kf{constructor(e,t,n,r,i,a){super(),this._univerInstanceService=e,this._dataValidatorRegistryService=t,this._injector=n,this._selectionManagerService=r,this._sheetInterceptorService=i,this._sheetDataValidationModel=a,this._init()}_init(){this._registerValidators(),this._initCommandInterceptor()}_registerValidators(){[jPt,uPt,PPt,gPt,lPt,aPt,hPt,NPt,MPt].forEach(e=>{let t=this._injector.createInstance(e);this.disposeWithMe(this._dataValidatorRegistryService.register(t)),this.disposeWithMe(Wf(()=>this._injector.delete(e)))})}_initCommandInterceptor(){this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===JK.id){let e=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET),t=e.getUnitId(),n=e.getActiveSheet();if(!n)throw Error(`No active sheet found`);let r=n.getSheetId(),i=this._selectionManagerService.getCurrentSelections()?.map(e=>e.range),a=this._sheetDataValidationModel.getRuleObjectMatrix(t,r).clone();i&&a.removeRange(i);let{redoMutations:o,undoMutations:s}=b9(t,r,a.diff(this._sheetDataValidationModel.getRules(t,r)),this._injector,`patched`);return{undos:s,redos:o}}return{undos:[],redos:[]}}})}};T9=e9([$7(0,z),$7(1,j(J7)),$7(2,j(We)),$7(3,j(HK)),$7(4,j(MG)),$7(5,j(u9))],T9);var E9=class extends P{constructor(e,t,n,r){super(),this._univerInstanceService=e,this._sheetDataValidationModel=t,this._dataValidationCacheService=n,this._lifecycleService=r,this._initRecalculate()}_initRecalculate(){let e=e=>{if(e.length===0)return;let t=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET),n=t?.getActiveSheet(),r={};e.flat().forEach(e=>{r[e.unitId]||(r[e.unitId]={}),r[e.unitId][e.subUnitId]||(r[e.unitId][e.subUnitId]=[]);let t=this._univerInstanceService.getUnit(e.unitId,M.UNIVER_SHEET)?.getSheetBySheetId(e.subUnitId);t&&r[e.unitId][e.subUnitId].push(...e.ranges.map(e=>$g.transformRange(e,t)))}),Object.entries(r).forEach(([e,r])=>{Object.entries(r).forEach(([r,i])=>{t?.getUnitId()===e&&n?.getSheetId()===r?this.validatorRanges(e,r,i):requestIdleCallback(()=>{this.validatorRanges(e,r,i)})})})};this.disposeWithMe(this._dataValidationCacheService.dirtyRanges$.pipe(Vs(()=>this._lifecycleService.lifecycle$.pipe(ac(1),Ls(e=>e===Wb.Rendered)))).subscribe(e)),this.disposeWithMe(this._dataValidationCacheService.dirtyRanges$.pipe(Ls(()=>this._lifecycleService.stage>=Wb.Rendered),Ym(20)).subscribe(e))}async _validatorByCell(e,t,n,r){let i=e.getUnitId(),a=t.getSheetId();if(!F.isDefine(n)||!F.isDefine(r))throw Error(`row or col is not defined, row: ${n}, col: ${r}`);let o=n,s=r,c=t.getMergedCell(n,r);c&&(o=c.startRow,s=c.startColumn);let l=this._sheetDataValidationModel.getRuleByLocation(i,a,o,s);return l?new Promise(n=>{this._sheetDataValidationModel.validator(l,{unitId:i,subUnitId:a,row:o,col:s,worksheet:t,workbook:e},e=>{n(e)})}):Px.VALID}async validatorCell(e,t,n,r){let i=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET);if(!i)throw Error(`cannot find current workbook, unitId: ${e}`);let a=i.getSheetBySheetId(t);if(!a)throw Error(`cannot find current worksheet, sheetId: ${t}`);return this._validatorByCell(i,a,n,r)}async validatorRanges(e,t,n){if(!n.length)return Promise.resolve([]);let r=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET);if(!r)throw Error(`cannot find current workbook, unitId: ${e}`);let i=r.getSheetBySheetId(t);if(!i)throw Error(`cannot find current worksheet, sheetId: ${t}`);let a=this._sheetDataValidationModel.getRules(e,t),o=[];for(let e of a)o.push(...e.ranges);let s=[];for(let e of n)for(let t of o){let n=a_(e,t);n&&s.push(n)}let c=[],l=await Promise.all(s.map((e,t)=>{let n=[];for(let a=e.startRow;a<=e.endRow;a++)for(let o=e.startColumn;o<=e.endColumn;o++){n.push(this._validatorByCell(r,i,a,o));let e=i.getMergedCell(a,o);e&&c.push({resultRowIndex:t,resultColIndex:n.length-1,row:e.startRow,col:e.startColumn})}return Promise.all(n)}));return c.length&&c.forEach(({resultRowIndex:n,resultColIndex:r,row:i,col:a})=>{l[n][r]===Px.VALIDATING&&(l[n][r]=this._dataValidationCacheService.getValue(e,t,i,a)??Px.VALID)}),l}async validatorWorksheet(e,t){let n=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET);if(!n)throw Error(`cannot find current workbook, unitId: ${e}`);let r=n.getSheetBySheetId(t);if(!r)throw Error(`cannot find current worksheet, sheetId: ${t}`);let i=this._sheetDataValidationModel.getRules(e,t);return await Promise.all(i.map(e=>Promise.all(e.ranges.map(e=>{let t=[];return $g.foreach(e,(e,i)=>{t.push(this._validatorByCell(n,r,e,i))}),Promise.all(t)})))),this._dataValidationCacheService.ensureCache(e,t)}async validatorWorkbook(e){let t=this._sheetDataValidationModel.getSubUnitIds(e),n=await Promise.all(t.map(t=>this.validatorWorksheet(e,t))),r={};return n.forEach((e,n)=>{r[t[n]]=e}),r}getDataValidations(e,t,n){let r=this._sheetDataValidationModel.getRuleObjectMatrix(e,t),i=new Set;n.forEach(e=>{$g.foreach(e,(e,t)=>{let n=r.getValue(e,t);n&&i.add(n)})});let a=[];for(let n of i){let r=this._sheetDataValidationModel.getRuleById(e,t,n);r&&a.push(r)}return a}getDataValidation(e,t,n){return this.getDataValidations(e,t,n)[0]}};E9=e9([$7(0,z),$7(1,j(u9)),$7(2,j(t9)),$7(3,j(qb))],E9);var D9=class extends ax{constructor(e=APt,t,n,r){super(),this._config=e,this._injector=t,this._commandService=n,this._configService=r;let{...i}=Qi({},APt,this._config);this._configService.setConfig(kPt,i)}onStarting(){[[t9],[c9],[l9],[o9],[E9],[u9],[T9],[x9],[w9],[C9],[S9]].forEach(e=>{this._injector.add(e)}),[yPt,vPt,bPt,xPt,TPt,CPt,SPt].forEach(e=>{this._commandService.registerCommand(e)}),this._injector.get(t9),this._injector.get(E9),this._injector.get(T9),this._injector.get(S9),this._injector.get(C9)}onReady(){this._injector.get(w9)}onRendered(){this._injector.get(x9)}};Q7(D9,`pluginName`,EPt),Q7(D9,`packageName`,DPt),Q7(D9,`version`,OPt),Q7(D9,`type`,M.UNIVER_SHEET),D9=e9([sx(tQ,Y7),$7(1,j(We)),$7(2,R),$7(3,Mm)],D9);function O9(e){return F.isLegalUrl(e)}function FPt(e){return/^[a-zA-Z]+:\/\//.test(e)}function IPt(e){return/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(e)}function LPt(e){if(O9(e)){let t=FPt(e)?e:IPt(e)?`mailto://${e}`:`http://${e}`,n;try{n=new URL(t)}catch{return e}return n.hostname===location.hostname&&n.port===location.port&&n.protocol===location.protocol&&n.pathname===location.pathname&&n.hash&&!n.search?n.hash:t}return e}var RPt=`sheets-hyper-link-ui.config`,zPt={};function k9(e,t){return function(n,r){t(n,r,e)}}function A9(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function BPt(e,t){let n=t.getMergeData(),r=t.getMaxColumns()-1,i=t.getMaxRows()-1;if(r<e.endColumn&&(e.endColumn=r),i<e.endRow&&(e.endRow=i),e.rangeType===_h.COLUMN||_h.ROW)return e;let a=[];return n.forEach(t=>{l_.intersects(e,t)&&a.push(t)}),l_.realUnion(e,...a)}var j9=class{constructor(e,t,n,r,i,a){this._univerInstanceService=e,this._commandService=t,this._definedNamesService=n,this._messageService=r,this._localeService=i,this._configService=a}navigate(e){switch(e.type){case N7.URL:this.navigateToOtherWebsite(e.url);break;default:this._navigateToUniver(e.searchObj)}}_navigateToUniver(e){let{gid:t,range:n,rangeid:r}=e,i=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET);if(!i)return;let a=i.getUnitId();if(r){let e=this._definedNamesService.getValueById(a,r);if(!e)return;let{formulaOrRefString:t}=e,n=this._definedNamesService.getWorksheetByRef(a,t);if(!n){this._messageService.show({content:this._localeService.t(`sheets-hyper-link-ui.message.refError`),type:dj.Error});return}if(n.isSheetHidden()){this._messageService.show({content:this._localeService.t(`sheets-hyper-link-ui.message.hiddenSheet`),type:dj.Error});return}this.navigateToDefineName(a,r)}if(t){if(n){let e=Cz(n);Kh(e.range)&&n!==`err`&&this.navigateToRange(a,t,e.range);return}this.navigateToSheetById(a,t)}}async navigateToRange(e,t,n,r){let i=await this.navigateToSheetById(e,t);if(i){let a=BPt(n,i);await this._commandService.executeCommand(iq.id,{unitId:e,subUnitId:t,selections:[{range:a,primary:null}]}),await this._commandService.executeCommand(O1.id,{range:a,forceTop:r})}}async navigateToSheetById(e,t){let n=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET);if(!n)return!1;let r=n.getActiveSheet();if(!r)return!1;if(r.getSheetId()===t)return r;let i=n.getSheetBySheetId(t);return i?n.getHiddenWorksheets().indexOf(t)>-1?(this._messageService.show({content:this._localeService.t(`sheets-hyper-link-ui.message.hiddenSheet`),type:dj.Error}),!1):await this._commandService.executeCommand(SK.id,{unitId:e,subUnitId:t})?i:!1:(this._messageService.show({content:this._localeService.t(`sheets-hyper-link-ui.message.noSheet`),type:dj.Error}),!1)}async navigateToDefineName(e,t){return this._definedNamesService.focusRange(e,t),!0}async navigateToOtherWebsite(e){var t;if(!$f(e))return;let n=this._configService.getConfig(RPt);if(n!=null&&(t=n.urlHandler)!=null&&t.navigateToOtherWebsite)return n.urlHandler.navigateToOtherWebsite(e);window.open(e,`_blank`,`noopener noreferrer`)}};j9=A9([k9(0,z),k9(1,R),k9(2,Mz),k9(3,$j),k9(4,j(Xb)),k9(5,Mm)],j9);function M9(e){"@babel/helpers - typeof";return M9=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},M9(e)}function VPt(e,t){if(M9(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(M9(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function HPt(e){var t=VPt(e,`string`);return M9(t)==`symbol`?t:t+``}function N9(e,t,n){return(t=HPt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var UPt=class extends P{constructor(...e){super(...e),N9(this,`_customHyperLinks`,new Map)}isBuiltInLinkType(e){return e!==N7.URL}getOptions(){return Array.from(this._customHyperLinks.values()).map(({option:e})=>e)}findCustomHyperLink(e){return Array.from(this._customHyperLinks.values()).find(t=>t.match(e))}registerCustomHyperLink(e){this._customHyperLinks.set(e.type,e)}getCustomHyperLink(e){return this._customHyperLinks.get(e)}removeCustomHyperLink(e){let{_customHyperLinks:t}=this;t.delete(e)}dispose(){super.dispose(),this._customHyperLinks.clear()}};function WPt(e){return e.trim().length===0}function GPt(e,t){let[n]=e.split(`,`).map(Cz);return!n||!Kh(n.range)?``:(n.sheetName||=t,bz(n))}var P9=()=>{let[e,t]=(0,V.useState)(``),[n,r]=(0,V.useState)(!1),[i,a]=(0,V.useState)(``),[o,s]=(0,V.useState)(!0),[c,l]=(0,V.useState)(N7.URL),[u,d]=(0,V.useState)(``),f=U(Xb),p=U(Mz),m=U(d1),h=U(z),g=U(I9),_=KD(g.currentEditing$),v=U(P7),y=U(j9),b=U(R),x=U(UPt),S=(0,V.useMemo)(()=>x.getOptions(),[x]),C=U(BM),w=U(zE),T=U(DQ),E=U(YE),D=U(Pm),O=U(dx),k=U(YE),[A,ee]=(0,V.useState)(!1),te=U(HK),ne=(0,V.useMemo)(()=>te.getCurrentSelections(),[]),re=(0,V.useMemo)(()=>{if(!x.isBuiltInLinkType(c))return x.getCustomHyperLink(c)},[x,c]),[ie,ae]=(0,V.useState)(!1),[oe,se]=(0,V.useState)(!1),ce=(0,V.useRef)(!1),le=h.getCurrentUnitOfType(M.UNIVER_SHEET),ue=le?.getActiveSheet().getSheetId()||``,de=(0,V.useCallback)(e=>{a(e.replaceAll(Rv.CUSTOM_RANGE_START,``).replaceAll(Rv.CUSTOM_RANGE_END,``))},[a]);(0,V.useEffect)(()=>{if(_?.row!==void 0&&_.col!==void 0){let{customRange:c,row:u,col:f}=_,{label:p}=_;typeof p==`number`&&(p=`${p}`);let m;if(c){var e;m={id:c?.rangeId??``,display:p??``,payload:(c==null||(e=c.properties)==null?void 0:e.url)??``,row:u,column:f}}else if(_.type===`viewing`){var n,r,i;let e=(h.getUnit(_.unitId)?.getSheetBySheetId(_.subUnitId))?.getCellRaw(_.row,_.col),t=e==null||(n=e.p)==null||(n=n.body)==null||(n=n.customRanges)==null?void 0:n.find(e=>e.rangeType===Lp.HYPERLINK&&e.properties?.url),a=e?.v;e&&(!by.transform.isEmptyDocument((r=e.p)==null||(r=r.body)==null?void 0:r.dataStream)||F.isDefine(a))&&s(!1),m={id:``,display:``,payload:(t==null||(i=t.properties)==null?void 0:i.url)??``,row:u,column:f}}else{var a;let e=h.getCurrentUnitOfType(M.UNIVER_DOC),t=E.getActiveTextRange(),n=e?.getBody(),r=t&&n?t:null,i=r&&by.customRange.getCustomRangesInterestsWithSelection(r,n?.customRanges??[])?.[0];s(!1),m={id:``,display:p??``,payload:(i==null||(a=i.properties)==null?void 0:a.url)??``,row:u,column:f}}t(m.id);let g=x.findCustomHyperLink(m);if(g){let e=g.convert(m);l(e.type),d(e.payload),de(e.display);return}de(m.display);let y=v.parseHyperLink(m.payload);switch(l(y.type===N7.INVALID?N7.RANGE:y.type),y.type){case N7.URL:d(y.url),y.url===m.display&&(ce.current=!0);break;case N7.RANGE:{var o;let e=y.searchObj,t=vz(e.gid?((o=h.getUnit(_.unitId))==null||(o=o.getSheetBySheetId(e.gid))==null?void 0:o.getName())??``:``,Cz(e.range).range);d(t),t===m.display&&(ce.current=!0);break}case N7.SHEET:{let e=y.searchObj;d(e.gid);break}case N7.DEFINE_NAME:{let e=y.searchObj;d(e.rangeid);break}default:d(``)}}},[_,y,x,E,h]),(0,V.useEffect)(()=>{let e=null;if(_&&!_.customRangeId&&_.type===`viewing`&&F.isDefine(_.row)&&F.isDefine(_.col)){let t=(h.getUnit(_.unitId,M.UNIVER_SHEET)?.getSheetBySheetId(_.subUnitId))?.getMergedCell(_.row,_.col),n=new nh(O.getColorFromTheme(`primary.600`)).toRgb();e=T.addShape({range:t??{startColumn:_.col,endColumn:_.col,startRow:_.row,endRow:_.row},style:{fill:`rgb(${n.r}, ${n.g}, ${n.b}, 0.12)`,strokeWidth:1,stroke:`#FFBD37`,widgets:{}},primary:null},[],-1)}return()=>{e&&T.removeShape(e)}},[_,T,O,h]),(0,V.useEffect)(()=>{se(c===N7.RANGE)},[c]),(0,V.useEffect)(()=>{let e=_?.type===`zen_mode`?w.getRenderById(rf):w.getRenderById(m.getCurrentEditorId()),t=new Gf;if(e){let n=e.with(YF);n.setReserveRangesStatus(!0),t.add(()=>{n.setReserveRangesStatus(!1)})}return()=>{m.disableForceKeepVisible(),t.dispose()}},[_?.type,m,w]),(0,V.useEffect)(()=>(oe&&g.setIsKeepVisible(oe),g.setIsKeepVisible(A),()=>{g.setIsKeepVisible(!1)}),[oe,A,g]),(0,V.useEffect)(()=>()=>{C.temporaryHidden&&(C.show(),D.setContextValue(Uy,!1))},[D,C]),(0,V.useEffect)(()=>{if(oe)return m.enableForceKeepVisible(),()=>{m.disableForceKeepVisible()}},[oe,m]);let fe=[{label:f.t(`sheets-hyper-link-ui.form.link`),value:N7.URL},{label:f.t(`sheets-hyper-link-ui.form.range`),value:N7.RANGE},{label:f.t(`sheets-hyper-link-ui.form.worksheet`),value:N7.SHEET},{label:f.t(`sheets-hyper-link-ui.form.definedName`),value:N7.DEFINE_NAME},...S];if(!le)return;let pe=le.getHiddenWorksheets(),me=le.getSheets().map(e=>({label:e.getName(),value:e.getSheetId()})).filter(e=>pe.indexOf(e.value)===-1),he=Object.values(p.getDefinedNameMap(le.getUnitId())??{}).map(e=>({label:e.name,value:e.id})),ge=(e,t)=>{if(e===N7.URL)return LPt(t);if(e===N7.RANGE){let e=Cz(t),n=le.getSheetBySheetName(e.sheetName);if(n)return`#gid=${n.getSheetId()}&range=${_z(e.range)}`}return`#${e}=${t}`},_e=Lj(e=>{let t=GPt(e,le.getActiveSheet()?.getName()||``);if(!t){d(``);return}d(t),t&&(ce.current||!i)&&(de(t),ce.current=!0)}),ve=async()=>{if(o&&WPt(i)||!u||c===N7.URL&&!O9(u)){ae(!0);return}if(_){if(e){let t=_.type===`zen_mode`||_.type===`editing`?CNt.id:SNt.id;await b.executeCommand(t,{id:e,unitId:_.unitId,subUnitId:_.subUnitId,payload:{display:o?i:``,payload:ge(c,u)},row:_.row,column:_.col,documentId:_.type===`zen_mode`?rf:m.getCurrentEditorId()})}else{let e=_.type===`zen_mode`||_.type===`editing`?yNt.id:vNt.id;await b.executeCommand(e,{unitId:_.unitId,subUnitId:_.subUnitId,link:{id:rp(),row:_.row,column:_.col,payload:ge(c,u),display:o?i:``},documentId:_.type===`zen_mode`?rf:m.getCurrentEditorId()})}}_?.type===`viewing`&&(await b.executeCommand(SK.id,{unitId:_.unitId,subUnitId:_.subUnitId}),await b.executeCommand(O1.id,{range:{startRow:Math.max(_.row-1,0),endRow:_.row+1,startColumn:Math.max(_.col-1,0),endColumn:_.col+1}})),b.executeCommand(L9.id)};return _?(0,H.jsxs)(`div`,{className:W(`univer-box-border univer-w-[296px] univer-rounded-xl univer-bg-white univer-p-4 univer-shadow-md dark:!univer-bg-gray-900`,KA),children:[o?(0,H.jsx)(sj,{label:f.t(`sheets-hyper-link-ui.form.label`),error:ie&&WPt(i)?f.t(`sheets-hyper-link-ui.form.inputError`):``,children:(0,H.jsx)(cj,{value:i,onChange:e=>{de(e),ce.current=!1},placeholder:f.t(`sheets-hyper-link-ui.form.labelPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===iM.ENTER&&ve()}})}):null,(0,H.jsx)(sj,{label:f.t(`sheets-hyper-link-ui.form.type`),children:(0,H.jsx)(yj,{className:`univer-w-full`,options:fe,value:c,onChange:e=>{l(e),d(``)}})}),c===N7.URL&&(0,H.jsx)(sj,{error:ie?u?O9(u)?``:f.t(`sheets-hyper-link-ui.form.linkError`):f.t(`sheets-hyper-link-ui.form.inputError`):``,children:(0,H.jsx)(cj,{value:u,onChange:e=>{d(e),e&&(ce.current||!i||i===e)&&(de(e),ce.current=!0)},placeholder:f.t(`sheets-hyper-link-ui.form.linkPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===iM.ENTER&&ve()}})}),c===N7.RANGE&&(0,H.jsx)(sj,{error:ie&&!u?f.t(`sheets-hyper-link-ui.form.inputError`):``,children:(0,H.jsx)(A4,{unitId:le.getUnitId(),subUnitId:ue,maxRangeCount:1,supportAcrossSheet:!0,initialValue:u,resetRange:ne,onChange:(e,t)=>_e(t),onRangeSelectorDialogVisibleChange:async e=>{if(ee(e),e)_.type===`zen_mode`&&(C.hide(),D.setContextValue(`FOCUSING_SHEET`,!0)),_.type!==`viewing`&&m.enableForceKeepVisible(),r(!0);else{if(await y.navigateToRange(_.unitId,_.subUnitId,{startRow:_.row,endRow:_.row,startColumn:_.col,endColumn:_.col},!0),_.type===`zen_mode`){await b.executeCommand(iq.id,{unitId:_.unitId,subUnitId:_.subUnitId,selections:[{range:{startRow:_.row,endRow:_.row,startColumn:_.col,endColumn:_.col}}]}),C.show(),D.setContextValue(`FOCUSING_SHEET`,!1);let e=w.getRenderById(rf)?.with(oL),t=k.getTextRanges({unitId:rf,subUnitId:rf})?.[0];e&&t&&(e.scrollToRange(t),k.refreshSelection({unitId:rf,subUnitId:rf}))}m.disableForceKeepVisible(),r(!1)}},onFocusChange:e=>se(e)})}),c===N7.SHEET&&(0,H.jsx)(sj,{error:ie&&!u?f.t(`sheets-hyper-link-ui.form.selectError`):``,children:(0,H.jsx)(yj,{className:`univer-w-full`,options:me,value:u,onChange:e=>{d(e);let t=me.find(t=>t.value===e)?.label,n=me.find(e=>e.value===u)?.label;t&&(ce.current||!i||i===n)&&(de(t),ce.current=!0)}})}),c===N7.DEFINE_NAME&&(0,H.jsx)(sj,{error:ie&&!u?f.t(`sheets-hyper-link-ui.form.selectError`):``,children:(0,H.jsx)(yj,{className:`univer-w-full`,options:he,value:u,onChange:e=>{d(e);let t=he.find(t=>t.value===e)?.label,n=he.find(e=>e.value===u)?.label;t&&(ce.current||!i||i===n)&&(de(t),ce.current=!0)}})}),re?.Form&&(0,H.jsx)(re.Form,{linkId:e,payload:u,display:i,showError:ie,setByPayload:ce,setDisplay:e=>{de(e),ce.current=!0},setPayload:d}),(0,H.jsxs)(`div`,{className:`univer-flex univer-flex-row univer-justify-end univer-gap-2`,children:[(0,H.jsx)(VA,{onClick:()=>{_&&y.navigateToRange(_.unitId,_.subUnitId,{startRow:_.row,endRow:_.row,startColumn:_.col,endColumn:_.col},!0),b.executeCommand(L9.id)},children:f.t(`sheets-hyper-link-ui.form.cancel`)}),(0,H.jsx)(VA,{variant:`primary`,onClick:async()=>{ve()},children:f.t(`sheets-hyper-link-ui.form.ok`)})]})]}):null};P9.componentKey=`univer.sheet.cell-link-edit`;var KPt={[N7.URL]:(0,H.jsx)(DD,{}),[N7.SHEET]:(0,H.jsx)(RPe,{className:`univer-text-green-500`}),[N7.RANGE]:(0,H.jsx)(sD,{}),[N7.DEFINE_NAME]:(0,H.jsx)(sD,{}),[N7.INVALID]:(0,H.jsx)(sD,{})},qPt=e=>{var t;let n=U(I9),r=U(R),i=U($j),a=U(Xb),o=U(j9),s=U(d1),c=U(P7),l=U(BM),{customRange:u,row:d,col:f,unitId:p,subUnitId:m,editPermission:h,copyPermission:g,type:_}=e;if(!(u!=null&&(t=u.properties)!=null&&t.url))return null;let v=c.parseHyperLink(u.properties.url??``),y=v.type===N7.INVALID;return(0,H.jsxs)(`div`,{className:W(`univer-mb-1 univer-flex univer-max-w-80 univer-flex-row univer-items-center univer-justify-between univer-overflow-hidden univer-rounded-lg univer-bg-white univer-p-3 univer-shadow-md dark:!univer-bg-gray-900`,KA),onClick:()=>n.hideCurrentPopup(),children:[(0,H.jsxs)(`div`,{className:W(`univer-flex univer-h-6 univer-flex-1 univer-cursor-pointer univer-flex-row univer-items-center univer-truncate univer-text-sm univer-leading-5 univer-text-primary-600`,{"univer-text-red-500":y}),onClick:()=>{l.visible||y||o.navigate(v)},children:[(0,H.jsx)(`div`,{className:`univer-mr-2 univer-flex univer-size-5 univer-flex-none univer-items-center univer-justify-center univer-text-base univer-text-gray-900 dark:!univer-text-white`,children:KPt[v.type]}),(0,H.jsx)(uj,{showIfEllipsis:!0,title:v.name,asChild:!0,children:(0,H.jsx)(`span`,{className:`univer-flex-1 univer-truncate`,children:v.name})})]}),(0,H.jsxs)(`div`,{className:`univer-flex univer-h-6 univer-flex-none univer-flex-row univer-items-center univer-justify-center`,children:[g&&(0,H.jsx)(`div`,{className:W(`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,{"univer-text-red-500":y}),onClick:()=>{if(!y){if(v.type!==N7.URL){let e=new URL(window.location.href);e.hash=v.url.slice(1),navigator.clipboard.writeText(e.href)}else navigator.clipboard.writeText(v.url);i.show({content:a.t(`sheets-hyper-link-ui.message.coped`),type:dj.Info})}},children:(0,H.jsx)(uj,{placement:`bottom`,title:a.t(`sheets-hyper-link-ui.popup.copy`),children:(0,H.jsx)(dD,{className:`dark:!univer-text-white`})})}),h&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{r.executeCommand($Pt.id,{unitId:p,subUnitId:m,row:d,col:f,customRangeId:u.rangeId,type:_})},children:(0,H.jsx)(uj,{placement:`bottom`,title:a.t(`sheets-hyper-link-ui.popup.edit`),children:(0,H.jsx)(zD,{className:`dark:!univer-text-white`})})}),(0,H.jsx)(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{let e=_===`editing`||_===`zen_mode`?xNt.id:bNt.id;r.syncExecuteCommand(e,{unitId:p,subUnitId:m,id:u.rangeId,row:d,column:f,documentId:_===`zen_mode`?rf:s.getCurrentEditorId()})&&n.hideCurrentPopup(void 0,!0)},children:(0,H.jsx)(uj,{placement:`bottom`,title:a.t(`sheets-hyper-link-ui.popup.cancel`),children:(0,H.jsx)(LD,{className:`dark:!univer-text-white`})})})]})]})]})},F9=()=>{let e=U(I9),[t,n]=(0,V.useState)(null),r=U(z);if((0,V.useEffect)(()=>{n(e.currentPopup);let t=e.currentPopup$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[e.currentPopup,e.currentPopup$]),!t)return null;if(t.showAll){var i;let e=(r.getUnit(t.unitId,M.UNIVER_SHEET)?.getSheetBySheetId(t.subUnitId))?.getCell(t.row,t.col),n=e==null||(i=e.p)==null||(i=i.body)==null?void 0:i.customRanges;return n?.length?(0,H.jsx)(`div`,{children:n.map(e=>(0,H.jsx)(qPt,{...t,customRange:e},e.rangeId))}):null}return(0,H.jsx)(qPt,{...t})};F9.componentKey=`univer.sheet.cell-link-popup`;var JPt=(e,t)=>e.unitId===t.unitId&&e.subUnitId===t.subUnitId&&e.row===t.row&&e.col===t.col&&e.customRange?.rangeId===t.customRange?.rangeId&&e.type===t.type,I9=class extends P{get currentPopup(){return this._currentPopup}get currentEditing(){return this._currentEditing$.getValue()}constructor(e,t,n,r,i,a,o){super(),this._sheetCanvasPopManagerService=e,this._injector=t,this._univerInstanceService=n,this._editorBridgeService=r,this._textSelectionManagerService=i,this._docCanvasPopManagerService=a,this._zenZoneService=o,N9(this,`_currentPopup`,null),N9(this,`_currentPopup$`,new ao),N9(this,`currentPopup$`,this._currentPopup$.asObservable()),N9(this,`_currentEditingPopup`,null),N9(this,`_currentEditing$`,new so(null)),N9(this,`currentEditing$`,this._currentEditing$.asObservable()),N9(this,`_isKeepVisible`,!1),this.disposeWithMe(()=>{this.hideCurrentPopup(),this.endEditing(),this._currentEditing$.complete(),this._currentPopup$.complete()})}setIsKeepVisible(e){this._isKeepVisible=e}getIsKeepVisible(){return this._isKeepVisible}showPopup(e){if(this._currentPopup&&JPt(e,this._currentPopup)||(this.hideCurrentPopup(void 0,!0),e.type!==`zen_mode`&&this._zenZoneService.visible))return;let t=this._currentEditing$.getValue();if(t&&JPt(e,t))return;let{unitId:n,subUnitId:r,row:i,col:a,customRangeRect:o,customRange:s}=e,c,l={componentKey:F9.componentKey,direction:`bottom`,onClickOutside:()=>{this.hideCurrentPopup()},onClick:()=>{this.hideCurrentPopup(e.type,!0)}};if(e.type===`editing`){if(!s)return;c=o&&this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(o,l)}else if(e.type===`zen_mode`){if(!s)return;c=this._docCanvasPopManagerService.attachPopupToRange({startOffset:s.startIndex,endOffset:s.endIndex+1,collapsed:!1},l,rf)}else if(e.showAll)c=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,l,n,r);else{if(!s)return;c=o&&this._sheetCanvasPopManagerService.attachPopupByPosition(o,l,e)}if(c){if(this._currentPopup){var u;(u=this._currentPopup.disposable)==null||u.dispose()}this._currentPopup={unitId:n,subUnitId:r,disposable:c,row:i,col:a,editPermission:!!e.editPermission,copyPermission:!!e.copyPermission,customRange:s,type:e.type,showAll:e.showAll},this._currentPopup$.next(this._currentPopup)}}hideCurrentPopup(e,t){if(this._currentPopup&&((!e||e===this._currentPopup.type)&&this._currentPopup.disposable.canDispose()||t)){var n;(n=this._currentPopup)==null||(n=n.disposable)==null||n.dispose(),this._currentPopup=null,this._currentPopup$.next(null)}}dispose(){super.dispose(),this.hideCurrentPopup(),this.endEditing(),this._currentPopup$.complete(),this._currentEditing$.complete()}_getEditingRange(){let e=this._editorBridgeService.isVisible().visible,t=this._editorBridgeService.getEditCellState();if(e&&t){let e=this._textSelectionManagerService.getActiveTextRange(),n=t.documentLayoutObject.documentModel?.getBody();if(!n)return null;if(!e||e.collapsed)return{startOffset:0,endOffset:n.dataStream.length-2,collapsed:n.dataStream.length-2==0,label:by.transform.getPlainText(n.dataStream)};let r=by.customRange.getCustomRangesInterestsWithSelection(e,n.customRanges?.filter(e=>e.rangeType===Lp.HYPERLINK)??[]),i=e.startOffset,a=e.endOffset;return r.forEach(e=>{i=Math.min(i,e.startIndex),a=Math.max(a,e.endIndex+1)}),{startOffset:i,endOffset:a,collapsed:i===a,label:by.transform.getPlainText(n.dataStream.slice(i,a))}}return null}get _editPopup(){return{componentKey:P9.componentKey,direction:`vertical`,onClickOutside:()=>{this.endEditing()},onContextMenu:()=>{this.endEditing()},hiddenType:`hide`}}startAddEditing(e){let{unitId:t,subUnitId:n,type:r}=e;if(r===`zen_mode`){let t=this._univerInstanceService.getUnit(rf,M.UNIVER_DOC);if(!t)return;let n=this._textSelectionManagerService.getActiveTextRange();if(!n)return;this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange(n,this._editPopup,rf);let r=t.getBody()?.dataStream.slice(n.startOffset,n.endOffset);this._currentEditing$.next({...e,label:r})}else if(r===`editing`){let r=this._getEditingRange();if(!r)return;this._textSelectionManagerService.replaceDocRanges([{...r}],{unitId:tf,subUnitId:tf});let i=this._injector.get(zE).getRenderById(tf);if(!i)return;let a=qI(r,i);if(!a?.length)return;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(a.pop(),this._editPopup,t,n),this._currentEditing$.next({...e,label:r?.label??``})}else{this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,this._editPopup,t,n);let r=(this._univerInstanceService.getUnit(t,M.UNIVER_SHEET)?.getSheetBySheetId(n))?.getCellRaw(e.row,e.col);this._currentEditing$.next({...e,label:r?.p?by.transform.getPlainText(r.p.body?.dataStream??``):(r?.v??``).toString()})}}startEditing(e){var t;(t=this._currentEditingPopup)==null||t.dispose(),this.hideCurrentPopup(void 0,!0);let{unitId:n,subUnitId:r}=e,i,a;if(e.type===`zen_mode`){var o,s;let t=this._univerInstanceService.getUnit(rf,M.UNIVER_DOC);if(i=t==null||(o=t.getBody())==null||(o=o.customRanges)==null?void 0:o.find(t=>t.rangeId===e.customRangeId),a=i?t==null||(s=t.getBody())==null?void 0:s.dataStream.slice(i.startIndex,i.endIndex+1):``,!i||!a)return;this._textSelectionManagerService.replaceTextRanges([{startOffset:i.startIndex,endOffset:i.endIndex+1}]),this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange({startOffset:i.startIndex,endOffset:i.endIndex,collapsed:!1},this._editPopup,rf)}else if(e.type===`editing`){let t=Lvt(this._injector,e.unitId,e.subUnitId,e.row,e.col,e.customRangeId);if(!t||!t.rects?.length)return;i=t.customRange,a=t.label,this._textSelectionManagerService.replaceTextRanges([{startOffset:i.startIndex,endOffset:i.endIndex+1}]),this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(t.rects.pop(),this._editPopup,n,r)}else{let t=this._univerInstanceService.getUnit(n,M.UNIVER_SHEET),o=(t?.getSheetBySheetId(r))?.getCellRaw(e.row,e.col),s=t?.getStyles().getStyleByCell(o)?.tr,c=Ivt(this._injector,e.unitId,e.subUnitId,e.row,e.col,e.customRangeId);if(!c||!c.rects?.length)return;i=c.customRange,a=c.label,this._currentEditingPopup=s?this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,this._editPopup,n,r):this._sheetCanvasPopManagerService.attachPopupByPosition(c.rects.pop(),this._editPopup,{unitId:n,subUnitId:r,row:e.row,col:e.col})}this._currentEditing$.next({...e,customRange:i,label:a})}endEditing(e){if(this.getIsKeepVisible())return;let t=this._currentEditing$.getValue();if(t&&(!e||e===t.type)){var n;(n=this._currentEditingPopup)==null||n.dispose(),this._currentEditing$.next(null)}}};I9=A9([k9(0,j(i2)),k9(1,j(We)),k9(2,z),k9(3,d1),k9(4,j(YE)),k9(5,j(JI)),k9(6,BM)],I9);var YPt=new Set([Fx.CHECKBOX,Fx.LIST,Fx.LIST_MULTIPLE]),XPt=(e,t,n,r)=>{var i,a;let o=t.getCell(n,r);if(o?.f||o?.si||o!=null&&(i=o.p)!=null&&(i=i.body)!=null&&(i=i.customBlocks)!=null&&i.length)return 1;let s=(e.has(u9)?e.get(u9):null)?.getRuleByLocation(t.getUnitId(),t.getSheetId(),n,r);return s&&YPt.has(s.type)?!0:o!=null&&(a=o.p)!=null&&(a=a.drawingsOrder)!=null&&a.length?2:0},ZPt=e=>{let t=e.get(z).getCurrentUnitOfType(M.UNIVER_SHEET);if(!t)return!0;let n=t.getActiveSheet(),r=e.get(HK).getCurrentSelections();if(!r.length)return!0;let i=r[0].range.startRow,a=r[0].range.startColumn;return XPt(e,n,i,a)===1},QPt=e=>{let t=e.get(YE),n=e.get(z),r=t.getTextRanges();if(!r?.length)return!0;let i=n.getCurrentUnitOfType(M.UNIVER_DOC);return!(i&&!r.every(e=>e.collapsed)&&i.getSelfOrHeaderFooterModel(r[0].segmentId).getBody())},$Pt={type:L.OPERATION,id:`sheet.operation.open-hyper-link-edit-panel`,handler(e,t){if(!t)return!1;let n=e.get(I9);return t.customRangeId?n.startEditing(t):n.startAddEditing(t),!0}},L9={type:L.OPERATION,id:`sheet.operation.close-hyper-link-popup`,handler(e){return e.get(I9).endEditing(),!0}},eFt={type:L.OPERATION,id:`sheet.operation.insert-hyper-link`,handler(e){let t=e.get(z),n=bG(t),r=e.get(d1);if(!n)return!1;let i=e.get(R),a=e.get(HK).getCurrentLastSelection();if(!a)return!1;let o=a.range.startRow,s=a.range.startColumn,c=r.isVisible(),l=t.getFocusedUnit()?.getUnitId()===rf;return i.executeCommand($Pt.id,{unitId:n.unitId,subUnitId:n.subUnitId,row:o,col:s,type:l?`zen_mode`:c.visible?`editing`:`viewing`})}},R9={type:L.OPERATION,id:`sheet.operation.insert-hyper-link-toolbar`,handler(e){if(ZPt(e))return!1;let t=e.get(R);return e.get(I9).currentEditing?t.executeCommand(L9.id):t.executeCommand(eFt.id)}},tFt=`SHEET_HYPER_LINK_UI_PLUGIN`,z9=class extends P{registerPlainTextFilter(e){this._plainTextFilter.add(e)}removePlainTextFilter(e){this._plainTextFilter.delete(e)}_filterPlainText(e){return Array.from(this._plainTextFilter).every(t=>t(e))}constructor(e,t,n,r){super(),this._sheetClipboardService=e,this._hyperLinkModel=t,this._injector=n,this._resolverService=r,N9(this,`_plainTextFilter`,new Set),N9(this,`_copyInfo`,void 0),this._initCopyPaste(),this.disposeWithMe(()=>{this._plainTextFilter.clear()})}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:tFt,onBeforeCopy:(e,t,n)=>this._collect(e,t,n),onPasteCells:(e,t,n,r)=>{let{copyType:i=MQ.COPY,pasteType:a}=r,{range:o}=e||{},{range:s,unitId:c,subUnitId:l}=t;return this._generateMutations(s,{copyType:i,pasteType:a,copyRange:o,unitId:c,subUnitId:l})},onPastePlainText:(e,t)=>{let n=this._filterPlainText(t);if(O9(t)&&n){let{range:t,unitId:n,subUnitId:r}=e,{ranges:[i],mapFunc:a}=lQ([t]),o=[],s=[];return $g.foreach(i,(e,t)=>{let{row:i,col:c}=a(e,t),l=this._hyperLinkModel.getHyperLinkByLocation(n,r,i,c);l&&o.push({id:w7.id,params:{unitId:n,subUnitId:r,id:l.id}}),l&&s.push({id:C7.id,params:{unitId:n,subUnitId:r,link:l}})}),{redos:o,undos:s}}return{undos:[],redos:[]}},priority:99})}_collect(e,t,n){let r=new Ih;this._copyInfo={unitId:e,subUnitId:t,matrix:r};let i=this._injector.invoke(r=>NK(n,r,e,t));if(!i)return;let{rows:a,cols:o}=i;a.forEach((n,i)=>{o.forEach((a,o)=>{let s=this._hyperLinkModel.getHyperLinkByLocation(e,t,n,a);r.setValue(i,o,s?.id??``)})})}_generateMutations(e,t){if(!this._copyInfo||!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!t.copyRange||[LQ.SPECIAL_PASTE_COL_WIDTH,LQ.SPECIAL_PASTE_VALUE,LQ.SPECIAL_PASTE_FORMAT,LQ.SPECIAL_PASTE_FORMULA].includes(t.pasteType))return{redos:[],undos:[]};let{unitId:n,subUnitId:r}=this._copyInfo,i=[],a=[],{ranges:[o,s],mapFunc:c}=lQ([t.copyRange,e]);return jgt(o,s,!0).forEach(({startRange:e})=>{var o;(o=this._copyInfo)==null||o.matrix.forValue((o,s,l)=>{let u=l_.getPositionRange({startRow:o,endRow:o,startColumn:s,endColumn:s},e),d=this._hyperLinkModel.getHyperLink(n,r,l),{row:f,col:p}=c(u.startRow,u.startColumn),m=this._hyperLinkModel.getHyperLinkByLocation(t.unitId,t.subUnitId,f,p),h=rp();m&&i.push({id:w7.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,id:m.id}}),d&&(i.push({id:C7.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,link:{...d,id:h,row:f,column:p}}}),a.push({id:w7.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,id:h}})),m&&a.push({id:C7.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,link:m}})})}),{redos:i,undos:a}}};z9=A9([k9(0,RQ),k9(1,j(S7)),k9(2,j(We)),k9(3,j(j9))],z9);var nFt=(e,t=rf)=>{let n=e.get(z),r=e.get(zE).getRenderById(t)?.with(YF);return r?r.textSelectionInner$.pipe(os(()=>{let t=e.get(d1).getEditCellState();if(!t)return!0;let r=bG(n,{unitId:t.unitId,subUnitId:t.sheetId});return!r?.worksheet||XPt(e,r.worksheet,t.row,t.column)===1||QPt(e)})):ts(!0)},rFt=e=>{let t=e.get(z),n=e.has(d1)?e.get(d1):null;return(n?.currentEditCellState$.pipe(os(n=>{if(!n)return 1;let r=bG(t,{unitId:n.unitId,subUnitId:n.sheetId});return r?XPt(e,r.worksheet,n.row,n.column):1}),sc(r=>r===1?ts(!0):_s([n?n.visible$:ts(null),t.getCurrentTypeOfUnit$(M.UNIVER_DOC)]).pipe(sc(([t,n])=>t?.visible?n?.getUnitId()===nf?ts(!0):nFt(e,tf):ts(r!==0)))))??ts(!0)).pipe(sc(t=>t?ts(!0):T0(e,{workbookTypes:[rX],worksheetTypes:[hX,SX,vX],rangeTypes:[KY]},!0)))},B9={commandId:eFt.id,type:yM.BUTTON,title:`sheets-hyper-link-ui.menu.add`,icon:`LinkIcon`},V9=e=>`${e}-zen-editor`,iFt=e=>({...B9,id:B9.commandId,hidden$:Nj(e,M.UNIVER_SHEET),disabled$:rFt(e)}),aFt=e=>({...B9,id:V9(B9.commandId),hidden$:Nj(e,M.UNIVER_DOC,rf),disabled$:nFt(e)}),H9={tooltip:`sheets-hyper-link-ui.form.addTitle`,commandId:R9.id,type:yM.BUTTON,icon:`LinkIcon`},oFt=e=>({...H9,id:H9.commandId,hidden$:Nj(e,M.UNIVER_SHEET),disabled$:rFt(e)}),sFt=e=>({...H9,id:V9(H9.commandId),hidden$:Nj(e,M.UNIVER_DOC,rf),disabled$:nFt(e)}),cFt={id:R9.id,binding:iM.K|aM.CTRL_COMMAND,preconditions:iQ},lFt=`@univerjs/sheets-hyper-link-ui`,uFt=`0.25.1`,U9=class extends P{constructor(e,t){super(),this._autoFillService=e,this._hyperLinkModel=t,this._initAutoFill()}_initAutoFill(){let e=()=>({redos:[],undos:[]}),t=(e,t)=>{let{source:n,target:r,unitId:i,subUnitId:a}=e,o=lQ([n,r]),[s,c]=o.ranges,{mapFunc:l}=o,u={row:s.startRow,col:s.startColumn},d=IJ.getAutoFillRepeatRange(s,c),f=[],p=[];return d.forEach(e=>{let n=e.repeatStartCell,r=e.relativeRange,o={startRow:u.row,startColumn:u.col,endColumn:u.col,endRow:u.row},s={startRow:n.row,startColumn:n.col,endColumn:n.col,endRow:n.row};$g.foreach(r,(e,n)=>{let r=l_.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},o),{row:c,col:u}=l(r.startRow,r.startColumn),d=this._hyperLinkModel.getHyperLinkByLocation(i,a,c,u),m=l_.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},s),{row:h,col:g}=l(m.startRow,m.startColumn),_=rp(),v=this._hyperLinkModel.getHyperLinkByLocation(i,a,h,g);v&&f.push({id:w7.id,params:{unitId:i,subUnitId:a,id:v.id}}),(LJ.COPY===t||LJ.SERIES===t)&&d&&(f.push({id:C7.id,params:{unitId:i,subUnitId:a,link:{...d,id:_,row:h,column:g}}}),p.push({id:w7.id,params:{unitId:i,subUnitId:a,id:_}})),v&&p.push({id:C7.id,params:{unitId:i,subUnitId:a,link:v}})})}),{undos:p,redos:f}},n={id:tFt,onFillData:(n,r,i)=>i===LJ.COPY||i===LJ.ONLY_FORMAT||i===LJ.SERIES?t(n,i):e()};this.disposeWithMe(this._autoFillService.addHook(n))}};U9=A9([k9(0,qJ),k9(1,j(S7))],U9);var W9=class extends P{constructor(e,t,n){super(),this._localeService=e,this._commandService=t,this._sheetPermissionCheckController=n,this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{e.id===cFt.id&&(this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[rX],rangeTypes:[KY],worksheetTypes:[hX,SX,vX]})||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localeService.t(`sheets-hyper-link-ui.permission.hyperLinkErr`)))}))}};W9=A9([k9(0,j(Xb)),k9(1,R),k9(2,j(QX))],W9);var G9=class extends P{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._hoverManagerService=e,this._sheetsHyperLinkPopupService=t,this._renderManagerService=n,this._permissionService=r,this._sheetPermissionCheckController=i,this._commandService=a,this._editorBridgeService=o,this._textSelectionManagerService=s,this._univerInstanceService=c,this._zenZoneService=l,this._initHoverListener(),this._initCommandListener(),this._initHoverEditingListener(),this._initTextSelectionListener(),this._initZenEditor()}_getLinkPermission(e){let{unitId:t,subUnitId:n,row:r,col:i}=e,a=this._univerInstanceService.getUnit(t,M.UNIVER_SHEET)?.getSheetBySheetId(n);if(!a)return{viewPermission:!1,editPermission:!1,copyPermission:!1};let o=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[uX],worksheetTypes:[EX],rangeTypes:[JY]},[{startRow:r,startColumn:i,endRow:r,endColumn:i}],t,n),s=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[rX],worksheetTypes:[hX,vX],rangeTypes:[KY]},[{startRow:r,startColumn:i,endRow:r,endColumn:i}],t,n),c=a.getCellRaw(r,i);c?.f&&c.f.startsWith(`=HYPERLINK(`)&&(s=!1);let l=this._permissionService.composePermission([new ZY(t).id,new dX(t,n).id]).every(e=>e.value);return{viewPermission:o,editPermission:s,copyPermission:l}}_initHoverListener(){this.disposeWithMe(this._hoverManagerService.currentRichText$.pipe(Ks(200)).subscribe(e=>{var t,n;if(!e||e.customRange?.rangeType!==Lp.HYPERLINK){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let{unitId:r,subUnitId:i,row:a,col:o}=e,s=this._renderManagerService.getRenderById(r);if(!s)return;let c=this._univerInstanceService.getUnit(r,M.UNIVER_SHEET),l=c?.getSheetBySheetId(i);if(!l)return;if(!s.with(t0).active){this._sheetsHyperLinkPopupService.hideCurrentPopup(`viewing`);return}let u=s==null||(t=s.with(TQ).getSkeletonParam(i))==null?void 0:t.skeleton,d=o,f=a,p=f,m=d;u&&u.overflowCache.forValue((e,t,n)=>{l_.contains(n,{startColumn:d,endColumn:d,startRow:f,endRow:f})&&(p=e,m=t)});let{viewPermission:h,editPermission:g,copyPermission:_}=this._getLinkPermission(e);if(!h){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let v=l.getCellStyleOnly(p,m),y=c.getStyles().getStyleByCell(v),b=y==null||(n=y.tr)==null?void 0:n.a;if(!b&&!e.customRange){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}this._sheetsHyperLinkPopupService.showPopup({row:p,col:m,editPermission:g,copyPermission:_,customRange:e.customRange,customRangeRect:e.rect,type:`viewing`,unitId:r,subUnitId:i,showAll:!!b})}))}_initHoverEditingListener(){let e=null;this.disposeWithMe(this._editorBridgeService.currentEditCellState$.pipe(sc(e=>this._editorBridgeService.visible$.pipe(os(t=>({visible:t,state:e}))))).subscribe(({visible:t,state:n})=>{if(!n||n.editorUnitId!==tf)return;if(!t.visible){e?.unsubscribe(),this._sheetsHyperLinkPopupService.hideCurrentPopup(`editing`),this._sheetsHyperLinkPopupService.endEditing(`editing`);return}let{editorUnitId:r,unitId:i,sheetId:a,row:o,column:s}=n,c=this._renderManagerService.getRenderById(r);if(!c)return;let{editPermission:l,viewPermission:u,copyPermission:d}=this._getLinkPermission({unitId:i,subUnitId:a,row:o,col:s}),f=c.with(XI);u&&(e?.unsubscribe(),e=f.hoverCustomRanges$.pipe(Ks(200)).subscribe(e=>{var t;let n=e.find(e=>e.range.rangeType===Lp.HYPERLINK);if(!n){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let r=n.rects[n.rects.length-1];if(!((t=this._renderManagerService.getRenderById(i))!=null&&(t=t.with(TQ).getSkeletonParam(a))!=null&&t.skeleton)||!r)return;let u=c.engine.getCanvasElement().getBoundingClientRect();this._sheetsHyperLinkPopupService.showPopup({unitId:i,subUnitId:a,row:o,col:s,customRange:n.range,customRangeRect:{left:r.left+u.left,top:r.top+u.top,bottom:r.bottom+u.top,right:r.right+u.left},editPermission:l,copyPermission:d,type:`editing`})}))})),this.disposeWithMe(()=>{e?.unsubscribe()})}_initZenEditor(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e?(this._sheetsHyperLinkPopupService.hideCurrentPopup(`viewing`),this._sheetsHyperLinkPopupService.hideCurrentPopup(`editing`),this._sheetsHyperLinkPopupService.endEditing(`editing`),this._sheetsHyperLinkPopupService.hideCurrentPopup(`viewing`)):(this._sheetsHyperLinkPopupService.hideCurrentPopup(`zen_mode`),this._sheetsHyperLinkPopupService.endEditing(`zen_mode`))})),this.disposeWithMe(this._univerInstanceService.focused$.pipe(sc(e=>{let t=e===rf?this._renderManagerService.getRenderById(e):null;return t?t.with(XI).hoverCustomRanges$.pipe(Ks(200)):new Ya(e=>{e.next(null)})})).subscribe(e=>{let t=e?.find(e=>e.range.rangeType===Lp.HYPERLINK),n=this._editorBridgeService.getEditCellState();if(t&&n){let{unitId:e,sheetId:r,row:i,column:a}=n,{editPermission:o,viewPermission:s,copyPermission:c}=this._getLinkPermission({unitId:e,subUnitId:r,row:i,col:a});s&&this._sheetsHyperLinkPopupService.showPopup({type:`zen_mode`,unitId:e,subUnitId:r,row:i,col:a,customRange:t.range,editPermission:o,copyPermission:c})}else this._sheetsHyperLinkPopupService.hideCurrentPopup(`zen_mode`)}))}_initTextSelectionListener(){this.disposeWithMe(this._textSelectionManagerService.textSelection$.subscribe(e=>{e&&e.unitId===tf&&this._sheetsHyperLinkPopupService.endEditing(`editing`)}))}_initCommandListener(){let e=[XJ.id,JK.id,YK.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{e.includes(t.id)&&this._sheetsHyperLinkPopupService.hideCurrentPopup()}))}};G9=A9([k9(0,j(e0)),k9(1,j(I9)),k9(2,j(zE)),k9(3,j(ex)),k9(4,j(QX)),k9(5,R),k9(6,d1),k9(7,j(YE)),k9(8,z),k9(9,BM)],G9);var dFt=class extends P{constructor(e,t){super(),this._context=e,this._hyperLinkModel=t,this._initSkeletonChange()}_initSkeletonChange(){let e=()=>{var e;(e=this._context.mainComponent)==null||e.makeForceDirty()};this.disposeWithMe(this._hyperLinkModel.linkUpdate$.pipe(Ks(16)).subscribe(()=>{e()}))}};dFt=A9([k9(1,j(S7))],dFt);var fFt={[fM.MEDIA]:{[R9.id]:{order:1,menuItemFactory:oFt},[V9(R9.id)]:{order:1,menuItemFactory:sFt}},[mM.MAIN_AREA]:{[hM.OTHERS]:{order:1,[R9.id]:{order:0,menuItemFactory:iFt},[V9(R9.id)]:{order:0,menuItemFactory:aFt}}}},K9=class extends P{constructor(e,t,n,r,i){super(),this._componentManager=e,this._commandService=t,this._menuManagerService=n,this._injector=r,this._shortcutService=i,this._initComponents(),this._initCommands(),this._initMenus(),this._initShortCut()}_initComponents(){[[F9.componentKey,F9],[P9.componentKey,P9],[`LinkIcon`,DD]].forEach(([e,t])=>{this._componentManager.register(e,t)})}_initCommands(){[$Pt,L9,eFt,R9].forEach(e=>{this._commandService.registerCommand(e)})}_initMenus(){this._menuManagerService.mergeMenu(fFt)}_initShortCut(){this._shortcutService.registerShortcut(cFt)}};K9=A9([k9(0,j(Mj)),k9(1,R),k9(2,gM),k9(3,j(We)),k9(4,j(sM))],K9);var q9=class extends P{constructor(e,t){super(),this._parserService=e,this._resolverService=t,this._handleInitUrl()}_handleInitUrl(){let e=location.hash;if(e){let t=this._parserService.parseHyperLink(e);this._resolverService.navigate(t)}}};q9=A9([k9(0,j(P7)),k9(1,j(j9))],q9);var J9=class extends ax{constructor(e=zPt,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{menu:r,...i}=Qi({},zPt,this._config);r&&this._configService.setConfig(`menu`,r,{merge:!0}),this._configService.setConfig(RPt,i)}onStarting(){[[j9],[I9],[UPt],[G9],[K9],[U9],[z9],[W9],[q9]].forEach(e=>this._injector.add(e))}onReady(){this._injector.get(zE).registerRenderModule(M.UNIVER_SHEET,[dFt]),this._injector.get(U9),this._injector.get(z9),this._injector.get(K9)}onRendered(){this._injector.get(W9),this._injector.get(q9),this._injector.get(G9)}};N9(J9,`pluginName`,tFt),N9(J9,`packageName`,lFt),N9(J9,`version`,uFt),N9(J9,`type`,M.UNIVER_SHEET),J9=A9([sx(F7,CL),k9(1,j(We)),k9(2,Mm)],J9);var pFt={"sheets-hyper-link-ui":{form:{editTitle:`编辑链接`,addTitle:`插入链接`,label:`文本`,labelPlaceholder:`输入文本`,type:`类型`,link:`链接`,linkPlaceholder:`输入链接地址`,range:`单元格`,worksheet:`工作表`,definedName:`定义的名称`,ok:`确认`,cancel:`取消`,inputError:`请输入`,selectError:`请选择`,linkError:`请输入合法的链接`},menu:{add:`添加链接`},message:{noSheet:`该子表已被删除`,refError:`错误的引用`,hiddenSheet:`无法打开被隐藏的子表`,coped:`链接已被复制到剪贴板`},popup:{copy:`复制`,edit:`编辑`,cancel:`取消链接`}}},mFt={pdf:[`📕`,`application/pdf`],doc:[`📘`,`application/msword`],docx:[`📘`,`application/vnd.openxmlformats-officedocument.wordprocessingml.document`],xls:[`📗`,`application/vnd.ms-excel`],xlsx:[`📗`,`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`],zip:[`📦`,`application/zip`],rar:[`📦`,`application/vnd.rar`],"7z":[`📦`,`application/x-7z-compressed`],png:[`🖼️`,`image/png`],jpg:[`🖼️`,`image/jpeg`],jpeg:[`🖼️`,`image/jpeg`],gif:[`🖼️`,`image/gif`],webp:[`🖼️`,`image/webp`],bmp:[`🖼️`,`image/bmp`],mp4:[`🎬`,`video/mp4`],mov:[`🎬`,`video/quicktime`],webm:[`🎬`,`video/webm`],avi:[`🎬`,`video/x-msvideo`],mkv:[`🎬`,`video/x-matroska`],mp3:[`🎵`,`audio/mpeg`],wav:[`🎵`,`audio/wav`],m4a:[`🎵`,`audio/mp4`],aac:[`🎵`,`audio/aac`]},hFt=31457280,gFt=Object.keys(mFt).map(e=>`.${e}`).join(`,`);function Y9(e){let t=String(e||``).split(`.`).pop().toLowerCase();return Object.hasOwn(mFt,t)?mFt[t]:null}function _Ft(e){return`${Y9(e)?.[0]||`📎`} ${String(e).replace(/[\u0000-\u001f\u007f]/g,` `)}`}function X9(e){if(typeof e!=`string`||!e.trim()||/[\s\\]/.test(e)||!/^https?:\/\//i.test(e)&&!/^\/(?!\/)/.test(e))return!1;try{let t=new URL(e,`https://attachment.invalid`);return[`http:`,`https:`].includes(t.protocol)&&!t.username&&!t.password}catch{return!1}}function vFt(e){return!e||!Number.isFinite(e.size)||e.size<=0?`请选择非空文件`:e.size>hFt?`附件不能超过 30MB`:!e.name?.includes(`.`)||!Y9(e.name)?`不支持此文件格式`:``}async function yFt(e,t){let n=vFt(e);if(n)throw Error(n);if(typeof t!=`function`)throw Error(`请先配置附件上传服务`);let r=await t(e),i=typeof r==`string`?r:r?.url;if(!X9(i))throw Error(`上传未返回有效的持久化地址`);return{version:1,url:i,name:e.name,size:e.size,mimeType:Y9(e.name)[1]}}function bFt(e,t){return{v:_Ft(e.name),t:1,p:null,f:null,si:null,s:{cl:{rgb:`#3370ff`},ul:{s:1}},custom:{...t?.custom,hxyAttachment:{...e}}}}function xFt(e){let t=e?.custom?.hxyAttachment;return t?.version!==1||!X9(t.url)||!Y9(t.name)||e.f||e.p||e.v!==_Ft(t.name)?null:t}function SFt(e,t){let n=Y9(e.name)?.[1]||``;return n===`application/pdf`?t.navigator?.pdfViewerEnabled!==!1:n.startsWith(`image/`)?!0:n.startsWith(`video/`)||n.startsWith(`audio/`)?!!t.document.createElement(n.split(`/`)[0]).canPlayType(n):!1}async function CFt(e,t={},n=!1,r=globalThis){if(!X9(e?.url))throw Error(`附件地址无效`);if(!n&&typeof t?.previewAttachment==`function`)try{if(t.previewAttachment({...e})===!0)return}catch{}let i=null,a=``,o=r.defer||((e,t)=>setTimeout(e,t));try{!n&&SFt(e,r)&&(i=r.window.open(`about:blank`,`_blank`),i&&(i.opener=null));let o=typeof t?.resolveAttachment==`function`?await t.resolveAttachment(e.url):e.url;if(!X9(o))throw Error(`无法取得附件访问地址`);let s=await r.fetch(o);if(!s.ok)throw Error(`附件加载失败(HTTP ${s.status})`);let c=s.headers.get(`content-type`)||``;if(/html|svg|javascript|json/i.test(c))throw Error(`附件返回了非预期内容`);let l=await s.blob();if(l.size>hFt)throw Error(`附件不能超过 30MB`);let u=new r.Blob([l],{type:Y9(e.name)?.[1]||`application/octet-stream`});if(a=r.URL.createObjectURL(u),i&&!i.closed)i.location.replace(a);else{let t=r.document.createElement(`a`);t.href=a,t.download=e.name||`附件`,t.style.display=`none`,r.document.body.appendChild(t);try{t.click()}finally{t.remove()}}}catch(e){throw i?.close(),e}finally{a&&o(()=>r.URL.revokeObjectURL(a),i?3e5:1e3)}}var wFt={class:`sheet-shell`},TFt={key:0,class:`sheet-attachments`},EFt=[`disabled`],DFt=[`accept`],OFt=[`title`],kFt=[`disabled`],AFt=[`disabled`],jFt={key:2,role:`alert`,class:`attachment-error`},MFt={key:1,role:`status`,class:`sheet-attachments`},NFt={class:`sheet-canvas`},PFt={class:`sheet-statusbar`},FFt={class:`status-cell`},IFt={key:1,class:`status-hint`},LFt={key:2,class:`status-readonly`},RFt={key:3,class:`status-tip`},zFt=`univer-sheet://`,BFt=2,Z9=`workers/univer-sheet.worker.js`,VFt=$st({__name:`SheetEditor`,props:{visible:{type:Boolean,default:!0},type:{type:String,default:`edit`,validator:e=>[`view`,`edit`].includes(e)},server:{type:Object,default:null},collaboration:{type:Object,default:null},workerUrl:{type:String,default:``}},emits:[`workbook-activated`],setup(e,{expose:n,emit:r}){let i=e,a=(0,t.ref)(!!i.server?.cloudSync),o=(0,t.ref)(``),s=(0,t.computed)(()=>i.type===`view`||a.value);function c(e,t){a.value=e,o.value=t,Ae()}async function l(){try{await ne.restore({force:!0})}catch{}}let u=r,d=(0,t.ref)(null),f=(0,t.shallowRef)(null),p=(0,t.ref)(null),m=(0,t.ref)(!1),h=(0,t.ref)(!1),g=(0,t.ref)(``),_=(0,t.shallowRef)(null),v=null,y=null,b=null,x=0;function S(){let e=f.value,t=e?.getActiveWorkbook?.(),n=t?.getActiveSheet?.(),r=t?.getActiveRange?.(),i=n?.getSelection()?.getActiveRangeList();return!r||r.getWidth()!==1||r.getHeight()!==1||i?.length>1?null:{api:e,unitId:t.getId(),subUnitId:n.getSheetId(),model:n.getWorkbook(),permission:n.getWorksheetPermission(),range:r,version:se,cell:JSON.parse(JSON.stringify(r.getCellData()||{}))}}function C(){_.value=xFt(S()?.cell)}function w(e){g.value=e,clearTimeout(b),b=setTimeout(()=>{g.value=``},5e3)}function T(){if(!(s.value||m.value)){if(v=S(),!v)return w(`请先选中一个单元格`);p.value?.click()}}async function E(e){let t=e.target.files?.[0];e.target.value=``;let n=v;v=null,t&&await D(t,n)}async function D(e,t=S()){if(s.value||m.value||!f.value)return;if(!t)return w(`请先选中一个单元格`);let n=vFt(e);if(n)return w(n);if(!t.permission.canEditCell(t.range.getRow(),t.range.getColumn()))return w(`此单元格不可编辑`);let r=t.cell;if(!((r.v!=null&&r.v!==``||r.p||r.f||r.custom?.hxyAttachment)&&!window.confirm(`此单元格已有内容,是否替换为附件?`))){m.value=!0;try{let n=await yFt(e,i.server?.attachmentUpload),a=f.value;if(!a)return;let o=a.getActiveWorkbook();if(s.value||a!==t.api||se!==t.version||o?.getId()!==t.unitId||o.getActiveSheet()?.getWorkbook()!==t.model||o.getActiveSheet()?.getSheetId()!==t.subUnitId||!t.permission.canEditCell(t.range.getRow(),t.range.getColumn()))throw Error(`工作表已变更或切为只读,请重新插入附件`);if(!await a.executeCommand(`sheet.command.set-range-values`,{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range.getRange(),value:bFt(n,r)}))throw Error(`附件写入失败,请重试`);C()}catch(e){f.value&&w(e.message||`附件上传失败`)}finally{m.value=!1}}}function O(e){let t=S();if(!t||e.worksheet?.getSheetId()!==t.subUnitId||e.row!==t.range.getRow()||e.column!==t.range.getColumn())return;let n=xFt(t.cell);if(!n)return;_.value=n;let r=Date.now();r-x<500||(x=r,k())}async function k(e=!1){let t=_.value;if(t&&!h.value){h.value=!0;try{await CFt(t,i.server,e)}catch(e){f.value&&w(e.message||`附件打开失败,可重试或下载`)}finally{h.value=!1}}}function A(e){he(e),C()}let ee=null,te=(0,t.shallowRef)(null),ne=i.server?.cloudSync?hG({editorRef:te,docKey:i.server.docKey||`excel:default`,docType:`excel`,cloudSync:i.server.cloudSync,snapshotInterval:i.server.snapshotInterval,mutationFlushSize:i.server.mutationFlushSize,enableIncremental:i.server.enableIncremental}):null,re=new Set,ie=null,ae=null,oe=null,se=0,ce=-1,le=null,ue=null,de=[];function fe(e){return de.push(e),()=>{let t=de.indexOf(e);t>=0&&de.splice(t,1)}}let pe=(0,t.reactive)({notation:``,cells:0,numericCount:0,sum:null,average:null});function me(){clearTimeout(ae),ae=null,pe.notation=``,pe.cells=0,pe.numericCount=0,pe.sum=null,pe.average=null}function he(e){clearTimeout(ae),ae=setTimeout(()=>{try{let{worksheet:t,selections:n}=e||{};if(!t||!n?.length){me();return}let r=l_.mergeRanges(n.map(e=>({...e}))),i=r.reduce((e,t)=>e+(t.endRow-t.startRow+1)*(t.endColumn-t.startColumn+1),0);if(pe.cells=i,pe.notation=n.map(e=>t.getRange(e).getA1Notation()).join(`, `),i>2e4){pe.numericCount=0,pe.sum=null,pe.average=null;return}let a=0,o=0;for(let e of r){let n=t.getRange(e).getCellDatas()||[];for(let e of n)for(let t of e){let e=t?.v;typeof e==`number`&&Number.isFinite(e)&&(t.t==null||t.t===Np.NUMBER)&&(a++,o+=e)}}pe.numericCount=a,pe.sum=a?o:null,pe.average=a?o/a:null}catch{me()}},150)}async function ge(e){try{let t=new AbortController,n=setTimeout(()=>t.abort(),2500),r=await fetch(e,{method:`HEAD`,signal:t.signal});return clearTimeout(n),r.ok?!(r.headers.get(`content-type`)||``).includes(`text/html`):!1}catch{return!1}}async function _e(){let e=[];i.workerUrl&&e.push(i.workerUrl);try{let t={}.url;t&&t!==`undefined://`&&e.push(new URL(`./`+Z9,t).href)}catch{}e.push(`/node_modules/hxy-editor/dist/`+Z9);try{let t=document.currentScript;t?.src&&e.push(new URL(Z9,t.src).href)}catch{}e.push(`https://unpkg.com/hxy-editor/dist/${Z9}`);let t=(await Promise.all(e.map(async e=>({url:e,ok:await ge(e)})))).find(e=>e.ok);if(t)try{return new Worker(t.url,{type:`module`})}catch{}return console.warn(`[pd-editor] Worker 加载失败,公式计算将回退到主线程`),null}let ve=!1;async function ye(){if(!(!d.value||f.value||ve)){ve=!0;try{oe=await _e();let{univer:e,univerAPI:t}=sS({locale:yp.ZH_CN,locales:{[yp.ZH_CN]:Ig([cOt,Fkt,PAt,qjt,hNt,kNt,pFt])},presets:[GDt({container:d.value,...oe?{workerURL:oe}:{}}),Pkt(),NAt(),Kjt(),mNt(),{plugins:[F7,J9]}]});be=e,f.value=t,ue=t.addEvent(t.Event.BeforeCommandExecute,e=>{s.value&&e.id===o8.id&&(e.cancel=!0),!e.cancel&&i.collaboration?.onBeforeCommand&&(i.collaboration.onBeforeCommand(e.id,e.params)||(e.cancel=!0))}),ie=t.addEvent(t.Event.SelectionChanged,A),y=t.addEvent(t.Event.CellClicked,O),le=t.addEvent(t.Event.CommandExecuted,Te),Ce(`default`),ee||=gG({univer:e,server:i.server}),ne&&!te.value&&(te.value={getData:Ee,setData:ke,getVersion:De,isDirty:Oe,setRestoreState:c,canPersist:()=>i.type!==`view`,ready:()=>!!f.value,getUniverInstance:()=>be,getUniverAPI:()=>f.value,onMutation:fe}),d.value?.addEventListener(`click`,xe)}finally{ve=!1}}}let be=null,j=0;function xe(e){e.target?.tagName===`CANVAS`&&Se()}function Se(){try{let e=f.value?.getActiveWorkbook?.();if(!e)return;let t=e?.getActiveRange?.();if(!t||t.getWidth()!==1||t.getHeight()!==1)return;let n=(e.getActiveSheet().getRange(t.getRow(),t.getColumn()).getCellData()?.p?.body?.customRanges?.find(e=>e.rangeType===0))?.properties?.url;if(!n)return;let r=Date.now();if(r-j<500)return;if(j=r,n.startsWith(zFt)){we(n.slice(15));return}let i=be?.__getInjector?.(),a=i?.get(P7),o=i?.get(j9),s=a?.parseHyperLink(n);s&&o?.navigate(s)}catch{}}function Ce(e){if(re.has(e))return;let t=f.value;t&&(t.createWorkbook({id:e,name:e}),re.add(e),Ae())}function we(e){f.value&&(Ce(e),f.value.setCurrent(e),me(),u(`workbook-activated`,e))}function Te(e){if(e?.type===BFt){if(!e.options?.fromChangeset&&!e.options?.fromCollab)for(let t of de)try{t({id:e.id,params:e.params,type:e.type,timestamp:Date.now()})}catch{}try{let e=f.value?.getActiveWorkbook?.()?.getActiveSheet?.();he({worksheet:e,selections:e?.getSelection()?.getActiveRangeList().map(e=>e.getRange())||[]})}catch{me()}}e?.id?.includes(`.operation.`)||(se++,C())}function Ee(){let e=f.value;if(!e||!re.size)return null;let t=[];for(let n of re)try{let r=e.getUniverSheet?.(n)?.save?.();r?.sheets&&t.push(JSON.parse(JSON.stringify(r)))}catch{return null}return t.length===re.size?(ce=se,{type:`univer-sheets`,workbooks:t,activeWorkbookId:e.getActiveWorkbook?.()?.getId?.()||t[0].id,version:se,savedAt:Date.now()}):null}function De(){return se}function Oe(){return se!==ce}function ke(e){let t=e?.workbooks?.filter?.(e=>e?.id&&e?.sheets);if(!t?.length)return!1;let n=f.value;if(!n)return!1;for(let e of[...re])try{n.disposeUnit?.(e)}catch{}re.clear(),me(),_.value=null;for(let e of t)try{n.createWorkbook(JSON.parse(JSON.stringify(e))),re.add(e.id)}catch{}if(re.size!==t.length)return Ae(),!1;let r=e?.activeWorkbookId;if(r&&re.has(r)){try{n.setCurrent?.(r)}catch{}u(`workbook-activated`,r)}return se++,Ae(),!0}function Ae(){let e=f.value;if(e)for(let t of re)try{e.getUniverSheet?.(t)?.setEditable?.(!s.value)}catch{}}return(0,t.watch)(()=>i.visible,e=>{e&&setTimeout(ye,100)},{immediate:!0}),(0,t.watch)(()=>i.type,()=>{f.value&&Ae()}),(0,t.onUnmounted)(()=>{clearTimeout(ae),clearTimeout(b),y?.dispose?.(),ie?.dispose?.(),ie=null,le?.dispose?.(),le=null,ue?.dispose?.(),ue=null,ee?.dispose?.(),ee=null,d.value?.removeEventListener(`click`,xe),f.value?.dispose?.(),f.value=null,oe?.terminate(),oe=null}),n({navigateTo:we,getData:Ee,setData:ke,getVersion:De,isDirty:Oe,insertAttachment:D,ready:()=>!!f.value,getUniverInstance:()=>be,getUniverAPI:()=>f.value,onMutation:fe,replayRemoteMutations:e=>{if(!Array.isArray(e))return;let t=f.value;if(t)for(let n of e)try{t.syncExecuteCommand(n.commandId,n.params??{},{onlyLocal:!0,fromChangeset:!0})}catch{}},persistence:ne}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,wFt,[!s.value&&e.server?.attachmentUpload||_.value||g.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,TFt,[!s.value&&e.server?.attachmentUpload?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,disabled:m.value,onClick:T},(0,t.toDisplayString)(m.value?`附件上传中…`:`📎 单元格上传附件`),9,EFt)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`input`,{ref_key:`attachmentInputRef`,ref:p,type:`file`,hidden:``,accept:(0,t.unref)(gFt),onChange:E},null,40,DFt),_.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createElementVNode)(`span`,{class:`attachment-name`,title:_.value.name},(0,t.toDisplayString)(_.value.name),9,OFt),(0,t.createElementVNode)(`button`,{type:`button`,disabled:h.value,onClick:r[0]||=e=>k()},`打开附件`,8,kFt),(0,t.createElementVNode)(`button`,{type:`button`,disabled:h.value,onClick:r[1]||=e=>k(!0)},`下载`,8,AFt)],64)):(0,t.createCommentVNode)(``,!0),g.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,jFt,(0,t.toDisplayString)(g.value),1)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0),a.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,MFt,[(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(o.value?`恢复失败:${o.value},已暂停编辑和保存`:`正在恢复工作表…`),1),o.value?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,onClick:l},`重试恢复`)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,NFt,[(0,t.createElementVNode)(`div`,{ref_key:`containerRef`,ref:d,class:`sheet-editor`},null,512)]),(0,t.createElementVNode)(`div`,PFt,[pe.cells?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createElementVNode)(`span`,FFt,`选区 `+(0,t.toDisplayString)(pe.notation),1),r[7]||=(0,t.createElementVNode)(`span`,{class:`status-sep`},`·`,-1),(0,t.createElementVNode)(`span`,null,`单元格 `+(0,t.toDisplayString)(pe.cells.toLocaleString()),1),pe.numericCount?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[r[4]||=(0,t.createElementVNode)(`span`,{class:`status-sep`},`·`,-1),(0,t.createElementVNode)(`span`,null,`数值 `+(0,t.toDisplayString)(pe.numericCount.toLocaleString()),1),r[5]||=(0,t.createElementVNode)(`span`,{class:`status-sep`},`·`,-1),(0,t.createElementVNode)(`span`,null,[r[2]||=(0,t.createTextVNode)(`求和 `,-1),(0,t.createElementVNode)(`b`,null,(0,t.toDisplayString)(pe.sum.toLocaleString(void 0,{maximumSignificantDigits:15})),1)]),r[6]||=(0,t.createElementVNode)(`span`,{class:`status-sep`},`·`,-1),(0,t.createElementVNode)(`span`,null,[r[3]||=(0,t.createTextVNode)(`平均 `,-1),(0,t.createElementVNode)(`b`,null,(0,t.toDisplayString)(pe.average.toLocaleString(void 0,{maximumSignificantDigits:15})),1)])],64)):(0,t.createCommentVNode)(``,!0)],64)):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,IFt,`框选单元格查看计数 / 求和 / 平均值`)),r[8]||=(0,t.createElementVNode)(`span`,{class:`status-flex`},null,-1),s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,LFt,`🔒 只读模式 · 仅供查看,不可编辑`)):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,RFt,`支持 =SUM/=IF 等公式自动重算 · 公式栏编辑 · Ctrl+F 查找 · Ctrl+K 插入链接 · 单击链接单元格跳转`))])]))}},[[`__scopeId`,`data-v-6bd51245`]]),HFt=class{adapter;identity;limits;lease=null;renewTimer=null;disposed=!1;acquiring=null;constructor(e,t,n){if(this.adapter=e,this.identity=t,this.limits=n,!e||!t?.epoch||!t?.clientId)throw Error(`租约门禁参数不完整`);if(!n.leaseMs||!n.renewAfterMs||n.renewAfterMs>=n.leaseMs)throw Error(`租约续租间隔无效`)}current(){return this.disposed||!this.lease||this.lease.expiresAt<=Date.now()?null:this.lease}leaseProof(){let e=this.current();return e?{leaseId:e.leaseId,fence:e.fence}:null}async acquire(e,t){if(this.requireOpen(),!e.length)throw Error(`租约目标不能为空`);if(this.acquiring)return this.acquiring.then(e=>e.lease);let n=t??this.limits.defaultReservation;this.acquiring=this.adapter.acquire({...this.identity,requestId:crypto.randomUUID(),baseRevision:0,reservedBytes:n,targets:e}).finally(()=>{this.acquiring=null});let r=await this.acquiring;return this.install(r),r.lease}async renew(){this.requireOpen();let e=this.current();if(!e)throw Error(`没有可续租的租约`);try{let t=await this.adapter.renew({...this.identity,leaseId:e.leaseId,fence:e.fence});return this.install(t),t.lease}catch(e){throw this.lease=null,this.stopRenew(),e}}async release(){if(this.disposed)return;this.stopRenew();let e=this.lease;if(this.lease=null,e)try{await this.adapter.release({...this.identity,leaseId:e.leaseId,fence:e.fence})}catch{}}dispose(){this.disposed||(this.disposed=!0,this.stopRenew(),this.lease=null,this.acquiring=null)}install(e){if(this.disposed)throw Error(`租约门禁已关闭`);if(!e?.lease||e.lease.clientId!==this.identity.clientId)throw Error(`租约授权归属不匹配`);this.lease=e.lease,this.scheduleRenew()}scheduleRenew(){if(this.stopRenew(),this.disposed||!this.lease)return;let e=Math.max(1e3,this.limits.renewAfterMs);this.renewTimer=setTimeout(()=>{this.renew().catch(()=>{this.lease=null,this.stopRenew()})},e)}stopRenew(){this.renewTimer&&=(clearTimeout(this.renewTimer),null)}requireOpen(){if(this.disposed)throw Error(`租约门禁已关闭`)}},UFt=class extends Error{rejection;constructor(e){super(e.message||`协作提交被拒绝,请校准后重试`),this.rejection=e,this.name=`CollaborationCommitRejected`}},WFt=class{journal;transport;admission;running=null;saveError=null;disposed=!1;constructor(e,t,n){this.journal=e,this.transport=t,this.admission=n}flush(){if(this.disposed)return Promise.reject(Error(`协作会话已关闭`));if(this.running)return this.running;let e=Promise.resolve().then(()=>this.drain()).then(()=>{this.saveError=null},e=>{throw this.saveError=e instanceof Error?e:Error(`协作提交失败,未确认内容已保留`),this.saveError}).finally(()=>{this.running===e&&(this.running=null)});return this.running=e,e}getSaveError(){return this.saveError}dispose(){if(this.disposed)return;this.disposed=!0;let e=this.journal.exportDraft().inFlight;e&&this.journal.markUnknown(e.batchId),this.journal.dispose()}async drain(){for(this.requireOpen();this.journal.hasUnsavedChanges();){this.requireAvailable();let e=this.journal.exportDraft(),t=e.inFlight;if(t?.status===`rejected`)throw Error(`提交已拒绝,请先校准版本与租约`);if(t?.status===`unknown`){let n=await this.transport.status({epoch:e.epoch,clientId:e.clientId,batchId:t.batchId,clientSeq:t.clientSeq});if(this.requireOpen(),!this.journal.resolveStatus(n))throw Error(`协作提交状态与当前批次不匹配`);continue}let n=t?{leases:[],reservedBytes:0}:this.admission();this.requireAvailable();let r=this.journal.begin(n.leases,n.reservedBytes);if(!r)continue;let{batchId:i,clientSeq:a}=r;try{let e=await this.transport.commit(r);if(this.requireOpen(),e.kind===`rejected`)throw e.batchId!==i||e.clientSeq!==a||!this.journal.rejectUncommitted(i,a)?Error(`协作拒绝结果与当前批次不匹配`):new UFt({...e});if(e.kind!==`committed`||!this.journal.acknowledge(e.ack))throw Error(`协作 ACK 与当前批次不匹配`)}catch(e){throw this.journal.markUnknown(i),e}}}requireOpen(){if(this.disposed)throw Error(`协作会话已关闭`)}requireAvailable(){if(this.requireOpen(),!this.transport.isAvailable())throw Error(`协作连接尚未就绪,未确认内容已保留`)}},GFt=1048576,KFt=200,Q9=2**31-1;function $9(e){return JSON.parse(JSON.stringify(e))}function qFt(e){if(!e?.id||!Array.isArray(e.mutations)||!e.mutations.length||!Array.isArray(e.inverse))throw Error(`协作事务不完整`);for(let t of[...e.mutations,...e.inverse])if(!/^[\w-]+\.mutation\.[\w.-]+$/.test(t.commandId)||!t.params||typeof t.params!=`object`||Array.isArray(t.params))throw Error(`协作事务包含无效 Mutation`)}var JFt=class{createBatchId;identity;revision;lastCommittedSeq;pending=[];flight=null;disposed=!1;constructor(e,t,n=0,r=()=>crypto.randomUUID()){if(this.createBatchId=r,!e.epoch||!e.clientId||!Number.isSafeInteger(t)||t<0||t>Q9||!Number.isSafeInteger(n)||n<0)throw Error(`协作会话版本无效`);this.identity={epoch:e.epoch,clientId:e.clientId},this.revision=t,this.lastCommittedSeq=n}get confirmedRevision(){return this.revision}enqueue(e){if(this.requireOpen(),this.flight&&this.flight.status!==`sent`)throw Error(`存在未确认内容,暂不能新增编辑`);let t=$9(e);if(qFt(t),this.transactions().some(e=>e.id===t.id))throw Error(`协作事务重复入队`);this.pending.push(t)}begin(e,t){if(this.requireOpen(),this.flight?.status===`unknown`)throw Error(`提交结果未知,请先查询提交状态`);if(this.flight?.status===`rejected`)throw Error(`提交已拒绝,请先校准版本与租约`);if(this.flight)return $9(this.flight.request);if(!this.pending.length)return null;if(!e.length||e.length>64||e.some(e=>!e.leaseId||!Number.isSafeInteger(e.fence)||e.fence<=0))throw Error(`缺少有效租约证明`);if(!Number.isSafeInteger(t)||t<=0||t>GFt)throw Error(`协作预留容量无效`);if(this.lastCommittedSeq>=2**53-1)throw Error(`协作会话序号已耗尽`);let n={...this.identity,batchId:this.createBatchId(),clientSeq:this.lastCommittedSeq+1,baseRevision:this.revision,leases:$9(e),mutations:[]};if(!n.batchId||n.batchId.length>128)throw Error(`协作批次标识无效`);let r=0;for(let e of this.pending){if(n.mutations.length+e.mutations.length>KFt){if(!r)throw Error(`完整事务的 Mutation 数量超过单批上限,请保留草稿`);break}let i={...n,mutations:[...n.mutations,...e.mutations]};if(new TextEncoder().encode(JSON.stringify(i)).byteLength>t)break;n.mutations=i.mutations,r++}if(!r)throw Error(`完整事务超过租约预留容量,请扩大预留后重试`);if(n.baseRevision+n.mutations.length>Q9)throw Error(`文档版本已耗尽`);return this.flight={request:n,transactions:this.pending.splice(0,r),status:`sent`},$9(n)}acknowledge(e){if(this.disposed||!this.flight)return!1;let t=this.flight.request;if(e.batchId!==t.batchId||e.clientSeq!==t.clientSeq)return!1;if(this.flight.status===`rejected`||e.fromRevision!==t.baseRevision+1||e.toRevision!==t.baseRevision+t.mutations.length||!Number.isSafeInteger(e.stateVersion)||e.stateVersion<=0)throw Error(`协作 ACK 无效`);return this.revision=e.toRevision,this.lastCommittedSeq=e.clientSeq,this.flight=null,!0}markUnknown(e){!this.disposed&&this.flight?.request.batchId===e&&this.flight.status===`sent`&&(this.flight.status=`unknown`)}resolveStatus(e){if(this.requireOpen(),e.kind===`committed`)return this.acknowledge(e.ack);if(e.kind!==`notCommitted`)throw Error(`提交状态缺少完整 ACK,保留未确认草稿`);let t=this.flight;if(!t||e.batchId!==t.request.batchId||e.clientSeq!==t.request.clientSeq)return!1;if(e.lastCommittedSeq!==this.lastCommittedSeq||t.status!==`unknown`)throw Error(`提交状态与本地序号不一致`);return t.status=`sent`,!0}rejectUncommitted(e,t){return this.requireOpen(),!this.flight||this.flight.request.batchId!==e||this.flight.request.clientSeq!==t?!1:(this.flight.status=`rejected`,!0)}rebase(e,t){if(this.requireOpen(),this.flight&&this.flight.status!==`rejected`)throw Error(`存在未确认批次,不能改变基础版本`);if(!Number.isSafeInteger(e)||e<this.revision||e>Q9)throw Error(`协作校准版本无效`);let n=this.transactions(),r=$9(t($9(n)));if(!Array.isArray(r)||r.length!==n.length||r.some((e,t)=>e.id!==n[t].id))throw Error(`变换不能丢弃或重排事务`);r.forEach(qFt),this.pending=r,this.flight=null,this.revision=e}hasUnsavedChanges(){return!!this.flight||this.pending.length>0}exportDraft(){return $9({...this.identity,confirmedRevision:this.revision,inFlight:this.flight?{batchId:this.flight.request.batchId,clientSeq:this.flight.request.clientSeq,status:this.flight.status}:null,transactions:this.transactions()})}dispose(){this.disposed=!0}transactions(){return[...this.flight?.transactions??[],...this.pending]}requireOpen(){if(this.disposed)throw Error(`协作会话已关闭`)}};e.CommitDriver=WFt,e.CommitJournal=JFt,e.EditorPersistenceManager=Gst,e.LeaseGate=HFt,e.PdDoc=Dct,e.PdExcel=VFt,e.createUploadImageIoService=Yst,e.default={install(e){e.component(`pd-doc`,Dct),e.component(`pd-excel`,VFt)}},e.installServerIntegration=gG,e.useEditorPersistence=hG});
683
+ `?(this._commandService.syncExecuteCommand(w1.id,{visible:!1}),this._setCellImage(Object.values(t.drawings)[0])):this._dialogService.open({id:`sheet-cell-image-copy-paste`,title:{label:this._localeService.t(`sheets-drawing-ui.cell-image.pasteTitle`)},children:{label:this._localeService.t(`sheets-drawing-ui.cell-image.pasteContent`)},width:320,destroyOnClose:!0,onClose:e,showOk:!0,showCancel:!0,onOk:()=>{e(),this._setCellImage(Object.values(t.drawings)[0])},onCancel:e})}}}))}};Z5=j5([A5(0,R),A5(1,z),A5(2,oN),A5(3,zE),A5(4,j(Xb))],Z5);var jMt=`image/png`;function MMt(e){let t=e.split(`,`),n=atob(t[1]),r=n.length,i=new Uint8Array(r);for(let e=0;e<r;e++)i[e]=n.charCodeAt(e);return new Blob([i],{type:jMt})}function NMt(e){let t=new ClipboardItem({[jMt]:MMt(e)});navigator.clipboard.write([t]).catch(e=>{console.error(`Could not copy image using clipboard API: `,e)})}function PMt(){function e(){let e=document.createElement(`input`);return e.style.position=`absolute`,e.style.height=`1px`,e.style.width=`1px`,e.style.opacity=`0`,e}let t=document.activeElement,n=e();return document.body.appendChild(n),n.focus(),()=>{n.blur(),document.body.removeChild(n),t instanceof HTMLElement&&t.focus()}}var FMt=[LQ.SPECIAL_PASTE_COL_WIDTH,LQ.SPECIAL_PASTE_VALUE,LQ.SPECIAL_PASTE_FORMAT,LQ.SPECIAL_PASTE_FORMULA],Q5=class extends P{constructor(e,t,n,r,i,a){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._sheetSkeletonService=n,this._drawingService=r,this._clipboardInterfaceService=i,this._commandService=a,k5(this,`_copyInfo`,void 0),this._initCopyPaste()}get _focusedDrawings(){return this._drawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:`SHEET_IMAGE_UI_PLUGIN`,onBeforeCopy:(e,t,n,r)=>{this._copyInfo=null;let i=this._focusedDrawings;if(i.length>0){let[t]=i;if(t.drawingType!==lm.DRAWING_IMAGE)return;if(r===MQ.CUT){let n={unitId:e,drawings:[t]};this._commandService.executeCommand(b5.id,n)}setTimeout(()=>{let e=PMt();t.drawingType===lm.DRAWING_IMAGE&&t.imageSourceType===nb.BASE64?NMt(t.source):this._clipboardInterfaceService.writeText(``),e()},200);let n={unitId:t.unitId,subUnitId:t.subUnitId,drawings:[t]};this._copyInfo=n}else{let r=this._createDrawingsCopyInfoByRange(e,t,n);this._copyInfo=r}},onPasteCells:(e,t,n,r)=>{if(!this._copyInfo)return{redos:[],undos:[]};let{copyType:i=MQ.COPY,pasteType:a}=r,{range:o,unitId:s,subUnitId:c}=e||{},{range:l,unitId:u,subUnitId:d}=t;return this._copyInfo.copyRange?this._generateRangeDrawingsPasteMutations({unitId:u,subUnitId:d,pasteRange:l,pasteType:a},{unitId:s,subUnitId:c,copyType:i,copyRange:o}):this._generateSingleDrawingPasteMutations({pasteTo:t,pasteType:a},MQ.COPY)},onPastePlainText:(e,t)=>({undos:[],redos:[]}),onPasteUnrecognized:e=>this._copyInfo?this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:LQ.DEFAULT_PASTE},MQ.COPY):{undos:[],redos:[]},onPasteFiles:(e,t)=>{if(this._copyInfo)return this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:LQ.DEFAULT_PASTE},MQ.COPY);{let e=t.filter(e=>e.type.includes(`image`));if(e.length)return{undos:[],redos:[{id:P5.id,params:{files:e}}]}}return{undos:[],redos:[]}}})}_createDrawingsCopyInfoByRange(e,t,n){let r=this._sheetSkeletonService.getSkeleton(e,t);if(!r)return;let i=gZ(r,n);if(!i)return;let{startX:a,endX:o,startY:s,endY:c}=i,l=this._drawingService.getDrawingData(e,t),u=this._focusedDrawings.slice();if(Object.keys(l).forEach(e=>{let t=l[e];if(t.drawingType!==lm.DRAWING_IMAGE)return;let{transform:n}=t;if(t.anchorType!==m5.Both||!n)return;let{left:r=0,top:i=0,width:d=0,height:f=0}=n,{drawingStartX:p,drawingEndX:m,drawingStartY:h,drawingEndY:g}={drawingStartX:r,drawingEndX:r+d,drawingStartY:i,drawingEndY:i+f};a<=p&&m<=o&&s<=h&&g<=c&&u.push(t)}),u.length)return{copyRange:n,drawings:u,unitId:e,subUnitId:t}}_generateSingleDrawingPasteMutations(e,t){let{pasteType:n,pasteTo:r}=e;if(FMt.includes(n))return{redos:[],undos:[]};let{unitId:i,subUnitId:a,range:o}=r,s=this._sheetSkeletonService.getSkeleton(i,a);if(!s)return{redos:[],undos:[]};let{drawings:c}=this._copyInfo,l=MK(o);return this._generateMutations(c,{unitId:i,subUnitId:a,isCut:t===MQ.CUT,getTransform:(e,t)=>{let n=gZ(s,{startRow:l.startRow,endRow:l.endRow,startColumn:l.startColumn,endColumn:l.endColumn}),r={...e,left:n?.startX,top:n?.startY};return{transform:r,sheetTransform:f5(r,s)??t,axisAlignSheetTransform:p5(r,s)??t}}})}_generateMutations(e,t){let{unitId:n,subUnitId:r,getTransform:i,isCut:a}=t,o=[],s=[],{_drawingService:c}=this;return e.forEach(e=>{let{transform:t,sheetTransform:l}=e;if(!t)return;let u=i(t,l),d={...e,unitId:n,subUnitId:r,drawingId:a?e.drawingId:rp(),transform:u.transform,sheetTransform:u.sheetTransform,axisAlignSheetTransform:u.axisAlignSheetTransform};if(a){let{undo:e,redo:t,objects:i}=c.getBatchUpdateOp([d]);o.push({id:_5.id,params:{unitId:n,subUnitId:r,type:g5.UPDATE,op:t,objects:i}}),s.push({id:_5.id,params:{unitId:n,subUnitId:r,type:g5.UPDATE,op:e,objects:i}})}else{let{undo:e,redo:t,objects:i}=c.getBatchAddOp([d]);o.push({id:_5.id,params:{op:t,unitId:n,subUnitId:r,objects:i,type:g5.INSERT}}),s.push({id:_5.id,params:{op:e,unitId:n,subUnitId:r,objects:i,type:g5.REMOVE}})}}),{redos:o,undos:s}}_generateRangeDrawingsPasteMutations(e,t){if(!this._copyInfo)return{redos:[],undos:[]};let{unitId:n,subUnitId:r,pasteRange:i,pasteType:a}=e,{unitId:o,subUnitId:s,copyRange:c,copyType:l}=t;if(FMt.includes(a))return{redos:[],undos:[]};let u=this._sheetSkeletonService.getSkeleton(n,r);if(!u)return{redos:[],undos:[]};let{drawings:d}=this._copyInfo;if(!c)return this._generateSingleDrawingPasteMutations({pasteTo:{unitId:n,subUnitId:r,range:MK(i)},pasteType:a},l);let f=this._sheetSkeletonService.getSkeleton(o,s);if(!f)return{redos:[],undos:[]};let{ranges:[p,m],mapFunc:h}=lQ([c,i]),{row:g,col:_}=h(p.startRow,p.startColumn),{row:v,col:y}=h(m.startRow,m.startColumn),b=gZ(f,{startRow:g,endRow:g,startColumn:_,endColumn:_}),x=gZ(u,{startRow:v,endRow:v,startColumn:y,endColumn:y});if(!b||!x)return{redos:[],undos:[]};let S=x.startX-b.startX,C=x.startY-b.startY,w=v-g,T=y-_;return this._generateMutations(d,{unitId:n,subUnitId:r,getTransform:(e,t)=>{let n={...e,left:(e?.left??0)+S,top:(e?.top??0)+C};return{transform:n,sheetTransform:{...t,to:{...t.to,row:t.to.row+w,column:t.to.column+T},from:{...t.from,row:t.from.row+w,column:t.from.column+T}},axisAlignSheetTransform:p5(n,u)??t}},isCut:l===MQ.CUT})}};Q5=j5([A5(0,RQ),A5(1,zE),A5(2,j(GK)),A5(3,bN),A5(4,nN),A5(5,R)],Q5);var $5=[Yw.IMAGE,Yw.SHAPE,Yw.CHART,Yw.DRAWING_DOM],e7=class extends P{constructor(e,t,n,r,i,a,o,s){super(),this._commandService=e,this._localeService=t,this._renderManagerService=n,this._permissionService=r,this._univerInstanceService=i,this._userManagerService=a,this._sheetPermissionCheckController=o,this._sheetDrawingService=s,this._initDrawingVisible(),this._initDrawingEditable(),this._initViewPermissionChange(),this._initEditPermissionChange(),this._initCommandPermissionCheck()}_initDrawingVisible(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(M.UNIVER_SHEET),t=this._userManagerService.currentUser$,n=_s([e,t]);this.disposeWithMe(n.pipe(sc(([e,t])=>e?e.activeSheet$.pipe(lc(t=>{if(!t){this._sheetDrawingService.setDrawingVisible(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new uX(n).id,new EX(n,r).id]).every(e=>e.value)?this._sheetDrawingService.setDrawingVisible(!0):this._handleDrawingVisibilityFalse(e,t)})):(this._sheetDrawingService.setDrawingVisible(!1),bo))).subscribe())}_handleDrawingVisibilityFalse(e,t){this._sheetDrawingService.setDrawingVisible(!1);let n=e.getUnitId(),r=t.getSheetId(),i=this._sheetDrawingService.getDrawingData(n,r),a=Object.values(i),o=this._renderManagerService.getRenderById(n)?.scene;o&&o.getAllObjectsByOrder().forEach(e=>{$5.includes(e.objectType)&&a.some(t=>e.oKey.includes(t.drawingId))&&o.removeObject(e)})}_initDrawingEditable(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(M.UNIVER_SHEET),t=this._userManagerService.currentUser$,n=_s([e,t]);this.disposeWithMe(n.pipe(sc(([e,t])=>e?e.activeSheet$.pipe(lc(t=>{if(!t){this._sheetDrawingService.setDrawingEditable(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new rX(n).id,new hX(n,r).id]).every(e=>e.value)?this._sheetDrawingService.setDrawingEditable(!0):this._handleDrawingEditableFalse(e,t)})):(this._sheetDrawingService.setDrawingEditable(!1),bo))).subscribe())}_handleDrawingEditableFalse(e,t){this._sheetDrawingService.setDrawingEditable(!1);let n=e.getUnitId(),r=t.getSheetId(),i=this._sheetDrawingService.getDrawingData(n,r),a=Object.values(i),o=this._renderManagerService.getRenderById(n)?.scene;o&&o.getAllObjectsByOrder().forEach(e=>{$5.includes(e.objectType)&&a.some(t=>e.oKey.includes(t.drawingId))&&o.detachTransformerFrom(e)})}_initViewPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(M.UNIVER_SHEET),t=this._userManagerService.currentUser$;this.disposeWithMe(_s([e,t]).pipe(sc(([e,t])=>e?e.activeSheet$.pipe(sc(t=>{if(!t)return bo;let n=e.getUnitId(),r=t.getSheetId(),i=this._renderManagerService.getRenderById(n)?.scene;if(!i)return bo;let a=i.getTransformerByCreate();return this._permissionService.composePermission$([new uX(n).id,new EX(n,r).id]).pipe(os(e=>e.every(e=>e.value)),Ys()).pipe(os(e=>({permission:e,scene:i,transformer:a,unitId:n,subUnitId:r})))})):bo)).subscribe({next:({permission:e,scene:t,transformer:n,unitId:r,subUnitId:i})=>{this._sheetDrawingService.setDrawingVisible(e);let a=t.getAllObjectsByOrder(),o=this._sheetDrawingService.getDrawingData(r,i),s=Object.values(o);e?this._sheetDrawingService.addNotification(s):(a.forEach(e=>{$5.includes(e.objectType)&&s.some(t=>e.oKey.includes(t.drawingId))&&t.removeObject(e)}),n.clearSelectedObjects())},complete:()=>{this._sheetDrawingService.setDrawingVisible(!0);let e=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET),t=e?.getActiveSheet(),n=e?.getUnitId(),r=t?.getSheetId();if(!n||!r)return;let i=this._sheetDrawingService.getDrawingData(n,r),a=Object.values(i);this._sheetDrawingService.addNotification(a)}}))}_initEditPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(M.UNIVER_SHEET),t=this._userManagerService.currentUser$;this.disposeWithMe(_s([e,t]).pipe(sc(([e,t])=>e?e.activeSheet$.pipe(sc(t=>{if(!t)return bo;let n=e.getUnitId(),r=t.getSheetId(),i=this._renderManagerService.getRenderById(n)?.scene;if(!i)return bo;let a=i.getTransformerByCreate();return this._permissionService.composePermission$([new rX(n).id,new hX(n,r).id]).pipe(os(e=>e.every(e=>e.value)),Ys()).pipe(os(e=>({permission:e,scene:i,transformer:a,unitId:n,subUnitId:r})))})):bo)).subscribe({next:({permission:e,scene:t,transformer:n,unitId:r,subUnitId:i})=>{this._sheetDrawingService.setDrawingEditable(e);let a=t.getAllObjectsByOrder(),o=this._sheetDrawingService.getDrawingData(r,i),s=Object.values(o);e?(a.forEach(e=>{$5.includes(e.objectType)&&s.some(t=>e.oKey.includes(t.drawingId))&&t.attachTransformerTo(e)}),this._sheetDrawingService.addNotification(s)):(a.forEach(e=>{$5.includes(e.objectType)&&s.some(t=>e.oKey.includes(t.drawingId))&&t.detachTransformerFrom(e)}),n.clearSelectedObjects())},complete:()=>{let e=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET);if(!e)return;let t=e.getUnitId(),n=e.getActiveSheet();if(!n)return;let r=n.getSheetId(),i=this._renderManagerService.getRenderById(t)?.scene;if(!i)return;let a=this._sheetDrawingService.getDrawingData(t,r),o=Object.values(a);this._sheetDrawingService.setDrawingEditable(!0),i.getAllObjectsByOrder().forEach(e=>{$5.includes(e.objectType)&&o.some(t=>e.oKey.includes(t.drawingId))&&i.detachTransformerFrom(e)})}}))}_initCommandPermissionCheck(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{let t,n;if(e.id===y5.id||e.id===b5.id||e.id===S5.id){var r,i;let{drawings:a}=e.params;t=a==null||(r=a[0])==null?void 0:r.unitId,n=a==null||(i=a[0])==null?void 0:i.subUnitId}else if(e.id===x5.id){let r=e.params;t=r.unitId,n=r.subUnitId}t&&n&&(this._sheetPermissionCheckController.permissionCheckWithoutRange({workbookTypes:[rX],worksheetTypes:[hX]},t,n)||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localeService.t(`sheets-drawing-ui.permission.dialog.editErr`)))}))}};e7=j5([A5(0,j(R)),A5(1,j(Xb)),A5(2,zE),A5(3,ex),A5(4,z),A5(5,j(Ry)),A5(6,j(QX)),A5(7,j(h5))],e7);var IMt=`univer-sheet-float-dom-`;function LMt(e,t,n,r,i,a=!1){let{scaleX:o,scaleY:s}=t.getAncestorScale(),c=t.getViewport(eT.VIEW_MAIN),{startColumn:l,startRow:u,xSplit:d,ySplit:f}=r.getFreeze(),p={left:!0,top:!0};if(!c)return{...e,absolute:p};let{left:m,right:h,top:g,bottom:_}=e,{top:v,left:y,viewportScrollX:b,viewportScrollY:x}=c,{boundsOfViewArea:S,scrollDirectionResponse:C}=i||{},{rowHeaderWidth:w,columnHeaderHeight:T}=n,E={top:a?0:T,left:a?0:w};S&&(F.isDefine(E.top)&&(E.top=S.top),F.isDefine(E.left)&&(E.left=S.left)),C===`HORIZONTAL`&&(x=0),C===`VERTICAL`&&(b=0);let D=0,O=0,k=n.rowStartY(u-f)+T,A=n.colStartX(l-d)+w,ee=n.rowStartY(u)+T,te=n.colStartX(l)+w;if(d===0)p.left=!1,D=(m-b)*o,O=(h-b)*o;else{let e=m-(A-w),t=h-(A-w);h<te?(D=e*o,O=t*o):m<=te&&h>=te?(D=e*o,O=Math.max(y,(h-b)*o)):m>te&&(p.left=!1,D=Math.max((m-b)*o,y),O=Math.max((h-b)*o,y))}let ne=0,re=0;if(f===0)p.top=!1,ne=(g-x)*s,re=(_-x)*s;else{let e=g-(k-T),t=_-(k-T);_<ee?(ne=e*s,re=t*s):g<=ee&&_>=ee?(ne=e*s,re=Math.max(v,(_-x)*s)):g>ee&&(p.top=!1,ne=Math.max((g-x)*s,v),re=Math.max((_-x)*s,v))}return D=Math.max(D,E.left),ne=Math.max(ne,E.top),O=Math.max(O,E.left),re=Math.max(re,E.top),{left:D,right:O,top:ne,bottom:re,absolute:p}}var t7=(e,t,n,r,i)=>{let{left:a,top:o,width:s,height:c,angle:l}=e,u=LMt({left:a,right:a+s,top:o,bottom:o+c},t,n,r,i),{scaleX:d,scaleY:f}=t.getAncestorScale();return{startX:u.left,endX:u.right,startY:u.top,endY:u.bottom,rotate:l,width:s*d,height:c*f,absolute:u.absolute}},n7=class extends P{constructor(e,t,n,r,i,a,o){super(),this._renderManagerService=e,this._univerInstanceService=t,this._commandService=n,this._drawingManagerService=r,this._canvasFloatDomService=i,this._sheetDrawingService=a,this._lifecycleService=o,k5(this,`_domLayerInfoMap`,new Map),k5(this,`_transformChange$`,new ao),k5(this,`transformChange$`,this._transformChange$.asObservable()),k5(this,`_add$`,new ao),k5(this,`add$`,this._add$.asObservable()),k5(this,`_remove$`,new ao),k5(this,`remove$`,this._remove$.asObservable()),this._drawingAddListener(),this._featureUpdateListener(),this._deleteListener(),this._bindScrollEvent()}_bindScrollEvent(){this._lifecycleService.lifecycle$.pipe(Ls(e=>e===Wb.Rendered),Js(1)).subscribe(()=>{this._scrollUpdateListener()})}getFloatDomInfo(e){return this._domLayerInfoMap.get(e)}getFloatDomsBySubUnitId(e,t){return Array.from(this._domLayerInfoMap.values()).filter(n=>n.subUnitId===t&&n.unitId===e)}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e),n=t?.scene;return t==null||n==null?null:{scene:n,transformer:n.getTransformerByCreate(),renderUnit:t,canvas:t.engine.getCanvasElement()}}_drawingAddListener(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e,i=bG(this._univerInstanceService,{unitId:t,subUnitId:n}),a=this._drawingManagerService.getDrawingByParam(e),o=this._univerInstanceService.getUnit(t,M.UNIVER_SHEET);if(!o)return;let s=o.getActiveSheet().getSheetId();if(!a||!i)return;let c=this._renderManagerService.getRenderById(t)?.with(TQ).getSkeletonParam(n);if(!c)return;let{transform:l,drawingType:u,data:d,hidden:f}=a;if(u!==lm.DRAWING_DOM&&u!==lm.DRAWING_CHART)return;let p=this._getSceneAndTransformerByDrawingSearch(t);if(p==null||f)return;let{scene:m,canvas:h}=p;if(l==null)return!0;if(s!==n)return;let{left:g,top:_,width:v,height:y,angle:b,flipX:x,flipY:S,skewX:C,skewY:w}=l,T=DN({unitId:t,subUnitId:n,drawingId:r}),E=m.getObject(T);if(E!=null){E.transformByState({left:g,top:_,width:v,height:y,angle:b,flipX:x,flipY:S,skewX:C,skewY:w});return}let D={left:g,top:_,width:v,height:y,zIndex:this._drawingManagerService.getDrawingOrder(t,n).length-1},O=u===lm.DRAWING_CHART;D.rotateEnabled=!1,O&&(D.fill=d?d.backgroundColor:`white`,d&&d.border&&(D.stroke=d.border),D.paintFirst=`stroke`,D.strokeWidth=1,D.borderEnabled=!1,D.radius=8);let k=new CE(T,D);O?k.setObjectType(Yw.CHART):u===lm.DRAWING_DOM&&k.setObjectType(Yw.DRAWING_DOM),m.addObject(k,4),a.allowTransform!==!1&&m.attachTransformerTo(k);let A=new Gf,ee=new so(t7(k,p.renderUnit.scene,c.skeleton,i.worksheet)),te=`${IMt}${rp(6)}`,ne={dispose:A,rect:k,position$:ee,unitId:t,subUnitId:n,id:r,domId:te};this._canvasFloatDomService.addFloatDom({position$:ee,id:r,domId:te,componentKey:a.componentKey,onPointerDown:e=>{h.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{h.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{h.dispatchEvent(new PointerEvent(e.type,e))},onWheel:e=>{h.dispatchEvent(new WheelEvent(e.type,e))},data:d,unitId:t});let re=k.onTransformChange$.subscribeEvent(()=>{let e=t7(k,p.renderUnit.scene,c.skeleton,i.worksheet);ee.next(e)});A.add(()=>{this._canvasFloatDomService.removeFloatDom(r)}),re&&A.add(re),this._domLayerInfoMap.set(r,ne)})})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e,i=DN({unitId:t,subUnitId:n,drawingId:r}),a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;let{transformer:o,scene:s}=a,c=s.getObject(i);if(c?.oKey){var l;o.clearControlByIds([c?.oKey]),(l=s.getTransformer())==null||l.clearSelectedObjects()}})}))}_scrollUpdateListener(){let e=(e,t)=>{let n=this._getSceneAndTransformerByDrawingSearch(e),r=Array.from(this._domLayerInfoMap.keys()).map(e=>({id:e,...this._domLayerInfoMap.get(e)})).filter(n=>n.subUnitId===t&&n.unitId===e).map(e=>e.id),i=bG(this._univerInstanceService,{unitId:e,subUnitId:t}),a=this._renderManagerService.getRenderById(e)?.with(TQ).getSkeletonParam(t);n&&i&&a&&r.forEach(e=>{let t=this._domLayerInfoMap.get(e);if(t){let e=t7(t.rect,n.renderUnit.scene,a.skeleton,i.worksheet,t);t.position$.next(e)}})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(M.UNIVER_SHEET).pipe(sc(e=>e?e.activeSheet$:ts(null)),os(e=>{if(!e)return null;let t=e.getUnitId(),n=this._renderManagerService.getRenderById(t);return n?{render:n,unitId:t,subUnitId:e.getSheetId()}:null}),sc(e=>e?Ny(e.render.scene.getViewport(eT.VIEW_MAIN).onScrollAfter$).pipe(os(()=>({unitId:e.unitId,subUnitId:e.subUnitId}))):ts(null))).subscribe(t=>{if(!t)return;let{unitId:n,subUnitId:r}=t;e(n,r)})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===p1.id){let{unitId:n}=t.params;Array.from(this._domLayerInfoMap.values()).filter(e=>e.unitId===n).map(e=>e.subUnitId).forEach(t=>{e(n,t)})}else if(t.id===xY.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}else if(t.id===iq.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}}))}updateFloatDomProps(e,t,n,r){let i=this._domLayerInfoMap.get(n),a=this._getSceneAndTransformerByDrawingSearch(e);if(i&&a){let{scene:i}=a,o=DN({unitId:e,subUnitId:t,drawingId:n}),s=i.getObject(o);s&&s instanceof CE&&s.setProps(r)}}_getPosition(e,t){let{startX:n,endX:r,startY:i,endY:a}=e,o=this._renderManagerService.getRenderById(t)?.with(bQ);if(o==null)return;let s=o.getCellWithCoordByOffset(n,i);if(s==null)return;let c={column:s.actualColumn,columnOffset:n-s.startX,row:s.actualRow,rowOffset:i-s.startY},l=o.getCellWithCoordByOffset(r,a);if(l!=null)return{from:c,to:{column:l.actualColumn,columnOffset:r-l.startX,row:l.actualRow,rowOffset:a-l.startY}}}_featureUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(e=>{e.forEach(e=>{let t=this._drawingManagerService.getDrawingByParam(e);if(!t||t.drawingType!==lm.DRAWING_DOM&&t.drawingType!==lm.DRAWING_CHART)return;let n={...t.transform};this._transformChange$.next({id:e.drawingId,value:n}),this._canvasFloatDomService.updateFloatDom(e.drawingId,{...t});let r=this._getSceneAndTransformerByDrawingSearch(e.unitId);if(r&&t.drawingType!==lm.DRAWING_CHART){let{scene:n}=r,i=this._domLayerInfoMap.get(e.drawingId);i?.rect&&(t.allowTransform===!1?n.detachTransformerFrom(i.rect):n.attachTransformerTo(i.rect))}})}))}_deleteListener(){this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}addFloatDomToPosition(e,t){let n=bG(this._univerInstanceService,{unitId:e.unitId,subUnitId:e.subUnitId});if(!n)throw Error(`cannot find current target!`);let{unitId:r,subUnitId:i}=n,{initPosition:a,componentKey:o,data:s,allowTransform:c=!0}=e,l=t??rp(),u=this._getPosition(a,r);if(u==null)return;let d={unitId:r,subUnitId:i,drawingId:l,drawingType:e.type||lm.DRAWING_DOM,componentKey:o,sheetTransform:u,transform:{left:a.startX,top:a.startY,width:a.endX-a.startX,height:a.endY-a.startY},axisAlignSheetTransform:u,data:s,allowTransform:c};return this._commandService.executeCommand(y5.id,{unitId:r,drawings:[d]}),this._add$.next({unitId:r,subUnitId:i,id:l}),{id:l,dispose:()=>{this._removeDom(l,!0)}}}_removeDom(e,t=!1){let n=this._domLayerInfoMap.get(e);if(!n)return;let{unitId:r,subUnitId:i}=n;this._domLayerInfoMap.delete(e),n.dispose.dispose();let a=this._getSceneAndTransformerByDrawingSearch(r);if(a&&a.scene.removeObject(n.rect),t){let t=this._drawingManagerService.getDrawingByParam({unitId:r,subUnitId:i,drawingId:e});if(!t)return;let{redo:n,objects:a}=this._sheetDrawingService.getBatchRemoveOp([t]);this._commandService.syncExecuteCommand(_5.id,{unitId:r,subUnitId:i,op:n,objects:a,type:g5.REMOVE})}}removeFloatDom(e,t=!0){this._removeDom(e,t)}addFloatDomToRange(e,t,n,r){let i=bG(this._univerInstanceService,{unitId:t.unitId,subUnitId:t.subUnitId});if(!i)throw Error(`cannot find current target!`);let{unitId:a,subUnitId:o}=i,s=this._getSceneAndTransformerByDrawingSearch(a);if(!s)return;let c=this._renderManagerService.getRenderById(a);if(!c)return;let l=this._renderManagerService.getRenderById(a)?.with(TQ).getSkeletonParam(o);if(!l)return;let{componentKey:u,data:d,allowTransform:f=!0}=t,p=r??rp(),{position:m,position$:h}=this._createRangePositionObserver(e,c,l.skeleton),g=this._getPosition(m,a);if(g==null)return;let{scaleX:_}=s.scene.getAncestorScale(),v=i7(m,n,_),y={unitId:a,subUnitId:o,drawingId:p,drawingType:t.type||lm.DRAWING_DOM,componentKey:u,sheetTransform:g,axisAlignSheetTransform:g,transform:{left:v.startX,top:v.startY,width:v.width,height:v.height},data:d,allowTransform:f};{let{unitId:e,subUnitId:r,drawingId:i}=y,a=bG(this._univerInstanceService,{unitId:e,subUnitId:r}),o=y,s=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET);if(!s)return;let c=s.getActiveSheet().getSheetId();if(!o||!a)return;let l=this._renderManagerService.getRenderById(e)?.with(TQ);if(!l)return;let u=l.getSkeletonParam(r);if(!u)return;let{transform:d,drawingType:f,data:g}=o;if(f!==lm.DRAWING_DOM&&f!==lm.DRAWING_CHART)return;let _=this._getSceneAndTransformerByDrawingSearch(e);if(_==null)return;let{scene:v,canvas:b}=_;if(d==null||c!==r)return;let{left:x,top:S,width:C,height:w,angle:T,flipX:E,flipY:D,skewX:O,skewY:k}=d,A=DN({unitId:e,subUnitId:r,drawingId:i}),ee=v.getObject(A);if(ee!=null){ee.transformByState({left:x,top:S,width:C,height:w,angle:T,flipX:E,flipY:D,skewX:O,skewY:k});return}let te={left:x,top:S,width:C,height:w,zIndex:this._drawingManagerService.getDrawingOrder(e,r).length-1},ne=f===lm.DRAWING_CHART;ne&&(te.fill=g?g.backgroundColor:`white`,te.rotateEnabled=!1,g&&g.border&&(te.stroke=g.border),te.paintFirst=`stroke`,te.strokeWidth=1,te.borderEnabled=!1,te.radius=8);let re=new CE(A,te);ne&&re.setObjectType(Yw.CHART),v.addObject(re,4),o.allowTransform!==!1&&v.attachTransformerTo(re);let ie=new Gf,ae=v.getMainViewport(),{rowHeaderWidth:oe,columnHeaderHeight:se}=u.skeleton,ce={dispose:ie,rect:re,boundsOfViewArea:{top:se,left:oe,bottom:ae.bottom,right:ae.right},domAnchor:n,unitId:e,subUnitId:r,id:i},le=new so(t7(re,_.renderUnit.scene,u.skeleton,a.worksheet,ce));ce.position$=le;let ue={position$:le,id:i,componentKey:o.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{b.dispatchEvent(new WheelEvent(e.type,e))},data:g,unitId:e};t.eventPassThrough&&(ue={...ue,onPointerDown:e=>{b.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{b.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{b.dispatchEvent(new PointerEvent(e.type,e))}}),this._canvasFloatDomService.addFloatDom(ue),this.disposeWithMe(h.subscribe(t=>{let o=i7({rotate:0,startX:t.startX,startY:t.startY,endX:t.endX,endY:t.endY,width:n.width??t.width,height:n.height??t.height,absolute:{left:m.absolute.left,top:m.absolute.top}},n),s=t7(new CE(DN({unitId:e,subUnitId:r,drawingId:i}),{left:o.startX,top:o.startY,width:n.width??t.width,height:n.height??t.height,zIndex:this._drawingManagerService.getDrawingOrder(e,r).length-1}),_.renderUnit.scene,u.skeleton,a.worksheet,ce);le.next(s)}));let de=(this._renderManagerService.getRenderById(e)?.with(TQ))?.currentSkeleton$.subscribe(e=>{e&&u.sheetId!==e.sheetId&&this._removeDom(p,!0)});de&&ie.add(de);let fe=re.onTransformChange$.subscribeEvent(()=>{let e=t7(re,_.renderUnit.scene,u.skeleton,a.worksheet,ce);le.next(e)});ie.add(()=>{this._canvasFloatDomService.removeFloatDom(i)}),fe&&ie.add(fe),this._domLayerInfoMap.set(i,ce)}return{id:p,dispose:()=>{this._removeDom(p,!0)}}}addFloatDomToColumnHeader(e,t,n,r){let i=bG(this._univerInstanceService,{unitId:t.unitId,subUnitId:t.subUnitId});if(!i)throw Error(`cannot find current target!`);let{unitId:a,subUnitId:o}=i;if(!this._getSceneAndTransformerByDrawingSearch(a))return;let s=this._renderManagerService.getRenderById(a);if(!s)return;let c=this._renderManagerService.getRenderById(a)?.with(TQ).getSkeletonParam(o);if(!c)return;let{componentKey:l,data:u,allowTransform:d=!0}=t,f=r??rp(),{position:p,position$:m}=this._createRangePositionObserver({startRow:0,endRow:0,startColumn:e,endColumn:e},s,c.skeleton),h=p;h.startY=0;let g=this._getPosition(p,a);if(g==null)return;let _={unitId:a,subUnitId:o,drawingId:f,drawingType:t.type||lm.DRAWING_DOM,componentKey:l,sheetTransform:g,axisAlignSheetTransform:g,transform:{left:h.startX,top:h.startY,width:h.width,height:h.height},data:u,allowTransform:d};{let{unitId:e,subUnitId:r,drawingId:i}=_,a=bG(this._univerInstanceService,{unitId:e,subUnitId:r}),o=_,s=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET);if(!s)return;let l=s.getActiveSheet().getSheetId();if(!o||!a)return;let u=this._renderManagerService.getRenderById(e)?.with(TQ);if(!u)return;let d=u.getSkeletonParam(r);if(!d)return;let{transform:g,data:v}=o,y=this._getSceneAndTransformerByDrawingSearch(e);if(y==null)return;let{scene:b,canvas:x}=y;if(g==null||l!==r)return;let{left:S,top:C,width:w,height:T,angle:E,flipX:D,flipY:O,skewX:k,skewY:A}=g,ee=DN({unitId:e,subUnitId:r,drawingId:i}),te=b.getObject(ee);if(te!=null){te.transformByState({left:S,top:C,width:w,height:T,angle:E,flipX:D,flipY:O,skewX:k,skewY:A});return}let ne=i7({rotate:0,startX:h.startX,startY:0,endX:p.endX,endY:p.endY,width:n.width,height:n.height,absolute:{left:p.absolute.left,top:p.absolute.top}},n),re=new CE(ee,{left:ne.startX,top:ne.startY,width:ne.width,height:ne.height,zIndex:this._drawingManagerService.getDrawingOrder(e,r).length-1});b.addObject(re,4),o.allowTransform!==!1&&b.attachTransformerTo(re);let ie=new Gf,ae=b.getMainViewport(),oe={dispose:ie,rect:re,unitId:e,subUnitId:r,id:i,boundsOfViewArea:{top:0,left:ae.left,bottom:ae.bottom,right:ae.right},domAnchor:n,scrollDirectionResponse:`HORIZONTAL`},se=new so(t7(re,y.renderUnit.scene,d.skeleton,a.worksheet,oe));oe.position$=se;let ce={position$:se,id:i,componentKey:o.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{x.dispatchEvent(new WheelEvent(e.type,e))},data:v,unitId:e};t.eventPassThrough&&(ce={...ce,onPointerDown:e=>{x.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{x.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{x.dispatchEvent(new PointerEvent(e.type,e))}}),this._canvasFloatDomService.addFloatDom(ce);let le=re.onTransformChange$.subscribeEvent(()=>{let e=t7(re,y.renderUnit.scene,d.skeleton,a.worksheet,oe);se.next(e)});this.disposeWithMe(m.subscribe(t=>{let o=i7({rotate:0,startX:t.startX,startY:0,endX:t.endX,endY:t.endY,width:n.width,height:n.height,absolute:{left:p.absolute.left,top:p.absolute.top}},n),s=t7(new CE(DN({unitId:e,subUnitId:r,drawingId:i}),{left:o.startX,top:0,width:n.width,height:n.height,zIndex:this._drawingManagerService.getDrawingOrder(e,r).length-1}),y.renderUnit.scene,d.skeleton,a.worksheet,oe);se.next(s)})),(this._renderManagerService.getRenderById(e)?.with(TQ))?.currentSkeleton$.subscribe(e=>{e&&c.sheetId!==e.sheetId&&this._removeDom(f,!0)}),ie.add(()=>{this._canvasFloatDomService.removeFloatDom(i)}),le&&ie.add(le),this._domLayerInfoMap.set(i,oe)}return{id:f,dispose:()=>{this._removeDom(f,!0)}}}_createRangePositionObserver(e,t,n){let{startRow:r,startColumn:i}=e,a=r7(r,i,n),o=new so(a),s=r7(e.endRow,e.endColumn,n),c=new so(s),l=()=>{let t=r7(r,i,n),a=r7(e.endRow,e.endColumn,n);o.next(t),c.next(a)},u=new Gf;return u.add(t.engine.clientRect$.subscribe(()=>l())),u.add(this._commandService.onCommandExecuted(e=>{if(e.id===bK.id&&e.params.rowsAutoHeightInfo.findIndex(e=>e.row===r)>-1){l();return}(CK.indexOf(e.id)>-1||e.id===i1.id||e.id===p1.id)&&l()})),{position$:o.pipe(os(t=>{let r=r7(e.endRow,e.endColumn,n);return{rotate:0,width:r.right-t.left,height:r.bottom-t.top,absolute:{left:!0,top:!0},startX:t.left,startY:t.top,endX:r.right,endY:r.bottom}})),position:{rotate:0,width:s.right-a.left,height:s.bottom-a.top,absolute:{left:!0,top:!0},startX:a.left,startY:a.top,endX:s.right,endY:s.bottom},updateRowCol:(e,t)=>{r=e,i=t,l()},topLeftPos$:o,rightBottomPos$:c,disposable:u}}};n7=j5([A5(0,j(zE)),A5(1,z),A5(2,j(R)),A5(3,bN),A5(4,j(SM)),A5(5,h5),A5(6,j(qb))],n7);function r7(e,t,n){let r=n.getCellWithCoordByIndex(e,t),i=r.isMergedMainCell?r.mergeInfo:r;return{left:i.startX,right:i.endX,top:i.startY,bottom:i.endY}}function i7(e,t,n){n??=1;let r=e.endX-e.startX,i=e.endY-e.startY,a=t?.width??r,o=t?.height??i,s=0,c=0;if(t){if(t.horizonOffsetAlign===`right`){let i=a7(t.marginX,r*n);s=e.endX-i-a}else s=e.startX+a7(t.marginX,r);if(t.verticalOffsetAlign===`bottom`){let r=a7(t.marginY,i*n);c=e.endY-r-o}else c=e.startY+a7(t.marginY,i)}return{rotate:0,startX:s,startY:c,endX:e.endX,endY:e.endY,width:a,height:o,absolute:{left:e.absolute.left,top:e.absolute.top}}}function a7(e,t){return e===void 0?0:typeof e==`number`?e:t*Number.parseFloat(e)/100}var RMt=e=>{let{floatDomInfos:t,scene:n,skeleton:r,worksheet:i}=e;return(0,H.jsx)(`div`,{style:{position:`absolute`,top:0,left:0},children:(0,V.useMemo)(()=>t.map(e=>{let{width:t,height:a,angle:o,left:s,top:c}=e.transform,l=LMt({left:s??0,right:(s??0)+(t??0),top:c??0,bottom:(c??0)+(a??0)},n,r,i,void 0,!0),{scaleX:u,scaleY:d}=n.getAncestorScale(),f={startX:l.left,endX:l.right,startY:l.top,endY:l.bottom,rotate:o,width:t*u,height:a*d,absolute:l.absolute},p={position$:new so(f),position:f,id:e.drawingId,componentKey:e.componentKey,onPointerMove:()=>{},onPointerDown:()=>{},onPointerUp:()=>{},onWheel:()=>{},unitId:e.unitId,data:e.data};return[e.drawingId,p]}),[t,n,r,i]).map(([e,t])=>(0,H.jsx)(cYe,{layer:t,id:e,position:t.position},e))})},o7=class extends P{constructor(e,t,n,r,i,a,o){super(),this._sheetPrintInterceptorService=e,this._drawingRenderService=t,this._drawingManagerService=n,this._renderManagerService=r,this._canvasFloatDomManagerService=i,this._componetManager=a,this._injector=o,this._initPrinting(),this._initPrintingDom()}_initPrinting(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,{handler:(e,t,n)=>{let{unitId:r,scene:i,subUnitId:a}=t,o=this._drawingManagerService.getDrawingDataForUnit(r)?.[a];return o&&o.order.forEach(e=>{let t=o.data[e];t.drawingType!==lm.DRAWING_CHART&&t.drawingType!==lm.DRAWING_DOM&&this._drawingRenderService.renderDrawing(t,i)}),n()}})),this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_RANGE,{handler:(e,t,n)=>{let{unitId:r,subUnitId:i}=t,a=this._renderManagerService.getRenderById(r);if(!a)return n(e);let o=a.with(TQ).getSkeletonParam(i);if(!o)return n(e);let s=this._drawingManagerService.getDrawingDataForUnit(r)?.[t.subUnitId];if(!s)return n(e);let{scaleX:c,scaleY:l}=a.scene,u=e?{...e}:{startColumn:0,endColumn:0,endRow:0,startRow:0},d=s.order.map(e=>s.data[e]);return d.length?(d.forEach(e=>{if(!e.groupId&&e.transform&&F.isDefine(e.transform.left)&&F.isDefine(e.transform.top)&&F.isDefine(e.transform.width)&&F.isDefine(e.transform.height)){let t=o.skeleton.getCellIndexByOffset(e.transform.left,e.transform.top,c,l,{x:0,y:0}),n=o.skeleton.getCellIndexByOffset(e.transform.left+e.transform.width,e.transform.top+e.transform.height,c,l,{x:0,y:0});t.column<u.startColumn&&(u.startColumn=t.column),t.row<u.startRow&&(u.startRow=t.row),u.endRow<n.row&&(u.endRow=n.row),u.endColumn<n.column&&(u.endColumn=n.column)}}),n(u)):n(e)}}))}_initPrintingDom(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(e,t,n)=>{let{unitId:r,subUnitId:i}=t,a=this._drawingManagerService.getDrawingDataForUnit(r)?.[i];if(a){let r=a.order.map(e=>{let t=a.data[e];if(t.drawingType===lm.DRAWING_CHART)return{...t,componentKey:this._componetManager.get(Cm)};if(t.drawingType===lm.DRAWING_DOM){let e=this._sheetPrintInterceptorService.getPrintComponent(t.componentKey);return{...t,componentKey:this._componetManager.get(e||t.componentKey)}}return null}).filter(Boolean);return xj((0,H.jsx)(GD(RMt,this._injector),{floatDomInfos:r,scene:t.scene,skeleton:t.skeleton,worksheet:t.worksheet}),t.root),e?.add(()=>{Sj(t.root)}),n(e)}}}))}};o7=j5([A5(0,j(q2)),A5(1,j(SW)),A5(2,bN),A5(3,zE),A5(4,j(n7)),A5(5,j(Mj)),A5(6,j(We))],o7);var zMt=[fq.id,_q.id,wq.id,Dq.id,cq.id,lq.id,uq.id,dq.id,NX.id,PX.id,IY.id,LY.id,jY.id,kY.id,gY.id,vY.id,Aq.id,kq.id,aq.id],BMt=[lK.id,uK.id,$G.id,QG.id,vK.id,bK.id,yK.id,fK.id],s7=class extends P{constructor(e,t,n,r,i,a,o,s,c){super(),this._context=e,this._commandService=t,this._sheetSkeletonService=n,this._selectionRenderService=r,this._sheetInterceptorService=i,this._selectionManagerService=a,this._sheetDrawingService=o,this._drawingManagerService=s,this._univerInstanceService=c,this._sheetInterceptorListener(),this._commandListener(),this._sheetRefreshListener()}_sheetInterceptorListener(){this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({getMutations:e=>{let{id:t,params:n}=e;if(!zMt.includes(t)||!n)return{redos:[],undos:[]};if(t===fq.id)return this._moveRowInterceptor(n,`insert`);if([Aq.id,kq.id,aq.id].includes(t)){let e;if(t===aq.id){let t=n;if(t.toUnitId&&t.fromUnitId&&t.toUnitId!==t.fromUnitId||t.toSubUnitId&&t.fromSubUnitId&&t.toSubUnitId!==t.fromSubUnitId)return{redos:[],undos:[]};e=bG(this._univerInstanceService,{unitId:t.toUnitId,subUnitId:t.toSubUnitId})}else e=bG(this._univerInstanceService,n);if(!e)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=e,{fromRange:a,toRange:o}=n;return this._moveRangeInterceptor(r,i,a,o)}if(t===_q.id)return this._moveColInterceptor(n,`insert`);if(t===wq.id)return this._moveRowInterceptor(n,`remove`);if(t===Dq.id)return this._moveColInterceptor(n,`remove`);if(t===cq.id){let{range:e}=n;return this._getRangeMoveUndo(e,0)}if(t===lq.id){let{range:e}=n;return this._getRangeMoveUndo(e,1)}if(t===uq.id){let{range:e}=n;return this._getRangeMoveUndo(e,2)}if(t===dq.id){let{range:e}=n;return this._getRangeMoveUndo(e,3)}if(t===jY.id||t===kY.id){let e=n,t=bG(this._univerInstanceService,e);if(!t)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=t,a=e.ranges||this._selectionManagerService.getCurrentSelections()?.map(e=>e.range).filter(e=>e.rangeType===_h.ROW);return!a||a.length===0?{redos:[],undos:[]}:this._getDrawingUndoForRowVisible(r,i,a)}if(t===vY.id||t===gY.id){let e=n,t=bG(this._univerInstanceService,e);if(!t)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=t,a=e.ranges||this._selectionManagerService.getCurrentSelections()?.map(e=>e.range).filter(e=>e.rangeType===_h.COLUMN);return!a||a.length===0?{redos:[],undos:[]}:this._getDrawingUndoForColVisible(r,i,a)}if(t===NX.id||t===IY.id){let e=bG(this._univerInstanceService);if(!e)return{redos:[],undos:[]};let{unitId:r,subUnitId:i,worksheet:a}=e,o=[];return t===NX.id?o.push({startRow:n.anchorRow,endRow:n.anchorRow,startColumn:0,endColumn:a.getColumnCount()-1}):o.push({startRow:0,endRow:a.getRowCount()-1,startColumn:n.anchorCol,endColumn:n.anchorCol}),this._getDrawingUndoForRowAndColSize(r,i,o)}if(t===PX.id||t===LY.id){let e=n,t=bG(this._univerInstanceService,e);if(!t)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=t,a=e.ranges||this._selectionManagerService.getCurrentSelections()?.map(e=>e.range);return!a||a.length===0?{redos:[],undos:[]}:this._getDrawingUndoForRowAndColSize(r,i,a)}return{redos:[],undos:[]}}}))}_getRangeMoveUndo(e,t){let n=bG(this._univerInstanceService);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,a=this._sheetDrawingService.getDrawingData(r,i),o=[],s=[],c=[],l=[];if(Object.keys(a).forEach(n=>{let r=a[n],{updateDrawings:i,deleteDrawings:o}=this._getUpdateOrDeleteDrawings(e,t,r);c.push(...i),l.push(...o)}),c.length===0&&l.length===0)return{redos:[],undos:[]};if(c.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(c);o.push({id:_5.id,params:{unitId:r,subUnitId:i,op:t,objects:n,type:g5.UPDATE}}),s.push({id:_5.id,params:{unitId:r,subUnitId:i,op:e,objects:n,type:g5.UPDATE}})}if(l.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(l),t=e.undo,n=e.redo,a=e.objects;o.push({id:_5.id,params:{unitId:r,subUnitId:i,op:n,objects:a,type:g5.REMOVE}}),s.push({id:_5.id,params:{unitId:r,subUnitId:i,op:t,objects:a,type:g5.INSERT}})}return o.push({id:v5.id,params:[r]}),s.push({id:v5.id,params:[r]}),{redos:o,undos:s}}_getUpdateOrDeleteDrawings(e,t,n){let r=[],i=[],{sheetTransform:a,anchorType:o=m5.Position,transform:s,unitId:c,subUnitId:l,drawingId:u}=n,d=this._sheetSkeletonService.getSkeletonParam(c,l);if(!a||!s||!d)return{updateDrawings:r,deleteDrawings:i};let{from:f,to:p}=a,{row:m,column:h}=f,{row:g,column:_}=p,{startRow:v,endRow:y,startColumn:b,endColumn:x}=e,S=null,C=null,w;if(t===0&&m>=v&&g<=y){if(h>=b&&_<=x)i.push({unitId:c,subUnitId:l,drawingId:u});else{let e=this._shrinkCol(b,x,{sheetSkeletonParam:d,sheetTransform:a,transform:s,anchorType:o});S=e?.newSheetTransform,C=e?.newTransform,w=e?.axisAlignSheetTransform??void 0}}else if(t===1&&h>=b&&_<=x){if(m>=v&&g<=y)i.push({unitId:c,subUnitId:l,drawingId:u});else{let e=this._shrinkRow(v,y,{sheetSkeletonParam:d,sheetTransform:a,transform:s,anchorType:o});S=e?.newSheetTransform,C=e?.newTransform,w=e?.axisAlignSheetTransform??void 0}}else if(t===2){let e=this._expandRow(v,y,{sheetSkeletonParam:d,sheetTransform:a,transform:s,anchorType:o});S=e?.newSheetTransform,C=e?.newTransform,w=e?.axisAlignSheetTransform??void 0}else if(t===3){let e=this._expandCol(b,x,{sheetSkeletonParam:d,sheetTransform:a,transform:s,anchorType:o});S=e?.newSheetTransform,C=e?.newTransform,w=e?.axisAlignSheetTransform??void 0}if(S&&C){let e=d5(S,d);r.push({...n,sheetTransform:S,transform:e,axisAlignSheetTransform:w})}return{updateDrawings:r,deleteDrawings:i}}_remainDrawingSize(e,t,n,r){let i=f5({...e},r);if(i){let a=p5({...e},r);t.push({...n,sheetTransform:i,axisAlignSheetTransform:a})}}_getDrawingUndoForColVisible(e,t,n){let r=this._sheetSkeletonService.getSkeleton(e,t);if(!r)return{redos:[],undos:[]};let i=this._drawingManagerService.getDrawingData(e,t),a=[],o=[];if(Object.keys(i).forEach(e=>{let t=i[e],{sheetTransform:s,transform:c,anchorType:l=m5.Position}=t;if(l===m5.None)this._remainDrawingSize(c,a,t,r);else{let{from:e,to:i}=s,{row:u,column:d}=e,{row:f,column:p}=i;for(let e=0;e<n.length;e++){let{startColumn:i,endColumn:s}=n[e];if(p<i)continue;if(l===m5.Position){let e=null,n=null;if(d>=i&&d<=s){let e=gZ(r,{startColumn:d,endColumn:s,startRow:u,endRow:f});n={...c,left:e.startX}}if(n){e=f5(n,r);let i=p5(n,r);if(e&&n){a.push({...t,sheetTransform:e,transform:n,axisAlignSheetTransform:i});break}}continue}if(d>=i&&p<=s)continue;let m=null,h=null;if(d>=i&&d<=s){let e=gZ(r,{startColumn:d,endColumn:s,startRow:u,endRow:f});h={...c,left:e?.startX||0,width:(c?.width||0)-e.endX+e.startX}}else if(p>=i&&p<=s){let e=gZ(r,{startColumn:i,endColumn:p,startRow:u,endRow:f});h={...c,left:e.startX-(c?.width||0)}}else{let e=gZ(r,{startColumn:i,endColumn:s,startRow:u,endRow:f});if(h={...c,width:(c?.width||0)-e.endX+e.startX},m=f5(h,r),m&&h){let e=p5(h,r);o.push({...t,sheetTransform:m,transform:h,axisAlignSheetTransform:e});break}}if(h&&(m=f5(h,r)),h&&m){let e=p5(h,r);a.push({...t,sheetTransform:m,transform:h,axisAlignSheetTransform:e});break}this._remainDrawingSize(c,a,t,r)}}}),a.length===0&&o.length===0)return{redos:[],undos:[]};let{redos:s,undos:c}=this._createUndoAndRedoMutation(e,t,a),l=[],u=[];if(o.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,o);l.push(...n),u.push(...r)}return{redos:s,undos:c,preRedos:l,preUndos:u}}_createUndoAndRedoMutation(e,t,n){let{undo:r,redo:i,objects:a}=this._sheetDrawingService.getBatchUpdateOp(n);return{redos:[{id:_5.id,params:{unitId:e,subUnitId:t,op:i,objects:a,type:g5.UPDATE}},{id:v5.id,params:[e]}],undos:[{id:_5.id,params:{unitId:e,subUnitId:t,op:r,objects:a,type:g5.UPDATE}},{id:v5.id,params:[e]}]}}_getDrawingUndoForRowVisible(e,t,n){let r=this._sheetSkeletonService.getSkeleton(e,t);if(!r)return{redos:[],undos:[]};let i=this._drawingManagerService.getDrawingData(e,t),a=[],o=[];if(Object.keys(i).forEach(e=>{let t=i[e],{sheetTransform:s,transform:c,anchorType:l=m5.Position}=t;if(l===m5.None)this._remainDrawingSize(c,a,t,r);else{let{from:e,to:i}=s,{row:u,column:d}=e,{row:f,column:p}=i;for(let e=0;e<n.length;e++){let{startRow:i,endRow:s}=n[e];if(f<i)continue;if(l===m5.Position){let e=null,n=null;if(u>=i&&u<=s){let e=gZ(r,{startColumn:d,endColumn:p,startRow:u,endRow:s});n={...c,top:e.startY}}if(n){e=f5(n,r);let i=p5(n,r);if(e&&n){a.push({...t,sheetTransform:e,transform:n,axisAlignSheetTransform:i});break}}continue}if(u>=i&&f<=s)continue;let m=null,h=null;if(u>=i&&u<=s){let e=gZ(r,{startColumn:d,endColumn:p,startRow:u,endRow:s});h={...c,top:e?.startY||0,height:(c?.height||0)-e.endY+e.startY}}else if(f>=i&&f<=s){let e=gZ(r,{startColumn:d,endColumn:p,startRow:i,endRow:f});h={...c,top:e.startY-(c?.height||0)}}else{let e=gZ(r,{startColumn:d,endColumn:p,startRow:i,endRow:s});if(h={...c,height:(c?.height||0)-e.endY+e.startY},m=f5(h,r),m&&h){let e=p5(h,r);o.push({...t,sheetTransform:m,transform:h,axisAlignSheetTransform:e});break}}if(h&&(m=f5(h,r)),h&&m){let e=p5(h,r);a.push({...t,sheetTransform:m,transform:h,axisAlignSheetTransform:e});break}this._remainDrawingSize(c,a,t,r)}}}),a.length===0&&o.length===0)return{redos:[],undos:[]};let{redos:s,undos:c}=this._createUndoAndRedoMutation(e,t,a),l=[],u=[];if(o.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,o);l.push(...n),u.push(...r)}return{redos:s,undos:c,preRedos:l,preUndos:u}}_getDrawingUndoForRowAndColSize(e,t,n){let r=this._sheetSkeletonService.getSkeletonParam(e,t);if(!r)return{redos:[],undos:[]};let{skeleton:i}=r,a=this._drawingManagerService.getDrawingData(e,t),o=[];return Object.keys(a).forEach(e=>{let t=a[e],{sheetTransform:s,transform:c,anchorType:l=m5.Position}=t;if(l===m5.None)this._remainDrawingSize(c,o,t,i);else{let{from:e,to:a}=s,{row:u,column:d}=e,{row:f,column:p}=a;for(let e=0;e<n.length;e++){let{startRow:a,endRow:m,startColumn:h,endColumn:g}=n[e];if(f<a||p<h)continue;if(l===m5.Position&&(u<=a&&f>=m||d<=h&&p>=g)){this._remainDrawingSize(c,o,t,i);continue}let _=d5({...s},r);if(_){o.push({...t,transform:_});break}}}}),o.length===0?{redos:[],undos:[]}:this._createUndoAndRedoMutation(e,t,o)}_getUnitIdAndSubUnitId(e,t){let n;if(n=t===`insert`?bG(this._univerInstanceService,e):bG(this._univerInstanceService),!n)return;let{unitId:r,subUnitId:i}=n;return{unitId:r,subUnitId:i}}_moveRangeInterceptor(e,t,n,r){let i=this._sheetSkeletonService.getSkeletonParam(e,t);if(!i)return{redos:[],undos:[]};let{skeleton:a}=i,o=gZ(a,n);if(!o)return{redos:[],undos:[]};let{startX:s,endX:c,startY:l,endY:u}=o,d=this._sheetDrawingService.getDrawingData(e,t),f=[];Object.keys(d).forEach(e=>{let t=d[e];if(t.anchorType!==m5.Both)return;let{transform:n}=t;if(!n)return;let{left:r=0,top:i=0,width:a=0,height:o=0}=n,{drawingStartX:p,drawingEndX:m,drawingStartY:h,drawingEndY:g}={drawingStartX:r,drawingEndX:r+a,drawingStartY:i,drawingEndY:i+o};s<=p&&m<=c&&l<=h&&g<=u&&f.push(t)});let p=[],m=[],h=r.startRow-n.startRow,g=r.startColumn-n.startColumn,_=f.map(n=>{let r=n.sheetTransform,a={to:{...r.to,row:r.to.row+h,column:r.to.column+g},from:{...r.from,row:r.from.row+h,column:r.from.column+g}},o=d5(a,i);return{unitId:e,subUnitId:t,drawingId:n.drawingId,transform:o,sheetTransform:a}});if(_.length){let{undo:n,redo:r,objects:i}=this._sheetDrawingService.getBatchUpdateOp(_);p.push({id:_5.id,params:{unitId:e,subUnitId:t,op:r,objects:i,type:g5.UPDATE}}),m.push({id:_5.id,params:{unitId:e,subUnitId:t,op:n,objects:i,type:g5.UPDATE}})}return{redos:p,undos:m}}_moveRowInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,a=this._sheetSkeletonService.getSkeletonParam(r,i);if(!a)return{redos:[],undos:[]};let{range:o}=e,s=o.startRow,c=o.endRow,l=[],u=[],d=this._sheetDrawingService.getDrawingData(r,i),f=[],p=[];if(Object.keys(d).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:l=m5.Position}=d[e];if(!n||!o)return;let u,m,h;if(t===`insert`){let e=this._expandRow(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:l});u=e?.newSheetTransform,m=e?.newTransform,h=e?.axisAlignSheetTransform??void 0}else{let{from:t,to:d}=n,{row:f}=t,{row:g}=d;if(l===m5.Both&&f>=s&&g<=c)p.push({unitId:r,subUnitId:i,drawingId:e});else{let e=this._shrinkRow(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:l});u=e?.newSheetTransform,m=e?.newTransform,h=e?.axisAlignSheetTransform??void 0}}if(!u||!m)return;let g={unitId:r,subUnitId:i,drawingId:e,transform:m,sheetTransform:u,axisAlignSheetTransform:h};f.push(g)}),f.length===0&&p.length===0)return{redos:[],undos:[]};if(f.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(f);l.push({id:_5.id,params:{unitId:r,subUnitId:i,op:t,objects:n,type:g5.UPDATE}}),u.push({id:_5.id,params:{unitId:r,subUnitId:i,op:e,objects:n,type:g5.UPDATE}})}if(p.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(p),t=e.undo,n=e.redo,a=e.objects;l.push({id:_5.id,params:{unitId:r,subUnitId:i,op:n,objects:a,type:g5.REMOVE}}),u.push({id:_5.id,params:{unitId:r,subUnitId:i,op:t,objects:a,type:g5.INSERT}})}return l.push({id:v5.id,params:[r]}),u.push({id:v5.id,params:[r]}),{redos:l,undos:u}}_moveColInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,a=this._sheetSkeletonService.getSkeletonParam(r,i);if(!a)return{redos:[],undos:[]};let{range:o}=e,s=o.startColumn,c=o.endColumn,l=[],u=[],d=this._sheetDrawingService.getDrawingData(r,i),f=[],p=[];if(Object.keys(d).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:l=m5.Position}=d[e];if(!n||!o)return;let u,m,h;if(t===`insert`){let e=this._expandCol(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:l});u=e?.newSheetTransform,m=e?.newTransform,h=e?.axisAlignSheetTransform??void 0}else{let{from:t,to:d}=n,{column:f}=t,{column:g}=d;if(l===m5.Both&&f>=s&&g<=c)p.push({unitId:r,subUnitId:i,drawingId:e});else{let e=this._shrinkCol(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:l});u=e?.newSheetTransform,m=e?.newTransform,h=e?.axisAlignSheetTransform??void 0}}if(!u||!m)return;let g={unitId:r,subUnitId:i,drawingId:e,transform:m,sheetTransform:u,axisAlignSheetTransform:h};f.push(g)}),f.length===0&&p.length===0)return{redos:[],undos:[]};if(f.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(f);l.push({id:_5.id,params:{unitId:r,subUnitId:i,op:t,objects:n,type:g5.UPDATE}}),u.push({id:_5.id,params:{unitId:r,subUnitId:i,op:e,objects:n,type:g5.UPDATE}})}if(p.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(p),t=e.undo,n=e.redo,a=e.objects;l.push({id:_5.id,params:{unitId:r,subUnitId:i,op:n,objects:a,type:g5.REMOVE}}),u.push({id:_5.id,params:{unitId:r,subUnitId:i,op:t,objects:a,type:g5.INSERT}})}return l.push({id:v5.id,params:[r]}),u.push({id:v5.id,params:[r]}),{redos:l,undos:u}}_expandCol(e,t,n){let{sheetSkeletonParam:r,sheetTransform:i,transform:a,anchorType:o=m5.Position}=n,{skeleton:s}=r,c=t-e+1,{from:l,to:u}=i,{column:d}=l,{column:f}=u;if(o===m5.None)return{newSheetTransform:f5({...a},s),newTransform:a,axisAlignSheetTransform:p5({...a},s)};let p=null,m=null,h=null;if(d>=e){let n=gZ(s,{startColumn:e,endColumn:t,startRow:l.row,endRow:u.row});m={...a,left:(a.left||0)+n.endX-n.startX},p=f5(m,s),h=p5(m,s)}else if(f>=t){if(o===m5.Both)p={from:{...l},to:{...u,column:f+c}},m=d5(p,r);else return{newSheetTransform:f5({...a},s),newTransform:a,axisAlignSheetTransform:p5({...a},s)}}return p&&m?{newSheetTransform:p,newTransform:m,axisAlignSheetTransform:h}:null}_shrinkCol(e,t,n){let{sheetSkeletonParam:r,sheetTransform:i,transform:a,anchorType:o=m5.Position}=n,{skeleton:s}=r,c=t-e+1,{from:l,to:u}=i,{column:d}=l,{column:f}=u;if(o===m5.None)return{newSheetTransform:f5({...a},s),newTransform:a,axisAlignSheetTransform:p5({...a},s)};let p=null,m=null,h=null;if(d>t)p={from:{...l,column:d-c},to:{...u,column:f-c}},m=d5(p,r);else if(d>=e&&f<=t)return null;else if(d<e&&f>t){if(o===m5.Both)p={from:{...l},to:{...u,column:f-c}},m=d5(p,r);else return{newSheetTransform:f5({...a},s),newTransform:a,axisAlignSheetTransform:p5({...a},s)}}else if(d>=e&&d<=t){if(d===e)m={...a,left:(a.left||0)-i.from.columnOffset};else{let t=gZ(s,{startColumn:e,endColumn:d-1,startRow:l.row,endRow:u.row});m={...a,left:(a.left||0)-t.endX+t.startX-i.from.columnOffset}}p=f5(m,s),h=p5(m,s)}else if(f>=e&&f<=t&&o===m5.Both){let t=gZ(s,{startColumn:e-1,endColumn:e-1,startRow:l.row,endRow:u.row});p={from:{...l},to:{...u,column:e-1,columnOffset:t.endX-t.startX}},m=d5(p,r)}return p&&m?{newSheetTransform:p,newTransform:m,axisAlignSheetTransform:h}:null}_expandRow(e,t,n){let{sheetSkeletonParam:r,sheetTransform:i,transform:a,anchorType:o=m5.Position}=n,{skeleton:s}=r,c=t-e+1,{from:l,to:u}=i,{row:d}=l,{row:f}=u;if(o===m5.None)return{newSheetTransform:f5({...a},s),newTransform:a,axisAlignSheetTransform:p5({...a},s)};let p=null,m=null,h=null;if(d>=e){let n=gZ(s,{startRow:e,endRow:t,startColumn:l.column,endColumn:u.column});m={...a,top:(a.top||0)+n.endY-n.startY},p=f5(m,s),h=p5(m,s)}else if(f>=t){if(o===m5.Both)p={from:{...l},to:{...u,row:f+c}},m=d5(p,r);else return{newSheetTransform:f5({...a},s),newTransform:a,axisAlignSheetTransform:p5({...a},s)}}return p&&m?{newSheetTransform:p,newTransform:m,axisAlignSheetTransform:h}:null}_shrinkRow(e,t,n){let{sheetSkeletonParam:r,sheetTransform:i,transform:a,anchorType:o=m5.Position}=n,{skeleton:s}=r,c=t-e+1,{from:l,to:u}=i,{row:d}=l,{row:f}=u;if(o===m5.None)return{newSheetTransform:f5({...a},s),newTransform:a,axisAlignSheetTransform:p5({...a},s)};let p=null,m=null,h=null;if(d>t)p={from:{...l,row:d-c},to:{...u,row:f-c}},m=d5(p,r);else if(d>=e&&f<=t)return null;else if(d<e&&f>t){if(o===m5.Both)p={from:{...l},to:{...u,row:f-c}},m=d5(p,r);else return{newSheetTransform:f5({...a},s),newTransform:a,axisAlignSheetTransform:p5({...a},s)}}else if(d>=e&&d<=t){if(d===e)m={...a,top:(a.top||0)-i.from.rowOffset};else{let t=gZ(s,{startRow:e,endRow:d-1,startColumn:l.column,endColumn:u.column});m={...a,top:(a.top||0)-t.endY+t.startY-i.from.rowOffset}}p=f5(m,s),h=p5(m,s)}else if(f>=e&&f<=t&&o===m5.Both){let t=gZ(s,{startColumn:l.column,endColumn:l.column,startRow:e-1,endRow:e-1});p={from:{...l},to:{...u,row:e-1,rowOffset:t.endY-t.startY}},m=d5(p,r)}return p&&m?{newSheetTransform:p,newTransform:m,axisAlignSheetTransform:h}:null}_commandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===SK.id){let{unitId:t,subUnitId:n}=e.params;this._updateDrawings(t,n)}})),this.disposeWithMe(this._context.activated$.subscribe(e=>{let{unit:t,unitId:n}=this._context;if(e){let e=t.getActiveSheet().getSheetId();this._updateDrawings(n,e)}else this._clearDrawings(n)}))}_clearDrawings(e){setTimeout(()=>{let t=this._drawingManagerService.drawingManagerData,n=[];Object.keys(t).forEach(r=>{let i=t[r];Object.keys(i).forEach(t=>{let a=i[t].data;Object.keys(a).forEach(t=>{r===e&&n.push(a[t])})})}),this._sheetDrawingService.removeNotification(n),this._drawingManagerService.removeNotification(n)})}_updateDrawings(e,t){setTimeout(()=>{let n=this._sheetSkeletonService.getSkeletonParam(e,t),r=this._drawingManagerService.drawingManagerData,i=[],a=[];Object.keys(r).forEach(o=>{let s=r[o];Object.keys(s).forEach(r=>{let c=s[r].data;Object.keys(c).forEach(s=>{if(o===e&&r===t){let e=c[s];e.sheetTransform&&(e.transform=d5(e.sheetTransform,n)),i.push(c[s])}else a.push(c[s])})})}),this._sheetDrawingService.removeNotification(a),this._sheetDrawingService.addNotification(i),this._drawingManagerService.removeNotification(a),this._drawingManagerService.addNotification(i)},0)}_sheetRefreshListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{BMt.includes(e.id)&&requestIdleCallback(()=>{let t=e.params,n=bG(this._univerInstanceService,t);if(!n)return;let{unitId:r,subUnitId:i,worksheet:a}=n,o=[];`ranges`in t?o=t.ranges:`rowsAutoHeightInfo`in t&&(o=t.rowsAutoHeightInfo.map(e=>({startRow:e.row,endRow:e.row,startColumn:0,endColumn:a.getColumnCount()-1}))),this._refreshDrawingTransform(r,i,o)})}))}_refreshDrawingTransform(e,t,n){let r=this._sheetSkeletonService.getSkeletonParam(e,t),i=this._drawingManagerService.getDrawingData(e,t),a=[];Object.keys(i).forEach(e=>{let t=i[e],{sheetTransform:o,transform:s,anchorType:c=m5.Position}=t;if(c===m5.None)return!0;let{from:l,to:u}=o,{row:d,column:f}=l,{row:p,column:m}=u;for(let e=0;e<n.length;e++){let{startRow:i,endRow:l,startColumn:u,endColumn:h}=n[e];if(l_.intersects({startRow:i,endRow:l,startColumn:u,endColumn:h},{startRow:d,endRow:p,startColumn:f,endColumn:m})||d>l||f>h){let e=c===m5.Position,n=d5(o,r);a.push({...t,transform:{...n,width:e?s?.width:n?.width,height:e?s?.height:n?.height}});break}}}),a.length!==0&&(this._sheetDrawingService.refreshTransform(a),this._drawingManagerService.refreshTransform(a),this._commandService.syncExecuteCommand(v5.id,[e]))}};s7=j5([A5(1,R),A5(2,j(GK)),A5(3,bQ),A5(4,j(MG)),A5(5,j(HK)),A5(6,h5),A5(7,bN),A5(8,z)],s7);var c7={id:`sheet.command.toggle-flip-drawings`,type:L.COMMAND,handler:(e,t)=>{if(!t)return!1;let n=e.get(R),r=e.get(fx),i=e.get(h5),a=e.get(GK),{drawings:o}=t,s=t.flipH,c=t.flipV,l=[],u=[];for(let t of o){let{unitId:n,subUnitId:r,drawingId:o}=t;l.push(n);let d=i.getDrawingData(n,r)?.[o];if(!d)continue;let f=a.getSkeleton(n,r);if(!f)continue;let p={...d.transform};s&&(p.flipX=!p.flipX),c&&(p.flipY=!p.flipY);let m=f5(p,f),h=p5(p,f),g={unitId:n,subUnitId:r,drawingType:d.drawingType,drawingId:o,transform:p,sheetTransform:m,axisAlignSheetTransform:h};if(d.drawingType===lm.DRAWING_IMAGE){let t=VMt(e,n);if(t){let e=DN({unitId:n,subUnitId:r,drawingId:o}),i=t.getObject(e);if(i){let e=i.srcRect;if(e){let t,{left:n=0,top:r=0,right:i=0,bottom:a=0}=e;if(s){let e=n+(i-n)/2;t={left:e-(i-n)/2,top:r,right:e+(i-n)/2,bottom:a}}if(c){let e=r+(a-r)/2;t={left:n,top:e-(a-r)/2,right:i,bottom:e+(a-r)/2}}t&&(g.srcRect=t)}}}}u.push(g)}if(u.length===0)return!1;let{unitId:d,subUnitId:f,undo:p,redo:m,objects:h}=i.getBatchUpdateOp(u),g={id:_5.id,params:{unitId:d,subUnitId:f,op:m,objects:h,type:g5.UPDATE}},_={id:_5.id,params:{unitId:d,subUnitId:f,op:p,objects:h,type:g5.UPDATE}};return Gm([g],n).result?(r.pushUndoRedo({unitID:d,undoMutations:[_,{id:v5.id,params:l}],redoMutations:[g,{id:v5.id,params:l}]}),!0):!1}};function VMt(e,t){let n=e.get(zE).getRenderById(t);return n?n.scene:null}function HMt(e){var t,n;return!!(e!=null&&(t=e.p)!=null&&(t=t.drawingsOrder)!=null&&t.length&&(e==null||(n=e.p)==null||(n=n.drawingsOrder)==null?void 0:n.length)>0)}function UMt(e,t){let n=e.getActiveSheet();if(!n)return!1;let r=n.getCellMatrix(),{startRow:i,endRow:a,startColumn:o,endColumn:s}=t;for(let e=i;e<=a;e++)for(let t=o;t<=s;t++)if(HMt(r.getValue(e,t)))return!0;return!1}function WMt(){return`showDirectoryPicker`in window}function l7(e){let t=e.get(z),n=e.get(HK),r=_s([Nj(e,M.UNIVER_SHEET),t.getCurrentTypeOfUnit$(M.UNIVER_SHEET).pipe(sc(e=>e?n.selectionMoveEnd$.pipe(os(()=>{if(!WMt())return!0;let t=n.getCurrentSelections();if(!t||t.length===0)return!0;for(let n of t)if(UMt(e,n.range))return!1;return!0})):ts(!0)))]).pipe(os(([e,t])=>e||t));return{id:W5.id,type:yM.BUTTON,icon:`DownloadImageIcon`,title:`sheets-drawing-ui.save.menuLabel`,hidden$:r}}var GMt={[fM.MEDIA]:{[xMt]:{order:0,menuItemFactory:SMt,[P5.id]:{order:0,menuItemFactory:CMt},[F5.id]:{order:1,menuItemFactory:wMt}}},[mM.MAIN_AREA]:{[hM.OTHERS]:{[W5.id]:{order:10,menuItemFactory:l7}}},[mM.COL_HEADER]:{[hM.OTHERS]:{[W5.id]:{order:10,menuItemFactory:l7}}},[mM.ROW_HEADER]:{[hM.OTHERS]:{[W5.id]:{order:10,menuItemFactory:l7}}}};function KMt(){let e=U(Xb),t=U(oN),n=U(R5),[r,i]=(0,V.useState)([`cellAddress`]),[a,o]=(0,V.useState)(!1),[s,c]=(0,V.useState)(null),l=(0,V.useMemo)(()=>n.getCellImagesInSelection(),[n]),u=(0,V.useMemo)(()=>n.getDataColumns(),[n]),d=(0,V.useMemo)(()=>n.getSelectionRowRange(),[n]),f=u.length>0,p=(0,V.useMemo)(()=>u.map(e=>({label:e.label,value:String(e.index)})),[u]),[m,h]=(0,V.useState)(()=>p.length>0?p[0].value:`0`);QSt((0,V.useMemo)(()=>{if(!r.includes(`columnValue`)||!d)return[];let e=Number(m);return[{startRow:d.startRow,endRow:d.endRow,startColumn:e,endColumn:e}]},[r,m,d]));let g=(0,V.useCallback)(e=>{e.length!==0&&i(e)},[]),_=(0,V.useCallback)(e=>{h(String(e))},[]),v=(0,V.useCallback)(()=>{t.close(U5)},[t]),y=(0,V.useCallback)(async()=>{if(l.length!==0){o(!0),c(null);try{await n.saveImages(l,{fileNameParts:r,columnIndex:r.includes(`columnValue`)?Number(m):void 0}),t.close(U5)}catch(t){console.error(`Failed to save images:`,t),c(e.t(`sheets-drawing-ui.save.error`))}finally{o(!1)}}},[n,l,r,m,t,e]),b=r.includes(`columnValue`);return(0,H.jsxs)(`div`,{className:`univer-flex univer-flex-col`,children:[(0,H.jsx)(sj,{label:e.t(`sheets-drawing-ui.save.imageCount`),children:(0,H.jsx)(`div`,{className:`univer-text-sm univer-text-gray-600`,children:l.length})}),(0,H.jsx)(sj,{label:e.t(`sheets-drawing-ui.save.fileNameConfig`),children:(0,H.jsxs)(KWe,{value:r,onChange:g,direction:`vertical`,children:[(0,H.jsx)(QA,{value:`cellAddress`,disabled:!f,children:e.t(`sheets-drawing-ui.save.useRowCol`)}),f&&(0,H.jsx)(QA,{value:`columnValue`,children:e.t(`sheets-drawing-ui.save.useColumnValue`)})]})}),b&&(0,H.jsx)(sj,{label:e.t(`sheets-drawing-ui.save.selectColumn`),children:(0,H.jsx)(yj,{value:m,options:p,onChange:_})}),s&&(0,H.jsx)(`div`,{className:`univer-text-xs univer-text-red-500`,children:s}),(0,H.jsxs)(`div`,{className:`univer-flex univer-justify-end univer-gap-2 univer-border-t univer-border-gray-200 univer-pt-3`,children:[(0,H.jsx)(VA,{onClick:v,disabled:a,children:e.t(`sheets-drawing-ui.save.cancel`)}),(0,H.jsx)(VA,{variant:`primary`,onClick:y,disabled:a||l.length===0,children:a?e.t(`sheets-drawing-ui.save.saving`):e.t(`sheets-drawing-ui.save.confirm`)})]})]})}var qMt=e=>{let t=U(R),n=U(Xb),r=U(bN),i=U(zE),{drawings:a}=e,o=a[0];if(o==null)return;let{unitId:s}=o,c=i.getRenderById(s)?.scene;if(c==null)return;let l=c.getTransformerByCreate(),[u,d]=(0,V.useState)(!0),[f,p]=(0,V.useState)(o.anchorType??m5.Position);function m(e,t){let n=[];return e.forEach(e=>{let{oKey:r}=e,i=t.getDrawingOKey(r);if(i==null)return n.push(null),!0;let{unitId:a,subUnitId:o,drawingId:s,drawingType:c,anchorType:l,sheetTransform:u,axisAlignSheetTransform:d}=i;n.push({unitId:a,subUnitId:o,drawingId:s,anchorType:l,sheetTransform:u,drawingType:c,axisAlignSheetTransform:d})}),n}(0,V.useEffect)(()=>{let e=l.clearControl$.subscribe(e=>{e===!0&&d(!1)}),t=l.changeStart$.subscribe(e=>{let{objects:t}=e,n=m(t,r);n.length===0?d(!1):n.length>=1&&(d(!0),p(n[0]?.anchorType||m5.Position))});return()=>{t.unsubscribe(),e.unsubscribe()}},[]);function h(e){p(e);let n=r.getFocusDrawings();if(n.length===0)return;let i=n.map(t=>({unitId:t.unitId,subUnitId:t.subUnitId,drawingId:t.drawingId,anchorType:e}));t.executeCommand(S5.id,{unitId:n[0].unitId,drawings:i})}return(0,H.jsxs)(`div`,{className:W(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!u}),children:[(0,H.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,H.jsx)(`div`,{children:n.t(`sheets-drawing-ui.drawing-anchor.title`)})}),(0,H.jsx)(`div`,{children:(0,H.jsxs)(gj,{value:f,onChange:h,direction:`vertical`,children:[(0,H.jsx)(_j,{value:m5.Both,children:n.t(`sheets-drawing-ui.drawing-anchor.both`)}),(0,H.jsx)(_j,{value:m5.Position,children:n.t(`sheets-drawing-ui.drawing-anchor.position`)}),(0,H.jsx)(_j,{value:m5.None,children:n.t(`sheets-drawing-ui.drawing-anchor.none`)})]})})]})},JMt=()=>{let e=U(bN),[t,n]=(0,V.useState)(e.getFocusDrawings());return(0,V.useEffect)(()=>{let t=e.focus$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[]),!!t?.length&&(0,H.jsxs)(`div`,{className:`univer-text-sm`,children:[(0,H.jsx)(oot,{drawings:t}),(0,H.jsx)(qMt,{drawings:t})]})};function u7(e){return e.getContextValue(`FOCUSING_SHEET`)&&!e.getContextValue(`FOCUSING_FX_BAR_EDITOR`)&&!e.getContextValue(`FOCUSING_PANEL_EDITOR`)&&e.getContextValue(`FOCUSING_COMMON_DRAWINGS`)&&!e.getContextValue(`FOCUSING_SHAPE_TEXT_EDITOR`)}var YMt={id:I5.id,description:`sheets-drawing-ui.shortcut.drawing-move-down`,group:`4_drawing-view`,groupTitle:`sheets-drawing-ui.shortcut.drawing-view`,binding:iM.ARROW_DOWN,priority:100,preconditions:u7,staticParameters:{direction:I.DOWN}},XMt={id:I5.id,description:`sheets-drawing-ui.shortcut.drawing-move-up`,group:`4_drawing-view`,groupTitle:`sheets-drawing-ui.shortcut.drawing-view`,binding:iM.ARROW_UP,priority:100,preconditions:u7,staticParameters:{direction:I.UP}},ZMt={id:I5.id,description:`sheets-drawing-ui.shortcut.drawing-move-left`,group:`4_drawing-view`,groupTitle:`sheets-drawing-ui.shortcut.drawing-view`,binding:iM.ARROW_LEFT,priority:100,preconditions:u7,staticParameters:{direction:I.LEFT}},QMt={id:I5.id,description:`sheets-drawing-ui.shortcut.drawing-move-right`,group:`4_drawing-view`,groupTitle:`sheets-drawing-ui.shortcut.drawing-view`,binding:iM.ARROW_RIGHT,priority:100,preconditions:u7,staticParameters:{direction:I.RIGHT}},$Mt={id:rMt.id,description:`sheets-drawing-ui.shortcut.drawing-delete`,group:`4_drawing-view`,groupTitle:`sheets-drawing-ui.shortcut.drawing-view`,priority:100,preconditions:u7,binding:iM.DELETE,mac:iM.BACKSPACE},d7=class extends P{constructor(e,t,n,r){super(),this._componentManager=e,this._menuManagerService=t,this._commandService=n,this._shortcutService=r,this._init()}_initCustomComponents(){let e=this._componentManager;this.disposeWithMe(e.register(_Mt,JMt)),this.disposeWithMe(e.register(U5,KMt))}_initMenus(){this._menuManagerService.mergeMenu(GMt)}_initCommands(){[P5,F5,vMt,yMt,cMt,lMt,I5,rMt,W5,c7].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[YMt,XMt,ZMt,QMt,$Mt].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};d7=j5([A5(0,j(Mj)),A5(1,gM),A5(2,R),A5(3,sM)],d7);var f7=class extends Kf{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._injector=e,this._localeService=t,this._drawingManagerService=n,this._canvasPopManagerService=r,this._renderManagerService=i,this._univerInstanceService=a,this._messageService=o,this._contextService=s,this._ioService=c,this._commandService=l,k5(this,`_initImagePopupMenu`,new Set),this._init()}_init(){this._univerInstanceService.getCurrentTypeOfUnit$(M.UNIVER_SHEET).subscribe(e=>this._create(e)),this._univerInstanceService.getTypeOfUnitDisposed$(M.UNIVER_SHEET).subscribe(e=>this._dispose(e)),this._univerInstanceService.getAllUnitsForType(M.UNIVER_SHEET).forEach(e=>this._create(e)),this._setupLoadingStatus()}_setupLoadingStatus(){let e;this.disposeWithMe(this._ioService.change$.subscribe(t=>{t>0&&!e?e=this._messageService.show({id:`image-upload-loading`,type:dj.Loading,content:`${this._localeService.t(`sheets-ui.uploadLoading.loading`)}: ${t}`,duration:0}):t===0&&(e?.dispose(),e=void 0)}))}_dispose(e){super.dispose();let t=e.getUnitId();this._renderManagerService.removeRender(t),this._initImagePopupMenu.delete(t)}_create(e){if(!e)return;let t=e.getUnitId();this._renderManagerService.has(t)&&!this._initImagePopupMenu.has(t)&&(this._popupMenuListener(t),this._initImagePopupMenu.add(t))}_hasCropObject(e){let t=e.getAllObjectsByOrder();for(let e of t)if(e instanceof bW)return!0;return!1}_popupMenuListener(e){let t=this._renderManagerService.getRenderById(e)?.scene;if(!t)return;let n=t.getTransformerByCreate();if(!n)return;let r;this.disposeWithMe(n.createControl$.subscribe(()=>{if(this._contextService.setContextValue($y,!0),this._hasCropObject(t))return;let e=n.getSelectedObjectMap();if(e.size>1){r?.dispose();return}let i=e.values().next().value;if(!i)return;let a=i.oKey,o=this._drawingManagerService.getDrawingOKey(a);if(!o)return;let{unitId:s,subUnitId:c,drawingId:l,drawingType:u}=o,d=o.data;if(d&&d.disablePopup)return;r?.dispose();let f=this._canvasPopManagerService.getFeatureMenu(s,c,l,u);r=this.disposeWithMe(this._canvasPopManagerService.attachPopupToObject(i,{componentKey:lW,direction:`horizontal`,offset:[2,0],extraProps:{menuItems:f||this._getImageMenuItems(s,c,l,u)}}))})),this.disposeWithMe(n.clearControl$.subscribe(()=>{r?.dispose(),this._contextService.setContextValue($y,!1),this._commandService.syncExecuteCommand(xN.id,[])})),this.disposeWithMe(this._contextService.contextChanged$.subscribe(e=>{e.FOCUSING_COMMON_DRAWINGS===!1&&r?.dispose()})),this.disposeWithMe(n.changing$.subscribe(()=>{r?.dispose()}))}_getImageMenuItems(e,t,n,r){return[{label:`sheets-drawing-ui.image-popup.edit`,index:0,commandId:yMt.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:r===lm.DRAWING_DOM},{label:`sheets-drawing-ui.image-popup.delete`,index:1,commandId:b5.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:!1},{label:`sheets-drawing-ui.image-popup.crop`,index:2,commandId:rW.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:r===lm.DRAWING_DOM},{label:`sheets-drawing-ui.image-popup.flipH`,index:2,commandId:c7.id,commandParams:{unitId:e,flipH:!0,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:r===lm.DRAWING_DOM},{label:`sheets-drawing-ui.image-popup.flipV`,index:2,commandId:c7.id,commandParams:{unitId:e,flipV:!0,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:r===lm.DRAWING_DOM},{label:`sheets-drawing-ui.image-popup.reset`,index:3,commandId:oW.id,commandParams:[{unitId:e,subUnitId:t,drawingId:n}],disable:r===lm.DRAWING_DOM}]}};f7=j5([A5(0,j(We)),A5(1,j(Xb)),A5(2,bN),A5(3,j(i2)),A5(4,zE),A5(5,z),A5(6,$j),A5(7,Pm),A5(8,ib),A5(9,R)],f7);var p7=class extends ax{constructor(e=OMt,t,n,r){super(),this._config=e,this._injector=t,this._renderManagerService=n,this._configService=r;let{menu:i,...a}=Qi({},OMt,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(DMt,a)}onStarting(){df(this._injector,[[n7],[d7],[f7],[o7],[e7],[Q5],[G5],[Y5],[X5],[Z5],[R5,{useClass:H5}],[K5]]),ff(this._injector,[[n7]])}onReady(){ff(this._injector,[[Q5],[Z5],[G5]])}onRendered(){this._registerRenderModules(),ff(this._injector,[[e7],[o7],[d7],[Y5],[X5]])}onSteady(){this._injector.get(f7),this._injector.get(K5)}_registerRenderModules(){[[N5],[s7],[J5],[q5]].forEach(e=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(M.UNIVER_SHEET,e))})}};k5(p7,`type`,M.UNIVER_SHEET),k5(p7,`pluginName`,`SHEET_IMAGE_UI_PLUGIN`),k5(p7,`packageName`,TMt),k5(p7,`version`,EMt),p7=j5([sx(EN,zU,wW,D5),A5(1,j(We)),A5(2,zE),A5(3,Mm)],p7);function m7(e){"@babel/helpers - typeof";return m7=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},m7(e)}function eNt(e,t){if(m7(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(m7(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function tNt(e){var t=eNt(e,`string`);return m7(t)==`symbol`?t:t+``}function nNt(e,t,n){return(t=tNt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h7(e,t){return function(n,r){t(n,r,e)}}function rNt(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function iNt(e,t){let{from:n,to:r,flipY:i=!1,flipX:a=!1,angle:o=0,skewX:s=0,skewY:c=0}=e.sheetTransform,{column:l,columnOffset:u,row:d,rowOffset:f}=n,{width:p,height:m}=smt(e.unitId,e.subUnitId,{from:n,to:r},t);return{...e,column:l,columnOffset:u,row:d,rowOffset:f,width:p,height:m,flipY:i,flipX:a,angle:o,skewX:s,skewY:c}}function aNt(e,t){let n=t.ensureSkeleton(e.unitId,e.subUnitId);if(!n)throw Error(`Skeleton for unitId ${e.unitId} and subUnitId ${e.subUnitId} not found`);let{column:r,columnOffset:i,row:a,rowOffset:o,flipY:s=!1,flipX:c=!1,angle:l=0,skewX:u=0,skewY:d=0,width:f,height:p}=e,{sheetTransform:m,transform:h}=cmt(e.unitId,e.subUnitId,{column:r,columnOffset:i,row:a,rowOffset:o},f,p,n);return{...e,sheetTransform:{...m,flipY:s,flipX:c,angle:l,skewX:u,skewY:d},transform:{...h,flipY:s,flipX:c,angle:l,skewX:u,skewY:d},axisAlignSheetTransform:p5(h,n)}}var g7=class{constructor(e,t,n){this._injector=n,nNt(this,`_image`,void 0),this._image={drawingId:rp(6),drawingType:lm.DRAWING_IMAGE,imageSourceType:nb.BASE64,source:``,unitId:e,subUnitId:t,column:0,columnOffset:0,row:0,rowOffset:0,width:0,height:0,axisAlignSheetTransform:{from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}}}}setImage(e){let{unitId:t,subUnitId:n}=e,r=this._injector.get(GK).getSkeleton(t,n);if(!r)throw Error(`Skeleton for unitId ${t} and subUnitId ${n} not found`);return e.sheetTransform??={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}},e.axisAlignSheetTransform??={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}},this._image=iNt(e,r),this}setSource(e,t){let n=t??nb.URL;return this._image.source=e,this._image.imageSourceType=n,this}getSource(){return this._image.source}getSourceType(){return this._image.imageSourceType}setColumn(e){return this._image.column=e,this}setRow(e){return this._image.row=e,this}setColumnOffset(e){return this._image.columnOffset=e,this}setRowOffset(e){return this._image.rowOffset=e,this}setWidth(e){return this._image.width=e,this}setHeight(e){return this._image.height=e,this}setAnchorType(e){return this._image.anchorType=e,this}setCropTop(e){return this._initializeSrcRect(),this._image.srcRect.top=e,this}setCropLeft(e){return this._initializeSrcRect(),this._image.srcRect.left=e,this}setCropBottom(e){return this._initializeSrcRect(),this._image.srcRect.bottom=e,this}setCropRight(e){return this._initializeSrcRect(),this._image.srcRect.right=e,this}_initializeSrcRect(){this._image.srcRect??(this._image.srcRect={top:0,left:0,bottom:0,right:0})}setRotate(e){return this._image.angle=e,this}setUnitId(e){return this._image.unitId=e,this}setSubUnitId(e){return this._image.subUnitId=e,this}async buildAsync(){let e=this._injector.get(GK);if(this._image.width===0||this._image.height===0){let e=await ON(this._image.source),t=e.width,n=e.height;this._image.width===0&&(this._image.width=t),this._image.height===0&&(this._image.height=n)}return aNt(this._image,e)}};g7=rNt([h7(2,j(We))],g7);var _7=class extends Bx{constructor(e,t,n){super(),this._image=e,this._commandService=t,this._injector=n}getId(){return this._image.drawingId}getType(){return this._image.drawingType}remove(){return this._commandService.syncExecuteCommand(b5.id,{unitId:this._image.unitId,drawings:[this._image]})}toBuilder(){let e=this._injector.createInstance(g7,this._image.unitId,this._image.subUnitId);return e.setImage(this._image),e}setSource(e,t){let n=t??nb.URL;return this._image.source=e,this._image.imageSourceType=n,this._commandService.syncExecuteCommand(S5.id,{unitId:this._image.unitId,drawings:[this._image]})}async setPositionAsync(e,t,n,r){let i=this.toBuilder();i.setColumn(t),i.setRow(e),n!=null&&i.setRowOffset(n),r!=null&&i.setColumnOffset(r);let a=await i.buildAsync();return this._commandService.syncExecuteCommand(S5.id,{unitId:this._image.unitId,drawings:[a]})}async setSizeAsync(e,t){let n=this.toBuilder();n.setWidth(e),n.setHeight(t);let r=await n.buildAsync();return this._commandService.syncExecuteCommand(S5.id,{unitId:this._image.unitId,drawings:[r]})}setCrop(e,t,n,r){return this._image.srcRect??(this._image.srcRect={top:0,left:0,bottom:0,right:0}),e!=null&&(this._image.srcRect.top=e),t!=null&&(this._image.srcRect.left=t),n!=null&&(this._image.srcRect.bottom=n),r!=null&&(this._image.srcRect.right=r),this._commandService.syncExecuteCommand(S5.id,{unitId:this._image.unitId,drawings:[this._image]})}setRotate(e){if(this._image.sheetTransform.angle=e,this._image.transform&&(this._image.transform.angle=e),this._image.transform){let e=this._injector.get(GK).getSkeleton(this._image.unitId,this._image.subUnitId);if(!e)throw Error(`Skeleton for unitId ${this._image.unitId} and subUnitId ${this._image.subUnitId} not found`);this._image.axisAlignSheetTransform&&(this._image.axisAlignSheetTransform=p5(this._image.transform,e))}return this._commandService.syncExecuteCommand(S5.id,{unitId:this._image.unitId,drawings:[this._image]})}setForward(){return this._commandService.syncExecuteCommand(x5.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:cm.forward})}setBackward(){return this._commandService.syncExecuteCommand(x5.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:cm.backward})}setBack(){return this._commandService.syncExecuteCommand(x5.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:cm.back})}setFront(){return this._commandService.syncExecuteCommand(x5.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:cm.front})}};_7=rNt([h7(1,R),h7(2,j(We))],_7);var oNt=class extends j3{async insertImage(e,t,n,r,i){let a=this.newOverGridImage();if(typeof e==`string`)a.setSource(e);else{let t=await e.getBlob().getDataAsString();a.setSource(t,nb.BASE64)}t===void 0?a.setColumn(0):a.setColumn(t),n===void 0?a.setRow(0):a.setRow(n),r===void 0?a.setColumnOffset(0):a.setColumnOffset(r),i===void 0?a.setRowOffset(0):a.setRowOffset(i);let o=await a.buildAsync();return this._commandService.syncExecuteCommand(y5.id,{unitId:this._fWorkbook.getId(),drawings:[o]})}insertImages(e){let t=e.map(e=>(e.unitId=this._fWorkbook.getId(),e.subUnitId=this.getSheetId(),e));return this._commandService.syncExecuteCommand(y5.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}deleteImages(e){let t=e.map(e=>({unitId:this._fWorkbook.getId(),drawingId:e.getId(),subUnitId:this.getSheetId(),drawingType:e.getType()}));return this._commandService.syncExecuteCommand(b5.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}getImages(){let e=this._injector.get(h5).getDrawingData(this._fWorkbook.getId(),this.getSheetId()),t=[];for(let n in e){let r=e[n];r.drawingType===lm.DRAWING_IMAGE&&t.push(this._injector.createInstance(_7,r))}return t}getImageById(e){let t=this._injector.get(h5).getDrawingByParam({unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawingId:e});return t&&t.drawingType===lm.DRAWING_IMAGE?this._injector.createInstance(_7,t):null}getActiveImages(){let e=this._injector.get(h5).getFocusDrawings(),t=[];for(let n in e){let r=e[n];t.push(this._injector.createInstance(_7,r))}return t}updateImages(e){return this._commandService.syncExecuteCommand(S5.id,{unitId:this._fWorkbook.getId(),drawings:e}),this}newOverGridImage(){let e=this._fWorkbook.getId(),t=this.getSheetId();return this._injector.createInstance(g7,e,t)}};j3.extend(oNt);var sNt=class extends Zx{get DrawingType(){return lm}get ImageSourceType(){return nb}get SheetDrawingAnchorType(){return m5}};Zx.extend(sNt);var cNt=class extends Qx{get BeforeFloatDomAdd(){return`BeforeFloatDomAdd`}get FloatDomAdded(){return`FloatDomAdded`}get BeforeFloatDomUpdate(){return`BeforeFloatDomUpdate`}get FloatDomUpdated(){return`FloatDomUpdated`}get BeforeFloatDomDelete(){return`BeforeFloatDomDelete`}get FloatDomDeleted(){return`FloatDomDeleted`}get BeforeOverGridImageChange(){return`BeforeOverGridImageChange`}get OverGridImageChanged(){return`OverGridImageChanged`}get BeforeOverGridImageInsert(){return`BeforeOverGridImageInsert`}get OverGridImageInserted(){return`OverGridImageInserted`}get BeforeOverGridImageRemove(){return`BeforeOverGridImageRemove`}get OverGridImageRemoved(){return`OverGridImageRemoved`}get BeforeOverGridImageSelect(){return`BeforeOverGridImageSelect`}get OverGridImageSelected(){return`OverGridImageSelected`}};Qx.extend(cNt);var lNt=class extends oS{_initialize(e){let t=e.get(R);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageInsert,()=>t.beforeCommandExecuted(e=>{if(e.id!==y5.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,i={workbook:n,insertImageParams:r};if(this.fireEvent(this.Event.BeforeOverGridImageInsert,i),i.cancel)throw new hf}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageRemove,()=>t.beforeCommandExecuted(t=>{if(t.id!==b5.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let i=e.get(bN),{drawings:a}=n,o=a.map(e=>i.getDrawingByParam(e)),s={workbook:r,images:this._createFOverGridImage(o)};if(this.fireEvent(this.Event.BeforeOverGridImageRemove,s),s.cancel)throw new hf}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageChange,()=>t.beforeCommandExecuted(t=>{if(t.id!==S5.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:i}=n,a=e.get(bN),o=[];i.forEach(e=>{let t=a.getDrawingByParam(e);t!=null&&o.push({changeParam:e,image:this._injector.createInstance(_7,t)})});let s={workbook:r,images:o};if(this.fireEvent(this.Event.BeforeOverGridImageChange,s),s.cancel)throw a.updateNotification(i),new hf}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageSelect,()=>t.beforeCommandExecuted(t=>{if(t.id!==xN.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null)return;let i=e.get(bN),a=i.getFocusDrawings(),o=n.map(e=>i.getDrawingByParam(e)),s={workbook:r,selectedImages:this._createFOverGridImage(o),oldSelectedImages:this._createFOverGridImage(a)};if(this.fireEvent(this.Event.BeforeOverGridImageSelect,s),s.cancel)throw new hf}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageInserted,()=>t.onCommandExecuted(e=>{if(e.id!==y5.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,i={workbook:n,images:this._createFOverGridImage(r)};this.fireEvent(this.Event.OverGridImageInserted,i)}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageRemoved,()=>t.onCommandExecuted(e=>{if(e.id!==b5.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,i={workbook:n,removeImageParams:r};this.fireEvent(this.Event.OverGridImageRemoved,i)}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageChanged,()=>t.onCommandExecuted(t=>{if(t.id!==S5.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:i}=n,a=e.get(bN),o={workbook:r,images:i.map(e=>this._injector.createInstance(_7,a.getDrawingByParam(e)))};this.fireEvent(this.Event.OverGridImageChanged,o)}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageSelected,()=>t.onCommandExecuted(t=>{if(t.id!==xN.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null)return;let i=e.get(bN),a=n.map(e=>i.getDrawingByParam(e)),o={workbook:r,selectedImages:this._createFOverGridImage(a)};this.fireEvent(this.Event.OverGridImageSelected,o)})))}_createFOverGridImage(e){return e.map(e=>this._injector.createInstance(_7,e))}};oS.extend(lNt);var uNt=class extends j3{getFloatDomById(e){let t=this._injector.get(n7).getFloatDomInfo(e);if(!t)return null;let{unitId:n,subUnitId:r}=t,{rect:i}=t,{left:a=0,top:o=0,width:s=0,height:c=0,flipX:l=!1,flipY:u=!1,angle:d=0,skewX:f=0,skewY:p=0}=i.getState(),m=this._injector.get(h5).getDrawingByParam({drawingId:t.id,unitId:n,subUnitId:r});return m?{position:{left:a,top:o,width:s,height:c,flipX:l,flipY:u,angle:d,skewX:f,skewY:p},componentKey:m.componentKey,allowTransform:m.allowTransform,data:m.data,id:t.id}:null}getAllFloatDoms(){let e=this._injector.get(n7),t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return Array.from(e.getFloatDomsBySubUnitId(t,n).values()).map(e=>{let{rect:r}=e,i=this._injector.get(h5).getDrawingByParam({drawingId:e.id,unitId:t,subUnitId:n}),{left:a,top:o,width:s,height:c,flipX:l,flipY:u,angle:d,skewX:f,skewY:p}=r.getState();return{position:{left:a,top:o,width:s,height:c,flipX:l,flipY:u,angle:d,skewX:f,skewY:p},componentKey:i.componentKey,allowTransform:i.allowTransform,data:i.data,id:e.id}})}updateFloatDom(e,t){let n=this._injector.get(GK),r=this._injector.get(n7).getFloatDomInfo(e);if(!r)return this;let{unitId:i,subUnitId:a}=r,o=n.getSkeleton(i,a);if(!o)return this;let s=this._injector.get(h5).getDrawingByParam({unitId:i,subUnitId:a,drawingId:e}),c={...s,componentKey:t.componentKey||s.componentKey,allowTransform:t.allowTransform===void 0?s.allowTransform:t.allowTransform,data:t.data||s.data,sheetTransform:t.position?f5(t.position,o)??s.sheetTransform:s.sheetTransform,transform:{...s.transform,...t.position},axisAlignSheetTransform:t.position?p5(t.position,o)??s.sheetTransform:s.sheetTransform};if(!this._commandService.syncExecuteCommand(S5.id,{unitId:i,subUnitId:a,drawings:[c]}))throw Error(`updateFloatDom failed`);return this}batchUpdateFloatDoms(e){let t=this._injector.get(n7),n=this._injector.get(h5),r=this._injector.get(GK),i=[];for(let a of e){let e=t.getFloatDomInfo(a.id);if(!e)continue;let{unitId:o,subUnitId:s}=e,c=r.getSkeleton(o,s);if(!c)continue;let l=n.getDrawingByParam({unitId:o,subUnitId:s,drawingId:a.id});if(!l)continue;let u={...l,componentKey:a.config.componentKey||l.componentKey,allowTransform:a.config.allowTransform===void 0?l.allowTransform:a.config.allowTransform,data:a.config.data||l.data,sheetTransform:a.config.position?f5(a.config.position,c)??l.sheetTransform:l.sheetTransform,transform:{...l.transform,...a.config.position},axisAlignSheetTransform:a.config.position?p5(a.config.position,c)??l.sheetTransform:l.sheetTransform};i.push(u)}if(i.length>0){let e=this._workbook.getUnitId(),t=this._worksheet.getSheetId();if(!this._commandService.syncExecuteCommand(S5.id,{unitId:e,subUnitId:t,drawings:i}))throw Error(`batchUpdateFloatDoms failed`)}return this}removeFloatDom(e){return this._injector.get(n7).removeFloatDom(e),this}addFloatDomToPosition(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),{key:i,disposableCollection:a}=G3(e,this._injector.get(Mj)),o=this._injector.get(n7).addFloatDomToPosition({...e,componentKey:i,unitId:n,subUnitId:r},t);return o?(a.add(o.dispose),{id:o.id,dispose:()=>{a.dispose(),o.dispose()}}):(a.dispose(),null)}addFloatDomToRange(e,t,n,r){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),{key:o,disposableCollection:s}=G3(t,this._injector.get(Mj)),c=this._injector.get(n7).addFloatDomToRange(e.getRange(),{...t,componentKey:o,unitId:i,subUnitId:a},n,r);return c?(s.add(c.dispose),{id:c.id,dispose:()=>{s.dispose(),c.dispose()}}):(s.dispose(),null)}addFloatDomToColumnHeader(e,t,n,r){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),{key:o,disposableCollection:s}=G3(t,this._injector.get(Mj)),c=this._injector.get(n7).addFloatDomToColumnHeader(e,{...t,componentKey:o,unitId:i,subUnitId:a},n,r);return c?(s.add(c.dispose),{id:c.id,dispose:()=>{s.dispose(),c.dispose()}}):(s.dispose(),null)}async saveCellImagesAsync(e,t){let n=this._injector.get(R5),r=this._fWorkbook.getId(),i=this.getSheetId(),a=t?t.map(e=>e.getRange()):[this._worksheet.getCellMatrix().getDataRange()],o=n.getCellImagesFromRanges(r,i,a);if(o.length===0)return!1;if(o.length===1)try{return await n.downloadSingleImage(o[0]),!0}catch(e){return console.error(`Failed to download image:`,e),!1}let s=[],c=e?.useCellAddress??!0,l=e?.useColumnIndex;c&&s.push(L5.CELL_ADDRESS),l!==void 0&&s.push(L5.COLUMN_VALUE),s.length===0&&s.push(L5.CELL_ADDRESS);try{return await n.saveImagesWithContext(o,{fileNameParts:s,columnIndex:l},r,i),!0}catch(e){return console.error(`Failed to save images:`,e),!1}}};j3.extend(uNt);var dNt=class extends Qx{get BeforeFloatDomAdd(){return`BeforeFloatDomAdd`}get FloatDomAdded(){return`FloatDomAdded`}get BeforeFloatDomUpdate(){return`BeforeFloatDomUpdate`}get FloatDomUpdated(){return`FloatDomUpdated`}get BeforeFloatDomDelete(){return`BeforeFloatDomDelete`}get FloatDomDeleted(){return`FloatDomDeleted`}};Qx.extend(dNt);var fNt=class extends oS{_initialize(e){let t=e.get(R);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomAdd,()=>t.beforeCommandExecuted(e=>{if(e.id!==y5.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,i=r.filter(e=>e.drawingType===lm.DRAWING_DOM);if(i.length===0)return;let a={workbook:n,drawings:i};if(this.fireEvent(this.Event.BeforeFloatDomAdd,a),a.cancel)throw new hf}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomAdded,()=>t.onCommandExecuted(e=>{if(e.id!==y5.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,i=r.filter(e=>e.drawingType===lm.DRAWING_DOM);if(i.length===0)return;let a={workbook:n,drawings:i};this.fireEvent(this.Event.FloatDomAdded,a)}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomUpdate,()=>t.beforeCommandExecuted(t=>{if(t.id!==S5.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:i}=n,a=e.get(bN),o=[];if(i.forEach(e=>{let t=a.getDrawingByParam(e);t?.drawingType===lm.DRAWING_DOM&&o.push(t)}),o.length===0)return;let s={workbook:r,drawings:o};if(this.fireEvent(this.Event.BeforeFloatDomUpdate,s),s.cancel)throw a.updateNotification(i),new hf}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomUpdated,()=>t.onCommandExecuted(t=>{if(t.id!==S5.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:i}=n,a=e.get(bN),o=[];if(i.forEach(e=>{let t=a.getDrawingByParam(e);t?.drawingType===lm.DRAWING_DOM&&o.push(t)}),o.length===0)return;let s={workbook:r,drawings:o};this.fireEvent(this.Event.FloatDomUpdated,s)}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomDelete,()=>t.beforeCommandExecuted(t=>{if(t.id!==b5.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let i=e.get(bN),{drawings:a}=n,o=a.map(e=>i.getDrawingByParam(e)).filter(e=>e?.drawingType===lm.DRAWING_DOM);if(o.length===0)return;let s={workbook:r,drawings:o};if(this.fireEvent(this.Event.BeforeFloatDomDelete,s),s.cancel)throw new hf}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomDeleted,()=>t.onCommandExecuted(e=>{if(e.id!==b5.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,i={workbook:n,drawings:r.filter(e=>e.drawingType===lm.DRAWING_DOM).map(e=>e.drawingId)};this.fireEvent(this.Event.FloatDomDeleted,i)})))}registerURLImageDownloader(e){return this._injector.get(ab).registerURLImageDownloader(e)}};oS.extend(fNt);var pNt=class extends P3{async insertCellImageAsync(e){let t=this._injector.get(zE),n=BE(M.UNIVER_SHEET,this._injector.get(z),t)?.with(N5);if(!n)return!1;let r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this.getRow(),col:this.getColumn()};return typeof e==`string`?n.insertCellImageByUrl(e,r):n.insertCellImageByFile(e,r)}async saveCellImagesAsync(e){let t=this._injector.get(R5),n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=this.getRange(),a=t.getCellImagesFromRanges(n,r,[i]);if(a.length===0)return!1;if(a.length===1)try{return await t.downloadSingleImage(a[0]),!0}catch(e){return console.error(`Failed to download image:`,e),!1}let o=[],s=e?.useCellAddress??!0,c=e?.useColumnIndex;s&&o.push(L5.CELL_ADDRESS),c!==void 0&&o.push(L5.COLUMN_VALUE),o.length===0&&o.push(L5.CELL_ADDRESS);try{return await t.saveImagesWithContext(a,{fileNameParts:o,columnIndex:c},n,r),!0}catch(e){return console.error(`Failed to save images:`,e),!1}}};P3.extend(pNt);function mNt(e={}){let{collaboration:t=!1,allowImageSize:n}=e;return{plugins:[[EN,{override:t?[[ib,null]]:[],allowImageSize:n}],zU,wW,D5,p7].filter(e=>!!e)}}var hNt=Ig(rst,{"sheets-drawing-ui":{title:`图片`,upload:{float:`浮动图片`,cell:`单元格图片`},panel:{title:`编辑图片`},save:{title:`保存单元格图片`,menuLabel:`保存单元格图片`,imageCount:`图片数量`,fileNameConfig:`文件名`,useRowCol:`使用单元格地址 (A1, B2...)`,useColumnValue:`使用某列的值`,selectColumn:`选择列`,cancel:`取消`,confirm:`保存`,saving:`保存中...`,error:`保存单元格图片失败`},"image-popup":{replace:`替换`,delete:`删除`,edit:`编辑`,crop:`裁剪`,reset:`重置大小`,flipH:`水平翻转`,flipV:`垂直翻转`},"update-status":{exceedMaxSize:`图片大小超过限制, 限制为{0}M`,invalidImageType:`图片类型错误`,exceedMaxCount:`图片只能一次上传{0}张`,invalidImage:`无效图片`},"drawing-anchor":{title:`锚点属性`,both:`与单元格一起移动和调整大小`,position:`移动但不调整大小与单元格`,none:`不要移动或调整大小与单元格`},"cell-image":{pasteTitle:`粘贴为单元格图片`,pasteContent:`粘贴单元格图片将覆盖单元格中的现有内容,继续粘贴`,pasteError:`此单元中不支持单元格图片复制粘贴`},permission:{dialog:{editErr:`该范围已被保护,目前无编辑权限。如需编辑,请联系创建者。`}},shortcut:{"drawing-view":`绘图视图`,"drawing-move-down":`下移绘图`,"drawing-move-up":`上移绘图`,"drawing-move-left":`左移绘图`,"drawing-move-right":`右移绘图`,"drawing-delete":`删除绘图`}}});function v7(e){"@babel/helpers - typeof";return v7=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},v7(e)}function gNt(e,t){if(v7(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(v7(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function _Nt(e){var t=gNt(e,`string`);return v7(t)==`symbol`?t:t+``}function y7(e,t,n){return(t=_Nt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function b7(e,t){return function(n,r){t(n,r,e)}}function x7(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var S7=class extends P{constructor(e){super(),this._univerInstanceService=e,y7(this,`_linkUpdate$`,new ao),y7(this,`linkUpdate$`,this._linkUpdate$.asObservable()),y7(this,`_linkMap`,new Map),y7(this,`_linkPositionMap`,new Map),this.disposeWithMe({dispose:()=>{this._linkUpdate$.complete()}})}_ensureMap(e,t){let n=this._linkMap.get(e);n||(n=new Map,this._linkMap.set(e,n));let r=n.get(t);r||(r=new Ih,n.set(t,r));let i=this._linkPositionMap.get(e);i||(i=new Map,this._linkPositionMap.set(e,i));let a=i.get(t);return a||(a=new Map,i.set(t,a)),{matrix:r,positionMap:a}}addHyperLink(e,t,n){let{matrix:r,positionMap:i}=this._ensureMap(e,t);return r.setValue(n.row,n.column,n),i.set(n.id,{row:n.row,column:n.column,link:n}),this._linkUpdate$.next({unitId:e,subUnitId:t,payload:n,type:`add`}),!0}updateHyperLink(e,t,n,r,i=!1){let{matrix:a,positionMap:o}=this._ensureMap(e,t),s=o.get(n);if(!s)return!0;let c=a.getValue(s.row,s.column);return!c||(Object.assign(c,r),this._linkUpdate$.next({unitId:e,subUnitId:t,payload:{display:c.display,payload:c.payload},id:n,type:`update`,silent:i}),!0)}updateHyperLinkRef(e,t,n,r,i=!1){let{matrix:a,positionMap:o}=this._ensureMap(e,t),s=o.get(n);if(!s)return!0;let c=a.getValue(s.row,s.column);return!c||c.id!==n?c=s.link:a.realDeleteValue(s.row,s.column),Object.assign(c,r),o.set(n,{...r,link:c}),a.setValue(r.row,r.column,c),this._linkUpdate$.next({unitId:e,subUnitId:t,payload:r,id:n,type:`updateRef`,silent:i}),!0}removeHyperLink(e,t,n){let{matrix:r,positionMap:i}=this._ensureMap(e,t),a=i.get(n);if(!a)return!1;i.delete(n);let o=r.getValue(a.row,a.column);return o&&o.id===n&&r.realDeleteValue(a.row,a.column),this._linkUpdate$.next({unitId:e,subUnitId:t,payload:a.link,type:`remove`}),!0}getHyperLink(e,t,n){let{matrix:r,positionMap:i}=this._ensureMap(e,t),a=i.get(n);if(a)return r.getValue(a.row,a.column)}getHyperLinkByLocation(e,t,n,r){let{matrix:i}=this._ensureMap(e,t);return i.getValue(n,r)}getHyperLinkByLocationSync(e,t,n,r){var i,a;let{matrix:o}=this._ensureMap(e,t),s=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET),c=s==null||(i=s.getSheetBySheetId(t))==null?void 0:i.getCellRaw(n,r),l=(c?.v??(c==null||(a=c.p)==null||(a=a.body)==null?void 0:a.dataStream.slice(0,-2))??``).toString(),u=o.getValue(n,r);if(u)return{...u,display:l}}getSubUnit(e,t){let{matrix:n}=this._ensureMap(e,t),r=[];return n.forValue((e,t,n)=>{n&&r.push(n)}),r}getUnit(e){let t=this._linkMap.get(e);return t?Array.from(t.keys()).map(t=>({unitId:e,subUnitId:t,links:this.getSubUnit(e,t)})):[]}deleteUnit(e){let t=this.getUnit(e);this._linkMap.delete(e),this._linkPositionMap.delete(e),this._linkUpdate$.next({type:`unload`,unitId:e,unitLinks:t})}getAll(){return Array.from(this._linkMap.keys()).map(e=>this.getUnit(e))}};S7=x7([b7(0,z)],S7);var C7={type:L.MUTATION,id:`sheets.mutation.add-hyper-link`,handler(e,t){if(!t)return!1;let n=e.get(S7),{unitId:r,subUnitId:i,link:a}=t;return n.addHyperLink(r,i,a)}},w7={type:L.MUTATION,id:`sheets.mutation.remove-hyper-link`,handler(e,t){if(!t)return!1;let n=e.get(S7),{unitId:r,subUnitId:i,id:a}=t;return n.removeHyperLink(r,i,a)}},vNt={type:L.COMMAND,id:`sheets.command.add-hyper-link`,async handler(e,t){if(!t)return!1;let n=e.get(R),r=e.get(fx),i=e.get(z),a=e.get(S7),o=e.get(MG),s=bG(i,t);if(!s)return!1;let{unitId:c,subUnitId:l,workbook:u,worksheet:d}=s,{link:f}=t,{payload:p,display:m,row:h,column:g,id:_}=f,v=d.getCell(h,g),y=d.getBlankCellDocumentModel(v,h,g),b=y.documentModel.getSnapshot(),x=F.deepClone(b.body);if(!x)return!1;let S;if(S=m?by.selection.replace({selection:{startOffset:0,endOffset:x.dataStream.length-2,collapsed:x.dataStream.length-2==0},body:{dataStream:`${m}`,customRanges:[{startIndex:0,endIndex:m.length-1,rangeType:Lp.HYPERLINK,rangeId:_,properties:{url:p}}]},doc:y.documentModel}):by.customRange.add({body:x,ranges:[{startOffset:0,endOffset:x.dataStream.length-2,collapsed:!1}],rangeId:_,rangeType:Lp.HYPERLINK,properties:{url:p,refId:_}}),!S)return!1;let C=Fv.apply(x,S.serialize()),w={p:{...b,body:C},t:Np.STRING},T=o.onWriteCell(u,d,h,g,w),E={unitId:c,subUnitId:l,cellValue:{[f.row]:{[f.column]:T}}},D={id:sK.id,params:E},O=oK(e,E),k={id:sK.id,params:O},A=[D],ee=[k],te=a.getHyperLinkByLocation(c,l,h,g);return te&&(A.push({id:w7.id,params:{unitId:c,subUnitId:l,id:te.id}}),ee.push({id:C7.id,params:{unitId:c,subUnitId:l,link:te}})),await Gm(A,n)?await o.onValidateCell(u,d,h,g)===!1?(Gm(ee,n),!1):(r.pushUndoRedo({redoMutations:A,undoMutations:ee,unitID:c}),!0):!1}},yNt={id:`sheets.command.add-rich-hyper-link`,type:L.COMMAND,handler:async(e,t)=>{if(!t)return!1;let{documentId:n,link:r}=t,i=e.get(R),a=rp(),{payload:o}=r,s=_Ae(e,{unitId:n,rangeId:a,rangeType:Lp.HYPERLINK,properties:{url:o,refId:a}});return s?i.syncExecuteCommand(s.id,s.params):!1}},bNt={type:L.COMMAND,id:`sheets.command.cancel-hyper-link`,handler(e,t){var n;if(!t)return!1;let r=e.get(R),i=e.get(fx),a=e.get(z),o=e.get(S7),s=bG(a,t);if(!s)return!1;let{row:c,column:l,id:u}=t,{unitId:d,subUnitId:f,worksheet:p}=s,m=p.getCell(c,l);if(!m)return!1;let h=p.getCellDocumentModelWithFormula(m,c,l);if(!h?.documentModel)return!1;let g=F.deepClone(h.documentModel.getSnapshot()),_=(n=g.body)==null||(n=n.customRanges)==null?void 0:n.find(e=>`${e.rangeId}`===u);if(!_)return!1;let v=by.customRange.delete({documentDataModel:h.documentModel,rangeId:_.rangeId});if(!v)return!1;let y=Fv.apply(g.body,v.serialize()),b=[],x=[],S={unitId:d,subUnitId:f,cellValue:{[c]:{[l]:{p:{...g,body:y},t:Np.STRING}}}};b.push({id:sK.id,params:S});let C=oK(e,S);x.push({id:sK.id,params:C});let w=o.getHyperLinkByLocation(d,f,c,l);return w&&(b.push({id:w7.id,params:{unitId:d,subUnitId:f,id:w.id}}),x.push({id:C7.id,params:{unitId:d,subUnitId:f,link:{...w}}})),Gm(b,r).result?(i.pushUndoRedo({redoMutations:b,undoMutations:x,unitID:d}),!0):!1}},xNt={type:L.COMMAND,id:`sheets.command.cancel-rich-hyper-link`,handler(e,t){var n;if(!t)return!1;let{id:r,documentId:i}=t,a=e.get(R),o=e.get(z).getUnit(i,M.UNIVER_DOC),s=o==null||(n=o.getBody())==null||(n=n.customRanges)==null?void 0:n.find(e=>e.rangeId===r),c=null;s&&s.endIndex===o.getBody().dataStream.length-3&&(c={dataStream:` `});let l=vAe(e,{unitId:i,rangeId:r,insert:c});return l?a.syncExecuteCommand(l.id,l.params):!1}},SNt={type:L.COMMAND,id:`sheets.command.update-hyper-link`,async handler(e,t){var n;if(!t)return!1;let r=e.get(R),i=e.get(fx),a=e.get(z),o=e.get(S7),s=e.get(MG),c=bG(a,{unitId:t.unitId,subUnitId:t.subUnitId});if(!c)return!1;let{payload:l,row:u,column:d,id:f}=t,{workbook:p,worksheet:m,unitId:h,subUnitId:g}=c,{payload:_,display:v=``}=l,y=m.getCell(u,d);if(!y)return!1;let b=m.getCellDocumentModelWithFormula(y,u,d);if(!b?.documentModel)return!1;let x=b.documentModel.getSnapshot(),S=(n=x.body)==null||(n=n.customRanges)==null?void 0:n.find(e=>`${e.rangeId}`===f);if(!S)return!1;let C=rp(),w=mv(b.documentModel.getBody(),S.startIndex,S.endIndex+1).textRuns?.[0];w&&(w.ed=v.length+1);let T=rD(e,{unitId:h,body:{dataStream:`${v}`,customRanges:[{rangeId:C,rangeType:Lp.HYPERLINK,startIndex:0,endIndex:v.length-1,properties:{url:_}}],textRuns:w?[w]:void 0},selection:{startOffset:S.startIndex,endOffset:S.endIndex+1,collapsed:!1},doc:b.documentModel});if(!T)return!1;let E=Fv.apply(F.deepClone(x.body),T.textX.serialize()),D={p:{...x,body:E},t:Np.STRING},O=s.onWriteCell(p,m,u,d,D),k={id:sK.id,params:{unitId:h,subUnitId:g,cellValue:{[u]:{[d]:O}}}},A=oK(e,k.params),ee={id:sK.id,params:A},te=[k],ne=[ee],re=o.getHyperLinkByLocation(h,g,u,d);return re&&(te.push({id:w7.id,params:{unitId:h,subUnitId:g,id:re.id}}),ne.push({id:C7.id,params:{unitId:h,subUnitId:g,link:re}})),Gm(te,r).result?await s.onValidateCell(p,m,u,d)===!1?(Gm(ne,r),!1):(i.pushUndoRedo({redoMutations:te,undoMutations:ne,unitID:h}),!0):!1}},CNt={type:L.COMMAND,id:`sheets.command.update-rich-hyper-link`,handler:(e,t)=>{var n;if(!t)return!1;let{documentId:r,payload:i,id:a}=t,o=e.get(z),s=e.get(R),c=o.getUnit(r,M.UNIVER_DOC);if(!c)return!1;let l=(n=c.getBody())==null||(n=n.customRanges)==null?void 0:n.find(e=>e.rangeId===a);if(!l)return!1;let u=t.payload.display??``,d=rp(),f=mv(c.getBody(),l.startIndex,l.endIndex+1).textRuns?.[0];f&&(f.ed=u.length+1);let p=rD(e,{unitId:r,body:{dataStream:`${u}`,customRanges:[{rangeId:d,rangeType:Lp.HYPERLINK,startIndex:0,endIndex:u.length-1,properties:{url:i.payload}}],textRuns:f?[f]:void 0},selection:{startOffset:l.startIndex,endOffset:l.endIndex+1,collapsed:!1},doc:c});return p?s.syncExecuteCommand(p.id,p.params):!1}},T7={type:L.MUTATION,id:`sheets.mutation.update-hyper-link`,handler(e,t){if(!t)return!1;let n=e.get(S7),{unitId:r,subUnitId:i,payload:a,id:o}=t;return n.updateHyperLink(r,i,o,a,!1)}},E7={type:L.MUTATION,id:`sheets.mutation.update-hyper-link-ref`,handler(e,t){if(!t)return!1;let n=e.get(S7),{unitId:r,subUnitId:i,id:a,row:o,column:s,silent:c}=t;return n.updateHyperLinkRef(r,i,a,{row:o,column:s},c)}},D7={type:L.MUTATION,id:`sheets.mutation.update-rich-hyper-link`,handler(e,t){var n;if(!t)return!1;let{unitId:r,subUnitId:i,row:a,col:o,id:s,url:c}=t,l=bG(e.get(z),{unitId:r,subUnitId:i});if(!l)return!1;let{worksheet:u}=l,d=u.getCellRaw(a,o),f=d==null||(n=d.p)==null||(n=n.body)==null||(n=n.customRanges)==null?void 0:n.find(e=>e.rangeType===Lp.HYPERLINK&&e.rangeId===s);return f&&(f.properties.url=c),!0}},wNt=`@univerjs/sheets-hyper-link`,TNt=`0.25.1`,ENt=`sheets-hyper-link.config`,DNt={},ONt=`SHEET_HYPER_LINK_PLUGIN`,O7=class extends P{constructor(e,t,n,r){super(),this._refRangeService=e,this._hyperLinkModel=t,this._selectionManagerService=n,this._commandService=r,y7(this,`_disposableMap`,new Map),y7(this,`_watchDisposableMap`,new Map),y7(this,`_rangeDisableMap`,new Map),y7(this,`_rangeWatcherMap`,new Map),y7(this,`_handlePositionChange`,(e,t,n,r,i)=>{let a={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row};return r?{redos:[{id:E7.id,params:{unitId:e,subUnitId:t,id:n.id,row:r.startRow,column:r.startColumn,silent:i}}],undos:[{id:E7.id,params:{unitId:e,subUnitId:t,id:n.id,row:a.startRow,column:a.startColumn,silent:i}}]}:{redos:[{id:w7.id,params:{unitId:e,subUnitId:t,id:n.id}}],undos:[{id:C7.id,params:{unitId:e,subUnitId:t,link:n}}]}}),this._initData(),this._initRefRange()}_registerPosition(e,t,n){let r=n.id,i={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row};this._disposableMap.set(r,this._refRangeService.registerRefRange(i,r=>{let a=sdt(i,r,{selectionManagerService:this._selectionManagerService}),o=Array.isArray(a)?a[0]:a;return o&&o.startColumn===i.startColumn&&o.startRow===i.startRow?{undos:[],redos:[]}:this._handlePositionChange(e,t,n,o,!1)},e,t))}_watchPosition(e,t,n){let r=n.id,i={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row};this._watchDisposableMap.set(r,this._refRangeService.watchRange(e,t,i,(r,i)=>{let{redos:a}=this._handlePositionChange(e,t,n,i,!0);Km(a,this._commandService,{onlyLocal:!0})},!0))}_unregisterPosition(e){this._disposableMap.get(e)?.dispose(),this._disposableMap.delete(e)}_unwatchPosition(e){this._watchDisposableMap.get(e)?.dispose(),this._watchDisposableMap.delete(e)}_registerRange(e,t,n,r=!1){if(n.startsWith(`#`)){let i=new URLSearchParams(n.slice(1)),a={gid:i.get(`gid`)??``,range:i.get(`range`)??``,rangeid:i.get(`rangeid`)??``};if(a.range&&a.gid){let i=a.gid,o=Cz(a.range).range;Kh(o)&&a.range!==`err`&&(this._rangeDisableMap.set(t,this._refRangeService.registerRefRange(o,r=>{let a=odt(o,r,{selectionManagerService:this._selectionManagerService});return a&&_z(a)===_z(o)?{redos:[],undos:[]}:{redos:[{id:T7.id,params:{unitId:e,subUnitId:i,id:t,payload:{payload:`#gid=${i}&range=${a?_z(a):`err`}`}}}],undos:[{id:T7.id,params:{unitId:e,subUnitId:i,id:t,payload:{payload:n}}}]}},e,i)),r||this._rangeWatcherMap.set(t,this._refRangeService.watchRange(e,i,o,(n,r)=>{this._hyperLinkModel.updateHyperLink(e,i,t,{payload:`#gid=${i}&range=${r?_z(r):`err`}`},!0)},!0)))}}}_unregisterRange(e){this._rangeDisableMap.get(e)?.dispose(),this._rangeDisableMap.delete(e)}_unwatchRange(e){this._rangeWatcherMap.get(e)?.dispose(),this._rangeWatcherMap.delete(e)}_initData(){this._hyperLinkModel.getAll().forEach(e=>{e.forEach(e=>{let{unitId:t,subUnitId:n,links:r}=e;r.forEach(e=>{this._registerPosition(t,n,e),this._watchPosition(t,n,e),this._registerRange(t,e.id,e.payload)})})})}_initRefRange(){this.disposeWithMe(this._hyperLinkModel.linkUpdate$.subscribe(e=>{switch(e.type){case`add`:this._registerPosition(e.unitId,e.subUnitId,e.payload),this._watchPosition(e.unitId,e.subUnitId,e.payload),this._registerRange(e.unitId,e.payload.id,e.payload.payload);break;case`remove`:this._unregisterPosition(e.payload.id),this._unwatchPosition(e.payload.id),this._unregisterRange(e.payload.id),this._unwatchRange(e.payload.id);break;case`updateRef`:{let{unitId:t,subUnitId:n,id:r,silent:i}=e,a=this._hyperLinkModel.getHyperLink(t,n,r);if(!a)return;this._unregisterPosition(r),this._registerPosition(t,n,a),i||(this._unwatchPosition(r),this._watchPosition(t,n,a));break}case`unload`:{let{unitLinks:t}=e;t.forEach(e=>{let{links:t}=e;t.forEach(e=>{this._unregisterPosition(e.id),this._unwatchPosition(e.id),this._unregisterRange(e.id),this._unwatchRange(e.id)})});break}case`update`:e.silent||this._unwatchRange(e.id),this._unregisterRange(e.id),this._registerRange(e.unitId,e.id,e.payload.payload,e.silent)}})),this.disposeWithMe(Wf(()=>{this._disposableMap.forEach(e=>{e.dispose()}),this._disposableMap.clear()}))}};O7=x7([b7(0,j(Qq)),b7(1,j(S7)),b7(2,j(HK)),b7(3,R)],O7);var k7=class extends P{constructor(e,t,n){super(),this._sheetInterceptorService=e,this._univerInstanceService=t,this._hyperLinkModel=n,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===lY.id){let t=e.params,n=t.unitId?this._univerInstanceService.getUnit(t.unitId):this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET);if(!n)return{redos:[],undos:[]};let r=n.getUnitId(),i=t.subUnitId||n.getActiveSheet()?.getSheetId();if(!i)return{redos:[],undos:[]};let a=this._hyperLinkModel.getSubUnit(r,i);return{redos:a.map(e=>({id:w7.id,params:{unitId:r,subUnitId:i,id:e.id}})),undos:a.map(e=>({id:C7.id,params:{unitId:r,subUnitId:i,link:e}}))}}return{redos:[],undos:[]}}}))}};k7=x7([b7(0,j(MG)),b7(1,z),b7(2,j(S7))],k7);var A7=class extends P{constructor(e,t,n){super(),this._commandService=e,this._univerInstanceService=t,this._refRangeService=n,y7(this,`_refRangeMap`,new Map),this._initWorkbookLoad(),this._initWorkbookUnload(),this._initSetRangesListener()}_enusreMap(e,t){let n=this._refRangeMap.get(e);n||(n=new Map,this._refRangeMap.set(e,n));let r=n.get(t);return r||(r=new Ih,n.set(t,r)),r}_isLegalRangeUrl(e,t){let n=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET);if(!n)return null;if(t&&t.startsWith(`#`)){let e=new URLSearchParams(t.slice(1)),r={gid:e.get(`gid`)??``,range:e.get(`range`)??``,rangeid:e.get(`rangeid`)??``};if(r.range&&r.gid){let e=r.gid,t=n.getSheetBySheetId(e);if(!t)return null;let i=Cz(r.range).range;if(Kh(i,t)&&r.range!==`err`)return{range:i,worksheet:t}}}return null}_registerRange(e,t,n,r,i){var a;let o=this._enusreMap(e,t);if((a=i.body)!=null&&(a=a.customRanges)!=null&&a.some(t=>t.rangeType===Lp.HYPERLINK&&this._isLegalRangeUrl(e,t.properties?.url))){var s;let a=new Gf,c=!1;(s=i.body)==null||(s=s.customRanges)==null||s.forEach(i=>{if(i.rangeType===Lp.HYPERLINK){let o=i.properties?.url,s=this._isLegalRangeUrl(e,o);if(s){let{range:l,worksheet:u}=s;c=!0,a.add(this._refRangeService.registerRefRange(l,a=>{let s=Xq(l,a);return s&&l_.equals(s,l)?{preRedos:[],preUndos:[],redos:[],undos:[]}:{preRedos:[{id:D7.id,params:{unitId:e,subUnitId:t,row:n,col:r,id:i.rangeId,url:`#gid=${t}&range=${s?_z(s):`err`}`}}],undos:[{id:D7.id,params:{unitId:e,subUnitId:t,row:n,col:r,id:i.rangeId,url:o}}],redos:[]}},u.getUnitId(),u.getSheetId()))}}}),c&&o.setValue(n,r,a)}}_initWorkbookLoad(){let e=e=>{let t=e.getUnitId();e.getSheets().forEach(e=>{let n=e.getSheetId(),r=this._enusreMap(t,n);e.getCellMatrix().forValue((e,i,a)=>{let o=r.getValue(e,i);o&&o.dispose(),a&&a.p&&this._registerRange(t,n,e,i,a.p)})})};this._univerInstanceService.getAllUnitsForType(M.UNIVER_SHEET).forEach(t=>{e(t)}),this.disposeWithMe(this._univerInstanceService.unitAdded$.subscribe(t=>{let{unit:n}=t;n.type===M.UNIVER_SHEET&&e(n)}))}_initWorkbookUnload(){this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(e=>{if(e.type===M.UNIVER_SHEET){let t=e,n=t.getUnitId();t.getSheets().forEach(e=>{let t=e.getSheetId();this._enusreMap(n,t).forValue((e,t,n)=>{n&&n.dispose()})}),this._refRangeMap.delete(n)}}))}_initSetRangesListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===sK.id){let{unitId:t,subUnitId:n,cellValue:r}=e.params,i=this._enusreMap(t,n);r&&new Ih(r).forValue((e,r,a)=>{let o=i.getValue(e,r);o&&o.dispose(),a&&a.p&&this._registerRange(t,n,e,r,a.p)})}})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===D7.id){let{unitId:t,subUnitId:n,row:r,col:i}=e.params,a=bG(this._univerInstanceService,{unitId:t,subUnitId:n}),o=this._enusreMap(t,n).getValue(r,i);if(o&&o.dispose(),a){let{worksheet:e}=a,o=e.getCellRaw(r,i);o&&o.p&&this._registerRange(t,n,r,i,o.p)}}}))}};A7=x7([b7(0,R),b7(1,z),b7(2,j(Qq))],A7);var j7=class extends P{constructor(e,t,n,r){super(),this._sheetInterceptorService=e,this._hyperLinkModel=t,this._selectionManagerService=n,this._univerInstanceService=r,this._initCommandInterceptor(),this._initAfterEditor()}_initCommandInterceptor(){this._initSetRangeValuesCommandInterceptor(),this._initClearSelectionCommandInterceptor()}_initSetRangeValuesCommandInterceptor(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===sq.id){let t=e.params,{unitId:n,subUnitId:r}=t,i=[],a=[];return t.cellValue&&new Ih(t.cellValue).forValue((e,t)=>{let o=this._hyperLinkModel.getHyperLinkByLocation(n,r,e,t);o&&(i.push({id:w7.id,params:{unitId:n,subUnitId:r,id:o.id}}),a.push({id:C7.id,params:{unitId:n,subUnitId:r,link:o}}))}),{undos:a,redos:i}}return{redos:[],undos:[]}}}))}_initClearSelectionCommandInterceptor(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===XJ.id||e.id===JK.id||e.id===YK.id){let t=[],n=[],r=this._selectionManagerService.getCurrentLastSelection(),i=bG(this._univerInstanceService,e.params);if(r&&i){let{unitId:e,subUnitId:a}=i;$g.foreach(r.range,(r,i)=>{let o=this._hyperLinkModel.getHyperLinkByLocation(e,a,r,i);o&&(t.push({id:w7.id,params:{unitId:e,subUnitId:a,id:o.id}}),n.push({id:C7.id,params:{unitId:e,subUnitId:a,link:o}}))})}return{redos:t,undos:n}}return{redos:[],undos:[]}}}))}_initAfterEditor(){this.disposeWithMe(this._sheetInterceptorService.writeCellInterceptor.intercept(AG,{handler:(e,t,n)=>{if(!e||e.p)return n(e);if(typeof e.v==`string`&&F.isLegalUrl(e.v)&&e.v[e.v.length-1]!==` `){let{unitId:r,subUnitId:i,row:a,col:o}=t,s=F.normalizeUrl(e.v),c=this._univerInstanceService.getUnit(r,M.UNIVER_SHEET)?.getSheetBySheetId(i);if(!c)return n(e);let l=c.getBlankCellDocumentModel(e,a,o);if(!l.documentModel)return n(e);let u=by.selection.replace({selection:{startOffset:0,endOffset:e.v.length,collapsed:!1},body:{dataStream:`${e.v}`,customRanges:[{startIndex:0,endIndex:e.v.length-1,rangeId:rp(),rangeType:Lp.HYPERLINK,properties:{url:s}}]},doc:l.documentModel});if(!u)return n(e);let d=l.documentModel.getBody();return Fv.apply(d,u.serialize()),n({...e,p:{id:tf,body:d,documentStyle:{pageSize:{width:1/0,height:1/0}}}})}return n(e)}}))}};j7=x7([b7(0,j(MG)),b7(1,j(S7)),b7(2,j(HK)),b7(3,z)],j7);var M7=class extends P{constructor(e){super(),this._commandService=e,this._registerCommands()}_registerCommands(){[vNt,SNt,bNt,CNt,xNt,yNt,C7,T7,w7,E7,D7].forEach(e=>{this._commandService.registerCommand(e)})}};M7=x7([b7(0,R)],M7);var N7=function(e){return e.SHEET=`gid`,e.RANGE=`range`,e.DEFINE_NAME=`rangeid`,e.INVALID=`invalid`,e.URL=`url`,e}({}),P7=class{constructor(e,t,n){this._univerInstanceService=e,this._localeService=t,this._definedNamesService=n}buildHyperLink(e,t){if(typeof e==`string`)return`#rangeid=${e}`;let n=`#gid=${t}`;return e&&(n+=`&range=${_z(e)}`),n}parseHyperLink(e){if(e.startsWith(`#`)){let t=new URLSearchParams(e.slice(1)),n={gid:t.get(`gid`)??``,range:t.get(`range`)??``,rangeid:t.get(`rangeid`)??``,unitid:t.get(`unitid`)??``},r=this._getURLName(n);return{type:r.type,name:r.name,url:e,searchObj:n}}return{type:`url`,name:e,url:e,searchObj:null}}_getURLName(e){let{gid:t,range:n,rangeid:r,unitid:i}=e,a=i?this._univerInstanceService.getUnit(i,M.UNIVER_SHEET):this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET),o={type:`invalid`,name:this._localeService.t(`sheets-hyper-link.message.refError`)};if(!a)return o;let s=t?a.getSheetBySheetId(t):a.getActiveSheet(),c=s?.getName()??``;if(n){if(!s)return o;let e=Cz(n).range;return Kh(e,s)&&n!==`err`?{type:`range`,name:vz(c,e)}:o}if(r){let e=this._definedNamesService.getValueById(a.getUnitId(),r);return e?{type:`rangeid`,name:e.formulaOrRefString}:o}if(t){let e=a.getSheetBySheetId(t);return e?{type:`gid`,name:e.getName()}:o}return o}};P7=x7([b7(0,z),b7(1,j(Xb)),b7(2,Mz)],P7);var F7=class extends ax{constructor(e=DNt,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{...r}=Qi({},DNt,this._config);this._configService.setConfig(ENt,r)}onStarting(){df(this._injector,[[S7],[P7],[M7],[O7],[j7],[k7],[A7]]),ff(this._injector,[[O7],[M7],[j7],[k7],[A7]])}};y7(F7,`pluginName`,ONt),y7(F7,`packageName`,wNt),y7(F7,`version`,TNt),y7(F7,`type`,M.UNIVER_SHEET),F7=x7([sx(mZ),b7(1,j(We)),b7(2,Mm)],F7);var kNt={"sheets-hyper-link":{message:{refError:`错误的引用`}}};function I7(e){return{type:e.type,operator:e.operator,formula1:e.formula1,formula2:e.formula2,allowBlank:e.allowBlank}}function L7(e){return{error:e.error,errorStyle:e.errorStyle,errorTitle:e.errorTitle,imeMode:e.imeMode,prompt:e.prompt,promptTitle:e.promptTitle,showDropDown:e.showDropDown,showErrorMessage:e.showErrorMessage,showInputMessage:e.showInputMessage,renderMode:e.renderMode,bizInfo:e.bizInfo}}var R7=function(e){return e[e.SETTING=0]=`SETTING`,e[e.RANGE=1]=`RANGE`,e[e.OPTIONS=2]=`OPTIONS`,e[e.ALL=3]=`ALL`,e}({});function z7(e){"@babel/helpers - typeof";return z7=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},z7(e)}function ANt(e,t){if(z7(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(z7(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function jNt(e){var t=ANt(e,`string`);return z7(t)==`symbol`?t:t+``}function B7(e,t,n){return(t=jNt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function V7(e,t){return function(n,r){t(n,r,e)}}function H7(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var U7=class extends P{constructor(e){super(),this._logService=e,B7(this,`_model`,new Map),B7(this,`_ruleChange$`,new ao),B7(this,`ruleChange$`,this._ruleChange$.asObservable()),B7(this,`ruleChangeDebounce$`,this.ruleChange$.pipe(Ks(20))),this.disposeWithMe({dispose:()=>{this._ruleChange$.complete()}})}_ensureMap(e,t){this._model.has(e)||this._model.set(e,new Map);let n=this._model.get(e);if(n.has(t))return n.get(t);let r={map:new Map,list:[]};return n.set(t,r),r}_addSubUnitRule(e,t,n){let{map:r,list:i}=e,a=(Array.isArray(t)?t:[t]).filter(e=>!r.has(e.uid));typeof n==`number`&&n<i.length?i.splice(n,0,...a):i.push(...a),a.forEach(e=>{r.set(e.uid,e)})}_removeSubUnitRule(e,t){let{map:n,list:r}=e,i=r.findIndex(e=>e.uid===t);i>-1&&(r.splice(i,1),n.delete(t))}_updateSubUnitRule(e,t,n){let{map:r,list:i}=e,a=r.get(t),o=i.findIndex(e=>t===e.uid);if(!a)throw Error(`Data validation rule is not found, ruleId: ${t}.`);let s={...a};switch(n.type){case 1:s.ranges=n.payload;break;case 0:Object.assign(s,I7(n.payload));break;case 2:Object.assign(s,L7(n.payload));break;case 3:Object.assign(s,n.payload)}return i[o]=s,r.set(t,s),s}_addRuleSideEffect(e,t,n,r){if(!this._ensureMap(e,t).map.get(n.uid))return{rule:n,type:`add`,unitId:e,subUnitId:t,source:r}}addRule(e,t,n,r,i){try{let a=this._ensureMap(e,t),o=(Array.isArray(n)?n:[n]).map(n=>this._addRuleSideEffect(e,t,n,r));this._addSubUnitRule(a,n,i),o.forEach(e=>{e&&this._ruleChange$.next(e)})}catch(e){this._logService.error(e)}}updateRule(e,t,n,r,i){try{let a=this._ensureMap(e,t),o=F.deepClone(a.map.get(n));if(!o)throw Error(`Data validation rule is not found, ruleId: ${n}.`);let s=this._updateSubUnitRule(a,n,r);this._ruleChange$.next({rule:s,type:`update`,unitId:e,subUnitId:t,source:i,updatePayload:r,oldRule:o})}catch(e){this._logService.error(e)}}removeRule(e,t,n,r){try{let i=this._ensureMap(e,t),a=i.map.get(n);a&&(this._removeSubUnitRule(i,n),this._ruleChange$.next({rule:a,type:`remove`,unitId:e,subUnitId:t,source:r}))}catch(e){this._logService.error(e)}}getRuleById(e,t,n){return this._ensureMap(e,t).map.get(n)}getRuleIndex(e,t,n){return this._ensureMap(e,t).list.findIndex(e=>e.uid===n)}getRules(e,t){return[...this._ensureMap(e,t).list]}getUnitRules(e){let t=this._model.get(e);if(!t)return[];let n=[];return t.forEach((e,t)=>{n.push([t,e.list])}),n}deleteUnitRules(e){this._model.delete(e)}getSubUnitIds(e){return Array.from(this._model.get(e)?.keys()??[])}getAll(){return Array.from(this._model.keys()).map(e=>[e,this.getUnitRules(e)])}};U7=H7([V7(0,Lm)],U7);var W7={type:L.MUTATION,id:`data-validation.mutation.addRule`,handler(e,t){if(!t)return!1;let{unitId:n,subUnitId:r,rule:i,index:a,source:o=`command`}=t;return e.get(U7).addRule(n,r,i,o,a),!0}},G7={type:L.MUTATION,id:`data-validation.mutation.removeRule`,handler(e,t){if(!t)return!1;let{unitId:n,subUnitId:r,ruleId:i,source:a=`command`}=t,o=e.get(U7);return Array.isArray(i)?i.forEach(e=>{o.removeRule(n,r,e,a)}):o.removeRule(n,r,i,a),!0}},K7={type:L.MUTATION,id:`data-validation.mutation.updateRule`,handler(e,t){if(!t)return!1;let{unitId:n,subUnitId:r,ruleId:i,payload:a,source:o=`command`}=t;return e.get(U7).updateRule(n,r,i,a,o),!0}},MNt=`SHEET_DATA_VALIDATION_PLUGIN`,q7=class extends P{constructor(e,t,n){super(),this._resourceManagerService=e,this._univerInstanceService=t,this._dataValidationModel=n,this._initSnapshot()}_initSnapshot(){let e=e=>{let t=this._dataValidationModel.getUnitRules(e),n={};return t?(t.forEach(([e,t])=>{n[e]=t}),JSON.stringify(n)):``},t=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:MNt,businesses:[M.UNIVER_SHEET],toJson:t=>e(t),parseJson:e=>t(e),onUnLoad:e=>{this._dataValidationModel.deleteUnitRules(e)},onLoad:(e,t)=>{Object.keys(t).forEach(n=>{t[n].forEach(t=>{this._dataValidationModel.addRule(e,n,t,`patched`)})})}}))}};q7=H7([V7(0,Py),V7(1,z),V7(2,j(U7))],q7);var NNt=`@univerjs/data-validation`,PNt=`0.25.1`,J7=class{constructor(){B7(this,`_validatorByScopes`,new Map),B7(this,`_validatorMap`,new Map),B7(this,`_validatorsChange$`,new so(void 0)),B7(this,`validatorsChange$`,this._validatorsChange$.asObservable())}_addValidatorToScope(e,t){this._validatorByScopes.has(t)||this._validatorByScopes.set(t,[]);let n=this._validatorByScopes.get(t);if(n.findIndex(t=>t.id===e.id)>-1)throw Error(`Validator item with the same id ${e.id} has already been added!`);n.push(e)}_removeValidatorFromScope(e,t){let n=this._validatorByScopes.get(t);if(!n)return;let r=n.findIndex(t=>t.id===e.id);r>-1&&n.splice(r,1)}register(e){return this._validatorMap.set(e.id,e),Array.isArray(e.scopes)?e.scopes.forEach(t=>{this._addValidatorToScope(e,t)}):this._addValidatorToScope(e,e.scopes),this._validatorsChange$.next(),Wf(()=>{this._validatorMap.delete(e.id),Array.isArray(e.scopes)?e.scopes.forEach(t=>{this._removeValidatorFromScope(e,t)}):this._removeValidatorFromScope(e,e.scopes),this._validatorsChange$.next()})}getValidatorItem(e){return this._validatorMap.get(e)}getValidatorsByScope(e){return this._validatorByScopes.get(e)}},FNt={type:L.COMMAND,id:`data-validation.command.addRule`,async handler(e,t){if(e.get(Lm).error("[Deprecated]: `AddDataValidationCommand` is deprecated, please use `AddSheetDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!t)return!1;let{rule:n,unitId:r,subUnitId:i}=t,a=e.get(R),o=e.get(fx),s={...t,rule:{...t.rule,ranges:[t.rule.range]}},c=[{id:W7.id,params:s}],l=[{id:G7.id,params:{unitId:r,subUnitId:i,ruleId:n.uid}}];return o.pushUndoRedo({unitID:r,redoMutations:c,undoMutations:l}),await a.executeCommand(W7.id,s),!0}},INt={type:L.COMMAND,id:`data-validation.command.removeRule`,handler(e,t){if(e.get(Lm).error("[Deprecated]: `RemoveDataValidationCommand` is deprecated, please use `RemoveSheetDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!t)return!1;let{unitId:n,subUnitId:r,ruleId:i}=t,a=e.get(R),o=e.get(fx),s=e.get(U7),c=[{id:G7.id,params:t}],l=[{id:W7.id,params:{unitId:n,subUnitId:r,rule:{...s.getRuleById(n,r,i)},index:s.getRuleIndex(n,r,i)}}];return o.pushUndoRedo({undoMutations:l,redoMutations:c,unitID:t.unitId}),a.executeCommand(G7.id,t),!0}},LNt={type:L.COMMAND,id:`data-validation.command.updateDataValidationSetting`,handler(e,t){if(e.get(Lm).warn("[Deprecated]: `UpdateDataValidationOptionsCommand` is deprecated, please use `UpdateSheetDataValidationOptionsCommand` in `@univerjs/sheets-data-validation` instead!"),!t)return!1;let n=e.get(R),r=e.get(fx),i=e.get(U7),{unitId:a,subUnitId:o,ruleId:s,options:c}=t,l=i.getRuleById(a,o,s);if(!l)return!1;let u={unitId:a,subUnitId:o,ruleId:s,payload:{type:2,payload:c}},d=[{id:K7.id,params:u}],f={unitId:a,subUnitId:o,ruleId:s,payload:{type:2,payload:L7(l)}},p=[{id:K7.id,params:f}];return r.pushUndoRedo({unitID:a,redoMutations:d,undoMutations:p}),n.executeCommand(K7.id,u),!0}},RNt={type:L.COMMAND,id:`data-validation.command.updateDataValidationOptions`,handler(e,t){if(e.get(Lm).error("[Deprecated]: `UpdateDataValidationSettingCommand` is deprecated, please use `UpdateSheetDataValidationSettingCommand` in `@univerjs/sheets-data-validation` instead!"),!t)return!1;let n=e.get(R),r=e.get(fx),i=e.get(U7),a=e.get(J7),{unitId:o,subUnitId:s,ruleId:c,setting:l}=t,u=a.getValidatorItem(l.type);if(!u)return!1;let d=i.getRuleById(o,s,c);if(!d)return!1;let f={...d,...l};if(!u.validatorFormula(f,o,s).success)return!1;let p={unitId:o,subUnitId:s,ruleId:c,payload:{type:0,payload:{...l,...u.normalizeFormula(f,o,s)}}},m=[{id:K7.id,params:p}],h={unitId:o,subUnitId:s,ruleId:c,payload:{type:0,payload:I7(d)}},g=[{id:K7.id,params:h}];return r.pushUndoRedo({unitID:o,redoMutations:m,undoMutations:g}),n.executeCommand(K7.id,p),!0}},zNt={type:L.COMMAND,id:`data-validation.command.removeAll`,handler(e,t){if(e.get(Lm).error("[Deprecated]: `RemoveAllDataValidationCommand` is deprecated, please use `RemoveSheetAllDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!t)return!1;let{unitId:n,subUnitId:r}=t,i=e.get(R),a=e.get(U7),o=e.get(fx),s=[...a.getRules(n,r)],c={unitId:n,subUnitId:r,ruleId:s.map(e=>e.uid)},l=[{id:G7.id,params:c}],u=[{id:W7.id,params:{unitId:n,subUnitId:r,rule:s}}];return o.pushUndoRedo({redoMutations:l,undoMutations:u,unitID:n}),i.executeCommand(G7.id,c),!0}},BNt=`data-validation.config`,VNt={},Y7=class extends ax{constructor(e=VNt,t,n,r){super(),this._config=e,this._injector=t,this._commandService=n,this._configService=r;let{...i}=Qi({},VNt,this._config);this._configService.setConfig(BNt,i)}onStarting(){[[U7],[J7],[q7]].forEach(e=>this._injector.add(e)),[FNt,zNt,LNt,RNt,INt,W7,K7,G7].forEach(e=>{this._commandService.registerCommand(e)})}onReady(){this._injector.get(q7)}};B7(Y7,`pluginName`,`UNIVER_DATA_VALIDATION_PLUGIN`),B7(Y7,`packageName`,NNt),B7(Y7,`version`,PNt),B7(Y7,`type`,M.UNIVER_SHEET),Y7=H7([V7(1,j(We)),V7(2,R),V7(3,Mm)],Y7),Mx.BETWEEN,Mx.NOT_BETWEEN,Mx.BETWEEN,Mx.EQUAL,Mx.GREATER_THAN,Mx.GREATER_THAN_OR_EQUAL,Mx.LESS_THAN,Mx.LESS_THAN_OR_EQUAL,Mx.NOT_BETWEEN,Mx.NOT_EQUAL;var HNt={[Mx.BETWEEN]:`data-validation.ruleName.between`,[Mx.EQUAL]:`data-validation.ruleName.equal`,[Mx.GREATER_THAN]:`data-validation.ruleName.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`data-validation.ruleName.greaterThanOrEqual`,[Mx.LESS_THAN]:`data-validation.ruleName.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`data-validation.ruleName.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`data-validation.ruleName.notBetween`,[Mx.NOT_EQUAL]:`data-validation.ruleName.notEqual`,NONE:`data-validation.ruleName.legal`},UNt={[Mx.BETWEEN]:`data-validation.errorMsg.between`,[Mx.EQUAL]:`data-validation.errorMsg.equal`,[Mx.GREATER_THAN]:`data-validation.errorMsg.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`data-validation.errorMsg.greaterThanOrEqual`,[Mx.LESS_THAN]:`data-validation.errorMsg.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`data-validation.errorMsg.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`data-validation.errorMsg.notBetween`,[Mx.NOT_EQUAL]:`data-validation.errorMsg.notEqual`,NONE:`data-validation.errorMsg.legal`},WNt=`{FORMULA1}`,GNt=`{FORMULA2}`,KNt=`{TYPE}`,qNt={[Mx.BETWEEN]:`data-validation.operators.between`,[Mx.EQUAL]:`data-validation.operators.equal`,[Mx.GREATER_THAN]:`data-validation.operators.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`data-validation.operators.greaterThanOrEqual`,[Mx.LESS_THAN]:`data-validation.operators.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`data-validation.operators.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`data-validation.operators.notBetween`,[Mx.NOT_EQUAL]:`data-validation.operators.notEqual`},X7=class{constructor(e,t){this.localeService=e,this.injector=t,B7(this,`offsetFormulaByRange`,!0),B7(this,`formulaInput`,void 0),B7(this,`canvasRender`,null),B7(this,`dropdownType`,void 0),B7(this,`optionsInput`,void 0),B7(this,`skipDefaultFontRender`,void 0)}get operatorNames(){return this.operators.map(e=>this.localeService.t(qNt[e]))}get titleStr(){return this.localeService.t(this.title)}generateRuleName(e){if(!e.operator)return this.localeService.t(HNt.NONE).replace(KNt,this.titleStr);let t=this.localeService.t(HNt[e.operator]).replace(WNt,e.formula1??``).replace(GNt,e.formula2??``);return`${this.titleStr} ${t}`}generateRuleErrorMessage(e,t){return e.operator?`${this.localeService.t(UNt[e.operator]).replace(WNt,e.formula1??``).replace(GNt,e.formula2??``)}`:this.localeService.t(UNt.NONE).replace(KNt,this.titleStr)}getExtraStyle(e,t,n,r,i){}getRuleFinalError(e,t){return e.showErrorMessage&&e.error?e.error:this.generateRuleErrorMessage(e,t)}isEmptyCellValue(e){return e===``||e==null}normalizeFormula(e,t,n){return{formula1:e.formula1,formula2:e.formula2}}async isValidType(e,t,n){return!0}transform(e,t,n){return e}async validatorIsEqual(e,t,n){let{formula1:r}=t,{value:i}=e;return Number.isNaN(r)?!0:i===r}async validatorIsNotEqual(e,t,n){let{formula1:r}=t;return Number.isNaN(r)?!0:e.value!==r}async validatorIsBetween(e,t,n){let{formula1:r,formula2:i}=t;if(Number.isNaN(r)||Number.isNaN(i))return!0;let a=Math.min(r,i),o=Math.max(r,i);return e.value>=a&&e.value<=o}async validatorIsNotBetween(e,t,n){let{formula1:r,formula2:i}=t;if(Number.isNaN(r)||Number.isNaN(i))return!0;let a=Math.min(r,i),o=Math.max(r,i);return e.value<a||e.value>o}async validatorIsGreaterThan(e,t,n){let{formula1:r}=t;return Number.isNaN(r)?!0:e.value>r}async validatorIsGreaterThanOrEqual(e,t,n){let{formula1:r}=t;return Number.isNaN(r)?!0:e.value>=r}async validatorIsLessThan(e,t,n){let{formula1:r}=t;return Number.isNaN(r)?!0:e.value<r}async validatorIsLessThanOrEqual(e,t,n){let{formula1:r}=t;return Number.isNaN(r)?!0:e.value<=r}async validator(e,t){let{value:n,unitId:r,subUnitId:i}=e,a=this.isEmptyCellValue(n),{allowBlank:o=!0,operator:s}=t;if(a)return o;let c=await this.parseFormula(t,r,i,e.row,e.column);if(!c.isFormulaValid||!await this.isValidType(e,c,t))return!1;if(!s)return!0;let l=this.transform(e,c,t);switch(s){case Mx.BETWEEN:return this.validatorIsBetween(l,c,t);case Mx.EQUAL:return this.validatorIsEqual(l,c,t);case Mx.GREATER_THAN:return this.validatorIsGreaterThan(l,c,t);case Mx.GREATER_THAN_OR_EQUAL:return this.validatorIsGreaterThanOrEqual(l,c,t);case Mx.LESS_THAN:return this.validatorIsLessThan(l,c,t);case Mx.LESS_THAN_OR_EQUAL:return this.validatorIsLessThanOrEqual(l,c,t);case Mx.NOT_BETWEEN:return this.validatorIsNotBetween(l,c,t);case Mx.NOT_EQUAL:return this.validatorIsNotEqual(l,c,t);default:throw Error(`Unknown operator.`)}}};X7=H7([V7(0,j(Xb)),V7(1,j(We))],X7);function Z7(e){"@babel/helpers - typeof";return Z7=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Z7(e)}function JNt(e,t){if(Z7(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Z7(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function YNt(e){var t=JNt(e,`string`);return Z7(t)==`symbol`?t:t+``}function Q7(e,t,n){return(t=YNt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $7(e,t){return function(n,r){t(n,r,e)}}function e9(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var t9=class extends P{constructor(e,t,n){super(),this._commandService=e,this._univerInstanceService=t,this._sheetDataValidationModel=n,Q7(this,`_cacheMatrix`,new Map),Q7(this,`_dirtyRanges$`,new ao),Q7(this,`dirtyRanges$`,this._dirtyRanges$.asObservable()),this._initDirtyRanges(),this._initSheetRemove()}_initDirtyRanges(){this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(e.id===sK.id&&!t?.onlyLocal){let{cellValue:t,unitId:n,subUnitId:r}=e.params;if(t){let e=new Ih(t).getDataRange();if(e.endRow===-1)return;let i=this._sheetDataValidationModel.getRules(n,r),a=[];for(let e of i)a.push(...e.ranges);let o=[];for(let t of a){let n=a_(t,e);n&&o.push(n)}o.length&&this.markRangeDirty(n,r,o,!0)}}}))}_initSheetRemove(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===Oq.id){var t;let{unitId:n,subUnitId:r}=e.params;(t=this._cacheMatrix.get(n))==null||t.delete(r)}})),this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(e=>{e.type===M.UNIVER_SHEET&&this._cacheMatrix.delete(e.getUnitId())}))}_ensureCache(e,t){let n=this._cacheMatrix.get(e);n||(n=new Map,this._cacheMatrix.set(e,n));let r=n.get(t);return r||(r=new Ih,n.set(t,r)),r}ensureCache(e,t){return this._ensureCache(e,t)}addRule(e,t,n){this.markRangeDirty(e,t,n.ranges)}removeRule(e,t,n){this._deleteRange(e,t,n.ranges)}markRangeDirty(e,t,n,r){let i=this._ensureCache(e,t);n.forEach(e=>{$g.foreach(e,(e,t)=>{i.getValue(e,t)!==void 0&&i.setValue(e,t,void 0)})}),this._dirtyRanges$.next({unitId:e,subUnitId:t,ranges:n,isSetRange:r})}_deleteRange(e,t,n){let r=this._ensureCache(e,t);n.forEach(e=>{$g.foreach(e,(e,t)=>{r.realDeleteValue(e,t)})}),this._dirtyRanges$.next({unitId:e,subUnitId:t,ranges:n})}getValue(e,t,n,r){return this._ensureCache(e,t).getValue(n,r)}};t9=e9([$7(0,j(R)),$7(1,j(z)),$7(2,j(U7))],t9);function n9(e){var t;return e==null||(t=e[0])==null||(t=t[0])==null?void 0:t.v}function r9(e){var t;return e==null||(t=e[0])==null?void 0:t[0]}function i9(e){return!TR.has(e)}function a9(e,t){return t.getValidatorItem(e)?.offsetFormulaByRange??!1}var o9=class extends P{constructor(e,t,n,r,i){super(),this._instanceSrv=e,this._registerOtherFormulaService=t,this._dataValidationModel=n,this._dataValidationCacheService=r,this._validatorRegistryService=i,Q7(this,`_ruleFormulaMap`,new Map),Q7(this,`_ruleFormulaMap2`,new Map),this._initFormulaResultHandler(),this._initDirtyRanges()}dispose(){super.dispose(),this._ruleFormulaMap.clear(),this._ruleFormulaMap2.clear()}_initFormulaResultHandler(){this.disposeWithMe(this._registerOtherFormulaService.formulaResult$.subscribe(e=>{for(let t in e){let n=e[t];if(this._instanceSrv.getUnitType(t)===M.UNIVER_SHEET)for(let e in n){let r=n[e],{ruleFormulaMap:i}=this._ensureMaps(t,e);r.forEach(n=>{let r=i.get(n.extra?.ruleId),a=this._dataValidationModel.getRuleById(t,e,n.extra?.ruleId);a&&r&&this._dataValidationCacheService.markRangeDirty(t,e,a.ranges)})}}}))}_ensureMaps(e,t){let n=this._ruleFormulaMap.get(e),r=this._ruleFormulaMap2.get(e);n||(n=new Map,this._ruleFormulaMap.set(e,n)),r||(r=new Map,this._ruleFormulaMap2.set(e,r));let i=n.get(t);i||(i=new Map,n.set(t,i));let a=r.get(t);return a||(a=new Map,r.set(t,a)),{ruleFormulaMap:i,ruleFormulaMap2:a}}_registerFormula(e,t,n,r,i){return this._registerOtherFormulaService.registerFormulaWithRange(e,t,r,i,{ruleId:n},Oit.DATA_VALIDATION_CUSTOM,n)}_handleDirtyRanges(e,t,n){this._dataValidationModel.getRules(e,t).forEach(r=>{let i=r.ranges;l_.doAnyRangesIntersect(i,n)&&this.makeRuleDirty(e,t,r.uid)})}_initDirtyRanges(){this.disposeWithMe(this._dataValidationCacheService.dirtyRanges$.subscribe(e=>{e.isSetRange&&this._handleDirtyRanges(e.unitId,e.subUnitId,e.ranges)}))}deleteByRuleId(e,t,n){let{ruleFormulaMap:r,ruleFormulaMap2:i}=this._ensureMaps(e,t),a=this._dataValidationModel.getRuleById(e,t,n),o=r.get(n);if(!a||!o)return;let s=r.get(n);s&&(r.delete(n),this._registerOtherFormulaService.deleteFormula(e,t,[s.formulaId]));let c=i.get(n);c&&(i.delete(n),this._registerOtherFormulaService.deleteFormula(e,t,[c.formulaId]))}_addFormulaByRange(e,t,n,r,i,a){let{ruleFormulaMap:o,ruleFormulaMap2:s}=this._ensureMaps(e,t),c=a[0].startRow,l=a[0].startColumn;if(r&&Vh(r)){let i=this._registerFormula(e,t,n,r,a);o.set(n,{formula:r,originCol:l,originRow:c,formulaId:i})}if(i&&Vh(i)){let r=this._registerFormula(e,t,n,i,a);s.set(n,{formula:i,originCol:l,originRow:c,formulaId:r})}}addRule(e,t,n){if(a9(n.type,this._validatorRegistryService)){let{ranges:r,formula1:i,formula2:a,uid:o}=n;this._addFormulaByRange(e,t,o,i,a,r)}}async getCellFormulaValue(e,t,n,r,i){var a;let{ruleFormulaMap:o}=this._ensureMaps(e,t),s=o.get(n);if(!s)return Promise.resolve(void 0);let c=await this._registerOtherFormulaService.getFormulaValue(e,t,s.formulaId),{originRow:l,originCol:u}=s,d=r-l,f=i-u;return r9(c==null||(a=c.result)==null||(a=a[d])==null?void 0:a[f])}async getCellFormula2Value(e,t,n,r,i){var a;let{ruleFormulaMap2:o}=this._ensureMaps(e,t),s=o.get(n);if(!s)return Promise.resolve(void 0);let c=await this._registerOtherFormulaService.getFormulaValue(e,t,s.formulaId),{originRow:l,originCol:u}=s,d=r-l,f=i-u;return r9(c==null||(a=c.result)==null||(a=a[d])==null?void 0:a[f])}getCellFormulaValueSync(e,t,n,r,i){var a;let{ruleFormulaMap:o}=this._ensureMaps(e,t),s=o.get(n);if(!s)return;let c=this._registerOtherFormulaService.getFormulaValueSync(e,t,s.formulaId),{originRow:l,originCol:u}=s,d=r-l,f=i-u;return r9(c==null||(a=c.result)==null||(a=a[d])==null?void 0:a[f])}getCellFormula2ValueSync(e,t,n,r,i){var a;let{ruleFormulaMap2:o}=this._ensureMaps(e,t),s=o.get(n);if(!s)return;let c=this._registerOtherFormulaService.getFormulaValueSync(e,t,s.formulaId),{originRow:l,originCol:u}=s,d=r-l,f=i-u;return r9(c==null||(a=c.result)==null||(a=a[d])==null?void 0:a[f])}getRuleFormulaInfo(e,t,n){let{ruleFormulaMap:r}=this._ensureMaps(e,t);return r.get(n)}makeRuleDirty(e,t,n){var r,i;let a=(r=this._ruleFormulaMap.get(e))==null||(r=r.get(t))==null?void 0:r.get(n),o=(i=this._ruleFormulaMap2.get(e))==null||(i=i.get(t))==null?void 0:i.get(n);a&&this._registerOtherFormulaService.markFormulaDirty(e,t,a.formulaId),o&&this._registerOtherFormulaService.markFormulaDirty(e,t,o.formulaId)}};o9=e9([$7(0,z),$7(1,j(_U)),$7(2,j(U7)),$7(3,j(t9)),$7(4,j(J7))],o9);function s9(e){return Vb(e)}function XNt(e){return String(s9(e)??``)}var c9=class extends P{constructor(e,t){super(),this._injector=e,this._dataValidationModel=t,Q7(this,`_cache`,new Map),this._initRuleChangeListener()}_initRuleChangeListener(){this.disposeWithMe(this._dataValidationModel.ruleChange$.subscribe(e=>{(e.type===`remove`||e.type===`update`)&&this.markRuleDirty(e.unitId,e.subUnitId,e.rule.uid)}))}getOrCompute(e,t,n){let r=this.getCache(e,t,n.uid);if(r)return r;let i=this._injector.get(l9).getRuleFormulaResultSync(e,t,n.uid);return this.computeAndCache(e,t,n,i)}_ensureCache(e,t){let n=this._cache.get(e);n||(n=new Map,this._cache.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}getCache(e,t,n){var r;return(r=this._cache.get(e))==null||(r=r.get(t))==null?void 0:r.get(n)}setCache(e,t,n,r){this._ensureCache(e,t).set(n,r)}markRuleDirty(e,t,n){var r;(r=this._cache.get(e))==null||(r=r.get(t))==null||r.delete(n)}clear(){this._cache.clear()}computeAndCache(e,t,n,r){var i;let{formula1:a=``,formula2:o=``}=n,s=Vh(a)?this._getRuleFormulaResultSet(r==null||(i=r[0])==null||(i=i.result)==null||(i=i[0])==null?void 0:i[0]):FK(a),c=o.split(`,`),l=s.map((e,t)=>({label:e,color:c[t]||``})),u={};for(let e of l)e.color&&(u[e.label]=e.color);let d={list:s,listWithColor:l,colorMap:u,set:new Set(s)};return this.setCache(e,t,n.uid,d),d}_getRuleFormulaResultSet(e){if(!e)return[];let t=new Set;for(let r=0,i=e.length;r<i;r++){let i=e[r];if(i)for(let e=0,r=i.length;e<r;e++){let r=i[e],a=s9(r);if(a!=null){var n;if(typeof a!=`string`&&typeof r?.s==`object`&&(n=r.s)!=null&&(n=n.n)!=null&&n.pattern){t.add(rd(r.s.n.pattern,a,{throws:!1}));continue}let e=typeof a==`string`?a:String(a);i9(e)&&t.add(e)}}}return[...t]}};c9=e9([$7(0,j(We)),$7(1,j(U7))],c9);var l9=class extends P{constructor(e,t,n,r,i,a){super(),this._instanceService=e,this._registerOtherFormulaService=t,this._dataValidationCacheService=n,this._dataValidationModel=r,this._validatorRegistryService=i,this._listCacheService=a,Q7(this,`_formulaRuleMap`,new Map),this._initFormulaResultHandler()}_initFormulaResultHandler(){this.disposeWithMe(this._registerOtherFormulaService.formulaResult$.subscribe(e=>{for(let t in e){let n=e[t];if(this._instanceService.getUnitType(t)===M.UNIVER_SHEET)for(let e in n){let r=n[e],i=this._ensureRuleFormulaMap(t,e);r.forEach(n=>{let r=n.extra?.ruleId;if(r&&i.get(r)){let n=this._dataValidationModel.getRuleById(t,e,r);n&&(this._listCacheService.markRuleDirty(t,e,r),this._dataValidationCacheService.markRangeDirty(t,e,n.ranges))}})}}}))}_ensureRuleFormulaMap(e,t){let n=this._formulaRuleMap.get(e);n||(n=new Map,this._formulaRuleMap.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}_registerSingleFormula(e,t,n,r){return this._registerOtherFormulaService.registerFormulaWithRange(e,t,n,[{startColumn:0,endColumn:0,startRow:0,endRow:0}],{ruleId:r},Oit.DATA_VALIDATION,r)}addRule(e,t,n){if(!a9(n.type,this._validatorRegistryService)&&n.type!==Fx.CHECKBOX){let{formula1:r,formula2:i,uid:a}=n,o=Vh(r),s=Vh(i);if(!o&&!s)return;let c=this._ensureRuleFormulaMap(e,t),l=[void 0,void 0];o&&(l[0]={id:this._registerSingleFormula(e,t,r,a),text:r}),s&&(l[1]={id:this._registerSingleFormula(e,t,i,a),text:i}),c.set(a,l)}}removeRule(e,t,n){let r=this._ensureRuleFormulaMap(e,t).get(n);if(!r)return;let[i,a]=r,o=[i?.id,a?.id].filter(Boolean);o.length&&this._registerOtherFormulaService.deleteFormula(e,t,o)}getRuleFormulaResult(e,t,n){let r=this._ensureRuleFormulaMap(e,t).get(n);if(!r)return Promise.resolve(null);let i=async n=>n&&this._registerOtherFormulaService.getFormulaValue(e,t,n.id);return Promise.all([i(r[0]),i(r[1])])}getRuleFormulaResultSync(e,t,n){let r=this._ensureRuleFormulaMap(e,t).get(n);if(r)return r.map(n=>{if(n)return this._registerOtherFormulaService.getFormulaValueSync(e,t,n.id)})}getRuleFormulaInfo(e,t,n){return this._ensureRuleFormulaMap(e,t).get(n)}};l9=e9([$7(0,z),$7(1,j(_U)),$7(2,j(t9)),$7(3,j(U7)),$7(4,j(J7)),$7(5,j(c9))],l9);var ZNt=class e{constructor(e,t,n,r,i=!1){this._unitId=t,this._subUnitId=n,this._univerInstanceService=r,this._disableTree=i,Q7(this,`_map`,void 0),Q7(this,`_tree`,new hd),Q7(this,`_dirty`,!0),Q7(this,`_buildTree`,()=>{if(!this._dirty||this._disableTree)return;this._tree.clear();let e=[];this._map.forEach((t,n)=>{t.forEach(t=>{e.push({minX:t.startRow,maxX:t.endRow,minY:t.startColumn,maxY:t.endColumn,ruleId:n})})}),this._tree.load(e),this._dirty=!1}),Q7(this,`_debonceBuildTree`,Wi(this._buildTree,0)),this._map=e,this._buildTree()}get _worksheet(){return this._univerInstanceService.getUnit(this._unitId,M.UNIVER_SHEET)?.getSheetBySheetId(this._subUnitId)}_addRule(e,t){if(!this._worksheet)return;let n=l_.mergeRanges(t.map(e=>$g.transformRange(e,this._worksheet)));this._map.forEach((e,t)=>{let r=l_.subtractMulti(e,n);r.length===0?this._map.delete(t):this._map.set(t,r)}),this._dirty=!0,this._map.set(e,n),this._debonceBuildTree()}addRule(e){this._addRule(e.uid,e.ranges)}removeRange(e){if(!this._worksheet)return;let t=e.map(e=>$g.transformRange(e,this._worksheet));this._map.forEach((e,n)=>{let r=l_.subtractMulti(e,t);r.length===0?this._map.delete(n):this._map.set(n,r)}),this._dirty=!0,this._debonceBuildTree()}_removeRule(e){this._map.delete(e),this._dirty=!0,this._debonceBuildTree()}removeRule(e){this._removeRule(e.uid)}updateRange(e,t){this._removeRule(e),this._addRule(e,t)}addRangeRules(e){e.forEach(({id:e,ranges:t})=>{if(!t.length)return;let n=this._map.get(e);n?(this._map.set(e,l_.mergeRanges([...n,...t])),n=this._map.get(e)):(n=t,this._map.set(e,n)),this._map.forEach((n,r)=>{if(r===e)return;let i=l_.subtractMulti(n,t);i.length===0?this._map.delete(r):this._map.set(r,i)})}),this._dirty=!0,this._debonceBuildTree()}diff(e){let t=[],n=0;return e.forEach((e,r)=>{let i=this._map.get(e.uid)??[],a=e.ranges;i.length!==0&&(i.length!==a.length||i.some((e,t)=>!l_.equals(e,a[t])))&&t.push({type:`update`,ruleId:e.uid,oldRanges:a,newRanges:l_.sort(i),rule:e}),i.length===0&&(t.push({type:`delete`,rule:e,index:r-n}),n++)}),t}diffWithAddition(e,t){let n=[],r=0;return e.forEach((e,t)=>{let i=this._map.get(e.uid)??[],a=e.ranges;i.length!==0&&(i.length!==a.length||i.some((e,t)=>!l_.equals(e,a[t])))&&n.push({type:`update`,ruleId:e.uid,oldRanges:a,newRanges:l_.sort(i),rule:e}),i.length===0&&(n.push({type:`delete`,rule:e,index:t-r}),r++)}),Array.from(t).forEach(e=>{let t=this._map.get(e.uid)??[];n.push({type:`add`,rule:{...e,ranges:l_.sort(t)}})}),n}clone(){return new e(new Map(F.deepClone(Array.from(this._map.entries()))),this._unitId,this._subUnitId,this._univerInstanceService,!0)}getValue(e,t){this._dirty&&this._buildTree();let n=this._tree.search({minX:e,maxX:e,minY:t,maxY:t});return n.length>0?n[0].ruleId:void 0}},u9=class extends P{constructor(e,t,n,r,i,a,o){super(),this._dataValidationModel=e,this._univerInstanceService=t,this._dataValidatorRegistryService=n,this._dataValidationCacheService=r,this._dataValidationFormulaService=i,this._dataValidationCustomFormulaService=a,this._commandService=o,Q7(this,`_ruleMatrixMap`,new Map),Q7(this,`_validStatusChange$`,new ao),Q7(this,`_ruleChange$`,new ao),Q7(this,`ruleChange$`,this._ruleChange$.asObservable()),Q7(this,`validStatusChange$`,this._validStatusChange$.asObservable()),this._initRuleUpdateListener(),this.disposeWithMe(()=>{this._ruleChange$.complete(),this._validStatusChange$.complete()}),this._initUniverInstanceListener()}_initUniverInstanceListener(){this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(e=>{this._ruleMatrixMap.delete(e.getUnitId())})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===Oq.id){let{unitId:t,subUnitId:n}=e.params,r=this._ruleMatrixMap.get(t);r&&r.delete(n)}}))}_initRuleUpdateListener(){let e=this._dataValidationModel.getAll();for(let[t,n]of e)for(let[e,r]of n)for(let n of r)this._addRule(t,e,n),this._ruleChange$.next({type:`add`,unitId:t,subUnitId:e,rule:n,source:`patched`});this.disposeWithMe(this._dataValidationModel.ruleChange$.subscribe(e=>{switch(e.type){case`add`:this._addRule(e.unitId,e.subUnitId,e.rule);break;case`update`:this._updateRule(e.unitId,e.subUnitId,e.rule.uid,e.oldRule,e.updatePayload);break;case`remove`:this._removeRule(e.unitId,e.subUnitId,e.rule)}this._ruleChange$.next(e)}))}_ensureRuleMatrix(e,t){let n=this._ruleMatrixMap.get(e);n||(n=new Map,this._ruleMatrixMap.set(e,n));let r=n.get(t);return r||(r=new ZNt(new Map,e,t,this._univerInstanceService),n.set(t,r)),r}_addRuleSideEffect(e,t,n){this._ensureRuleMatrix(e,t).addRule(n),this._dataValidationCacheService.addRule(e,t,n),this._dataValidationFormulaService.addRule(e,t,n),this._dataValidationCustomFormulaService.addRule(e,t,n)}_addRule(e,t,n){(Array.isArray(n)?n:[n]).forEach(n=>{this._addRuleSideEffect(e,t,n)})}_updateRule(e,t,n,r,i){let a=this._ensureRuleMatrix(e,t),o={...r,...i.payload};i.type===R7.RANGE?a.updateRange(n,i.payload):i.type===R7.ALL&&a.updateRange(n,i.payload.ranges),this._dataValidationCacheService.removeRule(e,t,r),this._dataValidationCacheService.addRule(e,t,o),this._dataValidationFormulaService.removeRule(e,t,r.uid),this._dataValidationFormulaService.addRule(e,t,o),this._dataValidationCustomFormulaService.deleteByRuleId(e,t,n),this._dataValidationCustomFormulaService.addRule(e,t,o)}_removeRule(e,t,n){this._ensureRuleMatrix(e,t).removeRule(n),this._dataValidationCacheService.removeRule(e,t,n),this._dataValidationCustomFormulaService.deleteByRuleId(e,t,n.uid)}getValidator(e){return this._dataValidatorRegistryService.getValidatorItem(e)}getRuleIdByLocation(e,t,n,r){return this._ensureRuleMatrix(e,t).getValue(n,r)}getRuleByLocation(e,t,n,r){let i=this.getRuleIdByLocation(e,t,n,r);if(i)return this._dataValidationModel.getRuleById(e,t,i)}validator(e,t,n){let{col:r,row:i,unitId:a,subUnitId:o,worksheet:s}=t,c=(t,s)=>{n&&n(t,s),s&&this._validStatusChange$.next({unitId:a,subUnitId:o,ruleId:e.uid,status:t,row:i,col:r})},l=s.getCellValueOnly(i,r),u=this.getValidator(e.type),d=s.getCellRaw(i,r),f=s9(d);if(u){let n=this._dataValidationCacheService.ensureCache(a,o),s=n.getValue(i,r);return s==null?(n.setValue(i,r,Px.VALIDATING),u.validator({value:f,unitId:a,subUnitId:o,row:i,column:r,worksheet:t.worksheet,workbook:t.workbook,interceptValue:s9(l),t:d?.t},e).then(e=>{let t=e?Px.VALID:Px.INVALID,a=n.getValue(i,r);t===Px.VALID?n.realDeleteValue(i,r):n.setValue(i,r,t),c(t,s!==a)}),Px.VALIDATING):(c(s??Px.VALID,!1),s??Px.VALID)}return c(Px.VALID,!1),Px.VALID}getRuleObjectMatrix(e,t){return this._ensureRuleMatrix(e,t)}getRuleById(e,t,n){return this._dataValidationModel.getRuleById(e,t,n)}getRuleIndex(e,t,n){return this._dataValidationModel.getRuleIndex(e,t,n)}getRules(e,t){return[...this._dataValidationModel.getRules(e,t)]}getUnitRules(e){return this._dataValidationModel.getUnitRules(e)}deleteUnitRules(e){return this._dataValidationModel.deleteUnitRules(e)}getSubUnitIds(e){return this._dataValidationModel.getSubUnitIds(e)}getAll(){return this._dataValidationModel.getAll()}};u9=e9([$7(0,j(U7)),$7(1,z),$7(2,j(J7)),$7(3,j(t9)),$7(4,j(l9)),$7(5,j(o9)),$7(6,R)],u9);var QNt={[Mx.BETWEEN]:`sheets-data-validation.operators.between`,[Mx.EQUAL]:`sheets-data-validation.operators.equal`,[Mx.GREATER_THAN]:`sheets-data-validation.operators.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`sheets-data-validation.operators.greaterThanOrEqual`,[Mx.LESS_THAN]:`sheets-data-validation.operators.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`sheets-data-validation.operators.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`sheets-data-validation.operators.notBetween`,[Mx.NOT_EQUAL]:`sheets-data-validation.operators.notEqual`},$Nt={[Mx.BETWEEN]:`sheets-data-validation.ruleName.between`,[Mx.EQUAL]:`sheets-data-validation.ruleName.equal`,[Mx.GREATER_THAN]:`sheets-data-validation.ruleName.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`sheets-data-validation.ruleName.greaterThanOrEqual`,[Mx.LESS_THAN]:`sheets-data-validation.ruleName.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`sheets-data-validation.ruleName.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`sheets-data-validation.ruleName.notBetween`,[Mx.NOT_EQUAL]:`sheets-data-validation.ruleName.notEqual`,NONE:`sheets-data-validation.ruleName.legal`},d9={[Mx.BETWEEN]:`sheets-data-validation.errorMsg.between`,[Mx.EQUAL]:`sheets-data-validation.errorMsg.equal`,[Mx.GREATER_THAN]:`sheets-data-validation.errorMsg.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`sheets-data-validation.errorMsg.greaterThanOrEqual`,[Mx.LESS_THAN]:`sheets-data-validation.errorMsg.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`sheets-data-validation.errorMsg.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`sheets-data-validation.errorMsg.notBetween`,[Mx.NOT_EQUAL]:`sheets-data-validation.errorMsg.notEqual`,NONE:`sheets-data-validation.errorMsg.legal`},ePt={[Mx.BETWEEN]:`sheets-data-validation.textLength.errorMsg.between`,[Mx.EQUAL]:`sheets-data-validation.textLength.errorMsg.equal`,[Mx.GREATER_THAN]:`sheets-data-validation.textLength.errorMsg.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`sheets-data-validation.textLength.errorMsg.greaterThanOrEqual`,[Mx.LESS_THAN]:`sheets-data-validation.textLength.errorMsg.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`sheets-data-validation.textLength.errorMsg.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`sheets-data-validation.textLength.errorMsg.notBetween`,[Mx.NOT_EQUAL]:`sheets-data-validation.textLength.errorMsg.notEqual`},tPt=`{FORMULA1}`,nPt=`{FORMULA2}`,rPt=`{TYPE}`,f9=class extends X7{get operatorNames(){return this.operators.map(e=>this.localeService.t(QNt[e]))}generateRuleName(e){if(!e.operator)return this.localeService.t($Nt.NONE).replace(rPt,this.titleStr);let t=this.localeService.t($Nt[e.operator]).replace(tPt,e.formula1??``).replace(nPt,e.formula2??``);return`${this.titleStr} ${t}`}generateRuleErrorMessage(e,t){return e.operator?`${this.localeService.t(d9[e.operator]).replace(tPt,e.formula1??``).replace(nPt,e.formula2??``)}`:this.localeService.t(d9.NONE).replace(rPt,this.titleStr)}};function iPt(e,t){return F.isBlank(e)?t.t(`sheets-data-validation.validFail.value`):Vh(e)?t.t(`sheets-data-validation.validFail.primitive`):``}var p9=e=>F.isDefine(e)&&String(e).toLowerCase()===`true`?`1`:String(e).toLowerCase()===`false`?`0`:e,aPt=class extends f9{constructor(...e){super(...e),Q7(this,`id`,Fx.CHECKBOX),Q7(this,`title`,`sheets-data-validation.checkbox.title`),Q7(this,`operators`,[]),Q7(this,`scopes`,[`sheet`]),Q7(this,`order`,41),Q7(this,`offsetFormulaByRange`,!1),Q7(this,`_formulaService`,this.injector.get(l9)),Q7(this,`skipDefaultFontRender`,(e,t,n)=>{let{unitId:r,subUnitId:i}=n,{formula1:a,formula2:o}=this.parseFormulaSync(e,r,i),s=`${t??``}`;return!s||s===`${a}`||s===`${o}`})}validatorFormula(e,t,n){let{formula1:r,formula2:i}=e,a=r===i;if(F.isBlank(r)&&F.isBlank(i))return{success:!0};if(a)return{success:!1,formula1:this.localeService.t(`sheets-data-validation.validFail.checkboxEqual`),formula2:this.localeService.t(`sheets-data-validation.validFail.checkboxEqual`)};let o=iPt(r,this.localeService),s=iPt(i,this.localeService);return{success:!o&&!s,formula1:o,formula2:s}}async parseFormula(e,t,n){var r,i;let{formula1:a=1,formula2:o=0}=e,s=await this._formulaService.getRuleFormulaResult(t,n,e.uid),c=Vh(a)?n9(s==null||(r=s[0])==null||(r=r.result)==null?void 0:r[0][0]):a,l=Vh(o)?n9(s==null||(i=s[1])==null||(i=i.result)==null?void 0:i[0][0]):o,u=i9(String(c))&&i9(String(l));return{formula1:p9(c),formula2:p9(l),originFormula1:c,originFormula2:l,isFormulaValid:u}}getExtraStyle(e,t){return{tb:Op.CLIP}}parseFormulaSync(e,t,n){var r,i;let{formula1:a=1,formula2:o=0}=e,s=this._formulaService.getRuleFormulaResultSync(t,n,e.uid),c=Vh(a)?n9(s==null||(r=s[0])==null||(r=r.result)==null?void 0:r[0][0]):a,l=Vh(o)?n9(s==null||(i=s[1])==null||(i=i.result)==null?void 0:i[0][0]):o,u=i9(String(c))&&i9(String(l));return{formula1:p9(c),formula2:p9(l),originFormula1:c,originFormula2:l,isFormulaValid:u}}async isValidType(e,t,n){let{value:r,unitId:i,subUnitId:a}=e,{formula1:o,formula2:s,originFormula1:c,originFormula2:l}=await this.parseFormula(n,i,a);return!F.isDefine(o)||!F.isDefine(s)||F.isDefine(r)&&(String(r)===String(o)||String(r)===String(s)||String(r)===String(c??``)||String(r)===String(l??``))}generateRuleErrorMessage(e){return this.localeService.t(`sheets-data-validation.checkbox.error`)}generateRuleName(e){return this.titleStr}},oPt={[Mx.BETWEEN]:`sheets-data-validation.date.operators.between`,[Mx.EQUAL]:`sheets-data-validation.date.operators.equal`,[Mx.GREATER_THAN]:`sheets-data-validation.date.operators.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`sheets-data-validation.date.operators.greaterThanOrEqual`,[Mx.LESS_THAN]:`sheets-data-validation.date.operators.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`sheets-data-validation.date.operators.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`sheets-data-validation.date.operators.notBetween`,[Mx.NOT_EQUAL]:`sheets-data-validation.date.operators.notEqual`};Mx.BETWEEN,Mx.EQUAL,Mx.GREATER_THAN,Mx.GREATER_THAN_OR_EQUAL,Mx.LESS_THAN,Mx.LESS_THAN_OR_EQUAL,Mx.NOT_BETWEEN,Mx.NOT_EQUAL;var sPt={[Mx.BETWEEN]:`sheets-data-validation.date.ruleName.between`,[Mx.EQUAL]:`sheets-data-validation.date.ruleName.equal`,[Mx.GREATER_THAN]:`sheets-data-validation.date.ruleName.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`sheets-data-validation.date.ruleName.greaterThanOrEqual`,[Mx.LESS_THAN]:`sheets-data-validation.date.ruleName.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`sheets-data-validation.date.ruleName.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`sheets-data-validation.date.ruleName.notBetween`,[Mx.NOT_EQUAL]:`sheets-data-validation.date.ruleName.notEqual`,NONE:`sheets-data-validation.date.ruleName.legal`},cPt={[Mx.BETWEEN]:`sheets-data-validation.date.errorMsg.between`,[Mx.EQUAL]:`sheets-data-validation.date.errorMsg.equal`,[Mx.GREATER_THAN]:`sheets-data-validation.date.errorMsg.greaterThan`,[Mx.GREATER_THAN_OR_EQUAL]:`sheets-data-validation.date.errorMsg.greaterThanOrEqual`,[Mx.LESS_THAN]:`sheets-data-validation.date.errorMsg.lessThan`,[Mx.LESS_THAN_OR_EQUAL]:`sheets-data-validation.date.errorMsg.lessThanOrEqual`,[Mx.NOT_BETWEEN]:`sheets-data-validation.date.errorMsg.notBetween`,[Mx.NOT_EQUAL]:`sheets-data-validation.date.errorMsg.notEqual`,NONE:`sheets-data-validation.date.errorMsg.legal`},m9=[Mx.BETWEEN,Mx.NOT_BETWEEN],h9=`{FORMULA1}`,g9=`{FORMULA2}`;function _9(e,t,n){let{formula1:r,formula2:i}=t,a=t.ranges[0].startRow,o=t.ranges[0].startColumn,s=n.row-a,c=n.col-o;return{transformedFormula1:Vh(r)?e.moveFormulaRefOffset(r,c,s,!0):r,transformedFormula2:Vh(i)?e.moveFormulaRefOffset(i,c,s,!0):i}}var v9=e=>{if(e==null||typeof e==`boolean`)return;if(typeof e==`number`||!Number.isNaN(+e))return+e;let t=fu(e)?.v;return F.isDefine(t)?t:fu(Dg(e).format(`YYYY-MM-DD HH:mm:ss`))?.v},lPt=class extends f9{constructor(...e){super(...e),Q7(this,`id`,Fx.DATE),Q7(this,`title`,`sheets-data-validation.date.title`),Q7(this,`order`,40),Q7(this,`operators`,[Mx.BETWEEN,Mx.EQUAL,Mx.GREATER_THAN,Mx.GREATER_THAN_OR_EQUAL,Mx.LESS_THAN,Mx.LESS_THAN_OR_EQUAL,Mx.NOT_BETWEEN,Mx.NOT_EQUAL]),Q7(this,`scopes`,[`sheet`]),Q7(this,`_customFormulaService`,this.injector.get(o9)),Q7(this,`_lexerTreeBuilder`,this.injector.get(SB))}async parseFormula(e,t,n,r,i){let a=await this._customFormulaService.getCellFormulaValue(t,n,e.uid,r,i),o=await this._customFormulaService.getCellFormula2Value(t,n,e.uid,r,i),{formula1:s,formula2:c}=e,l=i9(String(a?.v))&&i9(String(o?.v));return{formula1:v9(Vh(s)?a?.v:s),formula2:v9(Vh(c)?o?.v:c),isFormulaValid:l}}async isValidType(e){let{interceptValue:t,value:n}=e;return typeof n==`number`&&typeof t==`string`||typeof t==`string`?!!fu(t):!1}_validatorSingleFormula(e){return!F.isBlank(e)&&(Vh(e)||!Number.isNaN(+e)||!!(e&&fu(e)))}validatorFormula(e,t,n){let r=e.operator;if(!r)return{success:!0};let i=this._validatorSingleFormula(e.formula1),a=this.localeService.t(`sheets-data-validation.validFail.date`);if(m9.includes(r)){let t=this._validatorSingleFormula(e.formula2);return{success:i&&t,formula1:i?void 0:a,formula2:t?void 0:a}}return{success:i,formula1:i?void 0:a}}normalizeFormula(e,t,n){let{formula1:r,formula2:i,bizInfo:a}=e,o=e=>{if(!e)return e;let t;if(!Number.isNaN(+e))t=Hl(+e);else{let n=fu(e)?.v;if(n==null)return``;t=Hl(n)}return Dg(`${t[0]}/${t[1]}/${t[2]} ${t[3]}:${t[4]}:${t[5]}`).format(a?.showTime?`YYYY-MM-DD HH:mm:ss`:`YYYY-MM-DD`)};return{formula1:Vh(r)?r:o(`${r}`),formula2:Vh(i)?i:o(`${i}`)}}transform(e,t,n){let{value:r}=e;return{...e,value:v9(r)}}get operatorNames(){return this.operators.map(e=>this.localeService.t(oPt[e]))}generateRuleName(e){if(!e.operator)return this.localeService.t(sPt.NONE);let t=this.localeService.t(sPt[e.operator]).replace(h9,e.formula1??``).replace(g9,e.formula2??``);return`${this.titleStr} ${t}`}generateRuleErrorMessage(e,t){if(!e.operator)return this.titleStr;let{transformedFormula1:n,transformedFormula2:r}=_9(this._lexerTreeBuilder,e,t);return`${this.localeService.t(cPt[e.operator]).replace(h9,n??``).replace(g9,r??``)}`}};function y9(e){return+e}var uPt=class extends f9{constructor(...e){super(...e),Q7(this,`_customFormulaService`,this.injector.get(o9)),Q7(this,`id`,Fx.DECIMAL),Q7(this,`_lexerTreeBuilder`,this.injector.get(SB)),Q7(this,`title`,`sheets-data-validation.decimal.title`),Q7(this,`order`,20),Q7(this,`operators`,[Mx.BETWEEN,Mx.EQUAL,Mx.GREATER_THAN,Mx.GREATER_THAN_OR_EQUAL,Mx.LESS_THAN,Mx.LESS_THAN_OR_EQUAL,Mx.NOT_BETWEEN,Mx.NOT_EQUAL]),Q7(this,`scopes`,[`sheet`])}_isFormulaOrNumber(e){return!F.isBlank(e)&&(Vh(e)||!Number.isNaN(+e))}async isValidType(e,t,n){let{value:r}=e;return!Number.isNaN(y9(r))}transform(e,t,n){let{value:r}=e;return{...e,value:y9(r)}}_parseNumber(e){return e==null?NaN:+e}async parseFormula(e,t,n,r,i){let a=await this._customFormulaService.getCellFormulaValue(t,n,e.uid,r,i),o=await this._customFormulaService.getCellFormula2Value(t,n,e.uid,r,i),{formula1:s,formula2:c}=e,l=i9(String(a?.v))&&i9(String(o?.v));return{formula1:this._parseNumber(Vh(s)?a?.v:s),formula2:this._parseNumber(Vh(c)?o?.v:c),isFormulaValid:l}}validatorFormula(e,t,n){let r=e.operator;if(!r)return{success:!0};let i=F.isDefine(e.formula1)&&this._isFormulaOrNumber(e.formula1),a=F.isDefine(e.formula2)&&this._isFormulaOrNumber(e.formula2),o=m9.includes(r),s=this.localeService.t(`sheets-data-validation.validFail.number`);return o?{success:i&&a,formula1:i?void 0:s,formula2:a?void 0:s}:{success:i,formula1:i?``:s}}generateRuleErrorMessage(e,t){if(!e.operator)return this.localeService.t(d9.NONE).replace(`{TYPE}`,this.titleStr);let{transformedFormula1:n,transformedFormula2:r}=_9(this._lexerTreeBuilder,e,t);return`${this.localeService.t(d9[e.operator]).replace(h9,n??``).replace(g9,r??``)}`}};function dPt(e){if(!e)return[];let t=new Set;for(let r=0,i=e.length;r<i;r++){let i=e[r];if(i)for(let e=0,r=i.length;e<r;e++){let r=i[e],a=s9(r);if(a!=null){var n;if(typeof a!=`string`&&typeof r?.s==`object`&&(n=r.s)!=null&&(n=n.n)!=null&&n.pattern){t.add(rd(r.s.n.pattern,a,{throws:!1}));continue}let e=typeof a==`string`?a:String(a);i9(e)&&t.add(e)}}}return[...t]}var fPt=[`if`,`indirect`,`choose`,`offset`];function pPt(e,t){if(!Vh(e)||pz(e.slice(1)))return!0;let n=t.sequenceNodesBuilder(e);return n&&n.some(e=>typeof e==`object`&&e.nodeType===_B.FUNCTION&&fPt.indexOf(e.token.toLowerCase())>-1)}function mPt(e,t){let{formula1:n=``,ranges:r}=e;if(pz(n.slice(1))){let e=Cz(n.slice(1));if((!e.sheetName||e.sheetName===t)&&r.some(t=>l_.intersects(t,e.range)))return!0}return!1}var hPt=class extends f9{constructor(...e){super(...e),Q7(this,`formulaService`,this.injector.get(l9)),Q7(this,`_lexer`,this.injector.get(SB)),Q7(this,`_univerInstanceService`,this.injector.get(z)),Q7(this,`_listCacheService`,this.injector.get(c9)),Q7(this,`order`,50),Q7(this,`offsetFormulaByRange`,!1),Q7(this,`id`,Fx.LIST),Q7(this,`title`,`sheets-data-validation.list.title`),Q7(this,`operators`,[]),Q7(this,`scopes`,[`sheet`]),Q7(this,`skipDefaultFontRender`,e=>e.renderMode!==Nx.TEXT)}validatorFormula(e,t,n){var r;let i=!F.isBlank(e.formula1),a=pPt(e.formula1??``,this._lexer),o=mPt(e,((r=this._univerInstanceService.getUnit(t,M.UNIVER_SHEET))==null||(r=r.getSheetBySheetId(n))==null?void 0:r.getName())??``);return{success:!!(i&&a&&!o),formula1:i?a?o?this.localeService.t(`sheets-data-validation.validFail.listIntersects`):void 0:this.localeService.t(`sheets-data-validation.validFail.listInvalid`):this.localeService.t(`sheets-data-validation.validFail.list`)}}getExtraStyle(e,t,{style:n}){let r=(n.tb===Op.OVERFLOW?Op.CLIP:n.tb)??Op.WRAP;if(e.type===Fx.LIST&&(e.renderMode===Nx.ARROW||e.renderMode===Nx.TEXT)){let n=this.getListWithColorMap(e)[`${t??``}`];if(n)return{bg:{rgb:n},tb:r}}return{tb:r}}parseCellValue(e){return FK(e.toString())}async parseFormula(e,t,n){var r;let i=await this.formulaService.getRuleFormulaResult(t,n,e.uid),a=n9(i==null||(r=i[0])==null||(r=r.result)==null?void 0:r[0][0]);return{formula1:void 0,formula2:void 0,isFormulaValid:i9(String(a))}}async isValidType(e,t,n){let{value:r,unitId:i,subUnitId:a}=e,{formula1:o=``}=n,s=Vh(o)?this._listCacheService.getOrCompute(i,a,n).list:FK(o);return(n.type===Fx.LIST?r==null||r===``?[]:[`${r}`]:this.parseCellValue(r)).every(e=>s.includes(e))}generateRuleName(){return this.localeService.t(`sheets-data-validation.list.name`)}generateRuleErrorMessage(){return this.localeService.t(`sheets-data-validation.list.error`)}_getUnitAndSubUnit(e,t){let n=(e?this._univerInstanceService.getUniverSheetInstance(e):void 0)??this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET);if(!n)return null;let r=(t?n.getSheetBySheetId(t):void 0)??n.getActiveSheet();return r?{unitId:n.getUnitId(),subUnitId:r.getSheetId()}:null}getList(e,t,n){let r=this._getUnitAndSubUnit(t,n);if(!r)return[];let{unitId:i,subUnitId:a}=r;return this._listCacheService.getOrCompute(i,a,e).list}async getListAsync(e,t,n){var r;let{formula1:i=``}=e,a=this._getUnitAndSubUnit(t,n);if(!a)return[];let{unitId:o,subUnitId:s}=a,c=await this.formulaService.getRuleFormulaResult(o,s,e.uid);return Vh(i)?dPt(c==null||(r=c[0])==null||(r=r.result)==null?void 0:r[0][0]):FK(i)}getListWithColor(e,t,n){let r=this._getUnitAndSubUnit(t,n);if(!r)return[];let{unitId:i,subUnitId:a}=r;return this._listCacheService.getOrCompute(i,a,e).listWithColor}getListWithColorMap(e,t,n){let r=this._getUnitAndSubUnit(t,n);if(!r)return{};let{unitId:i,subUnitId:a}=r;return this._listCacheService.getOrCompute(i,a,e).colorMap}},gPt=class extends f9{constructor(...e){super(...e),Q7(this,`id`,Fx.TEXT_LENGTH),Q7(this,`title`,`sheets-data-validation.textLength.title`),Q7(this,`_lexerTreeBuilder`,this.injector.get(SB)),Q7(this,`order`,30),Q7(this,`operators`,[Mx.BETWEEN,Mx.EQUAL,Mx.GREATER_THAN,Mx.GREATER_THAN_OR_EQUAL,Mx.LESS_THAN,Mx.LESS_THAN_OR_EQUAL,Mx.NOT_BETWEEN,Mx.NOT_EQUAL]),Q7(this,`scopes`,[`sheet`]),Q7(this,`_customFormulaService`,this.injector.get(o9))}_isFormulaOrInt(e){return!F.isBlank(e)&&(Vh(e)||!Number.isNaN(+e)&&Number.isInteger(+e))}validatorFormula(e,t,n){let r=e.operator;if(!r)return{success:!1};let i=F.isDefine(e.formula1)&&this._isFormulaOrInt(e.formula1),a=F.isDefine(e.formula2)&&this._isFormulaOrInt(e.formula2),o=m9.includes(r),s=this.localeService.t(`sheets-data-validation.validFail.number`);return o?{success:i&&a,formula1:i?void 0:s,formula2:a?void 0:s}:{success:i,formula1:s}}_parseNumber(e){return e==null?NaN:+e}async parseFormula(e,t,n,r,i){let a=await this._customFormulaService.getCellFormulaValue(t,n,e.uid,r,i),o=await this._customFormulaService.getCellFormula2Value(t,n,e.uid,r,i),{formula1:s,formula2:c}=e,l=i9(String(a?.v))&&i9(String(o?.v));return{formula1:this._parseNumber(Vh(s)?a?.v:s),formula2:this._parseNumber(Vh(c)?o?.v:c),isFormulaValid:l}}transform(e,t,n){return{...e,value:e.value.toString().length}}async isValidType(e,t,n){let{value:r}=e;return typeof r==`string`||typeof r==`number`}generateRuleErrorMessage(e,t){if(!e.operator)return this.titleStr;let{transformedFormula1:n,transformedFormula2:r}=_9(this._lexerTreeBuilder,e,t);return`${this.localeService.t(ePt[e.operator]).replace(h9,n??``).replace(g9,r??``)}`}};function _Pt(e){return e?e.p?!(e.p.body?.dataStream??``).slice(0,-2).trim():F.isBlank(e.v):!0}function b9(e,t,n,r,i=`command`,a=!0){let o=r.get(SB),s=r.get(J7),c=[],l=[],u=r.get(u9),d=bG(r.get(z),{unitId:e,subUnitId:t});if(!d)return{redoMutations:c,undoMutations:l};let{worksheet:f}=d,p=new Ih,m=!1;function h(e,t){a&&e.forEach(e=>{$g.foreach(e,(e,n)=>{let r=f.getCellRaw(e,n),i=XNt(r);(_Pt(r)||i===t)&&!r?.p&&(m=!0,p.setValue(e,n,{v:t,p:null}))})})}if(n.forEach(n=>{switch(n.type){case`delete`:c.push({id:G7.id,params:{unitId:e,subUnitId:t,ruleId:n.rule.uid,source:i}}),l.unshift({id:W7.id,params:{unitId:e,subUnitId:t,rule:n.rule,index:n.index,source:i}});break;case`update`:{if(a9(n.rule.type,s)){let r=n.oldRanges[0].startRow,a=n.oldRanges[0].startColumn,s=n.newRanges[0].startRow,u=n.newRanges[0].startColumn,d=s-r,f=u-a,p=Vh(n.rule.formula1)?o.moveFormulaRefOffset(n.rule.formula1,f,d):n.rule.formula1,m=Vh(n.rule.formula2)?o.moveFormulaRefOffset(n.rule.formula2,f,d):n.rule.formula2;p!==n.rule.formula1||m!==n.rule.formula2||!ub(n.newRanges,n.oldRanges)?(c.push({id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.ruleId,payload:{type:R7.ALL,payload:{formula1:p,formula2:m,ranges:n.newRanges}}}}),l.unshift({id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.ruleId,payload:{type:R7.ALL,payload:{formula1:n.rule.formula1,formula2:n.rule.formula2,ranges:n.oldRanges}}}})):(c.push({id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.ruleId,payload:{type:R7.RANGE,payload:n.newRanges},source:i}}),l.unshift({id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.ruleId,payload:{type:R7.RANGE,payload:n.oldRanges},source:i}}))}else c.push({id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.ruleId,payload:{type:R7.RANGE,payload:n.newRanges},source:i}}),l.unshift({id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.ruleId,payload:{type:R7.RANGE,payload:n.oldRanges},source:i}});let r=u.getRuleById(e,t,n.ruleId);if(r&&r.type===Fx.CHECKBOX){let i=u.getValidator(Fx.CHECKBOX).parseFormulaSync(r,e,t);h(n.newRanges,i.formula2)}break}case`add`:if(c.push({id:W7.id,params:{unitId:e,subUnitId:t,rule:n.rule,source:i}}),l.unshift({id:G7.id,params:{unitId:e,subUnitId:t,ruleId:n.rule.uid,source:i}}),n.rule.type===Fx.CHECKBOX){let r=u.getValidator(Fx.CHECKBOX).parseFormulaSync(n.rule,e,t);h(n.rule.ranges,r.originFormula2)}}}),m){let n={id:sK.id,params:{unitId:e,subUnitId:t,cellValue:p.getData()}},i={id:sK.id,params:oK(r,n.params)};c.push(n),l.push(i)}return{redoMutations:c,undoMutations:l}}var vPt={type:L.COMMAND,id:`sheet.command.updateDataValidationRuleRange`,handler(e,t){if(!t)return!1;let{unitId:n,subUnitId:r,ranges:i,ruleId:a}=t,o=e.get(u9),s=e.get(R),c=e.get(fx);if(!o.getRuleById(n,r,a))return!1;let l=o.getRuleObjectMatrix(n,r).clone();l.updateRange(a,i);let{redoMutations:u,undoMutations:d}=b9(n,r,l.diff(o.getRules(n,r)),e);return c.pushUndoRedo({undoMutations:d,redoMutations:u,unitID:n}),Gm(u,s),!0}},yPt={type:L.COMMAND,id:`sheet.command.addDataValidation`,handler(e,t){if(!t)return!1;let{unitId:n,subUnitId:r,rule:i}=t,a=e.get(u9),o=e.get(R),s=e.get(fx),c=a.getRuleObjectMatrix(n,r).clone();c.addRule(i);let l=c.diff(a.getRules(n,r)),u=a.getValidator(i.type),d={unitId:n,subUnitId:r,rule:{...i,...u?.normalizeFormula(i,n,r)}},{redoMutations:f,undoMutations:p}=b9(n,r,l,e);return f.push({id:W7.id,params:d}),p.unshift({id:G7.id,params:{unitId:n,subUnitId:r,ruleId:i.uid}}),s.pushUndoRedo({unitID:n,redoMutations:f,undoMutations:p}),Gm(f,o),!0}},bPt={type:L.COMMAND,id:`sheets.command.update-data-validation-setting`,handler(e,t){if(!t)return!1;let n=e.get(R),r=e.get(fx),i=e.get(u9),a=e.get(J7),{unitId:o,subUnitId:s,ruleId:c,setting:l}=t,u=a.getValidatorItem(l.type);if(!u)return!1;let d=i.getRuleById(o,s,c);if(!d)return!1;let f={...d,...l};if(!u.validatorFormula(f,o,s).success)return!1;let p={unitId:o,subUnitId:s,ruleId:c,payload:{type:R7.SETTING,payload:{...l,...u.normalizeFormula(f,o,s)}}},m=[{id:K7.id,params:p}],h={unitId:o,subUnitId:s,ruleId:c,payload:{type:R7.SETTING,payload:I7(d)}},g=[{id:K7.id,params:h}];if(l.type===Fx.CHECKBOX){let t=d.ranges,n=bG(e.get(z),{unitId:o,subUnitId:s});if(n){let r=new Ih,{worksheet:i}=n,{formula2:a=0,formula1:c=1}=d,{formula2:u=0,formula1:f=1}=l,p=!1;if(t.forEach(e=>{$g.foreach(e,(e,t)=>{let n=i.getCellRaw(e,t),o=XNt(n);(_Pt(n)||o===String(a))&&!n?.p?(r.setValue(e,t,{v:u,p:null}),p=!0):o===String(c)&&!n?.p&&(r.setValue(e,t,{v:f,p:null}),p=!0)})}),p){let t={id:sK.id,params:{unitId:o,subUnitId:s,cellValue:r.getData()}},n={id:sK.id,params:oK(e,t.params)};m.push(t),g.push(n)}}}return Gm(m,n).result?(r.pushUndoRedo({unitID:o,redoMutations:m,undoMutations:g}),!0):!1}},xPt={type:L.COMMAND,id:`sheets.command.update-data-validation-options`,handler(e,t){if(!t)return!1;let n=e.get(R),r=e.get(fx),i=e.get(u9),{unitId:a,subUnitId:o,ruleId:s,options:c}=t,l=i.getRuleById(a,o,s);if(!l)return!1;let u={unitId:a,subUnitId:o,ruleId:s,payload:{type:R7.OPTIONS,payload:c}},d=[{id:K7.id,params:u}],f={unitId:a,subUnitId:o,ruleId:s,payload:{type:R7.OPTIONS,payload:L7(l)}},p=[{id:K7.id,params:f}];return r.pushUndoRedo({unitID:a,redoMutations:d,undoMutations:p}),n.executeCommand(K7.id,u),!0}},SPt={type:L.COMMAND,id:`sheets.command.clear-range-data-validation`,handler(e,t){if(!t)return!1;let{unitId:n,subUnitId:r,ranges:i}=t,a=e.get(R),o=bG(e.get(z),{unitId:n,subUnitId:r}),s=e.get(u9);if(!o)return!1;let c=e.get(fx),l=s.getRuleObjectMatrix(n,r).clone();l.removeRange(i);let{redoMutations:u,undoMutations:d}=b9(n,r,l.diff(s.getRules(n,r)),e);return c.pushUndoRedo({unitID:n,redoMutations:u,undoMutations:d}),Gm(u,a).result}},CPt={type:L.COMMAND,id:`sheet.command.remove-all-data-validation`,handler(e,t){if(!t)return!1;let{unitId:n,subUnitId:r}=t,i=e.get(R),a=e.get(u9),o=e.get(fx),s=[...a.getRules(n,r)],c={unitId:n,subUnitId:r,ruleId:s.map(e=>e.uid)},l=[{id:G7.id,params:c}],u=[{id:W7.id,params:{unitId:n,subUnitId:r,rule:s}}];return o.pushUndoRedo({redoMutations:l,undoMutations:u,unitID:n}),i.executeCommand(G7.id,c),!0}},wPt=(e,t)=>{let n=e.get(u9),{unitId:r,subUnitId:i,ruleId:a,source:o}=t;if(Array.isArray(a)){let e=a.map(e=>n.getRuleById(r,i,e)).filter(Boolean);return[{id:W7.id,params:{unitId:r,subUnitId:i,rule:e,source:o}}]}return[{id:W7.id,params:{unitId:r,subUnitId:i,rule:{...n.getRuleById(r,i,a)},index:n.getRuleIndex(r,i,a)}}]},TPt={type:L.COMMAND,id:`sheet.command.remove-data-validation-rule`,handler(e,t){if(!t)return!1;let{unitId:n,subUnitId:r,ruleId:i}=t,a=e.get(R),o=e.get(fx),s=e.get(u9),c=[{id:G7.id,params:t}],l=[{id:W7.id,params:{unitId:n,subUnitId:r,rule:{...s.getRuleById(n,r,i)},index:s.getRuleIndex(n,r,i)}}];return o.pushUndoRedo({undoMutations:l,redoMutations:c,unitID:t.unitId}),a.executeCommand(G7.id,t),!0}},EPt=`SHEET_DATA_VALIDATION_PLUGIN`,x9=class extends P{constructor(e,t,n){super(),this._univerInstanceService=e,this._permissionService=t,this._lexerTreeBuilder=n}getFormulaRefCheck(e){let t=this._lexerTreeBuilder.sequenceNodesBuilder(e);if(!t)return!0;for(let e=0;e<t.length;e++){let r=t[e];if(typeof r==`string`)continue;let{token:i}=r,a=gB(i),o=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET),s=o.getActiveSheet(),c=o.getUnitId();if(a.sheetName){if(s=o.getSheetBySheetName(a.sheetName),!s)return!1;let e=s?.getSheetId();if(!this._permissionService.getPermissionPoint(new EX(c,e).id))return!1}if(!s)return!1;let{startRow:l,endRow:u,startColumn:d,endColumn:f}=a.range;for(let e=l;e<=u;e++)for(let t=d;t<=f;t++){var n;if(((n=s.getCell(e,t))==null||(n=n.selectionProtection)==null?void 0:n[0])?.[ta.View]===!1)return!1}}return!0}};x9=e9([$7(0,z),$7(1,ex),$7(2,j(SB))],x9);var DPt=`@univerjs/sheets-data-validation`,OPt=`0.25.1`,kPt=`sheets-data-validation.config`,APt={},S9=class extends P{constructor(e,t,n){super(),this._dataValidationModel=e,this._formulaRefRangeService=t,this._validatorRegistryService=n,Q7(this,`_disposableMap`,new Map),Q7(this,`registerRule`,(e,t,n)=>{a9(n.type,this._validatorRegistryService)&&this.register(e,t,n)}),this._initRefRange()}_getIdWithUnitId(e,t,n){return`${e}_${t}_${n}`}register(e,t,n){let r=n.ranges,i=n.formula1,a=n.formula2,o=this._formulaRefRangeService.registerRangeFormula(e,t,r,[i??``,a??``],o=>{if(o.length===0)return{undos:[{id:W7.id,params:{unitId:e,subUnitId:t,rule:n,source:`patched`}}],redos:[{id:G7.id,params:{unitId:e,subUnitId:t,ruleId:n.uid,source:`patched`}}]};let s=[],c=[],l=o[0];s.push({id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.uid,payload:{type:R7.ALL,payload:{ranges:l.ranges,formula1:l.formulas[0],formula2:l.formulas[1]}},source:`patched`}}),c.push({id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.uid,payload:{type:R7.ALL,payload:{ranges:r,formula1:i,formula2:a}},source:`patched`}});for(let r=1;r<o.length;r++){let i=o[r],a=rp();s.push({id:W7.id,params:{unitId:e,subUnitId:t,rule:{...n,uid:a,formula1:i.formulas[0],formula2:i.formulas[1],ranges:i.ranges},source:`patched`}}),c.push({id:G7.id,params:{unitId:e,subUnitId:t,ruleId:a,source:`patched`}})}return{undos:c,redos:s}}),s=this._getIdWithUnitId(e,t,n.uid);this._disposableMap.set(s,o)}_initRefRange(){let e=this._dataValidationModel.getAll();for(let[t,n]of e)for(let[e,r]of n)for(let n of r)this.registerRule(t,e,n);this.disposeWithMe(this._dataValidationModel.ruleChange$.subscribe(e=>{let{unitId:t,subUnitId:n,rule:r}=e;switch(e.type){case`add`:{let t=e.rule;this.registerRule(e.unitId,e.subUnitId,t);break}case`remove`:{let e=this._disposableMap.get(this._getIdWithUnitId(t,n,r.uid));e&&e.dispose();break}case`update`:{let r=e.rule,i=this._disposableMap.get(this._getIdWithUnitId(t,n,r.uid));i&&i.dispose(),this.registerRule(e.unitId,e.subUnitId,r);break}}})),this.disposeWithMe(Wf(()=>{this._disposableMap.forEach(e=>{e.dispose()}),this._disposableMap.clear()}))}};S9=e9([$7(0,j(u9)),$7(1,j(YZ)),$7(2,j(J7))],S9);var C9=class extends P{constructor(e,t,n,r,i,a){super(),this._dataValidationModel=e,this._injector=t,this._refRangeService=n,this._dataValidationFormulaService=r,this._formulaRefRangeService=i,this._validatorRegistryService=a,Q7(this,`_disposableMap`,new Map),Q7(this,`registerRule`,(e,t,n)=>{a9(n.type,this._validatorRegistryService)||(this.register(e,t,n),this.registerFormula(e,t,n))}),this._initRefRange()}_getIdWithUnitId(e,t,n){return`${e}_${t}_${n}`}registerFormula(e,t,n){let r=n.uid,i=this._getIdWithUnitId(e,t,r),a=this._disposableMap.get(i)??new Set,o=(i,a)=>{let o=this._dataValidationModel.getRuleById(e,t,r);if(!o)return{redos:[],undos:[]};let s=o[i];if(!s||s===a)return{redos:[],undos:[]};let c={unitId:e,subUnitId:t,ruleId:n.uid,payload:{type:R7.SETTING,payload:{type:o.type,formula1:o.formula1,formula2:o.formula2,[i]:a}},source:`patched`},l={unitId:e,subUnitId:t,ruleId:n.uid,payload:{type:R7.SETTING,payload:{type:o.type,formula1:o.formula1,formula2:o.formula2}},source:`patched`};return{redos:[{id:K7.id,params:c}],undos:[{id:K7.id,params:l}]}},s=this._dataValidationFormulaService.getRuleFormulaInfo(e,t,r);if(s){let[n,r]=s;if(n){let r=this._formulaRefRangeService.registerFormula(e,t,n.text,e=>o(`formula1`,e));a.add(()=>r.dispose())}if(r){let n=this._formulaRefRangeService.registerFormula(e,t,r.text,e=>o(`formula2`,e));a.add(()=>n.dispose())}}}register(e,t,n){let r=r=>{let i=[...n.ranges],a=i.map(e=>Zq(e,r)).filter(e=>!!e).flat();if(ub(a,i))return{redos:[],undos:[]};if(a.length){let r={unitId:e,subUnitId:t,ruleId:n.uid,payload:{type:R7.RANGE,payload:a},source:`patched`};return{redos:[{id:K7.id,params:r}],undos:[{id:K7.id,params:{unitId:e,subUnitId:t,ruleId:n.uid,payload:{type:R7.RANGE,payload:i},source:`patched`}}]}}{let r={unitId:e,subUnitId:t,ruleId:n.uid};return{redos:[{id:G7.id,params:r}],undos:wPt(this._injector,r)}}},i=[];n.ranges.forEach(n=>{let a=this._refRangeService.registerRefRange(n,r,e,t);i.push(()=>a.dispose())});let a=this._getIdWithUnitId(e,t,n.uid),o=this._disposableMap.get(a)??new Set;o.add(()=>i.forEach(e=>e())),this._disposableMap.set(a,o)}_initRefRange(){let e=this._dataValidationModel.getAll();for(let[t,n]of e)for(let[e,r]of n)for(let n of r)this.registerRule(t,e,n);this.disposeWithMe(this._dataValidationModel.ruleChange$.subscribe(e=>{let{unitId:t,subUnitId:n,rule:r}=e;switch(e.type){case`add`:{let t=e.rule;this.registerRule(e.unitId,e.subUnitId,t);break}case`remove`:{let e=this._disposableMap.get(this._getIdWithUnitId(t,n,r.uid));e&&e.forEach(e=>e());break}case`update`:{let r=e.rule,i=this._disposableMap.get(this._getIdWithUnitId(t,n,r.uid));i&&i.forEach(e=>e()),this.registerRule(e.unitId,e.subUnitId,r);break}}})),this.disposeWithMe(Wf(()=>{this._disposableMap.forEach(e=>{e.forEach(e=>e())}),this._disposableMap.clear()}))}};C9=e9([$7(0,j(u9)),$7(1,j(We)),$7(2,j(Qq)),$7(3,j(l9)),$7(4,j(YZ)),$7(5,j(J7))],C9);var w9=class extends P{constructor(e,t,n){super(),this._sheetInterceptorService=e,this._univerInstanceService=t,this._sheetDataValidationModel=n,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===lY.id){let t=e.params,n=t.unitId||this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET).getUnitId(),r=this._univerInstanceService.getUniverSheetInstance(n);if(!r)return{redos:[],undos:[]};let i=t.subUnitId||r.getActiveSheet()?.getSheetId();if(!i)return{redos:[],undos:[]};let a=this._sheetDataValidationModel.getRules(n,i);if(a.length===0)return{redos:[],undos:[]};let o={unitId:n,subUnitId:i,ruleId:a.map(e=>e.uid),source:`patched`},s={unitId:n,subUnitId:i,rule:[...a],source:`patched`};return{redos:[{id:G7.id,params:o}],undos:[{id:W7.id,params:s}]}}if(e.id===tY.id){let{unitId:t,subUnitId:n,targetSubUnitId:r}=e.params;if(!t||!n||!r)return{redos:[],undos:[]};let i=this._sheetDataValidationModel.getRules(t,n);if(i.length===0)return{redos:[],undos:[]};let a=i.map(e=>({...e,uid:rp(6)}));return{redos:[{id:W7.id,params:{unitId:t,subUnitId:r,rule:a,source:`patched`}}],undos:[{id:G7.id,params:{unitId:t,subUnitId:r,ruleId:a.map(e=>e.uid),source:`patched`}}]}}return{redos:[],undos:[]}}}))}};w9=e9([$7(0,j(MG)),$7(1,j(z)),$7(2,j(u9))],w9);var jPt=class extends f9{constructor(...e){super(...e),Q7(this,`id`,Fx.ANY),Q7(this,`title`,`sheets-data-validation.any.title`),Q7(this,`operators`,[]),Q7(this,`scopes`,[`sheet`]),Q7(this,`order`,0),Q7(this,`offsetFormulaByRange`,!1)}async parseFormula(e,t,n){return{formula1:e.formula1,formula2:e.formula2,isFormulaValid:!0}}validatorFormula(e,t,n){return{success:!0}}async isValidType(e,t,n){return!0}generateRuleErrorMessage(e){return this.localeService.t(`sheets-data-validation.any.error`)}},MPt=class extends f9{constructor(...e){super(...e),Q7(this,`id`,Fx.CUSTOM),Q7(this,`title`,`sheets-data-validation.custom.title`),Q7(this,`operators`,[]),Q7(this,`scopes`,[`sheet`]),Q7(this,`order`,60),Q7(this,`_customFormulaService`,this.injector.get(o9)),Q7(this,`_lexerTreeBuilder`,this.injector.get(SB))}validatorFormula(e,t,n){let r=Vh(e.formula1),i=e.formula1??``,a=this._lexerTreeBuilder.checkIfAddBracket(i)===0&&i.startsWith(DR.EQUALS);return{success:r&&a,formula1:r&&a?``:this.localeService.t(`sheets-data-validation.validFail.formula`)}}async parseFormula(e,t,n){return{formula1:void 0,formula2:void 0,isFormulaValid:!0}}async isValidType(e,t,n){let{column:r,row:i,unitId:a,subUnitId:o}=e,s=await this._customFormulaService.getCellFormulaValue(a,o,n.uid,i,r),c=s?.v;return i9(String(c))&&F.isDefine(c)&&c!==``?s.t===Np.BOOLEAN?!!c:typeof c==`boolean`?c:typeof c==`number`?!!c:typeof c==`string`?i9(c):!!c:!1}generateRuleErrorMessage(e){return this.localeService.t(`sheets-data-validation.custom.error`)}generateRuleName(e){return this.localeService.t(`sheets-data-validation.custom.ruleName`).replace(`{FORMULA1}`,e.formula1??``)}},NPt=class extends hPt{constructor(...e){super(...e),Q7(this,`id`,Fx.LIST_MULTIPLE),Q7(this,`title`,`sheets-data-validation.listMultiple.title`),Q7(this,`offsetFormulaByRange`,!1),Q7(this,`skipDefaultFontRender`,()=>!0)}},PPt=class extends f9{constructor(...e){super(...e),Q7(this,`_customFormulaService`,this.injector.get(o9)),Q7(this,`_lexerTreeBuilder`,this.injector.get(SB)),Q7(this,`id`,Fx.WHOLE),Q7(this,`title`,`sheets-data-validation.whole.title`),Q7(this,`order`,10),Q7(this,`operators`,[Mx.BETWEEN,Mx.EQUAL,Mx.GREATER_THAN,Mx.GREATER_THAN_OR_EQUAL,Mx.LESS_THAN,Mx.LESS_THAN_OR_EQUAL,Mx.NOT_BETWEEN,Mx.NOT_EQUAL]),Q7(this,`scopes`,[`sheet`])}_isFormulaOrInt(e){return!F.isBlank(e)&&(Vh(e)||!Number.isNaN(+e)&&Number.isInteger(+e))}async isValidType(e,t,n){let{value:r}=e,i=y9(r);return!Number.isNaN(i)&&Number.isInteger(i)}transform(e,t,n){let{value:r}=e;return{...e,value:y9(r)}}_parseNumber(e){return e==null?NaN:+e}async parseFormula(e,t,n,r,i){let a=await this._customFormulaService.getCellFormulaValue(t,n,e.uid,r,i),o=await this._customFormulaService.getCellFormula2Value(t,n,e.uid,r,i),{formula1:s,formula2:c}=e,l=Vh(s)?a?.v:s,u=Vh(c)?o?.v:c,d=i9(`${l}`)&&i9(`${u}`);return{formula1:this._parseNumber(l),formula2:this._parseNumber(u),isFormulaValid:d}}validatorFormula(e,t,n){let r=e.operator;if(!r)return{success:!0};let i=F.isDefine(e.formula1)&&this._isFormulaOrInt(e.formula1),a=F.isDefine(e.formula2)&&this._isFormulaOrInt(e.formula2),o=m9.includes(r),s=this.localeService.t(`sheets-data-validation.validFail.number`);return o?{success:i&&a,formula1:i?void 0:s,formula2:a?void 0:s}:{success:i,formula1:s}}generateRuleErrorMessage(e,t){if(!e.operator)return this.localeService.t(d9.NONE).replace(`{TYPE}`,this.titleStr);let{transformedFormula1:n,transformedFormula2:r}=_9(this._lexerTreeBuilder,e,t);return`${this.localeService.t(d9[e.operator]).replace(h9,n??``).replace(g9,r??``)}`}},T9=class extends Kf{constructor(e,t,n,r,i,a){super(),this._univerInstanceService=e,this._dataValidatorRegistryService=t,this._injector=n,this._selectionManagerService=r,this._sheetInterceptorService=i,this._sheetDataValidationModel=a,this._init()}_init(){this._registerValidators(),this._initCommandInterceptor()}_registerValidators(){[jPt,uPt,PPt,gPt,lPt,aPt,hPt,NPt,MPt].forEach(e=>{let t=this._injector.createInstance(e);this.disposeWithMe(this._dataValidatorRegistryService.register(t)),this.disposeWithMe(Wf(()=>this._injector.delete(e)))})}_initCommandInterceptor(){this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===JK.id){let e=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET),t=e.getUnitId(),n=e.getActiveSheet();if(!n)throw Error(`No active sheet found`);let r=n.getSheetId(),i=this._selectionManagerService.getCurrentSelections()?.map(e=>e.range),a=this._sheetDataValidationModel.getRuleObjectMatrix(t,r).clone();i&&a.removeRange(i);let{redoMutations:o,undoMutations:s}=b9(t,r,a.diff(this._sheetDataValidationModel.getRules(t,r)),this._injector,`patched`);return{undos:s,redos:o}}return{undos:[],redos:[]}}})}};T9=e9([$7(0,z),$7(1,j(J7)),$7(2,j(We)),$7(3,j(HK)),$7(4,j(MG)),$7(5,j(u9))],T9);var E9=class extends P{constructor(e,t,n,r){super(),this._univerInstanceService=e,this._sheetDataValidationModel=t,this._dataValidationCacheService=n,this._lifecycleService=r,this._initRecalculate()}_initRecalculate(){let e=e=>{if(e.length===0)return;let t=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET),n=t?.getActiveSheet(),r={};e.flat().forEach(e=>{r[e.unitId]||(r[e.unitId]={}),r[e.unitId][e.subUnitId]||(r[e.unitId][e.subUnitId]=[]);let t=this._univerInstanceService.getUnit(e.unitId,M.UNIVER_SHEET)?.getSheetBySheetId(e.subUnitId);t&&r[e.unitId][e.subUnitId].push(...e.ranges.map(e=>$g.transformRange(e,t)))}),Object.entries(r).forEach(([e,r])=>{Object.entries(r).forEach(([r,i])=>{t?.getUnitId()===e&&n?.getSheetId()===r?this.validatorRanges(e,r,i):requestIdleCallback(()=>{this.validatorRanges(e,r,i)})})})};this.disposeWithMe(this._dataValidationCacheService.dirtyRanges$.pipe(Vs(()=>this._lifecycleService.lifecycle$.pipe(ac(1),Ls(e=>e===Wb.Rendered)))).subscribe(e)),this.disposeWithMe(this._dataValidationCacheService.dirtyRanges$.pipe(Ls(()=>this._lifecycleService.stage>=Wb.Rendered),Ym(20)).subscribe(e))}async _validatorByCell(e,t,n,r){let i=e.getUnitId(),a=t.getSheetId();if(!F.isDefine(n)||!F.isDefine(r))throw Error(`row or col is not defined, row: ${n}, col: ${r}`);let o=n,s=r,c=t.getMergedCell(n,r);c&&(o=c.startRow,s=c.startColumn);let l=this._sheetDataValidationModel.getRuleByLocation(i,a,o,s);return l?new Promise(n=>{this._sheetDataValidationModel.validator(l,{unitId:i,subUnitId:a,row:o,col:s,worksheet:t,workbook:e},e=>{n(e)})}):Px.VALID}async validatorCell(e,t,n,r){let i=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET);if(!i)throw Error(`cannot find current workbook, unitId: ${e}`);let a=i.getSheetBySheetId(t);if(!a)throw Error(`cannot find current worksheet, sheetId: ${t}`);return this._validatorByCell(i,a,n,r)}async validatorRanges(e,t,n){if(!n.length)return Promise.resolve([]);let r=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET);if(!r)throw Error(`cannot find current workbook, unitId: ${e}`);let i=r.getSheetBySheetId(t);if(!i)throw Error(`cannot find current worksheet, sheetId: ${t}`);let a=this._sheetDataValidationModel.getRules(e,t),o=[];for(let e of a)o.push(...e.ranges);let s=[];for(let e of n)for(let t of o){let n=a_(e,t);n&&s.push(n)}let c=[],l=await Promise.all(s.map((e,t)=>{let n=[];for(let a=e.startRow;a<=e.endRow;a++)for(let o=e.startColumn;o<=e.endColumn;o++){n.push(this._validatorByCell(r,i,a,o));let e=i.getMergedCell(a,o);e&&c.push({resultRowIndex:t,resultColIndex:n.length-1,row:e.startRow,col:e.startColumn})}return Promise.all(n)}));return c.length&&c.forEach(({resultRowIndex:n,resultColIndex:r,row:i,col:a})=>{l[n][r]===Px.VALIDATING&&(l[n][r]=this._dataValidationCacheService.getValue(e,t,i,a)??Px.VALID)}),l}async validatorWorksheet(e,t){let n=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET);if(!n)throw Error(`cannot find current workbook, unitId: ${e}`);let r=n.getSheetBySheetId(t);if(!r)throw Error(`cannot find current worksheet, sheetId: ${t}`);let i=this._sheetDataValidationModel.getRules(e,t);return await Promise.all(i.map(e=>Promise.all(e.ranges.map(e=>{let t=[];return $g.foreach(e,(e,i)=>{t.push(this._validatorByCell(n,r,e,i))}),Promise.all(t)})))),this._dataValidationCacheService.ensureCache(e,t)}async validatorWorkbook(e){let t=this._sheetDataValidationModel.getSubUnitIds(e),n=await Promise.all(t.map(t=>this.validatorWorksheet(e,t))),r={};return n.forEach((e,n)=>{r[t[n]]=e}),r}getDataValidations(e,t,n){let r=this._sheetDataValidationModel.getRuleObjectMatrix(e,t),i=new Set;n.forEach(e=>{$g.foreach(e,(e,t)=>{let n=r.getValue(e,t);n&&i.add(n)})});let a=[];for(let n of i){let r=this._sheetDataValidationModel.getRuleById(e,t,n);r&&a.push(r)}return a}getDataValidation(e,t,n){return this.getDataValidations(e,t,n)[0]}};E9=e9([$7(0,z),$7(1,j(u9)),$7(2,j(t9)),$7(3,j(qb))],E9);var D9=class extends ax{constructor(e=APt,t,n,r){super(),this._config=e,this._injector=t,this._commandService=n,this._configService=r;let{...i}=Qi({},APt,this._config);this._configService.setConfig(kPt,i)}onStarting(){[[t9],[c9],[l9],[o9],[E9],[u9],[T9],[x9],[w9],[C9],[S9]].forEach(e=>{this._injector.add(e)}),[yPt,vPt,bPt,xPt,TPt,CPt,SPt].forEach(e=>{this._commandService.registerCommand(e)}),this._injector.get(t9),this._injector.get(E9),this._injector.get(T9),this._injector.get(S9),this._injector.get(C9)}onReady(){this._injector.get(w9)}onRendered(){this._injector.get(x9)}};Q7(D9,`pluginName`,EPt),Q7(D9,`packageName`,DPt),Q7(D9,`version`,OPt),Q7(D9,`type`,M.UNIVER_SHEET),D9=e9([sx(tQ,Y7),$7(1,j(We)),$7(2,R),$7(3,Mm)],D9);function O9(e){return F.isLegalUrl(e)}function FPt(e){return/^[a-zA-Z]+:\/\//.test(e)}function IPt(e){return/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(e)}function LPt(e){if(O9(e)){let t=FPt(e)?e:IPt(e)?`mailto://${e}`:`http://${e}`,n;try{n=new URL(t)}catch{return e}return n.hostname===location.hostname&&n.port===location.port&&n.protocol===location.protocol&&n.pathname===location.pathname&&n.hash&&!n.search?n.hash:t}return e}var RPt=`sheets-hyper-link-ui.config`,zPt={};function k9(e,t){return function(n,r){t(n,r,e)}}function A9(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function BPt(e,t){let n=t.getMergeData(),r=t.getMaxColumns()-1,i=t.getMaxRows()-1;if(r<e.endColumn&&(e.endColumn=r),i<e.endRow&&(e.endRow=i),e.rangeType===_h.COLUMN||_h.ROW)return e;let a=[];return n.forEach(t=>{l_.intersects(e,t)&&a.push(t)}),l_.realUnion(e,...a)}var j9=class{constructor(e,t,n,r,i,a){this._univerInstanceService=e,this._commandService=t,this._definedNamesService=n,this._messageService=r,this._localeService=i,this._configService=a}navigate(e){switch(e.type){case N7.URL:this.navigateToOtherWebsite(e.url);break;default:this._navigateToUniver(e.searchObj)}}_navigateToUniver(e){let{gid:t,range:n,rangeid:r}=e,i=this._univerInstanceService.getCurrentUnitOfType(M.UNIVER_SHEET);if(!i)return;let a=i.getUnitId();if(r){let e=this._definedNamesService.getValueById(a,r);if(!e)return;let{formulaOrRefString:t}=e,n=this._definedNamesService.getWorksheetByRef(a,t);if(!n){this._messageService.show({content:this._localeService.t(`sheets-hyper-link-ui.message.refError`),type:dj.Error});return}if(n.isSheetHidden()){this._messageService.show({content:this._localeService.t(`sheets-hyper-link-ui.message.hiddenSheet`),type:dj.Error});return}this.navigateToDefineName(a,r)}if(t){if(n){let e=Cz(n);Kh(e.range)&&n!==`err`&&this.navigateToRange(a,t,e.range);return}this.navigateToSheetById(a,t)}}async navigateToRange(e,t,n,r){let i=await this.navigateToSheetById(e,t);if(i){let a=BPt(n,i);await this._commandService.executeCommand(iq.id,{unitId:e,subUnitId:t,selections:[{range:a,primary:null}]}),await this._commandService.executeCommand(O1.id,{range:a,forceTop:r})}}async navigateToSheetById(e,t){let n=this._univerInstanceService.getUnit(e,M.UNIVER_SHEET);if(!n)return!1;let r=n.getActiveSheet();if(!r)return!1;if(r.getSheetId()===t)return r;let i=n.getSheetBySheetId(t);return i?n.getHiddenWorksheets().indexOf(t)>-1?(this._messageService.show({content:this._localeService.t(`sheets-hyper-link-ui.message.hiddenSheet`),type:dj.Error}),!1):await this._commandService.executeCommand(SK.id,{unitId:e,subUnitId:t})?i:!1:(this._messageService.show({content:this._localeService.t(`sheets-hyper-link-ui.message.noSheet`),type:dj.Error}),!1)}async navigateToDefineName(e,t){return this._definedNamesService.focusRange(e,t),!0}async navigateToOtherWebsite(e){var t;if(!$f(e))return;let n=this._configService.getConfig(RPt);if(n!=null&&(t=n.urlHandler)!=null&&t.navigateToOtherWebsite)return n.urlHandler.navigateToOtherWebsite(e);window.open(e,`_blank`,`noopener noreferrer`)}};j9=A9([k9(0,z),k9(1,R),k9(2,Mz),k9(3,$j),k9(4,j(Xb)),k9(5,Mm)],j9);function M9(e){"@babel/helpers - typeof";return M9=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},M9(e)}function VPt(e,t){if(M9(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(M9(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function HPt(e){var t=VPt(e,`string`);return M9(t)==`symbol`?t:t+``}function N9(e,t,n){return(t=HPt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var UPt=class extends P{constructor(...e){super(...e),N9(this,`_customHyperLinks`,new Map)}isBuiltInLinkType(e){return e!==N7.URL}getOptions(){return Array.from(this._customHyperLinks.values()).map(({option:e})=>e)}findCustomHyperLink(e){return Array.from(this._customHyperLinks.values()).find(t=>t.match(e))}registerCustomHyperLink(e){this._customHyperLinks.set(e.type,e)}getCustomHyperLink(e){return this._customHyperLinks.get(e)}removeCustomHyperLink(e){let{_customHyperLinks:t}=this;t.delete(e)}dispose(){super.dispose(),this._customHyperLinks.clear()}};function WPt(e){return e.trim().length===0}function GPt(e,t){let[n]=e.split(`,`).map(Cz);return!n||!Kh(n.range)?``:(n.sheetName||=t,bz(n))}var P9=()=>{let[e,t]=(0,V.useState)(``),[n,r]=(0,V.useState)(!1),[i,a]=(0,V.useState)(``),[o,s]=(0,V.useState)(!0),[c,l]=(0,V.useState)(N7.URL),[u,d]=(0,V.useState)(``),f=U(Xb),p=U(Mz),m=U(d1),h=U(z),g=U(I9),_=KD(g.currentEditing$),v=U(P7),y=U(j9),b=U(R),x=U(UPt),S=(0,V.useMemo)(()=>x.getOptions(),[x]),C=U(BM),w=U(zE),T=U(DQ),E=U(YE),D=U(Pm),O=U(dx),k=U(YE),[A,ee]=(0,V.useState)(!1),te=U(HK),ne=(0,V.useMemo)(()=>te.getCurrentSelections(),[]),re=(0,V.useMemo)(()=>{if(!x.isBuiltInLinkType(c))return x.getCustomHyperLink(c)},[x,c]),[ie,ae]=(0,V.useState)(!1),[oe,se]=(0,V.useState)(!1),ce=(0,V.useRef)(!1),le=h.getCurrentUnitOfType(M.UNIVER_SHEET),ue=le?.getActiveSheet().getSheetId()||``,de=(0,V.useCallback)(e=>{a(e.replaceAll(Rv.CUSTOM_RANGE_START,``).replaceAll(Rv.CUSTOM_RANGE_END,``))},[a]);(0,V.useEffect)(()=>{if(_?.row!==void 0&&_.col!==void 0){let{customRange:c,row:u,col:f}=_,{label:p}=_;typeof p==`number`&&(p=`${p}`);let m;if(c){var e;m={id:c?.rangeId??``,display:p??``,payload:(c==null||(e=c.properties)==null?void 0:e.url)??``,row:u,column:f}}else if(_.type===`viewing`){var n,r,i;let e=(h.getUnit(_.unitId)?.getSheetBySheetId(_.subUnitId))?.getCellRaw(_.row,_.col),t=e==null||(n=e.p)==null||(n=n.body)==null||(n=n.customRanges)==null?void 0:n.find(e=>e.rangeType===Lp.HYPERLINK&&e.properties?.url),a=e?.v;e&&(!by.transform.isEmptyDocument((r=e.p)==null||(r=r.body)==null?void 0:r.dataStream)||F.isDefine(a))&&s(!1),m={id:``,display:``,payload:(t==null||(i=t.properties)==null?void 0:i.url)??``,row:u,column:f}}else{var a;let e=h.getCurrentUnitOfType(M.UNIVER_DOC),t=E.getActiveTextRange(),n=e?.getBody(),r=t&&n?t:null,i=r&&by.customRange.getCustomRangesInterestsWithSelection(r,n?.customRanges??[])?.[0];s(!1),m={id:``,display:p??``,payload:(i==null||(a=i.properties)==null?void 0:a.url)??``,row:u,column:f}}t(m.id);let g=x.findCustomHyperLink(m);if(g){let e=g.convert(m);l(e.type),d(e.payload),de(e.display);return}de(m.display);let y=v.parseHyperLink(m.payload);switch(l(y.type===N7.INVALID?N7.RANGE:y.type),y.type){case N7.URL:d(y.url),y.url===m.display&&(ce.current=!0);break;case N7.RANGE:{var o;let e=y.searchObj,t=vz(e.gid?((o=h.getUnit(_.unitId))==null||(o=o.getSheetBySheetId(e.gid))==null?void 0:o.getName())??``:``,Cz(e.range).range);d(t),t===m.display&&(ce.current=!0);break}case N7.SHEET:{let e=y.searchObj;d(e.gid);break}case N7.DEFINE_NAME:{let e=y.searchObj;d(e.rangeid);break}default:d(``)}}},[_,y,x,E,h]),(0,V.useEffect)(()=>{let e=null;if(_&&!_.customRangeId&&_.type===`viewing`&&F.isDefine(_.row)&&F.isDefine(_.col)){let t=(h.getUnit(_.unitId,M.UNIVER_SHEET)?.getSheetBySheetId(_.subUnitId))?.getMergedCell(_.row,_.col),n=new nh(O.getColorFromTheme(`primary.600`)).toRgb();e=T.addShape({range:t??{startColumn:_.col,endColumn:_.col,startRow:_.row,endRow:_.row},style:{fill:`rgb(${n.r}, ${n.g}, ${n.b}, 0.12)`,strokeWidth:1,stroke:`#FFBD37`,widgets:{}},primary:null},[],-1)}return()=>{e&&T.removeShape(e)}},[_,T,O,h]),(0,V.useEffect)(()=>{se(c===N7.RANGE)},[c]),(0,V.useEffect)(()=>{let e=_?.type===`zen_mode`?w.getRenderById(rf):w.getRenderById(m.getCurrentEditorId()),t=new Gf;if(e){let n=e.with(YF);n.setReserveRangesStatus(!0),t.add(()=>{n.setReserveRangesStatus(!1)})}return()=>{m.disableForceKeepVisible(),t.dispose()}},[_?.type,m,w]),(0,V.useEffect)(()=>(oe&&g.setIsKeepVisible(oe),g.setIsKeepVisible(A),()=>{g.setIsKeepVisible(!1)}),[oe,A,g]),(0,V.useEffect)(()=>()=>{C.temporaryHidden&&(C.show(),D.setContextValue(Uy,!1))},[D,C]),(0,V.useEffect)(()=>{if(oe)return m.enableForceKeepVisible(),()=>{m.disableForceKeepVisible()}},[oe,m]);let fe=[{label:f.t(`sheets-hyper-link-ui.form.link`),value:N7.URL},{label:f.t(`sheets-hyper-link-ui.form.range`),value:N7.RANGE},{label:f.t(`sheets-hyper-link-ui.form.worksheet`),value:N7.SHEET},{label:f.t(`sheets-hyper-link-ui.form.definedName`),value:N7.DEFINE_NAME},...S];if(!le)return;let pe=le.getHiddenWorksheets(),me=le.getSheets().map(e=>({label:e.getName(),value:e.getSheetId()})).filter(e=>pe.indexOf(e.value)===-1),he=Object.values(p.getDefinedNameMap(le.getUnitId())??{}).map(e=>({label:e.name,value:e.id})),ge=(e,t)=>{if(e===N7.URL)return LPt(t);if(e===N7.RANGE){let e=Cz(t),n=le.getSheetBySheetName(e.sheetName);if(n)return`#gid=${n.getSheetId()}&range=${_z(e.range)}`}return`#${e}=${t}`},_e=Lj(e=>{let t=GPt(e,le.getActiveSheet()?.getName()||``);if(!t){d(``);return}d(t),t&&(ce.current||!i)&&(de(t),ce.current=!0)}),ve=async()=>{if(o&&WPt(i)||!u||c===N7.URL&&!O9(u)){ae(!0);return}if(_){if(e){let t=_.type===`zen_mode`||_.type===`editing`?CNt.id:SNt.id;await b.executeCommand(t,{id:e,unitId:_.unitId,subUnitId:_.subUnitId,payload:{display:o?i:``,payload:ge(c,u)},row:_.row,column:_.col,documentId:_.type===`zen_mode`?rf:m.getCurrentEditorId()})}else{let e=_.type===`zen_mode`||_.type===`editing`?yNt.id:vNt.id;await b.executeCommand(e,{unitId:_.unitId,subUnitId:_.subUnitId,link:{id:rp(),row:_.row,column:_.col,payload:ge(c,u),display:o?i:``},documentId:_.type===`zen_mode`?rf:m.getCurrentEditorId()})}}_?.type===`viewing`&&(await b.executeCommand(SK.id,{unitId:_.unitId,subUnitId:_.subUnitId}),await b.executeCommand(O1.id,{range:{startRow:Math.max(_.row-1,0),endRow:_.row+1,startColumn:Math.max(_.col-1,0),endColumn:_.col+1}})),b.executeCommand(L9.id)};return _?(0,H.jsxs)(`div`,{className:W(`univer-box-border univer-w-[296px] univer-rounded-xl univer-bg-white univer-p-4 univer-shadow-md dark:!univer-bg-gray-900`,KA),children:[o?(0,H.jsx)(sj,{label:f.t(`sheets-hyper-link-ui.form.label`),error:ie&&WPt(i)?f.t(`sheets-hyper-link-ui.form.inputError`):``,children:(0,H.jsx)(cj,{value:i,onChange:e=>{de(e),ce.current=!1},placeholder:f.t(`sheets-hyper-link-ui.form.labelPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===iM.ENTER&&ve()}})}):null,(0,H.jsx)(sj,{label:f.t(`sheets-hyper-link-ui.form.type`),children:(0,H.jsx)(yj,{className:`univer-w-full`,options:fe,value:c,onChange:e=>{l(e),d(``)}})}),c===N7.URL&&(0,H.jsx)(sj,{error:ie?u?O9(u)?``:f.t(`sheets-hyper-link-ui.form.linkError`):f.t(`sheets-hyper-link-ui.form.inputError`):``,children:(0,H.jsx)(cj,{value:u,onChange:e=>{d(e),e&&(ce.current||!i||i===e)&&(de(e),ce.current=!0)},placeholder:f.t(`sheets-hyper-link-ui.form.linkPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===iM.ENTER&&ve()}})}),c===N7.RANGE&&(0,H.jsx)(sj,{error:ie&&!u?f.t(`sheets-hyper-link-ui.form.inputError`):``,children:(0,H.jsx)(A4,{unitId:le.getUnitId(),subUnitId:ue,maxRangeCount:1,supportAcrossSheet:!0,initialValue:u,resetRange:ne,onChange:(e,t)=>_e(t),onRangeSelectorDialogVisibleChange:async e=>{if(ee(e),e)_.type===`zen_mode`&&(C.hide(),D.setContextValue(`FOCUSING_SHEET`,!0)),_.type!==`viewing`&&m.enableForceKeepVisible(),r(!0);else{if(await y.navigateToRange(_.unitId,_.subUnitId,{startRow:_.row,endRow:_.row,startColumn:_.col,endColumn:_.col},!0),_.type===`zen_mode`){await b.executeCommand(iq.id,{unitId:_.unitId,subUnitId:_.subUnitId,selections:[{range:{startRow:_.row,endRow:_.row,startColumn:_.col,endColumn:_.col}}]}),C.show(),D.setContextValue(`FOCUSING_SHEET`,!1);let e=w.getRenderById(rf)?.with(oL),t=k.getTextRanges({unitId:rf,subUnitId:rf})?.[0];e&&t&&(e.scrollToRange(t),k.refreshSelection({unitId:rf,subUnitId:rf}))}m.disableForceKeepVisible(),r(!1)}},onFocusChange:e=>se(e)})}),c===N7.SHEET&&(0,H.jsx)(sj,{error:ie&&!u?f.t(`sheets-hyper-link-ui.form.selectError`):``,children:(0,H.jsx)(yj,{className:`univer-w-full`,options:me,value:u,onChange:e=>{d(e);let t=me.find(t=>t.value===e)?.label,n=me.find(e=>e.value===u)?.label;t&&(ce.current||!i||i===n)&&(de(t),ce.current=!0)}})}),c===N7.DEFINE_NAME&&(0,H.jsx)(sj,{error:ie&&!u?f.t(`sheets-hyper-link-ui.form.selectError`):``,children:(0,H.jsx)(yj,{className:`univer-w-full`,options:he,value:u,onChange:e=>{d(e);let t=he.find(t=>t.value===e)?.label,n=he.find(e=>e.value===u)?.label;t&&(ce.current||!i||i===n)&&(de(t),ce.current=!0)}})}),re?.Form&&(0,H.jsx)(re.Form,{linkId:e,payload:u,display:i,showError:ie,setByPayload:ce,setDisplay:e=>{de(e),ce.current=!0},setPayload:d}),(0,H.jsxs)(`div`,{className:`univer-flex univer-flex-row univer-justify-end univer-gap-2`,children:[(0,H.jsx)(VA,{onClick:()=>{_&&y.navigateToRange(_.unitId,_.subUnitId,{startRow:_.row,endRow:_.row,startColumn:_.col,endColumn:_.col},!0),b.executeCommand(L9.id)},children:f.t(`sheets-hyper-link-ui.form.cancel`)}),(0,H.jsx)(VA,{variant:`primary`,onClick:async()=>{ve()},children:f.t(`sheets-hyper-link-ui.form.ok`)})]})]}):null};P9.componentKey=`univer.sheet.cell-link-edit`;var KPt={[N7.URL]:(0,H.jsx)(DD,{}),[N7.SHEET]:(0,H.jsx)(RPe,{className:`univer-text-green-500`}),[N7.RANGE]:(0,H.jsx)(sD,{}),[N7.DEFINE_NAME]:(0,H.jsx)(sD,{}),[N7.INVALID]:(0,H.jsx)(sD,{})},qPt=e=>{var t;let n=U(I9),r=U(R),i=U($j),a=U(Xb),o=U(j9),s=U(d1),c=U(P7),l=U(BM),{customRange:u,row:d,col:f,unitId:p,subUnitId:m,editPermission:h,copyPermission:g,type:_}=e;if(!(u!=null&&(t=u.properties)!=null&&t.url))return null;let v=c.parseHyperLink(u.properties.url??``),y=v.type===N7.INVALID;return(0,H.jsxs)(`div`,{className:W(`univer-mb-1 univer-flex univer-max-w-80 univer-flex-row univer-items-center univer-justify-between univer-overflow-hidden univer-rounded-lg univer-bg-white univer-p-3 univer-shadow-md dark:!univer-bg-gray-900`,KA),onClick:()=>n.hideCurrentPopup(),children:[(0,H.jsxs)(`div`,{className:W(`univer-flex univer-h-6 univer-flex-1 univer-cursor-pointer univer-flex-row univer-items-center univer-truncate univer-text-sm univer-leading-5 univer-text-primary-600`,{"univer-text-red-500":y}),onClick:()=>{l.visible||y||o.navigate(v)},children:[(0,H.jsx)(`div`,{className:`univer-mr-2 univer-flex univer-size-5 univer-flex-none univer-items-center univer-justify-center univer-text-base univer-text-gray-900 dark:!univer-text-white`,children:KPt[v.type]}),(0,H.jsx)(uj,{showIfEllipsis:!0,title:v.name,asChild:!0,children:(0,H.jsx)(`span`,{className:`univer-flex-1 univer-truncate`,children:v.name})})]}),(0,H.jsxs)(`div`,{className:`univer-flex univer-h-6 univer-flex-none univer-flex-row univer-items-center univer-justify-center`,children:[g&&(0,H.jsx)(`div`,{className:W(`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,{"univer-text-red-500":y}),onClick:()=>{if(!y){if(v.type!==N7.URL){let e=new URL(window.location.href);e.hash=v.url.slice(1),navigator.clipboard.writeText(e.href)}else navigator.clipboard.writeText(v.url);i.show({content:a.t(`sheets-hyper-link-ui.message.coped`),type:dj.Info})}},children:(0,H.jsx)(uj,{placement:`bottom`,title:a.t(`sheets-hyper-link-ui.popup.copy`),children:(0,H.jsx)(dD,{className:`dark:!univer-text-white`})})}),h&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{r.executeCommand($Pt.id,{unitId:p,subUnitId:m,row:d,col:f,customRangeId:u.rangeId,type:_})},children:(0,H.jsx)(uj,{placement:`bottom`,title:a.t(`sheets-hyper-link-ui.popup.edit`),children:(0,H.jsx)(zD,{className:`dark:!univer-text-white`})})}),(0,H.jsx)(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{let e=_===`editing`||_===`zen_mode`?xNt.id:bNt.id;r.syncExecuteCommand(e,{unitId:p,subUnitId:m,id:u.rangeId,row:d,column:f,documentId:_===`zen_mode`?rf:s.getCurrentEditorId()})&&n.hideCurrentPopup(void 0,!0)},children:(0,H.jsx)(uj,{placement:`bottom`,title:a.t(`sheets-hyper-link-ui.popup.cancel`),children:(0,H.jsx)(LD,{className:`dark:!univer-text-white`})})})]})]})]})},F9=()=>{let e=U(I9),[t,n]=(0,V.useState)(null),r=U(z);if((0,V.useEffect)(()=>{n(e.currentPopup);let t=e.currentPopup$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[e.currentPopup,e.currentPopup$]),!t)return null;if(t.showAll){var i;let e=(r.getUnit(t.unitId,M.UNIVER_SHEET)?.getSheetBySheetId(t.subUnitId))?.getCell(t.row,t.col),n=e==null||(i=e.p)==null||(i=i.body)==null?void 0:i.customRanges;return n?.length?(0,H.jsx)(`div`,{children:n.map(e=>(0,H.jsx)(qPt,{...t,customRange:e},e.rangeId))}):null}return(0,H.jsx)(qPt,{...t})};F9.componentKey=`univer.sheet.cell-link-popup`;var JPt=(e,t)=>e.unitId===t.unitId&&e.subUnitId===t.subUnitId&&e.row===t.row&&e.col===t.col&&e.customRange?.rangeId===t.customRange?.rangeId&&e.type===t.type,I9=class extends P{get currentPopup(){return this._currentPopup}get currentEditing(){return this._currentEditing$.getValue()}constructor(e,t,n,r,i,a,o){super(),this._sheetCanvasPopManagerService=e,this._injector=t,this._univerInstanceService=n,this._editorBridgeService=r,this._textSelectionManagerService=i,this._docCanvasPopManagerService=a,this._zenZoneService=o,N9(this,`_currentPopup`,null),N9(this,`_currentPopup$`,new ao),N9(this,`currentPopup$`,this._currentPopup$.asObservable()),N9(this,`_currentEditingPopup`,null),N9(this,`_currentEditing$`,new so(null)),N9(this,`currentEditing$`,this._currentEditing$.asObservable()),N9(this,`_isKeepVisible`,!1),this.disposeWithMe(()=>{this.hideCurrentPopup(),this.endEditing(),this._currentEditing$.complete(),this._currentPopup$.complete()})}setIsKeepVisible(e){this._isKeepVisible=e}getIsKeepVisible(){return this._isKeepVisible}showPopup(e){if(this._currentPopup&&JPt(e,this._currentPopup)||(this.hideCurrentPopup(void 0,!0),e.type!==`zen_mode`&&this._zenZoneService.visible))return;let t=this._currentEditing$.getValue();if(t&&JPt(e,t))return;let{unitId:n,subUnitId:r,row:i,col:a,customRangeRect:o,customRange:s}=e,c,l={componentKey:F9.componentKey,direction:`bottom`,onClickOutside:()=>{this.hideCurrentPopup()},onClick:()=>{this.hideCurrentPopup(e.type,!0)}};if(e.type===`editing`){if(!s)return;c=o&&this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(o,l)}else if(e.type===`zen_mode`){if(!s)return;c=this._docCanvasPopManagerService.attachPopupToRange({startOffset:s.startIndex,endOffset:s.endIndex+1,collapsed:!1},l,rf)}else if(e.showAll)c=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,l,n,r);else{if(!s)return;c=o&&this._sheetCanvasPopManagerService.attachPopupByPosition(o,l,e)}if(c){if(this._currentPopup){var u;(u=this._currentPopup.disposable)==null||u.dispose()}this._currentPopup={unitId:n,subUnitId:r,disposable:c,row:i,col:a,editPermission:!!e.editPermission,copyPermission:!!e.copyPermission,customRange:s,type:e.type,showAll:e.showAll},this._currentPopup$.next(this._currentPopup)}}hideCurrentPopup(e,t){if(this._currentPopup&&((!e||e===this._currentPopup.type)&&this._currentPopup.disposable.canDispose()||t)){var n;(n=this._currentPopup)==null||(n=n.disposable)==null||n.dispose(),this._currentPopup=null,this._currentPopup$.next(null)}}dispose(){super.dispose(),this.hideCurrentPopup(),this.endEditing(),this._currentPopup$.complete(),this._currentEditing$.complete()}_getEditingRange(){let e=this._editorBridgeService.isVisible().visible,t=this._editorBridgeService.getEditCellState();if(e&&t){let e=this._textSelectionManagerService.getActiveTextRange(),n=t.documentLayoutObject.documentModel?.getBody();if(!n)return null;if(!e||e.collapsed)return{startOffset:0,endOffset:n.dataStream.length-2,collapsed:n.dataStream.length-2==0,label:by.transform.getPlainText(n.dataStream)};let r=by.customRange.getCustomRangesInterestsWithSelection(e,n.customRanges?.filter(e=>e.rangeType===Lp.HYPERLINK)??[]),i=e.startOffset,a=e.endOffset;return r.forEach(e=>{i=Math.min(i,e.startIndex),a=Math.max(a,e.endIndex+1)}),{startOffset:i,endOffset:a,collapsed:i===a,label:by.transform.getPlainText(n.dataStream.slice(i,a))}}return null}get _editPopup(){return{componentKey:P9.componentKey,direction:`vertical`,onClickOutside:()=>{this.endEditing()},onContextMenu:()=>{this.endEditing()},hiddenType:`hide`}}startAddEditing(e){let{unitId:t,subUnitId:n,type:r}=e;if(r===`zen_mode`){let t=this._univerInstanceService.getUnit(rf,M.UNIVER_DOC);if(!t)return;let n=this._textSelectionManagerService.getActiveTextRange();if(!n)return;this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange(n,this._editPopup,rf);let r=t.getBody()?.dataStream.slice(n.startOffset,n.endOffset);this._currentEditing$.next({...e,label:r})}else if(r===`editing`){let r=this._getEditingRange();if(!r)return;this._textSelectionManagerService.replaceDocRanges([{...r}],{unitId:tf,subUnitId:tf});let i=this._injector.get(zE).getRenderById(tf);if(!i)return;let a=qI(r,i);if(!a?.length)return;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(a.pop(),this._editPopup,t,n),this._currentEditing$.next({...e,label:r?.label??``})}else{this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,this._editPopup,t,n);let r=(this._univerInstanceService.getUnit(t,M.UNIVER_SHEET)?.getSheetBySheetId(n))?.getCellRaw(e.row,e.col);this._currentEditing$.next({...e,label:r?.p?by.transform.getPlainText(r.p.body?.dataStream??``):(r?.v??``).toString()})}}startEditing(e){var t;(t=this._currentEditingPopup)==null||t.dispose(),this.hideCurrentPopup(void 0,!0);let{unitId:n,subUnitId:r}=e,i,a;if(e.type===`zen_mode`){var o,s;let t=this._univerInstanceService.getUnit(rf,M.UNIVER_DOC);if(i=t==null||(o=t.getBody())==null||(o=o.customRanges)==null?void 0:o.find(t=>t.rangeId===e.customRangeId),a=i?t==null||(s=t.getBody())==null?void 0:s.dataStream.slice(i.startIndex,i.endIndex+1):``,!i||!a)return;this._textSelectionManagerService.replaceTextRanges([{startOffset:i.startIndex,endOffset:i.endIndex+1}]),this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange({startOffset:i.startIndex,endOffset:i.endIndex,collapsed:!1},this._editPopup,rf)}else if(e.type===`editing`){let t=Lvt(this._injector,e.unitId,e.subUnitId,e.row,e.col,e.customRangeId);if(!t||!t.rects?.length)return;i=t.customRange,a=t.label,this._textSelectionManagerService.replaceTextRanges([{startOffset:i.startIndex,endOffset:i.endIndex+1}]),this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(t.rects.pop(),this._editPopup,n,r)}else{let t=this._univerInstanceService.getUnit(n,M.UNIVER_SHEET),o=(t?.getSheetBySheetId(r))?.getCellRaw(e.row,e.col),s=t?.getStyles().getStyleByCell(o)?.tr,c=Ivt(this._injector,e.unitId,e.subUnitId,e.row,e.col,e.customRangeId);if(!c||!c.rects?.length)return;i=c.customRange,a=c.label,this._currentEditingPopup=s?this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,this._editPopup,n,r):this._sheetCanvasPopManagerService.attachPopupByPosition(c.rects.pop(),this._editPopup,{unitId:n,subUnitId:r,row:e.row,col:e.col})}this._currentEditing$.next({...e,customRange:i,label:a})}endEditing(e){if(this.getIsKeepVisible())return;let t=this._currentEditing$.getValue();if(t&&(!e||e===t.type)){var n;(n=this._currentEditingPopup)==null||n.dispose(),this._currentEditing$.next(null)}}};I9=A9([k9(0,j(i2)),k9(1,j(We)),k9(2,z),k9(3,d1),k9(4,j(YE)),k9(5,j(JI)),k9(6,BM)],I9);var YPt=new Set([Fx.CHECKBOX,Fx.LIST,Fx.LIST_MULTIPLE]),XPt=(e,t,n,r)=>{var i,a;let o=t.getCell(n,r);if(o?.f||o?.si||o!=null&&(i=o.p)!=null&&(i=i.body)!=null&&(i=i.customBlocks)!=null&&i.length)return 1;let s=(e.has(u9)?e.get(u9):null)?.getRuleByLocation(t.getUnitId(),t.getSheetId(),n,r);return s&&YPt.has(s.type)?!0:o!=null&&(a=o.p)!=null&&(a=a.drawingsOrder)!=null&&a.length?2:0},ZPt=e=>{let t=e.get(z).getCurrentUnitOfType(M.UNIVER_SHEET);if(!t)return!0;let n=t.getActiveSheet(),r=e.get(HK).getCurrentSelections();if(!r.length)return!0;let i=r[0].range.startRow,a=r[0].range.startColumn;return XPt(e,n,i,a)===1},QPt=e=>{let t=e.get(YE),n=e.get(z),r=t.getTextRanges();if(!r?.length)return!0;let i=n.getCurrentUnitOfType(M.UNIVER_DOC);return!(i&&!r.every(e=>e.collapsed)&&i.getSelfOrHeaderFooterModel(r[0].segmentId).getBody())},$Pt={type:L.OPERATION,id:`sheet.operation.open-hyper-link-edit-panel`,handler(e,t){if(!t)return!1;let n=e.get(I9);return t.customRangeId?n.startEditing(t):n.startAddEditing(t),!0}},L9={type:L.OPERATION,id:`sheet.operation.close-hyper-link-popup`,handler(e){return e.get(I9).endEditing(),!0}},eFt={type:L.OPERATION,id:`sheet.operation.insert-hyper-link`,handler(e){let t=e.get(z),n=bG(t),r=e.get(d1);if(!n)return!1;let i=e.get(R),a=e.get(HK).getCurrentLastSelection();if(!a)return!1;let o=a.range.startRow,s=a.range.startColumn,c=r.isVisible(),l=t.getFocusedUnit()?.getUnitId()===rf;return i.executeCommand($Pt.id,{unitId:n.unitId,subUnitId:n.subUnitId,row:o,col:s,type:l?`zen_mode`:c.visible?`editing`:`viewing`})}},R9={type:L.OPERATION,id:`sheet.operation.insert-hyper-link-toolbar`,handler(e){if(ZPt(e))return!1;let t=e.get(R);return e.get(I9).currentEditing?t.executeCommand(L9.id):t.executeCommand(eFt.id)}},tFt=`SHEET_HYPER_LINK_UI_PLUGIN`,z9=class extends P{registerPlainTextFilter(e){this._plainTextFilter.add(e)}removePlainTextFilter(e){this._plainTextFilter.delete(e)}_filterPlainText(e){return Array.from(this._plainTextFilter).every(t=>t(e))}constructor(e,t,n,r){super(),this._sheetClipboardService=e,this._hyperLinkModel=t,this._injector=n,this._resolverService=r,N9(this,`_plainTextFilter`,new Set),N9(this,`_copyInfo`,void 0),this._initCopyPaste(),this.disposeWithMe(()=>{this._plainTextFilter.clear()})}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:tFt,onBeforeCopy:(e,t,n)=>this._collect(e,t,n),onPasteCells:(e,t,n,r)=>{let{copyType:i=MQ.COPY,pasteType:a}=r,{range:o}=e||{},{range:s,unitId:c,subUnitId:l}=t;return this._generateMutations(s,{copyType:i,pasteType:a,copyRange:o,unitId:c,subUnitId:l})},onPastePlainText:(e,t)=>{let n=this._filterPlainText(t);if(O9(t)&&n){let{range:t,unitId:n,subUnitId:r}=e,{ranges:[i],mapFunc:a}=lQ([t]),o=[],s=[];return $g.foreach(i,(e,t)=>{let{row:i,col:c}=a(e,t),l=this._hyperLinkModel.getHyperLinkByLocation(n,r,i,c);l&&o.push({id:w7.id,params:{unitId:n,subUnitId:r,id:l.id}}),l&&s.push({id:C7.id,params:{unitId:n,subUnitId:r,link:l}})}),{redos:o,undos:s}}return{undos:[],redos:[]}},priority:99})}_collect(e,t,n){let r=new Ih;this._copyInfo={unitId:e,subUnitId:t,matrix:r};let i=this._injector.invoke(r=>NK(n,r,e,t));if(!i)return;let{rows:a,cols:o}=i;a.forEach((n,i)=>{o.forEach((a,o)=>{let s=this._hyperLinkModel.getHyperLinkByLocation(e,t,n,a);r.setValue(i,o,s?.id??``)})})}_generateMutations(e,t){if(!this._copyInfo||!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!t.copyRange||[LQ.SPECIAL_PASTE_COL_WIDTH,LQ.SPECIAL_PASTE_VALUE,LQ.SPECIAL_PASTE_FORMAT,LQ.SPECIAL_PASTE_FORMULA].includes(t.pasteType))return{redos:[],undos:[]};let{unitId:n,subUnitId:r}=this._copyInfo,i=[],a=[],{ranges:[o,s],mapFunc:c}=lQ([t.copyRange,e]);return jgt(o,s,!0).forEach(({startRange:e})=>{var o;(o=this._copyInfo)==null||o.matrix.forValue((o,s,l)=>{let u=l_.getPositionRange({startRow:o,endRow:o,startColumn:s,endColumn:s},e),d=this._hyperLinkModel.getHyperLink(n,r,l),{row:f,col:p}=c(u.startRow,u.startColumn),m=this._hyperLinkModel.getHyperLinkByLocation(t.unitId,t.subUnitId,f,p),h=rp();m&&i.push({id:w7.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,id:m.id}}),d&&(i.push({id:C7.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,link:{...d,id:h,row:f,column:p}}}),a.push({id:w7.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,id:h}})),m&&a.push({id:C7.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,link:m}})})}),{redos:i,undos:a}}};z9=A9([k9(0,RQ),k9(1,j(S7)),k9(2,j(We)),k9(3,j(j9))],z9);var nFt=(e,t=rf)=>{let n=e.get(z),r=e.get(zE).getRenderById(t)?.with(YF);return r?r.textSelectionInner$.pipe(os(()=>{let t=e.get(d1).getEditCellState();if(!t)return!0;let r=bG(n,{unitId:t.unitId,subUnitId:t.sheetId});return!r?.worksheet||XPt(e,r.worksheet,t.row,t.column)===1||QPt(e)})):ts(!0)},rFt=e=>{let t=e.get(z),n=e.has(d1)?e.get(d1):null;return(n?.currentEditCellState$.pipe(os(n=>{if(!n)return 1;let r=bG(t,{unitId:n.unitId,subUnitId:n.sheetId});return r?XPt(e,r.worksheet,n.row,n.column):1}),sc(r=>r===1?ts(!0):_s([n?n.visible$:ts(null),t.getCurrentTypeOfUnit$(M.UNIVER_DOC)]).pipe(sc(([t,n])=>t?.visible?n?.getUnitId()===nf?ts(!0):nFt(e,tf):ts(r!==0)))))??ts(!0)).pipe(sc(t=>t?ts(!0):T0(e,{workbookTypes:[rX],worksheetTypes:[hX,SX,vX],rangeTypes:[KY]},!0)))},B9={commandId:eFt.id,type:yM.BUTTON,title:`sheets-hyper-link-ui.menu.add`,icon:`LinkIcon`},V9=e=>`${e}-zen-editor`,iFt=e=>({...B9,id:B9.commandId,hidden$:Nj(e,M.UNIVER_SHEET),disabled$:rFt(e)}),aFt=e=>({...B9,id:V9(B9.commandId),hidden$:Nj(e,M.UNIVER_DOC,rf),disabled$:nFt(e)}),H9={tooltip:`sheets-hyper-link-ui.form.addTitle`,commandId:R9.id,type:yM.BUTTON,icon:`LinkIcon`},oFt=e=>({...H9,id:H9.commandId,hidden$:Nj(e,M.UNIVER_SHEET),disabled$:rFt(e)}),sFt=e=>({...H9,id:V9(H9.commandId),hidden$:Nj(e,M.UNIVER_DOC,rf),disabled$:nFt(e)}),cFt={id:R9.id,binding:iM.K|aM.CTRL_COMMAND,preconditions:iQ},lFt=`@univerjs/sheets-hyper-link-ui`,uFt=`0.25.1`,U9=class extends P{constructor(e,t){super(),this._autoFillService=e,this._hyperLinkModel=t,this._initAutoFill()}_initAutoFill(){let e=()=>({redos:[],undos:[]}),t=(e,t)=>{let{source:n,target:r,unitId:i,subUnitId:a}=e,o=lQ([n,r]),[s,c]=o.ranges,{mapFunc:l}=o,u={row:s.startRow,col:s.startColumn},d=IJ.getAutoFillRepeatRange(s,c),f=[],p=[];return d.forEach(e=>{let n=e.repeatStartCell,r=e.relativeRange,o={startRow:u.row,startColumn:u.col,endColumn:u.col,endRow:u.row},s={startRow:n.row,startColumn:n.col,endColumn:n.col,endRow:n.row};$g.foreach(r,(e,n)=>{let r=l_.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},o),{row:c,col:u}=l(r.startRow,r.startColumn),d=this._hyperLinkModel.getHyperLinkByLocation(i,a,c,u),m=l_.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},s),{row:h,col:g}=l(m.startRow,m.startColumn),_=rp(),v=this._hyperLinkModel.getHyperLinkByLocation(i,a,h,g);v&&f.push({id:w7.id,params:{unitId:i,subUnitId:a,id:v.id}}),(LJ.COPY===t||LJ.SERIES===t)&&d&&(f.push({id:C7.id,params:{unitId:i,subUnitId:a,link:{...d,id:_,row:h,column:g}}}),p.push({id:w7.id,params:{unitId:i,subUnitId:a,id:_}})),v&&p.push({id:C7.id,params:{unitId:i,subUnitId:a,link:v}})})}),{undos:p,redos:f}},n={id:tFt,onFillData:(n,r,i)=>i===LJ.COPY||i===LJ.ONLY_FORMAT||i===LJ.SERIES?t(n,i):e()};this.disposeWithMe(this._autoFillService.addHook(n))}};U9=A9([k9(0,qJ),k9(1,j(S7))],U9);var W9=class extends P{constructor(e,t,n){super(),this._localeService=e,this._commandService=t,this._sheetPermissionCheckController=n,this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{e.id===cFt.id&&(this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[rX],rangeTypes:[KY],worksheetTypes:[hX,SX,vX]})||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localeService.t(`sheets-hyper-link-ui.permission.hyperLinkErr`)))}))}};W9=A9([k9(0,j(Xb)),k9(1,R),k9(2,j(QX))],W9);var G9=class extends P{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._hoverManagerService=e,this._sheetsHyperLinkPopupService=t,this._renderManagerService=n,this._permissionService=r,this._sheetPermissionCheckController=i,this._commandService=a,this._editorBridgeService=o,this._textSelectionManagerService=s,this._univerInstanceService=c,this._zenZoneService=l,this._initHoverListener(),this._initCommandListener(),this._initHoverEditingListener(),this._initTextSelectionListener(),this._initZenEditor()}_getLinkPermission(e){let{unitId:t,subUnitId:n,row:r,col:i}=e,a=this._univerInstanceService.getUnit(t,M.UNIVER_SHEET)?.getSheetBySheetId(n);if(!a)return{viewPermission:!1,editPermission:!1,copyPermission:!1};let o=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[uX],worksheetTypes:[EX],rangeTypes:[JY]},[{startRow:r,startColumn:i,endRow:r,endColumn:i}],t,n),s=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[rX],worksheetTypes:[hX,vX],rangeTypes:[KY]},[{startRow:r,startColumn:i,endRow:r,endColumn:i}],t,n),c=a.getCellRaw(r,i);c?.f&&c.f.startsWith(`=HYPERLINK(`)&&(s=!1);let l=this._permissionService.composePermission([new ZY(t).id,new dX(t,n).id]).every(e=>e.value);return{viewPermission:o,editPermission:s,copyPermission:l}}_initHoverListener(){this.disposeWithMe(this._hoverManagerService.currentRichText$.pipe(Ks(200)).subscribe(e=>{var t,n;if(!e||e.customRange?.rangeType!==Lp.HYPERLINK){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let{unitId:r,subUnitId:i,row:a,col:o}=e,s=this._renderManagerService.getRenderById(r);if(!s)return;let c=this._univerInstanceService.getUnit(r,M.UNIVER_SHEET),l=c?.getSheetBySheetId(i);if(!l)return;if(!s.with(t0).active){this._sheetsHyperLinkPopupService.hideCurrentPopup(`viewing`);return}let u=s==null||(t=s.with(TQ).getSkeletonParam(i))==null?void 0:t.skeleton,d=o,f=a,p=f,m=d;u&&u.overflowCache.forValue((e,t,n)=>{l_.contains(n,{startColumn:d,endColumn:d,startRow:f,endRow:f})&&(p=e,m=t)});let{viewPermission:h,editPermission:g,copyPermission:_}=this._getLinkPermission(e);if(!h){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let v=l.getCellStyleOnly(p,m),y=c.getStyles().getStyleByCell(v),b=y==null||(n=y.tr)==null?void 0:n.a;if(!b&&!e.customRange){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}this._sheetsHyperLinkPopupService.showPopup({row:p,col:m,editPermission:g,copyPermission:_,customRange:e.customRange,customRangeRect:e.rect,type:`viewing`,unitId:r,subUnitId:i,showAll:!!b})}))}_initHoverEditingListener(){let e=null;this.disposeWithMe(this._editorBridgeService.currentEditCellState$.pipe(sc(e=>this._editorBridgeService.visible$.pipe(os(t=>({visible:t,state:e}))))).subscribe(({visible:t,state:n})=>{if(!n||n.editorUnitId!==tf)return;if(!t.visible){e?.unsubscribe(),this._sheetsHyperLinkPopupService.hideCurrentPopup(`editing`),this._sheetsHyperLinkPopupService.endEditing(`editing`);return}let{editorUnitId:r,unitId:i,sheetId:a,row:o,column:s}=n,c=this._renderManagerService.getRenderById(r);if(!c)return;let{editPermission:l,viewPermission:u,copyPermission:d}=this._getLinkPermission({unitId:i,subUnitId:a,row:o,col:s}),f=c.with(XI);u&&(e?.unsubscribe(),e=f.hoverCustomRanges$.pipe(Ks(200)).subscribe(e=>{var t;let n=e.find(e=>e.range.rangeType===Lp.HYPERLINK);if(!n){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let r=n.rects[n.rects.length-1];if(!((t=this._renderManagerService.getRenderById(i))!=null&&(t=t.with(TQ).getSkeletonParam(a))!=null&&t.skeleton)||!r)return;let u=c.engine.getCanvasElement().getBoundingClientRect();this._sheetsHyperLinkPopupService.showPopup({unitId:i,subUnitId:a,row:o,col:s,customRange:n.range,customRangeRect:{left:r.left+u.left,top:r.top+u.top,bottom:r.bottom+u.top,right:r.right+u.left},editPermission:l,copyPermission:d,type:`editing`})}))})),this.disposeWithMe(()=>{e?.unsubscribe()})}_initZenEditor(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e?(this._sheetsHyperLinkPopupService.hideCurrentPopup(`viewing`),this._sheetsHyperLinkPopupService.hideCurrentPopup(`editing`),this._sheetsHyperLinkPopupService.endEditing(`editing`),this._sheetsHyperLinkPopupService.hideCurrentPopup(`viewing`)):(this._sheetsHyperLinkPopupService.hideCurrentPopup(`zen_mode`),this._sheetsHyperLinkPopupService.endEditing(`zen_mode`))})),this.disposeWithMe(this._univerInstanceService.focused$.pipe(sc(e=>{let t=e===rf?this._renderManagerService.getRenderById(e):null;return t?t.with(XI).hoverCustomRanges$.pipe(Ks(200)):new Ya(e=>{e.next(null)})})).subscribe(e=>{let t=e?.find(e=>e.range.rangeType===Lp.HYPERLINK),n=this._editorBridgeService.getEditCellState();if(t&&n){let{unitId:e,sheetId:r,row:i,column:a}=n,{editPermission:o,viewPermission:s,copyPermission:c}=this._getLinkPermission({unitId:e,subUnitId:r,row:i,col:a});s&&this._sheetsHyperLinkPopupService.showPopup({type:`zen_mode`,unitId:e,subUnitId:r,row:i,col:a,customRange:t.range,editPermission:o,copyPermission:c})}else this._sheetsHyperLinkPopupService.hideCurrentPopup(`zen_mode`)}))}_initTextSelectionListener(){this.disposeWithMe(this._textSelectionManagerService.textSelection$.subscribe(e=>{e&&e.unitId===tf&&this._sheetsHyperLinkPopupService.endEditing(`editing`)}))}_initCommandListener(){let e=[XJ.id,JK.id,YK.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{e.includes(t.id)&&this._sheetsHyperLinkPopupService.hideCurrentPopup()}))}};G9=A9([k9(0,j(e0)),k9(1,j(I9)),k9(2,j(zE)),k9(3,j(ex)),k9(4,j(QX)),k9(5,R),k9(6,d1),k9(7,j(YE)),k9(8,z),k9(9,BM)],G9);var dFt=class extends P{constructor(e,t){super(),this._context=e,this._hyperLinkModel=t,this._initSkeletonChange()}_initSkeletonChange(){let e=()=>{var e;(e=this._context.mainComponent)==null||e.makeForceDirty()};this.disposeWithMe(this._hyperLinkModel.linkUpdate$.pipe(Ks(16)).subscribe(()=>{e()}))}};dFt=A9([k9(1,j(S7))],dFt);var fFt={[fM.MEDIA]:{[R9.id]:{order:1,menuItemFactory:oFt},[V9(R9.id)]:{order:1,menuItemFactory:sFt}},[mM.MAIN_AREA]:{[hM.OTHERS]:{order:1,[R9.id]:{order:0,menuItemFactory:iFt},[V9(R9.id)]:{order:0,menuItemFactory:aFt}}}},K9=class extends P{constructor(e,t,n,r,i){super(),this._componentManager=e,this._commandService=t,this._menuManagerService=n,this._injector=r,this._shortcutService=i,this._initComponents(),this._initCommands(),this._initMenus(),this._initShortCut()}_initComponents(){[[F9.componentKey,F9],[P9.componentKey,P9],[`LinkIcon`,DD]].forEach(([e,t])=>{this._componentManager.register(e,t)})}_initCommands(){[$Pt,L9,eFt,R9].forEach(e=>{this._commandService.registerCommand(e)})}_initMenus(){this._menuManagerService.mergeMenu(fFt)}_initShortCut(){this._shortcutService.registerShortcut(cFt)}};K9=A9([k9(0,j(Mj)),k9(1,R),k9(2,gM),k9(3,j(We)),k9(4,j(sM))],K9);var q9=class extends P{constructor(e,t){super(),this._parserService=e,this._resolverService=t,this._handleInitUrl()}_handleInitUrl(){let e=location.hash;if(e){let t=this._parserService.parseHyperLink(e);this._resolverService.navigate(t)}}};q9=A9([k9(0,j(P7)),k9(1,j(j9))],q9);var J9=class extends ax{constructor(e=zPt,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{menu:r,...i}=Qi({},zPt,this._config);r&&this._configService.setConfig(`menu`,r,{merge:!0}),this._configService.setConfig(RPt,i)}onStarting(){[[j9],[I9],[UPt],[G9],[K9],[U9],[z9],[W9],[q9]].forEach(e=>this._injector.add(e))}onReady(){this._injector.get(zE).registerRenderModule(M.UNIVER_SHEET,[dFt]),this._injector.get(U9),this._injector.get(z9),this._injector.get(K9)}onRendered(){this._injector.get(W9),this._injector.get(q9),this._injector.get(G9)}};N9(J9,`pluginName`,tFt),N9(J9,`packageName`,lFt),N9(J9,`version`,uFt),N9(J9,`type`,M.UNIVER_SHEET),J9=A9([sx(F7,CL),k9(1,j(We)),k9(2,Mm)],J9);var pFt={"sheets-hyper-link-ui":{form:{editTitle:`编辑链接`,addTitle:`插入链接`,label:`文本`,labelPlaceholder:`输入文本`,type:`类型`,link:`链接`,linkPlaceholder:`输入链接地址`,range:`单元格`,worksheet:`工作表`,definedName:`定义的名称`,ok:`确认`,cancel:`取消`,inputError:`请输入`,selectError:`请选择`,linkError:`请输入合法的链接`},menu:{add:`添加链接`},message:{noSheet:`该子表已被删除`,refError:`错误的引用`,hiddenSheet:`无法打开被隐藏的子表`,coped:`链接已被复制到剪贴板`},popup:{copy:`复制`,edit:`编辑`,cancel:`取消链接`}}},mFt={pdf:[`📕`,`application/pdf`],doc:[`📘`,`application/msword`],docx:[`📘`,`application/vnd.openxmlformats-officedocument.wordprocessingml.document`],xls:[`📗`,`application/vnd.ms-excel`],xlsx:[`📗`,`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`],zip:[`📦`,`application/zip`],rar:[`📦`,`application/vnd.rar`],"7z":[`📦`,`application/x-7z-compressed`],png:[`🖼️`,`image/png`],jpg:[`🖼️`,`image/jpeg`],jpeg:[`🖼️`,`image/jpeg`],gif:[`🖼️`,`image/gif`],webp:[`🖼️`,`image/webp`],bmp:[`🖼️`,`image/bmp`],mp4:[`🎬`,`video/mp4`],mov:[`🎬`,`video/quicktime`],webm:[`🎬`,`video/webm`],avi:[`🎬`,`video/x-msvideo`],mkv:[`🎬`,`video/x-matroska`],mp3:[`🎵`,`audio/mpeg`],wav:[`🎵`,`audio/wav`],m4a:[`🎵`,`audio/mp4`],aac:[`🎵`,`audio/aac`]},hFt=31457280,gFt=Object.keys(mFt).map(e=>`.${e}`).join(`,`);function Y9(e){let t=String(e||``).split(`.`).pop().toLowerCase();return Object.hasOwn(mFt,t)?mFt[t]:null}function _Ft(e,t=20){let n=String(e||``),r=Array.from(n);if(r.length<=t)return n;let i=n.lastIndexOf(`.`),a=i>0?n.slice(i):``,o=Array.from(a);return a&&o.length<=6?r.slice(0,Math.max(1,t-o.length-1)).join(``)+`…`+a:r.slice(0,Math.max(1,t-1)).join(``)+`…`}function vFt(e){let t=String(e||``).replace(/[\u0000-\u001f\u007f]/g,` `);return`${Y9(e)?.[0]||`📎`} ${_Ft(t)}`}function X9(e){if(typeof e!=`string`||!e.trim()||/[\s\\]/.test(e)||!/^https?:\/\//i.test(e)&&!/^\/(?!\/)/.test(e))return!1;try{let t=new URL(e,`https://attachment.invalid`);return[`http:`,`https:`].includes(t.protocol)&&!t.username&&!t.password}catch{return!1}}function yFt(e){return!e||!Number.isFinite(e.size)||e.size<=0?`请选择非空文件`:e.size>hFt?`附件不能超过 30MB`:!e.name?.includes(`.`)||!Y9(e.name)?`不支持此文件格式`:``}async function bFt(e,t){let n=yFt(e);if(n)throw Error(n);if(typeof t!=`function`)throw Error(`请先配置附件上传服务`);let r=await t(e),i=typeof r==`string`?r:r?.url;if(!X9(i))throw Error(`上传未返回有效的持久化地址`);return{version:1,url:i,name:e.name,size:e.size,mimeType:Y9(e.name)[1]}}function xFt(e,t){return{v:vFt(e.name),t:1,p:null,f:null,si:null,s:{cl:{rgb:`#3370ff`},ul:{s:1},tb:1},custom:{...t?.custom,hxyAttachment:{...e}}}}function SFt(e){let t=e?.custom?.hxyAttachment;return t?.version!==1||!X9(t.url)||!Y9(t.name)||e.f||e.p||e.v!==vFt(t.name)?null:t}function CFt(e,t){let n=Y9(e.name)?.[1]||``;return n===`application/pdf`?t.navigator?.pdfViewerEnabled!==!1:n.startsWith(`image/`)?!0:n.startsWith(`video/`)||n.startsWith(`audio/`)?!!t.document.createElement(n.split(`/`)[0]).canPlayType(n):!1}async function wFt(e,t={},n=!1,r=globalThis){if(!X9(e?.url))throw Error(`附件地址无效`);if(!n&&typeof t?.previewAttachment==`function`)try{if(t.previewAttachment({...e})===!0)return}catch{}let i=null,a=``,o=r.defer||((e,t)=>setTimeout(e,t));try{!n&&CFt(e,r)&&(i=r.window.open(`about:blank`,`_blank`),i&&(i.opener=null));let o=typeof t?.resolveAttachment==`function`?await t.resolveAttachment(e.url):e.url;if(!X9(o))throw Error(`无法取得附件访问地址`);let s=await r.fetch(o);if(!s.ok)throw Error(`附件加载失败(HTTP ${s.status})`);let c=s.headers.get(`content-type`)||``;if(/html|svg|javascript|json/i.test(c))throw Error(`附件返回了非预期内容`);let l=await s.blob();if(l.size>hFt)throw Error(`附件不能超过 30MB`);let u=new r.Blob([l],{type:Y9(e.name)?.[1]||`application/octet-stream`});if(a=r.URL.createObjectURL(u),i&&!i.closed)i.location.replace(a);else{let t=r.document.createElement(`a`);t.href=a,t.download=e.name||`附件`,t.style.display=`none`,r.document.body.appendChild(t);try{t.click()}finally{t.remove()}}}catch(e){throw i?.close(),e}finally{a&&o(()=>r.URL.revokeObjectURL(a),i?3e5:1e3)}}var TFt={class:`sheet-shell`},EFt={key:0,class:`sheet-attachments`},DFt=[`disabled`],OFt=[`accept`],kFt=[`title`],AFt=[`disabled`],jFt=[`disabled`],MFt={key:2,role:`alert`,class:`attachment-error`},NFt={key:1,role:`status`,class:`sheet-attachments`},PFt={class:`sheet-canvas`},FFt={class:`sheet-statusbar`},IFt={class:`status-cell`},LFt={key:1,class:`status-hint`},RFt={key:2,class:`status-readonly`},zFt={key:3,class:`status-tip`},BFt=`univer-sheet://`,VFt=2,Z9=`workers/univer-sheet.worker.js`,HFt=$st({__name:`SheetEditor`,props:{visible:{type:Boolean,default:!0},type:{type:String,default:`edit`,validator:e=>[`view`,`edit`].includes(e)},server:{type:Object,default:null},collaboration:{type:Object,default:null},workerUrl:{type:String,default:``}},emits:[`workbook-activated`],setup(e,{expose:n,emit:r}){let i=e,a=(0,t.ref)(!!i.server?.cloudSync),o=(0,t.ref)(``),s=(0,t.computed)(()=>i.type===`view`||a.value);function c(e,t){a.value=e,o.value=t,Ae()}async function l(){try{await ne.restore({force:!0})}catch{}}let u=r,d=(0,t.ref)(null),f=(0,t.shallowRef)(null),p=(0,t.ref)(null),m=(0,t.ref)(!1),h=(0,t.ref)(!1),g=(0,t.ref)(``),_=(0,t.shallowRef)(null),v=null,y=null,b=null,x=0;function S(){let e=f.value,t=e?.getActiveWorkbook?.(),n=t?.getActiveSheet?.(),r=t?.getActiveRange?.(),i=n?.getSelection()?.getActiveRangeList();return!r||r.getWidth()!==1||r.getHeight()!==1||i?.length>1?null:{api:e,unitId:t.getId(),subUnitId:n.getSheetId(),model:n.getWorkbook(),permission:n.getWorksheetPermission(),range:r,version:se,cell:JSON.parse(JSON.stringify(r.getCellData()||{}))}}function C(){_.value=SFt(S()?.cell)}function w(e){g.value=e,clearTimeout(b),b=setTimeout(()=>{g.value=``},5e3)}function T(){if(!(s.value||m.value)){if(v=S(),!v)return w(`请先选中一个单元格`);p.value?.click()}}async function E(e){let t=e.target.files?.[0];e.target.value=``;let n=v;v=null,t&&await D(t,n)}async function D(e,t=S()){if(s.value||m.value||!f.value)return;if(!t)return w(`请先选中一个单元格`);let n=yFt(e);if(n)return w(n);if(!t.permission.canEditCell(t.range.getRow(),t.range.getColumn()))return w(`此单元格不可编辑`);let r=t.cell;if(!((r.v!=null&&r.v!==``||r.p||r.f||r.custom?.hxyAttachment)&&!window.confirm(`此单元格已有内容,是否替换为附件?`))){m.value=!0;try{let n=await bFt(e,i.server?.attachmentUpload),a=f.value;if(!a)return;let o=a.getActiveWorkbook();if(s.value||a!==t.api||se!==t.version||o?.getId()!==t.unitId||o.getActiveSheet()?.getWorkbook()!==t.model||o.getActiveSheet()?.getSheetId()!==t.subUnitId||!t.permission.canEditCell(t.range.getRow(),t.range.getColumn()))throw Error(`工作表已变更或切为只读,请重新插入附件`);if(!await a.executeCommand(`sheet.command.set-range-values`,{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range.getRange(),value:xFt(n,r)}))throw Error(`附件写入失败,请重试`);C()}catch(e){f.value&&w(e.message||`附件上传失败`)}finally{m.value=!1}}}function O(e){let t=S();if(!t||e.worksheet?.getSheetId()!==t.subUnitId||e.row!==t.range.getRow()||e.column!==t.range.getColumn())return;let n=SFt(t.cell);if(!n)return;_.value=n;let r=Date.now();r-x<500||(x=r,k())}async function k(e=!1){let t=_.value;if(t&&!h.value){h.value=!0;try{await wFt(t,i.server,e)}catch(e){f.value&&w(e.message||`附件打开失败,可重试或下载`)}finally{h.value=!1}}}function A(e){he(e),C()}let ee=null,te=(0,t.shallowRef)(null),ne=i.server?.cloudSync?hG({editorRef:te,docKey:i.server.docKey||`excel:default`,docType:`excel`,cloudSync:i.server.cloudSync,snapshotInterval:i.server.snapshotInterval,mutationFlushSize:i.server.mutationFlushSize,enableIncremental:i.server.enableIncremental}):null,re=new Set,ie=null,ae=null,oe=null,se=0,ce=-1,le=null,ue=null,de=[];function fe(e){return de.push(e),()=>{let t=de.indexOf(e);t>=0&&de.splice(t,1)}}let pe=(0,t.reactive)({notation:``,cells:0,numericCount:0,sum:null,average:null});function me(){clearTimeout(ae),ae=null,pe.notation=``,pe.cells=0,pe.numericCount=0,pe.sum=null,pe.average=null}function he(e){clearTimeout(ae),ae=setTimeout(()=>{try{let{worksheet:t,selections:n}=e||{};if(!t||!n?.length){me();return}let r=l_.mergeRanges(n.map(e=>({...e}))),i=r.reduce((e,t)=>e+(t.endRow-t.startRow+1)*(t.endColumn-t.startColumn+1),0);if(pe.cells=i,pe.notation=n.map(e=>t.getRange(e).getA1Notation()).join(`, `),i>2e4){pe.numericCount=0,pe.sum=null,pe.average=null;return}let a=0,o=0;for(let e of r){let n=t.getRange(e).getCellDatas()||[];for(let e of n)for(let t of e){let e=t?.v;typeof e==`number`&&Number.isFinite(e)&&(t.t==null||t.t===Np.NUMBER)&&(a++,o+=e)}}pe.numericCount=a,pe.sum=a?o:null,pe.average=a?o/a:null}catch{me()}},150)}async function ge(e){try{let t=new AbortController,n=setTimeout(()=>t.abort(),2500),r=await fetch(e,{method:`HEAD`,signal:t.signal});return clearTimeout(n),r.ok?!(r.headers.get(`content-type`)||``).includes(`text/html`):!1}catch{return!1}}async function _e(){let e=[];i.workerUrl&&e.push(i.workerUrl);try{let t={}.url;t&&t!==`undefined://`&&e.push(new URL(`./`+Z9,t).href)}catch{}e.push(`/node_modules/hxy-editor/dist/`+Z9);try{let t=document.currentScript;t?.src&&e.push(new URL(Z9,t.src).href)}catch{}e.push(`https://unpkg.com/hxy-editor/dist/${Z9}`);let t=(await Promise.all(e.map(async e=>({url:e,ok:await ge(e)})))).find(e=>e.ok);if(t)try{return new Worker(t.url,{type:`module`})}catch{}return console.warn(`[pd-editor] Worker 加载失败,公式计算将回退到主线程`),null}let ve=!1;async function ye(){if(!(!d.value||f.value||ve)){ve=!0;try{oe=await _e();let{univer:e,univerAPI:t}=sS({locale:yp.ZH_CN,locales:{[yp.ZH_CN]:Ig([cOt,Fkt,PAt,qjt,hNt,kNt,pFt])},presets:[GDt({container:d.value,...oe?{workerURL:oe}:{}}),Pkt(),NAt(),Kjt(),mNt(),{plugins:[F7,J9]}]});be=e,f.value=t,ue=t.addEvent(t.Event.BeforeCommandExecute,e=>{s.value&&e.id===o8.id&&(e.cancel=!0),!e.cancel&&i.collaboration?.onBeforeCommand&&(i.collaboration.onBeforeCommand(e.id,e.params)||(e.cancel=!0))}),ie=t.addEvent(t.Event.SelectionChanged,A),y=t.addEvent(t.Event.CellClicked,O),le=t.addEvent(t.Event.CommandExecuted,Te),Ce(`default`),ee||=gG({univer:e,server:i.server}),ne&&!te.value&&(te.value={getData:Ee,setData:ke,getVersion:De,isDirty:Oe,setRestoreState:c,canPersist:()=>i.type!==`view`,ready:()=>!!f.value,getUniverInstance:()=>be,getUniverAPI:()=>f.value,onMutation:fe}),d.value?.addEventListener(`click`,xe)}finally{ve=!1}}}let be=null,j=0;function xe(e){e.target?.tagName===`CANVAS`&&Se()}function Se(){try{let e=f.value?.getActiveWorkbook?.();if(!e)return;let t=e?.getActiveRange?.();if(!t||t.getWidth()!==1||t.getHeight()!==1)return;let n=(e.getActiveSheet().getRange(t.getRow(),t.getColumn()).getCellData()?.p?.body?.customRanges?.find(e=>e.rangeType===0))?.properties?.url;if(!n)return;let r=Date.now();if(r-j<500)return;if(j=r,n.startsWith(BFt)){we(n.slice(15));return}let i=be?.__getInjector?.(),a=i?.get(P7),o=i?.get(j9),s=a?.parseHyperLink(n);s&&o?.navigate(s)}catch{}}function Ce(e){if(re.has(e))return;let t=f.value;t&&(t.createWorkbook({id:e,name:e}),re.add(e),Ae())}function we(e){f.value&&(Ce(e),f.value.setCurrent(e),me(),u(`workbook-activated`,e))}function Te(e){if(e?.type===VFt){if(!e.options?.fromChangeset&&!e.options?.fromCollab)for(let t of de)try{t({id:e.id,params:e.params,type:e.type,timestamp:Date.now()})}catch{}try{let e=f.value?.getActiveWorkbook?.()?.getActiveSheet?.();he({worksheet:e,selections:e?.getSelection()?.getActiveRangeList().map(e=>e.getRange())||[]})}catch{me()}}e?.id?.includes(`.operation.`)||(se++,C())}function Ee(){let e=f.value;if(!e||!re.size)return null;let t=[];for(let n of re)try{let r=e.getUniverSheet?.(n)?.save?.();r?.sheets&&t.push(JSON.parse(JSON.stringify(r)))}catch{return null}return t.length===re.size?(ce=se,{type:`univer-sheets`,workbooks:t,activeWorkbookId:e.getActiveWorkbook?.()?.getId?.()||t[0].id,version:se,savedAt:Date.now()}):null}function De(){return se}function Oe(){return se!==ce}function ke(e){let t=e?.workbooks?.filter?.(e=>e?.id&&e?.sheets);if(!t?.length)return!1;let n=f.value;if(!n)return!1;for(let e of[...re])try{n.disposeUnit?.(e)}catch{}re.clear(),me(),_.value=null;for(let e of t)try{n.createWorkbook(JSON.parse(JSON.stringify(e))),re.add(e.id)}catch{}if(re.size!==t.length)return Ae(),!1;let r=e?.activeWorkbookId;if(r&&re.has(r)){try{n.setCurrent?.(r)}catch{}u(`workbook-activated`,r)}return se++,Ae(),!0}function Ae(){let e=f.value;if(e)for(let t of re)try{e.getUniverSheet?.(t)?.setEditable?.(!s.value)}catch{}}return(0,t.watch)(()=>i.visible,e=>{e&&setTimeout(ye,100)},{immediate:!0}),(0,t.watch)(()=>i.type,()=>{f.value&&Ae()}),(0,t.onUnmounted)(()=>{clearTimeout(ae),clearTimeout(b),y?.dispose?.(),ie?.dispose?.(),ie=null,le?.dispose?.(),le=null,ue?.dispose?.(),ue=null,ee?.dispose?.(),ee=null,d.value?.removeEventListener(`click`,xe),f.value?.dispose?.(),f.value=null,oe?.terminate(),oe=null}),n({navigateTo:we,getData:Ee,setData:ke,getVersion:De,isDirty:Oe,insertAttachment:D,ready:()=>!!f.value,getUniverInstance:()=>be,getUniverAPI:()=>f.value,onMutation:fe,replayRemoteMutations:e=>{if(!Array.isArray(e))return;let t=f.value;if(t)for(let n of e)try{t.syncExecuteCommand(n.commandId,n.params??{},{onlyLocal:!0,fromChangeset:!0})}catch{}},persistence:ne}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,TFt,[!s.value&&e.server?.attachmentUpload||_.value||g.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,EFt,[!s.value&&e.server?.attachmentUpload?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,disabled:m.value,onClick:T},(0,t.toDisplayString)(m.value?`附件上传中…`:`📎 单元格上传附件`),9,DFt)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`input`,{ref_key:`attachmentInputRef`,ref:p,type:`file`,hidden:``,accept:(0,t.unref)(gFt),onChange:E},null,40,OFt),_.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createElementVNode)(`span`,{class:`attachment-name`,title:_.value.name},(0,t.toDisplayString)(_.value.name),9,kFt),(0,t.createElementVNode)(`button`,{type:`button`,disabled:h.value,onClick:r[0]||=e=>k()},`打开附件`,8,AFt),(0,t.createElementVNode)(`button`,{type:`button`,disabled:h.value,onClick:r[1]||=e=>k(!0)},`下载`,8,jFt)],64)):(0,t.createCommentVNode)(``,!0),g.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,MFt,(0,t.toDisplayString)(g.value),1)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0),a.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,NFt,[(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(o.value?`恢复失败:${o.value},已暂停编辑和保存`:`正在恢复工作表…`),1),o.value?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,onClick:l},`重试恢复`)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,PFt,[(0,t.createElementVNode)(`div`,{ref_key:`containerRef`,ref:d,class:`sheet-editor`},null,512)]),(0,t.createElementVNode)(`div`,FFt,[pe.cells?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createElementVNode)(`span`,IFt,`选区 `+(0,t.toDisplayString)(pe.notation),1),r[7]||=(0,t.createElementVNode)(`span`,{class:`status-sep`},`·`,-1),(0,t.createElementVNode)(`span`,null,`单元格 `+(0,t.toDisplayString)(pe.cells.toLocaleString()),1),pe.numericCount?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[r[4]||=(0,t.createElementVNode)(`span`,{class:`status-sep`},`·`,-1),(0,t.createElementVNode)(`span`,null,`数值 `+(0,t.toDisplayString)(pe.numericCount.toLocaleString()),1),r[5]||=(0,t.createElementVNode)(`span`,{class:`status-sep`},`·`,-1),(0,t.createElementVNode)(`span`,null,[r[2]||=(0,t.createTextVNode)(`求和 `,-1),(0,t.createElementVNode)(`b`,null,(0,t.toDisplayString)(pe.sum.toLocaleString(void 0,{maximumSignificantDigits:15})),1)]),r[6]||=(0,t.createElementVNode)(`span`,{class:`status-sep`},`·`,-1),(0,t.createElementVNode)(`span`,null,[r[3]||=(0,t.createTextVNode)(`平均 `,-1),(0,t.createElementVNode)(`b`,null,(0,t.toDisplayString)(pe.average.toLocaleString(void 0,{maximumSignificantDigits:15})),1)])],64)):(0,t.createCommentVNode)(``,!0)],64)):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,LFt,`框选单元格查看计数 / 求和 / 平均值`)),r[8]||=(0,t.createElementVNode)(`span`,{class:`status-flex`},null,-1),s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,RFt,`🔒 只读模式 · 仅供查看,不可编辑`)):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,zFt,`支持 =SUM/=IF 等公式自动重算 · 公式栏编辑 · Ctrl+F 查找 · Ctrl+K 插入链接 · 单击链接单元格跳转`))])]))}},[[`__scopeId`,`data-v-6bd51245`]]),UFt=class{adapter;identity;limits;lease=null;renewTimer=null;disposed=!1;acquiring=null;constructor(e,t,n){if(this.adapter=e,this.identity=t,this.limits=n,!e||!t?.epoch||!t?.clientId)throw Error(`租约门禁参数不完整`);if(!n.leaseMs||!n.renewAfterMs||n.renewAfterMs>=n.leaseMs)throw Error(`租约续租间隔无效`)}current(){return this.disposed||!this.lease||this.lease.expiresAt<=Date.now()?null:this.lease}leaseProof(){let e=this.current();return e?{leaseId:e.leaseId,fence:e.fence}:null}async acquire(e,t){if(this.requireOpen(),!e.length)throw Error(`租约目标不能为空`);if(this.acquiring)return this.acquiring.then(e=>e.lease);let n=t??this.limits.defaultReservation;this.acquiring=this.adapter.acquire({...this.identity,requestId:crypto.randomUUID(),baseRevision:0,reservedBytes:n,targets:e}).finally(()=>{this.acquiring=null});let r=await this.acquiring;return this.install(r),r.lease}async renew(){this.requireOpen();let e=this.current();if(!e)throw Error(`没有可续租的租约`);try{let t=await this.adapter.renew({...this.identity,leaseId:e.leaseId,fence:e.fence});return this.install(t),t.lease}catch(e){throw this.lease=null,this.stopRenew(),e}}async release(){if(this.disposed)return;this.stopRenew();let e=this.lease;if(this.lease=null,e)try{await this.adapter.release({...this.identity,leaseId:e.leaseId,fence:e.fence})}catch{}}dispose(){this.disposed||(this.disposed=!0,this.stopRenew(),this.lease=null,this.acquiring=null)}install(e){if(this.disposed)throw Error(`租约门禁已关闭`);if(!e?.lease||e.lease.clientId!==this.identity.clientId)throw Error(`租约授权归属不匹配`);this.lease=e.lease,this.scheduleRenew()}scheduleRenew(){if(this.stopRenew(),this.disposed||!this.lease)return;let e=Math.max(1e3,this.limits.renewAfterMs);this.renewTimer=setTimeout(()=>{this.renew().catch(()=>{this.lease=null,this.stopRenew()})},e)}stopRenew(){this.renewTimer&&=(clearTimeout(this.renewTimer),null)}requireOpen(){if(this.disposed)throw Error(`租约门禁已关闭`)}},WFt=class extends Error{rejection;constructor(e){super(e.message||`协作提交被拒绝,请校准后重试`),this.rejection=e,this.name=`CollaborationCommitRejected`}},GFt=class{journal;transport;admission;running=null;saveError=null;disposed=!1;constructor(e,t,n){this.journal=e,this.transport=t,this.admission=n}flush(){if(this.disposed)return Promise.reject(Error(`协作会话已关闭`));if(this.running)return this.running;let e=Promise.resolve().then(()=>this.drain()).then(()=>{this.saveError=null},e=>{throw this.saveError=e instanceof Error?e:Error(`协作提交失败,未确认内容已保留`),this.saveError}).finally(()=>{this.running===e&&(this.running=null)});return this.running=e,e}getSaveError(){return this.saveError}dispose(){if(this.disposed)return;this.disposed=!0;let e=this.journal.exportDraft().inFlight;e&&this.journal.markUnknown(e.batchId),this.journal.dispose()}async drain(){for(this.requireOpen();this.journal.hasUnsavedChanges();){this.requireAvailable();let e=this.journal.exportDraft(),t=e.inFlight;if(t?.status===`rejected`)throw Error(`提交已拒绝,请先校准版本与租约`);if(t?.status===`unknown`){let n=await this.transport.status({epoch:e.epoch,clientId:e.clientId,batchId:t.batchId,clientSeq:t.clientSeq});if(this.requireOpen(),!this.journal.resolveStatus(n))throw Error(`协作提交状态与当前批次不匹配`);continue}let n=t?{leases:[],reservedBytes:0}:this.admission();this.requireAvailable();let r=this.journal.begin(n.leases,n.reservedBytes);if(!r)continue;let{batchId:i,clientSeq:a}=r;try{let e=await this.transport.commit(r);if(this.requireOpen(),e.kind===`rejected`)throw e.batchId!==i||e.clientSeq!==a||!this.journal.rejectUncommitted(i,a)?Error(`协作拒绝结果与当前批次不匹配`):new WFt({...e});if(e.kind!==`committed`||!this.journal.acknowledge(e.ack))throw Error(`协作 ACK 与当前批次不匹配`)}catch(e){throw this.journal.markUnknown(i),e}}}requireOpen(){if(this.disposed)throw Error(`协作会话已关闭`)}requireAvailable(){if(this.requireOpen(),!this.transport.isAvailable())throw Error(`协作连接尚未就绪,未确认内容已保留`)}},KFt=1048576,qFt=200,Q9=2**31-1;function $9(e){return JSON.parse(JSON.stringify(e))}function JFt(e){if(!e?.id||!Array.isArray(e.mutations)||!e.mutations.length||!Array.isArray(e.inverse))throw Error(`协作事务不完整`);for(let t of[...e.mutations,...e.inverse])if(!/^[\w-]+\.mutation\.[\w.-]+$/.test(t.commandId)||!t.params||typeof t.params!=`object`||Array.isArray(t.params))throw Error(`协作事务包含无效 Mutation`)}var YFt=class{createBatchId;identity;revision;lastCommittedSeq;pending=[];flight=null;disposed=!1;constructor(e,t,n=0,r=()=>crypto.randomUUID()){if(this.createBatchId=r,!e.epoch||!e.clientId||!Number.isSafeInteger(t)||t<0||t>Q9||!Number.isSafeInteger(n)||n<0)throw Error(`协作会话版本无效`);this.identity={epoch:e.epoch,clientId:e.clientId},this.revision=t,this.lastCommittedSeq=n}get confirmedRevision(){return this.revision}enqueue(e){if(this.requireOpen(),this.flight&&this.flight.status!==`sent`)throw Error(`存在未确认内容,暂不能新增编辑`);let t=$9(e);if(JFt(t),this.transactions().some(e=>e.id===t.id))throw Error(`协作事务重复入队`);this.pending.push(t)}begin(e,t){if(this.requireOpen(),this.flight?.status===`unknown`)throw Error(`提交结果未知,请先查询提交状态`);if(this.flight?.status===`rejected`)throw Error(`提交已拒绝,请先校准版本与租约`);if(this.flight)return $9(this.flight.request);if(!this.pending.length)return null;if(!e.length||e.length>64||e.some(e=>!e.leaseId||!Number.isSafeInteger(e.fence)||e.fence<=0))throw Error(`缺少有效租约证明`);if(!Number.isSafeInteger(t)||t<=0||t>KFt)throw Error(`协作预留容量无效`);if(this.lastCommittedSeq>=2**53-1)throw Error(`协作会话序号已耗尽`);let n={...this.identity,batchId:this.createBatchId(),clientSeq:this.lastCommittedSeq+1,baseRevision:this.revision,leases:$9(e),mutations:[]};if(!n.batchId||n.batchId.length>128)throw Error(`协作批次标识无效`);let r=0;for(let e of this.pending){if(n.mutations.length+e.mutations.length>qFt){if(!r)throw Error(`完整事务的 Mutation 数量超过单批上限,请保留草稿`);break}let i={...n,mutations:[...n.mutations,...e.mutations]};if(new TextEncoder().encode(JSON.stringify(i)).byteLength>t)break;n.mutations=i.mutations,r++}if(!r)throw Error(`完整事务超过租约预留容量,请扩大预留后重试`);if(n.baseRevision+n.mutations.length>Q9)throw Error(`文档版本已耗尽`);return this.flight={request:n,transactions:this.pending.splice(0,r),status:`sent`},$9(n)}acknowledge(e){if(this.disposed||!this.flight)return!1;let t=this.flight.request;if(e.batchId!==t.batchId||e.clientSeq!==t.clientSeq)return!1;if(this.flight.status===`rejected`||e.fromRevision!==t.baseRevision+1||e.toRevision!==t.baseRevision+t.mutations.length||!Number.isSafeInteger(e.stateVersion)||e.stateVersion<=0)throw Error(`协作 ACK 无效`);return this.revision=e.toRevision,this.lastCommittedSeq=e.clientSeq,this.flight=null,!0}markUnknown(e){!this.disposed&&this.flight?.request.batchId===e&&this.flight.status===`sent`&&(this.flight.status=`unknown`)}resolveStatus(e){if(this.requireOpen(),e.kind===`committed`)return this.acknowledge(e.ack);if(e.kind!==`notCommitted`)throw Error(`提交状态缺少完整 ACK,保留未确认草稿`);let t=this.flight;if(!t||e.batchId!==t.request.batchId||e.clientSeq!==t.request.clientSeq)return!1;if(e.lastCommittedSeq!==this.lastCommittedSeq||t.status!==`unknown`)throw Error(`提交状态与本地序号不一致`);return t.status=`sent`,!0}rejectUncommitted(e,t){return this.requireOpen(),!this.flight||this.flight.request.batchId!==e||this.flight.request.clientSeq!==t?!1:(this.flight.status=`rejected`,!0)}rebase(e,t){if(this.requireOpen(),this.flight&&this.flight.status!==`rejected`)throw Error(`存在未确认批次,不能改变基础版本`);if(!Number.isSafeInteger(e)||e<this.revision||e>Q9)throw Error(`协作校准版本无效`);let n=this.transactions(),r=$9(t($9(n)));if(!Array.isArray(r)||r.length!==n.length||r.some((e,t)=>e.id!==n[t].id))throw Error(`变换不能丢弃或重排事务`);r.forEach(JFt),this.pending=r,this.flight=null,this.revision=e}hasUnsavedChanges(){return!!this.flight||this.pending.length>0}exportDraft(){return $9({...this.identity,confirmedRevision:this.revision,inFlight:this.flight?{batchId:this.flight.request.batchId,clientSeq:this.flight.request.clientSeq,status:this.flight.status}:null,transactions:this.transactions()})}dispose(){this.disposed=!0}transactions(){return[...this.flight?.transactions??[],...this.pending]}requireOpen(){if(this.disposed)throw Error(`协作会话已关闭`)}};e.CommitDriver=GFt,e.CommitJournal=YFt,e.EditorPersistenceManager=Gst,e.LeaseGate=UFt,e.PdDoc=Dct,e.PdExcel=HFt,e.createUploadImageIoService=Yst,e.default={install(e){e.component(`pd-doc`,Dct),e.component(`pd-excel`,HFt)}},e.installServerIntegration=gG,e.useEditorPersistence=hG});