devexpress-richedit 25.1.1-alpha → 25.1.3

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 (132) hide show
  1. package/bin/gulpfile.js +1 -1
  2. package/bin/index-custom.js +1 -1
  3. package/bin/localization-builder.js +1 -1
  4. package/bin/nspell-index.js +1 -1
  5. package/bin/nspell.webpack.config.js +1 -1
  6. package/bin/webpack-externals.js +1 -1
  7. package/bin/webpack.config.js +1 -1
  8. package/dist/dx.richedit.css +1 -1
  9. package/dist/dx.richedit.d.ts +1 -2
  10. package/dist/dx.richedit.js +1732 -1362
  11. package/dist/dx.richedit.min.js +2 -2
  12. package/index.d.ts +1 -1
  13. package/index.js +1 -1
  14. package/lib/client/client-rich-edit.js +3 -3
  15. package/lib/client/commands/commands.js +0 -3
  16. package/lib/client/commands/mail-merge-command.js +2 -1
  17. package/lib/client/formats/docx/export/data.d.ts +5 -1
  18. package/lib/client/formats/docx/export/data.js +3 -2
  19. package/lib/client/formats/docx/export/exporter.d.ts +2 -3
  20. package/lib/client/formats/docx/export/exporter.js +3 -3
  21. package/lib/client/formats/docx/export/exporters/base/sections.d.ts +0 -1
  22. package/lib/client/formats/docx/export/exporters/base/sections.js +2 -10
  23. package/lib/client/formats/docx/export/exporters/base/table/table.d.ts +1 -1
  24. package/lib/client/formats/docx/export/exporters/base/table/table.js +4 -4
  25. package/lib/client/formats/docx/import/destination/paragraph-properties/properties/paragraph-spacing-destination.js +6 -4
  26. package/lib/client/model-api/character-properties.js +13 -17
  27. package/lib/client/model-api/document.js +2 -0
  28. package/lib/client/model-api/formats/exporter.js +2 -2
  29. package/lib/client/model-api/images/images.js +1 -1
  30. package/lib/client/model-api/sub-document.js +1 -1
  31. package/lib/client/public/commands/enum.d.ts +1 -2
  32. package/lib/client/public/commands/enum.js +0 -1
  33. package/lib/client/public/options.d.ts +1 -0
  34. package/lib/client/public/rich-edit.js +2 -2
  35. package/lib/client/utils/focus-helper.js +22 -5
  36. package/lib/common/canvas/canvas-manager.js +38 -24
  37. package/lib/common/canvas/canvas-scroll-info.d.ts +6 -3
  38. package/lib/common/canvas/canvas-scroll-info.js +9 -4
  39. package/lib/common/canvas/canvas-scroll-manager.d.ts +4 -1
  40. package/lib/common/canvas/canvas-scroll-manager.js +28 -20
  41. package/lib/common/canvas/canvas-size-info.d.ts +4 -2
  42. package/lib/common/canvas/canvas-size-info.js +3 -5
  43. package/lib/common/canvas/renderes/canvas-listener/print-layout-view-canvas-listener.js +2 -2
  44. package/lib/common/canvas/renderes/common/document-renderer.d.ts +4 -1
  45. package/lib/common/canvas/renderes/common/document-renderer.js +15 -12
  46. package/lib/common/canvas/renderes/view-manager.d.ts +5 -1
  47. package/lib/common/canvas/renderes/view-manager.js +16 -7
  48. package/lib/common/commands/client-command.d.ts +1 -2
  49. package/lib/common/commands/client-command.js +0 -1
  50. package/lib/common/commands/command-manager.js +0 -2
  51. package/lib/common/commands/document/print-document-on-client-command.d.ts +2 -0
  52. package/lib/common/commands/document/print-document-on-client-command.js +46 -18
  53. package/lib/common/commands/layout/apply-style-command.d.ts +2 -2
  54. package/lib/common/commands/layout/apply-style-command.js +3 -4
  55. package/lib/common/commands/toc/set-paragraph-level-command.js +1 -1
  56. package/lib/common/formats/i-document-exporter.d.ts +3 -0
  57. package/lib/common/formats/rtf/export/exporter.d.ts +2 -3
  58. package/lib/common/formats/rtf/export/exporter.js +3 -3
  59. package/lib/common/formats/rtf/export/exporters/rtf-content-exporter.d.ts +4 -2
  60. package/lib/common/formats/rtf/export/exporters/rtf-content-exporter.js +13 -9
  61. package/lib/common/formats/rtf/export/exporters/table/rtf-table-exporter.d.ts +3 -2
  62. package/lib/common/formats/rtf/export/exporters/table/rtf-table-exporter.js +4 -4
  63. package/lib/common/formats/rtf/export/exporters/table/states/rtf-nested-table-exporter-state.d.ts +2 -1
  64. package/lib/common/formats/rtf/export/exporters/table/states/rtf-nested-table-exporter-state.js +2 -2
  65. package/lib/common/formats/rtf/export/exporters/table/states/rtf-table-exporter-state-base.d.ts +4 -2
  66. package/lib/common/formats/rtf/export/exporters/table/states/rtf-table-exporter-state-base.js +16 -9
  67. package/lib/common/formats/rtf/export/exporters/table/states/rtf-table-exporter-state.d.ts +2 -1
  68. package/lib/common/formats/rtf/export/exporters/table/states/rtf-table-exporter-state.js +2 -2
  69. package/lib/common/formats/rtf/import/table/normalization/apply-use-values.d.ts +6 -0
  70. package/lib/common/formats/rtf/import/table/normalization/apply-use-values.js +90 -0
  71. package/lib/common/formats/rtf/import/table/table-converter.js +7 -2
  72. package/lib/common/formats/rtf/importer-in-subdocument.d.ts +1 -2
  73. package/lib/common/formats/rtf/importer-in-subdocument.js +4 -3
  74. package/lib/common/input-controller.d.ts +5 -5
  75. package/lib/common/input-controller.js +16 -12
  76. package/lib/common/layout/document-layout.d.ts +5 -0
  77. package/lib/common/layout/document-layout.js +13 -0
  78. package/lib/common/layout/main-structures/layout-page-area.d.ts +3 -0
  79. package/lib/common/layout/main-structures/layout-page-area.js +6 -0
  80. package/lib/common/layout/main-structures/layout-page.d.ts +3 -0
  81. package/lib/common/layout/main-structures/layout-page.js +8 -0
  82. package/lib/common/layout/main-structures/layout-row.js +1 -2
  83. package/lib/common/layout-formatter/floating/position-calculators/horizontal.d.ts +1 -0
  84. package/lib/common/layout-formatter/floating/position-calculators/horizontal.js +16 -12
  85. package/lib/common/layout-formatter/row/size-engine/row-formatting-info.d.ts +4 -1
  86. package/lib/common/layout-formatter/row/size-engine/row-formatting-info.js +36 -2
  87. package/lib/common/layout-formatter/row/states.js +0 -2
  88. package/lib/common/layout-formatter/row/tab-info.js +5 -4
  89. package/lib/common/layout-formatter/row/word-holder.js +1 -1
  90. package/lib/common/layout-formatter/table/info/table-info.d.ts +0 -1
  91. package/lib/common/layout-formatter/table/info/table-info.js +2 -18
  92. package/lib/common/layout-formatter/table/size-compressor.js +9 -2
  93. package/lib/common/layout-formatter/table/table-alignment-applier.js +0 -2
  94. package/lib/common/model/borders/border-info.js +1 -1
  95. package/lib/common/model/caches/images.d.ts +4 -1
  96. package/lib/common/model/caches/images.js +6 -2
  97. package/lib/common/model/changes/change.d.ts +2 -1
  98. package/lib/common/model/changes/enums.d.ts +2 -1
  99. package/lib/common/model/changes/enums.js +1 -0
  100. package/lib/common/model/changes/model/zoom-level.d.ts +8 -0
  101. package/lib/common/model/changes/model/zoom-level.js +8 -0
  102. package/lib/common/model/character/character-properties.d.ts +1 -1
  103. package/lib/common/model/character/character-properties.js +14 -2
  104. package/lib/common/model/creator/creator.js +6 -0
  105. package/lib/common/model/fields/field.d.ts +1 -1
  106. package/lib/common/model/fields/field.js +4 -3
  107. package/lib/common/model/fields/tree-creator.js +1 -1
  108. package/lib/common/model/history/items/character-properties-history-items.d.ts +2 -1
  109. package/lib/common/model/history/items/character-properties-history-items.js +3 -2
  110. package/lib/common/model/manipulators/character-properties-manipulator.js +2 -2
  111. package/lib/common/model/manipulators/i-properties-manipulator.d.ts +1 -1
  112. package/lib/common/model/manipulators/model-manipulator.d.ts +2 -1
  113. package/lib/common/model/manipulators/model-manipulator.js +4 -0
  114. package/lib/common/model/manipulators/picture-manipulator/picture-manipulator.js +2 -2
  115. package/lib/common/model/options/fonts.d.ts +1 -1
  116. package/lib/common/model/paragraph/paragraph-style.d.ts +2 -1
  117. package/lib/common/model/paragraph/paragraph-style.js +2 -1
  118. package/lib/common/model/tables/secondary-structures/table-base-structures.d.ts +2 -1
  119. package/lib/common/model/tables/secondary-structures/table-base-structures.js +1 -0
  120. package/lib/common/mouse-handler/mouse-handler/mouse-handler-default-state.d.ts +1 -1
  121. package/lib/common/mouse-handler/mouse-handler/mouse-handler-default-state.js +22 -25
  122. package/lib/common/rich-edit-core.js +18 -18
  123. package/lib/common/ui/ruler/controls/ruler.js +3 -7
  124. package/lib/common/ui/ruler/controls/vertical-line.js +2 -1
  125. package/lib/common/ui/ruler/ruler.js +2 -0
  126. package/lib/common/utils/mixed-size.d.ts +27 -0
  127. package/lib/common/utils/mixed-size.js +91 -0
  128. package/lib/common/utils/size-utils.d.ts +14 -7
  129. package/lib/common/utils/size-utils.js +43 -18
  130. package/package.json +3 -3
  131. package/lib/common/commands/layout/toggle-allow-zoom-command.d.ts +0 -7
  132. package/lib/common/commands/layout/toggle-allow-zoom-command.js +0 -17
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * DevExpress WebRichEdit (dx.richedit.js)
3
- * Version: 25.1.1
3
+ * Version: 25.1.3
4
4
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
5
5
  * License: https://www.devexpress.com/Support/EULAs
6
6
  */
@@ -9486,6 +9486,219 @@ class ShadingInfo {
9486
9486
  }
9487
9487
  }
9488
9488
 
9489
+ // EXTERNAL MODULE: ./node_modules/@devexpress/utils/lib/utils/comparers.js
9490
+ var comparers = __webpack_require__(4170);
9491
+ ;// CONCATENATED MODULE: ./src/common/model/history/base/history-item.ts
9492
+
9493
+ class history_item_HistoryItem {
9494
+ canBeMerged() {
9495
+ return false;
9496
+ }
9497
+ constructor(modelManipulator) {
9498
+ this.uniqueId = -1;
9499
+ this.modelManipulator = modelManipulator;
9500
+ }
9501
+ changeModified() {
9502
+ return true;
9503
+ }
9504
+ }
9505
+ class CompositionHistoryItem extends history_item_HistoryItem {
9506
+ canBeMerged() {
9507
+ return true;
9508
+ }
9509
+ constructor() {
9510
+ super(null);
9511
+ this.historyItems = [];
9512
+ }
9513
+ changeModified() {
9514
+ var item;
9515
+ for (var i = 0; item = this.historyItems[i]; i++) {
9516
+ if (item.changeModified())
9517
+ return true;
9518
+ }
9519
+ return false;
9520
+ }
9521
+ redo() {
9522
+ var item;
9523
+ for (var i = 0; item = this.historyItems[i]; i++)
9524
+ item.redo();
9525
+ }
9526
+ undo() {
9527
+ var item;
9528
+ for (var i = this.historyItems.length - 1; item = this.historyItems[i]; i--)
9529
+ item.undo();
9530
+ }
9531
+ add(historyItem) {
9532
+ if (historyItem == null)
9533
+ throw new Error(lib_errors/* Errors */.D.ValueCannotBeNull);
9534
+ this.historyItems.push(historyItem);
9535
+ }
9536
+ }
9537
+
9538
+ ;// CONCATENATED MODULE: ./src/common/model/history/base/interval-based-history-item.ts
9539
+
9540
+ class interval_based_history_item_IntervalBasedHistoryItem extends history_item_HistoryItem {
9541
+ get boundSubDocument() { return this.subDocInterval.subDocument; }
9542
+ get interval() { return this.subDocInterval.interval; }
9543
+ constructor(modelManipulator, subDocInterval) {
9544
+ super(modelManipulator);
9545
+ this.subDocInterval = subDocInterval;
9546
+ }
9547
+ }
9548
+
9549
+ ;// CONCATENATED MODULE: ./src/common/model/history/items/character-properties-history-items.ts
9550
+
9551
+
9552
+ class FontUseValueHistoryItem extends interval_based_history_item_IntervalBasedHistoryItem {
9553
+ constructor(modelManipulator, subDocInterval, newValue, keepCustomFormatting = false) {
9554
+ super(modelManipulator, subDocInterval);
9555
+ this.newValue = newValue;
9556
+ this.keepCustomFormatting = keepCustomFormatting;
9557
+ }
9558
+ redo() {
9559
+ this.oldState = this.modelManipulator.characterProperties.useValue.setValue(this.boundSubDocument, this.interval, this.newValue, this.keepCustomFormatting);
9560
+ }
9561
+ undo() {
9562
+ this.modelManipulator.characterProperties.useValue.restoreValue(this.boundSubDocument, this.oldState);
9563
+ }
9564
+ }
9565
+ class CharacterPropertiesHistoryItem extends interval_based_history_item_IntervalBasedHistoryItem {
9566
+ constructor(modelManipulator, subDocInterval, newValue) {
9567
+ super(modelManipulator, subDocInterval);
9568
+ this.newValue = newValue;
9569
+ }
9570
+ redo() {
9571
+ this.oldState = this.modelManipulator.characterProperties.setValue(this.boundSubDocument, this.interval, this.newValue);
9572
+ }
9573
+ undo() {
9574
+ this.modelManipulator.characterProperties.restoreValue(this.boundSubDocument, this.oldState);
9575
+ }
9576
+ }
9577
+ class CharacterPropertiesHistoryItemBase extends interval_based_history_item_IntervalBasedHistoryItem {
9578
+ constructor(modelManipulator, subDocInterval, newValue, newUse) {
9579
+ super(modelManipulator, subDocInterval);
9580
+ this.newValue = newValue;
9581
+ this.newUse = newUse;
9582
+ }
9583
+ redo() {
9584
+ this.oldState = this.getPropertiesManipulator().setValue(this.boundSubDocument, this.interval, this.newValue, this.newUse);
9585
+ }
9586
+ undo() {
9587
+ this.getPropertiesManipulator().restoreValue(this.boundSubDocument, this.oldState);
9588
+ }
9589
+ getPropertiesManipulator() {
9590
+ throw new Error(lib_errors/* Errors */.D.NotImplemented);
9591
+ }
9592
+ }
9593
+ class FontBoldHistoryItem extends CharacterPropertiesHistoryItemBase {
9594
+ getPropertiesManipulator() {
9595
+ return this.modelManipulator.characterProperties.fontBold;
9596
+ }
9597
+ }
9598
+ class FontCapsHistoryItem extends CharacterPropertiesHistoryItemBase {
9599
+ getPropertiesManipulator() {
9600
+ return this.modelManipulator.characterProperties.fontCaps;
9601
+ }
9602
+ }
9603
+ class FontSmallCapsHistoryItem extends CharacterPropertiesHistoryItemBase {
9604
+ getPropertiesManipulator() {
9605
+ return this.modelManipulator.characterProperties.fontSmallCaps;
9606
+ }
9607
+ }
9608
+ class FontUnderlineTypeHistoryItem extends CharacterPropertiesHistoryItemBase {
9609
+ getPropertiesManipulator() {
9610
+ return this.modelManipulator.characterProperties.fontUnderlineType;
9611
+ }
9612
+ }
9613
+ class FontTextColorHistoryItem extends CharacterPropertiesHistoryItemBase {
9614
+ getPropertiesManipulator() {
9615
+ return this.modelManipulator.characterProperties.textColor;
9616
+ }
9617
+ }
9618
+ class FontShadingInfoHistoryItem extends CharacterPropertiesHistoryItemBase {
9619
+ getPropertiesManipulator() {
9620
+ return this.modelManipulator.characterProperties.shadingInfo;
9621
+ }
9622
+ }
9623
+ class FontHiddenHistoryItem extends CharacterPropertiesHistoryItemBase {
9624
+ getPropertiesManipulator() {
9625
+ return this.modelManipulator.characterProperties.fontHidden;
9626
+ }
9627
+ }
9628
+ class FontItalicHistoryItem extends CharacterPropertiesHistoryItemBase {
9629
+ getPropertiesManipulator() {
9630
+ return this.modelManipulator.characterProperties.fontItalic;
9631
+ }
9632
+ }
9633
+ class FontNameHistoryItem extends CharacterPropertiesHistoryItemBase {
9634
+ getPropertiesManipulator() {
9635
+ return this.modelManipulator.characterProperties.fontName;
9636
+ }
9637
+ }
9638
+ class FontScriptHistoryItem extends CharacterPropertiesHistoryItemBase {
9639
+ getPropertiesManipulator() {
9640
+ return this.modelManipulator.characterProperties.script;
9641
+ }
9642
+ }
9643
+ class FontSizeHistoryItem extends CharacterPropertiesHistoryItemBase {
9644
+ getPropertiesManipulator() {
9645
+ return this.modelManipulator.characterProperties.fontSize;
9646
+ }
9647
+ }
9648
+ class FontStrikeoutTypeHistoryItem extends CharacterPropertiesHistoryItemBase {
9649
+ getPropertiesManipulator() {
9650
+ return this.modelManipulator.characterProperties.fontStrikeoutType;
9651
+ }
9652
+ }
9653
+ class FontStrikeoutWordsOnlyHistoryItem extends CharacterPropertiesHistoryItemBase {
9654
+ getPropertiesManipulator() {
9655
+ return this.modelManipulator.characterProperties.fontStrikeoutWordsOnly;
9656
+ }
9657
+ }
9658
+ class FontStrikeoutColorHistoryItem extends CharacterPropertiesHistoryItemBase {
9659
+ getPropertiesManipulator() {
9660
+ return this.modelManipulator.characterProperties.fontStrikeoutColor;
9661
+ }
9662
+ }
9663
+ class FontUnderlineColorHistoryItem extends CharacterPropertiesHistoryItemBase {
9664
+ getPropertiesManipulator() {
9665
+ return this.modelManipulator.characterProperties.fontUnderlineColor;
9666
+ }
9667
+ }
9668
+ class FontHighlightColorHistoryItem extends CharacterPropertiesHistoryItemBase {
9669
+ getPropertiesManipulator() {
9670
+ return this.modelManipulator.characterProperties.fontHighlightColor;
9671
+ }
9672
+ }
9673
+ class FontUnderlineWordsOnlyHistoryItem extends CharacterPropertiesHistoryItemBase {
9674
+ getPropertiesManipulator() {
9675
+ return this.modelManipulator.characterProperties.fontUnderlineWordsOnly;
9676
+ }
9677
+ }
9678
+ class FontNoProofHistoryItem extends CharacterPropertiesHistoryItemBase {
9679
+ getPropertiesManipulator() {
9680
+ return this.modelManipulator.characterProperties.fontNoProof;
9681
+ }
9682
+ }
9683
+ class FontLangInfoHistoryItem extends CharacterPropertiesHistoryItemBase {
9684
+ getPropertiesManipulator() {
9685
+ return this.modelManipulator.characterProperties.langInfo;
9686
+ }
9687
+ }
9688
+ class FontCompositeFontInfoHistoryItem extends CharacterPropertiesHistoryItemBase {
9689
+ getPropertiesManipulator() {
9690
+ return this.modelManipulator.characterProperties.compositeFontInfo;
9691
+ }
9692
+ }
9693
+ class ResetCharacterPropertiesUseValuesHistoryItem extends (/* unused pure expression or super */ null && (IntervalBasedHistoryItem)) {
9694
+ redo() {
9695
+ this.state = this.modelManipulator.characterProperties.useValue.setValue(this.boundSubDocument, this.interval, 0);
9696
+ }
9697
+ undo() {
9698
+ this.modelManipulator.characterProperties.useValue.restoreValue(this.boundSubDocument, this.state);
9699
+ }
9700
+ }
9701
+
9489
9702
  ;// CONCATENATED MODULE: ./src/common/model/character/enums.ts
9490
9703
  var CharacterPropertiesMask;
9491
9704
  (function (CharacterPropertiesMask) {
@@ -9643,6 +9856,498 @@ class LangInfo {
9643
9856
  }
9644
9857
  }
9645
9858
 
9859
+ ;// CONCATENATED MODULE: ./src/common/model/character/character-property-descriptor.ts
9860
+
9861
+
9862
+
9863
+
9864
+
9865
+
9866
+
9867
+
9868
+ class CharacterPropertiesAllCapsDescriptor {
9869
+ constructor() {
9870
+ this.binaryEquals = comparers.Equals.simpleType;
9871
+ this.defaultValue = false;
9872
+ }
9873
+ setProp(props, newValue) {
9874
+ props.allCaps = newValue;
9875
+ }
9876
+ getProp(props) {
9877
+ return props.allCaps;
9878
+ }
9879
+ maskValue() {
9880
+ return CharacterPropertiesMask.UseAllCaps;
9881
+ }
9882
+ getHistoryItemConstructor() {
9883
+ return FontCapsHistoryItem;
9884
+ }
9885
+ getJSONProperty() {
9886
+ return JSONCharacterFormattingProperty.AllCaps;
9887
+ }
9888
+ }
9889
+ class CharacterPropertiesSmallCapsDescriptor {
9890
+ constructor() {
9891
+ this.binaryEquals = comparers.Equals.simpleType;
9892
+ this.defaultValue = false;
9893
+ }
9894
+ setProp(props, newValue) {
9895
+ props.smallCaps = newValue;
9896
+ }
9897
+ getProp(props) {
9898
+ return props.smallCaps;
9899
+ }
9900
+ maskValue() {
9901
+ return CharacterPropertiesMask.UseSmallCaps;
9902
+ }
9903
+ getHistoryItemConstructor() {
9904
+ return FontSmallCapsHistoryItem;
9905
+ }
9906
+ getJSONProperty() {
9907
+ return JSONCharacterFormattingProperty.SmallCaps;
9908
+ }
9909
+ }
9910
+ class CharacterPropertiesFontSizeDescriptor {
9911
+ constructor() {
9912
+ this.binaryEquals = comparers.Equals.simpleType;
9913
+ this.defaultValue = 11;
9914
+ }
9915
+ setProp(props, newValue) {
9916
+ props.fontSize = newValue;
9917
+ }
9918
+ getProp(props) {
9919
+ return props.fontSize;
9920
+ }
9921
+ maskValue() {
9922
+ return CharacterPropertiesMask.UseDoubleFontSize;
9923
+ }
9924
+ getHistoryItemConstructor() {
9925
+ return FontSizeHistoryItem;
9926
+ }
9927
+ getJSONProperty() {
9928
+ return JSONCharacterFormattingProperty.Size;
9929
+ }
9930
+ }
9931
+ class CharacterPropertiesFontBoldDescriptor {
9932
+ constructor() {
9933
+ this.binaryEquals = comparers.Equals.simpleType;
9934
+ this.defaultValue = false;
9935
+ }
9936
+ setProp(props, newValue) {
9937
+ props.fontBold = newValue;
9938
+ }
9939
+ getProp(props) {
9940
+ return props.fontBold;
9941
+ }
9942
+ maskValue() {
9943
+ return CharacterPropertiesMask.UseFontBold;
9944
+ }
9945
+ getHistoryItemConstructor() {
9946
+ return FontBoldHistoryItem;
9947
+ }
9948
+ getJSONProperty() {
9949
+ return JSONCharacterFormattingProperty.Bold;
9950
+ }
9951
+ }
9952
+ class CharacterPropertiesFontItalicDescriptor {
9953
+ constructor() {
9954
+ this.binaryEquals = comparers.Equals.simpleType;
9955
+ this.defaultValue = false;
9956
+ }
9957
+ setProp(props, newValue) {
9958
+ props.fontItalic = newValue;
9959
+ }
9960
+ getProp(props) {
9961
+ return props.fontItalic;
9962
+ }
9963
+ maskValue() {
9964
+ return CharacterPropertiesMask.UseFontItalic;
9965
+ }
9966
+ getHistoryItemConstructor() {
9967
+ return FontItalicHistoryItem;
9968
+ }
9969
+ getJSONProperty() {
9970
+ return JSONCharacterFormattingProperty.Italic;
9971
+ }
9972
+ }
9973
+ class CharacterPropertiesFontInfoDescriptor {
9974
+ constructor() {
9975
+ this.binaryEquals = comparers.Equals.object;
9976
+ this.defaultValue = undefined;
9977
+ }
9978
+ setProp(props, newValue) {
9979
+ props.fontInfo = newValue;
9980
+ }
9981
+ getProp(props) {
9982
+ return props.fontInfo;
9983
+ }
9984
+ maskValue() {
9985
+ return CharacterPropertiesMask.UseFontName;
9986
+ }
9987
+ getHistoryItemConstructor() {
9988
+ return FontNameHistoryItem;
9989
+ }
9990
+ getJSONProperty() {
9991
+ return JSONCharacterFormattingProperty.FontName;
9992
+ }
9993
+ }
9994
+ class CharacterPropertiesScriptDescriptor {
9995
+ constructor() {
9996
+ this.binaryEquals = comparers.Equals.simpleType;
9997
+ this.defaultValue = CharacterFormattingScript.Normal;
9998
+ }
9999
+ setProp(props, newValue) {
10000
+ props.script = newValue;
10001
+ }
10002
+ getProp(props) {
10003
+ return props.script;
10004
+ }
10005
+ maskValue() {
10006
+ return CharacterPropertiesMask.UseScript;
10007
+ }
10008
+ getHistoryItemConstructor() {
10009
+ return FontScriptHistoryItem;
10010
+ }
10011
+ getJSONProperty() {
10012
+ return JSONCharacterFormattingProperty.Script;
10013
+ }
10014
+ }
10015
+ class CharacterPropertiesStrikeoutTypeDescriptor {
10016
+ constructor() {
10017
+ this.binaryEquals = comparers.Equals.simpleType;
10018
+ this.defaultValue = StrikeoutType.None;
10019
+ }
10020
+ setProp(props, newValue) {
10021
+ props.fontStrikeoutType = newValue;
10022
+ }
10023
+ getProp(props) {
10024
+ return props.fontStrikeoutType;
10025
+ }
10026
+ maskValue() {
10027
+ return CharacterPropertiesMask.UseFontStrikeoutType;
10028
+ }
10029
+ getHistoryItemConstructor() {
10030
+ return FontStrikeoutTypeHistoryItem;
10031
+ }
10032
+ getJSONProperty() {
10033
+ return JSONCharacterFormattingProperty.StrikeoutType;
10034
+ }
10035
+ }
10036
+ class CharacterPropertiesUnderlineTypeDescriptor {
10037
+ constructor() {
10038
+ this.binaryEquals = comparers.Equals.simpleType;
10039
+ this.defaultValue = UnderlineType.None;
10040
+ }
10041
+ setProp(props, newValue) {
10042
+ props.fontUnderlineType = newValue;
10043
+ }
10044
+ getProp(props) {
10045
+ return props.fontUnderlineType;
10046
+ }
10047
+ maskValue() {
10048
+ return CharacterPropertiesMask.UseFontUnderlineType;
10049
+ }
10050
+ getHistoryItemConstructor() {
10051
+ return FontUnderlineTypeHistoryItem;
10052
+ }
10053
+ getJSONProperty() {
10054
+ return JSONCharacterFormattingProperty.UnderlineType;
10055
+ }
10056
+ }
10057
+ class CharacterPropertiesUnderlineWordsOnlyDescriptor {
10058
+ constructor() {
10059
+ this.binaryEquals = comparers.Equals.simpleType;
10060
+ this.defaultValue = false;
10061
+ }
10062
+ setProp(props, newValue) {
10063
+ props.underlineWordsOnly = newValue;
10064
+ }
10065
+ getProp(props) {
10066
+ return props.underlineWordsOnly;
10067
+ }
10068
+ maskValue() {
10069
+ return CharacterPropertiesMask.UseUnderlineWordsOnly;
10070
+ }
10071
+ getHistoryItemConstructor() {
10072
+ return FontUnderlineWordsOnlyHistoryItem;
10073
+ }
10074
+ getJSONProperty() {
10075
+ return JSONCharacterFormattingProperty.UnderlineWordsOnly;
10076
+ }
10077
+ }
10078
+ class CharacterPropertiesStrikeoutWordsOnlyDescriptor {
10079
+ constructor() {
10080
+ this.binaryEquals = comparers.Equals.simpleType;
10081
+ this.defaultValue = false;
10082
+ }
10083
+ setProp(props, newValue) {
10084
+ props.strikeoutWordsOnly = newValue;
10085
+ }
10086
+ getProp(props) {
10087
+ return props.strikeoutWordsOnly;
10088
+ }
10089
+ maskValue() {
10090
+ return CharacterPropertiesMask.UseStrikeoutWordsOnly;
10091
+ }
10092
+ getHistoryItemConstructor() {
10093
+ return FontStrikeoutWordsOnlyHistoryItem;
10094
+ }
10095
+ getJSONProperty() {
10096
+ return JSONCharacterFormattingProperty.StrikeoutWordsOnly;
10097
+ }
10098
+ }
10099
+ class CharacterPropertiesNoProofDescriptor {
10100
+ constructor() {
10101
+ this.binaryEquals = comparers.Equals.simpleType;
10102
+ this.defaultValue = false;
10103
+ }
10104
+ setProp(props, newValue) {
10105
+ props.noProof = newValue;
10106
+ }
10107
+ getProp(props) {
10108
+ return props.noProof;
10109
+ }
10110
+ maskValue() {
10111
+ return CharacterPropertiesMask.UseNoProof;
10112
+ }
10113
+ getHistoryItemConstructor() {
10114
+ return FontNoProofHistoryItem;
10115
+ }
10116
+ getJSONProperty() {
10117
+ return JSONCharacterFormattingProperty.NoProof;
10118
+ }
10119
+ }
10120
+ class CharacterPropertiesHiddenDescriptor {
10121
+ constructor() {
10122
+ this.binaryEquals = comparers.Equals.simpleType;
10123
+ this.defaultValue = false;
10124
+ }
10125
+ setProp(props, newValue) {
10126
+ props.hidden = newValue;
10127
+ }
10128
+ getProp(props) {
10129
+ return props.hidden;
10130
+ }
10131
+ maskValue() {
10132
+ return CharacterPropertiesMask.UseHidden;
10133
+ }
10134
+ getHistoryItemConstructor() {
10135
+ return FontHiddenHistoryItem;
10136
+ }
10137
+ getJSONProperty() {
10138
+ return JSONCharacterFormattingProperty.Hidden;
10139
+ }
10140
+ }
10141
+ class CharacterPropertiesTextColorDescriptor {
10142
+ constructor() {
10143
+ this.binaryEquals = comparers.Equals.object;
10144
+ this.defaultValue = color_model_info_ColorModelInfo.autoColor;
10145
+ }
10146
+ setProp(props, newValue) {
10147
+ props.textColor = newValue;
10148
+ }
10149
+ getProp(props) {
10150
+ return props.textColor;
10151
+ }
10152
+ maskValue() {
10153
+ return CharacterPropertiesMask.UseForeColorIndex;
10154
+ }
10155
+ getHistoryItemConstructor() {
10156
+ return FontTextColorHistoryItem;
10157
+ }
10158
+ getJSONProperty() {
10159
+ return JSONCharacterFormattingProperty.TextColor;
10160
+ }
10161
+ }
10162
+ class CharacterPropertiesShadingInfoColorDescriptor {
10163
+ constructor() {
10164
+ this.binaryEquals = comparers.Equals.object;
10165
+ this.defaultValue = ShadingInfo.noColor;
10166
+ }
10167
+ setProp(props, newValue) {
10168
+ props.shadingInfo = newValue;
10169
+ }
10170
+ getProp(props) {
10171
+ return props.shadingInfo;
10172
+ }
10173
+ maskValue() {
10174
+ return CharacterPropertiesMask.UseShadingInfoIndex;
10175
+ }
10176
+ getHistoryItemConstructor() {
10177
+ return FontShadingInfoHistoryItem;
10178
+ }
10179
+ getJSONProperty() {
10180
+ return JSONCharacterFormattingProperty.ShadingInfo;
10181
+ }
10182
+ }
10183
+ class CharacterPropertiesStrikeoutColorDescriptor {
10184
+ constructor() {
10185
+ this.binaryEquals = comparers.Equals.object;
10186
+ this.defaultValue = color_model_info_ColorModelInfo.noColor;
10187
+ }
10188
+ setProp(props, newValue) {
10189
+ props.strikeoutColor = newValue;
10190
+ }
10191
+ getProp(props) {
10192
+ return props.strikeoutColor;
10193
+ }
10194
+ maskValue() {
10195
+ return CharacterPropertiesMask.UseStrikeoutColorIndex;
10196
+ }
10197
+ getHistoryItemConstructor() {
10198
+ return FontStrikeoutColorHistoryItem;
10199
+ }
10200
+ getJSONProperty() {
10201
+ return JSONCharacterFormattingProperty.StrikeoutColor;
10202
+ }
10203
+ }
10204
+ class CharacterPropertiesUnderlineColorDescriptor {
10205
+ constructor() {
10206
+ this.binaryEquals = comparers.Equals.object;
10207
+ this.defaultValue = color_model_info_ColorModelInfo.noColor;
10208
+ }
10209
+ setProp(props, newValue) {
10210
+ props.underlineColor = newValue;
10211
+ }
10212
+ getProp(props) {
10213
+ return props.underlineColor;
10214
+ }
10215
+ maskValue() {
10216
+ return CharacterPropertiesMask.UseUnderlineColorIndex;
10217
+ }
10218
+ getHistoryItemConstructor() {
10219
+ return FontUnderlineColorHistoryItem;
10220
+ }
10221
+ getJSONProperty() {
10222
+ return JSONCharacterFormattingProperty.UnderlineColor;
10223
+ }
10224
+ }
10225
+ class CharacterPropertiesHighlightColorDescriptor {
10226
+ constructor() {
10227
+ this.binaryEquals = comparers.Equals.object;
10228
+ this.defaultValue = color_model_info_ColorModelInfo.noColor;
10229
+ }
10230
+ setProp(props, newValue) {
10231
+ props.highlightColor = newValue;
10232
+ }
10233
+ getProp(props) {
10234
+ return props.highlightColor;
10235
+ }
10236
+ maskValue() {
10237
+ return CharacterPropertiesMask.UseHighlightColorIndex;
10238
+ }
10239
+ getHistoryItemConstructor() {
10240
+ return FontHighlightColorHistoryItem;
10241
+ }
10242
+ getJSONProperty() {
10243
+ return JSONCharacterFormattingProperty.HighlightColor;
10244
+ }
10245
+ }
10246
+ class CharacterPropertiesLangInfoDescriptor {
10247
+ constructor() {
10248
+ this.binaryEquals = comparers.Equals.object;
10249
+ this.defaultValue = new LangInfo();
10250
+ }
10251
+ setProp(props, newValue) {
10252
+ props.langInfo = newValue;
10253
+ }
10254
+ getProp(props) {
10255
+ return props.langInfo;
10256
+ }
10257
+ maskValue() {
10258
+ return CharacterPropertiesMask.UseLangInfo;
10259
+ }
10260
+ getHistoryItemConstructor() {
10261
+ return FontLangInfoHistoryItem;
10262
+ }
10263
+ getJSONProperty() {
10264
+ return JSONCharacterFormattingProperty.LangInfo;
10265
+ }
10266
+ }
10267
+ class CharacterPropertiesCompositeFontInfoDescriptor {
10268
+ constructor() {
10269
+ this.binaryEquals = comparers.Equals.object;
10270
+ this.defaultValue = new CompositeFontInfo();
10271
+ }
10272
+ setProp(props, newValue) {
10273
+ props.compositeFontInfo = newValue;
10274
+ }
10275
+ getProp(props) {
10276
+ return props.compositeFontInfo;
10277
+ }
10278
+ maskValue() {
10279
+ return CharacterPropertiesMask.UseCompositeFontInfo;
10280
+ }
10281
+ getHistoryItemConstructor() {
10282
+ return FontCompositeFontInfoHistoryItem;
10283
+ }
10284
+ getJSONProperty() {
10285
+ return JSONCharacterFormattingProperty.CompositeFontInfo;
10286
+ }
10287
+ }
10288
+ class character_property_descriptor_CharacterPropertyDescriptor {
10289
+ }
10290
+ character_property_descriptor_CharacterPropertyDescriptor.allCaps = new CharacterPropertiesAllCapsDescriptor();
10291
+ character_property_descriptor_CharacterPropertyDescriptor.size = new CharacterPropertiesFontSizeDescriptor();
10292
+ character_property_descriptor_CharacterPropertyDescriptor.bold = new CharacterPropertiesFontBoldDescriptor();
10293
+ character_property_descriptor_CharacterPropertyDescriptor.italic = new CharacterPropertiesFontItalicDescriptor();
10294
+ character_property_descriptor_CharacterPropertyDescriptor.fontInfo = new CharacterPropertiesFontInfoDescriptor();
10295
+ character_property_descriptor_CharacterPropertyDescriptor.script = new CharacterPropertiesScriptDescriptor();
10296
+ character_property_descriptor_CharacterPropertyDescriptor.strikeoutType = new CharacterPropertiesStrikeoutTypeDescriptor();
10297
+ character_property_descriptor_CharacterPropertyDescriptor.underlineType = new CharacterPropertiesUnderlineTypeDescriptor();
10298
+ character_property_descriptor_CharacterPropertyDescriptor.underlineWordsOnly = new CharacterPropertiesUnderlineWordsOnlyDescriptor();
10299
+ character_property_descriptor_CharacterPropertyDescriptor.strikeoutWordsOnly = new CharacterPropertiesStrikeoutWordsOnlyDescriptor();
10300
+ character_property_descriptor_CharacterPropertyDescriptor.noProof = new CharacterPropertiesNoProofDescriptor();
10301
+ character_property_descriptor_CharacterPropertyDescriptor.hidden = new CharacterPropertiesHiddenDescriptor();
10302
+ character_property_descriptor_CharacterPropertyDescriptor.langInfo = new CharacterPropertiesLangInfoDescriptor();
10303
+ character_property_descriptor_CharacterPropertyDescriptor.compositeFontInfo = new CharacterPropertiesCompositeFontInfoDescriptor();
10304
+ character_property_descriptor_CharacterPropertyDescriptor.textColor = new CharacterPropertiesTextColorDescriptor();
10305
+ character_property_descriptor_CharacterPropertyDescriptor.shadingInfo = new CharacterPropertiesShadingInfoColorDescriptor();
10306
+ character_property_descriptor_CharacterPropertyDescriptor.highlightColor = new CharacterPropertiesHighlightColorDescriptor();
10307
+ character_property_descriptor_CharacterPropertyDescriptor.strikeoutColor = new CharacterPropertiesStrikeoutColorDescriptor();
10308
+ character_property_descriptor_CharacterPropertyDescriptor.underlineColor = new CharacterPropertiesUnderlineColorDescriptor();
10309
+ character_property_descriptor_CharacterPropertyDescriptor.smallCaps = new CharacterPropertiesSmallCapsDescriptor();
10310
+ character_property_descriptor_CharacterPropertyDescriptor.ALL_FIELDS = [
10311
+ character_property_descriptor_CharacterPropertyDescriptor.allCaps,
10312
+ character_property_descriptor_CharacterPropertyDescriptor.size,
10313
+ character_property_descriptor_CharacterPropertyDescriptor.bold,
10314
+ character_property_descriptor_CharacterPropertyDescriptor.italic,
10315
+ character_property_descriptor_CharacterPropertyDescriptor.fontInfo,
10316
+ character_property_descriptor_CharacterPropertyDescriptor.script,
10317
+ character_property_descriptor_CharacterPropertyDescriptor.strikeoutType,
10318
+ character_property_descriptor_CharacterPropertyDescriptor.underlineType,
10319
+ character_property_descriptor_CharacterPropertyDescriptor.underlineWordsOnly,
10320
+ character_property_descriptor_CharacterPropertyDescriptor.strikeoutWordsOnly,
10321
+ character_property_descriptor_CharacterPropertyDescriptor.noProof,
10322
+ character_property_descriptor_CharacterPropertyDescriptor.hidden,
10323
+ character_property_descriptor_CharacterPropertyDescriptor.langInfo,
10324
+ character_property_descriptor_CharacterPropertyDescriptor.compositeFontInfo,
10325
+ character_property_descriptor_CharacterPropertyDescriptor.textColor,
10326
+ character_property_descriptor_CharacterPropertyDescriptor.shadingInfo,
10327
+ character_property_descriptor_CharacterPropertyDescriptor.highlightColor,
10328
+ character_property_descriptor_CharacterPropertyDescriptor.strikeoutColor,
10329
+ character_property_descriptor_CharacterPropertyDescriptor.underlineColor,
10330
+ character_property_descriptor_CharacterPropertyDescriptor.smallCaps
10331
+ ];
10332
+ character_property_descriptor_CharacterPropertyDescriptor.whatNeedSetWhenCreateHyperlinkField = [
10333
+ character_property_descriptor_CharacterPropertyDescriptor.size,
10334
+ character_property_descriptor_CharacterPropertyDescriptor.bold,
10335
+ character_property_descriptor_CharacterPropertyDescriptor.italic,
10336
+ character_property_descriptor_CharacterPropertyDescriptor.fontInfo,
10337
+ character_property_descriptor_CharacterPropertyDescriptor.script,
10338
+ character_property_descriptor_CharacterPropertyDescriptor.strikeoutType,
10339
+ character_property_descriptor_CharacterPropertyDescriptor.allCaps,
10340
+ character_property_descriptor_CharacterPropertyDescriptor.underlineWordsOnly,
10341
+ character_property_descriptor_CharacterPropertyDescriptor.strikeoutWordsOnly,
10342
+ character_property_descriptor_CharacterPropertyDescriptor.noProof,
10343
+ character_property_descriptor_CharacterPropertyDescriptor.hidden,
10344
+ character_property_descriptor_CharacterPropertyDescriptor.shadingInfo,
10345
+ character_property_descriptor_CharacterPropertyDescriptor.strikeoutColor,
10346
+ character_property_descriptor_CharacterPropertyDescriptor.underlineColor,
10347
+ character_property_descriptor_CharacterPropertyDescriptor.langInfo,
10348
+ character_property_descriptor_CharacterPropertyDescriptor.smallCaps
10349
+ ];
10350
+
9646
10351
  ;// CONCATENATED MODULE: ./src/common/model/character/layout-character-properties-color-info.ts
9647
10352
  class LayoutCharacterPropertiesColorInfo {
9648
10353
  constructor(textColor, foregroundColor, strikeoutColor, underlineColor) {
@@ -9675,6 +10380,7 @@ class LayoutCharacterPropertiesColorInfo {
9675
10380
 
9676
10381
 
9677
10382
 
10383
+
9678
10384
  class CharacterProperties {
9679
10385
  constructor() {
9680
10386
  this.measurerSizes = Object.create(null);
@@ -9809,8 +10515,19 @@ class MaskedCharacterProperties extends CharacterProperties {
9809
10515
  this.useValueExt &= ~this.getHighPartUseValue(mask);
9810
10516
  }
9811
10517
  }
9812
- setUseValueFull(value) {
9813
- this.useValue = this.getLowPartUseValue(value);
10518
+ setUseValueFull(value, onlyForDefault = false) {
10519
+ const lowPartUseValue = this.getLowPartUseValue(value);
10520
+ if (onlyForDefault) {
10521
+ character_property_descriptor_CharacterPropertyDescriptor.ALL_FIELDS.forEach((desc) => {
10522
+ const prop = desc.getProp(this);
10523
+ const mask = desc.maskValue();
10524
+ if (desc.binaryEquals(prop, desc.defaultValue))
10525
+ this.setUseValue(mask, !!(mask & lowPartUseValue));
10526
+ });
10527
+ }
10528
+ else {
10529
+ this.useValue = lowPartUseValue;
10530
+ }
9814
10531
  this.useValueExt = this.getHighPartUseValue(value);
9815
10532
  }
9816
10533
  getLowPartUseValue(value) {
@@ -10224,7 +10941,7 @@ class LayoutBorder extends BorderBase {
10224
10941
 
10225
10942
  class BorderInfo {
10226
10943
  constructor() {
10227
- this.style = BorderLineStyle.None;
10944
+ this.style = BorderLineStyle.Nil;
10228
10945
  this.color = ColorModelInfoCache.defaultItem;
10229
10946
  this.width = 0;
10230
10947
  this.offset = 0;
@@ -10274,66 +10991,6 @@ class BorderInfo {
10274
10991
  }
10275
10992
  }
10276
10993
 
10277
- // EXTERNAL MODULE: ./node_modules/@devexpress/utils/lib/utils/comparers.js
10278
- var comparers = __webpack_require__(4170);
10279
- ;// CONCATENATED MODULE: ./src/common/model/history/base/history-item.ts
10280
-
10281
- class history_item_HistoryItem {
10282
- canBeMerged() {
10283
- return false;
10284
- }
10285
- constructor(modelManipulator) {
10286
- this.uniqueId = -1;
10287
- this.modelManipulator = modelManipulator;
10288
- }
10289
- changeModified() {
10290
- return true;
10291
- }
10292
- }
10293
- class CompositionHistoryItem extends history_item_HistoryItem {
10294
- canBeMerged() {
10295
- return true;
10296
- }
10297
- constructor() {
10298
- super(null);
10299
- this.historyItems = [];
10300
- }
10301
- changeModified() {
10302
- var item;
10303
- for (var i = 0; item = this.historyItems[i]; i++) {
10304
- if (item.changeModified())
10305
- return true;
10306
- }
10307
- return false;
10308
- }
10309
- redo() {
10310
- var item;
10311
- for (var i = 0; item = this.historyItems[i]; i++)
10312
- item.redo();
10313
- }
10314
- undo() {
10315
- var item;
10316
- for (var i = this.historyItems.length - 1; item = this.historyItems[i]; i--)
10317
- item.undo();
10318
- }
10319
- add(historyItem) {
10320
- if (historyItem == null)
10321
- throw new Error(lib_errors/* Errors */.D.ValueCannotBeNull);
10322
- this.historyItems.push(historyItem);
10323
- }
10324
- }
10325
-
10326
- ;// CONCATENATED MODULE: ./src/common/model/history/base/interval-based-history-item.ts
10327
-
10328
- class interval_based_history_item_IntervalBasedHistoryItem extends history_item_HistoryItem {
10329
- get boundSubDocument() { return this.subDocInterval.subDocument; }
10330
- get interval() { return this.subDocInterval.interval; }
10331
- constructor(modelManipulator, subDocInterval) {
10332
- super(modelManipulator);
10333
- this.subDocInterval = subDocInterval;
10334
- }
10335
- }
10336
-
10337
10994
  ;// CONCATENATED MODULE: ./src/common/model/history/items/paragraph-properties-history-items.ts
10338
10995
 
10339
10996
 
@@ -11503,650 +12160,6 @@ class LineSpacingUnit {
11503
12160
  }
11504
12161
  }
11505
12162
 
11506
- ;// CONCATENATED MODULE: ./src/common/model/history/items/character-properties-history-items.ts
11507
-
11508
-
11509
- class FontUseValueHistoryItem extends interval_based_history_item_IntervalBasedHistoryItem {
11510
- constructor(modelManipulator, subDocInterval, newValue) {
11511
- super(modelManipulator, subDocInterval);
11512
- this.newValue = newValue;
11513
- }
11514
- redo() {
11515
- this.oldState = this.modelManipulator.characterProperties.useValue.setValue(this.boundSubDocument, this.interval, this.newValue);
11516
- }
11517
- undo() {
11518
- this.modelManipulator.characterProperties.useValue.restoreValue(this.boundSubDocument, this.oldState);
11519
- }
11520
- }
11521
- class CharacterPropertiesHistoryItem extends interval_based_history_item_IntervalBasedHistoryItem {
11522
- constructor(modelManipulator, subDocInterval, newValue) {
11523
- super(modelManipulator, subDocInterval);
11524
- this.newValue = newValue;
11525
- }
11526
- redo() {
11527
- this.oldState = this.modelManipulator.characterProperties.setValue(this.boundSubDocument, this.interval, this.newValue);
11528
- }
11529
- undo() {
11530
- this.modelManipulator.characterProperties.restoreValue(this.boundSubDocument, this.oldState);
11531
- }
11532
- }
11533
- class CharacterPropertiesHistoryItemBase extends interval_based_history_item_IntervalBasedHistoryItem {
11534
- constructor(modelManipulator, subDocInterval, newValue, newUse) {
11535
- super(modelManipulator, subDocInterval);
11536
- this.newValue = newValue;
11537
- this.newUse = newUse;
11538
- }
11539
- redo() {
11540
- this.oldState = this.getPropertiesManipulator().setValue(this.boundSubDocument, this.interval, this.newValue, this.newUse);
11541
- }
11542
- undo() {
11543
- this.getPropertiesManipulator().restoreValue(this.boundSubDocument, this.oldState);
11544
- }
11545
- getPropertiesManipulator() {
11546
- throw new Error(lib_errors/* Errors */.D.NotImplemented);
11547
- }
11548
- }
11549
- class FontBoldHistoryItem extends CharacterPropertiesHistoryItemBase {
11550
- getPropertiesManipulator() {
11551
- return this.modelManipulator.characterProperties.fontBold;
11552
- }
11553
- }
11554
- class FontCapsHistoryItem extends CharacterPropertiesHistoryItemBase {
11555
- getPropertiesManipulator() {
11556
- return this.modelManipulator.characterProperties.fontCaps;
11557
- }
11558
- }
11559
- class FontSmallCapsHistoryItem extends CharacterPropertiesHistoryItemBase {
11560
- getPropertiesManipulator() {
11561
- return this.modelManipulator.characterProperties.fontSmallCaps;
11562
- }
11563
- }
11564
- class FontUnderlineTypeHistoryItem extends CharacterPropertiesHistoryItemBase {
11565
- getPropertiesManipulator() {
11566
- return this.modelManipulator.characterProperties.fontUnderlineType;
11567
- }
11568
- }
11569
- class FontTextColorHistoryItem extends CharacterPropertiesHistoryItemBase {
11570
- getPropertiesManipulator() {
11571
- return this.modelManipulator.characterProperties.textColor;
11572
- }
11573
- }
11574
- class FontShadingInfoHistoryItem extends CharacterPropertiesHistoryItemBase {
11575
- getPropertiesManipulator() {
11576
- return this.modelManipulator.characterProperties.shadingInfo;
11577
- }
11578
- }
11579
- class FontHiddenHistoryItem extends CharacterPropertiesHistoryItemBase {
11580
- getPropertiesManipulator() {
11581
- return this.modelManipulator.characterProperties.fontHidden;
11582
- }
11583
- }
11584
- class FontItalicHistoryItem extends CharacterPropertiesHistoryItemBase {
11585
- getPropertiesManipulator() {
11586
- return this.modelManipulator.characterProperties.fontItalic;
11587
- }
11588
- }
11589
- class FontNameHistoryItem extends CharacterPropertiesHistoryItemBase {
11590
- getPropertiesManipulator() {
11591
- return this.modelManipulator.characterProperties.fontName;
11592
- }
11593
- }
11594
- class FontScriptHistoryItem extends CharacterPropertiesHistoryItemBase {
11595
- getPropertiesManipulator() {
11596
- return this.modelManipulator.characterProperties.script;
11597
- }
11598
- }
11599
- class FontSizeHistoryItem extends CharacterPropertiesHistoryItemBase {
11600
- getPropertiesManipulator() {
11601
- return this.modelManipulator.characterProperties.fontSize;
11602
- }
11603
- }
11604
- class FontStrikeoutTypeHistoryItem extends CharacterPropertiesHistoryItemBase {
11605
- getPropertiesManipulator() {
11606
- return this.modelManipulator.characterProperties.fontStrikeoutType;
11607
- }
11608
- }
11609
- class FontStrikeoutWordsOnlyHistoryItem extends CharacterPropertiesHistoryItemBase {
11610
- getPropertiesManipulator() {
11611
- return this.modelManipulator.characterProperties.fontStrikeoutWordsOnly;
11612
- }
11613
- }
11614
- class FontStrikeoutColorHistoryItem extends CharacterPropertiesHistoryItemBase {
11615
- getPropertiesManipulator() {
11616
- return this.modelManipulator.characterProperties.fontStrikeoutColor;
11617
- }
11618
- }
11619
- class FontUnderlineColorHistoryItem extends CharacterPropertiesHistoryItemBase {
11620
- getPropertiesManipulator() {
11621
- return this.modelManipulator.characterProperties.fontUnderlineColor;
11622
- }
11623
- }
11624
- class FontHighlightColorHistoryItem extends CharacterPropertiesHistoryItemBase {
11625
- getPropertiesManipulator() {
11626
- return this.modelManipulator.characterProperties.fontHighlightColor;
11627
- }
11628
- }
11629
- class FontUnderlineWordsOnlyHistoryItem extends CharacterPropertiesHistoryItemBase {
11630
- getPropertiesManipulator() {
11631
- return this.modelManipulator.characterProperties.fontUnderlineWordsOnly;
11632
- }
11633
- }
11634
- class FontNoProofHistoryItem extends CharacterPropertiesHistoryItemBase {
11635
- getPropertiesManipulator() {
11636
- return this.modelManipulator.characterProperties.fontNoProof;
11637
- }
11638
- }
11639
- class FontLangInfoHistoryItem extends CharacterPropertiesHistoryItemBase {
11640
- getPropertiesManipulator() {
11641
- return this.modelManipulator.characterProperties.langInfo;
11642
- }
11643
- }
11644
- class FontCompositeFontInfoHistoryItem extends CharacterPropertiesHistoryItemBase {
11645
- getPropertiesManipulator() {
11646
- return this.modelManipulator.characterProperties.compositeFontInfo;
11647
- }
11648
- }
11649
- class ResetCharacterPropertiesUseValuesHistoryItem extends (/* unused pure expression or super */ null && (IntervalBasedHistoryItem)) {
11650
- redo() {
11651
- this.state = this.modelManipulator.characterProperties.useValue.setValue(this.boundSubDocument, this.interval, 0);
11652
- }
11653
- undo() {
11654
- this.modelManipulator.characterProperties.useValue.restoreValue(this.boundSubDocument, this.state);
11655
- }
11656
- }
11657
-
11658
- ;// CONCATENATED MODULE: ./src/common/model/character/character-property-descriptor.ts
11659
-
11660
-
11661
-
11662
-
11663
-
11664
-
11665
-
11666
-
11667
- class CharacterPropertiesAllCapsDescriptor {
11668
- constructor() {
11669
- this.binaryEquals = comparers.Equals.simpleType;
11670
- this.defaultValue = false;
11671
- }
11672
- setProp(props, newValue) {
11673
- props.allCaps = newValue;
11674
- }
11675
- getProp(props) {
11676
- return props.allCaps;
11677
- }
11678
- maskValue() {
11679
- return CharacterPropertiesMask.UseAllCaps;
11680
- }
11681
- getHistoryItemConstructor() {
11682
- return FontCapsHistoryItem;
11683
- }
11684
- getJSONProperty() {
11685
- return JSONCharacterFormattingProperty.AllCaps;
11686
- }
11687
- }
11688
- class CharacterPropertiesSmallCapsDescriptor {
11689
- constructor() {
11690
- this.binaryEquals = comparers.Equals.simpleType;
11691
- this.defaultValue = false;
11692
- }
11693
- setProp(props, newValue) {
11694
- props.smallCaps = newValue;
11695
- }
11696
- getProp(props) {
11697
- return props.smallCaps;
11698
- }
11699
- maskValue() {
11700
- return CharacterPropertiesMask.UseSmallCaps;
11701
- }
11702
- getHistoryItemConstructor() {
11703
- return FontSmallCapsHistoryItem;
11704
- }
11705
- getJSONProperty() {
11706
- return JSONCharacterFormattingProperty.SmallCaps;
11707
- }
11708
- }
11709
- class CharacterPropertiesFontSizeDescriptor {
11710
- constructor() {
11711
- this.binaryEquals = comparers.Equals.simpleType;
11712
- this.defaultValue = 11;
11713
- }
11714
- setProp(props, newValue) {
11715
- props.fontSize = newValue;
11716
- }
11717
- getProp(props) {
11718
- return props.fontSize;
11719
- }
11720
- maskValue() {
11721
- return CharacterPropertiesMask.UseDoubleFontSize;
11722
- }
11723
- getHistoryItemConstructor() {
11724
- return FontSizeHistoryItem;
11725
- }
11726
- getJSONProperty() {
11727
- return JSONCharacterFormattingProperty.Size;
11728
- }
11729
- }
11730
- class CharacterPropertiesFontBoldDescriptor {
11731
- constructor() {
11732
- this.binaryEquals = comparers.Equals.simpleType;
11733
- this.defaultValue = false;
11734
- }
11735
- setProp(props, newValue) {
11736
- props.fontBold = newValue;
11737
- }
11738
- getProp(props) {
11739
- return props.fontBold;
11740
- }
11741
- maskValue() {
11742
- return CharacterPropertiesMask.UseFontBold;
11743
- }
11744
- getHistoryItemConstructor() {
11745
- return FontBoldHistoryItem;
11746
- }
11747
- getJSONProperty() {
11748
- return JSONCharacterFormattingProperty.Bold;
11749
- }
11750
- }
11751
- class CharacterPropertiesFontItalicDescriptor {
11752
- constructor() {
11753
- this.binaryEquals = comparers.Equals.simpleType;
11754
- this.defaultValue = false;
11755
- }
11756
- setProp(props, newValue) {
11757
- props.fontItalic = newValue;
11758
- }
11759
- getProp(props) {
11760
- return props.fontItalic;
11761
- }
11762
- maskValue() {
11763
- return CharacterPropertiesMask.UseFontItalic;
11764
- }
11765
- getHistoryItemConstructor() {
11766
- return FontItalicHistoryItem;
11767
- }
11768
- getJSONProperty() {
11769
- return JSONCharacterFormattingProperty.Italic;
11770
- }
11771
- }
11772
- class CharacterPropertiesFontInfoDescriptor {
11773
- constructor() {
11774
- this.binaryEquals = comparers.Equals.object;
11775
- this.defaultValue = undefined;
11776
- }
11777
- setProp(props, newValue) {
11778
- props.fontInfo = newValue;
11779
- }
11780
- getProp(props) {
11781
- return props.fontInfo;
11782
- }
11783
- maskValue() {
11784
- return CharacterPropertiesMask.UseFontName;
11785
- }
11786
- getHistoryItemConstructor() {
11787
- return FontNameHistoryItem;
11788
- }
11789
- getJSONProperty() {
11790
- return JSONCharacterFormattingProperty.FontName;
11791
- }
11792
- }
11793
- class CharacterPropertiesScriptDescriptor {
11794
- constructor() {
11795
- this.binaryEquals = comparers.Equals.simpleType;
11796
- this.defaultValue = CharacterFormattingScript.Normal;
11797
- }
11798
- setProp(props, newValue) {
11799
- props.script = newValue;
11800
- }
11801
- getProp(props) {
11802
- return props.script;
11803
- }
11804
- maskValue() {
11805
- return CharacterPropertiesMask.UseScript;
11806
- }
11807
- getHistoryItemConstructor() {
11808
- return FontScriptHistoryItem;
11809
- }
11810
- getJSONProperty() {
11811
- return JSONCharacterFormattingProperty.Script;
11812
- }
11813
- }
11814
- class CharacterPropertiesStrikeoutTypeDescriptor {
11815
- constructor() {
11816
- this.binaryEquals = comparers.Equals.simpleType;
11817
- this.defaultValue = StrikeoutType.None;
11818
- }
11819
- setProp(props, newValue) {
11820
- props.fontStrikeoutType = newValue;
11821
- }
11822
- getProp(props) {
11823
- return props.fontStrikeoutType;
11824
- }
11825
- maskValue() {
11826
- return CharacterPropertiesMask.UseFontStrikeoutType;
11827
- }
11828
- getHistoryItemConstructor() {
11829
- return FontStrikeoutTypeHistoryItem;
11830
- }
11831
- getJSONProperty() {
11832
- return JSONCharacterFormattingProperty.StrikeoutType;
11833
- }
11834
- }
11835
- class CharacterPropertiesUnderlineTypeDescriptor {
11836
- constructor() {
11837
- this.binaryEquals = comparers.Equals.simpleType;
11838
- this.defaultValue = UnderlineType.None;
11839
- }
11840
- setProp(props, newValue) {
11841
- props.fontUnderlineType = newValue;
11842
- }
11843
- getProp(props) {
11844
- return props.fontUnderlineType;
11845
- }
11846
- maskValue() {
11847
- return CharacterPropertiesMask.UseFontUnderlineType;
11848
- }
11849
- getHistoryItemConstructor() {
11850
- return FontUnderlineTypeHistoryItem;
11851
- }
11852
- getJSONProperty() {
11853
- return JSONCharacterFormattingProperty.UnderlineType;
11854
- }
11855
- }
11856
- class CharacterPropertiesUnderlineWordsOnlyDescriptor {
11857
- constructor() {
11858
- this.binaryEquals = comparers.Equals.simpleType;
11859
- this.defaultValue = false;
11860
- }
11861
- setProp(props, newValue) {
11862
- props.underlineWordsOnly = newValue;
11863
- }
11864
- getProp(props) {
11865
- return props.underlineWordsOnly;
11866
- }
11867
- maskValue() {
11868
- return CharacterPropertiesMask.UseUnderlineWordsOnly;
11869
- }
11870
- getHistoryItemConstructor() {
11871
- return FontUnderlineWordsOnlyHistoryItem;
11872
- }
11873
- getJSONProperty() {
11874
- return JSONCharacterFormattingProperty.UnderlineWordsOnly;
11875
- }
11876
- }
11877
- class CharacterPropertiesStrikeoutWordsOnlyDescriptor {
11878
- constructor() {
11879
- this.binaryEquals = comparers.Equals.simpleType;
11880
- this.defaultValue = false;
11881
- }
11882
- setProp(props, newValue) {
11883
- props.strikeoutWordsOnly = newValue;
11884
- }
11885
- getProp(props) {
11886
- return props.strikeoutWordsOnly;
11887
- }
11888
- maskValue() {
11889
- return CharacterPropertiesMask.UseStrikeoutWordsOnly;
11890
- }
11891
- getHistoryItemConstructor() {
11892
- return FontStrikeoutWordsOnlyHistoryItem;
11893
- }
11894
- getJSONProperty() {
11895
- return JSONCharacterFormattingProperty.StrikeoutWordsOnly;
11896
- }
11897
- }
11898
- class CharacterPropertiesNoProofDescriptor {
11899
- constructor() {
11900
- this.binaryEquals = comparers.Equals.simpleType;
11901
- this.defaultValue = false;
11902
- }
11903
- setProp(props, newValue) {
11904
- props.noProof = newValue;
11905
- }
11906
- getProp(props) {
11907
- return props.noProof;
11908
- }
11909
- maskValue() {
11910
- return CharacterPropertiesMask.UseNoProof;
11911
- }
11912
- getHistoryItemConstructor() {
11913
- return FontNoProofHistoryItem;
11914
- }
11915
- getJSONProperty() {
11916
- return JSONCharacterFormattingProperty.NoProof;
11917
- }
11918
- }
11919
- class CharacterPropertiesHiddenDescriptor {
11920
- constructor() {
11921
- this.binaryEquals = comparers.Equals.simpleType;
11922
- this.defaultValue = false;
11923
- }
11924
- setProp(props, newValue) {
11925
- props.hidden = newValue;
11926
- }
11927
- getProp(props) {
11928
- return props.hidden;
11929
- }
11930
- maskValue() {
11931
- return CharacterPropertiesMask.UseHidden;
11932
- }
11933
- getHistoryItemConstructor() {
11934
- return FontHiddenHistoryItem;
11935
- }
11936
- getJSONProperty() {
11937
- return JSONCharacterFormattingProperty.Hidden;
11938
- }
11939
- }
11940
- class CharacterPropertiesTextColorDescriptor {
11941
- constructor() {
11942
- this.binaryEquals = comparers.Equals.object;
11943
- this.defaultValue = color_model_info_ColorModelInfo.autoColor;
11944
- }
11945
- setProp(props, newValue) {
11946
- props.textColor = newValue;
11947
- }
11948
- getProp(props) {
11949
- return props.textColor;
11950
- }
11951
- maskValue() {
11952
- return CharacterPropertiesMask.UseForeColorIndex;
11953
- }
11954
- getHistoryItemConstructor() {
11955
- return FontTextColorHistoryItem;
11956
- }
11957
- getJSONProperty() {
11958
- return JSONCharacterFormattingProperty.TextColor;
11959
- }
11960
- }
11961
- class CharacterPropertiesShadingInfoColorDescriptor {
11962
- constructor() {
11963
- this.binaryEquals = comparers.Equals.object;
11964
- this.defaultValue = ShadingInfo.noColor;
11965
- }
11966
- setProp(props, newValue) {
11967
- props.shadingInfo = newValue;
11968
- }
11969
- getProp(props) {
11970
- return props.shadingInfo;
11971
- }
11972
- maskValue() {
11973
- return CharacterPropertiesMask.UseShadingInfoIndex;
11974
- }
11975
- getHistoryItemConstructor() {
11976
- return FontShadingInfoHistoryItem;
11977
- }
11978
- getJSONProperty() {
11979
- return JSONCharacterFormattingProperty.ShadingInfo;
11980
- }
11981
- }
11982
- class CharacterPropertiesStrikeoutColorDescriptor {
11983
- constructor() {
11984
- this.binaryEquals = comparers.Equals.object;
11985
- this.defaultValue = color_model_info_ColorModelInfo.noColor;
11986
- }
11987
- setProp(props, newValue) {
11988
- props.strikeoutColor = newValue;
11989
- }
11990
- getProp(props) {
11991
- return props.strikeoutColor;
11992
- }
11993
- maskValue() {
11994
- return CharacterPropertiesMask.UseStrikeoutColorIndex;
11995
- }
11996
- getHistoryItemConstructor() {
11997
- return FontStrikeoutColorHistoryItem;
11998
- }
11999
- getJSONProperty() {
12000
- return JSONCharacterFormattingProperty.StrikeoutColor;
12001
- }
12002
- }
12003
- class CharacterPropertiesUnderlineColorDescriptor {
12004
- constructor() {
12005
- this.binaryEquals = comparers.Equals.object;
12006
- this.defaultValue = color_model_info_ColorModelInfo.noColor;
12007
- }
12008
- setProp(props, newValue) {
12009
- props.underlineColor = newValue;
12010
- }
12011
- getProp(props) {
12012
- return props.underlineColor;
12013
- }
12014
- maskValue() {
12015
- return CharacterPropertiesMask.UseUnderlineColorIndex;
12016
- }
12017
- getHistoryItemConstructor() {
12018
- return FontUnderlineColorHistoryItem;
12019
- }
12020
- getJSONProperty() {
12021
- return JSONCharacterFormattingProperty.UnderlineColor;
12022
- }
12023
- }
12024
- class CharacterPropertiesHighlightColorDescriptor {
12025
- constructor() {
12026
- this.binaryEquals = comparers.Equals.object;
12027
- this.defaultValue = color_model_info_ColorModelInfo.noColor;
12028
- }
12029
- setProp(props, newValue) {
12030
- props.highlightColor = newValue;
12031
- }
12032
- getProp(props) {
12033
- return props.highlightColor;
12034
- }
12035
- maskValue() {
12036
- return CharacterPropertiesMask.UseHighlightColorIndex;
12037
- }
12038
- getHistoryItemConstructor() {
12039
- return FontHighlightColorHistoryItem;
12040
- }
12041
- getJSONProperty() {
12042
- return JSONCharacterFormattingProperty.HighlightColor;
12043
- }
12044
- }
12045
- class CharacterPropertiesLangInfoDescriptor {
12046
- constructor() {
12047
- this.binaryEquals = comparers.Equals.object;
12048
- this.defaultValue = new LangInfo();
12049
- }
12050
- setProp(props, newValue) {
12051
- props.langInfo = newValue;
12052
- }
12053
- getProp(props) {
12054
- return props.langInfo;
12055
- }
12056
- maskValue() {
12057
- return CharacterPropertiesMask.UseLangInfo;
12058
- }
12059
- getHistoryItemConstructor() {
12060
- return FontLangInfoHistoryItem;
12061
- }
12062
- getJSONProperty() {
12063
- return JSONCharacterFormattingProperty.LangInfo;
12064
- }
12065
- }
12066
- class CharacterPropertiesCompositeFontInfoDescriptor {
12067
- constructor() {
12068
- this.binaryEquals = comparers.Equals.object;
12069
- this.defaultValue = new CompositeFontInfo();
12070
- }
12071
- setProp(props, newValue) {
12072
- props.compositeFontInfo = newValue;
12073
- }
12074
- getProp(props) {
12075
- return props.compositeFontInfo;
12076
- }
12077
- maskValue() {
12078
- return CharacterPropertiesMask.UseCompositeFontInfo;
12079
- }
12080
- getHistoryItemConstructor() {
12081
- return FontCompositeFontInfoHistoryItem;
12082
- }
12083
- getJSONProperty() {
12084
- return JSONCharacterFormattingProperty.CompositeFontInfo;
12085
- }
12086
- }
12087
- class character_property_descriptor_CharacterPropertyDescriptor {
12088
- }
12089
- character_property_descriptor_CharacterPropertyDescriptor.allCaps = new CharacterPropertiesAllCapsDescriptor();
12090
- character_property_descriptor_CharacterPropertyDescriptor.size = new CharacterPropertiesFontSizeDescriptor();
12091
- character_property_descriptor_CharacterPropertyDescriptor.bold = new CharacterPropertiesFontBoldDescriptor();
12092
- character_property_descriptor_CharacterPropertyDescriptor.italic = new CharacterPropertiesFontItalicDescriptor();
12093
- character_property_descriptor_CharacterPropertyDescriptor.fontInfo = new CharacterPropertiesFontInfoDescriptor();
12094
- character_property_descriptor_CharacterPropertyDescriptor.script = new CharacterPropertiesScriptDescriptor();
12095
- character_property_descriptor_CharacterPropertyDescriptor.strikeoutType = new CharacterPropertiesStrikeoutTypeDescriptor();
12096
- character_property_descriptor_CharacterPropertyDescriptor.underlineType = new CharacterPropertiesUnderlineTypeDescriptor();
12097
- character_property_descriptor_CharacterPropertyDescriptor.underlineWordsOnly = new CharacterPropertiesUnderlineWordsOnlyDescriptor();
12098
- character_property_descriptor_CharacterPropertyDescriptor.strikeoutWordsOnly = new CharacterPropertiesStrikeoutWordsOnlyDescriptor();
12099
- character_property_descriptor_CharacterPropertyDescriptor.noProof = new CharacterPropertiesNoProofDescriptor();
12100
- character_property_descriptor_CharacterPropertyDescriptor.hidden = new CharacterPropertiesHiddenDescriptor();
12101
- character_property_descriptor_CharacterPropertyDescriptor.langInfo = new CharacterPropertiesLangInfoDescriptor();
12102
- character_property_descriptor_CharacterPropertyDescriptor.compositeFontInfo = new CharacterPropertiesCompositeFontInfoDescriptor();
12103
- character_property_descriptor_CharacterPropertyDescriptor.textColor = new CharacterPropertiesTextColorDescriptor();
12104
- character_property_descriptor_CharacterPropertyDescriptor.shadingInfo = new CharacterPropertiesShadingInfoColorDescriptor();
12105
- character_property_descriptor_CharacterPropertyDescriptor.highlightColor = new CharacterPropertiesHighlightColorDescriptor();
12106
- character_property_descriptor_CharacterPropertyDescriptor.strikeoutColor = new CharacterPropertiesStrikeoutColorDescriptor();
12107
- character_property_descriptor_CharacterPropertyDescriptor.underlineColor = new CharacterPropertiesUnderlineColorDescriptor();
12108
- character_property_descriptor_CharacterPropertyDescriptor.smallCaps = new CharacterPropertiesSmallCapsDescriptor();
12109
- character_property_descriptor_CharacterPropertyDescriptor.ALL_FIELDS = [
12110
- character_property_descriptor_CharacterPropertyDescriptor.allCaps,
12111
- character_property_descriptor_CharacterPropertyDescriptor.size,
12112
- character_property_descriptor_CharacterPropertyDescriptor.bold,
12113
- character_property_descriptor_CharacterPropertyDescriptor.italic,
12114
- character_property_descriptor_CharacterPropertyDescriptor.fontInfo,
12115
- character_property_descriptor_CharacterPropertyDescriptor.script,
12116
- character_property_descriptor_CharacterPropertyDescriptor.strikeoutType,
12117
- character_property_descriptor_CharacterPropertyDescriptor.underlineType,
12118
- character_property_descriptor_CharacterPropertyDescriptor.underlineWordsOnly,
12119
- character_property_descriptor_CharacterPropertyDescriptor.strikeoutWordsOnly,
12120
- character_property_descriptor_CharacterPropertyDescriptor.noProof,
12121
- character_property_descriptor_CharacterPropertyDescriptor.hidden,
12122
- character_property_descriptor_CharacterPropertyDescriptor.langInfo,
12123
- character_property_descriptor_CharacterPropertyDescriptor.compositeFontInfo,
12124
- character_property_descriptor_CharacterPropertyDescriptor.textColor,
12125
- character_property_descriptor_CharacterPropertyDescriptor.shadingInfo,
12126
- character_property_descriptor_CharacterPropertyDescriptor.highlightColor,
12127
- character_property_descriptor_CharacterPropertyDescriptor.strikeoutColor,
12128
- character_property_descriptor_CharacterPropertyDescriptor.underlineColor,
12129
- character_property_descriptor_CharacterPropertyDescriptor.smallCaps
12130
- ];
12131
- character_property_descriptor_CharacterPropertyDescriptor.whatNeedSetWhenCreateHyperlinkField = [
12132
- character_property_descriptor_CharacterPropertyDescriptor.size,
12133
- character_property_descriptor_CharacterPropertyDescriptor.bold,
12134
- character_property_descriptor_CharacterPropertyDescriptor.italic,
12135
- character_property_descriptor_CharacterPropertyDescriptor.fontInfo,
12136
- character_property_descriptor_CharacterPropertyDescriptor.script,
12137
- character_property_descriptor_CharacterPropertyDescriptor.strikeoutType,
12138
- character_property_descriptor_CharacterPropertyDescriptor.allCaps,
12139
- character_property_descriptor_CharacterPropertyDescriptor.underlineWordsOnly,
12140
- character_property_descriptor_CharacterPropertyDescriptor.strikeoutWordsOnly,
12141
- character_property_descriptor_CharacterPropertyDescriptor.noProof,
12142
- character_property_descriptor_CharacterPropertyDescriptor.hidden,
12143
- character_property_descriptor_CharacterPropertyDescriptor.shadingInfo,
12144
- character_property_descriptor_CharacterPropertyDescriptor.strikeoutColor,
12145
- character_property_descriptor_CharacterPropertyDescriptor.underlineColor,
12146
- character_property_descriptor_CharacterPropertyDescriptor.langInfo,
12147
- character_property_descriptor_CharacterPropertyDescriptor.smallCaps
12148
- ];
12149
-
12150
12163
  ;// CONCATENATED MODULE: ./src/common/model/borders/table-border-base.ts
12151
12164
 
12152
12165
  class TableBordersBase {
@@ -12329,6 +12342,7 @@ var ConditionalTableStyleFormatting;
12329
12342
  ConditionalTableStyleFormatting[ConditionalTableStyleFormatting["TopLeftCell"] = 4] = "TopLeftCell";
12330
12343
  ConditionalTableStyleFormatting[ConditionalTableStyleFormatting["BottomRightCell"] = 2] = "BottomRightCell";
12331
12344
  ConditionalTableStyleFormatting[ConditionalTableStyleFormatting["BottomLeftCell"] = 1] = "BottomLeftCell";
12345
+ ConditionalTableStyleFormatting[ConditionalTableStyleFormatting["None"] = 0] = "None";
12332
12346
  })(ConditionalTableStyleFormatting || (ConditionalTableStyleFormatting = {}));
12333
12347
 
12334
12348
  ;// CONCATENATED MODULE: ./src/common/model/tables/secondary-structures/table-units.ts
@@ -16430,6 +16444,8 @@ class CacheImageInfo {
16430
16444
  static get emptyPictureSize() { return new geometry_size.Size(CacheImageInfo.emptyPicDimension, CacheImageInfo.emptyPicDimension); }
16431
16445
  get isLoaded() { return this._referenceInfo ? this._referenceInfo._isLoaded : this._isLoaded; }
16432
16446
  set isLoaded(val) { this._isLoaded = val; }
16447
+ get isSizeDefined() { return this._referenceInfo ? this._referenceInfo._isSizeDefined : this._isSizeDefined; }
16448
+ set isSizeDefined(val) { this._isSizeDefined = val; }
16433
16449
  get size() { return this._referenceInfo ? this._referenceInfo._size : this._size; }
16434
16450
  set size(val) { this._size = val; }
16435
16451
  get currId() { return this.actualId !== undefined ? this.actualId : this.tmpId; }
@@ -16442,15 +16458,17 @@ class CacheImageInfo {
16442
16458
  this._base64 = undefined;
16443
16459
  this._size = undefined;
16444
16460
  this._isLoaded = undefined;
16461
+ this._isSizeDefined = undefined;
16445
16462
  this.file = undefined;
16446
16463
  }
16447
- constructor(base64, actualId, tmpId, imageUrl, file, referenceInfo, size, isLoaded) {
16464
+ constructor(base64, actualId, tmpId, imageUrl, file, referenceInfo, size, isLoaded, isActualSize) {
16448
16465
  this._base64 = base64 !== undefined ? utils_base64.Base64Utils.normalizeToDataUrl(base64, "image/png") : undefined;
16449
16466
  this.actualId = actualId;
16450
16467
  this.tmpId = tmpId;
16451
16468
  this._referenceInfo = referenceInfo;
16452
16469
  this._size = size ? size : CacheImageInfo.emptyPictureSize;
16453
16470
  this._isLoaded = isLoaded !== undefined ? isLoaded : false;
16471
+ this._isSizeDefined = isActualSize ? isActualSize : !!size;
16454
16472
  this.imageUrl = imageUrl;
16455
16473
  this.file = file;
16456
16474
  }
@@ -16464,7 +16482,7 @@ class CacheImageInfo {
16464
16482
  this.size.equals(obj.size);
16465
16483
  }
16466
16484
  clone() {
16467
- return new CacheImageInfo(this._base64, this.actualId, this.tmpId, this.imageUrl, this.file, this._referenceInfo, this._size, this._isLoaded);
16485
+ return new CacheImageInfo(this._base64, this.actualId, this.tmpId, this.imageUrl, this.file, this._referenceInfo, this._size, this._isLoaded, this._isSizeDefined);
16468
16486
  }
16469
16487
  shouldMakeImagePdfCompatible() {
16470
16488
  if ((0,common.isDefined)(this._convertedBase64))
@@ -19210,8 +19228,6 @@ class TableAlignmentApplier {
19210
19228
  offset = 0;
19211
19229
  break;
19212
19230
  }
19213
- if (offset <= 0)
19214
- return;
19215
19231
  TableAlignmentApplier.moveAllTable(currTableColumnInfo, (rect) => rect.x += offset);
19216
19232
  }
19217
19233
  static applyCellsVerticalAlignment(defaultTableCellProps, grid, currTableColumnInfo, rowInfo) {
@@ -19721,9 +19737,10 @@ class TabInfoBase {
19721
19737
  }
19722
19738
  }
19723
19739
  class TabInfo extends TabInfoBase {
19724
- constructor(position, alignment, leader, deleted, isDefault) {
19740
+ constructor(position, alignment, leader, deleted, isDefault, isParagraphIndent = false) {
19725
19741
  super(alignment, leader, deleted, isDefault);
19726
19742
  this.position = position;
19743
+ this.isParagraphIndent = isParagraphIndent;
19727
19744
  }
19728
19745
  equals(obj) {
19729
19746
  return super.equals(obj) && this.position == obj.position;
@@ -22661,6 +22678,7 @@ var ModelChangeType;
22661
22678
  ModelChangeType[ModelChangeType["TableCellInserted"] = 66] = "TableCellInserted";
22662
22679
  ModelChangeType[ModelChangeType["RangePermissionsChanged"] = 67] = "RangePermissionsChanged";
22663
22680
  ModelChangeType[ModelChangeType["RangePermissionsPropertiesChanged"] = 68] = "RangePermissionsPropertiesChanged";
22681
+ ModelChangeType[ModelChangeType["ZoomLevelChanged"] = 69] = "ZoomLevelChanged";
22664
22682
  })(ModelChangeType || (ModelChangeType = {}));
22665
22683
 
22666
22684
  ;// CONCATENATED MODULE: ./src/common/model/changes/sub-document/field/deleted.ts
@@ -22965,15 +22983,16 @@ class Field {
22965
22983
  return newInterval.start = Field.correctIntervalDueToFieldsCaseSelectionCollapsed(subDocument.fields, newInterval.start);
22966
22984
  const indexesInterval = Field.correctIntervalDueToFieldsWithoutUiChecks(subDocument, newInterval);
22967
22985
  utils_list.ListUtils.forEach(fields, (field) => {
22968
- if (field.getResultInterval().equals(newInterval) && !this.isFloatingObjectSelected(subDocument, newInterval))
22986
+ if (field.getResultInterval().equals(newInterval) && !this.isResizableObjectSelected(subDocument, newInterval))
22969
22987
  newInterval.expand(field.getAllFieldInterval());
22970
22988
  }, indexesInterval.start, indexesInterval.end);
22971
22989
  }
22972
- static isFloatingObjectSelected(subDocument, interval) {
22990
+ static isResizableObjectSelected(subDocument, interval) {
22973
22991
  if (interval.length !== 1)
22974
22992
  return false;
22975
22993
  const run = subDocument.getRunByPosition(interval.start);
22976
- return run && (run.getType() == RunType.AnchoredPictureRun || run.getType() == RunType.AnchoredTextBoxRun);
22994
+ const runType = run && run.getType();
22995
+ return runType == RunType.AnchoredPictureRun || runType == RunType.AnchoredTextBoxRun || runType == RunType.InlinePictureRun;
22977
22996
  }
22978
22997
  static correctWhenPositionInStartCode(fields, position) {
22979
22998
  if (fields.length < 1)
@@ -32162,6 +32181,14 @@ class LayoutOtherPageAreasInfo {
32162
32181
  }
32163
32182
  }
32164
32183
  class LayoutPage extends rectangle.Rectangle {
32184
+ get grids() {
32185
+ const result = new Map();
32186
+ for (let pageArea of this.mainSubDocumentPageAreas)
32187
+ pageArea.grids.forEach((grid, table) => result.set(table, grid));
32188
+ for (let pageArea of Object.values(this.otherPageAreas))
32189
+ pageArea.grids.forEach((grid, table) => result.set(table, grid));
32190
+ return result;
32191
+ }
32165
32192
  constructor() {
32166
32193
  super(0, 0, 0, 0);
32167
32194
  this.mainSubDocumentPageAreas = [];
@@ -34167,7 +34194,7 @@ class FieldsWaitingForUpdate {
34167
34194
  }
34168
34195
  if (!fieldParser.update(response)) {
34169
34196
  someFieldInCurrentInfoNotUpdated = true;
34170
- info.parsers.push(fieldParser);
34197
+ info.parsers.unshift(fieldParser);
34171
34198
  }
34172
34199
  else
34173
34200
  fieldParser.destructor();
@@ -36096,7 +36123,7 @@ function convertToCharacterPropertiesApi(properties, colorProvider) {
36096
36123
  return value;
36097
36124
  }
36098
36125
  function convertFromCharacterPropertiesApi(properties, fontInfoCache, parameterIndex, setRestAsUndefined, propsCoreTemplate) {
36099
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
36126
+ var _a, _b, _c, _d, _e, _f, _g, _h;
36100
36127
  properties = ApiParametersChecker.check(properties, parameterIndex, false, [
36101
36128
  ApiParametersChecker.objectDescriptor('properties', 'CharacterProperties', (val) => val)
36102
36129
  ]);
@@ -36116,31 +36143,27 @@ function convertFromCharacterPropertiesApi(properties, fontInfoCache, parameterI
36116
36143
  propsCoreTemplate.fontItalic = (_d = ApiParametersChecker.check(properties.italic, parameterIndex, true, [
36117
36144
  ApiParametersChecker.booleanDescriptor('properties.italic', (val) => val)
36118
36145
  ])) !== null && _d !== void 0 ? _d : propsCoreTemplate.fontItalic;
36119
- propsCoreTemplate.fontInfo = (_e = ApiParametersChecker.check(properties.fontName, parameterIndex, true, [
36120
- ApiParametersChecker.stringDescriptor('properties.fontName', (val) => {
36121
- const fontInfo = fontInfoCache.getItemByName(val);
36122
- if (!fontInfo)
36123
- throw Error('Unknown font name');
36124
- return fontInfo;
36125
- }, false)
36126
- ])) !== null && _e !== void 0 ? _e : propsCoreTemplate.fontInfo;
36127
- propsCoreTemplate.fontSize = (_f = ApiParametersChecker.check(properties.size, parameterIndex, true, [
36146
+ const fontInfo = ApiParametersChecker.check(properties.fontName, parameterIndex, true, [
36147
+ ApiParametersChecker.stringDescriptor('properties.fontName', (value) => fontInfoCache.getItemByName(value), false)
36148
+ ]);
36149
+ propsCoreTemplate.fontInfo = fontInfo === undefined ? propsCoreTemplate.fontInfo : fontInfo !== null && fontInfo !== void 0 ? fontInfo : fontInfoCache.addFont(properties.fontName, properties.fontName);
36150
+ propsCoreTemplate.fontSize = (_e = ApiParametersChecker.check(properties.size, parameterIndex, true, [
36128
36151
  ApiParametersChecker.numberDescriptor('properties.size', (val) => val, 0, 601)
36129
- ])) !== null && _f !== void 0 ? _f : propsCoreTemplate.fontSize;
36130
- propsCoreTemplate.hidden = (_g = ApiParametersChecker.check(properties.hidden, parameterIndex, true, [
36152
+ ])) !== null && _e !== void 0 ? _e : propsCoreTemplate.fontSize;
36153
+ propsCoreTemplate.hidden = (_f = ApiParametersChecker.check(properties.hidden, parameterIndex, true, [
36131
36154
  ApiParametersChecker.booleanDescriptor('properties.hidden', (val) => val)
36132
- ])) !== null && _g !== void 0 ? _g : propsCoreTemplate.hidden;
36155
+ ])) !== null && _f !== void 0 ? _f : propsCoreTemplate.hidden;
36133
36156
  const shadigInfoColor = ApiParametersChecker.check(properties.backColor, parameterIndex, true, ModelParametersChecker.colorDescriptors('properties.backColor'));
36134
36157
  propsCoreTemplate.shadingInfo = shadigInfoColor === undefined ? propsCoreTemplate.shadingInfo :
36135
36158
  ShadingInfo.createByColor(color_model_info_ColorModelInfo.makeByColor(shadigInfoColor));
36136
- propsCoreTemplate.script = (_h = ApiParametersChecker.check(properties.script, parameterIndex, true, [
36159
+ propsCoreTemplate.script = (_g = ApiParametersChecker.check(properties.script, parameterIndex, true, [
36137
36160
  ApiParametersChecker.enumDescriptor('properties.script', (val) => val, CharacterPropertiesScriptApi, 'CharacterPropertiesScript')
36138
- ])) !== null && _h !== void 0 ? _h : propsCoreTemplate.script;
36161
+ ])) !== null && _g !== void 0 ? _g : propsCoreTemplate.script;
36139
36162
  const underlineColor = ApiParametersChecker.check(properties.underlineColor, parameterIndex, true, ModelParametersChecker.colorDescriptors('properties.underlineColor'));
36140
36163
  propsCoreTemplate.underlineColor = underlineColor === undefined ? propsCoreTemplate.underlineColor : color_model_info_ColorModelInfo.makeByColor(underlineColor);
36141
- propsCoreTemplate.underlineWordsOnly = (_j = ApiParametersChecker.check(properties.underlineWordsOnly, parameterIndex, true, [
36164
+ propsCoreTemplate.underlineWordsOnly = (_h = ApiParametersChecker.check(properties.underlineWordsOnly, parameterIndex, true, [
36142
36165
  ApiParametersChecker.booleanDescriptor('properties.underlineWordsOnly', (val) => val)
36143
- ])) !== null && _j !== void 0 ? _j : propsCoreTemplate.underlineWordsOnly;
36166
+ ])) !== null && _h !== void 0 ? _h : propsCoreTemplate.underlineWordsOnly;
36144
36167
  const strikeout = ApiParametersChecker.check(properties.strikeout, parameterIndex, true, [
36145
36168
  ApiParametersChecker.booleanDescriptor('properties.strikeout', (val) => val)
36146
36169
  ]);
@@ -40501,7 +40524,7 @@ class CharacterPropertiesUseValueManipulator {
40501
40524
  constructor(manipulator) {
40502
40525
  this.manipulator = manipulator;
40503
40526
  }
40504
- setValue(subDocument, interval, newValue) {
40527
+ setValue(subDocument, interval, newValue, keepCustomFormatting = false) {
40505
40528
  var oldState = new HistoryItemIntervalState();
40506
40529
  if (!ControlOptions.isEnabled(subDocument.documentModel.options.characterFormatting))
40507
40530
  return oldState;
@@ -40511,7 +40534,7 @@ class CharacterPropertiesUseValueManipulator {
40511
40534
  var run = iterator.currentRun;
40512
40535
  oldState.register(new HistoryItemIntervalStateObject(iterator.currentInterval(), run.maskedCharacterProperties.getUseValueFull()));
40513
40536
  var properties = run.maskedCharacterProperties.clone();
40514
- properties.setUseValueFull(newValue);
40537
+ properties.setUseValueFull(newValue, keepCustomFormatting);
40515
40538
  run.setCharacterProperties(properties);
40516
40539
  run.onCharacterPropertiesChanged();
40517
40540
  }
@@ -43195,7 +43218,7 @@ class PictureManipulator extends RunsBaseManipulator {
43195
43218
  this.history.addTransaction(() => {
43196
43219
  this.modelManipulator.range.removeInterval(new SubDocumentInterval(subDocument, interval), true, false);
43197
43220
  const newInfo = new InlinePictureInfo(pictureRun.size.clone(), new Shape(), -1, pictureRun.info.containerProperties, pictureRun.info.nonVisualDrawingProperties);
43198
- this.modelManipulator.picture.insertInlinePictureViaHistory(new SubDocumentPosition(subDocument, interval.start), charPropsBundle, newInfo);
43221
+ this.modelManipulator.picture.insertInlinePictureViaHistory(new SubDocumentPosition(subDocument, interval.start), charPropsBundle, newInfo, new ImageLoadingOptions(!pictureRun.cacheInfo.isSizeDefined));
43199
43222
  });
43200
43223
  }
43201
43224
  }
@@ -43210,7 +43233,7 @@ class PictureManipulator extends RunsBaseManipulator {
43210
43233
  anchorInfo.zOrder = this.modelManipulator.floatingObject.zOrder.getNewZOrder(subDocument);
43211
43234
  this.modelManipulator.range.removeInterval(new SubDocumentInterval(subDocument, interval), true, false);
43212
43235
  const newInfo = new AnchorPictureInfo(pictureRun.size.clone(), new Shape(), anchorInfo, pictureRun.info.containerProperties, pictureRun.info.nonVisualDrawingProperties);
43213
- this.modelManipulator.picture.insertAnchoredPictureViaHistory(new SubDocumentPosition(subDocument, interval.start), charPropsBundle, newInfo, new ImageLoadingOptions(false));
43236
+ this.modelManipulator.picture.insertAnchoredPictureViaHistory(new SubDocumentPosition(subDocument, interval.start), charPropsBundle, newInfo, new ImageLoadingOptions(!pictureRun.cacheInfo.isSizeDefined));
43214
43237
  run = subDocument.getRunByPosition(interval.start);
43215
43238
  }
43216
43239
  let anchoredRun = run.getType() == RunType.AnchoredPictureRun ? run : run;
@@ -45979,6 +46002,10 @@ class ModelManipulator {
45979
46002
  notifyModelChanged(change) {
45980
46003
  this.modelListeners.forEach(listener => listener.modelChanged(change));
45981
46004
  }
46005
+ addModelListener(listener) {
46006
+ if (this.modelListeners.indexOf(listener) < 0)
46007
+ this.modelListeners.push(listener);
46008
+ }
45982
46009
  removeModelListener(listener) {
45983
46010
  const index = this.modelListeners.indexOf(listener);
45984
46011
  if (index >= 0)
@@ -50040,11 +50067,13 @@ class RtfStyleExporter {
50040
50067
 
50041
50068
 
50042
50069
 
50070
+
50043
50071
  class RtfTableExporterStateBase {
50044
- constructor(rtfExporter, table, nestingLevel) {
50072
+ constructor(rtfExporter, table, grid, nestingLevel) {
50045
50073
  this.rtfExporter = rtfExporter;
50046
50074
  this._nestingLevel = nestingLevel;
50047
50075
  this.table = table;
50076
+ this.grid = grid;
50048
50077
  this.tableRowPropertiesExporter = new RtfTableRowPropertiesExporter(rtfExporter.documentModel, rtfExporter.rtfExportHelper, rtfExporter.rtfBuilder);
50049
50078
  this.tableCellPropertiesExporter = new RtfTableCellPropertiesExporter(rtfExporter.documentModel, rtfExporter.rtfExportHelper, rtfExporter.rtfBuilder);
50050
50079
  this.tablePropertiesExporter = new RtfTablePropertiesExporter(rtfExporter.documentModel, rtfExporter.rtfExportHelper, rtfExporter.rtfBuilder);
@@ -50119,7 +50148,7 @@ class RtfTableExporterStateBase {
50119
50148
  while (parentCell !== nestedTable.parentCell) {
50120
50149
  nestedTable = nestedTable.parentCell.parentRow.parentTable;
50121
50150
  }
50122
- return RtfTableExporter.exportNestedTable(this.rtfExporter, nestedTable, this.nestingLevel + 1);
50151
+ return RtfTableExporter.exportNestedTable(this.rtfExporter, nestedTable, this.grid, this.nestingLevel + 1);
50123
50152
  }
50124
50153
  exportRowProperties(row, rowIndex) {
50125
50154
  const rowLeft = this.calculateRowLeft(row, row.parentTable.getActualTableIndent(this.documentModel.defaultTableProperties));
@@ -50127,20 +50156,25 @@ class RtfTableExporterStateBase {
50127
50156
  let cellRightVirtualColInd = row.gridBefore;
50128
50157
  for (const cell of row.cells) {
50129
50158
  cellRightVirtualColInd += cell.columnSpan;
50130
- const cellRight = rowLeft + this.getCellWidth(cellRightVirtualColInd);
50159
+ const cellWidth = this.getCellWidth(row.gridBefore, cellRightVirtualColInd);
50160
+ const cellRight = unit_converter/* UnitConverter */.u.pixelsToTwips(rowLeft + cellWidth);
50131
50161
  this.exportCellProperties(cell, cellRight);
50132
50162
  }
50133
50163
  }
50134
- getCellWidth(virtualColumnIndex) {
50135
- if (virtualColumnIndex < 0)
50164
+ getCellWidth(leftSideIndex, columnSpan) {
50165
+ if (leftSideIndex < 0 || columnSpan < 0)
50136
50166
  throw new Error(lib_errors/* Errors */.D.InternalException);
50137
- const minVirtualColumnWidth = 10;
50138
- return virtualColumnIndex * minVirtualColumnWidth;
50167
+ let result = 0;
50168
+ for (let i = 0; i < columnSpan; i++)
50169
+ result += Math.max(this.grid.columns.width[i + leftSideIndex], 1);
50170
+ return result;
50139
50171
  }
50140
50172
  calculateRowLeft(row, indent) {
50141
- const widthBefore = row.gridBefore > 0 ? this.getCellWidth(row.gridBefore) : 0;
50173
+ var _a;
50174
+ const widthBefore = row.gridBefore > 0 ? this.getCellWidth(0, row.gridBefore) : 0;
50142
50175
  const offset = this.getActualWidth(indent) + widthBefore;
50143
- return offset - (this.rowLeftOffset != null ? this.rowLeftOffset : this.calculateRowLeftOffset(row));
50176
+ const rowLeftOffset = (_a = this.rowLeftOffset) !== null && _a !== void 0 ? _a : this.calculateRowLeftOffset(row);
50177
+ return offset - rowLeftOffset;
50144
50178
  }
50145
50179
  calculateRowLeftOffset(row) {
50146
50180
  const borderWidth = row.cells[0].properties.borders.left.width;
@@ -50250,8 +50284,8 @@ class RtfTableExporterStateBase {
50250
50284
 
50251
50285
 
50252
50286
  class RtfNestedTableExporterState extends RtfTableExporterStateBase {
50253
- constructor(rtfExporter, table, nestingLevel) {
50254
- super(rtfExporter, table, nestingLevel);
50287
+ constructor(rtfExporter, table, grid, nestingLevel) {
50288
+ super(rtfExporter, table, grid, nestingLevel);
50255
50289
  }
50256
50290
  export() {
50257
50291
  super.exportBase();
@@ -50280,8 +50314,8 @@ class RtfNestedTableExporterState extends RtfTableExporterStateBase {
50280
50314
 
50281
50315
 
50282
50316
  class RtfTableExporterState extends RtfTableExporterStateBase {
50283
- constructor(rtfExporter, table) {
50284
- super(rtfExporter, table, 1);
50317
+ constructor(rtfExporter, table, grid) {
50318
+ super(rtfExporter, table, grid, 1);
50285
50319
  }
50286
50320
  export() {
50287
50321
  super.exportBase();
@@ -50300,13 +50334,13 @@ class RtfTableExporterState extends RtfTableExporterStateBase {
50300
50334
 
50301
50335
 
50302
50336
  class RtfTableExporter {
50303
- static exportTable(rtfContentExporter, table) {
50304
- new RtfTableExporterState(rtfContentExporter, table).export();
50337
+ static exportTable(rtfContentExporter, table, grid) {
50338
+ new RtfTableExporterState(rtfContentExporter, table, grid).export();
50305
50339
  rtfContentExporter.tableIterator.update(table.getEndPosition());
50306
50340
  return rtfContentExporter.subDocument.getParagraphIndexByPosition(table.getEndPosition() - 1);
50307
50341
  }
50308
- static exportNestedTable(rtfContentExporter, table, nestingLevel) {
50309
- new RtfNestedTableExporterState(rtfContentExporter, table, nestingLevel).export();
50342
+ static exportNestedTable(rtfContentExporter, table, grid, nestingLevel) {
50343
+ new RtfNestedTableExporterState(rtfContentExporter, table, grid, nestingLevel).export();
50310
50344
  rtfContentExporter.tableIterator.update(table.getEndPosition());
50311
50345
  return rtfContentExporter.subDocument.getParagraphIndexByPosition(table.getEndPosition() - 1);
50312
50346
  }
@@ -50352,17 +50386,18 @@ class RtfTableExporter {
50352
50386
  class RtfContentExporter {
50353
50387
  get shouldExportHiddenText() { return true; }
50354
50388
  ;
50355
- constructor(documentModel, options, rtfExportHelper) {
50389
+ get documentModel() { return this.exportModelOptions.modelManager.modelManipulator.model; }
50390
+ constructor(exportModelOptions, options, rtfExportHelper) {
50356
50391
  this.shouldFourceUpdateIterators = false;
50357
- this.documentModel = documentModel;
50392
+ this.exportModelOptions = exportModelOptions;
50358
50393
  this.subDocument = this.documentModel.mainSubDocument;
50359
50394
  this.pieceTableNumberingListCounters = new PieceTableNumberingListCountersManager();
50360
50395
  this.rtfExportHelper = rtfExportHelper;
50361
50396
  this.options = options;
50362
50397
  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);
50398
+ this.paragraphPropertiesExporter = new RtfParagraphPropertiesExporter(this.documentModel, rtfExportHelper, this.rtfBuilder);
50399
+ this.characterPropertiesExporter = new RtfCharacterPropertiesExporter(this.documentModel, rtfExportHelper, this.rtfBuilder, options);
50400
+ this.sectionPropertiesExporter = new RtfSectionPropertiesExporter(this.documentModel, rtfExportHelper, this.rtfBuilder);
50366
50401
  this.runHandlerMap = new MapCreator()
50367
50402
  .add(RunType.TextRun, this.exportTextRun)
50368
50403
  .add(RunType.FieldCodeStartRun, this.fieldCodeStartRunHandler)
@@ -50572,7 +50607,7 @@ class RtfContentExporter {
50572
50607
  value = "00000000";
50573
50608
  }
50574
50609
  else {
50575
- const view = new DataView(hash, 0);
50610
+ const view = new DataView(hash.buffer, 0);
50576
50611
  const hashValue = view.getInt32(0);
50577
50612
  value = this.documentModel.simpleFormattersManager.formatString("{0:x8}", hashValue);
50578
50613
  }
@@ -50748,11 +50783,14 @@ class RtfContentExporter {
50748
50783
  this.exportSingleParagraph(paragraph);
50749
50784
  return paragraphIndex;
50750
50785
  }
50751
- else
50752
- return RtfTableExporter.exportTable(this, tablesInfo[0].table.getTopLevelParent()) - this.startSectionParagraphIndex;
50786
+ else {
50787
+ const table = tablesInfo[0].table.getTopLevelParent();
50788
+ const grid = this.exportModelOptions.grids.get(table);
50789
+ return RtfTableExporter.exportTable(this, table, grid) - this.startSectionParagraphIndex;
50790
+ }
50753
50791
  }
50754
50792
  exportSingleParagraph(paragraph) {
50755
- this.exportParagraphCore(paragraph, 0, 0, -1);
50793
+ this.exportParagraphCore(paragraph, 0, ConditionalTableStyleFormatting.None, -1);
50756
50794
  this.finishParagraph(paragraph);
50757
50795
  }
50758
50796
  finishParagraph(paragraph) {
@@ -51282,11 +51320,11 @@ class RtfExportHelper {
51282
51320
 
51283
51321
  class RtfExporter {
51284
51322
  get documentModel() { return this.modelManipulator.model; }
51285
- constructor(modelManipulator, options) {
51286
- this.modelManipulator = modelManipulator;
51323
+ constructor(exportModelOptions, options) {
51324
+ this.modelManipulator = exportModelOptions.modelManager.modelManipulator;
51287
51325
  this.options = options;
51288
51326
  this.rtfExportHelper = new RtfExportHelper();
51289
- this.contentExporter = new RtfContentExporter(this.documentModel, options, this.rtfExportHelper);
51327
+ this.contentExporter = new RtfContentExporter(exportModelOptions, options, this.rtfExportHelper);
51290
51328
  this.rtfBuilder = this.contentExporter.createRtfBuilder();
51291
51329
  }
51292
51330
  exportToBlob(callback) {
@@ -51698,6 +51736,7 @@ NumberingHelper.templateCodeEnd = 0x7FFFFFFF;
51698
51736
 
51699
51737
 
51700
51738
 
51739
+
51701
51740
 
51702
51741
 
51703
51742
  class ModelCreator {
@@ -51795,6 +51834,11 @@ class ModelCreator {
51795
51834
  }
51796
51835
  if (this.options.fillTableStyles) {
51797
51836
  const tableConditionalStyle = new TableConditionalStyle(templateTableProp, templateTableRowProp, templateTableCellProp, templateParProp, templateCharProps, templateTabProp);
51837
+ tableConditionalStyle.tableProperties.cellMargins.left.type = TableWidthUnitType.ModelUnits;
51838
+ tableConditionalStyle.tableProperties.cellMargins.left.value = 108;
51839
+ tableConditionalStyle.tableProperties.cellMargins.right.type = TableWidthUnitType.ModelUnits;
51840
+ tableConditionalStyle.tableProperties.cellMargins.right.value = 108;
51841
+ tableConditionalStyle.tableProperties.mask = TablePropertiesMask.UseLeftMargin | TablePropertiesMask.UseRightMargin;
51798
51842
  model.stylesManager.addTableStyle(new TableStyle(TableStyle.DEFAULT_STYLENAME, TableStyle.DEFAULT_STYLENAME, false, false, false, true, {}, tableConditionalStyle, null));
51799
51843
  }
51800
51844
  if (this.options.initOfficeTheme)
@@ -61276,6 +61320,98 @@ class RtfTableColumnsCalculator {
61276
61320
  }
61277
61321
  }
61278
61322
 
61323
+ ;// CONCATENATED MODULE: ./src/common/formats/rtf/import/table/normalization/apply-use-values.ts
61324
+
61325
+
61326
+
61327
+ function applyTablePropertiesUseValues(props, styleProps) {
61328
+ props.mask = TablePropertiesMask.UseNone;
61329
+ if (!props.borders.left.equals(styleProps.borders.left))
61330
+ props.setUseValue(TablePropertiesMask.UseLeftBorder, true);
61331
+ if (!props.borders.top.equals(styleProps.borders.top))
61332
+ props.setUseValue(TablePropertiesMask.UseTopBorder, true);
61333
+ if (!props.borders.right.equals(styleProps.borders.right))
61334
+ props.setUseValue(TablePropertiesMask.UseRightBorder, true);
61335
+ if (!props.borders.bottom.equals(styleProps.borders.bottom))
61336
+ props.setUseValue(TablePropertiesMask.UseBottomBorder, true);
61337
+ if (!props.borders.insideHorizontal.equals(styleProps.borders.insideHorizontal))
61338
+ props.setUseValue(TablePropertiesMask.UseInsideHorizontalBorder, true);
61339
+ if (!props.borders.insideVertical.equals(styleProps.borders.insideVertical))
61340
+ props.setUseValue(TablePropertiesMask.UseInsideVerticalBorder, true);
61341
+ if (!props.cellMargins.left.equals(styleProps.cellMargins.left))
61342
+ props.setUseValue(TablePropertiesMask.UseLeftMargin, true);
61343
+ if (!props.cellMargins.top.equals(styleProps.cellMargins.top))
61344
+ props.setUseValue(TablePropertiesMask.UseTopMargin, true);
61345
+ if (!props.cellMargins.right.equals(styleProps.cellMargins.right))
61346
+ props.setUseValue(TablePropertiesMask.UseRightMargin, true);
61347
+ if (!props.cellMargins.bottom.equals(styleProps.cellMargins.bottom))
61348
+ props.setUseValue(TablePropertiesMask.UseBottomMargin, true);
61349
+ if (!props.cellSpacing.equals(styleProps.cellSpacing))
61350
+ props.setUseValue(TablePropertiesMask.UseCellSpacing, true);
61351
+ if (!props.indent.equals(styleProps.indent))
61352
+ props.setUseValue(TablePropertiesMask.UseTableIndent, true);
61353
+ if (props.tableStyleColumnBandSize != styleProps.tableStyleColumnBandSize)
61354
+ props.setUseValue(TablePropertiesMask.UseTableStyleColBandSize, true);
61355
+ if (props.tableStyleRowBandSize != styleProps.tableStyleRowBandSize)
61356
+ props.setUseValue(TablePropertiesMask.UseTableStyleRowBandSize, true);
61357
+ if (props.avoidDoubleBorders != styleProps.avoidDoubleBorders)
61358
+ props.setUseValue(TablePropertiesMask.UseAvoidDoubleBorders, true);
61359
+ if (props.layoutType != styleProps.layoutType)
61360
+ props.setUseValue(TablePropertiesMask.UseTableLayout, true);
61361
+ if (!props.shadingInfo.equals(styleProps.shadingInfo))
61362
+ props.setUseValue(TablePropertiesMask.UseShadingInfoIndex, true);
61363
+ if (props.tableRowAlignment != styleProps.tableRowAlignment)
61364
+ props.setUseValue(TablePropertiesMask.UseTableAlignment, true);
61365
+ if (props.isTableOverlap != styleProps.isTableOverlap)
61366
+ props.setUseValue(TablePropertiesMask.UseIsTableOverlap, true);
61367
+ }
61368
+ function applyTableRowPropertiesUseValues(props, styleProps) {
61369
+ props.mask = TableRowPropertiesMask.UseNone;
61370
+ if (!props.cellSpacing.equals(styleProps.cellSpacing))
61371
+ props.setUseValue(TableRowPropertiesMask.UseCellSpacing, true);
61372
+ if (props.cantSplit != styleProps.cantSplit)
61373
+ props.setUseValue(TableRowPropertiesMask.UseCantSplit, true);
61374
+ if (props.hideCellMark != styleProps.hideCellMark)
61375
+ props.setUseValue(TableRowPropertiesMask.UseHideCellMark, true);
61376
+ if (props.tableRowAlignment != styleProps.tableRowAlignment)
61377
+ props.setUseValue(TableRowPropertiesMask.UseTableRowAlignment, true);
61378
+ if (props.header != styleProps.header)
61379
+ props.setUseValue(TableRowPropertiesMask.UseHeader, true);
61380
+ if (props.divId != styleProps.divId)
61381
+ props.setUseValue(TableRowPropertiesMask.UseDivId, true);
61382
+ }
61383
+ function applyTableCellPropertiesUseValues(props, styleProps) {
61384
+ props.mask = TableCellPropertiesMask.UseNone;
61385
+ if (!props.cellMargins.left.equals(styleProps.cellMargins.left))
61386
+ props.setUseValue(TableCellPropertiesMask.UseLeftMargin, true);
61387
+ if (!props.cellMargins.top.equals(styleProps.cellMargins.top))
61388
+ props.setUseValue(TableCellPropertiesMask.UseTopMargin, true);
61389
+ if (!props.cellMargins.bottom.equals(styleProps.cellMargins.bottom))
61390
+ props.setUseValue(TableCellPropertiesMask.UseBottomMargin, true);
61391
+ if (!props.cellMargins.right.equals(styleProps.cellMargins.right))
61392
+ props.setUseValue(TableCellPropertiesMask.UseRightMargin, true);
61393
+ if (!props.borders.left.equals(styleProps.borders.left))
61394
+ props.setUseValue(TableCellPropertiesMask.UseLeftBorder, true);
61395
+ if (!props.borders.top.equals(styleProps.borders.top))
61396
+ props.setUseValue(TableCellPropertiesMask.UseTopBorder, true);
61397
+ if (!props.borders.bottom.equals(styleProps.borders.bottom))
61398
+ props.setUseValue(TableCellPropertiesMask.UseBottomBorder, true);
61399
+ if (!props.borders.right.equals(styleProps.borders.right))
61400
+ props.setUseValue(TableCellPropertiesMask.UseRightBorder, true);
61401
+ if (props.hideCellMark != styleProps.hideCellMark)
61402
+ props.setUseValue(TableCellPropertiesMask.UseHideCellMark, true);
61403
+ if (props.noWrap != styleProps.noWrap)
61404
+ props.setUseValue(TableCellPropertiesMask.UseNoWrap, true);
61405
+ if (props.fitText != styleProps.fitText)
61406
+ props.setUseValue(TableCellPropertiesMask.UseFitText, true);
61407
+ if (props.textDirection != styleProps.textDirection)
61408
+ props.setUseValue(TableCellPropertiesMask.UseTextDirection, true);
61409
+ if (props.verticalAlignment != styleProps.verticalAlignment)
61410
+ props.setUseValue(TableCellPropertiesMask.UseVerticalAlignment, true);
61411
+ if (!props.shadingInfo.equals(styleProps.shadingInfo))
61412
+ props.setUseValue(TableCellPropertiesMask.UseShadingInfoIndex, true);
61413
+ }
61414
+
61279
61415
  ;// CONCATENATED MODULE: ./src/common/formats/rtf/import/table/table-converter.ts
61280
61416
 
61281
61417
 
@@ -61286,6 +61422,7 @@ class RtfTableColumnsCalculator {
61286
61422
 
61287
61423
 
61288
61424
 
61425
+
61289
61426
  class RtfTableConverter {
61290
61427
  constructor(tableReader) {
61291
61428
  this.rtfCellMap = {};
@@ -61333,8 +61470,9 @@ class RtfTableConverter {
61333
61470
  tablePreferredWidth.type = TableWidthUnitType.Auto;
61334
61471
  tablePreferredWidth.value = 0;
61335
61472
  }
61336
- if (!table.properties.coreProperties.getUseValue(TablePropertiesMask.UseRightMargin) &&
61337
- !table.properties.coreProperties.getUseValue(TablePropertiesMask.UseLeftMargin) && table.properties.useHalfSpace) {
61473
+ const useMargins = table.properties.coreProperties.getUseValue(TablePropertiesMask.UseLeftMargin) &&
61474
+ table.properties.coreProperties.getUseValue(TablePropertiesMask.UseRightMargin);
61475
+ if (!useMargins && table.properties.useHalfSpace) {
61338
61476
  const margin = table.properties.halfSpace;
61339
61477
  table.properties.coreProperties.cellMargins.left.type = TableWidthUnitType.ModelUnits;
61340
61478
  table.properties.coreProperties.cellMargins.left.value = margin;
@@ -61378,6 +61516,7 @@ class RtfTableConverter {
61378
61516
  return 0;
61379
61517
  }
61380
61518
  convertTableCore(table, rtfTable) {
61519
+ applyTablePropertiesUseValues(table.properties, table.style.baseConditionalStyle.tableProperties);
61381
61520
  const tableGrid = this.calculateTableGrid(rtfTable);
61382
61521
  const rows = table.rows;
61383
61522
  const tableLayoutType = table.properties.layoutType;
@@ -61480,6 +61619,7 @@ class RtfTableConverter {
61480
61619
  return result;
61481
61620
  }
61482
61621
  convertRow(row, rtfRow) {
61622
+ applyTableRowPropertiesUseValues(row.properties, row.parentTable.style.baseConditionalStyle.tableRowProperties);
61483
61623
  const rtfCells = rtfRow.cells;
61484
61624
  for (let i = 0; i < rtfCells.length; i++)
61485
61625
  this.convertCell(row, rtfCells[i]);
@@ -61488,6 +61628,7 @@ class RtfTableConverter {
61488
61628
  if (rtfCell.properties.horizontalMerging == TableCellMergingState.Restart)
61489
61629
  this.mergeCells(rtfCell);
61490
61630
  const cell = rtfCell.createCell(row, this.subDocument);
61631
+ applyTableCellPropertiesUseValues(cell.properties, cell.parentRow.parentTable.style.baseConditionalStyle.tableCellProperties);
61491
61632
  row.cells.push(cell);
61492
61633
  this.rtfCellMap[rtfCell.idForParentCellMap] = cell;
61493
61634
  }
@@ -65405,10 +65546,11 @@ function getAfterInsertReject(callback) {
65405
65546
 
65406
65547
 
65407
65548
 
65408
- function getRtfFromSubDocumentPublic(richOptions, subDocument, coreInterval) {
65549
+ function getRtfFromSubDocumentPublic(processor, subDocument, coreInterval) {
65409
65550
  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();
65551
+ const newModelManager = new ClientModelManager(rangeCopy.model, processor.modelManager.richOptions, new batch_updatable/* EmptyBatchUpdatableObject */.m1());
65552
+ const exportModelOptions = processor.getExportModelOptions({ modelManager: newModelManager });
65553
+ return new RtfExporter(exportModelOptions, new RtfDocumentExporterOptions()).exportAsString();
65412
65554
  }
65413
65555
  function insertRtfInSubDocumentPublic(processor, subDocument, position, rtf, callback) {
65414
65556
  const options = new RtfImporterOptions(() => { });
@@ -70633,9 +70775,104 @@ var SelectionBatchUpdateEvents;
70633
70775
  SelectionBatchUpdateEvents[SelectionBatchUpdateEvents["MisspelledSelectionChanged"] = 8] = "MisspelledSelectionChanged";
70634
70776
  })(SelectionBatchUpdateEvents || (SelectionBatchUpdateEvents = {}));
70635
70777
 
70778
+ ;// CONCATENATED MODULE: ./src/common/utils/mixed-size.ts
70779
+
70780
+ class MixedSize {
70781
+ constructor() {
70782
+ this._UISizePart = 0;
70783
+ this._layoutSizePart = 0;
70784
+ this._scale = 1;
70785
+ this._scaleIsSpecified = false;
70786
+ }
70787
+ static fromLayout(value) {
70788
+ return new MixedSize().addLayoutSize(value);
70789
+ }
70790
+ static fromUI(value) {
70791
+ return new MixedSize().addUISize(value);
70792
+ }
70793
+ get UISize() {
70794
+ this.checkScaleIsSpecified();
70795
+ if (!(0,common.isDefined)(this._UISize))
70796
+ this._UISize = this._layoutSizePart * this._scale + this._UISizePart;
70797
+ return this._UISize;
70798
+ }
70799
+ get LayoutSize() {
70800
+ this.checkScaleIsSpecified();
70801
+ if (!(0,common.isDefined)(this._layoutSize))
70802
+ this._layoutSize = this._layoutSizePart + this._UISizePart / this._scale;
70803
+ return this._layoutSize;
70804
+ }
70805
+ get UISizePart() {
70806
+ return this._UISizePart;
70807
+ }
70808
+ set UISizePart(value) {
70809
+ this._UISizePart = value;
70810
+ this.onSizeChanged();
70811
+ }
70812
+ get LayoutSizePart() {
70813
+ return this._layoutSizePart;
70814
+ }
70815
+ set LayoutSizePart(value) {
70816
+ this._layoutSizePart = value;
70817
+ this.onSizeChanged();
70818
+ }
70819
+ onSizeChanged() {
70820
+ this._UISize = null;
70821
+ this._layoutSize = null;
70822
+ }
70823
+ addUISize(value) {
70824
+ this.UISizePart += value;
70825
+ return this;
70826
+ }
70827
+ addLayoutSize(value) {
70828
+ this.LayoutSizePart += value;
70829
+ return this;
70830
+ }
70831
+ addSize(value) {
70832
+ this.checkSizeHasSameScale(value);
70833
+ this.addLayoutSize(value._layoutSizePart);
70834
+ this.addUISize(value._UISizePart);
70835
+ return this;
70836
+ }
70837
+ subtractUISize(value) {
70838
+ this.UISizePart -= value;
70839
+ return this;
70840
+ }
70841
+ subtractLayoutSize(value) {
70842
+ this.LayoutSizePart -= value;
70843
+ return this;
70844
+ }
70845
+ subtractSize(value) {
70846
+ this.checkSizeHasSameScale(value);
70847
+ this.subtractLayoutSize(value._layoutSizePart);
70848
+ this.subtractUISize(value._UISizePart);
70849
+ return this;
70850
+ }
70851
+ checkSizeHasSameScale(size) {
70852
+ if (size._scaleIsSpecified && size._scale !== this._scale)
70853
+ throw new Error("The size has a different scale and cannot be added.");
70854
+ }
70855
+ checkScaleIsSpecified() {
70856
+ if (!this._scaleIsSpecified)
70857
+ console.warn("MixedSize is used without specifying the scale.");
70858
+ }
70859
+ useScale(value) {
70860
+ this._scale = value;
70861
+ this._scaleIsSpecified = true;
70862
+ return this;
70863
+ }
70864
+ clear() {
70865
+ this.UISizePart = 0;
70866
+ this.LayoutSizePart = 0;
70867
+ return this;
70868
+ }
70869
+ }
70870
+
70636
70871
  ;// CONCATENATED MODULE: ./src/common/layout/document-layout.ts
70637
70872
 
70638
70873
 
70874
+
70875
+
70639
70876
  class ModelPositionHolder {
70640
70877
  constructor(pos, posManager) {
70641
70878
  this.pos = posManager.registerPosition(pos);
@@ -70673,6 +70910,12 @@ class AnchorObjectsPositionInfo {
70673
70910
  }
70674
70911
  }
70675
70912
  class DocumentLayout {
70913
+ get grids() {
70914
+ return this.pages.reduce((res, page) => {
70915
+ page.grids.forEach((grid, table) => res.set(table, grid));
70916
+ return res;
70917
+ }, new Map());
70918
+ }
70676
70919
  constructor(anchorObjectsPositionInfo) {
70677
70920
  this.anchorObjectsPositionInfo = anchorObjectsPositionInfo;
70678
70921
  this.setEmptyLayout(ColorHelper.NO_COLOR);
@@ -70694,6 +70937,11 @@ class DocumentLayout {
70694
70937
  getPageBySubDocumentId(subDocumentId) {
70695
70938
  return this.pages.find((page) => !!page.mainSubDocumentPageAreas[subDocumentId] || !!page.otherPageAreas[subDocumentId]);
70696
70939
  }
70940
+ findPageIndexByOffsetY(offsetY, sizeInfo) {
70941
+ const getPageOffsetY = (p) => MixedSize.fromLayout(sizeInfo.getPageOffsetY(p)).useScale(sizeInfo.zoomLevel).UISize;
70942
+ const normedInterpolationIndex = search.SearchUtils.normedInterpolationIndexOf(this.pages, getPageOffsetY, offsetY);
70943
+ return Math.max(0, normedInterpolationIndex);
70944
+ }
70697
70945
  }
70698
70946
 
70699
70947
  ;// CONCATENATED MODULE: ./src/client/model-api/table/enums.ts
@@ -81673,10 +81921,12 @@ class ParagraphSpacingDestination extends ParagraphFormattingLeafElementDestinat
81673
81921
  const spacingBefore = this.data.readerHelper.getWpSTIntegerValue(reader, 'before', constants.Constants.MIN_SAFE_INTEGER);
81674
81922
  if (spacingBefore >= 0)
81675
81923
  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));
81924
+ const beforeAutoSpacing = this.data.readerHelper.getWpSTOnOffValue(reader, 'beforeAutospacing', null);
81925
+ if (spacingBefore == -1 || beforeAutoSpacing != null)
81926
+ this.paragraphProperties.setValue(ParagraphPropertyDescriptor.beforeAutoSpacing, spacingBefore == -1 || beforeAutoSpacing);
81927
+ const afterAutoSpacing = this.data.readerHelper.getWpSTOnOffValue(reader, 'afterAutospacing', null);
81928
+ if (spacingAfter == -1 || afterAutoSpacing != null)
81929
+ this.paragraphProperties.setValue(ParagraphPropertyDescriptor.afterAutoSpacing, spacingAfter == -1 || afterAutoSpacing);
81680
81930
  const lineSpacing = this.data.readerHelper.getWpSTIntegerValue(reader, 'line', constants.Constants.MIN_SAFE_INTEGER);
81681
81931
  if (lineSpacing != constants.Constants.MIN_SAFE_INTEGER && lineSpacing > 0) {
81682
81932
  const attribute = new WordProcessingMLValue('lineRule', 'line-rule');
@@ -84710,7 +84960,7 @@ class ImagesApi {
84710
84960
  applyVerticalPosition(verticalPosition, anchorInfo);
84711
84961
  const anchorPictureInfo = new AnchorPictureInfo(new PictureSize(true, 0, cacheInfo, new geometry_size.Size(100, 100)), shape, anchorInfo, new NonVisualDrawingObjectInfo(), new NonVisualDrawingObjectInfo());
84712
84962
  anchorPictureInfo.containerProperties.description = options.description;
84713
- this._processor.modelManager.modelManipulator.picture.insertAnchoredPictureViaHistory(new SubDocumentPosition(this._subDocument, position), inputPos.charPropsBundle, anchorPictureInfo, new ImageLoadingOptions(false, size ? new geometry_size.Size(size.width, size.height) : undefined, (_picInterval, _cacheInfo) => setTimeout(() => {
84963
+ this._processor.modelManager.modelManipulator.picture.insertAnchoredPictureViaHistory(new SubDocumentPosition(this._subDocument, position), inputPos.charPropsBundle, anchorPictureInfo, ImageLoadingOptions.initByActualSize(size ? new geometry_size.Size(size.width, size.height) : undefined, (_picInterval, _cacheInfo) => setTimeout(() => {
84714
84964
  callback(getFloatingImageApiFromRun(this._processor, this._subDocument, this._subDocument.getRunAndIndexesByPosition(position)));
84715
84965
  }, 0)));
84716
84966
  this._processor.endUpdate();
@@ -85288,7 +85538,7 @@ class SubDocumentApi {
85288
85538
  }
85289
85539
  getRtf(interval) {
85290
85540
  const coreInterval = this._checkInterval(interval);
85291
- return getRtfFromSubDocumentPublic(this._processor.modelManager.richOptions, this._subDocument, coreInterval);
85541
+ return getRtfFromSubDocumentPublic(this._processor, this._subDocument, coreInterval);
85292
85542
  }
85293
85543
  insertContent(position, content, documentFormat, callback) {
85294
85544
  position = ApiParametersChecker.check(position, 1, false, [
@@ -85740,6 +85990,191 @@ class sub_documents_collection_SubDocumentCollection extends Collection {
85740
85990
  }
85741
85991
  }
85742
85992
 
85993
+ ;// CONCATENATED MODULE: ./src/common/model/fonts/google-fonts.ts
85994
+
85995
+
85996
+
85997
+
85998
+
85999
+ class GoogleFontsApi {
86000
+ constructor(controlFontsCache, fonts) {
86001
+ this.fontFamilyToFontInfo = {};
86002
+ this.fonts = fonts;
86003
+ this.controlFontsCache = controlFontsCache;
86004
+ const params = this.fonts.map(font => {
86005
+ const fontFamily = font.getFontFamilies()[0];
86006
+ this.fontFamilyToFontInfo[fontFamily] = font;
86007
+ return `${fontFamily.replace(' ', '+')}:regular,bold,italic,bolditalic`;
86008
+ }).join('|');
86009
+ this.uri = `https://fonts.googleapis.com/css?family=${params}`;
86010
+ }
86011
+ loadControlFonts(callback) {
86012
+ const notLoaded = () => callback([]);
86013
+ const xhr = new XMLHttpRequest();
86014
+ xhr.onload = (_e) => {
86015
+ const responce = xhr.response;
86016
+ if (xhr.status >= 400 || !responce)
86017
+ notLoaded();
86018
+ else
86019
+ callback(this.parseResponce(responce));
86020
+ };
86021
+ xhr.onerror = () => notLoaded();
86022
+ xhr.open("GET", this.uri, true);
86023
+ xhr.responseType = "text";
86024
+ xhr.send();
86025
+ }
86026
+ parseResponce(responce) {
86027
+ const result = [];
86028
+ let regexpResult;
86029
+ const regexp = /@font-face\s*\{([\s\S]*?)\}/gm;
86030
+ while (regexpResult = regexp.exec(responce)) {
86031
+ const fontInfo = regexpResult[1];
86032
+ const fontFamily = fontInfo.match(/font-family:\s*'(\w+\s*\w*)';/);
86033
+ if (fontFamily && fontFamily[1]) {
86034
+ const url = GoogleFontsApi.parseSrc(fontInfo.match(/src:\s*(.+);/));
86035
+ const fontStyle = fontInfo.match(/font-style:\s*(\w+);/);
86036
+ const fontWeight = fontInfo.match(/font-weight:\s*(.+);/);
86037
+ const unicodeRange = fontInfo.match(/unicode-range:\s*(.+);/);
86038
+ const desc = new FontFaceDescriptors();
86039
+ if (fontStyle && fontStyle[1])
86040
+ desc.style = fontStyle[1];
86041
+ if (fontWeight && fontWeight[1])
86042
+ desc.weight = fontWeight[1];
86043
+ if (unicodeRange && unicodeRange[1])
86044
+ desc.unicodeRange = unicodeRange[1];
86045
+ const controlFont = this.controlFontsCache.addFont(new ControlFont(fontFamily[1], desc));
86046
+ if (url && utils_list.ListUtils.allOf(controlFont.sourceUrls, s => s != url)) {
86047
+ controlFont.sourceUrls.unshift(url);
86048
+ const fontInfo = this.fontFamilyToFontInfo[controlFont.fontFamily];
86049
+ const controlFontType = new class_flag.Flag();
86050
+ controlFontType.set(ControlFontType.Bold, controlFont.descriptors.msWordBold());
86051
+ controlFontType.set(ControlFontType.Italic, controlFont.descriptors.msWordItalic());
86052
+ fontInfo.controlFontMap[controlFontType.getValue()] = controlFont.cacheKey;
86053
+ result.push(controlFont);
86054
+ }
86055
+ }
86056
+ }
86057
+ return result;
86058
+ }
86059
+ static parseSrc(matchSrc) {
86060
+ if (matchSrc && matchSrc[1])
86061
+ for (let src of matchSrc[1].split(',')) {
86062
+ const matchUrl = src.match(/url\((.+)\)\s*format\('(\w+)'\)/);
86063
+ if (matchUrl)
86064
+ return matchUrl[1];
86065
+ }
86066
+ return null;
86067
+ }
86068
+ }
86069
+
86070
+ ;// CONCATENATED MODULE: ./src/common/model/creator/cache.ts
86071
+
86072
+
86073
+ class ModelCacheFiller {
86074
+ constructor(model, fontsSettings) {
86075
+ this.model = model;
86076
+ this.fontsSettings = fontsSettings;
86077
+ }
86078
+ fillCache() {
86079
+ this.makeFontMap();
86080
+ this.replaceCharProperties(this.model, "defaultCharacterProperties");
86081
+ this.model.characterStyles.forEach(style => this.replaceCharProperties(style, "maskedCharacterProperties"));
86082
+ this.model.paragraphStyles.forEach(style => this.replaceCharProperties(style, "maskedCharacterProperties"));
86083
+ this.model.tableStyles.forEach(style => {
86084
+ this.replaceCharProperties(style.baseConditionalStyle, 'maskedCharacterProperties');
86085
+ number/* NumberMapUtils */.j.forEach(style.conditionalStyles, style => this.replaceCharProperties(style, 'maskedCharacterProperties'));
86086
+ });
86087
+ number/* NumberMapUtils */.j.forEach(this.model.subDocuments, sd => this.replaceInModelSubDocument(sd));
86088
+ }
86089
+ makeFontMap() {
86090
+ const fontInfoCache = this.model.cache.fontInfoCache;
86091
+ const fontsSettings = this.fontsSettings;
86092
+ this.fontMap = Object.create(null);
86093
+ fontInfoCache.getAllFonts().forEach(font => this.fontMap[font.name] = fontsSettings.getPermittedFont(fontInfoCache, font));
86094
+ }
86095
+ replaceCharProperties(object, propKey) {
86096
+ const props = object[propKey];
86097
+ props.fontInfo = props.fontInfo ? this.fontMap[props.fontInfo.name] : this.model.defaultCharacterProperties.fontInfo;
86098
+ if (props instanceof MaskedCharacterProperties)
86099
+ object[propKey] = this.model.cache.maskedCharacterPropertiesCache.getItem(props);
86100
+ else
86101
+ object[propKey] = this.model.cache.mergedCharacterPropertiesCache.getItem(props);
86102
+ }
86103
+ replaceInModelSubDocument(sd) {
86104
+ sd.paragraphs.forEach(p => p.resetParagraphMergedProperties());
86105
+ sd.chunks.forEach(chunk => {
86106
+ chunk.textRuns.forEach(run => {
86107
+ this.replaceCharProperties(run, 'maskedCharacterProperties');
86108
+ run.resetCharacterMergedProperties();
86109
+ });
86110
+ });
86111
+ }
86112
+ }
86113
+
86114
+ ;// CONCATENATED MODULE: ./src/common/model/creator/font-corrector.ts
86115
+
86116
+
86117
+
86118
+
86119
+
86120
+
86121
+
86122
+ class FontCorrector {
86123
+ get fontInfoCache() {
86124
+ return this.model.cache.fontInfoCache;
86125
+ }
86126
+ get controlFontsCache() {
86127
+ return this.model.cache.controlFontsCache;
86128
+ }
86129
+ constructor(modelManipulator, model, fonts) {
86130
+ this.modelManipulator = modelManipulator;
86131
+ this.model = model;
86132
+ this.fonts = fonts;
86133
+ }
86134
+ correct() {
86135
+ this.addAndLoad();
86136
+ new ModelCacheFiller(this.model, this.fonts).fillCache();
86137
+ this.removeRedundant();
86138
+ this.modelManipulator.raiseFontListChanged(this.fontInfoCache);
86139
+ }
86140
+ addAndLoad() {
86141
+ this.fonts.fonts.forEach(font => {
86142
+ let newFont = this.fontInfoCache.getItemByName(font.name);
86143
+ if (!newFont)
86144
+ newFont = this.fontInfoCache.addFont(font.name, font.fontFamily);
86145
+ else
86146
+ newFont.cssString = FontInfoCache.correctCssString(font.fontFamily);
86147
+ const addControlFont = (uri, desc) => {
86148
+ const controlFont = this.controlFontsCache.addFont(new ControlFont(font.fontFamily, desc));
86149
+ controlFont.sourceUrls.unshift(uri);
86150
+ const controlFontType = new class_flag.Flag();
86151
+ controlFontType.set(ControlFontType.Bold, controlFont.descriptors.msWordBold());
86152
+ controlFontType.set(ControlFontType.Italic, controlFont.descriptors.msWordItalic());
86153
+ newFont.controlFontMap[controlFontType.getValue()] = controlFont.cacheKey;
86154
+ };
86155
+ if (font.regularFontUri)
86156
+ addControlFont(font.regularFontUri, FontFaceDescriptors.create({}));
86157
+ if (font.boldFontUri)
86158
+ addControlFont(font.boldFontUri, FontFaceDescriptors.create({ weight: 'bold' }));
86159
+ if (font.italicFontUri)
86160
+ addControlFont(font.italicFontUri, FontFaceDescriptors.create({ style: 'italic' }));
86161
+ if (font.boldItalicFontUri)
86162
+ addControlFont(font.boldItalicFontUri, FontFaceDescriptors.create({ weight: 'bold', style: 'italic' }));
86163
+ if (font.googleFontsResponse)
86164
+ new GoogleFontsApi(this.controlFontsCache, [newFont]).parseResponce(font.googleFontsResponse);
86165
+ else if (font.useGoogleFonts)
86166
+ new GoogleFontsApi(this.controlFontsCache, [newFont]).loadControlFonts(_createdFonts => { });
86167
+ });
86168
+ }
86169
+ removeRedundant() {
86170
+ if (this.fonts.limitedFonts) {
86171
+ const map = {};
86172
+ this.fonts.fonts.forEach(f => map[f.name] = f);
86173
+ this.fontInfoCache.removeItems(font => !map[font.name]);
86174
+ }
86175
+ }
86176
+ }
86177
+
85743
86178
  ;// CONCATENATED MODULE: ./src/client/model-api/document.ts
85744
86179
 
85745
86180
 
@@ -85750,6 +86185,7 @@ class sub_documents_collection_SubDocumentCollection extends Collection {
85750
86185
 
85751
86186
 
85752
86187
 
86188
+
85753
86189
  class RichEditDocumentApi {
85754
86190
  constructor(processor) {
85755
86191
  this._processor = processor;
@@ -85848,6 +86284,7 @@ class RichEditDocumentApi {
85848
86284
  this._processor.modelManager.model.defaultCharacterProperties =
85849
86285
  this._processor.modelManager.model.cache.maskedCharacterPropertiesCache.getItem(propertiesCore);
85850
86286
  number/* NumberMapUtils */.j.forEach(this._processor.modelManager.model.subDocuments, (sd) => sd.resetMergedFormattingCache(ResetFormattingCacheType.All));
86287
+ new FontCorrector(this._processor.modelManager.modelManipulator, this._processor.modelManager.model, this._processor.modelManager.richOptions.fonts).correct();
85851
86288
  this._processor.layoutFormatterManager.restartManager.restartAllLayout();
85852
86289
  this._processor.endUpdate();
85853
86290
  }
@@ -86278,7 +86715,6 @@ var RichEditClientCommand;
86278
86715
  RichEditClientCommand[RichEditClientCommand["GetHtml"] = 458] = "GetHtml";
86279
86716
  RichEditClientCommand[RichEditClientCommand["CreateEmptyIfField"] = 459] = "CreateEmptyIfField";
86280
86717
  RichEditClientCommand[RichEditClientCommand["ChangeZoomLevel"] = 460] = "ChangeZoomLevel";
86281
- RichEditClientCommand[RichEditClientCommand["ToggleAllowZoom"] = 461] = "ToggleAllowZoom";
86282
86718
  })(RichEditClientCommand || (RichEditClientCommand = {}));
86283
86719
 
86284
86720
  ;// CONCATENATED MODULE: ./src/common/interfaces/i-rich-edit-core.ts
@@ -88718,21 +89154,13 @@ class SectionExporter extends BaseExporter {
88718
89154
  this.exportSectionGeneralSettings(props);
88719
89155
  }
88720
89156
  exportSectionPage(props) {
88721
- if (!this.shouldExportSectionPage(props))
88722
- return;
88723
89157
  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);
89158
+ this.writer.writeWpIntAttr('w', props.pageSize.width);
89159
+ this.writer.writeWpIntAttr('h', props.pageSize.height);
88728
89160
  if (props.landscape)
88729
89161
  this.writer.writeWpStringAttr('orient', props.landscape ? 'landscape' : 'portrait');
88730
89162
  this.writer.endElement();
88731
89163
  }
88732
- shouldExportSectionPage(props) {
88733
- return !props.pageSize.equals(SectionExporter.defaultProps.pageSize) ||
88734
- props.landscape != SectionExporter.defaultProps.landscape;
88735
- }
88736
89164
  exportSectionMargins(props) {
88737
89165
  this.writer.writeWpStartElement('pgMar');
88738
89166
  this.writer.writeWpIntAttr('left', props.marginLeft);
@@ -90519,6 +90947,7 @@ class EffectExtent {
90519
90947
 
90520
90948
 
90521
90949
 
90950
+
90522
90951
  class TableExporter extends BaseExporter {
90523
90952
  constructor() {
90524
90953
  super(...arguments);
@@ -90548,10 +90977,9 @@ class TableExporter extends BaseExporter {
90548
90977
  }
90549
90978
  }
90550
90979
  getTableGrid(table) {
90551
- if (table.rows[0].logicColumnCount < 64)
90552
- return [];
90553
- const colGrid = [];
90554
- return colGrid;
90980
+ var _a, _b;
90981
+ const grid = this.data.grids.get(table);
90982
+ 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
90983
  }
90556
90984
  initNewTables(newIndexes, allowInitNextTable) {
90557
90985
  for (let levelIndex = this.tableIndexes.length; levelIndex < newIndexes.length; levelIndex++) {
@@ -91061,11 +91489,12 @@ class data_Data {
91061
91489
  get subDocumentExporter() { return this.subDocumentExporterStack.last; }
91062
91490
  get relationExporter() { return utils_list.ListUtils.last(this.relationExporters); }
91063
91491
  get mainSubDocumentRelations() { return this.relationExporters[0]; }
91064
- constructor(model, options) {
91492
+ constructor(exportModelOptions, options) {
91065
91493
  this.drawingElementId = 1;
91066
91494
  this.exportSubDocumentsList = [];
91067
91495
  this.relationExporters = [];
91068
- this.model = model;
91496
+ this.model = exportModelOptions.modelManager.model;
91497
+ this.grids = exportModelOptions.grids;
91069
91498
  this.options = options;
91070
91499
  this.constants = new DocxConstants();
91071
91500
  this.writerStack = new stack/* Stack */.K();
@@ -91849,10 +92278,10 @@ class EndNoteExporter extends NoteExporter {
91849
92278
 
91850
92279
 
91851
92280
  class DocxExporter {
91852
- constructor(modelManipulator, options) {
91853
- this.modelManipulator = modelManipulator;
92281
+ constructor(exportModelOptions, options) {
92282
+ this.modelManipulator = exportModelOptions.modelManager.modelManipulator;
91854
92283
  this.options = options;
91855
- this.data = new data_Data(modelManipulator.model, options);
92284
+ this.data = new data_Data(exportModelOptions, options);
91856
92285
  }
91857
92286
  exportToBlob(callback) {
91858
92287
  this.modelManipulator.picture.loader.ensureAllPicturesLoaded(this.options.ensurePictureLoadedTimeout, (_loaded) => {
@@ -91959,8 +92388,8 @@ function exportModelToBlob(exportModelOptions, callback) {
91959
92388
  function getExporter(exportModelOptions) {
91960
92389
  const { modelManipulator } = exportModelOptions.modelManager;
91961
92390
  switch (exportModelOptions.documentFormat) {
91962
- case DocumentFormat.OpenXml: return new DocxExporter(modelManipulator, new DocxExportOptions());
91963
- case DocumentFormat.Rtf: return new RtfExporter(modelManipulator, new RtfDocumentExporterOptions());
92391
+ case DocumentFormat.OpenXml: return new DocxExporter(exportModelOptions, new DocxExportOptions());
92392
+ case DocumentFormat.Rtf: return new RtfExporter(exportModelOptions, new RtfDocumentExporterOptions());
91964
92393
  case DocumentFormat.PlainText: return new TxtExporter(modelManipulator, new DocumentExporterOptions());
91965
92394
  case DocumentFormat.Html: return new HtmlDocumentExporter(exportModelOptions, new DocumentExporterOptions());
91966
92395
  default:
@@ -92471,7 +92900,7 @@ class AnchorObjectHorizontalPositionCalculator extends AnchorObjectPositionCalcu
92471
92900
  alignment(type, alignment) {
92472
92901
  switch (type) {
92473
92902
  case AnchorObjectHorizontalPositionType.Character:
92474
- return this.getAlignPosition(alignment, 0);
92903
+ return this.getAnchorXPosition() + this.getAlignPosition(alignment, 0);
92475
92904
  case AnchorObjectHorizontalPositionType.Column:
92476
92905
  return this.isRelativeCell ?
92477
92906
  this.relativeColumnPos() + this.lp.row.tableCellInfo.x +
@@ -92520,17 +92949,8 @@ class AnchorObjectHorizontalPositionCalculator extends AnchorObjectPositionCalcu
92520
92949
  return this.isRelativeCell ? this.relativeColumnPos() + this.lp.row.tableCellInfo.x : 0;
92521
92950
  case AnchorObjectHorizontalPositionType.Column:
92522
92951
  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
- }
92952
+ case AnchorObjectHorizontalPositionType.Character:
92953
+ return this.getAnchorXPosition();
92534
92954
  case AnchorObjectHorizontalPositionType.Margin:
92535
92955
  return this.isRelativeCell ? this.relativeColumnPos() + this.lp.row.tableCellInfo.x + this.leftCellMargin :
92536
92956
  this.manager.boundsCalculator.marginLeft;
@@ -92547,6 +92967,19 @@ class AnchorObjectHorizontalPositionCalculator extends AnchorObjectPositionCalcu
92547
92967
  throw new Error(lib_errors/* Errors */.D.InternalException);
92548
92968
  }
92549
92969
  }
92970
+ getAnchorXPosition() {
92971
+ const rowAbsPos = this.lp.getLogPosition(DocumentLayoutDetailsLevel.Row);
92972
+ const ancBoxAbsPos = this.obj.rowOffset;
92973
+ let boxIndex = search.SearchUtils.normedInterpolationIndexOf(this.lp.row.boxes, (box) => rowAbsPos + box.rowOffset, ancBoxAbsPos);
92974
+ if (boxIndex < 0)
92975
+ boxIndex = 0;
92976
+ const box = this.lp.row.boxes[boxIndex];
92977
+ if (!box)
92978
+ return this.lp.getLayoutX(null, DocumentLayoutDetailsLevel.Row);
92979
+ const symbolCount = Math.max(0, ancBoxAbsPos - rowAbsPos - box.rowOffset);
92980
+ return this.lp.getLayoutX(null, DocumentLayoutDetailsLevel.Row) + box.x +
92981
+ box.getCharOffsetXInPixels(this.manager.measurer, symbolCount);
92982
+ }
92550
92983
  bookLayout() {
92551
92984
  return this.alignment(this.anchorInfo.horizontalPositionType, AnchorObjectHorizontalPositionCalculator.mapBookLayoutALignmentType[this.anchorInfo.horizontalPositionAlignment]);
92552
92985
  }
@@ -92772,6 +93205,12 @@ class AnchoredTextBoxContextSizeCalculator {
92772
93205
 
92773
93206
 
92774
93207
  class LayoutPageArea extends rectangle.Rectangle {
93208
+ get grids() {
93209
+ return this.columns.reduce((res, column) => {
93210
+ column.tablesInfo.forEach(tableInfo => res.set(tableInfo.logicInfo.grid.table, tableInfo.logicInfo.grid));
93211
+ return res;
93212
+ }, new Map());
93213
+ }
92775
93214
  constructor(subDocument) {
92776
93215
  super(0, 0, 0, 0);
92777
93216
  this.columns = [];
@@ -92797,7 +93236,6 @@ class LayoutPageArea extends rectangle.Rectangle {
92797
93236
 
92798
93237
 
92799
93238
 
92800
-
92801
93239
  var LayoutRowStateFlags;
92802
93240
  (function (LayoutRowStateFlags) {
92803
93241
  LayoutRowStateFlags[LayoutRowStateFlags["NormallyEnd"] = 0] = "NormallyEnd";
@@ -92924,7 +93362,7 @@ class layout_row_LayoutRow extends rectangle.Rectangle {
92924
93362
  return lastBoxIndexWhatCanStrikeoutAndUnderline;
92925
93363
  }
92926
93364
  containsSpacesOnly() {
92927
- return this.boxes.length > 0 && utils_list.ListUtils.allOf(this.boxes, val => val.isWhitespace() || val.getType() === LayoutBoxType.ParagraphMark);
93365
+ return this.boxes.length > 0 && utils_list.ListUtils.allOf(this.boxes, val => val.isWhitespace());
92928
93366
  }
92929
93367
  }
92930
93368
  class LayoutRowWithIndex extends (/* unused pure expression or super */ null && (layout_row_LayoutRow)) {
@@ -95019,10 +95457,10 @@ class RowFormattingInfo {
95019
95457
  const ind = utils_list.ListUtils.indexBy(this.intervals, (curr) => curr.start > pos || pos < curr.end, this.currIndex + 1);
95020
95458
  return ind < 0 ? this.intervals.length - 1 : ind;
95021
95459
  }
95022
- calculate() {
95460
+ calculate(outerHorizontalRowContentBounds) {
95023
95461
  this.setIntersectObjects();
95024
95462
  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);
95463
+ const freeIntervals = this.calculateFreeIntervals(this.busyIntervals, outerHorizontalRowContentBounds !== null && outerHorizontalRowContentBounds !== void 0 ? outerHorizontalRowContentBounds : this.outerHorizontalRowContentBounds);
95026
95464
  if (freeIntervals.length) {
95027
95465
  this.intervals = utils_list.ListUtils.map(freeIntervals, (curr) => new RowIntervalInfo(curr.start, curr.length));
95028
95466
  return;
@@ -95030,6 +95468,40 @@ class RowFormattingInfo {
95030
95468
  this.resetMinY(utils_list.ListUtils.min);
95031
95469
  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
95470
  }
95471
+ calculateFreeIntervals(busyIntervals, outerHorizontalRowContentBounds) {
95472
+ const intervals = utils_list.ListUtils.reducedMap(busyIntervals, val => algorithms.IntervalAlgorithms.getIntersectionNonNullLength(val, outerHorizontalRowContentBounds));
95473
+ if (!intervals.length)
95474
+ return [outerHorizontalRowContentBounds.clone()];
95475
+ const lastIntervalEnd = utils_list.ListUtils.last(intervals).end;
95476
+ const result = utils_list.ListUtils.reducedMap(intervals, (curr, i) => fixed.FixedInterval.fromPositions(busyIntervals[i - 1].end, curr.start), 1);
95477
+ if (outerHorizontalRowContentBounds.start < busyIntervals[0].start)
95478
+ result.unshift(fixed.FixedInterval.fromPositions(outerHorizontalRowContentBounds.start, busyIntervals[0].start));
95479
+ if (outerHorizontalRowContentBounds.end > lastIntervalEnd)
95480
+ result.push(fixed.FixedInterval.fromPositions(lastIntervalEnd, outerHorizontalRowContentBounds.end));
95481
+ return result;
95482
+ }
95483
+ recalculate(outerHorizontalRowContentBounds) {
95484
+ const currInterval = this.currInterval;
95485
+ this.calculate(outerHorizontalRowContentBounds);
95486
+ const pos = currInterval.start + currInterval.busyWidth;
95487
+ const index = this.findIntervalIndexByPosition(pos);
95488
+ const interval = this.intervals[index];
95489
+ if (interval && interval.start < pos) {
95490
+ const avaliableWidth = interval.length - (pos - interval.start);
95491
+ interval.avaliableWidth = avaliableWidth;
95492
+ }
95493
+ this.currIndex = index;
95494
+ }
95495
+ findIntervalIndexByPosition(position) {
95496
+ let index = 0;
95497
+ while (index < this.intervals.length) {
95498
+ const interval = this.intervals[index];
95499
+ if (interval.start <= position && position < interval.end || position < interval.start)
95500
+ break;
95501
+ index++;
95502
+ }
95503
+ return index;
95504
+ }
95033
95505
  canIncrementHeightTo(newHeight) {
95034
95506
  const contentBounds = utils_list.ListUtils.map(this.intervals, (c) => new rectangle.Rectangle(c.start, this.minY, c.busyWidth, newHeight));
95035
95507
  const intersectedObjects = this.calcIntersectObjects(newHeight);
@@ -95620,8 +96092,6 @@ class RowBaseFormatterState {
95620
96092
  this.rowFormatter.finishRow();
95621
96093
  }
95622
96094
  addAnchorObject() {
95623
- if (!this.rowFormatter.wordHolder.pushBoxes())
95624
- return;
95625
96095
  this.rowFormatter.addAnchorObject();
95626
96096
  }
95627
96097
  addTextBox() {
@@ -95753,7 +96223,7 @@ class RowTabInfo {
95753
96223
  const tab = this.tabPositions[ind];
95754
96224
  const oldTabPos = tab ? tab.position : Number.MAX_VALUE;
95755
96225
  if (oldTabPos != pos)
95756
- this.tabPositions.splice(pos > oldTabPos ? ind + 1 : ind, 0, new TabInfo(pos, TabAlign.Left, TabLeaderType.None, false, false));
96226
+ this.tabPositions.splice(pos > oldTabPos ? ind + 1 : ind, 0, new TabInfo(pos, TabAlign.Left, TabLeaderType.None, false, false, true));
95757
96227
  }
95758
96228
  for (let pos of this.tabPositions)
95759
96229
  pos.position += this.paragraphHorizontalBoundsStart;
@@ -95799,9 +96269,10 @@ class RowTabInfo {
95799
96269
  const lastInterval = utils_list.ListUtils.last(this.rowFormatter.rowSizesManager.rowFormattingInfo.intervals);
95800
96270
  if (tabXPosRelativePage > lastInterval.end) {
95801
96271
  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;
96272
+ if (this.rowFormatter.manager.model.compatibilitySettings.compatibilityMode < CompatibilityMode.Word2013 && tabPosition && !tabPosition.isParagraphIndent) {
96273
+ const interval = this.rowFormatter.rowSizesManager.rowFormattingInfo.outerHorizontalRowContentBounds;
96274
+ interval.length = Number.MAX_SAFE_INTEGER - interval.start;
96275
+ this.rowFormatter.rowSizesManager.rowFormattingInfo.recalculate(interval);
95805
96276
  this.row.width = Number.MAX_SAFE_INTEGER;
95806
96277
  this.row.flags.set(LayoutRowStateFlags.InfinityWidth, true);
95807
96278
  return this.addTabBox();
@@ -95917,7 +96388,7 @@ class WordHolderInfo {
95917
96388
  }
95918
96389
  if (res == null)
95919
96390
  return false;
95920
- if (this.rowFormatter.row.isEmpty()) {
96391
+ if (this.rowFormatter.row.isEmpty() || this.rowFormatter.row.containsSpacesOnly()) {
95921
96392
  if (this.rowFormatter.rowSizesManager.rowFormattingInfo.isFloatingIntersectRow) {
95922
96393
  this.rowFormatter.rowSizesManager.rowFormattingInfo.findNextYPosWhatHasNeededSpace(res.requiredWidth);
95923
96394
  return this.pushBoxes();
@@ -98163,25 +98634,9 @@ class table_info_TableInfo {
98163
98634
  tableIndent.value = 0;
98164
98635
  }
98165
98636
  const tableIndentInPixels = tableIndent.asNumberNoPercentType(unit_converter/* UnitConverter */.u.twipsToPixels);
98166
- this.xPositionStart = xPosition + tableIndentInPixels + (diff.xDiff ? diff.xDiff : -firstCellLeftMargin) +
98167
- this.getShiftHorizontalPosition(xPosition);
98637
+ this.xPositionStart = xPosition + tableIndentInPixels + (diff.xDiff ? diff.xDiff : -firstCellLeftMargin);
98168
98638
  this.yPositionStart = yOffset + diff.yDiff;
98169
98639
  }
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
98640
  static getEstimatedTableWidth(table, maxWidth) {
98186
98641
  const preferredWidth = table.preferredWidth;
98187
98642
  const minWidth = 3 * table.rows[0].getTotalCellsInRowConsiderGrid();
@@ -98264,6 +98719,12 @@ class LayoutTableSizeCompressor {
98264
98719
  LayoutTableSizeCompressor.cellCompress(cell, cell.createRectangle());
98265
98720
  }
98266
98721
  static tableCompress(tableInfo, boundsRelativeColumn) {
98722
+ const intersection = rectangle.Rectangle.getIntersection(tableInfo, boundsRelativeColumn);
98723
+ const headOffset = intersection.x - tableInfo.x;
98724
+ if (headOffset > 0) {
98725
+ tableInfo.verticalBorders.forEach(b => b.xPos -= headOffset);
98726
+ tableInfo.verticalCursorBorders.forEach(b => b.xPos -= headOffset);
98727
+ }
98267
98728
  LayoutTableSizeCompressor.compress(tableInfo, boundsRelativeColumn, true, false);
98268
98729
  const boundsRelativeTable = tableInfo.clone().moveRectangle(-tableInfo.x, -tableInfo.y);
98269
98730
  for (let row of tableInfo.tableRows)
@@ -98332,8 +98793,9 @@ class LayoutTableSizeCompressor {
98332
98793
  }
98333
98794
  border.length = Math.min(border.yPos + border.length, bounds.bottom) - border.yPos;
98334
98795
  if (border.xPos < bounds.x)
98335
- return true;
98336
- border.xPos = bounds.right;
98796
+ border.xPos = bounds.x;
98797
+ else
98798
+ border.xPos = bounds.right;
98337
98799
  border.borderInfo.width = 0;
98338
98800
  return false;
98339
98801
  }
@@ -103492,6 +103954,7 @@ class CanvasUtils {
103492
103954
 
103493
103955
 
103494
103956
 
103957
+
103495
103958
 
103496
103959
 
103497
103960
  class SimpleViewCanvasSizeManager {
@@ -103518,6 +103981,10 @@ class SimpleViewCanvasSizeManager {
103518
103981
  this.resizeFrameId = null;
103519
103982
  this.resizeObserver.disconnect();
103520
103983
  }
103984
+ modelChanged(change) {
103985
+ if (change.type == ModelChangeType.ZoomLevelChanged && this.control.innerClientProperties.viewsSettings.isSimpleView)
103986
+ this.changeSize(true);
103987
+ }
103521
103988
  changeSize(force) {
103522
103989
  const curr = new geometry_size.Size(this.canvasManager.getCanvasWidth(), this.canvasManager.controlHeightProvider.getVisibleAreaHeight(false));
103523
103990
  if (force || !curr.equals(this.size)) {
@@ -103543,18 +104010,16 @@ class SimpleViewCanvasSizeManager {
103543
104010
  this.sizeUpdated = true;
103544
104011
  }
103545
104012
  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();
104013
+ utils_list.ListUtils.forEach(this.control.viewManager.cache, (_val) => this.control.viewManager.renderer.removePage(1), 1);
104014
+ this.control.viewManager.ensureFirstPageIsRendered();
104015
+ this.control.innerClientProperties.viewsSettings.widthOfPage = this.canvasManager.getCanvasWidth();
104016
+ if (this.control.layoutFormatterManager) {
104017
+ this.control.layoutFormatterManager.invalidator.onChangedAllLayout();
104018
+ this.control.selection.scrollManager.setScroll(new ScrollState().byModelPosition(this.control.selection)
104019
+ .setModelPosition(this.control.selection.lastSelectedInterval.start).useStdRelativePosition().useStdOffset());
103557
104020
  }
104021
+ this.control.owner.adjustControl();
104022
+ this.control.horizontalRulerControl.update();
103558
104023
  }
103559
104024
  }
103560
104025
  class DocumentRenderer {
@@ -103738,7 +104203,7 @@ class DocumentRenderer {
103738
104203
  }
103739
104204
  }
103740
104205
  updatePageSize(page, pageElement) {
103741
- if (pageElement.offsetHeight != page.height || pageElement.offsetWidth != page.width)
104206
+ if (pageElement.offsetHeight != Math.round(page.height) || pageElement.offsetWidth != Math.round(page.width))
103742
104207
  dom.DomUtils.setStyleSize(pageElement.style, page);
103743
104208
  }
103744
104209
  updatePageClasses(pageElement) {
@@ -106437,40 +106902,31 @@ class MouseHandlerDefaultState extends MouseHandlerStateBase {
106437
106902
  this.processMouseDownOnMaxDetailsLevel(evt, htr, activeSubDocument);
106438
106903
  }
106439
106904
  processMouseDownOnMaxDetailsLevel(evt, htr, activeSubDocument) {
106905
+ const selection = this.handler.control.selection;
106440
106906
  if (htr.floatingObject) {
106441
- if (htr.floatingObject.belongsToSubDocId != this.handler.control.selection.activeSubDocument.id)
106442
- MouseHandlerHelper.changeActiveSubDocumentToParent(this.handler.control);
106443
106907
  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)) {
106908
+ const rotationAngle = activeSubDocument.isTextBox() ? 0 : box.rotationInRadians;
106909
+ if (box.getType() == LayoutBoxType.AnchorTextBox && HitTestManager.isPointInTexBoxArea(evt.layoutPoint, box, rotationAngle)) {
106910
+ const textbox = box;
106911
+ if (textbox.internalSubDocId !== selection.activeSubDocument.id && this.selectFloatingObject(box)) {
106449
106912
  this.handler.control.commandManager.getCommand(RichEditClientCommand.ChangeActiveSubDocumentToTextBox).execute(this.handler.control.commandManager.isPublicApiCall);
106450
106913
  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
- }
106914
+ htr = this.handler.control.hitTestManager.calculate(evt.layoutPoint, DocumentLayoutDetailsLevel.Max, selection.activeSubDocument);
106466
106915
  }
106467
106916
  }
106917
+ else {
106918
+ if (this.selectFloatingObject(box) && this.resizeRotationChecker(() => {
106919
+ const dragFloatingObjectState = new MouseHandlerDragFloatingObjectState(this.handler, evt);
106920
+ this.handler.switchState(new MouseHandlerBeginDragHelperState(evt.layoutPoint, this.handler, dragFloatingObjectState));
106921
+ }))
106922
+ return;
106923
+ }
106468
106924
  }
106469
106925
  if (browser.Browser.TouchUI && htr.subDocument.isMain() && htr.exactlyDetailLevel < DocumentLayoutDetailsLevel.PageArea) {
106470
106926
  if (htr.deviations[DocumentLayoutDetailsLevel.PageArea] & rectangle.HitTestDeviation.Top || htr.deviations[DocumentLayoutDetailsLevel.PageArea] & rectangle.HitTestDeviation.Bottom)
106471
106927
  this.handler.control.viewManager.canvasScrollManager.waitForDblClick();
106472
106928
  }
106473
- if (evt.button === MouseButton.Right && this.handler.control.selection.lastSelectedInterval.contains(htr.getPosition()))
106929
+ if (evt.button === MouseButton.Right && selection.lastSelectedInterval.contains(htr.getPosition()))
106474
106930
  return;
106475
106931
  if (this.shouldSelectEntireTableColumn(htr))
106476
106932
  this.beginSelectEntireTableColumn(htr, evt);
@@ -106485,7 +106941,7 @@ class MouseHandlerDefaultState extends MouseHandlerStateBase {
106485
106941
  this.beginSelectEntireTableCell(htr, evt);
106486
106942
  }
106487
106943
  else if (this.isLeftArea(htr, evt)) {
106488
- if (evt.modifiers & key/* ModifierKey */.tx.Ctrl && this.handler.control.selection.isCollapsed())
106944
+ if (evt.modifiers & key/* ModifierKey */.tx.Ctrl && selection.isCollapsed())
106489
106945
  this.handler.control.commandManager.getCommand(RichEditClientCommand.SelectAll).execute(this.handler.control.commandManager.isPublicApiCall, htr.getPosition());
106490
106946
  else if (this.isLeftAreaOffset(htr, evt))
106491
106947
  this.beginLineSelection(htr, evt);
@@ -106693,8 +107149,14 @@ class MouseHandlerDefaultState extends MouseHandlerStateBase {
106693
107149
  this.handler.switchState(state);
106694
107150
  }
106695
107151
  selectFloatingObject(box) {
107152
+ const selection = this.handler.control.selection;
107153
+ if (box.belongsToSubDocId !== selection.activeSubDocument.id)
107154
+ MouseHandlerHelper.changeActiveSubDocumentToParent(this.handler.control);
107155
+ if (box.belongsToSubDocId !== selection.activeSubDocument.id)
107156
+ return false;
106696
107157
  const pos = this.handler.control.layout.anchorObjectsPositionInfo.getPosition(box.objectId);
106697
- this.handler.control.selection.setSelection(new SetSelectionParams().setInterval(new fixed.FixedInterval(pos, 1)));
107158
+ selection.setSelection(new SetSelectionParams().setInterval(new fixed.FixedInterval(pos, 1)));
107159
+ return selection.specialRunInfo.isSelectedAnchorObject;
106698
107160
  }
106699
107161
  }
106700
107162
  class MouseHandlerHelper {
@@ -107867,31 +108329,56 @@ ResizeBoxListener.directionToSource = {
107867
108329
  };
107868
108330
 
107869
108331
  ;// CONCATENATED MODULE: ./src/common/utils/size-utils.ts
108332
+
107870
108333
  class SizeUtils {
108334
+ static getScrollbarsWidth() {
108335
+ if (!(0,common.isDefined)(this._scrollbarsWidth)) {
108336
+ const scrollDiv = document.createElement('div');
108337
+ scrollDiv.style.visibility = 'hidden';
108338
+ scrollDiv.style.overflow = 'scroll';
108339
+ scrollDiv.style.position = 'absolute';
108340
+ scrollDiv.style.top = '-9999px';
108341
+ scrollDiv.style.width = '100px';
108342
+ scrollDiv.style.height = '100px';
108343
+ document.body.appendChild(scrollDiv);
108344
+ const innerDiv = document.createElement('div');
108345
+ innerDiv.style.width = '100%';
108346
+ innerDiv.style.height = '100%';
108347
+ scrollDiv.appendChild(innerDiv);
108348
+ this._scrollbarsWidth = {
108349
+ horizontal: SizeUtils.getOffsetHeight(scrollDiv) - SizeUtils.getOffsetHeight(innerDiv),
108350
+ vertical: SizeUtils.getOffsetWidth(scrollDiv) - SizeUtils.getOffsetWidth(innerDiv)
108351
+ };
108352
+ scrollDiv.remove();
108353
+ }
108354
+ return this._scrollbarsWidth;
108355
+ }
107871
108356
  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);
108357
+ const computedStyle = getComputedStyle(element);
108358
+ const offsetWidth = this.getOffsetWidth(element);
108359
+ const offsetWidthWithoutBorder = offsetWidth
108360
+ - parseCssValue(computedStyle.borderLeftWidth)
108361
+ - parseCssValue(computedStyle.borderRightWidth);
108362
+ let scrollbarWidth = 0;
108363
+ if (Math.round(offsetWidthWithoutBorder) > element.clientWidth)
108364
+ scrollbarWidth = SizeUtils.getScrollbarsWidth().vertical;
108365
+ const clientWidth = offsetWidthWithoutBorder - scrollbarWidth;
108366
+ return new DimensionInfo(offsetWidth, clientWidth, scrollbarWidth);
107881
108367
  }
107882
108368
  static getClientWidth(element) {
107883
108369
  return this.getWidthInfo(element).clientSize;
107884
108370
  }
107885
108371
  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);
108372
+ const computedStyle = getComputedStyle(element);
108373
+ const offsetHeight = this.getOffsetHeight(element);
108374
+ const offsetHeightWithoutBorder = offsetHeight
108375
+ - parseCssValue(computedStyle.borderTopWidth)
108376
+ - parseCssValue(computedStyle.borderBottomWidth);
108377
+ let scrollbarWidth = 0;
108378
+ if (Math.round(offsetHeightWithoutBorder) > element.clientHeight)
108379
+ scrollbarWidth = SizeUtils.getScrollbarsWidth().horizontal;
108380
+ const clientHeight = offsetHeightWithoutBorder - scrollbarWidth;
108381
+ return new DimensionInfo(offsetHeight, clientHeight, scrollbarWidth);
107895
108382
  }
107896
108383
  static getClientHeight(element) {
107897
108384
  return this.getHeightInfo(element).clientSize;
@@ -107933,6 +108420,7 @@ class DimensionInfo {
107933
108420
 
107934
108421
 
107935
108422
 
108423
+
107936
108424
  const SCROLL_INTERVAL_MS = 50;
107937
108425
  const CSSCLASS_FOCUSED = "dxreInFocus";
107938
108426
  const AUTOSCROLL_AREA_SIZE = 10;
@@ -108168,35 +108656,40 @@ class CanvasManager extends batch_updatable/* BatchUpdatableObject */.IS {
108168
108656
  const clientRect = canvas.getBoundingClientRect();
108169
108657
  const scaleX = this.getScale(clientRect.width, canvas.offsetWidth);
108170
108658
  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;
108659
+ const clientX = MixedSize.fromUI(utils_evt/* EvtUtils */.g.getEventX(evt));
108660
+ const clientY = MixedSize.fromUI(utils_evt/* EvtUtils */.g.getEventY(evt));
108661
+ const canvasX = MixedSize.fromUI(dom.DomUtils.getAbsolutePositionX(canvas));
108662
+ const canvasY = MixedSize.fromUI(dom.DomUtils.getAbsolutePositionY(canvas));
108663
+ const offsetY = MixedSize.fromUI(canvas.scrollTop).addSize(clientY).subtractSize(canvasY).useScale(scaleY);
108664
+ const pageIndex = this.viewManager.layout.findPageIndexByOffsetY(offsetY.LayoutSize * scaleY, this.sizes);
108665
+ const visibleAreaWidth = MixedSize.fromUI(this.sizes.getVisibleAreaWidth(false));
108666
+ const visibleAreaHeight = MixedSize.fromUI(this.sizes.getVisibleAreaHeight(false));
108179
108667
  if (checkScroll) {
108180
- if (this.sizes.scrollYVisible && canvasX + visibleAreaWidth - clientX < 0)
108668
+ const relativeX = new MixedSize().useScale(scaleX).addSize(canvasX).addSize(visibleAreaWidth).subtractSize(clientX);
108669
+ if (this.sizes.scrollYVisible && relativeX.LayoutSize < 0)
108181
108670
  return LayoutPoint.Empty();
108182
- if (this.sizes.scrollXVisible && canvasY + visibleAreaHeight - clientY < 0)
108671
+ const relativeY = new MixedSize().useScale(scaleY).addSize(canvasY).addSize(visibleAreaHeight).subtractSize(clientY);
108672
+ if (this.sizes.scrollXVisible && relativeY.LayoutSize < 0)
108183
108673
  return LayoutPoint.Empty();
108184
108674
  }
108185
108675
  const layoutPage = this.viewManager.layout.pages[pageIndex];
108186
108676
  const renderPageCacheElem = this.viewManager.cache[pageIndex];
108187
108677
  if (!layoutPage || !renderPageCacheElem)
108188
108678
  return LayoutPoint.Empty();
108189
- return new LayoutPoint(pageIndex, canvas.scrollLeft + clientX - (canvasX + renderPageCacheElem.page.offsetLeft), offsetY - this.sizes.getPageOffsetY(layoutPage));
108679
+ const pageX = new MixedSize().useScale(scaleX).addUISize(canvas.scrollLeft).addSize(clientX).subtractSize(canvasX).subtractLayoutSize(renderPageCacheElem.page.offsetLeft).LayoutSize;
108680
+ const pageY = new MixedSize().useScale(scaleY).addSize(offsetY).subtractLayoutSize(this.sizes.getPageOffsetY(layoutPage)).LayoutSize;
108681
+ return new LayoutPoint(pageIndex, pageX, pageY);
108190
108682
  }
108191
108683
  isVisiblePosition(layoutPoint) {
108192
- const pages = this.viewManager.layout.pages;
108193
- this.scroll.updatePageIndexesInfo(pages);
108684
+ const layout = this.viewManager.layout;
108685
+ const zoomLevel = this.viewManager.zoomLevel;
108686
+ this.scroll.updatePageIndexesInfo(layout);
108194
108687
  if (layoutPoint.pageIndex < this.scroll.startVisiblePageIndex || layoutPoint.pageIndex > this.scroll.endVisiblePageIndex)
108195
108688
  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;
108689
+ const pageY = MixedSize.fromLayout(this.sizes.getPageOffsetY(layout.pages[layoutPoint.pageIndex])).useScale(zoomLevel);
108690
+ const pageX = MixedSize.fromLayout(this.viewManager.cache[layoutPoint.pageIndex].page.offsetLeft).useScale(zoomLevel);
108691
+ const x = pageX.addLayoutSize(layoutPoint.x).UISize;
108692
+ const y = pageY.addLayoutSize(layoutPoint.y).UISize;
108200
108693
  return x >= this.scroll.lastScrollLeft && x <= this.sizes.getVisibleAreaWidth(false) + this.scroll.lastScrollLeft &&
108201
108694
  y >= this.scroll.lastScrollTop && y <= this.sizes.getVisibleAreaHeight(false) + this.scroll.lastScrollTop;
108202
108695
  }
@@ -108244,17 +108737,23 @@ class CanvasManager extends batch_updatable/* BatchUpdatableObject */.IS {
108244
108737
  onScrollIntervalTick() {
108245
108738
  const evtX = this.lastMousePosition.x;
108246
108739
  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);
108740
+ const inHorizontalArea = evtX >= this.canvasPosition.x && evtX <= this.canvasPosition.x + this.sizes.getVisibleAreaWidth(false);
108741
+ const inVerticalArea = evtY >= this.canvasPosition.y && evtY <= this.canvasPosition.y + this.sizes.getVisibleAreaHeight(false);
108249
108742
  if (!inHorizontalArea && !inVerticalArea)
108250
108743
  return;
108744
+ const yOffsetWithoutScrollbar = this.canvasPosition.y + this.sizes.getVisibleAreaHeight(false) - evtY;
108745
+ const yOffsetWithScrollbar = this.canvasPosition.y + this.sizes.getVisibleAreaHeight(true) - evtY;
108746
+ const outsideHorizontalScrollbar = yOffsetWithoutScrollbar > 0 || yOffsetWithScrollbar < 0;
108251
108747
  if (inHorizontalArea && evtY - this.canvasPosition.y <= AUTOSCROLL_AREA_SIZE)
108252
108748
  this.viewManager.canvas.scrollTop -= AUTOSCROLL_STEP;
108253
- else if (inHorizontalArea && this.canvasPosition.y + this.sizes.getVisibleAreaHeight(true) - evtY <= AUTOSCROLL_AREA_SIZE)
108749
+ else if (inHorizontalArea && yOffsetWithoutScrollbar <= AUTOSCROLL_AREA_SIZE && outsideHorizontalScrollbar)
108254
108750
  this.viewManager.canvas.scrollTop += AUTOSCROLL_STEP;
108751
+ const xOffsetWithoutScrollbar = this.canvasPosition.x + this.sizes.getVisibleAreaWidth(false) - evtX;
108752
+ const xOffsetWithScrollbar = this.canvasPosition.x + this.sizes.getVisibleAreaWidth(true) - evtX;
108753
+ const outsideVerticalScrollbar = xOffsetWithoutScrollbar > 0 || xOffsetWithScrollbar < 0;
108255
108754
  if (inVerticalArea && evtX - this.canvasPosition.x <= AUTOSCROLL_AREA_SIZE)
108256
108755
  this.viewManager.canvas.scrollLeft -= AUTOSCROLL_STEP;
108257
- else if (inVerticalArea && this.canvasPosition.x + this.sizes.getVisibleAreaWidth(true) - evtX <= AUTOSCROLL_AREA_SIZE)
108756
+ else if (inVerticalArea && xOffsetWithoutScrollbar <= AUTOSCROLL_AREA_SIZE && outsideVerticalScrollbar)
108258
108757
  this.viewManager.canvas.scrollLeft += AUTOSCROLL_STEP;
108259
108758
  }
108260
108759
  static getCursorClassName(pointer) {
@@ -108298,10 +108797,12 @@ class CanvasManager extends batch_updatable/* BatchUpdatableObject */.IS {
108298
108797
  return ResizeBoxListener.directionToSource[className.substr(ind + cornerPrefix.length, 2).trim()];
108299
108798
  }
108300
108799
  getScrollTopInfo() {
108301
- const pages = this.viewManager.layout.pages;
108302
108800
  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]));
108801
+ const pageIndex = this.viewManager.layout.findPageIndexByOffsetY(scrollTop, this.sizes);
108802
+ const pages = this.viewManager.layout.pages;
108803
+ const zoomLevel = this.viewManager.zoomLevel;
108804
+ const pageOffsetY = this.sizes.getPageOffsetY(pages[pageIndex]);
108805
+ return new ScrollTopInfo(pageIndex, new MixedSize().useScale(zoomLevel).addUISize(scrollTop).subtractLayoutSize(pageOffsetY).LayoutSize);
108305
108806
  }
108306
108807
  }
108307
108808
  class ScrollTopInfo {
@@ -108315,6 +108816,7 @@ class ScrollTopInfo {
108315
108816
 
108316
108817
 
108317
108818
 
108819
+
108318
108820
  class CanvasScrollInfo {
108319
108821
  constructor(canvas, sizes, internalApi) {
108320
108822
  this.lastScrollTop = -1;
@@ -108325,6 +108827,10 @@ class CanvasScrollInfo {
108325
108827
  this.internalApi = internalApi;
108326
108828
  this.init(canvas, sizes);
108327
108829
  }
108830
+ modelChanged(change) {
108831
+ if (change.type == ModelChangeType.ZoomLevelChanged)
108832
+ this.onCanvasSizeChanged();
108833
+ }
108328
108834
  init(canvas, sizes) {
108329
108835
  this.canvas = canvas;
108330
108836
  this.sizes = sizes;
@@ -108339,16 +108845,16 @@ class CanvasScrollInfo {
108339
108845
  renderPageIndexInterval() {
108340
108846
  return fixed.FixedInterval.fromPositions(this.getStartRenderPageIndex(), this.getEndRenderPageIndex() + 1);
108341
108847
  }
108342
- updatePageIndexesInfo(pages) {
108343
- if (!pages.length)
108848
+ updatePageIndexesInfo(layout) {
108849
+ if (!layout.pages.length)
108344
108850
  return;
108345
108851
  const scrollTop = this.getScrollTop();
108346
108852
  this.lastScrollLeft = this.canvas.scrollLeft;
108347
108853
  if (this.startVisiblePageIndex >= 0 && scrollTop == this.lastScrollTop && !this._needUpdatePageIndexes)
108348
108854
  return;
108349
108855
  this._needUpdatePageIndexes = false;
108350
- this.startVisiblePageIndex = this.sizes.findPageIndexByOffsetY(pages, scrollTop);
108351
- this.endVisiblePageIndex = this.sizes.findPageIndexByOffsetY(pages, scrollTop + this.getVisibleHeight());
108856
+ this.startVisiblePageIndex = layout.findPageIndexByOffsetY(scrollTop, this.sizes);
108857
+ this.endVisiblePageIndex = layout.findPageIndexByOffsetY(scrollTop + this.getVisibleHeight(), this.sizes);
108352
108858
  this.lastScrollTop = scrollTop;
108353
108859
  }
108354
108860
  getVisibleInterval() {
@@ -108376,6 +108882,8 @@ CanvasScrollInfo.VISIBLE_AREA_HEIGHT_MULTIPLIER = 2;
108376
108882
 
108377
108883
 
108378
108884
 
108885
+
108886
+
108379
108887
  class CanvasScrollManager {
108380
108888
  get canvas() { return this.viewManager.canvas; }
108381
108889
  get sizes() { return this.viewManager.sizes; }
@@ -108389,6 +108897,10 @@ class CanvasScrollManager {
108389
108897
  clearTimeout(this.updateScrollTimeoutId);
108390
108898
  clearTimeout(this.waitForDblClickTimeoutId);
108391
108899
  }
108900
+ modelChanged(change) {
108901
+ if (change.type == ModelChangeType.ZoomLevelChanged)
108902
+ this.updateScrollVisibility();
108903
+ }
108392
108904
  get scrollTop() { return this.canvas.scrollTop; }
108393
108905
  set scrollTop(val) { this.canvas.scrollTop = val; }
108394
108906
  setScrollEnabled(enabled) {
@@ -108407,46 +108919,48 @@ class CanvasScrollManager {
108407
108919
  scrollToX(canvasState) {
108408
108920
  const position = canvasState.lp;
108409
108921
  const relativePosition = canvasState.relativePosition;
108410
- let y = this.sizes.getPageOffsetY(this.viewManager.layout.pages[position.pageIndex]);
108411
- let height = 0;
108922
+ const zoomLevel = this.viewManager.zoomLevel;
108923
+ const page = this.viewManager.layout.pages[position.pageIndex];
108924
+ let y = MixedSize.fromLayout(this.sizes.getPageOffsetY(page)).useScale(zoomLevel);
108925
+ let height = new MixedSize().useScale(zoomLevel);
108412
108926
  if (position.detailsLevel >= DocumentLayoutDetailsLevel.PageArea) {
108413
- y += position.pageArea.y;
108927
+ y.addLayoutSize(position.pageArea.y);
108414
108928
  if (position.detailsLevel >= DocumentLayoutDetailsLevel.Column) {
108415
- y += position.column.y;
108929
+ y.addLayoutSize(position.column.y);
108416
108930
  if (position.detailsLevel >= DocumentLayoutDetailsLevel.Row) {
108417
- y += position.row.y;
108931
+ y.addLayoutSize(position.row.y);
108418
108932
  if (relativePosition === RelativePosition.Bottom)
108419
- y += position.row.height;
108933
+ y.addLayoutSize(position.row.height);
108420
108934
  else if (relativePosition === RelativePosition.Inside)
108421
- height = position.row.height;
108935
+ height.clear().addLayoutSize(position.row.height);
108422
108936
  }
108423
108937
  else if (relativePosition === RelativePosition.Bottom)
108424
- y += position.column.height;
108938
+ y.addLayoutSize(position.column.height);
108425
108939
  else if (relativePosition === RelativePosition.Inside)
108426
- height = position.column.height;
108940
+ height.clear().addLayoutSize(position.column.height);
108427
108941
  }
108428
108942
  else if (relativePosition === RelativePosition.Bottom)
108429
- y += position.pageArea.height;
108943
+ y.addLayoutSize(position.pageArea.height);
108430
108944
  else if (relativePosition === RelativePosition.Inside)
108431
- height = position.pageArea.height;
108945
+ height.clear().addLayoutSize(position.pageArea.height);
108432
108946
  }
108433
108947
  else if (relativePosition === RelativePosition.Bottom)
108434
- y += position.page.height;
108948
+ y.addLayoutSize(position.page.height);
108435
108949
  else if (relativePosition === RelativePosition.Inside)
108436
- height = position.page.height;
108950
+ height.clear().addLayoutSize(position.page.height);
108437
108951
  if (relativePosition === RelativePosition.Bottom)
108438
- y -= this.sizes.getVisibleAreaHeight(false);
108439
- y += canvasState.getVerticalOffset(this.sizes);
108952
+ y.subtractUISize(this.sizes.getVisibleAreaHeight(false));
108953
+ y.addUISize(canvasState.getVerticalOffset(this.sizes));
108440
108954
  if (relativePosition === RelativePosition.Inside) {
108441
108955
  let scrollTop = this.canvas.scrollTop;
108442
108956
  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;
108957
+ if (y.UISize < scrollTop)
108958
+ this.canvas.scrollTop = y.UISize;
108959
+ else if (y.UISize + height.UISize > scrollVisibleAreaHeight + scrollTop)
108960
+ this.canvas.scrollTop = y.UISize + height.UISize - scrollVisibleAreaHeight;
108447
108961
  }
108448
108962
  else
108449
- this.canvas.scrollTop = y;
108963
+ this.canvas.scrollTop = y.UISize;
108450
108964
  }
108451
108965
  NotifyScrollPositionChanged(canvasState) {
108452
108966
  if (this.updateScrollTimeoutId) {
@@ -108475,14 +108989,14 @@ class CanvasScrollManager {
108475
108989
 
108476
108990
 
108477
108991
 
108478
-
108479
108992
  class CanvasSizeInfo {
108480
- constructor() {
108993
+ constructor(zoomLevelHolder) {
108481
108994
  this.topSpacing = -1;
108482
108995
  this.betweenPageSpacing = 1;
108483
108996
  this.visibleAreaSize = new geometry_size.Size(-1, -1);
108484
108997
  this.scrollWidth = -1;
108485
108998
  this.pageVerticalInfo = new RenderPageVertivalInfo();
108999
+ this.zoomLevelHolder = zoomLevelHolder;
108486
109000
  this.scrollWidth = dom.DomUtils.getVerticalScrollBarWidth();
108487
109001
  }
108488
109002
  isInitialized() {
@@ -108494,12 +109008,10 @@ class CanvasSizeInfo {
108494
109008
  this.betweenPageSpacing = this.pageVerticalInfo.betweenPageSpacing;
108495
109009
  this.setVisibleAreaSize(SizeUtils.getClientWidth(canvas), SizeUtils.getClientHeight(canvas));
108496
109010
  }
108497
- findPageIndexByOffsetY(pages, offsetY) {
108498
- return Math.max(0, search.SearchUtils.normedInterpolationIndexOf(pages, (p) => this.getPageOffsetY(p), offsetY));
108499
- }
108500
109011
  getPageOffsetY(layoutPage) {
108501
109012
  return layoutPage.y + (this.topSpacing + layoutPage.index * this.betweenPageSpacing);
108502
109013
  }
109014
+ get zoomLevel() { return this.zoomLevelHolder.zoomLevel; }
108503
109015
  setVisibleAreaSize(width, height) {
108504
109016
  this.visibleAreaSize.width = width;
108505
109017
  this.visibleAreaSize.height = height;
@@ -108671,9 +109183,9 @@ class PrintLayoutViewCanvasListener extends CanvasListener {
108671
109183
  Log.paramsHolder.visualizerManager.show(DebugVisualizerType.LayoutBounds, this.layout, p.index); }));
108672
109184
  }
108673
109185
  updateVisiblePages() {
108674
- const pages = this.layout.pages;
108675
- this.viewManager.scroll.updatePageIndexesInfo(pages);
109186
+ this.viewManager.scroll.updatePageIndexesInfo(this.layout);
108676
109187
  const renderInterval = this.viewManager.scroll.renderPageIndexInterval();
109188
+ const pages = this.layout.pages;
108677
109189
  for (let pageIndex of this.handledPageIndexes)
108678
109190
  if (!renderInterval.contains(pageIndex)) {
108679
109191
  const page = pages[pageIndex];
@@ -109764,6 +110276,16 @@ class SelectionRenderer extends SelectionRendererBase {
109764
110276
  }
109765
110277
  }
109766
110278
 
110279
+ ;// CONCATENATED MODULE: ./src/common/model/changes/model/zoom-level.ts
110280
+
110281
+ class ZoomLevelChange {
110282
+ constructor(zoomLevel, prevZoomLevel) {
110283
+ this.zoomLevel = zoomLevel;
110284
+ this.prevZoomLevel = prevZoomLevel;
110285
+ this.type = ModelChangeType.ZoomLevelChanged;
110286
+ }
110287
+ }
110288
+
109767
110289
  ;// CONCATENATED MODULE: ./src/common/canvas/renderes/view-manager.ts
109768
110290
 
109769
110291
 
@@ -109789,6 +110311,9 @@ class SelectionRenderer extends SelectionRendererBase {
109789
110311
 
109790
110312
 
109791
110313
 
110314
+
110315
+
110316
+
109792
110317
 
109793
110318
 
109794
110319
 
@@ -109799,7 +110324,7 @@ class ViewManager {
109799
110324
  get canvasListener() { return this.canvasListeners[this.innerClientProperties.viewsSettings.viewType]; }
109800
110325
  constructor(control, canvas, eventManager, stringResources, horizontalRuler, inputController, innerClientProperties, readOnlyPropertyHolder, layoutFormatterManagerHolder, internalApi, fieldOptions) {
109801
110326
  this.cache = [];
109802
- this.sizes = new CanvasSizeInfo();
110327
+ this.sizes = new CanvasSizeInfo(this);
109803
110328
  this.control = control;
109804
110329
  this.readOnlyPropertyHolder = readOnlyPropertyHolder;
109805
110330
  this.layoutFormatterManagerHolder = layoutFormatterManagerHolder;
@@ -109834,6 +110359,13 @@ class ViewManager {
109834
110359
  this.selection.dispose();
109835
110360
  this.pagesContainer = null;
109836
110361
  }
110362
+ modelChanged(change) {
110363
+ if (change.type == ModelChangeType.ZoomLevelChanged) {
110364
+ this.canvas.scrollTop = this.canvas.scrollTop / change.prevZoomLevel * change.zoomLevel;
110365
+ this.pagesContainer.style.zoom = change.zoomLevel.toString();
110366
+ this.sizes.updateSize(this.canvas);
110367
+ }
110368
+ }
109837
110369
  adjust(force) {
109838
110370
  if ((force || !this.sizes.isInitialized()) && this.cache.length > 0) {
109839
110371
  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 +110403,9 @@ class ViewManager {
109871
110403
  const pageInfo = layoutSelection.selectionInfo.pageInfos[pageIndex];
109872
110404
  const item = pageInfo.oldItems[0];
109873
110405
  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);
110406
+ const x = MixedSize.fromLayout(layoutPage.x + this.cache[pageIndex].page.offsetLeft + item.x).useScale(this.zoomLevel);
110407
+ const y = MixedSize.fromLayout(this.sizes.getPageOffsetY(layoutPage) + item.y).useScale(this.zoomLevel);
110408
+ this.inputController.setPosition(x.UISize, y.UISize);
109875
110409
  }
109876
110410
  }
109877
110411
  NotifySearchSelectionLayoutChanged() {
@@ -109936,12 +110470,9 @@ class ViewManager {
109936
110470
  }
109937
110471
  get zoomLevel() { return this.innerClientProperties.viewsSettings.zoomLevel; }
109938
110472
  set zoomLevel(value) {
109939
- this.pagesContainer.style.zoom = value.toString();
110473
+ const prevZoomLevel = this.zoomLevel;
109940
110474
  this.innerClientProperties.viewsSettings.zoomLevel = value;
109941
- if (this.control.innerClientProperties.viewsSettings.isSimpleView) {
109942
- this.canvasManager.simpleViewCanvasSizeManager.changeSize(true);
109943
- }
109944
- this.control.horizontalRulerControl.update();
110475
+ this.control.modelManager.modelManipulator.notifyModelChanged(new ZoomLevelChange(this.zoomLevel, prevZoomLevel));
109945
110476
  }
109946
110477
  get allowZoom() { return ControlOptions.isEnabled(this.control.modelManager.richOptions.control.allowZoom); }
109947
110478
  set allowZoom(value) {
@@ -110564,17 +111095,17 @@ class InputEditorBase {
110564
111095
  clearTimeout(this.onKeyUpTimerId);
110565
111096
  }
110566
111097
  initialize() {
110567
- this.initializeIfNotReadOnly();
111098
+ this.initializeEditableState();
110568
111099
  this.initEvents();
110569
111100
  this.prevKeyCode = EMPTY_KEYCODE;
110570
111101
  }
110571
- initializeIfNotReadOnly() {
110572
- if ((this.control.readOnly !== ReadOnlyMode.Persistent || this.control.modelManager.clientMode) && !this.initializedIfNotReadOnly) {
110573
- this.initializedIfNotReadOnly = true;
110574
- this.initializeIfNotReadOnlyCore();
111102
+ initializeEditableState() {
111103
+ if (!this.editableStateInitialized) {
111104
+ this.editableStateInitialized = true;
111105
+ this.initializeEditableStateCore();
110575
111106
  }
110576
111107
  }
110577
- initializeIfNotReadOnlyCore() {
111108
+ initializeEditableStateCore() {
110578
111109
  }
110579
111110
  initEvents() {
110580
111111
  this.evtHandlersHolder.addListener(this.getEditableDocument(), "keydown", this.onKeyDown.bind(this));
@@ -110794,8 +111325,8 @@ class DivInputEditor extends InputEditorBase {
110794
111325
  clearTimeout(this.composEndTimerId);
110795
111326
  clearTimeout(this.onTextInputTimerId);
110796
111327
  }
110797
- initializeIfNotReadOnlyCore() {
110798
- this.inputElement.contentEditable = "true";
111328
+ initializeEditableStateCore() {
111329
+ this.inputElement.contentEditable = String(!this.control.isReadOnlyPersistent);
110799
111330
  this.clearInputElement();
110800
111331
  }
110801
111332
  setPosition(left, top) {
@@ -111043,11 +111574,11 @@ class IFrameInputEditor extends InputEditorBase {
111043
111574
  body.style.margin = "0px";
111044
111575
  body.style.overflow = "hidden";
111045
111576
  }
111046
- initializeIfNotReadOnlyCore() {
111577
+ initializeEditableStateCore() {
111047
111578
  if (browser.Browser.WebKitFamily)
111048
- this.editableDocument.body.setAttribute("contenteditable", "true");
111579
+ this.editableDocument.body.setAttribute("contenteditable", String(!this.control.isReadOnlyPersistent));
111049
111580
  else
111050
- this.editableDocument.designMode = "on";
111581
+ this.editableDocument.designMode = this.control.isReadOnlyPersistent ? "off" : "on";
111051
111582
  }
111052
111583
  createInputElement() {
111053
111584
  const element = document.createElement("IFRAME");
@@ -111186,7 +111717,7 @@ class IFrameInputEditor extends InputEditorBase {
111186
111717
  recreateIfNeeded() {
111187
111718
  const iframeDocument = this.inputElement.contentDocument || this.inputElement.contentWindow.document;
111188
111719
  if (!iframeDocument.body.hasAttribute("loaded")) {
111189
- this.initializedIfNotReadOnly = false;
111720
+ this.editableStateInitialized = false;
111190
111721
  this.createHierarchyCore();
111191
111722
  this.initialize();
111192
111723
  }
@@ -111221,6 +111752,7 @@ class IFrameInputEditor extends InputEditorBase {
111221
111752
  }
111222
111753
  startInputIME() {
111223
111754
  this.inputElement.style.position = "absolute";
111755
+ this.inputElement.style.zoom = this.control.viewManager.zoomLevel;
111224
111756
  const lastSelectedIntervalStartPosition = this.control.selection.lastSelectedInterval.start;
111225
111757
  const subDocument = this.control.selection.activeSubDocument;
111226
111758
  const layoutPosition = subDocument.isMain() ?
@@ -111234,6 +111766,9 @@ class IFrameInputEditor extends InputEditorBase {
111234
111766
  const propChar = HtmlConverter.getSizeSignificantRules(this.control.inputPosition.getMergedCharacterPropertiesRaw()).join(";");
111235
111767
  this.editableDocument.body.style.cssText = "padding: 0px; margin: 0px; overflow: hidden; color: transparent; " + propChar;
111236
111768
  this.editableDocument.body.style.textIndent = currentTextIndent;
111769
+ if (browser.Browser.Firefox && browser.Browser.Version <= 137) {
111770
+ this.editableDocument.body.style.zoom = this.control.viewManager.zoomLevel;
111771
+ }
111237
111772
  let layoutX = layoutPosition.getLayoutX(this.control.measurer, DocumentLayoutDetailsLevel.Row);
111238
111773
  const layoutPoint = new LayoutPoint(layoutPosition.pageIndex, layoutX, layoutPosition.getLayoutY(DocumentLayoutDetailsLevel.Row));
111239
111774
  const pageElement = this.control.viewManager.cache[layoutPoint.pageIndex].page;
@@ -112493,6 +113028,7 @@ class RulerMultiControl {
112493
113028
 
112494
113029
 
112495
113030
 
113031
+
112496
113032
  const TABLE_COLUMN_SEPARATOR_RULER_LINE_CLASS_NAME = " table";
112497
113033
  var SnapTo;
112498
113034
  (function (SnapTo) {
@@ -112525,7 +113061,7 @@ class RulerVerticalLineControl {
112525
113061
  dom.DomUtils.addClassName(this.rootElement, TABLE_COLUMN_SEPARATOR_RULER_LINE_CLASS_NAME);
112526
113062
  else
112527
113063
  dom.DomUtils.removeClassName(this.rootElement, TABLE_COLUMN_SEPARATOR_RULER_LINE_CLASS_NAME);
112528
- this.rootElement.style.height = this.canvas.clientHeight + "px";
113064
+ this.rootElement.style.height = SizeUtils.getClientHeight(this.canvas) + "px";
112529
113065
  this.rootElement.style.top = this.canvas.offsetTop + "px";
112530
113066
  this.rulerControlLeft = this.rulerControlElement.offsetLeft;
112531
113067
  this.rulerControlWidth = this.rulerControlElement.offsetWidth;
@@ -113585,13 +114121,9 @@ class RulerControl extends RulerBase {
113585
114121
  }
113586
114122
  adjust() {
113587
114123
  const viewWidth = this.controls.canvas.clientWidth;
113588
- if (viewWidth > this.pageWidth)
113589
- this.initialMarginLeftElement = (viewWidth - this.pageWidth - RULLER_NUMBER_CORRECTION * 2) / 2;
113590
- else {
113591
- const paddingLeft = dom.DomUtils.pxToInt(dom.DomUtils.getCurrentStyle(this.controls.canvas).paddingLeft);
113592
- const pageAreaBorderWidth = (this.controls.canvas.scrollWidth - paddingLeft - this.pageWidth) / 2;
113593
- this.initialMarginLeftElement = paddingLeft + pageAreaBorderWidth - RULLER_NUMBER_CORRECTION;
113594
- }
114124
+ const paddingLeft = dom.DomUtils.pxToInt(dom.DomUtils.getCurrentStyle(this.controls.canvas).paddingLeft);
114125
+ const minValue = paddingLeft - RULLER_NUMBER_CORRECTION;
114126
+ this.initialMarginLeftElement = Math.max((viewWidth - this.pageWidth - RULLER_NUMBER_CORRECTION * 2) / 2, minValue);
113595
114127
  this.rootElement.style.left = this.calculateLeftOffset();
113596
114128
  this.setPaddings();
113597
114129
  this.canHandleScroll = this.controls.canvas.scrollWidth > this.controls.canvas.offsetWidth;
@@ -115288,6 +115820,8 @@ class HorizontalRulerControl extends batch_updatable/* BatchUpdatableObject */.I
115288
115820
  case ModelChangeType.TableCellRemoved:
115289
115821
  case ModelChangeType.TableCellInserted:
115290
115822
  return HorizontalRulerEventType.FullReset;
115823
+ case ModelChangeType.ZoomLevelChanged:
115824
+ return HorizontalRulerEventType.FullReset;
115291
115825
  default:
115292
115826
  return HorizontalRulerEventType.None;
115293
115827
  }
@@ -115566,7 +116100,7 @@ class SearchManager {
115566
116100
 
115567
116101
 
115568
116102
  class RichEditCore {
115569
- get isReadOnlyPersistent() { return this.readOnly == ReadOnlyMode.Persistent; }
116103
+ get isReadOnlyPersistent() { return this.readOnly === ReadOnlyMode.Persistent; }
115570
116104
  get model() { return this.modelManager.model; }
115571
116105
  get isDisposed() {
115572
116106
  return this._isDisposed;
@@ -115661,15 +116195,19 @@ class RichEditCore {
115661
116195
  ]);
115662
116196
  this.modelManager.modelManipulator.clearListeners();
115663
116197
  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));
116198
+ this.modelManager.modelManipulator.addModelListener(this.inputPositionModelChangesListener);
116199
+ this.modelManager.modelManipulator.addModelListener(this.layoutFormatterManager.modelChangesListener);
116200
+ this.modelManager.modelManipulator.addModelListener(this.selectionModelChangesListener);
116201
+ this.modelManager.modelManipulator.addModelListener(new SpellCheckerModelChangesListener(this.spellChecker));
115668
116202
  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);
116203
+ this.modelManager.modelManipulator.addModelListener(this.barHolder.ribbon);
116204
+ this.modelManager.modelManipulator.addModelListener(this.barHolder.contextMenu);
116205
+ this.modelManager.modelManipulator.addModelListener(this.horizontalRulerControl);
116206
+ this.modelManager.modelManipulator.addModelListener(this.selectionFormatter);
116207
+ this.modelManager.modelManipulator.addModelListener(this.viewManager);
116208
+ this.modelManager.modelManipulator.addModelListener(this.viewManager.canvasManager.simpleViewCanvasSizeManager);
116209
+ this.modelManager.modelManipulator.addModelListener(this.viewManager.canvasScrollManager);
116210
+ this.modelManager.modelManipulator.addModelListener(this.viewManager.scroll);
115673
116211
  this.registerFontChangesListeners();
115674
116212
  this.selection.onChanged.add(this.searchManager);
115675
116213
  this.selection.onChanged.add(this.boxVisualizerManager.resizeBoxVisualizer);
@@ -115686,8 +116224,8 @@ class RichEditCore {
115686
116224
  this.selection.onChanged.add(this.globalEventDispatcher);
115687
116225
  this.selection.onChanged.add(this.barHolder.publicUiChangesListener);
115688
116226
  this.registerActiveContextTabManager();
115689
- this.modelManager.modelManipulator.modelListeners.push(this.globalEventDispatcher);
115690
- this.modelManager.modelManipulator.modelListeners.push(this.barHolder.publicUiChangesListener);
116227
+ this.modelManager.modelManipulator.addModelListener(this.globalEventDispatcher);
116228
+ this.modelManager.modelManipulator.addModelListener(this.barHolder.publicUiChangesListener);
115691
116229
  this.inputController.initExporter();
115692
116230
  }
115693
116231
  dispose() {
@@ -115775,8 +116313,8 @@ class RichEditCore {
115775
116313
  this.readOnly = ReadOnlyMode.Persistent;
115776
116314
  else if (!readOnly && this.readOnly === ReadOnlyMode.Persistent) {
115777
116315
  this.readOnly = ReadOnlyMode.None;
115778
- this.inputController.inputEditor.initializeIfNotReadOnly();
115779
116316
  }
116317
+ this.inputController.inputEditor.initializeEditableStateCore();
115780
116318
  }
115781
116319
  setWorkSession(sessionGuid, documentInfo) {
115782
116320
  this.sessionGuid = sessionGuid;
@@ -115810,12 +116348,7 @@ class RichEditCore {
115810
116348
  }
115811
116349
  closeDocument() {
115812
116350
  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
- }
116351
+ this.modelManager.modelManipulator.removeModelListener(this.globalEventDispatcher);
115819
116352
  this.barHolder.setEnabled(false);
115820
116353
  if (this.horizontalRulerControl)
115821
116354
  this.horizontalRulerControl.setEnable(false);
@@ -115902,6 +116435,7 @@ class RichEditCore {
115902
116435
  pictureRenderer: this.viewManager.renderer,
115903
116436
  uiUnitConverter: this.uiUnitConverter,
115904
116437
  lastMaxNumPages: this.layout.lastMaxNumPages,
116438
+ grids: this.layout.grids,
115905
116439
  pageIndex: this.selection.pageIndex,
115906
116440
  sessionGuid: this.sessionGuid,
115907
116441
  clientGuid: this.clientGuid,
@@ -117601,7 +118135,6 @@ var ViewTabCommandId;
117601
118135
  ViewTabCommandId[ViewTabCommandId["ToggleShowHorizontalRuler"] = 94] = "ToggleShowHorizontalRuler";
117602
118136
  ViewTabCommandId[ViewTabCommandId["ToggleFullScreen"] = 98] = "ToggleFullScreen";
117603
118137
  ViewTabCommandId[ViewTabCommandId["ChangeZoomLevel"] = 460] = "ChangeZoomLevel";
117604
- ViewTabCommandId[ViewTabCommandId["ToggleAllowZoom"] = 461] = "ToggleAllowZoom";
117605
118138
  })(ViewTabCommandId || (ViewTabCommandId = {}));
117606
118139
  var HeaderAndFooterTabCommandId;
117607
118140
  (function (HeaderAndFooterTabCommandId) {
@@ -122676,6 +123209,7 @@ function createInnerItems(items) {
122676
123209
  }
122677
123210
 
122678
123211
  ;// CONCATENATED MODULE: ./src/client/utils/focus-helper.ts
123212
+ var focus_helper_a;
122679
123213
  class FocusHelper {
122680
123214
  static preventFocusOnClick(element) {
122681
123215
  return new FocusBlocker(element);
@@ -122688,23 +123222,24 @@ class FocusBlocker {
122688
123222
  this.addEventListeners(target);
122689
123223
  }
122690
123224
  addEventListeners(element) {
122691
- element.addEventListener("pointerdown", this.onPointerDownBinded);
123225
+ element.addEventListener("mousedown", this.onPointerDownBinded);
122692
123226
  }
122693
123227
  removeEventListeners(element) {
122694
- element.removeEventListener("pointerdown", this.onPointerDownBinded);
123228
+ element.removeEventListener("mousedown", this.onPointerDownBinded);
122695
123229
  }
122696
123230
  onPointerDown(event) {
122697
123231
  for (const element of event.composedPath()) {
122698
- if (!(element instanceof HTMLElement))
122699
- continue;
122700
123232
  if (element === this.target) {
122701
123233
  event.preventDefault();
122702
123234
  break;
122703
123235
  }
122704
- if (!this.target.contains(element) || element.tabIndex > -1)
123236
+ if (element instanceof Element && this.isFocusableElement(element))
122705
123237
  break;
122706
123238
  }
122707
123239
  }
123240
+ isFocusableElement(element) {
123241
+ return element.matches(FocusBlocker.focusableSelector);
123242
+ }
122708
123243
  dispose() {
122709
123244
  if (this.target) {
122710
123245
  this.removeEventListeners(this.target);
@@ -122712,6 +123247,21 @@ class FocusBlocker {
122712
123247
  }
122713
123248
  }
122714
123249
  }
123250
+ focus_helper_a = FocusBlocker;
123251
+ FocusBlocker.focusableSelectors = [
123252
+ 'a[href]',
123253
+ 'area[href]',
123254
+ 'input',
123255
+ 'select',
123256
+ 'textarea',
123257
+ 'button',
123258
+ 'iframe',
123259
+ 'object',
123260
+ 'embed',
123261
+ '[tabindex]:not([tabindex="-1"])',
123262
+ '[contenteditable]:not([contenteditable="false"])'
123263
+ ];
123264
+ FocusBlocker.focusableSelector = focus_helper_a.focusableSelectors.join(',');
122715
123265
 
122716
123266
  ;// CONCATENATED MODULE: ./src/client/bars/ribbon.ts
122717
123267
 
@@ -128230,8 +128780,18 @@ class PrintDocumentOnClient extends CommandBase {
128230
128780
  return true;
128231
128781
  }
128232
128782
  printCore(htmlPrinting, printWindow, closePrintDialogWithHtmlPreview, needSwitchViewType, needToggleHiddenSymbols) {
128233
- if (htmlPrinting)
128234
- this.generatePrintDocument(printWindow, closePrintDialogWithHtmlPreview);
128783
+ if (htmlPrinting) {
128784
+ this.generatePrintDocument(printWindow.document);
128785
+ printWindow.focus();
128786
+ const interval = setInterval(() => {
128787
+ if (printWindow.document.readyState == 'complete') {
128788
+ printWindow.print();
128789
+ if (closePrintDialogWithHtmlPreview && !browser.Browser.AndroidMobilePlatform)
128790
+ printWindow.close();
128791
+ clearInterval(interval);
128792
+ }
128793
+ }, 100);
128794
+ }
128235
128795
  else {
128236
128796
  pdfExport(this.control, (blob, _stream) => {
128237
128797
  if (window.navigator.msSaveOrOpenBlob && !browser.Browser.Edge)
@@ -128246,12 +128806,27 @@ class PrintDocumentOnClient extends CommandBase {
128246
128806
  this.control.commandManager.getCommand(RichEditClientCommand.ToggleShowWhitespace).execute(this.control.commandManager.isPublicApiCall);
128247
128807
  this.control.commandManager.isPrintingProcessing = false;
128248
128808
  }
128249
- generatePrintDocument(printWindow, closePrintDialogWithHtmlPreview) {
128809
+ generatePrintDocument(document) {
128250
128810
  const height = this.control.layout.pages[0].height;
128251
128811
  const width = this.control.layout.pages[0].width;
128252
- let printWindowContent = `<!DOCTYPE html>
128253
- <html moznomarginboxes mozdisallowselectionprint>
128812
+ let fontLink = "";
128813
+ let divsToLoadFonts = "";
128814
+ const googleFonts = this.getGoogleFonts();
128815
+ if (googleFonts.length > 0) {
128816
+ fontLink = this.createGoogleFontStyleLink(googleFonts);
128817
+ divsToLoadFonts = googleFonts.reduce((prev, curr) => {
128818
+ const fontStyles = [`font-family:${curr}`, 'font-weight:bold', 'font-style:italic'];
128819
+ const result = [];
128820
+ for (let i = 1; i <= fontStyles.length; i++)
128821
+ result.push(`<div style="font-size:1pt;position:absolute;top:-1000px;${fontStyles.slice(0, i).join(';')}">${curr}</div>`);
128822
+ return prev ? [prev, ...result].join('\n') : result.join('\n');
128823
+ }, null);
128824
+ }
128825
+ document.documentElement.innerHTML =
128826
+ `<!DOCTYPE html>
128827
+ <html moznomarginboxes mozdisallowselectionprint>
128254
128828
  <head>
128829
+ ${fontLink}
128255
128830
  <style ${this._nonce ? `nonce="${this._nonce}"` : ''}>
128256
128831
  html, body {
128257
128832
  margin: 0;
@@ -128270,22 +128845,25 @@ class PrintDocumentOnClient extends CommandBase {
128270
128845
  </style>
128271
128846
  </head>
128272
128847
  <body>
128848
+ ${divsToLoadFonts}
128273
128849
  </body>
128274
- </html>`;
128275
- printWindow.document.write(printWindowContent);
128276
- printWindow.document.close();
128850
+ </html>`;
128277
128851
  this.generatePrintContent().forEach((child) => {
128278
- printWindow.document.body.appendChild(child);
128852
+ document.body.appendChild(child);
128279
128853
  });
128280
- printWindow.focus();
128281
- const interval = setInterval(() => {
128282
- if (printWindow.document.readyState == 'complete') {
128283
- printWindow.print();
128284
- if (closePrintDialogWithHtmlPreview && !browser.Browser.AndroidMobilePlatform)
128285
- printWindow.close();
128286
- clearInterval(interval);
128287
- }
128288
- }, 100);
128854
+ }
128855
+ getGoogleFonts() {
128856
+ return this.control.modelManager.richOptions.fonts.fonts.reduce((res, f) => {
128857
+ if (f.useGoogleFonts)
128858
+ res.push(f.fontFamily);
128859
+ return res;
128860
+ }, []);
128861
+ }
128862
+ createGoogleFontStyleLink(fontFamilies) {
128863
+ const url = new URL('https://fonts.googleapis.com/css');
128864
+ url.searchParams.append('family', fontFamilies.join('|'));
128865
+ url.searchParams.append('display', 'auto');
128866
+ return `<link href="${url.toString()}" rel="stylesheet" />`;
128289
128867
  }
128290
128868
  generatePrintContent() {
128291
128869
  const layout = this.control.layout;
@@ -129778,7 +130356,7 @@ class ApplyStyleCommand extends CommandBase {
129778
130356
  paragraphStyle = StylesManager.getPresetParagraphStyleByName(styleName).clone();
129779
130357
  isPresetStyle = true;
129780
130358
  }
129781
- this.applyParagraphStyle(subDocumentInterval, paragraphStyle, isPresetStyle, parameter.keepDirectFormatting);
130359
+ this.applyParagraphStyle(subDocumentInterval, paragraphStyle, isPresetStyle, parameter.keepCustomFormatting);
129782
130360
  }
129783
130361
  else if (!StylesManager.isParagraphStyle(parameter.styleName) && state.characterStyleChangeEnabled) {
129784
130362
  const styleName = StylesManager.getStyleNameWithoutPrefix(parameter.styleName);
@@ -129813,7 +130391,7 @@ class ApplyStyleCommand extends CommandBase {
129813
130391
  this.modelManipulator.style.applyCharacterStyle(subDocumentInterval, characterStyle, false);
129814
130392
  }
129815
130393
  }
129816
- applyParagraphStyle(subDocumentInterval, style, isPresetStyle, keepDirectFormatting = false) {
130394
+ applyParagraphStyle(subDocumentInterval, style, isPresetStyle, keepCustomFormatting = false) {
129817
130395
  const count = this.calculateAffectedParagraphCount(subDocumentInterval);
129818
130396
  if (count > 0 && ControlOptions.isEnabled(this.control.modelManager.richOptions.control.paragraphStyle)) {
129819
130397
  const { interval, subDocument } = subDocumentInterval;
@@ -129826,8 +130404,7 @@ class ApplyStyleCommand extends CommandBase {
129826
130404
  style = isPresetStyle ? modelManipulator.model.stylesManager.addParagraphStyle(style) : style;
129827
130405
  this.history.addAndRedo(new ApplyParagraphStyleHistoryItem(modelManipulator, paragraphSubDocumentInterval, style));
129828
130406
  this.history.addAndRedo(new ParagraphUseValueHistoryItem(modelManipulator, paragraphSubDocumentInterval, 0));
129829
- if (!keepDirectFormatting)
129830
- this.history.addAndRedo(new FontUseValueHistoryItem(modelManipulator, paragraphSubDocumentInterval, 0));
130407
+ this.history.addAndRedo(new FontUseValueHistoryItem(modelManipulator, paragraphSubDocumentInterval, 0, keepCustomFormatting));
129831
130408
  this.history.addAndRedo(new AddParagraphToListHistoryItem(modelManipulator, subDocument, paragraphIndex, NumberingList.NumberingListNotSettedIndex, -1));
129832
130409
  }
129833
130410
  }
@@ -129867,25 +130444,6 @@ class ApplyStyleCommand extends CommandBase {
129867
130444
  }
129868
130445
  }
129869
130446
 
129870
- ;// CONCATENATED MODULE: ./src/common/commands/layout/toggle-allow-zoom-command.ts
129871
-
129872
-
129873
- class ToggleAllowZoomCommand extends CommandBase {
129874
- getState() {
129875
- return new SimpleCommandState(this.isEnabled(), this.control.viewManager.allowZoom);
129876
- }
129877
- executeCore(_state, options) {
129878
- const allowZoom = this.control.viewManager.allowZoom;
129879
- if (options.param === allowZoom)
129880
- return false;
129881
- this.control.viewManager.allowZoom = !allowZoom;
129882
- return true;
129883
- }
129884
- isEnabledInReadOnlyMode() {
129885
- return true;
129886
- }
129887
- }
129888
-
129889
130447
  ;// CONCATENATED MODULE: ./src/common/commands/layout/change-zoom-level-command.ts
129890
130448
 
129891
130449
 
@@ -136415,7 +136973,7 @@ class SetParagraphLevelCommandBase extends CommandBase {
136415
136973
  if (!paragraphStyle)
136416
136974
  paragraphStyle = StylesManager.getPresetParagraphStyleByName(styleName);
136417
136975
  if (paragraphStyle) {
136418
- const commandOptions = new CommandSimpleOptions(this.control, { styleName: StylesManager.paragraphPrefix + styleName, keepDirectFormatting: true });
136976
+ const commandOptions = new CommandSimpleOptions(this.control, { styleName: StylesManager.paragraphPrefix + styleName, keepCustomFormatting: true });
136419
136977
  this.commandManager.getCommand(RichEditClientCommand.ChangeStyle).execute(this.commandManager.isPublicApiCall, commandOptions);
136420
136978
  }
136421
136979
  else {
@@ -136678,7 +137236,6 @@ class UndoCommand extends CommandBase {
136678
137236
 
136679
137237
 
136680
137238
 
136681
-
136682
137239
 
136683
137240
 
136684
137241
  class CommandManager {
@@ -137064,7 +137621,6 @@ class CommandManager {
137064
137621
  this.createCommand(control, RichEditClientCommand.SwitchToSimpleView, SwitchToSimpleViewCommand);
137065
137622
  this.createCommand(control, RichEditClientCommand.SwitchToPrintLayoutView, SwitchToPrintLayoutViewCommand);
137066
137623
  this.createCommand(control, RichEditClientCommand.ChangeZoomLevel, ChangeZoomLevelCommand);
137067
- this.createCommand(control, RichEditClientCommand.ToggleAllowZoom, ToggleAllowZoomCommand);
137068
137624
  this.createCommand(control, RichEditClientCommand.ShowErrorLoadPictureMessage, ShowLoadPictureErrorDialogCommand);
137069
137625
  this.assingCommand(RichEditClientCommand.PrintDocumentOnClient, new PrintDocumentOnClient(control, printNonce));
137070
137626
  }
@@ -137347,7 +137903,8 @@ class MailMergeCommand extends CommandBase {
137347
137903
  return true;
137348
137904
  }
137349
137905
  executeCore(_state, options) {
137350
- const docxExporter = new DocxExporter(this.control.modelManager.modelManipulator, new DocxExportOptions());
137906
+ const exportModelOptions = this.control.getExportModelOptions();
137907
+ const docxExporter = new DocxExporter(exportModelOptions, new DocxExportOptions());
137351
137908
  docxExporter.exportToBlob((blob) => {
137352
137909
  const docxImporter = new Importer(new ImporterOptions());
137353
137910
  docxImporter.importFromFile(blob, this.control.modelManager.richOptions, (documentModel, formatImagesImporter) => {
@@ -137491,191 +138048,6 @@ class MailMergeCommandParameters {
137491
138048
  }
137492
138049
  }
137493
138050
 
137494
- ;// CONCATENATED MODULE: ./src/common/model/fonts/google-fonts.ts
137495
-
137496
-
137497
-
137498
-
137499
-
137500
- class GoogleFontsApi {
137501
- constructor(controlFontsCache, fonts) {
137502
- this.fontFamilyToFontInfo = {};
137503
- this.fonts = fonts;
137504
- this.controlFontsCache = controlFontsCache;
137505
- const params = this.fonts.map(font => {
137506
- const fontFamily = font.getFontFamilies()[0];
137507
- this.fontFamilyToFontInfo[fontFamily] = font;
137508
- return `${fontFamily.replace(' ', '+')}:regular,bold,italic,bolditalic`;
137509
- }).join('|');
137510
- this.uri = `https://fonts.googleapis.com/css?family=${params}`;
137511
- }
137512
- loadControlFonts(callback) {
137513
- const notLoaded = () => callback([]);
137514
- const xhr = new XMLHttpRequest();
137515
- xhr.onload = (_e) => {
137516
- const responce = xhr.response;
137517
- if (xhr.status >= 400 || !responce)
137518
- notLoaded();
137519
- else
137520
- callback(this.parseResponce(responce));
137521
- };
137522
- xhr.onerror = () => notLoaded();
137523
- xhr.open("GET", this.uri, true);
137524
- xhr.responseType = "text";
137525
- xhr.send();
137526
- }
137527
- parseResponce(responce) {
137528
- const result = [];
137529
- let regexpResult;
137530
- const regexp = /@font-face\s*\{([\s\S]*?)\}/gm;
137531
- while (regexpResult = regexp.exec(responce)) {
137532
- const fontInfo = regexpResult[1];
137533
- const fontFamily = fontInfo.match(/font-family:\s*'(\w+\s*\w*)';/);
137534
- if (fontFamily && fontFamily[1]) {
137535
- const url = GoogleFontsApi.parseSrc(fontInfo.match(/src:\s*(.+);/));
137536
- const fontStyle = fontInfo.match(/font-style:\s*(\w+);/);
137537
- const fontWeight = fontInfo.match(/font-weight:\s*(.+);/);
137538
- const unicodeRange = fontInfo.match(/unicode-range:\s*(.+);/);
137539
- const desc = new FontFaceDescriptors();
137540
- if (fontStyle && fontStyle[1])
137541
- desc.style = fontStyle[1];
137542
- if (fontWeight && fontWeight[1])
137543
- desc.weight = fontWeight[1];
137544
- if (unicodeRange && unicodeRange[1])
137545
- desc.unicodeRange = unicodeRange[1];
137546
- const controlFont = this.controlFontsCache.addFont(new ControlFont(fontFamily[1], desc));
137547
- if (url && utils_list.ListUtils.allOf(controlFont.sourceUrls, s => s != url)) {
137548
- controlFont.sourceUrls.unshift(url);
137549
- const fontInfo = this.fontFamilyToFontInfo[controlFont.fontFamily];
137550
- const controlFontType = new class_flag.Flag();
137551
- controlFontType.set(ControlFontType.Bold, controlFont.descriptors.msWordBold());
137552
- controlFontType.set(ControlFontType.Italic, controlFont.descriptors.msWordItalic());
137553
- fontInfo.controlFontMap[controlFontType.getValue()] = controlFont.cacheKey;
137554
- result.push(controlFont);
137555
- }
137556
- }
137557
- }
137558
- return result;
137559
- }
137560
- static parseSrc(matchSrc) {
137561
- if (matchSrc && matchSrc[1])
137562
- for (let src of matchSrc[1].split(',')) {
137563
- const matchUrl = src.match(/url\((.+)\)\s*format\('(\w+)'\)/);
137564
- if (matchUrl)
137565
- return matchUrl[1];
137566
- }
137567
- return null;
137568
- }
137569
- }
137570
-
137571
- ;// CONCATENATED MODULE: ./src/common/model/creator/cache.ts
137572
-
137573
-
137574
- class ModelCacheFiller {
137575
- constructor(model, fontsSettings) {
137576
- this.model = model;
137577
- this.fontsSettings = fontsSettings;
137578
- }
137579
- fillCache() {
137580
- this.makeFontMap();
137581
- this.replaceCharProperties(this.model, "defaultCharacterProperties");
137582
- this.model.characterStyles.forEach(style => this.replaceCharProperties(style, "maskedCharacterProperties"));
137583
- this.model.paragraphStyles.forEach(style => this.replaceCharProperties(style, "maskedCharacterProperties"));
137584
- this.model.tableStyles.forEach(style => {
137585
- this.replaceCharProperties(style.baseConditionalStyle, 'maskedCharacterProperties');
137586
- number/* NumberMapUtils */.j.forEach(style.conditionalStyles, style => this.replaceCharProperties(style, 'maskedCharacterProperties'));
137587
- });
137588
- number/* NumberMapUtils */.j.forEach(this.model.subDocuments, sd => this.replaceInModelSubDocument(sd));
137589
- }
137590
- makeFontMap() {
137591
- const fontInfoCache = this.model.cache.fontInfoCache;
137592
- const fontsSettings = this.fontsSettings;
137593
- this.fontMap = Object.create(null);
137594
- fontInfoCache.getAllFonts().forEach(font => this.fontMap[font.name] = fontsSettings.getPermittedFont(fontInfoCache, font));
137595
- }
137596
- replaceCharProperties(object, propKey) {
137597
- const props = object[propKey];
137598
- props.fontInfo = props.fontInfo ? this.fontMap[props.fontInfo.name] : this.model.defaultCharacterProperties.fontInfo;
137599
- if (props instanceof MaskedCharacterProperties)
137600
- object[propKey] = this.model.cache.maskedCharacterPropertiesCache.getItem(props);
137601
- else
137602
- object[propKey] = this.model.cache.mergedCharacterPropertiesCache.getItem(props);
137603
- }
137604
- replaceInModelSubDocument(sd) {
137605
- sd.paragraphs.forEach(p => p.resetParagraphMergedProperties());
137606
- sd.chunks.forEach(chunk => {
137607
- chunk.textRuns.forEach(run => {
137608
- this.replaceCharProperties(run, 'maskedCharacterProperties');
137609
- run.resetCharacterMergedProperties();
137610
- });
137611
- });
137612
- }
137613
- }
137614
-
137615
- ;// CONCATENATED MODULE: ./src/common/model/creator/font-corrector.ts
137616
-
137617
-
137618
-
137619
-
137620
-
137621
-
137622
-
137623
- class FontCorrector {
137624
- get fontInfoCache() {
137625
- return this.model.cache.fontInfoCache;
137626
- }
137627
- get controlFontsCache() {
137628
- return this.model.cache.controlFontsCache;
137629
- }
137630
- constructor(modelManipulator, model, fonts) {
137631
- this.modelManipulator = modelManipulator;
137632
- this.model = model;
137633
- this.fonts = fonts;
137634
- }
137635
- correct() {
137636
- this.addAndLoad();
137637
- new ModelCacheFiller(this.model, this.fonts).fillCache();
137638
- this.removeRedundant();
137639
- this.modelManipulator.raiseFontListChanged(this.fontInfoCache);
137640
- }
137641
- addAndLoad() {
137642
- this.fonts.fonts.forEach(font => {
137643
- let newFont = this.fontInfoCache.getItemByName(font.name);
137644
- if (!newFont)
137645
- newFont = this.fontInfoCache.addFont(font.name, font.fontFamily);
137646
- else
137647
- newFont.cssString = FontInfoCache.correctCssString(font.fontFamily);
137648
- const addControlFont = (uri, desc) => {
137649
- const controlFont = this.controlFontsCache.addFont(new ControlFont(font.fontFamily, desc));
137650
- controlFont.sourceUrls.unshift(uri);
137651
- const controlFontType = new class_flag.Flag();
137652
- controlFontType.set(ControlFontType.Bold, controlFont.descriptors.msWordBold());
137653
- controlFontType.set(ControlFontType.Italic, controlFont.descriptors.msWordItalic());
137654
- newFont.controlFontMap[controlFontType.getValue()] = controlFont.cacheKey;
137655
- };
137656
- if (font.regularFontUri)
137657
- addControlFont(font.regularFontUri, FontFaceDescriptors.create({}));
137658
- if (font.boldFontUri)
137659
- addControlFont(font.boldFontUri, FontFaceDescriptors.create({ weight: 'bold' }));
137660
- if (font.italicFontUri)
137661
- addControlFont(font.italicFontUri, FontFaceDescriptors.create({ style: 'italic' }));
137662
- if (font.boldItalicFontUri)
137663
- addControlFont(font.boldItalicFontUri, FontFaceDescriptors.create({ weight: 'bold', style: 'italic' }));
137664
- if (font.googleFontsResponse)
137665
- new GoogleFontsApi(this.controlFontsCache, [newFont]).parseResponce(font.googleFontsResponse);
137666
- else if (font.useGoogleFonts)
137667
- new GoogleFontsApi(this.controlFontsCache, [newFont]).loadControlFonts(_createdFonts => { });
137668
- });
137669
- }
137670
- removeRedundant() {
137671
- if (this.fonts.limitedFonts) {
137672
- const map = {};
137673
- this.fonts.fonts.forEach(f => map[f.name] = f);
137674
- this.fontInfoCache.removeItems(font => !map[font.name]);
137675
- }
137676
- }
137677
- }
137678
-
137679
138051
  ;// CONCATENATED MODULE: ./src/client/commands/new-document-command.ts
137680
138052
 
137681
138053
 
@@ -141092,8 +141464,8 @@ class DialogManager {
141092
141464
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_type.js
141093
141465
  /**
141094
141466
  * DevExtreme (esm/__internal/core/utils/m_type.js)
141095
- * Version: 25.1.1-alpha
141096
- * Build date: Wed Apr 02 2025
141467
+ * Version: 25.1.3
141468
+ * Build date: Wed Jun 25 2025
141097
141469
  *
141098
141470
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141099
141471
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141195,8 +141567,8 @@ const isEvent = function(object) {
141195
141567
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/type.js
141196
141568
  /**
141197
141569
  * DevExtreme (esm/core/utils/type.js)
141198
- * Version: 25.1.1-alpha
141199
- * Build date: Wed Apr 02 2025
141570
+ * Version: 25.1.3
141571
+ * Build date: Wed Jun 25 2025
141200
141572
  *
141201
141573
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141202
141574
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141206,8 +141578,8 @@ const isEvent = function(object) {
141206
141578
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_extend.js
141207
141579
  /**
141208
141580
  * DevExtreme (esm/__internal/core/utils/m_extend.js)
141209
- * Version: 25.1.1-alpha
141210
- * Build date: Wed Apr 02 2025
141581
+ * Version: 25.1.3
141582
+ * Build date: Wed Jun 25 2025
141211
141583
  *
141212
141584
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141213
141585
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141265,8 +141637,8 @@ const extend = function(target) {
141265
141637
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/extend.js
141266
141638
  /**
141267
141639
  * DevExtreme (esm/core/utils/extend.js)
141268
- * Version: 25.1.1-alpha
141269
- * Build date: Wed Apr 02 2025
141640
+ * Version: 25.1.3
141641
+ * Build date: Wed Jun 25 2025
141270
141642
  *
141271
141643
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141272
141644
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141276,8 +141648,8 @@ const extend = function(target) {
141276
141648
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_string.js
141277
141649
  /**
141278
141650
  * DevExtreme (esm/__internal/core/utils/m_string.js)
141279
- * Version: 25.1.1-alpha
141280
- * Build date: Wed Apr 02 2025
141651
+ * Version: 25.1.3
141652
+ * Build date: Wed Jun 25 2025
141281
141653
  *
141282
141654
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141283
141655
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141352,8 +141724,8 @@ const isEmpty = function() {
141352
141724
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/string.js
141353
141725
  /**
141354
141726
  * DevExtreme (esm/core/utils/string.js)
141355
- * Version: 25.1.1-alpha
141356
- * Build date: Wed Apr 02 2025
141727
+ * Version: 25.1.3
141728
+ * Build date: Wed Jun 25 2025
141357
141729
  *
141358
141730
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141359
141731
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141363,20 +141735,20 @@ const isEmpty = function() {
141363
141735
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/version.js
141364
141736
  /**
141365
141737
  * DevExtreme (esm/core/version.js)
141366
- * Version: 25.1.1-alpha
141367
- * Build date: Wed Apr 02 2025
141738
+ * Version: 25.1.3
141739
+ * Build date: Wed Jun 25 2025
141368
141740
  *
141369
141741
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141370
141742
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
141371
141743
  */
141372
- const version = "25.1.1";
141373
- const fullVersion = "25.1.1";
141744
+ const version = "25.1.3";
141745
+ const fullVersion = "25.1.3";
141374
141746
 
141375
141747
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_console.js
141376
141748
  /**
141377
141749
  * DevExtreme (esm/__internal/core/utils/m_console.js)
141378
- * Version: 25.1.1-alpha
141379
- * Build date: Wed Apr 02 2025
141750
+ * Version: 25.1.3
141751
+ * Build date: Wed Jun 25 2025
141380
141752
  *
141381
141753
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141382
141754
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141416,8 +141788,8 @@ const debug = function() {
141416
141788
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_error.js
141417
141789
  /**
141418
141790
  * DevExtreme (esm/__internal/core/utils/m_error.js)
141419
- * Version: 25.1.1-alpha
141420
- * Build date: Wed Apr 02 2025
141791
+ * Version: 25.1.3
141792
+ * Build date: Wed Jun 25 2025
141421
141793
  *
141422
141794
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141423
141795
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141488,8 +141860,8 @@ function error(baseErrors, errors) {
141488
141860
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/error.js
141489
141861
  /**
141490
141862
  * DevExtreme (esm/core/utils/error.js)
141491
- * Version: 25.1.1-alpha
141492
- * Build date: Wed Apr 02 2025
141863
+ * Version: 25.1.3
141864
+ * Build date: Wed Jun 25 2025
141493
141865
  *
141494
141866
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141495
141867
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141500,8 +141872,8 @@ function error(baseErrors, errors) {
141500
141872
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/m_errors.js
141501
141873
  /**
141502
141874
  * DevExtreme (esm/__internal/core/m_errors.js)
141503
- * Version: 25.1.1-alpha
141504
- * Build date: Wed Apr 02 2025
141875
+ * Version: 25.1.3
141876
+ * Build date: Wed Jun 25 2025
141505
141877
  *
141506
141878
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141507
141879
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141538,6 +141910,7 @@ function error(baseErrors, errors) {
141538
141910
  E0110: "Unknown validation group is detected",
141539
141911
  E0120: "Adapter for a DevExpressValidator component cannot be configured",
141540
141912
  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.",
141913
+ E0122: "AIIntegration: The sendRequest method is missing.",
141541
141914
  W0000: "'{0}' is deprecated in {1}. {2}",
141542
141915
  W0001: "{0} - '{1}' option is deprecated in {2}. {3}",
141543
141916
  W0002: "{0} - '{1}' method is deprecated in {2}. {3}",
@@ -141567,8 +141940,8 @@ function error(baseErrors, errors) {
141567
141940
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/errors.js
141568
141941
  /**
141569
141942
  * DevExtreme (esm/core/errors.js)
141570
- * Version: 25.1.1-alpha
141571
- * Build date: Wed Apr 02 2025
141943
+ * Version: 25.1.3
141944
+ * Build date: Wed Jun 25 2025
141572
141945
  *
141573
141946
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141574
141947
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141579,8 +141952,8 @@ function error(baseErrors, errors) {
141579
141952
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/m_class.js
141580
141953
  /**
141581
141954
  * DevExtreme (esm/__internal/core/m_class.js)
141582
- * Version: 25.1.1-alpha
141583
- * Build date: Wed Apr 02 2025
141955
+ * Version: 25.1.3
141956
+ * Build date: Wed Jun 25 2025
141584
141957
  *
141585
141958
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141586
141959
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141713,8 +142086,8 @@ classImpl.abstract = m_class_abstract;
141713
142086
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/class.js
141714
142087
  /**
141715
142088
  * DevExtreme (esm/core/class.js)
141716
- * Version: 25.1.1-alpha
141717
- * Build date: Wed Apr 02 2025
142089
+ * Version: 25.1.3
142090
+ * Build date: Wed Jun 25 2025
141718
142091
  *
141719
142092
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141720
142093
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141725,8 +142098,8 @@ classImpl.abstract = m_class_abstract;
141725
142098
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_iterator.js
141726
142099
  /**
141727
142100
  * DevExtreme (esm/__internal/core/utils/m_iterator.js)
141728
- * Version: 25.1.1-alpha
141729
- * Build date: Wed Apr 02 2025
142101
+ * Version: 25.1.3
142102
+ * Build date: Wed Jun 25 2025
141730
142103
  *
141731
142104
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141732
142105
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141775,8 +142148,8 @@ const reverseEach = (array, callback) => {
141775
142148
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_dependency_injector.js
141776
142149
  /**
141777
142150
  * DevExtreme (esm/__internal/core/utils/m_dependency_injector.js)
141778
- * Version: 25.1.1-alpha
141779
- * Build date: Wed Apr 02 2025
142151
+ * Version: 25.1.3
142152
+ * Build date: Wed Jun 25 2025
141780
142153
  *
141781
142154
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141782
142155
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141825,8 +142198,8 @@ function injector(object) {
141825
142198
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/dependency_injector.js
141826
142199
  /**
141827
142200
  * DevExtreme (esm/core/utils/dependency_injector.js)
141828
- * Version: 25.1.1-alpha
141829
- * Build date: Wed Apr 02 2025
142201
+ * Version: 25.1.3
142202
+ * Build date: Wed Jun 25 2025
141830
142203
  *
141831
142204
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141832
142205
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141837,8 +142210,8 @@ function injector(object) {
141837
142210
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/ldml/date.formatter.js
141838
142211
  /**
141839
142212
  * DevExtreme (esm/common/core/localization/ldml/date.formatter.js)
141840
- * Version: 25.1.1-alpha
141841
- * Build date: Wed Apr 02 2025
142213
+ * Version: 25.1.3
142214
+ * Build date: Wed Jun 25 2025
141842
142215
  *
141843
142216
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141844
142217
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -141991,8 +142364,8 @@ function _extends() {
141991
142364
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/m_config.js
141992
142365
  /**
141993
142366
  * DevExtreme (esm/__internal/core/m_config.js)
141994
- * Version: 25.1.1-alpha
141995
- * Build date: Wed Apr 02 2025
142367
+ * Version: 25.1.3
142368
+ * Build date: Wed Jun 25 2025
141996
142369
  *
141997
142370
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
141998
142371
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142067,8 +142440,8 @@ if ("undefined" !== typeof DevExpress && DevExpress.config) {
142067
142440
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/config.js
142068
142441
  /**
142069
142442
  * DevExtreme (esm/common/config.js)
142070
- * Version: 25.1.1-alpha
142071
- * Build date: Wed Apr 02 2025
142443
+ * Version: 25.1.3
142444
+ * Build date: Wed Jun 25 2025
142072
142445
  *
142073
142446
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142074
142447
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142079,8 +142452,8 @@ if ("undefined" !== typeof DevExpress && DevExpress.config) {
142079
142452
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/m_guid.js
142080
142453
  /**
142081
142454
  * DevExtreme (esm/__internal/core/m_guid.js)
142082
- * Version: 25.1.1-alpha
142083
- * Build date: Wed Apr 02 2025
142455
+ * Version: 25.1.3
142456
+ * Build date: Wed Jun 25 2025
142084
142457
  *
142085
142458
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142086
142459
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142122,8 +142495,8 @@ const Guid = core_class.inherit({
142122
142495
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/guid.js
142123
142496
  /**
142124
142497
  * DevExtreme (esm/common/guid.js)
142125
- * Version: 25.1.1-alpha
142126
- * Build date: Wed Apr 02 2025
142498
+ * Version: 25.1.3
142499
+ * Build date: Wed Jun 25 2025
142127
142500
  *
142128
142501
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142129
142502
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142134,8 +142507,8 @@ const Guid = core_class.inherit({
142134
142507
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/templates/m_template_engine_registry.js
142135
142508
  /**
142136
142509
  * DevExtreme (esm/__internal/core/templates/m_template_engine_registry.js)
142137
- * Version: 25.1.1-alpha
142138
- * Build date: Wed Apr 02 2025
142510
+ * Version: 25.1.3
142511
+ * Build date: Wed Jun 25 2025
142139
142512
  *
142140
142513
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142141
142514
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142164,8 +142537,8 @@ function getCurrentTemplateEngine() {
142164
142537
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/templates/template_engine_registry.js
142165
142538
  /**
142166
142539
  * DevExtreme (esm/core/templates/template_engine_registry.js)
142167
- * Version: 25.1.1-alpha
142168
- * Build date: Wed Apr 02 2025
142540
+ * Version: 25.1.3
142541
+ * Build date: Wed Jun 25 2025
142169
142542
  *
142170
142543
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142171
142544
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142175,8 +142548,8 @@ function getCurrentTemplateEngine() {
142175
142548
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/m_set_template_engine.js
142176
142549
  /**
142177
142550
  * DevExtreme (esm/__internal/core/m_set_template_engine.js)
142178
- * Version: 25.1.1-alpha
142179
- * Build date: Wed Apr 02 2025
142551
+ * Version: 25.1.3
142552
+ * Build date: Wed Jun 25 2025
142180
142553
  *
142181
142554
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142182
142555
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142186,8 +142559,8 @@ function getCurrentTemplateEngine() {
142186
142559
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/set_template_engine.js
142187
142560
  /**
142188
142561
  * DevExtreme (esm/common/set_template_engine.js)
142189
- * Version: 25.1.1-alpha
142190
- * Build date: Wed Apr 02 2025
142562
+ * Version: 25.1.3
142563
+ * Build date: Wed Jun 25 2025
142191
142564
  *
142192
142565
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142193
142566
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142198,8 +142571,8 @@ function getCurrentTemplateEngine() {
142198
142571
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common.js
142199
142572
  /**
142200
142573
  * DevExtreme (esm/common.js)
142201
- * Version: 25.1.1-alpha
142202
- * Build date: Wed Apr 02 2025
142574
+ * Version: 25.1.3
142575
+ * Build date: Wed Jun 25 2025
142203
142576
  *
142204
142577
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142205
142578
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142212,8 +142585,8 @@ function getCurrentTemplateEngine() {
142212
142585
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/config.js
142213
142586
  /**
142214
142587
  * DevExtreme (esm/core/config.js)
142215
- * Version: 25.1.1-alpha
142216
- * Build date: Wed Apr 02 2025
142588
+ * Version: 25.1.3
142589
+ * Build date: Wed Jun 25 2025
142217
142590
  *
142218
142591
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142219
142592
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142224,8 +142597,8 @@ function getCurrentTemplateEngine() {
142224
142597
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/guid.js
142225
142598
  /**
142226
142599
  * DevExtreme (esm/core/guid.js)
142227
- * Version: 25.1.1-alpha
142228
- * Build date: Wed Apr 02 2025
142600
+ * Version: 25.1.3
142601
+ * Build date: Wed Jun 25 2025
142229
142602
  *
142230
142603
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142231
142604
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142236,8 +142609,8 @@ function getCurrentTemplateEngine() {
142236
142609
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/console.js
142237
142610
  /**
142238
142611
  * DevExtreme (esm/core/utils/console.js)
142239
- * Version: 25.1.1-alpha
142240
- * Build date: Wed Apr 02 2025
142612
+ * Version: 25.1.3
142613
+ * Build date: Wed Jun 25 2025
142241
142614
  *
142242
142615
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142243
142616
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142247,8 +142620,8 @@ function getCurrentTemplateEngine() {
142247
142620
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_variable_wrapper.js
142248
142621
  /**
142249
142622
  * DevExtreme (esm/__internal/core/utils/m_variable_wrapper.js)
142250
- * Version: 25.1.1-alpha
142251
- * Build date: Wed Apr 02 2025
142623
+ * Version: 25.1.3
142624
+ * Build date: Wed Jun 25 2025
142252
142625
  *
142253
142626
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142254
142627
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142277,8 +142650,8 @@ const m_variable_wrapper_variableWrapper = dependency_injector({
142277
142650
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/variable_wrapper.js
142278
142651
  /**
142279
142652
  * DevExtreme (esm/core/utils/variable_wrapper.js)
142280
- * Version: 25.1.1-alpha
142281
- * Build date: Wed Apr 02 2025
142653
+ * Version: 25.1.3
142654
+ * Build date: Wed Jun 25 2025
142282
142655
  *
142283
142656
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142284
142657
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142289,8 +142662,8 @@ const m_variable_wrapper_variableWrapper = dependency_injector({
142289
142662
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_object.js
142290
142663
  /**
142291
142664
  * DevExtreme (esm/__internal/core/utils/m_object.js)
142292
- * Version: 25.1.1-alpha
142293
- * Build date: Wed Apr 02 2025
142665
+ * Version: 25.1.3
142666
+ * Build date: Wed Jun 25 2025
142294
142667
  *
142295
142668
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142296
142669
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142390,8 +142763,8 @@ const m_object_deepExtendArraySafe = function(target, changes, extendComplexObje
142390
142763
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/object.js
142391
142764
  /**
142392
142765
  * DevExtreme (esm/core/utils/object.js)
142393
- * Version: 25.1.1-alpha
142394
- * Build date: Wed Apr 02 2025
142766
+ * Version: 25.1.3
142767
+ * Build date: Wed Jun 25 2025
142395
142768
  *
142396
142769
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142397
142770
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142401,8 +142774,8 @@ const m_object_deepExtendArraySafe = function(target, changes, extendComplexObje
142401
142774
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_data.js
142402
142775
  /**
142403
142776
  * DevExtreme (esm/__internal/core/utils/m_data.js)
142404
- * Version: 25.1.1-alpha
142405
- * Build date: Wed Apr 02 2025
142777
+ * Version: 25.1.3
142778
+ * Build date: Wed Jun 25 2025
142406
142779
  *
142407
142780
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142408
142781
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142598,8 +142971,8 @@ const toComparable = function(value, caseSensitive) {
142598
142971
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/data.js
142599
142972
  /**
142600
142973
  * DevExtreme (esm/core/utils/data.js)
142601
- * Version: 25.1.1-alpha
142602
- * Build date: Wed Apr 02 2025
142974
+ * Version: 25.1.3
142975
+ * Build date: Wed Jun 25 2025
142603
142976
  *
142604
142977
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142605
142978
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142609,8 +142982,8 @@ const toComparable = function(value, caseSensitive) {
142609
142982
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_callbacks.js
142610
142983
  /**
142611
142984
  * DevExtreme (esm/__internal/core/utils/m_callbacks.js)
142612
- * Version: 25.1.1-alpha
142613
- * Build date: Wed Apr 02 2025
142985
+ * Version: 25.1.3
142986
+ * Build date: Wed Jun 25 2025
142614
142987
  *
142615
142988
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142616
142989
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142705,8 +143078,8 @@ const Callbacks = function(options) {
142705
143078
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/callbacks.js
142706
143079
  /**
142707
143080
  * DevExtreme (esm/core/utils/callbacks.js)
142708
- * Version: 25.1.1-alpha
142709
- * Build date: Wed Apr 02 2025
143081
+ * Version: 25.1.3
143082
+ * Build date: Wed Jun 25 2025
142710
143083
  *
142711
143084
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142712
143085
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142717,8 +143090,8 @@ const Callbacks = function(options) {
142717
143090
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_deferred.js
142718
143091
  /**
142719
143092
  * DevExtreme (esm/__internal/core/utils/m_deferred.js)
142720
- * Version: 25.1.1-alpha
142721
- * Build date: Wed Apr 02 2025
143093
+ * Version: 25.1.3
143094
+ * Build date: Wed Jun 25 2025
142722
143095
  *
142723
143096
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142724
143097
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142883,8 +143256,8 @@ function when() {
142883
143256
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/deferred.js
142884
143257
  /**
142885
143258
  * DevExtreme (esm/core/utils/deferred.js)
142886
- * Version: 25.1.1-alpha
142887
- * Build date: Wed Apr 02 2025
143259
+ * Version: 25.1.3
143260
+ * Build date: Wed Jun 25 2025
142888
143261
  *
142889
143262
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142890
143263
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -142894,8 +143267,8 @@ function when() {
142894
143267
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_common.js
142895
143268
  /**
142896
143269
  * DevExtreme (esm/__internal/core/utils/m_common.js)
142897
- * Version: 25.1.1-alpha
142898
- * Build date: Wed Apr 02 2025
143270
+ * Version: 25.1.3
143271
+ * Build date: Wed Jun 25 2025
142899
143272
  *
142900
143273
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
142901
143274
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143190,8 +143563,8 @@ const equalByValue = function(value1, value2) {
143190
143563
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/common.js
143191
143564
  /**
143192
143565
  * DevExtreme (esm/core/utils/common.js)
143193
- * Version: 25.1.1-alpha
143194
- * Build date: Wed Apr 02 2025
143566
+ * Version: 25.1.3
143567
+ * Build date: Wed Jun 25 2025
143195
143568
  *
143196
143569
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143197
143570
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143201,8 +143574,8 @@ const equalByValue = function(value1, value2) {
143201
143574
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/__internal/core/utils/m_math.js
143202
143575
  /**
143203
143576
  * DevExtreme (esm/__internal/core/utils/m_math.js)
143204
- * Version: 25.1.1-alpha
143205
- * Build date: Wed Apr 02 2025
143577
+ * Version: 25.1.3
143578
+ * Build date: Wed Jun 25 2025
143206
143579
  *
143207
143580
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143208
143581
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143371,8 +143744,8 @@ function roundFloatPart(value) {
143371
143744
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/core/utils/math.js
143372
143745
  /**
143373
143746
  * DevExtreme (esm/core/utils/math.js)
143374
- * Version: 25.1.1-alpha
143375
- * Build date: Wed Apr 02 2025
143747
+ * Version: 25.1.3
143748
+ * Build date: Wed Jun 25 2025
143376
143749
  *
143377
143750
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143378
143751
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143382,8 +143755,8 @@ function roundFloatPart(value) {
143382
143755
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/utils.js
143383
143756
  /**
143384
143757
  * DevExtreme (esm/common/core/localization/utils.js)
143385
- * Version: 25.1.1-alpha
143386
- * Build date: Wed Apr 02 2025
143758
+ * Version: 25.1.3
143759
+ * Build date: Wed Jun 25 2025
143387
143760
  *
143388
143761
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143389
143762
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143410,8 +143783,8 @@ function toFixed(value, precision) {
143410
143783
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/ldml/number.js
143411
143784
  /**
143412
143785
  * DevExtreme (esm/common/core/localization/ldml/number.js)
143413
- * Version: 25.1.1-alpha
143414
- * Build date: Wed Apr 02 2025
143786
+ * Version: 25.1.3
143787
+ * Build date: Wed Jun 25 2025
143415
143788
  *
143416
143789
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143417
143790
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143652,8 +144025,8 @@ function getFormat(formatter) {
143652
144025
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/currency.js
143653
144026
  /**
143654
144027
  * DevExtreme (esm/common/core/localization/currency.js)
143655
- * Version: 25.1.1-alpha
143656
- * Build date: Wed Apr 02 2025
144028
+ * Version: 25.1.3
144029
+ * Build date: Wed Jun 25 2025
143657
144030
  *
143658
144031
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143659
144032
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143685,8 +144058,8 @@ function getFormat(formatter) {
143685
144058
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/cldr-data/parent_locales.js
143686
144059
  /**
143687
144060
  * DevExtreme (esm/common/core/localization/cldr-data/parent_locales.js)
143688
- * Version: 25.1.1-alpha
143689
- * Build date: Wed Apr 02 2025
144061
+ * Version: 25.1.3
144062
+ * Build date: Wed Jun 25 2025
143690
144063
  *
143691
144064
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143692
144065
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143871,8 +144244,8 @@ function getFormat(formatter) {
143871
144244
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/parentLocale.js
143872
144245
  /**
143873
144246
  * DevExtreme (esm/common/core/localization/parentLocale.js)
143874
- * Version: 25.1.1-alpha
143875
- * Build date: Wed Apr 02 2025
144247
+ * Version: 25.1.3
144248
+ * Build date: Wed Jun 25 2025
143876
144249
  *
143877
144250
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143878
144251
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143889,8 +144262,8 @@ const PARENT_LOCALE_SEPARATOR = "-";
143889
144262
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/core.js
143890
144263
  /**
143891
144264
  * DevExtreme (esm/common/core/localization/core.js)
143892
- * Version: 25.1.1-alpha
143893
- * Build date: Wed Apr 02 2025
144265
+ * Version: 25.1.3
144266
+ * Build date: Wed Jun 25 2025
143894
144267
  *
143895
144268
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143896
144269
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143931,8 +144304,8 @@ const DEFAULT_LOCALE = "en";
143931
144304
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/open_xml_currency_format.js
143932
144305
  /**
143933
144306
  * DevExtreme (esm/common/core/localization/open_xml_currency_format.js)
143934
- * Version: 25.1.1-alpha
143935
- * Build date: Wed Apr 02 2025
144307
+ * Version: 25.1.3
144308
+ * Build date: Wed Jun 25 2025
143936
144309
  *
143937
144310
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143938
144311
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -143974,8 +144347,8 @@ const DEFAULT_LOCALE = "en";
143974
144347
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/cldr-data/accounting_formats.js
143975
144348
  /**
143976
144349
  * DevExtreme (esm/common/core/localization/cldr-data/accounting_formats.js)
143977
- * Version: 25.1.1-alpha
143978
- * Build date: Wed Apr 02 2025
144350
+ * Version: 25.1.3
144351
+ * Build date: Wed Jun 25 2025
143979
144352
  *
143980
144353
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
143981
144354
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -144561,8 +144934,8 @@ const DEFAULT_LOCALE = "en";
144561
144934
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/intl/number.js
144562
144935
  /**
144563
144936
  * DevExtreme (esm/common/core/localization/intl/number.js)
144564
- * Version: 25.1.1-alpha
144565
- * Build date: Wed Apr 02 2025
144937
+ * Version: 25.1.3
144938
+ * Build date: Wed Jun 25 2025
144566
144939
  *
144567
144940
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
144568
144941
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -144683,8 +145056,8 @@ const getCurrencyFormatter = currency => new Intl.NumberFormat(core.locale(), {
144683
145056
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/number.js
144684
145057
  /**
144685
145058
  * DevExtreme (esm/common/core/localization/number.js)
144686
- * Version: 25.1.1-alpha
144687
- * Build date: Wed Apr 02 2025
145059
+ * Version: 25.1.3
145060
+ * Build date: Wed Jun 25 2025
144688
145061
  *
144689
145062
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
144690
145063
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -144991,8 +145364,8 @@ if (hasIntl) {
144991
145364
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/ldml/date.format.js
144992
145365
  /**
144993
145366
  * DevExtreme (esm/common/core/localization/ldml/date.format.js)
144994
- * Version: 25.1.1-alpha
144995
- * Build date: Wed Apr 02 2025
145367
+ * Version: 25.1.3
145368
+ * Build date: Wed Jun 25 2025
144996
145369
  *
144997
145370
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
144998
145371
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145189,8 +145562,8 @@ const date_format_getFormat = function(formatter) {
145189
145562
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/ldml/date.parser.js
145190
145563
  /**
145191
145564
  * DevExtreme (esm/common/core/localization/ldml/date.parser.js)
145192
- * Version: 25.1.1-alpha
145193
- * Build date: Wed Apr 02 2025
145565
+ * Version: 25.1.3
145566
+ * Build date: Wed Jun 25 2025
145194
145567
  *
145195
145568
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
145196
145569
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145508,8 +145881,8 @@ const getParser = function(format, dateParts) {
145508
145881
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/default_date_names.js
145509
145882
  /**
145510
145883
  * DevExtreme (esm/common/core/localization/default_date_names.js)
145511
- * Version: 25.1.1-alpha
145512
- * Build date: Wed Apr 02 2025
145884
+ * Version: 25.1.3
145885
+ * Build date: Wed Jun 25 2025
145513
145886
  *
145514
145887
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
145515
145888
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145545,8 +145918,8 @@ const cutCaptions = (captions, format) => {
145545
145918
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/cldr-data/first_day_of_week_data.js
145546
145919
  /**
145547
145920
  * 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
145921
+ * Version: 25.1.3
145922
+ * Build date: Wed Jun 25 2025
145550
145923
  *
145551
145924
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
145552
145925
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -145745,8 +146118,8 @@ const cutCaptions = (captions, format) => {
145745
146118
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/intl/date.js
145746
146119
  /**
145747
146120
  * DevExtreme (esm/common/core/localization/intl/date.js)
145748
- * Version: 25.1.1-alpha
145749
- * Build date: Wed Apr 02 2025
146121
+ * Version: 25.1.3
146122
+ * Build date: Wed Jun 25 2025
145750
146123
  *
145751
146124
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
145752
146125
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -146063,8 +146436,8 @@ const monthNameStrategies = {
146063
146436
  ;// CONCATENATED MODULE: ./node_modules/devextreme/esm/common/core/localization/date.js
146064
146437
  /**
146065
146438
  * DevExtreme (esm/common/core/localization/date.js)
146066
- * Version: 25.1.1-alpha
146067
- * Build date: Wed Apr 02 2025
146439
+ * Version: 25.1.3
146440
+ * Build date: Wed Jun 25 2025
146068
146441
  *
146069
146442
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
146070
146443
  * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
@@ -147306,7 +147679,7 @@ class ClientRichEdit {
147306
147679
  this.contextMenuSettings = settings.contextMenuSettings;
147307
147680
  this.fullScreenHelper = new FullScreenHelper(element);
147308
147681
  if (true)
147309
- external_DevExpress_config_default()(JSON.parse(atob('eyJsaWNlbnNlS2V5IjoiZXdvZ0lDSm1iM0p0WVhRaU9pQXhMQW9nSUNKcGJuUmxjbTVoYkZWellXZGxTV1FpT2lBaVJWTTBSVlk0YmxKaVpYVk9OVGRWVEdSbFlVeHhZeUlLZlE9PS5MN1o0YXlNMTRnUWtScExSaEt6MGZSMDU5d1E5cWhhMi9ESThnRG83SEJxbFM2L1BMNVRtTmRrTVRzMmdUL3oyUFVQZDgyZGRMM0dsbjZiQUM0aXB4cUI0Y1ozT1FkZjhVc1pmMm9TOCs5SnliZGdCS1diYnFseXdEMUVFbkwwNmV0eWdtQT09In0=')));
147682
+ external_DevExpress_config_default()(JSON.parse(atob('eyJsaWNlbnNlS2V5IjoiZXdvZ0lDSm1iM0p0WVhRaU9pQXhMQW9nSUNKcGJuUmxjbTVoYkZWellXZGxTV1FpT2lBaVZqSlJjRkZ0U2xaWVYzazJUbVY0YTNFNVdHczVieUlLZlE9PS5EMTNKeDFkWmJlWFE0bGVWQ05XZnk5U2FLeWFHbmxMOE1xYkF2YzloQ3FVZTlBajJWYzJUS2RaU01RR05xVkVkSjMrTWZQKzQrQTBqMFhCSGxEczdEV2xpWFlNK01EMEVCaEJVQ0JTVzVmeWRGSzhyOGpEMDRzV2ZKYS9CTDRFTGdLOWZpZz09In0=')));
147310
147683
  this.prepareElement(element, settings);
147311
147684
  this.initDefaultFontsAndStyles();
147312
147685
  this.initBars(settings.ribbon, settings.fonts);
@@ -147490,7 +147863,7 @@ class ClientRichEdit {
147490
147863
  const ribbonBar = new ClientRibbonBar(this, this.element, ribbon, fonts);
147491
147864
  this.barHolder.ribbon = ribbonBar;
147492
147865
  if (this.core) {
147493
- this.core.modelManager.modelManipulator.modelListeners.push(this.barHolder.ribbon);
147866
+ this.core.modelManager.modelManipulator.addModelListener(this.barHolder.ribbon);
147494
147867
  this.core.selection.onChanged.add(this.barHolder.ribbon);
147495
147868
  ribbonBar.initialize(this.core);
147496
147869
  }
@@ -148452,9 +148825,6 @@ function executeApiCommandCore(commandManager, commandId, parameter) {
148452
148825
  break;
148453
148826
  }
148454
148827
  ;
148455
- case ViewTabCommandId.ToggleAllowZoom:
148456
- parameter = undefined;
148457
- break;
148458
148828
  case HeaderAndFooterTabCommandId.GoToPageHeader:
148459
148829
  parameter = undefined;
148460
148830
  break;
@@ -149767,11 +150137,11 @@ class RichEditPublic {
149767
150137
  command.execute(true, type);
149768
150138
  }
149769
150139
  get readOnly() {
149770
- return this._native.core.readOnly == ReadOnlyMode.Persistent;
150140
+ return this._native.core.readOnly === ReadOnlyMode.Persistent;
149771
150141
  }
149772
150142
  set readOnly(value) {
149773
150143
  if (this.readOnly != value) {
149774
- this._native.core.readOnly = value ? ReadOnlyMode.Persistent : ReadOnlyMode.None;
150144
+ this._native.core.setPersistentReadOnly(value);
149775
150145
  this._native.core.barHolder.updateItemsState();
149776
150146
  this._native.core.horizontalRulerControl.update();
149777
150147
  this._native.core.beginUpdate();