@univerjs/docs-hyper-link-ui 0.3.0-alpha.0 → 0.3.0-nightly.202410101606

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/es/index.js CHANGED
@@ -1,752 +1 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value;
3
- var __name = (target, value) => __defProp(target, "name", { value, configurable: !0 });
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != "symbol" ? key + "" : key, value);
5
- import { CommandType, ICommandService, generateRandomId, CustomRangeType, IUniverInstanceService, UniverInstanceType, getBodySlice, DataStreamTreeTokenType, useDependency, LocaleService, useObservable, Tools, BuildTextUtils, Disposable, Inject, OnLifecycle, LifecycleStages, Injector, DependentOn, Plugin, IConfigService } from "@univerjs/core";
6
- import { UniverDocsHyperLinkPlugin } from "@univerjs/docs-hyper-link";
7
- import { IRenderManagerService } from "@univerjs/engine-render";
8
- import { DocSelectionManagerService, SetTextSelectionsOperation, DocSkeletonManagerService, DocInterceptorService, DOC_INTERCEPTOR_POINT } from "@univerjs/docs";
9
- import { addCustomRangeBySelectionFactory, replaceSelectionFactory, DocSelectionRenderService, deleteCustomRangeFactory, DocCanvasPopManagerService, DocEventManagerService, DocRenderController, whenDocAndEditorFocused } from "@univerjs/docs-ui";
10
- import { BehaviorSubject, distinctUntilChanged, pairwise, Observable, debounceTime } from "rxjs";
11
- import { FormLayout, Input, Button, Tooltip, MessageType } from "@univerjs/design";
12
- import { KeyCode, IMessageService, useObservable as useObservable$1, MetaKeys, MenuItemType, getMenuHiddenObservable, RibbonStartGroup, ContextMenuPosition, ContextMenuGroup, ComponentManager, IMenuManagerService, IShortcutService } from "@univerjs/ui";
13
- import React, { useState, useEffect, forwardRef, useRef, createElement } from "react";
14
- import cs from "clsx";
15
- const PLUGIN_CONFIG_KEY = "docs-hyper-link-ui.config", defaultPluginConfig = {}, AddDocHyperLinkCommand = {
16
- type: CommandType.COMMAND,
17
- id: "docs.command.add-hyper-link",
18
- async handler(accessor, params) {
19
- if (!params)
20
- return !1;
21
- const { payload, unitId, selection } = params, commandService = accessor.get(ICommandService), id = generateRandomId(), doMutation = addCustomRangeBySelectionFactory(
22
- accessor,
23
- {
24
- rangeId: id,
25
- rangeType: CustomRangeType.HYPERLINK,
26
- properties: {
27
- url: payload
28
- },
29
- unitId,
30
- selection
31
- }
32
- );
33
- return doMutation ? commandService.syncExecuteCommand(doMutation.id, doMutation.params) : !1;
34
- }
35
- }, UpdateDocHyperLinkCommand = {
36
- id: "docs.command.update-hyper-link",
37
- type: CommandType.COMMAND,
38
- handler(accessor, params) {
39
- var _a7;
40
- if (!params)
41
- return !1;
42
- const { unitId, payload, segmentId } = params, commandService = accessor.get(ICommandService), univerInstanceService = accessor.get(IUniverInstanceService), currentSelection = accessor.get(DocSelectionManagerService).getActiveTextRange(), doc = univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_DOC);
43
- if (!currentSelection || !doc)
44
- return !1;
45
- const newId = generateRandomId(), textRun = (_a7 = getBodySlice(doc.getSelfOrHeaderFooterModel(segmentId).getBody(), currentSelection.startOffset, currentSelection.endOffset).textRuns) == null ? void 0 : _a7[0];
46
- textRun && (textRun.ed = params.label.length + 1);
47
- const replaceSelection = replaceSelectionFactory(accessor, {
48
- unitId,
49
- body: {
50
- dataStream: `${DataStreamTreeTokenType.CUSTOM_RANGE_START}${params.label}${DataStreamTreeTokenType.CUSTOM_RANGE_END}`,
51
- customRanges: [{
52
- rangeId: newId,
53
- rangeType: CustomRangeType.HYPERLINK,
54
- startIndex: 0,
55
- endIndex: params.label.length + 1,
56
- properties: {
57
- url: payload
58
- }
59
- }],
60
- textRuns: textRun ? [textRun] : void 0
61
- },
62
- selection: {
63
- startOffset: currentSelection.startOffset,
64
- endOffset: currentSelection.endOffset,
65
- collapsed: !1,
66
- segmentId
67
- }
68
- });
69
- return replaceSelection ? commandService.syncExecuteCommand(replaceSelection.id, replaceSelection.params) : !1;
70
- }
71
- }, docsLinkEdit = "univer-docs-link-edit", docsLinkEditTitle = "univer-docs-link-edit-title", docsLinkEditClose = "univer-docs-link-edit-close", docsLinkEditButtons = "univer-docs-link-edit-buttons", docsLinkEditButton = "univer-docs-link-edit-button", styles$1 = {
72
- docsLinkEdit,
73
- docsLinkEditTitle,
74
- docsLinkEditClose,
75
- docsLinkEditButtons,
76
- docsLinkEditButton
77
- };
78
- function hasProtocol(urlString) {
79
- return /^[a-zA-Z]+:\/\//.test(urlString);
80
- }
81
- __name(hasProtocol, "hasProtocol");
82
- function isEmail(url) {
83
- return /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(url);
84
- }
85
- __name(isEmail, "isEmail");
86
- function transformUrl(urlStr) {
87
- return hasProtocol(urlStr) ? urlStr : isEmail(urlStr) ? `mailto://${urlStr}` : `https://${urlStr}`;
88
- }
89
- __name(transformUrl, "transformUrl");
90
- const DocHyperLinkEdit = /* @__PURE__ */ __name(() => {
91
- var _a7;
92
- const hyperLinkService = useDependency(DocHyperLinkPopupService), localeService = useDependency(LocaleService), editing = useObservable(hyperLinkService.editingLink$), commandService = useDependency(ICommandService), univerInstanceService = useDependency(IUniverInstanceService), renderManagerService = useDependency(IRenderManagerService), docSelectionManagerService = useDependency(DocSelectionManagerService), [link, setLink] = useState(""), [label, setLabel] = useState(""), [showError, setShowError] = useState(!1), isLegal = Tools.isLegalUrl(link), doc = editing ? univerInstanceService.getUnit(editing.unitId, UniverInstanceType.UNIVER_DOC) : univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_DOC), docSelectionRenderService = (_a7 = renderManagerService.getRenderById(doc.getUnitId())) == null ? void 0 : _a7.with(DocSelectionRenderService);
93
- useEffect(() => {
94
- var _a8, _b, _c, _d, _e, _f, _g, _h, _i;
95
- const activeRange = docSelectionManagerService.getActiveTextRange();
96
- if (!activeRange)
97
- return;
98
- if (editing) {
99
- const body = (_a8 = doc == null ? void 0 : doc.getSelfOrHeaderFooterModel(editing.segmentId)) == null ? void 0 : _a8.getBody(), matchedRange2 = (_b = body == null ? void 0 : body.customRanges) == null ? void 0 : _b.find((i) => (editing == null ? void 0 : editing.linkId) === i.rangeId);
100
- doc && matchedRange2 && (setLink((_d = (_c = matchedRange2.properties) == null ? void 0 : _c.url) != null ? _d : ""), setLabel(BuildTextUtils.transform.getPlainText(getBodySlice(body, matchedRange2.startIndex, matchedRange2.endIndex).dataStream)));
101
- return;
102
- }
103
- const matchedRange = (_g = (_f = (_e = doc == null ? void 0 : doc.getSelfOrHeaderFooterModel(activeRange.segmentId)) == null ? void 0 : _e.getBody()) == null ? void 0 : _f.customRanges) == null ? void 0 : _g.find((i) => Math.max(activeRange.startOffset, i.startIndex) <= Math.min(activeRange.endOffset - 1, i.endIndex));
104
- doc && matchedRange && setLink((_i = (_h = matchedRange == null ? void 0 : matchedRange.properties) == null ? void 0 : _h.url) != null ? _i : "");
105
- }, [doc, editing, docSelectionManagerService, univerInstanceService]), useEffect(() => (docSelectionRenderService && docSelectionRenderService.blurEditor(), () => {
106
- docSelectionRenderService && docSelectionRenderService.focusEditor();
107
- }), [docSelectionRenderService]);
108
- const handleCancel = /* @__PURE__ */ __name(() => {
109
- hyperLinkService.hideEditPopup();
110
- }, "handleCancel"), handleConfirm = /* @__PURE__ */ __name(() => {
111
- if (setShowError(!0), !isLegal || !doc)
112
- return;
113
- const linkFinal = transformUrl(link);
114
- if (!editing)
115
- commandService.executeCommand(AddDocHyperLinkCommand.id, {
116
- unitId: doc.getUnitId(),
117
- payload: linkFinal
118
- });
119
- else {
120
- if (!label)
121
- return;
122
- commandService.executeCommand(UpdateDocHyperLinkCommand.id, {
123
- unitId: doc.getUnitId(),
124
- payload: linkFinal,
125
- linkId: editing.linkId,
126
- label,
127
- segmentId: editing.segmentId
128
- });
129
- }
130
- hyperLinkService.hideEditPopup();
131
- }, "handleConfirm");
132
- if (doc)
133
- return /* @__PURE__ */ React.createElement("div", { className: styles$1.docsLinkEdit }, /* @__PURE__ */ React.createElement("div", null, editing ? /* @__PURE__ */ React.createElement(
134
- FormLayout,
135
- {
136
- label: localeService.t("docLink.edit.label"),
137
- error: showError && !label ? localeService.t("docLink.edit.labelError") : ""
138
- },
139
- /* @__PURE__ */ React.createElement(
140
- Input,
141
- {
142
- value: label,
143
- onChange: setLabel,
144
- autoFocus: !0,
145
- onKeyDown: /* @__PURE__ */ __name((evt) => {
146
- evt.keyCode === KeyCode.ENTER && handleConfirm();
147
- }, "onKeyDown")
148
- }
149
- )
150
- ) : null, /* @__PURE__ */ React.createElement(
151
- FormLayout,
152
- {
153
- label: localeService.t("docLink.edit.address"),
154
- error: showError && !isLegal ? localeService.t("docLink.edit.addressError") : ""
155
- },
156
- /* @__PURE__ */ React.createElement(
157
- Input,
158
- {
159
- value: link,
160
- onChange: setLink,
161
- autoFocus: !0,
162
- onKeyDown: /* @__PURE__ */ __name((evt) => {
163
- evt.keyCode === KeyCode.ENTER && handleConfirm();
164
- }, "onKeyDown")
165
- }
166
- )
167
- )), /* @__PURE__ */ React.createElement("div", { className: styles$1.docsLinkEditButtons }, /* @__PURE__ */ React.createElement(
168
- Button,
169
- {
170
- className: styles$1.docsLinkEditButton,
171
- onClick: handleCancel
172
- },
173
- localeService.t("docLink.edit.cancel")
174
- ), /* @__PURE__ */ React.createElement(
175
- Button,
176
- {
177
- disabled: !link,
178
- className: styles$1.docsLinkEditButton,
179
- type: "primary",
180
- onClick: handleConfirm
181
- },
182
- localeService.t("docLink.edit.confirm")
183
- )));
184
- }, "DocHyperLinkEdit");
185
- DocHyperLinkEdit.componentKey = "docs-hyper-link-edit";
186
- var __assign = function() {
187
- return __assign = Object.assign || function(t) {
188
- for (var s, i = 1, n = arguments.length; i < n; i++) {
189
- s = arguments[i];
190
- for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && (t[p] = s[p]);
191
- }
192
- return t;
193
- }, __assign.apply(this, arguments);
194
- }, __rest = function(s, e) {
195
- var t = {};
196
- for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0 && (t[p] = s[p]);
197
- if (s != null && typeof Object.getOwnPropertySymbols == "function")
198
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++)
199
- e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]) && (t[p[i]] = s[p[i]]);
200
- return t;
201
- }, IconBase = forwardRef(function(props, ref) {
202
- var icon = props.icon, id = props.id, className = props.className, extend = props.extend, restProps = __rest(props, ["icon", "id", "className", "extend"]), cls = "univerjs-icon univerjs-icon-".concat(id, " ").concat(className || "").trim(), idSuffix = useRef("_".concat(generateShortUuid()));
203
- return render(icon, "".concat(id), { defIds: icon.defIds, idSuffix: idSuffix.current }, __assign({ ref, className: cls }, restProps), extend);
204
- });
205
- function render(node, id, runtimeProps, rootProps, extend) {
206
- return createElement(node.tag, __assign(__assign({ key: id }, replaceRuntimeIdsAndExtInAttrs(node, runtimeProps, extend)), rootProps), (replaceRuntimeIdsInDefs(node, runtimeProps).children || []).map(function(child, index) {
207
- return render(child, "".concat(id, "-").concat(node.tag, "-").concat(index), runtimeProps, void 0, extend);
208
- }));
209
- }
210
- __name(render, "render");
211
- function replaceRuntimeIdsAndExtInAttrs(node, runtimeProps, extend) {
212
- var attrs = __assign({}, node.attrs);
213
- extend != null && extend.colorChannel1 && attrs.fill === "colorChannel1" && (attrs.fill = extend.colorChannel1);
214
- var defIds = runtimeProps.defIds;
215
- return !defIds || defIds.length === 0 || (node.tag === "use" && attrs["xlink:href"] && (attrs["xlink:href"] = attrs["xlink:href"] + runtimeProps.idSuffix), Object.entries(attrs).forEach(function(_a7) {
216
- var key = _a7[0], value = _a7[1];
217
- typeof value == "string" && (attrs[key] = value.replace(/url\(#(.*)\)/, "url(#$1".concat(runtimeProps.idSuffix, ")")));
218
- })), attrs;
219
- }
220
- __name(replaceRuntimeIdsAndExtInAttrs, "replaceRuntimeIdsAndExtInAttrs");
221
- function replaceRuntimeIdsInDefs(node, runtimeProps) {
222
- var _a7, defIds = runtimeProps.defIds;
223
- return !defIds || defIds.length === 0 ? node : node.tag === "defs" && (!((_a7 = node.children) === null || _a7 === void 0) && _a7.length) ? __assign(__assign({}, node), { children: node.children.map(function(child) {
224
- return typeof child.attrs.id == "string" && defIds && defIds.indexOf(child.attrs.id) > -1 ? __assign(__assign({}, child), { attrs: __assign(__assign({}, child.attrs), { id: child.attrs.id + runtimeProps.idSuffix }) }) : child;
225
- }) }) : node;
226
- }
227
- __name(replaceRuntimeIdsInDefs, "replaceRuntimeIdsInDefs");
228
- function generateShortUuid() {
229
- return Math.random().toString(36).substring(2, 8);
230
- }
231
- __name(generateShortUuid, "generateShortUuid");
232
- IconBase.displayName = "UniverIcon";
233
- var element$3 = { tag: "svg", attrs: { 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" } }] }, CopySingle = forwardRef(function(props, ref) {
234
- return createElement(IconBase, Object.assign({}, props, {
235
- id: "copy-single",
236
- ref,
237
- icon: element$3
238
- }));
239
- });
240
- CopySingle.displayName = "CopySingle";
241
- var element$2 = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M5.9564 2.91332C4.91407 1.87102 3.22413 1.87101 2.18182 2.91333L2.18182 2.91333C1.13953 3.95567 1.13952 5.6456 2.18182 6.68791L8.27777 12.7838C9.72408 14.2302 12.069 14.2302 13.5154 12.7839L13.0911 12.3596L13.5154 12.7839C14.9617 11.3375 14.9617 8.99257 13.5154 7.54626L8.39476 2.42566C8.16044 2.19134 7.78054 2.19134 7.54623 2.42566C7.31191 2.65997 7.31191 3.03987 7.54623 3.27419L12.6668 8.39479L13.0911 7.97052L12.6668 8.39479C13.6445 9.37247 13.6445 10.9576 12.6668 11.9353L13.0399 12.3084L12.6668 11.9353C11.6891 12.913 10.104 12.913 9.1263 11.9353L3.03035 5.83938C2.45668 5.26571 2.45667 4.33556 3.03036 3.76184C3.60403 3.18818 4.53416 3.18817 5.10788 3.76185C5.10788 3.76186 5.10788 3.76186 5.10789 3.76186L11.2038 9.8578L11.601 9.46061L11.2038 9.8578C11.3735 10.0275 11.3735 10.3026 11.2038 10.4723L11.2038 10.4723C11.0341 10.642 10.759 10.642 10.5893 10.4723L5.46874 5.35171C5.23442 5.1174 4.85452 5.1174 4.62021 5.35171C4.38589 5.58602 4.38589 5.96592 4.62021 6.20024L9.74078 11.3208C10.3791 11.9591 11.414 11.9591 12.0523 11.3208C12.0523 11.3208 12.0523 11.3208 12.0523 11.3208M12.0523 11.3208C12.6907 10.6825 12.6906 9.64757 12.0523 9.00927L5.95641 2.91333L5.9564 2.91332", fillRule: "evenodd", clipRule: "evenodd" } }] }, LinkSingle = forwardRef(function(props, ref) {
242
- return createElement(IconBase, Object.assign({}, props, {
243
- id: "link-single",
244
- ref,
245
- icon: element$2
246
- }));
247
- });
248
- LinkSingle.displayName = "LinkSingle";
249
- var element$1 = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 17", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M12.5935 3.47302C11.6354 2.51492 10.082 2.51492 9.12388 3.47302L7.83534 4.76157C7.60102 4.99588 7.22112 4.99588 6.98681 4.76157 6.75249 4.52725 6.75249 4.14735 6.98681 3.91304L8.27535 2.62449C9.70209 1.19776 12.0153 1.19776 13.442 2.62449 14.8688 4.05123 14.8688 6.36442 13.442 7.79116L12.1535 9.0797C11.9192 9.31402 11.5393 9.31402 11.3049 9.0797 11.0706 8.84539 11.0706 8.46549 11.3049 8.23117L12.5935 6.94263C13.5516 5.98452 13.5516 4.43113 12.5935 3.47302zM3.40637 12.6606C2.44827 11.7025 2.44827 10.1491 3.40637 9.19102L4.69492 7.90248C4.92923 7.66816 4.92923 7.28826 4.69492 7.05395 4.4606 6.81963 4.0807 6.81963 3.84639 7.05395L2.55784 8.34249C1.13111 9.76923 1.13111 12.0824 2.55784 13.5092 3.98458 14.9359 6.29777 14.9359 7.72451 13.5092L9.01305 12.2206C9.24737 11.9863 9.24737 11.6064 9.01305 11.3721 8.77874 11.1378 8.39884 11.1378 8.16452 11.3721L6.87598 12.6606C5.91787 13.6187 4.36448 13.6187 3.40637 12.6606zM3.5852 2.80332C3.35088 2.569 2.97098 2.569 2.73667 2.80332 2.50235 3.03763 2.50235 3.41753 2.73667 3.65185L12.4151 13.3302C12.6494 13.5646 13.0293 13.5646 13.2636 13.3302 13.4979 13.0959 13.4979 12.716 13.2636 12.4817L3.5852 2.80332z" } }] }, UnlinkSingle = forwardRef(function(props, ref) {
250
- return createElement(IconBase, Object.assign({}, props, {
251
- id: "unlink-single",
252
- ref,
253
- icon: element$1
254
- }));
255
- });
256
- UnlinkSingle.displayName = "UnlinkSingle";
257
- var element = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 17 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M12.6551 1.98906C11.7476 1.08113 10.2757 1.08149 9.3686 1.98987L4.82542 6.53955C4.75087 6.61421 4.69336 6.70411 4.65682 6.80309L3.2461 10.625C3.16506 10.8446 3.21909 11.0912 3.3845 11.2568C3.54991 11.4224 3.79651 11.4767 4.01616 11.3959L7.85031 9.98517C7.94979 9.94856 8.04014 9.89077 8.11508 9.81579L12.6552 5.27327C13.5618 4.36621 13.5618 2.89607 12.6551 1.98906ZM10.2177 2.83779C10.6562 2.39869 11.3677 2.39851 11.8064 2.8374C12.2447 3.27584 12.2447 3.9865 11.8065 4.42497L7.3392 8.89457L4.82213 9.82068L5.74706 7.31487L10.2177 2.83779Z", fillRule: "evenodd", clipRule: "evenodd" } }, { tag: "path", attrs: { fill: "currentColor", d: "M1.79238 13.2999C1.46101 13.2999 1.19238 13.5685 1.19238 13.8999C1.19238 14.2313 1.46101 14.4999 1.79238 14.4999H14.4924C14.8238 14.4999 15.0924 14.2313 15.0924 13.8999C15.0924 13.5685 14.8238 13.2999 14.4924 13.2999H1.79238Z" } }] }, WriteSingle = forwardRef(function(props, ref) {
258
- return createElement(IconBase, Object.assign({}, props, {
259
- id: "write-single",
260
- ref,
261
- icon: element
262
- }));
263
- });
264
- WriteSingle.displayName = "WriteSingle";
265
- const DeleteDocHyperLinkCommand = {
266
- type: CommandType.COMMAND,
267
- id: "docs.command.delete-hyper-link",
268
- async handler(accessor, params) {
269
- if (!params)
270
- return !1;
271
- const { unitId, linkId, segmentId } = params, commandService = accessor.get(ICommandService), doMutation = deleteCustomRangeFactory(accessor, { unitId, rangeId: linkId, segmentId });
272
- return doMutation ? await commandService.syncExecuteCommand(doMutation.id, doMutation.params) : !1;
273
- }
274
- }, shouldDisableAddLink = /* @__PURE__ */ __name((accessor) => {
275
- var _a7;
276
- const textSelectionService = accessor.get(DocSelectionManagerService), univerInstanceService = accessor.get(IUniverInstanceService), textRanges = textSelectionService.getDocRanges();
277
- if (!textRanges.length || textRanges.length > 1)
278
- return !0;
279
- const activeRange = textRanges[0], doc = univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_DOC);
280
- if (!doc || !activeRange || activeRange.collapsed)
281
- return !0;
282
- const body = doc.getSelfOrHeaderFooterModel(activeRange.segmentId).getBody(), paragraphs = body == null ? void 0 : body.paragraphs;
283
- if (!paragraphs)
284
- return !0;
285
- for (let i = 0, len = paragraphs.length; i < len; i++) {
286
- const p = paragraphs[i];
287
- if (activeRange.startOffset <= p.startIndex && activeRange.endOffset > p.startIndex)
288
- return !0;
289
- if (p.startIndex > activeRange.endOffset)
290
- break;
291
- }
292
- return !BuildTextUtils.customRange.getCustomRangesInterestsWithRange(activeRange, (_a7 = body.customRanges) != null ? _a7 : []).every((range) => range.rangeType === CustomRangeType.HYPERLINK);
293
- }, "shouldDisableAddLink"), ShowDocHyperLinkEditPopupOperation = {
294
- type: CommandType.OPERATION,
295
- id: "doc.operation.show-hyper-link-edit-popup",
296
- handler(accessor, params) {
297
- var _a7;
298
- const linkInfo = params == null ? void 0 : params.link, univerInstanceService = accessor.get(IUniverInstanceService);
299
- if (shouldDisableAddLink(accessor) && !linkInfo)
300
- return !1;
301
- const hyperLinkService = accessor.get(DocHyperLinkPopupService), unitId = (linkInfo == null ? void 0 : linkInfo.unitId) || ((_a7 = univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_DOC)) == null ? void 0 : _a7.getUnitId());
302
- return unitId ? (hyperLinkService.showEditPopup(unitId, linkInfo), !0) : !1;
303
- }
304
- }, ToggleDocHyperLinkInfoPopupOperation = {
305
- type: CommandType.OPERATION,
306
- id: "doc.operation.toggle-hyper-link-info-popup",
307
- handler(accessor, params) {
308
- const hyperLinkService = accessor.get(DocHyperLinkPopupService);
309
- return params ? (hyperLinkService.showInfoPopup(params), !0) : (hyperLinkService.hideInfoPopup(), !0);
310
- }
311
- }, ClickDocHyperLinkOperation = {
312
- type: CommandType.OPERATION,
313
- id: "doc.operation.click-hyper-link",
314
- handler(accessor, params) {
315
- var _a7, _b, _c;
316
- if (!params)
317
- return !1;
318
- const { unitId, linkId, segmentId } = params, doc = accessor.get(IUniverInstanceService).getUnit(unitId, UniverInstanceType.UNIVER_DOC), body = doc == null ? void 0 : doc.getSelfOrHeaderFooterModel(segmentId).getBody(), link = (_c = (_b = (_a7 = body == null ? void 0 : body.customRanges) == null ? void 0 : _a7.find((range) => range.rangeId === linkId && range.rangeType === CustomRangeType.HYPERLINK)) == null ? void 0 : _b.properties) == null ? void 0 : _c.url;
319
- return link && window.open(link, "_blank", "noopener noreferrer"), !0;
320
- }
321
- }, docLink = "univer-doc-link", docLinkType = "univer-doc-link-type", docLinkContent = "univer-doc-link-content", docLinkContentError = "univer-doc-link-content-error", docLinkUrl = "univer-doc-link-url", docLinkOperations = "univer-doc-link-operations", docLinkOperation = "univer-doc-link-operation", docLinkOperationError = "univer-doc-link-operation-error", styles = {
322
- docLink,
323
- docLinkType,
324
- docLinkContent,
325
- docLinkContentError,
326
- docLinkUrl,
327
- docLinkOperations,
328
- docLinkOperation,
329
- docLinkOperationError
330
- }, DocLinkPopup = /* @__PURE__ */ __name(() => {
331
- var _a7, _b;
332
- const hyperLinkService = useDependency(DocHyperLinkPopupService), commandService = useDependency(ICommandService), messageService = useDependency(IMessageService), localeService = useDependency(LocaleService), currentPopup = useObservable$1(hyperLinkService.showingLink$), univerInstanceService = useDependency(IUniverInstanceService);
333
- if (!currentPopup)
334
- return null;
335
- const { unitId, linkId, segmentId } = currentPopup, doc = univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_DOC), body = doc == null ? void 0 : doc.getSelfOrHeaderFooterModel(segmentId).getBody(), link = (_a7 = body == null ? void 0 : body.customRanges) == null ? void 0 : _a7.find((range) => range.rangeId === linkId && range.rangeType === CustomRangeType.HYPERLINK);
336
- if (!link)
337
- return null;
338
- const url = (_b = link.properties) == null ? void 0 : _b.url;
339
- return /* @__PURE__ */ React.createElement(
340
- "div",
341
- {
342
- className: styles.docLink,
343
- onClick: /* @__PURE__ */ __name(() => {
344
- hyperLinkService.hideInfoPopup();
345
- }, "onClick")
346
- },
347
- /* @__PURE__ */ React.createElement("div", { className: cs(styles.docLinkContent), onClick: /* @__PURE__ */ __name(() => window.open(url), "onClick") }, /* @__PURE__ */ React.createElement("div", { className: styles.docLinkType }, /* @__PURE__ */ React.createElement(LinkSingle, null)), /* @__PURE__ */ React.createElement(Tooltip, { showIfEllipsis: !0, title: url }, /* @__PURE__ */ React.createElement("span", { className: styles.docLinkUrl }, url))),
348
- /* @__PURE__ */ React.createElement("div", { className: styles.docLinkOperations }, /* @__PURE__ */ React.createElement(
349
- "div",
350
- {
351
- className: cs(styles.docLinkOperation),
352
- onClick: /* @__PURE__ */ __name(() => {
353
- navigator.clipboard.writeText(url), messageService.show({
354
- content: localeService.t("docLink.info.coped"),
355
- type: MessageType.Info
356
- });
357
- }, "onClick")
358
- },
359
- /* @__PURE__ */ React.createElement(Tooltip, { placement: "bottom", title: localeService.t("docLink.info.copy") }, /* @__PURE__ */ React.createElement(CopySingle, null))
360
- ), /* @__PURE__ */ React.createElement(
361
- "div",
362
- {
363
- className: styles.docLinkOperation,
364
- onClick: /* @__PURE__ */ __name(() => {
365
- commandService.executeCommand(ShowDocHyperLinkEditPopupOperation.id, {
366
- link: currentPopup
367
- });
368
- }, "onClick")
369
- },
370
- /* @__PURE__ */ React.createElement(Tooltip, { placement: "bottom", title: localeService.t("docLink.info.edit") }, /* @__PURE__ */ React.createElement(WriteSingle, null))
371
- ), /* @__PURE__ */ React.createElement(
372
- "div",
373
- {
374
- className: styles.docLinkOperation,
375
- onClick: /* @__PURE__ */ __name(() => {
376
- commandService.executeCommand(DeleteDocHyperLinkCommand.id, {
377
- unitId,
378
- linkId: link.rangeId,
379
- segmentId
380
- });
381
- }, "onClick")
382
- },
383
- /* @__PURE__ */ React.createElement(Tooltip, { placement: "bottom", title: localeService.t("docLink.info.cancel") }, /* @__PURE__ */ React.createElement(UnlinkSingle, null))
384
- ))
385
- );
386
- }, "DocLinkPopup");
387
- DocLinkPopup.componentKey = "univer.doc.link-info-popup";
388
- var __defProp$5 = Object.defineProperty, __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor, __decorateClass$5 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
389
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
390
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
391
- return kind && result && __defProp$5(target, key, result), result;
392
- }, "__decorateClass$5"), __decorateParam$5 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$5");
393
- const SKIT_PLACEHOLDER = 0;
394
- var _a;
395
- let DocHyperLinkPopupService = (_a = class extends Disposable {
396
- constructor(_docCanvasPopupManagerService, _textSelectionManagerService, _univerInstanceService) {
397
- super();
398
- __publicField(this, "_editingLink$", new BehaviorSubject(null));
399
- __publicField(this, "_showingLink$", new BehaviorSubject(null));
400
- __publicField(this, "editingLink$", this._editingLink$.asObservable());
401
- __publicField(this, "showingLink$", this._showingLink$.asObservable());
402
- __publicField(this, "_editPopup", null);
403
- __publicField(this, "_infoPopup", null);
404
- this._docCanvasPopupManagerService = _docCanvasPopupManagerService, this._textSelectionManagerService = _textSelectionManagerService, this._univerInstanceService = _univerInstanceService, this.disposeWithMe(() => {
405
- this._editingLink$.complete(), this._showingLink$.complete();
406
- });
407
- }
408
- get editing() {
409
- return this._editingLink$.value;
410
- }
411
- get showing() {
412
- return this._showingLink$.value;
413
- }
414
- showEditPopup(unitId, linkInfo) {
415
- var _a7, _b, _c;
416
- this._editPopup && this._editPopup.dispose(), this._editingLink$.next(linkInfo);
417
- let activeRange = this._textSelectionManagerService.getActiveTextRange();
418
- if (linkInfo) {
419
- const { unitId: unitId2, linkId, segmentId, segmentPage } = linkInfo, doc = this._univerInstanceService.getUnit(unitId2, UniverInstanceType.UNIVER_DOC), range = (_c = (_b = (_a7 = doc == null ? void 0 : doc.getSelfOrHeaderFooterModel(segmentId)) == null ? void 0 : _a7.getBody()) == null ? void 0 : _b.customRanges) == null ? void 0 : _c.find((i) => i.rangeId === linkId);
420
- range && (activeRange = {
421
- collapsed: !1,
422
- startOffset: range.startIndex + SKIT_PLACEHOLDER,
423
- endOffset: range.endIndex + 1,
424
- segmentId,
425
- segmentPage
426
- }, this._textSelectionManagerService.replaceTextRanges([{
427
- startOffset: range.startIndex,
428
- endOffset: range.endIndex + 1
429
- }]));
430
- }
431
- return activeRange ? (this._editPopup = this._docCanvasPopupManagerService.attachPopupToRange(
432
- activeRange,
433
- {
434
- componentKey: DocHyperLinkEdit.componentKey,
435
- direction: "bottom"
436
- },
437
- unitId
438
- ), this._editPopup) : null;
439
- }
440
- hideEditPopup() {
441
- var _a7;
442
- this._editingLink$.next(null), (_a7 = this._editPopup) == null || _a7.dispose();
443
- }
444
- showInfoPopup(info) {
445
- var _a7, _b, _c, _d, _e, _f;
446
- const { linkId, unitId, segmentId, segmentPage } = info;
447
- if (((_a7 = this.showing) == null ? void 0 : _a7.linkId) === linkId && ((_b = this.showing) == null ? void 0 : _b.unitId) === unitId && ((_c = this.showing) == null ? void 0 : _c.segmentId) === segmentId && ((_d = this.showing) == null ? void 0 : _d.segmentPage) === segmentPage)
448
- return;
449
- this._infoPopup && this._infoPopup.dispose();
450
- const doc = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_DOC);
451
- if (!doc)
452
- return;
453
- const range = (_f = (_e = doc.getSelfOrHeaderFooterModel(info.segmentId).getBody()) == null ? void 0 : _e.customRanges) == null ? void 0 : _f.find((i) => i.rangeId === linkId);
454
- if (this._showingLink$.next({ unitId, linkId, segmentId, segmentPage }), !!range)
455
- return this._infoPopup = this._docCanvasPopupManagerService.attachPopupToRange(
456
- {
457
- collapsed: !1,
458
- startOffset: range.startIndex + SKIT_PLACEHOLDER,
459
- endOffset: range.endIndex + 1,
460
- segmentId: info.segmentId,
461
- segmentPage: info.segmentPage
462
- },
463
- {
464
- componentKey: DocLinkPopup.componentKey,
465
- direction: "top-center",
466
- multipleDirection: "top",
467
- onClickOutside: /* @__PURE__ */ __name(() => {
468
- this.hideInfoPopup();
469
- }, "onClickOutside")
470
- },
471
- info.unitId
472
- ), this._infoPopup;
473
- }
474
- hideInfoPopup() {
475
- var _a7;
476
- this._showingLink$.next(null), (_a7 = this._infoPopup) == null || _a7.dispose();
477
- }
478
- }, __name(_a, "DocHyperLinkPopupService"), _a);
479
- DocHyperLinkPopupService = __decorateClass$5([
480
- __decorateParam$5(0, Inject(DocCanvasPopManagerService)),
481
- __decorateParam$5(1, Inject(DocSelectionManagerService)),
482
- __decorateParam$5(2, IUniverInstanceService)
483
- ], DocHyperLinkPopupService);
484
- var __defProp$4 = Object.defineProperty, __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor, __decorateClass$4 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
485
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
486
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
487
- return kind && result && __defProp$4(target, key, result), result;
488
- }, "__decorateClass$4"), __decorateParam$4 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$4"), _a2;
489
- let DocHyperLinkSelectionController = (_a2 = class extends Disposable {
490
- constructor(_commandService, _univerInstanceService, _docHyperLinkService) {
491
- super(), this._commandService = _commandService, this._univerInstanceService = _univerInstanceService, this._docHyperLinkService = _docHyperLinkService, this._initSelectionChange();
492
- }
493
- _initSelectionChange() {
494
- this.disposeWithMe(
495
- this._commandService.onCommandExecuted((commandInfo) => {
496
- var _a7, _b, _c;
497
- if (commandInfo.id === SetTextSelectionsOperation.id) {
498
- const params = commandInfo.params, { unitId, ranges, segmentId } = params, doc = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_DOC), primary = ranges[0];
499
- if (primary && doc) {
500
- const { startOffset, endOffset, collapsed, segmentPage } = primary, customRanges = (_b = (_a7 = doc.getSelfOrHeaderFooterModel(segmentId)) == null ? void 0 : _a7.getBody()) == null ? void 0 : _b.customRanges;
501
- if (collapsed) {
502
- const index = (_c = customRanges == null ? void 0 : customRanges.findIndex((value) => value.startIndex < startOffset && value.endIndex > endOffset - 1)) != null ? _c : -1;
503
- if (index > -1) {
504
- const customRange = customRanges[index];
505
- this._docHyperLinkService.showInfoPopup({ unitId, linkId: customRange.rangeId, segmentId, segmentPage });
506
- return;
507
- }
508
- } else if (customRanges == null ? void 0 : customRanges.find((value) => value.startIndex <= startOffset && value.endIndex >= endOffset - 1))
509
- return;
510
- }
511
- this._docHyperLinkService.hideInfoPopup(), this._docHyperLinkService.hideEditPopup();
512
- }
513
- })
514
- );
515
- }
516
- }, __name(_a2, "DocHyperLinkSelectionController"), _a2);
517
- DocHyperLinkSelectionController = __decorateClass$4([
518
- OnLifecycle(LifecycleStages.Ready, DocHyperLinkSelectionController),
519
- __decorateParam$4(0, ICommandService),
520
- __decorateParam$4(1, IUniverInstanceService),
521
- __decorateParam$4(2, Inject(DocHyperLinkPopupService))
522
- ], DocHyperLinkSelectionController);
523
- var __defProp$3 = Object.defineProperty, __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor, __decorateClass$3 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
524
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
525
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
526
- return kind && result && __defProp$3(target, key, result), result;
527
- }, "__decorateClass$3"), __decorateParam$3 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$3"), _a3;
528
- let DocHyperLinkEventRenderController = (_a3 = class extends Disposable {
529
- constructor(_context, _docEventManagerService, _commandService, _hyperLinkPopupService, _docSkeletonManagerService, _docSelectionManagerService) {
530
- super(), this._context = _context, this._docEventManagerService = _docEventManagerService, this._commandService = _commandService, this._hyperLinkPopupService = _hyperLinkPopupService, this._docSkeletonManagerService = _docSkeletonManagerService, this._docSelectionManagerService = _docSelectionManagerService, this._initHover(), this._initClick();
531
- }
532
- get _skeleton() {
533
- return this._docSkeletonManagerService.getSkeleton();
534
- }
535
- _hideInfoPopup() {
536
- this._hyperLinkPopupService.showing && this._commandService.executeCommand(
537
- ToggleDocHyperLinkInfoPopupOperation.id
538
- );
539
- }
540
- _initHover() {
541
- this.disposeWithMe(
542
- this._docEventManagerService.hoverCustomRanges$.subscribe((ranges) => {
543
- var _a7;
544
- const link = ranges.find((range) => range.range.rangeType === CustomRangeType.HYPERLINK), activeRanges = this._docSelectionManagerService.getTextRanges(), currentSegmentId = activeRanges == null ? void 0 : activeRanges[0].segmentId;
545
- if (((_a7 = link == null ? void 0 : link.segmentId) != null ? _a7 : "") !== currentSegmentId) {
546
- this._hideInfoPopup();
547
- return;
548
- }
549
- link ? this._commandService.executeCommand(
550
- ToggleDocHyperLinkInfoPopupOperation.id,
551
- {
552
- unitId: this._context.unitId,
553
- linkId: link.range.rangeId,
554
- segmentId: link.segmentId,
555
- segmentPage: link.segmentPageIndex,
556
- rangeId: link.range.rangeId
557
- }
558
- ) : this._hideInfoPopup();
559
- })
560
- );
561
- }
562
- _initClick() {
563
- this.disposeWithMe(
564
- this._docEventManagerService.clickCustomRanges$.subscribe((range) => {
565
- const link = range.range;
566
- link && this._commandService.executeCommand(
567
- ClickDocHyperLinkOperation.id,
568
- {
569
- unitId: this._context.unitId,
570
- linkId: link.rangeId,
571
- segmentId: range.segmentId
572
- }
573
- );
574
- })
575
- );
576
- }
577
- }, __name(_a3, "DocHyperLinkEventRenderController"), _a3);
578
- DocHyperLinkEventRenderController = __decorateClass$3([
579
- __decorateParam$3(1, Inject(DocEventManagerService)),
580
- __decorateParam$3(2, ICommandService),
581
- __decorateParam$3(3, Inject(DocHyperLinkPopupService)),
582
- __decorateParam$3(4, Inject(DocSkeletonManagerService)),
583
- __decorateParam$3(5, Inject(DocSelectionManagerService))
584
- ], DocHyperLinkEventRenderController);
585
- var __defProp$2 = Object.defineProperty, __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor, __decorateClass$2 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
586
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
587
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
588
- return kind && result && __defProp$2(target, key, result), result;
589
- }, "__decorateClass$2"), __decorateParam$2 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$2"), _a4;
590
- let DocHyperLinkRenderController = (_a4 = class extends Disposable {
591
- constructor(_context, _docInterceptorService, _hyperLinkService, _docRenderController) {
592
- super(), this._context = _context, this._docInterceptorService = _docInterceptorService, this._hyperLinkService = _hyperLinkService, this._docRenderController = _docRenderController, this._init(), this._initReRender();
593
- }
594
- _init() {
595
- this._docInterceptorService.intercept(DOC_INTERCEPTOR_POINT.CUSTOM_RANGE, {
596
- handler: /* @__PURE__ */ __name((data, pos, next) => {
597
- if (!data)
598
- return next(data);
599
- const { unitId } = pos, activeLink = this._hyperLinkService.showing, { linkId, unitId: linkUnitId } = activeLink || {}, isActive = linkUnitId === unitId && data.rangeId === linkId;
600
- return next({
601
- ...data,
602
- active: isActive
603
- });
604
- }, "handler")
605
- });
606
- }
607
- _initReRender() {
608
- this.disposeWithMe(this._hyperLinkService.showingLink$.pipe(
609
- distinctUntilChanged((prev, aft) => (prev == null ? void 0 : prev.linkId) === (aft == null ? void 0 : aft.linkId) && (prev == null ? void 0 : prev.unitId) === (aft == null ? void 0 : aft.unitId)),
610
- pairwise()
611
- ).subscribe(([preLink, link]) => {
612
- link ? link.unitId === this._context.unitId && this._docRenderController.reRender(link.unitId) : preLink && preLink.unitId === this._context.unitId && this._docRenderController.reRender(preLink.unitId);
613
- }));
614
- }
615
- }, __name(_a4, "DocHyperLinkRenderController"), _a4);
616
- DocHyperLinkRenderController = __decorateClass$2([
617
- __decorateParam$2(1, Inject(DocInterceptorService)),
618
- __decorateParam$2(2, Inject(DocHyperLinkPopupService)),
619
- __decorateParam$2(3, Inject(DocRenderController))
620
- ], DocHyperLinkRenderController);
621
- const DOC_LINK_ICON = "doc-hyper-link-icon";
622
- function AddHyperLinkMenuItemFactory(accessor) {
623
- return {
624
- id: ShowDocHyperLinkEditPopupOperation.id,
625
- type: MenuItemType.BUTTON,
626
- icon: DOC_LINK_ICON,
627
- title: "docLink.menu.tooltip",
628
- tooltip: "docLink.menu.tooltip",
629
- hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC),
630
- disabled$: new Observable(function(subscribe) {
631
- const observer = accessor.get(DocSelectionManagerService).textSelection$.pipe(debounceTime(16)).subscribe(() => {
632
- subscribe.next(shouldDisableAddLink(accessor));
633
- });
634
- return () => {
635
- observer.unsubscribe();
636
- };
637
- })
638
- };
639
- }
640
- __name(AddHyperLinkMenuItemFactory, "AddHyperLinkMenuItemFactory");
641
- const addLinkShortcut = {
642
- id: ShowDocHyperLinkEditPopupOperation.id,
643
- binding: MetaKeys.CTRL_COMMAND | KeyCode.K,
644
- description: "docLink.menu.tooltip",
645
- preconditions: whenDocAndEditorFocused
646
- }, menuSchema = {
647
- [RibbonStartGroup.OTHERS]: {
648
- [ShowDocHyperLinkEditPopupOperation.id]: {
649
- order: 0,
650
- menuItemFactory: AddHyperLinkMenuItemFactory
651
- }
652
- },
653
- [ContextMenuPosition.MAIN_AREA]: {
654
- [ContextMenuGroup.DATA]: {
655
- [ShowDocHyperLinkEditPopupOperation.id]: {
656
- order: 0,
657
- menuItemFactory: AddHyperLinkMenuItemFactory
658
- }
659
- }
660
- }
661
- };
662
- var __defProp$1 = Object.defineProperty, __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor, __decorateClass$1 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
663
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
664
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
665
- return kind && result && __defProp$1(target, key, result), result;
666
- }, "__decorateClass$1"), __decorateParam$1 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$1"), _a5;
667
- let DocHyperLinkUIController = (_a5 = class extends Disposable {
668
- constructor(_componentManager, _commandService, _menuManagerService, _injector, _shortcutService) {
669
- super(), this._componentManager = _componentManager, this._commandService = _commandService, this._menuManagerService = _menuManagerService, this._injector = _injector, this._shortcutService = _shortcutService, this._initComponents(), this._initCommands(), this._initMenus(), this._initShortcut();
670
- }
671
- _initComponents() {
672
- [
673
- [DocHyperLinkEdit, DocHyperLinkEdit.componentKey],
674
- [DocLinkPopup, DocLinkPopup.componentKey],
675
- [LinkSingle, DOC_LINK_ICON]
676
- ].forEach(([comp, key]) => {
677
- this._componentManager.register(key, comp);
678
- });
679
- }
680
- _initCommands() {
681
- [
682
- AddDocHyperLinkCommand,
683
- UpdateDocHyperLinkCommand,
684
- DeleteDocHyperLinkCommand,
685
- ShowDocHyperLinkEditPopupOperation,
686
- ToggleDocHyperLinkInfoPopupOperation,
687
- ClickDocHyperLinkOperation
688
- ].forEach((command) => {
689
- this._commandService.registerCommand(command);
690
- });
691
- }
692
- _initShortcut() {
693
- [addLinkShortcut].forEach((shortcut) => {
694
- this._shortcutService.registerShortcut(shortcut);
695
- });
696
- }
697
- _initMenus() {
698
- this._menuManagerService.mergeMenu(menuSchema);
699
- }
700
- }, __name(_a5, "DocHyperLinkUIController"), _a5);
701
- DocHyperLinkUIController = __decorateClass$1([
702
- OnLifecycle(LifecycleStages.Starting, DocHyperLinkUIController),
703
- __decorateParam$1(0, Inject(ComponentManager)),
704
- __decorateParam$1(1, ICommandService),
705
- __decorateParam$1(2, IMenuManagerService),
706
- __decorateParam$1(3, Inject(Injector)),
707
- __decorateParam$1(4, IShortcutService)
708
- ], DocHyperLinkUIController);
709
- const DOC_HYPER_LINK_UI_PLUGIN = "DOC_HYPER_LINK_UI_PLUGIN";
710
- var __defProp2 = Object.defineProperty, __getOwnPropDesc = Object.getOwnPropertyDescriptor, __defNormalProp2 = /* @__PURE__ */ __name((obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value, "__defNormalProp"), __decorateClass = /* @__PURE__ */ __name((decorators, target, key, kind) => {
711
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
712
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
713
- return kind && result && __defProp2(target, key, result), result;
714
- }, "__decorateClass"), __decorateParam = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam"), __publicField2 = /* @__PURE__ */ __name((obj, key, value) => __defNormalProp2(obj, typeof key != "symbol" ? key + "" : key, value), "__publicField"), _a6;
715
- let UniverDocsHyperLinkUIPlugin = (_a6 = class extends Plugin {
716
- constructor(_config = defaultPluginConfig, _injector, _renderManagerSrv, _configService) {
717
- super(), this._config = _config, this._injector = _injector, this._renderManagerSrv = _renderManagerSrv, this._configService = _configService;
718
- const { menu, ...rest } = this._config;
719
- menu && this._configService.setConfig("menu", menu, { merge: !0 }), this._configService.setConfig(PLUGIN_CONFIG_KEY, rest);
720
- }
721
- onStarting() {
722
- [
723
- [DocHyperLinkPopupService],
724
- [DocHyperLinkUIController],
725
- [DocHyperLinkSelectionController]
726
- ].forEach((dep) => {
727
- this._injector.add(dep);
728
- });
729
- }
730
- onRendered() {
731
- this._initRenderModule();
732
- }
733
- _initRenderModule() {
734
- [
735
- [DocHyperLinkRenderController],
736
- [DocHyperLinkEventRenderController]
737
- ].forEach((dep) => {
738
- this._renderManagerSrv.registerRenderModule(UniverInstanceType.UNIVER_DOC, dep);
739
- });
740
- }
741
- }, __name(_a6, "UniverDocsHyperLinkUIPlugin"), _a6);
742
- __publicField2(UniverDocsHyperLinkUIPlugin, "pluginName", DOC_HYPER_LINK_UI_PLUGIN);
743
- __publicField2(UniverDocsHyperLinkUIPlugin, "type", UniverInstanceType.UNIVER_DOC);
744
- UniverDocsHyperLinkUIPlugin = __decorateClass([
745
- DependentOn(UniverDocsHyperLinkPlugin),
746
- __decorateParam(1, Inject(Injector)),
747
- __decorateParam(2, IRenderManagerService),
748
- __decorateParam(3, IConfigService)
749
- ], UniverDocsHyperLinkUIPlugin);
750
- export {
751
- UniverDocsHyperLinkUIPlugin
752
- };
1
+ var _0x2e2ab0=_0x203c;(function(_0x25893a,_0x56cc8f){var _0x5ecba1=_0x203c,_0x1c0782=_0x25893a();while(!![]){try{var _0x2672b7=parseInt(_0x5ecba1(0x191))/0x1*(-parseInt(_0x5ecba1(0x19e))/0x2)+parseInt(_0x5ecba1(0x176))/0x3+parseInt(_0x5ecba1(0x1e1))/0x4*(parseInt(_0x5ecba1(0x1d4))/0x5)+parseInt(_0x5ecba1(0x1df))/0x6+parseInt(_0x5ecba1(0x214))/0x7+parseInt(_0x5ecba1(0x23c))/0x8+-parseInt(_0x5ecba1(0x1ed))/0x9*(parseInt(_0x5ecba1(0x17b))/0xa);if(_0x2672b7===_0x56cc8f)break;else _0x1c0782['push'](_0x1c0782['shift']());}catch(_0x1295e3){_0x1c0782['push'](_0x1c0782['shift']());}}}(_0x5a42,0x8a927));var __defProp=Object[_0x2e2ab0(0x213)],__defNormalProp=(_0x53bccf,_0x47a305,_0xd1f137)=>_0x47a305 in _0x53bccf?__defProp(_0x53bccf,_0x47a305,{'enumerable':!0x0,'configurable':!0x0,'writable':!0x0,'value':_0xd1f137}):_0x53bccf[_0x47a305]=_0xd1f137,__name=(_0x34c514,_0x4086b9)=>__defProp(_0x34c514,_0x2e2ab0(0x196),{'value':_0x4086b9,'configurable':!0x0}),__publicField=(_0x40921f,_0x5552c1,_0x24851f)=>__defNormalProp(_0x40921f,typeof _0x5552c1!=_0x2e2ab0(0x186)?_0x5552c1+'':_0x5552c1,_0x24851f);import{CommandType,ICommandService,generateRandomId,CustomRangeType,IUniverInstanceService,UniverInstanceType,getBodySlice,DataStreamTreeTokenType,useDependency,LocaleService,useObservable,Tools,BuildTextUtils,Disposable,Inject,DependentOn,Injector,Plugin,IConfigService}from'@univerjs/core';import{UniverDocsHyperLinkPlugin}from'@univerjs/docs-hyper-link';import{IRenderManagerService}from'@univerjs/engine-render';import{DocSelectionManagerService,SetTextSelectionsOperation,DocSkeletonManagerService,DocInterceptorService,DOC_INTERCEPTOR_POINT}from'@univerjs/docs';import{addCustomRangeBySelectionFactory,replaceSelectionFactory,DocSelectionRenderService,deleteCustomRangeFactory,DocCanvasPopManagerService,DocEventManagerService,DocRenderController,whenDocAndEditorFocused}from'@univerjs/docs-ui';import{BehaviorSubject,distinctUntilChanged,pairwise,Observable,debounceTime}from'rxjs';import{FormLayout,Input,Button,Tooltip,MessageType}from'@univerjs/design';import{KeyCode,IMessageService,useObservable as _0x5d6cc9,MetaKeys,MenuItemType,getMenuHiddenObservable,RibbonStartGroup,ContextMenuPosition,ContextMenuGroup,ComponentManager,IMenuManagerService,IShortcutService}from'@univerjs/ui';import _0x2041f6,{useState,useEffect,forwardRef,useRef,createElement}from'react';import _0x182993 from'clsx';const PLUGIN_CONFIG_KEY=_0x2e2ab0(0x188),defaultPluginConfig={},AddDocHyperLinkCommand={'type':CommandType[_0x2e2ab0(0x1eb)],'id':_0x2e2ab0(0x205),async 'handler'(_0x182d64,_0x5845e1){var _0x4a31cd=_0x2e2ab0;if(!_0x5845e1)return!0x1;const {payload:_0x42ef4c,unitId:_0x529b12,selection:_0x3a073c}=_0x5845e1,_0x3fda55=_0x182d64[_0x4a31cd(0x190)](ICommandService),_0x4520d9=generateRandomId(),_0x17b3b9=addCustomRangeBySelectionFactory(_0x182d64,{'rangeId':_0x4520d9,'rangeType':CustomRangeType[_0x4a31cd(0x1ab)],'properties':{'url':_0x42ef4c},'unitId':_0x529b12,'selection':_0x3a073c});return _0x17b3b9?_0x3fda55[_0x4a31cd(0x16e)](_0x17b3b9['id'],_0x17b3b9[_0x4a31cd(0x23e)]):!0x1;}},UpdateDocHyperLinkCommand={'id':_0x2e2ab0(0x182),'type':CommandType[_0x2e2ab0(0x1eb)],'handler'(_0x5c5806,_0x77bde){var _0x149105=_0x2e2ab0,_0xbbdae0;if(!_0x77bde)return!0x1;const {unitId:_0x5593c2,payload:_0x650178,segmentId:_0x27f000}=_0x77bde,_0x438650=_0x5c5806['get'](ICommandService),_0x2f5e60=_0x5c5806[_0x149105(0x190)](IUniverInstanceService),_0x1600ba=_0x5c5806[_0x149105(0x190)](DocSelectionManagerService)[_0x149105(0x226)](),_0x3d3ec9=_0x2f5e60['getUnit'](_0x5593c2,UniverInstanceType[_0x149105(0x1c9)]);if(!_0x1600ba||!_0x3d3ec9)return!0x1;const _0x408d19=generateRandomId(),_0x62f72f=(_0xbbdae0=getBodySlice(_0x3d3ec9['getSelfOrHeaderFooterModel'](_0x27f000)[_0x149105(0x1e4)](),_0x1600ba[_0x149105(0x172)],_0x1600ba['endOffset'])['textRuns'])==null?void 0x0:_0xbbdae0[0x0];_0x62f72f&&(_0x62f72f['ed']=_0x77bde[_0x149105(0x20e)][_0x149105(0x183)]+0x1);const _0x33fe37=replaceSelectionFactory(_0x5c5806,{'unitId':_0x5593c2,'body':{'dataStream':''+DataStreamTreeTokenType['CUSTOM_RANGE_START']+_0x77bde[_0x149105(0x20e)]+DataStreamTreeTokenType[_0x149105(0x223)],'customRanges':[{'rangeId':_0x408d19,'rangeType':CustomRangeType[_0x149105(0x1ab)],'startIndex':0x0,'endIndex':_0x77bde[_0x149105(0x20e)]['length']+0x1,'properties':{'url':_0x650178}}],'textRuns':_0x62f72f?[_0x62f72f]:void 0x0},'selection':{'startOffset':_0x1600ba[_0x149105(0x172)],'endOffset':_0x1600ba[_0x149105(0x16a)],'collapsed':!0x1,'segmentId':_0x27f000}});return _0x33fe37?_0x438650[_0x149105(0x16e)](_0x33fe37['id'],_0x33fe37[_0x149105(0x23e)]):!0x1;}},docsLinkEdit=_0x2e2ab0(0x24b),docsLinkEditTitle=_0x2e2ab0(0x192),docsLinkEditClose=_0x2e2ab0(0x20d),docsLinkEditButtons=_0x2e2ab0(0x167),docsLinkEditButton=_0x2e2ab0(0x21d),styles$1={'docsLinkEdit':docsLinkEdit,'docsLinkEditTitle':docsLinkEditTitle,'docsLinkEditClose':docsLinkEditClose,'docsLinkEditButtons':docsLinkEditButtons,'docsLinkEditButton':docsLinkEditButton};function hasProtocol(_0x17b0d6){return/^[a-zA-Z]+:\/\//['test'](_0x17b0d6);}__name(hasProtocol,'hasProtocol');function isEmail(_0x1dc4e6){var _0x37041d=_0x2e2ab0;return/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/[_0x37041d(0x1d1)](_0x1dc4e6);}__name(isEmail,'isEmail');function transformUrl(_0x57996a){return hasProtocol(_0x57996a)?_0x57996a:isEmail(_0x57996a)?'mailto://'+_0x57996a:'https://'+_0x57996a;}__name(transformUrl,_0x2e2ab0(0x1f4));const DocHyperLinkEdit=__name(()=>{var _0x5794b1=_0x2e2ab0,_0x211da7;const _0x2cef82=useDependency(DocHyperLinkPopupService),_0xff13b6=useDependency(LocaleService),_0x3ad0a7=useObservable(_0x2cef82[_0x5794b1(0x1e7)]),_0x417df3=useDependency(ICommandService),_0x1a2145=useDependency(IUniverInstanceService),_0x598dd5=useDependency(IRenderManagerService),_0x3f6c20=useDependency(DocSelectionManagerService),[_0x135291,_0x54fe59]=useState(''),[_0x25ec2a,_0x1c4dad]=useState(''),[_0x2a9206,_0x4a854f]=useState(!0x1),_0x58a25f=Tools['isLegalUrl'](_0x135291),_0x3e9ac8=_0x3ad0a7?_0x1a2145[_0x5794b1(0x216)](_0x3ad0a7[_0x5794b1(0x151)],UniverInstanceType[_0x5794b1(0x1c9)]):_0x1a2145[_0x5794b1(0x1d0)](UniverInstanceType[_0x5794b1(0x1c9)]),_0x3d2451=(_0x211da7=_0x598dd5['getRenderById'](_0x3e9ac8[_0x5794b1(0x1c3)]()))==null?void 0x0:_0x211da7['with'](DocSelectionRenderService);useEffect(()=>{var _0x1814e9=_0x5794b1,_0xc47410,_0x1ce752,_0xf7ac9b,_0xfa1d80,_0x1f6cd2,_0xd50e5c,_0x4be397,_0x178099,_0x417aec;const _0x55050f=_0x3f6c20[_0x1814e9(0x226)]();if(!_0x55050f)return;if(_0x3ad0a7){const _0x16d5d7=(_0xc47410=_0x3e9ac8==null?void 0x0:_0x3e9ac8[_0x1814e9(0x1b1)](_0x3ad0a7[_0x1814e9(0x238)]))==null?void 0x0:_0xc47410[_0x1814e9(0x1e4)](),_0x51655e=(_0x1ce752=_0x16d5d7==null?void 0x0:_0x16d5d7['customRanges'])==null?void 0x0:_0x1ce752[_0x1814e9(0x1a6)](_0x3af4c4=>(_0x3ad0a7==null?void 0x0:_0x3ad0a7[_0x1814e9(0x14c)])===_0x3af4c4[_0x1814e9(0x177)]);_0x3e9ac8&&_0x51655e&&(_0x54fe59((_0xfa1d80=(_0xf7ac9b=_0x51655e[_0x1814e9(0x220)])==null?void 0x0:_0xf7ac9b[_0x1814e9(0x1d9)])!=null?_0xfa1d80:''),_0x1c4dad(BuildTextUtils[_0x1814e9(0x245)][_0x1814e9(0x1ea)](getBodySlice(_0x16d5d7,_0x51655e['startIndex'],_0x51655e['endIndex'])[_0x1814e9(0x227)])));return;}const _0x1a05e3=(_0x4be397=(_0xd50e5c=(_0x1f6cd2=_0x3e9ac8==null?void 0x0:_0x3e9ac8[_0x1814e9(0x1b1)](_0x55050f['segmentId']))==null?void 0x0:_0x1f6cd2[_0x1814e9(0x1e4)]())==null?void 0x0:_0xd50e5c[_0x1814e9(0x1d5)])==null?void 0x0:_0x4be397[_0x1814e9(0x1a6)](_0x2692af=>Math['max'](_0x55050f[_0x1814e9(0x172)],_0x2692af[_0x1814e9(0x22d)])<=Math[_0x1814e9(0x14d)](_0x55050f[_0x1814e9(0x16a)]-0x1,_0x2692af[_0x1814e9(0x1fd)]));_0x3e9ac8&&_0x1a05e3&&_0x54fe59((_0x417aec=(_0x178099=_0x1a05e3==null?void 0x0:_0x1a05e3[_0x1814e9(0x220)])==null?void 0x0:_0x178099[_0x1814e9(0x1d9)])!=null?_0x417aec:'');},[_0x3e9ac8,_0x3ad0a7,_0x3f6c20,_0x1a2145]),useEffect(()=>(_0x3d2451&&_0x3d2451[_0x5794b1(0x155)](),()=>{var _0x203b27=_0x5794b1;_0x3d2451&&_0x3d2451[_0x203b27(0x1d2)]();}),[_0x3d2451]);const _0xcf2936=__name(()=>{var _0x4bd48d=_0x5794b1;_0x2cef82[_0x4bd48d(0x165)]();},'handleCancel'),_0x3b3f2e=__name(()=>{var _0x21d056=_0x5794b1;if(_0x4a854f(!0x0),!_0x58a25f||!_0x3e9ac8)return;const _0x3e2014=transformUrl(_0x135291);if(!_0x3ad0a7)_0x417df3[_0x21d056(0x1b2)](AddDocHyperLinkCommand['id'],{'unitId':_0x3e9ac8[_0x21d056(0x1c3)](),'payload':_0x3e2014});else{if(!_0x25ec2a)return;_0x417df3['executeCommand'](UpdateDocHyperLinkCommand['id'],{'unitId':_0x3e9ac8['getUnitId'](),'payload':_0x3e2014,'linkId':_0x3ad0a7[_0x21d056(0x14c)],'label':_0x25ec2a,'segmentId':_0x3ad0a7['segmentId']});}_0x2cef82[_0x21d056(0x165)]();},_0x5794b1(0x236));if(_0x3e9ac8)return _0x2041f6[_0x5794b1(0x1a3)](_0x5794b1(0x18e),{'className':styles$1[_0x5794b1(0x215)]},_0x2041f6['createElement'](_0x5794b1(0x18e),null,_0x3ad0a7?_0x2041f6[_0x5794b1(0x1a3)](FormLayout,{'label':_0xff13b6['t'](_0x5794b1(0x17e)),'error':_0x2a9206&&!_0x25ec2a?_0xff13b6['t'](_0x5794b1(0x1fa)):''},_0x2041f6[_0x5794b1(0x1a3)](Input,{'value':_0x25ec2a,'onChange':_0x1c4dad,'autoFocus':!0x0,'onKeyDown':__name(_0x896282=>{var _0x2a74b2=_0x5794b1;_0x896282[_0x2a74b2(0x1d3)]===KeyCode[_0x2a74b2(0x195)]&&_0x3b3f2e();},'onKeyDown')})):null,_0x2041f6['createElement'](FormLayout,{'label':_0xff13b6['t']('docLink.edit.address'),'error':_0x2a9206&&!_0x58a25f?_0xff13b6['t'](_0x5794b1(0x16c)):''},_0x2041f6['createElement'](Input,{'value':_0x135291,'onChange':_0x54fe59,'autoFocus':!0x0,'onKeyDown':__name(_0x1626b1=>{var _0x23c15b=_0x5794b1;_0x1626b1[_0x23c15b(0x1d3)]===KeyCode[_0x23c15b(0x195)]&&_0x3b3f2e();},'onKeyDown')}))),_0x2041f6[_0x5794b1(0x1a3)](_0x5794b1(0x18e),{'className':styles$1[_0x5794b1(0x16b)]},_0x2041f6['createElement'](Button,{'className':styles$1[_0x5794b1(0x159)],'onClick':_0xcf2936},_0xff13b6['t'](_0x5794b1(0x163))),_0x2041f6[_0x5794b1(0x1a3)](Button,{'disabled':!_0x135291,'className':styles$1[_0x5794b1(0x159)],'type':_0x5794b1(0x21a),'onClick':_0x3b3f2e},_0xff13b6['t'](_0x5794b1(0x168)))));},'DocHyperLinkEdit');DocHyperLinkEdit[_0x2e2ab0(0x209)]=_0x2e2ab0(0x198);var __assign=function(){var _0x50ee5a=_0x2e2ab0;return __assign=Object[_0x50ee5a(0x1ec)]||function(_0x209a4a){var _0x3147c1=_0x50ee5a;for(var _0x5d0726,_0x37a502=0x1,_0x56050b=arguments['length'];_0x37a502<_0x56050b;_0x37a502++){_0x5d0726=arguments[_0x37a502];for(var _0x14d2cb in _0x5d0726)Object[_0x3147c1(0x1dd)][_0x3147c1(0x148)][_0x3147c1(0x1e5)](_0x5d0726,_0x14d2cb)&&(_0x209a4a[_0x14d2cb]=_0x5d0726[_0x14d2cb]);}return _0x209a4a;},__assign['apply'](this,arguments);},__rest=function(_0x33955c,_0x528765){var _0x2bebdd=_0x2e2ab0,_0x32afe1={};for(var _0x32720e in _0x33955c)Object[_0x2bebdd(0x1dd)][_0x2bebdd(0x148)][_0x2bebdd(0x1e5)](_0x33955c,_0x32720e)&&_0x528765[_0x2bebdd(0x164)](_0x32720e)<0x0&&(_0x32afe1[_0x32720e]=_0x33955c[_0x32720e]);if(_0x33955c!=null&&typeof Object[_0x2bebdd(0x1bb)]==_0x2bebdd(0x1bc)){for(var _0x20c4d1=0x0,_0x32720e=Object['getOwnPropertySymbols'](_0x33955c);_0x20c4d1<_0x32720e[_0x2bebdd(0x183)];_0x20c4d1++)_0x528765[_0x2bebdd(0x164)](_0x32720e[_0x20c4d1])<0x0&&Object[_0x2bebdd(0x1dd)][_0x2bebdd(0x1af)][_0x2bebdd(0x1e5)](_0x33955c,_0x32720e[_0x20c4d1])&&(_0x32afe1[_0x32720e[_0x20c4d1]]=_0x33955c[_0x32720e[_0x20c4d1]]);}return _0x32afe1;},IconBase=forwardRef(function(_0x9648ce,_0x49400d){var _0x5a0a5f=_0x2e2ab0,_0x597641=_0x9648ce['icon'],_0x7bd195=_0x9648ce['id'],_0x1a9141=_0x9648ce[_0x5a0a5f(0x1c7)],_0x2c1c19=_0x9648ce[_0x5a0a5f(0x1cd)],_0x31c078=__rest(_0x9648ce,['icon','id',_0x5a0a5f(0x1c7),_0x5a0a5f(0x1cd)]),_0x392bb5=_0x5a0a5f(0x1cf)['concat'](_0x7bd195,'\x20')[_0x5a0a5f(0x23d)](_0x1a9141||'')[_0x5a0a5f(0x14b)](),_0xeb2e4e=useRef('_'[_0x5a0a5f(0x23d)](generateShortUuid()));return render(_0x597641,''[_0x5a0a5f(0x23d)](_0x7bd195),{'defIds':_0x597641[_0x5a0a5f(0x1d7)],'idSuffix':_0xeb2e4e[_0x5a0a5f(0x246)]},__assign({'ref':_0x49400d,'className':_0x392bb5},_0x31c078),_0x2c1c19);});function render(_0x66fe1a,_0x72406e,_0x496397,_0xafb139,_0x367f75){var _0x1c6e5b=_0x2e2ab0;return createElement(_0x66fe1a[_0x1c6e5b(0x1ef)],__assign(__assign({'key':_0x72406e},replaceRuntimeIdsAndExtInAttrs(_0x66fe1a,_0x496397,_0x367f75)),_0xafb139),(replaceRuntimeIdsInDefs(_0x66fe1a,_0x496397)[_0x1c6e5b(0x18f)]||[])[_0x1c6e5b(0x18b)](function(_0x341bbc,_0x49884c){var _0x3a2d3c=_0x1c6e5b;return render(_0x341bbc,''['concat'](_0x72406e,'-')['concat'](_0x66fe1a[_0x3a2d3c(0x1ef)],'-')[_0x3a2d3c(0x23d)](_0x49884c),_0x496397,void 0x0,_0x367f75);}));}function _0x203c(_0x3ef440,_0x14f1ec){var _0x5a42d2=_0x5a42();return _0x203c=function(_0x203ca9,_0x3d4b83){_0x203ca9=_0x203ca9-0x146;var _0x4ce17c=_0x5a42d2[_0x203ca9];return _0x4ce17c;},_0x203c(_0x3ef440,_0x14f1ec);}__name(render,'render');function replaceRuntimeIdsAndExtInAttrs(_0x29c45b,_0x2134a8,_0x16acee){var _0x8e39d=_0x2e2ab0,_0x4a388b=__assign({},_0x29c45b[_0x8e39d(0x1b0)]);_0x16acee!=null&&_0x16acee[_0x8e39d(0x1f2)]&&_0x4a388b[_0x8e39d(0x158)]==='colorChannel1'&&(_0x4a388b['fill']=_0x16acee['colorChannel1']);var _0x207ae8=_0x2134a8[_0x8e39d(0x1d7)];return!_0x207ae8||_0x207ae8[_0x8e39d(0x183)]===0x0||(_0x29c45b['tag']===_0x8e39d(0x1ce)&&_0x4a388b[_0x8e39d(0x16f)]&&(_0x4a388b[_0x8e39d(0x16f)]=_0x4a388b[_0x8e39d(0x16f)]+_0x2134a8[_0x8e39d(0x181)]),Object[_0x8e39d(0x184)](_0x4a388b)[_0x8e39d(0x199)](function(_0x1cd2be){var _0x57b281=_0x8e39d,_0x5ac4d1=_0x1cd2be[0x0],_0x1073c4=_0x1cd2be[0x1];typeof _0x1073c4=='string'&&(_0x4a388b[_0x5ac4d1]=_0x1073c4[_0x57b281(0x1fe)](/url\(#(.*)\)/,_0x57b281(0x1c1)[_0x57b281(0x23d)](_0x2134a8['idSuffix'],')')));})),_0x4a388b;}__name(replaceRuntimeIdsAndExtInAttrs,_0x2e2ab0(0x16d));function replaceRuntimeIdsInDefs(_0x3467c7,_0x542a9e){var _0x36285c=_0x2e2ab0,_0x43809a,_0x82c803=_0x542a9e[_0x36285c(0x1d7)];return!_0x82c803||_0x82c803[_0x36285c(0x183)]===0x0?_0x3467c7:_0x3467c7[_0x36285c(0x1ef)]===_0x36285c(0x1a8)&&(!((_0x43809a=_0x3467c7[_0x36285c(0x18f)])===null||_0x43809a===void 0x0)&&_0x43809a[_0x36285c(0x183)])?__assign(__assign({},_0x3467c7),{'children':_0x3467c7[_0x36285c(0x18f)][_0x36285c(0x18b)](function(_0x4bf6b7){var _0x17b2a1=_0x36285c;return typeof _0x4bf6b7[_0x17b2a1(0x1b0)]['id']=='string'&&_0x82c803&&_0x82c803['indexOf'](_0x4bf6b7[_0x17b2a1(0x1b0)]['id'])>-0x1?__assign(__assign({},_0x4bf6b7),{'attrs':__assign(__assign({},_0x4bf6b7['attrs']),{'id':_0x4bf6b7[_0x17b2a1(0x1b0)]['id']+_0x542a9e[_0x17b2a1(0x181)]})}):_0x4bf6b7;})}):_0x3467c7;}__name(replaceRuntimeIdsInDefs,_0x2e2ab0(0x239));function generateShortUuid(){var _0x4ac898=_0x2e2ab0;return Math[_0x4ac898(0x233)]()[_0x4ac898(0x23f)](0x24)[_0x4ac898(0x22e)](0x2,0x8);}__name(generateShortUuid,_0x2e2ab0(0x171)),IconBase[_0x2e2ab0(0x217)]=_0x2e2ab0(0x21c);var element$3={'tag':_0x2e2ab0(0x23a),'attrs':{'fill':_0x2e2ab0(0x1e9),'viewBox':_0x2e2ab0(0x1da),'width':_0x2e2ab0(0x173),'height':_0x2e2ab0(0x173)},'children':[{'tag':'path','attrs':{'fill':_0x2e2ab0(0x1fc),'d':'M4.1302\x2012.4251C4.25802\x2013.7417\x205.36779\x2014.7708\x206.71792\x2014.7708H11.7179C13.1539\x2014.7708\x2014.3179\x2013.6067\x2014.3179\x2012.1708V6.1708C14.3179\x204.78586\x2013.2351\x203.65383\x2011.8698\x203.57517C11.742\x202.25858\x2010.6323\x201.22949\x209.28213\x201.22949H4.28213C2.84619\x201.22949\x201.68213\x202.39355\x201.68213\x203.82949V9.82949C1.68213\x2011.2144\x202.76497\x2012.3465\x204.1302\x2012.4251ZM10.6583\x203.5708H6.71792C5.28198\x203.5708\x204.11792\x204.73486\x204.11792\x206.1708V11.22C3.4221\x2011.1387\x202.88213\x2010.5471\x202.88213\x209.82949V3.82949C2.88213\x203.05629\x203.50893\x202.42949\x204.28213\x202.42949H9.28213C9.96695\x202.42949\x2010.5369\x202.92119\x2010.6583\x203.5708ZM13.1179\x206.1708C13.1179\x205.3976\x2012.4911\x204.7708\x2011.7179\x204.7708H6.71792C5.94472\x204.7708\x205.31792\x205.3976\x205.31792\x206.1708V12.1708C5.31792\x2012.944\x205.94472\x2013.5708\x206.71792\x2013.5708H11.7179C12.4911\x2013.5708\x2013.1179\x2012.944\x2013.1179\x2012.1708V6.1708Z','fillRule':_0x2e2ab0(0x1f9),'clipRule':'evenodd'}}]},CopySingle=forwardRef(function(_0x5a2ec5,_0x4bd925){var _0x55052d=_0x2e2ab0;return createElement(IconBase,Object[_0x55052d(0x1ec)]({},_0x5a2ec5,{'id':'copy-single','ref':_0x4bd925,'icon':element$3}));});CopySingle[_0x2e2ab0(0x217)]=_0x2e2ab0(0x208);var element$2={'tag':_0x2e2ab0(0x23a),'attrs':{'fill':_0x2e2ab0(0x1e9),'viewBox':'0\x200\x2016\x2016','width':'1em','height':_0x2e2ab0(0x173)},'children':[{'tag':_0x2e2ab0(0x229),'attrs':{'fill':'currentColor','d':_0x2e2ab0(0x14f),'fillRule':_0x2e2ab0(0x1f9),'clipRule':'evenodd'}}]},LinkSingle=forwardRef(function(_0x1a8bee,_0x517619){var _0x36f702=_0x2e2ab0;return createElement(IconBase,Object['assign']({},_0x1a8bee,{'id':_0x36f702(0x201),'ref':_0x517619,'icon':element$2}));});LinkSingle[_0x2e2ab0(0x217)]=_0x2e2ab0(0x21b);var element$1={'tag':'svg','attrs':{'fill':_0x2e2ab0(0x1e9),'viewBox':_0x2e2ab0(0x1d6),'width':_0x2e2ab0(0x173),'height':'1em'},'children':[{'tag':_0x2e2ab0(0x229),'attrs':{'fill':'currentColor','d':'M12.5935\x203.47302C11.6354\x202.51492\x2010.082\x202.51492\x209.12388\x203.47302L7.83534\x204.76157C7.60102\x204.99588\x207.22112\x204.99588\x206.98681\x204.76157\x206.75249\x204.52725\x206.75249\x204.14735\x206.98681\x203.91304L8.27535\x202.62449C9.70209\x201.19776\x2012.0153\x201.19776\x2013.442\x202.62449\x2014.8688\x204.05123\x2014.8688\x206.36442\x2013.442\x207.79116L12.1535\x209.0797C11.9192\x209.31402\x2011.5393\x209.31402\x2011.3049\x209.0797\x2011.0706\x208.84539\x2011.0706\x208.46549\x2011.3049\x208.23117L12.5935\x206.94263C13.5516\x205.98452\x2013.5516\x204.43113\x2012.5935\x203.47302zM3.40637\x2012.6606C2.44827\x2011.7025\x202.44827\x2010.1491\x203.40637\x209.19102L4.69492\x207.90248C4.92923\x207.66816\x204.92923\x207.28826\x204.69492\x207.05395\x204.4606\x206.81963\x204.0807\x206.81963\x203.84639\x207.05395L2.55784\x208.34249C1.13111\x209.76923\x201.13111\x2012.0824\x202.55784\x2013.5092\x203.98458\x2014.9359\x206.29777\x2014.9359\x207.72451\x2013.5092L9.01305\x2012.2206C9.24737\x2011.9863\x209.24737\x2011.6064\x209.01305\x2011.3721\x208.77874\x2011.1378\x208.39884\x2011.1378\x208.16452\x2011.3721L6.87598\x2012.6606C5.91787\x2013.6187\x204.36448\x2013.6187\x203.40637\x2012.6606zM3.5852\x202.80332C3.35088\x202.569\x202.97098\x202.569\x202.73667\x202.80332\x202.50235\x203.03763\x202.50235\x203.41753\x202.73667\x203.65185L12.4151\x2013.3302C12.6494\x2013.5646\x2013.0293\x2013.5646\x2013.2636\x2013.3302\x2013.4979\x2013.0959\x2013.4979\x2012.716\x2013.2636\x2012.4817L3.5852\x202.80332z'}}]},UnlinkSingle=forwardRef(function(_0x1c0041,_0x21b90e){var _0x1425d7=_0x2e2ab0;return createElement(IconBase,Object[_0x1425d7(0x1ec)]({},_0x1c0041,{'id':_0x1425d7(0x1a7),'ref':_0x21b90e,'icon':element$1}));});UnlinkSingle[_0x2e2ab0(0x217)]=_0x2e2ab0(0x247);var element={'tag':_0x2e2ab0(0x23a),'attrs':{'fill':'none','viewBox':_0x2e2ab0(0x212),'width':_0x2e2ab0(0x173),'height':_0x2e2ab0(0x173)},'children':[{'tag':_0x2e2ab0(0x229),'attrs':{'fill':_0x2e2ab0(0x1fc),'d':_0x2e2ab0(0x204),'fillRule':_0x2e2ab0(0x1f9),'clipRule':_0x2e2ab0(0x1f9)}},{'tag':_0x2e2ab0(0x229),'attrs':{'fill':_0x2e2ab0(0x1fc),'d':_0x2e2ab0(0x240)}}]},WriteSingle=forwardRef(function(_0x13ab37,_0x211e3e){return createElement(IconBase,Object['assign']({},_0x13ab37,{'id':'write-single','ref':_0x211e3e,'icon':element}));});WriteSingle[_0x2e2ab0(0x217)]=_0x2e2ab0(0x146);const DeleteDocHyperLinkCommand={'type':CommandType['COMMAND'],'id':_0x2e2ab0(0x161),async 'handler'(_0x2f1dc1,_0x41d475){var _0xe6650f=_0x2e2ab0;if(!_0x41d475)return!0x1;const {unitId:_0x5168c8,linkId:_0x1a5367,segmentId:_0x22bbed}=_0x41d475,_0x3e8506=_0x2f1dc1[_0xe6650f(0x190)](ICommandService),_0x2e12da=deleteCustomRangeFactory(_0x2f1dc1,{'unitId':_0x5168c8,'rangeId':_0x1a5367,'segmentId':_0x22bbed});return _0x2e12da?await _0x3e8506[_0xe6650f(0x16e)](_0x2e12da['id'],_0x2e12da[_0xe6650f(0x23e)]):!0x1;}},shouldDisableAddLink=__name(_0x4e86fd=>{var _0x1e3984=_0x2e2ab0,_0x271fed;const _0x2b0032=_0x4e86fd[_0x1e3984(0x190)](DocSelectionManagerService),_0x5e3c21=_0x4e86fd['get'](IUniverInstanceService),_0x1a0ba3=_0x2b0032[_0x1e3984(0x1c5)]();if(!_0x1a0ba3[_0x1e3984(0x183)]||_0x1a0ba3['length']>0x1)return!0x0;const _0x5f0abf=_0x1a0ba3[0x0],_0x3d5f62=_0x5e3c21[_0x1e3984(0x1d0)](UniverInstanceType['UNIVER_DOC']);if(!_0x3d5f62||!_0x5f0abf||_0x5f0abf[_0x1e3984(0x1dc)])return!0x0;const _0x3c4680=_0x3d5f62[_0x1e3984(0x1b1)](_0x5f0abf['segmentId'])[_0x1e3984(0x1e4)](),_0xe7078d=_0x3c4680==null?void 0x0:_0x3c4680[_0x1e3984(0x1cc)];if(!_0xe7078d)return!0x0;for(let _0x372161=0x0,_0x1930a9=_0xe7078d[_0x1e3984(0x183)];_0x372161<_0x1930a9;_0x372161++){const _0x1fc5ba=_0xe7078d[_0x372161];if(_0x5f0abf['startOffset']<=_0x1fc5ba[_0x1e3984(0x22d)]&&_0x5f0abf['endOffset']>_0x1fc5ba[_0x1e3984(0x22d)])return!0x0;if(_0x1fc5ba[_0x1e3984(0x22d)]>_0x5f0abf['endOffset'])break;}return!BuildTextUtils[_0x1e3984(0x19b)][_0x1e3984(0x1de)](_0x5f0abf,(_0x271fed=_0x3c4680[_0x1e3984(0x1d5)])!=null?_0x271fed:[])[_0x1e3984(0x174)](_0x301451=>_0x301451[_0x1e3984(0x219)]===CustomRangeType[_0x1e3984(0x1ab)]);},'shouldDisableAddLink'),ShowDocHyperLinkEditPopupOperation={'type':CommandType['OPERATION'],'id':'doc.operation.show-hyper-link-edit-popup','handler'(_0x21953b,_0x493e96){var _0x2e384a=_0x2e2ab0,_0x4315bb;const _0x363b34=_0x493e96==null?void 0x0:_0x493e96[_0x2e384a(0x249)],_0x53e9e0=_0x21953b['get'](IUniverInstanceService);if(shouldDisableAddLink(_0x21953b)&&!_0x363b34)return!0x1;const _0x3a4b32=_0x21953b[_0x2e384a(0x190)](DocHyperLinkPopupService),_0x5aece2=(_0x363b34==null?void 0x0:_0x363b34['unitId'])||((_0x4315bb=_0x53e9e0[_0x2e384a(0x1d0)](UniverInstanceType[_0x2e384a(0x1c9)]))==null?void 0x0:_0x4315bb['getUnitId']());return _0x5aece2?(_0x3a4b32[_0x2e384a(0x1f3)](_0x5aece2,_0x363b34),!0x0):!0x1;}},ToggleDocHyperLinkInfoPopupOperation={'type':CommandType[_0x2e2ab0(0x21f)],'id':_0x2e2ab0(0x17d),'handler'(_0xee0dd6,_0xfe6071){var _0xf4bf73=_0x2e2ab0;const _0x169010=_0xee0dd6[_0xf4bf73(0x190)](DocHyperLinkPopupService);return _0xfe6071?(_0x169010[_0xf4bf73(0x1b4)](_0xfe6071),!0x0):(_0x169010[_0xf4bf73(0x230)](),!0x0);}},ClickDocHyperLinkOperation={'type':CommandType[_0x2e2ab0(0x21f)],'id':_0x2e2ab0(0x244),'handler'(_0x4ca5b8,_0x27bfda){var _0x30c0e8=_0x2e2ab0,_0x5f07fe,_0x1663d1,_0x5e6fa8;if(!_0x27bfda)return!0x1;const {unitId:_0x1bba0b,linkId:_0x278526,segmentId:_0x22f9ea}=_0x27bfda,_0x1a61d7=_0x4ca5b8['get'](IUniverInstanceService)[_0x30c0e8(0x216)](_0x1bba0b,UniverInstanceType[_0x30c0e8(0x1c9)]),_0x299d5d=_0x1a61d7==null?void 0x0:_0x1a61d7[_0x30c0e8(0x1b1)](_0x22f9ea)[_0x30c0e8(0x1e4)](),_0x1f3ed7=(_0x5e6fa8=(_0x1663d1=(_0x5f07fe=_0x299d5d==null?void 0x0:_0x299d5d[_0x30c0e8(0x1d5)])==null?void 0x0:_0x5f07fe[_0x30c0e8(0x1a6)](_0x125241=>_0x125241[_0x30c0e8(0x177)]===_0x278526&&_0x125241[_0x30c0e8(0x219)]===CustomRangeType[_0x30c0e8(0x1ab)]))==null?void 0x0:_0x1663d1[_0x30c0e8(0x220)])==null?void 0x0:_0x5e6fa8['url'];return _0x1f3ed7&&window[_0x30c0e8(0x1b5)](_0x1f3ed7,_0x30c0e8(0x187),_0x30c0e8(0x18a)),!0x0;}},docLink=_0x2e2ab0(0x1d8),docLinkType='univer-doc-link-type',docLinkContent=_0x2e2ab0(0x14a),docLinkContentError=_0x2e2ab0(0x20c),docLinkUrl=_0x2e2ab0(0x241),docLinkOperations=_0x2e2ab0(0x17c),docLinkOperation='univer-doc-link-operation',docLinkOperationError=_0x2e2ab0(0x147),styles={'docLink':docLink,'docLinkType':docLinkType,'docLinkContent':docLinkContent,'docLinkContentError':docLinkContentError,'docLinkUrl':docLinkUrl,'docLinkOperations':docLinkOperations,'docLinkOperation':docLinkOperation,'docLinkOperationError':docLinkOperationError},DocLinkPopup=__name(()=>{var _0x2199e3=_0x2e2ab0,_0x3df17b,_0x506b1c;const _0x16ffab=useDependency(DocHyperLinkPopupService),_0x50d48a=useDependency(ICommandService),_0x173caf=useDependency(IMessageService),_0x29bd65=useDependency(LocaleService),_0x390889=_0x5d6cc9(_0x16ffab['showingLink$']),_0x4933a4=useDependency(IUniverInstanceService);if(!_0x390889)return null;const {unitId:_0x12cad0,linkId:_0x28971a,segmentId:_0x4e5507}=_0x390889,_0x5513c9=_0x4933a4['getUnit'](_0x12cad0,UniverInstanceType[_0x2199e3(0x1c9)]),_0x9ff41=_0x5513c9==null?void 0x0:_0x5513c9[_0x2199e3(0x1b1)](_0x4e5507)[_0x2199e3(0x1e4)](),_0x22da3e=(_0x3df17b=_0x9ff41==null?void 0x0:_0x9ff41['customRanges'])==null?void 0x0:_0x3df17b['find'](_0x232060=>_0x232060['rangeId']===_0x28971a&&_0x232060[_0x2199e3(0x219)]===CustomRangeType[_0x2199e3(0x1ab)]);if(!_0x22da3e)return null;const _0x5580d9=(_0x506b1c=_0x22da3e[_0x2199e3(0x220)])==null?void 0x0:_0x506b1c['url'];return _0x2041f6[_0x2199e3(0x1a3)](_0x2199e3(0x18e),{'className':styles[_0x2199e3(0x22f)],'onClick':__name(()=>{var _0x1d07b6=_0x2199e3;_0x16ffab[_0x1d07b6(0x230)]();},_0x2199e3(0x1c2))},_0x2041f6[_0x2199e3(0x1a3)](_0x2199e3(0x18e),{'className':_0x182993(styles[_0x2199e3(0x19d)]),'onClick':__name(()=>window['open'](_0x5580d9),_0x2199e3(0x1c2))},_0x2041f6[_0x2199e3(0x1a3)]('div',{'className':styles[_0x2199e3(0x19a)]},_0x2041f6[_0x2199e3(0x1a3)](LinkSingle,null)),_0x2041f6[_0x2199e3(0x1a3)](Tooltip,{'showIfEllipsis':!0x0,'title':_0x5580d9},_0x2041f6[_0x2199e3(0x1a3)](_0x2199e3(0x225),{'className':styles[_0x2199e3(0x1bd)]},_0x5580d9))),_0x2041f6[_0x2199e3(0x1a3)]('div',{'className':styles[_0x2199e3(0x1b7)]},_0x2041f6['createElement']('div',{'className':_0x182993(styles[_0x2199e3(0x156)]),'onClick':__name(()=>{var _0x535b57=_0x2199e3;navigator['clipboard'][_0x535b57(0x1be)](_0x5580d9),_0x173caf[_0x535b57(0x1fb)]({'content':_0x29bd65['t'](_0x535b57(0x175)),'type':MessageType['Info']});},_0x2199e3(0x1c2))},_0x2041f6[_0x2199e3(0x1a3)](Tooltip,{'placement':'bottom','title':_0x29bd65['t'](_0x2199e3(0x21e))},_0x2041f6['createElement'](CopySingle,null))),_0x2041f6['createElement'](_0x2199e3(0x18e),{'className':styles['docLinkOperation'],'onClick':__name(()=>{var _0x1d86ca=_0x2199e3;_0x50d48a[_0x1d86ca(0x1b2)](ShowDocHyperLinkEditPopupOperation['id'],{'link':_0x390889});},_0x2199e3(0x1c2))},_0x2041f6['createElement'](Tooltip,{'placement':_0x2199e3(0x180),'title':_0x29bd65['t'](_0x2199e3(0x235))},_0x2041f6[_0x2199e3(0x1a3)](WriteSingle,null))),_0x2041f6[_0x2199e3(0x1a3)](_0x2199e3(0x18e),{'className':styles['docLinkOperation'],'onClick':__name(()=>{var _0x4dd766=_0x2199e3;_0x50d48a[_0x4dd766(0x1b2)](DeleteDocHyperLinkCommand['id'],{'unitId':_0x12cad0,'linkId':_0x22da3e[_0x4dd766(0x177)],'segmentId':_0x4e5507});},_0x2199e3(0x1c2))},_0x2041f6[_0x2199e3(0x1a3)](Tooltip,{'placement':'bottom','title':_0x29bd65['t']('docLink.info.cancel')},_0x2041f6[_0x2199e3(0x1a3)](UnlinkSingle,null)))));},_0x2e2ab0(0x160));DocLinkPopup[_0x2e2ab0(0x209)]=_0x2e2ab0(0x1ba);var __defProp$5=Object[_0x2e2ab0(0x213)],__getOwnPropDesc$5=Object[_0x2e2ab0(0x1ad)],__decorateClass$5=__name((_0x6c42c1,_0x13fcf6,_0x32771d,_0x212a1b)=>{var _0x516b69=_0x2e2ab0;for(var _0xfb3e07=_0x212a1b>0x1?void 0x0:_0x212a1b?__getOwnPropDesc$5(_0x13fcf6,_0x32771d):_0x13fcf6,_0x347473=_0x6c42c1[_0x516b69(0x183)]-0x1,_0x4b54e7;_0x347473>=0x0;_0x347473--)(_0x4b54e7=_0x6c42c1[_0x347473])&&(_0xfb3e07=(_0x212a1b?_0x4b54e7(_0x13fcf6,_0x32771d,_0xfb3e07):_0x4b54e7(_0xfb3e07))||_0xfb3e07);return _0x212a1b&&_0xfb3e07&&__defProp$5(_0x13fcf6,_0x32771d,_0xfb3e07),_0xfb3e07;},_0x2e2ab0(0x1e6)),__decorateParam$5=__name((_0x2aef17,_0x569789)=>(_0x322759,_0x37546e)=>_0x569789(_0x322759,_0x37546e,_0x2aef17),_0x2e2ab0(0x203));const SKIT_PLACEHOLDER=0x0;var _a;let DocHyperLinkPopupService=(_a=class extends Disposable{constructor(_0x4f283e,_0x18ee6a,_0x1f1d50){var _0xe6cf5d=_0x2e2ab0;super(),__publicField(this,_0xe6cf5d(0x1f5),new BehaviorSubject(null)),__publicField(this,'_showingLink$',new BehaviorSubject(null)),__publicField(this,_0xe6cf5d(0x1e7),this['_editingLink$']['asObservable']()),__publicField(this,'showingLink$',this['_showingLink$']['asObservable']()),__publicField(this,'_editPopup',null),__publicField(this,'_infoPopup',null),(this[_0xe6cf5d(0x166)]=_0x4f283e,this[_0xe6cf5d(0x222)]=_0x18ee6a,this[_0xe6cf5d(0x14e)]=_0x1f1d50,this[_0xe6cf5d(0x22c)](()=>{var _0x3ae832=_0xe6cf5d;this[_0x3ae832(0x1f5)][_0x3ae832(0x1e8)](),this[_0x3ae832(0x194)][_0x3ae832(0x1e8)]();}));}get['editing'](){var _0x2efcef=_0x2e2ab0;return this[_0x2efcef(0x1f5)][_0x2efcef(0x224)];}get[_0x2e2ab0(0x1ac)](){var _0x252493=_0x2e2ab0;return this['_showingLink$'][_0x252493(0x224)];}[_0x2e2ab0(0x1f3)](_0x865c3a,_0x3a8fa8){var _0x171885=_0x2e2ab0,_0x3e0577,_0x49fba0,_0x58715e;this[_0x171885(0x1e0)]&&this[_0x171885(0x1e0)][_0x171885(0x15e)](),this[_0x171885(0x1f5)][_0x171885(0x248)](_0x3a8fa8);let _0x4508d7=this[_0x171885(0x222)][_0x171885(0x226)]();if(_0x3a8fa8){const {unitId:_0x14f87b,linkId:_0x221837,segmentId:_0x4e2c4a,segmentPage:_0x593f99}=_0x3a8fa8,_0x3a3d13=this[_0x171885(0x14e)][_0x171885(0x216)](_0x14f87b,UniverInstanceType[_0x171885(0x1c9)]),_0x17c299=(_0x58715e=(_0x49fba0=(_0x3e0577=_0x3a3d13==null?void 0x0:_0x3a3d13[_0x171885(0x1b1)](_0x4e2c4a))==null?void 0x0:_0x3e0577[_0x171885(0x1e4)]())==null?void 0x0:_0x49fba0[_0x171885(0x1d5)])==null?void 0x0:_0x58715e[_0x171885(0x1a6)](_0xc44d9d=>_0xc44d9d['rangeId']===_0x221837);_0x17c299&&(_0x4508d7={'collapsed':!0x1,'startOffset':_0x17c299['startIndex']+SKIT_PLACEHOLDER,'endOffset':_0x17c299[_0x171885(0x1fd)]+0x1,'segmentId':_0x4e2c4a,'segmentPage':_0x593f99},this[_0x171885(0x222)][_0x171885(0x211)]([{'startOffset':_0x17c299['startIndex'],'endOffset':_0x17c299['endIndex']+0x1}]));}return _0x4508d7?(this[_0x171885(0x1e0)]=this[_0x171885(0x166)][_0x171885(0x1f0)](_0x4508d7,{'componentKey':DocHyperLinkEdit[_0x171885(0x209)],'direction':'bottom'},_0x865c3a),this[_0x171885(0x1e0)]):null;}[_0x2e2ab0(0x165)](){var _0x17989e=_0x2e2ab0,_0x466c04;this[_0x17989e(0x1f5)][_0x17989e(0x248)](null),(_0x466c04=this[_0x17989e(0x1e0)])==null||_0x466c04['dispose']();}[_0x2e2ab0(0x1b4)](_0x3d5e34){var _0x36c4fa=_0x2e2ab0,_0x1fe111,_0x57f70b,_0x1a5349,_0x5eaeb6,_0x2e4497,_0x10cb20;const {linkId:_0x416ab0,unitId:_0x1f054b,segmentId:_0xfc5a25,segmentPage:_0x570b69}=_0x3d5e34;if(((_0x1fe111=this[_0x36c4fa(0x1ac)])==null?void 0x0:_0x1fe111[_0x36c4fa(0x14c)])===_0x416ab0&&((_0x57f70b=this['showing'])==null?void 0x0:_0x57f70b[_0x36c4fa(0x151)])===_0x1f054b&&((_0x1a5349=this[_0x36c4fa(0x1ac)])==null?void 0x0:_0x1a5349['segmentId'])===_0xfc5a25&&((_0x5eaeb6=this[_0x36c4fa(0x1ac)])==null?void 0x0:_0x5eaeb6[_0x36c4fa(0x20a)])===_0x570b69)return;this['_infoPopup']&&this[_0x36c4fa(0x152)][_0x36c4fa(0x15e)]();const _0x196f59=this['_univerInstanceService'][_0x36c4fa(0x216)](_0x1f054b,UniverInstanceType[_0x36c4fa(0x1c9)]);if(!_0x196f59)return;const _0x5cc5d5=(_0x10cb20=(_0x2e4497=_0x196f59[_0x36c4fa(0x1b1)](_0x3d5e34['segmentId'])[_0x36c4fa(0x1e4)]())==null?void 0x0:_0x2e4497[_0x36c4fa(0x1d5)])==null?void 0x0:_0x10cb20[_0x36c4fa(0x1a6)](_0x1d073a=>_0x1d073a[_0x36c4fa(0x177)]===_0x416ab0);if(this['_showingLink$'][_0x36c4fa(0x248)]({'unitId':_0x1f054b,'linkId':_0x416ab0,'segmentId':_0xfc5a25,'segmentPage':_0x570b69}),!!_0x5cc5d5)return this['_infoPopup']=this['_docCanvasPopupManagerService']['attachPopupToRange']({'collapsed':!0x1,'startOffset':_0x5cc5d5[_0x36c4fa(0x22d)]+SKIT_PLACEHOLDER,'endOffset':_0x5cc5d5['endIndex']+0x1,'segmentId':_0x3d5e34[_0x36c4fa(0x238)],'segmentPage':_0x3d5e34[_0x36c4fa(0x20a)]},{'componentKey':DocLinkPopup[_0x36c4fa(0x209)],'direction':_0x36c4fa(0x189),'multipleDirection':_0x36c4fa(0x19f),'onClickOutside':__name(()=>{this['hideInfoPopup']();},_0x36c4fa(0x1db))},_0x3d5e34[_0x36c4fa(0x151)]),this[_0x36c4fa(0x152)];}[_0x2e2ab0(0x230)](){var _0x4a9b2c=_0x2e2ab0,_0x3ef545;this[_0x4a9b2c(0x194)][_0x4a9b2c(0x248)](null),(_0x3ef545=this['_infoPopup'])==null||_0x3ef545[_0x4a9b2c(0x15e)]();}},__name(_a,_0x2e2ab0(0x197)),_a);DocHyperLinkPopupService=__decorateClass$5([__decorateParam$5(0x0,Inject(DocCanvasPopManagerService)),__decorateParam$5(0x1,Inject(DocSelectionManagerService)),__decorateParam$5(0x2,IUniverInstanceService)],DocHyperLinkPopupService);var __defProp$4=Object['defineProperty'],__getOwnPropDesc$4=Object[_0x2e2ab0(0x1ad)],__decorateClass$4=__name((_0x228679,_0x149690,_0xd7bd19,_0x10645c)=>{var _0x4b0808=_0x2e2ab0;for(var _0x4c1458=_0x10645c>0x1?void 0x0:_0x10645c?__getOwnPropDesc$4(_0x149690,_0xd7bd19):_0x149690,_0x3ee334=_0x228679[_0x4b0808(0x183)]-0x1,_0x3a14d6;_0x3ee334>=0x0;_0x3ee334--)(_0x3a14d6=_0x228679[_0x3ee334])&&(_0x4c1458=(_0x10645c?_0x3a14d6(_0x149690,_0xd7bd19,_0x4c1458):_0x3a14d6(_0x4c1458))||_0x4c1458);return _0x10645c&&_0x4c1458&&__defProp$4(_0x149690,_0xd7bd19,_0x4c1458),_0x4c1458;},_0x2e2ab0(0x154)),__decorateParam$4=__name((_0x4d674e,_0x506f61)=>(_0x17904d,_0x539ced)=>_0x506f61(_0x17904d,_0x539ced,_0x4d674e),'__decorateParam$4'),_a2;let DocHyperLinkSelectionController=(_a2=class extends Disposable{constructor(_0x324153,_0x196184,_0x46333e){var _0x35b8eb=_0x2e2ab0;super(),this['_commandService']=_0x324153,this[_0x35b8eb(0x14e)]=_0x196184,this[_0x35b8eb(0x162)]=_0x46333e,this[_0x35b8eb(0x150)]();}[_0x2e2ab0(0x150)](){var _0x216187=_0x2e2ab0;this['disposeWithMe'](this[_0x216187(0x1ee)][_0x216187(0x1e3)](_0x431cc8=>{var _0x5bb490=_0x216187,_0x51b866,_0xd10e23,_0x3c5e68;if(_0x431cc8['id']===SetTextSelectionsOperation['id']){const _0x3654a8=_0x431cc8[_0x5bb490(0x23e)],{unitId:_0x1fffc6,ranges:_0x2646e3,segmentId:_0x5c7b7b}=_0x3654a8,_0x128f3c=this[_0x5bb490(0x14e)][_0x5bb490(0x216)](_0x1fffc6,UniverInstanceType[_0x5bb490(0x1c9)]),_0x414724=_0x2646e3[0x0];if(_0x414724&&_0x128f3c){const {startOffset:_0x31719b,endOffset:_0x24aa7b,collapsed:_0x55cfbd,segmentPage:_0x565f3f}=_0x414724,_0x5cff58=(_0xd10e23=(_0x51b866=_0x128f3c[_0x5bb490(0x1b1)](_0x5c7b7b))==null?void 0x0:_0x51b866[_0x5bb490(0x1e4)]())==null?void 0x0:_0xd10e23['customRanges'];if(_0x55cfbd){const _0x237181=(_0x3c5e68=_0x5cff58==null?void 0x0:_0x5cff58['findIndex'](_0x289c51=>_0x289c51['startIndex']<_0x31719b&&_0x289c51[_0x5bb490(0x1fd)]>_0x24aa7b-0x1))!=null?_0x3c5e68:-0x1;if(_0x237181>-0x1){const _0x47c300=_0x5cff58[_0x237181];this['_docHyperLinkService'][_0x5bb490(0x1b4)]({'unitId':_0x1fffc6,'linkId':_0x47c300[_0x5bb490(0x177)],'segmentId':_0x5c7b7b,'segmentPage':_0x565f3f});return;}}else{if(_0x5cff58==null?void 0x0:_0x5cff58[_0x5bb490(0x1a6)](_0x102592=>_0x102592['startIndex']<=_0x31719b&&_0x102592[_0x5bb490(0x1fd)]>=_0x24aa7b-0x1))return;}}this['_docHyperLinkService']['hideInfoPopup'](),this[_0x5bb490(0x162)][_0x5bb490(0x165)]();}}));}},__name(_a2,_0x2e2ab0(0x185)),_a2);DocHyperLinkSelectionController=__decorateClass$4([__decorateParam$4(0x0,ICommandService),__decorateParam$4(0x1,IUniverInstanceService),__decorateParam$4(0x2,Inject(DocHyperLinkPopupService))],DocHyperLinkSelectionController);var __defProp$3=Object[_0x2e2ab0(0x213)],__getOwnPropDesc$3=Object[_0x2e2ab0(0x1ad)],__decorateClass$3=__name((_0x2d2062,_0x21562,_0x4b8e31,_0x3b95af)=>{var _0x1f4460=_0x2e2ab0;for(var _0x58be8e=_0x3b95af>0x1?void 0x0:_0x3b95af?__getOwnPropDesc$3(_0x21562,_0x4b8e31):_0x21562,_0x48bd5b=_0x2d2062[_0x1f4460(0x183)]-0x1,_0x38d00c;_0x48bd5b>=0x0;_0x48bd5b--)(_0x38d00c=_0x2d2062[_0x48bd5b])&&(_0x58be8e=(_0x3b95af?_0x38d00c(_0x21562,_0x4b8e31,_0x58be8e):_0x38d00c(_0x58be8e))||_0x58be8e);return _0x3b95af&&_0x58be8e&&__defProp$3(_0x21562,_0x4b8e31,_0x58be8e),_0x58be8e;},'__decorateClass$3'),__decorateParam$3=__name((_0x5aa058,_0x2acfd9)=>(_0x830f8e,_0x3cc228)=>_0x2acfd9(_0x830f8e,_0x3cc228,_0x5aa058),'__decorateParam$3'),_a3;let DocHyperLinkEventRenderController=(_a3=class extends Disposable{constructor(_0x463660,_0xa336a3,_0x433196,_0x8bb942,_0x73932f,_0x1bd494){var _0x27c9f4=_0x2e2ab0;super(),this['_context']=_0x463660,this['_docEventManagerService']=_0xa336a3,this[_0x27c9f4(0x1ee)]=_0x433196,this[_0x27c9f4(0x232)]=_0x8bb942,this[_0x27c9f4(0x157)]=_0x73932f,this[_0x27c9f4(0x19c)]=_0x1bd494,this[_0x27c9f4(0x210)](),this['_initClick']();}get[_0x2e2ab0(0x18d)](){var _0x4a4c08=_0x2e2ab0;return this[_0x4a4c08(0x157)][_0x4a4c08(0x20f)]();}[_0x2e2ab0(0x242)](){var _0x194b53=_0x2e2ab0;this[_0x194b53(0x232)][_0x194b53(0x1ac)]&&this[_0x194b53(0x1ee)][_0x194b53(0x1b2)](ToggleDocHyperLinkInfoPopupOperation['id']);}[_0x2e2ab0(0x210)](){var _0x267067=_0x2e2ab0;this[_0x267067(0x22c)](this[_0x267067(0x207)][_0x267067(0x234)][_0x267067(0x243)](_0x572351=>{var _0x28971b=_0x267067,_0x18e03b;const _0x5c06f1=_0x572351[_0x28971b(0x1a6)](_0x188f3c=>_0x188f3c[_0x28971b(0x15a)][_0x28971b(0x219)]===CustomRangeType['HYPERLINK']),_0x232ded=this[_0x28971b(0x19c)]['getTextRanges'](),_0x49f317=_0x232ded==null?void 0x0:_0x232ded[0x0][_0x28971b(0x238)];if(((_0x18e03b=_0x5c06f1==null?void 0x0:_0x5c06f1[_0x28971b(0x238)])!=null?_0x18e03b:'')!==_0x49f317){this[_0x28971b(0x242)]();return;}_0x5c06f1?this[_0x28971b(0x1ee)]['executeCommand'](ToggleDocHyperLinkInfoPopupOperation['id'],{'unitId':this['_context'][_0x28971b(0x151)],'linkId':_0x5c06f1[_0x28971b(0x15a)]['rangeId'],'segmentId':_0x5c06f1[_0x28971b(0x238)],'segmentPage':_0x5c06f1[_0x28971b(0x153)],'rangeId':_0x5c06f1[_0x28971b(0x15a)]['rangeId']}):this['_hideInfoPopup']();}));}['_initClick'](){var _0x46310a=_0x2e2ab0;this[_0x46310a(0x22c)](this[_0x46310a(0x207)][_0x46310a(0x22b)][_0x46310a(0x243)](_0x5947ee=>{var _0x9c7a7e=_0x46310a;const _0x42b551=_0x5947ee['range'];_0x42b551&&this['_commandService']['executeCommand'](ClickDocHyperLinkOperation['id'],{'unitId':this[_0x9c7a7e(0x1c4)]['unitId'],'linkId':_0x42b551[_0x9c7a7e(0x177)],'segmentId':_0x5947ee[_0x9c7a7e(0x238)]});}));}},__name(_a3,'DocHyperLinkEventRenderController'),_a3);DocHyperLinkEventRenderController=__decorateClass$3([__decorateParam$3(0x1,Inject(DocEventManagerService)),__decorateParam$3(0x2,ICommandService),__decorateParam$3(0x3,Inject(DocHyperLinkPopupService)),__decorateParam$3(0x4,Inject(DocSkeletonManagerService)),__decorateParam$3(0x5,Inject(DocSelectionManagerService))],DocHyperLinkEventRenderController);var __defProp$2=Object['defineProperty'],__getOwnPropDesc$2=Object[_0x2e2ab0(0x1ad)],__decorateClass$2=__name((_0x960262,_0x3abd2f,_0x198bcc,_0x773bb4)=>{for(var _0x4fd6ee=_0x773bb4>0x1?void 0x0:_0x773bb4?__getOwnPropDesc$2(_0x3abd2f,_0x198bcc):_0x3abd2f,_0x33a5c4=_0x960262['length']-0x1,_0x24e9d2;_0x33a5c4>=0x0;_0x33a5c4--)(_0x24e9d2=_0x960262[_0x33a5c4])&&(_0x4fd6ee=(_0x773bb4?_0x24e9d2(_0x3abd2f,_0x198bcc,_0x4fd6ee):_0x24e9d2(_0x4fd6ee))||_0x4fd6ee);return _0x773bb4&&_0x4fd6ee&&__defProp$2(_0x3abd2f,_0x198bcc,_0x4fd6ee),_0x4fd6ee;},_0x2e2ab0(0x17f)),__decorateParam$2=__name((_0x57ee5f,_0x569956)=>(_0x413782,_0x51ac12)=>_0x569956(_0x413782,_0x51ac12,_0x57ee5f),_0x2e2ab0(0x23b)),_a4;let DocHyperLinkRenderController=(_a4=class extends Disposable{constructor(_0x29cd2f,_0x444c35,_0x35075a,_0x2f028f){var _0x29b2c8=_0x2e2ab0;super(),this[_0x29b2c8(0x1c4)]=_0x29cd2f,this[_0x29b2c8(0x24a)]=_0x444c35,this[_0x29b2c8(0x231)]=_0x35075a,this[_0x29b2c8(0x15c)]=_0x2f028f,this[_0x29b2c8(0x221)](),this[_0x29b2c8(0x1a0)]();}[_0x2e2ab0(0x221)](){var _0x41ed09=_0x2e2ab0;this[_0x41ed09(0x24a)][_0x41ed09(0x179)](DOC_INTERCEPTOR_POINT['CUSTOM_RANGE'],{'handler':__name((_0x54f05e,_0x173d5c,_0x531dcf)=>{var _0x1f1a18=_0x41ed09;if(!_0x54f05e)return _0x531dcf(_0x54f05e);const {unitId:_0x203cc2}=_0x173d5c,_0x58432f=this['_hyperLinkService'][_0x1f1a18(0x1ac)],{linkId:_0x4e87cc,unitId:_0x4d4796}=_0x58432f||{},_0x331781=_0x4d4796===_0x203cc2&&_0x54f05e[_0x1f1a18(0x177)]===_0x4e87cc;return _0x531dcf({..._0x54f05e,'active':_0x331781});},_0x41ed09(0x15f))});}[_0x2e2ab0(0x1a0)](){var _0x69a884=_0x2e2ab0;this['disposeWithMe'](this[_0x69a884(0x231)][_0x69a884(0x15b)][_0x69a884(0x1b9)](distinctUntilChanged((_0x1756b4,_0x390c3d)=>(_0x1756b4==null?void 0x0:_0x1756b4[_0x69a884(0x14c)])===(_0x390c3d==null?void 0x0:_0x390c3d['linkId'])&&(_0x1756b4==null?void 0x0:_0x1756b4[_0x69a884(0x151)])===(_0x390c3d==null?void 0x0:_0x390c3d[_0x69a884(0x151)])),pairwise())['subscribe'](([_0x13d83c,_0x223818])=>{var _0x26b5e6=_0x69a884;_0x223818?_0x223818[_0x26b5e6(0x151)]===this[_0x26b5e6(0x1c4)][_0x26b5e6(0x151)]&&this['_docRenderController'][_0x26b5e6(0x1a5)](_0x223818[_0x26b5e6(0x151)]):_0x13d83c&&_0x13d83c[_0x26b5e6(0x151)]===this[_0x26b5e6(0x1c4)][_0x26b5e6(0x151)]&&this[_0x26b5e6(0x15c)][_0x26b5e6(0x1a5)](_0x13d83c[_0x26b5e6(0x151)]);}));}},__name(_a4,_0x2e2ab0(0x1c0)),_a4);DocHyperLinkRenderController=__decorateClass$2([__decorateParam$2(0x1,Inject(DocInterceptorService)),__decorateParam$2(0x2,Inject(DocHyperLinkPopupService)),__decorateParam$2(0x3,Inject(DocRenderController))],DocHyperLinkRenderController);const DOC_LINK_ICON=_0x2e2ab0(0x20b);function AddHyperLinkMenuItemFactory(_0xd2f60d){var _0x14731f=_0x2e2ab0;return{'id':ShowDocHyperLinkEditPopupOperation['id'],'type':MenuItemType[_0x14731f(0x1a1)],'icon':DOC_LINK_ICON,'title':_0x14731f(0x17a),'tooltip':_0x14731f(0x17a),'hidden$':getMenuHiddenObservable(_0xd2f60d,UniverInstanceType[_0x14731f(0x1c9)]),'disabled$':new Observable(function(_0x334b34){var _0x457d56=_0x14731f;const _0x48fb10=_0xd2f60d[_0x457d56(0x190)](DocSelectionManagerService)['textSelection$'][_0x457d56(0x1b9)](debounceTime(0x10))[_0x457d56(0x243)](()=>{var _0x15c371=_0x457d56;_0x334b34[_0x15c371(0x248)](shouldDisableAddLink(_0xd2f60d));});return()=>{_0x48fb10['unsubscribe']();};})};}__name(AddHyperLinkMenuItemFactory,_0x2e2ab0(0x24c));const addLinkShortcut={'id':ShowDocHyperLinkEditPopupOperation['id'],'binding':MetaKeys[_0x2e2ab0(0x202)]|KeyCode['K'],'description':'docLink.menu.tooltip','preconditions':whenDocAndEditorFocused},menuSchema={[RibbonStartGroup[_0x2e2ab0(0x178)]]:{[ShowDocHyperLinkEditPopupOperation['id']]:{'order':0x0,'menuItemFactory':AddHyperLinkMenuItemFactory}},[ContextMenuPosition[_0x2e2ab0(0x1b3)]]:{[ContextMenuGroup[_0x2e2ab0(0x169)]]:{[ShowDocHyperLinkEditPopupOperation['id']]:{'order':0x0,'menuItemFactory':AddHyperLinkMenuItemFactory}}}};var __defProp$1=Object['defineProperty'],__getOwnPropDesc$1=Object[_0x2e2ab0(0x1ad)],__decorateClass$1=__name((_0x5ae0b2,_0x5b54d0,_0x42e8b8,_0x6b7da6)=>{var _0x224b59=_0x2e2ab0;for(var _0x30d22f=_0x6b7da6>0x1?void 0x0:_0x6b7da6?__getOwnPropDesc$1(_0x5b54d0,_0x42e8b8):_0x5b54d0,_0x2dfb5c=_0x5ae0b2[_0x224b59(0x183)]-0x1,_0x508fbf;_0x2dfb5c>=0x0;_0x2dfb5c--)(_0x508fbf=_0x5ae0b2[_0x2dfb5c])&&(_0x30d22f=(_0x6b7da6?_0x508fbf(_0x5b54d0,_0x42e8b8,_0x30d22f):_0x508fbf(_0x30d22f))||_0x30d22f);return _0x6b7da6&&_0x30d22f&&__defProp$1(_0x5b54d0,_0x42e8b8,_0x30d22f),_0x30d22f;},'__decorateClass$1'),__decorateParam$1=__name((_0x22bf6c,_0x43cf3b)=>(_0xa79df9,_0x598da8)=>_0x43cf3b(_0xa79df9,_0x598da8,_0x22bf6c),'__decorateParam$1'),_a5;let DocHyperLinkUIController=(_a5=class extends Disposable{constructor(_0x5a1fd7,_0x4bfeb7,_0x4f5689,_0x1a8d1a){var _0x369978=_0x2e2ab0;super(),this[_0x369978(0x15d)]=_0x5a1fd7,this[_0x369978(0x1ee)]=_0x4bfeb7,this[_0x369978(0x206)]=_0x4f5689,this[_0x369978(0x1cb)]=_0x1a8d1a,this[_0x369978(0x1a4)](),this[_0x369978(0x1a9)](),this['_initMenus'](),this[_0x369978(0x1ae)]();}[_0x2e2ab0(0x1a4)](){var _0x31a479=_0x2e2ab0;[[DocHyperLinkEdit,DocHyperLinkEdit[_0x31a479(0x209)]],[DocLinkPopup,DocLinkPopup['componentKey']],[LinkSingle,DOC_LINK_ICON]][_0x31a479(0x199)](([_0x8989a7,_0x2ef40f])=>{var _0x375fc2=_0x31a479;this['_componentManager'][_0x375fc2(0x170)](_0x2ef40f,_0x8989a7);});}[_0x2e2ab0(0x1a9)](){var _0x4ee215=_0x2e2ab0;[AddDocHyperLinkCommand,UpdateDocHyperLinkCommand,DeleteDocHyperLinkCommand,ShowDocHyperLinkEditPopupOperation,ToggleDocHyperLinkInfoPopupOperation,ClickDocHyperLinkOperation][_0x4ee215(0x199)](_0x26846a=>{var _0x267c79=_0x4ee215;this[_0x267c79(0x1ee)][_0x267c79(0x1a2)](_0x26846a);});}[_0x2e2ab0(0x1ae)](){[addLinkShortcut]['forEach'](_0x2c67ae=>{var _0x4cdb17=_0x203c;this[_0x4cdb17(0x1cb)][_0x4cdb17(0x1ff)](_0x2c67ae);});}[_0x2e2ab0(0x1f7)](){var _0x3acaab=_0x2e2ab0;this[_0x3acaab(0x206)][_0x3acaab(0x18c)](menuSchema);}},__name(_a5,_0x2e2ab0(0x1ca)),_a5);function _0x5a42(){var _0x5097ad=['entries','DocHyperLinkSelectionController','symbol','_blank','docs-hyper-link-ui.config','top-center','noopener\x20noreferrer','map','mergeMenu','_skeleton','div','children','get','2278QeKURm','univer-docs-link-edit-title','DOC_HYPER_LINK_UI_PLUGIN','_showingLink$','ENTER','name','DocHyperLinkPopupService','docs-hyper-link-edit','forEach','docLinkType','customRange','_docSelectionManagerService','docLinkContent','596CSlXSu','top','_initReRender','BUTTON','registerCommand','createElement','_initComponents','reRender','find','unlink-single','defs','_initCommands','add','HYPERLINK','showing','getOwnPropertyDescriptor','_initShortcut','propertyIsEnumerable','attrs','getSelfOrHeaderFooterModel','executeCommand','MAIN_AREA','showInfoPopup','open','_config','docLinkOperations','UniverDocsHyperLinkUIPlugin','pipe','univer.doc.link-info-popup','getOwnPropertySymbols','function','docLinkUrl','writeText','__decorateClass','DocHyperLinkRenderController','url(#$1','onClick','getUnitId','_context','getDocRanges','__publicField','className','_injector','UNIVER_DOC','DocHyperLinkUIController','_shortcutService','paragraphs','extend','use','univerjs-icon\x20univerjs-icon-','getCurrentUnitForType','test','focusEditor','keyCode','35UrbEQL','customRanges','0\x200\x2016\x2017','defIds','univer-doc-link','url','0\x200\x2016\x2016','onClickOutside','collapsed','prototype','getCustomRangesInterestsWithRange','5735196JTPrex','_editPopup','351564gsfCXS','_initRenderModule','onCommandExecuted','getBody','call','__decorateClass$5','editingLink$','complete','none','getPlainText','COMMAND','assign','18ZMciKl','_commandService','tag','attachPopupToRange','registerRenderModule','colorChannel1','showEditPopup','transformUrl','_editingLink$','_configService','_initMenus','setConfig','evenodd','docLink.edit.labelError','show','currentColor','endIndex','replace','registerShortcut','onStarting','link-single','CTRL_COMMAND','__decorateParam$5','M12.6551\x201.98906C11.7476\x201.08113\x2010.2757\x201.08149\x209.3686\x201.98987L4.82542\x206.53955C4.75087\x206.61421\x204.69336\x206.70411\x204.65682\x206.80309L3.2461\x2010.625C3.16506\x2010.8446\x203.21909\x2011.0912\x203.3845\x2011.2568C3.54991\x2011.4224\x203.79651\x2011.4767\x204.01616\x2011.3959L7.85031\x209.98517C7.94979\x209.94856\x208.04014\x209.89077\x208.11508\x209.81579L12.6552\x205.27327C13.5618\x204.36621\x2013.5618\x202.89607\x2012.6551\x201.98906ZM10.2177\x202.83779C10.6562\x202.39869\x2011.3677\x202.39851\x2011.8064\x202.8374C12.2447\x203.27584\x2012.2447\x203.9865\x2011.8065\x204.42497L7.3392\x208.89457L4.82213\x209.82068L5.74706\x207.31487L10.2177\x202.83779Z','docs.command.add-hyper-link','_menuManagerService','_docEventManagerService','CopySingle','componentKey','segmentPage','doc-hyper-link-icon','univer-doc-link-content-error','univer-docs-link-edit-close','label','getSkeleton','_initHover','replaceTextRanges','0\x200\x2017\x2016','defineProperty','1958614MLZJCD','docsLinkEdit','getUnit','displayName','menu','rangeType','primary','LinkSingle','UniverIcon','univer-docs-link-edit-button','docLink.info.copy','OPERATION','properties','_init','_textSelectionManagerService','CUSTOM_RANGE_END','value','span','getActiveTextRange','dataStream','__decorateParam','path','onRendered','clickCustomRanges$','disposeWithMe','startIndex','substring','docLink','hideInfoPopup','_hyperLinkService','_hyperLinkPopupService','random','hoverCustomRanges$','docLink.info.edit','handleConfirm','pluginName','segmentId','replaceRuntimeIdsInDefs','svg','__decorateParam$2','3741288DriTVX','concat','params','toString','M1.79238\x2013.2999C1.46101\x2013.2999\x201.19238\x2013.5685\x201.19238\x2013.8999C1.19238\x2014.2313\x201.46101\x2014.4999\x201.79238\x2014.4999H14.4924C14.8238\x2014.4999\x2015.0924\x2014.2313\x2015.0924\x2013.8999C15.0924\x2013.5685\x2014.8238\x2013.2999\x2014.4924\x2013.2999H1.79238Z','univer-doc-link-url','_hideInfoPopup','subscribe','doc.operation.click-hyper-link','transform','current','UnlinkSingle','next','link','_docInterceptorService','univer-docs-link-edit','AddHyperLinkMenuItemFactory','WriteSingle','univer-doc-link-operation-error','hasOwnProperty','_renderManagerSrv','univer-doc-link-content','trim','linkId','min','_univerInstanceService','M5.9564\x202.91332C4.91407\x201.87102\x203.22413\x201.87101\x202.18182\x202.91333L2.18182\x202.91333C1.13953\x203.95567\x201.13952\x205.6456\x202.18182\x206.68791L8.27777\x2012.7838C9.72408\x2014.2302\x2012.069\x2014.2302\x2013.5154\x2012.7839L13.0911\x2012.3596L13.5154\x2012.7839C14.9617\x2011.3375\x2014.9617\x208.99257\x2013.5154\x207.54626L8.39476\x202.42566C8.16044\x202.19134\x207.78054\x202.19134\x207.54623\x202.42566C7.31191\x202.65997\x207.31191\x203.03987\x207.54623\x203.27419L12.6668\x208.39479L13.0911\x207.97052L12.6668\x208.39479C13.6445\x209.37247\x2013.6445\x2010.9576\x2012.6668\x2011.9353L13.0399\x2012.3084L12.6668\x2011.9353C11.6891\x2012.913\x2010.104\x2012.913\x209.1263\x2011.9353L3.03035\x205.83938C2.45668\x205.26571\x202.45667\x204.33556\x203.03036\x203.76184C3.60403\x203.18818\x204.53416\x203.18817\x205.10788\x203.76185C5.10788\x203.76186\x205.10788\x203.76186\x205.10789\x203.76186L11.2038\x209.8578L11.601\x209.46061L11.2038\x209.8578C11.3735\x2010.0275\x2011.3735\x2010.3026\x2011.2038\x2010.4723L11.2038\x2010.4723C11.0341\x2010.642\x2010.759\x2010.642\x2010.5893\x2010.4723L5.46874\x205.35171C5.23442\x205.1174\x204.85452\x205.1174\x204.62021\x205.35171C4.38589\x205.58602\x204.38589\x205.96592\x204.62021\x206.20024L9.74078\x2011.3208C10.3791\x2011.9591\x2011.414\x2011.9591\x2012.0523\x2011.3208C12.0523\x2011.3208\x2012.0523\x2011.3208\x2012.0523\x2011.3208M12.0523\x2011.3208C12.6907\x2010.6825\x2012.6906\x209.64757\x2012.0523\x209.00927L5.95641\x202.91333L5.9564\x202.91332','_initSelectionChange','unitId','_infoPopup','segmentPageIndex','__decorateClass$4','blurEditor','docLinkOperation','_docSkeletonManagerService','fill','docsLinkEditButton','range','showingLink$','_docRenderController','_componentManager','dispose','handler','DocLinkPopup','docs.command.delete-hyper-link','_docHyperLinkService','docLink.edit.cancel','indexOf','hideEditPopup','_docCanvasPopupManagerService','univer-docs-link-edit-buttons','docLink.edit.confirm','DATA','endOffset','docsLinkEditButtons','docLink.edit.addressError','replaceRuntimeIdsAndExtInAttrs','syncExecuteCommand','xlink:href','register','generateShortUuid','startOffset','1em','every','docLink.info.coped','2536089jjWrCN','rangeId','OTHERS','intercept','docLink.menu.tooltip','9587470gdhTDh','univer-doc-link-operations','doc.operation.toggle-hyper-link-info-popup','docLink.edit.label','__decorateClass$2','bottom','idSuffix','docs.command.update-hyper-link','length'];_0x5a42=function(){return _0x5097ad;};return _0x5a42();}DocHyperLinkUIController=__decorateClass$1([__decorateParam$1(0x0,Inject(ComponentManager)),__decorateParam$1(0x1,ICommandService),__decorateParam$1(0x2,IMenuManagerService),__decorateParam$1(0x3,IShortcutService)],DocHyperLinkUIController);const DOC_HYPER_LINK_UI_PLUGIN=_0x2e2ab0(0x193);var __defProp2=Object[_0x2e2ab0(0x213)],__getOwnPropDesc=Object[_0x2e2ab0(0x1ad)],__defNormalProp2=__name((_0x568406,_0x225526,_0x6dd09)=>_0x225526 in _0x568406?__defProp2(_0x568406,_0x225526,{'enumerable':!0x0,'configurable':!0x0,'writable':!0x0,'value':_0x6dd09}):_0x568406[_0x225526]=_0x6dd09,'__defNormalProp'),__decorateClass=__name((_0x7003e8,_0x3e6164,_0xd3e369,_0x30bb7f)=>{var _0x374337=_0x2e2ab0;for(var _0x39fa19=_0x30bb7f>0x1?void 0x0:_0x30bb7f?__getOwnPropDesc(_0x3e6164,_0xd3e369):_0x3e6164,_0xa32345=_0x7003e8[_0x374337(0x183)]-0x1,_0x25be19;_0xa32345>=0x0;_0xa32345--)(_0x25be19=_0x7003e8[_0xa32345])&&(_0x39fa19=(_0x30bb7f?_0x25be19(_0x3e6164,_0xd3e369,_0x39fa19):_0x25be19(_0x39fa19))||_0x39fa19);return _0x30bb7f&&_0x39fa19&&__defProp2(_0x3e6164,_0xd3e369,_0x39fa19),_0x39fa19;},_0x2e2ab0(0x1bf)),__decorateParam=__name((_0xc17ca9,_0x502adb)=>(_0x18cee9,_0x10c078)=>_0x502adb(_0x18cee9,_0x10c078,_0xc17ca9),_0x2e2ab0(0x228)),__publicField2=__name((_0x31109f,_0x35f99f,_0x36690b)=>__defNormalProp2(_0x31109f,typeof _0x35f99f!=_0x2e2ab0(0x186)?_0x35f99f+'':_0x35f99f,_0x36690b),_0x2e2ab0(0x1c6)),_a6;let UniverDocsHyperLinkUIPlugin=(_a6=class extends Plugin{constructor(_0x33aded=defaultPluginConfig,_0x4dad6a,_0x8c2366,_0x46720b){var _0x25be30=_0x2e2ab0;super(),this[_0x25be30(0x1b6)]=_0x33aded,this[_0x25be30(0x1c8)]=_0x4dad6a,this[_0x25be30(0x149)]=_0x8c2366,this[_0x25be30(0x1f6)]=_0x46720b;const {menu:_0x1b2e71,..._0x5004ba}=this[_0x25be30(0x1b6)];_0x1b2e71&&this[_0x25be30(0x1f6)][_0x25be30(0x1f8)](_0x25be30(0x218),_0x1b2e71,{'merge':!0x0}),this[_0x25be30(0x1f6)][_0x25be30(0x1f8)](PLUGIN_CONFIG_KEY,_0x5004ba);}[_0x2e2ab0(0x200)](){var _0x4060b3=_0x2e2ab0;[[DocHyperLinkPopupService],[DocHyperLinkUIController],[DocHyperLinkSelectionController]][_0x4060b3(0x199)](_0x1d761a=>{var _0x46e2b1=_0x4060b3;this[_0x46e2b1(0x1c8)][_0x46e2b1(0x1aa)](_0x1d761a);}),this[_0x4060b3(0x1c8)][_0x4060b3(0x190)](DocHyperLinkUIController);}['onReady'](){var _0x5a3f4b=_0x2e2ab0;this[_0x5a3f4b(0x1c8)][_0x5a3f4b(0x190)](DocHyperLinkSelectionController);}[_0x2e2ab0(0x22a)](){this['_initRenderModule']();}[_0x2e2ab0(0x1e2)](){var _0x633a40=_0x2e2ab0;[[DocHyperLinkRenderController],[DocHyperLinkEventRenderController]][_0x633a40(0x199)](_0x4f9c64=>{var _0x7f31b5=_0x633a40;this['_renderManagerSrv'][_0x7f31b5(0x1f1)](UniverInstanceType[_0x7f31b5(0x1c9)],_0x4f9c64);});}},__name(_a6,_0x2e2ab0(0x1b8)),_a6);__publicField2(UniverDocsHyperLinkUIPlugin,_0x2e2ab0(0x237),DOC_HYPER_LINK_UI_PLUGIN),__publicField2(UniverDocsHyperLinkUIPlugin,'type',UniverInstanceType[_0x2e2ab0(0x1c9)]),UniverDocsHyperLinkUIPlugin=__decorateClass([DependentOn(UniverDocsHyperLinkPlugin),__decorateParam(0x1,Inject(Injector)),__decorateParam(0x2,IRenderManagerService),__decorateParam(0x3,IConfigService)],UniverDocsHyperLinkUIPlugin);export{UniverDocsHyperLinkUIPlugin};