@univerjs/sheets-hyper-link 0.24.0 → 0.25.0
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 +13 -10
- 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 +13 -10
- 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 +13 -10
- 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 +76 -46
- package/lib/types/facade/f-workbook.d.ts +40 -18
- package/lib/types/facade/f-worksheet.d.ts +3 -2
- 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 +12 -7
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
|
@@ -5,7 +5,7 @@ let _univerjs_sheets = require("@univerjs/sheets");
|
|
|
5
5
|
let rxjs = require("rxjs");
|
|
6
6
|
let _univerjs_engine_formula = require("@univerjs/engine-formula");
|
|
7
7
|
|
|
8
|
-
//#region \0@oxc-project+runtime@0.
|
|
8
|
+
//#region \0@oxc-project+runtime@0.133.0/helpers/esm/typeof.js
|
|
9
9
|
function _typeof(o) {
|
|
10
10
|
"@babel/helpers - typeof";
|
|
11
11
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -16,7 +16,7 @@ function _typeof(o) {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
//#endregion
|
|
19
|
-
//#region \0@oxc-project+runtime@0.
|
|
19
|
+
//#region \0@oxc-project+runtime@0.133.0/helpers/esm/toPrimitive.js
|
|
20
20
|
function toPrimitive(t, r) {
|
|
21
21
|
if ("object" != _typeof(t) || !t) return t;
|
|
22
22
|
var e = t[Symbol.toPrimitive];
|
|
@@ -29,14 +29,14 @@ function toPrimitive(t, r) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
//#endregion
|
|
32
|
-
//#region \0@oxc-project+runtime@0.
|
|
32
|
+
//#region \0@oxc-project+runtime@0.133.0/helpers/esm/toPropertyKey.js
|
|
33
33
|
function toPropertyKey(t) {
|
|
34
34
|
var i = toPrimitive(t, "string");
|
|
35
35
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
//#endregion
|
|
39
|
-
//#region \0@oxc-project+runtime@0.
|
|
39
|
+
//#region \0@oxc-project+runtime@0.133.0/helpers/esm/defineProperty.js
|
|
40
40
|
function _defineProperty(e, r, t) {
|
|
41
41
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
42
42
|
value: t,
|
|
@@ -47,7 +47,7 @@ function _defineProperty(e, r, t) {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
//#endregion
|
|
50
|
-
//#region \0@oxc-project+runtime@0.
|
|
50
|
+
//#region \0@oxc-project+runtime@0.133.0/helpers/esm/decorateParam.js
|
|
51
51
|
function __decorateParam(paramIndex, decorator) {
|
|
52
52
|
return function(target, key) {
|
|
53
53
|
decorator(target, key, paramIndex);
|
|
@@ -55,7 +55,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
//#endregion
|
|
58
|
-
//#region \0@oxc-project+runtime@0.
|
|
58
|
+
//#region \0@oxc-project+runtime@0.133.0/helpers/esm/decorate.js
|
|
59
59
|
function __decorate(decorators, target, key, desc) {
|
|
60
60
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
61
61
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -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.25.0";
|
|
710
710
|
|
|
711
711
|
//#endregion
|
|
712
712
|
//#region src/config/config.ts
|
|
@@ -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("#")) {
|
|
@@ -1489,7 +1492,7 @@ let SheetsHyperLinkParserService = class SheetsHyperLinkParserService {
|
|
|
1489
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);
|