@univerjs/sheets-hyper-link 0.17.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/lib/cjs/facade.js +1 -1
  2. package/lib/cjs/index.js +1 -1
  3. package/lib/es/facade.js +1 -180
  4. package/lib/es/index.js +1 -1282
  5. package/lib/facade.js +1 -180
  6. package/lib/index.js +1 -1282
  7. package/lib/types/commands/commands/add-hyper-link.command.d.ts +17 -2
  8. package/lib/types/commands/commands/remove-hyper-link.command.d.ts +16 -1
  9. package/lib/types/commands/commands/update-hyper-link.command.d.ts +17 -2
  10. package/lib/types/commands/mutations/add-hyper-link.mutation.d.ts +17 -2
  11. package/lib/types/commands/mutations/remove-hyper-link.mutation.d.ts +16 -1
  12. package/lib/types/commands/mutations/update-hyper-link.mutation.d.ts +17 -2
  13. package/lib/types/controllers/ref-range.controller.d.ts +15 -0
  14. package/lib/types/controllers/remove-sheet.controller.d.ts +15 -0
  15. package/lib/types/controllers/rich-text-ref-range.controller.d.ts +15 -0
  16. package/lib/types/controllers/set-range.controller.d.ts +15 -0
  17. package/lib/types/controllers/sheet-hyper-link-resource.controller.d.ts +15 -0
  18. package/lib/types/controllers/sheet-hyper-link.controller.d.ts +15 -0
  19. package/lib/types/facade/f-event.d.ts +18 -3
  20. package/lib/types/facade/f-range.d.ts +15 -0
  21. package/lib/types/facade/f-univer.d.ts +16 -1
  22. package/lib/types/facade/f-workbook.d.ts +20 -3
  23. package/lib/types/facade/f-worksheet.d.ts +15 -0
  24. package/lib/types/models/hyper-link.model.d.ts +18 -3
  25. package/lib/types/plugin.d.ts +16 -1
  26. package/lib/types/services/parser.service.d.ts +17 -1
  27. package/lib/umd/facade.js +1 -1
  28. package/lib/umd/index.js +1 -1
  29. package/package.json +10 -9
package/lib/cjs/facade.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("@univerjs/core"),a=require("@univerjs/sheets-hyper-link"),h=require("@univerjs/sheets/facade"),c=require("@univerjs/core/facade");var g=Object.getOwnPropertyDescriptor,v=(s,e,i,r)=>{for(var n=r>1?void 0:r?g(e,i):e,t=s.length-1,o;t>=0;t--)(o=s[t])&&(n=o(n)||n);return n},y=(s,e)=>(i,r)=>e(i,r,s);let u=class{constructor(s,e){this._workbook=s,this._parserService=e}getRangeUrl(s){return this._parserService.buildHyperLink(this._workbook.getId(),s.getSheetId(),s.getRange()),this}};u=v([y(1,d.Inject(a.SheetsHyperLinkParserService))],u);class S extends h.FWorkbook{createSheetHyperlink(e,i){return this._injector.get(a.SheetsHyperLinkParserService).buildHyperLink(this.getId(),e,i)}parseSheetHyperlink(e){return this._injector.get(a.SheetsHyperLinkParserService).parseHyperLink(e)}}h.FWorkbook.extend(S);class w extends h.FWorksheet{getUrl(){return this._injector.get(a.SheetsHyperLinkParserService).buildHyperLink(this._workbook.getUnitId(),this._worksheet.getSheetId())}}h.FWorksheet.extend(w);class L extends h.FRange{setHyperLink(e,i){const r={unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),link:{row:this._range.startRow,column:this._range.startColumn,payload:e,display:i,id:d.generateRandomId()}};return this._commandService.executeCommand(a.AddHyperLinkCommand.id,r)}getHyperLinks(){var i,r,n;const e=this._worksheet.getCellRaw(this._range.startRow,this._range.startColumn);return e!=null&&e.p?(n=(r=(i=e.p.body)==null?void 0:i.customRanges)==null?void 0:r.filter(t=>t.rangeType===d.CustomRangeType.HYPERLINK).map(t=>{var o,k,l,p,m;return{id:`${t.rangeId}`,startIndex:t.startIndex,endIndex:t.endIndex,url:(k=(o=t.properties)==null?void 0:o.url)!=null?k:"",label:(m=(p=(l=e.p)==null?void 0:l.body)==null?void 0:p.dataStream.slice(t.startIndex,t.endIndex+1).replaceAll(d.DataStreamTreeTokenType.CUSTOM_RANGE_START,"").replaceAll(d.DataStreamTreeTokenType.CUSTOM_RANGE_END,""))!=null?m:""}}))!=null?n:[]:[]}updateHyperLink(e,i,r){const n={unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this._range.startRow,column:this._range.startColumn,id:e,payload:{payload:i,display:r}};return this._commandService.executeCommand(a.UpdateHyperLinkCommand.id,n)}cancelHyperLink(e){const i={unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this._range.startRow,column:this._range.startColumn,id:e};return this._commandService.syncExecuteCommand(a.CancelHyperLinkCommand.id,i)}getUrl(){return this._injector.get(a.SheetsHyperLinkParserService).buildHyperLink(this.getUnitId(),this.getSheetId(),this.getRange())}}h.FRange.extend(L);class _{get BeforeSheetLinkAdd(){return"BeforeSheetLinkAdd"}get BeforeSheetLinkCancel(){return"BeforeSheetLinkCancel"}get BeforeSheetLinkUpdate(){return"BeforeSheetLinkUpdate"}}c.FEventName.extend(_);class C extends c.FUniver{_initialize(e){const i=e.get(d.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetLinkAdd,()=>i.beforeCommandExecuted(r=>{if(r.id!==a.AddHyperLinkCommand.id)return;const n=this.getCommandSheetTarget(r);if(!n)return;const t=r.params,o={workbook:n.workbook,worksheet:n.worksheet,row:t.link.row,col:t.link.column,link:t.link};if(this.fireEvent(this.Event.BeforeSheetLinkAdd,o),o.cancel)throw new d.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetLinkUpdate,()=>i.beforeCommandExecuted(r=>{if(r.id!==a.UpdateHyperLinkCommand.id)return;const n=this.getCommandSheetTarget(r);if(!n)return;const t=r.params,o={workbook:n.workbook,worksheet:n.worksheet,row:t.row,column:t.column,id:t.id,payload:t.payload};if(this.fireEvent(this.Event.BeforeSheetLinkUpdate,o),o.cancel)throw new d.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetLinkCancel,()=>i.beforeCommandExecuted(r=>{if(r.id!==a.CancelHyperLinkCommand.id)return;const n=this.getCommandSheetTarget(r);if(!n)return;const t=r.params,o={workbook:n.workbook,worksheet:n.worksheet,row:t.row,column:t.column,id:t.id};if(this.fireEvent(this.Event.BeforeSheetLinkCancel,o),o.cancel)throw new d.CanceledError})))}}c.FUniver.extend(C);exports.FWorkbookHyperLinkMixin=S;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`@univerjs/sheets-hyper-link`),n=require(`@univerjs/sheets/facade`),r=require(`@univerjs/core/facade`);function i(e,t){return function(n,r){t(n,r,e)}}function a(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}let o=class{constructor(e,t){this._workbook=e,this._parserService=t}getRangeUrl(e){return this._parserService.buildHyperLink(this._workbook.getId(),e.getSheetId(),e.getRange()),this}};o=a([i(1,(0,e.Inject)(t.SheetsHyperLinkParserService))],o);var s=class extends n.FWorkbook{createSheetHyperlink(e,n){return this._injector.get(t.SheetsHyperLinkParserService).buildHyperLink(this.getId(),e,n)}parseSheetHyperlink(e){return this._injector.get(t.SheetsHyperLinkParserService).parseHyperLink(e)}};n.FWorkbook.extend(s);var c=class extends n.FWorksheet{getUrl(){return this._injector.get(t.SheetsHyperLinkParserService).buildHyperLink(this._workbook.getUnitId(),this._worksheet.getSheetId())}};n.FWorksheet.extend(c);var l=class extends n.FRange{setHyperLink(n,r){let i={unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),link:{row:this._range.startRow,column:this._range.startColumn,payload:n,display:r,id:(0,e.generateRandomId)()}};return this._commandService.executeCommand(t.AddHyperLinkCommand.id,i)}getHyperLinks(){var t,n;let r=this._worksheet.getCellRaw(this._range.startRow,this._range.startColumn);return r!=null&&r.p?(t=(n=r.p.body)==null||(n=n.customRanges)==null?void 0:n.filter(t=>t.rangeType===e.CustomRangeType.HYPERLINK).map(t=>{var n,i,a,o;return{id:`${t.rangeId}`,startIndex:t.startIndex,endIndex:t.endIndex,url:(n=(i=t.properties)==null?void 0:i.url)==null?``:n,label:(a=(o=r.p)==null||(o=o.body)==null?void 0:o.dataStream.slice(t.startIndex,t.endIndex+1).replaceAll(e.DataStreamTreeTokenType.CUSTOM_RANGE_START,``).replaceAll(e.DataStreamTreeTokenType.CUSTOM_RANGE_END,``))==null?``:a}}))==null?[]:t:[]}updateHyperLink(e,n,r){let i={unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this._range.startRow,column:this._range.startColumn,id:e,payload:{payload:n,display:r}};return this._commandService.executeCommand(t.UpdateHyperLinkCommand.id,i)}cancelHyperLink(e){let n={unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this._range.startRow,column:this._range.startColumn,id:e};return this._commandService.syncExecuteCommand(t.CancelHyperLinkCommand.id,n)}getUrl(){return this._injector.get(t.SheetsHyperLinkParserService).buildHyperLink(this.getUnitId(),this.getSheetId(),this.getRange())}};n.FRange.extend(l);var u=class{get BeforeSheetLinkAdd(){return`BeforeSheetLinkAdd`}get BeforeSheetLinkCancel(){return`BeforeSheetLinkCancel`}get BeforeSheetLinkUpdate(){return`BeforeSheetLinkUpdate`}};r.FEventName.extend(u);var d=class extends r.FUniver{_initialize(n){let r=n.get(e.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetLinkAdd,()=>r.beforeCommandExecuted(n=>{if(n.id!==t.AddHyperLinkCommand.id)return;let r=this.getCommandSheetTarget(n);if(!r)return;let i=n.params,a={workbook:r.workbook,worksheet:r.worksheet,row:i.link.row,col:i.link.column,link:i.link};if(this.fireEvent(this.Event.BeforeSheetLinkAdd,a),a.cancel)throw new e.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetLinkUpdate,()=>r.beforeCommandExecuted(n=>{if(n.id!==t.UpdateHyperLinkCommand.id)return;let r=this.getCommandSheetTarget(n);if(!r)return;let i=n.params,a={workbook:r.workbook,worksheet:r.worksheet,row:i.row,column:i.column,id:i.id,payload:i.payload};if(this.fireEvent(this.Event.BeforeSheetLinkUpdate,a),a.cancel)throw new e.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetLinkCancel,()=>r.beforeCommandExecuted(n=>{if(n.id!==t.CancelHyperLinkCommand.id)return;let r=this.getCommandSheetTarget(n);if(!r)return;let i=n.params,a={workbook:r.workbook,worksheet:r.worksheet,row:i.row,column:i.column,id:i.id};if(this.fireEvent(this.Event.BeforeSheetLinkCancel,a),a.cancel)throw new e.CanceledError})))}};r.FUniver.extend(d),exports.FWorkbookHyperLinkMixin=s;
package/lib/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var Ie=Object.defineProperty;var Re=(s,t,e)=>t in s?Ie(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var C=(s,t,e)=>Re(s,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@univerjs/core"),Q=require("@univerjs/docs"),h=require("@univerjs/sheets"),Me=require("rxjs"),k=require("@univerjs/engine-formula");var Ce=Object.getOwnPropertyDescriptor,ke=(s,t,e,n)=>{for(var r=n>1?void 0:n?Ce(t,e):t,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},Le=(s,t)=>(e,n)=>t(e,n,s);exports.HyperLinkModel=class extends o.Disposable{constructor(e){super();C(this,"_linkUpdate$",new Me.Subject);C(this,"linkUpdate$",this._linkUpdate$.asObservable());C(this,"_linkMap",new Map);C(this,"_linkPositionMap",new Map);this._univerInstanceService=e,this.disposeWithMe({dispose:()=>{this._linkUpdate$.complete()}})}_ensureMap(e,n){let r=this._linkMap.get(e);r||(r=new Map,this._linkMap.set(e,r));let i=r.get(n);i||(i=new o.ObjectMatrix,r.set(n,i));let a=this._linkPositionMap.get(e);a||(a=new Map,this._linkPositionMap.set(e,a));let d=a.get(n);return d||(d=new Map,a.set(n,d)),{matrix:i,positionMap:d}}addHyperLink(e,n,r){const{matrix:i,positionMap:a}=this._ensureMap(e,n);return i.setValue(r.row,r.column,r),a.set(r.id,{row:r.row,column:r.column,link:r}),this._linkUpdate$.next({unitId:e,subUnitId:n,payload:r,type:"add"}),!0}updateHyperLink(e,n,r,i,a=!1){const{matrix:d,positionMap:c}=this._ensureMap(e,n),l=c.get(r);if(!l)return!0;const u=d.getValue(l.row,l.column);return u&&(Object.assign(u,i),this._linkUpdate$.next({unitId:e,subUnitId:n,payload:{display:u.display,payload:u.payload},id:r,type:"update",silent:a})),!0}updateHyperLinkRef(e,n,r,i,a=!1){const{matrix:d,positionMap:c}=this._ensureMap(e,n),l=c.get(r);if(!l)return!0;let u=d.getValue(l.row,l.column);return!u||u.id!==r?u=l.link:d.realDeleteValue(l.row,l.column),Object.assign(u,i),c.set(r,{...i,link:u}),d.setValue(i.row,i.column,u),this._linkUpdate$.next({unitId:e,subUnitId:n,payload:i,id:r,type:"updateRef",silent:a}),!0}removeHyperLink(e,n,r){const{matrix:i,positionMap:a}=this._ensureMap(e,n),d=a.get(r);if(!d)return!1;a.delete(r);const c=i.getValue(d.row,d.column);return c&&c.id===r&&i.realDeleteValue(d.row,d.column),this._linkUpdate$.next({unitId:e,subUnitId:n,payload:d.link,type:"remove"}),!0}getHyperLink(e,n,r){const{matrix:i,positionMap:a}=this._ensureMap(e,n),d=a.get(r);if(d)return i.getValue(d.row,d.column)}getHyperLinkByLocation(e,n,r,i){const{matrix:a}=this._ensureMap(e,n);return a.getValue(r,i)}getHyperLinkByLocationSync(e,n,r,i){var p,m,f,g,y;const{matrix:a}=this._ensureMap(e,n),d=this._univerInstanceService.getUnit(e,o.UniverInstanceType.UNIVER_SHEET),c=(p=d==null?void 0:d.getSheetBySheetId(n))==null?void 0:p.getCellRaw(r,i),l=((y=(g=c==null?void 0:c.v)!=null?g:(f=(m=c==null?void 0:c.p)==null?void 0:m.body)==null?void 0:f.dataStream.slice(0,-2))!=null?y:"").toString(),u=a.getValue(r,i);if(u)return{...u,display:l}}getSubUnit(e,n){const{matrix:r}=this._ensureMap(e,n),i=[];return r.forValue((a,d,c)=>{c&&i.push(c)}),i}getUnit(e){const n=this._linkMap.get(e);return n?Array.from(n.keys()).map(r=>{const i=this.getSubUnit(e,r);return{unitId:e,subUnitId:r,links:i}}):[]}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))}};exports.HyperLinkModel=ke([Le(0,o.IUniverInstanceService)],exports.HyperLinkModel);const U={type:o.CommandType.MUTATION,id:"sheets.mutation.add-hyper-link",handler(s,t){if(!t)return!1;const e=s.get(exports.HyperLinkModel),{unitId:n,subUnitId:r,link:i}=t;return e.addHyperLink(n,r,i)}},w={type:o.CommandType.MUTATION,id:"sheets.mutation.remove-hyper-link",handler(s,t){if(!t)return!1;const e=s.get(exports.HyperLinkModel),{unitId:n,subUnitId:r,id:i}=t;return e.removeHyperLink(n,r,i)}},pe={type:o.CommandType.COMMAND,id:"sheets.command.add-hyper-link",async handler(s,t){if(!t)return!1;const e=s.get(o.ICommandService),n=s.get(o.IUndoRedoService),r=s.get(o.IUniverInstanceService),i=s.get(exports.HyperLinkModel),a=s.get(h.SheetInterceptorService),d=h.getSheetCommandTarget(r,t);if(!d)return!1;const{unitId:c,subUnitId:l,workbook:u,worksheet:p}=d,{link:m}=t,{payload:f,display:g,row:y,column:_,id:v}=m,M=p.getCell(y,_),S=p.getBlankCellDocumentModel(M,y,_),I=S.documentModel.getSnapshot(),R=o.Tools.deepClone(I.body);if(!R)return!1;let E;if(g?E=o.BuildTextUtils.selection.replace({selection:{startOffset:0,endOffset:R.dataStream.length-2,collapsed:R.dataStream.length-2===0},body:{dataStream:`${g}`,customRanges:[{startIndex:0,endIndex:g.length-1,rangeType:o.CustomRangeType.HYPERLINK,rangeId:v,properties:{url:f}}]},doc:S.documentModel}):E=o.BuildTextUtils.customRange.add({body:R,ranges:[{startOffset:0,endOffset:R.dataStream.length-2,collapsed:!1}],rangeId:v,rangeType:o.CustomRangeType.HYPERLINK,properties:{url:f,refId:v}}),!E)return!1;const N=o.TextX.apply(R,E.serialize()),b={p:{...I,body:N},t:o.CellValueType.STRING},D=a.onWriteCell(u,p,y,_,b),O={unitId:c,subUnitId:l,cellValue:{[m.row]:{[m.column]:D}}},ee={id:h.SetRangeValuesMutation.id,params:O},$=h.SetRangeValuesUndoMutationFactory(s,O),te={id:h.SetRangeValuesMutation.id,params:$},x=[ee],H=[te],T=i.getHyperLinkByLocation(c,l,y,_);return T&&(x.push({id:w.id,params:{unitId:c,subUnitId:l,id:T.id}}),H.push({id:U.id,params:{unitId:c,subUnitId:l,link:T}})),await o.sequenceExecute(x,e)?await a.onValidateCell(u,p,y,_)===!1?(o.sequenceExecute(H,e),!1):(n.pushUndoRedo({redoMutations:x,undoMutations:H,unitID:c}),!0):!1}},ge={id:"sheets.command.add-rich-hyper-link",type:o.CommandType.COMMAND,handler:async(s,t)=>{if(!t)return!1;const{documentId:e,link:n}=t,r=s.get(o.ICommandService),i=o.generateRandomId(),{payload:a}=n,d=Q.addCustomRangeBySelectionFactory(s,{unitId:e,rangeId:i,rangeType:o.CustomRangeType.HYPERLINK,properties:{url:a,refId:i}});return d?r.syncExecuteCommand(d.id,d.params):!1}},he={type:o.CommandType.COMMAND,id:"sheets.command.cancel-hyper-link",handler(s,t){var b,D;if(!t)return!1;const e=s.get(o.ICommandService),n=s.get(o.IUndoRedoService),r=s.get(o.IUniverInstanceService),i=s.get(exports.HyperLinkModel),a=h.getSheetCommandTarget(r,t);if(!a)return!1;const{row:d,column:c,id:l}=t,{unitId:u,subUnitId:p,worksheet:m}=a,f=m.getCell(d,c);if(!f)return!1;const g=m.getCellDocumentModelWithFormula(f,d,c);if(!(g!=null&&g.documentModel))return!1;const y=o.Tools.deepClone(g.documentModel.getSnapshot()),_=(D=(b=y.body)==null?void 0:b.customRanges)==null?void 0:D.find(O=>`${O.rangeId}`===l);if(!_)return!1;const v=o.BuildTextUtils.customRange.delete({documentDataModel:g.documentModel,rangeId:_.rangeId});if(!v)return!1;const M=o.TextX.apply(y.body,v.serialize()),S=[],I=[],R={unitId:u,subUnitId:p,cellValue:{[d]:{[c]:{p:{...y,body:M},t:o.CellValueType.STRING}}}};S.push({id:h.SetRangeValuesMutation.id,params:R});const E=h.SetRangeValuesUndoMutationFactory(s,R);I.push({id:h.SetRangeValuesMutation.id,params:E});const N=i.getHyperLinkByLocation(u,p,d,c);return N&&(S.push({id:w.id,params:{unitId:u,subUnitId:p,id:l}}),I.push({id:U.id,params:{unitId:u,subUnitId:p,link:{...N}}})),o.sequenceExecute(S,e).result?(n.pushUndoRedo({redoMutations:S,undoMutations:I,unitID:u}),!0):!1}},me={type:o.CommandType.COMMAND,id:"sheets.command.cancel-rich-hyper-link",handler(s,t){var u,p;if(!t)return!1;const{id:e,documentId:n}=t,r=s.get(o.ICommandService),a=s.get(o.IUniverInstanceService).getUnit(n,o.UniverInstanceType.UNIVER_DOC),d=(p=(u=a==null?void 0:a.getBody())==null?void 0:u.customRanges)==null?void 0:p.find(m=>m.rangeId===e);let c=null;d&&d.endIndex===a.getBody().dataStream.length-3&&(c={dataStream:" "});const l=Q.deleteCustomRangeFactory(s,{unitId:n,rangeId:e,insert:c});return l?r.syncExecuteCommand(l.id,l.params):!1}},fe={type:o.CommandType.COMMAND,id:"sheets.command.update-hyper-link",async handler(s,t){var se,ae,oe;if(!t)return!1;const e=s.get(o.ICommandService),n=s.get(o.IUndoRedoService),r=s.get(o.IUniverInstanceService),i=s.get(exports.HyperLinkModel),a=s.get(h.SheetInterceptorService),d=h.getSheetCommandTarget(r,{unitId:t.unitId,subUnitId:t.subUnitId});if(!d)return!1;const{payload:c,row:l,column:u,id:p}=t,{workbook:m,worksheet:f,unitId:g,subUnitId:y}=d,{payload:_,display:v=""}=c,M=f.getCell(l,u);if(!M)return!1;const S=f.getCellDocumentModelWithFormula(M,l,u);if(!(S!=null&&S.documentModel))return!1;const I=S.documentModel.getSnapshot(),R=(ae=(se=I.body)==null?void 0:se.customRanges)==null?void 0:ae.find(de=>`${de.rangeId}`===p);if(!R)return!1;const E=o.generateRandomId(),P=(oe=o.getBodySlice(S.documentModel.getBody(),R.startIndex,R.endIndex+1).textRuns)==null?void 0:oe[0];P&&(P.ed=v.length+1);const b=Q.replaceSelectionFactory(s,{unitId:g,body:{dataStream:`${v}`,customRanges:[{rangeId:E,rangeType:o.CustomRangeType.HYPERLINK,startIndex:0,endIndex:v.length-1,properties:{url:_}}],textRuns:P?[P]:void 0},selection:{startOffset:R.startIndex,endOffset:R.endIndex+1,collapsed:!1},doc:S.documentModel});if(!b)return!1;const D=o.TextX.apply(o.Tools.deepClone(I.body),b.textX.serialize()),O={p:{...I,body:D},t:o.CellValueType.STRING},ee=a.onWriteCell(m,f,l,u,O),$={id:h.SetRangeValuesMutation.id,params:{unitId:g,subUnitId:y,cellValue:{[l]:{[u]:ee}}}},te=h.SetRangeValuesUndoMutationFactory(s,$.params),x={id:h.SetRangeValuesMutation.id,params:te},H=[$],T=[x],A=i.getHyperLinkByLocation(g,y,l,u);return A&&(H.push({id:w.id,params:{unitId:g,subUnitId:y,id:A.id}}),T.push({id:U.id,params:{unitId:g,subUnitId:y,link:A}})),o.sequenceExecute(H,e)?await a.onValidateCell(m,f,l,u)===!1?(o.sequenceExecute(T,e),!1):(n.pushUndoRedo({redoMutations:H,undoMutations:T,unitID:g}),!0):!1}},ye={type:o.CommandType.COMMAND,id:"sheets.command.update-rich-hyper-link",handler:(s,t)=>{var g,y,_,v;if(!t)return!1;const{documentId:e,payload:n,id:r}=t,i=s.get(o.IUniverInstanceService),a=s.get(o.ICommandService),d=i.getUnit(e,o.UniverInstanceType.UNIVER_DOC);if(!d)return!1;const c=(y=(g=d.getBody())==null?void 0:g.customRanges)==null?void 0:y.find(M=>M.rangeId===r);if(!c)return!1;const l=(_=t.payload.display)!=null?_:"",u=o.generateRandomId(),m=(v=o.getBodySlice(d.getBody(),c.startIndex,c.endIndex+1).textRuns)==null?void 0:v[0];m&&(m.ed=l.length+1);const f=Q.replaceSelectionFactory(s,{unitId:e,body:{dataStream:`${l}`,customRanges:[{rangeId:u,rangeType:o.CustomRangeType.HYPERLINK,startIndex:0,endIndex:l.length-1,properties:{url:n.payload}}],textRuns:m?[m]:void 0},selection:{startOffset:c.startIndex,endOffset:c.endIndex+1,collapsed:!1},doc:d});return f?a.syncExecuteCommand(f.id,f.params):!1}},F={type:o.CommandType.MUTATION,id:"sheets.mutation.update-hyper-link",handler(s,t){if(!t)return!1;const e=s.get(exports.HyperLinkModel),{unitId:n,subUnitId:r,payload:i,id:a}=t;return e.updateHyperLink(n,r,a,i,!1)}},z={type:o.CommandType.MUTATION,id:"sheets.mutation.update-hyper-link-ref",handler(s,t){if(!t)return!1;const e=s.get(exports.HyperLinkModel),{unitId:n,subUnitId:r,id:i,row:a,column:d,silent:c}=t;return e.updateHyperLinkRef(n,r,i,{row:a,column:d},c)}},B={type:o.CommandType.MUTATION,id:"sheets.mutation.update-rich-hyper-link",handler(s,t){var f,g,y;if(!t)return!1;const{unitId:e,subUnitId:n,row:r,col:i,id:a,url:d}=t,c=s.get(o.IUniverInstanceService),l=h.getSheetCommandTarget(c,{unitId:e,subUnitId:n});if(!l)return!1;const{worksheet:u}=l,p=u.getCellRaw(r,i),m=(y=(g=(f=p==null?void 0:p.p)==null?void 0:f.body)==null?void 0:g.customRanges)==null?void 0:y.find(_=>_.rangeType===o.CustomRangeType.HYPERLINK&&_.rangeId===a);return m&&(m.properties.url=d),!0}},Ue="@univerjs/sheets-hyper-link",we="0.17.0",_e={name:Ue,version:we},Ee="sheets-hyper-link.config",ce={},ve="SHEET_HYPER_LINK_PLUGIN",V="err";var be=Object.getOwnPropertyDescriptor,He=(s,t,e,n)=>{for(var r=n>1?void 0:n?be(t,e):t,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},j=(s,t)=>(e,n)=>t(e,n,s);let K=class extends o.Disposable{constructor(t,e,n,r){super();C(this,"_disposableMap",new Map);C(this,"_watchDisposableMap",new Map);C(this,"_rangeDisableMap",new Map);C(this,"_rangeWatcherMap",new Map);C(this,"_handlePositionChange",(t,e,n,r,i)=>{const a={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row};return r?{redos:[{id:z.id,params:{unitId:t,subUnitId:e,id:n.id,row:r.startRow,column:r.startColumn,silent:i}}],undos:[{id:z.id,params:{unitId:t,subUnitId:e,id:n.id,row:a.startRow,column:a.startColumn,silent:i}}]}:{redos:[{id:w.id,params:{unitId:t,subUnitId:e,id:n.id}}],undos:[{id:U.id,params:{unitId:t,subUnitId:e,link:n}}]}});this._refRangeService=t,this._hyperLinkModel=e,this._selectionManagerService=n,this._commandService=r,this._initData(),this._initRefRange()}_registerPosition(t,e,n){const r=n.id,i={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row},a=d=>{const c=h.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests(i,d,{selectionManagerService:this._selectionManagerService}),l=Array.isArray(c)?c[0]:c;return l&&l.startColumn===i.startColumn&&l.startRow===i.startRow?{undos:[],redos:[]}:this._handlePositionChange(t,e,n,l,!1)};this._disposableMap.set(r,this._refRangeService.registerRefRange(i,a,t,e))}_watchPosition(t,e,n){const r=n.id,i={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row};this._watchDisposableMap.set(r,this._refRangeService.watchRange(t,e,i,(a,d)=>{const{redos:c}=this._handlePositionChange(t,e,n,d,!0);o.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,r=!1){var i,a,d;if(n.startsWith("#")){const c=new URLSearchParams(n.slice(1)),l={gid:(i=c.get("gid"))!=null?i:"",range:(a=c.get("range"))!=null?a:"",rangeid:(d=c.get("rangeid"))!=null?d:""};if(l.range&&l.gid){const u=l.gid,p=k.deserializeRangeWithSheet(l.range).range;if(o.isValidRange(p)&&l.range!==V){const m=f=>{const g=h.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests(p,f,{selectionManagerService:this._selectionManagerService});return g&&k.serializeRange(g)===k.serializeRange(p)?{redos:[],undos:[]}:{redos:[{id:F.id,params:{unitId:t,subUnitId:u,id:e,payload:{payload:`#gid=${u}&range=${g?k.serializeRange(g):"err"}`}}}],undos:[{id:F.id,params:{unitId:t,subUnitId:u,id:e,payload:{payload:n}}}]}};this._rangeDisableMap.set(e,this._refRangeService.registerRefRange(p,m,t,u)),r||this._rangeWatcherMap.set(e,this._refRangeService.watchRange(t,u,p,(f,g)=>{this._hyperLinkModel.updateHyperLink(t,u,e,{payload:`#gid=${u}&range=${g?k.serializeRange(g):"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:r,subUnitId:i,links:a}=n;a.forEach(d=>{this._registerPosition(r,i,d),this._watchPosition(r,i,d),this._registerRange(r,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:r,silent:i}=t,a=this._hyperLinkModel.getHyperLink(e,n,r);if(!a)return;this._unregisterPosition(r),this._registerPosition(e,n,a),i||(this._unwatchPosition(r),this._watchPosition(e,n,a));break}case"unload":{const{unitLinks:e}=t;e.forEach(n=>{const{links:r}=n;r.forEach(i=>{this._unregisterPosition(i.id),this._unwatchPosition(i.id),this._unregisterRange(i.id),this._unwatchRange(i.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(o.toDisposable(()=>{this._disposableMap.forEach(t=>{t.dispose()}),this._disposableMap.clear()}))}};K=He([j(0,o.Inject(h.RefRangeService)),j(1,o.Inject(exports.HyperLinkModel)),j(2,o.Inject(h.SheetsSelectionsService)),j(3,o.ICommandService)],K);var Te=Object.getOwnPropertyDescriptor,Pe=(s,t,e,n)=>{for(var r=n>1?void 0:n?Te(t,e):t,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},ne=(s,t)=>(e,n)=>t(e,n,s);let Y=class extends o.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===h.RemoveSheetCommand.id){const e=s.params,n=e.unitId?this._univerInstanceService.getUnit(e.unitId):this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_SHEET);if(!n)return{redos:[],undos:[]};const r=n.getUnitId(),i=e.subUnitId||((t=n.getActiveSheet())==null?void 0:t.getSheetId());if(!i)return{redos:[],undos:[]};const a=this._hyperLinkModel.getSubUnit(r,i),d=a.map(l=>({id:w.id,params:{unitId:r,subUnitId:i,id:l.id}})),c=a.map(l=>({id:U.id,params:{unitId:r,subUnitId:i,link:l}}));return{redos:d,undos:c}}return{redos:[],undos:[]}}}))}};Y=Pe([ne(0,o.Inject(h.SheetInterceptorService)),ne(1,o.IUniverInstanceService),ne(2,o.Inject(exports.HyperLinkModel))],Y);var De=Object.getOwnPropertyDescriptor,Oe=(s,t,e,n)=>{for(var r=n>1?void 0:n?De(t,e):t,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},re=(s,t)=>(e,n)=>t(e,n,s);let q=class extends o.Disposable{constructor(t,e,n){super();C(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 r=n.get(e);return r||(r=new o.ObjectMatrix,n.set(e,r)),r}_isLegalRangeUrl(t,e){var r,i,a;const n=this._univerInstanceService.getUnit(t,o.UniverInstanceType.UNIVER_SHEET);if(!n)return null;if(e&&e.startsWith("#")){const d=new URLSearchParams(e.slice(1)),c={gid:(r=d.get("gid"))!=null?r:"",range:(i=d.get("range"))!=null?i:"",rangeid:(a=d.get("rangeid"))!=null?a:""};if(c.range&&c.gid){const l=c.gid,u=n.getSheetBySheetId(l);if(!u)return null;const p=k.deserializeRangeWithSheet(c.range).range;if(o.isValidRange(p,u)&&c.range!==V)return{range:p,worksheet:u}}}return null}_registerRange(t,e,n,r,i){var d,c,l,u;const a=this._enusreMap(t,e);if((c=(d=i.body)==null?void 0:d.customRanges)!=null&&c.some(p=>{var m;return p.rangeType===o.CustomRangeType.HYPERLINK&&this._isLegalRangeUrl(t,(m=p.properties)==null?void 0:m.url)})){const p=new o.DisposableCollection;let m=!1;(u=(l=i.body)==null?void 0:l.customRanges)==null||u.forEach(f=>{var g;if(f.rangeType===o.CustomRangeType.HYPERLINK){const y=(g=f.properties)==null?void 0:g.url,_=this._isLegalRangeUrl(t,y);if(_){const{range:v,worksheet:M}=_;m=!0,p.add(this._refRangeService.registerRefRange(v,S=>{const I=h.handleDefaultRangeChangeWithEffectRefCommands(v,S);return I&&o.Rectangle.equals(I,v)?{preRedos:[],preUndos:[],redos:[],undos:[]}:{preRedos:[{id:B.id,params:{unitId:t,subUnitId:e,row:n,col:r,id:f.rangeId,url:`#gid=${e}&range=${I?k.serializeRange(I):V}`}}],undos:[{id:B.id,params:{unitId:t,subUnitId:e,row:n,col:r,id:f.rangeId,url:y}}],redos:[]}},M.getUnitId(),M.getSheetId()))}}}),m&&a.setValue(n,r,p)}}_initWorkbookLoad(){const t=e=>{const n=e.getUnitId();e.getSheets().forEach(r=>{const i=r.getSheetId(),a=this._enusreMap(n,i);r.getCellMatrix().forValue((d,c,l)=>{const u=a.getValue(d,c);u&&u.dispose(),l&&l.p&&this._registerRange(n,i,d,c,l.p)})})};this._univerInstanceService.getAllUnitsForType(o.UniverInstanceType.UNIVER_SHEET).forEach(e=>{t(e)}),this.disposeWithMe(this._univerInstanceService.unitAdded$.subscribe(e=>{e.type===o.UniverInstanceType.UNIVER_SHEET&&t(e)}))}_initWorkbookUnload(){this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(t=>{if(t.type===o.UniverInstanceType.UNIVER_SHEET){const e=t,n=e.getUnitId();e.getSheets().forEach(r=>{const i=r.getSheetId();this._enusreMap(n,i).forValue((d,c,l)=>{l&&l.dispose()})}),this._refRangeMap.delete(n)}}))}_initSetRangesListener(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===h.SetRangeValuesMutation.id){const e=t.params,{unitId:n,subUnitId:r,cellValue:i}=e,a=this._enusreMap(n,r);i&&new o.ObjectMatrix(i).forValue((d,c,l)=>{const u=a.getValue(d,c);u&&u.dispose(),l&&l.p&&this._registerRange(n,r,d,c,l.p)})}})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===B.id){const e=t.params,{unitId:n,subUnitId:r,row:i,col:a}=e,d=h.getSheetCommandTarget(this._univerInstanceService,{unitId:n,subUnitId:r}),l=this._enusreMap(n,r).getValue(i,a);if(l&&l.dispose(),d){const{worksheet:u}=d,p=u.getCellRaw(i,a);p&&p.p&&this._registerRange(n,r,i,a,p.p)}}}))}};q=Oe([re(0,o.ICommandService),re(1,o.IUniverInstanceService),re(2,o.Inject(h.RefRangeService))],q);var Ne=Object.getOwnPropertyDescriptor,xe=(s,t,e,n)=>{for(var r=n>1?void 0:n?Ne(t,e):t,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},W=(s,t)=>(e,n)=>t(e,n,s);let G=class extends o.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===h.SetRangeValuesCommand.id){const t=s.params,{unitId:e,subUnitId:n}=t,r=[],i=[];return t.cellValue&&new o.ObjectMatrix(t.cellValue).forValue((a,d)=>{const c=this._hyperLinkModel.getHyperLinkByLocation(e,n,a,d);c&&(r.push({id:w.id,params:{unitId:e,subUnitId:n,id:c.id}}),i.push({id:U.id,params:{unitId:e,subUnitId:n,link:c}}))}),{undos:i,redos:r}}return{redos:[],undos:[]}}}))}_initClearSelectionCommandInterceptor(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:s=>{if(s.id===h.ClearSelectionContentCommand.id||s.id===h.ClearSelectionAllCommand.id||s.id===h.ClearSelectionFormatCommand.id){const t=[],e=[],n=this._selectionManagerService.getCurrentLastSelection(),r=h.getSheetCommandTarget(this._univerInstanceService,s.params);if(n&&r){const{unitId:i,subUnitId:a}=r;o.Range.foreach(n.range,(d,c)=>{const l=this._hyperLinkModel.getHyperLinkByLocation(i,a,d,c);l&&(t.push({id:w.id,params:{unitId:i,subUnitId:a,id:l.id}}),e.push({id:U.id,params:{unitId:i,subUnitId:a,link:l}}))})}return{redos:t,undos:e}}return{redos:[],undos:[]}}}))}_initAfterEditor(){this.disposeWithMe(this._sheetInterceptorService.writeCellInterceptor.intercept(h.AFTER_CELL_EDIT,{handler:(s,t,e)=>{if(!s||s.p)return e(s);if(typeof s.v=="string"&&o.Tools.isLegalUrl(s.v)&&s.v[s.v.length-1]!==" "){const{unitId:n,subUnitId:r,row:i,col:a}=t,d=o.Tools.normalizeUrl(s.v),c=this._univerInstanceService.getUnit(n,o.UniverInstanceType.UNIVER_SHEET),l=c==null?void 0:c.getSheetBySheetId(r);if(!l)return e(s);const u=l.getBlankCellDocumentModel(s,i,a);if(!u.documentModel)return e(s);const p=o.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:o.generateRandomId(),rangeType:o.CustomRangeType.HYPERLINK,properties:{url:d}}]},doc:u.documentModel});if(!p)return e(s);const m=u.documentModel.getBody();return o.TextX.apply(m,p.serialize()),e({...s,p:{id:o.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,body:m,documentStyle:{pageSize:{width:1/0,height:1/0}}}})}return e(s)}}))}};G=xe([W(0,o.Inject(h.SheetInterceptorService)),W(1,o.Inject(exports.HyperLinkModel)),W(2,o.Inject(h.SheetsSelectionsService)),W(3,o.IUniverInstanceService)],G);var Ve=Object.getOwnPropertyDescriptor,$e=(s,t,e,n)=>{for(var r=n>1?void 0:n?Ve(t,e):t,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},le=(s,t)=>(e,n)=>t(e,n,s);let X=class extends o.Disposable{constructor(s,t){super(),this._resourceManagerService=s,this._hyperLinkModel=t,this._initSnapshot()}_initSnapshot(){const s=e=>{const n=this._hyperLinkModel.getUnit(e),r={};return n?(n.forEach(i=>{r[i.subUnitId]=i.links.map(({display:a,...d})=>d)}),JSON.stringify(r)):""},t=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:ve,businesses:[o.UniverInstanceType.UNIVER_SHEET],toJson:e=>s(e),parseJson:e=>t(e),onUnLoad:e=>{this._hyperLinkModel.deleteUnit(e)},onLoad:async(e,n)=>{Object.keys(n).forEach(r=>{n[r].forEach(a=>{this._hyperLinkModel.addHyperLink(e,r,a)})})}}))}};X=$e([le(0,o.IResourceManagerService),le(1,o.Inject(exports.HyperLinkModel))],X);var Ae=Object.getOwnPropertyDescriptor,je=(s,t,e,n)=>{for(var r=n>1?void 0:n?Ae(t,e):t,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},We=(s,t)=>(e,n)=>t(e,n,s);let J=class extends o.Disposable{constructor(s){super(),this._commandService=s,this._registerCommands()}_registerCommands(){[pe,fe,he,ye,me,ge,U,F,w,z,B].forEach(s=>{this._commandService.registerCommand(s)})}};J=je([We(0,o.ICommandService)],J);var L=(s=>(s.SHEET="gid",s.RANGE="range",s.DEFINE_NAME="rangeid",s.INVALID="invalid",s.URL="url",s))(L||{}),Be=Object.getOwnPropertyDescriptor,Fe=(s,t,e,n)=>{for(var r=n>1?void 0:n?Be(t,e):t,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},ie=(s,t)=>(e,n)=>t(e,n,s);exports.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:k.serializeRange(n)}`:""}`}parseHyperLink(t){var e,n,r,i;if(t.startsWith("#")){const a=new URLSearchParams(t.slice(1)),d={gid:(e=a.get("gid"))!=null?e:"",range:(n=a.get("range"))!=null?n:"",rangeid:(r=a.get("rangeid"))!=null?r:"",unitid:(i=a.get("unitid"))!=null?i:""},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:r,unitid:i}=t,a=i?this._univerInstanceService.getUnit(i,o.UniverInstanceType.UNIVER_SHEET):this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_SHEET),d={type:L.INVALID,name:this._localeService.t("hyperLink.message.refError")};if(!a)return d;const c=e?a.getSheetBySheetId(e):a.getActiveSheet(),l=(u=c==null?void 0:c.getName())!=null?u:"";if(n){if(!c)return d;const p=k.deserializeRangeWithSheet(n).range;return o.isValidRange(p,c)&&n!==V?{type:L.RANGE,name:k.serializeRangeWithSheet(l,p)}:d}if(r){const p=this._definedNamesService.getValueById(a.getUnitId(),r);return p?{type:L.DEFINE_NAME,name:p.formulaOrRefString}:d}if(e){const p=a.getSheetBySheetId(e);return p?{type:L.SHEET,name:p.getName()}:d}return d}};exports.SheetsHyperLinkParserService=Fe([ie(0,o.IUniverInstanceService),ie(1,o.Inject(o.LocaleService)),ie(2,k.IDefinedNamesService)],exports.SheetsHyperLinkParserService);var ze=Object.defineProperty,Ke=Object.getOwnPropertyDescriptor,Ye=(s,t,e)=>t in s?ze(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,qe=(s,t,e,n)=>{for(var r=n>1?void 0:n?Ke(t,e):t,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},ue=(s,t)=>(e,n)=>t(e,n,s),Z=(s,t,e)=>Ye(s,typeof t!="symbol"?t+"":t,e);exports.UniverSheetsHyperLinkPlugin=class extends o.Plugin{constructor(t=ce,e,n){super(),this._config=t,this._injector=e,this._configService=n;const{...r}=o.merge({},ce,this._config);this._configService.setConfig(Ee,r)}onStarting(){o.registerDependencies(this._injector,[[exports.HyperLinkModel],[exports.SheetsHyperLinkParserService],[X],[J],[K],[G],[Y],[q]]),o.touchDependencies(this._injector,[[K],[X],[J],[G],[Y],[q]])}};Z(exports.UniverSheetsHyperLinkPlugin,"pluginName",ve);Z(exports.UniverSheetsHyperLinkPlugin,"packageName",_e.name);Z(exports.UniverSheetsHyperLinkPlugin,"version",_e.version);Z(exports.UniverSheetsHyperLinkPlugin,"type",o.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsHyperLinkPlugin=qe([o.DependentOn(h.UniverSheetsPlugin),ue(1,o.Inject(o.Injector)),ue(2,o.IConfigService)],exports.UniverSheetsHyperLinkPlugin);exports.AddHyperLinkCommand=pe;exports.AddHyperLinkMutation=U;exports.AddRichHyperLinkCommand=ge;exports.CancelHyperLinkCommand=he;exports.CancelRichHyperLinkCommand=me;exports.ERROR_RANGE=V;exports.RemoveHyperLinkMutation=w;exports.SheetHyperLinkType=L;exports.UpdateHyperLinkCommand=fe;exports.UpdateHyperLinkMutation=F;exports.UpdateHyperLinkRefMutation=z;exports.UpdateRichHyperLinkCommand=ye;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`@univerjs/docs`),n=require(`@univerjs/sheets`),r=require(`rxjs`),i=require(`@univerjs/engine-formula`);function a(e){"@babel/helpers - typeof";return a=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},a(e)}function o(e,t){if(a(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(a(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function s(e){var t=o(e,`string`);return a(t)==`symbol`?t:t+``}function c(e,t,n){return(t=s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){return function(n,r){t(n,r,e)}}function u(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}let d=class extends e.Disposable{constructor(e){super(),this._univerInstanceService=e,c(this,`_linkUpdate$`,new r.Subject),c(this,`linkUpdate$`,this._linkUpdate$.asObservable()),c(this,`_linkMap`,new Map),c(this,`_linkPositionMap`,new Map),this.disposeWithMe({dispose:()=>{this._linkUpdate$.complete()}})}_ensureMap(t,n){let r=this._linkMap.get(t);r||(r=new Map,this._linkMap.set(t,r));let i=r.get(n);i||(i=new e.ObjectMatrix,r.set(n,i));let a=this._linkPositionMap.get(t);a||(a=new Map,this._linkPositionMap.set(t,a));let o=a.get(n);return o||(o=new Map,a.set(n,o)),{matrix:i,positionMap:o}}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):!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(t,n,r,i){var a,o,s,c;let{matrix:l}=this._ensureMap(t,n),u=this._univerInstanceService.getUnit(t,e.UniverInstanceType.UNIVER_SHEET),d=u==null||(a=u.getSheetBySheetId(n))==null?void 0:a.getCellRaw(r,i),f=((o=(s=d==null?void 0:d.v)==null?d==null||(c=d.p)==null||(c=c.body)==null?void 0:c.dataStream.slice(0,-2):s)==null?``:o).toString(),p=l.getValue(r,i);if(p)return{...p,display:f}}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))}};d=u([l(0,e.IUniverInstanceService)],d);const f={type:e.CommandType.MUTATION,id:`sheets.mutation.add-hyper-link`,handler(e,t){if(!t)return!1;let n=e.get(d),{unitId:r,subUnitId:i,link:a}=t;return n.addHyperLink(r,i,a)}},p={type:e.CommandType.MUTATION,id:`sheets.mutation.remove-hyper-link`,handler(e,t){if(!t)return!1;let n=e.get(d),{unitId:r,subUnitId:i,id:a}=t;return n.removeHyperLink(r,i,a)}},m={type:e.CommandType.COMMAND,id:`sheets.command.add-hyper-link`,async handler(t,r){if(!r)return!1;let i=t.get(e.ICommandService),a=t.get(e.IUndoRedoService),o=t.get(e.IUniverInstanceService),s=t.get(d),c=t.get(n.SheetInterceptorService),l=(0,n.getSheetCommandTarget)(o,r);if(!l)return!1;let{unitId:u,subUnitId:m,workbook:h,worksheet:g}=l,{link:_}=r,{payload:v,display:y,row:b,column:x,id:S}=_,C=g.getCell(b,x),w=g.getBlankCellDocumentModel(C,b,x),T=w.documentModel.getSnapshot(),E=e.Tools.deepClone(T.body);if(!E)return!1;let D;if(D=y?e.BuildTextUtils.selection.replace({selection:{startOffset:0,endOffset:E.dataStream.length-2,collapsed:E.dataStream.length-2==0},body:{dataStream:`${y}`,customRanges:[{startIndex:0,endIndex:y.length-1,rangeType:e.CustomRangeType.HYPERLINK,rangeId:S,properties:{url:v}}]},doc:w.documentModel}):e.BuildTextUtils.customRange.add({body:E,ranges:[{startOffset:0,endOffset:E.dataStream.length-2,collapsed:!1}],rangeId:S,rangeType:e.CustomRangeType.HYPERLINK,properties:{url:v,refId:S}}),!D)return!1;let O=e.TextX.apply(E,D.serialize()),k={p:{...T,body:O},t:e.CellValueType.STRING},A=c.onWriteCell(h,g,b,x,k),j={unitId:u,subUnitId:m,cellValue:{[_.row]:{[_.column]:A}}},M={id:n.SetRangeValuesMutation.id,params:j},N=(0,n.SetRangeValuesUndoMutationFactory)(t,j),P={id:n.SetRangeValuesMutation.id,params:N},F=[M],I=[P],L=s.getHyperLinkByLocation(u,m,b,x);return L&&(F.push({id:p.id,params:{unitId:u,subUnitId:m,id:L.id}}),I.push({id:f.id,params:{unitId:u,subUnitId:m,link:L}})),await(0,e.sequenceExecute)(F,i)?await c.onValidateCell(h,g,b,x)===!1?((0,e.sequenceExecute)(I,i),!1):(a.pushUndoRedo({redoMutations:F,undoMutations:I,unitID:u}),!0):!1}},h={id:`sheets.command.add-rich-hyper-link`,type:e.CommandType.COMMAND,handler:async(n,r)=>{if(!r)return!1;let{documentId:i,link:a}=r,o=n.get(e.ICommandService),s=(0,e.generateRandomId)(),{payload:c}=a,l=(0,t.addCustomRangeBySelectionFactory)(n,{unitId:i,rangeId:s,rangeType:e.CustomRangeType.HYPERLINK,properties:{url:c,refId:s}});return l?o.syncExecuteCommand(l.id,l.params):!1}},g={type:e.CommandType.COMMAND,id:`sheets.command.cancel-hyper-link`,handler(t,r){var i;if(!r)return!1;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(e.IUniverInstanceService),c=t.get(d),l=(0,n.getSheetCommandTarget)(s,r);if(!l)return!1;let{row:u,column:m,id:h}=r,{unitId:g,subUnitId:_,worksheet:v}=l,y=v.getCell(u,m);if(!y)return!1;let b=v.getCellDocumentModelWithFormula(y,u,m);if(!(b!=null&&b.documentModel))return!1;let x=e.Tools.deepClone(b.documentModel.getSnapshot()),S=(i=x.body)==null||(i=i.customRanges)==null?void 0:i.find(e=>`${e.rangeId}`===h);if(!S)return!1;let C=e.BuildTextUtils.customRange.delete({documentDataModel:b.documentModel,rangeId:S.rangeId});if(!C)return!1;let w=e.TextX.apply(x.body,C.serialize()),T=[],E=[],D={unitId:g,subUnitId:_,cellValue:{[u]:{[m]:{p:{...x,body:w},t:e.CellValueType.STRING}}}};T.push({id:n.SetRangeValuesMutation.id,params:D});let O=(0,n.SetRangeValuesUndoMutationFactory)(t,D);E.push({id:n.SetRangeValuesMutation.id,params:O});let k=c.getHyperLinkByLocation(g,_,u,m);return k&&(T.push({id:p.id,params:{unitId:g,subUnitId:_,id:h}}),E.push({id:f.id,params:{unitId:g,subUnitId:_,link:{...k}}})),(0,e.sequenceExecute)(T,a).result?(o.pushUndoRedo({redoMutations:T,undoMutations:E,unitID:g}),!0):!1}},_={type:e.CommandType.COMMAND,id:`sheets.command.cancel-rich-hyper-link`,handler(n,r){var i;if(!r)return!1;let{id:a,documentId:o}=r,s=n.get(e.ICommandService),c=n.get(e.IUniverInstanceService).getUnit(o,e.UniverInstanceType.UNIVER_DOC),l=c==null||(i=c.getBody())==null||(i=i.customRanges)==null?void 0:i.find(e=>e.rangeId===a),u=null;l&&l.endIndex===c.getBody().dataStream.length-3&&(u={dataStream:` `});let d=(0,t.deleteCustomRangeFactory)(n,{unitId:o,rangeId:a,insert:u});return d?s.syncExecuteCommand(d.id,d.params):!1}},v={type:e.CommandType.COMMAND,id:`sheets.command.update-hyper-link`,async handler(r,i){var a,o;if(!i)return!1;let s=r.get(e.ICommandService),c=r.get(e.IUndoRedoService),l=r.get(e.IUniverInstanceService),u=r.get(d),m=r.get(n.SheetInterceptorService),h=(0,n.getSheetCommandTarget)(l,{unitId:i.unitId,subUnitId:i.subUnitId});if(!h)return!1;let{payload:g,row:_,column:v,id:y}=i,{workbook:b,worksheet:x,unitId:S,subUnitId:C}=h,{payload:w,display:T=``}=g,E=x.getCell(_,v);if(!E)return!1;let D=x.getCellDocumentModelWithFormula(E,_,v);if(!(D!=null&&D.documentModel))return!1;let O=D.documentModel.getSnapshot(),k=(a=O.body)==null||(a=a.customRanges)==null?void 0:a.find(e=>`${e.rangeId}`===y);if(!k)return!1;let A=(0,e.generateRandomId)(),j=(o=(0,e.getBodySlice)(D.documentModel.getBody(),k.startIndex,k.endIndex+1).textRuns)==null?void 0:o[0];j&&(j.ed=T.length+1);let M=(0,t.replaceSelectionFactory)(r,{unitId:S,body:{dataStream:`${T}`,customRanges:[{rangeId:A,rangeType:e.CustomRangeType.HYPERLINK,startIndex:0,endIndex:T.length-1,properties:{url:w}}],textRuns:j?[j]:void 0},selection:{startOffset:k.startIndex,endOffset:k.endIndex+1,collapsed:!1},doc:D.documentModel});if(!M)return!1;let N=e.TextX.apply(e.Tools.deepClone(O.body),M.textX.serialize()),P={p:{...O,body:N},t:e.CellValueType.STRING},F=m.onWriteCell(b,x,_,v,P),I={id:n.SetRangeValuesMutation.id,params:{unitId:S,subUnitId:C,cellValue:{[_]:{[v]:F}}}},L=(0,n.SetRangeValuesUndoMutationFactory)(r,I.params),R={id:n.SetRangeValuesMutation.id,params:L},z=[I],B=[R],V=u.getHyperLinkByLocation(S,C,_,v);return V&&(z.push({id:p.id,params:{unitId:S,subUnitId:C,id:V.id}}),B.push({id:f.id,params:{unitId:S,subUnitId:C,link:V}})),(0,e.sequenceExecute)(z,s)?await m.onValidateCell(b,x,_,v)===!1?((0,e.sequenceExecute)(B,s),!1):(c.pushUndoRedo({redoMutations:z,undoMutations:B,unitID:S}),!0):!1}},y={type:e.CommandType.COMMAND,id:`sheets.command.update-rich-hyper-link`,handler:(n,r)=>{var i,a,o;if(!r)return!1;let{documentId:s,payload:c,id:l}=r,u=n.get(e.IUniverInstanceService),d=n.get(e.ICommandService),f=u.getUnit(s,e.UniverInstanceType.UNIVER_DOC);if(!f)return!1;let p=(i=f.getBody())==null||(i=i.customRanges)==null?void 0:i.find(e=>e.rangeId===l);if(!p)return!1;let m=(a=r.payload.display)==null?``:a,h=(0,e.generateRandomId)(),g=(o=(0,e.getBodySlice)(f.getBody(),p.startIndex,p.endIndex+1).textRuns)==null?void 0:o[0];g&&(g.ed=m.length+1);let _=(0,t.replaceSelectionFactory)(n,{unitId:s,body:{dataStream:`${m}`,customRanges:[{rangeId:h,rangeType:e.CustomRangeType.HYPERLINK,startIndex:0,endIndex:m.length-1,properties:{url:c.payload}}],textRuns:g?[g]:void 0},selection:{startOffset:p.startIndex,endOffset:p.endIndex+1,collapsed:!1},doc:f});return _?d.syncExecuteCommand(_.id,_.params):!1}},b={type:e.CommandType.MUTATION,id:`sheets.mutation.update-hyper-link`,handler(e,t){if(!t)return!1;let n=e.get(d),{unitId:r,subUnitId:i,payload:a,id:o}=t;return n.updateHyperLink(r,i,o,a,!1)}},x={type:e.CommandType.MUTATION,id:`sheets.mutation.update-hyper-link-ref`,handler(e,t){if(!t)return!1;let n=e.get(d),{unitId:r,subUnitId:i,id:a,row:o,column:s,silent:c}=t;return n.updateHyperLinkRef(r,i,a,{row:o,column:s},c)}},S={type:e.CommandType.MUTATION,id:`sheets.mutation.update-rich-hyper-link`,handler(t,r){var i;if(!r)return!1;let{unitId:a,subUnitId:o,row:s,col:c,id:l,url:u}=r,d=(0,n.getSheetCommandTarget)(t.get(e.IUniverInstanceService),{unitId:a,subUnitId:o});if(!d)return!1;let{worksheet:f}=d,p=f.getCellRaw(s,c),m=p==null||(i=p.p)==null||(i=i.body)==null||(i=i.customRanges)==null?void 0:i.find(t=>t.rangeType===e.CustomRangeType.HYPERLINK&&t.rangeId===l);return m&&(m.properties.url=u),!0}};var C=`@univerjs/sheets-hyper-link`,w=`0.18.0`;const T=`sheets-hyper-link.config`;Symbol(T);const E={},D=`SHEET_HYPER_LINK_PLUGIN`;let O=class extends e.Disposable{constructor(e,t,n,r){super(),this._refRangeService=e,this._hyperLinkModel=t,this._selectionManagerService=n,this._commandService=r,c(this,`_disposableMap`,new Map),c(this,`_watchDisposableMap`,new Map),c(this,`_rangeDisableMap`,new Map),c(this,`_rangeWatcherMap`,new Map),c(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:x.id,params:{unitId:e,subUnitId:t,id:n.id,row:r.startRow,column:r.startColumn,silent:i}}],undos:[{id:x.id,params:{unitId:e,subUnitId:t,id:n.id,row:a.startRow,column:a.startColumn,silent:i}}]}:{redos:[{id:p.id,params:{unitId:e,subUnitId:t,id:n.id}}],undos:[{id:f.id,params:{unitId:e,subUnitId:t,link:n}}]}}),this._initData(),this._initRefRange()}_registerPosition(e,t,r){let i=r.id,a={startColumn:r.column,endColumn:r.column,startRow:r.row,endRow:r.row};this._disposableMap.set(i,this._refRangeService.registerRefRange(a,i=>{let o=(0,n.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests)(a,i,{selectionManagerService:this._selectionManagerService}),s=Array.isArray(o)?o[0]:o;return s&&s.startColumn===a.startColumn&&s.startRow===a.startRow?{undos:[],redos:[]}:this._handlePositionChange(e,t,r,s,!1)},e,t))}_watchPosition(t,n,r){let i=r.id,a={startColumn:r.column,endColumn:r.column,startRow:r.row,endRow:r.row};this._watchDisposableMap.set(i,this._refRangeService.watchRange(t,n,a,(i,a)=>{let{redos:o}=this._handlePositionChange(t,n,r,a,!0);(0,e.sequenceExecuteAsync)(o,this._commandService,{onlyLocal:!0})},!0))}_unregisterPosition(e){let t=this._disposableMap.get(e);t==null||t.dispose(),this._disposableMap.delete(e)}_unwatchPosition(e){let t=this._watchDisposableMap.get(e);t==null||t.dispose(),this._watchDisposableMap.delete(e)}_registerRange(t,r,a,o=!1){if(a.startsWith(`#`)){var s,c,l;let u=new URLSearchParams(a.slice(1)),d={gid:(s=u.get(`gid`))==null?``:s,range:(c=u.get(`range`))==null?``:c,rangeid:(l=u.get(`rangeid`))==null?``:l};if(d.range&&d.gid){let s=d.gid,c=(0,i.deserializeRangeWithSheet)(d.range).range;(0,e.isValidRange)(c)&&d.range!==`err`&&(this._rangeDisableMap.set(r,this._refRangeService.registerRefRange(c,e=>{let o=(0,n.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests)(c,e,{selectionManagerService:this._selectionManagerService});return o&&(0,i.serializeRange)(o)===(0,i.serializeRange)(c)?{redos:[],undos:[]}:{redos:[{id:b.id,params:{unitId:t,subUnitId:s,id:r,payload:{payload:`#gid=${s}&range=${o?(0,i.serializeRange)(o):`err`}`}}}],undos:[{id:b.id,params:{unitId:t,subUnitId:s,id:r,payload:{payload:a}}}]}},t,s)),o||this._rangeWatcherMap.set(r,this._refRangeService.watchRange(t,s,c,(e,n)=>{this._hyperLinkModel.updateHyperLink(t,s,r,{payload:`#gid=${s}&range=${n?(0,i.serializeRange)(n):`err`}`},!0)},!0)))}}}_unregisterRange(e){let t=this._rangeDisableMap.get(e);t==null||t.dispose(),this._rangeDisableMap.delete(e)}_unwatchRange(e){let t=this._rangeWatcherMap.get(e);t==null||t.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);break}})),this.disposeWithMe((0,e.toDisposable)(()=>{this._disposableMap.forEach(e=>{e.dispose()}),this._disposableMap.clear()}))}};O=u([l(0,(0,e.Inject)(n.RefRangeService)),l(1,(0,e.Inject)(d)),l(2,(0,e.Inject)(n.SheetsSelectionsService)),l(3,e.ICommandService)],O);let k=class extends e.Disposable{constructor(e,t,n){super(),this._sheetInterceptorService=e,this._univerInstanceService=t,this._hyperLinkModel=n,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:t=>{if(t.id===n.RemoveSheetCommand.id){var r;let n=t.params,i=n.unitId?this._univerInstanceService.getUnit(n.unitId):this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(!i)return{redos:[],undos:[]};let a=i.getUnitId(),o=n.subUnitId||((r=i.getActiveSheet())==null?void 0:r.getSheetId());if(!o)return{redos:[],undos:[]};let s=this._hyperLinkModel.getSubUnit(a,o);return{redos:s.map(e=>({id:p.id,params:{unitId:a,subUnitId:o,id:e.id}})),undos:s.map(e=>({id:f.id,params:{unitId:a,subUnitId:o,link:e}}))}}return{redos:[],undos:[]}}}))}};k=u([l(0,(0,e.Inject)(n.SheetInterceptorService)),l(1,e.IUniverInstanceService),l(2,(0,e.Inject)(d))],k);let A=class extends e.Disposable{constructor(e,t,n){super(),this._commandService=e,this._univerInstanceService=t,this._refRangeService=n,c(this,`_refRangeMap`,new Map),this._initWorkbookLoad(),this._initWorkbookUnload(),this._initSetRangesListener()}_enusreMap(t,n){let r=this._refRangeMap.get(t);r||(r=new Map,this._refRangeMap.set(t,r));let i=r.get(n);return i||(i=new e.ObjectMatrix,r.set(n,i)),i}_isLegalRangeUrl(t,n){let r=this._univerInstanceService.getUnit(t,e.UniverInstanceType.UNIVER_SHEET);if(!r)return null;if(n&&n.startsWith(`#`)){var a,o,s;let t=new URLSearchParams(n.slice(1)),c={gid:(a=t.get(`gid`))==null?``:a,range:(o=t.get(`range`))==null?``:o,rangeid:(s=t.get(`rangeid`))==null?``:s};if(c.range&&c.gid){let t=c.gid,n=r.getSheetBySheetId(t);if(!n)return null;let a=(0,i.deserializeRangeWithSheet)(c.range).range;if((0,e.isValidRange)(a,n)&&c.range!==`err`)return{range:a,worksheet:n}}}return null}_registerRange(t,r,a,o,s){var c;let l=this._enusreMap(t,r);if(!((c=s.body)==null||(c=c.customRanges)==null)&&c.some(n=>{var r;return n.rangeType===e.CustomRangeType.HYPERLINK&&this._isLegalRangeUrl(t,(r=n.properties)==null?void 0:r.url)})){var u;let c=new e.DisposableCollection,d=!1;(u=s.body)==null||(u=u.customRanges)==null||u.forEach(s=>{if(s.rangeType===e.CustomRangeType.HYPERLINK){var l;let u=(l=s.properties)==null?void 0:l.url,f=this._isLegalRangeUrl(t,u);if(f){let{range:l,worksheet:p}=f;d=!0,c.add(this._refRangeService.registerRefRange(l,c=>{let d=(0,n.handleDefaultRangeChangeWithEffectRefCommands)(l,c);return d&&e.Rectangle.equals(d,l)?{preRedos:[],preUndos:[],redos:[],undos:[]}:{preRedos:[{id:S.id,params:{unitId:t,subUnitId:r,row:a,col:o,id:s.rangeId,url:`#gid=${r}&range=${d?(0,i.serializeRange)(d):`err`}`}}],undos:[{id:S.id,params:{unitId:t,subUnitId:r,row:a,col:o,id:s.rangeId,url:u}}],redos:[]}},p.getUnitId(),p.getSheetId()))}}}),d&&l.setValue(a,o,c)}}_initWorkbookLoad(){let t=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(e.UniverInstanceType.UNIVER_SHEET).forEach(e=>{t(e)}),this.disposeWithMe(this._univerInstanceService.unitAdded$.subscribe(n=>{n.type===e.UniverInstanceType.UNIVER_SHEET&&t(n)}))}_initWorkbookUnload(){this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(t=>{if(t.type===e.UniverInstanceType.UNIVER_SHEET){let e=t,n=e.getUnitId();e.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(t=>{if(t.id===n.SetRangeValuesMutation.id){let{unitId:n,subUnitId:r,cellValue:i}=t.params,a=this._enusreMap(n,r);i&&new e.ObjectMatrix(i).forValue((e,t,i)=>{let o=a.getValue(e,t);o&&o.dispose(),i&&i.p&&this._registerRange(n,r,e,t,i.p)})}})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===S.id){let{unitId:t,subUnitId:r,row:i,col:a}=e.params,o=(0,n.getSheetCommandTarget)(this._univerInstanceService,{unitId:t,subUnitId:r}),s=this._enusreMap(t,r).getValue(i,a);if(s&&s.dispose(),o){let{worksheet:e}=o,n=e.getCellRaw(i,a);n&&n.p&&this._registerRange(t,r,i,a,n.p)}}}))}};A=u([l(0,e.ICommandService),l(1,e.IUniverInstanceService),l(2,(0,e.Inject)(n.RefRangeService))],A);let j=class extends e.Disposable{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:t=>{if(t.id===n.SetRangeValuesCommand.id){let n=t.params,{unitId:r,subUnitId:i}=n,a=[],o=[];return n.cellValue&&new e.ObjectMatrix(n.cellValue).forValue((e,t)=>{let n=this._hyperLinkModel.getHyperLinkByLocation(r,i,e,t);n&&(a.push({id:p.id,params:{unitId:r,subUnitId:i,id:n.id}}),o.push({id:f.id,params:{unitId:r,subUnitId:i,link:n}}))}),{undos:o,redos:a}}return{redos:[],undos:[]}}}))}_initClearSelectionCommandInterceptor(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:t=>{if(t.id===n.ClearSelectionContentCommand.id||t.id===n.ClearSelectionAllCommand.id||t.id===n.ClearSelectionFormatCommand.id){let r=[],i=[],a=this._selectionManagerService.getCurrentLastSelection(),o=(0,n.getSheetCommandTarget)(this._univerInstanceService,t.params);if(a&&o){let{unitId:t,subUnitId:n}=o;e.Range.foreach(a.range,(e,a)=>{let o=this._hyperLinkModel.getHyperLinkByLocation(t,n,e,a);o&&(r.push({id:p.id,params:{unitId:t,subUnitId:n,id:o.id}}),i.push({id:f.id,params:{unitId:t,subUnitId:n,link:o}}))})}return{redos:r,undos:i}}return{redos:[],undos:[]}}}))}_initAfterEditor(){this.disposeWithMe(this._sheetInterceptorService.writeCellInterceptor.intercept(n.AFTER_CELL_EDIT,{handler:(t,n,r)=>{if(!t||t.p)return r(t);if(typeof t.v==`string`&&e.Tools.isLegalUrl(t.v)&&t.v[t.v.length-1]!==` `){let{unitId:i,subUnitId:a,row:o,col:s}=n,c=e.Tools.normalizeUrl(t.v),l=this._univerInstanceService.getUnit(i,e.UniverInstanceType.UNIVER_SHEET),u=l==null?void 0:l.getSheetBySheetId(a);if(!u)return r(t);let d=u.getBlankCellDocumentModel(t,o,s);if(!d.documentModel)return r(t);let f=e.BuildTextUtils.selection.replace({selection:{startOffset:0,endOffset:t.v.length,collapsed:!1},body:{dataStream:`${t.v}`,customRanges:[{startIndex:0,endIndex:t.v.length-1,rangeId:(0,e.generateRandomId)(),rangeType:e.CustomRangeType.HYPERLINK,properties:{url:c}}]},doc:d.documentModel});if(!f)return r(t);let p=d.documentModel.getBody();return e.TextX.apply(p,f.serialize()),r({...t,p:{id:e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,body:p,documentStyle:{pageSize:{width:1/0,height:1/0}}}})}return r(t)}}))}};j=u([l(0,(0,e.Inject)(n.SheetInterceptorService)),l(1,(0,e.Inject)(d)),l(2,(0,e.Inject)(n.SheetsSelectionsService)),l(3,e.IUniverInstanceService)],j);let M=class extends e.Disposable{constructor(e,t){super(),this._resourceManagerService=e,this._hyperLinkModel=t,this._initSnapshot()}_initSnapshot(){let t=e=>{let t=this._hyperLinkModel.getUnit(e),n={};return t?(t.forEach(e=>{n[e.subUnitId]=e.links.map(({display:e,...t})=>t)}),JSON.stringify(n)):``},n=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:D,businesses:[e.UniverInstanceType.UNIVER_SHEET],toJson:e=>t(e),parseJson:e=>n(e),onUnLoad:e=>{this._hyperLinkModel.deleteUnit(e)},onLoad:async(e,t)=>{Object.keys(t).forEach(n=>{t[n].forEach(t=>{this._hyperLinkModel.addHyperLink(e,n,t)})})}}))}};M=u([l(0,e.IResourceManagerService),l(1,(0,e.Inject)(d))],M);let N=class extends e.Disposable{constructor(e){super(),this._commandService=e,this._registerCommands()}_registerCommands(){[m,v,g,y,_,h,f,b,p,x,S].forEach(e=>{this._commandService.registerCommand(e)})}};N=u([l(0,e.ICommandService)],N);let P=function(e){return e.SHEET=`gid`,e.RANGE=`range`,e.DEFINE_NAME=`rangeid`,e.INVALID=`invalid`,e.URL=`url`,e}({}),F=class{constructor(e,t,n){this._univerInstanceService=e,this._localeService=t,this._definedNamesService=n}buildHyperLink(e,t,n){return`#${P.SHEET}=${t}${n?`&${typeof n==`string`?P.DEFINE_NAME:P.RANGE}=${typeof n==`string`?n:(0,i.serializeRange)(n)}`:``}`}parseHyperLink(e){if(e.startsWith(`#`)){var t,n,r,i;let a=new URLSearchParams(e.slice(1)),o={gid:(t=a.get(`gid`))==null?``:t,range:(n=a.get(`range`))==null?``:n,rangeid:(r=a.get(`rangeid`))==null?``:r,unitid:(i=a.get(`unitid`))==null?``:i},s=this._getURLName(o);return{type:s.type,name:s.name,url:e,searchObj:o}}else return{type:P.URL,name:e,url:e,searchObj:null}}_getURLName(t){var n;let{gid:r,range:a,rangeid:o,unitid:s}=t,c=s?this._univerInstanceService.getUnit(s,e.UniverInstanceType.UNIVER_SHEET):this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET),l={type:P.INVALID,name:this._localeService.t(`hyperLink.message.refError`)};if(!c)return l;let u=r?c.getSheetBySheetId(r):c.getActiveSheet(),d=(n=u==null?void 0:u.getName())==null?``:n;if(a){if(!u)return l;let t=(0,i.deserializeRangeWithSheet)(a).range;return(0,e.isValidRange)(t,u)&&a!==`err`?{type:P.RANGE,name:(0,i.serializeRangeWithSheet)(d,t)}:l}if(o){let e=this._definedNamesService.getValueById(c.getUnitId(),o);return e?{type:P.DEFINE_NAME,name:e.formulaOrRefString}:l}if(r){let e=c.getSheetBySheetId(r);return e?{type:P.SHEET,name:e.getName()}:l}return l}};F=u([l(0,e.IUniverInstanceService),l(1,(0,e.Inject)(e.LocaleService)),l(2,i.IDefinedNamesService)],F);let I=class extends e.Plugin{constructor(t=E,n,r){super(),this._config=t,this._injector=n,this._configService=r;let{...i}=(0,e.merge)({},E,this._config);this._configService.setConfig(T,i)}onStarting(){(0,e.registerDependencies)(this._injector,[[d],[F],[M],[N],[O],[j],[k],[A]]),(0,e.touchDependencies)(this._injector,[[O],[M],[N],[j],[k],[A]])}};c(I,`pluginName`,D),c(I,`packageName`,C),c(I,`version`,w),c(I,`type`,e.UniverInstanceType.UNIVER_SHEET),I=u([(0,e.DependentOn)(n.UniverSheetsPlugin),l(1,(0,e.Inject)(e.Injector)),l(2,e.IConfigService)],I),exports.AddHyperLinkCommand=m,exports.AddHyperLinkMutation=f,exports.AddRichHyperLinkCommand=h,exports.CancelHyperLinkCommand=g,exports.CancelRichHyperLinkCommand=_,exports.ERROR_RANGE=`err`,Object.defineProperty(exports,`HyperLinkModel`,{enumerable:!0,get:function(){return d}}),exports.RemoveHyperLinkMutation=p,exports.SheetHyperLinkType=P,Object.defineProperty(exports,`SheetsHyperLinkParserService`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`UniverSheetsHyperLinkPlugin`,{enumerable:!0,get:function(){return I}}),exports.UpdateHyperLinkCommand=v,exports.UpdateHyperLinkMutation=b,exports.UpdateHyperLinkRefMutation=x,exports.UpdateRichHyperLinkCommand=y;
package/lib/es/facade.js CHANGED
@@ -1,180 +1 @@
1
- import { Inject as L, generateRandomId as f, CustomRangeType as C, DataStreamTreeTokenType as p, ICommandService as b, CanceledError as d } from "@univerjs/core";
2
- import { SheetsHyperLinkParserService as a, AddHyperLinkCommand as u, UpdateHyperLinkCommand as g, CancelHyperLinkCommand as S } from "@univerjs/sheets-hyper-link";
3
- import { FWorkbook as v, FWorksheet as w, FRange as _ } from "@univerjs/sheets/facade";
4
- import { FEventName as x, FUniver as y } from "@univerjs/core/facade";
5
- var I = Object.getOwnPropertyDescriptor, E = (s, e, i, r) => {
6
- for (var n = r > 1 ? void 0 : r ? I(e, i) : e, t = s.length - 1, o; t >= 0; t--)
7
- (o = s[t]) && (n = o(n) || n);
8
- return n;
9
- }, H = (s, e) => (i, r) => e(i, r, s);
10
- let m = class {
11
- constructor(s, e) {
12
- this._workbook = s, this._parserService = e;
13
- }
14
- getRangeUrl(s) {
15
- return this._parserService.buildHyperLink(this._workbook.getId(), s.getSheetId(), s.getRange()), this;
16
- }
17
- };
18
- m = E([
19
- H(1, L(a))
20
- ], m);
21
- class U extends v {
22
- createSheetHyperlink(e, i) {
23
- return this._injector.get(a).buildHyperLink(this.getId(), e, i);
24
- }
25
- /**
26
- * Parse the hyperlink string to get the hyperlink info.
27
- * @param {string} hyperlink the hyperlink string
28
- * @returns {ISheetHyperLinkInfo} the hyperlink info
29
- */
30
- parseSheetHyperlink(e) {
31
- return this._injector.get(a).parseHyperLink(e);
32
- }
33
- }
34
- v.extend(U);
35
- class R extends w {
36
- getUrl() {
37
- return this._injector.get(a).buildHyperLink(this._workbook.getUnitId(), this._worksheet.getSheetId());
38
- }
39
- }
40
- w.extend(R);
41
- class T extends _ {
42
- // #region hyperlink
43
- setHyperLink(e, i) {
44
- const r = {
45
- unitId: this.getUnitId(),
46
- subUnitId: this._worksheet.getSheetId(),
47
- link: {
48
- row: this._range.startRow,
49
- column: this._range.startColumn,
50
- payload: e,
51
- display: i,
52
- id: f()
53
- }
54
- };
55
- return this._commandService.executeCommand(u.id, r);
56
- }
57
- getHyperLinks() {
58
- var i, r, n;
59
- const e = this._worksheet.getCellRaw(this._range.startRow, this._range.startColumn);
60
- return e != null && e.p ? (n = (r = (i = e.p.body) == null ? void 0 : i.customRanges) == null ? void 0 : r.filter((t) => t.rangeType === C.HYPERLINK).map((t) => {
61
- var o, h, c, l, k;
62
- return {
63
- id: `${t.rangeId}`,
64
- startIndex: t.startIndex,
65
- endIndex: t.endIndex,
66
- url: (h = (o = t.properties) == null ? void 0 : o.url) != null ? h : "",
67
- label: (k = (l = (c = e.p) == null ? void 0 : c.body) == null ? void 0 : l.dataStream.slice(t.startIndex, t.endIndex + 1).replaceAll(p.CUSTOM_RANGE_START, "").replaceAll(p.CUSTOM_RANGE_END, "")) != null ? k : ""
68
- };
69
- })) != null ? n : [] : [];
70
- }
71
- updateHyperLink(e, i, r) {
72
- const n = {
73
- unitId: this.getUnitId(),
74
- subUnitId: this._worksheet.getSheetId(),
75
- row: this._range.startRow,
76
- column: this._range.startColumn,
77
- id: e,
78
- payload: {
79
- payload: i,
80
- display: r
81
- }
82
- };
83
- return this._commandService.executeCommand(g.id, n);
84
- }
85
- cancelHyperLink(e) {
86
- const i = {
87
- unitId: this.getUnitId(),
88
- subUnitId: this._worksheet.getSheetId(),
89
- row: this._range.startRow,
90
- column: this._range.startColumn,
91
- id: e
92
- };
93
- return this._commandService.syncExecuteCommand(S.id, i);
94
- }
95
- getUrl() {
96
- return this._injector.get(a).buildHyperLink(this.getUnitId(), this.getSheetId(), this.getRange());
97
- }
98
- // #endregion
99
- }
100
- _.extend(T);
101
- class B {
102
- get BeforeSheetLinkAdd() {
103
- return "BeforeSheetLinkAdd";
104
- }
105
- get BeforeSheetLinkCancel() {
106
- return "BeforeSheetLinkCancel";
107
- }
108
- get BeforeSheetLinkUpdate() {
109
- return "BeforeSheetLinkUpdate";
110
- }
111
- }
112
- x.extend(B);
113
- class A extends y {
114
- /**
115
- * @ignore
116
- */
117
- _initialize(e) {
118
- const i = e.get(b);
119
- this.disposeWithMe(
120
- this.registerEventHandler(
121
- this.Event.BeforeSheetLinkAdd,
122
- () => i.beforeCommandExecuted((r) => {
123
- if (r.id !== u.id) return;
124
- const n = this.getCommandSheetTarget(r);
125
- if (!n) return;
126
- const t = r.params, o = {
127
- workbook: n.workbook,
128
- worksheet: n.worksheet,
129
- row: t.link.row,
130
- col: t.link.column,
131
- link: t.link
132
- };
133
- if (this.fireEvent(this.Event.BeforeSheetLinkAdd, o), o.cancel)
134
- throw new d();
135
- })
136
- )
137
- ), this.disposeWithMe(
138
- this.registerEventHandler(
139
- this.Event.BeforeSheetLinkUpdate,
140
- () => i.beforeCommandExecuted((r) => {
141
- if (r.id !== g.id) return;
142
- const n = this.getCommandSheetTarget(r);
143
- if (!n) return;
144
- const t = r.params, o = {
145
- workbook: n.workbook,
146
- worksheet: n.worksheet,
147
- row: t.row,
148
- column: t.column,
149
- id: t.id,
150
- payload: t.payload
151
- };
152
- if (this.fireEvent(this.Event.BeforeSheetLinkUpdate, o), o.cancel)
153
- throw new d();
154
- })
155
- )
156
- ), this.disposeWithMe(
157
- this.registerEventHandler(
158
- this.Event.BeforeSheetLinkCancel,
159
- () => i.beforeCommandExecuted((r) => {
160
- if (r.id !== S.id) return;
161
- const n = this.getCommandSheetTarget(r);
162
- if (!n) return;
163
- const t = r.params, o = {
164
- workbook: n.workbook,
165
- worksheet: n.worksheet,
166
- row: t.row,
167
- column: t.column,
168
- id: t.id
169
- };
170
- if (this.fireEvent(this.Event.BeforeSheetLinkCancel, o), o.cancel)
171
- throw new d();
172
- })
173
- )
174
- );
175
- }
176
- }
177
- y.extend(A);
178
- export {
179
- U as FWorkbookHyperLinkMixin
180
- };
1
+ import{CanceledError as e,CustomRangeType as t,DataStreamTreeTokenType as n,ICommandService as r,Inject as i,generateRandomId as a}from"@univerjs/core";import{AddHyperLinkCommand as o,CancelHyperLinkCommand as s,SheetsHyperLinkParserService as c,UpdateHyperLinkCommand as l}from"@univerjs/sheets-hyper-link";import{FRange as u,FWorkbook as d,FWorksheet as f}from"@univerjs/sheets/facade";import{FEventName as p,FUniver as m}from"@univerjs/core/facade";function h(e,t){return function(n,r){t(n,r,e)}}function g(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}let _=class{constructor(e,t){this._workbook=e,this._parserService=t}getRangeUrl(e){return this._parserService.buildHyperLink(this._workbook.getId(),e.getSheetId(),e.getRange()),this}};_=g([h(1,i(c))],_);var v=class extends d{createSheetHyperlink(e,t){return this._injector.get(c).buildHyperLink(this.getId(),e,t)}parseSheetHyperlink(e){return this._injector.get(c).parseHyperLink(e)}};d.extend(v);var y=class extends f{getUrl(){return this._injector.get(c).buildHyperLink(this._workbook.getUnitId(),this._worksheet.getSheetId())}};f.extend(y);var b=class extends u{setHyperLink(e,t){let n={unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),link:{row:this._range.startRow,column:this._range.startColumn,payload:e,display:t,id:a()}};return this._commandService.executeCommand(o.id,n)}getHyperLinks(){var e,r;let i=this._worksheet.getCellRaw(this._range.startRow,this._range.startColumn);return i!=null&&i.p?(e=(r=i.p.body)==null||(r=r.customRanges)==null?void 0:r.filter(e=>e.rangeType===t.HYPERLINK).map(e=>{var t,r,a,o;return{id:`${e.rangeId}`,startIndex:e.startIndex,endIndex:e.endIndex,url:(t=(r=e.properties)==null?void 0:r.url)==null?``:t,label:(a=(o=i.p)==null||(o=o.body)==null?void 0:o.dataStream.slice(e.startIndex,e.endIndex+1).replaceAll(n.CUSTOM_RANGE_START,``).replaceAll(n.CUSTOM_RANGE_END,``))==null?``:a}}))==null?[]:e:[]}updateHyperLink(e,t,n){let r={unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this._range.startRow,column:this._range.startColumn,id:e,payload:{payload:t,display:n}};return this._commandService.executeCommand(l.id,r)}cancelHyperLink(e){let t={unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this._range.startRow,column:this._range.startColumn,id:e};return this._commandService.syncExecuteCommand(s.id,t)}getUrl(){return this._injector.get(c).buildHyperLink(this.getUnitId(),this.getSheetId(),this.getRange())}};u.extend(b);var x=class{get BeforeSheetLinkAdd(){return`BeforeSheetLinkAdd`}get BeforeSheetLinkCancel(){return`BeforeSheetLinkCancel`}get BeforeSheetLinkUpdate(){return`BeforeSheetLinkUpdate`}};p.extend(x);var S=class extends m{_initialize(t){let n=t.get(r);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetLinkAdd,()=>n.beforeCommandExecuted(t=>{if(t.id!==o.id)return;let n=this.getCommandSheetTarget(t);if(!n)return;let r=t.params,i={workbook:n.workbook,worksheet:n.worksheet,row:r.link.row,col:r.link.column,link:r.link};if(this.fireEvent(this.Event.BeforeSheetLinkAdd,i),i.cancel)throw new e}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetLinkUpdate,()=>n.beforeCommandExecuted(t=>{if(t.id!==l.id)return;let n=this.getCommandSheetTarget(t);if(!n)return;let r=t.params,i={workbook:n.workbook,worksheet:n.worksheet,row:r.row,column:r.column,id:r.id,payload:r.payload};if(this.fireEvent(this.Event.BeforeSheetLinkUpdate,i),i.cancel)throw new e}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetLinkCancel,()=>n.beforeCommandExecuted(t=>{if(t.id!==s.id)return;let n=this.getCommandSheetTarget(t);if(!n)return;let r=t.params,i={workbook:n.workbook,worksheet:n.worksheet,row:r.row,column:r.column,id:r.id};if(this.fireEvent(this.Event.BeforeSheetLinkCancel,i),i.cancel)throw new e})))}};m.extend(S);export{v as FWorkbookHyperLinkMixin};