@univerjs/docs-hyper-link-ui 0.2.3 → 0.2.4

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/README.md CHANGED
@@ -1,11 +1,5 @@
1
1
  # @univerjs/docs-hyper-link-ui
2
2
 
3
- ## Package Overview
4
-
5
- | Package Name | UMD Namespace | Version | License | Downloads | Contains CSS | Contains i18n locales |
6
- | --- | --- | --- | --- | --- | :---: | :---: |
7
- | `@univerjs/docs-hyper-link-ui` | `UniverDocsHyperLinkUi` | [![][npm-version-shield]][npm-version-link] | ![][npm-license-shield] | ![][npm-downloads-shield] | ⭕️ | ⭕️ |
8
-
9
3
  ## Introduction
10
4
 
11
5
  `@univerjs/docs-hyper-link-ui` provides the link function of Univer Docs.
package/lib/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var ve=Object.defineProperty;var ge=(n,e,i)=>e in n?ve(n,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[e]=i;var R=(n,e,i)=>ge(n,typeof e!="symbol"?e+"":e,i);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),g=require("@wendellhu/redi"),P=require("@univerjs/docs-hyper-link"),D=require("@univerjs/engine-render"),I=require("@univerjs/ui"),k=require("@univerjs/design"),a=require("react"),h=require("@wendellhu/redi/react-bindings"),C=require("@univerjs/docs"),Y=require("@univerjs/docs-ui"),B=require("rxjs"),Q=require("clsx"),he="DOC_HYPER_LINK_UI_PLUGIN";var L=function(){return L=Object.assign||function(n){for(var e,i=1,t=arguments.length;i<t;i++){e=arguments[i];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r])}return n},L.apply(this,arguments)},me=function(n,e){var i={};for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&e.indexOf(t)<0&&(i[t]=n[t]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,t=Object.getOwnPropertySymbols(n);r<t.length;r++)e.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(n,t[r])&&(i[t[r]]=n[t[r]]);return i},b=a.forwardRef(function(n,e){var i=n.icon,t=n.id,r=n.className,o=n.extend,c=me(n,["icon","id","className","extend"]),d="univerjs-icon univerjs-icon-".concat(t," ").concat(r||"").trim(),l=a.useRef("_".concat(Ce()));return te(i,"".concat(t),{defIds:i.defIds,idSuffix:l.current},L({ref:e,className:d},c),o)});function te(n,e,i,t,r){return a.createElement(n.tag,L(L({key:e},Le(n,i,r)),t),(Ie(n,i).children||[]).map(function(o,c){return te(o,"".concat(e,"-").concat(n.tag,"-").concat(c),i,void 0,r)}))}function Le(n,e,i){var t=L({},n.attrs);i!=null&&i.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=i.colorChannel1);var r=e.defIds;return!r||r.length===0||(n.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+e.idSuffix),Object.entries(t).forEach(function(o){var c=o[0],d=o[1];typeof d=="string"&&(t[c]=d.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),t}function Ie(n,e){var i,t=e.defIds;return!t||t.length===0?n:n.tag==="defs"&&(!((i=n.children)===null||i===void 0)&&i.length)?L(L({},n),{children:n.children.map(function(r){return typeof r.attrs.id=="string"&&t&&t.indexOf(r.attrs.id)>-1?L(L({},r),{attrs:L(L({},r.attrs),{id:r.attrs.id+e.idSuffix})}):r})}):n}function Ce(){return Math.random().toString(36).substring(2,8)}b.displayName="UniverIcon";var ye={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},ie=a.forwardRef(function(n,e){return a.createElement(b,Object.assign({},n,{id:"close-single",ref:e,icon:ye}))});ie.displayName="CloseSingle";var _e={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.02547 12.4251C5.15328 13.7417 6.26305 14.7708 7.61318 14.7708H12.6132C14.0491 14.7708 15.2132 13.6067 15.2132 12.1708V6.1708C15.2132 4.78586 14.1303 3.65383 12.7651 3.57517C12.6373 2.25858 11.5275 1.22949 10.1774 1.22949H5.17739C3.74145 1.22949 2.57739 2.39355 2.57739 3.82949V9.82949C2.57739 11.2144 3.66024 12.3465 5.02547 12.4251ZM11.5535 3.5708H7.61318C6.17724 3.5708 5.01318 4.73486 5.01318 6.1708V11.22C4.31736 11.1387 3.77739 10.5471 3.77739 9.82949V3.82949C3.77739 3.05629 4.40419 2.42949 5.17739 2.42949H10.1774C10.8622 2.42949 11.4322 2.92119 11.5535 3.5708ZM14.0132 6.1708C14.0132 5.3976 13.3864 4.7708 12.6132 4.7708H7.61318C6.83998 4.7708 6.21318 5.3976 6.21318 6.1708V12.1708C6.21318 12.944 6.83998 13.5708 7.61318 13.5708H12.6132C13.3864 13.5708 14.0132 12.944 14.0132 12.1708V6.1708Z",fillRule:"evenodd",clipRule:"evenodd"}}]},re=a.forwardRef(function(n,e){return a.createElement(b,Object.assign({},n,{id:"copy-single",ref:e,icon:_e}))});re.displayName="CopySingle";var Se={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.9564 2.91332C4.91407 1.87102 3.22413 1.87101 2.18182 2.91333L2.18182 2.91333C1.13953 3.95567 1.13952 5.6456 2.18182 6.68791L8.27777 12.7838C9.72408 14.2302 12.069 14.2302 13.5154 12.7839L13.0911 12.3596L13.5154 12.7839C14.9617 11.3375 14.9617 8.99257 13.5154 7.54626L8.39476 2.42566C8.16044 2.19134 7.78054 2.19134 7.54623 2.42566C7.31191 2.65997 7.31191 3.03987 7.54623 3.27419L12.6668 8.39479L13.0911 7.97052L12.6668 8.39479C13.6445 9.37247 13.6445 10.9576 12.6668 11.9353L13.0399 12.3084L12.6668 11.9353C11.6891 12.913 10.104 12.913 9.1263 11.9353L3.03035 5.83938C2.45668 5.26571 2.45667 4.33556 3.03036 3.76184C3.60403 3.18818 4.53416 3.18817 5.10788 3.76185C5.10788 3.76186 5.10788 3.76186 5.10789 3.76186L11.2038 9.8578L11.601 9.46061L11.2038 9.8578C11.3735 10.0275 11.3735 10.3026 11.2038 10.4723L11.2038 10.4723C11.0341 10.642 10.759 10.642 10.5893 10.4723L5.46874 5.35171C5.23442 5.1174 4.85452 5.1174 4.62021 5.35171C4.38589 5.58602 4.38589 5.96592 4.62021 6.20024L9.74078 11.3208C10.3791 11.9591 11.414 11.9591 12.0523 11.3208C12.0523 11.3208 12.0523 11.3208 12.0523 11.3208M12.0523 11.3208C12.6907 10.6825 12.6906 9.64757 12.0523 9.00927L5.95641 2.91333L5.9564 2.91332",fillRule:"evenodd",clipRule:"evenodd"}}]},Z=a.forwardRef(function(n,e){return a.createElement(b,Object.assign({},n,{id:"link-single",ref:e,icon:Se}))});Z.displayName="LinkSingle";var ke={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.5935 3.47302C11.6354 2.51492 10.082 2.51492 9.12388 3.47302L7.83534 4.76157C7.60102 4.99588 7.22112 4.99588 6.98681 4.76157 6.75249 4.52725 6.75249 4.14735 6.98681 3.91304L8.27535 2.62449C9.70209 1.19776 12.0153 1.19776 13.442 2.62449 14.8688 4.05123 14.8688 6.36442 13.442 7.79116L12.1535 9.0797C11.9192 9.31402 11.5393 9.31402 11.3049 9.0797 11.0706 8.84539 11.0706 8.46549 11.3049 8.23117L12.5935 6.94263C13.5516 5.98452 13.5516 4.43113 12.5935 3.47302zM3.40637 12.6606C2.44827 11.7025 2.44827 10.1491 3.40637 9.19102L4.69492 7.90248C4.92923 7.66816 4.92923 7.28826 4.69492 7.05395 4.4606 6.81963 4.0807 6.81963 3.84639 7.05395L2.55784 8.34249C1.13111 9.76923 1.13111 12.0824 2.55784 13.5092 3.98458 14.9359 6.29777 14.9359 7.72451 13.5092L9.01305 12.2206C9.24737 11.9863 9.24737 11.6064 9.01305 11.3721 8.77874 11.1378 8.39884 11.1378 8.16452 11.3721L6.87598 12.6606C5.91787 13.6187 4.36448 13.6187 3.40637 12.6606zM3.5852 2.80332C3.35088 2.569 2.97098 2.569 2.73667 2.80332 2.50235 3.03763 2.50235 3.41753 2.73667 3.65185L12.4151 13.3302C12.6494 13.5646 13.0293 13.5646 13.2636 13.3302 13.4979 13.0959 13.4979 12.716 13.2636 12.4817L3.5852 2.80332z"}}]},oe=a.forwardRef(function(n,e){return a.createElement(b,Object.assign({},n,{id:"unlink-single",ref:e,icon:ke}))});oe.displayName="UnlinkSingle";var Oe={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.6551 1.98906C11.7476 1.08113 10.2757 1.08149 9.3686 1.98987L4.82542 6.53955C4.75087 6.61421 4.69336 6.70411 4.65682 6.80309L3.2461 10.625C3.16506 10.8446 3.21909 11.0912 3.3845 11.2568C3.54991 11.4224 3.79651 11.4767 4.01616 11.3959L7.85031 9.98517C7.94979 9.94856 8.04014 9.89077 8.11508 9.81579L12.6552 5.27327C13.5618 4.36621 13.5618 2.89607 12.6551 1.98906ZM10.2177 2.83779C10.6562 2.39869 11.3677 2.39851 11.8064 2.8374C12.2447 3.27584 12.2447 3.9865 11.8065 4.42497L7.3392 8.89457L4.82213 9.82068L5.74706 7.31487L10.2177 2.83779Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.79238 13.2999C1.46101 13.2999 1.19238 13.5685 1.19238 13.8999C1.19238 14.2313 1.46101 14.4999 1.79238 14.4999H14.4924C14.8238 14.4999 15.0924 14.2313 15.0924 13.8999C15.0924 13.5685 14.8238 13.2999 14.4924 13.2999H1.79238Z"}}]},ce=a.forwardRef(function(n,e){return a.createElement(b,Object.assign({},n,{id:"write-single",ref:e,icon:Oe}))});ce.displayName="WriteSingle";const se={type:s.CommandType.COMMAND,id:"docs.command.delete-hyper-link",handler(n,e){if(!e)return!1;const{unitId:i,linkId:t}=e,r=n.get(s.ICommandService);if(!n.get(P.DocHyperLinkModel).getLink(i,t))return!1;const d=C.deleteCustomRangeFactory(n,{unitId:i,rangeId:t});return d?r.executeCommand(d.id,d.params):!1}},ae=n=>{var f;const e=n.get(C.TextSelectionManagerService),i=n.get(s.IUniverInstanceService),t=e.getActiveRange(),o=n.get(D.IRenderManagerService).getCurrent(),c=o==null?void 0:o.with(C.DocSkeletonManagerService).getSkeleton(),d=c==null?void 0:c.getViewModel().getEditArea();if(d===D.DocumentEditArea.FOOTER||d===D.DocumentEditArea.HEADER)return!0;const l=i.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);if(!l||!t||t.collapsed)return!0;const p=(f=l.getBody())==null?void 0:f.paragraphs;if(!p)return!0;for(let v=0,u=p.length;v<u;v++){const m=p[v];if(t.startOffset<=m.startIndex&&t.endOffset>m.startIndex)return!0;if(m.startIndex>t.endOffset)break}return!1},F={type:s.CommandType.OPERATION,id:"docs.operation.show-hyper-link-edit-popup",handler(n,e){const i=e==null?void 0:e.link;return ae(n)&&!i?!1:(n.get(M).showEditPopup(i),!0)}},Ee="univer-doc-link",Me="univer-doc-link-type",Pe="univer-doc-link-content",Re="univer-doc-link-content-error",De="univer-doc-link-url",xe="univer-doc-link-operations",be="univer-doc-link-operation",Te="univer-doc-link-operation-error",E={docLink:Ee,docLinkType:Me,docLinkContent:Pe,docLinkContentError:Re,docLinkUrl:De,docLinkOperations:xe,docLinkOperation:be,docLinkOperationError:Te},K=()=>{const n=h.useDependency(M),e=h.useDependency(P.DocHyperLinkModel),i=h.useDependency(s.ICommandService),t=h.useDependency(I.IMessageService),r=h.useDependency(s.LocaleService),o=I.useObservable(n.showingLink$);if(!o)return null;const{unitId:c,linkId:d}=o,l=e.getLink(c,d);return l?a.createElement("div",{className:E.docLink,onClick:()=>{n.hideInfoPopup()}},a.createElement("div",{className:Q(E.docLinkContent),onClick:()=>window.open(l.payload)},a.createElement("div",{className:E.docLinkType},a.createElement(Z,null)),a.createElement(k.Tooltip,{showIfEllipsis:!0,title:l.payload},a.createElement("span",{className:E.docLinkUrl},l.payload))),a.createElement("div",{className:E.docLinkOperations},a.createElement("div",{className:Q(E.docLinkOperation),onClick:()=>{navigator.clipboard.writeText(l.payload),t.show({content:r.t("docLink.info.coped"),type:k.MessageType.Info})}},a.createElement(k.Tooltip,{placement:"bottom",title:r.t("docLink.info.copy")},a.createElement(re,null))),a.createElement("div",{className:E.docLinkOperation,onClick:()=>{i.executeCommand(F.id,{link:o})}},a.createElement(k.Tooltip,{placement:"bottom",title:r.t("docLink.info.edit")},a.createElement(ce,null))),a.createElement("div",{className:E.docLinkOperation,onClick:()=>{i.executeCommand(se.id,{unitId:c,linkId:l.id})}},a.createElement(k.Tooltip,{placement:"bottom",title:r.t("docLink.info.cancel")},a.createElement(oe,null))))):null};K.componentKey="univer.doc.link-info-popup";var Ue=Object.defineProperty,we=Object.getOwnPropertyDescriptor,Ne=(n,e,i,t)=>{for(var r=t>1?void 0:t?we(e,i):e,o=n.length-1,c;o>=0;o--)(c=n[o])&&(r=(t?c(e,i,r):c(r))||r);return t&&r&&Ue(e,i,r),r},U=(n,e)=>(i,t)=>e(i,t,n);let M=class extends s.Disposable{constructor(e,i,t,r,o){super();R(this,"_editingLink$",new B.BehaviorSubject(null));R(this,"_showingLink$",new B.BehaviorSubject(null));R(this,"editingLink$",this._editingLink$.asObservable());R(this,"showingLink$",this._showingLink$.asObservable());R(this,"_editPopup",null);R(this,"_infoPopup",null);this._docCanvasPopupManagerService=e,this._textSelectionManagerService=i,this._docHyperLinkModel=t,this._univerInstanceService=r,this._commandService=o}get editing(){return this._editingLink$.value}get showing(){return this._showingLink$.value}showEditPopup(e){var t,r;this._editPopup&&this._editPopup.dispose(),this._editingLink$.next(e);let i=this._textSelectionManagerService.getActiveRange();if(e){const{unitId:o,rangeIndex:c}=e,d=this._univerInstanceService.getUnit(o,s.UniverInstanceType.UNIVER_DOC),l=(r=(t=d==null?void 0:d.getBody())==null?void 0:t.customRanges)==null?void 0:r[c];l&&(i={collapsed:!1,startOffset:l.startIndex,endOffset:l.endIndex+1},this._textSelectionManagerService.replaceTextRanges([{startOffset:l.startIndex,endOffset:l.endIndex+1}]))}return i?(this._editPopup=this._docCanvasPopupManagerService.attachPopupToRange(i,{componentKey:V.componentKey,direction:"bottom"}),this._editPopup):null}hideEditPopup(){var e;this._editingLink$.next(null),(e=this._editPopup)==null||e.dispose()}showInfoPopup(e){var l,p,f,v;const{linkId:i,unitId:t,rangeIndex:r}=e;if(((l=this.showing)==null?void 0:l.linkId)===i&&((p=this.showing)==null?void 0:p.unitId)===t&&this.showing.rangeIndex===r)return;this._infoPopup&&this._infoPopup.dispose();const o=this._docHyperLinkModel.getLink(t,i),c=this._univerInstanceService.getUnit(t,s.UniverInstanceType.UNIVER_DOC);if(!c||!o)return;const d=(v=(f=c.getBody())==null?void 0:f.customRanges)==null?void 0:v[r];if(this._showingLink$.next({unitId:t,linkId:i,rangeIndex:r}),!!d)return this._infoPopup=this._docCanvasPopupManagerService.attachPopupToRange({collapsed:!1,startOffset:d.startIndex,endOffset:d.endIndex+1},{componentKey:K.componentKey,direction:"top",closeOnSelfTarget:!0,onClickOutside:()=>{this.hideInfoPopup()}}),this._infoPopup}hideInfoPopup(){var e;this._showingLink$.next(null),(e=this._infoPopup)==null||e.dispose()}};M=Ne([U(0,g.Inject(Y.DocCanvasPopManagerService)),U(1,g.Inject(C.TextSelectionManagerService)),U(2,g.Inject(P.DocHyperLinkModel)),U(3,s.IUniverInstanceService),U(4,s.ICommandService)],M);const de={type:s.CommandType.COMMAND,id:"docs.command.add-hyper-link",async handler(n,e){if(!e)return!1;const{payload:i,unitId:t}=e,r=n.get(s.ICommandService),o=s.Tools.generateRandomId(),c=C.addCustomRangeBySelectionFactory(n,{rangeId:o,rangeType:s.CustomRangeType.HYPERLINK});if(c){const d={id:P.AddDocHyperLinkMutation.id,params:{unitId:t,link:{payload:i,id:o}}};return(await s.sequenceExecuteAsync([d,c],r)).result}return!1}},le={id:"docs.command.update-hyper-link",type:s.CommandType.COMMAND,handler(n,e){return e?n.get(s.ICommandService).executeCommand(P.UpdateDocHyperLinkMutation.id,e):!1}},He="univer-docs-link-edit",je="univer-docs-link-edit-title",$e="univer-docs-link-edit-close",Ae="univer-docs-link-edit-buttons",Be="univer-docs-link-edit-button",x={docsLinkEdit:He,docsLinkEditTitle:je,docsLinkEditClose:$e,docsLinkEditButtons:Ae,docsLinkEditButton:Be};function Ke(n){return/^[a-zA-Z]+:\/\//.test(n)}function Ve(n){return/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(n)}function Fe(n){return Ke(n)?n:Ve(n)?`mailto://${n}`:`https://${n}`}const V=()=>{const n=h.useDependency(M),e=h.useDependency(s.LocaleService),i=h.useDependency(P.DocHyperLinkModel),t=h.useObservable(n.editingLink$),r=h.useDependency(s.ICommandService),o=h.useDependency(s.IUniverInstanceService),c=h.useDependency(D.ITextSelectionRenderManager),d=h.useDependency(C.TextSelectionManagerService),[l,p]=a.useState(""),[f,v]=a.useState(!1),u=s.Tools.isLegalUrl(l),m=t?o.getUnit(t.unitId,s.UniverInstanceType.UNIVER_DOC):o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);a.useEffect(()=>{var z,G,X,J;if(t){const S=t?i.getLink(t.unitId,t.linkId):null;p((z=S==null?void 0:S.payload)!=null?z:"");return}const y=d.getActiveRange();if(!y)return;const T=o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC),W=(X=(G=T==null?void 0:T.getBody())==null?void 0:G.customRanges)==null?void 0:X.find(S=>Math.max(y.startOffset,S.startIndex)<=Math.min(y.endOffset-1,S.endIndex));if(T&&W){const S=i.getLink(T.getUnitId(),W.rangeId);p((J=S==null?void 0:S.payload)!=null?J:"")}},[t,i,d,o]),a.useEffect(()=>(c.blur(),()=>{c.focus()}),[c]);const _=()=>{n.hideEditPopup()},O=()=>{if(v(!0),!u||!m)return;const y=Fe(l);t?r.executeCommand(le.id,{unitId:m.getUnitId(),payload:y,linkId:t.linkId}):r.executeCommand(de.id,{unitId:m.getUnitId(),payload:y}),n.hideEditPopup()};if(m)return a.createElement("div",{className:x.docsLinkEdit},a.createElement("div",{className:x.docsLinkEditTitle},a.createElement("span",null,e.t("docLink.edit.title")),a.createElement(ie,{className:x.docsLinkEditClose,onClick:_})),a.createElement("div",null,a.createElement(k.FormLayout,{label:e.t("docLink.edit.address"),error:f&&!u?e.t("docLink.edit.addressError"):""},a.createElement(k.Input,{value:l,onChange:p,autoFocus:!0}))),a.createElement("div",{className:x.docsLinkEditButtons},a.createElement(k.Button,{className:x.docsLinkEditButton,onClick:_},e.t("docLink.edit.cancel")),a.createElement(k.Button,{disabled:!l,className:x.docsLinkEditButton,type:"primary",onClick:O},e.t("docLink.edit.confirm"))))};V.componentKey="docs-hyper-link-edit";const ue="doc-hyper-link-icon";function qe(n){return{id:F.id,group:I.MenuGroup.TOOLBAR_LAYOUT,type:I.MenuItemType.BUTTON,icon:ue,title:"docLink.menu.tooltip",tooltip:"docLink.menu.tooltip",positions:[I.MenuPosition.TOOLBAR_START,I.MenuPosition.CONTEXT_MENU],hidden$:I.getMenuHiddenObservable(n,s.UniverInstanceType.UNIVER_DOC),disabled$:new B.Observable(function(e){const t=n.get(C.TextSelectionManagerService).textSelection$.pipe(B.debounceTime(16)).subscribe(()=>{e.next(ae(n))});return()=>{t.unsubscribe()}})}}const Ye={id:F.id,binding:I.MetaKeys.CTRL_COMMAND|I.KeyCode.K,description:"docLink.menu.tooltip",preconditions:Y.whenDocAndEditorFocused};var Ze=Object.defineProperty,We=Object.getOwnPropertyDescriptor,ze=(n,e,i,t)=>{for(var r=t>1?void 0:t?We(e,i):e,o=n.length-1,c;o>=0;o--)(c=n[o])&&(r=(t?c(e,i,r):c(r))||r);return t&&r&&Ze(e,i,r),r},w=(n,e)=>(i,t)=>e(i,t,n);let N=class extends s.Disposable{constructor(n,e,i,t,r,o){super(),this._config=n,this._componentManager=e,this._commandService=i,this._menuService=t,this._injector=r,this._shortcutService=o,this._initComponents(),this._initCommands(),this._initMenus(),this._initShortcut()}_initComponents(){[[V,V.componentKey],[K,K.componentKey],[Z,ue]].forEach(([n,e])=>{this._componentManager.register(e,n)})}_initCommands(){[de,le,se,F].forEach(n=>{this._commandService.registerCommand(n)})}_initShortcut(){[Ye].forEach(n=>{this._shortcutService.registerShortcut(n)})}_initMenus(){[qe].forEach(n=>{this.disposeWithMe(this._menuService.addMenuItem(n(this._injector),{}))})}};N=ze([s.OnLifecycle(s.LifecycleStages.Starting,N),w(1,g.Inject(I.ComponentManager)),w(2,s.ICommandService),w(3,I.IMenuService),w(4,g.Inject(g.Injector)),w(5,I.IShortcutService)],N);var Ge=Object.defineProperty,Xe=Object.getOwnPropertyDescriptor,Je=(n,e,i,t)=>{for(var r=t>1?void 0:t?Xe(e,i):e,o=n.length-1,c;o>=0;o--)(c=n[o])&&(r=(t?c(e,i,r):c(r))||r);return t&&r&&Ge(e,i,r),r},H=(n,e)=>(i,t)=>e(i,t,n);let $=class extends s.Disposable{constructor(n,e,i,t){super(),this._commandService=n,this._univerInstanceService=e,this._docHyperLinkService=i,this._renderMangerService=t,this._initSelectionChange()}_initSelectionChange(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{var e,i;if(n.id===C.SetTextSelectionsOperation.id){const t=n.params,{unitId:r,ranges:o}=t,c=this._renderMangerService.getRenderById(r),d=c==null?void 0:c.with(C.DocSkeletonManagerService).getSkeleton();if((d==null?void 0:d.getViewModel().getEditArea())!==D.DocumentEditArea.BODY){this._docHyperLinkService.hideInfoPopup(),this._docHyperLinkService.hideEditPopup();return}const p=this._univerInstanceService.getUnit(r,s.UniverInstanceType.UNIVER_DOC),f=o[0];if(f&&p){const{startOffset:v,endOffset:u,collapsed:m}=f,_=(e=p.getBody())==null?void 0:e.customRanges;if(m){const O=(i=_==null?void 0:_.findIndex(y=>y.startIndex<v&&y.endIndex>u-1))!=null?i:-1;if(O>-1){const y=_[O];this._docHyperLinkService.showInfoPopup({unitId:r,linkId:y.rangeId,rangeIndex:O});return}}else if(_!=null&&_.find(O=>O.startIndex<=v&&O.endIndex>=u-1))return}this._docHyperLinkService.hideInfoPopup(),this._docHyperLinkService.hideEditPopup()}}))}};$=Je([s.OnLifecycle(s.LifecycleStages.Ready,$),H(0,s.ICommandService),H(1,s.IUniverInstanceService),H(2,g.Inject(M)),H(3,D.IRenderManagerService)],$);var Qe=Object.defineProperty,en=Object.getOwnPropertyDescriptor,nn=(n,e,i,t)=>{for(var r=t>1?void 0:t?en(e,i):e,o=n.length-1,c;o>=0;o--)(c=n[o])&&(r=(t?c(e,i,r):c(r))||r);return t&&r&&Qe(e,i,r),r},ee=(n,e)=>(i,t)=>e(i,t,n);let q=class extends s.Disposable{constructor(n,e,i){super(),this._context=n,this._docInterceptorService=e,this._hyperLinkService=i,this._init()}_init(){this._docInterceptorService.intercept(C.DOC_INTERCEPTOR_POINT.CUSTOM_RANGE,{handler:(n,e,i)=>{if(!n)return i(n);const{unitId:t}=e,r=this._hyperLinkService.editing,{linkId:o,unitId:c}=r||{},d=c===t&&n.rangeId===o;return i({...n,active:d})}})}};q=nn([ee(1,g.Inject(C.DocInterceptorService)),ee(2,g.Inject(M))],q);var tn=Object.defineProperty,rn=Object.getOwnPropertyDescriptor,on=(n,e,i,t)=>{for(var r=t>1?void 0:t?rn(e,i):e,o=n.length-1,c;o>=0;o--)(c=n[o])&&(r=(t?c(e,i,r):c(r))||r);return t&&r&&tn(e,i,r),r},j=(n,e)=>(i,t)=>e(i,t,n);let A=class extends s.Disposable{constructor(n,e,i,t){super(),this._docClipboardService=n,this._univerInstanceService=e,this._hyperLinkModel=i,this._textSelectionManagerService=t,this._initClipboard()}_initClipboard(){this.disposeWithMe(this._docClipboardService.addClipboardHook({onBeforePaste:n=>{var o,c;const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);if(!e)return n;const i=this._textSelectionManagerService.getActiveRange(),t=(o=e.getBody())==null?void 0:o.customRanges;if(!(t!=null&&t.length))return n;if(i?t.find(d=>d.rangeType===s.CustomRangeType.HYPERLINK&&d.startIndex<=i.startOffset&&d.endIndex>=i.endOffset-1):null){const{customRanges:d=[],...l}=n,f=d.filter(u=>u.rangeType===s.CustomRangeType.HYPERLINK).map(u=>[u.startIndex,u.endIndex]).flat().sort((u,m)=>u-m),v={...l,customRanges:d.filter(u=>u.rangeType!==s.CustomRangeType.HYPERLINK)};for(let u=0;u<f.length;u++)s.updateAttributeByDelete(v,1,f[u]-u);return v}else{const d=new Set(t.map(l=>l.rangeType===s.CustomRangeType.HYPERLINK&&l.rangeId));(c=n.customRanges)==null||c.forEach(l=>{if(l.rangeType===s.CustomRangeType.HYPERLINK&&d.has(l.rangeId)){const p=this._hyperLinkModel.getLink(e.getUnitId(),l.rangeId);if(p){const f=s.Tools.generateRandomId();this._hyperLinkModel.addLink(e.getUnitId(),{payload:p.payload,id:f}),l.rangeId=f}}})}return n}}))}};A=on([s.OnLifecycle(s.LifecycleStages.Ready,A),j(0,g.Inject(Y.IDocClipboardService)),j(1,s.IUniverInstanceService),j(2,g.Inject(P.DocHyperLinkModel)),j(3,g.Inject(C.TextSelectionManagerService))],A);var pe=Object.defineProperty,cn=Object.getOwnPropertyDescriptor,sn=(n,e,i)=>e in n?pe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[e]=i,an=(n,e,i,t)=>{for(var r=t>1?void 0:t?cn(e,i):e,o=n.length-1,c;o>=0;o--)(c=n[o])&&(r=(t?c(e,i,r):c(r))||r);return t&&r&&pe(e,i,r),r},ne=(n,e)=>(i,t)=>e(i,t,n),fe=(n,e,i)=>sn(n,typeof e!="symbol"?e+"":e,i);exports.UniverDocsHyperLinkUIPlugin=class extends s.Plugin{constructor(e={menu:{}},i,t){super(),this._config=e,this._injector=i,this._renderManagerSrv=t}onStarting(e){[[M],[N,{useFactory:()=>this._injector.createInstance(N,this._config)}],[$],[A]].forEach(t=>{e.add(t)})}onRendered(){this._initRenderModule()}_initRenderModule(){[q].forEach(e=>{this._renderManagerSrv.registerRenderModule(s.UniverInstanceType.UNIVER_DOC,e)})}};fe(exports.UniverDocsHyperLinkUIPlugin,"pluginName",he);fe(exports.UniverDocsHyperLinkUIPlugin,"type",s.UniverInstanceType.UNIVER_DOC);exports.UniverDocsHyperLinkUIPlugin=an([s.DependentOn(P.UniverDocsHyperLinkPlugin),ne(1,g.Inject(g.Injector)),ne(2,D.IRenderManagerService)],exports.UniverDocsHyperLinkUIPlugin);
1
+ "use strict";var ve=Object.defineProperty;var ge=(n,e,i)=>e in n?ve(n,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[e]=i;var R=(n,e,i)=>ge(n,typeof e!="symbol"?e+"":e,i);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),g=require("@wendellhu/redi"),P=require("@univerjs/docs-hyper-link"),D=require("@univerjs/engine-render"),I=require("@univerjs/ui"),S=require("@univerjs/design"),a=require("react"),h=require("@wendellhu/redi/react-bindings"),y=require("@univerjs/docs"),Y=require("@univerjs/docs-ui"),B=require("rxjs"),Q=require("clsx"),he="DOC_HYPER_LINK_UI_PLUGIN";var L=function(){return L=Object.assign||function(n){for(var e,i=1,t=arguments.length;i<t;i++){e=arguments[i];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r])}return n},L.apply(this,arguments)},me=function(n,e){var i={};for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&e.indexOf(t)<0&&(i[t]=n[t]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,t=Object.getOwnPropertySymbols(n);r<t.length;r++)e.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(n,t[r])&&(i[t[r]]=n[t[r]]);return i},b=a.forwardRef(function(n,e){var i=n.icon,t=n.id,r=n.className,o=n.extend,c=me(n,["icon","id","className","extend"]),d="univerjs-icon univerjs-icon-".concat(t," ").concat(r||"").trim(),l=a.useRef("_".concat(ye()));return te(i,"".concat(t),{defIds:i.defIds,idSuffix:l.current},L({ref:e,className:d},c),o)});function te(n,e,i,t,r){return a.createElement(n.tag,L(L({key:e},Le(n,i,r)),t),(Ie(n,i).children||[]).map(function(o,c){return te(o,"".concat(e,"-").concat(n.tag,"-").concat(c),i,void 0,r)}))}function Le(n,e,i){var t=L({},n.attrs);i!=null&&i.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=i.colorChannel1);var r=e.defIds;return!r||r.length===0||(n.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+e.idSuffix),Object.entries(t).forEach(function(o){var c=o[0],d=o[1];typeof d=="string"&&(t[c]=d.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),t}function Ie(n,e){var i,t=e.defIds;return!t||t.length===0?n:n.tag==="defs"&&(!((i=n.children)===null||i===void 0)&&i.length)?L(L({},n),{children:n.children.map(function(r){return typeof r.attrs.id=="string"&&t&&t.indexOf(r.attrs.id)>-1?L(L({},r),{attrs:L(L({},r.attrs),{id:r.attrs.id+e.idSuffix})}):r})}):n}function ye(){return Math.random().toString(36).substring(2,8)}b.displayName="UniverIcon";var Ce={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},ie=a.forwardRef(function(n,e){return a.createElement(b,Object.assign({},n,{id:"close-single",ref:e,icon:Ce}))});ie.displayName="CloseSingle";var _e={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.02547 12.4251C5.15328 13.7417 6.26305 14.7708 7.61318 14.7708H12.6132C14.0491 14.7708 15.2132 13.6067 15.2132 12.1708V6.1708C15.2132 4.78586 14.1303 3.65383 12.7651 3.57517C12.6373 2.25858 11.5275 1.22949 10.1774 1.22949H5.17739C3.74145 1.22949 2.57739 2.39355 2.57739 3.82949V9.82949C2.57739 11.2144 3.66024 12.3465 5.02547 12.4251ZM11.5535 3.5708H7.61318C6.17724 3.5708 5.01318 4.73486 5.01318 6.1708V11.22C4.31736 11.1387 3.77739 10.5471 3.77739 9.82949V3.82949C3.77739 3.05629 4.40419 2.42949 5.17739 2.42949H10.1774C10.8622 2.42949 11.4322 2.92119 11.5535 3.5708ZM14.0132 6.1708C14.0132 5.3976 13.3864 4.7708 12.6132 4.7708H7.61318C6.83998 4.7708 6.21318 5.3976 6.21318 6.1708V12.1708C6.21318 12.944 6.83998 13.5708 7.61318 13.5708H12.6132C13.3864 13.5708 14.0132 12.944 14.0132 12.1708V6.1708Z",fillRule:"evenodd",clipRule:"evenodd"}}]},re=a.forwardRef(function(n,e){return a.createElement(b,Object.assign({},n,{id:"copy-single",ref:e,icon:_e}))});re.displayName="CopySingle";var ke={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.9564 2.91332C4.91407 1.87102 3.22413 1.87101 2.18182 2.91333L2.18182 2.91333C1.13953 3.95567 1.13952 5.6456 2.18182 6.68791L8.27777 12.7838C9.72408 14.2302 12.069 14.2302 13.5154 12.7839L13.0911 12.3596L13.5154 12.7839C14.9617 11.3375 14.9617 8.99257 13.5154 7.54626L8.39476 2.42566C8.16044 2.19134 7.78054 2.19134 7.54623 2.42566C7.31191 2.65997 7.31191 3.03987 7.54623 3.27419L12.6668 8.39479L13.0911 7.97052L12.6668 8.39479C13.6445 9.37247 13.6445 10.9576 12.6668 11.9353L13.0399 12.3084L12.6668 11.9353C11.6891 12.913 10.104 12.913 9.1263 11.9353L3.03035 5.83938C2.45668 5.26571 2.45667 4.33556 3.03036 3.76184C3.60403 3.18818 4.53416 3.18817 5.10788 3.76185C5.10788 3.76186 5.10788 3.76186 5.10789 3.76186L11.2038 9.8578L11.601 9.46061L11.2038 9.8578C11.3735 10.0275 11.3735 10.3026 11.2038 10.4723L11.2038 10.4723C11.0341 10.642 10.759 10.642 10.5893 10.4723L5.46874 5.35171C5.23442 5.1174 4.85452 5.1174 4.62021 5.35171C4.38589 5.58602 4.38589 5.96592 4.62021 6.20024L9.74078 11.3208C10.3791 11.9591 11.414 11.9591 12.0523 11.3208C12.0523 11.3208 12.0523 11.3208 12.0523 11.3208M12.0523 11.3208C12.6907 10.6825 12.6906 9.64757 12.0523 9.00927L5.95641 2.91333L5.9564 2.91332",fillRule:"evenodd",clipRule:"evenodd"}}]},Z=a.forwardRef(function(n,e){return a.createElement(b,Object.assign({},n,{id:"link-single",ref:e,icon:ke}))});Z.displayName="LinkSingle";var Se={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.5935 3.47302C11.6354 2.51492 10.082 2.51492 9.12388 3.47302L7.83534 4.76157C7.60102 4.99588 7.22112 4.99588 6.98681 4.76157 6.75249 4.52725 6.75249 4.14735 6.98681 3.91304L8.27535 2.62449C9.70209 1.19776 12.0153 1.19776 13.442 2.62449 14.8688 4.05123 14.8688 6.36442 13.442 7.79116L12.1535 9.0797C11.9192 9.31402 11.5393 9.31402 11.3049 9.0797 11.0706 8.84539 11.0706 8.46549 11.3049 8.23117L12.5935 6.94263C13.5516 5.98452 13.5516 4.43113 12.5935 3.47302zM3.40637 12.6606C2.44827 11.7025 2.44827 10.1491 3.40637 9.19102L4.69492 7.90248C4.92923 7.66816 4.92923 7.28826 4.69492 7.05395 4.4606 6.81963 4.0807 6.81963 3.84639 7.05395L2.55784 8.34249C1.13111 9.76923 1.13111 12.0824 2.55784 13.5092 3.98458 14.9359 6.29777 14.9359 7.72451 13.5092L9.01305 12.2206C9.24737 11.9863 9.24737 11.6064 9.01305 11.3721 8.77874 11.1378 8.39884 11.1378 8.16452 11.3721L6.87598 12.6606C5.91787 13.6187 4.36448 13.6187 3.40637 12.6606zM3.5852 2.80332C3.35088 2.569 2.97098 2.569 2.73667 2.80332 2.50235 3.03763 2.50235 3.41753 2.73667 3.65185L12.4151 13.3302C12.6494 13.5646 13.0293 13.5646 13.2636 13.3302 13.4979 13.0959 13.4979 12.716 13.2636 12.4817L3.5852 2.80332z"}}]},oe=a.forwardRef(function(n,e){return a.createElement(b,Object.assign({},n,{id:"unlink-single",ref:e,icon:Se}))});oe.displayName="UnlinkSingle";var Oe={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.6551 1.98906C11.7476 1.08113 10.2757 1.08149 9.3686 1.98987L4.82542 6.53955C4.75087 6.61421 4.69336 6.70411 4.65682 6.80309L3.2461 10.625C3.16506 10.8446 3.21909 11.0912 3.3845 11.2568C3.54991 11.4224 3.79651 11.4767 4.01616 11.3959L7.85031 9.98517C7.94979 9.94856 8.04014 9.89077 8.11508 9.81579L12.6552 5.27327C13.5618 4.36621 13.5618 2.89607 12.6551 1.98906ZM10.2177 2.83779C10.6562 2.39869 11.3677 2.39851 11.8064 2.8374C12.2447 3.27584 12.2447 3.9865 11.8065 4.42497L7.3392 8.89457L4.82213 9.82068L5.74706 7.31487L10.2177 2.83779Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.79238 13.2999C1.46101 13.2999 1.19238 13.5685 1.19238 13.8999C1.19238 14.2313 1.46101 14.4999 1.79238 14.4999H14.4924C14.8238 14.4999 15.0924 14.2313 15.0924 13.8999C15.0924 13.5685 14.8238 13.2999 14.4924 13.2999H1.79238Z"}}]},ce=a.forwardRef(function(n,e){return a.createElement(b,Object.assign({},n,{id:"write-single",ref:e,icon:Oe}))});ce.displayName="WriteSingle";const se={type:s.CommandType.COMMAND,id:"docs.command.delete-hyper-link",async handler(n,e){if(!e)return!1;const{unitId:i,linkId:t}=e,r=n.get(s.ICommandService);if(!n.get(P.DocHyperLinkModel).getLink(i,t))return!1;const d=y.deleteCustomRangeFactory(n,{unitId:i,rangeId:t});return d?await r.syncExecuteCommand(d.id,d.params):!1}},ae=n=>{var p;const e=n.get(y.TextSelectionManagerService),i=n.get(s.IUniverInstanceService),t=e.getActiveRange(),o=n.get(D.IRenderManagerService).getCurrent(),c=o==null?void 0:o.with(y.DocSkeletonManagerService).getSkeleton(),d=c==null?void 0:c.getViewModel().getEditArea();if(d===D.DocumentEditArea.FOOTER||d===D.DocumentEditArea.HEADER)return!0;const l=i.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);if(!l||!t||t.collapsed)return!0;const f=(p=l.getBody())==null?void 0:p.paragraphs;if(!f)return!0;for(let v=0,u=f.length;v<u;v++){const m=f[v];if(t.startOffset<=m.startIndex&&t.endOffset>m.startIndex)return!0;if(m.startIndex>t.endOffset)break}return!1},F={type:s.CommandType.OPERATION,id:"docs.operation.show-hyper-link-edit-popup",handler(n,e){const i=e==null?void 0:e.link;return ae(n)&&!i?!1:(n.get(M).showEditPopup(i),!0)}},Ee="univer-doc-link",Me="univer-doc-link-type",Pe="univer-doc-link-content",Re="univer-doc-link-content-error",De="univer-doc-link-url",xe="univer-doc-link-operations",be="univer-doc-link-operation",Ue="univer-doc-link-operation-error",E={docLink:Ee,docLinkType:Me,docLinkContent:Pe,docLinkContentError:Re,docLinkUrl:De,docLinkOperations:xe,docLinkOperation:be,docLinkOperationError:Ue},K=()=>{const n=h.useDependency(M),e=h.useDependency(P.DocHyperLinkModel),i=h.useDependency(s.ICommandService),t=h.useDependency(I.IMessageService),r=h.useDependency(s.LocaleService),o=I.useObservable(n.showingLink$);if(!o)return null;const{unitId:c,linkId:d}=o,l=e.getLink(c,d);return l?a.createElement("div",{className:E.docLink,onClick:()=>{n.hideInfoPopup()}},a.createElement("div",{className:Q(E.docLinkContent),onClick:()=>window.open(l.payload)},a.createElement("div",{className:E.docLinkType},a.createElement(Z,null)),a.createElement(S.Tooltip,{showIfEllipsis:!0,title:l.payload},a.createElement("span",{className:E.docLinkUrl},l.payload))),a.createElement("div",{className:E.docLinkOperations},a.createElement("div",{className:Q(E.docLinkOperation),onClick:()=>{navigator.clipboard.writeText(l.payload),t.show({content:r.t("docLink.info.coped"),type:S.MessageType.Info})}},a.createElement(S.Tooltip,{placement:"bottom",title:r.t("docLink.info.copy")},a.createElement(re,null))),a.createElement("div",{className:E.docLinkOperation,onClick:()=>{i.executeCommand(F.id,{link:o})}},a.createElement(S.Tooltip,{placement:"bottom",title:r.t("docLink.info.edit")},a.createElement(ce,null))),a.createElement("div",{className:E.docLinkOperation,onClick:()=>{i.executeCommand(se.id,{unitId:c,linkId:l.id})}},a.createElement(S.Tooltip,{placement:"bottom",title:r.t("docLink.info.cancel")},a.createElement(oe,null))))):null};K.componentKey="univer.doc.link-info-popup";var we=Object.defineProperty,Te=Object.getOwnPropertyDescriptor,Ne=(n,e,i,t)=>{for(var r=t>1?void 0:t?Te(e,i):e,o=n.length-1,c;o>=0;o--)(c=n[o])&&(r=(t?c(e,i,r):c(r))||r);return t&&r&&we(e,i,r),r},w=(n,e)=>(i,t)=>e(i,t,n);let M=class extends s.Disposable{constructor(e,i,t,r,o){super();R(this,"_editingLink$",new B.BehaviorSubject(null));R(this,"_showingLink$",new B.BehaviorSubject(null));R(this,"editingLink$",this._editingLink$.asObservable());R(this,"showingLink$",this._showingLink$.asObservable());R(this,"_editPopup",null);R(this,"_infoPopup",null);this._docCanvasPopupManagerService=e,this._textSelectionManagerService=i,this._docHyperLinkModel=t,this._univerInstanceService=r,this._commandService=o,this.disposeWithMe(()=>{this._editingLink$.complete(),this._showingLink$.complete()})}get editing(){return this._editingLink$.value}get showing(){return this._showingLink$.value}showEditPopup(e){var t,r;this._editPopup&&this._editPopup.dispose(),this._editingLink$.next(e);let i=this._textSelectionManagerService.getActiveRange();if(e){const{unitId:o,rangeIndex:c}=e,d=this._univerInstanceService.getUnit(o,s.UniverInstanceType.UNIVER_DOC),l=(r=(t=d==null?void 0:d.getBody())==null?void 0:t.customRanges)==null?void 0:r[c];l&&(i={collapsed:!1,startOffset:l.startIndex,endOffset:l.endIndex+1},this._textSelectionManagerService.replaceTextRanges([{startOffset:l.startIndex,endOffset:l.endIndex+1}]))}return i?(this._editPopup=this._docCanvasPopupManagerService.attachPopupToRange(i,{componentKey:V.componentKey,direction:"bottom"}),this._editPopup):null}hideEditPopup(){var e;this._editingLink$.next(null),(e=this._editPopup)==null||e.dispose()}showInfoPopup(e){var l,f,p,v;const{linkId:i,unitId:t,rangeIndex:r}=e;if(((l=this.showing)==null?void 0:l.linkId)===i&&((f=this.showing)==null?void 0:f.unitId)===t&&this.showing.rangeIndex===r)return;this._infoPopup&&this._infoPopup.dispose();const o=this._docHyperLinkModel.getLink(t,i),c=this._univerInstanceService.getUnit(t,s.UniverInstanceType.UNIVER_DOC);if(!c||!o)return;const d=(v=(p=c.getBody())==null?void 0:p.customRanges)==null?void 0:v[r];if(this._showingLink$.next({unitId:t,linkId:i,rangeIndex:r}),!!d)return this._infoPopup=this._docCanvasPopupManagerService.attachPopupToRange({collapsed:!1,startOffset:d.startIndex,endOffset:d.endIndex+1},{componentKey:K.componentKey,direction:"top",closeOnSelfTarget:!0,onClickOutside:()=>{this.hideInfoPopup()}}),this._infoPopup}hideInfoPopup(){var e;this._showingLink$.next(null),(e=this._infoPopup)==null||e.dispose()}};M=Ne([w(0,g.Inject(Y.DocCanvasPopManagerService)),w(1,g.Inject(y.TextSelectionManagerService)),w(2,g.Inject(P.DocHyperLinkModel)),w(3,s.IUniverInstanceService),w(4,s.ICommandService)],M);const de={type:s.CommandType.COMMAND,id:"docs.command.add-hyper-link",async handler(n,e){if(!e)return!1;const{payload:i,unitId:t}=e,r=n.get(s.ICommandService),o=s.generateRandomId(),c=y.addCustomRangeBySelectionFactory(n,{rangeId:o,rangeType:s.CustomRangeType.HYPERLINK});if(c){const d={id:P.AddDocHyperLinkMutation.id,params:{unitId:t,link:{payload:i,id:o}}};return(await s.sequenceExecuteAsync([d,c],r)).result}return!1}},le={id:"docs.command.update-hyper-link",type:s.CommandType.COMMAND,handler(n,e){return e?n.get(s.ICommandService).syncExecuteCommand(P.UpdateDocHyperLinkMutation.id,e):!1}},He="univer-docs-link-edit",$e="univer-docs-link-edit-title",je="univer-docs-link-edit-close",Ae="univer-docs-link-edit-buttons",Be="univer-docs-link-edit-button",x={docsLinkEdit:He,docsLinkEditTitle:$e,docsLinkEditClose:je,docsLinkEditButtons:Ae,docsLinkEditButton:Be};function Ke(n){return/^[a-zA-Z]+:\/\//.test(n)}function Ve(n){return/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(n)}function Fe(n){return Ke(n)?n:Ve(n)?`mailto://${n}`:`https://${n}`}const V=()=>{const n=h.useDependency(M),e=h.useDependency(s.LocaleService),i=h.useDependency(P.DocHyperLinkModel),t=h.useObservable(n.editingLink$),r=h.useDependency(s.ICommandService),o=h.useDependency(s.IUniverInstanceService),c=h.useDependency(D.ITextSelectionRenderManager),d=h.useDependency(y.TextSelectionManagerService),[l,f]=a.useState(""),[p,v]=a.useState(!1),u=s.Tools.isLegalUrl(l),m=t?o.getUnit(t.unitId,s.UniverInstanceType.UNIVER_DOC):o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);a.useEffect(()=>{var z,G,X,J;if(t){const k=t?i.getLink(t.unitId,t.linkId):null;f((z=k==null?void 0:k.payload)!=null?z:"");return}const C=d.getActiveRange();if(!C)return;const U=o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC),W=(X=(G=U==null?void 0:U.getBody())==null?void 0:G.customRanges)==null?void 0:X.find(k=>Math.max(C.startOffset,k.startIndex)<=Math.min(C.endOffset-1,k.endIndex));if(U&&W){const k=i.getLink(U.getUnitId(),W.rangeId);f((J=k==null?void 0:k.payload)!=null?J:"")}},[t,i,d,o]),a.useEffect(()=>(c.blur(),()=>{c.focus()}),[c]);const _=()=>{n.hideEditPopup()},O=()=>{if(v(!0),!u||!m)return;const C=Fe(l);t?r.executeCommand(le.id,{unitId:m.getUnitId(),payload:C,linkId:t.linkId}):r.executeCommand(de.id,{unitId:m.getUnitId(),payload:C}),n.hideEditPopup()};if(m)return a.createElement("div",{className:x.docsLinkEdit},a.createElement("div",{className:x.docsLinkEditTitle},a.createElement("span",null,e.t("docLink.edit.title")),a.createElement(ie,{className:x.docsLinkEditClose,onClick:_})),a.createElement("div",null,a.createElement(S.FormLayout,{label:e.t("docLink.edit.address"),error:p&&!u?e.t("docLink.edit.addressError"):""},a.createElement(S.Input,{value:l,onChange:f,autoFocus:!0}))),a.createElement("div",{className:x.docsLinkEditButtons},a.createElement(S.Button,{className:x.docsLinkEditButton,onClick:_},e.t("docLink.edit.cancel")),a.createElement(S.Button,{disabled:!l,className:x.docsLinkEditButton,type:"primary",onClick:O},e.t("docLink.edit.confirm"))))};V.componentKey="docs-hyper-link-edit";const ue="doc-hyper-link-icon";function qe(n){return{id:F.id,group:I.MenuGroup.TOOLBAR_LAYOUT,type:I.MenuItemType.BUTTON,icon:ue,title:"docLink.menu.tooltip",tooltip:"docLink.menu.tooltip",positions:[I.MenuPosition.TOOLBAR_START,I.MenuPosition.CONTEXT_MENU],hidden$:I.getMenuHiddenObservable(n,s.UniverInstanceType.UNIVER_DOC),disabled$:new B.Observable(function(e){const t=n.get(y.TextSelectionManagerService).textSelection$.pipe(B.debounceTime(16)).subscribe(()=>{e.next(ae(n))});return()=>{t.unsubscribe()}})}}const Ye={id:F.id,binding:I.MetaKeys.CTRL_COMMAND|I.KeyCode.K,description:"docLink.menu.tooltip",preconditions:Y.whenDocAndEditorFocused};var Ze=Object.defineProperty,We=Object.getOwnPropertyDescriptor,ze=(n,e,i,t)=>{for(var r=t>1?void 0:t?We(e,i):e,o=n.length-1,c;o>=0;o--)(c=n[o])&&(r=(t?c(e,i,r):c(r))||r);return t&&r&&Ze(e,i,r),r},T=(n,e)=>(i,t)=>e(i,t,n);let N=class extends s.Disposable{constructor(n,e,i,t,r,o){super(),this._config=n,this._componentManager=e,this._commandService=i,this._menuService=t,this._injector=r,this._shortcutService=o,this._initComponents(),this._initCommands(),this._initMenus(),this._initShortcut()}_initComponents(){[[V,V.componentKey],[K,K.componentKey],[Z,ue]].forEach(([n,e])=>{this._componentManager.register(e,n)})}_initCommands(){[de,le,se,F].forEach(n=>{this._commandService.registerCommand(n)})}_initShortcut(){[Ye].forEach(n=>{this._shortcutService.registerShortcut(n)})}_initMenus(){[qe].forEach(n=>{this.disposeWithMe(this._menuService.addMenuItem(n(this._injector),{}))})}};N=ze([s.OnLifecycle(s.LifecycleStages.Starting,N),T(1,g.Inject(I.ComponentManager)),T(2,s.ICommandService),T(3,I.IMenuService),T(4,g.Inject(g.Injector)),T(5,I.IShortcutService)],N);var Ge=Object.defineProperty,Xe=Object.getOwnPropertyDescriptor,Je=(n,e,i,t)=>{for(var r=t>1?void 0:t?Xe(e,i):e,o=n.length-1,c;o>=0;o--)(c=n[o])&&(r=(t?c(e,i,r):c(r))||r);return t&&r&&Ge(e,i,r),r},H=(n,e)=>(i,t)=>e(i,t,n);let j=class extends s.Disposable{constructor(n,e,i,t){super(),this._commandService=n,this._univerInstanceService=e,this._docHyperLinkService=i,this._renderMangerService=t,this._initSelectionChange()}_initSelectionChange(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{var e,i;if(n.id===y.SetTextSelectionsOperation.id){const t=n.params,{unitId:r,ranges:o}=t,c=this._renderMangerService.getRenderById(r),d=c==null?void 0:c.with(y.DocSkeletonManagerService).getSkeleton();if((d==null?void 0:d.getViewModel().getEditArea())!==D.DocumentEditArea.BODY){this._docHyperLinkService.hideInfoPopup(),this._docHyperLinkService.hideEditPopup();return}const f=this._univerInstanceService.getUnit(r,s.UniverInstanceType.UNIVER_DOC),p=o[0];if(p&&f){const{startOffset:v,endOffset:u,collapsed:m}=p,_=(e=f.getBody())==null?void 0:e.customRanges;if(m){const O=(i=_==null?void 0:_.findIndex(C=>C.startIndex<v&&C.endIndex>u-1))!=null?i:-1;if(O>-1){const C=_[O];this._docHyperLinkService.showInfoPopup({unitId:r,linkId:C.rangeId,rangeIndex:O});return}}else if(_!=null&&_.find(O=>O.startIndex<=v&&O.endIndex>=u-1))return}this._docHyperLinkService.hideInfoPopup(),this._docHyperLinkService.hideEditPopup()}}))}};j=Je([s.OnLifecycle(s.LifecycleStages.Ready,j),H(0,s.ICommandService),H(1,s.IUniverInstanceService),H(2,g.Inject(M)),H(3,D.IRenderManagerService)],j);var Qe=Object.defineProperty,en=Object.getOwnPropertyDescriptor,nn=(n,e,i,t)=>{for(var r=t>1?void 0:t?en(e,i):e,o=n.length-1,c;o>=0;o--)(c=n[o])&&(r=(t?c(e,i,r):c(r))||r);return t&&r&&Qe(e,i,r),r},ee=(n,e)=>(i,t)=>e(i,t,n);let q=class extends s.Disposable{constructor(n,e,i){super(),this._context=n,this._docInterceptorService=e,this._hyperLinkService=i,this._init()}_init(){this._docInterceptorService.intercept(y.DOC_INTERCEPTOR_POINT.CUSTOM_RANGE,{handler:(n,e,i)=>{if(!n)return i(n);const{unitId:t}=e,r=this._hyperLinkService.showing,{linkId:o,unitId:c}=r||{},d=c===t&&n.rangeId===o;return i({...n,active:d})}})}};q=nn([ee(1,g.Inject(y.DocInterceptorService)),ee(2,g.Inject(M))],q);var tn=Object.defineProperty,rn=Object.getOwnPropertyDescriptor,on=(n,e,i,t)=>{for(var r=t>1?void 0:t?rn(e,i):e,o=n.length-1,c;o>=0;o--)(c=n[o])&&(r=(t?c(e,i,r):c(r))||r);return t&&r&&tn(e,i,r),r},$=(n,e)=>(i,t)=>e(i,t,n);let A=class extends s.Disposable{constructor(n,e,i,t){super(),this._docClipboardService=n,this._univerInstanceService=e,this._hyperLinkModel=i,this._textSelectionManagerService=t,this._initClipboard()}_initClipboard(){this.disposeWithMe(this._docClipboardService.addClipboardHook({onBeforePaste:n=>{var o,c;const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);if(!e)return n;const i=this._textSelectionManagerService.getActiveRange(),t=(o=e.getBody())==null?void 0:o.customRanges;if(i?t==null?void 0:t.find(d=>d.rangeType===s.CustomRangeType.HYPERLINK&&d.startIndex<=i.startOffset&&d.endIndex>=i.endOffset-1):null){const{customRanges:d=[],...l}=n,p=d.filter(u=>u.rangeType===s.CustomRangeType.HYPERLINK).map(u=>[u.startIndex,u.endIndex]).flat().sort((u,m)=>u-m),v={...l,customRanges:d.filter(u=>u.rangeType!==s.CustomRangeType.HYPERLINK)};for(let u=0;u<p.length;u++)s.updateAttributeByDelete(v,1,p[u]-u);return v}else{const d=new Set(t==null?void 0:t.map(l=>l.rangeType===s.CustomRangeType.HYPERLINK&&l.rangeId));(c=n.customRanges)==null||c.forEach(l=>{var f;if(l.rangeType===s.CustomRangeType.HYPERLINK){if(d.has(l.rangeId)){const p=this._hyperLinkModel.getLink(e.getUnitId(),l.rangeId);if(p){const v=s.Tools.generateRandomId();this._hyperLinkModel.addLink(e.getUnitId(),{payload:p.payload,id:v}),l.rangeId=v}}else if((f=n.payloads)!=null&&f[l.rangeId]){const p=n.payloads[l.rangeId];this._hyperLinkModel.addLink(e.getUnitId(),{payload:p,id:l.rangeId})}}})}return n}}))}};A=on([s.OnLifecycle(s.LifecycleStages.Ready,A),$(0,g.Inject(Y.IDocClipboardService)),$(1,s.IUniverInstanceService),$(2,g.Inject(P.DocHyperLinkModel)),$(3,g.Inject(y.TextSelectionManagerService))],A);var pe=Object.defineProperty,cn=Object.getOwnPropertyDescriptor,sn=(n,e,i)=>e in n?pe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[e]=i,an=(n,e,i,t)=>{for(var r=t>1?void 0:t?cn(e,i):e,o=n.length-1,c;o>=0;o--)(c=n[o])&&(r=(t?c(e,i,r):c(r))||r);return t&&r&&pe(e,i,r),r},ne=(n,e)=>(i,t)=>e(i,t,n),fe=(n,e,i)=>sn(n,typeof e!="symbol"?e+"":e,i);exports.UniverDocsHyperLinkUIPlugin=class extends s.Plugin{constructor(e={menu:{}},i,t){super(),this._config=e,this._injector=i,this._renderManagerSrv=t}onStarting(e){[[M],[N,{useFactory:()=>this._injector.createInstance(N,this._config)}],[j],[A]].forEach(t=>{e.add(t)})}onRendered(){this._initRenderModule()}_initRenderModule(){[q].forEach(e=>{this._renderManagerSrv.registerRenderModule(s.UniverInstanceType.UNIVER_DOC,e)})}};fe(exports.UniverDocsHyperLinkUIPlugin,"pluginName",he);fe(exports.UniverDocsHyperLinkUIPlugin,"type",s.UniverInstanceType.UNIVER_DOC);exports.UniverDocsHyperLinkUIPlugin=an([s.DependentOn(P.UniverDocsHyperLinkPlugin),ne(1,g.Inject(g.Injector)),ne(2,D.IRenderManagerService)],exports.UniverDocsHyperLinkUIPlugin);
package/lib/es/index.js CHANGED
@@ -1,19 +1,19 @@
1
1
  var be = Object.defineProperty;
2
2
  var we = (e, t, i) => t in e ? be(e, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[t] = i;
3
3
  var E = (e, t, i) => we(e, typeof t != "symbol" ? t + "" : t, i);
4
- import { CommandType as z, ICommandService as O, IUniverInstanceService as T, UniverInstanceType as _, LocaleService as ve, Disposable as $, Tools as J, CustomRangeType as M, sequenceExecuteAsync as De, OnLifecycle as Q, LifecycleStages as ee, updateAttributeByDelete as Ne, DependentOn as Ue, Plugin as Te } from "@univerjs/core";
4
+ import { CommandType as z, ICommandService as O, IUniverInstanceService as $, UniverInstanceType as _, LocaleService as ge, Disposable as T, generateRandomId as De, CustomRangeType as P, sequenceExecuteAsync as Ne, Tools as ve, OnLifecycle as J, LifecycleStages as Q, updateAttributeByDelete as Ue, DependentOn as $e, Plugin as Te } from "@univerjs/core";
5
5
  import { Inject as m, Injector as me } from "@wendellhu/redi";
6
- import { DocHyperLinkModel as H, AddDocHyperLinkMutation as $e, UpdateDocHyperLinkMutation as He, UniverDocsHyperLinkPlugin as Ae } from "@univerjs/docs-hyper-link";
7
- import { IRenderManagerService as te, DocumentEditArea as q, ITextSelectionRenderManager as je } from "@univerjs/engine-render";
8
- import { IMessageService as Be, useObservable as Ke, MetaKeys as Ve, KeyCode as Fe, MenuGroup as Ye, MenuItemType as Ze, MenuPosition as ae, getMenuHiddenObservable as We, ComponentManager as ze, IMenuService as Ge, IShortcutService as qe } from "@univerjs/ui";
9
- import { Tooltip as j, MessageType as Xe, FormLayout as Je, Input as Qe, Button as de } from "@univerjs/design";
10
- import d, { forwardRef as x, useRef as et, createElement as R, useState as le, useEffect as ue } from "react";
11
- import { useDependency as g, useObservable as tt } from "@wendellhu/redi/react-bindings";
12
- import { deleteCustomRangeFactory as nt, TextSelectionManagerService as A, DocSkeletonManagerService as Le, addCustomRangeBySelectionFactory as it, SetTextSelectionsOperation as rt, DocInterceptorService as ot, DOC_INTERCEPTOR_POINT as ct } from "@univerjs/docs";
13
- import { DocCanvasPopManagerService as st, whenDocAndEditorFocused as at, IDocClipboardService as dt } from "@univerjs/docs-ui";
14
- import { BehaviorSubject as pe, Observable as lt, debounceTime as ut } from "rxjs";
15
- import fe from "clsx";
16
- const pt = "DOC_HYPER_LINK_UI_PLUGIN";
6
+ import { DocHyperLinkModel as H, AddDocHyperLinkMutation as He, UpdateDocHyperLinkMutation as Ae, UniverDocsHyperLinkPlugin as je } from "@univerjs/docs-hyper-link";
7
+ import { IRenderManagerService as ee, DocumentEditArea as q, ITextSelectionRenderManager as Be } from "@univerjs/engine-render";
8
+ import { IMessageService as Ke, useObservable as Ve, MetaKeys as Fe, KeyCode as Ye, MenuGroup as Ze, MenuItemType as We, MenuPosition as se, getMenuHiddenObservable as ze, ComponentManager as Ge, IMenuService as qe, IShortcutService as Xe } from "@univerjs/ui";
9
+ import { Tooltip as j, MessageType as Je, FormLayout as Qe, Input as et, Button as ae } from "@univerjs/design";
10
+ import d, { forwardRef as x, useRef as tt, createElement as R, useState as de, useEffect as le } from "react";
11
+ import { useDependency as g, useObservable as nt } from "@wendellhu/redi/react-bindings";
12
+ import { deleteCustomRangeFactory as it, TextSelectionManagerService as A, DocSkeletonManagerService as Le, addCustomRangeBySelectionFactory as rt, SetTextSelectionsOperation as ot, DocInterceptorService as ct, DOC_INTERCEPTOR_POINT as st } from "@univerjs/docs";
13
+ import { DocCanvasPopManagerService as at, whenDocAndEditorFocused as dt, IDocClipboardService as lt } from "@univerjs/docs-ui";
14
+ import { BehaviorSubject as ue, Observable as ut, debounceTime as pt } from "rxjs";
15
+ import pe from "clsx";
16
+ const ft = "DOC_HYPER_LINK_UI_PLUGIN";
17
17
  var v = function() {
18
18
  return v = Object.assign || function(e) {
19
19
  for (var t, i = 1, n = arguments.length; i < n; i++) {
@@ -22,7 +22,7 @@ var v = function() {
22
22
  }
23
23
  return e;
24
24
  }, v.apply(this, arguments);
25
- }, ft = function(e, t) {
25
+ }, ht = function(e, t) {
26
26
  var i = {};
27
27
  for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && t.indexOf(n) < 0 && (i[n] = e[n]);
28
28
  if (e != null && typeof Object.getOwnPropertySymbols == "function")
@@ -30,15 +30,15 @@ var v = function() {
30
30
  t.indexOf(n[r]) < 0 && Object.prototype.propertyIsEnumerable.call(e, n[r]) && (i[n[r]] = e[n[r]]);
31
31
  return i;
32
32
  }, b = x(function(e, t) {
33
- var i = e.icon, n = e.id, r = e.className, o = e.extend, c = ft(e, ["icon", "id", "className", "extend"]), s = "univerjs-icon univerjs-icon-".concat(n, " ").concat(r || "").trim(), a = et("_".concat(vt()));
33
+ var i = e.icon, n = e.id, r = e.className, o = e.extend, c = ht(e, ["icon", "id", "className", "extend"]), s = "univerjs-icon univerjs-icon-".concat(n, " ").concat(r || "").trim(), a = tt("_".concat(mt()));
34
34
  return _e(i, "".concat(n), { defIds: i.defIds, idSuffix: a.current }, v({ ref: t, className: s }, c), o);
35
35
  });
36
36
  function _e(e, t, i, n, r) {
37
- return R(e.tag, v(v({ key: t }, ht(e, i, r)), n), (gt(e, i).children || []).map(function(o, c) {
37
+ return R(e.tag, v(v({ key: t }, gt(e, i, r)), n), (vt(e, i).children || []).map(function(o, c) {
38
38
  return _e(o, "".concat(t, "-").concat(e.tag, "-").concat(c), i, void 0, r);
39
39
  }));
40
40
  }
41
- function ht(e, t, i) {
41
+ function gt(e, t, i) {
42
42
  var n = v({}, e.attrs);
43
43
  i != null && i.colorChannel1 && n.fill === "colorChannel1" && (n.fill = i.colorChannel1);
44
44
  var r = t.defIds;
@@ -47,81 +47,81 @@ function ht(e, t, i) {
47
47
  typeof s == "string" && (n[c] = s.replace(/url\(#(.*)\)/, "url(#$1".concat(t.idSuffix, ")")));
48
48
  })), n;
49
49
  }
50
- function gt(e, t) {
50
+ function vt(e, t) {
51
51
  var i, n = t.defIds;
52
52
  return !n || n.length === 0 ? e : e.tag === "defs" && (!((i = e.children) === null || i === void 0) && i.length) ? v(v({}, e), { children: e.children.map(function(r) {
53
53
  return typeof r.attrs.id == "string" && n && n.indexOf(r.attrs.id) > -1 ? v(v({}, r), { attrs: v(v({}, r.attrs), { id: r.attrs.id + t.idSuffix }) }) : r;
54
54
  }) }) : e;
55
55
  }
56
- function vt() {
56
+ function mt() {
57
57
  return Math.random().toString(36).substring(2, 8);
58
58
  }
59
59
  b.displayName = "UniverIcon";
60
- var mt = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z" } }] }, Ce = x(function(e, t) {
60
+ var Lt = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z" } }] }, Ce = x(function(e, t) {
61
61
  return R(b, Object.assign({}, e, {
62
62
  id: "close-single",
63
63
  ref: t,
64
- icon: mt
64
+ icon: Lt
65
65
  }));
66
66
  });
67
67
  Ce.displayName = "CloseSingle";
68
- var Lt = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 17 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M5.02547 12.4251C5.15328 13.7417 6.26305 14.7708 7.61318 14.7708H12.6132C14.0491 14.7708 15.2132 13.6067 15.2132 12.1708V6.1708C15.2132 4.78586 14.1303 3.65383 12.7651 3.57517C12.6373 2.25858 11.5275 1.22949 10.1774 1.22949H5.17739C3.74145 1.22949 2.57739 2.39355 2.57739 3.82949V9.82949C2.57739 11.2144 3.66024 12.3465 5.02547 12.4251ZM11.5535 3.5708H7.61318C6.17724 3.5708 5.01318 4.73486 5.01318 6.1708V11.22C4.31736 11.1387 3.77739 10.5471 3.77739 9.82949V3.82949C3.77739 3.05629 4.40419 2.42949 5.17739 2.42949H10.1774C10.8622 2.42949 11.4322 2.92119 11.5535 3.5708ZM14.0132 6.1708C14.0132 5.3976 13.3864 4.7708 12.6132 4.7708H7.61318C6.83998 4.7708 6.21318 5.3976 6.21318 6.1708V12.1708C6.21318 12.944 6.83998 13.5708 7.61318 13.5708H12.6132C13.3864 13.5708 14.0132 12.944 14.0132 12.1708V6.1708Z", fillRule: "evenodd", clipRule: "evenodd" } }] }, Ie = x(function(e, t) {
68
+ var _t = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 17 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M5.02547 12.4251C5.15328 13.7417 6.26305 14.7708 7.61318 14.7708H12.6132C14.0491 14.7708 15.2132 13.6067 15.2132 12.1708V6.1708C15.2132 4.78586 14.1303 3.65383 12.7651 3.57517C12.6373 2.25858 11.5275 1.22949 10.1774 1.22949H5.17739C3.74145 1.22949 2.57739 2.39355 2.57739 3.82949V9.82949C2.57739 11.2144 3.66024 12.3465 5.02547 12.4251ZM11.5535 3.5708H7.61318C6.17724 3.5708 5.01318 4.73486 5.01318 6.1708V11.22C4.31736 11.1387 3.77739 10.5471 3.77739 9.82949V3.82949C3.77739 3.05629 4.40419 2.42949 5.17739 2.42949H10.1774C10.8622 2.42949 11.4322 2.92119 11.5535 3.5708ZM14.0132 6.1708C14.0132 5.3976 13.3864 4.7708 12.6132 4.7708H7.61318C6.83998 4.7708 6.21318 5.3976 6.21318 6.1708V12.1708C6.21318 12.944 6.83998 13.5708 7.61318 13.5708H12.6132C13.3864 13.5708 14.0132 12.944 14.0132 12.1708V6.1708Z", fillRule: "evenodd", clipRule: "evenodd" } }] }, Ie = x(function(e, t) {
69
69
  return R(b, Object.assign({}, e, {
70
70
  id: "copy-single",
71
71
  ref: t,
72
- icon: Lt
72
+ icon: _t
73
73
  }));
74
74
  });
75
75
  Ie.displayName = "CopySingle";
76
- var _t = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M5.9564 2.91332C4.91407 1.87102 3.22413 1.87101 2.18182 2.91333L2.18182 2.91333C1.13953 3.95567 1.13952 5.6456 2.18182 6.68791L8.27777 12.7838C9.72408 14.2302 12.069 14.2302 13.5154 12.7839L13.0911 12.3596L13.5154 12.7839C14.9617 11.3375 14.9617 8.99257 13.5154 7.54626L8.39476 2.42566C8.16044 2.19134 7.78054 2.19134 7.54623 2.42566C7.31191 2.65997 7.31191 3.03987 7.54623 3.27419L12.6668 8.39479L13.0911 7.97052L12.6668 8.39479C13.6445 9.37247 13.6445 10.9576 12.6668 11.9353L13.0399 12.3084L12.6668 11.9353C11.6891 12.913 10.104 12.913 9.1263 11.9353L3.03035 5.83938C2.45668 5.26571 2.45667 4.33556 3.03036 3.76184C3.60403 3.18818 4.53416 3.18817 5.10788 3.76185C5.10788 3.76186 5.10788 3.76186 5.10789 3.76186L11.2038 9.8578L11.601 9.46061L11.2038 9.8578C11.3735 10.0275 11.3735 10.3026 11.2038 10.4723L11.2038 10.4723C11.0341 10.642 10.759 10.642 10.5893 10.4723L5.46874 5.35171C5.23442 5.1174 4.85452 5.1174 4.62021 5.35171C4.38589 5.58602 4.38589 5.96592 4.62021 6.20024L9.74078 11.3208C10.3791 11.9591 11.414 11.9591 12.0523 11.3208C12.0523 11.3208 12.0523 11.3208 12.0523 11.3208M12.0523 11.3208C12.6907 10.6825 12.6906 9.64757 12.0523 9.00927L5.95641 2.91333L5.9564 2.91332", fillRule: "evenodd", clipRule: "evenodd" } }] }, ne = x(function(e, t) {
76
+ var Ct = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M5.9564 2.91332C4.91407 1.87102 3.22413 1.87101 2.18182 2.91333L2.18182 2.91333C1.13953 3.95567 1.13952 5.6456 2.18182 6.68791L8.27777 12.7838C9.72408 14.2302 12.069 14.2302 13.5154 12.7839L13.0911 12.3596L13.5154 12.7839C14.9617 11.3375 14.9617 8.99257 13.5154 7.54626L8.39476 2.42566C8.16044 2.19134 7.78054 2.19134 7.54623 2.42566C7.31191 2.65997 7.31191 3.03987 7.54623 3.27419L12.6668 8.39479L13.0911 7.97052L12.6668 8.39479C13.6445 9.37247 13.6445 10.9576 12.6668 11.9353L13.0399 12.3084L12.6668 11.9353C11.6891 12.913 10.104 12.913 9.1263 11.9353L3.03035 5.83938C2.45668 5.26571 2.45667 4.33556 3.03036 3.76184C3.60403 3.18818 4.53416 3.18817 5.10788 3.76185C5.10788 3.76186 5.10788 3.76186 5.10789 3.76186L11.2038 9.8578L11.601 9.46061L11.2038 9.8578C11.3735 10.0275 11.3735 10.3026 11.2038 10.4723L11.2038 10.4723C11.0341 10.642 10.759 10.642 10.5893 10.4723L5.46874 5.35171C5.23442 5.1174 4.85452 5.1174 4.62021 5.35171C4.38589 5.58602 4.38589 5.96592 4.62021 6.20024L9.74078 11.3208C10.3791 11.9591 11.414 11.9591 12.0523 11.3208C12.0523 11.3208 12.0523 11.3208 12.0523 11.3208M12.0523 11.3208C12.6907 10.6825 12.6906 9.64757 12.0523 9.00927L5.95641 2.91333L5.9564 2.91332", fillRule: "evenodd", clipRule: "evenodd" } }] }, te = x(function(e, t) {
77
77
  return R(b, Object.assign({}, e, {
78
78
  id: "link-single",
79
79
  ref: t,
80
- icon: _t
80
+ icon: Ct
81
81
  }));
82
82
  });
83
- ne.displayName = "LinkSingle";
84
- var Ct = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 17", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M12.5935 3.47302C11.6354 2.51492 10.082 2.51492 9.12388 3.47302L7.83534 4.76157C7.60102 4.99588 7.22112 4.99588 6.98681 4.76157 6.75249 4.52725 6.75249 4.14735 6.98681 3.91304L8.27535 2.62449C9.70209 1.19776 12.0153 1.19776 13.442 2.62449 14.8688 4.05123 14.8688 6.36442 13.442 7.79116L12.1535 9.0797C11.9192 9.31402 11.5393 9.31402 11.3049 9.0797 11.0706 8.84539 11.0706 8.46549 11.3049 8.23117L12.5935 6.94263C13.5516 5.98452 13.5516 4.43113 12.5935 3.47302zM3.40637 12.6606C2.44827 11.7025 2.44827 10.1491 3.40637 9.19102L4.69492 7.90248C4.92923 7.66816 4.92923 7.28826 4.69492 7.05395 4.4606 6.81963 4.0807 6.81963 3.84639 7.05395L2.55784 8.34249C1.13111 9.76923 1.13111 12.0824 2.55784 13.5092 3.98458 14.9359 6.29777 14.9359 7.72451 13.5092L9.01305 12.2206C9.24737 11.9863 9.24737 11.6064 9.01305 11.3721 8.77874 11.1378 8.39884 11.1378 8.16452 11.3721L6.87598 12.6606C5.91787 13.6187 4.36448 13.6187 3.40637 12.6606zM3.5852 2.80332C3.35088 2.569 2.97098 2.569 2.73667 2.80332 2.50235 3.03763 2.50235 3.41753 2.73667 3.65185L12.4151 13.3302C12.6494 13.5646 13.0293 13.5646 13.2636 13.3302 13.4979 13.0959 13.4979 12.716 13.2636 12.4817L3.5852 2.80332z" } }] }, ke = x(function(e, t) {
83
+ te.displayName = "LinkSingle";
84
+ var It = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 17", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M12.5935 3.47302C11.6354 2.51492 10.082 2.51492 9.12388 3.47302L7.83534 4.76157C7.60102 4.99588 7.22112 4.99588 6.98681 4.76157 6.75249 4.52725 6.75249 4.14735 6.98681 3.91304L8.27535 2.62449C9.70209 1.19776 12.0153 1.19776 13.442 2.62449 14.8688 4.05123 14.8688 6.36442 13.442 7.79116L12.1535 9.0797C11.9192 9.31402 11.5393 9.31402 11.3049 9.0797 11.0706 8.84539 11.0706 8.46549 11.3049 8.23117L12.5935 6.94263C13.5516 5.98452 13.5516 4.43113 12.5935 3.47302zM3.40637 12.6606C2.44827 11.7025 2.44827 10.1491 3.40637 9.19102L4.69492 7.90248C4.92923 7.66816 4.92923 7.28826 4.69492 7.05395 4.4606 6.81963 4.0807 6.81963 3.84639 7.05395L2.55784 8.34249C1.13111 9.76923 1.13111 12.0824 2.55784 13.5092 3.98458 14.9359 6.29777 14.9359 7.72451 13.5092L9.01305 12.2206C9.24737 11.9863 9.24737 11.6064 9.01305 11.3721 8.77874 11.1378 8.39884 11.1378 8.16452 11.3721L6.87598 12.6606C5.91787 13.6187 4.36448 13.6187 3.40637 12.6606zM3.5852 2.80332C3.35088 2.569 2.97098 2.569 2.73667 2.80332 2.50235 3.03763 2.50235 3.41753 2.73667 3.65185L12.4151 13.3302C12.6494 13.5646 13.0293 13.5646 13.2636 13.3302 13.4979 13.0959 13.4979 12.716 13.2636 12.4817L3.5852 2.80332z" } }] }, ke = x(function(e, t) {
85
85
  return R(b, Object.assign({}, e, {
86
86
  id: "unlink-single",
87
87
  ref: t,
88
- icon: Ct
88
+ icon: It
89
89
  }));
90
90
  });
91
91
  ke.displayName = "UnlinkSingle";
92
- var It = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 17 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M12.6551 1.98906C11.7476 1.08113 10.2757 1.08149 9.3686 1.98987L4.82542 6.53955C4.75087 6.61421 4.69336 6.70411 4.65682 6.80309L3.2461 10.625C3.16506 10.8446 3.21909 11.0912 3.3845 11.2568C3.54991 11.4224 3.79651 11.4767 4.01616 11.3959L7.85031 9.98517C7.94979 9.94856 8.04014 9.89077 8.11508 9.81579L12.6552 5.27327C13.5618 4.36621 13.5618 2.89607 12.6551 1.98906ZM10.2177 2.83779C10.6562 2.39869 11.3677 2.39851 11.8064 2.8374C12.2447 3.27584 12.2447 3.9865 11.8065 4.42497L7.3392 8.89457L4.82213 9.82068L5.74706 7.31487L10.2177 2.83779Z", fillRule: "evenodd", clipRule: "evenodd" } }, { tag: "path", attrs: { fill: "currentColor", d: "M1.79238 13.2999C1.46101 13.2999 1.19238 13.5685 1.19238 13.8999C1.19238 14.2313 1.46101 14.4999 1.79238 14.4999H14.4924C14.8238 14.4999 15.0924 14.2313 15.0924 13.8999C15.0924 13.5685 14.8238 13.2999 14.4924 13.2999H1.79238Z" } }] }, ye = x(function(e, t) {
92
+ var kt = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 17 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M12.6551 1.98906C11.7476 1.08113 10.2757 1.08149 9.3686 1.98987L4.82542 6.53955C4.75087 6.61421 4.69336 6.70411 4.65682 6.80309L3.2461 10.625C3.16506 10.8446 3.21909 11.0912 3.3845 11.2568C3.54991 11.4224 3.79651 11.4767 4.01616 11.3959L7.85031 9.98517C7.94979 9.94856 8.04014 9.89077 8.11508 9.81579L12.6552 5.27327C13.5618 4.36621 13.5618 2.89607 12.6551 1.98906ZM10.2177 2.83779C10.6562 2.39869 11.3677 2.39851 11.8064 2.8374C12.2447 3.27584 12.2447 3.9865 11.8065 4.42497L7.3392 8.89457L4.82213 9.82068L5.74706 7.31487L10.2177 2.83779Z", fillRule: "evenodd", clipRule: "evenodd" } }, { tag: "path", attrs: { fill: "currentColor", d: "M1.79238 13.2999C1.46101 13.2999 1.19238 13.5685 1.19238 13.8999C1.19238 14.2313 1.46101 14.4999 1.79238 14.4999H14.4924C14.8238 14.4999 15.0924 14.2313 15.0924 13.8999C15.0924 13.5685 14.8238 13.2999 14.4924 13.2999H1.79238Z" } }] }, ye = x(function(e, t) {
93
93
  return R(b, Object.assign({}, e, {
94
94
  id: "write-single",
95
95
  ref: t,
96
- icon: It
96
+ icon: kt
97
97
  }));
98
98
  });
99
99
  ye.displayName = "WriteSingle";
100
100
  const Se = {
101
101
  type: z.COMMAND,
102
102
  id: "docs.command.delete-hyper-link",
103
- handler(e, t) {
103
+ async handler(e, t) {
104
104
  if (!t)
105
105
  return !1;
106
106
  const { unitId: i, linkId: n } = t, r = e.get(O);
107
107
  if (!e.get(H).getLink(i, n))
108
108
  return !1;
109
- const s = nt(e, { unitId: i, rangeId: n });
110
- return s ? r.executeCommand(s.id, s.params) : !1;
109
+ const s = it(e, { unitId: i, rangeId: n });
110
+ return s ? await r.syncExecuteCommand(s.id, s.params) : !1;
111
111
  }
112
112
  }, Oe = (e) => {
113
- var p;
114
- const t = e.get(A), i = e.get(T), n = t.getActiveRange(), o = e.get(te).getCurrent(), c = o == null ? void 0 : o.with(Le).getSkeleton(), s = c == null ? void 0 : c.getViewModel().getEditArea();
113
+ var u;
114
+ const t = e.get(A), i = e.get($), n = t.getActiveRange(), o = e.get(ee).getCurrent(), c = o == null ? void 0 : o.with(Le).getSkeleton(), s = c == null ? void 0 : c.getViewModel().getEditArea();
115
115
  if (s === q.FOOTER || s === q.HEADER)
116
116
  return !0;
117
117
  const a = i.getCurrentUnitForType(_.UNIVER_DOC);
118
118
  if (!a || !n || n.collapsed)
119
119
  return !0;
120
- const u = (p = a.getBody()) == null ? void 0 : p.paragraphs;
121
- if (!u)
120
+ const p = (u = a.getBody()) == null ? void 0 : u.paragraphs;
121
+ if (!p)
122
122
  return !0;
123
- for (let f = 0, l = u.length; f < l; f++) {
124
- const h = u[f];
123
+ for (let f = 0, l = p.length; f < l; f++) {
124
+ const h = p[f];
125
125
  if (n.startOffset <= h.startIndex && n.endOffset > h.startIndex)
126
126
  return !0;
127
127
  if (h.startIndex > n.endOffset)
@@ -135,17 +135,17 @@ const Se = {
135
135
  const i = t == null ? void 0 : t.link;
136
136
  return Oe(e) && !i ? !1 : (e.get(S).showEditPopup(i), !0);
137
137
  }
138
- }, kt = "univer-doc-link", yt = "univer-doc-link-type", St = "univer-doc-link-content", Ot = "univer-doc-link-content-error", Et = "univer-doc-link-url", Pt = "univer-doc-link-operations", Mt = "univer-doc-link-operation", xt = "univer-doc-link-operation-error", y = {
139
- docLink: kt,
140
- docLinkType: yt,
141
- docLinkContent: St,
142
- docLinkContentError: Ot,
143
- docLinkUrl: Et,
138
+ }, yt = "univer-doc-link", St = "univer-doc-link-type", Ot = "univer-doc-link-content", Et = "univer-doc-link-content-error", Mt = "univer-doc-link-url", Pt = "univer-doc-link-operations", xt = "univer-doc-link-operation", Rt = "univer-doc-link-operation-error", y = {
139
+ docLink: yt,
140
+ docLinkType: St,
141
+ docLinkContent: Ot,
142
+ docLinkContentError: Et,
143
+ docLinkUrl: Mt,
144
144
  docLinkOperations: Pt,
145
- docLinkOperation: Mt,
146
- docLinkOperationError: xt
145
+ docLinkOperation: xt,
146
+ docLinkOperationError: Rt
147
147
  }, Y = () => {
148
- const e = g(S), t = g(H), i = g(O), n = g(Be), r = g(ve), o = Ke(e.showingLink$);
148
+ const e = g(S), t = g(H), i = g(O), n = g(Ke), r = g(ge), o = Ve(e.showingLink$);
149
149
  if (!o)
150
150
  return null;
151
151
  const { unitId: c, linkId: s } = o, a = t.getLink(c, s);
@@ -157,15 +157,15 @@ const Se = {
157
157
  e.hideInfoPopup();
158
158
  }
159
159
  },
160
- /* @__PURE__ */ d.createElement("div", { className: fe(y.docLinkContent), onClick: () => window.open(a.payload) }, /* @__PURE__ */ d.createElement("div", { className: y.docLinkType }, /* @__PURE__ */ d.createElement(ne, null)), /* @__PURE__ */ d.createElement(j, { showIfEllipsis: !0, title: a.payload }, /* @__PURE__ */ d.createElement("span", { className: y.docLinkUrl }, a.payload))),
160
+ /* @__PURE__ */ d.createElement("div", { className: pe(y.docLinkContent), onClick: () => window.open(a.payload) }, /* @__PURE__ */ d.createElement("div", { className: y.docLinkType }, /* @__PURE__ */ d.createElement(te, null)), /* @__PURE__ */ d.createElement(j, { showIfEllipsis: !0, title: a.payload }, /* @__PURE__ */ d.createElement("span", { className: y.docLinkUrl }, a.payload))),
161
161
  /* @__PURE__ */ d.createElement("div", { className: y.docLinkOperations }, /* @__PURE__ */ d.createElement(
162
162
  "div",
163
163
  {
164
- className: fe(y.docLinkOperation),
164
+ className: pe(y.docLinkOperation),
165
165
  onClick: () => {
166
166
  navigator.clipboard.writeText(a.payload), n.show({
167
167
  content: r.t("docLink.info.coped"),
168
- type: Xe.Info
168
+ type: Je.Info
169
169
  });
170
170
  }
171
171
  },
@@ -197,21 +197,23 @@ const Se = {
197
197
  ) : null;
198
198
  };
199
199
  Y.componentKey = "univer.doc.link-info-popup";
200
- var Rt = Object.defineProperty, bt = Object.getOwnPropertyDescriptor, wt = (e, t, i, n) => {
201
- for (var r = n > 1 ? void 0 : n ? bt(t, i) : t, o = e.length - 1, c; o >= 0; o--)
200
+ var bt = Object.defineProperty, wt = Object.getOwnPropertyDescriptor, Dt = (e, t, i, n) => {
201
+ for (var r = n > 1 ? void 0 : n ? wt(t, i) : t, o = e.length - 1, c; o >= 0; o--)
202
202
  (c = e[o]) && (r = (n ? c(t, i, r) : c(r)) || r);
203
- return n && r && Rt(t, i, r), r;
203
+ return n && r && bt(t, i, r), r;
204
204
  }, D = (e, t) => (i, n) => t(i, n, e);
205
- let S = class extends $ {
205
+ let S = class extends T {
206
206
  constructor(t, i, n, r, o) {
207
207
  super();
208
- E(this, "_editingLink$", new pe(null));
209
- E(this, "_showingLink$", new pe(null));
208
+ E(this, "_editingLink$", new ue(null));
209
+ E(this, "_showingLink$", new ue(null));
210
210
  E(this, "editingLink$", this._editingLink$.asObservable());
211
211
  E(this, "showingLink$", this._showingLink$.asObservable());
212
212
  E(this, "_editPopup", null);
213
213
  E(this, "_infoPopup", null);
214
- this._docCanvasPopupManagerService = t, this._textSelectionManagerService = i, this._docHyperLinkModel = n, this._univerInstanceService = r, this._commandService = o;
214
+ this._docCanvasPopupManagerService = t, this._textSelectionManagerService = i, this._docHyperLinkModel = n, this._univerInstanceService = r, this._commandService = o, this.disposeWithMe(() => {
215
+ this._editingLink$.complete(), this._showingLink$.complete();
216
+ });
215
217
  }
216
218
  get editing() {
217
219
  return this._editingLink$.value;
@@ -247,15 +249,15 @@ let S = class extends $ {
247
249
  this._editingLink$.next(null), (t = this._editPopup) == null || t.dispose();
248
250
  }
249
251
  showInfoPopup(t) {
250
- var a, u, p, f;
252
+ var a, p, u, f;
251
253
  const { linkId: i, unitId: n, rangeIndex: r } = t;
252
- if (((a = this.showing) == null ? void 0 : a.linkId) === i && ((u = this.showing) == null ? void 0 : u.unitId) === n && this.showing.rangeIndex === r)
254
+ if (((a = this.showing) == null ? void 0 : a.linkId) === i && ((p = this.showing) == null ? void 0 : p.unitId) === n && this.showing.rangeIndex === r)
253
255
  return;
254
256
  this._infoPopup && this._infoPopup.dispose();
255
257
  const o = this._docHyperLinkModel.getLink(n, i), c = this._univerInstanceService.getUnit(n, _.UNIVER_DOC);
256
258
  if (!c || !o)
257
259
  return;
258
- const s = (f = (p = c.getBody()) == null ? void 0 : p.customRanges) == null ? void 0 : f[r];
260
+ const s = (f = (u = c.getBody()) == null ? void 0 : u.customRanges) == null ? void 0 : f[r];
259
261
  if (this._showingLink$.next({ unitId: n, linkId: i, rangeIndex: r }), !!s)
260
262
  return this._infoPopup = this._docCanvasPopupManagerService.attachPopupToRange(
261
263
  {
@@ -278,11 +280,11 @@ let S = class extends $ {
278
280
  this._showingLink$.next(null), (t = this._infoPopup) == null || t.dispose();
279
281
  }
280
282
  };
281
- S = wt([
282
- D(0, m(st)),
283
+ S = Dt([
284
+ D(0, m(at)),
283
285
  D(1, m(A)),
284
286
  D(2, m(H)),
285
- D(3, T),
287
+ D(3, $),
286
288
  D(4, O)
287
289
  ], S);
288
290
  const Ee = {
@@ -291,68 +293,62 @@ const Ee = {
291
293
  async handler(e, t) {
292
294
  if (!t)
293
295
  return !1;
294
- const { payload: i, unitId: n } = t, r = e.get(O), o = J.generateRandomId(), c = it(
296
+ const { payload: i, unitId: n } = t, r = e.get(O), o = De(), c = rt(
295
297
  e,
296
298
  {
297
299
  rangeId: o,
298
- rangeType: M.HYPERLINK
300
+ rangeType: P.HYPERLINK
299
301
  }
300
302
  );
301
303
  if (c) {
302
304
  const s = {
303
- id: $e.id,
304
- params: {
305
- unitId: n,
306
- link: {
307
- payload: i,
308
- id: o
309
- }
310
- }
305
+ id: He.id,
306
+ params: { unitId: n, link: { payload: i, id: o } }
311
307
  };
312
- return (await De([s, c], r)).result;
308
+ return (await Ne([s, c], r)).result;
313
309
  }
314
310
  return !1;
315
311
  }
316
- }, Pe = {
312
+ }, Me = {
317
313
  id: "docs.command.update-hyper-link",
318
314
  type: z.COMMAND,
319
315
  handler(e, t) {
320
- return t ? e.get(O).executeCommand(He.id, t) : !1;
316
+ return t ? e.get(O).syncExecuteCommand(Ae.id, t) : !1;
321
317
  }
322
- }, Dt = "univer-docs-link-edit", Nt = "univer-docs-link-edit-title", Ut = "univer-docs-link-edit-close", Tt = "univer-docs-link-edit-buttons", $t = "univer-docs-link-edit-button", P = {
323
- docsLinkEdit: Dt,
324
- docsLinkEditTitle: Nt,
325
- docsLinkEditClose: Ut,
318
+ }, Nt = "univer-docs-link-edit", Ut = "univer-docs-link-edit-title", $t = "univer-docs-link-edit-close", Tt = "univer-docs-link-edit-buttons", Ht = "univer-docs-link-edit-button", M = {
319
+ docsLinkEdit: Nt,
320
+ docsLinkEditTitle: Ut,
321
+ docsLinkEditClose: $t,
326
322
  docsLinkEditButtons: Tt,
327
- docsLinkEditButton: $t
323
+ docsLinkEditButton: Ht
328
324
  };
329
- function Ht(e) {
325
+ function At(e) {
330
326
  return /^[a-zA-Z]+:\/\//.test(e);
331
327
  }
332
- function At(e) {
328
+ function jt(e) {
333
329
  return /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(e);
334
330
  }
335
- function jt(e) {
336
- return Ht(e) ? e : At(e) ? `mailto://${e}` : `https://${e}`;
331
+ function Bt(e) {
332
+ return At(e) ? e : jt(e) ? `mailto://${e}` : `https://${e}`;
337
333
  }
338
334
  const Z = () => {
339
- const e = g(S), t = g(ve), i = g(H), n = tt(e.editingLink$), r = g(O), o = g(T), c = g(je), s = g(A), [a, u] = le(""), [p, f] = le(!1), l = J.isLegalUrl(a), h = n ? o.getUnit(n.unitId, _.UNIVER_DOC) : o.getCurrentUnitForType(_.UNIVER_DOC);
340
- ue(() => {
341
- var re, oe, ce, se;
335
+ const e = g(S), t = g(ge), i = g(H), n = nt(e.editingLink$), r = g(O), o = g($), c = g(Be), s = g(A), [a, p] = de(""), [u, f] = de(!1), l = ve.isLegalUrl(a), h = n ? o.getUnit(n.unitId, _.UNIVER_DOC) : o.getCurrentUnitForType(_.UNIVER_DOC);
336
+ le(() => {
337
+ var ie, re, oe, ce;
342
338
  if (n) {
343
339
  const I = n ? i.getLink(n.unitId, n.linkId) : null;
344
- u((re = I == null ? void 0 : I.payload) != null ? re : "");
340
+ p((ie = I == null ? void 0 : I.payload) != null ? ie : "");
345
341
  return;
346
342
  }
347
343
  const L = s.getActiveRange();
348
344
  if (!L)
349
345
  return;
350
- const w = o.getCurrentUnitForType(_.UNIVER_DOC), ie = (ce = (oe = w == null ? void 0 : w.getBody()) == null ? void 0 : oe.customRanges) == null ? void 0 : ce.find((I) => Math.max(L.startOffset, I.startIndex) <= Math.min(L.endOffset - 1, I.endIndex));
351
- if (w && ie) {
352
- const I = i.getLink(w.getUnitId(), ie.rangeId);
353
- u((se = I == null ? void 0 : I.payload) != null ? se : "");
346
+ const w = o.getCurrentUnitForType(_.UNIVER_DOC), ne = (oe = (re = w == null ? void 0 : w.getBody()) == null ? void 0 : re.customRanges) == null ? void 0 : oe.find((I) => Math.max(L.startOffset, I.startIndex) <= Math.min(L.endOffset - 1, I.endIndex));
347
+ if (w && ne) {
348
+ const I = i.getLink(w.getUnitId(), ne.rangeId);
349
+ p((ce = I == null ? void 0 : I.payload) != null ? ce : "");
354
350
  }
355
- }, [n, i, s, o]), ue(() => (c.blur(), () => {
351
+ }, [n, i, s, o]), le(() => (c.blur(), () => {
356
352
  c.focus();
357
353
  }), [c]);
358
354
  const C = () => {
@@ -360,8 +356,8 @@ const Z = () => {
360
356
  }, k = () => {
361
357
  if (f(!0), !l || !h)
362
358
  return;
363
- const L = jt(a);
364
- n ? r.executeCommand(Pe.id, {
359
+ const L = Bt(a);
360
+ n ? r.executeCommand(Me.id, {
365
361
  unitId: h.getUnitId(),
366
362
  payload: L,
367
363
  linkId: n.linkId
@@ -371,25 +367,25 @@ const Z = () => {
371
367
  }), e.hideEditPopup();
372
368
  };
373
369
  if (h)
374
- return /* @__PURE__ */ d.createElement("div", { className: P.docsLinkEdit }, /* @__PURE__ */ d.createElement("div", { className: P.docsLinkEditTitle }, /* @__PURE__ */ d.createElement("span", null, t.t("docLink.edit.title")), /* @__PURE__ */ d.createElement(Ce, { className: P.docsLinkEditClose, onClick: C })), /* @__PURE__ */ d.createElement("div", null, /* @__PURE__ */ d.createElement(
375
- Je,
370
+ return /* @__PURE__ */ d.createElement("div", { className: M.docsLinkEdit }, /* @__PURE__ */ d.createElement("div", { className: M.docsLinkEditTitle }, /* @__PURE__ */ d.createElement("span", null, t.t("docLink.edit.title")), /* @__PURE__ */ d.createElement(Ce, { className: M.docsLinkEditClose, onClick: C })), /* @__PURE__ */ d.createElement("div", null, /* @__PURE__ */ d.createElement(
371
+ Qe,
376
372
  {
377
373
  label: t.t("docLink.edit.address"),
378
- error: p && !l ? t.t("docLink.edit.addressError") : ""
374
+ error: u && !l ? t.t("docLink.edit.addressError") : ""
379
375
  },
380
- /* @__PURE__ */ d.createElement(Qe, { value: a, onChange: u, autoFocus: !0 })
381
- )), /* @__PURE__ */ d.createElement("div", { className: P.docsLinkEditButtons }, /* @__PURE__ */ d.createElement(
382
- de,
376
+ /* @__PURE__ */ d.createElement(et, { value: a, onChange: p, autoFocus: !0 })
377
+ )), /* @__PURE__ */ d.createElement("div", { className: M.docsLinkEditButtons }, /* @__PURE__ */ d.createElement(
378
+ ae,
383
379
  {
384
- className: P.docsLinkEditButton,
380
+ className: M.docsLinkEditButton,
385
381
  onClick: C
386
382
  },
387
383
  t.t("docLink.edit.cancel")
388
384
  ), /* @__PURE__ */ d.createElement(
389
- de,
385
+ ae,
390
386
  {
391
387
  disabled: !a,
392
- className: P.docsLinkEditButton,
388
+ className: M.docsLinkEditButton,
393
389
  type: "primary",
394
390
  onClick: k
395
391
  },
@@ -397,19 +393,19 @@ const Z = () => {
397
393
  )));
398
394
  };
399
395
  Z.componentKey = "docs-hyper-link-edit";
400
- const Me = "doc-hyper-link-icon";
401
- function Bt(e) {
396
+ const Pe = "doc-hyper-link-icon";
397
+ function Kt(e) {
402
398
  return {
403
399
  id: G.id,
404
- group: Ye.TOOLBAR_LAYOUT,
405
- type: Ze.BUTTON,
406
- icon: Me,
400
+ group: Ze.TOOLBAR_LAYOUT,
401
+ type: We.BUTTON,
402
+ icon: Pe,
407
403
  title: "docLink.menu.tooltip",
408
404
  tooltip: "docLink.menu.tooltip",
409
- positions: [ae.TOOLBAR_START, ae.CONTEXT_MENU],
410
- hidden$: We(e, _.UNIVER_DOC),
411
- disabled$: new lt(function(t) {
412
- const n = e.get(A).textSelection$.pipe(ut(16)).subscribe(() => {
405
+ positions: [se.TOOLBAR_START, se.CONTEXT_MENU],
406
+ hidden$: ze(e, _.UNIVER_DOC),
407
+ disabled$: new ut(function(t) {
408
+ const n = e.get(A).textSelection$.pipe(pt(16)).subscribe(() => {
413
409
  t.next(Oe(e));
414
410
  });
415
411
  return () => {
@@ -418,18 +414,18 @@ function Bt(e) {
418
414
  })
419
415
  };
420
416
  }
421
- const Kt = {
417
+ const Vt = {
422
418
  id: G.id,
423
- binding: Ve.CTRL_COMMAND | Fe.K,
419
+ binding: Fe.CTRL_COMMAND | Ye.K,
424
420
  description: "docLink.menu.tooltip",
425
- preconditions: at
421
+ preconditions: dt
426
422
  };
427
- var Vt = Object.defineProperty, Ft = Object.getOwnPropertyDescriptor, Yt = (e, t, i, n) => {
428
- for (var r = n > 1 ? void 0 : n ? Ft(t, i) : t, o = e.length - 1, c; o >= 0; o--)
423
+ var Ft = Object.defineProperty, Yt = Object.getOwnPropertyDescriptor, Zt = (e, t, i, n) => {
424
+ for (var r = n > 1 ? void 0 : n ? Yt(t, i) : t, o = e.length - 1, c; o >= 0; o--)
429
425
  (c = e[o]) && (r = (n ? c(t, i, r) : c(r)) || r);
430
- return n && r && Vt(t, i, r), r;
426
+ return n && r && Ft(t, i, r), r;
431
427
  }, N = (e, t) => (i, n) => t(i, n, e);
432
- let U = class extends $ {
428
+ let U = class extends T {
433
429
  constructor(e, t, i, n, r, o) {
434
430
  super(), this._config = e, this._componentManager = t, this._commandService = i, this._menuService = n, this._injector = r, this._shortcutService = o, this._initComponents(), this._initCommands(), this._initMenus(), this._initShortcut();
435
431
  }
@@ -437,7 +433,7 @@ let U = class extends $ {
437
433
  [
438
434
  [Z, Z.componentKey],
439
435
  [Y, Y.componentKey],
440
- [ne, Me]
436
+ [te, Pe]
441
437
  ].forEach(([e, t]) => {
442
438
  this._componentManager.register(t, e);
443
439
  });
@@ -445,7 +441,7 @@ let U = class extends $ {
445
441
  _initCommands() {
446
442
  [
447
443
  Ee,
448
- Pe,
444
+ Me,
449
445
  Se,
450
446
  G
451
447
  ].forEach((e) => {
@@ -453,30 +449,30 @@ let U = class extends $ {
453
449
  });
454
450
  }
455
451
  _initShortcut() {
456
- [Kt].forEach((e) => {
452
+ [Vt].forEach((e) => {
457
453
  this._shortcutService.registerShortcut(e);
458
454
  });
459
455
  }
460
456
  _initMenus() {
461
- [Bt].forEach((e) => {
457
+ [Kt].forEach((e) => {
462
458
  this.disposeWithMe(this._menuService.addMenuItem(e(this._injector), {}));
463
459
  });
464
460
  }
465
461
  };
466
- U = Yt([
467
- Q(ee.Starting, U),
468
- N(1, m(ze)),
462
+ U = Zt([
463
+ J(Q.Starting, U),
464
+ N(1, m(Ge)),
469
465
  N(2, O),
470
- N(3, Ge),
466
+ N(3, qe),
471
467
  N(4, m(me)),
472
- N(5, qe)
468
+ N(5, Xe)
473
469
  ], U);
474
- var Zt = Object.defineProperty, Wt = Object.getOwnPropertyDescriptor, zt = (e, t, i, n) => {
475
- for (var r = n > 1 ? void 0 : n ? Wt(t, i) : t, o = e.length - 1, c; o >= 0; o--)
470
+ var Wt = Object.defineProperty, zt = Object.getOwnPropertyDescriptor, Gt = (e, t, i, n) => {
471
+ for (var r = n > 1 ? void 0 : n ? zt(t, i) : t, o = e.length - 1, c; o >= 0; o--)
476
472
  (c = e[o]) && (r = (n ? c(t, i, r) : c(r)) || r);
477
- return n && r && Zt(t, i, r), r;
473
+ return n && r && Wt(t, i, r), r;
478
474
  }, B = (e, t) => (i, n) => t(i, n, e);
479
- let V = class extends $ {
475
+ let V = class extends T {
480
476
  constructor(e, t, i, n) {
481
477
  super(), this._commandService = e, this._univerInstanceService = t, this._docHyperLinkService = i, this._renderMangerService = n, this._initSelectionChange();
482
478
  }
@@ -484,15 +480,15 @@ let V = class extends $ {
484
480
  this.disposeWithMe(
485
481
  this._commandService.onCommandExecuted((e) => {
486
482
  var t, i;
487
- if (e.id === rt.id) {
483
+ if (e.id === ot.id) {
488
484
  const n = e.params, { unitId: r, ranges: o } = n, c = this._renderMangerService.getRenderById(r), s = c == null ? void 0 : c.with(Le).getSkeleton();
489
485
  if ((s == null ? void 0 : s.getViewModel().getEditArea()) !== q.BODY) {
490
486
  this._docHyperLinkService.hideInfoPopup(), this._docHyperLinkService.hideEditPopup();
491
487
  return;
492
488
  }
493
- const u = this._univerInstanceService.getUnit(r, _.UNIVER_DOC), p = o[0];
494
- if (p && u) {
495
- const { startOffset: f, endOffset: l, collapsed: h } = p, C = (t = u.getBody()) == null ? void 0 : t.customRanges;
489
+ const p = this._univerInstanceService.getUnit(r, _.UNIVER_DOC), u = o[0];
490
+ if (u && p) {
491
+ const { startOffset: f, endOffset: l, collapsed: h } = u, C = (t = p.getBody()) == null ? void 0 : t.customRanges;
496
492
  if (h) {
497
493
  const k = (i = C == null ? void 0 : C.findIndex((L) => L.startIndex < f && L.endIndex > l - 1)) != null ? i : -1;
498
494
  if (k > -1) {
@@ -509,28 +505,28 @@ let V = class extends $ {
509
505
  );
510
506
  }
511
507
  };
512
- V = zt([
513
- Q(ee.Ready, V),
508
+ V = Gt([
509
+ J(Q.Ready, V),
514
510
  B(0, O),
515
- B(1, T),
511
+ B(1, $),
516
512
  B(2, m(S)),
517
- B(3, te)
513
+ B(3, ee)
518
514
  ], V);
519
- var Gt = Object.defineProperty, qt = Object.getOwnPropertyDescriptor, Xt = (e, t, i, n) => {
520
- for (var r = n > 1 ? void 0 : n ? qt(t, i) : t, o = e.length - 1, c; o >= 0; o--)
515
+ var qt = Object.defineProperty, Xt = Object.getOwnPropertyDescriptor, Jt = (e, t, i, n) => {
516
+ for (var r = n > 1 ? void 0 : n ? Xt(t, i) : t, o = e.length - 1, c; o >= 0; o--)
521
517
  (c = e[o]) && (r = (n ? c(t, i, r) : c(r)) || r);
522
- return n && r && Gt(t, i, r), r;
523
- }, he = (e, t) => (i, n) => t(i, n, e);
524
- let X = class extends $ {
518
+ return n && r && qt(t, i, r), r;
519
+ }, fe = (e, t) => (i, n) => t(i, n, e);
520
+ let X = class extends T {
525
521
  constructor(e, t, i) {
526
522
  super(), this._context = e, this._docInterceptorService = t, this._hyperLinkService = i, this._init();
527
523
  }
528
524
  _init() {
529
- this._docInterceptorService.intercept(ct.CUSTOM_RANGE, {
525
+ this._docInterceptorService.intercept(st.CUSTOM_RANGE, {
530
526
  handler: (e, t, i) => {
531
527
  if (!e)
532
528
  return i(e);
533
- const { unitId: n } = t, r = this._hyperLinkService.editing, { linkId: o, unitId: c } = r || {}, s = c === n && e.rangeId === o;
529
+ const { unitId: n } = t, r = this._hyperLinkService.showing, { linkId: o, unitId: c } = r || {}, s = c === n && e.rangeId === o;
534
530
  return i({
535
531
  ...e,
536
532
  active: s
@@ -539,16 +535,16 @@ let X = class extends $ {
539
535
  });
540
536
  }
541
537
  };
542
- X = Xt([
543
- he(1, m(ot)),
544
- he(2, m(S))
538
+ X = Jt([
539
+ fe(1, m(ct)),
540
+ fe(2, m(S))
545
541
  ], X);
546
- var Jt = Object.defineProperty, Qt = Object.getOwnPropertyDescriptor, en = (e, t, i, n) => {
547
- for (var r = n > 1 ? void 0 : n ? Qt(t, i) : t, o = e.length - 1, c; o >= 0; o--)
542
+ var Qt = Object.defineProperty, en = Object.getOwnPropertyDescriptor, tn = (e, t, i, n) => {
543
+ for (var r = n > 1 ? void 0 : n ? en(t, i) : t, o = e.length - 1, c; o >= 0; o--)
548
544
  (c = e[o]) && (r = (n ? c(t, i, r) : c(r)) || r);
549
- return n && r && Jt(t, i, r), r;
545
+ return n && r && Qt(t, i, r), r;
550
546
  }, K = (e, t) => (i, n) => t(i, n, e);
551
- let F = class extends $ {
547
+ let F = class extends T {
552
548
  constructor(e, t, i, n) {
553
549
  super(), this._docClipboardService = e, this._univerInstanceService = t, this._hyperLinkModel = i, this._textSelectionManagerService = n, this._initClipboard();
554
550
  }
@@ -560,29 +556,36 @@ let F = class extends $ {
560
556
  if (!t)
561
557
  return e;
562
558
  const i = this._textSelectionManagerService.getActiveRange(), n = (o = t.getBody()) == null ? void 0 : o.customRanges;
563
- if (!(n != null && n.length))
564
- return e;
565
- if (i ? n.find(
566
- (s) => s.rangeType === M.HYPERLINK && s.startIndex <= i.startOffset && s.endIndex >= i.endOffset - 1
559
+ if (i ? n == null ? void 0 : n.find(
560
+ (s) => s.rangeType === P.HYPERLINK && s.startIndex <= i.startOffset && s.endIndex >= i.endOffset - 1
567
561
  ) : null) {
568
- const { customRanges: s = [], ...a } = e, p = s.filter((l) => l.rangeType === M.HYPERLINK).map((l) => [l.startIndex, l.endIndex]).flat().sort((l, h) => l - h), f = {
562
+ const { customRanges: s = [], ...a } = e, u = s.filter((l) => l.rangeType === P.HYPERLINK).map((l) => [l.startIndex, l.endIndex]).flat().sort((l, h) => l - h), f = {
569
563
  ...a,
570
- customRanges: s.filter((l) => l.rangeType !== M.HYPERLINK)
564
+ customRanges: s.filter((l) => l.rangeType !== P.HYPERLINK)
571
565
  };
572
- for (let l = 0; l < p.length; l++)
573
- Ne(f, 1, p[l] - l);
566
+ for (let l = 0; l < u.length; l++)
567
+ Ue(f, 1, u[l] - l);
574
568
  return f;
575
569
  } else {
576
- const s = new Set(n.map((a) => a.rangeType === M.HYPERLINK && a.rangeId));
570
+ const s = new Set(n == null ? void 0 : n.map((a) => a.rangeType === P.HYPERLINK && a.rangeId));
577
571
  (c = e.customRanges) == null || c.forEach((a) => {
578
- if (a.rangeType === M.HYPERLINK && s.has(a.rangeId)) {
579
- const u = this._hyperLinkModel.getLink(t.getUnitId(), a.rangeId);
580
- if (u) {
581
- const p = J.generateRandomId();
572
+ var p;
573
+ if (a.rangeType === P.HYPERLINK) {
574
+ if (s.has(a.rangeId)) {
575
+ const u = this._hyperLinkModel.getLink(t.getUnitId(), a.rangeId);
576
+ if (u) {
577
+ const f = ve.generateRandomId();
578
+ this._hyperLinkModel.addLink(t.getUnitId(), {
579
+ payload: u.payload,
580
+ id: f
581
+ }), a.rangeId = f;
582
+ }
583
+ } else if ((p = e.payloads) != null && p[a.rangeId]) {
584
+ const u = e.payloads[a.rangeId];
582
585
  this._hyperLinkModel.addLink(t.getUnitId(), {
583
- payload: u.payload,
584
- id: p
585
- }), a.rangeId = p;
586
+ payload: u,
587
+ id: a.rangeId
588
+ });
586
589
  }
587
590
  }
588
591
  });
@@ -592,18 +595,18 @@ let F = class extends $ {
592
595
  }));
593
596
  }
594
597
  };
595
- F = en([
596
- Q(ee.Ready, F),
597
- K(0, m(dt)),
598
- K(1, T),
598
+ F = tn([
599
+ J(Q.Ready, F),
600
+ K(0, m(lt)),
601
+ K(1, $),
599
602
  K(2, m(H)),
600
603
  K(3, m(A))
601
604
  ], F);
602
- var xe = Object.defineProperty, tn = Object.getOwnPropertyDescriptor, nn = (e, t, i) => t in e ? xe(e, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[t] = i, rn = (e, t, i, n) => {
603
- for (var r = n > 1 ? void 0 : n ? tn(t, i) : t, o = e.length - 1, c; o >= 0; o--)
605
+ var xe = Object.defineProperty, nn = Object.getOwnPropertyDescriptor, rn = (e, t, i) => t in e ? xe(e, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[t] = i, on = (e, t, i, n) => {
606
+ for (var r = n > 1 ? void 0 : n ? nn(t, i) : t, o = e.length - 1, c; o >= 0; o--)
604
607
  (c = e[o]) && (r = (n ? c(t, i, r) : c(r)) || r);
605
608
  return n && r && xe(t, i, r), r;
606
- }, ge = (e, t) => (i, n) => t(i, n, e), Re = (e, t, i) => nn(e, typeof t != "symbol" ? t + "" : t, i);
609
+ }, he = (e, t) => (i, n) => t(i, n, e), Re = (e, t, i) => rn(e, typeof t != "symbol" ? t + "" : t, i);
607
610
  let W = class extends Te {
608
611
  constructor(e = { menu: {} }, t, i) {
609
612
  super(), this._config = e, this._injector = t, this._renderManagerSrv = i;
@@ -632,12 +635,12 @@ let W = class extends Te {
632
635
  });
633
636
  }
634
637
  };
635
- Re(W, "pluginName", pt);
638
+ Re(W, "pluginName", ft);
636
639
  Re(W, "type", _.UNIVER_DOC);
637
- W = rn([
638
- Ue(Ae),
639
- ge(1, m(me)),
640
- ge(2, te)
640
+ W = on([
641
+ $e(je),
642
+ he(1, m(me)),
643
+ he(2, ee)
641
644
  ], W);
642
645
  export {
643
646
  W as UniverDocsHyperLinkUIPlugin
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(u,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("@univerjs/docs-hyper-link"),require("@univerjs/engine-render"),require("@univerjs/ui"),require("@univerjs/design"),require("react"),require("@wendellhu/redi/react-bindings"),require("@univerjs/docs"),require("@univerjs/docs-ui"),require("rxjs"),require("clsx")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","@univerjs/docs-hyper-link","@univerjs/engine-render","@univerjs/ui","@univerjs/design","react","@wendellhu/redi/react-bindings","@univerjs/docs","@univerjs/docs-ui","rxjs","clsx"],o):(u=typeof globalThis<"u"?globalThis:u||self,o(u.UniverDocsHyperLinkUi={},u.UniverCore,u["@wendellhu/redi"],u.UniverDocsHyperLink,u.UniverEngineRender,u.UniverUi,u.UniverDesign,u.React,u["@wendellhu/redi/react-bindings"],u.UniverDocs,u.UniverDocsUi,u.rxjs,u.clsx))})(this,function(u,o,v,O,x,L,E,a,g,I,Y,$,z){"use strict";var We=Object.defineProperty;var ze=(u,o,v)=>o in u?We(u,o,{enumerable:!0,configurable:!0,writable:!0,value:v}):u[o]=v;var U=(u,o,v)=>ze(u,typeof o!="symbol"?o+"":o,v);const he="DOC_HYPER_LINK_UI_PLUGIN";var C=function(){return C=Object.assign||function(e){for(var n,i=1,t=arguments.length;i<t;i++){n=arguments[i];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},C.apply(this,arguments)},me=function(e,n){var i={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(i[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,t=Object.getOwnPropertySymbols(e);r<t.length;r++)n.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(i[t[r]]=e[t[r]]);return i},T=a.forwardRef(function(e,n){var i=e.icon,t=e.id,r=e.className,s=e.extend,c=me(e,["icon","id","className","extend"]),d="univerjs-icon univerjs-icon-".concat(t," ").concat(r||"").trim(),l=a.useRef("_".concat(Ie()));return G(i,"".concat(t),{defIds:i.defIds,idSuffix:l.current},C({ref:n,className:d},c),s)});function G(e,n,i,t,r){return a.createElement(e.tag,C(C({key:n},ge(e,i,r)),t),(Le(e,i).children||[]).map(function(s,c){return G(s,"".concat(n,"-").concat(e.tag,"-").concat(c),i,void 0,r)}))}function ge(e,n,i){var t=C({},e.attrs);i!=null&&i.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=i.colorChannel1);var r=n.defIds;return!r||r.length===0||(e.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+n.idSuffix),Object.entries(t).forEach(function(s){var c=s[0],d=s[1];typeof d=="string"&&(t[c]=d.replace(/url\(#(.*)\)/,"url(#$1".concat(n.idSuffix,")")))})),t}function Le(e,n){var i,t=n.defIds;return!t||t.length===0?e:e.tag==="defs"&&(!((i=e.children)===null||i===void 0)&&i.length)?C(C({},e),{children:e.children.map(function(r){return typeof r.attrs.id=="string"&&t&&t.indexOf(r.attrs.id)>-1?C(C({},r),{attrs:C(C({},r.attrs),{id:r.attrs.id+n.idSuffix})}):r})}):e}function Ie(){return Math.random().toString(36).substring(2,8)}T.displayName="UniverIcon";var Ce={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},X=a.forwardRef(function(e,n){return a.createElement(T,Object.assign({},e,{id:"close-single",ref:n,icon:Ce}))});X.displayName="CloseSingle";var ye={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.02547 12.4251C5.15328 13.7417 6.26305 14.7708 7.61318 14.7708H12.6132C14.0491 14.7708 15.2132 13.6067 15.2132 12.1708V6.1708C15.2132 4.78586 14.1303 3.65383 12.7651 3.57517C12.6373 2.25858 11.5275 1.22949 10.1774 1.22949H5.17739C3.74145 1.22949 2.57739 2.39355 2.57739 3.82949V9.82949C2.57739 11.2144 3.66024 12.3465 5.02547 12.4251ZM11.5535 3.5708H7.61318C6.17724 3.5708 5.01318 4.73486 5.01318 6.1708V11.22C4.31736 11.1387 3.77739 10.5471 3.77739 9.82949V3.82949C3.77739 3.05629 4.40419 2.42949 5.17739 2.42949H10.1774C10.8622 2.42949 11.4322 2.92119 11.5535 3.5708ZM14.0132 6.1708C14.0132 5.3976 13.3864 4.7708 12.6132 4.7708H7.61318C6.83998 4.7708 6.21318 5.3976 6.21318 6.1708V12.1708C6.21318 12.944 6.83998 13.5708 7.61318 13.5708H12.6132C13.3864 13.5708 14.0132 12.944 14.0132 12.1708V6.1708Z",fillRule:"evenodd",clipRule:"evenodd"}}]},J=a.forwardRef(function(e,n){return a.createElement(T,Object.assign({},e,{id:"copy-single",ref:n,icon:ye}))});J.displayName="CopySingle";var _e={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.9564 2.91332C4.91407 1.87102 3.22413 1.87101 2.18182 2.91333L2.18182 2.91333C1.13953 3.95567 1.13952 5.6456 2.18182 6.68791L8.27777 12.7838C9.72408 14.2302 12.069 14.2302 13.5154 12.7839L13.0911 12.3596L13.5154 12.7839C14.9617 11.3375 14.9617 8.99257 13.5154 7.54626L8.39476 2.42566C8.16044 2.19134 7.78054 2.19134 7.54623 2.42566C7.31191 2.65997 7.31191 3.03987 7.54623 3.27419L12.6668 8.39479L13.0911 7.97052L12.6668 8.39479C13.6445 9.37247 13.6445 10.9576 12.6668 11.9353L13.0399 12.3084L12.6668 11.9353C11.6891 12.913 10.104 12.913 9.1263 11.9353L3.03035 5.83938C2.45668 5.26571 2.45667 4.33556 3.03036 3.76184C3.60403 3.18818 4.53416 3.18817 5.10788 3.76185C5.10788 3.76186 5.10788 3.76186 5.10789 3.76186L11.2038 9.8578L11.601 9.46061L11.2038 9.8578C11.3735 10.0275 11.3735 10.3026 11.2038 10.4723L11.2038 10.4723C11.0341 10.642 10.759 10.642 10.5893 10.4723L5.46874 5.35171C5.23442 5.1174 4.85452 5.1174 4.62021 5.35171C4.38589 5.58602 4.38589 5.96592 4.62021 6.20024L9.74078 11.3208C10.3791 11.9591 11.414 11.9591 12.0523 11.3208C12.0523 11.3208 12.0523 11.3208 12.0523 11.3208M12.0523 11.3208C12.6907 10.6825 12.6906 9.64757 12.0523 9.00927L5.95641 2.91333L5.9564 2.91332",fillRule:"evenodd",clipRule:"evenodd"}}]},Z=a.forwardRef(function(e,n){return a.createElement(T,Object.assign({},e,{id:"link-single",ref:n,icon:_e}))});Z.displayName="LinkSingle";var ke={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.5935 3.47302C11.6354 2.51492 10.082 2.51492 9.12388 3.47302L7.83534 4.76157C7.60102 4.99588 7.22112 4.99588 6.98681 4.76157 6.75249 4.52725 6.75249 4.14735 6.98681 3.91304L8.27535 2.62449C9.70209 1.19776 12.0153 1.19776 13.442 2.62449 14.8688 4.05123 14.8688 6.36442 13.442 7.79116L12.1535 9.0797C11.9192 9.31402 11.5393 9.31402 11.3049 9.0797 11.0706 8.84539 11.0706 8.46549 11.3049 8.23117L12.5935 6.94263C13.5516 5.98452 13.5516 4.43113 12.5935 3.47302zM3.40637 12.6606C2.44827 11.7025 2.44827 10.1491 3.40637 9.19102L4.69492 7.90248C4.92923 7.66816 4.92923 7.28826 4.69492 7.05395 4.4606 6.81963 4.0807 6.81963 3.84639 7.05395L2.55784 8.34249C1.13111 9.76923 1.13111 12.0824 2.55784 13.5092 3.98458 14.9359 6.29777 14.9359 7.72451 13.5092L9.01305 12.2206C9.24737 11.9863 9.24737 11.6064 9.01305 11.3721 8.77874 11.1378 8.39884 11.1378 8.16452 11.3721L6.87598 12.6606C5.91787 13.6187 4.36448 13.6187 3.40637 12.6606zM3.5852 2.80332C3.35088 2.569 2.97098 2.569 2.73667 2.80332 2.50235 3.03763 2.50235 3.41753 2.73667 3.65185L12.4151 13.3302C12.6494 13.5646 13.0293 13.5646 13.2636 13.3302 13.4979 13.0959 13.4979 12.716 13.2636 12.4817L3.5852 2.80332z"}}]},Q=a.forwardRef(function(e,n){return a.createElement(T,Object.assign({},e,{id:"unlink-single",ref:n,icon:ke}))});Q.displayName="UnlinkSingle";var Se={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.6551 1.98906C11.7476 1.08113 10.2757 1.08149 9.3686 1.98987L4.82542 6.53955C4.75087 6.61421 4.69336 6.70411 4.65682 6.80309L3.2461 10.625C3.16506 10.8446 3.21909 11.0912 3.3845 11.2568C3.54991 11.4224 3.79651 11.4767 4.01616 11.3959L7.85031 9.98517C7.94979 9.94856 8.04014 9.89077 8.11508 9.81579L12.6552 5.27327C13.5618 4.36621 13.5618 2.89607 12.6551 1.98906ZM10.2177 2.83779C10.6562 2.39869 11.3677 2.39851 11.8064 2.8374C12.2447 3.27584 12.2447 3.9865 11.8065 4.42497L7.3392 8.89457L4.82213 9.82068L5.74706 7.31487L10.2177 2.83779Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.79238 13.2999C1.46101 13.2999 1.19238 13.5685 1.19238 13.8999C1.19238 14.2313 1.46101 14.4999 1.79238 14.4999H14.4924C14.8238 14.4999 15.0924 14.2313 15.0924 13.8999C15.0924 13.5685 14.8238 13.2999 14.4924 13.2999H1.79238Z"}}]},ee=a.forwardRef(function(e,n){return a.createElement(T,Object.assign({},e,{id:"write-single",ref:n,icon:Se}))});ee.displayName="WriteSingle";const ne={type:o.CommandType.COMMAND,id:"docs.command.delete-hyper-link",handler(e,n){if(!n)return!1;const{unitId:i,linkId:t}=n,r=e.get(o.ICommandService);if(!e.get(O.DocHyperLinkModel).getLink(i,t))return!1;const d=I.deleteCustomRangeFactory(e,{unitId:i,rangeId:t});return d?r.executeCommand(d.id,d.params):!1}},te=e=>{var h;const n=e.get(I.TextSelectionManagerService),i=e.get(o.IUniverInstanceService),t=n.getActiveRange(),s=e.get(x.IRenderManagerService).getCurrent(),c=s==null?void 0:s.with(I.DocSkeletonManagerService).getSkeleton(),d=c==null?void 0:c.getViewModel().getEditArea();if(d===x.DocumentEditArea.FOOTER||d===x.DocumentEditArea.HEADER)return!0;const l=i.getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC);if(!l||!t||t.collapsed)return!0;const f=(h=l.getBody())==null?void 0:h.paragraphs;if(!f)return!0;for(let m=0,p=f.length;m<p;m++){const y=f[m];if(t.startOffset<=y.startIndex&&t.endOffset>y.startIndex)return!0;if(y.startIndex>t.endOffset)break}return!1},R={type:o.CommandType.OPERATION,id:"docs.operation.show-hyper-link-edit-popup",handler(e,n){const i=n==null?void 0:n.link;return te(e)&&!i?!1:(e.get(P).showEditPopup(i),!0)}},M={docLink:"univer-doc-link",docLinkType:"univer-doc-link-type",docLinkContent:"univer-doc-link-content",docLinkContentError:"univer-doc-link-content-error",docLinkUrl:"univer-doc-link-url",docLinkOperations:"univer-doc-link-operations",docLinkOperation:"univer-doc-link-operation",docLinkOperationError:"univer-doc-link-operation-error"},A=()=>{const e=g.useDependency(P),n=g.useDependency(O.DocHyperLinkModel),i=g.useDependency(o.ICommandService),t=g.useDependency(L.IMessageService),r=g.useDependency(o.LocaleService),s=L.useObservable(e.showingLink$);if(!s)return null;const{unitId:c,linkId:d}=s,l=n.getLink(c,d);return l?a.createElement("div",{className:M.docLink,onClick:()=>{e.hideInfoPopup()}},a.createElement("div",{className:z(M.docLinkContent),onClick:()=>window.open(l.payload)},a.createElement("div",{className:M.docLinkType},a.createElement(Z,null)),a.createElement(E.Tooltip,{showIfEllipsis:!0,title:l.payload},a.createElement("span",{className:M.docLinkUrl},l.payload))),a.createElement("div",{className:M.docLinkOperations},a.createElement("div",{className:z(M.docLinkOperation),onClick:()=>{navigator.clipboard.writeText(l.payload),t.show({content:r.t("docLink.info.coped"),type:E.MessageType.Info})}},a.createElement(E.Tooltip,{placement:"bottom",title:r.t("docLink.info.copy")},a.createElement(J,null))),a.createElement("div",{className:M.docLinkOperation,onClick:()=>{i.executeCommand(R.id,{link:s})}},a.createElement(E.Tooltip,{placement:"bottom",title:r.t("docLink.info.edit")},a.createElement(ee,null))),a.createElement("div",{className:M.docLinkOperation,onClick:()=>{i.executeCommand(ne.id,{unitId:c,linkId:l.id})}},a.createElement(E.Tooltip,{placement:"bottom",title:r.t("docLink.info.cancel")},a.createElement(Q,null))))):null};A.componentKey="univer.doc.link-info-popup";var Ee=Object.defineProperty,Oe=Object.getOwnPropertyDescriptor,Me=(e,n,i,t)=>{for(var r=t>1?void 0:t?Oe(n,i):n,s=e.length-1,c;s>=0;s--)(c=e[s])&&(r=(t?c(n,i,r):c(r))||r);return t&&r&&Ee(n,i,r),r},b=(e,n)=>(i,t)=>n(i,t,e);let P=class extends o.Disposable{constructor(n,i,t,r,s){super();U(this,"_editingLink$",new $.BehaviorSubject(null));U(this,"_showingLink$",new $.BehaviorSubject(null));U(this,"editingLink$",this._editingLink$.asObservable());U(this,"showingLink$",this._showingLink$.asObservable());U(this,"_editPopup",null);U(this,"_infoPopup",null);this._docCanvasPopupManagerService=n,this._textSelectionManagerService=i,this._docHyperLinkModel=t,this._univerInstanceService=r,this._commandService=s}get editing(){return this._editingLink$.value}get showing(){return this._showingLink$.value}showEditPopup(n){var t,r;this._editPopup&&this._editPopup.dispose(),this._editingLink$.next(n);let i=this._textSelectionManagerService.getActiveRange();if(n){const{unitId:s,rangeIndex:c}=n,d=this._univerInstanceService.getUnit(s,o.UniverInstanceType.UNIVER_DOC),l=(r=(t=d==null?void 0:d.getBody())==null?void 0:t.customRanges)==null?void 0:r[c];l&&(i={collapsed:!1,startOffset:l.startIndex,endOffset:l.endIndex+1},this._textSelectionManagerService.replaceTextRanges([{startOffset:l.startIndex,endOffset:l.endIndex+1}]))}return i?(this._editPopup=this._docCanvasPopupManagerService.attachPopupToRange(i,{componentKey:B.componentKey,direction:"bottom"}),this._editPopup):null}hideEditPopup(){var n;this._editingLink$.next(null),(n=this._editPopup)==null||n.dispose()}showInfoPopup(n){var l,f,h,m;const{linkId:i,unitId:t,rangeIndex:r}=n;if(((l=this.showing)==null?void 0:l.linkId)===i&&((f=this.showing)==null?void 0:f.unitId)===t&&this.showing.rangeIndex===r)return;this._infoPopup&&this._infoPopup.dispose();const s=this._docHyperLinkModel.getLink(t,i),c=this._univerInstanceService.getUnit(t,o.UniverInstanceType.UNIVER_DOC);if(!c||!s)return;const d=(m=(h=c.getBody())==null?void 0:h.customRanges)==null?void 0:m[r];if(this._showingLink$.next({unitId:t,linkId:i,rangeIndex:r}),!!d)return this._infoPopup=this._docCanvasPopupManagerService.attachPopupToRange({collapsed:!1,startOffset:d.startIndex,endOffset:d.endIndex+1},{componentKey:A.componentKey,direction:"top",closeOnSelfTarget:!0,onClickOutside:()=>{this.hideInfoPopup()}}),this._infoPopup}hideInfoPopup(){var n;this._showingLink$.next(null),(n=this._infoPopup)==null||n.dispose()}};P=Me([b(0,v.Inject(Y.DocCanvasPopManagerService)),b(1,v.Inject(I.TextSelectionManagerService)),b(2,v.Inject(O.DocHyperLinkModel)),b(3,o.IUniverInstanceService),b(4,o.ICommandService)],P);const ie={type:o.CommandType.COMMAND,id:"docs.command.add-hyper-link",async handler(e,n){if(!n)return!1;const{payload:i,unitId:t}=n,r=e.get(o.ICommandService),s=o.Tools.generateRandomId(),c=I.addCustomRangeBySelectionFactory(e,{rangeId:s,rangeType:o.CustomRangeType.HYPERLINK});if(c){const d={id:O.AddDocHyperLinkMutation.id,params:{unitId:t,link:{payload:i,id:s}}};return(await o.sequenceExecuteAsync([d,c],r)).result}return!1}},re={id:"docs.command.update-hyper-link",type:o.CommandType.COMMAND,handler(e,n){return n?e.get(o.ICommandService).executeCommand(O.UpdateDocHyperLinkMutation.id,n):!1}},w={docsLinkEdit:"univer-docs-link-edit",docsLinkEditTitle:"univer-docs-link-edit-title",docsLinkEditClose:"univer-docs-link-edit-close",docsLinkEditButtons:"univer-docs-link-edit-buttons",docsLinkEditButton:"univer-docs-link-edit-button"};function Pe(e){return/^[a-zA-Z]+:\/\//.test(e)}function De(e){return/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(e)}function xe(e){return Pe(e)?e:De(e)?`mailto://${e}`:`https://${e}`}const B=()=>{const e=g.useDependency(P),n=g.useDependency(o.LocaleService),i=g.useDependency(O.DocHyperLinkModel),t=g.useObservable(e.editingLink$),r=g.useDependency(o.ICommandService),s=g.useDependency(o.IUniverInstanceService),c=g.useDependency(x.ITextSelectionRenderManager),d=g.useDependency(I.TextSelectionManagerService),[l,f]=a.useState(""),[h,m]=a.useState(!1),p=o.Tools.isLegalUrl(l),y=t?s.getUnit(t.unitId,o.UniverInstanceType.UNIVER_DOC):s.getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC);a.useEffect(()=>{var ue,pe,ve,fe;if(t){const S=t?i.getLink(t.unitId,t.linkId):null;f((ue=S==null?void 0:S.payload)!=null?ue:"");return}const _=d.getActiveRange();if(!_)return;const H=s.getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC),le=(ve=(pe=H==null?void 0:H.getBody())==null?void 0:pe.customRanges)==null?void 0:ve.find(S=>Math.max(_.startOffset,S.startIndex)<=Math.min(_.endOffset-1,S.endIndex));if(H&&le){const S=i.getLink(H.getUnitId(),le.rangeId);f((fe=S==null?void 0:S.payload)!=null?fe:"")}},[t,i,d,s]),a.useEffect(()=>(c.blur(),()=>{c.focus()}),[c]);const k=()=>{e.hideEditPopup()},D=()=>{if(m(!0),!p||!y)return;const _=xe(l);t?r.executeCommand(re.id,{unitId:y.getUnitId(),payload:_,linkId:t.linkId}):r.executeCommand(ie.id,{unitId:y.getUnitId(),payload:_}),e.hideEditPopup()};if(y)return a.createElement("div",{className:w.docsLinkEdit},a.createElement("div",{className:w.docsLinkEditTitle},a.createElement("span",null,n.t("docLink.edit.title")),a.createElement(X,{className:w.docsLinkEditClose,onClick:k})),a.createElement("div",null,a.createElement(E.FormLayout,{label:n.t("docLink.edit.address"),error:h&&!p?n.t("docLink.edit.addressError"):""},a.createElement(E.Input,{value:l,onChange:f,autoFocus:!0}))),a.createElement("div",{className:w.docsLinkEditButtons},a.createElement(E.Button,{className:w.docsLinkEditButton,onClick:k},n.t("docLink.edit.cancel")),a.createElement(E.Button,{disabled:!l,className:w.docsLinkEditButton,type:"primary",onClick:D},n.t("docLink.edit.confirm"))))};B.componentKey="docs-hyper-link-edit";const oe="doc-hyper-link-icon";function Ue(e){return{id:R.id,group:L.MenuGroup.TOOLBAR_LAYOUT,type:L.MenuItemType.BUTTON,icon:oe,title:"docLink.menu.tooltip",tooltip:"docLink.menu.tooltip",positions:[L.MenuPosition.TOOLBAR_START,L.MenuPosition.CONTEXT_MENU],hidden$:L.getMenuHiddenObservable(e,o.UniverInstanceType.UNIVER_DOC),disabled$:new $.Observable(function(n){const t=e.get(I.TextSelectionManagerService).textSelection$.pipe($.debounceTime(16)).subscribe(()=>{n.next(te(e))});return()=>{t.unsubscribe()}})}}const Te={id:R.id,binding:L.MetaKeys.CTRL_COMMAND|L.KeyCode.K,description:"docLink.menu.tooltip",preconditions:Y.whenDocAndEditorFocused};var we=Object.defineProperty,be=Object.getOwnPropertyDescriptor,je=(e,n,i,t)=>{for(var r=t>1?void 0:t?be(n,i):n,s=e.length-1,c;s>=0;s--)(c=e[s])&&(r=(t?c(n,i,r):c(r))||r);return t&&r&&we(n,i,r),r},j=(e,n)=>(i,t)=>n(i,t,e);let N=class extends o.Disposable{constructor(e,n,i,t,r,s){super(),this._config=e,this._componentManager=n,this._commandService=i,this._menuService=t,this._injector=r,this._shortcutService=s,this._initComponents(),this._initCommands(),this._initMenus(),this._initShortcut()}_initComponents(){[[B,B.componentKey],[A,A.componentKey],[Z,oe]].forEach(([e,n])=>{this._componentManager.register(n,e)})}_initCommands(){[ie,re,ne,R].forEach(e=>{this._commandService.registerCommand(e)})}_initShortcut(){[Te].forEach(e=>{this._shortcutService.registerShortcut(e)})}_initMenus(){[Ue].forEach(e=>{this.disposeWithMe(this._menuService.addMenuItem(e(this._injector),{}))})}};N=je([o.OnLifecycle(o.LifecycleStages.Starting,N),j(1,v.Inject(L.ComponentManager)),j(2,o.ICommandService),j(3,L.IMenuService),j(4,v.Inject(v.Injector)),j(5,L.IShortcutService)],N);var Ne=Object.defineProperty,He=Object.getOwnPropertyDescriptor,$e=(e,n,i,t)=>{for(var r=t>1?void 0:t?He(n,i):n,s=e.length-1,c;s>=0;s--)(c=e[s])&&(r=(t?c(n,i,r):c(r))||r);return t&&r&&Ne(n,i,r),r},K=(e,n)=>(i,t)=>n(i,t,e);let V=class extends o.Disposable{constructor(e,n,i,t){super(),this._commandService=e,this._univerInstanceService=n,this._docHyperLinkService=i,this._renderMangerService=t,this._initSelectionChange()}_initSelectionChange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var n,i;if(e.id===I.SetTextSelectionsOperation.id){const t=e.params,{unitId:r,ranges:s}=t,c=this._renderMangerService.getRenderById(r),d=c==null?void 0:c.with(I.DocSkeletonManagerService).getSkeleton();if((d==null?void 0:d.getViewModel().getEditArea())!==x.DocumentEditArea.BODY){this._docHyperLinkService.hideInfoPopup(),this._docHyperLinkService.hideEditPopup();return}const f=this._univerInstanceService.getUnit(r,o.UniverInstanceType.UNIVER_DOC),h=s[0];if(h&&f){const{startOffset:m,endOffset:p,collapsed:y}=h,k=(n=f.getBody())==null?void 0:n.customRanges;if(y){const D=(i=k==null?void 0:k.findIndex(_=>_.startIndex<m&&_.endIndex>p-1))!=null?i:-1;if(D>-1){const _=k[D];this._docHyperLinkService.showInfoPopup({unitId:r,linkId:_.rangeId,rangeIndex:D});return}}else if(k!=null&&k.find(D=>D.startIndex<=m&&D.endIndex>=p-1))return}this._docHyperLinkService.hideInfoPopup(),this._docHyperLinkService.hideEditPopup()}}))}};V=$e([o.OnLifecycle(o.LifecycleStages.Ready,V),K(0,o.ICommandService),K(1,o.IUniverInstanceService),K(2,v.Inject(P)),K(3,x.IRenderManagerService)],V);var Re=Object.defineProperty,Ae=Object.getOwnPropertyDescriptor,Be=(e,n,i,t)=>{for(var r=t>1?void 0:t?Ae(n,i):n,s=e.length-1,c;s>=0;s--)(c=e[s])&&(r=(t?c(n,i,r):c(r))||r);return t&&r&&Re(n,i,r),r},se=(e,n)=>(i,t)=>n(i,t,e);let W=class extends o.Disposable{constructor(e,n,i){super(),this._context=e,this._docInterceptorService=n,this._hyperLinkService=i,this._init()}_init(){this._docInterceptorService.intercept(I.DOC_INTERCEPTOR_POINT.CUSTOM_RANGE,{handler:(e,n,i)=>{if(!e)return i(e);const{unitId:t}=n,r=this._hyperLinkService.editing,{linkId:s,unitId:c}=r||{},d=c===t&&e.rangeId===s;return i({...e,active:d})}})}};W=Be([se(1,v.Inject(I.DocInterceptorService)),se(2,v.Inject(P))],W);var Ke=Object.defineProperty,Ve=Object.getOwnPropertyDescriptor,Fe=(e,n,i,t)=>{for(var r=t>1?void 0:t?Ve(n,i):n,s=e.length-1,c;s>=0;s--)(c=e[s])&&(r=(t?c(n,i,r):c(r))||r);return t&&r&&Ke(n,i,r),r},F=(e,n)=>(i,t)=>n(i,t,e);let q=class extends o.Disposable{constructor(e,n,i,t){super(),this._docClipboardService=e,this._univerInstanceService=n,this._hyperLinkModel=i,this._textSelectionManagerService=t,this._initClipboard()}_initClipboard(){this.disposeWithMe(this._docClipboardService.addClipboardHook({onBeforePaste:e=>{var s,c;const n=this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC);if(!n)return e;const i=this._textSelectionManagerService.getActiveRange(),t=(s=n.getBody())==null?void 0:s.customRanges;if(!(t!=null&&t.length))return e;if(i?t.find(d=>d.rangeType===o.CustomRangeType.HYPERLINK&&d.startIndex<=i.startOffset&&d.endIndex>=i.endOffset-1):null){const{customRanges:d=[],...l}=e,h=d.filter(p=>p.rangeType===o.CustomRangeType.HYPERLINK).map(p=>[p.startIndex,p.endIndex]).flat().sort((p,y)=>p-y),m={...l,customRanges:d.filter(p=>p.rangeType!==o.CustomRangeType.HYPERLINK)};for(let p=0;p<h.length;p++)o.updateAttributeByDelete(m,1,h[p]-p);return m}else{const d=new Set(t.map(l=>l.rangeType===o.CustomRangeType.HYPERLINK&&l.rangeId));(c=e.customRanges)==null||c.forEach(l=>{if(l.rangeType===o.CustomRangeType.HYPERLINK&&d.has(l.rangeId)){const f=this._hyperLinkModel.getLink(n.getUnitId(),l.rangeId);if(f){const h=o.Tools.generateRandomId();this._hyperLinkModel.addLink(n.getUnitId(),{payload:f.payload,id:h}),l.rangeId=h}}})}return e}}))}};q=Fe([o.OnLifecycle(o.LifecycleStages.Ready,q),F(0,v.Inject(Y.IDocClipboardService)),F(1,o.IUniverInstanceService),F(2,v.Inject(O.DocHyperLinkModel)),F(3,v.Inject(I.TextSelectionManagerService))],q);var ce=Object.defineProperty,qe=Object.getOwnPropertyDescriptor,Ye=(e,n,i)=>n in e?ce(e,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[n]=i,Ze=(e,n,i,t)=>{for(var r=t>1?void 0:t?qe(n,i):n,s=e.length-1,c;s>=0;s--)(c=e[s])&&(r=(t?c(n,i,r):c(r))||r);return t&&r&&ce(n,i,r),r},ae=(e,n)=>(i,t)=>n(i,t,e),de=(e,n,i)=>Ye(e,typeof n!="symbol"?n+"":n,i);u.UniverDocsHyperLinkUIPlugin=class extends o.Plugin{constructor(n={menu:{}},i,t){super(),this._config=n,this._injector=i,this._renderManagerSrv=t}onStarting(n){[[P],[N,{useFactory:()=>this._injector.createInstance(N,this._config)}],[V],[q]].forEach(t=>{n.add(t)})}onRendered(){this._initRenderModule()}_initRenderModule(){[W].forEach(n=>{this._renderManagerSrv.registerRenderModule(o.UniverInstanceType.UNIVER_DOC,n)})}},de(u.UniverDocsHyperLinkUIPlugin,"pluginName",he),de(u.UniverDocsHyperLinkUIPlugin,"type",o.UniverInstanceType.UNIVER_DOC),u.UniverDocsHyperLinkUIPlugin=Ze([o.DependentOn(O.UniverDocsHyperLinkPlugin),ae(1,v.Inject(v.Injector)),ae(2,x.IRenderManagerService)],u.UniverDocsHyperLinkUIPlugin),Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})});
1
+ (function(u,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("@univerjs/docs-hyper-link"),require("@univerjs/engine-render"),require("@univerjs/ui"),require("@univerjs/design"),require("react"),require("@wendellhu/redi/react-bindings"),require("@univerjs/docs"),require("@univerjs/docs-ui"),require("rxjs"),require("clsx")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","@univerjs/docs-hyper-link","@univerjs/engine-render","@univerjs/ui","@univerjs/design","react","@wendellhu/redi/react-bindings","@univerjs/docs","@univerjs/docs-ui","rxjs","clsx"],o):(u=typeof globalThis<"u"?globalThis:u||self,o(u.UniverDocsHyperLinkUi={},u.UniverCore,u["@wendellhu/redi"],u.UniverDocsHyperLink,u.UniverEngineRender,u.UniverUi,u.UniverDesign,u.React,u["@wendellhu/redi/react-bindings"],u.UniverDocs,u.UniverDocsUi,u.rxjs,u.clsx))})(this,function(u,o,v,O,U,L,E,a,g,I,Y,H,z){"use strict";var We=Object.defineProperty;var ze=(u,o,v)=>o in u?We(u,o,{enumerable:!0,configurable:!0,writable:!0,value:v}):u[o]=v;var x=(u,o,v)=>ze(u,typeof o!="symbol"?o+"":o,v);const he="DOC_HYPER_LINK_UI_PLUGIN";var C=function(){return C=Object.assign||function(e){for(var n,i=1,t=arguments.length;i<t;i++){n=arguments[i];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},C.apply(this,arguments)},me=function(e,n){var i={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(i[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,t=Object.getOwnPropertySymbols(e);r<t.length;r++)n.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(i[t[r]]=e[t[r]]);return i},w=a.forwardRef(function(e,n){var i=e.icon,t=e.id,r=e.className,s=e.extend,c=me(e,["icon","id","className","extend"]),d="univerjs-icon univerjs-icon-".concat(t," ").concat(r||"").trim(),l=a.useRef("_".concat(Ie()));return G(i,"".concat(t),{defIds:i.defIds,idSuffix:l.current},C({ref:n,className:d},c),s)});function G(e,n,i,t,r){return a.createElement(e.tag,C(C({key:n},ge(e,i,r)),t),(Le(e,i).children||[]).map(function(s,c){return G(s,"".concat(n,"-").concat(e.tag,"-").concat(c),i,void 0,r)}))}function ge(e,n,i){var t=C({},e.attrs);i!=null&&i.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=i.colorChannel1);var r=n.defIds;return!r||r.length===0||(e.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+n.idSuffix),Object.entries(t).forEach(function(s){var c=s[0],d=s[1];typeof d=="string"&&(t[c]=d.replace(/url\(#(.*)\)/,"url(#$1".concat(n.idSuffix,")")))})),t}function Le(e,n){var i,t=n.defIds;return!t||t.length===0?e:e.tag==="defs"&&(!((i=e.children)===null||i===void 0)&&i.length)?C(C({},e),{children:e.children.map(function(r){return typeof r.attrs.id=="string"&&t&&t.indexOf(r.attrs.id)>-1?C(C({},r),{attrs:C(C({},r.attrs),{id:r.attrs.id+n.idSuffix})}):r})}):e}function Ie(){return Math.random().toString(36).substring(2,8)}w.displayName="UniverIcon";var Ce={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},X=a.forwardRef(function(e,n){return a.createElement(w,Object.assign({},e,{id:"close-single",ref:n,icon:Ce}))});X.displayName="CloseSingle";var ye={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.02547 12.4251C5.15328 13.7417 6.26305 14.7708 7.61318 14.7708H12.6132C14.0491 14.7708 15.2132 13.6067 15.2132 12.1708V6.1708C15.2132 4.78586 14.1303 3.65383 12.7651 3.57517C12.6373 2.25858 11.5275 1.22949 10.1774 1.22949H5.17739C3.74145 1.22949 2.57739 2.39355 2.57739 3.82949V9.82949C2.57739 11.2144 3.66024 12.3465 5.02547 12.4251ZM11.5535 3.5708H7.61318C6.17724 3.5708 5.01318 4.73486 5.01318 6.1708V11.22C4.31736 11.1387 3.77739 10.5471 3.77739 9.82949V3.82949C3.77739 3.05629 4.40419 2.42949 5.17739 2.42949H10.1774C10.8622 2.42949 11.4322 2.92119 11.5535 3.5708ZM14.0132 6.1708C14.0132 5.3976 13.3864 4.7708 12.6132 4.7708H7.61318C6.83998 4.7708 6.21318 5.3976 6.21318 6.1708V12.1708C6.21318 12.944 6.83998 13.5708 7.61318 13.5708H12.6132C13.3864 13.5708 14.0132 12.944 14.0132 12.1708V6.1708Z",fillRule:"evenodd",clipRule:"evenodd"}}]},J=a.forwardRef(function(e,n){return a.createElement(w,Object.assign({},e,{id:"copy-single",ref:n,icon:ye}))});J.displayName="CopySingle";var _e={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.9564 2.91332C4.91407 1.87102 3.22413 1.87101 2.18182 2.91333L2.18182 2.91333C1.13953 3.95567 1.13952 5.6456 2.18182 6.68791L8.27777 12.7838C9.72408 14.2302 12.069 14.2302 13.5154 12.7839L13.0911 12.3596L13.5154 12.7839C14.9617 11.3375 14.9617 8.99257 13.5154 7.54626L8.39476 2.42566C8.16044 2.19134 7.78054 2.19134 7.54623 2.42566C7.31191 2.65997 7.31191 3.03987 7.54623 3.27419L12.6668 8.39479L13.0911 7.97052L12.6668 8.39479C13.6445 9.37247 13.6445 10.9576 12.6668 11.9353L13.0399 12.3084L12.6668 11.9353C11.6891 12.913 10.104 12.913 9.1263 11.9353L3.03035 5.83938C2.45668 5.26571 2.45667 4.33556 3.03036 3.76184C3.60403 3.18818 4.53416 3.18817 5.10788 3.76185C5.10788 3.76186 5.10788 3.76186 5.10789 3.76186L11.2038 9.8578L11.601 9.46061L11.2038 9.8578C11.3735 10.0275 11.3735 10.3026 11.2038 10.4723L11.2038 10.4723C11.0341 10.642 10.759 10.642 10.5893 10.4723L5.46874 5.35171C5.23442 5.1174 4.85452 5.1174 4.62021 5.35171C4.38589 5.58602 4.38589 5.96592 4.62021 6.20024L9.74078 11.3208C10.3791 11.9591 11.414 11.9591 12.0523 11.3208C12.0523 11.3208 12.0523 11.3208 12.0523 11.3208M12.0523 11.3208C12.6907 10.6825 12.6906 9.64757 12.0523 9.00927L5.95641 2.91333L5.9564 2.91332",fillRule:"evenodd",clipRule:"evenodd"}}]},Z=a.forwardRef(function(e,n){return a.createElement(w,Object.assign({},e,{id:"link-single",ref:n,icon:_e}))});Z.displayName="LinkSingle";var ke={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.5935 3.47302C11.6354 2.51492 10.082 2.51492 9.12388 3.47302L7.83534 4.76157C7.60102 4.99588 7.22112 4.99588 6.98681 4.76157 6.75249 4.52725 6.75249 4.14735 6.98681 3.91304L8.27535 2.62449C9.70209 1.19776 12.0153 1.19776 13.442 2.62449 14.8688 4.05123 14.8688 6.36442 13.442 7.79116L12.1535 9.0797C11.9192 9.31402 11.5393 9.31402 11.3049 9.0797 11.0706 8.84539 11.0706 8.46549 11.3049 8.23117L12.5935 6.94263C13.5516 5.98452 13.5516 4.43113 12.5935 3.47302zM3.40637 12.6606C2.44827 11.7025 2.44827 10.1491 3.40637 9.19102L4.69492 7.90248C4.92923 7.66816 4.92923 7.28826 4.69492 7.05395 4.4606 6.81963 4.0807 6.81963 3.84639 7.05395L2.55784 8.34249C1.13111 9.76923 1.13111 12.0824 2.55784 13.5092 3.98458 14.9359 6.29777 14.9359 7.72451 13.5092L9.01305 12.2206C9.24737 11.9863 9.24737 11.6064 9.01305 11.3721 8.77874 11.1378 8.39884 11.1378 8.16452 11.3721L6.87598 12.6606C5.91787 13.6187 4.36448 13.6187 3.40637 12.6606zM3.5852 2.80332C3.35088 2.569 2.97098 2.569 2.73667 2.80332 2.50235 3.03763 2.50235 3.41753 2.73667 3.65185L12.4151 13.3302C12.6494 13.5646 13.0293 13.5646 13.2636 13.3302 13.4979 13.0959 13.4979 12.716 13.2636 12.4817L3.5852 2.80332z"}}]},Q=a.forwardRef(function(e,n){return a.createElement(w,Object.assign({},e,{id:"unlink-single",ref:n,icon:ke}))});Q.displayName="UnlinkSingle";var Se={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.6551 1.98906C11.7476 1.08113 10.2757 1.08149 9.3686 1.98987L4.82542 6.53955C4.75087 6.61421 4.69336 6.70411 4.65682 6.80309L3.2461 10.625C3.16506 10.8446 3.21909 11.0912 3.3845 11.2568C3.54991 11.4224 3.79651 11.4767 4.01616 11.3959L7.85031 9.98517C7.94979 9.94856 8.04014 9.89077 8.11508 9.81579L12.6552 5.27327C13.5618 4.36621 13.5618 2.89607 12.6551 1.98906ZM10.2177 2.83779C10.6562 2.39869 11.3677 2.39851 11.8064 2.8374C12.2447 3.27584 12.2447 3.9865 11.8065 4.42497L7.3392 8.89457L4.82213 9.82068L5.74706 7.31487L10.2177 2.83779Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.79238 13.2999C1.46101 13.2999 1.19238 13.5685 1.19238 13.8999C1.19238 14.2313 1.46101 14.4999 1.79238 14.4999H14.4924C14.8238 14.4999 15.0924 14.2313 15.0924 13.8999C15.0924 13.5685 14.8238 13.2999 14.4924 13.2999H1.79238Z"}}]},ee=a.forwardRef(function(e,n){return a.createElement(w,Object.assign({},e,{id:"write-single",ref:n,icon:Se}))});ee.displayName="WriteSingle";const ne={type:o.CommandType.COMMAND,id:"docs.command.delete-hyper-link",async handler(e,n){if(!n)return!1;const{unitId:i,linkId:t}=n,r=e.get(o.ICommandService);if(!e.get(O.DocHyperLinkModel).getLink(i,t))return!1;const d=I.deleteCustomRangeFactory(e,{unitId:i,rangeId:t});return d?await r.syncExecuteCommand(d.id,d.params):!1}},te=e=>{var f;const n=e.get(I.TextSelectionManagerService),i=e.get(o.IUniverInstanceService),t=n.getActiveRange(),s=e.get(U.IRenderManagerService).getCurrent(),c=s==null?void 0:s.with(I.DocSkeletonManagerService).getSkeleton(),d=c==null?void 0:c.getViewModel().getEditArea();if(d===U.DocumentEditArea.FOOTER||d===U.DocumentEditArea.HEADER)return!0;const l=i.getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC);if(!l||!t||t.collapsed)return!0;const h=(f=l.getBody())==null?void 0:f.paragraphs;if(!h)return!0;for(let m=0,p=h.length;m<p;m++){const y=h[m];if(t.startOffset<=y.startIndex&&t.endOffset>y.startIndex)return!0;if(y.startIndex>t.endOffset)break}return!1},R={type:o.CommandType.OPERATION,id:"docs.operation.show-hyper-link-edit-popup",handler(e,n){const i=n==null?void 0:n.link;return te(e)&&!i?!1:(e.get(P).showEditPopup(i),!0)}},M={docLink:"univer-doc-link",docLinkType:"univer-doc-link-type",docLinkContent:"univer-doc-link-content",docLinkContentError:"univer-doc-link-content-error",docLinkUrl:"univer-doc-link-url",docLinkOperations:"univer-doc-link-operations",docLinkOperation:"univer-doc-link-operation",docLinkOperationError:"univer-doc-link-operation-error"},A=()=>{const e=g.useDependency(P),n=g.useDependency(O.DocHyperLinkModel),i=g.useDependency(o.ICommandService),t=g.useDependency(L.IMessageService),r=g.useDependency(o.LocaleService),s=L.useObservable(e.showingLink$);if(!s)return null;const{unitId:c,linkId:d}=s,l=n.getLink(c,d);return l?a.createElement("div",{className:M.docLink,onClick:()=>{e.hideInfoPopup()}},a.createElement("div",{className:z(M.docLinkContent),onClick:()=>window.open(l.payload)},a.createElement("div",{className:M.docLinkType},a.createElement(Z,null)),a.createElement(E.Tooltip,{showIfEllipsis:!0,title:l.payload},a.createElement("span",{className:M.docLinkUrl},l.payload))),a.createElement("div",{className:M.docLinkOperations},a.createElement("div",{className:z(M.docLinkOperation),onClick:()=>{navigator.clipboard.writeText(l.payload),t.show({content:r.t("docLink.info.coped"),type:E.MessageType.Info})}},a.createElement(E.Tooltip,{placement:"bottom",title:r.t("docLink.info.copy")},a.createElement(J,null))),a.createElement("div",{className:M.docLinkOperation,onClick:()=>{i.executeCommand(R.id,{link:s})}},a.createElement(E.Tooltip,{placement:"bottom",title:r.t("docLink.info.edit")},a.createElement(ee,null))),a.createElement("div",{className:M.docLinkOperation,onClick:()=>{i.executeCommand(ne.id,{unitId:c,linkId:l.id})}},a.createElement(E.Tooltip,{placement:"bottom",title:r.t("docLink.info.cancel")},a.createElement(Q,null))))):null};A.componentKey="univer.doc.link-info-popup";var Ee=Object.defineProperty,Oe=Object.getOwnPropertyDescriptor,Me=(e,n,i,t)=>{for(var r=t>1?void 0:t?Oe(n,i):n,s=e.length-1,c;s>=0;s--)(c=e[s])&&(r=(t?c(n,i,r):c(r))||r);return t&&r&&Ee(n,i,r),r},b=(e,n)=>(i,t)=>n(i,t,e);let P=class extends o.Disposable{constructor(n,i,t,r,s){super();x(this,"_editingLink$",new H.BehaviorSubject(null));x(this,"_showingLink$",new H.BehaviorSubject(null));x(this,"editingLink$",this._editingLink$.asObservable());x(this,"showingLink$",this._showingLink$.asObservable());x(this,"_editPopup",null);x(this,"_infoPopup",null);this._docCanvasPopupManagerService=n,this._textSelectionManagerService=i,this._docHyperLinkModel=t,this._univerInstanceService=r,this._commandService=s,this.disposeWithMe(()=>{this._editingLink$.complete(),this._showingLink$.complete()})}get editing(){return this._editingLink$.value}get showing(){return this._showingLink$.value}showEditPopup(n){var t,r;this._editPopup&&this._editPopup.dispose(),this._editingLink$.next(n);let i=this._textSelectionManagerService.getActiveRange();if(n){const{unitId:s,rangeIndex:c}=n,d=this._univerInstanceService.getUnit(s,o.UniverInstanceType.UNIVER_DOC),l=(r=(t=d==null?void 0:d.getBody())==null?void 0:t.customRanges)==null?void 0:r[c];l&&(i={collapsed:!1,startOffset:l.startIndex,endOffset:l.endIndex+1},this._textSelectionManagerService.replaceTextRanges([{startOffset:l.startIndex,endOffset:l.endIndex+1}]))}return i?(this._editPopup=this._docCanvasPopupManagerService.attachPopupToRange(i,{componentKey:B.componentKey,direction:"bottom"}),this._editPopup):null}hideEditPopup(){var n;this._editingLink$.next(null),(n=this._editPopup)==null||n.dispose()}showInfoPopup(n){var l,h,f,m;const{linkId:i,unitId:t,rangeIndex:r}=n;if(((l=this.showing)==null?void 0:l.linkId)===i&&((h=this.showing)==null?void 0:h.unitId)===t&&this.showing.rangeIndex===r)return;this._infoPopup&&this._infoPopup.dispose();const s=this._docHyperLinkModel.getLink(t,i),c=this._univerInstanceService.getUnit(t,o.UniverInstanceType.UNIVER_DOC);if(!c||!s)return;const d=(m=(f=c.getBody())==null?void 0:f.customRanges)==null?void 0:m[r];if(this._showingLink$.next({unitId:t,linkId:i,rangeIndex:r}),!!d)return this._infoPopup=this._docCanvasPopupManagerService.attachPopupToRange({collapsed:!1,startOffset:d.startIndex,endOffset:d.endIndex+1},{componentKey:A.componentKey,direction:"top",closeOnSelfTarget:!0,onClickOutside:()=>{this.hideInfoPopup()}}),this._infoPopup}hideInfoPopup(){var n;this._showingLink$.next(null),(n=this._infoPopup)==null||n.dispose()}};P=Me([b(0,v.Inject(Y.DocCanvasPopManagerService)),b(1,v.Inject(I.TextSelectionManagerService)),b(2,v.Inject(O.DocHyperLinkModel)),b(3,o.IUniverInstanceService),b(4,o.ICommandService)],P);const ie={type:o.CommandType.COMMAND,id:"docs.command.add-hyper-link",async handler(e,n){if(!n)return!1;const{payload:i,unitId:t}=n,r=e.get(o.ICommandService),s=o.generateRandomId(),c=I.addCustomRangeBySelectionFactory(e,{rangeId:s,rangeType:o.CustomRangeType.HYPERLINK});if(c){const d={id:O.AddDocHyperLinkMutation.id,params:{unitId:t,link:{payload:i,id:s}}};return(await o.sequenceExecuteAsync([d,c],r)).result}return!1}},re={id:"docs.command.update-hyper-link",type:o.CommandType.COMMAND,handler(e,n){return n?e.get(o.ICommandService).syncExecuteCommand(O.UpdateDocHyperLinkMutation.id,n):!1}},T={docsLinkEdit:"univer-docs-link-edit",docsLinkEditTitle:"univer-docs-link-edit-title",docsLinkEditClose:"univer-docs-link-edit-close",docsLinkEditButtons:"univer-docs-link-edit-buttons",docsLinkEditButton:"univer-docs-link-edit-button"};function Pe(e){return/^[a-zA-Z]+:\/\//.test(e)}function De(e){return/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(e)}function Ue(e){return Pe(e)?e:De(e)?`mailto://${e}`:`https://${e}`}const B=()=>{const e=g.useDependency(P),n=g.useDependency(o.LocaleService),i=g.useDependency(O.DocHyperLinkModel),t=g.useObservable(e.editingLink$),r=g.useDependency(o.ICommandService),s=g.useDependency(o.IUniverInstanceService),c=g.useDependency(U.ITextSelectionRenderManager),d=g.useDependency(I.TextSelectionManagerService),[l,h]=a.useState(""),[f,m]=a.useState(!1),p=o.Tools.isLegalUrl(l),y=t?s.getUnit(t.unitId,o.UniverInstanceType.UNIVER_DOC):s.getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC);a.useEffect(()=>{var ue,pe,ve,fe;if(t){const S=t?i.getLink(t.unitId,t.linkId):null;h((ue=S==null?void 0:S.payload)!=null?ue:"");return}const _=d.getActiveRange();if(!_)return;const $=s.getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC),le=(ve=(pe=$==null?void 0:$.getBody())==null?void 0:pe.customRanges)==null?void 0:ve.find(S=>Math.max(_.startOffset,S.startIndex)<=Math.min(_.endOffset-1,S.endIndex));if($&&le){const S=i.getLink($.getUnitId(),le.rangeId);h((fe=S==null?void 0:S.payload)!=null?fe:"")}},[t,i,d,s]),a.useEffect(()=>(c.blur(),()=>{c.focus()}),[c]);const k=()=>{e.hideEditPopup()},D=()=>{if(m(!0),!p||!y)return;const _=Ue(l);t?r.executeCommand(re.id,{unitId:y.getUnitId(),payload:_,linkId:t.linkId}):r.executeCommand(ie.id,{unitId:y.getUnitId(),payload:_}),e.hideEditPopup()};if(y)return a.createElement("div",{className:T.docsLinkEdit},a.createElement("div",{className:T.docsLinkEditTitle},a.createElement("span",null,n.t("docLink.edit.title")),a.createElement(X,{className:T.docsLinkEditClose,onClick:k})),a.createElement("div",null,a.createElement(E.FormLayout,{label:n.t("docLink.edit.address"),error:f&&!p?n.t("docLink.edit.addressError"):""},a.createElement(E.Input,{value:l,onChange:h,autoFocus:!0}))),a.createElement("div",{className:T.docsLinkEditButtons},a.createElement(E.Button,{className:T.docsLinkEditButton,onClick:k},n.t("docLink.edit.cancel")),a.createElement(E.Button,{disabled:!l,className:T.docsLinkEditButton,type:"primary",onClick:D},n.t("docLink.edit.confirm"))))};B.componentKey="docs-hyper-link-edit";const oe="doc-hyper-link-icon";function xe(e){return{id:R.id,group:L.MenuGroup.TOOLBAR_LAYOUT,type:L.MenuItemType.BUTTON,icon:oe,title:"docLink.menu.tooltip",tooltip:"docLink.menu.tooltip",positions:[L.MenuPosition.TOOLBAR_START,L.MenuPosition.CONTEXT_MENU],hidden$:L.getMenuHiddenObservable(e,o.UniverInstanceType.UNIVER_DOC),disabled$:new H.Observable(function(n){const t=e.get(I.TextSelectionManagerService).textSelection$.pipe(H.debounceTime(16)).subscribe(()=>{n.next(te(e))});return()=>{t.unsubscribe()}})}}const we={id:R.id,binding:L.MetaKeys.CTRL_COMMAND|L.KeyCode.K,description:"docLink.menu.tooltip",preconditions:Y.whenDocAndEditorFocused};var Te=Object.defineProperty,be=Object.getOwnPropertyDescriptor,je=(e,n,i,t)=>{for(var r=t>1?void 0:t?be(n,i):n,s=e.length-1,c;s>=0;s--)(c=e[s])&&(r=(t?c(n,i,r):c(r))||r);return t&&r&&Te(n,i,r),r},j=(e,n)=>(i,t)=>n(i,t,e);let N=class extends o.Disposable{constructor(e,n,i,t,r,s){super(),this._config=e,this._componentManager=n,this._commandService=i,this._menuService=t,this._injector=r,this._shortcutService=s,this._initComponents(),this._initCommands(),this._initMenus(),this._initShortcut()}_initComponents(){[[B,B.componentKey],[A,A.componentKey],[Z,oe]].forEach(([e,n])=>{this._componentManager.register(n,e)})}_initCommands(){[ie,re,ne,R].forEach(e=>{this._commandService.registerCommand(e)})}_initShortcut(){[we].forEach(e=>{this._shortcutService.registerShortcut(e)})}_initMenus(){[xe].forEach(e=>{this.disposeWithMe(this._menuService.addMenuItem(e(this._injector),{}))})}};N=je([o.OnLifecycle(o.LifecycleStages.Starting,N),j(1,v.Inject(L.ComponentManager)),j(2,o.ICommandService),j(3,L.IMenuService),j(4,v.Inject(v.Injector)),j(5,L.IShortcutService)],N);var Ne=Object.defineProperty,$e=Object.getOwnPropertyDescriptor,He=(e,n,i,t)=>{for(var r=t>1?void 0:t?$e(n,i):n,s=e.length-1,c;s>=0;s--)(c=e[s])&&(r=(t?c(n,i,r):c(r))||r);return t&&r&&Ne(n,i,r),r},K=(e,n)=>(i,t)=>n(i,t,e);let V=class extends o.Disposable{constructor(e,n,i,t){super(),this._commandService=e,this._univerInstanceService=n,this._docHyperLinkService=i,this._renderMangerService=t,this._initSelectionChange()}_initSelectionChange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var n,i;if(e.id===I.SetTextSelectionsOperation.id){const t=e.params,{unitId:r,ranges:s}=t,c=this._renderMangerService.getRenderById(r),d=c==null?void 0:c.with(I.DocSkeletonManagerService).getSkeleton();if((d==null?void 0:d.getViewModel().getEditArea())!==U.DocumentEditArea.BODY){this._docHyperLinkService.hideInfoPopup(),this._docHyperLinkService.hideEditPopup();return}const h=this._univerInstanceService.getUnit(r,o.UniverInstanceType.UNIVER_DOC),f=s[0];if(f&&h){const{startOffset:m,endOffset:p,collapsed:y}=f,k=(n=h.getBody())==null?void 0:n.customRanges;if(y){const D=(i=k==null?void 0:k.findIndex(_=>_.startIndex<m&&_.endIndex>p-1))!=null?i:-1;if(D>-1){const _=k[D];this._docHyperLinkService.showInfoPopup({unitId:r,linkId:_.rangeId,rangeIndex:D});return}}else if(k!=null&&k.find(D=>D.startIndex<=m&&D.endIndex>=p-1))return}this._docHyperLinkService.hideInfoPopup(),this._docHyperLinkService.hideEditPopup()}}))}};V=He([o.OnLifecycle(o.LifecycleStages.Ready,V),K(0,o.ICommandService),K(1,o.IUniverInstanceService),K(2,v.Inject(P)),K(3,U.IRenderManagerService)],V);var Re=Object.defineProperty,Ae=Object.getOwnPropertyDescriptor,Be=(e,n,i,t)=>{for(var r=t>1?void 0:t?Ae(n,i):n,s=e.length-1,c;s>=0;s--)(c=e[s])&&(r=(t?c(n,i,r):c(r))||r);return t&&r&&Re(n,i,r),r},se=(e,n)=>(i,t)=>n(i,t,e);let W=class extends o.Disposable{constructor(e,n,i){super(),this._context=e,this._docInterceptorService=n,this._hyperLinkService=i,this._init()}_init(){this._docInterceptorService.intercept(I.DOC_INTERCEPTOR_POINT.CUSTOM_RANGE,{handler:(e,n,i)=>{if(!e)return i(e);const{unitId:t}=n,r=this._hyperLinkService.showing,{linkId:s,unitId:c}=r||{},d=c===t&&e.rangeId===s;return i({...e,active:d})}})}};W=Be([se(1,v.Inject(I.DocInterceptorService)),se(2,v.Inject(P))],W);var Ke=Object.defineProperty,Ve=Object.getOwnPropertyDescriptor,Fe=(e,n,i,t)=>{for(var r=t>1?void 0:t?Ve(n,i):n,s=e.length-1,c;s>=0;s--)(c=e[s])&&(r=(t?c(n,i,r):c(r))||r);return t&&r&&Ke(n,i,r),r},F=(e,n)=>(i,t)=>n(i,t,e);let q=class extends o.Disposable{constructor(e,n,i,t){super(),this._docClipboardService=e,this._univerInstanceService=n,this._hyperLinkModel=i,this._textSelectionManagerService=t,this._initClipboard()}_initClipboard(){this.disposeWithMe(this._docClipboardService.addClipboardHook({onBeforePaste:e=>{var s,c;const n=this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC);if(!n)return e;const i=this._textSelectionManagerService.getActiveRange(),t=(s=n.getBody())==null?void 0:s.customRanges;if(i?t==null?void 0:t.find(d=>d.rangeType===o.CustomRangeType.HYPERLINK&&d.startIndex<=i.startOffset&&d.endIndex>=i.endOffset-1):null){const{customRanges:d=[],...l}=e,f=d.filter(p=>p.rangeType===o.CustomRangeType.HYPERLINK).map(p=>[p.startIndex,p.endIndex]).flat().sort((p,y)=>p-y),m={...l,customRanges:d.filter(p=>p.rangeType!==o.CustomRangeType.HYPERLINK)};for(let p=0;p<f.length;p++)o.updateAttributeByDelete(m,1,f[p]-p);return m}else{const d=new Set(t==null?void 0:t.map(l=>l.rangeType===o.CustomRangeType.HYPERLINK&&l.rangeId));(c=e.customRanges)==null||c.forEach(l=>{var h;if(l.rangeType===o.CustomRangeType.HYPERLINK){if(d.has(l.rangeId)){const f=this._hyperLinkModel.getLink(n.getUnitId(),l.rangeId);if(f){const m=o.Tools.generateRandomId();this._hyperLinkModel.addLink(n.getUnitId(),{payload:f.payload,id:m}),l.rangeId=m}}else if((h=e.payloads)!=null&&h[l.rangeId]){const f=e.payloads[l.rangeId];this._hyperLinkModel.addLink(n.getUnitId(),{payload:f,id:l.rangeId})}}})}return e}}))}};q=Fe([o.OnLifecycle(o.LifecycleStages.Ready,q),F(0,v.Inject(Y.IDocClipboardService)),F(1,o.IUniverInstanceService),F(2,v.Inject(O.DocHyperLinkModel)),F(3,v.Inject(I.TextSelectionManagerService))],q);var ce=Object.defineProperty,qe=Object.getOwnPropertyDescriptor,Ye=(e,n,i)=>n in e?ce(e,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[n]=i,Ze=(e,n,i,t)=>{for(var r=t>1?void 0:t?qe(n,i):n,s=e.length-1,c;s>=0;s--)(c=e[s])&&(r=(t?c(n,i,r):c(r))||r);return t&&r&&ce(n,i,r),r},ae=(e,n)=>(i,t)=>n(i,t,e),de=(e,n,i)=>Ye(e,typeof n!="symbol"?n+"":n,i);u.UniverDocsHyperLinkUIPlugin=class extends o.Plugin{constructor(n={menu:{}},i,t){super(),this._config=n,this._injector=i,this._renderManagerSrv=t}onStarting(n){[[P],[N,{useFactory:()=>this._injector.createInstance(N,this._config)}],[V],[q]].forEach(t=>{n.add(t)})}onRendered(){this._initRenderModule()}_initRenderModule(){[W].forEach(n=>{this._renderManagerSrv.registerRenderModule(o.UniverInstanceType.UNIVER_DOC,n)})}},de(u.UniverDocsHyperLinkUIPlugin,"pluginName",he),de(u.UniverDocsHyperLinkUIPlugin,"type",o.UniverInstanceType.UNIVER_DOC),u.UniverDocsHyperLinkUIPlugin=Ze([o.DependentOn(O.UniverDocsHyperLinkPlugin),ae(1,v.Inject(v.Injector)),ae(2,U.IRenderManagerService)],u.UniverDocsHyperLinkUIPlugin),Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/docs-hyper-link-ui",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "private": false,
5
5
  "description": "Univer thread comment plugin",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -45,36 +45,36 @@
45
45
  "lib"
46
46
  ],
47
47
  "peerDependencies": {
48
- "@wendellhu/redi": "0.15.5",
48
+ "@wendellhu/redi": "0.16.0",
49
49
  "clsx": ">=2.0.0",
50
50
  "react": "^16.9.0 || ^17.0.0 || ^18.0.0",
51
51
  "rxjs": ">=7.0.0",
52
- "@univerjs/core": "0.2.3",
53
- "@univerjs/docs": "0.2.3",
54
- "@univerjs/docs-hyper-link": "0.2.3",
55
- "@univerjs/design": "0.2.3",
56
- "@univerjs/engine-render": "0.2.3",
57
- "@univerjs/ui": "0.2.3",
58
- "@univerjs/docs-ui": "0.2.3"
52
+ "@univerjs/design": "0.2.4",
53
+ "@univerjs/core": "0.2.4",
54
+ "@univerjs/docs": "0.2.4",
55
+ "@univerjs/docs-hyper-link": "0.2.4",
56
+ "@univerjs/engine-render": "0.2.4",
57
+ "@univerjs/ui": "0.2.4",
58
+ "@univerjs/docs-ui": "0.2.4"
59
59
  },
60
60
  "dependencies": {
61
- "@univerjs/icons": "^0.1.58"
61
+ "@univerjs/icons": "^0.1.65"
62
62
  },
63
63
  "devDependencies": {
64
- "@wendellhu/redi": "0.15.5",
64
+ "@wendellhu/redi": "0.16.0",
65
65
  "clsx": "^2.1.1",
66
66
  "react": "18.3.1",
67
67
  "rxjs": "^7.8.1",
68
68
  "typescript": "^5.5.3",
69
- "vite": "^5.3.3",
70
- "vitest": "^1.6.0",
71
- "@univerjs/core": "0.2.3",
72
- "@univerjs/docs": "0.2.3",
73
- "@univerjs/design": "0.2.3",
74
- "@univerjs/docs-hyper-link": "0.2.3",
75
- "@univerjs/ui": "0.2.3",
76
- "@univerjs/engine-render": "0.2.3",
77
- "@univerjs/shared": "0.2.3"
69
+ "vite": "^5.3.4",
70
+ "vitest": "^2.0.3",
71
+ "@univerjs/design": "0.2.4",
72
+ "@univerjs/core": "0.2.4",
73
+ "@univerjs/docs": "0.2.4",
74
+ "@univerjs/docs-hyper-link": "0.2.4",
75
+ "@univerjs/engine-render": "0.2.4",
76
+ "@univerjs/shared": "0.2.4",
77
+ "@univerjs/ui": "0.2.4"
78
78
  },
79
79
  "univerSpace": {
80
80
  ".": {