@univerjs/docs-ui 1.0.1 → 1.0.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 (87) hide show
  1. package/lib/cjs/index.js +111 -50
  2. package/lib/cjs/locale/ar-SA.js +1 -0
  3. package/lib/cjs/locale/ca-ES.js +1 -0
  4. package/lib/cjs/locale/de-DE.js +1 -0
  5. package/lib/cjs/locale/en-US.js +1 -0
  6. package/lib/cjs/locale/es-ES.js +1 -0
  7. package/lib/cjs/locale/fa-IR.js +1 -0
  8. package/lib/cjs/locale/fr-FR.js +1 -0
  9. package/lib/cjs/locale/id-ID.js +1 -0
  10. package/lib/cjs/locale/it-IT.js +1 -0
  11. package/lib/cjs/locale/ja-JP.js +1 -0
  12. package/lib/cjs/locale/ko-KR.js +1 -0
  13. package/lib/cjs/locale/pl-PL.js +1 -0
  14. package/lib/cjs/locale/pt-BR.js +1 -0
  15. package/lib/cjs/locale/ru-RU.js +1 -0
  16. package/lib/cjs/locale/sk-SK.js +1 -0
  17. package/lib/cjs/locale/vi-VN.js +1 -0
  18. package/lib/cjs/locale/zh-CN.js +1 -0
  19. package/lib/cjs/locale/zh-HK.js +1 -0
  20. package/lib/cjs/locale/zh-TW.js +1 -0
  21. package/lib/es/index.js +110 -51
  22. package/lib/es/locale/ar-SA.js +1 -0
  23. package/lib/es/locale/ca-ES.js +1 -0
  24. package/lib/es/locale/de-DE.js +1 -0
  25. package/lib/es/locale/en-US.js +1 -0
  26. package/lib/es/locale/es-ES.js +1 -0
  27. package/lib/es/locale/fa-IR.js +1 -0
  28. package/lib/es/locale/fr-FR.js +1 -0
  29. package/lib/es/locale/id-ID.js +1 -0
  30. package/lib/es/locale/it-IT.js +1 -0
  31. package/lib/es/locale/ja-JP.js +1 -0
  32. package/lib/es/locale/ko-KR.js +1 -0
  33. package/lib/es/locale/pl-PL.js +1 -0
  34. package/lib/es/locale/pt-BR.js +1 -0
  35. package/lib/es/locale/ru-RU.js +1 -0
  36. package/lib/es/locale/sk-SK.js +1 -0
  37. package/lib/es/locale/vi-VN.js +1 -0
  38. package/lib/es/locale/zh-CN.js +1 -0
  39. package/lib/es/locale/zh-HK.js +1 -0
  40. package/lib/es/locale/zh-TW.js +1 -0
  41. package/lib/index.js +110 -51
  42. package/lib/locale/ar-SA.js +1 -0
  43. package/lib/locale/ca-ES.js +1 -0
  44. package/lib/locale/de-DE.js +1 -0
  45. package/lib/locale/en-US.js +1 -0
  46. package/lib/locale/es-ES.js +1 -0
  47. package/lib/locale/fa-IR.js +1 -0
  48. package/lib/locale/fr-FR.js +1 -0
  49. package/lib/locale/id-ID.js +1 -0
  50. package/lib/locale/it-IT.js +1 -0
  51. package/lib/locale/ja-JP.js +1 -0
  52. package/lib/locale/ko-KR.js +1 -0
  53. package/lib/locale/pl-PL.js +1 -0
  54. package/lib/locale/pt-BR.js +1 -0
  55. package/lib/locale/ru-RU.js +1 -0
  56. package/lib/locale/sk-SK.js +1 -0
  57. package/lib/locale/vi-VN.js +1 -0
  58. package/lib/locale/zh-CN.js +1 -0
  59. package/lib/locale/zh-HK.js +1 -0
  60. package/lib/locale/zh-TW.js +1 -0
  61. package/lib/types/commands/commands/clipboard.inner.command.d.ts +2 -0
  62. package/lib/types/index.d.ts +1 -0
  63. package/lib/types/locale/en-US.d.ts +1 -0
  64. package/lib/types/menu/context-menu.d.ts +1 -0
  65. package/lib/types/services/editor/editor-runtime-config.d.ts +2 -0
  66. package/lib/types/services/selection/text-range.d.ts +6 -1
  67. package/lib/umd/index.js +8 -8
  68. package/lib/umd/locale/ar-SA.js +1 -1
  69. package/lib/umd/locale/ca-ES.js +1 -1
  70. package/lib/umd/locale/de-DE.js +1 -1
  71. package/lib/umd/locale/en-US.js +1 -1
  72. package/lib/umd/locale/es-ES.js +1 -1
  73. package/lib/umd/locale/fa-IR.js +1 -1
  74. package/lib/umd/locale/fr-FR.js +1 -1
  75. package/lib/umd/locale/id-ID.js +1 -1
  76. package/lib/umd/locale/it-IT.js +1 -1
  77. package/lib/umd/locale/ja-JP.js +1 -1
  78. package/lib/umd/locale/ko-KR.js +1 -1
  79. package/lib/umd/locale/pl-PL.js +1 -1
  80. package/lib/umd/locale/pt-BR.js +1 -1
  81. package/lib/umd/locale/ru-RU.js +1 -1
  82. package/lib/umd/locale/sk-SK.js +1 -1
  83. package/lib/umd/locale/vi-VN.js +1 -1
  84. package/lib/umd/locale/zh-CN.js +1 -1
  85. package/lib/umd/locale/zh-HK.js +1 -1
  86. package/lib/umd/locale/zh-TW.js +1 -1
  87. package/package.json +11 -11
package/lib/cjs/index.js CHANGED
@@ -2335,7 +2335,7 @@ function getLineBounding(pointsGroup) {
2335
2335
  });
2336
2336
  }
2337
2337
  var TextRange = class {
2338
- constructor(_scene, _document, _docSkeleton, anchorNodePosition, focusNodePosition, style = _univerjs_engine_render.NORMAL_TEXT_SELECTION_PLUGIN_STYLE, _segmentId = "", _segmentPage = -1) {
2338
+ constructor(_scene, _document, _docSkeleton, anchorNodePosition, focusNodePosition, style = _univerjs_engine_render.NORMAL_TEXT_SELECTION_PLUGIN_STYLE, _segmentId = "", _segmentPage = -1, _logicalRange) {
2339
2339
  this._scene = _scene;
2340
2340
  this._document = _document;
2341
2341
  this._docSkeleton = _docSkeleton;
@@ -2344,6 +2344,7 @@ var TextRange = class {
2344
2344
  this.style = style;
2345
2345
  this._segmentId = _segmentId;
2346
2346
  this._segmentPage = _segmentPage;
2347
+ this._logicalRange = _logicalRange;
2347
2348
  _defineProperty(this, "rangeType", _univerjs_core.DOC_RANGE_TYPE.TEXT);
2348
2349
  _defineProperty(this, "_current", false);
2349
2350
  _defineProperty(this, "_rangeShape", void 0);
@@ -2373,6 +2374,7 @@ var TextRange = class {
2373
2374
  }
2374
2375
  get startOffset() {
2375
2376
  var _this$_docSkeleton$ge;
2377
+ if (this._logicalRange) return Math.min(this._logicalRange.startOffset, this._logicalRange.endOffset);
2376
2378
  const { startOffset } = getOneTextSelectionRange(this._cursorList) ?? {};
2377
2379
  const body = (_this$_docSkeleton$ge = this._docSkeleton.getViewModel().getDataModel().getSelfOrHeaderFooterModel(this._segmentId)) === null || _this$_docSkeleton$ge === void 0 ? void 0 : _this$_docSkeleton$ge.getBody();
2378
2380
  if (startOffset == null || body == null) return startOffset;
@@ -2381,6 +2383,7 @@ var TextRange = class {
2381
2383
  }
2382
2384
  get endOffset() {
2383
2385
  var _this$_docSkeleton$ge2;
2386
+ if (this._logicalRange) return Math.max(this._logicalRange.startOffset, this._logicalRange.endOffset);
2384
2387
  const { endOffset } = getOneTextSelectionRange(this._cursorList) ?? {};
2385
2388
  const body = (_this$_docSkeleton$ge2 = this._docSkeleton.getViewModel().getDataModel().getSelfOrHeaderFooterModel(this._segmentId)) === null || _this$_docSkeleton$ge2 === void 0 ? void 0 : _this$_docSkeleton$ge2.getBody();
2386
2389
  if (endOffset == null || body == null) return endOffset;
@@ -2404,6 +2407,7 @@ var TextRange = class {
2404
2407
  return end;
2405
2408
  }
2406
2409
  get direction() {
2410
+ if (this._logicalRange) return this._logicalRange.startOffset <= this._logicalRange.endOffset ? _univerjs_core.RANGE_DIRECTION.FORWARD : _univerjs_core.RANGE_DIRECTION.BACKWARD;
2407
2411
  const { collapsed, anchorNodePosition, focusNodePosition } = this;
2408
2412
  if (collapsed || anchorNodePosition == null || focusNodePosition == null) return _univerjs_core.RANGE_DIRECTION.NONE;
2409
2413
  return compareNodePositionLogic(anchorNodePosition, focusNodePosition) ? _univerjs_core.RANGE_DIRECTION.FORWARD : _univerjs_core.RANGE_DIRECTION.BACKWARD;
@@ -2490,6 +2494,7 @@ var TextRange = class {
2490
2494
  }
2491
2495
  refresh() {
2492
2496
  var _this$_anchorShape6, _this$_rangeShape2;
2497
+ this._refreshLogicalRangePositions();
2493
2498
  const { _document, _docSkeleton } = this;
2494
2499
  const anchor = this.anchorNodePosition;
2495
2500
  const focus = this.focusNodePosition;
@@ -2512,6 +2517,26 @@ var TextRange = class {
2512
2517
  this._setCursorList(cursorList);
2513
2518
  if (borderBoxPointGroup.length > 0) this._createOrUpdateRange(borderBoxPointGroup, docsLeft, docsTop);
2514
2519
  }
2520
+ _refreshLogicalRangePositions() {
2521
+ var _this$_docSkeleton$ge3;
2522
+ const range = this._logicalRange;
2523
+ if (!range) return;
2524
+ const start = Math.min(range.startOffset, range.endOffset);
2525
+ const end = Math.max(range.startOffset, range.endOffset);
2526
+ let first;
2527
+ let last;
2528
+ for (const page of ((_this$_docSkeleton$ge3 = this._docSkeleton.getSkeletonData()) === null || _this$_docSkeleton$ge3 === void 0 ? void 0 : _this$_docSkeleton$ge3.pages) ?? []) {
2529
+ if (page.isLayoutPlaceholder || page.isMaterializationPlaceholder || page.ed < start || page.st >= end) continue;
2530
+ const positions = findDocRangeNodePositions(this._docSkeleton, Math.max(start, page.st), Math.min(end - 1, page.ed), this._segmentId, this._segmentPage);
2531
+ if (positions) {
2532
+ first ??= positions.startPosition;
2533
+ last = positions.endPosition;
2534
+ }
2535
+ }
2536
+ const forward = range.startOffset <= range.endOffset;
2537
+ this.anchorNodePosition = forward ? first : last;
2538
+ this.focusNodePosition = forward ? last : first;
2539
+ }
2515
2540
  _isEmpty() {
2516
2541
  return this.anchorNodePosition == null && this.focusNodePosition == null;
2517
2542
  }
@@ -2826,7 +2851,17 @@ function getColumnInputBoundaryCollapsedPosition(anchorPosition, focusPosition,
2826
2851
  function getTextRangeFromCharIndex(startOffset, endOffset, scene, document, skeleton, style, segmentId, segmentPage, startIsBack = true, endIsBack = true) {
2827
2852
  const startNodePosition = skeleton.findNodePositionByCharIndex(startOffset, startIsBack, segmentId, segmentPage);
2828
2853
  const endNodePosition = skeleton.findNodePositionByCharIndex(endOffset, endIsBack, segmentId, segmentPage);
2829
- if (startNodePosition == null || endNodePosition == null) return;
2854
+ if (startNodePosition == null || endNodePosition == null) {
2855
+ var _skeleton$getSkeleton;
2856
+ const pages = (_skeleton$getSkeleton = skeleton.getSkeletonData()) === null || _skeleton$getSkeleton === void 0 ? void 0 : _skeleton$getSkeleton.pages;
2857
+ const startPage = pages === null || pages === void 0 ? void 0 : pages[skeleton.findBodyPageIndexByCharIndex(startOffset)];
2858
+ const endPage = pages === null || pages === void 0 ? void 0 : pages[skeleton.findBodyPageIndexByCharIndex(endOffset)];
2859
+ if (segmentId === "" && startOffset !== endOffset && startPage && endPage && (startPage.isMaterializationPlaceholder || endPage.isMaterializationPlaceholder)) return new TextRange(scene, document, skeleton, void 0, void 0, style, segmentId, segmentPage, {
2860
+ startOffset: startIsBack ? startOffset : startOffset + 1,
2861
+ endOffset: endIsBack ? endOffset : endOffset + 1
2862
+ });
2863
+ return;
2864
+ }
2830
2865
  return new TextRange(scene, document, skeleton, startNodePosition, endNodePosition, style, segmentId, segmentPage);
2831
2866
  }
2832
2867
  function getRectRangeFromCharIndex(startOffset, endOffset, scene, document, skeleton, style, segmentId, segmentPage) {
@@ -2838,7 +2873,14 @@ function getRectRangeFromCharIndex(startOffset, endOffset, scene, document, skel
2838
2873
  function getRangeListFromCharIndex(startOffset, endOffset, scene, document, skeleton, style, segmentId, segmentPage) {
2839
2874
  const startNodePosition = skeleton.findNodePositionByCharIndex(startOffset, true, segmentId, segmentPage);
2840
2875
  const endNodePosition = skeleton.findNodePositionByCharIndex(endOffset, true, segmentId, segmentPage);
2841
- if (startNodePosition == null || endNodePosition == null) return;
2876
+ if (startNodePosition == null || endNodePosition == null) {
2877
+ const textRange = getTextRangeFromCharIndex(startOffset, endOffset, scene, document, skeleton, style, segmentId, segmentPage);
2878
+ if (textRange) return {
2879
+ textRanges: [textRange],
2880
+ rectRanges: []
2881
+ };
2882
+ return;
2883
+ }
2842
2884
  return getRangeListFromSelection(startNodePosition, endNodePosition, scene, document, skeleton, style, segmentId, segmentPage);
2843
2885
  }
2844
2886
  function getRangeListFromSelection(anchorPosition, focusPosition, scene, document, skeleton, style, segmentId, segmentPage) {
@@ -5147,7 +5189,7 @@ const InnerPasteCommand = {
5147
5189
  unitId: targetUnitId,
5148
5190
  subUnitId: targetUnitId
5149
5191
  };
5150
- const selections = docSelectionManagerService.getTextRanges(selectionParams) ?? [];
5192
+ const selections = params.selections ?? docSelectionManagerService.getTextRanges(selectionParams) ?? [];
5151
5193
  const rectRanges = docSelectionManagerService.getRectRanges(selectionParams) ?? [];
5152
5194
  const selectionInfo = docSelectionManagerService.getSelectionInfo(selectionParams);
5153
5195
  const { body: sourceBody, tableSource, drawings } = doc;
@@ -13818,6 +13860,10 @@ let DocRenderController = class DocRenderController extends _univerjs_core.RxDis
13818
13860
  } finally {
13819
13861
  this._docLayoutExecutorService.recordHydrationDuration(this._context.unitId, _univerjs_core.Tools.now() - hydrationStartedAt);
13820
13862
  }
13863
+ this._textSelectionManagerService.refreshSelection({
13864
+ unitId: this._context.unitId,
13865
+ subUnitId: this._context.unitId
13866
+ }, false);
13821
13867
  this._markDocumentRenderDirty();
13822
13868
  }
13823
13869
  }
@@ -17985,13 +18031,20 @@ function PasteSpecialMenuFactory(accessor) {
17985
18031
  id: DocPasteSpecialCommand.id,
17986
18032
  type: _univerjs_ui.MenuItemType.SELECTOR,
17987
18033
  icon: "DocPasteOptionsIcon",
17988
- title: "docs-ui.pasteOptions.title",
17989
- tooltip: "docs-ui.pasteOptions.title",
18034
+ title: "docs-ui.pasteOptions.special",
18035
+ tooltip: "docs-ui.pasteOptions.special",
17990
18036
  selections: DOC_PASTE_OPTIONS.map((option) => ({ ...option })),
17991
18037
  disabled$: disableMenuWithoutDocumentUnitPermission(accessor, _univerjs_protocol.UnitAction.Edit),
17992
18038
  hidden$: (0, _univerjs_ui.getMenuHiddenObservable)(accessor, _univerjs_core.UniverInstanceType.UNIVER_DOC)
17993
18039
  };
17994
18040
  }
18041
+ function PasteRibbonMenuFactory(accessor) {
18042
+ return {
18043
+ ...PasteSpecialMenuFactory(accessor),
18044
+ title: "docs-ui.rightClick.paste",
18045
+ hidden$: (0, rxjs.combineLatest)([(0, _univerjs_ui.getMenuHiddenObservable)(accessor, _univerjs_core.UniverInstanceType.UNIVER_DOC), accessor.get(_univerjs_core.IContextService).subscribeContextValue$(_univerjs_core.FOCUSING_SHAPE_TEXT_EDITOR).pipe((0, rxjs.startWith)(false))]).pipe((0, rxjs.map)(([hidden, editing]) => hidden || editing))
18046
+ };
18047
+ }
17995
18048
 
17996
18049
  //#endregion
17997
18050
  //#region src/views/paragraph-menu/theme-color.ts
@@ -18594,28 +18647,26 @@ const floatToolbarMenuSchema = { [FLOAT_TOOLBAR_MENU_POSITION]: { [FLOAT_TEXT_ST
18594
18647
  } } };
18595
18648
  const menuSchema = {
18596
18649
  ...floatToolbarMenuSchema,
18597
- [_univerjs_ui.RibbonStartGroup.OTHERS]: {
18598
- [DocPasteSpecialCommand.id]: {
18599
- order: -1,
18600
- gridLayout: {
18601
- row: 1,
18602
- column: 2,
18603
- rowSpan: 2,
18604
- showLabel: true
18605
- },
18606
- menuItemFactory: PasteSpecialMenuFactory
18650
+ [_univerjs_ui.RibbonStartGroup.HISTORY]: { [DocPasteSpecialCommand.id]: {
18651
+ order: 4,
18652
+ gridLayout: {
18653
+ row: 1,
18654
+ column: 3,
18655
+ rowSpan: 2,
18656
+ showLabel: true
18607
18657
  },
18608
- [OpenDocPermissionPanelOperation.id]: {
18609
- order: 0,
18610
- gridLayout: {
18611
- row: 1,
18612
- column: 1,
18613
- rowSpan: 2,
18614
- showLabel: true
18615
- },
18616
- menuItemFactory: DocPermissionMenuItemFactory
18617
- }
18618
- },
18658
+ menuItemFactory: PasteRibbonMenuFactory
18659
+ } },
18660
+ [_univerjs_ui.RibbonStartGroup.OTHERS]: { [OpenDocPermissionPanelOperation.id]: {
18661
+ order: 0,
18662
+ gridLayout: {
18663
+ row: 1,
18664
+ column: 1,
18665
+ rowSpan: 2,
18666
+ showLabel: true
18667
+ },
18668
+ menuItemFactory: DocPermissionMenuItemFactory
18669
+ } },
18619
18670
  [_univerjs_ui.RibbonStartGroup.FORMAT]: {
18620
18671
  [SetInlineFormatBoldCommand.id]: {
18621
18672
  order: 0,
@@ -18863,16 +18914,18 @@ const menuSchema = {
18863
18914
  [DocPasteCommand.id]: {
18864
18915
  order: 2,
18865
18916
  menuItemFactory: PasteMenuFactory
18866
- },
18917
+ }
18918
+ },
18919
+ [_univerjs_ui.ContextMenuGroup.FORMAT]: {
18867
18920
  [DocPasteSpecialCommand.id]: {
18868
- order: 3,
18921
+ order: -1,
18869
18922
  menuItemFactory: PasteSpecialMenuFactory
18923
+ },
18924
+ [DeleteLeftCommand.id]: {
18925
+ order: 0,
18926
+ menuItemFactory: DeleteMenuFactory
18870
18927
  }
18871
18928
  },
18872
- [_univerjs_ui.ContextMenuGroup.FORMAT]: { [DeleteLeftCommand.id]: {
18873
- order: 0,
18874
- menuItemFactory: DeleteMenuFactory
18875
- } },
18876
18929
  [_univerjs_ui.ContextMenuGroup.LAYOUT]: {
18877
18930
  [DocParagraphSettingPanelOperation.id]: {
18878
18931
  order: 0,
@@ -20859,7 +20912,7 @@ function resolveDocsCustomBlockRenderViewport(params) {
20859
20912
  //#endregion
20860
20913
  //#region package.json
20861
20914
  var name = "@univerjs/docs-ui";
20862
- var version = "1.0.1";
20915
+ var version = "1.0.3";
20863
20916
 
20864
20917
  //#endregion
20865
20918
  //#region src/commands/commands/doc-paragraph-setting.command.ts
@@ -21569,6 +21622,7 @@ let DocMoveCursorController = class DocMoveCursorController extends _univerjs_co
21569
21622
  if (granularity !== "character") {
21570
21623
  const nextOffset = this._getCursorOffsetByGranularity(skeleton, focusOffset, direction, granularity, normalizedSegmentId, normalizedSegmentPage, dataStreamLength, body.dataStream);
21571
21624
  if (nextOffset == null || nextOffset === focusOffset) return;
21625
+ if (this._deferUnmaterializedCursorMove(docDataModel, skeleton, nextOffset, normalizedSegmentId, () => this._handleShiftMoveSelection(direction, granularity))) return;
21572
21626
  const normalizedNextOffset = this._normalizeRenderableCursorOffset(skeleton, body.dataStream, customRanges, nextOffset, direction, normalizedSegmentId, normalizedSegmentPage);
21573
21627
  if (normalizedNextOffset == null || normalizedNextOffset === focusOffset) return;
21574
21628
  this._textSelectionManagerService.replaceDocRanges([{
@@ -24142,25 +24196,30 @@ const mobileMenuSchema = {
24142
24196
  menuItemFactory: SelectAllMenuFactory
24143
24197
  }
24144
24198
  } },
24145
- [DOC_CARET_MENU_ID]: { [_univerjs_ui.ContextMenuGroup.QUICK]: {
24146
- quickLayout: "tile",
24147
- [DocPasteCommand.id]: {
24148
- order: 0,
24149
- menuItemFactory: PasteMenuFactory
24150
- },
24151
- [DocPasteSpecialCommand.id]: {
24152
- order: .5,
24153
- menuItemFactory: PasteSpecialMenuFactory
24199
+ [DOC_CARET_MENU_ID]: {
24200
+ [_univerjs_ui.ContextMenuGroup.QUICK]: {
24201
+ quickLayout: "tile",
24202
+ [DocPasteCommand.id]: {
24203
+ order: 0,
24204
+ menuItemFactory: PasteMenuFactory
24205
+ },
24206
+ [DocSelectWordCommand.id]: {
24207
+ order: 1,
24208
+ menuItemFactory: SelectWordMenuFactory
24209
+ },
24210
+ [DocSelectAllCommand.id]: {
24211
+ order: 2,
24212
+ menuItemFactory: SelectAllMenuFactory
24213
+ }
24154
24214
  },
24155
- [DocSelectWordCommand.id]: {
24215
+ [_univerjs_ui.ContextMenuGroup.FORMAT]: {
24156
24216
  order: 1,
24157
- menuItemFactory: SelectWordMenuFactory
24158
- },
24159
- [DocSelectAllCommand.id]: {
24160
- order: 2,
24161
- menuItemFactory: SelectAllMenuFactory
24217
+ [DocPasteSpecialCommand.id]: {
24218
+ order: 0,
24219
+ menuItemFactory: PasteSpecialMenuFactory
24220
+ }
24162
24221
  }
24163
- } }
24222
+ }
24164
24223
  };
24165
24224
 
24166
24225
  //#endregion
@@ -31458,6 +31517,7 @@ exports.getCursorWhenDelete = getCursorWhenDelete;
31458
31517
  exports.getCutActionsFromDocRanges = getCutActionsFromDocRanges;
31459
31518
  exports.getDocBlockRangeMenuId = getDocBlockRangeMenuId;
31460
31519
  exports.getDocObjectById = getDocObjectById;
31520
+ exports.getEditorRuntimeConfig = getEditorRuntimeConfig;
31461
31521
  exports.getEmptyTableCell = getEmptyTableCell;
31462
31522
  exports.getEmptyTableRow = getEmptyTableRow;
31463
31523
  exports.getLineBounding = getLineBounding;
@@ -31474,6 +31534,7 @@ exports.isTextRangeInAnyBlockRange = isTextRangeInAnyBlockRange;
31474
31534
  exports.isValidRectRange = isValidRectRange;
31475
31535
  exports.neoGetDocObject = neoGetDocObject;
31476
31536
  exports.normalizeDocFitToWidthOptions = normalizeDocFitToWidthOptions;
31537
+ exports.registerEditorRuntimeConfig = registerEditorRuntimeConfig;
31477
31538
  exports.removeClipboardHtmlImages = removeClipboardHtmlImages;
31478
31539
  exports.resolveDocCustomRangeChromeTheme = resolveDocCustomRangeChromeTheme;
31479
31540
  exports.resolveDocFitBaseWidth = resolveDocFitBaseWidth;
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/ar-SA.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "لصق خاص",
4
5
  title: "خيارات اللصق",
5
6
  source: "الاحتفاظ بتنسيق المصدر",
6
7
  destination: "مطابقة تنسيق الوجهة",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/ca-ES.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "Enganxament especial",
4
5
  title: "Opcions d’enganxament",
5
6
  source: "Mantén el format d’origen",
6
7
  destination: "Adapta al format de destinació",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/de-DE.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "Inhalte einfügen",
4
5
  title: "Einfügeoptionen",
5
6
  source: "Ursprüngliche Formatierung beibehalten",
6
7
  destination: "Zielformatierung übernehmen",
@@ -16,6 +16,7 @@
16
16
  */
17
17
  const locale = { "docs-ui": {
18
18
  pasteOptions: {
19
+ special: "Paste special",
19
20
  title: "Paste options",
20
21
  source: "Keep source formatting",
21
22
  destination: "Match destination formatting",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/es-ES.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "Pegado especial",
4
5
  title: "Opciones de pegado",
5
6
  source: "Mantener formato de origen",
6
7
  destination: "Adaptar al formato de destino",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/fa-IR.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "چسباندن ویژه",
4
5
  title: "گزینه‌های چسباندن",
5
6
  source: "حفظ قالب‌بندی مبدأ",
6
7
  destination: "تطبیق با قالب‌بندی مقصد",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/fr-FR.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "Collage spécial",
4
5
  title: "Options de collage",
5
6
  source: "Conserver la mise en forme source",
6
7
  destination: "Adapter à la mise en forme de destination",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/id-ID.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "Tempel khusus",
4
5
  title: "Opsi tempel",
5
6
  source: "Pertahankan format sumber",
6
7
  destination: "Sesuaikan format tujuan",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/it-IT.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "Incolla speciale",
4
5
  title: "Opzioni di incolla",
5
6
  source: "Mantieni formattazione originale",
6
7
  destination: "Adatta alla formattazione di destinazione",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/ja-JP.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "形式を選択して貼り付け",
4
5
  title: "貼り付けのオプション",
5
6
  source: "元の書式を保持",
6
7
  destination: "貼り付け先の書式に合わせる",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/ko-KR.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "선택하여 붙여넣기",
4
5
  title: "붙여넣기 옵션",
5
6
  source: "원본 서식 유지",
6
7
  destination: "대상 서식에 맞추기",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/pl-PL.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "Wklej specjalnie",
4
5
  title: "Opcje wklejania",
5
6
  source: "Zachowaj formatowanie źródłowe",
6
7
  destination: "Dopasuj formatowanie docelowe",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/pt-BR.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "Colar especial",
4
5
  title: "Opções de colagem",
5
6
  source: "Manter formatação original",
6
7
  destination: "Usar formatação de destino",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/ru-RU.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "Специальная вставка",
4
5
  title: "Параметры вставки",
5
6
  source: "Сохранить исходное форматирование",
6
7
  destination: "Использовать форматирование назначения",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/sk-SK.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "Prilepiť špeciálne",
4
5
  title: "Možnosti prilepenia",
5
6
  source: "Zachovať zdrojové formátovanie",
6
7
  destination: "Prispôsobiť cieľovému formátovaniu",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/vi-VN.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "Dán đặc biệt",
4
5
  title: "Tùy chọn dán",
5
6
  source: "Giữ định dạng nguồn",
6
7
  destination: "Khớp định dạng đích",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/zh-CN.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "选择性粘贴",
4
5
  title: "粘贴选项",
5
6
  source: "保留源格式",
6
7
  destination: "匹配目标格式",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/zh-HK.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "選擇性貼上",
4
5
  title: "貼上選項",
5
6
  source: "保留來源格式",
6
7
  destination: "符合目標格式",
@@ -1,6 +1,7 @@
1
1
  //#region src/locale/zh-TW.ts
2
2
  const locale = { "docs-ui": {
3
3
  pasteOptions: {
4
+ special: "選擇性貼上",
4
5
  title: "貼上選項",
5
6
  source: "保留來源格式",
6
7
  destination: "符合目的地格式",