devexpress-richedit 25.1.1-alpha → 25.1.2-beta

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 (96) hide show
  1. package/bin/gulpfile.js +1 -1
  2. package/bin/index-custom.js +1 -1
  3. package/bin/localization-builder.js +1 -1
  4. package/bin/nspell-index.js +1 -1
  5. package/bin/nspell.webpack.config.js +1 -1
  6. package/bin/webpack-externals.js +1 -1
  7. package/bin/webpack.config.js +1 -1
  8. package/dist/dx.richedit.d.ts +1 -1
  9. package/dist/dx.richedit.js +714 -379
  10. package/dist/dx.richedit.min.js +2 -2
  11. package/index.d.ts +1 -1
  12. package/index.js +1 -1
  13. package/lib/client/client-rich-edit.js +1 -1
  14. package/lib/client/commands/mail-merge-command.js +2 -1
  15. package/lib/client/formats/docx/export/data.d.ts +5 -1
  16. package/lib/client/formats/docx/export/data.js +3 -2
  17. package/lib/client/formats/docx/export/exporter.d.ts +2 -3
  18. package/lib/client/formats/docx/export/exporter.js +3 -3
  19. package/lib/client/formats/docx/export/exporters/base/sections.d.ts +0 -1
  20. package/lib/client/formats/docx/export/exporters/base/sections.js +2 -10
  21. package/lib/client/formats/docx/export/exporters/base/table/table.d.ts +1 -1
  22. package/lib/client/formats/docx/export/exporters/base/table/table.js +4 -4
  23. package/lib/client/formats/docx/import/destination/paragraph-properties/properties/paragraph-spacing-destination.js +6 -4
  24. package/lib/client/model-api/formats/exporter.js +2 -2
  25. package/lib/client/model-api/sub-document.js +1 -1
  26. package/lib/client/public/rich-edit.js +2 -2
  27. package/lib/common/canvas/canvas-manager.js +38 -24
  28. package/lib/common/canvas/canvas-scroll-info.d.ts +6 -3
  29. package/lib/common/canvas/canvas-scroll-info.js +9 -4
  30. package/lib/common/canvas/canvas-scroll-manager.d.ts +4 -1
  31. package/lib/common/canvas/canvas-scroll-manager.js +28 -20
  32. package/lib/common/canvas/canvas-size-info.d.ts +3 -2
  33. package/lib/common/canvas/canvas-size-info.js +4 -6
  34. package/lib/common/canvas/renderes/canvas-listener/print-layout-view-canvas-listener.js +2 -2
  35. package/lib/common/canvas/renderes/common/document-renderer.d.ts +4 -1
  36. package/lib/common/canvas/renderes/common/document-renderer.js +15 -12
  37. package/lib/common/canvas/renderes/view-manager.d.ts +5 -1
  38. package/lib/common/canvas/renderes/view-manager.js +15 -7
  39. package/lib/common/formats/i-document-exporter.d.ts +3 -0
  40. package/lib/common/formats/rtf/export/exporter.d.ts +2 -3
  41. package/lib/common/formats/rtf/export/exporter.js +3 -3
  42. package/lib/common/formats/rtf/export/exporters/rtf-content-exporter.d.ts +4 -2
  43. package/lib/common/formats/rtf/export/exporters/rtf-content-exporter.js +13 -9
  44. package/lib/common/formats/rtf/export/exporters/table/rtf-table-exporter.d.ts +3 -2
  45. package/lib/common/formats/rtf/export/exporters/table/rtf-table-exporter.js +4 -4
  46. package/lib/common/formats/rtf/export/exporters/table/states/rtf-nested-table-exporter-state.d.ts +2 -1
  47. package/lib/common/formats/rtf/export/exporters/table/states/rtf-nested-table-exporter-state.js +2 -2
  48. package/lib/common/formats/rtf/export/exporters/table/states/rtf-table-exporter-state-base.d.ts +4 -2
  49. package/lib/common/formats/rtf/export/exporters/table/states/rtf-table-exporter-state-base.js +16 -9
  50. package/lib/common/formats/rtf/export/exporters/table/states/rtf-table-exporter-state.d.ts +2 -1
  51. package/lib/common/formats/rtf/export/exporters/table/states/rtf-table-exporter-state.js +2 -2
  52. package/lib/common/formats/rtf/import/table/normalization/apply-use-values.d.ts +6 -0
  53. package/lib/common/formats/rtf/import/table/normalization/apply-use-values.js +90 -0
  54. package/lib/common/formats/rtf/import/table/table-converter.js +7 -2
  55. package/lib/common/formats/rtf/importer-in-subdocument.d.ts +1 -2
  56. package/lib/common/formats/rtf/importer-in-subdocument.js +4 -3
  57. package/lib/common/input-controller.d.ts +5 -5
  58. package/lib/common/input-controller.js +16 -12
  59. package/lib/common/layout/document-layout.d.ts +5 -0
  60. package/lib/common/layout/document-layout.js +10 -0
  61. package/lib/common/layout/main-structures/layout-page-area.d.ts +3 -0
  62. package/lib/common/layout/main-structures/layout-page-area.js +6 -0
  63. package/lib/common/layout/main-structures/layout-page.d.ts +3 -0
  64. package/lib/common/layout/main-structures/layout-page.js +8 -0
  65. package/lib/common/layout/main-structures/layout-row.js +1 -2
  66. package/lib/common/layout-formatter/floating/position-calculators/horizontal.d.ts +1 -0
  67. package/lib/common/layout-formatter/floating/position-calculators/horizontal.js +16 -12
  68. package/lib/common/layout-formatter/row/size-engine/row-formatting-info.d.ts +4 -1
  69. package/lib/common/layout-formatter/row/size-engine/row-formatting-info.js +36 -2
  70. package/lib/common/layout-formatter/row/states.js +0 -2
  71. package/lib/common/layout-formatter/row/tab-info.js +5 -4
  72. package/lib/common/layout-formatter/table/info/table-info.d.ts +0 -1
  73. package/lib/common/layout-formatter/table/info/table-info.js +2 -18
  74. package/lib/common/layout-formatter/table/size-compressor.js +9 -2
  75. package/lib/common/layout-formatter/table/table-alignment-applier.js +0 -2
  76. package/lib/common/model/changes/change.d.ts +2 -1
  77. package/lib/common/model/changes/enums.d.ts +2 -1
  78. package/lib/common/model/changes/enums.js +1 -0
  79. package/lib/common/model/changes/model/zoom-level.d.ts +8 -0
  80. package/lib/common/model/changes/model/zoom-level.js +8 -0
  81. package/lib/common/model/creator/creator.js +6 -0
  82. package/lib/common/model/manipulators/model-manipulator.d.ts +2 -1
  83. package/lib/common/model/manipulators/model-manipulator.js +4 -0
  84. package/lib/common/model/paragraph/paragraph-style.d.ts +2 -1
  85. package/lib/common/model/paragraph/paragraph-style.js +2 -1
  86. package/lib/common/model/tables/secondary-structures/table-base-structures.d.ts +2 -1
  87. package/lib/common/model/tables/secondary-structures/table-base-structures.js +1 -0
  88. package/lib/common/mouse-handler/mouse-handler/mouse-handler-default-state.d.ts +1 -1
  89. package/lib/common/mouse-handler/mouse-handler/mouse-handler-default-state.js +22 -25
  90. package/lib/common/rich-edit-core.js +18 -18
  91. package/lib/common/ui/ruler/ruler.js +2 -0
  92. package/lib/common/utils/mixed-size.d.ts +27 -0
  93. package/lib/common/utils/mixed-size.js +91 -0
  94. package/lib/common/utils/size-utils.d.ts +14 -7
  95. package/lib/common/utils/size-utils.js +43 -18
  96. package/package.json +3 -3
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * DevExpress WebRichEdit (dx.richedit.js)
3
- * Version: 25.1.1
3
+ * Version: 25.1.2
4
4
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
5
5
  * License: https://www.devexpress.com/Support/EULAs
6
6
  */
@@ -12329,6 +12329,7 @@ var ConditionalTableStyleFormatting;
12329
12329
  ConditionalTableStyleFormatting[ConditionalTableStyleFormatting["TopLeftCell"] = 4] = "TopLeftCell";
12330
12330
  ConditionalTableStyleFormatting[ConditionalTableStyleFormatting["BottomRightCell"] = 2] = "BottomRightCell";
12331
12331
  ConditionalTableStyleFormatting[ConditionalTableStyleFormatting["BottomLeftCell"] = 1] = "BottomLeftCell";
12332
+ ConditionalTableStyleFormatting[ConditionalTableStyleFormatting["None"] = 0] = "None";
12332
12333
  })(ConditionalTableStyleFormatting || (ConditionalTableStyleFormatting = {}));
12333
12334
 
12334
12335
  ;// CONCATENATED MODULE: ./src/common/model/tables/secondary-structures/table-units.ts
@@ -19210,8 +19211,6 @@ class TableAlignmentApplier {
19210
19211
  offset = 0;
19211
19212
  break;
19212
19213
  }
19213
- if (offset <= 0)
19214
- return;
19215
19214
  TableAlignmentApplier.moveAllTable(currTableColumnInfo, (rect) => rect.x += offset);
19216
19215
  }
19217
19216
  static applyCellsVerticalAlignment(defaultTableCellProps, grid, currTableColumnInfo, rowInfo) {
@@ -19721,9 +19720,10 @@ class TabInfoBase {
19721
19720
  }
19722
19721
  }
19723
19722
  class TabInfo extends TabInfoBase {
19724
- constructor(position, alignment, leader, deleted, isDefault) {
19723
+ constructor(position, alignment, leader, deleted, isDefault, isParagraphIndent = false) {
19725
19724
  super(alignment, leader, deleted, isDefault);
19726
19725
  this.position = position;
19726
+ this.isParagraphIndent = isParagraphIndent;
19727
19727
  }
19728
19728
  equals(obj) {
19729
19729
  return super.equals(obj) && this.position == obj.position;
@@ -22661,6 +22661,7 @@ var ModelChangeType;
22661
22661
  ModelChangeType[ModelChangeType["TableCellInserted"] = 66] = "TableCellInserted";
22662
22662
  ModelChangeType[ModelChangeType["RangePermissionsChanged"] = 67] = "RangePermissionsChanged";
22663
22663
  ModelChangeType[ModelChangeType["RangePermissionsPropertiesChanged"] = 68] = "RangePermissionsPropertiesChanged";
22664
+ ModelChangeType[ModelChangeType["ZoomLevelChanged"] = 69] = "ZoomLevelChanged";
22664
22665
  })(ModelChangeType || (ModelChangeType = {}));
22665
22666
 
22666
22667
  ;// CONCATENATED MODULE: ./src/common/model/changes/sub-document/field/deleted.ts
@@ -32162,6 +32163,14 @@ class LayoutOtherPageAreasInfo {
32162
32163
  }
32163
32164
  }
32164
32165
  class LayoutPage extends rectangle.Rectangle {
32166
+ get grids() {
32167
+ const result = new Map();
32168
+ for (let pageArea of this.mainSubDocumentPageAreas)
32169
+ pageArea.grids.forEach((grid, table) => result.set(table, grid));
32170
+ for (let pageArea of Object.values(this.otherPageAreas))
32171
+ pageArea.grids.forEach((grid, table) => result.set(table, grid));
32172
+ return result;
32173
+ }
32165
32174
  constructor() {
32166
32175
  super(0, 0, 0, 0);
32167
32176
  this.mainSubDocumentPageAreas = [];
@@ -45979,6 +45988,10 @@ class ModelManipulator {
45979
45988
  notifyModelChanged(change) {
45980
45989
  this.modelListeners.forEach(listener => listener.modelChanged(change));
45981
45990
  }
45991
+ addModelListener(listener) {
45992
+ if (this.modelListeners.indexOf(listener) < 0)
45993
+ this.modelListeners.push(listener);
45994
+ }
45982
45995
  removeModelListener(listener) {
45983
45996
  const index = this.modelListeners.indexOf(listener);
45984
45997
  if (index >= 0)
@@ -50040,11 +50053,13 @@ class RtfStyleExporter {
50040
50053
 
50041
50054
 
50042
50055
 
50056
+
50043
50057
  class RtfTableExporterStateBase {
50044
- constructor(rtfExporter, table, nestingLevel) {
50058
+ constructor(rtfExporter, table, grid, nestingLevel) {
50045
50059
  this.rtfExporter = rtfExporter;
50046
50060
  this._nestingLevel = nestingLevel;
50047
50061
  this.table = table;
50062
+ this.grid = grid;
50048
50063
  this.tableRowPropertiesExporter = new RtfTableRowPropertiesExporter(rtfExporter.documentModel, rtfExporter.rtfExportHelper, rtfExporter.rtfBuilder);
50049
50064
  this.tableCellPropertiesExporter = new RtfTableCellPropertiesExporter(rtfExporter.documentModel, rtfExporter.rtfExportHelper, rtfExporter.rtfBuilder);
50050
50065
  this.tablePropertiesExporter = new RtfTablePropertiesExporter(rtfExporter.documentModel, rtfExporter.rtfExportHelper, rtfExporter.rtfBuilder);
@@ -50119,7 +50134,7 @@ class RtfTableExporterStateBase {
50119
50134
  while (parentCell !== nestedTable.parentCell) {
50120
50135
  nestedTable = nestedTable.parentCell.parentRow.parentTable;
50121
50136
  }
50122
- return RtfTableExporter.exportNestedTable(this.rtfExporter, nestedTable, this.nestingLevel + 1);
50137
+ return RtfTableExporter.exportNestedTable(this.rtfExporter, nestedTable, this.grid, this.nestingLevel + 1);
50123
50138
  }
50124
50139
  exportRowProperties(row, rowIndex) {
50125
50140
  const rowLeft = this.calculateRowLeft(row, row.parentTable.getActualTableIndent(this.documentModel.defaultTableProperties));
@@ -50127,20 +50142,25 @@ class RtfTableExporterStateBase {
50127
50142
  let cellRightVirtualColInd = row.gridBefore;
50128
50143
  for (const cell of row.cells) {
50129
50144
  cellRightVirtualColInd += cell.columnSpan;
50130
- const cellRight = rowLeft + this.getCellWidth(cellRightVirtualColInd);
50145
+ const cellWidth = this.getCellWidth(row.gridBefore, cellRightVirtualColInd);
50146
+ const cellRight = unit_converter/* UnitConverter */.u.pixelsToTwips(rowLeft + cellWidth);
50131
50147
  this.exportCellProperties(cell, cellRight);
50132
50148
  }
50133
50149
  }
50134
- getCellWidth(virtualColumnIndex) {
50135
- if (virtualColumnIndex < 0)
50150
+ getCellWidth(leftSideIndex, columnSpan) {
50151
+ if (leftSideIndex < 0 || columnSpan < 0)
50136
50152
  throw new Error(lib_errors/* Errors */.D.InternalException);
50137
- const minVirtualColumnWidth = 10;
50138
- return virtualColumnIndex * minVirtualColumnWidth;
50153
+ let result = 0;
50154
+ for (let i = 0; i < columnSpan; i++)
50155
+ result += Math.max(this.grid.columns.width[i + leftSideIndex], 1);
50156
+ return result;
50139
50157
  }
50140
50158
  calculateRowLeft(row, indent) {
50141
- const widthBefore = row.gridBefore > 0 ? this.getCellWidth(row.gridBefore) : 0;
50159
+ var _a;
50160
+ const widthBefore = row.gridBefore > 0 ? this.getCellWidth(0, row.gridBefore) : 0;
50142
50161
  const offset = this.getActualWidth(indent) + widthBefore;
50143
- return offset - (this.rowLeftOffset != null ? this.rowLeftOffset : this.calculateRowLeftOffset(row));
50162
+ const rowLeftOffset = (_a = this.rowLeftOffset) !== null && _a !== void 0 ? _a : this.calculateRowLeftOffset(row);
50163
+ return offset - rowLeftOffset;
50144
50164
  }
50145
50165
  calculateRowLeftOffset(row) {
50146
50166
  const borderWidth = row.cells[0].properties.borders.left.width;
@@ -50250,8 +50270,8 @@ class RtfTableExporterStateBase {
50250
50270
 
50251
50271
 
50252
50272
  class RtfNestedTableExporterState extends RtfTableExporterStateBase {
50253
- constructor(rtfExporter, table, nestingLevel) {
50254
- super(rtfExporter, table, nestingLevel);
50273
+ constructor(rtfExporter, table, grid, nestingLevel) {
50274
+ super(rtfExporter, table, grid, nestingLevel);
50255
50275
  }
50256
50276
  export() {
50257
50277
  super.exportBase();
@@ -50280,8 +50300,8 @@ class RtfNestedTableExporterState extends RtfTableExporterStateBase {
50280
50300
 
50281
50301
 
50282
50302
  class RtfTableExporterState extends RtfTableExporterStateBase {
50283
- constructor(rtfExporter, table) {
50284
- super(rtfExporter, table, 1);
50303
+ constructor(rtfExporter, table, grid) {
50304
+ super(rtfExporter, table, grid, 1);
50285
50305
  }
50286
50306
  export() {
50287
50307
  super.exportBase();
@@ -50300,13 +50320,13 @@ class RtfTableExporterState extends RtfTableExporterStateBase {
50300
50320
 
50301
50321
 
50302
50322
  class RtfTableExporter {
50303
- static exportTable(rtfContentExporter, table) {
50304
- new RtfTableExporterState(rtfContentExporter, table).export();
50323
+ static exportTable(rtfContentExporter, table, grid) {
50324
+ new RtfTableExporterState(rtfContentExporter, table, grid).export();
50305
50325
  rtfContentExporter.tableIterator.update(table.getEndPosition());
50306
50326
  return rtfContentExporter.subDocument.getParagraphIndexByPosition(table.getEndPosition() - 1);
50307
50327
  }
50308
- static exportNestedTable(rtfContentExporter, table, nestingLevel) {
50309
- new RtfNestedTableExporterState(rtfContentExporter, table, nestingLevel).export();
50328
+ static exportNestedTable(rtfContentExporter, table, grid, nestingLevel) {
50329
+ new RtfNestedTableExporterState(rtfContentExporter, table, grid, nestingLevel).export();
50310
50330
  rtfContentExporter.tableIterator.update(table.getEndPosition());
50311
50331
  return rtfContentExporter.subDocument.getParagraphIndexByPosition(table.getEndPosition() - 1);
50312
50332
  }
@@ -50352,17 +50372,18 @@ class RtfTableExporter {
50352
50372
  class RtfContentExporter {
50353
50373
  get shouldExportHiddenText() { return true; }
50354
50374
  ;
50355
- constructor(documentModel, options, rtfExportHelper) {
50375
+ get documentModel() { return this.exportModelOptions.modelManager.modelManipulator.model; }
50376
+ constructor(exportModelOptions, options, rtfExportHelper) {
50356
50377
  this.shouldFourceUpdateIterators = false;
50357
- this.documentModel = documentModel;
50378
+ this.exportModelOptions = exportModelOptions;
50358
50379
  this.subDocument = this.documentModel.mainSubDocument;
50359
50380
  this.pieceTableNumberingListCounters = new PieceTableNumberingListCountersManager();
50360
50381
  this.rtfExportHelper = rtfExportHelper;
50361
50382
  this.options = options;
50362
50383
  this.rtfBuilder = this.createRtfBuilder();
50363
- this.paragraphPropertiesExporter = new RtfParagraphPropertiesExporter(documentModel, rtfExportHelper, this.rtfBuilder);
50364
- this.characterPropertiesExporter = new RtfCharacterPropertiesExporter(documentModel, rtfExportHelper, this.rtfBuilder, options);
50365
- this.sectionPropertiesExporter = new RtfSectionPropertiesExporter(documentModel, rtfExportHelper, this.rtfBuilder);
50384
+ this.paragraphPropertiesExporter = new RtfParagraphPropertiesExporter(this.documentModel, rtfExportHelper, this.rtfBuilder);
50385
+ this.characterPropertiesExporter = new RtfCharacterPropertiesExporter(this.documentModel, rtfExportHelper, this.rtfBuilder, options);
50386
+ this.sectionPropertiesExporter = new RtfSectionPropertiesExporter(this.documentModel, rtfExportHelper, this.rtfBuilder);
50366
50387
  this.runHandlerMap = new MapCreator()
50367
50388
  .add(RunType.TextRun, this.exportTextRun)
50368
50389
  .add(RunType.FieldCodeStartRun, this.fieldCodeStartRunHandler)
@@ -50572,7 +50593,7 @@ class RtfContentExporter {
50572
50593
  value = "00000000";
50573
50594
  }
50574
50595
  else {
50575
- const view = new DataView(hash, 0);
50596
+ const view = new DataView(hash.buffer, 0);
50576
50597
  const hashValue = view.getInt32(0);
50577
50598
  value = this.documentModel.simpleFormattersManager.formatString("{0:x8}", hashValue);
50578
50599
  }
@@ -50748,11 +50769,14 @@ class RtfContentExporter {
50748
50769
  this.exportSingleParagraph(paragraph);
50749
50770
  return paragraphIndex;
50750
50771
  }
50751
- else
50752
- return RtfTableExporter.exportTable(this, tablesInfo[0].table.getTopLevelParent()) - this.startSectionParagraphIndex;
50772
+ else {
50773
+ const table = tablesInfo[0].table.getTopLevelParent();
50774
+ const grid = this.exportModelOptions.grids.get(table);
50775
+ return RtfTableExporter.exportTable(this, table, grid) - this.startSectionParagraphIndex;
50776
+ }
50753
50777
  }
50754
50778
  exportSingleParagraph(paragraph) {
50755
- this.exportParagraphCore(paragraph, 0, 0, -1);
50779
+ this.exportParagraphCore(paragraph, 0, ConditionalTableStyleFormatting.None, -1);
50756
50780
  this.finishParagraph(paragraph);
50757
50781
  }
50758
50782
  finishParagraph(paragraph) {
@@ -51282,11 +51306,11 @@ class RtfExportHelper {
51282
51306
 
51283
51307
  class RtfExporter {
51284
51308
  get documentModel() { return this.modelManipulator.model; }
51285
- constructor(modelManipulator, options) {
51286
- this.modelManipulator = modelManipulator;
51309
+ constructor(exportModelOptions, options) {
51310
+ this.modelManipulator = exportModelOptions.modelManager.modelManipulator;
51287
51311
  this.options = options;
51288
51312
  this.rtfExportHelper = new RtfExportHelper();
51289
- this.contentExporter = new RtfContentExporter(this.documentModel, options, this.rtfExportHelper);
51313
+ this.contentExporter = new RtfContentExporter(exportModelOptions, options, this.rtfExportHelper);
51290
51314
  this.rtfBuilder = this.contentExporter.createRtfBuilder();
51291
51315
  }
51292
51316
  exportToBlob(callback) {
@@ -51698,6 +51722,7 @@ NumberingHelper.templateCodeEnd = 0x7FFFFFFF;
51698
51722
 
51699
51723
 
51700
51724
 
51725
+
51701
51726
 
51702
51727
 
51703
51728
  class ModelCreator {
@@ -51795,6 +51820,11 @@ class ModelCreator {
51795
51820
  }
51796
51821
  if (this.options.fillTableStyles) {
51797
51822
  const tableConditionalStyle = new TableConditionalStyle(templateTableProp, templateTableRowProp, templateTableCellProp, templateParProp, templateCharProps, templateTabProp);
51823
+ tableConditionalStyle.tableProperties.cellMargins.left.type = TableWidthUnitType.ModelUnits;
51824
+ tableConditionalStyle.tableProperties.cellMargins.left.value = 108;
51825
+ tableConditionalStyle.tableProperties.cellMargins.right.type = TableWidthUnitType.ModelUnits;
51826
+ tableConditionalStyle.tableProperties.cellMargins.right.value = 108;
51827
+ tableConditionalStyle.tableProperties.mask = TablePropertiesMask.UseLeftMargin | TablePropertiesMask.UseRightMargin;
51798
51828
  model.stylesManager.addTableStyle(new TableStyle(TableStyle.DEFAULT_STYLENAME, TableStyle.DEFAULT_STYLENAME, false, false, false, true, {}, tableConditionalStyle, null));
51799
51829
  }
51800
51830
  if (this.options.initOfficeTheme)
@@ -61276,6 +61306,98 @@ class RtfTableColumnsCalculator {
61276
61306
  }
61277
61307
  }
61278
61308
 
61309
+ ;// CONCATENATED MODULE: ./src/common/formats/rtf/import/table/normalization/apply-use-values.ts
61310
+
61311
+
61312
+
61313
+ function applyTablePropertiesUseValues(props, styleProps) {
61314
+ props.mask = TablePropertiesMask.UseNone;
61315
+ if (!props.borders.left.equals(styleProps.borders.left))
61316
+ props.setUseValue(TablePropertiesMask.UseLeftBorder, true);
61317
+ if (!props.borders.top.equals(styleProps.borders.top))
61318
+ props.setUseValue(TablePropertiesMask.UseTopBorder, true);
61319
+ if (!props.borders.right.equals(styleProps.borders.right))
61320
+ props.setUseValue(TablePropertiesMask.UseRightBorder, true);
61321
+ if (!props.borders.bottom.equals(styleProps.borders.bottom))
61322
+ props.setUseValue(TablePropertiesMask.UseBottomBorder, true);
61323
+ if (!props.borders.insideHorizontal.equals(styleProps.borders.insideHorizontal))
61324
+ props.setUseValue(TablePropertiesMask.UseInsideHorizontalBorder, true);
61325
+ if (!props.borders.insideVertical.equals(styleProps.borders.insideVertical))
61326
+ props.setUseValue(TablePropertiesMask.UseInsideVerticalBorder, true);
61327
+ if (!props.cellMargins.left.equals(styleProps.cellMargins.left))
61328
+ props.setUseValue(TablePropertiesMask.UseLeftMargin, true);
61329
+ if (!props.cellMargins.top.equals(styleProps.cellMargins.top))
61330
+ props.setUseValue(TablePropertiesMask.UseTopMargin, true);
61331
+ if (!props.cellMargins.right.equals(styleProps.cellMargins.right))
61332
+ props.setUseValue(TablePropertiesMask.UseRightMargin, true);
61333
+ if (!props.cellMargins.bottom.equals(styleProps.cellMargins.bottom))
61334
+ props.setUseValue(TablePropertiesMask.UseBottomMargin, true);
61335
+ if (!props.cellSpacing.equals(styleProps.cellSpacing))
61336
+ props.setUseValue(TablePropertiesMask.UseCellSpacing, true);
61337
+ if (!props.indent.equals(styleProps.indent))
61338
+ props.setUseValue(TablePropertiesMask.UseTableIndent, true);
61339
+ if (props.tableStyleColumnBandSize != styleProps.tableStyleColumnBandSize)
61340
+ props.setUseValue(TablePropertiesMask.UseTableStyleColBandSize, true);
61341
+ if (props.tableStyleRowBandSize != styleProps.tableStyleRowBandSize)
61342
+ props.setUseValue(TablePropertiesMask.UseTableStyleRowBandSize, true);
61343
+ if (props.avoidDoubleBorders != styleProps.avoidDoubleBorders)
61344
+ props.setUseValue(TablePropertiesMask.UseAvoidDoubleBorders, true);
61345
+ if (props.layoutType != styleProps.layoutType)
61346
+ props.setUseValue(TablePropertiesMask.UseTableLayout, true);
61347
+ if (!props.shadingInfo.equals(styleProps.shadingInfo))
61348
+ props.setUseValue(TablePropertiesMask.UseShadingInfoIndex, true);
61349
+ if (props.tableRowAlignment != styleProps.tableRowAlignment)
61350
+ props.setUseValue(TablePropertiesMask.UseTableAlignment, true);
61351
+ if (props.isTableOverlap != styleProps.isTableOverlap)
61352
+ props.setUseValue(TablePropertiesMask.UseIsTableOverlap, true);
61353
+ }
61354
+ function applyTableRowPropertiesUseValues(props, styleProps) {
61355
+ props.mask = TableRowPropertiesMask.UseNone;
61356
+ if (!props.cellSpacing.equals(styleProps.cellSpacing))
61357
+ props.setUseValue(TableRowPropertiesMask.UseCellSpacing, true);
61358
+ if (props.cantSplit != styleProps.cantSplit)
61359
+ props.setUseValue(TableRowPropertiesMask.UseCantSplit, true);
61360
+ if (props.hideCellMark != styleProps.hideCellMark)
61361
+ props.setUseValue(TableRowPropertiesMask.UseHideCellMark, true);
61362
+ if (props.tableRowAlignment != styleProps.tableRowAlignment)
61363
+ props.setUseValue(TableRowPropertiesMask.UseTableRowAlignment, true);
61364
+ if (props.header != styleProps.header)
61365
+ props.setUseValue(TableRowPropertiesMask.UseHeader, true);
61366
+ if (props.divId != styleProps.divId)
61367
+ props.setUseValue(TableRowPropertiesMask.UseDivId, true);
61368
+ }
61369
+ function applyTableCellPropertiesUseValues(props, styleProps) {
61370
+ props.mask = TableCellPropertiesMask.UseNone;
61371
+ if (!props.cellMargins.left.equals(styleProps.cellMargins.left))
61372
+ props.setUseValue(TableCellPropertiesMask.UseLeftMargin, true);
61373
+ if (!props.cellMargins.top.equals(styleProps.cellMargins.top))
61374
+ props.setUseValue(TableCellPropertiesMask.UseTopMargin, true);
61375
+ if (!props.cellMargins.bottom.equals(styleProps.cellMargins.bottom))
61376
+ props.setUseValue(TableCellPropertiesMask.UseBottomMargin, true);
61377
+ if (!props.cellMargins.right.equals(styleProps.cellMargins.right))
61378
+ props.setUseValue(TableCellPropertiesMask.UseRightMargin, true);
61379
+ if (!props.borders.left.equals(styleProps.borders.left))
61380
+ props.setUseValue(TableCellPropertiesMask.UseLeftBorder, true);
61381
+ if (!props.borders.top.equals(styleProps.borders.top))
61382
+ props.setUseValue(TableCellPropertiesMask.UseTopBorder, true);
61383
+ if (!props.borders.bottom.equals(styleProps.borders.bottom))
61384
+ props.setUseValue(TableCellPropertiesMask.UseBottomBorder, true);
61385
+ if (!props.borders.right.equals(styleProps.borders.right))
61386
+ props.setUseValue(TableCellPropertiesMask.UseRightBorder, true);
61387
+ if (props.hideCellMark != styleProps.hideCellMark)
61388
+ props.setUseValue(TableCellPropertiesMask.UseHideCellMark, true);
61389
+ if (props.noWrap != styleProps.noWrap)
61390
+ props.setUseValue(TableCellPropertiesMask.UseNoWrap, true);
61391
+ if (props.fitText != styleProps.fitText)
61392
+ props.setUseValue(TableCellPropertiesMask.UseFitText, true);
61393
+ if (props.textDirection != styleProps.textDirection)
61394
+ props.setUseValue(TableCellPropertiesMask.UseTextDirection, true);
61395
+ if (props.verticalAlignment != styleProps.verticalAlignment)
61396
+ props.setUseValue(TableCellPropertiesMask.UseVerticalAlignment, true);
61397
+ if (!props.shadingInfo.equals(styleProps.shadingInfo))
61398
+ props.setUseValue(TableCellPropertiesMask.UseShadingInfoIndex, true);
61399
+ }
61400
+
61279
61401
  ;// CONCATENATED MODULE: ./src/common/formats/rtf/import/table/table-converter.ts
61280
61402
 
61281
61403
 
@@ -61286,6 +61408,7 @@ class RtfTableColumnsCalculator {
61286
61408
 
61287
61409
 
61288
61410
 
61411
+
61289
61412
  class RtfTableConverter {
61290
61413
  constructor(tableReader) {
61291
61414
  this.rtfCellMap = {};
@@ -61333,8 +61456,9 @@ class RtfTableConverter {
61333
61456
  tablePreferredWidth.type = TableWidthUnitType.Auto;
61334
61457
  tablePreferredWidth.value = 0;
61335
61458
  }
61336
- if (!table.properties.coreProperties.getUseValue(TablePropertiesMask.UseRightMargin) &&
61337
- !table.properties.coreProperties.getUseValue(TablePropertiesMask.UseLeftMargin) && table.properties.useHalfSpace) {
61459
+ const useMargins = table.properties.coreProperties.getUseValue(TablePropertiesMask.UseLeftMargin) &&
61460
+ table.properties.coreProperties.getUseValue(TablePropertiesMask.UseRightMargin);
61461
+ if (!useMargins && table.properties.useHalfSpace) {
61338
61462
  const margin = table.properties.halfSpace;
61339
61463
  table.properties.coreProperties.cellMargins.left.type = TableWidthUnitType.ModelUnits;
61340
61464
  table.properties.coreProperties.cellMargins.left.value = margin;
@@ -61378,6 +61502,7 @@ class RtfTableConverter {
61378
61502
  return 0;
61379
61503
  }
61380
61504
  convertTableCore(table, rtfTable) {
61505
+ applyTablePropertiesUseValues(table.properties, table.style.baseConditionalStyle.tableProperties);
61381
61506
  const tableGrid = this.calculateTableGrid(rtfTable);
61382
61507
  const rows = table.rows;
61383
61508
  const tableLayoutType = table.properties.layoutType;
@@ -61480,6 +61605,7 @@ class RtfTableConverter {
61480
61605
  return result;
61481
61606
  }
61482
61607
  convertRow(row, rtfRow) {
61608
+ applyTableRowPropertiesUseValues(row.properties, row.parentTable.style.baseConditionalStyle.tableRowProperties);
61483
61609
  const rtfCells = rtfRow.cells;
61484
61610
  for (let i = 0; i < rtfCells.length; i++)
61485
61611
  this.convertCell(row, rtfCells[i]);
@@ -61488,6 +61614,7 @@ class RtfTableConverter {
61488
61614
  if (rtfCell.properties.horizontalMerging == TableCellMergingState.Restart)
61489
61615
  this.mergeCells(rtfCell);
61490
61616
  const cell = rtfCell.createCell(row, this.subDocument);
61617
+ applyTableCellPropertiesUseValues(cell.properties, cell.parentRow.parentTable.style.baseConditionalStyle.tableCellProperties);
61491
61618
  row.cells.push(cell);
61492
61619
  this.rtfCellMap[rtfCell.idForParentCellMap] = cell;
61493
61620
  }
@@ -65405,10 +65532,11 @@ function getAfterInsertReject(callback) {
65405
65532
 
65406
65533
 
65407
65534
 
65408
- function getRtfFromSubDocumentPublic(richOptions, subDocument, coreInterval) {
65535
+ function getRtfFromSubDocumentPublic(processor, subDocument, coreInterval) {
65409
65536
  const rangeCopy = RangeCopy.create(new SubDocumentIntervals(subDocument, [coreInterval]));
65410
- const newModelManager = new ClientModelManager(rangeCopy.model, richOptions, new batch_updatable/* EmptyBatchUpdatableObject */.m1());
65411
- return new RtfExporter(newModelManager.modelManipulator, new RtfDocumentExporterOptions()).exportAsString();
65537
+ const newModelManager = new ClientModelManager(rangeCopy.model, processor.modelManager.richOptions, new batch_updatable/* EmptyBatchUpdatableObject */.m1());
65538
+ const exportModelOptions = processor.getExportModelOptions({ modelManager: newModelManager });
65539
+ return new RtfExporter(exportModelOptions, new RtfDocumentExporterOptions()).exportAsString();
65412
65540
  }
65413
65541
  function insertRtfInSubDocumentPublic(processor, subDocument, position, rtf, callback) {
65414
65542
  const options = new RtfImporterOptions(() => { });
@@ -70636,6 +70764,7 @@ var SelectionBatchUpdateEvents;
70636
70764
  ;// CONCATENATED MODULE: ./src/common/layout/document-layout.ts
70637
70765
 
70638
70766
 
70767
+
70639
70768
  class ModelPositionHolder {
70640
70769
  constructor(pos, posManager) {
70641
70770
  this.pos = posManager.registerPosition(pos);
@@ -70673,6 +70802,12 @@ class AnchorObjectsPositionInfo {
70673
70802
  }
70674
70803
  }
70675
70804
  class DocumentLayout {
70805
+ get grids() {
70806
+ return this.pages.reduce((res, page) => {
70807
+ page.grids.forEach((grid, table) => res.set(table, grid));
70808
+ return res;
70809
+ }, new Map());
70810
+ }
70676
70811
  constructor(anchorObjectsPositionInfo) {
70677
70812
  this.anchorObjectsPositionInfo = anchorObjectsPositionInfo;
70678
70813
  this.setEmptyLayout(ColorHelper.NO_COLOR);
@@ -70694,6 +70829,9 @@ class DocumentLayout {
70694
70829
  getPageBySubDocumentId(subDocumentId) {
70695
70830
  return this.pages.find((page) => !!page.mainSubDocumentPageAreas[subDocumentId] || !!page.otherPageAreas[subDocumentId]);
70696
70831
  }
70832
+ findPageIndexByOffsetY(offsetY, sizeInfo) {
70833
+ return Math.max(0, search.SearchUtils.normedInterpolationIndexOf(this.pages, (p) => sizeInfo.getPageOffsetY(p), offsetY));
70834
+ }
70697
70835
  }
70698
70836
 
70699
70837
  ;// CONCATENATED MODULE: ./src/client/model-api/table/enums.ts
@@ -81673,10 +81811,12 @@ class ParagraphSpacingDestination extends ParagraphFormattingLeafElementDestinat
81673
81811
  const spacingBefore = this.data.readerHelper.getWpSTIntegerValue(reader, 'before', constants.Constants.MIN_SAFE_INTEGER);
81674
81812
  if (spacingBefore >= 0)
81675
81813
  this.paragraphProperties.setValue(ParagraphPropertyDescriptor.spacingBefore, spacingBefore);
81676
- this.paragraphProperties.setValue(ParagraphPropertyDescriptor.beforeAutoSpacing, spacingBefore == -1 ||
81677
- this.data.readerHelper.getWpSTOnOffValue(reader, new WordProcessingMLValue('beforeAutospacing', 'before-autospacing').openXmlValue, false));
81678
- this.paragraphProperties.setValue(ParagraphPropertyDescriptor.afterAutoSpacing, spacingAfter == -1 ||
81679
- this.data.readerHelper.getWpSTOnOffValue(reader, new WordProcessingMLValue('afterAutospacing', 'after-autospacing').openXmlValue, false));
81814
+ const beforeAutoSpacing = this.data.readerHelper.getWpSTOnOffValue(reader, 'beforeAutospacing', null);
81815
+ if (spacingBefore == -1 || beforeAutoSpacing != null)
81816
+ this.paragraphProperties.setValue(ParagraphPropertyDescriptor.beforeAutoSpacing, spacingBefore == -1 || beforeAutoSpacing);
81817
+ const afterAutoSpacing = this.data.readerHelper.getWpSTOnOffValue(reader, 'afterAutospacing', null);
81818
+ if (spacingAfter == -1 || afterAutoSpacing != null)
81819
+ this.paragraphProperties.setValue(ParagraphPropertyDescriptor.afterAutoSpacing, spacingAfter == -1 || afterAutoSpacing);
81680
81820
  const lineSpacing = this.data.readerHelper.getWpSTIntegerValue(reader, 'line', constants.Constants.MIN_SAFE_INTEGER);
81681
81821
  if (lineSpacing != constants.Constants.MIN_SAFE_INTEGER && lineSpacing > 0) {
81682
81822
  const attribute = new WordProcessingMLValue('lineRule', 'line-rule');
@@ -85288,7 +85428,7 @@ class SubDocumentApi {
85288
85428
  }
85289
85429
  getRtf(interval) {
85290
85430
  const coreInterval = this._checkInterval(interval);
85291
- return getRtfFromSubDocumentPublic(this._processor.modelManager.richOptions, this._subDocument, coreInterval);
85431
+ return getRtfFromSubDocumentPublic(this._processor, this._subDocument, coreInterval);
85292
85432
  }
85293
85433
  insertContent(position, content, documentFormat, callback) {
85294
85434
  position = ApiParametersChecker.check(position, 1, false, [
@@ -88718,21 +88858,13 @@ class SectionExporter extends BaseExporter {
88718
88858
  this.exportSectionGeneralSettings(props);
88719
88859
  }
88720
88860
  exportSectionPage(props) {
88721
- if (!this.shouldExportSectionPage(props))
88722
- return;
88723
88861
  this.writer.writeWpStartElement('pgSz');
88724
- if (props.pageSize.width != SectionExporter.defaultProps.pageSize.width)
88725
- this.writer.writeWpIntAttr('w', props.pageSize.width);
88726
- if (props.pageSize.height != SectionExporter.defaultProps.pageSize.height)
88727
- this.writer.writeWpIntAttr('h', props.pageSize.height);
88862
+ this.writer.writeWpIntAttr('w', props.pageSize.width);
88863
+ this.writer.writeWpIntAttr('h', props.pageSize.height);
88728
88864
  if (props.landscape)
88729
88865
  this.writer.writeWpStringAttr('orient', props.landscape ? 'landscape' : 'portrait');
88730
88866
  this.writer.endElement();
88731
88867
  }
88732
- shouldExportSectionPage(props) {
88733
- return !props.pageSize.equals(SectionExporter.defaultProps.pageSize) ||
88734
- props.landscape != SectionExporter.defaultProps.landscape;
88735
- }
88736
88868
  exportSectionMargins(props) {
88737
88869
  this.writer.writeWpStartElement('pgMar');
88738
88870
  this.writer.writeWpIntAttr('left', props.marginLeft);
@@ -90519,6 +90651,7 @@ class EffectExtent {
90519
90651
 
90520
90652
 
90521
90653
 
90654
+
90522
90655
  class TableExporter extends BaseExporter {
90523
90656
  constructor() {
90524
90657
  super(...arguments);
@@ -90548,10 +90681,9 @@ class TableExporter extends BaseExporter {
90548
90681
  }
90549
90682
  }
90550
90683
  getTableGrid(table) {
90551
- if (table.rows[0].logicColumnCount < 64)
90552
- return [];
90553
- const colGrid = [];
90554
- return colGrid;
90684
+ var _a, _b;
90685
+ const grid = this.data.grids.get(table);
90686
+ return ((_b = (_a = grid === null || grid === void 0 ? void 0 : grid.columns) === null || _a === void 0 ? void 0 : _a.width) === null || _b === void 0 ? void 0 : _b.map(unit_converter/* UnitConverter */.u.pixelsToTwips)) || [];
90555
90687
  }
90556
90688
  initNewTables(newIndexes, allowInitNextTable) {
90557
90689
  for (let levelIndex = this.tableIndexes.length; levelIndex < newIndexes.length; levelIndex++) {
@@ -91061,11 +91193,12 @@ class data_Data {
91061
91193
  get subDocumentExporter() { return this.subDocumentExporterStack.last; }
91062
91194
  get relationExporter() { return utils_list.ListUtils.last(this.relationExporters); }
91063
91195
  get mainSubDocumentRelations() { return this.relationExporters[0]; }
91064
- constructor(model, options) {
91196
+ constructor(exportModelOptions, options) {
91065
91197
  this.drawingElementId = 1;
91066
91198
  this.exportSubDocumentsList = [];
91067
91199
  this.relationExporters = [];
91068
- this.model = model;
91200
+ this.model = exportModelOptions.modelManager.model;
91201
+ this.grids = exportModelOptions.grids;
91069
91202
  this.options = options;
91070
91203
  this.constants = new DocxConstants();
91071
91204
  this.writerStack = new stack/* Stack */.K();
@@ -91849,10 +91982,10 @@ class EndNoteExporter extends NoteExporter {
91849
91982
 
91850
91983
 
91851
91984
  class DocxExporter {
91852
- constructor(modelManipulator, options) {
91853
- this.modelManipulator = modelManipulator;
91985
+ constructor(exportModelOptions, options) {
91986
+ this.modelManipulator = exportModelOptions.modelManager.modelManipulator;
91854
91987
  this.options = options;
91855
- this.data = new data_Data(modelManipulator.model, options);
91988
+ this.data = new data_Data(exportModelOptions, options);
91856
91989
  }
91857
91990
  exportToBlob(callback) {
91858
91991
  this.modelManipulator.picture.loader.ensureAllPicturesLoaded(this.options.ensurePictureLoadedTimeout, (_loaded) => {
@@ -91959,8 +92092,8 @@ function exportModelToBlob(exportModelOptions, callback) {
91959
92092
  function getExporter(exportModelOptions) {
91960
92093
  const { modelManipulator } = exportModelOptions.modelManager;
91961
92094
  switch (exportModelOptions.documentFormat) {
91962
- case DocumentFormat.OpenXml: return new DocxExporter(modelManipulator, new DocxExportOptions());
91963
- case DocumentFormat.Rtf: return new RtfExporter(modelManipulator, new RtfDocumentExporterOptions());
92095
+ case DocumentFormat.OpenXml: return new DocxExporter(exportModelOptions, new DocxExportOptions());
92096
+ case DocumentFormat.Rtf: return new RtfExporter(exportModelOptions, new RtfDocumentExporterOptions());
91964
92097
  case DocumentFormat.PlainText: return new TxtExporter(modelManipulator, new DocumentExporterOptions());
91965
92098
  case DocumentFormat.Html: return new HtmlDocumentExporter(exportModelOptions, new DocumentExporterOptions());
91966
92099
  default:
@@ -92471,7 +92604,7 @@ class AnchorObjectHorizontalPositionCalculator extends AnchorObjectPositionCalcu
92471
92604
  alignment(type, alignment) {
92472
92605
  switch (type) {
92473
92606
  case AnchorObjectHorizontalPositionType.Character:
92474
- return this.getAlignPosition(alignment, 0);
92607
+ return this.getAnchorXPosition() + this.getAlignPosition(alignment, 0);
92475
92608
  case AnchorObjectHorizontalPositionType.Column:
92476
92609
  return this.isRelativeCell ?
92477
92610
  this.relativeColumnPos() + this.lp.row.tableCellInfo.x +
@@ -92520,17 +92653,8 @@ class AnchorObjectHorizontalPositionCalculator extends AnchorObjectPositionCalcu
92520
92653
  return this.isRelativeCell ? this.relativeColumnPos() + this.lp.row.tableCellInfo.x : 0;
92521
92654
  case AnchorObjectHorizontalPositionType.Column:
92522
92655
  return this.isRelativeCell ? this.relativeColumnPos() + this.lp.row.tableCellInfo.x + this.leftCellMargin : this.relativeColumnPos();
92523
- case AnchorObjectHorizontalPositionType.Character: {
92524
- const rowAbsPos = this.lp.getLogPosition(DocumentLayoutDetailsLevel.Row);
92525
- const ancBoxAbsPos = this.obj.rowOffset;
92526
- const boxIndex = search.SearchUtils.normedInterpolationIndexOf(this.lp.row.boxes, (box) => rowAbsPos + box.rowOffset, ancBoxAbsPos);
92527
- const box = this.lp.row.boxes[boxIndex];
92528
- if (!box)
92529
- return this.lp.getLayoutX(null, DocumentLayoutDetailsLevel.Row);
92530
- const symbolCount = Math.max(0, ancBoxAbsPos - rowAbsPos - box.rowOffset);
92531
- return this.lp.getLayoutX(null, DocumentLayoutDetailsLevel.Row) + box.x +
92532
- box.getCharOffsetXInPixels(this.manager.measurer, symbolCount);
92533
- }
92656
+ case AnchorObjectHorizontalPositionType.Character:
92657
+ return this.getAnchorXPosition();
92534
92658
  case AnchorObjectHorizontalPositionType.Margin:
92535
92659
  return this.isRelativeCell ? this.relativeColumnPos() + this.lp.row.tableCellInfo.x + this.leftCellMargin :
92536
92660
  this.manager.boundsCalculator.marginLeft;
@@ -92547,6 +92671,19 @@ class AnchorObjectHorizontalPositionCalculator extends AnchorObjectPositionCalcu
92547
92671
  throw new Error(lib_errors/* Errors */.D.InternalException);
92548
92672
  }
92549
92673
  }
92674
+ getAnchorXPosition() {
92675
+ const rowAbsPos = this.lp.getLogPosition(DocumentLayoutDetailsLevel.Row);
92676
+ const ancBoxAbsPos = this.obj.rowOffset;
92677
+ let boxIndex = search.SearchUtils.normedInterpolationIndexOf(this.lp.row.boxes, (box) => rowAbsPos + box.rowOffset, ancBoxAbsPos);
92678
+ if (boxIndex < 0)
92679
+ boxIndex = 0;
92680
+ const box = this.lp.row.boxes[boxIndex];
92681
+ if (!box)
92682
+ return this.lp.getLayoutX(null, DocumentLayoutDetailsLevel.Row);
92683
+ const symbolCount = Math.max(0, ancBoxAbsPos - rowAbsPos - box.rowOffset);
92684
+ return this.lp.getLayoutX(null, DocumentLayoutDetailsLevel.Row) + box.x +
92685
+ box.getCharOffsetXInPixels(this.manager.measurer, symbolCount);
92686
+ }
92550
92687
  bookLayout() {
92551
92688
  return this.alignment(this.anchorInfo.horizontalPositionType, AnchorObjectHorizontalPositionCalculator.mapBookLayoutALignmentType[this.anchorInfo.horizontalPositionAlignment]);
92552
92689
  }
@@ -92772,6 +92909,12 @@ class AnchoredTextBoxContextSizeCalculator {
92772
92909
 
92773
92910
 
92774
92911
  class LayoutPageArea extends rectangle.Rectangle {
92912
+ get grids() {
92913
+ return this.columns.reduce((res, column) => {
92914
+ column.tablesInfo.forEach(tableInfo => res.set(tableInfo.logicInfo.grid.table, tableInfo.logicInfo.grid));
92915
+ return res;
92916
+ }, new Map());
92917
+ }
92775
92918
  constructor(subDocument) {
92776
92919
  super(0, 0, 0, 0);
92777
92920
  this.columns = [];
@@ -92797,7 +92940,6 @@ class LayoutPageArea extends rectangle.Rectangle {
92797
92940
 
92798
92941
 
92799
92942
 
92800
-
92801
92943
  var LayoutRowStateFlags;
92802
92944
  (function (LayoutRowStateFlags) {
92803
92945
  LayoutRowStateFlags[LayoutRowStateFlags["NormallyEnd"] = 0] = "NormallyEnd";
@@ -92924,7 +93066,7 @@ class layout_row_LayoutRow extends rectangle.Rectangle {
92924
93066
  return lastBoxIndexWhatCanStrikeoutAndUnderline;
92925
93067
  }
92926
93068
  containsSpacesOnly() {
92927
- return this.boxes.length > 0 && utils_list.ListUtils.allOf(this.boxes, val => val.isWhitespace() || val.getType() === LayoutBoxType.ParagraphMark);
93069
+ return this.boxes.length > 0 && utils_list.ListUtils.allOf(this.boxes, val => val.isWhitespace());
92928
93070
  }
92929
93071
  }
92930
93072
  class LayoutRowWithIndex extends (/* unused pure expression or super */ null && (layout_row_LayoutRow)) {
@@ -95019,10 +95161,10 @@ class RowFormattingInfo {
95019
95161
  const ind = utils_list.ListUtils.indexBy(this.intervals, (curr) => curr.start > pos || pos < curr.end, this.currIndex + 1);
95020
95162
  return ind < 0 ? this.intervals.length - 1 : ind;
95021
95163
  }
95022
- calculate() {
95164
+ calculate(outerHorizontalRowContentBounds) {
95023
95165
  this.setIntersectObjects();
95024
95166
  this.busyIntervals = algorithms.IntervalAlgorithms.getMergedIntervals(utils_list.ListUtils.map(this.intersectsObjects, (objBnds) => new fixed.FixedInterval(objBnds.x, objBnds.width)), true);
95025
- const freeIntervals = algorithms.IntervalAlgorithms.reflectIntervals(this.busyIntervals, this.outerHorizontalRowContentBounds);
95167
+ const freeIntervals = this.calculateFreeIntervals(this.busyIntervals, outerHorizontalRowContentBounds !== null && outerHorizontalRowContentBounds !== void 0 ? outerHorizontalRowContentBounds : this.outerHorizontalRowContentBounds);
95026
95168
  if (freeIntervals.length) {
95027
95169
  this.intervals = utils_list.ListUtils.map(freeIntervals, (curr) => new RowIntervalInfo(curr.start, curr.length));
95028
95170
  return;
@@ -95030,6 +95172,40 @@ class RowFormattingInfo {
95030
95172
  this.resetMinY(utils_list.ListUtils.min);
95031
95173
  Log.print(LogSource.RowFormatter, "RowFormattingInfo.calculate ", `minY:${this.minY}, height:${this.height}, currIndex: ${this.currIndex} intervals:\n${Log.join("\n", utils_list.ListUtils.map(this.intervals, (curr) => LogObjToStr.fixedInterval(curr)))}`);
95032
95174
  }
95175
+ calculateFreeIntervals(busyIntervals, outerHorizontalRowContentBounds) {
95176
+ const intervals = utils_list.ListUtils.reducedMap(busyIntervals, val => algorithms.IntervalAlgorithms.getIntersectionNonNullLength(val, outerHorizontalRowContentBounds));
95177
+ if (!intervals.length)
95178
+ return [outerHorizontalRowContentBounds.clone()];
95179
+ const lastIntervalEnd = utils_list.ListUtils.last(intervals).end;
95180
+ const result = utils_list.ListUtils.reducedMap(intervals, (curr, i) => fixed.FixedInterval.fromPositions(busyIntervals[i - 1].end, curr.start), 1);
95181
+ if (outerHorizontalRowContentBounds.start < busyIntervals[0].start)
95182
+ result.unshift(fixed.FixedInterval.fromPositions(outerHorizontalRowContentBounds.start, busyIntervals[0].start));
95183
+ if (outerHorizontalRowContentBounds.end > lastIntervalEnd)
95184
+ result.push(fixed.FixedInterval.fromPositions(lastIntervalEnd, outerHorizontalRowContentBounds.end));
95185
+ return result;
95186
+ }
95187
+ recalculate(outerHorizontalRowContentBounds) {
95188
+ const currInterval = this.currInterval;
95189
+ this.calculate(outerHorizontalRowContentBounds);
95190
+ const pos = currInterval.start + currInterval.busyWidth;
95191
+ const index = this.findIntervalIndexByPosition(pos);
95192
+ const interval = this.intervals[index];
95193
+ if (interval && interval.start < pos) {
95194
+ const avaliableWidth = interval.length - (pos - interval.start);
95195
+ interval.avaliableWidth = avaliableWidth;
95196
+ }
95197
+ this.currIndex = index;
95198
+ }
95199
+ findIntervalIndexByPosition(position) {
95200
+ let index = 0;
95201
+ while (index < this.intervals.length) {
95202
+ const interval = this.intervals[index];
95203
+ if (interval.start <= position && position < interval.end || position < interval.start)
95204
+ break;
95205
+ index++;
95206
+ }
95207
+ return index;
95208
+ }
95033
95209
  canIncrementHeightTo(newHeight) {
95034
95210
  const contentBounds = utils_list.ListUtils.map(this.intervals, (c) => new rectangle.Rectangle(c.start, this.minY, c.busyWidth, newHeight));
95035
95211
  const intersectedObjects = this.calcIntersectObjects(newHeight);
@@ -95620,8 +95796,6 @@ class RowBaseFormatterState {
95620
95796
  this.rowFormatter.finishRow();
95621
95797
  }
95622
95798
  addAnchorObject() {
95623
- if (!this.rowFormatter.wordHolder.pushBoxes())
95624
- return;
95625
95799
  this.rowFormatter.addAnchorObject();
95626
95800
  }
95627
95801
  addTextBox() {
@@ -95753,7 +95927,7 @@ class RowTabInfo {
95753
95927
  const tab = this.tabPositions[ind];
95754
95928
  const oldTabPos = tab ? tab.position : Number.MAX_VALUE;
95755
95929
  if (oldTabPos != pos)
95756
- this.tabPositions.splice(pos > oldTabPos ? ind + 1 : ind, 0, new TabInfo(pos, TabAlign.Left, TabLeaderType.None, false, false));
95930
+ this.tabPositions.splice(pos > oldTabPos ? ind + 1 : ind, 0, new TabInfo(pos, TabAlign.Left, TabLeaderType.None, false, false, true));
95757
95931
  }
95758
95932
  for (let pos of this.tabPositions)
95759
95933
  pos.position += this.paragraphHorizontalBoundsStart;
@@ -95799,9 +95973,10 @@ class RowTabInfo {
95799
95973
  const lastInterval = utils_list.ListUtils.last(this.rowFormatter.rowSizesManager.rowFormattingInfo.intervals);
95800
95974
  if (tabXPosRelativePage > lastInterval.end) {
95801
95975
  if (lastInterval.end < this.rowFormatter.paragraphHorizontalBounds.end) {
95802
- if (this.rowFormatter.manager.model.compatibilitySettings.compatibilityMode < CompatibilityMode.Word2013) {
95803
- this.currInterval.avaliableWidth = Number.MAX_SAFE_INTEGER - this.currInterval.busyWidth;
95804
- this.currInterval.length = Number.MAX_SAFE_INTEGER;
95976
+ if (this.rowFormatter.manager.model.compatibilitySettings.compatibilityMode < CompatibilityMode.Word2013 && tabPosition && !tabPosition.isParagraphIndent) {
95977
+ const interval = this.rowFormatter.rowSizesManager.rowFormattingInfo.outerHorizontalRowContentBounds;
95978
+ interval.length = Number.MAX_SAFE_INTEGER - interval.start;
95979
+ this.rowFormatter.rowSizesManager.rowFormattingInfo.recalculate(interval);
95805
95980
  this.row.width = Number.MAX_SAFE_INTEGER;
95806
95981
  this.row.flags.set(LayoutRowStateFlags.InfinityWidth, true);
95807
95982
  return this.addTabBox();
@@ -98163,25 +98338,9 @@ class table_info_TableInfo {
98163
98338
  tableIndent.value = 0;
98164
98339
  }
98165
98340
  const tableIndentInPixels = tableIndent.asNumberNoPercentType(unit_converter/* UnitConverter */.u.twipsToPixels);
98166
- this.xPositionStart = xPosition + tableIndentInPixels + (diff.xDiff ? diff.xDiff : -firstCellLeftMargin) +
98167
- this.getShiftHorizontalPosition(xPosition);
98341
+ this.xPositionStart = xPosition + tableIndentInPixels + (diff.xDiff ? diff.xDiff : -firstCellLeftMargin);
98168
98342
  this.yPositionStart = yOffset + diff.yDiff;
98169
98343
  }
98170
- getShiftHorizontalPosition(xPosition) {
98171
- const freeSpaceFromTable = this.columnWidth - this.grid.commonWidth;
98172
- if (freeSpaceFromTable >= 0)
98173
- return 0;
98174
- const tableAlignment = this.table.getActualTableAlignment();
98175
- if (tableAlignment == TableRowAlignment.Center) {
98176
- let result = freeSpaceFromTable / 2 - xPosition;
98177
- if (result < 0 && this.isSimpleView)
98178
- result = 0;
98179
- return result;
98180
- }
98181
- else if (tableAlignment == TableRowAlignment.Right)
98182
- return freeSpaceFromTable - xPosition;
98183
- return 0;
98184
- }
98185
98344
  static getEstimatedTableWidth(table, maxWidth) {
98186
98345
  const preferredWidth = table.preferredWidth;
98187
98346
  const minWidth = 3 * table.rows[0].getTotalCellsInRowConsiderGrid();
@@ -98264,6 +98423,12 @@ class LayoutTableSizeCompressor {
98264
98423
  LayoutTableSizeCompressor.cellCompress(cell, cell.createRectangle());
98265
98424
  }
98266
98425
  static tableCompress(tableInfo, boundsRelativeColumn) {
98426
+ const intersection = rectangle.Rectangle.getIntersection(tableInfo, boundsRelativeColumn);
98427
+ const headOffset = intersection.x - tableInfo.x;
98428
+ if (headOffset > 0) {
98429
+ tableInfo.verticalBorders.forEach(b => b.xPos -= headOffset);
98430
+ tableInfo.verticalCursorBorders.forEach(b => b.xPos -= headOffset);
98431
+ }
98267
98432
  LayoutTableSizeCompressor.compress(tableInfo, boundsRelativeColumn, true, false);
98268
98433
  const boundsRelativeTable = tableInfo.clone().moveRectangle(-tableInfo.x, -tableInfo.y);
98269
98434
  for (let row of tableInfo.tableRows)
@@ -98332,8 +98497,9 @@ class LayoutTableSizeCompressor {
98332
98497
  }
98333
98498
  border.length = Math.min(border.yPos + border.length, bounds.bottom) - border.yPos;
98334
98499
  if (border.xPos < bounds.x)
98335
- return true;
98336
- border.xPos = bounds.right;
98500
+ border.xPos = bounds.x;
98501
+ else
98502
+ border.xPos = bounds.right;
98337
98503
  border.borderInfo.width = 0;
98338
98504
  return false;
98339
98505
  }
@@ -103492,6 +103658,7 @@ class CanvasUtils {
103492
103658
 
103493
103659
 
103494
103660
 
103661
+
103495
103662
 
103496
103663
 
103497
103664
  class SimpleViewCanvasSizeManager {
@@ -103518,6 +103685,10 @@ class SimpleViewCanvasSizeManager {
103518
103685
  this.resizeFrameId = null;
103519
103686
  this.resizeObserver.disconnect();
103520
103687
  }
103688
+ modelChanged(change) {
103689
+ if (change.type == ModelChangeType.ZoomLevelChanged && this.control.innerClientProperties.viewsSettings.isSimpleView)
103690
+ this.changeSize(true);
103691
+ }
103521
103692
  changeSize(force) {
103522
103693
  const curr = new geometry_size.Size(this.canvasManager.getCanvasWidth(), this.canvasManager.controlHeightProvider.getVisibleAreaHeight(false));
103523
103694
  if (force || !curr.equals(this.size)) {
@@ -103543,18 +103714,16 @@ class SimpleViewCanvasSizeManager {
103543
103714
  this.sizeUpdated = true;
103544
103715
  }
103545
103716
  changeSizeCore() {
103546
- {
103547
- utils_list.ListUtils.forEach(this.control.viewManager.cache, (_val) => this.control.viewManager.renderer.removePage(1), 1);
103548
- this.control.viewManager.ensureFirstPageIsRendered();
103549
- this.control.innerClientProperties.viewsSettings.widthOfPage = this.canvasManager.getCanvasWidth();
103550
- if (this.control.layoutFormatterManager) {
103551
- this.control.layoutFormatterManager.invalidator.onChangedAllLayout();
103552
- this.control.selection.scrollManager.setScroll(new ScrollState().byModelPosition(this.control.selection)
103553
- .setModelPosition(this.control.selection.lastSelectedInterval.start).useStdRelativePosition().useStdOffset());
103554
- }
103555
- this.control.owner.adjustControl();
103556
- this.control.horizontalRulerControl.update();
103717
+ utils_list.ListUtils.forEach(this.control.viewManager.cache, (_val) => this.control.viewManager.renderer.removePage(1), 1);
103718
+ this.control.viewManager.ensureFirstPageIsRendered();
103719
+ this.control.innerClientProperties.viewsSettings.widthOfPage = this.canvasManager.getCanvasWidth();
103720
+ if (this.control.layoutFormatterManager) {
103721
+ this.control.layoutFormatterManager.invalidator.onChangedAllLayout();
103722
+ this.control.selection.scrollManager.setScroll(new ScrollState().byModelPosition(this.control.selection)
103723
+ .setModelPosition(this.control.selection.lastSelectedInterval.start).useStdRelativePosition().useStdOffset());
103557
103724
  }
103725
+ this.control.owner.adjustControl();
103726
+ this.control.horizontalRulerControl.update();
103558
103727
  }
103559
103728
  }
103560
103729
  class DocumentRenderer {
@@ -103738,7 +103907,7 @@ class DocumentRenderer {
103738
103907
  }
103739
103908
  }
103740
103909
  updatePageSize(page, pageElement) {
103741
- if (pageElement.offsetHeight != page.height || pageElement.offsetWidth != page.width)
103910
+ if (pageElement.offsetHeight != Math.round(page.height) || pageElement.offsetWidth != Math.round(page.width))
103742
103911
  dom.DomUtils.setStyleSize(pageElement.style, page);
103743
103912
  }
103744
103913
  updatePageClasses(pageElement) {
@@ -106437,40 +106606,31 @@ class MouseHandlerDefaultState extends MouseHandlerStateBase {
106437
106606
  this.processMouseDownOnMaxDetailsLevel(evt, htr, activeSubDocument);
106438
106607
  }
106439
106608
  processMouseDownOnMaxDetailsLevel(evt, htr, activeSubDocument) {
106609
+ const selection = this.handler.control.selection;
106440
106610
  if (htr.floatingObject) {
106441
- if (htr.floatingObject.belongsToSubDocId != this.handler.control.selection.activeSubDocument.id)
106442
- MouseHandlerHelper.changeActiveSubDocumentToParent(this.handler.control);
106443
106611
  const box = htr.floatingObject;
106444
- this.selectFloatingObject(box);
106445
- const specRunInfo = this.handler.control.selection.specialRunInfo;
106446
- if (specRunInfo.isSelectedAnchorObject) {
106447
- if (box.getType() == LayoutBoxType.AnchorTextBox &&
106448
- HitTestManager.isPointInTexBoxArea(evt.layoutPoint, box, activeSubDocument.isTextBox() ? 0 : box.rotationInRadians)) {
106612
+ const rotationAngle = activeSubDocument.isTextBox() ? 0 : box.rotationInRadians;
106613
+ if (box.getType() == LayoutBoxType.AnchorTextBox && HitTestManager.isPointInTexBoxArea(evt.layoutPoint, box, rotationAngle)) {
106614
+ const textbox = box;
106615
+ if (textbox.internalSubDocId !== selection.activeSubDocument.id && this.selectFloatingObject(box)) {
106449
106616
  this.handler.control.commandManager.getCommand(RichEditClientCommand.ChangeActiveSubDocumentToTextBox).execute(this.handler.control.commandManager.isPublicApiCall);
106450
106617
  this.handler.boxVisualizerManager.resizeBoxVisualizer.show(htr.pageIndex, null, null, null, box);
106451
- htr = this.handler.control.hitTestManager.calculate(evt.layoutPoint, DocumentLayoutDetailsLevel.Max, this.handler.control.selection.activeSubDocument);
106452
- }
106453
- else {
106454
- if (this.resizeRotationChecker(() => {
106455
- const dragFloatingObjectState = new MouseHandlerDragFloatingObjectState(this.handler, evt);
106456
- this.handler.switchState(new MouseHandlerBeginDragHelperState(evt.layoutPoint, this.handler, dragFloatingObjectState));
106457
- }))
106458
- return;
106459
- else {
106460
- if (specRunInfo.isPictureSelected()) {
106461
- this.handler.control.selection.setSelection(new SetSelectionParams()
106462
- .setInterval(new fixed.FixedInterval(specRunInfo.getPicturePosition(), 1)));
106463
- return;
106464
- }
106465
- }
106618
+ htr = this.handler.control.hitTestManager.calculate(evt.layoutPoint, DocumentLayoutDetailsLevel.Max, selection.activeSubDocument);
106466
106619
  }
106467
106620
  }
106621
+ else {
106622
+ if (this.selectFloatingObject(box) && this.resizeRotationChecker(() => {
106623
+ const dragFloatingObjectState = new MouseHandlerDragFloatingObjectState(this.handler, evt);
106624
+ this.handler.switchState(new MouseHandlerBeginDragHelperState(evt.layoutPoint, this.handler, dragFloatingObjectState));
106625
+ }))
106626
+ return;
106627
+ }
106468
106628
  }
106469
106629
  if (browser.Browser.TouchUI && htr.subDocument.isMain() && htr.exactlyDetailLevel < DocumentLayoutDetailsLevel.PageArea) {
106470
106630
  if (htr.deviations[DocumentLayoutDetailsLevel.PageArea] & rectangle.HitTestDeviation.Top || htr.deviations[DocumentLayoutDetailsLevel.PageArea] & rectangle.HitTestDeviation.Bottom)
106471
106631
  this.handler.control.viewManager.canvasScrollManager.waitForDblClick();
106472
106632
  }
106473
- if (evt.button === MouseButton.Right && this.handler.control.selection.lastSelectedInterval.contains(htr.getPosition()))
106633
+ if (evt.button === MouseButton.Right && selection.lastSelectedInterval.contains(htr.getPosition()))
106474
106634
  return;
106475
106635
  if (this.shouldSelectEntireTableColumn(htr))
106476
106636
  this.beginSelectEntireTableColumn(htr, evt);
@@ -106485,7 +106645,7 @@ class MouseHandlerDefaultState extends MouseHandlerStateBase {
106485
106645
  this.beginSelectEntireTableCell(htr, evt);
106486
106646
  }
106487
106647
  else if (this.isLeftArea(htr, evt)) {
106488
- if (evt.modifiers & key/* ModifierKey */.tx.Ctrl && this.handler.control.selection.isCollapsed())
106648
+ if (evt.modifiers & key/* ModifierKey */.tx.Ctrl && selection.isCollapsed())
106489
106649
  this.handler.control.commandManager.getCommand(RichEditClientCommand.SelectAll).execute(this.handler.control.commandManager.isPublicApiCall, htr.getPosition());
106490
106650
  else if (this.isLeftAreaOffset(htr, evt))
106491
106651
  this.beginLineSelection(htr, evt);
@@ -106693,8 +106853,14 @@ class MouseHandlerDefaultState extends MouseHandlerStateBase {
106693
106853
  this.handler.switchState(state);
106694
106854
  }
106695
106855
  selectFloatingObject(box) {
106856
+ const selection = this.handler.control.selection;
106857
+ if (box.belongsToSubDocId !== selection.activeSubDocument.id)
106858
+ MouseHandlerHelper.changeActiveSubDocumentToParent(this.handler.control);
106859
+ if (box.belongsToSubDocId !== selection.activeSubDocument.id)
106860
+ return false;
106696
106861
  const pos = this.handler.control.layout.anchorObjectsPositionInfo.getPosition(box.objectId);
106697
- this.handler.control.selection.setSelection(new SetSelectionParams().setInterval(new fixed.FixedInterval(pos, 1)));
106862
+ selection.setSelection(new SetSelectionParams().setInterval(new fixed.FixedInterval(pos, 1)));
106863
+ return selection.specialRunInfo.isSelectedAnchorObject;
106698
106864
  }
106699
106865
  }
106700
106866
  class MouseHandlerHelper {
@@ -107867,31 +108033,56 @@ ResizeBoxListener.directionToSource = {
107867
108033
  };
107868
108034
 
107869
108035
  ;// CONCATENATED MODULE: ./src/common/utils/size-utils.ts
108036
+
107870
108037
  class SizeUtils {
108038
+ static getScrollbarsWidth() {
108039
+ if (!(0,common.isDefined)(this._scrollbarsWidth)) {
108040
+ const scrollDiv = document.createElement('div');
108041
+ scrollDiv.style.visibility = 'hidden';
108042
+ scrollDiv.style.overflow = 'scroll';
108043
+ scrollDiv.style.position = 'absolute';
108044
+ scrollDiv.style.top = '-9999px';
108045
+ scrollDiv.style.width = '100px';
108046
+ scrollDiv.style.height = '100px';
108047
+ document.body.appendChild(scrollDiv);
108048
+ const innerDiv = document.createElement('div');
108049
+ innerDiv.style.width = '100%';
108050
+ innerDiv.style.height = '100%';
108051
+ scrollDiv.appendChild(innerDiv);
108052
+ this._scrollbarsWidth = {
108053
+ horizontal: SizeUtils.getOffsetHeight(scrollDiv) - SizeUtils.getOffsetHeight(innerDiv),
108054
+ vertical: SizeUtils.getOffsetWidth(scrollDiv) - SizeUtils.getOffsetWidth(innerDiv)
108055
+ };
108056
+ scrollDiv.remove();
108057
+ }
108058
+ return this._scrollbarsWidth;
108059
+ }
107871
108060
  static getWidthInfo(element) {
107872
- const offsetSize = SizeUtils.getOffsetWidth(element);
107873
- const style = getComputedStyle(element);
107874
- const inset = parseCssValue(style.borderLeftWidth)
107875
- + parseCssValue(style.borderRightWidth)
107876
- + parseCssValue(style.paddingLeft)
107877
- + parseCssValue(style.paddingRight);
107878
- const sizeWithScrollBar = offsetSize - inset;
107879
- const scrollBarSize = Math.round(sizeWithScrollBar) - element.clientWidth;
107880
- return new DimensionInfo(offsetSize, sizeWithScrollBar - scrollBarSize, scrollBarSize);
108061
+ const computedStyle = getComputedStyle(element);
108062
+ const offsetWidth = this.getOffsetWidth(element);
108063
+ const offsetWidthWithoutBorder = offsetWidth
108064
+ - parseCssValue(computedStyle.borderLeftWidth)
108065
+ - parseCssValue(computedStyle.borderRightWidth);
108066
+ let scrollbarWidth = 0;
108067
+ if (Math.round(offsetWidthWithoutBorder) > element.clientWidth)
108068
+ scrollbarWidth = SizeUtils.getScrollbarsWidth().vertical;
108069
+ const clientWidth = offsetWidthWithoutBorder - scrollbarWidth;
108070
+ return new DimensionInfo(offsetWidth, clientWidth, scrollbarWidth);
107881
108071
  }
107882
108072
  static getClientWidth(element) {
107883
108073
  return this.getWidthInfo(element).clientSize;
107884
108074
  }
107885
108075
  static getHeightInfo(element) {
107886
- const offsetSize = SizeUtils.getOffsetHeight(element);
107887
- const style = getComputedStyle(element);
107888
- const inset = parseCssValue(style.borderTopWidth)
107889
- + parseCssValue(style.borderBottomWidth)
107890
- + parseCssValue(style.paddingTop)
107891
- + parseCssValue(style.paddingBottom);
107892
- const sizeWithScrollBar = offsetSize - inset;
107893
- const scrollBarSize = Math.round(sizeWithScrollBar) - element.clientHeight;
107894
- return new DimensionInfo(offsetSize, sizeWithScrollBar - scrollBarSize, scrollBarSize);
108076
+ const computedStyle = getComputedStyle(element);
108077
+ const offsetHeight = this.getOffsetHeight(element);
108078
+ const offsetHeightWithoutBorder = offsetHeight
108079
+ - parseCssValue(computedStyle.borderTopWidth)
108080
+ - parseCssValue(computedStyle.borderBottomWidth);
108081
+ let scrollbarWidth = 0;
108082
+ if (Math.round(offsetHeightWithoutBorder) > element.clientHeight)
108083
+ scrollbarWidth = SizeUtils.getScrollbarsWidth().horizontal;
108084
+ const clientHeight = offsetHeightWithoutBorder - scrollbarWidth;
108085
+ return new DimensionInfo(offsetHeight, clientHeight, scrollbarWidth);
107895
108086
  }
107896
108087
  static getClientHeight(element) {
107897
108088
  return this.getHeightInfo(element).clientSize;
@@ -107917,6 +108108,99 @@ class DimensionInfo {
107917
108108
  }
107918
108109
  }
107919
108110
 
108111
+ ;// CONCATENATED MODULE: ./src/common/utils/mixed-size.ts
108112
+
108113
+ class MixedSize {
108114
+ constructor() {
108115
+ this._UISizePart = 0;
108116
+ this._layoutSizePart = 0;
108117
+ this._scale = 1;
108118
+ this._scaleIsSpecified = false;
108119
+ }
108120
+ static fromLayout(value) {
108121
+ return new MixedSize().addLayoutSize(value);
108122
+ }
108123
+ static fromUI(value) {
108124
+ return new MixedSize().addUISize(value);
108125
+ }
108126
+ get UISize() {
108127
+ this.checkScaleIsSpecified();
108128
+ if (!(0,common.isDefined)(this._UISize))
108129
+ this._UISize = this._layoutSizePart * this._scale + this._UISizePart;
108130
+ return this._UISize;
108131
+ }
108132
+ get LayoutSize() {
108133
+ this.checkScaleIsSpecified();
108134
+ if (!(0,common.isDefined)(this._layoutSize))
108135
+ this._layoutSize = this._layoutSizePart + this._UISizePart / this._scale;
108136
+ return this._layoutSize;
108137
+ }
108138
+ get UISizePart() {
108139
+ return this._UISizePart;
108140
+ }
108141
+ set UISizePart(value) {
108142
+ this._UISizePart = value;
108143
+ this.onSizeChanged();
108144
+ }
108145
+ get LayoutSizePart() {
108146
+ return this._layoutSizePart;
108147
+ }
108148
+ set LayoutSizePart(value) {
108149
+ this._layoutSizePart = value;
108150
+ this.onSizeChanged();
108151
+ }
108152
+ onSizeChanged() {
108153
+ this._UISize = null;
108154
+ this._layoutSize = null;
108155
+ }
108156
+ addUISize(value) {
108157
+ this.UISizePart += value;
108158
+ return this;
108159
+ }
108160
+ addLayoutSize(value) {
108161
+ this.LayoutSizePart += value;
108162
+ return this;
108163
+ }
108164
+ addSize(value) {
108165
+ this.checkSizeHasSameScale(value);
108166
+ this.addLayoutSize(value._layoutSizePart);
108167
+ this.addUISize(value._UISizePart);
108168
+ return this;
108169
+ }
108170
+ subtractUISize(value) {
108171
+ this.UISizePart -= value;
108172
+ return this;
108173
+ }
108174
+ subtractLayoutSize(value) {
108175
+ this.LayoutSizePart -= value;
108176
+ return this;
108177
+ }
108178
+ subtractSize(value) {
108179
+ this.checkSizeHasSameScale(value);
108180
+ this.subtractLayoutSize(value._layoutSizePart);
108181
+ this.subtractUISize(value._UISizePart);
108182
+ return this;
108183
+ }
108184
+ checkSizeHasSameScale(size) {
108185
+ if (size._scaleIsSpecified && size._scale !== this._scale)
108186
+ throw new Error("The size has a different scale and cannot be added.");
108187
+ }
108188
+ checkScaleIsSpecified() {
108189
+ if (!this._scaleIsSpecified)
108190
+ console.warn("MixedSize is used without specifying the scale.");
108191
+ }
108192
+ useScale(value) {
108193
+ this._scale = value;
108194
+ this._scaleIsSpecified = true;
108195
+ return this;
108196
+ }
108197
+ clear() {
108198
+ this.UISizePart = 0;
108199
+ this.LayoutSizePart = 0;
108200
+ return this;
108201
+ }
108202
+ }
108203
+
107920
108204
  ;// CONCATENATED MODULE: ./src/common/canvas/canvas-manager.ts
107921
108205
 
107922
108206
 
@@ -107933,6 +108217,7 @@ class DimensionInfo {
107933
108217
 
107934
108218
 
107935
108219
 
108220
+
107936
108221
  const SCROLL_INTERVAL_MS = 50;
107937
108222
  const CSSCLASS_FOCUSED = "dxreInFocus";
107938
108223
  const AUTOSCROLL_AREA_SIZE = 10;
@@ -108168,35 +108453,40 @@ class CanvasManager extends batch_updatable/* BatchUpdatableObject */.IS {
108168
108453
  const clientRect = canvas.getBoundingClientRect();
108169
108454
  const scaleX = this.getScale(clientRect.width, canvas.offsetWidth);
108170
108455
  const scaleY = this.getScale(clientRect.height, canvas.offsetHeight);
108171
- const clientX = utils_evt/* EvtUtils */.g.getEventX(evt) / scaleX;
108172
- const clientY = utils_evt/* EvtUtils */.g.getEventY(evt) / scaleY;
108173
- const canvasX = dom.DomUtils.getAbsolutePositionX(canvas) / scaleX;
108174
- const canvasY = dom.DomUtils.getAbsolutePositionY(canvas) / scaleY;
108175
- const offsetY = canvas.scrollTop / scaleY + clientY - canvasY;
108176
- const pageIndex = this.sizes.findPageIndexByOffsetY(this.viewManager.layout.pages, offsetY);
108177
- const visibleAreaWidth = this.sizes.getVisibleAreaWidth(false) / scaleX;
108178
- const visibleAreaHeight = this.sizes.getVisibleAreaHeight(false) / scaleY;
108456
+ const clientX = MixedSize.fromUI(utils_evt/* EvtUtils */.g.getEventX(evt));
108457
+ const clientY = MixedSize.fromUI(utils_evt/* EvtUtils */.g.getEventY(evt));
108458
+ const canvasX = MixedSize.fromUI(dom.DomUtils.getAbsolutePositionX(canvas));
108459
+ const canvasY = MixedSize.fromUI(dom.DomUtils.getAbsolutePositionY(canvas));
108460
+ const offsetY = MixedSize.fromUI(canvas.scrollTop).addSize(clientY).subtractSize(canvasY).useScale(scaleY);
108461
+ const pageIndex = this.viewManager.layout.findPageIndexByOffsetY(offsetY.LayoutSize, this.sizes);
108462
+ const visibleAreaWidth = MixedSize.fromUI(this.sizes.getVisibleAreaWidth(false));
108463
+ const visibleAreaHeight = MixedSize.fromUI(this.sizes.getVisibleAreaHeight(false));
108179
108464
  if (checkScroll) {
108180
- if (this.sizes.scrollYVisible && canvasX + visibleAreaWidth - clientX < 0)
108465
+ const relativeX = new MixedSize().useScale(scaleX).addSize(canvasX).addSize(visibleAreaWidth).subtractSize(clientX);
108466
+ if (this.sizes.scrollYVisible && relativeX.LayoutSize < 0)
108181
108467
  return LayoutPoint.Empty();
108182
- if (this.sizes.scrollXVisible && canvasY + visibleAreaHeight - clientY < 0)
108468
+ const relativeY = new MixedSize().useScale(scaleY).addSize(canvasY).addSize(visibleAreaHeight).subtractSize(clientY);
108469
+ if (this.sizes.scrollXVisible && relativeY.LayoutSize < 0)
108183
108470
  return LayoutPoint.Empty();
108184
108471
  }
108185
108472
  const layoutPage = this.viewManager.layout.pages[pageIndex];
108186
108473
  const renderPageCacheElem = this.viewManager.cache[pageIndex];
108187
108474
  if (!layoutPage || !renderPageCacheElem)
108188
108475
  return LayoutPoint.Empty();
108189
- return new LayoutPoint(pageIndex, canvas.scrollLeft + clientX - (canvasX + renderPageCacheElem.page.offsetLeft), offsetY - this.sizes.getPageOffsetY(layoutPage));
108476
+ const pageX = new MixedSize().useScale(scaleX).addUISize(canvas.scrollLeft).addSize(clientX).subtractSize(canvasX).subtractLayoutSize(renderPageCacheElem.page.offsetLeft).LayoutSize;
108477
+ const pageY = new MixedSize().useScale(scaleY).addSize(offsetY).subtractLayoutSize(this.sizes.getPageOffsetY(layoutPage)).LayoutSize;
108478
+ return new LayoutPoint(pageIndex, pageX, pageY);
108190
108479
  }
108191
108480
  isVisiblePosition(layoutPoint) {
108192
- const pages = this.viewManager.layout.pages;
108193
- this.scroll.updatePageIndexesInfo(pages);
108481
+ const layout = this.viewManager.layout;
108482
+ const zoomLevel = this.viewManager.zoomLevel;
108483
+ this.scroll.updatePageIndexesInfo(layout);
108194
108484
  if (layoutPoint.pageIndex < this.scroll.startVisiblePageIndex || layoutPoint.pageIndex > this.scroll.endVisiblePageIndex)
108195
108485
  return false;
108196
- const pageY = this.sizes.getPageOffsetY(pages[layoutPoint.pageIndex]);
108197
- const pageX = this.viewManager.cache[layoutPoint.pageIndex].page.offsetLeft;
108198
- const x = pageX + layoutPoint.x;
108199
- const y = pageY + layoutPoint.y;
108486
+ const pageY = MixedSize.fromLayout(this.sizes.getPageOffsetY(layout.pages[layoutPoint.pageIndex])).useScale(zoomLevel);
108487
+ const pageX = MixedSize.fromLayout(this.viewManager.cache[layoutPoint.pageIndex].page.offsetLeft).useScale(zoomLevel);
108488
+ const x = pageX.addLayoutSize(layoutPoint.x).UISize;
108489
+ const y = pageY.addLayoutSize(layoutPoint.y).UISize;
108200
108490
  return x >= this.scroll.lastScrollLeft && x <= this.sizes.getVisibleAreaWidth(false) + this.scroll.lastScrollLeft &&
108201
108491
  y >= this.scroll.lastScrollTop && y <= this.sizes.getVisibleAreaHeight(false) + this.scroll.lastScrollTop;
108202
108492
  }
@@ -108244,17 +108534,23 @@ class CanvasManager extends batch_updatable/* BatchUpdatableObject */.IS {
108244
108534
  onScrollIntervalTick() {
108245
108535
  const evtX = this.lastMousePosition.x;
108246
108536
  const evtY = this.lastMousePosition.y;
108247
- const inHorizontalArea = evtX >= this.canvasPosition.x && evtX <= this.canvasPosition.x + this.sizes.getVisibleAreaWidth(true);
108248
- const inVerticalArea = evtY >= this.canvasPosition.y && evtY <= this.canvasPosition.y + this.sizes.getVisibleAreaHeight(true);
108537
+ const inHorizontalArea = evtX >= this.canvasPosition.x && evtX <= this.canvasPosition.x + this.sizes.getVisibleAreaWidth(false);
108538
+ const inVerticalArea = evtY >= this.canvasPosition.y && evtY <= this.canvasPosition.y + this.sizes.getVisibleAreaHeight(false);
108249
108539
  if (!inHorizontalArea && !inVerticalArea)
108250
108540
  return;
108541
+ const yOffsetWithoutScrollbar = this.canvasPosition.y + this.sizes.getVisibleAreaHeight(false) - evtY;
108542
+ const yOffsetWithScrollbar = this.canvasPosition.y + this.sizes.getVisibleAreaHeight(true) - evtY;
108543
+ const outsideHorizontalScrollbar = yOffsetWithoutScrollbar > 0 || yOffsetWithScrollbar < 0;
108251
108544
  if (inHorizontalArea && evtY - this.canvasPosition.y <= AUTOSCROLL_AREA_SIZE)
108252
108545
  this.viewManager.canvas.scrollTop -= AUTOSCROLL_STEP;
108253
- else if (inHorizontalArea && this.canvasPosition.y + this.sizes.getVisibleAreaHeight(true) - evtY <= AUTOSCROLL_AREA_SIZE)
108546
+ else if (inHorizontalArea && yOffsetWithoutScrollbar <= AUTOSCROLL_AREA_SIZE && outsideHorizontalScrollbar)
108254
108547
  this.viewManager.canvas.scrollTop += AUTOSCROLL_STEP;
108548
+ const xOffsetWithoutScrollbar = this.canvasPosition.x + this.sizes.getVisibleAreaWidth(false) - evtX;
108549
+ const xOffsetWithScrollbar = this.canvasPosition.x + this.sizes.getVisibleAreaWidth(true) - evtX;
108550
+ const outsideVerticalScrollbar = xOffsetWithoutScrollbar > 0 || xOffsetWithScrollbar < 0;
108255
108551
  if (inVerticalArea && evtX - this.canvasPosition.x <= AUTOSCROLL_AREA_SIZE)
108256
108552
  this.viewManager.canvas.scrollLeft -= AUTOSCROLL_STEP;
108257
- else if (inVerticalArea && this.canvasPosition.x + this.sizes.getVisibleAreaWidth(true) - evtX <= AUTOSCROLL_AREA_SIZE)
108553
+ else if (inVerticalArea && xOffsetWithoutScrollbar <= AUTOSCROLL_AREA_SIZE && outsideVerticalScrollbar)
108258
108554
  this.viewManager.canvas.scrollLeft += AUTOSCROLL_STEP;
108259
108555
  }
108260
108556
  static getCursorClassName(pointer) {
@@ -108298,10 +108594,12 @@ class CanvasManager extends batch_updatable/* BatchUpdatableObject */.IS {
108298
108594
  return ResizeBoxListener.directionToSource[className.substr(ind + cornerPrefix.length, 2).trim()];
108299
108595
  }
108300
108596
  getScrollTopInfo() {
108301
- const pages = this.viewManager.layout.pages;
108302
108597
  const scrollTop = this.viewManager.canvas.scrollTop;
108303
- const pageIndex = this.sizes.findPageIndexByOffsetY(pages, scrollTop);
108304
- return new ScrollTopInfo(pageIndex, scrollTop - this.sizes.getPageOffsetY(pages[pageIndex]));
108598
+ const pageIndex = this.viewManager.layout.findPageIndexByOffsetY(scrollTop, this.sizes);
108599
+ const pages = this.viewManager.layout.pages;
108600
+ const zoomLevel = this.viewManager.zoomLevel;
108601
+ const pageOffsetY = this.sizes.getPageOffsetY(pages[pageIndex]);
108602
+ return new ScrollTopInfo(pageIndex, new MixedSize().useScale(zoomLevel).addUISize(scrollTop).subtractLayoutSize(pageOffsetY).LayoutSize);
108305
108603
  }
108306
108604
  }
108307
108605
  class ScrollTopInfo {
@@ -108315,6 +108613,7 @@ class ScrollTopInfo {
108315
108613
 
108316
108614
 
108317
108615
 
108616
+
108318
108617
  class CanvasScrollInfo {
108319
108618
  constructor(canvas, sizes, internalApi) {
108320
108619
  this.lastScrollTop = -1;
@@ -108325,6 +108624,10 @@ class CanvasScrollInfo {
108325
108624
  this.internalApi = internalApi;
108326
108625
  this.init(canvas, sizes);
108327
108626
  }
108627
+ modelChanged(change) {
108628
+ if (change.type == ModelChangeType.ZoomLevelChanged)
108629
+ this.onCanvasSizeChanged();
108630
+ }
108328
108631
  init(canvas, sizes) {
108329
108632
  this.canvas = canvas;
108330
108633
  this.sizes = sizes;
@@ -108339,16 +108642,16 @@ class CanvasScrollInfo {
108339
108642
  renderPageIndexInterval() {
108340
108643
  return fixed.FixedInterval.fromPositions(this.getStartRenderPageIndex(), this.getEndRenderPageIndex() + 1);
108341
108644
  }
108342
- updatePageIndexesInfo(pages) {
108343
- if (!pages.length)
108645
+ updatePageIndexesInfo(layout) {
108646
+ if (!layout.pages.length)
108344
108647
  return;
108345
108648
  const scrollTop = this.getScrollTop();
108346
108649
  this.lastScrollLeft = this.canvas.scrollLeft;
108347
108650
  if (this.startVisiblePageIndex >= 0 && scrollTop == this.lastScrollTop && !this._needUpdatePageIndexes)
108348
108651
  return;
108349
108652
  this._needUpdatePageIndexes = false;
108350
- this.startVisiblePageIndex = this.sizes.findPageIndexByOffsetY(pages, scrollTop);
108351
- this.endVisiblePageIndex = this.sizes.findPageIndexByOffsetY(pages, scrollTop + this.getVisibleHeight());
108653
+ this.startVisiblePageIndex = layout.findPageIndexByOffsetY(scrollTop, this.sizes);
108654
+ this.endVisiblePageIndex = layout.findPageIndexByOffsetY(scrollTop + this.getVisibleHeight(), this.sizes);
108352
108655
  this.lastScrollTop = scrollTop;
108353
108656
  }
108354
108657
  getVisibleInterval() {
@@ -108376,6 +108679,8 @@ CanvasScrollInfo.VISIBLE_AREA_HEIGHT_MULTIPLIER = 2;
108376
108679
 
108377
108680
 
108378
108681
 
108682
+
108683
+
108379
108684
  class CanvasScrollManager {
108380
108685
  get canvas() { return this.viewManager.canvas; }
108381
108686
  get sizes() { return this.viewManager.sizes; }
@@ -108389,6 +108694,10 @@ class CanvasScrollManager {
108389
108694
  clearTimeout(this.updateScrollTimeoutId);
108390
108695
  clearTimeout(this.waitForDblClickTimeoutId);
108391
108696
  }
108697
+ modelChanged(change) {
108698
+ if (change.type == ModelChangeType.ZoomLevelChanged)
108699
+ this.updateScrollVisibility();
108700
+ }
108392
108701
  get scrollTop() { return this.canvas.scrollTop; }
108393
108702
  set scrollTop(val) { this.canvas.scrollTop = val; }
108394
108703
  setScrollEnabled(enabled) {
@@ -108407,46 +108716,48 @@ class CanvasScrollManager {
108407
108716
  scrollToX(canvasState) {
108408
108717
  const position = canvasState.lp;
108409
108718
  const relativePosition = canvasState.relativePosition;
108410
- let y = this.sizes.getPageOffsetY(this.viewManager.layout.pages[position.pageIndex]);
108411
- let height = 0;
108719
+ const zoomLevel = this.viewManager.zoomLevel;
108720
+ const page = this.viewManager.layout.pages[position.pageIndex];
108721
+ let y = MixedSize.fromLayout(this.sizes.getPageOffsetY(page)).useScale(zoomLevel);
108722
+ let height = new MixedSize().useScale(zoomLevel);
108412
108723
  if (position.detailsLevel >= DocumentLayoutDetailsLevel.PageArea) {
108413
- y += position.pageArea.y;
108724
+ y.addLayoutSize(position.pageArea.y);
108414
108725
  if (position.detailsLevel >= DocumentLayoutDetailsLevel.Column) {
108415
- y += position.column.y;
108726
+ y.addLayoutSize(position.column.y);
108416
108727
  if (position.detailsLevel >= DocumentLayoutDetailsLevel.Row) {
108417
- y += position.row.y;
108728
+ y.addLayoutSize(position.row.y);
108418
108729
  if (relativePosition === RelativePosition.Bottom)
108419
- y += position.row.height;
108730
+ y.addLayoutSize(position.row.height);
108420
108731
  else if (relativePosition === RelativePosition.Inside)
108421
- height = position.row.height;
108732
+ height.clear().addLayoutSize(position.row.height);
108422
108733
  }
108423
108734
  else if (relativePosition === RelativePosition.Bottom)
108424
- y += position.column.height;
108735
+ y.addLayoutSize(position.column.height);
108425
108736
  else if (relativePosition === RelativePosition.Inside)
108426
- height = position.column.height;
108737
+ height.clear().addLayoutSize(position.column.height);
108427
108738
  }
108428
108739
  else if (relativePosition === RelativePosition.Bottom)
108429
- y += position.pageArea.height;
108740
+ y.addLayoutSize(position.pageArea.height);
108430
108741
  else if (relativePosition === RelativePosition.Inside)
108431
- height = position.pageArea.height;
108742
+ height.clear().addLayoutSize(position.pageArea.height);
108432
108743
  }
108433
108744
  else if (relativePosition === RelativePosition.Bottom)
108434
- y += position.page.height;
108745
+ y.addLayoutSize(position.page.height);
108435
108746
  else if (relativePosition === RelativePosition.Inside)
108436
- height = position.page.height;
108747
+ height.clear().addLayoutSize(position.page.height);
108437
108748
  if (relativePosition === RelativePosition.Bottom)
108438
- y -= this.sizes.getVisibleAreaHeight(false);
108439
- y += canvasState.getVerticalOffset(this.sizes);
108749
+ y.subtractUISize(this.sizes.getVisibleAreaHeight(false));
108750
+ y.addUISize(canvasState.getVerticalOffset(this.sizes));
108440
108751
  if (relativePosition === RelativePosition.Inside) {
108441
108752
  let scrollTop = this.canvas.scrollTop;
108442
108753
  const scrollVisibleAreaHeight = this.sizes.getVisibleAreaHeight(false);
108443
- if (y < scrollTop)
108444
- this.canvas.scrollTop = y;
108445
- else if (y + height > scrollVisibleAreaHeight + scrollTop)
108446
- this.canvas.scrollTop = y + height - scrollVisibleAreaHeight;
108754
+ if (y.UISize < scrollTop)
108755
+ this.canvas.scrollTop = y.UISize;
108756
+ else if (y.UISize + height.UISize > scrollVisibleAreaHeight + scrollTop)
108757
+ this.canvas.scrollTop = y.UISize + height.UISize - scrollVisibleAreaHeight;
108447
108758
  }
108448
108759
  else
108449
- this.canvas.scrollTop = y;
108760
+ this.canvas.scrollTop = y.UISize;
108450
108761
  }
108451
108762
  NotifyScrollPositionChanged(canvasState) {
108452
108763
  if (this.updateScrollTimeoutId) {
@@ -108475,14 +108786,14 @@ class CanvasScrollManager {
108475
108786
 
108476
108787
 
108477
108788
 
108478
-
108479
108789
  class CanvasSizeInfo {
108480
- constructor() {
108790
+ constructor(zoomLevelHolder) {
108481
108791
  this.topSpacing = -1;
108482
108792
  this.betweenPageSpacing = 1;
108483
108793
  this.visibleAreaSize = new geometry_size.Size(-1, -1);
108484
108794
  this.scrollWidth = -1;
108485
108795
  this.pageVerticalInfo = new RenderPageVertivalInfo();
108796
+ this.zoomLevelHolder = zoomLevelHolder;
108486
108797
  this.scrollWidth = dom.DomUtils.getVerticalScrollBarWidth();
108487
108798
  }
108488
108799
  isInitialized() {
@@ -108494,11 +108805,9 @@ class CanvasSizeInfo {
108494
108805
  this.betweenPageSpacing = this.pageVerticalInfo.betweenPageSpacing;
108495
108806
  this.setVisibleAreaSize(SizeUtils.getClientWidth(canvas), SizeUtils.getClientHeight(canvas));
108496
108807
  }
108497
- findPageIndexByOffsetY(pages, offsetY) {
108498
- return Math.max(0, search.SearchUtils.normedInterpolationIndexOf(pages, (p) => this.getPageOffsetY(p), offsetY));
108499
- }
108500
108808
  getPageOffsetY(layoutPage) {
108501
- return layoutPage.y + (this.topSpacing + layoutPage.index * this.betweenPageSpacing);
108809
+ const pageOffsetY = layoutPage.y + (this.topSpacing + layoutPage.index * this.betweenPageSpacing);
108810
+ return pageOffsetY * this.zoomLevelHolder.zoomLevel;
108502
108811
  }
108503
108812
  setVisibleAreaSize(width, height) {
108504
108813
  this.visibleAreaSize.width = width;
@@ -108671,9 +108980,9 @@ class PrintLayoutViewCanvasListener extends CanvasListener {
108671
108980
  Log.paramsHolder.visualizerManager.show(DebugVisualizerType.LayoutBounds, this.layout, p.index); }));
108672
108981
  }
108673
108982
  updateVisiblePages() {
108674
- const pages = this.layout.pages;
108675
- this.viewManager.scroll.updatePageIndexesInfo(pages);
108983
+ this.viewManager.scroll.updatePageIndexesInfo(this.layout);
108676
108984
  const renderInterval = this.viewManager.scroll.renderPageIndexInterval();
108985
+ const pages = this.layout.pages;
108677
108986
  for (let pageIndex of this.handledPageIndexes)
108678
108987
  if (!renderInterval.contains(pageIndex)) {
108679
108988
  const page = pages[pageIndex];
@@ -109764,6 +110073,16 @@ class SelectionRenderer extends SelectionRendererBase {
109764
110073
  }
109765
110074
  }
109766
110075
 
110076
+ ;// CONCATENATED MODULE: ./src/common/model/changes/model/zoom-level.ts
110077
+
110078
+ class ZoomLevelChange {
110079
+ constructor(zoomLevel, prevZoomLevel) {
110080
+ this.zoomLevel = zoomLevel;
110081
+ this.prevZoomLevel = prevZoomLevel;
110082
+ this.type = ModelChangeType.ZoomLevelChanged;
110083
+ }
110084
+ }
110085
+
109767
110086
  ;// CONCATENATED MODULE: ./src/common/canvas/renderes/view-manager.ts
109768
110087
 
109769
110088
 
@@ -109790,6 +110109,8 @@ class SelectionRenderer extends SelectionRendererBase {
109790
110109
 
109791
110110
 
109792
110111
 
110112
+
110113
+
109793
110114
 
109794
110115
 
109795
110116
 
@@ -109799,7 +110120,7 @@ class ViewManager {
109799
110120
  get canvasListener() { return this.canvasListeners[this.innerClientProperties.viewsSettings.viewType]; }
109800
110121
  constructor(control, canvas, eventManager, stringResources, horizontalRuler, inputController, innerClientProperties, readOnlyPropertyHolder, layoutFormatterManagerHolder, internalApi, fieldOptions) {
109801
110122
  this.cache = [];
109802
- this.sizes = new CanvasSizeInfo();
110123
+ this.sizes = new CanvasSizeInfo(this);
109803
110124
  this.control = control;
109804
110125
  this.readOnlyPropertyHolder = readOnlyPropertyHolder;
109805
110126
  this.layoutFormatterManagerHolder = layoutFormatterManagerHolder;
@@ -109834,6 +110155,13 @@ class ViewManager {
109834
110155
  this.selection.dispose();
109835
110156
  this.pagesContainer = null;
109836
110157
  }
110158
+ modelChanged(change) {
110159
+ if (change.type == ModelChangeType.ZoomLevelChanged) {
110160
+ this.canvas.scrollTop = this.canvas.scrollTop / change.prevZoomLevel * change.zoomLevel;
110161
+ this.pagesContainer.style.zoom = change.zoomLevel.toString();
110162
+ this.sizes.updateSize(this.canvas);
110163
+ }
110164
+ }
109837
110165
  adjust(force) {
109838
110166
  if ((force || !this.sizes.isInitialized()) && this.cache.length > 0) {
109839
110167
  const firstRenderedPageIndex = Math.min(this.cache.length, Math.max(0, utils_list.ListUtils.indexBy(this.layout.pages, (page) => page.flags.get(LayoutPageFlags.ContentRendered))));
@@ -109871,7 +110199,9 @@ class ViewManager {
109871
110199
  const pageInfo = layoutSelection.selectionInfo.pageInfos[pageIndex];
109872
110200
  const item = pageInfo.oldItems[0];
109873
110201
  const layoutPage = this.layout.pages[pageIndex];
109874
- this.inputController.setPosition(layoutPage.x + this.cache[pageIndex].page.offsetLeft + item.x, this.sizes.getPageOffsetY(layoutPage) + item.y);
110202
+ const x = layoutPage.x + this.cache[pageIndex].page.offsetLeft + item.x;
110203
+ const y = this.sizes.getPageOffsetY(layoutPage) + item.y;
110204
+ this.inputController.setPosition(x, y);
109875
110205
  }
109876
110206
  }
109877
110207
  NotifySearchSelectionLayoutChanged() {
@@ -109936,12 +110266,9 @@ class ViewManager {
109936
110266
  }
109937
110267
  get zoomLevel() { return this.innerClientProperties.viewsSettings.zoomLevel; }
109938
110268
  set zoomLevel(value) {
109939
- this.pagesContainer.style.zoom = value.toString();
110269
+ const prevZoomLevel = this.zoomLevel;
109940
110270
  this.innerClientProperties.viewsSettings.zoomLevel = value;
109941
- if (this.control.innerClientProperties.viewsSettings.isSimpleView) {
109942
- this.canvasManager.simpleViewCanvasSizeManager.changeSize(true);
109943
- }
109944
- this.control.horizontalRulerControl.update();
110271
+ this.control.modelManager.modelManipulator.notifyModelChanged(new ZoomLevelChange(this.zoomLevel, prevZoomLevel));
109945
110272
  }
109946
110273
  get allowZoom() { return ControlOptions.isEnabled(this.control.modelManager.richOptions.control.allowZoom); }
109947
110274
  set allowZoom(value) {
@@ -110564,17 +110891,17 @@ class InputEditorBase {
110564
110891
  clearTimeout(this.onKeyUpTimerId);
110565
110892
  }
110566
110893
  initialize() {
110567
- this.initializeIfNotReadOnly();
110894
+ this.initializeEditableState();
110568
110895
  this.initEvents();
110569
110896
  this.prevKeyCode = EMPTY_KEYCODE;
110570
110897
  }
110571
- initializeIfNotReadOnly() {
110572
- if ((this.control.readOnly !== ReadOnlyMode.Persistent || this.control.modelManager.clientMode) && !this.initializedIfNotReadOnly) {
110573
- this.initializedIfNotReadOnly = true;
110574
- this.initializeIfNotReadOnlyCore();
110898
+ initializeEditableState() {
110899
+ if (!this.editableStateInitialized) {
110900
+ this.editableStateInitialized = true;
110901
+ this.initializeEditableStateCore();
110575
110902
  }
110576
110903
  }
110577
- initializeIfNotReadOnlyCore() {
110904
+ initializeEditableStateCore() {
110578
110905
  }
110579
110906
  initEvents() {
110580
110907
  this.evtHandlersHolder.addListener(this.getEditableDocument(), "keydown", this.onKeyDown.bind(this));
@@ -110794,8 +111121,8 @@ class DivInputEditor extends InputEditorBase {
110794
111121
  clearTimeout(this.composEndTimerId);
110795
111122
  clearTimeout(this.onTextInputTimerId);
110796
111123
  }
110797
- initializeIfNotReadOnlyCore() {
110798
- this.inputElement.contentEditable = "true";
111124
+ initializeEditableStateCore() {
111125
+ this.inputElement.contentEditable = String(!this.control.isReadOnlyPersistent);
110799
111126
  this.clearInputElement();
110800
111127
  }
110801
111128
  setPosition(left, top) {
@@ -111043,11 +111370,11 @@ class IFrameInputEditor extends InputEditorBase {
111043
111370
  body.style.margin = "0px";
111044
111371
  body.style.overflow = "hidden";
111045
111372
  }
111046
- initializeIfNotReadOnlyCore() {
111373
+ initializeEditableStateCore() {
111047
111374
  if (browser.Browser.WebKitFamily)
111048
- this.editableDocument.body.setAttribute("contenteditable", "true");
111375
+ this.editableDocument.body.setAttribute("contenteditable", String(!this.control.isReadOnlyPersistent));
111049
111376
  else
111050
- this.editableDocument.designMode = "on";
111377
+ this.editableDocument.designMode = this.control.isReadOnlyPersistent ? "off" : "on";
111051
111378
  }
111052
111379
  createInputElement() {
111053
111380
  const element = document.createElement("IFRAME");
@@ -111186,7 +111513,7 @@ class IFrameInputEditor extends InputEditorBase {
111186
111513
  recreateIfNeeded() {
111187
111514
  const iframeDocument = this.inputElement.contentDocument || this.inputElement.contentWindow.document;
111188
111515
  if (!iframeDocument.body.hasAttribute("loaded")) {
111189
- this.initializedIfNotReadOnly = false;
111516
+ this.editableStateInitialized = false;
111190
111517
  this.createHierarchyCore();
111191
111518
  this.initialize();
111192
111519
  }
@@ -111221,6 +111548,7 @@ class IFrameInputEditor extends InputEditorBase {
111221
111548
  }
111222
111549
  startInputIME() {
111223
111550
  this.inputElement.style.position = "absolute";
111551
+ this.inputElement.style.zoom = this.control.viewManager.zoomLevel;
111224
111552
  const lastSelectedIntervalStartPosition = this.control.selection.lastSelectedInterval.start;
111225
111553
  const subDocument = this.control.selection.activeSubDocument;
111226
111554
  const layoutPosition = subDocument.isMain() ?
@@ -111234,6 +111562,9 @@ class IFrameInputEditor extends InputEditorBase {
111234
111562
  const propChar = HtmlConverter.getSizeSignificantRules(this.control.inputPosition.getMergedCharacterPropertiesRaw()).join(";");
111235
111563
  this.editableDocument.body.style.cssText = "padding: 0px; margin: 0px; overflow: hidden; color: transparent; " + propChar;
111236
111564
  this.editableDocument.body.style.textIndent = currentTextIndent;
111565
+ if (browser.Browser.Firefox) {
111566
+ this.editableDocument.body.style.zoom = this.control.viewManager.zoomLevel;
111567
+ }
111237
111568
  let layoutX = layoutPosition.getLayoutX(this.control.measurer, DocumentLayoutDetailsLevel.Row);
111238
111569
  const layoutPoint = new LayoutPoint(layoutPosition.pageIndex, layoutX, layoutPosition.getLayoutY(DocumentLayoutDetailsLevel.Row));
111239
111570
  const pageElement = this.control.viewManager.cache[layoutPoint.pageIndex].page;
@@ -115288,6 +115619,8 @@ class HorizontalRulerControl extends batch_updatable/* BatchUpdatableObject */.I
115288
115619
  case ModelChangeType.TableCellRemoved:
115289
115620
  case ModelChangeType.TableCellInserted:
115290
115621
  return HorizontalRulerEventType.FullReset;
115622
+ case ModelChangeType.ZoomLevelChanged:
115623
+ return HorizontalRulerEventType.FullReset;
115291
115624
  default:
115292
115625
  return HorizontalRulerEventType.None;
115293
115626
  }
@@ -115566,7 +115899,7 @@ class SearchManager {
115566
115899
 
115567
115900
 
115568
115901
  class RichEditCore {
115569
- get isReadOnlyPersistent() { return this.readOnly == ReadOnlyMode.Persistent; }
115902
+ get isReadOnlyPersistent() { return this.readOnly === ReadOnlyMode.Persistent; }
115570
115903
  get model() { return this.modelManager.model; }
115571
115904
  get isDisposed() {
115572
115905
  return this._isDisposed;
@@ -115661,15 +115994,19 @@ class RichEditCore {
115661
115994
  ]);
115662
115995
  this.modelManager.modelManipulator.clearListeners();
115663
115996
  this.modelManager.history.clear();
115664
- this.modelManager.modelManipulator.modelListeners.push(this.inputPositionModelChangesListener);
115665
- this.modelManager.modelManipulator.modelListeners.push(this.layoutFormatterManager.modelChangesListener);
115666
- this.modelManager.modelManipulator.modelListeners.push(this.selectionModelChangesListener);
115667
- this.modelManager.modelManipulator.modelListeners.push(new SpellCheckerModelChangesListener(this.spellChecker));
115997
+ this.modelManager.modelManipulator.addModelListener(this.inputPositionModelChangesListener);
115998
+ this.modelManager.modelManipulator.addModelListener(this.layoutFormatterManager.modelChangesListener);
115999
+ this.modelManager.modelManipulator.addModelListener(this.selectionModelChangesListener);
116000
+ this.modelManager.modelManipulator.addModelListener(new SpellCheckerModelChangesListener(this.spellChecker));
115668
116001
  if (this.barHolder.ribbon)
115669
- this.modelManager.modelManipulator.modelListeners.push(this.barHolder.ribbon);
115670
- this.modelManager.modelManipulator.modelListeners.push(this.barHolder.contextMenu);
115671
- this.modelManager.modelManipulator.modelListeners.push(this.horizontalRulerControl);
115672
- this.modelManager.modelManipulator.modelListeners.push(this.selectionFormatter);
116002
+ this.modelManager.modelManipulator.addModelListener(this.barHolder.ribbon);
116003
+ this.modelManager.modelManipulator.addModelListener(this.barHolder.contextMenu);
116004
+ this.modelManager.modelManipulator.addModelListener(this.horizontalRulerControl);
116005
+ this.modelManager.modelManipulator.addModelListener(this.selectionFormatter);
116006
+ this.modelManager.modelManipulator.addModelListener(this.viewManager);
116007
+ this.modelManager.modelManipulator.addModelListener(this.viewManager.canvasManager.simpleViewCanvasSizeManager);
116008
+ this.modelManager.modelManipulator.addModelListener(this.viewManager.canvasScrollManager);
116009
+ this.modelManager.modelManipulator.addModelListener(this.viewManager.scroll);
115673
116010
  this.registerFontChangesListeners();
115674
116011
  this.selection.onChanged.add(this.searchManager);
115675
116012
  this.selection.onChanged.add(this.boxVisualizerManager.resizeBoxVisualizer);
@@ -115686,8 +116023,8 @@ class RichEditCore {
115686
116023
  this.selection.onChanged.add(this.globalEventDispatcher);
115687
116024
  this.selection.onChanged.add(this.barHolder.publicUiChangesListener);
115688
116025
  this.registerActiveContextTabManager();
115689
- this.modelManager.modelManipulator.modelListeners.push(this.globalEventDispatcher);
115690
- this.modelManager.modelManipulator.modelListeners.push(this.barHolder.publicUiChangesListener);
116026
+ this.modelManager.modelManipulator.addModelListener(this.globalEventDispatcher);
116027
+ this.modelManager.modelManipulator.addModelListener(this.barHolder.publicUiChangesListener);
115691
116028
  this.inputController.initExporter();
115692
116029
  }
115693
116030
  dispose() {
@@ -115775,8 +116112,8 @@ class RichEditCore {
115775
116112
  this.readOnly = ReadOnlyMode.Persistent;
115776
116113
  else if (!readOnly && this.readOnly === ReadOnlyMode.Persistent) {
115777
116114
  this.readOnly = ReadOnlyMode.None;
115778
- this.inputController.inputEditor.initializeIfNotReadOnly();
115779
116115
  }
116116
+ this.inputController.inputEditor.initializeEditableStateCore();
115780
116117
  }
115781
116118
  setWorkSession(sessionGuid, documentInfo) {
115782
116119
  this.sessionGuid = sessionGuid;
@@ -115810,12 +116147,7 @@ class RichEditCore {
115810
116147
  }
115811
116148
  closeDocument() {
115812
116149
  this.selection.onChanged.remove(this.globalEventDispatcher);
115813
- for (let ind = 0; ind < this.modelManager.modelManipulator.modelListeners.length; ind++) {
115814
- if (this.modelManager.modelManipulator.modelListeners[ind] == this.globalEventDispatcher) {
115815
- this.modelManager.modelManipulator.modelListeners.splice(ind, 1);
115816
- break;
115817
- }
115818
- }
116150
+ this.modelManager.modelManipulator.removeModelListener(this.globalEventDispatcher);
115819
116151
  this.barHolder.setEnabled(false);
115820
116152
  if (this.horizontalRulerControl)
115821
116153
  this.horizontalRulerControl.setEnable(false);
@@ -115902,6 +116234,7 @@ class RichEditCore {
115902
116234
  pictureRenderer: this.viewManager.renderer,
115903
116235
  uiUnitConverter: this.uiUnitConverter,
115904
116236
  lastMaxNumPages: this.layout.lastMaxNumPages,
116237
+ grids: this.layout.grids,
115905
116238
  pageIndex: this.selection.pageIndex,
115906
116239
  sessionGuid: this.sessionGuid,
115907
116240
  clientGuid: this.clientGuid,
@@ -137347,7 +137680,8 @@ class MailMergeCommand extends CommandBase {
137347
137680
  return true;
137348
137681
  }
137349
137682
  executeCore(_state, options) {
137350
- const docxExporter = new DocxExporter(this.control.modelManager.modelManipulator, new DocxExportOptions());
137683
+ const exportModelOptions = this.control.getExportModelOptions();
137684
+ const docxExporter = new DocxExporter(exportModelOptions, new DocxExportOptions());
137351
137685
  docxExporter.exportToBlob((blob) => {
137352
137686
  const docxImporter = new Importer(new ImporterOptions());
137353
137687
  docxImporter.importFromFile(blob, this.control.modelManager.richOptions, (documentModel, formatImagesImporter) => {
@@ -141092,8 +141426,8 @@ class DialogManager {
141092
141426
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_type.js
141093
141427
  /**
141094
141428
  * DevExtreme (esm/__internal/core/utils/m_type.js)
141095
- * Version: 25.1.1-alpha
141096
- * Build date: Wed Apr 02 2025
141429
+ * Version: 25.1.2-beta
141430
+ * Build date: Wed May 14 2025
141097
141431
  *
141098
141432
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141099
141433
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141195,8 +141529,8 @@ const isEvent = function(object) {
141195
141529
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/type.js
141196
141530
  /**
141197
141531
  * DevExtreme (esm/core/utils/type.js)
141198
- * Version: 25.1.1-alpha
141199
- * Build date: Wed Apr 02 2025
141532
+ * Version: 25.1.2-beta
141533
+ * Build date: Wed May 14 2025
141200
141534
  *
141201
141535
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141202
141536
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141206,8 +141540,8 @@ const isEvent = function(object) {
141206
141540
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_extend.js
141207
141541
  /**
141208
141542
  * DevExtreme (esm/__internal/core/utils/m_extend.js)
141209
- * Version: 25.1.1-alpha
141210
- * Build date: Wed Apr 02 2025
141543
+ * Version: 25.1.2-beta
141544
+ * Build date: Wed May 14 2025
141211
141545
  *
141212
141546
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141213
141547
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141265,8 +141599,8 @@ const extend = function(target) {
141265
141599
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/extend.js
141266
141600
  /**
141267
141601
  * DevExtreme (esm/core/utils/extend.js)
141268
- * Version: 25.1.1-alpha
141269
- * Build date: Wed Apr 02 2025
141602
+ * Version: 25.1.2-beta
141603
+ * Build date: Wed May 14 2025
141270
141604
  *
141271
141605
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141272
141606
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141276,8 +141610,8 @@ const extend = function(target) {
141276
141610
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_string.js
141277
141611
  /**
141278
141612
  * DevExtreme (esm/__internal/core/utils/m_string.js)
141279
- * Version: 25.1.1-alpha
141280
- * Build date: Wed Apr 02 2025
141613
+ * Version: 25.1.2-beta
141614
+ * Build date: Wed May 14 2025
141281
141615
  *
141282
141616
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141283
141617
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141352,8 +141686,8 @@ const isEmpty = function() {
141352
141686
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/string.js
141353
141687
  /**
141354
141688
  * DevExtreme (esm/core/utils/string.js)
141355
- * Version: 25.1.1-alpha
141356
- * Build date: Wed Apr 02 2025
141689
+ * Version: 25.1.2-beta
141690
+ * Build date: Wed May 14 2025
141357
141691
  *
141358
141692
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141359
141693
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141363,20 +141697,20 @@ const isEmpty = function() {
141363
141697
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/version.js
141364
141698
  /**
141365
141699
  * DevExtreme (esm/core/version.js)
141366
- * Version: 25.1.1-alpha
141367
- * Build date: Wed Apr 02 2025
141700
+ * Version: 25.1.2-beta
141701
+ * Build date: Wed May 14 2025
141368
141702
  *
141369
141703
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141370
141704
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
141371
141705
  */
141372
- const version = "25.1.1";
141373
- const fullVersion = "25.1.1";
141706
+ const version = "25.1.2";
141707
+ const fullVersion = "25.1.2";
141374
141708
 
141375
141709
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_console.js
141376
141710
  /**
141377
141711
  * DevExtreme (esm/__internal/core/utils/m_console.js)
141378
- * Version: 25.1.1-alpha
141379
- * Build date: Wed Apr 02 2025
141712
+ * Version: 25.1.2-beta
141713
+ * Build date: Wed May 14 2025
141380
141714
  *
141381
141715
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141382
141716
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141416,8 +141750,8 @@ const debug = function() {
141416
141750
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_error.js
141417
141751
  /**
141418
141752
  * DevExtreme (esm/__internal/core/utils/m_error.js)
141419
- * Version: 25.1.1-alpha
141420
- * Build date: Wed Apr 02 2025
141753
+ * Version: 25.1.2-beta
141754
+ * Build date: Wed May 14 2025
141421
141755
  *
141422
141756
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141423
141757
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141488,8 +141822,8 @@ function error(baseErrors, errors) {
141488
141822
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/error.js
141489
141823
  /**
141490
141824
  * DevExtreme (esm/core/utils/error.js)
141491
- * Version: 25.1.1-alpha
141492
- * Build date: Wed Apr 02 2025
141825
+ * Version: 25.1.2-beta
141826
+ * Build date: Wed May 14 2025
141493
141827
  *
141494
141828
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141495
141829
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141500,8 +141834,8 @@ function error(baseErrors, errors) {
141500
141834
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/m_errors.js
141501
141835
  /**
141502
141836
  * DevExtreme (esm/__internal/core/m_errors.js)
141503
- * Version: 25.1.1-alpha
141504
- * Build date: Wed Apr 02 2025
141837
+ * Version: 25.1.2-beta
141838
+ * Build date: Wed May 14 2025
141505
141839
  *
141506
141840
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141507
141841
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141538,6 +141872,7 @@ function error(baseErrors, errors) {
141538
141872
  E0110: "Unknown validation group is detected",
141539
141873
  E0120: "Adapter for a DevExpressValidator component cannot be configured",
141540
141874
  E0121: "The 'customItem' parameter of the 'onCustomItemCreating' function is empty or contains invalid data. Assign a custom object or a Promise that is resolved after the item is created.",
141875
+ E0122: "AIIntegration: The sendRequest method is missing.",
141541
141876
  W0000: "'{0}' is deprecated in {1}. {2}",
141542
141877
  W0001: "{0} - '{1}' option is deprecated in {2}. {3}",
141543
141878
  W0002: "{0} - '{1}' method is deprecated in {2}. {3}",
@@ -141567,8 +141902,8 @@ function error(baseErrors, errors) {
141567
141902
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/errors.js
141568
141903
  /**
141569
141904
  * DevExtreme (esm/core/errors.js)
141570
- * Version: 25.1.1-alpha
141571
- * Build date: Wed Apr 02 2025
141905
+ * Version: 25.1.2-beta
141906
+ * Build date: Wed May 14 2025
141572
141907
  *
141573
141908
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141574
141909
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141579,8 +141914,8 @@ function error(baseErrors, errors) {
141579
141914
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/m_class.js
141580
141915
  /**
141581
141916
  * DevExtreme (esm/__internal/core/m_class.js)
141582
- * Version: 25.1.1-alpha
141583
- * Build date: Wed Apr 02 2025
141917
+ * Version: 25.1.2-beta
141918
+ * Build date: Wed May 14 2025
141584
141919
  *
141585
141920
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141586
141921
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141713,8 +142048,8 @@ classImpl.abstract = m_class_abstract;
141713
142048
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/class.js
141714
142049
  /**
141715
142050
  * DevExtreme (esm/core/class.js)
141716
- * Version: 25.1.1-alpha
141717
- * Build date: Wed Apr 02 2025
142051
+ * Version: 25.1.2-beta
142052
+ * Build date: Wed May 14 2025
141718
142053
  *
141719
142054
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141720
142055
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141725,8 +142060,8 @@ classImpl.abstract = m_class_abstract;
141725
142060
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_iterator.js
141726
142061
  /**
141727
142062
  * DevExtreme (esm/__internal/core/utils/m_iterator.js)
141728
- * Version: 25.1.1-alpha
141729
- * Build date: Wed Apr 02 2025
142063
+ * Version: 25.1.2-beta
142064
+ * Build date: Wed May 14 2025
141730
142065
  *
141731
142066
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141732
142067
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141775,8 +142110,8 @@ const reverseEach = (array, callback) => {
141775
142110
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_dependency_injector.js
141776
142111
  /**
141777
142112
  * DevExtreme (esm/__internal/core/utils/m_dependency_injector.js)
141778
- * Version: 25.1.1-alpha
141779
- * Build date: Wed Apr 02 2025
142113
+ * Version: 25.1.2-beta
142114
+ * Build date: Wed May 14 2025
141780
142115
  *
141781
142116
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141782
142117
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141825,8 +142160,8 @@ function injector(object) {
141825
142160
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/dependency_injector.js
141826
142161
  /**
141827
142162
  * DevExtreme (esm/core/utils/dependency_injector.js)
141828
- * Version: 25.1.1-alpha
141829
- * Build date: Wed Apr 02 2025
142163
+ * Version: 25.1.2-beta
142164
+ * Build date: Wed May 14 2025
141830
142165
  *
141831
142166
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141832
142167
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141837,8 +142172,8 @@ function injector(object) {
141837
142172
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/ldml/date.formatter.js
141838
142173
  /**
141839
142174
  * DevExtreme (esm/common/core/localization/ldml/date.formatter.js)
141840
- * Version: 25.1.1-alpha
141841
- * Build date: Wed Apr 02 2025
142175
+ * Version: 25.1.2-beta
142176
+ * Build date: Wed May 14 2025
141842
142177
  *
141843
142178
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141844
142179
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141991,8 +142326,8 @@ function _extends() {
141991
142326
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/m_config.js
141992
142327
  /**
141993
142328
  * DevExtreme (esm/__internal/core/m_config.js)
141994
- * Version: 25.1.1-alpha
141995
- * Build date: Wed Apr 02 2025
142329
+ * Version: 25.1.2-beta
142330
+ * Build date: Wed May 14 2025
141996
142331
  *
141997
142332
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141998
142333
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142067,8 +142402,8 @@ if ("undefined" !== typeof DevExpress && DevExpress.config) {
142067
142402
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/config.js
142068
142403
  /**
142069
142404
  * DevExtreme (esm/common/config.js)
142070
- * Version: 25.1.1-alpha
142071
- * Build date: Wed Apr 02 2025
142405
+ * Version: 25.1.2-beta
142406
+ * Build date: Wed May 14 2025
142072
142407
  *
142073
142408
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142074
142409
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142079,8 +142414,8 @@ if ("undefined" !== typeof DevExpress && DevExpress.config) {
142079
142414
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/m_guid.js
142080
142415
  /**
142081
142416
  * DevExtreme (esm/__internal/core/m_guid.js)
142082
- * Version: 25.1.1-alpha
142083
- * Build date: Wed Apr 02 2025
142417
+ * Version: 25.1.2-beta
142418
+ * Build date: Wed May 14 2025
142084
142419
  *
142085
142420
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142086
142421
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142122,8 +142457,8 @@ const Guid = core_class.inherit({
142122
142457
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/guid.js
142123
142458
  /**
142124
142459
  * DevExtreme (esm/common/guid.js)
142125
- * Version: 25.1.1-alpha
142126
- * Build date: Wed Apr 02 2025
142460
+ * Version: 25.1.2-beta
142461
+ * Build date: Wed May 14 2025
142127
142462
  *
142128
142463
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142129
142464
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142134,8 +142469,8 @@ const Guid = core_class.inherit({
142134
142469
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/templates/m_template_engine_registry.js
142135
142470
  /**
142136
142471
  * DevExtreme (esm/__internal/core/templates/m_template_engine_registry.js)
142137
- * Version: 25.1.1-alpha
142138
- * Build date: Wed Apr 02 2025
142472
+ * Version: 25.1.2-beta
142473
+ * Build date: Wed May 14 2025
142139
142474
  *
142140
142475
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142141
142476
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142164,8 +142499,8 @@ function getCurrentTemplateEngine() {
142164
142499
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/templates/template_engine_registry.js
142165
142500
  /**
142166
142501
  * DevExtreme (esm/core/templates/template_engine_registry.js)
142167
- * Version: 25.1.1-alpha
142168
- * Build date: Wed Apr 02 2025
142502
+ * Version: 25.1.2-beta
142503
+ * Build date: Wed May 14 2025
142169
142504
  *
142170
142505
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142171
142506
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142175,8 +142510,8 @@ function getCurrentTemplateEngine() {
142175
142510
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/m_set_template_engine.js
142176
142511
  /**
142177
142512
  * DevExtreme (esm/__internal/core/m_set_template_engine.js)
142178
- * Version: 25.1.1-alpha
142179
- * Build date: Wed Apr 02 2025
142513
+ * Version: 25.1.2-beta
142514
+ * Build date: Wed May 14 2025
142180
142515
  *
142181
142516
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142182
142517
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142186,8 +142521,8 @@ function getCurrentTemplateEngine() {
142186
142521
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/set_template_engine.js
142187
142522
  /**
142188
142523
  * DevExtreme (esm/common/set_template_engine.js)
142189
- * Version: 25.1.1-alpha
142190
- * Build date: Wed Apr 02 2025
142524
+ * Version: 25.1.2-beta
142525
+ * Build date: Wed May 14 2025
142191
142526
  *
142192
142527
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142193
142528
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142198,8 +142533,8 @@ function getCurrentTemplateEngine() {
142198
142533
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common.js
142199
142534
  /**
142200
142535
  * DevExtreme (esm/common.js)
142201
- * Version: 25.1.1-alpha
142202
- * Build date: Wed Apr 02 2025
142536
+ * Version: 25.1.2-beta
142537
+ * Build date: Wed May 14 2025
142203
142538
  *
142204
142539
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142205
142540
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142212,8 +142547,8 @@ function getCurrentTemplateEngine() {
142212
142547
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/config.js
142213
142548
  /**
142214
142549
  * DevExtreme (esm/core/config.js)
142215
- * Version: 25.1.1-alpha
142216
- * Build date: Wed Apr 02 2025
142550
+ * Version: 25.1.2-beta
142551
+ * Build date: Wed May 14 2025
142217
142552
  *
142218
142553
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142219
142554
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142224,8 +142559,8 @@ function getCurrentTemplateEngine() {
142224
142559
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/guid.js
142225
142560
  /**
142226
142561
  * DevExtreme (esm/core/guid.js)
142227
- * Version: 25.1.1-alpha
142228
- * Build date: Wed Apr 02 2025
142562
+ * Version: 25.1.2-beta
142563
+ * Build date: Wed May 14 2025
142229
142564
  *
142230
142565
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142231
142566
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142236,8 +142571,8 @@ function getCurrentTemplateEngine() {
142236
142571
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/console.js
142237
142572
  /**
142238
142573
  * DevExtreme (esm/core/utils/console.js)
142239
- * Version: 25.1.1-alpha
142240
- * Build date: Wed Apr 02 2025
142574
+ * Version: 25.1.2-beta
142575
+ * Build date: Wed May 14 2025
142241
142576
  *
142242
142577
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142243
142578
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142247,8 +142582,8 @@ function getCurrentTemplateEngine() {
142247
142582
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_variable_wrapper.js
142248
142583
  /**
142249
142584
  * DevExtreme (esm/__internal/core/utils/m_variable_wrapper.js)
142250
- * Version: 25.1.1-alpha
142251
- * Build date: Wed Apr 02 2025
142585
+ * Version: 25.1.2-beta
142586
+ * Build date: Wed May 14 2025
142252
142587
  *
142253
142588
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142254
142589
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142277,8 +142612,8 @@ const m_variable_wrapper_variableWrapper = dependency_injector({
142277
142612
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/variable_wrapper.js
142278
142613
  /**
142279
142614
  * DevExtreme (esm/core/utils/variable_wrapper.js)
142280
- * Version: 25.1.1-alpha
142281
- * Build date: Wed Apr 02 2025
142615
+ * Version: 25.1.2-beta
142616
+ * Build date: Wed May 14 2025
142282
142617
  *
142283
142618
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142284
142619
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142289,8 +142624,8 @@ const m_variable_wrapper_variableWrapper = dependency_injector({
142289
142624
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_object.js
142290
142625
  /**
142291
142626
  * DevExtreme (esm/__internal/core/utils/m_object.js)
142292
- * Version: 25.1.1-alpha
142293
- * Build date: Wed Apr 02 2025
142627
+ * Version: 25.1.2-beta
142628
+ * Build date: Wed May 14 2025
142294
142629
  *
142295
142630
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142296
142631
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142390,8 +142725,8 @@ const m_object_deepExtendArraySafe = function(target, changes, extendComplexObje
142390
142725
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/object.js
142391
142726
  /**
142392
142727
  * DevExtreme (esm/core/utils/object.js)
142393
- * Version: 25.1.1-alpha
142394
- * Build date: Wed Apr 02 2025
142728
+ * Version: 25.1.2-beta
142729
+ * Build date: Wed May 14 2025
142395
142730
  *
142396
142731
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142397
142732
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142401,8 +142736,8 @@ const m_object_deepExtendArraySafe = function(target, changes, extendComplexObje
142401
142736
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_data.js
142402
142737
  /**
142403
142738
  * DevExtreme (esm/__internal/core/utils/m_data.js)
142404
- * Version: 25.1.1-alpha
142405
- * Build date: Wed Apr 02 2025
142739
+ * Version: 25.1.2-beta
142740
+ * Build date: Wed May 14 2025
142406
142741
  *
142407
142742
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142408
142743
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142598,8 +142933,8 @@ const toComparable = function(value, caseSensitive) {
142598
142933
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/data.js
142599
142934
  /**
142600
142935
  * DevExtreme (esm/core/utils/data.js)
142601
- * Version: 25.1.1-alpha
142602
- * Build date: Wed Apr 02 2025
142936
+ * Version: 25.1.2-beta
142937
+ * Build date: Wed May 14 2025
142603
142938
  *
142604
142939
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142605
142940
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142609,8 +142944,8 @@ const toComparable = function(value, caseSensitive) {
142609
142944
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_callbacks.js
142610
142945
  /**
142611
142946
  * DevExtreme (esm/__internal/core/utils/m_callbacks.js)
142612
- * Version: 25.1.1-alpha
142613
- * Build date: Wed Apr 02 2025
142947
+ * Version: 25.1.2-beta
142948
+ * Build date: Wed May 14 2025
142614
142949
  *
142615
142950
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142616
142951
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142705,8 +143040,8 @@ const Callbacks = function(options) {
142705
143040
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/callbacks.js
142706
143041
  /**
142707
143042
  * DevExtreme (esm/core/utils/callbacks.js)
142708
- * Version: 25.1.1-alpha
142709
- * Build date: Wed Apr 02 2025
143043
+ * Version: 25.1.2-beta
143044
+ * Build date: Wed May 14 2025
142710
143045
  *
142711
143046
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142712
143047
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142717,8 +143052,8 @@ const Callbacks = function(options) {
142717
143052
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_deferred.js
142718
143053
  /**
142719
143054
  * DevExtreme (esm/__internal/core/utils/m_deferred.js)
142720
- * Version: 25.1.1-alpha
142721
- * Build date: Wed Apr 02 2025
143055
+ * Version: 25.1.2-beta
143056
+ * Build date: Wed May 14 2025
142722
143057
  *
142723
143058
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142724
143059
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142883,8 +143218,8 @@ function when() {
142883
143218
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/deferred.js
142884
143219
  /**
142885
143220
  * DevExtreme (esm/core/utils/deferred.js)
142886
- * Version: 25.1.1-alpha
142887
- * Build date: Wed Apr 02 2025
143221
+ * Version: 25.1.2-beta
143222
+ * Build date: Wed May 14 2025
142888
143223
  *
142889
143224
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142890
143225
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142894,8 +143229,8 @@ function when() {
142894
143229
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_common.js
142895
143230
  /**
142896
143231
  * DevExtreme (esm/__internal/core/utils/m_common.js)
142897
- * Version: 25.1.1-alpha
142898
- * Build date: Wed Apr 02 2025
143232
+ * Version: 25.1.2-beta
143233
+ * Build date: Wed May 14 2025
142899
143234
  *
142900
143235
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142901
143236
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143190,8 +143525,8 @@ const equalByValue = function(value1, value2) {
143190
143525
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/common.js
143191
143526
  /**
143192
143527
  * DevExtreme (esm/core/utils/common.js)
143193
- * Version: 25.1.1-alpha
143194
- * Build date: Wed Apr 02 2025
143528
+ * Version: 25.1.2-beta
143529
+ * Build date: Wed May 14 2025
143195
143530
  *
143196
143531
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143197
143532
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143201,8 +143536,8 @@ const equalByValue = function(value1, value2) {
143201
143536
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_math.js
143202
143537
  /**
143203
143538
  * DevExtreme (esm/__internal/core/utils/m_math.js)
143204
- * Version: 25.1.1-alpha
143205
- * Build date: Wed Apr 02 2025
143539
+ * Version: 25.1.2-beta
143540
+ * Build date: Wed May 14 2025
143206
143541
  *
143207
143542
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143208
143543
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143371,8 +143706,8 @@ function roundFloatPart(value) {
143371
143706
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/math.js
143372
143707
  /**
143373
143708
  * DevExtreme (esm/core/utils/math.js)
143374
- * Version: 25.1.1-alpha
143375
- * Build date: Wed Apr 02 2025
143709
+ * Version: 25.1.2-beta
143710
+ * Build date: Wed May 14 2025
143376
143711
  *
143377
143712
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143378
143713
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143382,8 +143717,8 @@ function roundFloatPart(value) {
143382
143717
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/utils.js
143383
143718
  /**
143384
143719
  * DevExtreme (esm/common/core/localization/utils.js)
143385
- * Version: 25.1.1-alpha
143386
- * Build date: Wed Apr 02 2025
143720
+ * Version: 25.1.2-beta
143721
+ * Build date: Wed May 14 2025
143387
143722
  *
143388
143723
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143389
143724
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143410,8 +143745,8 @@ function toFixed(value, precision) {
143410
143745
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/ldml/number.js
143411
143746
  /**
143412
143747
  * DevExtreme (esm/common/core/localization/ldml/number.js)
143413
- * Version: 25.1.1-alpha
143414
- * Build date: Wed Apr 02 2025
143748
+ * Version: 25.1.2-beta
143749
+ * Build date: Wed May 14 2025
143415
143750
  *
143416
143751
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143417
143752
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143652,8 +143987,8 @@ function getFormat(formatter) {
143652
143987
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/currency.js
143653
143988
  /**
143654
143989
  * DevExtreme (esm/common/core/localization/currency.js)
143655
- * Version: 25.1.1-alpha
143656
- * Build date: Wed Apr 02 2025
143990
+ * Version: 25.1.2-beta
143991
+ * Build date: Wed May 14 2025
143657
143992
  *
143658
143993
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143659
143994
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143685,8 +144020,8 @@ function getFormat(formatter) {
143685
144020
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/cldr-data/parent_locales.js
143686
144021
  /**
143687
144022
  * DevExtreme (esm/common/core/localization/cldr-data/parent_locales.js)
143688
- * Version: 25.1.1-alpha
143689
- * Build date: Wed Apr 02 2025
144023
+ * Version: 25.1.2-beta
144024
+ * Build date: Wed May 14 2025
143690
144025
  *
143691
144026
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143692
144027
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143871,8 +144206,8 @@ function getFormat(formatter) {
143871
144206
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/parentLocale.js
143872
144207
  /**
143873
144208
  * DevExtreme (esm/common/core/localization/parentLocale.js)
143874
- * Version: 25.1.1-alpha
143875
- * Build date: Wed Apr 02 2025
144209
+ * Version: 25.1.2-beta
144210
+ * Build date: Wed May 14 2025
143876
144211
  *
143877
144212
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143878
144213
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143889,8 +144224,8 @@ const PARENT_LOCALE_SEPARATOR = "-";
143889
144224
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/core.js
143890
144225
  /**
143891
144226
  * DevExtreme (esm/common/core/localization/core.js)
143892
- * Version: 25.1.1-alpha
143893
- * Build date: Wed Apr 02 2025
144227
+ * Version: 25.1.2-beta
144228
+ * Build date: Wed May 14 2025
143894
144229
  *
143895
144230
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143896
144231
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143931,8 +144266,8 @@ const DEFAULT_LOCALE = "en";
143931
144266
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/open_xml_currency_format.js
143932
144267
  /**
143933
144268
  * DevExtreme (esm/common/core/localization/open_xml_currency_format.js)
143934
- * Version: 25.1.1-alpha
143935
- * Build date: Wed Apr 02 2025
144269
+ * Version: 25.1.2-beta
144270
+ * Build date: Wed May 14 2025
143936
144271
  *
143937
144272
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143938
144273
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143974,8 +144309,8 @@ const DEFAULT_LOCALE = "en";
143974
144309
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/cldr-data/accounting_formats.js
143975
144310
  /**
143976
144311
  * DevExtreme (esm/common/core/localization/cldr-data/accounting_formats.js)
143977
- * Version: 25.1.1-alpha
143978
- * Build date: Wed Apr 02 2025
144312
+ * Version: 25.1.2-beta
144313
+ * Build date: Wed May 14 2025
143979
144314
  *
143980
144315
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143981
144316
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -144561,8 +144896,8 @@ const DEFAULT_LOCALE = "en";
144561
144896
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/intl/number.js
144562
144897
  /**
144563
144898
  * DevExtreme (esm/common/core/localization/intl/number.js)
144564
- * Version: 25.1.1-alpha
144565
- * Build date: Wed Apr 02 2025
144899
+ * Version: 25.1.2-beta
144900
+ * Build date: Wed May 14 2025
144566
144901
  *
144567
144902
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
144568
144903
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -144683,8 +145018,8 @@ const getCurrencyFormatter = currency => new Intl.NumberFormat(core.locale(), {
144683
145018
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/number.js
144684
145019
  /**
144685
145020
  * DevExtreme (esm/common/core/localization/number.js)
144686
- * Version: 25.1.1-alpha
144687
- * Build date: Wed Apr 02 2025
145021
+ * Version: 25.1.2-beta
145022
+ * Build date: Wed May 14 2025
144688
145023
  *
144689
145024
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
144690
145025
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -144991,8 +145326,8 @@ if (hasIntl) {
144991
145326
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/ldml/date.format.js
144992
145327
  /**
144993
145328
  * DevExtreme (esm/common/core/localization/ldml/date.format.js)
144994
- * Version: 25.1.1-alpha
144995
- * Build date: Wed Apr 02 2025
145329
+ * Version: 25.1.2-beta
145330
+ * Build date: Wed May 14 2025
144996
145331
  *
144997
145332
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
144998
145333
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145189,8 +145524,8 @@ const date_format_getFormat = function(formatter) {
145189
145524
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/ldml/date.parser.js
145190
145525
  /**
145191
145526
  * DevExtreme (esm/common/core/localization/ldml/date.parser.js)
145192
- * Version: 25.1.1-alpha
145193
- * Build date: Wed Apr 02 2025
145527
+ * Version: 25.1.2-beta
145528
+ * Build date: Wed May 14 2025
145194
145529
  *
145195
145530
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
145196
145531
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145508,8 +145843,8 @@ const getParser = function(format, dateParts) {
145508
145843
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/default_date_names.js
145509
145844
  /**
145510
145845
  * DevExtreme (esm/common/core/localization/default_date_names.js)
145511
- * Version: 25.1.1-alpha
145512
- * Build date: Wed Apr 02 2025
145846
+ * Version: 25.1.2-beta
145847
+ * Build date: Wed May 14 2025
145513
145848
  *
145514
145849
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
145515
145850
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145545,8 +145880,8 @@ const cutCaptions = (captions, format) => {
145545
145880
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/cldr-data/first_day_of_week_data.js
145546
145881
  /**
145547
145882
  * DevExtreme (esm/common/core/localization/cldr-data/first_day_of_week_data.js)
145548
- * Version: 25.1.1-alpha
145549
- * Build date: Wed Apr 02 2025
145883
+ * Version: 25.1.2-beta
145884
+ * Build date: Wed May 14 2025
145550
145885
  *
145551
145886
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
145552
145887
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145745,8 +146080,8 @@ const cutCaptions = (captions, format) => {
145745
146080
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/intl/date.js
145746
146081
  /**
145747
146082
  * DevExtreme (esm/common/core/localization/intl/date.js)
145748
- * Version: 25.1.1-alpha
145749
- * Build date: Wed Apr 02 2025
146083
+ * Version: 25.1.2-beta
146084
+ * Build date: Wed May 14 2025
145750
146085
  *
145751
146086
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
145752
146087
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -146063,8 +146398,8 @@ const monthNameStrategies = {
146063
146398
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/date.js
146064
146399
  /**
146065
146400
  * DevExtreme (esm/common/core/localization/date.js)
146066
- * Version: 25.1.1-alpha
146067
- * Build date: Wed Apr 02 2025
146401
+ * Version: 25.1.2-beta
146402
+ * Build date: Wed May 14 2025
146068
146403
  *
146069
146404
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
146070
146405
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -147490,7 +147825,7 @@ class ClientRichEdit {
147490
147825
  const ribbonBar = new ClientRibbonBar(this, this.element, ribbon, fonts);
147491
147826
  this.barHolder.ribbon = ribbonBar;
147492
147827
  if (this.core) {
147493
- this.core.modelManager.modelManipulator.modelListeners.push(this.barHolder.ribbon);
147828
+ this.core.modelManager.modelManipulator.addModelListener(this.barHolder.ribbon);
147494
147829
  this.core.selection.onChanged.add(this.barHolder.ribbon);
147495
147830
  ribbonBar.initialize(this.core);
147496
147831
  }
@@ -149767,11 +150102,11 @@ class RichEditPublic {
149767
150102
  command.execute(true, type);
149768
150103
  }
149769
150104
  get readOnly() {
149770
- return this._native.core.readOnly == ReadOnlyMode.Persistent;
150105
+ return this._native.core.readOnly === ReadOnlyMode.Persistent;
149771
150106
  }
149772
150107
  set readOnly(value) {
149773
150108
  if (this.readOnly != value) {
149774
- this._native.core.readOnly = value ? ReadOnlyMode.Persistent : ReadOnlyMode.None;
150109
+ this._native.core.setPersistentReadOnly(value);
149775
150110
  this._native.core.barHolder.updateItemsState();
149776
150111
  this._native.core.horizontalRulerControl.update();
149777
150112
  this._native.core.beginUpdate();