devexpress-richedit 24.1.7-build-24288-0102 → 24.1.8-build-24309-0102

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.
Files changed (29) hide show
  1. package/bin/gulpfile.js +1 -1
  2. package/bin/index-custom.js +1 -1
  3. package/bin/localization-builder.js +1 -1
  4. package/bin/nspell-index.js +1 -1
  5. package/bin/nspell.webpack.config.js +1 -1
  6. package/bin/webpack-externals.js +1 -1
  7. package/bin/webpack.config.js +1 -1
  8. package/dist/dx.richedit.d.ts +1 -1
  9. package/dist/dx.richedit.js +136 -63
  10. package/dist/dx.richedit.min.js +2 -2
  11. package/index.d.ts +1 -1
  12. package/index.js +1 -1
  13. package/lib/client/client-rich-edit.js +6 -6
  14. package/lib/client/dialogs/hyperlink-dialog.js +13 -6
  15. package/lib/client/model-api/collections/hyperlink-collection.js +1 -1
  16. package/lib/common/commands/dialogs/dialog-hyperlink-command.js +10 -4
  17. package/lib/common/commands/fields/open-hyperlink-command.js +7 -4
  18. package/lib/common/model/fields/field.d.ts +4 -1
  19. package/lib/common/model/fields/field.js +18 -2
  20. package/lib/common/model/fields/parsers/field-code-parser-hyperlink.js +31 -37
  21. package/lib/common/model/manipulators/document/sub-document-inserter.d.ts +1 -0
  22. package/lib/common/model/manipulators/document/sub-document-inserter.js +4 -0
  23. package/lib/common/model/manipulators/range/remove-interval-operation.d.ts +2 -0
  24. package/lib/common/model/manipulators/range/remove-interval-operation.js +2 -0
  25. package/lib/common/model/manipulators/range-permission-manipulator.d.ts +4 -0
  26. package/lib/common/model/manipulators/range-permission-manipulator.js +35 -0
  27. package/lib/common/utils/utils.d.ts +1 -0
  28. package/lib/common/utils/utils.js +6 -0
  29. package/package.json +3 -3
package/bin/gulpfile.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * DevExpress WebRichEdit (gulpfile.js)
3
- * Version: 24.1.7
3
+ * Version: 24.1.8
4
4
  * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED
5
5
  * License: https://www.devexpress.com/Support/EULAs
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * DevExpress WebRichEdit (index-custom.js)
3
- * Version: 24.1.7
3
+ * Version: 24.1.8
4
4
  * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED
5
5
  * License: https://www.devexpress.com/Support/EULAs
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * DevExpress WebRichEdit (localization-builder.js)
3
- * Version: 24.1.7
3
+ * Version: 24.1.8
4
4
  * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED
5
5
  * License: https://www.devexpress.com/Support/EULAs
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * DevExpress WebRichEdit (nspell-index.js)
3
- * Version: 24.1.7
3
+ * Version: 24.1.8
4
4
  * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED
5
5
  * License: https://www.devexpress.com/Support/EULAs
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * DevExpress WebRichEdit (nspell.webpack.config.js)
3
- * Version: 24.1.7
3
+ * Version: 24.1.8
4
4
  * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED
5
5
  * License: https://www.devexpress.com/Support/EULAs
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * DevExpress WebRichEdit (webpack-externals.js)
3
- * Version: 24.1.7
3
+ * Version: 24.1.8
4
4
  * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED
5
5
  * License: https://www.devexpress.com/Support/EULAs
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * DevExpress WebRichEdit (webpack.config.js)
3
- * Version: 24.1.7
3
+ * Version: 24.1.8
4
4
  * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED
5
5
  * License: https://www.devexpress.com/Support/EULAs
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * DevExpress WebRichEdit (dx.richedit.d.ts)
3
- * Version: 24.1.7
3
+ * Version: 24.1.8
4
4
  * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED
5
5
  * License: https://www.devexpress.com/Support/EULAs
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * DevExpress WebRichEdit (dx.richedit.js)
3
- * Version: 24.1.7
3
+ * Version: 24.1.8
4
4
  * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED
5
5
  * License: https://www.devexpress.com/Support/EULAs
6
6
  */
@@ -10323,6 +10323,12 @@ class UrlUtils {
10323
10323
  catch (_a) { }
10324
10324
  return false;
10325
10325
  }
10326
+ static splitUrlByAnchor(url) {
10327
+ const hashTagPosition = url.indexOf("#");
10328
+ if (hashTagPosition < 0)
10329
+ return [url, ""];
10330
+ return [url.substring(0, hashTagPosition), url.substring(hashTagPosition + 1)];
10331
+ }
10326
10332
  }
10327
10333
  UrlUtils.EmptyPage = "about:blank";
10328
10334
 
@@ -25039,6 +25045,8 @@ class FieldDeletedSubDocumentChange {
25039
25045
  }
25040
25046
  }
25041
25047
 
25048
+ // EXTERNAL MODULE: ./src/common/utils/utils.ts
25049
+ var utils = __webpack_require__(5929);
25042
25050
  ;// CONCATENATED MODULE: ./src/common/model/fields/field.ts
25043
25051
 
25044
25052
 
@@ -25046,6 +25054,7 @@ class FieldDeletedSubDocumentChange {
25046
25054
 
25047
25055
 
25048
25056
 
25057
+
25049
25058
  var FieldNameType;
25050
25059
  (function (FieldNameType) {
25051
25060
  FieldNameType[FieldNameType["None"] = 0] = "None";
@@ -25075,8 +25084,8 @@ class HyperlinkInfo {
25075
25084
  clone() {
25076
25085
  return new HyperlinkInfo(this.uri, this.anchor, this.tip, this.visited);
25077
25086
  }
25078
- getUriPlusAnchor() {
25079
- return this.uri + (this.anchor == "" ? "" : "#" + this.anchor);
25087
+ getUriWithAnchor() {
25088
+ return this.uri + (this.anchor.length > 0 ? "#" + this.anchor : "");
25080
25089
  }
25081
25090
  static getNewCodeText(hyperlinkInfo) {
25082
25091
  return [
@@ -25087,6 +25096,21 @@ class HyperlinkInfo {
25087
25096
  hyperlinkInfo.anchor == "" ? "" : " \\l \"" + hyperlinkInfo.anchor + "\""
25088
25097
  ].join("");
25089
25098
  }
25099
+ isUri() {
25100
+ if (this.uri.length === 0)
25101
+ return false;
25102
+ if (this.uri.startsWith("#"))
25103
+ return false;
25104
+ if (this.isMail())
25105
+ return false;
25106
+ return utils/* UrlUtils */.jE.isValid(this.uri);
25107
+ }
25108
+ isMail() {
25109
+ return this.uri.startsWith("mailto:");
25110
+ }
25111
+ isValid() {
25112
+ return !!(this.uri || this.anchor);
25113
+ }
25090
25114
  }
25091
25115
  class SequenceInfo {
25092
25116
  constructor(identifier, repeats, hidesResult, resets, resetsWith) {
@@ -33625,6 +33649,7 @@ ApplyFieldHyperlinkStyleHistoryItem.mask = CharacterPropertiesMask.UseAll & ~(Ch
33625
33649
 
33626
33650
 
33627
33651
 
33652
+
33628
33653
  class FieldCodeParserHyperlink extends FieldCodeParserClientUpdatingBase {
33629
33654
  get name() { return FieldName.Hyperlink; }
33630
33655
  parseCodeCurrentFieldInternal(_responce) {
@@ -33636,55 +33661,48 @@ class FieldCodeParserHyperlink extends FieldCodeParserClientUpdatingBase {
33636
33661
  return true;
33637
33662
  }
33638
33663
  fillResult() {
33639
- var field = this.getTopField();
33640
- var text = this.parameterInfoList[0] ? this.parameterInfoList[0].text : "";
33641
- var newHyperlinkInfo = this.updateHyperlinkInfo(field, text);
33664
+ var _a, _b;
33665
+ const field = this.getTopField();
33666
+ const text = (_b = (_a = this.parameterInfoList[0]) === null || _a === void 0 ? void 0 : _a.text) !== null && _b !== void 0 ? _b : "";
33667
+ const newHyperlinkInfo = this.updateHyperlinkInfo(text);
33642
33668
  if (!newHyperlinkInfo) {
33643
- if (!this.modelManager.richOptions.fields.keepHyperlinkResultForInvalidReference)
33669
+ if (!this.modelManager.richOptions.fields.keepHyperlinkResultForInvalidReference) {
33644
33670
  this.removeInterval(this.getTopField().getResultInterval());
33671
+ }
33645
33672
  return true;
33646
33673
  }
33647
- var modelManipulator = this.modelManager.modelManipulator;
33648
- var resultInterval = field.getResultInterval();
33649
- if (resultInterval.length == 0) {
33650
- var resultText = text.length > 0 ? text : "#" + newHyperlinkInfo.anchor;
33651
- var newResultInterval = new fixed.FixedInterval(resultInterval.start, resultText.length);
33674
+ const modelManipulator = this.modelManager.modelManipulator;
33675
+ const resultInterval = field.getResultInterval();
33676
+ if (resultInterval.length === 0) {
33677
+ const resultText = text !== null && text !== void 0 ? text : "#" + newHyperlinkInfo.anchor;
33678
+ const newResultInterval = new fixed.FixedInterval(resultInterval.start, resultText.length);
33652
33679
  this.setInputPositionState();
33653
33680
  this.replaceTextByInterval(resultInterval, resultText);
33654
- this.modelManager.history.addAndRedo(new ApplyFieldHyperlinkStyleHistoryItem(modelManipulator, new SubDocumentInterval(this.subDocument, newResultInterval)));
33681
+ const subDocumentInterval = new SubDocumentInterval(this.subDocument, newResultInterval);
33682
+ const historyItem = new ApplyFieldHyperlinkStyleHistoryItem(modelManipulator, subDocumentInterval);
33683
+ this.modelManager.history.addAndRedo(historyItem);
33655
33684
  }
33656
- this.modelManager.history.addAndRedo(new ChangeFieldHyperlinkInfoHistoryItem(modelManipulator, this.subDocument, field.index, newHyperlinkInfo));
33685
+ const historyItem = new ChangeFieldHyperlinkInfoHistoryItem(modelManipulator, this.subDocument, field.index, newHyperlinkInfo);
33686
+ this.modelManager.history.addAndRedo(historyItem);
33657
33687
  return true;
33658
33688
  }
33659
- updateHyperlinkInfo(field, text) {
33660
- var newHyperlinkInfo = field.isHyperlinkField() ? field.getHyperlinkInfo().clone() : new HyperlinkInfo("", "", "", false);
33689
+ updateHyperlinkInfo(text) {
33690
+ const newHyperlinkInfo = new HyperlinkInfo("", "", "", false);
33691
+ [newHyperlinkInfo.uri, newHyperlinkInfo.anchor] = utils/* UrlUtils */.jE.splitUrlByAnchor(text);
33661
33692
  newHyperlinkInfo.visited = false;
33662
- var tipSwitch;
33663
- var bookmarkSwitch;
33664
- for (var i = 0, switchInfo; switchInfo = this.switchInfoList[i]; i++)
33665
- if (switchInfo.type == FieldSwitchType.FieldSpecific) {
33666
- switch (switchInfo.name.toLocaleUpperCase()) {
33667
- case "O":
33668
- tipSwitch = switchInfo;
33669
- break;
33670
- case "L":
33671
- bookmarkSwitch = switchInfo;
33672
- break;
33673
- }
33693
+ for (const switchInfo of this.switchInfoList) {
33694
+ if (switchInfo.type != FieldSwitchType.FieldSpecific)
33695
+ continue;
33696
+ switch (switchInfo.name.toLocaleUpperCase()) {
33697
+ case "O":
33698
+ newHyperlinkInfo.tip = switchInfo.arg;
33699
+ break;
33700
+ case "L":
33701
+ newHyperlinkInfo.anchor = switchInfo.arg;
33702
+ break;
33674
33703
  }
33675
- newHyperlinkInfo.tip = tipSwitch ? tipSwitch.arg : "";
33676
- var splitted = text.split("#");
33677
- if (splitted.length == 1) {
33678
- newHyperlinkInfo.uri = splitted[0];
33679
- newHyperlinkInfo.anchor = bookmarkSwitch ? bookmarkSwitch.arg : "";
33680
- if (newHyperlinkInfo.uri == "" && newHyperlinkInfo.anchor == "")
33681
- return null;
33682
33704
  }
33683
- else {
33684
- newHyperlinkInfo.uri = splitted[0];
33685
- newHyperlinkInfo.anchor = splitted[1];
33686
- }
33687
- return newHyperlinkInfo;
33705
+ return newHyperlinkInfo.isValid() ? newHyperlinkInfo : null;
33688
33706
  }
33689
33707
  }
33690
33708
 
@@ -41117,6 +41135,7 @@ class SubDocumentInserter {
41117
41135
  this.collectTables();
41118
41136
  this.collectFields();
41119
41137
  this.collectBookmarks();
41138
+ this.collectRangePermission();
41120
41139
  if (this.options.overlapTableCellContent) {
41121
41140
  const lastInsertedParagraph = this.targetSubDocument.getParagraphByPosition(this.currInsertSubDocumentPosition.position - 1);
41122
41141
  const nextParagraph = this.targetSubDocument.getParagraphByPosition(this.currInsertSubDocumentPosition.position);
@@ -41225,6 +41244,9 @@ class SubDocumentInserter {
41225
41244
  collectBookmarks() {
41226
41245
  this.targetModelManipulator.bookmark.insertBookmarksFromSubDocument(this.sourceSubDocument, this.targetSubDocument, this.sourceInterval, this.modelsConstOffset);
41227
41246
  }
41247
+ collectRangePermission() {
41248
+ this.targetModelManipulator.rangePermission.insertRangePermissionsFromSubDocument(this.sourceSubDocument, this.targetSubDocument, this.sourceInterval, this.modelsConstOffset);
41249
+ }
41228
41250
  prependTableByParagraph() {
41229
41251
  if (this.options.insertParagraphMarkBeforeIfStartsWithTable) {
41230
41252
  const tbl = Table.getTableByPosition(this.sourceSubDocument.tables, this.sourceInterval.start, false);
@@ -45495,6 +45517,7 @@ class NonVisualDrawingObjectInfoManipulator extends BaseManipulator {
45495
45517
 
45496
45518
 
45497
45519
 
45520
+
45498
45521
  class RangePermissionManipulator extends BaseManipulator {
45499
45522
  createRangePermission(subDocument, permissionTemplate) {
45500
45523
  subDocument.rangePermissions.push(new RangePermission(subDocument.positionManager, permissionTemplate.interval, permissionTemplate.userName, permissionTemplate.group));
@@ -45507,6 +45530,40 @@ class RangePermissionManipulator extends BaseManipulator {
45507
45530
  subDocument.filterRangePermissions(this.modelManipulator.modelManager.richOptions.documentProtection);
45508
45531
  this.modelManipulator.notifyModelChanged(new RangePermissionsChangedSubDocumentChange(subDocument.id, permissionTemplate));
45509
45532
  }
45533
+ insertRangePermissionsFromSubDocument(fromSubDocument, toSubDocument, fromInterval, modelsConstOffset) {
45534
+ const rangePermissions = fromSubDocument.rangePermissions;
45535
+ let ind = search.SearchUtils.normedInterpolationIndexOf(rangePermissions, (b) => b.start, fromInterval.start);
45536
+ while (rangePermissions[ind] && rangePermissions[ind].start >= fromInterval.start)
45537
+ ind--;
45538
+ ind = Math.max(0, ind);
45539
+ for (let rpm; (rpm = rangePermissions[ind]) && rpm.start <= fromInterval.end; ind++) {
45540
+ if (fromInterval.containsInterval(rpm.interval)) {
45541
+ const template = rpm.constRangePermission;
45542
+ template.interval.start += modelsConstOffset;
45543
+ template.interval.end += modelsConstOffset + 1;
45544
+ this.createRangePermission(toSubDocument, template);
45545
+ }
45546
+ }
45547
+ toSubDocument.rangePermissions = toSubDocument.rangePermissions.sort(ConstRangePermission.comparer);
45548
+ }
45549
+ deleteRangePermissions(subDocument, interval) {
45550
+ const rangePermissions = subDocument.rangePermissions;
45551
+ const result = [];
45552
+ let ind = search.SearchUtils.normedInterpolationIndexOf(rangePermissions, (b) => b.start, interval.start);
45553
+ while (rangePermissions[ind] && rangePermissions[ind].start >= interval.start)
45554
+ ind--;
45555
+ ind = Math.max(0, ind);
45556
+ for (let curr; (curr = rangePermissions[ind]) && curr.interval.start <= interval.end;) {
45557
+ if (interval.containsInterval(curr.interval)) {
45558
+ const tmpl = curr.constRangePermission;
45559
+ this.deleteRangePermission(subDocument, tmpl, ind);
45560
+ result.push(tmpl);
45561
+ }
45562
+ else
45563
+ ind++;
45564
+ }
45565
+ return result;
45566
+ }
45510
45567
  }
45511
45568
 
45512
45569
  ;// CONCATENATED MODULE: ./src/common/model/character/history-runs.ts
@@ -45640,6 +45697,7 @@ class RemoveIntervalOperation {
45640
45697
  this.cellsIterator = new SelectedCellsIterator(this.subDocument, interval);
45641
45698
  const result = new RemoveIntervalOperationResult(this.cellsIterator);
45642
45699
  result.bookmarkItems = this.modelManipulator.bookmark.deleteBookmarks(this.subDocument, interval);
45700
+ result.rangePermssionsItems = this.modelManipulator.rangePermission.deleteRangePermissions(this.subDocument, interval);
45643
45701
  if (this.tryPackSelectionInOneRun(interval, result))
45644
45702
  return result;
45645
45703
  var iterator = this.subDocument.getRunIterator(interval);
@@ -45965,6 +46023,7 @@ class RemoveIntervalOperationResult {
45965
46023
  this.historyRuns = [];
45966
46024
  this.nestingLevels = [];
45967
46025
  this.bookmarkItems = [];
46026
+ this.rangePermssionsItems = [];
45968
46027
  this.cellsIterator = cellsIterator;
45969
46028
  }
45970
46029
  registerItem(historyRun) {
@@ -69148,8 +69207,6 @@ class HtmlThTagImporter extends HtmlTdTagImporter {
69148
69207
  }
69149
69208
  }
69150
69209
 
69151
- // EXTERNAL MODULE: ./src/common/utils/utils.ts
69152
- var utils = __webpack_require__(5929);
69153
69210
  ;// CONCATENATED MODULE: ./src/common/formats/html/import/importers/text-node.ts
69154
69211
 
69155
69212
 
@@ -71305,7 +71362,7 @@ class HyperlinkCollection extends Collection {
71305
71362
  subDocument.insertText(field.getCodeInterval().start, HyperlinkInfo.getNewCodeText(info));
71306
71363
  if (canChangeHyperlinkDisplayText && hyperlinkInfo.text || field.getResultInterval().length == 0) {
71307
71364
  subDocument.deleteText(convertToIntervalApi(field.getResultInterval()));
71308
- subDocument.insertText(field.getResultInterval().start, !hyperlinkInfo.text || hyperlinkInfo.text == "" ? info.getUriPlusAnchor() : hyperlinkInfo.text);
71365
+ subDocument.insertText(field.getResultInterval().start, !hyperlinkInfo.text || hyperlinkInfo.text == "" ? info.getUriWithAnchor() : hyperlinkInfo.text);
71309
71366
  }
71310
71367
  this._processor.modelManager.history.addAndRedo(new ApplyFieldHyperlinkStyleHistoryItem(this._processor.modelManager.modelManipulator, new SubDocumentInterval(this._subDocument, field.getResultInterval())));
71311
71368
  this._processor.modelManager.history.endTransaction();
@@ -128145,8 +128202,14 @@ class DialogHyperlinkCommandBase extends ShowDialogCommandBase {
128145
128202
  var field = this.getState().value;
128146
128203
  if (field) {
128147
128204
  var hyperlinkInfo = field.getHyperlinkInfo();
128148
- parameters.url = hyperlinkInfo.uri;
128149
- parameters.anchor = hyperlinkInfo.anchor;
128205
+ if (hyperlinkInfo.isUri()) {
128206
+ parameters.url = hyperlinkInfo.getUriWithAnchor();
128207
+ parameters.anchor = "";
128208
+ }
128209
+ else {
128210
+ parameters.url = "";
128211
+ parameters.anchor = hyperlinkInfo.anchor;
128212
+ }
128150
128213
  parameters.tooltip = hyperlinkInfo.tip;
128151
128214
  parameters.text = FieldContextMenuHelper.getHyperlinkResultText(options.subDocument, field);
128152
128215
  }
@@ -128159,7 +128222,7 @@ class DialogHyperlinkCommandBase extends ShowDialogCommandBase {
128159
128222
  if (newParams.tooltip == initParams.tooltip && newParams.url == initParams.url && newParams.anchor == initParams.anchor && newParams.text == initParams.text)
128160
128223
  return false;
128161
128224
  var hyperlinkInfo = new HyperlinkInfo(newParams.url, newParams.anchor, newParams.tooltip, false);
128162
- if (hyperlinkInfo.anchor == "" && hyperlinkInfo.uri == "")
128225
+ if (!hyperlinkInfo.isValid())
128163
128226
  return false;
128164
128227
  var modelManipulator = this.modelManipulator;
128165
128228
  var selection = this.selection;
@@ -128181,7 +128244,7 @@ class DialogHyperlinkCommandBase extends ShowDialogCommandBase {
128181
128244
  }
128182
128245
  if (initParams.canChangeDisplayText && newParams.text != initParams.text || field.getResultInterval().length == 0) {
128183
128246
  selection.deprecatedSetSelection(field.getResultStartPosition(), field.getResultEndPosition(), false, selection.keepX, false, false);
128184
- this.control.commandManager.getCommand(RichEditClientCommand.InsertText).execute(this.control.commandManager.isPublicApiCall, new CommandSimpleOptions(this.control, !newParams.text || newParams.text == "" ? hyperlinkInfo.getUriPlusAnchor() : newParams.text));
128247
+ this.control.commandManager.getCommand(RichEditClientCommand.InsertText).execute(this.control.commandManager.isPublicApiCall, new CommandSimpleOptions(this.control, !newParams.text || newParams.text == "" ? hyperlinkInfo.getUriWithAnchor() : newParams.text));
128185
128248
  }
128186
128249
  history.addAndRedo(new ApplyFieldHyperlinkStyleHistoryItem(modelManipulator, new SubDocumentInterval(this.selection.activeSubDocument, field.getResultInterval())));
128187
128250
  selection.deprecatedSetSelection(field.getFieldEndPosition(), field.getFieldEndPosition(), false, selection.keepX, false, false);
@@ -130311,7 +130374,7 @@ class GoToLastDataRecordCommand extends GoToRecordCommandBase {
130311
130374
  }
130312
130375
 
130313
130376
  // EXTERNAL MODULE: ./node_modules/@devexpress/utils/lib/utils/url.js
130314
- var utils_url = __webpack_require__(6795);
130377
+ var url = __webpack_require__(6795);
130315
130378
  ;// CONCATENATED MODULE: ./src/common/commands/fields/hyperlink-command-base.ts
130316
130379
 
130317
130380
 
@@ -130358,12 +130421,15 @@ class OpenHyperlinkCommand extends HyperlinkCommandBase {
130358
130421
  this.history.endTransaction();
130359
130422
  this.aspxForceSendingRequest();
130360
130423
  }
130361
- if (hyperlinkInfo.anchor)
130424
+ if (hyperlinkInfo.isUri()) {
130425
+ let uri = hyperlinkInfo.getUriWithAnchor();
130426
+ if (!utils/* UrlUtils */.jE.isValid(uri))
130427
+ uri = utils/* UrlUtils */.jE.EmptyPage;
130428
+ url/* Url */.R.navigate(uri, "_blank");
130429
+ }
130430
+ else {
130362
130431
  this.control.commandManager.getCommand(RichEditClientCommand.GoToBookmark)
130363
130432
  .execute(this.control.commandManager.isPublicApiCall, new CommandSimpleOptions(this.control, hyperlinkInfo.anchor));
130364
- else {
130365
- const url = utils/* UrlUtils */.jE.isValid(hyperlinkInfo.uri) ? hyperlinkInfo.uri : utils/* UrlUtils */.jE.EmptyPage;
130366
- utils_url/* Url */.R.navigate(url, "_blank");
130367
130433
  }
130368
130434
  return true;
130369
130435
  }
@@ -141436,6 +141502,7 @@ class FontDialog extends DialogBase {
141436
141502
  ;// CONCATENATED MODULE: ./src/client/dialogs/hyperlink-dialog.ts
141437
141503
 
141438
141504
 
141505
+
141439
141506
  class HyperlinkDialog extends DialogBase {
141440
141507
  constructor() {
141441
141508
  super(...arguments);
@@ -141582,13 +141649,19 @@ class HyperlinkDialog extends DialogBase {
141582
141649
  parameters.text = data.text;
141583
141650
  parameters.tooltip = data.tooltip;
141584
141651
  const tabPanelSelectedIndex = this.tabPanel.option('selectedIndex');
141585
- if (tabPanelSelectedIndex == 0)
141586
- parameters.url = data.url;
141587
- else if (tabPanelSelectedIndex == 1)
141588
- parameters.anchor = data.anchor;
141652
+ if (tabPanelSelectedIndex == 0) {
141653
+ [parameters.url, parameters.anchor] = utils/* UrlUtils */.jE.splitUrlByAnchor(data.url);
141654
+ }
141589
141655
  else {
141590
- const subject = data.subject ? this.subjectPrefix + data.subject : '';
141591
- parameters.url = this.mailtoPrefix + data.email + subject;
141656
+ if (tabPanelSelectedIndex == 1) {
141657
+ parameters.url = "";
141658
+ parameters.anchor = data.anchor;
141659
+ }
141660
+ else {
141661
+ const subject = data.subject ? this.subjectPrefix + data.subject : '';
141662
+ parameters.url = this.mailtoPrefix + data.email + subject;
141663
+ parameters.anchor = "";
141664
+ }
141592
141665
  }
141593
141666
  }
141594
141667
  }
@@ -143833,7 +143906,7 @@ class ClientRichEdit {
143833
143906
  this.contextMenuSettings = settings.contextMenuSettings;
143834
143907
  this.fullScreenHelper = new FullScreenHelper(element);
143835
143908
  if (true)
143836
- external_DevExpress_config_default()(JSON.parse(atob('eyJsaWNlbnNlS2V5IjoiZXdvZ0lDSm1iM0p0WVhRaU9pQXhMQW9nSUNKcGJuUmxjbTVoYkZWellXZGxTV1FpT2lBaWNIQktkR3hUTlRaeU1HRjZNV3R4VldwWFNuTXRaeUlLZlE9PS5GSzV0WCtSUkt0akY2Q2NwaExOa0R2V0RCTHVkb0ZrdTN3LzJEMGMxRVlWMXp4KzJEYURkYnA0MGtPbXpKTnBRMXB0TUpiT1NTUm1JVmJaSU5VejRINDE3ejZMTDF4cDRZdWpyL2hQU3RiZlNodkNJMGFmemN4TzhXL1ZaVUJUR2gyZUh6UT09In0=')));
143909
+ external_DevExpress_config_default()(JSON.parse(atob('eyJsaWNlbnNlS2V5IjoiZXdvZ0lDSm1iM0p0WVhRaU9pQXhMQW9nSUNKcGJuUmxjbTVoYkZWellXZGxTV1FpT2lBaWNsQXpXRVkxYm5aUmEyRjVjRTk1UWt4d2RXTlVRU0lLZlE9PS5mRVhyTm1adGMwdWRsdzlOa3hheDBPejFzTEdNU0RwUHBXWGhVdEllc0xvU21lMVhxTC9jZWw2QUtMVVFjVFJERURuN0dRM1k0ZzVMRTlVSGJsK0lUM09zbmpOZnBxYS9nTFY2bmpHbWt2NytLQnVvWWtyTE9LbGtyQjRWQ00rVVZYdDNKZz09In0=')));
143837
143910
  this.prepareElement(element, settings);
143838
143911
  this.initDefaultFontsAndStyles();
143839
143912
  this.initBars(settings.ribbon, settings.fonts);
@@ -144364,11 +144437,11 @@ class ClientRichEdit {
144364
144437
  return this.barHolder.ribbon;
144365
144438
  }
144366
144439
  getLinkType(hyperlinkInfo) {
144367
- if (hyperlinkInfo.anchor)
144368
- return DocumentLinkType.Bookmark;
144369
- if (hyperlinkInfo.uri && hyperlinkInfo.uri.substr(0, 7) === "mailto:")
144440
+ if (hyperlinkInfo.isMail())
144370
144441
  return DocumentLinkType.EmailAddress;
144371
- return DocumentLinkType.Hyperlink;
144442
+ if (hyperlinkInfo.isUri())
144443
+ return DocumentLinkType.Hyperlink;
144444
+ return DocumentLinkType.Bookmark;
144372
144445
  }
144373
144446
  setFullScreenMode() {
144374
144447
  this.fullScreenHelper.prepareFullScreenMode();