@univerjs/sheets-hyper-link-ui 0.20.0 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`@univerjs/sheets`),n=require(`@univerjs/sheets-ui`),r=require(`@univerjs/docs`),i=require(`@univerjs/docs-ui`),a=require(`@univerjs/engine-render`),o=require(`@univerjs/ui`),s=require(`rxjs`),c=require(`@univerjs/design`),l=require(`@univerjs/engine-formula`),u=require(`@univerjs/sheets-formula-ui`),d=require(`@univerjs/sheets-hyper-link`),f=require(`react`),p=require(`react/jsx-runtime`),m=require(`@univerjs/icons`),h=require(`@univerjs/sheets-data-validation`),g=function(e){return e.EDITING=`editing`,e.VIEWING=`viewing`,e.ZEN_EDITOR=`zen_mode`,e}({});function _(t){return e.Tools.isLegalUrl(t)}function v(e){return/^[a-zA-Z]+:\/\//.test(e)}function y(e){return/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(e)}function b(e){if(_(e)){let t=v(e)?e:y(e)?`mailto://${e}`:`http://${e}`,n;try{n=new URL(t)}catch{return e}return n.hostname===location.hostname&&n.port===location.port&&n.protocol===location.protocol&&n.pathname===location.pathname&&n.hash&&!n.search?n.hash:t}return e}const x=`sheets-hyper-link-ui.config`;Symbol(x);const S={};function C(e,t){return function(n,r){t(n,r,e)}}function w(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function T(t,n){let r=n.getMergeData(),i=n.getMaxColumns()-1,a=n.getMaxRows()-1;if(i<t.endColumn&&(t.endColumn=i),a<t.endRow&&(t.endRow=a),t.rangeType===e.RANGE_TYPE.COLUMN||e.RANGE_TYPE.ROW)return t;let o=[];return r.forEach(n=>{e.Rectangle.intersects(t,n)&&o.push(n)}),e.Rectangle.realUnion(t,...o)}let E=class{constructor(e,t,n,r,i,a){this._univerInstanceService=e,this._commandService=t,this._definedNamesService=n,this._messageService=r,this._localeService=i,this._configService=a}navigate(e){switch(e.type){case d.SheetHyperLinkType.URL:this.navigateToOtherWebsite(e.url);break;default:this._navigateToUniver(e.searchObj)}}_navigateToUniver(t){let{gid:n,range:r,rangeid:i}=t,a=this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(!a)return;let o=a.getUnitId();if(i){let e=this._definedNamesService.getValueById(o,i);if(!e)return;let{formulaOrRefString:t}=e,n=this._definedNamesService.getWorksheetByRef(o,t);if(!n){this._messageService.show({content:this._localeService.t(`hyperLink.message.refError`),type:c.MessageType.Error});return}if(n.isSheetHidden()){this._messageService.show({content:this._localeService.t(`hyperLink.message.hiddenSheet`),type:c.MessageType.Error});return}this.navigateToDefineName(o,i)}if(n){if(r){let t=(0,l.deserializeRangeWithSheet)(r);(0,e.isValidRange)(t.range)&&r!==d.ERROR_RANGE&&this.navigateToRange(o,n,t.range);return}this.navigateToSheetById(o,n)}}async navigateToRange(e,r,i,a){let o=await this.navigateToSheetById(e,r);if(o){let s=T(i,o);await this._commandService.executeCommand(t.SetSelectionsOperation.id,{unitId:e,subUnitId:r,selections:[{range:s,primary:null}]}),await this._commandService.executeCommand(n.ScrollToRangeOperation.id,{range:s,forceTop:a})}}async navigateToSheetById(n,r){let i=this._univerInstanceService.getUnit(n,e.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;let a=i.getActiveSheet();if(!a)return!1;if(a.getSheetId()===r)return a;let o=i.getSheetBySheetId(r);return o?i.getHiddenWorksheets().indexOf(r)>-1?(this._messageService.show({content:this._localeService.t(`hyperLink.message.hiddenSheet`),type:c.MessageType.Error}),!1):await this._commandService.executeCommand(t.SetWorksheetActiveOperation.id,{unitId:n,subUnitId:r})?o:!1:(this._messageService.show({content:this._localeService.t(`hyperLink.message.noSheet`),type:c.MessageType.Error}),!1)}async navigateToDefineName(e,t){return this._definedNamesService.focusRange(e,t),!0}async navigateToOtherWebsite(e){var t;let n=this._configService.getConfig(x);if(!(n==null||(t=n.urlHandler)==null)&&t.navigateToOtherWebsite)return n.urlHandler.navigateToOtherWebsite(e);window.open(e,`_blank`,`noopener noreferrer`)}};E=w([C(0,e.IUniverInstanceService),C(1,e.ICommandService),C(2,l.IDefinedNamesService),C(3,o.IMessageService),C(4,(0,e.Inject)(e.LocaleService)),C(5,e.IConfigService)],E);function D(e){"@babel/helpers - typeof";return D=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},D(e)}function O(e,t){if(D(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(D(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function k(e){var t=O(e,`string`);return D(t)==`symbol`?t:t+``}function A(e,t,n){return(t=k(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ee=class extends e.Disposable{constructor(...e){super(...e),A(this,`_customHyperLinks`,new Map)}isBuiltInLinkType(e){return e!==d.SheetHyperLinkType.URL}getOptions(){return Array.from(this._customHyperLinks.values()).map(({option:e})=>e)}findCustomHyperLink(e){return Array.from(this._customHyperLinks.values()).find(t=>t.match(e))}registerCustomHyperLink(e){this._customHyperLinks.set(e.type,e)}getCustomHyperLink(e){return this._customHyperLinks.get(e)}removeCustomHyperLink(e){let{_customHyperLinks:t}=this;t.delete(e)}dispose(){super.dispose(),this._customHyperLinks.clear()}};function te(e){return e.trim().length===0}function ne(t,n){let[r]=t.split(`,`).map(l.deserializeRangeWithSheet);return!r||!(0,e.isValidRange)(r.range)?``:(r.sheetName||(r.sheetName=n),(0,l.serializeRangeToRefString)(r))}const j=()=>{var s;let[m,h]=(0,f.useState)(``),[v,y]=(0,f.useState)(!1),[x,S]=(0,f.useState)(``),[C,w]=(0,f.useState)(!0),[T,D]=(0,f.useState)(d.SheetHyperLinkType.URL),[O,k]=(0,f.useState)(``),A=(0,o.useDependency)(e.LocaleService),j=(0,o.useDependency)(l.IDefinedNamesService),M=(0,o.useDependency)(n.IEditorBridgeService),N=(0,o.useDependency)(e.IUniverInstanceService),P=(0,o.useDependency)(I),F=(0,o.useObservable)(P.currentEditing$),L=(0,o.useDependency)(d.SheetsHyperLinkParserService),re=(0,o.useDependency)(E),R=(0,o.useDependency)(e.ICommandService),z=(0,o.useDependency)(ee),ie=(0,f.useMemo)(()=>z.getOptions(),[z]),B=(0,o.useDependency)(o.IZenZoneService),V=(0,o.useDependency)(a.IRenderManagerService),H=(0,o.useDependency)(n.IMarkSelectionService),oe=(0,o.useDependency)(r.DocSelectionManagerService),U=(0,o.useDependency)(e.IContextService),se=(0,o.useDependency)(e.ThemeService),ce=(0,o.useDependency)(r.DocSelectionManagerService),[W,le]=(0,f.useState)(!1),ue=(0,o.useDependency)(t.SheetsSelectionsService),de=(0,f.useMemo)(()=>ue.getCurrentSelections(),[]),G=(0,f.useMemo)(()=>{if(!z.isBuiltInLinkType(T))return z.getCustomHyperLink(T)},[z,T]),[K,fe]=(0,f.useState)(!1),[q,pe]=(0,f.useState)(!1),J=(0,f.useRef)(!1),Y=N.getCurrentUnitOfType(e.UniverInstanceType.UNIVER_SHEET),me=(Y==null?void 0:Y.getActiveSheet().getSheetId())||``,X=(0,f.useCallback)(t=>{S(t.replaceAll(e.DataStreamTreeTokenType.CUSTOM_RANGE_START,``).replaceAll(e.DataStreamTreeTokenType.CUSTOM_RANGE_END,``))},[S]);(0,f.useEffect)(()=>{if((F==null?void 0:F.row)!==void 0&&F.col!==void 0){let{customRange:b,row:x,col:S}=F,{label:C}=F;typeof C==`number`&&(C=`${C}`);let T;if(b){var t,n,r,i;T={id:(t=b==null?void 0:b.rangeId)==null?``:t,display:(n=C)==null?``:n,payload:(r=b==null||(i=b.properties)==null?void 0:i.url)==null?``:r,row:x,column:S}}else if(F.type===g.VIEWING){var a,o,s,c;let t=N.getUnit(F.unitId),n=t==null?void 0:t.getSheetBySheetId(F.subUnitId),r=n==null?void 0:n.getCellRaw(F.row,F.col),i=r==null||(a=r.p)==null||(a=a.body)==null||(a=a.customRanges)==null?void 0:a.find(t=>{var n;return t.rangeType===e.CustomRangeType.HYPERLINK&&((n=t.properties)==null?void 0:n.url)}),l=r==null?void 0:r.v;r&&(!e.BuildTextUtils.transform.isEmptyDocument((o=r.p)==null||(o=o.body)==null?void 0:o.dataStream)||e.Tools.isDefine(l))&&w(!1),T={id:``,display:``,payload:(s=i==null||(c=i.properties)==null?void 0:c.url)==null?``:s,row:x,column:S}}else{var u,f,p,m,_;let t=N.getCurrentUnitForType(e.UniverInstanceType.UNIVER_DOC),n=oe.getActiveTextRange(),r=t==null?void 0:t.getBody(),i=n&&r?n:null,a=i&&((u=e.BuildTextUtils.customRange.getCustomRangesInterestsWithSelection(i,(f=r==null?void 0:r.customRanges)==null?[]:f))==null?void 0:u[0]);w(!1),T={id:``,display:(p=C)==null?``:p,payload:(m=a==null||(_=a.properties)==null?void 0:_.url)==null?``:m,row:x,column:S}}h(T.id);let E=z.findCustomHyperLink(T);if(E){let e=E.convert(T);D(e.type),k(e.payload),X(e.display);return}X(T.display);let O=L.parseHyperLink(T.payload);switch(D(O.type===d.SheetHyperLinkType.INVALID?d.SheetHyperLinkType.RANGE:O.type),O.type){case d.SheetHyperLinkType.URL:k(O.url),O.url===T.display&&(J.current=!0);break;case d.SheetHyperLinkType.RANGE:{var v,y;let e=O.searchObj,t=(0,l.serializeRangeWithSheet)(e.gid?(v=(y=N.getUnit(F.unitId))==null||(y=y.getSheetBySheetId(e.gid))==null?void 0:y.getName())==null?``:v:``,(0,l.deserializeRangeWithSheet)(e.range).range);k(t),t===T.display&&(J.current=!0);break}case d.SheetHyperLinkType.SHEET:{let e=O.searchObj;k(e.gid);break}case d.SheetHyperLinkType.DEFINE_NAME:{let e=O.searchObj;k(e.rangeid);break}default:k(``);break}}},[F,re,z,oe,N]),(0,f.useEffect)(()=>{let t=null;if(F&&!F.customRangeId&&F.type===g.VIEWING&&e.Tools.isDefine(F.row)&&e.Tools.isDefine(F.col)){let n=N.getUnit(F.unitId,e.UniverInstanceType.UNIVER_SHEET),r=n==null?void 0:n.getSheetBySheetId(F.subUnitId),i=r==null?void 0:r.getMergedCell(F.row,F.col),a=new e.ColorKit(se.getColorFromTheme(`primary.600`)).toRgb();t=H.addShape({range:i==null?{startColumn:F.col,endColumn:F.col,startRow:F.row,endRow:F.row}:i,style:{fill:`rgb(${a.r}, ${a.g}, ${a.b}, 0.12)`,strokeWidth:1,stroke:`#FFBD37`,widgets:{}},primary:null},[],-1)}return()=>{t&&H.removeShape(t)}},[F,H,se,N]),(0,f.useEffect)(()=>{pe(T===d.SheetHyperLinkType.RANGE)},[T]),(0,f.useEffect)(()=>{let t=(F==null?void 0:F.type)===g.ZEN_EDITOR?V.getRenderById(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY):V.getRenderById(M.getCurrentEditorId()),n=new e.DisposableCollection;if(t){let e=t.with(i.DocSelectionRenderService);e.setReserveRangesStatus(!0),n.add(()=>{e.setReserveRangesStatus(!1)})}return()=>{M.disableForceKeepVisible(),n.dispose()}},[F==null?void 0:F.type,M,V]),(0,f.useEffect)(()=>(q&&P.setIsKeepVisible(q),P.setIsKeepVisible(W),()=>{P.setIsKeepVisible(!1)}),[q,W,P]),(0,f.useEffect)(()=>()=>{B.temporaryHidden&&(B.show(),U.setContextValue(e.FOCUSING_SHEET,!1))},[U,B]),(0,f.useEffect)(()=>{if(q)return M.enableForceKeepVisible(),()=>{M.disableForceKeepVisible()}},[q,M]);let he=[{label:A.t(`hyperLink.form.link`),value:d.SheetHyperLinkType.URL},{label:A.t(`hyperLink.form.range`),value:d.SheetHyperLinkType.RANGE},{label:A.t(`hyperLink.form.worksheet`),value:d.SheetHyperLinkType.SHEET},{label:A.t(`hyperLink.form.definedName`),value:d.SheetHyperLinkType.DEFINE_NAME},...ie];if(!Y)return;let ge=Y.getHiddenWorksheets(),_e=Y.getSheets().map(e=>({label:e.getName(),value:e.getSheetId()})).filter(e=>ge.indexOf(e.value)===-1),Z=Object.values((s=j.getDefinedNameMap(Y.getUnitId()))==null?{}:s).map(e=>({label:e.name,value:e.id})),Q=(e,t)=>{if(e===d.SheetHyperLinkType.URL)return b(t);if(e===d.SheetHyperLinkType.RANGE){let e=(0,l.deserializeRangeWithSheet)(t),n=Y.getSheetBySheetName(e.sheetName);if(n)return`#gid=${n.getSheetId()}&range=${(0,l.serializeRange)(e.range)}`}return`#${e}=${t}`},$=(0,o.useEvent)(e=>{var t;let n=ne(e,((t=Y.getActiveSheet())==null?void 0:t.getName())||``);if(!n){k(``);return}k(n),n&&(J.current||!x)&&(X(n),J.current=!0)}),ve=async()=>{if(C&&te(x)||!O||T===d.SheetHyperLinkType.URL&&!_(O)){fe(!0);return}if(F)if(m){let t=F.type===g.ZEN_EDITOR||F.type===g.EDITING?d.UpdateRichHyperLinkCommand.id:d.UpdateHyperLinkCommand.id;await R.executeCommand(t,{id:m,unitId:F.unitId,subUnitId:F.subUnitId,payload:{display:C?x:``,payload:Q(T,O)},row:F.row,column:F.col,documentId:F.type===g.ZEN_EDITOR?e.DOCS_ZEN_EDITOR_UNIT_ID_KEY:M.getCurrentEditorId()})}else{let t=F.type===g.ZEN_EDITOR||F.type===g.EDITING?d.AddRichHyperLinkCommand.id:d.AddHyperLinkCommand.id;await R.executeCommand(t,{unitId:F.unitId,subUnitId:F.subUnitId,link:{id:(0,e.generateRandomId)(),row:F.row,column:F.col,payload:Q(T,O),display:C?x:``},documentId:F.type===g.ZEN_EDITOR?e.DOCS_ZEN_EDITOR_UNIT_ID_KEY:M.getCurrentEditorId()})}(F==null?void 0:F.type)===g.VIEWING&&(await R.executeCommand(t.SetWorksheetActiveOperation.id,{unitId:F.unitId,subUnitId:F.subUnitId}),await R.executeCommand(n.ScrollToRangeOperation.id,{range:{startRow:Math.max(F.row-1,0),endRow:F.row+1,startColumn:Math.max(F.col-1,0),endColumn:F.col+1}})),R.executeCommand(ae.id)};return F?(0,p.jsxs)(`div`,{className:(0,c.clsx)(`univer-box-border univer-w-[296px] univer-rounded-xl univer-bg-white univer-p-4 univer-shadow-md dark:!univer-bg-gray-900`,c.borderClassName),children:[C?(0,p.jsx)(c.FormLayout,{label:A.t(`hyperLink.form.label`),error:K&&te(x)?A.t(`hyperLink.form.inputError`):``,children:(0,p.jsx)(c.Input,{value:x,onChange:e=>{X(e),J.current=!1},placeholder:A.t(`hyperLink.form.labelPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===o.KeyCode.ENTER&&ve()}})}):null,(0,p.jsx)(c.FormLayout,{label:A.t(`hyperLink.form.type`),children:(0,p.jsx)(c.Select,{className:`univer-w-full`,options:he,value:T,onChange:e=>{D(e),k(``)}})}),T===d.SheetHyperLinkType.URL&&(0,p.jsx)(c.FormLayout,{error:K?O?_(O)?``:A.t(`hyperLink.form.linkError`):A.t(`hyperLink.form.inputError`):``,children:(0,p.jsx)(c.Input,{value:O,onChange:e=>{k(e),e&&(J.current||!x||x===e)&&(X(e),J.current=!0)},placeholder:A.t(`hyperLink.form.linkPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===o.KeyCode.ENTER&&ve()}})}),T===d.SheetHyperLinkType.RANGE&&(0,p.jsx)(c.FormLayout,{error:K&&!O?A.t(`hyperLink.form.inputError`):``,children:(0,p.jsx)(u.RangeSelector,{unitId:Y.getUnitId(),subUnitId:me,maxRangeCount:1,supportAcrossSheet:!0,initialValue:O,resetRange:de,onChange:(e,t)=>$(t),onRangeSelectorDialogVisibleChange:async n=>{if(le(n),n)F.type===g.ZEN_EDITOR&&(B.hide(),U.setContextValue(e.FOCUSING_SHEET,!0)),F.type!==g.VIEWING&&M.enableForceKeepVisible(),y(!0);else{if(await re.navigateToRange(F.unitId,F.subUnitId,{startRow:F.row,endRow:F.row,startColumn:F.col,endColumn:F.col},!0),F.type===g.ZEN_EDITOR){var r,a;await R.executeCommand(t.SetSelectionsOperation.id,{unitId:F.unitId,subUnitId:F.subUnitId,selections:[{range:{startRow:F.row,endRow:F.row,startColumn:F.col,endColumn:F.col}}]}),B.show(),U.setContextValue(e.FOCUSING_SHEET,!1);let n=(r=V.getRenderById(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY))==null?void 0:r.with(i.DocBackScrollRenderController),o=(a=ce.getTextRanges({unitId:e.DOCS_ZEN_EDITOR_UNIT_ID_KEY,subUnitId:e.DOCS_ZEN_EDITOR_UNIT_ID_KEY}))==null?void 0:a[0];n&&o&&(n.scrollToRange(o),ce.refreshSelection({unitId:e.DOCS_ZEN_EDITOR_UNIT_ID_KEY,subUnitId:e.DOCS_ZEN_EDITOR_UNIT_ID_KEY}))}M.disableForceKeepVisible(),y(!1)}},onFocusChange:e=>pe(e)})}),T===d.SheetHyperLinkType.SHEET&&(0,p.jsx)(c.FormLayout,{error:K&&!O?A.t(`hyperLink.form.selectError`):``,children:(0,p.jsx)(c.Select,{className:`univer-w-full`,options:_e,value:O,onChange:e=>{var t,n;k(e);let r=(t=_e.find(t=>t.value===e))==null?void 0:t.label,i=(n=_e.find(e=>e.value===O))==null?void 0:n.label;r&&(J.current||!x||x===i)&&(X(r),J.current=!0)}})}),T===d.SheetHyperLinkType.DEFINE_NAME&&(0,p.jsx)(c.FormLayout,{error:K&&!O?A.t(`hyperLink.form.selectError`):``,children:(0,p.jsx)(c.Select,{className:`univer-w-full`,options:Z,value:O,onChange:e=>{var t,n;k(e);let r=(t=Z.find(t=>t.value===e))==null?void 0:t.label,i=(n=Z.find(e=>e.value===O))==null?void 0:n.label;r&&(J.current||!x||x===i)&&(X(r),J.current=!0)}})}),(G==null?void 0:G.Form)&&(0,p.jsx)(G.Form,{linkId:m,payload:O,display:x,showError:K,setByPayload:J,setDisplay:e=>{X(e),J.current=!0},setPayload:k}),(0,p.jsxs)(`div`,{className:`univer-flex univer-flex-row univer-justify-end univer-gap-2`,children:[(0,p.jsx)(c.Button,{onClick:()=>{F&&re.navigateToRange(F.unitId,F.subUnitId,{startRow:F.row,endRow:F.row,startColumn:F.col,endColumn:F.col},!0),R.executeCommand(ae.id)},children:A.t(`hyperLink.form.cancel`)}),(0,p.jsx)(c.Button,{variant:`primary`,onClick:async()=>{ve()},children:A.t(`hyperLink.form.ok`)})]})]}):null};j.componentKey=`univer.sheet.cell-link-edit`;const M={[d.SheetHyperLinkType.URL]:(0,p.jsx)(m.LinkIcon,{}),[d.SheetHyperLinkType.SHEET]:(0,p.jsx)(m.XlsxMultiIcon,{className:`univer-text-green-500`}),[d.SheetHyperLinkType.RANGE]:(0,p.jsx)(m.AllBorderIcon,{}),[d.SheetHyperLinkType.DEFINE_NAME]:(0,p.jsx)(m.AllBorderIcon,{}),[d.SheetHyperLinkType.INVALID]:(0,p.jsx)(m.AllBorderIcon,{})},N=t=>{var r,i;let a=(0,o.useDependency)(I),s=(0,o.useDependency)(e.ICommandService),l=(0,o.useDependency)(o.IMessageService),u=(0,o.useDependency)(e.LocaleService),f=(0,o.useDependency)(E),h=(0,o.useDependency)(n.IEditorBridgeService),_=(0,o.useDependency)(d.SheetsHyperLinkParserService),v=(0,o.useDependency)(o.IZenZoneService),{customRange:y,row:b,col:x,unitId:S,subUnitId:C,editPermission:w,copyPermission:T,type:D}=t;if(!(!(y==null||(r=y.properties)==null)&&r.url))return null;let O=_.parseHyperLink((i=y.properties.url)==null?``:i),k=O.type===d.SheetHyperLinkType.INVALID;return(0,p.jsxs)(`div`,{className:(0,c.clsx)(`univer-mb-1 univer-flex univer-max-w-80 univer-flex-row univer-items-center univer-justify-between univer-overflow-hidden univer-rounded-lg univer-bg-white univer-p-3 univer-shadow-md dark:!univer-bg-gray-900`,c.borderClassName),onClick:()=>a.hideCurrentPopup(),children:[(0,p.jsxs)(`div`,{className:(0,c.clsx)(`univer-flex univer-h-6 univer-flex-1 univer-cursor-pointer univer-flex-row univer-items-center univer-truncate univer-text-sm univer-leading-5 univer-text-primary-600`,{"univer-text-red-500":k}),onClick:()=>{v.visible||k||f.navigate(O)},children:[(0,p.jsx)(`div`,{className:`univer-mr-2 univer-flex univer-size-5 univer-flex-none univer-items-center univer-justify-center univer-text-base univer-text-gray-900 dark:!univer-text-white`,children:M[O.type]}),(0,p.jsx)(c.Tooltip,{showIfEllipsis:!0,title:O.name,asChild:!0,children:(0,p.jsx)(`span`,{className:`univer-flex-1 univer-truncate`,children:O.name})})]}),(0,p.jsxs)(`div`,{className:`univer-flex univer-h-6 univer-flex-none univer-flex-row univer-items-center univer-justify-center`,children:[T&&(0,p.jsx)(`div`,{className:(0,c.clsx)(`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,{"univer-text-red-500":k}),onClick:()=>{if(!k){if(O.type!==d.SheetHyperLinkType.URL){let e=new URL(window.location.href);e.hash=O.url.slice(1),navigator.clipboard.writeText(e.href)}else navigator.clipboard.writeText(O.url);l.show({content:u.t(`hyperLink.message.coped`),type:c.MessageType.Info})}},children:(0,p.jsx)(c.Tooltip,{placement:`bottom`,title:u.t(`hyperLink.popup.copy`),children:(0,p.jsx)(m.CopyIcon,{className:`dark:!univer-text-white`})})}),w&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{s.executeCommand(B.id,{unitId:S,subUnitId:C,row:b,col:x,customRangeId:y.rangeId,type:D})},children:(0,p.jsx)(c.Tooltip,{placement:`bottom`,title:u.t(`hyperLink.popup.edit`),children:(0,p.jsx)(m.WriteIcon,{className:`dark:!univer-text-white`})})}),(0,p.jsx)(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{let t=D===g.EDITING||D===g.ZEN_EDITOR?d.CancelRichHyperLinkCommand.id:d.CancelHyperLinkCommand.id;s.syncExecuteCommand(t,{unitId:S,subUnitId:C,id:y.rangeId,row:b,column:x,documentId:D===g.ZEN_EDITOR?e.DOCS_ZEN_EDITOR_UNIT_ID_KEY:h.getCurrentEditorId()})&&a.hideCurrentPopup(void 0,!0)},children:(0,p.jsx)(c.Tooltip,{placement:`bottom`,title:u.t(`hyperLink.popup.cancel`),children:(0,p.jsx)(m.UnlinkIcon,{className:`dark:!univer-text-white`})})})]})]})]})},P=()=>{let t=(0,o.useDependency)(I),[n,r]=(0,f.useState)(null),i=(0,o.useDependency)(e.IUniverInstanceService);if((0,f.useEffect)(()=>{r(t.currentPopup);let e=t.currentPopup$.subscribe(e=>{r(e)});return()=>{e.unsubscribe()}},[t.currentPopup,t.currentPopup$]),!n)return null;if(n.showAll){var a;let t=i.getUnit(n.unitId,e.UniverInstanceType.UNIVER_SHEET),r=t==null?void 0:t.getSheetBySheetId(n.subUnitId),o=r==null?void 0:r.getCell(n.row,n.col),s=o==null||(a=o.p)==null||(a=a.body)==null?void 0:a.customRanges;return s!=null&&s.length?(0,p.jsx)(`div`,{children:s.map(e=>(0,p.jsx)(N,{...n,customRange:e},e.rangeId))}):null}return(0,p.jsx)(N,{...n})};P.componentKey=`univer.sheet.cell-link-popup`;const F=(e,t)=>{var n,r;return e.unitId===t.unitId&&e.subUnitId===t.subUnitId&&e.row===t.row&&e.col===t.col&&((n=e.customRange)==null?void 0:n.rangeId)===((r=t.customRange)==null?void 0:r.rangeId)&&e.type===t.type};let I=class extends e.Disposable{get currentPopup(){return this._currentPopup}get currentEditing(){return this._currentEditing$.getValue()}constructor(e,t,n,r,i,a,o){super(),this._sheetCanvasPopManagerService=e,this._injector=t,this._univerInstanceService=n,this._editorBridgeService=r,this._textSelectionManagerService=i,this._docCanvasPopManagerService=a,this._zenZoneService=o,A(this,`_currentPopup`,null),A(this,`_currentPopup$`,new s.Subject),A(this,`currentPopup$`,this._currentPopup$.asObservable()),A(this,`_currentEditingPopup`,null),A(this,`_currentEditing$`,new s.BehaviorSubject(null)),A(this,`currentEditing$`,this._currentEditing$.asObservable()),A(this,`_isKeepVisible`,!1),this.disposeWithMe(()=>{this.hideCurrentPopup(),this.endEditing(),this._currentEditing$.complete(),this._currentPopup$.complete()})}setIsKeepVisible(e){this._isKeepVisible=e}getIsKeepVisible(){return this._isKeepVisible}showPopup(t){if(this._currentPopup&&F(t,this._currentPopup)||(this.hideCurrentPopup(void 0,!0),t.type!==g.ZEN_EDITOR&&this._zenZoneService.visible))return;let n=this._currentEditing$.getValue();if(n&&F(t,n))return;let{unitId:r,subUnitId:i,row:a,col:o,customRangeRect:s,customRange:c}=t,l,u={componentKey:P.componentKey,direction:`bottom`,onClickOutside:()=>{this.hideCurrentPopup()},onClick:()=>{this.hideCurrentPopup(t.type,!0)}};if(t.type===g.EDITING){if(!c)return;l=s&&this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(s,u)}else if(t.type===g.ZEN_EDITOR){if(!c)return;l=this._docCanvasPopManagerService.attachPopupToRange({startOffset:c.startIndex,endOffset:c.endIndex+1,collapsed:!1},u,e.DOCS_ZEN_EDITOR_UNIT_ID_KEY)}else if(t.showAll)l=this._sheetCanvasPopManagerService.attachPopupToCell(t.row,t.col,u,r,i);else{if(!c)return;l=s&&this._sheetCanvasPopManagerService.attachPopupByPosition(s,u,t)}if(l){if(this._currentPopup){var d;(d=this._currentPopup.disposable)==null||d.dispose()}this._currentPopup={unitId:r,subUnitId:i,disposable:l,row:a,col:o,editPermission:!!t.editPermission,copyPermission:!!t.copyPermission,customRange:c,type:t.type,showAll:t.showAll},this._currentPopup$.next(this._currentPopup)}}hideCurrentPopup(e,t){if(this._currentPopup&&((!e||e===this._currentPopup.type)&&this._currentPopup.disposable.canDispose()||t)){var n;(n=this._currentPopup)==null||(n=n.disposable)==null||n.dispose(),this._currentPopup=null,this._currentPopup$.next(null)}}dispose(){super.dispose(),this.hideCurrentPopup(),this.endEditing(),this._currentPopup$.complete(),this._currentEditing$.complete()}_getEditingRange(){let t=this._editorBridgeService.isVisible().visible,n=this._editorBridgeService.getEditCellState();if(t&&n){var r,i,a;let t=this._textSelectionManagerService.getActiveTextRange(),o=(r=n.documentLayoutObject.documentModel)==null?void 0:r.getBody();if(!o)return null;if(!t||t.collapsed)return{startOffset:0,endOffset:o.dataStream.length-2,collapsed:o.dataStream.length-2==0,label:e.BuildTextUtils.transform.getPlainText(o.dataStream)};let s=e.BuildTextUtils.customRange.getCustomRangesInterestsWithSelection(t,(i=(a=o.customRanges)==null?void 0:a.filter(t=>t.rangeType===e.CustomRangeType.HYPERLINK))==null?[]:i),c=t.startOffset,l=t.endOffset;return s.forEach(e=>{c=Math.min(c,e.startIndex),l=Math.max(l,e.endIndex+1)}),{startOffset:c,endOffset:l,collapsed:c===l,label:e.BuildTextUtils.transform.getPlainText(o.dataStream.slice(c,l))}}return null}get _editPopup(){return{componentKey:j.componentKey,direction:`vertical`,onClickOutside:()=>{this.endEditing()},onContextMenu:()=>{this.endEditing()},hiddenType:`hide`}}startAddEditing(t){let{unitId:n,subUnitId:r,type:o}=t;if(o===g.ZEN_EDITOR){var s;let n=this._univerInstanceService.getUnit(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY,e.UniverInstanceType.UNIVER_DOC);if(!n)return;let r=this._textSelectionManagerService.getActiveTextRange();if(!r)return;this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange(r,this._editPopup,e.DOCS_ZEN_EDITOR_UNIT_ID_KEY);let i=(s=n.getBody())==null?void 0:s.dataStream.slice(r.startOffset,r.endOffset);this._currentEditing$.next({...t,label:i})}else if(o===g.EDITING){var c;let o=this._getEditingRange();if(!o)return;this._textSelectionManagerService.replaceDocRanges([{...o}],{unitId:e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY});let s=this._injector.get(a.IRenderManagerService).getRenderById(e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);if(!s)return;let l=(0,i.calcDocRangePositions)(o,s);if(!(l!=null&&l.length))return;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(l.pop(),this._editPopup,n,r),this._currentEditing$.next({...t,label:(c=o==null?void 0:o.label)==null?``:c})}else{var l,u,d;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(t.row,t.col,this._editPopup,n,r);let i=this._univerInstanceService.getUnit(n,e.UniverInstanceType.UNIVER_SHEET),a=i==null?void 0:i.getSheetBySheetId(r),o=a==null?void 0:a.getCellRaw(t.row,t.col);this._currentEditing$.next({...t,label:o!=null&&o.p?e.BuildTextUtils.transform.getPlainText((l=(u=o.p.body)==null?void 0:u.dataStream)==null?``:l):((d=o==null?void 0:o.v)==null?``:d).toString()})}}startEditing(t){var r;(r=this._currentEditingPopup)==null||r.dispose(),this.hideCurrentPopup(void 0,!0);let{unitId:i,subUnitId:a}=t,o,s;if(t.type===g.ZEN_EDITOR){var c,l;let n=this._univerInstanceService.getUnit(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY,e.UniverInstanceType.UNIVER_DOC);if(o=n==null||(c=n.getBody())==null||(c=c.customRanges)==null?void 0:c.find(e=>e.rangeId===t.customRangeId),s=o?n==null||(l=n.getBody())==null?void 0:l.dataStream.slice(o.startIndex,o.endIndex+1):``,!o||!s)return;this._textSelectionManagerService.replaceTextRanges([{startOffset:o.startIndex,endOffset:o.endIndex+1}]),this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange({startOffset:o.startIndex,endOffset:o.endIndex,collapsed:!1},this._editPopup,e.DOCS_ZEN_EDITOR_UNIT_ID_KEY)}else if(t.type===g.EDITING){var u;let e=(0,n.getEditingCustomRangePosition)(this._injector,t.unitId,t.subUnitId,t.row,t.col,t.customRangeId);if(!e||!((u=e.rects)!=null&&u.length))return;o=e.customRange,s=e.label,this._textSelectionManagerService.replaceTextRanges([{startOffset:o.startIndex,endOffset:o.endIndex+1}]),this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(e.rects.pop(),this._editPopup,i,a)}else{var d;let r=this._univerInstanceService.getUnit(i,e.UniverInstanceType.UNIVER_SHEET),c=r==null?void 0:r.getSheetBySheetId(a),l=c==null?void 0:c.getCellRaw(t.row,t.col),u=r==null?void 0:r.getStyles().getStyleByCell(l),f=u==null?void 0:u.tr,p=(0,n.getCustomRangePosition)(this._injector,t.unitId,t.subUnitId,t.row,t.col,t.customRangeId);if(!p||!((d=p.rects)!=null&&d.length))return;o=p.customRange,s=p.label,f?this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(t.row,t.col,this._editPopup,i,a):this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupByPosition(p.rects.pop(),this._editPopup,{unitId:i,subUnitId:a,row:t.row,col:t.col})}this._currentEditing$.next({...t,customRange:o,label:s})}endEditing(e){if(this.getIsKeepVisible())return;let t=this._currentEditing$.getValue();if(t&&(!e||e===t.type)){var n;(n=this._currentEditingPopup)==null||n.dispose(),this._currentEditing$.next(null)}}};I=w([C(0,(0,e.Inject)(n.SheetCanvasPopManagerService)),C(1,(0,e.Inject)(e.Injector)),C(2,e.IUniverInstanceService),C(3,n.IEditorBridgeService),C(4,(0,e.Inject)(r.DocSelectionManagerService)),C(5,(0,e.Inject)(i.DocCanvasPopManagerService)),C(6,o.IZenZoneService)],I);let L=function(e){return e[e.ALLOWED=0]=`ALLOWED`,e[e.DISABLED_BY_CELL=1]=`DISABLED_BY_CELL`,e[e.ALLOW_ON_EDITING=2]=`ALLOW_ON_EDITING`,e}({});const re=new Set([e.DataValidationType.CHECKBOX,e.DataValidationType.LIST,e.DataValidationType.LIST_MULTIPLE]),R=(e,t,n,r)=>{var i,a;let o=t.getCell(n,r);if(o!=null&&o.f||o!=null&&o.si||!(o==null||(i=o.p)==null||(i=i.body)==null||(i=i.customBlocks)==null)&&i.length)return L.DISABLED_BY_CELL;let s=e.has(h.SheetDataValidationModel)?e.get(h.SheetDataValidationModel):null,c=s==null?void 0:s.getRuleByLocation(t.getUnitId(),t.getSheetId(),n,r);return c&&re.has(c.type)?!0:!(o==null||(a=o.p)==null||(a=a.drawingsOrder)==null)&&a.length?L.ALLOW_ON_EDITING:L.ALLOWED},z=n=>{let r=n.get(e.IUniverInstanceService).getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(!r)return!0;let i=r.getActiveSheet(),a=n.get(t.SheetsSelectionsService).getCurrentSelections();if(!a.length)return!0;let o=a[0].range.startRow,s=a[0].range.startColumn;return R(n,i,o,s)===L.DISABLED_BY_CELL},ie=t=>{let n=t.get(r.DocSelectionManagerService),i=t.get(e.IUniverInstanceService),a=n.getTextRanges();if(!(a!=null&&a.length))return!0;let o=i.getCurrentUnitForType(e.UniverInstanceType.UNIVER_DOC);return!!(!o||a.every(e=>e.collapsed)||!o.getSelfOrHeaderFooterModel(a[0].segmentId).getBody())},B={type:e.CommandType.OPERATION,id:`sheet.operation.open-hyper-link-edit-panel`,handler(e,t){if(!t)return!1;let n=e.get(I);return t.customRangeId?n.startEditing(t):n.startAddEditing(t),!0}},ae={type:e.CommandType.OPERATION,id:`sheet.operation.close-hyper-link-popup`,handler(e){return e.get(I).endEditing(),!0}},V={type:e.CommandType.OPERATION,id:`sheet.operation.insert-hyper-link`,handler(r){var i;let a=r.get(e.IUniverInstanceService),o=(0,t.getSheetCommandTarget)(a),s=r.get(n.IEditorBridgeService);if(!o)return!1;let c=r.get(e.ICommandService),l=r.get(t.SheetsSelectionsService).getCurrentLastSelection();if(!l)return!1;let u=l.range.startRow,d=l.range.startColumn,f=s.isVisible(),p=((i=a.getFocusedUnit())==null?void 0:i.getUnitId())===e.DOCS_ZEN_EDITOR_UNIT_ID_KEY;return c.executeCommand(B.id,{unitId:o.unitId,subUnitId:o.subUnitId,row:u,col:d,type:p?g.ZEN_EDITOR:f.visible?g.EDITING:g.VIEWING})}},H={type:e.CommandType.OPERATION,id:`sheet.operation.insert-hyper-link-toolbar`,handler(t){if(z(t))return!1;let n=t.get(e.ICommandService);return t.get(I).currentEditing?n.executeCommand(ae.id):n.executeCommand(V.id)}},oe=`SHEET_HYPER_LINK_UI_PLUGIN`;let U=class extends e.Disposable{registerPlainTextFilter(e){this._plainTextFilter.add(e)}removePlainTextFilter(e){this._plainTextFilter.delete(e)}_filterPlainText(e){return Array.from(this._plainTextFilter).every(t=>t(e))}constructor(e,t,n,r){super(),this._sheetClipboardService=e,this._hyperLinkModel=t,this._injector=n,this._resolverService=r,A(this,`_plainTextFilter`,new Set),A(this,`_copyInfo`,void 0),this._initCopyPaste(),this.disposeWithMe(()=>{this._plainTextFilter.clear()})}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:oe,onBeforeCopy:(e,t,n)=>this._collect(e,t,n),onPasteCells:(e,t,r,i)=>{let{copyType:a=n.COPY_TYPE.COPY,pasteType:o}=i,{range:s}=e||{},{range:c,unitId:l,subUnitId:u}=t;return this._generateMutations(c,{copyType:a,pasteType:o,copyRange:s,unitId:l,subUnitId:u})},onPastePlainText:(t,r)=>{let i=this._filterPlainText(r);if(_(r)&&i){let{range:r,unitId:i,subUnitId:a}=t,{ranges:[o],mapFunc:s}=(0,n.virtualizeDiscreteRanges)([r]),c=[],l=[];return e.Range.foreach(o,(e,t)=>{let{row:n,col:r}=s(e,t),o=this._hyperLinkModel.getHyperLinkByLocation(i,a,n,r);o&&c.push({id:d.RemoveHyperLinkMutation.id,params:{unitId:i,subUnitId:a,id:o.id}}),o&&l.push({id:d.AddHyperLinkMutation.id,params:{unitId:i,subUnitId:a,link:o}})}),{redos:c,undos:l}}return{undos:[],redos:[]}},priority:99})}_collect(n,r,i){let a=new e.ObjectMatrix;this._copyInfo={unitId:n,subUnitId:r,matrix:a};let o=this._injector.invoke(e=>(0,t.rangeToDiscreteRange)(i,e,n,r));if(!o)return;let{rows:s,cols:c}=o;s.forEach((e,t)=>{c.forEach((i,o)=>{var s;let c=this._hyperLinkModel.getHyperLinkByLocation(n,r,e,i);a.setValue(t,o,(s=c==null?void 0:c.id)==null?``:s)})})}_generateMutations(t,r){if(!this._copyInfo||!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!r.copyRange||[n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA].includes(r.pasteType))return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=this._copyInfo,o=[],s=[],{ranges:[c,l],mapFunc:u}=(0,n.virtualizeDiscreteRanges)([r.copyRange,t]);return(0,n.getRepeatRange)(c,l,!0).forEach(({startRange:t})=>{var n;(n=this._copyInfo)==null||n.matrix.forValue((n,c,l)=>{let f=e.Rectangle.getPositionRange({startRow:n,endRow:n,startColumn:c,endColumn:c},t),p=this._hyperLinkModel.getHyperLink(i,a,l),{row:m,col:h}=u(f.startRow,f.startColumn),g=this._hyperLinkModel.getHyperLinkByLocation(r.unitId,r.subUnitId,m,h),_=(0,e.generateRandomId)();g&&o.push({id:d.RemoveHyperLinkMutation.id,params:{unitId:r.unitId,subUnitId:r.subUnitId,id:g.id}}),p&&(o.push({id:d.AddHyperLinkMutation.id,params:{unitId:r.unitId,subUnitId:r.subUnitId,link:{...p,id:_,row:m,column:h}}}),s.push({id:d.RemoveHyperLinkMutation.id,params:{unitId:r.unitId,subUnitId:r.subUnitId,id:_}})),g&&s.push({id:d.AddHyperLinkMutation.id,params:{unitId:r.unitId,subUnitId:r.subUnitId,link:g}})})}),{redos:o,undos:s}}};U=w([C(0,n.ISheetClipboardService),C(1,(0,e.Inject)(d.HyperLinkModel)),C(2,(0,e.Inject)(e.Injector)),C(3,(0,e.Inject)(E))],U);const se=(r,o=e.DOCS_ZEN_EDITOR_UNIT_ID_KEY)=>{var c;let l=r.get(e.IUniverInstanceService),u=(c=r.get(a.IRenderManagerService).getRenderById(o))==null?void 0:c.with(i.DocSelectionRenderService);return u?u.textSelectionInner$.pipe((0,s.map)(()=>{let e=r.get(n.IEditorBridgeService).getEditCellState();if(!e)return!0;let i=(0,t.getSheetCommandTarget)(l,{unitId:e.unitId,subUnitId:e.sheetId});return!(i!=null&&i.worksheet)||R(r,i.worksheet,e.row,e.column)===1?!0:ie(r)})):(0,s.of)(!0)},ce=r=>{var i;let a=r.get(e.IUniverInstanceService),o=r.has(n.IEditorBridgeService)?r.get(n.IEditorBridgeService):null;return((i=o==null?void 0:o.currentEditCellState$.pipe((0,s.map)(e=>{if(!e)return L.DISABLED_BY_CELL;let n=(0,t.getSheetCommandTarget)(a,{unitId:e.unitId,subUnitId:e.sheetId});return n?R(r,n.worksheet,e.row,e.column):L.DISABLED_BY_CELL}),(0,s.switchMap)(t=>t===L.DISABLED_BY_CELL?(0,s.of)(!0):(0,s.combineLatest)([o?o.visible$:(0,s.of)(null),a.getCurrentTypeOfUnit$(e.UniverInstanceType.UNIVER_DOC)]).pipe((0,s.switchMap)(([n,i])=>n!=null&&n.visible?(i==null?void 0:i.getUnitId())===e.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY?(0,s.of)(!0):se(r,e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY):(0,s.of)(t!==L.ALLOWED))))))==null?(0,s.of)(!0):i).pipe((0,s.switchMap)(e=>e?(0,s.of)(!0):(0,n.getCurrentRangeDisable$)(r,{workbookTypes:[t.WorkbookEditablePermission],worksheetTypes:[t.WorksheetEditPermission,t.WorksheetSetCellValuePermission,t.WorksheetInsertHyperlinkPermission],rangeTypes:[t.RangeProtectionPermissionEditPoint]},!0)))},W={commandId:V.id,type:o.MenuItemType.BUTTON,title:`hyperLink.menu.add`,icon:`LinkIcon`},le=e=>`${e}-zen-editor`,ue=t=>({...W,id:W.commandId,hidden$:(0,o.getMenuHiddenObservable)(t,e.UniverInstanceType.UNIVER_SHEET),disabled$:ce(t)}),de=t=>({...W,id:le(W.commandId),hidden$:(0,o.getMenuHiddenObservable)(t,e.UniverInstanceType.UNIVER_DOC,e.DOCS_ZEN_EDITOR_UNIT_ID_KEY),disabled$:se(t)}),G={tooltip:`hyperLink.form.addTitle`,commandId:H.id,type:o.MenuItemType.BUTTON,icon:`LinkIcon`},K=t=>({...G,id:G.commandId,hidden$:(0,o.getMenuHiddenObservable)(t,e.UniverInstanceType.UNIVER_SHEET),disabled$:ce(t)}),fe=t=>({...G,id:le(G.commandId),hidden$:(0,o.getMenuHiddenObservable)(t,e.UniverInstanceType.UNIVER_DOC,e.DOCS_ZEN_EDITOR_UNIT_ID_KEY),disabled$:se(t)}),q={id:H.id,binding:o.KeyCode.K|o.MetaKeys.CTRL_COMMAND,preconditions:n.whenSheetEditorFocused};var pe=`@univerjs/sheets-hyper-link-ui`,J=`0.20.0`;let Y=class extends e.Disposable{constructor(e,t){super(),this._autoFillService=e,this._hyperLinkModel=t,this._initAutoFill()}_initAutoFill(){let r=()=>({redos:[],undos:[]}),i=(r,i)=>{let{source:a,target:o,unitId:s,subUnitId:c}=r,l=(0,n.virtualizeDiscreteRanges)([a,o]),[u,f]=l.ranges,{mapFunc:p}=l,m={row:u.startRow,col:u.startColumn},h=t.AutoFillTools.getAutoFillRepeatRange(u,f),g=[],_=[];return h.forEach(n=>{let r=n.repeatStartCell,a=n.relativeRange,o={startRow:m.row,startColumn:m.col,endColumn:m.col,endRow:m.row},l={startRow:r.row,startColumn:r.col,endColumn:r.col,endRow:r.row};e.Range.foreach(a,(n,r)=>{let a=e.Rectangle.getPositionRange({startRow:n,startColumn:r,endColumn:r,endRow:n},o),{row:u,col:f}=p(a.startRow,a.startColumn),m=this._hyperLinkModel.getHyperLinkByLocation(s,c,u,f),h=e.Rectangle.getPositionRange({startRow:n,startColumn:r,endColumn:r,endRow:n},l),{row:v,col:y}=p(h.startRow,h.startColumn),b=(0,e.generateRandomId)(),x=this._hyperLinkModel.getHyperLinkByLocation(s,c,v,y);x&&g.push({id:d.RemoveHyperLinkMutation.id,params:{unitId:s,subUnitId:c,id:x.id}}),(t.AUTO_FILL_APPLY_TYPE.COPY===i||t.AUTO_FILL_APPLY_TYPE.SERIES===i)&&m&&(g.push({id:d.AddHyperLinkMutation.id,params:{unitId:s,subUnitId:c,link:{...m,id:b,row:v,column:y}}}),_.push({id:d.RemoveHyperLinkMutation.id,params:{unitId:s,subUnitId:c,id:b}})),x&&_.push({id:d.AddHyperLinkMutation.id,params:{unitId:s,subUnitId:c,link:x}})})}),{undos:_,redos:g}},a={id:oe,onFillData:(e,n,a)=>a===t.AUTO_FILL_APPLY_TYPE.COPY||a===t.AUTO_FILL_APPLY_TYPE.ONLY_FORMAT||a===t.AUTO_FILL_APPLY_TYPE.SERIES?i(e,a):r()};this.disposeWithMe(this._autoFillService.addHook(a))}};Y=w([C(0,t.IAutoFillService),C(1,(0,e.Inject)(d.HyperLinkModel))],Y);let me=class extends e.Disposable{constructor(e,t,n){super(),this._localeService=e,this._commandService=t,this._sheetPermissionCheckController=n,this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{e.id===q.id&&(this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[t.WorkbookEditablePermission],rangeTypes:[t.RangeProtectionPermissionEditPoint],worksheetTypes:[t.WorksheetEditPermission,t.WorksheetSetCellValuePermission,t.WorksheetInsertHyperlinkPermission]})||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localeService.t(`permission.dialog.hyperLinkErr`)))}))}};me=w([C(0,(0,e.Inject)(e.LocaleService)),C(1,e.ICommandService),C(2,(0,e.Inject)(t.SheetPermissionCheckController))],me);let X=class extends e.Disposable{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._hoverManagerService=e,this._sheetsHyperLinkPopupService=t,this._renderManagerService=n,this._permissionService=r,this._sheetPermissionCheckController=i,this._commandService=a,this._editorBridgeService=o,this._textSelectionManagerService=s,this._univerInstanceService=c,this._zenZoneService=l,this._initHoverListener(),this._initCommandListener(),this._initHoverEditingListener(),this._initTextSelectionListener(),this._initZenEditor()}_getLinkPermission(n){let{unitId:r,subUnitId:i,row:a,col:o}=n,s=this._univerInstanceService.getUnit(r,e.UniverInstanceType.UNIVER_SHEET),c=s==null?void 0:s.getSheetBySheetId(i);if(!c)return{viewPermission:!1,editPermission:!1,copyPermission:!1};let l=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[t.WorkbookViewPermission],worksheetTypes:[t.WorksheetViewPermission],rangeTypes:[t.RangeProtectionPermissionViewPoint]},[{startRow:a,startColumn:o,endRow:a,endColumn:o}],r,i),u=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[t.WorkbookEditablePermission],worksheetTypes:[t.WorksheetEditPermission,t.WorksheetInsertHyperlinkPermission],rangeTypes:[t.RangeProtectionPermissionEditPoint]},[{startRow:a,startColumn:o,endRow:a,endColumn:o}],r,i),d=c.getCellRaw(a,o);d!=null&&d.f&&d.f.startsWith(`=HYPERLINK(`)&&(u=!1);let f=this._permissionService.composePermission([new t.WorkbookCopyPermission(r).id,new t.WorksheetCopyPermission(r,i).id]).every(e=>e.value);return{viewPermission:l,editPermission:u,copyPermission:f}}_initHoverListener(){this.disposeWithMe(this._hoverManagerService.currentRichText$.pipe((0,s.debounceTime)(200)).subscribe(t=>{var r,i,a;if(!t||((r=t.customRange)==null?void 0:r.rangeType)!==e.CustomRangeType.HYPERLINK){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let{unitId:o,subUnitId:s,row:c,col:l}=t,u=this._renderManagerService.getRenderById(o);if(!u)return;let d=this._univerInstanceService.getUnit(o,e.UniverInstanceType.UNIVER_SHEET),f=d==null?void 0:d.getSheetBySheetId(s);if(!f)return;if(!u.with(n.HoverRenderController).active){this._sheetsHyperLinkPopupService.hideCurrentPopup(g.VIEWING);return}let p=u==null||(i=u.with(n.SheetSkeletonManagerService).getSkeletonParam(s))==null?void 0:i.skeleton,m=l,h=c,_=h,v=m;p&&p.overflowCache.forValue((t,n,r)=>{e.Rectangle.contains(r,{startColumn:m,endColumn:m,startRow:h,endRow:h})&&(_=t,v=n)});let{viewPermission:y,editPermission:b,copyPermission:x}=this._getLinkPermission(t);if(!y){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let S=f.getCellStyleOnly(_,v),C=d.getStyles().getStyleByCell(S),w=C==null||(a=C.tr)==null?void 0:a.a;if(!w&&!t.customRange){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}this._sheetsHyperLinkPopupService.showPopup({row:_,col:v,editPermission:b,copyPermission:x,customRange:t.customRange,customRangeRect:t.rect,type:g.VIEWING,unitId:o,subUnitId:s,showAll:!!w})}))}_initHoverEditingListener(){let t=null;this.disposeWithMe(this._editorBridgeService.currentEditCellState$.pipe((0,s.switchMap)(e=>this._editorBridgeService.visible$.pipe((0,s.map)(t=>({visible:t,state:e}))))).subscribe(({visible:r,state:a})=>{if(!a||a.editorUnitId!==e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)return;if(!r.visible){t==null||t.unsubscribe(),this._sheetsHyperLinkPopupService.hideCurrentPopup(g.EDITING),this._sheetsHyperLinkPopupService.endEditing(g.EDITING);return}let{editorUnitId:o,unitId:c,sheetId:l,row:u,column:d}=a,f=this._renderManagerService.getRenderById(o);if(!f)return;let{editPermission:p,viewPermission:m,copyPermission:h}=this._getLinkPermission({unitId:c,subUnitId:l,row:u,col:d}),_=f.with(i.DocEventManagerService);m&&(t==null||t.unsubscribe(),t=_.hoverCustomRanges$.pipe((0,s.debounceTime)(200)).subscribe(t=>{var r;let i=t.find(t=>t.range.rangeType===e.CustomRangeType.HYPERLINK);if(!i){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let a=i.rects[i.rects.length-1];if(!(!((r=this._renderManagerService.getRenderById(c))==null||(r=r.with(n.SheetSkeletonManagerService).getSkeletonParam(l))==null)&&r.skeleton)||!a)return;let o=f.engine.getCanvasElement().getBoundingClientRect();this._sheetsHyperLinkPopupService.showPopup({unitId:c,subUnitId:l,row:u,col:d,customRange:i.range,customRangeRect:{left:a.left+o.left,top:a.top+o.top,bottom:a.bottom+o.top,right:a.right+o.left},editPermission:p,copyPermission:h,type:g.EDITING})}))})),this.disposeWithMe(()=>{t==null||t.unsubscribe()})}_initZenEditor(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e?(this._sheetsHyperLinkPopupService.hideCurrentPopup(g.VIEWING),this._sheetsHyperLinkPopupService.hideCurrentPopup(g.EDITING),this._sheetsHyperLinkPopupService.endEditing(g.EDITING),this._sheetsHyperLinkPopupService.hideCurrentPopup(g.VIEWING)):(this._sheetsHyperLinkPopupService.hideCurrentPopup(g.ZEN_EDITOR),this._sheetsHyperLinkPopupService.endEditing(g.ZEN_EDITOR))})),this.disposeWithMe(this._univerInstanceService.focused$.pipe((0,s.switchMap)(t=>{let n=t===e.DOCS_ZEN_EDITOR_UNIT_ID_KEY?this._renderManagerService.getRenderById(t):null;return n?n.with(i.DocEventManagerService).hoverCustomRanges$.pipe((0,s.debounceTime)(200)):new s.Observable(e=>{e.next(null)})})).subscribe(t=>{let n=t==null?void 0:t.find(t=>t.range.rangeType===e.CustomRangeType.HYPERLINK),r=this._editorBridgeService.getEditCellState();if(n&&r){let{unitId:e,sheetId:t,row:i,column:a}=r,{editPermission:o,viewPermission:s,copyPermission:c}=this._getLinkPermission({unitId:e,subUnitId:t,row:i,col:a});s&&this._sheetsHyperLinkPopupService.showPopup({type:g.ZEN_EDITOR,unitId:e,subUnitId:t,row:i,col:a,customRange:n.range,editPermission:o,copyPermission:c})}else this._sheetsHyperLinkPopupService.hideCurrentPopup(g.ZEN_EDITOR)}))}_initTextSelectionListener(){this.disposeWithMe(this._textSelectionManagerService.textSelection$.subscribe(t=>{t&&t.unitId===e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY&&this._sheetsHyperLinkPopupService.endEditing(g.EDITING)}))}_initCommandListener(){let e=[t.ClearSelectionContentCommand.id,t.ClearSelectionAllCommand.id,t.ClearSelectionFormatCommand.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{e.includes(t.id)&&this._sheetsHyperLinkPopupService.hideCurrentPopup()}))}};X=w([C(0,(0,e.Inject)(n.HoverManagerService)),C(1,(0,e.Inject)(I)),C(2,(0,e.Inject)(a.IRenderManagerService)),C(3,(0,e.Inject)(e.IPermissionService)),C(4,(0,e.Inject)(t.SheetPermissionCheckController)),C(5,e.ICommandService),C(6,n.IEditorBridgeService),C(7,(0,e.Inject)(r.DocSelectionManagerService)),C(8,e.IUniverInstanceService),C(9,o.IZenZoneService)],X);let he=class extends e.Disposable{constructor(e,t){super(),this._context=e,this._hyperLinkModel=t,this._initSkeletonChange()}_initSkeletonChange(){let e=()=>{var e;(e=this._context.mainComponent)==null||e.makeForceDirty()};this.disposeWithMe(this._hyperLinkModel.linkUpdate$.pipe((0,s.debounceTime)(16)).subscribe(()=>{e()}))}};he=w([C(1,(0,e.Inject)(d.HyperLinkModel))],he);let ge=class extends e.Disposable{constructor(e,t){super(),this._sheetInterceptorService=e,this._hyperLinkModel=t,this._initViewModelIntercept()}_initViewModelIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(t.INTERCEPTOR_POINT.CELL_CONTENT,{effect:e.InterceptorEffectEnum.Value,priority:100,handler:(e,t,n)=>{let{row:r,col:i,unitId:a,subUnitId:o}=t,s=this._hyperLinkModel.getHyperLinkByLocation(a,o,r,i);return s&&e?(e===t.rawData&&(e={...t.rawData}),e.linkUrl=s.payload,e.linkId=s.id,n(e)):n(e)}}))}};ge=w([C(0,(0,e.Inject)(t.SheetInterceptorService)),C(1,(0,e.Inject)(d.HyperLinkModel))],ge);const _e={[o.RibbonInsertGroup.MEDIA]:{[H.id]:{order:1,menuItemFactory:K},[le(H.id)]:{order:1,menuItemFactory:fe}},[o.ContextMenuPosition.MAIN_AREA]:{[o.ContextMenuGroup.OTHERS]:{order:1,[H.id]:{order:0,menuItemFactory:ue},[le(H.id)]:{order:0,menuItemFactory:de}}}};let Z=class extends e.Disposable{constructor(e,t,n,r,i){super(),this._componentManager=e,this._commandService=t,this._menuManagerService=n,this._injector=r,this._shortcutService=i,this._initComponents(),this._initCommands(),this._initMenus(),this._initShortCut()}_initComponents(){[[P.componentKey,P],[j.componentKey,j],[`LinkIcon`,m.LinkIcon]].forEach(([e,t])=>{this._componentManager.register(e,t)})}_initCommands(){[B,ae,V,H].forEach(e=>{this._commandService.registerCommand(e)})}_initMenus(){this._menuManagerService.mergeMenu(_e)}_initShortCut(){this._shortcutService.registerShortcut(q)}};Z=w([C(0,(0,e.Inject)(o.ComponentManager)),C(1,e.ICommandService),C(2,o.IMenuManagerService),C(3,(0,e.Inject)(e.Injector)),C(4,(0,e.Inject)(o.IShortcutService))],Z);let Q=class extends e.Disposable{constructor(e,t){super(),this._parserService=e,this._resolverService=t,this._handleInitUrl()}_handleInitUrl(){let e=location.hash;if(e){let t=this._parserService.parseHyperLink(e);this._resolverService.navigate(t)}}};Q=w([C(0,(0,e.Inject)(d.SheetsHyperLinkParserService)),C(1,(0,e.Inject)(E))],Q);let $=class extends e.Plugin{constructor(t=S,n,r){super(),this._config=t,this._injector=n,this._configService=r;let{menu:i,...a}=(0,e.merge)({},S,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(x,a)}onStarting(){[[E],[I],[ee],[ge],[X],[Z],[Y],[U],[me],[Q]].forEach(e=>this._injector.add(e)),this._injector.get(ge)}onReady(){this._injector.get(a.IRenderManagerService).registerRenderModule(e.UniverInstanceType.UNIVER_SHEET,[he]),this._injector.get(Y),this._injector.get(U),this._injector.get(Z)}onRendered(){this._injector.get(me),this._injector.get(Q),this._injector.get(X)}};A($,`pluginName`,oe),A($,`packageName`,pe),A($,`version`,J),A($,`type`,e.UniverInstanceType.UNIVER_SHEET),$=w([(0,e.DependentOn)(d.UniverSheetsHyperLinkPlugin,i.UniverDocsUIPlugin),C(1,(0,e.Inject)(e.Injector)),C(2,e.IConfigService)],$),exports.CloseHyperLinkPopupOperation=ae,exports.InsertHyperLinkOperation=V,exports.InsertLinkShortcut=q,exports.OpenHyperLinkEditPanelOperation=B,Object.defineProperty(exports,`SheetsHyperLinkCopyPasteController`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`SheetsHyperLinkPopupService`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`SheetsHyperLinkResolverService`,{enumerable:!0,get:function(){return E}}),exports.SheetsHyperLinkSidePanelService=ee,Object.defineProperty(exports,`UniverSheetsHyperLinkUIPlugin`,{enumerable:!0,get:function(){return $}});
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`@univerjs/sheets`),n=require(`@univerjs/sheets-ui`),r=require(`@univerjs/docs`),i=require(`@univerjs/docs-ui`),a=require(`@univerjs/engine-render`),o=require(`@univerjs/ui`),s=require(`rxjs`),c=require(`@univerjs/design`),l=require(`@univerjs/engine-formula`),u=require(`@univerjs/sheets-formula-ui`),d=require(`@univerjs/sheets-hyper-link`),f=require(`react`),p=require(`react/jsx-runtime`),m=require(`@univerjs/icons`),h=require(`@univerjs/sheets-data-validation`),g=function(e){return e.EDITING=`editing`,e.VIEWING=`viewing`,e.ZEN_EDITOR=`zen_mode`,e}({});function _(t){return e.Tools.isLegalUrl(t)}function v(e){return/^[a-zA-Z]+:\/\//.test(e)}function y(e){return/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(e)}function b(e){if(_(e)){let t=v(e)?e:y(e)?`mailto://${e}`:`http://${e}`,n;try{n=new URL(t)}catch{return e}return n.hostname===location.hostname&&n.port===location.port&&n.protocol===location.protocol&&n.pathname===location.pathname&&n.hash&&!n.search?n.hash:t}return e}const x=`sheets-hyper-link-ui.config`;Symbol(x);const S={};function C(e,t){return function(n,r){t(n,r,e)}}function w(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function T(t,n){let r=n.getMergeData(),i=n.getMaxColumns()-1,a=n.getMaxRows()-1;if(i<t.endColumn&&(t.endColumn=i),a<t.endRow&&(t.endRow=a),t.rangeType===e.RANGE_TYPE.COLUMN||e.RANGE_TYPE.ROW)return t;let o=[];return r.forEach(n=>{e.Rectangle.intersects(t,n)&&o.push(n)}),e.Rectangle.realUnion(t,...o)}let E=class{constructor(e,t,n,r,i,a){this._univerInstanceService=e,this._commandService=t,this._definedNamesService=n,this._messageService=r,this._localeService=i,this._configService=a}navigate(e){switch(e.type){case d.SheetHyperLinkType.URL:this.navigateToOtherWebsite(e.url);break;default:this._navigateToUniver(e.searchObj)}}_navigateToUniver(t){let{gid:n,range:r,rangeid:i}=t,a=this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(!a)return;let o=a.getUnitId();if(i){let e=this._definedNamesService.getValueById(o,i);if(!e)return;let{formulaOrRefString:t}=e,n=this._definedNamesService.getWorksheetByRef(o,t);if(!n){this._messageService.show({content:this._localeService.t(`hyperLink.message.refError`),type:c.MessageType.Error});return}if(n.isSheetHidden()){this._messageService.show({content:this._localeService.t(`hyperLink.message.hiddenSheet`),type:c.MessageType.Error});return}this.navigateToDefineName(o,i)}if(n){if(r){let t=(0,l.deserializeRangeWithSheet)(r);(0,e.isValidRange)(t.range)&&r!==d.ERROR_RANGE&&this.navigateToRange(o,n,t.range);return}this.navigateToSheetById(o,n)}}async navigateToRange(e,r,i,a){let o=await this.navigateToSheetById(e,r);if(o){let s=T(i,o);await this._commandService.executeCommand(t.SetSelectionsOperation.id,{unitId:e,subUnitId:r,selections:[{range:s,primary:null}]}),await this._commandService.executeCommand(n.ScrollToRangeOperation.id,{range:s,forceTop:a})}}async navigateToSheetById(n,r){let i=this._univerInstanceService.getUnit(n,e.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;let a=i.getActiveSheet();if(!a)return!1;if(a.getSheetId()===r)return a;let o=i.getSheetBySheetId(r);return o?i.getHiddenWorksheets().indexOf(r)>-1?(this._messageService.show({content:this._localeService.t(`hyperLink.message.hiddenSheet`),type:c.MessageType.Error}),!1):await this._commandService.executeCommand(t.SetWorksheetActiveOperation.id,{unitId:n,subUnitId:r})?o:!1:(this._messageService.show({content:this._localeService.t(`hyperLink.message.noSheet`),type:c.MessageType.Error}),!1)}async navigateToDefineName(e,t){return this._definedNamesService.focusRange(e,t),!0}async navigateToOtherWebsite(e){var t;let n=this._configService.getConfig(x);if(!(n==null||(t=n.urlHandler)==null)&&t.navigateToOtherWebsite)return n.urlHandler.navigateToOtherWebsite(e);window.open(e,`_blank`,`noopener noreferrer`)}};E=w([C(0,e.IUniverInstanceService),C(1,e.ICommandService),C(2,l.IDefinedNamesService),C(3,o.IMessageService),C(4,(0,e.Inject)(e.LocaleService)),C(5,e.IConfigService)],E);function D(e){"@babel/helpers - typeof";return D=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},D(e)}function O(e,t){if(D(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(D(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function k(e){var t=O(e,`string`);return D(t)==`symbol`?t:t+``}function A(e,t,n){return(t=k(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ee=class extends e.Disposable{constructor(...e){super(...e),A(this,`_customHyperLinks`,new Map)}isBuiltInLinkType(e){return e!==d.SheetHyperLinkType.URL}getOptions(){return Array.from(this._customHyperLinks.values()).map(({option:e})=>e)}findCustomHyperLink(e){return Array.from(this._customHyperLinks.values()).find(t=>t.match(e))}registerCustomHyperLink(e){this._customHyperLinks.set(e.type,e)}getCustomHyperLink(e){return this._customHyperLinks.get(e)}removeCustomHyperLink(e){let{_customHyperLinks:t}=this;t.delete(e)}dispose(){super.dispose(),this._customHyperLinks.clear()}};function te(e){return e.trim().length===0}function ne(t,n){let[r]=t.split(`,`).map(l.deserializeRangeWithSheet);return!r||!(0,e.isValidRange)(r.range)?``:(r.sheetName||(r.sheetName=n),(0,l.serializeRangeToRefString)(r))}const re=()=>{var s;let[m,h]=(0,f.useState)(``),[v,y]=(0,f.useState)(!1),[x,S]=(0,f.useState)(``),[C,w]=(0,f.useState)(!0),[T,D]=(0,f.useState)(d.SheetHyperLinkType.URL),[O,k]=(0,f.useState)(``),A=(0,o.useDependency)(e.LocaleService),re=(0,o.useDependency)(l.IDefinedNamesService),j=(0,o.useDependency)(n.IEditorBridgeService),M=(0,o.useDependency)(e.IUniverInstanceService),N=(0,o.useDependency)(F),P=(0,o.useObservable)(N.currentEditing$),I=(0,o.useDependency)(d.SheetsHyperLinkParserService),ie=(0,o.useDependency)(E),L=(0,o.useDependency)(e.ICommandService),R=(0,o.useDependency)(ee),ae=(0,f.useMemo)(()=>R.getOptions(),[R]),z=(0,o.useDependency)(o.IZenZoneService),V=(0,o.useDependency)(a.IRenderManagerService),H=(0,o.useDependency)(n.IMarkSelectionService),oe=(0,o.useDependency)(r.DocSelectionManagerService),U=(0,o.useDependency)(e.IContextService),se=(0,o.useDependency)(e.ThemeService),ce=(0,o.useDependency)(r.DocSelectionManagerService),[W,le]=(0,f.useState)(!1),ue=(0,o.useDependency)(t.SheetsSelectionsService),de=(0,f.useMemo)(()=>ue.getCurrentSelections(),[]),G=(0,f.useMemo)(()=>{if(!R.isBuiltInLinkType(T))return R.getCustomHyperLink(T)},[R,T]),[K,fe]=(0,f.useState)(!1),[q,pe]=(0,f.useState)(!1),J=(0,f.useRef)(!1),Y=M.getCurrentUnitOfType(e.UniverInstanceType.UNIVER_SHEET),me=(Y==null?void 0:Y.getActiveSheet().getSheetId())||``,X=(0,f.useCallback)(t=>{S(t.replaceAll(e.DataStreamTreeTokenType.CUSTOM_RANGE_START,``).replaceAll(e.DataStreamTreeTokenType.CUSTOM_RANGE_END,``))},[S]);(0,f.useEffect)(()=>{if((P==null?void 0:P.row)!==void 0&&P.col!==void 0){let{customRange:b,row:x,col:S}=P,{label:C}=P;typeof C==`number`&&(C=`${C}`);let T;if(b){var t,n,r,i;T={id:(t=b==null?void 0:b.rangeId)==null?``:t,display:(n=C)==null?``:n,payload:(r=b==null||(i=b.properties)==null?void 0:i.url)==null?``:r,row:x,column:S}}else if(P.type===g.VIEWING){var a,o,s,c;let t=M.getUnit(P.unitId),n=t==null?void 0:t.getSheetBySheetId(P.subUnitId),r=n==null?void 0:n.getCellRaw(P.row,P.col),i=r==null||(a=r.p)==null||(a=a.body)==null||(a=a.customRanges)==null?void 0:a.find(t=>{var n;return t.rangeType===e.CustomRangeType.HYPERLINK&&((n=t.properties)==null?void 0:n.url)}),l=r==null?void 0:r.v;r&&(!e.BuildTextUtils.transform.isEmptyDocument((o=r.p)==null||(o=o.body)==null?void 0:o.dataStream)||e.Tools.isDefine(l))&&w(!1),T={id:``,display:``,payload:(s=i==null||(c=i.properties)==null?void 0:c.url)==null?``:s,row:x,column:S}}else{var u,f,p,m,_;let t=M.getCurrentUnitForType(e.UniverInstanceType.UNIVER_DOC),n=oe.getActiveTextRange(),r=t==null?void 0:t.getBody(),i=n&&r?n:null,a=i&&((u=e.BuildTextUtils.customRange.getCustomRangesInterestsWithSelection(i,(f=r==null?void 0:r.customRanges)==null?[]:f))==null?void 0:u[0]);w(!1),T={id:``,display:(p=C)==null?``:p,payload:(m=a==null||(_=a.properties)==null?void 0:_.url)==null?``:m,row:x,column:S}}h(T.id);let E=R.findCustomHyperLink(T);if(E){let e=E.convert(T);D(e.type),k(e.payload),X(e.display);return}X(T.display);let O=I.parseHyperLink(T.payload);switch(D(O.type===d.SheetHyperLinkType.INVALID?d.SheetHyperLinkType.RANGE:O.type),O.type){case d.SheetHyperLinkType.URL:k(O.url),O.url===T.display&&(J.current=!0);break;case d.SheetHyperLinkType.RANGE:{var v,y;let e=O.searchObj,t=(0,l.serializeRangeWithSheet)(e.gid?(v=(y=M.getUnit(P.unitId))==null||(y=y.getSheetBySheetId(e.gid))==null?void 0:y.getName())==null?``:v:``,(0,l.deserializeRangeWithSheet)(e.range).range);k(t),t===T.display&&(J.current=!0);break}case d.SheetHyperLinkType.SHEET:{let e=O.searchObj;k(e.gid);break}case d.SheetHyperLinkType.DEFINE_NAME:{let e=O.searchObj;k(e.rangeid);break}default:k(``);break}}},[P,ie,R,oe,M]),(0,f.useEffect)(()=>{let t=null;if(P&&!P.customRangeId&&P.type===g.VIEWING&&e.Tools.isDefine(P.row)&&e.Tools.isDefine(P.col)){let n=M.getUnit(P.unitId,e.UniverInstanceType.UNIVER_SHEET),r=n==null?void 0:n.getSheetBySheetId(P.subUnitId),i=r==null?void 0:r.getMergedCell(P.row,P.col),a=new e.ColorKit(se.getColorFromTheme(`primary.600`)).toRgb();t=H.addShape({range:i==null?{startColumn:P.col,endColumn:P.col,startRow:P.row,endRow:P.row}:i,style:{fill:`rgb(${a.r}, ${a.g}, ${a.b}, 0.12)`,strokeWidth:1,stroke:`#FFBD37`,widgets:{}},primary:null},[],-1)}return()=>{t&&H.removeShape(t)}},[P,H,se,M]),(0,f.useEffect)(()=>{pe(T===d.SheetHyperLinkType.RANGE)},[T]),(0,f.useEffect)(()=>{let t=(P==null?void 0:P.type)===g.ZEN_EDITOR?V.getRenderById(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY):V.getRenderById(j.getCurrentEditorId()),n=new e.DisposableCollection;if(t){let e=t.with(i.DocSelectionRenderService);e.setReserveRangesStatus(!0),n.add(()=>{e.setReserveRangesStatus(!1)})}return()=>{j.disableForceKeepVisible(),n.dispose()}},[P==null?void 0:P.type,j,V]),(0,f.useEffect)(()=>(q&&N.setIsKeepVisible(q),N.setIsKeepVisible(W),()=>{N.setIsKeepVisible(!1)}),[q,W,N]),(0,f.useEffect)(()=>()=>{z.temporaryHidden&&(z.show(),U.setContextValue(e.FOCUSING_SHEET,!1))},[U,z]),(0,f.useEffect)(()=>{if(q)return j.enableForceKeepVisible(),()=>{j.disableForceKeepVisible()}},[q,j]);let he=[{label:A.t(`hyperLink.form.link`),value:d.SheetHyperLinkType.URL},{label:A.t(`hyperLink.form.range`),value:d.SheetHyperLinkType.RANGE},{label:A.t(`hyperLink.form.worksheet`),value:d.SheetHyperLinkType.SHEET},{label:A.t(`hyperLink.form.definedName`),value:d.SheetHyperLinkType.DEFINE_NAME},...ae];if(!Y)return;let ge=Y.getHiddenWorksheets(),Z=Y.getSheets().map(e=>({label:e.getName(),value:e.getSheetId()})).filter(e=>ge.indexOf(e.value)===-1),Q=Object.values((s=re.getDefinedNameMap(Y.getUnitId()))==null?{}:s).map(e=>({label:e.name,value:e.id})),$=(e,t)=>{if(e===d.SheetHyperLinkType.URL)return b(t);if(e===d.SheetHyperLinkType.RANGE){let e=(0,l.deserializeRangeWithSheet)(t),n=Y.getSheetBySheetName(e.sheetName);if(n)return`#gid=${n.getSheetId()}&range=${(0,l.serializeRange)(e.range)}`}return`#${e}=${t}`},_e=(0,o.useEvent)(e=>{var t;let n=ne(e,((t=Y.getActiveSheet())==null?void 0:t.getName())||``);if(!n){k(``);return}k(n),n&&(J.current||!x)&&(X(n),J.current=!0)}),ve=async()=>{if(C&&te(x)||!O||T===d.SheetHyperLinkType.URL&&!_(O)){fe(!0);return}if(P)if(m){let t=P.type===g.ZEN_EDITOR||P.type===g.EDITING?d.UpdateRichHyperLinkCommand.id:d.UpdateHyperLinkCommand.id;await L.executeCommand(t,{id:m,unitId:P.unitId,subUnitId:P.subUnitId,payload:{display:C?x:``,payload:$(T,O)},row:P.row,column:P.col,documentId:P.type===g.ZEN_EDITOR?e.DOCS_ZEN_EDITOR_UNIT_ID_KEY:j.getCurrentEditorId()})}else{let t=P.type===g.ZEN_EDITOR||P.type===g.EDITING?d.AddRichHyperLinkCommand.id:d.AddHyperLinkCommand.id;await L.executeCommand(t,{unitId:P.unitId,subUnitId:P.subUnitId,link:{id:(0,e.generateRandomId)(),row:P.row,column:P.col,payload:$(T,O),display:C?x:``},documentId:P.type===g.ZEN_EDITOR?e.DOCS_ZEN_EDITOR_UNIT_ID_KEY:j.getCurrentEditorId()})}(P==null?void 0:P.type)===g.VIEWING&&(await L.executeCommand(t.SetWorksheetActiveOperation.id,{unitId:P.unitId,subUnitId:P.subUnitId}),await L.executeCommand(n.ScrollToRangeOperation.id,{range:{startRow:Math.max(P.row-1,0),endRow:P.row+1,startColumn:Math.max(P.col-1,0),endColumn:P.col+1}})),L.executeCommand(B.id)};return P?(0,p.jsxs)(`div`,{className:(0,c.clsx)(`univer-box-border univer-w-[296px] univer-rounded-xl univer-bg-white univer-p-4 univer-shadow-md dark:!univer-bg-gray-900`,c.borderClassName),children:[C?(0,p.jsx)(c.FormLayout,{label:A.t(`hyperLink.form.label`),error:K&&te(x)?A.t(`hyperLink.form.inputError`):``,children:(0,p.jsx)(c.Input,{value:x,onChange:e=>{X(e),J.current=!1},placeholder:A.t(`hyperLink.form.labelPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===o.KeyCode.ENTER&&ve()}})}):null,(0,p.jsx)(c.FormLayout,{label:A.t(`hyperLink.form.type`),children:(0,p.jsx)(c.Select,{className:`univer-w-full`,options:he,value:T,onChange:e=>{D(e),k(``)}})}),T===d.SheetHyperLinkType.URL&&(0,p.jsx)(c.FormLayout,{error:K?O?_(O)?``:A.t(`hyperLink.form.linkError`):A.t(`hyperLink.form.inputError`):``,children:(0,p.jsx)(c.Input,{value:O,onChange:e=>{k(e),e&&(J.current||!x||x===e)&&(X(e),J.current=!0)},placeholder:A.t(`hyperLink.form.linkPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===o.KeyCode.ENTER&&ve()}})}),T===d.SheetHyperLinkType.RANGE&&(0,p.jsx)(c.FormLayout,{error:K&&!O?A.t(`hyperLink.form.inputError`):``,children:(0,p.jsx)(u.RangeSelector,{unitId:Y.getUnitId(),subUnitId:me,maxRangeCount:1,supportAcrossSheet:!0,initialValue:O,resetRange:de,onChange:(e,t)=>_e(t),onRangeSelectorDialogVisibleChange:async n=>{if(le(n),n)P.type===g.ZEN_EDITOR&&(z.hide(),U.setContextValue(e.FOCUSING_SHEET,!0)),P.type!==g.VIEWING&&j.enableForceKeepVisible(),y(!0);else{if(await ie.navigateToRange(P.unitId,P.subUnitId,{startRow:P.row,endRow:P.row,startColumn:P.col,endColumn:P.col},!0),P.type===g.ZEN_EDITOR){var r,a;await L.executeCommand(t.SetSelectionsOperation.id,{unitId:P.unitId,subUnitId:P.subUnitId,selections:[{range:{startRow:P.row,endRow:P.row,startColumn:P.col,endColumn:P.col}}]}),z.show(),U.setContextValue(e.FOCUSING_SHEET,!1);let n=(r=V.getRenderById(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY))==null?void 0:r.with(i.DocBackScrollRenderController),o=(a=ce.getTextRanges({unitId:e.DOCS_ZEN_EDITOR_UNIT_ID_KEY,subUnitId:e.DOCS_ZEN_EDITOR_UNIT_ID_KEY}))==null?void 0:a[0];n&&o&&(n.scrollToRange(o),ce.refreshSelection({unitId:e.DOCS_ZEN_EDITOR_UNIT_ID_KEY,subUnitId:e.DOCS_ZEN_EDITOR_UNIT_ID_KEY}))}j.disableForceKeepVisible(),y(!1)}},onFocusChange:e=>pe(e)})}),T===d.SheetHyperLinkType.SHEET&&(0,p.jsx)(c.FormLayout,{error:K&&!O?A.t(`hyperLink.form.selectError`):``,children:(0,p.jsx)(c.Select,{className:`univer-w-full`,options:Z,value:O,onChange:e=>{var t,n;k(e);let r=(t=Z.find(t=>t.value===e))==null?void 0:t.label,i=(n=Z.find(e=>e.value===O))==null?void 0:n.label;r&&(J.current||!x||x===i)&&(X(r),J.current=!0)}})}),T===d.SheetHyperLinkType.DEFINE_NAME&&(0,p.jsx)(c.FormLayout,{error:K&&!O?A.t(`hyperLink.form.selectError`):``,children:(0,p.jsx)(c.Select,{className:`univer-w-full`,options:Q,value:O,onChange:e=>{var t,n;k(e);let r=(t=Q.find(t=>t.value===e))==null?void 0:t.label,i=(n=Q.find(e=>e.value===O))==null?void 0:n.label;r&&(J.current||!x||x===i)&&(X(r),J.current=!0)}})}),(G==null?void 0:G.Form)&&(0,p.jsx)(G.Form,{linkId:m,payload:O,display:x,showError:K,setByPayload:J,setDisplay:e=>{X(e),J.current=!0},setPayload:k}),(0,p.jsxs)(`div`,{className:`univer-flex univer-flex-row univer-justify-end univer-gap-2`,children:[(0,p.jsx)(c.Button,{onClick:()=>{P&&ie.navigateToRange(P.unitId,P.subUnitId,{startRow:P.row,endRow:P.row,startColumn:P.col,endColumn:P.col},!0),L.executeCommand(B.id)},children:A.t(`hyperLink.form.cancel`)}),(0,p.jsx)(c.Button,{variant:`primary`,onClick:async()=>{ve()},children:A.t(`hyperLink.form.ok`)})]})]}):null};re.componentKey=`univer.sheet.cell-link-edit`;const j={[d.SheetHyperLinkType.URL]:(0,p.jsx)(m.LinkIcon,{}),[d.SheetHyperLinkType.SHEET]:(0,p.jsx)(m.XlsxMultiIcon,{className:`univer-text-green-500`}),[d.SheetHyperLinkType.RANGE]:(0,p.jsx)(m.AllBorderIcon,{}),[d.SheetHyperLinkType.DEFINE_NAME]:(0,p.jsx)(m.AllBorderIcon,{}),[d.SheetHyperLinkType.INVALID]:(0,p.jsx)(m.AllBorderIcon,{})},M=t=>{var r,i;let a=(0,o.useDependency)(F),s=(0,o.useDependency)(e.ICommandService),l=(0,o.useDependency)(o.IMessageService),u=(0,o.useDependency)(e.LocaleService),f=(0,o.useDependency)(E),h=(0,o.useDependency)(n.IEditorBridgeService),_=(0,o.useDependency)(d.SheetsHyperLinkParserService),v=(0,o.useDependency)(o.IZenZoneService),{customRange:y,row:b,col:x,unitId:S,subUnitId:C,editPermission:w,copyPermission:T,type:D}=t;if(!(!(y==null||(r=y.properties)==null)&&r.url))return null;let O=_.parseHyperLink((i=y.properties.url)==null?``:i),k=O.type===d.SheetHyperLinkType.INVALID;return(0,p.jsxs)(`div`,{className:(0,c.clsx)(`univer-mb-1 univer-flex univer-max-w-80 univer-flex-row univer-items-center univer-justify-between univer-overflow-hidden univer-rounded-lg univer-bg-white univer-p-3 univer-shadow-md dark:!univer-bg-gray-900`,c.borderClassName),onClick:()=>a.hideCurrentPopup(),children:[(0,p.jsxs)(`div`,{className:(0,c.clsx)(`univer-flex univer-h-6 univer-flex-1 univer-cursor-pointer univer-flex-row univer-items-center univer-truncate univer-text-sm univer-leading-5 univer-text-primary-600`,{"univer-text-red-500":k}),onClick:()=>{v.visible||k||f.navigate(O)},children:[(0,p.jsx)(`div`,{className:`univer-mr-2 univer-flex univer-size-5 univer-flex-none univer-items-center univer-justify-center univer-text-base univer-text-gray-900 dark:!univer-text-white`,children:j[O.type]}),(0,p.jsx)(c.Tooltip,{showIfEllipsis:!0,title:O.name,asChild:!0,children:(0,p.jsx)(`span`,{className:`univer-flex-1 univer-truncate`,children:O.name})})]}),(0,p.jsxs)(`div`,{className:`univer-flex univer-h-6 univer-flex-none univer-flex-row univer-items-center univer-justify-center`,children:[T&&(0,p.jsx)(`div`,{className:(0,c.clsx)(`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,{"univer-text-red-500":k}),onClick:()=>{if(!k){if(O.type!==d.SheetHyperLinkType.URL){let e=new URL(window.location.href);e.hash=O.url.slice(1),navigator.clipboard.writeText(e.href)}else navigator.clipboard.writeText(O.url);l.show({content:u.t(`hyperLink.message.coped`),type:c.MessageType.Info})}},children:(0,p.jsx)(c.Tooltip,{placement:`bottom`,title:u.t(`hyperLink.popup.copy`),children:(0,p.jsx)(m.CopyIcon,{className:`dark:!univer-text-white`})})}),w&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{s.executeCommand(z.id,{unitId:S,subUnitId:C,row:b,col:x,customRangeId:y.rangeId,type:D})},children:(0,p.jsx)(c.Tooltip,{placement:`bottom`,title:u.t(`hyperLink.popup.edit`),children:(0,p.jsx)(m.WriteIcon,{className:`dark:!univer-text-white`})})}),(0,p.jsx)(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{let t=D===g.EDITING||D===g.ZEN_EDITOR?d.CancelRichHyperLinkCommand.id:d.CancelHyperLinkCommand.id;s.syncExecuteCommand(t,{unitId:S,subUnitId:C,id:y.rangeId,row:b,column:x,documentId:D===g.ZEN_EDITOR?e.DOCS_ZEN_EDITOR_UNIT_ID_KEY:h.getCurrentEditorId()})&&a.hideCurrentPopup(void 0,!0)},children:(0,p.jsx)(c.Tooltip,{placement:`bottom`,title:u.t(`hyperLink.popup.cancel`),children:(0,p.jsx)(m.UnlinkIcon,{className:`dark:!univer-text-white`})})})]})]})]})},N=()=>{let t=(0,o.useDependency)(F),[n,r]=(0,f.useState)(null),i=(0,o.useDependency)(e.IUniverInstanceService);if((0,f.useEffect)(()=>{r(t.currentPopup);let e=t.currentPopup$.subscribe(e=>{r(e)});return()=>{e.unsubscribe()}},[t.currentPopup,t.currentPopup$]),!n)return null;if(n.showAll){var a;let t=i.getUnit(n.unitId,e.UniverInstanceType.UNIVER_SHEET),r=t==null?void 0:t.getSheetBySheetId(n.subUnitId),o=r==null?void 0:r.getCell(n.row,n.col),s=o==null||(a=o.p)==null||(a=a.body)==null?void 0:a.customRanges;return s!=null&&s.length?(0,p.jsx)(`div`,{children:s.map(e=>(0,p.jsx)(M,{...n,customRange:e},e.rangeId))}):null}return(0,p.jsx)(M,{...n})};N.componentKey=`univer.sheet.cell-link-popup`;const P=(e,t)=>{var n,r;return e.unitId===t.unitId&&e.subUnitId===t.subUnitId&&e.row===t.row&&e.col===t.col&&((n=e.customRange)==null?void 0:n.rangeId)===((r=t.customRange)==null?void 0:r.rangeId)&&e.type===t.type};let F=class extends e.Disposable{get currentPopup(){return this._currentPopup}get currentEditing(){return this._currentEditing$.getValue()}constructor(e,t,n,r,i,a,o){super(),this._sheetCanvasPopManagerService=e,this._injector=t,this._univerInstanceService=n,this._editorBridgeService=r,this._textSelectionManagerService=i,this._docCanvasPopManagerService=a,this._zenZoneService=o,A(this,`_currentPopup`,null),A(this,`_currentPopup$`,new s.Subject),A(this,`currentPopup$`,this._currentPopup$.asObservable()),A(this,`_currentEditingPopup`,null),A(this,`_currentEditing$`,new s.BehaviorSubject(null)),A(this,`currentEditing$`,this._currentEditing$.asObservable()),A(this,`_isKeepVisible`,!1),this.disposeWithMe(()=>{this.hideCurrentPopup(),this.endEditing(),this._currentEditing$.complete(),this._currentPopup$.complete()})}setIsKeepVisible(e){this._isKeepVisible=e}getIsKeepVisible(){return this._isKeepVisible}showPopup(t){if(this._currentPopup&&P(t,this._currentPopup)||(this.hideCurrentPopup(void 0,!0),t.type!==g.ZEN_EDITOR&&this._zenZoneService.visible))return;let n=this._currentEditing$.getValue();if(n&&P(t,n))return;let{unitId:r,subUnitId:i,row:a,col:o,customRangeRect:s,customRange:c}=t,l,u={componentKey:N.componentKey,direction:`bottom`,onClickOutside:()=>{this.hideCurrentPopup()},onClick:()=>{this.hideCurrentPopup(t.type,!0)}};if(t.type===g.EDITING){if(!c)return;l=s&&this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(s,u)}else if(t.type===g.ZEN_EDITOR){if(!c)return;l=this._docCanvasPopManagerService.attachPopupToRange({startOffset:c.startIndex,endOffset:c.endIndex+1,collapsed:!1},u,e.DOCS_ZEN_EDITOR_UNIT_ID_KEY)}else if(t.showAll)l=this._sheetCanvasPopManagerService.attachPopupToCell(t.row,t.col,u,r,i);else{if(!c)return;l=s&&this._sheetCanvasPopManagerService.attachPopupByPosition(s,u,t)}if(l){if(this._currentPopup){var d;(d=this._currentPopup.disposable)==null||d.dispose()}this._currentPopup={unitId:r,subUnitId:i,disposable:l,row:a,col:o,editPermission:!!t.editPermission,copyPermission:!!t.copyPermission,customRange:c,type:t.type,showAll:t.showAll},this._currentPopup$.next(this._currentPopup)}}hideCurrentPopup(e,t){if(this._currentPopup&&((!e||e===this._currentPopup.type)&&this._currentPopup.disposable.canDispose()||t)){var n;(n=this._currentPopup)==null||(n=n.disposable)==null||n.dispose(),this._currentPopup=null,this._currentPopup$.next(null)}}dispose(){super.dispose(),this.hideCurrentPopup(),this.endEditing(),this._currentPopup$.complete(),this._currentEditing$.complete()}_getEditingRange(){let t=this._editorBridgeService.isVisible().visible,n=this._editorBridgeService.getEditCellState();if(t&&n){var r,i,a;let t=this._textSelectionManagerService.getActiveTextRange(),o=(r=n.documentLayoutObject.documentModel)==null?void 0:r.getBody();if(!o)return null;if(!t||t.collapsed)return{startOffset:0,endOffset:o.dataStream.length-2,collapsed:o.dataStream.length-2==0,label:e.BuildTextUtils.transform.getPlainText(o.dataStream)};let s=e.BuildTextUtils.customRange.getCustomRangesInterestsWithSelection(t,(i=(a=o.customRanges)==null?void 0:a.filter(t=>t.rangeType===e.CustomRangeType.HYPERLINK))==null?[]:i),c=t.startOffset,l=t.endOffset;return s.forEach(e=>{c=Math.min(c,e.startIndex),l=Math.max(l,e.endIndex+1)}),{startOffset:c,endOffset:l,collapsed:c===l,label:e.BuildTextUtils.transform.getPlainText(o.dataStream.slice(c,l))}}return null}get _editPopup(){return{componentKey:re.componentKey,direction:`vertical`,onClickOutside:()=>{this.endEditing()},onContextMenu:()=>{this.endEditing()},hiddenType:`hide`}}startAddEditing(t){let{unitId:n,subUnitId:r,type:o}=t;if(o===g.ZEN_EDITOR){var s;let n=this._univerInstanceService.getUnit(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY,e.UniverInstanceType.UNIVER_DOC);if(!n)return;let r=this._textSelectionManagerService.getActiveTextRange();if(!r)return;this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange(r,this._editPopup,e.DOCS_ZEN_EDITOR_UNIT_ID_KEY);let i=(s=n.getBody())==null?void 0:s.dataStream.slice(r.startOffset,r.endOffset);this._currentEditing$.next({...t,label:i})}else if(o===g.EDITING){var c;let o=this._getEditingRange();if(!o)return;this._textSelectionManagerService.replaceDocRanges([{...o}],{unitId:e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY});let s=this._injector.get(a.IRenderManagerService).getRenderById(e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);if(!s)return;let l=(0,i.calcDocRangePositions)(o,s);if(!(l!=null&&l.length))return;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(l.pop(),this._editPopup,n,r),this._currentEditing$.next({...t,label:(c=o==null?void 0:o.label)==null?``:c})}else{var l,u,d;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(t.row,t.col,this._editPopup,n,r);let i=this._univerInstanceService.getUnit(n,e.UniverInstanceType.UNIVER_SHEET),a=i==null?void 0:i.getSheetBySheetId(r),o=a==null?void 0:a.getCellRaw(t.row,t.col);this._currentEditing$.next({...t,label:o!=null&&o.p?e.BuildTextUtils.transform.getPlainText((l=(u=o.p.body)==null?void 0:u.dataStream)==null?``:l):((d=o==null?void 0:o.v)==null?``:d).toString()})}}startEditing(t){var r;(r=this._currentEditingPopup)==null||r.dispose(),this.hideCurrentPopup(void 0,!0);let{unitId:i,subUnitId:a}=t,o,s;if(t.type===g.ZEN_EDITOR){var c,l;let n=this._univerInstanceService.getUnit(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY,e.UniverInstanceType.UNIVER_DOC);if(o=n==null||(c=n.getBody())==null||(c=c.customRanges)==null?void 0:c.find(e=>e.rangeId===t.customRangeId),s=o?n==null||(l=n.getBody())==null?void 0:l.dataStream.slice(o.startIndex,o.endIndex+1):``,!o||!s)return;this._textSelectionManagerService.replaceTextRanges([{startOffset:o.startIndex,endOffset:o.endIndex+1}]),this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange({startOffset:o.startIndex,endOffset:o.endIndex,collapsed:!1},this._editPopup,e.DOCS_ZEN_EDITOR_UNIT_ID_KEY)}else if(t.type===g.EDITING){var u;let e=(0,n.getEditingCustomRangePosition)(this._injector,t.unitId,t.subUnitId,t.row,t.col,t.customRangeId);if(!e||!((u=e.rects)!=null&&u.length))return;o=e.customRange,s=e.label,this._textSelectionManagerService.replaceTextRanges([{startOffset:o.startIndex,endOffset:o.endIndex+1}]),this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(e.rects.pop(),this._editPopup,i,a)}else{var d;let r=this._univerInstanceService.getUnit(i,e.UniverInstanceType.UNIVER_SHEET),c=r==null?void 0:r.getSheetBySheetId(a),l=c==null?void 0:c.getCellRaw(t.row,t.col),u=r==null?void 0:r.getStyles().getStyleByCell(l),f=u==null?void 0:u.tr,p=(0,n.getCustomRangePosition)(this._injector,t.unitId,t.subUnitId,t.row,t.col,t.customRangeId);if(!p||!((d=p.rects)!=null&&d.length))return;o=p.customRange,s=p.label,f?this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(t.row,t.col,this._editPopup,i,a):this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupByPosition(p.rects.pop(),this._editPopup,{unitId:i,subUnitId:a,row:t.row,col:t.col})}this._currentEditing$.next({...t,customRange:o,label:s})}endEditing(e){if(this.getIsKeepVisible())return;let t=this._currentEditing$.getValue();if(t&&(!e||e===t.type)){var n;(n=this._currentEditingPopup)==null||n.dispose(),this._currentEditing$.next(null)}}};F=w([C(0,(0,e.Inject)(n.SheetCanvasPopManagerService)),C(1,(0,e.Inject)(e.Injector)),C(2,e.IUniverInstanceService),C(3,n.IEditorBridgeService),C(4,(0,e.Inject)(r.DocSelectionManagerService)),C(5,(0,e.Inject)(i.DocCanvasPopManagerService)),C(6,o.IZenZoneService)],F);let I=function(e){return e[e.ALLOWED=0]=`ALLOWED`,e[e.DISABLED_BY_CELL=1]=`DISABLED_BY_CELL`,e[e.ALLOW_ON_EDITING=2]=`ALLOW_ON_EDITING`,e}({});const ie=new Set([e.DataValidationType.CHECKBOX,e.DataValidationType.LIST,e.DataValidationType.LIST_MULTIPLE]),L=(e,t,n,r)=>{var i,a;let o=t.getCell(n,r);if(o!=null&&o.f||o!=null&&o.si||!(o==null||(i=o.p)==null||(i=i.body)==null||(i=i.customBlocks)==null)&&i.length)return I.DISABLED_BY_CELL;let s=e.has(h.SheetDataValidationModel)?e.get(h.SheetDataValidationModel):null,c=s==null?void 0:s.getRuleByLocation(t.getUnitId(),t.getSheetId(),n,r);return c&&ie.has(c.type)?!0:!(o==null||(a=o.p)==null||(a=a.drawingsOrder)==null)&&a.length?I.ALLOW_ON_EDITING:I.ALLOWED},R=n=>{let r=n.get(e.IUniverInstanceService).getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(!r)return!0;let i=r.getActiveSheet(),a=n.get(t.SheetsSelectionsService).getCurrentSelections();if(!a.length)return!0;let o=a[0].range.startRow,s=a[0].range.startColumn;return L(n,i,o,s)===I.DISABLED_BY_CELL},ae=t=>{let n=t.get(r.DocSelectionManagerService),i=t.get(e.IUniverInstanceService),a=n.getTextRanges();if(!(a!=null&&a.length))return!0;let o=i.getCurrentUnitForType(e.UniverInstanceType.UNIVER_DOC);return!!(!o||a.every(e=>e.collapsed)||!o.getSelfOrHeaderFooterModel(a[0].segmentId).getBody())},z={type:e.CommandType.OPERATION,id:`sheet.operation.open-hyper-link-edit-panel`,handler(e,t){if(!t)return!1;let n=e.get(F);return t.customRangeId?n.startEditing(t):n.startAddEditing(t),!0}},B={type:e.CommandType.OPERATION,id:`sheet.operation.close-hyper-link-popup`,handler(e){return e.get(F).endEditing(),!0}},V={type:e.CommandType.OPERATION,id:`sheet.operation.insert-hyper-link`,handler(r){var i;let a=r.get(e.IUniverInstanceService),o=(0,t.getSheetCommandTarget)(a),s=r.get(n.IEditorBridgeService);if(!o)return!1;let c=r.get(e.ICommandService),l=r.get(t.SheetsSelectionsService).getCurrentLastSelection();if(!l)return!1;let u=l.range.startRow,d=l.range.startColumn,f=s.isVisible(),p=((i=a.getFocusedUnit())==null?void 0:i.getUnitId())===e.DOCS_ZEN_EDITOR_UNIT_ID_KEY;return c.executeCommand(z.id,{unitId:o.unitId,subUnitId:o.subUnitId,row:u,col:d,type:p?g.ZEN_EDITOR:f.visible?g.EDITING:g.VIEWING})}},H={type:e.CommandType.OPERATION,id:`sheet.operation.insert-hyper-link-toolbar`,handler(t){if(R(t))return!1;let n=t.get(e.ICommandService);return t.get(F).currentEditing?n.executeCommand(B.id):n.executeCommand(V.id)}},oe=`SHEET_HYPER_LINK_UI_PLUGIN`;let U=class extends e.Disposable{registerPlainTextFilter(e){this._plainTextFilter.add(e)}removePlainTextFilter(e){this._plainTextFilter.delete(e)}_filterPlainText(e){return Array.from(this._plainTextFilter).every(t=>t(e))}constructor(e,t,n,r){super(),this._sheetClipboardService=e,this._hyperLinkModel=t,this._injector=n,this._resolverService=r,A(this,`_plainTextFilter`,new Set),A(this,`_copyInfo`,void 0),this._initCopyPaste(),this.disposeWithMe(()=>{this._plainTextFilter.clear()})}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:oe,onBeforeCopy:(e,t,n)=>this._collect(e,t,n),onPasteCells:(e,t,r,i)=>{let{copyType:a=n.COPY_TYPE.COPY,pasteType:o}=i,{range:s}=e||{},{range:c,unitId:l,subUnitId:u}=t;return this._generateMutations(c,{copyType:a,pasteType:o,copyRange:s,unitId:l,subUnitId:u})},onPastePlainText:(t,r)=>{let i=this._filterPlainText(r);if(_(r)&&i){let{range:r,unitId:i,subUnitId:a}=t,{ranges:[o],mapFunc:s}=(0,n.virtualizeDiscreteRanges)([r]),c=[],l=[];return e.Range.foreach(o,(e,t)=>{let{row:n,col:r}=s(e,t),o=this._hyperLinkModel.getHyperLinkByLocation(i,a,n,r);o&&c.push({id:d.RemoveHyperLinkMutation.id,params:{unitId:i,subUnitId:a,id:o.id}}),o&&l.push({id:d.AddHyperLinkMutation.id,params:{unitId:i,subUnitId:a,link:o}})}),{redos:c,undos:l}}return{undos:[],redos:[]}},priority:99})}_collect(n,r,i){let a=new e.ObjectMatrix;this._copyInfo={unitId:n,subUnitId:r,matrix:a};let o=this._injector.invoke(e=>(0,t.rangeToDiscreteRange)(i,e,n,r));if(!o)return;let{rows:s,cols:c}=o;s.forEach((e,t)=>{c.forEach((i,o)=>{var s;let c=this._hyperLinkModel.getHyperLinkByLocation(n,r,e,i);a.setValue(t,o,(s=c==null?void 0:c.id)==null?``:s)})})}_generateMutations(t,r){if(!this._copyInfo||!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!r.copyRange||[n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA].includes(r.pasteType))return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=this._copyInfo,o=[],s=[],{ranges:[c,l],mapFunc:u}=(0,n.virtualizeDiscreteRanges)([r.copyRange,t]);return(0,n.getRepeatRange)(c,l,!0).forEach(({startRange:t})=>{var n;(n=this._copyInfo)==null||n.matrix.forValue((n,c,l)=>{let f=e.Rectangle.getPositionRange({startRow:n,endRow:n,startColumn:c,endColumn:c},t),p=this._hyperLinkModel.getHyperLink(i,a,l),{row:m,col:h}=u(f.startRow,f.startColumn),g=this._hyperLinkModel.getHyperLinkByLocation(r.unitId,r.subUnitId,m,h),_=(0,e.generateRandomId)();g&&o.push({id:d.RemoveHyperLinkMutation.id,params:{unitId:r.unitId,subUnitId:r.subUnitId,id:g.id}}),p&&(o.push({id:d.AddHyperLinkMutation.id,params:{unitId:r.unitId,subUnitId:r.subUnitId,link:{...p,id:_,row:m,column:h}}}),s.push({id:d.RemoveHyperLinkMutation.id,params:{unitId:r.unitId,subUnitId:r.subUnitId,id:_}})),g&&s.push({id:d.AddHyperLinkMutation.id,params:{unitId:r.unitId,subUnitId:r.subUnitId,link:g}})})}),{redos:o,undos:s}}};U=w([C(0,n.ISheetClipboardService),C(1,(0,e.Inject)(d.HyperLinkModel)),C(2,(0,e.Inject)(e.Injector)),C(3,(0,e.Inject)(E))],U);const se=(r,o=e.DOCS_ZEN_EDITOR_UNIT_ID_KEY)=>{var c;let l=r.get(e.IUniverInstanceService),u=(c=r.get(a.IRenderManagerService).getRenderById(o))==null?void 0:c.with(i.DocSelectionRenderService);return u?u.textSelectionInner$.pipe((0,s.map)(()=>{let e=r.get(n.IEditorBridgeService).getEditCellState();if(!e)return!0;let i=(0,t.getSheetCommandTarget)(l,{unitId:e.unitId,subUnitId:e.sheetId});return!(i!=null&&i.worksheet)||L(r,i.worksheet,e.row,e.column)===1?!0:ae(r)})):(0,s.of)(!0)},ce=r=>{var i;let a=r.get(e.IUniverInstanceService),o=r.has(n.IEditorBridgeService)?r.get(n.IEditorBridgeService):null;return((i=o==null?void 0:o.currentEditCellState$.pipe((0,s.map)(e=>{if(!e)return I.DISABLED_BY_CELL;let n=(0,t.getSheetCommandTarget)(a,{unitId:e.unitId,subUnitId:e.sheetId});return n?L(r,n.worksheet,e.row,e.column):I.DISABLED_BY_CELL}),(0,s.switchMap)(t=>t===I.DISABLED_BY_CELL?(0,s.of)(!0):(0,s.combineLatest)([o?o.visible$:(0,s.of)(null),a.getCurrentTypeOfUnit$(e.UniverInstanceType.UNIVER_DOC)]).pipe((0,s.switchMap)(([n,i])=>n!=null&&n.visible?(i==null?void 0:i.getUnitId())===e.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY?(0,s.of)(!0):se(r,e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY):(0,s.of)(t!==I.ALLOWED))))))==null?(0,s.of)(!0):i).pipe((0,s.switchMap)(e=>e?(0,s.of)(!0):(0,n.getCurrentRangeDisable$)(r,{workbookTypes:[t.WorkbookEditablePermission],worksheetTypes:[t.WorksheetEditPermission,t.WorksheetSetCellValuePermission,t.WorksheetInsertHyperlinkPermission],rangeTypes:[t.RangeProtectionPermissionEditPoint]},!0)))},W={commandId:V.id,type:o.MenuItemType.BUTTON,title:`hyperLink.menu.add`,icon:`LinkIcon`},le=e=>`${e}-zen-editor`,ue=t=>({...W,id:W.commandId,hidden$:(0,o.getMenuHiddenObservable)(t,e.UniverInstanceType.UNIVER_SHEET),disabled$:ce(t)}),de=t=>({...W,id:le(W.commandId),hidden$:(0,o.getMenuHiddenObservable)(t,e.UniverInstanceType.UNIVER_DOC,e.DOCS_ZEN_EDITOR_UNIT_ID_KEY),disabled$:se(t)}),G={tooltip:`hyperLink.form.addTitle`,commandId:H.id,type:o.MenuItemType.BUTTON,icon:`LinkIcon`},K=t=>({...G,id:G.commandId,hidden$:(0,o.getMenuHiddenObservable)(t,e.UniverInstanceType.UNIVER_SHEET),disabled$:ce(t)}),fe=t=>({...G,id:le(G.commandId),hidden$:(0,o.getMenuHiddenObservable)(t,e.UniverInstanceType.UNIVER_DOC,e.DOCS_ZEN_EDITOR_UNIT_ID_KEY),disabled$:se(t)}),q={id:H.id,binding:o.KeyCode.K|o.MetaKeys.CTRL_COMMAND,preconditions:n.whenSheetEditorFocused};var pe=`@univerjs/sheets-hyper-link-ui`,J=`0.20.1`;let Y=class extends e.Disposable{constructor(e,t){super(),this._autoFillService=e,this._hyperLinkModel=t,this._initAutoFill()}_initAutoFill(){let r=()=>({redos:[],undos:[]}),i=(r,i)=>{let{source:a,target:o,unitId:s,subUnitId:c}=r,l=(0,n.virtualizeDiscreteRanges)([a,o]),[u,f]=l.ranges,{mapFunc:p}=l,m={row:u.startRow,col:u.startColumn},h=t.AutoFillTools.getAutoFillRepeatRange(u,f),g=[],_=[];return h.forEach(n=>{let r=n.repeatStartCell,a=n.relativeRange,o={startRow:m.row,startColumn:m.col,endColumn:m.col,endRow:m.row},l={startRow:r.row,startColumn:r.col,endColumn:r.col,endRow:r.row};e.Range.foreach(a,(n,r)=>{let a=e.Rectangle.getPositionRange({startRow:n,startColumn:r,endColumn:r,endRow:n},o),{row:u,col:f}=p(a.startRow,a.startColumn),m=this._hyperLinkModel.getHyperLinkByLocation(s,c,u,f),h=e.Rectangle.getPositionRange({startRow:n,startColumn:r,endColumn:r,endRow:n},l),{row:v,col:y}=p(h.startRow,h.startColumn),b=(0,e.generateRandomId)(),x=this._hyperLinkModel.getHyperLinkByLocation(s,c,v,y);x&&g.push({id:d.RemoveHyperLinkMutation.id,params:{unitId:s,subUnitId:c,id:x.id}}),(t.AUTO_FILL_APPLY_TYPE.COPY===i||t.AUTO_FILL_APPLY_TYPE.SERIES===i)&&m&&(g.push({id:d.AddHyperLinkMutation.id,params:{unitId:s,subUnitId:c,link:{...m,id:b,row:v,column:y}}}),_.push({id:d.RemoveHyperLinkMutation.id,params:{unitId:s,subUnitId:c,id:b}})),x&&_.push({id:d.AddHyperLinkMutation.id,params:{unitId:s,subUnitId:c,link:x}})})}),{undos:_,redos:g}},a={id:oe,onFillData:(e,n,a)=>a===t.AUTO_FILL_APPLY_TYPE.COPY||a===t.AUTO_FILL_APPLY_TYPE.ONLY_FORMAT||a===t.AUTO_FILL_APPLY_TYPE.SERIES?i(e,a):r()};this.disposeWithMe(this._autoFillService.addHook(a))}};Y=w([C(0,t.IAutoFillService),C(1,(0,e.Inject)(d.HyperLinkModel))],Y);let me=class extends e.Disposable{constructor(e,t,n){super(),this._localeService=e,this._commandService=t,this._sheetPermissionCheckController=n,this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{e.id===q.id&&(this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[t.WorkbookEditablePermission],rangeTypes:[t.RangeProtectionPermissionEditPoint],worksheetTypes:[t.WorksheetEditPermission,t.WorksheetSetCellValuePermission,t.WorksheetInsertHyperlinkPermission]})||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localeService.t(`permission.dialog.hyperLinkErr`)))}))}};me=w([C(0,(0,e.Inject)(e.LocaleService)),C(1,e.ICommandService),C(2,(0,e.Inject)(t.SheetPermissionCheckController))],me);let X=class extends e.Disposable{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._hoverManagerService=e,this._sheetsHyperLinkPopupService=t,this._renderManagerService=n,this._permissionService=r,this._sheetPermissionCheckController=i,this._commandService=a,this._editorBridgeService=o,this._textSelectionManagerService=s,this._univerInstanceService=c,this._zenZoneService=l,this._initHoverListener(),this._initCommandListener(),this._initHoverEditingListener(),this._initTextSelectionListener(),this._initZenEditor()}_getLinkPermission(n){let{unitId:r,subUnitId:i,row:a,col:o}=n,s=this._univerInstanceService.getUnit(r,e.UniverInstanceType.UNIVER_SHEET),c=s==null?void 0:s.getSheetBySheetId(i);if(!c)return{viewPermission:!1,editPermission:!1,copyPermission:!1};let l=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[t.WorkbookViewPermission],worksheetTypes:[t.WorksheetViewPermission],rangeTypes:[t.RangeProtectionPermissionViewPoint]},[{startRow:a,startColumn:o,endRow:a,endColumn:o}],r,i),u=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[t.WorkbookEditablePermission],worksheetTypes:[t.WorksheetEditPermission,t.WorksheetInsertHyperlinkPermission],rangeTypes:[t.RangeProtectionPermissionEditPoint]},[{startRow:a,startColumn:o,endRow:a,endColumn:o}],r,i),d=c.getCellRaw(a,o);d!=null&&d.f&&d.f.startsWith(`=HYPERLINK(`)&&(u=!1);let f=this._permissionService.composePermission([new t.WorkbookCopyPermission(r).id,new t.WorksheetCopyPermission(r,i).id]).every(e=>e.value);return{viewPermission:l,editPermission:u,copyPermission:f}}_initHoverListener(){this.disposeWithMe(this._hoverManagerService.currentRichText$.pipe((0,s.debounceTime)(200)).subscribe(t=>{var r,i,a;if(!t||((r=t.customRange)==null?void 0:r.rangeType)!==e.CustomRangeType.HYPERLINK){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let{unitId:o,subUnitId:s,row:c,col:l}=t,u=this._renderManagerService.getRenderById(o);if(!u)return;let d=this._univerInstanceService.getUnit(o,e.UniverInstanceType.UNIVER_SHEET),f=d==null?void 0:d.getSheetBySheetId(s);if(!f)return;if(!u.with(n.HoverRenderController).active){this._sheetsHyperLinkPopupService.hideCurrentPopup(g.VIEWING);return}let p=u==null||(i=u.with(n.SheetSkeletonManagerService).getSkeletonParam(s))==null?void 0:i.skeleton,m=l,h=c,_=h,v=m;p&&p.overflowCache.forValue((t,n,r)=>{e.Rectangle.contains(r,{startColumn:m,endColumn:m,startRow:h,endRow:h})&&(_=t,v=n)});let{viewPermission:y,editPermission:b,copyPermission:x}=this._getLinkPermission(t);if(!y){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let S=f.getCellStyleOnly(_,v),C=d.getStyles().getStyleByCell(S),w=C==null||(a=C.tr)==null?void 0:a.a;if(!w&&!t.customRange){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}this._sheetsHyperLinkPopupService.showPopup({row:_,col:v,editPermission:b,copyPermission:x,customRange:t.customRange,customRangeRect:t.rect,type:g.VIEWING,unitId:o,subUnitId:s,showAll:!!w})}))}_initHoverEditingListener(){let t=null;this.disposeWithMe(this._editorBridgeService.currentEditCellState$.pipe((0,s.switchMap)(e=>this._editorBridgeService.visible$.pipe((0,s.map)(t=>({visible:t,state:e}))))).subscribe(({visible:r,state:a})=>{if(!a||a.editorUnitId!==e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)return;if(!r.visible){t==null||t.unsubscribe(),this._sheetsHyperLinkPopupService.hideCurrentPopup(g.EDITING),this._sheetsHyperLinkPopupService.endEditing(g.EDITING);return}let{editorUnitId:o,unitId:c,sheetId:l,row:u,column:d}=a,f=this._renderManagerService.getRenderById(o);if(!f)return;let{editPermission:p,viewPermission:m,copyPermission:h}=this._getLinkPermission({unitId:c,subUnitId:l,row:u,col:d}),_=f.with(i.DocEventManagerService);m&&(t==null||t.unsubscribe(),t=_.hoverCustomRanges$.pipe((0,s.debounceTime)(200)).subscribe(t=>{var r;let i=t.find(t=>t.range.rangeType===e.CustomRangeType.HYPERLINK);if(!i){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let a=i.rects[i.rects.length-1];if(!(!((r=this._renderManagerService.getRenderById(c))==null||(r=r.with(n.SheetSkeletonManagerService).getSkeletonParam(l))==null)&&r.skeleton)||!a)return;let o=f.engine.getCanvasElement().getBoundingClientRect();this._sheetsHyperLinkPopupService.showPopup({unitId:c,subUnitId:l,row:u,col:d,customRange:i.range,customRangeRect:{left:a.left+o.left,top:a.top+o.top,bottom:a.bottom+o.top,right:a.right+o.left},editPermission:p,copyPermission:h,type:g.EDITING})}))})),this.disposeWithMe(()=>{t==null||t.unsubscribe()})}_initZenEditor(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e?(this._sheetsHyperLinkPopupService.hideCurrentPopup(g.VIEWING),this._sheetsHyperLinkPopupService.hideCurrentPopup(g.EDITING),this._sheetsHyperLinkPopupService.endEditing(g.EDITING),this._sheetsHyperLinkPopupService.hideCurrentPopup(g.VIEWING)):(this._sheetsHyperLinkPopupService.hideCurrentPopup(g.ZEN_EDITOR),this._sheetsHyperLinkPopupService.endEditing(g.ZEN_EDITOR))})),this.disposeWithMe(this._univerInstanceService.focused$.pipe((0,s.switchMap)(t=>{let n=t===e.DOCS_ZEN_EDITOR_UNIT_ID_KEY?this._renderManagerService.getRenderById(t):null;return n?n.with(i.DocEventManagerService).hoverCustomRanges$.pipe((0,s.debounceTime)(200)):new s.Observable(e=>{e.next(null)})})).subscribe(t=>{let n=t==null?void 0:t.find(t=>t.range.rangeType===e.CustomRangeType.HYPERLINK),r=this._editorBridgeService.getEditCellState();if(n&&r){let{unitId:e,sheetId:t,row:i,column:a}=r,{editPermission:o,viewPermission:s,copyPermission:c}=this._getLinkPermission({unitId:e,subUnitId:t,row:i,col:a});s&&this._sheetsHyperLinkPopupService.showPopup({type:g.ZEN_EDITOR,unitId:e,subUnitId:t,row:i,col:a,customRange:n.range,editPermission:o,copyPermission:c})}else this._sheetsHyperLinkPopupService.hideCurrentPopup(g.ZEN_EDITOR)}))}_initTextSelectionListener(){this.disposeWithMe(this._textSelectionManagerService.textSelection$.subscribe(t=>{t&&t.unitId===e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY&&this._sheetsHyperLinkPopupService.endEditing(g.EDITING)}))}_initCommandListener(){let e=[t.ClearSelectionContentCommand.id,t.ClearSelectionAllCommand.id,t.ClearSelectionFormatCommand.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{e.includes(t.id)&&this._sheetsHyperLinkPopupService.hideCurrentPopup()}))}};X=w([C(0,(0,e.Inject)(n.HoverManagerService)),C(1,(0,e.Inject)(F)),C(2,(0,e.Inject)(a.IRenderManagerService)),C(3,(0,e.Inject)(e.IPermissionService)),C(4,(0,e.Inject)(t.SheetPermissionCheckController)),C(5,e.ICommandService),C(6,n.IEditorBridgeService),C(7,(0,e.Inject)(r.DocSelectionManagerService)),C(8,e.IUniverInstanceService),C(9,o.IZenZoneService)],X);let he=class extends e.Disposable{constructor(e,t){super(),this._context=e,this._hyperLinkModel=t,this._initSkeletonChange()}_initSkeletonChange(){let e=()=>{var e;(e=this._context.mainComponent)==null||e.makeForceDirty()};this.disposeWithMe(this._hyperLinkModel.linkUpdate$.pipe((0,s.debounceTime)(16)).subscribe(()=>{e()}))}};he=w([C(1,(0,e.Inject)(d.HyperLinkModel))],he);const ge={[o.RibbonInsertGroup.MEDIA]:{[H.id]:{order:1,menuItemFactory:K},[le(H.id)]:{order:1,menuItemFactory:fe}},[o.ContextMenuPosition.MAIN_AREA]:{[o.ContextMenuGroup.OTHERS]:{order:1,[H.id]:{order:0,menuItemFactory:ue},[le(H.id)]:{order:0,menuItemFactory:de}}}};let Z=class extends e.Disposable{constructor(e,t,n,r,i){super(),this._componentManager=e,this._commandService=t,this._menuManagerService=n,this._injector=r,this._shortcutService=i,this._initComponents(),this._initCommands(),this._initMenus(),this._initShortCut()}_initComponents(){[[N.componentKey,N],[re.componentKey,re],[`LinkIcon`,m.LinkIcon]].forEach(([e,t])=>{this._componentManager.register(e,t)})}_initCommands(){[z,B,V,H].forEach(e=>{this._commandService.registerCommand(e)})}_initMenus(){this._menuManagerService.mergeMenu(ge)}_initShortCut(){this._shortcutService.registerShortcut(q)}};Z=w([C(0,(0,e.Inject)(o.ComponentManager)),C(1,e.ICommandService),C(2,o.IMenuManagerService),C(3,(0,e.Inject)(e.Injector)),C(4,(0,e.Inject)(o.IShortcutService))],Z);let Q=class extends e.Disposable{constructor(e,t){super(),this._parserService=e,this._resolverService=t,this._handleInitUrl()}_handleInitUrl(){let e=location.hash;if(e){let t=this._parserService.parseHyperLink(e);this._resolverService.navigate(t)}}};Q=w([C(0,(0,e.Inject)(d.SheetsHyperLinkParserService)),C(1,(0,e.Inject)(E))],Q);let $=class extends e.Plugin{constructor(t=S,n,r){super(),this._config=t,this._injector=n,this._configService=r;let{menu:i,...a}=(0,e.merge)({},S,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(x,a)}onStarting(){[[E],[F],[ee],[X],[Z],[Y],[U],[me],[Q]].forEach(e=>this._injector.add(e))}onReady(){this._injector.get(a.IRenderManagerService).registerRenderModule(e.UniverInstanceType.UNIVER_SHEET,[he]),this._injector.get(Y),this._injector.get(U),this._injector.get(Z)}onRendered(){this._injector.get(me),this._injector.get(Q),this._injector.get(X)}};A($,`pluginName`,oe),A($,`packageName`,pe),A($,`version`,J),A($,`type`,e.UniverInstanceType.UNIVER_SHEET),$=w([(0,e.DependentOn)(d.UniverSheetsHyperLinkPlugin,i.UniverDocsUIPlugin),C(1,(0,e.Inject)(e.Injector)),C(2,e.IConfigService)],$),exports.CloseHyperLinkPopupOperation=B,exports.InsertHyperLinkOperation=V,exports.InsertLinkShortcut=q,exports.OpenHyperLinkEditPanelOperation=z,Object.defineProperty(exports,`SheetsHyperLinkCopyPasteController`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`SheetsHyperLinkPopupService`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`SheetsHyperLinkResolverService`,{enumerable:!0,get:function(){return E}}),exports.SheetsHyperLinkSidePanelService=ee,Object.defineProperty(exports,`UniverSheetsHyperLinkUIPlugin`,{enumerable:!0,get:function(){return $}});
package/lib/es/index.js CHANGED
@@ -1 +1 @@
1
- import{BuildTextUtils as e,ColorKit as t,CommandType as n,CustomRangeType as r,DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY as i,DOCS_NORMAL_EDITOR_UNIT_ID_KEY as a,DOCS_ZEN_EDITOR_UNIT_ID_KEY as o,DataStreamTreeTokenType as s,DataValidationType as c,DependentOn as l,Disposable as u,DisposableCollection as d,FOCUSING_SHEET as f,ICommandService as p,IConfigService as m,IContextService as h,IPermissionService as g,IUniverInstanceService as _,Inject as v,Injector as y,InterceptorEffectEnum as b,LocaleService as x,ObjectMatrix as S,Plugin as C,RANGE_TYPE as w,Range as T,Rectangle as E,ThemeService as D,Tools as ee,UniverInstanceType as O,generateRandomId as te,isValidRange as k,merge as ne}from"@univerjs/core";import{AUTO_FILL_APPLY_TYPE as A,AutoFillTools as re,ClearSelectionAllCommand as ie,ClearSelectionContentCommand as j,ClearSelectionFormatCommand as M,IAutoFillService as ae,INTERCEPTOR_POINT as oe,RangeProtectionPermissionEditPoint as N,RangeProtectionPermissionViewPoint as se,SetSelectionsOperation as ce,SetWorksheetActiveOperation as le,SheetInterceptorService as ue,SheetPermissionCheckController as de,SheetsSelectionsService as fe,WorkbookCopyPermission as pe,WorkbookEditablePermission as me,WorkbookViewPermission as he,WorksheetCopyPermission as ge,WorksheetEditPermission as _e,WorksheetInsertHyperlinkPermission as ve,WorksheetSetCellValuePermission as ye,WorksheetViewPermission as P,getSheetCommandTarget as be,rangeToDiscreteRange as xe}from"@univerjs/sheets";import{COPY_TYPE as Se,HoverManagerService as F,HoverRenderController as I,IEditorBridgeService as L,IMarkSelectionService as Ce,ISheetClipboardService as we,PREDEFINED_HOOK_NAME_PASTE as R,ScrollToRangeOperation as Te,SheetCanvasPopManagerService as Ee,SheetSkeletonManagerService as De,getCurrentRangeDisable$ as Oe,getCustomRangePosition as ke,getEditingCustomRangePosition as Ae,getRepeatRange as je,virtualizeDiscreteRanges as Me,whenSheetEditorFocused as Ne}from"@univerjs/sheets-ui";import{DocSelectionManagerService as Pe}from"@univerjs/docs";import{DocBackScrollRenderController as Fe,DocCanvasPopManagerService as Ie,DocEventManagerService as Le,DocSelectionRenderService as Re,UniverDocsUIPlugin as ze,calcDocRangePositions as Be}from"@univerjs/docs-ui";import{IRenderManagerService as Ve}from"@univerjs/engine-render";import{ComponentManager as He,ContextMenuGroup as Ue,ContextMenuPosition as We,IMenuManagerService as Ge,IMessageService as Ke,IShortcutService as qe,IZenZoneService as Je,KeyCode as Ye,MenuItemType as Xe,MetaKeys as Ze,RibbonInsertGroup as Qe,getMenuHiddenObservable as $e,useDependency as z,useEvent as et,useObservable as tt}from"@univerjs/ui";import{BehaviorSubject as nt,Observable as rt,Subject as it,combineLatest as at,debounceTime as ot,map as st,of as B,switchMap as ct}from"rxjs";import{Button as lt,FormLayout as ut,Input as dt,MessageType as ft,Select as pt,Tooltip as mt,borderClassName as ht,clsx as gt}from"@univerjs/design";import{IDefinedNamesService as _t,deserializeRangeWithSheet as vt,serializeRange as yt,serializeRangeToRefString as bt,serializeRangeWithSheet as xt}from"@univerjs/engine-formula";import{RangeSelector as St}from"@univerjs/sheets-formula-ui";import{AddHyperLinkCommand as Ct,AddHyperLinkMutation as wt,AddRichHyperLinkCommand as Tt,CancelHyperLinkCommand as Et,CancelRichHyperLinkCommand as Dt,ERROR_RANGE as Ot,HyperLinkModel as kt,RemoveHyperLinkMutation as At,SheetHyperLinkType as V,SheetsHyperLinkParserService as jt,UniverSheetsHyperLinkPlugin as Mt,UpdateHyperLinkCommand as Nt,UpdateRichHyperLinkCommand as Pt}from"@univerjs/sheets-hyper-link";import{useCallback as Ft,useEffect as H,useMemo as It,useRef as Lt,useState as U}from"react";import{Fragment as Rt,jsx as W,jsxs as zt}from"react/jsx-runtime";import{AllBorderIcon as Bt,CopyIcon as Vt,LinkIcon as Ht,UnlinkIcon as Ut,WriteIcon as Wt,XlsxMultiIcon as Gt}from"@univerjs/icons";import{SheetDataValidationModel as Kt}from"@univerjs/sheets-data-validation";let G=function(e){return e.EDITING=`editing`,e.VIEWING=`viewing`,e.ZEN_EDITOR=`zen_mode`,e}({});function qt(e){return ee.isLegalUrl(e)}function Jt(e){return/^[a-zA-Z]+:\/\//.test(e)}function Yt(e){return/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(e)}function Xt(e){if(qt(e)){let t=Jt(e)?e:Yt(e)?`mailto://${e}`:`http://${e}`,n;try{n=new URL(t)}catch{return e}return n.hostname===location.hostname&&n.port===location.port&&n.protocol===location.protocol&&n.pathname===location.pathname&&n.hash&&!n.search?n.hash:t}return e}const Zt=`sheets-hyper-link-ui.config`;Symbol(Zt);const Qt={};function K(e,t){return function(n,r){t(n,r,e)}}function q(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function $t(e,t){let n=t.getMergeData(),r=t.getMaxColumns()-1,i=t.getMaxRows()-1;if(r<e.endColumn&&(e.endColumn=r),i<e.endRow&&(e.endRow=i),e.rangeType===w.COLUMN||w.ROW)return e;let a=[];return n.forEach(t=>{E.intersects(e,t)&&a.push(t)}),E.realUnion(e,...a)}let J=class{constructor(e,t,n,r,i,a){this._univerInstanceService=e,this._commandService=t,this._definedNamesService=n,this._messageService=r,this._localeService=i,this._configService=a}navigate(e){switch(e.type){case V.URL:this.navigateToOtherWebsite(e.url);break;default:this._navigateToUniver(e.searchObj)}}_navigateToUniver(e){let{gid:t,range:n,rangeid:r}=e,i=this._univerInstanceService.getCurrentUnitForType(O.UNIVER_SHEET);if(!i)return;let a=i.getUnitId();if(r){let e=this._definedNamesService.getValueById(a,r);if(!e)return;let{formulaOrRefString:t}=e,n=this._definedNamesService.getWorksheetByRef(a,t);if(!n){this._messageService.show({content:this._localeService.t(`hyperLink.message.refError`),type:ft.Error});return}if(n.isSheetHidden()){this._messageService.show({content:this._localeService.t(`hyperLink.message.hiddenSheet`),type:ft.Error});return}this.navigateToDefineName(a,r)}if(t){if(n){let e=vt(n);k(e.range)&&n!==Ot&&this.navigateToRange(a,t,e.range);return}this.navigateToSheetById(a,t)}}async navigateToRange(e,t,n,r){let i=await this.navigateToSheetById(e,t);if(i){let a=$t(n,i);await this._commandService.executeCommand(ce.id,{unitId:e,subUnitId:t,selections:[{range:a,primary:null}]}),await this._commandService.executeCommand(Te.id,{range:a,forceTop:r})}}async navigateToSheetById(e,t){let n=this._univerInstanceService.getUnit(e,O.UNIVER_SHEET);if(!n)return!1;let r=n.getActiveSheet();if(!r)return!1;if(r.getSheetId()===t)return r;let i=n.getSheetBySheetId(t);return i?n.getHiddenWorksheets().indexOf(t)>-1?(this._messageService.show({content:this._localeService.t(`hyperLink.message.hiddenSheet`),type:ft.Error}),!1):await this._commandService.executeCommand(le.id,{unitId:e,subUnitId:t})?i:!1:(this._messageService.show({content:this._localeService.t(`hyperLink.message.noSheet`),type:ft.Error}),!1)}async navigateToDefineName(e,t){return this._definedNamesService.focusRange(e,t),!0}async navigateToOtherWebsite(e){var t;let n=this._configService.getConfig(Zt);if(!(n==null||(t=n.urlHandler)==null)&&t.navigateToOtherWebsite)return n.urlHandler.navigateToOtherWebsite(e);window.open(e,`_blank`,`noopener noreferrer`)}};J=q([K(0,_),K(1,p),K(2,_t),K(3,Ke),K(4,v(x)),K(5,m)],J);function en(e){"@babel/helpers - typeof";return en=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},en(e)}function tn(e,t){if(en(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(en(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function nn(e){var t=tn(e,`string`);return en(t)==`symbol`?t:t+``}function Y(e,t,n){return(t=nn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var rn=class extends u{constructor(...e){super(...e),Y(this,`_customHyperLinks`,new Map)}isBuiltInLinkType(e){return e!==V.URL}getOptions(){return Array.from(this._customHyperLinks.values()).map(({option:e})=>e)}findCustomHyperLink(e){return Array.from(this._customHyperLinks.values()).find(t=>t.match(e))}registerCustomHyperLink(e){this._customHyperLinks.set(e.type,e)}getCustomHyperLink(e){return this._customHyperLinks.get(e)}removeCustomHyperLink(e){let{_customHyperLinks:t}=this;t.delete(e)}dispose(){super.dispose(),this._customHyperLinks.clear()}};function an(e){return e.trim().length===0}function on(e,t){let[n]=e.split(`,`).map(vt);return!n||!k(n.range)?``:(n.sheetName||(n.sheetName=t),bt(n))}const sn=()=>{var n;let[i,a]=U(``),[c,l]=U(!1),[u,m]=U(``),[g,v]=U(!0),[y,b]=U(V.URL),[S,C]=U(``),w=z(x),T=z(_t),E=z(L),k=z(_),ne=z(X),A=tt(ne.currentEditing$),re=z(jt),ie=z(J),j=z(p),M=z(rn),ae=It(()=>M.getOptions(),[M]),oe=z(Je),N=z(Ve),se=z(Ce),ue=z(Pe),de=z(h),pe=z(D),me=z(Pe),[he,ge]=U(!1),_e=z(fe),ve=It(()=>_e.getCurrentSelections(),[]),ye=It(()=>{if(!M.isBuiltInLinkType(y))return M.getCustomHyperLink(y)},[M,y]),[P,be]=U(!1),[xe,Se]=U(!1),F=Lt(!1),I=k.getCurrentUnitOfType(O.UNIVER_SHEET),we=(I==null?void 0:I.getActiveSheet().getSheetId())||``,R=Ft(e=>{m(e.replaceAll(s.CUSTOM_RANGE_START,``).replaceAll(s.CUSTOM_RANGE_END,``))},[m]);H(()=>{if((A==null?void 0:A.row)!==void 0&&A.col!==void 0){let{customRange:y,row:x,col:S}=A,{label:w}=A;typeof w==`number`&&(w=`${w}`);let T;if(y){var t,n,i,o;T={id:(t=y==null?void 0:y.rangeId)==null?``:t,display:(n=w)==null?``:n,payload:(i=y==null||(o=y.properties)==null?void 0:o.url)==null?``:i,row:x,column:S}}else if(A.type===G.VIEWING){var s,c,l,u;let t=k.getUnit(A.unitId),n=t==null?void 0:t.getSheetBySheetId(A.subUnitId),i=n==null?void 0:n.getCellRaw(A.row,A.col),a=i==null||(s=i.p)==null||(s=s.body)==null||(s=s.customRanges)==null?void 0:s.find(e=>{var t;return e.rangeType===r.HYPERLINK&&((t=e.properties)==null?void 0:t.url)}),o=i==null?void 0:i.v;i&&(!e.transform.isEmptyDocument((c=i.p)==null||(c=c.body)==null?void 0:c.dataStream)||ee.isDefine(o))&&v(!1),T={id:``,display:``,payload:(l=a==null||(u=a.properties)==null?void 0:u.url)==null?``:l,row:x,column:S}}else{var d,f,p,m,h;let t=k.getCurrentUnitForType(O.UNIVER_DOC),n=ue.getActiveTextRange(),r=t==null?void 0:t.getBody(),i=n&&r?n:null,a=i&&((d=e.customRange.getCustomRangesInterestsWithSelection(i,(f=r==null?void 0:r.customRanges)==null?[]:f))==null?void 0:d[0]);v(!1),T={id:``,display:(p=w)==null?``:p,payload:(m=a==null||(h=a.properties)==null?void 0:h.url)==null?``:m,row:x,column:S}}a(T.id);let E=M.findCustomHyperLink(T);if(E){let e=E.convert(T);b(e.type),C(e.payload),R(e.display);return}R(T.display);let D=re.parseHyperLink(T.payload);switch(b(D.type===V.INVALID?V.RANGE:D.type),D.type){case V.URL:C(D.url),D.url===T.display&&(F.current=!0);break;case V.RANGE:{var g,_;let e=D.searchObj,t=xt(e.gid?(g=(_=k.getUnit(A.unitId))==null||(_=_.getSheetBySheetId(e.gid))==null?void 0:_.getName())==null?``:g:``,vt(e.range).range);C(t),t===T.display&&(F.current=!0);break}case V.SHEET:{let e=D.searchObj;C(e.gid);break}case V.DEFINE_NAME:{let e=D.searchObj;C(e.rangeid);break}default:C(``);break}}},[A,ie,M,ue,k]),H(()=>{let e=null;if(A&&!A.customRangeId&&A.type===G.VIEWING&&ee.isDefine(A.row)&&ee.isDefine(A.col)){let n=k.getUnit(A.unitId,O.UNIVER_SHEET),r=n==null?void 0:n.getSheetBySheetId(A.subUnitId),i=r==null?void 0:r.getMergedCell(A.row,A.col),a=new t(pe.getColorFromTheme(`primary.600`)).toRgb();e=se.addShape({range:i==null?{startColumn:A.col,endColumn:A.col,startRow:A.row,endRow:A.row}:i,style:{fill:`rgb(${a.r}, ${a.g}, ${a.b}, 0.12)`,strokeWidth:1,stroke:`#FFBD37`,widgets:{}},primary:null},[],-1)}return()=>{e&&se.removeShape(e)}},[A,se,pe,k]),H(()=>{Se(y===V.RANGE)},[y]),H(()=>{let e=(A==null?void 0:A.type)===G.ZEN_EDITOR?N.getRenderById(o):N.getRenderById(E.getCurrentEditorId()),t=new d;if(e){let n=e.with(Re);n.setReserveRangesStatus(!0),t.add(()=>{n.setReserveRangesStatus(!1)})}return()=>{E.disableForceKeepVisible(),t.dispose()}},[A==null?void 0:A.type,E,N]),H(()=>(xe&&ne.setIsKeepVisible(xe),ne.setIsKeepVisible(he),()=>{ne.setIsKeepVisible(!1)}),[xe,he,ne]),H(()=>()=>{oe.temporaryHidden&&(oe.show(),de.setContextValue(f,!1))},[de,oe]),H(()=>{if(xe)return E.enableForceKeepVisible(),()=>{E.disableForceKeepVisible()}},[xe,E]);let Ee=[{label:w.t(`hyperLink.form.link`),value:V.URL},{label:w.t(`hyperLink.form.range`),value:V.RANGE},{label:w.t(`hyperLink.form.worksheet`),value:V.SHEET},{label:w.t(`hyperLink.form.definedName`),value:V.DEFINE_NAME},...ae];if(!I)return;let De=I.getHiddenWorksheets(),Oe=I.getSheets().map(e=>({label:e.getName(),value:e.getSheetId()})).filter(e=>De.indexOf(e.value)===-1),ke=Object.values((n=T.getDefinedNameMap(I.getUnitId()))==null?{}:n).map(e=>({label:e.name,value:e.id})),Ae=(e,t)=>{if(e===V.URL)return Xt(t);if(e===V.RANGE){let e=vt(t),n=I.getSheetBySheetName(e.sheetName);if(n)return`#gid=${n.getSheetId()}&range=${yt(e.range)}`}return`#${e}=${t}`},je=et(e=>{var t;let n=on(e,((t=I.getActiveSheet())==null?void 0:t.getName())||``);if(!n){C(``);return}C(n),n&&(F.current||!u)&&(R(n),F.current=!0)}),Me=async()=>{if(g&&an(u)||!S||y===V.URL&&!qt(S)){be(!0);return}if(A)if(i){let e=A.type===G.ZEN_EDITOR||A.type===G.EDITING?Pt.id:Nt.id;await j.executeCommand(e,{id:i,unitId:A.unitId,subUnitId:A.subUnitId,payload:{display:g?u:``,payload:Ae(y,S)},row:A.row,column:A.col,documentId:A.type===G.ZEN_EDITOR?o:E.getCurrentEditorId()})}else{let e=A.type===G.ZEN_EDITOR||A.type===G.EDITING?Tt.id:Ct.id;await j.executeCommand(e,{unitId:A.unitId,subUnitId:A.subUnitId,link:{id:te(),row:A.row,column:A.col,payload:Ae(y,S),display:g?u:``},documentId:A.type===G.ZEN_EDITOR?o:E.getCurrentEditorId()})}(A==null?void 0:A.type)===G.VIEWING&&(await j.executeCommand(le.id,{unitId:A.unitId,subUnitId:A.subUnitId}),await j.executeCommand(Te.id,{range:{startRow:Math.max(A.row-1,0),endRow:A.row+1,startColumn:Math.max(A.col-1,0),endColumn:A.col+1}})),j.executeCommand(_n.id)};return A?zt(`div`,{className:gt(`univer-box-border univer-w-[296px] univer-rounded-xl univer-bg-white univer-p-4 univer-shadow-md dark:!univer-bg-gray-900`,ht),children:[g?W(ut,{label:w.t(`hyperLink.form.label`),error:P&&an(u)?w.t(`hyperLink.form.inputError`):``,children:W(dt,{value:u,onChange:e=>{R(e),F.current=!1},placeholder:w.t(`hyperLink.form.labelPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===Ye.ENTER&&Me()}})}):null,W(ut,{label:w.t(`hyperLink.form.type`),children:W(pt,{className:`univer-w-full`,options:Ee,value:y,onChange:e=>{b(e),C(``)}})}),y===V.URL&&W(ut,{error:P?S?qt(S)?``:w.t(`hyperLink.form.linkError`):w.t(`hyperLink.form.inputError`):``,children:W(dt,{value:S,onChange:e=>{C(e),e&&(F.current||!u||u===e)&&(R(e),F.current=!0)},placeholder:w.t(`hyperLink.form.linkPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===Ye.ENTER&&Me()}})}),y===V.RANGE&&W(ut,{error:P&&!S?w.t(`hyperLink.form.inputError`):``,children:W(St,{unitId:I.getUnitId(),subUnitId:we,maxRangeCount:1,supportAcrossSheet:!0,initialValue:S,resetRange:ve,onChange:(e,t)=>je(t),onRangeSelectorDialogVisibleChange:async e=>{if(ge(e),e)A.type===G.ZEN_EDITOR&&(oe.hide(),de.setContextValue(f,!0)),A.type!==G.VIEWING&&E.enableForceKeepVisible(),l(!0);else{if(await ie.navigateToRange(A.unitId,A.subUnitId,{startRow:A.row,endRow:A.row,startColumn:A.col,endColumn:A.col},!0),A.type===G.ZEN_EDITOR){var t,n;await j.executeCommand(ce.id,{unitId:A.unitId,subUnitId:A.subUnitId,selections:[{range:{startRow:A.row,endRow:A.row,startColumn:A.col,endColumn:A.col}}]}),oe.show(),de.setContextValue(f,!1);let e=(t=N.getRenderById(o))==null?void 0:t.with(Fe),r=(n=me.getTextRanges({unitId:o,subUnitId:o}))==null?void 0:n[0];e&&r&&(e.scrollToRange(r),me.refreshSelection({unitId:o,subUnitId:o}))}E.disableForceKeepVisible(),l(!1)}},onFocusChange:e=>Se(e)})}),y===V.SHEET&&W(ut,{error:P&&!S?w.t(`hyperLink.form.selectError`):``,children:W(pt,{className:`univer-w-full`,options:Oe,value:S,onChange:e=>{var t,n;C(e);let r=(t=Oe.find(t=>t.value===e))==null?void 0:t.label,i=(n=Oe.find(e=>e.value===S))==null?void 0:n.label;r&&(F.current||!u||u===i)&&(R(r),F.current=!0)}})}),y===V.DEFINE_NAME&&W(ut,{error:P&&!S?w.t(`hyperLink.form.selectError`):``,children:W(pt,{className:`univer-w-full`,options:ke,value:S,onChange:e=>{var t,n;C(e);let r=(t=ke.find(t=>t.value===e))==null?void 0:t.label,i=(n=ke.find(e=>e.value===S))==null?void 0:n.label;r&&(F.current||!u||u===i)&&(R(r),F.current=!0)}})}),(ye==null?void 0:ye.Form)&&W(ye.Form,{linkId:i,payload:S,display:u,showError:P,setByPayload:F,setDisplay:e=>{R(e),F.current=!0},setPayload:C}),zt(`div`,{className:`univer-flex univer-flex-row univer-justify-end univer-gap-2`,children:[W(lt,{onClick:()=>{A&&ie.navigateToRange(A.unitId,A.subUnitId,{startRow:A.row,endRow:A.row,startColumn:A.col,endColumn:A.col},!0),j.executeCommand(_n.id)},children:w.t(`hyperLink.form.cancel`)}),W(lt,{variant:`primary`,onClick:async()=>{Me()},children:w.t(`hyperLink.form.ok`)})]})]}):null};sn.componentKey=`univer.sheet.cell-link-edit`;const cn={[V.URL]:W(Ht,{}),[V.SHEET]:W(Gt,{className:`univer-text-green-500`}),[V.RANGE]:W(Bt,{}),[V.DEFINE_NAME]:W(Bt,{}),[V.INVALID]:W(Bt,{})},ln=e=>{var t,n;let r=z(X),i=z(p),a=z(Ke),s=z(x),c=z(J),l=z(L),u=z(jt),d=z(Je),{customRange:f,row:m,col:h,unitId:g,subUnitId:_,editPermission:v,copyPermission:y,type:b}=e;if(!(!(f==null||(t=f.properties)==null)&&t.url))return null;let S=u.parseHyperLink((n=f.properties.url)==null?``:n),C=S.type===V.INVALID;return zt(`div`,{className:gt(`univer-mb-1 univer-flex univer-max-w-80 univer-flex-row univer-items-center univer-justify-between univer-overflow-hidden univer-rounded-lg univer-bg-white univer-p-3 univer-shadow-md dark:!univer-bg-gray-900`,ht),onClick:()=>r.hideCurrentPopup(),children:[zt(`div`,{className:gt(`univer-flex univer-h-6 univer-flex-1 univer-cursor-pointer univer-flex-row univer-items-center univer-truncate univer-text-sm univer-leading-5 univer-text-primary-600`,{"univer-text-red-500":C}),onClick:()=>{d.visible||C||c.navigate(S)},children:[W(`div`,{className:`univer-mr-2 univer-flex univer-size-5 univer-flex-none univer-items-center univer-justify-center univer-text-base univer-text-gray-900 dark:!univer-text-white`,children:cn[S.type]}),W(mt,{showIfEllipsis:!0,title:S.name,asChild:!0,children:W(`span`,{className:`univer-flex-1 univer-truncate`,children:S.name})})]}),zt(`div`,{className:`univer-flex univer-h-6 univer-flex-none univer-flex-row univer-items-center univer-justify-center`,children:[y&&W(`div`,{className:gt(`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,{"univer-text-red-500":C}),onClick:()=>{if(!C){if(S.type!==V.URL){let e=new URL(window.location.href);e.hash=S.url.slice(1),navigator.clipboard.writeText(e.href)}else navigator.clipboard.writeText(S.url);a.show({content:s.t(`hyperLink.message.coped`),type:ft.Info})}},children:W(mt,{placement:`bottom`,title:s.t(`hyperLink.popup.copy`),children:W(Vt,{className:`dark:!univer-text-white`})})}),v&&zt(Rt,{children:[W(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{i.executeCommand(gn.id,{unitId:g,subUnitId:_,row:m,col:h,customRangeId:f.rangeId,type:b})},children:W(mt,{placement:`bottom`,title:s.t(`hyperLink.popup.edit`),children:W(Wt,{className:`dark:!univer-text-white`})})}),W(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{let e=b===G.EDITING||b===G.ZEN_EDITOR?Dt.id:Et.id;i.syncExecuteCommand(e,{unitId:g,subUnitId:_,id:f.rangeId,row:m,column:h,documentId:b===G.ZEN_EDITOR?o:l.getCurrentEditorId()})&&r.hideCurrentPopup(void 0,!0)},children:W(mt,{placement:`bottom`,title:s.t(`hyperLink.popup.cancel`),children:W(Ut,{className:`dark:!univer-text-white`})})})]})]})]})},un=()=>{let e=z(X),[t,n]=U(null),r=z(_);if(H(()=>{n(e.currentPopup);let t=e.currentPopup$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[e.currentPopup,e.currentPopup$]),!t)return null;if(t.showAll){var i;let e=r.getUnit(t.unitId,O.UNIVER_SHEET),n=e==null?void 0:e.getSheetBySheetId(t.subUnitId),a=n==null?void 0:n.getCell(t.row,t.col),o=a==null||(i=a.p)==null||(i=i.body)==null?void 0:i.customRanges;return o!=null&&o.length?W(`div`,{children:o.map(e=>W(ln,{...t,customRange:e},e.rangeId))}):null}return W(ln,{...t})};un.componentKey=`univer.sheet.cell-link-popup`;const dn=(e,t)=>{var n,r;return e.unitId===t.unitId&&e.subUnitId===t.subUnitId&&e.row===t.row&&e.col===t.col&&((n=e.customRange)==null?void 0:n.rangeId)===((r=t.customRange)==null?void 0:r.rangeId)&&e.type===t.type};let X=class extends u{get currentPopup(){return this._currentPopup}get currentEditing(){return this._currentEditing$.getValue()}constructor(e,t,n,r,i,a,o){super(),this._sheetCanvasPopManagerService=e,this._injector=t,this._univerInstanceService=n,this._editorBridgeService=r,this._textSelectionManagerService=i,this._docCanvasPopManagerService=a,this._zenZoneService=o,Y(this,`_currentPopup`,null),Y(this,`_currentPopup$`,new it),Y(this,`currentPopup$`,this._currentPopup$.asObservable()),Y(this,`_currentEditingPopup`,null),Y(this,`_currentEditing$`,new nt(null)),Y(this,`currentEditing$`,this._currentEditing$.asObservable()),Y(this,`_isKeepVisible`,!1),this.disposeWithMe(()=>{this.hideCurrentPopup(),this.endEditing(),this._currentEditing$.complete(),this._currentPopup$.complete()})}setIsKeepVisible(e){this._isKeepVisible=e}getIsKeepVisible(){return this._isKeepVisible}showPopup(e){if(this._currentPopup&&dn(e,this._currentPopup)||(this.hideCurrentPopup(void 0,!0),e.type!==G.ZEN_EDITOR&&this._zenZoneService.visible))return;let t=this._currentEditing$.getValue();if(t&&dn(e,t))return;let{unitId:n,subUnitId:r,row:i,col:a,customRangeRect:s,customRange:c}=e,l,u={componentKey:un.componentKey,direction:`bottom`,onClickOutside:()=>{this.hideCurrentPopup()},onClick:()=>{this.hideCurrentPopup(e.type,!0)}};if(e.type===G.EDITING){if(!c)return;l=s&&this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(s,u)}else if(e.type===G.ZEN_EDITOR){if(!c)return;l=this._docCanvasPopManagerService.attachPopupToRange({startOffset:c.startIndex,endOffset:c.endIndex+1,collapsed:!1},u,o)}else if(e.showAll)l=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,u,n,r);else{if(!c)return;l=s&&this._sheetCanvasPopManagerService.attachPopupByPosition(s,u,e)}if(l){if(this._currentPopup){var d;(d=this._currentPopup.disposable)==null||d.dispose()}this._currentPopup={unitId:n,subUnitId:r,disposable:l,row:i,col:a,editPermission:!!e.editPermission,copyPermission:!!e.copyPermission,customRange:c,type:e.type,showAll:e.showAll},this._currentPopup$.next(this._currentPopup)}}hideCurrentPopup(e,t){if(this._currentPopup&&((!e||e===this._currentPopup.type)&&this._currentPopup.disposable.canDispose()||t)){var n;(n=this._currentPopup)==null||(n=n.disposable)==null||n.dispose(),this._currentPopup=null,this._currentPopup$.next(null)}}dispose(){super.dispose(),this.hideCurrentPopup(),this.endEditing(),this._currentPopup$.complete(),this._currentEditing$.complete()}_getEditingRange(){let t=this._editorBridgeService.isVisible().visible,n=this._editorBridgeService.getEditCellState();if(t&&n){var i,a,o;let t=this._textSelectionManagerService.getActiveTextRange(),s=(i=n.documentLayoutObject.documentModel)==null?void 0:i.getBody();if(!s)return null;if(!t||t.collapsed)return{startOffset:0,endOffset:s.dataStream.length-2,collapsed:s.dataStream.length-2==0,label:e.transform.getPlainText(s.dataStream)};let c=e.customRange.getCustomRangesInterestsWithSelection(t,(a=(o=s.customRanges)==null?void 0:o.filter(e=>e.rangeType===r.HYPERLINK))==null?[]:a),l=t.startOffset,u=t.endOffset;return c.forEach(e=>{l=Math.min(l,e.startIndex),u=Math.max(u,e.endIndex+1)}),{startOffset:l,endOffset:u,collapsed:l===u,label:e.transform.getPlainText(s.dataStream.slice(l,u))}}return null}get _editPopup(){return{componentKey:sn.componentKey,direction:`vertical`,onClickOutside:()=>{this.endEditing()},onContextMenu:()=>{this.endEditing()},hiddenType:`hide`}}startAddEditing(t){let{unitId:n,subUnitId:r,type:i}=t;if(i===G.ZEN_EDITOR){var s;let e=this._univerInstanceService.getUnit(o,O.UNIVER_DOC);if(!e)return;let n=this._textSelectionManagerService.getActiveTextRange();if(!n)return;this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange(n,this._editPopup,o);let r=(s=e.getBody())==null?void 0:s.dataStream.slice(n.startOffset,n.endOffset);this._currentEditing$.next({...t,label:r})}else if(i===G.EDITING){var c;let e=this._getEditingRange();if(!e)return;this._textSelectionManagerService.replaceDocRanges([{...e}],{unitId:a,subUnitId:a});let i=this._injector.get(Ve).getRenderById(a);if(!i)return;let o=Be(e,i);if(!(o!=null&&o.length))return;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(o.pop(),this._editPopup,n,r),this._currentEditing$.next({...t,label:(c=e==null?void 0:e.label)==null?``:c})}else{var l,u,d;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(t.row,t.col,this._editPopup,n,r);let i=this._univerInstanceService.getUnit(n,O.UNIVER_SHEET),a=i==null?void 0:i.getSheetBySheetId(r),o=a==null?void 0:a.getCellRaw(t.row,t.col);this._currentEditing$.next({...t,label:o!=null&&o.p?e.transform.getPlainText((l=(u=o.p.body)==null?void 0:u.dataStream)==null?``:l):((d=o==null?void 0:o.v)==null?``:d).toString()})}}startEditing(e){var t;(t=this._currentEditingPopup)==null||t.dispose(),this.hideCurrentPopup(void 0,!0);let{unitId:n,subUnitId:r}=e,i,a;if(e.type===G.ZEN_EDITOR){var s,c;let t=this._univerInstanceService.getUnit(o,O.UNIVER_DOC);if(i=t==null||(s=t.getBody())==null||(s=s.customRanges)==null?void 0:s.find(t=>t.rangeId===e.customRangeId),a=i?t==null||(c=t.getBody())==null?void 0:c.dataStream.slice(i.startIndex,i.endIndex+1):``,!i||!a)return;this._textSelectionManagerService.replaceTextRanges([{startOffset:i.startIndex,endOffset:i.endIndex+1}]),this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange({startOffset:i.startIndex,endOffset:i.endIndex,collapsed:!1},this._editPopup,o)}else if(e.type===G.EDITING){var l;let t=Ae(this._injector,e.unitId,e.subUnitId,e.row,e.col,e.customRangeId);if(!t||!((l=t.rects)!=null&&l.length))return;i=t.customRange,a=t.label,this._textSelectionManagerService.replaceTextRanges([{startOffset:i.startIndex,endOffset:i.endIndex+1}]),this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(t.rects.pop(),this._editPopup,n,r)}else{var u;let t=this._univerInstanceService.getUnit(n,O.UNIVER_SHEET),o=t==null?void 0:t.getSheetBySheetId(r),s=o==null?void 0:o.getCellRaw(e.row,e.col),c=t==null?void 0:t.getStyles().getStyleByCell(s),l=c==null?void 0:c.tr,d=ke(this._injector,e.unitId,e.subUnitId,e.row,e.col,e.customRangeId);if(!d||!((u=d.rects)!=null&&u.length))return;i=d.customRange,a=d.label,l?this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,this._editPopup,n,r):this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupByPosition(d.rects.pop(),this._editPopup,{unitId:n,subUnitId:r,row:e.row,col:e.col})}this._currentEditing$.next({...e,customRange:i,label:a})}endEditing(e){if(this.getIsKeepVisible())return;let t=this._currentEditing$.getValue();if(t&&(!e||e===t.type)){var n;(n=this._currentEditingPopup)==null||n.dispose(),this._currentEditing$.next(null)}}};X=q([K(0,v(Ee)),K(1,v(y)),K(2,_),K(3,L),K(4,v(Pe)),K(5,v(Ie)),K(6,Je)],X);let Z=function(e){return e[e.ALLOWED=0]=`ALLOWED`,e[e.DISABLED_BY_CELL=1]=`DISABLED_BY_CELL`,e[e.ALLOW_ON_EDITING=2]=`ALLOW_ON_EDITING`,e}({});const fn=new Set([c.CHECKBOX,c.LIST,c.LIST_MULTIPLE]),pn=(e,t,n,r)=>{var i,a;let o=t.getCell(n,r);if(o!=null&&o.f||o!=null&&o.si||!(o==null||(i=o.p)==null||(i=i.body)==null||(i=i.customBlocks)==null)&&i.length)return Z.DISABLED_BY_CELL;let s=e.has(Kt)?e.get(Kt):null,c=s==null?void 0:s.getRuleByLocation(t.getUnitId(),t.getSheetId(),n,r);return c&&fn.has(c.type)?!0:!(o==null||(a=o.p)==null||(a=a.drawingsOrder)==null)&&a.length?Z.ALLOW_ON_EDITING:Z.ALLOWED},mn=e=>{let t=e.get(_).getCurrentUnitForType(O.UNIVER_SHEET);if(!t)return!0;let n=t.getActiveSheet(),r=e.get(fe).getCurrentSelections();if(!r.length)return!0;let i=r[0].range.startRow,a=r[0].range.startColumn;return pn(e,n,i,a)===Z.DISABLED_BY_CELL},hn=e=>{let t=e.get(Pe),n=e.get(_),r=t.getTextRanges();if(!(r!=null&&r.length))return!0;let i=n.getCurrentUnitForType(O.UNIVER_DOC);return!!(!i||r.every(e=>e.collapsed)||!i.getSelfOrHeaderFooterModel(r[0].segmentId).getBody())},gn={type:n.OPERATION,id:`sheet.operation.open-hyper-link-edit-panel`,handler(e,t){if(!t)return!1;let n=e.get(X);return t.customRangeId?n.startEditing(t):n.startAddEditing(t),!0}},_n={type:n.OPERATION,id:`sheet.operation.close-hyper-link-popup`,handler(e){return e.get(X).endEditing(),!0}},vn={type:n.OPERATION,id:`sheet.operation.insert-hyper-link`,handler(e){var t;let n=e.get(_),r=be(n),i=e.get(L);if(!r)return!1;let a=e.get(p),s=e.get(fe).getCurrentLastSelection();if(!s)return!1;let c=s.range.startRow,l=s.range.startColumn,u=i.isVisible(),d=((t=n.getFocusedUnit())==null?void 0:t.getUnitId())===o;return a.executeCommand(gn.id,{unitId:r.unitId,subUnitId:r.subUnitId,row:c,col:l,type:d?G.ZEN_EDITOR:u.visible?G.EDITING:G.VIEWING})}},Q={type:n.OPERATION,id:`sheet.operation.insert-hyper-link-toolbar`,handler(e){if(mn(e))return!1;let t=e.get(p);return e.get(X).currentEditing?t.executeCommand(_n.id):t.executeCommand(vn.id)}},yn=`SHEET_HYPER_LINK_UI_PLUGIN`;let bn=class extends u{registerPlainTextFilter(e){this._plainTextFilter.add(e)}removePlainTextFilter(e){this._plainTextFilter.delete(e)}_filterPlainText(e){return Array.from(this._plainTextFilter).every(t=>t(e))}constructor(e,t,n,r){super(),this._sheetClipboardService=e,this._hyperLinkModel=t,this._injector=n,this._resolverService=r,Y(this,`_plainTextFilter`,new Set),Y(this,`_copyInfo`,void 0),this._initCopyPaste(),this.disposeWithMe(()=>{this._plainTextFilter.clear()})}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:yn,onBeforeCopy:(e,t,n)=>this._collect(e,t,n),onPasteCells:(e,t,n,r)=>{let{copyType:i=Se.COPY,pasteType:a}=r,{range:o}=e||{},{range:s,unitId:c,subUnitId:l}=t;return this._generateMutations(s,{copyType:i,pasteType:a,copyRange:o,unitId:c,subUnitId:l})},onPastePlainText:(e,t)=>{let n=this._filterPlainText(t);if(qt(t)&&n){let{range:t,unitId:n,subUnitId:r}=e,{ranges:[i],mapFunc:a}=Me([t]),o=[],s=[];return T.foreach(i,(e,t)=>{let{row:i,col:c}=a(e,t),l=this._hyperLinkModel.getHyperLinkByLocation(n,r,i,c);l&&o.push({id:At.id,params:{unitId:n,subUnitId:r,id:l.id}}),l&&s.push({id:wt.id,params:{unitId:n,subUnitId:r,link:l}})}),{redos:o,undos:s}}return{undos:[],redos:[]}},priority:99})}_collect(e,t,n){let r=new S;this._copyInfo={unitId:e,subUnitId:t,matrix:r};let i=this._injector.invoke(r=>xe(n,r,e,t));if(!i)return;let{rows:a,cols:o}=i;a.forEach((n,i)=>{o.forEach((a,o)=>{var s;let c=this._hyperLinkModel.getHyperLinkByLocation(e,t,n,a);r.setValue(i,o,(s=c==null?void 0:c.id)==null?``:s)})})}_generateMutations(e,t){if(!this._copyInfo||!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!t.copyRange||[R.SPECIAL_PASTE_COL_WIDTH,R.SPECIAL_PASTE_VALUE,R.SPECIAL_PASTE_FORMAT,R.SPECIAL_PASTE_FORMULA].includes(t.pasteType))return{redos:[],undos:[]};let{unitId:n,subUnitId:r}=this._copyInfo,i=[],a=[],{ranges:[o,s],mapFunc:c}=Me([t.copyRange,e]);return je(o,s,!0).forEach(({startRange:e})=>{var o;(o=this._copyInfo)==null||o.matrix.forValue((o,s,l)=>{let u=E.getPositionRange({startRow:o,endRow:o,startColumn:s,endColumn:s},e),d=this._hyperLinkModel.getHyperLink(n,r,l),{row:f,col:p}=c(u.startRow,u.startColumn),m=this._hyperLinkModel.getHyperLinkByLocation(t.unitId,t.subUnitId,f,p),h=te();m&&i.push({id:At.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,id:m.id}}),d&&(i.push({id:wt.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,link:{...d,id:h,row:f,column:p}}}),a.push({id:At.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,id:h}})),m&&a.push({id:wt.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,link:m}})})}),{redos:i,undos:a}}};bn=q([K(0,we),K(1,v(kt)),K(2,v(y)),K(3,v(J))],bn);const xn=(e,t=o)=>{var n;let r=e.get(_),i=(n=e.get(Ve).getRenderById(t))==null?void 0:n.with(Re);return i?i.textSelectionInner$.pipe(st(()=>{let t=e.get(L).getEditCellState();if(!t)return!0;let n=be(r,{unitId:t.unitId,subUnitId:t.sheetId});return!(n!=null&&n.worksheet)||pn(e,n.worksheet,t.row,t.column)===1?!0:hn(e)})):B(!0)},Sn=e=>{var t;let n=e.get(_),r=e.has(L)?e.get(L):null;return((t=r==null?void 0:r.currentEditCellState$.pipe(st(t=>{if(!t)return Z.DISABLED_BY_CELL;let r=be(n,{unitId:t.unitId,subUnitId:t.sheetId});return r?pn(e,r.worksheet,t.row,t.column):Z.DISABLED_BY_CELL}),ct(t=>t===Z.DISABLED_BY_CELL?B(!0):at([r?r.visible$:B(null),n.getCurrentTypeOfUnit$(O.UNIVER_DOC)]).pipe(ct(([n,r])=>n!=null&&n.visible?(r==null?void 0:r.getUnitId())===i?B(!0):xn(e,a):B(t!==Z.ALLOWED))))))==null?B(!0):t).pipe(ct(t=>t?B(!0):Oe(e,{workbookTypes:[me],worksheetTypes:[_e,ye,ve],rangeTypes:[N]},!0)))},Cn={commandId:vn.id,type:Xe.BUTTON,title:`hyperLink.menu.add`,icon:`LinkIcon`},wn=e=>`${e}-zen-editor`,Tn=e=>({...Cn,id:Cn.commandId,hidden$:$e(e,O.UNIVER_SHEET),disabled$:Sn(e)}),En=e=>({...Cn,id:wn(Cn.commandId),hidden$:$e(e,O.UNIVER_DOC,o),disabled$:xn(e)}),Dn={tooltip:`hyperLink.form.addTitle`,commandId:Q.id,type:Xe.BUTTON,icon:`LinkIcon`},On=e=>({...Dn,id:Dn.commandId,hidden$:$e(e,O.UNIVER_SHEET),disabled$:Sn(e)}),kn=e=>({...Dn,id:wn(Dn.commandId),hidden$:$e(e,O.UNIVER_DOC,o),disabled$:xn(e)}),An={id:Q.id,binding:Ye.K|Ze.CTRL_COMMAND,preconditions:Ne};var jn=`@univerjs/sheets-hyper-link-ui`,Mn=`0.20.0`;let Nn=class extends u{constructor(e,t){super(),this._autoFillService=e,this._hyperLinkModel=t,this._initAutoFill()}_initAutoFill(){let e=()=>({redos:[],undos:[]}),t=(e,t)=>{let{source:n,target:r,unitId:i,subUnitId:a}=e,o=Me([n,r]),[s,c]=o.ranges,{mapFunc:l}=o,u={row:s.startRow,col:s.startColumn},d=re.getAutoFillRepeatRange(s,c),f=[],p=[];return d.forEach(e=>{let n=e.repeatStartCell,r=e.relativeRange,o={startRow:u.row,startColumn:u.col,endColumn:u.col,endRow:u.row},s={startRow:n.row,startColumn:n.col,endColumn:n.col,endRow:n.row};T.foreach(r,(e,n)=>{let r=E.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},o),{row:c,col:u}=l(r.startRow,r.startColumn),d=this._hyperLinkModel.getHyperLinkByLocation(i,a,c,u),m=E.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},s),{row:h,col:g}=l(m.startRow,m.startColumn),_=te(),v=this._hyperLinkModel.getHyperLinkByLocation(i,a,h,g);v&&f.push({id:At.id,params:{unitId:i,subUnitId:a,id:v.id}}),(A.COPY===t||A.SERIES===t)&&d&&(f.push({id:wt.id,params:{unitId:i,subUnitId:a,link:{...d,id:_,row:h,column:g}}}),p.push({id:At.id,params:{unitId:i,subUnitId:a,id:_}})),v&&p.push({id:wt.id,params:{unitId:i,subUnitId:a,link:v}})})}),{undos:p,redos:f}},n={id:yn,onFillData:(n,r,i)=>i===A.COPY||i===A.ONLY_FORMAT||i===A.SERIES?t(n,i):e()};this.disposeWithMe(this._autoFillService.addHook(n))}};Nn=q([K(0,ae),K(1,v(kt))],Nn);let Pn=class extends u{constructor(e,t,n){super(),this._localeService=e,this._commandService=t,this._sheetPermissionCheckController=n,this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{e.id===An.id&&(this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[me],rangeTypes:[N],worksheetTypes:[_e,ye,ve]})||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localeService.t(`permission.dialog.hyperLinkErr`)))}))}};Pn=q([K(0,v(x)),K(1,p),K(2,v(de))],Pn);let Fn=class extends u{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._hoverManagerService=e,this._sheetsHyperLinkPopupService=t,this._renderManagerService=n,this._permissionService=r,this._sheetPermissionCheckController=i,this._commandService=a,this._editorBridgeService=o,this._textSelectionManagerService=s,this._univerInstanceService=c,this._zenZoneService=l,this._initHoverListener(),this._initCommandListener(),this._initHoverEditingListener(),this._initTextSelectionListener(),this._initZenEditor()}_getLinkPermission(e){let{unitId:t,subUnitId:n,row:r,col:i}=e,a=this._univerInstanceService.getUnit(t,O.UNIVER_SHEET),o=a==null?void 0:a.getSheetBySheetId(n);if(!o)return{viewPermission:!1,editPermission:!1,copyPermission:!1};let s=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[he],worksheetTypes:[P],rangeTypes:[se]},[{startRow:r,startColumn:i,endRow:r,endColumn:i}],t,n),c=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[me],worksheetTypes:[_e,ve],rangeTypes:[N]},[{startRow:r,startColumn:i,endRow:r,endColumn:i}],t,n),l=o.getCellRaw(r,i);l!=null&&l.f&&l.f.startsWith(`=HYPERLINK(`)&&(c=!1);let u=this._permissionService.composePermission([new pe(t).id,new ge(t,n).id]).every(e=>e.value);return{viewPermission:s,editPermission:c,copyPermission:u}}_initHoverListener(){this.disposeWithMe(this._hoverManagerService.currentRichText$.pipe(ot(200)).subscribe(e=>{var t,n,i;if(!e||((t=e.customRange)==null?void 0:t.rangeType)!==r.HYPERLINK){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let{unitId:a,subUnitId:o,row:s,col:c}=e,l=this._renderManagerService.getRenderById(a);if(!l)return;let u=this._univerInstanceService.getUnit(a,O.UNIVER_SHEET),d=u==null?void 0:u.getSheetBySheetId(o);if(!d)return;if(!l.with(I).active){this._sheetsHyperLinkPopupService.hideCurrentPopup(G.VIEWING);return}let f=l==null||(n=l.with(De).getSkeletonParam(o))==null?void 0:n.skeleton,p=c,m=s,h=m,g=p;f&&f.overflowCache.forValue((e,t,n)=>{E.contains(n,{startColumn:p,endColumn:p,startRow:m,endRow:m})&&(h=e,g=t)});let{viewPermission:_,editPermission:v,copyPermission:y}=this._getLinkPermission(e);if(!_){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let b=d.getCellStyleOnly(h,g),x=u.getStyles().getStyleByCell(b),S=x==null||(i=x.tr)==null?void 0:i.a;if(!S&&!e.customRange){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}this._sheetsHyperLinkPopupService.showPopup({row:h,col:g,editPermission:v,copyPermission:y,customRange:e.customRange,customRangeRect:e.rect,type:G.VIEWING,unitId:a,subUnitId:o,showAll:!!S})}))}_initHoverEditingListener(){let e=null;this.disposeWithMe(this._editorBridgeService.currentEditCellState$.pipe(ct(e=>this._editorBridgeService.visible$.pipe(st(t=>({visible:t,state:e}))))).subscribe(({visible:t,state:n})=>{if(!n||n.editorUnitId!==a)return;if(!t.visible){e==null||e.unsubscribe(),this._sheetsHyperLinkPopupService.hideCurrentPopup(G.EDITING),this._sheetsHyperLinkPopupService.endEditing(G.EDITING);return}let{editorUnitId:i,unitId:o,sheetId:s,row:c,column:l}=n,u=this._renderManagerService.getRenderById(i);if(!u)return;let{editPermission:d,viewPermission:f,copyPermission:p}=this._getLinkPermission({unitId:o,subUnitId:s,row:c,col:l}),m=u.with(Le);f&&(e==null||e.unsubscribe(),e=m.hoverCustomRanges$.pipe(ot(200)).subscribe(e=>{var t;let n=e.find(e=>e.range.rangeType===r.HYPERLINK);if(!n){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let i=n.rects[n.rects.length-1];if(!(!((t=this._renderManagerService.getRenderById(o))==null||(t=t.with(De).getSkeletonParam(s))==null)&&t.skeleton)||!i)return;let a=u.engine.getCanvasElement().getBoundingClientRect();this._sheetsHyperLinkPopupService.showPopup({unitId:o,subUnitId:s,row:c,col:l,customRange:n.range,customRangeRect:{left:i.left+a.left,top:i.top+a.top,bottom:i.bottom+a.top,right:i.right+a.left},editPermission:d,copyPermission:p,type:G.EDITING})}))})),this.disposeWithMe(()=>{e==null||e.unsubscribe()})}_initZenEditor(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e?(this._sheetsHyperLinkPopupService.hideCurrentPopup(G.VIEWING),this._sheetsHyperLinkPopupService.hideCurrentPopup(G.EDITING),this._sheetsHyperLinkPopupService.endEditing(G.EDITING),this._sheetsHyperLinkPopupService.hideCurrentPopup(G.VIEWING)):(this._sheetsHyperLinkPopupService.hideCurrentPopup(G.ZEN_EDITOR),this._sheetsHyperLinkPopupService.endEditing(G.ZEN_EDITOR))})),this.disposeWithMe(this._univerInstanceService.focused$.pipe(ct(e=>{let t=e===o?this._renderManagerService.getRenderById(e):null;return t?t.with(Le).hoverCustomRanges$.pipe(ot(200)):new rt(e=>{e.next(null)})})).subscribe(e=>{let t=e==null?void 0:e.find(e=>e.range.rangeType===r.HYPERLINK),n=this._editorBridgeService.getEditCellState();if(t&&n){let{unitId:e,sheetId:r,row:i,column:a}=n,{editPermission:o,viewPermission:s,copyPermission:c}=this._getLinkPermission({unitId:e,subUnitId:r,row:i,col:a});s&&this._sheetsHyperLinkPopupService.showPopup({type:G.ZEN_EDITOR,unitId:e,subUnitId:r,row:i,col:a,customRange:t.range,editPermission:o,copyPermission:c})}else this._sheetsHyperLinkPopupService.hideCurrentPopup(G.ZEN_EDITOR)}))}_initTextSelectionListener(){this.disposeWithMe(this._textSelectionManagerService.textSelection$.subscribe(e=>{e&&e.unitId===a&&this._sheetsHyperLinkPopupService.endEditing(G.EDITING)}))}_initCommandListener(){let e=[j.id,ie.id,M.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{e.includes(t.id)&&this._sheetsHyperLinkPopupService.hideCurrentPopup()}))}};Fn=q([K(0,v(F)),K(1,v(X)),K(2,v(Ve)),K(3,v(g)),K(4,v(de)),K(5,p),K(6,L),K(7,v(Pe)),K(8,_),K(9,Je)],Fn);let In=class extends u{constructor(e,t){super(),this._context=e,this._hyperLinkModel=t,this._initSkeletonChange()}_initSkeletonChange(){let e=()=>{var e;(e=this._context.mainComponent)==null||e.makeForceDirty()};this.disposeWithMe(this._hyperLinkModel.linkUpdate$.pipe(ot(16)).subscribe(()=>{e()}))}};In=q([K(1,v(kt))],In);let Ln=class extends u{constructor(e,t){super(),this._sheetInterceptorService=e,this._hyperLinkModel=t,this._initViewModelIntercept()}_initViewModelIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(oe.CELL_CONTENT,{effect:b.Value,priority:100,handler:(e,t,n)=>{let{row:r,col:i,unitId:a,subUnitId:o}=t,s=this._hyperLinkModel.getHyperLinkByLocation(a,o,r,i);return s&&e?(e===t.rawData&&(e={...t.rawData}),e.linkUrl=s.payload,e.linkId=s.id,n(e)):n(e)}}))}};Ln=q([K(0,v(ue)),K(1,v(kt))],Ln);const Rn={[Qe.MEDIA]:{[Q.id]:{order:1,menuItemFactory:On},[wn(Q.id)]:{order:1,menuItemFactory:kn}},[We.MAIN_AREA]:{[Ue.OTHERS]:{order:1,[Q.id]:{order:0,menuItemFactory:Tn},[wn(Q.id)]:{order:0,menuItemFactory:En}}}};let zn=class extends u{constructor(e,t,n,r,i){super(),this._componentManager=e,this._commandService=t,this._menuManagerService=n,this._injector=r,this._shortcutService=i,this._initComponents(),this._initCommands(),this._initMenus(),this._initShortCut()}_initComponents(){[[un.componentKey,un],[sn.componentKey,sn],[`LinkIcon`,Ht]].forEach(([e,t])=>{this._componentManager.register(e,t)})}_initCommands(){[gn,_n,vn,Q].forEach(e=>{this._commandService.registerCommand(e)})}_initMenus(){this._menuManagerService.mergeMenu(Rn)}_initShortCut(){this._shortcutService.registerShortcut(An)}};zn=q([K(0,v(He)),K(1,p),K(2,Ge),K(3,v(y)),K(4,v(qe))],zn);let Bn=class extends u{constructor(e,t){super(),this._parserService=e,this._resolverService=t,this._handleInitUrl()}_handleInitUrl(){let e=location.hash;if(e){let t=this._parserService.parseHyperLink(e);this._resolverService.navigate(t)}}};Bn=q([K(0,v(jt)),K(1,v(J))],Bn);let $=class extends C{constructor(e=Qt,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{menu:r,...i}=ne({},Qt,this._config);r&&this._configService.setConfig(`menu`,r,{merge:!0}),this._configService.setConfig(Zt,i)}onStarting(){[[J],[X],[rn],[Ln],[Fn],[zn],[Nn],[bn],[Pn],[Bn]].forEach(e=>this._injector.add(e)),this._injector.get(Ln)}onReady(){this._injector.get(Ve).registerRenderModule(O.UNIVER_SHEET,[In]),this._injector.get(Nn),this._injector.get(bn),this._injector.get(zn)}onRendered(){this._injector.get(Pn),this._injector.get(Bn),this._injector.get(Fn)}};Y($,`pluginName`,yn),Y($,`packageName`,jn),Y($,`version`,Mn),Y($,`type`,O.UNIVER_SHEET),$=q([l(Mt,ze),K(1,v(y)),K(2,m)],$);export{_n as CloseHyperLinkPopupOperation,vn as InsertHyperLinkOperation,An as InsertLinkShortcut,gn as OpenHyperLinkEditPanelOperation,bn as SheetsHyperLinkCopyPasteController,X as SheetsHyperLinkPopupService,J as SheetsHyperLinkResolverService,rn as SheetsHyperLinkSidePanelService,$ as UniverSheetsHyperLinkUIPlugin};
1
+ import{BuildTextUtils as e,ColorKit as t,CommandType as n,CustomRangeType as r,DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY as i,DOCS_NORMAL_EDITOR_UNIT_ID_KEY as a,DOCS_ZEN_EDITOR_UNIT_ID_KEY as o,DataStreamTreeTokenType as s,DataValidationType as c,DependentOn as l,Disposable as u,DisposableCollection as d,FOCUSING_SHEET as f,ICommandService as p,IConfigService as m,IContextService as h,IPermissionService as g,IUniverInstanceService as _,Inject as v,Injector as y,LocaleService as b,ObjectMatrix as x,Plugin as S,RANGE_TYPE as C,Range as w,Rectangle as T,ThemeService as ee,Tools as te,UniverInstanceType as E,generateRandomId as D,isValidRange as O,merge as k}from"@univerjs/core";import{AUTO_FILL_APPLY_TYPE as A,AutoFillTools as j,ClearSelectionAllCommand as ne,ClearSelectionContentCommand as re,ClearSelectionFormatCommand as M,IAutoFillService as N,RangeProtectionPermissionEditPoint as ie,RangeProtectionPermissionViewPoint as ae,SetSelectionsOperation as oe,SetWorksheetActiveOperation as se,SheetPermissionCheckController as ce,SheetsSelectionsService as le,WorkbookCopyPermission as ue,WorkbookEditablePermission as de,WorkbookViewPermission as fe,WorksheetCopyPermission as pe,WorksheetEditPermission as me,WorksheetInsertHyperlinkPermission as he,WorksheetSetCellValuePermission as ge,WorksheetViewPermission as _e,getSheetCommandTarget as ve,rangeToDiscreteRange as ye}from"@univerjs/sheets";import{COPY_TYPE as P,HoverManagerService as be,HoverRenderController as xe,IEditorBridgeService as F,IMarkSelectionService as Se,ISheetClipboardService as Ce,PREDEFINED_HOOK_NAME_PASTE as I,ScrollToRangeOperation as we,SheetCanvasPopManagerService as L,SheetSkeletonManagerService as Te,getCurrentRangeDisable$ as R,getCustomRangePosition as Ee,getEditingCustomRangePosition as De,getRepeatRange as Oe,virtualizeDiscreteRanges as ke,whenSheetEditorFocused as Ae}from"@univerjs/sheets-ui";import{DocSelectionManagerService as je}from"@univerjs/docs";import{DocBackScrollRenderController as Me,DocCanvasPopManagerService as Ne,DocEventManagerService as Pe,DocSelectionRenderService as Fe,UniverDocsUIPlugin as Ie,calcDocRangePositions as Le}from"@univerjs/docs-ui";import{IRenderManagerService as Re}from"@univerjs/engine-render";import{ComponentManager as ze,ContextMenuGroup as Be,ContextMenuPosition as Ve,IMenuManagerService as He,IMessageService as Ue,IShortcutService as We,IZenZoneService as Ge,KeyCode as Ke,MenuItemType as qe,MetaKeys as Je,RibbonInsertGroup as Ye,getMenuHiddenObservable as Xe,useDependency as z,useEvent as Ze,useObservable as Qe}from"@univerjs/ui";import{BehaviorSubject as $e,Observable as et,Subject as tt,combineLatest as nt,debounceTime as rt,map as it,of as B,switchMap as at}from"rxjs";import{Button as ot,FormLayout as st,Input as ct,MessageType as lt,Select as ut,Tooltip as dt,borderClassName as ft,clsx as pt}from"@univerjs/design";import{IDefinedNamesService as mt,deserializeRangeWithSheet as ht,serializeRange as gt,serializeRangeToRefString as _t,serializeRangeWithSheet as vt}from"@univerjs/engine-formula";import{RangeSelector as yt}from"@univerjs/sheets-formula-ui";import{AddHyperLinkCommand as bt,AddHyperLinkMutation as xt,AddRichHyperLinkCommand as St,CancelHyperLinkCommand as Ct,CancelRichHyperLinkCommand as wt,ERROR_RANGE as Tt,HyperLinkModel as Et,RemoveHyperLinkMutation as Dt,SheetHyperLinkType as V,SheetsHyperLinkParserService as Ot,UniverSheetsHyperLinkPlugin as kt,UpdateHyperLinkCommand as At,UpdateRichHyperLinkCommand as jt}from"@univerjs/sheets-hyper-link";import{useCallback as Mt,useEffect as H,useMemo as Nt,useRef as Pt,useState as U}from"react";import{Fragment as Ft,jsx as W,jsxs as It}from"react/jsx-runtime";import{AllBorderIcon as Lt,CopyIcon as Rt,LinkIcon as zt,UnlinkIcon as Bt,WriteIcon as Vt,XlsxMultiIcon as Ht}from"@univerjs/icons";import{SheetDataValidationModel as Ut}from"@univerjs/sheets-data-validation";let G=function(e){return e.EDITING=`editing`,e.VIEWING=`viewing`,e.ZEN_EDITOR=`zen_mode`,e}({});function Wt(e){return te.isLegalUrl(e)}function Gt(e){return/^[a-zA-Z]+:\/\//.test(e)}function Kt(e){return/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(e)}function qt(e){if(Wt(e)){let t=Gt(e)?e:Kt(e)?`mailto://${e}`:`http://${e}`,n;try{n=new URL(t)}catch{return e}return n.hostname===location.hostname&&n.port===location.port&&n.protocol===location.protocol&&n.pathname===location.pathname&&n.hash&&!n.search?n.hash:t}return e}const Jt=`sheets-hyper-link-ui.config`;Symbol(Jt);const Yt={};function K(e,t){return function(n,r){t(n,r,e)}}function q(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function Xt(e,t){let n=t.getMergeData(),r=t.getMaxColumns()-1,i=t.getMaxRows()-1;if(r<e.endColumn&&(e.endColumn=r),i<e.endRow&&(e.endRow=i),e.rangeType===C.COLUMN||C.ROW)return e;let a=[];return n.forEach(t=>{T.intersects(e,t)&&a.push(t)}),T.realUnion(e,...a)}let J=class{constructor(e,t,n,r,i,a){this._univerInstanceService=e,this._commandService=t,this._definedNamesService=n,this._messageService=r,this._localeService=i,this._configService=a}navigate(e){switch(e.type){case V.URL:this.navigateToOtherWebsite(e.url);break;default:this._navigateToUniver(e.searchObj)}}_navigateToUniver(e){let{gid:t,range:n,rangeid:r}=e,i=this._univerInstanceService.getCurrentUnitForType(E.UNIVER_SHEET);if(!i)return;let a=i.getUnitId();if(r){let e=this._definedNamesService.getValueById(a,r);if(!e)return;let{formulaOrRefString:t}=e,n=this._definedNamesService.getWorksheetByRef(a,t);if(!n){this._messageService.show({content:this._localeService.t(`hyperLink.message.refError`),type:lt.Error});return}if(n.isSheetHidden()){this._messageService.show({content:this._localeService.t(`hyperLink.message.hiddenSheet`),type:lt.Error});return}this.navigateToDefineName(a,r)}if(t){if(n){let e=ht(n);O(e.range)&&n!==Tt&&this.navigateToRange(a,t,e.range);return}this.navigateToSheetById(a,t)}}async navigateToRange(e,t,n,r){let i=await this.navigateToSheetById(e,t);if(i){let a=Xt(n,i);await this._commandService.executeCommand(oe.id,{unitId:e,subUnitId:t,selections:[{range:a,primary:null}]}),await this._commandService.executeCommand(we.id,{range:a,forceTop:r})}}async navigateToSheetById(e,t){let n=this._univerInstanceService.getUnit(e,E.UNIVER_SHEET);if(!n)return!1;let r=n.getActiveSheet();if(!r)return!1;if(r.getSheetId()===t)return r;let i=n.getSheetBySheetId(t);return i?n.getHiddenWorksheets().indexOf(t)>-1?(this._messageService.show({content:this._localeService.t(`hyperLink.message.hiddenSheet`),type:lt.Error}),!1):await this._commandService.executeCommand(se.id,{unitId:e,subUnitId:t})?i:!1:(this._messageService.show({content:this._localeService.t(`hyperLink.message.noSheet`),type:lt.Error}),!1)}async navigateToDefineName(e,t){return this._definedNamesService.focusRange(e,t),!0}async navigateToOtherWebsite(e){var t;let n=this._configService.getConfig(Jt);if(!(n==null||(t=n.urlHandler)==null)&&t.navigateToOtherWebsite)return n.urlHandler.navigateToOtherWebsite(e);window.open(e,`_blank`,`noopener noreferrer`)}};J=q([K(0,_),K(1,p),K(2,mt),K(3,Ue),K(4,v(b)),K(5,m)],J);function Zt(e){"@babel/helpers - typeof";return Zt=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Zt(e)}function Qt(e,t){if(Zt(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Zt(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function $t(e){var t=Qt(e,`string`);return Zt(t)==`symbol`?t:t+``}function Y(e,t,n){return(t=$t(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var en=class extends u{constructor(...e){super(...e),Y(this,`_customHyperLinks`,new Map)}isBuiltInLinkType(e){return e!==V.URL}getOptions(){return Array.from(this._customHyperLinks.values()).map(({option:e})=>e)}findCustomHyperLink(e){return Array.from(this._customHyperLinks.values()).find(t=>t.match(e))}registerCustomHyperLink(e){this._customHyperLinks.set(e.type,e)}getCustomHyperLink(e){return this._customHyperLinks.get(e)}removeCustomHyperLink(e){let{_customHyperLinks:t}=this;t.delete(e)}dispose(){super.dispose(),this._customHyperLinks.clear()}};function tn(e){return e.trim().length===0}function nn(e,t){let[n]=e.split(`,`).map(ht);return!n||!O(n.range)?``:(n.sheetName||(n.sheetName=t),_t(n))}const rn=()=>{var n;let[i,a]=U(``),[c,l]=U(!1),[u,m]=U(``),[g,v]=U(!0),[y,x]=U(V.URL),[S,C]=U(``),w=z(b),T=z(mt),O=z(F),k=z(_),A=z(X),j=Qe(A.currentEditing$),ne=z(Ot),re=z(J),M=z(p),N=z(en),ie=Nt(()=>N.getOptions(),[N]),ae=z(Ge),ce=z(Re),ue=z(Se),de=z(je),fe=z(h),pe=z(ee),me=z(je),[he,ge]=U(!1),_e=z(le),ve=Nt(()=>_e.getCurrentSelections(),[]),ye=Nt(()=>{if(!N.isBuiltInLinkType(y))return N.getCustomHyperLink(y)},[N,y]),[P,be]=U(!1),[xe,Ce]=U(!1),I=Pt(!1),L=k.getCurrentUnitOfType(E.UNIVER_SHEET),Te=(L==null?void 0:L.getActiveSheet().getSheetId())||``,R=Mt(e=>{m(e.replaceAll(s.CUSTOM_RANGE_START,``).replaceAll(s.CUSTOM_RANGE_END,``))},[m]);H(()=>{if((j==null?void 0:j.row)!==void 0&&j.col!==void 0){let{customRange:y,row:b,col:S}=j,{label:w}=j;typeof w==`number`&&(w=`${w}`);let T;if(y){var t,n,i,o;T={id:(t=y==null?void 0:y.rangeId)==null?``:t,display:(n=w)==null?``:n,payload:(i=y==null||(o=y.properties)==null?void 0:o.url)==null?``:i,row:b,column:S}}else if(j.type===G.VIEWING){var s,c,l,u;let t=k.getUnit(j.unitId),n=t==null?void 0:t.getSheetBySheetId(j.subUnitId),i=n==null?void 0:n.getCellRaw(j.row,j.col),a=i==null||(s=i.p)==null||(s=s.body)==null||(s=s.customRanges)==null?void 0:s.find(e=>{var t;return e.rangeType===r.HYPERLINK&&((t=e.properties)==null?void 0:t.url)}),o=i==null?void 0:i.v;i&&(!e.transform.isEmptyDocument((c=i.p)==null||(c=c.body)==null?void 0:c.dataStream)||te.isDefine(o))&&v(!1),T={id:``,display:``,payload:(l=a==null||(u=a.properties)==null?void 0:u.url)==null?``:l,row:b,column:S}}else{var d,f,p,m,h;let t=k.getCurrentUnitForType(E.UNIVER_DOC),n=de.getActiveTextRange(),r=t==null?void 0:t.getBody(),i=n&&r?n:null,a=i&&((d=e.customRange.getCustomRangesInterestsWithSelection(i,(f=r==null?void 0:r.customRanges)==null?[]:f))==null?void 0:d[0]);v(!1),T={id:``,display:(p=w)==null?``:p,payload:(m=a==null||(h=a.properties)==null?void 0:h.url)==null?``:m,row:b,column:S}}a(T.id);let ee=N.findCustomHyperLink(T);if(ee){let e=ee.convert(T);x(e.type),C(e.payload),R(e.display);return}R(T.display);let D=ne.parseHyperLink(T.payload);switch(x(D.type===V.INVALID?V.RANGE:D.type),D.type){case V.URL:C(D.url),D.url===T.display&&(I.current=!0);break;case V.RANGE:{var g,_;let e=D.searchObj,t=vt(e.gid?(g=(_=k.getUnit(j.unitId))==null||(_=_.getSheetBySheetId(e.gid))==null?void 0:_.getName())==null?``:g:``,ht(e.range).range);C(t),t===T.display&&(I.current=!0);break}case V.SHEET:{let e=D.searchObj;C(e.gid);break}case V.DEFINE_NAME:{let e=D.searchObj;C(e.rangeid);break}default:C(``);break}}},[j,re,N,de,k]),H(()=>{let e=null;if(j&&!j.customRangeId&&j.type===G.VIEWING&&te.isDefine(j.row)&&te.isDefine(j.col)){let n=k.getUnit(j.unitId,E.UNIVER_SHEET),r=n==null?void 0:n.getSheetBySheetId(j.subUnitId),i=r==null?void 0:r.getMergedCell(j.row,j.col),a=new t(pe.getColorFromTheme(`primary.600`)).toRgb();e=ue.addShape({range:i==null?{startColumn:j.col,endColumn:j.col,startRow:j.row,endRow:j.row}:i,style:{fill:`rgb(${a.r}, ${a.g}, ${a.b}, 0.12)`,strokeWidth:1,stroke:`#FFBD37`,widgets:{}},primary:null},[],-1)}return()=>{e&&ue.removeShape(e)}},[j,ue,pe,k]),H(()=>{Ce(y===V.RANGE)},[y]),H(()=>{let e=(j==null?void 0:j.type)===G.ZEN_EDITOR?ce.getRenderById(o):ce.getRenderById(O.getCurrentEditorId()),t=new d;if(e){let n=e.with(Fe);n.setReserveRangesStatus(!0),t.add(()=>{n.setReserveRangesStatus(!1)})}return()=>{O.disableForceKeepVisible(),t.dispose()}},[j==null?void 0:j.type,O,ce]),H(()=>(xe&&A.setIsKeepVisible(xe),A.setIsKeepVisible(he),()=>{A.setIsKeepVisible(!1)}),[xe,he,A]),H(()=>()=>{ae.temporaryHidden&&(ae.show(),fe.setContextValue(f,!1))},[fe,ae]),H(()=>{if(xe)return O.enableForceKeepVisible(),()=>{O.disableForceKeepVisible()}},[xe,O]);let Ee=[{label:w.t(`hyperLink.form.link`),value:V.URL},{label:w.t(`hyperLink.form.range`),value:V.RANGE},{label:w.t(`hyperLink.form.worksheet`),value:V.SHEET},{label:w.t(`hyperLink.form.definedName`),value:V.DEFINE_NAME},...ie];if(!L)return;let De=L.getHiddenWorksheets(),Oe=L.getSheets().map(e=>({label:e.getName(),value:e.getSheetId()})).filter(e=>De.indexOf(e.value)===-1),ke=Object.values((n=T.getDefinedNameMap(L.getUnitId()))==null?{}:n).map(e=>({label:e.name,value:e.id})),Ae=(e,t)=>{if(e===V.URL)return qt(t);if(e===V.RANGE){let e=ht(t),n=L.getSheetBySheetName(e.sheetName);if(n)return`#gid=${n.getSheetId()}&range=${gt(e.range)}`}return`#${e}=${t}`},Ne=Ze(e=>{var t;let n=nn(e,((t=L.getActiveSheet())==null?void 0:t.getName())||``);if(!n){C(``);return}C(n),n&&(I.current||!u)&&(R(n),I.current=!0)}),Pe=async()=>{if(g&&tn(u)||!S||y===V.URL&&!Wt(S)){be(!0);return}if(j)if(i){let e=j.type===G.ZEN_EDITOR||j.type===G.EDITING?jt.id:At.id;await M.executeCommand(e,{id:i,unitId:j.unitId,subUnitId:j.subUnitId,payload:{display:g?u:``,payload:Ae(y,S)},row:j.row,column:j.col,documentId:j.type===G.ZEN_EDITOR?o:O.getCurrentEditorId()})}else{let e=j.type===G.ZEN_EDITOR||j.type===G.EDITING?St.id:bt.id;await M.executeCommand(e,{unitId:j.unitId,subUnitId:j.subUnitId,link:{id:D(),row:j.row,column:j.col,payload:Ae(y,S),display:g?u:``},documentId:j.type===G.ZEN_EDITOR?o:O.getCurrentEditorId()})}(j==null?void 0:j.type)===G.VIEWING&&(await M.executeCommand(se.id,{unitId:j.unitId,subUnitId:j.subUnitId}),await M.executeCommand(we.id,{range:{startRow:Math.max(j.row-1,0),endRow:j.row+1,startColumn:Math.max(j.col-1,0),endColumn:j.col+1}})),M.executeCommand(mn.id)};return j?It(`div`,{className:pt(`univer-box-border univer-w-[296px] univer-rounded-xl univer-bg-white univer-p-4 univer-shadow-md dark:!univer-bg-gray-900`,ft),children:[g?W(st,{label:w.t(`hyperLink.form.label`),error:P&&tn(u)?w.t(`hyperLink.form.inputError`):``,children:W(ct,{value:u,onChange:e=>{R(e),I.current=!1},placeholder:w.t(`hyperLink.form.labelPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===Ke.ENTER&&Pe()}})}):null,W(st,{label:w.t(`hyperLink.form.type`),children:W(ut,{className:`univer-w-full`,options:Ee,value:y,onChange:e=>{x(e),C(``)}})}),y===V.URL&&W(st,{error:P?S?Wt(S)?``:w.t(`hyperLink.form.linkError`):w.t(`hyperLink.form.inputError`):``,children:W(ct,{value:S,onChange:e=>{C(e),e&&(I.current||!u||u===e)&&(R(e),I.current=!0)},placeholder:w.t(`hyperLink.form.linkPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===Ke.ENTER&&Pe()}})}),y===V.RANGE&&W(st,{error:P&&!S?w.t(`hyperLink.form.inputError`):``,children:W(yt,{unitId:L.getUnitId(),subUnitId:Te,maxRangeCount:1,supportAcrossSheet:!0,initialValue:S,resetRange:ve,onChange:(e,t)=>Ne(t),onRangeSelectorDialogVisibleChange:async e=>{if(ge(e),e)j.type===G.ZEN_EDITOR&&(ae.hide(),fe.setContextValue(f,!0)),j.type!==G.VIEWING&&O.enableForceKeepVisible(),l(!0);else{if(await re.navigateToRange(j.unitId,j.subUnitId,{startRow:j.row,endRow:j.row,startColumn:j.col,endColumn:j.col},!0),j.type===G.ZEN_EDITOR){var t,n;await M.executeCommand(oe.id,{unitId:j.unitId,subUnitId:j.subUnitId,selections:[{range:{startRow:j.row,endRow:j.row,startColumn:j.col,endColumn:j.col}}]}),ae.show(),fe.setContextValue(f,!1);let e=(t=ce.getRenderById(o))==null?void 0:t.with(Me),r=(n=me.getTextRanges({unitId:o,subUnitId:o}))==null?void 0:n[0];e&&r&&(e.scrollToRange(r),me.refreshSelection({unitId:o,subUnitId:o}))}O.disableForceKeepVisible(),l(!1)}},onFocusChange:e=>Ce(e)})}),y===V.SHEET&&W(st,{error:P&&!S?w.t(`hyperLink.form.selectError`):``,children:W(ut,{className:`univer-w-full`,options:Oe,value:S,onChange:e=>{var t,n;C(e);let r=(t=Oe.find(t=>t.value===e))==null?void 0:t.label,i=(n=Oe.find(e=>e.value===S))==null?void 0:n.label;r&&(I.current||!u||u===i)&&(R(r),I.current=!0)}})}),y===V.DEFINE_NAME&&W(st,{error:P&&!S?w.t(`hyperLink.form.selectError`):``,children:W(ut,{className:`univer-w-full`,options:ke,value:S,onChange:e=>{var t,n;C(e);let r=(t=ke.find(t=>t.value===e))==null?void 0:t.label,i=(n=ke.find(e=>e.value===S))==null?void 0:n.label;r&&(I.current||!u||u===i)&&(R(r),I.current=!0)}})}),(ye==null?void 0:ye.Form)&&W(ye.Form,{linkId:i,payload:S,display:u,showError:P,setByPayload:I,setDisplay:e=>{R(e),I.current=!0},setPayload:C}),It(`div`,{className:`univer-flex univer-flex-row univer-justify-end univer-gap-2`,children:[W(ot,{onClick:()=>{j&&re.navigateToRange(j.unitId,j.subUnitId,{startRow:j.row,endRow:j.row,startColumn:j.col,endColumn:j.col},!0),M.executeCommand(mn.id)},children:w.t(`hyperLink.form.cancel`)}),W(ot,{variant:`primary`,onClick:async()=>{Pe()},children:w.t(`hyperLink.form.ok`)})]})]}):null};rn.componentKey=`univer.sheet.cell-link-edit`;const an={[V.URL]:W(zt,{}),[V.SHEET]:W(Ht,{className:`univer-text-green-500`}),[V.RANGE]:W(Lt,{}),[V.DEFINE_NAME]:W(Lt,{}),[V.INVALID]:W(Lt,{})},on=e=>{var t,n;let r=z(X),i=z(p),a=z(Ue),s=z(b),c=z(J),l=z(F),u=z(Ot),d=z(Ge),{customRange:f,row:m,col:h,unitId:g,subUnitId:_,editPermission:v,copyPermission:y,type:x}=e;if(!(!(f==null||(t=f.properties)==null)&&t.url))return null;let S=u.parseHyperLink((n=f.properties.url)==null?``:n),C=S.type===V.INVALID;return It(`div`,{className:pt(`univer-mb-1 univer-flex univer-max-w-80 univer-flex-row univer-items-center univer-justify-between univer-overflow-hidden univer-rounded-lg univer-bg-white univer-p-3 univer-shadow-md dark:!univer-bg-gray-900`,ft),onClick:()=>r.hideCurrentPopup(),children:[It(`div`,{className:pt(`univer-flex univer-h-6 univer-flex-1 univer-cursor-pointer univer-flex-row univer-items-center univer-truncate univer-text-sm univer-leading-5 univer-text-primary-600`,{"univer-text-red-500":C}),onClick:()=>{d.visible||C||c.navigate(S)},children:[W(`div`,{className:`univer-mr-2 univer-flex univer-size-5 univer-flex-none univer-items-center univer-justify-center univer-text-base univer-text-gray-900 dark:!univer-text-white`,children:an[S.type]}),W(dt,{showIfEllipsis:!0,title:S.name,asChild:!0,children:W(`span`,{className:`univer-flex-1 univer-truncate`,children:S.name})})]}),It(`div`,{className:`univer-flex univer-h-6 univer-flex-none univer-flex-row univer-items-center univer-justify-center`,children:[y&&W(`div`,{className:pt(`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,{"univer-text-red-500":C}),onClick:()=>{if(!C){if(S.type!==V.URL){let e=new URL(window.location.href);e.hash=S.url.slice(1),navigator.clipboard.writeText(e.href)}else navigator.clipboard.writeText(S.url);a.show({content:s.t(`hyperLink.message.coped`),type:lt.Info})}},children:W(dt,{placement:`bottom`,title:s.t(`hyperLink.popup.copy`),children:W(Rt,{className:`dark:!univer-text-white`})})}),v&&It(Ft,{children:[W(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{i.executeCommand(pn.id,{unitId:g,subUnitId:_,row:m,col:h,customRangeId:f.rangeId,type:x})},children:W(dt,{placement:`bottom`,title:s.t(`hyperLink.popup.edit`),children:W(Vt,{className:`dark:!univer-text-white`})})}),W(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{let e=x===G.EDITING||x===G.ZEN_EDITOR?wt.id:Ct.id;i.syncExecuteCommand(e,{unitId:g,subUnitId:_,id:f.rangeId,row:m,column:h,documentId:x===G.ZEN_EDITOR?o:l.getCurrentEditorId()})&&r.hideCurrentPopup(void 0,!0)},children:W(dt,{placement:`bottom`,title:s.t(`hyperLink.popup.cancel`),children:W(Bt,{className:`dark:!univer-text-white`})})})]})]})]})},sn=()=>{let e=z(X),[t,n]=U(null),r=z(_);if(H(()=>{n(e.currentPopup);let t=e.currentPopup$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[e.currentPopup,e.currentPopup$]),!t)return null;if(t.showAll){var i;let e=r.getUnit(t.unitId,E.UNIVER_SHEET),n=e==null?void 0:e.getSheetBySheetId(t.subUnitId),a=n==null?void 0:n.getCell(t.row,t.col),o=a==null||(i=a.p)==null||(i=i.body)==null?void 0:i.customRanges;return o!=null&&o.length?W(`div`,{children:o.map(e=>W(on,{...t,customRange:e},e.rangeId))}):null}return W(on,{...t})};sn.componentKey=`univer.sheet.cell-link-popup`;const cn=(e,t)=>{var n,r;return e.unitId===t.unitId&&e.subUnitId===t.subUnitId&&e.row===t.row&&e.col===t.col&&((n=e.customRange)==null?void 0:n.rangeId)===((r=t.customRange)==null?void 0:r.rangeId)&&e.type===t.type};let X=class extends u{get currentPopup(){return this._currentPopup}get currentEditing(){return this._currentEditing$.getValue()}constructor(e,t,n,r,i,a,o){super(),this._sheetCanvasPopManagerService=e,this._injector=t,this._univerInstanceService=n,this._editorBridgeService=r,this._textSelectionManagerService=i,this._docCanvasPopManagerService=a,this._zenZoneService=o,Y(this,`_currentPopup`,null),Y(this,`_currentPopup$`,new tt),Y(this,`currentPopup$`,this._currentPopup$.asObservable()),Y(this,`_currentEditingPopup`,null),Y(this,`_currentEditing$`,new $e(null)),Y(this,`currentEditing$`,this._currentEditing$.asObservable()),Y(this,`_isKeepVisible`,!1),this.disposeWithMe(()=>{this.hideCurrentPopup(),this.endEditing(),this._currentEditing$.complete(),this._currentPopup$.complete()})}setIsKeepVisible(e){this._isKeepVisible=e}getIsKeepVisible(){return this._isKeepVisible}showPopup(e){if(this._currentPopup&&cn(e,this._currentPopup)||(this.hideCurrentPopup(void 0,!0),e.type!==G.ZEN_EDITOR&&this._zenZoneService.visible))return;let t=this._currentEditing$.getValue();if(t&&cn(e,t))return;let{unitId:n,subUnitId:r,row:i,col:a,customRangeRect:s,customRange:c}=e,l,u={componentKey:sn.componentKey,direction:`bottom`,onClickOutside:()=>{this.hideCurrentPopup()},onClick:()=>{this.hideCurrentPopup(e.type,!0)}};if(e.type===G.EDITING){if(!c)return;l=s&&this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(s,u)}else if(e.type===G.ZEN_EDITOR){if(!c)return;l=this._docCanvasPopManagerService.attachPopupToRange({startOffset:c.startIndex,endOffset:c.endIndex+1,collapsed:!1},u,o)}else if(e.showAll)l=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,u,n,r);else{if(!c)return;l=s&&this._sheetCanvasPopManagerService.attachPopupByPosition(s,u,e)}if(l){if(this._currentPopup){var d;(d=this._currentPopup.disposable)==null||d.dispose()}this._currentPopup={unitId:n,subUnitId:r,disposable:l,row:i,col:a,editPermission:!!e.editPermission,copyPermission:!!e.copyPermission,customRange:c,type:e.type,showAll:e.showAll},this._currentPopup$.next(this._currentPopup)}}hideCurrentPopup(e,t){if(this._currentPopup&&((!e||e===this._currentPopup.type)&&this._currentPopup.disposable.canDispose()||t)){var n;(n=this._currentPopup)==null||(n=n.disposable)==null||n.dispose(),this._currentPopup=null,this._currentPopup$.next(null)}}dispose(){super.dispose(),this.hideCurrentPopup(),this.endEditing(),this._currentPopup$.complete(),this._currentEditing$.complete()}_getEditingRange(){let t=this._editorBridgeService.isVisible().visible,n=this._editorBridgeService.getEditCellState();if(t&&n){var i,a,o;let t=this._textSelectionManagerService.getActiveTextRange(),s=(i=n.documentLayoutObject.documentModel)==null?void 0:i.getBody();if(!s)return null;if(!t||t.collapsed)return{startOffset:0,endOffset:s.dataStream.length-2,collapsed:s.dataStream.length-2==0,label:e.transform.getPlainText(s.dataStream)};let c=e.customRange.getCustomRangesInterestsWithSelection(t,(a=(o=s.customRanges)==null?void 0:o.filter(e=>e.rangeType===r.HYPERLINK))==null?[]:a),l=t.startOffset,u=t.endOffset;return c.forEach(e=>{l=Math.min(l,e.startIndex),u=Math.max(u,e.endIndex+1)}),{startOffset:l,endOffset:u,collapsed:l===u,label:e.transform.getPlainText(s.dataStream.slice(l,u))}}return null}get _editPopup(){return{componentKey:rn.componentKey,direction:`vertical`,onClickOutside:()=>{this.endEditing()},onContextMenu:()=>{this.endEditing()},hiddenType:`hide`}}startAddEditing(t){let{unitId:n,subUnitId:r,type:i}=t;if(i===G.ZEN_EDITOR){var s;let e=this._univerInstanceService.getUnit(o,E.UNIVER_DOC);if(!e)return;let n=this._textSelectionManagerService.getActiveTextRange();if(!n)return;this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange(n,this._editPopup,o);let r=(s=e.getBody())==null?void 0:s.dataStream.slice(n.startOffset,n.endOffset);this._currentEditing$.next({...t,label:r})}else if(i===G.EDITING){var c;let e=this._getEditingRange();if(!e)return;this._textSelectionManagerService.replaceDocRanges([{...e}],{unitId:a,subUnitId:a});let i=this._injector.get(Re).getRenderById(a);if(!i)return;let o=Le(e,i);if(!(o!=null&&o.length))return;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(o.pop(),this._editPopup,n,r),this._currentEditing$.next({...t,label:(c=e==null?void 0:e.label)==null?``:c})}else{var l,u,d;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(t.row,t.col,this._editPopup,n,r);let i=this._univerInstanceService.getUnit(n,E.UNIVER_SHEET),a=i==null?void 0:i.getSheetBySheetId(r),o=a==null?void 0:a.getCellRaw(t.row,t.col);this._currentEditing$.next({...t,label:o!=null&&o.p?e.transform.getPlainText((l=(u=o.p.body)==null?void 0:u.dataStream)==null?``:l):((d=o==null?void 0:o.v)==null?``:d).toString()})}}startEditing(e){var t;(t=this._currentEditingPopup)==null||t.dispose(),this.hideCurrentPopup(void 0,!0);let{unitId:n,subUnitId:r}=e,i,a;if(e.type===G.ZEN_EDITOR){var s,c;let t=this._univerInstanceService.getUnit(o,E.UNIVER_DOC);if(i=t==null||(s=t.getBody())==null||(s=s.customRanges)==null?void 0:s.find(t=>t.rangeId===e.customRangeId),a=i?t==null||(c=t.getBody())==null?void 0:c.dataStream.slice(i.startIndex,i.endIndex+1):``,!i||!a)return;this._textSelectionManagerService.replaceTextRanges([{startOffset:i.startIndex,endOffset:i.endIndex+1}]),this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange({startOffset:i.startIndex,endOffset:i.endIndex,collapsed:!1},this._editPopup,o)}else if(e.type===G.EDITING){var l;let t=De(this._injector,e.unitId,e.subUnitId,e.row,e.col,e.customRangeId);if(!t||!((l=t.rects)!=null&&l.length))return;i=t.customRange,a=t.label,this._textSelectionManagerService.replaceTextRanges([{startOffset:i.startIndex,endOffset:i.endIndex+1}]),this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(t.rects.pop(),this._editPopup,n,r)}else{var u;let t=this._univerInstanceService.getUnit(n,E.UNIVER_SHEET),o=t==null?void 0:t.getSheetBySheetId(r),s=o==null?void 0:o.getCellRaw(e.row,e.col),c=t==null?void 0:t.getStyles().getStyleByCell(s),l=c==null?void 0:c.tr,d=Ee(this._injector,e.unitId,e.subUnitId,e.row,e.col,e.customRangeId);if(!d||!((u=d.rects)!=null&&u.length))return;i=d.customRange,a=d.label,l?this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,this._editPopup,n,r):this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupByPosition(d.rects.pop(),this._editPopup,{unitId:n,subUnitId:r,row:e.row,col:e.col})}this._currentEditing$.next({...e,customRange:i,label:a})}endEditing(e){if(this.getIsKeepVisible())return;let t=this._currentEditing$.getValue();if(t&&(!e||e===t.type)){var n;(n=this._currentEditingPopup)==null||n.dispose(),this._currentEditing$.next(null)}}};X=q([K(0,v(L)),K(1,v(y)),K(2,_),K(3,F),K(4,v(je)),K(5,v(Ne)),K(6,Ge)],X);let Z=function(e){return e[e.ALLOWED=0]=`ALLOWED`,e[e.DISABLED_BY_CELL=1]=`DISABLED_BY_CELL`,e[e.ALLOW_ON_EDITING=2]=`ALLOW_ON_EDITING`,e}({});const ln=new Set([c.CHECKBOX,c.LIST,c.LIST_MULTIPLE]),un=(e,t,n,r)=>{var i,a;let o=t.getCell(n,r);if(o!=null&&o.f||o!=null&&o.si||!(o==null||(i=o.p)==null||(i=i.body)==null||(i=i.customBlocks)==null)&&i.length)return Z.DISABLED_BY_CELL;let s=e.has(Ut)?e.get(Ut):null,c=s==null?void 0:s.getRuleByLocation(t.getUnitId(),t.getSheetId(),n,r);return c&&ln.has(c.type)?!0:!(o==null||(a=o.p)==null||(a=a.drawingsOrder)==null)&&a.length?Z.ALLOW_ON_EDITING:Z.ALLOWED},dn=e=>{let t=e.get(_).getCurrentUnitForType(E.UNIVER_SHEET);if(!t)return!0;let n=t.getActiveSheet(),r=e.get(le).getCurrentSelections();if(!r.length)return!0;let i=r[0].range.startRow,a=r[0].range.startColumn;return un(e,n,i,a)===Z.DISABLED_BY_CELL},fn=e=>{let t=e.get(je),n=e.get(_),r=t.getTextRanges();if(!(r!=null&&r.length))return!0;let i=n.getCurrentUnitForType(E.UNIVER_DOC);return!!(!i||r.every(e=>e.collapsed)||!i.getSelfOrHeaderFooterModel(r[0].segmentId).getBody())},pn={type:n.OPERATION,id:`sheet.operation.open-hyper-link-edit-panel`,handler(e,t){if(!t)return!1;let n=e.get(X);return t.customRangeId?n.startEditing(t):n.startAddEditing(t),!0}},mn={type:n.OPERATION,id:`sheet.operation.close-hyper-link-popup`,handler(e){return e.get(X).endEditing(),!0}},hn={type:n.OPERATION,id:`sheet.operation.insert-hyper-link`,handler(e){var t;let n=e.get(_),r=ve(n),i=e.get(F);if(!r)return!1;let a=e.get(p),s=e.get(le).getCurrentLastSelection();if(!s)return!1;let c=s.range.startRow,l=s.range.startColumn,u=i.isVisible(),d=((t=n.getFocusedUnit())==null?void 0:t.getUnitId())===o;return a.executeCommand(pn.id,{unitId:r.unitId,subUnitId:r.subUnitId,row:c,col:l,type:d?G.ZEN_EDITOR:u.visible?G.EDITING:G.VIEWING})}},Q={type:n.OPERATION,id:`sheet.operation.insert-hyper-link-toolbar`,handler(e){if(dn(e))return!1;let t=e.get(p);return e.get(X).currentEditing?t.executeCommand(mn.id):t.executeCommand(hn.id)}},gn=`SHEET_HYPER_LINK_UI_PLUGIN`;let _n=class extends u{registerPlainTextFilter(e){this._plainTextFilter.add(e)}removePlainTextFilter(e){this._plainTextFilter.delete(e)}_filterPlainText(e){return Array.from(this._plainTextFilter).every(t=>t(e))}constructor(e,t,n,r){super(),this._sheetClipboardService=e,this._hyperLinkModel=t,this._injector=n,this._resolverService=r,Y(this,`_plainTextFilter`,new Set),Y(this,`_copyInfo`,void 0),this._initCopyPaste(),this.disposeWithMe(()=>{this._plainTextFilter.clear()})}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:gn,onBeforeCopy:(e,t,n)=>this._collect(e,t,n),onPasteCells:(e,t,n,r)=>{let{copyType:i=P.COPY,pasteType:a}=r,{range:o}=e||{},{range:s,unitId:c,subUnitId:l}=t;return this._generateMutations(s,{copyType:i,pasteType:a,copyRange:o,unitId:c,subUnitId:l})},onPastePlainText:(e,t)=>{let n=this._filterPlainText(t);if(Wt(t)&&n){let{range:t,unitId:n,subUnitId:r}=e,{ranges:[i],mapFunc:a}=ke([t]),o=[],s=[];return w.foreach(i,(e,t)=>{let{row:i,col:c}=a(e,t),l=this._hyperLinkModel.getHyperLinkByLocation(n,r,i,c);l&&o.push({id:Dt.id,params:{unitId:n,subUnitId:r,id:l.id}}),l&&s.push({id:xt.id,params:{unitId:n,subUnitId:r,link:l}})}),{redos:o,undos:s}}return{undos:[],redos:[]}},priority:99})}_collect(e,t,n){let r=new x;this._copyInfo={unitId:e,subUnitId:t,matrix:r};let i=this._injector.invoke(r=>ye(n,r,e,t));if(!i)return;let{rows:a,cols:o}=i;a.forEach((n,i)=>{o.forEach((a,o)=>{var s;let c=this._hyperLinkModel.getHyperLinkByLocation(e,t,n,a);r.setValue(i,o,(s=c==null?void 0:c.id)==null?``:s)})})}_generateMutations(e,t){if(!this._copyInfo||!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!t.copyRange||[I.SPECIAL_PASTE_COL_WIDTH,I.SPECIAL_PASTE_VALUE,I.SPECIAL_PASTE_FORMAT,I.SPECIAL_PASTE_FORMULA].includes(t.pasteType))return{redos:[],undos:[]};let{unitId:n,subUnitId:r}=this._copyInfo,i=[],a=[],{ranges:[o,s],mapFunc:c}=ke([t.copyRange,e]);return Oe(o,s,!0).forEach(({startRange:e})=>{var o;(o=this._copyInfo)==null||o.matrix.forValue((o,s,l)=>{let u=T.getPositionRange({startRow:o,endRow:o,startColumn:s,endColumn:s},e),d=this._hyperLinkModel.getHyperLink(n,r,l),{row:f,col:p}=c(u.startRow,u.startColumn),m=this._hyperLinkModel.getHyperLinkByLocation(t.unitId,t.subUnitId,f,p),h=D();m&&i.push({id:Dt.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,id:m.id}}),d&&(i.push({id:xt.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,link:{...d,id:h,row:f,column:p}}}),a.push({id:Dt.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,id:h}})),m&&a.push({id:xt.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,link:m}})})}),{redos:i,undos:a}}};_n=q([K(0,Ce),K(1,v(Et)),K(2,v(y)),K(3,v(J))],_n);const vn=(e,t=o)=>{var n;let r=e.get(_),i=(n=e.get(Re).getRenderById(t))==null?void 0:n.with(Fe);return i?i.textSelectionInner$.pipe(it(()=>{let t=e.get(F).getEditCellState();if(!t)return!0;let n=ve(r,{unitId:t.unitId,subUnitId:t.sheetId});return!(n!=null&&n.worksheet)||un(e,n.worksheet,t.row,t.column)===1?!0:fn(e)})):B(!0)},yn=e=>{var t;let n=e.get(_),r=e.has(F)?e.get(F):null;return((t=r==null?void 0:r.currentEditCellState$.pipe(it(t=>{if(!t)return Z.DISABLED_BY_CELL;let r=ve(n,{unitId:t.unitId,subUnitId:t.sheetId});return r?un(e,r.worksheet,t.row,t.column):Z.DISABLED_BY_CELL}),at(t=>t===Z.DISABLED_BY_CELL?B(!0):nt([r?r.visible$:B(null),n.getCurrentTypeOfUnit$(E.UNIVER_DOC)]).pipe(at(([n,r])=>n!=null&&n.visible?(r==null?void 0:r.getUnitId())===i?B(!0):vn(e,a):B(t!==Z.ALLOWED))))))==null?B(!0):t).pipe(at(t=>t?B(!0):R(e,{workbookTypes:[de],worksheetTypes:[me,ge,he],rangeTypes:[ie]},!0)))},bn={commandId:hn.id,type:qe.BUTTON,title:`hyperLink.menu.add`,icon:`LinkIcon`},xn=e=>`${e}-zen-editor`,Sn=e=>({...bn,id:bn.commandId,hidden$:Xe(e,E.UNIVER_SHEET),disabled$:yn(e)}),Cn=e=>({...bn,id:xn(bn.commandId),hidden$:Xe(e,E.UNIVER_DOC,o),disabled$:vn(e)}),wn={tooltip:`hyperLink.form.addTitle`,commandId:Q.id,type:qe.BUTTON,icon:`LinkIcon`},Tn=e=>({...wn,id:wn.commandId,hidden$:Xe(e,E.UNIVER_SHEET),disabled$:yn(e)}),En=e=>({...wn,id:xn(wn.commandId),hidden$:Xe(e,E.UNIVER_DOC,o),disabled$:vn(e)}),Dn={id:Q.id,binding:Ke.K|Je.CTRL_COMMAND,preconditions:Ae};var On=`@univerjs/sheets-hyper-link-ui`,kn=`0.20.1`;let An=class extends u{constructor(e,t){super(),this._autoFillService=e,this._hyperLinkModel=t,this._initAutoFill()}_initAutoFill(){let e=()=>({redos:[],undos:[]}),t=(e,t)=>{let{source:n,target:r,unitId:i,subUnitId:a}=e,o=ke([n,r]),[s,c]=o.ranges,{mapFunc:l}=o,u={row:s.startRow,col:s.startColumn},d=j.getAutoFillRepeatRange(s,c),f=[],p=[];return d.forEach(e=>{let n=e.repeatStartCell,r=e.relativeRange,o={startRow:u.row,startColumn:u.col,endColumn:u.col,endRow:u.row},s={startRow:n.row,startColumn:n.col,endColumn:n.col,endRow:n.row};w.foreach(r,(e,n)=>{let r=T.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},o),{row:c,col:u}=l(r.startRow,r.startColumn),d=this._hyperLinkModel.getHyperLinkByLocation(i,a,c,u),m=T.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},s),{row:h,col:g}=l(m.startRow,m.startColumn),_=D(),v=this._hyperLinkModel.getHyperLinkByLocation(i,a,h,g);v&&f.push({id:Dt.id,params:{unitId:i,subUnitId:a,id:v.id}}),(A.COPY===t||A.SERIES===t)&&d&&(f.push({id:xt.id,params:{unitId:i,subUnitId:a,link:{...d,id:_,row:h,column:g}}}),p.push({id:Dt.id,params:{unitId:i,subUnitId:a,id:_}})),v&&p.push({id:xt.id,params:{unitId:i,subUnitId:a,link:v}})})}),{undos:p,redos:f}},n={id:gn,onFillData:(n,r,i)=>i===A.COPY||i===A.ONLY_FORMAT||i===A.SERIES?t(n,i):e()};this.disposeWithMe(this._autoFillService.addHook(n))}};An=q([K(0,N),K(1,v(Et))],An);let jn=class extends u{constructor(e,t,n){super(),this._localeService=e,this._commandService=t,this._sheetPermissionCheckController=n,this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{e.id===Dn.id&&(this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[de],rangeTypes:[ie],worksheetTypes:[me,ge,he]})||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localeService.t(`permission.dialog.hyperLinkErr`)))}))}};jn=q([K(0,v(b)),K(1,p),K(2,v(ce))],jn);let Mn=class extends u{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._hoverManagerService=e,this._sheetsHyperLinkPopupService=t,this._renderManagerService=n,this._permissionService=r,this._sheetPermissionCheckController=i,this._commandService=a,this._editorBridgeService=o,this._textSelectionManagerService=s,this._univerInstanceService=c,this._zenZoneService=l,this._initHoverListener(),this._initCommandListener(),this._initHoverEditingListener(),this._initTextSelectionListener(),this._initZenEditor()}_getLinkPermission(e){let{unitId:t,subUnitId:n,row:r,col:i}=e,a=this._univerInstanceService.getUnit(t,E.UNIVER_SHEET),o=a==null?void 0:a.getSheetBySheetId(n);if(!o)return{viewPermission:!1,editPermission:!1,copyPermission:!1};let s=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[fe],worksheetTypes:[_e],rangeTypes:[ae]},[{startRow:r,startColumn:i,endRow:r,endColumn:i}],t,n),c=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[de],worksheetTypes:[me,he],rangeTypes:[ie]},[{startRow:r,startColumn:i,endRow:r,endColumn:i}],t,n),l=o.getCellRaw(r,i);l!=null&&l.f&&l.f.startsWith(`=HYPERLINK(`)&&(c=!1);let u=this._permissionService.composePermission([new ue(t).id,new pe(t,n).id]).every(e=>e.value);return{viewPermission:s,editPermission:c,copyPermission:u}}_initHoverListener(){this.disposeWithMe(this._hoverManagerService.currentRichText$.pipe(rt(200)).subscribe(e=>{var t,n,i;if(!e||((t=e.customRange)==null?void 0:t.rangeType)!==r.HYPERLINK){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let{unitId:a,subUnitId:o,row:s,col:c}=e,l=this._renderManagerService.getRenderById(a);if(!l)return;let u=this._univerInstanceService.getUnit(a,E.UNIVER_SHEET),d=u==null?void 0:u.getSheetBySheetId(o);if(!d)return;if(!l.with(xe).active){this._sheetsHyperLinkPopupService.hideCurrentPopup(G.VIEWING);return}let f=l==null||(n=l.with(Te).getSkeletonParam(o))==null?void 0:n.skeleton,p=c,m=s,h=m,g=p;f&&f.overflowCache.forValue((e,t,n)=>{T.contains(n,{startColumn:p,endColumn:p,startRow:m,endRow:m})&&(h=e,g=t)});let{viewPermission:_,editPermission:v,copyPermission:y}=this._getLinkPermission(e);if(!_){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let b=d.getCellStyleOnly(h,g),x=u.getStyles().getStyleByCell(b),S=x==null||(i=x.tr)==null?void 0:i.a;if(!S&&!e.customRange){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}this._sheetsHyperLinkPopupService.showPopup({row:h,col:g,editPermission:v,copyPermission:y,customRange:e.customRange,customRangeRect:e.rect,type:G.VIEWING,unitId:a,subUnitId:o,showAll:!!S})}))}_initHoverEditingListener(){let e=null;this.disposeWithMe(this._editorBridgeService.currentEditCellState$.pipe(at(e=>this._editorBridgeService.visible$.pipe(it(t=>({visible:t,state:e}))))).subscribe(({visible:t,state:n})=>{if(!n||n.editorUnitId!==a)return;if(!t.visible){e==null||e.unsubscribe(),this._sheetsHyperLinkPopupService.hideCurrentPopup(G.EDITING),this._sheetsHyperLinkPopupService.endEditing(G.EDITING);return}let{editorUnitId:i,unitId:o,sheetId:s,row:c,column:l}=n,u=this._renderManagerService.getRenderById(i);if(!u)return;let{editPermission:d,viewPermission:f,copyPermission:p}=this._getLinkPermission({unitId:o,subUnitId:s,row:c,col:l}),m=u.with(Pe);f&&(e==null||e.unsubscribe(),e=m.hoverCustomRanges$.pipe(rt(200)).subscribe(e=>{var t;let n=e.find(e=>e.range.rangeType===r.HYPERLINK);if(!n){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let i=n.rects[n.rects.length-1];if(!(!((t=this._renderManagerService.getRenderById(o))==null||(t=t.with(Te).getSkeletonParam(s))==null)&&t.skeleton)||!i)return;let a=u.engine.getCanvasElement().getBoundingClientRect();this._sheetsHyperLinkPopupService.showPopup({unitId:o,subUnitId:s,row:c,col:l,customRange:n.range,customRangeRect:{left:i.left+a.left,top:i.top+a.top,bottom:i.bottom+a.top,right:i.right+a.left},editPermission:d,copyPermission:p,type:G.EDITING})}))})),this.disposeWithMe(()=>{e==null||e.unsubscribe()})}_initZenEditor(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e?(this._sheetsHyperLinkPopupService.hideCurrentPopup(G.VIEWING),this._sheetsHyperLinkPopupService.hideCurrentPopup(G.EDITING),this._sheetsHyperLinkPopupService.endEditing(G.EDITING),this._sheetsHyperLinkPopupService.hideCurrentPopup(G.VIEWING)):(this._sheetsHyperLinkPopupService.hideCurrentPopup(G.ZEN_EDITOR),this._sheetsHyperLinkPopupService.endEditing(G.ZEN_EDITOR))})),this.disposeWithMe(this._univerInstanceService.focused$.pipe(at(e=>{let t=e===o?this._renderManagerService.getRenderById(e):null;return t?t.with(Pe).hoverCustomRanges$.pipe(rt(200)):new et(e=>{e.next(null)})})).subscribe(e=>{let t=e==null?void 0:e.find(e=>e.range.rangeType===r.HYPERLINK),n=this._editorBridgeService.getEditCellState();if(t&&n){let{unitId:e,sheetId:r,row:i,column:a}=n,{editPermission:o,viewPermission:s,copyPermission:c}=this._getLinkPermission({unitId:e,subUnitId:r,row:i,col:a});s&&this._sheetsHyperLinkPopupService.showPopup({type:G.ZEN_EDITOR,unitId:e,subUnitId:r,row:i,col:a,customRange:t.range,editPermission:o,copyPermission:c})}else this._sheetsHyperLinkPopupService.hideCurrentPopup(G.ZEN_EDITOR)}))}_initTextSelectionListener(){this.disposeWithMe(this._textSelectionManagerService.textSelection$.subscribe(e=>{e&&e.unitId===a&&this._sheetsHyperLinkPopupService.endEditing(G.EDITING)}))}_initCommandListener(){let e=[re.id,ne.id,M.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{e.includes(t.id)&&this._sheetsHyperLinkPopupService.hideCurrentPopup()}))}};Mn=q([K(0,v(be)),K(1,v(X)),K(2,v(Re)),K(3,v(g)),K(4,v(ce)),K(5,p),K(6,F),K(7,v(je)),K(8,_),K(9,Ge)],Mn);let Nn=class extends u{constructor(e,t){super(),this._context=e,this._hyperLinkModel=t,this._initSkeletonChange()}_initSkeletonChange(){let e=()=>{var e;(e=this._context.mainComponent)==null||e.makeForceDirty()};this.disposeWithMe(this._hyperLinkModel.linkUpdate$.pipe(rt(16)).subscribe(()=>{e()}))}};Nn=q([K(1,v(Et))],Nn);const Pn={[Ye.MEDIA]:{[Q.id]:{order:1,menuItemFactory:Tn},[xn(Q.id)]:{order:1,menuItemFactory:En}},[Ve.MAIN_AREA]:{[Be.OTHERS]:{order:1,[Q.id]:{order:0,menuItemFactory:Sn},[xn(Q.id)]:{order:0,menuItemFactory:Cn}}}};let Fn=class extends u{constructor(e,t,n,r,i){super(),this._componentManager=e,this._commandService=t,this._menuManagerService=n,this._injector=r,this._shortcutService=i,this._initComponents(),this._initCommands(),this._initMenus(),this._initShortCut()}_initComponents(){[[sn.componentKey,sn],[rn.componentKey,rn],[`LinkIcon`,zt]].forEach(([e,t])=>{this._componentManager.register(e,t)})}_initCommands(){[pn,mn,hn,Q].forEach(e=>{this._commandService.registerCommand(e)})}_initMenus(){this._menuManagerService.mergeMenu(Pn)}_initShortCut(){this._shortcutService.registerShortcut(Dn)}};Fn=q([K(0,v(ze)),K(1,p),K(2,He),K(3,v(y)),K(4,v(We))],Fn);let In=class extends u{constructor(e,t){super(),this._parserService=e,this._resolverService=t,this._handleInitUrl()}_handleInitUrl(){let e=location.hash;if(e){let t=this._parserService.parseHyperLink(e);this._resolverService.navigate(t)}}};In=q([K(0,v(Ot)),K(1,v(J))],In);let $=class extends S{constructor(e=Yt,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{menu:r,...i}=k({},Yt,this._config);r&&this._configService.setConfig(`menu`,r,{merge:!0}),this._configService.setConfig(Jt,i)}onStarting(){[[J],[X],[en],[Mn],[Fn],[An],[_n],[jn],[In]].forEach(e=>this._injector.add(e))}onReady(){this._injector.get(Re).registerRenderModule(E.UNIVER_SHEET,[Nn]),this._injector.get(An),this._injector.get(_n),this._injector.get(Fn)}onRendered(){this._injector.get(jn),this._injector.get(In),this._injector.get(Mn)}};Y($,`pluginName`,gn),Y($,`packageName`,On),Y($,`version`,kn),Y($,`type`,E.UNIVER_SHEET),$=q([l(kt,Ie),K(1,v(y)),K(2,m)],$);export{mn as CloseHyperLinkPopupOperation,hn as InsertHyperLinkOperation,Dn as InsertLinkShortcut,pn as OpenHyperLinkEditPanelOperation,_n as SheetsHyperLinkCopyPasteController,X as SheetsHyperLinkPopupService,J as SheetsHyperLinkResolverService,en as SheetsHyperLinkSidePanelService,$ as UniverSheetsHyperLinkUIPlugin};
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- import{BuildTextUtils as e,ColorKit as t,CommandType as n,CustomRangeType as r,DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY as i,DOCS_NORMAL_EDITOR_UNIT_ID_KEY as a,DOCS_ZEN_EDITOR_UNIT_ID_KEY as o,DataStreamTreeTokenType as s,DataValidationType as c,DependentOn as l,Disposable as u,DisposableCollection as d,FOCUSING_SHEET as f,ICommandService as p,IConfigService as m,IContextService as h,IPermissionService as g,IUniverInstanceService as _,Inject as v,Injector as y,InterceptorEffectEnum as b,LocaleService as x,ObjectMatrix as S,Plugin as C,RANGE_TYPE as w,Range as T,Rectangle as E,ThemeService as D,Tools as ee,UniverInstanceType as O,generateRandomId as te,isValidRange as k,merge as ne}from"@univerjs/core";import{AUTO_FILL_APPLY_TYPE as A,AutoFillTools as re,ClearSelectionAllCommand as ie,ClearSelectionContentCommand as j,ClearSelectionFormatCommand as M,IAutoFillService as ae,INTERCEPTOR_POINT as oe,RangeProtectionPermissionEditPoint as N,RangeProtectionPermissionViewPoint as se,SetSelectionsOperation as ce,SetWorksheetActiveOperation as le,SheetInterceptorService as ue,SheetPermissionCheckController as de,SheetsSelectionsService as fe,WorkbookCopyPermission as pe,WorkbookEditablePermission as me,WorkbookViewPermission as he,WorksheetCopyPermission as ge,WorksheetEditPermission as _e,WorksheetInsertHyperlinkPermission as ve,WorksheetSetCellValuePermission as ye,WorksheetViewPermission as P,getSheetCommandTarget as be,rangeToDiscreteRange as xe}from"@univerjs/sheets";import{COPY_TYPE as Se,HoverManagerService as F,HoverRenderController as I,IEditorBridgeService as L,IMarkSelectionService as Ce,ISheetClipboardService as we,PREDEFINED_HOOK_NAME_PASTE as R,ScrollToRangeOperation as Te,SheetCanvasPopManagerService as Ee,SheetSkeletonManagerService as De,getCurrentRangeDisable$ as Oe,getCustomRangePosition as ke,getEditingCustomRangePosition as Ae,getRepeatRange as je,virtualizeDiscreteRanges as Me,whenSheetEditorFocused as Ne}from"@univerjs/sheets-ui";import{DocSelectionManagerService as Pe}from"@univerjs/docs";import{DocBackScrollRenderController as Fe,DocCanvasPopManagerService as Ie,DocEventManagerService as Le,DocSelectionRenderService as Re,UniverDocsUIPlugin as ze,calcDocRangePositions as Be}from"@univerjs/docs-ui";import{IRenderManagerService as Ve}from"@univerjs/engine-render";import{ComponentManager as He,ContextMenuGroup as Ue,ContextMenuPosition as We,IMenuManagerService as Ge,IMessageService as Ke,IShortcutService as qe,IZenZoneService as Je,KeyCode as Ye,MenuItemType as Xe,MetaKeys as Ze,RibbonInsertGroup as Qe,getMenuHiddenObservable as $e,useDependency as z,useEvent as et,useObservable as tt}from"@univerjs/ui";import{BehaviorSubject as nt,Observable as rt,Subject as it,combineLatest as at,debounceTime as ot,map as st,of as B,switchMap as ct}from"rxjs";import{Button as lt,FormLayout as ut,Input as dt,MessageType as ft,Select as pt,Tooltip as mt,borderClassName as ht,clsx as gt}from"@univerjs/design";import{IDefinedNamesService as _t,deserializeRangeWithSheet as vt,serializeRange as yt,serializeRangeToRefString as bt,serializeRangeWithSheet as xt}from"@univerjs/engine-formula";import{RangeSelector as St}from"@univerjs/sheets-formula-ui";import{AddHyperLinkCommand as Ct,AddHyperLinkMutation as wt,AddRichHyperLinkCommand as Tt,CancelHyperLinkCommand as Et,CancelRichHyperLinkCommand as Dt,ERROR_RANGE as Ot,HyperLinkModel as kt,RemoveHyperLinkMutation as At,SheetHyperLinkType as V,SheetsHyperLinkParserService as jt,UniverSheetsHyperLinkPlugin as Mt,UpdateHyperLinkCommand as Nt,UpdateRichHyperLinkCommand as Pt}from"@univerjs/sheets-hyper-link";import{useCallback as Ft,useEffect as H,useMemo as It,useRef as Lt,useState as U}from"react";import{Fragment as Rt,jsx as W,jsxs as zt}from"react/jsx-runtime";import{AllBorderIcon as Bt,CopyIcon as Vt,LinkIcon as Ht,UnlinkIcon as Ut,WriteIcon as Wt,XlsxMultiIcon as Gt}from"@univerjs/icons";import{SheetDataValidationModel as Kt}from"@univerjs/sheets-data-validation";let G=function(e){return e.EDITING=`editing`,e.VIEWING=`viewing`,e.ZEN_EDITOR=`zen_mode`,e}({});function qt(e){return ee.isLegalUrl(e)}function Jt(e){return/^[a-zA-Z]+:\/\//.test(e)}function Yt(e){return/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(e)}function Xt(e){if(qt(e)){let t=Jt(e)?e:Yt(e)?`mailto://${e}`:`http://${e}`,n;try{n=new URL(t)}catch{return e}return n.hostname===location.hostname&&n.port===location.port&&n.protocol===location.protocol&&n.pathname===location.pathname&&n.hash&&!n.search?n.hash:t}return e}const Zt=`sheets-hyper-link-ui.config`;Symbol(Zt);const Qt={};function K(e,t){return function(n,r){t(n,r,e)}}function q(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function $t(e,t){let n=t.getMergeData(),r=t.getMaxColumns()-1,i=t.getMaxRows()-1;if(r<e.endColumn&&(e.endColumn=r),i<e.endRow&&(e.endRow=i),e.rangeType===w.COLUMN||w.ROW)return e;let a=[];return n.forEach(t=>{E.intersects(e,t)&&a.push(t)}),E.realUnion(e,...a)}let J=class{constructor(e,t,n,r,i,a){this._univerInstanceService=e,this._commandService=t,this._definedNamesService=n,this._messageService=r,this._localeService=i,this._configService=a}navigate(e){switch(e.type){case V.URL:this.navigateToOtherWebsite(e.url);break;default:this._navigateToUniver(e.searchObj)}}_navigateToUniver(e){let{gid:t,range:n,rangeid:r}=e,i=this._univerInstanceService.getCurrentUnitForType(O.UNIVER_SHEET);if(!i)return;let a=i.getUnitId();if(r){let e=this._definedNamesService.getValueById(a,r);if(!e)return;let{formulaOrRefString:t}=e,n=this._definedNamesService.getWorksheetByRef(a,t);if(!n){this._messageService.show({content:this._localeService.t(`hyperLink.message.refError`),type:ft.Error});return}if(n.isSheetHidden()){this._messageService.show({content:this._localeService.t(`hyperLink.message.hiddenSheet`),type:ft.Error});return}this.navigateToDefineName(a,r)}if(t){if(n){let e=vt(n);k(e.range)&&n!==Ot&&this.navigateToRange(a,t,e.range);return}this.navigateToSheetById(a,t)}}async navigateToRange(e,t,n,r){let i=await this.navigateToSheetById(e,t);if(i){let a=$t(n,i);await this._commandService.executeCommand(ce.id,{unitId:e,subUnitId:t,selections:[{range:a,primary:null}]}),await this._commandService.executeCommand(Te.id,{range:a,forceTop:r})}}async navigateToSheetById(e,t){let n=this._univerInstanceService.getUnit(e,O.UNIVER_SHEET);if(!n)return!1;let r=n.getActiveSheet();if(!r)return!1;if(r.getSheetId()===t)return r;let i=n.getSheetBySheetId(t);return i?n.getHiddenWorksheets().indexOf(t)>-1?(this._messageService.show({content:this._localeService.t(`hyperLink.message.hiddenSheet`),type:ft.Error}),!1):await this._commandService.executeCommand(le.id,{unitId:e,subUnitId:t})?i:!1:(this._messageService.show({content:this._localeService.t(`hyperLink.message.noSheet`),type:ft.Error}),!1)}async navigateToDefineName(e,t){return this._definedNamesService.focusRange(e,t),!0}async navigateToOtherWebsite(e){var t;let n=this._configService.getConfig(Zt);if(!(n==null||(t=n.urlHandler)==null)&&t.navigateToOtherWebsite)return n.urlHandler.navigateToOtherWebsite(e);window.open(e,`_blank`,`noopener noreferrer`)}};J=q([K(0,_),K(1,p),K(2,_t),K(3,Ke),K(4,v(x)),K(5,m)],J);function en(e){"@babel/helpers - typeof";return en=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},en(e)}function tn(e,t){if(en(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(en(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function nn(e){var t=tn(e,`string`);return en(t)==`symbol`?t:t+``}function Y(e,t,n){return(t=nn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var rn=class extends u{constructor(...e){super(...e),Y(this,`_customHyperLinks`,new Map)}isBuiltInLinkType(e){return e!==V.URL}getOptions(){return Array.from(this._customHyperLinks.values()).map(({option:e})=>e)}findCustomHyperLink(e){return Array.from(this._customHyperLinks.values()).find(t=>t.match(e))}registerCustomHyperLink(e){this._customHyperLinks.set(e.type,e)}getCustomHyperLink(e){return this._customHyperLinks.get(e)}removeCustomHyperLink(e){let{_customHyperLinks:t}=this;t.delete(e)}dispose(){super.dispose(),this._customHyperLinks.clear()}};function an(e){return e.trim().length===0}function on(e,t){let[n]=e.split(`,`).map(vt);return!n||!k(n.range)?``:(n.sheetName||(n.sheetName=t),bt(n))}const sn=()=>{var n;let[i,a]=U(``),[c,l]=U(!1),[u,m]=U(``),[g,v]=U(!0),[y,b]=U(V.URL),[S,C]=U(``),w=z(x),T=z(_t),E=z(L),k=z(_),ne=z(X),A=tt(ne.currentEditing$),re=z(jt),ie=z(J),j=z(p),M=z(rn),ae=It(()=>M.getOptions(),[M]),oe=z(Je),N=z(Ve),se=z(Ce),ue=z(Pe),de=z(h),pe=z(D),me=z(Pe),[he,ge]=U(!1),_e=z(fe),ve=It(()=>_e.getCurrentSelections(),[]),ye=It(()=>{if(!M.isBuiltInLinkType(y))return M.getCustomHyperLink(y)},[M,y]),[P,be]=U(!1),[xe,Se]=U(!1),F=Lt(!1),I=k.getCurrentUnitOfType(O.UNIVER_SHEET),we=(I==null?void 0:I.getActiveSheet().getSheetId())||``,R=Ft(e=>{m(e.replaceAll(s.CUSTOM_RANGE_START,``).replaceAll(s.CUSTOM_RANGE_END,``))},[m]);H(()=>{if((A==null?void 0:A.row)!==void 0&&A.col!==void 0){let{customRange:y,row:x,col:S}=A,{label:w}=A;typeof w==`number`&&(w=`${w}`);let T;if(y){var t,n,i,o;T={id:(t=y==null?void 0:y.rangeId)==null?``:t,display:(n=w)==null?``:n,payload:(i=y==null||(o=y.properties)==null?void 0:o.url)==null?``:i,row:x,column:S}}else if(A.type===G.VIEWING){var s,c,l,u;let t=k.getUnit(A.unitId),n=t==null?void 0:t.getSheetBySheetId(A.subUnitId),i=n==null?void 0:n.getCellRaw(A.row,A.col),a=i==null||(s=i.p)==null||(s=s.body)==null||(s=s.customRanges)==null?void 0:s.find(e=>{var t;return e.rangeType===r.HYPERLINK&&((t=e.properties)==null?void 0:t.url)}),o=i==null?void 0:i.v;i&&(!e.transform.isEmptyDocument((c=i.p)==null||(c=c.body)==null?void 0:c.dataStream)||ee.isDefine(o))&&v(!1),T={id:``,display:``,payload:(l=a==null||(u=a.properties)==null?void 0:u.url)==null?``:l,row:x,column:S}}else{var d,f,p,m,h;let t=k.getCurrentUnitForType(O.UNIVER_DOC),n=ue.getActiveTextRange(),r=t==null?void 0:t.getBody(),i=n&&r?n:null,a=i&&((d=e.customRange.getCustomRangesInterestsWithSelection(i,(f=r==null?void 0:r.customRanges)==null?[]:f))==null?void 0:d[0]);v(!1),T={id:``,display:(p=w)==null?``:p,payload:(m=a==null||(h=a.properties)==null?void 0:h.url)==null?``:m,row:x,column:S}}a(T.id);let E=M.findCustomHyperLink(T);if(E){let e=E.convert(T);b(e.type),C(e.payload),R(e.display);return}R(T.display);let D=re.parseHyperLink(T.payload);switch(b(D.type===V.INVALID?V.RANGE:D.type),D.type){case V.URL:C(D.url),D.url===T.display&&(F.current=!0);break;case V.RANGE:{var g,_;let e=D.searchObj,t=xt(e.gid?(g=(_=k.getUnit(A.unitId))==null||(_=_.getSheetBySheetId(e.gid))==null?void 0:_.getName())==null?``:g:``,vt(e.range).range);C(t),t===T.display&&(F.current=!0);break}case V.SHEET:{let e=D.searchObj;C(e.gid);break}case V.DEFINE_NAME:{let e=D.searchObj;C(e.rangeid);break}default:C(``);break}}},[A,ie,M,ue,k]),H(()=>{let e=null;if(A&&!A.customRangeId&&A.type===G.VIEWING&&ee.isDefine(A.row)&&ee.isDefine(A.col)){let n=k.getUnit(A.unitId,O.UNIVER_SHEET),r=n==null?void 0:n.getSheetBySheetId(A.subUnitId),i=r==null?void 0:r.getMergedCell(A.row,A.col),a=new t(pe.getColorFromTheme(`primary.600`)).toRgb();e=se.addShape({range:i==null?{startColumn:A.col,endColumn:A.col,startRow:A.row,endRow:A.row}:i,style:{fill:`rgb(${a.r}, ${a.g}, ${a.b}, 0.12)`,strokeWidth:1,stroke:`#FFBD37`,widgets:{}},primary:null},[],-1)}return()=>{e&&se.removeShape(e)}},[A,se,pe,k]),H(()=>{Se(y===V.RANGE)},[y]),H(()=>{let e=(A==null?void 0:A.type)===G.ZEN_EDITOR?N.getRenderById(o):N.getRenderById(E.getCurrentEditorId()),t=new d;if(e){let n=e.with(Re);n.setReserveRangesStatus(!0),t.add(()=>{n.setReserveRangesStatus(!1)})}return()=>{E.disableForceKeepVisible(),t.dispose()}},[A==null?void 0:A.type,E,N]),H(()=>(xe&&ne.setIsKeepVisible(xe),ne.setIsKeepVisible(he),()=>{ne.setIsKeepVisible(!1)}),[xe,he,ne]),H(()=>()=>{oe.temporaryHidden&&(oe.show(),de.setContextValue(f,!1))},[de,oe]),H(()=>{if(xe)return E.enableForceKeepVisible(),()=>{E.disableForceKeepVisible()}},[xe,E]);let Ee=[{label:w.t(`hyperLink.form.link`),value:V.URL},{label:w.t(`hyperLink.form.range`),value:V.RANGE},{label:w.t(`hyperLink.form.worksheet`),value:V.SHEET},{label:w.t(`hyperLink.form.definedName`),value:V.DEFINE_NAME},...ae];if(!I)return;let De=I.getHiddenWorksheets(),Oe=I.getSheets().map(e=>({label:e.getName(),value:e.getSheetId()})).filter(e=>De.indexOf(e.value)===-1),ke=Object.values((n=T.getDefinedNameMap(I.getUnitId()))==null?{}:n).map(e=>({label:e.name,value:e.id})),Ae=(e,t)=>{if(e===V.URL)return Xt(t);if(e===V.RANGE){let e=vt(t),n=I.getSheetBySheetName(e.sheetName);if(n)return`#gid=${n.getSheetId()}&range=${yt(e.range)}`}return`#${e}=${t}`},je=et(e=>{var t;let n=on(e,((t=I.getActiveSheet())==null?void 0:t.getName())||``);if(!n){C(``);return}C(n),n&&(F.current||!u)&&(R(n),F.current=!0)}),Me=async()=>{if(g&&an(u)||!S||y===V.URL&&!qt(S)){be(!0);return}if(A)if(i){let e=A.type===G.ZEN_EDITOR||A.type===G.EDITING?Pt.id:Nt.id;await j.executeCommand(e,{id:i,unitId:A.unitId,subUnitId:A.subUnitId,payload:{display:g?u:``,payload:Ae(y,S)},row:A.row,column:A.col,documentId:A.type===G.ZEN_EDITOR?o:E.getCurrentEditorId()})}else{let e=A.type===G.ZEN_EDITOR||A.type===G.EDITING?Tt.id:Ct.id;await j.executeCommand(e,{unitId:A.unitId,subUnitId:A.subUnitId,link:{id:te(),row:A.row,column:A.col,payload:Ae(y,S),display:g?u:``},documentId:A.type===G.ZEN_EDITOR?o:E.getCurrentEditorId()})}(A==null?void 0:A.type)===G.VIEWING&&(await j.executeCommand(le.id,{unitId:A.unitId,subUnitId:A.subUnitId}),await j.executeCommand(Te.id,{range:{startRow:Math.max(A.row-1,0),endRow:A.row+1,startColumn:Math.max(A.col-1,0),endColumn:A.col+1}})),j.executeCommand(_n.id)};return A?zt(`div`,{className:gt(`univer-box-border univer-w-[296px] univer-rounded-xl univer-bg-white univer-p-4 univer-shadow-md dark:!univer-bg-gray-900`,ht),children:[g?W(ut,{label:w.t(`hyperLink.form.label`),error:P&&an(u)?w.t(`hyperLink.form.inputError`):``,children:W(dt,{value:u,onChange:e=>{R(e),F.current=!1},placeholder:w.t(`hyperLink.form.labelPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===Ye.ENTER&&Me()}})}):null,W(ut,{label:w.t(`hyperLink.form.type`),children:W(pt,{className:`univer-w-full`,options:Ee,value:y,onChange:e=>{b(e),C(``)}})}),y===V.URL&&W(ut,{error:P?S?qt(S)?``:w.t(`hyperLink.form.linkError`):w.t(`hyperLink.form.inputError`):``,children:W(dt,{value:S,onChange:e=>{C(e),e&&(F.current||!u||u===e)&&(R(e),F.current=!0)},placeholder:w.t(`hyperLink.form.linkPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===Ye.ENTER&&Me()}})}),y===V.RANGE&&W(ut,{error:P&&!S?w.t(`hyperLink.form.inputError`):``,children:W(St,{unitId:I.getUnitId(),subUnitId:we,maxRangeCount:1,supportAcrossSheet:!0,initialValue:S,resetRange:ve,onChange:(e,t)=>je(t),onRangeSelectorDialogVisibleChange:async e=>{if(ge(e),e)A.type===G.ZEN_EDITOR&&(oe.hide(),de.setContextValue(f,!0)),A.type!==G.VIEWING&&E.enableForceKeepVisible(),l(!0);else{if(await ie.navigateToRange(A.unitId,A.subUnitId,{startRow:A.row,endRow:A.row,startColumn:A.col,endColumn:A.col},!0),A.type===G.ZEN_EDITOR){var t,n;await j.executeCommand(ce.id,{unitId:A.unitId,subUnitId:A.subUnitId,selections:[{range:{startRow:A.row,endRow:A.row,startColumn:A.col,endColumn:A.col}}]}),oe.show(),de.setContextValue(f,!1);let e=(t=N.getRenderById(o))==null?void 0:t.with(Fe),r=(n=me.getTextRanges({unitId:o,subUnitId:o}))==null?void 0:n[0];e&&r&&(e.scrollToRange(r),me.refreshSelection({unitId:o,subUnitId:o}))}E.disableForceKeepVisible(),l(!1)}},onFocusChange:e=>Se(e)})}),y===V.SHEET&&W(ut,{error:P&&!S?w.t(`hyperLink.form.selectError`):``,children:W(pt,{className:`univer-w-full`,options:Oe,value:S,onChange:e=>{var t,n;C(e);let r=(t=Oe.find(t=>t.value===e))==null?void 0:t.label,i=(n=Oe.find(e=>e.value===S))==null?void 0:n.label;r&&(F.current||!u||u===i)&&(R(r),F.current=!0)}})}),y===V.DEFINE_NAME&&W(ut,{error:P&&!S?w.t(`hyperLink.form.selectError`):``,children:W(pt,{className:`univer-w-full`,options:ke,value:S,onChange:e=>{var t,n;C(e);let r=(t=ke.find(t=>t.value===e))==null?void 0:t.label,i=(n=ke.find(e=>e.value===S))==null?void 0:n.label;r&&(F.current||!u||u===i)&&(R(r),F.current=!0)}})}),(ye==null?void 0:ye.Form)&&W(ye.Form,{linkId:i,payload:S,display:u,showError:P,setByPayload:F,setDisplay:e=>{R(e),F.current=!0},setPayload:C}),zt(`div`,{className:`univer-flex univer-flex-row univer-justify-end univer-gap-2`,children:[W(lt,{onClick:()=>{A&&ie.navigateToRange(A.unitId,A.subUnitId,{startRow:A.row,endRow:A.row,startColumn:A.col,endColumn:A.col},!0),j.executeCommand(_n.id)},children:w.t(`hyperLink.form.cancel`)}),W(lt,{variant:`primary`,onClick:async()=>{Me()},children:w.t(`hyperLink.form.ok`)})]})]}):null};sn.componentKey=`univer.sheet.cell-link-edit`;const cn={[V.URL]:W(Ht,{}),[V.SHEET]:W(Gt,{className:`univer-text-green-500`}),[V.RANGE]:W(Bt,{}),[V.DEFINE_NAME]:W(Bt,{}),[V.INVALID]:W(Bt,{})},ln=e=>{var t,n;let r=z(X),i=z(p),a=z(Ke),s=z(x),c=z(J),l=z(L),u=z(jt),d=z(Je),{customRange:f,row:m,col:h,unitId:g,subUnitId:_,editPermission:v,copyPermission:y,type:b}=e;if(!(!(f==null||(t=f.properties)==null)&&t.url))return null;let S=u.parseHyperLink((n=f.properties.url)==null?``:n),C=S.type===V.INVALID;return zt(`div`,{className:gt(`univer-mb-1 univer-flex univer-max-w-80 univer-flex-row univer-items-center univer-justify-between univer-overflow-hidden univer-rounded-lg univer-bg-white univer-p-3 univer-shadow-md dark:!univer-bg-gray-900`,ht),onClick:()=>r.hideCurrentPopup(),children:[zt(`div`,{className:gt(`univer-flex univer-h-6 univer-flex-1 univer-cursor-pointer univer-flex-row univer-items-center univer-truncate univer-text-sm univer-leading-5 univer-text-primary-600`,{"univer-text-red-500":C}),onClick:()=>{d.visible||C||c.navigate(S)},children:[W(`div`,{className:`univer-mr-2 univer-flex univer-size-5 univer-flex-none univer-items-center univer-justify-center univer-text-base univer-text-gray-900 dark:!univer-text-white`,children:cn[S.type]}),W(mt,{showIfEllipsis:!0,title:S.name,asChild:!0,children:W(`span`,{className:`univer-flex-1 univer-truncate`,children:S.name})})]}),zt(`div`,{className:`univer-flex univer-h-6 univer-flex-none univer-flex-row univer-items-center univer-justify-center`,children:[y&&W(`div`,{className:gt(`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,{"univer-text-red-500":C}),onClick:()=>{if(!C){if(S.type!==V.URL){let e=new URL(window.location.href);e.hash=S.url.slice(1),navigator.clipboard.writeText(e.href)}else navigator.clipboard.writeText(S.url);a.show({content:s.t(`hyperLink.message.coped`),type:ft.Info})}},children:W(mt,{placement:`bottom`,title:s.t(`hyperLink.popup.copy`),children:W(Vt,{className:`dark:!univer-text-white`})})}),v&&zt(Rt,{children:[W(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{i.executeCommand(gn.id,{unitId:g,subUnitId:_,row:m,col:h,customRangeId:f.rangeId,type:b})},children:W(mt,{placement:`bottom`,title:s.t(`hyperLink.popup.edit`),children:W(Wt,{className:`dark:!univer-text-white`})})}),W(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{let e=b===G.EDITING||b===G.ZEN_EDITOR?Dt.id:Et.id;i.syncExecuteCommand(e,{unitId:g,subUnitId:_,id:f.rangeId,row:m,column:h,documentId:b===G.ZEN_EDITOR?o:l.getCurrentEditorId()})&&r.hideCurrentPopup(void 0,!0)},children:W(mt,{placement:`bottom`,title:s.t(`hyperLink.popup.cancel`),children:W(Ut,{className:`dark:!univer-text-white`})})})]})]})]})},un=()=>{let e=z(X),[t,n]=U(null),r=z(_);if(H(()=>{n(e.currentPopup);let t=e.currentPopup$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[e.currentPopup,e.currentPopup$]),!t)return null;if(t.showAll){var i;let e=r.getUnit(t.unitId,O.UNIVER_SHEET),n=e==null?void 0:e.getSheetBySheetId(t.subUnitId),a=n==null?void 0:n.getCell(t.row,t.col),o=a==null||(i=a.p)==null||(i=i.body)==null?void 0:i.customRanges;return o!=null&&o.length?W(`div`,{children:o.map(e=>W(ln,{...t,customRange:e},e.rangeId))}):null}return W(ln,{...t})};un.componentKey=`univer.sheet.cell-link-popup`;const dn=(e,t)=>{var n,r;return e.unitId===t.unitId&&e.subUnitId===t.subUnitId&&e.row===t.row&&e.col===t.col&&((n=e.customRange)==null?void 0:n.rangeId)===((r=t.customRange)==null?void 0:r.rangeId)&&e.type===t.type};let X=class extends u{get currentPopup(){return this._currentPopup}get currentEditing(){return this._currentEditing$.getValue()}constructor(e,t,n,r,i,a,o){super(),this._sheetCanvasPopManagerService=e,this._injector=t,this._univerInstanceService=n,this._editorBridgeService=r,this._textSelectionManagerService=i,this._docCanvasPopManagerService=a,this._zenZoneService=o,Y(this,`_currentPopup`,null),Y(this,`_currentPopup$`,new it),Y(this,`currentPopup$`,this._currentPopup$.asObservable()),Y(this,`_currentEditingPopup`,null),Y(this,`_currentEditing$`,new nt(null)),Y(this,`currentEditing$`,this._currentEditing$.asObservable()),Y(this,`_isKeepVisible`,!1),this.disposeWithMe(()=>{this.hideCurrentPopup(),this.endEditing(),this._currentEditing$.complete(),this._currentPopup$.complete()})}setIsKeepVisible(e){this._isKeepVisible=e}getIsKeepVisible(){return this._isKeepVisible}showPopup(e){if(this._currentPopup&&dn(e,this._currentPopup)||(this.hideCurrentPopup(void 0,!0),e.type!==G.ZEN_EDITOR&&this._zenZoneService.visible))return;let t=this._currentEditing$.getValue();if(t&&dn(e,t))return;let{unitId:n,subUnitId:r,row:i,col:a,customRangeRect:s,customRange:c}=e,l,u={componentKey:un.componentKey,direction:`bottom`,onClickOutside:()=>{this.hideCurrentPopup()},onClick:()=>{this.hideCurrentPopup(e.type,!0)}};if(e.type===G.EDITING){if(!c)return;l=s&&this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(s,u)}else if(e.type===G.ZEN_EDITOR){if(!c)return;l=this._docCanvasPopManagerService.attachPopupToRange({startOffset:c.startIndex,endOffset:c.endIndex+1,collapsed:!1},u,o)}else if(e.showAll)l=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,u,n,r);else{if(!c)return;l=s&&this._sheetCanvasPopManagerService.attachPopupByPosition(s,u,e)}if(l){if(this._currentPopup){var d;(d=this._currentPopup.disposable)==null||d.dispose()}this._currentPopup={unitId:n,subUnitId:r,disposable:l,row:i,col:a,editPermission:!!e.editPermission,copyPermission:!!e.copyPermission,customRange:c,type:e.type,showAll:e.showAll},this._currentPopup$.next(this._currentPopup)}}hideCurrentPopup(e,t){if(this._currentPopup&&((!e||e===this._currentPopup.type)&&this._currentPopup.disposable.canDispose()||t)){var n;(n=this._currentPopup)==null||(n=n.disposable)==null||n.dispose(),this._currentPopup=null,this._currentPopup$.next(null)}}dispose(){super.dispose(),this.hideCurrentPopup(),this.endEditing(),this._currentPopup$.complete(),this._currentEditing$.complete()}_getEditingRange(){let t=this._editorBridgeService.isVisible().visible,n=this._editorBridgeService.getEditCellState();if(t&&n){var i,a,o;let t=this._textSelectionManagerService.getActiveTextRange(),s=(i=n.documentLayoutObject.documentModel)==null?void 0:i.getBody();if(!s)return null;if(!t||t.collapsed)return{startOffset:0,endOffset:s.dataStream.length-2,collapsed:s.dataStream.length-2==0,label:e.transform.getPlainText(s.dataStream)};let c=e.customRange.getCustomRangesInterestsWithSelection(t,(a=(o=s.customRanges)==null?void 0:o.filter(e=>e.rangeType===r.HYPERLINK))==null?[]:a),l=t.startOffset,u=t.endOffset;return c.forEach(e=>{l=Math.min(l,e.startIndex),u=Math.max(u,e.endIndex+1)}),{startOffset:l,endOffset:u,collapsed:l===u,label:e.transform.getPlainText(s.dataStream.slice(l,u))}}return null}get _editPopup(){return{componentKey:sn.componentKey,direction:`vertical`,onClickOutside:()=>{this.endEditing()},onContextMenu:()=>{this.endEditing()},hiddenType:`hide`}}startAddEditing(t){let{unitId:n,subUnitId:r,type:i}=t;if(i===G.ZEN_EDITOR){var s;let e=this._univerInstanceService.getUnit(o,O.UNIVER_DOC);if(!e)return;let n=this._textSelectionManagerService.getActiveTextRange();if(!n)return;this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange(n,this._editPopup,o);let r=(s=e.getBody())==null?void 0:s.dataStream.slice(n.startOffset,n.endOffset);this._currentEditing$.next({...t,label:r})}else if(i===G.EDITING){var c;let e=this._getEditingRange();if(!e)return;this._textSelectionManagerService.replaceDocRanges([{...e}],{unitId:a,subUnitId:a});let i=this._injector.get(Ve).getRenderById(a);if(!i)return;let o=Be(e,i);if(!(o!=null&&o.length))return;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(o.pop(),this._editPopup,n,r),this._currentEditing$.next({...t,label:(c=e==null?void 0:e.label)==null?``:c})}else{var l,u,d;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(t.row,t.col,this._editPopup,n,r);let i=this._univerInstanceService.getUnit(n,O.UNIVER_SHEET),a=i==null?void 0:i.getSheetBySheetId(r),o=a==null?void 0:a.getCellRaw(t.row,t.col);this._currentEditing$.next({...t,label:o!=null&&o.p?e.transform.getPlainText((l=(u=o.p.body)==null?void 0:u.dataStream)==null?``:l):((d=o==null?void 0:o.v)==null?``:d).toString()})}}startEditing(e){var t;(t=this._currentEditingPopup)==null||t.dispose(),this.hideCurrentPopup(void 0,!0);let{unitId:n,subUnitId:r}=e,i,a;if(e.type===G.ZEN_EDITOR){var s,c;let t=this._univerInstanceService.getUnit(o,O.UNIVER_DOC);if(i=t==null||(s=t.getBody())==null||(s=s.customRanges)==null?void 0:s.find(t=>t.rangeId===e.customRangeId),a=i?t==null||(c=t.getBody())==null?void 0:c.dataStream.slice(i.startIndex,i.endIndex+1):``,!i||!a)return;this._textSelectionManagerService.replaceTextRanges([{startOffset:i.startIndex,endOffset:i.endIndex+1}]),this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange({startOffset:i.startIndex,endOffset:i.endIndex,collapsed:!1},this._editPopup,o)}else if(e.type===G.EDITING){var l;let t=Ae(this._injector,e.unitId,e.subUnitId,e.row,e.col,e.customRangeId);if(!t||!((l=t.rects)!=null&&l.length))return;i=t.customRange,a=t.label,this._textSelectionManagerService.replaceTextRanges([{startOffset:i.startIndex,endOffset:i.endIndex+1}]),this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(t.rects.pop(),this._editPopup,n,r)}else{var u;let t=this._univerInstanceService.getUnit(n,O.UNIVER_SHEET),o=t==null?void 0:t.getSheetBySheetId(r),s=o==null?void 0:o.getCellRaw(e.row,e.col),c=t==null?void 0:t.getStyles().getStyleByCell(s),l=c==null?void 0:c.tr,d=ke(this._injector,e.unitId,e.subUnitId,e.row,e.col,e.customRangeId);if(!d||!((u=d.rects)!=null&&u.length))return;i=d.customRange,a=d.label,l?this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,this._editPopup,n,r):this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupByPosition(d.rects.pop(),this._editPopup,{unitId:n,subUnitId:r,row:e.row,col:e.col})}this._currentEditing$.next({...e,customRange:i,label:a})}endEditing(e){if(this.getIsKeepVisible())return;let t=this._currentEditing$.getValue();if(t&&(!e||e===t.type)){var n;(n=this._currentEditingPopup)==null||n.dispose(),this._currentEditing$.next(null)}}};X=q([K(0,v(Ee)),K(1,v(y)),K(2,_),K(3,L),K(4,v(Pe)),K(5,v(Ie)),K(6,Je)],X);let Z=function(e){return e[e.ALLOWED=0]=`ALLOWED`,e[e.DISABLED_BY_CELL=1]=`DISABLED_BY_CELL`,e[e.ALLOW_ON_EDITING=2]=`ALLOW_ON_EDITING`,e}({});const fn=new Set([c.CHECKBOX,c.LIST,c.LIST_MULTIPLE]),pn=(e,t,n,r)=>{var i,a;let o=t.getCell(n,r);if(o!=null&&o.f||o!=null&&o.si||!(o==null||(i=o.p)==null||(i=i.body)==null||(i=i.customBlocks)==null)&&i.length)return Z.DISABLED_BY_CELL;let s=e.has(Kt)?e.get(Kt):null,c=s==null?void 0:s.getRuleByLocation(t.getUnitId(),t.getSheetId(),n,r);return c&&fn.has(c.type)?!0:!(o==null||(a=o.p)==null||(a=a.drawingsOrder)==null)&&a.length?Z.ALLOW_ON_EDITING:Z.ALLOWED},mn=e=>{let t=e.get(_).getCurrentUnitForType(O.UNIVER_SHEET);if(!t)return!0;let n=t.getActiveSheet(),r=e.get(fe).getCurrentSelections();if(!r.length)return!0;let i=r[0].range.startRow,a=r[0].range.startColumn;return pn(e,n,i,a)===Z.DISABLED_BY_CELL},hn=e=>{let t=e.get(Pe),n=e.get(_),r=t.getTextRanges();if(!(r!=null&&r.length))return!0;let i=n.getCurrentUnitForType(O.UNIVER_DOC);return!!(!i||r.every(e=>e.collapsed)||!i.getSelfOrHeaderFooterModel(r[0].segmentId).getBody())},gn={type:n.OPERATION,id:`sheet.operation.open-hyper-link-edit-panel`,handler(e,t){if(!t)return!1;let n=e.get(X);return t.customRangeId?n.startEditing(t):n.startAddEditing(t),!0}},_n={type:n.OPERATION,id:`sheet.operation.close-hyper-link-popup`,handler(e){return e.get(X).endEditing(),!0}},vn={type:n.OPERATION,id:`sheet.operation.insert-hyper-link`,handler(e){var t;let n=e.get(_),r=be(n),i=e.get(L);if(!r)return!1;let a=e.get(p),s=e.get(fe).getCurrentLastSelection();if(!s)return!1;let c=s.range.startRow,l=s.range.startColumn,u=i.isVisible(),d=((t=n.getFocusedUnit())==null?void 0:t.getUnitId())===o;return a.executeCommand(gn.id,{unitId:r.unitId,subUnitId:r.subUnitId,row:c,col:l,type:d?G.ZEN_EDITOR:u.visible?G.EDITING:G.VIEWING})}},Q={type:n.OPERATION,id:`sheet.operation.insert-hyper-link-toolbar`,handler(e){if(mn(e))return!1;let t=e.get(p);return e.get(X).currentEditing?t.executeCommand(_n.id):t.executeCommand(vn.id)}},yn=`SHEET_HYPER_LINK_UI_PLUGIN`;let bn=class extends u{registerPlainTextFilter(e){this._plainTextFilter.add(e)}removePlainTextFilter(e){this._plainTextFilter.delete(e)}_filterPlainText(e){return Array.from(this._plainTextFilter).every(t=>t(e))}constructor(e,t,n,r){super(),this._sheetClipboardService=e,this._hyperLinkModel=t,this._injector=n,this._resolverService=r,Y(this,`_plainTextFilter`,new Set),Y(this,`_copyInfo`,void 0),this._initCopyPaste(),this.disposeWithMe(()=>{this._plainTextFilter.clear()})}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:yn,onBeforeCopy:(e,t,n)=>this._collect(e,t,n),onPasteCells:(e,t,n,r)=>{let{copyType:i=Se.COPY,pasteType:a}=r,{range:o}=e||{},{range:s,unitId:c,subUnitId:l}=t;return this._generateMutations(s,{copyType:i,pasteType:a,copyRange:o,unitId:c,subUnitId:l})},onPastePlainText:(e,t)=>{let n=this._filterPlainText(t);if(qt(t)&&n){let{range:t,unitId:n,subUnitId:r}=e,{ranges:[i],mapFunc:a}=Me([t]),o=[],s=[];return T.foreach(i,(e,t)=>{let{row:i,col:c}=a(e,t),l=this._hyperLinkModel.getHyperLinkByLocation(n,r,i,c);l&&o.push({id:At.id,params:{unitId:n,subUnitId:r,id:l.id}}),l&&s.push({id:wt.id,params:{unitId:n,subUnitId:r,link:l}})}),{redos:o,undos:s}}return{undos:[],redos:[]}},priority:99})}_collect(e,t,n){let r=new S;this._copyInfo={unitId:e,subUnitId:t,matrix:r};let i=this._injector.invoke(r=>xe(n,r,e,t));if(!i)return;let{rows:a,cols:o}=i;a.forEach((n,i)=>{o.forEach((a,o)=>{var s;let c=this._hyperLinkModel.getHyperLinkByLocation(e,t,n,a);r.setValue(i,o,(s=c==null?void 0:c.id)==null?``:s)})})}_generateMutations(e,t){if(!this._copyInfo||!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!t.copyRange||[R.SPECIAL_PASTE_COL_WIDTH,R.SPECIAL_PASTE_VALUE,R.SPECIAL_PASTE_FORMAT,R.SPECIAL_PASTE_FORMULA].includes(t.pasteType))return{redos:[],undos:[]};let{unitId:n,subUnitId:r}=this._copyInfo,i=[],a=[],{ranges:[o,s],mapFunc:c}=Me([t.copyRange,e]);return je(o,s,!0).forEach(({startRange:e})=>{var o;(o=this._copyInfo)==null||o.matrix.forValue((o,s,l)=>{let u=E.getPositionRange({startRow:o,endRow:o,startColumn:s,endColumn:s},e),d=this._hyperLinkModel.getHyperLink(n,r,l),{row:f,col:p}=c(u.startRow,u.startColumn),m=this._hyperLinkModel.getHyperLinkByLocation(t.unitId,t.subUnitId,f,p),h=te();m&&i.push({id:At.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,id:m.id}}),d&&(i.push({id:wt.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,link:{...d,id:h,row:f,column:p}}}),a.push({id:At.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,id:h}})),m&&a.push({id:wt.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,link:m}})})}),{redos:i,undos:a}}};bn=q([K(0,we),K(1,v(kt)),K(2,v(y)),K(3,v(J))],bn);const xn=(e,t=o)=>{var n;let r=e.get(_),i=(n=e.get(Ve).getRenderById(t))==null?void 0:n.with(Re);return i?i.textSelectionInner$.pipe(st(()=>{let t=e.get(L).getEditCellState();if(!t)return!0;let n=be(r,{unitId:t.unitId,subUnitId:t.sheetId});return!(n!=null&&n.worksheet)||pn(e,n.worksheet,t.row,t.column)===1?!0:hn(e)})):B(!0)},Sn=e=>{var t;let n=e.get(_),r=e.has(L)?e.get(L):null;return((t=r==null?void 0:r.currentEditCellState$.pipe(st(t=>{if(!t)return Z.DISABLED_BY_CELL;let r=be(n,{unitId:t.unitId,subUnitId:t.sheetId});return r?pn(e,r.worksheet,t.row,t.column):Z.DISABLED_BY_CELL}),ct(t=>t===Z.DISABLED_BY_CELL?B(!0):at([r?r.visible$:B(null),n.getCurrentTypeOfUnit$(O.UNIVER_DOC)]).pipe(ct(([n,r])=>n!=null&&n.visible?(r==null?void 0:r.getUnitId())===i?B(!0):xn(e,a):B(t!==Z.ALLOWED))))))==null?B(!0):t).pipe(ct(t=>t?B(!0):Oe(e,{workbookTypes:[me],worksheetTypes:[_e,ye,ve],rangeTypes:[N]},!0)))},Cn={commandId:vn.id,type:Xe.BUTTON,title:`hyperLink.menu.add`,icon:`LinkIcon`},wn=e=>`${e}-zen-editor`,Tn=e=>({...Cn,id:Cn.commandId,hidden$:$e(e,O.UNIVER_SHEET),disabled$:Sn(e)}),En=e=>({...Cn,id:wn(Cn.commandId),hidden$:$e(e,O.UNIVER_DOC,o),disabled$:xn(e)}),Dn={tooltip:`hyperLink.form.addTitle`,commandId:Q.id,type:Xe.BUTTON,icon:`LinkIcon`},On=e=>({...Dn,id:Dn.commandId,hidden$:$e(e,O.UNIVER_SHEET),disabled$:Sn(e)}),kn=e=>({...Dn,id:wn(Dn.commandId),hidden$:$e(e,O.UNIVER_DOC,o),disabled$:xn(e)}),An={id:Q.id,binding:Ye.K|Ze.CTRL_COMMAND,preconditions:Ne};var jn=`@univerjs/sheets-hyper-link-ui`,Mn=`0.20.0`;let Nn=class extends u{constructor(e,t){super(),this._autoFillService=e,this._hyperLinkModel=t,this._initAutoFill()}_initAutoFill(){let e=()=>({redos:[],undos:[]}),t=(e,t)=>{let{source:n,target:r,unitId:i,subUnitId:a}=e,o=Me([n,r]),[s,c]=o.ranges,{mapFunc:l}=o,u={row:s.startRow,col:s.startColumn},d=re.getAutoFillRepeatRange(s,c),f=[],p=[];return d.forEach(e=>{let n=e.repeatStartCell,r=e.relativeRange,o={startRow:u.row,startColumn:u.col,endColumn:u.col,endRow:u.row},s={startRow:n.row,startColumn:n.col,endColumn:n.col,endRow:n.row};T.foreach(r,(e,n)=>{let r=E.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},o),{row:c,col:u}=l(r.startRow,r.startColumn),d=this._hyperLinkModel.getHyperLinkByLocation(i,a,c,u),m=E.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},s),{row:h,col:g}=l(m.startRow,m.startColumn),_=te(),v=this._hyperLinkModel.getHyperLinkByLocation(i,a,h,g);v&&f.push({id:At.id,params:{unitId:i,subUnitId:a,id:v.id}}),(A.COPY===t||A.SERIES===t)&&d&&(f.push({id:wt.id,params:{unitId:i,subUnitId:a,link:{...d,id:_,row:h,column:g}}}),p.push({id:At.id,params:{unitId:i,subUnitId:a,id:_}})),v&&p.push({id:wt.id,params:{unitId:i,subUnitId:a,link:v}})})}),{undos:p,redos:f}},n={id:yn,onFillData:(n,r,i)=>i===A.COPY||i===A.ONLY_FORMAT||i===A.SERIES?t(n,i):e()};this.disposeWithMe(this._autoFillService.addHook(n))}};Nn=q([K(0,ae),K(1,v(kt))],Nn);let Pn=class extends u{constructor(e,t,n){super(),this._localeService=e,this._commandService=t,this._sheetPermissionCheckController=n,this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{e.id===An.id&&(this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[me],rangeTypes:[N],worksheetTypes:[_e,ye,ve]})||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localeService.t(`permission.dialog.hyperLinkErr`)))}))}};Pn=q([K(0,v(x)),K(1,p),K(2,v(de))],Pn);let Fn=class extends u{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._hoverManagerService=e,this._sheetsHyperLinkPopupService=t,this._renderManagerService=n,this._permissionService=r,this._sheetPermissionCheckController=i,this._commandService=a,this._editorBridgeService=o,this._textSelectionManagerService=s,this._univerInstanceService=c,this._zenZoneService=l,this._initHoverListener(),this._initCommandListener(),this._initHoverEditingListener(),this._initTextSelectionListener(),this._initZenEditor()}_getLinkPermission(e){let{unitId:t,subUnitId:n,row:r,col:i}=e,a=this._univerInstanceService.getUnit(t,O.UNIVER_SHEET),o=a==null?void 0:a.getSheetBySheetId(n);if(!o)return{viewPermission:!1,editPermission:!1,copyPermission:!1};let s=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[he],worksheetTypes:[P],rangeTypes:[se]},[{startRow:r,startColumn:i,endRow:r,endColumn:i}],t,n),c=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[me],worksheetTypes:[_e,ve],rangeTypes:[N]},[{startRow:r,startColumn:i,endRow:r,endColumn:i}],t,n),l=o.getCellRaw(r,i);l!=null&&l.f&&l.f.startsWith(`=HYPERLINK(`)&&(c=!1);let u=this._permissionService.composePermission([new pe(t).id,new ge(t,n).id]).every(e=>e.value);return{viewPermission:s,editPermission:c,copyPermission:u}}_initHoverListener(){this.disposeWithMe(this._hoverManagerService.currentRichText$.pipe(ot(200)).subscribe(e=>{var t,n,i;if(!e||((t=e.customRange)==null?void 0:t.rangeType)!==r.HYPERLINK){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let{unitId:a,subUnitId:o,row:s,col:c}=e,l=this._renderManagerService.getRenderById(a);if(!l)return;let u=this._univerInstanceService.getUnit(a,O.UNIVER_SHEET),d=u==null?void 0:u.getSheetBySheetId(o);if(!d)return;if(!l.with(I).active){this._sheetsHyperLinkPopupService.hideCurrentPopup(G.VIEWING);return}let f=l==null||(n=l.with(De).getSkeletonParam(o))==null?void 0:n.skeleton,p=c,m=s,h=m,g=p;f&&f.overflowCache.forValue((e,t,n)=>{E.contains(n,{startColumn:p,endColumn:p,startRow:m,endRow:m})&&(h=e,g=t)});let{viewPermission:_,editPermission:v,copyPermission:y}=this._getLinkPermission(e);if(!_){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let b=d.getCellStyleOnly(h,g),x=u.getStyles().getStyleByCell(b),S=x==null||(i=x.tr)==null?void 0:i.a;if(!S&&!e.customRange){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}this._sheetsHyperLinkPopupService.showPopup({row:h,col:g,editPermission:v,copyPermission:y,customRange:e.customRange,customRangeRect:e.rect,type:G.VIEWING,unitId:a,subUnitId:o,showAll:!!S})}))}_initHoverEditingListener(){let e=null;this.disposeWithMe(this._editorBridgeService.currentEditCellState$.pipe(ct(e=>this._editorBridgeService.visible$.pipe(st(t=>({visible:t,state:e}))))).subscribe(({visible:t,state:n})=>{if(!n||n.editorUnitId!==a)return;if(!t.visible){e==null||e.unsubscribe(),this._sheetsHyperLinkPopupService.hideCurrentPopup(G.EDITING),this._sheetsHyperLinkPopupService.endEditing(G.EDITING);return}let{editorUnitId:i,unitId:o,sheetId:s,row:c,column:l}=n,u=this._renderManagerService.getRenderById(i);if(!u)return;let{editPermission:d,viewPermission:f,copyPermission:p}=this._getLinkPermission({unitId:o,subUnitId:s,row:c,col:l}),m=u.with(Le);f&&(e==null||e.unsubscribe(),e=m.hoverCustomRanges$.pipe(ot(200)).subscribe(e=>{var t;let n=e.find(e=>e.range.rangeType===r.HYPERLINK);if(!n){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let i=n.rects[n.rects.length-1];if(!(!((t=this._renderManagerService.getRenderById(o))==null||(t=t.with(De).getSkeletonParam(s))==null)&&t.skeleton)||!i)return;let a=u.engine.getCanvasElement().getBoundingClientRect();this._sheetsHyperLinkPopupService.showPopup({unitId:o,subUnitId:s,row:c,col:l,customRange:n.range,customRangeRect:{left:i.left+a.left,top:i.top+a.top,bottom:i.bottom+a.top,right:i.right+a.left},editPermission:d,copyPermission:p,type:G.EDITING})}))})),this.disposeWithMe(()=>{e==null||e.unsubscribe()})}_initZenEditor(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e?(this._sheetsHyperLinkPopupService.hideCurrentPopup(G.VIEWING),this._sheetsHyperLinkPopupService.hideCurrentPopup(G.EDITING),this._sheetsHyperLinkPopupService.endEditing(G.EDITING),this._sheetsHyperLinkPopupService.hideCurrentPopup(G.VIEWING)):(this._sheetsHyperLinkPopupService.hideCurrentPopup(G.ZEN_EDITOR),this._sheetsHyperLinkPopupService.endEditing(G.ZEN_EDITOR))})),this.disposeWithMe(this._univerInstanceService.focused$.pipe(ct(e=>{let t=e===o?this._renderManagerService.getRenderById(e):null;return t?t.with(Le).hoverCustomRanges$.pipe(ot(200)):new rt(e=>{e.next(null)})})).subscribe(e=>{let t=e==null?void 0:e.find(e=>e.range.rangeType===r.HYPERLINK),n=this._editorBridgeService.getEditCellState();if(t&&n){let{unitId:e,sheetId:r,row:i,column:a}=n,{editPermission:o,viewPermission:s,copyPermission:c}=this._getLinkPermission({unitId:e,subUnitId:r,row:i,col:a});s&&this._sheetsHyperLinkPopupService.showPopup({type:G.ZEN_EDITOR,unitId:e,subUnitId:r,row:i,col:a,customRange:t.range,editPermission:o,copyPermission:c})}else this._sheetsHyperLinkPopupService.hideCurrentPopup(G.ZEN_EDITOR)}))}_initTextSelectionListener(){this.disposeWithMe(this._textSelectionManagerService.textSelection$.subscribe(e=>{e&&e.unitId===a&&this._sheetsHyperLinkPopupService.endEditing(G.EDITING)}))}_initCommandListener(){let e=[j.id,ie.id,M.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{e.includes(t.id)&&this._sheetsHyperLinkPopupService.hideCurrentPopup()}))}};Fn=q([K(0,v(F)),K(1,v(X)),K(2,v(Ve)),K(3,v(g)),K(4,v(de)),K(5,p),K(6,L),K(7,v(Pe)),K(8,_),K(9,Je)],Fn);let In=class extends u{constructor(e,t){super(),this._context=e,this._hyperLinkModel=t,this._initSkeletonChange()}_initSkeletonChange(){let e=()=>{var e;(e=this._context.mainComponent)==null||e.makeForceDirty()};this.disposeWithMe(this._hyperLinkModel.linkUpdate$.pipe(ot(16)).subscribe(()=>{e()}))}};In=q([K(1,v(kt))],In);let Ln=class extends u{constructor(e,t){super(),this._sheetInterceptorService=e,this._hyperLinkModel=t,this._initViewModelIntercept()}_initViewModelIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(oe.CELL_CONTENT,{effect:b.Value,priority:100,handler:(e,t,n)=>{let{row:r,col:i,unitId:a,subUnitId:o}=t,s=this._hyperLinkModel.getHyperLinkByLocation(a,o,r,i);return s&&e?(e===t.rawData&&(e={...t.rawData}),e.linkUrl=s.payload,e.linkId=s.id,n(e)):n(e)}}))}};Ln=q([K(0,v(ue)),K(1,v(kt))],Ln);const Rn={[Qe.MEDIA]:{[Q.id]:{order:1,menuItemFactory:On},[wn(Q.id)]:{order:1,menuItemFactory:kn}},[We.MAIN_AREA]:{[Ue.OTHERS]:{order:1,[Q.id]:{order:0,menuItemFactory:Tn},[wn(Q.id)]:{order:0,menuItemFactory:En}}}};let zn=class extends u{constructor(e,t,n,r,i){super(),this._componentManager=e,this._commandService=t,this._menuManagerService=n,this._injector=r,this._shortcutService=i,this._initComponents(),this._initCommands(),this._initMenus(),this._initShortCut()}_initComponents(){[[un.componentKey,un],[sn.componentKey,sn],[`LinkIcon`,Ht]].forEach(([e,t])=>{this._componentManager.register(e,t)})}_initCommands(){[gn,_n,vn,Q].forEach(e=>{this._commandService.registerCommand(e)})}_initMenus(){this._menuManagerService.mergeMenu(Rn)}_initShortCut(){this._shortcutService.registerShortcut(An)}};zn=q([K(0,v(He)),K(1,p),K(2,Ge),K(3,v(y)),K(4,v(qe))],zn);let Bn=class extends u{constructor(e,t){super(),this._parserService=e,this._resolverService=t,this._handleInitUrl()}_handleInitUrl(){let e=location.hash;if(e){let t=this._parserService.parseHyperLink(e);this._resolverService.navigate(t)}}};Bn=q([K(0,v(jt)),K(1,v(J))],Bn);let $=class extends C{constructor(e=Qt,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{menu:r,...i}=ne({},Qt,this._config);r&&this._configService.setConfig(`menu`,r,{merge:!0}),this._configService.setConfig(Zt,i)}onStarting(){[[J],[X],[rn],[Ln],[Fn],[zn],[Nn],[bn],[Pn],[Bn]].forEach(e=>this._injector.add(e)),this._injector.get(Ln)}onReady(){this._injector.get(Ve).registerRenderModule(O.UNIVER_SHEET,[In]),this._injector.get(Nn),this._injector.get(bn),this._injector.get(zn)}onRendered(){this._injector.get(Pn),this._injector.get(Bn),this._injector.get(Fn)}};Y($,`pluginName`,yn),Y($,`packageName`,jn),Y($,`version`,Mn),Y($,`type`,O.UNIVER_SHEET),$=q([l(Mt,ze),K(1,v(y)),K(2,m)],$);export{_n as CloseHyperLinkPopupOperation,vn as InsertHyperLinkOperation,An as InsertLinkShortcut,gn as OpenHyperLinkEditPanelOperation,bn as SheetsHyperLinkCopyPasteController,X as SheetsHyperLinkPopupService,J as SheetsHyperLinkResolverService,rn as SheetsHyperLinkSidePanelService,$ as UniverSheetsHyperLinkUIPlugin};
1
+ import{BuildTextUtils as e,ColorKit as t,CommandType as n,CustomRangeType as r,DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY as i,DOCS_NORMAL_EDITOR_UNIT_ID_KEY as a,DOCS_ZEN_EDITOR_UNIT_ID_KEY as o,DataStreamTreeTokenType as s,DataValidationType as c,DependentOn as l,Disposable as u,DisposableCollection as d,FOCUSING_SHEET as f,ICommandService as p,IConfigService as m,IContextService as h,IPermissionService as g,IUniverInstanceService as _,Inject as v,Injector as y,LocaleService as b,ObjectMatrix as x,Plugin as S,RANGE_TYPE as C,Range as w,Rectangle as T,ThemeService as ee,Tools as te,UniverInstanceType as E,generateRandomId as D,isValidRange as O,merge as k}from"@univerjs/core";import{AUTO_FILL_APPLY_TYPE as A,AutoFillTools as j,ClearSelectionAllCommand as ne,ClearSelectionContentCommand as re,ClearSelectionFormatCommand as M,IAutoFillService as N,RangeProtectionPermissionEditPoint as ie,RangeProtectionPermissionViewPoint as ae,SetSelectionsOperation as oe,SetWorksheetActiveOperation as se,SheetPermissionCheckController as ce,SheetsSelectionsService as le,WorkbookCopyPermission as ue,WorkbookEditablePermission as de,WorkbookViewPermission as fe,WorksheetCopyPermission as pe,WorksheetEditPermission as me,WorksheetInsertHyperlinkPermission as he,WorksheetSetCellValuePermission as ge,WorksheetViewPermission as _e,getSheetCommandTarget as ve,rangeToDiscreteRange as ye}from"@univerjs/sheets";import{COPY_TYPE as P,HoverManagerService as be,HoverRenderController as xe,IEditorBridgeService as F,IMarkSelectionService as Se,ISheetClipboardService as Ce,PREDEFINED_HOOK_NAME_PASTE as I,ScrollToRangeOperation as we,SheetCanvasPopManagerService as L,SheetSkeletonManagerService as Te,getCurrentRangeDisable$ as R,getCustomRangePosition as Ee,getEditingCustomRangePosition as De,getRepeatRange as Oe,virtualizeDiscreteRanges as ke,whenSheetEditorFocused as Ae}from"@univerjs/sheets-ui";import{DocSelectionManagerService as je}from"@univerjs/docs";import{DocBackScrollRenderController as Me,DocCanvasPopManagerService as Ne,DocEventManagerService as Pe,DocSelectionRenderService as Fe,UniverDocsUIPlugin as Ie,calcDocRangePositions as Le}from"@univerjs/docs-ui";import{IRenderManagerService as Re}from"@univerjs/engine-render";import{ComponentManager as ze,ContextMenuGroup as Be,ContextMenuPosition as Ve,IMenuManagerService as He,IMessageService as Ue,IShortcutService as We,IZenZoneService as Ge,KeyCode as Ke,MenuItemType as qe,MetaKeys as Je,RibbonInsertGroup as Ye,getMenuHiddenObservable as Xe,useDependency as z,useEvent as Ze,useObservable as Qe}from"@univerjs/ui";import{BehaviorSubject as $e,Observable as et,Subject as tt,combineLatest as nt,debounceTime as rt,map as it,of as B,switchMap as at}from"rxjs";import{Button as ot,FormLayout as st,Input as ct,MessageType as lt,Select as ut,Tooltip as dt,borderClassName as ft,clsx as pt}from"@univerjs/design";import{IDefinedNamesService as mt,deserializeRangeWithSheet as ht,serializeRange as gt,serializeRangeToRefString as _t,serializeRangeWithSheet as vt}from"@univerjs/engine-formula";import{RangeSelector as yt}from"@univerjs/sheets-formula-ui";import{AddHyperLinkCommand as bt,AddHyperLinkMutation as xt,AddRichHyperLinkCommand as St,CancelHyperLinkCommand as Ct,CancelRichHyperLinkCommand as wt,ERROR_RANGE as Tt,HyperLinkModel as Et,RemoveHyperLinkMutation as Dt,SheetHyperLinkType as V,SheetsHyperLinkParserService as Ot,UniverSheetsHyperLinkPlugin as kt,UpdateHyperLinkCommand as At,UpdateRichHyperLinkCommand as jt}from"@univerjs/sheets-hyper-link";import{useCallback as Mt,useEffect as H,useMemo as Nt,useRef as Pt,useState as U}from"react";import{Fragment as Ft,jsx as W,jsxs as It}from"react/jsx-runtime";import{AllBorderIcon as Lt,CopyIcon as Rt,LinkIcon as zt,UnlinkIcon as Bt,WriteIcon as Vt,XlsxMultiIcon as Ht}from"@univerjs/icons";import{SheetDataValidationModel as Ut}from"@univerjs/sheets-data-validation";let G=function(e){return e.EDITING=`editing`,e.VIEWING=`viewing`,e.ZEN_EDITOR=`zen_mode`,e}({});function Wt(e){return te.isLegalUrl(e)}function Gt(e){return/^[a-zA-Z]+:\/\//.test(e)}function Kt(e){return/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(e)}function qt(e){if(Wt(e)){let t=Gt(e)?e:Kt(e)?`mailto://${e}`:`http://${e}`,n;try{n=new URL(t)}catch{return e}return n.hostname===location.hostname&&n.port===location.port&&n.protocol===location.protocol&&n.pathname===location.pathname&&n.hash&&!n.search?n.hash:t}return e}const Jt=`sheets-hyper-link-ui.config`;Symbol(Jt);const Yt={};function K(e,t){return function(n,r){t(n,r,e)}}function q(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function Xt(e,t){let n=t.getMergeData(),r=t.getMaxColumns()-1,i=t.getMaxRows()-1;if(r<e.endColumn&&(e.endColumn=r),i<e.endRow&&(e.endRow=i),e.rangeType===C.COLUMN||C.ROW)return e;let a=[];return n.forEach(t=>{T.intersects(e,t)&&a.push(t)}),T.realUnion(e,...a)}let J=class{constructor(e,t,n,r,i,a){this._univerInstanceService=e,this._commandService=t,this._definedNamesService=n,this._messageService=r,this._localeService=i,this._configService=a}navigate(e){switch(e.type){case V.URL:this.navigateToOtherWebsite(e.url);break;default:this._navigateToUniver(e.searchObj)}}_navigateToUniver(e){let{gid:t,range:n,rangeid:r}=e,i=this._univerInstanceService.getCurrentUnitForType(E.UNIVER_SHEET);if(!i)return;let a=i.getUnitId();if(r){let e=this._definedNamesService.getValueById(a,r);if(!e)return;let{formulaOrRefString:t}=e,n=this._definedNamesService.getWorksheetByRef(a,t);if(!n){this._messageService.show({content:this._localeService.t(`hyperLink.message.refError`),type:lt.Error});return}if(n.isSheetHidden()){this._messageService.show({content:this._localeService.t(`hyperLink.message.hiddenSheet`),type:lt.Error});return}this.navigateToDefineName(a,r)}if(t){if(n){let e=ht(n);O(e.range)&&n!==Tt&&this.navigateToRange(a,t,e.range);return}this.navigateToSheetById(a,t)}}async navigateToRange(e,t,n,r){let i=await this.navigateToSheetById(e,t);if(i){let a=Xt(n,i);await this._commandService.executeCommand(oe.id,{unitId:e,subUnitId:t,selections:[{range:a,primary:null}]}),await this._commandService.executeCommand(we.id,{range:a,forceTop:r})}}async navigateToSheetById(e,t){let n=this._univerInstanceService.getUnit(e,E.UNIVER_SHEET);if(!n)return!1;let r=n.getActiveSheet();if(!r)return!1;if(r.getSheetId()===t)return r;let i=n.getSheetBySheetId(t);return i?n.getHiddenWorksheets().indexOf(t)>-1?(this._messageService.show({content:this._localeService.t(`hyperLink.message.hiddenSheet`),type:lt.Error}),!1):await this._commandService.executeCommand(se.id,{unitId:e,subUnitId:t})?i:!1:(this._messageService.show({content:this._localeService.t(`hyperLink.message.noSheet`),type:lt.Error}),!1)}async navigateToDefineName(e,t){return this._definedNamesService.focusRange(e,t),!0}async navigateToOtherWebsite(e){var t;let n=this._configService.getConfig(Jt);if(!(n==null||(t=n.urlHandler)==null)&&t.navigateToOtherWebsite)return n.urlHandler.navigateToOtherWebsite(e);window.open(e,`_blank`,`noopener noreferrer`)}};J=q([K(0,_),K(1,p),K(2,mt),K(3,Ue),K(4,v(b)),K(5,m)],J);function Zt(e){"@babel/helpers - typeof";return Zt=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Zt(e)}function Qt(e,t){if(Zt(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Zt(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function $t(e){var t=Qt(e,`string`);return Zt(t)==`symbol`?t:t+``}function Y(e,t,n){return(t=$t(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var en=class extends u{constructor(...e){super(...e),Y(this,`_customHyperLinks`,new Map)}isBuiltInLinkType(e){return e!==V.URL}getOptions(){return Array.from(this._customHyperLinks.values()).map(({option:e})=>e)}findCustomHyperLink(e){return Array.from(this._customHyperLinks.values()).find(t=>t.match(e))}registerCustomHyperLink(e){this._customHyperLinks.set(e.type,e)}getCustomHyperLink(e){return this._customHyperLinks.get(e)}removeCustomHyperLink(e){let{_customHyperLinks:t}=this;t.delete(e)}dispose(){super.dispose(),this._customHyperLinks.clear()}};function tn(e){return e.trim().length===0}function nn(e,t){let[n]=e.split(`,`).map(ht);return!n||!O(n.range)?``:(n.sheetName||(n.sheetName=t),_t(n))}const rn=()=>{var n;let[i,a]=U(``),[c,l]=U(!1),[u,m]=U(``),[g,v]=U(!0),[y,x]=U(V.URL),[S,C]=U(``),w=z(b),T=z(mt),O=z(F),k=z(_),A=z(X),j=Qe(A.currentEditing$),ne=z(Ot),re=z(J),M=z(p),N=z(en),ie=Nt(()=>N.getOptions(),[N]),ae=z(Ge),ce=z(Re),ue=z(Se),de=z(je),fe=z(h),pe=z(ee),me=z(je),[he,ge]=U(!1),_e=z(le),ve=Nt(()=>_e.getCurrentSelections(),[]),ye=Nt(()=>{if(!N.isBuiltInLinkType(y))return N.getCustomHyperLink(y)},[N,y]),[P,be]=U(!1),[xe,Ce]=U(!1),I=Pt(!1),L=k.getCurrentUnitOfType(E.UNIVER_SHEET),Te=(L==null?void 0:L.getActiveSheet().getSheetId())||``,R=Mt(e=>{m(e.replaceAll(s.CUSTOM_RANGE_START,``).replaceAll(s.CUSTOM_RANGE_END,``))},[m]);H(()=>{if((j==null?void 0:j.row)!==void 0&&j.col!==void 0){let{customRange:y,row:b,col:S}=j,{label:w}=j;typeof w==`number`&&(w=`${w}`);let T;if(y){var t,n,i,o;T={id:(t=y==null?void 0:y.rangeId)==null?``:t,display:(n=w)==null?``:n,payload:(i=y==null||(o=y.properties)==null?void 0:o.url)==null?``:i,row:b,column:S}}else if(j.type===G.VIEWING){var s,c,l,u;let t=k.getUnit(j.unitId),n=t==null?void 0:t.getSheetBySheetId(j.subUnitId),i=n==null?void 0:n.getCellRaw(j.row,j.col),a=i==null||(s=i.p)==null||(s=s.body)==null||(s=s.customRanges)==null?void 0:s.find(e=>{var t;return e.rangeType===r.HYPERLINK&&((t=e.properties)==null?void 0:t.url)}),o=i==null?void 0:i.v;i&&(!e.transform.isEmptyDocument((c=i.p)==null||(c=c.body)==null?void 0:c.dataStream)||te.isDefine(o))&&v(!1),T={id:``,display:``,payload:(l=a==null||(u=a.properties)==null?void 0:u.url)==null?``:l,row:b,column:S}}else{var d,f,p,m,h;let t=k.getCurrentUnitForType(E.UNIVER_DOC),n=de.getActiveTextRange(),r=t==null?void 0:t.getBody(),i=n&&r?n:null,a=i&&((d=e.customRange.getCustomRangesInterestsWithSelection(i,(f=r==null?void 0:r.customRanges)==null?[]:f))==null?void 0:d[0]);v(!1),T={id:``,display:(p=w)==null?``:p,payload:(m=a==null||(h=a.properties)==null?void 0:h.url)==null?``:m,row:b,column:S}}a(T.id);let ee=N.findCustomHyperLink(T);if(ee){let e=ee.convert(T);x(e.type),C(e.payload),R(e.display);return}R(T.display);let D=ne.parseHyperLink(T.payload);switch(x(D.type===V.INVALID?V.RANGE:D.type),D.type){case V.URL:C(D.url),D.url===T.display&&(I.current=!0);break;case V.RANGE:{var g,_;let e=D.searchObj,t=vt(e.gid?(g=(_=k.getUnit(j.unitId))==null||(_=_.getSheetBySheetId(e.gid))==null?void 0:_.getName())==null?``:g:``,ht(e.range).range);C(t),t===T.display&&(I.current=!0);break}case V.SHEET:{let e=D.searchObj;C(e.gid);break}case V.DEFINE_NAME:{let e=D.searchObj;C(e.rangeid);break}default:C(``);break}}},[j,re,N,de,k]),H(()=>{let e=null;if(j&&!j.customRangeId&&j.type===G.VIEWING&&te.isDefine(j.row)&&te.isDefine(j.col)){let n=k.getUnit(j.unitId,E.UNIVER_SHEET),r=n==null?void 0:n.getSheetBySheetId(j.subUnitId),i=r==null?void 0:r.getMergedCell(j.row,j.col),a=new t(pe.getColorFromTheme(`primary.600`)).toRgb();e=ue.addShape({range:i==null?{startColumn:j.col,endColumn:j.col,startRow:j.row,endRow:j.row}:i,style:{fill:`rgb(${a.r}, ${a.g}, ${a.b}, 0.12)`,strokeWidth:1,stroke:`#FFBD37`,widgets:{}},primary:null},[],-1)}return()=>{e&&ue.removeShape(e)}},[j,ue,pe,k]),H(()=>{Ce(y===V.RANGE)},[y]),H(()=>{let e=(j==null?void 0:j.type)===G.ZEN_EDITOR?ce.getRenderById(o):ce.getRenderById(O.getCurrentEditorId()),t=new d;if(e){let n=e.with(Fe);n.setReserveRangesStatus(!0),t.add(()=>{n.setReserveRangesStatus(!1)})}return()=>{O.disableForceKeepVisible(),t.dispose()}},[j==null?void 0:j.type,O,ce]),H(()=>(xe&&A.setIsKeepVisible(xe),A.setIsKeepVisible(he),()=>{A.setIsKeepVisible(!1)}),[xe,he,A]),H(()=>()=>{ae.temporaryHidden&&(ae.show(),fe.setContextValue(f,!1))},[fe,ae]),H(()=>{if(xe)return O.enableForceKeepVisible(),()=>{O.disableForceKeepVisible()}},[xe,O]);let Ee=[{label:w.t(`hyperLink.form.link`),value:V.URL},{label:w.t(`hyperLink.form.range`),value:V.RANGE},{label:w.t(`hyperLink.form.worksheet`),value:V.SHEET},{label:w.t(`hyperLink.form.definedName`),value:V.DEFINE_NAME},...ie];if(!L)return;let De=L.getHiddenWorksheets(),Oe=L.getSheets().map(e=>({label:e.getName(),value:e.getSheetId()})).filter(e=>De.indexOf(e.value)===-1),ke=Object.values((n=T.getDefinedNameMap(L.getUnitId()))==null?{}:n).map(e=>({label:e.name,value:e.id})),Ae=(e,t)=>{if(e===V.URL)return qt(t);if(e===V.RANGE){let e=ht(t),n=L.getSheetBySheetName(e.sheetName);if(n)return`#gid=${n.getSheetId()}&range=${gt(e.range)}`}return`#${e}=${t}`},Ne=Ze(e=>{var t;let n=nn(e,((t=L.getActiveSheet())==null?void 0:t.getName())||``);if(!n){C(``);return}C(n),n&&(I.current||!u)&&(R(n),I.current=!0)}),Pe=async()=>{if(g&&tn(u)||!S||y===V.URL&&!Wt(S)){be(!0);return}if(j)if(i){let e=j.type===G.ZEN_EDITOR||j.type===G.EDITING?jt.id:At.id;await M.executeCommand(e,{id:i,unitId:j.unitId,subUnitId:j.subUnitId,payload:{display:g?u:``,payload:Ae(y,S)},row:j.row,column:j.col,documentId:j.type===G.ZEN_EDITOR?o:O.getCurrentEditorId()})}else{let e=j.type===G.ZEN_EDITOR||j.type===G.EDITING?St.id:bt.id;await M.executeCommand(e,{unitId:j.unitId,subUnitId:j.subUnitId,link:{id:D(),row:j.row,column:j.col,payload:Ae(y,S),display:g?u:``},documentId:j.type===G.ZEN_EDITOR?o:O.getCurrentEditorId()})}(j==null?void 0:j.type)===G.VIEWING&&(await M.executeCommand(se.id,{unitId:j.unitId,subUnitId:j.subUnitId}),await M.executeCommand(we.id,{range:{startRow:Math.max(j.row-1,0),endRow:j.row+1,startColumn:Math.max(j.col-1,0),endColumn:j.col+1}})),M.executeCommand(mn.id)};return j?It(`div`,{className:pt(`univer-box-border univer-w-[296px] univer-rounded-xl univer-bg-white univer-p-4 univer-shadow-md dark:!univer-bg-gray-900`,ft),children:[g?W(st,{label:w.t(`hyperLink.form.label`),error:P&&tn(u)?w.t(`hyperLink.form.inputError`):``,children:W(ct,{value:u,onChange:e=>{R(e),I.current=!1},placeholder:w.t(`hyperLink.form.labelPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===Ke.ENTER&&Pe()}})}):null,W(st,{label:w.t(`hyperLink.form.type`),children:W(ut,{className:`univer-w-full`,options:Ee,value:y,onChange:e=>{x(e),C(``)}})}),y===V.URL&&W(st,{error:P?S?Wt(S)?``:w.t(`hyperLink.form.linkError`):w.t(`hyperLink.form.inputError`):``,children:W(ct,{value:S,onChange:e=>{C(e),e&&(I.current||!u||u===e)&&(R(e),I.current=!0)},placeholder:w.t(`hyperLink.form.linkPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===Ke.ENTER&&Pe()}})}),y===V.RANGE&&W(st,{error:P&&!S?w.t(`hyperLink.form.inputError`):``,children:W(yt,{unitId:L.getUnitId(),subUnitId:Te,maxRangeCount:1,supportAcrossSheet:!0,initialValue:S,resetRange:ve,onChange:(e,t)=>Ne(t),onRangeSelectorDialogVisibleChange:async e=>{if(ge(e),e)j.type===G.ZEN_EDITOR&&(ae.hide(),fe.setContextValue(f,!0)),j.type!==G.VIEWING&&O.enableForceKeepVisible(),l(!0);else{if(await re.navigateToRange(j.unitId,j.subUnitId,{startRow:j.row,endRow:j.row,startColumn:j.col,endColumn:j.col},!0),j.type===G.ZEN_EDITOR){var t,n;await M.executeCommand(oe.id,{unitId:j.unitId,subUnitId:j.subUnitId,selections:[{range:{startRow:j.row,endRow:j.row,startColumn:j.col,endColumn:j.col}}]}),ae.show(),fe.setContextValue(f,!1);let e=(t=ce.getRenderById(o))==null?void 0:t.with(Me),r=(n=me.getTextRanges({unitId:o,subUnitId:o}))==null?void 0:n[0];e&&r&&(e.scrollToRange(r),me.refreshSelection({unitId:o,subUnitId:o}))}O.disableForceKeepVisible(),l(!1)}},onFocusChange:e=>Ce(e)})}),y===V.SHEET&&W(st,{error:P&&!S?w.t(`hyperLink.form.selectError`):``,children:W(ut,{className:`univer-w-full`,options:Oe,value:S,onChange:e=>{var t,n;C(e);let r=(t=Oe.find(t=>t.value===e))==null?void 0:t.label,i=(n=Oe.find(e=>e.value===S))==null?void 0:n.label;r&&(I.current||!u||u===i)&&(R(r),I.current=!0)}})}),y===V.DEFINE_NAME&&W(st,{error:P&&!S?w.t(`hyperLink.form.selectError`):``,children:W(ut,{className:`univer-w-full`,options:ke,value:S,onChange:e=>{var t,n;C(e);let r=(t=ke.find(t=>t.value===e))==null?void 0:t.label,i=(n=ke.find(e=>e.value===S))==null?void 0:n.label;r&&(I.current||!u||u===i)&&(R(r),I.current=!0)}})}),(ye==null?void 0:ye.Form)&&W(ye.Form,{linkId:i,payload:S,display:u,showError:P,setByPayload:I,setDisplay:e=>{R(e),I.current=!0},setPayload:C}),It(`div`,{className:`univer-flex univer-flex-row univer-justify-end univer-gap-2`,children:[W(ot,{onClick:()=>{j&&re.navigateToRange(j.unitId,j.subUnitId,{startRow:j.row,endRow:j.row,startColumn:j.col,endColumn:j.col},!0),M.executeCommand(mn.id)},children:w.t(`hyperLink.form.cancel`)}),W(ot,{variant:`primary`,onClick:async()=>{Pe()},children:w.t(`hyperLink.form.ok`)})]})]}):null};rn.componentKey=`univer.sheet.cell-link-edit`;const an={[V.URL]:W(zt,{}),[V.SHEET]:W(Ht,{className:`univer-text-green-500`}),[V.RANGE]:W(Lt,{}),[V.DEFINE_NAME]:W(Lt,{}),[V.INVALID]:W(Lt,{})},on=e=>{var t,n;let r=z(X),i=z(p),a=z(Ue),s=z(b),c=z(J),l=z(F),u=z(Ot),d=z(Ge),{customRange:f,row:m,col:h,unitId:g,subUnitId:_,editPermission:v,copyPermission:y,type:x}=e;if(!(!(f==null||(t=f.properties)==null)&&t.url))return null;let S=u.parseHyperLink((n=f.properties.url)==null?``:n),C=S.type===V.INVALID;return It(`div`,{className:pt(`univer-mb-1 univer-flex univer-max-w-80 univer-flex-row univer-items-center univer-justify-between univer-overflow-hidden univer-rounded-lg univer-bg-white univer-p-3 univer-shadow-md dark:!univer-bg-gray-900`,ft),onClick:()=>r.hideCurrentPopup(),children:[It(`div`,{className:pt(`univer-flex univer-h-6 univer-flex-1 univer-cursor-pointer univer-flex-row univer-items-center univer-truncate univer-text-sm univer-leading-5 univer-text-primary-600`,{"univer-text-red-500":C}),onClick:()=>{d.visible||C||c.navigate(S)},children:[W(`div`,{className:`univer-mr-2 univer-flex univer-size-5 univer-flex-none univer-items-center univer-justify-center univer-text-base univer-text-gray-900 dark:!univer-text-white`,children:an[S.type]}),W(dt,{showIfEllipsis:!0,title:S.name,asChild:!0,children:W(`span`,{className:`univer-flex-1 univer-truncate`,children:S.name})})]}),It(`div`,{className:`univer-flex univer-h-6 univer-flex-none univer-flex-row univer-items-center univer-justify-center`,children:[y&&W(`div`,{className:pt(`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,{"univer-text-red-500":C}),onClick:()=>{if(!C){if(S.type!==V.URL){let e=new URL(window.location.href);e.hash=S.url.slice(1),navigator.clipboard.writeText(e.href)}else navigator.clipboard.writeText(S.url);a.show({content:s.t(`hyperLink.message.coped`),type:lt.Info})}},children:W(dt,{placement:`bottom`,title:s.t(`hyperLink.popup.copy`),children:W(Rt,{className:`dark:!univer-text-white`})})}),v&&It(Ft,{children:[W(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{i.executeCommand(pn.id,{unitId:g,subUnitId:_,row:m,col:h,customRangeId:f.rangeId,type:x})},children:W(dt,{placement:`bottom`,title:s.t(`hyperLink.popup.edit`),children:W(Vt,{className:`dark:!univer-text-white`})})}),W(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{let e=x===G.EDITING||x===G.ZEN_EDITOR?wt.id:Ct.id;i.syncExecuteCommand(e,{unitId:g,subUnitId:_,id:f.rangeId,row:m,column:h,documentId:x===G.ZEN_EDITOR?o:l.getCurrentEditorId()})&&r.hideCurrentPopup(void 0,!0)},children:W(dt,{placement:`bottom`,title:s.t(`hyperLink.popup.cancel`),children:W(Bt,{className:`dark:!univer-text-white`})})})]})]})]})},sn=()=>{let e=z(X),[t,n]=U(null),r=z(_);if(H(()=>{n(e.currentPopup);let t=e.currentPopup$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[e.currentPopup,e.currentPopup$]),!t)return null;if(t.showAll){var i;let e=r.getUnit(t.unitId,E.UNIVER_SHEET),n=e==null?void 0:e.getSheetBySheetId(t.subUnitId),a=n==null?void 0:n.getCell(t.row,t.col),o=a==null||(i=a.p)==null||(i=i.body)==null?void 0:i.customRanges;return o!=null&&o.length?W(`div`,{children:o.map(e=>W(on,{...t,customRange:e},e.rangeId))}):null}return W(on,{...t})};sn.componentKey=`univer.sheet.cell-link-popup`;const cn=(e,t)=>{var n,r;return e.unitId===t.unitId&&e.subUnitId===t.subUnitId&&e.row===t.row&&e.col===t.col&&((n=e.customRange)==null?void 0:n.rangeId)===((r=t.customRange)==null?void 0:r.rangeId)&&e.type===t.type};let X=class extends u{get currentPopup(){return this._currentPopup}get currentEditing(){return this._currentEditing$.getValue()}constructor(e,t,n,r,i,a,o){super(),this._sheetCanvasPopManagerService=e,this._injector=t,this._univerInstanceService=n,this._editorBridgeService=r,this._textSelectionManagerService=i,this._docCanvasPopManagerService=a,this._zenZoneService=o,Y(this,`_currentPopup`,null),Y(this,`_currentPopup$`,new tt),Y(this,`currentPopup$`,this._currentPopup$.asObservable()),Y(this,`_currentEditingPopup`,null),Y(this,`_currentEditing$`,new $e(null)),Y(this,`currentEditing$`,this._currentEditing$.asObservable()),Y(this,`_isKeepVisible`,!1),this.disposeWithMe(()=>{this.hideCurrentPopup(),this.endEditing(),this._currentEditing$.complete(),this._currentPopup$.complete()})}setIsKeepVisible(e){this._isKeepVisible=e}getIsKeepVisible(){return this._isKeepVisible}showPopup(e){if(this._currentPopup&&cn(e,this._currentPopup)||(this.hideCurrentPopup(void 0,!0),e.type!==G.ZEN_EDITOR&&this._zenZoneService.visible))return;let t=this._currentEditing$.getValue();if(t&&cn(e,t))return;let{unitId:n,subUnitId:r,row:i,col:a,customRangeRect:s,customRange:c}=e,l,u={componentKey:sn.componentKey,direction:`bottom`,onClickOutside:()=>{this.hideCurrentPopup()},onClick:()=>{this.hideCurrentPopup(e.type,!0)}};if(e.type===G.EDITING){if(!c)return;l=s&&this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(s,u)}else if(e.type===G.ZEN_EDITOR){if(!c)return;l=this._docCanvasPopManagerService.attachPopupToRange({startOffset:c.startIndex,endOffset:c.endIndex+1,collapsed:!1},u,o)}else if(e.showAll)l=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,u,n,r);else{if(!c)return;l=s&&this._sheetCanvasPopManagerService.attachPopupByPosition(s,u,e)}if(l){if(this._currentPopup){var d;(d=this._currentPopup.disposable)==null||d.dispose()}this._currentPopup={unitId:n,subUnitId:r,disposable:l,row:i,col:a,editPermission:!!e.editPermission,copyPermission:!!e.copyPermission,customRange:c,type:e.type,showAll:e.showAll},this._currentPopup$.next(this._currentPopup)}}hideCurrentPopup(e,t){if(this._currentPopup&&((!e||e===this._currentPopup.type)&&this._currentPopup.disposable.canDispose()||t)){var n;(n=this._currentPopup)==null||(n=n.disposable)==null||n.dispose(),this._currentPopup=null,this._currentPopup$.next(null)}}dispose(){super.dispose(),this.hideCurrentPopup(),this.endEditing(),this._currentPopup$.complete(),this._currentEditing$.complete()}_getEditingRange(){let t=this._editorBridgeService.isVisible().visible,n=this._editorBridgeService.getEditCellState();if(t&&n){var i,a,o;let t=this._textSelectionManagerService.getActiveTextRange(),s=(i=n.documentLayoutObject.documentModel)==null?void 0:i.getBody();if(!s)return null;if(!t||t.collapsed)return{startOffset:0,endOffset:s.dataStream.length-2,collapsed:s.dataStream.length-2==0,label:e.transform.getPlainText(s.dataStream)};let c=e.customRange.getCustomRangesInterestsWithSelection(t,(a=(o=s.customRanges)==null?void 0:o.filter(e=>e.rangeType===r.HYPERLINK))==null?[]:a),l=t.startOffset,u=t.endOffset;return c.forEach(e=>{l=Math.min(l,e.startIndex),u=Math.max(u,e.endIndex+1)}),{startOffset:l,endOffset:u,collapsed:l===u,label:e.transform.getPlainText(s.dataStream.slice(l,u))}}return null}get _editPopup(){return{componentKey:rn.componentKey,direction:`vertical`,onClickOutside:()=>{this.endEditing()},onContextMenu:()=>{this.endEditing()},hiddenType:`hide`}}startAddEditing(t){let{unitId:n,subUnitId:r,type:i}=t;if(i===G.ZEN_EDITOR){var s;let e=this._univerInstanceService.getUnit(o,E.UNIVER_DOC);if(!e)return;let n=this._textSelectionManagerService.getActiveTextRange();if(!n)return;this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange(n,this._editPopup,o);let r=(s=e.getBody())==null?void 0:s.dataStream.slice(n.startOffset,n.endOffset);this._currentEditing$.next({...t,label:r})}else if(i===G.EDITING){var c;let e=this._getEditingRange();if(!e)return;this._textSelectionManagerService.replaceDocRanges([{...e}],{unitId:a,subUnitId:a});let i=this._injector.get(Re).getRenderById(a);if(!i)return;let o=Le(e,i);if(!(o!=null&&o.length))return;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(o.pop(),this._editPopup,n,r),this._currentEditing$.next({...t,label:(c=e==null?void 0:e.label)==null?``:c})}else{var l,u,d;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(t.row,t.col,this._editPopup,n,r);let i=this._univerInstanceService.getUnit(n,E.UNIVER_SHEET),a=i==null?void 0:i.getSheetBySheetId(r),o=a==null?void 0:a.getCellRaw(t.row,t.col);this._currentEditing$.next({...t,label:o!=null&&o.p?e.transform.getPlainText((l=(u=o.p.body)==null?void 0:u.dataStream)==null?``:l):((d=o==null?void 0:o.v)==null?``:d).toString()})}}startEditing(e){var t;(t=this._currentEditingPopup)==null||t.dispose(),this.hideCurrentPopup(void 0,!0);let{unitId:n,subUnitId:r}=e,i,a;if(e.type===G.ZEN_EDITOR){var s,c;let t=this._univerInstanceService.getUnit(o,E.UNIVER_DOC);if(i=t==null||(s=t.getBody())==null||(s=s.customRanges)==null?void 0:s.find(t=>t.rangeId===e.customRangeId),a=i?t==null||(c=t.getBody())==null?void 0:c.dataStream.slice(i.startIndex,i.endIndex+1):``,!i||!a)return;this._textSelectionManagerService.replaceTextRanges([{startOffset:i.startIndex,endOffset:i.endIndex+1}]),this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange({startOffset:i.startIndex,endOffset:i.endIndex,collapsed:!1},this._editPopup,o)}else if(e.type===G.EDITING){var l;let t=De(this._injector,e.unitId,e.subUnitId,e.row,e.col,e.customRangeId);if(!t||!((l=t.rects)!=null&&l.length))return;i=t.customRange,a=t.label,this._textSelectionManagerService.replaceTextRanges([{startOffset:i.startIndex,endOffset:i.endIndex+1}]),this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(t.rects.pop(),this._editPopup,n,r)}else{var u;let t=this._univerInstanceService.getUnit(n,E.UNIVER_SHEET),o=t==null?void 0:t.getSheetBySheetId(r),s=o==null?void 0:o.getCellRaw(e.row,e.col),c=t==null?void 0:t.getStyles().getStyleByCell(s),l=c==null?void 0:c.tr,d=Ee(this._injector,e.unitId,e.subUnitId,e.row,e.col,e.customRangeId);if(!d||!((u=d.rects)!=null&&u.length))return;i=d.customRange,a=d.label,l?this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,this._editPopup,n,r):this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupByPosition(d.rects.pop(),this._editPopup,{unitId:n,subUnitId:r,row:e.row,col:e.col})}this._currentEditing$.next({...e,customRange:i,label:a})}endEditing(e){if(this.getIsKeepVisible())return;let t=this._currentEditing$.getValue();if(t&&(!e||e===t.type)){var n;(n=this._currentEditingPopup)==null||n.dispose(),this._currentEditing$.next(null)}}};X=q([K(0,v(L)),K(1,v(y)),K(2,_),K(3,F),K(4,v(je)),K(5,v(Ne)),K(6,Ge)],X);let Z=function(e){return e[e.ALLOWED=0]=`ALLOWED`,e[e.DISABLED_BY_CELL=1]=`DISABLED_BY_CELL`,e[e.ALLOW_ON_EDITING=2]=`ALLOW_ON_EDITING`,e}({});const ln=new Set([c.CHECKBOX,c.LIST,c.LIST_MULTIPLE]),un=(e,t,n,r)=>{var i,a;let o=t.getCell(n,r);if(o!=null&&o.f||o!=null&&o.si||!(o==null||(i=o.p)==null||(i=i.body)==null||(i=i.customBlocks)==null)&&i.length)return Z.DISABLED_BY_CELL;let s=e.has(Ut)?e.get(Ut):null,c=s==null?void 0:s.getRuleByLocation(t.getUnitId(),t.getSheetId(),n,r);return c&&ln.has(c.type)?!0:!(o==null||(a=o.p)==null||(a=a.drawingsOrder)==null)&&a.length?Z.ALLOW_ON_EDITING:Z.ALLOWED},dn=e=>{let t=e.get(_).getCurrentUnitForType(E.UNIVER_SHEET);if(!t)return!0;let n=t.getActiveSheet(),r=e.get(le).getCurrentSelections();if(!r.length)return!0;let i=r[0].range.startRow,a=r[0].range.startColumn;return un(e,n,i,a)===Z.DISABLED_BY_CELL},fn=e=>{let t=e.get(je),n=e.get(_),r=t.getTextRanges();if(!(r!=null&&r.length))return!0;let i=n.getCurrentUnitForType(E.UNIVER_DOC);return!!(!i||r.every(e=>e.collapsed)||!i.getSelfOrHeaderFooterModel(r[0].segmentId).getBody())},pn={type:n.OPERATION,id:`sheet.operation.open-hyper-link-edit-panel`,handler(e,t){if(!t)return!1;let n=e.get(X);return t.customRangeId?n.startEditing(t):n.startAddEditing(t),!0}},mn={type:n.OPERATION,id:`sheet.operation.close-hyper-link-popup`,handler(e){return e.get(X).endEditing(),!0}},hn={type:n.OPERATION,id:`sheet.operation.insert-hyper-link`,handler(e){var t;let n=e.get(_),r=ve(n),i=e.get(F);if(!r)return!1;let a=e.get(p),s=e.get(le).getCurrentLastSelection();if(!s)return!1;let c=s.range.startRow,l=s.range.startColumn,u=i.isVisible(),d=((t=n.getFocusedUnit())==null?void 0:t.getUnitId())===o;return a.executeCommand(pn.id,{unitId:r.unitId,subUnitId:r.subUnitId,row:c,col:l,type:d?G.ZEN_EDITOR:u.visible?G.EDITING:G.VIEWING})}},Q={type:n.OPERATION,id:`sheet.operation.insert-hyper-link-toolbar`,handler(e){if(dn(e))return!1;let t=e.get(p);return e.get(X).currentEditing?t.executeCommand(mn.id):t.executeCommand(hn.id)}},gn=`SHEET_HYPER_LINK_UI_PLUGIN`;let _n=class extends u{registerPlainTextFilter(e){this._plainTextFilter.add(e)}removePlainTextFilter(e){this._plainTextFilter.delete(e)}_filterPlainText(e){return Array.from(this._plainTextFilter).every(t=>t(e))}constructor(e,t,n,r){super(),this._sheetClipboardService=e,this._hyperLinkModel=t,this._injector=n,this._resolverService=r,Y(this,`_plainTextFilter`,new Set),Y(this,`_copyInfo`,void 0),this._initCopyPaste(),this.disposeWithMe(()=>{this._plainTextFilter.clear()})}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:gn,onBeforeCopy:(e,t,n)=>this._collect(e,t,n),onPasteCells:(e,t,n,r)=>{let{copyType:i=P.COPY,pasteType:a}=r,{range:o}=e||{},{range:s,unitId:c,subUnitId:l}=t;return this._generateMutations(s,{copyType:i,pasteType:a,copyRange:o,unitId:c,subUnitId:l})},onPastePlainText:(e,t)=>{let n=this._filterPlainText(t);if(Wt(t)&&n){let{range:t,unitId:n,subUnitId:r}=e,{ranges:[i],mapFunc:a}=ke([t]),o=[],s=[];return w.foreach(i,(e,t)=>{let{row:i,col:c}=a(e,t),l=this._hyperLinkModel.getHyperLinkByLocation(n,r,i,c);l&&o.push({id:Dt.id,params:{unitId:n,subUnitId:r,id:l.id}}),l&&s.push({id:xt.id,params:{unitId:n,subUnitId:r,link:l}})}),{redos:o,undos:s}}return{undos:[],redos:[]}},priority:99})}_collect(e,t,n){let r=new x;this._copyInfo={unitId:e,subUnitId:t,matrix:r};let i=this._injector.invoke(r=>ye(n,r,e,t));if(!i)return;let{rows:a,cols:o}=i;a.forEach((n,i)=>{o.forEach((a,o)=>{var s;let c=this._hyperLinkModel.getHyperLinkByLocation(e,t,n,a);r.setValue(i,o,(s=c==null?void 0:c.id)==null?``:s)})})}_generateMutations(e,t){if(!this._copyInfo||!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!t.copyRange||[I.SPECIAL_PASTE_COL_WIDTH,I.SPECIAL_PASTE_VALUE,I.SPECIAL_PASTE_FORMAT,I.SPECIAL_PASTE_FORMULA].includes(t.pasteType))return{redos:[],undos:[]};let{unitId:n,subUnitId:r}=this._copyInfo,i=[],a=[],{ranges:[o,s],mapFunc:c}=ke([t.copyRange,e]);return Oe(o,s,!0).forEach(({startRange:e})=>{var o;(o=this._copyInfo)==null||o.matrix.forValue((o,s,l)=>{let u=T.getPositionRange({startRow:o,endRow:o,startColumn:s,endColumn:s},e),d=this._hyperLinkModel.getHyperLink(n,r,l),{row:f,col:p}=c(u.startRow,u.startColumn),m=this._hyperLinkModel.getHyperLinkByLocation(t.unitId,t.subUnitId,f,p),h=D();m&&i.push({id:Dt.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,id:m.id}}),d&&(i.push({id:xt.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,link:{...d,id:h,row:f,column:p}}}),a.push({id:Dt.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,id:h}})),m&&a.push({id:xt.id,params:{unitId:t.unitId,subUnitId:t.subUnitId,link:m}})})}),{redos:i,undos:a}}};_n=q([K(0,Ce),K(1,v(Et)),K(2,v(y)),K(3,v(J))],_n);const vn=(e,t=o)=>{var n;let r=e.get(_),i=(n=e.get(Re).getRenderById(t))==null?void 0:n.with(Fe);return i?i.textSelectionInner$.pipe(it(()=>{let t=e.get(F).getEditCellState();if(!t)return!0;let n=ve(r,{unitId:t.unitId,subUnitId:t.sheetId});return!(n!=null&&n.worksheet)||un(e,n.worksheet,t.row,t.column)===1?!0:fn(e)})):B(!0)},yn=e=>{var t;let n=e.get(_),r=e.has(F)?e.get(F):null;return((t=r==null?void 0:r.currentEditCellState$.pipe(it(t=>{if(!t)return Z.DISABLED_BY_CELL;let r=ve(n,{unitId:t.unitId,subUnitId:t.sheetId});return r?un(e,r.worksheet,t.row,t.column):Z.DISABLED_BY_CELL}),at(t=>t===Z.DISABLED_BY_CELL?B(!0):nt([r?r.visible$:B(null),n.getCurrentTypeOfUnit$(E.UNIVER_DOC)]).pipe(at(([n,r])=>n!=null&&n.visible?(r==null?void 0:r.getUnitId())===i?B(!0):vn(e,a):B(t!==Z.ALLOWED))))))==null?B(!0):t).pipe(at(t=>t?B(!0):R(e,{workbookTypes:[de],worksheetTypes:[me,ge,he],rangeTypes:[ie]},!0)))},bn={commandId:hn.id,type:qe.BUTTON,title:`hyperLink.menu.add`,icon:`LinkIcon`},xn=e=>`${e}-zen-editor`,Sn=e=>({...bn,id:bn.commandId,hidden$:Xe(e,E.UNIVER_SHEET),disabled$:yn(e)}),Cn=e=>({...bn,id:xn(bn.commandId),hidden$:Xe(e,E.UNIVER_DOC,o),disabled$:vn(e)}),wn={tooltip:`hyperLink.form.addTitle`,commandId:Q.id,type:qe.BUTTON,icon:`LinkIcon`},Tn=e=>({...wn,id:wn.commandId,hidden$:Xe(e,E.UNIVER_SHEET),disabled$:yn(e)}),En=e=>({...wn,id:xn(wn.commandId),hidden$:Xe(e,E.UNIVER_DOC,o),disabled$:vn(e)}),Dn={id:Q.id,binding:Ke.K|Je.CTRL_COMMAND,preconditions:Ae};var On=`@univerjs/sheets-hyper-link-ui`,kn=`0.20.1`;let An=class extends u{constructor(e,t){super(),this._autoFillService=e,this._hyperLinkModel=t,this._initAutoFill()}_initAutoFill(){let e=()=>({redos:[],undos:[]}),t=(e,t)=>{let{source:n,target:r,unitId:i,subUnitId:a}=e,o=ke([n,r]),[s,c]=o.ranges,{mapFunc:l}=o,u={row:s.startRow,col:s.startColumn},d=j.getAutoFillRepeatRange(s,c),f=[],p=[];return d.forEach(e=>{let n=e.repeatStartCell,r=e.relativeRange,o={startRow:u.row,startColumn:u.col,endColumn:u.col,endRow:u.row},s={startRow:n.row,startColumn:n.col,endColumn:n.col,endRow:n.row};w.foreach(r,(e,n)=>{let r=T.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},o),{row:c,col:u}=l(r.startRow,r.startColumn),d=this._hyperLinkModel.getHyperLinkByLocation(i,a,c,u),m=T.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},s),{row:h,col:g}=l(m.startRow,m.startColumn),_=D(),v=this._hyperLinkModel.getHyperLinkByLocation(i,a,h,g);v&&f.push({id:Dt.id,params:{unitId:i,subUnitId:a,id:v.id}}),(A.COPY===t||A.SERIES===t)&&d&&(f.push({id:xt.id,params:{unitId:i,subUnitId:a,link:{...d,id:_,row:h,column:g}}}),p.push({id:Dt.id,params:{unitId:i,subUnitId:a,id:_}})),v&&p.push({id:xt.id,params:{unitId:i,subUnitId:a,link:v}})})}),{undos:p,redos:f}},n={id:gn,onFillData:(n,r,i)=>i===A.COPY||i===A.ONLY_FORMAT||i===A.SERIES?t(n,i):e()};this.disposeWithMe(this._autoFillService.addHook(n))}};An=q([K(0,N),K(1,v(Et))],An);let jn=class extends u{constructor(e,t,n){super(),this._localeService=e,this._commandService=t,this._sheetPermissionCheckController=n,this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{e.id===Dn.id&&(this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[de],rangeTypes:[ie],worksheetTypes:[me,ge,he]})||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localeService.t(`permission.dialog.hyperLinkErr`)))}))}};jn=q([K(0,v(b)),K(1,p),K(2,v(ce))],jn);let Mn=class extends u{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._hoverManagerService=e,this._sheetsHyperLinkPopupService=t,this._renderManagerService=n,this._permissionService=r,this._sheetPermissionCheckController=i,this._commandService=a,this._editorBridgeService=o,this._textSelectionManagerService=s,this._univerInstanceService=c,this._zenZoneService=l,this._initHoverListener(),this._initCommandListener(),this._initHoverEditingListener(),this._initTextSelectionListener(),this._initZenEditor()}_getLinkPermission(e){let{unitId:t,subUnitId:n,row:r,col:i}=e,a=this._univerInstanceService.getUnit(t,E.UNIVER_SHEET),o=a==null?void 0:a.getSheetBySheetId(n);if(!o)return{viewPermission:!1,editPermission:!1,copyPermission:!1};let s=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[fe],worksheetTypes:[_e],rangeTypes:[ae]},[{startRow:r,startColumn:i,endRow:r,endColumn:i}],t,n),c=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[de],worksheetTypes:[me,he],rangeTypes:[ie]},[{startRow:r,startColumn:i,endRow:r,endColumn:i}],t,n),l=o.getCellRaw(r,i);l!=null&&l.f&&l.f.startsWith(`=HYPERLINK(`)&&(c=!1);let u=this._permissionService.composePermission([new ue(t).id,new pe(t,n).id]).every(e=>e.value);return{viewPermission:s,editPermission:c,copyPermission:u}}_initHoverListener(){this.disposeWithMe(this._hoverManagerService.currentRichText$.pipe(rt(200)).subscribe(e=>{var t,n,i;if(!e||((t=e.customRange)==null?void 0:t.rangeType)!==r.HYPERLINK){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let{unitId:a,subUnitId:o,row:s,col:c}=e,l=this._renderManagerService.getRenderById(a);if(!l)return;let u=this._univerInstanceService.getUnit(a,E.UNIVER_SHEET),d=u==null?void 0:u.getSheetBySheetId(o);if(!d)return;if(!l.with(xe).active){this._sheetsHyperLinkPopupService.hideCurrentPopup(G.VIEWING);return}let f=l==null||(n=l.with(Te).getSkeletonParam(o))==null?void 0:n.skeleton,p=c,m=s,h=m,g=p;f&&f.overflowCache.forValue((e,t,n)=>{T.contains(n,{startColumn:p,endColumn:p,startRow:m,endRow:m})&&(h=e,g=t)});let{viewPermission:_,editPermission:v,copyPermission:y}=this._getLinkPermission(e);if(!_){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let b=d.getCellStyleOnly(h,g),x=u.getStyles().getStyleByCell(b),S=x==null||(i=x.tr)==null?void 0:i.a;if(!S&&!e.customRange){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}this._sheetsHyperLinkPopupService.showPopup({row:h,col:g,editPermission:v,copyPermission:y,customRange:e.customRange,customRangeRect:e.rect,type:G.VIEWING,unitId:a,subUnitId:o,showAll:!!S})}))}_initHoverEditingListener(){let e=null;this.disposeWithMe(this._editorBridgeService.currentEditCellState$.pipe(at(e=>this._editorBridgeService.visible$.pipe(it(t=>({visible:t,state:e}))))).subscribe(({visible:t,state:n})=>{if(!n||n.editorUnitId!==a)return;if(!t.visible){e==null||e.unsubscribe(),this._sheetsHyperLinkPopupService.hideCurrentPopup(G.EDITING),this._sheetsHyperLinkPopupService.endEditing(G.EDITING);return}let{editorUnitId:i,unitId:o,sheetId:s,row:c,column:l}=n,u=this._renderManagerService.getRenderById(i);if(!u)return;let{editPermission:d,viewPermission:f,copyPermission:p}=this._getLinkPermission({unitId:o,subUnitId:s,row:c,col:l}),m=u.with(Pe);f&&(e==null||e.unsubscribe(),e=m.hoverCustomRanges$.pipe(rt(200)).subscribe(e=>{var t;let n=e.find(e=>e.range.rangeType===r.HYPERLINK);if(!n){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let i=n.rects[n.rects.length-1];if(!(!((t=this._renderManagerService.getRenderById(o))==null||(t=t.with(Te).getSkeletonParam(s))==null)&&t.skeleton)||!i)return;let a=u.engine.getCanvasElement().getBoundingClientRect();this._sheetsHyperLinkPopupService.showPopup({unitId:o,subUnitId:s,row:c,col:l,customRange:n.range,customRangeRect:{left:i.left+a.left,top:i.top+a.top,bottom:i.bottom+a.top,right:i.right+a.left},editPermission:d,copyPermission:p,type:G.EDITING})}))})),this.disposeWithMe(()=>{e==null||e.unsubscribe()})}_initZenEditor(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e?(this._sheetsHyperLinkPopupService.hideCurrentPopup(G.VIEWING),this._sheetsHyperLinkPopupService.hideCurrentPopup(G.EDITING),this._sheetsHyperLinkPopupService.endEditing(G.EDITING),this._sheetsHyperLinkPopupService.hideCurrentPopup(G.VIEWING)):(this._sheetsHyperLinkPopupService.hideCurrentPopup(G.ZEN_EDITOR),this._sheetsHyperLinkPopupService.endEditing(G.ZEN_EDITOR))})),this.disposeWithMe(this._univerInstanceService.focused$.pipe(at(e=>{let t=e===o?this._renderManagerService.getRenderById(e):null;return t?t.with(Pe).hoverCustomRanges$.pipe(rt(200)):new et(e=>{e.next(null)})})).subscribe(e=>{let t=e==null?void 0:e.find(e=>e.range.rangeType===r.HYPERLINK),n=this._editorBridgeService.getEditCellState();if(t&&n){let{unitId:e,sheetId:r,row:i,column:a}=n,{editPermission:o,viewPermission:s,copyPermission:c}=this._getLinkPermission({unitId:e,subUnitId:r,row:i,col:a});s&&this._sheetsHyperLinkPopupService.showPopup({type:G.ZEN_EDITOR,unitId:e,subUnitId:r,row:i,col:a,customRange:t.range,editPermission:o,copyPermission:c})}else this._sheetsHyperLinkPopupService.hideCurrentPopup(G.ZEN_EDITOR)}))}_initTextSelectionListener(){this.disposeWithMe(this._textSelectionManagerService.textSelection$.subscribe(e=>{e&&e.unitId===a&&this._sheetsHyperLinkPopupService.endEditing(G.EDITING)}))}_initCommandListener(){let e=[re.id,ne.id,M.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{e.includes(t.id)&&this._sheetsHyperLinkPopupService.hideCurrentPopup()}))}};Mn=q([K(0,v(be)),K(1,v(X)),K(2,v(Re)),K(3,v(g)),K(4,v(ce)),K(5,p),K(6,F),K(7,v(je)),K(8,_),K(9,Ge)],Mn);let Nn=class extends u{constructor(e,t){super(),this._context=e,this._hyperLinkModel=t,this._initSkeletonChange()}_initSkeletonChange(){let e=()=>{var e;(e=this._context.mainComponent)==null||e.makeForceDirty()};this.disposeWithMe(this._hyperLinkModel.linkUpdate$.pipe(rt(16)).subscribe(()=>{e()}))}};Nn=q([K(1,v(Et))],Nn);const Pn={[Ye.MEDIA]:{[Q.id]:{order:1,menuItemFactory:Tn},[xn(Q.id)]:{order:1,menuItemFactory:En}},[Ve.MAIN_AREA]:{[Be.OTHERS]:{order:1,[Q.id]:{order:0,menuItemFactory:Sn},[xn(Q.id)]:{order:0,menuItemFactory:Cn}}}};let Fn=class extends u{constructor(e,t,n,r,i){super(),this._componentManager=e,this._commandService=t,this._menuManagerService=n,this._injector=r,this._shortcutService=i,this._initComponents(),this._initCommands(),this._initMenus(),this._initShortCut()}_initComponents(){[[sn.componentKey,sn],[rn.componentKey,rn],[`LinkIcon`,zt]].forEach(([e,t])=>{this._componentManager.register(e,t)})}_initCommands(){[pn,mn,hn,Q].forEach(e=>{this._commandService.registerCommand(e)})}_initMenus(){this._menuManagerService.mergeMenu(Pn)}_initShortCut(){this._shortcutService.registerShortcut(Dn)}};Fn=q([K(0,v(ze)),K(1,p),K(2,He),K(3,v(y)),K(4,v(We))],Fn);let In=class extends u{constructor(e,t){super(),this._parserService=e,this._resolverService=t,this._handleInitUrl()}_handleInitUrl(){let e=location.hash;if(e){let t=this._parserService.parseHyperLink(e);this._resolverService.navigate(t)}}};In=q([K(0,v(Ot)),K(1,v(J))],In);let $=class extends S{constructor(e=Yt,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{menu:r,...i}=k({},Yt,this._config);r&&this._configService.setConfig(`menu`,r,{merge:!0}),this._configService.setConfig(Jt,i)}onStarting(){[[J],[X],[en],[Mn],[Fn],[An],[_n],[jn],[In]].forEach(e=>this._injector.add(e))}onReady(){this._injector.get(Re).registerRenderModule(E.UNIVER_SHEET,[Nn]),this._injector.get(An),this._injector.get(_n),this._injector.get(Fn)}onRendered(){this._injector.get(jn),this._injector.get(In),this._injector.get(Mn)}};Y($,`pluginName`,gn),Y($,`packageName`,On),Y($,`version`,kn),Y($,`type`,E.UNIVER_SHEET),$=q([l(kt,Ie),K(1,v(y)),K(2,m)],$);export{mn as CloseHyperLinkPopupOperation,hn as InsertHyperLinkOperation,Dn as InsertLinkShortcut,pn as OpenHyperLinkEditPanelOperation,_n as SheetsHyperLinkCopyPasteController,X as SheetsHyperLinkPopupService,J as SheetsHyperLinkResolverService,en as SheetsHyperLinkSidePanelService,$ as UniverSheetsHyperLinkUIPlugin};
@@ -16,7 +16,6 @@
16
16
  import type { Workbook } from '@univerjs/core';
17
17
  import type { IRenderContext, IRenderModule } from '@univerjs/engine-render';
18
18
  import { Disposable } from '@univerjs/core';
19
- import { SheetInterceptorService } from '@univerjs/sheets';
20
19
  import { HyperLinkModel } from '@univerjs/sheets-hyper-link';
21
20
  export declare class SheetsHyperLinkRenderController extends Disposable implements IRenderModule {
22
21
  private readonly _context;
@@ -24,9 +23,3 @@ export declare class SheetsHyperLinkRenderController extends Disposable implemen
24
23
  constructor(_context: IRenderContext<Workbook>, _hyperLinkModel: HyperLinkModel);
25
24
  private _initSkeletonChange;
26
25
  }
27
- export declare class SheetsHyperLinkRenderManagerController extends Disposable {
28
- private readonly _sheetInterceptorService;
29
- private readonly _hyperLinkModel;
30
- constructor(_sheetInterceptorService: SheetInterceptorService, _hyperLinkModel: HyperLinkModel);
31
- private _initViewModelIntercept;
32
- }
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/sheets`),require(`@univerjs/sheets-ui`),require(`@univerjs/docs`),require(`@univerjs/docs-ui`),require(`@univerjs/engine-render`),require(`@univerjs/ui`),require(`rxjs`),require(`@univerjs/design`),require(`@univerjs/engine-formula`),require(`@univerjs/sheets-formula-ui`),require(`@univerjs/sheets-hyper-link`),require(`react`),require(`react/jsx-runtime`),require(`@univerjs/sheets-data-validation`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/sheets`,`@univerjs/sheets-ui`,`@univerjs/docs`,`@univerjs/docs-ui`,`@univerjs/engine-render`,`@univerjs/ui`,`rxjs`,`@univerjs/design`,`@univerjs/engine-formula`,`@univerjs/sheets-formula-ui`,`@univerjs/sheets-hyper-link`,`react`,`react/jsx-runtime`,`@univerjs/sheets-data-validation`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsHyperLinkUi={},e.UniverCore,e.UniverSheets,e.UniverSheetsUi,e.UniverDocs,e.UniverDocsUi,e.UniverEngineRender,e.UniverUi,e.rxjs,e.UniverDesign,e.UniverEngineFormula,e.UniverSheetsFormulaUi,e.UniverSheetsHyperLink,e.React,e.React,e.UniverSheetsDataValidation))})(this,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let g=function(e){return e.EDITING=`editing`,e.VIEWING=`viewing`,e.ZEN_EDITOR=`zen_mode`,e}({});function _(e){return t.Tools.isLegalUrl(e)}function v(e){return/^[a-zA-Z]+:\/\//.test(e)}function y(e){return/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(e)}function b(e){if(_(e)){let t=v(e)?e:y(e)?`mailto://${e}`:`http://${e}`,n;try{n=new URL(t)}catch{return e}return n.hostname===location.hostname&&n.port===location.port&&n.protocol===location.protocol&&n.pathname===location.pathname&&n.hash&&!n.search?n.hash:t}return e}let x=`sheets-hyper-link-ui.config`;Symbol(x);let S={};function C(e,t){return function(n,r){t(n,r,e)}}function w(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function T(e,n){let r=n.getMergeData(),i=n.getMaxColumns()-1,a=n.getMaxRows()-1;if(i<e.endColumn&&(e.endColumn=i),a<e.endRow&&(e.endRow=a),e.rangeType===t.RANGE_TYPE.COLUMN||t.RANGE_TYPE.ROW)return e;let o=[];return r.forEach(n=>{t.Rectangle.intersects(e,n)&&o.push(n)}),t.Rectangle.realUnion(e,...o)}let E=class{constructor(e,t,n,r,i,a){this._univerInstanceService=e,this._commandService=t,this._definedNamesService=n,this._messageService=r,this._localeService=i,this._configService=a}navigate(e){switch(e.type){case f.SheetHyperLinkType.URL:this.navigateToOtherWebsite(e.url);break;default:this._navigateToUniver(e.searchObj)}}_navigateToUniver(e){let{gid:n,range:r,rangeid:i}=e,a=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!a)return;let o=a.getUnitId();if(i){let e=this._definedNamesService.getValueById(o,i);if(!e)return;let{formulaOrRefString:t}=e,n=this._definedNamesService.getWorksheetByRef(o,t);if(!n){this._messageService.show({content:this._localeService.t(`hyperLink.message.refError`),type:l.MessageType.Error});return}if(n.isSheetHidden()){this._messageService.show({content:this._localeService.t(`hyperLink.message.hiddenSheet`),type:l.MessageType.Error});return}this.navigateToDefineName(o,i)}if(n){if(r){let e=(0,u.deserializeRangeWithSheet)(r);(0,t.isValidRange)(e.range)&&r!==f.ERROR_RANGE&&this.navigateToRange(o,n,e.range);return}this.navigateToSheetById(o,n)}}async navigateToRange(e,t,i,a){let o=await this.navigateToSheetById(e,t);if(o){let s=T(i,o);await this._commandService.executeCommand(n.SetSelectionsOperation.id,{unitId:e,subUnitId:t,selections:[{range:s,primary:null}]}),await this._commandService.executeCommand(r.ScrollToRangeOperation.id,{range:s,forceTop:a})}}async navigateToSheetById(e,r){let i=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;let a=i.getActiveSheet();if(!a)return!1;if(a.getSheetId()===r)return a;let o=i.getSheetBySheetId(r);return o?i.getHiddenWorksheets().indexOf(r)>-1?(this._messageService.show({content:this._localeService.t(`hyperLink.message.hiddenSheet`),type:l.MessageType.Error}),!1):await this._commandService.executeCommand(n.SetWorksheetActiveOperation.id,{unitId:e,subUnitId:r})?o:!1:(this._messageService.show({content:this._localeService.t(`hyperLink.message.noSheet`),type:l.MessageType.Error}),!1)}async navigateToDefineName(e,t){return this._definedNamesService.focusRange(e,t),!0}async navigateToOtherWebsite(e){var t;let n=this._configService.getConfig(x);if(!(n==null||(t=n.urlHandler)==null)&&t.navigateToOtherWebsite)return n.urlHandler.navigateToOtherWebsite(e);window.open(e,`_blank`,`noopener noreferrer`)}};E=w([C(0,t.IUniverInstanceService),C(1,t.ICommandService),C(2,u.IDefinedNamesService),C(3,s.IMessageService),C(4,(0,t.Inject)(t.LocaleService)),C(5,t.IConfigService)],E);function D(e){"@babel/helpers - typeof";return D=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},D(e)}function O(e,t){if(D(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(D(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function k(e){var t=O(e,`string`);return D(t)==`symbol`?t:t+``}function A(e,t,n){return(t=k(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ee=class extends t.Disposable{constructor(...e){super(...e),A(this,`_customHyperLinks`,new Map)}isBuiltInLinkType(e){return e!==f.SheetHyperLinkType.URL}getOptions(){return Array.from(this._customHyperLinks.values()).map(({option:e})=>e)}findCustomHyperLink(e){return Array.from(this._customHyperLinks.values()).find(t=>t.match(e))}registerCustomHyperLink(e){this._customHyperLinks.set(e.type,e)}getCustomHyperLink(e){return this._customHyperLinks.get(e)}removeCustomHyperLink(e){let{_customHyperLinks:t}=this;t.delete(e)}dispose(){super.dispose(),this._customHyperLinks.clear()}};function te(e){return e.trim().length===0}function ne(e,n){let[r]=e.split(`,`).map(u.deserializeRangeWithSheet);return!r||!(0,t.isValidRange)(r.range)?``:(r.sheetName||(r.sheetName=n),(0,u.serializeRangeToRefString)(r))}let re=()=>{var e;let[c,h]=(0,p.useState)(``),[v,y]=(0,p.useState)(!1),[x,S]=(0,p.useState)(``),[C,w]=(0,p.useState)(!0),[T,D]=(0,p.useState)(f.SheetHyperLinkType.URL),[O,k]=(0,p.useState)(``),A=(0,s.useDependency)(t.LocaleService),re=(0,s.useDependency)(u.IDefinedNamesService),j=(0,s.useDependency)(r.IEditorBridgeService),M=(0,s.useDependency)(t.IUniverInstanceService),N=(0,s.useDependency)(H),P=(0,s.useObservable)(N.currentEditing$),ie=(0,s.useDependency)(f.SheetsHyperLinkParserService),ae=(0,s.useDependency)(E),F=(0,s.useDependency)(t.ICommandService),I=(0,s.useDependency)(ee),oe=(0,p.useMemo)(()=>I.getOptions(),[I]),L=(0,s.useDependency)(s.IZenZoneService),R=(0,s.useDependency)(o.IRenderManagerService),se=(0,s.useDependency)(r.IMarkSelectionService),ce=(0,s.useDependency)(i.DocSelectionManagerService),z=(0,s.useDependency)(t.IContextService),le=(0,s.useDependency)(t.ThemeService),ue=(0,s.useDependency)(i.DocSelectionManagerService),[de,fe]=(0,p.useState)(!1),pe=(0,s.useDependency)(n.SheetsSelectionsService),B=(0,p.useMemo)(()=>pe.getCurrentSelections(),[]),V=(0,p.useMemo)(()=>{if(!I.isBuiltInLinkType(T))return I.getCustomHyperLink(T)},[I,T]),[U,me]=(0,p.useState)(!1),[W,he]=(0,p.useState)(!1),G=(0,p.useRef)(!1),K=M.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET),J=(K==null?void 0:K.getActiveSheet().getSheetId())||``,Y=(0,p.useCallback)(e=>{S(e.replaceAll(t.DataStreamTreeTokenType.CUSTOM_RANGE_START,``).replaceAll(t.DataStreamTreeTokenType.CUSTOM_RANGE_END,``))},[S]);(0,p.useEffect)(()=>{if((P==null?void 0:P.row)!==void 0&&P.col!==void 0){let{customRange:b,row:x,col:S}=P,{label:C}=P;typeof C==`number`&&(C=`${C}`);let T;if(b){var e,n,r,i;T={id:(e=b==null?void 0:b.rangeId)==null?``:e,display:(n=C)==null?``:n,payload:(r=b==null||(i=b.properties)==null?void 0:i.url)==null?``:r,row:x,column:S}}else if(P.type===g.VIEWING){var a,o,s,c;let e=M.getUnit(P.unitId),n=e==null?void 0:e.getSheetBySheetId(P.subUnitId),r=n==null?void 0:n.getCellRaw(P.row,P.col),i=r==null||(a=r.p)==null||(a=a.body)==null||(a=a.customRanges)==null?void 0:a.find(e=>{var n;return e.rangeType===t.CustomRangeType.HYPERLINK&&((n=e.properties)==null?void 0:n.url)}),l=r==null?void 0:r.v;r&&(!t.BuildTextUtils.transform.isEmptyDocument((o=r.p)==null||(o=o.body)==null?void 0:o.dataStream)||t.Tools.isDefine(l))&&w(!1),T={id:``,display:``,payload:(s=i==null||(c=i.properties)==null?void 0:c.url)==null?``:s,row:x,column:S}}else{var l,d,p,m,_;let e=M.getCurrentUnitForType(t.UniverInstanceType.UNIVER_DOC),n=ce.getActiveTextRange(),r=e==null?void 0:e.getBody(),i=n&&r?n:null,a=i&&((l=t.BuildTextUtils.customRange.getCustomRangesInterestsWithSelection(i,(d=r==null?void 0:r.customRanges)==null?[]:d))==null?void 0:l[0]);w(!1),T={id:``,display:(p=C)==null?``:p,payload:(m=a==null||(_=a.properties)==null?void 0:_.url)==null?``:m,row:x,column:S}}h(T.id);let E=I.findCustomHyperLink(T);if(E){let e=E.convert(T);D(e.type),k(e.payload),Y(e.display);return}Y(T.display);let O=ie.parseHyperLink(T.payload);switch(D(O.type===f.SheetHyperLinkType.INVALID?f.SheetHyperLinkType.RANGE:O.type),O.type){case f.SheetHyperLinkType.URL:k(O.url),O.url===T.display&&(G.current=!0);break;case f.SheetHyperLinkType.RANGE:{var v,y;let e=O.searchObj,t=(0,u.serializeRangeWithSheet)(e.gid?(v=(y=M.getUnit(P.unitId))==null||(y=y.getSheetBySheetId(e.gid))==null?void 0:y.getName())==null?``:v:``,(0,u.deserializeRangeWithSheet)(e.range).range);k(t),t===T.display&&(G.current=!0);break}case f.SheetHyperLinkType.SHEET:{let e=O.searchObj;k(e.gid);break}case f.SheetHyperLinkType.DEFINE_NAME:{let e=O.searchObj;k(e.rangeid);break}default:k(``);break}}},[P,ae,I,ce,M]),(0,p.useEffect)(()=>{let e=null;if(P&&!P.customRangeId&&P.type===g.VIEWING&&t.Tools.isDefine(P.row)&&t.Tools.isDefine(P.col)){let n=M.getUnit(P.unitId,t.UniverInstanceType.UNIVER_SHEET),r=n==null?void 0:n.getSheetBySheetId(P.subUnitId),i=r==null?void 0:r.getMergedCell(P.row,P.col),a=new t.ColorKit(le.getColorFromTheme(`primary.600`)).toRgb();e=se.addShape({range:i==null?{startColumn:P.col,endColumn:P.col,startRow:P.row,endRow:P.row}:i,style:{fill:`rgb(${a.r}, ${a.g}, ${a.b}, 0.12)`,strokeWidth:1,stroke:`#FFBD37`,widgets:{}},primary:null},[],-1)}return()=>{e&&se.removeShape(e)}},[P,se,le,M]),(0,p.useEffect)(()=>{he(T===f.SheetHyperLinkType.RANGE)},[T]),(0,p.useEffect)(()=>{let e=(P==null?void 0:P.type)===g.ZEN_EDITOR?R.getRenderById(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY):R.getRenderById(j.getCurrentEditorId()),n=new t.DisposableCollection;if(e){let t=e.with(a.DocSelectionRenderService);t.setReserveRangesStatus(!0),n.add(()=>{t.setReserveRangesStatus(!1)})}return()=>{j.disableForceKeepVisible(),n.dispose()}},[P==null?void 0:P.type,j,R]),(0,p.useEffect)(()=>(W&&N.setIsKeepVisible(W),N.setIsKeepVisible(de),()=>{N.setIsKeepVisible(!1)}),[W,de,N]),(0,p.useEffect)(()=>()=>{L.temporaryHidden&&(L.show(),z.setContextValue(t.FOCUSING_SHEET,!1))},[z,L]),(0,p.useEffect)(()=>{if(W)return j.enableForceKeepVisible(),()=>{j.disableForceKeepVisible()}},[W,j]);let ge=[{label:A.t(`hyperLink.form.link`),value:f.SheetHyperLinkType.URL},{label:A.t(`hyperLink.form.range`),value:f.SheetHyperLinkType.RANGE},{label:A.t(`hyperLink.form.worksheet`),value:f.SheetHyperLinkType.SHEET},{label:A.t(`hyperLink.form.definedName`),value:f.SheetHyperLinkType.DEFINE_NAME},...oe];if(!K)return;let X=K.getHiddenWorksheets(),Z=K.getSheets().map(e=>({label:e.getName(),value:e.getSheetId()})).filter(e=>X.indexOf(e.value)===-1),_e=Object.values((e=re.getDefinedNameMap(K.getUnitId()))==null?{}:e).map(e=>({label:e.name,value:e.id})),Q=(e,t)=>{if(e===f.SheetHyperLinkType.URL)return b(t);if(e===f.SheetHyperLinkType.RANGE){let e=(0,u.deserializeRangeWithSheet)(t),n=K.getSheetBySheetName(e.sheetName);if(n)return`#gid=${n.getSheetId()}&range=${(0,u.serializeRange)(e.range)}`}return`#${e}=${t}`},ve=(0,s.useEvent)(e=>{var t;let n=ne(e,((t=K.getActiveSheet())==null?void 0:t.getName())||``);if(!n){k(``);return}k(n),n&&(G.current||!x)&&(Y(n),G.current=!0)}),ye=async()=>{if(C&&te(x)||!O||T===f.SheetHyperLinkType.URL&&!_(O)){me(!0);return}if(P)if(c){let e=P.type===g.ZEN_EDITOR||P.type===g.EDITING?f.UpdateRichHyperLinkCommand.id:f.UpdateHyperLinkCommand.id;await F.executeCommand(e,{id:c,unitId:P.unitId,subUnitId:P.subUnitId,payload:{display:C?x:``,payload:Q(T,O)},row:P.row,column:P.col,documentId:P.type===g.ZEN_EDITOR?t.DOCS_ZEN_EDITOR_UNIT_ID_KEY:j.getCurrentEditorId()})}else{let e=P.type===g.ZEN_EDITOR||P.type===g.EDITING?f.AddRichHyperLinkCommand.id:f.AddHyperLinkCommand.id;await F.executeCommand(e,{unitId:P.unitId,subUnitId:P.subUnitId,link:{id:(0,t.generateRandomId)(),row:P.row,column:P.col,payload:Q(T,O),display:C?x:``},documentId:P.type===g.ZEN_EDITOR?t.DOCS_ZEN_EDITOR_UNIT_ID_KEY:j.getCurrentEditorId()})}(P==null?void 0:P.type)===g.VIEWING&&(await F.executeCommand(n.SetWorksheetActiveOperation.id,{unitId:P.unitId,subUnitId:P.subUnitId}),await F.executeCommand(r.ScrollToRangeOperation.id,{range:{startRow:Math.max(P.row-1,0),endRow:P.row+1,startColumn:Math.max(P.col-1,0),endColumn:P.col+1}})),F.executeCommand(q.id)};return P?(0,m.jsxs)(`div`,{className:(0,l.clsx)(`univer-box-border univer-w-[296px] univer-rounded-xl univer-bg-white univer-p-4 univer-shadow-md dark:!univer-bg-gray-900`,l.borderClassName),children:[C?(0,m.jsx)(l.FormLayout,{label:A.t(`hyperLink.form.label`),error:U&&te(x)?A.t(`hyperLink.form.inputError`):``,children:(0,m.jsx)(l.Input,{value:x,onChange:e=>{Y(e),G.current=!1},placeholder:A.t(`hyperLink.form.labelPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===s.KeyCode.ENTER&&ye()}})}):null,(0,m.jsx)(l.FormLayout,{label:A.t(`hyperLink.form.type`),children:(0,m.jsx)(l.Select,{className:`univer-w-full`,options:ge,value:T,onChange:e=>{D(e),k(``)}})}),T===f.SheetHyperLinkType.URL&&(0,m.jsx)(l.FormLayout,{error:U?O?_(O)?``:A.t(`hyperLink.form.linkError`):A.t(`hyperLink.form.inputError`):``,children:(0,m.jsx)(l.Input,{value:O,onChange:e=>{k(e),e&&(G.current||!x||x===e)&&(Y(e),G.current=!0)},placeholder:A.t(`hyperLink.form.linkPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===s.KeyCode.ENTER&&ye()}})}),T===f.SheetHyperLinkType.RANGE&&(0,m.jsx)(l.FormLayout,{error:U&&!O?A.t(`hyperLink.form.inputError`):``,children:(0,m.jsx)(d.RangeSelector,{unitId:K.getUnitId(),subUnitId:J,maxRangeCount:1,supportAcrossSheet:!0,initialValue:O,resetRange:B,onChange:(e,t)=>ve(t),onRangeSelectorDialogVisibleChange:async e=>{if(fe(e),e)P.type===g.ZEN_EDITOR&&(L.hide(),z.setContextValue(t.FOCUSING_SHEET,!0)),P.type!==g.VIEWING&&j.enableForceKeepVisible(),y(!0);else{if(await ae.navigateToRange(P.unitId,P.subUnitId,{startRow:P.row,endRow:P.row,startColumn:P.col,endColumn:P.col},!0),P.type===g.ZEN_EDITOR){var r,i;await F.executeCommand(n.SetSelectionsOperation.id,{unitId:P.unitId,subUnitId:P.subUnitId,selections:[{range:{startRow:P.row,endRow:P.row,startColumn:P.col,endColumn:P.col}}]}),L.show(),z.setContextValue(t.FOCUSING_SHEET,!1);let e=(r=R.getRenderById(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY))==null?void 0:r.with(a.DocBackScrollRenderController),o=(i=ue.getTextRanges({unitId:t.DOCS_ZEN_EDITOR_UNIT_ID_KEY,subUnitId:t.DOCS_ZEN_EDITOR_UNIT_ID_KEY}))==null?void 0:i[0];e&&o&&(e.scrollToRange(o),ue.refreshSelection({unitId:t.DOCS_ZEN_EDITOR_UNIT_ID_KEY,subUnitId:t.DOCS_ZEN_EDITOR_UNIT_ID_KEY}))}j.disableForceKeepVisible(),y(!1)}},onFocusChange:e=>he(e)})}),T===f.SheetHyperLinkType.SHEET&&(0,m.jsx)(l.FormLayout,{error:U&&!O?A.t(`hyperLink.form.selectError`):``,children:(0,m.jsx)(l.Select,{className:`univer-w-full`,options:Z,value:O,onChange:e=>{var t,n;k(e);let r=(t=Z.find(t=>t.value===e))==null?void 0:t.label,i=(n=Z.find(e=>e.value===O))==null?void 0:n.label;r&&(G.current||!x||x===i)&&(Y(r),G.current=!0)}})}),T===f.SheetHyperLinkType.DEFINE_NAME&&(0,m.jsx)(l.FormLayout,{error:U&&!O?A.t(`hyperLink.form.selectError`):``,children:(0,m.jsx)(l.Select,{className:`univer-w-full`,options:_e,value:O,onChange:e=>{var t,n;k(e);let r=(t=_e.find(t=>t.value===e))==null?void 0:t.label,i=(n=_e.find(e=>e.value===O))==null?void 0:n.label;r&&(G.current||!x||x===i)&&(Y(r),G.current=!0)}})}),(V==null?void 0:V.Form)&&(0,m.jsx)(V.Form,{linkId:c,payload:O,display:x,showError:U,setByPayload:G,setDisplay:e=>{Y(e),G.current=!0},setPayload:k}),(0,m.jsxs)(`div`,{className:`univer-flex univer-flex-row univer-justify-end univer-gap-2`,children:[(0,m.jsx)(l.Button,{onClick:()=>{P&&ae.navigateToRange(P.unitId,P.subUnitId,{startRow:P.row,endRow:P.row,startColumn:P.col,endColumn:P.col},!0),F.executeCommand(q.id)},children:A.t(`hyperLink.form.cancel`)}),(0,m.jsx)(l.Button,{variant:`primary`,onClick:async()=>{ye()},children:A.t(`hyperLink.form.ok`)})]})]}):null};re.componentKey=`univer.sheet.cell-link-edit`;function j({ref:e,...t}){let{icon:n,id:r,className:i,extend:a,...o}=t,s=`univerjs-icon univerjs-icon-${r} ${i||``}`.trim(),c=(0,p.useRef)(`_${ie()}`);return M(n,`${r}`,{defIds:n.defIds,idSuffix:c.current},{ref:e,className:s,...o},a)}function M(e,t,n,r,i){return(0,p.createElement)(e.tag,{key:t,...N(e,n,i),...r},(P(e,n).children||[]).map((r,a)=>M(r,`${t}-${e.tag}-${a}`,n,void 0,i)))}function N(e,t,n){let r={...e.attrs};n!=null&&n.colorChannel1&&r.fill===`colorChannel1`&&(r.fill=n.colorChannel1),e.tag===`mask`&&r.id&&(r.id+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{e===`mask`&&typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});let{defIds:i}=t;return!i||i.length===0?r:(e.tag===`use`&&r[`xlink:href`]&&(r[`xlink:href`]+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))}),r)}function P(e,t){var n;let{defIds:r}=t;return!r||r.length===0?e:e.tag===`defs`&&(n=e.children)!=null&&n.length?{...e,children:e.children.map(e=>typeof e.attrs.id==`string`&&r&&r.includes(e.attrs.id)?{...e,attrs:{...e.attrs,id:e.attrs.id+t.idSuffix}}:e)}:e}function ie(){return Math.random().toString(36).substring(2,8)}j.displayName=`UniverIcon`;let ae={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M7.9999 1.12915C8.03875 1.12915 8.07673 1.13284 8.11352 1.13989H12.2599C13.6958 1.13989 14.8599 2.30395 14.8599 3.73989V7.88619C14.867 7.92301 14.8707 7.96102 14.8707 7.9999C14.8707 8.03878 14.867 8.0768 14.8599 8.11362V12.2599C14.8599 13.6958 13.6958 14.8599 12.2599 14.8599H8.11362C8.0768 14.867 8.03878 14.8707 7.9999 14.8707C7.96102 14.8707 7.92301 14.867 7.88619 14.8599H3.73989C2.30396 14.8599 1.13989 13.6958 1.13989 12.2599V8.11352C1.13284 8.07673 1.12915 8.03875 1.12915 7.9999C1.12915 7.96106 1.13284 7.92308 1.13989 7.88629V3.73989C1.13989 2.30396 2.30395 1.13989 3.73989 1.13989H7.88629C7.92308 1.13284 7.96106 1.12915 7.9999 1.12915ZM2.33989 8.5999V12.2599C2.33989 13.0331 2.9667 13.6599 3.73989 13.6599H7.3999V8.5999H2.33989ZM7.3999 7.3999H2.33989V3.73989C2.33989 2.9667 2.96669 2.33989 3.73989 2.33989H7.3999V7.3999ZM8.5999 8.5999V13.6599H12.2599C13.0331 13.6599 13.6599 13.0331 13.6599 12.2599V8.5999H8.5999ZM13.6599 7.3999H8.5999V2.33989H12.2599C13.0331 2.33989 13.6599 2.96669 13.6599 3.73989V7.3999Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},F=(0,p.forwardRef)(function(e,t){return(0,p.createElement)(j,Object.assign({},e,{id:`all-border-icon`,ref:t,icon:ae}))});F.displayName=`AllBorderIcon`;let I={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M4.1302 12.4251C4.25802 13.7417 5.36779 14.7708 6.71792 14.7708H11.7179C13.1539 14.7708 14.3179 13.6067 14.3179 12.1708V6.1708C14.3179 4.78586 13.2351 3.65383 11.8698 3.57517C11.742 2.25858 10.6323 1.22949 9.28213 1.22949H4.28213C2.84619 1.22949 1.68213 2.39355 1.68213 3.82949V9.82949C1.68213 11.2144 2.76497 12.3465 4.1302 12.4251ZM10.6583 3.5708H6.71792C5.28198 3.5708 4.11792 4.73486 4.11792 6.1708V11.22C3.4221 11.1387 2.88213 10.5471 2.88213 9.82949V3.82949C2.88213 3.05629 3.50893 2.42949 4.28213 2.42949H9.28213C9.96695 2.42949 10.5369 2.92119 10.6583 3.5708ZM13.1179 6.1708C13.1179 5.3976 12.4911 4.7708 11.7179 4.7708H6.71792C5.94472 4.7708 5.31792 5.3976 5.31792 6.1708V12.1708C5.31792 12.944 5.94472 13.5708 6.71792 13.5708H11.7179C12.4911 13.5708 13.1179 12.944 13.1179 12.1708V6.1708Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},oe=(0,p.forwardRef)(function(e,t){return(0,p.createElement)(j,Object.assign({},e,{id:`copy-icon`,ref:t,icon:I}))});oe.displayName=`CopyIcon`;let L={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M9.8816 1.97978C11.0177 0.843607 12.862 0.884962 14.0004 2.02342C15.1389 3.16188 15.1803 5.00612 14.0441 6.14228L11.399 8.78737C11.1608 9.02559 10.7746 9.02559 10.5363 8.78737C10.2981 8.54915 10.2981 8.16292 10.5363 7.9247L13.1814 5.2796C13.8195 4.64155 13.8217 3.57006 13.1378 2.8861C12.4538 2.20211 11.3823 2.20438 10.7443 2.84245L7.6976 5.88911L7.69317 5.89349C7.05959 6.53211 7.05894 7.60014 7.74132 8.28252C7.97954 8.52074 7.97954 8.90697 7.74132 9.14519C7.5031 9.38341 7.11687 9.38341 6.87865 9.14519C5.74016 8.00671 5.69884 6.16251 6.83497 5.02633L6.84021 5.02116L9.8816 1.97978Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M4.61426 7.2364C4.85248 6.99818 5.23871 6.99818 5.47693 7.2364C5.71515 7.47462 5.71515 7.86085 5.47693 8.09907L2.83183 10.7442C2.19375 11.3823 2.1915 12.4537 2.87547 13.1377C3.55945 13.8217 4.6309 13.8194 5.26899 13.1813L8.31566 10.1347C8.32262 10.1277 8.32971 10.121 8.33691 10.1144C8.34408 10.1064 8.3515 10.0986 8.35916 10.091C8.99721 9.45291 8.99949 8.38145 8.3155 7.69746C8.07728 7.45924 8.07728 7.07301 8.3155 6.83479C8.55372 6.59657 8.93995 6.59657 9.17817 6.83479C10.3166 7.97327 10.358 9.81748 9.22183 10.9536C9.21487 10.9606 9.20779 10.9673 9.20058 10.9739C9.19341 10.9819 9.18599 10.9897 9.17833 10.9973L6.13166 14.044C4.99548 15.1802 3.15127 15.1389 2.01279 14.0004C0.874362 12.8619 0.83297 11.0177 1.96916 9.8815L4.61426 7.2364Z`}}]},R=(0,p.forwardRef)(function(e,t){return(0,p.createElement)(j,Object.assign({},e,{id:`link-icon`,ref:t,icon:L}))});R.displayName=`LinkIcon`;let se={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,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.76157C6.75249 4.52725 6.75249 4.14735 6.98681 3.91304L8.27535 2.62449C9.70209 1.19776 12.0153 1.19776 13.442 2.62449C14.8688 4.05123 14.8688 6.36442 13.442 7.79116L12.1535 9.0797C11.9192 9.31402 11.5393 9.31402 11.3049 9.0797C11.0706 8.84539 11.0706 8.46549 11.3049 8.23117L12.5935 6.94263C13.5516 5.98452 13.5516 4.43113 12.5935 3.47302Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M3.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.05395C4.4606 6.81963 4.0807 6.81963 3.84639 7.05395L2.55784 8.34249C1.13111 9.76923 1.13111 12.0824 2.55784 13.5092C3.98458 14.9359 6.29777 14.9359 7.72451 13.5092L9.01305 12.2206C9.24737 11.9863 9.24737 11.6064 9.01305 11.3721C8.77874 11.1378 8.39884 11.1378 8.16452 11.3721L6.87598 12.6606C5.91787 13.6187 4.36448 13.6187 3.40637 12.6606Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M3.5852 2.80332C3.35088 2.569 2.97098 2.569 2.73667 2.80332C2.50235 3.03763 2.50235 3.41753 2.73667 3.65185L12.4151 13.3302C12.6494 13.5646 13.0293 13.5646 13.2636 13.3302C13.4979 13.0959 13.4979 12.716 13.2636 12.4817L3.5852 2.80332Z`}}]},ce=(0,p.forwardRef)(function(e,t){return(0,p.createElement)(j,Object.assign({},e,{id:`unlink-icon`,ref:t,icon:se}))});ce.displayName=`UnlinkIcon`;let z={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,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`}}]},le=(0,p.forwardRef)(function(e,t){return(0,p.createElement)(j,Object.assign({},e,{id:`write-icon`,ref:t,icon:z}))});le.displayName=`WriteIcon`;let ue={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`#35BD4B`,d:`M3.4535 1.12549C2.7002 1.12549 2.08954 1.73615 2.08954 2.48945V13.5104C2.08954 14.2637 2.7002 14.8744 3.4535 14.8744H12.5465C13.2998 14.8744 13.9105 14.2637 13.9105 13.5104V5.0992L10.0091 1.12549H3.4535Z`}},{tag:`path`,attrs:{fill:`#32A846`,d:`M10.0075 1.12549L13.9104 5.09842H10.6742C10.306 5.09842 10.0075 4.79994 10.0075 4.43175V1.12549Z`}},{tag:`path`,attrs:{fill:`white`,d:`M7.8088 10.2949L6.3764 12.403C6.26259 12.5705 6.03455 12.614 5.86705 12.5002C5.69955 12.3864 5.65603 12.1584 5.76984 11.9909L7.3655 9.64252L5.94042 7.54519C5.82661 7.37769 5.87013 7.14964 6.03763 7.03583C6.20512 6.92202 6.43317 6.96555 6.54698 7.13304L7.8088 8.9901L9.07062 7.13304C9.18443 6.96555 9.41248 6.92202 9.57997 7.03583C9.74747 7.14964 9.79099 7.37769 9.67718 7.54519L8.2521 9.64252L9.84776 11.9909C9.96157 12.1584 9.91805 12.3864 9.75055 12.5002C9.58305 12.614 9.35501 12.5705 9.2412 12.403L7.8088 10.2949Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},de=(0,p.forwardRef)(function(e,t){return(0,p.createElement)(j,Object.assign({},e,{id:`xlsx-multi-icon`,ref:t,icon:ue}))});de.displayName=`XlsxMultiIcon`;let fe={[f.SheetHyperLinkType.URL]:(0,m.jsx)(R,{}),[f.SheetHyperLinkType.SHEET]:(0,m.jsx)(de,{className:`univer-text-green-500`}),[f.SheetHyperLinkType.RANGE]:(0,m.jsx)(F,{}),[f.SheetHyperLinkType.DEFINE_NAME]:(0,m.jsx)(F,{}),[f.SheetHyperLinkType.INVALID]:(0,m.jsx)(F,{})},pe=e=>{var n,i;let a=(0,s.useDependency)(H),o=(0,s.useDependency)(t.ICommandService),c=(0,s.useDependency)(s.IMessageService),u=(0,s.useDependency)(t.LocaleService),d=(0,s.useDependency)(E),p=(0,s.useDependency)(r.IEditorBridgeService),h=(0,s.useDependency)(f.SheetsHyperLinkParserService),_=(0,s.useDependency)(s.IZenZoneService),{customRange:v,row:y,col:b,unitId:x,subUnitId:S,editPermission:C,copyPermission:w,type:T}=e;if(!(!(v==null||(n=v.properties)==null)&&n.url))return null;let D=h.parseHyperLink((i=v.properties.url)==null?``:i),O=D.type===f.SheetHyperLinkType.INVALID;return(0,m.jsxs)(`div`,{className:(0,l.clsx)(`univer-mb-1 univer-flex univer-max-w-80 univer-flex-row univer-items-center univer-justify-between univer-overflow-hidden univer-rounded-lg univer-bg-white univer-p-3 univer-shadow-md dark:!univer-bg-gray-900`,l.borderClassName),onClick:()=>a.hideCurrentPopup(),children:[(0,m.jsxs)(`div`,{className:(0,l.clsx)(`univer-flex univer-h-6 univer-flex-1 univer-cursor-pointer univer-flex-row univer-items-center univer-truncate univer-text-sm univer-leading-5 univer-text-primary-600`,{"univer-text-red-500":O}),onClick:()=>{_.visible||O||d.navigate(D)},children:[(0,m.jsx)(`div`,{className:`univer-mr-2 univer-flex univer-size-5 univer-flex-none univer-items-center univer-justify-center univer-text-base univer-text-gray-900 dark:!univer-text-white`,children:fe[D.type]}),(0,m.jsx)(l.Tooltip,{showIfEllipsis:!0,title:D.name,asChild:!0,children:(0,m.jsx)(`span`,{className:`univer-flex-1 univer-truncate`,children:D.name})})]}),(0,m.jsxs)(`div`,{className:`univer-flex univer-h-6 univer-flex-none univer-flex-row univer-items-center univer-justify-center`,children:[w&&(0,m.jsx)(`div`,{className:(0,l.clsx)(`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,{"univer-text-red-500":O}),onClick:()=>{if(!O){if(D.type!==f.SheetHyperLinkType.URL){let e=new URL(window.location.href);e.hash=D.url.slice(1),navigator.clipboard.writeText(e.href)}else navigator.clipboard.writeText(D.url);c.show({content:u.t(`hyperLink.message.coped`),type:l.MessageType.Info})}},children:(0,m.jsx)(l.Tooltip,{placement:`bottom`,title:u.t(`hyperLink.popup.copy`),children:(0,m.jsx)(oe,{className:`dark:!univer-text-white`})})}),C&&(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{o.executeCommand(K.id,{unitId:x,subUnitId:S,row:y,col:b,customRangeId:v.rangeId,type:T})},children:(0,m.jsx)(l.Tooltip,{placement:`bottom`,title:u.t(`hyperLink.popup.edit`),children:(0,m.jsx)(le,{className:`dark:!univer-text-white`})})}),(0,m.jsx)(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{let e=T===g.EDITING||T===g.ZEN_EDITOR?f.CancelRichHyperLinkCommand.id:f.CancelHyperLinkCommand.id;o.syncExecuteCommand(e,{unitId:x,subUnitId:S,id:v.rangeId,row:y,column:b,documentId:T===g.ZEN_EDITOR?t.DOCS_ZEN_EDITOR_UNIT_ID_KEY:p.getCurrentEditorId()})&&a.hideCurrentPopup(void 0,!0)},children:(0,m.jsx)(l.Tooltip,{placement:`bottom`,title:u.t(`hyperLink.popup.cancel`),children:(0,m.jsx)(ce,{className:`dark:!univer-text-white`})})})]})]})]})},B=()=>{let e=(0,s.useDependency)(H),[n,r]=(0,p.useState)(null),i=(0,s.useDependency)(t.IUniverInstanceService);if((0,p.useEffect)(()=>{r(e.currentPopup);let t=e.currentPopup$.subscribe(e=>{r(e)});return()=>{t.unsubscribe()}},[e.currentPopup,e.currentPopup$]),!n)return null;if(n.showAll){var a;let e=i.getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET),r=e==null?void 0:e.getSheetBySheetId(n.subUnitId),o=r==null?void 0:r.getCell(n.row,n.col),s=o==null||(a=o.p)==null||(a=a.body)==null?void 0:a.customRanges;return s!=null&&s.length?(0,m.jsx)(`div`,{children:s.map(e=>(0,m.jsx)(pe,{...n,customRange:e},e.rangeId))}):null}return(0,m.jsx)(pe,{...n})};B.componentKey=`univer.sheet.cell-link-popup`;let V=(e,t)=>{var n,r;return e.unitId===t.unitId&&e.subUnitId===t.subUnitId&&e.row===t.row&&e.col===t.col&&((n=e.customRange)==null?void 0:n.rangeId)===((r=t.customRange)==null?void 0:r.rangeId)&&e.type===t.type},H=class extends t.Disposable{get currentPopup(){return this._currentPopup}get currentEditing(){return this._currentEditing$.getValue()}constructor(e,t,n,r,i,a,o){super(),this._sheetCanvasPopManagerService=e,this._injector=t,this._univerInstanceService=n,this._editorBridgeService=r,this._textSelectionManagerService=i,this._docCanvasPopManagerService=a,this._zenZoneService=o,A(this,`_currentPopup`,null),A(this,`_currentPopup$`,new c.Subject),A(this,`currentPopup$`,this._currentPopup$.asObservable()),A(this,`_currentEditingPopup`,null),A(this,`_currentEditing$`,new c.BehaviorSubject(null)),A(this,`currentEditing$`,this._currentEditing$.asObservable()),A(this,`_isKeepVisible`,!1),this.disposeWithMe(()=>{this.hideCurrentPopup(),this.endEditing(),this._currentEditing$.complete(),this._currentPopup$.complete()})}setIsKeepVisible(e){this._isKeepVisible=e}getIsKeepVisible(){return this._isKeepVisible}showPopup(e){if(this._currentPopup&&V(e,this._currentPopup)||(this.hideCurrentPopup(void 0,!0),e.type!==g.ZEN_EDITOR&&this._zenZoneService.visible))return;let n=this._currentEditing$.getValue();if(n&&V(e,n))return;let{unitId:r,subUnitId:i,row:a,col:o,customRangeRect:s,customRange:c}=e,l,u={componentKey:B.componentKey,direction:`bottom`,onClickOutside:()=>{this.hideCurrentPopup()},onClick:()=>{this.hideCurrentPopup(e.type,!0)}};if(e.type===g.EDITING){if(!c)return;l=s&&this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(s,u)}else if(e.type===g.ZEN_EDITOR){if(!c)return;l=this._docCanvasPopManagerService.attachPopupToRange({startOffset:c.startIndex,endOffset:c.endIndex+1,collapsed:!1},u,t.DOCS_ZEN_EDITOR_UNIT_ID_KEY)}else if(e.showAll)l=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,u,r,i);else{if(!c)return;l=s&&this._sheetCanvasPopManagerService.attachPopupByPosition(s,u,e)}if(l){if(this._currentPopup){var d;(d=this._currentPopup.disposable)==null||d.dispose()}this._currentPopup={unitId:r,subUnitId:i,disposable:l,row:a,col:o,editPermission:!!e.editPermission,copyPermission:!!e.copyPermission,customRange:c,type:e.type,showAll:e.showAll},this._currentPopup$.next(this._currentPopup)}}hideCurrentPopup(e,t){if(this._currentPopup&&((!e||e===this._currentPopup.type)&&this._currentPopup.disposable.canDispose()||t)){var n;(n=this._currentPopup)==null||(n=n.disposable)==null||n.dispose(),this._currentPopup=null,this._currentPopup$.next(null)}}dispose(){super.dispose(),this.hideCurrentPopup(),this.endEditing(),this._currentPopup$.complete(),this._currentEditing$.complete()}_getEditingRange(){let e=this._editorBridgeService.isVisible().visible,n=this._editorBridgeService.getEditCellState();if(e&&n){var r,i,a;let e=this._textSelectionManagerService.getActiveTextRange(),o=(r=n.documentLayoutObject.documentModel)==null?void 0:r.getBody();if(!o)return null;if(!e||e.collapsed)return{startOffset:0,endOffset:o.dataStream.length-2,collapsed:o.dataStream.length-2==0,label:t.BuildTextUtils.transform.getPlainText(o.dataStream)};let s=t.BuildTextUtils.customRange.getCustomRangesInterestsWithSelection(e,(i=(a=o.customRanges)==null?void 0:a.filter(e=>e.rangeType===t.CustomRangeType.HYPERLINK))==null?[]:i),c=e.startOffset,l=e.endOffset;return s.forEach(e=>{c=Math.min(c,e.startIndex),l=Math.max(l,e.endIndex+1)}),{startOffset:c,endOffset:l,collapsed:c===l,label:t.BuildTextUtils.transform.getPlainText(o.dataStream.slice(c,l))}}return null}get _editPopup(){return{componentKey:re.componentKey,direction:`vertical`,onClickOutside:()=>{this.endEditing()},onContextMenu:()=>{this.endEditing()},hiddenType:`hide`}}startAddEditing(e){let{unitId:n,subUnitId:r,type:i}=e;if(i===g.ZEN_EDITOR){var s;let n=this._univerInstanceService.getUnit(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY,t.UniverInstanceType.UNIVER_DOC);if(!n)return;let r=this._textSelectionManagerService.getActiveTextRange();if(!r)return;this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange(r,this._editPopup,t.DOCS_ZEN_EDITOR_UNIT_ID_KEY);let i=(s=n.getBody())==null?void 0:s.dataStream.slice(r.startOffset,r.endOffset);this._currentEditing$.next({...e,label:i})}else if(i===g.EDITING){var c;let i=this._getEditingRange();if(!i)return;this._textSelectionManagerService.replaceDocRanges([{...i}],{unitId:t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY});let s=this._injector.get(o.IRenderManagerService).getRenderById(t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);if(!s)return;let l=(0,a.calcDocRangePositions)(i,s);if(!(l!=null&&l.length))return;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(l.pop(),this._editPopup,n,r),this._currentEditing$.next({...e,label:(c=i==null?void 0:i.label)==null?``:c})}else{var l,u,d;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,this._editPopup,n,r);let i=this._univerInstanceService.getUnit(n,t.UniverInstanceType.UNIVER_SHEET),a=i==null?void 0:i.getSheetBySheetId(r),o=a==null?void 0:a.getCellRaw(e.row,e.col);this._currentEditing$.next({...e,label:o!=null&&o.p?t.BuildTextUtils.transform.getPlainText((l=(u=o.p.body)==null?void 0:u.dataStream)==null?``:l):((d=o==null?void 0:o.v)==null?``:d).toString()})}}startEditing(e){var n;(n=this._currentEditingPopup)==null||n.dispose(),this.hideCurrentPopup(void 0,!0);let{unitId:i,subUnitId:a}=e,o,s;if(e.type===g.ZEN_EDITOR){var c,l;let n=this._univerInstanceService.getUnit(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY,t.UniverInstanceType.UNIVER_DOC);if(o=n==null||(c=n.getBody())==null||(c=c.customRanges)==null?void 0:c.find(t=>t.rangeId===e.customRangeId),s=o?n==null||(l=n.getBody())==null?void 0:l.dataStream.slice(o.startIndex,o.endIndex+1):``,!o||!s)return;this._textSelectionManagerService.replaceTextRanges([{startOffset:o.startIndex,endOffset:o.endIndex+1}]),this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange({startOffset:o.startIndex,endOffset:o.endIndex,collapsed:!1},this._editPopup,t.DOCS_ZEN_EDITOR_UNIT_ID_KEY)}else if(e.type===g.EDITING){var u;let t=(0,r.getEditingCustomRangePosition)(this._injector,e.unitId,e.subUnitId,e.row,e.col,e.customRangeId);if(!t||!((u=t.rects)!=null&&u.length))return;o=t.customRange,s=t.label,this._textSelectionManagerService.replaceTextRanges([{startOffset:o.startIndex,endOffset:o.endIndex+1}]),this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(t.rects.pop(),this._editPopup,i,a)}else{var d;let n=this._univerInstanceService.getUnit(i,t.UniverInstanceType.UNIVER_SHEET),c=n==null?void 0:n.getSheetBySheetId(a),l=c==null?void 0:c.getCellRaw(e.row,e.col),u=n==null?void 0:n.getStyles().getStyleByCell(l),f=u==null?void 0:u.tr,p=(0,r.getCustomRangePosition)(this._injector,e.unitId,e.subUnitId,e.row,e.col,e.customRangeId);if(!p||!((d=p.rects)!=null&&d.length))return;o=p.customRange,s=p.label,f?this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,this._editPopup,i,a):this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupByPosition(p.rects.pop(),this._editPopup,{unitId:i,subUnitId:a,row:e.row,col:e.col})}this._currentEditing$.next({...e,customRange:o,label:s})}endEditing(e){if(this.getIsKeepVisible())return;let t=this._currentEditing$.getValue();if(t&&(!e||e===t.type)){var n;(n=this._currentEditingPopup)==null||n.dispose(),this._currentEditing$.next(null)}}};H=w([C(0,(0,t.Inject)(r.SheetCanvasPopManagerService)),C(1,(0,t.Inject)(t.Injector)),C(2,t.IUniverInstanceService),C(3,r.IEditorBridgeService),C(4,(0,t.Inject)(i.DocSelectionManagerService)),C(5,(0,t.Inject)(a.DocCanvasPopManagerService)),C(6,s.IZenZoneService)],H);let U=function(e){return e[e.ALLOWED=0]=`ALLOWED`,e[e.DISABLED_BY_CELL=1]=`DISABLED_BY_CELL`,e[e.ALLOW_ON_EDITING=2]=`ALLOW_ON_EDITING`,e}({}),me=new Set([t.DataValidationType.CHECKBOX,t.DataValidationType.LIST,t.DataValidationType.LIST_MULTIPLE]),W=(e,t,n,r)=>{var i,a;let o=t.getCell(n,r);if(o!=null&&o.f||o!=null&&o.si||!(o==null||(i=o.p)==null||(i=i.body)==null||(i=i.customBlocks)==null)&&i.length)return U.DISABLED_BY_CELL;let s=e.has(h.SheetDataValidationModel)?e.get(h.SheetDataValidationModel):null,c=s==null?void 0:s.getRuleByLocation(t.getUnitId(),t.getSheetId(),n,r);return c&&me.has(c.type)?!0:!(o==null||(a=o.p)==null||(a=a.drawingsOrder)==null)&&a.length?U.ALLOW_ON_EDITING:U.ALLOWED},he=e=>{let r=e.get(t.IUniverInstanceService).getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!r)return!0;let i=r.getActiveSheet(),a=e.get(n.SheetsSelectionsService).getCurrentSelections();if(!a.length)return!0;let o=a[0].range.startRow,s=a[0].range.startColumn;return W(e,i,o,s)===U.DISABLED_BY_CELL},G=e=>{let n=e.get(i.DocSelectionManagerService),r=e.get(t.IUniverInstanceService),a=n.getTextRanges();if(!(a!=null&&a.length))return!0;let o=r.getCurrentUnitForType(t.UniverInstanceType.UNIVER_DOC);return!!(!o||a.every(e=>e.collapsed)||!o.getSelfOrHeaderFooterModel(a[0].segmentId).getBody())},K={type:t.CommandType.OPERATION,id:`sheet.operation.open-hyper-link-edit-panel`,handler(e,t){if(!t)return!1;let n=e.get(H);return t.customRangeId?n.startEditing(t):n.startAddEditing(t),!0}},q={type:t.CommandType.OPERATION,id:`sheet.operation.close-hyper-link-popup`,handler(e){return e.get(H).endEditing(),!0}},J={type:t.CommandType.OPERATION,id:`sheet.operation.insert-hyper-link`,handler(e){var i;let a=e.get(t.IUniverInstanceService),o=(0,n.getSheetCommandTarget)(a),s=e.get(r.IEditorBridgeService);if(!o)return!1;let c=e.get(t.ICommandService),l=e.get(n.SheetsSelectionsService).getCurrentLastSelection();if(!l)return!1;let u=l.range.startRow,d=l.range.startColumn,f=s.isVisible(),p=((i=a.getFocusedUnit())==null?void 0:i.getUnitId())===t.DOCS_ZEN_EDITOR_UNIT_ID_KEY;return c.executeCommand(K.id,{unitId:o.unitId,subUnitId:o.subUnitId,row:u,col:d,type:p?g.ZEN_EDITOR:f.visible?g.EDITING:g.VIEWING})}},Y={type:t.CommandType.OPERATION,id:`sheet.operation.insert-hyper-link-toolbar`,handler(e){if(he(e))return!1;let n=e.get(t.ICommandService);return e.get(H).currentEditing?n.executeCommand(q.id):n.executeCommand(J.id)}},ge=`SHEET_HYPER_LINK_UI_PLUGIN`,X=class extends t.Disposable{registerPlainTextFilter(e){this._plainTextFilter.add(e)}removePlainTextFilter(e){this._plainTextFilter.delete(e)}_filterPlainText(e){return Array.from(this._plainTextFilter).every(t=>t(e))}constructor(e,t,n,r){super(),this._sheetClipboardService=e,this._hyperLinkModel=t,this._injector=n,this._resolverService=r,A(this,`_plainTextFilter`,new Set),A(this,`_copyInfo`,void 0),this._initCopyPaste(),this.disposeWithMe(()=>{this._plainTextFilter.clear()})}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:ge,onBeforeCopy:(e,t,n)=>this._collect(e,t,n),onPasteCells:(e,t,n,i)=>{let{copyType:a=r.COPY_TYPE.COPY,pasteType:o}=i,{range:s}=e||{},{range:c,unitId:l,subUnitId:u}=t;return this._generateMutations(c,{copyType:a,pasteType:o,copyRange:s,unitId:l,subUnitId:u})},onPastePlainText:(e,n)=>{let i=this._filterPlainText(n);if(_(n)&&i){let{range:n,unitId:i,subUnitId:a}=e,{ranges:[o],mapFunc:s}=(0,r.virtualizeDiscreteRanges)([n]),c=[],l=[];return t.Range.foreach(o,(e,t)=>{let{row:n,col:r}=s(e,t),o=this._hyperLinkModel.getHyperLinkByLocation(i,a,n,r);o&&c.push({id:f.RemoveHyperLinkMutation.id,params:{unitId:i,subUnitId:a,id:o.id}}),o&&l.push({id:f.AddHyperLinkMutation.id,params:{unitId:i,subUnitId:a,link:o}})}),{redos:c,undos:l}}return{undos:[],redos:[]}},priority:99})}_collect(e,r,i){let a=new t.ObjectMatrix;this._copyInfo={unitId:e,subUnitId:r,matrix:a};let o=this._injector.invoke(t=>(0,n.rangeToDiscreteRange)(i,t,e,r));if(!o)return;let{rows:s,cols:c}=o;s.forEach((t,n)=>{c.forEach((i,o)=>{var s;let c=this._hyperLinkModel.getHyperLinkByLocation(e,r,t,i);a.setValue(n,o,(s=c==null?void 0:c.id)==null?``:s)})})}_generateMutations(e,n){if(!this._copyInfo||!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!n.copyRange||[r.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,r.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,r.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,r.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA].includes(n.pasteType))return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=this._copyInfo,o=[],s=[],{ranges:[c,l],mapFunc:u}=(0,r.virtualizeDiscreteRanges)([n.copyRange,e]);return(0,r.getRepeatRange)(c,l,!0).forEach(({startRange:e})=>{var r;(r=this._copyInfo)==null||r.matrix.forValue((r,c,l)=>{let d=t.Rectangle.getPositionRange({startRow:r,endRow:r,startColumn:c,endColumn:c},e),p=this._hyperLinkModel.getHyperLink(i,a,l),{row:m,col:h}=u(d.startRow,d.startColumn),g=this._hyperLinkModel.getHyperLinkByLocation(n.unitId,n.subUnitId,m,h),_=(0,t.generateRandomId)();g&&o.push({id:f.RemoveHyperLinkMutation.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,id:g.id}}),p&&(o.push({id:f.AddHyperLinkMutation.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,link:{...p,id:_,row:m,column:h}}}),s.push({id:f.RemoveHyperLinkMutation.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,id:_}})),g&&s.push({id:f.AddHyperLinkMutation.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,link:g}})})}),{redos:o,undos:s}}};X=w([C(0,r.ISheetClipboardService),C(1,(0,t.Inject)(f.HyperLinkModel)),C(2,(0,t.Inject)(t.Injector)),C(3,(0,t.Inject)(E))],X);let Z=(e,i=t.DOCS_ZEN_EDITOR_UNIT_ID_KEY)=>{var s;let l=e.get(t.IUniverInstanceService),u=(s=e.get(o.IRenderManagerService).getRenderById(i))==null?void 0:s.with(a.DocSelectionRenderService);return u?u.textSelectionInner$.pipe((0,c.map)(()=>{let t=e.get(r.IEditorBridgeService).getEditCellState();if(!t)return!0;let i=(0,n.getSheetCommandTarget)(l,{unitId:t.unitId,subUnitId:t.sheetId});return!(i!=null&&i.worksheet)||W(e,i.worksheet,t.row,t.column)===1?!0:G(e)})):(0,c.of)(!0)},_e=e=>{var i;let a=e.get(t.IUniverInstanceService),o=e.has(r.IEditorBridgeService)?e.get(r.IEditorBridgeService):null;return((i=o==null?void 0:o.currentEditCellState$.pipe((0,c.map)(t=>{if(!t)return U.DISABLED_BY_CELL;let r=(0,n.getSheetCommandTarget)(a,{unitId:t.unitId,subUnitId:t.sheetId});return r?W(e,r.worksheet,t.row,t.column):U.DISABLED_BY_CELL}),(0,c.switchMap)(n=>n===U.DISABLED_BY_CELL?(0,c.of)(!0):(0,c.combineLatest)([o?o.visible$:(0,c.of)(null),a.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_DOC)]).pipe((0,c.switchMap)(([r,i])=>r!=null&&r.visible?(i==null?void 0:i.getUnitId())===t.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY?(0,c.of)(!0):Z(e,t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY):(0,c.of)(n!==U.ALLOWED))))))==null?(0,c.of)(!0):i).pipe((0,c.switchMap)(t=>t?(0,c.of)(!0):(0,r.getCurrentRangeDisable$)(e,{workbookTypes:[n.WorkbookEditablePermission],worksheetTypes:[n.WorksheetEditPermission,n.WorksheetSetCellValuePermission,n.WorksheetInsertHyperlinkPermission],rangeTypes:[n.RangeProtectionPermissionEditPoint]},!0)))},Q={commandId:J.id,type:s.MenuItemType.BUTTON,title:`hyperLink.menu.add`,icon:`LinkIcon`},ve=e=>`${e}-zen-editor`,ye=e=>({...Q,id:Q.commandId,hidden$:(0,s.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:_e(e)}),be=e=>({...Q,id:ve(Q.commandId),hidden$:(0,s.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC,t.DOCS_ZEN_EDITOR_UNIT_ID_KEY),disabled$:Z(e)}),xe={tooltip:`hyperLink.form.addTitle`,commandId:Y.id,type:s.MenuItemType.BUTTON,icon:`LinkIcon`},Se=e=>({...xe,id:xe.commandId,hidden$:(0,s.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:_e(e)}),Ce=e=>({...xe,id:ve(xe.commandId),hidden$:(0,s.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC,t.DOCS_ZEN_EDITOR_UNIT_ID_KEY),disabled$:Z(e)}),we={id:Y.id,binding:s.KeyCode.K|s.MetaKeys.CTRL_COMMAND,preconditions:r.whenSheetEditorFocused};var Te=`@univerjs/sheets-hyper-link-ui`,Ee=`0.20.0`;let De=class extends t.Disposable{constructor(e,t){super(),this._autoFillService=e,this._hyperLinkModel=t,this._initAutoFill()}_initAutoFill(){let e=()=>({redos:[],undos:[]}),i=(e,i)=>{let{source:a,target:o,unitId:s,subUnitId:c}=e,l=(0,r.virtualizeDiscreteRanges)([a,o]),[u,d]=l.ranges,{mapFunc:p}=l,m={row:u.startRow,col:u.startColumn},h=n.AutoFillTools.getAutoFillRepeatRange(u,d),g=[],_=[];return h.forEach(e=>{let r=e.repeatStartCell,a=e.relativeRange,o={startRow:m.row,startColumn:m.col,endColumn:m.col,endRow:m.row},l={startRow:r.row,startColumn:r.col,endColumn:r.col,endRow:r.row};t.Range.foreach(a,(e,r)=>{let a=t.Rectangle.getPositionRange({startRow:e,startColumn:r,endColumn:r,endRow:e},o),{row:u,col:d}=p(a.startRow,a.startColumn),m=this._hyperLinkModel.getHyperLinkByLocation(s,c,u,d),h=t.Rectangle.getPositionRange({startRow:e,startColumn:r,endColumn:r,endRow:e},l),{row:v,col:y}=p(h.startRow,h.startColumn),b=(0,t.generateRandomId)(),x=this._hyperLinkModel.getHyperLinkByLocation(s,c,v,y);x&&g.push({id:f.RemoveHyperLinkMutation.id,params:{unitId:s,subUnitId:c,id:x.id}}),(n.AUTO_FILL_APPLY_TYPE.COPY===i||n.AUTO_FILL_APPLY_TYPE.SERIES===i)&&m&&(g.push({id:f.AddHyperLinkMutation.id,params:{unitId:s,subUnitId:c,link:{...m,id:b,row:v,column:y}}}),_.push({id:f.RemoveHyperLinkMutation.id,params:{unitId:s,subUnitId:c,id:b}})),x&&_.push({id:f.AddHyperLinkMutation.id,params:{unitId:s,subUnitId:c,link:x}})})}),{undos:_,redos:g}},a={id:ge,onFillData:(t,r,a)=>a===n.AUTO_FILL_APPLY_TYPE.COPY||a===n.AUTO_FILL_APPLY_TYPE.ONLY_FORMAT||a===n.AUTO_FILL_APPLY_TYPE.SERIES?i(t,a):e()};this.disposeWithMe(this._autoFillService.addHook(a))}};De=w([C(0,n.IAutoFillService),C(1,(0,t.Inject)(f.HyperLinkModel))],De);let Oe=class extends t.Disposable{constructor(e,t,n){super(),this._localeService=e,this._commandService=t,this._sheetPermissionCheckController=n,this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{e.id===we.id&&(this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[n.WorkbookEditablePermission],rangeTypes:[n.RangeProtectionPermissionEditPoint],worksheetTypes:[n.WorksheetEditPermission,n.WorksheetSetCellValuePermission,n.WorksheetInsertHyperlinkPermission]})||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localeService.t(`permission.dialog.hyperLinkErr`)))}))}};Oe=w([C(0,(0,t.Inject)(t.LocaleService)),C(1,t.ICommandService),C(2,(0,t.Inject)(n.SheetPermissionCheckController))],Oe);let ke=class extends t.Disposable{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._hoverManagerService=e,this._sheetsHyperLinkPopupService=t,this._renderManagerService=n,this._permissionService=r,this._sheetPermissionCheckController=i,this._commandService=a,this._editorBridgeService=o,this._textSelectionManagerService=s,this._univerInstanceService=c,this._zenZoneService=l,this._initHoverListener(),this._initCommandListener(),this._initHoverEditingListener(),this._initTextSelectionListener(),this._initZenEditor()}_getLinkPermission(e){let{unitId:r,subUnitId:i,row:a,col:o}=e,s=this._univerInstanceService.getUnit(r,t.UniverInstanceType.UNIVER_SHEET),c=s==null?void 0:s.getSheetBySheetId(i);if(!c)return{viewPermission:!1,editPermission:!1,copyPermission:!1};let l=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[n.WorkbookViewPermission],worksheetTypes:[n.WorksheetViewPermission],rangeTypes:[n.RangeProtectionPermissionViewPoint]},[{startRow:a,startColumn:o,endRow:a,endColumn:o}],r,i),u=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[n.WorkbookEditablePermission],worksheetTypes:[n.WorksheetEditPermission,n.WorksheetInsertHyperlinkPermission],rangeTypes:[n.RangeProtectionPermissionEditPoint]},[{startRow:a,startColumn:o,endRow:a,endColumn:o}],r,i),d=c.getCellRaw(a,o);d!=null&&d.f&&d.f.startsWith(`=HYPERLINK(`)&&(u=!1);let f=this._permissionService.composePermission([new n.WorkbookCopyPermission(r).id,new n.WorksheetCopyPermission(r,i).id]).every(e=>e.value);return{viewPermission:l,editPermission:u,copyPermission:f}}_initHoverListener(){this.disposeWithMe(this._hoverManagerService.currentRichText$.pipe((0,c.debounceTime)(200)).subscribe(e=>{var n,i,a;if(!e||((n=e.customRange)==null?void 0:n.rangeType)!==t.CustomRangeType.HYPERLINK){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let{unitId:o,subUnitId:s,row:c,col:l}=e,u=this._renderManagerService.getRenderById(o);if(!u)return;let d=this._univerInstanceService.getUnit(o,t.UniverInstanceType.UNIVER_SHEET),f=d==null?void 0:d.getSheetBySheetId(s);if(!f)return;if(!u.with(r.HoverRenderController).active){this._sheetsHyperLinkPopupService.hideCurrentPopup(g.VIEWING);return}let p=u==null||(i=u.with(r.SheetSkeletonManagerService).getSkeletonParam(s))==null?void 0:i.skeleton,m=l,h=c,_=h,v=m;p&&p.overflowCache.forValue((e,n,r)=>{t.Rectangle.contains(r,{startColumn:m,endColumn:m,startRow:h,endRow:h})&&(_=e,v=n)});let{viewPermission:y,editPermission:b,copyPermission:x}=this._getLinkPermission(e);if(!y){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let S=f.getCellStyleOnly(_,v),C=d.getStyles().getStyleByCell(S),w=C==null||(a=C.tr)==null?void 0:a.a;if(!w&&!e.customRange){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}this._sheetsHyperLinkPopupService.showPopup({row:_,col:v,editPermission:b,copyPermission:x,customRange:e.customRange,customRangeRect:e.rect,type:g.VIEWING,unitId:o,subUnitId:s,showAll:!!w})}))}_initHoverEditingListener(){let e=null;this.disposeWithMe(this._editorBridgeService.currentEditCellState$.pipe((0,c.switchMap)(e=>this._editorBridgeService.visible$.pipe((0,c.map)(t=>({visible:t,state:e}))))).subscribe(({visible:n,state:i})=>{if(!i||i.editorUnitId!==t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)return;if(!n.visible){e==null||e.unsubscribe(),this._sheetsHyperLinkPopupService.hideCurrentPopup(g.EDITING),this._sheetsHyperLinkPopupService.endEditing(g.EDITING);return}let{editorUnitId:o,unitId:s,sheetId:l,row:u,column:d}=i,f=this._renderManagerService.getRenderById(o);if(!f)return;let{editPermission:p,viewPermission:m,copyPermission:h}=this._getLinkPermission({unitId:s,subUnitId:l,row:u,col:d}),_=f.with(a.DocEventManagerService);m&&(e==null||e.unsubscribe(),e=_.hoverCustomRanges$.pipe((0,c.debounceTime)(200)).subscribe(e=>{var n;let i=e.find(e=>e.range.rangeType===t.CustomRangeType.HYPERLINK);if(!i){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let a=i.rects[i.rects.length-1];if(!(!((n=this._renderManagerService.getRenderById(s))==null||(n=n.with(r.SheetSkeletonManagerService).getSkeletonParam(l))==null)&&n.skeleton)||!a)return;let o=f.engine.getCanvasElement().getBoundingClientRect();this._sheetsHyperLinkPopupService.showPopup({unitId:s,subUnitId:l,row:u,col:d,customRange:i.range,customRangeRect:{left:a.left+o.left,top:a.top+o.top,bottom:a.bottom+o.top,right:a.right+o.left},editPermission:p,copyPermission:h,type:g.EDITING})}))})),this.disposeWithMe(()=>{e==null||e.unsubscribe()})}_initZenEditor(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e?(this._sheetsHyperLinkPopupService.hideCurrentPopup(g.VIEWING),this._sheetsHyperLinkPopupService.hideCurrentPopup(g.EDITING),this._sheetsHyperLinkPopupService.endEditing(g.EDITING),this._sheetsHyperLinkPopupService.hideCurrentPopup(g.VIEWING)):(this._sheetsHyperLinkPopupService.hideCurrentPopup(g.ZEN_EDITOR),this._sheetsHyperLinkPopupService.endEditing(g.ZEN_EDITOR))})),this.disposeWithMe(this._univerInstanceService.focused$.pipe((0,c.switchMap)(e=>{let n=e===t.DOCS_ZEN_EDITOR_UNIT_ID_KEY?this._renderManagerService.getRenderById(e):null;return n?n.with(a.DocEventManagerService).hoverCustomRanges$.pipe((0,c.debounceTime)(200)):new c.Observable(e=>{e.next(null)})})).subscribe(e=>{let n=e==null?void 0:e.find(e=>e.range.rangeType===t.CustomRangeType.HYPERLINK),r=this._editorBridgeService.getEditCellState();if(n&&r){let{unitId:e,sheetId:t,row:i,column:a}=r,{editPermission:o,viewPermission:s,copyPermission:c}=this._getLinkPermission({unitId:e,subUnitId:t,row:i,col:a});s&&this._sheetsHyperLinkPopupService.showPopup({type:g.ZEN_EDITOR,unitId:e,subUnitId:t,row:i,col:a,customRange:n.range,editPermission:o,copyPermission:c})}else this._sheetsHyperLinkPopupService.hideCurrentPopup(g.ZEN_EDITOR)}))}_initTextSelectionListener(){this.disposeWithMe(this._textSelectionManagerService.textSelection$.subscribe(e=>{e&&e.unitId===t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY&&this._sheetsHyperLinkPopupService.endEditing(g.EDITING)}))}_initCommandListener(){let e=[n.ClearSelectionContentCommand.id,n.ClearSelectionAllCommand.id,n.ClearSelectionFormatCommand.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{e.includes(t.id)&&this._sheetsHyperLinkPopupService.hideCurrentPopup()}))}};ke=w([C(0,(0,t.Inject)(r.HoverManagerService)),C(1,(0,t.Inject)(H)),C(2,(0,t.Inject)(o.IRenderManagerService)),C(3,(0,t.Inject)(t.IPermissionService)),C(4,(0,t.Inject)(n.SheetPermissionCheckController)),C(5,t.ICommandService),C(6,r.IEditorBridgeService),C(7,(0,t.Inject)(i.DocSelectionManagerService)),C(8,t.IUniverInstanceService),C(9,s.IZenZoneService)],ke);let Ae=class extends t.Disposable{constructor(e,t){super(),this._context=e,this._hyperLinkModel=t,this._initSkeletonChange()}_initSkeletonChange(){let e=()=>{var e;(e=this._context.mainComponent)==null||e.makeForceDirty()};this.disposeWithMe(this._hyperLinkModel.linkUpdate$.pipe((0,c.debounceTime)(16)).subscribe(()=>{e()}))}};Ae=w([C(1,(0,t.Inject)(f.HyperLinkModel))],Ae);let je=class extends t.Disposable{constructor(e,t){super(),this._sheetInterceptorService=e,this._hyperLinkModel=t,this._initViewModelIntercept()}_initViewModelIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(n.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t.InterceptorEffectEnum.Value,priority:100,handler:(e,t,n)=>{let{row:r,col:i,unitId:a,subUnitId:o}=t,s=this._hyperLinkModel.getHyperLinkByLocation(a,o,r,i);return s&&e?(e===t.rawData&&(e={...t.rawData}),e.linkUrl=s.payload,e.linkId=s.id,n(e)):n(e)}}))}};je=w([C(0,(0,t.Inject)(n.SheetInterceptorService)),C(1,(0,t.Inject)(f.HyperLinkModel))],je);let Me={[s.RibbonInsertGroup.MEDIA]:{[Y.id]:{order:1,menuItemFactory:Se},[ve(Y.id)]:{order:1,menuItemFactory:Ce}},[s.ContextMenuPosition.MAIN_AREA]:{[s.ContextMenuGroup.OTHERS]:{order:1,[Y.id]:{order:0,menuItemFactory:ye},[ve(Y.id)]:{order:0,menuItemFactory:be}}}},Ne=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._componentManager=e,this._commandService=t,this._menuManagerService=n,this._injector=r,this._shortcutService=i,this._initComponents(),this._initCommands(),this._initMenus(),this._initShortCut()}_initComponents(){[[B.componentKey,B],[re.componentKey,re],[`LinkIcon`,R]].forEach(([e,t])=>{this._componentManager.register(e,t)})}_initCommands(){[K,q,J,Y].forEach(e=>{this._commandService.registerCommand(e)})}_initMenus(){this._menuManagerService.mergeMenu(Me)}_initShortCut(){this._shortcutService.registerShortcut(we)}};Ne=w([C(0,(0,t.Inject)(s.ComponentManager)),C(1,t.ICommandService),C(2,s.IMenuManagerService),C(3,(0,t.Inject)(t.Injector)),C(4,(0,t.Inject)(s.IShortcutService))],Ne);let Pe=class extends t.Disposable{constructor(e,t){super(),this._parserService=e,this._resolverService=t,this._handleInitUrl()}_handleInitUrl(){let e=location.hash;if(e){let t=this._parserService.parseHyperLink(e);this._resolverService.navigate(t)}}};Pe=w([C(0,(0,t.Inject)(f.SheetsHyperLinkParserService)),C(1,(0,t.Inject)(E))],Pe);let $=class extends t.Plugin{constructor(e=S,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{menu:i,...a}=(0,t.merge)({},S,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(x,a)}onStarting(){[[E],[H],[ee],[je],[ke],[Ne],[De],[X],[Oe],[Pe]].forEach(e=>this._injector.add(e)),this._injector.get(je)}onReady(){this._injector.get(o.IRenderManagerService).registerRenderModule(t.UniverInstanceType.UNIVER_SHEET,[Ae]),this._injector.get(De),this._injector.get(X),this._injector.get(Ne)}onRendered(){this._injector.get(Oe),this._injector.get(Pe),this._injector.get(ke)}};A($,`pluginName`,ge),A($,`packageName`,Te),A($,`version`,Ee),A($,`type`,t.UniverInstanceType.UNIVER_SHEET),$=w([(0,t.DependentOn)(f.UniverSheetsHyperLinkPlugin,a.UniverDocsUIPlugin),C(1,(0,t.Inject)(t.Injector)),C(2,t.IConfigService)],$),e.CloseHyperLinkPopupOperation=q,e.InsertHyperLinkOperation=J,e.InsertLinkShortcut=we,e.OpenHyperLinkEditPanelOperation=K,Object.defineProperty(e,`SheetsHyperLinkCopyPasteController`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(e,`SheetsHyperLinkPopupService`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(e,`SheetsHyperLinkResolverService`,{enumerable:!0,get:function(){return E}}),e.SheetsHyperLinkSidePanelService=ee,Object.defineProperty(e,`UniverSheetsHyperLinkUIPlugin`,{enumerable:!0,get:function(){return $}})});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/sheets`),require(`@univerjs/sheets-ui`),require(`@univerjs/docs`),require(`@univerjs/docs-ui`),require(`@univerjs/engine-render`),require(`@univerjs/ui`),require(`rxjs`),require(`@univerjs/design`),require(`@univerjs/engine-formula`),require(`@univerjs/sheets-formula-ui`),require(`@univerjs/sheets-hyper-link`),require(`react`),require(`react/jsx-runtime`),require(`@univerjs/sheets-data-validation`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/sheets`,`@univerjs/sheets-ui`,`@univerjs/docs`,`@univerjs/docs-ui`,`@univerjs/engine-render`,`@univerjs/ui`,`rxjs`,`@univerjs/design`,`@univerjs/engine-formula`,`@univerjs/sheets-formula-ui`,`@univerjs/sheets-hyper-link`,`react`,`react/jsx-runtime`,`@univerjs/sheets-data-validation`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsHyperLinkUi={},e.UniverCore,e.UniverSheets,e.UniverSheetsUi,e.UniverDocs,e.UniverDocsUi,e.UniverEngineRender,e.UniverUi,e.rxjs,e.UniverDesign,e.UniverEngineFormula,e.UniverSheetsFormulaUi,e.UniverSheetsHyperLink,e.React,e.React,e.UniverSheetsDataValidation))})(this,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let g=function(e){return e.EDITING=`editing`,e.VIEWING=`viewing`,e.ZEN_EDITOR=`zen_mode`,e}({});function _(e){return t.Tools.isLegalUrl(e)}function v(e){return/^[a-zA-Z]+:\/\//.test(e)}function y(e){return/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(e)}function b(e){if(_(e)){let t=v(e)?e:y(e)?`mailto://${e}`:`http://${e}`,n;try{n=new URL(t)}catch{return e}return n.hostname===location.hostname&&n.port===location.port&&n.protocol===location.protocol&&n.pathname===location.pathname&&n.hash&&!n.search?n.hash:t}return e}let x=`sheets-hyper-link-ui.config`;Symbol(x);let S={};function C(e,t){return function(n,r){t(n,r,e)}}function w(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function T(e,n){let r=n.getMergeData(),i=n.getMaxColumns()-1,a=n.getMaxRows()-1;if(i<e.endColumn&&(e.endColumn=i),a<e.endRow&&(e.endRow=a),e.rangeType===t.RANGE_TYPE.COLUMN||t.RANGE_TYPE.ROW)return e;let o=[];return r.forEach(n=>{t.Rectangle.intersects(e,n)&&o.push(n)}),t.Rectangle.realUnion(e,...o)}let E=class{constructor(e,t,n,r,i,a){this._univerInstanceService=e,this._commandService=t,this._definedNamesService=n,this._messageService=r,this._localeService=i,this._configService=a}navigate(e){switch(e.type){case f.SheetHyperLinkType.URL:this.navigateToOtherWebsite(e.url);break;default:this._navigateToUniver(e.searchObj)}}_navigateToUniver(e){let{gid:n,range:r,rangeid:i}=e,a=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!a)return;let o=a.getUnitId();if(i){let e=this._definedNamesService.getValueById(o,i);if(!e)return;let{formulaOrRefString:t}=e,n=this._definedNamesService.getWorksheetByRef(o,t);if(!n){this._messageService.show({content:this._localeService.t(`hyperLink.message.refError`),type:l.MessageType.Error});return}if(n.isSheetHidden()){this._messageService.show({content:this._localeService.t(`hyperLink.message.hiddenSheet`),type:l.MessageType.Error});return}this.navigateToDefineName(o,i)}if(n){if(r){let e=(0,u.deserializeRangeWithSheet)(r);(0,t.isValidRange)(e.range)&&r!==f.ERROR_RANGE&&this.navigateToRange(o,n,e.range);return}this.navigateToSheetById(o,n)}}async navigateToRange(e,t,i,a){let o=await this.navigateToSheetById(e,t);if(o){let s=T(i,o);await this._commandService.executeCommand(n.SetSelectionsOperation.id,{unitId:e,subUnitId:t,selections:[{range:s,primary:null}]}),await this._commandService.executeCommand(r.ScrollToRangeOperation.id,{range:s,forceTop:a})}}async navigateToSheetById(e,r){let i=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;let a=i.getActiveSheet();if(!a)return!1;if(a.getSheetId()===r)return a;let o=i.getSheetBySheetId(r);return o?i.getHiddenWorksheets().indexOf(r)>-1?(this._messageService.show({content:this._localeService.t(`hyperLink.message.hiddenSheet`),type:l.MessageType.Error}),!1):await this._commandService.executeCommand(n.SetWorksheetActiveOperation.id,{unitId:e,subUnitId:r})?o:!1:(this._messageService.show({content:this._localeService.t(`hyperLink.message.noSheet`),type:l.MessageType.Error}),!1)}async navigateToDefineName(e,t){return this._definedNamesService.focusRange(e,t),!0}async navigateToOtherWebsite(e){var t;let n=this._configService.getConfig(x);if(!(n==null||(t=n.urlHandler)==null)&&t.navigateToOtherWebsite)return n.urlHandler.navigateToOtherWebsite(e);window.open(e,`_blank`,`noopener noreferrer`)}};E=w([C(0,t.IUniverInstanceService),C(1,t.ICommandService),C(2,u.IDefinedNamesService),C(3,s.IMessageService),C(4,(0,t.Inject)(t.LocaleService)),C(5,t.IConfigService)],E);function D(e){"@babel/helpers - typeof";return D=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},D(e)}function O(e,t){if(D(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(D(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function k(e){var t=O(e,`string`);return D(t)==`symbol`?t:t+``}function A(e,t,n){return(t=k(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ee=class extends t.Disposable{constructor(...e){super(...e),A(this,`_customHyperLinks`,new Map)}isBuiltInLinkType(e){return e!==f.SheetHyperLinkType.URL}getOptions(){return Array.from(this._customHyperLinks.values()).map(({option:e})=>e)}findCustomHyperLink(e){return Array.from(this._customHyperLinks.values()).find(t=>t.match(e))}registerCustomHyperLink(e){this._customHyperLinks.set(e.type,e)}getCustomHyperLink(e){return this._customHyperLinks.get(e)}removeCustomHyperLink(e){let{_customHyperLinks:t}=this;t.delete(e)}dispose(){super.dispose(),this._customHyperLinks.clear()}};function te(e){return e.trim().length===0}function ne(e,n){let[r]=e.split(`,`).map(u.deserializeRangeWithSheet);return!r||!(0,t.isValidRange)(r.range)?``:(r.sheetName||(r.sheetName=n),(0,u.serializeRangeToRefString)(r))}let re=()=>{var e;let[c,h]=(0,p.useState)(``),[v,y]=(0,p.useState)(!1),[x,S]=(0,p.useState)(``),[C,w]=(0,p.useState)(!0),[T,D]=(0,p.useState)(f.SheetHyperLinkType.URL),[O,k]=(0,p.useState)(``),A=(0,s.useDependency)(t.LocaleService),re=(0,s.useDependency)(u.IDefinedNamesService),j=(0,s.useDependency)(r.IEditorBridgeService),M=(0,s.useDependency)(t.IUniverInstanceService),N=(0,s.useDependency)(H),P=(0,s.useObservable)(N.currentEditing$),ie=(0,s.useDependency)(f.SheetsHyperLinkParserService),ae=(0,s.useDependency)(E),F=(0,s.useDependency)(t.ICommandService),I=(0,s.useDependency)(ee),oe=(0,p.useMemo)(()=>I.getOptions(),[I]),L=(0,s.useDependency)(s.IZenZoneService),R=(0,s.useDependency)(o.IRenderManagerService),se=(0,s.useDependency)(r.IMarkSelectionService),ce=(0,s.useDependency)(i.DocSelectionManagerService),z=(0,s.useDependency)(t.IContextService),le=(0,s.useDependency)(t.ThemeService),ue=(0,s.useDependency)(i.DocSelectionManagerService),[de,fe]=(0,p.useState)(!1),pe=(0,s.useDependency)(n.SheetsSelectionsService),B=(0,p.useMemo)(()=>pe.getCurrentSelections(),[]),V=(0,p.useMemo)(()=>{if(!I.isBuiltInLinkType(T))return I.getCustomHyperLink(T)},[I,T]),[U,me]=(0,p.useState)(!1),[W,he]=(0,p.useState)(!1),G=(0,p.useRef)(!1),K=M.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET),J=(K==null?void 0:K.getActiveSheet().getSheetId())||``,Y=(0,p.useCallback)(e=>{S(e.replaceAll(t.DataStreamTreeTokenType.CUSTOM_RANGE_START,``).replaceAll(t.DataStreamTreeTokenType.CUSTOM_RANGE_END,``))},[S]);(0,p.useEffect)(()=>{if((P==null?void 0:P.row)!==void 0&&P.col!==void 0){let{customRange:b,row:x,col:S}=P,{label:C}=P;typeof C==`number`&&(C=`${C}`);let T;if(b){var e,n,r,i;T={id:(e=b==null?void 0:b.rangeId)==null?``:e,display:(n=C)==null?``:n,payload:(r=b==null||(i=b.properties)==null?void 0:i.url)==null?``:r,row:x,column:S}}else if(P.type===g.VIEWING){var a,o,s,c;let e=M.getUnit(P.unitId),n=e==null?void 0:e.getSheetBySheetId(P.subUnitId),r=n==null?void 0:n.getCellRaw(P.row,P.col),i=r==null||(a=r.p)==null||(a=a.body)==null||(a=a.customRanges)==null?void 0:a.find(e=>{var n;return e.rangeType===t.CustomRangeType.HYPERLINK&&((n=e.properties)==null?void 0:n.url)}),l=r==null?void 0:r.v;r&&(!t.BuildTextUtils.transform.isEmptyDocument((o=r.p)==null||(o=o.body)==null?void 0:o.dataStream)||t.Tools.isDefine(l))&&w(!1),T={id:``,display:``,payload:(s=i==null||(c=i.properties)==null?void 0:c.url)==null?``:s,row:x,column:S}}else{var l,d,p,m,_;let e=M.getCurrentUnitForType(t.UniverInstanceType.UNIVER_DOC),n=ce.getActiveTextRange(),r=e==null?void 0:e.getBody(),i=n&&r?n:null,a=i&&((l=t.BuildTextUtils.customRange.getCustomRangesInterestsWithSelection(i,(d=r==null?void 0:r.customRanges)==null?[]:d))==null?void 0:l[0]);w(!1),T={id:``,display:(p=C)==null?``:p,payload:(m=a==null||(_=a.properties)==null?void 0:_.url)==null?``:m,row:x,column:S}}h(T.id);let E=I.findCustomHyperLink(T);if(E){let e=E.convert(T);D(e.type),k(e.payload),Y(e.display);return}Y(T.display);let O=ie.parseHyperLink(T.payload);switch(D(O.type===f.SheetHyperLinkType.INVALID?f.SheetHyperLinkType.RANGE:O.type),O.type){case f.SheetHyperLinkType.URL:k(O.url),O.url===T.display&&(G.current=!0);break;case f.SheetHyperLinkType.RANGE:{var v,y;let e=O.searchObj,t=(0,u.serializeRangeWithSheet)(e.gid?(v=(y=M.getUnit(P.unitId))==null||(y=y.getSheetBySheetId(e.gid))==null?void 0:y.getName())==null?``:v:``,(0,u.deserializeRangeWithSheet)(e.range).range);k(t),t===T.display&&(G.current=!0);break}case f.SheetHyperLinkType.SHEET:{let e=O.searchObj;k(e.gid);break}case f.SheetHyperLinkType.DEFINE_NAME:{let e=O.searchObj;k(e.rangeid);break}default:k(``);break}}},[P,ae,I,ce,M]),(0,p.useEffect)(()=>{let e=null;if(P&&!P.customRangeId&&P.type===g.VIEWING&&t.Tools.isDefine(P.row)&&t.Tools.isDefine(P.col)){let n=M.getUnit(P.unitId,t.UniverInstanceType.UNIVER_SHEET),r=n==null?void 0:n.getSheetBySheetId(P.subUnitId),i=r==null?void 0:r.getMergedCell(P.row,P.col),a=new t.ColorKit(le.getColorFromTheme(`primary.600`)).toRgb();e=se.addShape({range:i==null?{startColumn:P.col,endColumn:P.col,startRow:P.row,endRow:P.row}:i,style:{fill:`rgb(${a.r}, ${a.g}, ${a.b}, 0.12)`,strokeWidth:1,stroke:`#FFBD37`,widgets:{}},primary:null},[],-1)}return()=>{e&&se.removeShape(e)}},[P,se,le,M]),(0,p.useEffect)(()=>{he(T===f.SheetHyperLinkType.RANGE)},[T]),(0,p.useEffect)(()=>{let e=(P==null?void 0:P.type)===g.ZEN_EDITOR?R.getRenderById(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY):R.getRenderById(j.getCurrentEditorId()),n=new t.DisposableCollection;if(e){let t=e.with(a.DocSelectionRenderService);t.setReserveRangesStatus(!0),n.add(()=>{t.setReserveRangesStatus(!1)})}return()=>{j.disableForceKeepVisible(),n.dispose()}},[P==null?void 0:P.type,j,R]),(0,p.useEffect)(()=>(W&&N.setIsKeepVisible(W),N.setIsKeepVisible(de),()=>{N.setIsKeepVisible(!1)}),[W,de,N]),(0,p.useEffect)(()=>()=>{L.temporaryHidden&&(L.show(),z.setContextValue(t.FOCUSING_SHEET,!1))},[z,L]),(0,p.useEffect)(()=>{if(W)return j.enableForceKeepVisible(),()=>{j.disableForceKeepVisible()}},[W,j]);let ge=[{label:A.t(`hyperLink.form.link`),value:f.SheetHyperLinkType.URL},{label:A.t(`hyperLink.form.range`),value:f.SheetHyperLinkType.RANGE},{label:A.t(`hyperLink.form.worksheet`),value:f.SheetHyperLinkType.SHEET},{label:A.t(`hyperLink.form.definedName`),value:f.SheetHyperLinkType.DEFINE_NAME},...oe];if(!K)return;let X=K.getHiddenWorksheets(),Z=K.getSheets().map(e=>({label:e.getName(),value:e.getSheetId()})).filter(e=>X.indexOf(e.value)===-1),_e=Object.values((e=re.getDefinedNameMap(K.getUnitId()))==null?{}:e).map(e=>({label:e.name,value:e.id})),Q=(e,t)=>{if(e===f.SheetHyperLinkType.URL)return b(t);if(e===f.SheetHyperLinkType.RANGE){let e=(0,u.deserializeRangeWithSheet)(t),n=K.getSheetBySheetName(e.sheetName);if(n)return`#gid=${n.getSheetId()}&range=${(0,u.serializeRange)(e.range)}`}return`#${e}=${t}`},ve=(0,s.useEvent)(e=>{var t;let n=ne(e,((t=K.getActiveSheet())==null?void 0:t.getName())||``);if(!n){k(``);return}k(n),n&&(G.current||!x)&&(Y(n),G.current=!0)}),ye=async()=>{if(C&&te(x)||!O||T===f.SheetHyperLinkType.URL&&!_(O)){me(!0);return}if(P)if(c){let e=P.type===g.ZEN_EDITOR||P.type===g.EDITING?f.UpdateRichHyperLinkCommand.id:f.UpdateHyperLinkCommand.id;await F.executeCommand(e,{id:c,unitId:P.unitId,subUnitId:P.subUnitId,payload:{display:C?x:``,payload:Q(T,O)},row:P.row,column:P.col,documentId:P.type===g.ZEN_EDITOR?t.DOCS_ZEN_EDITOR_UNIT_ID_KEY:j.getCurrentEditorId()})}else{let e=P.type===g.ZEN_EDITOR||P.type===g.EDITING?f.AddRichHyperLinkCommand.id:f.AddHyperLinkCommand.id;await F.executeCommand(e,{unitId:P.unitId,subUnitId:P.subUnitId,link:{id:(0,t.generateRandomId)(),row:P.row,column:P.col,payload:Q(T,O),display:C?x:``},documentId:P.type===g.ZEN_EDITOR?t.DOCS_ZEN_EDITOR_UNIT_ID_KEY:j.getCurrentEditorId()})}(P==null?void 0:P.type)===g.VIEWING&&(await F.executeCommand(n.SetWorksheetActiveOperation.id,{unitId:P.unitId,subUnitId:P.subUnitId}),await F.executeCommand(r.ScrollToRangeOperation.id,{range:{startRow:Math.max(P.row-1,0),endRow:P.row+1,startColumn:Math.max(P.col-1,0),endColumn:P.col+1}})),F.executeCommand(q.id)};return P?(0,m.jsxs)(`div`,{className:(0,l.clsx)(`univer-box-border univer-w-[296px] univer-rounded-xl univer-bg-white univer-p-4 univer-shadow-md dark:!univer-bg-gray-900`,l.borderClassName),children:[C?(0,m.jsx)(l.FormLayout,{label:A.t(`hyperLink.form.label`),error:U&&te(x)?A.t(`hyperLink.form.inputError`):``,children:(0,m.jsx)(l.Input,{value:x,onChange:e=>{Y(e),G.current=!1},placeholder:A.t(`hyperLink.form.labelPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===s.KeyCode.ENTER&&ye()}})}):null,(0,m.jsx)(l.FormLayout,{label:A.t(`hyperLink.form.type`),children:(0,m.jsx)(l.Select,{className:`univer-w-full`,options:ge,value:T,onChange:e=>{D(e),k(``)}})}),T===f.SheetHyperLinkType.URL&&(0,m.jsx)(l.FormLayout,{error:U?O?_(O)?``:A.t(`hyperLink.form.linkError`):A.t(`hyperLink.form.inputError`):``,children:(0,m.jsx)(l.Input,{value:O,onChange:e=>{k(e),e&&(G.current||!x||x===e)&&(Y(e),G.current=!0)},placeholder:A.t(`hyperLink.form.linkPlaceholder`),autoFocus:!0,onKeyDown:e=>{e.keyCode===s.KeyCode.ENTER&&ye()}})}),T===f.SheetHyperLinkType.RANGE&&(0,m.jsx)(l.FormLayout,{error:U&&!O?A.t(`hyperLink.form.inputError`):``,children:(0,m.jsx)(d.RangeSelector,{unitId:K.getUnitId(),subUnitId:J,maxRangeCount:1,supportAcrossSheet:!0,initialValue:O,resetRange:B,onChange:(e,t)=>ve(t),onRangeSelectorDialogVisibleChange:async e=>{if(fe(e),e)P.type===g.ZEN_EDITOR&&(L.hide(),z.setContextValue(t.FOCUSING_SHEET,!0)),P.type!==g.VIEWING&&j.enableForceKeepVisible(),y(!0);else{if(await ae.navigateToRange(P.unitId,P.subUnitId,{startRow:P.row,endRow:P.row,startColumn:P.col,endColumn:P.col},!0),P.type===g.ZEN_EDITOR){var r,i;await F.executeCommand(n.SetSelectionsOperation.id,{unitId:P.unitId,subUnitId:P.subUnitId,selections:[{range:{startRow:P.row,endRow:P.row,startColumn:P.col,endColumn:P.col}}]}),L.show(),z.setContextValue(t.FOCUSING_SHEET,!1);let e=(r=R.getRenderById(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY))==null?void 0:r.with(a.DocBackScrollRenderController),o=(i=ue.getTextRanges({unitId:t.DOCS_ZEN_EDITOR_UNIT_ID_KEY,subUnitId:t.DOCS_ZEN_EDITOR_UNIT_ID_KEY}))==null?void 0:i[0];e&&o&&(e.scrollToRange(o),ue.refreshSelection({unitId:t.DOCS_ZEN_EDITOR_UNIT_ID_KEY,subUnitId:t.DOCS_ZEN_EDITOR_UNIT_ID_KEY}))}j.disableForceKeepVisible(),y(!1)}},onFocusChange:e=>he(e)})}),T===f.SheetHyperLinkType.SHEET&&(0,m.jsx)(l.FormLayout,{error:U&&!O?A.t(`hyperLink.form.selectError`):``,children:(0,m.jsx)(l.Select,{className:`univer-w-full`,options:Z,value:O,onChange:e=>{var t,n;k(e);let r=(t=Z.find(t=>t.value===e))==null?void 0:t.label,i=(n=Z.find(e=>e.value===O))==null?void 0:n.label;r&&(G.current||!x||x===i)&&(Y(r),G.current=!0)}})}),T===f.SheetHyperLinkType.DEFINE_NAME&&(0,m.jsx)(l.FormLayout,{error:U&&!O?A.t(`hyperLink.form.selectError`):``,children:(0,m.jsx)(l.Select,{className:`univer-w-full`,options:_e,value:O,onChange:e=>{var t,n;k(e);let r=(t=_e.find(t=>t.value===e))==null?void 0:t.label,i=(n=_e.find(e=>e.value===O))==null?void 0:n.label;r&&(G.current||!x||x===i)&&(Y(r),G.current=!0)}})}),(V==null?void 0:V.Form)&&(0,m.jsx)(V.Form,{linkId:c,payload:O,display:x,showError:U,setByPayload:G,setDisplay:e=>{Y(e),G.current=!0},setPayload:k}),(0,m.jsxs)(`div`,{className:`univer-flex univer-flex-row univer-justify-end univer-gap-2`,children:[(0,m.jsx)(l.Button,{onClick:()=>{P&&ae.navigateToRange(P.unitId,P.subUnitId,{startRow:P.row,endRow:P.row,startColumn:P.col,endColumn:P.col},!0),F.executeCommand(q.id)},children:A.t(`hyperLink.form.cancel`)}),(0,m.jsx)(l.Button,{variant:`primary`,onClick:async()=>{ye()},children:A.t(`hyperLink.form.ok`)})]})]}):null};re.componentKey=`univer.sheet.cell-link-edit`;function j({ref:e,...t}){let{icon:n,id:r,className:i,extend:a,...o}=t,s=`univerjs-icon univerjs-icon-${r} ${i||``}`.trim(),c=(0,p.useRef)(`_${ie()}`);return M(n,`${r}`,{defIds:n.defIds,idSuffix:c.current},{ref:e,className:s,...o},a)}function M(e,t,n,r,i){return(0,p.createElement)(e.tag,{key:t,...N(e,n,i),...r},(P(e,n).children||[]).map((r,a)=>M(r,`${t}-${e.tag}-${a}`,n,void 0,i)))}function N(e,t,n){let r={...e.attrs};n!=null&&n.colorChannel1&&r.fill===`colorChannel1`&&(r.fill=n.colorChannel1),e.tag===`mask`&&r.id&&(r.id+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{e===`mask`&&typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});let{defIds:i}=t;return!i||i.length===0?r:(e.tag===`use`&&r[`xlink:href`]&&(r[`xlink:href`]+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))}),r)}function P(e,t){var n;let{defIds:r}=t;return!r||r.length===0?e:e.tag===`defs`&&(n=e.children)!=null&&n.length?{...e,children:e.children.map(e=>typeof e.attrs.id==`string`&&r&&r.includes(e.attrs.id)?{...e,attrs:{...e.attrs,id:e.attrs.id+t.idSuffix}}:e)}:e}function ie(){return Math.random().toString(36).substring(2,8)}j.displayName=`UniverIcon`;let ae={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M7.9999 1.12915C8.03875 1.12915 8.07673 1.13284 8.11352 1.13989H12.2599C13.6958 1.13989 14.8599 2.30395 14.8599 3.73989V7.88619C14.867 7.92301 14.8707 7.96102 14.8707 7.9999C14.8707 8.03878 14.867 8.0768 14.8599 8.11362V12.2599C14.8599 13.6958 13.6958 14.8599 12.2599 14.8599H8.11362C8.0768 14.867 8.03878 14.8707 7.9999 14.8707C7.96102 14.8707 7.92301 14.867 7.88619 14.8599H3.73989C2.30396 14.8599 1.13989 13.6958 1.13989 12.2599V8.11352C1.13284 8.07673 1.12915 8.03875 1.12915 7.9999C1.12915 7.96106 1.13284 7.92308 1.13989 7.88629V3.73989C1.13989 2.30396 2.30395 1.13989 3.73989 1.13989H7.88629C7.92308 1.13284 7.96106 1.12915 7.9999 1.12915ZM2.33989 8.5999V12.2599C2.33989 13.0331 2.9667 13.6599 3.73989 13.6599H7.3999V8.5999H2.33989ZM7.3999 7.3999H2.33989V3.73989C2.33989 2.9667 2.96669 2.33989 3.73989 2.33989H7.3999V7.3999ZM8.5999 8.5999V13.6599H12.2599C13.0331 13.6599 13.6599 13.0331 13.6599 12.2599V8.5999H8.5999ZM13.6599 7.3999H8.5999V2.33989H12.2599C13.0331 2.33989 13.6599 2.96669 13.6599 3.73989V7.3999Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},F=(0,p.forwardRef)(function(e,t){return(0,p.createElement)(j,Object.assign({},e,{id:`all-border-icon`,ref:t,icon:ae}))});F.displayName=`AllBorderIcon`;let I={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M4.1302 12.4251C4.25802 13.7417 5.36779 14.7708 6.71792 14.7708H11.7179C13.1539 14.7708 14.3179 13.6067 14.3179 12.1708V6.1708C14.3179 4.78586 13.2351 3.65383 11.8698 3.57517C11.742 2.25858 10.6323 1.22949 9.28213 1.22949H4.28213C2.84619 1.22949 1.68213 2.39355 1.68213 3.82949V9.82949C1.68213 11.2144 2.76497 12.3465 4.1302 12.4251ZM10.6583 3.5708H6.71792C5.28198 3.5708 4.11792 4.73486 4.11792 6.1708V11.22C3.4221 11.1387 2.88213 10.5471 2.88213 9.82949V3.82949C2.88213 3.05629 3.50893 2.42949 4.28213 2.42949H9.28213C9.96695 2.42949 10.5369 2.92119 10.6583 3.5708ZM13.1179 6.1708C13.1179 5.3976 12.4911 4.7708 11.7179 4.7708H6.71792C5.94472 4.7708 5.31792 5.3976 5.31792 6.1708V12.1708C5.31792 12.944 5.94472 13.5708 6.71792 13.5708H11.7179C12.4911 13.5708 13.1179 12.944 13.1179 12.1708V6.1708Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},oe=(0,p.forwardRef)(function(e,t){return(0,p.createElement)(j,Object.assign({},e,{id:`copy-icon`,ref:t,icon:I}))});oe.displayName=`CopyIcon`;let L={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M9.8816 1.97978C11.0177 0.843607 12.862 0.884962 14.0004 2.02342C15.1389 3.16188 15.1803 5.00612 14.0441 6.14228L11.399 8.78737C11.1608 9.02559 10.7746 9.02559 10.5363 8.78737C10.2981 8.54915 10.2981 8.16292 10.5363 7.9247L13.1814 5.2796C13.8195 4.64155 13.8217 3.57006 13.1378 2.8861C12.4538 2.20211 11.3823 2.20438 10.7443 2.84245L7.6976 5.88911L7.69317 5.89349C7.05959 6.53211 7.05894 7.60014 7.74132 8.28252C7.97954 8.52074 7.97954 8.90697 7.74132 9.14519C7.5031 9.38341 7.11687 9.38341 6.87865 9.14519C5.74016 8.00671 5.69884 6.16251 6.83497 5.02633L6.84021 5.02116L9.8816 1.97978Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M4.61426 7.2364C4.85248 6.99818 5.23871 6.99818 5.47693 7.2364C5.71515 7.47462 5.71515 7.86085 5.47693 8.09907L2.83183 10.7442C2.19375 11.3823 2.1915 12.4537 2.87547 13.1377C3.55945 13.8217 4.6309 13.8194 5.26899 13.1813L8.31566 10.1347C8.32262 10.1277 8.32971 10.121 8.33691 10.1144C8.34408 10.1064 8.3515 10.0986 8.35916 10.091C8.99721 9.45291 8.99949 8.38145 8.3155 7.69746C8.07728 7.45924 8.07728 7.07301 8.3155 6.83479C8.55372 6.59657 8.93995 6.59657 9.17817 6.83479C10.3166 7.97327 10.358 9.81748 9.22183 10.9536C9.21487 10.9606 9.20779 10.9673 9.20058 10.9739C9.19341 10.9819 9.18599 10.9897 9.17833 10.9973L6.13166 14.044C4.99548 15.1802 3.15127 15.1389 2.01279 14.0004C0.874362 12.8619 0.83297 11.0177 1.96916 9.8815L4.61426 7.2364Z`}}]},R=(0,p.forwardRef)(function(e,t){return(0,p.createElement)(j,Object.assign({},e,{id:`link-icon`,ref:t,icon:L}))});R.displayName=`LinkIcon`;let se={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,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.76157C6.75249 4.52725 6.75249 4.14735 6.98681 3.91304L8.27535 2.62449C9.70209 1.19776 12.0153 1.19776 13.442 2.62449C14.8688 4.05123 14.8688 6.36442 13.442 7.79116L12.1535 9.0797C11.9192 9.31402 11.5393 9.31402 11.3049 9.0797C11.0706 8.84539 11.0706 8.46549 11.3049 8.23117L12.5935 6.94263C13.5516 5.98452 13.5516 4.43113 12.5935 3.47302Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M3.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.05395C4.4606 6.81963 4.0807 6.81963 3.84639 7.05395L2.55784 8.34249C1.13111 9.76923 1.13111 12.0824 2.55784 13.5092C3.98458 14.9359 6.29777 14.9359 7.72451 13.5092L9.01305 12.2206C9.24737 11.9863 9.24737 11.6064 9.01305 11.3721C8.77874 11.1378 8.39884 11.1378 8.16452 11.3721L6.87598 12.6606C5.91787 13.6187 4.36448 13.6187 3.40637 12.6606Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M3.5852 2.80332C3.35088 2.569 2.97098 2.569 2.73667 2.80332C2.50235 3.03763 2.50235 3.41753 2.73667 3.65185L12.4151 13.3302C12.6494 13.5646 13.0293 13.5646 13.2636 13.3302C13.4979 13.0959 13.4979 12.716 13.2636 12.4817L3.5852 2.80332Z`}}]},ce=(0,p.forwardRef)(function(e,t){return(0,p.createElement)(j,Object.assign({},e,{id:`unlink-icon`,ref:t,icon:se}))});ce.displayName=`UnlinkIcon`;let z={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,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`}}]},le=(0,p.forwardRef)(function(e,t){return(0,p.createElement)(j,Object.assign({},e,{id:`write-icon`,ref:t,icon:z}))});le.displayName=`WriteIcon`;let ue={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`#35BD4B`,d:`M3.4535 1.12549C2.7002 1.12549 2.08954 1.73615 2.08954 2.48945V13.5104C2.08954 14.2637 2.7002 14.8744 3.4535 14.8744H12.5465C13.2998 14.8744 13.9105 14.2637 13.9105 13.5104V5.0992L10.0091 1.12549H3.4535Z`}},{tag:`path`,attrs:{fill:`#32A846`,d:`M10.0075 1.12549L13.9104 5.09842H10.6742C10.306 5.09842 10.0075 4.79994 10.0075 4.43175V1.12549Z`}},{tag:`path`,attrs:{fill:`white`,d:`M7.8088 10.2949L6.3764 12.403C6.26259 12.5705 6.03455 12.614 5.86705 12.5002C5.69955 12.3864 5.65603 12.1584 5.76984 11.9909L7.3655 9.64252L5.94042 7.54519C5.82661 7.37769 5.87013 7.14964 6.03763 7.03583C6.20512 6.92202 6.43317 6.96555 6.54698 7.13304L7.8088 8.9901L9.07062 7.13304C9.18443 6.96555 9.41248 6.92202 9.57997 7.03583C9.74747 7.14964 9.79099 7.37769 9.67718 7.54519L8.2521 9.64252L9.84776 11.9909C9.96157 12.1584 9.91805 12.3864 9.75055 12.5002C9.58305 12.614 9.35501 12.5705 9.2412 12.403L7.8088 10.2949Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},de=(0,p.forwardRef)(function(e,t){return(0,p.createElement)(j,Object.assign({},e,{id:`xlsx-multi-icon`,ref:t,icon:ue}))});de.displayName=`XlsxMultiIcon`;let fe={[f.SheetHyperLinkType.URL]:(0,m.jsx)(R,{}),[f.SheetHyperLinkType.SHEET]:(0,m.jsx)(de,{className:`univer-text-green-500`}),[f.SheetHyperLinkType.RANGE]:(0,m.jsx)(F,{}),[f.SheetHyperLinkType.DEFINE_NAME]:(0,m.jsx)(F,{}),[f.SheetHyperLinkType.INVALID]:(0,m.jsx)(F,{})},pe=e=>{var n,i;let a=(0,s.useDependency)(H),o=(0,s.useDependency)(t.ICommandService),c=(0,s.useDependency)(s.IMessageService),u=(0,s.useDependency)(t.LocaleService),d=(0,s.useDependency)(E),p=(0,s.useDependency)(r.IEditorBridgeService),h=(0,s.useDependency)(f.SheetsHyperLinkParserService),_=(0,s.useDependency)(s.IZenZoneService),{customRange:v,row:y,col:b,unitId:x,subUnitId:S,editPermission:C,copyPermission:w,type:T}=e;if(!(!(v==null||(n=v.properties)==null)&&n.url))return null;let D=h.parseHyperLink((i=v.properties.url)==null?``:i),O=D.type===f.SheetHyperLinkType.INVALID;return(0,m.jsxs)(`div`,{className:(0,l.clsx)(`univer-mb-1 univer-flex univer-max-w-80 univer-flex-row univer-items-center univer-justify-between univer-overflow-hidden univer-rounded-lg univer-bg-white univer-p-3 univer-shadow-md dark:!univer-bg-gray-900`,l.borderClassName),onClick:()=>a.hideCurrentPopup(),children:[(0,m.jsxs)(`div`,{className:(0,l.clsx)(`univer-flex univer-h-6 univer-flex-1 univer-cursor-pointer univer-flex-row univer-items-center univer-truncate univer-text-sm univer-leading-5 univer-text-primary-600`,{"univer-text-red-500":O}),onClick:()=>{_.visible||O||d.navigate(D)},children:[(0,m.jsx)(`div`,{className:`univer-mr-2 univer-flex univer-size-5 univer-flex-none univer-items-center univer-justify-center univer-text-base univer-text-gray-900 dark:!univer-text-white`,children:fe[D.type]}),(0,m.jsx)(l.Tooltip,{showIfEllipsis:!0,title:D.name,asChild:!0,children:(0,m.jsx)(`span`,{className:`univer-flex-1 univer-truncate`,children:D.name})})]}),(0,m.jsxs)(`div`,{className:`univer-flex univer-h-6 univer-flex-none univer-flex-row univer-items-center univer-justify-center`,children:[w&&(0,m.jsx)(`div`,{className:(0,l.clsx)(`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,{"univer-text-red-500":O}),onClick:()=>{if(!O){if(D.type!==f.SheetHyperLinkType.URL){let e=new URL(window.location.href);e.hash=D.url.slice(1),navigator.clipboard.writeText(e.href)}else navigator.clipboard.writeText(D.url);c.show({content:u.t(`hyperLink.message.coped`),type:l.MessageType.Info})}},children:(0,m.jsx)(l.Tooltip,{placement:`bottom`,title:u.t(`hyperLink.popup.copy`),children:(0,m.jsx)(oe,{className:`dark:!univer-text-white`})})}),C&&(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{o.executeCommand(K.id,{unitId:x,subUnitId:S,row:y,col:b,customRangeId:v.rangeId,type:T})},children:(0,m.jsx)(l.Tooltip,{placement:`bottom`,title:u.t(`hyperLink.popup.edit`),children:(0,m.jsx)(le,{className:`dark:!univer-text-white`})})}),(0,m.jsx)(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-flex-row univer-items-center univer-justify-center univer-rounded univer-text-base hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,onClick:()=>{let e=T===g.EDITING||T===g.ZEN_EDITOR?f.CancelRichHyperLinkCommand.id:f.CancelHyperLinkCommand.id;o.syncExecuteCommand(e,{unitId:x,subUnitId:S,id:v.rangeId,row:y,column:b,documentId:T===g.ZEN_EDITOR?t.DOCS_ZEN_EDITOR_UNIT_ID_KEY:p.getCurrentEditorId()})&&a.hideCurrentPopup(void 0,!0)},children:(0,m.jsx)(l.Tooltip,{placement:`bottom`,title:u.t(`hyperLink.popup.cancel`),children:(0,m.jsx)(ce,{className:`dark:!univer-text-white`})})})]})]})]})},B=()=>{let e=(0,s.useDependency)(H),[n,r]=(0,p.useState)(null),i=(0,s.useDependency)(t.IUniverInstanceService);if((0,p.useEffect)(()=>{r(e.currentPopup);let t=e.currentPopup$.subscribe(e=>{r(e)});return()=>{t.unsubscribe()}},[e.currentPopup,e.currentPopup$]),!n)return null;if(n.showAll){var a;let e=i.getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET),r=e==null?void 0:e.getSheetBySheetId(n.subUnitId),o=r==null?void 0:r.getCell(n.row,n.col),s=o==null||(a=o.p)==null||(a=a.body)==null?void 0:a.customRanges;return s!=null&&s.length?(0,m.jsx)(`div`,{children:s.map(e=>(0,m.jsx)(pe,{...n,customRange:e},e.rangeId))}):null}return(0,m.jsx)(pe,{...n})};B.componentKey=`univer.sheet.cell-link-popup`;let V=(e,t)=>{var n,r;return e.unitId===t.unitId&&e.subUnitId===t.subUnitId&&e.row===t.row&&e.col===t.col&&((n=e.customRange)==null?void 0:n.rangeId)===((r=t.customRange)==null?void 0:r.rangeId)&&e.type===t.type},H=class extends t.Disposable{get currentPopup(){return this._currentPopup}get currentEditing(){return this._currentEditing$.getValue()}constructor(e,t,n,r,i,a,o){super(),this._sheetCanvasPopManagerService=e,this._injector=t,this._univerInstanceService=n,this._editorBridgeService=r,this._textSelectionManagerService=i,this._docCanvasPopManagerService=a,this._zenZoneService=o,A(this,`_currentPopup`,null),A(this,`_currentPopup$`,new c.Subject),A(this,`currentPopup$`,this._currentPopup$.asObservable()),A(this,`_currentEditingPopup`,null),A(this,`_currentEditing$`,new c.BehaviorSubject(null)),A(this,`currentEditing$`,this._currentEditing$.asObservable()),A(this,`_isKeepVisible`,!1),this.disposeWithMe(()=>{this.hideCurrentPopup(),this.endEditing(),this._currentEditing$.complete(),this._currentPopup$.complete()})}setIsKeepVisible(e){this._isKeepVisible=e}getIsKeepVisible(){return this._isKeepVisible}showPopup(e){if(this._currentPopup&&V(e,this._currentPopup)||(this.hideCurrentPopup(void 0,!0),e.type!==g.ZEN_EDITOR&&this._zenZoneService.visible))return;let n=this._currentEditing$.getValue();if(n&&V(e,n))return;let{unitId:r,subUnitId:i,row:a,col:o,customRangeRect:s,customRange:c}=e,l,u={componentKey:B.componentKey,direction:`bottom`,onClickOutside:()=>{this.hideCurrentPopup()},onClick:()=>{this.hideCurrentPopup(e.type,!0)}};if(e.type===g.EDITING){if(!c)return;l=s&&this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(s,u)}else if(e.type===g.ZEN_EDITOR){if(!c)return;l=this._docCanvasPopManagerService.attachPopupToRange({startOffset:c.startIndex,endOffset:c.endIndex+1,collapsed:!1},u,t.DOCS_ZEN_EDITOR_UNIT_ID_KEY)}else if(e.showAll)l=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,u,r,i);else{if(!c)return;l=s&&this._sheetCanvasPopManagerService.attachPopupByPosition(s,u,e)}if(l){if(this._currentPopup){var d;(d=this._currentPopup.disposable)==null||d.dispose()}this._currentPopup={unitId:r,subUnitId:i,disposable:l,row:a,col:o,editPermission:!!e.editPermission,copyPermission:!!e.copyPermission,customRange:c,type:e.type,showAll:e.showAll},this._currentPopup$.next(this._currentPopup)}}hideCurrentPopup(e,t){if(this._currentPopup&&((!e||e===this._currentPopup.type)&&this._currentPopup.disposable.canDispose()||t)){var n;(n=this._currentPopup)==null||(n=n.disposable)==null||n.dispose(),this._currentPopup=null,this._currentPopup$.next(null)}}dispose(){super.dispose(),this.hideCurrentPopup(),this.endEditing(),this._currentPopup$.complete(),this._currentEditing$.complete()}_getEditingRange(){let e=this._editorBridgeService.isVisible().visible,n=this._editorBridgeService.getEditCellState();if(e&&n){var r,i,a;let e=this._textSelectionManagerService.getActiveTextRange(),o=(r=n.documentLayoutObject.documentModel)==null?void 0:r.getBody();if(!o)return null;if(!e||e.collapsed)return{startOffset:0,endOffset:o.dataStream.length-2,collapsed:o.dataStream.length-2==0,label:t.BuildTextUtils.transform.getPlainText(o.dataStream)};let s=t.BuildTextUtils.customRange.getCustomRangesInterestsWithSelection(e,(i=(a=o.customRanges)==null?void 0:a.filter(e=>e.rangeType===t.CustomRangeType.HYPERLINK))==null?[]:i),c=e.startOffset,l=e.endOffset;return s.forEach(e=>{c=Math.min(c,e.startIndex),l=Math.max(l,e.endIndex+1)}),{startOffset:c,endOffset:l,collapsed:c===l,label:t.BuildTextUtils.transform.getPlainText(o.dataStream.slice(c,l))}}return null}get _editPopup(){return{componentKey:re.componentKey,direction:`vertical`,onClickOutside:()=>{this.endEditing()},onContextMenu:()=>{this.endEditing()},hiddenType:`hide`}}startAddEditing(e){let{unitId:n,subUnitId:r,type:i}=e;if(i===g.ZEN_EDITOR){var s;let n=this._univerInstanceService.getUnit(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY,t.UniverInstanceType.UNIVER_DOC);if(!n)return;let r=this._textSelectionManagerService.getActiveTextRange();if(!r)return;this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange(r,this._editPopup,t.DOCS_ZEN_EDITOR_UNIT_ID_KEY);let i=(s=n.getBody())==null?void 0:s.dataStream.slice(r.startOffset,r.endOffset);this._currentEditing$.next({...e,label:i})}else if(i===g.EDITING){var c;let i=this._getEditingRange();if(!i)return;this._textSelectionManagerService.replaceDocRanges([{...i}],{unitId:t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,subUnitId:t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY});let s=this._injector.get(o.IRenderManagerService).getRenderById(t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);if(!s)return;let l=(0,a.calcDocRangePositions)(i,s);if(!(l!=null&&l.length))return;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(l.pop(),this._editPopup,n,r),this._currentEditing$.next({...e,label:(c=i==null?void 0:i.label)==null?``:c})}else{var l,u,d;this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,this._editPopup,n,r);let i=this._univerInstanceService.getUnit(n,t.UniverInstanceType.UNIVER_SHEET),a=i==null?void 0:i.getSheetBySheetId(r),o=a==null?void 0:a.getCellRaw(e.row,e.col);this._currentEditing$.next({...e,label:o!=null&&o.p?t.BuildTextUtils.transform.getPlainText((l=(u=o.p.body)==null?void 0:u.dataStream)==null?``:l):((d=o==null?void 0:o.v)==null?``:d).toString()})}}startEditing(e){var n;(n=this._currentEditingPopup)==null||n.dispose(),this.hideCurrentPopup(void 0,!0);let{unitId:i,subUnitId:a}=e,o,s;if(e.type===g.ZEN_EDITOR){var c,l;let n=this._univerInstanceService.getUnit(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY,t.UniverInstanceType.UNIVER_DOC);if(o=n==null||(c=n.getBody())==null||(c=c.customRanges)==null?void 0:c.find(t=>t.rangeId===e.customRangeId),s=o?n==null||(l=n.getBody())==null?void 0:l.dataStream.slice(o.startIndex,o.endIndex+1):``,!o||!s)return;this._textSelectionManagerService.replaceTextRanges([{startOffset:o.startIndex,endOffset:o.endIndex+1}]),this._currentEditingPopup=this._docCanvasPopManagerService.attachPopupToRange({startOffset:o.startIndex,endOffset:o.endIndex,collapsed:!1},this._editPopup,t.DOCS_ZEN_EDITOR_UNIT_ID_KEY)}else if(e.type===g.EDITING){var u;let t=(0,r.getEditingCustomRangePosition)(this._injector,e.unitId,e.subUnitId,e.row,e.col,e.customRangeId);if(!t||!((u=t.rects)!=null&&u.length))return;o=t.customRange,s=t.label,this._textSelectionManagerService.replaceTextRanges([{startOffset:o.startIndex,endOffset:o.endIndex+1}]),this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToAbsolutePosition(t.rects.pop(),this._editPopup,i,a)}else{var d;let n=this._univerInstanceService.getUnit(i,t.UniverInstanceType.UNIVER_SHEET),c=n==null?void 0:n.getSheetBySheetId(a),l=c==null?void 0:c.getCellRaw(e.row,e.col),u=n==null?void 0:n.getStyles().getStyleByCell(l),f=u==null?void 0:u.tr,p=(0,r.getCustomRangePosition)(this._injector,e.unitId,e.subUnitId,e.row,e.col,e.customRangeId);if(!p||!((d=p.rects)!=null&&d.length))return;o=p.customRange,s=p.label,f?this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupToCell(e.row,e.col,this._editPopup,i,a):this._currentEditingPopup=this._sheetCanvasPopManagerService.attachPopupByPosition(p.rects.pop(),this._editPopup,{unitId:i,subUnitId:a,row:e.row,col:e.col})}this._currentEditing$.next({...e,customRange:o,label:s})}endEditing(e){if(this.getIsKeepVisible())return;let t=this._currentEditing$.getValue();if(t&&(!e||e===t.type)){var n;(n=this._currentEditingPopup)==null||n.dispose(),this._currentEditing$.next(null)}}};H=w([C(0,(0,t.Inject)(r.SheetCanvasPopManagerService)),C(1,(0,t.Inject)(t.Injector)),C(2,t.IUniverInstanceService),C(3,r.IEditorBridgeService),C(4,(0,t.Inject)(i.DocSelectionManagerService)),C(5,(0,t.Inject)(a.DocCanvasPopManagerService)),C(6,s.IZenZoneService)],H);let U=function(e){return e[e.ALLOWED=0]=`ALLOWED`,e[e.DISABLED_BY_CELL=1]=`DISABLED_BY_CELL`,e[e.ALLOW_ON_EDITING=2]=`ALLOW_ON_EDITING`,e}({}),me=new Set([t.DataValidationType.CHECKBOX,t.DataValidationType.LIST,t.DataValidationType.LIST_MULTIPLE]),W=(e,t,n,r)=>{var i,a;let o=t.getCell(n,r);if(o!=null&&o.f||o!=null&&o.si||!(o==null||(i=o.p)==null||(i=i.body)==null||(i=i.customBlocks)==null)&&i.length)return U.DISABLED_BY_CELL;let s=e.has(h.SheetDataValidationModel)?e.get(h.SheetDataValidationModel):null,c=s==null?void 0:s.getRuleByLocation(t.getUnitId(),t.getSheetId(),n,r);return c&&me.has(c.type)?!0:!(o==null||(a=o.p)==null||(a=a.drawingsOrder)==null)&&a.length?U.ALLOW_ON_EDITING:U.ALLOWED},he=e=>{let r=e.get(t.IUniverInstanceService).getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!r)return!0;let i=r.getActiveSheet(),a=e.get(n.SheetsSelectionsService).getCurrentSelections();if(!a.length)return!0;let o=a[0].range.startRow,s=a[0].range.startColumn;return W(e,i,o,s)===U.DISABLED_BY_CELL},G=e=>{let n=e.get(i.DocSelectionManagerService),r=e.get(t.IUniverInstanceService),a=n.getTextRanges();if(!(a!=null&&a.length))return!0;let o=r.getCurrentUnitForType(t.UniverInstanceType.UNIVER_DOC);return!!(!o||a.every(e=>e.collapsed)||!o.getSelfOrHeaderFooterModel(a[0].segmentId).getBody())},K={type:t.CommandType.OPERATION,id:`sheet.operation.open-hyper-link-edit-panel`,handler(e,t){if(!t)return!1;let n=e.get(H);return t.customRangeId?n.startEditing(t):n.startAddEditing(t),!0}},q={type:t.CommandType.OPERATION,id:`sheet.operation.close-hyper-link-popup`,handler(e){return e.get(H).endEditing(),!0}},J={type:t.CommandType.OPERATION,id:`sheet.operation.insert-hyper-link`,handler(e){var i;let a=e.get(t.IUniverInstanceService),o=(0,n.getSheetCommandTarget)(a),s=e.get(r.IEditorBridgeService);if(!o)return!1;let c=e.get(t.ICommandService),l=e.get(n.SheetsSelectionsService).getCurrentLastSelection();if(!l)return!1;let u=l.range.startRow,d=l.range.startColumn,f=s.isVisible(),p=((i=a.getFocusedUnit())==null?void 0:i.getUnitId())===t.DOCS_ZEN_EDITOR_UNIT_ID_KEY;return c.executeCommand(K.id,{unitId:o.unitId,subUnitId:o.subUnitId,row:u,col:d,type:p?g.ZEN_EDITOR:f.visible?g.EDITING:g.VIEWING})}},Y={type:t.CommandType.OPERATION,id:`sheet.operation.insert-hyper-link-toolbar`,handler(e){if(he(e))return!1;let n=e.get(t.ICommandService);return e.get(H).currentEditing?n.executeCommand(q.id):n.executeCommand(J.id)}},ge=`SHEET_HYPER_LINK_UI_PLUGIN`,X=class extends t.Disposable{registerPlainTextFilter(e){this._plainTextFilter.add(e)}removePlainTextFilter(e){this._plainTextFilter.delete(e)}_filterPlainText(e){return Array.from(this._plainTextFilter).every(t=>t(e))}constructor(e,t,n,r){super(),this._sheetClipboardService=e,this._hyperLinkModel=t,this._injector=n,this._resolverService=r,A(this,`_plainTextFilter`,new Set),A(this,`_copyInfo`,void 0),this._initCopyPaste(),this.disposeWithMe(()=>{this._plainTextFilter.clear()})}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:ge,onBeforeCopy:(e,t,n)=>this._collect(e,t,n),onPasteCells:(e,t,n,i)=>{let{copyType:a=r.COPY_TYPE.COPY,pasteType:o}=i,{range:s}=e||{},{range:c,unitId:l,subUnitId:u}=t;return this._generateMutations(c,{copyType:a,pasteType:o,copyRange:s,unitId:l,subUnitId:u})},onPastePlainText:(e,n)=>{let i=this._filterPlainText(n);if(_(n)&&i){let{range:n,unitId:i,subUnitId:a}=e,{ranges:[o],mapFunc:s}=(0,r.virtualizeDiscreteRanges)([n]),c=[],l=[];return t.Range.foreach(o,(e,t)=>{let{row:n,col:r}=s(e,t),o=this._hyperLinkModel.getHyperLinkByLocation(i,a,n,r);o&&c.push({id:f.RemoveHyperLinkMutation.id,params:{unitId:i,subUnitId:a,id:o.id}}),o&&l.push({id:f.AddHyperLinkMutation.id,params:{unitId:i,subUnitId:a,link:o}})}),{redos:c,undos:l}}return{undos:[],redos:[]}},priority:99})}_collect(e,r,i){let a=new t.ObjectMatrix;this._copyInfo={unitId:e,subUnitId:r,matrix:a};let o=this._injector.invoke(t=>(0,n.rangeToDiscreteRange)(i,t,e,r));if(!o)return;let{rows:s,cols:c}=o;s.forEach((t,n)=>{c.forEach((i,o)=>{var s;let c=this._hyperLinkModel.getHyperLinkByLocation(e,r,t,i);a.setValue(n,o,(s=c==null?void 0:c.id)==null?``:s)})})}_generateMutations(e,n){if(!this._copyInfo||!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!n.copyRange||[r.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,r.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,r.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,r.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA].includes(n.pasteType))return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=this._copyInfo,o=[],s=[],{ranges:[c,l],mapFunc:u}=(0,r.virtualizeDiscreteRanges)([n.copyRange,e]);return(0,r.getRepeatRange)(c,l,!0).forEach(({startRange:e})=>{var r;(r=this._copyInfo)==null||r.matrix.forValue((r,c,l)=>{let d=t.Rectangle.getPositionRange({startRow:r,endRow:r,startColumn:c,endColumn:c},e),p=this._hyperLinkModel.getHyperLink(i,a,l),{row:m,col:h}=u(d.startRow,d.startColumn),g=this._hyperLinkModel.getHyperLinkByLocation(n.unitId,n.subUnitId,m,h),_=(0,t.generateRandomId)();g&&o.push({id:f.RemoveHyperLinkMutation.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,id:g.id}}),p&&(o.push({id:f.AddHyperLinkMutation.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,link:{...p,id:_,row:m,column:h}}}),s.push({id:f.RemoveHyperLinkMutation.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,id:_}})),g&&s.push({id:f.AddHyperLinkMutation.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,link:g}})})}),{redos:o,undos:s}}};X=w([C(0,r.ISheetClipboardService),C(1,(0,t.Inject)(f.HyperLinkModel)),C(2,(0,t.Inject)(t.Injector)),C(3,(0,t.Inject)(E))],X);let Z=(e,i=t.DOCS_ZEN_EDITOR_UNIT_ID_KEY)=>{var s;let l=e.get(t.IUniverInstanceService),u=(s=e.get(o.IRenderManagerService).getRenderById(i))==null?void 0:s.with(a.DocSelectionRenderService);return u?u.textSelectionInner$.pipe((0,c.map)(()=>{let t=e.get(r.IEditorBridgeService).getEditCellState();if(!t)return!0;let i=(0,n.getSheetCommandTarget)(l,{unitId:t.unitId,subUnitId:t.sheetId});return!(i!=null&&i.worksheet)||W(e,i.worksheet,t.row,t.column)===1?!0:G(e)})):(0,c.of)(!0)},_e=e=>{var i;let a=e.get(t.IUniverInstanceService),o=e.has(r.IEditorBridgeService)?e.get(r.IEditorBridgeService):null;return((i=o==null?void 0:o.currentEditCellState$.pipe((0,c.map)(t=>{if(!t)return U.DISABLED_BY_CELL;let r=(0,n.getSheetCommandTarget)(a,{unitId:t.unitId,subUnitId:t.sheetId});return r?W(e,r.worksheet,t.row,t.column):U.DISABLED_BY_CELL}),(0,c.switchMap)(n=>n===U.DISABLED_BY_CELL?(0,c.of)(!0):(0,c.combineLatest)([o?o.visible$:(0,c.of)(null),a.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_DOC)]).pipe((0,c.switchMap)(([r,i])=>r!=null&&r.visible?(i==null?void 0:i.getUnitId())===t.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY?(0,c.of)(!0):Z(e,t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY):(0,c.of)(n!==U.ALLOWED))))))==null?(0,c.of)(!0):i).pipe((0,c.switchMap)(t=>t?(0,c.of)(!0):(0,r.getCurrentRangeDisable$)(e,{workbookTypes:[n.WorkbookEditablePermission],worksheetTypes:[n.WorksheetEditPermission,n.WorksheetSetCellValuePermission,n.WorksheetInsertHyperlinkPermission],rangeTypes:[n.RangeProtectionPermissionEditPoint]},!0)))},Q={commandId:J.id,type:s.MenuItemType.BUTTON,title:`hyperLink.menu.add`,icon:`LinkIcon`},ve=e=>`${e}-zen-editor`,ye=e=>({...Q,id:Q.commandId,hidden$:(0,s.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:_e(e)}),be=e=>({...Q,id:ve(Q.commandId),hidden$:(0,s.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC,t.DOCS_ZEN_EDITOR_UNIT_ID_KEY),disabled$:Z(e)}),xe={tooltip:`hyperLink.form.addTitle`,commandId:Y.id,type:s.MenuItemType.BUTTON,icon:`LinkIcon`},Se=e=>({...xe,id:xe.commandId,hidden$:(0,s.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:_e(e)}),Ce=e=>({...xe,id:ve(xe.commandId),hidden$:(0,s.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC,t.DOCS_ZEN_EDITOR_UNIT_ID_KEY),disabled$:Z(e)}),we={id:Y.id,binding:s.KeyCode.K|s.MetaKeys.CTRL_COMMAND,preconditions:r.whenSheetEditorFocused};var Te=`@univerjs/sheets-hyper-link-ui`,Ee=`0.20.1`;let De=class extends t.Disposable{constructor(e,t){super(),this._autoFillService=e,this._hyperLinkModel=t,this._initAutoFill()}_initAutoFill(){let e=()=>({redos:[],undos:[]}),i=(e,i)=>{let{source:a,target:o,unitId:s,subUnitId:c}=e,l=(0,r.virtualizeDiscreteRanges)([a,o]),[u,d]=l.ranges,{mapFunc:p}=l,m={row:u.startRow,col:u.startColumn},h=n.AutoFillTools.getAutoFillRepeatRange(u,d),g=[],_=[];return h.forEach(e=>{let r=e.repeatStartCell,a=e.relativeRange,o={startRow:m.row,startColumn:m.col,endColumn:m.col,endRow:m.row},l={startRow:r.row,startColumn:r.col,endColumn:r.col,endRow:r.row};t.Range.foreach(a,(e,r)=>{let a=t.Rectangle.getPositionRange({startRow:e,startColumn:r,endColumn:r,endRow:e},o),{row:u,col:d}=p(a.startRow,a.startColumn),m=this._hyperLinkModel.getHyperLinkByLocation(s,c,u,d),h=t.Rectangle.getPositionRange({startRow:e,startColumn:r,endColumn:r,endRow:e},l),{row:v,col:y}=p(h.startRow,h.startColumn),b=(0,t.generateRandomId)(),x=this._hyperLinkModel.getHyperLinkByLocation(s,c,v,y);x&&g.push({id:f.RemoveHyperLinkMutation.id,params:{unitId:s,subUnitId:c,id:x.id}}),(n.AUTO_FILL_APPLY_TYPE.COPY===i||n.AUTO_FILL_APPLY_TYPE.SERIES===i)&&m&&(g.push({id:f.AddHyperLinkMutation.id,params:{unitId:s,subUnitId:c,link:{...m,id:b,row:v,column:y}}}),_.push({id:f.RemoveHyperLinkMutation.id,params:{unitId:s,subUnitId:c,id:b}})),x&&_.push({id:f.AddHyperLinkMutation.id,params:{unitId:s,subUnitId:c,link:x}})})}),{undos:_,redos:g}},a={id:ge,onFillData:(t,r,a)=>a===n.AUTO_FILL_APPLY_TYPE.COPY||a===n.AUTO_FILL_APPLY_TYPE.ONLY_FORMAT||a===n.AUTO_FILL_APPLY_TYPE.SERIES?i(t,a):e()};this.disposeWithMe(this._autoFillService.addHook(a))}};De=w([C(0,n.IAutoFillService),C(1,(0,t.Inject)(f.HyperLinkModel))],De);let Oe=class extends t.Disposable{constructor(e,t,n){super(),this._localeService=e,this._commandService=t,this._sheetPermissionCheckController=n,this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{e.id===we.id&&(this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[n.WorkbookEditablePermission],rangeTypes:[n.RangeProtectionPermissionEditPoint],worksheetTypes:[n.WorksheetEditPermission,n.WorksheetSetCellValuePermission,n.WorksheetInsertHyperlinkPermission]})||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localeService.t(`permission.dialog.hyperLinkErr`)))}))}};Oe=w([C(0,(0,t.Inject)(t.LocaleService)),C(1,t.ICommandService),C(2,(0,t.Inject)(n.SheetPermissionCheckController))],Oe);let ke=class extends t.Disposable{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._hoverManagerService=e,this._sheetsHyperLinkPopupService=t,this._renderManagerService=n,this._permissionService=r,this._sheetPermissionCheckController=i,this._commandService=a,this._editorBridgeService=o,this._textSelectionManagerService=s,this._univerInstanceService=c,this._zenZoneService=l,this._initHoverListener(),this._initCommandListener(),this._initHoverEditingListener(),this._initTextSelectionListener(),this._initZenEditor()}_getLinkPermission(e){let{unitId:r,subUnitId:i,row:a,col:o}=e,s=this._univerInstanceService.getUnit(r,t.UniverInstanceType.UNIVER_SHEET),c=s==null?void 0:s.getSheetBySheetId(i);if(!c)return{viewPermission:!1,editPermission:!1,copyPermission:!1};let l=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[n.WorkbookViewPermission],worksheetTypes:[n.WorksheetViewPermission],rangeTypes:[n.RangeProtectionPermissionViewPoint]},[{startRow:a,startColumn:o,endRow:a,endColumn:o}],r,i),u=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[n.WorkbookEditablePermission],worksheetTypes:[n.WorksheetEditPermission,n.WorksheetInsertHyperlinkPermission],rangeTypes:[n.RangeProtectionPermissionEditPoint]},[{startRow:a,startColumn:o,endRow:a,endColumn:o}],r,i),d=c.getCellRaw(a,o);d!=null&&d.f&&d.f.startsWith(`=HYPERLINK(`)&&(u=!1);let f=this._permissionService.composePermission([new n.WorkbookCopyPermission(r).id,new n.WorksheetCopyPermission(r,i).id]).every(e=>e.value);return{viewPermission:l,editPermission:u,copyPermission:f}}_initHoverListener(){this.disposeWithMe(this._hoverManagerService.currentRichText$.pipe((0,c.debounceTime)(200)).subscribe(e=>{var n,i,a;if(!e||((n=e.customRange)==null?void 0:n.rangeType)!==t.CustomRangeType.HYPERLINK){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let{unitId:o,subUnitId:s,row:c,col:l}=e,u=this._renderManagerService.getRenderById(o);if(!u)return;let d=this._univerInstanceService.getUnit(o,t.UniverInstanceType.UNIVER_SHEET),f=d==null?void 0:d.getSheetBySheetId(s);if(!f)return;if(!u.with(r.HoverRenderController).active){this._sheetsHyperLinkPopupService.hideCurrentPopup(g.VIEWING);return}let p=u==null||(i=u.with(r.SheetSkeletonManagerService).getSkeletonParam(s))==null?void 0:i.skeleton,m=l,h=c,_=h,v=m;p&&p.overflowCache.forValue((e,n,r)=>{t.Rectangle.contains(r,{startColumn:m,endColumn:m,startRow:h,endRow:h})&&(_=e,v=n)});let{viewPermission:y,editPermission:b,copyPermission:x}=this._getLinkPermission(e);if(!y){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let S=f.getCellStyleOnly(_,v),C=d.getStyles().getStyleByCell(S),w=C==null||(a=C.tr)==null?void 0:a.a;if(!w&&!e.customRange){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}this._sheetsHyperLinkPopupService.showPopup({row:_,col:v,editPermission:b,copyPermission:x,customRange:e.customRange,customRangeRect:e.rect,type:g.VIEWING,unitId:o,subUnitId:s,showAll:!!w})}))}_initHoverEditingListener(){let e=null;this.disposeWithMe(this._editorBridgeService.currentEditCellState$.pipe((0,c.switchMap)(e=>this._editorBridgeService.visible$.pipe((0,c.map)(t=>({visible:t,state:e}))))).subscribe(({visible:n,state:i})=>{if(!i||i.editorUnitId!==t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)return;if(!n.visible){e==null||e.unsubscribe(),this._sheetsHyperLinkPopupService.hideCurrentPopup(g.EDITING),this._sheetsHyperLinkPopupService.endEditing(g.EDITING);return}let{editorUnitId:o,unitId:s,sheetId:l,row:u,column:d}=i,f=this._renderManagerService.getRenderById(o);if(!f)return;let{editPermission:p,viewPermission:m,copyPermission:h}=this._getLinkPermission({unitId:s,subUnitId:l,row:u,col:d}),_=f.with(a.DocEventManagerService);m&&(e==null||e.unsubscribe(),e=_.hoverCustomRanges$.pipe((0,c.debounceTime)(200)).subscribe(e=>{var n;let i=e.find(e=>e.range.rangeType===t.CustomRangeType.HYPERLINK);if(!i){this._sheetsHyperLinkPopupService.hideCurrentPopup();return}let a=i.rects[i.rects.length-1];if(!(!((n=this._renderManagerService.getRenderById(s))==null||(n=n.with(r.SheetSkeletonManagerService).getSkeletonParam(l))==null)&&n.skeleton)||!a)return;let o=f.engine.getCanvasElement().getBoundingClientRect();this._sheetsHyperLinkPopupService.showPopup({unitId:s,subUnitId:l,row:u,col:d,customRange:i.range,customRangeRect:{left:a.left+o.left,top:a.top+o.top,bottom:a.bottom+o.top,right:a.right+o.left},editPermission:p,copyPermission:h,type:g.EDITING})}))})),this.disposeWithMe(()=>{e==null||e.unsubscribe()})}_initZenEditor(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e?(this._sheetsHyperLinkPopupService.hideCurrentPopup(g.VIEWING),this._sheetsHyperLinkPopupService.hideCurrentPopup(g.EDITING),this._sheetsHyperLinkPopupService.endEditing(g.EDITING),this._sheetsHyperLinkPopupService.hideCurrentPopup(g.VIEWING)):(this._sheetsHyperLinkPopupService.hideCurrentPopup(g.ZEN_EDITOR),this._sheetsHyperLinkPopupService.endEditing(g.ZEN_EDITOR))})),this.disposeWithMe(this._univerInstanceService.focused$.pipe((0,c.switchMap)(e=>{let n=e===t.DOCS_ZEN_EDITOR_UNIT_ID_KEY?this._renderManagerService.getRenderById(e):null;return n?n.with(a.DocEventManagerService).hoverCustomRanges$.pipe((0,c.debounceTime)(200)):new c.Observable(e=>{e.next(null)})})).subscribe(e=>{let n=e==null?void 0:e.find(e=>e.range.rangeType===t.CustomRangeType.HYPERLINK),r=this._editorBridgeService.getEditCellState();if(n&&r){let{unitId:e,sheetId:t,row:i,column:a}=r,{editPermission:o,viewPermission:s,copyPermission:c}=this._getLinkPermission({unitId:e,subUnitId:t,row:i,col:a});s&&this._sheetsHyperLinkPopupService.showPopup({type:g.ZEN_EDITOR,unitId:e,subUnitId:t,row:i,col:a,customRange:n.range,editPermission:o,copyPermission:c})}else this._sheetsHyperLinkPopupService.hideCurrentPopup(g.ZEN_EDITOR)}))}_initTextSelectionListener(){this.disposeWithMe(this._textSelectionManagerService.textSelection$.subscribe(e=>{e&&e.unitId===t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY&&this._sheetsHyperLinkPopupService.endEditing(g.EDITING)}))}_initCommandListener(){let e=[n.ClearSelectionContentCommand.id,n.ClearSelectionAllCommand.id,n.ClearSelectionFormatCommand.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{e.includes(t.id)&&this._sheetsHyperLinkPopupService.hideCurrentPopup()}))}};ke=w([C(0,(0,t.Inject)(r.HoverManagerService)),C(1,(0,t.Inject)(H)),C(2,(0,t.Inject)(o.IRenderManagerService)),C(3,(0,t.Inject)(t.IPermissionService)),C(4,(0,t.Inject)(n.SheetPermissionCheckController)),C(5,t.ICommandService),C(6,r.IEditorBridgeService),C(7,(0,t.Inject)(i.DocSelectionManagerService)),C(8,t.IUniverInstanceService),C(9,s.IZenZoneService)],ke);let Ae=class extends t.Disposable{constructor(e,t){super(),this._context=e,this._hyperLinkModel=t,this._initSkeletonChange()}_initSkeletonChange(){let e=()=>{var e;(e=this._context.mainComponent)==null||e.makeForceDirty()};this.disposeWithMe(this._hyperLinkModel.linkUpdate$.pipe((0,c.debounceTime)(16)).subscribe(()=>{e()}))}};Ae=w([C(1,(0,t.Inject)(f.HyperLinkModel))],Ae);let je={[s.RibbonInsertGroup.MEDIA]:{[Y.id]:{order:1,menuItemFactory:Se},[ve(Y.id)]:{order:1,menuItemFactory:Ce}},[s.ContextMenuPosition.MAIN_AREA]:{[s.ContextMenuGroup.OTHERS]:{order:1,[Y.id]:{order:0,menuItemFactory:ye},[ve(Y.id)]:{order:0,menuItemFactory:be}}}},Me=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._componentManager=e,this._commandService=t,this._menuManagerService=n,this._injector=r,this._shortcutService=i,this._initComponents(),this._initCommands(),this._initMenus(),this._initShortCut()}_initComponents(){[[B.componentKey,B],[re.componentKey,re],[`LinkIcon`,R]].forEach(([e,t])=>{this._componentManager.register(e,t)})}_initCommands(){[K,q,J,Y].forEach(e=>{this._commandService.registerCommand(e)})}_initMenus(){this._menuManagerService.mergeMenu(je)}_initShortCut(){this._shortcutService.registerShortcut(we)}};Me=w([C(0,(0,t.Inject)(s.ComponentManager)),C(1,t.ICommandService),C(2,s.IMenuManagerService),C(3,(0,t.Inject)(t.Injector)),C(4,(0,t.Inject)(s.IShortcutService))],Me);let Ne=class extends t.Disposable{constructor(e,t){super(),this._parserService=e,this._resolverService=t,this._handleInitUrl()}_handleInitUrl(){let e=location.hash;if(e){let t=this._parserService.parseHyperLink(e);this._resolverService.navigate(t)}}};Ne=w([C(0,(0,t.Inject)(f.SheetsHyperLinkParserService)),C(1,(0,t.Inject)(E))],Ne);let $=class extends t.Plugin{constructor(e=S,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{menu:i,...a}=(0,t.merge)({},S,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(x,a)}onStarting(){[[E],[H],[ee],[ke],[Me],[De],[X],[Oe],[Ne]].forEach(e=>this._injector.add(e))}onReady(){this._injector.get(o.IRenderManagerService).registerRenderModule(t.UniverInstanceType.UNIVER_SHEET,[Ae]),this._injector.get(De),this._injector.get(X),this._injector.get(Me)}onRendered(){this._injector.get(Oe),this._injector.get(Ne),this._injector.get(ke)}};A($,`pluginName`,ge),A($,`packageName`,Te),A($,`version`,Ee),A($,`type`,t.UniverInstanceType.UNIVER_SHEET),$=w([(0,t.DependentOn)(f.UniverSheetsHyperLinkPlugin,a.UniverDocsUIPlugin),C(1,(0,t.Inject)(t.Injector)),C(2,t.IConfigService)],$),e.CloseHyperLinkPopupOperation=q,e.InsertHyperLinkOperation=J,e.InsertLinkShortcut=we,e.OpenHyperLinkEditPanelOperation=K,Object.defineProperty(e,`SheetsHyperLinkCopyPasteController`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(e,`SheetsHyperLinkPopupService`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(e,`SheetsHyperLinkResolverService`,{enumerable:!0,get:function(){return E}}),e.SheetsHyperLinkSidePanelService=ee,Object.defineProperty(e,`UniverSheetsHyperLinkUIPlugin`,{enumerable:!0,get:function(){return $}})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/sheets-hyper-link-ui",
3
- "version": "0.20.0",
3
+ "version": "0.20.1",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -65,18 +65,18 @@
65
65
  },
66
66
  "dependencies": {
67
67
  "@univerjs/icons": "^1.1.1",
68
- "@univerjs/core": "0.20.0",
69
- "@univerjs/design": "0.20.0",
70
- "@univerjs/docs": "0.20.0",
71
- "@univerjs/docs-ui": "0.20.0",
72
- "@univerjs/engine-formula": "0.20.0",
73
- "@univerjs/sheets": "0.20.0",
74
- "@univerjs/engine-render": "0.20.0",
75
- "@univerjs/sheets-hyper-link": "0.20.0",
76
- "@univerjs/sheets-ui": "0.20.0",
77
- "@univerjs/ui": "0.20.0",
78
- "@univerjs/sheets-data-validation": "0.20.0",
79
- "@univerjs/sheets-formula-ui": "0.20.0"
68
+ "@univerjs/core": "0.20.1",
69
+ "@univerjs/design": "0.20.1",
70
+ "@univerjs/docs-ui": "0.20.1",
71
+ "@univerjs/docs": "0.20.1",
72
+ "@univerjs/engine-render": "0.20.1",
73
+ "@univerjs/sheets-data-validation": "0.20.1",
74
+ "@univerjs/sheets-formula-ui": "0.20.1",
75
+ "@univerjs/engine-formula": "0.20.1",
76
+ "@univerjs/sheets": "0.20.1",
77
+ "@univerjs/sheets-hyper-link": "0.20.1",
78
+ "@univerjs/sheets-ui": "0.20.1",
79
+ "@univerjs/ui": "0.20.1"
80
80
  },
81
81
  "devDependencies": {
82
82
  "postcss": "^8.5.8",
@@ -85,7 +85,7 @@
85
85
  "tailwindcss": "3.4.18",
86
86
  "typescript": "^6.0.2",
87
87
  "vitest": "^4.1.1",
88
- "@univerjs-infra/shared": "0.20.0"
88
+ "@univerjs-infra/shared": "0.20.1"
89
89
  },
90
90
  "scripts": {
91
91
  "test": "vitest run",