@univerjs/docs-quick-insert-ui 1.0.0-alpha.8 → 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -50,12 +50,12 @@ function measureTextWidth(text, font) {
50
50
  return Math.ceil(context.measureText(text).width);
51
51
  }
52
52
  const KeywordInputPlaceholder = ({ popup }) => {
53
- var _popup$extraProps$fon, _popup$extraProps, _popup$extraProps$fon2, _popup$extraProps2, _popup$extraProps$asc, _popup$extraProps3, _popup$extraProps$con, _popup$extraProps4, _popup$extraProps5, _popup$extraProps6, _popup$extraProps7;
53
+ var _popup$extraProps, _popup$extraProps2, _popup$extraProps3, _popup$extraProps4, _popup$extraProps5, _popup$extraProps6, _popup$extraProps7;
54
54
  const placeholder = (0, _univerjs_ui.useDependency)(_univerjs_core.LocaleService).t("docs-quick-insert-ui.keywordInputPlaceholder");
55
- const fontSizePx = (0, _univerjs_engine_render.ptToPixel)((_popup$extraProps$fon = (_popup$extraProps = popup.extraProps) === null || _popup$extraProps === void 0 ? void 0 : _popup$extraProps.fontSize) !== null && _popup$extraProps$fon !== void 0 ? _popup$extraProps$fon : DEFAULT_FONT_SIZE);
56
- const fontString = (_popup$extraProps$fon2 = (_popup$extraProps2 = popup.extraProps) === null || _popup$extraProps2 === void 0 ? void 0 : _popup$extraProps2.fontString) !== null && _popup$extraProps$fon2 !== void 0 ? _popup$extraProps$fon2 : `${fontSizePx}px sans-serif`;
57
- const ascent = (_popup$extraProps$asc = (_popup$extraProps3 = popup.extraProps) === null || _popup$extraProps3 === void 0 ? void 0 : _popup$extraProps3.ascent) !== null && _popup$extraProps$asc !== void 0 ? _popup$extraProps$asc : fontSizePx;
58
- const contentHeight = Math.max((_popup$extraProps$con = (_popup$extraProps4 = popup.extraProps) === null || _popup$extraProps4 === void 0 ? void 0 : _popup$extraProps4.contentHeight) !== null && _popup$extraProps$con !== void 0 ? _popup$extraProps$con : fontSizePx, fontSizePx);
55
+ const fontSizePx = (0, _univerjs_engine_render.ptToPixel)(((_popup$extraProps = popup.extraProps) === null || _popup$extraProps === void 0 ? void 0 : _popup$extraProps.fontSize) ?? DEFAULT_FONT_SIZE);
56
+ const fontString = ((_popup$extraProps2 = popup.extraProps) === null || _popup$extraProps2 === void 0 ? void 0 : _popup$extraProps2.fontString) ?? `${fontSizePx}px sans-serif`;
57
+ const ascent = ((_popup$extraProps3 = popup.extraProps) === null || _popup$extraProps3 === void 0 ? void 0 : _popup$extraProps3.ascent) ?? fontSizePx;
58
+ const contentHeight = Math.max(((_popup$extraProps4 = popup.extraProps) === null || _popup$extraProps4 === void 0 ? void 0 : _popup$extraProps4.contentHeight) ?? fontSizePx, fontSizePx);
59
59
  const textWidth = (0, react.useMemo)(() => measureTextWidth(placeholder, fontString), [fontString, placeholder]);
60
60
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
61
61
  className: "univer-select-none univer-font-normal univer-text-gray-500 univer-transition-colors dark:!univer-text-gray-400",
@@ -104,8 +104,8 @@ function QuickInsertMenu(props) {
104
104
  const flatMenus = (0, react.useMemo)(() => flattenMenuItems(menus), [menus]);
105
105
  const menuNodeMapRef = (0, react.useRef)(/* @__PURE__ */ new Map());
106
106
  (0, react.useEffect)(() => {
107
- var _flatMenus$focusedMen, _menuNodeMapRef$curre;
108
- const focusedMenu = Number.isNaN(focusedMenuIndex) ? null : (_flatMenus$focusedMen = flatMenus[focusedMenuIndex]) !== null && _flatMenus$focusedMen !== void 0 ? _flatMenus$focusedMen : null;
107
+ var _menuNodeMapRef$curre;
108
+ const focusedMenu = Number.isNaN(focusedMenuIndex) ? null : flatMenus[focusedMenuIndex] ?? null;
109
109
  onFocusedMenuChange(focusedMenu);
110
110
  if (!focusedMenu) return;
111
111
  (_menuNodeMapRef$curre = menuNodeMapRef.current.get(focusedMenu.id)) === null || _menuNodeMapRef$curre === void 0 || _menuNodeMapRef$curre.scrollIntoView({ block: "nearest" });
@@ -460,9 +460,8 @@ let DocQuickInsertPopupService = class DocQuickInsertPopupService extends _unive
460
460
  };
461
461
  let lastFilterKeyword = "";
462
462
  this.filterKeyword$ = this._inputOffset$.pipe((0, rxjs.map)((offset) => {
463
- var _slice$slice;
464
463
  const slice = getBodySlice(offset.start, offset.end);
465
- return (_slice$slice = slice === null || slice === void 0 ? void 0 : slice.slice(1)) !== null && _slice$slice !== void 0 ? _slice$slice : "";
464
+ return (slice === null || slice === void 0 ? void 0 : slice.slice(1)) ?? "";
466
465
  }), (0, rxjs.distinctUntilChanged)(), (0, rxjs.tap)((filterKeyword) => {
467
466
  lastFilterKeyword = filterKeyword;
468
467
  }));
@@ -518,12 +517,12 @@ let DocQuickInsertPopupService = class DocQuickInsertPopupService extends _unive
518
517
  };
519
518
  }
520
519
  _getParagraphBound(unitId, index) {
521
- var _currentDoc$getBody, _docEventManagerServi;
520
+ var _currentDoc$getBody;
522
521
  const currentDoc = this._univerInstanceService.getUnit(unitId);
523
522
  const paragraph = currentDoc === null || currentDoc === void 0 || (_currentDoc$getBody = currentDoc.getBody()) === null || _currentDoc$getBody === void 0 || (_currentDoc$getBody = _currentDoc$getBody.paragraphs) === null || _currentDoc$getBody === void 0 ? void 0 : _currentDoc$getBody.find((p) => p.startIndex > index);
524
523
  if (!paragraph) return null;
525
524
  const docEventManagerService = this.getDocEventManagerService(unitId);
526
- return (_docEventManagerServi = docEventManagerService === null || docEventManagerService === void 0 ? void 0 : docEventManagerService.findParagraphBoundByIndex(paragraph.startIndex)) !== null && _docEventManagerServi !== void 0 ? _docEventManagerServi : null;
525
+ return (docEventManagerService === null || docEventManagerService === void 0 ? void 0 : docEventManagerService.findParagraphBoundByIndex(paragraph.startIndex)) ?? null;
527
526
  }
528
527
  _getKeywordPlaceholderAnchorRect(document, skeleton, activeRange, fallbackRect) {
529
528
  const startPosition = skeleton.findNodePositionByCharIndex(activeRange.startOffset, true, activeRange.segmentId, activeRange.segmentPage);
@@ -542,15 +541,15 @@ let DocQuickInsertPopupService = class DocQuickInsertPopupService extends _unive
542
541
  };
543
542
  }
544
543
  _getKeywordPlaceholderExtraProps(curGlyph) {
545
- var _curGlyph$ts, _curGlyph$fontStyle, _ref, _curGlyph$fontStyle$f, _curGlyph$fontStyle2, _curGlyph$ts2, _curGlyph$ts3, _curGlyph$ts4, _curGlyph$bBox, _curGlyph$bBox$ba, _curGlyph$bBox2, _curGlyph$bBox$bd, _curGlyph$bBox3;
544
+ var _curGlyph$ts, _curGlyph$fontStyle, _curGlyph$fontStyle2, _curGlyph$ts2, _curGlyph$ts3, _curGlyph$ts4, _curGlyph$bBox, _curGlyph$bBox2, _curGlyph$bBox3;
546
545
  return {
547
546
  fontSize: (_curGlyph$ts = curGlyph.ts) === null || _curGlyph$ts === void 0 ? void 0 : _curGlyph$ts.fs,
548
547
  fontString: (_curGlyph$fontStyle = curGlyph.fontStyle) === null || _curGlyph$fontStyle === void 0 ? void 0 : _curGlyph$fontStyle.fontString,
549
- fontFamily: (_ref = (_curGlyph$fontStyle$f = (_curGlyph$fontStyle2 = curGlyph.fontStyle) === null || _curGlyph$fontStyle2 === void 0 ? void 0 : _curGlyph$fontStyle2.fontFamily) !== null && _curGlyph$fontStyle$f !== void 0 ? _curGlyph$fontStyle$f : (_curGlyph$ts2 = curGlyph.ts) === null || _curGlyph$ts2 === void 0 ? void 0 : _curGlyph$ts2.ff) !== null && _ref !== void 0 ? _ref : void 0,
548
+ fontFamily: ((_curGlyph$fontStyle2 = curGlyph.fontStyle) === null || _curGlyph$fontStyle2 === void 0 ? void 0 : _curGlyph$fontStyle2.fontFamily) ?? ((_curGlyph$ts2 = curGlyph.ts) === null || _curGlyph$ts2 === void 0 ? void 0 : _curGlyph$ts2.ff) ?? void 0,
550
549
  fontStyle: ((_curGlyph$ts3 = curGlyph.ts) === null || _curGlyph$ts3 === void 0 ? void 0 : _curGlyph$ts3.it) ? "italic" : "normal",
551
550
  fontWeight: ((_curGlyph$ts4 = curGlyph.ts) === null || _curGlyph$ts4 === void 0 ? void 0 : _curGlyph$ts4.bl) ? "bold" : "normal",
552
551
  ascent: (_curGlyph$bBox = curGlyph.bBox) === null || _curGlyph$bBox === void 0 ? void 0 : _curGlyph$bBox.ba,
553
- contentHeight: ((_curGlyph$bBox$ba = (_curGlyph$bBox2 = curGlyph.bBox) === null || _curGlyph$bBox2 === void 0 ? void 0 : _curGlyph$bBox2.ba) !== null && _curGlyph$bBox$ba !== void 0 ? _curGlyph$bBox$ba : 0) + ((_curGlyph$bBox$bd = (_curGlyph$bBox3 = curGlyph.bBox) === null || _curGlyph$bBox3 === void 0 ? void 0 : _curGlyph$bBox3.bd) !== null && _curGlyph$bBox$bd !== void 0 ? _curGlyph$bBox$bd : 0) || void 0
552
+ contentHeight: (((_curGlyph$bBox2 = curGlyph.bBox) === null || _curGlyph$bBox2 === void 0 ? void 0 : _curGlyph$bBox2.ba) ?? 0) + (((_curGlyph$bBox3 = curGlyph.bBox) === null || _curGlyph$bBox3 === void 0 ? void 0 : _curGlyph$bBox3.bd) ?? 0) || void 0
554
553
  };
555
554
  }
556
555
  _mountInputPlaceholder(unitId, fallbackRect) {
@@ -794,8 +793,7 @@ let DocQuickInsertTriggerController = class DocQuickInsertTriggerController exte
794
793
  if (commandInfo.id === _univerjs_docs.DeleteTextCommand.id) {
795
794
  const params = commandInfo.params;
796
795
  if (_docQuickInsertPopupService.editPopup && params.direction === _univerjs_core.DeleteDirection.LEFT) {
797
- var _params$len;
798
- const len = (_params$len = params.len) !== null && _params$len !== void 0 ? _params$len : 0;
796
+ const len = params.len ?? 0;
799
797
  _docQuickInsertPopupService.setInputOffset({
800
798
  start: _docQuickInsertPopupService.inputOffset.start,
801
799
  end: params.range.endOffset - len
@@ -867,7 +865,7 @@ DocQuickInsertUIController = __decorate([__decorateParam(0, _univerjs_core.IComm
867
865
  //#endregion
868
866
  //#region package.json
869
867
  var name = "@univerjs/docs-quick-insert-ui";
870
- var version = "1.0.0-alpha.8";
868
+ var version = "1.0.0-beta.0";
871
869
 
872
870
  //#endregion
873
871
  //#region src/config/config.ts
@@ -893,7 +891,7 @@ let DocQuickInsertMenuController = class DocQuickInsertMenuController extends _u
893
891
  }
894
892
  _init() {
895
893
  this.disposeWithMe((0, rxjs.combineLatest)([this._docEventManagerService.hoverParagraphLeftRealTime$, this._docEventManagerService.hoverParagraphRealTime$]).subscribe(([left, paragraph]) => {
896
- const p = left !== null && left !== void 0 ? left : paragraph;
894
+ const p = left ?? paragraph;
897
895
  const isDisabled = this._context.unit.getDisabled();
898
896
  if (!p || isDisabled) {
899
897
  this._hideMenu(true);
@@ -942,7 +940,6 @@ const QuickInsertButton = ({ className = "" }) => {
942
940
  const docSelectionManagerService = (0, _univerjs_ui.useDependency)(_univerjs_docs.DocSelectionManagerService);
943
941
  const editPopup = (0, _univerjs_ui.useObservable)(docQuickInsertPopupService.editPopup$);
944
942
  const onClick = (0, _univerjs_ui.useEvent)(() => {
945
- var _currentDoc$getUnitId;
946
943
  const p = docQuickInsertMenuController === null || docQuickInsertMenuController === void 0 ? void 0 : docQuickInsertMenuController.popup;
947
944
  if (!p) return;
948
945
  const allPopups = docQuickInsertPopupService.popups;
@@ -961,7 +958,7 @@ const QuickInsertButton = ({ className = "" }) => {
961
958
  docQuickInsertPopupService.showPopup({
962
959
  popup,
963
960
  index: p.startIndex - 1,
964
- unitId: (_currentDoc$getUnitId = currentDoc === null || currentDoc === void 0 ? void 0 : currentDoc.getUnitId()) !== null && _currentDoc$getUnitId !== void 0 ? _currentDoc$getUnitId : ""
961
+ unitId: (currentDoc === null || currentDoc === void 0 ? void 0 : currentDoc.getUnitId()) ?? ""
965
962
  });
966
963
  setTimeout(() => {
967
964
  layoutService.focus();
@@ -1060,7 +1057,7 @@ _defineProperty(UniverDocsQuickInsertUIPlugin, "pluginName", "DOC_QUICK_INSERT_U
1060
1057
  _defineProperty(UniverDocsQuickInsertUIPlugin, "packageName", name);
1061
1058
  _defineProperty(UniverDocsQuickInsertUIPlugin, "version", version);
1062
1059
  UniverDocsQuickInsertUIPlugin = __decorate([
1063
- (0, _univerjs_core.DependentOn)(_univerjs_docs.UniverDocsPlugin, _univerjs_drawing.UniverDrawingPlugin, _univerjs_engine_render.UniverRenderEnginePlugin, _univerjs_docs_drawing.UniverDocsDrawingPlugin, _univerjs_ui.UniverUIPlugin, _univerjs_docs_ui.UniverDocsUIPlugin, _univerjs_drawing_ui.UniverDrawingUIPlugin, _univerjs_docs_drawing_ui.UniverDocsDrawingUIPlugin),
1060
+ (0, _univerjs_core.DependentOn)(_univerjs_docs.UniverDocsPlugin, _univerjs_drawing.UniverDrawingPlugin, _univerjs_engine_render.UniverRenderEnginePlugin, _univerjs_docs_drawing.UniverDocsDrawingPlugin, _univerjs_docs_ui.UniverDocsUIPlugin, _univerjs_drawing_ui.UniverDrawingUIPlugin, _univerjs_docs_drawing_ui.UniverDocsDrawingUIPlugin),
1064
1061
  __decorateParam(1, (0, _univerjs_core.Inject)(_univerjs_core.Injector)),
1065
1062
  __decorateParam(2, (0, _univerjs_core.Inject)(_univerjs_engine_render.IRenderManagerService)),
1066
1063
  __decorateParam(3, _univerjs_core.IConfigService)
@@ -5,7 +5,7 @@ const locale = { "docs-quick-insert-ui": {
5
5
  numberedList: "有序列表",
6
6
  bulletedList: "無序列表",
7
7
  divider: "分隔線",
8
- text: "文本",
8
+ text: "文字",
9
9
  table: "表格",
10
10
  image: "圖片"
11
11
  },
@@ -5,7 +5,7 @@ const locale = { "docs-quick-insert-ui": {
5
5
  numberedList: "有序列表",
6
6
  bulletedList: "無序列表",
7
7
  divider: "分隔線",
8
- text: "文本",
8
+ text: "文字",
9
9
  table: "表格",
10
10
  image: "圖片"
11
11
  },
package/lib/es/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { CommandType, DeleteDirection, DependentOn, Direction, Disposable, DisposableCollection, ICommandService, IConfigService, IUniverInstanceService, Inject, Injector, LocaleService, Plugin, RANGE_DIRECTION, UniverInstanceType, generateRandomId, merge, toDisposable } from "@univerjs/core";
2
2
  import { DeleteTextCommand, DocSelectionManagerService, DocSkeletonManagerService, InsertTextCommand, RichTextEditingMutation, UniverDocsPlugin } from "@univerjs/docs";
3
3
  import { BulletListCommand, CutContentCommand, DeleteLeftCommand, DocCanvasPopManagerService, DocCreateTableOperation, DocEventManagerService, HorizontalLineCommand, IMEInputCommand, MoveCursorOperation, NodePositionConvertToCursor, OrderListCommand, UniverDocsUIPlugin, getAnchorBounding } from "@univerjs/docs-ui";
4
- import { ComponentManager, ILayoutService, IShortcutService, IconManager, KeyCode, UniverUIPlugin, useDependency, useEvent, useObservable } from "@univerjs/ui";
4
+ import { ComponentManager, ILayoutService, IShortcutService, IconManager, KeyCode, useDependency, useEvent, useObservable } from "@univerjs/ui";
5
5
  import { IRenderManagerService, UniverRenderEnginePlugin, ptToPixel } from "@univerjs/engine-render";
6
6
  import { BehaviorSubject, combineLatest, distinctUntilChanged, map, of, tap } from "rxjs";
7
7
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
@@ -49,12 +49,12 @@ function measureTextWidth(text, font) {
49
49
  return Math.ceil(context.measureText(text).width);
50
50
  }
51
51
  const KeywordInputPlaceholder = ({ popup }) => {
52
- var _popup$extraProps$fon, _popup$extraProps, _popup$extraProps$fon2, _popup$extraProps2, _popup$extraProps$asc, _popup$extraProps3, _popup$extraProps$con, _popup$extraProps4, _popup$extraProps5, _popup$extraProps6, _popup$extraProps7;
52
+ var _popup$extraProps, _popup$extraProps2, _popup$extraProps3, _popup$extraProps4, _popup$extraProps5, _popup$extraProps6, _popup$extraProps7;
53
53
  const placeholder = useDependency(LocaleService).t("docs-quick-insert-ui.keywordInputPlaceholder");
54
- const fontSizePx = ptToPixel((_popup$extraProps$fon = (_popup$extraProps = popup.extraProps) === null || _popup$extraProps === void 0 ? void 0 : _popup$extraProps.fontSize) !== null && _popup$extraProps$fon !== void 0 ? _popup$extraProps$fon : DEFAULT_FONT_SIZE);
55
- const fontString = (_popup$extraProps$fon2 = (_popup$extraProps2 = popup.extraProps) === null || _popup$extraProps2 === void 0 ? void 0 : _popup$extraProps2.fontString) !== null && _popup$extraProps$fon2 !== void 0 ? _popup$extraProps$fon2 : `${fontSizePx}px sans-serif`;
56
- const ascent = (_popup$extraProps$asc = (_popup$extraProps3 = popup.extraProps) === null || _popup$extraProps3 === void 0 ? void 0 : _popup$extraProps3.ascent) !== null && _popup$extraProps$asc !== void 0 ? _popup$extraProps$asc : fontSizePx;
57
- const contentHeight = Math.max((_popup$extraProps$con = (_popup$extraProps4 = popup.extraProps) === null || _popup$extraProps4 === void 0 ? void 0 : _popup$extraProps4.contentHeight) !== null && _popup$extraProps$con !== void 0 ? _popup$extraProps$con : fontSizePx, fontSizePx);
54
+ const fontSizePx = ptToPixel(((_popup$extraProps = popup.extraProps) === null || _popup$extraProps === void 0 ? void 0 : _popup$extraProps.fontSize) ?? DEFAULT_FONT_SIZE);
55
+ const fontString = ((_popup$extraProps2 = popup.extraProps) === null || _popup$extraProps2 === void 0 ? void 0 : _popup$extraProps2.fontString) ?? `${fontSizePx}px sans-serif`;
56
+ const ascent = ((_popup$extraProps3 = popup.extraProps) === null || _popup$extraProps3 === void 0 ? void 0 : _popup$extraProps3.ascent) ?? fontSizePx;
57
+ const contentHeight = Math.max(((_popup$extraProps4 = popup.extraProps) === null || _popup$extraProps4 === void 0 ? void 0 : _popup$extraProps4.contentHeight) ?? fontSizePx, fontSizePx);
58
58
  const textWidth = useMemo(() => measureTextWidth(placeholder, fontString), [fontString, placeholder]);
59
59
  return /* @__PURE__ */ jsx("div", {
60
60
  className: "univer-select-none univer-font-normal univer-text-gray-500 univer-transition-colors dark:!univer-text-gray-400",
@@ -103,8 +103,8 @@ function QuickInsertMenu(props) {
103
103
  const flatMenus = useMemo(() => flattenMenuItems(menus), [menus]);
104
104
  const menuNodeMapRef = useRef(/* @__PURE__ */ new Map());
105
105
  useEffect(() => {
106
- var _flatMenus$focusedMen, _menuNodeMapRef$curre;
107
- const focusedMenu = Number.isNaN(focusedMenuIndex) ? null : (_flatMenus$focusedMen = flatMenus[focusedMenuIndex]) !== null && _flatMenus$focusedMen !== void 0 ? _flatMenus$focusedMen : null;
106
+ var _menuNodeMapRef$curre;
107
+ const focusedMenu = Number.isNaN(focusedMenuIndex) ? null : flatMenus[focusedMenuIndex] ?? null;
108
108
  onFocusedMenuChange(focusedMenu);
109
109
  if (!focusedMenu) return;
110
110
  (_menuNodeMapRef$curre = menuNodeMapRef.current.get(focusedMenu.id)) === null || _menuNodeMapRef$curre === void 0 || _menuNodeMapRef$curre.scrollIntoView({ block: "nearest" });
@@ -459,9 +459,8 @@ let DocQuickInsertPopupService = class DocQuickInsertPopupService extends Dispos
459
459
  };
460
460
  let lastFilterKeyword = "";
461
461
  this.filterKeyword$ = this._inputOffset$.pipe(map((offset) => {
462
- var _slice$slice;
463
462
  const slice = getBodySlice(offset.start, offset.end);
464
- return (_slice$slice = slice === null || slice === void 0 ? void 0 : slice.slice(1)) !== null && _slice$slice !== void 0 ? _slice$slice : "";
463
+ return (slice === null || slice === void 0 ? void 0 : slice.slice(1)) ?? "";
465
464
  }), distinctUntilChanged(), tap((filterKeyword) => {
466
465
  lastFilterKeyword = filterKeyword;
467
466
  }));
@@ -517,12 +516,12 @@ let DocQuickInsertPopupService = class DocQuickInsertPopupService extends Dispos
517
516
  };
518
517
  }
519
518
  _getParagraphBound(unitId, index) {
520
- var _currentDoc$getBody, _docEventManagerServi;
519
+ var _currentDoc$getBody;
521
520
  const currentDoc = this._univerInstanceService.getUnit(unitId);
522
521
  const paragraph = currentDoc === null || currentDoc === void 0 || (_currentDoc$getBody = currentDoc.getBody()) === null || _currentDoc$getBody === void 0 || (_currentDoc$getBody = _currentDoc$getBody.paragraphs) === null || _currentDoc$getBody === void 0 ? void 0 : _currentDoc$getBody.find((p) => p.startIndex > index);
523
522
  if (!paragraph) return null;
524
523
  const docEventManagerService = this.getDocEventManagerService(unitId);
525
- return (_docEventManagerServi = docEventManagerService === null || docEventManagerService === void 0 ? void 0 : docEventManagerService.findParagraphBoundByIndex(paragraph.startIndex)) !== null && _docEventManagerServi !== void 0 ? _docEventManagerServi : null;
524
+ return (docEventManagerService === null || docEventManagerService === void 0 ? void 0 : docEventManagerService.findParagraphBoundByIndex(paragraph.startIndex)) ?? null;
526
525
  }
527
526
  _getKeywordPlaceholderAnchorRect(document, skeleton, activeRange, fallbackRect) {
528
527
  const startPosition = skeleton.findNodePositionByCharIndex(activeRange.startOffset, true, activeRange.segmentId, activeRange.segmentPage);
@@ -541,15 +540,15 @@ let DocQuickInsertPopupService = class DocQuickInsertPopupService extends Dispos
541
540
  };
542
541
  }
543
542
  _getKeywordPlaceholderExtraProps(curGlyph) {
544
- var _curGlyph$ts, _curGlyph$fontStyle, _ref, _curGlyph$fontStyle$f, _curGlyph$fontStyle2, _curGlyph$ts2, _curGlyph$ts3, _curGlyph$ts4, _curGlyph$bBox, _curGlyph$bBox$ba, _curGlyph$bBox2, _curGlyph$bBox$bd, _curGlyph$bBox3;
543
+ var _curGlyph$ts, _curGlyph$fontStyle, _curGlyph$fontStyle2, _curGlyph$ts2, _curGlyph$ts3, _curGlyph$ts4, _curGlyph$bBox, _curGlyph$bBox2, _curGlyph$bBox3;
545
544
  return {
546
545
  fontSize: (_curGlyph$ts = curGlyph.ts) === null || _curGlyph$ts === void 0 ? void 0 : _curGlyph$ts.fs,
547
546
  fontString: (_curGlyph$fontStyle = curGlyph.fontStyle) === null || _curGlyph$fontStyle === void 0 ? void 0 : _curGlyph$fontStyle.fontString,
548
- fontFamily: (_ref = (_curGlyph$fontStyle$f = (_curGlyph$fontStyle2 = curGlyph.fontStyle) === null || _curGlyph$fontStyle2 === void 0 ? void 0 : _curGlyph$fontStyle2.fontFamily) !== null && _curGlyph$fontStyle$f !== void 0 ? _curGlyph$fontStyle$f : (_curGlyph$ts2 = curGlyph.ts) === null || _curGlyph$ts2 === void 0 ? void 0 : _curGlyph$ts2.ff) !== null && _ref !== void 0 ? _ref : void 0,
547
+ fontFamily: ((_curGlyph$fontStyle2 = curGlyph.fontStyle) === null || _curGlyph$fontStyle2 === void 0 ? void 0 : _curGlyph$fontStyle2.fontFamily) ?? ((_curGlyph$ts2 = curGlyph.ts) === null || _curGlyph$ts2 === void 0 ? void 0 : _curGlyph$ts2.ff) ?? void 0,
549
548
  fontStyle: ((_curGlyph$ts3 = curGlyph.ts) === null || _curGlyph$ts3 === void 0 ? void 0 : _curGlyph$ts3.it) ? "italic" : "normal",
550
549
  fontWeight: ((_curGlyph$ts4 = curGlyph.ts) === null || _curGlyph$ts4 === void 0 ? void 0 : _curGlyph$ts4.bl) ? "bold" : "normal",
551
550
  ascent: (_curGlyph$bBox = curGlyph.bBox) === null || _curGlyph$bBox === void 0 ? void 0 : _curGlyph$bBox.ba,
552
- contentHeight: ((_curGlyph$bBox$ba = (_curGlyph$bBox2 = curGlyph.bBox) === null || _curGlyph$bBox2 === void 0 ? void 0 : _curGlyph$bBox2.ba) !== null && _curGlyph$bBox$ba !== void 0 ? _curGlyph$bBox$ba : 0) + ((_curGlyph$bBox$bd = (_curGlyph$bBox3 = curGlyph.bBox) === null || _curGlyph$bBox3 === void 0 ? void 0 : _curGlyph$bBox3.bd) !== null && _curGlyph$bBox$bd !== void 0 ? _curGlyph$bBox$bd : 0) || void 0
551
+ contentHeight: (((_curGlyph$bBox2 = curGlyph.bBox) === null || _curGlyph$bBox2 === void 0 ? void 0 : _curGlyph$bBox2.ba) ?? 0) + (((_curGlyph$bBox3 = curGlyph.bBox) === null || _curGlyph$bBox3 === void 0 ? void 0 : _curGlyph$bBox3.bd) ?? 0) || void 0
553
552
  };
554
553
  }
555
554
  _mountInputPlaceholder(unitId, fallbackRect) {
@@ -793,8 +792,7 @@ let DocQuickInsertTriggerController = class DocQuickInsertTriggerController exte
793
792
  if (commandInfo.id === DeleteTextCommand.id) {
794
793
  const params = commandInfo.params;
795
794
  if (_docQuickInsertPopupService.editPopup && params.direction === DeleteDirection.LEFT) {
796
- var _params$len;
797
- const len = (_params$len = params.len) !== null && _params$len !== void 0 ? _params$len : 0;
795
+ const len = params.len ?? 0;
798
796
  _docQuickInsertPopupService.setInputOffset({
799
797
  start: _docQuickInsertPopupService.inputOffset.start,
800
798
  end: params.range.endOffset - len
@@ -866,7 +864,7 @@ DocQuickInsertUIController = __decorate([__decorateParam(0, ICommandService), __
866
864
  //#endregion
867
865
  //#region package.json
868
866
  var name = "@univerjs/docs-quick-insert-ui";
869
- var version = "1.0.0-alpha.8";
867
+ var version = "1.0.0-beta.0";
870
868
 
871
869
  //#endregion
872
870
  //#region src/config/config.ts
@@ -892,7 +890,7 @@ let DocQuickInsertMenuController = class DocQuickInsertMenuController extends Di
892
890
  }
893
891
  _init() {
894
892
  this.disposeWithMe(combineLatest([this._docEventManagerService.hoverParagraphLeftRealTime$, this._docEventManagerService.hoverParagraphRealTime$]).subscribe(([left, paragraph]) => {
895
- const p = left !== null && left !== void 0 ? left : paragraph;
893
+ const p = left ?? paragraph;
896
894
  const isDisabled = this._context.unit.getDisabled();
897
895
  if (!p || isDisabled) {
898
896
  this._hideMenu(true);
@@ -941,7 +939,6 @@ const QuickInsertButton = ({ className = "" }) => {
941
939
  const docSelectionManagerService = useDependency(DocSelectionManagerService);
942
940
  const editPopup = useObservable(docQuickInsertPopupService.editPopup$);
943
941
  const onClick = useEvent(() => {
944
- var _currentDoc$getUnitId;
945
942
  const p = docQuickInsertMenuController === null || docQuickInsertMenuController === void 0 ? void 0 : docQuickInsertMenuController.popup;
946
943
  if (!p) return;
947
944
  const allPopups = docQuickInsertPopupService.popups;
@@ -960,7 +957,7 @@ const QuickInsertButton = ({ className = "" }) => {
960
957
  docQuickInsertPopupService.showPopup({
961
958
  popup,
962
959
  index: p.startIndex - 1,
963
- unitId: (_currentDoc$getUnitId = currentDoc === null || currentDoc === void 0 ? void 0 : currentDoc.getUnitId()) !== null && _currentDoc$getUnitId !== void 0 ? _currentDoc$getUnitId : ""
960
+ unitId: (currentDoc === null || currentDoc === void 0 ? void 0 : currentDoc.getUnitId()) ?? ""
964
961
  });
965
962
  setTimeout(() => {
966
963
  layoutService.focus();
@@ -1059,7 +1056,7 @@ _defineProperty(UniverDocsQuickInsertUIPlugin, "pluginName", "DOC_QUICK_INSERT_U
1059
1056
  _defineProperty(UniverDocsQuickInsertUIPlugin, "packageName", name);
1060
1057
  _defineProperty(UniverDocsQuickInsertUIPlugin, "version", version);
1061
1058
  UniverDocsQuickInsertUIPlugin = __decorate([
1062
- DependentOn(UniverDocsPlugin, UniverDrawingPlugin, UniverRenderEnginePlugin, UniverDocsDrawingPlugin, UniverUIPlugin, UniverDocsUIPlugin, UniverDrawingUIPlugin, UniverDocsDrawingUIPlugin),
1059
+ DependentOn(UniverDocsPlugin, UniverDrawingPlugin, UniverRenderEnginePlugin, UniverDocsDrawingPlugin, UniverDocsUIPlugin, UniverDrawingUIPlugin, UniverDocsDrawingUIPlugin),
1063
1060
  __decorateParam(1, Inject(Injector)),
1064
1061
  __decorateParam(2, Inject(IRenderManagerService)),
1065
1062
  __decorateParam(3, IConfigService)
@@ -4,7 +4,7 @@ const locale = { "docs-quick-insert-ui": {
4
4
  numberedList: "有序列表",
5
5
  bulletedList: "無序列表",
6
6
  divider: "分隔線",
7
- text: "文本",
7
+ text: "文字",
8
8
  table: "表格",
9
9
  image: "圖片"
10
10
  },
@@ -4,7 +4,7 @@ const locale = { "docs-quick-insert-ui": {
4
4
  numberedList: "有序列表",
5
5
  bulletedList: "無序列表",
6
6
  divider: "分隔線",
7
- text: "文本",
7
+ text: "文字",
8
8
  table: "表格",
9
9
  image: "圖片"
10
10
  },
package/lib/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { CommandType, DeleteDirection, DependentOn, Direction, Disposable, DisposableCollection, ICommandService, IConfigService, IUniverInstanceService, Inject, Injector, LocaleService, Plugin, RANGE_DIRECTION, UniverInstanceType, generateRandomId, merge, toDisposable } from "@univerjs/core";
2
2
  import { DeleteTextCommand, DocSelectionManagerService, DocSkeletonManagerService, InsertTextCommand, RichTextEditingMutation, UniverDocsPlugin } from "@univerjs/docs";
3
3
  import { BulletListCommand, CutContentCommand, DeleteLeftCommand, DocCanvasPopManagerService, DocCreateTableOperation, DocEventManagerService, HorizontalLineCommand, IMEInputCommand, MoveCursorOperation, NodePositionConvertToCursor, OrderListCommand, UniverDocsUIPlugin, getAnchorBounding } from "@univerjs/docs-ui";
4
- import { ComponentManager, ILayoutService, IShortcutService, IconManager, KeyCode, UniverUIPlugin, useDependency, useEvent, useObservable } from "@univerjs/ui";
4
+ import { ComponentManager, ILayoutService, IShortcutService, IconManager, KeyCode, useDependency, useEvent, useObservable } from "@univerjs/ui";
5
5
  import { IRenderManagerService, UniverRenderEnginePlugin, ptToPixel } from "@univerjs/engine-render";
6
6
  import { BehaviorSubject, combineLatest, distinctUntilChanged, map, of, tap } from "rxjs";
7
7
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
@@ -49,12 +49,12 @@ function measureTextWidth(text, font) {
49
49
  return Math.ceil(context.measureText(text).width);
50
50
  }
51
51
  const KeywordInputPlaceholder = ({ popup }) => {
52
- var _popup$extraProps$fon, _popup$extraProps, _popup$extraProps$fon2, _popup$extraProps2, _popup$extraProps$asc, _popup$extraProps3, _popup$extraProps$con, _popup$extraProps4, _popup$extraProps5, _popup$extraProps6, _popup$extraProps7;
52
+ var _popup$extraProps, _popup$extraProps2, _popup$extraProps3, _popup$extraProps4, _popup$extraProps5, _popup$extraProps6, _popup$extraProps7;
53
53
  const placeholder = useDependency(LocaleService).t("docs-quick-insert-ui.keywordInputPlaceholder");
54
- const fontSizePx = ptToPixel((_popup$extraProps$fon = (_popup$extraProps = popup.extraProps) === null || _popup$extraProps === void 0 ? void 0 : _popup$extraProps.fontSize) !== null && _popup$extraProps$fon !== void 0 ? _popup$extraProps$fon : DEFAULT_FONT_SIZE);
55
- const fontString = (_popup$extraProps$fon2 = (_popup$extraProps2 = popup.extraProps) === null || _popup$extraProps2 === void 0 ? void 0 : _popup$extraProps2.fontString) !== null && _popup$extraProps$fon2 !== void 0 ? _popup$extraProps$fon2 : `${fontSizePx}px sans-serif`;
56
- const ascent = (_popup$extraProps$asc = (_popup$extraProps3 = popup.extraProps) === null || _popup$extraProps3 === void 0 ? void 0 : _popup$extraProps3.ascent) !== null && _popup$extraProps$asc !== void 0 ? _popup$extraProps$asc : fontSizePx;
57
- const contentHeight = Math.max((_popup$extraProps$con = (_popup$extraProps4 = popup.extraProps) === null || _popup$extraProps4 === void 0 ? void 0 : _popup$extraProps4.contentHeight) !== null && _popup$extraProps$con !== void 0 ? _popup$extraProps$con : fontSizePx, fontSizePx);
54
+ const fontSizePx = ptToPixel(((_popup$extraProps = popup.extraProps) === null || _popup$extraProps === void 0 ? void 0 : _popup$extraProps.fontSize) ?? DEFAULT_FONT_SIZE);
55
+ const fontString = ((_popup$extraProps2 = popup.extraProps) === null || _popup$extraProps2 === void 0 ? void 0 : _popup$extraProps2.fontString) ?? `${fontSizePx}px sans-serif`;
56
+ const ascent = ((_popup$extraProps3 = popup.extraProps) === null || _popup$extraProps3 === void 0 ? void 0 : _popup$extraProps3.ascent) ?? fontSizePx;
57
+ const contentHeight = Math.max(((_popup$extraProps4 = popup.extraProps) === null || _popup$extraProps4 === void 0 ? void 0 : _popup$extraProps4.contentHeight) ?? fontSizePx, fontSizePx);
58
58
  const textWidth = useMemo(() => measureTextWidth(placeholder, fontString), [fontString, placeholder]);
59
59
  return /* @__PURE__ */ jsx("div", {
60
60
  className: "univer-select-none univer-font-normal univer-text-gray-500 univer-transition-colors dark:!univer-text-gray-400",
@@ -103,8 +103,8 @@ function QuickInsertMenu(props) {
103
103
  const flatMenus = useMemo(() => flattenMenuItems(menus), [menus]);
104
104
  const menuNodeMapRef = useRef(/* @__PURE__ */ new Map());
105
105
  useEffect(() => {
106
- var _flatMenus$focusedMen, _menuNodeMapRef$curre;
107
- const focusedMenu = Number.isNaN(focusedMenuIndex) ? null : (_flatMenus$focusedMen = flatMenus[focusedMenuIndex]) !== null && _flatMenus$focusedMen !== void 0 ? _flatMenus$focusedMen : null;
106
+ var _menuNodeMapRef$curre;
107
+ const focusedMenu = Number.isNaN(focusedMenuIndex) ? null : flatMenus[focusedMenuIndex] ?? null;
108
108
  onFocusedMenuChange(focusedMenu);
109
109
  if (!focusedMenu) return;
110
110
  (_menuNodeMapRef$curre = menuNodeMapRef.current.get(focusedMenu.id)) === null || _menuNodeMapRef$curre === void 0 || _menuNodeMapRef$curre.scrollIntoView({ block: "nearest" });
@@ -459,9 +459,8 @@ let DocQuickInsertPopupService = class DocQuickInsertPopupService extends Dispos
459
459
  };
460
460
  let lastFilterKeyword = "";
461
461
  this.filterKeyword$ = this._inputOffset$.pipe(map((offset) => {
462
- var _slice$slice;
463
462
  const slice = getBodySlice(offset.start, offset.end);
464
- return (_slice$slice = slice === null || slice === void 0 ? void 0 : slice.slice(1)) !== null && _slice$slice !== void 0 ? _slice$slice : "";
463
+ return (slice === null || slice === void 0 ? void 0 : slice.slice(1)) ?? "";
465
464
  }), distinctUntilChanged(), tap((filterKeyword) => {
466
465
  lastFilterKeyword = filterKeyword;
467
466
  }));
@@ -517,12 +516,12 @@ let DocQuickInsertPopupService = class DocQuickInsertPopupService extends Dispos
517
516
  };
518
517
  }
519
518
  _getParagraphBound(unitId, index) {
520
- var _currentDoc$getBody, _docEventManagerServi;
519
+ var _currentDoc$getBody;
521
520
  const currentDoc = this._univerInstanceService.getUnit(unitId);
522
521
  const paragraph = currentDoc === null || currentDoc === void 0 || (_currentDoc$getBody = currentDoc.getBody()) === null || _currentDoc$getBody === void 0 || (_currentDoc$getBody = _currentDoc$getBody.paragraphs) === null || _currentDoc$getBody === void 0 ? void 0 : _currentDoc$getBody.find((p) => p.startIndex > index);
523
522
  if (!paragraph) return null;
524
523
  const docEventManagerService = this.getDocEventManagerService(unitId);
525
- return (_docEventManagerServi = docEventManagerService === null || docEventManagerService === void 0 ? void 0 : docEventManagerService.findParagraphBoundByIndex(paragraph.startIndex)) !== null && _docEventManagerServi !== void 0 ? _docEventManagerServi : null;
524
+ return (docEventManagerService === null || docEventManagerService === void 0 ? void 0 : docEventManagerService.findParagraphBoundByIndex(paragraph.startIndex)) ?? null;
526
525
  }
527
526
  _getKeywordPlaceholderAnchorRect(document, skeleton, activeRange, fallbackRect) {
528
527
  const startPosition = skeleton.findNodePositionByCharIndex(activeRange.startOffset, true, activeRange.segmentId, activeRange.segmentPage);
@@ -541,15 +540,15 @@ let DocQuickInsertPopupService = class DocQuickInsertPopupService extends Dispos
541
540
  };
542
541
  }
543
542
  _getKeywordPlaceholderExtraProps(curGlyph) {
544
- var _curGlyph$ts, _curGlyph$fontStyle, _ref, _curGlyph$fontStyle$f, _curGlyph$fontStyle2, _curGlyph$ts2, _curGlyph$ts3, _curGlyph$ts4, _curGlyph$bBox, _curGlyph$bBox$ba, _curGlyph$bBox2, _curGlyph$bBox$bd, _curGlyph$bBox3;
543
+ var _curGlyph$ts, _curGlyph$fontStyle, _curGlyph$fontStyle2, _curGlyph$ts2, _curGlyph$ts3, _curGlyph$ts4, _curGlyph$bBox, _curGlyph$bBox2, _curGlyph$bBox3;
545
544
  return {
546
545
  fontSize: (_curGlyph$ts = curGlyph.ts) === null || _curGlyph$ts === void 0 ? void 0 : _curGlyph$ts.fs,
547
546
  fontString: (_curGlyph$fontStyle = curGlyph.fontStyle) === null || _curGlyph$fontStyle === void 0 ? void 0 : _curGlyph$fontStyle.fontString,
548
- fontFamily: (_ref = (_curGlyph$fontStyle$f = (_curGlyph$fontStyle2 = curGlyph.fontStyle) === null || _curGlyph$fontStyle2 === void 0 ? void 0 : _curGlyph$fontStyle2.fontFamily) !== null && _curGlyph$fontStyle$f !== void 0 ? _curGlyph$fontStyle$f : (_curGlyph$ts2 = curGlyph.ts) === null || _curGlyph$ts2 === void 0 ? void 0 : _curGlyph$ts2.ff) !== null && _ref !== void 0 ? _ref : void 0,
547
+ fontFamily: ((_curGlyph$fontStyle2 = curGlyph.fontStyle) === null || _curGlyph$fontStyle2 === void 0 ? void 0 : _curGlyph$fontStyle2.fontFamily) ?? ((_curGlyph$ts2 = curGlyph.ts) === null || _curGlyph$ts2 === void 0 ? void 0 : _curGlyph$ts2.ff) ?? void 0,
549
548
  fontStyle: ((_curGlyph$ts3 = curGlyph.ts) === null || _curGlyph$ts3 === void 0 ? void 0 : _curGlyph$ts3.it) ? "italic" : "normal",
550
549
  fontWeight: ((_curGlyph$ts4 = curGlyph.ts) === null || _curGlyph$ts4 === void 0 ? void 0 : _curGlyph$ts4.bl) ? "bold" : "normal",
551
550
  ascent: (_curGlyph$bBox = curGlyph.bBox) === null || _curGlyph$bBox === void 0 ? void 0 : _curGlyph$bBox.ba,
552
- contentHeight: ((_curGlyph$bBox$ba = (_curGlyph$bBox2 = curGlyph.bBox) === null || _curGlyph$bBox2 === void 0 ? void 0 : _curGlyph$bBox2.ba) !== null && _curGlyph$bBox$ba !== void 0 ? _curGlyph$bBox$ba : 0) + ((_curGlyph$bBox$bd = (_curGlyph$bBox3 = curGlyph.bBox) === null || _curGlyph$bBox3 === void 0 ? void 0 : _curGlyph$bBox3.bd) !== null && _curGlyph$bBox$bd !== void 0 ? _curGlyph$bBox$bd : 0) || void 0
551
+ contentHeight: (((_curGlyph$bBox2 = curGlyph.bBox) === null || _curGlyph$bBox2 === void 0 ? void 0 : _curGlyph$bBox2.ba) ?? 0) + (((_curGlyph$bBox3 = curGlyph.bBox) === null || _curGlyph$bBox3 === void 0 ? void 0 : _curGlyph$bBox3.bd) ?? 0) || void 0
553
552
  };
554
553
  }
555
554
  _mountInputPlaceholder(unitId, fallbackRect) {
@@ -793,8 +792,7 @@ let DocQuickInsertTriggerController = class DocQuickInsertTriggerController exte
793
792
  if (commandInfo.id === DeleteTextCommand.id) {
794
793
  const params = commandInfo.params;
795
794
  if (_docQuickInsertPopupService.editPopup && params.direction === DeleteDirection.LEFT) {
796
- var _params$len;
797
- const len = (_params$len = params.len) !== null && _params$len !== void 0 ? _params$len : 0;
795
+ const len = params.len ?? 0;
798
796
  _docQuickInsertPopupService.setInputOffset({
799
797
  start: _docQuickInsertPopupService.inputOffset.start,
800
798
  end: params.range.endOffset - len
@@ -866,7 +864,7 @@ DocQuickInsertUIController = __decorate([__decorateParam(0, ICommandService), __
866
864
  //#endregion
867
865
  //#region package.json
868
866
  var name = "@univerjs/docs-quick-insert-ui";
869
- var version = "1.0.0-alpha.8";
867
+ var version = "1.0.0-beta.0";
870
868
 
871
869
  //#endregion
872
870
  //#region src/config/config.ts
@@ -892,7 +890,7 @@ let DocQuickInsertMenuController = class DocQuickInsertMenuController extends Di
892
890
  }
893
891
  _init() {
894
892
  this.disposeWithMe(combineLatest([this._docEventManagerService.hoverParagraphLeftRealTime$, this._docEventManagerService.hoverParagraphRealTime$]).subscribe(([left, paragraph]) => {
895
- const p = left !== null && left !== void 0 ? left : paragraph;
893
+ const p = left ?? paragraph;
896
894
  const isDisabled = this._context.unit.getDisabled();
897
895
  if (!p || isDisabled) {
898
896
  this._hideMenu(true);
@@ -941,7 +939,6 @@ const QuickInsertButton = ({ className = "" }) => {
941
939
  const docSelectionManagerService = useDependency(DocSelectionManagerService);
942
940
  const editPopup = useObservable(docQuickInsertPopupService.editPopup$);
943
941
  const onClick = useEvent(() => {
944
- var _currentDoc$getUnitId;
945
942
  const p = docQuickInsertMenuController === null || docQuickInsertMenuController === void 0 ? void 0 : docQuickInsertMenuController.popup;
946
943
  if (!p) return;
947
944
  const allPopups = docQuickInsertPopupService.popups;
@@ -960,7 +957,7 @@ const QuickInsertButton = ({ className = "" }) => {
960
957
  docQuickInsertPopupService.showPopup({
961
958
  popup,
962
959
  index: p.startIndex - 1,
963
- unitId: (_currentDoc$getUnitId = currentDoc === null || currentDoc === void 0 ? void 0 : currentDoc.getUnitId()) !== null && _currentDoc$getUnitId !== void 0 ? _currentDoc$getUnitId : ""
960
+ unitId: (currentDoc === null || currentDoc === void 0 ? void 0 : currentDoc.getUnitId()) ?? ""
964
961
  });
965
962
  setTimeout(() => {
966
963
  layoutService.focus();
@@ -1059,7 +1056,7 @@ _defineProperty(UniverDocsQuickInsertUIPlugin, "pluginName", "DOC_QUICK_INSERT_U
1059
1056
  _defineProperty(UniverDocsQuickInsertUIPlugin, "packageName", name);
1060
1057
  _defineProperty(UniverDocsQuickInsertUIPlugin, "version", version);
1061
1058
  UniverDocsQuickInsertUIPlugin = __decorate([
1062
- DependentOn(UniverDocsPlugin, UniverDrawingPlugin, UniverRenderEnginePlugin, UniverDocsDrawingPlugin, UniverUIPlugin, UniverDocsUIPlugin, UniverDrawingUIPlugin, UniverDocsDrawingUIPlugin),
1059
+ DependentOn(UniverDocsPlugin, UniverDrawingPlugin, UniverRenderEnginePlugin, UniverDocsDrawingPlugin, UniverDocsUIPlugin, UniverDrawingUIPlugin, UniverDocsDrawingUIPlugin),
1063
1060
  __decorateParam(1, Inject(Injector)),
1064
1061
  __decorateParam(2, Inject(IRenderManagerService)),
1065
1062
  __decorateParam(3, IConfigService)
@@ -4,7 +4,7 @@ const locale = { "docs-quick-insert-ui": {
4
4
  numberedList: "有序列表",
5
5
  bulletedList: "無序列表",
6
6
  divider: "分隔線",
7
- text: "文本",
7
+ text: "文字",
8
8
  table: "表格",
9
9
  image: "圖片"
10
10
  },
@@ -4,7 +4,7 @@ const locale = { "docs-quick-insert-ui": {
4
4
  numberedList: "有序列表",
5
5
  bulletedList: "無序列表",
6
6
  divider: "分隔線",
7
- text: "文本",
7
+ text: "文字",
8
8
  table: "表格",
9
9
  image: "圖片"
10
10
  },
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/docs-ui"),require("@univerjs/ui"),require("@univerjs/engine-render"),require("rxjs"),require("react"),require("react/jsx-runtime"),require("@univerjs/design"),require("@univerjs/docs-drawing-ui"),require("@univerjs/docs-drawing"),require("@univerjs/drawing"),require("@univerjs/drawing-ui")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/docs-ui`,`@univerjs/ui`,`@univerjs/engine-render`,`rxjs`,`react`,`react/jsx-runtime`,`@univerjs/design`,`@univerjs/docs-drawing-ui`,`@univerjs/docs-drawing`,`@univerjs/drawing`,`@univerjs/drawing-ui`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsQuickInsertUi={},e.UniverCore,e.UniverDocs,e.UniverDocsUi,e.UniverUi,e.UniverEngineRender,e.rxjs,e.React,e.React,e.UniverDesign,e.UniverDocsDrawingUi,e.UniverDocsDrawing,e.UniverDrawing,e.UniverDrawingUi))})(this,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let m={id:`doc.command.delete-search-key`,type:t.CommandType.COMMAND,handler:(e,n)=>{let i=e.get(t.ICommandService),{start:a,end:o}=n;return i.syncExecuteCommand(r.CutContentCommand.id,{segmentId:``,textRanges:[{startOffset:a,endOffset:a,collapsed:!0}],selections:[{startOffset:a,endOffset:o,collapsed:!1,direction:t.RANGE_DIRECTION.FORWARD}]})}},h=`docs.quick.insert.keyword-input-placeholder`;function g(e,t){if(typeof document>`u`)return e.length*11;let n=document.createElement(`canvas`).getContext(`2d`);return n?(n.font=t,Math.ceil(n.measureText(e).width)):e.length*11}let _=({popup:e})=>{var n,r,o,l,u,d,f,p,m,h,_;let v=(0,i.useDependency)(t.LocaleService).t(`docs-quick-insert-ui.keywordInputPlaceholder`),y=(0,a.ptToPixel)((n=(r=e.extraProps)==null?void 0:r.fontSize)==null?11:n),b=(o=(l=e.extraProps)==null?void 0:l.fontString)==null?`${y}px sans-serif`:o,x=(u=(d=e.extraProps)==null?void 0:d.ascent)==null?y:u,S=Math.max((f=(p=e.extraProps)==null?void 0:p.contentHeight)==null?y:f,y),C=(0,s.useMemo)(()=>g(v,b),[b,v]);return(0,c.jsx)(`div`,{className:`univer-select-none univer-font-normal univer-text-gray-500 univer-transition-colors dark:!univer-text-gray-400`,children:(0,c.jsx)(`svg`,{width:C,height:S,viewBox:`0 0 ${C} ${S}`,style:{overflow:`visible`,display:`block`},children:(0,c.jsx)(`text`,{x:0,y:x,fill:`currentColor`,style:{font:b,fontFamily:(m=e.extraProps)==null?void 0:m.fontFamily,fontStyle:(h=e.extraProps)==null?void 0:h.fontStyle,fontWeight:(_=e.extraProps)==null?void 0:_.fontWeight},children:v})})})};_.componentKey=h;function v(e){return`children`in e}function y(e){return e.flatMap(e=>v(e)?y(e.children):e)}function b(e){return y(e).length}function x(e){let{menus:t,focusedMenuIndex:n,onFocusedMenuIndexChange:r,onFocusedMenuChange:a,onSelect:o}=e,u=(0,i.useDependency)(i.IconManager),d=(0,s.useMemo)(()=>y(t),[t]),f=(0,s.useRef)(new Map);(0,s.useEffect)(()=>{var e,t;let r=Number.isNaN(n)||(e=d[n])==null?null:e;a(r),r&&((t=f.current.get(r.id))==null||t.scrollIntoView({block:`nearest`}))},[d,n,a]),(0,s.useEffect)(()=>{let e=f.current;return()=>{e.clear()}},[]);let p=(0,s.useRef)(0);p.current=0;function m(e){return e.map((t,i)=>{let a=t.icon,s=a?u.get(a):null;if(v(t))return(0,c.jsxs)(`div`,{className:(0,l.clsx)(`univer-grid univer-gap-1 univer-py-1`,i!==e.length-1&&l.borderBottomClassName),children:[(0,c.jsxs)(`div`,{className:`univer-box-border univer-inline-flex univer-items-center univer-gap-2 univer-px-2 univer-text-xs univer-font-semibold univer-text-gray-600 dark:!univer-text-gray-300`,children:[s&&(0,c.jsx)(`span`,{className:`univer-inline-flex univer-text-base`,children:(0,c.jsx)(s,{})}),(0,c.jsx)(`span`,{children:t.title})]}),(0,c.jsx)(`div`,{className:`univer-grid univer-gap-1`,children:m(t.children)})]},t.id);let d=p.current,h=n===d;return p.current+=1,(0,c.jsx)(`div`,{ref:e=>{if(e){f.current.set(t.id,e);return}f.current.delete(t.id)},role:`button`,tabIndex:-1,className:(0,l.clsx)(`univer-relative univer-box-border univer-flex univer-min-h-8 univer-w-full univer-cursor-pointer univer-items-center univer-justify-between univer-gap-3 univer-rounded-md univer-border-none univer-bg-transparent univer-px-2 univer-text-left univer-text-sm univer-text-gray-900 univer-outline-none hover:univer-bg-gray-50 dark:!univer-text-white dark:hover:!univer-bg-gray-600`,{"hover:univer-bg-transparent":!h,"univer-bg-gray-50 dark:!univer-bg-gray-600":h}),onMouseEnter:()=>r(d),onMouseLeave:()=>r(NaN),onClick:()=>o(t),children:(0,c.jsxs)(`div`,{className:`univer-inline-flex univer-w-full univer-items-center univer-gap-2`,children:[s&&(0,c.jsx)(`span`,{className:`univer-inline-flex univer-text-base`,children:(0,c.jsx)(s,{})}),(0,c.jsx)(l.Tooltip,{showIfEllipsis:!0,title:t.title,placement:`right`,children:(0,c.jsx)(`span`,{className:`univer-truncate`,children:t.title})})]})},t.id)})}return(0,c.jsx)(`div`,{className:(0,l.clsx)(`univer-box-border univer-grid univer-max-h-[360px] univer-gap-1 univer-overflow-y-auto univer-overflow-x-hidden univer-overscroll-contain univer-rounded-md univer-bg-white univer-px-2 univer-py-1 univer-text-sm univer-text-gray-900 univer-shadow-md dark:!univer-bg-gray-700 dark:!univer-text-white`,l.borderClassName,l.scrollbarClassName),onWheel:e=>e.stopPropagation(),children:m(t)})}let S=`docs.quick.insert.placeholder`,C=()=>(0,c.jsx)(`div`,{className:`univer-flex univer-h-full univer-items-center univer-justify-center univer-rounded-lg univer-bg-white univer-px-12 univer-py-6 univer-text-gray-400 univer-shadow-lg`,children:(0,c.jsx)(`span`,{children:(0,i.useDependency)(t.LocaleService).t(`docs-quick-insert-ui.placeholder`)})});C.componentKey=S;function w(e,t){return e.map(e=>({...e})).filter(e=>{if(`children`in e)return e.children=w(e.children,t),e.children.length>0;let n=e.keywords;return n?n.some(e=>e.includes(t)):e.title.toLowerCase().includes(t)})}function ee(e,t){return e.map(e=>{let n={...e};return`children`in n&&(n.children=ee(n.children,t)),n.title=t.t(n.title),`keywords`in n&&(n.keywords=n.keywords.concat(n.title).map(e=>e.toLowerCase())),n})}let te=[i.KeyCode.ARROW_UP,i.KeyCode.ARROW_DOWN,i.KeyCode.ENTER],T=()=>{let e=(0,i.useDependency)(t.LocaleService),n=(0,i.useDependency)(M),r=(0,i.useDependency)(i.IShortcutService),a=(0,i.useDependency)(t.ICommandService),o=(0,s.useMemo)(()=>(0,t.generateRandomId)(),[]),[l,u]=(0,s.useState)(0),d=(0,s.useRef)(null),f=(0,i.useObservable)(n.filterKeyword$,``),p=(0,i.useObservable)(n.editPopup$),m=(0,i.useObservable)(p==null?void 0:p.popup.menus$,[]),h=(0,s.useMemo)(()=>ee(m,e),[m]),[g,_]=(0,s.useState)(()=>w(h,f.toLowerCase())),v=(0,s.useMemo)(()=>b(g),[g]),y=(0,s.useRef)(v);(0,s.useEffect)(()=>{y.current=v},[v]),(0,s.useEffect)(()=>{let e=requestIdleCallback(()=>{_(w(h,f.toLowerCase()))});return()=>{cancelIdleCallback(e)}},[h,f]);let S=e=>{n.emitMenuSelected(e),a.executeCommand(P.id)},T=(0,s.useCallback)(e=>{d.current=e},[]);(0,s.useEffect)(()=>{let e=new t.DisposableCollection;r.getAllShortcuts().filter(e=>e.binding&&te.includes(e.binding)).forEach(n=>{let r=n.preconditions;n.preconditions=()=>!1,e.add((0,t.toDisposable)(()=>{n.preconditions=r}))});let n={id:`quick.insert.popup.enter.${o}`,type:t.CommandType.OPERATION,handler:()=>{let e=d.current;e&&S(e)}},s={id:`quick.insert.popup.move.cursor.up.${o}`,type:t.CommandType.OPERATION,handler:()=>{u(e=>{if(y.current<=0)return 0;let t=e-1;return t>=0?t:y.current-1})}},c={id:`quick.insert.popup.move.cursor.down.${o}`,type:t.CommandType.OPERATION,handler:()=>{u(e=>{if(y.current<=0)return 0;let t=e+1;return t<=y.current-1?t:0})}};return e.add(a.registerCommand(s)),e.add(a.registerCommand(c)),e.add(a.registerCommand(n)),e.add(r.registerShortcut({priority:1e3,id:s.id,binding:i.KeyCode.ARROW_UP,preconditions:()=>!0,staticParameters:{direction:t.Direction.UP}})),e.add(r.registerShortcut({priority:1e3,id:c.id,binding:i.KeyCode.ARROW_DOWN,preconditions:()=>!0,staticParameters:{direction:t.Direction.DOWN}})),e.add(r.registerShortcut({priority:1e3,id:n.id,binding:i.KeyCode.ENTER,preconditions:()=>!0})),()=>{e.dispose()}},[a,o,r]),(0,s.useEffect)(()=>{u(0)},[g]);let E=g.length>0,D=(p==null?void 0:p.popup.Placeholder)||C;return(0,c.jsx)(`div`,{className:`univer-mt-2`,children:E?(0,c.jsx)(x,{menus:g,focusedMenuIndex:l,onFocusedMenuIndexChange:u,onFocusedMenuChange:T,onSelect:S}):D&&(0,c.jsx)(D,{})})};T.componentKey=`docs.quick.insert.popup`;function E(e){"@babel/helpers - typeof";return E=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},E(e)}function D(e,t){if(E(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(E(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function ne(e){var t=D(e,`string`);return E(t)==`symbol`?t:t+``}function O(e,t,n){return(t=ne(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function k(e,t){return function(n,r){t(n,r,e)}}function A(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let j={dispose:()=>{}},M=class extends t.Disposable{get popups(){return Array.from(this._popups)}get editPopup(){return this._editPopup$.value}get isComposing(){return this._isComposing$.value}setIsComposing(e){this._isComposing$.next(e)}get inputOffset(){return this._inputOffset$.value}setInputOffset(e){this._inputOffset$.next(e)}getDocEventManagerService(e){var t;return(t=this._renderManagerService.getRenderUnitById(e))==null?void 0:t.with(r.DocEventManagerService)}constructor(e,n,r,i,a){super(),this._docCanvasPopupManagerService=e,this._univerInstanceService=n,this._commandService=r,this._renderManagerService=i,this._docSelectionManagerService=a,O(this,`_popups`,new Set),O(this,`_editPopup$`,new o.BehaviorSubject(void 0)),O(this,`editPopup$`,this._editPopup$.asObservable()),O(this,`_isComposing$`,new o.BehaviorSubject(!1)),O(this,`isComposing$`,this._isComposing$.asObservable()),O(this,`_inputOffset$`,new o.BehaviorSubject({start:0,end:0})),O(this,`inputOffset$`,this._inputOffset$.asObservable()),O(this,`filterKeyword$`,void 0),O(this,`_menuSelectedCallbacks`,new Set),O(this,`_inputPlaceholderRenderRoot`,null),this.disposeWithMe(this._editPopup$);let s=(e,n)=>{var r;return(r=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC))==null||(r=r.getBody())==null?void 0:r.dataStream.slice(e,n)},c=``;this.filterKeyword$=this._inputOffset$.pipe((0,o.map)(e=>{var t;let n=s(e.start,e.end);return(t=n==null?void 0:n.slice(1))==null?``:t}),(0,o.distinctUntilChanged)(),(0,o.tap)(e=>{c=e})),this.disposeWithMe((0,o.combineLatest)([this.filterKeyword$.pipe((0,o.tap)(e=>{if(e.length>0){var t;(t=this._inputPlaceholderRenderRoot)==null||(t=t.unmount)==null||t.dispose()}else{var n;(n=this._inputPlaceholderRenderRoot)==null||n.mount()}})),this.isComposing$.pipe((0,o.tap)(e=>{if(e){var t;(t=this._inputPlaceholderRenderRoot)==null||(t=t.unmount)==null||t.dispose()}else{var n;c.length<=0&&((n=this._inputPlaceholderRenderRoot)==null||n.mount())}})),this.editPopup$.pipe((0,o.tap)(e=>{if(!e){var t;(t=this._inputPlaceholderRenderRoot)==null||(t=t.unmount)==null||t.dispose(),this._inputPlaceholderRenderRoot=null}}))]).subscribe())}resolvePopup(e){return Array.from(this._popups).find(t=>t.keyword===e)}registerPopup(e){return this._popups.add(e),()=>{this._popups.delete(e)}}_createInputPlaceholderRenderRoot(e){return{isMounted:!1,mount(){if(this.isMounted)return;this.isMounted=!0;let t=e();this.unmount={dispose:()=>{t.dispose(),this.isMounted=!1}}}}}_getParagraphBound(e,t){var n,r;let i=this._univerInstanceService.getUnit(e),a=i==null||(n=i.getBody())==null||(n=n.paragraphs)==null?void 0:n.find(e=>e.startIndex>t);if(!a)return null;let o=this.getDocEventManagerService(e);return(r=o==null?void 0:o.findParagraphBoundByIndex(a.startIndex))==null?null:r}_getKeywordPlaceholderAnchorRect(e,t,n,i){let a=t.findNodePositionByCharIndex(n.startOffset,!0,n.segmentId,n.segmentPage);if(!a)return i;let o=e.getOffsetConfig(),{contentBoxPointGroup:s}=new r.NodePositionConvertToCursor(o,t).getRangePointData(a,a);if(s.length===0)return i;let c=(0,r.getAnchorBounding)(s),l=c.left+o.docsLeft,u=c.top+o.docsTop;return{left:l,right:l,top:u,bottom:u+c.height}}_getKeywordPlaceholderExtraProps(e){var t,n,r,i,a,o,s,c,l,u,d,f,p;return{fontSize:(t=e.ts)==null?void 0:t.fs,fontString:(n=e.fontStyle)==null?void 0:n.fontString,fontFamily:(r=(i=(a=e.fontStyle)==null?void 0:a.fontFamily)==null?(o=e.ts)==null?void 0:o.ff:i)==null?void 0:r,fontStyle:(s=e.ts)!=null&&s.it?`italic`:`normal`,fontWeight:(c=e.ts)!=null&&c.bl?`bold`:`normal`,ascent:(l=e.bBox)==null?void 0:l.ba,contentHeight:((u=(d=e.bBox)==null?void 0:d.ba)==null?0:u)+((f=(p=e.bBox)==null?void 0:p.bd)==null?0:f)||void 0}}_mountInputPlaceholder(e,t){let r=this._renderManagerService.getRenderUnitById(e),i=r==null?void 0:r.with(n.DocSkeletonManagerService),a=this._docSelectionManagerService.getActiveTextRange();if(!r||!i||!a)return j;let o=i.getSkeleton(),s=o.findNodeByCharIndex(a.startOffset,a.segmentId,a.segmentPage);if((s==null?void 0:s.content)!==`\r`||!s)return j;let c=r.mainComponent,l=this._getKeywordPlaceholderAnchorRect(c,o,a,t),u=this._getKeywordPlaceholderExtraProps(s),d=this._docCanvasPopupManagerService.attachPopupToRect(l,{componentKey:_.componentKey,extraProps:u,onClickOutside:()=>{d.dispose()},direction:`horizontal`},e);return d}showPopup(e){let{popup:t,index:n,unitId:r}=e;this.closePopup();let i=this._getParagraphBound(r,n);if(!i)return;this._inputPlaceholderRenderRoot=this._createInputPlaceholderRenderRoot(()=>this._mountInputPlaceholder(r,i.firstLine)),this._inputPlaceholderRenderRoot.mount();let a=this._docCanvasPopupManagerService.attachPopupToRect(i.firstLine,{componentKey:T.componentKey,onClickOutside:()=>{this.closePopup()},direction:`bottom`},r);this._editPopup$.next({disposable:a,popup:t,anchor:n,unitId:r})}closePopup(){this.editPopup&&(this.editPopup.disposable.dispose(),this._editPopup$.next(null))}onMenuSelected(e){return this._menuSelectedCallbacks.add(e),()=>{this._menuSelectedCallbacks.delete(e)}}emitMenuSelected(e){let{start:t,end:n}=this.inputOffset;this._commandService.syncExecuteCommand(m.id,{start:t,end:n}),setTimeout(()=>{this._menuSelectedCallbacks.forEach(t=>t(e))},0)}};M=A([k(0,(0,t.Inject)(r.DocCanvasPopManagerService)),k(1,(0,t.Inject)(t.IUniverInstanceService)),k(2,(0,t.Inject)(t.ICommandService)),k(3,(0,t.Inject)(a.IRenderManagerService)),k(4,(0,t.Inject)(n.DocSelectionManagerService))],M);let N={type:t.CommandType.OPERATION,id:`doc.operation.show-quick-insert-popup`,handler(e,t){let n=e.get(M);return t?(n.showPopup(t),!0):!1}},P={type:t.CommandType.OPERATION,id:`doc.operation.close-quick-insert-popup`,handler(e){return e.get(M).closePopup(),!0}},F={id:`quick-insert.text.menu`,title:`docs-quick-insert-ui.menu.text`,icon:`TextIcon`,keywords:[`text`]},I={id:r.OrderListCommand.id,title:`docs-quick-insert-ui.menu.numberedList`,icon:`OrderIcon`,keywords:[`numbered`,`list`,`ordered`]},L={id:r.BulletListCommand.id,title:`docs-quick-insert-ui.menu.bulletedList`,icon:`UnorderIcon`,keywords:[`bulleted`,`list`,`unordered`]},R={id:r.HorizontalLineCommand.id,title:`docs-quick-insert-ui.menu.divider`,icon:`DividerIcon`,keywords:[`divider`,`line`,`separate`]},z={id:r.DocCreateTableOperation.id,title:`docs-quick-insert-ui.menu.table`,icon:`GridIcon`,keywords:[`table`,`grid`,`spreadsheet`]},B={id:u.InsertDocImageCommand.id,title:`docs-quick-insert-ui.menu.image`,icon:`AdditionAndSubtractionIcon`,keywords:[`image`,`picture`,`photo`]},re=[{title:`docs-quick-insert-ui.group.basics`,id:`quick.insert.group.basic`,children:[F,I,L,R,z,B]}],ie=new Set([I.id,L.id,R.id,z.id,B.id]),V=class extends t.Disposable{constructor(e,t,n,r,a){super(),this._commandService=e,this._textSelectionManagerService=t,this._docQuickInsertPopupService=n,this._shortcutService=r,this._univerInstanceService=a,this.disposeWithMe(this._shortcutService.registerShortcut({id:P.id,binding:i.KeyCode.ESC,preconditions:()=>!!this._docQuickInsertPopupService.editPopup,priority:1e3})),this._initTrigger(),this._initMenuHandler()}_initTrigger(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{let{_docQuickInsertPopupService:i,_textSelectionManagerService:a,_commandService:o}=this,s=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC);if(!(s!=null&&s.getDisabled())){if(e.id===n.InsertTextCommand.id){let t=e.params;if(i.editPopup){i.setInputOffset({start:i.inputOffset.start,end:t.range.endOffset+1});return}let n=a.getActiveTextRange();if(!n)return;let r=i.resolvePopup(t.body.dataStream);if(!r||!(!r.preconditions||r.preconditions(t)))return;i.setInputOffset({start:n.startOffset-1,end:n.startOffset}),setTimeout(()=>{o.executeCommand(N.id,{index:n.startOffset-1,unitId:t.unitId,popup:r})},100)}if(e.id===r.IMEInputCommand.id){let t=e.params;!i.isComposing&&t.isCompositionStart&&i.setIsComposing(!0),i.isComposing&&t.isCompositionEnd&&i.setIsComposing(!1)}if(e.id===n.RichTextEditingMutation.id){let t=e.params;if(t.isCompositionEnd){var c;let e=(c=t.textRanges)==null||(c=c[0])==null?void 0:c.endOffset;e&&i.setInputOffset({start:i.inputOffset.start,end:e})}}if(e.id===n.DeleteTextCommand.id){let n=e.params;if(i.editPopup&&n.direction===t.DeleteDirection.LEFT){var l;let e=(l=n.len)==null?0:l;i.setInputOffset({start:i.inputOffset.start,end:n.range.endOffset-e})}}if(e.id===r.MoveCursorOperation.id){let n=e.params;(n.direction===t.Direction.LEFT||n.direction===t.Direction.RIGHT)&&i.editPopup&&o.executeCommand(P.id)}if(e.id===r.DeleteLeftCommand.id){let e=a.getActiveTextRange();if(!i.editPopup||!e)return;e.endOffset<=i.editPopup.anchor&&o.executeCommand(P.id)}}}))}_initMenuHandler(){this.disposeWithMe(this._docQuickInsertPopupService.onMenuSelected(e=>{e.id!==F.id&&ie.has(e.id)&&this._commandService.executeCommand(e.id)}))}};V=A([k(0,t.ICommandService),k(1,(0,t.Inject)(n.DocSelectionManagerService)),k(2,(0,t.Inject)(M)),k(3,(0,t.Inject)(i.IShortcutService)),k(4,(0,t.Inject)(t.IUniverInstanceService))],V);let H=class extends t.Disposable{constructor(e,t){super(),this._commandService=e,this._docQuickInsertPopupService=t,this._initCommands(),this._initComponents(),this._initMenus()}_initCommands(){[m,N,P].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initComponents(){[{keyword:`/`,menus$:(0,o.of)(re),preconditions:e=>{var t;return((t=e.range.startNodePosition)==null?void 0:t.glyph)===0}}].forEach(e=>{this.disposeWithMe(this._docQuickInsertPopupService.registerPopup(e))})}_initMenus(){}};H=A([k(0,t.ICommandService),k(1,(0,t.Inject)(M))],H);var ae=`@univerjs/docs-quick-insert-ui`,oe=`1.0.0-alpha.8`;let U={};function W({ref:e,...t}){let{icon:n,id:r,className:i,extend:a,...o}=t,c=`univerjs-icon univerjs-icon-${r} ${i||``}`.trim(),l=(0,s.useRef)(`_${le()}`);return G(n,`${r}`,{defIds:n.defIds,idSuffix:l.current},{ref:e,className:c,...o},a)}function G(e,t,n,r,i){return(0,s.createElement)(e.tag,{key:t,...se(e,n,i),...r},(ce(e,n).children||[]).map((r,a)=>G(r,`${t}-${e.tag}-${a}`,n,void 0,i)))}function se(e,t,n){let r={...e.attrs};n!=null&&n.colorChannel1&&r.fill===`colorChannel1`&&(r.fill=n.colorChannel1),n!=null&&n.colorChannel1&&r.stroke===`colorChannel1`&&(r.stroke=n.colorChannel1),e.tag===`mask`&&r.id&&(r.id+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{e===`mask`&&typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});let{defIds:i}=t;return!i||i.length===0?r:(e.tag===`use`&&r[`xlink:href`]&&(r[`xlink:href`]+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))}),r)}function ce(e,t){var n;let{defIds:r}=t;return!r||r.length===0?e:e.tag===`defs`&&(n=e.children)!=null&&n.length?{...e,children:e.children.map(e=>typeof e.attrs.id==`string`&&r&&r.includes(e.attrs.id)?{...e,attrs:{...e.attrs,id:e.attrs.id+t.idSuffix}}:e)}:e}function le(){return Math.random().toString(36).substring(2,8)}W.displayName=`UniverIcon`;let ue={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M1.01953 3.13985C1.01953 2.77258 1.31726 2.47485 1.68453 2.47485H2.73713C3.1044 2.47485 3.40213 2.77258 3.40213 3.13985C3.40213 3.50712 3.1044 3.80485 2.73713 3.80485H1.68453C1.31726 3.80485 1.01953 3.50712 1.01953 3.13985Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M4.17734 3.13985C4.17734 2.77258 4.47507 2.47485 4.84234 2.47485H6.94754C7.31481 2.47485 7.61254 2.77258 7.61254 3.13985C7.61254 3.50712 7.31481 3.80485 6.94754 3.80485H4.84234C4.47507 3.80485 4.17734 3.50712 4.17734 3.13985Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M8.38775 3.13985C8.38775 2.77258 8.68548 2.47485 9.05275 2.47485H11.158C11.5252 2.47485 11.823 2.77258 11.823 3.13985C11.823 3.50712 11.5252 3.80485 11.158 3.80485H9.05275C8.68548 3.80485 8.38775 3.50712 8.38775 3.13985Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M12.5982 3.13985C12.5982 2.77258 12.8959 2.47485 13.2632 2.47485H14.3158C14.683 2.47485 14.9808 2.77258 14.9808 3.13985C14.9808 3.50712 14.683 3.80485 14.3158 3.80485H13.2632C12.8959 3.80485 12.5982 3.50712 12.5982 3.13985Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M1.01953 7.99972C1.01953 7.63245 1.31726 7.33472 1.68453 7.33472H14.3158C14.683 7.33472 14.9808 7.63245 14.9808 7.99972C14.9808 8.36699 14.683 8.66472 14.3158 8.66472H1.68453C1.31726 8.66472 1.01953 8.36699 1.01953 7.99972Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M1.68453 12.1951C1.31726 12.1951 1.01953 12.4928 1.01953 12.8601C1.01953 13.2273 1.31726 13.5251 1.68453 13.5251H2.73713C3.1044 13.5251 3.40213 13.2273 3.40213 12.8601C3.40213 12.4928 3.1044 12.1951 2.73713 12.1951H1.68453Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M4.84234 12.1951C4.47507 12.1951 4.17734 12.4928 4.17734 12.8601C4.17734 13.2273 4.47507 13.5251 4.84234 13.5251H6.94754C7.31481 13.5251 7.61254 13.2273 7.61254 12.8601C7.61254 12.4928 7.31481 12.1951 6.94754 12.1951H4.84234Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M9.05275 12.1951C8.68548 12.1951 8.38775 12.4928 8.38775 12.8601C8.38775 13.2273 8.68548 13.5251 9.05275 13.5251H11.158C11.5252 13.5251 11.823 13.2273 11.823 12.8601C11.823 12.4928 11.5252 12.1951 11.158 12.1951H9.05275Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M13.2632 12.1951C12.8959 12.1951 12.5982 12.4928 12.5982 12.8601C12.5982 13.2273 12.8959 13.5251 13.2632 13.5251H14.3158C14.683 13.5251 14.9808 13.2273 14.9808 12.8601C14.9808 12.4928 14.683 12.1951 14.3158 12.1951H13.2632Z`}}]},K=(0,s.forwardRef)(function(e,t){return(0,s.createElement)(W,Object.assign({},e,{id:`divider-icon`,ref:t,icon:ue}))});K.displayName=`DividerIcon`;let de={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M8.6 1.99991C8.60001 1.66854 8.33138 1.39991 8.00001 1.3999C7.66864 1.3999 7.40001 1.66853 7.4 1.9999L7.39996 7.3999H1.9999C1.66853 7.3999 1.3999 7.66853 1.3999 7.9999C1.3999 8.33127 1.66853 8.5999 1.9999 8.5999H7.39995L7.3999 13.9999C7.3999 14.3313 7.66853 14.5999 7.9999 14.5999C8.33127 14.5999 8.5999 14.3313 8.5999 13.9999L8.59995 8.5999H13.9999C14.3313 8.5999 14.5999 8.33127 14.5999 7.9999C14.5999 7.66853 14.3313 7.3999 13.9999 7.3999H8.59996L8.6 1.99991Z`}}]},q=(0,s.forwardRef)(function(e,t){return(0,s.createElement)(W,Object.assign({},e,{id:`increase-icon`,ref:t,icon:de}))});q.displayName=`IncreaseIcon`;let fe={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 17 16`,width:`1em`,height:`1em`},children:[{tag:`g`,attrs:{fill:`currentColor`,clipPath:`url(#text-icon_clip0_1293_26)`},children:[{tag:`path`,attrs:{d:`M2.22891 2.07227C1.89754 2.07227 1.62891 2.34089 1.62891 2.67227C1.62891 3.00364 1.89754 3.27227 2.22891 3.27227H6.29541V14.0056C6.29541 14.337 6.56404 14.6056 6.89541 14.6056C7.22678 14.6056 7.49541 14.337 7.49541 14.0056V3.27227H11.5622C11.8936 3.27227 12.1622 3.00364 12.1622 2.67227C12.1622 2.34089 11.8936 2.07227 11.5622 2.07227H2.22891Z`}},{tag:`path`,attrs:{d:`M10.2289 6.40552C9.89754 6.40552 9.62891 6.67415 9.62891 7.00552C9.62891 7.33689 9.89754 7.60552 10.2289 7.60552H12.2954V14.0055C12.2954 14.3369 12.564 14.6055 12.8954 14.6055C13.2268 14.6055 13.4954 14.3369 13.4954 14.0055V7.60552H15.5622C15.8936 7.60552 16.1622 7.33689 16.1622 7.00552C16.1622 6.67415 15.8936 6.40552 15.5622 6.40552H10.2289Z`}}]},{tag:`defs`,attrs:{},children:[{tag:`clipPath`,attrs:{id:`text-icon_clip0_1293_26`},children:[{tag:`path`,attrs:{fill:`white`,d:`M0 0H16V16H0z`,transform:`translate(.9)`}}]}]}],defIds:[`text-icon_clip0_1293_26`]},J=(0,s.forwardRef)(function(e,t){return(0,s.createElement)(W,Object.assign({},e,{id:`text-icon`,ref:t,icon:fe}))});J.displayName=`TextIcon`;let Y=class extends t.Disposable{get popup(){return this._popup$.value}constructor(e,t,n,r){super(),this._context=e,this._docEventManagerService=t,this._docQuickInsertPopupService=n,this._docCanvasPopManagerService=r,O(this,`_popup$`,new o.BehaviorSubject(null)),O(this,`popup$`,this._popup$.asObservable()),this._init()}_init(){this.disposeWithMe((0,o.combineLatest)([this._docEventManagerService.hoverParagraphLeftRealTime$,this._docEventManagerService.hoverParagraphRealTime$]).subscribe(([e,t])=>{let n=e==null?t:e,r=this._context.unit.getDisabled();if(!n||r){this._hideMenu(!0);return}if(n.paragraphStart===n.paragraphEnd){var i;if(this._docQuickInsertPopupService.editPopup||n.startIndex===((i=this.popup)==null?void 0:i.startIndex))return;this._hideMenu(!0);let e=this._docCanvasPopManagerService.attachPopupToRect(n.firstLine,{componentKey:X,direction:`left-center`},this._context.unit.getUnitId());this._popup$.next({startIndex:n.startIndex,disposable:e})}else this._hideMenu(!0)}))}_hideMenu(e){this._docQuickInsertPopupService.editPopup||this.popup&&(e||this.popup.disposable.canDispose())&&(this.popup.disposable.dispose(),this._popup$.next(null))}};Y=A([k(1,(0,t.Inject)(r.DocEventManagerService)),k(2,(0,t.Inject)(M)),k(3,(0,t.Inject)(r.DocCanvasPopManagerService))],Y);let X=`doc.quick-insert.button`,Z=({className:e=``})=>{let r=(0,i.useDependency)(M),u=(0,i.useDependency)(t.IUniverInstanceService),d=(0,i.useDependency)(a.IRenderManagerService),f=(0,i.useObservable)((0,s.useMemo)(()=>u.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_DOC),[u])),p=f&&d.getRenderUnitById(f.getUnitId()),m=p==null?void 0:p.with(Y),h=(0,i.useDependency)(i.ILayoutService),g=(0,i.useDependency)(n.DocSelectionManagerService),_=(0,i.useObservable)(r.editPopup$),v=(0,i.useEvent)(()=>{var e;let t=m==null?void 0:m.popup;if(!t)return;let n=r.popups,i={keyword:``,menus$:(0,o.combineLatest)(n.map(e=>e.menus$)).pipe((0,o.map)(e=>e.flat()))};g.replaceDocRanges([{startOffset:t.startIndex,endOffset:t.startIndex}]),r.setInputOffset({start:t.startIndex-1,end:t.startIndex-1}),r.showPopup({popup:i,index:t.startIndex-1,unitId:(e=f==null?void 0:f.getUnitId())==null?``:e}),setTimeout(()=>{h.focus()})});return(0,c.jsx)(`div`,{className:(0,l.clsx)(`univer-mr-1 univer-flex univer-cursor-pointer univer-items-center univer-gap-2.5 univer-rounded-full univer-p-1.5 univer-shadow-sm hover:univer-bg-gray-100 dark:!univer-text-gray-200 dark:hover:!univer-bg-gray-700`,l.borderClassName,{"univer-bg-gray-100 dark:!univer-bg-gray-700":_,"univer-bg-white dark:!univer-bg-gray-900":!_},e),role:`button`,tabIndex:0,onClick:v,children:(0,c.jsx)(q,{className:`univer-text-gray-800 dark:!univer-text-gray-200`})})};Z.componentKey=X;let Q=class extends t.Disposable{constructor(e,t){super(),this._componentManager=e,this._iconManager=t,this._registerIcons(),this._registerComponents()}_registerIcons(){this.disposeWithMe(this._iconManager.register({DividerIcon:K,TextIcon:J}))}_registerComponents(){[[T.componentKey,T],[_.componentKey,_],[C.componentKey,C],[Z.componentKey,Z]].forEach(([e,t])=>{e&&this.disposeWithMe(this._componentManager.register(e,t))})}};Q=A([k(0,(0,t.Inject)(i.ComponentManager)),k(1,(0,t.Inject)(i.IconManager))],Q);let $=class extends t.Plugin{constructor(e=U,n,r,i){super(),this._config=e,this._injector=n,this._renderManagerSrv=r,this._configService=i;let{menu:a,...o}=(0,t.merge)({},U,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(`docs-quick-insert-ui.config`,o)}onStarting(){this._injector.add([Q]),this._injector.get(Q),[[H],[V],[M]].forEach(e=>this._injector.add(e)),this._injector.get(H)}onRendered(){this._injector.get(V),this._injector.get(M),[[Y]].forEach(e=>{this._renderManagerSrv.registerRenderModule(t.UniverInstanceType.UNIVER_DOC,e)})}};O($,`type`,t.UniverInstanceType.UNIVER_DOC),O($,`pluginName`,`DOC_QUICK_INSERT_UI_PLUGIN`),O($,`packageName`,ae),O($,`version`,oe),$=A([(0,t.DependentOn)(n.UniverDocsPlugin,f.UniverDrawingPlugin,a.UniverRenderEnginePlugin,d.UniverDocsDrawingPlugin,i.UniverUIPlugin,r.UniverDocsUIPlugin,p.UniverDrawingUIPlugin,u.UniverDocsDrawingUIPlugin),k(1,(0,t.Inject)(t.Injector)),k(2,(0,t.Inject)(a.IRenderManagerService)),k(3,t.IConfigService)],$),Object.defineProperty(e,"DocQuickInsertPopupService",{enumerable:!0,get:function(){return M}}),Object.defineProperty(e,"DocQuickInsertTriggerController",{enumerable:!0,get:function(){return V}}),Object.defineProperty(e,"DocQuickInsertUIController",{enumerable:!0,get:function(){return H}}),e.KeywordInputPlaceholderComponentKey=h,e.QuickInsertPlaceholderComponentKey=S,Object.defineProperty(e,"UniverDocsQuickInsertUIPlugin",{enumerable:!0,get:function(){return $}})});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/docs-ui"),require("@univerjs/ui"),require("@univerjs/engine-render"),require("rxjs"),require("react"),require("react/jsx-runtime"),require("@univerjs/design"),require("@univerjs/docs-drawing-ui"),require("@univerjs/docs-drawing"),require("@univerjs/drawing"),require("@univerjs/drawing-ui")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/docs-ui`,`@univerjs/ui`,`@univerjs/engine-render`,`rxjs`,`react`,`react/jsx-runtime`,`@univerjs/design`,`@univerjs/docs-drawing-ui`,`@univerjs/docs-drawing`,`@univerjs/drawing`,`@univerjs/drawing-ui`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsQuickInsertUi={},e.UniverCore,e.UniverDocs,e.UniverDocsUi,e.UniverUi,e.UniverEngineRender,e.rxjs,e.React,e.React,e.UniverDesign,e.UniverDocsDrawingUi,e.UniverDocsDrawing,e.UniverDrawing,e.UniverDrawingUi))})(this,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let m={id:`doc.command.delete-search-key`,type:t.CommandType.COMMAND,handler:(e,n)=>{let i=e.get(t.ICommandService),{start:a,end:o}=n;return i.syncExecuteCommand(r.CutContentCommand.id,{segmentId:``,textRanges:[{startOffset:a,endOffset:a,collapsed:!0}],selections:[{startOffset:a,endOffset:o,collapsed:!1,direction:t.RANGE_DIRECTION.FORWARD}]})}},h=`docs.quick.insert.keyword-input-placeholder`;function g(e,t){if(typeof document>`u`)return e.length*11;let n=document.createElement(`canvas`).getContext(`2d`);return n?(n.font=t,Math.ceil(n.measureText(e).width)):e.length*11}let _=({popup:e})=>{var n,r,o,l,u,d,f;let p=(0,i.useDependency)(t.LocaleService).t(`docs-quick-insert-ui.keywordInputPlaceholder`),m=(0,a.ptToPixel)(((n=e.extraProps)==null?void 0:n.fontSize)??11),h=((r=e.extraProps)==null?void 0:r.fontString)??`${m}px sans-serif`,_=((o=e.extraProps)==null?void 0:o.ascent)??m,v=Math.max(((l=e.extraProps)==null?void 0:l.contentHeight)??m,m),y=(0,s.useMemo)(()=>g(p,h),[h,p]);return(0,c.jsx)(`div`,{className:`univer-select-none univer-font-normal univer-text-gray-500 univer-transition-colors dark:!univer-text-gray-400`,children:(0,c.jsx)(`svg`,{width:y,height:v,viewBox:`0 0 ${y} ${v}`,style:{overflow:`visible`,display:`block`},children:(0,c.jsx)(`text`,{x:0,y:_,fill:`currentColor`,style:{font:h,fontFamily:(u=e.extraProps)==null?void 0:u.fontFamily,fontStyle:(d=e.extraProps)==null?void 0:d.fontStyle,fontWeight:(f=e.extraProps)==null?void 0:f.fontWeight},children:p})})})};_.componentKey=h;function v(e){return`children`in e}function y(e){return e.flatMap(e=>v(e)?y(e.children):e)}function ee(e){return y(e).length}function te(e){let{menus:t,focusedMenuIndex:n,onFocusedMenuIndexChange:r,onFocusedMenuChange:a,onSelect:o}=e,u=(0,i.useDependency)(i.IconManager),d=(0,s.useMemo)(()=>y(t),[t]),f=(0,s.useRef)(new Map);(0,s.useEffect)(()=>{var e;let t=Number.isNaN(n)?null:d[n]??null;a(t),t&&((e=f.current.get(t.id))==null||e.scrollIntoView({block:`nearest`}))},[d,n,a]),(0,s.useEffect)(()=>{let e=f.current;return()=>{e.clear()}},[]);let p=(0,s.useRef)(0);p.current=0;function m(e){return e.map((t,i)=>{let a=t.icon,s=a?u.get(a):null;if(v(t))return(0,c.jsxs)(`div`,{className:(0,l.clsx)(`univer-grid univer-gap-1 univer-py-1`,i!==e.length-1&&l.borderBottomClassName),children:[(0,c.jsxs)(`div`,{className:`univer-box-border univer-inline-flex univer-items-center univer-gap-2 univer-px-2 univer-text-xs univer-font-semibold univer-text-gray-600 dark:!univer-text-gray-300`,children:[s&&(0,c.jsx)(`span`,{className:`univer-inline-flex univer-text-base`,children:(0,c.jsx)(s,{})}),(0,c.jsx)(`span`,{children:t.title})]}),(0,c.jsx)(`div`,{className:`univer-grid univer-gap-1`,children:m(t.children)})]},t.id);let d=p.current,h=n===d;return p.current+=1,(0,c.jsx)(`div`,{ref:e=>{if(e){f.current.set(t.id,e);return}f.current.delete(t.id)},role:`button`,tabIndex:-1,className:(0,l.clsx)(`univer-relative univer-box-border univer-flex univer-min-h-8 univer-w-full univer-cursor-pointer univer-items-center univer-justify-between univer-gap-3 univer-rounded-md univer-border-none univer-bg-transparent univer-px-2 univer-text-left univer-text-sm univer-text-gray-900 univer-outline-none hover:univer-bg-gray-50 dark:!univer-text-white dark:hover:!univer-bg-gray-600`,{"hover:univer-bg-transparent":!h,"univer-bg-gray-50 dark:!univer-bg-gray-600":h}),onMouseEnter:()=>r(d),onMouseLeave:()=>r(NaN),onClick:()=>o(t),children:(0,c.jsxs)(`div`,{className:`univer-inline-flex univer-w-full univer-items-center univer-gap-2`,children:[s&&(0,c.jsx)(`span`,{className:`univer-inline-flex univer-text-base`,children:(0,c.jsx)(s,{})}),(0,c.jsx)(l.Tooltip,{showIfEllipsis:!0,title:t.title,placement:`right`,children:(0,c.jsx)(`span`,{className:`univer-truncate`,children:t.title})})]})},t.id)})}return(0,c.jsx)(`div`,{className:(0,l.clsx)(`univer-box-border univer-grid univer-max-h-[360px] univer-gap-1 univer-overflow-y-auto univer-overflow-x-hidden univer-overscroll-contain univer-rounded-md univer-bg-white univer-px-2 univer-py-1 univer-text-sm univer-text-gray-900 univer-shadow-md dark:!univer-bg-gray-700 dark:!univer-text-white`,l.borderClassName,l.scrollbarClassName),onWheel:e=>e.stopPropagation(),children:m(t)})}let b=`docs.quick.insert.placeholder`,x=()=>(0,c.jsx)(`div`,{className:`univer-flex univer-h-full univer-items-center univer-justify-center univer-rounded-lg univer-bg-white univer-px-12 univer-py-6 univer-text-gray-400 univer-shadow-lg`,children:(0,c.jsx)(`span`,{children:(0,i.useDependency)(t.LocaleService).t(`docs-quick-insert-ui.placeholder`)})});x.componentKey=b;function S(e,t){return e.map(e=>({...e})).filter(e=>{if(`children`in e)return e.children=S(e.children,t),e.children.length>0;let n=e.keywords;return n?n.some(e=>e.includes(t)):e.title.toLowerCase().includes(t)})}function C(e,t){return e.map(e=>{let n={...e};return`children`in n&&(n.children=C(n.children,t)),n.title=t.t(n.title),`keywords`in n&&(n.keywords=n.keywords.concat(n.title).map(e=>e.toLowerCase())),n})}let w=[i.KeyCode.ARROW_UP,i.KeyCode.ARROW_DOWN,i.KeyCode.ENTER],T=()=>{let e=(0,i.useDependency)(t.LocaleService),n=(0,i.useDependency)(M),r=(0,i.useDependency)(i.IShortcutService),a=(0,i.useDependency)(t.ICommandService),o=(0,s.useMemo)(()=>(0,t.generateRandomId)(),[]),[l,u]=(0,s.useState)(0),d=(0,s.useRef)(null),f=(0,i.useObservable)(n.filterKeyword$,``),p=(0,i.useObservable)(n.editPopup$),m=(0,i.useObservable)(p==null?void 0:p.popup.menus$,[]),h=(0,s.useMemo)(()=>C(m,e),[m]),[g,_]=(0,s.useState)(()=>S(h,f.toLowerCase())),v=(0,s.useMemo)(()=>ee(g),[g]),y=(0,s.useRef)(v);(0,s.useEffect)(()=>{y.current=v},[v]),(0,s.useEffect)(()=>{let e=requestIdleCallback(()=>{_(S(h,f.toLowerCase()))});return()=>{cancelIdleCallback(e)}},[h,f]);let b=e=>{n.emitMenuSelected(e),a.executeCommand(P.id)},T=(0,s.useCallback)(e=>{d.current=e},[]);(0,s.useEffect)(()=>{let e=new t.DisposableCollection;r.getAllShortcuts().filter(e=>e.binding&&w.includes(e.binding)).forEach(n=>{let r=n.preconditions;n.preconditions=()=>!1,e.add((0,t.toDisposable)(()=>{n.preconditions=r}))});let n={id:`quick.insert.popup.enter.${o}`,type:t.CommandType.OPERATION,handler:()=>{let e=d.current;e&&b(e)}},s={id:`quick.insert.popup.move.cursor.up.${o}`,type:t.CommandType.OPERATION,handler:()=>{u(e=>{if(y.current<=0)return 0;let t=e-1;return t>=0?t:y.current-1})}},c={id:`quick.insert.popup.move.cursor.down.${o}`,type:t.CommandType.OPERATION,handler:()=>{u(e=>{if(y.current<=0)return 0;let t=e+1;return t<=y.current-1?t:0})}};return e.add(a.registerCommand(s)),e.add(a.registerCommand(c)),e.add(a.registerCommand(n)),e.add(r.registerShortcut({priority:1e3,id:s.id,binding:i.KeyCode.ARROW_UP,preconditions:()=>!0,staticParameters:{direction:t.Direction.UP}})),e.add(r.registerShortcut({priority:1e3,id:c.id,binding:i.KeyCode.ARROW_DOWN,preconditions:()=>!0,staticParameters:{direction:t.Direction.DOWN}})),e.add(r.registerShortcut({priority:1e3,id:n.id,binding:i.KeyCode.ENTER,preconditions:()=>!0})),()=>{e.dispose()}},[a,o,r]),(0,s.useEffect)(()=>{u(0)},[g]);let E=g.length>0,D=(p==null?void 0:p.popup.Placeholder)||x;return(0,c.jsx)(`div`,{className:`univer-mt-2`,children:E?(0,c.jsx)(te,{menus:g,focusedMenuIndex:l,onFocusedMenuIndexChange:u,onFocusedMenuChange:T,onSelect:b}):D&&(0,c.jsx)(D,{})})};T.componentKey=`docs.quick.insert.popup`;function E(e){"@babel/helpers - typeof";return E=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},E(e)}function D(e,t){if(E(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(E(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function ne(e){var t=D(e,`string`);return E(t)==`symbol`?t:t+``}function O(e,t,n){return(t=ne(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function k(e,t){return function(n,r){t(n,r,e)}}function A(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let j={dispose:()=>{}},M=class extends t.Disposable{get popups(){return Array.from(this._popups)}get editPopup(){return this._editPopup$.value}get isComposing(){return this._isComposing$.value}setIsComposing(e){this._isComposing$.next(e)}get inputOffset(){return this._inputOffset$.value}setInputOffset(e){this._inputOffset$.next(e)}getDocEventManagerService(e){var t;return(t=this._renderManagerService.getRenderUnitById(e))==null?void 0:t.with(r.DocEventManagerService)}constructor(e,n,r,i,a){super(),this._docCanvasPopupManagerService=e,this._univerInstanceService=n,this._commandService=r,this._renderManagerService=i,this._docSelectionManagerService=a,O(this,`_popups`,new Set),O(this,`_editPopup$`,new o.BehaviorSubject(void 0)),O(this,`editPopup$`,this._editPopup$.asObservable()),O(this,`_isComposing$`,new o.BehaviorSubject(!1)),O(this,`isComposing$`,this._isComposing$.asObservable()),O(this,`_inputOffset$`,new o.BehaviorSubject({start:0,end:0})),O(this,`inputOffset$`,this._inputOffset$.asObservable()),O(this,`filterKeyword$`,void 0),O(this,`_menuSelectedCallbacks`,new Set),O(this,`_inputPlaceholderRenderRoot`,null),this.disposeWithMe(this._editPopup$);let s=(e,n)=>{var r;return(r=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC))==null||(r=r.getBody())==null?void 0:r.dataStream.slice(e,n)},c=``;this.filterKeyword$=this._inputOffset$.pipe((0,o.map)(e=>{let t=s(e.start,e.end);return(t==null?void 0:t.slice(1))??``}),(0,o.distinctUntilChanged)(),(0,o.tap)(e=>{c=e})),this.disposeWithMe((0,o.combineLatest)([this.filterKeyword$.pipe((0,o.tap)(e=>{if(e.length>0){var t;(t=this._inputPlaceholderRenderRoot)==null||(t=t.unmount)==null||t.dispose()}else{var n;(n=this._inputPlaceholderRenderRoot)==null||n.mount()}})),this.isComposing$.pipe((0,o.tap)(e=>{if(e){var t;(t=this._inputPlaceholderRenderRoot)==null||(t=t.unmount)==null||t.dispose()}else{var n;c.length<=0&&((n=this._inputPlaceholderRenderRoot)==null||n.mount())}})),this.editPopup$.pipe((0,o.tap)(e=>{if(!e){var t;(t=this._inputPlaceholderRenderRoot)==null||(t=t.unmount)==null||t.dispose(),this._inputPlaceholderRenderRoot=null}}))]).subscribe())}resolvePopup(e){return Array.from(this._popups).find(t=>t.keyword===e)}registerPopup(e){return this._popups.add(e),()=>{this._popups.delete(e)}}_createInputPlaceholderRenderRoot(e){return{isMounted:!1,mount(){if(this.isMounted)return;this.isMounted=!0;let t=e();this.unmount={dispose:()=>{t.dispose(),this.isMounted=!1}}}}}_getParagraphBound(e,t){var n;let r=this._univerInstanceService.getUnit(e),i=r==null||(n=r.getBody())==null||(n=n.paragraphs)==null?void 0:n.find(e=>e.startIndex>t);if(!i)return null;let a=this.getDocEventManagerService(e);return(a==null?void 0:a.findParagraphBoundByIndex(i.startIndex))??null}_getKeywordPlaceholderAnchorRect(e,t,n,i){let a=t.findNodePositionByCharIndex(n.startOffset,!0,n.segmentId,n.segmentPage);if(!a)return i;let o=e.getOffsetConfig(),{contentBoxPointGroup:s}=new r.NodePositionConvertToCursor(o,t).getRangePointData(a,a);if(s.length===0)return i;let c=(0,r.getAnchorBounding)(s),l=c.left+o.docsLeft,u=c.top+o.docsTop;return{left:l,right:l,top:u,bottom:u+c.height}}_getKeywordPlaceholderExtraProps(e){var t,n,r,i,a,o,s,c,l;return{fontSize:(t=e.ts)==null?void 0:t.fs,fontString:(n=e.fontStyle)==null?void 0:n.fontString,fontFamily:((r=e.fontStyle)==null?void 0:r.fontFamily)??((i=e.ts)==null?void 0:i.ff)??void 0,fontStyle:(a=e.ts)!=null&&a.it?`italic`:`normal`,fontWeight:(o=e.ts)!=null&&o.bl?`bold`:`normal`,ascent:(s=e.bBox)==null?void 0:s.ba,contentHeight:(((c=e.bBox)==null?void 0:c.ba)??0)+(((l=e.bBox)==null?void 0:l.bd)??0)||void 0}}_mountInputPlaceholder(e,t){let r=this._renderManagerService.getRenderUnitById(e),i=r==null?void 0:r.with(n.DocSkeletonManagerService),a=this._docSelectionManagerService.getActiveTextRange();if(!r||!i||!a)return j;let o=i.getSkeleton(),s=o.findNodeByCharIndex(a.startOffset,a.segmentId,a.segmentPage);if((s==null?void 0:s.content)!==`\r`||!s)return j;let c=r.mainComponent,l=this._getKeywordPlaceholderAnchorRect(c,o,a,t),u=this._getKeywordPlaceholderExtraProps(s),d=this._docCanvasPopupManagerService.attachPopupToRect(l,{componentKey:_.componentKey,extraProps:u,onClickOutside:()=>{d.dispose()},direction:`horizontal`},e);return d}showPopup(e){let{popup:t,index:n,unitId:r}=e;this.closePopup();let i=this._getParagraphBound(r,n);if(!i)return;this._inputPlaceholderRenderRoot=this._createInputPlaceholderRenderRoot(()=>this._mountInputPlaceholder(r,i.firstLine)),this._inputPlaceholderRenderRoot.mount();let a=this._docCanvasPopupManagerService.attachPopupToRect(i.firstLine,{componentKey:T.componentKey,onClickOutside:()=>{this.closePopup()},direction:`bottom`},r);this._editPopup$.next({disposable:a,popup:t,anchor:n,unitId:r})}closePopup(){this.editPopup&&(this.editPopup.disposable.dispose(),this._editPopup$.next(null))}onMenuSelected(e){return this._menuSelectedCallbacks.add(e),()=>{this._menuSelectedCallbacks.delete(e)}}emitMenuSelected(e){let{start:t,end:n}=this.inputOffset;this._commandService.syncExecuteCommand(m.id,{start:t,end:n}),setTimeout(()=>{this._menuSelectedCallbacks.forEach(t=>t(e))},0)}};M=A([k(0,(0,t.Inject)(r.DocCanvasPopManagerService)),k(1,(0,t.Inject)(t.IUniverInstanceService)),k(2,(0,t.Inject)(t.ICommandService)),k(3,(0,t.Inject)(a.IRenderManagerService)),k(4,(0,t.Inject)(n.DocSelectionManagerService))],M);let N={type:t.CommandType.OPERATION,id:`doc.operation.show-quick-insert-popup`,handler(e,t){let n=e.get(M);return t?(n.showPopup(t),!0):!1}},P={type:t.CommandType.OPERATION,id:`doc.operation.close-quick-insert-popup`,handler(e){return e.get(M).closePopup(),!0}},F={id:`quick-insert.text.menu`,title:`docs-quick-insert-ui.menu.text`,icon:`TextIcon`,keywords:[`text`]},I={id:r.OrderListCommand.id,title:`docs-quick-insert-ui.menu.numberedList`,icon:`OrderIcon`,keywords:[`numbered`,`list`,`ordered`]},L={id:r.BulletListCommand.id,title:`docs-quick-insert-ui.menu.bulletedList`,icon:`UnorderIcon`,keywords:[`bulleted`,`list`,`unordered`]},R={id:r.HorizontalLineCommand.id,title:`docs-quick-insert-ui.menu.divider`,icon:`DividerIcon`,keywords:[`divider`,`line`,`separate`]},z={id:r.DocCreateTableOperation.id,title:`docs-quick-insert-ui.menu.table`,icon:`GridIcon`,keywords:[`table`,`grid`,`spreadsheet`]},B={id:u.InsertDocImageCommand.id,title:`docs-quick-insert-ui.menu.image`,icon:`AdditionAndSubtractionIcon`,keywords:[`image`,`picture`,`photo`]},re=[{title:`docs-quick-insert-ui.group.basics`,id:`quick.insert.group.basic`,children:[F,I,L,R,z,B]}],ie=new Set([I.id,L.id,R.id,z.id,B.id]),V=class extends t.Disposable{constructor(e,t,n,r,a){super(),this._commandService=e,this._textSelectionManagerService=t,this._docQuickInsertPopupService=n,this._shortcutService=r,this._univerInstanceService=a,this.disposeWithMe(this._shortcutService.registerShortcut({id:P.id,binding:i.KeyCode.ESC,preconditions:()=>!!this._docQuickInsertPopupService.editPopup,priority:1e3})),this._initTrigger(),this._initMenuHandler()}_initTrigger(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{let{_docQuickInsertPopupService:i,_textSelectionManagerService:a,_commandService:o}=this,s=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC);if(!(s!=null&&s.getDisabled())){if(e.id===n.InsertTextCommand.id){let t=e.params;if(i.editPopup){i.setInputOffset({start:i.inputOffset.start,end:t.range.endOffset+1});return}let n=a.getActiveTextRange();if(!n)return;let r=i.resolvePopup(t.body.dataStream);if(!r||!(!r.preconditions||r.preconditions(t)))return;i.setInputOffset({start:n.startOffset-1,end:n.startOffset}),setTimeout(()=>{o.executeCommand(N.id,{index:n.startOffset-1,unitId:t.unitId,popup:r})},100)}if(e.id===r.IMEInputCommand.id){let t=e.params;!i.isComposing&&t.isCompositionStart&&i.setIsComposing(!0),i.isComposing&&t.isCompositionEnd&&i.setIsComposing(!1)}if(e.id===n.RichTextEditingMutation.id){let t=e.params;if(t.isCompositionEnd){var c;let e=(c=t.textRanges)==null||(c=c[0])==null?void 0:c.endOffset;e&&i.setInputOffset({start:i.inputOffset.start,end:e})}}if(e.id===n.DeleteTextCommand.id){let n=e.params;if(i.editPopup&&n.direction===t.DeleteDirection.LEFT){let e=n.len??0;i.setInputOffset({start:i.inputOffset.start,end:n.range.endOffset-e})}}if(e.id===r.MoveCursorOperation.id){let n=e.params;(n.direction===t.Direction.LEFT||n.direction===t.Direction.RIGHT)&&i.editPopup&&o.executeCommand(P.id)}if(e.id===r.DeleteLeftCommand.id){let e=a.getActiveTextRange();if(!i.editPopup||!e)return;e.endOffset<=i.editPopup.anchor&&o.executeCommand(P.id)}}}))}_initMenuHandler(){this.disposeWithMe(this._docQuickInsertPopupService.onMenuSelected(e=>{e.id!==F.id&&ie.has(e.id)&&this._commandService.executeCommand(e.id)}))}};V=A([k(0,t.ICommandService),k(1,(0,t.Inject)(n.DocSelectionManagerService)),k(2,(0,t.Inject)(M)),k(3,(0,t.Inject)(i.IShortcutService)),k(4,(0,t.Inject)(t.IUniverInstanceService))],V);let H=class extends t.Disposable{constructor(e,t){super(),this._commandService=e,this._docQuickInsertPopupService=t,this._initCommands(),this._initComponents(),this._initMenus()}_initCommands(){[m,N,P].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initComponents(){[{keyword:`/`,menus$:(0,o.of)(re),preconditions:e=>{var t;return((t=e.range.startNodePosition)==null?void 0:t.glyph)===0}}].forEach(e=>{this.disposeWithMe(this._docQuickInsertPopupService.registerPopup(e))})}_initMenus(){}};H=A([k(0,t.ICommandService),k(1,(0,t.Inject)(M))],H);var ae=`@univerjs/docs-quick-insert-ui`,oe=`1.0.0-beta.0`;let U={};function W({ref:e,...t}){let{icon:n,id:r,className:i,extend:a,...o}=t,c=`univerjs-icon univerjs-icon-${r} ${i||``}`.trim(),l=(0,s.useRef)(`_${le()}`);return G(n,`${r}`,{defIds:n.defIds,idSuffix:l.current},{ref:e,className:c,...o},a)}function G(e,t,n,r,i){return(0,s.createElement)(e.tag,{key:t,...se(e,n,i),...r},(ce(e,n).children||[]).map((r,a)=>G(r,`${t}-${e.tag}-${a}`,n,void 0,i)))}function se(e,t,n){let r={...e.attrs};n!=null&&n.colorChannel1&&r.fill===`colorChannel1`&&(r.fill=n.colorChannel1),n!=null&&n.colorChannel1&&r.stroke===`colorChannel1`&&(r.stroke=n.colorChannel1),e.tag===`mask`&&r.id&&(r.id+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{e===`mask`&&typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});let{defIds:i}=t;return!i||i.length===0?r:(e.tag===`use`&&r[`xlink:href`]&&(r[`xlink:href`]+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))}),r)}function ce(e,t){var n;let{defIds:r}=t;return!r||r.length===0?e:e.tag===`defs`&&(n=e.children)!=null&&n.length?{...e,children:e.children.map(e=>typeof e.attrs.id==`string`&&r&&r.includes(e.attrs.id)?{...e,attrs:{...e.attrs,id:e.attrs.id+t.idSuffix}}:e)}:e}function le(){return Math.random().toString(36).substring(2,8)}W.displayName=`UniverIcon`;let ue={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M1.01953 3.13985C1.01953 2.77258 1.31726 2.47485 1.68453 2.47485H2.73713C3.1044 2.47485 3.40213 2.77258 3.40213 3.13985C3.40213 3.50712 3.1044 3.80485 2.73713 3.80485H1.68453C1.31726 3.80485 1.01953 3.50712 1.01953 3.13985Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M4.17734 3.13985C4.17734 2.77258 4.47507 2.47485 4.84234 2.47485H6.94754C7.31481 2.47485 7.61254 2.77258 7.61254 3.13985C7.61254 3.50712 7.31481 3.80485 6.94754 3.80485H4.84234C4.47507 3.80485 4.17734 3.50712 4.17734 3.13985Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M8.38775 3.13985C8.38775 2.77258 8.68548 2.47485 9.05275 2.47485H11.158C11.5252 2.47485 11.823 2.77258 11.823 3.13985C11.823 3.50712 11.5252 3.80485 11.158 3.80485H9.05275C8.68548 3.80485 8.38775 3.50712 8.38775 3.13985Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M12.5982 3.13985C12.5982 2.77258 12.8959 2.47485 13.2632 2.47485H14.3158C14.683 2.47485 14.9808 2.77258 14.9808 3.13985C14.9808 3.50712 14.683 3.80485 14.3158 3.80485H13.2632C12.8959 3.80485 12.5982 3.50712 12.5982 3.13985Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M1.01953 7.99972C1.01953 7.63245 1.31726 7.33472 1.68453 7.33472H14.3158C14.683 7.33472 14.9808 7.63245 14.9808 7.99972C14.9808 8.36699 14.683 8.66472 14.3158 8.66472H1.68453C1.31726 8.66472 1.01953 8.36699 1.01953 7.99972Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M1.68453 12.1951C1.31726 12.1951 1.01953 12.4928 1.01953 12.8601C1.01953 13.2273 1.31726 13.5251 1.68453 13.5251H2.73713C3.1044 13.5251 3.40213 13.2273 3.40213 12.8601C3.40213 12.4928 3.1044 12.1951 2.73713 12.1951H1.68453Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M4.84234 12.1951C4.47507 12.1951 4.17734 12.4928 4.17734 12.8601C4.17734 13.2273 4.47507 13.5251 4.84234 13.5251H6.94754C7.31481 13.5251 7.61254 13.2273 7.61254 12.8601C7.61254 12.4928 7.31481 12.1951 6.94754 12.1951H4.84234Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M9.05275 12.1951C8.68548 12.1951 8.38775 12.4928 8.38775 12.8601C8.38775 13.2273 8.68548 13.5251 9.05275 13.5251H11.158C11.5252 13.5251 11.823 13.2273 11.823 12.8601C11.823 12.4928 11.5252 12.1951 11.158 12.1951H9.05275Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M13.2632 12.1951C12.8959 12.1951 12.5982 12.4928 12.5982 12.8601C12.5982 13.2273 12.8959 13.5251 13.2632 13.5251H14.3158C14.683 13.5251 14.9808 13.2273 14.9808 12.8601C14.9808 12.4928 14.683 12.1951 14.3158 12.1951H13.2632Z`}}]},K=(0,s.forwardRef)(function(e,t){return(0,s.createElement)(W,Object.assign({},e,{id:`divider-icon`,ref:t,icon:ue}))});K.displayName=`DividerIcon`;let de={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M8.6 1.99991C8.60001 1.66854 8.33138 1.39991 8.00001 1.3999C7.66864 1.3999 7.40001 1.66853 7.4 1.9999L7.39996 7.3999H1.9999C1.66853 7.3999 1.3999 7.66853 1.3999 7.9999C1.3999 8.33127 1.66853 8.5999 1.9999 8.5999H7.39995L7.3999 13.9999C7.3999 14.3313 7.66853 14.5999 7.9999 14.5999C8.33127 14.5999 8.5999 14.3313 8.5999 13.9999L8.59995 8.5999H13.9999C14.3313 8.5999 14.5999 8.33127 14.5999 7.9999C14.5999 7.66853 14.3313 7.3999 13.9999 7.3999H8.59996L8.6 1.99991Z`}}]},q=(0,s.forwardRef)(function(e,t){return(0,s.createElement)(W,Object.assign({},e,{id:`increase-icon`,ref:t,icon:de}))});q.displayName=`IncreaseIcon`;let fe={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 17 16`,width:`1em`,height:`1em`},children:[{tag:`g`,attrs:{fill:`currentColor`,clipPath:`url(#text-icon_clip0_1293_26)`},children:[{tag:`path`,attrs:{d:`M2.22891 2.07227C1.89754 2.07227 1.62891 2.34089 1.62891 2.67227C1.62891 3.00364 1.89754 3.27227 2.22891 3.27227H6.29541V14.0056C6.29541 14.337 6.56404 14.6056 6.89541 14.6056C7.22678 14.6056 7.49541 14.337 7.49541 14.0056V3.27227H11.5622C11.8936 3.27227 12.1622 3.00364 12.1622 2.67227C12.1622 2.34089 11.8936 2.07227 11.5622 2.07227H2.22891Z`}},{tag:`path`,attrs:{d:`M10.2289 6.40552C9.89754 6.40552 9.62891 6.67415 9.62891 7.00552C9.62891 7.33689 9.89754 7.60552 10.2289 7.60552H12.2954V14.0055C12.2954 14.3369 12.564 14.6055 12.8954 14.6055C13.2268 14.6055 13.4954 14.3369 13.4954 14.0055V7.60552H15.5622C15.8936 7.60552 16.1622 7.33689 16.1622 7.00552C16.1622 6.67415 15.8936 6.40552 15.5622 6.40552H10.2289Z`}}]},{tag:`defs`,attrs:{},children:[{tag:`clipPath`,attrs:{id:`text-icon_clip0_1293_26`},children:[{tag:`path`,attrs:{fill:`white`,d:`M0 0H16V16H0z`,transform:`translate(.9)`}}]}]}],defIds:[`text-icon_clip0_1293_26`]},J=(0,s.forwardRef)(function(e,t){return(0,s.createElement)(W,Object.assign({},e,{id:`text-icon`,ref:t,icon:fe}))});J.displayName=`TextIcon`;let Y=class extends t.Disposable{get popup(){return this._popup$.value}constructor(e,t,n,r){super(),this._context=e,this._docEventManagerService=t,this._docQuickInsertPopupService=n,this._docCanvasPopManagerService=r,O(this,`_popup$`,new o.BehaviorSubject(null)),O(this,`popup$`,this._popup$.asObservable()),this._init()}_init(){this.disposeWithMe((0,o.combineLatest)([this._docEventManagerService.hoverParagraphLeftRealTime$,this._docEventManagerService.hoverParagraphRealTime$]).subscribe(([e,t])=>{let n=e??t,r=this._context.unit.getDisabled();if(!n||r){this._hideMenu(!0);return}if(n.paragraphStart===n.paragraphEnd){var i;if(this._docQuickInsertPopupService.editPopup||n.startIndex===((i=this.popup)==null?void 0:i.startIndex))return;this._hideMenu(!0);let e=this._docCanvasPopManagerService.attachPopupToRect(n.firstLine,{componentKey:X,direction:`left-center`},this._context.unit.getUnitId());this._popup$.next({startIndex:n.startIndex,disposable:e})}else this._hideMenu(!0)}))}_hideMenu(e){this._docQuickInsertPopupService.editPopup||this.popup&&(e||this.popup.disposable.canDispose())&&(this.popup.disposable.dispose(),this._popup$.next(null))}};Y=A([k(1,(0,t.Inject)(r.DocEventManagerService)),k(2,(0,t.Inject)(M)),k(3,(0,t.Inject)(r.DocCanvasPopManagerService))],Y);let X=`doc.quick-insert.button`,Z=({className:e=``})=>{let r=(0,i.useDependency)(M),u=(0,i.useDependency)(t.IUniverInstanceService),d=(0,i.useDependency)(a.IRenderManagerService),f=(0,i.useObservable)((0,s.useMemo)(()=>u.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_DOC),[u])),p=f&&d.getRenderUnitById(f.getUnitId()),m=p==null?void 0:p.with(Y),h=(0,i.useDependency)(i.ILayoutService),g=(0,i.useDependency)(n.DocSelectionManagerService),_=(0,i.useObservable)(r.editPopup$),v=(0,i.useEvent)(()=>{let e=m==null?void 0:m.popup;if(!e)return;let t=r.popups,n={keyword:``,menus$:(0,o.combineLatest)(t.map(e=>e.menus$)).pipe((0,o.map)(e=>e.flat()))};g.replaceDocRanges([{startOffset:e.startIndex,endOffset:e.startIndex}]),r.setInputOffset({start:e.startIndex-1,end:e.startIndex-1}),r.showPopup({popup:n,index:e.startIndex-1,unitId:(f==null?void 0:f.getUnitId())??``}),setTimeout(()=>{h.focus()})});return(0,c.jsx)(`div`,{className:(0,l.clsx)(`univer-mr-1 univer-flex univer-cursor-pointer univer-items-center univer-gap-2.5 univer-rounded-full univer-p-1.5 univer-shadow-sm hover:univer-bg-gray-100 dark:!univer-text-gray-200 dark:hover:!univer-bg-gray-700`,l.borderClassName,{"univer-bg-gray-100 dark:!univer-bg-gray-700":_,"univer-bg-white dark:!univer-bg-gray-900":!_},e),role:`button`,tabIndex:0,onClick:v,children:(0,c.jsx)(q,{className:`univer-text-gray-800 dark:!univer-text-gray-200`})})};Z.componentKey=X;let Q=class extends t.Disposable{constructor(e,t){super(),this._componentManager=e,this._iconManager=t,this._registerIcons(),this._registerComponents()}_registerIcons(){this.disposeWithMe(this._iconManager.register({DividerIcon:K,TextIcon:J}))}_registerComponents(){[[T.componentKey,T],[_.componentKey,_],[x.componentKey,x],[Z.componentKey,Z]].forEach(([e,t])=>{e&&this.disposeWithMe(this._componentManager.register(e,t))})}};Q=A([k(0,(0,t.Inject)(i.ComponentManager)),k(1,(0,t.Inject)(i.IconManager))],Q);let $=class extends t.Plugin{constructor(e=U,n,r,i){super(),this._config=e,this._injector=n,this._renderManagerSrv=r,this._configService=i;let{menu:a,...o}=(0,t.merge)({},U,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(`docs-quick-insert-ui.config`,o)}onStarting(){this._injector.add([Q]),this._injector.get(Q),[[H],[V],[M]].forEach(e=>this._injector.add(e)),this._injector.get(H)}onRendered(){this._injector.get(V),this._injector.get(M),[[Y]].forEach(e=>{this._renderManagerSrv.registerRenderModule(t.UniverInstanceType.UNIVER_DOC,e)})}};O($,`type`,t.UniverInstanceType.UNIVER_DOC),O($,`pluginName`,`DOC_QUICK_INSERT_UI_PLUGIN`),O($,`packageName`,ae),O($,`version`,oe),$=A([(0,t.DependentOn)(n.UniverDocsPlugin,f.UniverDrawingPlugin,a.UniverRenderEnginePlugin,d.UniverDocsDrawingPlugin,r.UniverDocsUIPlugin,p.UniverDrawingUIPlugin,u.UniverDocsDrawingUIPlugin),k(1,(0,t.Inject)(t.Injector)),k(2,(0,t.Inject)(a.IRenderManagerService)),k(3,t.IConfigService)],$),Object.defineProperty(e,"DocQuickInsertPopupService",{enumerable:!0,get:function(){return M}}),Object.defineProperty(e,"DocQuickInsertTriggerController",{enumerable:!0,get:function(){return V}}),Object.defineProperty(e,"DocQuickInsertUIController",{enumerable:!0,get:function(){return H}}),e.KeywordInputPlaceholderComponentKey=h,e.QuickInsertPlaceholderComponentKey=b,Object.defineProperty(e,"UniverDocsQuickInsertUIPlugin",{enumerable:!0,get:function(){return $}})});
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?module.exports=t():typeof define==`function`&&define.amd?define([],t):(e=typeof globalThis<`u`?globalThis:e||self,e.UniverDocsQuickInsertUiZhHK=t())})(this,function(){return{"docs-quick-insert-ui":{menu:{numberedList:`有序列表`,bulletedList:`無序列表`,divider:`分隔線`,text:`文本`,table:`表格`,image:`圖片`},group:{basics:`基礎`},placeholder:`無結果`,keywordInputPlaceholder:`輸入關鍵詞`}}});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?module.exports=t():typeof define==`function`&&define.amd?define([],t):(e=typeof globalThis<`u`?globalThis:e||self,e.UniverDocsQuickInsertUiZhHK=t())})(this,function(){return{"docs-quick-insert-ui":{menu:{numberedList:`有序列表`,bulletedList:`無序列表`,divider:`分隔線`,text:`文字`,table:`表格`,image:`圖片`},group:{basics:`基礎`},placeholder:`無結果`,keywordInputPlaceholder:`輸入關鍵詞`}}});
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?module.exports=t():typeof define==`function`&&define.amd?define([],t):(e=typeof globalThis<`u`?globalThis:e||self,e.UniverDocsQuickInsertUiZhTW=t())})(this,function(){return{"docs-quick-insert-ui":{menu:{numberedList:`有序列表`,bulletedList:`無序列表`,divider:`分隔線`,text:`文本`,table:`表格`,image:`圖片`},group:{basics:`基礎`},placeholder:`無結果`,keywordInputPlaceholder:`輸入關鍵詞`}}});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?module.exports=t():typeof define==`function`&&define.amd?define([],t):(e=typeof globalThis<`u`?globalThis:e||self,e.UniverDocsQuickInsertUiZhTW=t())})(this,function(){return{"docs-quick-insert-ui":{menu:{numberedList:`有序列表`,bulletedList:`無序列表`,divider:`分隔線`,text:`文字`,table:`表格`,image:`圖片`},group:{basics:`基礎`},placeholder:`無結果`,keywordInputPlaceholder:`輸入關鍵詞`}}});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/docs-quick-insert-ui",
3
- "version": "1.0.0-alpha.8",
3
+ "version": "1.0.0-beta.0",
4
4
  "private": false,
5
5
  "description": "Quick insert UI integration for Univer Docs.",
6
6
  "author": "DreamNum Co., Ltd. <developer@univer.ai>",
@@ -58,26 +58,26 @@
58
58
  "rxjs": ">=7.0.0"
59
59
  },
60
60
  "dependencies": {
61
- "@univerjs/icons": "1.34.0",
62
- "@univerjs/core": "1.0.0-alpha.8",
63
- "@univerjs/docs-drawing": "1.0.0-alpha.8",
64
- "@univerjs/docs-drawing-ui": "1.0.0-alpha.8",
65
- "@univerjs/docs-ui": "1.0.0-alpha.8",
66
- "@univerjs/drawing": "1.0.0-alpha.8",
67
- "@univerjs/drawing-ui": "1.0.0-alpha.8",
68
- "@univerjs/ui": "1.0.0-alpha.8",
69
- "@univerjs/engine-render": "1.0.0-alpha.8",
70
- "@univerjs/design": "1.0.0-alpha.8",
71
- "@univerjs/docs": "1.0.0-alpha.8"
61
+ "@univerjs/icons": "1.35.0",
62
+ "@univerjs/core": "1.0.0-beta.0",
63
+ "@univerjs/design": "1.0.0-beta.0",
64
+ "@univerjs/docs-drawing": "1.0.0-beta.0",
65
+ "@univerjs/docs": "1.0.0-beta.0",
66
+ "@univerjs/drawing": "1.0.0-beta.0",
67
+ "@univerjs/docs-ui": "1.0.0-beta.0",
68
+ "@univerjs/docs-drawing-ui": "1.0.0-beta.0",
69
+ "@univerjs/engine-render": "1.0.0-beta.0",
70
+ "@univerjs/drawing-ui": "1.0.0-beta.0",
71
+ "@univerjs/ui": "1.0.0-beta.0"
72
72
  },
73
73
  "devDependencies": {
74
- "postcss": "^8.5.23",
74
+ "postcss": "^8.5.25",
75
75
  "react": "18.3.1",
76
76
  "rxjs": "^7.8.2",
77
77
  "tailwindcss": "3.4.18",
78
78
  "typescript": "^6.0.3",
79
79
  "vitest": "^4.1.10",
80
- "@univerjs-infra/shared": "1.0.0-alpha.8"
80
+ "@univerjs-infra/shared": "1.0.0-beta.0"
81
81
  },
82
82
  "scripts": {
83
83
  "test": "vitest run",