@univerjs/sheets-hyper-link 1.0.0-alpha.7 → 1.0.0-beta.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 CHANGED
@@ -64,15 +64,15 @@ var FRangeSheetsHyperlinkMixin = class extends _univerjs_sheets_facade.FRange {
64
64
  getHyperLinks() {
65
65
  const hyperlinks = [];
66
66
  this.forEach((row, column, cell) => {
67
- var _cell$p$body$customRa, _cell$p$body;
67
+ var _cell$p$body;
68
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 : [];
69
+ const ranges = ((_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)) ?? [];
70
70
  if (ranges.length > 0) {
71
- var _cell$p, _properties$url, _dataStream$slice$rep;
71
+ var _cell$p;
72
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
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 : "";
74
+ const url = (properties === null || properties === void 0 ? void 0 : properties.url) ?? "";
75
+ const label = (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, "")) ?? "";
76
76
  hyperlinks.push({
77
77
  id: `${rangeId}`,
78
78
  row,
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.137.0/helpers/esm/typeof.js
8
+ //#region \0@oxc-project+runtime@0.140.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.137.0/helpers/esm/toPrimitive.js
19
+ //#region \0@oxc-project+runtime@0.140.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.137.0/helpers/esm/toPropertyKey.js
32
+ //#region \0@oxc-project+runtime@0.140.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.137.0/helpers/esm/defineProperty.js
39
+ //#region \0@oxc-project+runtime@0.140.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.137.0/helpers/esm/decorateParam.js
50
+ //#region \0@oxc-project+runtime@0.140.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.137.0/helpers/esm/decorate.js
58
+ //#region \0@oxc-project+runtime@0.140.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);
@@ -188,11 +188,11 @@ let HyperLinkModel = class HyperLinkModel extends _univerjs_core.Disposable {
188
188
  return matrix.getValue(row, column);
189
189
  }
190
190
  getHyperLinkByLocationSync(unitId, subUnitId, row, column) {
191
- var _workbook$getSheetByS, _ref, _cell$v, _cell$p;
191
+ var _workbook$getSheetByS, _cell$p;
192
192
  const { matrix } = this._ensureMap(unitId, subUnitId);
193
193
  const workbook = this._univerInstanceService.getUnit(unitId, _univerjs_core.UniverInstanceType.UNIVER_SHEET);
194
194
  const cell = workbook === null || workbook === void 0 || (_workbook$getSheetByS = workbook.getSheetBySheetId(subUnitId)) === null || _workbook$getSheetByS === void 0 ? void 0 : _workbook$getSheetByS.getCellRaw(row, column);
195
- const cellValueStr = ((_ref = (_cell$v = cell === null || cell === void 0 ? void 0 : cell.v) !== null && _cell$v !== void 0 ? _cell$v : cell === null || cell === void 0 || (_cell$p = cell.p) === null || _cell$p === void 0 || (_cell$p = _cell$p.body) === null || _cell$p === void 0 ? void 0 : _cell$p.dataStream.slice(0, -2)) !== null && _ref !== void 0 ? _ref : "").toString();
195
+ const cellValueStr = ((cell === null || cell === void 0 ? void 0 : cell.v) ?? (cell === null || cell === void 0 || (_cell$p = cell.p) === null || _cell$p === void 0 || (_cell$p = _cell$p.body) === null || _cell$p === void 0 ? void 0 : _cell$p.dataStream.slice(0, -2)) ?? "").toString();
196
196
  const link = matrix.getValue(row, column);
197
197
  if (!link) return;
198
198
  return {
@@ -619,7 +619,7 @@ const UpdateRichHyperLinkCommand = {
619
619
  type: _univerjs_core.CommandType.COMMAND,
620
620
  id: "sheets.command.update-rich-hyper-link",
621
621
  handler: (accessor, params) => {
622
- var _doc$getBody, _params$payload$displ, _oldBody$textRuns2;
622
+ var _doc$getBody, _oldBody$textRuns2;
623
623
  if (!params) return false;
624
624
  const { documentId: unitId, payload, id: rangeId } = params;
625
625
  const univerInstanceService = accessor.get(_univerjs_core.IUniverInstanceService);
@@ -628,7 +628,7 @@ const UpdateRichHyperLinkCommand = {
628
628
  if (!doc) return false;
629
629
  const range = (_doc$getBody = doc.getBody()) === null || _doc$getBody === void 0 || (_doc$getBody = _doc$getBody.customRanges) === null || _doc$getBody === void 0 ? void 0 : _doc$getBody.find((range) => range.rangeId === rangeId);
630
630
  if (!range) return false;
631
- const display = (_params$payload$displ = params.payload.display) !== null && _params$payload$displ !== void 0 ? _params$payload$displ : "";
631
+ const display = params.payload.display ?? "";
632
632
  const newId = (0, _univerjs_core.generateRandomId)();
633
633
  const textRun = (_oldBody$textRuns2 = (0, _univerjs_core.getBodySlice)(doc.getBody(), range.startIndex, range.endIndex + 1).textRuns) === null || _oldBody$textRuns2 === void 0 ? void 0 : _oldBody$textRuns2[0];
634
634
  if (textRun) textRun.ed = display.length + 1;
@@ -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 = "1.0.0-alpha.7";
709
+ var version = "1.0.0-beta.0";
710
710
 
711
711
  //#endregion
712
712
  //#region src/config/config.ts
@@ -859,12 +859,11 @@ let SheetsHyperLinkRefRangeController = class SheetsHyperLinkRefRangeController
859
859
  }
860
860
  _registerRange(unitId, id, payload, silent = false) {
861
861
  if (payload.startsWith("#")) {
862
- var _search$get, _search$get2, _search$get3;
863
862
  const search = new URLSearchParams(payload.slice(1));
864
863
  const searchObj = {
865
- gid: (_search$get = search.get("gid")) !== null && _search$get !== void 0 ? _search$get : "",
866
- range: (_search$get2 = search.get("range")) !== null && _search$get2 !== void 0 ? _search$get2 : "",
867
- rangeid: (_search$get3 = search.get("rangeid")) !== null && _search$get3 !== void 0 ? _search$get3 : ""
864
+ gid: search.get("gid") ?? "",
865
+ range: search.get("range") ?? "",
866
+ rangeid: search.get("rangeid") ?? ""
868
867
  };
869
868
  if (searchObj.range && searchObj.gid) {
870
869
  const subUnitId = searchObj.gid;
@@ -1077,12 +1076,11 @@ let SheetsHyperLinkRichTextRefRangeController = class SheetsHyperLinkRichTextRef
1077
1076
  const workbook = this._univerInstanceService.getUnit(unitId, _univerjs_core.UniverInstanceType.UNIVER_SHEET);
1078
1077
  if (!workbook) return null;
1079
1078
  if (payload && payload.startsWith("#")) {
1080
- var _search$get, _search$get2, _search$get3;
1081
1079
  const search = new URLSearchParams(payload.slice(1));
1082
1080
  const searchObj = {
1083
- gid: (_search$get = search.get("gid")) !== null && _search$get !== void 0 ? _search$get : "",
1084
- range: (_search$get2 = search.get("range")) !== null && _search$get2 !== void 0 ? _search$get2 : "",
1085
- rangeid: (_search$get3 = search.get("rangeid")) !== null && _search$get3 !== void 0 ? _search$get3 : ""
1081
+ gid: search.get("gid") ?? "",
1082
+ range: search.get("range") ?? "",
1083
+ rangeid: search.get("rangeid") ?? ""
1086
1084
  };
1087
1085
  if (searchObj.range && searchObj.gid) {
1088
1086
  const subUnitId = searchObj.gid;
@@ -1464,13 +1462,12 @@ let SheetsHyperLinkParserService = class SheetsHyperLinkParserService {
1464
1462
  }
1465
1463
  parseHyperLink(urlStr) {
1466
1464
  if (urlStr.startsWith("#")) {
1467
- var _search$get, _search$get2, _search$get3, _search$get4;
1468
1465
  const search = new URLSearchParams(urlStr.slice(1));
1469
1466
  const searchObj = {
1470
- gid: (_search$get = search.get("gid")) !== null && _search$get !== void 0 ? _search$get : "",
1471
- range: (_search$get2 = search.get("range")) !== null && _search$get2 !== void 0 ? _search$get2 : "",
1472
- rangeid: (_search$get3 = search.get("rangeid")) !== null && _search$get3 !== void 0 ? _search$get3 : "",
1473
- unitid: (_search$get4 = search.get("unitid")) !== null && _search$get4 !== void 0 ? _search$get4 : ""
1467
+ gid: search.get("gid") ?? "",
1468
+ range: search.get("range") ?? "",
1469
+ rangeid: search.get("rangeid") ?? "",
1470
+ unitid: search.get("unitid") ?? ""
1474
1471
  };
1475
1472
  const urlInfo = this._getURLName(searchObj);
1476
1473
  return {
@@ -1487,7 +1484,6 @@ let SheetsHyperLinkParserService = class SheetsHyperLinkParserService {
1487
1484
  };
1488
1485
  }
1489
1486
  _getURLName(params) {
1490
- var _sheet$getName;
1491
1487
  const { gid, range, rangeid, unitid } = params;
1492
1488
  const workbook = unitid ? this._univerInstanceService.getUnit(unitid, _univerjs_core.UniverInstanceType.UNIVER_SHEET) : this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
1493
1489
  const invalidLink = {
@@ -1496,7 +1492,7 @@ let SheetsHyperLinkParserService = class SheetsHyperLinkParserService {
1496
1492
  };
1497
1493
  if (!workbook) return invalidLink;
1498
1494
  const sheet = gid ? workbook.getSheetBySheetId(gid) : workbook.getActiveSheet();
1499
- const sheetName = (_sheet$getName = sheet === null || sheet === void 0 ? void 0 : sheet.getName()) !== null && _sheet$getName !== void 0 ? _sheet$getName : "";
1495
+ const sheetName = (sheet === null || sheet === void 0 ? void 0 : sheet.getName()) ?? "";
1500
1496
  if (range) {
1501
1497
  if (!sheet) return invalidLink;
1502
1498
  const rangeObj = (0, _univerjs_engine_formula.deserializeRangeWithSheet)(range).range;
@@ -1566,7 +1562,7 @@ _defineProperty(UniverSheetsHyperLinkPlugin, "packageName", name);
1566
1562
  _defineProperty(UniverSheetsHyperLinkPlugin, "version", version);
1567
1563
  _defineProperty(UniverSheetsHyperLinkPlugin, "type", _univerjs_core.UniverInstanceType.UNIVER_SHEET);
1568
1564
  UniverSheetsHyperLinkPlugin = __decorate([
1569
- (0, _univerjs_core.DependentOn)(_univerjs_sheets.UniverSheetsPlugin),
1565
+ (0, _univerjs_core.DependentOn)(_univerjs_engine_formula.UniverFormulaEnginePlugin, _univerjs_sheets.UniverSheetsPlugin),
1570
1566
  __decorateParam(1, (0, _univerjs_core.Inject)(_univerjs_core.Injector)),
1571
1567
  __decorateParam(2, _univerjs_core.IConfigService)
1572
1568
  ], UniverSheetsHyperLinkPlugin);
package/lib/es/facade.js CHANGED
@@ -63,15 +63,15 @@ var FRangeSheetsHyperlinkMixin = class extends FRange {
63
63
  getHyperLinks() {
64
64
  const hyperlinks = [];
65
65
  this.forEach((row, column, cell) => {
66
- var _cell$p$body$customRa, _cell$p$body;
66
+ var _cell$p$body;
67
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 : [];
68
+ const ranges = ((_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)) ?? [];
69
69
  if (ranges.length > 0) {
70
- var _cell$p, _properties$url, _dataStream$slice$rep;
70
+ var _cell$p;
71
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
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 : "";
73
+ const url = (properties === null || properties === void 0 ? void 0 : properties.url) ?? "";
74
+ const label = (dataStream === null || dataStream === void 0 ? void 0 : dataStream.slice(startIndex, endIndex + 1).replaceAll(DataStreamTreeTokenType.CUSTOM_RANGE_START, "").replaceAll(DataStreamTreeTokenType.CUSTOM_RANGE_END, "")) ?? "";
75
75
  hyperlinks.push({
76
76
  id: `${rangeId}`,
77
77
  row,
package/lib/es/index.js CHANGED
@@ -2,9 +2,9 @@ import { BuildTextUtils, CellValueType, CommandType, CustomRangeType, DOCS_NORMA
2
2
  import { addCustomRangeBySelectionFactory, deleteCustomRangeFactory, replaceSelectionFactory } from "@univerjs/docs";
3
3
  import { AFTER_CELL_EDIT, ClearSelectionAllCommand, ClearSelectionContentCommand, ClearSelectionFormatCommand, RefRangeService, RemoveSheetCommand, SetRangeValuesCommand, SetRangeValuesMutation, SetRangeValuesUndoMutationFactory, SheetInterceptorService, SheetsSelectionsService, UniverSheetsPlugin, getSheetCommandTarget, handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests, handleDefaultRangeChangeWithEffectRefCommands, handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests } from "@univerjs/sheets";
4
4
  import { Subject } from "rxjs";
5
- import { IDefinedNamesService, deserializeRangeWithSheet, serializeRange, serializeRangeWithSheet } from "@univerjs/engine-formula";
5
+ import { IDefinedNamesService, UniverFormulaEnginePlugin, deserializeRangeWithSheet, serializeRange, serializeRangeWithSheet } from "@univerjs/engine-formula";
6
6
 
7
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/typeof.js
7
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/typeof.js
8
8
  function _typeof(o) {
9
9
  "@babel/helpers - typeof";
10
10
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
@@ -15,7 +15,7 @@ function _typeof(o) {
15
15
  }
16
16
 
17
17
  //#endregion
18
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPrimitive.js
18
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPrimitive.js
19
19
  function toPrimitive(t, r) {
20
20
  if ("object" != _typeof(t) || !t) return t;
21
21
  var e = t[Symbol.toPrimitive];
@@ -28,14 +28,14 @@ function toPrimitive(t, r) {
28
28
  }
29
29
 
30
30
  //#endregion
31
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPropertyKey.js
31
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPropertyKey.js
32
32
  function toPropertyKey(t) {
33
33
  var i = toPrimitive(t, "string");
34
34
  return "symbol" == _typeof(i) ? i : i + "";
35
35
  }
36
36
 
37
37
  //#endregion
38
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/defineProperty.js
38
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/defineProperty.js
39
39
  function _defineProperty(e, r, t) {
40
40
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
41
41
  value: t,
@@ -46,7 +46,7 @@ function _defineProperty(e, r, t) {
46
46
  }
47
47
 
48
48
  //#endregion
49
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/decorateParam.js
49
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorateParam.js
50
50
  function __decorateParam(paramIndex, decorator) {
51
51
  return function(target, key) {
52
52
  decorator(target, key, paramIndex);
@@ -54,7 +54,7 @@ function __decorateParam(paramIndex, decorator) {
54
54
  }
55
55
 
56
56
  //#endregion
57
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/decorate.js
57
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorate.js
58
58
  function __decorate(decorators, target, key, desc) {
59
59
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
60
60
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -187,11 +187,11 @@ let HyperLinkModel = class HyperLinkModel extends Disposable {
187
187
  return matrix.getValue(row, column);
188
188
  }
189
189
  getHyperLinkByLocationSync(unitId, subUnitId, row, column) {
190
- var _workbook$getSheetByS, _ref, _cell$v, _cell$p;
190
+ var _workbook$getSheetByS, _cell$p;
191
191
  const { matrix } = this._ensureMap(unitId, subUnitId);
192
192
  const workbook = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET);
193
193
  const cell = workbook === null || workbook === void 0 || (_workbook$getSheetByS = workbook.getSheetBySheetId(subUnitId)) === null || _workbook$getSheetByS === void 0 ? void 0 : _workbook$getSheetByS.getCellRaw(row, column);
194
- const cellValueStr = ((_ref = (_cell$v = cell === null || cell === void 0 ? void 0 : cell.v) !== null && _cell$v !== void 0 ? _cell$v : cell === null || cell === void 0 || (_cell$p = cell.p) === null || _cell$p === void 0 || (_cell$p = _cell$p.body) === null || _cell$p === void 0 ? void 0 : _cell$p.dataStream.slice(0, -2)) !== null && _ref !== void 0 ? _ref : "").toString();
194
+ const cellValueStr = ((cell === null || cell === void 0 ? void 0 : cell.v) ?? (cell === null || cell === void 0 || (_cell$p = cell.p) === null || _cell$p === void 0 || (_cell$p = _cell$p.body) === null || _cell$p === void 0 ? void 0 : _cell$p.dataStream.slice(0, -2)) ?? "").toString();
195
195
  const link = matrix.getValue(row, column);
196
196
  if (!link) return;
197
197
  return {
@@ -618,7 +618,7 @@ const UpdateRichHyperLinkCommand = {
618
618
  type: CommandType.COMMAND,
619
619
  id: "sheets.command.update-rich-hyper-link",
620
620
  handler: (accessor, params) => {
621
- var _doc$getBody, _params$payload$displ, _oldBody$textRuns2;
621
+ var _doc$getBody, _oldBody$textRuns2;
622
622
  if (!params) return false;
623
623
  const { documentId: unitId, payload, id: rangeId } = params;
624
624
  const univerInstanceService = accessor.get(IUniverInstanceService);
@@ -627,7 +627,7 @@ const UpdateRichHyperLinkCommand = {
627
627
  if (!doc) return false;
628
628
  const range = (_doc$getBody = doc.getBody()) === null || _doc$getBody === void 0 || (_doc$getBody = _doc$getBody.customRanges) === null || _doc$getBody === void 0 ? void 0 : _doc$getBody.find((range) => range.rangeId === rangeId);
629
629
  if (!range) return false;
630
- const display = (_params$payload$displ = params.payload.display) !== null && _params$payload$displ !== void 0 ? _params$payload$displ : "";
630
+ const display = params.payload.display ?? "";
631
631
  const newId = generateRandomId();
632
632
  const textRun = (_oldBody$textRuns2 = getBodySlice(doc.getBody(), range.startIndex, range.endIndex + 1).textRuns) === null || _oldBody$textRuns2 === void 0 ? void 0 : _oldBody$textRuns2[0];
633
633
  if (textRun) textRun.ed = display.length + 1;
@@ -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 = "1.0.0-alpha.7";
708
+ var version = "1.0.0-beta.0";
709
709
 
710
710
  //#endregion
711
711
  //#region src/config/config.ts
@@ -858,12 +858,11 @@ let SheetsHyperLinkRefRangeController = class SheetsHyperLinkRefRangeController
858
858
  }
859
859
  _registerRange(unitId, id, payload, silent = false) {
860
860
  if (payload.startsWith("#")) {
861
- var _search$get, _search$get2, _search$get3;
862
861
  const search = new URLSearchParams(payload.slice(1));
863
862
  const searchObj = {
864
- gid: (_search$get = search.get("gid")) !== null && _search$get !== void 0 ? _search$get : "",
865
- range: (_search$get2 = search.get("range")) !== null && _search$get2 !== void 0 ? _search$get2 : "",
866
- rangeid: (_search$get3 = search.get("rangeid")) !== null && _search$get3 !== void 0 ? _search$get3 : ""
863
+ gid: search.get("gid") ?? "",
864
+ range: search.get("range") ?? "",
865
+ rangeid: search.get("rangeid") ?? ""
867
866
  };
868
867
  if (searchObj.range && searchObj.gid) {
869
868
  const subUnitId = searchObj.gid;
@@ -1076,12 +1075,11 @@ let SheetsHyperLinkRichTextRefRangeController = class SheetsHyperLinkRichTextRef
1076
1075
  const workbook = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET);
1077
1076
  if (!workbook) return null;
1078
1077
  if (payload && payload.startsWith("#")) {
1079
- var _search$get, _search$get2, _search$get3;
1080
1078
  const search = new URLSearchParams(payload.slice(1));
1081
1079
  const searchObj = {
1082
- gid: (_search$get = search.get("gid")) !== null && _search$get !== void 0 ? _search$get : "",
1083
- range: (_search$get2 = search.get("range")) !== null && _search$get2 !== void 0 ? _search$get2 : "",
1084
- rangeid: (_search$get3 = search.get("rangeid")) !== null && _search$get3 !== void 0 ? _search$get3 : ""
1080
+ gid: search.get("gid") ?? "",
1081
+ range: search.get("range") ?? "",
1082
+ rangeid: search.get("rangeid") ?? ""
1085
1083
  };
1086
1084
  if (searchObj.range && searchObj.gid) {
1087
1085
  const subUnitId = searchObj.gid;
@@ -1463,13 +1461,12 @@ let SheetsHyperLinkParserService = class SheetsHyperLinkParserService {
1463
1461
  }
1464
1462
  parseHyperLink(urlStr) {
1465
1463
  if (urlStr.startsWith("#")) {
1466
- var _search$get, _search$get2, _search$get3, _search$get4;
1467
1464
  const search = new URLSearchParams(urlStr.slice(1));
1468
1465
  const searchObj = {
1469
- gid: (_search$get = search.get("gid")) !== null && _search$get !== void 0 ? _search$get : "",
1470
- range: (_search$get2 = search.get("range")) !== null && _search$get2 !== void 0 ? _search$get2 : "",
1471
- rangeid: (_search$get3 = search.get("rangeid")) !== null && _search$get3 !== void 0 ? _search$get3 : "",
1472
- unitid: (_search$get4 = search.get("unitid")) !== null && _search$get4 !== void 0 ? _search$get4 : ""
1466
+ gid: search.get("gid") ?? "",
1467
+ range: search.get("range") ?? "",
1468
+ rangeid: search.get("rangeid") ?? "",
1469
+ unitid: search.get("unitid") ?? ""
1473
1470
  };
1474
1471
  const urlInfo = this._getURLName(searchObj);
1475
1472
  return {
@@ -1486,7 +1483,6 @@ let SheetsHyperLinkParserService = class SheetsHyperLinkParserService {
1486
1483
  };
1487
1484
  }
1488
1485
  _getURLName(params) {
1489
- var _sheet$getName;
1490
1486
  const { gid, range, rangeid, unitid } = params;
1491
1487
  const workbook = unitid ? this._univerInstanceService.getUnit(unitid, UniverInstanceType.UNIVER_SHEET) : this._univerInstanceService.getCurrentUnitOfType(UniverInstanceType.UNIVER_SHEET);
1492
1488
  const invalidLink = {
@@ -1495,7 +1491,7 @@ let SheetsHyperLinkParserService = class SheetsHyperLinkParserService {
1495
1491
  };
1496
1492
  if (!workbook) return invalidLink;
1497
1493
  const sheet = gid ? workbook.getSheetBySheetId(gid) : workbook.getActiveSheet();
1498
- const sheetName = (_sheet$getName = sheet === null || sheet === void 0 ? void 0 : sheet.getName()) !== null && _sheet$getName !== void 0 ? _sheet$getName : "";
1494
+ const sheetName = (sheet === null || sheet === void 0 ? void 0 : sheet.getName()) ?? "";
1499
1495
  if (range) {
1500
1496
  if (!sheet) return invalidLink;
1501
1497
  const rangeObj = deserializeRangeWithSheet(range).range;
@@ -1565,7 +1561,7 @@ _defineProperty(UniverSheetsHyperLinkPlugin, "packageName", name);
1565
1561
  _defineProperty(UniverSheetsHyperLinkPlugin, "version", version);
1566
1562
  _defineProperty(UniverSheetsHyperLinkPlugin, "type", UniverInstanceType.UNIVER_SHEET);
1567
1563
  UniverSheetsHyperLinkPlugin = __decorate([
1568
- DependentOn(UniverSheetsPlugin),
1564
+ DependentOn(UniverFormulaEnginePlugin, UniverSheetsPlugin),
1569
1565
  __decorateParam(1, Inject(Injector)),
1570
1566
  __decorateParam(2, IConfigService)
1571
1567
  ], UniverSheetsHyperLinkPlugin);
package/lib/facade.js CHANGED
@@ -63,15 +63,15 @@ var FRangeSheetsHyperlinkMixin = class extends FRange {
63
63
  getHyperLinks() {
64
64
  const hyperlinks = [];
65
65
  this.forEach((row, column, cell) => {
66
- var _cell$p$body$customRa, _cell$p$body;
66
+ var _cell$p$body;
67
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 : [];
68
+ const ranges = ((_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)) ?? [];
69
69
  if (ranges.length > 0) {
70
- var _cell$p, _properties$url, _dataStream$slice$rep;
70
+ var _cell$p;
71
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
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 : "";
73
+ const url = (properties === null || properties === void 0 ? void 0 : properties.url) ?? "";
74
+ const label = (dataStream === null || dataStream === void 0 ? void 0 : dataStream.slice(startIndex, endIndex + 1).replaceAll(DataStreamTreeTokenType.CUSTOM_RANGE_START, "").replaceAll(DataStreamTreeTokenType.CUSTOM_RANGE_END, "")) ?? "";
75
75
  hyperlinks.push({
76
76
  id: `${rangeId}`,
77
77
  row,
package/lib/index.js CHANGED
@@ -2,9 +2,9 @@ import { BuildTextUtils, CellValueType, CommandType, CustomRangeType, DOCS_NORMA
2
2
  import { addCustomRangeBySelectionFactory, deleteCustomRangeFactory, replaceSelectionFactory } from "@univerjs/docs";
3
3
  import { AFTER_CELL_EDIT, ClearSelectionAllCommand, ClearSelectionContentCommand, ClearSelectionFormatCommand, RefRangeService, RemoveSheetCommand, SetRangeValuesCommand, SetRangeValuesMutation, SetRangeValuesUndoMutationFactory, SheetInterceptorService, SheetsSelectionsService, UniverSheetsPlugin, getSheetCommandTarget, handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests, handleDefaultRangeChangeWithEffectRefCommands, handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests } from "@univerjs/sheets";
4
4
  import { Subject } from "rxjs";
5
- import { IDefinedNamesService, deserializeRangeWithSheet, serializeRange, serializeRangeWithSheet } from "@univerjs/engine-formula";
5
+ import { IDefinedNamesService, UniverFormulaEnginePlugin, deserializeRangeWithSheet, serializeRange, serializeRangeWithSheet } from "@univerjs/engine-formula";
6
6
 
7
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/typeof.js
7
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/typeof.js
8
8
  function _typeof(o) {
9
9
  "@babel/helpers - typeof";
10
10
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
@@ -15,7 +15,7 @@ function _typeof(o) {
15
15
  }
16
16
 
17
17
  //#endregion
18
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPrimitive.js
18
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPrimitive.js
19
19
  function toPrimitive(t, r) {
20
20
  if ("object" != _typeof(t) || !t) return t;
21
21
  var e = t[Symbol.toPrimitive];
@@ -28,14 +28,14 @@ function toPrimitive(t, r) {
28
28
  }
29
29
 
30
30
  //#endregion
31
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPropertyKey.js
31
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPropertyKey.js
32
32
  function toPropertyKey(t) {
33
33
  var i = toPrimitive(t, "string");
34
34
  return "symbol" == _typeof(i) ? i : i + "";
35
35
  }
36
36
 
37
37
  //#endregion
38
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/defineProperty.js
38
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/defineProperty.js
39
39
  function _defineProperty(e, r, t) {
40
40
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
41
41
  value: t,
@@ -46,7 +46,7 @@ function _defineProperty(e, r, t) {
46
46
  }
47
47
 
48
48
  //#endregion
49
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/decorateParam.js
49
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorateParam.js
50
50
  function __decorateParam(paramIndex, decorator) {
51
51
  return function(target, key) {
52
52
  decorator(target, key, paramIndex);
@@ -54,7 +54,7 @@ function __decorateParam(paramIndex, decorator) {
54
54
  }
55
55
 
56
56
  //#endregion
57
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/decorate.js
57
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorate.js
58
58
  function __decorate(decorators, target, key, desc) {
59
59
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
60
60
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -187,11 +187,11 @@ let HyperLinkModel = class HyperLinkModel extends Disposable {
187
187
  return matrix.getValue(row, column);
188
188
  }
189
189
  getHyperLinkByLocationSync(unitId, subUnitId, row, column) {
190
- var _workbook$getSheetByS, _ref, _cell$v, _cell$p;
190
+ var _workbook$getSheetByS, _cell$p;
191
191
  const { matrix } = this._ensureMap(unitId, subUnitId);
192
192
  const workbook = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET);
193
193
  const cell = workbook === null || workbook === void 0 || (_workbook$getSheetByS = workbook.getSheetBySheetId(subUnitId)) === null || _workbook$getSheetByS === void 0 ? void 0 : _workbook$getSheetByS.getCellRaw(row, column);
194
- const cellValueStr = ((_ref = (_cell$v = cell === null || cell === void 0 ? void 0 : cell.v) !== null && _cell$v !== void 0 ? _cell$v : cell === null || cell === void 0 || (_cell$p = cell.p) === null || _cell$p === void 0 || (_cell$p = _cell$p.body) === null || _cell$p === void 0 ? void 0 : _cell$p.dataStream.slice(0, -2)) !== null && _ref !== void 0 ? _ref : "").toString();
194
+ const cellValueStr = ((cell === null || cell === void 0 ? void 0 : cell.v) ?? (cell === null || cell === void 0 || (_cell$p = cell.p) === null || _cell$p === void 0 || (_cell$p = _cell$p.body) === null || _cell$p === void 0 ? void 0 : _cell$p.dataStream.slice(0, -2)) ?? "").toString();
195
195
  const link = matrix.getValue(row, column);
196
196
  if (!link) return;
197
197
  return {
@@ -618,7 +618,7 @@ const UpdateRichHyperLinkCommand = {
618
618
  type: CommandType.COMMAND,
619
619
  id: "sheets.command.update-rich-hyper-link",
620
620
  handler: (accessor, params) => {
621
- var _doc$getBody, _params$payload$displ, _oldBody$textRuns2;
621
+ var _doc$getBody, _oldBody$textRuns2;
622
622
  if (!params) return false;
623
623
  const { documentId: unitId, payload, id: rangeId } = params;
624
624
  const univerInstanceService = accessor.get(IUniverInstanceService);
@@ -627,7 +627,7 @@ const UpdateRichHyperLinkCommand = {
627
627
  if (!doc) return false;
628
628
  const range = (_doc$getBody = doc.getBody()) === null || _doc$getBody === void 0 || (_doc$getBody = _doc$getBody.customRanges) === null || _doc$getBody === void 0 ? void 0 : _doc$getBody.find((range) => range.rangeId === rangeId);
629
629
  if (!range) return false;
630
- const display = (_params$payload$displ = params.payload.display) !== null && _params$payload$displ !== void 0 ? _params$payload$displ : "";
630
+ const display = params.payload.display ?? "";
631
631
  const newId = generateRandomId();
632
632
  const textRun = (_oldBody$textRuns2 = getBodySlice(doc.getBody(), range.startIndex, range.endIndex + 1).textRuns) === null || _oldBody$textRuns2 === void 0 ? void 0 : _oldBody$textRuns2[0];
633
633
  if (textRun) textRun.ed = display.length + 1;
@@ -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 = "1.0.0-alpha.7";
708
+ var version = "1.0.0-beta.0";
709
709
 
710
710
  //#endregion
711
711
  //#region src/config/config.ts
@@ -858,12 +858,11 @@ let SheetsHyperLinkRefRangeController = class SheetsHyperLinkRefRangeController
858
858
  }
859
859
  _registerRange(unitId, id, payload, silent = false) {
860
860
  if (payload.startsWith("#")) {
861
- var _search$get, _search$get2, _search$get3;
862
861
  const search = new URLSearchParams(payload.slice(1));
863
862
  const searchObj = {
864
- gid: (_search$get = search.get("gid")) !== null && _search$get !== void 0 ? _search$get : "",
865
- range: (_search$get2 = search.get("range")) !== null && _search$get2 !== void 0 ? _search$get2 : "",
866
- rangeid: (_search$get3 = search.get("rangeid")) !== null && _search$get3 !== void 0 ? _search$get3 : ""
863
+ gid: search.get("gid") ?? "",
864
+ range: search.get("range") ?? "",
865
+ rangeid: search.get("rangeid") ?? ""
867
866
  };
868
867
  if (searchObj.range && searchObj.gid) {
869
868
  const subUnitId = searchObj.gid;
@@ -1076,12 +1075,11 @@ let SheetsHyperLinkRichTextRefRangeController = class SheetsHyperLinkRichTextRef
1076
1075
  const workbook = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET);
1077
1076
  if (!workbook) return null;
1078
1077
  if (payload && payload.startsWith("#")) {
1079
- var _search$get, _search$get2, _search$get3;
1080
1078
  const search = new URLSearchParams(payload.slice(1));
1081
1079
  const searchObj = {
1082
- gid: (_search$get = search.get("gid")) !== null && _search$get !== void 0 ? _search$get : "",
1083
- range: (_search$get2 = search.get("range")) !== null && _search$get2 !== void 0 ? _search$get2 : "",
1084
- rangeid: (_search$get3 = search.get("rangeid")) !== null && _search$get3 !== void 0 ? _search$get3 : ""
1080
+ gid: search.get("gid") ?? "",
1081
+ range: search.get("range") ?? "",
1082
+ rangeid: search.get("rangeid") ?? ""
1085
1083
  };
1086
1084
  if (searchObj.range && searchObj.gid) {
1087
1085
  const subUnitId = searchObj.gid;
@@ -1463,13 +1461,12 @@ let SheetsHyperLinkParserService = class SheetsHyperLinkParserService {
1463
1461
  }
1464
1462
  parseHyperLink(urlStr) {
1465
1463
  if (urlStr.startsWith("#")) {
1466
- var _search$get, _search$get2, _search$get3, _search$get4;
1467
1464
  const search = new URLSearchParams(urlStr.slice(1));
1468
1465
  const searchObj = {
1469
- gid: (_search$get = search.get("gid")) !== null && _search$get !== void 0 ? _search$get : "",
1470
- range: (_search$get2 = search.get("range")) !== null && _search$get2 !== void 0 ? _search$get2 : "",
1471
- rangeid: (_search$get3 = search.get("rangeid")) !== null && _search$get3 !== void 0 ? _search$get3 : "",
1472
- unitid: (_search$get4 = search.get("unitid")) !== null && _search$get4 !== void 0 ? _search$get4 : ""
1466
+ gid: search.get("gid") ?? "",
1467
+ range: search.get("range") ?? "",
1468
+ rangeid: search.get("rangeid") ?? "",
1469
+ unitid: search.get("unitid") ?? ""
1473
1470
  };
1474
1471
  const urlInfo = this._getURLName(searchObj);
1475
1472
  return {
@@ -1486,7 +1483,6 @@ let SheetsHyperLinkParserService = class SheetsHyperLinkParserService {
1486
1483
  };
1487
1484
  }
1488
1485
  _getURLName(params) {
1489
- var _sheet$getName;
1490
1486
  const { gid, range, rangeid, unitid } = params;
1491
1487
  const workbook = unitid ? this._univerInstanceService.getUnit(unitid, UniverInstanceType.UNIVER_SHEET) : this._univerInstanceService.getCurrentUnitOfType(UniverInstanceType.UNIVER_SHEET);
1492
1488
  const invalidLink = {
@@ -1495,7 +1491,7 @@ let SheetsHyperLinkParserService = class SheetsHyperLinkParserService {
1495
1491
  };
1496
1492
  if (!workbook) return invalidLink;
1497
1493
  const sheet = gid ? workbook.getSheetBySheetId(gid) : workbook.getActiveSheet();
1498
- const sheetName = (_sheet$getName = sheet === null || sheet === void 0 ? void 0 : sheet.getName()) !== null && _sheet$getName !== void 0 ? _sheet$getName : "";
1494
+ const sheetName = (sheet === null || sheet === void 0 ? void 0 : sheet.getName()) ?? "";
1499
1495
  if (range) {
1500
1496
  if (!sheet) return invalidLink;
1501
1497
  const rangeObj = deserializeRangeWithSheet(range).range;
@@ -1565,7 +1561,7 @@ _defineProperty(UniverSheetsHyperLinkPlugin, "packageName", name);
1565
1561
  _defineProperty(UniverSheetsHyperLinkPlugin, "version", version);
1566
1562
  _defineProperty(UniverSheetsHyperLinkPlugin, "type", UniverInstanceType.UNIVER_SHEET);
1567
1563
  UniverSheetsHyperLinkPlugin = __decorate([
1568
- DependentOn(UniverSheetsPlugin),
1564
+ DependentOn(UniverFormulaEnginePlugin, UniverSheetsPlugin),
1569
1565
  __decorateParam(1, Inject(Injector)),
1570
1566
  __decorateParam(2, IConfigService)
1571
1567
  ], UniverSheetsHyperLinkPlugin);
package/lib/umd/facade.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/engine-formula"),require("@univerjs/sheets-hyper-link"),require("@univerjs/sheets/facade"),require("@univerjs/core"),require("@univerjs/core/facade")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/engine-formula`,`@univerjs/sheets-hyper-link`,`@univerjs/sheets/facade`,`@univerjs/core`,`@univerjs/core/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsHyperLinkFacade={},e.UniverEngineFormula,e.UniverSheetsHyperLink,e.UniverSheetsFacade,e.UniverCore,e.UniverCoreFacade))})(this,function(e,t,n,r,i,a){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var o=class extends r.FWorkbook{getUrlOfDefineName(e){let r=this._injector.get(t.IDefinedNamesService),i=this._injector.get(n.SheetsHyperLinkParserService),a=r.getValueByName(this._workbook.getUnitId(),e);if(!a)throw Error(`Defined name "${e}" does not exist.`);if(a.formulaOrRefString.startsWith(t.operatorToken.EQUALS))throw Error(`Defined name "${e}" is not a reference range, cannot be converted to hyperlink.`);return i.buildHyperLink(a.id)}parseSheetHyperlink(e){return this._injector.get(n.SheetsHyperLinkParserService).parseHyperLink(e)}};r.FWorkbook.extend(o);var s=class extends r.FWorksheet{getUrl(){return this._injector.get(n.SheetsHyperLinkParserService).buildHyperLink(null,this._worksheet.getSheetId())}};r.FWorksheet.extend(s);var c=class extends r.FRange{setHyperLink(e,t){return this._commandService.executeCommand(n.AddHyperLinkCommand.id,{unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),link:{id:(0,i.generateRandomId)(),row:this._range.startRow,column:this._range.startColumn,payload:e,display:t}})}getHyperLinks(){let e=[];return this.forEach((t,n,r)=>{var a,o;if(!r.p)return;let s=(a=(o=r.p.body)==null||(o=o.customRanges)==null?void 0:o.filter(e=>e.rangeType===i.CustomRangeType.HYPERLINK))==null?[]:a;if(s.length>0){var c,l,u;let a=(c=r.p)==null||(c=c.body)==null?void 0:c.dataStream,{rangeId:o,properties:d,startIndex:f,endIndex:p}=s[0],m=(l=d==null?void 0:d.url)==null?``:l,h=(u=a==null?void 0:a.slice(f,p+1).replaceAll(i.DataStreamTreeTokenType.CUSTOM_RANGE_START,``).replaceAll(i.DataStreamTreeTokenType.CUSTOM_RANGE_END,``))==null?``:u;e.push({id:`${o}`,row:t,column:n,url:m,label:h})}}),e}updateHyperLink(e,t){let r=this.getHyperLinks().find(e=>e.row===this._range.startRow&&e.column===this._range.startColumn);if(!r)return Promise.reject(Error(`No hyperlink found in the top left cell of the range`));let{id:i,row:a,column:o}=r;return this._commandService.executeCommand(n.UpdateHyperLinkCommand.id,{unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),id:i,row:a,column:o,payload:{payload:e,display:t}})}cancelHyperLink(e){if(e){let{id:t,row:r,column:i}=e;return this._commandService.syncExecuteCommand(n.CancelHyperLinkCommand.id,{unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),id:t,row:r,column:i})}else{let e=this.getHyperLinks();return e.length===0?!0:e.every(e=>{let{id:t,row:r,column:i}=e;return this._commandService.syncExecuteCommand(n.CancelHyperLinkCommand.id,{unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),id:t,row:r,column:i})})}}getUrl(){return this._injector.get(n.SheetsHyperLinkParserService).buildHyperLink(this.getRange(),this.getSheetId())}};r.FRange.extend(c);var l=class extends a.FEventName{get BeforeSheetLinkAdd(){return`BeforeSheetLinkAdd`}get BeforeSheetLinkCancel(){return`BeforeSheetLinkCancel`}get BeforeSheetLinkUpdate(){return`BeforeSheetLinkUpdate`}};a.FEventName.extend(l);var u=class extends a.FUniver{_initialize(e){let t=e.get(i.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetLinkAdd,()=>t.beforeCommandExecuted(e=>{if(e.id!==n.AddHyperLinkCommand.id)return;let t=e.params,r=this.getSheetCommandTarget(t);if(!r)return;let{workbook:a,worksheet:o}=r,{link:s}=t,{row:c,column:l}=s,u={workbook:a,worksheet:o,row:c,col:l,link:s};if(this.fireEvent(this.Event.BeforeSheetLinkAdd,u),u.cancel)throw new i.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetLinkUpdate,()=>t.beforeCommandExecuted(e=>{if(e.id!==n.UpdateHyperLinkCommand.id)return;let t=e.params,r=this.getSheetCommandTarget(t);if(!r)return;let{workbook:a,worksheet:o}=r,{row:s,column:c,id:l,payload:u}=t,d={workbook:a,worksheet:o,row:s,column:c,id:l,payload:u};if(this.fireEvent(this.Event.BeforeSheetLinkUpdate,d),d.cancel)throw new i.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetLinkCancel,()=>t.beforeCommandExecuted(e=>{if(e.id!==n.CancelHyperLinkCommand.id)return;let t=e.params,r=this.getSheetCommandTarget(t);if(!r)return;let{workbook:a,worksheet:o}=r,{row:s,column:c,id:l}=t,u={workbook:a,worksheet:o,row:s,column:c,id:l};if(this.fireEvent(this.Event.BeforeSheetLinkCancel,u),u.cancel)throw new i.CanceledError})))}};a.FUniver.extend(u),e.FWorkbookHyperlinkMixin=o});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/engine-formula"),require("@univerjs/sheets-hyper-link"),require("@univerjs/sheets/facade"),require("@univerjs/core"),require("@univerjs/core/facade")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/engine-formula`,`@univerjs/sheets-hyper-link`,`@univerjs/sheets/facade`,`@univerjs/core`,`@univerjs/core/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsHyperLinkFacade={},e.UniverEngineFormula,e.UniverSheetsHyperLink,e.UniverSheetsFacade,e.UniverCore,e.UniverCoreFacade))})(this,function(e,t,n,r,i,a){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var o=class extends r.FWorkbook{getUrlOfDefineName(e){let r=this._injector.get(t.IDefinedNamesService),i=this._injector.get(n.SheetsHyperLinkParserService),a=r.getValueByName(this._workbook.getUnitId(),e);if(!a)throw Error(`Defined name "${e}" does not exist.`);if(a.formulaOrRefString.startsWith(t.operatorToken.EQUALS))throw Error(`Defined name "${e}" is not a reference range, cannot be converted to hyperlink.`);return i.buildHyperLink(a.id)}parseSheetHyperlink(e){return this._injector.get(n.SheetsHyperLinkParserService).parseHyperLink(e)}};r.FWorkbook.extend(o);var s=class extends r.FWorksheet{getUrl(){return this._injector.get(n.SheetsHyperLinkParserService).buildHyperLink(null,this._worksheet.getSheetId())}};r.FWorksheet.extend(s);var c=class extends r.FRange{setHyperLink(e,t){return this._commandService.executeCommand(n.AddHyperLinkCommand.id,{unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),link:{id:(0,i.generateRandomId)(),row:this._range.startRow,column:this._range.startColumn,payload:e,display:t}})}getHyperLinks(){let e=[];return this.forEach((t,n,r)=>{var a;if(!r.p)return;let o=((a=r.p.body)==null||(a=a.customRanges)==null?void 0:a.filter(e=>e.rangeType===i.CustomRangeType.HYPERLINK))??[];if(o.length>0){var s;let a=(s=r.p)==null||(s=s.body)==null?void 0:s.dataStream,{rangeId:c,properties:l,startIndex:u,endIndex:d}=o[0],f=(l==null?void 0:l.url)??``,p=(a==null?void 0:a.slice(u,d+1).replaceAll(i.DataStreamTreeTokenType.CUSTOM_RANGE_START,``).replaceAll(i.DataStreamTreeTokenType.CUSTOM_RANGE_END,``))??``;e.push({id:`${c}`,row:t,column:n,url:f,label:p})}}),e}updateHyperLink(e,t){let r=this.getHyperLinks().find(e=>e.row===this._range.startRow&&e.column===this._range.startColumn);if(!r)return Promise.reject(Error(`No hyperlink found in the top left cell of the range`));let{id:i,row:a,column:o}=r;return this._commandService.executeCommand(n.UpdateHyperLinkCommand.id,{unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),id:i,row:a,column:o,payload:{payload:e,display:t}})}cancelHyperLink(e){if(e){let{id:t,row:r,column:i}=e;return this._commandService.syncExecuteCommand(n.CancelHyperLinkCommand.id,{unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),id:t,row:r,column:i})}else{let e=this.getHyperLinks();return e.length===0||e.every(e=>{let{id:t,row:r,column:i}=e;return this._commandService.syncExecuteCommand(n.CancelHyperLinkCommand.id,{unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId(),id:t,row:r,column:i})})}}getUrl(){return this._injector.get(n.SheetsHyperLinkParserService).buildHyperLink(this.getRange(),this.getSheetId())}};r.FRange.extend(c);var l=class extends a.FEventName{get BeforeSheetLinkAdd(){return`BeforeSheetLinkAdd`}get BeforeSheetLinkCancel(){return`BeforeSheetLinkCancel`}get BeforeSheetLinkUpdate(){return`BeforeSheetLinkUpdate`}};a.FEventName.extend(l);var u=class extends a.FUniver{_initialize(e){let t=e.get(i.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetLinkAdd,()=>t.beforeCommandExecuted(e=>{if(e.id!==n.AddHyperLinkCommand.id)return;let t=e.params,r=this.getSheetCommandTarget(t);if(!r)return;let{workbook:a,worksheet:o}=r,{link:s}=t,{row:c,column:l}=s,u={workbook:a,worksheet:o,row:c,col:l,link:s};if(this.fireEvent(this.Event.BeforeSheetLinkAdd,u),u.cancel)throw new i.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetLinkUpdate,()=>t.beforeCommandExecuted(e=>{if(e.id!==n.UpdateHyperLinkCommand.id)return;let t=e.params,r=this.getSheetCommandTarget(t);if(!r)return;let{workbook:a,worksheet:o}=r,{row:s,column:c,id:l,payload:u}=t,d={workbook:a,worksheet:o,row:s,column:c,id:l,payload:u};if(this.fireEvent(this.Event.BeforeSheetLinkUpdate,d),d.cancel)throw new i.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetLinkCancel,()=>t.beforeCommandExecuted(e=>{if(e.id!==n.CancelHyperLinkCommand.id)return;let t=e.params,r=this.getSheetCommandTarget(t);if(!r)return;let{workbook:a,worksheet:o}=r,{row:s,column:c,id:l}=t,u={workbook:a,worksheet:o,row:s,column:c,id:l};if(this.fireEvent(this.Event.BeforeSheetLinkCancel,u),u.cancel)throw new i.CanceledError})))}};a.FUniver.extend(u),e.FWorkbookHyperlinkMixin=o});
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/sheets"),require("rxjs"),require("@univerjs/engine-formula")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/sheets`,`rxjs`,`@univerjs/engine-formula`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsHyperLink={},e.UniverCore,e.UniverDocs,e.UniverSheets,e.rxjs,e.UniverEngineFormula))})(this,function(e,t,n,r,i,a){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function o(e){"@babel/helpers - typeof";return o=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},o(e)}function s(e,t){if(o(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(o(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function c(e){var t=s(e,`string`);return o(t)==`symbol`?t:t+``}function l(e,t,n){return(t=c(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){return function(n,r){t(n,r,e)}}function d(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let f=class extends t.Disposable{constructor(e){super(),this._univerInstanceService=e,l(this,`_linkUpdate$`,new i.Subject),l(this,`linkUpdate$`,this._linkUpdate$.asObservable()),l(this,`_linkMap`,new Map),l(this,`_linkPositionMap`,new Map),this.disposeWithMe({dispose:()=>{this._linkUpdate$.complete()}})}_ensureMap(e,n){let r=this._linkMap.get(e);r||(r=new Map,this._linkMap.set(e,r));let i=r.get(n);i||(i=new t.ObjectMatrix,r.set(n,i));let a=this._linkPositionMap.get(e);a||(a=new Map,this._linkPositionMap.set(e,a));let o=a.get(n);return o||(o=new Map,a.set(n,o)),{matrix:i,positionMap:o}}addHyperLink(e,t,n){let{matrix:r,positionMap:i}=this._ensureMap(e,t);return r.setValue(n.row,n.column,n),i.set(n.id,{row:n.row,column:n.column,link:n}),this._linkUpdate$.next({unitId:e,subUnitId:t,payload:n,type:`add`}),!0}updateHyperLink(e,t,n,r,i=!1){let{matrix:a,positionMap:o}=this._ensureMap(e,t),s=o.get(n);if(!s)return!0;let c=a.getValue(s.row,s.column);return c?(Object.assign(c,r),this._linkUpdate$.next({unitId:e,subUnitId:t,payload:{display:c.display,payload:c.payload},id:n,type:`update`,silent:i}),!0):!0}updateHyperLinkRef(e,t,n,r,i=!1){let{matrix:a,positionMap:o}=this._ensureMap(e,t),s=o.get(n);if(!s)return!0;let c=a.getValue(s.row,s.column);return!c||c.id!==n?c=s.link:a.realDeleteValue(s.row,s.column),Object.assign(c,r),o.set(n,{...r,link:c}),a.setValue(r.row,r.column,c),this._linkUpdate$.next({unitId:e,subUnitId:t,payload:r,id:n,type:`updateRef`,silent:i}),!0}removeHyperLink(e,t,n){let{matrix:r,positionMap:i}=this._ensureMap(e,t),a=i.get(n);if(!a)return!1;i.delete(n);let o=r.getValue(a.row,a.column);return o&&o.id===n&&r.realDeleteValue(a.row,a.column),this._linkUpdate$.next({unitId:e,subUnitId:t,payload:a.link,type:`remove`}),!0}getHyperLink(e,t,n){let{matrix:r,positionMap:i}=this._ensureMap(e,t),a=i.get(n);if(a)return r.getValue(a.row,a.column)}getHyperLinkByLocation(e,t,n,r){let{matrix:i}=this._ensureMap(e,t);return i.getValue(n,r)}getHyperLinkByLocationSync(e,n,r,i){var a,o,s,c;let{matrix:l}=this._ensureMap(e,n),u=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET),d=u==null||(a=u.getSheetBySheetId(n))==null?void 0:a.getCellRaw(r,i),f=((o=(s=d==null?void 0:d.v)==null?d==null||(c=d.p)==null||(c=c.body)==null?void 0:c.dataStream.slice(0,-2):s)==null?``:o).toString(),p=l.getValue(r,i);if(p)return{...p,display:f}}getSubUnit(e,t){let{matrix:n}=this._ensureMap(e,t),r=[];return n.forValue((e,t,n)=>{n&&r.push(n)}),r}getUnit(e){let t=this._linkMap.get(e);return t?Array.from(t.keys()).map(t=>({unitId:e,subUnitId:t,links:this.getSubUnit(e,t)})):[]}deleteUnit(e){let t=this.getUnit(e);this._linkMap.delete(e),this._linkPositionMap.delete(e),this._linkUpdate$.next({type:`unload`,unitId:e,unitLinks:t})}getAll(){return Array.from(this._linkMap.keys()).map(e=>this.getUnit(e))}};f=d([u(0,t.IUniverInstanceService)],f);let p={type:t.CommandType.MUTATION,id:`sheets.mutation.add-hyper-link`,handler(e,t){if(!t)return!1;let n=e.get(f),{unitId:r,subUnitId:i,link:a}=t;return n.addHyperLink(r,i,a)}},m={type:t.CommandType.MUTATION,id:`sheets.mutation.remove-hyper-link`,handler(e,t){if(!t)return!1;let n=e.get(f),{unitId:r,subUnitId:i,id:a}=t;return n.removeHyperLink(r,i,a)}},h={type:t.CommandType.COMMAND,id:`sheets.command.add-hyper-link`,async handler(e,n){if(!n)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(t.IUniverInstanceService),s=e.get(f),c=e.get(r.SheetInterceptorService),l=(0,r.getSheetCommandTarget)(o,n);if(!l)return!1;let{unitId:u,subUnitId:d,workbook:h,worksheet:g}=l,{link:_}=n,{payload:v,display:y,row:b,column:x,id:S}=_,C=g.getCell(b,x),w=g.getBlankCellDocumentModel(C,b,x),T=w.documentModel.getSnapshot(),E=t.Tools.deepClone(T.body);if(!E)return!1;let D;if(D=y?t.BuildTextUtils.selection.replace({selection:{startOffset:0,endOffset:E.dataStream.length-2,collapsed:E.dataStream.length-2==0},body:{dataStream:`${y}`,customRanges:[{startIndex:0,endIndex:y.length-1,rangeType:t.CustomRangeType.HYPERLINK,rangeId:S,properties:{url:v}}]},doc:w.documentModel}):t.BuildTextUtils.customRange.add({body:E,ranges:[{startOffset:0,endOffset:E.dataStream.length-2,collapsed:!1}],rangeId:S,rangeType:t.CustomRangeType.HYPERLINK,properties:{url:v,refId:S}}),!D)return!1;let O=t.TextX.apply(E,D.serialize()),k={p:{...T,body:O},t:t.CellValueType.STRING},A=c.onWriteCell(h,g,b,x,k),j={unitId:u,subUnitId:d,cellValue:{[_.row]:{[_.column]:A}}},M={id:r.SetRangeValuesMutation.id,params:j},N=(0,r.SetRangeValuesUndoMutationFactory)(e,j),P={id:r.SetRangeValuesMutation.id,params:N},F=[M],I=[P],L=s.getHyperLinkByLocation(u,d,b,x);return L&&(F.push({id:m.id,params:{unitId:u,subUnitId:d,id:L.id}}),I.push({id:p.id,params:{unitId:u,subUnitId:d,link:L}})),await(0,t.sequenceExecute)(F,i)?await c.onValidateCell(h,g,b,x)===!1?((0,t.sequenceExecute)(I,i),!1):(a.pushUndoRedo({redoMutations:F,undoMutations:I,unitID:u}),!0):!1}},g={id:`sheets.command.add-rich-hyper-link`,type:t.CommandType.COMMAND,handler:async(e,r)=>{if(!r)return!1;let{documentId:i,link:a}=r,o=e.get(t.ICommandService),s=(0,t.generateRandomId)(),{payload:c}=a,l=(0,n.addCustomRangeBySelectionFactory)(e,{unitId:i,rangeId:s,rangeType:t.CustomRangeType.HYPERLINK,properties:{url:c,refId:s}});return l?o.syncExecuteCommand(l.id,l.params):!1}},_={type:t.CommandType.COMMAND,id:`sheets.command.cancel-hyper-link`,handler(e,n){var i;if(!n)return!1;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(f),l=(0,r.getSheetCommandTarget)(s,n);if(!l)return!1;let{row:u,column:d,id:h}=n,{unitId:g,subUnitId:_,worksheet:v}=l,y=v.getCell(u,d);if(!y)return!1;let b=v.getCellDocumentModelWithFormula(y,u,d);if(!(b!=null&&b.documentModel))return!1;let x=t.Tools.deepClone(b.documentModel.getSnapshot()),S=(i=x.body)==null||(i=i.customRanges)==null?void 0:i.find(e=>`${e.rangeId}`===h);if(!S)return!1;let C=t.BuildTextUtils.customRange.delete({documentDataModel:b.documentModel,rangeId:S.rangeId});if(!C)return!1;let w=t.TextX.apply(x.body,C.serialize()),T=[],E=[],D={unitId:g,subUnitId:_,cellValue:{[u]:{[d]:{p:{...x,body:w},t:t.CellValueType.STRING}}}};T.push({id:r.SetRangeValuesMutation.id,params:D});let O=(0,r.SetRangeValuesUndoMutationFactory)(e,D);E.push({id:r.SetRangeValuesMutation.id,params:O});let k=c.getHyperLinkByLocation(g,_,u,d);return k&&(T.push({id:m.id,params:{unitId:g,subUnitId:_,id:k.id}}),E.push({id:p.id,params:{unitId:g,subUnitId:_,link:{...k}}})),(0,t.sequenceExecute)(T,a).result?(o.pushUndoRedo({redoMutations:T,undoMutations:E,unitID:g}),!0):!1}},v={type:t.CommandType.COMMAND,id:`sheets.command.cancel-rich-hyper-link`,handler(e,r){var i;if(!r)return!1;let{id:a,documentId:o}=r,s=e.get(t.ICommandService),c=e.get(t.IUniverInstanceService).getUnit(o,t.UniverInstanceType.UNIVER_DOC),l=c==null||(i=c.getBody())==null||(i=i.customRanges)==null?void 0:i.find(e=>e.rangeId===a),u=null;l&&l.endIndex===c.getBody().dataStream.length-3&&(u={dataStream:` `});let d=(0,n.deleteCustomRangeFactory)(e,{unitId:o,rangeId:a,insert:u});return d?s.syncExecuteCommand(d.id,d.params):!1}},y={type:t.CommandType.COMMAND,id:`sheets.command.update-hyper-link`,async handler(e,i){var a,o;if(!i)return!1;let s=e.get(t.ICommandService),c=e.get(t.IUndoRedoService),l=e.get(t.IUniverInstanceService),u=e.get(f),d=e.get(r.SheetInterceptorService),h=(0,r.getSheetCommandTarget)(l,{unitId:i.unitId,subUnitId:i.subUnitId});if(!h)return!1;let{payload:g,row:_,column:v,id:y}=i,{workbook:b,worksheet:x,unitId:S,subUnitId:C}=h,{payload:w,display:T=``}=g,E=x.getCell(_,v);if(!E)return!1;let D=x.getCellDocumentModelWithFormula(E,_,v);if(!(D!=null&&D.documentModel))return!1;let O=D.documentModel.getSnapshot(),k=(a=O.body)==null||(a=a.customRanges)==null?void 0:a.find(e=>`${e.rangeId}`===y);if(!k)return!1;let A=(0,t.generateRandomId)(),j=(o=(0,t.getBodySlice)(D.documentModel.getBody(),k.startIndex,k.endIndex+1).textRuns)==null?void 0:o[0];j&&(j.ed=T.length+1);let M=(0,n.replaceSelectionFactory)(e,{unitId:S,body:{dataStream:`${T}`,customRanges:[{rangeId:A,rangeType:t.CustomRangeType.HYPERLINK,startIndex:0,endIndex:T.length-1,properties:{url:w}}],textRuns:j?[j]:void 0},selection:{startOffset:k.startIndex,endOffset:k.endIndex+1,collapsed:!1},doc:D.documentModel});if(!M)return!1;let N=t.TextX.apply(t.Tools.deepClone(O.body),M.textX.serialize()),P={p:{...O,body:N},t:t.CellValueType.STRING},F=d.onWriteCell(b,x,_,v,P),I={id:r.SetRangeValuesMutation.id,params:{unitId:S,subUnitId:C,cellValue:{[_]:{[v]:F}}}},L=(0,r.SetRangeValuesUndoMutationFactory)(e,I.params),R={id:r.SetRangeValuesMutation.id,params:L},z=[I],B=[R],V=u.getHyperLinkByLocation(S,C,_,v);return V&&(z.push({id:m.id,params:{unitId:S,subUnitId:C,id:V.id}}),B.push({id:p.id,params:{unitId:S,subUnitId:C,link:V}})),(0,t.sequenceExecute)(z,s).result?await d.onValidateCell(b,x,_,v)===!1?((0,t.sequenceExecute)(B,s),!1):(c.pushUndoRedo({redoMutations:z,undoMutations:B,unitID:S}),!0):!1}},b={type:t.CommandType.COMMAND,id:`sheets.command.update-rich-hyper-link`,handler:(e,r)=>{var i,a,o;if(!r)return!1;let{documentId:s,payload:c,id:l}=r,u=e.get(t.IUniverInstanceService),d=e.get(t.ICommandService),f=u.getUnit(s,t.UniverInstanceType.UNIVER_DOC);if(!f)return!1;let p=(i=f.getBody())==null||(i=i.customRanges)==null?void 0:i.find(e=>e.rangeId===l);if(!p)return!1;let m=(a=r.payload.display)==null?``:a,h=(0,t.generateRandomId)(),g=(o=(0,t.getBodySlice)(f.getBody(),p.startIndex,p.endIndex+1).textRuns)==null?void 0:o[0];g&&(g.ed=m.length+1);let _=(0,n.replaceSelectionFactory)(e,{unitId:s,body:{dataStream:`${m}`,customRanges:[{rangeId:h,rangeType:t.CustomRangeType.HYPERLINK,startIndex:0,endIndex:m.length-1,properties:{url:c.payload}}],textRuns:g?[g]:void 0},selection:{startOffset:p.startIndex,endOffset:p.endIndex+1,collapsed:!1},doc:f});return _?d.syncExecuteCommand(_.id,_.params):!1}},x={type:t.CommandType.MUTATION,id:`sheets.mutation.update-hyper-link`,handler(e,t){if(!t)return!1;let n=e.get(f),{unitId:r,subUnitId:i,payload:a,id:o}=t;return n.updateHyperLink(r,i,o,a,!1)}},S={type:t.CommandType.MUTATION,id:`sheets.mutation.update-hyper-link-ref`,handler(e,t){if(!t)return!1;let n=e.get(f),{unitId:r,subUnitId:i,id:a,row:o,column:s,silent:c}=t;return n.updateHyperLinkRef(r,i,a,{row:o,column:s},c)}},C={type:t.CommandType.MUTATION,id:`sheets.mutation.update-rich-hyper-link`,handler(e,n){var i;if(!n)return!1;let{unitId:a,subUnitId:o,row:s,col:c,id:l,url:u}=n,d=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService),{unitId:a,subUnitId:o});if(!d)return!1;let{worksheet:f}=d,p=f.getCellRaw(s,c),m=p==null||(i=p.p)==null||(i=i.body)==null||(i=i.customRanges)==null?void 0:i.find(e=>e.rangeType===t.CustomRangeType.HYPERLINK&&e.rangeId===l);return m&&(m.properties.url=u),!0}};var w=`@univerjs/sheets-hyper-link`,T=`1.0.0-alpha.7`;let E={},D=class extends t.Disposable{constructor(e,t,n,r){super(),this._refRangeService=e,this._hyperLinkModel=t,this._selectionManagerService=n,this._commandService=r,l(this,`_disposableMap`,new Map),l(this,`_watchDisposableMap`,new Map),l(this,`_rangeDisableMap`,new Map),l(this,`_rangeWatcherMap`,new Map),l(this,`_handlePositionChange`,(e,t,n,r,i)=>{let a={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row};return r?{redos:[{id:S.id,params:{unitId:e,subUnitId:t,id:n.id,row:r.startRow,column:r.startColumn,silent:i}}],undos:[{id:S.id,params:{unitId:e,subUnitId:t,id:n.id,row:a.startRow,column:a.startColumn,silent:i}}]}:{redos:[{id:m.id,params:{unitId:e,subUnitId:t,id:n.id}}],undos:[{id:p.id,params:{unitId:e,subUnitId:t,link:n}}]}}),this._initData(),this._initRefRange()}_registerPosition(e,t,n){let i=n.id,a={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row};this._disposableMap.set(i,this._refRangeService.registerRefRange(a,i=>{let o=(0,r.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests)(a,i,{selectionManagerService:this._selectionManagerService}),s=Array.isArray(o)?o[0]:o;return s&&s.startColumn===a.startColumn&&s.startRow===a.startRow?{undos:[],redos:[]}:this._handlePositionChange(e,t,n,s,!1)},e,t))}_watchPosition(e,n,r){let i=r.id,a={startColumn:r.column,endColumn:r.column,startRow:r.row,endRow:r.row};this._watchDisposableMap.set(i,this._refRangeService.watchRange(e,n,a,(i,a)=>{let{redos:o}=this._handlePositionChange(e,n,r,a,!0);(0,t.sequenceExecuteAsync)(o,this._commandService,{onlyLocal:!0})},!0))}_unregisterPosition(e){let t=this._disposableMap.get(e);t==null||t.dispose(),this._disposableMap.delete(e)}_unwatchPosition(e){let t=this._watchDisposableMap.get(e);t==null||t.dispose(),this._watchDisposableMap.delete(e)}_registerRange(e,n,i,o=!1){if(i.startsWith(`#`)){var s,c,l;let u=new URLSearchParams(i.slice(1)),d={gid:(s=u.get(`gid`))==null?``:s,range:(c=u.get(`range`))==null?``:c,rangeid:(l=u.get(`rangeid`))==null?``:l};if(d.range&&d.gid){let s=d.gid,c=(0,a.deserializeRangeWithSheet)(d.range).range;(0,t.isValidRange)(c)&&d.range!==`err`&&(this._rangeDisableMap.set(n,this._refRangeService.registerRefRange(c,t=>{let o=(0,r.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests)(c,t,{selectionManagerService:this._selectionManagerService});return o&&(0,a.serializeRange)(o)===(0,a.serializeRange)(c)?{redos:[],undos:[]}:{redos:[{id:x.id,params:{unitId:e,subUnitId:s,id:n,payload:{payload:`#gid=${s}&range=${o?(0,a.serializeRange)(o):`err`}`}}}],undos:[{id:x.id,params:{unitId:e,subUnitId:s,id:n,payload:{payload:i}}}]}},e,s)),o||this._rangeWatcherMap.set(n,this._refRangeService.watchRange(e,s,c,(t,r)=>{this._hyperLinkModel.updateHyperLink(e,s,n,{payload:`#gid=${s}&range=${r?(0,a.serializeRange)(r):`err`}`},!0)},!0)))}}}_unregisterRange(e){let t=this._rangeDisableMap.get(e);t==null||t.dispose(),this._rangeDisableMap.delete(e)}_unwatchRange(e){let t=this._rangeWatcherMap.get(e);t==null||t.dispose(),this._rangeWatcherMap.delete(e)}_initData(){this._hyperLinkModel.getAll().forEach(e=>{e.forEach(e=>{let{unitId:t,subUnitId:n,links:r}=e;r.forEach(e=>{this._registerPosition(t,n,e),this._watchPosition(t,n,e),this._registerRange(t,e.id,e.payload)})})})}_initRefRange(){this.disposeWithMe(this._hyperLinkModel.linkUpdate$.subscribe(e=>{switch(e.type){case`add`:this._registerPosition(e.unitId,e.subUnitId,e.payload),this._watchPosition(e.unitId,e.subUnitId,e.payload),this._registerRange(e.unitId,e.payload.id,e.payload.payload);break;case`remove`:this._unregisterPosition(e.payload.id),this._unwatchPosition(e.payload.id),this._unregisterRange(e.payload.id),this._unwatchRange(e.payload.id);break;case`updateRef`:{let{unitId:t,subUnitId:n,id:r,silent:i}=e,a=this._hyperLinkModel.getHyperLink(t,n,r);if(!a)return;this._unregisterPosition(r),this._registerPosition(t,n,a),i||(this._unwatchPosition(r),this._watchPosition(t,n,a));break}case`unload`:{let{unitLinks:t}=e;t.forEach(e=>{let{links:t}=e;t.forEach(e=>{this._unregisterPosition(e.id),this._unwatchPosition(e.id),this._unregisterRange(e.id),this._unwatchRange(e.id)})});break}case`update`:e.silent||this._unwatchRange(e.id),this._unregisterRange(e.id),this._registerRange(e.unitId,e.id,e.payload.payload,e.silent);break}})),this.disposeWithMe((0,t.toDisposable)(()=>{this._disposableMap.forEach(e=>{e.dispose()}),this._disposableMap.clear()}))}};D=d([u(0,(0,t.Inject)(r.RefRangeService)),u(1,(0,t.Inject)(f)),u(2,(0,t.Inject)(r.SheetsSelectionsService)),u(3,t.ICommandService)],D);let O=class extends t.Disposable{constructor(e,t,n){super(),this._sheetInterceptorService=e,this._univerInstanceService=t,this._hyperLinkModel=n,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===r.RemoveSheetCommand.id){var n;let r=e.params,i=r.unitId?this._univerInstanceService.getUnit(r.unitId):this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET);if(!i)return{redos:[],undos:[]};let a=i.getUnitId(),o=r.subUnitId||((n=i.getActiveSheet())==null?void 0:n.getSheetId());if(!o)return{redos:[],undos:[]};let s=this._hyperLinkModel.getSubUnit(a,o);return{redos:s.map(e=>({id:m.id,params:{unitId:a,subUnitId:o,id:e.id}})),undos:s.map(e=>({id:p.id,params:{unitId:a,subUnitId:o,link:e}}))}}return{redos:[],undos:[]}}}))}};O=d([u(0,(0,t.Inject)(r.SheetInterceptorService)),u(1,t.IUniverInstanceService),u(2,(0,t.Inject)(f))],O);let k=class extends t.Disposable{constructor(e,t,n){super(),this._commandService=e,this._univerInstanceService=t,this._refRangeService=n,l(this,`_refRangeMap`,new Map),this._initWorkbookLoad(),this._initWorkbookUnload(),this._initSetRangesListener()}_enusreMap(e,n){let r=this._refRangeMap.get(e);r||(r=new Map,this._refRangeMap.set(e,r));let i=r.get(n);return i||(i=new t.ObjectMatrix,r.set(n,i)),i}_isLegalRangeUrl(e,n){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!r)return null;if(n&&n.startsWith(`#`)){var i,o,s;let e=new URLSearchParams(n.slice(1)),c={gid:(i=e.get(`gid`))==null?``:i,range:(o=e.get(`range`))==null?``:o,rangeid:(s=e.get(`rangeid`))==null?``:s};if(c.range&&c.gid){let e=c.gid,n=r.getSheetBySheetId(e);if(!n)return null;let i=(0,a.deserializeRangeWithSheet)(c.range).range;if((0,t.isValidRange)(i,n)&&c.range!==`err`)return{range:i,worksheet:n}}}return null}_registerRange(e,n,i,o,s){var c;let l=this._enusreMap(e,n);if(!((c=s.body)==null||(c=c.customRanges)==null)&&c.some(n=>{var r;return n.rangeType===t.CustomRangeType.HYPERLINK&&this._isLegalRangeUrl(e,(r=n.properties)==null?void 0:r.url)})){var u;let c=new t.DisposableCollection,d=!1;(u=s.body)==null||(u=u.customRanges)==null||u.forEach(s=>{if(s.rangeType===t.CustomRangeType.HYPERLINK){var l;let u=(l=s.properties)==null?void 0:l.url,f=this._isLegalRangeUrl(e,u);if(f){let{range:l,worksheet:p}=f;d=!0,c.add(this._refRangeService.registerRefRange(l,c=>{let d=(0,r.handleDefaultRangeChangeWithEffectRefCommands)(l,c);return d&&t.Rectangle.equals(d,l)?{preRedos:[],preUndos:[],redos:[],undos:[]}:{preRedos:[{id:C.id,params:{unitId:e,subUnitId:n,row:i,col:o,id:s.rangeId,url:`#gid=${n}&range=${d?(0,a.serializeRange)(d):`err`}`}}],undos:[{id:C.id,params:{unitId:e,subUnitId:n,row:i,col:o,id:s.rangeId,url:u}}],redos:[]}},p.getUnitId(),p.getSheetId()))}}}),d&&l.setValue(i,o,c)}}_initWorkbookLoad(){let e=e=>{let t=e.getUnitId();e.getSheets().forEach(e=>{let n=e.getSheetId(),r=this._enusreMap(t,n);e.getCellMatrix().forValue((e,i,a)=>{let o=r.getValue(e,i);o&&o.dispose(),a&&a.p&&this._registerRange(t,n,e,i,a.p)})})};this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(t=>{e(t)}),this.disposeWithMe(this._univerInstanceService.unitAdded$.subscribe(n=>{let{unit:r}=n;r.type===t.UniverInstanceType.UNIVER_SHEET&&e(r)}))}_initWorkbookUnload(){this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(e=>{if(e.type===t.UniverInstanceType.UNIVER_SHEET){let t=e,n=t.getUnitId();t.getSheets().forEach(e=>{let t=e.getSheetId();this._enusreMap(n,t).forValue((e,t,n)=>{n&&n.dispose()})}),this._refRangeMap.delete(n)}}))}_initSetRangesListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===r.SetRangeValuesMutation.id){let{unitId:n,subUnitId:r,cellValue:i}=e.params,a=this._enusreMap(n,r);i&&new t.ObjectMatrix(i).forValue((e,t,i)=>{let o=a.getValue(e,t);o&&o.dispose(),i&&i.p&&this._registerRange(n,r,e,t,i.p)})}})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===C.id){let{unitId:t,subUnitId:n,row:i,col:a}=e.params,o=(0,r.getSheetCommandTarget)(this._univerInstanceService,{unitId:t,subUnitId:n}),s=this._enusreMap(t,n).getValue(i,a);if(s&&s.dispose(),o){let{worksheet:e}=o,r=e.getCellRaw(i,a);r&&r.p&&this._registerRange(t,n,i,a,r.p)}}}))}};k=d([u(0,t.ICommandService),u(1,t.IUniverInstanceService),u(2,(0,t.Inject)(r.RefRangeService))],k);let A=class extends t.Disposable{constructor(e,t,n,r){super(),this._sheetInterceptorService=e,this._hyperLinkModel=t,this._selectionManagerService=n,this._univerInstanceService=r,this._initCommandInterceptor(),this._initAfterEditor()}_initCommandInterceptor(){this._initSetRangeValuesCommandInterceptor(),this._initClearSelectionCommandInterceptor()}_initSetRangeValuesCommandInterceptor(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===r.SetRangeValuesCommand.id){let n=e.params,{unitId:r,subUnitId:i}=n,a=[],o=[];return n.cellValue&&new t.ObjectMatrix(n.cellValue).forValue((e,t)=>{let n=this._hyperLinkModel.getHyperLinkByLocation(r,i,e,t);n&&(a.push({id:m.id,params:{unitId:r,subUnitId:i,id:n.id}}),o.push({id:p.id,params:{unitId:r,subUnitId:i,link:n}}))}),{undos:o,redos:a}}return{redos:[],undos:[]}}}))}_initClearSelectionCommandInterceptor(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===r.ClearSelectionContentCommand.id||e.id===r.ClearSelectionAllCommand.id||e.id===r.ClearSelectionFormatCommand.id){let n=[],i=[],a=this._selectionManagerService.getCurrentLastSelection(),o=(0,r.getSheetCommandTarget)(this._univerInstanceService,e.params);if(a&&o){let{unitId:e,subUnitId:r}=o;t.Range.foreach(a.range,(t,a)=>{let o=this._hyperLinkModel.getHyperLinkByLocation(e,r,t,a);o&&(n.push({id:m.id,params:{unitId:e,subUnitId:r,id:o.id}}),i.push({id:p.id,params:{unitId:e,subUnitId:r,link:o}}))})}return{redos:n,undos:i}}return{redos:[],undos:[]}}}))}_initAfterEditor(){this.disposeWithMe(this._sheetInterceptorService.writeCellInterceptor.intercept(r.AFTER_CELL_EDIT,{handler:(e,n,r)=>{if(!e||e.p)return r(e);if(typeof e.v==`string`&&t.Tools.isLegalUrl(e.v)&&e.v[e.v.length-1]!==` `){let{unitId:i,subUnitId:a,row:o,col:s}=n,c=t.Tools.normalizeUrl(e.v),l=this._univerInstanceService.getUnit(i,t.UniverInstanceType.UNIVER_SHEET),u=l==null?void 0:l.getSheetBySheetId(a);if(!u)return r(e);let d=u.getBlankCellDocumentModel(e,o,s);if(!d.documentModel)return r(e);let f=t.BuildTextUtils.selection.replace({selection:{startOffset:0,endOffset:e.v.length,collapsed:!1},body:{dataStream:`${e.v}`,customRanges:[{startIndex:0,endIndex:e.v.length-1,rangeId:(0,t.generateRandomId)(),rangeType:t.CustomRangeType.HYPERLINK,properties:{url:c}}]},doc:d.documentModel});if(!f)return r(e);let p=d.documentModel.getBody();return t.TextX.apply(p,f.serialize()),r({...e,p:{id:t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,body:p,documentStyle:{pageSize:{width:1/0,height:1/0}}}})}return r(e)}}))}};A=d([u(0,(0,t.Inject)(r.SheetInterceptorService)),u(1,(0,t.Inject)(f)),u(2,(0,t.Inject)(r.SheetsSelectionsService)),u(3,t.IUniverInstanceService)],A);let j=class extends t.Disposable{constructor(e){super(),this._commandService=e,this._registerCommands()}_registerCommands(){[h,y,_,b,v,g,p,x,m,S,C].forEach(e=>{this._commandService.registerCommand(e)})}};j=d([u(0,t.ICommandService)],j);let M=function(e){return e.SHEET=`gid`,e.RANGE=`range`,e.DEFINE_NAME=`rangeid`,e.INVALID=`invalid`,e.URL=`url`,e}({}),N=class{constructor(e,t,n){this._univerInstanceService=e,this._localeService=t,this._definedNamesService=n}buildHyperLink(e,t){if(typeof e==`string`)return`#rangeid=${e}`;let n=`#gid=${t}`;return e&&(n+=`&range=${(0,a.serializeRange)(e)}`),n}parseHyperLink(e){if(e.startsWith(`#`)){var t,n,r,i;let a=new URLSearchParams(e.slice(1)),o={gid:(t=a.get(`gid`))==null?``:t,range:(n=a.get(`range`))==null?``:n,rangeid:(r=a.get(`rangeid`))==null?``:r,unitid:(i=a.get(`unitid`))==null?``:i},s=this._getURLName(o);return{type:s.type,name:s.name,url:e,searchObj:o}}else return{type:`url`,name:e,url:e,searchObj:null}}_getURLName(e){var n;let{gid:r,range:i,rangeid:o,unitid:s}=e,c=s?this._univerInstanceService.getUnit(s,t.UniverInstanceType.UNIVER_SHEET):this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET),l={type:`invalid`,name:this._localeService.t(`sheets-hyper-link.message.refError`)};if(!c)return l;let u=r?c.getSheetBySheetId(r):c.getActiveSheet(),d=(n=u==null?void 0:u.getName())==null?``:n;if(i){if(!u)return l;let e=(0,a.deserializeRangeWithSheet)(i).range;return(0,t.isValidRange)(e,u)&&i!==`err`?{type:`range`,name:(0,a.serializeRangeWithSheet)(d,e)}:l}if(o){let e=this._definedNamesService.getValueById(c.getUnitId(),o);return e?{type:`rangeid`,name:e.formulaOrRefString}:l}if(r){let e=c.getSheetBySheetId(r);return e?{type:`gid`,name:e.getName()}:l}return l}};N=d([u(0,t.IUniverInstanceService),u(1,(0,t.Inject)(t.LocaleService)),u(2,a.IDefinedNamesService)],N);let P=class extends t.Plugin{constructor(e=E,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},E,this._config);this._configService.setConfig(`sheets-hyper-link.config`,i)}onStarting(){(0,t.registerDependencies)(this._injector,[[f],[N],[j],[D],[A],[O],[k]]),(0,t.touchDependencies)(this._injector,[[D],[j],[A],[O],[k]])}};l(P,`pluginName`,`SHEET_HYPER_LINK_PLUGIN`),l(P,`packageName`,w),l(P,`version`,T),l(P,`type`,t.UniverInstanceType.UNIVER_SHEET),P=d([(0,t.DependentOn)(r.UniverSheetsPlugin),u(1,(0,t.Inject)(t.Injector)),u(2,t.IConfigService)],P),e.AddHyperLinkCommand=h,e.AddHyperLinkMutation=p,e.AddRichHyperLinkCommand=g,e.CancelHyperLinkCommand=_,e.CancelRichHyperLinkCommand=v,e.ERROR_RANGE=`err`,Object.defineProperty(e,"HyperLinkModel",{enumerable:!0,get:function(){return f}}),e.RemoveHyperLinkMutation=m,e.SheetHyperLinkType=M,Object.defineProperty(e,"SheetsHyperLinkParserService",{enumerable:!0,get:function(){return N}}),Object.defineProperty(e,"UniverSheetsHyperLinkPlugin",{enumerable:!0,get:function(){return P}}),e.UpdateHyperLinkCommand=y,e.UpdateHyperLinkMutation=x,e.UpdateHyperLinkRefMutation=S,e.UpdateRichHyperLinkCommand=b});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/sheets"),require("rxjs"),require("@univerjs/engine-formula")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/sheets`,`rxjs`,`@univerjs/engine-formula`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsHyperLink={},e.UniverCore,e.UniverDocs,e.UniverSheets,e.rxjs,e.UniverEngineFormula))})(this,function(e,t,n,r,i,a){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function o(e){"@babel/helpers - typeof";return o=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},o(e)}function s(e,t){if(o(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(o(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function c(e){var t=s(e,`string`);return o(t)==`symbol`?t:t+``}function l(e,t,n){return(t=c(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){return function(n,r){t(n,r,e)}}function d(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let f=class extends t.Disposable{constructor(e){super(),this._univerInstanceService=e,l(this,`_linkUpdate$`,new i.Subject),l(this,`linkUpdate$`,this._linkUpdate$.asObservable()),l(this,`_linkMap`,new Map),l(this,`_linkPositionMap`,new Map),this.disposeWithMe({dispose:()=>{this._linkUpdate$.complete()}})}_ensureMap(e,n){let r=this._linkMap.get(e);r||(r=new Map,this._linkMap.set(e,r));let i=r.get(n);i||(i=new t.ObjectMatrix,r.set(n,i));let a=this._linkPositionMap.get(e);a||(a=new Map,this._linkPositionMap.set(e,a));let o=a.get(n);return o||(o=new Map,a.set(n,o)),{matrix:i,positionMap:o}}addHyperLink(e,t,n){let{matrix:r,positionMap:i}=this._ensureMap(e,t);return r.setValue(n.row,n.column,n),i.set(n.id,{row:n.row,column:n.column,link:n}),this._linkUpdate$.next({unitId:e,subUnitId:t,payload:n,type:`add`}),!0}updateHyperLink(e,t,n,r,i=!1){let{matrix:a,positionMap:o}=this._ensureMap(e,t),s=o.get(n);if(!s)return!0;let c=a.getValue(s.row,s.column);return c?(Object.assign(c,r),this._linkUpdate$.next({unitId:e,subUnitId:t,payload:{display:c.display,payload:c.payload},id:n,type:`update`,silent:i}),!0):!0}updateHyperLinkRef(e,t,n,r,i=!1){let{matrix:a,positionMap:o}=this._ensureMap(e,t),s=o.get(n);if(!s)return!0;let c=a.getValue(s.row,s.column);return!c||c.id!==n?c=s.link:a.realDeleteValue(s.row,s.column),Object.assign(c,r),o.set(n,{...r,link:c}),a.setValue(r.row,r.column,c),this._linkUpdate$.next({unitId:e,subUnitId:t,payload:r,id:n,type:`updateRef`,silent:i}),!0}removeHyperLink(e,t,n){let{matrix:r,positionMap:i}=this._ensureMap(e,t),a=i.get(n);if(!a)return!1;i.delete(n);let o=r.getValue(a.row,a.column);return o&&o.id===n&&r.realDeleteValue(a.row,a.column),this._linkUpdate$.next({unitId:e,subUnitId:t,payload:a.link,type:`remove`}),!0}getHyperLink(e,t,n){let{matrix:r,positionMap:i}=this._ensureMap(e,t),a=i.get(n);if(a)return r.getValue(a.row,a.column)}getHyperLinkByLocation(e,t,n,r){let{matrix:i}=this._ensureMap(e,t);return i.getValue(n,r)}getHyperLinkByLocationSync(e,n,r,i){var a,o;let{matrix:s}=this._ensureMap(e,n),c=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET),l=c==null||(a=c.getSheetBySheetId(n))==null?void 0:a.getCellRaw(r,i),u=((l==null?void 0:l.v)??(l==null||(o=l.p)==null||(o=o.body)==null?void 0:o.dataStream.slice(0,-2))??``).toString(),d=s.getValue(r,i);if(d)return{...d,display:u}}getSubUnit(e,t){let{matrix:n}=this._ensureMap(e,t),r=[];return n.forValue((e,t,n)=>{n&&r.push(n)}),r}getUnit(e){let t=this._linkMap.get(e);return t?Array.from(t.keys()).map(t=>({unitId:e,subUnitId:t,links:this.getSubUnit(e,t)})):[]}deleteUnit(e){let t=this.getUnit(e);this._linkMap.delete(e),this._linkPositionMap.delete(e),this._linkUpdate$.next({type:`unload`,unitId:e,unitLinks:t})}getAll(){return Array.from(this._linkMap.keys()).map(e=>this.getUnit(e))}};f=d([u(0,t.IUniverInstanceService)],f);let p={type:t.CommandType.MUTATION,id:`sheets.mutation.add-hyper-link`,handler(e,t){if(!t)return!1;let n=e.get(f),{unitId:r,subUnitId:i,link:a}=t;return n.addHyperLink(r,i,a)}},m={type:t.CommandType.MUTATION,id:`sheets.mutation.remove-hyper-link`,handler(e,t){if(!t)return!1;let n=e.get(f),{unitId:r,subUnitId:i,id:a}=t;return n.removeHyperLink(r,i,a)}},h={type:t.CommandType.COMMAND,id:`sheets.command.add-hyper-link`,async handler(e,n){if(!n)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(t.IUniverInstanceService),s=e.get(f),c=e.get(r.SheetInterceptorService),l=(0,r.getSheetCommandTarget)(o,n);if(!l)return!1;let{unitId:u,subUnitId:d,workbook:h,worksheet:g}=l,{link:_}=n,{payload:v,display:y,row:b,column:x,id:S}=_,C=g.getCell(b,x),w=g.getBlankCellDocumentModel(C,b,x),T=w.documentModel.getSnapshot(),E=t.Tools.deepClone(T.body);if(!E)return!1;let D;if(D=y?t.BuildTextUtils.selection.replace({selection:{startOffset:0,endOffset:E.dataStream.length-2,collapsed:E.dataStream.length-2==0},body:{dataStream:`${y}`,customRanges:[{startIndex:0,endIndex:y.length-1,rangeType:t.CustomRangeType.HYPERLINK,rangeId:S,properties:{url:v}}]},doc:w.documentModel}):t.BuildTextUtils.customRange.add({body:E,ranges:[{startOffset:0,endOffset:E.dataStream.length-2,collapsed:!1}],rangeId:S,rangeType:t.CustomRangeType.HYPERLINK,properties:{url:v,refId:S}}),!D)return!1;let O=t.TextX.apply(E,D.serialize()),k={p:{...T,body:O},t:t.CellValueType.STRING},A=c.onWriteCell(h,g,b,x,k),j={unitId:u,subUnitId:d,cellValue:{[_.row]:{[_.column]:A}}},M={id:r.SetRangeValuesMutation.id,params:j},N=(0,r.SetRangeValuesUndoMutationFactory)(e,j),P={id:r.SetRangeValuesMutation.id,params:N},F=[M],I=[P],L=s.getHyperLinkByLocation(u,d,b,x);return L&&(F.push({id:m.id,params:{unitId:u,subUnitId:d,id:L.id}}),I.push({id:p.id,params:{unitId:u,subUnitId:d,link:L}})),await(0,t.sequenceExecute)(F,i)?await c.onValidateCell(h,g,b,x)===!1?((0,t.sequenceExecute)(I,i),!1):(a.pushUndoRedo({redoMutations:F,undoMutations:I,unitID:u}),!0):!1}},g={id:`sheets.command.add-rich-hyper-link`,type:t.CommandType.COMMAND,handler:async(e,r)=>{if(!r)return!1;let{documentId:i,link:a}=r,o=e.get(t.ICommandService),s=(0,t.generateRandomId)(),{payload:c}=a,l=(0,n.addCustomRangeBySelectionFactory)(e,{unitId:i,rangeId:s,rangeType:t.CustomRangeType.HYPERLINK,properties:{url:c,refId:s}});return l?o.syncExecuteCommand(l.id,l.params):!1}},_={type:t.CommandType.COMMAND,id:`sheets.command.cancel-hyper-link`,handler(e,n){var i;if(!n)return!1;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(f),l=(0,r.getSheetCommandTarget)(s,n);if(!l)return!1;let{row:u,column:d,id:h}=n,{unitId:g,subUnitId:_,worksheet:v}=l,y=v.getCell(u,d);if(!y)return!1;let b=v.getCellDocumentModelWithFormula(y,u,d);if(!(b!=null&&b.documentModel))return!1;let x=t.Tools.deepClone(b.documentModel.getSnapshot()),S=(i=x.body)==null||(i=i.customRanges)==null?void 0:i.find(e=>`${e.rangeId}`===h);if(!S)return!1;let C=t.BuildTextUtils.customRange.delete({documentDataModel:b.documentModel,rangeId:S.rangeId});if(!C)return!1;let w=t.TextX.apply(x.body,C.serialize()),T=[],E=[],D={unitId:g,subUnitId:_,cellValue:{[u]:{[d]:{p:{...x,body:w},t:t.CellValueType.STRING}}}};T.push({id:r.SetRangeValuesMutation.id,params:D});let O=(0,r.SetRangeValuesUndoMutationFactory)(e,D);E.push({id:r.SetRangeValuesMutation.id,params:O});let k=c.getHyperLinkByLocation(g,_,u,d);return k&&(T.push({id:m.id,params:{unitId:g,subUnitId:_,id:k.id}}),E.push({id:p.id,params:{unitId:g,subUnitId:_,link:{...k}}})),(0,t.sequenceExecute)(T,a).result?(o.pushUndoRedo({redoMutations:T,undoMutations:E,unitID:g}),!0):!1}},v={type:t.CommandType.COMMAND,id:`sheets.command.cancel-rich-hyper-link`,handler(e,r){var i;if(!r)return!1;let{id:a,documentId:o}=r,s=e.get(t.ICommandService),c=e.get(t.IUniverInstanceService).getUnit(o,t.UniverInstanceType.UNIVER_DOC),l=c==null||(i=c.getBody())==null||(i=i.customRanges)==null?void 0:i.find(e=>e.rangeId===a),u=null;l&&l.endIndex===c.getBody().dataStream.length-3&&(u={dataStream:` `});let d=(0,n.deleteCustomRangeFactory)(e,{unitId:o,rangeId:a,insert:u});return d?s.syncExecuteCommand(d.id,d.params):!1}},y={type:t.CommandType.COMMAND,id:`sheets.command.update-hyper-link`,async handler(e,i){var a,o;if(!i)return!1;let s=e.get(t.ICommandService),c=e.get(t.IUndoRedoService),l=e.get(t.IUniverInstanceService),u=e.get(f),d=e.get(r.SheetInterceptorService),h=(0,r.getSheetCommandTarget)(l,{unitId:i.unitId,subUnitId:i.subUnitId});if(!h)return!1;let{payload:g,row:_,column:v,id:y}=i,{workbook:b,worksheet:x,unitId:S,subUnitId:C}=h,{payload:w,display:T=``}=g,E=x.getCell(_,v);if(!E)return!1;let D=x.getCellDocumentModelWithFormula(E,_,v);if(!(D!=null&&D.documentModel))return!1;let O=D.documentModel.getSnapshot(),k=(a=O.body)==null||(a=a.customRanges)==null?void 0:a.find(e=>`${e.rangeId}`===y);if(!k)return!1;let A=(0,t.generateRandomId)(),j=(o=(0,t.getBodySlice)(D.documentModel.getBody(),k.startIndex,k.endIndex+1).textRuns)==null?void 0:o[0];j&&(j.ed=T.length+1);let M=(0,n.replaceSelectionFactory)(e,{unitId:S,body:{dataStream:`${T}`,customRanges:[{rangeId:A,rangeType:t.CustomRangeType.HYPERLINK,startIndex:0,endIndex:T.length-1,properties:{url:w}}],textRuns:j?[j]:void 0},selection:{startOffset:k.startIndex,endOffset:k.endIndex+1,collapsed:!1},doc:D.documentModel});if(!M)return!1;let N=t.TextX.apply(t.Tools.deepClone(O.body),M.textX.serialize()),P={p:{...O,body:N},t:t.CellValueType.STRING},F=d.onWriteCell(b,x,_,v,P),I={id:r.SetRangeValuesMutation.id,params:{unitId:S,subUnitId:C,cellValue:{[_]:{[v]:F}}}},L=(0,r.SetRangeValuesUndoMutationFactory)(e,I.params),R={id:r.SetRangeValuesMutation.id,params:L},z=[I],B=[R],V=u.getHyperLinkByLocation(S,C,_,v);return V&&(z.push({id:m.id,params:{unitId:S,subUnitId:C,id:V.id}}),B.push({id:p.id,params:{unitId:S,subUnitId:C,link:V}})),(0,t.sequenceExecute)(z,s).result?await d.onValidateCell(b,x,_,v)===!1?((0,t.sequenceExecute)(B,s),!1):(c.pushUndoRedo({redoMutations:z,undoMutations:B,unitID:S}),!0):!1}},b={type:t.CommandType.COMMAND,id:`sheets.command.update-rich-hyper-link`,handler:(e,r)=>{var i,a;if(!r)return!1;let{documentId:o,payload:s,id:c}=r,l=e.get(t.IUniverInstanceService),u=e.get(t.ICommandService),d=l.getUnit(o,t.UniverInstanceType.UNIVER_DOC);if(!d)return!1;let f=(i=d.getBody())==null||(i=i.customRanges)==null?void 0:i.find(e=>e.rangeId===c);if(!f)return!1;let p=r.payload.display??``,m=(0,t.generateRandomId)(),h=(a=(0,t.getBodySlice)(d.getBody(),f.startIndex,f.endIndex+1).textRuns)==null?void 0:a[0];h&&(h.ed=p.length+1);let g=(0,n.replaceSelectionFactory)(e,{unitId:o,body:{dataStream:`${p}`,customRanges:[{rangeId:m,rangeType:t.CustomRangeType.HYPERLINK,startIndex:0,endIndex:p.length-1,properties:{url:s.payload}}],textRuns:h?[h]:void 0},selection:{startOffset:f.startIndex,endOffset:f.endIndex+1,collapsed:!1},doc:d});return g?u.syncExecuteCommand(g.id,g.params):!1}},x={type:t.CommandType.MUTATION,id:`sheets.mutation.update-hyper-link`,handler(e,t){if(!t)return!1;let n=e.get(f),{unitId:r,subUnitId:i,payload:a,id:o}=t;return n.updateHyperLink(r,i,o,a,!1)}},S={type:t.CommandType.MUTATION,id:`sheets.mutation.update-hyper-link-ref`,handler(e,t){if(!t)return!1;let n=e.get(f),{unitId:r,subUnitId:i,id:a,row:o,column:s,silent:c}=t;return n.updateHyperLinkRef(r,i,a,{row:o,column:s},c)}},C={type:t.CommandType.MUTATION,id:`sheets.mutation.update-rich-hyper-link`,handler(e,n){var i;if(!n)return!1;let{unitId:a,subUnitId:o,row:s,col:c,id:l,url:u}=n,d=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService),{unitId:a,subUnitId:o});if(!d)return!1;let{worksheet:f}=d,p=f.getCellRaw(s,c),m=p==null||(i=p.p)==null||(i=i.body)==null||(i=i.customRanges)==null?void 0:i.find(e=>e.rangeType===t.CustomRangeType.HYPERLINK&&e.rangeId===l);return m&&(m.properties.url=u),!0}};var w=`@univerjs/sheets-hyper-link`,T=`1.0.0-beta.0`;let E={},D=class extends t.Disposable{constructor(e,t,n,r){super(),this._refRangeService=e,this._hyperLinkModel=t,this._selectionManagerService=n,this._commandService=r,l(this,`_disposableMap`,new Map),l(this,`_watchDisposableMap`,new Map),l(this,`_rangeDisableMap`,new Map),l(this,`_rangeWatcherMap`,new Map),l(this,`_handlePositionChange`,(e,t,n,r,i)=>{let a={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row};return r?{redos:[{id:S.id,params:{unitId:e,subUnitId:t,id:n.id,row:r.startRow,column:r.startColumn,silent:i}}],undos:[{id:S.id,params:{unitId:e,subUnitId:t,id:n.id,row:a.startRow,column:a.startColumn,silent:i}}]}:{redos:[{id:m.id,params:{unitId:e,subUnitId:t,id:n.id}}],undos:[{id:p.id,params:{unitId:e,subUnitId:t,link:n}}]}}),this._initData(),this._initRefRange()}_registerPosition(e,t,n){let i=n.id,a={startColumn:n.column,endColumn:n.column,startRow:n.row,endRow:n.row};this._disposableMap.set(i,this._refRangeService.registerRefRange(a,i=>{let o=(0,r.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests)(a,i,{selectionManagerService:this._selectionManagerService}),s=Array.isArray(o)?o[0]:o;return s&&s.startColumn===a.startColumn&&s.startRow===a.startRow?{undos:[],redos:[]}:this._handlePositionChange(e,t,n,s,!1)},e,t))}_watchPosition(e,n,r){let i=r.id,a={startColumn:r.column,endColumn:r.column,startRow:r.row,endRow:r.row};this._watchDisposableMap.set(i,this._refRangeService.watchRange(e,n,a,(i,a)=>{let{redos:o}=this._handlePositionChange(e,n,r,a,!0);(0,t.sequenceExecuteAsync)(o,this._commandService,{onlyLocal:!0})},!0))}_unregisterPosition(e){let t=this._disposableMap.get(e);t==null||t.dispose(),this._disposableMap.delete(e)}_unwatchPosition(e){let t=this._watchDisposableMap.get(e);t==null||t.dispose(),this._watchDisposableMap.delete(e)}_registerRange(e,n,i,o=!1){if(i.startsWith(`#`)){let s=new URLSearchParams(i.slice(1)),c={gid:s.get(`gid`)??``,range:s.get(`range`)??``,rangeid:s.get(`rangeid`)??``};if(c.range&&c.gid){let s=c.gid,l=(0,a.deserializeRangeWithSheet)(c.range).range;(0,t.isValidRange)(l)&&c.range!==`err`&&(this._rangeDisableMap.set(n,this._refRangeService.registerRefRange(l,t=>{let o=(0,r.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests)(l,t,{selectionManagerService:this._selectionManagerService});return o&&(0,a.serializeRange)(o)===(0,a.serializeRange)(l)?{redos:[],undos:[]}:{redos:[{id:x.id,params:{unitId:e,subUnitId:s,id:n,payload:{payload:`#gid=${s}&range=${o?(0,a.serializeRange)(o):`err`}`}}}],undos:[{id:x.id,params:{unitId:e,subUnitId:s,id:n,payload:{payload:i}}}]}},e,s)),o||this._rangeWatcherMap.set(n,this._refRangeService.watchRange(e,s,l,(t,r)=>{this._hyperLinkModel.updateHyperLink(e,s,n,{payload:`#gid=${s}&range=${r?(0,a.serializeRange)(r):`err`}`},!0)},!0)))}}}_unregisterRange(e){let t=this._rangeDisableMap.get(e);t==null||t.dispose(),this._rangeDisableMap.delete(e)}_unwatchRange(e){let t=this._rangeWatcherMap.get(e);t==null||t.dispose(),this._rangeWatcherMap.delete(e)}_initData(){this._hyperLinkModel.getAll().forEach(e=>{e.forEach(e=>{let{unitId:t,subUnitId:n,links:r}=e;r.forEach(e=>{this._registerPosition(t,n,e),this._watchPosition(t,n,e),this._registerRange(t,e.id,e.payload)})})})}_initRefRange(){this.disposeWithMe(this._hyperLinkModel.linkUpdate$.subscribe(e=>{switch(e.type){case`add`:this._registerPosition(e.unitId,e.subUnitId,e.payload),this._watchPosition(e.unitId,e.subUnitId,e.payload),this._registerRange(e.unitId,e.payload.id,e.payload.payload);break;case`remove`:this._unregisterPosition(e.payload.id),this._unwatchPosition(e.payload.id),this._unregisterRange(e.payload.id),this._unwatchRange(e.payload.id);break;case`updateRef`:{let{unitId:t,subUnitId:n,id:r,silent:i}=e,a=this._hyperLinkModel.getHyperLink(t,n,r);if(!a)return;this._unregisterPosition(r),this._registerPosition(t,n,a),i||(this._unwatchPosition(r),this._watchPosition(t,n,a));break}case`unload`:{let{unitLinks:t}=e;t.forEach(e=>{let{links:t}=e;t.forEach(e=>{this._unregisterPosition(e.id),this._unwatchPosition(e.id),this._unregisterRange(e.id),this._unwatchRange(e.id)})});break}case`update`:e.silent||this._unwatchRange(e.id),this._unregisterRange(e.id),this._registerRange(e.unitId,e.id,e.payload.payload,e.silent);break}})),this.disposeWithMe((0,t.toDisposable)(()=>{this._disposableMap.forEach(e=>{e.dispose()}),this._disposableMap.clear()}))}};D=d([u(0,(0,t.Inject)(r.RefRangeService)),u(1,(0,t.Inject)(f)),u(2,(0,t.Inject)(r.SheetsSelectionsService)),u(3,t.ICommandService)],D);let O=class extends t.Disposable{constructor(e,t,n){super(),this._sheetInterceptorService=e,this._univerInstanceService=t,this._hyperLinkModel=n,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===r.RemoveSheetCommand.id){var n;let r=e.params,i=r.unitId?this._univerInstanceService.getUnit(r.unitId):this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET);if(!i)return{redos:[],undos:[]};let a=i.getUnitId(),o=r.subUnitId||((n=i.getActiveSheet())==null?void 0:n.getSheetId());if(!o)return{redos:[],undos:[]};let s=this._hyperLinkModel.getSubUnit(a,o);return{redos:s.map(e=>({id:m.id,params:{unitId:a,subUnitId:o,id:e.id}})),undos:s.map(e=>({id:p.id,params:{unitId:a,subUnitId:o,link:e}}))}}return{redos:[],undos:[]}}}))}};O=d([u(0,(0,t.Inject)(r.SheetInterceptorService)),u(1,t.IUniverInstanceService),u(2,(0,t.Inject)(f))],O);let k=class extends t.Disposable{constructor(e,t,n){super(),this._commandService=e,this._univerInstanceService=t,this._refRangeService=n,l(this,`_refRangeMap`,new Map),this._initWorkbookLoad(),this._initWorkbookUnload(),this._initSetRangesListener()}_enusreMap(e,n){let r=this._refRangeMap.get(e);r||(r=new Map,this._refRangeMap.set(e,r));let i=r.get(n);return i||(i=new t.ObjectMatrix,r.set(n,i)),i}_isLegalRangeUrl(e,n){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!r)return null;if(n&&n.startsWith(`#`)){let e=new URLSearchParams(n.slice(1)),i={gid:e.get(`gid`)??``,range:e.get(`range`)??``,rangeid:e.get(`rangeid`)??``};if(i.range&&i.gid){let e=i.gid,n=r.getSheetBySheetId(e);if(!n)return null;let o=(0,a.deserializeRangeWithSheet)(i.range).range;if((0,t.isValidRange)(o,n)&&i.range!==`err`)return{range:o,worksheet:n}}}return null}_registerRange(e,n,i,o,s){var c;let l=this._enusreMap(e,n);if((c=s.body)!=null&&(c=c.customRanges)!=null&&c.some(n=>{var r;return n.rangeType===t.CustomRangeType.HYPERLINK&&this._isLegalRangeUrl(e,(r=n.properties)==null?void 0:r.url)})){var u;let c=new t.DisposableCollection,d=!1;(u=s.body)==null||(u=u.customRanges)==null||u.forEach(s=>{if(s.rangeType===t.CustomRangeType.HYPERLINK){var l;let u=(l=s.properties)==null?void 0:l.url,f=this._isLegalRangeUrl(e,u);if(f){let{range:l,worksheet:p}=f;d=!0,c.add(this._refRangeService.registerRefRange(l,c=>{let d=(0,r.handleDefaultRangeChangeWithEffectRefCommands)(l,c);return d&&t.Rectangle.equals(d,l)?{preRedos:[],preUndos:[],redos:[],undos:[]}:{preRedos:[{id:C.id,params:{unitId:e,subUnitId:n,row:i,col:o,id:s.rangeId,url:`#gid=${n}&range=${d?(0,a.serializeRange)(d):`err`}`}}],undos:[{id:C.id,params:{unitId:e,subUnitId:n,row:i,col:o,id:s.rangeId,url:u}}],redos:[]}},p.getUnitId(),p.getSheetId()))}}}),d&&l.setValue(i,o,c)}}_initWorkbookLoad(){let e=e=>{let t=e.getUnitId();e.getSheets().forEach(e=>{let n=e.getSheetId(),r=this._enusreMap(t,n);e.getCellMatrix().forValue((e,i,a)=>{let o=r.getValue(e,i);o&&o.dispose(),a&&a.p&&this._registerRange(t,n,e,i,a.p)})})};this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(t=>{e(t)}),this.disposeWithMe(this._univerInstanceService.unitAdded$.subscribe(n=>{let{unit:r}=n;r.type===t.UniverInstanceType.UNIVER_SHEET&&e(r)}))}_initWorkbookUnload(){this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(e=>{if(e.type===t.UniverInstanceType.UNIVER_SHEET){let t=e,n=t.getUnitId();t.getSheets().forEach(e=>{let t=e.getSheetId();this._enusreMap(n,t).forValue((e,t,n)=>{n&&n.dispose()})}),this._refRangeMap.delete(n)}}))}_initSetRangesListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===r.SetRangeValuesMutation.id){let{unitId:n,subUnitId:r,cellValue:i}=e.params,a=this._enusreMap(n,r);i&&new t.ObjectMatrix(i).forValue((e,t,i)=>{let o=a.getValue(e,t);o&&o.dispose(),i&&i.p&&this._registerRange(n,r,e,t,i.p)})}})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===C.id){let{unitId:t,subUnitId:n,row:i,col:a}=e.params,o=(0,r.getSheetCommandTarget)(this._univerInstanceService,{unitId:t,subUnitId:n}),s=this._enusreMap(t,n).getValue(i,a);if(s&&s.dispose(),o){let{worksheet:e}=o,r=e.getCellRaw(i,a);r&&r.p&&this._registerRange(t,n,i,a,r.p)}}}))}};k=d([u(0,t.ICommandService),u(1,t.IUniverInstanceService),u(2,(0,t.Inject)(r.RefRangeService))],k);let A=class extends t.Disposable{constructor(e,t,n,r){super(),this._sheetInterceptorService=e,this._hyperLinkModel=t,this._selectionManagerService=n,this._univerInstanceService=r,this._initCommandInterceptor(),this._initAfterEditor()}_initCommandInterceptor(){this._initSetRangeValuesCommandInterceptor(),this._initClearSelectionCommandInterceptor()}_initSetRangeValuesCommandInterceptor(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===r.SetRangeValuesCommand.id){let n=e.params,{unitId:r,subUnitId:i}=n,a=[],o=[];return n.cellValue&&new t.ObjectMatrix(n.cellValue).forValue((e,t)=>{let n=this._hyperLinkModel.getHyperLinkByLocation(r,i,e,t);n&&(a.push({id:m.id,params:{unitId:r,subUnitId:i,id:n.id}}),o.push({id:p.id,params:{unitId:r,subUnitId:i,link:n}}))}),{undos:o,redos:a}}return{redos:[],undos:[]}}}))}_initClearSelectionCommandInterceptor(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===r.ClearSelectionContentCommand.id||e.id===r.ClearSelectionAllCommand.id||e.id===r.ClearSelectionFormatCommand.id){let n=[],i=[],a=this._selectionManagerService.getCurrentLastSelection(),o=(0,r.getSheetCommandTarget)(this._univerInstanceService,e.params);if(a&&o){let{unitId:e,subUnitId:r}=o;t.Range.foreach(a.range,(t,a)=>{let o=this._hyperLinkModel.getHyperLinkByLocation(e,r,t,a);o&&(n.push({id:m.id,params:{unitId:e,subUnitId:r,id:o.id}}),i.push({id:p.id,params:{unitId:e,subUnitId:r,link:o}}))})}return{redos:n,undos:i}}return{redos:[],undos:[]}}}))}_initAfterEditor(){this.disposeWithMe(this._sheetInterceptorService.writeCellInterceptor.intercept(r.AFTER_CELL_EDIT,{handler:(e,n,r)=>{if(!e||e.p)return r(e);if(typeof e.v==`string`&&t.Tools.isLegalUrl(e.v)&&e.v[e.v.length-1]!==` `){let{unitId:i,subUnitId:a,row:o,col:s}=n,c=t.Tools.normalizeUrl(e.v),l=this._univerInstanceService.getUnit(i,t.UniverInstanceType.UNIVER_SHEET),u=l==null?void 0:l.getSheetBySheetId(a);if(!u)return r(e);let d=u.getBlankCellDocumentModel(e,o,s);if(!d.documentModel)return r(e);let f=t.BuildTextUtils.selection.replace({selection:{startOffset:0,endOffset:e.v.length,collapsed:!1},body:{dataStream:`${e.v}`,customRanges:[{startIndex:0,endIndex:e.v.length-1,rangeId:(0,t.generateRandomId)(),rangeType:t.CustomRangeType.HYPERLINK,properties:{url:c}}]},doc:d.documentModel});if(!f)return r(e);let p=d.documentModel.getBody();return t.TextX.apply(p,f.serialize()),r({...e,p:{id:t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,body:p,documentStyle:{pageSize:{width:1/0,height:1/0}}}})}return r(e)}}))}};A=d([u(0,(0,t.Inject)(r.SheetInterceptorService)),u(1,(0,t.Inject)(f)),u(2,(0,t.Inject)(r.SheetsSelectionsService)),u(3,t.IUniverInstanceService)],A);let j=class extends t.Disposable{constructor(e){super(),this._commandService=e,this._registerCommands()}_registerCommands(){[h,y,_,b,v,g,p,x,m,S,C].forEach(e=>{this._commandService.registerCommand(e)})}};j=d([u(0,t.ICommandService)],j);let M=function(e){return e.SHEET=`gid`,e.RANGE=`range`,e.DEFINE_NAME=`rangeid`,e.INVALID=`invalid`,e.URL=`url`,e}({}),N=class{constructor(e,t,n){this._univerInstanceService=e,this._localeService=t,this._definedNamesService=n}buildHyperLink(e,t){if(typeof e==`string`)return`#rangeid=${e}`;let n=`#gid=${t}`;return e&&(n+=`&range=${(0,a.serializeRange)(e)}`),n}parseHyperLink(e){if(e.startsWith(`#`)){let t=new URLSearchParams(e.slice(1)),n={gid:t.get(`gid`)??``,range:t.get(`range`)??``,rangeid:t.get(`rangeid`)??``,unitid:t.get(`unitid`)??``},r=this._getURLName(n);return{type:r.type,name:r.name,url:e,searchObj:n}}else return{type:`url`,name:e,url:e,searchObj:null}}_getURLName(e){let{gid:n,range:r,rangeid:i,unitid:o}=e,s=o?this._univerInstanceService.getUnit(o,t.UniverInstanceType.UNIVER_SHEET):this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET),c={type:`invalid`,name:this._localeService.t(`sheets-hyper-link.message.refError`)};if(!s)return c;let l=n?s.getSheetBySheetId(n):s.getActiveSheet(),u=(l==null?void 0:l.getName())??``;if(r){if(!l)return c;let e=(0,a.deserializeRangeWithSheet)(r).range;return(0,t.isValidRange)(e,l)&&r!==`err`?{type:`range`,name:(0,a.serializeRangeWithSheet)(u,e)}:c}if(i){let e=this._definedNamesService.getValueById(s.getUnitId(),i);return e?{type:`rangeid`,name:e.formulaOrRefString}:c}if(n){let e=s.getSheetBySheetId(n);return e?{type:`gid`,name:e.getName()}:c}return c}};N=d([u(0,t.IUniverInstanceService),u(1,(0,t.Inject)(t.LocaleService)),u(2,a.IDefinedNamesService)],N);let P=class extends t.Plugin{constructor(e=E,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},E,this._config);this._configService.setConfig(`sheets-hyper-link.config`,i)}onStarting(){(0,t.registerDependencies)(this._injector,[[f],[N],[j],[D],[A],[O],[k]]),(0,t.touchDependencies)(this._injector,[[D],[j],[A],[O],[k]])}};l(P,`pluginName`,`SHEET_HYPER_LINK_PLUGIN`),l(P,`packageName`,w),l(P,`version`,T),l(P,`type`,t.UniverInstanceType.UNIVER_SHEET),P=d([(0,t.DependentOn)(a.UniverFormulaEnginePlugin,r.UniverSheetsPlugin),u(1,(0,t.Inject)(t.Injector)),u(2,t.IConfigService)],P),e.AddHyperLinkCommand=h,e.AddHyperLinkMutation=p,e.AddRichHyperLinkCommand=g,e.CancelHyperLinkCommand=_,e.CancelRichHyperLinkCommand=v,e.ERROR_RANGE=`err`,Object.defineProperty(e,"HyperLinkModel",{enumerable:!0,get:function(){return f}}),e.RemoveHyperLinkMutation=m,e.SheetHyperLinkType=M,Object.defineProperty(e,"SheetsHyperLinkParserService",{enumerable:!0,get:function(){return N}}),Object.defineProperty(e,"UniverSheetsHyperLinkPlugin",{enumerable:!0,get:function(){return P}}),e.UpdateHyperLinkCommand=y,e.UpdateHyperLinkMutation=x,e.UpdateHyperLinkRefMutation=S,e.UpdateRichHyperLinkCommand=b});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/sheets-hyper-link",
3
- "version": "1.0.0-alpha.7",
3
+ "version": "1.0.0-beta.0",
4
4
  "private": false,
5
5
  "description": "Hyperlink model and commands for Univer Sheets.",
6
6
  "author": "DreamNum Co., Ltd. <developer@univer.ai>",
@@ -67,16 +67,16 @@
67
67
  "rxjs": ">=7.0.0"
68
68
  },
69
69
  "dependencies": {
70
- "@univerjs/core": "1.0.0-alpha.7",
71
- "@univerjs/docs": "1.0.0-alpha.7",
72
- "@univerjs/engine-formula": "1.0.0-alpha.7",
73
- "@univerjs/sheets": "1.0.0-alpha.7"
70
+ "@univerjs/core": "1.0.0-beta.0",
71
+ "@univerjs/docs": "1.0.0-beta.0",
72
+ "@univerjs/sheets": "1.0.0-beta.0",
73
+ "@univerjs/engine-formula": "1.0.0-beta.0"
74
74
  },
75
75
  "devDependencies": {
76
76
  "rxjs": "^7.8.2",
77
77
  "typescript": "^6.0.3",
78
78
  "vitest": "^4.1.10",
79
- "@univerjs-infra/shared": "1.0.0-alpha.7"
79
+ "@univerjs-infra/shared": "1.0.0-beta.0"
80
80
  },
81
81
  "scripts": {
82
82
  "test": "vitest run",