@univerjs/docs-ui 1.0.0-beta.0 → 1.0.0-beta.1
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.
- package/lib/cjs/index.js +960 -254
- package/lib/cjs/locale/ar-SA.js +17 -8
- package/lib/cjs/locale/ca-ES.js +17 -8
- package/lib/cjs/locale/de-DE.js +17 -8
- package/lib/cjs/locale/en-US.js +17 -8
- package/lib/cjs/locale/es-ES.js +17 -8
- package/lib/cjs/locale/fa-IR.js +17 -8
- package/lib/cjs/locale/fr-FR.js +17 -8
- package/lib/cjs/locale/id-ID.js +17 -8
- package/lib/cjs/locale/it-IT.js +17 -8
- package/lib/cjs/locale/ja-JP.js +17 -8
- package/lib/cjs/locale/ko-KR.js +17 -8
- package/lib/cjs/locale/pl-PL.js +17 -8
- package/lib/cjs/locale/pt-BR.js +17 -8
- package/lib/cjs/locale/ru-RU.js +17 -8
- package/lib/cjs/locale/sk-SK.js +17 -8
- package/lib/cjs/locale/vi-VN.js +17 -8
- package/lib/cjs/locale/zh-CN.js +17 -8
- package/lib/cjs/locale/zh-HK.js +17 -8
- package/lib/cjs/locale/zh-TW.js +17 -8
- package/lib/es/index.js +962 -258
- package/lib/es/locale/ar-SA.js +17 -8
- package/lib/es/locale/ca-ES.js +17 -8
- package/lib/es/locale/de-DE.js +17 -8
- package/lib/es/locale/en-US.js +17 -8
- package/lib/es/locale/es-ES.js +17 -8
- package/lib/es/locale/fa-IR.js +17 -8
- package/lib/es/locale/fr-FR.js +17 -8
- package/lib/es/locale/id-ID.js +17 -8
- package/lib/es/locale/it-IT.js +17 -8
- package/lib/es/locale/ja-JP.js +17 -8
- package/lib/es/locale/ko-KR.js +17 -8
- package/lib/es/locale/pl-PL.js +17 -8
- package/lib/es/locale/pt-BR.js +17 -8
- package/lib/es/locale/ru-RU.js +17 -8
- package/lib/es/locale/sk-SK.js +17 -8
- package/lib/es/locale/vi-VN.js +17 -8
- package/lib/es/locale/zh-CN.js +17 -8
- package/lib/es/locale/zh-HK.js +17 -8
- package/lib/es/locale/zh-TW.js +17 -8
- package/lib/index.css +154 -16
- package/lib/index.js +962 -258
- package/lib/locale/ar-SA.js +17 -8
- package/lib/locale/ca-ES.js +17 -8
- package/lib/locale/de-DE.js +17 -8
- package/lib/locale/en-US.js +17 -8
- package/lib/locale/es-ES.js +17 -8
- package/lib/locale/fa-IR.js +17 -8
- package/lib/locale/fr-FR.js +17 -8
- package/lib/locale/id-ID.js +17 -8
- package/lib/locale/it-IT.js +17 -8
- package/lib/locale/ja-JP.js +17 -8
- package/lib/locale/ko-KR.js +17 -8
- package/lib/locale/pl-PL.js +17 -8
- package/lib/locale/pt-BR.js +17 -8
- package/lib/locale/ru-RU.js +17 -8
- package/lib/locale/sk-SK.js +17 -8
- package/lib/locale/vi-VN.js +17 -8
- package/lib/locale/zh-CN.js +17 -8
- package/lib/locale/zh-HK.js +17 -8
- package/lib/locale/zh-TW.js +17 -8
- package/lib/types/commands/commands/clipboard.inner.command.d.ts +8 -2
- package/lib/types/commands/commands/doc-select-all.command.d.ts +2 -0
- package/lib/types/commands/commands/replace-content.command.d.ts +1 -0
- package/lib/types/config/config.d.ts +1 -0
- package/lib/types/controllers/render-controllers/doc-ime-input.controller.d.ts +3 -2
- package/lib/types/controllers/render-controllers/doc-input.controller.d.ts +1 -1
- package/lib/types/controllers/render-controllers/doc-paragraph-placeholder.render-controller.d.ts +1 -1
- package/lib/types/controllers/render-controllers/doc.render-controller.d.ts +2 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/locale/en-US.d.ts +16 -7
- package/lib/types/services/doc-ime-input-manager.service.d.ts +17 -0
- package/lib/types/services/doc-menu-style.service.d.ts +3 -2
- package/lib/types/services/doc-render-background.d.ts +1 -1
- package/lib/types/services/selection/doc-selection-render.service.d.ts +2 -0
- package/lib/types/services/selection/text-range.d.ts +3 -0
- package/lib/types/views/doc-statistics/DocStatistics.d.ts +16 -0
- package/lib/types/views/doc-statistics/use-doc-statistics.d.ts +30 -0
- package/lib/types/views/list-type-picker/Picker.d.ts +1 -4
- package/lib/umd/index.js +9 -9
- package/lib/umd/locale/ar-SA.js +1 -1
- package/lib/umd/locale/ca-ES.js +1 -1
- package/lib/umd/locale/de-DE.js +1 -1
- package/lib/umd/locale/en-US.js +1 -1
- package/lib/umd/locale/es-ES.js +1 -1
- package/lib/umd/locale/fa-IR.js +1 -1
- package/lib/umd/locale/fr-FR.js +1 -1
- package/lib/umd/locale/id-ID.js +1 -1
- package/lib/umd/locale/it-IT.js +1 -1
- package/lib/umd/locale/ja-JP.js +1 -1
- package/lib/umd/locale/ko-KR.js +1 -1
- package/lib/umd/locale/pl-PL.js +1 -1
- package/lib/umd/locale/pt-BR.js +1 -1
- package/lib/umd/locale/ru-RU.js +1 -1
- package/lib/umd/locale/sk-SK.js +1 -1
- package/lib/umd/locale/vi-VN.js +1 -1
- package/lib/umd/locale/zh-CN.js +1 -1
- package/lib/umd/locale/zh-HK.js +1 -1
- package/lib/umd/locale/zh-TW.js +1 -1
- package/package.json +8 -8
package/lib/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { BaselineOffset, BlockType, BooleanNumber, BuildTextUtils, COLORS, ColorKit, ColumnSeparatorType, CommandType, CustomRangeType, DEFAULT_DOCUMENT_PARAGRAPH_LINE_SPACING, DEFAULT_DOCUMENT_PARAGRAPH_SPACE_ABOVE, DEFAULT_DOCUMENT_PARAGRAPH_SPACE_BELOW, DEFAULT_EMPTY_DOCUMENT_VALUE, DEFAULT_STYLES, DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY, DOCS_NORMAL_EDITOR_UNIT_ID_KEY, DOC_RANGE_TYPE, DashStyleType, DataStreamTreeNodeType, DataStreamTreeTokenType, DeleteDirection, DependentOn, Direction, Disposable, DisposableCollection, DocumentBlockRangeType, DocumentBlockType, DocumentFlavor, DrawingTypeEnum, EDITOR_ACTIVATED, FOCUSING_COMMENT_EDITOR, FOCUSING_COMMON_DRAWINGS, FOCUSING_DOC, FOCUSING_EDITOR_STANDALONE, FOCUSING_UNIVER_EDITOR, HorizontalAlign, ICommandService, IConfigService, IConfirmService, IContextService, ILogService, IUndoRedoService, IUniverInstanceService, ImageSourceType, Inject, Injector, InterceptorManager, JSONX, LRUMap, LocaleService, MODERN_DOCUMENT_DEFAULT_MARGIN, MODERN_DOCUMENT_WIDTH, MemoryCursor, ModernDocumentWidthMode, NAMED_STYLE_MAP, NamedStyleType, ObjectRelativeFromH, ObjectRelativeFromV, Optional, PAGE_SIZE, PAPER_TYPES, PRESET_LIST_TYPE, PageOrientType, Plugin, PositionedObjectLayoutType, PresetListType, QuickListTypeMap, RANGE_DIRECTION, Rectangle, RedoCommand, RichTextBuilder, RxDisposable, SHEET_EDITOR_UNITS, SectionType, SliceBodyType, SpacingRule, TableAlignmentType, TableRowHeightRule, TableSizeType, TableTextWrapType, TextX, TextXActionType, ThemeService, Tools, UndoCommand, UniverInstanceType, UpdateDocsAttributeType, VerticalAlign, checkForSubstrings, containsInteriorInsertionOffset, createIdentifier, createInterceptorKey, createInternalEditorID, createParagraphId, createSectionId, debounce, deepCompare, fromEventSubject, generateRandomId, getBlockRangeInterval, getBodySlice, getBodySliceForTextXAction, getCustomBlockIdsInSelections, getParagraphContentStartOffset, getParagraphContentStartOffsets, getPlainText, getRichTextEditPath, getSectionHeaderFooterReferenceKey, getTableRangeInterval, isCommentEditorID, isInternalEditorID, isSafeUrl, merge, mergeOverrideWithDependencies, normalizeBody, remove, resolveDocumentParagraphStyle, resolveSectionHeaderFooterReference, resolveSectionHeaderFooterReferences, sequenceExecuteAsync, skipParseTagNames, toDisposable, touchDependencies } from "@univerjs/core";
|
|
1
|
+
import { BaselineOffset, BlockType, BooleanNumber, BuildTextUtils, COLORS, ColorKit, ColumnSeparatorType, CommandType, CustomRangeType, DEFAULT_DOCUMENT_PARAGRAPH_LINE_SPACING, DEFAULT_DOCUMENT_PARAGRAPH_SPACE_ABOVE, DEFAULT_DOCUMENT_PARAGRAPH_SPACE_BELOW, DEFAULT_EMPTY_DOCUMENT_VALUE, DEFAULT_STYLES, DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY, DOCS_NORMAL_EDITOR_UNIT_ID_KEY, DOC_RANGE_TYPE, DashStyleType, DataStreamTreeNodeType, DataStreamTreeTokenType, DeleteDirection, DependentOn, Direction, Disposable, DisposableCollection, DocumentBlockRangeType, DocumentBlockType, DocumentFlavor, DrawingTypeEnum, EDITOR_ACTIVATED, FOCUSING_COMMENT_EDITOR, FOCUSING_COMMON_DRAWINGS, FOCUSING_DOC, FOCUSING_EDITOR_STANDALONE, FOCUSING_UNIVER_EDITOR, HorizontalAlign, ICommandService, IConfigService, IConfirmService, IContextService, ILogService, IUndoRedoService, IUniverInstanceService, ImageSourceType, Inject, Injector, InterceptorManager, JSONX, LOCALE_META, LRUMap, ListGlyphType, LocaleService, MODERN_DOCUMENT_DEFAULT_MARGIN, MODERN_DOCUMENT_WIDTH, MemoryCursor, ModernDocumentWidthMode, NAMED_STYLE_MAP, NamedStyleType, ObjectRelativeFromH, ObjectRelativeFromV, Optional, PAGE_SIZE, PAPER_TYPES, PRESET_LIST_TYPE, PageOrientType, Plugin, PositionedObjectLayoutType, PresetListType, QuickListTypeMap, RANGE_DIRECTION, Rectangle, RedoCommand, RichTextBuilder, RxDisposable, SHEET_EDITOR_UNITS, SectionType, SliceBodyType, SpacingRule, TableAlignmentType, TableRowHeightRule, TableSizeType, TableTextWrapType, TextX, TextXActionType, ThemeService, Tools, UndoCommand, UniverInstanceType, UpdateDocsAttributeType, VerticalAlign, checkForSubstrings, containsInteriorInsertionOffset, createIdentifier, createInterceptorKey, createInternalEditorID, createParagraphId, createSectionId, debounce, deepCompare, fromEventSubject, generateRandomId, getBlockRangeInterval, getBodySlice, getBodySliceForTextXAction, getColorStyle, getCustomBlockIdsInSelections, getParagraphContentStartOffset, getParagraphContentStartOffsets, getPlainText, getRichTextEditPath, getSectionHeaderFooterReferenceKey, getTableRangeInterval, isCommentEditorID, isInternalEditorID, isSafeUrl, merge, mergeOverrideWithDependencies, normalizeBody, remove, resolveDocumentParagraphStyle, resolveSectionHeaderFooterReference, resolveSectionHeaderFooterReferences, sequenceExecuteAsync, skipParseTagNames, toDisposable, touchDependencies } from "@univerjs/core";
|
|
2
2
|
import { CreateHeaderFooterCommand, DeleteTextCommand, DocBlockMoveValidatorService, DocContentInsertService, DocInterceptorService, DocSelectionManagerService, DocSkeletonManagerService, DocStateEmitService, HeaderFooterType, IDocStateChangeInterceptorService, InsertDocumentColumnBreakCommand, InsertDocumentSectionBreakCommand, InsertTextCommand, RichTextEditingMutation, SetSectionHeaderFooterLinkCommand, SetTextSelectionsOperation, UniverDocsPlugin, UpdateDocumentSectionCommand, UpdateTextCommand, buildDocTransform, consumeContentInsertRange, createSectionColumnProperties, generateParagraphs, getTopLevelSectionBreaks, isSheetLikeDocsCustomBlockChildType, resolveDocsCustomBlockSize, shouldUseInlineTextSelectionForDocsCustomBlockDrawing } from "@univerjs/docs";
|
|
3
3
|
import { CURSOR_TYPE, DeviceInputEventType, DocBackground, DocumentEditArea, DocumentSkeletonPageType, Documents, GlyphType, IRenderManagerService, Layer, LineType, Liquid, NORMAL_TEXT_SELECTION_PLUGIN_STYLE, PageLayoutType, Path, Rect, RegularPolygon, ScrollBar, ScrollTimer, Shape, TRANSFORM_CHANGE_OBSERVABLE_TYPE, UniverRenderEnginePlugin, Vector2, Viewport, compareDocumentSkeletonNestedPagePathOrder, documentSkeletonLineIterator, documentSkeletonTableIterator, getColor, getDocsTableRenderViewport, getDocsTableViewportLeft, getDocumentSkeletonColumnPagePathInfo, getDocumentSkeletonNestedPageOffset, getLastColumn, getNextWheelZoomRatio, getNumberUnitValue, getOffsetRectForDom, getPageFromPath, getParagraphByGlyph, getSystemHighlightColor, getTableIdAndSliceIndex, hasListGlyph, isFirstGlyph, isIndentByGlyph, parseDataStreamToTree, pixelToPt, ptToPixel, pxToNum } from "@univerjs/engine-render";
|
|
4
|
-
import { BuiltInUIPart, COLOR_PICKER_COMPONENT, COMMON_LABEL_COMPONENT, ComponentManager, ContextMenuGroup, ContextMenuPanel, ContextMenuPosition, CopyCommand, CutCommand, EMOJI_PICKER_COMPONENT, FILE_PNG_CLIPBOARD_MIME_TYPE, FILE__BMP_CLIPBOARD_MIME_TYPE, FILE__JPEG_CLIPBOARD_MIME_TYPE, FILE__WEBP_CLIPBOARD_MIME_TYPE, FONT_FAMILY_COMPONENT, FONT_FAMILY_ITEM_COMPONENT, FONT_SIZE_COMPONENT, FONT_SIZE_LIST, HEADING_ITEM_COMPONENT, HEADING_LIST, HTML_CLIPBOARD_MIME_TYPE, ICanvasPopupService, IClipboardInterfaceService, IContextMenuService, ILayoutService, IMenuManagerService, IShortcutService, ISidebarService, IUIPartsService, IconManager, KeyCode, MenuItemType, MenuManagerPosition, MetaKeys, PLAIN_TEXT_CLIPBOARD_MIME_TYPE, PasteCommand, RectPopup, RibbonInsertGroup, RibbonStartGroup, SYMBOL_PICKER_COMPONENT, Slider, ToolbarItem, connectInjector, getMenuHiddenObservable, imageMimeTypeSet, useConfigValue, useDependency, useEvent, useObservable } from "@univerjs/ui";
|
|
4
|
+
import { BuiltInUIPart, COLOR_PICKER_COMPONENT, COMMON_LABEL_COMPONENT, ComponentManager, ContextMenuGroup, ContextMenuPanel, ContextMenuPosition, CopyCommand, CutCommand, EMOJI_PICKER_COMPONENT, FILE_PNG_CLIPBOARD_MIME_TYPE, FILE__BMP_CLIPBOARD_MIME_TYPE, FILE__JPEG_CLIPBOARD_MIME_TYPE, FILE__WEBP_CLIPBOARD_MIME_TYPE, FONT_FAMILY_COMPONENT, FONT_FAMILY_ITEM_COMPONENT, FONT_SIZE_COMPONENT, FONT_SIZE_LIST, HEADING_ITEM_COMPONENT, HEADING_LIST, HTML_CLIPBOARD_MIME_TYPE, ICanvasPopupService, IClipboardInterfaceService, IContextMenuService, ILayoutService, IMenuManagerService, IShortcutService, ISidebarService, IUIPartsService, IconManager, KeyCode, MenuItemType, MenuManagerPosition, MetaKeys, PLAIN_TEXT_CLIPBOARD_MIME_TYPE, PasteCommand, RectPopup, RibbonInsertGroup, RibbonStartGroup, SYMBOL_PICKER_COMPONENT, Slider, ToolbarButton, ToolbarItem, connectInjector, getMenuHiddenObservable, imageMimeTypeSet, preventBrowserZoomInContainers, useConfigValue, useDependency, useEvent, useObservable } from "@univerjs/ui";
|
|
5
5
|
import { BehaviorSubject, Observable, Subject, animationFrameScheduler, combineLatest, debounceTime, distinctUntilChanged, filter, first, fromEvent, map, merge as merge$1, shareReplay, startWith, switchMap, take, takeUntil, throttleTime } from "rxjs";
|
|
6
6
|
import { bufferTime, filter as filter$1, map as map$1 } from "rxjs/operators";
|
|
7
7
|
import { Button, Checkbox, InputNumber, Select, Tooltip, borderClassName, clsx, resetButtonClassName, scrollbarClassName } from "@univerjs/design";
|
|
8
8
|
import { forwardRef, useCallback, useEffect, useId, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
9
9
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
-
import { AddImageIcon, AlignTextBothIcon, BoldIcon, CatalogueIcon, ColumnIcon, CopyDoubleIcon, CutIcon, DeleteColumnDoubleIcon, DeleteIcon, DeleteRowDoubleIcon, DeleteTableDoubleIcon, DocSettingIcon, FontColorDoubleIcon, GridIcon, H1Icon, H2Icon, H3Icon, H4Icon, H5Icon, HeaderFooterIcon, HorizontallyIcon, InsertDoubleIcon, InsertRowAboveDoubleIcon, InsertRowBelowDoubleIcon, ItalicIcon, KeyboardIcon, LeftInsertColumnDoubleIcon, LeftJustifyingIcon, LineIndentDecreaseIcon, LineIndentIncreaseIcon, MenuIcon, MoreLeftIcon, MoreRightIcon, NoColorDoubleIcon, OrderIcon, PaintBucketDoubleIcon, PasteSpecialDoubleIcon, ReduceDoubleIcon, ReduceIcon, RightInsertColumnDoubleIcon, RightJustifyingIcon, ShapeIcon, SmileIcon, StrikethroughIcon, SubscriptIcon, SuperscriptIcon, SymbolsIcon, TextTypeIcon, TodoListDoubleIcon, UnderlineIcon, UnorderIcon } from "@univerjs/icons";
|
|
10
|
+
import { AddImageIcon, AlignTextBothIcon, BoldIcon, CatalogueIcon, ColumnIcon, CopyDoubleIcon, CutIcon, DeleteColumnDoubleIcon, DeleteIcon, DeleteRowDoubleIcon, DeleteTableDoubleIcon, DocSettingIcon, FontColorDoubleIcon, GridIcon, H1Icon, H2Icon, H3Icon, H4Icon, H5Icon, HeaderFooterIcon, HorizontallyIcon, InsertDoubleIcon, InsertRowAboveDoubleIcon, InsertRowBelowDoubleIcon, ItalicIcon, KeyboardIcon, LeftInsertColumnDoubleIcon, LeftJustifyingIcon, LineIndentDecreaseIcon, LineIndentIncreaseIcon, LoadingMultiIcon, MenuIcon, MoreLeftIcon, MoreRightIcon, NoColorDoubleIcon, OrderIcon, PaintBucketDoubleIcon, PasteSpecialDoubleIcon, ReduceDoubleIcon, ReduceIcon, RightInsertColumnDoubleIcon, RightJustifyingIcon, ShapeIcon, SmileIcon, StatisticalFunctionIcon, StrikethroughIcon, SubscriptIcon, SuperscriptIcon, SymbolsIcon, TextTypeIcon, TodoListDoubleIcon, UnderlineIcon, UnorderIcon } from "@univerjs/icons";
|
|
11
11
|
|
|
12
12
|
//#region src/basics/docs-view-key.ts
|
|
13
13
|
/**
|
|
@@ -172,7 +172,7 @@ function getTextRunAtPosition(body, position, defaultStyle, cacheStyle, isCellEd
|
|
|
172
172
|
const retTextRun = {
|
|
173
173
|
st: 0,
|
|
174
174
|
ed: 0,
|
|
175
|
-
ts: {}
|
|
175
|
+
ts: !defaultStyle.cl ? {} : { cl: { ...defaultStyle.cl } }
|
|
176
176
|
};
|
|
177
177
|
if (isFormula) return retTextRun;
|
|
178
178
|
for (let i = textRuns.length - 1; i >= 0; i--) {
|
|
@@ -360,11 +360,12 @@ const DEFAULT_TEXT_STYLE = {
|
|
|
360
360
|
fs: BODY_DEFAULT_FONTSIZE
|
|
361
361
|
};
|
|
362
362
|
let DocMenuStyleService = class DocMenuStyleService extends Disposable {
|
|
363
|
-
constructor(_textSelectionManagerService, _univerInstanceService, _renderManagerService) {
|
|
363
|
+
constructor(_textSelectionManagerService, _univerInstanceService, _renderManagerService, _themeService) {
|
|
364
364
|
super();
|
|
365
365
|
this._textSelectionManagerService = _textSelectionManagerService;
|
|
366
366
|
this._univerInstanceService = _univerInstanceService;
|
|
367
367
|
this._renderManagerService = _renderManagerService;
|
|
368
|
+
this._themeService = _themeService;
|
|
368
369
|
_defineProperty(this, "_cacheStyle", null);
|
|
369
370
|
this._init();
|
|
370
371
|
}
|
|
@@ -381,15 +382,19 @@ let DocMenuStyleService = class DocMenuStyleService extends Disposable {
|
|
|
381
382
|
}
|
|
382
383
|
getDefaultStyle() {
|
|
383
384
|
var _this$_renderManagerS;
|
|
385
|
+
const defaultTextStyle = {
|
|
386
|
+
...DEFAULT_TEXT_STYLE,
|
|
387
|
+
cl: { rgb: this._themeService.getColorFromTheme("gray.900") }
|
|
388
|
+
};
|
|
384
389
|
const docDataModel = this._univerInstanceService.getCurrentUnitOfType(UniverInstanceType.UNIVER_DOC);
|
|
385
|
-
if (docDataModel == null) return { ...
|
|
390
|
+
if (docDataModel == null) return { ...defaultTextStyle };
|
|
386
391
|
const unitId = docDataModel === null || docDataModel === void 0 ? void 0 : docDataModel.getUnitId();
|
|
387
392
|
const docSkeletonManagerService = (_this$_renderManagerS = this._renderManagerService.getRenderUnitById(unitId)) === null || _this$_renderManagerS === void 0 ? void 0 : _this$_renderManagerS.with(DocSkeletonManagerService);
|
|
388
393
|
const docViewModel = docSkeletonManagerService === null || docSkeletonManagerService === void 0 ? void 0 : docSkeletonManagerService.getViewModel();
|
|
389
|
-
if (docViewModel == null) return { ...
|
|
390
|
-
if (docViewModel.getEditArea() === DocumentEditArea.BODY) return { ...
|
|
394
|
+
if (docViewModel == null) return { ...defaultTextStyle };
|
|
395
|
+
if (docViewModel.getEditArea() === DocumentEditArea.BODY) return { ...defaultTextStyle };
|
|
391
396
|
else return {
|
|
392
|
-
...
|
|
397
|
+
...defaultTextStyle,
|
|
393
398
|
fs: HEADER_FOOTER_DEFAULT_FONTSIZE
|
|
394
399
|
};
|
|
395
400
|
}
|
|
@@ -406,7 +411,8 @@ let DocMenuStyleService = class DocMenuStyleService extends Disposable {
|
|
|
406
411
|
DocMenuStyleService = __decorate([
|
|
407
412
|
__decorateParam(0, Inject(DocSelectionManagerService)),
|
|
408
413
|
__decorateParam(1, IUniverInstanceService),
|
|
409
|
-
__decorateParam(2, IRenderManagerService)
|
|
414
|
+
__decorateParam(2, IRenderManagerService),
|
|
415
|
+
__decorateParam(3, Inject(ThemeService))
|
|
410
416
|
], DocMenuStyleService);
|
|
411
417
|
|
|
412
418
|
//#endregion
|
|
@@ -1086,17 +1092,18 @@ const InnerPasteCommand = {
|
|
|
1086
1092
|
id: "doc.command.inner-paste",
|
|
1087
1093
|
type: CommandType.COMMAND,
|
|
1088
1094
|
handler: async (accessor, params) => {
|
|
1089
|
-
var _docDataModel$getSelf, _body$tables, _body$customBlocks, _body$blockRanges;
|
|
1095
|
+
var _docDataModel$getSelf, _body$tables, _body$customBlocks, _body$blockRanges, _selectionInfo$option;
|
|
1090
1096
|
const { customRangeMappings = [], segmentId, textRanges, doc } = params;
|
|
1091
1097
|
const commandService = accessor.get(ICommandService);
|
|
1092
1098
|
const undoRedoService = accessor.get(IUndoRedoService);
|
|
1093
1099
|
const docSelectionManagerService = accessor.get(DocSelectionManagerService);
|
|
1094
1100
|
const univerInstanceService = accessor.get(IUniverInstanceService);
|
|
1095
1101
|
const pasteAdapterService = getPasteAdapterService(accessor);
|
|
1096
|
-
const selections = docSelectionManagerService.getTextRanges();
|
|
1097
|
-
const rectRanges = docSelectionManagerService.getRectRanges();
|
|
1102
|
+
const selections = docSelectionManagerService.getTextRanges() ?? [];
|
|
1103
|
+
const rectRanges = docSelectionManagerService.getRectRanges() ?? [];
|
|
1104
|
+
const selectionInfo = docSelectionManagerService.getSelectionInfo();
|
|
1098
1105
|
const { body, tableSource, drawings } = doc;
|
|
1099
|
-
if (
|
|
1106
|
+
if (selections.length === 0 && rectRanges.length === 0 || body == null) return false;
|
|
1100
1107
|
const docDataModel = univerInstanceService.getCurrentUnitOfType(UniverInstanceType.UNIVER_DOC);
|
|
1101
1108
|
const originBody = docDataModel === null || docDataModel === void 0 || (_docDataModel$getSelf = docDataModel.getSelfOrHeaderFooterModel(segmentId)) === null || _docDataModel$getSelf === void 0 ? void 0 : _docDataModel$getSelf.getBody();
|
|
1102
1109
|
if (docDataModel == null || originBody == null) return false;
|
|
@@ -1107,7 +1114,8 @@ const InnerPasteCommand = {
|
|
|
1107
1114
|
unitId,
|
|
1108
1115
|
actions: [],
|
|
1109
1116
|
textRanges,
|
|
1110
|
-
segmentId
|
|
1117
|
+
segmentId,
|
|
1118
|
+
trigger: InnerPasteCommand.id
|
|
1111
1119
|
}
|
|
1112
1120
|
};
|
|
1113
1121
|
const memoryCursor = new MemoryCursor();
|
|
@@ -1122,10 +1130,34 @@ const InnerPasteCommand = {
|
|
|
1122
1130
|
const hasCustomBlock = !!((_body$customBlocks = body.customBlocks) === null || _body$customBlocks === void 0 ? void 0 : _body$customBlocks.length);
|
|
1123
1131
|
const hasBlockRange = !!((_body$blockRanges = body.blockRanges) === null || _body$blockRanges === void 0 ? void 0 : _body$blockRanges.length);
|
|
1124
1132
|
if (hasTable && segmentId) return false;
|
|
1125
|
-
if (hasTable && hasRangeInTable(selections)) return false;
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1133
|
+
if (hasTable && (hasRangeInTable(selections) || rectRanges.some((range) => !range.spanEntireTable))) return false;
|
|
1134
|
+
const replacesComplexSelection = rectRanges.length > 0 || (selectionInfo === null || selectionInfo === void 0 || (_selectionInfo$option = selectionInfo.options) === null || _selectionInfo$option === void 0 ? void 0 : _selectionInfo$option.wholeDocument) === true;
|
|
1135
|
+
let selectionCutActions = [];
|
|
1136
|
+
let pasteSelections = selections;
|
|
1137
|
+
if (replacesComplexSelection) {
|
|
1138
|
+
var _selectionInfo$option2, _selections$find;
|
|
1139
|
+
const docSkeletonManagerService = getCommandSkeleton(accessor, unitId);
|
|
1140
|
+
if (!docSkeletonManagerService) return false;
|
|
1141
|
+
const wholeBodySelected = (selectionInfo === null || selectionInfo === void 0 || (_selectionInfo$option2 = selectionInfo.options) === null || _selectionInfo$option2 === void 0 ? void 0 : _selectionInfo$option2.wholeDocument) === true || isWholeBodySelected(selections, rectRanges, originBody);
|
|
1142
|
+
const insertOffset = wholeBodySelected ? 0 : getDocRangeInsertOffset(selections, rectRanges);
|
|
1143
|
+
if (insertOffset == null) return false;
|
|
1144
|
+
selectionCutActions = getCutActionsFromDocRanges(selections, rectRanges, docDataModel, docSkeletonManagerService.getViewModel(), segmentId, wholeBodySelected);
|
|
1145
|
+
pasteSelections = [{
|
|
1146
|
+
startOffset: insertOffset,
|
|
1147
|
+
endOffset: insertOffset,
|
|
1148
|
+
collapsed: true,
|
|
1149
|
+
segmentId
|
|
1150
|
+
}];
|
|
1151
|
+
doMutation.params.textRanges = [{
|
|
1152
|
+
startOffset: insertOffset + body.dataStream.length,
|
|
1153
|
+
endOffset: insertOffset + body.dataStream.length,
|
|
1154
|
+
collapsed: true,
|
|
1155
|
+
segmentId,
|
|
1156
|
+
style: (_selections$find = selections.find((range) => range.isActive)) === null || _selections$find === void 0 ? void 0 : _selections$find.style
|
|
1157
|
+
}];
|
|
1158
|
+
}
|
|
1159
|
+
for (let i = 0; i < pasteSelections.length; i++) {
|
|
1160
|
+
const selection = pasteSelections[i];
|
|
1129
1161
|
const { startOffset, endOffset, collapsed } = selection;
|
|
1130
1162
|
const len = startOffset - memoryCursor.cursor;
|
|
1131
1163
|
const cloneBody = Tools.deepClone(body);
|
|
@@ -1217,7 +1249,7 @@ const InnerPasteCommand = {
|
|
|
1217
1249
|
len: body.dataStream.length
|
|
1218
1250
|
});
|
|
1219
1251
|
} else {
|
|
1220
|
-
const dos = BuildTextUtils.selection.delete([selection], body, memoryCursor.cursor, cloneBody,
|
|
1252
|
+
const dos = BuildTextUtils.selection.delete([selection], body, memoryCursor.cursor, cloneBody, pasteSelections.length === 1);
|
|
1221
1253
|
textX.push(...dos);
|
|
1222
1254
|
}
|
|
1223
1255
|
memoryCursor.reset();
|
|
@@ -1225,9 +1257,10 @@ const InnerPasteCommand = {
|
|
|
1225
1257
|
}
|
|
1226
1258
|
const path = getRichTextEditPath(docDataModel, segmentId);
|
|
1227
1259
|
rawActions.push(jsonX.editOp(textX.serialize(), path));
|
|
1228
|
-
|
|
1260
|
+
const pasteActions = rawActions.reduce((acc, cur) => {
|
|
1229
1261
|
return JSONX.compose(acc, cur);
|
|
1230
1262
|
}, null);
|
|
1263
|
+
doMutation.params.actions = selectionCutActions && selectionCutActions.length > 0 ? JSONX.compose(selectionCutActions, pasteActions) : pasteActions;
|
|
1231
1264
|
if (!executeResourceMutationGroups(resourceMutationGroups, commandService)) return false;
|
|
1232
1265
|
const historyId = `doc-paste-resource:${unitId}:${Date.now()}`;
|
|
1233
1266
|
let batchingDisposable = null;
|
|
@@ -1295,20 +1328,8 @@ function getCutActionsFromTextRanges(selections, docDataModel, segmentId) {
|
|
|
1295
1328
|
const rawActions = [];
|
|
1296
1329
|
if (originBody == null) return rawActions;
|
|
1297
1330
|
const { tables = [] } = originBody;
|
|
1298
|
-
const
|
|
1299
|
-
|
|
1300
|
-
for (let i = 0; i < selections.length; i++) {
|
|
1301
|
-
const selection = adjustSelectionByTable(selections[i], tables);
|
|
1302
|
-
const { startOffset, endOffset, collapsed } = selection;
|
|
1303
|
-
const len = startOffset - memoryCursor.cursor;
|
|
1304
|
-
if (collapsed) textX.push({
|
|
1305
|
-
t: TextXActionType.RETAIN,
|
|
1306
|
-
len
|
|
1307
|
-
});
|
|
1308
|
-
else textX.push(...BuildTextUtils.selection.delete([selection], originBody, memoryCursor.cursor, null, false));
|
|
1309
|
-
memoryCursor.reset();
|
|
1310
|
-
memoryCursor.moveCursor(endOffset);
|
|
1311
|
-
}
|
|
1331
|
+
const adjustedSelections = selections.map((selection) => adjustSelectionByTable(selection, tables));
|
|
1332
|
+
textX.push(...BuildTextUtils.selection.delete(adjustedSelections, originBody, 0, null, false));
|
|
1312
1333
|
const path = getRichTextEditPath(docDataModel, segmentId);
|
|
1313
1334
|
rawActions.push(jsonX.editOp(textX.serialize(), path));
|
|
1314
1335
|
const removedCustomBlockIds = getCustomBlockIdsInSelections(originBody, selections);
|
|
@@ -1332,10 +1353,94 @@ function getCutActionsFromTextRanges(selections, docDataModel, segmentId) {
|
|
|
1332
1353
|
return JSONX.compose(acc, cur);
|
|
1333
1354
|
}, null);
|
|
1334
1355
|
}
|
|
1335
|
-
|
|
1356
|
+
const IMPLICIT_WHOLE_BODY_SELECTION_TOKENS = /* @__PURE__ */ new Set([
|
|
1357
|
+
DataStreamTreeTokenType.PARAGRAPH,
|
|
1358
|
+
DataStreamTreeTokenType.SECTION_BREAK,
|
|
1359
|
+
DataStreamTreeTokenType.BLOCK_START,
|
|
1360
|
+
DataStreamTreeTokenType.BLOCK_END,
|
|
1361
|
+
DataStreamTreeTokenType.COLUMN_GROUP_START,
|
|
1362
|
+
DataStreamTreeTokenType.COLUMN_START,
|
|
1363
|
+
DataStreamTreeTokenType.COLUMN_END,
|
|
1364
|
+
DataStreamTreeTokenType.COLUMN_GROUP_END
|
|
1365
|
+
]);
|
|
1366
|
+
function isWholeBodySelected(textRanges, rectRanges, body) {
|
|
1367
|
+
const intervals = (Array.isArray(textRanges) ? textRanges : []).filter((range) => !range.collapsed).map(({ startOffset, endOffset }) => ({
|
|
1368
|
+
startOffset,
|
|
1369
|
+
endOffset
|
|
1370
|
+
}));
|
|
1371
|
+
for (const rectRange of Array.isArray(rectRanges) ? rectRanges : []) {
|
|
1372
|
+
if (!rectRange.spanEntireTable) continue;
|
|
1373
|
+
const table = (body.tables ?? []).find((item) => rectRange.tableId && item.tableId === rectRange.tableId || item.startIndex === rectRange.startOffset);
|
|
1374
|
+
if (table) intervals.push(getTableRangeInterval(table));
|
|
1375
|
+
}
|
|
1376
|
+
intervals.sort((left, right) => left.startOffset - right.startOffset || left.endOffset - right.endOffset);
|
|
1377
|
+
const editableEnd = Math.max(0, body.dataStream.length - 2);
|
|
1378
|
+
let intervalIndex = 0;
|
|
1379
|
+
for (let offset = 0; offset < editableEnd; offset++) {
|
|
1380
|
+
var _intervals$intervalIn;
|
|
1381
|
+
while (((_intervals$intervalIn = intervals[intervalIndex]) === null || _intervals$intervalIn === void 0 ? void 0 : _intervals$intervalIn.endOffset) <= offset) intervalIndex++;
|
|
1382
|
+
const interval = intervals[intervalIndex];
|
|
1383
|
+
if (interval && interval.startOffset <= offset && offset < interval.endOffset) continue;
|
|
1384
|
+
if (!IMPLICIT_WHOLE_BODY_SELECTION_TOKENS.has(body.dataStream[offset])) return false;
|
|
1385
|
+
}
|
|
1386
|
+
return editableEnd > 0;
|
|
1387
|
+
}
|
|
1388
|
+
function getWholeBodyCutActions(selections, docDataModel, segmentId) {
|
|
1336
1389
|
var _docDataModel$getSelf3;
|
|
1390
|
+
const body = (_docDataModel$getSelf3 = docDataModel.getSelfOrHeaderFooterModel(segmentId)) === null || _docDataModel$getSelf3 === void 0 ? void 0 : _docDataModel$getSelf3.getBody();
|
|
1391
|
+
if (!body) return [];
|
|
1392
|
+
const emptyBody = {
|
|
1393
|
+
dataStream: DataStreamTreeTokenType.PARAGRAPH,
|
|
1394
|
+
paragraphs: [{
|
|
1395
|
+
paragraphId: createParagraphId(new Set((body.paragraphs ?? []).map((paragraph) => paragraph.paragraphId))),
|
|
1396
|
+
startIndex: 0
|
|
1397
|
+
}]
|
|
1398
|
+
};
|
|
1399
|
+
const deleteLength = Math.max(0, body.dataStream.length - 1);
|
|
1400
|
+
const textX = new TextX();
|
|
1401
|
+
textX.push({
|
|
1402
|
+
t: TextXActionType.INSERT,
|
|
1403
|
+
len: emptyBody.dataStream.length,
|
|
1404
|
+
body: emptyBody
|
|
1405
|
+
});
|
|
1406
|
+
textX.push({
|
|
1407
|
+
t: TextXActionType.DELETE,
|
|
1408
|
+
len: deleteLength
|
|
1409
|
+
});
|
|
1410
|
+
const jsonX = JSONX.getInstance();
|
|
1411
|
+
const path = getRichTextEditPath(docDataModel, segmentId);
|
|
1412
|
+
const rawActions = [];
|
|
1413
|
+
const editAction = jsonX.editOp(textX.serialize(), path);
|
|
1414
|
+
if (editAction) rawActions.push(editAction);
|
|
1415
|
+
const drawings = docDataModel.getDrawings() ?? {};
|
|
1416
|
+
const drawingOrder = docDataModel.getDrawingsOrder() ?? [];
|
|
1417
|
+
const removedCustomBlockIds = getCustomBlockIdsInSelections(body, [{
|
|
1418
|
+
...selections[0] ?? { collapsed: false },
|
|
1419
|
+
startOffset: 0,
|
|
1420
|
+
endOffset: deleteLength,
|
|
1421
|
+
collapsed: false
|
|
1422
|
+
}]).sort((left, right) => drawingOrder.indexOf(right) - drawingOrder.indexOf(left));
|
|
1423
|
+
for (const blockId of removedCustomBlockIds) {
|
|
1424
|
+
const drawing = drawings[blockId];
|
|
1425
|
+
const drawingIndex = drawingOrder.indexOf(blockId);
|
|
1426
|
+
if (drawing == null || drawingIndex < 0) continue;
|
|
1427
|
+
const removeDrawingAction = jsonX.removeOp(["drawings", blockId], drawing);
|
|
1428
|
+
const removeDrawingOrderAction = jsonX.removeOp(["drawingsOrder", drawingIndex], blockId);
|
|
1429
|
+
if (removeDrawingAction) rawActions.push(removeDrawingAction);
|
|
1430
|
+
if (removeDrawingOrderAction) rawActions.push(removeDrawingOrderAction);
|
|
1431
|
+
}
|
|
1432
|
+
for (const table of body.tables ?? []) {
|
|
1433
|
+
const removeTableSourceAction = jsonX.removeOp(["tableSource", table.tableId]);
|
|
1434
|
+
if (removeTableSourceAction) rawActions.push(removeTableSourceAction);
|
|
1435
|
+
}
|
|
1436
|
+
let actions = null;
|
|
1437
|
+
for (const action of rawActions) actions = actions == null ? action : JSONX.compose(actions, action);
|
|
1438
|
+
return actions ?? [];
|
|
1439
|
+
}
|
|
1440
|
+
function getCutActionsFromRectRanges(ranges, docDataModel, viewModel, segmentId) {
|
|
1441
|
+
var _docDataModel$getSelf4;
|
|
1337
1442
|
const rawActions = [];
|
|
1338
|
-
if (((_docDataModel$
|
|
1443
|
+
if (((_docDataModel$getSelf4 = docDataModel.getSelfOrHeaderFooterModel(segmentId)) === null || _docDataModel$getSelf4 === void 0 ? void 0 : _docDataModel$getSelf4.getBody()) == null) return rawActions;
|
|
1339
1444
|
const textX = new TextX();
|
|
1340
1445
|
const jsonX = JSONX.getInstance();
|
|
1341
1446
|
const memoryCursor = new MemoryCursor();
|
|
@@ -1416,8 +1521,11 @@ function getCutActionsFromRectRanges(ranges, docDataModel, viewModel, segmentId)
|
|
|
1416
1521
|
return JSONX.compose(acc, cur);
|
|
1417
1522
|
}, null);
|
|
1418
1523
|
}
|
|
1419
|
-
function getCutActionsFromDocRanges(textRanges, rectRanges, docDataModel, viewModel, segmentId) {
|
|
1524
|
+
function getCutActionsFromDocRanges(textRanges, rectRanges, docDataModel, viewModel, segmentId, wholeBodySelected = false) {
|
|
1525
|
+
var _docDataModel$getSelf5;
|
|
1420
1526
|
let rawActions = [];
|
|
1527
|
+
const body = (_docDataModel$getSelf5 = docDataModel.getSelfOrHeaderFooterModel(segmentId)) === null || _docDataModel$getSelf5 === void 0 ? void 0 : _docDataModel$getSelf5.getBody();
|
|
1528
|
+
if (body && Array.isArray(textRanges) && Array.isArray(rectRanges) && (wholeBodySelected || isWholeBodySelected(textRanges, rectRanges, body))) return getWholeBodyCutActions(textRanges, docDataModel, segmentId);
|
|
1421
1529
|
if (Array.isArray(textRanges) && (textRanges === null || textRanges === void 0 ? void 0 : textRanges.length) !== 0) rawActions = getCutActionsFromTextRanges(textRanges, docDataModel, segmentId);
|
|
1422
1530
|
if (Array.isArray(rectRanges) && (rectRanges === null || rectRanges === void 0 ? void 0 : rectRanges.length) !== 0) {
|
|
1423
1531
|
const actions = getCutActionsFromRectRanges(rectRanges, docDataModel, viewModel, segmentId);
|
|
@@ -1426,14 +1534,42 @@ function getCutActionsFromDocRanges(textRanges, rectRanges, docDataModel, viewMo
|
|
|
1426
1534
|
}
|
|
1427
1535
|
return rawActions;
|
|
1428
1536
|
}
|
|
1537
|
+
function getReplaceDocRangesActions(textRanges, rectRanges, docDataModel, viewModel, segmentId, insertBody, wholeBodySelected = false) {
|
|
1538
|
+
var _docDataModel$getSelf6;
|
|
1539
|
+
const body = (_docDataModel$getSelf6 = docDataModel.getSelfOrHeaderFooterModel(segmentId)) === null || _docDataModel$getSelf6 === void 0 ? void 0 : _docDataModel$getSelf6.getBody();
|
|
1540
|
+
const insertOffset = wholeBodySelected || body && isWholeBodySelected(textRanges, rectRanges, body) ? 0 : getDocRangeInsertOffset(textRanges, rectRanges);
|
|
1541
|
+
if (insertOffset == null) return null;
|
|
1542
|
+
const cutActions = getCutActionsFromDocRanges(textRanges, rectRanges, docDataModel, viewModel, segmentId, wholeBodySelected);
|
|
1543
|
+
const textX = new TextX();
|
|
1544
|
+
if (insertOffset > 0) textX.push({
|
|
1545
|
+
t: TextXActionType.RETAIN,
|
|
1546
|
+
len: insertOffset
|
|
1547
|
+
});
|
|
1548
|
+
if (insertBody.dataStream.length > 0) textX.push({
|
|
1549
|
+
t: TextXActionType.INSERT,
|
|
1550
|
+
body: insertBody,
|
|
1551
|
+
len: insertBody.dataStream.length
|
|
1552
|
+
});
|
|
1553
|
+
const insertAction = JSONX.getInstance().editOp(textX.serialize(), getRichTextEditPath(docDataModel, segmentId));
|
|
1554
|
+
return {
|
|
1555
|
+
actions: insertAction == null ? cutActions : cutActions == null || cutActions.length === 0 ? insertAction : JSONX.compose(cutActions, insertAction),
|
|
1556
|
+
insertOffset
|
|
1557
|
+
};
|
|
1558
|
+
}
|
|
1559
|
+
function getDocRangeInsertOffset(textRanges, rectRanges) {
|
|
1560
|
+
const insertOffset = [...Array.isArray(textRanges) ? textRanges : [], ...Array.isArray(rectRanges) ? rectRanges : []].filter((range) => range.startOffset != null && range.endOffset != null).reduce((offset, range) => Math.min(offset, range.startOffset), Number.POSITIVE_INFINITY);
|
|
1561
|
+
return Number.isFinite(insertOffset) ? insertOffset : null;
|
|
1562
|
+
}
|
|
1429
1563
|
const CutContentCommand = {
|
|
1430
1564
|
id: "doc.command.inner-cut",
|
|
1431
1565
|
type: CommandType.COMMAND,
|
|
1432
1566
|
handler: (accessor, params) => {
|
|
1567
|
+
var _selectionInfo$option3;
|
|
1433
1568
|
const docSelectionManagerService = accessor.get(DocSelectionManagerService);
|
|
1434
1569
|
const commandService = accessor.get(ICommandService);
|
|
1435
1570
|
const univerInstanceService = accessor.get(IUniverInstanceService);
|
|
1436
|
-
const
|
|
1571
|
+
const selectionInfo = docSelectionManagerService.getSelectionInfo();
|
|
1572
|
+
const { segmentId, textRanges, selections = docSelectionManagerService.getTextRanges(), rectRanges = docSelectionManagerService.getRectRanges(), wholeBodySelected = (selectionInfo === null || selectionInfo === void 0 || (_selectionInfo$option3 = selectionInfo.options) === null || _selectionInfo$option3 === void 0 ? void 0 : _selectionInfo$option3.wholeDocument) === true } = params;
|
|
1437
1573
|
if ((!Array.isArray(selections) || selections.length === 0) && (!Array.isArray(rectRanges) || rectRanges.length === 0)) return false;
|
|
1438
1574
|
const docDataModel = univerInstanceService.getCurrentUnitOfType(UniverInstanceType.UNIVER_DOC);
|
|
1439
1575
|
if (docDataModel == null) return false;
|
|
@@ -1446,10 +1582,11 @@ const CutContentCommand = {
|
|
|
1446
1582
|
params: {
|
|
1447
1583
|
unitId,
|
|
1448
1584
|
actions: [],
|
|
1449
|
-
textRanges
|
|
1585
|
+
textRanges,
|
|
1586
|
+
trigger: CutContentCommand.id
|
|
1450
1587
|
}
|
|
1451
1588
|
};
|
|
1452
|
-
doMutation.params.actions = getCutActionsFromDocRanges(selections, rectRanges, docDataModel, viewModel, segmentId);
|
|
1589
|
+
doMutation.params.actions = getCutActionsFromDocRanges(selections, rectRanges, docDataModel, viewModel, segmentId, wholeBodySelected);
|
|
1453
1590
|
const result = commandService.syncExecuteCommand(doMutation.id, doMutation.params);
|
|
1454
1591
|
return Boolean(result);
|
|
1455
1592
|
}
|
|
@@ -3397,8 +3534,7 @@ function processNode(node, doc, result) {
|
|
|
3397
3534
|
return childResult.html;
|
|
3398
3535
|
}).join("");
|
|
3399
3536
|
if (childHtml) {
|
|
3400
|
-
|
|
3401
|
-
else closeListStack(result);
|
|
3537
|
+
closeListStack(result);
|
|
3402
3538
|
result.html += childHtml;
|
|
3403
3539
|
break;
|
|
3404
3540
|
}
|
|
@@ -3816,10 +3952,12 @@ let DocClipboardService = class DocClipboardService extends Disposable {
|
|
|
3816
3952
|
var _copy$paragraphStyle;
|
|
3817
3953
|
if ((_copy$paragraphStyle = copy.paragraphStyle) === null || _copy$paragraphStyle === void 0 ? void 0 : _copy$paragraphStyle.headingId) copy.paragraphStyle.headingId = generateRandomId(6);
|
|
3818
3954
|
});
|
|
3819
|
-
const
|
|
3820
|
-
const
|
|
3955
|
+
const activeRange = this._docSelectionManagerService.getActiveTextRange();
|
|
3956
|
+
const docRanges = this._docSelectionManagerService.getDocRanges();
|
|
3957
|
+
const { segmentId, endOffset: activeEndOffset, style } = (activeRange ?? docRanges.find((range) => range.isActive) ?? docRanges[0]) || {};
|
|
3958
|
+
const ranges = this._docSelectionManagerService.getTextRanges() ?? [];
|
|
3821
3959
|
if (segmentId == null) this._logService.error("[DocClipboardController] segmentId does not exist!");
|
|
3822
|
-
if (activeEndOffset == null
|
|
3960
|
+
if (activeEndOffset == null) return false;
|
|
3823
3961
|
const originBody = segmentId == null ? null : (_currentDocument$getS = currentDocument.getSelfOrHeaderFooterModel(segmentId)) === null || _currentDocument$getS === void 0 ? void 0 : _currentDocument$getS.getBody();
|
|
3824
3962
|
if (originBody) ensureParagraphAtStructuralGap(body, originBody, ranges);
|
|
3825
3963
|
try {
|
|
@@ -4524,27 +4662,37 @@ const InsertHorizontalLineBellowCommand = {
|
|
|
4524
4662
|
const DocSelectAllCommand = {
|
|
4525
4663
|
id: "doc.command.select-all",
|
|
4526
4664
|
type: CommandType.COMMAND,
|
|
4527
|
-
handler: async (accessor) => {
|
|
4665
|
+
handler: async (accessor, params) => {
|
|
4528
4666
|
var _docDataModel$getSelf;
|
|
4529
4667
|
const univerInstanceService = accessor.get(IUniverInstanceService);
|
|
4530
4668
|
const docSelectionManagerService = accessor.get(DocSelectionManagerService);
|
|
4531
4669
|
const docDataModel = univerInstanceService.getCurrentUnitOfType(UniverInstanceType.UNIVER_DOC);
|
|
4532
4670
|
const docRanges = docSelectionManagerService.getDocRanges();
|
|
4533
4671
|
const activeRange = docRanges.find((range) => range.isActive) ?? docRanges[0];
|
|
4534
|
-
if (docDataModel == null
|
|
4535
|
-
const
|
|
4672
|
+
if (docDataModel == null) return false;
|
|
4673
|
+
const segmentId = (params === null || params === void 0 ? void 0 : params.segmentId) ?? (activeRange === null || activeRange === void 0 ? void 0 : activeRange.segmentId);
|
|
4674
|
+
if (segmentId == null) return false;
|
|
4536
4675
|
const unitId = docDataModel.getUnitId();
|
|
4537
4676
|
const body = (_docDataModel$getSelf = docDataModel.getSelfOrHeaderFooterModel(segmentId)) === null || _docDataModel$getSelf === void 0 ? void 0 : _docDataModel$getSelf.getBody();
|
|
4538
4677
|
if (body == null) return false;
|
|
4539
4678
|
const { dataStream } = body;
|
|
4540
4679
|
if (dataStream === "\r\n") return true;
|
|
4541
|
-
|
|
4542
|
-
|
|
4543
|
-
|
|
4680
|
+
let textRanges;
|
|
4681
|
+
let wholeDocument;
|
|
4682
|
+
if (params === null || params === void 0 ? void 0 : params.wholeDocument) {
|
|
4683
|
+
textRanges = getWholeDocumentRanges(body);
|
|
4684
|
+
wholeDocument = true;
|
|
4685
|
+
} else {
|
|
4686
|
+
if (activeRange == null) return false;
|
|
4687
|
+
const scopes = getSelectAllScopes(body, activeRange);
|
|
4688
|
+
const currentScopeIndex = scopes.findIndex((scope) => isSameRanges(docRanges, scope));
|
|
4689
|
+
textRanges = scopes[Math.min(currentScopeIndex + 1, scopes.length - 1)];
|
|
4690
|
+
wholeDocument = textRanges === scopes[scopes.length - 1];
|
|
4691
|
+
}
|
|
4544
4692
|
docSelectionManagerService.replaceDocRanges(textRanges, {
|
|
4545
4693
|
unitId,
|
|
4546
4694
|
subUnitId: unitId
|
|
4547
|
-
}, false);
|
|
4695
|
+
}, false, { wholeDocument });
|
|
4548
4696
|
return true;
|
|
4549
4697
|
}
|
|
4550
4698
|
};
|
|
@@ -4716,6 +4864,9 @@ var DocIMEInputManagerService = class extends RxDisposable {
|
|
|
4716
4864
|
super();
|
|
4717
4865
|
this._context = _context;
|
|
4718
4866
|
_defineProperty(this, "_previousActiveRange", null);
|
|
4867
|
+
_defineProperty(this, "_previousDocRanges", []);
|
|
4868
|
+
_defineProperty(this, "_compositionRange", null);
|
|
4869
|
+
_defineProperty(this, "_previousSelectionOptions", null);
|
|
4719
4870
|
_defineProperty(this, "_undoMutationParamsCache", []);
|
|
4720
4871
|
_defineProperty(this, "_redoMutationParamsCache", []);
|
|
4721
4872
|
}
|
|
@@ -4738,6 +4889,25 @@ var DocIMEInputManagerService = class extends RxDisposable {
|
|
|
4738
4889
|
}
|
|
4739
4890
|
setActiveRange(range) {
|
|
4740
4891
|
this._previousActiveRange = range;
|
|
4892
|
+
this._compositionRange = range;
|
|
4893
|
+
}
|
|
4894
|
+
getCompositionRange() {
|
|
4895
|
+
return this._compositionRange;
|
|
4896
|
+
}
|
|
4897
|
+
setCompositionRange(range) {
|
|
4898
|
+
this._compositionRange = range;
|
|
4899
|
+
}
|
|
4900
|
+
getPreviousDocRanges() {
|
|
4901
|
+
return this._previousDocRanges;
|
|
4902
|
+
}
|
|
4903
|
+
setPreviousDocRanges(ranges) {
|
|
4904
|
+
this._previousDocRanges = ranges;
|
|
4905
|
+
}
|
|
4906
|
+
getPreviousSelectionOptions() {
|
|
4907
|
+
return this._previousSelectionOptions;
|
|
4908
|
+
}
|
|
4909
|
+
setPreviousSelectionOptions(options) {
|
|
4910
|
+
this._previousSelectionOptions = options;
|
|
4741
4911
|
}
|
|
4742
4912
|
pushUndoRedoMutationParams(undoParams, redoParams) {
|
|
4743
4913
|
this._undoMutationParamsCache.push(undoParams);
|
|
@@ -4746,12 +4916,15 @@ var DocIMEInputManagerService = class extends RxDisposable {
|
|
|
4746
4916
|
fetchComposedUndoRedoMutationParams() {
|
|
4747
4917
|
if (this._undoMutationParamsCache.length === 0 || this._previousActiveRange == null || this._redoMutationParamsCache.length === 0) return null;
|
|
4748
4918
|
const { unitId } = this._undoMutationParamsCache[0];
|
|
4919
|
+
const firstUndoParams = this._undoMutationParamsCache[0];
|
|
4920
|
+
const lastRedoParams = this._redoMutationParamsCache.at(-1);
|
|
4749
4921
|
const undoMutationParams = {
|
|
4750
4922
|
unitId,
|
|
4751
4923
|
actions: this._undoMutationParamsCache.reverse().reduce((acc, cur) => {
|
|
4752
4924
|
return JSONX.compose(acc, cur.actions);
|
|
4753
4925
|
}, null),
|
|
4754
|
-
textRanges: []
|
|
4926
|
+
textRanges: [],
|
|
4927
|
+
segmentId: firstUndoParams.segmentId
|
|
4755
4928
|
};
|
|
4756
4929
|
return {
|
|
4757
4930
|
redoMutationParams: {
|
|
@@ -4759,16 +4932,24 @@ var DocIMEInputManagerService = class extends RxDisposable {
|
|
|
4759
4932
|
actions: this._redoMutationParamsCache.reduce((acc, cur) => {
|
|
4760
4933
|
return JSONX.compose(acc, cur.actions);
|
|
4761
4934
|
}, null),
|
|
4762
|
-
textRanges: []
|
|
4935
|
+
textRanges: (lastRedoParams === null || lastRedoParams === void 0 ? void 0 : lastRedoParams.textRanges) ?? [],
|
|
4936
|
+
segmentId: lastRedoParams === null || lastRedoParams === void 0 ? void 0 : lastRedoParams.segmentId,
|
|
4937
|
+
options: lastRedoParams === null || lastRedoParams === void 0 ? void 0 : lastRedoParams.options,
|
|
4938
|
+
isEditing: lastRedoParams === null || lastRedoParams === void 0 ? void 0 : lastRedoParams.isEditing
|
|
4763
4939
|
},
|
|
4764
4940
|
undoMutationParams,
|
|
4765
|
-
previousActiveRange: this._previousActiveRange
|
|
4941
|
+
previousActiveRange: this._previousActiveRange,
|
|
4942
|
+
previousDocRanges: this._previousDocRanges,
|
|
4943
|
+
previousSelectionOptions: this._previousSelectionOptions
|
|
4766
4944
|
};
|
|
4767
4945
|
}
|
|
4768
4946
|
dispose() {
|
|
4769
4947
|
this._undoMutationParamsCache = [];
|
|
4770
4948
|
this._redoMutationParamsCache = [];
|
|
4771
4949
|
this._previousActiveRange = null;
|
|
4950
|
+
this._previousDocRanges = [];
|
|
4951
|
+
this._compositionRange = null;
|
|
4952
|
+
this._previousSelectionOptions = null;
|
|
4772
4953
|
}
|
|
4773
4954
|
};
|
|
4774
4955
|
|
|
@@ -4778,7 +4959,7 @@ const IMEInputCommand = {
|
|
|
4778
4959
|
id: "doc.command.ime-input",
|
|
4779
4960
|
type: CommandType.COMMAND,
|
|
4780
4961
|
handler: async (accessor, params) => {
|
|
4781
|
-
var _renderManagerService, _docDataModel$getSelf;
|
|
4962
|
+
var _renderManagerService, _docDataModel$getSelf, _imeInputManagerServi;
|
|
4782
4963
|
const { unitId, newText, oldTextLen, isCompositionEnd, isCompositionStart } = params;
|
|
4783
4964
|
const commandService = accessor.get(ICommandService);
|
|
4784
4965
|
const renderManagerService = accessor.get(IRenderManagerService);
|
|
@@ -4787,82 +4968,121 @@ const IMEInputCommand = {
|
|
|
4787
4968
|
const imeInputManagerService = (_renderManagerService = renderManagerService.getRenderUnitById(unitId)) === null || _renderManagerService === void 0 ? void 0 : _renderManagerService.with(DocIMEInputManagerService);
|
|
4788
4969
|
const docDataModel = univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_DOC);
|
|
4789
4970
|
if (docDataModel == null || imeInputManagerService == null) return false;
|
|
4790
|
-
const previousActiveRange = imeInputManagerService.
|
|
4971
|
+
const previousActiveRange = imeInputManagerService.getCompositionRange();
|
|
4791
4972
|
if (previousActiveRange == null) return false;
|
|
4792
4973
|
const { style, segmentId } = previousActiveRange;
|
|
4793
4974
|
const body = (_docDataModel$getSelf = docDataModel.getSelfOrHeaderFooterModel(segmentId)) === null || _docDataModel$getSelf === void 0 ? void 0 : _docDataModel$getSelf.getBody();
|
|
4794
4975
|
if (body == null) return false;
|
|
4795
4976
|
Object.assign(previousActiveRange, previousActiveRange);
|
|
4796
4977
|
const { startOffset, endOffset } = previousActiveRange;
|
|
4978
|
+
const previousDocRanges = imeInputManagerService.getPreviousDocRanges();
|
|
4979
|
+
const previousRectRanges = previousDocRanges.filter(isRectRange);
|
|
4980
|
+
const previousTextRanges = previousDocRanges.filter((range) => !isRectRange(range));
|
|
4981
|
+
const wholeBodySelected = ((_imeInputManagerServi = imeInputManagerService.getPreviousSelectionOptions()) === null || _imeInputManagerServi === void 0 ? void 0 : _imeInputManagerServi.wholeDocument) === true;
|
|
4982
|
+
const replacesComplexSelection = isCompositionStart && (wholeBodySelected || previousRectRanges.length > 0 || previousTextRanges.length > 1);
|
|
4983
|
+
let replacementOffset = replacesComplexSelection ? wholeBodySelected ? 0 : getDocRangeInsertOffset(previousTextRanges, previousRectRanges) : startOffset;
|
|
4984
|
+
if (replacementOffset == null) return false;
|
|
4797
4985
|
const len = newText.length;
|
|
4798
4986
|
const textRanges = [{
|
|
4799
|
-
startOffset:
|
|
4800
|
-
endOffset:
|
|
4987
|
+
startOffset: replacementOffset + len,
|
|
4988
|
+
endOffset: replacementOffset + len,
|
|
4801
4989
|
collapsed: true,
|
|
4802
|
-
style
|
|
4990
|
+
style,
|
|
4991
|
+
segmentId
|
|
4803
4992
|
}];
|
|
4804
4993
|
const doMutation = {
|
|
4805
4994
|
id: RichTextEditingMutation.id,
|
|
4806
4995
|
params: {
|
|
4807
4996
|
unitId,
|
|
4808
4997
|
actions: [],
|
|
4809
|
-
textRanges
|
|
4998
|
+
textRanges,
|
|
4999
|
+
segmentId,
|
|
5000
|
+
trigger: IMEInputCommand.id
|
|
4810
5001
|
}
|
|
4811
5002
|
};
|
|
4812
5003
|
const defaultTextStyle = docMenuStyleService.getDefaultStyle();
|
|
4813
5004
|
const styleCache = docMenuStyleService.getStyleCache();
|
|
4814
|
-
const
|
|
4815
|
-
const
|
|
4816
|
-
const
|
|
5005
|
+
const styleOffset = replacesComplexSelection ? replacementOffset : startOffset + oldTextLen;
|
|
5006
|
+
const curCustomRange = getCustomRangeAtPosition(body.customRanges ?? [], styleOffset, SHEET_EDITOR_UNITS.includes(unitId));
|
|
5007
|
+
const curTextRun = getTextRunAtPosition(body, replacesComplexSelection ? replacementOffset : isCompositionStart ? endOffset : startOffset + oldTextLen, defaultTextStyle, styleCache, SHEET_EDITOR_UNITS.includes(unitId));
|
|
5008
|
+
const customDecorations = getCustomDecorationAtPosition(body.customDecorations ?? [], styleOffset);
|
|
5009
|
+
const insertBody = {
|
|
5010
|
+
dataStream: newText,
|
|
5011
|
+
textRuns: curTextRun ? [{
|
|
5012
|
+
...curTextRun,
|
|
5013
|
+
st: 0,
|
|
5014
|
+
ed: newText.length
|
|
5015
|
+
}] : [],
|
|
5016
|
+
customRanges: curCustomRange ? [{
|
|
5017
|
+
...curCustomRange,
|
|
5018
|
+
startIndex: 0,
|
|
5019
|
+
endIndex: newText.length - 1
|
|
5020
|
+
}] : [],
|
|
5021
|
+
customDecorations: customDecorations.map((customDecoration) => ({
|
|
5022
|
+
...customDecoration,
|
|
5023
|
+
startIndex: 0,
|
|
5024
|
+
endIndex: newText.length - 1
|
|
5025
|
+
}))
|
|
5026
|
+
};
|
|
4817
5027
|
const textX = new TextX();
|
|
4818
5028
|
const jsonX = JSONX.getInstance();
|
|
4819
|
-
if (
|
|
5029
|
+
if (replacesComplexSelection) {
|
|
5030
|
+
var _renderManagerService2;
|
|
5031
|
+
const docSkeletonManagerService = (_renderManagerService2 = renderManagerService.getRenderUnitById(unitId)) === null || _renderManagerService2 === void 0 ? void 0 : _renderManagerService2.with(DocSkeletonManagerService);
|
|
5032
|
+
if (!docSkeletonManagerService) return false;
|
|
5033
|
+
const replacement = getReplaceDocRangesActions(previousTextRanges, previousRectRanges, docDataModel, docSkeletonManagerService.getViewModel(), segmentId ?? "", insertBody, wholeBodySelected);
|
|
5034
|
+
if (!replacement) return false;
|
|
5035
|
+
replacementOffset = replacement.insertOffset;
|
|
5036
|
+
doMutation.params.actions = replacement.actions;
|
|
5037
|
+
doMutation.params.textRanges = [{
|
|
5038
|
+
startOffset: replacementOffset + len,
|
|
5039
|
+
endOffset: replacementOffset + len,
|
|
5040
|
+
collapsed: true,
|
|
5041
|
+
style,
|
|
5042
|
+
segmentId
|
|
5043
|
+
}];
|
|
5044
|
+
} else if (!previousActiveRange.collapsed && isCompositionStart) {
|
|
4820
5045
|
const dos = BuildTextUtils.selection.delete([previousActiveRange], body, 0, null, false);
|
|
4821
5046
|
textX.push(...dos);
|
|
4822
5047
|
doMutation.params.textRanges = [{
|
|
4823
|
-
startOffset:
|
|
4824
|
-
endOffset:
|
|
4825
|
-
collapsed: true
|
|
5048
|
+
startOffset: replacementOffset + len,
|
|
5049
|
+
endOffset: replacementOffset + len,
|
|
5050
|
+
collapsed: true,
|
|
5051
|
+
segmentId
|
|
4826
5052
|
}];
|
|
4827
5053
|
} else textX.push({
|
|
4828
5054
|
t: TextXActionType.RETAIN,
|
|
4829
5055
|
len: startOffset
|
|
4830
5056
|
});
|
|
4831
|
-
if (oldTextLen > 0) textX.push({
|
|
5057
|
+
if (!replacesComplexSelection && oldTextLen > 0) textX.push({
|
|
4832
5058
|
t: TextXActionType.DELETE,
|
|
4833
5059
|
len: oldTextLen
|
|
4834
5060
|
});
|
|
4835
|
-
textX.push({
|
|
5061
|
+
if (!replacesComplexSelection) textX.push({
|
|
4836
5062
|
t: TextXActionType.INSERT,
|
|
4837
|
-
body:
|
|
4838
|
-
dataStream: newText,
|
|
4839
|
-
textRuns: curTextRun ? [{
|
|
4840
|
-
...curTextRun,
|
|
4841
|
-
st: 0,
|
|
4842
|
-
ed: newText.length
|
|
4843
|
-
}] : [],
|
|
4844
|
-
customRanges: curCustomRange ? [{
|
|
4845
|
-
...curCustomRange,
|
|
4846
|
-
startIndex: 0,
|
|
4847
|
-
endIndex: newText.length - 1
|
|
4848
|
-
}] : [],
|
|
4849
|
-
customDecorations: customDecorations.map((customDecoration) => ({
|
|
4850
|
-
...customDecoration,
|
|
4851
|
-
startIndex: 0,
|
|
4852
|
-
endIndex: newText.length - 1
|
|
4853
|
-
}))
|
|
4854
|
-
},
|
|
5063
|
+
body: insertBody,
|
|
4855
5064
|
len: newText.length
|
|
4856
5065
|
});
|
|
4857
|
-
|
|
4858
|
-
|
|
5066
|
+
if (!replacesComplexSelection) {
|
|
5067
|
+
const path = getRichTextEditPath(docDataModel, segmentId);
|
|
5068
|
+
doMutation.params.actions = jsonX.editOp(textX.serialize(), path);
|
|
5069
|
+
}
|
|
4859
5070
|
doMutation.params.noHistory = !isCompositionEnd;
|
|
4860
5071
|
doMutation.params.isCompositionEnd = isCompositionEnd;
|
|
4861
5072
|
const result = commandService.syncExecuteCommand(doMutation.id, doMutation.params);
|
|
4862
5073
|
imeInputManagerService.pushUndoRedoMutationParams(result, doMutation.params);
|
|
5074
|
+
if (replacesComplexSelection) imeInputManagerService.setCompositionRange({
|
|
5075
|
+
...previousActiveRange,
|
|
5076
|
+
startOffset: replacementOffset,
|
|
5077
|
+
endOffset: replacementOffset,
|
|
5078
|
+
collapsed: true
|
|
5079
|
+
});
|
|
4863
5080
|
return Boolean(result);
|
|
4864
5081
|
}
|
|
4865
5082
|
};
|
|
5083
|
+
function isRectRange(range) {
|
|
5084
|
+
return "tableId" in range;
|
|
5085
|
+
}
|
|
4866
5086
|
|
|
4867
5087
|
//#endregion
|
|
4868
5088
|
//#region src/commands/commands/inline-format.command.ts
|
|
@@ -5335,28 +5555,46 @@ const ReplaceSelectionCommand = {
|
|
|
5335
5555
|
id: "doc.command.replace-selection",
|
|
5336
5556
|
type: CommandType.COMMAND,
|
|
5337
5557
|
handler(accessor, params) {
|
|
5558
|
+
var _docSelectionManagerS, _docDataModel$getSelf2, _body$blockRanges, _body$columnGroups, _body$customBlocks, _body$tables, _selectionInfo$option, _selectionInfo$option2, _docSelectionManagerS2;
|
|
5338
5559
|
if (!params) return false;
|
|
5339
5560
|
const commandService = accessor.get(ICommandService);
|
|
5340
|
-
const { unitId, body: insertBody, textRanges } = params;
|
|
5561
|
+
const { unitId, body: insertBody, textRanges, segmentId } = params;
|
|
5341
5562
|
const docDataModel = accessor.get(IUniverInstanceService).getUnit(unitId);
|
|
5342
5563
|
const docSelectionManagerService = accessor.get(DocSelectionManagerService);
|
|
5343
5564
|
if (!docDataModel) return false;
|
|
5344
|
-
const body = docDataModel.getBody();
|
|
5345
5565
|
const selection = params.selection ?? docSelectionManagerService.getActiveTextRange();
|
|
5566
|
+
const targetSegmentId = segmentId ?? ((_docSelectionManagerS = docSelectionManagerService.getActiveTextRange()) === null || _docSelectionManagerS === void 0 ? void 0 : _docSelectionManagerS.segmentId) ?? "";
|
|
5567
|
+
const body = (_docDataModel$getSelf2 = docDataModel.getSelfOrHeaderFooterModel(targetSegmentId)) === null || _docDataModel$getSelf2 === void 0 ? void 0 : _docDataModel$getSelf2.getBody();
|
|
5346
5568
|
if (!selection || !body) return false;
|
|
5569
|
+
const selectionInfo = docSelectionManagerService.getSelectionInfo();
|
|
5570
|
+
const selectedTextRanges = params.selection ? [params.selection] : docSelectionManagerService.getTextRanges() ?? [];
|
|
5571
|
+
const selectedRectRanges = params.selection ? [] : docSelectionManagerService.getRectRanges() ?? [];
|
|
5572
|
+
const docSkeletonManagerService = !selection.collapsed && (Boolean((_body$blockRanges = body.blockRanges) === null || _body$blockRanges === void 0 ? void 0 : _body$blockRanges.length) || Boolean((_body$columnGroups = body.columnGroups) === null || _body$columnGroups === void 0 ? void 0 : _body$columnGroups.length) || Boolean((_body$customBlocks = body.customBlocks) === null || _body$customBlocks === void 0 ? void 0 : _body$customBlocks.length) || Boolean((_body$tables = body.tables) === null || _body$tables === void 0 ? void 0 : _body$tables.length)) || selectedRectRanges.length > 0 || selectedTextRanges.length > 1 || (selectionInfo === null || selectionInfo === void 0 || (_selectionInfo$option = selectionInfo.options) === null || _selectionInfo$option === void 0 ? void 0 : _selectionInfo$option.wholeDocument) === true ? getCommandSkeleton(accessor, unitId) : null;
|
|
5573
|
+
const replacement = docSkeletonManagerService ? getReplaceDocRangesActions(selectedTextRanges, selectedRectRanges, docDataModel, docSkeletonManagerService.getViewModel(), targetSegmentId, insertBody, (selectionInfo === null || selectionInfo === void 0 || (_selectionInfo$option2 = selectionInfo.options) === null || _selectionInfo$option2 === void 0 ? void 0 : _selectionInfo$option2.wholeDocument) === true) : null;
|
|
5574
|
+
const insertOffset = (replacement === null || replacement === void 0 ? void 0 : replacement.insertOffset) ?? selection.startOffset;
|
|
5347
5575
|
const doMutation = {
|
|
5348
5576
|
id: RichTextEditingMutation.id,
|
|
5349
5577
|
params: {
|
|
5350
5578
|
unitId,
|
|
5351
5579
|
actions: [],
|
|
5352
|
-
textRanges
|
|
5353
|
-
|
|
5580
|
+
textRanges: textRanges ?? [{
|
|
5581
|
+
startOffset: insertOffset + insertBody.dataStream.length,
|
|
5582
|
+
endOffset: insertOffset + insertBody.dataStream.length,
|
|
5583
|
+
collapsed: true,
|
|
5584
|
+
style: (_docSelectionManagerS2 = docSelectionManagerService.getActiveTextRange()) === null || _docSelectionManagerS2 === void 0 ? void 0 : _docSelectionManagerS2.style,
|
|
5585
|
+
segmentId: targetSegmentId
|
|
5586
|
+
}],
|
|
5587
|
+
segmentId: targetSegmentId,
|
|
5588
|
+
debounce: true,
|
|
5589
|
+
trigger: ReplaceSelectionCommand.id
|
|
5354
5590
|
}
|
|
5355
5591
|
};
|
|
5356
|
-
|
|
5357
|
-
|
|
5358
|
-
|
|
5359
|
-
|
|
5592
|
+
if (replacement) doMutation.params.actions = replacement.actions;
|
|
5593
|
+
else {
|
|
5594
|
+
const textX = new TextX();
|
|
5595
|
+
textX.push(...BuildTextUtils.selection.delete([selection], body, 0, insertBody));
|
|
5596
|
+
doMutation.params.actions = JSONX.getInstance().editOp(textX.serialize(), getRichTextEditPath(docDataModel, targetSegmentId));
|
|
5597
|
+
}
|
|
5360
5598
|
return commandService.syncExecuteCommand(doMutation.id, doMutation.params);
|
|
5361
5599
|
}
|
|
5362
5600
|
};
|
|
@@ -5364,13 +5602,13 @@ const ReplaceTextRunsCommand = {
|
|
|
5364
5602
|
id: "doc.command.replace-text-runs",
|
|
5365
5603
|
type: CommandType.COMMAND,
|
|
5366
5604
|
handler: (accessor, params) => {
|
|
5367
|
-
var _docDataModel$
|
|
5605
|
+
var _docDataModel$getSelf3;
|
|
5368
5606
|
const { unitId, body, textRanges, segmentId = "", options } = params;
|
|
5369
5607
|
const univerInstanceService = accessor.get(IUniverInstanceService);
|
|
5370
5608
|
const commandService = accessor.get(ICommandService);
|
|
5371
5609
|
const themeService = accessor.get(ThemeService);
|
|
5372
5610
|
const docDataModel = univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_DOC);
|
|
5373
|
-
const prevBody = docDataModel === null || docDataModel === void 0 || (_docDataModel$
|
|
5611
|
+
const prevBody = docDataModel === null || docDataModel === void 0 || (_docDataModel$getSelf3 = docDataModel.getSelfOrHeaderFooterModel(segmentId)) === null || _docDataModel$getSelf3 === void 0 ? void 0 : _docDataModel$getSelf3.getBody();
|
|
5374
5612
|
if (docDataModel == null || prevBody == null) return false;
|
|
5375
5613
|
const textX = BuildTextUtils.selection.replaceTextRuns({
|
|
5376
5614
|
doc: docDataModel,
|
|
@@ -5713,10 +5951,7 @@ const QuickListCommand = {
|
|
|
5713
5951
|
indentFirstLine: void 0
|
|
5714
5952
|
},
|
|
5715
5953
|
bullet: {
|
|
5716
|
-
...paragraph.bullet ?? {
|
|
5717
|
-
nestingLevel: 0,
|
|
5718
|
-
textStyle: { fs: 20 }
|
|
5719
|
-
},
|
|
5954
|
+
...paragraph.bullet ?? { nestingLevel: 0 },
|
|
5720
5955
|
listType,
|
|
5721
5956
|
listId
|
|
5722
5957
|
}
|
|
@@ -7156,6 +7391,7 @@ const TEXT_RANGE_KEY_PREFIX = "__TestSelectionRange__";
|
|
|
7156
7391
|
const TEXT_ANCHOR_KEY_PREFIX = "__TestSelectionAnchor__";
|
|
7157
7392
|
const ID_LENGTH$1 = 6;
|
|
7158
7393
|
const BLINK_ON = 500;
|
|
7394
|
+
const DEFAULT_CARET_COLOR = "gray.1000";
|
|
7159
7395
|
const TEXT_RANGE_LAYER_INDEX = 3;
|
|
7160
7396
|
function cursorConvertToTextRange(scene, range, docSkeleton, document) {
|
|
7161
7397
|
const { startOffset, endOffset, style = NORMAL_TEXT_SELECTION_PLUGIN_STYLE, segmentId = "", segmentPage } = range;
|
|
@@ -7212,6 +7448,7 @@ var TextRange = class {
|
|
|
7212
7448
|
_defineProperty(this, "_anchorShape", void 0);
|
|
7213
7449
|
_defineProperty(this, "_cursorList", []);
|
|
7214
7450
|
_defineProperty(this, "_anchorBlinkTimer", null);
|
|
7451
|
+
_defineProperty(this, "_anchorActiveStroke", DEFAULT_CARET_COLOR);
|
|
7215
7452
|
this._anchorBlink();
|
|
7216
7453
|
this.refresh();
|
|
7217
7454
|
}
|
|
@@ -7307,27 +7544,36 @@ var TextRange = class {
|
|
|
7307
7544
|
return this._anchorShape;
|
|
7308
7545
|
}
|
|
7309
7546
|
activeStatic() {
|
|
7310
|
-
var _this$_anchorShape
|
|
7311
|
-
(_this$_anchorShape = this._anchorShape) === null || _this$_anchorShape === void 0 || _this$_anchorShape.setProps({ stroke:
|
|
7547
|
+
var _this$_anchorShape;
|
|
7548
|
+
(_this$_anchorShape = this._anchorShape) === null || _this$_anchorShape === void 0 || _this$_anchorShape.setProps({ stroke: this._anchorActiveStroke });
|
|
7312
7549
|
}
|
|
7313
7550
|
deactivateStatic() {
|
|
7314
|
-
var _this$_anchorShape2, _this$
|
|
7315
|
-
(_this$_anchorShape2 = this._anchorShape) === null || _this$_anchorShape2 === void 0 || _this$_anchorShape2.setProps({ stroke: ((_this$
|
|
7551
|
+
var _this$_anchorShape2, _this$style;
|
|
7552
|
+
(_this$_anchorShape2 = this._anchorShape) === null || _this$_anchorShape2 === void 0 || _this$_anchorShape2.setProps({ stroke: ((_this$style = this.style) === null || _this$style === void 0 ? void 0 : _this$style.stroke) || getColor(COLORS.black, 0) });
|
|
7316
7553
|
}
|
|
7317
7554
|
isActive() {
|
|
7318
7555
|
return this._current === true;
|
|
7319
7556
|
}
|
|
7320
7557
|
activate() {
|
|
7321
7558
|
this._current = true;
|
|
7559
|
+
if (this._isCollapsed()) {
|
|
7560
|
+
var _this$_anchorShape3;
|
|
7561
|
+
(_this$_anchorShape3 = this._anchorShape) === null || _this$_anchorShape3 === void 0 || _this$_anchorShape3.show();
|
|
7562
|
+
this.activeStatic();
|
|
7563
|
+
}
|
|
7322
7564
|
}
|
|
7323
7565
|
deactivate() {
|
|
7324
7566
|
this._current = false;
|
|
7567
|
+
if (this._isCollapsed()) {
|
|
7568
|
+
var _this$_anchorShape4;
|
|
7569
|
+
(_this$_anchorShape4 = this._anchorShape) === null || _this$_anchorShape4 === void 0 || _this$_anchorShape4.hide();
|
|
7570
|
+
}
|
|
7325
7571
|
}
|
|
7326
7572
|
dispose() {
|
|
7327
|
-
var _this$_rangeShape, _this$
|
|
7573
|
+
var _this$_rangeShape, _this$_anchorShape5;
|
|
7328
7574
|
(_this$_rangeShape = this._rangeShape) === null || _this$_rangeShape === void 0 || _this$_rangeShape.dispose();
|
|
7329
7575
|
this._rangeShape = null;
|
|
7330
|
-
(_this$
|
|
7576
|
+
(_this$_anchorShape5 = this._anchorShape) === null || _this$_anchorShape5 === void 0 || _this$_anchorShape5.dispose();
|
|
7331
7577
|
this._anchorShape = null;
|
|
7332
7578
|
if (this._anchorBlinkTimer) {
|
|
7333
7579
|
clearInterval(this._anchorBlinkTimer);
|
|
@@ -7341,11 +7587,11 @@ var TextRange = class {
|
|
|
7341
7587
|
return activeStart <= compareEnd && activeEnd >= compareStart;
|
|
7342
7588
|
}
|
|
7343
7589
|
refresh() {
|
|
7344
|
-
var _this$
|
|
7590
|
+
var _this$_anchorShape6, _this$_rangeShape2;
|
|
7345
7591
|
const { _document, _docSkeleton } = this;
|
|
7346
7592
|
const anchor = this.anchorNodePosition;
|
|
7347
7593
|
const focus = this.focusNodePosition;
|
|
7348
|
-
(_this$
|
|
7594
|
+
(_this$_anchorShape6 = this._anchorShape) === null || _this$_anchorShape6 === void 0 || _this$_anchorShape6.hide();
|
|
7349
7595
|
(_this$_rangeShape2 = this._rangeShape) === null || _this$_rangeShape2 === void 0 || _this$_rangeShape2.hide();
|
|
7350
7596
|
if (this._isEmpty()) return;
|
|
7351
7597
|
const documentOffsetConfig = _document.getOffsetConfig();
|
|
@@ -7378,7 +7624,7 @@ var TextRange = class {
|
|
|
7378
7624
|
return true;
|
|
7379
7625
|
}
|
|
7380
7626
|
_createOrUpdateRange(pointsGroup, left, top) {
|
|
7381
|
-
var _this$
|
|
7627
|
+
var _this$style2;
|
|
7382
7628
|
if (this._rangeShape) {
|
|
7383
7629
|
this._rangeShape.translate(left, top);
|
|
7384
7630
|
this._rangeShape.updatePointGroup(pointsGroup);
|
|
@@ -7387,7 +7633,7 @@ var TextRange = class {
|
|
|
7387
7633
|
}
|
|
7388
7634
|
const polygon = new RegularPolygon(TEXT_RANGE_KEY_PREFIX + generateRandomId(ID_LENGTH$1), {
|
|
7389
7635
|
pointsGroup,
|
|
7390
|
-
fill: ((_this$
|
|
7636
|
+
fill: ((_this$style2 = this.style) === null || _this$style2 === void 0 ? void 0 : _this$style2.fill) || getColor(COLORS.black, .3),
|
|
7391
7637
|
left,
|
|
7392
7638
|
top,
|
|
7393
7639
|
evented: false,
|
|
@@ -7397,7 +7643,7 @@ var TextRange = class {
|
|
|
7397
7643
|
this._scene.addObject(polygon, 3);
|
|
7398
7644
|
}
|
|
7399
7645
|
_createOrUpdateAnchor(pointsGroup, docsLeft, docsTop, glyph) {
|
|
7400
|
-
var _glyph$ts, _this$
|
|
7646
|
+
var _glyph$ts, _this$style3;
|
|
7401
7647
|
const bounding = getAnchorBounding(pointsGroup);
|
|
7402
7648
|
const { left: boundingLeft } = bounding;
|
|
7403
7649
|
let { top: boundingTop, height } = bounding;
|
|
@@ -7410,6 +7656,7 @@ var TextRange = class {
|
|
|
7410
7656
|
let left = boundingLeft + docsLeft;
|
|
7411
7657
|
const top = boundingTop + docsTop;
|
|
7412
7658
|
const isItalic = (glyph === null || glyph === void 0 || (_glyph$ts = glyph.ts) === null || _glyph$ts === void 0 ? void 0 : _glyph$ts.it) === BooleanNumber.TRUE;
|
|
7659
|
+
this._anchorActiveStroke = this._getAnchorActiveStroke(glyph);
|
|
7413
7660
|
if (isItalic) left += height * Math.tan(ITALIC_DEGREE * Math.PI / 180) / 2;
|
|
7414
7661
|
if (this._anchorShape) {
|
|
7415
7662
|
this._anchorShape.transformByState({
|
|
@@ -7420,14 +7667,15 @@ var TextRange = class {
|
|
|
7420
7667
|
this._anchorShape.show();
|
|
7421
7668
|
if (isItalic) this._anchorShape.skew(-12, 0);
|
|
7422
7669
|
else this._anchorShape.skew(0, 0);
|
|
7670
|
+
this.activeStatic();
|
|
7423
7671
|
return;
|
|
7424
7672
|
}
|
|
7425
7673
|
const anchor = new Rect(TEXT_ANCHOR_KEY_PREFIX + generateRandomId(ID_LENGTH$1), {
|
|
7426
7674
|
left,
|
|
7427
7675
|
top,
|
|
7428
7676
|
height,
|
|
7429
|
-
strokeWidth: ((_this$
|
|
7430
|
-
stroke:
|
|
7677
|
+
strokeWidth: ((_this$style3 = this.style) === null || _this$style3 === void 0 ? void 0 : _this$style3.strokeWidth) || 1,
|
|
7678
|
+
stroke: this._anchorActiveStroke,
|
|
7431
7679
|
evented: false
|
|
7432
7680
|
});
|
|
7433
7681
|
if (isItalic) anchor.skew(-12, 0);
|
|
@@ -7435,6 +7683,33 @@ var TextRange = class {
|
|
|
7435
7683
|
this._scene.addObject(anchor, 3);
|
|
7436
7684
|
this.activeStatic();
|
|
7437
7685
|
}
|
|
7686
|
+
_getAnchorActiveStroke(glyph) {
|
|
7687
|
+
var _this$style4, _this$_scene$getEngin, _this$_scene;
|
|
7688
|
+
if (((_this$style4 = this.style) === null || _this$style4 === void 0 ? void 0 : _this$style4.strokeActive) && this.style.strokeActive !== NORMAL_TEXT_SELECTION_PLUGIN_STYLE.strokeActive) return this.style.strokeActive;
|
|
7689
|
+
const colorService = (_this$_scene$getEngin = (_this$_scene = this._scene).getEngine) === null || _this$_scene$getEngin === void 0 || (_this$_scene$getEngin = _this$_scene$getEngin.call(_this$_scene)) === null || _this$_scene$getEngin === void 0 ? void 0 : _this$_scene$getEngin.canvasColorService;
|
|
7690
|
+
if (!colorService) return DEFAULT_CARET_COLOR;
|
|
7691
|
+
try {
|
|
7692
|
+
const backgroundColorKit = new ColorKit(colorService.getRenderColor(this._getAnchorBackgroundColor(glyph)));
|
|
7693
|
+
if (!backgroundColorKit.isValid) return DEFAULT_CARET_COLOR;
|
|
7694
|
+
return ColorKit.getContrastRatio(colorService.getRenderColor("gray.0"), backgroundColorKit) > ColorKit.getContrastRatio(colorService.getRenderColor(DEFAULT_CARET_COLOR), backgroundColorKit) ? "gray.0" : DEFAULT_CARET_COLOR;
|
|
7695
|
+
} catch {
|
|
7696
|
+
return DEFAULT_CARET_COLOR;
|
|
7697
|
+
}
|
|
7698
|
+
}
|
|
7699
|
+
_getAnchorBackgroundColor(glyph) {
|
|
7700
|
+
var _glyph$parent, _line$parent, _glyph$ts2;
|
|
7701
|
+
const line = glyph === null || glyph === void 0 || (_glyph$parent = glyph.parent) === null || _glyph$parent === void 0 ? void 0 : _glyph$parent.parent;
|
|
7702
|
+
const page = line === null || line === void 0 || (_line$parent = line.parent) === null || _line$parent === void 0 || (_line$parent = _line$parent.parent) === null || _line$parent === void 0 ? void 0 : _line$parent.parent;
|
|
7703
|
+
let cellBackground;
|
|
7704
|
+
if ((page === null || page === void 0 ? void 0 : page.type) === DocumentSkeletonPageType.CELL && page.parent && "rowSource" in page.parent) {
|
|
7705
|
+
var _row$rowSource$tableC;
|
|
7706
|
+
const row = page.parent;
|
|
7707
|
+
const cellIndex = row.cells.indexOf(page);
|
|
7708
|
+
cellBackground = (_row$rowSource$tableC = row.rowSource.tableCells[cellIndex]) === null || _row$rowSource$tableC === void 0 ? void 0 : _row$rowSource$tableC.backgroundColor;
|
|
7709
|
+
}
|
|
7710
|
+
const background = (glyph === null || glyph === void 0 || (_glyph$ts2 = glyph.ts) === null || _glyph$ts2 === void 0 ? void 0 : _glyph$ts2.bg) ?? (line === null || line === void 0 ? void 0 : line.backgroundColor) ?? cellBackground;
|
|
7711
|
+
return (background === null || background === void 0 ? void 0 : background.rgb) ?? getColorStyle(background) ?? "gray.0";
|
|
7712
|
+
}
|
|
7438
7713
|
_setCursorList(cursorList) {
|
|
7439
7714
|
if (cursorList.length === 0) return;
|
|
7440
7715
|
this._cursorList = cursorList;
|
|
@@ -8006,6 +8281,20 @@ let DocSelectionRenderService = class DocSelectionRenderService extends RxDispos
|
|
|
8006
8281
|
const activeElement = ownerDocument.activeElement;
|
|
8007
8282
|
return !this._shouldPreserveExternalFocus() && (this.isFocusing || activeElement === ownerDocument.body || activeElement === null || activeElement instanceof HTMLElement && this._containsCurrentEmbedRuntimeElement(activeElement));
|
|
8008
8283
|
}
|
|
8284
|
+
cancelPointerSelection() {
|
|
8285
|
+
if (!this._onPointerEvent) return;
|
|
8286
|
+
this._scenePointerMoveSubs.forEach((subscription) => subscription.unsubscribe());
|
|
8287
|
+
this._scenePointerUpSubs.forEach((subscription) => subscription.unsubscribe());
|
|
8288
|
+
this._scenePointerMoveSubs = [];
|
|
8289
|
+
this._scenePointerUpSubs = [];
|
|
8290
|
+
this._onPointerEvent = false;
|
|
8291
|
+
this._anchorNodePosition = null;
|
|
8292
|
+
this._focusNodePosition = null;
|
|
8293
|
+
this._removeAllRanges();
|
|
8294
|
+
this._removeAllCacheRanges();
|
|
8295
|
+
this._disposeScrollTimers();
|
|
8296
|
+
this._context.scene.enableObjectsEvent();
|
|
8297
|
+
}
|
|
8009
8298
|
constructor(_context, _layoutService, _logService, _univerInstanceService, _docSkeletonManagerService, _embedInteractionBoundaryService, _embedRuntimeFocusCoordinator) {
|
|
8010
8299
|
super();
|
|
8011
8300
|
this._context = _context;
|
|
@@ -8142,6 +8431,7 @@ let DocSelectionRenderService = class DocSelectionRenderService extends RxDispos
|
|
|
8142
8431
|
}
|
|
8143
8432
|
else generalAddRange(startOffset, endOffset, rangeStyle);
|
|
8144
8433
|
}
|
|
8434
|
+
this._hideCollapsedCaretsForVisibleSelection();
|
|
8145
8435
|
this._textSelectionInner$.next({
|
|
8146
8436
|
textRanges: this._getAllTextRanges(),
|
|
8147
8437
|
rectRanges: this._getAllRectRanges(),
|
|
@@ -8519,6 +8809,13 @@ let DocSelectionRenderService = class DocSelectionRenderService extends RxDispos
|
|
|
8519
8809
|
}
|
|
8520
8810
|
this._rangeList = newRanges;
|
|
8521
8811
|
}
|
|
8812
|
+
_hideCollapsedCaretsForVisibleSelection() {
|
|
8813
|
+
var _expandedTextRanges;
|
|
8814
|
+
const expandedTextRanges = this._rangeList.filter((range) => !range.collapsed);
|
|
8815
|
+
if (expandedTextRanges.length === 0 && this._rectRangeList.length === 0) return;
|
|
8816
|
+
this._deactivateAllTextRanges();
|
|
8817
|
+
(_expandedTextRanges = expandedTextRanges[expandedTextRanges.length - 1]) === null || _expandedTextRanges === void 0 || _expandedTextRanges.activate();
|
|
8818
|
+
}
|
|
8522
8819
|
_deactivateAllTextRanges() {
|
|
8523
8820
|
this._rangeList.forEach((range) => {
|
|
8524
8821
|
range.deactivate();
|
|
@@ -8697,7 +8994,7 @@ let DocSelectionRenderService = class DocSelectionRenderService extends RxDispos
|
|
|
8697
8994
|
this.disposeWithMe(fromEvent(this._input, "input").subscribe((e) => {
|
|
8698
8995
|
if (this._shouldSuppressHostHiddenEditorEvent(e)) return;
|
|
8699
8996
|
if (e.inputType === "historyUndo" || e.inputType === "historyRedo") return;
|
|
8700
|
-
if (this._rectRangeList.length > 0) {
|
|
8997
|
+
if (this._rectRangeList.length > 0 && this._getActiveRange() == null) {
|
|
8701
8998
|
e.stopPropagation();
|
|
8702
8999
|
return e.preventDefault();
|
|
8703
9000
|
}
|
|
@@ -8709,7 +9006,7 @@ let DocSelectionRenderService = class DocSelectionRenderService extends RxDispos
|
|
|
8709
9006
|
}));
|
|
8710
9007
|
this.disposeWithMe(fromEvent(this._input, "compositionstart").subscribe((e) => {
|
|
8711
9008
|
if (this._shouldSuppressHostHiddenEditorEvent(e)) return;
|
|
8712
|
-
if (this._rectRangeList.length > 0) {
|
|
9009
|
+
if (this._rectRangeList.length > 0 && this._getActiveRange() == null) {
|
|
8713
9010
|
e.stopPropagation();
|
|
8714
9011
|
return e.preventDefault();
|
|
8715
9012
|
}
|
|
@@ -9641,15 +9938,19 @@ const DEFAULT_DOC_FIT_TO_WIDTH_OPTIONS = {
|
|
|
9641
9938
|
const defaultPluginConfig = {
|
|
9642
9939
|
toc: false,
|
|
9643
9940
|
footer: true,
|
|
9941
|
+
wordCount: true,
|
|
9644
9942
|
placeholder: true,
|
|
9645
9943
|
fitToWidth: DEFAULT_DOC_FIT_TO_WIDTH_OPTIONS
|
|
9646
9944
|
};
|
|
9647
9945
|
|
|
9648
9946
|
//#endregion
|
|
9649
9947
|
//#region src/services/doc-render-background.ts
|
|
9650
|
-
const DOC_TRADITIONAL_WORKSPACE_BACKGROUND_COLOR = "
|
|
9651
|
-
const DOC_MODERN_WORKSPACE_BACKGROUND_COLOR = "
|
|
9948
|
+
const DOC_TRADITIONAL_WORKSPACE_BACKGROUND_COLOR = "var(--univer-gray-100)";
|
|
9949
|
+
const DOC_MODERN_WORKSPACE_BACKGROUND_COLOR = "var(--univer-gray-0)";
|
|
9950
|
+
const DOC_UNSPECIFIED_WORKSPACE_BACKGROUND_COLOR = "var(--univer-gray-100)";
|
|
9652
9951
|
const DOC_EDITOR_INTERNAL_BACKGROUND_COLOR = "transparent";
|
|
9952
|
+
const DOC_TRADITIONAL_WORKSPACE_BACKGROUND_TOKEN = "gray.100";
|
|
9953
|
+
const DOC_MODERN_WORKSPACE_BACKGROUND_TOKEN = "gray.0";
|
|
9653
9954
|
function resolveDocRenderBackground(options) {
|
|
9654
9955
|
const { documentFlavor, canvasColorService, editorBackgroundColor, isEditor } = options;
|
|
9655
9956
|
const backgroundColor = editorBackgroundColor ?? getDefaultDocCanvasBackgroundColor(documentFlavor, isEditor);
|
|
@@ -9657,14 +9958,30 @@ function resolveDocRenderBackground(options) {
|
|
|
9657
9958
|
canvasElementBackgroundColor: backgroundColor,
|
|
9658
9959
|
docBackgroundFillColor: DOC_EDITOR_INTERNAL_BACKGROUND_COLOR
|
|
9659
9960
|
};
|
|
9961
|
+
if (editorBackgroundColor != null) return {
|
|
9962
|
+
canvasElementBackgroundColor: (canvasColorService === null || canvasColorService === void 0 ? void 0 : canvasColorService.getRenderColor(editorBackgroundColor)) ?? editorBackgroundColor,
|
|
9963
|
+
docBackgroundFillColor: void 0
|
|
9964
|
+
};
|
|
9965
|
+
if (documentFlavor !== DocumentFlavor.TRADITIONAL && documentFlavor !== DocumentFlavor.MODERN) return {
|
|
9966
|
+
canvasElementBackgroundColor: backgroundColor,
|
|
9967
|
+
docBackgroundFillColor: void 0
|
|
9968
|
+
};
|
|
9969
|
+
const renderBackgroundColor = getDefaultDocCanvasBackgroundToken(documentFlavor);
|
|
9660
9970
|
return {
|
|
9661
|
-
canvasElementBackgroundColor: (canvasColorService === null || canvasColorService === void 0 ? void 0 : canvasColorService.getRenderColor(
|
|
9971
|
+
canvasElementBackgroundColor: (canvasColorService === null || canvasColorService === void 0 ? void 0 : canvasColorService.getRenderColor(renderBackgroundColor)) ?? backgroundColor,
|
|
9662
9972
|
docBackgroundFillColor: void 0
|
|
9663
9973
|
};
|
|
9664
9974
|
}
|
|
9665
9975
|
function getDefaultDocCanvasBackgroundColor(documentFlavor, isEditor) {
|
|
9666
9976
|
if (isEditor) return DOC_EDITOR_INTERNAL_BACKGROUND_COLOR;
|
|
9667
|
-
|
|
9977
|
+
switch (documentFlavor) {
|
|
9978
|
+
case DocumentFlavor.MODERN: return DOC_MODERN_WORKSPACE_BACKGROUND_COLOR;
|
|
9979
|
+
case DocumentFlavor.TRADITIONAL: return DOC_TRADITIONAL_WORKSPACE_BACKGROUND_COLOR;
|
|
9980
|
+
default: return DOC_UNSPECIFIED_WORKSPACE_BACKGROUND_COLOR;
|
|
9981
|
+
}
|
|
9982
|
+
}
|
|
9983
|
+
function getDefaultDocCanvasBackgroundToken(documentFlavor) {
|
|
9984
|
+
return documentFlavor === DocumentFlavor.MODERN ? DOC_MODERN_WORKSPACE_BACKGROUND_TOKEN : DOC_TRADITIONAL_WORKSPACE_BACKGROUND_TOKEN;
|
|
9668
9985
|
}
|
|
9669
9986
|
|
|
9670
9987
|
//#endregion
|
|
@@ -10126,7 +10443,7 @@ DocBackScrollRenderController = __decorate([
|
|
|
10126
10443
|
|
|
10127
10444
|
//#endregion
|
|
10128
10445
|
//#region src/controllers/render-controllers/doc-paragraph-placeholder.render-controller.ts
|
|
10129
|
-
const PLACEHOLDER_COLOR = "
|
|
10446
|
+
const PLACEHOLDER_COLOR = "gray.400";
|
|
10130
10447
|
const DEFAULT_PLACEHOLDER_FONT_SIZE = 12;
|
|
10131
10448
|
const MIN_BODY_TEXT_PLACEHOLDER_FONT_SIZE = 16;
|
|
10132
10449
|
const DEFAULT_PLACEHOLDER_FONT_FAMILY = "Arial";
|
|
@@ -10146,6 +10463,9 @@ let DocParagraphPlaceholderRenderController = class DocParagraphPlaceholderRende
|
|
|
10146
10463
|
const documents = this._context.mainComponent;
|
|
10147
10464
|
if (!documents) return;
|
|
10148
10465
|
this.disposeWithMe(documents.pageRender$.subscribe((pageRenderConfig) => this._drawPagePlaceholders(pageRenderConfig)));
|
|
10466
|
+
this.disposeWithMe(this._docSelectionManagerService.textSelection$.subscribe(({ unitId }) => {
|
|
10467
|
+
if (unitId === this._context.unitId) documents.makeDirty(true);
|
|
10468
|
+
}));
|
|
10149
10469
|
}
|
|
10150
10470
|
_drawPagePlaceholders({ page, pageLeft, pageTop, ctx }) {
|
|
10151
10471
|
var _this$_context$unit$g, _this$_context$mainCo;
|
|
@@ -10153,6 +10473,7 @@ let DocParagraphPlaceholderRenderController = class DocParagraphPlaceholderRende
|
|
|
10153
10473
|
if (!body) return;
|
|
10154
10474
|
const activeRange = this._docSelectionManagerService.getActiveTextRange();
|
|
10155
10475
|
if (!activeRange || (activeRange.segmentId ?? "") !== (page.segmentId ?? "")) return;
|
|
10476
|
+
if (activeRange.startOffset == null || activeRange.endOffset == null || activeRange.startOffset !== activeRange.endOffset) return;
|
|
10156
10477
|
const placeholders = getParagraphPlaceholderLayouts(page, body, this._getLocale(), pageLeft, pageTop, activeRange.startOffset, {
|
|
10157
10478
|
docsLeft: (_this$_context$mainCo = this._context.mainComponent) === null || _this$_context$mainCo === void 0 ? void 0 : _this$_context$mainCo.getOffsetConfig().docsLeft,
|
|
10158
10479
|
unitId: this._context.unitId
|
|
@@ -10219,7 +10540,7 @@ function visitColumn(column, body, paragraphs, locale, layouts, originLeft, orig
|
|
|
10219
10540
|
if (!line.paragraphStart) continue;
|
|
10220
10541
|
const paragraphStart = line.st;
|
|
10221
10542
|
const paragraphEnd = line.paragraphIndex;
|
|
10222
|
-
if (
|
|
10543
|
+
if (!isOffsetInParagraph(activeOffset, paragraphStart, paragraphEnd)) continue;
|
|
10223
10544
|
const paragraph = paragraphs.get(paragraphEnd);
|
|
10224
10545
|
if (!paragraph || !isEmptyParagraph(body.dataStream, line.st, line.paragraphIndex)) continue;
|
|
10225
10546
|
const text = getPlaceholderText(paragraph, locale);
|
|
@@ -10455,7 +10776,7 @@ let DocPageLayoutService = class DocPageLayoutService extends Disposable {
|
|
|
10455
10776
|
} else {
|
|
10456
10777
|
docsLeft = horizontalMargin;
|
|
10457
10778
|
sceneWidth = docsWidth + horizontalMargin * 2;
|
|
10458
|
-
scrollToX =
|
|
10779
|
+
scrollToX = 0;
|
|
10459
10780
|
}
|
|
10460
10781
|
if (engineHeight > docsHeight) sceneHeight = (engineHeight - pageMarginTop * 2) / viewScale;
|
|
10461
10782
|
else sceneHeight = docsHeight + pageMarginTop * 2;
|
|
@@ -10492,6 +10813,7 @@ let DocRenderController = class DocRenderController extends RxDisposable {
|
|
|
10492
10813
|
this._textSelectionManagerService = _textSelectionManagerService;
|
|
10493
10814
|
this._docViewScaleService = _docViewScaleService;
|
|
10494
10815
|
this._themeService = _themeService;
|
|
10816
|
+
_defineProperty(this, "_changesetRenderScheduled", false);
|
|
10495
10817
|
this._addNewRender();
|
|
10496
10818
|
this._initRenderRefresh();
|
|
10497
10819
|
this._initCommandListener();
|
|
@@ -10594,15 +10916,28 @@ let DocRenderController = class DocRenderController extends RxDisposable {
|
|
|
10594
10916
|
}
|
|
10595
10917
|
_initCommandListener() {
|
|
10596
10918
|
const updateCommandList = [RichTextEditingMutation.id];
|
|
10597
|
-
this.disposeWithMe(this._commandService.onCommandExecuted((command) => {
|
|
10598
|
-
if (updateCommandList.includes(command.id))
|
|
10599
|
-
|
|
10600
|
-
|
|
10919
|
+
this.disposeWithMe(this._commandService.onCommandExecuted((command, options) => {
|
|
10920
|
+
if (!updateCommandList.includes(command.id)) return;
|
|
10921
|
+
const { unitId } = command.params;
|
|
10922
|
+
if (unitId !== this._context.unitId) return;
|
|
10923
|
+
if (options === null || options === void 0 ? void 0 : options.fromChangeset) {
|
|
10924
|
+
this._scheduleChangesetRender();
|
|
10925
|
+
return;
|
|
10601
10926
|
}
|
|
10927
|
+
this.reRender(unitId);
|
|
10602
10928
|
}));
|
|
10603
10929
|
}
|
|
10930
|
+
_scheduleChangesetRender() {
|
|
10931
|
+
if (this._changesetRenderScheduled) return;
|
|
10932
|
+
this._changesetRenderScheduled = true;
|
|
10933
|
+
queueMicrotask(() => {
|
|
10934
|
+
this._changesetRenderScheduled = false;
|
|
10935
|
+
if (this._disposed) return;
|
|
10936
|
+
this.reRender(this._context.unitId);
|
|
10937
|
+
});
|
|
10938
|
+
}
|
|
10604
10939
|
_initThemeListener() {
|
|
10605
|
-
this.disposeWithMe(this._themeService.darkMode
|
|
10940
|
+
this.disposeWithMe(combineLatest([this._themeService.currentTheme$, this._themeService.darkMode$]).pipe(takeUntil(this.dispose$)).subscribe(() => {
|
|
10606
10941
|
var _this$_context$mainCo3, _this$_context$compon;
|
|
10607
10942
|
this._syncCanvasBackground();
|
|
10608
10943
|
(_this$_context$mainCo3 = this._context.mainComponent) === null || _this$_context$mainCo3 === void 0 || _this$_context$mainCo3.makeDirty(true);
|
|
@@ -11070,7 +11405,7 @@ const getModernWidthMode = (size) => {
|
|
|
11070
11405
|
function SettingsLabel(props) {
|
|
11071
11406
|
const { children, muted } = props;
|
|
11072
11407
|
return /* @__PURE__ */ jsx("label", {
|
|
11073
|
-
className: clsx("univer-text-sm univer-font-medium", muted ? "univer-text-gray-500" : "univer-text-gray-900 dark:!univer-text-
|
|
11408
|
+
className: clsx("univer-text-sm univer-font-medium", muted ? "univer-text-gray-500" : "univer-text-gray-900 dark:!univer-text-gray-0"),
|
|
11074
11409
|
children
|
|
11075
11410
|
});
|
|
11076
11411
|
}
|
|
@@ -11135,7 +11470,7 @@ function PageSettings(props) {
|
|
|
11135
11470
|
className: "univer-grid univer-grid-cols-3 univer-gap-2",
|
|
11136
11471
|
children: MODERN_WIDTH_OPTIONS.map((option) => /* @__PURE__ */ jsxs("button", {
|
|
11137
11472
|
type: "button",
|
|
11138
|
-
className: clsx(resetButtonClassName, borderClassName, "univer-h-16 univer-flex-col univer-gap-1 univer-rounded-lg univer-bg-
|
|
11473
|
+
className: clsx(resetButtonClassName, borderClassName, "univer-h-16 univer-flex-col univer-gap-1 univer-rounded-lg univer-bg-gray-0 univer-text-sm univer-font-medium univer-text-gray-700 univer-transition-colors hover:univer-border-primary-500 hover:univer-text-primary-600 dark:!univer-bg-gray-900 dark:!univer-text-gray-100", { "!univer-border-primary-500 !univer-bg-primary-50 !univer-text-primary-600 dark:!univer-bg-primary-900": settings.modernWidth === option }),
|
|
11139
11474
|
onClick: () => handleModernWidthChange(option),
|
|
11140
11475
|
children: [/* @__PURE__ */ jsx("span", { children: localeService.t(`docs-ui.page-settings.modern-width-${option}`) }), /* @__PURE__ */ jsxs("span", {
|
|
11141
11476
|
className: "univer-text-xs univer-font-normal univer-text-gray-400",
|
|
@@ -11709,88 +12044,93 @@ const COMPONENT_PREFIX = "UI_PLUGIN_DOCS";
|
|
|
11709
12044
|
*/
|
|
11710
12045
|
const ListTypePicker = (props) => {
|
|
11711
12046
|
const { value, onChange, options } = props;
|
|
12047
|
+
const previewRows = [
|
|
12048
|
+
{
|
|
12049
|
+
id: "level-0-top",
|
|
12050
|
+
levelIndex: 0
|
|
12051
|
+
},
|
|
12052
|
+
{
|
|
12053
|
+
id: "level-1",
|
|
12054
|
+
levelIndex: 1
|
|
12055
|
+
},
|
|
12056
|
+
{
|
|
12057
|
+
id: "level-2",
|
|
12058
|
+
levelIndex: 2
|
|
12059
|
+
},
|
|
12060
|
+
{
|
|
12061
|
+
id: "level-0-bottom",
|
|
12062
|
+
levelIndex: 0
|
|
12063
|
+
}
|
|
12064
|
+
];
|
|
12065
|
+
const previewIndentClassNames = [
|
|
12066
|
+
"",
|
|
12067
|
+
"univer-pl-2",
|
|
12068
|
+
"univer-pl-4"
|
|
12069
|
+
];
|
|
12070
|
+
const getOrderedGlyph = (glyphType) => {
|
|
12071
|
+
switch (glyphType) {
|
|
12072
|
+
case ListGlyphType.DECIMAL_ZERO: return "01";
|
|
12073
|
+
case ListGlyphType.UPPER_LETTER: return "A";
|
|
12074
|
+
case ListGlyphType.LOWER_LETTER: return "a";
|
|
12075
|
+
case ListGlyphType.UPPER_ROMAN: return "I";
|
|
12076
|
+
case ListGlyphType.LOWER_ROMAN: return "i";
|
|
12077
|
+
default: return "1";
|
|
12078
|
+
}
|
|
12079
|
+
};
|
|
12080
|
+
const getMarker = (listType, levelIndex) => {
|
|
12081
|
+
var _level$glyphFormat;
|
|
12082
|
+
const levels = PRESET_LIST_TYPE[listType].nestingLevel;
|
|
12083
|
+
const level = levels[levelIndex];
|
|
12084
|
+
if (level.glyphSymbol) return level.glyphSymbol;
|
|
12085
|
+
return ((_level$glyphFormat = level.glyphFormat) === null || _level$glyphFormat === void 0 ? void 0 : _level$glyphFormat.replace(/%(\d+)/g, (_match, index) => {
|
|
12086
|
+
var _levels;
|
|
12087
|
+
return getOrderedGlyph((_levels = levels[Number(index) - 1]) === null || _levels === void 0 ? void 0 : _levels.glyphType);
|
|
12088
|
+
})) ?? "1.";
|
|
12089
|
+
};
|
|
11712
12090
|
return /* @__PURE__ */ jsx("div", {
|
|
11713
12091
|
className: "univer-grid univer-grid-cols-3 univer-gap-2 univer-p-1.5",
|
|
11714
12092
|
"data-u-editor-interaction-boundary": "true",
|
|
11715
|
-
children: options.map((item) => {
|
|
11716
|
-
|
|
11717
|
-
|
|
11718
|
-
|
|
11719
|
-
|
|
11720
|
-
|
|
11721
|
-
children: /* @__PURE__ */
|
|
11722
|
-
className: "univer-
|
|
11723
|
-
|
|
11724
|
-
|
|
11725
|
-
|
|
11726
|
-
|
|
11727
|
-
|
|
12093
|
+
children: options.map((item) => /* @__PURE__ */ jsx("a", {
|
|
12094
|
+
className: clsx("univer-block univer-h-20 univer-w-[72px] univer-cursor-pointer univer-overflow-hidden univer-rounded univer-transition-all hover:univer-border-primary-500", borderClassName, { "univer-border-primary-500": value === item }),
|
|
12095
|
+
onClick: () => onChange(item),
|
|
12096
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
12097
|
+
className: "univer-box-border univer-grid univer-size-full univer-grid-rows-4 univer-gap-1 univer-bg-gray-50 univer-p-2 univer-text-gray-900",
|
|
12098
|
+
"data-u-comp": "list-type-preview",
|
|
12099
|
+
children: previewRows.map(({ id, levelIndex }) => /* @__PURE__ */ jsxs("div", {
|
|
12100
|
+
className: clsx("univer-flex univer-items-center univer-gap-1", previewIndentClassNames[levelIndex]),
|
|
12101
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
12102
|
+
className: "univer-w-3 univer-shrink-0 univer-overflow-hidden univer-text-center univer-text-[10px] univer-leading-none",
|
|
12103
|
+
children: getMarker(item, levelIndex)
|
|
12104
|
+
}), /* @__PURE__ */ jsx("span", { className: "univer-h-1 univer-flex-1 univer-rounded univer-bg-gray-200" })]
|
|
12105
|
+
}, id))
|
|
12106
|
+
})
|
|
12107
|
+
}, item))
|
|
11728
12108
|
});
|
|
11729
12109
|
};
|
|
11730
12110
|
const orderListOptions = [
|
|
11731
|
-
|
|
11732
|
-
|
|
11733
|
-
|
|
11734
|
-
|
|
11735
|
-
|
|
11736
|
-
|
|
11737
|
-
img: "data:image/jpeg;base64,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"
|
|
11738
|
-
},
|
|
11739
|
-
{
|
|
11740
|
-
value: PresetListType.ORDER_LIST_2,
|
|
11741
|
-
img: "data:image/jpeg;base64,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"
|
|
11742
|
-
},
|
|
11743
|
-
{
|
|
11744
|
-
value: PresetListType.ORDER_LIST_3,
|
|
11745
|
-
img: "data:image/jpeg;base64,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"
|
|
11746
|
-
},
|
|
11747
|
-
{
|
|
11748
|
-
value: PresetListType.ORDER_LIST_4,
|
|
11749
|
-
img: "data:image/jpeg;base64,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"
|
|
11750
|
-
},
|
|
11751
|
-
{
|
|
11752
|
-
value: PresetListType.ORDER_LIST_5,
|
|
11753
|
-
img: "data:image/jpeg;base64,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"
|
|
11754
|
-
}
|
|
12111
|
+
PresetListType.ORDER_LIST,
|
|
12112
|
+
PresetListType.ORDER_LIST_1,
|
|
12113
|
+
PresetListType.ORDER_LIST_2,
|
|
12114
|
+
PresetListType.ORDER_LIST_3,
|
|
12115
|
+
PresetListType.ORDER_LIST_4,
|
|
12116
|
+
PresetListType.ORDER_LIST_5
|
|
11755
12117
|
];
|
|
11756
|
-
const OrderListTypePicker = (props) => {
|
|
11757
|
-
|
|
11758
|
-
|
|
11759
|
-
|
|
11760
|
-
});
|
|
11761
|
-
};
|
|
12118
|
+
const OrderListTypePicker = (props) => /* @__PURE__ */ jsx(ListTypePicker, {
|
|
12119
|
+
...props,
|
|
12120
|
+
options: orderListOptions
|
|
12121
|
+
});
|
|
11762
12122
|
const bulletOptions = [
|
|
11763
|
-
|
|
11764
|
-
|
|
11765
|
-
|
|
11766
|
-
|
|
11767
|
-
|
|
11768
|
-
|
|
11769
|
-
img: "data:image/jpeg;base64,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"
|
|
11770
|
-
},
|
|
11771
|
-
{
|
|
11772
|
-
value: PresetListType.BULLET_LIST_2,
|
|
11773
|
-
img: "data:image/jpeg;base64,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"
|
|
11774
|
-
},
|
|
11775
|
-
{
|
|
11776
|
-
value: PresetListType.BULLET_LIST_3,
|
|
11777
|
-
img: "data:image/jpeg;base64,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"
|
|
11778
|
-
},
|
|
11779
|
-
{
|
|
11780
|
-
value: PresetListType.BULLET_LIST_4,
|
|
11781
|
-
img: "data:image/jpeg;base64,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"
|
|
11782
|
-
},
|
|
11783
|
-
{
|
|
11784
|
-
value: PresetListType.BULLET_LIST_5,
|
|
11785
|
-
img: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEA2ADYAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/CABEIAPQA2AMBEQACEQEDEQH/xAA2AAEAAQQDAQEBAAAAAAAAAAAACgYHCAkDBAULAQIBAQADAQEAAAAAAAAAAAAAAAACAwQFAf/aAAwDAQACEAMQAAAAn8AAAAAAAAAAAAAAAAAAAAAAAAAAAA6oO0AAAAAAAAAAAAfyRHejl3ZZbtmVFgAAAAAAAAAAAGkbVTFP6Ge9kfZ+3H284MSQAAAAAACrjIgAAgK9fHREvJxPJ15MQkBRYAAAAAAB3SpwAcBr5uhsNpmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABob10/hsBpnnJVMAAAAAAAAAADVroryprllDXLQfrp34ZLhTBYoAAAAAqcvqAAADFayOAVsNtGezRhrpkG47x5hQgAAAAB6hXQAAABhhbDCK2G5vLd6IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhFbCOttomDc3UAAAAAAAAAAAMKbYfLJ7/PwithN75eubdytYp8s6AAVCXhAAAAAABYOcfl197n6tNFf0NuNulS8/QPFLYgAHtFzgAAAAAACwc46RdVUjbFeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0yOztokLY7/c8AAAAAAAAAAAAaK9dOuu6Gxume83JcBZcAAAAAAA9oucAARR+hmgzdbJOJ5WuWDztPODH0AAAAAAAqEvCADgIk3RzSeMGi9EfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/xAApEAAABgIABQQCAwAAAAAAAAAABQYHCBcECQIDChAWASBAYBUwFBhQ/9oACAEBAAEIAP8AYzs7BK8HMMzPBzsE0wcMzLPk8XDw8fDxcHG2jXbA9fmxiQUU4ZxW2jMo/wAtuWwTsfJ3ofwWZje3OwNMSr6jtIzXQHObmSeorfPsC5zzksaxi83mZGNj8/m9vJFEPJFEPJFEPJFEPJFEPJFEPJFEPJFEPJFEPJFEPJFEPJFEPJFEPJFEPJFEEKdnOYqivHy/b1TE3zt+JGtlrsZvW/0t79Ph6kDoTri1DuNULG6xGtjP3rxHivEeK8R4rxHivEeK8R4rxHivEeK8R4rxHivEeK8R4rxHivEeK8R4LkamyrM5OfgezK4cnjxsjhw4h6xouRAU6udpOfb1fstlvL11V6y2ok053ULsPyslwcyB892lns2yiVaG+PuufFXx01ZzIdNBQrjuiYoRSYWPyADskuBG7f8AxCWaA7LIxzCpNmWfgWGsBYawFhrAWGsBYawFhrAWGsBYawFhrAWGsBYawCNWSkNVIW4Gf+icMYyeZcR5AxhOdVewgocRFEsJpUOc6rZsqijlx3ehaeG2zPY6f7MC/sclOOeFuSV5dUJ0VQnRVCdFUJ0VQnRVCdFUJ0VQnRVCdFUJ0VQnQTN8TEZljGmJ+mXOvOG06SkvLpQIfp99ZSVUhOplSTk5QniotIiD7fPyfjCa6WEOn0fTU31MH9i37UrGTn+RPqeTG67I9qCQD4z8n4/exZ+zp9H0HT/b7snNyUFAubXZVG2QRkOeaYlrqIWuoha6iFrqIWuoglXBOTw+wCvL/dJuMjLTAZZZsC/21zVG9Or56eJNKUsLDI7Mi8mJtDWhotiKWpuXkvOyhJ/zxPmFIqEVCKhFQioQnm4/AnGGbfAk3GRlpgMss2Bf7Vd08TLa+XpWz/OT9fMcbIzC/OxMRiN5vPat5Hhils0TKmTa0TxIrkd8nZKSEEQpRMdshM1Q70F4jHB66uomAm/KG0zVHymcXPe3hbwt4W8LeFvC3hbwt4W8LeFvC3hbwt4J5x/zxxhlPu6qaevIZaMCWhOiYsw6krNNxcRrYz63+lvYVj/QgdCdeLi42FjY+Hh9qoUQqhRCqFEKoUQqhRCqFEKoUQqhRCqFEKoUQqhRCqFEKoUQqhRCqFEEq3xyRn2AaZfsysjl4mNkZfN9dEbv7MJkOXOvZgwsdWNi63ZU08fPs/8A/8QAOhAAAQMDAQYEAwUHBQEAAAAABAIDBQEGBwAIERITFKWU1NXlFZXTCRAgM0AWISIjJDBgFzRQVHJz/9oACAEBAAk/AP8AmDBY6NjhSDpCQOIZEBBBEZWQWYYWQttgUUVhtx8gh9xDLLKFuOLShKlUMFkY2RFHOj5AEhksE4EtlBAhgZY63GChSmHG3xyGHFsvMrQ42tSFJVX9SlK0LTVK0KpRSVJVTcpKk130UlVK1pWlaVpWld1f3ay7aU/iWdtkraq2WtjHaIMlB8L5KxDcdxSf+r+NMM5DGqTIYUyniG+ZBY1sW8A5W0LptyXHvXIIbTAhBRtr3tse7YQIYap3Zd2iwk2ldcma9SjTxOILtKQHaubrXIKQS5AzFlkfGpaEZbuAy04UEhFE/qbhgrRzxsD5fs/JmKDpt58ZjIMNf05EY3yhgM14Ft6SXC5ctOa5EizHsKIS7b4RDxUXGMycmL9mbgfI0Q2h9VvzRmUrtAvax5F3gUmcsG+I60xrns6YbdaZcUVByYiDm2uilWJCNeJCewrlzbyxbNzTSLdt5+dbvPabxXZVCG2HiyMylRFq25fkTACOrLPPzGNbjJpLQojmRrJilVq2K+E68w064GUoZZIjjjaVrFIUGQWGp8dVatOqELKGq4hVWCHmqpcV90/NfNDvr6n5r5od9fU/NfNDvr6n5r5od9fU/NfNDvr6n5r5od9fU/NfNDvr6n5r5od9fU/NfNDvr6n5r5od9fU/NfNDvr6n5r5od9fU/NfNDvr6n5r5od9fU/NfNDvr6l5QodzruYwQeW+yvgjjFo42nXVIVwrSlaeJNeFSUqpurSlfxKlboiMMnRl25IgrWHLmTbuz3esVyLQtIWMjGy35Y6w7HmadKxHocJVcGQ52FLE+IQLVES8rs5YvfcHkGcQw/RE53uoGi6L6eaUQ2dBYqFMa3VrSWYn7vZpzhDrUgiKtGIxJa2LrWaQNWTdhxFEXJdRwzXKTMXpdsisu5LumFJqqlJCekznmG1dMJ0wiGh2/viO4SnndRHcJTzuojuEp53UR3CU87qI7hKed1EdwlPO6iO4SnndRHcJTzuojuEp53UR3CU87qI7hKed1EdwlPO6iO4SnndRHcJTzuojuEp53UbyC2OZynesPd4Oa0tlz+W8U40riacWn+JFd2/fTcqlK0/A6wOYph1Ij5Q7hYzJNW1UYdIEaKCdKYbdqlbo7ZgjjzdFNoKHUqjqLZfyXtK5Mn5+78pbTOU0gXJlq77ru44iVus2OkKBjxliQ8xJmFvLt2yY+FBcYWyzKLlnx0mK/y/BmNskWpi24jbGyhtv7Rs3MwmzPA3uCkZyQtzHETaa/2wysVFNuOsGy9vNmhjFuR8gmFkLUkYm4Jd7YE217ajWnJC4MLWiBkTCeTpEIbiLIjsY3VJit2nSWdYaUII/eK5XiW60hmFkCV0qmIunHmRsZ3MRYGdsEZHA+DZPwrkMFwpgq2rtiq8NViluAHOQM4whsaVYENGIHjJ6JnoKI/TmGRt2C44ibGiJWOVVuRhlZgv20cPmTccQlaHAz4WPvsuUCPYWkmPKEaNGrQgdvUYHGQON8a2zEkrDaU18auYmPak7yuozjdeWuTu27DZm5JNdXVo62TeSzRsdLTSNUajG/tFtmzaDxVnCBHccbBmrh2ZrSCyjZuRiwW00Yduj4PFxNkjyb1VLagY88ZijLh56jvue5BbHR8p3ltO8HNPFZc/lvIcaVxNOLT/Eiu7fvpuVSlaS/b4vyWpft8X5LUv2+L8lqX7fF+S1L9vi/Jal+3xfktS/b4vyWpft8X5LUv2+L8lqX7fF+S1L9vi/JakueI/1nNa6MBrj5QBTzf8xkVt1PC62hX8K6b926u9Na0r/YKFjk5hxtOW1CzBzbzwNv3mylqZsG5jBx/wCoJFti+Iu3rgIFZ3OlMxqx21JU5RVJFjD/ANoRs0RUdibK+Jb8IGgpnJKbPDDiLfyvjQgt1oS/YO+rfTDz5b1vVcdRIHkyIcfW1JG3JmVv+z8Y2DbzHUTd433cUVa9uRrdaV5aSZaYKEDS+QqnKEFo6okx+qRxWnn1obVb8/B7HuzJi+6Nm/Yplrji5GBNzVeN2ShLOZs7xUVJ1qQxarYSZGxIl9QwKpYJ6GQWyFcdtXTDhfct9scrk8xY6m0PU5D7RCOBTrbyKb1sporibVvTVVKbq1oqhs14gH07Rs14gH07Rs14gH07Rs14gH07Rs14gH07Rs14gH07Rs14gH07Rs14gH07Rs14gH07Rs14gH07Rs14gH07RMo4QLzuWgh4RbNeew6OvjS0Eyuu5Dyqp4XE7lUTWu+lKpr/AGcE2lkiQhGFj25eVFSlrZFtplanHaDwWQrQPgrwBjklLocuD+MOQBhrbL8hFGVbTTWLL+zcRbi3F27DZ4zHkTJdpQ9HW22qstWhJTbFuSItG20J6OcjZURXChTjK1ssKai46Dg4YEWMiIaHBGjIqKjQWUDhR8bHBNMCAgiDttsCiCstMDsoQ002hCUpp/l81/2IrH2Poogb9s8p3n0yngrUtQJ5X/gicnCEfCraiuZJSTn+2GLEsjFn+qd7lk7PmQoJHwizLV+LkoZhcM34aa7/APEe18iyC2PiUq+9G3IkTq4wpn9RJPqDHf8AgNi2REKaVdWTL8LCMMh7Mtpl3e02+U0EUZKS5dEx0BDCHSpylJHbHImv+xFY9x7FEE/sZiyzOpU8FatqhPK/8ETk4Qj4rcsrzJKSc/2oomrsfLLLfirM2cc8XAU4QSSSQ4zG29iLJsm+pbrz7zqxoqwbzMcU444oW2LheUpUXJfehlwgXpeWghLi2a88wcdfGlpxlddyHlVTwuJ3Komtd9KVTUKF8Od6joKF8Od6joKF8Od6joKF8Od6joKF8Od6joaMbHK6rmLHZLQ9TkBkEI4FOmvIpvWymiuJtW9NVUpurWiqf3rMBvfHF7g1HOBIpRmSh5Jmi1RVz2xKpQoqAumAKVQ2FmgqpIEITVtyj4b5QpCTr3wTe5x5GFM1jgVZjbnjWa1fXbFzoYooWAyLACqQmahVLSPJDpTPQKn4t9aAo86XmJc4SMioqMEIPkpOSPIbFBj48EVt0o040p1oYQQZp0gkh1tlltbi0prbYMvtSy4LUnjjHEm0OfG7PMaePvbkJBuvNFNzCaK7VBZaKuj2GO65Fxbi5xchIMfcR0nV9P8A1HJ5/L5BTBP5XNZ4uLk8H5ieHi4v37uGtw9p9z1cPafc9XD2n3PVw9p9z1cPafc9TPV9J1H9P8O5HM54r435vXPcPDzuP8tXFw8P7t/FT+/ZgN744vcGo5wJFKMyUPJM0WqKue2JVKFFQF0wBSqGws0FVJAhCatuUfDfKFIu8HaDyPE3TLD7Ox0nA0AjcX2SutUx1zyEURzRTcwmiuuBFzYlKxNuDtuOWylBkk8UL/j8gTElFBkjDSobQT5caQ+wtpmQFZkRTo94kNxSSWGjwiwnHW0oKFIYqtpeNTMKX3s+5HGxddG1ZY9uzpuzXcr9yKOkMS3Le0cms1cWElZetFkOftYmVKuCzZfhl5F+ZswQVyEjbhg7stO5ooGdtu57ZlgJ63rghJQZsyNmISaiyCo2WipER1ooGQAJIELGdbfHecaWlVf1MJGSez/fEYHsV/aJ29KxI8za0hgrJMyhnE2YLthChiow4PFGRzR4S6DTQJWUlLOugO1wmaBc5GvtUdmXBqzXSZu6NiPM9/S1+7HOTpFx+hhibZBelHLo2f7klXquurnceltR5jqQYNwaAt1Lix52C2cNpRE0zbDWOLrv22btx/f8868kRlvC+brfcbsjILUic4OFDRhSrbumbNJbHt+35plNTVffb3dvbNW93b2zVvd29s1b3dvbNW93b2zVvd29s1b3dvbNW93b2zVvd29s1b3dvbNW93b2zVvd29s1b3dvbNW93b2zVvd29s1DdJ1fUf1HxHn8vkCvk/ldCzxcXJ4PzE8PFxfv3cNfwyjScjbULrNwZCQw4iplv4Ks2bYJoh1NKpfEdyLfcYHDxxTalslwVo37Fkt0oS0quJLpyjdDrg1ZN2HESPbdqhEu8pExel2yCxLbtGHSqi6UkJ6TBZfcRUYTqS1tDuS8VtG5QYQPIM4hh+tGwRap1UUX081UloGdyqUG7urWksxAWg9Wrwh1qTo9GjFjsCBiMNCiCCtNjjCjDtpaYHHYaShplhlpCW2mm0pbbbSlCE0TSlKfcbC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0TGODi9VzEDvFrerzwyB0cCXQmUV3LeTVXE4ncmiq031pRNfwJfW0Kw6Q4kUUk0lTbLanFpHDDaIMLfqlNaNCiMPEkOVS0w046tKK3NMYtsC87iYTirZVsuZCLyHD4gtxtuPx3amRb0AckbesR+kCOwbd8DZHxmYkrkmLjklztozJT7dMW2fiXH0PvWLblnRLUeyQWtKUvykwaqrspcM4XRKanT08dJTR600Wae+unF/lH//xAA6EQACAQEGAwQHBQkBAAAAAAABAgMRAAQSITFRQEFxIjJhgRNSYJGhscEQQnKC8AUUIyQzQ1Bi0eL/2gAIAQIBAT8A/wAxrbTI8WzQzQpJKpDA+jklQdpWAGFnH3lZRmTmCKLaS7ugxqRJHykTMfmGqneuXKp4q6dt2hIJSZSrU+6R2lfaqkfG0dxaI4kvDLuMAofBhioR1tebpDgL4liYDM0pGx/BmVrstehPE3CIIjTNkWyUnKiDU56VPwA3tPf0SqwgO3rHuDpzb4DxNpJHlbFIxY+Og8ANAOnEyTySgKThjUALGuSgDTqRufKntgII41DXl2UsKrEgBkI3YnJa7H31yH8k/Z/jRHk5wsv5gM6dKdRaWFomANGVhVHXNXXcH5jl0oTw91QPeIlOmInrhBannS0rmSR3OrMT0HIeQoPsU47nID/ZdGU7CQ4SOlc6b04iKT0UiSeqwJG40I8xUWvEJBMsfahc4lYZha6q2xByz+dbKrOQqgsToAKn3C0tIIBBUGR2DygUOAAdlK78ztnyIrxEc0sX9NytdRqp6qajzpWxvk5BAYLXXAqqffSvuNtcz7YQwvM4RB1PJRufoOdrxccCB4qthHbU5k01YfVdtOJhheZwidSToo5k/wDOZytDCkCBEH4m5sdz9By+y+XTWaIbl0HxZfmR5jiI5GjYOhow/VDuDzFrveFvC1GTjvLt4jdTyPLQ20zOQGpte736WscZpGO83r/+fnqeJjkaNg6GjD9UO4PMWvF9eZQijAtBjoe8dvw+HPn7QfHws90xKskDYg64hGT2xTJgDo2E5HQjLI62IIJBBBGRByIOxHFQEyRtACcan0sJBoca95Qcu8uYzyIrYCWQBbzd5H5CVVpIvXKjgbHrmbTXOWIYgC6UriAIZR/uhzXx1A5kcT+z4cUhlPdjyHi5H0GfUi0kscS4pGCjlXU+AGpPS09/d6rF2F9Y989OS+VT4jif3tYIligAYgdqQjslj3io1OehNBSmRFnd5GxOxZtyfgNh4DL2o//EADQRAAIAAgYGCAcBAQAAAAAAAAECAxEAITFBUWESIkBxgZEEEGChscHR8BMjMkJScuFDgv/aAAgBAwEBPwDsoA6OyoRKWkqNYReAZ1EGzG00WICdEzRvxao8DYRhLltUapQ4qZCCM51FeNGj6Yk0NTxMxuNopCjPMLIuObAb6p8eY2npDzYILqzmxsHAeOVIfR2at9UYfcfTxyoqqgkokPHeb9pSGqTNrGssbSTbu4dsDEZiRCAIFRdvpByx93W/PWvUcYVg8DKXOdEcOJioiplNoOB998xtEUlYbEWylzIHnRFCqqi4d954mvqI0Yykf6KwP/InPwG0OumrLiO+48DSG8xoNU61EG+VhGMxh4SoSAJkgDE0T5kT4ktRQVQ2TN53Wj+g7SyI/wBSg538xXQQIYrkT+xJHL17Yu6w1meAvJ92m6kKPpGTyEzqm4ZHyPPaXcQ10jwGJwo7s7aTcBcBgOqDGsRzkp8j5HaGUMCrCYPvnSJDMM4g2HyOfVBg6Os31XD8f74bSyhgVYTB986Q4AQlidIz1ch69oVjSJWIJFTIsAdHInCYsuOVLaxWDtUTUYRPtOpE/U2E1XG3KQoSi1woirihM0Pmp3bqqJGR6jqtZImYO42HuOG09IeShBa1u4ep8DRVZzJQSfdpsHGidHUVvrHD7f73DI7T8ExGLxJgGxRbK6ZrAzAvnZRVCiSgAZe69/aj/9k="
|
|
11786
|
-
}
|
|
12123
|
+
PresetListType.BULLET_LIST,
|
|
12124
|
+
PresetListType.BULLET_LIST_1,
|
|
12125
|
+
PresetListType.BULLET_LIST_2,
|
|
12126
|
+
PresetListType.BULLET_LIST_3,
|
|
12127
|
+
PresetListType.BULLET_LIST_4,
|
|
12128
|
+
PresetListType.BULLET_LIST_5
|
|
11787
12129
|
];
|
|
11788
|
-
const BulletListTypePicker = (props) => {
|
|
11789
|
-
|
|
11790
|
-
|
|
11791
|
-
|
|
11792
|
-
});
|
|
11793
|
-
};
|
|
12130
|
+
const BulletListTypePicker = (props) => /* @__PURE__ */ jsx(ListTypePicker, {
|
|
12131
|
+
...props,
|
|
12132
|
+
options: bulletOptions
|
|
12133
|
+
});
|
|
11794
12134
|
|
|
11795
12135
|
//#endregion
|
|
11796
12136
|
//#region src/views/list-type-picker/index.ts
|
|
@@ -12461,7 +12801,7 @@ function TextColorSelectorMenuItemFactory(accessor) {
|
|
|
12461
12801
|
selectable: false
|
|
12462
12802
|
},
|
|
12463
12803
|
value$: new Observable((subscriber) => {
|
|
12464
|
-
const defaultValue =
|
|
12804
|
+
const defaultValue = themeService.getColorFromTheme("gray.900");
|
|
12465
12805
|
const calc = () => {
|
|
12466
12806
|
var _textRun$ts9;
|
|
12467
12807
|
if (shouldSuppressDocMenuStateRefresh(accessor)) return;
|
|
@@ -12854,19 +13194,25 @@ function CheckListMenuItemFactory(accessor) {
|
|
|
12854
13194
|
};
|
|
12855
13195
|
}
|
|
12856
13196
|
function ResetTextColorMenuItemFactory(accessor) {
|
|
13197
|
+
const themeService = accessor.get(ThemeService);
|
|
12857
13198
|
return {
|
|
12858
13199
|
id: ResetInlineFormatTextColorCommand.id,
|
|
13200
|
+
commandId: SetInlineFormatTextColorCommand.id,
|
|
12859
13201
|
type: MenuItemType.BUTTON,
|
|
12860
13202
|
title: "docs-ui.toolbar.resetColor",
|
|
12861
|
-
icon: "NoColorDoubleIcon"
|
|
13203
|
+
icon: "NoColorDoubleIcon",
|
|
13204
|
+
params: () => ({ value: themeService.getColorFromTheme("gray.900") })
|
|
12862
13205
|
};
|
|
12863
13206
|
}
|
|
12864
13207
|
function ResetBackgroundColorMenuItemFactory(accessor) {
|
|
13208
|
+
const themeService = accessor.get(ThemeService);
|
|
12865
13209
|
return {
|
|
12866
13210
|
id: ResetInlineFormatTextBackgroundColorCommand.id,
|
|
13211
|
+
commandId: SetInlineFormatTextBackgroundColorCommand.id,
|
|
12867
13212
|
type: MenuItemType.BUTTON,
|
|
12868
13213
|
title: "docs-ui.toolbar.resetColor",
|
|
12869
|
-
icon: "NoColorDoubleIcon"
|
|
13214
|
+
icon: "NoColorDoubleIcon",
|
|
13215
|
+
params: () => ({ value: themeService.getColorFromTheme("primary.600") })
|
|
12870
13216
|
};
|
|
12871
13217
|
}
|
|
12872
13218
|
function BackgroundColorSelectorMenuItemFactory(accessor) {
|
|
@@ -13532,12 +13878,15 @@ function ParagraphMenuNoBackgroundMenuItemFactory(accessor) {
|
|
|
13532
13878
|
};
|
|
13533
13879
|
}
|
|
13534
13880
|
function ParagraphMenuResetTextColorMenuItemFactory(accessor) {
|
|
13881
|
+
const themeService = accessor.get(ThemeService);
|
|
13535
13882
|
return {
|
|
13536
13883
|
id: ResetInlineFormatTextColorCommand.id,
|
|
13884
|
+
commandId: SetInlineFormatTextColorCommand.id,
|
|
13537
13885
|
type: MenuItemType.BUTTON,
|
|
13538
13886
|
icon: "NoColorDoubleIcon",
|
|
13539
13887
|
title: "docs-ui.toolbar.resetColor",
|
|
13540
13888
|
tooltip: "docs-ui.toolbar.resetColor",
|
|
13889
|
+
params: () => ({ value: themeService.getColorFromTheme("gray.900") }),
|
|
13541
13890
|
hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
|
|
13542
13891
|
};
|
|
13543
13892
|
}
|
|
@@ -14583,13 +14932,333 @@ function CountBar(_props) {
|
|
|
14583
14932
|
});
|
|
14584
14933
|
}
|
|
14585
14934
|
|
|
14935
|
+
//#endregion
|
|
14936
|
+
//#region src/views/doc-statistics/use-doc-statistics.ts
|
|
14937
|
+
const STATISTICS_DEBOUNCE_TIME = 200;
|
|
14938
|
+
const EMPTY_STATISTICS = {
|
|
14939
|
+
words: 0,
|
|
14940
|
+
charactersWithoutSpaces: 0,
|
|
14941
|
+
charactersWithSpaces: 0,
|
|
14942
|
+
paragraphs: 0,
|
|
14943
|
+
nonAsianWords: 0,
|
|
14944
|
+
asianCharactersAndKoreanWords: 0
|
|
14945
|
+
};
|
|
14946
|
+
const EMPTY_LAYOUT_STATISTICS = {
|
|
14947
|
+
pages: 0,
|
|
14948
|
+
lines: 0
|
|
14949
|
+
};
|
|
14950
|
+
function getBodySelectionRanges(selectionManager) {
|
|
14951
|
+
return (selectionManager.getTextRanges() ?? []).filter((range) => !range.collapsed && !range.segmentId).map(({ collapsed, direction, endOffset, isActive, rangeType, segmentId, segmentPage, startOffset }) => ({
|
|
14952
|
+
collapsed,
|
|
14953
|
+
direction,
|
|
14954
|
+
endOffset,
|
|
14955
|
+
isActive,
|
|
14956
|
+
rangeType,
|
|
14957
|
+
segmentId,
|
|
14958
|
+
segmentPage,
|
|
14959
|
+
startOffset
|
|
14960
|
+
}));
|
|
14961
|
+
}
|
|
14962
|
+
function rangeIntersectsLine(range, startOffset, endOffset) {
|
|
14963
|
+
const rangeStart = Math.min(range.startOffset, range.endOffset);
|
|
14964
|
+
const rangeEnd = Math.max(range.startOffset, range.endOffset);
|
|
14965
|
+
return rangeStart < endOffset && rangeEnd > startOffset;
|
|
14966
|
+
}
|
|
14967
|
+
function getDocLayoutStatistics(skeleton, ranges = [], calculatePages = true) {
|
|
14968
|
+
var _skeleton$getSkeleton;
|
|
14969
|
+
const pages = (skeleton === null || skeleton === void 0 || (_skeleton$getSkeleton = skeleton.getSkeletonData()) === null || _skeleton$getSkeleton === void 0 ? void 0 : _skeleton$getSkeleton.pages) ?? [];
|
|
14970
|
+
if (ranges.length === 0) {
|
|
14971
|
+
let lines = 0;
|
|
14972
|
+
documentSkeletonLineIterator(pages, {}, () => lines++);
|
|
14973
|
+
return {
|
|
14974
|
+
lines,
|
|
14975
|
+
pages: calculatePages ? pages.length : 0
|
|
14976
|
+
};
|
|
14977
|
+
}
|
|
14978
|
+
let lines = 0;
|
|
14979
|
+
const selectedPages = calculatePages ? /* @__PURE__ */ new Set() : null;
|
|
14980
|
+
documentSkeletonLineIterator(pages, {}, ({ line, pageIndex }) => {
|
|
14981
|
+
if (ranges.some((range) => rangeIntersectsLine(range, line.st, line.ed))) {
|
|
14982
|
+
lines += 1;
|
|
14983
|
+
selectedPages === null || selectedPages === void 0 || selectedPages.add(pageIndex);
|
|
14984
|
+
}
|
|
14985
|
+
});
|
|
14986
|
+
return {
|
|
14987
|
+
lines,
|
|
14988
|
+
pages: (selectedPages === null || selectedPages === void 0 ? void 0 : selectedPages.size) ?? 0
|
|
14989
|
+
};
|
|
14990
|
+
}
|
|
14991
|
+
async function calculateStatistics({ calculateLayout, calculatePages, documentDataModel, cachedStatistics, locale, selectionRanges, signal, skeleton }) {
|
|
14992
|
+
const documentLayout = calculateLayout ? getDocLayoutStatistics(skeleton, [], calculatePages) : EMPTY_LAYOUT_STATISTICS;
|
|
14993
|
+
const selectionLayout = calculateLayout && selectionRanges.length > 0 ? getDocLayoutStatistics(skeleton, selectionRanges, calculatePages) : EMPTY_LAYOUT_STATISTICS;
|
|
14994
|
+
const [documentStatistics, selectionStatistics] = await Promise.all([cachedStatistics ?? documentDataModel.getStatistics({
|
|
14995
|
+
locale,
|
|
14996
|
+
signal
|
|
14997
|
+
}), selectionRanges.length > 0 ? documentDataModel.getStatistics({
|
|
14998
|
+
locale,
|
|
14999
|
+
ranges: selectionRanges,
|
|
15000
|
+
signal
|
|
15001
|
+
}) : null]);
|
|
15002
|
+
return {
|
|
15003
|
+
document: {
|
|
15004
|
+
...documentStatistics,
|
|
15005
|
+
...documentLayout
|
|
15006
|
+
},
|
|
15007
|
+
selection: selectionStatistics ? {
|
|
15008
|
+
...selectionStatistics,
|
|
15009
|
+
...selectionLayout
|
|
15010
|
+
} : null
|
|
15011
|
+
};
|
|
15012
|
+
}
|
|
15013
|
+
function cacheDocumentStatistics(cacheRef, documentDataModel, locale, revision, statistics) {
|
|
15014
|
+
cacheRef.current = {
|
|
15015
|
+
documentDataModel,
|
|
15016
|
+
locale,
|
|
15017
|
+
revision,
|
|
15018
|
+
statistics: {
|
|
15019
|
+
words: statistics.words,
|
|
15020
|
+
charactersWithoutSpaces: statistics.charactersWithoutSpaces,
|
|
15021
|
+
charactersWithSpaces: statistics.charactersWithSpaces,
|
|
15022
|
+
paragraphs: statistics.paragraphs,
|
|
15023
|
+
nonAsianWords: statistics.nonAsianWords,
|
|
15024
|
+
asianCharactersAndKoreanWords: statistics.asianCharactersAndKoreanWords
|
|
15025
|
+
}
|
|
15026
|
+
};
|
|
15027
|
+
}
|
|
15028
|
+
function useStatisticsSelection(documentDataModel, selectionManager) {
|
|
15029
|
+
return useObservable(documentDataModel ? () => combineLatest([selectionManager.textSelection$.pipe(startWith(void 0)), documentDataModel.change$]).pipe(map(([, revision]) => ({
|
|
15030
|
+
ranges: getBodySelectionRanges(selectionManager),
|
|
15031
|
+
revision
|
|
15032
|
+
}))) : null, {
|
|
15033
|
+
ranges: [],
|
|
15034
|
+
revision: 0
|
|
15035
|
+
}, false, [documentDataModel, selectionManager]);
|
|
15036
|
+
}
|
|
15037
|
+
function useDocumentSkeleton(documentDataModel, renderManagerService) {
|
|
15038
|
+
var _renderManagerService;
|
|
15039
|
+
const skeletonManager = documentDataModel ? (_renderManagerService = renderManagerService.getRenderUnitById(documentDataModel.getUnitId())) === null || _renderManagerService === void 0 ? void 0 : _renderManagerService.with(DocSkeletonManagerService) : null;
|
|
15040
|
+
return useObservable(skeletonManager ? skeletonManager.currentSkeleton$.pipe(map((value) => ({ value }))) : null, { value: (skeletonManager === null || skeletonManager === void 0 ? void 0 : skeletonManager.getSkeleton()) ?? null }, false, [skeletonManager]).value;
|
|
15041
|
+
}
|
|
15042
|
+
function useDocStatistics(calculateLayout = false) {
|
|
15043
|
+
const instanceService = useDependency(IUniverInstanceService);
|
|
15044
|
+
const localeService = useDependency(LocaleService);
|
|
15045
|
+
const renderManagerService = useDependency(IRenderManagerService);
|
|
15046
|
+
const selectionManager = useDependency(DocSelectionManagerService);
|
|
15047
|
+
const documentStatisticsCacheRef = useRef(null);
|
|
15048
|
+
const documentDataModel = useObservable(useMemo(() => instanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_DOC), [instanceService]));
|
|
15049
|
+
const selectionSnapshot = useStatisticsSelection(documentDataModel, selectionManager);
|
|
15050
|
+
const locale = useObservable(localeService.currentLocale$, localeService.getCurrentLocale());
|
|
15051
|
+
const showPages = (documentDataModel === null || documentDataModel === void 0 ? void 0 : documentDataModel.getDocumentStyle().documentFlavor) !== DocumentFlavor.MODERN;
|
|
15052
|
+
const skeleton = useDocumentSkeleton(calculateLayout ? documentDataModel : null, renderManagerService);
|
|
15053
|
+
const [state, setState] = useState({
|
|
15054
|
+
document: {
|
|
15055
|
+
...EMPTY_STATISTICS,
|
|
15056
|
+
lines: 0,
|
|
15057
|
+
pages: 0
|
|
15058
|
+
},
|
|
15059
|
+
selection: null,
|
|
15060
|
+
loading: true
|
|
15061
|
+
});
|
|
15062
|
+
const selectionRanges = selectionSnapshot.ranges;
|
|
15063
|
+
useEffect(() => {
|
|
15064
|
+
if (!(documentDataModel === null || documentDataModel === void 0 ? void 0 : documentDataModel.getBody())) return;
|
|
15065
|
+
const currentDocumentDataModel = documentDataModel;
|
|
15066
|
+
const cachedDocumentStatistics = documentStatisticsCacheRef.current;
|
|
15067
|
+
const hasCachedDocumentStatistics = (cachedDocumentStatistics === null || cachedDocumentStatistics === void 0 ? void 0 : cachedDocumentStatistics.documentDataModel) === currentDocumentDataModel && cachedDocumentStatistics.locale === locale && cachedDocumentStatistics.revision === selectionSnapshot.revision;
|
|
15068
|
+
const abortController = new AbortController();
|
|
15069
|
+
const timeout = setTimeout(async () => {
|
|
15070
|
+
setState((current) => ({
|
|
15071
|
+
...current,
|
|
15072
|
+
loading: true
|
|
15073
|
+
}));
|
|
15074
|
+
try {
|
|
15075
|
+
const result = await calculateStatistics({
|
|
15076
|
+
calculateLayout,
|
|
15077
|
+
calculatePages: showPages,
|
|
15078
|
+
documentDataModel: currentDocumentDataModel,
|
|
15079
|
+
cachedStatistics: hasCachedDocumentStatistics ? cachedDocumentStatistics.statistics : void 0,
|
|
15080
|
+
locale,
|
|
15081
|
+
selectionRanges,
|
|
15082
|
+
signal: abortController.signal,
|
|
15083
|
+
skeleton: skeleton ?? null
|
|
15084
|
+
});
|
|
15085
|
+
if (!hasCachedDocumentStatistics) cacheDocumentStatistics(documentStatisticsCacheRef, currentDocumentDataModel, locale, selectionSnapshot.revision, result.document);
|
|
15086
|
+
setState({
|
|
15087
|
+
...result,
|
|
15088
|
+
loading: false
|
|
15089
|
+
});
|
|
15090
|
+
} catch {
|
|
15091
|
+
if (!abortController.signal.aborted) setState((current) => ({
|
|
15092
|
+
...current,
|
|
15093
|
+
loading: false
|
|
15094
|
+
}));
|
|
15095
|
+
}
|
|
15096
|
+
}, STATISTICS_DEBOUNCE_TIME);
|
|
15097
|
+
return () => {
|
|
15098
|
+
clearTimeout(timeout);
|
|
15099
|
+
abortController.abort();
|
|
15100
|
+
};
|
|
15101
|
+
}, [
|
|
15102
|
+
calculateLayout,
|
|
15103
|
+
documentDataModel,
|
|
15104
|
+
locale,
|
|
15105
|
+
selectionRanges,
|
|
15106
|
+
selectionSnapshot,
|
|
15107
|
+
showPages,
|
|
15108
|
+
skeleton
|
|
15109
|
+
]);
|
|
15110
|
+
return {
|
|
15111
|
+
...state,
|
|
15112
|
+
showPages
|
|
15113
|
+
};
|
|
15114
|
+
}
|
|
15115
|
+
|
|
15116
|
+
//#endregion
|
|
15117
|
+
//#region src/views/doc-statistics/DocStatistics.tsx
|
|
15118
|
+
const STATISTIC_ROWS = [
|
|
15119
|
+
{
|
|
15120
|
+
key: "pages",
|
|
15121
|
+
label: "docs-ui.statistics.pages"
|
|
15122
|
+
},
|
|
15123
|
+
{
|
|
15124
|
+
key: "words",
|
|
15125
|
+
label: "docs-ui.statistics.words"
|
|
15126
|
+
},
|
|
15127
|
+
{
|
|
15128
|
+
key: "charactersWithoutSpaces",
|
|
15129
|
+
label: "docs-ui.statistics.charactersWithoutSpaces"
|
|
15130
|
+
},
|
|
15131
|
+
{
|
|
15132
|
+
key: "charactersWithSpaces",
|
|
15133
|
+
label: "docs-ui.statistics.charactersWithSpaces"
|
|
15134
|
+
},
|
|
15135
|
+
{
|
|
15136
|
+
key: "paragraphs",
|
|
15137
|
+
label: "docs-ui.statistics.paragraphs"
|
|
15138
|
+
},
|
|
15139
|
+
{
|
|
15140
|
+
key: "lines",
|
|
15141
|
+
label: "docs-ui.statistics.lines"
|
|
15142
|
+
},
|
|
15143
|
+
{
|
|
15144
|
+
key: "nonAsianWords",
|
|
15145
|
+
label: "docs-ui.statistics.nonAsianWords"
|
|
15146
|
+
},
|
|
15147
|
+
{
|
|
15148
|
+
key: "asianCharactersAndKoreanWords",
|
|
15149
|
+
label: "docs-ui.statistics.asianCharactersAndKoreanWords"
|
|
15150
|
+
}
|
|
15151
|
+
];
|
|
15152
|
+
function StatisticsPanel({ statistics, selection, showPages }) {
|
|
15153
|
+
const localeService = useDependency(LocaleService);
|
|
15154
|
+
const localeTag = LOCALE_META[localeService.getCurrentLocale()].tag;
|
|
15155
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
15156
|
+
role: "dialog",
|
|
15157
|
+
"aria-label": localeService.t("docs-ui.statistics.title"),
|
|
15158
|
+
className: "univer-w-80 univer-rounded-lg univer-border univer-border-gray-200 univer-bg-gray-0 univer-p-4 univer-shadow-lg dark:!univer-border-gray-600 dark:!univer-bg-gray-800",
|
|
15159
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
15160
|
+
className: "univer-mb-3",
|
|
15161
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
15162
|
+
className: "univer-text-sm univer-font-medium",
|
|
15163
|
+
children: localeService.t("docs-ui.statistics.title")
|
|
15164
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
15165
|
+
className: "univer-mt-0.5 univer-text-xs univer-text-gray-500 dark:!univer-text-gray-400",
|
|
15166
|
+
children: localeService.t(selection ? "docs-ui.statistics.selection" : "docs-ui.statistics.document")
|
|
15167
|
+
})]
|
|
15168
|
+
}), /* @__PURE__ */ jsx("dl", {
|
|
15169
|
+
className: "univer-grid univer-grid-cols-[1fr_auto] univer-gap-x-5 univer-gap-y-2 univer-text-sm",
|
|
15170
|
+
children: STATISTIC_ROWS.filter(({ key }) => showPages || key !== "pages").map(({ key, label }) => /* @__PURE__ */ jsxs("div", {
|
|
15171
|
+
className: "univer-contents",
|
|
15172
|
+
children: [/* @__PURE__ */ jsx("dt", { children: localeService.t(label) }), /* @__PURE__ */ jsx("dd", {
|
|
15173
|
+
className: "univer-m-0 univer-text-right univer-font-medium univer-tabular-nums",
|
|
15174
|
+
children: statistics[key].toLocaleString(localeTag)
|
|
15175
|
+
})]
|
|
15176
|
+
}, String(key)))
|
|
15177
|
+
})]
|
|
15178
|
+
});
|
|
15179
|
+
}
|
|
15180
|
+
function DocStatistics() {
|
|
15181
|
+
const localeService = useDependency(LocaleService);
|
|
15182
|
+
const [open, setOpen] = useState(false);
|
|
15183
|
+
const { document, selection, loading, showPages } = useDocStatistics(open);
|
|
15184
|
+
const triggerRef = useRef(null);
|
|
15185
|
+
const anchorRect$ = useMemo(() => new BehaviorSubject({
|
|
15186
|
+
left: 0,
|
|
15187
|
+
right: 0,
|
|
15188
|
+
top: 0,
|
|
15189
|
+
bottom: 0
|
|
15190
|
+
}), []);
|
|
15191
|
+
const localeTag = LOCALE_META[localeService.getCurrentLocale()].tag;
|
|
15192
|
+
const displayedStatistics = selection ?? document;
|
|
15193
|
+
const openLabel = localeService.t("docs-ui.statistics.open");
|
|
15194
|
+
const label = selection ? localeService.t("docs-ui.statistics.selectedWords", selection.words.toLocaleString(localeTag), document.words.toLocaleString(localeTag)) : localeService.t("docs-ui.statistics.wordCount", document.words.toLocaleString(localeTag));
|
|
15195
|
+
useEffect(() => {
|
|
15196
|
+
if (!open) return;
|
|
15197
|
+
const updatePosition = () => {
|
|
15198
|
+
var _triggerRef$current;
|
|
15199
|
+
const rect = (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.getBoundingClientRect();
|
|
15200
|
+
if (!rect) return;
|
|
15201
|
+
anchorRect$.next({
|
|
15202
|
+
left: rect.left,
|
|
15203
|
+
right: rect.right,
|
|
15204
|
+
top: rect.top,
|
|
15205
|
+
bottom: rect.bottom
|
|
15206
|
+
});
|
|
15207
|
+
};
|
|
15208
|
+
const closeOnEscape = (event) => {
|
|
15209
|
+
if (event.key === "Escape") setOpen(false);
|
|
15210
|
+
};
|
|
15211
|
+
updatePosition();
|
|
15212
|
+
window.addEventListener("resize", updatePosition);
|
|
15213
|
+
window.addEventListener("scroll", updatePosition, true);
|
|
15214
|
+
window.addEventListener("keydown", closeOnEscape);
|
|
15215
|
+
return () => {
|
|
15216
|
+
window.removeEventListener("resize", updatePosition);
|
|
15217
|
+
window.removeEventListener("scroll", updatePosition, true);
|
|
15218
|
+
window.removeEventListener("keydown", closeOnEscape);
|
|
15219
|
+
};
|
|
15220
|
+
}, [anchorRect$, open]);
|
|
15221
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
|
|
15222
|
+
ref: triggerRef,
|
|
15223
|
+
title: open ? void 0 : openLabel,
|
|
15224
|
+
children: /* @__PURE__ */ jsx(ToolbarButton, {
|
|
15225
|
+
noIcon: true,
|
|
15226
|
+
active: open,
|
|
15227
|
+
className: "!univer-h-7 univer-px-2 univer-text-xs !univer-text-gray-600 focus-visible:univer-ring-2 focus-visible:univer-ring-primary-500 dark:!univer-text-gray-300",
|
|
15228
|
+
"aria-expanded": open,
|
|
15229
|
+
"aria-haspopup": "dialog",
|
|
15230
|
+
"aria-label": openLabel,
|
|
15231
|
+
onClick: () => setOpen((visible) => !visible),
|
|
15232
|
+
children: /* @__PURE__ */ jsxs("span", {
|
|
15233
|
+
className: "univer-flex univer-items-center univer-gap-1.5",
|
|
15234
|
+
children: [
|
|
15235
|
+
/* @__PURE__ */ jsx(StatisticalFunctionIcon, { className: "univer-size-4" }),
|
|
15236
|
+
/* @__PURE__ */ jsx("span", { children: label }),
|
|
15237
|
+
loading && /* @__PURE__ */ jsx(LoadingMultiIcon, { className: "univer-size-3.5 univer-animate-spin" })
|
|
15238
|
+
]
|
|
15239
|
+
})
|
|
15240
|
+
})
|
|
15241
|
+
}), open && /* @__PURE__ */ jsx(RectPopup, {
|
|
15242
|
+
portal: true,
|
|
15243
|
+
anchorRect$,
|
|
15244
|
+
direction: "top-left",
|
|
15245
|
+
onClickOutside: () => setOpen(false),
|
|
15246
|
+
onContextMenu: () => setOpen(false),
|
|
15247
|
+
children: /* @__PURE__ */ jsx(StatisticsPanel, {
|
|
15248
|
+
statistics: displayedStatistics,
|
|
15249
|
+
selection: selection != null,
|
|
15250
|
+
showPages
|
|
15251
|
+
})
|
|
15252
|
+
})] });
|
|
15253
|
+
}
|
|
15254
|
+
|
|
14586
15255
|
//#endregion
|
|
14587
15256
|
//#region src/views/doc-footer/DocFooter.tsx
|
|
14588
15257
|
function DocFooterContent() {
|
|
14589
15258
|
const config = useConfigValue(DOCS_UI_PLUGIN_CONFIG_KEY);
|
|
14590
15259
|
return ((config === null || config === void 0 ? void 0 : config.footer) ?? true) && /* @__PURE__ */ jsxs("div", {
|
|
14591
15260
|
className: "univer-box-border univer-flex univer-items-center univer-justify-between univer-px-5 univer-py-1.5",
|
|
14592
|
-
children: [/* @__PURE__ */ jsx(
|
|
15261
|
+
children: [(config === null || config === void 0 ? void 0 : config.wordCount) !== false && /* @__PURE__ */ jsx(DocStatistics, {}), /* @__PURE__ */ jsx(CountBar, {})]
|
|
14593
15262
|
});
|
|
14594
15263
|
}
|
|
14595
15264
|
function DocFooter() {
|
|
@@ -15619,11 +16288,11 @@ const SideMenu = forwardRef((props, ref) => {
|
|
|
15619
16288
|
style: wrapperStyle,
|
|
15620
16289
|
children: [/* @__PURE__ */ jsx("div", {
|
|
15621
16290
|
onClick: () => onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(!open),
|
|
15622
|
-
className: clsx("univer-absolute univer-left-5 univer-top-4 univer-z-[100] univer-flex univer-size-8 univer-cursor-pointer univer-items-center univer-justify-center univer-rounded-full univer-bg-
|
|
16291
|
+
className: clsx("univer-absolute univer-left-5 univer-top-4 univer-z-[100] univer-flex univer-size-8 univer-cursor-pointer univer-items-center univer-justify-center univer-rounded-full univer-bg-gray-0 univer-text-gray-800 univer-shadow-sm dark:!univer-bg-gray-600 dark:!univer-text-gray-200", iconClass),
|
|
15623
16292
|
style: iconStyle,
|
|
15624
16293
|
children: open ? /* @__PURE__ */ jsx(MoreLeftIcon, {}) : /* @__PURE__ */ jsx(CatalogueIcon, {})
|
|
15625
16294
|
}), /* @__PURE__ */ jsx("div", {
|
|
15626
|
-
className: clsx(className, "univer-absolute univer-left-0 univer-top-0 univer-box-border univer-flex univer-min-w-[180px] univer-flex-col univer-px-4 univer-pb-4 univer-pt-14 univer-transition-all univer-duration-300", { "univer-rounded-r-2xl univer-bg-
|
|
16295
|
+
className: clsx(className, "univer-absolute univer-left-0 univer-top-0 univer-box-border univer-flex univer-min-w-[180px] univer-flex-col univer-px-4 univer-pb-4 univer-pt-14 univer-transition-all univer-duration-300", { "univer-rounded-r-2xl univer-bg-gray-0 univer-shadow univer-backdrop-blur-[10px] dark:!univer-bg-gray-900": isSideBar }),
|
|
15627
16296
|
style: {
|
|
15628
16297
|
...style,
|
|
15629
16298
|
transform: open ? "translateX(0)" : "translateX(-100%)",
|
|
@@ -16162,7 +16831,7 @@ function resolveDocsCustomBlockRenderViewport(params) {
|
|
|
16162
16831
|
//#endregion
|
|
16163
16832
|
//#region package.json
|
|
16164
16833
|
var name = "@univerjs/docs-ui";
|
|
16165
|
-
var version = "1.0.0-beta.
|
|
16834
|
+
var version = "1.0.0-beta.1";
|
|
16166
16835
|
|
|
16167
16836
|
//#endregion
|
|
16168
16837
|
//#region src/commands/commands/doc-paragraph-setting.command.ts
|
|
@@ -16265,6 +16934,7 @@ function resolveFloatToolbarMenus(menuManagerService, avaliableMenus) {
|
|
|
16265
16934
|
function FloatToolbar(props) {
|
|
16266
16935
|
const { avaliableMenus = DEFAULT_AVALIABLE_MENUS } = props;
|
|
16267
16936
|
const menuManagerService = useDependency(IMenuManagerService);
|
|
16937
|
+
const toolbarRef = useRef(null);
|
|
16268
16938
|
const [menus, setMenus] = useState([]);
|
|
16269
16939
|
const [extraMenus, setExtraMenus] = useState([]);
|
|
16270
16940
|
useEffect(() => {
|
|
@@ -16279,8 +16949,14 @@ function FloatToolbar(props) {
|
|
|
16279
16949
|
subscription.unsubscribe();
|
|
16280
16950
|
};
|
|
16281
16951
|
}, [avaliableMenus, menuManagerService]);
|
|
16952
|
+
useEffect(() => {
|
|
16953
|
+
const toolbar = toolbarRef.current;
|
|
16954
|
+
if (!toolbar) return;
|
|
16955
|
+
return preventBrowserZoomInContainers([toolbar]);
|
|
16956
|
+
}, []);
|
|
16282
16957
|
return /* @__PURE__ */ jsxs("div", {
|
|
16283
|
-
|
|
16958
|
+
ref: toolbarRef,
|
|
16959
|
+
className: clsx("univer-box-border univer-flex univer-rounded univer-bg-gray-0 univer-py-1.5 univer-shadow-sm dark:!univer-border-gray-700 dark:!univer-bg-gray-900", borderClassName),
|
|
16284
16960
|
children: [
|
|
16285
16961
|
menus.map((groupItem) => groupItem.item && /* @__PURE__ */ jsx("div", {
|
|
16286
16962
|
className: "univer-flex univer-flex-nowrap univer-gap-2 univer-px-2",
|
|
@@ -17083,7 +17759,7 @@ function ParagraphSetting() {
|
|
|
17083
17759
|
title: localeService.t("docs-ui.doc.paragraphSetting.alignment"),
|
|
17084
17760
|
first: true,
|
|
17085
17761
|
children: /* @__PURE__ */ jsx("div", {
|
|
17086
|
-
className: clsx("univer-flex univer-grid-cols-4 univer-items-center univer-justify-around univer-gap-2 univer-rounded-lg univer-bg-
|
|
17762
|
+
className: clsx("univer-flex univer-grid-cols-4 univer-items-center univer-justify-around univer-gap-2 univer-rounded-lg univer-bg-gray-0 univer-p-1 dark:!univer-bg-gray-900", borderClassName),
|
|
17087
17763
|
children: ALIGNMENT_OPTIONS.map((item) => {
|
|
17088
17764
|
return /* @__PURE__ */ jsx(Tooltip, {
|
|
17089
17765
|
title: localeService.t(item.label),
|
|
@@ -18464,6 +19140,7 @@ function ParagraphMenuBase({ popup, tableBlockOnly = false }) {
|
|
|
18464
19140
|
const hoverOpenSchedulerRef = useRef(createParagraphMenuHoverOpenScheduler(() => openMenuRef.current()));
|
|
18465
19141
|
const commandService = useDependency(ICommandService);
|
|
18466
19142
|
const localeService = useDependency(LocaleService);
|
|
19143
|
+
const themeService = useDependency(ThemeService);
|
|
18467
19144
|
const docSelectionManagerService = useDependency(DocSelectionManagerService);
|
|
18468
19145
|
const direction = useObservable(localeService.direction$, "ltr");
|
|
18469
19146
|
const docClipboardService = useDependency(IDocClipboardService);
|
|
@@ -18632,8 +19309,8 @@ function ParagraphMenuBase({ popup, tableBlockOnly = false }) {
|
|
|
18632
19309
|
if (!commandId) return;
|
|
18633
19310
|
if (commandId === "doc.menu.paragraph-t.reset-colors") {
|
|
18634
19311
|
if (formattingRange) replaceSelection(formattingRange);
|
|
18635
|
-
await commandService.executeCommand(SetInlineFormatTextColorCommand.id, { value: "
|
|
18636
|
-
await commandService.executeCommand(
|
|
19312
|
+
await commandService.executeCommand(SetInlineFormatTextColorCommand.id, { value: themeService.getColorFromTheme("gray.900") });
|
|
19313
|
+
await commandService.executeCommand(SetInlineFormatTextBackgroundColorCommand.id, { value: themeService.getColorFromTheme("primary.600") });
|
|
18637
19314
|
finishParagraphMenuCommand(docParagraphMenuService, layoutService, handleHideMenu);
|
|
18638
19315
|
return;
|
|
18639
19316
|
}
|
|
@@ -18747,7 +19424,7 @@ function ParagraphMenuBase({ popup, tableBlockOnly = false }) {
|
|
|
18747
19424
|
/* @__PURE__ */ jsxs("div", {
|
|
18748
19425
|
"data-u-comp": "paragraph-menu",
|
|
18749
19426
|
ref: anchorRef,
|
|
18750
|
-
className: clsx("univer-mr-1 univer-inline-flex univer-h-7 univer-cursor-pointer univer-items-center univer-gap-1 univer-rounded-md univer-border univer-border-gray-200 univer-bg-
|
|
19427
|
+
className: clsx("univer-mr-1 univer-inline-flex univer-h-7 univer-cursor-pointer univer-items-center univer-gap-1 univer-rounded-md univer-border univer-border-gray-200 univer-bg-gray-0 univer-px-2 univer-py-0 univer-shadow-sm univer-transition-colors hover:univer-bg-gray-50 hover:univer-shadow-md dark:!univer-border-gray-700 dark:!univer-bg-gray-900 dark:hover:!univer-bg-gray-800", { "univer-bg-gray-100 univer-shadow-md dark:!univer-bg-gray-800": visible }),
|
|
18751
19428
|
onMouseEnter: (e) => {
|
|
18752
19429
|
var _popup$onPointerEnter;
|
|
18753
19430
|
(_popup$onPointerEnter = popup.onPointerEnter) === null || _popup$onPointerEnter === void 0 || _popup$onPointerEnter.call(popup, e);
|
|
@@ -18767,7 +19444,7 @@ function ParagraphMenuBase({ popup, tableBlockOnly = false }) {
|
|
|
18767
19444
|
isMouseOver.current = true;
|
|
18768
19445
|
hoverOpenSchedulerRef.current.openNow();
|
|
18769
19446
|
},
|
|
18770
|
-
children: [/* @__PURE__ */ jsx(TargetIcon, { className: clsx(getParagraphMenuIconSizeClass(targetIconKey), "univer-shrink-0 univer-text-gray-700 dark:!univer-text-
|
|
19447
|
+
children: [/* @__PURE__ */ jsx(TargetIcon, { className: clsx(getParagraphMenuIconSizeClass(targetIconKey), "univer-shrink-0 univer-text-gray-700 dark:!univer-text-gray-0") }), (currentActiveTarget === null || currentActiveTarget === void 0 ? void 0 : currentActiveTarget.draggable) && /* @__PURE__ */ jsx("button", {
|
|
18771
19448
|
type: "button",
|
|
18772
19449
|
className: "univer-group univer-flex univer-h-4 univer-w-2.5 univer-cursor-grab univer-items-center univer-justify-center univer-border-none univer-bg-transparent univer-p-0 active:univer-cursor-grabbing",
|
|
18773
19450
|
"aria-label": localeService.t("docs-ui.doc.blockMenu.dragBlock"),
|
|
@@ -18960,11 +19637,19 @@ function shouldUseInsertBelowRange(commandId, params) {
|
|
|
18960
19637
|
if (normalized.includes("table") && normalized.includes("create")) return true;
|
|
18961
19638
|
return normalized === "doc.command.create-table" || normalized === "doc.operation.create-table" || normalized === "doc.menu.paragraph-t.insert-below.command";
|
|
18962
19639
|
}
|
|
19640
|
+
const DRAG_HANDLE_DOTS = [
|
|
19641
|
+
"top-left",
|
|
19642
|
+
"top-right",
|
|
19643
|
+
"middle-left",
|
|
19644
|
+
"middle-right",
|
|
19645
|
+
"bottom-left",
|
|
19646
|
+
"bottom-right"
|
|
19647
|
+
];
|
|
18963
19648
|
function DragHandleDotsIcon() {
|
|
18964
19649
|
return /* @__PURE__ */ jsx("span", {
|
|
18965
19650
|
className: "univer-grid univer-h-3.5 univer-w-2 univer-grid-cols-2 univer-place-items-center univer-gap-x-0.5 univer-gap-y-px",
|
|
18966
19651
|
"aria-hidden": "true",
|
|
18967
|
-
children:
|
|
19652
|
+
children: DRAG_HANDLE_DOTS.map((key) => /* @__PURE__ */ jsx("span", { className: "univer-size-0.5 univer-rounded-full univer-bg-gray-400 univer-transition-colors group-hover:univer-bg-gray-500 dark:!univer-bg-gray-500 dark:group-hover:!univer-bg-gray-300" }, key))
|
|
18968
19653
|
});
|
|
18969
19654
|
}
|
|
18970
19655
|
|
|
@@ -19808,8 +20493,9 @@ var TextBubbleShape = class TextBubbleShape extends Shape {
|
|
|
19808
20493
|
|
|
19809
20494
|
//#endregion
|
|
19810
20495
|
//#region src/controllers/doc-header-footer.controller.ts
|
|
19811
|
-
const
|
|
19812
|
-
const
|
|
20496
|
+
const HEADER_FOOTER_COVER_COLOR = "alpha(gray.0, 0.5)";
|
|
20497
|
+
const HEADER_FOOTER_STROKE_COLOR = "primary.600";
|
|
20498
|
+
const HEADER_FOOTER_LABEL_COLOR = "alpha(primary.600, 0.08)";
|
|
19813
20499
|
function checkCreateHeaderFooterType(viewModel, editArea, segmentPage, page) {
|
|
19814
20500
|
const { sectionId, config } = getDocPageSectionContext(viewModel.getDataModel().getSnapshot(), page);
|
|
19815
20501
|
const { defaultHeaderId, defaultFooterId, evenPageHeaderId, evenPageFooterId, firstPageHeaderId, firstPageFooterId, evenAndOddHeaders, useFirstPageHeaderFooter } = config;
|
|
@@ -19949,7 +20635,7 @@ let DocHeaderFooterController = class DocHeaderFooterController extends Disposab
|
|
|
19949
20635
|
top: 0,
|
|
19950
20636
|
width: pageWidth,
|
|
19951
20637
|
height: marginTop,
|
|
19952
|
-
fill:
|
|
20638
|
+
fill: HEADER_FOOTER_COVER_COLOR
|
|
19953
20639
|
});
|
|
19954
20640
|
ctx.save();
|
|
19955
20641
|
ctx.translate(0, pageHeight - marginBottom);
|
|
@@ -19958,7 +20644,7 @@ let DocHeaderFooterController = class DocHeaderFooterController extends Disposab
|
|
|
19958
20644
|
top: 0,
|
|
19959
20645
|
width: pageWidth,
|
|
19960
20646
|
height: marginBottom,
|
|
19961
|
-
fill:
|
|
20647
|
+
fill: HEADER_FOOTER_COVER_COLOR
|
|
19962
20648
|
});
|
|
19963
20649
|
ctx.restore();
|
|
19964
20650
|
} else {
|
|
@@ -19969,7 +20655,7 @@ let DocHeaderFooterController = class DocHeaderFooterController extends Disposab
|
|
|
19969
20655
|
top: marginTop,
|
|
19970
20656
|
width: pageWidth,
|
|
19971
20657
|
height: pageHeight - marginTop - marginBottom,
|
|
19972
|
-
fill:
|
|
20658
|
+
fill: HEADER_FOOTER_COVER_COLOR
|
|
19973
20659
|
});
|
|
19974
20660
|
ctx.restore();
|
|
19975
20661
|
}
|
|
@@ -20001,12 +20687,12 @@ let DocHeaderFooterController = class DocHeaderFooterController extends Disposab
|
|
|
20001
20687
|
ctx.translate(0, marginTop + 1);
|
|
20002
20688
|
TextBubbleShape.drawWith(ctx, {
|
|
20003
20689
|
text: localeService.t("docs-ui.headerFooter.header"),
|
|
20004
|
-
color:
|
|
20690
|
+
color: HEADER_FOOTER_LABEL_COLOR
|
|
20005
20691
|
});
|
|
20006
20692
|
ctx.translate(0, pageHeight - marginTop - marginBottom);
|
|
20007
20693
|
TextBubbleShape.drawWith(ctx, {
|
|
20008
20694
|
text: localeService.t("docs-ui.headerFooter.footer"),
|
|
20009
|
-
color:
|
|
20695
|
+
color: HEADER_FOOTER_LABEL_COLOR
|
|
20010
20696
|
});
|
|
20011
20697
|
}
|
|
20012
20698
|
ctx.restore();
|
|
@@ -21027,13 +21713,14 @@ DocEditorBridgeController = __decorate([
|
|
|
21027
21713
|
//#endregion
|
|
21028
21714
|
//#region src/controllers/render-controllers/doc-ime-input.controller.ts
|
|
21029
21715
|
let DocIMEInputController = class DocIMEInputController extends Disposable {
|
|
21030
|
-
constructor(_context, _docSelectionRenderService, _docImeInputManagerService, _docSkeletonManagerService, _docStateEmitService, _commandService) {
|
|
21716
|
+
constructor(_context, _docSelectionRenderService, _docImeInputManagerService, _docSkeletonManagerService, _docStateEmitService, _docSelectionManagerService, _commandService) {
|
|
21031
21717
|
super();
|
|
21032
21718
|
this._context = _context;
|
|
21033
21719
|
this._docSelectionRenderService = _docSelectionRenderService;
|
|
21034
21720
|
this._docImeInputManagerService = _docImeInputManagerService;
|
|
21035
21721
|
this._docSkeletonManagerService = _docSkeletonManagerService;
|
|
21036
21722
|
this._docStateEmitService = _docStateEmitService;
|
|
21723
|
+
this._docSelectionManagerService = _docSelectionManagerService;
|
|
21037
21724
|
this._commandService = _commandService;
|
|
21038
21725
|
_defineProperty(this, "_previousIMEContent", "");
|
|
21039
21726
|
_defineProperty(this, "_isCompositionStart", true);
|
|
@@ -21055,11 +21742,14 @@ let DocIMEInputController = class DocIMEInputController extends Disposable {
|
|
|
21055
21742
|
}
|
|
21056
21743
|
_initialOnCompositionstart() {
|
|
21057
21744
|
this._onStartSubscription = this._docSelectionRenderService.onCompositionstart$.subscribe((config) => {
|
|
21745
|
+
var _this$_docSelectionMa;
|
|
21058
21746
|
if (config == null) return;
|
|
21059
21747
|
this._resetIME();
|
|
21060
|
-
const { activeRange } = config;
|
|
21748
|
+
const { activeRange, rangeList = [] } = config;
|
|
21061
21749
|
if (activeRange == null) return;
|
|
21062
21750
|
this._docImeInputManagerService.setActiveRange(Tools.deepClone(activeRange));
|
|
21751
|
+
this._docImeInputManagerService.setPreviousDocRanges(Tools.deepClone([...rangeList, ...this._docSelectionRenderService.getAllRectRanges()]));
|
|
21752
|
+
this._docImeInputManagerService.setPreviousSelectionOptions(Tools.deepClone(((_this$_docSelectionMa = this._docSelectionManagerService.getSelectionInfo()) === null || _this$_docSelectionMa === void 0 ? void 0 : _this$_docSelectionMa.options) ?? null));
|
|
21063
21753
|
});
|
|
21064
21754
|
}
|
|
21065
21755
|
_initialOnCompositionUpdate() {
|
|
@@ -21111,11 +21801,12 @@ let DocIMEInputController = class DocIMEInputController extends Disposable {
|
|
|
21111
21801
|
trigger: IMEInputCommand.id,
|
|
21112
21802
|
redoState: {
|
|
21113
21803
|
actions: [],
|
|
21114
|
-
textRanges: [previousActiveRange]
|
|
21804
|
+
textRanges: this._docImeInputManagerService.getPreviousDocRanges().length ? this._docImeInputManagerService.getPreviousDocRanges() : [previousActiveRange]
|
|
21115
21805
|
},
|
|
21116
21806
|
undoState: {
|
|
21117
21807
|
actions: [],
|
|
21118
|
-
textRanges: [previousActiveRange]
|
|
21808
|
+
textRanges: this._docImeInputManagerService.getPreviousDocRanges().length ? this._docImeInputManagerService.getPreviousDocRanges() : [previousActiveRange],
|
|
21809
|
+
options: this._docImeInputManagerService.getPreviousSelectionOptions() ?? void 0
|
|
21119
21810
|
},
|
|
21120
21811
|
isCompositionEnd: true
|
|
21121
21812
|
});
|
|
@@ -21125,6 +21816,8 @@ let DocIMEInputController = class DocIMEInputController extends Disposable {
|
|
|
21125
21816
|
this._isCompositionStart = true;
|
|
21126
21817
|
this._docImeInputManagerService.clearUndoRedoMutationParamsCache();
|
|
21127
21818
|
this._docImeInputManagerService.setActiveRange(null);
|
|
21819
|
+
this._docImeInputManagerService.setPreviousDocRanges([]);
|
|
21820
|
+
this._docImeInputManagerService.setPreviousSelectionOptions(null);
|
|
21128
21821
|
}
|
|
21129
21822
|
};
|
|
21130
21823
|
DocIMEInputController = __decorate([
|
|
@@ -21132,7 +21825,8 @@ DocIMEInputController = __decorate([
|
|
|
21132
21825
|
__decorateParam(2, Inject(DocIMEInputManagerService)),
|
|
21133
21826
|
__decorateParam(3, Inject(DocSkeletonManagerService)),
|
|
21134
21827
|
__decorateParam(4, Inject(DocStateEmitService)),
|
|
21135
|
-
__decorateParam(5,
|
|
21828
|
+
__decorateParam(5, Inject(DocSelectionManagerService)),
|
|
21829
|
+
__decorateParam(6, ICommandService)
|
|
21136
21830
|
], DocIMEInputController);
|
|
21137
21831
|
|
|
21138
21832
|
//#endregion
|
|
@@ -21159,10 +21853,10 @@ let DocInputController = class DocInputController extends Disposable {
|
|
|
21159
21853
|
}
|
|
21160
21854
|
_initialNormalInput() {
|
|
21161
21855
|
this._onInputSubscription = this._docSelectionRenderService.onInput$.subscribe(async (config) => {
|
|
21162
|
-
var _docDataModel$getSelf;
|
|
21856
|
+
var _docDataModel$getSelf, _originBody$blockRang, _originBody$columnGro, _originBody$customBlo, _originBody$tables;
|
|
21163
21857
|
if (config == null) return;
|
|
21164
21858
|
const { unitId } = this._context;
|
|
21165
|
-
const { event, content = "", activeRange } = config;
|
|
21859
|
+
const { event, content = "", activeRange, rangeList = [] } = config;
|
|
21166
21860
|
const e = event;
|
|
21167
21861
|
if (e.defaultPrevented) return;
|
|
21168
21862
|
if (!SHEET_EDITOR_UNITS.includes(unitId) && this._isEmbedChildInputActive(unitId, e)) return;
|
|
@@ -21176,26 +21870,32 @@ let DocInputController = class DocInputController extends Disposable {
|
|
|
21176
21870
|
const curCustomRange = getCustomRangeAtPosition((originBody === null || originBody === void 0 ? void 0 : originBody.customRanges) ?? [], activeRange.endOffset, SHEET_EDITOR_UNITS.includes(unitId));
|
|
21177
21871
|
const curTextRun = getTextRunAtPosition(originBody, activeRange.endOffset, defaultTextStyle, cacheStyle, SHEET_EDITOR_UNITS.includes(unitId));
|
|
21178
21872
|
const curCustomDecorations = getCustomDecorationAtPosition((originBody === null || originBody === void 0 ? void 0 : originBody.customDecorations) ?? [], activeRange.endOffset);
|
|
21179
|
-
|
|
21873
|
+
const insertBody = {
|
|
21874
|
+
dataStream: content,
|
|
21875
|
+
textRuns: curTextRun ? [{
|
|
21876
|
+
...curTextRun,
|
|
21877
|
+
st: 0,
|
|
21878
|
+
ed: content.length
|
|
21879
|
+
}] : [],
|
|
21880
|
+
customRanges: curCustomRange ? [{
|
|
21881
|
+
...curCustomRange,
|
|
21882
|
+
startIndex: 0,
|
|
21883
|
+
endIndex: content.length - 1
|
|
21884
|
+
}] : [],
|
|
21885
|
+
customDecorations: curCustomDecorations.map((customDecoration) => ({
|
|
21886
|
+
...customDecoration,
|
|
21887
|
+
startIndex: 0,
|
|
21888
|
+
endIndex: content.length - 1
|
|
21889
|
+
}))
|
|
21890
|
+
};
|
|
21891
|
+
if (!activeRange.collapsed && (Boolean((_originBody$blockRang = originBody.blockRanges) === null || _originBody$blockRang === void 0 ? void 0 : _originBody$blockRang.length) || Boolean((_originBody$columnGro = originBody.columnGroups) === null || _originBody$columnGro === void 0 ? void 0 : _originBody$columnGro.length) || Boolean((_originBody$customBlo = originBody.customBlocks) === null || _originBody$customBlo === void 0 ? void 0 : _originBody$customBlo.length) || Boolean((_originBody$tables = originBody.tables) === null || _originBody$tables === void 0 ? void 0 : _originBody$tables.length)) || rangeList.length > 1 || this._docSelectionRenderService.getAllRectRanges().length > 0) await this._commandService.executeCommand(ReplaceSelectionCommand.id, {
|
|
21180
21892
|
unitId,
|
|
21181
|
-
body:
|
|
21182
|
-
|
|
21183
|
-
|
|
21184
|
-
|
|
21185
|
-
|
|
21186
|
-
|
|
21187
|
-
}] : [],
|
|
21188
|
-
customRanges: curCustomRange ? [{
|
|
21189
|
-
...curCustomRange,
|
|
21190
|
-
startIndex: 0,
|
|
21191
|
-
endIndex: content.length - 1
|
|
21192
|
-
}] : [],
|
|
21193
|
-
customDecorations: curCustomDecorations.map((customDecoration) => ({
|
|
21194
|
-
...customDecoration,
|
|
21195
|
-
startIndex: 0,
|
|
21196
|
-
endIndex: content.length - 1
|
|
21197
|
-
}))
|
|
21198
|
-
},
|
|
21893
|
+
body: insertBody,
|
|
21894
|
+
segmentId
|
|
21895
|
+
});
|
|
21896
|
+
else await this._commandService.executeCommand(InsertTextCommand.id, {
|
|
21897
|
+
unitId,
|
|
21898
|
+
body: insertBody,
|
|
21199
21899
|
range: activeRange,
|
|
21200
21900
|
segmentId
|
|
21201
21901
|
});
|
|
@@ -21577,17 +22277,21 @@ let DocIMEStateChangeInterceptorService = class DocIMEStateChangeInterceptorServ
|
|
|
21577
22277
|
if (imeInputManagerService == null) return null;
|
|
21578
22278
|
const historyParams = imeInputManagerService.fetchComposedUndoRedoMutationParams();
|
|
21579
22279
|
if (historyParams == null) throw new Error("historyParams is null in RichTextEditingMutation");
|
|
21580
|
-
const { undoMutationParams, redoMutationParams, previousActiveRange } = historyParams;
|
|
22280
|
+
const { undoMutationParams, redoMutationParams, previousActiveRange, previousDocRanges, previousSelectionOptions } = historyParams;
|
|
21581
22281
|
return {
|
|
21582
22282
|
...changeStateInfo,
|
|
21583
22283
|
redoState: {
|
|
21584
22284
|
...changeStateInfo.redoState,
|
|
21585
|
-
actions: redoMutationParams.actions
|
|
22285
|
+
actions: redoMutationParams.actions,
|
|
22286
|
+
textRanges: redoMutationParams.textRanges,
|
|
22287
|
+
options: redoMutationParams.options,
|
|
22288
|
+
isEditing: redoMutationParams.isEditing
|
|
21586
22289
|
},
|
|
21587
22290
|
undoState: {
|
|
21588
22291
|
...changeStateInfo.undoState,
|
|
21589
22292
|
actions: undoMutationParams.actions,
|
|
21590
|
-
textRanges: [previousActiveRange]
|
|
22293
|
+
textRanges: previousDocRanges.length ? previousDocRanges : [previousActiveRange],
|
|
22294
|
+
options: previousSelectionOptions ?? void 0
|
|
21591
22295
|
}
|
|
21592
22296
|
};
|
|
21593
22297
|
}
|
|
@@ -22633,4 +23337,4 @@ const RichTextEditor = (props) => {
|
|
|
22633
23337
|
};
|
|
22634
23338
|
|
|
22635
23339
|
//#endregion
|
|
22636
|
-
export { AfterSpaceCommand, AlignCenterCommand, AlignJustifyCommand, AlignLeftCommand, AlignMenuItemFactory, AlignOperationCommand, AlignRightCommand, BackgroundColorSelectorMenuItemFactory, BoldMenuItemFactory, BreakLineCommand, BulletListCommand, ChangeListNestingLevelCommand, ChangeListNestingLevelType, ChangeListTypeCommand, CheckListCommand, CoverContentCommand, CreateDocTableCommand, CutContentCommand, DEFAULT_DOC_FIT_TO_WIDTH_OPTIONS, DOCS_COMPONENT_BACKGROUND_LAYER_INDEX, DOCS_COMPONENT_DEFAULT_Z_INDEX, DOCS_COMPONENT_HEADER_LAYER_INDEX, DOCS_COMPONENT_MAIN_LAYER_INDEX, DOCS_UI_PLUGIN_CONFIG_KEY, DOCS_VIEW_KEY, DOC_CONTENT_INSERT_MENU_ID, DOC_CUSTOM_RANGE_CHROME_BACKGROUND_ALPHA, DOC_CUSTOM_RANGE_CHROME_RADIUS, DOC_EMBED_INTERACTION_BOUNDARY_OWNER_ATTRIBUTE, DOC_PARAGRAPH_T_ALIGN_MENU_ID, DOC_PARAGRAPH_T_COLORS_MENU_ID, DOC_PARAGRAPH_T_DIVIDER_MENU_ID, DOC_PARAGRAPH_T_EDIT_MENU_ID, DOC_PARAGRAPH_T_INSERT_BELOW_MENU_ID, DOC_PARAGRAPH_T_INSERT_MENU_ID, DOC_TABLE_BLOCK_MENU_ID, DOC_VERTICAL_PADDING, DeleteCurrentParagraphCommand, DeleteCustomBlockCommand, DeleteLeftCommand, DeleteRightCommand, DocAutoFormatService, DocBackScrollRenderController, DocCanvasPopManagerService, DocClipboardPasteAdapterService, DocCopyCommand, DocCreateTableOperation, DocCutCommand, DocEventManagerService, DocFloatMenuService, DocHtmlExportService, DocIMEInputManagerService, DocPageLayoutService, DocParagraphMenuService, DocParagraphPlaceholderRenderController, DocPasteCommand, DocPrintInterceptorService, DocRenderController, DocSelectAllCommand, DocSelectionRenderService, DocTableDeleteColumnsCommand, DocTableDeleteRowsCommand, DocTableDeleteTableCommand, DocTableInsertColumnCommand, DocTableInsertColumnLeftCommand, DocTableInsertColumnRightCommand, DocTableInsertRowAboveCommand, DocTableInsertRowBellowCommand, DocTableInsertRowCommand, DocTableTabCommand, DocUIController, DocViewScaleService, DocsRenderService, menuSchema as DocsUIMenuSchema, EMPTY_PARAGRAPH_MENU_ID, Editor, EditorService, EnterCommand, FLOAT_TEXT_STYLE_MENU_ID, FLOAT_TOOLBAR_MENU_POSITION, FloatTextStyleMenuItemFactory, FontFamilySelectorMenuItemFactory, FontSizeSelectorMenuItemFactory, HorizontalLineCommand, IDocClipboardPasteAdapterService, IDocClipboardService, IDocEmbedInteractionBoundaryService, IDocEmbedRuntimeFocusCoordinator, IEditorService, IMEInputCommand, INSERT_BELLOW_MENU_ID, InnerPasteCommand, InsertCustomRangeCommand, ItalicMenuItemFactory, ListOperationCommand, MergeTwoParagraphCommand, MoveCursorOperation, MoveDocBlockCommand, MoveSelectionOperation, NORMAL_TEXT_SELECTION_PLUGIN_NAME, NodePositionConvertToCursor, NodePositionConvertToRectRange, OrderListCommand, ParagraphMenuInsertBelowSubmenuItemFactory, LarkPastePlugin as PastePluginLark, UniverPastePlugin as PastePluginUniver, WordPastePlugin as PastePluginWord, QuickListCommand, RectRange, ReplaceSelectionCommand, ReplaceSnapshotCommand, ReplaceTextRunsCommand, ResetInlineFormatTextBackgroundColorCommand, ResetInlineFormatTextColorCommand, RichTextEditor, SetDocZoomRatioCommand, SetDocZoomRatioOperation, SetInlineFormatBoldCommand, SetInlineFormatCommand, SetInlineFormatFontFamilyCommand, SetInlineFormatFontSizeCommand, SetInlineFormatItalicCommand, SetInlineFormatStrikethroughCommand, SetInlineFormatSubscriptCommand, SetInlineFormatSuperscriptCommand, SetInlineFormatTextBackgroundColorCommand, SetInlineFormatTextColorCommand, SetInlineFormatTextFillCommand, SetInlineFormatUnderlineCommand, SetParagraphNamedStyleCommand, StrikeThroughMenuItemFactory, SwitchDocModeCommand, TEXT_RANGE_LAYER_INDEX, TabCommand, TextColorSelectorMenuItemFactory, TextRange, ToggleCheckListCommand, UnderlineMenuItemFactory, UniverDocsUIPlugin, VIEWPORT_KEY, addCustomDecorationBySelectionFactory, addCustomDecorationFactory, buildMoveDocBlockActions, calcDocFitToWidthScale, calcDocRangePositions, collectDocsTableLikeEmbedChildUnitIds, convertBodyToHtml, convertPositionsToRectRanges, createDefaultDocsTableLikeCustomBlockBleedViewport, createDocsCustomBlockSizeRefreshScheduler, createEditorUndoRedoKeyboardConfig, deleteCustomDecorationFactory, disableMenuWhenHeaderFooterEditing, drawDocCustomRangeChrome, executeEditorUndoRedoCommand, genTableSource, generateParagraphs, getAnchorBounding, getCanvasOffsetByEngine, getCommandSkeleton, getCursorWhenDelete, getCutActionsFromDocRanges, getDocBlockRangeMenuId, getDocObjectById, getEmptyTableCell, getEmptyTableRow, getLineBounding, getListMarkerFallbackBound, getListParagraphContextMenuHit, getOneTextSelectionRange, getStyleInTextRange, getTableColumn, getTextRangeFromCharIndex, hasParagraphInTable, hideMenuWhenSelectionInBlockRange, isInSameTableCell, isTextRangeInAnyBlockRange, isValidRectRange, neoGetDocObject, normalizeDocFitToWidthOptions, resolveDocCustomRangeChromeTheme, resolveDocFitBaseWidth, resolveDocViewScale, resolveDocsCustomBlockRenderViewport, resolveDocsTableLikeCustomBlockBleedViewport, resolveDocsTableLikeCustomBlockContentHeight, resolveDocsTableLikeCustomBlockContentWidth, scrollDocsTableLikeCustomBlockLive, shouldRefreshDocsCustomBlockSizeForCommand, useEditor, useEditorClickOutside, useIsFocusing, useKeyboardEvent, useLeftAndRightArrow, useOnChange, useResize, whenDocAndEditorFocused };
|
|
23340
|
+
export { AfterSpaceCommand, AlignCenterCommand, AlignJustifyCommand, AlignLeftCommand, AlignMenuItemFactory, AlignOperationCommand, AlignRightCommand, BackgroundColorSelectorMenuItemFactory, BoldMenuItemFactory, BreakLineCommand, BulletListCommand, BulletListTypePicker, ChangeListNestingLevelCommand, ChangeListNestingLevelType, ChangeListTypeCommand, CheckListCommand, CoverContentCommand, CreateDocTableCommand, CutContentCommand, DEFAULT_DOC_FIT_TO_WIDTH_OPTIONS, DOCS_COMPONENT_BACKGROUND_LAYER_INDEX, DOCS_COMPONENT_DEFAULT_Z_INDEX, DOCS_COMPONENT_HEADER_LAYER_INDEX, DOCS_COMPONENT_MAIN_LAYER_INDEX, DOCS_UI_PLUGIN_CONFIG_KEY, DOCS_VIEW_KEY, DOC_CONTENT_INSERT_MENU_ID, DOC_CUSTOM_RANGE_CHROME_BACKGROUND_ALPHA, DOC_CUSTOM_RANGE_CHROME_RADIUS, DOC_EMBED_INTERACTION_BOUNDARY_OWNER_ATTRIBUTE, DOC_PARAGRAPH_T_ALIGN_MENU_ID, DOC_PARAGRAPH_T_COLORS_MENU_ID, DOC_PARAGRAPH_T_DIVIDER_MENU_ID, DOC_PARAGRAPH_T_EDIT_MENU_ID, DOC_PARAGRAPH_T_INSERT_BELOW_MENU_ID, DOC_PARAGRAPH_T_INSERT_MENU_ID, DOC_TABLE_BLOCK_MENU_ID, DOC_VERTICAL_PADDING, DeleteCurrentParagraphCommand, DeleteCustomBlockCommand, DeleteLeftCommand, DeleteRightCommand, DocAutoFormatService, DocBackScrollRenderController, DocCanvasPopManagerService, DocClipboardPasteAdapterService, DocCopyCommand, DocCreateTableOperation, DocCutCommand, DocEventManagerService, DocFloatMenuService, DocHtmlExportService, DocIMEInputManagerService, DocPageLayoutService, DocParagraphMenuService, DocParagraphPlaceholderRenderController, DocPasteCommand, DocPrintInterceptorService, DocRenderController, DocSelectAllCommand, DocSelectionRenderService, DocTableDeleteColumnsCommand, DocTableDeleteRowsCommand, DocTableDeleteTableCommand, DocTableInsertColumnCommand, DocTableInsertColumnLeftCommand, DocTableInsertColumnRightCommand, DocTableInsertRowAboveCommand, DocTableInsertRowBellowCommand, DocTableInsertRowCommand, DocTableTabCommand, DocUIController, DocViewScaleService, DocsRenderService, menuSchema as DocsUIMenuSchema, EMPTY_PARAGRAPH_MENU_ID, Editor, EditorService, EnterCommand, FLOAT_TEXT_STYLE_MENU_ID, FLOAT_TOOLBAR_MENU_POSITION, FloatTextStyleMenuItemFactory, FontFamilySelectorMenuItemFactory, FontSizeSelectorMenuItemFactory, HorizontalLineCommand, IDocClipboardPasteAdapterService, IDocClipboardService, IDocEmbedInteractionBoundaryService, IDocEmbedRuntimeFocusCoordinator, IEditorService, IMEInputCommand, INSERT_BELLOW_MENU_ID, InnerPasteCommand, InsertCustomRangeCommand, ItalicMenuItemFactory, ListOperationCommand, MergeTwoParagraphCommand, MoveCursorOperation, MoveDocBlockCommand, MoveSelectionOperation, NORMAL_TEXT_SELECTION_PLUGIN_NAME, NodePositionConvertToCursor, NodePositionConvertToRectRange, OrderListCommand, OrderListTypePicker, ParagraphMenuInsertBelowSubmenuItemFactory, LarkPastePlugin as PastePluginLark, UniverPastePlugin as PastePluginUniver, WordPastePlugin as PastePluginWord, QuickListCommand, RectRange, ReplaceSelectionCommand, ReplaceSnapshotCommand, ReplaceTextRunsCommand, ResetInlineFormatTextBackgroundColorCommand, ResetInlineFormatTextColorCommand, RichTextEditor, SetDocZoomRatioCommand, SetDocZoomRatioOperation, SetInlineFormatBoldCommand, SetInlineFormatCommand, SetInlineFormatFontFamilyCommand, SetInlineFormatFontSizeCommand, SetInlineFormatItalicCommand, SetInlineFormatStrikethroughCommand, SetInlineFormatSubscriptCommand, SetInlineFormatSuperscriptCommand, SetInlineFormatTextBackgroundColorCommand, SetInlineFormatTextColorCommand, SetInlineFormatTextFillCommand, SetInlineFormatUnderlineCommand, SetParagraphNamedStyleCommand, StrikeThroughMenuItemFactory, SwitchDocModeCommand, TEXT_RANGE_LAYER_INDEX, TabCommand, TextColorSelectorMenuItemFactory, TextRange, ToggleCheckListCommand, UnderlineMenuItemFactory, UniverDocsUIPlugin, VIEWPORT_KEY, addCustomDecorationBySelectionFactory, addCustomDecorationFactory, buildMoveDocBlockActions, calcDocFitToWidthScale, calcDocRangePositions, collectDocsTableLikeEmbedChildUnitIds, convertBodyToHtml, convertPositionsToRectRanges, createDefaultDocsTableLikeCustomBlockBleedViewport, createDocsCustomBlockSizeRefreshScheduler, createEditorUndoRedoKeyboardConfig, deleteCustomDecorationFactory, disableMenuWhenHeaderFooterEditing, drawDocCustomRangeChrome, executeEditorUndoRedoCommand, genTableSource, generateParagraphs, getAnchorBounding, getCanvasOffsetByEngine, getCommandSkeleton, getCursorWhenDelete, getCutActionsFromDocRanges, getDocBlockRangeMenuId, getDocObjectById, getEmptyTableCell, getEmptyTableRow, getLineBounding, getListMarkerFallbackBound, getListParagraphContextMenuHit, getOneTextSelectionRange, getStyleInTextRange, getTableColumn, getTextRangeFromCharIndex, hasParagraphInTable, hideMenuWhenSelectionInBlockRange, isInSameTableCell, isTextRangeInAnyBlockRange, isValidRectRange, neoGetDocObject, normalizeDocFitToWidthOptions, resolveDocCustomRangeChromeTheme, resolveDocFitBaseWidth, resolveDocViewScale, resolveDocsCustomBlockRenderViewport, resolveDocsTableLikeCustomBlockBleedViewport, resolveDocsTableLikeCustomBlockContentHeight, resolveDocsTableLikeCustomBlockContentWidth, scrollDocsTableLikeCustomBlockLive, shouldRefreshDocsCustomBlockSizeForCommand, useEditor, useEditorClickOutside, useIsFocusing, useKeyboardEvent, useLeftAndRightArrow, useOnChange, useResize, whenDocAndEditorFocused };
|