@univerjs/preset-sheets-hyper-link 0.6.6 → 0.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/umd/index.js +1 -1
  2. package/package.json +5 -5
package/lib/umd/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // @univerjs/sheets-hyper-link/index
2
- (function(p,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("@univerjs/core"),require("rxjs"),require("@univerjs/sheets"),require("@univerjs/engine-formula"),require("@univerjs/docs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","rxjs","@univerjs/sheets","@univerjs/engine-formula","@univerjs/docs"],a):(p=typeof globalThis<"u"?globalThis:p||self,a(p.UniverSheetsHyperLink={},p.UniverCore,p.rxjs,p.UniverSheets,p.UniverEngineFormula,p.UniverDocs))})(this,function(p,a,D,m,C,x){"use strict";var Ge=Object.defineProperty;var Ye=(p,a,D)=>a in p?Ge(p,a,{enumerable:!0,configurable:!0,writable:!0,value:D}):p[a]=D;var U=(p,a,D)=>Ye(p,typeof a!="symbol"?a+"":a,D);var Re=Object.getOwnPropertyDescriptor,Me=(s,t,e,n)=>{for(var i=n>1?void 0:n?Re(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},Ce=(s,t)=>(e,n)=>t(e,n,s);p.HyperLinkModel=class extends a.Disposable{constructor(e){super();U(this,"_linkUpdate$",new D.Subject);U(this,"linkUpdate$",this._linkUpdate$.asObservable());U(this,"_linkMap",new Map);U(this,"_linkPositionMap",new Map);this._univerInstanceService=e,this.disposeWithMe({dispose:()=>{this._linkUpdate$.complete()}})}_ensureMap(e,n){let i=this._linkMap.get(e);i||(i=new Map,this._linkMap.set(e,i));let r=i.get(n);r||(r=new a.ObjectMatrix,i.set(n,r));let o=this._linkPositionMap.get(e);o||(o=new Map,this._linkPositionMap.set(e,o));let d=o.get(n);return d||(d=new Map,o.set(n,d)),{matrix:r,positionMap:d}}addHyperLink(e,n,i){const{matrix:r,positionMap:o}=this._ensureMap(e,n);return r.setValue(i.row,i.column,i),o.set(i.id,{row:i.row,column:i.column,link:i}),this._linkUpdate$.next({unitId:e,subUnitId:n,payload:i,type:"add"}),!0}updateHyperLink(e,n,i,r,o=!1){const{matrix:d,positionMap:c}=this._ensureMap(e,n),l=c.get(i);if(!l)return!0;const u=d.getValue(l.row,l.column);return u&&(Object.assign(u,r),this._linkUpdate$.next({unitId:e,subUnitId:n,payload:{display:u.display,payload:u.payload},id:i,type:"update",silent:o})),!0}updateHyperLinkRef(e,n,i,r,o=!1){const{matrix:d,positionMap:c}=this._ensureMap(e,n),l=c.get(i);if(!l)return!0;let u=d.getValue(l.row,l.column);return!u||u.id!==i?u=l.link:d.realDeleteValue(l.row,l.column),Object.assign(u,r),c.set(i,{...r,link:u}),d.setValue(r.row,r.column,u),this._linkUpdate$.next({unitId:e,subUnitId:n,payload:r,id:i,type:"updateRef",silent:o}),!0}removeHyperLink(e,n,i){const{matrix:r,positionMap:o}=this._ensureMap(e,n),d=o.get(i);if(!d)return!1;o.delete(i);const c=r.getValue(d.row,d.column);return c&&c.id===i&&r.realDeleteValue(d.row,d.column),this._linkUpdate$.next({unitId:e,subUnitId:n,payload:d.link,type:"remove"}),!0}getHyperLink(e,n,i){const{matrix:r,positionMap:o}=this._ensureMap(e,n),d=o.get(i);if(d)return r.getValue(d.row,d.column)}getHyperLinkByLocation(e,n,i,r){const{matrix:o}=this._ensureMap(e,n);return o.getValue(i,r)}getHyperLinkByLocationSync(e,n,i,r){var g,f,y,h,_;const{matrix:o}=this._ensureMap(e,n),d=this._univerInstanceService.getUnit(e,a.UniverInstanceType.UNIVER_SHEET),c=(g=d==null?void 0:d.getSheetBySheetId(n))==null?void 0:g.getCellRaw(i,r),l=((_=(h=c==null?void 0:c.v)!=null?h:(y=(f=c==null?void 0:c.p)==null?void 0:f.body)==null?void 0:y.dataStream.slice(0,-2))!=null?_:"").toString(),u=o.getValue(i,r);if(u)return{...u,display:l}}getSubUnit(e,n){const{matrix:i}=this._ensureMap(e,n),r=[];return i.forValue((o,d,c)=>{c&&r.push(c)}),r}getUnit(e){const n=this._linkMap.get(e);return n?Array.from(n.keys()).map(i=>{const r=this.getSubUnit(e,i);return{unitId:e,subUnitId:i,links:r}}):[]}deleteUnit(e){const n=this.getUnit(e);this._linkMap.delete(e),this._linkPositionMap.delete(e),this._linkUpdate$.next({type:"unload",unitId:e,unitLinks:n})}getAll(){return Array.from(this._linkMap.keys()).map(n=>this.getUnit(n))}},p.HyperLinkModel=Me([Ce(0,a.IUniverInstanceService)],p.HyperLinkModel);var L=(s=>(s.SHEET="gid",s.RANGE="range",s.DEFINE_NAME="rangeid",s.INVALID="invalid",s.URL="url",s))(L||{});const ke="sheets-hyper-link.config",ae={},E={type:a.CommandType.MUTATION,id:"sheets.mutation.add-hyper-link",handler(s,t){if(!t)return!1;const e=s.get(p.HyperLinkModel),{unitId:n,subUnitId:i,link:r}=t;return e.addHyperLink(n,i,r)}},w={type:a.CommandType.MUTATION,id:"sheets.mutation.remove-hyper-link",handler(s,t){if(!t)return!1;const e=s.get(p.HyperLinkModel),{unitId:n,subUnitId:i,id:r}=t;return e.removeHyperLink(n,i,r)}},W={type:a.CommandType.MUTATION,id:"sheets.mutation.update-hyper-link",handler(s,t){if(!t)return!1;const e=s.get(p.HyperLinkModel),{unitId:n,subUnitId:i,payload:r,id:o}=t;return e.updateHyperLink(n,i,o,r,!1)}},B={type:a.CommandType.MUTATION,id:"sheets.mutation.update-hyper-link-ref",handler(s,t){if(!t)return!1;const e=s.get(p.HyperLinkModel),{unitId:n,subUnitId:i,id:r,row:o,column:d,silent:c}=t;return e.updateHyperLinkRef(n,i,r,{row:o,column:d},c)}},K={type:a.CommandType.MUTATION,id:"sheets.mutation.update-rich-hyper-link",handler(s,t){var y,h,_;if(!t)return!1;const{unitId:e,subUnitId:n,row:i,col:r,id:o,url:d}=t,c=s.get(a.IUniverInstanceService),l=m.getSheetCommandTarget(c,{unitId:e,subUnitId:n});if(!l)return!1;const{worksheet:u}=l,g=u.getCellRaw(i,r),f=(_=(h=(y=g==null?void 0:g.p)==null?void 0:y.body)==null?void 0:h.customRanges)==null?void 0:_.find(v=>v.rangeType===a.CustomRangeType.HYPERLINK&&v.rangeId===o);return f&&(f.properties.url=d),!0}},oe="SHEET_HYPER_LINK_PLUGIN",$="err";var Ue=Object.getOwnPropertyDescriptor,Le=(s,t,e,n)=>{for(var i=n>1?void 0:n?Ue(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},z=(s,t)=>(e,n)=>t(e,n,s);let G=class extends a.Disposable{constructor(t,e,n,i){super();U(this,"_disposableMap",new Map);U(this,"_watchDisposableMap",new Map);U(this,"_rangeDisableMap",new Map);U(this,"_rangeWatcherMap",new Map);U(this,"_handlePositionChange",(t,e,n,i,r)=>{const o={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row};return i?{redos:[{id:B.id,params:{unitId:t,subUnitId:e,id:n.id,row:i.startRow,column:i.startColumn,silent:r}}],undos:[{id:B.id,params:{unitId:t,subUnitId:e,id:n.id,row:o.startRow,column:o.startColumn,silent:r}}]}:{redos:[{id:w.id,params:{unitId:t,subUnitId:e,id:n.id}}],undos:[{id:E.id,params:{unitId:t,subUnitId:e,link:n}}]}});this._refRangeService=t,this._hyperLinkModel=e,this._selectionManagerService=n,this._commandService=i,this._initData(),this._initRefRange()}_registerPosition(t,e,n){const i=n.id,r={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row},o=d=>{const c=m.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests(r,d,{selectionManagerService:this._selectionManagerService}),l=Array.isArray(c)?c[0]:c;return l&&l.startColumn===r.startColumn&&l.startRow===r.startRow?{undos:[],redos:[]}:this._handlePositionChange(t,e,n,l,!1)};this._disposableMap.set(i,this._refRangeService.registerRefRange(r,o,t,e))}_watchPosition(t,e,n){const i=n.id,r={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row};this._watchDisposableMap.set(i,this._refRangeService.watchRange(t,e,r,(o,d)=>{const{redos:c}=this._handlePositionChange(t,e,n,d,!0);a.sequenceExecuteAsync(c,this._commandService,{onlyLocal:!0})},!0))}_unregisterPosition(t){const e=this._disposableMap.get(t);e==null||e.dispose(),this._disposableMap.delete(t)}_unwatchPosition(t){const e=this._watchDisposableMap.get(t);e==null||e.dispose(),this._watchDisposableMap.delete(t)}_registerRange(t,e,n,i=!1){var r,o,d;if(n.startsWith("#")){const c=new URLSearchParams(n.slice(1)),l={gid:(r=c.get("gid"))!=null?r:"",range:(o=c.get("range"))!=null?o:"",rangeid:(d=c.get("rangeid"))!=null?d:""};if(l.range&&l.gid){const u=l.gid,g=C.deserializeRangeWithSheet(l.range).range;if(a.isValidRange(g)&&l.range!==$){const f=y=>{const h=m.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests(g,y,{selectionManagerService:this._selectionManagerService});return h&&C.serializeRange(h)===C.serializeRange(g)?{redos:[],undos:[]}:{redos:[{id:W.id,params:{unitId:t,subUnitId:u,id:e,payload:{payload:`#gid=${u}&range=${h?C.serializeRange(h):"err"}`}}}],undos:[{id:W.id,params:{unitId:t,subUnitId:u,id:e,payload:{payload:n}}}]}};this._rangeDisableMap.set(e,this._refRangeService.registerRefRange(g,f,t,u)),i||this._rangeWatcherMap.set(e,this._refRangeService.watchRange(t,u,g,(y,h)=>{this._hyperLinkModel.updateHyperLink(t,u,e,{payload:`#gid=${u}&range=${h?C.serializeRange(h):"err"}`},!0)},!0))}}}}_unregisterRange(t){const e=this._rangeDisableMap.get(t);e==null||e.dispose(),this._rangeDisableMap.delete(t)}_unwatchRange(t){const e=this._rangeWatcherMap.get(t);e==null||e.dispose(),this._rangeWatcherMap.delete(t)}_initData(){this._hyperLinkModel.getAll().forEach(e=>{e.forEach(n=>{const{unitId:i,subUnitId:r,links:o}=n;o.forEach(d=>{this._registerPosition(i,r,d),this._watchPosition(i,r,d),this._registerRange(i,d.id,d.payload)})})})}_initRefRange(){this.disposeWithMe(this._hyperLinkModel.linkUpdate$.subscribe(t=>{switch(t.type){case"add":{this._registerPosition(t.unitId,t.subUnitId,t.payload),this._watchPosition(t.unitId,t.subUnitId,t.payload),this._registerRange(t.unitId,t.payload.id,t.payload.payload);break}case"remove":{this._unregisterPosition(t.payload.id),this._unwatchPosition(t.payload.id),this._unregisterRange(t.payload.id),this._unwatchRange(t.payload.id);break}case"updateRef":{const{unitId:e,subUnitId:n,id:i,silent:r}=t,o=this._hyperLinkModel.getHyperLink(e,n,i);if(!o)return;this._unregisterPosition(i),this._registerPosition(e,n,o),r||(this._unwatchPosition(i),this._watchPosition(e,n,o));break}case"unload":{const{unitLinks:e}=t;e.forEach(n=>{const{links:i}=n;i.forEach(r=>{this._unregisterPosition(r.id),this._unwatchPosition(r.id),this._unregisterRange(r.id),this._unwatchRange(r.id)})});break}case"update":{t.silent||this._unwatchRange(t.id),this._unregisterRange(t.id),this._registerRange(t.unitId,t.id,t.payload.payload,t.silent);break}}})),this.disposeWithMe(a.toDisposable(()=>{this._disposableMap.forEach(t=>{t.dispose()}),this._disposableMap.clear()}))}};G=Le([z(0,a.Inject(m.RefRangeService)),z(1,a.Inject(p.HyperLinkModel)),z(2,a.Inject(m.SheetsSelectionsService)),z(3,a.ICommandService)],G);var Ee=Object.getOwnPropertyDescriptor,we=(s,t,e,n)=>{for(var i=n>1?void 0:n?Ee(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},te=(s,t)=>(e,n)=>t(e,n,s);let Y=class extends a.Disposable{constructor(s,t,e){super(),this._sheetInterceptorService=s,this._univerInstanceService=t,this._hyperLinkModel=e,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:s=>{var t;if(s.id===m.RemoveSheetCommand.id){const e=s.params,n=e.unitId?this._univerInstanceService.getUnit(e.unitId):this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!n)return{redos:[],undos:[]};const i=n.getUnitId(),r=e.subUnitId||((t=n.getActiveSheet())==null?void 0:t.getSheetId());if(!r)return{redos:[],undos:[]};const o=this._hyperLinkModel.getSubUnit(i,r),d=o.map(l=>({id:w.id,params:{unitId:i,subUnitId:r,id:l.id}})),c=o.map(l=>({id:E.id,params:{unitId:i,subUnitId:r,link:l}}));return{redos:d,undos:c}}return{redos:[],undos:[]}}}))}};Y=we([te(0,a.Inject(m.SheetInterceptorService)),te(1,a.IUniverInstanceService),te(2,a.Inject(p.HyperLinkModel))],Y);var Te=Object.getOwnPropertyDescriptor,He=(s,t,e,n)=>{for(var i=n>1?void 0:n?Te(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},ne=(s,t)=>(e,n)=>t(e,n,s);let q=class extends a.Disposable{constructor(t,e,n){super();U(this,"_refRangeMap",new Map);this._commandService=t,this._univerInstanceService=e,this._refRangeService=n,this._initWorkbookLoad(),this._initWorkbookUnload(),this._initSetRangesListener()}_enusreMap(t,e){let n=this._refRangeMap.get(t);n||(n=new Map,this._refRangeMap.set(t,n));let i=n.get(e);return i||(i=new a.ObjectMatrix,n.set(e,i)),i}_isLegalRangeUrl(t,e){var i,r,o;const n=this._univerInstanceService.getUnit(t,a.UniverInstanceType.UNIVER_SHEET);if(!n)return null;if(e&&e.startsWith("#")){const d=new URLSearchParams(e.slice(1)),c={gid:(i=d.get("gid"))!=null?i:"",range:(r=d.get("range"))!=null?r:"",rangeid:(o=d.get("rangeid"))!=null?o:""};if(c.range&&c.gid){const l=c.gid,u=n.getSheetBySheetId(l);if(!u)return null;const g=C.deserializeRangeWithSheet(c.range).range;if(a.isValidRange(g,u)&&c.range!==$)return{range:g,worksheet:u}}}return null}_registerRange(t,e,n,i,r){var d,c,l,u;const o=this._enusreMap(t,e);if((c=(d=r.body)==null?void 0:d.customRanges)!=null&&c.some(g=>{var f;return g.rangeType===a.CustomRangeType.HYPERLINK&&this._isLegalRangeUrl(t,(f=g.properties)==null?void 0:f.url)})){const g=new a.DisposableCollection;let f=!1;(u=(l=r.body)==null?void 0:l.customRanges)==null||u.forEach(y=>{var h;if(y.rangeType===a.CustomRangeType.HYPERLINK){const _=(h=y.properties)==null?void 0:h.url,v=this._isLegalRangeUrl(t,_);if(v){const{range:S,worksheet:k}=v;f=!0,g.add(this._refRangeService.registerRefRange(S,I=>{const R=m.handleDefaultRangeChangeWithEffectRefCommands(S,I);return R&&a.Rectangle.equals(R,S)?{preRedos:[],preUndos:[],redos:[],undos:[]}:{preRedos:[{id:K.id,params:{unitId:t,subUnitId:e,row:n,col:i,id:y.rangeId,url:`#gid=${e}&range=${R?C.serializeRange(R):$}`}}],undos:[{id:K.id,params:{unitId:t,subUnitId:e,row:n,col:i,id:y.rangeId,url:_}}],redos:[]}},k.getUnitId(),k.getSheetId()))}}}),f&&o.setValue(n,i,g)}}_initWorkbookLoad(){const t=e=>{const n=e.getUnitId();e.getSheets().forEach(i=>{const r=i.getSheetId(),o=this._enusreMap(n,r);i.getCellMatrix().forValue((d,c,l)=>{const u=o.getValue(d,c);u&&u.dispose(),l&&l.p&&this._registerRange(n,r,d,c,l.p)})})};this._univerInstanceService.getAllUnitsForType(a.UniverInstanceType.UNIVER_SHEET).forEach(e=>{t(e)}),this.disposeWithMe(this._univerInstanceService.unitAdded$.subscribe(e=>{e.type===a.UniverInstanceType.UNIVER_SHEET&&t(e)}))}_initWorkbookUnload(){this._univerInstanceService.unitDisposed$.subscribe(t=>{if(t.type===a.UniverInstanceType.UNIVER_SHEET){const e=t,n=e.getUnitId();e.getSheets().forEach(i=>{const r=i.getSheetId();this._enusreMap(n,r).forValue((d,c,l)=>{l&&l.dispose()})}),this._refRangeMap.delete(n)}})}_initSetRangesListener(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===m.SetRangeValuesMutation.id){const e=t.params,{unitId:n,subUnitId:i,cellValue:r}=e,o=this._enusreMap(n,i);r&&new a.ObjectMatrix(r).forValue((d,c,l)=>{const u=o.getValue(d,c);u&&u.dispose(),l&&l.p&&this._registerRange(n,i,d,c,l.p)})}})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===K.id){const e=t.params,{unitId:n,subUnitId:i,row:r,col:o}=e,d=m.getSheetCommandTarget(this._univerInstanceService,{unitId:n,subUnitId:i}),l=this._enusreMap(n,i).getValue(r,o);if(l&&l.dispose(),d){const{worksheet:u}=d,g=u.getCellRaw(r,o);g&&g.p&&this._registerRange(n,i,r,o,g.p)}}}))}};q=He([ne(0,a.ICommandService),ne(1,a.IUniverInstanceService),ne(2,a.Inject(m.RefRangeService))],q);var be=Object.getOwnPropertyDescriptor,Pe=(s,t,e,n)=>{for(var i=n>1?void 0:n?be(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},F=(s,t)=>(e,n)=>t(e,n,s);let J=class extends a.Disposable{constructor(s,t,e,n){super(),this._sheetInterceptorService=s,this._hyperLinkModel=t,this._selectionManagerService=e,this._univerInstanceService=n,this._initCommandInterceptor(),this._initAfterEditor()}_initCommandInterceptor(){this._initSetRangeValuesCommandInterceptor(),this._initClearSelectionCommandInterceptor()}_initSetRangeValuesCommandInterceptor(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:s=>{if(s.id===m.SetRangeValuesCommand.id){const t=s.params,{unitId:e,subUnitId:n}=t,i=[],r=[];return t.cellValue&&new a.ObjectMatrix(t.cellValue).forValue((o,d)=>{const c=this._hyperLinkModel.getHyperLinkByLocation(e,n,o,d);c&&(i.push({id:w.id,params:{unitId:e,subUnitId:n,id:c.id}}),r.push({id:E.id,params:{unitId:e,subUnitId:n,link:c}}))}),{undos:r,redos:i}}return{redos:[],undos:[]}}}))}_initClearSelectionCommandInterceptor(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:s=>{if(s.id===m.ClearSelectionContentCommand.id||s.id===m.ClearSelectionAllCommand.id||s.id===m.ClearSelectionFormatCommand.id){const t=[],e=[],n=this._selectionManagerService.getCurrentLastSelection(),i=m.getSheetCommandTarget(this._univerInstanceService);if(n&&i){const{unitId:r,subUnitId:o}=i;a.Range.foreach(n.range,(d,c)=>{const l=this._hyperLinkModel.getHyperLinkByLocation(r,o,d,c);l&&(t.push({id:w.id,params:{unitId:r,subUnitId:o,id:l.id}}),e.push({id:E.id,params:{unitId:r,subUnitId:o,link:l}}))})}return{redos:t,undos:e}}return{redos:[],undos:[]}}}))}_initAfterEditor(){this.disposeWithMe(this._sheetInterceptorService.writeCellInterceptor.intercept(m.AFTER_CELL_EDIT,{handler:(s,t,e)=>{if(!s||s.p)return e(s);if(typeof s.v=="string"&&a.Tools.isLegalUrl(s.v)&&s.v[s.v.length-1]!==" "){const{unitId:n,subUnitId:i}=t,r=this._univerInstanceService.getUnit(n,a.UniverInstanceType.UNIVER_SHEET),o=r==null?void 0:r.getSheetBySheetId(i);if(!o)return e(s);const d=o.getBlankCellDocumentModel(s);if(!d.documentModel)return e(s);const c=a.BuildTextUtils.selection.replace({selection:{startOffset:0,endOffset:s.v.length,collapsed:!1},body:{dataStream:`${s.v}`,customRanges:[{startIndex:0,endIndex:s.v.length-1,rangeId:a.generateRandomId(),rangeType:a.CustomRangeType.HYPERLINK,properties:{url:s.v}}]},doc:d.documentModel});if(!c)return e(s);const l=d.documentModel.getBody();return a.TextX.apply(l,c.serialize()),e({...s,p:{id:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,body:l,documentStyle:{pageSize:{width:1/0,height:1/0}}}})}return e(s)}}))}};J=Pe([F(0,a.Inject(m.SheetInterceptorService)),F(1,a.Inject(p.HyperLinkModel)),F(2,a.Inject(m.SheetsSelectionsService)),F(3,a.IUniverInstanceService)],J);var de=(s=>(s[s.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",s[s.UNIVER_DOC=1]="UNIVER_DOC",s[s.UNIVER_SHEET=2]="UNIVER_SHEET",s[s.UNIVER_SLIDE=3]="UNIVER_SLIDE",s[s.UNIVER_PROJECT=4]="UNIVER_PROJECT",s[s.UNRECOGNIZED=-1]="UNRECOGNIZED",s))(de||{}),De=Object.getOwnPropertyDescriptor,Oe=(s,t,e,n)=>{for(var i=n>1?void 0:n?De(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},ce=(s,t)=>(e,n)=>t(e,n,s);let X=class extends a.Disposable{constructor(s,t){super(),this._resourceManagerService=s,this._hyperLinkModel=t,this._initSnapshot()}_initSnapshot(){const s=e=>{const n=this._hyperLinkModel.getUnit(e),i={};return n?(n.forEach(r=>{i[r.subUnitId]=r.links.map(({display:o,...d})=>d)}),JSON.stringify(i)):""},t=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:oe,businesses:[de.UNIVER_SHEET],toJson:e=>s(e),parseJson:e=>t(e),onUnLoad:e=>{this._hyperLinkModel.deleteUnit(e)},onLoad:async(e,n)=>{Object.keys(n).forEach(i=>{n[i].forEach(o=>{this._hyperLinkModel.addHyperLink(e,i,o)})})}}))}};X=Oe([ce(0,a.IResourceManagerService),ce(1,a.Inject(p.HyperLinkModel))],X);const le={type:a.CommandType.COMMAND,id:"sheets.command.add-hyper-link",async handler(s,t){if(!t)return!1;const e=s.get(a.ICommandService),n=s.get(a.IUndoRedoService),i=s.get(a.IUniverInstanceService),r=s.get(p.HyperLinkModel),o=s.get(m.SheetInterceptorService),d=m.getSheetCommandTarget(i,t);if(!d)return!1;const{unitId:c,subUnitId:l,workbook:u,worksheet:g}=d,{link:f}=t,{payload:y,display:h,row:_,column:v,id:S}=f,k=g.getCell(_,v),I=g.getBlankCellDocumentModel(k),R=I.documentModel.getSnapshot(),M=a.Tools.deepClone(R.body);if(!M)return!1;let T;if(h?T=a.BuildTextUtils.selection.replace({selection:{startOffset:0,endOffset:M.dataStream.length-2,collapsed:M.dataStream.length-2===0},body:{dataStream:`${h}`,customRanges:[{startIndex:0,endIndex:h.length-1,rangeType:a.CustomRangeType.HYPERLINK,rangeId:S,properties:{url:y}}]},doc:I.documentModel}):T=a.BuildTextUtils.customRange.add({body:M,ranges:[{startOffset:0,endOffset:M.dataStream.length-2,collapsed:!1}],rangeId:S,rangeType:a.CustomRangeType.HYPERLINK,properties:{url:y,refId:S}}),!T)return!1;const j=a.TextX.apply(M,T.serialize()),H={p:{...R,body:j},t:a.CellValueType.STRING},N=o.onWriteCell(u,g,_,v,H),V={unitId:c,subUnitId:l,cellValue:{[f.row]:{[f.column]:N}}},se={id:m.SetRangeValuesMutation.id,params:V},Q=m.SetRangeValuesUndoMutationFactory(s,V),re={id:m.SetRangeValuesMutation.id,params:Q},A=[se],b=[re],P=r.getHyperLinkByLocation(c,l,_,v);return P&&(A.push({id:w.id,params:{unitId:c,subUnitId:l,id:P.id}}),b.push({id:E.id,params:{unitId:c,subUnitId:l,link:P}})),await a.sequenceExecute(A,e)?await o.onValidateCell(u,g,_,v)===!1?(a.sequenceExecute(b,e),!1):(n.pushUndoRedo({redoMutations:A,undoMutations:b,unitID:c}),!0):!1}},ue={id:"sheets.command.add-rich-hyper-link",type:a.CommandType.COMMAND,handler:async(s,t)=>{if(!t)return!1;const{documentId:e,link:n}=t,i=s.get(a.ICommandService),r=a.generateRandomId(),{payload:o}=n,d=x.addCustomRangeBySelectionFactory(s,{unitId:e,rangeId:r,rangeType:a.CustomRangeType.HYPERLINK,properties:{url:o,refId:r}});return d?i.syncExecuteCommand(d.id,d.params):!1}},pe={type:a.CommandType.COMMAND,id:"sheets.command.cancel-hyper-link",handler(s,t){var H,N;if(!t)return!1;const e=s.get(a.ICommandService),n=s.get(a.IUndoRedoService),i=s.get(a.IUniverInstanceService),r=s.get(p.HyperLinkModel),o=m.getSheetCommandTarget(i,t);if(!o)return!1;const{row:d,column:c,id:l}=t,{unitId:u,subUnitId:g,worksheet:f}=o,y=f.getCell(d,c);if(!y)return!1;const h=f.getCellDocumentModelWithFormula(y);if(!(h!=null&&h.documentModel))return!1;const _=a.Tools.deepClone(h.documentModel.getSnapshot()),v=(N=(H=_.body)==null?void 0:H.customRanges)==null?void 0:N.find(V=>`${V.rangeId}`===l);if(!v)return!1;const S=a.BuildTextUtils.customRange.delete({documentDataModel:h.documentModel,rangeId:v.rangeId});if(!S)return!1;const k=a.TextX.apply(_.body,S.serialize()),I=[],R=[],M={unitId:u,subUnitId:g,cellValue:{[d]:{[c]:{p:{..._,body:k},t:a.CellValueType.STRING}}}};I.push({id:m.SetRangeValuesMutation.id,params:M});const T=m.SetRangeValuesUndoMutationFactory(s,M);R.push({id:m.SetRangeValuesMutation.id,params:T});const j=r.getHyperLinkByLocation(u,g,d,c);return j&&(I.push({id:w.id,params:{unitId:u,subUnitId:g,id:l}}),R.push({id:E.id,params:{unitId:u,subUnitId:g,link:{...j}}})),a.sequenceExecute(I,e).result?(n.pushUndoRedo({redoMutations:I,undoMutations:R,unitID:u}),!0):!1}},ge={type:a.CommandType.COMMAND,id:"sheets.command.cancel-rich-hyper-link",handler(s,t){var u,g;if(!t)return!1;const{id:e,documentId:n}=t,i=s.get(a.ICommandService),o=s.get(a.IUniverInstanceService).getUnit(n,a.UniverInstanceType.UNIVER_DOC),d=(g=(u=o==null?void 0:o.getBody())==null?void 0:u.customRanges)==null?void 0:g.find(f=>f.rangeId===e);let c=null;d&&d.endIndex===o.getBody().dataStream.length-3&&(c={dataStream:" "});const l=x.deleteCustomRangeFactory(s,{unitId:n,rangeId:e,insert:c});return l?i.syncExecuteCommand(l.id,l.params):!1}},he={type:a.CommandType.COMMAND,id:"sheets.command.update-hyper-link",async handler(s,t){var _e,ve,Se;if(!t)return!1;const e=s.get(a.ICommandService),n=s.get(a.IUndoRedoService),i=s.get(a.IUniverInstanceService),r=s.get(p.HyperLinkModel),o=s.get(m.SheetInterceptorService),d=m.getSheetCommandTarget(i,{unitId:t.unitId,subUnitId:t.subUnitId});if(!d)return!1;const{payload:c,row:l,column:u,id:g}=t,{workbook:f,worksheet:y,unitId:h,subUnitId:_}=d,{payload:v,display:S=""}=c,k=y.getCell(l,u);if(!k)return!1;const I=y.getCellDocumentModelWithFormula(k);if(!(I!=null&&I.documentModel))return!1;const R=I.documentModel.getSnapshot(),M=(ve=(_e=R.body)==null?void 0:_e.customRanges)==null?void 0:ve.find(Ie=>`${Ie.rangeId}`===g);if(!M)return!1;const T=a.generateRandomId(),O=(Se=a.getBodySlice(I.documentModel.getBody(),M.startIndex,M.endIndex+1).textRuns)==null?void 0:Se[0];O&&(O.ed=S.length+1);const H=x.replaceSelectionFactory(s,{unitId:h,body:{dataStream:`${S}`,customRanges:[{rangeId:T,rangeType:a.CustomRangeType.HYPERLINK,startIndex:0,endIndex:S.length-1,properties:{url:v}}],textRuns:O?[O]:void 0},selection:{startOffset:M.startIndex,endOffset:M.endIndex+1,collapsed:!1},doc:I.documentModel});if(!H)return!1;const N=a.TextX.apply(a.Tools.deepClone(R.body),H.textX.serialize()),V={p:{...R,body:N},t:a.CellValueType.STRING},se=o.onWriteCell(f,y,l,u,V),Q={id:m.SetRangeValuesMutation.id,params:{unitId:h,subUnitId:_,cellValue:{[l]:{[u]:se}}}},re=m.SetRangeValuesUndoMutationFactory(s,Q.params),A={id:m.SetRangeValuesMutation.id,params:re},b=[Q],P=[A],ee=r.getHyperLinkByLocation(h,_,l,u);return ee&&(b.push({id:w.id,params:{unitId:h,subUnitId:_,id:ee.id}}),P.push({id:E.id,params:{unitId:h,subUnitId:_,link:ee}})),a.sequenceExecute(b,e)?await o.onValidateCell(f,y,l,u)===!1?(a.sequenceExecute(P,e),!1):(n.pushUndoRedo({redoMutations:b,undoMutations:P,unitID:h}),!0):!1}},me={type:a.CommandType.COMMAND,id:"sheets.command.update-rich-hyper-link",handler:(s,t)=>{var h,_,v,S;if(!t)return!1;const{documentId:e,payload:n,id:i}=t,r=s.get(a.IUniverInstanceService),o=s.get(a.ICommandService),d=r.getUnit(e,a.UniverInstanceType.UNIVER_DOC);if(!d)return!1;const c=(_=(h=d.getBody())==null?void 0:h.customRanges)==null?void 0:_.find(k=>k.rangeId===i);if(!c)return!1;const l=(v=t.payload.display)!=null?v:"",u=a.generateRandomId(),f=(S=a.getBodySlice(d.getBody(),c.startIndex,c.endIndex+1).textRuns)==null?void 0:S[0];f&&(f.ed=l.length+1);const y=x.replaceSelectionFactory(s,{unitId:e,body:{dataStream:`${l}`,customRanges:[{rangeId:u,rangeType:a.CustomRangeType.HYPERLINK,startIndex:0,endIndex:l.length-1,properties:{url:n.payload}}],textRuns:f?[f]:void 0},selection:{startOffset:c.startIndex,endOffset:c.endIndex+1,collapsed:!1},doc:d});return y?o.syncExecuteCommand(y.id,y.params):!1}};var Ne=Object.getOwnPropertyDescriptor,Ve=(s,t,e,n)=>{for(var i=n>1?void 0:n?Ne(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},$e=(s,t)=>(e,n)=>t(e,n,s);let Z=class extends a.Disposable{constructor(s){super(),this._commandService=s,this._registerCommands()}_registerCommands(){[le,he,pe,me,ge,ue,E,W,w,B,K].forEach(s=>{this._commandService.registerCommand(s)})}};Z=Ve([$e(0,a.ICommandService)],Z);var je=Object.getOwnPropertyDescriptor,Ae=(s,t,e,n)=>{for(var i=n>1?void 0:n?je(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},ie=(s,t)=>(e,n)=>t(e,n,s);p.SheetsHyperLinkParserService=class{constructor(t,e,n){this._univerInstanceService=t,this._localeService=e,this._definedNamesService=n}buildHyperLink(t,e,n){return`#${L.SHEET}=${e}${n?`&${typeof n=="string"?L.DEFINE_NAME:L.RANGE}=${typeof n=="string"?n:C.serializeRange(n)}`:""}`}parseHyperLink(t){var e,n,i,r;if(t.startsWith("#")){const o=new URLSearchParams(t.slice(1)),d={gid:(e=o.get("gid"))!=null?e:"",range:(n=o.get("range"))!=null?n:"",rangeid:(i=o.get("rangeid"))!=null?i:"",unitid:(r=o.get("unitid"))!=null?r:""},c=this._getURLName(d);return{type:c.type,name:c.name,url:t,searchObj:d}}else return{type:L.URL,name:t,url:t,searchObj:null}}_getURLName(t){var u;const{gid:e,range:n,rangeid:i,unitid:r}=t,o=r?this._univerInstanceService.getUnit(r,a.UniverInstanceType.UNIVER_SHEET):this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),d={type:L.INVALID,name:this._localeService.t("hyperLink.message.refError")};if(!o)return d;const c=e?o.getSheetBySheetId(e):o.getActiveSheet(),l=(u=c==null?void 0:c.getName())!=null?u:"";if(n){if(!c)return d;const g=C.deserializeRangeWithSheet(n).range;return a.isValidRange(g,c)&&n!==$?{type:L.RANGE,name:C.serializeRangeWithSheet(l,g)}:d}if(i){const g=this._definedNamesService.getValueById(o.getUnitId(),i);return g?{type:L.DEFINE_NAME,name:g.formulaOrRefString}:d}if(e){const g=o.getSheetBySheetId(e);return g?{type:L.SHEET,name:g.getName()}:d}return d}},p.SheetsHyperLinkParserService=Ae([ie(0,a.IUniverInstanceService),ie(1,a.Inject(a.LocaleService)),ie(2,C.IDefinedNamesService)],p.SheetsHyperLinkParserService);var xe=Object.defineProperty,We=Object.getOwnPropertyDescriptor,Be=(s,t,e)=>t in s?xe(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,Ke=(s,t,e,n)=>{for(var i=n>1?void 0:n?We(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},fe=(s,t)=>(e,n)=>t(e,n,s),ye=(s,t,e)=>Be(s,typeof t!="symbol"?t+"":t,e);p.UniverSheetsHyperLinkPlugin=class extends a.Plugin{constructor(t=ae,e,n){super(),this._config=t,this._injector=e,this._configService=n;const{...i}=a.merge({},ae,this._config);this._configService.setConfig(ke,i)}onStarting(){a.registerDependencies(this._injector,[[p.HyperLinkModel],[p.SheetsHyperLinkParserService],[X],[Z],[G],[J],[Y],[q]]),a.touchDependencies(this._injector,[[G],[X],[Z],[J],[Y],[q]])}},ye(p.UniverSheetsHyperLinkPlugin,"pluginName",oe),ye(p.UniverSheetsHyperLinkPlugin,"type",a.UniverInstanceType.UNIVER_SHEET),p.UniverSheetsHyperLinkPlugin=Ke([a.DependentOn(m.UniverSheetsPlugin),fe(1,a.Inject(a.Injector)),fe(2,a.IConfigService)],p.UniverSheetsHyperLinkPlugin),p.AddHyperLinkCommand=le,p.AddHyperLinkMutation=E,p.AddRichHyperLinkCommand=ue,p.CancelHyperLinkCommand=pe,p.CancelRichHyperLinkCommand=ge,p.ERROR_RANGE=$,p.RemoveHyperLinkMutation=w,p.SheetHyperLinkType=L,p.UpdateHyperLinkCommand=he,p.UpdateHyperLinkMutation=W,p.UpdateHyperLinkRefMutation=B,p.UpdateRichHyperLinkCommand=me,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})});
2
+ (function(p,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("@univerjs/core"),require("rxjs"),require("@univerjs/sheets"),require("@univerjs/engine-formula"),require("@univerjs/docs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","rxjs","@univerjs/sheets","@univerjs/engine-formula","@univerjs/docs"],a):(p=typeof globalThis<"u"?globalThis:p||self,a(p.UniverSheetsHyperLink={},p.UniverCore,p.rxjs,p.UniverSheets,p.UniverEngineFormula,p.UniverDocs))})(this,function(p,a,N,m,C,x){"use strict";var Ge=Object.defineProperty;var Ye=(p,a,N)=>a in p?Ge(p,a,{enumerable:!0,configurable:!0,writable:!0,value:N}):p[a]=N;var U=(p,a,N)=>Ye(p,typeof a!="symbol"?a+"":a,N);var Re=Object.getOwnPropertyDescriptor,Me=(s,t,e,n)=>{for(var i=n>1?void 0:n?Re(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},Ce=(s,t)=>(e,n)=>t(e,n,s);p.HyperLinkModel=class extends a.Disposable{constructor(e){super();U(this,"_linkUpdate$",new N.Subject);U(this,"linkUpdate$",this._linkUpdate$.asObservable());U(this,"_linkMap",new Map);U(this,"_linkPositionMap",new Map);this._univerInstanceService=e,this.disposeWithMe({dispose:()=>{this._linkUpdate$.complete()}})}_ensureMap(e,n){let i=this._linkMap.get(e);i||(i=new Map,this._linkMap.set(e,i));let r=i.get(n);r||(r=new a.ObjectMatrix,i.set(n,r));let o=this._linkPositionMap.get(e);o||(o=new Map,this._linkPositionMap.set(e,o));let d=o.get(n);return d||(d=new Map,o.set(n,d)),{matrix:r,positionMap:d}}addHyperLink(e,n,i){const{matrix:r,positionMap:o}=this._ensureMap(e,n);return r.setValue(i.row,i.column,i),o.set(i.id,{row:i.row,column:i.column,link:i}),this._linkUpdate$.next({unitId:e,subUnitId:n,payload:i,type:"add"}),!0}updateHyperLink(e,n,i,r,o=!1){const{matrix:d,positionMap:c}=this._ensureMap(e,n),l=c.get(i);if(!l)return!0;const u=d.getValue(l.row,l.column);return u&&(Object.assign(u,r),this._linkUpdate$.next({unitId:e,subUnitId:n,payload:{display:u.display,payload:u.payload},id:i,type:"update",silent:o})),!0}updateHyperLinkRef(e,n,i,r,o=!1){const{matrix:d,positionMap:c}=this._ensureMap(e,n),l=c.get(i);if(!l)return!0;let u=d.getValue(l.row,l.column);return!u||u.id!==i?u=l.link:d.realDeleteValue(l.row,l.column),Object.assign(u,r),c.set(i,{...r,link:u}),d.setValue(r.row,r.column,u),this._linkUpdate$.next({unitId:e,subUnitId:n,payload:r,id:i,type:"updateRef",silent:o}),!0}removeHyperLink(e,n,i){const{matrix:r,positionMap:o}=this._ensureMap(e,n),d=o.get(i);if(!d)return!1;o.delete(i);const c=r.getValue(d.row,d.column);return c&&c.id===i&&r.realDeleteValue(d.row,d.column),this._linkUpdate$.next({unitId:e,subUnitId:n,payload:d.link,type:"remove"}),!0}getHyperLink(e,n,i){const{matrix:r,positionMap:o}=this._ensureMap(e,n),d=o.get(i);if(d)return r.getValue(d.row,d.column)}getHyperLinkByLocation(e,n,i,r){const{matrix:o}=this._ensureMap(e,n);return o.getValue(i,r)}getHyperLinkByLocationSync(e,n,i,r){var g,f,y,h,_;const{matrix:o}=this._ensureMap(e,n),d=this._univerInstanceService.getUnit(e,a.UniverInstanceType.UNIVER_SHEET),c=(g=d==null?void 0:d.getSheetBySheetId(n))==null?void 0:g.getCellRaw(i,r),l=((_=(h=c==null?void 0:c.v)!=null?h:(y=(f=c==null?void 0:c.p)==null?void 0:f.body)==null?void 0:y.dataStream.slice(0,-2))!=null?_:"").toString(),u=o.getValue(i,r);if(u)return{...u,display:l}}getSubUnit(e,n){const{matrix:i}=this._ensureMap(e,n),r=[];return i.forValue((o,d,c)=>{c&&r.push(c)}),r}getUnit(e){const n=this._linkMap.get(e);return n?Array.from(n.keys()).map(i=>{const r=this.getSubUnit(e,i);return{unitId:e,subUnitId:i,links:r}}):[]}deleteUnit(e){const n=this.getUnit(e);this._linkMap.delete(e),this._linkPositionMap.delete(e),this._linkUpdate$.next({type:"unload",unitId:e,unitLinks:n})}getAll(){return Array.from(this._linkMap.keys()).map(n=>this.getUnit(n))}},p.HyperLinkModel=Me([Ce(0,a.IUniverInstanceService)],p.HyperLinkModel);var L=(s=>(s.SHEET="gid",s.RANGE="range",s.DEFINE_NAME="rangeid",s.INVALID="invalid",s.URL="url",s))(L||{});const ke="sheets-hyper-link.config",ae={},E={type:a.CommandType.MUTATION,id:"sheets.mutation.add-hyper-link",handler(s,t){if(!t)return!1;const e=s.get(p.HyperLinkModel),{unitId:n,subUnitId:i,link:r}=t;return e.addHyperLink(n,i,r)}},w={type:a.CommandType.MUTATION,id:"sheets.mutation.remove-hyper-link",handler(s,t){if(!t)return!1;const e=s.get(p.HyperLinkModel),{unitId:n,subUnitId:i,id:r}=t;return e.removeHyperLink(n,i,r)}},W={type:a.CommandType.MUTATION,id:"sheets.mutation.update-hyper-link",handler(s,t){if(!t)return!1;const e=s.get(p.HyperLinkModel),{unitId:n,subUnitId:i,payload:r,id:o}=t;return e.updateHyperLink(n,i,o,r,!1)}},B={type:a.CommandType.MUTATION,id:"sheets.mutation.update-hyper-link-ref",handler(s,t){if(!t)return!1;const e=s.get(p.HyperLinkModel),{unitId:n,subUnitId:i,id:r,row:o,column:d,silent:c}=t;return e.updateHyperLinkRef(n,i,r,{row:o,column:d},c)}},K={type:a.CommandType.MUTATION,id:"sheets.mutation.update-rich-hyper-link",handler(s,t){var y,h,_;if(!t)return!1;const{unitId:e,subUnitId:n,row:i,col:r,id:o,url:d}=t,c=s.get(a.IUniverInstanceService),l=m.getSheetCommandTarget(c,{unitId:e,subUnitId:n});if(!l)return!1;const{worksheet:u}=l,g=u.getCellRaw(i,r),f=(_=(h=(y=g==null?void 0:g.p)==null?void 0:y.body)==null?void 0:h.customRanges)==null?void 0:_.find(v=>v.rangeType===a.CustomRangeType.HYPERLINK&&v.rangeId===o);return f&&(f.properties.url=d),!0}},oe="SHEET_HYPER_LINK_PLUGIN",$="err";var Ue=Object.getOwnPropertyDescriptor,Le=(s,t,e,n)=>{for(var i=n>1?void 0:n?Ue(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},z=(s,t)=>(e,n)=>t(e,n,s);let G=class extends a.Disposable{constructor(t,e,n,i){super();U(this,"_disposableMap",new Map);U(this,"_watchDisposableMap",new Map);U(this,"_rangeDisableMap",new Map);U(this,"_rangeWatcherMap",new Map);U(this,"_handlePositionChange",(t,e,n,i,r)=>{const o={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row};return i?{redos:[{id:B.id,params:{unitId:t,subUnitId:e,id:n.id,row:i.startRow,column:i.startColumn,silent:r}}],undos:[{id:B.id,params:{unitId:t,subUnitId:e,id:n.id,row:o.startRow,column:o.startColumn,silent:r}}]}:{redos:[{id:w.id,params:{unitId:t,subUnitId:e,id:n.id}}],undos:[{id:E.id,params:{unitId:t,subUnitId:e,link:n}}]}});this._refRangeService=t,this._hyperLinkModel=e,this._selectionManagerService=n,this._commandService=i,this._initData(),this._initRefRange()}_registerPosition(t,e,n){const i=n.id,r={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row},o=d=>{const c=m.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests(r,d,{selectionManagerService:this._selectionManagerService}),l=Array.isArray(c)?c[0]:c;return l&&l.startColumn===r.startColumn&&l.startRow===r.startRow?{undos:[],redos:[]}:this._handlePositionChange(t,e,n,l,!1)};this._disposableMap.set(i,this._refRangeService.registerRefRange(r,o,t,e))}_watchPosition(t,e,n){const i=n.id,r={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row};this._watchDisposableMap.set(i,this._refRangeService.watchRange(t,e,r,(o,d)=>{const{redos:c}=this._handlePositionChange(t,e,n,d,!0);a.sequenceExecuteAsync(c,this._commandService,{onlyLocal:!0})},!0))}_unregisterPosition(t){const e=this._disposableMap.get(t);e==null||e.dispose(),this._disposableMap.delete(t)}_unwatchPosition(t){const e=this._watchDisposableMap.get(t);e==null||e.dispose(),this._watchDisposableMap.delete(t)}_registerRange(t,e,n,i=!1){var r,o,d;if(n.startsWith("#")){const c=new URLSearchParams(n.slice(1)),l={gid:(r=c.get("gid"))!=null?r:"",range:(o=c.get("range"))!=null?o:"",rangeid:(d=c.get("rangeid"))!=null?d:""};if(l.range&&l.gid){const u=l.gid,g=C.deserializeRangeWithSheet(l.range).range;if(a.isValidRange(g)&&l.range!==$){const f=y=>{const h=m.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests(g,y,{selectionManagerService:this._selectionManagerService});return h&&C.serializeRange(h)===C.serializeRange(g)?{redos:[],undos:[]}:{redos:[{id:W.id,params:{unitId:t,subUnitId:u,id:e,payload:{payload:`#gid=${u}&range=${h?C.serializeRange(h):"err"}`}}}],undos:[{id:W.id,params:{unitId:t,subUnitId:u,id:e,payload:{payload:n}}}]}};this._rangeDisableMap.set(e,this._refRangeService.registerRefRange(g,f,t,u)),i||this._rangeWatcherMap.set(e,this._refRangeService.watchRange(t,u,g,(y,h)=>{this._hyperLinkModel.updateHyperLink(t,u,e,{payload:`#gid=${u}&range=${h?C.serializeRange(h):"err"}`},!0)},!0))}}}}_unregisterRange(t){const e=this._rangeDisableMap.get(t);e==null||e.dispose(),this._rangeDisableMap.delete(t)}_unwatchRange(t){const e=this._rangeWatcherMap.get(t);e==null||e.dispose(),this._rangeWatcherMap.delete(t)}_initData(){this._hyperLinkModel.getAll().forEach(e=>{e.forEach(n=>{const{unitId:i,subUnitId:r,links:o}=n;o.forEach(d=>{this._registerPosition(i,r,d),this._watchPosition(i,r,d),this._registerRange(i,d.id,d.payload)})})})}_initRefRange(){this.disposeWithMe(this._hyperLinkModel.linkUpdate$.subscribe(t=>{switch(t.type){case"add":{this._registerPosition(t.unitId,t.subUnitId,t.payload),this._watchPosition(t.unitId,t.subUnitId,t.payload),this._registerRange(t.unitId,t.payload.id,t.payload.payload);break}case"remove":{this._unregisterPosition(t.payload.id),this._unwatchPosition(t.payload.id),this._unregisterRange(t.payload.id),this._unwatchRange(t.payload.id);break}case"updateRef":{const{unitId:e,subUnitId:n,id:i,silent:r}=t,o=this._hyperLinkModel.getHyperLink(e,n,i);if(!o)return;this._unregisterPosition(i),this._registerPosition(e,n,o),r||(this._unwatchPosition(i),this._watchPosition(e,n,o));break}case"unload":{const{unitLinks:e}=t;e.forEach(n=>{const{links:i}=n;i.forEach(r=>{this._unregisterPosition(r.id),this._unwatchPosition(r.id),this._unregisterRange(r.id),this._unwatchRange(r.id)})});break}case"update":{t.silent||this._unwatchRange(t.id),this._unregisterRange(t.id),this._registerRange(t.unitId,t.id,t.payload.payload,t.silent);break}}})),this.disposeWithMe(a.toDisposable(()=>{this._disposableMap.forEach(t=>{t.dispose()}),this._disposableMap.clear()}))}};G=Le([z(0,a.Inject(m.RefRangeService)),z(1,a.Inject(p.HyperLinkModel)),z(2,a.Inject(m.SheetsSelectionsService)),z(3,a.ICommandService)],G);var Ee=Object.getOwnPropertyDescriptor,we=(s,t,e,n)=>{for(var i=n>1?void 0:n?Ee(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},te=(s,t)=>(e,n)=>t(e,n,s);let Y=class extends a.Disposable{constructor(s,t,e){super(),this._sheetInterceptorService=s,this._univerInstanceService=t,this._hyperLinkModel=e,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:s=>{var t;if(s.id===m.RemoveSheetCommand.id){const e=s.params,n=e.unitId?this._univerInstanceService.getUnit(e.unitId):this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!n)return{redos:[],undos:[]};const i=n.getUnitId(),r=e.subUnitId||((t=n.getActiveSheet())==null?void 0:t.getSheetId());if(!r)return{redos:[],undos:[]};const o=this._hyperLinkModel.getSubUnit(i,r),d=o.map(l=>({id:w.id,params:{unitId:i,subUnitId:r,id:l.id}})),c=o.map(l=>({id:E.id,params:{unitId:i,subUnitId:r,link:l}}));return{redos:d,undos:c}}return{redos:[],undos:[]}}}))}};Y=we([te(0,a.Inject(m.SheetInterceptorService)),te(1,a.IUniverInstanceService),te(2,a.Inject(p.HyperLinkModel))],Y);var Te=Object.getOwnPropertyDescriptor,He=(s,t,e,n)=>{for(var i=n>1?void 0:n?Te(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},ne=(s,t)=>(e,n)=>t(e,n,s);let q=class extends a.Disposable{constructor(t,e,n){super();U(this,"_refRangeMap",new Map);this._commandService=t,this._univerInstanceService=e,this._refRangeService=n,this._initWorkbookLoad(),this._initWorkbookUnload(),this._initSetRangesListener()}_enusreMap(t,e){let n=this._refRangeMap.get(t);n||(n=new Map,this._refRangeMap.set(t,n));let i=n.get(e);return i||(i=new a.ObjectMatrix,n.set(e,i)),i}_isLegalRangeUrl(t,e){var i,r,o;const n=this._univerInstanceService.getUnit(t,a.UniverInstanceType.UNIVER_SHEET);if(!n)return null;if(e&&e.startsWith("#")){const d=new URLSearchParams(e.slice(1)),c={gid:(i=d.get("gid"))!=null?i:"",range:(r=d.get("range"))!=null?r:"",rangeid:(o=d.get("rangeid"))!=null?o:""};if(c.range&&c.gid){const l=c.gid,u=n.getSheetBySheetId(l);if(!u)return null;const g=C.deserializeRangeWithSheet(c.range).range;if(a.isValidRange(g,u)&&c.range!==$)return{range:g,worksheet:u}}}return null}_registerRange(t,e,n,i,r){var d,c,l,u;const o=this._enusreMap(t,e);if((c=(d=r.body)==null?void 0:d.customRanges)!=null&&c.some(g=>{var f;return g.rangeType===a.CustomRangeType.HYPERLINK&&this._isLegalRangeUrl(t,(f=g.properties)==null?void 0:f.url)})){const g=new a.DisposableCollection;let f=!1;(u=(l=r.body)==null?void 0:l.customRanges)==null||u.forEach(y=>{var h;if(y.rangeType===a.CustomRangeType.HYPERLINK){const _=(h=y.properties)==null?void 0:h.url,v=this._isLegalRangeUrl(t,_);if(v){const{range:S,worksheet:k}=v;f=!0,g.add(this._refRangeService.registerRefRange(S,I=>{const R=m.handleDefaultRangeChangeWithEffectRefCommands(S,I);return R&&a.Rectangle.equals(R,S)?{preRedos:[],preUndos:[],redos:[],undos:[]}:{preRedos:[{id:K.id,params:{unitId:t,subUnitId:e,row:n,col:i,id:y.rangeId,url:`#gid=${e}&range=${R?C.serializeRange(R):$}`}}],undos:[{id:K.id,params:{unitId:t,subUnitId:e,row:n,col:i,id:y.rangeId,url:_}}],redos:[]}},k.getUnitId(),k.getSheetId()))}}}),f&&o.setValue(n,i,g)}}_initWorkbookLoad(){const t=e=>{const n=e.getUnitId();e.getSheets().forEach(i=>{const r=i.getSheetId(),o=this._enusreMap(n,r);i.getCellMatrix().forValue((d,c,l)=>{const u=o.getValue(d,c);u&&u.dispose(),l&&l.p&&this._registerRange(n,r,d,c,l.p)})})};this._univerInstanceService.getAllUnitsForType(a.UniverInstanceType.UNIVER_SHEET).forEach(e=>{t(e)}),this.disposeWithMe(this._univerInstanceService.unitAdded$.subscribe(e=>{e.type===a.UniverInstanceType.UNIVER_SHEET&&t(e)}))}_initWorkbookUnload(){this._univerInstanceService.unitDisposed$.subscribe(t=>{if(t.type===a.UniverInstanceType.UNIVER_SHEET){const e=t,n=e.getUnitId();e.getSheets().forEach(i=>{const r=i.getSheetId();this._enusreMap(n,r).forValue((d,c,l)=>{l&&l.dispose()})}),this._refRangeMap.delete(n)}})}_initSetRangesListener(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===m.SetRangeValuesMutation.id){const e=t.params,{unitId:n,subUnitId:i,cellValue:r}=e,o=this._enusreMap(n,i);r&&new a.ObjectMatrix(r).forValue((d,c,l)=>{const u=o.getValue(d,c);u&&u.dispose(),l&&l.p&&this._registerRange(n,i,d,c,l.p)})}})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===K.id){const e=t.params,{unitId:n,subUnitId:i,row:r,col:o}=e,d=m.getSheetCommandTarget(this._univerInstanceService,{unitId:n,subUnitId:i}),l=this._enusreMap(n,i).getValue(r,o);if(l&&l.dispose(),d){const{worksheet:u}=d,g=u.getCellRaw(r,o);g&&g.p&&this._registerRange(n,i,r,o,g.p)}}}))}};q=He([ne(0,a.ICommandService),ne(1,a.IUniverInstanceService),ne(2,a.Inject(m.RefRangeService))],q);var be=Object.getOwnPropertyDescriptor,Pe=(s,t,e,n)=>{for(var i=n>1?void 0:n?be(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},F=(s,t)=>(e,n)=>t(e,n,s);let J=class extends a.Disposable{constructor(s,t,e,n){super(),this._sheetInterceptorService=s,this._hyperLinkModel=t,this._selectionManagerService=e,this._univerInstanceService=n,this._initCommandInterceptor(),this._initAfterEditor()}_initCommandInterceptor(){this._initSetRangeValuesCommandInterceptor(),this._initClearSelectionCommandInterceptor()}_initSetRangeValuesCommandInterceptor(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:s=>{if(s.id===m.SetRangeValuesCommand.id){const t=s.params,{unitId:e,subUnitId:n}=t,i=[],r=[];return t.cellValue&&new a.ObjectMatrix(t.cellValue).forValue((o,d)=>{const c=this._hyperLinkModel.getHyperLinkByLocation(e,n,o,d);c&&(i.push({id:w.id,params:{unitId:e,subUnitId:n,id:c.id}}),r.push({id:E.id,params:{unitId:e,subUnitId:n,link:c}}))}),{undos:r,redos:i}}return{redos:[],undos:[]}}}))}_initClearSelectionCommandInterceptor(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:s=>{if(s.id===m.ClearSelectionContentCommand.id||s.id===m.ClearSelectionAllCommand.id||s.id===m.ClearSelectionFormatCommand.id){const t=[],e=[],n=this._selectionManagerService.getCurrentLastSelection(),i=m.getSheetCommandTarget(this._univerInstanceService);if(n&&i){const{unitId:r,subUnitId:o}=i;a.Range.foreach(n.range,(d,c)=>{const l=this._hyperLinkModel.getHyperLinkByLocation(r,o,d,c);l&&(t.push({id:w.id,params:{unitId:r,subUnitId:o,id:l.id}}),e.push({id:E.id,params:{unitId:r,subUnitId:o,link:l}}))})}return{redos:t,undos:e}}return{redos:[],undos:[]}}}))}_initAfterEditor(){this.disposeWithMe(this._sheetInterceptorService.writeCellInterceptor.intercept(m.AFTER_CELL_EDIT,{handler:(s,t,e)=>{if(!s||s.p)return e(s);if(typeof s.v=="string"&&a.Tools.isLegalUrl(s.v)&&s.v[s.v.length-1]!==" "){const{unitId:n,subUnitId:i}=t,r=this._univerInstanceService.getUnit(n,a.UniverInstanceType.UNIVER_SHEET),o=r==null?void 0:r.getSheetBySheetId(i);if(!o)return e(s);const d=o.getBlankCellDocumentModel(s);if(!d.documentModel)return e(s);const c=a.BuildTextUtils.selection.replace({selection:{startOffset:0,endOffset:s.v.length,collapsed:!1},body:{dataStream:`${s.v}`,customRanges:[{startIndex:0,endIndex:s.v.length-1,rangeId:a.generateRandomId(),rangeType:a.CustomRangeType.HYPERLINK,properties:{url:s.v}}]},doc:d.documentModel});if(!c)return e(s);const l=d.documentModel.getBody();return a.TextX.apply(l,c.serialize()),e({...s,p:{id:a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,body:l,documentStyle:{pageSize:{width:1/0,height:1/0}}}})}return e(s)}}))}};J=Pe([F(0,a.Inject(m.SheetInterceptorService)),F(1,a.Inject(p.HyperLinkModel)),F(2,a.Inject(m.SheetsSelectionsService)),F(3,a.IUniverInstanceService)],J);var de=(s=>(s[s.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",s[s.UNIVER_DOC=1]="UNIVER_DOC",s[s.UNIVER_SHEET=2]="UNIVER_SHEET",s[s.UNIVER_SLIDE=3]="UNIVER_SLIDE",s[s.UNIVER_PROJECT=4]="UNIVER_PROJECT",s[s.UNRECOGNIZED=-1]="UNRECOGNIZED",s))(de||{}),Ne=Object.getOwnPropertyDescriptor,De=(s,t,e,n)=>{for(var i=n>1?void 0:n?Ne(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},ce=(s,t)=>(e,n)=>t(e,n,s);let X=class extends a.Disposable{constructor(s,t){super(),this._resourceManagerService=s,this._hyperLinkModel=t,this._initSnapshot()}_initSnapshot(){const s=e=>{const n=this._hyperLinkModel.getUnit(e),i={};return n?(n.forEach(r=>{i[r.subUnitId]=r.links.map(({display:o,...d})=>d)}),JSON.stringify(i)):""},t=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:oe,businesses:[de.UNIVER_SHEET],toJson:e=>s(e),parseJson:e=>t(e),onUnLoad:e=>{this._hyperLinkModel.deleteUnit(e)},onLoad:async(e,n)=>{Object.keys(n).forEach(i=>{n[i].forEach(o=>{this._hyperLinkModel.addHyperLink(e,i,o)})})}}))}};X=De([ce(0,a.IResourceManagerService),ce(1,a.Inject(p.HyperLinkModel))],X);const le={type:a.CommandType.COMMAND,id:"sheets.command.add-hyper-link",async handler(s,t){if(!t)return!1;const e=s.get(a.ICommandService),n=s.get(a.IUndoRedoService),i=s.get(a.IUniverInstanceService),r=s.get(p.HyperLinkModel),o=s.get(m.SheetInterceptorService),d=m.getSheetCommandTarget(i,t);if(!d)return!1;const{unitId:c,subUnitId:l,workbook:u,worksheet:g}=d,{link:f}=t,{payload:y,display:h,row:_,column:v,id:S}=f,k=g.getCell(_,v),I=g.getBlankCellDocumentModel(k),R=I.documentModel.getSnapshot(),M=a.Tools.deepClone(R.body);if(!M)return!1;let T;if(h?T=a.BuildTextUtils.selection.replace({selection:{startOffset:0,endOffset:M.dataStream.length-2,collapsed:M.dataStream.length-2===0},body:{dataStream:`${h}`,customRanges:[{startIndex:0,endIndex:h.length-1,rangeType:a.CustomRangeType.HYPERLINK,rangeId:S,properties:{url:y}}]},doc:I.documentModel}):T=a.BuildTextUtils.customRange.add({body:M,ranges:[{startOffset:0,endOffset:M.dataStream.length-2,collapsed:!1}],rangeId:S,rangeType:a.CustomRangeType.HYPERLINK,properties:{url:y,refId:S}}),!T)return!1;const j=a.TextX.apply(M,T.serialize()),H={p:{...R,body:j},t:a.CellValueType.STRING},O=o.onWriteCell(u,g,_,v,H),V={unitId:c,subUnitId:l,cellValue:{[f.row]:{[f.column]:O}}},se={id:m.SetRangeValuesMutation.id,params:V},Q=m.SetRangeValuesUndoMutationFactory(s,V),re={id:m.SetRangeValuesMutation.id,params:Q},A=[se],b=[re],P=r.getHyperLinkByLocation(c,l,_,v);return P&&(A.push({id:w.id,params:{unitId:c,subUnitId:l,id:P.id}}),b.push({id:E.id,params:{unitId:c,subUnitId:l,link:P}})),await a.sequenceExecute(A,e)?await o.onValidateCell(u,g,_,v)===!1?(a.sequenceExecute(b,e),!1):(n.pushUndoRedo({redoMutations:A,undoMutations:b,unitID:c}),!0):!1}},ue={id:"sheets.command.add-rich-hyper-link",type:a.CommandType.COMMAND,handler:async(s,t)=>{if(!t)return!1;const{documentId:e,link:n}=t,i=s.get(a.ICommandService),r=a.generateRandomId(),{payload:o}=n,d=x.addCustomRangeBySelectionFactory(s,{unitId:e,rangeId:r,rangeType:a.CustomRangeType.HYPERLINK,properties:{url:o,refId:r}});return d?i.syncExecuteCommand(d.id,d.params):!1}},pe={type:a.CommandType.COMMAND,id:"sheets.command.cancel-hyper-link",handler(s,t){var H,O;if(!t)return!1;const e=s.get(a.ICommandService),n=s.get(a.IUndoRedoService),i=s.get(a.IUniverInstanceService),r=s.get(p.HyperLinkModel),o=m.getSheetCommandTarget(i,t);if(!o)return!1;const{row:d,column:c,id:l}=t,{unitId:u,subUnitId:g,worksheet:f}=o,y=f.getCell(d,c);if(!y)return!1;const h=f.getCellDocumentModelWithFormula(y);if(!(h!=null&&h.documentModel))return!1;const _=a.Tools.deepClone(h.documentModel.getSnapshot()),v=(O=(H=_.body)==null?void 0:H.customRanges)==null?void 0:O.find(V=>`${V.rangeId}`===l);if(!v)return!1;const S=a.BuildTextUtils.customRange.delete({documentDataModel:h.documentModel,rangeId:v.rangeId});if(!S)return!1;const k=a.TextX.apply(_.body,S.serialize()),I=[],R=[],M={unitId:u,subUnitId:g,cellValue:{[d]:{[c]:{p:{..._,body:k},t:a.CellValueType.STRING}}}};I.push({id:m.SetRangeValuesMutation.id,params:M});const T=m.SetRangeValuesUndoMutationFactory(s,M);R.push({id:m.SetRangeValuesMutation.id,params:T});const j=r.getHyperLinkByLocation(u,g,d,c);return j&&(I.push({id:w.id,params:{unitId:u,subUnitId:g,id:l}}),R.push({id:E.id,params:{unitId:u,subUnitId:g,link:{...j}}})),a.sequenceExecute(I,e).result?(n.pushUndoRedo({redoMutations:I,undoMutations:R,unitID:u}),!0):!1}},ge={type:a.CommandType.COMMAND,id:"sheets.command.cancel-rich-hyper-link",handler(s,t){var u,g;if(!t)return!1;const{id:e,documentId:n}=t,i=s.get(a.ICommandService),o=s.get(a.IUniverInstanceService).getUnit(n,a.UniverInstanceType.UNIVER_DOC),d=(g=(u=o==null?void 0:o.getBody())==null?void 0:u.customRanges)==null?void 0:g.find(f=>f.rangeId===e);let c=null;d&&d.endIndex===o.getBody().dataStream.length-3&&(c={dataStream:" "});const l=x.deleteCustomRangeFactory(s,{unitId:n,rangeId:e,insert:c});return l?i.syncExecuteCommand(l.id,l.params):!1}},he={type:a.CommandType.COMMAND,id:"sheets.command.update-hyper-link",async handler(s,t){var _e,ve,Se;if(!t)return!1;const e=s.get(a.ICommandService),n=s.get(a.IUndoRedoService),i=s.get(a.IUniverInstanceService),r=s.get(p.HyperLinkModel),o=s.get(m.SheetInterceptorService),d=m.getSheetCommandTarget(i,{unitId:t.unitId,subUnitId:t.subUnitId});if(!d)return!1;const{payload:c,row:l,column:u,id:g}=t,{workbook:f,worksheet:y,unitId:h,subUnitId:_}=d,{payload:v,display:S=""}=c,k=y.getCell(l,u);if(!k)return!1;const I=y.getCellDocumentModelWithFormula(k);if(!(I!=null&&I.documentModel))return!1;const R=I.documentModel.getSnapshot(),M=(ve=(_e=R.body)==null?void 0:_e.customRanges)==null?void 0:ve.find(Ie=>`${Ie.rangeId}`===g);if(!M)return!1;const T=a.generateRandomId(),D=(Se=a.getBodySlice(I.documentModel.getBody(),M.startIndex,M.endIndex+1).textRuns)==null?void 0:Se[0];D&&(D.ed=S.length+1);const H=x.replaceSelectionFactory(s,{unitId:h,body:{dataStream:`${S}`,customRanges:[{rangeId:T,rangeType:a.CustomRangeType.HYPERLINK,startIndex:0,endIndex:S.length-1,properties:{url:v}}],textRuns:D?[D]:void 0},selection:{startOffset:M.startIndex,endOffset:M.endIndex+1,collapsed:!1},doc:I.documentModel});if(!H)return!1;const O=a.TextX.apply(a.Tools.deepClone(R.body),H.textX.serialize()),V={p:{...R,body:O},t:a.CellValueType.STRING},se=o.onWriteCell(f,y,l,u,V),Q={id:m.SetRangeValuesMutation.id,params:{unitId:h,subUnitId:_,cellValue:{[l]:{[u]:se}}}},re=m.SetRangeValuesUndoMutationFactory(s,Q.params),A={id:m.SetRangeValuesMutation.id,params:re},b=[Q],P=[A],ee=r.getHyperLinkByLocation(h,_,l,u);return ee&&(b.push({id:w.id,params:{unitId:h,subUnitId:_,id:ee.id}}),P.push({id:E.id,params:{unitId:h,subUnitId:_,link:ee}})),a.sequenceExecute(b,e)?await o.onValidateCell(f,y,l,u)===!1?(a.sequenceExecute(P,e),!1):(n.pushUndoRedo({redoMutations:b,undoMutations:P,unitID:h}),!0):!1}},me={type:a.CommandType.COMMAND,id:"sheets.command.update-rich-hyper-link",handler:(s,t)=>{var h,_,v,S;if(!t)return!1;const{documentId:e,payload:n,id:i}=t,r=s.get(a.IUniverInstanceService),o=s.get(a.ICommandService),d=r.getUnit(e,a.UniverInstanceType.UNIVER_DOC);if(!d)return!1;const c=(_=(h=d.getBody())==null?void 0:h.customRanges)==null?void 0:_.find(k=>k.rangeId===i);if(!c)return!1;const l=(v=t.payload.display)!=null?v:"",u=a.generateRandomId(),f=(S=a.getBodySlice(d.getBody(),c.startIndex,c.endIndex+1).textRuns)==null?void 0:S[0];f&&(f.ed=l.length+1);const y=x.replaceSelectionFactory(s,{unitId:e,body:{dataStream:`${l}`,customRanges:[{rangeId:u,rangeType:a.CustomRangeType.HYPERLINK,startIndex:0,endIndex:l.length-1,properties:{url:n.payload}}],textRuns:f?[f]:void 0},selection:{startOffset:c.startIndex,endOffset:c.endIndex+1,collapsed:!1},doc:d});return y?o.syncExecuteCommand(y.id,y.params):!1}};var Oe=Object.getOwnPropertyDescriptor,Ve=(s,t,e,n)=>{for(var i=n>1?void 0:n?Oe(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},$e=(s,t)=>(e,n)=>t(e,n,s);let Z=class extends a.Disposable{constructor(s){super(),this._commandService=s,this._registerCommands()}_registerCommands(){[le,he,pe,me,ge,ue,E,W,w,B,K].forEach(s=>{this._commandService.registerCommand(s)})}};Z=Ve([$e(0,a.ICommandService)],Z);var je=Object.getOwnPropertyDescriptor,Ae=(s,t,e,n)=>{for(var i=n>1?void 0:n?je(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},ie=(s,t)=>(e,n)=>t(e,n,s);p.SheetsHyperLinkParserService=class{constructor(t,e,n){this._univerInstanceService=t,this._localeService=e,this._definedNamesService=n}buildHyperLink(t,e,n){return`#${L.SHEET}=${e}${n?`&${typeof n=="string"?L.DEFINE_NAME:L.RANGE}=${typeof n=="string"?n:C.serializeRange(n)}`:""}`}parseHyperLink(t){var e,n,i,r;if(t.startsWith("#")){const o=new URLSearchParams(t.slice(1)),d={gid:(e=o.get("gid"))!=null?e:"",range:(n=o.get("range"))!=null?n:"",rangeid:(i=o.get("rangeid"))!=null?i:"",unitid:(r=o.get("unitid"))!=null?r:""},c=this._getURLName(d);return{type:c.type,name:c.name,url:t,searchObj:d}}else return{type:L.URL,name:t,url:t,searchObj:null}}_getURLName(t){var u;const{gid:e,range:n,rangeid:i,unitid:r}=t,o=r?this._univerInstanceService.getUnit(r,a.UniverInstanceType.UNIVER_SHEET):this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),d={type:L.INVALID,name:this._localeService.t("hyperLink.message.refError")};if(!o)return d;const c=e?o.getSheetBySheetId(e):o.getActiveSheet(),l=(u=c==null?void 0:c.getName())!=null?u:"";if(n){if(!c)return d;const g=C.deserializeRangeWithSheet(n).range;return a.isValidRange(g,c)&&n!==$?{type:L.RANGE,name:C.serializeRangeWithSheet(l,g)}:d}if(i){const g=this._definedNamesService.getValueById(o.getUnitId(),i);return g?{type:L.DEFINE_NAME,name:g.formulaOrRefString}:d}if(e){const g=o.getSheetBySheetId(e);return g?{type:L.SHEET,name:g.getName()}:d}return d}},p.SheetsHyperLinkParserService=Ae([ie(0,a.IUniverInstanceService),ie(1,a.Inject(a.LocaleService)),ie(2,C.IDefinedNamesService)],p.SheetsHyperLinkParserService);var xe=Object.defineProperty,We=Object.getOwnPropertyDescriptor,Be=(s,t,e)=>t in s?xe(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,Ke=(s,t,e,n)=>{for(var i=n>1?void 0:n?We(t,e):t,r=s.length-1,o;r>=0;r--)(o=s[r])&&(i=o(i)||i);return i},fe=(s,t)=>(e,n)=>t(e,n,s),ye=(s,t,e)=>Be(s,typeof t!="symbol"?t+"":t,e);p.UniverSheetsHyperLinkPlugin=class extends a.Plugin{constructor(t=ae,e,n){super(),this._config=t,this._injector=e,this._configService=n;const{...i}=a.merge({},ae,this._config);this._configService.setConfig(ke,i)}onStarting(){a.registerDependencies(this._injector,[[p.HyperLinkModel],[p.SheetsHyperLinkParserService],[X],[Z],[G],[J],[Y],[q]]),a.touchDependencies(this._injector,[[G],[X],[Z],[J],[Y],[q]])}},ye(p.UniverSheetsHyperLinkPlugin,"pluginName",oe),ye(p.UniverSheetsHyperLinkPlugin,"type",a.UniverInstanceType.UNIVER_SHEET),p.UniverSheetsHyperLinkPlugin=Ke([a.DependentOn(m.UniverSheetsPlugin),fe(1,a.Inject(a.Injector)),fe(2,a.IConfigService)],p.UniverSheetsHyperLinkPlugin),p.AddHyperLinkCommand=le,p.AddHyperLinkMutation=E,p.AddRichHyperLinkCommand=ue,p.CancelHyperLinkCommand=pe,p.CancelRichHyperLinkCommand=ge,p.ERROR_RANGE=$,p.RemoveHyperLinkMutation=w,p.SheetHyperLinkType=L,p.UpdateHyperLinkCommand=he,p.UpdateHyperLinkMutation=W,p.UpdateHyperLinkRefMutation=B,p.UpdateRichHyperLinkCommand=me,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})});
3
3
 
4
4
 
5
5
  // @univerjs/sheets-hyper-link/facade
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/preset-sheets-hyper-link",
3
- "version": "0.6.6",
3
+ "version": "0.6.7",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -57,15 +57,15 @@
57
57
  "rxjs": ">=7.0.0"
58
58
  },
59
59
  "dependencies": {
60
- "@univerjs/sheets-hyper-link": "0.6.6",
61
- "@univerjs/sheets-hyper-link-ui": "0.6.6"
60
+ "@univerjs/sheets-hyper-link": "0.6.7",
61
+ "@univerjs/sheets-hyper-link-ui": "0.6.7"
62
62
  },
63
63
  "devDependencies": {
64
- "@univerjs/core": "0.6.6",
64
+ "@univerjs/core": "0.6.7",
65
65
  "react": "18.3.1",
66
66
  "react-dom": "18.3.1",
67
67
  "typescript": "^5.8.2",
68
- "@univerjs-infra/shared": "0.6.6"
68
+ "@univerjs-infra/shared": "0.6.7"
69
69
  },
70
70
  "scripts": {
71
71
  "prebuild:preset": "tsx prepare.ts",