@univerjs/sheets-hyper-link 0.23.0 → 0.24.0-insiders.20260527-b1d726f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/facade.js +69 -69
- package/lib/cjs/index.js +9 -6
- package/lib/cjs/locale/ar-SA.js +6 -0
- package/lib/cjs/locale/ca-ES.js +6 -0
- package/lib/cjs/locale/de-DE.js +6 -0
- package/lib/cjs/locale/en-US.js +21 -0
- package/lib/cjs/locale/es-ES.js +6 -0
- package/lib/cjs/locale/fa-IR.js +6 -0
- package/lib/cjs/locale/fr-FR.js +6 -0
- package/lib/cjs/locale/id-ID.js +6 -0
- package/lib/cjs/locale/it-IT.js +6 -0
- package/lib/cjs/locale/ja-JP.js +6 -0
- package/lib/cjs/locale/ko-KR.js +6 -0
- package/lib/cjs/locale/pl-PL.js +6 -0
- package/lib/cjs/locale/pt-BR.js +6 -0
- package/lib/cjs/locale/ru-RU.js +6 -0
- package/lib/cjs/locale/sk-SK.js +6 -0
- package/lib/cjs/locale/vi-VN.js +6 -0
- package/lib/cjs/locale/zh-CN.js +6 -0
- package/lib/cjs/locale/zh-HK.js +6 -0
- package/lib/cjs/locale/zh-TW.js +6 -0
- package/lib/es/facade.js +69 -69
- package/lib/es/index.js +9 -6
- package/lib/es/locale/ar-SA.js +5 -0
- package/lib/es/locale/ca-ES.js +5 -0
- package/lib/es/locale/de-DE.js +5 -0
- package/lib/es/locale/en-US.js +20 -0
- package/lib/es/locale/es-ES.js +5 -0
- package/lib/es/locale/fa-IR.js +5 -0
- package/lib/es/locale/fr-FR.js +5 -0
- package/lib/es/locale/id-ID.js +5 -0
- package/lib/es/locale/it-IT.js +5 -0
- package/lib/es/locale/ja-JP.js +5 -0
- package/lib/es/locale/ko-KR.js +5 -0
- package/lib/es/locale/pl-PL.js +5 -0
- package/lib/es/locale/pt-BR.js +5 -0
- package/lib/es/locale/ru-RU.js +5 -0
- package/lib/es/locale/sk-SK.js +5 -0
- package/lib/es/locale/vi-VN.js +5 -0
- package/lib/es/locale/zh-CN.js +5 -0
- package/lib/es/locale/zh-HK.js +5 -0
- package/lib/es/locale/zh-TW.js +5 -0
- package/lib/facade.js +69 -69
- package/lib/index.js +9 -6
- package/lib/locale/ar-SA.js +5 -0
- package/lib/locale/ca-ES.js +5 -0
- package/lib/locale/de-DE.js +5 -0
- package/lib/locale/en-US.js +20 -0
- package/lib/locale/es-ES.js +5 -0
- package/lib/locale/fa-IR.js +5 -0
- package/lib/locale/fr-FR.js +5 -0
- package/lib/locale/id-ID.js +5 -0
- package/lib/locale/it-IT.js +5 -0
- package/lib/locale/ja-JP.js +5 -0
- package/lib/locale/ko-KR.js +5 -0
- package/lib/locale/pl-PL.js +5 -0
- package/lib/locale/pt-BR.js +5 -0
- package/lib/locale/ru-RU.js +5 -0
- package/lib/locale/sk-SK.js +5 -0
- package/lib/locale/vi-VN.js +5 -0
- package/lib/locale/zh-CN.js +5 -0
- package/lib/locale/zh-HK.js +5 -0
- package/lib/locale/zh-TW.js +5 -0
- package/lib/types/facade/f-range.d.ts +66 -41
- package/lib/types/facade/f-workbook.d.ts +37 -17
- package/lib/types/facade/f-worksheet.d.ts +1 -1
- package/lib/types/locale/ar-SA.d.ts +18 -0
- package/lib/types/locale/ca-ES.d.ts +18 -0
- package/lib/types/locale/de-DE.d.ts +18 -0
- package/lib/types/locale/en-US.d.ts +23 -0
- package/lib/types/locale/es-ES.d.ts +18 -0
- package/lib/types/locale/fa-IR.d.ts +18 -0
- package/lib/types/locale/fr-FR.d.ts +18 -0
- package/lib/types/locale/id-ID.d.ts +18 -0
- package/lib/types/locale/it-IT.d.ts +18 -0
- package/lib/types/locale/ja-JP.d.ts +18 -0
- package/lib/types/locale/ko-KR.d.ts +18 -0
- package/lib/types/locale/pl-PL.d.ts +18 -0
- package/lib/types/locale/pt-BR.d.ts +18 -0
- package/lib/types/locale/ru-RU.d.ts +18 -0
- package/lib/types/locale/sk-SK.d.ts +18 -0
- package/lib/types/locale/vi-VN.d.ts +18 -0
- package/lib/types/locale/zh-CN.d.ts +18 -0
- package/lib/types/locale/zh-HK.d.ts +18 -0
- package/lib/types/locale/zh-TW.d.ts +18 -0
- package/lib/types/services/parser.service.d.ts +2 -1
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +1 -1
- package/lib/umd/locale/ar-SA.js +1 -0
- package/lib/umd/locale/ca-ES.js +1 -0
- package/lib/umd/locale/de-DE.js +1 -0
- package/lib/umd/locale/en-US.js +1 -0
- package/lib/umd/locale/es-ES.js +1 -0
- package/lib/umd/locale/fa-IR.js +1 -0
- package/lib/umd/locale/fr-FR.js +1 -0
- package/lib/umd/locale/id-ID.js +1 -0
- package/lib/umd/locale/it-IT.js +1 -0
- package/lib/umd/locale/ja-JP.js +1 -0
- package/lib/umd/locale/ko-KR.js +1 -0
- package/lib/umd/locale/pl-PL.js +1 -0
- package/lib/umd/locale/pt-BR.js +1 -0
- package/lib/umd/locale/ru-RU.js +1 -0
- package/lib/umd/locale/sk-SK.js +1 -0
- package/lib/umd/locale/vi-VN.js +1 -0
- package/lib/umd/locale/zh-CN.js +1 -0
- package/lib/umd/locale/zh-HK.js +1 -0
- package/lib/umd/locale/zh-TW.js +1 -0
- package/package.json +11 -6
- package/LICENSE +0 -176
package/lib/cjs/facade.js
CHANGED
|
@@ -1,44 +1,20 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
let
|
|
2
|
+
let _univerjs_engine_formula = require("@univerjs/engine-formula");
|
|
3
3
|
let _univerjs_sheets_hyper_link = require("@univerjs/sheets-hyper-link");
|
|
4
4
|
let _univerjs_sheets_facade = require("@univerjs/sheets/facade");
|
|
5
|
+
let _univerjs_core = require("@univerjs/core");
|
|
5
6
|
let _univerjs_core_facade = require("@univerjs/core/facade");
|
|
6
7
|
|
|
7
|
-
//#region \0@oxc-project+runtime@0.129.0/helpers/decorateParam.js
|
|
8
|
-
function __decorateParam(paramIndex, decorator) {
|
|
9
|
-
return function(target, key) {
|
|
10
|
-
decorator(target, key, paramIndex);
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
//#endregion
|
|
15
|
-
//#region \0@oxc-project+runtime@0.129.0/helpers/decorate.js
|
|
16
|
-
function __decorate(decorators, target, key, desc) {
|
|
17
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
18
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
19
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
20
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
//#endregion
|
|
24
8
|
//#region src/facade/f-workbook.ts
|
|
25
|
-
let SheetHyperLinkBuilder = class SheetHyperLinkBuilder {
|
|
26
|
-
constructor(_workbook, _parserService) {
|
|
27
|
-
this._workbook = _workbook;
|
|
28
|
-
this._parserService = _parserService;
|
|
29
|
-
}
|
|
30
|
-
getRangeUrl(range) {
|
|
31
|
-
this._parserService.buildHyperLink(this._workbook.getId(), range.getSheetId(), range.getRange());
|
|
32
|
-
return this;
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
SheetHyperLinkBuilder = __decorate([__decorateParam(1, (0, _univerjs_core.Inject)(_univerjs_sheets_hyper_link.SheetsHyperLinkParserService))], SheetHyperLinkBuilder);
|
|
36
9
|
var FWorkbookHyperlinkMixin = class extends _univerjs_sheets_facade.FWorkbook {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
10
|
+
getUrlOfDefineName(name) {
|
|
11
|
+
const definedNameService = this._injector.get(_univerjs_engine_formula.IDefinedNamesService);
|
|
12
|
+
const parserService = this._injector.get(_univerjs_sheets_hyper_link.SheetsHyperLinkParserService);
|
|
13
|
+
const definedName = definedNameService.getValueByName(this._workbook.getUnitId(), name);
|
|
14
|
+
if (!definedName) throw new Error(`Defined name "${name}" does not exist.`);
|
|
15
|
+
if (definedName.formulaOrRefString.startsWith(_univerjs_engine_formula.operatorToken.EQUALS)) throw new Error(`Defined name "${name}" is not a reference range, cannot be converted to hyperlink.`);
|
|
16
|
+
return parserService.buildHyperLink(definedName.id);
|
|
17
|
+
}
|
|
42
18
|
parseSheetHyperlink(hyperlink) {
|
|
43
19
|
return this._injector.get(_univerjs_sheets_hyper_link.SheetsHyperLinkParserService).parseHyperLink(hyperlink);
|
|
44
20
|
}
|
|
@@ -64,7 +40,7 @@ _univerjs_sheets_facade.FWorkbook.extend(FWorkbookHyperlinkMixin);
|
|
|
64
40
|
*/
|
|
65
41
|
var FWorksheetHyperlinkMixin = class extends _univerjs_sheets_facade.FWorksheet {
|
|
66
42
|
getUrl() {
|
|
67
|
-
return this._injector.get(_univerjs_sheets_hyper_link.SheetsHyperLinkParserService).buildHyperLink(
|
|
43
|
+
return this._injector.get(_univerjs_sheets_hyper_link.SheetsHyperLinkParserService).buildHyperLink(null, this._worksheet.getSheetId());
|
|
68
44
|
}
|
|
69
45
|
};
|
|
70
46
|
_univerjs_sheets_facade.FWorksheet.extend(FWorksheetHyperlinkMixin);
|
|
@@ -73,60 +49,84 @@ _univerjs_sheets_facade.FWorksheet.extend(FWorksheetHyperlinkMixin);
|
|
|
73
49
|
//#region src/facade/f-range.ts
|
|
74
50
|
var FRangeSheetsHyperlinkMixin = class extends _univerjs_sheets_facade.FRange {
|
|
75
51
|
setHyperLink(url, label) {
|
|
76
|
-
|
|
52
|
+
return this._commandService.executeCommand(_univerjs_sheets_hyper_link.AddHyperLinkCommand.id, {
|
|
77
53
|
unitId: this.getUnitId(),
|
|
78
54
|
subUnitId: this._worksheet.getSheetId(),
|
|
79
55
|
link: {
|
|
56
|
+
id: (0, _univerjs_core.generateRandomId)(),
|
|
80
57
|
row: this._range.startRow,
|
|
81
58
|
column: this._range.startColumn,
|
|
82
59
|
payload: url,
|
|
83
|
-
display: label
|
|
84
|
-
id: (0, _univerjs_core.generateRandomId)()
|
|
60
|
+
display: label
|
|
85
61
|
}
|
|
86
|
-
};
|
|
87
|
-
return this._commandService.executeCommand(_univerjs_sheets_hyper_link.AddHyperLinkCommand.id, params);
|
|
62
|
+
});
|
|
88
63
|
}
|
|
89
64
|
getHyperLinks() {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
endIndex
|
|
99
|
-
|
|
100
|
-
label
|
|
101
|
-
|
|
102
|
-
|
|
65
|
+
const hyperlinks = [];
|
|
66
|
+
this.forEach((row, column, cell) => {
|
|
67
|
+
var _cell$p$body$customRa, _cell$p$body;
|
|
68
|
+
if (!cell.p) return;
|
|
69
|
+
const ranges = (_cell$p$body$customRa = (_cell$p$body = cell.p.body) === null || _cell$p$body === void 0 || (_cell$p$body = _cell$p$body.customRanges) === null || _cell$p$body === void 0 ? void 0 : _cell$p$body.filter((range) => range.rangeType === _univerjs_core.CustomRangeType.HYPERLINK)) !== null && _cell$p$body$customRa !== void 0 ? _cell$p$body$customRa : [];
|
|
70
|
+
if (ranges.length > 0) {
|
|
71
|
+
var _cell$p, _properties$url, _dataStream$slice$rep;
|
|
72
|
+
const dataStream = (_cell$p = cell.p) === null || _cell$p === void 0 || (_cell$p = _cell$p.body) === null || _cell$p === void 0 ? void 0 : _cell$p.dataStream;
|
|
73
|
+
const { rangeId, properties, startIndex, endIndex } = ranges[0];
|
|
74
|
+
const url = (_properties$url = properties === null || properties === void 0 ? void 0 : properties.url) !== null && _properties$url !== void 0 ? _properties$url : "";
|
|
75
|
+
const label = (_dataStream$slice$rep = dataStream === null || dataStream === void 0 ? void 0 : dataStream.slice(startIndex, endIndex + 1).replaceAll(_univerjs_core.DataStreamTreeTokenType.CUSTOM_RANGE_START, "").replaceAll(_univerjs_core.DataStreamTreeTokenType.CUSTOM_RANGE_END, "")) !== null && _dataStream$slice$rep !== void 0 ? _dataStream$slice$rep : "";
|
|
76
|
+
hyperlinks.push({
|
|
77
|
+
id: `${rangeId}`,
|
|
78
|
+
row,
|
|
79
|
+
column,
|
|
80
|
+
url,
|
|
81
|
+
label
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
return hyperlinks;
|
|
103
86
|
}
|
|
104
|
-
updateHyperLink(
|
|
105
|
-
const
|
|
87
|
+
updateHyperLink(url, label) {
|
|
88
|
+
const hyperlink = this.getHyperLinks().find((link) => link.row === this._range.startRow && link.column === this._range.startColumn);
|
|
89
|
+
if (!hyperlink) return Promise.reject(/* @__PURE__ */ new Error("No hyperlink found in the top left cell of the range"));
|
|
90
|
+
const { id, row, column } = hyperlink;
|
|
91
|
+
return this._commandService.executeCommand(_univerjs_sheets_hyper_link.UpdateHyperLinkCommand.id, {
|
|
106
92
|
unitId: this.getUnitId(),
|
|
107
93
|
subUnitId: this._worksheet.getSheetId(),
|
|
108
|
-
row: this._range.startRow,
|
|
109
|
-
column: this._range.startColumn,
|
|
110
94
|
id,
|
|
95
|
+
row,
|
|
96
|
+
column,
|
|
111
97
|
payload: {
|
|
112
98
|
payload: url,
|
|
113
99
|
display: label
|
|
114
100
|
}
|
|
115
|
-
};
|
|
116
|
-
return this._commandService.executeCommand(_univerjs_sheets_hyper_link.UpdateHyperLinkCommand.id, params);
|
|
101
|
+
});
|
|
117
102
|
}
|
|
118
|
-
cancelHyperLink(
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
103
|
+
cancelHyperLink(hyperlink) {
|
|
104
|
+
if (hyperlink) {
|
|
105
|
+
const { id, row, column } = hyperlink;
|
|
106
|
+
return this._commandService.syncExecuteCommand(_univerjs_sheets_hyper_link.CancelHyperLinkCommand.id, {
|
|
107
|
+
unitId: this.getUnitId(),
|
|
108
|
+
subUnitId: this._worksheet.getSheetId(),
|
|
109
|
+
id,
|
|
110
|
+
row,
|
|
111
|
+
column
|
|
112
|
+
});
|
|
113
|
+
} else {
|
|
114
|
+
const hyperlinks = this.getHyperLinks();
|
|
115
|
+
if (hyperlinks.length === 0) return true;
|
|
116
|
+
return hyperlinks.every((link) => {
|
|
117
|
+
const { id, row, column } = link;
|
|
118
|
+
return this._commandService.syncExecuteCommand(_univerjs_sheets_hyper_link.CancelHyperLinkCommand.id, {
|
|
119
|
+
unitId: this.getUnitId(),
|
|
120
|
+
subUnitId: this._worksheet.getSheetId(),
|
|
121
|
+
id,
|
|
122
|
+
row,
|
|
123
|
+
column
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
127
|
}
|
|
128
128
|
getUrl() {
|
|
129
|
-
return this._injector.get(_univerjs_sheets_hyper_link.SheetsHyperLinkParserService).buildHyperLink(this.
|
|
129
|
+
return this._injector.get(_univerjs_sheets_hyper_link.SheetsHyperLinkParserService).buildHyperLink(this.getRange(), this.getSheetId());
|
|
130
130
|
}
|
|
131
131
|
};
|
|
132
132
|
_univerjs_sheets_facade.FRange.extend(FRangeSheetsHyperlinkMixin);
|
package/lib/cjs/index.js
CHANGED
|
@@ -706,7 +706,7 @@ const UpdateRichHyperLinkMutation = {
|
|
|
706
706
|
//#endregion
|
|
707
707
|
//#region package.json
|
|
708
708
|
var name = "@univerjs/sheets-hyper-link";
|
|
709
|
-
var version = "0.
|
|
709
|
+
var version = "0.24.0-insiders.20260527-b1d726f";
|
|
710
710
|
|
|
711
711
|
//#endregion
|
|
712
712
|
//#region src/config/config.ts
|
|
@@ -1003,7 +1003,7 @@ let SheetsHyperLinkRemoveSheetController = class SheetsHyperLinkRemoveSheetContr
|
|
|
1003
1003
|
if (commandInfo.id === _univerjs_sheets.RemoveSheetCommand.id) {
|
|
1004
1004
|
var _workbook$getActiveSh;
|
|
1005
1005
|
const params = commandInfo.params;
|
|
1006
|
-
const workbook = params.unitId ? this._univerInstanceService.getUnit(params.unitId) : this._univerInstanceService.
|
|
1006
|
+
const workbook = params.unitId ? this._univerInstanceService.getUnit(params.unitId) : this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
|
|
1007
1007
|
if (!workbook) return {
|
|
1008
1008
|
redos: [],
|
|
1009
1009
|
undos: []
|
|
@@ -1456,8 +1456,11 @@ let SheetsHyperLinkParserService = class SheetsHyperLinkParserService {
|
|
|
1456
1456
|
this._localeService = _localeService;
|
|
1457
1457
|
this._definedNamesService = _definedNamesService;
|
|
1458
1458
|
}
|
|
1459
|
-
buildHyperLink(
|
|
1460
|
-
|
|
1459
|
+
buildHyperLink(defineNameIdOrRange, sheetId) {
|
|
1460
|
+
if (typeof defineNameIdOrRange === "string") return `#${"rangeid"}=${defineNameIdOrRange}`;
|
|
1461
|
+
let result = `#${"gid"}=${sheetId}`;
|
|
1462
|
+
if (defineNameIdOrRange) result += `&${"range"}=${(0, _univerjs_engine_formula.serializeRange)(defineNameIdOrRange)}`;
|
|
1463
|
+
return result;
|
|
1461
1464
|
}
|
|
1462
1465
|
parseHyperLink(urlStr) {
|
|
1463
1466
|
if (urlStr.startsWith("#")) {
|
|
@@ -1486,10 +1489,10 @@ let SheetsHyperLinkParserService = class SheetsHyperLinkParserService {
|
|
|
1486
1489
|
_getURLName(params) {
|
|
1487
1490
|
var _sheet$getName;
|
|
1488
1491
|
const { gid, range, rangeid, unitid } = params;
|
|
1489
|
-
const workbook = unitid ? this._univerInstanceService.getUnit(unitid, _univerjs_core.UniverInstanceType.UNIVER_SHEET) : this._univerInstanceService.
|
|
1492
|
+
const workbook = unitid ? this._univerInstanceService.getUnit(unitid, _univerjs_core.UniverInstanceType.UNIVER_SHEET) : this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
|
|
1490
1493
|
const invalidLink = {
|
|
1491
1494
|
type: "invalid",
|
|
1492
|
-
name: this._localeService.t("
|
|
1495
|
+
name: this._localeService.t("sheets-hyper-link.message.refError")
|
|
1493
1496
|
};
|
|
1494
1497
|
if (!workbook) return invalidLink;
|
|
1495
1498
|
const sheet = gid ? workbook.getSheetBySheetId(gid) : workbook.getActiveSheet();
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/locale/en-US.ts
|
|
3
|
+
/**
|
|
4
|
+
* Copyright 2023-present DreamNum Co., Ltd.
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
const locale = { "sheets-hyper-link": { message: { refError: "Invalid Range" } } };
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
module.exports = locale;
|
package/lib/es/facade.js
CHANGED
|
@@ -1,43 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IDefinedNamesService, operatorToken } from "@univerjs/engine-formula";
|
|
2
2
|
import { AddHyperLinkCommand, CancelHyperLinkCommand, SheetsHyperLinkParserService, UpdateHyperLinkCommand } from "@univerjs/sheets-hyper-link";
|
|
3
3
|
import { FRange, FWorkbook, FWorksheet } from "@univerjs/sheets/facade";
|
|
4
|
+
import { CanceledError, CustomRangeType, DataStreamTreeTokenType, ICommandService, generateRandomId } from "@univerjs/core";
|
|
4
5
|
import { FEventName, FUniver } from "@univerjs/core/facade";
|
|
5
6
|
|
|
6
|
-
//#region \0@oxc-project+runtime@0.129.0/helpers/decorateParam.js
|
|
7
|
-
function __decorateParam(paramIndex, decorator) {
|
|
8
|
-
return function(target, key) {
|
|
9
|
-
decorator(target, key, paramIndex);
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
//#endregion
|
|
14
|
-
//#region \0@oxc-project+runtime@0.129.0/helpers/decorate.js
|
|
15
|
-
function __decorate(decorators, target, key, desc) {
|
|
16
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
17
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
18
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
19
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
//#endregion
|
|
23
7
|
//#region src/facade/f-workbook.ts
|
|
24
|
-
let SheetHyperLinkBuilder = class SheetHyperLinkBuilder {
|
|
25
|
-
constructor(_workbook, _parserService) {
|
|
26
|
-
this._workbook = _workbook;
|
|
27
|
-
this._parserService = _parserService;
|
|
28
|
-
}
|
|
29
|
-
getRangeUrl(range) {
|
|
30
|
-
this._parserService.buildHyperLink(this._workbook.getId(), range.getSheetId(), range.getRange());
|
|
31
|
-
return this;
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
SheetHyperLinkBuilder = __decorate([__decorateParam(1, Inject(SheetsHyperLinkParserService))], SheetHyperLinkBuilder);
|
|
35
8
|
var FWorkbookHyperlinkMixin = class extends FWorkbook {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
9
|
+
getUrlOfDefineName(name) {
|
|
10
|
+
const definedNameService = this._injector.get(IDefinedNamesService);
|
|
11
|
+
const parserService = this._injector.get(SheetsHyperLinkParserService);
|
|
12
|
+
const definedName = definedNameService.getValueByName(this._workbook.getUnitId(), name);
|
|
13
|
+
if (!definedName) throw new Error(`Defined name "${name}" does not exist.`);
|
|
14
|
+
if (definedName.formulaOrRefString.startsWith(operatorToken.EQUALS)) throw new Error(`Defined name "${name}" is not a reference range, cannot be converted to hyperlink.`);
|
|
15
|
+
return parserService.buildHyperLink(definedName.id);
|
|
16
|
+
}
|
|
41
17
|
parseSheetHyperlink(hyperlink) {
|
|
42
18
|
return this._injector.get(SheetsHyperLinkParserService).parseHyperLink(hyperlink);
|
|
43
19
|
}
|
|
@@ -63,7 +39,7 @@ FWorkbook.extend(FWorkbookHyperlinkMixin);
|
|
|
63
39
|
*/
|
|
64
40
|
var FWorksheetHyperlinkMixin = class extends FWorksheet {
|
|
65
41
|
getUrl() {
|
|
66
|
-
return this._injector.get(SheetsHyperLinkParserService).buildHyperLink(
|
|
42
|
+
return this._injector.get(SheetsHyperLinkParserService).buildHyperLink(null, this._worksheet.getSheetId());
|
|
67
43
|
}
|
|
68
44
|
};
|
|
69
45
|
FWorksheet.extend(FWorksheetHyperlinkMixin);
|
|
@@ -72,60 +48,84 @@ FWorksheet.extend(FWorksheetHyperlinkMixin);
|
|
|
72
48
|
//#region src/facade/f-range.ts
|
|
73
49
|
var FRangeSheetsHyperlinkMixin = class extends FRange {
|
|
74
50
|
setHyperLink(url, label) {
|
|
75
|
-
|
|
51
|
+
return this._commandService.executeCommand(AddHyperLinkCommand.id, {
|
|
76
52
|
unitId: this.getUnitId(),
|
|
77
53
|
subUnitId: this._worksheet.getSheetId(),
|
|
78
54
|
link: {
|
|
55
|
+
id: generateRandomId(),
|
|
79
56
|
row: this._range.startRow,
|
|
80
57
|
column: this._range.startColumn,
|
|
81
58
|
payload: url,
|
|
82
|
-
display: label
|
|
83
|
-
id: generateRandomId()
|
|
59
|
+
display: label
|
|
84
60
|
}
|
|
85
|
-
};
|
|
86
|
-
return this._commandService.executeCommand(AddHyperLinkCommand.id, params);
|
|
61
|
+
});
|
|
87
62
|
}
|
|
88
63
|
getHyperLinks() {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
endIndex
|
|
98
|
-
|
|
99
|
-
label
|
|
100
|
-
|
|
101
|
-
|
|
64
|
+
const hyperlinks = [];
|
|
65
|
+
this.forEach((row, column, cell) => {
|
|
66
|
+
var _cell$p$body$customRa, _cell$p$body;
|
|
67
|
+
if (!cell.p) return;
|
|
68
|
+
const ranges = (_cell$p$body$customRa = (_cell$p$body = cell.p.body) === null || _cell$p$body === void 0 || (_cell$p$body = _cell$p$body.customRanges) === null || _cell$p$body === void 0 ? void 0 : _cell$p$body.filter((range) => range.rangeType === CustomRangeType.HYPERLINK)) !== null && _cell$p$body$customRa !== void 0 ? _cell$p$body$customRa : [];
|
|
69
|
+
if (ranges.length > 0) {
|
|
70
|
+
var _cell$p, _properties$url, _dataStream$slice$rep;
|
|
71
|
+
const dataStream = (_cell$p = cell.p) === null || _cell$p === void 0 || (_cell$p = _cell$p.body) === null || _cell$p === void 0 ? void 0 : _cell$p.dataStream;
|
|
72
|
+
const { rangeId, properties, startIndex, endIndex } = ranges[0];
|
|
73
|
+
const url = (_properties$url = properties === null || properties === void 0 ? void 0 : properties.url) !== null && _properties$url !== void 0 ? _properties$url : "";
|
|
74
|
+
const label = (_dataStream$slice$rep = dataStream === null || dataStream === void 0 ? void 0 : dataStream.slice(startIndex, endIndex + 1).replaceAll(DataStreamTreeTokenType.CUSTOM_RANGE_START, "").replaceAll(DataStreamTreeTokenType.CUSTOM_RANGE_END, "")) !== null && _dataStream$slice$rep !== void 0 ? _dataStream$slice$rep : "";
|
|
75
|
+
hyperlinks.push({
|
|
76
|
+
id: `${rangeId}`,
|
|
77
|
+
row,
|
|
78
|
+
column,
|
|
79
|
+
url,
|
|
80
|
+
label
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
return hyperlinks;
|
|
102
85
|
}
|
|
103
|
-
updateHyperLink(
|
|
104
|
-
const
|
|
86
|
+
updateHyperLink(url, label) {
|
|
87
|
+
const hyperlink = this.getHyperLinks().find((link) => link.row === this._range.startRow && link.column === this._range.startColumn);
|
|
88
|
+
if (!hyperlink) return Promise.reject(/* @__PURE__ */ new Error("No hyperlink found in the top left cell of the range"));
|
|
89
|
+
const { id, row, column } = hyperlink;
|
|
90
|
+
return this._commandService.executeCommand(UpdateHyperLinkCommand.id, {
|
|
105
91
|
unitId: this.getUnitId(),
|
|
106
92
|
subUnitId: this._worksheet.getSheetId(),
|
|
107
|
-
row: this._range.startRow,
|
|
108
|
-
column: this._range.startColumn,
|
|
109
93
|
id,
|
|
94
|
+
row,
|
|
95
|
+
column,
|
|
110
96
|
payload: {
|
|
111
97
|
payload: url,
|
|
112
98
|
display: label
|
|
113
99
|
}
|
|
114
|
-
};
|
|
115
|
-
return this._commandService.executeCommand(UpdateHyperLinkCommand.id, params);
|
|
100
|
+
});
|
|
116
101
|
}
|
|
117
|
-
cancelHyperLink(
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
102
|
+
cancelHyperLink(hyperlink) {
|
|
103
|
+
if (hyperlink) {
|
|
104
|
+
const { id, row, column } = hyperlink;
|
|
105
|
+
return this._commandService.syncExecuteCommand(CancelHyperLinkCommand.id, {
|
|
106
|
+
unitId: this.getUnitId(),
|
|
107
|
+
subUnitId: this._worksheet.getSheetId(),
|
|
108
|
+
id,
|
|
109
|
+
row,
|
|
110
|
+
column
|
|
111
|
+
});
|
|
112
|
+
} else {
|
|
113
|
+
const hyperlinks = this.getHyperLinks();
|
|
114
|
+
if (hyperlinks.length === 0) return true;
|
|
115
|
+
return hyperlinks.every((link) => {
|
|
116
|
+
const { id, row, column } = link;
|
|
117
|
+
return this._commandService.syncExecuteCommand(CancelHyperLinkCommand.id, {
|
|
118
|
+
unitId: this.getUnitId(),
|
|
119
|
+
subUnitId: this._worksheet.getSheetId(),
|
|
120
|
+
id,
|
|
121
|
+
row,
|
|
122
|
+
column
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
126
|
}
|
|
127
127
|
getUrl() {
|
|
128
|
-
return this._injector.get(SheetsHyperLinkParserService).buildHyperLink(this.
|
|
128
|
+
return this._injector.get(SheetsHyperLinkParserService).buildHyperLink(this.getRange(), this.getSheetId());
|
|
129
129
|
}
|
|
130
130
|
};
|
|
131
131
|
FRange.extend(FRangeSheetsHyperlinkMixin);
|
package/lib/es/index.js
CHANGED
|
@@ -705,7 +705,7 @@ const UpdateRichHyperLinkMutation = {
|
|
|
705
705
|
//#endregion
|
|
706
706
|
//#region package.json
|
|
707
707
|
var name = "@univerjs/sheets-hyper-link";
|
|
708
|
-
var version = "0.
|
|
708
|
+
var version = "0.24.0-insiders.20260527-b1d726f";
|
|
709
709
|
|
|
710
710
|
//#endregion
|
|
711
711
|
//#region src/config/config.ts
|
|
@@ -1002,7 +1002,7 @@ let SheetsHyperLinkRemoveSheetController = class SheetsHyperLinkRemoveSheetContr
|
|
|
1002
1002
|
if (commandInfo.id === RemoveSheetCommand.id) {
|
|
1003
1003
|
var _workbook$getActiveSh;
|
|
1004
1004
|
const params = commandInfo.params;
|
|
1005
|
-
const workbook = params.unitId ? this._univerInstanceService.getUnit(params.unitId) : this._univerInstanceService.
|
|
1005
|
+
const workbook = params.unitId ? this._univerInstanceService.getUnit(params.unitId) : this._univerInstanceService.getCurrentUnitOfType(UniverInstanceType.UNIVER_SHEET);
|
|
1006
1006
|
if (!workbook) return {
|
|
1007
1007
|
redos: [],
|
|
1008
1008
|
undos: []
|
|
@@ -1455,8 +1455,11 @@ let SheetsHyperLinkParserService = class SheetsHyperLinkParserService {
|
|
|
1455
1455
|
this._localeService = _localeService;
|
|
1456
1456
|
this._definedNamesService = _definedNamesService;
|
|
1457
1457
|
}
|
|
1458
|
-
buildHyperLink(
|
|
1459
|
-
|
|
1458
|
+
buildHyperLink(defineNameIdOrRange, sheetId) {
|
|
1459
|
+
if (typeof defineNameIdOrRange === "string") return `#${"rangeid"}=${defineNameIdOrRange}`;
|
|
1460
|
+
let result = `#${"gid"}=${sheetId}`;
|
|
1461
|
+
if (defineNameIdOrRange) result += `&${"range"}=${serializeRange(defineNameIdOrRange)}`;
|
|
1462
|
+
return result;
|
|
1460
1463
|
}
|
|
1461
1464
|
parseHyperLink(urlStr) {
|
|
1462
1465
|
if (urlStr.startsWith("#")) {
|
|
@@ -1485,10 +1488,10 @@ let SheetsHyperLinkParserService = class SheetsHyperLinkParserService {
|
|
|
1485
1488
|
_getURLName(params) {
|
|
1486
1489
|
var _sheet$getName;
|
|
1487
1490
|
const { gid, range, rangeid, unitid } = params;
|
|
1488
|
-
const workbook = unitid ? this._univerInstanceService.getUnit(unitid, UniverInstanceType.UNIVER_SHEET) : this._univerInstanceService.
|
|
1491
|
+
const workbook = unitid ? this._univerInstanceService.getUnit(unitid, UniverInstanceType.UNIVER_SHEET) : this._univerInstanceService.getCurrentUnitOfType(UniverInstanceType.UNIVER_SHEET);
|
|
1489
1492
|
const invalidLink = {
|
|
1490
1493
|
type: "invalid",
|
|
1491
|
-
name: this._localeService.t("
|
|
1494
|
+
name: this._localeService.t("sheets-hyper-link.message.refError")
|
|
1492
1495
|
};
|
|
1493
1496
|
if (!workbook) return invalidLink;
|
|
1494
1497
|
const sheet = gid ? workbook.getSheetBySheetId(gid) : workbook.getActiveSheet();
|