oolong-engine 0.0.2-t.5 → 0.0.2-t.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/dist/ability/checkbox/CheckboxWorker.d.ts +1 -1
  2. package/dist/ability/create/handler/DocCreateHandler.d.ts +7 -0
  3. package/dist/ability/delete/DeleteWorker.d.ts +1 -1
  4. package/dist/ability/doc/DocContainerChildrenSortPosWorker.d.ts +8 -0
  5. package/dist/ability/doc/DocContainerConstants.d.ts +7 -0
  6. package/dist/ability/doc/DocContainerCreator.d.ts +23 -0
  7. package/dist/ability/line/BatchLineTextWorker.d.ts +1 -1
  8. package/dist/ability/line/CollectRelatedLineWorker.d.ts +8 -0
  9. package/dist/ability/line/LayoutWorker.d.ts +2 -1
  10. package/dist/ability/line/LineTextWorker.d.ts +1 -1
  11. package/dist/ability/line/handler/AbsLineLayoutHandler.d.ts +2 -1
  12. package/dist/ability/line/handler/CurveLayoutHandler.d.ts +1 -1
  13. package/dist/ability/line/handler/SimpleLineLayoutHandler.d.ts +1 -1
  14. package/dist/ability/line/handler/polyline/PolyLineLayoutHandler.d.ts +1 -1
  15. package/dist/ability/textInput/textFont/AbsTextFontWorker.d.ts +2 -0
  16. package/dist/ability/textInput/textFont/TextFontSizeWorker.d.ts +6 -0
  17. package/dist/ability/textInput/textParagraphPrefix/TextNormalWorker.d.ts +3 -1
  18. package/dist/ability/textInput/textParagraphPrefix/TextOrderWorker.d.ts +3 -1
  19. package/dist/ability/textInput/textParagraphPrefix/TextParaPrefixWorker.d.ts +2 -1
  20. package/dist/ability/textInput/textParagraphPrefix/TextQuoteWorker.d.ts +3 -1
  21. package/dist/ability/textInput/textParagraphPrefix/TextUnOrderWorker.d.ts +3 -1
  22. package/dist/action/executor/afterInterceptor/slide/AfterSlideCoverUpdateInterceptor.d.ts +15 -0
  23. package/dist/action/executor/beforeInterceptor/slide/SlideCoverUpdateInterceptor.d.ts +3 -4
  24. package/dist/action/render/IFocusInfo.d.ts +5 -0
  25. package/dist/action/render/RenderManager.d.ts +5 -7
  26. package/dist/action/render/drawMode/AbsDrawMode.d.ts +6 -0
  27. package/dist/action/render/drawMode/DocEditDrawMode.d.ts +7 -0
  28. package/dist/action/render/drawMode/NormalDrawMode.d.ts +7 -0
  29. package/dist/action/render/drawMode/SlideEditDrawMode.d.ts +7 -0
  30. package/dist/action/render/drawMode/SlidePlayingDrawMode.d.ts +7 -0
  31. package/dist/app/AppEventContext.d.ts +4 -1
  32. package/dist/app/OolongApp.d.ts +2 -0
  33. package/dist/app/api/OolongAPI.d.ts +3 -0
  34. package/dist/app/api/module/CreateAPI.d.ts +4 -0
  35. package/dist/app/api/module/doc/DocAPI.d.ts +8 -0
  36. package/dist/app/api/module/text/TextAPI.d.ts +11 -0
  37. package/dist/app/docModeManager/DocModeSwitchContext.d.ts +2 -0
  38. package/dist/app/docModeManager/switchHandler/AbsSwitchHandler.d.ts +2 -2
  39. package/dist/app/docModeManager/switchHandler/board/BoardToDocEditHandler.d.ts +6 -0
  40. package/dist/app/docModeManager/switchHandler/board/BoardToSlideEditHandler.d.ts +2 -2
  41. package/dist/app/docModeManager/switchHandler/board/BoardToSlidePlayHandler.d.ts +2 -2
  42. package/dist/app/docModeManager/switchHandler/docEdit/DocEditToBoardHandler.d.ts +6 -0
  43. package/dist/app/docModeManager/switchHandler/slide-edit/SlideEditToBoardHandler.d.ts +2 -2
  44. package/dist/app/docModeManager/switchHandler/slide-play/SlidePlayToBoardHandler.d.ts +2 -2
  45. package/dist/app/docState/DocMode.d.ts +2 -1
  46. package/dist/app/docState/DocModeStatus.d.ts +8 -0
  47. package/dist/app/docState/DocState.d.ts +5 -0
  48. package/dist/app/docState/SlideStatus.d.ts +1 -1
  49. package/dist/auxiliary/graphics/AuxiliaryType.d.ts +9 -1
  50. package/dist/auxiliary/graphics/hover/DocContainerTextHoverBound.d.ts +15 -0
  51. package/dist/auxiliary/graphics/select/DocContainerTextSelectBound.d.ts +15 -0
  52. package/dist/common/detect/DetectorEnum.d.ts +2 -1
  53. package/dist/doc/DocManager.d.ts +5 -0
  54. package/dist/engine.js +8957 -7341
  55. package/dist/engine.umd.cjs +18 -18
  56. package/dist/graphics/OolongDocContainer.d.ts +16 -0
  57. package/dist/graphics/OolongNode.d.ts +2 -0
  58. package/dist/graphics/line/LineIntersectionUtils.d.ts +1 -1
  59. package/dist/graphics/line/arrow/AbsArrowDrawer.d.ts +1 -1
  60. package/dist/graphics/line/arrow/CircleArrowDrawer.d.ts +1 -1
  61. package/dist/graphics/line/arrow/DiamondArrowDrawer.d.ts +1 -1
  62. package/dist/graphics/line/arrow/EmptyCircleArrowDrawer.d.ts +1 -1
  63. package/dist/graphics/line/arrow/EmptyDiamondArrowDrawer.d.ts +1 -1
  64. package/dist/graphics/line/arrow/EmptyTriangleArrowDrawer.d.ts +1 -1
  65. package/dist/graphics/line/arrow/SimpleArrowDrawer.d.ts +1 -1
  66. package/dist/graphics/line/arrow/TriangleArrowDrawer.d.ts +1 -1
  67. package/dist/graphics/props/DocProps.d.ts +11 -0
  68. package/dist/graphics/props/PropType.d.ts +2 -1
  69. package/dist/graphics/utils/GraphicUtils.d.ts +21 -6
  70. package/dist/idl/NodeType.d.ts +1 -0
  71. package/dist/idl/capInfo/ICapInfo.d.ts +2 -0
  72. package/dist/idl/capInfo/IDocProps.d.ts +3 -0
  73. package/dist/index.css +1 -1
  74. package/dist/plugin-copy-paste/copy-paste/paste/img/ImgPasteHandler.d.ts +27 -0
  75. package/dist/plugin-hotkey/hotkey/normal/DeleteKey.d.ts +1 -1
  76. package/dist/plugin-hotkey/hotkey/normal/move/ArrowDownKey.d.ts +2 -0
  77. package/dist/plugin-hotkey/hotkey/normal/move/ArrowLeftKey.d.ts +2 -0
  78. package/dist/plugin-hotkey/hotkey/normal/move/ArrowRightKey.d.ts +2 -0
  79. package/dist/plugin-hotkey/hotkey/normal/move/ArrowUpKey.d.ts +2 -0
  80. package/dist/plugin-hotkey/hotkey/normal/move/DocContainerArrowWorker.d.ts +19 -0
  81. package/dist/plugin-hotkey/hotkey/text/AbsArrowKey.d.ts +33 -0
  82. package/dist/plugin-hotkey/hotkey/text/ArrowDownKey.d.ts +1 -0
  83. package/dist/plugin-hotkey/hotkey/text/ArrowLeftKey.d.ts +1 -0
  84. package/dist/plugin-hotkey/hotkey/text/ArrowRightKey.d.ts +1 -0
  85. package/dist/plugin-hotkey/hotkey/text/ArrowUpKey.d.ts +1 -0
  86. package/dist/plugin-hotkey/hotkey/text/deleteKey/DeleteHandler.d.ts +17 -0
  87. package/dist/plugin-hotkey/hotkey/text/deleteKey/DocContainerDeleteHandler.d.ts +26 -0
  88. package/dist/plugin-hotkey/hotkey/text/deleteKey/NormalDeleteHandler.d.ts +13 -0
  89. package/dist/plugin-hotkey/hotkey/text/deleteKey/TextDeleteKey.d.ts +13 -0
  90. package/dist/plugin-hotkey/hotkey/text/deleteKey/index.d.ts +4 -0
  91. package/dist/plugin-hotkey/hotkey/text/enterKey/DocContainerEnterHandler.d.ts +16 -0
  92. package/dist/plugin-hotkey/hotkey/text/enterKey/DocContainerEnterStep.d.ts +48 -0
  93. package/dist/plugin-hotkey/hotkey/text/enterKey/DocContainerTextSplitter.d.ts +18 -0
  94. package/dist/plugin-hotkey/hotkey/text/enterKey/EnterHandler.d.ts +15 -0
  95. package/dist/plugin-hotkey/hotkey/text/enterKey/EnterHotKey.d.ts +13 -0
  96. package/dist/plugin-hotkey/hotkey/text/enterKey/ListLevelDecreaseHelper.d.ts +29 -0
  97. package/dist/plugin-hotkey/hotkey/text/enterKey/NormalEnterHandler.d.ts +16 -0
  98. package/dist/plugin-hotkey/hotkey/text/enterKey/index.d.ts +7 -0
  99. package/dist/plugin-hotkey/hotkey/text/enterKey/steps/AdjustSiblingsStep.d.ts +9 -0
  100. package/dist/plugin-hotkey/hotkey/text/enterKey/steps/CreateNewNodeStep.d.ts +13 -0
  101. package/dist/plugin-hotkey/hotkey/text/enterKey/steps/ExpandContainerStep.d.ts +8 -0
  102. package/dist/plugin-hotkey/hotkey/text/enterKey/steps/FocusNewNodeStep.d.ts +7 -0
  103. package/dist/plugin-hotkey/hotkey/text/enterKey/steps/UpdateChildrenStep.d.ts +7 -0
  104. package/dist/plugin-hotkey/hotkey/text/enterKey/steps/UpdateCurrentNodeStep.d.ts +8 -0
  105. package/dist/plugin-hotkey/hotkey/text/enterKey/steps/index.d.ts +6 -0
  106. package/dist/plugin-hotkey/index.d.ts +2 -2
  107. package/dist/plugin-pointer/interact/default/click/handler/ClickDocContainerTextHandler.d.ts +17 -0
  108. package/dist/plugin-pointer/interact/default/click/handler/ClickTextHandler.d.ts +3 -2
  109. package/dist/plugin-pointer/interact/default/click/handler/widget/CheckboxHandler.d.ts +1 -1
  110. package/dist/plugin-pointer/interact/default/create/normal/grab/handler/CreateUpDocHandler.d.ts +15 -0
  111. package/dist/plugin-pointer/interact/default/dbClick/handler/DBClickTextHandler.d.ts +3 -2
  112. package/dist/plugin-pointer/interact/default/dbClick/handler/DbCheckboxHandler.d.ts +1 -1
  113. package/dist/plugin-pointer/interact/default/dragSlide/DragSlideProcessor.d.ts +4 -0
  114. package/dist/plugin-pointer/interact/default/normal/hover/handler/HoverDocContainerTextHandler.d.ts +11 -0
  115. package/dist/plugin-pointer/interact/detector/DetectorResult.d.ts +2 -0
  116. package/dist/plugin-pointer/interact/detector/doc/DocParaDetector.d.ts +14 -0
  117. package/dist/preview/previewCreate/handler/PreviewDocHandler.d.ts +7 -0
  118. package/dist/select/status/single/SingleDocContainerTextStatusHandler.d.ts +11 -0
  119. package/dist/slide/SlideManager.d.ts +1 -1
  120. package/dist/slot/SlotKeyType.d.ts +2 -1
  121. package/dist/tool/ToolEnum.d.ts +2 -1
  122. package/dist/tool/ToolManager.d.ts +1 -1
  123. package/package.json +1 -2
  124. package/dist/plugin-hotkey/hotkey/text/EnterHotKey.d.ts +0 -14
  125. package/dist/plugin-hotkey/hotkey/text/TextDeleteKey.d.ts +0 -11
@@ -1,6 +1,6 @@
1
1
  import { InteractiveEvent } from "../../common";
2
2
  import { AppEventContext } from "../../app";
3
- import { OolongCheckbox } from "../../graphics/widget/checkbox/OolongCheckbox";
3
+ import type { OolongCheckbox } from "../../graphics/widget/checkbox/OolongCheckbox";
4
4
  export declare class CheckboxWorker {
5
5
  checkbox(node: OolongCheckbox, event: InteractiveEvent, ctx: AppEventContext): void;
6
6
  }
@@ -0,0 +1,7 @@
1
+ import { AbsCreateHandler } from "./AbsCreateHandler";
2
+ import { AppEventContext } from "../../../app";
3
+ import { IPoint } from "../../../idl";
4
+ import { AbsProps, GraphicNode } from "../../../graphics";
5
+ export declare class DocCreateHandler extends AbsCreateHandler {
6
+ makeupProps(ctx: AppEventContext, shapeCode: number, globalPos: IPoint, alpha: number, container?: GraphicNode): AbsProps[];
7
+ }
@@ -1,6 +1,6 @@
1
1
  import { AppEventContext } from "../../app";
2
2
  export declare class DeleteWorker {
3
- work(context: AppEventContext): void;
3
+ work(context: AppEventContext): boolean;
4
4
  deleteByIds(context: AppEventContext, ids: string[]): void;
5
5
  private addAllChildren;
6
6
  }
@@ -0,0 +1,8 @@
1
+ import { OolongDocContainer } from "@/graphics/OolongDocContainer";
2
+ import { AppEventContext } from "@/app";
3
+ import { UpdateNodeInfo } from "@/action";
4
+ export declare class DocContainerChildrenSortPosWorker {
5
+ work(index: number, docContainer: OolongDocContainer, ctx: AppEventContext, infos: UpdateNodeInfo[]): void;
6
+ private computeStartY;
7
+ private computeNodeGap;
8
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * DocContainer 布局常量
3
+ * 统一管理 DocContainer 内子节点的间距和布局相关常量
4
+ */
5
+ export declare const DOC_CHILD_GAP = 2;
6
+ export declare const DOC_CHILD_GAP_BEFORE_IMAGE = 5;
7
+ export declare const DOC_CHILD_GAP_AFTER_IMAGE = 5;
@@ -0,0 +1,23 @@
1
+ import { AppEventContext } from "../../app";
2
+ import { IPoint } from "../../idl";
3
+ import { AddNodeInfo } from "../../action";
4
+ import { GraphicNode } from "../../graphics";
5
+ export declare const DOC_CONTAINER_PADDING = 24;
6
+ export declare const DOC_CONTAINER_BUFFER = 16;
7
+ export declare const DOC_CONTAINER_DEFAULT_WIDTH = 595;
8
+ export declare const DOC_CONTAINER_DEFAULT_HEIGHT = 842;
9
+ export declare const DOC_CHILD_OFFSET: number;
10
+ /**
11
+ * DocContainer 创建工具类
12
+ * 负责创建 DocContainer 及其默认子节点
13
+ */
14
+ export declare class DocContainerCreator {
15
+ /**
16
+ * 创建 DocContainer 及其默认子节点的 AddNodeInfo 列表
17
+ * @param ctx 应用上下文
18
+ * @param globalPos 全局位置
19
+ * @param parent 父节点
20
+ * @returns AddNodeInfo 数组,第一个是容器,后续是子节点
21
+ */
22
+ static createDocContainerWithChildren(ctx: AppEventContext, globalPos: IPoint, parent: GraphicNode): AddNodeInfo[];
23
+ }
@@ -1,4 +1,4 @@
1
- import { OolongLine } from "../../graphics";
1
+ import type { OolongLine } from "../../graphics";
2
2
  import { AppEventContext } from "../../app";
3
3
  import { LineTextWorker } from "./LineTextWorker";
4
4
  export declare class BatchLineTextWorker {
@@ -0,0 +1,8 @@
1
+ import { GraphicNode, OolongLine } from "@/graphics";
2
+ import { NodeManager } from "@/application";
3
+ export declare class CollectRelatedLineWorker {
4
+ batchCollectNodeLinks(nodes: GraphicNode[], ctx: {
5
+ nodeManager: NodeManager;
6
+ }, linkLines: Set<OolongLine>): void;
7
+ private collectNodeLinks;
8
+ }
@@ -1,4 +1,5 @@
1
- import { GraphicNode, OolongLine } from "../../graphics";
1
+ import { GraphicNode } from "../../graphics";
2
+ import type { OolongLine } from "../../graphics";
2
3
  import { AppEventContext } from "../../app";
3
4
  import { AbsLineLayoutHandler } from "./handler/AbsLineLayoutHandler";
4
5
  import { IPoint } from "../../idl";
@@ -1,4 +1,4 @@
1
- import { OolongLine } from "../../graphics";
1
+ import type { OolongLine } from "../../graphics";
2
2
  import { AppEventContext } from "../../app";
3
3
  export declare class LineTextWorker {
4
4
  t: number;
@@ -1,8 +1,9 @@
1
- import { GraphicNode, OolongLine } from "../../../graphics/index";
1
+ import { GraphicNode } from "../../../graphics/index";
2
2
  import { AppEventContext } from "../../../app/index";
3
3
  import { UpdateNodeData } from "../../../action/index";
4
4
  import { IPoint } from "../../../idl/index";
5
5
  import { ConnectInfo } from "../../../graphics/base/NodeConnectEndType";
6
+ import type { OolongLine } from "../../../graphics/index";
6
7
  export declare abstract class AbsLineLayoutHandler {
7
8
  abstract enable(line: OolongLine): boolean;
8
9
  handle(line: OolongLine, ctx: AppEventContext): UpdateNodeData;
@@ -1,5 +1,5 @@
1
1
  import { AbsLineLayoutHandler } from "./AbsLineLayoutHandler";
2
- import { OolongLine } from "../../../graphics/index";
2
+ import type { OolongLine } from "../../../graphics/index";
3
3
  import { AppEventContext } from "../../../app/index";
4
4
  import { UpdateNodeData } from "../../../action/index";
5
5
  import { IPoint } from "../../../idl/index";
@@ -1,4 +1,4 @@
1
- import { OolongLine } from "../../../graphics/index";
1
+ import type { OolongLine } from "../../../graphics/index";
2
2
  import { AppEventContext } from "../../../app/index";
3
3
  import { AbsLineLayoutHandler } from "./AbsLineLayoutHandler";
4
4
  import { IPoint } from "../../../idl/index";
@@ -1,5 +1,5 @@
1
1
  import { AbsLineLayoutHandler } from "../AbsLineLayoutHandler";
2
- import { OolongLine } from "../../../../graphics";
2
+ import type { OolongLine } from "../../../../graphics";
3
3
  import { AppEventContext } from "../../../../app";
4
4
  import { AbsLayoutHandler } from "./handler/AbsLayoutHandler";
5
5
  import { TopLayoutHandler } from "./handler/TopLayoutHandler";
@@ -8,6 +8,8 @@ export declare abstract class AbsTextFontWorker {
8
8
  protected abstract richStyle(prop: any): Record<string, string>;
9
9
  protected abstract textProp(prop: any): Partial<TextProps>;
10
10
  changeFontProp(prop: any, context: AppEventContext): void;
11
+ changeFontPropByIds(prop: any, idList: string[], context: AppEventContext): void;
12
+ protected changeFontPropForIds(prop: any, context: AppEventContext, ids: string[]): void;
11
13
  protected changeFontPropForWhole(prop: any, context: AppEventContext): void;
12
14
  protected changeFontPropBySelection(prop: any, editInfo: EditTextInfo, selection: TextSelectionInfo, context: AppEventContext): void;
13
15
  }
@@ -6,9 +6,15 @@ import { EditTextInfo } from "../../../input/EditTextInfo";
6
6
  import { TextSelectionInfo } from "../../../input/selection/TextSelectionInfo";
7
7
  export declare class TextFontSizeWorker extends AbsTextFontWorker {
8
8
  protected editTextWorker: EditTextWorker;
9
+ private docPosWorker;
9
10
  private fontSizeHandlers;
10
11
  richStyle(prop: any): Record<string, string>;
11
12
  textProp(prop: any): Partial<TextProps>;
12
13
  protected changeFontPropBySelection(fontSize: number, editInfo: EditTextInfo, selection: TextSelectionInfo, context: AppEventContext): void;
13
14
  protected changeFontPropForWhole(fontSize: number, context: AppEventContext): void;
15
+ protected changeFontPropForIds(fontSize: number, context: AppEventContext, ids: string[]): void;
16
+ /**
17
+ * 调整 DocContainer 内后续兄弟节点的位置
18
+ */
19
+ private adjustDocContainerSiblings;
14
20
  }
@@ -1,4 +1,5 @@
1
- import { GraphicNode, OolongLine, OolongNode } from "../../../graphics";
1
+ import { GraphicNode, OolongNode } from "../../../graphics";
2
+ import type { OolongLine } from "../../../graphics";
2
3
  import { AppEventContext } from "../../../app";
3
4
  import { UpdateNodeInfo } from "../../../action";
4
5
  import { EditTextInfo } from "../../../input/EditTextInfo";
@@ -8,6 +9,7 @@ import { TextSelectionInfo } from "../../../input/selection/TextSelectionInfo";
8
9
  */
9
10
  export declare class TextNormalWorker {
10
11
  batchNodesToNormalByNotEditing(context: AppEventContext): void;
12
+ batchNodesToNormalByIds(idList: string[], context: AppEventContext): void;
11
13
  toNormalBySelection(node: GraphicNode, selection: TextSelectionInfo, context: AppEventContext): void;
12
14
  toNormalByEditing(node: GraphicNode, editTextInfo: EditTextInfo, context: AppEventContext): void;
13
15
  toNormalByNotEditing(node: OolongNode | OolongLine): UpdateNodeInfo | null;
@@ -1,4 +1,5 @@
1
- import { GraphicNode, OolongLine, OolongNode } from "../../../graphics";
1
+ import { GraphicNode, OolongNode } from "../../../graphics";
2
+ import type { OolongLine } from "../../../graphics";
2
3
  import { AppEventContext } from "../../../app";
3
4
  import { UpdateNodeInfo } from "../../../action";
4
5
  import { EditTextInfo } from "../../../input/EditTextInfo";
@@ -8,6 +9,7 @@ import { TextSelectionInfo } from "../../../input/selection/TextSelectionInfo";
8
9
  */
9
10
  export declare class TextOrderWorker {
10
11
  batchNodesToOrderByNotEditing(context: AppEventContext): void;
12
+ batchNodesToOrderByIds(idList: string[], context: AppEventContext): void;
11
13
  toOrderBySelection(node: GraphicNode, selection: TextSelectionInfo, context: AppEventContext): void;
12
14
  toOrderByEditing(node: GraphicNode, editTextInfo: EditTextInfo, context: AppEventContext): void;
13
15
  private toOrderWithPara;
@@ -1,4 +1,5 @@
1
- import { OolongLine, OolongNode } from "../../../graphics";
1
+ import { OolongNode } from "../../../graphics";
2
+ import type { OolongLine } from "../../../graphics";
2
3
  import { AppEventContext } from "../../../app";
3
4
  import { UpdateNodeInfo } from "../../../action";
4
5
  export declare class TextParaPrefixWorker {
@@ -1,4 +1,5 @@
1
- import { GraphicNode, OolongLine, OolongNode } from "../../../graphics";
1
+ import { GraphicNode, OolongNode } from "../../../graphics";
2
+ import type { OolongLine } from "../../../graphics";
2
3
  import { AppEventContext } from "../../../app";
3
4
  import { UpdateNodeInfo } from "../../../action";
4
5
  import { EditTextInfo } from "../../../input/EditTextInfo";
@@ -8,6 +9,7 @@ import { TextSelectionInfo } from "../../../input/selection/TextSelectionInfo";
8
9
  */
9
10
  export declare class TextQuoteWorker {
10
11
  batchNodesToQuoteByNotEditing(context: AppEventContext): void;
12
+ batchNodesToQuoteByIds(idList: string[], context: AppEventContext): void;
11
13
  toQuoteBySelection(node: GraphicNode, selection: TextSelectionInfo, context: AppEventContext): void;
12
14
  toQuoteByEditing(node: GraphicNode, editTextInfo: EditTextInfo, context: AppEventContext): void;
13
15
  private toQuoteWithPara;
@@ -1,4 +1,5 @@
1
- import { GraphicNode, OolongLine, OolongNode } from "../../../graphics";
1
+ import { GraphicNode, OolongNode } from "../../../graphics";
2
+ import type { OolongLine } from "../../../graphics";
2
3
  import { AppEventContext } from "../../../app";
3
4
  import { UpdateNodeInfo } from "../../../action";
4
5
  import { EditTextInfo } from "../../../input/EditTextInfo";
@@ -8,6 +9,7 @@ import { TextSelectionInfo } from "../../../input/selection/TextSelectionInfo";
8
9
  */
9
10
  export declare class TextUnOrderWorker {
10
11
  batchNodesToUnOrderByNotEditing(context: AppEventContext): void;
12
+ batchNodesToUnOrderByIds(idList: string[], context: AppEventContext): void;
11
13
  toUnOrderBySelection(node: GraphicNode, selection: TextSelectionInfo, context: AppEventContext): void;
12
14
  toUnOrderByEditing(node: GraphicNode, editTextInfo: EditTextInfo, context: AppEventContext): void;
13
15
  private toUnOrderWithPara;
@@ -0,0 +1,15 @@
1
+ import { IActionLog } from "../../../log/IActionLog";
2
+ import { AppEventContext } from "../../../../app";
3
+ import { AbsInterceptor } from "../../beforeInterceptor/AbsInterceptor";
4
+ /**
5
+ * 在更新节点,新增节点后更新幻灯片封面
6
+ */
7
+ export declare class AfterSlideCoverUpdateInterceptor extends AbsInterceptor {
8
+ private slideContainer;
9
+ enable(actionLog: IActionLog, ctx: AppEventContext): boolean;
10
+ handle(actionLog: IActionLog, ctx: AppEventContext): void;
11
+ private handleUpdateLog;
12
+ private judgeSlideEditCurrent;
13
+ private judgeOnlyPosChange;
14
+ private handleAddLog;
15
+ }
@@ -1,13 +1,12 @@
1
1
  import { IActionLog } from "../../../log/IActionLog";
2
2
  import { AbsInterceptor } from "../AbsInterceptor";
3
3
  import { AppEventContext } from "../../../../app";
4
+ /**
5
+ * 在删除节点前更新幻灯片封面
6
+ */
4
7
  export declare class SlideCoverUpdateInterceptor extends AbsInterceptor {
5
8
  private slideContainer;
6
9
  enable(actionLog: IActionLog, ctx: AppEventContext): boolean;
7
10
  handle(actionLog: IActionLog, ctx: AppEventContext): void;
8
- private handleUpdateLog;
9
- private judgeSlideEditCurrent;
10
- private judgeOnlyPosChange;
11
- private handleAddLog;
12
11
  private handleRemoveLog;
13
12
  }
@@ -0,0 +1,5 @@
1
+ import { GraphicNode } from "@/graphics/node/GraphicNode";
2
+ export interface IFocusInfo {
3
+ focusNode: GraphicNode;
4
+ drawNodes: GraphicNode[];
5
+ }
@@ -1,11 +1,11 @@
1
1
  import { GMLRender, NodeManager } from "../../application";
2
2
  import { AuxiliaryManager } from "../../auxiliary";
3
- import { GraphicNode } from "../../graphics";
4
3
  import { IRectNode, RectNode } from "../../common";
5
4
  import { SlotManager } from "../../slot";
6
5
  import { ZoomWorker } from "./zoom/ZoomWorker";
7
6
  import { ExportWorker } from "./export/ExportWorker";
8
7
  import { IPoint } from "../../idl";
8
+ import { AbsDrawMode } from "@/action/render/drawMode/AbsDrawMode";
9
9
  export declare class RenderManager {
10
10
  gmlRender: GMLRender;
11
11
  nodeManager: NodeManager;
@@ -13,13 +13,14 @@ export declare class RenderManager {
13
13
  slotManager: SlotManager;
14
14
  zoomWorker: ZoomWorker;
15
15
  exportWorker: ExportWorker;
16
+ drawModes: AbsDrawMode[];
16
17
  private working;
17
18
  contentDraw: boolean;
18
19
  auxiliaryDraw: boolean;
19
20
  /**
20
- * 聚焦节点,如果有聚焦节点会改变视图的渲染内容,只会绘制该聚焦节点以及其子节点
21
+ * 聚焦节点信息,如果有聚焦节点会改变视图的渲染内容,只会绘制该聚焦节点以及其子节点
21
22
  */
22
- focusId?: string;
23
+ focusId: string;
23
24
  constructor(gmlRender: GMLRender, nodeManager: NodeManager, auxiliaryManager: AuxiliaryManager, slotManager: SlotManager);
24
25
  getScale(): number;
25
26
  zoomScale(scale: number, globalPoint: IPoint): void;
@@ -33,10 +34,7 @@ export declare class RenderManager {
33
34
  addAuxiliaryDrawTask(): void;
34
35
  addContentRenderTask(): void;
35
36
  dirtyDraw(bounds: RectNode): void;
36
- private judgeFocusNode;
37
37
  tickerRun: () => void;
38
- drawInNormalMode: () => void;
39
- drawInFocusMode: (node: GraphicNode) => void;
40
- drawInPlayingMode: (node: GraphicNode) => void;
41
38
  private scrollTo;
39
+ private judgeFocusNode;
42
40
  }
@@ -0,0 +1,6 @@
1
+ import { GraphicNode } from "@/graphics";
2
+ import { RenderManager } from "@/action";
3
+ export declare abstract class AbsDrawMode {
4
+ abstract enable(focusNode: GraphicNode | null, renderManager: RenderManager): boolean;
5
+ abstract draw(node: GraphicNode, renderManager: RenderManager): void;
6
+ }
@@ -0,0 +1,7 @@
1
+ import { AbsDrawMode } from "@/action/render/drawMode/AbsDrawMode";
2
+ import { GraphicNode } from "@/graphics";
3
+ import { RenderManager } from "@/action";
4
+ export declare class DocEditDrawMode extends AbsDrawMode {
5
+ enable(focusNode: GraphicNode | null, renderManager: RenderManager): boolean;
6
+ draw(node: GraphicNode, renderManager: RenderManager): void;
7
+ }
@@ -0,0 +1,7 @@
1
+ import { GraphicNode } from "@/graphics";
2
+ import { RenderManager } from "@/action";
3
+ import { AbsDrawMode } from "@/action/render/drawMode/AbsDrawMode";
4
+ export declare class NormalDrawMode extends AbsDrawMode {
5
+ enable(focusNode: GraphicNode | null, renderManager: RenderManager): boolean;
6
+ draw(node: GraphicNode, renderManager: RenderManager): void;
7
+ }
@@ -0,0 +1,7 @@
1
+ import { GraphicNode } from "@/graphics";
2
+ import { RenderManager } from "@/action";
3
+ import { AbsDrawMode } from "@/action/render/drawMode/AbsDrawMode";
4
+ export declare class SlideEditDrawMode extends AbsDrawMode {
5
+ enable(focusNode: GraphicNode | null, renderManager: RenderManager): boolean;
6
+ draw(node: GraphicNode, renderManager: RenderManager): void;
7
+ }
@@ -0,0 +1,7 @@
1
+ import { GraphicNode } from "@/graphics";
2
+ import { RenderManager } from "@/action";
3
+ import { AbsDrawMode } from "@/action/render/drawMode/AbsDrawMode";
4
+ export declare class SlidePlayingDrawMode extends AbsDrawMode {
5
+ enable(focusNode: GraphicNode | null, renderManager: RenderManager): boolean;
6
+ draw(node: GraphicNode, renderManager: RenderManager): void;
7
+ }
@@ -26,6 +26,7 @@ import { CreateWorker } from "../ability/create/CreateWorker";
26
26
  import { WindowResizeWorker } from "../ability/resize/WindowResizeWorker";
27
27
  import { SlideManager } from "../slide/SlideManager";
28
28
  import { DocModeManager } from "./docModeManager/DocModeManager";
29
+ import { DocManager } from "@/doc/DocManager";
29
30
  export declare class AppEventContext {
30
31
  nodeManager: NodeManager;
31
32
  gmlRender: GMLRender;
@@ -46,11 +47,12 @@ export declare class AppEventContext {
46
47
  asyncRenderNodeManager: AsyncRenderNodeManager;
47
48
  cropManager: CropManager;
48
49
  slideManager: SlideManager;
50
+ docManager: DocManager;
49
51
  docModeManager: DocModeManager;
50
52
  alignPoint: IPoint | null;
51
53
  createWorker: CreateWorker;
52
54
  resizeWorker: WindowResizeWorker;
53
- constructor(nodeManager: NodeManager, gmlRender: GMLRender, detectors: Map<DetectorEnum, AbsDetector<any>>, toolManager: ToolManager, inputManager: InputManager, actionManager: ActionManager, renderManager: RenderManager, auxiliaryManager: AuxiliaryManager, docState: DocState, idGenerator: IdGenerator, cursorManager: CursorManager, previewManager: PreviewManager, resourceManager: ResourceManager, slotManager: SlotManager, asyncRenderNodeManager: AsyncRenderNodeManager, cropManager: CropManager, slideManager: SlideManager);
55
+ constructor(nodeManager: NodeManager, gmlRender: GMLRender, detectors: Map<DetectorEnum, AbsDetector<any>>, toolManager: ToolManager, inputManager: InputManager, actionManager: ActionManager, renderManager: RenderManager, auxiliaryManager: AuxiliaryManager, docState: DocState, idGenerator: IdGenerator, cursorManager: CursorManager, previewManager: PreviewManager, resourceManager: ResourceManager, slotManager: SlotManager, asyncRenderNodeManager: AsyncRenderNodeManager, cropManager: CropManager, slideManager: SlideManager, docManager: DocManager);
54
56
  detect<Type extends DetectorEnum>(type: Type, event: InteractiveEvent): DetectorResult[Type] | null;
55
57
  resize(): void;
56
58
  addOrUpdate<Prop>(type: AuxiliaryType, prop: Prop): void;
@@ -70,4 +72,5 @@ export declare class AppEventContext {
70
72
  * @param padding
71
73
  */
72
74
  focus(nodeId?: string, buffer?: number, padding?: number): void;
75
+ focusDoc(nodeId?: string, buffer?: number, padding?: number): void;
73
76
  }
@@ -20,6 +20,7 @@ import { OolongAIAPI } from "./ai-api/OolongAIAPI";
20
20
  import { AsyncRenderNodeManager } from "../asyncRender/AsyncRenderNodeManager";
21
21
  import { CropManager } from "../crop/CropManager";
22
22
  import { SlideManager } from "../slide/SlideManager";
23
+ import { DocManager } from "@/doc/DocManager";
23
24
  export declare class OolongApp {
24
25
  inputManager: InputManager;
25
26
  cursorManager: CursorManager;
@@ -39,6 +40,7 @@ export declare class OolongApp {
39
40
  resourceManager: ResourceManager;
40
41
  cropManager: CropManager;
41
42
  slideManager: SlideManager;
43
+ docManager: DocManager;
42
44
  appContext: AppEventContext;
43
45
  plugins: IPlugin[];
44
46
  api: OolongAPI;
@@ -11,6 +11,7 @@ import { PropChangeAPI } from "./module/propChange/PropChangeAPI";
11
11
  import { AlignAPI } from "./module/align/AlignAPI";
12
12
  import { TextAPI } from "./module/text/TextAPI";
13
13
  import { SlideAPI } from "./module/slide/SlideAPI";
14
+ import { DocAPI } from "@/app/api/module/doc/DocAPI";
14
15
  export declare class OolongAPI {
15
16
  app: OolongApp;
16
17
  create: CreateAPI;
@@ -22,6 +23,7 @@ export declare class OolongAPI {
22
23
  align: AlignAPI;
23
24
  text: TextAPI;
24
25
  slide: SlideAPI;
26
+ doc: DocAPI;
25
27
  constructor(app: OolongApp);
26
28
  resizeCanvas(): void;
27
29
  /**
@@ -48,6 +50,7 @@ export declare class OolongAPI {
48
50
  getScale(): number;
49
51
  transformToClientPos(point: Point): Point;
50
52
  getFocusList(): GraphicNode[];
53
+ setFocus(idList: string[]): void;
51
54
  setPrefix(prefix: string): void;
52
55
  clearFocus(): void;
53
56
  makeGroup(): void;
@@ -10,6 +10,10 @@ export declare class CreateAPI {
10
10
  */
11
11
  addTemplateNodes(docInfo: DocumentInfo): void;
12
12
  addNode(nodeType: NodeType, shapeCode: number): void;
13
+ /**
14
+ * 创建带默认子节点的 DocContainer
15
+ */
16
+ addDocContainer(): void;
13
17
  addSvgNodeBySvgCode(svgCode: string): void;
14
18
  /**
15
19
  * 添加svg节点,默认添加到视口中间
@@ -0,0 +1,8 @@
1
+ import { OolongApp } from "@/app";
2
+ export declare class DocAPI {
3
+ app: OolongApp;
4
+ constructor(app: OolongApp);
5
+ enterDocEditing(): void;
6
+ exitDocEditing(): void;
7
+ hoverDocPara(nodeId: string): void;
8
+ }
@@ -10,6 +10,7 @@ import { TextFontItalicWorker } from "../../../../ability/textInput/textFont/Tex
10
10
  import { TextUnderLineWorker } from "../../../../ability/textInput/textFont/TextUnderLineWorker";
11
11
  import { TextFontStrikethroughWorker } from "../../../../ability/textInput/textFont/TextFontStrikethroughWorker";
12
12
  import { TextFontSizeWorker } from "../../../../ability/textInput/textFont/TextFontSizeWorker";
13
+ import { TextAlignType } from "../../../../idl";
13
14
  export declare class TextAPI {
14
15
  app: OolongApp;
15
16
  textUnOrderWorker: TextUnOrderWorker;
@@ -28,11 +29,21 @@ export declare class TextAPI {
28
29
  addOrderList(): void;
29
30
  addQuote(): void;
30
31
  toNormal(): void;
32
+ addUnOrderListByIds(idList: string[]): void;
33
+ addOrderListByIds(idList: string[]): void;
34
+ addQuoteByIds(idList: string[]): void;
35
+ toNormalByIds(idList: string[]): void;
31
36
  changeTextColor(color: string): void;
32
37
  changeTextBgColor(color: string): void;
33
38
  changeTextBold(bold: boolean): void;
39
+ changeTextBoldByIds(bold: boolean, idList: string[]): void;
34
40
  changeTextItalic(italic: boolean): void;
41
+ changeTextItalicByIds(italic: boolean, idList: string[]): void;
35
42
  changeTextUnderLine(underline: boolean): void;
43
+ changeTextUnderLineByIds(underline: boolean, idList: string[]): void;
36
44
  changeTextStrikethrough(strikethrough: boolean): void;
45
+ changeTextStrikethroughByIds(strikethrough: boolean, idList: string[]): void;
37
46
  changeTextFontSize(fontSize: number): void;
47
+ changeTextFontSizeByIds(fontSize: number, idList: string[]): void;
48
+ changeHorizonAlign(align: TextAlignType): void;
38
49
  }
@@ -1,4 +1,6 @@
1
1
  import { OolongSlideContainer } from "../../graphics/OolongSlideContainer";
2
+ import { OolongDocContainer } from "@/graphics/OolongDocContainer";
2
3
  export interface DocModeSwitchContext {
3
4
  slideContainer?: OolongSlideContainer;
5
+ docContainer?: OolongDocContainer;
4
6
  }
@@ -1,5 +1,5 @@
1
1
  import { AppEventContext } from "../../AppEventContext";
2
- import { OolongSlideContainer } from "../../../graphics/OolongSlideContainer";
2
+ import { DocModeSwitchContext } from "@/app/docModeManager/DocModeSwitchContext";
3
3
  export declare abstract class AbsSwitchHandler {
4
- abstract handle(ctx: AppEventContext, slideContainer: OolongSlideContainer): void;
4
+ abstract handle(ctx: AppEventContext, switchCtx: DocModeSwitchContext): void;
5
5
  }
@@ -0,0 +1,6 @@
1
+ import { AppEventContext } from "../../../AppEventContext";
2
+ import { AbsSwitchHandler } from "../AbsSwitchHandler";
3
+ import { DocModeSwitchContext } from "@/app/docModeManager/DocModeSwitchContext";
4
+ export declare class BoardToDocEditHandler extends AbsSwitchHandler {
5
+ handle(ctx: AppEventContext, { docContainer }: DocModeSwitchContext): void;
6
+ }
@@ -1,8 +1,8 @@
1
1
  import { AppEventContext } from "../../../AppEventContext";
2
- import { OolongSlideContainer } from "../../../../graphics/OolongSlideContainer";
3
2
  import { AbsSwitchHandler } from "../AbsSwitchHandler";
4
3
  import { SlideStatus } from "../../../docState/SlideStatus";
4
+ import { DocModeSwitchContext } from "@/app/docModeManager/DocModeSwitchContext";
5
5
  export declare class BoardToSlideEditHandler extends AbsSwitchHandler {
6
- handle(ctx: AppEventContext, slideContainer: OolongSlideContainer): void;
6
+ handle(ctx: AppEventContext, { slideContainer }: DocModeSwitchContext): void;
7
7
  generateSlideCover(slideEditStatus: SlideStatus, ctx: AppEventContext): Promise<void>;
8
8
  }
@@ -1,6 +1,6 @@
1
1
  import { AppEventContext } from "../../../AppEventContext";
2
- import { OolongSlideContainer } from "../../../../graphics/OolongSlideContainer";
3
2
  import { AbsSwitchHandler } from "../AbsSwitchHandler";
3
+ import { DocModeSwitchContext } from "@/app/docModeManager/DocModeSwitchContext";
4
4
  export declare class BoardToSlidePlayHandler extends AbsSwitchHandler {
5
- handle(ctx: AppEventContext, slideContainer: OolongSlideContainer): void;
5
+ handle(ctx: AppEventContext, { slideContainer }: DocModeSwitchContext): void;
6
6
  }
@@ -0,0 +1,6 @@
1
+ import { AbsSwitchHandler } from "@/app/docModeManager/switchHandler/AbsSwitchHandler";
2
+ import { AppEventContext } from "@/app";
3
+ import { DocModeSwitchContext } from "@/app/docModeManager/DocModeSwitchContext";
4
+ export declare class DocEditToBoardHandler extends AbsSwitchHandler {
5
+ handle(ctx: AppEventContext, switchCtx: DocModeSwitchContext): void;
6
+ }
@@ -1,6 +1,6 @@
1
1
  import { AppEventContext } from "../../../AppEventContext";
2
- import { OolongSlideContainer } from "../../../../graphics/OolongSlideContainer";
3
2
  import { AbsSwitchHandler } from "../AbsSwitchHandler";
3
+ import { DocModeSwitchContext } from "@/app/docModeManager/DocModeSwitchContext";
4
4
  export declare class SlideEditToBoardHandler extends AbsSwitchHandler {
5
- handle(ctx: AppEventContext, slideContainer: OolongSlideContainer): void;
5
+ handle(ctx: AppEventContext, { slideContainer }: DocModeSwitchContext): void;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { AppEventContext } from "../../../AppEventContext";
2
- import { OolongSlideContainer } from "../../../../graphics/OolongSlideContainer";
3
2
  import { AbsSwitchHandler } from "../AbsSwitchHandler";
3
+ import { DocModeSwitchContext } from "@/app/docModeManager/DocModeSwitchContext";
4
4
  export declare class SlidePlayToBoardHandler extends AbsSwitchHandler {
5
- handle(ctx: AppEventContext, slideContainer: OolongSlideContainer): void;
5
+ handle(ctx: AppEventContext, { slideContainer }: DocModeSwitchContext): void;
6
6
  }
@@ -1,5 +1,6 @@
1
1
  export declare enum DocMode {
2
2
  BOARD = 0,
3
3
  SLIDE_EDIT = 1,
4
- SLIDE_PLAY = 2
4
+ SLIDE_PLAY = 2,
5
+ DOC_EDIT = 3
5
6
  }
@@ -0,0 +1,8 @@
1
+ import type { OolongDocContainer } from "@/graphics/OolongDocContainer";
2
+ /**
3
+ * 画板处于doc mode时的状态记录
4
+ */
5
+ export interface DocModeStatus {
6
+ docContainer: OolongDocContainer | null;
7
+ currentIndex: number;
8
+ }
@@ -2,6 +2,7 @@ import { DocSettingDO } from "../../file/DocSettingDO";
2
2
  import { Permission } from "./Permission";
3
3
  import { SlideStatus } from "./SlideStatus";
4
4
  import { DocMode } from "./DocMode";
5
+ import { DocModeStatus } from "@/app/docState/DocModeStatus";
5
6
  export declare class DocState {
6
7
  seq: number;
7
8
  savedSeq: number;
@@ -28,6 +29,10 @@ export declare class DocState {
28
29
  * slide状态
29
30
  */
30
31
  slideStatus: SlideStatus;
32
+ /**
33
+ * doc mode状态
34
+ */
35
+ docModeStatus: DocModeStatus;
31
36
  load(docSetting: DocSettingDO): void;
32
37
  canEdit(): boolean;
33
38
  changePermission({ canEdit }: {
@@ -1,4 +1,4 @@
1
- import { OolongSlideContainer } from "../../graphics/OolongSlideContainer";
1
+ import type { OolongSlideContainer } from "../../graphics/OolongSlideContainer";
2
2
  import { SlideCoverInfo } from "../../ability/slide/SlideCoverInfo";
3
3
  export interface SlideStatus {
4
4
  slideContainer: OolongSlideContainer | null;