@netless/appliance-plugin 1.1.17-beta.8 → 1.1.17

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 (44) hide show
  1. package/cdn/cdn.js +1 -1
  2. package/cdn/fullWorker-CTwuMS.js +500 -0
  3. package/cdn/subWorker-D7gqd9.js +500 -0
  4. package/dist/appliance-plugin.js +1 -1
  5. package/dist/appliance-plugin.mjs +16 -15
  6. package/dist/collector/collector.d.ts +1 -0
  7. package/dist/component/textEditor/manager.d.ts +1 -0
  8. package/dist/component/textEditor/view.d.ts +27 -47
  9. package/dist/core/mainEngine.d.ts +7 -1
  10. package/dist/core/mainThread/subLocalThread.d.ts +3 -5
  11. package/dist/core/tools/pencil.d.ts +5 -0
  12. package/dist/core/tools/pencilEraser.d.ts +63 -38
  13. package/dist/core/tools/selector.d.ts +29 -0
  14. package/dist/core/types.d.ts +1 -0
  15. package/dist/core/utils/clipper.d.ts +8 -0
  16. package/dist/core/utils/polygonUtils.d.ts +8 -0
  17. package/dist/core/worker/base.d.ts +5 -0
  18. package/dist/core/worker/fullWorkerLocal.d.ts +2 -3
  19. package/dist/core/worker/subWorkerLocal.d.ts +1 -0
  20. package/dist/cursors/index.d.ts +0 -4
  21. package/dist/displayer/const.d.ts +1 -0
  22. package/dist/displayer/floatBar/dragBox/index.d.ts +7 -1
  23. package/dist/displayer/floatBar/index.d.ts +1 -1
  24. package/dist/displayer/utils.d.ts +1 -0
  25. package/dist/fullWorker.js +211 -152
  26. package/dist/index-BqLItWo1.js +1 -0
  27. package/dist/{index-DZmnrj_U.mjs → index-D5p9NBLd.mjs} +217 -204
  28. package/dist/index-DGks_HwI.mjs +17530 -0
  29. package/dist/index-DI0wKkQa.js +1 -0
  30. package/dist/plugin/baseApplianceManager.d.ts +7 -5
  31. package/dist/plugin/baseViewContainerManager.d.ts +14 -2
  32. package/dist/plugin/const.d.ts +6 -0
  33. package/dist/plugin/displayerView.d.ts +9 -2
  34. package/dist/plugin/types.d.ts +36 -7
  35. package/dist/style.css +1 -1
  36. package/dist/subWorker.js +211 -152
  37. package/package.json +5 -3
  38. package/cdn/fullWorker-Dma-pe.js +0 -441
  39. package/cdn/subWorker-1KsgJX.js +0 -441
  40. package/dist/collector/eventCollector.d.ts +0 -31
  41. package/dist/collector/magixEventCollector.d.ts +0 -31
  42. package/dist/index-BwYgPPna.mjs +0 -17069
  43. package/dist/index-D1nbiAD6.js +0 -1
  44. package/dist/index-DR0wLn0R.js +0 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-D1nbiAD6.js");exports.ActiveContainerType=e.ActiveContainerType;exports.ApplianceMultiPlugin=e.ApplianceMultiPlugin;exports.ApplianceNames=e.ApplianceNames;exports.ApplianceSigleWrapper=e.ApplianceSigleWrapper;exports.ApplianceSinglePlugin=e.ApplianceSinglePlugin;exports.AutoDrawPlugin=e.AutoDrawPlugin;exports.ECanvasShowType=e.ECanvasShowType;exports.EDataType=e.EDataType;exports.EImageType=e.EImageType;exports.EMatrixrRelationType=e.EMatrixrRelationType;exports.EOperationType=e.EOperationType;exports.EPostMessageType=e.EPostMessageType;exports.ERenderFilterType=e.ERenderFilterType;exports.EScaleType=e.EScaleType;exports.EStrokeType=e.EStrokeType;exports.EToolsKey=e.EToolsKey;exports.ElayerType=e.ElayerType;exports.EmitEventType=e.EmitEventType;exports.EventMessageType=e.EventMessageType;exports.EvevtWorkState=e.EvevtWorkState;exports.EvevtWorkType=e.EvevtWorkType;exports.InternalMsgEmitterType=e.InternalMsgEmitterType;exports.Plugin=e.Plugin;exports.ShapeType=e.ShapeType;exports.fullWorkerUrl=e.fullWorker;exports.subWorkerUrl=e.subWorker;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-DI0wKkQa.js");exports.ActiveContainerType=e.ActiveContainerType;exports.ApplianceMultiPlugin=e.ApplianceMultiPlugin;exports.ApplianceNames=e.ApplianceNames;exports.ApplianceSigleWrapper=e.ApplianceSigleWrapper;exports.ApplianceSinglePlugin=e.ApplianceSinglePlugin;exports.AutoDrawPlugin=e.AutoDrawPlugin;exports.ECanvasShowType=e.ECanvasShowType;exports.EDataType=e.EDataType;exports.EForceStopReason=e.EForceStopReason;exports.EImageType=e.EImageType;exports.EMatrixrRelationType=e.EMatrixrRelationType;exports.EOperationType=e.EOperationType;exports.EPostMessageType=e.EPostMessageType;exports.ERenderFilterType=e.ERenderFilterType;exports.EScaleType=e.EScaleType;exports.EStrokeType=e.EStrokeType;exports.EToolsKey=e.EToolsKey;exports.ElayerType=e.ElayerType;exports.EmitEventType=e.EmitEventType;exports.EventMessageType=e.EventMessageType;exports.EvevtWorkState=e.EvevtWorkState;exports.EvevtWorkType=e.EvevtWorkType;exports.InternalMsgEmitterType=e.InternalMsgEmitterType;exports.Plugin=e.Plugin;exports.ShapeType=e.ShapeType;exports.fullWorkerUrl=e.fullWorker;exports.subWorkerUrl=e.subWorker;
@@ -1,29 +1,30 @@
1
- import { F as s, A as p, y as r, x as t, w as l, Q as i, G as n, b as y, k as E, m as T, N as o, c as g, O as u, K as v, z as c, a as A, J as S, j as k, H as m, E as P, L as M, I as W, P as w, B as x, u as I, v as b } from "./index-BwYgPPna.mjs";
1
+ import { B as s, A as p, x as r, w as t, v as l, Q as n, G as i, b as y, F as E, j as o, l as T, N as g, c as u, O as v, K as c, y as S, a as A, J as P, h as k, H as m, E as M, L as W, I as h, P as w, z as x, s as F, u as I } from "./index-DGks_HwI.mjs";
2
2
  export {
3
3
  s as ActiveContainerType,
4
4
  p as ApplianceMultiPlugin,
5
5
  r as ApplianceNames,
6
6
  t as ApplianceSigleWrapper,
7
7
  l as ApplianceSinglePlugin,
8
- i as AutoDrawPlugin,
9
- n as ECanvasShowType,
8
+ n as AutoDrawPlugin,
9
+ i as ECanvasShowType,
10
10
  y as EDataType,
11
- E as EImageType,
11
+ E as EForceStopReason,
12
+ o as EImageType,
12
13
  T as EMatrixrRelationType,
13
- o as EOperationType,
14
- g as EPostMessageType,
15
- u as ERenderFilterType,
16
- v as EScaleType,
17
- c as EStrokeType,
14
+ g as EOperationType,
15
+ u as EPostMessageType,
16
+ v as ERenderFilterType,
17
+ c as EScaleType,
18
+ S as EStrokeType,
18
19
  A as EToolsKey,
19
- S as ElayerType,
20
+ P as ElayerType,
20
21
  k as EmitEventType,
21
22
  m as EventMessageType,
22
- P as EvevtWorkState,
23
- M as EvevtWorkType,
24
- W as InternalMsgEmitterType,
23
+ M as EvevtWorkState,
24
+ W as EvevtWorkType,
25
+ h as InternalMsgEmitterType,
25
26
  w as Plugin,
26
27
  x as ShapeType,
27
- I as fullWorkerUrl,
28
- b as subWorkerUrl
28
+ F as fullWorkerUrl,
29
+ I as subWorkerUrl
29
30
  };
@@ -27,6 +27,7 @@ export declare class Collector extends BaseCollector<ISerializableStorageViewDat
27
27
  getScenePathData(scenePath: string): ISerializableStorageData | undefined;
28
28
  getStorageData(viewId: string, scenePath: string): ISerializableStorageData | undefined;
29
29
  hasSelector(viewId: string, scenePath: string): boolean;
30
+ hasIncludeSelector(targetKey: string, targetViewId?: string, targetScenePath?: string): boolean;
30
31
  addStorageStateListener(callBack: (diff: Diff) => void): void;
31
32
  removeStorageStateListener(): void;
32
33
  private diffFunByView;
@@ -8,6 +8,7 @@ export interface TextEditorManager {
8
8
  readonly publicMsgEmitter: EventEmitter2;
9
9
  readonly control: BaseApplianceManager;
10
10
  editors: Map<string, TextEditorInfo>;
11
+ /** 当前激活的文本编辑器 */
11
12
  activeId?: string;
12
13
  /** 通过view组建中更新文本 */
13
14
  updateForViewEdited(activeId?: string, info?: TextEditorInfo): void;
@@ -1,73 +1,53 @@
1
- import React, { FocusEventHandler, KeyboardEventHandler } from "react";
1
+ import React from "react";
2
2
  import { TextEditorInfo, TextOptions } from "./types";
3
- import { ApplianceViewManagerLike, EmitEventType } from "../../plugin/types";
4
- export declare const Max_Font_Size = 80;
5
- export interface TextSelectorManagerProps {
6
- selectIds: string[];
3
+ import { EmitEventType } from "../../plugin/types";
4
+ export interface TextManagerProps {
7
5
  className?: string;
8
6
  editors?: Map<string, TextEditorInfo>;
9
- activeTextId?: string;
7
+ selectIds?: string[];
10
8
  box?: {
11
9
  x: number;
12
10
  y: number;
13
11
  w: number;
14
12
  h: number;
15
13
  };
16
- manager: ApplianceViewManagerLike;
17
14
  showFloatBtns?: boolean;
18
15
  operationType?: EmitEventType;
16
+ rightBoundBreak?: boolean;
17
+ }
18
+ export interface TextSelectorManagerProps extends TextManagerProps {
19
+ handleTextEditorPointerDown: (workId: string) => void;
20
+ handleTextEditorPointerUp: () => void;
19
21
  }
20
22
  export interface TextViewProps {
21
23
  workId: string;
22
24
  data: TextEditorInfo;
23
- isSelect?: boolean;
24
- isActive?: boolean;
25
- manager: ApplianceViewManagerLike;
26
25
  }
27
26
  export interface TextSelectorViewProps extends TextViewProps {
28
- left: string;
29
- top: string;
30
- selectIds?: string[];
31
27
  updateOptInfo: (param: {
32
28
  activeTextId: string;
33
29
  update: Partial<TextOptions>;
34
30
  syncData?: Pick<TextEditorInfo, 'canSync' | 'canWorker'>;
35
31
  }) => void;
32
+ handlePointerDown: (workId: string) => void;
33
+ handlePointerUp: () => void;
36
34
  }
37
35
  export interface TextEditorProps extends TextViewProps {
38
36
  showFloatBtns: boolean;
39
- handleKeyUp: KeyboardEventHandler<HTMLDivElement>;
40
- handleFocus: FocusEventHandler<HTMLDivElement>;
41
- runAnimation: () => void;
42
- updateOptInfo: (param: {
43
- activeTextId: string;
44
- update: Partial<TextOptions>;
45
- syncData?: Pick<TextEditorInfo, 'canSync' | 'canWorker'>;
46
- }) => void;
47
- }
48
- export declare const TextView: (props: TextViewProps) => React.JSX.Element;
49
- export declare const TextSelectorView: React.MemoExoticComponent<(props: TextSelectorViewProps) => React.JSX.Element>;
50
- export declare const TextEditor: (props: TextEditorProps) => React.JSX.Element;
51
- export declare class TextViewInSelector extends React.Component<TextSelectorManagerProps, {
52
- hasEditor: boolean;
53
- }> {
54
- constructor(props: TextSelectorManagerProps);
55
- getInnerText(target: HTMLDivElement): string[];
56
- updateOptInfo(param: {
57
- activeTextId: string;
58
- update: Partial<TextOptions>;
59
- syncData?: Pick<TextEditorInfo, 'canSync' | 'canWorker'>;
60
- }): void;
61
- get editorUI(): JSX.Element[] | null;
62
- render(): React.JSX.Element;
63
- }
64
- export declare class TextEditorContainer extends TextViewInSelector {
65
- ref: React.RefObject<HTMLDivElement> | undefined;
66
- isRunAnimation?: number;
67
- constructor(props: TextSelectorManagerProps);
68
- runAnimation(): void;
69
- handleKeyUp(e: any): void;
70
- handleFocus(e: any): void;
71
- get editorUI(): JSX.Element[] | null;
72
- render(): React.JSX.Element;
37
+ rightBoundBreak: boolean;
38
+ handleKeyUp: (div: HTMLDivElement) => void;
39
+ handleFocus: (div: HTMLDivElement) => void;
40
+ runAnimation: (callback?: () => void) => void;
41
+ updateSize: (updateId: string, boxSize: [number, number]) => void;
73
42
  }
43
+ /**
44
+ * 文本编辑器类型
45
+ * hover: 当前文本被当前用户获焦中
46
+ * editing: 当前文本编辑中(被其他用户编辑中)
47
+ * active: 当前文本可编辑状态被激活(暂无用户编辑)
48
+ * none: 无状态
49
+ */
50
+ export type TextEditorType = "hover" | "editing" | "active" | "none";
51
+ export declare const TextSelectorView: (props: TextSelectorViewProps) => React.JSX.Element;
52
+ export declare const TextViewInSelector: (props: TextSelectorManagerProps) => React.JSX.Element;
53
+ export declare const TextEditorContainer: (props: TextManagerProps) => React.JSX.Element;
@@ -10,9 +10,12 @@ import { BaseShapeOptions } from "./tools";
10
10
  export declare abstract class MasterController {
11
11
  /** 异步同步时间间隔 */
12
12
  maxLastSyncTime: number;
13
+ /** 合并绘制时间间隔 */
14
+ combineUnitTime: number;
13
15
  /** 插件管理器 */
14
16
  readonly abstract control: BaseApplianceManager;
15
17
  readonly abstract internalMsgEmitter: EventEmitter2;
18
+ readonly abstract publicMsgEmitter: EventEmitter2;
16
19
  /** worker线程管理器 */
17
20
  /** 本地原始点数据批任务数据池 */
18
21
  protected abstract localPointsBatchData: Map<IworkId, {
@@ -39,7 +42,7 @@ export declare abstract class MasterController {
39
42
  /** 获取当前激活的工作任务id */
40
43
  protected getWorkId(): IworkId | undefined;
41
44
  /** 获取当前work的工作状态 */
42
- getWorkState(): EvevtWorkState;
45
+ get workState(): EvevtWorkState;
43
46
  /** 用于接收服务端同步的数据 */
44
47
  abstract onServiceDerive(key: string, data: DiffOneData<BaseCollectorReducerAction | undefined>): void;
45
48
  /** 消费批处理池数据 */
@@ -96,6 +99,7 @@ export declare class MasterControlForWorker extends MasterController {
96
99
  protected currentLocalWorkData: IActiveWorkDataType;
97
100
  control: BaseApplianceManager;
98
101
  internalMsgEmitter: EventEmitter2;
102
+ publicMsgEmitter: EventEmitter2;
99
103
  taskBatchData: Set<IWorkerMessage>;
100
104
  protected fullWorker: Worker;
101
105
  protected subWorker: Worker;
@@ -138,6 +142,7 @@ export declare class MasterControlForWorker extends MasterController {
138
142
  private isLockSentEventCursor;
139
143
  private subMainThreadWorker?;
140
144
  private getVNodeInfoResolveMap;
145
+ private isLocalWorkActive;
141
146
  constructor(props: BaseSubWorkModuleProps);
142
147
  destroy(): void;
143
148
  private get consumeCount();
@@ -167,6 +172,7 @@ export declare class MasterControlForWorker extends MasterController {
167
172
  getMaxDrawCount(): number;
168
173
  setSubWorkerDrawCount(num: number): void;
169
174
  setConsumeCount(num: number): void;
175
+ getConsumeCount(): number;
170
176
  setWorkerTasksqueueCount(num: number): void;
171
177
  collectorSyncData(sp: IMainMessage[]): void;
172
178
  private collectorAsyncData;
@@ -1,5 +1,5 @@
1
1
  import { IActiveToolsDataType, IWorkerMessage, IMainMessage, IUpdateSelectorPropsType, IBatchMainMessage } from "../types";
2
- import type { BaseShapeTool, BaseShapeOptions, SelectorShape, ImageShape, ShapeToolsClass, PencilShape } from "../tools";
2
+ import type { BaseShapeTool, BaseShapeOptions, SelectorShape, ImageShape, ShapeToolsClass } from "../tools";
3
3
  import { MainThreadEngineImpl, ISubThreadInitOption } from "./base";
4
4
  import { VNodeManager } from "../vNodeManager";
5
5
  import { EToolsKey } from "../enum";
@@ -101,10 +101,8 @@ export declare class SubLocalMainThreadImpl implements SubLocalThread {
101
101
  blurSelector(data?: IWorkerMessage): Promise<void>;
102
102
  clearWorkShapeNodeCache(workId: string): void;
103
103
  private drawBitMapEraserFull;
104
- private drawPencilEraser;
104
+ private drawPencilEraserFull;
105
105
  private drawEraser;
106
- private updateBatchEraserCombineNode;
107
- private batchEraserCombine;
108
106
  getWorkShape(workId: string): BaseShapeTool | undefined;
109
107
  getWorkShapes(): Map<string, BaseShapeTool>;
110
108
  consumeDraw(data: IWorkerMessage, serviceWork: SubServiceThread): void;
@@ -114,5 +112,5 @@ export declare class SubLocalMainThreadImpl implements SubLocalThread {
114
112
  setWorkOptions(workId: string, opt: BaseShapeOptions): void;
115
113
  createWorkShapeNode(opt: IActiveToolsDataType & {
116
114
  workId: string;
117
- }): import("../tools").ArrowShape | PencilShape | import("../tools/straight").StraightShape | import("../tools").EllipseShape | import("../tools").PolygonShape | import("../tools").StarShape | import("../tools").RectangleShape | import("../tools").SpeechBalloonShape | TextShape | import("../tools").LaserPenShape | import("../tools").EraserShape | import("../tools/pencilEraser").PencilEraserShape | BitMapEraserShape | SelectorShape | ImageShape | undefined;
115
+ }): import("../tools").ArrowShape | import("../tools").PencilShape | import("../tools/straight").StraightShape | import("../tools").EllipseShape | import("../tools").PolygonShape | import("../tools").StarShape | import("../tools").RectangleShape | import("../tools").SpeechBalloonShape | TextShape | import("../tools").LaserPenShape | import("../tools").EraserShape | import("../tools/pencilEraser").PencilEraserShape | BitMapEraserShape | SelectorShape | ImageShape | undefined;
118
116
  }
@@ -77,6 +77,11 @@ export declare class PencilShape extends BaseShapeTool {
77
77
  replaceId?: string;
78
78
  workState?: EvevtWorkState;
79
79
  }): IRectType | undefined;
80
+ computPencilPoints(params: {
81
+ op: number[];
82
+ eraserPolylines: number[][];
83
+ eraserThickness: number;
84
+ }): number[][] | undefined;
80
85
  private transformDataAll;
81
86
  private draw;
82
87
  private computDrawPoints;
@@ -1,74 +1,99 @@
1
1
  import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
2
- import { EPostMessageType, EScaleType, EToolsKey } from "../enum";
3
- import { IWorkerMessage, IRectType, IworkId } from "../types";
4
- import type { ServiceThreadSubWork } from "./utils";
2
+ import { EDataType, EPostMessageType, EScaleType, EToolsKey } from "../enum";
3
+ import { IWorkerMessage, IRectType, BaseNodeMapItem } from "../types";
4
+ import type { IMainMessage } from "../types";
5
+ import { Point2d } from "../utils/primitives/Point2d";
6
+ import type { LocalWorkForFullWorker } from "../worker/fullWorkerLocal";
7
+ import type { SubLocalMainThreadImpl } from "../mainThread/subLocalThread";
8
+ export type SerializerEraserLines = Array<SerializerEraserItem>;
9
+ export interface SerializerEraserItem {
10
+ op: number[][];
11
+ thickness: number;
12
+ }
5
13
  export interface PencilEraserOptions extends BaseShapeOptions {
6
14
  thickness: number;
15
+ eraserColor: string;
7
16
  }
8
17
  export declare class PencilEraserShape extends BaseShapeTool {
9
18
  readonly canRotate: boolean;
10
19
  readonly scaleType: EScaleType;
11
20
  readonly toolsType: EToolsKey;
12
- readonly serviceWork?: ServiceThreadSubWork;
13
21
  private static readonly eraserSizes;
14
- protected tmpPoints: Array<number>;
22
+ protected tmpPoints: Array<Point2d>;
15
23
  protected workOptions: PencilEraserOptions;
16
24
  worldPosition: [number, number];
17
25
  worldScaling: [number, number];
18
26
  eraserRect: IRectType | undefined;
19
27
  eraserPolyline?: [number, number, number, number];
20
- constructor(props: BaseShapeToolProps, serviceWork?: ServiceThreadSubWork);
21
- consumeService(): IRectType | undefined;
22
- private createEraserRect;
23
- private computRectCenterPoints;
24
- private isNear;
25
- private cutPolyline;
26
- private isSamePoint;
27
- private translateIntersect;
28
- private isLineEraser;
29
- private remove;
28
+ syncUnitTime: number;
29
+ private syncIndex;
30
+ private syncTimestamp;
31
+ constructor(props: BaseShapeToolProps);
32
+ /** 批量合并消费本地数据,返回绘制结果 */
33
+ combineConsume(): IMainMessage | undefined;
34
+ consumeService(params: {
35
+ op: number[];
36
+ isFullWork?: boolean;
37
+ replaceId?: string;
38
+ }): IRectType | undefined;
39
+ private updateTempPoints;
40
+ private getChangeNodes;
30
41
  consume(props: {
31
42
  data: IWorkerMessage;
43
+ isFullWork: boolean;
44
+ isSubWorker?: boolean;
45
+ isMainThread?: boolean;
46
+ drawCount?: number;
47
+ removeDrawCount?: number;
32
48
  }): {
33
49
  workId: string;
34
50
  toolsType: EToolsKey;
35
51
  opt: import("./utils").ShapeOptions;
36
52
  type: EPostMessageType;
37
53
  rect?: undefined;
38
- removeIds?: undefined;
39
- newWorkDatas?: undefined;
54
+ dataType?: undefined;
40
55
  } | {
56
+ rect: IRectType | undefined;
41
57
  type: EPostMessageType;
42
- rect: IRectType;
43
- removeIds: string[];
44
- newWorkDatas: Map<string, {
45
- op: number[];
46
- opt: BaseShapeOptions;
47
- workId: IworkId;
48
- toolsType: EToolsKey;
49
- }>;
58
+ dataType: EDataType;
59
+ } | {
60
+ type: EPostMessageType;
61
+ dataType: EDataType;
62
+ rect: IRectType | undefined;
63
+ op: number[] | undefined;
64
+ index: number | undefined;
65
+ updateNodeOpt: {
66
+ useAnimation: boolean;
67
+ };
68
+ workId: string;
69
+ toolsType: EToolsKey;
70
+ opt: import("./utils").ShapeOptions;
50
71
  };
72
+ private draw;
73
+ private computEraserPointLines;
51
74
  consumeAll(props: {
52
- data: IWorkerMessage;
75
+ workerEngine?: LocalWorkForFullWorker | SubLocalMainThreadImpl;
53
76
  }): {
54
77
  workId: string;
55
78
  toolsType: EToolsKey;
56
79
  opt: import("./utils").ShapeOptions;
57
80
  type: EPostMessageType;
58
- rect?: undefined;
59
- removeIds?: undefined;
60
- newWorkDatas?: undefined;
81
+ } | {
82
+ rect: IRectType | undefined;
83
+ workId: string;
84
+ toolsType: EToolsKey;
85
+ opt: import("./utils").ShapeOptions;
86
+ type: EPostMessageType;
61
87
  } | {
62
88
  type: EPostMessageType;
63
- rect: IRectType;
64
- removeIds: string[];
65
- newWorkDatas: Map<string, {
66
- op: number[];
67
- opt: BaseShapeOptions;
68
- workId: IworkId;
69
- toolsType: EToolsKey;
70
- }>;
89
+ dataType: EDataType;
90
+ rect: IRectType | undefined;
91
+ ops: string;
92
+ willNewNodes: Map<string, BaseNodeMapItem>;
93
+ willDeleteNodes: Set<string>;
94
+ workId: string;
95
+ toolsType: EToolsKey;
96
+ opt: import("./utils").ShapeOptions;
71
97
  };
72
98
  clearTmpPoints(): void;
73
- private getCanEraserNodeMap;
74
99
  }
@@ -41,6 +41,7 @@ export declare class SelectorShape extends BaseShapeTool {
41
41
  getChildrenPoints(): [number, number][] | undefined;
42
42
  consume(props: {
43
43
  data: IWorkerMessage;
44
+ isSubWorker?: boolean;
44
45
  }): {
45
46
  type: EPostMessageType;
46
47
  } | {
@@ -98,6 +99,34 @@ export declare class SelectorShape extends BaseShapeTool {
98
99
  type: EPostMessageType;
99
100
  };
100
101
  consumeService(): undefined;
102
+ private updateTempPointsForSubWorker;
103
+ private computDrawPoints;
104
+ private drawForSubWorker;
105
+ private transformData;
106
+ subWorkerConsume(props: {
107
+ data: IWorkerMessage;
108
+ isFullWork?: boolean;
109
+ }): {
110
+ type: EPostMessageType;
111
+ } | {
112
+ workId: string;
113
+ toolsType: EToolsKey;
114
+ opt: import("./utils").ShapeOptions;
115
+ rect: IRectType | undefined;
116
+ type: EPostMessageType;
117
+ dataType: EDataType;
118
+ };
119
+ subWorkerConsumeAll(props: {
120
+ data: IWorkerMessage;
121
+ isFullWork?: boolean;
122
+ }): {
123
+ workId: string;
124
+ toolsType: EToolsKey;
125
+ opt: import("./utils").ShapeOptions;
126
+ rect: IRectType | undefined;
127
+ type: EPostMessageType;
128
+ dataType: EDataType;
129
+ };
101
130
  clearTmpPoints(): void;
102
131
  clearSelectData(): void;
103
132
  private selectSingleTool;
@@ -244,6 +244,7 @@ export interface IUpdateSelectorCallbackPropsType {
244
244
  export interface IActiveToolsDataType {
245
245
  toolsType: EToolsKey;
246
246
  toolsOpt: ShapeOptions;
247
+ combineUnitTime?: number;
247
248
  }
248
249
  export interface IActiveWorkDataType {
249
250
  workState: EvevtWorkState;
@@ -0,0 +1,8 @@
1
+ import { Point2d } from './primitives/Point2d';
2
+ /**
3
+ * 折线减去多个多边形,返回差集片段(去除冗余点、近似闭环、孤点)
4
+ * @param polyline 原始折线
5
+ * @param polygons 多个多边形数组
6
+ * @param epsilon 精度阈值
7
+ */
8
+ export declare function polylineMinusPolygon(polyline: Point2d[], polygons: [number, number][][], epsilon?: number): [number, number, number][][];
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 计算两条线段的交点
3
+ */
4
+ export declare function getIntersection(p1: [number, number], p2: [number, number], p3: [number, number], p4: [number, number]): [number, number] | null;
5
+ /**
6
+ * 判断点是否在多边形内
7
+ */
8
+ export declare function isPointInPolygon(point: [number, number], polygon: [number, number][]): boolean;
@@ -12,6 +12,8 @@ export interface IWorkerInitOption {
12
12
  dpr: number;
13
13
  offscreenCanvasOpt: IOffscreenCanvasOptionType;
14
14
  layerOpt: ILayerOptionType;
15
+ combineUnitTime?: number;
16
+ syncUnitTime?: number;
15
17
  }
16
18
  export interface ISubWorkerInitOption {
17
19
  thread: WorkThreadEngineForFullWorker | WorkThreadEngineForSubWorker;
@@ -101,6 +103,9 @@ export declare abstract class LocalWork {
101
103
  protected drawCount: number;
102
104
  protected consumeCount: number;
103
105
  protected syncUnitTime: number;
106
+ protected combineUnitTime: number;
107
+ setCombineUnitTime(combineUnitTime: number): void;
108
+ setSyncUnitTime(syncUnitTime: number): void;
104
109
  constructor(opt: ISubWorkerInitOption);
105
110
  destroy(): void;
106
111
  getWorkShapes(): Map<string, BaseShapeTool>;
@@ -4,7 +4,6 @@ import { ISubWorkerInitOption, LocalWork } from "./base";
4
4
  import { ServiceWorkForFullWorker } from "./fullWorkerService";
5
5
  import { WorkThreadEngineForFullWorker } from "./workerManager";
6
6
  export declare class LocalWorkForFullWorker extends LocalWork {
7
- private combineUnitTime;
8
7
  private combineTimerId?;
9
8
  private combineDrawResolve?;
10
9
  private combineDrawActiveId?;
@@ -52,13 +51,13 @@ export declare class LocalWorkForFullWorker extends LocalWork {
52
51
  private drawBitMapCombine;
53
52
  private drawPencilCombine;
54
53
  private drawSelector;
54
+ private drawPencilEraserCombine;
55
55
  private drawPencilEraser;
56
+ private drawPencilEraserFull;
56
57
  private drawEraser;
57
- private batchEraserCombine;
58
58
  private drawShape;
59
59
  private drawPencil;
60
60
  private drawPencilFull;
61
- private updateBatchEraserCombineNode;
62
61
  private runEffectSelectWork;
63
62
  cursorHover(msg: IWorkerMessage): Promise<void>;
64
63
  cursorBlur(): Promise<void>;
@@ -13,4 +13,5 @@ export declare class LocalWorkForSubWorker extends LocalWork {
13
13
  private removeNode;
14
14
  private drawPencil;
15
15
  private drawShape;
16
+ private drawSelector;
16
17
  }
@@ -1,5 +1,4 @@
1
1
  import { EventMessageType, EvevtWorkState, IMainMessage } from "../core";
2
- import { EventCollector } from "../collector/eventCollector";
3
2
  import { BaseSubWorkModuleProps, Displayer, RoomMember } from "../plugin/types";
4
3
  import { MemberDiff, RoomMemberManager } from "../members";
5
4
  import type { BaseApplianceManager } from "../plugin/baseApplianceManager";
@@ -39,8 +38,6 @@ export declare abstract class CursorManager {
39
38
  abstract readonly internalMsgEmitter: EventEmitter2;
40
39
  /** 插件管理器 */
41
40
  abstract readonly control: BaseApplianceManager;
42
- /** 事件收集器 */
43
- abstract eventCollector?: EventCollector;
44
41
  /** 房间成员管理器 */
45
42
  abstract readonly roomMember: RoomMemberManager;
46
43
  /** 激活事件收集器 */
@@ -79,7 +76,6 @@ export declare class CursorManagerImpl implements CursorManager {
79
76
  private cursorInfoMap;
80
77
  private doneRenderCursorInfoMap;
81
78
  constructor(props: BaseSubWorkModuleProps);
82
- eventCollector?: EventCollector | undefined;
83
79
  activeCollector(): void;
84
80
  private mainMagixEventListener;
85
81
  onFocusViewChange(): void;
@@ -9,3 +9,4 @@ export declare const BarPadding: Margin;
9
9
  export declare const BarMargin: Margin;
10
10
  export declare const FontSizeList: readonly number[];
11
11
  export declare const SpeechBalloonPlacements: SpeechBalloonPlacement[];
12
+ export declare const DefaultCursorIconMap: Map<string, string>;
@@ -1,4 +1,10 @@
1
1
  import React from "react";
2
+ import { TextEditorInfo } from "../../../component/textEditor/types";
3
+ export type PositionType = {
4
+ x: number;
5
+ y: number;
6
+ };
2
7
  export declare const DraggableBox: (props: {
3
- onClickHandle: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
8
+ editors?: Map<string, TextEditorInfo>;
9
+ canSelectorSwitch: boolean;
4
10
  }) => React.JSX.Element;
@@ -3,5 +3,5 @@ import { TextEditorInfo } from "../../component/textEditor";
3
3
  export declare const FloatBar: React.MemoExoticComponent<React.ForwardRefExoticComponent<{
4
4
  isHide: boolean;
5
5
  editors?: Map<string, TextEditorInfo>;
6
- activeTextId?: string;
6
+ canSelectorSwitch: boolean;
7
7
  } & React.RefAttributes<HTMLDivElement>>>;
@@ -0,0 +1 @@
1
+ export declare const stopPropagationFunc: (e: React.PointerEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>) => void;