@univerjs/docs-ui 0.4.0-alpha.0 → 0.4.0-nightly.202410121605

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/es/index.js CHANGED
@@ -11,7 +11,6 @@ import { LexerTreeBuilder, operatorToken, isReferenceStrings, serializeRange, se
11
11
  import { Subject, BehaviorSubject, takeUntil, fromEvent, merge, combineLatest, Observable, map as map$1, distinctUntilChanged, filter as filter$1, throttleTime, mergeMap, take, animationFrameScheduler } from "rxjs";
12
12
  import { ILayoutService, useEvent, ComponentManager, ISidebarService, KeyCode, MetaKeys, IClipboardInterfaceService, PLAIN_TEXT_CLIPBOARD_MIME_TYPE, HTML_CLIPBOARD_MIME_TYPE, CopyCommand, CutCommand, PasteCommand, IConfirmService, MenuItemType, getMenuHiddenObservable, FONT_FAMILY_LIST, FONT_SIZE_LIST, getHeaderFooterMenuHiddenObservable, RibbonStartGroup, ContextMenuPosition, ContextMenuGroup, FontFamily, FontFamilyItem, FontSize, BuiltInUIPart, IMenuManagerService, IUIPartsService, IShortcutService, ICanvasPopupService, IContextMenuService, SetEditorResizeOperation } from "@univerjs/ui";
13
13
  import { Tooltip, Dialog, Button, Input, Checkbox, InputNumber, Slider, Select, ColorPicker } from "@univerjs/design";
14
- import clsx from "clsx";
15
14
  import { filter, bufferTime, map } from "rxjs/operators";
16
15
  var __defProp$r = Object.defineProperty, __getOwnPropDesc$r = Object.getOwnPropertyDescriptor, __decorateClass$r = /* @__PURE__ */ __name((decorators, target, key, kind) => {
17
16
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$r(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
@@ -1440,8 +1439,8 @@ const _RectRange = class _RectRange {
1440
1439
  };
1441
1440
  __name(_RectRange, "RectRange");
1442
1441
  let RectRange = _RectRange;
1443
- function getTextRangeFromCharIndex(startOffset, endOffset, scene, document2, skeleton, style, segmentId, segmentPage) {
1444
- const startNodePosition = skeleton.findNodePositionByCharIndex(startOffset, !0, segmentId, segmentPage), endNodePosition = skeleton.findNodePositionByCharIndex(endOffset, !0, segmentId, segmentPage);
1442
+ function getTextRangeFromCharIndex(startOffset, endOffset, scene, document2, skeleton, style, segmentId, segmentPage, startIsBack = !0, endIsBack = !0) {
1443
+ const startNodePosition = skeleton.findNodePositionByCharIndex(startOffset, startIsBack, segmentId, segmentPage), endNodePosition = skeleton.findNodePositionByCharIndex(endOffset, endIsBack, segmentId, segmentPage);
1445
1444
  if (!(startNodePosition == null || endNodePosition == null))
1446
1445
  return new TextRange(scene, document2, skeleton, startNodePosition, endNodePosition, style, segmentId, segmentPage);
1447
1446
  }
@@ -1692,7 +1691,6 @@ let DocSelectionRenderService = (_a2 = class extends RxDisposable {
1692
1691
  _setRangeStyle(style = NORMAL_TEXT_SELECTION_PLUGIN_STYLE) {
1693
1692
  this._selectionStyle = style;
1694
1693
  }
1695
- // eslint-disable-next-line max-lines-per-function
1696
1694
  addDocRanges(ranges, isEditing = !0, options) {
1697
1695
  const {
1698
1696
  _currentSegmentId: segmentId,
@@ -1700,9 +1698,9 @@ let DocSelectionRenderService = (_a2 = class extends RxDisposable {
1700
1698
  _selectionStyle: style
1701
1699
  } = this, { scene, mainComponent } = this._context, document2 = mainComponent, docSkeleton = this._docSkeletonManagerService.getSkeleton();
1702
1700
  for (const range of ranges) {
1703
- const { startOffset, endOffset, rangeType } = range;
1701
+ const { startOffset, endOffset, rangeType, startNodePosition, endNodePosition } = range;
1704
1702
  if (rangeType === DOC_RANGE_TYPE.RECT) {
1705
- const { startNodePosition, endNodePosition } = range, rectRange = startNodePosition && endNodePosition ? new RectRange(scene, document2, docSkeleton, startNodePosition, endNodePosition, style, segmentId, segmentPage) : getRectRangeFromCharIndex(
1703
+ const rectRange = getRectRangeFromCharIndex(
1706
1704
  startOffset,
1707
1705
  endOffset,
1708
1706
  scene,
@@ -1714,15 +1712,17 @@ let DocSelectionRenderService = (_a2 = class extends RxDisposable {
1714
1712
  );
1715
1713
  rectRange && this._addRectRanges([rectRange]);
1716
1714
  } else if (rangeType === DOC_RANGE_TYPE.TEXT) {
1717
- const { startNodePosition, endNodePosition } = range, textRange = startNodePosition && endNodePosition ? new TextRange(scene, document2, docSkeleton, startNodePosition, endNodePosition, style, segmentId, segmentPage) : getTextRangeFromCharIndex(
1718
- startOffset,
1719
- endOffset,
1715
+ const textRange = getTextRangeFromCharIndex(
1716
+ startNodePosition != null && startNodePosition.isBack ? startOffset : startOffset - 1,
1717
+ endNodePosition != null && endNodePosition.isBack ? endOffset : endOffset - 1,
1720
1718
  scene,
1721
1719
  document2,
1722
1720
  docSkeleton,
1723
1721
  style,
1724
1722
  segmentId,
1725
- segmentPage
1723
+ segmentPage,
1724
+ startNodePosition == null ? void 0 : startNodePosition.isBack,
1725
+ endNodePosition == null ? void 0 : endNodePosition.isBack
1726
1726
  );
1727
1727
  textRange && this._addTextRange(textRange);
1728
1728
  } else {
@@ -1935,11 +1935,11 @@ let DocSelectionRenderService = (_a2 = class extends RxDisposable {
1935
1935
  }), this._scrollTimers = [];
1936
1936
  }
1937
1937
  _setSystemHighlightColorToStyle() {
1938
- const { r, g, b, a } = getSystemHighlightColor(), style = {
1938
+ const { r: r2, g, b, a } = getSystemHighlightColor(), style = {
1939
1939
  strokeWidth: 1.5,
1940
1940
  stroke: "rgba(0, 0, 0, 0)",
1941
1941
  strokeActive: "rgba(0, 0, 0, 1)",
1942
- fill: `rgba(${r}, ${g}, ${b}, ${a != null ? a : 0.3})`
1942
+ fill: `rgba(${r2}, ${g}, ${b}, ${a != null ? a : 0.3})`
1943
1943
  };
1944
1944
  this._setRangeStyle(style);
1945
1945
  }
@@ -3182,6 +3182,21 @@ var element = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width:
3182
3182
  }));
3183
3183
  });
3184
3184
  TodoList.displayName = "TodoList";
3185
+ function r(e) {
3186
+ var t, f2, n2 = "";
3187
+ if (typeof e == "string" || typeof e == "number") n2 += e;
3188
+ else if (typeof e == "object") if (Array.isArray(e)) {
3189
+ var o = e.length;
3190
+ for (t = 0; t < o; t++) e[t] && (f2 = r(e[t])) && (n2 && (n2 += " "), n2 += f2);
3191
+ } else for (f2 in e) e[f2] && (n2 && (n2 += " "), n2 += f2);
3192
+ return n2;
3193
+ }
3194
+ __name(r, "r");
3195
+ function clsx() {
3196
+ for (var e, t, f2 = 0, n2 = "", o = arguments.length; f2 < o; f2++) (e = arguments[f2]) && (t = r(e)) && (n2 && (n2 += " "), n2 += t);
3197
+ return n2;
3198
+ }
3199
+ __name(clsx, "clsx");
3185
3200
  const _RangeSelectorService = class _RangeSelectorService extends Disposable {
3186
3201
  constructor() {
3187
3202
  super(...arguments);
@@ -5426,7 +5441,7 @@ const InnerPasteCommand = {
5426
5441
  // eslint-disable-next-line max-lines-per-function, complexity
5427
5442
  handler: /* @__PURE__ */ __name(async (accessor, params) => {
5428
5443
  var _a28, _b2, _c, _d;
5429
- const { segmentId, textRanges, doc } = params, commandService = accessor.get(ICommandService), docSelectionManagerService = accessor.get(DocSelectionManagerService), univerInstanceService = accessor.get(IUniverInstanceService), originSelections = docSelectionManagerService.getTextRanges(), { body, tableSource, drawings } = doc;
5444
+ const { segmentId, textRanges, doc } = params, commandService = accessor.get(ICommandService), docSelectionManagerService = accessor.get(DocSelectionManagerService), univerInstanceService = accessor.get(IUniverInstanceService), originSelections = docSelectionManagerService.getTextRanges(), rectRanges = docSelectionManagerService.getRectRanges(), { body, tableSource, drawings } = doc;
5430
5445
  if (!Array.isArray(originSelections) || originSelections.length === 0 || body == null)
5431
5446
  return !1;
5432
5447
  const docDataModel = univerInstanceService.getCurrentUniverDocInstance(), originBody = docDataModel == null ? void 0 : docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();
@@ -5443,7 +5458,7 @@ const InnerPasteCommand = {
5443
5458
  }, memoryCursor = new MemoryCursor();
5444
5459
  memoryCursor.reset();
5445
5460
  const textX = new TextX(), jsonX = JSONX.getInstance(), rawActions = [], hasTable = !!((_a28 = body.tables) != null && _a28.length), hasCustomBlock = !!((_b2 = body.customBlocks) != null && _b2.length);
5446
- if (hasTable && segmentId || hasTable && hasRangeInTable(selections))
5461
+ if (hasTable && segmentId || hasTable && hasRangeInTable(selections) || selections.length && (rectRanges != null && rectRanges.length))
5447
5462
  return !1;
5448
5463
  for (const selection of selections) {
5449
5464
  const { startOffset, endOffset, collapsed } = selection, len = startOffset - memoryCursor.cursor, cloneBody = Tools.deepClone(body);
@@ -7,7 +7,7 @@ interface IDocRangeList {
7
7
  textRanges: TextRange[];
8
8
  rectRanges: RectRange[];
9
9
  }
10
- export declare function getTextRangeFromCharIndex(startOffset: number, endOffset: number, scene: Scene, document: Documents, skeleton: DocumentSkeleton, style: ITextSelectionStyle, segmentId: string, segmentPage: number): Nullable<TextRange>;
10
+ export declare function getTextRangeFromCharIndex(startOffset: number, endOffset: number, scene: Scene, document: Documents, skeleton: DocumentSkeleton, style: ITextSelectionStyle, segmentId: string, segmentPage: number, startIsBack?: boolean, endIsBack?: boolean): Nullable<TextRange>;
11
11
  export declare function getRectRangeFromCharIndex(startOffset: number, endOffset: number, scene: Scene, document: Documents, skeleton: DocumentSkeleton, style: ITextSelectionStyle, segmentId: string, segmentPage: number): Nullable<RectRange>;
12
12
  export declare function getRangeListFromCharIndex(startOffset: number, endOffset: number, scene: Scene, document: Documents, skeleton: DocumentSkeleton, style: ITextSelectionStyle, segmentId: string, segmentPage: number): Nullable<IDocRangeList>;
13
13
  export declare function getRangeListFromSelection(anchorPosition: INodePosition, focusPosition: INodePosition, scene: Scene, document: Documents, skeleton: DocumentSkeleton, style: ITextSelectionStyle, segmentId: string, segmentPage: number): Nullable<IDocRangeList>;