@univerjs/sheets-hyper-link 0.2.5 → 0.2.6
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.
- package/lib/cjs/index.js +1 -1
- package/lib/es/index.js +443 -441
- package/lib/types/plugin.d.ts +1 -1
- package/lib/umd/index.js +1 -1
- package/package.json +12 -12
package/lib/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var A=Object.defineProperty;var T=(s,r,e)=>r in s?A(s,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[r]=e;var _=(s,r,e)=>T(s,typeof r!="symbol"?r+"":r,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const V=require("rxjs"),d=require("@univerjs/core"),m=require("@univerjs/sheets"),M=require("@univerjs/sheets-hyper-link"),R=require("@univerjs/engine-formula");var j=Object.defineProperty,W=Object.getOwnPropertyDescriptor,q=(s,r,e,n)=>{for(var t=n>1?void 0:n?W(r,e):r,i=s.length-1,o;i>=0;i--)(o=s[i])&&(t=(n?o(r,e,t):o(t))||t);return n&&t&&j(r,e,t),t},G=(s,r)=>(e,n)=>r(e,n,s);exports.HyperLinkModel=class extends d.Disposable{constructor(e){super();_(this,"_linkUpdate$",new V.Subject);_(this,"linkUpdate$",this._linkUpdate$.asObservable());_(this,"_linkMap",new Map);_(this,"_linkPositionMap",new Map);this._univerInstanceService=e,this.disposeWithMe({dispose:()=>{this._linkUpdate$.complete()}})}_ensureMap(e,n){let t=this._linkMap.get(e);t||(t=new Map,this._linkMap.set(e,t));let i=t.get(n);i||(i=new d.ObjectMatrix,t.set(n,i));let o=this._linkPositionMap.get(e);o||(o=new Map,this._linkPositionMap.set(e,o));let a=o.get(n);return a||(a=new Map,o.set(n,a)),{matrix:i,positionMap:a}}addHyperLink(e,n,t){const{matrix:i,positionMap:o}=this._ensureMap(e,n);return i.setValue(t.row,t.column,t),o.set(t.id,{row:t.row,column:t.column,link:t}),this._linkUpdate$.next({unitId:e,subUnitId:n,payload:t,type:"add"}),!0}updateHyperLink(e,n,t,i,o=!1){const{matrix:a,positionMap:c}=this._ensureMap(e,n),l=c.get(t);if(!l)return!0;const p=a.getValue(l.row,l.column);return p&&(Object.assign(p,i),this._linkUpdate$.next({unitId:e,subUnitId:n,payload:{display:p.display,payload:p.payload},id:t,type:"update",silent:o})),!0}updateHyperLinkRef(e,n,t,i,o=!1){const{matrix:a,positionMap:c}=this._ensureMap(e,n),l=c.get(t);if(!l)return!0;let p=a.getValue(l.row,l.column);return!p||p.id!==t?p=l.link:a.realDeleteValue(l.row,l.column),Object.assign(p,i),c.set(t,{...i,link:p}),a.setValue(i.row,i.column,p),this._linkUpdate$.next({unitId:e,subUnitId:n,payload:i,id:t,type:"updateRef",silent:o}),!0}removeHyperLink(e,n,t){const{matrix:i,positionMap:o}=this._ensureMap(e,n),a=o.get(t);if(!a)return!1;o.delete(t);const c=i.getValue(a.row,a.column);return c&&c.id===t&&i.realDeleteValue(a.row,a.column),this._linkUpdate$.next({unitId:e,subUnitId:n,payload:a.link,type:"remove"}),!0}getHyperLink(e,n,t){const{matrix:i,positionMap:o}=this._ensureMap(e,n),a=o.get(t);if(a)return i.getValue(a.row,a.column)}getHyperLinkByLocation(e,n,t,i){const{matrix:o}=this._ensureMap(e,n);return o.getValue(t,i)}getHyperLinkByLocationSync(e,n,t,i){var u,h,y,f,g;const{matrix:o}=this._ensureMap(e,n),a=this._univerInstanceService.getUnit(e,d.UniverInstanceType.UNIVER_SHEET),c=(u=a==null?void 0:a.getSheetBySheetId(n))==null?void 0:u.getCellRaw(t,i),l=((g=(f=c==null?void 0:c.v)!=null?f:(y=(h=c==null?void 0:c.p)==null?void 0:h.body)==null?void 0:y.dataStream.slice(0,-2))!=null?g:"").toString(),p=o.getValue(t,i);if(p)return{...p,display:l}}getSubUnit(e,n){const{matrix:t}=this._ensureMap(e,n),i=[];return t.forValue((o,a,c)=>{c&&i.push(c)}),i}getUnit(e){const n=this._linkMap.get(e);return n?Array.from(n.keys()).map(t=>{const i=this.getSubUnit(e,t);return{unitId:e,subUnitId:t,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=q([G(0,d.IUniverInstanceService)],exports.HyperLinkModel);const v={type:d.CommandType.MUTATION,id:"sheets.mutation.add-hyper-link",handler(s,r){if(!r)return!1;const e=s.get(exports.HyperLinkModel),{unitId:n,subUnitId:t,link:i}=r;return e.addHyperLink(n,t,i)}},H={type:d.CommandType.MUTATION,id:"sheets.mutation.update-hyper-link",handler(s,r){if(!r)return!1;const e=s.get(exports.HyperLinkModel),{unitId:n,subUnitId:t,payload:i,id:o}=r;return e.updateHyperLink(n,t,o,i,!1)}},I={type:d.CommandType.MUTATION,id:"sheets.mutation.update-hyper-link-ref",handler(s,r){if(!r)return!1;const e=s.get(exports.HyperLinkModel),{unitId:n,subUnitId:t,id:i,row:o,column:a,silent:c}=r;return e.updateHyperLinkRef(n,t,i,{row:o,column:a},c)}},S={type:d.CommandType.MUTATION,id:"sheets.mutation.remove-hyper-link",handler(s,r){if(!r)return!1;const e=s.get(exports.HyperLinkModel),{unitId:n,subUnitId:t,id:i}=r;return e.removeHyperLink(n,t,i)}},C={type:d.CommandType.COMMAND,id:"sheets.command.add-hyper-link",async handler(s,r){if(!r)return!1;const e=s.get(m.SheetInterceptorService),n=s.get(d.ICommandService),t=s.get(d.IUndoRedoService),{unitId:i,subUnitId:o,link:a}=r,{redos:c,undos:l}=e.onCommandExecute({id:C.id,params:r}),p={id:v.id,params:r},u={id:S.id,params:{unitId:i,subUnitId:o,id:a.id}};return(await d.sequenceExecuteAsync([p,...c],n)).result?(t.pushUndoRedo({redoMutations:[p,...c],undoMutations:[u,...l],unitID:i}),!0):!1}};function J(s){const{row:r,column:e,id:n,...t}=s;return t}const w={type:d.CommandType.COMMAND,id:"sheets.command.update-hyper-link",async handler(s,r){if(!r)return!1;const e=s.get(m.SheetInterceptorService),n=s.get(d.ICommandService),t=s.get(d.IUndoRedoService),i=s.get(exports.HyperLinkModel),{unitId:o,subUnitId:a,id:c}=r,l=i.getHyperLink(o,a,c);if(!l)return!1;const{redos:p,undos:u}=e.onCommandExecute({id:w.id,params:r}),h={id:H.id,params:r},y={id:H.id,params:{unitId:o,subUnitId:a,id:c,payload:J(l)}};return(await d.sequenceExecuteAsync([h,...p],n)).result?(t.pushUndoRedo({redoMutations:[h,...p],undoMutations:[y,...u],unitID:o}),!0):!1}},U={type:d.CommandType.COMMAND,id:"sheets.command.remove-hyper-link",async handler(s,r){if(!r)return!1;const e=s.get(m.SheetInterceptorService),n=s.get(d.ICommandService),t=s.get(d.IUndoRedoService),i=s.get(exports.HyperLinkModel),{unitId:o,subUnitId:a,id:c}=r,l=i.getHyperLink(o,a,c),{redos:p,undos:u}=e.onCommandExecute({id:U.id,params:r}),h={id:S.id,params:r},y={id:v.id,params:{unitId:o,subUnitId:a,link:l}};return(await d.sequenceExecuteAsync([h,...p],n)).result?(t.pushUndoRedo({redoMutations:[h,...p],undoMutations:[y,...u],unitID:o}),!0):!1}},b={type:d.CommandType.COMMAND,id:"sheets.command.cancel-hyper-link",async handler(s,r){if(!r)return!1;const e=s.get(d.ICommandService),n=s.get(d.IUndoRedoService),t=s.get(exports.HyperLinkModel),{unitId:i,subUnitId:o,id:a}=r,c=t.getHyperLink(i,o,a),l={id:S.id,params:r},p={id:v.id,params:{unitId:i,subUnitId:o,link:c}};return(await d.sequenceExecuteAsync([l],e)).result?(n.pushUndoRedo({redoMutations:[l],undoMutations:[p],unitID:i}),!0):!1}};var z=Object.defineProperty,K=Object.getOwnPropertyDescriptor,B=(s,r,e,n)=>{for(var t=n>1?void 0:n?K(r,e):r,i=s.length-1,o;i>=0;i--)(o=s[i])&&(t=(n?o(r,e,t):o(t))||t);return n&&t&&z(r,e,t),t},F=(s,r)=>(e,n)=>r(e,n,s);exports.SheetsHyperLinkController=class extends d.Disposable{constructor(r){super(),this._commandService=r,this._registerCommands()}_registerCommands(){[v,H,S,I,C,w,U,b].forEach(r=>{this._commandService.registerCommand(r)})}};exports.SheetsHyperLinkController=B([d.OnLifecycle(d.LifecycleStages.Starting,exports.SheetsHyperLinkController),F(0,d.ICommandService)],exports.SheetsHyperLinkController);var O=(s=>(s[s.range=0]="range",s[s.link=1]="link",s))(O||{});const E="SHEET_HYPER_LINK_PLUGIN",D="err";var N=(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.UNRECOGNIZED=-1]="UNRECOGNIZED",s))(N||{}),Y=Object.defineProperty,Z=Object.getOwnPropertyDescriptor,Q=(s,r,e,n)=>{for(var t=n>1?void 0:n?Z(r,e):r,i=s.length-1,o;i>=0;i--)(o=s[i])&&(t=(n?o(r,e,t):o(t))||t);return n&&t&&Y(r,e,t),t},P=(s,r)=>(e,n)=>r(e,n,s);let k=class extends d.Disposable{constructor(s,r){super(),this._resourceManagerService=s,this._hyperLinkModel=r,this._initSnapshot()}_initSnapshot(){const s=e=>{const n=this._hyperLinkModel.getUnit(e),t={};return n?(n.forEach(i=>{t[i.subUnitId]=i.links.map(({display:o,...a})=>a)}),JSON.stringify(t)):""},r=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:E,businesses:[N.UNIVER_SHEET],toJson:e=>s(e),parseJson:e=>r(e),onUnLoad:e=>{this._hyperLinkModel.deleteUnit(e)},onLoad:async(e,n)=>{Object.keys(n).forEach(t=>{n[t].forEach(o=>{this._hyperLinkModel.addHyperLink(e,t,o)})})}}))}};k=Q([d.OnLifecycle(d.LifecycleStages.Starting,k),P(0,d.IResourceManagerService),P(1,d.Inject(exports.HyperLinkModel))],k);var X=Object.defineProperty,ee=Object.getOwnPropertyDescriptor,te=(s,r,e,n)=>{for(var t=n>1?void 0:n?ee(r,e):r,i=s.length-1,o;i>=0;i--)(o=s[i])&&(t=(n?o(r,e,t):o(t))||t);return n&&t&&X(r,e,t),t},L=(s,r)=>(e,n)=>r(e,n,s);exports.SheetsHyperLinkRefRangeController=class extends d.Disposable{constructor(e,n,t,i){super();_(this,"_disposableMap",new Map);_(this,"_watchDisposableMap",new Map);_(this,"_rangeDisableMap",new Map);_(this,"_rangeWatcherMap",new Map);_(this,"_handlePositionChange",(e,n,t,i,o)=>{const a={startColumn:t.column,endColumn:t.column,startRow:t.row,endRow:t.row};return i?{redos:[{id:M.UpdateHyperLinkRefMutation.id,params:{unitId:e,subUnitId:n,id:t.id,row:i.startRow,column:i.startColumn,silent:o}}],undos:[{id:M.UpdateHyperLinkRefMutation.id,params:{unitId:e,subUnitId:n,id:t.id,row:a.startRow,column:a.startColumn,silent:o}}]}:{redos:[{id:M.RemoveHyperLinkMutation.id,params:{unitId:e,subUnitId:n,id:t.id}}],undos:[{id:M.AddHyperLinkMutation.id,params:{unitId:e,subUnitId:n,link:t}}]}});this._refRangeService=e,this._hyperLinkModel=n,this._selectionManagerService=t,this._commandService=i,this._initData(),this._initRefRange()}_registerPosition(e,n,t){const i=t.id,o={startColumn:t.column,endColumn:t.column,startRow:t.row,endRow:t.row},a=c=>{const l=m.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests(o,c,{selectionManagerService:this._selectionManagerService});return l&&l.startColumn===o.startColumn&&l.startRow===o.startRow?{undos:[],redos:[]}:this._handlePositionChange(e,n,t,l,!1)};this._disposableMap.set(i,this._refRangeService.registerRefRange(o,a,e,n))}_watchPosition(e,n,t){const i=t.id,o={startColumn:t.column,endColumn:t.column,startRow:t.row,endRow:t.row};this._watchDisposableMap.set(i,this._refRangeService.watchRange(e,n,o,(a,c)=>{const{redos:l}=this._handlePositionChange(e,n,t,c,!0);d.sequenceExecuteAsync(l,this._commandService,{onlyLocal:!0})},!0))}_unregisterPosition(e){const n=this._disposableMap.get(e);n==null||n.dispose(),this._disposableMap.delete(e)}_unwatchPosition(e){const n=this._watchDisposableMap.get(e);n==null||n.dispose(),this._watchDisposableMap.delete(e)}_registerRange(e,n,t,i=!1){var o,a,c;if(t.startsWith("#")){const l=new URLSearchParams(t.slice(1)),p={gid:(o=l.get("gid"))!=null?o:"",range:(a=l.get("range"))!=null?a:"",rangeid:(c=l.get("rangeid"))!=null?c:""};if(p.range&&p.gid){const u=p.gid,h=R.deserializeRangeWithSheet(p.range).range;if(d.isValidRange(h)&&p.range!==D){const y=f=>{const g=m.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests(h,f,{selectionManagerService:this._selectionManagerService});return g&&R.serializeRange(g)===R.serializeRange(h)?{redos:[],undos:[]}:{redos:[{id:M.UpdateHyperLinkMutation.id,params:{unitId:e,subUnitId:u,id:n,payload:{payload:`#gid=${u}&range=${g?R.serializeRange(g):"err"}`}}}],undos:[{id:M.UpdateHyperLinkMutation.id,params:{unitId:e,subUnitId:u,id:n,payload:{payload:t}}}]}};this._rangeDisableMap.set(n,this._refRangeService.registerRefRange(h,y,e,u)),i||this._rangeWatcherMap.set(n,this._refRangeService.watchRange(e,u,h,(f,g)=>{this._hyperLinkModel.updateHyperLink(e,u,n,{payload:`#gid=${u}&range=${g?R.serializeRange(g):"err"}`},!0)},!0))}}}}_unregisterRange(e){const n=this._rangeDisableMap.get(e);n==null||n.dispose(),this._rangeDisableMap.delete(e)}_unwatchRange(e){const n=this._rangeWatcherMap.get(e);n==null||n.dispose(),this._rangeWatcherMap.delete(e)}_initData(){this._hyperLinkModel.getAll().forEach(n=>{n.forEach(t=>{const{unitId:i,subUnitId:o,links:a}=t;a.forEach(c=>{this._registerPosition(i,o,c),this._watchPosition(i,o,c),this._registerRange(i,c.id,c.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":{const{unitId:n,subUnitId:t,id:i,silent:o}=e,a=this._hyperLinkModel.getHyperLink(n,t,i);if(!a)return;this._unregisterPosition(i),this._registerPosition(n,t,a),o||(this._unwatchPosition(i),this._watchPosition(n,t,a));break}case"unload":{const{unitLinks:n}=e;n.forEach(t=>{const{links:i}=t;i.forEach(o=>{this._unregisterPosition(o.id),this._unwatchPosition(o.id),this._unregisterRange(o.id),this._unwatchRange(o.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(d.toDisposable(()=>{this._disposableMap.forEach(e=>{e.dispose()}),this._disposableMap.clear()}))}};exports.SheetsHyperLinkRefRangeController=te([d.OnLifecycle(d.LifecycleStages.Starting,exports.SheetsHyperLinkRefRangeController),L(0,d.Inject(m.RefRangeService)),L(1,d.Inject(M.HyperLinkModel)),L(2,d.Inject(m.SheetsSelectionsService)),L(3,d.ICommandService)],exports.SheetsHyperLinkRefRangeController);var $=Object.defineProperty,ne=Object.getOwnPropertyDescriptor,re=(s,r,e)=>r in s?$(s,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[r]=e,ie=(s,r,e,n)=>{for(var t=n>1?void 0:n?ne(r,e):r,i=s.length-1,o;i>=0;i--)(o=s[i])&&(t=(n?o(r,e,t):o(t))||t);return n&&t&&$(r,e,t),t},se=(s,r)=>(e,n)=>r(e,n,s),x=(s,r,e)=>re(s,typeof r!="symbol"?r+"":r,e);exports.UniverSheetsHyperLinkPlugin=class extends d.Plugin{constructor(r,e){super(),this._injector=e}onStarting(r){[[k],[exports.SheetsHyperLinkController],[exports.SheetsHyperLinkRefRangeController],[exports.HyperLinkModel]].forEach(e=>{r.add(e)})}};x(exports.UniverSheetsHyperLinkPlugin,"pluginName",E);x(exports.UniverSheetsHyperLinkPlugin,"type",d.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsHyperLinkPlugin=ie([d.DependentOn(m.UniverSheetsPlugin),se(1,d.Inject(d.Injector))],exports.UniverSheetsHyperLinkPlugin);exports.AddHyperLinkCommand=C;exports.AddHyperLinkMutation=v;exports.CancelHyperLinkCommand=b;exports.ERROR_RANGE=D;exports.HyperLinkType=O;exports.RemoveHyperLinkCommand=U;exports.RemoveHyperLinkMutation=S;exports.UpdateHyperLinkCommand=w;exports.UpdateHyperLinkMutation=H;exports.UpdateHyperLinkRefMutation=I;
|
|
1
|
+
"use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const rxjs=require("rxjs"),core=require("@univerjs/core"),sheets=require("@univerjs/sheets"),sheetsHyperLink=require("@univerjs/sheets-hyper-link"),engineFormula=require("@univerjs/engine-formula");var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__decorateClass$4=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$4(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$4(target,key,result),result},"__decorateClass$4"),__decorateParam$4=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$4"),_a;exports.HyperLinkModel=(_a=class extends core.Disposable{constructor(_univerInstanceService){super();__publicField(this,"_linkUpdate$",new rxjs.Subject);__publicField(this,"linkUpdate$",this._linkUpdate$.asObservable());__publicField(this,"_linkMap",new Map);__publicField(this,"_linkPositionMap",new Map);this._univerInstanceService=_univerInstanceService,this.disposeWithMe({dispose:__name(()=>{this._linkUpdate$.complete()},"dispose")})}_ensureMap(unitId,subUnitId){let unitMap=this._linkMap.get(unitId);unitMap||(unitMap=new Map,this._linkMap.set(unitId,unitMap));let matrix=unitMap.get(subUnitId);matrix||(matrix=new core.ObjectMatrix,unitMap.set(subUnitId,matrix));let positionUnitMap=this._linkPositionMap.get(unitId);positionUnitMap||(positionUnitMap=new Map,this._linkPositionMap.set(unitId,positionUnitMap));let positionSubUnitMap=positionUnitMap.get(subUnitId);return positionSubUnitMap||(positionSubUnitMap=new Map,positionUnitMap.set(subUnitId,positionSubUnitMap)),{matrix,positionMap:positionSubUnitMap}}addHyperLink(unitId,subUnitId,link){const{matrix,positionMap}=this._ensureMap(unitId,subUnitId);return matrix.setValue(link.row,link.column,link),positionMap.set(link.id,{row:link.row,column:link.column,link}),this._linkUpdate$.next({unitId,subUnitId,payload:link,type:"add"}),!0}updateHyperLink(unitId,subUnitId,id,payload,silent=!1){const{matrix,positionMap}=this._ensureMap(unitId,subUnitId),position=positionMap.get(id);if(!position)return!0;const link=matrix.getValue(position.row,position.column);return link&&(Object.assign(link,payload),this._linkUpdate$.next({unitId,subUnitId,payload:{display:link.display,payload:link.payload},id,type:"update",silent})),!0}updateHyperLinkRef(unitId,subUnitId,id,payload,silent=!1){const{matrix,positionMap}=this._ensureMap(unitId,subUnitId),position=positionMap.get(id);if(!position)return!0;let link=matrix.getValue(position.row,position.column);return!link||link.id!==id?link=position.link:matrix.realDeleteValue(position.row,position.column),Object.assign(link,payload),positionMap.set(id,{...payload,link}),matrix.setValue(payload.row,payload.column,link),this._linkUpdate$.next({unitId,subUnitId,payload,id,type:"updateRef",silent}),!0}removeHyperLink(unitId,subUnitId,id){const{matrix,positionMap}=this._ensureMap(unitId,subUnitId),position=positionMap.get(id);if(!position)return!1;positionMap.delete(id);const link=matrix.getValue(position.row,position.column);return link&&link.id===id&&matrix.realDeleteValue(position.row,position.column),this._linkUpdate$.next({unitId,subUnitId,payload:position.link,type:"remove"}),!0}getHyperLink(unitId,subUnitId,id){const{matrix,positionMap}=this._ensureMap(unitId,subUnitId),position=positionMap.get(id);if(position)return matrix.getValue(position.row,position.column)}getHyperLinkByLocation(unitId,subUnitId,row,column){const{matrix}=this._ensureMap(unitId,subUnitId);return matrix.getValue(row,column)}getHyperLinkByLocationSync(unitId,subUnitId,row,column){var _a6,_b,_c,_d,_e;const{matrix}=this._ensureMap(unitId,subUnitId),workbook=this._univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_SHEET),cell=(_a6=workbook==null?void 0:workbook.getSheetBySheetId(subUnitId))==null?void 0:_a6.getCellRaw(row,column),cellValueStr=((_e=(_d=cell==null?void 0:cell.v)!=null?_d:(_c=(_b=cell==null?void 0:cell.p)==null?void 0:_b.body)==null?void 0:_c.dataStream.slice(0,-2))!=null?_e:"").toString(),link=matrix.getValue(row,column);if(link)return{...link,display:cellValueStr}}getSubUnit(unitId,subUnitId){const{matrix}=this._ensureMap(unitId,subUnitId),links=[];return matrix.forValue((row,col,value)=>{value&&links.push(value)}),links}getUnit(unitId){const unitMap=this._linkMap.get(unitId);return unitMap?Array.from(unitMap.keys()).map(subUnitId=>{const links=this.getSubUnit(unitId,subUnitId);return{unitId,subUnitId,links}}):[]}deleteUnit(unitId){const links=this.getUnit(unitId);this._linkMap.delete(unitId),this._linkPositionMap.delete(unitId),this._linkUpdate$.next({type:"unload",unitId,unitLinks:links})}getAll(){return Array.from(this._linkMap.keys()).map(unitId=>this.getUnit(unitId))}},__name(_a,"HyperLinkModel"),_a);exports.HyperLinkModel=__decorateClass$4([__decorateParam$4(0,core.IUniverInstanceService)],exports.HyperLinkModel);const AddHyperLinkMutation={type:core.CommandType.MUTATION,id:"sheets.mutation.add-hyper-link",handler(accessor,params){if(!params)return!1;const model=accessor.get(exports.HyperLinkModel),{unitId,subUnitId,link}=params;return model.addHyperLink(unitId,subUnitId,link)}},UpdateHyperLinkMutation={type:core.CommandType.MUTATION,id:"sheets.mutation.update-hyper-link",handler(accessor,params){if(!params)return!1;const model=accessor.get(exports.HyperLinkModel),{unitId,subUnitId,payload,id}=params;return model.updateHyperLink(unitId,subUnitId,id,payload,!1)}},UpdateHyperLinkRefMutation={type:core.CommandType.MUTATION,id:"sheets.mutation.update-hyper-link-ref",handler(accessor,params){if(!params)return!1;const model=accessor.get(exports.HyperLinkModel),{unitId,subUnitId,id,row,column,silent}=params;return model.updateHyperLinkRef(unitId,subUnitId,id,{row,column},silent)}},RemoveHyperLinkMutation={type:core.CommandType.MUTATION,id:"sheets.mutation.remove-hyper-link",handler(accessor,params){if(!params)return!1;const model=accessor.get(exports.HyperLinkModel),{unitId,subUnitId,id}=params;return model.removeHyperLink(unitId,subUnitId,id)}},AddHyperLinkCommand={type:core.CommandType.COMMAND,id:"sheets.command.add-hyper-link",async handler(accessor,params){if(!params)return!1;const sheetInterceptorService=accessor.get(sheets.SheetInterceptorService),commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),{unitId,subUnitId,link}=params,{redos,undos}=sheetInterceptorService.onCommandExecute({id:AddHyperLinkCommand.id,params}),redo={id:AddHyperLinkMutation.id,params},undo={id:RemoveHyperLinkMutation.id,params:{unitId,subUnitId,id:link.id}};return(await core.sequenceExecuteAsync([redo,...redos],commandService)).result?(undoRedoService.pushUndoRedo({redoMutations:[redo,...redos],undoMutations:[undo,...undos],unitID:unitId}),!0):!1}};function getHyperLinkContent(link){const{row,column,id,...content}=link;return content}__name(getHyperLinkContent,"getHyperLinkContent");const UpdateHyperLinkCommand={type:core.CommandType.COMMAND,id:"sheets.command.update-hyper-link",async handler(accessor,params){if(!params)return!1;const sheetInterceptorService=accessor.get(sheets.SheetInterceptorService),commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),model=accessor.get(exports.HyperLinkModel),{unitId,subUnitId,id}=params,link=model.getHyperLink(unitId,subUnitId,id);if(!link)return!1;const{redos,undos}=sheetInterceptorService.onCommandExecute({id:UpdateHyperLinkCommand.id,params}),redo={id:UpdateHyperLinkMutation.id,params},undo={id:UpdateHyperLinkMutation.id,params:{unitId,subUnitId,id,payload:getHyperLinkContent(link)}};return(await core.sequenceExecuteAsync([redo,...redos],commandService)).result?(undoRedoService.pushUndoRedo({redoMutations:[redo,...redos],undoMutations:[undo,...undos],unitID:unitId}),!0):!1}},RemoveHyperLinkCommand={type:core.CommandType.COMMAND,id:"sheets.command.remove-hyper-link",async handler(accessor,params){if(!params)return!1;const sheetInterceptorService=accessor.get(sheets.SheetInterceptorService),commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),model=accessor.get(exports.HyperLinkModel),{unitId,subUnitId,id}=params,link=model.getHyperLink(unitId,subUnitId,id),{redos,undos}=sheetInterceptorService.onCommandExecute({id:RemoveHyperLinkCommand.id,params}),redo={id:RemoveHyperLinkMutation.id,params},undo={id:AddHyperLinkMutation.id,params:{unitId,subUnitId,link}};return(await core.sequenceExecuteAsync([redo,...redos],commandService)).result?(undoRedoService.pushUndoRedo({redoMutations:[redo,...redos],undoMutations:[undo,...undos],unitID:unitId}),!0):!1}},CancelHyperLinkCommand={type:core.CommandType.COMMAND,id:"sheets.command.cancel-hyper-link",async handler(accessor,params){if(!params)return!1;const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),model=accessor.get(exports.HyperLinkModel),{unitId,subUnitId,id}=params,link=model.getHyperLink(unitId,subUnitId,id),redo={id:RemoveHyperLinkMutation.id,params},undo={id:AddHyperLinkMutation.id,params:{unitId,subUnitId,link}};return(await core.sequenceExecuteAsync([redo],commandService)).result?(undoRedoService.pushUndoRedo({redoMutations:[redo],undoMutations:[undo],unitID:unitId}),!0):!1}};var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3"),_a2;exports.SheetsHyperLinkController=(_a2=class extends core.Disposable{constructor(_commandService){super(),this._commandService=_commandService,this._registerCommands()}_registerCommands(){[AddHyperLinkMutation,UpdateHyperLinkMutation,RemoveHyperLinkMutation,UpdateHyperLinkRefMutation,AddHyperLinkCommand,UpdateHyperLinkCommand,RemoveHyperLinkCommand,CancelHyperLinkCommand].forEach(command=>{this._commandService.registerCommand(command)})}},__name(_a2,"SheetsHyperLinkController"),_a2);exports.SheetsHyperLinkController=__decorateClass$3([core.OnLifecycle(core.LifecycleStages.Starting,exports.SheetsHyperLinkController),__decorateParam$3(0,core.ICommandService)],exports.SheetsHyperLinkController);var HyperLinkType=(HyperLinkType2=>(HyperLinkType2[HyperLinkType2.range=0]="range",HyperLinkType2[HyperLinkType2.link=1]="link",HyperLinkType2))(HyperLinkType||{});const SHEET_HYPER_LINK_PLUGIN="SHEET_HYPER_LINK_PLUGIN",ERROR_RANGE="err";var I=(E=>(E[E.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",E[E.UNIVER_DOC=1]="UNIVER_DOC",E[E.UNIVER_SHEET=2]="UNIVER_SHEET",E[E.UNIVER_SLIDE=3]="UNIVER_SLIDE",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(I||{}),__defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2"),_a3;let SheetsHyperLinkResourceController=(_a3=class extends core.Disposable{constructor(_resourceManagerService,_hyperLinkModel){super(),this._resourceManagerService=_resourceManagerService,this._hyperLinkModel=_hyperLinkModel,this._initSnapshot()}_initSnapshot(){const toJson=__name(unitID=>{const map=this._hyperLinkModel.getUnit(unitID),resultMap={};return map?(map.forEach(info=>{resultMap[info.subUnitId]=info.links.map(({display,...link})=>link)}),JSON.stringify(resultMap)):""},"toJson"),parseJson=__name(json=>{if(!json)return{};try{return JSON.parse(json)}catch{return{}}},"parseJson");this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:SHEET_HYPER_LINK_PLUGIN,businesses:[I.UNIVER_SHEET],toJson:__name(unitID=>toJson(unitID),"toJson"),parseJson:__name(json=>parseJson(json),"parseJson"),onUnLoad:__name(unitID=>{this._hyperLinkModel.deleteUnit(unitID)},"onUnLoad"),onLoad:__name(async(unitID,value)=>{Object.keys(value).forEach(subunitId=>{value[subunitId].forEach(link=>{this._hyperLinkModel.addHyperLink(unitID,subunitId,link)})})},"onLoad")}))}},__name(_a3,"SheetsHyperLinkResourceController"),_a3);SheetsHyperLinkResourceController=__decorateClass$2([core.OnLifecycle(core.LifecycleStages.Starting,SheetsHyperLinkResourceController),__decorateParam$2(0,core.IResourceManagerService),__decorateParam$2(1,core.Inject(exports.HyperLinkModel))],SheetsHyperLinkResourceController);var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1"),_a4;exports.SheetsHyperLinkRefRangeController=(_a4=class extends core.Disposable{constructor(_refRangeService,_hyperLinkModel,_selectionManagerService,_commandService){super();__publicField(this,"_disposableMap",new Map);__publicField(this,"_watchDisposableMap",new Map);__publicField(this,"_rangeDisableMap",new Map);__publicField(this,"_rangeWatcherMap",new Map);__publicField(this,"_handlePositionChange",__name((unitId,subUnitId,link,resultRange,silent)=>{const oldRange={startColumn:link.column,endColumn:link.column,startRow:link.row,endRow:link.row};return resultRange?{redos:[{id:sheetsHyperLink.UpdateHyperLinkRefMutation.id,params:{unitId,subUnitId,id:link.id,row:resultRange.startRow,column:resultRange.startColumn,silent}}],undos:[{id:sheetsHyperLink.UpdateHyperLinkRefMutation.id,params:{unitId,subUnitId,id:link.id,row:oldRange.startRow,column:oldRange.startColumn,silent}}]}:{redos:[{id:sheetsHyperLink.RemoveHyperLinkMutation.id,params:{unitId,subUnitId,id:link.id}}],undos:[{id:sheetsHyperLink.AddHyperLinkMutation.id,params:{unitId,subUnitId,link}}]}},"_handlePositionChange"));this._refRangeService=_refRangeService,this._hyperLinkModel=_hyperLinkModel,this._selectionManagerService=_selectionManagerService,this._commandService=_commandService,this._initData(),this._initRefRange()}_registerPosition(unitId,subUnitId,link){const id=link.id,oldRange={startColumn:link.column,endColumn:link.column,startRow:link.row,endRow:link.row},handleRefRangeChange=__name(commandInfo=>{const resultRange=sheets.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests(oldRange,commandInfo,{selectionManagerService:this._selectionManagerService});return resultRange&&resultRange.startColumn===oldRange.startColumn&&resultRange.startRow===oldRange.startRow?{undos:[],redos:[]}:this._handlePositionChange(unitId,subUnitId,link,resultRange,!1)},"handleRefRangeChange");this._disposableMap.set(id,this._refRangeService.registerRefRange(oldRange,handleRefRangeChange,unitId,subUnitId))}_watchPosition(unitId,subUnitId,link){const id=link.id,oldRange={startColumn:link.column,endColumn:link.column,startRow:link.row,endRow:link.row};this._watchDisposableMap.set(id,this._refRangeService.watchRange(unitId,subUnitId,oldRange,(before,after)=>{const{redos}=this._handlePositionChange(unitId,subUnitId,link,after,!0);core.sequenceExecuteAsync(redos,this._commandService,{onlyLocal:!0})},!0))}_unregisterPosition(id){const disposable=this._disposableMap.get(id);disposable==null||disposable.dispose(),this._disposableMap.delete(id)}_unwatchPosition(id){const disposable=this._watchDisposableMap.get(id);disposable==null||disposable.dispose(),this._watchDisposableMap.delete(id)}_registerRange(unitId,id,payload,silent=!1){var _a6,_b,_c;if(payload.startsWith("#")){const search=new URLSearchParams(payload.slice(1)),searchObj={gid:(_a6=search.get("gid"))!=null?_a6:"",range:(_b=search.get("range"))!=null?_b:"",rangeid:(_c=search.get("rangeid"))!=null?_c:""};if(searchObj.range&&searchObj.gid){const subUnitId=searchObj.gid,range=engineFormula.deserializeRangeWithSheet(searchObj.range).range;if(core.isValidRange(range)&&searchObj.range!==ERROR_RANGE){const handleRangeChange=__name(commandInfo=>{const resultRange=sheets.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests(range,commandInfo,{selectionManagerService:this._selectionManagerService});return resultRange&&engineFormula.serializeRange(resultRange)===engineFormula.serializeRange(range)?{redos:[],undos:[]}:{redos:[{id:sheetsHyperLink.UpdateHyperLinkMutation.id,params:{unitId,subUnitId,id,payload:{payload:`#gid=${subUnitId}&range=${resultRange?engineFormula.serializeRange(resultRange):"err"}`}}}],undos:[{id:sheetsHyperLink.UpdateHyperLinkMutation.id,params:{unitId,subUnitId,id,payload:{payload}}}]}},"handleRangeChange");this._rangeDisableMap.set(id,this._refRangeService.registerRefRange(range,handleRangeChange,unitId,subUnitId)),silent||this._rangeWatcherMap.set(id,this._refRangeService.watchRange(unitId,subUnitId,range,(before,after)=>{this._hyperLinkModel.updateHyperLink(unitId,subUnitId,id,{payload:`#gid=${subUnitId}&range=${after?engineFormula.serializeRange(after):"err"}`},!0)},!0))}}}}_unregisterRange(id){const disposable=this._rangeDisableMap.get(id);disposable==null||disposable.dispose(),this._rangeDisableMap.delete(id)}_unwatchRange(id){const disposable=this._rangeWatcherMap.get(id);disposable==null||disposable.dispose(),this._rangeWatcherMap.delete(id)}_initData(){this._hyperLinkModel.getAll().forEach(unitData=>{unitData.forEach(subUnitData=>{const{unitId,subUnitId,links}=subUnitData;links.forEach(link=>{this._registerPosition(unitId,subUnitId,link),this._watchPosition(unitId,subUnitId,link),this._registerRange(unitId,link.id,link.payload)})})})}_initRefRange(){this.disposeWithMe(this._hyperLinkModel.linkUpdate$.subscribe(option=>{switch(option.type){case"add":{this._registerPosition(option.unitId,option.subUnitId,option.payload),this._watchPosition(option.unitId,option.subUnitId,option.payload),this._registerRange(option.unitId,option.payload.id,option.payload.payload);break}case"remove":{this._unregisterPosition(option.payload.id),this._unwatchPosition(option.payload.id),this._unregisterRange(option.payload.id),this._unwatchRange(option.payload.id);break}case"updateRef":{const{unitId,subUnitId,id,silent}=option,link=this._hyperLinkModel.getHyperLink(unitId,subUnitId,id);if(!link)return;this._unregisterPosition(id),this._registerPosition(unitId,subUnitId,link),silent||(this._unwatchPosition(id),this._watchPosition(unitId,subUnitId,link));break}case"unload":{const{unitLinks}=option;unitLinks.forEach(subUnitData=>{const{links}=subUnitData;links.forEach(link=>{this._unregisterPosition(link.id),this._unwatchPosition(link.id),this._unregisterRange(link.id),this._unwatchRange(link.id)})});break}case"update":{option.silent||this._unwatchRange(option.id),this._unregisterRange(option.id),this._registerRange(option.unitId,option.id,option.payload.payload,option.silent);break}}})),this.disposeWithMe(core.toDisposable(()=>{this._disposableMap.forEach(item=>{item.dispose()}),this._disposableMap.clear()}))}},__name(_a4,"SheetsHyperLinkRefRangeController"),_a4);exports.SheetsHyperLinkRefRangeController=__decorateClass$1([core.OnLifecycle(core.LifecycleStages.Starting,exports.SheetsHyperLinkRefRangeController),__decorateParam$1(0,core.Inject(sheets.RefRangeService)),__decorateParam$1(1,core.Inject(sheetsHyperLink.HyperLinkModel)),__decorateParam$1(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$1(3,core.ICommandService)],exports.SheetsHyperLinkRefRangeController);var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__defNormalProp2=__name((obj,key,value)=>key in obj?__defProp2(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,"__defNormalProp"),__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam"),__publicField2=__name((obj,key,value)=>__defNormalProp2(obj,typeof key!="symbol"?key+"":key,value),"__publicField"),_a5;exports.UniverSheetsHyperLinkPlugin=(_a5=class extends core.Plugin{constructor(config,_injector){super(),this._injector=_injector}onStarting(){[[SheetsHyperLinkResourceController],[exports.SheetsHyperLinkController],[exports.SheetsHyperLinkRefRangeController],[exports.HyperLinkModel]].forEach(dep=>{this._injector.add(dep)})}},__name(_a5,"UniverSheetsHyperLinkPlugin"),_a5);__publicField2(exports.UniverSheetsHyperLinkPlugin,"pluginName",SHEET_HYPER_LINK_PLUGIN);__publicField2(exports.UniverSheetsHyperLinkPlugin,"type",core.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsHyperLinkPlugin=__decorateClass([core.DependentOn(sheets.UniverSheetsPlugin),__decorateParam(1,core.Inject(core.Injector))],exports.UniverSheetsHyperLinkPlugin);exports.AddHyperLinkCommand=AddHyperLinkCommand;exports.AddHyperLinkMutation=AddHyperLinkMutation;exports.CancelHyperLinkCommand=CancelHyperLinkCommand;exports.ERROR_RANGE=ERROR_RANGE;exports.HyperLinkType=HyperLinkType;exports.RemoveHyperLinkCommand=RemoveHyperLinkCommand;exports.RemoveHyperLinkMutation=RemoveHyperLinkMutation;exports.UpdateHyperLinkCommand=UpdateHyperLinkCommand;exports.UpdateHyperLinkMutation=UpdateHyperLinkMutation;exports.UpdateHyperLinkRefMutation=UpdateHyperLinkRefMutation;
|