devexpress-richedit 25.1.11 → 25.1.12

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 (84) 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.css +0 -1
  9. package/dist/dx.richedit.d.ts +1 -1
  10. package/dist/dx.richedit.js +753 -309
  11. package/dist/dx.richedit.min.js +3 -3
  12. package/index.d.ts +1 -1
  13. package/index.js +1 -1
  14. package/lib/client/api/selection-api.js +2 -2
  15. package/lib/client/client-rich-edit.js +2 -2
  16. package/lib/client/default-localization.js +7 -7
  17. package/lib/client/formats/docx/import/destination/table/cell/table-cell-destination.js +1 -1
  18. package/lib/client/formats/docx/import/importers/range-permission-importer.js +1 -1
  19. package/lib/client/public/nusa/custom-control-registrator.js +1 -1
  20. package/lib/client/public/utils.js +5 -1
  21. package/lib/common/canvas/renderes/common/document-renderer.js +7 -1
  22. package/lib/common/clipboard-content-inserter.js +2 -1
  23. package/lib/common/commands/border-command-options.d.ts +7 -0
  24. package/lib/common/commands/border-command-options.js +8 -0
  25. package/lib/common/commands/dialogs/dialog-border-shading-command.js +14 -7
  26. package/lib/common/commands/dialogs/dialog-table-properties-command.js +1 -1
  27. package/lib/common/commands/fields/create-field-command.js +1 -1
  28. package/lib/common/commands/ruler/ruler-table-commands.js +1 -1
  29. package/lib/common/commands/selection/go-to-line-above-command.js +6 -0
  30. package/lib/common/commands/selection/go-to-line-vertically-command-base.d.ts +5 -1
  31. package/lib/common/commands/selection/go-to-line-vertically-command-base.js +87 -25
  32. package/lib/common/commands/selection/go-to-next-character-command.d.ts +2 -0
  33. package/lib/common/commands/selection/go-to-next-character-command.js +34 -12
  34. package/lib/common/commands/selection/go-to-prev-character-command.d.ts +2 -0
  35. package/lib/common/commands/selection/go-to-prev-character-command.js +33 -12
  36. package/lib/common/commands/selection/select-table-command.d.ts +14 -5
  37. package/lib/common/commands/selection/select-table-command.js +42 -4
  38. package/lib/common/commands/selection/selection-command-base.d.ts +5 -0
  39. package/lib/common/commands/selection/selection-command-base.js +91 -0
  40. package/lib/common/commands/tables/insert-table-cells-with-shift-to-the-vertically-command.js +2 -2
  41. package/lib/common/commands/tables/insert-table-column-commands.js +3 -3
  42. package/lib/common/commands/tables/toggle-table-cells-border-command.d.ts +1 -1
  43. package/lib/common/commands/tables/toggle-table-cells-border-command.js +10 -3
  44. package/lib/common/commands/text/clipboard-commands.js +2 -2
  45. package/lib/common/event-manager.js +14 -7
  46. package/lib/common/formats/html/export/html-export.js +1 -1
  47. package/lib/common/formats/html/model/history/paste-html-data-history-item.js +1 -1
  48. package/lib/common/formats/rtf/export/exporters/table/states/rtf-table-exporter-state-base.js +1 -1
  49. package/lib/common/formats/rtf/import/model/table/rtf-table-cell.js +2 -2
  50. package/lib/common/layout-engine/selection/selection-formatter.js +3 -3
  51. package/lib/common/layout-formatter/box/generator/box-infos-generator.js +1 -1
  52. package/lib/common/layout-formatter/formatter/base-formatter.d.ts +1 -0
  53. package/lib/common/layout-formatter/formatter/base-formatter.js +11 -0
  54. package/lib/common/layout-formatter/row/result.d.ts +1 -1
  55. package/lib/common/layout-formatter/row/result.js +12 -17
  56. package/lib/common/layout-formatter/row/size-engine/row-formatting-info.d.ts +2 -1
  57. package/lib/common/layout-formatter/row/size-engine/row-formatting-info.js +7 -4
  58. package/lib/common/layout-formatter/row/size-engine/row-sizes-manager.js +1 -3
  59. package/lib/common/layout-formatter/table/formatter.js +2 -2
  60. package/lib/common/layout-formatter/table/info/cell-info.js +2 -2
  61. package/lib/common/model/fields/tree-creator.js +4 -2
  62. package/lib/common/model/json/exporters/json-table-exporter.js +1 -1
  63. package/lib/common/model/json/importers/table/json-table-importer.js +1 -1
  64. package/lib/common/model/manipulators/range/create-range-copy-operation.js +5 -5
  65. package/lib/common/model/manipulators/range/remove-interval-operation.js +7 -7
  66. package/lib/common/model/manipulators/tables/insert-table-cell-operation.js +1 -1
  67. package/lib/common/model/manipulators/tables/merge-table-cells-operation.js +7 -7
  68. package/lib/common/model/manipulators/tables/tables-manipulator.js +15 -15
  69. package/lib/common/model/model-checks/position.js +1 -1
  70. package/lib/common/model/tables/main-structures/table-cell.d.ts +1 -1
  71. package/lib/common/model/tables/main-structures/table-cell.js +4 -4
  72. package/lib/common/model/tables/main-structures/table-row.js +1 -1
  73. package/lib/common/mouse-handler/mouse-handler/mouse-handler-text-selection-states.js +2 -2
  74. package/lib/common/rich-utils/debug/chrome-dev-tools-custom-formatters/model/table/table-cell.js +1 -1
  75. package/lib/common/rich-utils/debug/logger/base-logger/log-obj-to-str.js +1 -1
  76. package/lib/common/rich-utils/debug/runtime-test-helper.js +5 -5
  77. package/lib/common/selection/selected-cells-engine.js +2 -2
  78. package/lib/common/selection/selection-state.d.ts +20 -3
  79. package/lib/common/selection/selection-state.js +60 -5
  80. package/lib/common/selection/selection.d.ts +31 -1
  81. package/lib/common/selection/selection.js +84 -2
  82. package/lib/common/selection/table-nav-direction.d.ts +7 -0
  83. package/lib/common/selection/table-nav-direction.js +8 -0
  84. package/package.json +3 -3
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * DevExpress WebRichEdit (dx.richedit.js)
3
- * Version: 25.1.11
3
+ * Version: 25.1.12
4
4
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
5
5
  * License: https://www.devexpress.com/Support/EULAs",
6
6
  */
@@ -22352,7 +22352,7 @@ class JSONTableExporter {
22352
22352
  jsonCell[JSONEnumTableCell.PreferredWidth] = JSONTableWidthUnitConverter.convertToJSON(cell.preferredWidth);
22353
22353
  jsonCell[JSONEnumTableCell.VerticalMerging] = cell.verticalMerging;
22354
22354
  jsonCell[JSONEnumTableCell.StartParagraphPosition] = cell.startParagraphPosition.value;
22355
- jsonCell[JSONEnumTableCell.EndParagraphPosition] = cell.endParagrapPosition.value;
22355
+ jsonCell[JSONEnumTableCell.EndParagraphPosition] = cell.endParagraphPosition.value;
22356
22356
  jsonCells.push(jsonCell);
22357
22357
  }
22358
22358
  }
@@ -23238,10 +23238,10 @@ class TableCell {
23238
23238
  destructor(positionManager) {
23239
23239
  if (this.startParagraphPosition)
23240
23240
  positionManager.unregisterPosition(this.startParagraphPosition);
23241
- if (this.endParagrapPosition)
23242
- positionManager.unregisterPosition(this.endParagrapPosition);
23241
+ if (this.endParagraphPosition)
23242
+ positionManager.unregisterPosition(this.endParagraphPosition);
23243
23243
  }
23244
- get interval() { return fixed.FixedInterval.fromPositions(this.startParagraphPosition.value, this.endParagrapPosition.value); }
23244
+ get interval() { return fixed.FixedInterval.fromPositions(this.startParagraphPosition.value, this.endParagraphPosition.value); }
23245
23245
  get isFirstCellInRow() {
23246
23246
  return this === this.parentRow.cells[0];
23247
23247
  }
@@ -23308,7 +23308,7 @@ class TableCell {
23308
23308
  result.columnSpan = this.columnSpan;
23309
23309
  result.verticalMerging = this.verticalMerging;
23310
23310
  result.startParagraphPosition = subDocument.positionManager.registerPosition(this.startParagraphPosition.value);
23311
- result.endParagrapPosition = subDocument.positionManager.registerPosition(this.endParagrapPosition.value);
23311
+ result.endParagraphPosition = subDocument.positionManager.registerPosition(this.endParagraphPosition.value);
23312
23312
  result.conditionalFormatting = this.conditionalFormatting;
23313
23313
  return result;
23314
23314
  }
@@ -23345,7 +23345,7 @@ class TableRow {
23345
23345
  return this.cells[0].startParagraphPosition.value;
23346
23346
  }
23347
23347
  getEndPosition() {
23348
- return utils_list.ListUtils.last(this.cells).endParagrapPosition.value;
23348
+ return utils_list.ListUtils.last(this.cells).endParagraphPosition.value;
23349
23349
  }
23350
23350
  get interval() { return fixed.FixedInterval.fromPositions(this.getStartPosition(), this.getEndPosition()); }
23351
23351
  getCellColumnIndex(cellIndex) {
@@ -24008,7 +24008,7 @@ class JSONTableImporter {
24008
24008
  newTableCell.preferredWidth = JSONTableWidthUnitConverter.convertFromJSON(jsonCell[JSONEnumTableCell.PreferredWidth]);
24009
24009
  newTableCell.verticalMerging = jsonCell[JSONEnumTableCell.VerticalMerging];
24010
24010
  newTableCell.startParagraphPosition = subDocument.positionManager.registerPosition(jsonCell[JSONEnumTableCell.StartParagraphPosition]);
24011
- newTableCell.endParagrapPosition = subDocument.positionManager.registerPosition(jsonCell[JSONEnumTableCell.EndParagraphPosition]);
24011
+ newTableCell.endParagraphPosition = subDocument.positionManager.registerPosition(jsonCell[JSONEnumTableCell.EndParagraphPosition]);
24012
24012
  return newTableCell;
24013
24013
  }
24014
24014
  static getParentCell(content, tablesMap) {
@@ -28504,7 +28504,7 @@ class PositionChecker {
28504
28504
  for (let row of t.rows) {
28505
28505
  for (let cell of row.cells) {
28506
28506
  this.poss.push(cell.startParagraphPosition);
28507
- this.poss.push(cell.endParagrapPosition);
28507
+ this.poss.push(cell.endParagraphPosition);
28508
28508
  }
28509
28509
  }
28510
28510
  }
@@ -29590,7 +29590,7 @@ class SelectedCellsCalculator {
29590
29590
  const inters = algorithms.IntervalAlgorithms.getIntersection(selInterval, cellInterval);
29591
29591
  if (inters && (inters.length || !selInterval.length && inters.start < cellInterval.end)) {
29592
29592
  this.add(tblPos);
29593
- if (tblPos.cell.endParagrapPosition.value >= selInterval.end) {
29593
+ if (tblPos.cell.endParagraphPosition.value >= selInterval.end) {
29594
29594
  const nextInterval = intervals[++intervalInd];
29595
29595
  if (nextInterval)
29596
29596
  selInterval = boundary/* BoundaryInterval */.e.makeByConstInterval(nextInterval);
@@ -29644,7 +29644,7 @@ class TableSelectionExtender {
29644
29644
  newInterval.expand(new fixed.FixedInterval(newInterval.end, endCell.parentRow.getEndPosition() - newInterval.end));
29645
29645
  return;
29646
29646
  }
29647
- if (startCell != null && newInterval.end == startCell.endParagrapPosition.value) {
29647
+ if (startCell != null && newInterval.end == startCell.endParagraphPosition.value) {
29648
29648
  newInterval.expand(startCell.interval);
29649
29649
  return;
29650
29650
  }
@@ -32811,7 +32811,7 @@ class LogObjToStr {
32811
32811
  result.push(`${prefix}columnSpan: ${cell.columnSpan}`);
32812
32812
  result.push(`${prefix}conditionalFormatting: ${Log.mask(ConditionalTableStyleFormatting, cell.conditionalFormatting)}`);
32813
32813
  result.push(`${prefix}startParagraphPosition: ${cell.startParagraphPosition.value}`);
32814
- result.push(`${prefix}endParagrapPosition: ${cell.endParagrapPosition.value}`);
32814
+ result.push(`${prefix}endParagraphPosition: ${cell.endParagraphPosition.value}`);
32815
32815
  result.push(`${prefix}verticalMerging: ${TableCellMergingState[cell.verticalMerging]}`);
32816
32816
  result.push(`${prefix}preferredWidth: ${LogObjToStr.tableWidthUnit(cell.preferredWidth)}`);
32817
32817
  return result.join("\n");
@@ -34369,8 +34369,10 @@ class FieldsWaitingForUpdate {
34369
34369
  static findName(modelIterator) {
34370
34370
  while (modelIterator.run.getType() == RunType.TextRun && RichUtils.isWhitespace.test(modelIterator.getCurrentChar()) ||
34371
34371
  modelIterator.run.getType() == RunType.ParagraphRun ||
34372
- modelIterator.run.getType() == RunType.SectionRun)
34373
- modelIterator.moveToNextChar();
34372
+ modelIterator.run.getType() == RunType.SectionRun) {
34373
+ if (!modelIterator.moveToNextChar())
34374
+ break;
34375
+ }
34374
34376
  const fieldNameFirstLetterPosition = modelIterator.getAbsolutePosition();
34375
34377
  let fieldName = "";
34376
34378
  do {
@@ -36853,7 +36855,7 @@ class InsertTableCellToTheLeftOperation extends InsertTableCellOperationBase {
36853
36855
  }
36854
36856
  class InsertTableCellToTheRightOperation extends InsertTableCellOperationBase {
36855
36857
  insertTableCellCore(subDocument, pos, inpPos, options) {
36856
- this.modelManager.modelManipulator.paragraph.insertParagraphViaHistory(InsertParagraphManipulatorParams.makeParamsByPosition(new SubDocumentPosition(subDocument, pos.cell.endParagrapPosition.value - 1), inpPos, options.needToSetNextStyle));
36858
+ this.modelManager.modelManipulator.paragraph.insertParagraphViaHistory(InsertParagraphManipulatorParams.makeParamsByPosition(new SubDocumentPosition(subDocument, pos.cell.endParagraphPosition.value - 1), inpPos, options.needToSetNextStyle));
36857
36859
  this.modelManager.history.addAndRedo(new SplitTableCellToTheRightHistoryItem(this.modelManager.modelManipulator, subDocument, pos.table.index, pos.rowIndex, pos.cellIndex, options.canCopyProperties));
36858
36860
  if (pos.cell.verticalMerging !== TableCellMergingState.None)
36859
36861
  this.modelManager.history.addAndRedo(new TableCellVerticalMergingHistoryItem(this.modelManager.modelManipulator, subDocument, pos.table.index, pos.rowIndex, pos.cellIndex + 1, pos.cell.verticalMerging));
@@ -37028,14 +37030,14 @@ class MergeTableCellsOperationBase {
37028
37030
  let isEmptyCell = this.isEmptyCell(cell);
37029
37031
  let isEmptyNextCell = this.isEmptyCell(nextCell);
37030
37032
  if (!isEmptyNextCell) {
37031
- let insertPosition = cell.endParagrapPosition.value - 1;
37033
+ let insertPosition = cell.endParagraphPosition.value - 1;
37032
37034
  let nextCellLastParagraph = this.subDocument.paragraphs[this.getCellLastParagraphIndex(nextCell)];
37033
37035
  if (!isEmptyCell) {
37034
37036
  this.modelManager.modelManipulator.paragraph.insertParagraphViaHistory(InsertParagraphManipulatorParams.makeParamsByPosition(new SubDocumentPosition(this.subDocument, insertPosition), inpPos));
37035
37037
  insertPosition++;
37036
37038
  }
37037
37039
  this.applyParagraphProperties(this.getCellLastParagraphIndex(cell), nextCellLastParagraph);
37038
- this.modelManager.modelManipulator.range.copyIntervalTo(this.subDocument, fixed.FixedInterval.fromPositions(nextCell.startParagraphPosition.value, nextCell.endParagrapPosition.value - 1), insertPosition);
37040
+ this.modelManager.modelManipulator.range.copyIntervalTo(this.subDocument, fixed.FixedInterval.fromPositions(nextCell.startParagraphPosition.value, nextCell.endParagraphPosition.value - 1), insertPosition);
37039
37041
  }
37040
37042
  this.deleteTableCellWithContent(nextCellPosition);
37041
37043
  this.modelManipulator.table.normalizeCellColumnSpans(this.subDocument, position.table, true);
@@ -37043,7 +37045,7 @@ class MergeTableCellsOperationBase {
37043
37045
  this.modelManipulator.table.normalizeRows(this.subDocument, cell.parentRow.parentTable);
37044
37046
  }
37045
37047
  getCellLastParagraphIndex(cell) {
37046
- return this.subDocument.getParagraphIndexByPosition(cell.endParagrapPosition.value - 1);
37048
+ return this.subDocument.getParagraphIndexByPosition(cell.endParagraphPosition.value - 1);
37047
37049
  }
37048
37050
  applyParagraphProperties(targetIndex, source) {
37049
37051
  let target = this.subDocument.paragraphs[targetIndex];
@@ -37055,11 +37057,11 @@ class MergeTableCellsOperationBase {
37055
37057
  this.modelManipulator.table.removeTableCellWithContent(this.subDocument, nextCellPosition.table, nextCellPosition.rowIndex, nextCellPosition.cellIndex);
37056
37058
  else {
37057
37059
  let nextCell = nextCellPosition.cell;
37058
- this.modelManager.modelManipulator.range.removeInterval(new SubDocumentInterval(this.subDocument, fixed.FixedInterval.fromPositions(nextCell.startParagraphPosition.value, nextCell.endParagrapPosition.value - 1)), true, false);
37060
+ this.modelManager.modelManipulator.range.removeInterval(new SubDocumentInterval(this.subDocument, fixed.FixedInterval.fromPositions(nextCell.startParagraphPosition.value, nextCell.endParagraphPosition.value - 1)), true, false);
37059
37061
  }
37060
37062
  }
37061
37063
  isEmptyCell(cell) {
37062
- return cell.endParagrapPosition.value - cell.startParagraphPosition.value === 1;
37064
+ return cell.endParagraphPosition.value - cell.startParagraphPosition.value === 1;
37063
37065
  }
37064
37066
  }
37065
37067
  class MergeTwoTableCellsHorizontallyOperation extends MergeTableCellsOperationBase {
@@ -37120,8 +37122,8 @@ class InsertTableCellWithShiftToTheDownOperation extends MergeTableCellsOperatio
37120
37122
  }
37121
37123
  deleteTableCellWithContent(nextCellPosition) {
37122
37124
  let nextCell = nextCellPosition.cell;
37123
- if (nextCell.endParagrapPosition.value - nextCell.startParagraphPosition.value > 1)
37124
- this.modelManager.modelManipulator.range.removeInterval(new SubDocumentInterval(this.subDocument, fixed.FixedInterval.fromPositions(nextCell.startParagraphPosition.value, nextCell.endParagrapPosition.value - 1)), true, false);
37125
+ if (nextCell.endParagraphPosition.value - nextCell.startParagraphPosition.value > 1)
37126
+ this.modelManager.modelManipulator.range.removeInterval(new SubDocumentInterval(this.subDocument, fixed.FixedInterval.fromPositions(nextCell.startParagraphPosition.value, nextCell.endParagraphPosition.value - 1)), true, false);
37125
37127
  }
37126
37128
  }
37127
37129
  class DeleteOneTableCellWithShiftToTheUpOperation extends MergeTwoTableCellsVerticallyOperation {
@@ -38016,7 +38018,7 @@ class TablesManipulator extends BaseManipulator {
38016
38018
  for (let cellIndex = 0, cell; cell = row.cells[cellIndex]; cellIndex++) {
38017
38019
  let cellRange = cellsRanges[rowIndex][cellIndex];
38018
38020
  cell.startParagraphPosition = subDocument.positionManager.registerPosition(cellRange.start);
38019
- cell.endParagrapPosition = subDocument.positionManager.registerPosition(cellRange.end);
38021
+ cell.endParagraphPosition = subDocument.positionManager.registerPosition(cellRange.end);
38020
38022
  }
38021
38023
  }
38022
38024
  table.parentCell = Table.getTableCellByPosition(subDocument.tables, table.getStartPosition());
@@ -38040,11 +38042,11 @@ class TablesManipulator extends BaseManipulator {
38040
38042
  if (patternRow.tablePropertiesException)
38041
38043
  newRow.tablePropertiesException = patternRow.tablePropertiesException.clone();
38042
38044
  for (let cellIndex = 0, patternCell; patternCell = patternRow.cells[cellIndex]; cellIndex++) {
38043
- let cellLength = patternCell.endParagrapPosition.value - patternCell.startParagraphPosition.value;
38045
+ let cellLength = patternCell.endParagraphPosition.value - patternCell.startParagraphPosition.value;
38044
38046
  let newCell = new TableCell(newRow, subDocument.documentModel.cache.tableCellPropertiesCache.getItem(patternCell.properties.clone()));
38045
38047
  newCell.startParagraphPosition = subDocument.positionManager.registerPosition(position);
38046
38048
  position += cellLength;
38047
- newCell.endParagrapPosition = subDocument.positionManager.registerPosition(position);
38049
+ newCell.endParagraphPosition = subDocument.positionManager.registerPosition(position);
38048
38050
  newCell.columnSpan = patternCell.columnSpan;
38049
38051
  newCell.conditionalFormatting = patternCell.conditionalFormatting;
38050
38052
  newCell.verticalMerging = patternCell.verticalMerging;
@@ -38073,7 +38075,7 @@ class TablesManipulator extends BaseManipulator {
38073
38075
  let patternCell = patternRow.cells[i];
38074
38076
  let cell = new TableCell(row, patternCell.properties);
38075
38077
  cell.startParagraphPosition = subDocument.positionManager.registerPosition(interval.start);
38076
- cell.endParagrapPosition = subDocument.positionManager.registerPosition(interval.end);
38078
+ cell.endParagraphPosition = subDocument.positionManager.registerPosition(interval.end);
38077
38079
  cell.columnSpan = patternCell.columnSpan;
38078
38080
  cell.conditionalFormatting = patternCell.conditionalFormatting;
38079
38081
  cell.preferredWidth = patternCell.preferredWidth.clone();
@@ -38129,20 +38131,20 @@ class TablesManipulator extends BaseManipulator {
38129
38131
  cell.verticalMerging = patternCell.verticalMerging;
38130
38132
  let startPosition = 0;
38131
38133
  if (cellIndex > 0)
38132
- startPosition = row.cells[cellIndex - 1].endParagrapPosition.value;
38134
+ startPosition = row.cells[cellIndex - 1].endParagraphPosition.value;
38133
38135
  else if (rowIndex > 0)
38134
38136
  startPosition = table.rows[rowIndex - 1].getEndPosition();
38135
38137
  else
38136
38138
  startPosition = table.getStartPosition();
38137
38139
  cell.startParagraphPosition = subDocument.positionManager.registerPosition(startPosition);
38138
- cell.endParagrapPosition = subDocument.positionManager.registerPosition(startPosition + length);
38140
+ cell.endParagraphPosition = subDocument.positionManager.registerPosition(startPosition + length);
38139
38141
  row.cells.splice(cellIndex, 0, cell);
38140
38142
  let nextCell = row.cells[cellIndex + 1];
38141
38143
  if (!nextCell && table.rows.length > rowIndex + 1)
38142
38144
  nextCell = table.rows[rowIndex + 1].cells[0];
38143
38145
  if (nextCell) {
38144
38146
  subDocument.positionManager.unregisterPosition(nextCell.startParagraphPosition);
38145
- nextCell.startParagraphPosition = subDocument.positionManager.registerPosition(cell.endParagrapPosition.value);
38147
+ nextCell.startParagraphPosition = subDocument.positionManager.registerPosition(cell.endParagraphPosition.value);
38146
38148
  }
38147
38149
  this.modelManipulator.notifyModelChanged(new TableCellInsertedSubDocumentChange(subDocument.id, table, rowIndex, cellIndex));
38148
38150
  }
@@ -38192,8 +38194,8 @@ class TablesManipulator extends BaseManipulator {
38192
38194
  let targetCell = row.cells[cellIndex];
38193
38195
  let removingCell = rightDirection ? row.cells[cellIndex + 1] : row.cells[cellIndex - 1];
38194
38196
  if (rightDirection) {
38195
- subDocument.positionManager.unregisterPosition(targetCell.endParagrapPosition);
38196
- targetCell.endParagrapPosition = subDocument.positionManager.registerPosition(removingCell.endParagrapPosition.value);
38197
+ subDocument.positionManager.unregisterPosition(targetCell.endParagraphPosition);
38198
+ targetCell.endParagraphPosition = subDocument.positionManager.registerPosition(removingCell.endParagraphPosition.value);
38197
38199
  removingCell.destructor(subDocument.positionManager);
38198
38200
  row.cells.splice(cellIndex + 1, 1);
38199
38201
  }
@@ -38215,7 +38217,7 @@ class TablesManipulator extends BaseManipulator {
38215
38217
  newTableCell.preferredWidth = splittingCell.preferredWidth.clone();
38216
38218
  row.cells.splice(splittingCellIndex, 0, newTableCell);
38217
38219
  newTableCell.startParagraphPosition = subDocument.positionManager.registerPosition(movingParagraph.startLogPosition.value);
38218
- newTableCell.endParagrapPosition = subDocument.positionManager.registerPosition(movingParagraph.getEndPosition());
38220
+ newTableCell.endParagraphPosition = subDocument.positionManager.registerPosition(movingParagraph.getEndPosition());
38219
38221
  subDocument.positionManager.unregisterPosition(splittingCell.startParagraphPosition);
38220
38222
  splittingCell.startParagraphPosition = subDocument.positionManager.registerPosition(movingParagraph.getEndPosition());
38221
38223
  }
@@ -38223,15 +38225,15 @@ class TablesManipulator extends BaseManipulator {
38223
38225
  if (splittingCellIndex < 0)
38224
38226
  throw new Error("splittingCellIndex should be > 0");
38225
38227
  let splittingCell = row.cells[splittingCellIndex];
38226
- let movingParagraph = subDocument.getParagraphByPosition(splittingCell.endParagrapPosition.value - 1);
38228
+ let movingParagraph = subDocument.getParagraphByPosition(splittingCell.endParagraphPosition.value - 1);
38227
38229
  let newTableCell = new TableCell(row, copyProperties ?
38228
38230
  splittingCell.properties : subDocument.documentModel.cache.tableCellPropertiesCache.getItem(new TableCellProperties()));
38229
38231
  newTableCell.preferredWidth = splittingCell.preferredWidth.clone();
38230
38232
  row.cells.splice(splittingCellIndex + 1, 0, newTableCell);
38231
38233
  newTableCell.startParagraphPosition = subDocument.positionManager.registerPosition(movingParagraph.startLogPosition.value);
38232
- newTableCell.endParagrapPosition = subDocument.positionManager.registerPosition(movingParagraph.getEndPosition());
38233
- subDocument.positionManager.unregisterPosition(splittingCell.endParagrapPosition);
38234
- splittingCell.endParagrapPosition = subDocument.positionManager.registerPosition(movingParagraph.startLogPosition.value);
38234
+ newTableCell.endParagraphPosition = subDocument.positionManager.registerPosition(movingParagraph.getEndPosition());
38235
+ subDocument.positionManager.unregisterPosition(splittingCell.endParagraphPosition);
38236
+ splittingCell.endParagraphPosition = subDocument.positionManager.registerPosition(movingParagraph.startLogPosition.value);
38235
38237
  }
38236
38238
  setTableStyle(subDocument, tableIndex, style) {
38237
38239
  const table = subDocument.tables[tableIndex];
@@ -38485,7 +38487,7 @@ class TablesManipulator extends BaseManipulator {
38485
38487
  let cell = new TableCell(row, subDocument.documentModel.cache.tableCellPropertiesCache.getItem(new TableCellProperties()));
38486
38488
  row.cells.push(cell);
38487
38489
  cell.startParagraphPosition = subDocument.positionManager.registerPosition(paragraph.startLogPosition.value);
38488
- cell.endParagrapPosition = subDocument.positionManager.registerPosition(paragraph.getEndPosition());
38490
+ cell.endParagraphPosition = subDocument.positionManager.registerPosition(paragraph.getEndPosition());
38489
38491
  paragraph = subDocument.paragraphs[++paragraphIndex];
38490
38492
  }
38491
38493
  }
@@ -39659,7 +39661,7 @@ class CreateRangeCopyOperation {
39659
39661
  let newCell = this.cloneTableCell(newSubDocument, newRow, cell);
39660
39662
  newCell.verticalMerging = cell.verticalMerging;
39661
39663
  newCell.startParagraphPosition = newSubDocument.positionManager.registerPosition(cell.startParagraphPosition.value - positionDelta);
39662
- newCell.endParagrapPosition = newSubDocument.positionManager.registerPosition(cell.endParagrapPosition.value - positionDelta);
39664
+ newCell.endParagraphPosition = newSubDocument.positionManager.registerPosition(cell.endParagraphPosition.value - positionDelta);
39663
39665
  newRow.cells.push(newCell);
39664
39666
  }
39665
39667
  }
@@ -39689,7 +39691,7 @@ class CreateRangeCopyOperation {
39689
39691
  for (let j = 0, cellInfo; cellInfo = horCellInfos[j]; j++) {
39690
39692
  let newCell = this.cloneTableCell(newSubDocument, newRow, cellInfo.cell);
39691
39693
  newCell.startParagraphPosition = newSubDocument.positionManager.registerPosition(cellInfo.cell.startParagraphPosition.value - cellInfo.positionDelta);
39692
- newCell.endParagrapPosition = newSubDocument.positionManager.registerPosition(cellInfo.cell.endParagrapPosition.value - cellInfo.positionDelta);
39694
+ newCell.endParagraphPosition = newSubDocument.positionManager.registerPosition(cellInfo.cell.endParagraphPosition.value - cellInfo.positionDelta);
39693
39695
  newRow.cells.push(newCell);
39694
39696
  }
39695
39697
  }
@@ -39702,11 +39704,11 @@ class CreateRangeCopyOperation {
39702
39704
  let prevLeftColumnIndex = TableCellUtils.getStartColumnIndex(selectedCellInfos[0][0].cell);
39703
39705
  let prevRightColumnIndex = TableCellUtils.getEndColumnIndex(selectedCellInfos[0][selectedCellInfos[0].length - 1].cell);
39704
39706
  for (let i = 0, horCells; horCells = selectedCellInfos[i]; i++) {
39705
- let prevCellEndPosition = horCells[0].cell.endParagrapPosition.value;
39707
+ let prevCellEndPosition = horCells[0].cell.endParagraphPosition.value;
39706
39708
  for (let j = 1, cellInfo; cellInfo = horCells[j]; j++) {
39707
39709
  if (cellInfo.cell.startParagraphPosition.value !== prevCellEndPosition)
39708
39710
  return false;
39709
- prevCellEndPosition = cellInfo.cell.endParagrapPosition.value;
39711
+ prevCellEndPosition = cellInfo.cell.endParagraphPosition.value;
39710
39712
  }
39711
39713
  if (i > 0) {
39712
39714
  if (horCells[0].cell.parentRow.getStartPosition() !== prevRowEndPosition)
@@ -39749,7 +39751,7 @@ class CreateRangeCopyOperation {
39749
39751
  for (let rowIndex = 0, row; row = table.rows[rowIndex]; rowIndex++) {
39750
39752
  let horCells = [];
39751
39753
  for (let cellIndex = 0, cell; cell = row.cells[cellIndex]; cellIndex++) {
39752
- while (currentIntervalIndex <= maxIntervalIndex && intervals[currentIntervalIndex].end < cell.endParagrapPosition.value) {
39754
+ while (currentIntervalIndex <= maxIntervalIndex && intervals[currentIntervalIndex].end < cell.endParagraphPosition.value) {
39753
39755
  if (this.additionalParagraphRunPositions[intervals[currentIntervalIndex].end])
39754
39756
  prevLength++;
39755
39757
  prevLength += intervals[currentIntervalIndex].length;
@@ -43794,7 +43796,7 @@ class RemoveIntervalOperation {
43794
43796
  if (run.getType() === RunType.ParagraphRun) {
43795
43797
  this.cellsIterator.moveTo(absolutePosition);
43796
43798
  let currentCell = this.cellsIterator.getCurrent();
43797
- if (currentCell && absolutePosition === currentCell.endParagrapPosition.value - 1)
43799
+ if (currentCell && absolutePosition === currentCell.endParagraphPosition.value - 1)
43798
43800
  return false;
43799
43801
  let nextCell = this.cellsIterator.getNext();
43800
43802
  if (nextCell && nextCell.startParagraphPosition.value === absolutePosition + 1) {
@@ -43965,7 +43967,7 @@ class SelectedCellsIterator {
43965
43967
  this.position = position;
43966
43968
  let cell;
43967
43969
  while (cell = this.cells[this.current]) {
43968
- if (position >= cell.endParagrapPosition.value)
43970
+ if (position >= cell.endParagraphPosition.value)
43969
43971
  this.current++;
43970
43972
  else
43971
43973
  return true;
@@ -43978,7 +43980,7 @@ class SelectedCellsIterator {
43978
43980
  }
43979
43981
  getPrev() {
43980
43982
  let cell = this.cells[this.current];
43981
- if (cell && this.position >= cell.endParagrapPosition.value)
43983
+ if (cell && this.position >= cell.endParagraphPosition.value)
43982
43984
  return cell;
43983
43985
  return this.cells[this.current - 1] || null;
43984
43986
  }
@@ -44001,7 +44003,7 @@ class SelectedCellsIterator {
44001
44003
  return [];
44002
44004
  let result = [];
44003
44005
  this.collectCellsByIntervalCore(subDocument, result, table, interval.start, intervalEnd);
44004
- return result.sort((c1, c2) => c1.endParagrapPosition.value - c2.endParagrapPosition.value);
44006
+ return result.sort((c1, c2) => c1.endParagraphPosition.value - c2.endParagraphPosition.value);
44005
44007
  }
44006
44008
  static collectCellsByIntervalCore(subDocument, result, table, intervalStart, intervalEnd) {
44007
44009
  let nextTable = subDocument.tables[table.index + 1];
@@ -44009,9 +44011,9 @@ class SelectedCellsIterator {
44009
44011
  this.collectCellsByIntervalCore(subDocument, result, nextTable, intervalStart, intervalEnd);
44010
44012
  for (let rowIndex = 0, row; row = table.rows[rowIndex]; rowIndex++) {
44011
44013
  for (let cellIndex = 0, cell; cell = row.cells[cellIndex]; cellIndex++) {
44012
- if (intervalStart < cell.endParagrapPosition.value && intervalEnd > cell.startParagraphPosition.value)
44014
+ if (intervalStart < cell.endParagraphPosition.value && intervalEnd > cell.startParagraphPosition.value)
44013
44015
  result.push(cell);
44014
- else if (intervalStart === cell.endParagrapPosition.value && cell.parentRow.parentTable.getLastCell() === cell)
44016
+ else if (intervalStart === cell.endParagraphPosition.value && cell.parentRow.parentTable.getLastCell() === cell)
44015
44017
  result.push(cell);
44016
44018
  else if (cell.parentRow.parentTable.getFirstCell() === cell && cell.startParagraphPosition.value === intervalEnd)
44017
44019
  result.push(cell);
@@ -44021,7 +44023,7 @@ class SelectedCellsIterator {
44021
44023
  }
44022
44024
  }
44023
44025
  static correctCurrent(position, cell) {
44024
- if (position >= cell.startParagraphPosition.value && position < cell.endParagrapPosition.value)
44026
+ if (position >= cell.startParagraphPosition.value && position < cell.endParagraphPosition.value)
44025
44027
  return cell;
44026
44028
  if (position < cell.startParagraphPosition.value && cell.parentRow.parentTable.parentCell)
44027
44029
  return this.correctCurrent(position, cell.parentRow.parentTable.parentCell);
@@ -50349,7 +50351,7 @@ class RtfTableExporterStateBase {
50349
50351
  }
50350
50352
  exportCellParagraphs(cell, parentRowIndex) {
50351
50353
  const startParagraphIndex = this.subDocument.getParagraphIndexByPosition(cell.startParagraphPosition.value);
50352
- const endParagraphIndex = this.subDocument.getParagraphIndexByPosition(cell.endParagrapPosition.value - 1);
50354
+ const endParagraphIndex = this.subDocument.getParagraphIndexByPosition(cell.endParagraphPosition.value - 1);
50353
50355
  for (let parIndex = startParagraphIndex; parIndex <= endParagraphIndex; parIndex++) {
50354
50356
  const paragraph = this.subDocument.paragraphs[parIndex];
50355
50357
  const parCell = paragraph.getTableCell();
@@ -65052,10 +65054,10 @@ class RtfTableCell {
65052
65054
  cell.startParagraphPosition = subDocument.positionManager.registerPosition(startPar.startLogPosition.value);
65053
65055
  const cellMarkPos = this.endPos - 1;
65054
65056
  if (cellMarkPos <= this.startPos)
65055
- cell.endParagrapPosition = subDocument.positionManager.registerPosition(startPar.getEndPosition());
65057
+ cell.endParagraphPosition = subDocument.positionManager.registerPosition(startPar.getEndPosition());
65056
65058
  else {
65057
65059
  const endPar = subDocument.getParagraphByPosition(cellMarkPos);
65058
- cell.endParagrapPosition = subDocument.positionManager.registerPosition(endPar.getEndPosition());
65060
+ cell.endParagraphPosition = subDocument.positionManager.registerPosition(endPar.getEndPosition());
65059
65061
  }
65060
65062
  cell.columnSpan = this.columnSpan;
65061
65063
  this.properties.apply(cell);
@@ -66317,7 +66319,7 @@ class PasteHtmlDataHistoryItem extends interval_based_history_item_IntervalBased
66317
66319
  const cell = new TableCell(row, this.boundSubDocument.documentModel.cache.tableCellPropertiesCache.getItem(cellInfo.properties));
66318
66320
  cell.preferredWidth = cellInfo.preferredWidth;
66319
66321
  cell.startParagraphPosition = this.boundSubDocument.positionManager.registerPosition(cellInfo.startPosition);
66320
- cell.endParagrapPosition = this.boundSubDocument.positionManager.registerPosition(cellInfo.endPosition);
66322
+ cell.endParagraphPosition = this.boundSubDocument.positionManager.registerPosition(cellInfo.endPosition);
66321
66323
  cell.columnSpan = cellInfo.columnSpan;
66322
66324
  cell.verticalMerging = cellInfo.firstWhenVerticallyMerged ?
66323
66325
  (cellInfo.rowSpan > 1 ? TableCellMergingState.Restart : TableCellMergingState.None) :
@@ -69043,7 +69045,7 @@ class HtmlExporter {
69043
69045
  if (tableCell) {
69044
69046
  let parentRow = tableCell.parentRow;
69045
69047
  let parentTable = parentRow.parentTable;
69046
- if (tableCell.endParagrapPosition.value == paragraphEndPosition)
69048
+ if (tableCell.endParagraphPosition.value == paragraphEndPosition)
69047
69049
  html.addCallback((builder) => builder.endChild('td'));
69048
69050
  if (parentRow.getEndPosition() == paragraphEndPosition) {
69049
69051
  if (parentRow.gridAfter > 0)
@@ -70881,22 +70883,61 @@ class ModelStateEmpty {
70881
70883
  }
70882
70884
  }
70883
70885
 
70886
+ ;// CONCATENATED MODULE: ./src/common/selection/table-nav-direction.ts
70887
+ var TableNavDirection;
70888
+ (function (TableNavDirection) {
70889
+ TableNavDirection[TableNavDirection["Left"] = -1] = "Left";
70890
+ TableNavDirection[TableNavDirection["Right"] = 1] = "Right";
70891
+ TableNavDirection[TableNavDirection["None"] = 0] = "None";
70892
+ TableNavDirection[TableNavDirection["Up"] = -2] = "Up";
70893
+ TableNavDirection[TableNavDirection["Down"] = 2] = "Down";
70894
+ })(TableNavDirection || (TableNavDirection = {}));
70895
+
70884
70896
  ;// CONCATENATED MODULE: ./src/common/selection/selection-state.ts
70885
70897
 
70886
70898
 
70887
70899
 
70888
70900
 
70901
+
70902
+ class TableCellSelectionState {
70903
+ constructor(anchorCellPosition, activeCellPosition, singleCellEntryDirection = TableNavDirection.None, singleCellShrinkDirection = TableNavDirection.None, textSelectionAnchorPosition = -1, textSelectionActivePosition = -1, textSelectionEndOfLine = false) {
70904
+ this.anchorCellPosition = anchorCellPosition;
70905
+ this.activeCellPosition = activeCellPosition;
70906
+ this.singleCellEntryDirection = singleCellEntryDirection;
70907
+ this.singleCellShrinkDirection = singleCellShrinkDirection;
70908
+ this.textSelectionAnchorPosition = textSelectionAnchorPosition;
70909
+ this.textSelectionActivePosition = textSelectionActivePosition;
70910
+ this.textSelectionEndOfLine = textSelectionEndOfLine;
70911
+ }
70912
+ clone() {
70913
+ return new TableCellSelectionState(this.anchorCellPosition, this.activeCellPosition, this.singleCellEntryDirection, this.singleCellShrinkDirection, this.textSelectionAnchorPosition, this.textSelectionActivePosition, this.textSelectionEndOfLine);
70914
+ }
70915
+ equals(other) {
70916
+ if (this === other)
70917
+ return true;
70918
+ if (!other)
70919
+ return false;
70920
+ return this.anchorCellPosition === other.anchorCellPosition &&
70921
+ this.activeCellPosition === other.activeCellPosition &&
70922
+ this.singleCellEntryDirection === other.singleCellEntryDirection &&
70923
+ this.singleCellShrinkDirection === other.singleCellShrinkDirection &&
70924
+ this.textSelectionAnchorPosition === other.textSelectionAnchorPosition &&
70925
+ this.textSelectionActivePosition === other.textSelectionActivePosition &&
70926
+ this.textSelectionEndOfLine === other.textSelectionEndOfLine;
70927
+ }
70928
+ }
70889
70929
  class SelectionState {
70890
70930
  get interval() { return this.intervalsInfo.interval; }
70891
70931
  ;
70892
- get anchorPostion() { return this.forwardDirection ? this.interval.start : this.interval.end; }
70893
- get activePostion() { return this.forwardDirection ? this.interval.end : this.interval.start; }
70894
- get reversedAnchorPostion() { return this.forwardDirection ? this.interval.end : this.interval.start; }
70932
+ get anchorPosition() { return this.forwardDirection ? this.interval.start : this.interval.end; }
70933
+ get activePosition() { return this.forwardDirection ? this.interval.end : this.interval.start; }
70934
+ get reversedAnchorPosition() { return this.forwardDirection ? this.interval.end : this.interval.start; }
70895
70935
  constructor(intervalsInfo, forwardDirection, endOfLine, pageIndex) {
70896
70936
  this.forwardDirection = true;
70897
70937
  this.endOfLine = false;
70898
70938
  this.keepX = -1;
70899
70939
  this.pageIndex = -1;
70940
+ this.tableSelection = null;
70900
70941
  this.intervalsInfo = intervalsInfo.clone();
70901
70942
  this.forwardDirection = forwardDirection;
70902
70943
  this.endOfLine = endOfLine;
@@ -70920,14 +70961,17 @@ class SelectionState {
70920
70961
  }
70921
70962
  setInterval(interval) {
70922
70963
  this.intervalsInfo.intervals = [this.getNormalizedLastInterval(interval)];
70964
+ this.resetTableSelectionInfo();
70923
70965
  return this;
70924
70966
  }
70925
70967
  setIntervals(intervals) {
70926
70968
  this.intervalsInfo.intervals = intervals;
70969
+ this.resetTableSelectionInfo();
70927
70970
  return this;
70928
70971
  }
70929
70972
  setPosition(pos) {
70930
70973
  this.intervalsInfo.position = pos;
70974
+ this.resetTableSelectionInfo();
70931
70975
  return this;
70932
70976
  }
70933
70977
  addInterval(interval) {
@@ -70935,13 +70979,15 @@ class SelectionState {
70935
70979
  this.intervalsInfo.interval = interval;
70936
70980
  else
70937
70981
  this.intervalsInfo.lastIntervalIndex = this.intervalsInfo.intervals.push(this.getNormalizedLastInterval(interval)) - 1;
70982
+ this.resetTableSelectionInfo();
70938
70983
  return this;
70939
70984
  }
70940
70985
  extendLastInterval(end) {
70941
- const oldAnchor = this.anchorPostion;
70986
+ const oldAnchor = this.anchorPosition;
70942
70987
  this.interval.start = Math.min(oldAnchor, end);
70943
70988
  this.interval.length = Math.abs(oldAnchor - end);
70944
70989
  this.forwardDirection = end >= oldAnchor;
70990
+ this.resetTableSelectionInfo();
70945
70991
  return this;
70946
70992
  }
70947
70993
  setPageIndex(pageIndex) {
@@ -70952,6 +70998,14 @@ class SelectionState {
70952
70998
  this.intervalsInfo.subDocument = subDocument;
70953
70999
  return this;
70954
71000
  }
71001
+ setTableSelectionInfo(tableSelection) {
71002
+ this.tableSelection = tableSelection.clone();
71003
+ return this;
71004
+ }
71005
+ resetTableSelectionInfo() {
71006
+ this.tableSelection = null;
71007
+ return this;
71008
+ }
70955
71009
  getNormalizedLastInterval(interval) {
70956
71010
  this.forwardDirection = interval.length >= 0;
70957
71011
  return this.forwardDirection ? interval : new fixed.FixedInterval(interval.end, interval.start);
@@ -70960,7 +71014,12 @@ class SelectionState {
70960
71014
  return new SelectionState(SelectionIntervalsInfo.fromPosition(activeSubDocument, 0), true, false, -1);
70961
71015
  }
70962
71016
  clone() {
70963
- return new SelectionState(this.intervalsInfo.clone(), this.forwardDirection, this.endOfLine, this.pageIndex);
71017
+ const copy = new SelectionState(this.intervalsInfo.clone(), this.forwardDirection, this.endOfLine, this.pageIndex);
71018
+ copy.keepX = this.keepX;
71019
+ copy.tableSelection = this.tableSelection
71020
+ ? this.tableSelection.clone()
71021
+ : null;
71022
+ return copy;
70964
71023
  }
70965
71024
  equals(obj) {
70966
71025
  return this.partiallyEquals(obj) &&
@@ -70971,9 +71030,17 @@ class SelectionState {
70971
71030
  this.keepX == obj.keepX &&
70972
71031
  this.forwardDirection == obj.forwardDirection &&
70973
71032
  this.endOfLine == obj.endOfLine &&
71033
+ this.tableSelectionEquals(this.tableSelection, obj.tableSelection) &&
70974
71034
  this.intervalsInfo.lastIntervalIndex == obj.intervalsInfo.lastIntervalIndex &&
70975
71035
  this.pageIndex == obj.pageIndex;
70976
71036
  }
71037
+ tableSelectionEquals(a, b) {
71038
+ if (a === b)
71039
+ return true;
71040
+ if (!a || !b)
71041
+ return false;
71042
+ return a.equals(b);
71043
+ }
70977
71044
  }
70978
71045
  class SelectionFloatingState {
70979
71046
  constructor(state) {
@@ -71005,6 +71072,8 @@ class SelectionFloatingState {
71005
71072
 
71006
71073
 
71007
71074
 
71075
+
71076
+
71008
71077
  class SetSelectionStateOptions {
71009
71078
  constructor() {
71010
71079
  this.correctIntervalDueToFields = true;
@@ -71045,9 +71114,86 @@ class Selection extends batch_updatable/* BatchUpdatableObject */.IS {
71045
71114
  get intervalsInfo() { return this._state.intervalsInfo; }
71046
71115
  get prevState() { return this._prevState; }
71047
71116
  get multiselection() { return this._state.intervalsInfo.multiselection; }
71048
- get anchorPosition() { return this._state.anchorPostion; }
71049
- get reversedAnchorPostion() { return this._state.reversedAnchorPostion; }
71117
+ get anchorPosition() { return this._state.anchorPosition; }
71118
+ get reversedAnchorPosition() { return this._state.reversedAnchorPosition; }
71119
+ get tableSelectionAnchorCellPosition() { var _a, _b; return (_b = (_a = this._state.tableSelection) === null || _a === void 0 ? void 0 : _a.anchorCellPosition) !== null && _b !== void 0 ? _b : -1; }
71120
+ get tableSelectionActiveCellPosition() { var _a, _b; return (_b = (_a = this._state.tableSelection) === null || _a === void 0 ? void 0 : _a.activeCellPosition) !== null && _b !== void 0 ? _b : -1; }
71121
+ get hasExplicitTableCellSelection() {
71122
+ return this.tableSelectionAnchorCellPosition >= 0 && this.tableSelectionActiveCellPosition >= 0;
71123
+ }
71124
+ get tableSingleCellEntryDirection() { var _a, _b; return (_b = (_a = this._state.tableSelection) === null || _a === void 0 ? void 0 : _a.singleCellEntryDirection) !== null && _b !== void 0 ? _b : TableNavDirection.None; }
71125
+ get tableSingleCellShrinkDirection() { var _a, _b; return (_b = (_a = this._state.tableSelection) === null || _a === void 0 ? void 0 : _a.singleCellShrinkDirection) !== null && _b !== void 0 ? _b : TableNavDirection.None; }
71126
+ get tableTextSelectionAnchorPosition() { var _a, _b; return (_b = (_a = this._state.tableSelection) === null || _a === void 0 ? void 0 : _a.textSelectionAnchorPosition) !== null && _b !== void 0 ? _b : -1; }
71127
+ get tableTextSelectionActivePosition() { var _a, _b; return (_b = (_a = this._state.tableSelection) === null || _a === void 0 ? void 0 : _a.textSelectionActivePosition) !== null && _b !== void 0 ? _b : -1; }
71128
+ get tableTextSelectionEndOfLine() { var _a, _b; return (_b = (_a = this._state.tableSelection) === null || _a === void 0 ? void 0 : _a.textSelectionEndOfLine) !== null && _b !== void 0 ? _b : false; }
71050
71129
  isCollapsed() { return this._state.intervalsInfo.isCollapsed; }
71130
+ saveVerticalTableReentrySnapshot(table, selectedCells) {
71131
+ const anchorCell = this.getTableSelectionAnchorCell();
71132
+ const activeCell = this.getTableSelectionActiveCell();
71133
+ const firstRow = selectedCells.length > 0 ? selectedCells[0] : null;
71134
+ const lastRow = selectedCells.length > 0 ? selectedCells[selectedCells.length - 1] : null;
71135
+ const fallbackAnchorCell = firstRow && firstRow.length > 0 ? firstRow[0] : null;
71136
+ const fallbackActiveCell = lastRow && lastRow.length > 0 ? lastRow[lastRow.length - 1] : null;
71137
+ const finalAnchorCell = anchorCell || fallbackAnchorCell;
71138
+ const finalActiveCell = activeCell || fallbackActiveCell;
71139
+ if (!table || !finalAnchorCell || !finalActiveCell)
71140
+ return;
71141
+ this.verticalTableReentrySnapshot = {
71142
+ subDocumentId: this.activeSubDocument.id,
71143
+ tableStartPosition: table.getStartPosition(),
71144
+ firstCellPosition: finalAnchorCell.startParagraphPosition.value,
71145
+ lastCellPosition: finalActiveCell.startParagraphPosition.value,
71146
+ textSelectionAnchorPosition: this.tableTextSelectionAnchorPosition,
71147
+ textSelectionActivePosition: this.tableTextSelectionActivePosition,
71148
+ textSelectionEndOfLine: this.tableTextSelectionEndOfLine,
71149
+ };
71150
+ }
71151
+ getVerticalTableReentrySnapshot(table) {
71152
+ const snapshot = this.verticalTableReentrySnapshot;
71153
+ if (!snapshot || !table)
71154
+ return null;
71155
+ if (snapshot.subDocumentId !== this.activeSubDocument.id || snapshot.tableStartPosition !== table.getStartPosition())
71156
+ return null;
71157
+ return Object.assign({}, snapshot);
71158
+ }
71159
+ getTableForSelectionRestore(subDocument) {
71160
+ var _a;
71161
+ const snapshot = this.verticalTableReentrySnapshot;
71162
+ if (!snapshot || !subDocument || snapshot.subDocumentId !== subDocument.id)
71163
+ return null;
71164
+ return (_a = subDocument.tables.find(t => t.getStartPosition() === snapshot.tableStartPosition)) !== null && _a !== void 0 ? _a : null;
71165
+ }
71166
+ clearVerticalTableReentrySnapshot() {
71167
+ this.verticalTableReentrySnapshot = null;
71168
+ }
71169
+ updateVerticalTableReentrySnapshot(newState) {
71170
+ if (!this.verticalTableReentrySnapshot)
71171
+ return;
71172
+ const isTableSelection = newState.tableSelection !== null;
71173
+ if (isTableSelection)
71174
+ return;
71175
+ const snapshotTable = Table.getTableByPosition(newState.intervalsInfo.subDocument.tables, this.verticalTableReentrySnapshot.tableStartPosition, true);
71176
+ const currentTable = Table.getTableByPosition(newState.intervalsInfo.subDocument.tables, newState.interval.start, true);
71177
+ if (snapshotTable && currentTable && snapshotTable.getStartPosition() === currentTable.getStartPosition())
71178
+ return;
71179
+ if (!newState.intervalsInfo.isCollapsed) {
71180
+ return;
71181
+ }
71182
+ this.verticalTableReentrySnapshot = null;
71183
+ }
71184
+ getTableSelectionAnchorCell() {
71185
+ const table = this.tableInfo.table;
71186
+ return this.getTableCellByPosition(this.tableSelectionAnchorCellPosition, table)
71187
+ || (this.forwardDirection ? this.tableInfo.rawData.firstCell : this.tableInfo.rawData.lastCell);
71188
+ }
71189
+ getTableSelectionActiveCell() {
71190
+ const table = this.tableInfo.table;
71191
+ return this.getTableCellByPosition(this.tableSelectionActiveCellPosition, table)
71192
+ || (this.forwardDirection ? this.tableInfo.rawData.lastCell : this.tableInfo.rawData.firstCell);
71193
+ }
71194
+ getTableCellByPosition(position, table) {
71195
+ return position >= 0 && table ? Table.getTableCellByPositionFromTable(table, position) : null;
71196
+ }
71051
71197
  get subDocumentIntervals() {
71052
71198
  return new SubDocumentIntervals(this.activeSubDocument, utils_list.ListUtils.deepCopy(this._state.intervalsInfo.intervals));
71053
71199
  }
@@ -71057,6 +71203,7 @@ class Selection extends batch_updatable/* BatchUpdatableObject */.IS {
71057
71203
  get tableInfo() { return this._state.intervalsInfo.tableInfo; }
71058
71204
  constructor(model, layout, activeSubDocument) {
71059
71205
  super();
71206
+ this.verticalTableReentrySnapshot = null;
71060
71207
  this.searchIntervals = [];
71061
71208
  this.misspelledIntervals = [];
71062
71209
  this.onChanged = new EventDispatcher();
@@ -71079,6 +71226,7 @@ class Selection extends batch_updatable/* BatchUpdatableObject */.IS {
71079
71226
  this.changeState((newState) => {
71080
71227
  newState.intervalsInfo.intervals = [params.interval];
71081
71228
  newState.intervalsInfo.lastIntervalIndex = 0;
71229
+ newState.resetTableSelectionInfo();
71082
71230
  newState.endOfLine = params.endOfLine;
71083
71231
  newState.keepX = params.keepX;
71084
71232
  }, options);
@@ -71116,6 +71264,7 @@ class Selection extends batch_updatable/* BatchUpdatableObject */.IS {
71116
71264
  if (isSelectionChanged) {
71117
71265
  this._prevState = this._state;
71118
71266
  this._state = newState;
71267
+ this.updateVerticalTableReentrySnapshot(newState);
71119
71268
  newState.intervalsInfo.resetTableInfo();
71120
71269
  newState.intervalsInfo.specialRunInfo.init(newState.intervalsInfo, this.model);
71121
71270
  this.raiseSelectionChanged();
@@ -73937,7 +74086,7 @@ class RangePermissionImporter {
73937
74086
  const cellsCount = cells.length;
73938
74087
  if (range.columnFirst < cellsCount) {
73939
74088
  const firstCellStartLogPosition = cells[range.columnFirst].startParagraphPosition.value;
73940
- const lastCellEndLogPosition = cells[Math.min(range.columnLast, cellsCount - 1)].endParagrapPosition.value;
74089
+ const lastCellEndLogPosition = cells[Math.min(range.columnLast, cellsCount - 1)].endParagraphPosition.value;
73941
74090
  if (range.start < lastCellEndLogPosition && range.end > firstCellStartLogPosition)
73942
74091
  this.addPermission(range, Math.max(range.start, firstCellStartLogPosition), Math.min(range.end, lastCellEndLogPosition));
73943
74092
  }
@@ -77474,7 +77623,7 @@ class TableCellDestination extends ElementDestination {
77474
77623
  this.endParagraph = this.data.subDocumentInfo.paragraphImporter.paragraph;
77475
77624
  this.data.subDocumentInfo.paragraphImporter.insertParagraph();
77476
77625
  }
77477
- this.cell.endParagrapPosition = this.data.subDocumentInfo.subDocument.positionManager.registerPosition(utils_list.ListUtils.last(this.data.subDocumentInfo.subDocument.paragraphs).getEndPosition());
77626
+ this.cell.endParagraphPosition = this.data.subDocumentInfo.subDocument.positionManager.registerPosition(utils_list.ListUtils.last(this.data.subDocumentInfo.subDocument.paragraphs).getEndPosition());
77478
77627
  }
77479
77628
  }
77480
77629
  TableCellDestination.handlerTable = new MapCreator()
@@ -87633,10 +87782,10 @@ class RichEditSelectionApi {
87633
87782
  return new SubDocumentClientApi(this._core, this._core.selection.activeSubDocument);
87634
87783
  }
87635
87784
  get anchor() {
87636
- return this._core.selection.getState().anchorPostion;
87785
+ return this._core.selection.getState().anchorPosition;
87637
87786
  }
87638
87787
  get active() {
87639
- return this._core.selection.getState().activePostion;
87788
+ return this._core.selection.getState().activePosition;
87640
87789
  }
87641
87790
  get start() {
87642
87791
  return this._core.selection.getState().interval.start;
@@ -94799,8 +94948,6 @@ class BoxAligner {
94799
94948
 
94800
94949
 
94801
94950
 
94802
-
94803
-
94804
94951
  var RowFormatterResultFlag;
94805
94952
  (function (RowFormatterResultFlag) {
94806
94953
  RowFormatterResultFlag[RowFormatterResultFlag["None"] = 0] = "None";
@@ -94844,7 +94991,8 @@ class RowFormatterResult {
94844
94991
  }
94845
94992
  finishRow() {
94846
94993
  this.finishLogicalRow(this.rowFormatter.rowSizesManager.rowFormattingInfo.lastNonEmptyInterval.end);
94847
- const lastBoxOffset = utils_list.ListUtils.last(this.row.boxes).rowOffset;
94994
+ const lastBox = utils_list.ListUtils.last(this.row.boxes);
94995
+ const lastBoxOffset = lastBox.rowOffset;
94848
94996
  for (let ind = 0, anc; anc = this.newAnchoredObjects[ind]; ind++) {
94849
94997
  if (anc.rowOffset > lastBoxOffset) {
94850
94998
  this.deleteSomeAnchorObjects(ind, anc.rowOffset);
@@ -94873,24 +95021,20 @@ class RowFormatterResult {
94873
95021
  }
94874
95022
  this.row.columnOffset = rowStartPos -
94875
95023
  this.rowFormatter.manager.activeFormatter.layoutPosition.getLogPosition(DocumentLayoutDetailsLevel.Column);
94876
- const pictBox = this.onlyInlinePictureBox();
94877
- if (pictBox && pictBox.width > this.row.width)
94878
- this.row.width = pictBox.width;
95024
+ const firstBox = this.row.boxes[0];
95025
+ const lastVisibleBox = this.getLastVisibleBox();
95026
+ if (lastVisibleBox)
95027
+ this.row.width = Math.max(this.row.width, lastVisibleBox.right - firstBox.x);
94879
95028
  const currState = this.rowFormatter.rowSizesManager.heightCalculator.currState;
94880
95029
  this.row.increaseRowHeightFromSpacingBeforeAndAfter(currState.maxAscent, currState.maxDescent);
94881
95030
  }
94882
- onlyInlinePictureBox() {
94883
- let pictBox;
94884
- for (let ind = this.row.boxes.length - 1; ind >= 0; ind--) {
94885
- const box = this.row.boxes[ind];
94886
- if (box.getType() == LayoutBoxType.Picture) {
94887
- pictBox = box;
94888
- }
94889
- else if (!utils_enum/* EnumUtils */.Y.isAnyOf(box.getType(), LayoutBoxType.ParagraphMark, LayoutBoxType.SectionMark, LayoutBoxType.LineBreak, LayoutBoxType.PageBreak)) {
94890
- return null;
94891
- }
95031
+ getLastVisibleBox() {
95032
+ for (let i = this.row.boxes.length - 1; i >= 0; i--) {
95033
+ const box = this.row.boxes[i];
95034
+ if (box.isVisible() && !box.isWhitespace())
95035
+ return box;
94892
95036
  }
94893
- return pictBox;
95037
+ return null;
94894
95038
  }
94895
95039
  addBracketBox(boxType, color, x, layoutBox) {
94896
95040
  const box = new BookmarkBox(boxType);
@@ -95136,7 +95280,7 @@ class BoxGenerator {
95136
95280
  }
95137
95281
  isTableCellConsiderAtLeastOneBox(info, box) {
95138
95282
  if (!info.tablePosition || box.getType() != LayoutBoxType.ParagraphMark ||
95139
- utils_list.ListUtils.last(info.tablePosition).cell.endParagrapPosition.value - 1 != box.rowOffset)
95283
+ utils_list.ListUtils.last(info.tablePosition).cell.endParagraphPosition.value - 1 != box.rowOffset)
95140
95284
  return true;
95141
95285
  for (let wrapIndex = this.newWrappers.length - 1, wrap; wrap = this.newWrappers[wrapIndex]; wrapIndex--) {
95142
95286
  if (!wrap || !wrap.info.tablePosition || wrap.info.tablePosition.length < info.tablePosition.length)
@@ -95791,11 +95935,14 @@ class RowIntervalInfo extends fixed.FixedInterval {
95791
95935
  super(start, length);
95792
95936
  this.avaliableWidth = avaliableWidth;
95793
95937
  }
95794
- get busyWidth() {
95938
+ get rawUsedWidth() {
95795
95939
  return this.length - this.avaliableWidth;
95796
95940
  }
95941
+ get usedWidth() {
95942
+ return Math.min(this.rawUsedWidth, this.length);
95943
+ }
95797
95944
  get startOfFreeSpace() {
95798
- return this.start + this.busyWidth;
95945
+ return this.start + this.rawUsedWidth;
95799
95946
  }
95800
95947
  isConsiderBoxes() {
95801
95948
  return this.avaliableWidth != this.length;
@@ -95851,7 +95998,7 @@ class RowFormattingInfo {
95851
95998
  recalculate(outerHorizontalRowContentBounds) {
95852
95999
  const currInterval = this.currInterval;
95853
96000
  this.calculate(outerHorizontalRowContentBounds);
95854
- const pos = currInterval.start + currInterval.busyWidth;
96001
+ const pos = currInterval.start + currInterval.rawUsedWidth;
95855
96002
  const index = this.findIntervalIndexByPosition(pos);
95856
96003
  const interval = this.intervals[index];
95857
96004
  if (interval && interval.start < pos) {
@@ -95871,7 +96018,7 @@ class RowFormattingInfo {
95871
96018
  return index;
95872
96019
  }
95873
96020
  canIncrementHeightTo(newHeight) {
95874
- const contentBounds = utils_list.ListUtils.map(this.intervals, (c) => new rectangle.Rectangle(c.start, this.minY, c.busyWidth, newHeight));
96021
+ const contentBounds = utils_list.ListUtils.map(this.intervals, (c) => new rectangle.Rectangle(c.start, this.minY, c.usedWidth, newHeight));
95875
96022
  const intersectedObjects = this.calcIntersectObjects(newHeight);
95876
96023
  return !utils_list.ListUtils.unsafeAnyOf(intersectedObjects, (ancBound) => utils_list.ListUtils.unsafeAnyOf(contentBounds, (contentBound) => RectangleUtils.getNonCollapsedIntersection(contentBound, ancBound)));
95877
96024
  }
@@ -96295,7 +96442,7 @@ class RowSizesManager {
96295
96442
  }
96296
96443
  else {
96297
96444
  box.x = this.rowFormattingInfo.intervals[0].startOfFreeSpace;
96298
- this.rowFormattingInfo.intervals[0].avaliableWidth -= Math.min(box.width, this.rowFormattingInfo.intervals[0].avaliableWidth);
96445
+ this.rowFormattingInfo.intervals[0].avaliableWidth -= box.width;
96299
96446
  this.addBoxIgnoreWidth();
96300
96447
  }
96301
96448
  }
@@ -96332,8 +96479,6 @@ class RowSizesManager {
96332
96479
  const box = this.rowFormatter.currBox;
96333
96480
  box.x = this.rowFormattingInfo.currInterval.startOfFreeSpace;
96334
96481
  this.rowFormattingInfo.currInterval.avaliableWidth -= box.width;
96335
- if (this.rowFormattingInfo.currInterval.avaliableWidth < 0)
96336
- this.rowFormattingInfo.currInterval.avaliableWidth = 0;
96337
96482
  this.row.boxes.push(box);
96338
96483
  this.rowFormattingInfo.lastNonEmptyIntervalIndex = this.rowFormattingInfo.currIndex;
96339
96484
  this.rowFormatter.setBoxInfo(true);
@@ -98537,7 +98682,7 @@ class CellInfo {
98537
98682
  get heightAfterContent() { return this.actualCellInfo._heightAfterContent; }
98538
98683
  get tableInfo() { return this.rowInfo.tableInfo; }
98539
98684
  get cell() { return this.rowInfo.row.cells[this.cellIndex]; }
98540
- get isContendFullyPlaced() { return this.actualCellInfo._contentModelPosition == this.actualCellInfo.cell.endParagrapPosition.value; }
98685
+ get isContendFullyPlaced() { return this.actualCellInfo._contentModelPosition == this.actualCellInfo.cell.endParagraphPosition.value; }
98541
98686
  get formattingSuspended() { return this._formattingSuspended; }
98542
98687
  get currLayoutTableCellInfo() { return this.actualCellInfo._currLayoutTableCellInfo; }
98543
98688
  get contentModelPosition() { return this.actualCellInfo._contentModelPosition; }
@@ -98566,7 +98711,7 @@ class CellInfo {
98566
98711
  return this.tableInfo.rows[cellGridInfo.getStartRowIndex()].cells[cellGridInfo.getCellIndex(0)];
98567
98712
  }
98568
98713
  cellFullyFormatted() {
98569
- this.cellPartiallyFormatted(this.actualCellInfo.cell.endParagrapPosition.value);
98714
+ this.cellPartiallyFormatted(this.actualCellInfo.cell.endParagraphPosition.value);
98570
98715
  }
98571
98716
  cellPartiallyFormatted(endPos) {
98572
98717
  if (!this.formattingSuspended)
@@ -99172,7 +99317,7 @@ class Formatter {
99172
99317
  const index = this.nestedLevel + 1;
99173
99318
  const tblPos = this.getNestedTablePosition(tablePositions);
99174
99319
  if (tblPos && (tblPos.rowIndex != 0 || tblPos.cellIndex != 0)) {
99175
- const formatter = this.posToWaitingContinuedFormatterMap[tblPos.cell.endParagrapPosition.value];
99320
+ const formatter = this.posToWaitingContinuedFormatterMap[tblPos.cell.endParagraphPosition.value];
99176
99321
  if (formatter) {
99177
99322
  this.tableInfo.currCellInfo.innerFormatter = formatter;
99178
99323
  return;
@@ -99300,7 +99445,7 @@ class Formatter {
99300
99445
  if (!actualNestedTablePos) {
99301
99446
  const oldNestedTablePos = this.getNestedTablePosition(info.tablePosition);
99302
99447
  if (oldNestedTablePos)
99303
- this.posToWaitingContinuedFormatterMap[oldNestedTablePos.cell.endParagrapPosition.value] = cellInfo.innerFormatter;
99448
+ this.posToWaitingContinuedFormatterMap[oldNestedTablePos.cell.endParagraphPosition.value] = cellInfo.innerFormatter;
99304
99449
  }
99305
99450
  }
99306
99451
  result.set(AddRowToTableResult.TableFinished, false);
@@ -100112,6 +100257,7 @@ class BaseFormatter {
100112
100257
  this.layoutPosition.column.height = columnHeight;
100113
100258
  this.layoutPosition.pageArea.height = columnHeight;
100114
100259
  this.layoutPosition.page.height = finalPageHeight;
100260
+ this.layoutPosition.page.width = this.calculateContentWidth(this.layoutPosition.column) + margins.horizontal;
100115
100261
  this.layoutPosition.page.minContentHeight = minVisibleAreaHeight;
100116
100262
  }
100117
100263
  createdColumn.paragraphFrames = ParagraphFrameCollector.collect(this.manager.model.colorProvider, createdColumn, this.subDocument.isMain() ?
@@ -100131,6 +100277,16 @@ class BaseFormatter {
100131
100277
  }
100132
100278
  return true;
100133
100279
  }
100280
+ calculateContentWidth(column) {
100281
+ let maxRight = 0;
100282
+ column.tablesInfo.forEach(tableInfo => {
100283
+ maxRight = Math.max(maxRight, tableInfo.right);
100284
+ });
100285
+ column.rows.forEach(row => {
100286
+ maxRight = Math.max(maxRight, row.right);
100287
+ });
100288
+ return maxRight;
100289
+ }
100134
100290
  createNextPageArea() {
100135
100291
  const newPageArea = new LayoutPageArea(this.subDocument);
100136
100292
  newPageArea.setGeomerty(this.pageAreaBounds);
@@ -103363,6 +103519,8 @@ class LayoutStartWordBound extends LayoutWordBounds {
103363
103519
 
103364
103520
 
103365
103521
 
103522
+
103523
+
103366
103524
  class SelectTableCommandBase extends CommandBase {
103367
103525
  getState() {
103368
103526
  let state = new SimpleCommandState(this.isEnabled());
@@ -103396,13 +103554,22 @@ class SelectTableCommandBase extends CommandBase {
103396
103554
  class SelectTableCellCommand extends SelectTableCommandBase {
103397
103555
  executeCore(_state, _options) {
103398
103556
  const tableInfo = this.selection.tableInfo;
103557
+ let selectedCell = null;
103558
+ let lastCell = null;
103399
103559
  let isFirstCell = true;
103400
103560
  tableInfo.extendedData.foreach(() => { }, (cellInfo) => {
103561
+ if (!selectedCell)
103562
+ selectedCell = cellInfo.cell;
103563
+ lastCell = cellInfo.cell;
103401
103564
  const firstPos = cellInfo.cell.startParagraphPosition.value;
103402
- const lastPos = cellInfo.cell.endParagrapPosition.value;
103565
+ const lastPos = cellInfo.cell.endParagraphPosition.value;
103403
103566
  this.addSelection(firstPos, lastPos, isFirstCell);
103404
103567
  isFirstCell = false;
103405
103568
  });
103569
+ if (selectedCell) {
103570
+ const newSelectionState = new TableCellSelectionState(selectedCell.startParagraphPosition.value, lastCell.startParagraphPosition.value);
103571
+ this.selection.changeState((newState) => newState.setTableSelectionInfo(newSelectionState));
103572
+ }
103406
103573
  return true;
103407
103574
  }
103408
103575
  }
@@ -103443,7 +103610,7 @@ class SelectTableColumnCommand extends SelectTableCommandBase {
103443
103610
  let cell = row.cells[cellIndex];
103444
103611
  if (cell && prevAddedCell !== cell) {
103445
103612
  let firstPos = cell.startParagraphPosition.value;
103446
- let lastPos = cell.endParagrapPosition.value;
103613
+ let lastPos = cell.endParagraphPosition.value;
103447
103614
  this.addSelection(firstPos, lastPos, isFirstItem, ModelScrollManager.DontChangeScrollPosition);
103448
103615
  isFirstItem = false;
103449
103616
  }
@@ -103494,7 +103661,7 @@ class SelectTableCommand extends SelectTableCommandBase {
103494
103661
  if (!(0,common.isDefined)(table))
103495
103662
  return false;
103496
103663
  let firstPos = table.getFirstCell().startParagraphPosition.value;
103497
- let lastPos = table.getLastCell().endParagrapPosition.value;
103664
+ let lastPos = table.getLastCell().endParagraphPosition.value;
103498
103665
  this.addSelection(firstPos, lastPos, true);
103499
103666
  return true;
103500
103667
  }
@@ -103507,7 +103674,29 @@ class ExtendSelectTableCommand extends SelectTableCommand {
103507
103674
  }
103508
103675
  class SelectTableCellsRangeCommand extends SelectTableCommandBase {
103509
103676
  executeCore(_state, options) {
103677
+ var _a, _b, _c, _d, _e;
103510
103678
  const parameter = options.param;
103679
+ let defaultAnchor;
103680
+ let defaultActive;
103681
+ let defaultEol;
103682
+ if (parameter.singleCellEntryDirection !== TableNavDirection.None && parameter.singleCellEntryDirection != null) {
103683
+ defaultAnchor = this.selection.anchorPosition;
103684
+ defaultEol = this.selection.endOfLine;
103685
+ if (this.selection.forwardDirection) {
103686
+ defaultActive = this.selection.lastSelectedInterval.end;
103687
+ }
103688
+ else {
103689
+ defaultActive = this.selection.lastSelectedInterval.start;
103690
+ }
103691
+ }
103692
+ else {
103693
+ defaultAnchor = this.selection.tableTextSelectionAnchorPosition;
103694
+ defaultActive = this.selection.tableTextSelectionActivePosition;
103695
+ defaultEol = this.selection.tableTextSelectionEndOfLine;
103696
+ }
103697
+ const textSelectionAnchorPosition = (_a = parameter.textSelectionAnchorPosition) !== null && _a !== void 0 ? _a : defaultAnchor;
103698
+ const textSelectionActivePosition = (_b = parameter.textSelectionActivePosition) !== null && _b !== void 0 ? _b : defaultActive;
103699
+ const textSelectionEndOfLine = (_c = parameter.textSelectionEndOfLine) !== null && _c !== void 0 ? _c : defaultEol;
103511
103700
  let forwardDirection = parameter.firstCell.startParagraphPosition.value <= parameter.lastCell.startParagraphPosition.value;
103512
103701
  if (parameter.lastCell.parentRow.parentTable !== parameter.firstCell.parentRow.parentTable)
103513
103702
  throw new Error("cells should be from the same table");
@@ -103531,12 +103720,17 @@ class SelectTableCellsRangeCommand extends SelectTableCommandBase {
103531
103720
  let cell = row.cells[cellIndex];
103532
103721
  if (!cell)
103533
103722
  break;
103534
- this.addSelection(forwardDirection ? cell.startParagraphPosition.value : cell.endParagrapPosition.value, forwardDirection ? cell.endParagrapPosition.value : cell.startParagraphPosition.value, isFirstSelection && !parameter.extendSelection);
103723
+ this.addSelection(forwardDirection ? cell.startParagraphPosition.value : cell.endParagraphPosition.value, forwardDirection ? cell.endParagraphPosition.value : cell.startParagraphPosition.value, isFirstSelection && !parameter.extendSelection);
103535
103724
  isFirstSelection = false;
103536
103725
  columnIndex += cell.columnSpan;
103537
103726
  cellIndex++;
103538
103727
  }
103539
103728
  }
103729
+ const isSingleCellSelection = parameter.firstCell.startParagraphPosition.value === parameter.lastCell.startParagraphPosition.value;
103730
+ const entryDirection = isSingleCellSelection ? ((_d = parameter.singleCellEntryDirection) !== null && _d !== void 0 ? _d : TableNavDirection.None) : TableNavDirection.None;
103731
+ const shrinkDirection = isSingleCellSelection ? ((_e = parameter.singleCellShrinkDirection) !== null && _e !== void 0 ? _e : TableNavDirection.None) : TableNavDirection.None;
103732
+ const newSelectionState = new TableCellSelectionState(parameter.firstCell.startParagraphPosition.value, parameter.lastCell.startParagraphPosition.value, entryDirection, shrinkDirection, textSelectionAnchorPosition, textSelectionActivePosition, textSelectionEndOfLine);
103733
+ this.selection.changeState((newState) => newState.setTableSelectionInfo(newSelectionState));
103540
103734
  return true;
103541
103735
  }
103542
103736
  }
@@ -104503,8 +104697,14 @@ class DocumentRenderer {
104503
104697
  }
104504
104698
  }
104505
104699
  updatePageSize(page, pageElement) {
104506
- if (pageElement.offsetHeight != Math.round(page.height) || pageElement.offsetWidth != Math.round(page.width))
104700
+ if (pageElement.offsetHeight != Math.round(page.height) || pageElement.offsetWidth != Math.round(page.width)) {
104507
104701
  dom.DomUtils.setStyleSize(pageElement.style, page);
104702
+ if (this.viewManager.innerClientProperties.viewsSettings.isSimpleView) {
104703
+ const paddings = this.viewManager.innerClientProperties.viewsSettings.paddings;
104704
+ if (page.width - paddings.right <= this.viewManager.sizes.getVisibleAreaWidth(false))
104705
+ pageElement.style.width = "100%";
104706
+ }
104707
+ }
104508
104708
  }
104509
104709
  updatePageClasses(pageElement) {
104510
104710
  pageElement.className = RendererClassNames.PAGE;
@@ -105585,7 +105785,7 @@ class RulerChangeTableSizeCommnandBase extends CommandBase {
105585
105785
  return new SimpleCommandState(this.isEnabled());
105586
105786
  }
105587
105787
  DEPRECATEDCorrectlMainCommandOptions(options) {
105588
- options.intervalsInfo.position = this.selection.reversedAnchorPostion;
105788
+ options.intervalsInfo.position = this.selection.reversedAnchorPosition;
105589
105789
  }
105590
105790
  getLayoutTableBySelection(subDocument, position) {
105591
105791
  const selection = this.selection;
@@ -107035,7 +107235,7 @@ class MouseHandlerContinueSelectionByTableCellsState extends MouseHandlerContinu
107035
107235
  }
107036
107236
  if (this.lastCell === sameTableCells.lastCell)
107037
107237
  return;
107038
- let commandParameters = {
107238
+ const commandParameters = {
107039
107239
  firstCell: sameTableCells.firstCell,
107040
107240
  lastCell: sameTableCells.lastCell,
107041
107241
  extendSelection: extendSelection
@@ -107047,7 +107247,7 @@ class MouseHandlerContinueSelectionByTableCellsState extends MouseHandlerContinu
107047
107247
  selectWholeInterval(htr, evt, extendSelection) {
107048
107248
  let selection = this.handler.control.selection;
107049
107249
  let position = htr.getPosition();
107050
- let startPosition = position >= this.startCell.endParagrapPosition.value ?
107250
+ let startPosition = position >= this.startCell.endParagraphPosition.value ?
107051
107251
  this.startParentCell.parentRow.getStartPosition() :
107052
107252
  this.startParentCell.parentRow.getEndPosition();
107053
107253
  if (selection.multiselection) {
@@ -108427,12 +108627,18 @@ class EventManager {
108427
108627
  clearTimeout(this.onMouseUpTimerId);
108428
108628
  }
108429
108629
  onShortcut(shortcutCode) {
108430
- if (this.accumulatedText.length)
108431
- this.insertFunc();
108432
- this.control.shortcutManager.processShortcut(shortcutCode);
108433
- this.mouseHandler.onShortcut(shortcutCode);
108434
- if (utils_enum/* EnumUtils */.Y.isAnyOf(shortcutCode, key/* KeyCode */.VD.Enter, key/* KeyCode */.VD.Tab, key/* KeyCode */.VD.Space) && this.control.selection.lastSelectedInterval.start > 0)
108435
- this.control.autoCorrectService.performAutoCorrect();
108630
+ this.control.beginUpdate();
108631
+ try {
108632
+ if (this.accumulatedText.length)
108633
+ this.insertFunc();
108634
+ this.control.shortcutManager.processShortcut(shortcutCode);
108635
+ this.mouseHandler.onShortcut(shortcutCode);
108636
+ if (utils_enum/* EnumUtils */.Y.isAnyOf(shortcutCode, key/* KeyCode */.VD.Enter, key/* KeyCode */.VD.Tab, key/* KeyCode */.VD.Space) && this.control.selection.lastSelectedInterval.start > 0)
108637
+ this.control.autoCorrectService.performAutoCorrect();
108638
+ }
108639
+ finally {
108640
+ this.control.endUpdate();
108641
+ }
108436
108642
  }
108437
108643
  onMouseDown(evt) {
108438
108644
  Log.print(LogSource.EventManager, "onMouseDown", LogObjToStrCanvas.richMouseEvent(evt));
@@ -108489,7 +108695,6 @@ class EventManager {
108489
108695
  onMouseDblClick(evt) {
108490
108696
  Log.print(LogSource.EventManager, "onMouseDoubleClick", LogObjToStrCanvas.richMouseEvent(evt));
108491
108697
  this.mouseHandler.onMouseDoubleClick(evt);
108492
- this.control.inputController.setPosition(evt.absolutePoint.x, evt.absolutePoint.y);
108493
108698
  }
108494
108699
  onMouseWheel(evt) {
108495
108700
  Log.print(LogSource.EventManager, "onMouseWheel", LogObjToStrCanvas.richMouseEvent(evt));
@@ -108581,6 +108786,8 @@ class EventManager {
108581
108786
  this.control.modelManager.modelManipulator.notifyModelChanged(new TextBufferChangedSubDocumentChange(subDocument.id, state));
108582
108787
  }
108583
108788
  insertFunc() {
108789
+ if (this.accumulatedText.length === 0)
108790
+ return;
108584
108791
  const insertCommand = this.control.commandManager.getCommand(RichEditClientCommand.InsertText);
108585
108792
  const textWasInserted = insertCommand.execute(this.control.commandManager.isPublicApiCall, this.accumulatedText);
108586
108793
  this.accumulatedText = "";
@@ -111471,6 +111678,7 @@ var data_transfer = __webpack_require__(8475);
111471
111678
 
111472
111679
 
111473
111680
 
111681
+
111474
111682
  class ClipboardContentInserter {
111475
111683
  constructor(control) {
111476
111684
  this.control = control;
@@ -111505,7 +111713,7 @@ class ClipboardContentInserter {
111505
111713
  if (this.processed)
111506
111714
  return;
111507
111715
  const command = this.control.commandManager.getCommand(RichEditClientCommand.InsertHtml);
111508
- command.execute(true, htmlText);
111716
+ command.execute(true, HtmlImporter.convertHtml(htmlText));
111509
111717
  this.processed = true;
111510
111718
  });
111511
111719
  }
@@ -112705,7 +112913,7 @@ class SelectionFormatter extends batch_updatable/* BatchUpdatableObject */.IS {
112705
112913
  const tableGrid = rowInfo.parentTable.logicInfo.grid;
112706
112914
  const cellGridInfo = tableGrid.tableCellGridInfos[rowInfo.rowIndex][cellInfo.cellGridIndex];
112707
112915
  const cell = tableGrid.table.rows[cellGridInfo.getStartRowIndex()].cells[cellGridInfo.getCellIndex(0)];
112708
- if (selectionPosition == cell.endParagrapPosition.value - 1) {
112916
+ if (selectionPosition == cell.endParagraphPosition.value - 1) {
112709
112917
  for (let prevNestedTableColumnInfo of cursorPos.column.tablesInfo) {
112710
112918
  if (prevNestedTableColumnInfo.logicInfo.grid.table.getEndPosition() == selectionPosition) {
112711
112919
  const lastBorder = utils_list.ListUtils.last(prevNestedTableColumnInfo.verticalBorders);
@@ -112810,7 +113018,7 @@ class SelectionFormatter extends batch_updatable/* BatchUpdatableObject */.IS {
112810
113018
  if (!cell)
112811
113019
  return false;
112812
113020
  for (let interval of allIntervals)
112813
- if (cell.startParagraphPosition.value >= interval.start && cell.endParagrapPosition.value <= interval.end)
113021
+ if (cell.startParagraphPosition.value >= interval.start && cell.endParagraphPosition.value <= interval.end)
112814
113022
  return true;
112815
113023
  return false;
112816
113024
  }
@@ -112932,7 +113140,7 @@ class SelectedCellsCollector {
112932
113140
  this.fullySelectedCells = {};
112933
113141
  }
112934
113142
  isNeedAddCellToSelection(cell, cellInfo) {
112935
- const key = cell.endParagrapPosition.value;
113143
+ const key = cell.endParagraphPosition.value;
112936
113144
  const cellInfos = this.fullySelectedCells[key];
112937
113145
  if (cellInfos === undefined) {
112938
113146
  this.fullySelectedCells[key] = [cellInfo];
@@ -120440,7 +120648,11 @@ class Utils {
120440
120648
  static getTrimmedMessage(id) {
120441
120649
  const message = (0,external_DevExpress_localization_namespaceObject.formatMessage)(id);
120442
120650
  const trimmedFromEnd = utils_string.StringUtils.trimEnd(message, ['\\.']);
120443
- return trimmedFromEnd.replace(/&&|&/g, match => (match === "&&" ? "&" : ""));
120651
+ return trimmedFromEnd
120652
+ .replace(/&&/g, '\u0000')
120653
+ .replace(/(\S)&/g, "$1")
120654
+ .replace(/&(\S)/g, "$1")
120655
+ .replace(/\u0000/g, '&');
120444
120656
  }
120445
120657
  }
120446
120658
  class TypeConverterFactory {
@@ -120973,9 +121185,9 @@ function loadDefaultMessages() {
120973
121185
  "XtraRichEditStringId.Caption_FollowingParagraphText": "Following Paragraph ",
120974
121186
  "XtraRichEditStringId.Caption_GroupTableAlignment": "Alignment",
120975
121187
  "XtraRichEditStringId.Caption_GroupTableCellSize": "Cell Size",
120976
- "XtraRichEditStringId.Caption_GroupTableDrawBorders": "Borders && Shadings",
121188
+ "XtraRichEditStringId.Caption_GroupTableDrawBorders": "Borders & Shadings",
120977
121189
  "XtraRichEditStringId.Caption_GroupTableMerge": "Merge",
120978
- "XtraRichEditStringId.Caption_GroupTableRowsAndColumns": "Rows && Columns",
121190
+ "XtraRichEditStringId.Caption_GroupTableRowsAndColumns": "Rows & Columns",
120979
121191
  "XtraRichEditStringId.Caption_GroupTableStyleOptions": "Table Style Options",
120980
121192
  "XtraRichEditStringId.Caption_GroupTableStyles": "Table Styles",
120981
121193
  "XtraRichEditStringId.Caption_GroupTableTable": "Table",
@@ -122473,7 +122685,7 @@ function loadDefaultMessages() {
122473
122685
  "ASPxRichEditStringId.PageMailings": "Mail Merge",
122474
122686
  "ASPxRichEditStringId.PageReview": "Review",
122475
122687
  "ASPxRichEditStringId.PageView": "View",
122476
- "ASPxRichEditStringId.PageHeaderAndFooter": "Header && Footer",
122688
+ "ASPxRichEditStringId.PageHeaderAndFooter": "Header & Footer",
122477
122689
  "ASPxRichEditStringId.PageTableDesign": "Design",
122478
122690
  "ASPxRichEditStringId.PageTableLayout": "Layout",
122479
122691
  "ASPxRichEditStringId.PageFloatingObjects": "Format",
@@ -122492,7 +122704,7 @@ function loadDefaultMessages() {
122492
122704
  "ASPxRichEditStringId.GroupSymbols": "Symbols",
122493
122705
  "ASPxRichEditStringId.GroupLinks": "Links",
122494
122706
  "ASPxRichEditStringId.GroupPages": "Pages",
122495
- "ASPxRichEditStringId.GroupHeaderFooter": "Header && Footer",
122707
+ "ASPxRichEditStringId.GroupHeaderFooter": "Header & Footer",
122496
122708
  "ASPxRichEditStringId.GroupHeaderFooterToolsDesignClose": "Close",
122497
122709
  "ASPxRichEditStringId.GroupHeaderFooterToolsDesignNavigation": "Navigation",
122498
122710
  "ASPxRichEditStringId.GroupMailMerge": "Mail Merge",
@@ -122517,9 +122729,9 @@ function loadDefaultMessages() {
122517
122729
  "ASPxRichEditStringId.GroupView": "View",
122518
122730
  "ASPxRichEditStringId.GroupTableToolsDesignTableStyleOptions": "Table Style Options",
122519
122731
  "ASPxRichEditStringId.GroupTableToolsDesignTableStyles": "Table Styles",
122520
- "ASPxRichEditStringId.GroupTableToolsDesignBordersAndShadings": "Borders && Shadings",
122732
+ "ASPxRichEditStringId.GroupTableToolsDesignBordersAndShadings": "Borders & Shadings",
122521
122733
  "ASPxRichEditStringId.GroupTableToolsLayoutTable": "Table",
122522
- "ASPxRichEditStringId.GroupTableToolsLayoutRowsAndColumns": "Rows && Columns",
122734
+ "ASPxRichEditStringId.GroupTableToolsLayoutRowsAndColumns": "Rows & Columns",
122523
122735
  "ASPxRichEditStringId.GroupTableToolsLayoutMerge": "Merge",
122524
122736
  "ASPxRichEditStringId.GroupTableToolsLayoutCellSize": "Cell Size",
122525
122737
  "ASPxRichEditStringId.GroupTableToolsLayoutAlignment": "Alignment",
@@ -122912,7 +123124,7 @@ function loadDefaultMessages() {
122912
123124
  "RichEditExtensionsStringId.Caption_GroupFloatingPictureToolsArrange": "Arrange",
122913
123125
  "RichEditExtensionsStringId.Caption_GroupFloatingPictureToolsShapeStyles": "Shape Styles",
122914
123126
  "RichEditExtensionsStringId.Caption_GroupFont": "Font",
122915
- "RichEditExtensionsStringId.Caption_GroupHeaderFooter": "Header && Footer",
123127
+ "RichEditExtensionsStringId.Caption_GroupHeaderFooter": "Header & Footer",
122916
123128
  "RichEditExtensionsStringId.Caption_GroupHeaderFooterToolsDesignClose": "Close",
122917
123129
  "RichEditExtensionsStringId.Caption_GroupHeaderFooterToolsDesignNavigation": "Navigation",
122918
123130
  "RichEditExtensionsStringId.Caption_GroupHeaderFooterToolsDesignOptions": "Options",
@@ -124814,6 +125026,16 @@ class BookmarksDialogParameters extends DialogParametersBase {
124814
125026
  }
124815
125027
  }
124816
125028
 
125029
+ ;// CONCATENATED MODULE: ./src/common/commands/border-command-options.ts
125030
+
125031
+ class BorderCommandOptions extends CommandSimpleOptions {
125032
+ constructor(control, parameter, forceApply) {
125033
+ super(control, parameter);
125034
+ this.forceApply = false;
125035
+ this.forceApply = forceApply;
125036
+ }
125037
+ }
125038
+
124817
125039
  ;// CONCATENATED MODULE: ./src/common/commands/tables/toggle-table-cells-border-command.ts
124818
125040
 
124819
125041
 
@@ -124827,6 +125049,7 @@ class BookmarksDialogParameters extends DialogParametersBase {
124827
125049
 
124828
125050
 
124829
125051
 
125052
+
124830
125053
  class ToggleTableCellsBorderCommandBase extends CommandBase {
124831
125054
  constructor() {
124832
125055
  super(...arguments);
@@ -124856,12 +125079,18 @@ class ToggleTableCellsBorderCommandBase extends CommandBase {
124856
125079
  [RichEditClientCommand.ToggleTableCellsTopBorder]: true,
124857
125080
  };
124858
125081
  }
124859
- getState(_options = this.convertToCommandOptions(null)) {
125082
+ getState(options = this.convertToCommandOptions(null)) {
124860
125083
  const tableInfo = this.selection.tableInfo;
124861
125084
  let enabled = this.isEnabled() && this.selection.tableInfo.extendedData.areCellsSelectedInSeries;
124862
125085
  let state = new SimpleCommandState(enabled);
124863
- if (state.enabled)
124864
- state.value = this.isChecked(tableInfo);
125086
+ if (state.enabled) {
125087
+ if (options instanceof BorderCommandOptions && options.forceApply) {
125088
+ state.value = !ToggleTableCellsBorderCommandBase.isBorderVisible(options.param);
125089
+ }
125090
+ else {
125091
+ state.value = this.isChecked(tableInfo);
125092
+ }
125093
+ }
124865
125094
  return state;
124866
125095
  }
124867
125096
  isEnabled() {
@@ -125485,6 +125714,7 @@ var TableBorderGridCellInfo;
125485
125714
 
125486
125715
 
125487
125716
 
125717
+
125488
125718
  class DialogBorderShadingCommandBase extends ShowDialogCommandBase {
125489
125719
  getState() {
125490
125720
  const visible = this.selection.tableInfo.extendedData.numRows > 0;
@@ -125542,27 +125772,33 @@ class DialogBorderShadingCommandBase extends ShowDialogCommandBase {
125542
125772
  changed = true;
125543
125773
  }
125544
125774
  if (newParams.top && !newParams.top.equals(initParams.top)) {
125545
- this.topBorderCommand.execute(this.control.commandManager.isPublicApiCall, newParams.top.getBorderInfo());
125775
+ const opts = new BorderCommandOptions(this.control, newParams.top.getBorderInfo(), true);
125776
+ this.topBorderCommand.execute(this.control.commandManager.isPublicApiCall, opts);
125546
125777
  changed = true;
125547
125778
  }
125548
125779
  if (newParams.bottom && !newParams.bottom.equals(initParams.bottom)) {
125549
- this.bottomBorderCommand.execute(this.control.commandManager.isPublicApiCall, newParams.bottom.getBorderInfo());
125780
+ const opts = new BorderCommandOptions(this.control, newParams.bottom.getBorderInfo(), true);
125781
+ this.bottomBorderCommand.execute(this.control.commandManager.isPublicApiCall, opts);
125550
125782
  changed = true;
125551
125783
  }
125552
125784
  if (newParams.right && !newParams.right.equals(initParams.right)) {
125553
- this.rightBorderCommand.execute(this.control.commandManager.isPublicApiCall, newParams.right.getBorderInfo());
125785
+ const opts = new BorderCommandOptions(this.control, newParams.right.getBorderInfo(), true);
125786
+ this.rightBorderCommand.execute(this.control.commandManager.isPublicApiCall, opts);
125554
125787
  changed = true;
125555
125788
  }
125556
125789
  if (newParams.left && !newParams.left.equals(initParams.left)) {
125557
- this.leftBorderCommand.execute(this.control.commandManager.isPublicApiCall, newParams.left.getBorderInfo());
125790
+ const opts = new BorderCommandOptions(this.control, newParams.left.getBorderInfo(), true);
125791
+ this.leftBorderCommand.execute(this.control.commandManager.isPublicApiCall, opts);
125558
125792
  changed = true;
125559
125793
  }
125560
125794
  if (newParams.insideHorizontal && !newParams.insideHorizontal.equals(initParams.insideHorizontal)) {
125561
- this.insideHorizontalBordersCommand.execute(this.control.commandManager.isPublicApiCall, newParams.insideHorizontal.getBorderInfo());
125795
+ const opts = new BorderCommandOptions(this.control, newParams.insideHorizontal.getBorderInfo(), true);
125796
+ this.insideHorizontalBordersCommand.execute(this.control.commandManager.isPublicApiCall, opts);
125562
125797
  changed = true;
125563
125798
  }
125564
125799
  if (newParams.insideVertical && !newParams.insideVertical.equals(initParams.insideVertical)) {
125565
- this.insideVerticalBordersCommand.execute(this.control.commandManager.isPublicApiCall, newParams.insideVertical.getBorderInfo());
125800
+ const opts = new BorderCommandOptions(this.control, newParams.insideVertical.getBorderInfo(), true);
125801
+ this.insideVerticalBordersCommand.execute(this.control.commandManager.isPublicApiCall, opts);
125566
125802
  changed = true;
125567
125803
  }
125568
125804
  history.endTransaction();
@@ -125575,7 +125811,7 @@ class DialogBorderShadingCommandBase extends ShowDialogCommandBase {
125575
125811
  if (tableInfo.extendedData.numRows > 1 || tableInfo.extendedData.rows[0].cells.length > 1)
125576
125812
  return false;
125577
125813
  const startCell = tableInfo.extendedData.firstCell;
125578
- return selection.intervals[0].start !== startCell.startParagraphPosition.value || selection.intervals[0].end !== startCell.endParagrapPosition.value;
125814
+ return selection.intervals[0].start !== startCell.startParagraphPosition.value || selection.intervals[0].end !== startCell.endParagraphPosition.value;
125579
125815
  }
125580
125816
  getDialogName() {
125581
125817
  return "BorderShading";
@@ -127222,7 +127458,7 @@ class CreateFieldCommandBase extends CommandBase {
127222
127458
  const startCell = Table.getTableCellByPosition(tables, interval.start);
127223
127459
  const endCell = Table.getTableCellByPosition(tables, interval.end);
127224
127460
  return startCell && endCell && startCell === endCell &&
127225
- interval.end < subDoc.getParagraphByPosition(endCell.endParagrapPosition.value).getEndPosition();
127461
+ interval.end < subDoc.getParagraphByPosition(endCell.endParagraphPosition.value).getEndPosition();
127226
127462
  }
127227
127463
  }
127228
127464
  return true;
@@ -128777,7 +129013,7 @@ class DialogTablePropertiesCommand extends ShowDialogCommandBase {
128777
129013
  let dialogParams = new TablePropertiesDialogParameters();
128778
129014
  const table = this.selection.tableInfo.table;
128779
129015
  const subDocument = options.subDocument;
128780
- const position = table.parentCell ? table.parentCell.endParagrapPosition.value : this.selection.intervals[0].start;
129016
+ const position = table.parentCell ? table.parentCell.endParagraphPosition.value : this.selection.intervals[0].start;
128781
129017
  let lp = subDocument.isMain() ?
128782
129018
  new LayoutPositionMainSubDocumentCreator(this.control.layout, subDocument, position, DocumentLayoutDetailsLevel.Row)
128783
129019
  .create(new LayoutPositionCreatorConflictFlags().setDefault(false), new LayoutPositionCreatorConflictFlags().setDefault(false)) :
@@ -133352,6 +133588,10 @@ class ExtendGoToDocumentStartCommand extends GoToDocumentStartCommandBase {
133352
133588
  ;// CONCATENATED MODULE: ./src/common/commands/selection/selection-command-base.ts
133353
133589
 
133354
133590
 
133591
+
133592
+
133593
+
133594
+
133355
133595
  class SelectionCommandBase extends CommandBase {
133356
133596
  getState() {
133357
133597
  return new SimpleCommandState(this.isEnabled());
@@ -133359,6 +133599,93 @@ class SelectionCommandBase extends CommandBase {
133359
133599
  isEnabledInReadOnlyMode() {
133360
133600
  return true;
133361
133601
  }
133602
+ shouldCollapseSingleCellTableSelection(entryDirection, shrinkDirection) {
133603
+ const selection = this.selection;
133604
+ const hasSingleCellAnchor = selection.tableSelectionAnchorCellPosition >= 0 &&
133605
+ selection.tableSelectionAnchorCellPosition === selection.tableSelectionActiveCellPosition;
133606
+ const collapseByEntryDirection = selection.tableSingleCellEntryDirection === entryDirection;
133607
+ const collapseByShrinkDirection = selection.tableSingleCellShrinkDirection === shrinkDirection;
133608
+ return selection.tableInfo.isSelected && hasSingleCellAnchor && (collapseByEntryDirection || collapseByShrinkDirection);
133609
+ }
133610
+ collapseSingleCellTableSelectionToCaret() {
133611
+ const selection = this.selection;
133612
+ if (selection.tableTextSelectionAnchorPosition >= 0 && selection.tableTextSelectionActivePosition >= 0) {
133613
+ selection.deprecatedSetSelection(selection.tableTextSelectionAnchorPosition, selection.tableTextSelectionActivePosition, selection.tableTextSelectionEndOfLine, -1, true);
133614
+ return true;
133615
+ }
133616
+ if (selection.tableSingleCellEntryDirection !== TableNavDirection.None && selection.prevState.tableSelection === null) {
133617
+ const prev = selection.prevState;
133618
+ selection.deprecatedSetSelection(prev.anchorPosition, prev.activePosition, prev.endOfLine, -1, true);
133619
+ return true;
133620
+ }
133621
+ const activeCell = selection.getTableSelectionActiveCell();
133622
+ const pos = activeCell ? activeCell.startParagraphPosition.value : 0;
133623
+ selection.deprecatedSetSelection(pos, pos, false, -1, true);
133624
+ return true;
133625
+ }
133626
+ collapseTableCellSelectionSpatialFocus(direction) {
133627
+ const selection = this.selection;
133628
+ if (selection.tableSelectionAnchorCellPosition < 0 || selection.tableSelectionActiveCellPosition < 0)
133629
+ return false;
133630
+ const anchorCell = selection.getTableSelectionAnchorCell();
133631
+ const activeCell = selection.getTableSelectionActiveCell();
133632
+ if (!anchorCell || !activeCell)
133633
+ return false;
133634
+ const table = anchorCell.parentRow.parentTable;
133635
+ if (table !== activeCell.parentRow.parentTable)
133636
+ return false;
133637
+ const anchorColStart = TableCellUtils.getStartColumnIndex(anchorCell);
133638
+ const anchorColEnd = anchorColStart + anchorCell.columnSpan - 1;
133639
+ const activeColStart = TableCellUtils.getStartColumnIndex(activeCell);
133640
+ const activeColEnd = activeColStart + activeCell.columnSpan - 1;
133641
+ const minCol = Math.min(anchorColStart, activeColStart);
133642
+ const maxCol = Math.max(anchorColEnd, activeColEnd);
133643
+ const anchorRowIndex = search.SearchUtils.normedInterpolationIndexOf(table.rows, r => r.getStartPosition(), anchorCell.startParagraphPosition.value);
133644
+ const activeRowIndex = search.SearchUtils.normedInterpolationIndexOf(table.rows, r => r.getStartPosition(), activeCell.startParagraphPosition.value);
133645
+ const minRowIndex = Math.min(anchorRowIndex, activeRowIndex);
133646
+ const maxRowIndex = Math.max(anchorRowIndex, activeRowIndex);
133647
+ let targetCell;
133648
+ let placeAtEnd;
133649
+ switch (direction) {
133650
+ case TableNavDirection.Left: {
133651
+ const row = activeCell.parentRow;
133652
+ const idx = TableCellUtils.getCellIndexByColumnIndex(row, minCol);
133653
+ targetCell = idx >= 0 ? row.cells[idx] : row.cells[0];
133654
+ placeAtEnd = false;
133655
+ break;
133656
+ }
133657
+ case TableNavDirection.Right: {
133658
+ const row = activeCell.parentRow;
133659
+ const idx = TableCellUtils.getCellIndexByColumnIndex(row, maxCol);
133660
+ targetCell = idx >= 0 ? row.cells[idx] : row.cells[row.cells.length - 1];
133661
+ placeAtEnd = true;
133662
+ break;
133663
+ }
133664
+ case TableNavDirection.Up: {
133665
+ const row = table.rows[minRowIndex];
133666
+ const idx = TableCellUtils.getCellIndexByColumnIndex(row, activeColStart);
133667
+ targetCell = idx >= 0 ? row.cells[idx] : row.cells[0];
133668
+ placeAtEnd = false;
133669
+ break;
133670
+ }
133671
+ case TableNavDirection.Down: {
133672
+ const row = table.rows[maxRowIndex];
133673
+ const idx = TableCellUtils.getCellIndexByColumnIndex(row, activeColStart);
133674
+ targetCell = idx >= 0 ? row.cells[idx] : row.cells[row.cells.length - 1];
133675
+ placeAtEnd = true;
133676
+ break;
133677
+ }
133678
+ default:
133679
+ return false;
133680
+ }
133681
+ if (!targetCell)
133682
+ return false;
133683
+ const pos = placeAtEnd
133684
+ ? targetCell.endParagraphPosition.value - 1
133685
+ : targetCell.startParagraphPosition.value;
133686
+ selection.deprecatedSetSelection(pos, pos, false, -1, true);
133687
+ return true;
133688
+ }
133362
133689
  }
133363
133690
 
133364
133691
  ;// CONCATENATED MODULE: ./src/common/commands/selection/go-to-line-vertically-command-base.ts
@@ -133374,6 +133701,16 @@ class SelectionCommandBase extends CommandBase {
133374
133701
 
133375
133702
 
133376
133703
  class GoToLineVerticallyCommandBase extends SelectionCommandBase {
133704
+ getDirection() {
133705
+ return this.isForwardDirection() ? TableNavDirection.Down : TableNavDirection.Up;
133706
+ }
133707
+ getOppositeDirection() {
133708
+ return this.isForwardDirection() ? TableNavDirection.Up : TableNavDirection.Down;
133709
+ }
133710
+ shouldCollapseTableSelectionToCaret() {
133711
+ return this.extendSelection() &&
133712
+ this.shouldCollapseSingleCellTableSelection(this.getOppositeDirection(), this.getDirection());
133713
+ }
133377
133714
  extendTableCellsSelection() {
133378
133715
  const currentLayoutPosition = this.getInitialLayoutPosition();
133379
133716
  if (!currentLayoutPosition)
@@ -133381,17 +133718,34 @@ class GoToLineVerticallyCommandBase extends SelectionCommandBase {
133381
133718
  const cellIterator = new TableCellIterator(currentLayoutPosition, this.control.layout, this.control.measurer);
133382
133719
  const selectedCells = this.getSelectedCells();
133383
133720
  const areCellsSelectedInSeries = this.selection.tableInfo.extendedData.areCellsSelectedInSeries;
133384
- if (this.extendSelection() && (selectedCells.length > 1 || this.canGoToNextTableRow(cellIterator)) && areCellsSelectedInSeries) {
133385
- let isForward = this.selection.isCollapsed() ? this.isForwardDirection() : this.selection.forwardDirection;
133386
- let table = selectedCells[0][0].parentRow.parentTable;
133387
- let currentRow = this.getCurrentTableRow(selectedCells);
133721
+ const canGoToNextTableRow = this.canGoToNextTableRow(cellIterator);
133722
+ if (this.extendSelection() && this.selection.tableSelectionAnchorCellPosition < 0 && canGoToNextTableRow && areCellsSelectedInSeries) {
133723
+ const activeCell = this.selection.getTableSelectionActiveCell();
133724
+ const currentCell = activeCell || (selectedCells.length > 0 && selectedCells[0].length > 0 ? selectedCells[0][0] : null);
133725
+ if (currentCell) {
133726
+ return this.selectTableCellsRange({
133727
+ firstCell: currentCell,
133728
+ lastCell: currentCell,
133729
+ singleCellEntryDirection: this.getDirection(),
133730
+ });
133731
+ }
133732
+ }
133733
+ const hasSingleCellTableSelection = this.selection.tableSelectionAnchorCellPosition >= 0 &&
133734
+ this.selection.tableSelectionAnchorCellPosition === this.selection.tableSelectionActiveCellPosition;
133735
+ if (this.extendSelection() && (selectedCells.length > 1 || canGoToNextTableRow || hasSingleCellTableSelection) && areCellsSelectedInSeries) {
133736
+ const table = selectedCells[0][0].parentRow.parentTable;
133737
+ const anchorCell = this.selection.getTableSelectionAnchorCell();
133738
+ const activeCell = this.selection.getTableSelectionActiveCell();
133739
+ let isForward = (this.selection.isCollapsed() || hasSingleCellTableSelection)
133740
+ ? this.isForwardDirection()
133741
+ : this.selection.forwardDirection;
133742
+ let currentRow = activeCell ? activeCell.parentRow : this.getCurrentTableRow(selectedCells);
133388
133743
  let currentRowIndex = search.SearchUtils.binaryIndexOf(table.rows, (row) => row.getStartPosition() - currentRow.getStartPosition());
133389
133744
  if (this.checkTableRowIndex(currentRowIndex, table.rows.length)) {
133390
133745
  let nextRow = this.getNextTableRow(table, currentRowIndex);
133391
- let firstSelectedCell = selectedCells[0][0];
133392
- let lastSelectedCell = selectedCells[selectedCells.length - 1][selectedCells[selectedCells.length - 1].length - 1];
133393
- return this.performTableCellsSelection(isForward, nextRow, firstSelectedCell, lastSelectedCell);
133746
+ return this.performTableCellsSelection(nextRow, anchorCell, activeCell);
133394
133747
  }
133748
+ this.selection.saveVerticalTableReentrySnapshot(table, selectedCells);
133395
133749
  this.performSelectionOnTheLastTableRow(isForward, selectedCells);
133396
133750
  }
133397
133751
  return false;
@@ -133435,6 +133789,12 @@ class GoToLineVerticallyCommandBase extends SelectionCommandBase {
133435
133789
  return this.control.commandManager.getCommand(RichEditClientCommand.SelectTableCellsRange).execute(this.control.commandManager.isPublicApiCall, parameters);
133436
133790
  }
133437
133791
  executeCore(_state, _options) {
133792
+ if (this.shouldCollapseTableSelectionToCaret()) {
133793
+ this.collapseSingleCellTableSelectionToCaret();
133794
+ return true;
133795
+ }
133796
+ if (!this.extendSelection() && this.collapseTableCellSelectionSpatialFocus(this.isForwardDirection() ? TableNavDirection.Down : TableNavDirection.Up))
133797
+ return true;
133438
133798
  if (this.extendTableCellsSelection())
133439
133799
  return true;
133440
133800
  var selection = this.selection;
@@ -133476,6 +133836,40 @@ class GoToLineVerticallyCommandBase extends SelectionCommandBase {
133476
133836
  }
133477
133837
  }
133478
133838
  var newLogPosition = this.getLogPositionByX(newLayoutPosition, keepX);
133839
+ const hasExplicitTableCellSelection = selection.hasExplicitTableCellSelection;
133840
+ if (this.extendSelection() && !hasExplicitTableCellSelection) {
133841
+ let tableAtNewPosition = Table.getTableByPosition(subDocument.tables, newLogPosition, true);
133842
+ const snapshotTable = selection.getTableForSelectionRestore(subDocument);
133843
+ if ((!tableAtNewPosition || (snapshotTable && tableAtNewPosition.getStartPosition() !== snapshotTable.getStartPosition())) && snapshotTable) {
133844
+ const tableStart = snapshotTable.getStartPosition();
133845
+ const tableEnd = snapshotTable.getEndPosition();
133846
+ if (newLogPosition >= tableStart - 1 && newLogPosition <= tableEnd) {
133847
+ const clampedPos = Math.max(tableStart, Math.min(newLogPosition, tableEnd - 1));
133848
+ const probeTable = Table.getTableByPosition(subDocument.tables, clampedPos, true);
133849
+ if (probeTable && probeTable.getStartPosition() === tableStart)
133850
+ tableAtNewPosition = probeTable;
133851
+ }
133852
+ }
133853
+ const snapshot = tableAtNewPosition ? selection.getVerticalTableReentrySnapshot(tableAtNewPosition) : null;
133854
+ if (snapshot) {
133855
+ const firstCell = Table.getTableCellByPositionFromTable(tableAtNewPosition, snapshot.firstCellPosition);
133856
+ const lastCell = Table.getTableCellByPositionFromTable(tableAtNewPosition, snapshot.lastCellPosition);
133857
+ if (firstCell && lastCell) {
133858
+ const isRestored = this.selectTableCellsRange({
133859
+ firstCell,
133860
+ lastCell,
133861
+ textSelectionAnchorPosition: snapshot.textSelectionAnchorPosition,
133862
+ textSelectionActivePosition: snapshot.textSelectionActivePosition,
133863
+ textSelectionEndOfLine: snapshot.textSelectionEndOfLine,
133864
+ });
133865
+ if (isRestored) {
133866
+ selection.clearVerticalTableReentrySnapshot();
133867
+ return true;
133868
+ }
133869
+ }
133870
+ selection.clearVerticalTableReentrySnapshot();
133871
+ }
133872
+ }
133479
133873
  if (newLogPosition == initialLayoutPosition.getLogPosition())
133480
133874
  return false;
133481
133875
  var endOfLine = this.isEndOfLine(newLayoutPosition, newLogPosition);
@@ -133513,22 +133907,17 @@ class GoToLineVerticallyCommandBase extends SelectionCommandBase {
133513
133907
  getNextTableRow(_table, _rowIndex) {
133514
133908
  throw new Error(lib_errors/* Errors */.D.NotImplemented);
133515
133909
  }
133516
- performTableCellsSelection(isForward, nextRow, firstCell, lastCell) {
133517
- let lastSelectedCell = isForward ? lastCell : firstCell;
133518
- let lastCellIndex = TableCellUtils.getCellIndexByColumnIndex(nextRow, TableCellUtils.getStartColumnIndex(lastSelectedCell));
133519
- const newFirstCell = isForward ? firstCell : lastCell;
133520
- const newLastCell = nextRow.cells[lastCellIndex];
133521
- if (newFirstCell === newLastCell) {
133522
- const firstPos = newFirstCell.startParagraphPosition.value;
133523
- const lastPos = newFirstCell.endParagrapPosition.value - 1;
133524
- this.selection.changeState(state => state.setInterval(fixed.FixedInterval.fromPositions(firstPos, lastPos)).setForwardDirection(isForward));
133525
- return true;
133526
- }
133527
- else
133528
- return this.selectTableCellsRange({
133529
- firstCell: newFirstCell,
133530
- lastCell: newLastCell
133531
- });
133910
+ performTableCellsSelection(nextRow, anchorCell, activeCell) {
133911
+ const activeCellIndex = TableCellUtils.getCellIndexByColumnIndex(nextRow, TableCellUtils.getStartColumnIndex(activeCell));
133912
+ const nextActiveCell = nextRow.cells[activeCellIndex];
133913
+ const isShrinkToSingle = !!anchorCell && !!nextActiveCell &&
133914
+ anchorCell.startParagraphPosition.value === nextActiveCell.startParagraphPosition.value &&
133915
+ this.selection.tableSelectionAnchorCellPosition !== this.selection.tableSelectionActiveCellPosition;
133916
+ return this.selectTableCellsRange({
133917
+ firstCell: anchorCell,
133918
+ lastCell: nextActiveCell,
133919
+ singleCellShrinkDirection: isShrinkToSingle ? this.getDirection() : TableNavDirection.None,
133920
+ });
133532
133921
  }
133533
133922
  performSelectionOnTheLastTableRow(_isForward, _selectedCells) {
133534
133923
  throw new Error(lib_errors/* Errors */.D.NotImplemented);
@@ -133561,6 +133950,12 @@ class GoToLineAboveCommand extends GoToLineVerticallyCommandBase {
133561
133950
  return null;
133562
133951
  }
133563
133952
  getInitialSelectionEndPosition() {
133953
+ const hasExplicitTableCellSelection = this.selection.hasExplicitTableCellSelection;
133954
+ if (this.extendSelection() && hasExplicitTableCellSelection) {
133955
+ const activeCell = this.selection.getTableSelectionActiveCell();
133956
+ if (activeCell)
133957
+ return activeCell.startParagraphPosition.value;
133958
+ }
133564
133959
  if (this.extendSelection() && this.selection.forwardDirection)
133565
133960
  return this.selection.lastSelectedInterval.end;
133566
133961
  else
@@ -133765,7 +134160,6 @@ class ExtendGoToLineStartCommand extends GoToLineStartCommandBase {
133765
134160
 
133766
134161
 
133767
134162
 
133768
-
133769
134163
  class GoToNextCharacterCommandBase extends SelectionCommandBase {
133770
134164
  executeCore(_state, _options) {
133771
134165
  var position = this.getPosition();
@@ -133858,8 +134252,16 @@ class GoToNextCharacterCommand extends GoToNextCharacterCommandBase {
133858
134252
  extendSelection() {
133859
134253
  return false;
133860
134254
  }
134255
+ executeCore(state, options) {
134256
+ if (this.collapseTableCellSelectionSpatialFocus(TableNavDirection.Right))
134257
+ return true;
134258
+ return super.executeCore(state, options);
134259
+ }
133861
134260
  }
133862
134261
  class ExtendGoToNextCharacterCommand extends GoToNextCharacterCommandBase {
134262
+ shouldCollapseTableSelectionToCaret() {
134263
+ return this.shouldCollapseSingleCellTableSelection(TableNavDirection.Left, TableNavDirection.Right);
134264
+ }
133863
134265
  setSelection(position) {
133864
134266
  if (!this.selection.changeState((newState) => newState.extendLastInterval(position).resetKeepX().setEndOfLine(false)))
133865
134267
  ExtendGoToNextCharacterCommand.jumpThroughFieldToRight(this.selection);
@@ -133869,22 +134271,37 @@ class ExtendGoToNextCharacterCommand extends GoToNextCharacterCommandBase {
133869
134271
  }
133870
134272
  executeCore(state, options) {
133871
134273
  const selection = this.selection;
134274
+ if (this.shouldCollapseTableSelectionToCaret()) {
134275
+ this.collapseSingleCellTableSelectionToCaret();
134276
+ return true;
134277
+ }
133872
134278
  const tableInfo = selection.tableInfo;
133873
134279
  const rawTblInfo = tableInfo.rawData;
134280
+ const lastRowInfo = rawTblInfo.rows.length > 0 ? rawTblInfo.rows[rawTblInfo.rows.length - 1] : null;
134281
+ const lastCell = (lastRowInfo === null || lastRowInfo === void 0 ? void 0 : lastRowInfo.cells.length) > 0 ? lastRowInfo.cells[lastRowInfo.cells.length - 1].cell : null;
134282
+ const activePos = selection.forwardDirection ? selection.lastSelectedInterval.end : selection.lastSelectedInterval.start;
134283
+ const isAtCellEnd = lastCell !== null && selection.tableSelectionAnchorCellPosition < 0 &&
134284
+ activePos === lastCell.endParagraphPosition.value - 1;
133874
134285
  const canSelectCell = tableInfo.isSelected && rawTblInfo.areCellsSelectedInSeries &&
133875
- rawTblInfo.atLeastOneCellFullySelected(selection.intervals);
134286
+ (isAtCellEnd || rawTblInfo.atLeastOneCellFullySelected(selection.intervals));
133876
134287
  if (!canSelectCell)
133877
134288
  return super.executeCore(state, options);
133878
- const forward = selection.forwardDirection || rawTblInfo.firstRowInfo.cells.length == 1;
133879
- const lastRow = forward ? rawTblInfo.lastRowInfo : rawTblInfo.firstRowInfo;
133880
- const cell = lastRow.row[(forward ? utils_list.ListUtils.last(lastRow.cells) : lastRow.cells[0]).cellIndex + 1];
134289
+ if (isAtCellEnd)
134290
+ return this.control.commandManager.getCommand(RichEditClientCommand.SelectTableCellsRange).execute(this.control.commandManager.isPublicApiCall, {
134291
+ firstCell: lastCell,
134292
+ lastCell: lastCell,
134293
+ singleCellEntryDirection: TableNavDirection.Right,
134294
+ });
134295
+ const anchorCell = selection.getTableSelectionAnchorCell();
134296
+ const activeCell = selection.getTableSelectionActiveCell();
134297
+ const cell = activeCell ? activeCell.parentRow.cells[activeCell.parentRow.cells.indexOf(activeCell) + 1] : null;
133881
134298
  if (cell) {
133882
- return this.control.commandManager.getCommand(RichEditClientCommand.SelectTableCellsRange).execute(this.control.commandManager.isPublicApiCall, forward ? {
133883
- firstCell: rawTblInfo.firstCell,
133884
- lastCell: cell
133885
- } : {
133886
- firstCell: rawTblInfo.lastCell,
133887
- lastCell: cell
134299
+ const isShrinkToSingle = !!anchorCell && anchorCell.startParagraphPosition.value === cell.startParagraphPosition.value &&
134300
+ selection.tableSelectionAnchorCellPosition !== selection.tableSelectionActiveCellPosition;
134301
+ return this.control.commandManager.getCommand(RichEditClientCommand.SelectTableCellsRange).execute(this.control.commandManager.isPublicApiCall, {
134302
+ firstCell: anchorCell,
134303
+ lastCell: cell,
134304
+ singleCellShrinkDirection: isShrinkToSingle ? TableNavDirection.Right : TableNavDirection.None,
133888
134305
  });
133889
134306
  }
133890
134307
  return this.control.commandManager.getCommand(RichEditClientCommand.ExtendLineDown).execute(this.control.commandManager.isPublicApiCall);
@@ -134191,7 +134608,6 @@ class ExtendGoToParagraphStartCommand extends GoToParagraphStartCommandBase {
134191
134608
 
134192
134609
 
134193
134610
 
134194
-
134195
134611
  class GoToPrevCharacterCommandBase extends SelectionCommandBase {
134196
134612
  executeCore(_state, _options) {
134197
134613
  var position = this.getPosition();
@@ -134265,8 +134681,16 @@ class GoToPrevCharacterCommand extends GoToPrevCharacterCommandBase {
134265
134681
  extendSelection() {
134266
134682
  return false;
134267
134683
  }
134684
+ executeCore(state, options) {
134685
+ if (this.collapseTableCellSelectionSpatialFocus(TableNavDirection.Left))
134686
+ return true;
134687
+ return super.executeCore(state, options);
134688
+ }
134268
134689
  }
134269
134690
  class ExtendGoToPrevCharacterCommand extends GoToPrevCharacterCommandBase {
134691
+ shouldCollapseTableSelectionToCaret() {
134692
+ return this.shouldCollapseSingleCellTableSelection(TableNavDirection.Right, TableNavDirection.Left);
134693
+ }
134270
134694
  setSelection(position) {
134271
134695
  if (!this.selection.changeState((newState) => newState.extendLastInterval(position).resetKeepX().setEndOfLine(false)))
134272
134696
  ExtendGoToPrevCharacterCommand.jumpThroughFieldToLeft(this.selection);
@@ -134276,22 +134700,36 @@ class ExtendGoToPrevCharacterCommand extends GoToPrevCharacterCommandBase {
134276
134700
  }
134277
134701
  executeCore(state, options) {
134278
134702
  const selection = this.selection;
134703
+ if (this.shouldCollapseTableSelectionToCaret()) {
134704
+ this.collapseSingleCellTableSelectionToCaret();
134705
+ return true;
134706
+ }
134279
134707
  const tableInfo = selection.tableInfo;
134280
134708
  const rawTblInfo = tableInfo.rawData;
134709
+ const firstCell = rawTblInfo.rows.length > 0 && rawTblInfo.rows[0].cells.length > 0 ? rawTblInfo.rows[0].cells[0].cell : null;
134710
+ const isAtCellStart = firstCell !== null && selection.tableSelectionAnchorCellPosition < 0 &&
134711
+ (!selection.forwardDirection || selection.isCollapsed()) &&
134712
+ selection.lastSelectedInterval.start === firstCell.startParagraphPosition.value;
134281
134713
  const canSelectCell = tableInfo.isSelected && rawTblInfo.areCellsSelectedInSeries &&
134282
- rawTblInfo.atLeastOneCellFullySelected(selection.intervals);
134714
+ (isAtCellStart || rawTblInfo.atLeastOneCellFullySelected(selection.intervals));
134283
134715
  if (!canSelectCell)
134284
134716
  return super.executeCore(state, options);
134285
- const forward = selection.forwardDirection || rawTblInfo.firstRowInfo.cells.length == 1;
134286
- const lastRow = forward ? rawTblInfo.lastRowInfo : rawTblInfo.firstRowInfo;
134287
- const cell = lastRow.row[(forward ? utils_list.ListUtils.last(lastRow.cells) : lastRow.cells[0]).cellIndex - 1];
134717
+ if (isAtCellStart)
134718
+ return this.control.commandManager.getCommand(RichEditClientCommand.SelectTableCellsRange).execute(this.control.commandManager.isPublicApiCall, {
134719
+ firstCell: firstCell,
134720
+ lastCell: firstCell,
134721
+ singleCellEntryDirection: TableNavDirection.Left,
134722
+ });
134723
+ const anchorCell = selection.getTableSelectionAnchorCell();
134724
+ const activeCell = selection.getTableSelectionActiveCell();
134725
+ const cell = activeCell ? activeCell.parentRow.cells[activeCell.parentRow.cells.indexOf(activeCell) - 1] : null;
134288
134726
  if (cell) {
134289
- return this.control.commandManager.getCommand(RichEditClientCommand.SelectTableCellsRange).execute(this.control.commandManager.isPublicApiCall, forward ? {
134290
- firstCell: rawTblInfo.firstCell,
134291
- lastCell: cell
134292
- } : {
134293
- firstCell: rawTblInfo.lastCell,
134294
- lastCell: cell
134727
+ const isShrinkToSingle = !!anchorCell && anchorCell.startParagraphPosition.value === cell.startParagraphPosition.value &&
134728
+ selection.tableSelectionAnchorCellPosition !== selection.tableSelectionActiveCellPosition;
134729
+ return this.control.commandManager.getCommand(RichEditClientCommand.SelectTableCellsRange).execute(this.control.commandManager.isPublicApiCall, {
134730
+ firstCell: anchorCell,
134731
+ lastCell: cell,
134732
+ singleCellShrinkDirection: isShrinkToSingle ? TableNavDirection.Left : TableNavDirection.None,
134295
134733
  });
134296
134734
  }
134297
134735
  return this.control.commandManager.getCommand(RichEditClientCommand.ExtendLineUp).execute(this.control.commandManager.isPublicApiCall);
@@ -135849,8 +136287,8 @@ class InsertTableCellsWithShiftToTheVerticallyCommand extends CommandBase {
135849
136287
  }
135850
136288
  deleteContentInCell(subDocument, table, rowIndex, cellIndex) {
135851
136289
  let cell = table.rows[rowIndex].cells[cellIndex];
135852
- if (cell.endParagrapPosition.value - cell.startParagraphPosition.value > 1)
135853
- this.modelManipulator.range.removeInterval(new SubDocumentInterval(subDocument, fixed.FixedInterval.fromPositions(cell.startParagraphPosition.value, cell.endParagrapPosition.value - 1)), true, false);
136290
+ if (cell.endParagraphPosition.value - cell.startParagraphPosition.value > 1)
136291
+ this.modelManipulator.range.removeInterval(new SubDocumentInterval(subDocument, fixed.FixedInterval.fromPositions(cell.startParagraphPosition.value, cell.endParagraphPosition.value - 1)), true, false);
135854
136292
  }
135855
136293
  canModifyVerticalSelection(subDocument, tableInfo) {
135856
136294
  const table = tableInfo.table;
@@ -135937,9 +136375,9 @@ class InsertTableColumnCommandBase extends TableCommandBase {
135937
136375
  this.history.addAndRedo(new InsertParagraphHistoryItem(this.modelManipulator, new InsertParagraphManipulatorParams(new SubDocumentPosition(subDocument, currentCell.startParagraphPosition.value), sourceRun.getCharPropsBundle(this.modelManipulator.model), sourceParagraph.getParagraphBundleFull(this.modelManipulator.model))));
135938
136376
  }
135939
136377
  insertParagraphToTheRight(subDocument, currentCell) {
135940
- let sourceRun = subDocument.getRunByPosition(currentCell.endParagrapPosition.value - 1);
135941
- let sourceParagraph = subDocument.getParagraphByPosition(currentCell.endParagrapPosition.value - 1);
135942
- this.history.addAndRedo(new InsertParagraphHistoryItem(this.modelManipulator, new InsertParagraphManipulatorParams(new SubDocumentPosition(subDocument, currentCell.endParagrapPosition.value - 1), sourceRun.getCharPropsBundle(this.modelManipulator.model), sourceParagraph.getParagraphBundleFull(this.modelManipulator.model))));
136378
+ let sourceRun = subDocument.getRunByPosition(currentCell.endParagraphPosition.value - 1);
136379
+ let sourceParagraph = subDocument.getParagraphByPosition(currentCell.endParagraphPosition.value - 1);
136380
+ this.history.addAndRedo(new InsertParagraphHistoryItem(this.modelManipulator, new InsertParagraphManipulatorParams(new SubDocumentPosition(subDocument, currentCell.endParagraphPosition.value - 1), sourceRun.getCharPropsBundle(this.modelManipulator.model), sourceParagraph.getParagraphBundleFull(this.modelManipulator.model))));
135943
136381
  }
135944
136382
  }
135945
136383
  class InsertTableColumnToTheLeftCommand extends InsertTableColumnCommandBase {
@@ -136906,8 +137344,8 @@ class ClipboardHelper {
136906
137344
  return new Promise((resolve, reject) => {
136907
137345
  try {
136908
137346
  this.control.beginUpdate();
136909
- this.control.importHtml(getHTMLElementsFromHtml(this.control.inputController, html));
136910
- this.clearAfterImport();
137347
+ const elements = getHTMLElementsFromHtml(this.control.inputController, html);
137348
+ this.control.importHtml(elements);
136911
137349
  this.control.endUpdate();
136912
137350
  resolve();
136913
137351
  }
@@ -142237,8 +142675,8 @@ class DialogManager {
142237
142675
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/cldr-data/first_day_of_week_data.js
142238
142676
  /**
142239
142677
  * DevExtreme (esm/__internal/core/localization/cldr-data/first_day_of_week_data.js)
142240
- * Version: 25.1.11
142241
- * Build date: Fri Apr 24 2026
142678
+ * Version: 25.1.12
142679
+ * Build date: Mon Jun 08 2026
142242
142680
  *
142243
142681
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
142244
142682
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142437,8 +142875,8 @@ class DialogManager {
142437
142875
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/cldr-data/parent_locales.js
142438
142876
  /**
142439
142877
  * DevExtreme (esm/__internal/core/localization/cldr-data/parent_locales.js)
142440
- * Version: 25.1.11
142441
- * Build date: Fri Apr 24 2026
142878
+ * Version: 25.1.12
142879
+ * Build date: Mon Jun 08 2026
142442
142880
  *
142443
142881
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
142444
142882
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142623,8 +143061,8 @@ class DialogManager {
142623
143061
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/parentLocale.js
142624
143062
  /**
142625
143063
  * DevExtreme (esm/__internal/core/localization/parentLocale.js)
142626
- * Version: 25.1.11
142627
- * Build date: Fri Apr 24 2026
143064
+ * Version: 25.1.12
143065
+ * Build date: Mon Jun 08 2026
142628
143066
  *
142629
143067
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
142630
143068
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142641,8 +143079,8 @@ const PARENT_LOCALE_SEPARATOR = "-";
142641
143079
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_type.js
142642
143080
  /**
142643
143081
  * DevExtreme (esm/__internal/core/utils/m_type.js)
142644
- * Version: 25.1.11
142645
- * Build date: Fri Apr 24 2026
143082
+ * Version: 25.1.12
143083
+ * Build date: Mon Jun 08 2026
142646
143084
  *
142647
143085
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
142648
143086
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142744,8 +143182,8 @@ const isEvent = function(object) {
142744
143182
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/type.js
142745
143183
  /**
142746
143184
  * DevExtreme (esm/core/utils/type.js)
142747
- * Version: 25.1.11
142748
- * Build date: Fri Apr 24 2026
143185
+ * Version: 25.1.12
143186
+ * Build date: Mon Jun 08 2026
142749
143187
  *
142750
143188
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
142751
143189
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142755,8 +143193,8 @@ const isEvent = function(object) {
142755
143193
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_extend.js
142756
143194
  /**
142757
143195
  * DevExtreme (esm/__internal/core/utils/m_extend.js)
142758
- * Version: 25.1.11
142759
- * Build date: Fri Apr 24 2026
143196
+ * Version: 25.1.12
143197
+ * Build date: Mon Jun 08 2026
142760
143198
  *
142761
143199
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
142762
143200
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142814,8 +143252,8 @@ const extend = function(target) {
142814
143252
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/extend.js
142815
143253
  /**
142816
143254
  * DevExtreme (esm/core/utils/extend.js)
142817
- * Version: 25.1.11
142818
- * Build date: Fri Apr 24 2026
143255
+ * Version: 25.1.12
143256
+ * Build date: Mon Jun 08 2026
142819
143257
  *
142820
143258
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
142821
143259
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142825,8 +143263,8 @@ const extend = function(target) {
142825
143263
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_string.js
142826
143264
  /**
142827
143265
  * DevExtreme (esm/__internal/core/utils/m_string.js)
142828
- * Version: 25.1.11
142829
- * Build date: Fri Apr 24 2026
143266
+ * Version: 25.1.12
143267
+ * Build date: Mon Jun 08 2026
142830
143268
  *
142831
143269
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
142832
143270
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142901,8 +143339,8 @@ const isEmpty = function() {
142901
143339
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/string.js
142902
143340
  /**
142903
143341
  * DevExtreme (esm/core/utils/string.js)
142904
- * Version: 25.1.11
142905
- * Build date: Fri Apr 24 2026
143342
+ * Version: 25.1.12
143343
+ * Build date: Mon Jun 08 2026
142906
143344
  *
142907
143345
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
142908
143346
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142912,20 +143350,20 @@ const isEmpty = function() {
142912
143350
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/version.js
142913
143351
  /**
142914
143352
  * DevExtreme (esm/core/version.js)
142915
- * Version: 25.1.11
142916
- * Build date: Fri Apr 24 2026
143353
+ * Version: 25.1.12
143354
+ * Build date: Mon Jun 08 2026
142917
143355
  *
142918
143356
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
142919
143357
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
142920
143358
  */
142921
- const version = "25.1.11";
142922
- const fullVersion = "25.1.11";
143359
+ const version = "25.1.12";
143360
+ const fullVersion = "25.1.12";
142923
143361
 
142924
143362
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_console.js
142925
143363
  /**
142926
143364
  * DevExtreme (esm/__internal/core/utils/m_console.js)
142927
- * Version: 25.1.11
142928
- * Build date: Fri Apr 24 2026
143365
+ * Version: 25.1.12
143366
+ * Build date: Mon Jun 08 2026
142929
143367
  *
142930
143368
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
142931
143369
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142965,8 +143403,8 @@ const debug = function() {
142965
143403
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_error.js
142966
143404
  /**
142967
143405
  * DevExtreme (esm/__internal/core/utils/m_error.js)
142968
- * Version: 25.1.11
142969
- * Build date: Fri Apr 24 2026
143406
+ * Version: 25.1.12
143407
+ * Build date: Mon Jun 08 2026
142970
143408
  *
142971
143409
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
142972
143410
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143037,8 +143475,8 @@ function error(baseErrors, errors) {
143037
143475
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/error.js
143038
143476
  /**
143039
143477
  * DevExtreme (esm/core/utils/error.js)
143040
- * Version: 25.1.11
143041
- * Build date: Fri Apr 24 2026
143478
+ * Version: 25.1.12
143479
+ * Build date: Mon Jun 08 2026
143042
143480
  *
143043
143481
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143044
143482
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143049,8 +143487,8 @@ function error(baseErrors, errors) {
143049
143487
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/m_errors.js
143050
143488
  /**
143051
143489
  * DevExtreme (esm/__internal/core/m_errors.js)
143052
- * Version: 25.1.11
143053
- * Build date: Fri Apr 24 2026
143490
+ * Version: 25.1.12
143491
+ * Build date: Mon Jun 08 2026
143054
143492
  *
143055
143493
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143056
143494
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143118,8 +143556,8 @@ function error(baseErrors, errors) {
143118
143556
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/errors.js
143119
143557
  /**
143120
143558
  * DevExtreme (esm/core/errors.js)
143121
- * Version: 25.1.11
143122
- * Build date: Fri Apr 24 2026
143559
+ * Version: 25.1.12
143560
+ * Build date: Mon Jun 08 2026
143123
143561
  *
143124
143562
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143125
143563
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143130,8 +143568,8 @@ function error(baseErrors, errors) {
143130
143568
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/m_class.js
143131
143569
  /**
143132
143570
  * DevExtreme (esm/__internal/core/m_class.js)
143133
- * Version: 25.1.11
143134
- * Build date: Fri Apr 24 2026
143571
+ * Version: 25.1.12
143572
+ * Build date: Mon Jun 08 2026
143135
143573
  *
143136
143574
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143137
143575
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143264,8 +143702,8 @@ classImpl.abstract = m_class_abstract;
143264
143702
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/class.js
143265
143703
  /**
143266
143704
  * DevExtreme (esm/core/class.js)
143267
- * Version: 25.1.11
143268
- * Build date: Fri Apr 24 2026
143705
+ * Version: 25.1.12
143706
+ * Build date: Mon Jun 08 2026
143269
143707
  *
143270
143708
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143271
143709
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143276,8 +143714,8 @@ classImpl.abstract = m_class_abstract;
143276
143714
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_iterator.js
143277
143715
  /**
143278
143716
  * DevExtreme (esm/__internal/core/utils/m_iterator.js)
143279
- * Version: 25.1.11
143280
- * Build date: Fri Apr 24 2026
143717
+ * Version: 25.1.12
143718
+ * Build date: Mon Jun 08 2026
143281
143719
  *
143282
143720
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143283
143721
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143326,8 +143764,8 @@ const reverseEach = (array, callback) => {
143326
143764
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_dependency_injector.js
143327
143765
  /**
143328
143766
  * DevExtreme (esm/__internal/core/utils/m_dependency_injector.js)
143329
- * Version: 25.1.11
143330
- * Build date: Fri Apr 24 2026
143767
+ * Version: 25.1.12
143768
+ * Build date: Mon Jun 08 2026
143331
143769
  *
143332
143770
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143333
143771
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143376,8 +143814,8 @@ function injector(object) {
143376
143814
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/core.js
143377
143815
  /**
143378
143816
  * DevExtreme (esm/__internal/core/localization/core.js)
143379
- * Version: 25.1.11
143380
- * Build date: Fri Apr 24 2026
143817
+ * Version: 25.1.12
143818
+ * Build date: Mon Jun 08 2026
143381
143819
  *
143382
143820
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143383
143821
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143418,8 +143856,8 @@ const DEFAULT_LOCALE = "en";
143418
143856
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/default_date_names.js
143419
143857
  /**
143420
143858
  * DevExtreme (esm/__internal/core/localization/default_date_names.js)
143421
- * Version: 25.1.11
143422
- * Build date: Fri Apr 24 2026
143859
+ * Version: 25.1.12
143860
+ * Build date: Mon Jun 08 2026
143423
143861
  *
143424
143862
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143425
143863
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143447,8 +143885,8 @@ const cutCaptions = (captions, format) => {
143447
143885
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/intl/date.js
143448
143886
  /**
143449
143887
  * DevExtreme (esm/__internal/core/localization/intl/date.js)
143450
- * Version: 25.1.11
143451
- * Build date: Fri Apr 24 2026
143888
+ * Version: 25.1.12
143889
+ * Build date: Mon Jun 08 2026
143452
143890
  *
143453
143891
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143454
143892
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143763,8 +144201,8 @@ const monthNameStrategies = {
143763
144201
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/m_config.js
143764
144202
  /**
143765
144203
  * DevExtreme (esm/__internal/core/m_config.js)
143766
- * Version: 25.1.11
143767
- * Build date: Fri Apr 24 2026
144204
+ * Version: 25.1.12
144205
+ * Build date: Mon Jun 08 2026
143768
144206
  *
143769
144207
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143770
144208
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143841,8 +144279,8 @@ if ("undefined" !== typeof DevExpress && DevExpress.config) {
143841
144279
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/config.js
143842
144280
  /**
143843
144281
  * DevExtreme (esm/common/config.js)
143844
- * Version: 25.1.11
143845
- * Build date: Fri Apr 24 2026
144282
+ * Version: 25.1.12
144283
+ * Build date: Mon Jun 08 2026
143846
144284
  *
143847
144285
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143848
144286
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143853,8 +144291,8 @@ if ("undefined" !== typeof DevExpress && DevExpress.config) {
143853
144291
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/m_guid.js
143854
144292
  /**
143855
144293
  * DevExtreme (esm/__internal/core/m_guid.js)
143856
- * Version: 25.1.11
143857
- * Build date: Fri Apr 24 2026
144294
+ * Version: 25.1.12
144295
+ * Build date: Mon Jun 08 2026
143858
144296
  *
143859
144297
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143860
144298
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143896,8 +144334,8 @@ const Guid = core_class.inherit({
143896
144334
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/guid.js
143897
144335
  /**
143898
144336
  * DevExtreme (esm/common/guid.js)
143899
- * Version: 25.1.11
143900
- * Build date: Fri Apr 24 2026
144337
+ * Version: 25.1.12
144338
+ * Build date: Mon Jun 08 2026
143901
144339
  *
143902
144340
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143903
144341
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143908,8 +144346,8 @@ const Guid = core_class.inherit({
143908
144346
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/templates/m_template_engine_registry.js
143909
144347
  /**
143910
144348
  * DevExtreme (esm/__internal/core/templates/m_template_engine_registry.js)
143911
- * Version: 25.1.11
143912
- * Build date: Fri Apr 24 2026
144349
+ * Version: 25.1.12
144350
+ * Build date: Mon Jun 08 2026
143913
144351
  *
143914
144352
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143915
144353
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143938,8 +144376,8 @@ function getCurrentTemplateEngine() {
143938
144376
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/templates/template_engine_registry.js
143939
144377
  /**
143940
144378
  * DevExtreme (esm/core/templates/template_engine_registry.js)
143941
- * Version: 25.1.11
143942
- * Build date: Fri Apr 24 2026
144379
+ * Version: 25.1.12
144380
+ * Build date: Mon Jun 08 2026
143943
144381
  *
143944
144382
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143945
144383
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143949,8 +144387,8 @@ function getCurrentTemplateEngine() {
143949
144387
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/m_set_template_engine.js
143950
144388
  /**
143951
144389
  * DevExtreme (esm/__internal/core/m_set_template_engine.js)
143952
- * Version: 25.1.11
143953
- * Build date: Fri Apr 24 2026
144390
+ * Version: 25.1.12
144391
+ * Build date: Mon Jun 08 2026
143954
144392
  *
143955
144393
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143956
144394
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143960,8 +144398,8 @@ function getCurrentTemplateEngine() {
143960
144398
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/set_template_engine.js
143961
144399
  /**
143962
144400
  * DevExtreme (esm/common/set_template_engine.js)
143963
- * Version: 25.1.11
143964
- * Build date: Fri Apr 24 2026
144401
+ * Version: 25.1.12
144402
+ * Build date: Mon Jun 08 2026
143965
144403
  *
143966
144404
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143967
144405
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143972,8 +144410,8 @@ function getCurrentTemplateEngine() {
143972
144410
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common.js
143973
144411
  /**
143974
144412
  * DevExtreme (esm/common.js)
143975
- * Version: 25.1.11
143976
- * Build date: Fri Apr 24 2026
144413
+ * Version: 25.1.12
144414
+ * Build date: Mon Jun 08 2026
143977
144415
  *
143978
144416
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143979
144417
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143986,8 +144424,8 @@ function getCurrentTemplateEngine() {
143986
144424
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/config.js
143987
144425
  /**
143988
144426
  * DevExtreme (esm/core/config.js)
143989
- * Version: 25.1.11
143990
- * Build date: Fri Apr 24 2026
144427
+ * Version: 25.1.12
144428
+ * Build date: Mon Jun 08 2026
143991
144429
  *
143992
144430
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
143993
144431
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143998,8 +144436,8 @@ function getCurrentTemplateEngine() {
143998
144436
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/currency.js
143999
144437
  /**
144000
144438
  * DevExtreme (esm/__internal/core/localization/currency.js)
144001
- * Version: 25.1.11
144002
- * Build date: Fri Apr 24 2026
144439
+ * Version: 25.1.12
144440
+ * Build date: Mon Jun 08 2026
144003
144441
  *
144004
144442
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
144005
144443
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -144026,8 +144464,8 @@ function getCurrentTemplateEngine() {
144026
144464
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/cldr-data/accounting_formats.js
144027
144465
  /**
144028
144466
  * DevExtreme (esm/__internal/core/localization/cldr-data/accounting_formats.js)
144029
- * Version: 25.1.11
144030
- * Build date: Fri Apr 24 2026
144467
+ * Version: 25.1.12
144468
+ * Build date: Mon Jun 08 2026
144031
144469
  *
144032
144470
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
144033
144471
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -144613,8 +145051,8 @@ function getCurrentTemplateEngine() {
144613
145051
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/open_xml_currency_format.js
144614
145052
  /**
144615
145053
  * DevExtreme (esm/__internal/core/localization/open_xml_currency_format.js)
144616
- * Version: 25.1.11
144617
- * Build date: Fri Apr 24 2026
145054
+ * Version: 25.1.12
145055
+ * Build date: Mon Jun 08 2026
144618
145056
  *
144619
145057
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
144620
145058
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -144656,8 +145094,8 @@ function getCurrentTemplateEngine() {
144656
145094
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/intl/number.js
144657
145095
  /**
144658
145096
  * DevExtreme (esm/__internal/core/localization/intl/number.js)
144659
- * Version: 25.1.11
144660
- * Build date: Fri Apr 24 2026
145097
+ * Version: 25.1.12
145098
+ * Build date: Mon Jun 08 2026
144661
145099
  *
144662
145100
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
144663
145101
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -144775,8 +145213,8 @@ const getCurrencyFormatter = currency => new Intl.NumberFormat(core.locale(), {
144775
145213
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_math.js
144776
145214
  /**
144777
145215
  * DevExtreme (esm/__internal/core/utils/m_math.js)
144778
- * Version: 25.1.11
144779
- * Build date: Fri Apr 24 2026
145216
+ * Version: 25.1.12
145217
+ * Build date: Mon Jun 08 2026
144780
145218
  *
144781
145219
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
144782
145220
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -144954,8 +145392,8 @@ function roundFloatPart(value) {
144954
145392
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/utils.js
144955
145393
  /**
144956
145394
  * DevExtreme (esm/__internal/core/localization/utils.js)
144957
- * Version: 25.1.11
144958
- * Build date: Fri Apr 24 2026
145395
+ * Version: 25.1.12
145396
+ * Build date: Mon Jun 08 2026
144959
145397
  *
144960
145398
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
144961
145399
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -144982,8 +145420,8 @@ function toFixed(value, precision) {
144982
145420
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/ldml/number.js
144983
145421
  /**
144984
145422
  * DevExtreme (esm/__internal/core/localization/ldml/number.js)
144985
- * Version: 25.1.11
144986
- * Build date: Fri Apr 24 2026
145423
+ * Version: 25.1.12
145424
+ * Build date: Mon Jun 08 2026
144987
145425
  *
144988
145426
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
144989
145427
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145223,8 +145661,8 @@ function getFormat(formatter) {
145223
145661
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/guid.js
145224
145662
  /**
145225
145663
  * DevExtreme (esm/core/guid.js)
145226
- * Version: 25.1.11
145227
- * Build date: Fri Apr 24 2026
145664
+ * Version: 25.1.12
145665
+ * Build date: Mon Jun 08 2026
145228
145666
  *
145229
145667
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
145230
145668
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145235,8 +145673,8 @@ function getFormat(formatter) {
145235
145673
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/console.js
145236
145674
  /**
145237
145675
  * DevExtreme (esm/core/utils/console.js)
145238
- * Version: 25.1.11
145239
- * Build date: Fri Apr 24 2026
145676
+ * Version: 25.1.12
145677
+ * Build date: Mon Jun 08 2026
145240
145678
  *
145241
145679
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
145242
145680
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145246,8 +145684,8 @@ function getFormat(formatter) {
145246
145684
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/dependency_injector.js
145247
145685
  /**
145248
145686
  * DevExtreme (esm/core/utils/dependency_injector.js)
145249
- * Version: 25.1.11
145250
- * Build date: Fri Apr 24 2026
145687
+ * Version: 25.1.12
145688
+ * Build date: Mon Jun 08 2026
145251
145689
  *
145252
145690
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
145253
145691
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145258,8 +145696,8 @@ function getFormat(formatter) {
145258
145696
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_variable_wrapper.js
145259
145697
  /**
145260
145698
  * DevExtreme (esm/__internal/core/utils/m_variable_wrapper.js)
145261
- * Version: 25.1.11
145262
- * Build date: Fri Apr 24 2026
145699
+ * Version: 25.1.12
145700
+ * Build date: Mon Jun 08 2026
145263
145701
  *
145264
145702
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
145265
145703
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145288,8 +145726,8 @@ const m_variable_wrapper_variableWrapper = dependency_injector({
145288
145726
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/variable_wrapper.js
145289
145727
  /**
145290
145728
  * DevExtreme (esm/core/utils/variable_wrapper.js)
145291
- * Version: 25.1.11
145292
- * Build date: Fri Apr 24 2026
145729
+ * Version: 25.1.12
145730
+ * Build date: Mon Jun 08 2026
145293
145731
  *
145294
145732
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
145295
145733
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145300,8 +145738,8 @@ const m_variable_wrapper_variableWrapper = dependency_injector({
145300
145738
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_object.js
145301
145739
  /**
145302
145740
  * DevExtreme (esm/__internal/core/utils/m_object.js)
145303
- * Version: 25.1.11
145304
- * Build date: Fri Apr 24 2026
145741
+ * Version: 25.1.12
145742
+ * Build date: Mon Jun 08 2026
145305
145743
  *
145306
145744
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
145307
145745
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145315,6 +145753,9 @@ const clone = function() {
145315
145753
  return new Clone
145316
145754
  }
145317
145755
  }();
145756
+ const isBlobLike = function(value) {
145757
+ return "undefined" !== typeof Blob && value instanceof Blob
145758
+ };
145318
145759
  const orderEach = function(map, func) {
145319
145760
  const keys = [];
145320
145761
  let key;
@@ -145384,6 +145825,9 @@ const m_object_deepExtendArraySafe = function(target, changes, extendComplexObje
145384
145825
  let prevValue;
145385
145826
  let newValue;
145386
145827
  const assignFunc = useNewAssign ? newAssign : legacyAssign;
145828
+ if (isBlobLike(changes)) {
145829
+ return changes
145830
+ }
145387
145831
  for (const name in changes) {
145388
145832
  prevValue = target[name];
145389
145833
  newValue = changes[name];
@@ -145407,8 +145851,8 @@ const m_object_deepExtendArraySafe = function(target, changes, extendComplexObje
145407
145851
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/object.js
145408
145852
  /**
145409
145853
  * DevExtreme (esm/core/utils/object.js)
145410
- * Version: 25.1.11
145411
- * Build date: Fri Apr 24 2026
145854
+ * Version: 25.1.12
145855
+ * Build date: Mon Jun 08 2026
145412
145856
  *
145413
145857
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
145414
145858
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145418,8 +145862,8 @@ const m_object_deepExtendArraySafe = function(target, changes, extendComplexObje
145418
145862
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_data.js
145419
145863
  /**
145420
145864
  * DevExtreme (esm/__internal/core/utils/m_data.js)
145421
- * Version: 25.1.11
145422
- * Build date: Fri Apr 24 2026
145865
+ * Version: 25.1.12
145866
+ * Build date: Mon Jun 08 2026
145423
145867
  *
145424
145868
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
145425
145869
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145616,8 +146060,8 @@ const toComparable = function(value, caseSensitive) {
145616
146060
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/data.js
145617
146061
  /**
145618
146062
  * DevExtreme (esm/core/utils/data.js)
145619
- * Version: 25.1.11
145620
- * Build date: Fri Apr 24 2026
146063
+ * Version: 25.1.12
146064
+ * Build date: Mon Jun 08 2026
145621
146065
  *
145622
146066
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
145623
146067
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145627,8 +146071,8 @@ const toComparable = function(value, caseSensitive) {
145627
146071
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_callbacks.js
145628
146072
  /**
145629
146073
  * DevExtreme (esm/__internal/core/utils/m_callbacks.js)
145630
- * Version: 25.1.11
145631
- * Build date: Fri Apr 24 2026
146074
+ * Version: 25.1.12
146075
+ * Build date: Mon Jun 08 2026
145632
146076
  *
145633
146077
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
145634
146078
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145723,8 +146167,8 @@ const Callbacks = function(options) {
145723
146167
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/callbacks.js
145724
146168
  /**
145725
146169
  * DevExtreme (esm/core/utils/callbacks.js)
145726
- * Version: 25.1.11
145727
- * Build date: Fri Apr 24 2026
146170
+ * Version: 25.1.12
146171
+ * Build date: Mon Jun 08 2026
145728
146172
  *
145729
146173
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
145730
146174
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145735,8 +146179,8 @@ const Callbacks = function(options) {
145735
146179
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_deferred.js
145736
146180
  /**
145737
146181
  * DevExtreme (esm/__internal/core/utils/m_deferred.js)
145738
- * Version: 25.1.11
145739
- * Build date: Fri Apr 24 2026
146182
+ * Version: 25.1.12
146183
+ * Build date: Mon Jun 08 2026
145740
146184
  *
145741
146185
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
145742
146186
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145901,8 +146345,8 @@ function when() {
145901
146345
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/deferred.js
145902
146346
  /**
145903
146347
  * DevExtreme (esm/core/utils/deferred.js)
145904
- * Version: 25.1.11
145905
- * Build date: Fri Apr 24 2026
146348
+ * Version: 25.1.12
146349
+ * Build date: Mon Jun 08 2026
145906
146350
  *
145907
146351
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
145908
146352
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145912,8 +146356,8 @@ function when() {
145912
146356
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_common.js
145913
146357
  /**
145914
146358
  * DevExtreme (esm/__internal/core/utils/m_common.js)
145915
- * Version: 25.1.11
145916
- * Build date: Fri Apr 24 2026
146359
+ * Version: 25.1.12
146360
+ * Build date: Mon Jun 08 2026
145917
146361
  *
145918
146362
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
145919
146363
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -146207,8 +146651,8 @@ const equalByValue = function(value1, value2) {
146207
146651
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/number.js
146208
146652
  /**
146209
146653
  * DevExtreme (esm/__internal/core/localization/number.js)
146210
- * Version: 25.1.11
146211
- * Build date: Fri Apr 24 2026
146654
+ * Version: 25.1.12
146655
+ * Build date: Mon Jun 08 2026
146212
146656
  *
146213
146657
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
146214
146658
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -146517,8 +146961,8 @@ if (hasIntl) {
146517
146961
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/ldml/date.format.js
146518
146962
  /**
146519
146963
  * DevExtreme (esm/__internal/core/localization/ldml/date.format.js)
146520
- * Version: 25.1.11
146521
- * Build date: Fri Apr 24 2026
146964
+ * Version: 25.1.12
146965
+ * Build date: Mon Jun 08 2026
146522
146966
  *
146523
146967
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
146524
146968
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -146711,8 +147155,8 @@ const date_format_getFormat = formatter => {
146711
147155
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/ldml/date.formatter.js
146712
147156
  /**
146713
147157
  * DevExtreme (esm/__internal/core/localization/ldml/date.formatter.js)
146714
- * Version: 25.1.11
146715
- * Build date: Fri Apr 24 2026
147158
+ * Version: 25.1.12
147159
+ * Build date: Mon Jun 08 2026
146716
147160
  *
146717
147161
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
146718
147162
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -146840,8 +147284,8 @@ const date_formatter_getFormatter = (format, dateParts) => date => {
146840
147284
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/ldml/date.parser.js
146841
147285
  /**
146842
147286
  * DevExtreme (esm/__internal/core/localization/ldml/date.parser.js)
146843
- * Version: 25.1.11
146844
- * Build date: Fri Apr 24 2026
147287
+ * Version: 25.1.12
147288
+ * Build date: Mon Jun 08 2026
146845
147289
  *
146846
147290
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
146847
147291
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -147119,8 +147563,8 @@ const getParser = (format, dateParts) => {
147119
147563
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/localization/date.js
147120
147564
  /**
147121
147565
  * DevExtreme (esm/__internal/core/localization/date.js)
147122
- * Version: 25.1.11
147123
- * Build date: Fri Apr 24 2026
147566
+ * Version: 25.1.12
147567
+ * Build date: Mon Jun 08 2026
147124
147568
  *
147125
147569
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
147126
147570
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -147283,8 +147727,8 @@ if (date_hasIntl) {
147283
147727
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/date.js
147284
147728
  /**
147285
147729
  * DevExtreme (esm/common/core/localization/date.js)
147286
- * Version: 25.1.11
147287
- * Build date: Fri Apr 24 2026
147730
+ * Version: 25.1.12
147731
+ * Build date: Mon Jun 08 2026
147288
147732
  *
147289
147733
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
147290
147734
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -147295,8 +147739,8 @@ if (date_hasIntl) {
147295
147739
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/number.js
147296
147740
  /**
147297
147741
  * DevExtreme (esm/common/core/localization/number.js)
147298
- * Version: 25.1.11
147299
- * Build date: Fri Apr 24 2026
147742
+ * Version: 25.1.12
147743
+ * Build date: Mon Jun 08 2026
147300
147744
  *
147301
147745
  * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
147302
147746
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -148381,7 +148825,7 @@ class ClientRichEdit {
148381
148825
  this.contextMenuSettings = settings.contextMenuSettings;
148382
148826
  this.fullScreenHelper = new FullScreenHelper(element);
148383
148827
  if (true)
148384
- external_DevExpress_config_default()(JSON.parse(atob('eyJsaWNlbnNlS2V5IjoiZXdvZ0lDSm1iM0p0WVhRaU9pQXhMQW9nSUNKcGJuUmxjbTVoYkZWellXZGxTV1FpT2lBaVZXaDVOVEpyYVVKTVNUa3pjbWRSU0c1VGRrcFJieUlLZlE9PS5QZ2srQnBjeFZqTjNjNHRYOGZUOHc2TC9OZlR5RTZjR21BNC9LSnVLTjRrU1ExaURUVUVZV2VId1U1WmFHODJ2emtvUjA0bXpCMWdKR1VMcms0UENYb0t4eFYvUUdZUHYrVXhDNVd5SU8yWUMraUJJVFVNcklrNDYzZWxmb0dRdmlRVWRWZz09In0=')));
148828
+ external_DevExpress_config_default()(JSON.parse(atob('eyJsaWNlbnNlS2V5IjoiZXdvZ0lDSm1iM0p0WVhRaU9pQXhMQW9nSUNKcGJuUmxjbTVoYkZWellXZGxTV1FpT2lBaWFFVTFORFkxU3pSUlpYaFNVWGxFWjIxTldtaHRVeUlLZlE9PS5hc1crYVJtdENhb2ZiRVJBTERDVkNmVTlCOGgxS3Y5SHBRRFhCQWphWUIxNHRmUEx6a09xdkhRbnlieFNVdEdKbmZ0dnkxNDQ5UE9QL1pmd1pzRThBTG4zWnpIaWEvWlVmTWNNUytOL2liNEM3VEhOS2tZYnZyL3AxaEVzTnVnRDgzZnhxdz09In0=')));
148385
148829
  this.prepareElement(element, settings);
148386
148830
  this.initDefaultFontsAndStyles();
148387
148831
  this.initBars(settings.ribbon, settings.fonts);
@@ -150445,7 +150889,7 @@ function registerRichEditCustomControlType(controlTypeName, richEditsHolder) {
150445
150889
  customControlType.replaceText = (element, text, fromPos, length) => {
150446
150890
  const rich = richEditsHolder.getRichEditByElement(element);
150447
150891
  const subDocument = rich.core.selection.activeSubDocument;
150448
- const prevActPos = rich.core.selection.getState().activePostion;
150892
+ const prevActPos = rich.core.selection.getState().activePosition;
150449
150893
  rich.core.beginUpdate();
150450
150894
  rich.core.modelManager.history.beginTransaction();
150451
150895
  if (length > 0) {