@univerjs/docs-ui 0.2.6 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/lib/cjs/index.js +7 -4
  2. package/lib/es/index.js +1907 -640
  3. package/lib/index.css +1 -1
  4. package/lib/locale/en-US.json +38 -0
  5. package/lib/locale/ru-RU.json +39 -1
  6. package/lib/locale/vi-VN.json +39 -1
  7. package/lib/locale/zh-CN.json +40 -2
  8. package/lib/locale/zh-TW.json +39 -1
  9. package/lib/types/basics/interfaces/component-config/i-doc-ui-plugin-config.d.ts +2 -0
  10. package/lib/types/commands/commands/doc-paragraph-setting.command.d.ts +4 -0
  11. package/lib/types/commands/commands/doc-tab.command.d.ts +8 -0
  12. package/lib/types/commands/operations/doc-create-table.operation.d.ts +3 -0
  13. package/lib/types/commands/operations/doc-paragraph-setting-panel.operation.d.ts +3 -0
  14. package/lib/types/components/list-type-picker/index.d.ts +18 -0
  15. package/lib/types/components/list-type-picker/picker.d.ts +17 -0
  16. package/lib/types/controllers/doc-auto-format.controller.d.ts +11 -0
  17. package/lib/types/controllers/doc-header-footer.controller.d.ts +0 -1
  18. package/lib/types/controllers/doc-paragraph-setting.controller.d.ts +11 -0
  19. package/lib/types/controllers/doc-table.controller.d.ts +12 -0
  20. package/lib/types/controllers/doc-ui.controller.d.ts +12 -10
  21. package/lib/types/controllers/menu/context-menu.d.ts +11 -1
  22. package/lib/types/controllers/menu/menu.d.ts +9 -4
  23. package/lib/types/controllers/render-controllers/doc-checklist.render-controller.d.ts +15 -0
  24. package/lib/types/controllers/render-controllers/doc.render-controller.d.ts +3 -2
  25. package/lib/types/controllers/render-controllers/zoom.render-controller.d.ts +3 -3
  26. package/lib/types/docs-ui-plugin.d.ts +6 -3
  27. package/lib/types/index.d.ts +2 -0
  28. package/lib/types/locale/zh-CN.d.ts +38 -0
  29. package/lib/types/services/clipboard/clipboard.service.d.ts +2 -2
  30. package/lib/types/services/clipboard/copy-content-cache.d.ts +3 -3
  31. package/lib/types/services/clipboard/html-to-udm/converter.d.ts +5 -2
  32. package/lib/types/services/clipboard/html-to-udm/paste-plugins/type.d.ts +2 -2
  33. package/lib/types/services/clipboard/udm-to-html/convertor.d.ts +1 -1
  34. package/lib/types/services/doc-hover-manager.service.d.ts +3 -1
  35. package/lib/types/shortcuts/format.shortcut.d.ts +4 -0
  36. package/lib/types/views/paragraph-setting/Setting.d.ts +17 -0
  37. package/lib/types/views/paragraph-setting/hook/utils.d.ts +11 -0
  38. package/lib/types/views/paragraph-setting/index.d.ts +3 -0
  39. package/lib/types/views/table/create/TableCreate.d.ts +11 -0
  40. package/lib/types/views/table/create/component-name.d.ts +16 -0
  41. package/lib/umd/index.js +7 -4
  42. package/package.json +16 -13
  43. /package/lib/types/{controllers/shortcut → shortcuts}/toolbar.shortcut.d.ts +0 -0
package/lib/es/index.js CHANGED
@@ -2,13 +2,14 @@ var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value;
3
3
  var __name = (target, value) => __defProp(target, "name", { value, configurable: !0 });
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != "symbol" ? key + "" : key, value);
5
- import { FOCUSING_DOC, FOCUSING_UNIVER_EDITOR, FOCUSING_COMMON_DRAWINGS, FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE, Tools, LRUMap, BaselineOffset, BooleanNumber, ColorKit, DataStreamTreeTokenType, CustomRangeType, skipParseTagNames, createIdentifier, Inject, IUniverInstanceService, ILogService, ICommandService, Disposable, SliceBodyType, normalizeBody, UniverInstanceType, toDisposable, RxDisposable, Direction, EDITOR_ACTIVATED, LocaleService, Injector, Optional, useDependency, useObservable, CommandType, DocumentFlavor, JSONX, ThemeService, HorizontalAlign, connectInjector, OnLifecycle, LifecycleStages, IContextService, checkForSubstrings, IConfigService, isInternalEditorID, DisposableCollection, DEFAULT_EMPTY_DOCUMENT_VALUE, DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY, DOCS_NORMAL_EDITOR_UNIT_ID_KEY, DOCS_ZEN_EDITOR_UNIT_ID_KEY, fromEventSubject, Plugin, ObjectRelativeFromH, ObjectRelativeFromV } from "@univerjs/core";
6
- import { IClipboardInterfaceService, PLAIN_TEXT_CLIPBOARD_MIME_TYPE, HTML_CLIPBOARD_MIME_TYPE, IEditorService, KeyCode, MetaKeys, ILayoutService, ISidebarService, ComponentManager, MenuGroup, MenuItemType, MenuPosition, getMenuHiddenObservable, FONT_FAMILY_LIST, FONT_SIZE_LIST, getHeaderFooterMenuHiddenObservable, CopyCommand, CutCommand, PasteCommand, FontFamily, FontFamilyItem, FontSize, BuiltInUIPart, IMenuService, IUIPartsService, IShortcutService, SetEditorResizeOperation, ICanvasPopupService, IContextMenuService } from "@univerjs/ui";
7
- import { TextSelectionManagerService, DocCustomRangeService, CutContentCommand, InnerPasteCommand, getDeleteSelection, DocSkeletonManagerService, VIEWPORT_KEY, getDocObject, MoveCursorOperation, MoveSelectionOperation, SelectAllOperation, SetDocZoomRatioOperation, neoGetDocObject, RichTextEditingMutation, SetInlineFormatBoldCommand, SetTextSelectionsOperation, SetInlineFormatCommand, SetInlineFormatItalicCommand, SetInlineFormatUnderlineCommand, SetInlineFormatStrikethroughCommand, SetInlineFormatSubscriptCommand, SetInlineFormatSuperscriptCommand, SetInlineFormatFontFamilyCommand, SetInlineFormatFontSizeCommand, SetInlineFormatTextColorCommand, AlignLeftCommand, AlignOperationCommand, AlignCenterCommand, AlignRightCommand, AlignJustifyCommand, OrderListCommand, BulletListCommand, ResetInlineFormatTextBackgroundColorCommand, SetInlineFormatTextBackgroundColorCommand, DeleteLeftCommand, BreakLineCommand, DeleteRightCommand, CoverContentCommand, DOCS_COMPONENT_MAIN_LAYER_INDEX, DOCS_COMPONENT_HEADER_LAYER_INDEX, DOCS_VIEW_KEY, DOCS_COMPONENT_DEFAULT_Z_INDEX, DOCS_COMPONENT_BACKGROUND_LAYER_INDEX, SetDocZoomRatioCommand, DocInterceptorService } from "@univerjs/docs";
8
- import { pixelToPt, ptToPixel, NodePositionConvertToCursor, getAnchorBounding, IRenderManagerService, ITextSelectionRenderManager, Shape, DocumentEditArea, PageLayoutType, Vector2, Rect, Path, ScrollBar, Viewport, Layer, Documents, DocBackground, CURSOR_TYPE, pxToNum, getLineBounding, TRANSFORM_CHANGE_OBSERVABLE_TYPE } from "@univerjs/engine-render";
9
- import { takeUntil, Observable, combineLatest, fromEvent, BehaviorSubject, map, filter, throttleTime, debounceTime } from "rxjs";
10
- import require$$0, { useMemo, useCallback, useState, useEffect } from "react";
11
- import { Slider, Checkbox, InputNumber, Button, ColorPicker } from "@univerjs/design";
5
+ import { FOCUSING_DOC, FOCUSING_UNIVER_EDITOR, FOCUSING_COMMON_DRAWINGS, FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE, Tools, LRUMap, BaselineOffset, BooleanNumber, ColorKit, DataStreamTreeTokenType, CustomRangeType, skipParseTagNames, DataStreamTreeNodeType, createIdentifier, Inject, IUniverInstanceService, ILogService, ICommandService, Disposable, SliceBodyType, normalizeBody, UniverInstanceType, toDisposable, getBodySlice, RxDisposable, Direction, EDITOR_ACTIVATED, LocaleService, Injector, Optional, useDependency, DocumentFlavor, CommandType, JSONX, useObservable, PresetListType, ThemeService, HorizontalAlign, MemoryCursor, TextX, TextXActionType, UpdateDocsAttributeType, generateRandomId, OnLifecycle, LifecycleStages, connectInjector, IContextService, checkForSubstrings, IConfigService, isInternalEditorID, DisposableCollection, DEFAULT_EMPTY_DOCUMENT_VALUE, DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY, DOCS_NORMAL_EDITOR_UNIT_ID_KEY, DOCS_ZEN_EDITOR_UNIT_ID_KEY, fromEventSubject, QuickListTypeMap, Plugin, mergeOverrideWithDependencies, ObjectRelativeFromH, ObjectRelativeFromV } from "@univerjs/core";
6
+ import { IClipboardInterfaceService, PLAIN_TEXT_CLIPBOARD_MIME_TYPE, HTML_CLIPBOARD_MIME_TYPE, IEditorService, KeyCode, MetaKeys, ILayoutService, ComponentManager, ISidebarService, IConfirmService, MenuGroup, MenuItemType, MenuPosition, getMenuHiddenObservable, FONT_FAMILY_LIST, FONT_SIZE_LIST, getHeaderFooterMenuHiddenObservable, CopyCommand, CutCommand, PasteCommand, FontFamily, FontFamilyItem, FontSize, BuiltInUIPart, IMenuService, IUIPartsService, IShortcutService, SetEditorResizeOperation, ICanvasPopupService, IContextMenuService } from "@univerjs/ui";
7
+ import { getEmptyTableCell, getEmptyTableRow, genTableSource, getTableColumn, TextSelectionManagerService, DocCustomRangeService, getCursorWhenDelete, CutContentCommand, InnerPasteCommand, getDeleteSelection, DocSkeletonManagerService, VIEWPORT_KEY, getDocObject, MoveCursorOperation, MoveSelectionOperation, SelectAllOperation, neoGetDocObject, RichTextEditingMutation, SetDocZoomRatioOperation, SetInlineFormatBoldCommand, SetInlineFormatItalicCommand, SetInlineFormatUnderlineCommand, SetInlineFormatStrikethroughCommand, SetInlineFormatSubscriptCommand, SetInlineFormatSuperscriptCommand, AlignLeftCommand, AlignRightCommand, AlignCenterCommand, AlignJustifyCommand, OrderListCommand, BulletListCommand, TabCommand, CreateDocTableCommand, SetTextSelectionsOperation, SetInlineFormatCommand, SetInlineFormatFontFamilyCommand, SetInlineFormatFontSizeCommand, SetInlineFormatTextColorCommand, AlignOperationCommand, CheckListCommand, ResetInlineFormatTextBackgroundColorCommand, SetInlineFormatTextBackgroundColorCommand, getCommandSkeleton, getParagraphsInRange, getParagraphsInRanges, serializeDocRange, getRichTextEditPath, DeleteLeftCommand, DocTableInsertRowAboveCommand, DocTableInsertRowBellowCommand, DocTableInsertColumnLeftCommand, DocTableInsertColumnRightCommand, DocTableDeleteRowsCommand, DocTableDeleteColumnsCommand, DocTableDeleteTableCommand, EnterCommand, DeleteRightCommand, CoverContentCommand, DOCS_COMPONENT_MAIN_LAYER_INDEX, DOCS_COMPONENT_HEADER_LAYER_INDEX, DOCS_VIEW_KEY, DOCS_COMPONENT_DEFAULT_Z_INDEX, DOCS_COMPONENT_BACKGROUND_LAYER_INDEX, SetDocZoomRatioCommand, ChangeListNestingLevelCommand, ChangeListNestingLevelType, AfterSpaceCommand, QuickListCommand, ListOperationCommand, BreakLineCommand, DocAutoFormatService, ToggleCheckListCommand, DocTableTabCommand, DocTableShiftTabCommand, DocInterceptorService } from "@univerjs/docs";
8
+ import { pixelToPt, ptToPixel, parseDataStreamToTree, DOC_RANGE_TYPE, NodePositionConvertToCursor, getAnchorBounding, IRenderManagerService, ITextSelectionRenderManager, Shape, DocumentEditArea, PageLayoutType, Vector2, Rect, Path, getNumberUnitValue, ScrollBar, Viewport, Layer, Documents, DocBackground, CURSOR_TYPE, pxToNum, getLineBounding, TRANSFORM_CHANGE_OBSERVABLE_TYPE, getParagraphByGlyph, GlyphType, isInSameTableCell } from "@univerjs/engine-render";
9
+ import { takeUntil, Observable, combineLatest, map, fromEvent, BehaviorSubject, filter, throttleTime, Subject, debounceTime } from "rxjs";
10
+ import * as require$$0 from "react";
11
+ import require$$0__default, { forwardRef, useRef, createElement, useState, useEffect, useMemo, useCallback } from "react";
12
+ import { Checkbox, InputNumber, Button, Slider, Tooltip, ColorPicker } from "@univerjs/design";
12
13
  import clsx from "clsx";
13
14
  function whenDocAndEditorFocused(contextService) {
14
15
  return contextService.getContextValue(FOCUSING_DOC) && contextService.getContextValue(FOCUSING_UNIVER_EDITOR) && !contextService.getContextValue(FOCUSING_COMMON_DRAWINGS);
@@ -135,8 +136,9 @@ function matchFilter(node, filter2) {
135
136
  return typeof filter2 == "string" ? tagName === filter2 : Array.isArray(filter2) ? filter2.some((name) => name === tagName) : filter2(node);
136
137
  }
137
138
  __name(matchFilter, "matchFilter");
138
- const _HtmlToUDMService = class _HtmlToUDMService {
139
+ const DEFAULT_TABLE_WIDTH = 600, _HtmlToUDMService = class _HtmlToUDMService {
139
140
  constructor() {
141
+ __publicField(this, "_tableCache", []);
140
142
  __publicField(this, "_styleCache", /* @__PURE__ */ new Map());
141
143
  __publicField(this, "_styleRules", []);
142
144
  __publicField(this, "_afterProcessRules", []);
@@ -147,37 +149,41 @@ const _HtmlToUDMService = class _HtmlToUDMService {
147
149
  this._pluginList.push(plugin);
148
150
  }
149
151
  convert(html) {
150
- const pastePlugin = _HtmlToUDMService._pluginList.find((plugin) => plugin.checkPasteType(html)), dom = parseToDom(html), newDocBody = {
151
- dataStream: "",
152
- textRuns: []
152
+ const pastePlugin = _HtmlToUDMService._pluginList.find((plugin) => plugin.checkPasteType(html)), dom = parseToDom(html), docData = {
153
+ body: {
154
+ dataStream: "",
155
+ textRuns: []
156
+ },
157
+ tableSource: {}
153
158
  };
154
- return pastePlugin && (this._styleRules = [...pastePlugin.stylesRules], this._afterProcessRules = [...pastePlugin.afterProcessRules]), this._styleCache.clear(), this._process(null, dom == null ? void 0 : dom.childNodes, newDocBody), this._styleCache.clear(), this._styleRules = [], this._afterProcessRules = [], newDocBody;
159
+ return pastePlugin && (this._styleRules = [...pastePlugin.stylesRules], this._afterProcessRules = [...pastePlugin.afterProcessRules]), this._tableCache = [], this._styleCache.clear(), this._process(null, dom.childNodes, docData), this._styleCache.clear(), this._styleRules = [], this._afterProcessRules = [], docData;
155
160
  }
156
161
  _process(parent, nodes, doc) {
157
- var _a19, _b, _c;
162
+ var _a23, _b, _c;
163
+ const body = doc.body;
158
164
  for (const node of nodes)
159
165
  if (node.nodeType === Node.TEXT_NODE) {
160
- if (((_a19 = node.nodeValue) == null ? void 0 : _a19.trim()) === "")
166
+ if (((_a23 = node.nodeValue) == null ? void 0 : _a23.trim()) === "")
161
167
  continue;
162
168
  let text = (_b = node.nodeValue) == null ? void 0 : _b.replace(/[\r\n]/g, ""), style;
163
169
  if (parent && parent.nodeType === Node.ELEMENT_NODE && parent.tagName.toUpperCase() === "A") {
164
170
  const id = Tools.generateRandomId();
165
- text = `${DataStreamTreeTokenType.CUSTOM_RANGE_START}${text}${DataStreamTreeTokenType.CUSTOM_RANGE_END}`, doc.customRanges = [
166
- ...(_c = doc.customRanges) != null ? _c : [],
171
+ text = `${DataStreamTreeTokenType.CUSTOM_RANGE_START}${text}${DataStreamTreeTokenType.CUSTOM_RANGE_END}`, body.customRanges = [
172
+ ...(_c = body.customRanges) != null ? _c : [],
167
173
  {
168
- startIndex: doc.dataStream.length,
169
- endIndex: doc.dataStream.length + text.length - 1,
174
+ startIndex: body.dataStream.length,
175
+ endIndex: body.dataStream.length + text.length - 1,
170
176
  rangeId: id,
171
177
  rangeType: CustomRangeType.HYPERLINK
172
178
  }
173
- ], doc.payloads = {
174
- ...doc.payloads,
179
+ ], body.payloads = {
180
+ ...body.payloads,
175
181
  [id]: parent.href
176
182
  };
177
183
  }
178
- parent && this._styleCache.has(parent) && (style = this._styleCache.get(parent)), doc.dataStream += text, style && Object.getOwnPropertyNames(style).length && doc.textRuns.push({
179
- st: doc.dataStream.length - text.length,
180
- ed: doc.dataStream.length,
184
+ parent && this._styleCache.has(parent) && (style = this._styleCache.get(parent)), body.dataStream += text, style && Object.getOwnPropertyNames(style).length && body.textRuns.push({
185
+ st: body.dataStream.length - text.length,
186
+ ed: body.dataStream.length,
181
187
  ts: style
182
188
  });
183
189
  } else {
@@ -187,7 +193,7 @@ const _HtmlToUDMService = class _HtmlToUDMService {
187
193
  const parentStyles = parent ? this._styleCache.get(parent) : {}, styleRule = this._styleRules.find(({ filter: filter2 }) => matchFilter(node, filter2)), nodeStyles = styleRule ? styleRule.getStyle(node) : extractNodeStyle(node);
188
194
  this._styleCache.set(node, { ...parentStyles, ...nodeStyles });
189
195
  const { childNodes } = node;
190
- this._process(node, childNodes, doc);
196
+ this._processBeforeTable(node, doc), this._process(node, childNodes, doc), this._processAfterTable(node, doc);
191
197
  const afterProcessRule = this._afterProcessRules.find(
192
198
  ({ filter: filter2 }) => matchFilter(node, filter2)
193
199
  );
@@ -195,6 +201,61 @@ const _HtmlToUDMService = class _HtmlToUDMService {
195
201
  }
196
202
  }
197
203
  }
204
+ _processBeforeTable(node, doc) {
205
+ var _a23;
206
+ const tagName = node.tagName.toUpperCase(), body = doc.body;
207
+ switch (tagName) {
208
+ case "TABLE": {
209
+ body.dataStream[body.dataStream.length - 1] !== "\r" && (body.dataStream += "\r", (_a23 = body.paragraphs) == null || _a23.push({
210
+ startIndex: body.dataStream.length - 1
211
+ }));
212
+ const table = genTableSource(0, 0, DEFAULT_TABLE_WIDTH);
213
+ this._tableCache.push({
214
+ table,
215
+ startIndex: body.dataStream.length
216
+ }), body.dataStream += DataStreamTreeTokenType.TABLE_START;
217
+ break;
218
+ }
219
+ case "TR": {
220
+ const row = getEmptyTableRow(0);
221
+ this._tableCache[this._tableCache.length - 1].table.tableRows.push(row), body.dataStream += DataStreamTreeTokenType.TABLE_ROW_START;
222
+ break;
223
+ }
224
+ case "TD": {
225
+ const cell = getEmptyTableCell(), lastTable = this._tableCache[this._tableCache.length - 1].table;
226
+ lastTable.tableRows[lastTable.tableRows.length - 1].tableCells.push(cell), body.dataStream += DataStreamTreeTokenType.TABLE_CELL_START;
227
+ break;
228
+ }
229
+ }
230
+ }
231
+ _processAfterTable(node, doc) {
232
+ var _a23;
233
+ const tagName = node.tagName.toUpperCase(), body = doc.body;
234
+ doc.tableSource == null && (doc.tableSource = {}), body.tables == null && (body.tables = []), body.sectionBreaks == null && (body.sectionBreaks = []);
235
+ const { tableSource } = doc;
236
+ switch (tagName) {
237
+ case "TABLE": {
238
+ const tableCache = this._tableCache.pop(), { startIndex, table } = tableCache, colCount = table.tableRows[0].tableCells.length, tableColumn = getTableColumn(DEFAULT_TABLE_WIDTH / colCount), tableColumns = [...new Array(colCount).fill(null).map(() => Tools.deepClone(tableColumn))];
239
+ table.tableColumns = tableColumns, tableSource[table.tableId] = table, body.dataStream += DataStreamTreeTokenType.TABLE_END, body.tables.push({
240
+ startIndex,
241
+ endIndex: body.dataStream.length - 1,
242
+ tableId: table.tableId
243
+ });
244
+ break;
245
+ }
246
+ case "TR": {
247
+ body.dataStream += DataStreamTreeTokenType.TABLE_ROW_END;
248
+ break;
249
+ }
250
+ case "TD": {
251
+ (_a23 = body.sectionBreaks) == null || _a23.push({
252
+ startIndex: body.dataStream.length
253
+ }), body.dataStream += `
254
+ ${DataStreamTreeTokenType.TABLE_CELL_END}`;
255
+ break;
256
+ }
257
+ }
258
+ }
198
259
  };
199
260
  __name(_HtmlToUDMService, "HtmlToUDMService"), __publicField(_HtmlToUDMService, "_pluginList", []);
200
261
  let HtmlToUDMService = _HtmlToUDMService;
@@ -224,9 +285,10 @@ const wordPastePlugin$1 = {
224
285
  return el.tagName === "DIV" && /ace-line/i.test(el.className);
225
286
  },
226
287
  handler(doc) {
227
- doc.paragraphs == null && (doc.paragraphs = []), doc.paragraphs.push({
228
- startIndex: doc.dataStream.length
229
- }), doc.dataStream += "\r";
288
+ const body = doc.body;
289
+ body.paragraphs == null && (body.paragraphs = []), body.paragraphs.push({
290
+ startIndex: body.dataStream.length
291
+ }), body.dataStream += "\r";
230
292
  }
231
293
  }
232
294
  ]
@@ -247,8 +309,8 @@ function getParagraphStyle(el) {
247
309
  break;
248
310
  }
249
311
  case "line-height": {
250
- const lineHeightValue = Number.parseFloat(cssValue);
251
- paragraphStyle.lineSpacing = lineHeightValue;
312
+ let lineHeightValue = Number.parseFloat(cssValue);
313
+ cssValue.endsWith("%") && (lineHeightValue /= 100), paragraphStyle.lineSpacing = lineHeightValue;
252
314
  break;
253
315
  }
254
316
  }
@@ -276,11 +338,12 @@ const wordPastePlugin = {
276
338
  return el.tagName === "P";
277
339
  },
278
340
  handler(doc, el) {
279
- doc.paragraphs == null && (doc.paragraphs = []);
341
+ const body = doc.body;
342
+ body.paragraphs == null && (body.paragraphs = []);
280
343
  const paragraph = {
281
- startIndex: doc.dataStream.length
344
+ startIndex: body.dataStream.length
282
345
  }, paragraphStyle = getParagraphStyle(el);
283
- paragraphStyle && (paragraph.paragraphStyle = paragraphStyle), doc.paragraphs.push(paragraph), doc.dataStream += "\r";
346
+ paragraphStyle && (paragraph.paragraphStyle = paragraphStyle), body.paragraphs.push(paragraph), body.dataStream += "\r";
284
347
  }
285
348
  }
286
349
  ]
@@ -296,11 +359,12 @@ const wordPastePlugin = {
296
359
  return el.tagName === "P" && /UniverNormal/i.test(el.className);
297
360
  },
298
361
  handler(doc, el) {
299
- doc.paragraphs == null && (doc.paragraphs = []);
362
+ const body = doc.body;
363
+ body.paragraphs == null && (body.paragraphs = []);
300
364
  const paragraph = {
301
- startIndex: doc.dataStream.length
365
+ startIndex: body.dataStream.length
302
366
  }, paragraphStyle = getParagraphStyle(el);
303
- paragraphStyle && (paragraph.paragraphStyle = paragraphStyle), doc.paragraphs.push(paragraph), doc.dataStream += "\r";
367
+ paragraphStyle && (paragraph.paragraphStyle = paragraphStyle), body.paragraphs.push(paragraph), body.dataStream += "\r";
304
368
  }
305
369
  }
306
370
  ]
@@ -330,42 +394,102 @@ function getBodySliceHtml(body, startIndex, endIndex) {
330
394
  return cursorIndex !== endIndex && spanList.push(dataStream.slice(cursorIndex, endIndex)), spanList.join("");
331
395
  }
332
396
  __name(getBodySliceHtml, "getBodySliceHtml");
333
- function convertBodyToHtml(body, withParagraphInfo = !0) {
334
- var _a19;
335
- if (withParagraphInfo && ((_a19 = body.paragraphs) != null && _a19.length)) {
336
- const { dataStream, paragraphs = [] } = body;
337
- let result = "", cursorIndex = -1;
338
- for (const paragraph of paragraphs) {
339
- const { startIndex, paragraphStyle = {} } = paragraph, { spaceAbove, spaceBelow, lineSpacing } = paragraphStyle, style = [];
340
- spaceAbove != null && (typeof spaceAbove == "number" ? style.push(`margin-top: ${spaceAbove}px`) : style.push(`margin-top: ${spaceAbove.v}px`)), spaceBelow != null && (typeof spaceBelow == "number" ? style.push(`margin-bottom: ${spaceBelow}px`) : style.push(`margin-bottom: ${spaceBelow.v}px`)), lineSpacing != null && style.push(`line-height: ${lineSpacing}`), startIndex > cursorIndex + 1 ? result += `<p class="UniverNormal" ${style.length ? `style="${style.join("; ")};"` : ""}>${getBodySliceHtml(body, cursorIndex + 1, startIndex)}</p>` : result += `<p class="UniverNormal" ${style.length ? `style="${style.join("; ")};"` : ""}></p>`, cursorIndex = startIndex;
341
- }
342
- return cursorIndex !== dataStream.length && (result += getBodySliceHtml(body, cursorIndex, dataStream.length)), result;
343
- } else
344
- return getBodySliceHtml(body, 0, body.dataStream.length);
397
+ function convertBodyToHtml(body) {
398
+ const { paragraphs = [], sectionBreaks = [] } = body;
399
+ let { dataStream } = body;
400
+ dataStream.endsWith(`\r
401
+ `) || (dataStream += `\r
402
+ `, paragraphs.push({
403
+ startIndex: dataStream.length - 2
404
+ }), sectionBreaks.push({
405
+ startIndex: dataStream.length - 1
406
+ }), body.dataStream = dataStream, body.paragraphs = paragraphs, body.sectionBreaks = sectionBreaks);
407
+ const result = { html: "" }, nodeList = parseDataStreamToTree(dataStream);
408
+ for (const node of nodeList)
409
+ processNode(node, body, result);
410
+ return result.html;
345
411
  }
346
412
  __name(convertBodyToHtml, "convertBodyToHtml");
413
+ function processNode(node, body, result) {
414
+ var _a23;
415
+ switch (node.nodeType) {
416
+ case DataStreamTreeNodeType.SECTION_BREAK: {
417
+ for (const n2 of node.children)
418
+ processNode(n2, body, result);
419
+ break;
420
+ }
421
+ case DataStreamTreeNodeType.PARAGRAPH: {
422
+ const { children, startIndex, endIndex } = node, paragraph = (_a23 = body.paragraphs.find((p2) => p2.startIndex === endIndex)) != null ? _a23 : {}, { paragraphStyle = {} } = paragraph, { spaceAbove, spaceBelow, lineSpacing } = paragraphStyle, style = [];
423
+ if (spaceAbove != null && (typeof spaceAbove == "number" ? style.push(`margin-top: ${spaceAbove}px`) : style.push(`margin-top: ${spaceAbove.v}px`)), spaceBelow != null && (typeof spaceBelow == "number" ? style.push(`margin-bottom: ${spaceBelow}px`) : style.push(`margin-bottom: ${spaceBelow.v}px`)), lineSpacing != null && style.push(`line-height: ${lineSpacing}`), result.html += `<p class="UniverNormal" ${style.length ? `style="${style.join("; ")};"` : ""}>`, children.length)
424
+ for (const table of children)
425
+ processNode(table, body, result);
426
+ result.html += `${getBodySliceHtml(body, startIndex, endIndex)}</p>`;
427
+ break;
428
+ }
429
+ case DataStreamTreeNodeType.TABLE: {
430
+ const { children } = node;
431
+ result.html += '<table class="UniverTable" style="width: 100%; border-collapse: collapse;"><tbody>';
432
+ for (const row of children)
433
+ processNode(row, body, result);
434
+ result.html += "</tbody></table>";
435
+ break;
436
+ }
437
+ case DataStreamTreeNodeType.TABLE_ROW: {
438
+ const { children } = node;
439
+ result.html += '<tr class="UniverTableRow">';
440
+ for (const cell of children)
441
+ processNode(cell, body, result);
442
+ result.html += "</tr>";
443
+ break;
444
+ }
445
+ case DataStreamTreeNodeType.TABLE_CELL: {
446
+ const { children } = node;
447
+ result.html += '<td class="UniverTableCell">';
448
+ for (const n2 of children)
449
+ processNode(n2, body, result);
450
+ result.html += "</td>";
451
+ break;
452
+ }
453
+ default:
454
+ throw new Error(`Unknown node type: ${node.nodeType}`);
455
+ }
456
+ }
457
+ __name(processNode, "processNode");
347
458
  const _UDMToHtmlService = class _UDMToHtmlService {
348
459
  convert(bodyList) {
349
460
  if (bodyList.length === 0)
350
461
  throw new Error("The bodyList length at least to be 1");
351
- if (bodyList.length === 1)
352
- return convertBodyToHtml(bodyList[0]);
353
462
  let html = "";
354
- for (const body of bodyList)
355
- html += '<p className="UniverNormal">', html += convertBodyToHtml(body, !1), html += "</p>";
463
+ for (const body of Tools.deepClone(bodyList))
464
+ html += convertBodyToHtml(body);
356
465
  return html;
357
466
  }
358
467
  };
359
468
  __name(_UDMToHtmlService, "UDMToHtmlService");
360
469
  let UDMToHtmlService = _UDMToHtmlService;
361
- var __defProp$h = Object.defineProperty, __getOwnPropDesc$h = Object.getOwnPropertyDescriptor, __decorateClass$h = /* @__PURE__ */ __name((decorators, target, key, kind) => {
362
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$h(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
470
+ var __defProp$l = Object.defineProperty, __getOwnPropDesc$l = Object.getOwnPropertyDescriptor, __decorateClass$l = /* @__PURE__ */ __name((decorators, target, key, kind) => {
471
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$l(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
363
472
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
364
- return kind && result && __defProp$h(target, key, result), result;
365
- }, "__decorateClass$h"), __decorateParam$h = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$h");
473
+ return kind && result && __defProp$l(target, key, result), result;
474
+ }, "__decorateClass$l"), __decorateParam$l = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$l");
366
475
  HtmlToUDMService.use(PastePluginWord);
367
476
  HtmlToUDMService.use(PastePluginLark);
368
477
  HtmlToUDMService.use(PastePluginUniver);
478
+ function getTableSlice(body, start, end) {
479
+ var _a23, _b, _c;
480
+ const bodySlice = getBodySlice(body, start, end + 2), dataStream = DataStreamTreeTokenType.TABLE_START + DataStreamTreeTokenType.TABLE_ROW_START + DataStreamTreeTokenType.TABLE_CELL_START + bodySlice.dataStream + DataStreamTreeTokenType.TABLE_CELL_END + DataStreamTreeTokenType.TABLE_ROW_END + DataStreamTreeTokenType.TABLE_END;
481
+ return bodySlice.dataStream = dataStream, (_a23 = bodySlice.textRuns) == null || _a23.forEach((textRun) => {
482
+ const { st, ed } = textRun;
483
+ textRun.st = st + 3, textRun.ed = ed + 3;
484
+ }), (_b = bodySlice.tables) == null || _b.forEach((table) => {
485
+ const { startIndex, endIndex } = table;
486
+ table.startIndex = startIndex + 3, table.endIndex = endIndex + 3;
487
+ }), (_c = bodySlice.paragraphs) == null || _c.forEach((paragraph) => {
488
+ const { startIndex } = paragraph;
489
+ paragraph.startIndex = startIndex + 3;
490
+ }), bodySlice;
491
+ }
492
+ __name(getTableSlice, "getTableSlice");
369
493
  const IDocClipboardService = createIdentifier("doc.clipboard-service");
370
494
  var _a;
371
495
  let DocClipboardService = (_a = class extends Disposable {
@@ -377,12 +501,12 @@ let DocClipboardService = (_a = class extends Disposable {
377
501
  this._univerInstanceService = _univerInstanceService, this._logService = _logService, this._commandService = _commandService, this._clipboardInterfaceService = _clipboardInterfaceService, this._textSelectionManagerService = _textSelectionManagerService, this._docCustomRangeService = _docCustomRangeService;
378
502
  }
379
503
  async copy(sliceType = SliceBodyType.copy) {
380
- const documentBodyList = this._getDocumentBodyInRanges(sliceType);
381
- if (documentBodyList.length === 0)
504
+ const { bodyList, needCache } = this._getDocumentBodyInRanges(sliceType);
505
+ if (bodyList.length === 0)
382
506
  return !1;
383
507
  try {
384
- const activeRange = this._textSelectionManagerService.getActiveRange(), isCopyInHeaderFooter = !!(activeRange != null && activeRange.segmentId);
385
- this._setClipboardData(documentBodyList, !isCopyInHeaderFooter);
508
+ const activeRange = this._textSelectionManagerService.getActiveTextRangeWithStyle(), isCopyInHeaderFooter = !!(activeRange != null && activeRange.segmentId);
509
+ this._setClipboardData(bodyList, !isCopyInHeaderFooter && needCache);
386
510
  } catch (e) {
387
511
  return this._logService.error("[DocClipboardService] copy failed", e), !1;
388
512
  }
@@ -392,51 +516,57 @@ let DocClipboardService = (_a = class extends Disposable {
392
516
  return this._cut();
393
517
  }
394
518
  async paste(items) {
395
- const body = await this._generateBodyFromClipboardItems(items);
396
- return this._paste(body);
519
+ const partDocData = await this._genDocDataFromClipboardItems(items);
520
+ return this._paste(partDocData);
397
521
  }
398
522
  async legacyPaste(html, text) {
399
- const body = this._generateBodyFromHtmlAndText(html, text);
400
- return this._paste(body);
523
+ const partDocData = this._genDocDataFromHtmlAndText(html, text);
524
+ return this._paste(partDocData);
401
525
  }
402
526
  async _cut() {
403
- var _a19;
527
+ var _a23, _b, _c;
404
528
  const {
405
529
  segmentId,
406
530
  endOffset: activeEndOffset,
407
531
  style
408
- } = (_a19 = this._textSelectionManagerService.getActiveRange()) != null ? _a19 : {}, ranges = this._textSelectionManagerService.getCurrentSelections();
409
- if (segmentId == null && this._logService.error("[DocClipboardController] segmentId is not existed"), activeEndOffset == null || ranges == null)
532
+ } = (_a23 = this._textSelectionManagerService.getActiveTextRangeWithStyle()) != null ? _a23 : {}, textRanges = (_b = this._textSelectionManagerService.getCurrentTextRanges()) != null ? _b : [], rectRanges = (_c = this._textSelectionManagerService.getCurrentRectRanges()) != null ? _c : [];
533
+ if (segmentId == null && this._logService.error("[DocClipboardController] segmentId is not existed"), textRanges.length === 0 && rectRanges.length === 0)
410
534
  return !1;
411
535
  this.copy(SliceBodyType.cut);
412
536
  try {
413
- let cursor = activeEndOffset;
414
- for (const range of ranges) {
415
- const { startOffset, endOffset } = range;
416
- startOffset == null || endOffset == null || endOffset <= activeEndOffset && (cursor -= endOffset - startOffset);
417
- }
418
- const textRanges = [
537
+ let cursor = 0;
538
+ if (rectRanges.length > 0)
539
+ cursor = getCursorWhenDelete(textRanges, rectRanges);
540
+ else if (activeEndOffset != null)
541
+ for (const range of textRanges) {
542
+ const { startOffset, endOffset } = range;
543
+ startOffset == null || endOffset == null || endOffset <= activeEndOffset && (cursor -= endOffset - startOffset);
544
+ }
545
+ const newTextRanges = [
419
546
  {
420
547
  startOffset: cursor,
421
548
  endOffset: cursor,
422
549
  style
423
550
  }
424
551
  ];
425
- return this._commandService.executeCommand(CutContentCommand.id, { segmentId, textRanges });
552
+ return this._commandService.executeCommand(CutContentCommand.id, { segmentId, textRanges: newTextRanges });
426
553
  } catch {
427
554
  return this._logService.error("[DocClipboardController] cut content failed"), !1;
428
555
  }
429
556
  }
430
- async _paste(_body) {
431
- var _a19, _b;
557
+ async _paste(docData) {
558
+ var _a23, _b;
559
+ const { body: _body } = docData;
560
+ if (_body == null)
561
+ return !1;
432
562
  let body = normalizeBody(_body);
433
- const unitId = (_a19 = this._univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_DOC)) == null ? void 0 : _a19.getUnitId();
563
+ const unitId = (_a23 = this._univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_DOC)) == null ? void 0 : _a23.getUnitId();
434
564
  if (!unitId)
435
565
  return !1;
436
566
  this._clipboardHooks.forEach((hook) => {
437
567
  hook.onBeforePaste && (body = hook.onBeforePaste(body));
438
568
  }), body.customRanges = (_b = body.customRanges) == null ? void 0 : _b.map((range) => this._docCustomRangeService.copyCustomRange(unitId, range));
439
- const activeRange = this._textSelectionManagerService.getActiveRange(), { segmentId, endOffset: activeEndOffset, style } = activeRange || {}, ranges = this._textSelectionManagerService.getCurrentSelections();
569
+ const activeRange = this._textSelectionManagerService.getActiveTextRangeWithStyle(), { segmentId, endOffset: activeEndOffset, style } = activeRange || {}, ranges = this._textSelectionManagerService.getCurrentTextRanges();
440
570
  if (segmentId == null && this._logService.error("[DocClipboardController] segmentId does not exist!"), activeEndOffset == null || ranges == null)
441
571
  return !1;
442
572
  try {
@@ -452,7 +582,14 @@ let DocClipboardService = (_a = class extends Disposable {
452
582
  style
453
583
  }
454
584
  ];
455
- return this._commandService.executeCommand(InnerPasteCommand.id, { body, segmentId, textRanges });
585
+ return this._commandService.executeCommand(InnerPasteCommand.id, {
586
+ doc: {
587
+ ...docData,
588
+ body
589
+ },
590
+ segmentId,
591
+ textRanges
592
+ });
456
593
  } catch {
457
594
  return this._logService.error("[DocClipboardController]", "clipboard is empty."), !1;
458
595
  }
@@ -461,7 +598,7 @@ let DocClipboardService = (_a = class extends Disposable {
461
598
  const copyId = genId(), text = documentBodyList.length > 1 ? documentBodyList.map((body) => body.dataStream).join(`
462
599
  `) : documentBodyList[0].dataStream;
463
600
  let html = this._umdToHtml.convert(documentBodyList);
464
- return documentBodyList.length === 1 && needCache && (html = html.replace(/(<[a-z]+)/, (_p0, p1) => `${p1} data-copy-id="${copyId}"`), copyContentCache.set(copyId, documentBodyList[0])), this._clipboardInterfaceService.write(text, html);
601
+ return documentBodyList.length === 1 && needCache && (html = html.replace(/(<[a-z]+)/, (_p0, p1) => `${p1} data-copy-id="${copyId}"`), copyContentCache.set(copyId, { body: documentBodyList[0] })), this._clipboardInterfaceService.write(text, html);
465
602
  }
466
603
  addClipboardHook(hook) {
467
604
  return this._clipboardHooks.push(hook), toDisposable(() => {
@@ -469,15 +606,33 @@ let DocClipboardService = (_a = class extends Disposable {
469
606
  index > -1 && this._clipboardHooks.splice(index, 1);
470
607
  });
471
608
  }
609
+ // eslint-disable-next-line max-lines-per-function
472
610
  _getDocumentBodyInRanges(sliceType) {
473
- const ranges = this._textSelectionManagerService.getCurrentSelections(), activeRange = this._textSelectionManagerService.getActiveRange(), docDataModel = this._univerInstanceService.getCurrentUniverDocInstance(), results = [], body = docDataModel == null ? void 0 : docDataModel.getBody();
474
- if (ranges == null || docDataModel == null || body == null || activeRange == null)
475
- return results;
476
- const { segmentId } = activeRange;
477
- for (const range of ranges) {
478
- const { startOffset, endOffset, collapsed } = range;
611
+ var _a23;
612
+ const docDataModel = this._univerInstanceService.getCurrentUniverDocInstance(), allRanges = this._textSelectionManagerService.getDocRanges(), results = [];
613
+ let needCache = !0;
614
+ if (docDataModel == null || allRanges.length === 0)
615
+ return {
616
+ bodyList: results,
617
+ needCache
618
+ };
619
+ const segmentId = allRanges[0].segmentId, body = (_a23 = docDataModel == null ? void 0 : docDataModel.getSelfOrHeaderFooterModel(segmentId)) == null ? void 0 : _a23.getBody();
620
+ if (body == null)
621
+ return {
622
+ bodyList: results,
623
+ needCache
624
+ };
625
+ for (const range of allRanges) {
626
+ const { startOffset, endOffset, collapsed, rangeType } = range;
479
627
  if (collapsed || startOffset == null || endOffset == null)
480
628
  continue;
629
+ if (rangeType === DOC_RANGE_TYPE.RECT) {
630
+ needCache = !1;
631
+ const { spanEntireRow } = range;
632
+ let bodySlice;
633
+ bodySlice = getTableSlice(body, startOffset, endOffset), results.push(bodySlice);
634
+ continue;
635
+ }
481
636
  const deleteRange = getDeleteSelection({ startOffset, endOffset, collapsed }, body), docBody = docDataModel.getSelfOrHeaderFooterModel(segmentId).sliceBody(deleteRange.startOffset, deleteRange.endOffset, sliceType);
482
637
  if (docBody != null) {
483
638
  if (docBody.customRanges) {
@@ -493,15 +648,18 @@ let DocClipboardService = (_a = class extends Disposable {
493
648
  results.push(docBody);
494
649
  }
495
650
  }
496
- return results;
651
+ return {
652
+ bodyList: results,
653
+ needCache
654
+ };
497
655
  }
498
- async _generateBodyFromClipboardItems(items) {
656
+ async _genDocDataFromClipboardItems(items) {
499
657
  try {
500
658
  let html = "", text = "";
501
659
  for (const clipboardItem of items)
502
660
  for (const type of clipboardItem.types)
503
661
  type === PLAIN_TEXT_CLIPBOARD_MIME_TYPE ? text = await clipboardItem.getType(type).then((blob) => blob && blob.text()) : type === HTML_CLIPBOARD_MIME_TYPE && (html = await clipboardItem.getType(type).then((blob) => blob && blob.text()));
504
- return this._generateBodyFromHtmlAndText(html, text);
662
+ return this._genDocDataFromHtmlAndText(html, text);
505
663
  } catch (e) {
506
664
  return Promise.reject(e);
507
665
  }
@@ -532,10 +690,10 @@ let DocClipboardService = (_a = class extends Disposable {
532
690
  paragraphs
533
691
  };
534
692
  }
535
- _generateBodyFromHtmlAndText(html, text) {
693
+ _genDocDataFromHtmlAndText(html, text) {
536
694
  if (!html) {
537
695
  if (text)
538
- return this._generateBody(text);
696
+ return { body: this._generateBody(text) };
539
697
  throw new Error("[DocClipboardService] html and text cannot be both empty!");
540
698
  }
541
699
  const copyId = extractId(html);
@@ -547,19 +705,19 @@ let DocClipboardService = (_a = class extends Disposable {
547
705
  return this._htmlToUDM.convert(html);
548
706
  }
549
707
  }, __name(_a, "DocClipboardService"), _a);
550
- DocClipboardService = __decorateClass$h([
551
- __decorateParam$h(0, IUniverInstanceService),
552
- __decorateParam$h(1, ILogService),
553
- __decorateParam$h(2, ICommandService),
554
- __decorateParam$h(3, IClipboardInterfaceService),
555
- __decorateParam$h(4, Inject(TextSelectionManagerService)),
556
- __decorateParam$h(5, Inject(DocCustomRangeService))
708
+ DocClipboardService = __decorateClass$l([
709
+ __decorateParam$l(0, IUniverInstanceService),
710
+ __decorateParam$l(1, ILogService),
711
+ __decorateParam$l(2, ICommandService),
712
+ __decorateParam$l(3, IClipboardInterfaceService),
713
+ __decorateParam$l(4, Inject(TextSelectionManagerService)),
714
+ __decorateParam$l(5, Inject(DocCustomRangeService))
557
715
  ], DocClipboardService);
558
- var __defProp$g = Object.defineProperty, __getOwnPropDesc$g = Object.getOwnPropertyDescriptor, __decorateClass$g = /* @__PURE__ */ __name((decorators, target, key, kind) => {
559
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$g(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
716
+ var __defProp$k = Object.defineProperty, __getOwnPropDesc$k = Object.getOwnPropertyDescriptor, __decorateClass$k = /* @__PURE__ */ __name((decorators, target, key, kind) => {
717
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$k(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
560
718
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
561
- return kind && result && __defProp$g(target, key, result), result;
562
- }, "__decorateClass$g"), __decorateParam$g = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$g");
719
+ return kind && result && __defProp$k(target, key, result), result;
720
+ }, "__decorateClass$k"), __decorateParam$k = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$k");
563
721
  const ANCHOR_WIDTH = 1.5;
564
722
  var _a2;
565
723
  let DocBackScrollRenderController = (_a2 = class extends RxDisposable {
@@ -575,16 +733,16 @@ let DocBackScrollRenderController = (_a2 = class extends RxDisposable {
575
733
  });
576
734
  }
577
735
  scrollToRange(unitId, range) {
578
- var _a19;
579
- const docSkeletonManagerService = (_a19 = this._renderManagerService.getRenderById(unitId)) == null ? void 0 : _a19.with(DocSkeletonManagerService), skeleton = docSkeletonManagerService == null ? void 0 : docSkeletonManagerService.getSkeleton();
736
+ var _a23;
737
+ const docSkeletonManagerService = (_a23 = this._renderManagerService.getRenderById(unitId)) == null ? void 0 : _a23.with(DocSkeletonManagerService), skeleton = docSkeletonManagerService == null ? void 0 : docSkeletonManagerService.getSkeleton();
580
738
  if (!skeleton)
581
739
  return;
582
740
  const { startOffset } = range, anchorNodePosition = skeleton.findNodePositionByCharIndex(startOffset);
583
741
  this.scrollToNode(unitId, anchorNodePosition);
584
742
  }
585
743
  scrollToNode(unitId, startNodePosition) {
586
- var _a19;
587
- const docObject = this._getDocObject(), docSkeletonManagerService = (_a19 = this._renderManagerService.getRenderById(unitId)) == null ? void 0 : _a19.with(DocSkeletonManagerService), skeleton = docSkeletonManagerService == null ? void 0 : docSkeletonManagerService.getSkeleton();
744
+ var _a23;
745
+ const docObject = this._getDocObject(), docSkeletonManagerService = (_a23 = this._renderManagerService.getRenderById(unitId)) == null ? void 0 : _a23.with(DocSkeletonManagerService), skeleton = docSkeletonManagerService == null ? void 0 : docSkeletonManagerService.getSkeleton();
588
746
  if (docObject == null || skeleton == null)
589
747
  return;
590
748
  const documentOffsetConfig = docObject.document.getOffsetConfig(), { docsLeft, docsTop } = documentOffsetConfig, convertor = new NodePositionConvertToCursor(documentOffsetConfig, skeleton), { contentBoxPointGroup } = convertor.getRangePointData(startNodePosition, startNodePosition), { left: aLeft, top: aTop, height } = getAnchorBounding(contentBoxPointGroup), left = aLeft + docsLeft, top = aTop + docsTop, viewportMain = docObject.scene.getViewport(VIEWPORT_KEY.VIEW_MAIN), isEditor = !!this._editorService.getEditor(unitId);
@@ -604,7 +762,7 @@ let DocBackScrollRenderController = (_a2 = class extends RxDisposable {
604
762
  }
605
763
  // Let the selection show on the current screen.
606
764
  _scrollToSelection(unitId) {
607
- const activeTextRange = this._textSelectionManagerService.getActiveRange();
765
+ const activeTextRange = this._textSelectionManagerService.getActiveTextRangeWithStyle();
608
766
  if (activeTextRange == null)
609
767
  return;
610
768
  const { collapsed, startNodePosition } = activeTextRange;
@@ -614,11 +772,11 @@ let DocBackScrollRenderController = (_a2 = class extends RxDisposable {
614
772
  return getDocObject(this._univerInstanceService, this._renderManagerService);
615
773
  }
616
774
  }, __name(_a2, "DocBackScrollRenderController"), _a2);
617
- DocBackScrollRenderController = __decorateClass$g([
618
- __decorateParam$g(1, Inject(TextSelectionManagerService)),
619
- __decorateParam$g(2, IEditorService),
620
- __decorateParam$g(3, Inject(IUniverInstanceService)),
621
- __decorateParam$g(4, IRenderManagerService)
775
+ DocBackScrollRenderController = __decorateClass$k([
776
+ __decorateParam$k(1, Inject(TextSelectionManagerService)),
777
+ __decorateParam$k(2, IEditorService),
778
+ __decorateParam$k(3, Inject(IUniverInstanceService)),
779
+ __decorateParam$k(4, IRenderManagerService)
622
780
  ], DocBackScrollRenderController);
623
781
  const DefaultToolbarConfig = {
624
782
  undo: !0,
@@ -727,11 +885,11 @@ const DefaultToolbarConfig = {
727
885
  binding: KeyCode.A | MetaKeys.CTRL_COMMAND,
728
886
  preconditions: /* @__PURE__ */ __name((contextService) => contextService.getContextValue(FOCUSING_UNIVER_EDITOR) && (contextService.getContextValue(FOCUSING_DOC) || contextService.getContextValue(EDITOR_ACTIVATED)), "preconditions")
729
887
  };
730
- var __defProp$f = Object.defineProperty, __getOwnPropDesc$f = Object.getOwnPropertyDescriptor, __decorateClass$f = /* @__PURE__ */ __name((decorators, target, key, kind) => {
731
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$f(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
888
+ var __defProp$j = Object.defineProperty, __getOwnPropDesc$j = Object.getOwnPropertyDescriptor, __decorateClass$j = /* @__PURE__ */ __name((decorators, target, key, kind) => {
889
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$j(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
732
890
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
733
- return kind && result && __defProp$f(target, key, result), result;
734
- }, "__decorateClass$f"), __decorateParam$f = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$f"), _a3;
891
+ return kind && result && __defProp$j(target, key, result), result;
892
+ }, "__decorateClass$j"), __decorateParam$j = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$j"), _a3;
735
893
  let DocContainerUIController = (_a3 = class {
736
894
  constructor(_config, _localeService, _injector) {
737
895
  __publicField(this, "_docContainer");
@@ -771,15 +929,15 @@ let DocContainerUIController = (_a3 = class {
771
929
  return this._docContainer;
772
930
  }
773
931
  }, __name(_a3, "DocContainerUIController"), _a3);
774
- DocContainerUIController = __decorateClass$f([
775
- __decorateParam$f(1, Inject(LocaleService)),
776
- __decorateParam$f(2, Inject(Injector))
932
+ DocContainerUIController = __decorateClass$j([
933
+ __decorateParam$j(1, Inject(LocaleService)),
934
+ __decorateParam$j(2, Inject(Injector))
777
935
  ], DocContainerUIController);
778
- var __defProp$e = Object.defineProperty, __getOwnPropDesc$e = Object.getOwnPropertyDescriptor, __decorateClass$e = /* @__PURE__ */ __name((decorators, target, key, kind) => {
779
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$e(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
936
+ var __defProp$i = Object.defineProperty, __getOwnPropDesc$i = Object.getOwnPropertyDescriptor, __decorateClass$i = /* @__PURE__ */ __name((decorators, target, key, kind) => {
937
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$i(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
780
938
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
781
- return kind && result && __defProp$e(target, key, result), result;
782
- }, "__decorateClass$e"), __decorateParam$e = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$e"), _a4;
939
+ return kind && result && __defProp$i(target, key, result), result;
940
+ }, "__decorateClass$i"), __decorateParam$i = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$i"), _a4;
783
941
  let AppUIController = (_a4 = class extends RxDisposable {
784
942
  constructor(_config, _localeService, _injector, _textSelectionRenderManager, _layoutService) {
785
943
  super();
@@ -806,83 +964,100 @@ let AppUIController = (_a4 = class extends RxDisposable {
806
964
  return this._docContainerController;
807
965
  }
808
966
  }, __name(_a4, "AppUIController"), _a4);
809
- AppUIController = __decorateClass$e([
810
- __decorateParam$e(1, Inject(LocaleService)),
811
- __decorateParam$e(2, Inject(Injector)),
812
- __decorateParam$e(3, ITextSelectionRenderManager),
813
- __decorateParam$e(4, Optional(ILayoutService))
967
+ AppUIController = __decorateClass$i([
968
+ __decorateParam$i(1, Inject(LocaleService)),
969
+ __decorateParam$i(2, Inject(Injector)),
970
+ __decorateParam$i(3, ITextSelectionRenderManager),
971
+ __decorateParam$i(4, Optional(ILayoutService))
814
972
  ], AppUIController);
815
- const COMPONENT_PREFIX = "UI_PLUGIN_DOCS", COLOR_PICKER_COMPONENT = `${COMPONENT_PREFIX}_COLOR_PICKER_COMPONENT`, FONT_FAMILY_COMPONENT = `${COMPONENT_PREFIX}_FONT_FAMILY_COMPONENT`, FONT_FAMILY_ITEM_COMPONENT = `${COMPONENT_PREFIX}_FONT_FAMILY_ITEM_COMPONENT`, FONT_SIZE_COMPONENT = `${COMPONENT_PREFIX}_FONT_SIZE_COMPONENT`;
816
- var jsxRuntime = { exports: {} }, reactJsxRuntime_production_min = {};
817
- /**
818
- * @license React
819
- * react-jsx-runtime.production.min.js
820
- *
821
- * Copyright (c) Facebook, Inc. and its affiliates.
822
- *
823
- * This source code is licensed under the MIT license found in the
824
- * LICENSE file in the root directory of this source tree.
825
- */
826
- var f = require$$0, k = Symbol.for("react.element"), l = Symbol.for("react.fragment"), m = Object.prototype.hasOwnProperty, n = f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, p = { key: !0, ref: !0, __self: !0, __source: !0 };
827
- function q(c, a, g) {
828
- var b, d = {}, e = null, h = null;
829
- g !== void 0 && (e = "" + g), a.key !== void 0 && (e = "" + a.key), a.ref !== void 0 && (h = a.ref);
830
- for (b in a) m.call(a, b) && !p.hasOwnProperty(b) && (d[b] = a[b]);
831
- if (c && c.defaultProps) for (b in a = c.defaultProps, a) d[b] === void 0 && (d[b] = a[b]);
832
- return { $$typeof: k, type: c, key: e, ref: h, props: d, _owner: n.current };
833
- }
834
- __name(q, "q");
835
- reactJsxRuntime_production_min.Fragment = l;
836
- reactJsxRuntime_production_min.jsx = q;
837
- reactJsxRuntime_production_min.jsxs = q;
838
- jsxRuntime.exports = reactJsxRuntime_production_min;
839
- var jsxRuntimeExports = jsxRuntime.exports;
840
- const docCountBar = "univer-doc-count-bar", styles$2 = {
841
- docCountBar
842
- }, ZOOM_MAP = [50, 80, 100, 130, 150, 170, 200, 400], DOC_ZOOM_RANGE = [10, 400];
843
- function ZoomSlider() {
844
- const commandService = useDependency(ICommandService), univerInstanceService = useDependency(IUniverInstanceService), currentDoc$ = useMemo(() => univerInstanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_DOC), []), documentDataModel = useObservable(currentDoc$), getCurrentZoom = useCallback(() => {
845
- var _a19, _b;
846
- if (!documentDataModel) return 100;
847
- const currentZoom = ((_b = (_a19 = documentDataModel.getSettings()) == null ? void 0 : _a19.zoomRatio) != null ? _b : 1) * 100;
848
- return Math.round(currentZoom);
849
- }, [documentDataModel]), [zoom, setZoom] = useState(() => getCurrentZoom());
850
- useEffect(() => (setZoom(getCurrentZoom()), commandService.onCommandExecuted((commandInfo) => {
851
- if (commandInfo.id === SetDocZoomRatioOperation.id) {
852
- const currentZoom = getCurrentZoom();
853
- setZoom(currentZoom);
854
- }
855
- }).dispose), [commandService, getCurrentZoom]);
856
- function handleChange(value) {
857
- if (setZoom(value), documentDataModel == null)
858
- return;
859
- const zoomRatio = value / 100;
860
- commandService.executeCommand(SetDocZoomRatioOperation.id, {
861
- unitId: documentDataModel.getUnitId(),
862
- zoomRatio
863
- });
864
- }
865
- return __name(handleChange, "handleChange"), /* @__PURE__ */ jsxRuntimeExports.jsx(
866
- Slider,
867
- {
868
- min: DOC_ZOOM_RANGE[0],
869
- value: zoom,
870
- shortcuts: ZOOM_MAP,
871
- onChange: handleChange
973
+ var __assign = function() {
974
+ return __assign = Object.assign || function(t) {
975
+ for (var s, i = 1, n2 = arguments.length; i < n2; i++) {
976
+ s = arguments[i];
977
+ for (var p2 in s) Object.prototype.hasOwnProperty.call(s, p2) && (t[p2] = s[p2]);
872
978
  }
873
- );
979
+ return t;
980
+ }, __assign.apply(this, arguments);
981
+ }, __rest = function(s, e) {
982
+ var t = {};
983
+ for (var p2 in s) Object.prototype.hasOwnProperty.call(s, p2) && e.indexOf(p2) < 0 && (t[p2] = s[p2]);
984
+ if (s != null && typeof Object.getOwnPropertySymbols == "function")
985
+ for (var i = 0, p2 = Object.getOwnPropertySymbols(s); i < p2.length; i++)
986
+ e.indexOf(p2[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p2[i]) && (t[p2[i]] = s[p2[i]]);
987
+ return t;
988
+ }, IconBase = forwardRef(function(props, ref) {
989
+ var icon = props.icon, id = props.id, className = props.className, extend = props.extend, restProps = __rest(props, ["icon", "id", "className", "extend"]), cls = "univerjs-icon univerjs-icon-".concat(id, " ").concat(className || "").trim(), idSuffix = useRef("_".concat(generateShortUuid()));
990
+ return render(icon, "".concat(id), { defIds: icon.defIds, idSuffix: idSuffix.current }, __assign({ ref, className: cls }, restProps), extend);
991
+ });
992
+ function render(node, id, runtimeProps, rootProps, extend) {
993
+ return createElement(node.tag, __assign(__assign({ key: id }, replaceRuntimeIdsAndExtInAttrs(node, runtimeProps, extend)), rootProps), (replaceRuntimeIdsInDefs(node, runtimeProps).children || []).map(function(child, index) {
994
+ return render(child, "".concat(id, "-").concat(node.tag, "-").concat(index), runtimeProps, void 0, extend);
995
+ }));
874
996
  }
875
- __name(ZoomSlider, "ZoomSlider");
876
- function CountBar(props) {
877
- return /* @__PURE__ */ jsxRuntimeExports.jsx("section", { className: styles$2.docCountBar, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ZoomSlider, {}) });
997
+ __name(render, "render");
998
+ function replaceRuntimeIdsAndExtInAttrs(node, runtimeProps, extend) {
999
+ var attrs = __assign({}, node.attrs);
1000
+ extend != null && extend.colorChannel1 && attrs.fill === "colorChannel1" && (attrs.fill = extend.colorChannel1);
1001
+ var defIds = runtimeProps.defIds;
1002
+ return !defIds || defIds.length === 0 || (node.tag === "use" && attrs["xlink:href"] && (attrs["xlink:href"] = attrs["xlink:href"] + runtimeProps.idSuffix), Object.entries(attrs).forEach(function(_a23) {
1003
+ var key = _a23[0], value = _a23[1];
1004
+ typeof value == "string" && (attrs[key] = value.replace(/url\(#(.*)\)/, "url(#$1".concat(runtimeProps.idSuffix, ")")));
1005
+ })), attrs;
878
1006
  }
879
- __name(CountBar, "CountBar");
880
- const docFooterContainer = "univer-doc-footer-container", styles$1 = {
881
- docFooterContainer
882
- }, DocFooter = /* @__PURE__ */ __name(() => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$1.docFooterContainer, children: [
883
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", {}),
884
- /* @__PURE__ */ jsxRuntimeExports.jsx(CountBar, {})
885
- ] }), "DocFooter"), COLLAB_CURSOR_LABEL_HEIGHT = 18, COLLAB_CURSOR_LABEL_MAX_WIDTH = 200, COLLAB_CURSOR_LABEL_TEXT_PADDING_LR = 6, COLLAB_CURSOR_LABEL_TEXT_PADDING_TB = 4;
1007
+ __name(replaceRuntimeIdsAndExtInAttrs, "replaceRuntimeIdsAndExtInAttrs");
1008
+ function replaceRuntimeIdsInDefs(node, runtimeProps) {
1009
+ var _a23, defIds = runtimeProps.defIds;
1010
+ return !defIds || defIds.length === 0 ? node : node.tag === "defs" && (!((_a23 = node.children) === null || _a23 === void 0) && _a23.length) ? __assign(__assign({}, node), { children: node.children.map(function(child) {
1011
+ return typeof child.attrs.id == "string" && defIds && defIds.indexOf(child.attrs.id) > -1 ? __assign(__assign({}, child), { attrs: __assign(__assign({}, child.attrs), { id: child.attrs.id + runtimeProps.idSuffix }) }) : child;
1012
+ }) }) : node;
1013
+ }
1014
+ __name(replaceRuntimeIdsInDefs, "replaceRuntimeIdsInDefs");
1015
+ function generateShortUuid() {
1016
+ return Math.random().toString(36).substring(2, 8);
1017
+ }
1018
+ __name(generateShortUuid, "generateShortUuid");
1019
+ IconBase.displayName = "UniverIcon";
1020
+ var element$4 = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M1.9999 1.89941C1.66853 1.89941 1.3999 2.16804 1.3999 2.49941 1.3999 2.83078 1.66853 3.09941 1.9999 3.09941H13.9999C14.3313 3.09941 14.5999 2.83078 14.5999 2.49941 14.5999 2.16804 14.3313 1.89941 13.9999 1.89941H1.9999zM1.9999 5.56641C1.66853 5.56641 1.3999 5.83504 1.3999 6.16641 1.3999 6.49778 1.66853 6.76641 1.9999 6.76641H13.9999C14.3313 6.76641 14.5999 6.49778 14.5999 6.16641 14.5999 5.83504 14.3313 5.56641 13.9999 5.56641H1.9999zM1.3999 9.8334C1.3999 9.50203 1.66853 9.2334 1.9999 9.2334H13.9999C14.3313 9.2334 14.5999 9.50203 14.5999 9.8334 14.5999 10.1648 14.3313 10.4334 13.9999 10.4334H1.9999C1.66853 10.4334 1.3999 10.1648 1.3999 9.8334zM1.9999 12.9004C1.66853 12.9004 1.3999 13.169 1.3999 13.5004 1.3999 13.8318 1.66853 14.1004 1.9999 14.1004H13.9999C14.3313 14.1004 14.5999 13.8318 14.5999 13.5004 14.5999 13.169 14.3313 12.9004 13.9999 12.9004H1.9999z" } }] }, AlignTextBothSingle = forwardRef(function(props, ref) {
1021
+ return createElement(IconBase, Object.assign({}, props, {
1022
+ id: "align-text-both-single",
1023
+ ref,
1024
+ icon: element$4
1025
+ }));
1026
+ });
1027
+ AlignTextBothSingle.displayName = "AlignTextBothSingle";
1028
+ var element$3 = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M1.9999 1.89941C1.66853 1.89941 1.3999 2.16804 1.3999 2.49941 1.3999 2.83078 1.66853 3.09941 1.9999 3.09941H13.9999C14.3313 3.09941 14.5999 2.83078 14.5999 2.49941 14.5999 2.16804 14.3313 1.89941 13.9999 1.89941H1.9999zM3.33315 5.56641C3.00178 5.56641 2.73315 5.83504 2.73315 6.16641 2.73315 6.49778 3.00178 6.76641 3.33315 6.76641H12.6665C12.9979 6.76641 13.2665 6.49778 13.2665 6.16641 13.2665 5.83504 12.9979 5.56641 12.6665 5.56641H3.33315zM1.3999 9.8334C1.3999 9.50203 1.66853 9.2334 1.9999 9.2334H13.9999C14.3313 9.2334 14.5999 9.50203 14.5999 9.8334 14.5999 10.1648 14.3313 10.4334 13.9999 10.4334H1.9999C1.66853 10.4334 1.3999 10.1648 1.3999 9.8334zM3.33315 12.9004C3.00178 12.9004 2.73315 13.169 2.73315 13.5004 2.73315 13.8318 3.00178 14.1004 3.33315 14.1004H12.6665C12.9979 14.1004 13.2665 13.8318 13.2665 13.5004 13.2665 13.169 12.9979 12.9004 12.6665 12.9004H3.33315z" } }] }, HorizontallySingle = forwardRef(function(props, ref) {
1029
+ return createElement(IconBase, Object.assign({}, props, {
1030
+ id: "horizontally-single",
1031
+ ref,
1032
+ icon: element$3
1033
+ }));
1034
+ });
1035
+ HorizontallySingle.displayName = "HorizontallySingle";
1036
+ var element$2 = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M1.9999 1.89941C1.66853 1.89941 1.3999 2.16804 1.3999 2.49941 1.3999 2.83078 1.66853 3.09941 1.9999 3.09941H13.9999C14.3313 3.09941 14.5999 2.83078 14.5999 2.49941 14.5999 2.16804 14.3313 1.89941 13.9999 1.89941H1.9999zM1.9999 5.56641C1.66853 5.56641 1.3999 5.83504 1.3999 6.16641 1.3999 6.49778 1.66853 6.76641 1.9999 6.76641H11.3332C11.6646 6.76641 11.9332 6.49778 11.9332 6.16641 11.9332 5.83504 11.6646 5.56641 11.3332 5.56641H1.9999zM1.3999 9.8334C1.3999 9.50203 1.66853 9.2334 1.9999 9.2334H13.9999C14.3313 9.2334 14.5999 9.50203 14.5999 9.8334 14.5999 10.1648 14.3313 10.4334 13.9999 10.4334H1.9999C1.66853 10.4334 1.3999 10.1648 1.3999 9.8334zM1.9999 12.9004C1.66853 12.9004 1.3999 13.169 1.3999 13.5004 1.3999 13.8318 1.66853 14.1004 1.9999 14.1004H11.3332C11.6646 14.1004 11.9332 13.8318 11.9332 13.5004 11.9332 13.169 11.6646 12.9004 11.3332 12.9004H1.9999z" } }] }, LeftJustifyingSingle = forwardRef(function(props, ref) {
1037
+ return createElement(IconBase, Object.assign({}, props, {
1038
+ id: "left-justifying-single",
1039
+ ref,
1040
+ icon: element$2
1041
+ }));
1042
+ });
1043
+ LeftJustifyingSingle.displayName = "LeftJustifyingSingle";
1044
+ var element$1 = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M1.9999 1.89941C1.66853 1.89941 1.3999 2.16804 1.3999 2.49941 1.3999 2.83078 1.66853 3.09941 1.9999 3.09941H13.9999C14.3313 3.09941 14.5999 2.83078 14.5999 2.49941 14.5999 2.16804 14.3313 1.89941 13.9999 1.89941H1.9999zM4.66665 5.56641C4.33528 5.56641 4.06665 5.83504 4.06665 6.16641 4.06665 6.49778 4.33528 6.76641 4.66665 6.76641H14C14.3314 6.76641 14.6 6.49778 14.6 6.16641 14.6 5.83504 14.3314 5.56641 14 5.56641H4.66665zM1.3999 9.8334C1.3999 9.50203 1.66853 9.2334 1.9999 9.2334H13.9999C14.3313 9.2334 14.5999 9.50203 14.5999 9.8334 14.5999 10.1648 14.3313 10.4334 13.9999 10.4334H1.9999C1.66853 10.4334 1.3999 10.1648 1.3999 9.8334zM4.66665 12.9004C4.33528 12.9004 4.06665 13.169 4.06665 13.5004 4.06665 13.8318 4.33528 14.1004 4.66665 14.1004H14C14.3314 14.1004 14.6 13.8318 14.6 13.5004 14.6 13.169 14.3314 12.9004 14 12.9004H4.66665z" } }] }, RightJustifyingSingle = forwardRef(function(props, ref) {
1045
+ return createElement(IconBase, Object.assign({}, props, {
1046
+ id: "right-justifying-single",
1047
+ ref,
1048
+ icon: element$1
1049
+ }));
1050
+ });
1051
+ RightJustifyingSingle.displayName = "RightJustifyingSingle";
1052
+ var element = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M4.96372 2.59116C5.19803 2.35684 5.19803 1.97695 4.96372 1.74263 4.7294 1.50832 4.3495 1.50832 4.11519 1.74263L2.53945 3.31837 1.96372 2.74263C1.7294 2.50832 1.3495 2.50832 1.11519 2.74263.880874 2.97695.880874 3.35684 1.11519 3.59116L2.11519 4.59116C2.3495 4.82547 2.7294 4.82547 2.96372 4.59116L4.96372 2.59116zM14.4605 2.56689H6.8981C6.56672 2.56689 6.2981 2.83552 6.2981 3.16689 6.2981 3.49827 6.56672 3.76689 6.8981 3.76689H14.4605C14.7918 3.76689 15.0605 3.49827 15.0605 3.16689 15.0605 2.83552 14.7918 2.56689 14.4605 2.56689zM6.8981 7.2334C6.56672 7.2334 6.2981 7.50203 6.2981 7.8334 6.2981 8.16477 6.56672 8.4334 6.8981 8.4334H14.4605C14.7918 8.4334 15.0605 8.16477 15.0605 7.8334 15.0605 7.50203 14.7918 7.2334 14.4605 7.2334H6.8981zM6.2981 12.4999C6.2981 12.1685 6.56672 11.8999 6.8981 11.8999H14.4605C14.7918 11.8999 15.0605 12.1685 15.0605 12.4999 15.0605 12.8313 14.7918 13.0999 14.4605 13.0999H6.8981C6.56672 13.0999 6.2981 12.8313 6.2981 12.4999z" } }, { tag: "path", attrs: { fill: "currentColor", d: "M2.87279 5.8999C1.80504 5.8999.939453 6.76549.939453 7.83324.939453 8.90099 1.80504 9.76657 2.87279 9.76657 3.94054 9.76657 4.80612 8.90099 4.80612 7.83324 4.80612 6.76549 3.94054 5.8999 2.87279 5.8999zM2.13945 7.83324C2.13945 7.42823 2.46778 7.0999 2.87279 7.0999 3.2778 7.0999 3.60612 7.42823 3.60612 7.83324 3.60612 8.23824 3.2778 8.56657 2.87279 8.56657 2.46778 8.56657 2.13945 8.23824 2.13945 7.83324zM.939453 12.5002C.939453 11.4325 1.80504 10.5669 2.87279 10.5669 3.94054 10.5669 4.80612 11.4325 4.80612 12.5002 4.80612 13.568 3.94054 14.4336 2.87279 14.4336 1.80504 14.4336.939453 13.568.939453 12.5002zM2.87279 11.7669C2.46778 11.7669 2.13945 12.0952 2.13945 12.5002 2.13945 12.9052 2.46778 13.2336 2.87279 13.2336 3.2778 13.2336 3.60612 12.9052 3.60612 12.5002 3.60612 12.0952 3.2778 11.7669 2.87279 11.7669z", fillRule: "evenodd", clipRule: "evenodd" } }] }, TodoList = forwardRef(function(props, ref) {
1053
+ return createElement(IconBase, Object.assign({}, props, {
1054
+ id: "todo-list",
1055
+ ref,
1056
+ icon: element
1057
+ }));
1058
+ });
1059
+ TodoList.displayName = "TodoList";
1060
+ const COMPONENT_PREFIX = "UI_PLUGIN_DOCS", COLOR_PICKER_COMPONENT = `${COMPONENT_PREFIX}_COLOR_PICKER_COMPONENT`, FONT_FAMILY_COMPONENT = `${COMPONENT_PREFIX}_FONT_FAMILY_COMPONENT`, FONT_FAMILY_ITEM_COMPONENT = `${COMPONENT_PREFIX}_FONT_FAMILY_ITEM_COMPONENT`, FONT_SIZE_COMPONENT = `${COMPONENT_PREFIX}_FONT_SIZE_COMPONENT`, COLLAB_CURSOR_LABEL_HEIGHT = 18, COLLAB_CURSOR_LABEL_MAX_WIDTH = 200, COLLAB_CURSOR_LABEL_TEXT_PADDING_LR = 6, COLLAB_CURSOR_LABEL_TEXT_PADDING_TB = 4;
886
1061
  function drawBubble(ctx, props) {
887
1062
  let { radius, width, height } = props;
888
1063
  radius = radius != null ? radius : 0, width = width != null ? width : 30, height = height != null ? height : 30;
@@ -914,10 +1089,10 @@ const _TextBubbleShape = class _TextBubbleShape extends Shape {
914
1089
  const offsetX = COLLAB_CURSOR_LABEL_TEXT_PADDING_LR, offsetY = COLLAB_CURSOR_LABEL_HEIGHT - COLLAB_CURSOR_LABEL_TEXT_PADDING_TB, maxTextWidth = COLLAB_CURSOR_LABEL_MAX_WIDTH - 2 * COLLAB_CURSOR_LABEL_TEXT_PADDING_LR;
915
1090
  if (textWidth > maxTextWidth) {
916
1091
  let truncatedText = "", currentWidth = 0;
917
- for (const element of text) {
918
- const charWidth = ctx.measureText(element).width;
1092
+ for (const element2 of text) {
1093
+ const charWidth = ctx.measureText(element2).width;
919
1094
  if (currentWidth + charWidth <= maxTextWidth - ctx.measureText("...").width)
920
- truncatedText += element, currentWidth += charWidth;
1095
+ truncatedText += element2, currentWidth += charWidth;
921
1096
  else {
922
1097
  truncatedText += "...";
923
1098
  break;
@@ -934,7 +1109,32 @@ const _TextBubbleShape = class _TextBubbleShape extends Shape {
934
1109
  };
935
1110
  __name(_TextBubbleShape, "TextBubbleShape");
936
1111
  let TextBubbleShape = _TextBubbleShape;
937
- const COMPONENT_DOC_HEADER_FOOTER_PANEL = "COMPONENT_DOC_HEADER_FOOTER_PANEL", panel = "univer-panel", optionsSection = "univer-options-section", optionsFormItem = "univer-options-form-item", optionsInput = "univer-options-input", optionsMarginSetting = "univer-options-margin-setting", styles = {
1112
+ const COMPONENT_DOC_HEADER_FOOTER_PANEL = "COMPONENT_DOC_HEADER_FOOTER_PANEL";
1113
+ var jsxRuntime = { exports: {} }, reactJsxRuntime_production_min = {};
1114
+ /**
1115
+ * @license React
1116
+ * react-jsx-runtime.production.min.js
1117
+ *
1118
+ * Copyright (c) Facebook, Inc. and its affiliates.
1119
+ *
1120
+ * This source code is licensed under the MIT license found in the
1121
+ * LICENSE file in the root directory of this source tree.
1122
+ */
1123
+ var f = require$$0__default, k = Symbol.for("react.element"), l = Symbol.for("react.fragment"), m = Object.prototype.hasOwnProperty, n = f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, p = { key: !0, ref: !0, __self: !0, __source: !0 };
1124
+ function q(c, a, g) {
1125
+ var b, d = {}, e = null, h = null;
1126
+ g !== void 0 && (e = "" + g), a.key !== void 0 && (e = "" + a.key), a.ref !== void 0 && (h = a.ref);
1127
+ for (b in a) m.call(a, b) && !p.hasOwnProperty(b) && (d[b] = a[b]);
1128
+ if (c && c.defaultProps) for (b in a = c.defaultProps, a) d[b] === void 0 && (d[b] = a[b]);
1129
+ return { $$typeof: k, type: c, key: e, ref: h, props: d, _owner: n.current };
1130
+ }
1131
+ __name(q, "q");
1132
+ reactJsxRuntime_production_min.Fragment = l;
1133
+ reactJsxRuntime_production_min.jsx = q;
1134
+ reactJsxRuntime_production_min.jsxs = q;
1135
+ jsxRuntime.exports = reactJsxRuntime_production_min;
1136
+ var jsxRuntimeExports = jsxRuntime.exports;
1137
+ const panel = "univer-panel", optionsSection = "univer-options-section", optionsFormItem = "univer-options-form-item", optionsInput = "univer-options-input", optionsMarginSetting = "univer-options-margin-setting", styles$5 = {
938
1138
  panel,
939
1139
  optionsSection,
940
1140
  optionsFormItem,
@@ -942,12 +1142,12 @@ const COMPONENT_DOC_HEADER_FOOTER_PANEL = "COMPONENT_DOC_HEADER_FOOTER_PANEL", p
942
1142
  optionsMarginSetting
943
1143
  }, DocHeaderFooterOptions = /* @__PURE__ */ __name((props) => {
944
1144
  const localeService = useDependency(LocaleService), univerInstanceService = useDependency(IUniverInstanceService), renderManagerService = useDependency(IRenderManagerService), commandService = useDependency(ICommandService), textSelectionRenderService = useDependency(ITextSelectionRenderManager), textSelectionManagerService = useDependency(TextSelectionManagerService), { unitId } = props, [options, setOptions] = useState({}), handleCheckboxChange = /* @__PURE__ */ __name((val, type) => {
945
- var _a19;
1145
+ var _a23;
946
1146
  setOptions((prev) => ({
947
1147
  ...prev,
948
1148
  [type]: val ? BooleanNumber.TRUE : BooleanNumber.FALSE
949
1149
  }));
950
- const docDataModel = univerInstanceService.getUniverDocInstance(unitId), documentStyle = docDataModel == null ? void 0 : docDataModel.getSnapshot().documentStyle, docSkeletonManagerService = (_a19 = renderManagerService.getRenderById(unitId)) == null ? void 0 : _a19.with(DocSkeletonManagerService), viewModel = docSkeletonManagerService == null ? void 0 : docSkeletonManagerService.getViewModel();
1150
+ const docDataModel = univerInstanceService.getUniverDocInstance(unitId), documentStyle = docDataModel == null ? void 0 : docDataModel.getSnapshot().documentStyle, docSkeletonManagerService = (_a23 = renderManagerService.getRenderById(unitId)) == null ? void 0 : _a23.with(DocSkeletonManagerService), viewModel = docSkeletonManagerService == null ? void 0 : docSkeletonManagerService.getViewModel();
951
1151
  if (documentStyle == null || viewModel == null)
952
1152
  return;
953
1153
  const editArea = viewModel.getEditArea();
@@ -979,19 +1179,24 @@ const COMPONENT_DOC_HEADER_FOOTER_PANEL = "COMPONENT_DOC_HEADER_FOOTER_PANEL", p
979
1179
  headerFooterProps: {
980
1180
  [type]: val
981
1181
  }
982
- }), textSelectionRenderService.removeAllTextRanges(), textSelectionRenderService.blur();
1182
+ }), textSelectionRenderService.removeAllRanges(), textSelectionRenderService.blur();
983
1183
  }, "handleMarginChange"), closeHeaderFooter = /* @__PURE__ */ __name(() => {
984
- var _a19;
1184
+ var _a23;
985
1185
  const renderObject = renderManagerService.getRenderById(unitId);
986
1186
  if (renderObject == null)
987
1187
  return;
988
- const { scene } = renderObject, transformer = scene.getTransformerByCreate(), docSkeletonManagerService = renderObject.with(DocSkeletonManagerService), skeleton = docSkeletonManagerService == null ? void 0 : docSkeletonManagerService.getSkeleton(), viewModel = docSkeletonManagerService == null ? void 0 : docSkeletonManagerService.getViewModel(), render = renderManagerService.getRenderById(unitId);
989
- render == null || viewModel == null || skeleton == null || (textSelectionManagerService.replaceTextRanges([]), transformer.clearSelectedObjects(), textSelectionRenderService.setSegment(""), textSelectionRenderService.setSegmentPage(-1), viewModel.setEditArea(DocumentEditArea.BODY), skeleton.calculate(), (_a19 = render.mainComponent) == null || _a19.makeDirty(!0));
1188
+ const { scene } = renderObject, transformer = scene.getTransformerByCreate(), docSkeletonManagerService = renderObject.with(DocSkeletonManagerService), skeleton = docSkeletonManagerService == null ? void 0 : docSkeletonManagerService.getSkeleton(), viewModel = docSkeletonManagerService == null ? void 0 : docSkeletonManagerService.getViewModel(), render2 = renderManagerService.getRenderById(unitId);
1189
+ render2 == null || viewModel == null || skeleton == null || (textSelectionManagerService.replaceTextRanges([]), transformer.clearSelectedObjects(), textSelectionRenderService.setSegment(""), textSelectionRenderService.setSegmentPage(-1), viewModel.setEditArea(DocumentEditArea.BODY), skeleton.calculate(), (_a23 = render2.mainComponent) == null || _a23.makeDirty(!0));
990
1190
  }, "closeHeaderFooter");
991
1191
  return useEffect(() => {
992
1192
  const docDataModel = univerInstanceService.getUniverDocInstance(unitId), documentStyle = docDataModel == null ? void 0 : docDataModel.getSnapshot().documentStyle;
993
1193
  if (documentStyle) {
994
- const { marginHeader, marginFooter, useFirstPageHeaderFooter, evenAndOddHeaders } = documentStyle;
1194
+ const {
1195
+ marginHeader = 0,
1196
+ marginFooter = 0,
1197
+ useFirstPageHeaderFooter = BooleanNumber.FALSE,
1198
+ evenAndOddHeaders = BooleanNumber.FALSE
1199
+ } = documentStyle;
995
1200
  setOptions({
996
1201
  marginHeader,
997
1202
  marginFooter,
@@ -999,9 +1204,9 @@ const COMPONENT_DOC_HEADER_FOOTER_PANEL = "COMPONENT_DOC_HEADER_FOOTER_PANEL", p
999
1204
  evenAndOddHeaders
1000
1205
  });
1001
1206
  }
1002
- }, [unitId]), /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles.options, children: [
1003
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles.optionsSection, children: [
1004
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles.optionsFormItem, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
1207
+ }, [unitId]), /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$5.options, children: [
1208
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$5.optionsSection, children: [
1209
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$5.optionsFormItem, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
1005
1210
  Checkbox,
1006
1211
  {
1007
1212
  checked: options.useFirstPageHeaderFooter === BooleanNumber.TRUE,
@@ -1011,7 +1216,7 @@ const COMPONENT_DOC_HEADER_FOOTER_PANEL = "COMPONENT_DOC_HEADER_FOOTER_PANEL", p
1011
1216
  children: localeService.t("headerFooter.firstPageCheckBox")
1012
1217
  }
1013
1218
  ) }),
1014
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles.optionsFormItem, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
1219
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$5.optionsFormItem, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
1015
1220
  Checkbox,
1016
1221
  {
1017
1222
  checked: options.evenAndOddHeaders === BooleanNumber.TRUE,
@@ -1022,8 +1227,8 @@ const COMPONENT_DOC_HEADER_FOOTER_PANEL = "COMPONENT_DOC_HEADER_FOOTER_PANEL", p
1022
1227
  }
1023
1228
  ) })
1024
1229
  ] }),
1025
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles.optionsSection, styles.optionsMarginSetting), children: [
1026
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles.optionsMarginItem, children: [
1230
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx(styles$5.optionsSection, styles$5.optionsMarginSetting), children: [
1231
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$5.optionsMarginItem, children: [
1027
1232
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: localeService.t("headerFooter.headerTopMargin") }),
1028
1233
  /* @__PURE__ */ jsxRuntimeExports.jsx(
1029
1234
  InputNumber,
@@ -1035,11 +1240,11 @@ const COMPONENT_DOC_HEADER_FOOTER_PANEL = "COMPONENT_DOC_HEADER_FOOTER_PANEL", p
1035
1240
  onChange: /* @__PURE__ */ __name((val) => {
1036
1241
  handleMarginChange(val, "marginHeader");
1037
1242
  }, "onChange"),
1038
- className: styles.optionsInput
1243
+ className: styles$5.optionsInput
1039
1244
  }
1040
1245
  )
1041
1246
  ] }),
1042
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles.optionsMarginItem, children: [
1247
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$5.optionsMarginItem, children: [
1043
1248
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: localeService.t("headerFooter.footerBottomMargin") }),
1044
1249
  /* @__PURE__ */ jsxRuntimeExports.jsx(
1045
1250
  InputNumber,
@@ -1051,16 +1256,16 @@ const COMPONENT_DOC_HEADER_FOOTER_PANEL = "COMPONENT_DOC_HEADER_FOOTER_PANEL", p
1051
1256
  onChange: /* @__PURE__ */ __name((val) => {
1052
1257
  handleMarginChange(val, "marginFooter");
1053
1258
  }, "onChange"),
1054
- className: styles.optionsInput
1259
+ className: styles$5.optionsInput
1055
1260
  }
1056
1261
  )
1057
1262
  ] })
1058
1263
  ] }),
1059
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles.optionsSection, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Button, { onClick: closeHeaderFooter, children: localeService.t("headerFooter.closeHeaderFooter") }) })
1264
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$5.optionsSection, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Button, { onClick: closeHeaderFooter, children: localeService.t("headerFooter.closeHeaderFooter") }) })
1060
1265
  ] });
1061
1266
  }, "DocHeaderFooterOptions"), DocHeaderFooterPanel = /* @__PURE__ */ __name(() => {
1062
- var _a19;
1063
- const localeService = useDependency(LocaleService), renderManagerService = useDependency(IRenderManagerService), unitId = useDependency(IUniverInstanceService).getCurrentUniverDocInstance().getUnitId(), viewModel = ((_a19 = renderManagerService.getRenderById(unitId)) == null ? void 0 : _a19.with(DocSkeletonManagerService)).getViewModel(), [isEditHeaderFooter, setIsEditHeaderFooter] = useState(!0);
1267
+ var _a23;
1268
+ const localeService = useDependency(LocaleService), renderManagerService = useDependency(IRenderManagerService), unitId = useDependency(IUniverInstanceService).getCurrentUniverDocInstance().getUnitId(), viewModel = ((_a23 = renderManagerService.getRenderById(unitId)) == null ? void 0 : _a23.with(DocSkeletonManagerService)).getViewModel(), [isEditHeaderFooter, setIsEditHeaderFooter] = useState(!0);
1064
1269
  return useEffect(() => {
1065
1270
  const editArea = viewModel.getEditArea();
1066
1271
  setIsEditHeaderFooter(editArea !== DocumentEditArea.BODY);
@@ -1070,35 +1275,13 @@ const COMPONENT_DOC_HEADER_FOOTER_PANEL = "COMPONENT_DOC_HEADER_FOOTER_PANEL", p
1070
1275
  return () => {
1071
1276
  subscription.unsubscribe();
1072
1277
  };
1073
- }, []), /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles.panel, children: isEditHeaderFooter ? /* @__PURE__ */ jsxRuntimeExports.jsx(DocHeaderFooterOptions, { unitId }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles.panelDisableText, children: localeService.t("headerFooter.disableText") }) });
1074
- }, "DocHeaderFooterPanel"), SidebarDocHeaderFooterPanelOperation = {
1075
- id: "sidebar.operation.doc-header-footer-panel",
1076
- type: CommandType.COMMAND,
1077
- handler: /* @__PURE__ */ __name(async (accessor, params) => {
1078
- const sidebarService = accessor.get(ISidebarService), localeService = accessor.get(LocaleService);
1079
- switch (params.value) {
1080
- case "open":
1081
- sidebarService.open({
1082
- header: { title: localeService.t("headerFooter.panel") },
1083
- children: { label: COMPONENT_DOC_HEADER_FOOTER_PANEL },
1084
- onClose: /* @__PURE__ */ __name(() => {
1085
- }, "onClose"),
1086
- width: 400
1087
- });
1088
- break;
1089
- case "close":
1090
- default:
1091
- sidebarService.close();
1092
- break;
1093
- }
1094
- return !0;
1095
- }, "handler")
1096
- };
1097
- var __defProp$d = Object.defineProperty, __getOwnPropDesc$d = Object.getOwnPropertyDescriptor, __decorateClass$d = /* @__PURE__ */ __name((decorators, target, key, kind) => {
1098
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$d(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
1278
+ }, []), /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$5.panel, children: isEditHeaderFooter ? /* @__PURE__ */ jsxRuntimeExports.jsx(DocHeaderFooterOptions, { unitId }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$5.panelDisableText, children: localeService.t("headerFooter.disableText") }) });
1279
+ }, "DocHeaderFooterPanel");
1280
+ var __defProp$h = Object.defineProperty, __getOwnPropDesc$h = Object.getOwnPropertyDescriptor, __decorateClass$h = /* @__PURE__ */ __name((decorators, target, key, kind) => {
1281
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$h(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
1099
1282
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
1100
- return kind && result && __defProp$d(target, key, result), result;
1101
- }, "__decorateClass$d"), __decorateParam$d = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$d");
1283
+ return kind && result && __defProp$h(target, key, result), result;
1284
+ }, "__decorateClass$h"), __decorateParam$h = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$h");
1102
1285
  const HEADER_FOOTER_STROKE_COLOR = "rgba(58, 96, 247, 1)", HEADER_FOOTER_FILL_COLOR = "rgba(58, 96, 247, 0.08)";
1103
1286
  var HeaderFooterType = /* @__PURE__ */ ((HeaderFooterType2) => (HeaderFooterType2[HeaderFooterType2.FIRST_PAGE_HEADER = 0] = "FIRST_PAGE_HEADER", HeaderFooterType2[HeaderFooterType2.FIRST_PAGE_FOOTER = 1] = "FIRST_PAGE_FOOTER", HeaderFooterType2[HeaderFooterType2.DEFAULT_HEADER = 2] = "DEFAULT_HEADER", HeaderFooterType2[HeaderFooterType2.DEFAULT_FOOTER = 3] = "DEFAULT_FOOTER", HeaderFooterType2[HeaderFooterType2.EVEN_PAGE_HEADER = 4] = "EVEN_PAGE_HEADER", HeaderFooterType2[HeaderFooterType2.EVEN_PAGE_FOOTER = 5] = "EVEN_PAGE_FOOTER", HeaderFooterType2))(HeaderFooterType || {});
1104
1287
  function checkCreateHeaderFooterType(viewModel, editArea, segmentPage) {
@@ -1159,14 +1342,7 @@ let DocHeaderFooterController = (_a5 = class extends Disposable {
1159
1342
  this._context = _context, this._commandService = _commandService, this._editorService = _editorService, this._instanceSrv = _instanceSrv, this._renderManagerService = _renderManagerService, this._docSkeletonManagerService = _docSkeletonManagerService, this._textSelectionRenderManager = _textSelectionRenderManager, this._localeService = _localeService, this._componentManager = _componentManager, this._initialize();
1160
1343
  }
1161
1344
  _initialize() {
1162
- this._context.unit.getSnapshot().documentStyle.documentFlavor === DocumentFlavor.TRADITIONAL && (this._init(), this._drawHeaderFooterLabel(), this._registerCommands(), this._initCustomComponents());
1163
- }
1164
- _registerCommands() {
1165
- [
1166
- CoreHeaderFooterCommand,
1167
- OpenHeaderFooterPanelCommand,
1168
- SidebarDocHeaderFooterPanelOperation
1169
- ].forEach((command) => this.disposeWithMe(this._commandService.registerCommand(command)));
1345
+ this._context.unit.getSnapshot().documentStyle.documentFlavor === DocumentFlavor.TRADITIONAL && (this._init(), this._drawHeaderFooterLabel(), this._initCustomComponents());
1170
1346
  }
1171
1347
  _initCustomComponents() {
1172
1348
  const componentManager = this._componentManager;
@@ -1296,16 +1472,39 @@ let DocHeaderFooterController = (_a5 = class extends Disposable {
1296
1472
  return this._context.unit;
1297
1473
  }
1298
1474
  }, __name(_a5, "DocHeaderFooterController"), _a5);
1299
- DocHeaderFooterController = __decorateClass$d([
1300
- __decorateParam$d(1, ICommandService),
1301
- __decorateParam$d(2, IEditorService),
1302
- __decorateParam$d(3, IUniverInstanceService),
1303
- __decorateParam$d(4, IRenderManagerService),
1304
- __decorateParam$d(5, Inject(DocSkeletonManagerService)),
1305
- __decorateParam$d(6, ITextSelectionRenderManager),
1306
- __decorateParam$d(7, Inject(LocaleService)),
1307
- __decorateParam$d(8, Inject(ComponentManager))
1475
+ DocHeaderFooterController = __decorateClass$h([
1476
+ __decorateParam$h(1, ICommandService),
1477
+ __decorateParam$h(2, IEditorService),
1478
+ __decorateParam$h(3, IUniverInstanceService),
1479
+ __decorateParam$h(4, IRenderManagerService),
1480
+ __decorateParam$h(5, Inject(DocSkeletonManagerService)),
1481
+ __decorateParam$h(6, ITextSelectionRenderManager),
1482
+ __decorateParam$h(7, Inject(LocaleService)),
1483
+ __decorateParam$h(8, Inject(ComponentManager))
1308
1484
  ], DocHeaderFooterController);
1485
+ const SidebarDocHeaderFooterPanelOperation = {
1486
+ id: "sidebar.operation.doc-header-footer-panel",
1487
+ type: CommandType.OPERATION,
1488
+ handler: /* @__PURE__ */ __name(async (accessor, params) => {
1489
+ const sidebarService = accessor.get(ISidebarService), localeService = accessor.get(LocaleService);
1490
+ switch (params.value) {
1491
+ case "open":
1492
+ sidebarService.open({
1493
+ header: { title: localeService.t("headerFooter.panel") },
1494
+ children: { label: COMPONENT_DOC_HEADER_FOOTER_PANEL },
1495
+ onClose: /* @__PURE__ */ __name(() => {
1496
+ }, "onClose"),
1497
+ width: 400
1498
+ });
1499
+ break;
1500
+ case "close":
1501
+ default:
1502
+ sidebarService.close();
1503
+ break;
1504
+ }
1505
+ return !0;
1506
+ }, "handler")
1507
+ };
1309
1508
  function getEmptyHeaderFooterBody() {
1310
1509
  return {
1311
1510
  dataStream: `\r
@@ -1387,8 +1586,8 @@ const CoreHeaderFooterCommandId = "doc.command.core-header-footer", CoreHeaderFo
1387
1586
  type: CommandType.COMMAND,
1388
1587
  // eslint-disable-next-line max-lines-per-function
1389
1588
  handler: /* @__PURE__ */ __name(async (accessor, params) => {
1390
- var _a19;
1391
- const commandService = accessor.get(ICommandService), univerInstanceService = accessor.get(IUniverInstanceService), renderManagerService = accessor.get(IRenderManagerService), { unitId, segmentId, createType, headerFooterProps } = params, docSkeletonManagerService = (_a19 = renderManagerService.getRenderById(unitId)) == null ? void 0 : _a19.with(DocSkeletonManagerService), docDataModel = univerInstanceService.getUniverDocInstance(unitId), docViewModel = docSkeletonManagerService == null ? void 0 : docSkeletonManagerService.getViewModel();
1589
+ var _a23;
1590
+ const commandService = accessor.get(ICommandService), univerInstanceService = accessor.get(IUniverInstanceService), renderManagerService = accessor.get(IRenderManagerService), { unitId, segmentId, createType, headerFooterProps } = params, docSkeletonManagerService = (_a23 = renderManagerService.getRenderById(unitId)) == null ? void 0 : _a23.with(DocSkeletonManagerService), docDataModel = univerInstanceService.getUniverDocInstance(unitId), docViewModel = docSkeletonManagerService == null ? void 0 : docSkeletonManagerService.getViewModel();
1392
1591
  if (docDataModel == null || docViewModel == null)
1393
1592
  return !1;
1394
1593
  const editArea = docViewModel.getEditArea(), { documentStyle } = docDataModel.getSnapshot(), isUpdateMargin = (headerFooterProps == null ? void 0 : headerFooterProps.marginFooter) != null || (headerFooterProps == null ? void 0 : headerFooterProps.marginHeader) != null, textRanges = [{
@@ -1424,55 +1623,334 @@ const CoreHeaderFooterCommandId = "doc.command.core-header-footer", CoreHeaderFo
1424
1623
  id: "doc.command.open-header-footer-panel",
1425
1624
  type: CommandType.COMMAND,
1426
1625
  handler: /* @__PURE__ */ __name(async (accessor, _params) => accessor.get(ICommandService).executeCommand(SidebarDocHeaderFooterPanelOperation.id, { value: "open" }), "handler")
1427
- };
1428
- function BoldMenuItemFactory(accessor) {
1429
- const commandService = accessor.get(ICommandService);
1430
- return {
1431
- id: SetInlineFormatBoldCommand.id,
1432
- group: MenuGroup.TOOLBAR_FORMAT,
1433
- type: MenuItemType.BUTTON,
1434
- icon: "BoldSingle",
1435
- title: "Set bold",
1436
- tooltip: "toolbar.bold",
1437
- positions: [MenuPosition.TOOLBAR_START],
1438
- activated$: new Observable((subscriber) => {
1439
- const disposable = commandService.onCommandExecuted((c) => {
1440
- var _a19;
1441
- const id = c.id;
1442
- if (id === SetTextSelectionsOperation.id || id === SetInlineFormatCommand.id) {
1443
- const textRun = getFontStyleAtCursor(accessor);
1444
- if (textRun == null)
1445
- return;
1446
- const bl = (_a19 = textRun.ts) == null ? void 0 : _a19.bl;
1447
- subscriber.next(bl === BooleanNumber.TRUE);
1448
- }
1449
- });
1450
- return subscriber.next(!1), disposable.dispose;
1451
- }),
1452
- hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
1453
- };
1454
- }
1455
- __name(BoldMenuItemFactory, "BoldMenuItemFactory");
1456
- function ItalicMenuItemFactory(accessor) {
1457
- const commandService = accessor.get(ICommandService);
1458
- return {
1459
- id: SetInlineFormatItalicCommand.id,
1460
- group: MenuGroup.TOOLBAR_FORMAT,
1461
- type: MenuItemType.BUTTON,
1462
- icon: "ItalicSingle",
1463
- title: "Set italic",
1464
- tooltip: "toolbar.italic",
1465
- positions: [MenuPosition.TOOLBAR_START],
1466
- activated$: new Observable((subscriber) => {
1467
- const disposable = commandService.onCommandExecuted((c) => {
1468
- var _a19;
1469
- const id = c.id;
1470
- if (id === SetTextSelectionsOperation.id || id === SetInlineFormatCommand.id) {
1471
- const textRun = getFontStyleAtCursor(accessor);
1472
- if (textRun == null)
1473
- return;
1474
- const it = (_a19 = textRun.ts) == null ? void 0 : _a19.it;
1475
- subscriber.next(it === BooleanNumber.TRUE);
1626
+ }, docCountBar = "univer-doc-count-bar", styles$4 = {
1627
+ docCountBar
1628
+ }, ZOOM_MAP = [50, 80, 100, 130, 150, 170, 200, 400], DOC_ZOOM_RANGE = [10, 400];
1629
+ function ZoomSlider() {
1630
+ const commandService = useDependency(ICommandService), univerInstanceService = useDependency(IUniverInstanceService), currentDoc$ = useMemo(() => univerInstanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_DOC), []), documentDataModel = useObservable(currentDoc$), getCurrentZoom = useCallback(() => {
1631
+ var _a23, _b;
1632
+ if (!documentDataModel) return 100;
1633
+ const currentZoom = ((_b = (_a23 = documentDataModel.getSettings()) == null ? void 0 : _a23.zoomRatio) != null ? _b : 1) * 100;
1634
+ return Math.round(currentZoom);
1635
+ }, [documentDataModel]), [zoom, setZoom] = useState(() => getCurrentZoom());
1636
+ useEffect(() => (setZoom(getCurrentZoom()), commandService.onCommandExecuted((commandInfo) => {
1637
+ if (commandInfo.id === SetDocZoomRatioOperation.id) {
1638
+ const currentZoom = getCurrentZoom();
1639
+ setZoom(currentZoom);
1640
+ }
1641
+ }).dispose), [commandService, getCurrentZoom]);
1642
+ function handleChange(value) {
1643
+ if (setZoom(value), documentDataModel == null)
1644
+ return;
1645
+ const zoomRatio = value / 100;
1646
+ commandService.executeCommand(SetDocZoomRatioOperation.id, {
1647
+ unitId: documentDataModel.getUnitId(),
1648
+ zoomRatio
1649
+ });
1650
+ }
1651
+ return __name(handleChange, "handleChange"), /* @__PURE__ */ jsxRuntimeExports.jsx(
1652
+ Slider,
1653
+ {
1654
+ min: DOC_ZOOM_RANGE[0],
1655
+ value: zoom,
1656
+ shortcuts: ZOOM_MAP,
1657
+ onChange: handleChange
1658
+ }
1659
+ );
1660
+ }
1661
+ __name(ZoomSlider, "ZoomSlider");
1662
+ function CountBar(props) {
1663
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("section", { className: styles$4.docCountBar, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ZoomSlider, {}) });
1664
+ }
1665
+ __name(CountBar, "CountBar");
1666
+ const docFooterContainer = "univer-doc-footer-container", styles$3 = {
1667
+ docFooterContainer
1668
+ }, DocFooter = /* @__PURE__ */ __name(() => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$3.docFooterContainer, children: [
1669
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", {}),
1670
+ /* @__PURE__ */ jsxRuntimeExports.jsx(CountBar, {})
1671
+ ] }), "DocFooter"), BoldShortCut = {
1672
+ id: SetInlineFormatBoldCommand.id,
1673
+ binding: KeyCode.B | MetaKeys.CTRL_COMMAND,
1674
+ preconditions: whenDocAndEditorFocused
1675
+ }, ItalicShortCut = {
1676
+ id: SetInlineFormatItalicCommand.id,
1677
+ binding: KeyCode.I | MetaKeys.CTRL_COMMAND,
1678
+ preconditions: whenDocAndEditorFocused
1679
+ }, UnderlineShortCut = {
1680
+ id: SetInlineFormatUnderlineCommand.id,
1681
+ binding: KeyCode.U | MetaKeys.CTRL_COMMAND,
1682
+ preconditions: whenDocAndEditorFocused
1683
+ }, StrikeThroughShortCut = {
1684
+ id: SetInlineFormatStrikethroughCommand.id,
1685
+ binding: KeyCode.X | MetaKeys.SHIFT | MetaKeys.CTRL_COMMAND,
1686
+ preconditions: whenDocAndEditorFocused
1687
+ }, SubscriptShortCut = {
1688
+ id: SetInlineFormatSubscriptCommand.id,
1689
+ binding: KeyCode.COMMA | MetaKeys.CTRL_COMMAND,
1690
+ preconditions: whenDocAndEditorFocused
1691
+ }, SuperscriptShortCut = {
1692
+ id: SetInlineFormatSuperscriptCommand.id,
1693
+ binding: KeyCode.PERIOD | MetaKeys.CTRL_COMMAND,
1694
+ preconditions: whenDocAndEditorFocused
1695
+ }, AlignLeftShortCut = {
1696
+ id: AlignLeftCommand.id,
1697
+ binding: KeyCode.L | MetaKeys.CTRL_COMMAND | MetaKeys.SHIFT,
1698
+ preconditions: whenDocAndEditorFocused
1699
+ }, AlignRightShortCut = {
1700
+ id: AlignRightCommand.id,
1701
+ binding: KeyCode.R | MetaKeys.CTRL_COMMAND | MetaKeys.SHIFT,
1702
+ preconditions: whenDocAndEditorFocused
1703
+ }, AlignCenterShortCut = {
1704
+ id: AlignCenterCommand.id,
1705
+ binding: KeyCode.E | MetaKeys.CTRL_COMMAND | MetaKeys.SHIFT,
1706
+ preconditions: whenDocAndEditorFocused
1707
+ }, AlignJustifyShortCut = {
1708
+ id: AlignJustifyCommand.id,
1709
+ binding: KeyCode.J | MetaKeys.CTRL_COMMAND | MetaKeys.SHIFT,
1710
+ preconditions: whenDocAndEditorFocused
1711
+ }, OrderListShortCut = {
1712
+ id: OrderListCommand.id,
1713
+ binding: KeyCode.Digit7 | MetaKeys.CTRL_COMMAND | MetaKeys.SHIFT,
1714
+ preconditions: whenDocAndEditorFocused
1715
+ }, BulletListShortCut = {
1716
+ id: BulletListCommand.id,
1717
+ binding: KeyCode.Digit8 | MetaKeys.CTRL_COMMAND | MetaKeys.SHIFT,
1718
+ preconditions: whenDocAndEditorFocused
1719
+ }, TabShortCut = {
1720
+ id: TabCommand.id,
1721
+ binding: KeyCode.TAB,
1722
+ preconditions: whenDocAndEditorFocused
1723
+ }, ShiftTabShortCut = {
1724
+ id: TabCommand.id,
1725
+ binding: KeyCode.TAB | MetaKeys.SHIFT,
1726
+ preconditions: whenDocAndEditorFocused,
1727
+ staticParameters: {
1728
+ shift: !0
1729
+ }
1730
+ }, docListTypePicker = "univer-doc-list-type-picker", docListTypePickerItem = "univer-doc-list-type-picker-item", docListTypePickerItemActive = "univer-doc-list-type-picker-item-active", styles$2 = {
1731
+ docListTypePicker,
1732
+ docListTypePickerItem,
1733
+ docListTypePickerItemActive
1734
+ }, ListTypePicker = /* @__PURE__ */ __name((props) => {
1735
+ const { value, onChange, options } = props;
1736
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$2.docListTypePicker, children: options.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1737
+ "img",
1738
+ {
1739
+ className: styles$2.docListTypePickerItem + (value === item.value ? ` ${styles$2.docListTypePickerItemActive}` : ""),
1740
+ onClick: /* @__PURE__ */ __name(() => {
1741
+ onChange(item.value);
1742
+ }, "onClick"),
1743
+ src: item.img
1744
+ },
1745
+ item.value
1746
+ )) });
1747
+ }, "ListTypePicker"), orderListOptions = [
1748
+ {
1749
+ value: PresetListType.ORDER_LIST,
1750
+ img: "data:image/jpeg;base64,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"
1751
+ },
1752
+ {
1753
+ value: PresetListType.ORDER_LIST_1,
1754
+ img: "data:image/jpeg;base64,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"
1755
+ },
1756
+ {
1757
+ value: PresetListType.ORDER_LIST_2,
1758
+ img: "data:image/jpeg;base64,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"
1759
+ },
1760
+ {
1761
+ value: PresetListType.ORDER_LIST_3,
1762
+ img: "data:image/jpeg;base64,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"
1763
+ },
1764
+ {
1765
+ value: PresetListType.ORDER_LIST_4,
1766
+ img: "data:image/jpeg;base64,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"
1767
+ },
1768
+ {
1769
+ value: PresetListType.ORDER_LIST_5,
1770
+ img: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEA2ADYAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/CABEIAPQA2AMBEQACEQEDEQH/xAAyAAEAAgMBAQAAAAAAAAAAAAAABwkGCAoFBAEBAAMBAQAAAAAAAAAAAAAAAAIDBAEF/9oADAMBAAIQAxAAAADv4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKxr669bobzVSoz11dlPmagAAAAAAAAAAOavdn6VMOjmr3Z/hOmLDoA1JAAAAAAAMuNiAAc6e2i1LPZV5orjzvLxst0qx7Ise4WAAAAAAAfaZOAD4SqvRXatnshmcfV53N+dybgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUfaqa/b4dVPn6Pa50QUYwAAAAZOTqAAAAAcuu/PXpdX1vedp2rrn9hgp5YAAAB6hnQAAAABVJorw7vNpa5bh1zyTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWyccN63FrkAAAAAAAAAAABqpZHBu83kqmIeMeAMhJhAAAAAAAABoNdCK5Rs6z2+mRieKAe0ScAAAAAAAACEp8gGUfj633pmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEsuUX66b2cl1al9fnlxma0AAAAAAAAAAc127P0c4tHOXto29qlofdDp/waAIkPiAAAAAAPaJOABzUbs/Svh0c2W7POsJTLDtuee0CDTzwAAAAADISYQAadWwqI0V3AZref7ZRujVLYqE7Ys9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//EACkQAAAGAgIBAwUAAwAAAAAAAAAFBgcIFwQJAgMWAQoQFSAwQGA3OXD/2gAIAQEAAQgA/k9rc/TDX/HIqVjf8oGb3MFA8nvw9c+zVOy9gsq5QOtNDeVN5yTCMrhRE/X2u93JWbldFrdm4094eKUbN9+zV8fcscePBtdcnDh8+SKIeSKIeSKIeSKIeSKIeSKIeSKIeSKIeSKIeSKIeSKIeSKIeSKIeSKIeSKIIU7OcxVFePl/Zv5RKzbDMgRsuQ/bsfgr0sD3Sd9fb6t8tlejpq7Dl/7lr/G+uYS4l6w8HWWOH+kY0TsIB9mub95mrFeI8V4jxXiPFeI8V4jxXiPFeI8V4jxXiPFeI8V4jxXiPFeI8V4jxXiPBcjU2VZnTn4H2GZYWnRaYExzjaMNS+G5PF1uguLi8oL8EpKXxjSw8lcJFFr7vmwbNSYbU8Z9+0WjEm3KQS6AQX/CJft1s/l5M3sjg085mrm1pZQCWnIyybPi9VJ0hVBR8LJZKQqUhlgYFhrAWGsBYawFhrAWGsBYawFhrAWGsBYawCNWSkNVIW4Gf+POM3o21bSJoxIW2/qBmvaC0QPTGQ/rIZjIyxdZpx5BlxiXm5fgmxSDlviY8Msk0y6oToqhOiqE6KoToqhOiqE6KoToqhOiqE6CZviYjMsY0xPxy106RVlm+WHJzu46LIE57SOq2K5l9rpi9ORh0RHWQKNSCbb5IJRBI7+vmFIj1iZGN6ZIekBJZZE44mNHKHK/ZnS7ixYKF0rXwbzWm/bgyhgfGGQLrfCqcE5Iz7PK8S11ELXUQtdRBKuCcnh9gFeX+ltU/wBZ8/BpN5ceGqCDfPmTnRMoi3FOU+FC3H144zDYVCKhFQhPNx9BOMM2/TkqyRXJSPT3R6PG7gchULr46NeHdrcgMjtbkZi6NSI/m30fRqI0tMtnwe/j7htMdRBxeQxZR6WwkU1KFe5mZY7jWXj0+BhFdoIn7m2XkC/nRE15/wBbef6+j/Sy1Ea/TrtTqf7k/wBiT7tA/b2Mk7+2DX8Wad9frvwmRkmlnJ/fqYp9wJT6hWKan5MnS+nmOfgC3hbwt4W8LeFvC3hbwt4W8LeFvC3gnnH+vHGGU/buR49TSbO9IUnz4aQOy1Zybv5Rks5toLv5UgOzXRrE12apUtD9TqiSb5/Ju2Z9nmpnndNUKIVQohVCiFUKIVQohVCiFUKIVQohVCiFUKIVQohVCiFUKIJVvjkjPsA0y/snfCRodgsbVjG55OuEvuAchFdkbDCEcMmsgNGNCxlZKM2mrcBEE3eJQsEkoqb+C9VpjPV+zyCEnpqm0Ws6Of8ASf/EADoQAAEEAQIEAwYCCgEFAAAAAAQCAwUGAQAHCBESExSUpRWV09TV5QkhEBYXICIjJDNAYDBYWXC1t//aAAgBAQAJPwD/AFOnjbl8Q29G4EBsdw3bbFd9YVl3WuKCcRhk0OIQGYRXoFodRRogxsc5LyT8LXEysQ5OtSYn4tY0lxM+zM2t/h0M2K2+xw/Fy6RfaGdrRrEp7EeGM8S0zA4tzNBDbThbzyXBsOqncQDm2V+4eP2i1Tiuo4UfJOqpF62dgE2S5kQcMRl+ccipasuB2GLinvFmxxxchUFHS0lAFnEbMbk8LXBjuBxMbXbWD787zUqqM7h8RRNmMPKOiaLUbMLZ4qH2vzX4yRILtcHiVljZHMSO1Za6SiUr7v8Aj4derUPuHvLuOwEvn4J20RCaTLRB60JyjD5kSbS4x4RbuXPA991Q6UYMKS/ocMylF8Rm3F4XCOoSVFe19xD99JC4JcAfw4I6maWYyxKsray27gFsdaFMpw2lKUIR+IntAlCE4wlKUpgLPhKUpxywlKcYxjGMYxjGMcsfl+5PzXvQ74+p+a96HfH1PzXvQ74+p+a96HfH1PzXvQ74+p+a96HfH1PzXvQ74+p+a96HfH1PzXvQ74+p+a96HfH1PzXvQ74+p+a96HfH1PzXvQ74+p+a96HfH1PzXvQ74+peUKHc8d3GCDy32V9EcYtHW066pCulaUrT1Jz0qSlWOWcYz+7WJW4j/h88RwVn3ersC0hUsTsduJK05u5SqVKXjkwAVTY2uZew28mKTeHpwxCIiNlCGeKXZtezDFZ/WldlbukQqRyLkBMg3CpqXiMW7N0eS40EzRMweLi5LutwyYT2mtIua1IU4/8AEZ4obRu5Q67LNJakxNma1PXFdAdISplD6Rval2uUdCrW8UPJV+MibAAQQHNtFk/9xXaH/wBDaNWwmobcw8vBwCzI+ElrHLSM7YjPBxMREwkKKXIHGEKS+S5hDSWRQAzTinmRhXXE2Bi1bcboVKDu9KsI45YaZWu2IBmRjSXAZBgWRjiuw+ls2MkhRJKNMQ+BICjGDvsN6iPUJT53UR6hKfO6iPUJT53UR6hKfO6iPUJT53UR6hKfO6iPUJT53UR6hKfO6iPUJT53UR6hKfO6iPUJT53UR6hKfO6iPUJT53UR6hKfO6iPUJT53Ub2C2O52nfGHu9HdaWy5/LeKcaV1NOLT/EjPLnzxyVjGcfuR4MtDywJcZKxUmIwfGycaew4KdHyAJTbopoJorroxYhLTjBDDjjLza21qTngi2qxaUSftZEc6deSNu0meJcLwhOz5Ftd2kSAl51WEROKRiKQwloVAWBWGWWwQ4uKiwxo6NjY4ZgKPjo8JhAwYIIYyGhhAxBmmxxhh222GGG0NNIQ2hKcbYVnc4Hbq6Ru4lIGszBD7Vau0Qy+xG2SNwOSNlEiGyUQ2ytzLjeEur5t55/ltzWd09tLGsB6XqNrCyZHEFRZjR8acwttxgyPkY8xhsgKSjihDxV4z2SEYWvCq5D1CkUqAiarUarXgB4uCrlcgQWIyGhIiOFQ2MDHRseMwIIMyhLbLDSEJxyx/wCCdybvwNcBdH29jLJb+J3bVVVL3Z3yvpqYY0ij0CWRNfrZQRYj2ziMwe2DBsJIrNtkJIy0DHVuCR+IlxX8WG0NL3HoFb354eOMi8J3fYtdLt8w1EGmVa6SrWHqkY5KYh4gNMHAhS8Y7LLmMWEsIWSgZpTq4qyQsXPRi32ssPrj5gFiRCU8yrOVMuqGIby41nOctrzlGc5zj9Ml2BGPB9prwYDvR3QBXnP5jwrjqup1xav4l55c+WOScYxiX9Pi/ktS/p8X8lqX9Pi/ktS/p8X8lqX9Pi/ktS/p8X8lqX9Pi/ktS/p8X8lqX9Pi/ktSXfEf8Z3WvBgNdfaAKeb/AJjIrbqel1tCv4V458uWeac5xn/j4nt5OGfhM4GWKdCj7NcPNyTtduVvtYp7D4spbLnd2hiJ2SpbcmCek6LFAchg4SXog0cmMnzjbTL33elziV3LtdTH24o924h9x9xcy9birAIdebdOUmfmzo/9Xo+PGXHtWA8JoVm1yUMKA5k5XQ3uxRNnKK9SNrayNaNwbFH1yJLsMtTg346ECIkHmvGypQsfInIBES8SmOjZKRcbQDHmkMHBykVKBiyMZJxxTBsfIx5rCCQzgTBlujFhljOtkClDuOMPsOIdaWttaVZ0TKNkFdnuIHeEQzjsMNDo6EuhPLxzQynKupxXNWVZxyxnCcGzXmAfp2jZrzAP07Rs15gH6do2a8wD9O0bNeYB+naNmvMA/TtGzXmAfp2jZrzAP07Rs15gH6domUcIF73bQQ8ItnPfYdHX1paCZXnkh5WU9LieSsJznnjGU5/47Tv9w5cRKIUevTO8/ClunnZ+9W2KBHGBjmrSfmAsYciYBGCDQzUwyAHMkQosdESEgbHwsGPGw27m7Nl3uGqoG6XEDu1uzYb7xGWqLptvgbzCw2NzZlDi67CqsVbhy5WIqcPAx854Mf2uOa6KG6NWJ+boO3ExWZ+kkwNokq5Z4CVqsEXWAiB5oDP9U2bXZGRiJQSRFMDLaMyYgdmVDjDwYtqDqNIrcFUKrCsOkvsQ9brUWLDQcWy+a8SY81HxgQojbpZBBLiGcLfeddypav8Ab9ubXu1naCknW/8AZ7SulM/Y8CvjD5aQUsY3EXEx+Csy1lm8R8kqBrQEvMoi5NYCQCNpbTsg/uhHTRi9ubcZmUkIjMLZZiueMj5pURX3J+uTXsj2xW512vwa5aGNDNxGDoeR1f5L0eNfNouHrd3cemkSoKJSMZs1No03PwjshGuqQ2eGiQBHUQI4tKCGsKaUrGFZzomKL3F3V2zBtNtJhIxqGiXpYiRkhnFgxbK3GgmMtCtYwyhak4VhWef5/pGjHBxfC9tZDJa3s98MchfWpo1lGeS3lYT0tp5JwnGeecZVkKF8ud9R0FC+XO+o6ChfLnfUdDRjY5Xiu4sdktD2OwGQQjoU6a8jHNbKcK6m1c05VjHLOcKx/hf9H3EP/wDLLPpSUIRsfGKWtWcJSlKZiaypSlZ5YSlOMZznOc4xjGOefy1LRk7DnJcUFKw54snGlpaecHdUKcE6+KQlt9p1hzLTq8IeacbVyWhScamfCeL8P/T+zu/2+wKwN/d8cz1dXZ6/7aenq6fz5dWbD6T9z1YfSfuerD6T9z1M+L8J4j+n9ndjud8V8b+7457p6e91/wBtXV09P5c+rH+FNyFaht7tqr3tXK2GKHHLk4OPvdbka2XKx4pmcCkGAMSKyR2Sc4YcdbSh3PRnOr3d5Lbz9g1r2BN3AjHgq3fHa7bombh5CaBcFZMiwJhkacIyw06IdGPZbSxIAmhPEivbh3Lc2JEuVqu5FmujYAhXtK1Oh5IAiIiMxkOFhRmo8dxALb5SnpQiVlXX+7JLZa/1u6RVA2w29h3Zu02eXy8pkQZC0MDCBhiNESEvMShrw8ZCQcUKZLTUqWJGRgZRpTDC/wAOH8Q+O4SXncPscTjmzY7lRxW1LxyuxYSZRMaPUEjJfOXLs2stPhm0NNNPSDyQU26Mve2G5EExYqhaYlTnhZKPecdHebdYIbZMj5OMPHLiZqHkBxpSFmQT4iUEFkAiR2tluIPjW4ooGOYmLjs7wvUEm7FbdRhIwpbJO4E+hXg4Rahz4158WOEnCIpuQDVPoiMlh4J2T3+4JuJ6VDdkKhtVxOU9uoJ3DFQ2t9DNDsCiEIl5N8VkosIA+LiEzI47iq0TOuNvtMf42XSNrN/eJqW3R3phcPKaHs9T2fxV8B1kxtvDmDAJeFsl/QUwWzkUc1iIOSh18dDocHDvVZ6HXXXa07GBOV92vuBZjVwbkMtjMcuHXHZyAuMUNkJQWci5YyxnLeiinNt+E/jCJn9ngjzCjiYWgbuG3gGOr7DxXPKBY2P2yhZEppntjvT0/NSiWu9JkOuyW39v4oeKLiMtm7u4V9oU9NWoWTrEgICZWoEmfsVVqEs+7GWeX3Al3WFRDY6HrEpbTi05Q2yoGY4wccZNR3EqYkK00faqTtTFzEE7ZLJYMhJekoCpETMRGWNRRqGY42O27tconLjFXknBv0wXe8CaUH3fafb7vhn3Ge52/Z6+jr6Oro619PPl1K5c8171b7ZqverfbNV71b7ZqverfbNV71b7ZqverfbNV71b7ZqverfbNV71b7ZqverfbNV71b7ZqverfbNV71b7ZqG8J4vxH9R7R7/b7Ar5P9rwLPV1dno/uJ6erq/Pl05/cykTb6O37vGx9vsJquxC1qS3HepMbUyJM5eWxwmiBpi3SjxBDzbI4VZMKe5jjvZTp1J+3u4PF5AbT0WcDy0uJn07OmbookpMIhC3FEtGwVrpEsIrpZxgOXbdcwtwjLYlBhd8eNc2Mcf3M3Dn3OvZThNgn0Dtv2XcOQbYKDlLRENHhkqgyMORcPIHQ0aeFbLKYnb43cmd4quPDdcNad0+JG+ZcKcjGi89JFT2pizu8/U6u0C2DDEF5d9py4MYOMOzXK34SoRn6S4hLJsgaW0l18zDiWySXHkJcwkBacLwleMLwla04VzxhSsfnk2F8wd9O0bC+YO+naNhfMHfTtGwvmDvp2jYXzB307RsL5g76do2F8wd9O0bC+YO+naNhfMHfTtGwvmDvp2jYXzB307RsL5g76do2F8wd9O0TGODi+K7iB3i1vZ74ZA6OhLoTKM8lvJyrqcTyThWcc84wnP7jZwcNPPgT9Vt8KgXNm26v0Dl9davFZcLbcZRIxuSjI84ZXbRMV2VnK+++yLLPuJ/En4bE7IvRn6lO8RYu21zc4uc0bsqiXH2xHINiBRbn4VCMrsatz3bg1JEkGtXv2owxNLQS7BUwORMOs1gQ05OXa7zr7khYrpaFhYYS6ZLybmMNhjqSzEQYsXXo1bcfEhJR+I9w8VOyb+3szcfdu0S/DrFXy03O1nEnHOlyVlv1Ws074VJ8rLSDUc1INgokZaTPywow8l9z8U3h+n6mFYYUu0QQfCnt1HlzVdGkhnpqJFPZ26ZeCJkY1BIbBbTzTgzryXm3W1IwrHGZb+EwbZPcqUtt/Yqy7Ey5dQZFyrLiZgdVemIps+w0luCmh4OCsiSq1Kt3CSVIOhpEy1I/wCyf//EADsRAAEDAQYCBgcFCQAAAAAAAAECAxESAAQTITFBUWEiMkBxkbEQFGBzocHwM1JygdEjNEJwgpKisuH/2gAIAQIBAT8A9k7uzjLgmlCQVrVwSOHM/qdrY10qo9W/ZzFdaq4+9Hxif0s8wW3Q2k1BdJbPEKMCdpnI+O9mro0nES4tLjqW1KoQTSiNyREqnYxHA5HtF3yu17I1pQJ5GZHx9F5zYuat6Cmd+jTHh87XHrP+4V5jtFzIVjMExjIhJOlaQY85/KNYtgu14eGquYiDxiZ0jnMc7XxQBaZSZwGwknaogT5CeeW1rj1n/cK8xZttbqqECVQTqBkOZspJQopUIUkkEcCOzaZi3rd4ppxVREbVf3RV+cz6ELWiaFFNQpMbg7WQtTagpCilQ0IsSVEkkkkkknUk6k/yJbUw21WpIdeJgNqmlAzzOyp+Y0zNmlNXpRaUw22opUULbFMEDKQNdzmYMRGhBEEg6gx4dphN2YacDaXHHZNSxUlAGgA0nPXXIzsBc3n3XMwnDSDJCEpgkZAEAGeXDW1C1uKShJUZUYSCTE65bW0yPaG7y42jDhC0TIS4moA65ZjfPvt629UlQKUhE0oSkBAJBBNI1ME5mYnKzbzjSytBAUoEGQCDJnTvz/5YkkkkySSSeJOZPtg0jEcSioJqMVHQfqeA3MCzzeE4puoLpjpDeQDpJgiYIkwe1NJC3W0K0UtKT3EgGz6EtvOITNKVQJzMdqu/27PvUf7C16/eHfxn5W01y7ShVC0LAkoUFAcYM2U8S9jQKqwuk5iRBjuys+8X3KykJMAQOXEnU/KB7OIQpaghAlSjAA+vE7W9TM0h9jE+5XnPDTXlFlJUhRSoQpJgg/Xhxs3dlLRiKUhpsmApxUVfhG/wnazl1UhGIlaHWxqpszHeNh5bx2e6dBu8vDrIbCUngVTn+RAtJmZMzM7zxnja+dJN3e3cahXNSYz/AMvhyteXkulAbkNtoCUgiIO5gE7R4WumTd5Wr7PCKTOhUQYA2J2/qHHs926TF7QOtQFAbkJmcvDx9F66LV1bOobqI3FVPzB+hZphNGM+Shqeikddw8E8AePkM7PXguAISkNtJ6rafNR3PlzOZ7M06plYWnUZEHRQOoP1kYNsW5zWGHKtcOoYc698cqYj+GzrqnnC4vU7DQAaAd3xOZzNnLzdnQkLYWQgUpAXAA7hA2Fi5c4MMLBgwcQ5HbezDrbQcraS5UmEzGRz4gwDOZGeQ9pf/8QANREAAgEBBQUFBwMFAAAAAAAAAQIRAwASITFBE0BRYXGBkaHB0RAzYHKx8PEEIjJSYnDS4f/aAAgBAwEBPwD4TqPcWQJYmFHEn78tbXK0Xtr+7O7Au9OHbFkqBkLEQVm8OBAkx2elnrObpUFVJAvECW6ZiPvlvFX3tEc58R6eyl7ysP7h4lrfqMk+beK4IuVBjcaSORj0jtttEi9eEROflnPLPS1AGHc4bRiR0xj6m36jJPmszBBebKwIYAgyDiDu+xpzNwT2x3THh7GVWi8AYMjrYqGEMJB0sAAIGAGAH+CXFRmuglEAxYZk8BjI/OeFnD0gHDswkAq5nA89O7tsDIBGonecatR1LFVSMFMFuZPD/muNqyIi4E3icASThqbBgqKWIAhc+m8tSVjexVuKmCeufrbYpBBk3oliZbAznp2CzU1ZQpGAiMcRGFgIEDIYD4wZrqloJgTA++/lZGvqGiJ0O9OSEYjMKSOoFqbFkVjmRj371U92/wAjfQ2o+6Tp5m2e8sLyleII7xFggCbOTEETkcbU0FNboJOJOPP4cJCgkmAMzbb67N7v9UYRx4R22BDAEGQcjZqoU3QrOwzCiY62WqGN0hkbQMInp+N3rYtSTRmlhyER525acLUcDUTRWw6GfS1JCgYtBZmJJH4Gs99q+LUgP5XpHEDDHph4Hhu9XCpRbS9BOgxEefd7KOL1m0LwOyfUWeob2zpiX1Oi9ef4xOFkphSWJvOc2P0HAfeAw3d0DqVPYdQeP3pa5W/jtFjK9BvR685nnNkQIoUaeJ4my0qqyVdQWMkxMntBsFrzjUWPlH+tqiM9265WDJ55Y56efxL/AP/Z"
1771
+ }
1772
+ ], OrderListTypePicker = /* @__PURE__ */ __name((props) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1773
+ ListTypePicker,
1774
+ {
1775
+ ...props,
1776
+ options: orderListOptions
1777
+ }
1778
+ ), "OrderListTypePicker"), bulletOptions = [
1779
+ {
1780
+ value: PresetListType.BULLET_LIST,
1781
+ img: "data:image/jpeg;base64,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"
1782
+ },
1783
+ {
1784
+ value: PresetListType.BULLET_LIST_1,
1785
+ img: "data:image/jpeg;base64,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"
1786
+ },
1787
+ {
1788
+ value: PresetListType.BULLET_LIST_2,
1789
+ img: "data:image/jpeg;base64,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"
1790
+ },
1791
+ {
1792
+ value: PresetListType.BULLET_LIST_3,
1793
+ img: "data:image/jpeg;base64,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"
1794
+ },
1795
+ {
1796
+ value: PresetListType.BULLET_LIST_4,
1797
+ img: "data:image/jpeg;base64,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"
1798
+ },
1799
+ {
1800
+ value: PresetListType.BULLET_LIST_5,
1801
+ img: "data:image/jpeg;base64,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"
1802
+ }
1803
+ ], BulletListTypePicker = /* @__PURE__ */ __name((props) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1804
+ ListTypePicker,
1805
+ {
1806
+ ...props,
1807
+ options: bulletOptions
1808
+ }
1809
+ ), "BulletListTypePicker"), ORDER_LIST_TYPE_COMPONENT = `${COMPONENT_PREFIX}_ORDER_LIST_TYPE_COMPONENT`, BULLET_LIST_TYPE_COMPONENT = `${COMPONENT_PREFIX}_BULLET_LIST_TYPE_COMPONENT`, COMPONENT_DOC_CREATE_TABLE_CONFIRM = "COMPONENT_DOC_CREATE_TABLE_CONFIRM", COMPONENT_DOC_CREATE_TABLE_CONFIRM_ID = "doc.component.create-table-confirm", DocCreateTableOperation = {
1810
+ id: "doc.operation.create-table",
1811
+ type: CommandType.COMMAND,
1812
+ handler: /* @__PURE__ */ __name(async (accessor) => {
1813
+ const localeService = accessor.get(LocaleService), confirmService = accessor.get(IConfirmService), commandService = accessor.get(ICommandService), tableCreateParams = {
1814
+ rowCount: 3,
1815
+ colCount: 5
1816
+ }, handleRowColChange = /* @__PURE__ */ __name((rowCount, colCount) => {
1817
+ tableCreateParams.rowCount = rowCount, tableCreateParams.colCount = colCount;
1818
+ }, "handleRowColChange");
1819
+ return await confirmService.open({
1820
+ id: COMPONENT_DOC_CREATE_TABLE_CONFIRM_ID,
1821
+ children: {
1822
+ label: {
1823
+ name: COMPONENT_DOC_CREATE_TABLE_CONFIRM,
1824
+ props: {
1825
+ handleRowColChange,
1826
+ tableCreateParams
1827
+ }
1828
+ }
1829
+ },
1830
+ width: 400,
1831
+ title: { title: localeService.t("toolbar.table.insert") },
1832
+ onConfirm: /* @__PURE__ */ __name(() => {
1833
+ commandService.executeCommand(CreateDocTableCommand.id, tableCreateParams), confirmService.close(COMPONENT_DOC_CREATE_TABLE_CONFIRM_ID);
1834
+ }, "onConfirm"),
1835
+ onClose: /* @__PURE__ */ __name(() => {
1836
+ confirmService.close(COMPONENT_DOC_CREATE_TABLE_CONFIRM_ID);
1837
+ }, "onClose")
1838
+ }), !0;
1839
+ }, "handler")
1840
+ };
1841
+ function getInsertTableHiddenObservable(accessor) {
1842
+ const univerInstanceService = accessor.get(IUniverInstanceService), renderManagerService = accessor.get(IRenderManagerService);
1843
+ return new Observable((subscriber) => {
1844
+ const subscription = univerInstanceService.focused$.subscribe((unitId) => {
1845
+ if (unitId == null || univerInstanceService.getUnitType(unitId) !== UniverInstanceType.UNIVER_DOC)
1846
+ return subscriber.next(!0);
1847
+ const currentRender2 = renderManagerService.getRenderById(unitId);
1848
+ if (currentRender2 == null)
1849
+ return subscriber.next(!0);
1850
+ currentRender2.with(DocSkeletonManagerService).getViewModel().editAreaChange$.subscribe((editArea) => {
1851
+ subscriber.next(editArea === DocumentEditArea.HEADER || editArea === DocumentEditArea.FOOTER);
1852
+ });
1853
+ }), currentRender = renderManagerService.getCurrentTypeOfRenderer(UniverInstanceType.UNIVER_DOC);
1854
+ if (currentRender == null)
1855
+ return subscriber.next(!0);
1856
+ const viewModel = currentRender.with(DocSkeletonManagerService).getViewModel();
1857
+ return subscriber.next(viewModel.getEditArea() !== DocumentEditArea.BODY), () => subscription.unsubscribe();
1858
+ });
1859
+ }
1860
+ __name(getInsertTableHiddenObservable, "getInsertTableHiddenObservable");
1861
+ function getTableDisabledObservable(accessor) {
1862
+ const textSelectionManagerService = accessor.get(TextSelectionManagerService), univerInstanceService = accessor.get(IUniverInstanceService);
1863
+ return new Observable((subscriber) => {
1864
+ const subscription = textSelectionManagerService.textSelection$.subscribe((selection) => {
1865
+ if (selection == null) {
1866
+ subscriber.next(!0);
1867
+ return;
1868
+ }
1869
+ const { textRanges } = selection;
1870
+ if (textRanges.length !== 1) {
1871
+ subscriber.next(!0);
1872
+ return;
1873
+ }
1874
+ const textRange = textRanges[0], { collapsed, anchorNodePosition, startOffset } = textRange;
1875
+ if (!collapsed || startOffset == null) {
1876
+ subscriber.next(!0);
1877
+ return;
1878
+ }
1879
+ const docDataModel = univerInstanceService.getCurrentUniverDocInstance();
1880
+ if (docDataModel == null) {
1881
+ subscriber.next(!0);
1882
+ return;
1883
+ }
1884
+ const docSkeletonManagerService = getCommandSkeleton(accessor, docDataModel.getUnitId());
1885
+ if (docSkeletonManagerService == null) {
1886
+ subscriber.next(!0);
1887
+ return;
1888
+ }
1889
+ if (docSkeletonManagerService.getViewModel().getCustomRangeRaw(startOffset)) {
1890
+ subscriber.next(!0);
1891
+ return;
1892
+ }
1893
+ if (anchorNodePosition != null) {
1894
+ const { path } = anchorNodePosition;
1895
+ if (path.indexOf("cells") !== -1) {
1896
+ subscriber.next(!0);
1897
+ return;
1898
+ }
1899
+ }
1900
+ subscriber.next(!1);
1901
+ });
1902
+ return () => subscription.unsubscribe();
1903
+ });
1904
+ }
1905
+ __name(getTableDisabledObservable, "getTableDisabledObservable");
1906
+ function BoldMenuItemFactory(accessor) {
1907
+ const commandService = accessor.get(ICommandService);
1908
+ return {
1909
+ id: SetInlineFormatBoldCommand.id,
1910
+ group: MenuGroup.TOOLBAR_FORMAT,
1911
+ type: MenuItemType.BUTTON,
1912
+ icon: "BoldSingle",
1913
+ title: "Set bold",
1914
+ tooltip: "toolbar.bold",
1915
+ positions: [MenuPosition.TOOLBAR_START],
1916
+ activated$: new Observable((subscriber) => {
1917
+ const disposable = commandService.onCommandExecuted((c) => {
1918
+ var _a23;
1919
+ const id = c.id;
1920
+ if (id === SetTextSelectionsOperation.id || id === SetInlineFormatCommand.id) {
1921
+ const textRun = getFontStyleAtCursor(accessor);
1922
+ if (textRun == null)
1923
+ return;
1924
+ const bl = (_a23 = textRun.ts) == null ? void 0 : _a23.bl;
1925
+ subscriber.next(bl === BooleanNumber.TRUE);
1926
+ }
1927
+ });
1928
+ return subscriber.next(!1), disposable.dispose;
1929
+ }),
1930
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
1931
+ };
1932
+ }
1933
+ __name(BoldMenuItemFactory, "BoldMenuItemFactory");
1934
+ function ItalicMenuItemFactory(accessor) {
1935
+ const commandService = accessor.get(ICommandService);
1936
+ return {
1937
+ id: SetInlineFormatItalicCommand.id,
1938
+ group: MenuGroup.TOOLBAR_FORMAT,
1939
+ type: MenuItemType.BUTTON,
1940
+ icon: "ItalicSingle",
1941
+ title: "Set italic",
1942
+ tooltip: "toolbar.italic",
1943
+ positions: [MenuPosition.TOOLBAR_START],
1944
+ activated$: new Observable((subscriber) => {
1945
+ const disposable = commandService.onCommandExecuted((c) => {
1946
+ var _a23;
1947
+ const id = c.id;
1948
+ if (id === SetTextSelectionsOperation.id || id === SetInlineFormatCommand.id) {
1949
+ const textRun = getFontStyleAtCursor(accessor);
1950
+ if (textRun == null)
1951
+ return;
1952
+ const it = (_a23 = textRun.ts) == null ? void 0 : _a23.it;
1953
+ subscriber.next(it === BooleanNumber.TRUE);
1476
1954
  }
1477
1955
  });
1478
1956
  return subscriber.next(!1), disposable.dispose;
@@ -1493,13 +1971,13 @@ function UnderlineMenuItemFactory(accessor) {
1493
1971
  positions: [MenuPosition.TOOLBAR_START],
1494
1972
  activated$: new Observable((subscriber) => {
1495
1973
  const disposable = commandService.onCommandExecuted((c) => {
1496
- var _a19;
1974
+ var _a23;
1497
1975
  const id = c.id;
1498
1976
  if (id === SetTextSelectionsOperation.id || id === SetInlineFormatCommand.id) {
1499
1977
  const textRun = getFontStyleAtCursor(accessor);
1500
1978
  if (textRun == null)
1501
1979
  return;
1502
- const ul = (_a19 = textRun.ts) == null ? void 0 : _a19.ul;
1980
+ const ul = (_a23 = textRun.ts) == null ? void 0 : _a23.ul;
1503
1981
  subscriber.next((ul == null ? void 0 : ul.s) === BooleanNumber.TRUE);
1504
1982
  }
1505
1983
  });
@@ -1521,13 +1999,13 @@ function StrikeThroughMenuItemFactory(accessor) {
1521
1999
  positions: [MenuPosition.TOOLBAR_START],
1522
2000
  activated$: new Observable((subscriber) => {
1523
2001
  const disposable = commandService.onCommandExecuted((c) => {
1524
- var _a19;
2002
+ var _a23;
1525
2003
  const id = c.id;
1526
2004
  if (id === SetTextSelectionsOperation.id || id === SetInlineFormatCommand.id) {
1527
2005
  const textRun = getFontStyleAtCursor(accessor);
1528
2006
  if (textRun == null)
1529
2007
  return;
1530
- const st = (_a19 = textRun.ts) == null ? void 0 : _a19.st;
2008
+ const st = (_a23 = textRun.ts) == null ? void 0 : _a23.st;
1531
2009
  subscriber.next((st == null ? void 0 : st.s) === BooleanNumber.TRUE);
1532
2010
  }
1533
2011
  });
@@ -1548,13 +2026,13 @@ function SubscriptMenuItemFactory(accessor) {
1548
2026
  positions: [MenuPosition.TOOLBAR_START],
1549
2027
  activated$: new Observable((subscriber) => {
1550
2028
  const disposable = commandService.onCommandExecuted((c) => {
1551
- var _a19;
2029
+ var _a23;
1552
2030
  const id = c.id;
1553
2031
  if (id === SetTextSelectionsOperation.id || id === SetInlineFormatCommand.id) {
1554
2032
  const textRun = getFontStyleAtCursor(accessor);
1555
2033
  if (textRun == null)
1556
2034
  return;
1557
- const va = (_a19 = textRun.ts) == null ? void 0 : _a19.va;
2035
+ const va = (_a23 = textRun.ts) == null ? void 0 : _a23.va;
1558
2036
  subscriber.next(va === BaselineOffset.SUBSCRIPT);
1559
2037
  }
1560
2038
  });
@@ -1575,13 +2053,13 @@ function SuperscriptMenuItemFactory(accessor) {
1575
2053
  positions: [MenuPosition.TOOLBAR_START],
1576
2054
  activated$: new Observable((subscriber) => {
1577
2055
  const disposable = commandService.onCommandExecuted((c) => {
1578
- var _a19;
2056
+ var _a23;
1579
2057
  const id = c.id;
1580
2058
  if (id === SetTextSelectionsOperation.id || id === SetInlineFormatCommand.id) {
1581
2059
  const textRun = getFontStyleAtCursor(accessor);
1582
2060
  if (textRun == null)
1583
2061
  return;
1584
- const va = (_a19 = textRun.ts) == null ? void 0 : _a19.va;
2062
+ const va = (_a23 = textRun.ts) == null ? void 0 : _a23.va;
1585
2063
  subscriber.next(va === BaselineOffset.SUPERSCRIPT);
1586
2064
  }
1587
2065
  });
@@ -1610,13 +2088,13 @@ function FontFamilySelectorMenuItemFactory(accessor) {
1610
2088
  // disabled$: getCurrentSheetDisabled$(accessor),
1611
2089
  value$: new Observable((subscriber) => {
1612
2090
  const defaultValue = FONT_FAMILY_LIST[0].value, disposable = commandService.onCommandExecuted((c) => {
1613
- var _a19;
2091
+ var _a23;
1614
2092
  const id = c.id;
1615
2093
  if (id === SetTextSelectionsOperation.id || id === SetInlineFormatFontFamilyCommand.id) {
1616
2094
  const textRun = getFontStyleAtCursor(accessor);
1617
2095
  if (textRun == null)
1618
2096
  return;
1619
- const ff = (_a19 = textRun.ts) == null ? void 0 : _a19.ff;
2097
+ const ff = (_a23 = textRun.ts) == null ? void 0 : _a23.ff;
1620
2098
  subscriber.next(ff != null ? ff : defaultValue);
1621
2099
  }
1622
2100
  });
@@ -1646,13 +2124,13 @@ function FontSizeSelectorMenuItemFactory(accessor) {
1646
2124
  // disabled$,
1647
2125
  value$: new Observable((subscriber) => {
1648
2126
  const disposable = commandService.onCommandExecuted((c) => {
1649
- var _a19;
2127
+ var _a23;
1650
2128
  const id = c.id;
1651
2129
  if (id === SetTextSelectionsOperation.id || id === SetInlineFormatFontSizeCommand.id) {
1652
2130
  const textRun = getFontStyleAtCursor(accessor);
1653
2131
  if (textRun == null)
1654
2132
  return;
1655
- const fs = (_a19 = textRun.ts) == null ? void 0 : _a19.fs;
2133
+ const fs = (_a23 = textRun.ts) == null ? void 0 : _a23.fs;
1656
2134
  subscriber.next(fs != null ? fs : 14);
1657
2135
  }
1658
2136
  });
@@ -1705,6 +2183,31 @@ function HeaderFooterMenuItemFactory(accessor) {
1705
2183
  };
1706
2184
  }
1707
2185
  __name(HeaderFooterMenuItemFactory, "HeaderFooterMenuItemFactory");
2186
+ const TableIcon = "GridSingle", TABLE_MENU_ID = "doc.menu.table";
2187
+ function TableMenuFactory(accessor) {
2188
+ return {
2189
+ id: TABLE_MENU_ID,
2190
+ type: MenuItemType.SUBITEMS,
2191
+ positions: [MenuPosition.TOOLBAR_START],
2192
+ group: MenuGroup.TOOLBAR_LAYOUT,
2193
+ icon: TableIcon,
2194
+ tooltip: "toolbar.table.main",
2195
+ disabled$: getTableDisabledObservable(accessor),
2196
+ // Do not show header footer menu and insert table at zen mode.
2197
+ hidden$: combineLatest(getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC), getInsertTableHiddenObservable(accessor), getHeaderFooterMenuHiddenObservable(accessor), (one, two, three) => one || two || three)
2198
+ };
2199
+ }
2200
+ __name(TableMenuFactory, "TableMenuFactory");
2201
+ function InsertTableMenuFactory(_accessor) {
2202
+ return {
2203
+ id: DocCreateTableOperation.id,
2204
+ title: "toolbar.table.insert",
2205
+ type: MenuItemType.BUTTON,
2206
+ positions: [TABLE_MENU_ID],
2207
+ hidden$: getMenuHiddenObservable(_accessor, UniverInstanceType.UNIVER_DOC)
2208
+ };
2209
+ }
2210
+ __name(InsertTableMenuFactory, "InsertTableMenuFactory");
1708
2211
  function AlignLeftMenuItemFactory(accessor) {
1709
2212
  const commandService = accessor.get(ICommandService);
1710
2213
  return {
@@ -1716,13 +2219,13 @@ function AlignLeftMenuItemFactory(accessor) {
1716
2219
  positions: [MenuPosition.TOOLBAR_START],
1717
2220
  activated$: new Observable((subscriber) => {
1718
2221
  const disposable = commandService.onCommandExecuted((c) => {
1719
- var _a19;
2222
+ var _a23;
1720
2223
  const id = c.id;
1721
2224
  if (id === SetTextSelectionsOperation.id || id === AlignOperationCommand.id) {
1722
2225
  const paragraph = getParagraphStyleAtCursor(accessor);
1723
2226
  if (paragraph == null)
1724
2227
  return;
1725
- const alignType = (_a19 = paragraph.paragraphStyle) == null ? void 0 : _a19.horizontalAlign;
2228
+ const alignType = (_a23 = paragraph.paragraphStyle) == null ? void 0 : _a23.horizontalAlign;
1726
2229
  subscriber.next(alignType === HorizontalAlign.LEFT);
1727
2230
  }
1728
2231
  });
@@ -1743,13 +2246,13 @@ function AlignCenterMenuItemFactory(accessor) {
1743
2246
  positions: [MenuPosition.TOOLBAR_START],
1744
2247
  activated$: new Observable((subscriber) => {
1745
2248
  const disposable = commandService.onCommandExecuted((c) => {
1746
- var _a19;
2249
+ var _a23;
1747
2250
  const id = c.id;
1748
2251
  if (id === SetTextSelectionsOperation.id || id === AlignOperationCommand.id) {
1749
2252
  const paragraph = getParagraphStyleAtCursor(accessor);
1750
2253
  if (paragraph == null)
1751
2254
  return;
1752
- const alignType = (_a19 = paragraph.paragraphStyle) == null ? void 0 : _a19.horizontalAlign;
2255
+ const alignType = (_a23 = paragraph.paragraphStyle) == null ? void 0 : _a23.horizontalAlign;
1753
2256
  subscriber.next(alignType === HorizontalAlign.CENTER);
1754
2257
  }
1755
2258
  });
@@ -1770,13 +2273,13 @@ function AlignRightMenuItemFactory(accessor) {
1770
2273
  positions: [MenuPosition.TOOLBAR_START],
1771
2274
  activated$: new Observable((subscriber) => {
1772
2275
  const disposable = commandService.onCommandExecuted((c) => {
1773
- var _a19;
2276
+ var _a23;
1774
2277
  const id = c.id;
1775
2278
  if (id === SetTextSelectionsOperation.id || id === AlignOperationCommand.id) {
1776
2279
  const paragraph = getParagraphStyleAtCursor(accessor);
1777
2280
  if (paragraph == null)
1778
2281
  return;
1779
- const alignType = (_a19 = paragraph.paragraphStyle) == null ? void 0 : _a19.horizontalAlign;
2282
+ const alignType = (_a23 = paragraph.paragraphStyle) == null ? void 0 : _a23.horizontalAlign;
1780
2283
  subscriber.next(alignType === HorizontalAlign.RIGHT);
1781
2284
  }
1782
2285
  });
@@ -1797,13 +2300,13 @@ function AlignJustifyMenuItemFactory(accessor) {
1797
2300
  positions: [MenuPosition.TOOLBAR_START],
1798
2301
  activated$: new Observable((subscriber) => {
1799
2302
  const disposable = commandService.onCommandExecuted((c) => {
1800
- var _a19;
2303
+ var _a23;
1801
2304
  const id = c.id;
1802
2305
  if (id === SetTextSelectionsOperation.id || id === AlignOperationCommand.id) {
1803
2306
  const paragraph = getParagraphStyleAtCursor(accessor);
1804
2307
  if (paragraph == null)
1805
2308
  return;
1806
- const alignType = (_a19 = paragraph.paragraphStyle) == null ? void 0 : _a19.horizontalAlign;
2309
+ const alignType = (_a23 = paragraph.paragraphStyle) == null ? void 0 : _a23.horizontalAlign;
1807
2310
  subscriber.next(alignType === HorizontalAlign.JUSTIFIED);
1808
2311
  }
1809
2312
  });
@@ -1813,15 +2316,53 @@ function AlignJustifyMenuItemFactory(accessor) {
1813
2316
  };
1814
2317
  }
1815
2318
  __name(AlignJustifyMenuItemFactory, "AlignJustifyMenuItemFactory");
2319
+ const listValueFactory$ = /* @__PURE__ */ __name((accessor) => new Observable((subscriber) => {
2320
+ const univerInstanceService = accessor.get(IUniverInstanceService), textSelectionManagerService = accessor.get(TextSelectionManagerService);
2321
+ let textSubscription;
2322
+ const subscription = univerInstanceService.focused$.subscribe((unitId) => {
2323
+ if (textSubscription == null || textSubscription.unsubscribe(), unitId == null)
2324
+ return;
2325
+ const docDataModel = univerInstanceService.getUniverDocInstance(unitId);
2326
+ docDataModel != null && (textSubscription = textSelectionManagerService.textSelection$.subscribe(() => {
2327
+ var _a23, _b;
2328
+ const range = textSelectionManagerService.getActiveTextRangeWithStyle();
2329
+ if (range) {
2330
+ const doc = docDataModel.getSelfOrHeaderFooterModel(range == null ? void 0 : range.segmentId), paragraphs = getParagraphsInRange(range, (_b = (_a23 = doc.getBody()) == null ? void 0 : _a23.paragraphs) != null ? _b : []);
2331
+ let listType;
2332
+ if (paragraphs.every((p2) => {
2333
+ var _a24;
2334
+ return listType || (listType = (_a24 = p2.bullet) == null ? void 0 : _a24.listType), p2.bullet && p2.bullet.listType === listType;
2335
+ })) {
2336
+ subscriber.next(listType);
2337
+ return;
2338
+ }
2339
+ }
2340
+ subscriber.next(void 0);
2341
+ }));
2342
+ });
2343
+ return () => {
2344
+ subscription.unsubscribe(), textSubscription == null || textSubscription.unsubscribe();
2345
+ };
2346
+ }), "listValueFactory$");
1816
2347
  function OrderListMenuItemFactory(accessor) {
1817
2348
  return {
1818
2349
  id: OrderListCommand.id,
1819
2350
  group: MenuGroup.TOOLBAR_LAYOUT,
1820
- type: MenuItemType.BUTTON,
2351
+ type: MenuItemType.BUTTON_SELECTOR,
2352
+ selections: [
2353
+ {
2354
+ label: {
2355
+ name: ORDER_LIST_TYPE_COMPONENT,
2356
+ hoverable: !1
2357
+ },
2358
+ value$: listValueFactory$(accessor)
2359
+ }
2360
+ ],
1821
2361
  icon: "OrderSingle",
1822
2362
  tooltip: "toolbar.order",
1823
2363
  positions: [MenuPosition.TOOLBAR_START],
1824
- hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
2364
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC),
2365
+ activated$: listValueFactory$(accessor).pipe(map((v) => v && v.indexOf("ORDER_LIST") === 0))
1825
2366
  };
1826
2367
  }
1827
2368
  __name(OrderListMenuItemFactory, "OrderListMenuItemFactory");
@@ -1829,14 +2370,37 @@ function BulletListMenuItemFactory(accessor) {
1829
2370
  return {
1830
2371
  id: BulletListCommand.id,
1831
2372
  group: MenuGroup.TOOLBAR_LAYOUT,
1832
- type: MenuItemType.BUTTON,
2373
+ type: MenuItemType.BUTTON_SELECTOR,
2374
+ selections: [
2375
+ {
2376
+ label: {
2377
+ name: BULLET_LIST_TYPE_COMPONENT,
2378
+ hoverable: !1
2379
+ },
2380
+ value$: listValueFactory$(accessor)
2381
+ }
2382
+ ],
1833
2383
  icon: "UnorderSingle",
1834
2384
  tooltip: "toolbar.unorder",
1835
2385
  positions: [MenuPosition.TOOLBAR_START],
1836
- hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
2386
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC),
2387
+ activated$: listValueFactory$(accessor).pipe(map((v) => v && v.indexOf("BULLET_LIST") === 0))
1837
2388
  };
1838
2389
  }
1839
2390
  __name(BulletListMenuItemFactory, "BulletListMenuItemFactory");
2391
+ function CheckListMenuItemFactory(accessor) {
2392
+ return {
2393
+ id: CheckListCommand.id,
2394
+ group: MenuGroup.TOOLBAR_LAYOUT,
2395
+ type: MenuItemType.BUTTON,
2396
+ icon: "TodoList",
2397
+ tooltip: "toolbar.checklist",
2398
+ positions: [MenuPosition.TOOLBAR_START],
2399
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC),
2400
+ activated$: listValueFactory$(accessor).pipe(map((v) => v && v.indexOf("CHECK_LIST") === 0))
2401
+ };
2402
+ }
2403
+ __name(CheckListMenuItemFactory, "CheckListMenuItemFactory");
1840
2404
  function ResetBackgroundColorMenuItemFactory(accessor) {
1841
2405
  return {
1842
2406
  id: ResetInlineFormatTextBackgroundColorCommand.id,
@@ -1878,11 +2442,11 @@ function BackgroundColorSelectorMenuItemFactory(accessor) {
1878
2442
  }
1879
2443
  __name(BackgroundColorSelectorMenuItemFactory, "BackgroundColorSelectorMenuItemFactory");
1880
2444
  function getFontStyleAtCursor(accessor) {
1881
- var _a19;
1882
- const univerInstanceService = accessor.get(IUniverInstanceService), textSelectionService = accessor.get(TextSelectionManagerService), docDataModel = univerInstanceService.getCurrentUniverDocInstance(), activeTextRange = textSelectionService.getActiveRange();
2445
+ var _a23;
2446
+ const univerInstanceService = accessor.get(IUniverInstanceService), textSelectionService = accessor.get(TextSelectionManagerService), docDataModel = univerInstanceService.getCurrentUniverDocInstance(), activeTextRange = textSelectionService.getActiveTextRangeWithStyle();
1883
2447
  if (docDataModel == null || activeTextRange == null)
1884
2448
  return;
1885
- const { startOffset, segmentId } = activeTextRange, textRuns = (_a19 = docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody()) == null ? void 0 : _a19.textRuns;
2449
+ const { startOffset, segmentId } = activeTextRange, textRuns = (_a23 = docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody()) == null ? void 0 : _a23.textRuns;
1886
2450
  if (textRuns == null)
1887
2451
  return;
1888
2452
  let textRun;
@@ -1901,11 +2465,11 @@ function getFontStyleAtCursor(accessor) {
1901
2465
  }
1902
2466
  __name(getFontStyleAtCursor, "getFontStyleAtCursor");
1903
2467
  function getParagraphStyleAtCursor(accessor) {
1904
- var _a19;
1905
- const univerInstanceService = accessor.get(IUniverInstanceService), textSelectionService = accessor.get(TextSelectionManagerService), docDataModel = univerInstanceService.getCurrentUniverDocInstance(), activeTextRange = textSelectionService.getActiveRange();
2468
+ var _a23;
2469
+ const univerInstanceService = accessor.get(IUniverInstanceService), textSelectionService = accessor.get(TextSelectionManagerService), docDataModel = univerInstanceService.getCurrentUniverDocInstance(), activeTextRange = textSelectionService.getActiveTextRangeWithStyle();
1906
2470
  if (docDataModel == null || activeTextRange == null)
1907
2471
  return;
1908
- const { startOffset, segmentId } = activeTextRange, paragraphs = (_a19 = docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody()) == null ? void 0 : _a19.paragraphs;
2472
+ const { startOffset, segmentId } = activeTextRange, paragraphs = (_a23 = docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody()) == null ? void 0 : _a23.paragraphs;
1909
2473
  if (paragraphs == null)
1910
2474
  return;
1911
2475
  let prevIndex = -1;
@@ -1949,17 +2513,344 @@ const DOC_CLIPBOARD_PRIORITY = 999, DocCopyCommand = {
1949
2513
  const docClipboardService = accessor.get(IDocClipboardService), clipboardItems = await accessor.get(IClipboardInterfaceService).read();
1950
2514
  return clipboardItems.length === 0 ? !1 : docClipboardService.paste(clipboardItems);
1951
2515
  }, "handler")
2516
+ }, DocParagraphSettingCommand = {
2517
+ id: "doc-paragraph-setting.command",
2518
+ type: CommandType.COMMAND,
2519
+ handler: /* @__PURE__ */ __name(async (accessor, config) => {
2520
+ var _a23, _b, _c;
2521
+ const textSelectionManagerService = accessor.get(TextSelectionManagerService), univerInstanceService = accessor.get(IUniverInstanceService), commandService = accessor.get(ICommandService), docDataModel = univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_DOC), docRanges = textSelectionManagerService.getDocRanges();
2522
+ if (!docDataModel || docRanges.length === 0 || !config)
2523
+ return !1;
2524
+ const segmentId = docRanges[0].segmentId, unitId = docDataModel.getUnitId(), allParagraphs = (_b = (_a23 = docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody()) == null ? void 0 : _a23.paragraphs) != null ? _b : [], paragraphs = (_c = getParagraphsInRanges(docRanges, allParagraphs)) != null ? _c : [], serializedSelections = docRanges.map(serializeDocRange), doMutation = {
2525
+ id: RichTextEditingMutation.id,
2526
+ params: {
2527
+ unitId,
2528
+ actions: [],
2529
+ textRanges: serializedSelections
2530
+ }
2531
+ }, memoryCursor = new MemoryCursor();
2532
+ memoryCursor.reset();
2533
+ const textX = new TextX(), jsonX = JSONX.getInstance();
2534
+ for (const paragraph of paragraphs) {
2535
+ const { startIndex } = paragraph;
2536
+ textX.push({
2537
+ t: TextXActionType.RETAIN,
2538
+ len: startIndex - memoryCursor.cursor,
2539
+ segmentId
2540
+ });
2541
+ const paragraphStyle = {
2542
+ ...paragraph.paragraphStyle,
2543
+ ...config
2544
+ };
2545
+ textX.push({
2546
+ t: TextXActionType.RETAIN,
2547
+ len: 1,
2548
+ body: {
2549
+ dataStream: "",
2550
+ paragraphs: [
2551
+ {
2552
+ ...paragraph,
2553
+ paragraphStyle,
2554
+ startIndex: 0
2555
+ }
2556
+ ]
2557
+ },
2558
+ segmentId,
2559
+ coverType: UpdateDocsAttributeType.REPLACE
2560
+ }), memoryCursor.moveCursorTo(startIndex + 1);
2561
+ }
2562
+ const path = getRichTextEditPath(docDataModel, segmentId);
2563
+ return doMutation.params.actions = jsonX.editOp(textX.serialize(), path), !!commandService.syncExecuteCommand(doMutation.id, doMutation.params);
2564
+ }, "handler")
2565
+ }, useCurrentParagraph = /* @__PURE__ */ __name(() => {
2566
+ var _a23, _b, _c;
2567
+ const textSelectionManagerService = useDependency(TextSelectionManagerService), docDataModel = useDependency(IUniverInstanceService).getCurrentUnitForType(UniverInstanceType.UNIVER_DOC), docRanges = useMemo(() => textSelectionManagerService.getDocRanges(), []);
2568
+ if (!docDataModel || docRanges.length === 0)
2569
+ return [];
2570
+ const segmentId = docRanges[0].segmentId, paragraphs = (_b = (_a23 = docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody()) == null ? void 0 : _a23.paragraphs) != null ? _b : [];
2571
+ return (_c = getParagraphsInRanges(docRanges, paragraphs)) != null ? _c : [];
2572
+ }, "useCurrentParagraph"), useFirstParagraphHorizontalAlign = /* @__PURE__ */ __name((paragraph, defaultValue) => {
2573
+ const commandService = useDependency(ICommandService), [horizontalAlign, _horizontalAlignSet] = useState(() => {
2574
+ var _a23, _b;
2575
+ const firstParagraph = paragraph[0];
2576
+ return firstParagraph ? String((_b = (_a23 = firstParagraph.paragraphStyle) == null ? void 0 : _a23.horizontalAlign) != null ? _b : defaultValue) : defaultValue;
2577
+ });
2578
+ return [horizontalAlign, /* @__PURE__ */ __name((v) => (_horizontalAlignSet(v), commandService.executeCommand(DocParagraphSettingCommand.id, {
2579
+ horizontalAlign: Number(v)
2580
+ })), "horizontalAlignSet")];
2581
+ }, "useFirstParagraphHorizontalAlign"), useFirstParagraphIndentStart = /* @__PURE__ */ __name((paragraph) => {
2582
+ const commandService = useDependency(ICommandService), [indentStart, _indentStartSet] = useState(() => {
2583
+ var _a23;
2584
+ const firstParagraph = paragraph[0];
2585
+ return firstParagraph ? getNumberUnitValue((_a23 = firstParagraph.paragraphStyle) == null ? void 0 : _a23.indentStart, 0) : 0;
2586
+ });
2587
+ return [indentStart, /* @__PURE__ */ __name((v) => (_indentStartSet(v), commandService.executeCommand(DocParagraphSettingCommand.id, {
2588
+ indentStart: { v }
2589
+ })), "indentStartSet")];
2590
+ }, "useFirstParagraphIndentStart"), useFirstParagraphIndentEnd = /* @__PURE__ */ __name((paragraph) => {
2591
+ const commandService = useDependency(ICommandService), [indentEnd, _indentEndSet] = useState(() => {
2592
+ var _a23;
2593
+ const firstParagraph = paragraph[0];
2594
+ return firstParagraph ? getNumberUnitValue((_a23 = firstParagraph.paragraphStyle) == null ? void 0 : _a23.indentEnd, 0) : 0;
2595
+ });
2596
+ return [indentEnd, /* @__PURE__ */ __name((v) => (_indentEndSet(v), commandService.executeCommand(DocParagraphSettingCommand.id, {
2597
+ indentEnd: { v }
2598
+ })), "indentEndSet")];
2599
+ }, "useFirstParagraphIndentEnd"), useFirstParagraphIndentFirstLine = /* @__PURE__ */ __name((paragraph) => {
2600
+ const commandService = useDependency(ICommandService), [indentFirstLine, _indentFirstLineSet] = useState(() => {
2601
+ var _a23;
2602
+ const firstParagraph = paragraph[0];
2603
+ return firstParagraph ? getNumberUnitValue((_a23 = firstParagraph.paragraphStyle) == null ? void 0 : _a23.indentFirstLine, 0) : 0;
2604
+ });
2605
+ return [indentFirstLine, /* @__PURE__ */ __name((v) => (_indentFirstLineSet(v), commandService.executeCommand(DocParagraphSettingCommand.id, {
2606
+ indentFirstLine: { v }
2607
+ })), "indentFirstLineSet")];
2608
+ }, "useFirstParagraphIndentFirstLine"), useFirstParagraphIndentHanging = /* @__PURE__ */ __name((paragraph) => {
2609
+ const commandService = useDependency(ICommandService), [hanging, _hangingSet] = useState(() => {
2610
+ var _a23;
2611
+ const firstParagraph = paragraph[0];
2612
+ return firstParagraph ? getNumberUnitValue((_a23 = firstParagraph.paragraphStyle) == null ? void 0 : _a23.hanging, 0) : 0;
2613
+ });
2614
+ return [hanging, /* @__PURE__ */ __name((v) => (_hangingSet(v), commandService.executeCommand(DocParagraphSettingCommand.id, {
2615
+ hanging: { v }
2616
+ })), "hangingSet")];
2617
+ }, "useFirstParagraphIndentHanging"), useFirstParagraphIndentSpaceAbove = /* @__PURE__ */ __name((paragraph) => {
2618
+ const commandService = useDependency(ICommandService), [spaceAbove, _spaceAboveSet] = useState(() => {
2619
+ var _a23;
2620
+ const firstParagraph = paragraph[0];
2621
+ return firstParagraph ? getNumberUnitValue((_a23 = firstParagraph.paragraphStyle) == null ? void 0 : _a23.spaceAbove, 0) : 0;
2622
+ });
2623
+ return [spaceAbove, /* @__PURE__ */ __name((v) => (_spaceAboveSet(v), commandService.executeCommand(DocParagraphSettingCommand.id, {
2624
+ spaceAbove: { v }
2625
+ })), "spaceAboveSet")];
2626
+ }, "useFirstParagraphIndentSpaceAbove"), useFirstParagraphSpaceBelow = /* @__PURE__ */ __name((paragraph) => {
2627
+ const commandService = useDependency(ICommandService), [spaceBelow, _spaceBelowSet] = useState(() => {
2628
+ var _a23;
2629
+ const firstParagraph = paragraph[0];
2630
+ return firstParagraph ? getNumberUnitValue((_a23 = firstParagraph.paragraphStyle) == null ? void 0 : _a23.spaceBelow, 0) : 0;
2631
+ });
2632
+ return [spaceBelow, /* @__PURE__ */ __name((v) => (_spaceBelowSet(v), commandService.executeCommand(DocParagraphSettingCommand.id, {
2633
+ spaceBelow: { v }
2634
+ })), "spaceBelowSet")];
2635
+ }, "useFirstParagraphSpaceBelow"), useFirstParagraphLineSpacing = /* @__PURE__ */ __name((paragraph) => {
2636
+ const commandService = useDependency(ICommandService), [lineSpacing, _lineSpacingSet] = useState(() => {
2637
+ var _a23, _b;
2638
+ const firstParagraph = paragraph[0];
2639
+ return firstParagraph && (_b = (_a23 = firstParagraph.paragraphStyle) == null ? void 0 : _a23.lineSpacing) != null ? _b : 1;
2640
+ });
2641
+ return [lineSpacing, /* @__PURE__ */ __name((v) => (_lineSpacingSet(v), commandService.executeCommand(DocParagraphSettingCommand.id, {
2642
+ lineSpacing: v
2643
+ })), "lineSpacingSet")];
2644
+ }, "useFirstParagraphLineSpacing"), paragraphSettingIconList = "univer-paragraph-setting-icon-list", paragraphSettingIconListItem = "univer-paragraph-setting-icon-list-item", paragraphSettingIconListActive = "univer-paragraph-setting-icon-list-active", paragraphSettingTitle = "univer-paragraph-setting-title", paragraphSettingLabel = "univer-paragraph-setting-label", paragraphSettingMtBase = "univer-paragraph-setting-mt-base", paragraphSettingFlexCol = "univer-paragraph-setting-flex-col", styles$1 = {
2645
+ paragraphSettingIconList,
2646
+ paragraphSettingIconListItem,
2647
+ paragraphSettingIconListActive,
2648
+ paragraphSettingTitle,
2649
+ paragraphSettingLabel,
2650
+ paragraphSettingMtBase,
2651
+ paragraphSettingFlexCol
2652
+ }, AutoFocusInputNumber = /* @__PURE__ */ __name((props) => {
2653
+ const { value, onChange, className = "", min = 0, max = 100 } = props, ref = require$$0.useRef(null);
2654
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
2655
+ InputNumber,
2656
+ {
2657
+ ref,
2658
+ min,
2659
+ max,
2660
+ value,
2661
+ onChange: /* @__PURE__ */ __name((v) => {
2662
+ onChange(v != null ? v : 0).finally(() => {
2663
+ setTimeout(() => {
2664
+ var _a23;
2665
+ (_a23 = ref.current) == null || _a23.focus();
2666
+ }, 2);
2667
+ });
2668
+ }, "onChange"),
2669
+ className
2670
+ }
2671
+ );
2672
+ }, "AutoFocusInputNumber");
2673
+ function ParagraphSetting() {
2674
+ const localeService = useDependency(LocaleService), alignmentOptions = useMemo(
2675
+ () => [
2676
+ { label: localeService.t("toolbar.alignLeft"), value: String(HorizontalAlign.LEFT), icon: /* @__PURE__ */ jsxRuntimeExports.jsx(LeftJustifyingSingle, {}) },
2677
+ { label: localeService.t("toolbar.alignCenter"), value: String(HorizontalAlign.CENTER), icon: /* @__PURE__ */ jsxRuntimeExports.jsx(HorizontallySingle, {}) },
2678
+ { label: localeService.t("toolbar.alignRight"), value: String(HorizontalAlign.RIGHT), icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RightJustifyingSingle, {}) },
2679
+ { label: localeService.t("toolbar.alignJustify"), value: String(HorizontalAlign.JUSTIFIED), icon: /* @__PURE__ */ jsxRuntimeExports.jsx(AlignTextBothSingle, {}) }
2680
+ ],
2681
+ []
2682
+ ), currentParagraph = useCurrentParagraph(), [horizontalAlignValue, horizontalAlignSet] = useFirstParagraphHorizontalAlign(currentParagraph, alignmentOptions[0].value), [indentStart, indentStartSet] = useFirstParagraphIndentStart(currentParagraph), [indentEnd, indentEndSet] = useFirstParagraphIndentEnd(currentParagraph), [indentFirstLine, indentFirstLineSet] = useFirstParagraphIndentFirstLine(currentParagraph), [hanging, hangingSet] = useFirstParagraphIndentHanging(currentParagraph), [spaceAbove, spaceAboveSet] = useFirstParagraphIndentSpaceAbove(currentParagraph), [spaceBelow, spaceBelowSet] = useFirstParagraphSpaceBelow(currentParagraph), [lineSpacing, lineSpacingSet] = useFirstParagraphLineSpacing(currentParagraph);
2683
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$1.paragraphSetting, children: [
2684
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$1.paragraphSettingTitle, children: localeService.t("doc.paragraphSetting.alignment") }),
2685
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `${styles$1.paragraphSettingIconList} ${styles$1.paragraphSettingMtBase}`, children: alignmentOptions.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { title: item.label, placement: "bottom", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
2686
+ "span",
2687
+ {
2688
+ className: clsx(
2689
+ styles$1.paragraphSettingIconListItem,
2690
+ { [styles$1.paragraphSettingIconListActive]: horizontalAlignValue === item.value }
2691
+ ),
2692
+ onClick: /* @__PURE__ */ __name(() => horizontalAlignSet(item.value), "onClick"),
2693
+ children: item.icon
2694
+ }
2695
+ ) }, item.value)) }),
2696
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$1.paragraphSettingTitle, children: localeService.t("doc.paragraphSetting.indentation") }),
2697
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
2698
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$1.paragraphSettingFlexCol, children: [
2699
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$1.paragraphSettingLabel, children: [
2700
+ localeService.t("doc.paragraphSetting.left"),
2701
+ "(px)"
2702
+ ] }),
2703
+ /* @__PURE__ */ jsxRuntimeExports.jsx(AutoFocusInputNumber, { className: styles$1.paragraphSettingMtBase, value: indentStart, onChange: /* @__PURE__ */ __name((v) => indentStartSet(v != null ? v : 0), "onChange") })
2704
+ ] }),
2705
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$1.paragraphSettingFlexCol, children: [
2706
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$1.paragraphSettingLabel, children: [
2707
+ localeService.t("doc.paragraphSetting.right"),
2708
+ "(px)"
2709
+ ] }),
2710
+ /* @__PURE__ */ jsxRuntimeExports.jsx(AutoFocusInputNumber, { className: styles$1.paragraphSettingMtBase, value: indentEnd, onChange: /* @__PURE__ */ __name((v) => indentEndSet(v != null ? v : 0), "onChange") })
2711
+ ] }),
2712
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$1.paragraphSettingFlexCol, children: [
2713
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$1.paragraphSettingLabel, children: [
2714
+ localeService.t("doc.paragraphSetting.firstLine"),
2715
+ "(px)"
2716
+ ] }),
2717
+ /* @__PURE__ */ jsxRuntimeExports.jsx(AutoFocusInputNumber, { className: styles$1.paragraphSettingMtBase, value: indentFirstLine, onChange: /* @__PURE__ */ __name((v) => indentFirstLineSet(v != null ? v : 0), "onChange") })
2718
+ ] }),
2719
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$1.paragraphSettingFlexCol, children: [
2720
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$1.paragraphSettingLabel, children: [
2721
+ localeService.t("doc.paragraphSetting.hanging"),
2722
+ "(px)"
2723
+ ] }),
2724
+ /* @__PURE__ */ jsxRuntimeExports.jsx(AutoFocusInputNumber, { className: styles$1.paragraphSettingMtBase, value: hanging, onChange: /* @__PURE__ */ __name((v) => hangingSet(v != null ? v : 0), "onChange") })
2725
+ ] })
2726
+ ] }),
2727
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$1.paragraphSettingTitle, children: localeService.t("doc.paragraphSetting.spacing") }),
2728
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
2729
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$1.paragraphSettingFlexCol, children: [
2730
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$1.paragraphSettingLabel, children: [
2731
+ localeService.t("doc.paragraphSetting.before"),
2732
+ "(px)"
2733
+ ] }),
2734
+ /* @__PURE__ */ jsxRuntimeExports.jsx(AutoFocusInputNumber, { className: styles$1.paragraphSettingMtBase, value: spaceAbove, onChange: /* @__PURE__ */ __name((v) => spaceAboveSet(v != null ? v : 0), "onChange") })
2735
+ ] }),
2736
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$1.paragraphSettingFlexCol, children: [
2737
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$1.paragraphSettingLabel, children: [
2738
+ localeService.t("doc.paragraphSetting.after"),
2739
+ "(px)"
2740
+ ] }),
2741
+ /* @__PURE__ */ jsxRuntimeExports.jsx(AutoFocusInputNumber, { className: styles$1.paragraphSettingMtBase, value: spaceBelow, onChange: /* @__PURE__ */ __name((v) => spaceBelowSet(v != null ? v : 0), "onChange") })
2742
+ ] }),
2743
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$1.paragraphSettingFlexCol, children: [
2744
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles$1.paragraphSettingLabel, children: localeService.t("doc.paragraphSetting.lineSpace") }),
2745
+ /* @__PURE__ */ jsxRuntimeExports.jsx(AutoFocusInputNumber, { min: 1, max: 5, className: styles$1.paragraphSettingMtBase, value: lineSpacing, onChange: /* @__PURE__ */ __name((v) => lineSpacingSet(v != null ? v : 0), "onChange") })
2746
+ ] })
2747
+ ] })
2748
+ ] });
2749
+ }
2750
+ __name(ParagraphSetting, "ParagraphSetting");
2751
+ const isRangesEqual = /* @__PURE__ */ __name((oldRanges, ranges) => ranges.length === oldRanges.length && oldRanges.some((oldRange) => ranges.some((range) => range.startOffset === oldRange.startOffset && range.endOffset === oldRange.endOffset)), "isRangesEqual"), isRangesIntersection = /* @__PURE__ */ __name((oldRanges, ranges) => oldRanges.some((oldRange) => ranges.some((range) => {
2752
+ const { startOffset: activeStart, endOffset: activeEnd } = oldRange, { startOffset: compareStart, endOffset: compareEnd } = range;
2753
+ return activeStart == null || activeEnd == null || compareStart == null || compareEnd == null ? !1 : activeStart <= compareEnd && activeEnd >= compareStart;
2754
+ })), "isRangesIntersection");
2755
+ function ParagraphSettingIndex() {
2756
+ const commandService = useDependency(ICommandService), localeService = useDependency(LocaleService), currentLocale = useObservable(localeService.currentLocale$), [key, keySet] = useState(""), rangeRef = useRef([]);
2757
+ return useEffect(() => {
2758
+ const dispose = commandService.onCommandExecuted((info) => {
2759
+ var _a23;
2760
+ if (SetTextSelectionsOperation.id === info.id) {
2761
+ const ranges = info.params.ranges;
2762
+ isRangesEqual(ranges, rangeRef.current) || keySet(generateRandomId(4)), rangeRef.current = ranges;
2763
+ }
2764
+ if (RichTextEditingMutation.id === info.id) {
2765
+ const params = info.params, ranges = (_a23 = params.textRanges) != null ? _a23 : [];
2766
+ params.trigger !== DocParagraphSettingCommand.id && isRangesIntersection(ranges, rangeRef.current) && keySet(generateRandomId(4));
2767
+ }
2768
+ });
2769
+ return () => dispose.dispose();
2770
+ }, []), useEffect(() => {
2771
+ keySet(generateRandomId(4));
2772
+ }, [currentLocale]), /* @__PURE__ */ jsxRuntimeExports.jsx(ParagraphSetting, {}, key);
2773
+ }
2774
+ __name(ParagraphSettingIndex, "ParagraphSettingIndex");
2775
+ var __defProp$g = Object.defineProperty, __getOwnPropDesc$g = Object.getOwnPropertyDescriptor, __decorateClass$g = /* @__PURE__ */ __name((decorators, target, key, kind) => {
2776
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$g(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
2777
+ (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
2778
+ return kind && result && __defProp$g(target, key, result), result;
2779
+ }, "__decorateClass$g"), __decorateParam$g = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$g");
2780
+ const paragraphSettingIndexKey = "doc_ui_paragraph-setting-panel";
2781
+ var _a6;
2782
+ let DocParagraphSettingController = (_a6 = class extends Disposable {
2783
+ constructor(_commandService, _componentManager, _sidebarService) {
2784
+ super(), this._commandService = _commandService, this._componentManager = _componentManager, this._sidebarService = _sidebarService, this._init();
2785
+ }
2786
+ _init() {
2787
+ this.disposeWithMe(this._componentManager.register(paragraphSettingIndexKey, ParagraphSettingIndex));
2788
+ }
2789
+ openPanel() {
2790
+ const props = {
2791
+ header: { title: "doc.slider.paragraphSetting" },
2792
+ children: {
2793
+ label: paragraphSettingIndexKey
2794
+ },
2795
+ width: 300
2796
+ };
2797
+ this._sidebarService.open(props);
2798
+ }
2799
+ }, __name(_a6, "DocParagraphSettingController"), _a6);
2800
+ DocParagraphSettingController = __decorateClass$g([
2801
+ OnLifecycle(LifecycleStages.Rendered, DocParagraphSettingController),
2802
+ __decorateParam$g(0, ICommandService),
2803
+ __decorateParam$g(1, Inject(ComponentManager)),
2804
+ __decorateParam$g(2, Inject(ISidebarService))
2805
+ ], DocParagraphSettingController);
2806
+ const DocParagraphSettingPanelOperation = {
2807
+ id: "sidebar.operation.doc-paragraph-setting-panel",
2808
+ type: CommandType.OPERATION,
2809
+ handler: /* @__PURE__ */ __name((accessor) => (accessor.get(DocParagraphSettingController).openPanel(), !0), "handler")
1952
2810
  }, getDisableOnCollapsedObservable = /* @__PURE__ */ __name((accessor) => {
1953
2811
  const textSelectionManagerService = accessor.get(TextSelectionManagerService);
1954
2812
  return new Observable((subscriber) => {
1955
- const observable = textSelectionManagerService.textSelection$.subscribe((selections) => {
1956
- const range = textSelectionManagerService.getActiveRange();
2813
+ const observable = textSelectionManagerService.textSelection$.subscribe(() => {
2814
+ const range = textSelectionManagerService.getActiveTextRangeWithStyle();
1957
2815
  range && !range.collapsed ? subscriber.next(!1) : subscriber.next(!0);
1958
2816
  });
1959
2817
  return () => observable.unsubscribe();
1960
2818
  });
1961
- }, "getDisableOnCollapsedObservable"), CopyMenuFactory = /* @__PURE__ */ __name((accessor) => ({
1962
- id: DocCopyCommand.id,
2819
+ }, "getDisableOnCollapsedObservable");
2820
+ function inSameTable(rectRanges) {
2821
+ if (rectRanges.length < 2)
2822
+ return !0;
2823
+ const tableIds = rectRanges.map((rectRange) => rectRange.tableId);
2824
+ return tableIds.every((tableId) => tableId === tableIds[0]);
2825
+ }
2826
+ __name(inSameTable, "inSameTable");
2827
+ const getDisableWhenSelectionNotInTableObservable = /* @__PURE__ */ __name((accessor) => {
2828
+ const textSelectionManagerService = accessor.get(TextSelectionManagerService), univerInstanceService = accessor.get(IUniverInstanceService);
2829
+ return new Observable((subscriber) => {
2830
+ const observable = textSelectionManagerService.textSelection$.subscribe(() => {
2831
+ var _a23;
2832
+ const rectRanges = textSelectionManagerService.getCurrentRectRanges(), activeRange = textSelectionManagerService.getActiveTextRangeWithStyle();
2833
+ if (rectRanges && rectRanges.length && inSameTable(rectRanges)) {
2834
+ subscriber.next(!1);
2835
+ return;
2836
+ }
2837
+ if (activeRange && (rectRanges == null || rectRanges.length === 0)) {
2838
+ const { segmentId, startOffset, endOffset } = activeRange, docDataModel = univerInstanceService.getCurrentUniverDocInstance(), tables = (_a23 = docDataModel == null ? void 0 : docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody()) == null ? void 0 : _a23.tables;
2839
+ if (tables && tables.length && tables.some((table) => {
2840
+ const { startIndex, endIndex } = table;
2841
+ return startOffset > startIndex && startOffset < endIndex || endOffset > startIndex && endOffset < endIndex;
2842
+ })) {
2843
+ subscriber.next(!1);
2844
+ return;
2845
+ }
2846
+ }
2847
+ subscriber.next(!0);
2848
+ });
2849
+ return () => observable.unsubscribe();
2850
+ });
2851
+ }, "getDisableWhenSelectionNotInTableObservable"), CopyMenuFactory = /* @__PURE__ */ __name((accessor) => ({
2852
+ id: DocCopyCommand.name,
2853
+ commandId: DocCopyCommand.id,
1963
2854
  group: MenuGroup.CONTEXT_MENU_FORMAT,
1964
2855
  type: MenuItemType.BUTTON,
1965
2856
  icon: "Copy",
@@ -1967,7 +2858,14 @@ const DOC_CLIPBOARD_PRIORITY = 999, DocCopyCommand = {
1967
2858
  positions: [MenuPosition.CONTEXT_MENU],
1968
2859
  disabled$: getDisableOnCollapsedObservable(accessor),
1969
2860
  hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
1970
- }), "CopyMenuFactory"), CutMenuFactory = /* @__PURE__ */ __name((accessor) => ({
2861
+ }), "CopyMenuFactory"), ParagraphSettingMenuFactory = /* @__PURE__ */ __name((accessor) => ({
2862
+ id: DocParagraphSettingPanelOperation.id,
2863
+ type: MenuItemType.BUTTON,
2864
+ icon: "MenuSingle24",
2865
+ title: "doc.menu.paragraphSetting",
2866
+ positions: [MenuPosition.CONTEXT_MENU],
2867
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
2868
+ }), "ParagraphSettingMenuFactory"), CutMenuFactory = /* @__PURE__ */ __name((accessor) => ({
1971
2869
  id: DocCutCommand.id,
1972
2870
  group: MenuGroup.CONTEXT_MENU_FORMAT,
1973
2871
  type: MenuItemType.BUTTON,
@@ -1980,85 +2878,146 @@ const DOC_CLIPBOARD_PRIORITY = 999, DocCopyCommand = {
1980
2878
  id: DocPasteCommand.id,
1981
2879
  group: MenuGroup.CONTEXT_MENU_FORMAT,
1982
2880
  type: MenuItemType.BUTTON,
1983
- icon: "PasteSpecial",
1984
- title: "rightClick.paste",
1985
- positions: [MenuPosition.CONTEXT_MENU],
1986
- hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
1987
- }), "PasteMenuFactory"), DeleteMenuFactory = /* @__PURE__ */ __name((accessor) => ({
1988
- id: DeleteLeftCommand.id,
1989
- group: MenuGroup.CONTEXT_MENU_FORMAT,
1990
- type: MenuItemType.BUTTON,
1991
- icon: "PasteSpecial",
1992
- title: "rightClick.delete",
1993
- positions: [MenuPosition.CONTEXT_MENU],
1994
- disabled$: getDisableOnCollapsedObservable(accessor),
1995
- hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
1996
- }), "DeleteMenuFactory"), BoldShortCut = {
1997
- id: SetInlineFormatBoldCommand.id,
1998
- binding: KeyCode.B | MetaKeys.CTRL_COMMAND,
1999
- preconditions: whenDocAndEditorFocused
2000
- }, ItalicShortCut = {
2001
- id: SetInlineFormatItalicCommand.id,
2002
- binding: KeyCode.I | MetaKeys.CTRL_COMMAND,
2003
- preconditions: whenDocAndEditorFocused
2004
- }, UnderlineShortCut = {
2005
- id: SetInlineFormatUnderlineCommand.id,
2006
- binding: KeyCode.U | MetaKeys.CTRL_COMMAND,
2007
- preconditions: whenDocAndEditorFocused
2008
- }, StrikeThroughShortCut = {
2009
- id: SetInlineFormatStrikethroughCommand.id,
2010
- binding: KeyCode.X | MetaKeys.SHIFT | MetaKeys.CTRL_COMMAND,
2011
- preconditions: whenDocAndEditorFocused
2012
- }, SubscriptShortCut = {
2013
- id: SetInlineFormatSubscriptCommand.id,
2014
- binding: KeyCode.COMMA | MetaKeys.CTRL_COMMAND,
2015
- preconditions: whenDocAndEditorFocused
2016
- }, SuperscriptShortCut = {
2017
- id: SetInlineFormatSuperscriptCommand.id,
2018
- binding: KeyCode.PERIOD | MetaKeys.CTRL_COMMAND,
2019
- preconditions: whenDocAndEditorFocused
2020
- }, AlignLeftShortCut = {
2021
- id: AlignLeftCommand.id,
2022
- binding: KeyCode.L | MetaKeys.CTRL_COMMAND | MetaKeys.SHIFT,
2023
- preconditions: whenDocAndEditorFocused
2024
- }, AlignRightShortCut = {
2025
- id: AlignRightCommand.id,
2026
- binding: KeyCode.R | MetaKeys.CTRL_COMMAND | MetaKeys.SHIFT,
2027
- preconditions: whenDocAndEditorFocused
2028
- }, AlignCenterShortCut = {
2029
- id: AlignCenterCommand.id,
2030
- binding: KeyCode.E | MetaKeys.CTRL_COMMAND | MetaKeys.SHIFT,
2031
- preconditions: whenDocAndEditorFocused
2032
- }, AlignJustifyShortCut = {
2033
- id: AlignJustifyCommand.id,
2034
- binding: KeyCode.J | MetaKeys.CTRL_COMMAND | MetaKeys.SHIFT,
2035
- preconditions: whenDocAndEditorFocused
2036
- }, OrderListShortCut = {
2037
- id: OrderListCommand.id,
2038
- binding: KeyCode.Digit7 | MetaKeys.CTRL_COMMAND | MetaKeys.SHIFT,
2039
- preconditions: whenDocAndEditorFocused
2040
- }, BulletListShortCut = {
2041
- id: BulletListCommand.id,
2042
- binding: KeyCode.Digit8 | MetaKeys.CTRL_COMMAND | MetaKeys.SHIFT,
2043
- preconditions: whenDocAndEditorFocused
2044
- };
2045
- var __defProp$c = Object.defineProperty, __getOwnPropDesc$c = Object.getOwnPropertyDescriptor, __decorateClass$c = /* @__PURE__ */ __name((decorators, target, key, kind) => {
2046
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$c(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
2881
+ icon: "PasteSpecial",
2882
+ title: "rightClick.paste",
2883
+ positions: [MenuPosition.CONTEXT_MENU],
2884
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
2885
+ }), "PasteMenuFactory"), DeleteMenuFactory = /* @__PURE__ */ __name((accessor) => ({
2886
+ id: DeleteLeftCommand.id,
2887
+ group: MenuGroup.CONTEXT_MENU_FORMAT,
2888
+ type: MenuItemType.BUTTON,
2889
+ icon: "PasteSpecial",
2890
+ title: "rightClick.delete",
2891
+ positions: [MenuPosition.CONTEXT_MENU],
2892
+ disabled$: getDisableOnCollapsedObservable(accessor),
2893
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
2894
+ }), "DeleteMenuFactory"), TABLE_INSERT_MENU_ID = "doc.menu.table-insert";
2895
+ function TableInsertMenuItemFactory(accessor) {
2896
+ return {
2897
+ id: TABLE_INSERT_MENU_ID,
2898
+ group: MenuGroup.CONTEXT_MENU_LAYOUT,
2899
+ type: MenuItemType.SUBITEMS,
2900
+ title: "table.insert",
2901
+ icon: "Insert",
2902
+ positions: [MenuPosition.CONTEXT_MENU],
2903
+ hidden$: combineLatest(getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC), getDisableWhenSelectionNotInTableObservable(accessor), (one, two) => one || two)
2904
+ };
2905
+ }
2906
+ __name(TableInsertMenuItemFactory, "TableInsertMenuItemFactory");
2907
+ function InsertRowBeforeMenuItemFactory(accessor) {
2908
+ return {
2909
+ id: DocTableInsertRowAboveCommand.id,
2910
+ type: MenuItemType.BUTTON,
2911
+ title: "table.insertRowAbove",
2912
+ icon: "InsertRowAbove",
2913
+ positions: [TABLE_INSERT_MENU_ID],
2914
+ disabled$: getDisableWhenSelectionNotInTableObservable(accessor),
2915
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
2916
+ };
2917
+ }
2918
+ __name(InsertRowBeforeMenuItemFactory, "InsertRowBeforeMenuItemFactory");
2919
+ function InsertRowAfterMenuItemFactory(accessor) {
2920
+ return {
2921
+ id: DocTableInsertRowBellowCommand.id,
2922
+ type: MenuItemType.BUTTON,
2923
+ positions: [TABLE_INSERT_MENU_ID],
2924
+ title: "table.insertRowBelow",
2925
+ icon: "InsertRowBelow",
2926
+ disabled$: getDisableWhenSelectionNotInTableObservable(accessor),
2927
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
2928
+ };
2929
+ }
2930
+ __name(InsertRowAfterMenuItemFactory, "InsertRowAfterMenuItemFactory");
2931
+ function InsertColumnLeftMenuItemFactory(accessor) {
2932
+ return {
2933
+ id: DocTableInsertColumnLeftCommand.id,
2934
+ type: MenuItemType.BUTTON,
2935
+ title: "table.insertColumnLeft",
2936
+ icon: "LeftInsertColumn",
2937
+ positions: [TABLE_INSERT_MENU_ID],
2938
+ disabled$: getDisableWhenSelectionNotInTableObservable(accessor),
2939
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
2940
+ };
2941
+ }
2942
+ __name(InsertColumnLeftMenuItemFactory, "InsertColumnLeftMenuItemFactory");
2943
+ function InsertColumnRightMenuItemFactory(accessor) {
2944
+ return {
2945
+ id: DocTableInsertColumnRightCommand.id,
2946
+ type: MenuItemType.BUTTON,
2947
+ positions: [TABLE_INSERT_MENU_ID],
2948
+ title: "table.insertColumnRight",
2949
+ icon: "RightInsertColumn",
2950
+ disabled$: getDisableWhenSelectionNotInTableObservable(accessor),
2951
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
2952
+ };
2953
+ }
2954
+ __name(InsertColumnRightMenuItemFactory, "InsertColumnRightMenuItemFactory");
2955
+ const TABLE_DELETE_MENU_ID = "doc.menu.table-delete";
2956
+ function TableDeleteMenuItemFactory(accessor) {
2957
+ return {
2958
+ id: TABLE_DELETE_MENU_ID,
2959
+ group: MenuGroup.CONTEXT_MENU_LAYOUT,
2960
+ type: MenuItemType.SUBITEMS,
2961
+ title: "table.delete",
2962
+ icon: "Reduce",
2963
+ positions: [MenuPosition.CONTEXT_MENU],
2964
+ hidden$: combineLatest(getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC), getDisableWhenSelectionNotInTableObservable(accessor), (one, two) => one || two)
2965
+ };
2966
+ }
2967
+ __name(TableDeleteMenuItemFactory, "TableDeleteMenuItemFactory");
2968
+ function DeleteRowsMenuItemFactory(accessor) {
2969
+ return {
2970
+ id: DocTableDeleteRowsCommand.id,
2971
+ type: MenuItemType.BUTTON,
2972
+ title: "table.deleteRows",
2973
+ icon: "DeleteRow",
2974
+ positions: [TABLE_DELETE_MENU_ID],
2975
+ disabled$: getDisableWhenSelectionNotInTableObservable(accessor),
2976
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
2977
+ };
2978
+ }
2979
+ __name(DeleteRowsMenuItemFactory, "DeleteRowsMenuItemFactory");
2980
+ function DeleteColumnsMenuItemFactory(accessor) {
2981
+ return {
2982
+ id: DocTableDeleteColumnsCommand.id,
2983
+ type: MenuItemType.BUTTON,
2984
+ positions: [TABLE_DELETE_MENU_ID],
2985
+ title: "table.deleteColumns",
2986
+ icon: "DeleteColumn",
2987
+ disabled$: getDisableWhenSelectionNotInTableObservable(accessor),
2988
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
2989
+ };
2990
+ }
2991
+ __name(DeleteColumnsMenuItemFactory, "DeleteColumnsMenuItemFactory");
2992
+ function DeleteTableMenuItemFactory(accessor) {
2993
+ return {
2994
+ id: DocTableDeleteTableCommand.id,
2995
+ type: MenuItemType.BUTTON,
2996
+ positions: [TABLE_DELETE_MENU_ID],
2997
+ title: "table.deleteTable",
2998
+ icon: "GridSingle",
2999
+ disabled$: getDisableWhenSelectionNotInTableObservable(accessor),
3000
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
3001
+ };
3002
+ }
3003
+ __name(DeleteTableMenuItemFactory, "DeleteTableMenuItemFactory");
3004
+ var __defProp$f = Object.defineProperty, __getOwnPropDesc$f = Object.getOwnPropertyDescriptor, __decorateClass$f = /* @__PURE__ */ __name((decorators, target, key, kind) => {
3005
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$f(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
2047
3006
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
2048
- return kind && result && __defProp$c(target, key, result), result;
2049
- }, "__decorateClass$c"), __decorateParam$c = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$c"), _a6;
2050
- let DocUIController = (_a6 = class extends Disposable {
2051
- constructor(_config, _injector, _componentManager, _layoutService, _menuService, _uiPartsService, _univerInstanceService, _shortcutService) {
2052
- super(), this._config = _config, this._injector = _injector, this._componentManager = _componentManager, this._layoutService = _layoutService, this._menuService = _menuService, this._uiPartsService = _uiPartsService, this._univerInstanceService = _univerInstanceService, this._shortcutService = _shortcutService, this._init();
3007
+ return kind && result && __defProp$f(target, key, result), result;
3008
+ }, "__decorateClass$f"), __decorateParam$f = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$f"), _a7;
3009
+ let DocUIController = (_a7 = class extends Disposable {
3010
+ constructor(_config, _injector, _componentManager, _commandService, _layoutService, _menuService, _uiPartsService, _univerInstanceService, _shortcutService) {
3011
+ super(), this._config = _config, this._injector = _injector, this._componentManager = _componentManager, this._commandService = _commandService, this._layoutService = _layoutService, this._menuService = _menuService, this._uiPartsService = _uiPartsService, this._univerInstanceService = _univerInstanceService, this._shortcutService = _shortcutService, this._init();
2053
3012
  }
2054
3013
  _initCustomComponents() {
2055
3014
  const componentManager = this._componentManager;
2056
- this.disposeWithMe(componentManager.register(COLOR_PICKER_COMPONENT, ColorPicker)), this.disposeWithMe(componentManager.register(FONT_FAMILY_COMPONENT, FontFamily)), this.disposeWithMe(componentManager.register(FONT_FAMILY_ITEM_COMPONENT, FontFamilyItem)), this.disposeWithMe(componentManager.register(FONT_SIZE_COMPONENT, FontSize));
3015
+ this.disposeWithMe(componentManager.register(COLOR_PICKER_COMPONENT, ColorPicker)), this.disposeWithMe(componentManager.register(FONT_FAMILY_COMPONENT, FontFamily)), this.disposeWithMe(componentManager.register(FONT_FAMILY_ITEM_COMPONENT, FontFamilyItem)), this.disposeWithMe(componentManager.register(FONT_SIZE_COMPONENT, FontSize)), this.disposeWithMe(componentManager.register(BULLET_LIST_TYPE_COMPONENT, BulletListTypePicker)), this.disposeWithMe(componentManager.register(ORDER_LIST_TYPE_COMPONENT, OrderListTypePicker)), this.disposeWithMe(componentManager.register("TodoList", TodoList));
2057
3016
  }
2058
3017
  _initUiParts() {
2059
- var _a19, _b;
3018
+ var _a23, _b;
2060
3019
  const workbook = this._univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET);
2061
- (_b = (_a19 = this._config.layout) == null ? void 0 : _a19.docContainerConfig) != null && _b.footer && !workbook && this.disposeWithMe(this._uiPartsService.registerComponent(BuiltInUIPart.FOOTER, () => connectInjector(DocFooter, this._injector)));
3020
+ (_b = (_a23 = this._config.layout) == null ? void 0 : _a23.docContainerConfig) != null && _b.footer && !workbook && this.disposeWithMe(this._uiPartsService.registerComponent(BuiltInUIPart.FOOTER, () => connectInjector(DocFooter, this._injector)));
2062
3021
  }
2063
3022
  _initMenus() {
2064
3023
  const { menu = {} } = this._config;
@@ -2073,12 +3032,15 @@ let DocUIController = (_a6 = class extends Disposable {
2073
3032
  FontFamilySelectorMenuItemFactory,
2074
3033
  TextColorSelectorMenuItemFactory,
2075
3034
  HeaderFooterMenuItemFactory,
3035
+ TableMenuFactory,
3036
+ InsertTableMenuFactory,
2076
3037
  AlignLeftMenuItemFactory,
2077
3038
  AlignCenterMenuItemFactory,
2078
3039
  AlignRightMenuItemFactory,
2079
3040
  AlignJustifyMenuItemFactory,
2080
3041
  OrderListMenuItemFactory,
2081
3042
  BulletListMenuItemFactory,
3043
+ CheckListMenuItemFactory,
2082
3044
  ResetBackgroundColorMenuItemFactory,
2083
3045
  BackgroundColorSelectorMenuItemFactory
2084
3046
  ].forEach((factory) => {
@@ -2087,7 +3049,17 @@ let DocUIController = (_a6 = class extends Disposable {
2087
3049
  CopyMenuFactory,
2088
3050
  CutMenuFactory,
2089
3051
  PasteMenuFactory,
2090
- DeleteMenuFactory
3052
+ DeleteMenuFactory,
3053
+ ParagraphSettingMenuFactory,
3054
+ TableInsertMenuItemFactory,
3055
+ InsertRowBeforeMenuItemFactory,
3056
+ InsertRowAfterMenuItemFactory,
3057
+ InsertColumnLeftMenuItemFactory,
3058
+ InsertColumnRightMenuItemFactory,
3059
+ TableDeleteMenuItemFactory,
3060
+ DeleteRowsMenuItemFactory,
3061
+ DeleteColumnsMenuItemFactory,
3062
+ DeleteTableMenuItemFactory
2091
3063
  ].forEach((factory) => {
2092
3064
  try {
2093
3065
  this.disposeWithMe(this._menuService.addMenuItem(this._injector.invoke(factory), menu));
@@ -2108,13 +3080,21 @@ let DocUIController = (_a6 = class extends Disposable {
2108
3080
  AlignRightShortCut,
2109
3081
  AlignLeftShortCut,
2110
3082
  OrderListShortCut,
2111
- BulletListShortCut
3083
+ BulletListShortCut,
3084
+ TabShortCut
2112
3085
  ].forEach((shortcut) => {
2113
3086
  this.disposeWithMe(this._shortcutService.registerShortcut(shortcut));
2114
3087
  });
2115
3088
  }
2116
3089
  _init() {
2117
- this._initCustomComponents(), this._initMenus(), this._initFocusHandler(), this._initUiParts(), this._initShortCut();
3090
+ this._initCustomComponents(), this._initMenus(), this._initFocusHandler(), this._initCommands(), this._initUiParts(), this._initShortCut();
3091
+ }
3092
+ _initCommands() {
3093
+ [
3094
+ CoreHeaderFooterCommand,
3095
+ OpenHeaderFooterPanelCommand,
3096
+ SidebarDocHeaderFooterPanelOperation
3097
+ ].forEach((command) => this.disposeWithMe(this._commandService.registerCommand(command)));
2118
3098
  }
2119
3099
  _initFocusHandler() {
2120
3100
  this.disposeWithMe(
@@ -2123,19 +3103,20 @@ let DocUIController = (_a6 = class extends Disposable {
2123
3103
  })
2124
3104
  );
2125
3105
  }
2126
- }, __name(_a6, "DocUIController"), _a6);
2127
- DocUIController = __decorateClass$c([
3106
+ }, __name(_a7, "DocUIController"), _a7);
3107
+ DocUIController = __decorateClass$f([
2128
3108
  OnLifecycle(LifecycleStages.Rendered, DocUIController),
2129
- __decorateParam$c(1, Inject(Injector)),
2130
- __decorateParam$c(2, Inject(ComponentManager)),
2131
- __decorateParam$c(3, ILayoutService),
2132
- __decorateParam$c(4, IMenuService),
2133
- __decorateParam$c(5, IUIPartsService),
2134
- __decorateParam$c(6, IUniverInstanceService),
2135
- __decorateParam$c(7, IShortcutService)
3109
+ __decorateParam$f(1, Inject(Injector)),
3110
+ __decorateParam$f(2, Inject(ComponentManager)),
3111
+ __decorateParam$f(3, ICommandService),
3112
+ __decorateParam$f(4, ILayoutService),
3113
+ __decorateParam$f(5, IMenuService),
3114
+ __decorateParam$f(6, IUIPartsService),
3115
+ __decorateParam$f(7, IUniverInstanceService),
3116
+ __decorateParam$f(8, IShortcutService)
2136
3117
  ], DocUIController);
2137
3118
  const BreakLineShortcut = {
2138
- id: BreakLineCommand.id,
3119
+ id: EnterCommand.id,
2139
3120
  preconditions: whenDocAndEditorFocusedWithBreakLine,
2140
3121
  binding: KeyCode.ENTER
2141
3122
  }, DeleteLeftShortcut = {
@@ -2147,12 +3128,12 @@ const BreakLineShortcut = {
2147
3128
  preconditions: whenDocAndEditorFocused,
2148
3129
  binding: KeyCode.DELETE
2149
3130
  };
2150
- var __defProp$b = Object.defineProperty, __getOwnPropDesc$b = Object.getOwnPropertyDescriptor, __decorateClass$b = /* @__PURE__ */ __name((decorators, target, key, kind) => {
2151
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
3131
+ var __defProp$e = Object.defineProperty, __getOwnPropDesc$e = Object.getOwnPropertyDescriptor, __decorateClass$e = /* @__PURE__ */ __name((decorators, target, key, kind) => {
3132
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$e(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
2152
3133
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
2153
- return kind && result && __defProp$b(target, key, result), result;
2154
- }, "__decorateClass$b"), __decorateParam$b = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$b"), _a7;
2155
- let DocClipboardController = (_a7 = class extends RxDisposable {
3134
+ return kind && result && __defProp$e(target, key, result), result;
3135
+ }, "__decorateClass$e"), __decorateParam$e = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$e"), _a8;
3136
+ let DocClipboardController = (_a8 = class extends RxDisposable {
2156
3137
  constructor(_commandService, _clipboardInterfaceService, _docClipboardService, _textSelectionRenderManager, _contextService) {
2157
3138
  super(), this._commandService = _commandService, this._clipboardInterfaceService = _clipboardInterfaceService, this._docClipboardService = _docClipboardService, this._textSelectionRenderManager = _textSelectionRenderManager, this._contextService = _contextService, this._init();
2158
3139
  }
@@ -2160,31 +3141,31 @@ let DocClipboardController = (_a7 = class extends RxDisposable {
2160
3141
  [DocCopyCommand, DocCutCommand, DocPasteCommand].forEach((command) => this.disposeWithMe(this._commandService.registerMultipleCommand(command))), [InnerPasteCommand, CutContentCommand].forEach((command) => this.disposeWithMe(this._commandService.registerCommand(command))), this._initLegacyPasteCommand();
2161
3142
  }
2162
3143
  _initLegacyPasteCommand() {
2163
- var _a19;
2164
- (_a19 = this._textSelectionRenderManager) == null || _a19.onPaste$.pipe(takeUntil(this.dispose$)).subscribe((config) => {
2165
- var _a20, _b;
3144
+ var _a23;
3145
+ (_a23 = this._textSelectionRenderManager) == null || _a23.onPaste$.pipe(takeUntil(this.dispose$)).subscribe((config) => {
3146
+ var _a24, _b;
2166
3147
  if (!whenDocOrEditor(this._contextService))
2167
3148
  return;
2168
3149
  config.event.preventDefault();
2169
- const clipboardEvent = config.event, htmlContent = (_a20 = clipboardEvent.clipboardData) == null ? void 0 : _a20.getData("text/html"), textContent = (_b = clipboardEvent.clipboardData) == null ? void 0 : _b.getData("text/plain");
3150
+ const clipboardEvent = config.event, htmlContent = (_a24 = clipboardEvent.clipboardData) == null ? void 0 : _a24.getData("text/html"), textContent = (_b = clipboardEvent.clipboardData) == null ? void 0 : _b.getData("text/plain");
2170
3151
  this._docClipboardService.legacyPaste(htmlContent, textContent);
2171
3152
  });
2172
3153
  }
2173
- }, __name(_a7, "DocClipboardController"), _a7);
2174
- DocClipboardController = __decorateClass$b([
3154
+ }, __name(_a8, "DocClipboardController"), _a8);
3155
+ DocClipboardController = __decorateClass$e([
2175
3156
  OnLifecycle(LifecycleStages.Rendered, DocClipboardController),
2176
- __decorateParam$b(0, ICommandService),
2177
- __decorateParam$b(1, IClipboardInterfaceService),
2178
- __decorateParam$b(2, IDocClipboardService),
2179
- __decorateParam$b(3, ITextSelectionRenderManager),
2180
- __decorateParam$b(4, IContextService)
3157
+ __decorateParam$e(0, ICommandService),
3158
+ __decorateParam$e(1, IClipboardInterfaceService),
3159
+ __decorateParam$e(2, IDocClipboardService),
3160
+ __decorateParam$e(3, ITextSelectionRenderManager),
3161
+ __decorateParam$e(4, IContextService)
2181
3162
  ], DocClipboardController);
2182
- var __defProp$a = Object.defineProperty, __getOwnPropDesc$a = Object.getOwnPropertyDescriptor, __decorateClass$a = /* @__PURE__ */ __name((decorators, target, key, kind) => {
2183
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
3163
+ var __defProp$d = Object.defineProperty, __getOwnPropDesc$d = Object.getOwnPropertyDescriptor, __decorateClass$d = /* @__PURE__ */ __name((decorators, target, key, kind) => {
3164
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$d(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
2184
3165
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
2185
- return kind && result && __defProp$a(target, key, result), result;
2186
- }, "__decorateClass$a"), __decorateParam$a = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$a"), _a8;
2187
- let DocEditorBridgeController = (_a8 = class extends Disposable {
3166
+ return kind && result && __defProp$d(target, key, result), result;
3167
+ }, "__decorateClass$d"), __decorateParam$d = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$d"), _a9;
3168
+ let DocEditorBridgeController = (_a9 = class extends Disposable {
2188
3169
  constructor(_univerInstanceService, _editorService, _commandService, _textSelectionRenderManager, _renderManagerService) {
2189
3170
  super();
2190
3171
  __publicField(this, "_initialEditors", /* @__PURE__ */ new Set());
@@ -2201,7 +3182,7 @@ let DocEditorBridgeController = (_a8 = class extends Disposable {
2201
3182
  }), this._commandExecutedListener(), this._initialSetValue(), this._initialBlur(), this._initialFocus(), this._initialValueChange();
2202
3183
  }
2203
3184
  _resize(unitId) {
2204
- var _a19, _b, _c;
3185
+ var _a23, _b, _c;
2205
3186
  if (unitId == null)
2206
3187
  return;
2207
3188
  const editor = this._editorService.getEditor(unitId);
@@ -2210,7 +3191,7 @@ let DocEditorBridgeController = (_a8 = class extends Disposable {
2210
3191
  const editorDataModel = this._univerInstanceService.getUniverDocInstance(unitId);
2211
3192
  if (!editorDataModel)
2212
3193
  return;
2213
- const skeleton = (_a19 = this._renderManagerService.getRenderById(editorDataModel.getUnitId())) == null ? void 0 : _a19.with(DocSkeletonManagerService).getSkeleton();
3194
+ const skeleton = (_a23 = this._renderManagerService.getRenderById(editorDataModel.getUnitId())) == null ? void 0 : _a23.with(DocSkeletonManagerService).getSkeleton();
2214
3195
  if (editor == null || editor.render == null || skeleton == null || editorDataModel == null)
2215
3196
  return;
2216
3197
  skeleton.calculate();
@@ -2239,12 +3220,12 @@ let DocEditorBridgeController = (_a8 = class extends Disposable {
2239
3220
  _initialBlur() {
2240
3221
  this.disposeWithMe(
2241
3222
  this._editorService.blur$.subscribe(() => {
2242
- this._textSelectionRenderManager.removeAllTextRanges(), this._textSelectionRenderManager.blur();
3223
+ this._textSelectionRenderManager.removeAllRanges(), this._textSelectionRenderManager.blur();
2243
3224
  })
2244
3225
  ), this.disposeWithMe(
2245
3226
  this._textSelectionRenderManager.onBlur$.subscribe(() => {
2246
- var _a19;
2247
- const unitId = (_a19 = this._univerInstanceService.getCurrentUniverDocInstance()) == null ? void 0 : _a19.getUnitId();
3227
+ var _a23;
3228
+ const unitId = (_a23 = this._univerInstanceService.getCurrentUniverDocInstance()) == null ? void 0 : _a23.getUnitId();
2248
3229
  if (unitId == null)
2249
3230
  return;
2250
3231
  const editor = this._editorService.getEditor(unitId), focusEditor = this._editorService.getFocusEditor();
@@ -2255,7 +3236,7 @@ let DocEditorBridgeController = (_a8 = class extends Disposable {
2255
3236
  _initialFocus() {
2256
3237
  this.disposeWithMe(
2257
3238
  this._editorService.focus$.subscribe((textRange) => {
2258
- this._textSelectionRenderManager.removeAllTextRanges(), this._textSelectionRenderManager.addTextRanges([textRange]);
3239
+ this._textSelectionRenderManager.removeAllRanges(), this._textSelectionRenderManager.addDocRanges([textRange]);
2259
3240
  })
2260
3241
  );
2261
3242
  const focusExcepts = [
@@ -2274,7 +3255,7 @@ let DocEditorBridgeController = (_a8 = class extends Disposable {
2274
3255
  this._editorService.changeSpreadsheetFocusState(!1);
2275
3256
  })
2276
3257
  ), this._univerInstanceService.getAllUnitsForType(UniverInstanceType.UNIVER_SHEET).forEach((unit) => {
2277
- const unitId = unit.getUnitId(), render = this._renderManagerService.getRenderById(unitId), canvasEle = render == null ? void 0 : render.engine.getCanvas().getCanvasEle();
3258
+ const unitId = unit.getUnitId(), render2 = this._renderManagerService.getRenderById(unitId), canvasEle = render2 == null ? void 0 : render2.engine.getCanvas().getCanvasEle();
2278
3259
  canvasEle != null && fromEvent(canvasEle, "mousedown").subscribe((evt) => {
2279
3260
  this._editorService.changeSpreadsheetFocusState(!0), evt.stopPropagation();
2280
3261
  });
@@ -2292,8 +3273,8 @@ let DocEditorBridgeController = (_a8 = class extends Disposable {
2292
3273
  );
2293
3274
  }
2294
3275
  _valueChange() {
2295
- var _a19;
2296
- const unitId = (_a19 = this._univerInstanceService.getCurrentUniverDocInstance()) == null ? void 0 : _a19.getUnitId();
3276
+ var _a23;
3277
+ const unitId = (_a23 = this._univerInstanceService.getCurrentUniverDocInstance()) == null ? void 0 : _a23.getUnitId();
2297
3278
  if (unitId == null)
2298
3279
  return;
2299
3280
  const editor = this._editorService.getEditor(unitId);
@@ -2315,27 +3296,27 @@ let DocEditorBridgeController = (_a8 = class extends Disposable {
2315
3296
  })
2316
3297
  );
2317
3298
  }
2318
- }, __name(_a8, "DocEditorBridgeController"), _a8);
2319
- DocEditorBridgeController = __decorateClass$a([
3299
+ }, __name(_a9, "DocEditorBridgeController"), _a9);
3300
+ DocEditorBridgeController = __decorateClass$d([
2320
3301
  OnLifecycle(LifecycleStages.Rendered, DocEditorBridgeController),
2321
- __decorateParam$a(0, IUniverInstanceService),
2322
- __decorateParam$a(1, IEditorService),
2323
- __decorateParam$a(2, ICommandService),
2324
- __decorateParam$a(3, ITextSelectionRenderManager),
2325
- __decorateParam$a(4, IRenderManagerService)
3302
+ __decorateParam$d(0, IUniverInstanceService),
3303
+ __decorateParam$d(1, IEditorService),
3304
+ __decorateParam$d(2, ICommandService),
3305
+ __decorateParam$d(3, ITextSelectionRenderManager),
3306
+ __decorateParam$d(4, IRenderManagerService)
2326
3307
  ], DocEditorBridgeController);
2327
- var __defProp$9 = Object.defineProperty, __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor, __decorateClass$9 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
2328
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
3308
+ var __defProp$c = Object.defineProperty, __getOwnPropDesc$c = Object.getOwnPropertyDescriptor, __decorateClass$c = /* @__PURE__ */ __name((decorators, target, key, kind) => {
3309
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$c(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
2329
3310
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
2330
- return kind && result && __defProp$9(target, key, result), result;
2331
- }, "__decorateClass$9"), __decorateParam$9 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$9"), _a9;
2332
- let DocRenderController = (_a9 = class extends RxDisposable {
2333
- constructor(_context, _commandService, _docSkeletonManagerService, _configService, _editorService, _renderManagerService) {
2334
- super(), this._context = _context, this._commandService = _commandService, this._docSkeletonManagerService = _docSkeletonManagerService, this._configService = _configService, this._editorService = _editorService, this._renderManagerService = _renderManagerService, this._addNewRender(), this._initRenderRefresh(), this._initCommandListener();
3311
+ return kind && result && __defProp$c(target, key, result), result;
3312
+ }, "__decorateClass$c"), __decorateParam$c = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$c"), _a10;
3313
+ let DocRenderController = (_a10 = class extends RxDisposable {
3314
+ constructor(_context, _contextService, _commandService, _docSkeletonManagerService, _configService, _editorService, _renderManagerService) {
3315
+ super(), this._context = _context, this._contextService = _contextService, this._commandService = _commandService, this._docSkeletonManagerService = _docSkeletonManagerService, this._configService = _configService, this._editorService = _editorService, this._renderManagerService = _renderManagerService, this._addNewRender(), this._initRenderRefresh(), this._initCommandListener();
2335
3316
  }
2336
3317
  reRender(unitId) {
2337
- var _a19, _b;
2338
- const docSkeletonManagerService = (_a19 = this._renderManagerService.getRenderById(unitId)) == null ? void 0 : _a19.with(DocSkeletonManagerService), skeleton = docSkeletonManagerService == null ? void 0 : docSkeletonManagerService.getSkeleton();
3318
+ var _a23, _b;
3319
+ const docSkeletonManagerService = (_a23 = this._renderManagerService.getRenderById(unitId)) == null ? void 0 : _a23.with(DocSkeletonManagerService), skeleton = docSkeletonManagerService == null ? void 0 : docSkeletonManagerService.getSkeleton();
2339
3320
  if (!(!skeleton || skeleton.getViewModel().getDataModel().getSnapshot().disabled)) {
2340
3321
  if (skeleton.calculate(), this._editorService.isEditor(unitId)) {
2341
3322
  (_b = this._context.mainComponent) == null || _b.makeDirty();
@@ -2355,6 +3336,8 @@ let DocRenderController = (_a9 = class extends RxDisposable {
2355
3336
  isWheelPreventDefaultX: !0
2356
3337
  });
2357
3338
  scene.attachControl(), scene.onMouseWheel$.subscribeEvent((evt, state) => {
3339
+ if (!this._contextService.getContextValue(FOCUSING_DOC))
3340
+ return;
2358
3341
  const e = evt;
2359
3342
  if (e.ctrlKey) {
2360
3343
  const deltaFactor = Math.abs(e.deltaX);
@@ -2399,8 +3382,8 @@ let DocRenderController = (_a9 = class extends RxDisposable {
2399
3382
  }));
2400
3383
  }
2401
3384
  _recalculateSizeBySkeleton(skeleton) {
2402
- var _a19;
2403
- const { mainComponent, scene, unitId, components } = this._context, docsComponent = mainComponent, docBackground = components.get(DOCS_VIEW_KEY.BACKGROUND), pages = (_a19 = skeleton.getSkeletonData()) == null ? void 0 : _a19.pages;
3385
+ var _a23;
3386
+ const { mainComponent, scene, unitId, components } = this._context, docsComponent = mainComponent, docBackground = components.get(DOCS_VIEW_KEY.BACKGROUND), pages = (_a23 = skeleton.getSkeletonData()) == null ? void 0 : _a23.pages;
2404
3387
  if (pages == null)
2405
3388
  return;
2406
3389
  let width = 0, height = 0;
@@ -2410,21 +3393,22 @@ let DocRenderController = (_a9 = class extends RxDisposable {
2410
3393
  }
2411
3394
  docsComponent.resize(width, height), docBackground.resize(width, height), this._editorService.isEditor(unitId) || scene.resize(width, height);
2412
3395
  }
2413
- }, __name(_a9, "DocRenderController"), _a9);
2414
- DocRenderController = __decorateClass$9([
2415
- __decorateParam$9(1, ICommandService),
2416
- __decorateParam$9(2, Inject(DocSkeletonManagerService)),
2417
- __decorateParam$9(3, IConfigService),
2418
- __decorateParam$9(4, IEditorService),
2419
- __decorateParam$9(5, IRenderManagerService)
3396
+ }, __name(_a10, "DocRenderController"), _a10);
3397
+ DocRenderController = __decorateClass$c([
3398
+ __decorateParam$c(1, IContextService),
3399
+ __decorateParam$c(2, ICommandService),
3400
+ __decorateParam$c(3, Inject(DocSkeletonManagerService)),
3401
+ __decorateParam$c(4, IConfigService),
3402
+ __decorateParam$c(5, IEditorService),
3403
+ __decorateParam$c(6, IRenderManagerService)
2420
3404
  ], DocRenderController);
2421
3405
  const _DocPageLayoutService = class _DocPageLayoutService extends Disposable {
2422
3406
  constructor(_context) {
2423
3407
  super(), this._context = _context;
2424
3408
  }
2425
3409
  calculatePagePosition() {
2426
- var _a19, _b;
2427
- const docObject = neoGetDocObject(this._context), zoomRatio = (_b = (_a19 = this._context.unit.getSettings()) == null ? void 0 : _a19.zoomRatio) != null ? _b : 1, { document: docsComponent, scene, docBackground } = docObject, parent = scene == null ? void 0 : scene.getParent(), { width: docsWidth, height: docsHeight, pageMarginLeft, pageMarginTop } = docsComponent;
3410
+ var _a23, _b;
3411
+ const docObject = neoGetDocObject(this._context), zoomRatio = (_b = (_a23 = this._context.unit.getSettings()) == null ? void 0 : _a23.zoomRatio) != null ? _b : 1, { document: docsComponent, scene, docBackground } = docObject, parent = scene == null ? void 0 : scene.getParent(), { width: docsWidth, height: docsHeight, pageMarginLeft, pageMarginTop } = docsComponent;
2428
3412
  if (parent == null || docsWidth === Number.POSITIVE_INFINITY || docsHeight === Number.POSITIVE_INFINITY)
2429
3413
  return;
2430
3414
  const { width: engineWidth, height: engineHeight } = parent;
@@ -2438,17 +3422,14 @@ const _DocPageLayoutService = class _DocPageLayoutService extends Disposable {
2438
3422
  };
2439
3423
  __name(_DocPageLayoutService, "DocPageLayoutService");
2440
3424
  let DocPageLayoutService = _DocPageLayoutService;
2441
- var __defProp$8 = Object.defineProperty, __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor, __decorateClass$8 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
2442
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
3425
+ var __defProp$b = Object.defineProperty, __getOwnPropDesc$b = Object.getOwnPropertyDescriptor, __decorateClass$b = /* @__PURE__ */ __name((decorators, target, key, kind) => {
3426
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
2443
3427
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
2444
- return kind && result && __defProp$8(target, key, result), result;
2445
- }, "__decorateClass$8"), __decorateParam$8 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$8"), _a10;
2446
- let DocZoomRenderController = (_a10 = class extends Disposable {
2447
- constructor(_context, _docSkeletonManagerService, _univerInstanceService, _commandService, _textSelectionManagerService, _editorService, _docPageLayoutService) {
2448
- super(), this._context = _context, this._docSkeletonManagerService = _docSkeletonManagerService, this._univerInstanceService = _univerInstanceService, this._commandService = _commandService, this._textSelectionManagerService = _textSelectionManagerService, this._editorService = _editorService, this._docPageLayoutService = _docPageLayoutService, this._init();
2449
- }
2450
- _init() {
2451
- this._initSkeletonListener(), this._initCommandExecutedListener(), this._initRenderRefresher(), setTimeout(() => this.updateViewZoom(1, !0), 20);
3428
+ return kind && result && __defProp$b(target, key, result), result;
3429
+ }, "__decorateClass$b"), __decorateParam$b = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$b"), _a11;
3430
+ let DocZoomRenderController = (_a11 = class extends Disposable {
3431
+ constructor(_context, _contextService, _docSkeletonManagerService, _univerInstanceService, _commandService, _textSelectionManagerService, _editorService, _docPageLayoutService) {
3432
+ super(), this._context = _context, this._contextService = _contextService, this._docSkeletonManagerService = _docSkeletonManagerService, this._univerInstanceService = _univerInstanceService, this._commandService = _commandService, this._textSelectionManagerService = _textSelectionManagerService, this._editorService = _editorService, this._docPageLayoutService = _docPageLayoutService, this._initSkeletonListener(), this._initCommandExecutedListener(), this._initRenderRefresher(), setTimeout(() => this.updateViewZoom(1, !0), 20);
2452
3433
  }
2453
3434
  _initRenderRefresher() {
2454
3435
  this._docSkeletonManagerService.currentSkeleton$.subscribe((param) => {
@@ -2456,7 +3437,7 @@ let DocZoomRenderController = (_a10 = class extends Disposable {
2456
3437
  return;
2457
3438
  const { unitId, scene } = this._context;
2458
3439
  this._editorService.isEditor(unitId) || this.disposeWithMe(scene.onMouseWheel$.subscribeEvent((e) => {
2459
- if (!e.ctrlKey)
3440
+ if (!e.ctrlKey || !this._contextService.getContextValue(FOCUSING_DOC))
2460
3441
  return;
2461
3442
  const documentModel = this._univerInstanceService.getCurrentUniverDocInstance();
2462
3443
  if (!documentModel)
@@ -2486,37 +3467,33 @@ let DocZoomRenderController = (_a10 = class extends Disposable {
2486
3467
  _initCommandExecutedListener() {
2487
3468
  const updateCommandList = [SetDocZoomRatioOperation.id];
2488
3469
  this.disposeWithMe(this._commandService.onCommandExecuted((command) => {
2489
- if (updateCommandList.includes(command.id)) {
2490
- const documentModel = this._univerInstanceService.getCurrentUniverDocInstance();
2491
- if (!documentModel) return;
2492
- const params = command.params, { unitId } = params;
2493
- if (unitId !== documentModel.getUnitId())
2494
- return;
2495
- const zoomRatio = documentModel.zoomRatio || 1;
3470
+ if (updateCommandList.includes(command.id) && command.params.unitId === this._context.unitId) {
3471
+ const zoomRatio = this._context.unit.zoomRatio || 1;
2496
3472
  this.updateViewZoom(zoomRatio);
2497
3473
  }
2498
3474
  }));
2499
3475
  }
2500
3476
  updateViewZoom(zoomRatio, needRefreshSelection = !0) {
2501
- var _a19;
3477
+ var _a23;
2502
3478
  const docObject = neoGetDocObject(this._context);
2503
- docObject.scene.scale(zoomRatio, zoomRatio), this._docPageLayoutService.calculatePagePosition(), needRefreshSelection && !this._editorService.isEditor(this._context.unitId) && this._textSelectionManagerService.refreshSelection(), (_a19 = docObject.scene.getTransformer()) == null || _a19.clearSelectedObjects();
2504
- }
2505
- }, __name(_a10, "DocZoomRenderController"), _a10);
2506
- DocZoomRenderController = __decorateClass$8([
2507
- __decorateParam$8(1, Inject(DocSkeletonManagerService)),
2508
- __decorateParam$8(2, IUniverInstanceService),
2509
- __decorateParam$8(3, ICommandService),
2510
- __decorateParam$8(4, Inject(TextSelectionManagerService)),
2511
- __decorateParam$8(5, IEditorService),
2512
- __decorateParam$8(6, Inject(DocPageLayoutService))
3479
+ docObject.scene.scale(zoomRatio, zoomRatio), this._docPageLayoutService.calculatePagePosition(), needRefreshSelection && !this._editorService.isEditor(this._context.unitId) && this._textSelectionManagerService.refreshSelection(), (_a23 = docObject.scene.getTransformer()) == null || _a23.clearSelectedObjects();
3480
+ }
3481
+ }, __name(_a11, "DocZoomRenderController"), _a11);
3482
+ DocZoomRenderController = __decorateClass$b([
3483
+ __decorateParam$b(1, IContextService),
3484
+ __decorateParam$b(2, Inject(DocSkeletonManagerService)),
3485
+ __decorateParam$b(3, IUniverInstanceService),
3486
+ __decorateParam$b(4, ICommandService),
3487
+ __decorateParam$b(5, Inject(TextSelectionManagerService)),
3488
+ __decorateParam$b(6, IEditorService),
3489
+ __decorateParam$b(7, Inject(DocPageLayoutService))
2513
3490
  ], DocZoomRenderController);
2514
- var __defProp$7 = Object.defineProperty, __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor, __decorateClass$7 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
2515
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
3491
+ var __defProp$a = Object.defineProperty, __getOwnPropDesc$a = Object.getOwnPropertyDescriptor, __decorateClass$a = /* @__PURE__ */ __name((decorators, target, key, kind) => {
3492
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
2516
3493
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
2517
- return kind && result && __defProp$7(target, key, result), result;
2518
- }, "__decorateClass$7"), __decorateParam$7 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$7"), _a11;
2519
- let DocTextSelectionRenderController = (_a11 = class extends Disposable {
3494
+ return kind && result && __defProp$a(target, key, result), result;
3495
+ }, "__decorateClass$a"), __decorateParam$a = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$a"), _a12;
3496
+ let DocTextSelectionRenderController = (_a12 = class extends Disposable {
2520
3497
  constructor(_context, _commandService, _editorService, _instanceSrv, _textSelectionRenderManager, _docSkeletonManagerService, _textSelectionManagerService) {
2521
3498
  super();
2522
3499
  __publicField(this, "_loadedMap", /* @__PURE__ */ new WeakSet());
@@ -2555,7 +3532,7 @@ let DocTextSelectionRenderController = (_a11 = class extends Disposable {
2555
3532
  ), viewModel = this._docSkeletonManagerService.getViewModel(), preEditArea = viewModel.getEditArea();
2556
3533
  preEditArea !== DocumentEditArea.BODY && editArea !== DocumentEditArea.BODY && editArea !== preEditArea && viewModel.setEditArea(editArea);
2557
3534
  }
2558
- if (this._textSelectionRenderManager.eventTrigger(evt), this._editorService.getEditor(unitId)) {
3535
+ if (this._textSelectionRenderManager.onPointDown(evt), this._editorService.getEditor(unitId)) {
2559
3536
  this._setEditorFocus(unitId);
2560
3537
  const { offsetX: offsetX2, offsetY: offsetY2 } = evt;
2561
3538
  setTimeout(() => {
@@ -2587,9 +3564,9 @@ let DocTextSelectionRenderController = (_a11 = class extends Disposable {
2587
3564
  const updateCommandList = [SetDocZoomRatioOperation.id];
2588
3565
  this.disposeWithMe(
2589
3566
  this._commandService.onCommandExecuted((command) => {
2590
- var _a19;
3567
+ var _a23;
2591
3568
  if (updateCommandList.includes(command.id)) {
2592
- const params = command.params, { unitId: documentId } = params, unitId = (_a19 = this._textSelectionManagerService.getCurrentSelection()) == null ? void 0 : _a19.unitId;
3569
+ const params = command.params, { unitId: documentId } = params, unitId = (_a23 = this._textSelectionManagerService.getCurrentSelection()) == null ? void 0 : _a23.unitId;
2593
3570
  if (documentId !== unitId)
2594
3571
  return;
2595
3572
  this._textSelectionManagerService.refreshSelection();
@@ -2598,37 +3575,35 @@ let DocTextSelectionRenderController = (_a11 = class extends Disposable {
2598
3575
  );
2599
3576
  }
2600
3577
  _skeletonListener() {
2601
- this.disposeWithMe(
2602
- this._docSkeletonManagerService.currentSkeleton$.subscribe((skeleton) => {
2603
- if (skeleton == null)
2604
- return;
2605
- const { scene, mainComponent, unitId } = this._context;
2606
- this._textSelectionRenderManager.changeRuntime(skeleton, scene, mainComponent), this._textSelectionManagerService.setCurrentSelectionNotRefresh({
2607
- unitId,
2608
- subUnitId: ""
2609
- }), isInternalEditorID(unitId) || this._textSelectionManagerService.replaceTextRanges([
2610
- {
2611
- startOffset: 0,
2612
- endOffset: 0
2613
- }
2614
- ], !1);
2615
- })
2616
- );
3578
+ let init = !1;
3579
+ this.disposeWithMe(this._docSkeletonManagerService.currentSkeleton$.subscribe((skeleton) => {
3580
+ if (!skeleton) return;
3581
+ const { scene, mainComponent, unitId } = this._context, isInternalEditor = isInternalEditorID(unitId);
3582
+ (init || !isInternalEditorID(this._context.unitId)) && (this._textSelectionRenderManager.changeRuntime(skeleton, scene, mainComponent), this._textSelectionManagerService.setCurrentSelectionNotRefresh({
3583
+ unitId,
3584
+ subUnitId: ""
3585
+ }), isInternalEditor || this._textSelectionManagerService.replaceTextRanges([
3586
+ {
3587
+ startOffset: 0,
3588
+ endOffset: 0
3589
+ }
3590
+ ], !1)), init = !0;
3591
+ }));
2617
3592
  }
2618
- }, __name(_a11, "DocTextSelectionRenderController"), _a11);
2619
- DocTextSelectionRenderController = __decorateClass$7([
2620
- __decorateParam$7(1, ICommandService),
2621
- __decorateParam$7(2, IEditorService),
2622
- __decorateParam$7(3, IUniverInstanceService),
2623
- __decorateParam$7(4, ITextSelectionRenderManager),
2624
- __decorateParam$7(5, Inject(DocSkeletonManagerService)),
2625
- __decorateParam$7(6, Inject(TextSelectionManagerService))
3593
+ }, __name(_a12, "DocTextSelectionRenderController"), _a12);
3594
+ DocTextSelectionRenderController = __decorateClass$a([
3595
+ __decorateParam$a(1, ICommandService),
3596
+ __decorateParam$a(2, IEditorService),
3597
+ __decorateParam$a(3, IUniverInstanceService),
3598
+ __decorateParam$a(4, ITextSelectionRenderManager),
3599
+ __decorateParam$a(5, Inject(DocSkeletonManagerService)),
3600
+ __decorateParam$a(6, Inject(TextSelectionManagerService))
2626
3601
  ], DocTextSelectionRenderController);
2627
- var __defProp$6 = Object.defineProperty, __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor, __decorateClass$6 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
2628
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
3602
+ var __defProp$9 = Object.defineProperty, __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor, __decorateClass$9 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
3603
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
2629
3604
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
2630
- return kind && result && __defProp$6(target, key, result), result;
2631
- }, "__decorateClass$6"), __decorateParam$6 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$6");
3605
+ return kind && result && __defProp$9(target, key, result), result;
3606
+ }, "__decorateClass$9"), __decorateParam$9 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$9");
2632
3607
  function transformBound2OffsetBound(originBound, scene) {
2633
3608
  const topLeft = transformPosition2Offset(originBound.left, originBound.top, scene), bottomRight = transformPosition2Offset(originBound.right, originBound.bottom, scene);
2634
3609
  return {
@@ -2653,8 +3628,8 @@ function transformPosition2Offset(x, y, scene) {
2653
3628
  };
2654
3629
  }
2655
3630
  __name(transformPosition2Offset, "transformPosition2Offset");
2656
- var _a12;
2657
- let DocCanvasPopManagerService = (_a12 = class extends Disposable {
3631
+ var _a13;
3632
+ let DocCanvasPopManagerService = (_a13 = class extends Disposable {
2658
3633
  constructor(_globalPopupManagerService, _renderManagerService, _univerInstanceService, _commandService) {
2659
3634
  super(), this._globalPopupManagerService = _globalPopupManagerService, this._renderManagerService = _renderManagerService, this._univerInstanceService = _univerInstanceService, this._commandService = _commandService;
2660
3635
  }
@@ -2687,19 +3662,19 @@ let DocCanvasPopManagerService = (_a12 = class extends Disposable {
2687
3662
  };
2688
3663
  }
2689
3664
  _createRangePositionObserver(range, currentRender) {
2690
- var _a19;
3665
+ var _a23;
2691
3666
  const calc = /* @__PURE__ */ __name(() => {
2692
3667
  const { scene, mainComponent, engine } = currentRender, skeleton = currentRender.with(DocSkeletonManagerService).getSkeleton(), startPosition = skeleton.findNodePositionByCharIndex(range.startOffset), endPosition = skeleton.findNodePositionByCharIndex(range.endOffset), document = mainComponent;
2693
3668
  if (!endPosition || !startPosition)
2694
3669
  return;
2695
- const documentOffsetConfig = document.getOffsetConfig(), { docsLeft, docsTop } = documentOffsetConfig, canvasElement = engine.getCanvasElement(), canvasClientRect = canvasElement.getBoundingClientRect(), widthOfCanvas = pxToNum(canvasElement.style.width), { top, left, width } = canvasClientRect, scaleAdjust = width / widthOfCanvas, { scaleX, scaleY } = scene.getAncestorScale(), convertor = new NodePositionConvertToCursor(documentOffsetConfig, skeleton), { borderBoxPointGroup } = convertor.getRangePointData(startPosition, endPosition);
2696
- return getLineBounding(borderBoxPointGroup).map((bound) => transformBound2OffsetBound(bound, scene)).map((i) => ({
3670
+ const documentOffsetConfig = document.getOffsetConfig(), { docsLeft, docsTop } = documentOffsetConfig, canvasElement = engine.getCanvasElement(), canvasClientRect = canvasElement.getBoundingClientRect(), widthOfCanvas = pxToNum(canvasElement.style.width), { top, left, width } = canvasClientRect, scaleAdjust = width / widthOfCanvas, { scaleX, scaleY } = scene.getAncestorScale(), convertor = new NodePositionConvertToCursor(documentOffsetConfig, skeleton), { contentBoxPointGroup } = convertor.getRangePointData(startPosition, endPosition);
3671
+ return getLineBounding(contentBoxPointGroup).map((bound) => transformBound2OffsetBound(bound, scene)).map((i) => ({
2697
3672
  left: (i.left + docsLeft * scaleX) * scaleAdjust + left,
2698
3673
  right: (i.right + docsLeft * scaleX) * scaleAdjust + left,
2699
3674
  top: (i.top + docsTop * scaleY) * scaleAdjust + top,
2700
3675
  bottom: (i.bottom + docsTop * scaleY) * scaleAdjust + top
2701
3676
  }));
2702
- }, "calc"), positions = (_a19 = calc()) != null ? _a19 : [], positions$ = new BehaviorSubject(positions), disposable = new DisposableCollection();
3677
+ }, "calc"), positions = (_a23 = calc()) != null ? _a23 : [], positions$ = new BehaviorSubject(positions), disposable = new DisposableCollection();
2703
3678
  disposable.add(this._commandService.onCommandExecuted((commandInfo) => {
2704
3679
  if (commandInfo.id === SetDocZoomRatioOperation.id) {
2705
3680
  const position = calc();
@@ -2765,24 +3740,24 @@ let DocCanvasPopManagerService = (_a12 = class extends Disposable {
2765
3740
  }, "dispose")
2766
3741
  };
2767
3742
  }
2768
- }, __name(_a12, "DocCanvasPopManagerService"), _a12);
2769
- DocCanvasPopManagerService = __decorateClass$6([
2770
- __decorateParam$6(0, Inject(ICanvasPopupService)),
2771
- __decorateParam$6(1, IRenderManagerService),
2772
- __decorateParam$6(2, IUniverInstanceService),
2773
- __decorateParam$6(3, ICommandService)
3743
+ }, __name(_a13, "DocCanvasPopManagerService"), _a13);
3744
+ DocCanvasPopManagerService = __decorateClass$9([
3745
+ __decorateParam$9(0, Inject(ICanvasPopupService)),
3746
+ __decorateParam$9(1, IRenderManagerService),
3747
+ __decorateParam$9(2, IUniverInstanceService),
3748
+ __decorateParam$9(3, ICommandService)
2774
3749
  ], DocCanvasPopManagerService);
2775
- var __defProp$5 = Object.defineProperty, __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor, __decorateClass$5 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
2776
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
3750
+ var __defProp$8 = Object.defineProperty, __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor, __decorateClass$8 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
3751
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
2777
3752
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
2778
- return kind && result && __defProp$5(target, key, result), result;
2779
- }, "__decorateClass$5"), __decorateParam$5 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$5"), _a13;
2780
- let DocsRenderService = (_a13 = class extends RxDisposable {
3753
+ return kind && result && __defProp$8(target, key, result), result;
3754
+ }, "__decorateClass$8"), __decorateParam$8 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$8"), _a14;
3755
+ let DocsRenderService = (_a14 = class extends RxDisposable {
2781
3756
  constructor(_instanceSrv, _renderManagerService) {
2782
3757
  super(), this._instanceSrv = _instanceSrv, this._renderManagerService = _renderManagerService, this._init();
2783
3758
  }
2784
3759
  _init() {
2785
- this._renderManagerService.createRender$.pipe(takeUntil(this.dispose$)).subscribe((unitId) => this._createRenderWithId(unitId)), this._instanceSrv.getTypeOfUnitAdded$(UniverInstanceType.UNIVER_DOC).pipe(takeUntil(this.dispose$)).subscribe((doc) => this._createRenderer(doc)), this._instanceSrv.getAllUnitsForType(UniverInstanceType.UNIVER_DOC).forEach((documentModel) => this._createRenderer(documentModel)), this._instanceSrv.getTypeOfUnitDisposed$(UniverInstanceType.UNIVER_DOC).pipe(takeUntil(this.dispose$)).subscribe((doc) => this._disposeRenderer(doc));
3760
+ this._renderManagerService.createRender$.pipe(takeUntil(this.dispose$)).subscribe((unitId) => this._createRenderWithId(unitId)), this._instanceSrv.getAllUnitsForType(UniverInstanceType.UNIVER_DOC).forEach((documentModel) => this._createRenderer(documentModel)), this._instanceSrv.getTypeOfUnitAdded$(UniverInstanceType.UNIVER_DOC).pipe(takeUntil(this.dispose$)).subscribe((doc) => this._createRenderer(doc)), this._instanceSrv.getTypeOfUnitDisposed$(UniverInstanceType.UNIVER_DOC).pipe(takeUntil(this.dispose$)).subscribe((doc) => this._disposeRenderer(doc));
2786
3761
  }
2787
3762
  _createRenderer(doc) {
2788
3763
  const unitId = doc.getUnitId();
@@ -2795,31 +3770,31 @@ let DocsRenderService = (_a13 = class extends RxDisposable {
2795
3770
  const unitId = doc.getUnitId();
2796
3771
  this._renderManagerService.removeRender(unitId);
2797
3772
  }
2798
- }, __name(_a13, "DocsRenderService"), _a13);
2799
- DocsRenderService = __decorateClass$5([
3773
+ }, __name(_a14, "DocsRenderService"), _a14);
3774
+ DocsRenderService = __decorateClass$8([
2800
3775
  OnLifecycle(LifecycleStages.Ready, DocsRenderService),
2801
- __decorateParam$5(0, IUniverInstanceService),
2802
- __decorateParam$5(1, IRenderManagerService)
3776
+ __decorateParam$8(0, IUniverInstanceService),
3777
+ __decorateParam$8(1, IRenderManagerService)
2803
3778
  ], DocsRenderService);
2804
- var __defProp$4 = Object.defineProperty, __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor, __decorateClass$4 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
2805
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
3779
+ var __defProp$7 = Object.defineProperty, __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor, __decorateClass$7 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
3780
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
2806
3781
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
2807
- return kind && result && __defProp$4(target, key, result), result;
2808
- }, "__decorateClass$4"), __decorateParam$4 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$4");
3782
+ return kind && result && __defProp$7(target, key, result), result;
3783
+ }, "__decorateClass$7"), __decorateParam$7 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$7");
2809
3784
  const SKIP_UNIT_IDS$1 = [
2810
3785
  DEFAULT_EMPTY_DOCUMENT_VALUE,
2811
3786
  DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,
2812
3787
  DOCS_NORMAL_EDITOR_UNIT_ID_KEY,
2813
3788
  DOCS_ZEN_EDITOR_UNIT_ID_KEY
2814
3789
  ];
2815
- var _a14;
2816
- let DocContextMenuRenderController = (_a14 = class extends Disposable {
3790
+ var _a15;
3791
+ let DocContextMenuRenderController = (_a15 = class extends Disposable {
2817
3792
  constructor(_context, _contextMenuService, _textSelectionManagerService, _commandService) {
2818
3793
  super(), this._context = _context, this._contextMenuService = _contextMenuService, this._textSelectionManagerService = _textSelectionManagerService, this._commandService = _commandService, SKIP_UNIT_IDS$1.includes(this._context.unitId) || (this._initPointerDown(), this._initEditChange());
2819
3794
  }
2820
3795
  _initPointerDown() {
2821
- var _a19, _b;
2822
- const documentsSubscription = ((_b = (_a19 = this._context) == null ? void 0 : _a19.mainComponent) == null ? void 0 : _b.onPointerDown$).subscribeEvent((event) => {
3796
+ var _a23, _b;
3797
+ const documentsSubscription = ((_b = (_a23 = this._context) == null ? void 0 : _a23.mainComponent) == null ? void 0 : _b.onPointerDown$).subscribeEvent((event) => {
2823
3798
  event.button === 2 && this._contextMenuService.triggerContextMenu(event, MenuPosition.CONTEXT_MENU);
2824
3799
  });
2825
3800
  this.disposeWithMe(documentsSubscription);
@@ -2831,24 +3806,24 @@ let DocContextMenuRenderController = (_a14 = class extends Disposable {
2831
3806
  })
2832
3807
  );
2833
3808
  }
2834
- }, __name(_a14, "DocContextMenuRenderController"), _a14);
2835
- DocContextMenuRenderController = __decorateClass$4([
2836
- __decorateParam$4(1, IContextMenuService),
2837
- __decorateParam$4(2, Inject(TextSelectionManagerService)),
2838
- __decorateParam$4(3, ICommandService)
3809
+ }, __name(_a15, "DocContextMenuRenderController"), _a15);
3810
+ DocContextMenuRenderController = __decorateClass$7([
3811
+ __decorateParam$7(1, IContextMenuService),
3812
+ __decorateParam$7(2, Inject(TextSelectionManagerService)),
3813
+ __decorateParam$7(3, ICommandService)
2839
3814
  ], DocContextMenuRenderController);
2840
- var __defProp$3 = Object.defineProperty, __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor, __decorateClass$3 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
2841
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
3815
+ var __defProp$6 = Object.defineProperty, __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor, __decorateClass$6 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
3816
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
2842
3817
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
2843
- return kind && result && __defProp$3(target, key, result), result;
2844
- }, "__decorateClass$3"), __decorateParam$3 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$3");
3818
+ return kind && result && __defProp$6(target, key, result), result;
3819
+ }, "__decorateClass$6"), __decorateParam$6 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$6");
2845
3820
  const SKIP_UNIT_IDS = [
2846
3821
  DEFAULT_EMPTY_DOCUMENT_VALUE,
2847
3822
  DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,
2848
3823
  DOCS_NORMAL_EDITOR_UNIT_ID_KEY
2849
3824
  ];
2850
- var _a15;
2851
- let DocResizeRenderController = (_a15 = class extends Disposable {
3825
+ var _a16;
3826
+ let DocResizeRenderController = (_a16 = class extends Disposable {
2852
3827
  constructor(_context, _docPageLayoutService, _textSelectionManagerService) {
2853
3828
  super(), this._context = _context, this._docPageLayoutService = _docPageLayoutService, this._textSelectionManagerService = _textSelectionManagerService, SKIP_UNIT_IDS.includes(this._context.unitId) || this._initResize();
2854
3829
  }
@@ -2862,23 +3837,25 @@ let DocResizeRenderController = (_a15 = class extends Disposable {
2862
3837
  })
2863
3838
  );
2864
3839
  }
2865
- }, __name(_a15, "DocResizeRenderController"), _a15);
2866
- DocResizeRenderController = __decorateClass$3([
2867
- __decorateParam$3(1, Inject(DocPageLayoutService)),
2868
- __decorateParam$3(2, Inject(TextSelectionManagerService))
3840
+ }, __name(_a16, "DocResizeRenderController"), _a16);
3841
+ DocResizeRenderController = __decorateClass$6([
3842
+ __decorateParam$6(1, Inject(DocPageLayoutService)),
3843
+ __decorateParam$6(2, Inject(TextSelectionManagerService))
2869
3844
  ], DocResizeRenderController);
2870
- var __defProp$2 = Object.defineProperty, __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor, __decorateClass$2 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
2871
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
3845
+ var __defProp$5 = Object.defineProperty, __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor, __decorateClass$5 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
3846
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
2872
3847
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
2873
- return kind && result && __defProp$2(target, key, result), result;
2874
- }, "__decorateClass$2"), __decorateParam$2 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$2"), _a16;
2875
- let DocHoverManagerService = (_a16 = class extends Disposable {
3848
+ return kind && result && __defProp$5(target, key, result), result;
3849
+ }, "__decorateClass$5"), __decorateParam$5 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$5"), _a17;
3850
+ let DocHoverManagerService = (_a17 = class extends Disposable {
2876
3851
  constructor(_univerInstanceService, _renderManagerService) {
2877
3852
  super();
2878
- __publicField(this, "_activeCustomRanges$", new BehaviorSubject([]));
3853
+ __publicField(this, "_activeCustomRanges$", new Subject());
2879
3854
  __publicField(this, "activeCustomRanges$", this._activeCustomRanges$.asObservable());
2880
- __publicField(this, "_activeIndex$", new BehaviorSubject(null));
3855
+ __publicField(this, "_activeIndex$", new Subject());
2881
3856
  __publicField(this, "activeIndex$", this._activeIndex$.asObservable());
3857
+ __publicField(this, "_bullet$", new Subject());
3858
+ __publicField(this, "bullet$", this._bullet$.asObservable());
2882
3859
  __publicField(this, "_scrolling", !1);
2883
3860
  this._univerInstanceService = _univerInstanceService, this._renderManagerService = _renderManagerService, this.disposeWithMe(() => {
2884
3861
  this._activeCustomRanges$.complete(), this._activeIndex$.complete();
@@ -2890,7 +3867,7 @@ let DocHoverManagerService = (_a16 = class extends Disposable {
2890
3867
  return documentTransform.clone().invert().applyPoint(originCoord);
2891
3868
  }
2892
3869
  _calcActiveCustomRanges(offsetX, offsetY) {
2893
- var _a19, _b;
3870
+ var _a23, _b;
2894
3871
  const document = this._univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_DOC);
2895
3872
  if (!document) {
2896
3873
  this._activeCustomRanges$.next([]);
@@ -2915,15 +3892,18 @@ let DocHoverManagerService = (_a16 = class extends Disposable {
2915
3892
  );
2916
3893
  if (node && node.node) {
2917
3894
  const left = node.node.left + pageMarginLeft, right = node.node.left + node.node.width + pageMarginLeft;
2918
- if (coord.x < left || coord.x > right) {
2919
- this._activeIndex$.next(null), this._activeCustomRanges$.next([]);
3895
+ let index = node.node.parent.st + node.node.parent.glyphGroup.indexOf(node.node);
3896
+ const paragraph = getParagraphByGlyph(node.node, document.getBody());
3897
+ if (paragraph && paragraph.bullet && index === paragraph.paragraphStart) {
3898
+ this._bullet$.next(paragraph), this._activeIndex$.next(null), this._activeCustomRanges$.next([]);
2920
3899
  return;
2921
3900
  }
2922
- const index = node.node.parent.st + node.node.parent.glyphGroup.indexOf(node.node);
2923
- index !== this._activeIndex$.value && this._activeIndex$.next(index);
2924
- const ranges = (_b = (_a19 = document.getCustomRanges()) == null ? void 0 : _a19.filter((range) => range.startIndex <= index && range.endIndex >= index)) != null ? _b : [], currentRanges = this._activeCustomRanges$.value;
2925
- if (currentRanges.length === ranges.length && currentRanges.every((range, i) => range.rangeId === ranges[i].rangeId))
3901
+ if (coord.x < left || coord.x > right) {
3902
+ this._activeIndex$.next(null), this._activeCustomRanges$.next([]), this._bullet$.next(null);
2926
3903
  return;
3904
+ }
3905
+ paragraph && paragraph.bullet && (index = index - 1), this._bullet$.next(null), this._activeIndex$.next(index);
3906
+ const ranges = (_b = (_a23 = document.getCustomRanges()) == null ? void 0 : _a23.filter((range) => range.startIndex <= index && range.endIndex >= index)) != null ? _b : [];
2927
3907
  this._activeCustomRanges$.next(ranges);
2928
3908
  }
2929
3909
  }
@@ -2939,23 +3919,23 @@ let DocHoverManagerService = (_a16 = class extends Disposable {
2939
3919
  endScroll() {
2940
3920
  this._scrolling = !1;
2941
3921
  }
2942
- }, __name(_a16, "DocHoverManagerService"), _a16);
2943
- DocHoverManagerService = __decorateClass$2([
2944
- __decorateParam$2(0, IUniverInstanceService),
2945
- __decorateParam$2(1, IRenderManagerService)
3922
+ }, __name(_a17, "DocHoverManagerService"), _a17);
3923
+ DocHoverManagerService = __decorateClass$5([
3924
+ __decorateParam$5(0, IUniverInstanceService),
3925
+ __decorateParam$5(1, IRenderManagerService)
2946
3926
  ], DocHoverManagerService);
2947
- var __defProp$1 = Object.defineProperty, __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor, __decorateClass$1 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
2948
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
3927
+ var __defProp$4 = Object.defineProperty, __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor, __decorateClass$4 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
3928
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
2949
3929
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
2950
- return kind && result && __defProp$1(target, key, result), result;
2951
- }, "__decorateClass$1"), __decorateParam$1 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$1"), _a17;
2952
- let DocHoverRenderController = (_a17 = class extends Disposable {
3930
+ return kind && result && __defProp$4(target, key, result), result;
3931
+ }, "__decorateClass$4"), __decorateParam$4 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$4"), _a18;
3932
+ let DocHoverRenderController = (_a18 = class extends Disposable {
2953
3933
  constructor(_context, _docHoverManagerService) {
2954
3934
  super(), this._context = _context, this._docHoverManagerService = _docHoverManagerService, this._initPointerDown(), this._initScroll();
2955
3935
  }
2956
3936
  _initPointerDown() {
2957
3937
  this.disposeWithMe(
2958
- fromEventSubject(this._context.scene.onPointerMove$).pipe(debounceTime(200)).subscribe((evt) => {
3938
+ fromEventSubject(this._context.scene.onPointerMove$).pipe(debounceTime(100)).subscribe((evt) => {
2959
3939
  this._docHoverManagerService.onMouseMove(evt);
2960
3940
  })
2961
3941
  );
@@ -2968,18 +3948,284 @@ let DocHoverRenderController = (_a17 = class extends Disposable {
2968
3948
  this._docHoverManagerService.startScroll();
2969
3949
  })));
2970
3950
  }
2971
- }, __name(_a17, "DocHoverRenderController"), _a17);
2972
- DocHoverRenderController = __decorateClass$1([
2973
- __decorateParam$1(1, Inject(DocHoverManagerService))
3951
+ }, __name(_a18, "DocHoverRenderController"), _a18);
3952
+ DocHoverRenderController = __decorateClass$4([
3953
+ __decorateParam$4(1, Inject(DocHoverManagerService))
2974
3954
  ], DocHoverRenderController);
3955
+ var __defProp$3 = Object.defineProperty, __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor, __decorateClass$3 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
3956
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
3957
+ (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
3958
+ return kind && result && __defProp$3(target, key, result), result;
3959
+ }, "__decorateClass$3"), __decorateParam$3 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$3"), _a19;
3960
+ let DocAutoFormatController = (_a19 = class extends Disposable {
3961
+ constructor(_docAutoFormatService) {
3962
+ super(), this._docAutoFormatService = _docAutoFormatService, this._initListTabAutoFormat(), this._initListSpaceAutoFormat(), this._initDefaultEnterFormat(), this._initExitListAutoFormat();
3963
+ }
3964
+ _initListTabAutoFormat() {
3965
+ this.disposeWithMe(
3966
+ this._docAutoFormatService.registerAutoFormat({
3967
+ id: TabCommand.id,
3968
+ match: /* @__PURE__ */ __name((context) => {
3969
+ var _a23;
3970
+ const { selection, paragraphs, unit } = context;
3971
+ if (paragraphs.length === 1 && selection.startOffset === paragraphs[0].paragraphStart && paragraphs[0].bullet) {
3972
+ const allParagraphs = (_a23 = unit.getBody()) == null ? void 0 : _a23.paragraphs, bulletParagraphs = allParagraphs == null ? void 0 : allParagraphs.filter((p2) => {
3973
+ var _a24;
3974
+ return ((_a24 = p2.bullet) == null ? void 0 : _a24.listId) === paragraphs[0].bullet.listId;
3975
+ });
3976
+ return (bulletParagraphs == null ? void 0 : bulletParagraphs.findIndex((p2) => p2.startIndex === paragraphs[0].startIndex)) !== 0;
3977
+ } else if (paragraphs.length > 1)
3978
+ return !0;
3979
+ return !1;
3980
+ }, "match"),
3981
+ // traverse all paragraphs, set paragraph
3982
+ getMutations(context) {
3983
+ const params = context.commandParams;
3984
+ return [{
3985
+ id: ChangeListNestingLevelCommand.id,
3986
+ params: {
3987
+ type: params != null && params.shift ? ChangeListNestingLevelType.decrease : ChangeListNestingLevelType.increase
3988
+ }
3989
+ }];
3990
+ }
3991
+ })
3992
+ );
3993
+ }
3994
+ _initListSpaceAutoFormat() {
3995
+ this.disposeWithMe(
3996
+ this._docAutoFormatService.registerAutoFormat({
3997
+ id: AfterSpaceCommand.id,
3998
+ match: /* @__PURE__ */ __name((context) => {
3999
+ var _a23;
4000
+ const { selection, paragraphs, unit } = context;
4001
+ if (!selection.collapsed || paragraphs.length !== 1)
4002
+ return !1;
4003
+ const text = (_a23 = unit.getBody()) == null ? void 0 : _a23.dataStream.slice(paragraphs[0].paragraphStart, paragraphs[0].paragraphEnd - 1);
4004
+ return !!(text && Object.keys(QuickListTypeMap).includes(text));
4005
+ }, "match"),
4006
+ getMutations(context) {
4007
+ var _a23;
4008
+ const { paragraphs, unit } = context, text = (_a23 = unit.getBody()) == null ? void 0 : _a23.dataStream.slice(paragraphs[0].paragraphStart, paragraphs[0].paragraphEnd - 1);
4009
+ if (text && Object.keys(QuickListTypeMap).includes(text)) {
4010
+ const type = QuickListTypeMap[text];
4011
+ return [{
4012
+ id: QuickListCommand.id,
4013
+ params: {
4014
+ listType: type,
4015
+ paragraph: paragraphs[0]
4016
+ }
4017
+ }];
4018
+ }
4019
+ return [];
4020
+ }
4021
+ })
4022
+ );
4023
+ }
4024
+ _initExitListAutoFormat() {
4025
+ this.disposeWithMe(
4026
+ this._docAutoFormatService.registerAutoFormat({
4027
+ id: EnterCommand.id,
4028
+ match: /* @__PURE__ */ __name((context) => {
4029
+ const { paragraphs } = context;
4030
+ return !!(paragraphs.length === 1 && paragraphs[0].bullet && paragraphs[0].paragraphStart === paragraphs[0].paragraphEnd);
4031
+ }, "match"),
4032
+ getMutations: /* @__PURE__ */ __name((context) => {
4033
+ const bullet = context.paragraphs[0].bullet;
4034
+ return bullet ? bullet.nestingLevel > 0 ? [{
4035
+ id: ChangeListNestingLevelCommand.id,
4036
+ params: {
4037
+ type: ChangeListNestingLevelType.decrease
4038
+ }
4039
+ }] : [{
4040
+ id: ListOperationCommand.id,
4041
+ params: {
4042
+ listType: context.paragraphs[0].bullet.listType
4043
+ }
4044
+ }] : [];
4045
+ }, "getMutations")
4046
+ })
4047
+ );
4048
+ }
4049
+ _initDefaultEnterFormat() {
4050
+ this.disposeWithMe(
4051
+ this._docAutoFormatService.registerAutoFormat({
4052
+ id: EnterCommand.id,
4053
+ match: /* @__PURE__ */ __name(() => !0, "match"),
4054
+ getMutations() {
4055
+ return [{
4056
+ id: BreakLineCommand.id
4057
+ }];
4058
+ },
4059
+ priority: -9999
4060
+ })
4061
+ );
4062
+ }
4063
+ }, __name(_a19, "DocAutoFormatController"), _a19);
4064
+ DocAutoFormatController = __decorateClass$3([
4065
+ OnLifecycle(LifecycleStages.Rendered, DocAutoFormatController),
4066
+ __decorateParam$3(0, Inject(DocAutoFormatService))
4067
+ ], DocAutoFormatController);
4068
+ var __defProp$2 = Object.defineProperty, __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor, __decorateClass$2 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
4069
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
4070
+ (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
4071
+ return kind && result && __defProp$2(target, key, result), result;
4072
+ }, "__decorateClass$2"), __decorateParam$2 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$2"), _a20;
4073
+ let DocChecklistRenderController = (_a20 = class extends Disposable {
4074
+ constructor(_context, _docSkeletonManagerService, _commandService, _docHoverManagerService) {
4075
+ super(), this._context = _context, this._docSkeletonManagerService = _docSkeletonManagerService, this._commandService = _commandService, this._docHoverManagerService = _docHoverManagerService, this._initPointerDownObserver(), this._initHoverCursor();
4076
+ }
4077
+ _initPointerDownObserver() {
4078
+ this.disposeWithMe(
4079
+ this._context.mainComponent.onPointerDown$.subscribeEvent((evt) => {
4080
+ const { offsetX, offsetY } = evt, documentComponent = this._context.mainComponent, coord = this._getTransformCoordForDocumentOffset(
4081
+ documentComponent,
4082
+ this._context.scene.getViewport(VIEWPORT_KEY.VIEW_MAIN),
4083
+ offsetX,
4084
+ offsetY
4085
+ );
4086
+ if (!coord)
4087
+ return;
4088
+ const { pageLayoutType = PageLayoutType.VERTICAL, pageMarginLeft, pageMarginTop } = documentComponent.getOffsetConfig(), node = this._docSkeletonManagerService.getSkeleton().findNodeByCoord(
4089
+ coord,
4090
+ pageLayoutType,
4091
+ pageMarginLeft,
4092
+ pageMarginTop
4093
+ );
4094
+ if (!node)
4095
+ return;
4096
+ const paragraph = getParagraphByGlyph(node.node, this._context.unit.getBody());
4097
+ paragraph && paragraph.bullet && node.node.glyphType === GlyphType.LIST && (paragraph.bullet.listType === PresetListType.CHECK_LIST || paragraph.bullet.listType === PresetListType.CHECK_LIST_CHECKED) && this._commandService.executeCommand(ToggleCheckListCommand.id, {
4098
+ index: paragraph.startIndex
4099
+ });
4100
+ })
4101
+ );
4102
+ }
4103
+ _initHoverCursor() {
4104
+ this.disposeWithMe(
4105
+ this._docHoverManagerService.bullet$.subscribe((paragraph) => {
4106
+ paragraph ? this._context.mainComponent.setCursor(CURSOR_TYPE.POINTER) : this._context.mainComponent.setCursor(CURSOR_TYPE.TEXT);
4107
+ })
4108
+ );
4109
+ }
4110
+ _getTransformCoordForDocumentOffset(document, viewport, evtOffsetX, evtOffsetY) {
4111
+ const { documentTransform } = document.getOffsetConfig(), originCoord = viewport.transformVector2SceneCoord(Vector2.FromArray([evtOffsetX, evtOffsetY]));
4112
+ if (originCoord)
4113
+ return documentTransform.clone().invert().applyPoint(originCoord);
4114
+ }
4115
+ }, __name(_a20, "DocChecklistRenderController"), _a20);
4116
+ DocChecklistRenderController = __decorateClass$2([
4117
+ __decorateParam$2(1, Inject(DocSkeletonManagerService)),
4118
+ __decorateParam$2(2, ICommandService),
4119
+ __decorateParam$2(3, Inject(DocHoverManagerService))
4120
+ ], DocChecklistRenderController);
4121
+ const create = "univer-create", createItem = "univer-create-item", createLabel = "univer-create-label", createInput = "univer-create-input", styles = {
4122
+ create,
4123
+ createItem,
4124
+ createLabel,
4125
+ createInput
4126
+ }, DocCreateTableConfirm = /* @__PURE__ */ __name(({
4127
+ handleRowColChange,
4128
+ tableCreateParams
4129
+ }) => {
4130
+ const localeService = useDependency(LocaleService), [rowCount, setRowCount] = useState(3), [colCount, setColCount] = useState(5);
4131
+ function handleInputChange(rowCount2, colCount2) {
4132
+ setRowCount(rowCount2), setColCount(colCount2), handleRowColChange(rowCount2, colCount2);
4133
+ }
4134
+ return __name(handleInputChange, "handleInputChange"), useEffect(() => {
4135
+ setRowCount(tableCreateParams.rowCount), setColCount(tableCreateParams.colCount);
4136
+ }, [tableCreateParams]), /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles.create, children: [
4137
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles.createItem, children: [
4138
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: styles.createLabel, children: localeService.t("toolbar.table.rowCount") }),
4139
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
4140
+ InputNumber,
4141
+ {
4142
+ min: 1,
4143
+ max: 20,
4144
+ precision: 0,
4145
+ value: rowCount,
4146
+ onChange: /* @__PURE__ */ __name((val) => {
4147
+ handleInputChange(val, colCount);
4148
+ }, "onChange"),
4149
+ className: styles.createInput
4150
+ }
4151
+ )
4152
+ ] }),
4153
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles.createItem, children: [
4154
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: styles.createLabel, children: localeService.t("toolbar.table.colCount") }),
4155
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
4156
+ InputNumber,
4157
+ {
4158
+ min: 1,
4159
+ max: 20,
4160
+ precision: 0,
4161
+ value: colCount,
4162
+ onChange: /* @__PURE__ */ __name((val) => {
4163
+ handleInputChange(rowCount, val);
4164
+ }, "onChange"),
4165
+ className: styles.createInput
4166
+ }
4167
+ )
4168
+ ] })
4169
+ ] });
4170
+ }, "DocCreateTableConfirm");
4171
+ var __defProp$1 = Object.defineProperty, __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor, __decorateClass$1 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
4172
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
4173
+ (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
4174
+ return kind && result && __defProp$1(target, key, result), result;
4175
+ }, "__decorateClass$1"), __decorateParam$1 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$1"), _a21;
4176
+ let DocTableController = (_a21 = class extends Disposable {
4177
+ constructor(_commandService, _componentManager) {
4178
+ super(), this._commandService = _commandService, this._componentManager = _componentManager, this._initialize();
4179
+ }
4180
+ _initialize() {
4181
+ this._init(), this._registerCommands(), this._initCustomComponents();
4182
+ }
4183
+ _registerCommands() {
4184
+ [
4185
+ DocCreateTableOperation
4186
+ ].forEach((command) => this.disposeWithMe(this._commandService.registerCommand(command)));
4187
+ }
4188
+ _initCustomComponents() {
4189
+ const componentManager = this._componentManager;
4190
+ this.disposeWithMe(componentManager.register(COMPONENT_DOC_CREATE_TABLE_CONFIRM, DocCreateTableConfirm));
4191
+ }
4192
+ _init() {
4193
+ }
4194
+ }, __name(_a21, "DocTableController"), _a21);
4195
+ DocTableController = __decorateClass$1([
4196
+ OnLifecycle(LifecycleStages.Rendered, DocTableController),
4197
+ __decorateParam$1(0, ICommandService),
4198
+ __decorateParam$1(1, Inject(ComponentManager))
4199
+ ], DocTableController);
4200
+ const DocTabCommand = {
4201
+ id: "doc.tab.tab-in-doc",
4202
+ type: CommandType.COMMAND,
4203
+ handler: /* @__PURE__ */ __name(async (accessor) => {
4204
+ const textSelectionManagerService = accessor.get(TextSelectionManagerService), commandService = accessor.get(ICommandService), activeTextRange = textSelectionManagerService.getActiveTextRangeWithStyle();
4205
+ if (activeTextRange == null)
4206
+ return !1;
4207
+ const { startNodePosition, endNodePosition } = activeTextRange;
4208
+ return startNodePosition && endNodePosition && isInSameTableCell(startNodePosition, endNodePosition) ? commandService.executeCommand(DocTableTabCommand.id) : !1;
4209
+ }, "handler")
4210
+ }, DocShiftTabCommand = {
4211
+ id: "doc.tab.shift-tab-in-doc",
4212
+ type: CommandType.COMMAND,
4213
+ handler: /* @__PURE__ */ __name(async (accessor) => {
4214
+ const textSelectionManagerService = accessor.get(TextSelectionManagerService), commandService = accessor.get(ICommandService), activeTextRange = textSelectionManagerService.getActiveTextRangeWithStyle();
4215
+ if (activeTextRange == null)
4216
+ return !1;
4217
+ const { startNodePosition, endNodePosition } = activeTextRange;
4218
+ return startNodePosition && endNodePosition && isInSameTableCell(startNodePosition, endNodePosition) ? commandService.executeCommand(DocTableShiftTabCommand.id) : !1;
4219
+ }, "handler")
4220
+ };
2975
4221
  var __defProp2 = Object.defineProperty, __getOwnPropDesc = Object.getOwnPropertyDescriptor, __decorateClass = /* @__PURE__ */ __name((decorators, target, key, kind) => {
2976
4222
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
2977
4223
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
2978
4224
  return kind && result && __defProp2(target, key, result), result;
2979
- }, "__decorateClass"), __decorateParam = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam"), _a18;
2980
- let UniverDocsUIPlugin = (_a18 = class extends Plugin {
2981
- constructor(_config, _injector, _renderManagerSrv, _logService) {
2982
- super(), this._config = _config, this._injector = _injector, this._renderManagerSrv = _renderManagerSrv, this._logService = _logService, this._config = Tools.deepMerge({}, DefaultDocUiConfig, this._config), this._initDependencies(_injector), this._initializeCommands();
4225
+ }, "__decorateClass"), __decorateParam = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam"), _a22;
4226
+ let UniverDocsUIPlugin = (_a22 = class extends Plugin {
4227
+ constructor(_config, _injector, _renderManagerSrv, _commandService, _logService) {
4228
+ super(), this._config = _config, this._injector = _injector, this._renderManagerSrv = _renderManagerSrv, this._commandService = _commandService, this._logService = _logService, this._config = Tools.deepMerge({}, DefaultDocUiConfig, this._config), this._initDependencies(_injector), this._initializeShortcut(), this._initCommand(), this._registerCommands();
2983
4229
  }
2984
4230
  onReady() {
2985
4231
  this._initRenderBasics(), this._markDocAsFocused();
@@ -2987,7 +4233,12 @@ let UniverDocsUIPlugin = (_a18 = class extends Plugin {
2987
4233
  onRendered() {
2988
4234
  this._initUI(), this._initRenderModules();
2989
4235
  }
2990
- _initializeCommands() {
4236
+ _initCommand() {
4237
+ [DocParagraphSettingCommand, DocParagraphSettingPanelOperation].forEach((e) => {
4238
+ this._commandService.registerCommand(e);
4239
+ });
4240
+ }
4241
+ _initializeShortcut() {
2991
4242
  [
2992
4243
  MoveCursorUpShortcut,
2993
4244
  MoveCursorDownShortcut,
@@ -3000,22 +4251,34 @@ let UniverDocsUIPlugin = (_a18 = class extends Plugin {
3000
4251
  SelectAllShortcut,
3001
4252
  DeleteLeftShortcut,
3002
4253
  DeleteRightShortcut,
3003
- BreakLineShortcut
4254
+ BreakLineShortcut,
4255
+ ShiftTabShortCut
4256
+ // TabShortcut,
4257
+ // ShiftTabShortcut,
3004
4258
  ].forEach((shortcut) => {
3005
4259
  this._injector.get(IShortcutService).registerShortcut(shortcut);
3006
4260
  });
3007
4261
  }
3008
- _initDependencies(injector) {
4262
+ _registerCommands() {
3009
4263
  [
4264
+ DocTabCommand,
4265
+ DocShiftTabCommand
4266
+ ].forEach((command) => this.disposeWithMe(this._commandService.registerCommand(command)));
4267
+ }
4268
+ _initDependencies(injector) {
4269
+ mergeOverrideWithDependencies([
3010
4270
  [DocUIController, { useFactory: /* @__PURE__ */ __name(() => this._injector.createInstance(DocUIController, this._config), "useFactory") }],
3011
4271
  [DocClipboardController],
3012
4272
  [DocEditorBridgeController],
4273
+ [DocAutoFormatController],
4274
+ [DocTableController],
3013
4275
  [DocsRenderService],
3014
4276
  [AppUIController, { useFactory: /* @__PURE__ */ __name(() => this._injector.createInstance(AppUIController, this._config), "useFactory") }],
3015
4277
  [IDocClipboardService, { useClass: DocClipboardService }],
3016
4278
  [DocCanvasPopManagerService],
3017
- [DocHoverManagerService]
3018
- ].forEach((d) => injector.add(d));
4279
+ [DocHoverManagerService],
4280
+ [DocParagraphSettingController]
4281
+ ], this._config.override).forEach((d) => injector.add(d));
3019
4282
  }
3020
4283
  _markDocAsFocused() {
3021
4284
  const currentService = this._injector.get(IUniverInstanceService), editorService = this._injector.get(IEditorService);
@@ -3049,16 +4312,18 @@ let UniverDocsUIPlugin = (_a18 = class extends Plugin {
3049
4312
  [DocHeaderFooterController],
3050
4313
  [DocResizeRenderController],
3051
4314
  [DocHoverRenderController],
3052
- [DocContextMenuRenderController]
4315
+ [DocContextMenuRenderController],
4316
+ [DocChecklistRenderController]
3053
4317
  ].forEach((m2) => {
3054
4318
  this._renderManagerSrv.registerRenderModule(UniverInstanceType.UNIVER_DOC, m2);
3055
4319
  });
3056
4320
  }
3057
- }, __name(_a18, "UniverDocsUIPlugin"), __publicField(_a18, "pluginName", DOC_UI_PLUGIN_NAME), __publicField(_a18, "type", UniverInstanceType.UNIVER_DOC), _a18);
4321
+ }, __name(_a22, "UniverDocsUIPlugin"), __publicField(_a22, "pluginName", DOC_UI_PLUGIN_NAME), __publicField(_a22, "type", UniverInstanceType.UNIVER_DOC), _a22);
3058
4322
  UniverDocsUIPlugin = __decorateClass([
3059
4323
  __decorateParam(1, Inject(Injector)),
3060
4324
  __decorateParam(2, IRenderManagerService),
3061
- __decorateParam(3, ILogService)
4325
+ __decorateParam(3, ICommandService),
4326
+ __decorateParam(4, ILogService)
3062
4327
  ], UniverDocsUIPlugin);
3063
4328
  function docDrawingPositionToTransform(position) {
3064
4329
  return {
@@ -3095,10 +4360,12 @@ export {
3095
4360
  DocBackScrollRenderController,
3096
4361
  DocCanvasPopManagerService,
3097
4362
  DocCopyCommand,
4363
+ DocCreateTableOperation,
3098
4364
  DocCutCommand,
3099
4365
  DocHoverManagerService,
3100
4366
  DocPasteCommand,
3101
4367
  DocRenderController,
4368
+ DocUIController,
3102
4369
  DocsRenderService,
3103
4370
  IDocClipboardService,
3104
4371
  PastePluginLark,