@netless/appliance-plugin 1.1.36-beta.0 → 1.1.36-beta.1

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 (73) hide show
  1. package/READMA.zh-CN.md +36 -0
  2. package/README.md +6 -0
  3. package/cdn/cdn.js +1 -1
  4. package/cdn/{fullWorker-Cu37fr.js → fullWorker-uAwmRi.js} +110 -110
  5. package/cdn/{subWorker-le1nnC.js → subWorker-BVNpAC.js} +110 -110
  6. package/dist/appliance-plugin.js +1 -1
  7. package/dist/appliance-plugin.mjs +1 -1
  8. package/dist/assets/fullWorker-B_mvkoeW.js +593 -0
  9. package/dist/assets/subWorker-CRdsidWT.js +593 -0
  10. package/dist/{bridge-DskXXarZ.mjs → bridge-DYkH1J6p.mjs} +6 -6
  11. package/dist/{bridge-DO3A2FRh.js → bridge-enxPG6qf.js} +1 -1
  12. package/dist/bridge.js +1 -1
  13. package/dist/bridge.mjs +1 -1
  14. package/dist/collector/collector.d.ts +1 -0
  15. package/dist/collector/types.d.ts +5 -1
  16. package/dist/component/textEditor/manager.d.ts +9 -1
  17. package/dist/component/textEditor/types.d.ts +5 -0
  18. package/dist/component/textEditor/utils.d.ts +21 -0
  19. package/dist/component/textEditor/view.d.ts +0 -4
  20. package/dist/core/enum.d.ts +3 -1
  21. package/dist/core/mainEngine.d.ts +4 -1
  22. package/dist/core/msgEvent/copyNode/forMain.d.ts +3 -0
  23. package/dist/core/msgEvent/copyNode/utils.d.ts +9 -0
  24. package/dist/core/msgEvent/deleteNode/forMain.d.ts +1 -0
  25. package/dist/core/msgEvent/setColor/forMain.d.ts +2 -0
  26. package/dist/core/msgEvent/setFont/forMain.d.ts +1 -0
  27. package/dist/core/msgEvent/setLock/forMain.d.ts +1 -0
  28. package/dist/core/msgEvent/setShape/forMain.d.ts +1 -0
  29. package/dist/core/msgEvent/setZIndex/forMain.d.ts +2 -0
  30. package/dist/core/tools/pencil.d.ts +1 -0
  31. package/dist/core/tools/selector.d.ts +4 -0
  32. package/dist/core/types.d.ts +6 -0
  33. package/dist/core/worker/fullWorkerLocal.d.ts +4 -4
  34. package/dist/core/worker/simpleWorker.d.ts +2 -2
  35. package/dist/displayer/floatBar/dragBox/activateSelectorText.d.ts +13 -0
  36. package/dist/displayer/floatBar/dragBox/selectorSwitch.d.ts +19 -0
  37. package/dist/fullWorker.js +110 -110
  38. package/dist/index-2On9v0Ff.mjs +19693 -0
  39. package/dist/index-BSD0B_eV.js +1 -0
  40. package/dist/{index-BBcEMXkc.mjs → index-BZql6xgR.mjs} +1 -1
  41. package/dist/index-Bm90lQii.js +1 -0
  42. package/dist/{index-B4Npl8dw.mjs → index-BrJL-fin.mjs} +3253 -3069
  43. package/dist/{index-vfn-RVQz.js → index-CIjmeY9J.js} +1 -1
  44. package/dist/{index-CqQPnW7_.js → index-CcS9cKSp.js} +1 -1
  45. package/dist/index-D4z0hSjm.js +1 -0
  46. package/dist/{index-BVkfyJQn.mjs → index-D8SnD90W.mjs} +1 -1
  47. package/dist/index-DbI0V6BY.mjs +19719 -0
  48. package/dist/{index-DDULymwD.mjs → index-K9QVPOhV.mjs} +3253 -3069
  49. package/dist/index-W9Jz9E04.js +1 -0
  50. package/dist/plugin/baseApplianceManager.d.ts +7 -0
  51. package/dist/plugin/baseViewContainerManager.d.ts +23 -9
  52. package/dist/plugin/displayerView.d.ts +4 -1
  53. package/dist/plugin/elementCapability.d.ts +29 -0
  54. package/dist/plugin/multi/displayer/appViewDisplayerManager.d.ts +1 -0
  55. package/dist/plugin/multi/displayer/mainViewDisplayerManager.d.ts +1 -0
  56. package/dist/plugin/selectorApi.d.ts +135 -0
  57. package/dist/plugin/single/displayer/mainViewDisplayerManager.d.ts +1 -0
  58. package/dist/plugin/types.d.ts +334 -5
  59. package/dist/plugin/utils.d.ts +9 -0
  60. package/dist/style.css +1 -1
  61. package/dist/subWorker.js +110 -110
  62. package/dist/undo/index.d.ts +45 -4
  63. package/dist/undo/timing.d.ts +50 -0
  64. package/package.json +12 -1
  65. package/dist/assets/fullWorker-C_pHxd3d.js +0 -593
  66. package/dist/assets/subWorker-mLNCeIEX.js +0 -593
  67. package/dist/bridge-white-web-sdk.d.ts +0 -1
  68. package/dist/index-B00mKJ2E.js +0 -1
  69. package/dist/index-BAT55jp1.mjs +0 -16599
  70. package/dist/index-D50QxS0c.js +0 -1
  71. package/dist/index-DTMQbvIh.mjs +0 -16625
  72. package/dist/index-DlkXPynh.js +0 -1
  73. package/dist/index-DoKk1ccL.js +0 -1
@@ -12,7 +12,7 @@ function u() {
12
12
  );
13
13
  return r;
14
14
  }
15
- const h = "/assets/fullWorker-C_pHxd3d.js", d = "/assets/subWorker-mLNCeIEX.js";
15
+ const h = "/assets/fullWorker-B_mvkoeW.js", d = "/assets/subWorker-CRdsidWT.js";
16
16
  class g {
17
17
  constructor() {
18
18
  i(this, "control");
@@ -31,7 +31,7 @@ class g {
31
31
  delete this._listeners[e];
32
32
  }
33
33
  }
34
- class b {
34
+ class k {
35
35
  constructor(e) {
36
36
  i(this, "control");
37
37
  i(this, "worker");
@@ -54,14 +54,14 @@ class b {
54
54
  });
55
55
  }
56
56
  }
57
- async function k(s) {
58
- return c(s), import("./index-BAT55jp1.mjs").then((e) => e.a7);
57
+ async function b(s) {
58
+ return c(s), import("./index-2On9v0Ff.mjs").then((e) => e.a7);
59
59
  }
60
60
  export {
61
- b as P,
61
+ k as P,
62
62
  g as a,
63
63
  h as f,
64
64
  u as g,
65
- k as l,
65
+ b as l,
66
66
  d as s
67
67
  };
@@ -1 +1 @@
1
- "use strict";var o=Object.defineProperty;var l=(i,e,t)=>e in i?o(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var s=(i,e,t)=>l(i,typeof e!="symbol"?e+"":e,t);let n;function u(i){n=i}function c(){if(!n)throw new Error("[@netless/appliance-plugin/bridge] white-web-sdk runtime has not been bound yet.");return n}const a="/assets/fullWorker-C_pHxd3d.js",h="/assets/subWorker-mLNCeIEX.js";class d{constructor(){s(this,"control");s(this,"_listeners",{})}_inject(e){this.control=e}_onEvent(e,t){this._listeners[e]&&this._listeners[e](...t)}callbacks(e,t){this._listeners[e]=t}removeCallback(e){delete this._listeners[e]}}class g{constructor(e){s(this,"control");s(this,"worker");s(this,"publicMsgEmitter");s(this,"plugins",new Map);const{control:t,publicMsgEmitter:r}=e;this.control=t,this.publicMsgEmitter=r,this.worker=t.worker}use(e){this.plugins.set(e.kind,e),e._inject(this.control),e.onCreate()}destroy(){this.plugins.forEach(e=>{this.plugins.delete(e.kind),e.onDestroy()})}dispatchPluginEvent(e,...t){this.plugins.forEach(r=>{r._onEvent(e,t)})}}async function k(i){return u(i),Promise.resolve().then(()=>require("./index-B00mKJ2E.js")).then(e=>e.index)}exports.Plugin=d;exports.PluginManager=g;exports.fullWorker=a;exports.getWhiteWebSdkBridgeRuntime=c;exports.loadAppliancePluginBridge=k;exports.subWorker=h;
1
+ "use strict";var o=Object.defineProperty;var l=(i,e,t)=>e in i?o(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var s=(i,e,t)=>l(i,typeof e!="symbol"?e+"":e,t);let n;function u(i){n=i}function c(){if(!n)throw new Error("[@netless/appliance-plugin/bridge] white-web-sdk runtime has not been bound yet.");return n}const a="/assets/fullWorker-B_mvkoeW.js",h="/assets/subWorker-CRdsidWT.js";class d{constructor(){s(this,"control");s(this,"_listeners",{})}_inject(e){this.control=e}_onEvent(e,t){this._listeners[e]&&this._listeners[e](...t)}callbacks(e,t){this._listeners[e]=t}removeCallback(e){delete this._listeners[e]}}class g{constructor(e){s(this,"control");s(this,"worker");s(this,"publicMsgEmitter");s(this,"plugins",new Map);const{control:t,publicMsgEmitter:r}=e;this.control=t,this.publicMsgEmitter=r,this.worker=t.worker}use(e){this.plugins.set(e.kind,e),e._inject(this.control),e.onCreate()}destroy(){this.plugins.forEach(e=>{this.plugins.delete(e.kind),e.onDestroy()})}dispatchPluginEvent(e,...t){this.plugins.forEach(r=>{r._onEvent(e,t)})}}async function k(i){return u(i),Promise.resolve().then(()=>require("./index-BSD0B_eV.js")).then(e=>e.index)}exports.Plugin=d;exports.PluginManager=g;exports.fullWorker=a;exports.getWhiteWebSdkBridgeRuntime=c;exports.loadAppliancePluginBridge=k;exports.subWorker=h;
package/dist/bridge.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./bridge-DO3A2FRh.js");exports.Plugin=r.Plugin;exports.fullWorkerUrl=r.fullWorker;exports.loadAppliancePluginBridge=r.loadAppliancePluginBridge;exports.subWorkerUrl=r.subWorker;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./bridge-enxPG6qf.js");exports.Plugin=r.Plugin;exports.fullWorkerUrl=r.fullWorker;exports.loadAppliancePluginBridge=r.loadAppliancePluginBridge;exports.subWorkerUrl=r.subWorker;
package/dist/bridge.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { a, f as s, l as e, s as o } from "./bridge-DskXXarZ.mjs";
1
+ import { a, f as s, l as e, s as o } from "./bridge-DYkH1J6p.mjs";
2
2
  export {
3
3
  a as Plugin,
4
4
  s as fullWorkerUrl,
@@ -60,6 +60,7 @@ export declare class Collector extends BaseCollector<ISerializableStorageViewDat
60
60
  scenePath: string;
61
61
  isSync?: boolean;
62
62
  storage?: ISerializableStorageViewData;
63
+ onApplied?: () => void;
63
64
  }): void;
64
65
  private runSyncService;
65
66
  private syncSerivice;
@@ -1,4 +1,4 @@
1
- import type { EPostMessageType, EToolsKey, EventMessageType } from "../core/enum";
1
+ import type { EPostMessageType, EToolsKey, EventMessageType, EventWorkState } from "../core/enum";
2
2
  import type { ShapeOptions } from "../core/tools";
3
3
  import type { IUpdateNodeOpt, IworkId } from "../core/types";
4
4
  import type { _ObjectTrue, EmitEventType } from "../plugin/types";
@@ -55,6 +55,10 @@ export interface INormalPushMsg {
55
55
  scenePath?: string;
56
56
  isActive?: string;
57
57
  needUndoTicker?: number;
58
+ collectUndoTicker?: number;
59
+ requestId?: string;
60
+ /** selector 事件专用:当前选中操作的生命周期 */
61
+ workState?: EventWorkState;
58
62
  }
59
63
  export interface INormalStorageData {
60
64
  [key: string]: IStorageValueItem | undefined;
@@ -41,6 +41,7 @@ export interface TextEditorManager {
41
41
  viewId: string;
42
42
  canWorker: boolean;
43
43
  canSync: boolean;
44
+ needUndoTicker?: number;
44
45
  }, undoTickerId?: number): void;
45
46
  /** 修改文本来并等到新数据 */
46
47
  updateTextControllerWithEffectAsync(params: Partial<TextEditorInfo> & {
@@ -48,6 +49,7 @@ export interface TextEditorManager {
48
49
  viewId: string;
49
50
  canWorker: boolean;
50
51
  canSync: boolean;
52
+ needUndoTicker?: number;
51
53
  }, undoTickerId?: number): Promise<TextEditorInfo>;
52
54
  /** 修改文本来源于worker */
53
55
  updateTextForWorker(params: Partial<TextEditorInfo> & {
@@ -88,7 +90,11 @@ export declare class TextEditorManagerImpl implements TextEditorManager {
88
90
  private undoTickerId?;
89
91
  constructor(props: BaseSubWorkModuleProps);
90
92
  get collector(): import("../../collector").Collector | undefined;
91
- set UndoTickerId(value: number);
93
+ private logTextUndo;
94
+ set UndoTickerId(value: number | undefined);
95
+ get UndoTickerId(): number | undefined;
96
+ private getDoneUndoTicker;
97
+ private ackDoneRender;
92
98
  filterEditor(viewId: string): Map<string, TextEditorInfo>;
93
99
  get interceptors(): {
94
100
  set: (workId: string, info: TextEditorInfo) => true | undefined;
@@ -113,12 +119,14 @@ export declare class TextEditorManagerImpl implements TextEditorManager {
113
119
  viewId: string;
114
120
  canWorker: boolean;
115
121
  canSync: boolean;
122
+ needUndoTicker?: number;
116
123
  }, undoTickerId?: number): void;
117
124
  updateTextControllerWithEffectAsync(params: Partial<TextEditorInfo> & {
118
125
  workId: string;
119
126
  viewId: string;
120
127
  canWorker: boolean;
121
128
  canSync: boolean;
129
+ needUndoTicker?: number;
122
130
  }, undoTickerId?: number): Promise<TextEditorInfo>;
123
131
  updateTextForWorker(params: TextEditorInfo & {
124
132
  workId: string;
@@ -1,5 +1,6 @@
1
1
  import { EDataType, EventWorkState, IUpdateNodeOpt } from "../../core";
2
2
  import { BaseShapeOptions } from "../../core/tools";
3
+ import type { EmitEventType } from "../../plugin/types";
3
4
  export declare enum ETextEditorType {
4
5
  Text = 1,
5
6
  Shape = 2
@@ -48,4 +49,8 @@ export type TextEditorInfo = {
48
49
  translate?: [number, number];
49
50
  justLocal?: boolean;
50
51
  updateNodeOpt?: IUpdateNodeOpt;
52
+ requestId?: string;
53
+ emitEventType?: EmitEventType;
54
+ skipStorageDispatch?: boolean;
55
+ undoTickerId?: number;
51
56
  };
@@ -5,3 +5,24 @@ export declare function escapeCSS(id: string): string;
5
5
  export declare function ensureTextEditorCursorTarget(currentDiv: HTMLDivElement): Text | ChildNode;
6
6
  export declare function setTextEditorSelectionToEnd(sel: Selection, currentDiv: HTMLDivElement): void;
7
7
  export declare function hasSelectionInTextEditor(selection: Selection | null | undefined, currentDiv: HTMLDivElement): boolean;
8
+ export declare function normalizeTextEditorRootLines(currentDiv: HTMLDivElement): {
9
+ changed: boolean;
10
+ lastLine: HTMLDivElement | null;
11
+ };
12
+ export declare function getTextEditorLineTextData(line: HTMLElement): {
13
+ textContent: string;
14
+ textNodes: Text[];
15
+ };
16
+ export declare function getTextEditorRootTextLines(currentDiv: HTMLDivElement): string[];
17
+ export declare function getSerializableTextEditorContent(currentDiv: HTMLDivElement): string;
18
+ export declare function resolveTextEditorTextOffset(textNodes: Text[], logicalOffset: number): {
19
+ node: Text;
20
+ offset: number;
21
+ } | undefined;
22
+ export declare function shouldPreserveExistingSelection(params: {
23
+ hasPoint: boolean;
24
+ previousByPoint: boolean;
25
+ hasSelectionInEditor: boolean;
26
+ rangeCount: number;
27
+ isCollapsed: boolean;
28
+ }): boolean;
@@ -16,8 +16,6 @@ export interface TextManagerProps {
16
16
  rightBoundBreak?: boolean;
17
17
  }
18
18
  export interface TextSelectorManagerProps extends TextManagerProps {
19
- handleTextEditorPointerDown: (workId: string) => void;
20
- handleTextEditorPointerUp: () => void;
21
19
  }
22
20
  export interface TextViewProps {
23
21
  workId: string;
@@ -29,8 +27,6 @@ export interface TextSelectorViewProps extends TextViewProps {
29
27
  update: Partial<TextOptions>;
30
28
  syncData?: Pick<TextEditorInfo, "canSync" | "canWorker">;
31
29
  }) => void;
32
- handlePointerDown: (workId: string) => void;
33
- handlePointerUp: () => void;
34
30
  }
35
31
  export interface TextEditorProps extends TextViewProps {
36
32
  showFloatBtns: boolean;
@@ -132,7 +132,9 @@ export declare enum EPostMessageType {
132
132
  /** 更新 background svg */
133
133
  BackgroundSVGUpdate = 33,
134
134
  /** delete background svg */
135
- BackgroundSVGDelete = 34
135
+ BackgroundSVGDelete = 34,
136
+ /** 选择框过渡动画 */
137
+ SelectorTransform = 35
136
138
  }
137
139
  export type ECanvasContextType = "webgl2" | "webgl" | "2d";
138
140
  export declare enum ECanvasShowType {
@@ -29,6 +29,7 @@ export declare abstract class MasterController {
29
29
  rawPoints: number[];
30
30
  isFullWork: boolean;
31
31
  viewId: string;
32
+ undoTickerId?: number;
32
33
  }>;
33
34
  /** 事件任务处理批量池 */
34
35
  abstract taskBatchData: Set<IWorkerMessage>;
@@ -139,6 +140,7 @@ export declare class MasterControlForWorker extends MasterController {
139
140
  isFullWork: boolean;
140
141
  viewId: string;
141
142
  opt?: BaseShapeOptions;
143
+ undoTickerId?: number;
142
144
  }>;
143
145
  /** end */
144
146
  /** 是否任务队列化参数 */
@@ -199,6 +201,7 @@ export declare class MasterControlForWorker extends MasterController {
199
201
  }>;
200
202
  loadFontInMainThread(url: string): Promise<ArrayBuffer | undefined>;
201
203
  private validateFontData;
204
+ private buildPropertyAppliedData;
202
205
  clearReRenders(num?: number): void;
203
206
  get isBusy(): boolean;
204
207
  getLockSentEventCursor(): boolean;
@@ -212,7 +215,6 @@ export declare class MasterControlForWorker extends MasterController {
212
215
  getConsumeCount(): number;
213
216
  setWorkerTasksqueueCount(num: number): void;
214
217
  collectorSyncData(sp: IMainMessage[]): void;
215
- foceUndoTickerEnd(id: number, viewId: string): void;
216
218
  private collectorAsyncData;
217
219
  private onLocalEventEnd;
218
220
  private onLocalEventDoing;
@@ -229,6 +231,7 @@ export declare class MasterControlForWorker extends MasterController {
229
231
  isFullWork: boolean;
230
232
  viewId: string;
231
233
  opt?: BaseShapeOptions;
234
+ undoTickerId?: number;
232
235
  }>;
233
236
  private shouldUseAutoShape;
234
237
  private toAutoShapePoints;
@@ -6,6 +6,7 @@ import { BaseCollectorReducerAction } from "../../../collector/types";
6
6
  export type CopyNodeEmtData = {
7
7
  workIds: IworkId[];
8
8
  viewId: string;
9
+ requestId?: string;
9
10
  };
10
11
  export declare class CopyNodeMethod extends BaseMsgMethod {
11
12
  protected lastEmtData?: unknown;
@@ -26,6 +27,7 @@ export declare class CopyNodeMethod extends BaseMsgMethod {
26
27
  bgCenter?: [number, number];
27
28
  textCenter?: [number, number];
28
29
  undoTickerId?: number;
30
+ requestId?: string;
29
31
  }): void;
30
32
  copySelector(param: {
31
33
  viewId: string;
@@ -46,5 +48,6 @@ export declare class CopyNodeMethod extends BaseMsgMethod {
46
48
  cameraOpt: Pick<ICameraOpt, "centerX" | "centerY" | "scale">;
47
49
  };
48
50
  undoTickerId?: number;
51
+ requestId?: string;
49
52
  }): void;
50
53
  }
@@ -0,0 +1,9 @@
1
+ export type CopyNodeKeyCollector = {
2
+ isLocalId(id: string): boolean;
3
+ getLocalId(id: string): string | undefined;
4
+ };
5
+ export declare function buildCopyNodeKey(sourceKey: string, undoTickerId: number | undefined, collector: CopyNodeKeyCollector): string;
6
+ export declare function buildCopyNodeKeyMap(sourceKeys: Iterable<string>, undoTickerId: number | undefined, collector: CopyNodeKeyCollector): {
7
+ copyNodeKeyBySourceKey: Map<string, string>;
8
+ expectedWorkIds: string[];
9
+ };
@@ -4,6 +4,7 @@ import { IworkId } from "../../types";
4
4
  export type DeleteNodeEmtData = {
5
5
  workIds: IworkId[];
6
6
  viewId: string;
7
+ requestId?: string;
7
8
  };
8
9
  export declare class DeleteNodeMethod extends BaseMsgMethod {
9
10
  protected lastEmtData?: unknown;
@@ -12,11 +12,13 @@ export type SetColorNodeEmtData = {
12
12
  strokeType?: EStrokeType;
13
13
  workState: EventWorkState;
14
14
  viewId: string;
15
+ requestId?: string;
15
16
  };
16
17
  export declare class SetColorNodeMethod extends BaseMsgMethod {
17
18
  protected lastEmtData?: unknown;
18
19
  readonly emitEventType: EmitEventType;
19
20
  private undoTickerId?;
21
+ private ensureUndoTicker;
20
22
  private setTextColor;
21
23
  collect(data: SetColorNodeEmtData): void;
22
24
  }
@@ -10,6 +10,7 @@ export type SetFontEmtData = {
10
10
  italic?: FontStyleType;
11
11
  fontSize?: number;
12
12
  viewId: string;
13
+ requestId?: string;
13
14
  };
14
15
  export declare class SetFontStyleMethod extends BaseMsgMethod {
15
16
  protected lastEmtData?: unknown;
@@ -5,6 +5,7 @@ export type SetLockEmitData = {
5
5
  workIds: IworkId[];
6
6
  isLocked: boolean;
7
7
  viewId: string;
8
+ requestId?: string;
8
9
  };
9
10
  export declare class SetLockMethod extends BaseMsgMethod {
10
11
  protected lastEmtData?: unknown;
@@ -11,6 +11,7 @@ export type SetShapeEmtData = {
11
11
  innerVerticeStep?: number;
12
12
  innerRatio?: number;
13
13
  placement?: SpeechBalloonPlacement;
14
+ requestId?: string;
14
15
  };
15
16
  export declare class SetShapeOptMethod extends BaseMsgMethod {
16
17
  protected lastEmtData?: unknown;
@@ -6,6 +6,8 @@ export type ZIndexNodeEmtData = {
6
6
  workIds: IworkId[];
7
7
  layer: ElayerType;
8
8
  viewId: string;
9
+ requestId?: string;
10
+ workState?: number;
9
11
  };
10
12
  export declare class ZIndexNodeMethod extends BaseMsgMethod {
11
13
  protected lastEmtData?: unknown;
@@ -26,6 +26,7 @@ export declare class PencilShape extends BaseShapeTool {
26
26
  protected workOptions: PencilOptions;
27
27
  private centerPos;
28
28
  constructor(props: BaseShapeToolProps);
29
+ private setPointVector;
29
30
  /** 批量合并消费本地数据,返回绘制结果 */
30
31
  combineConsume(): IMainMessage | undefined;
31
32
  setWorkOptions(workOptions: PencilOptions): void;
@@ -82,7 +82,11 @@ export declare class SelectorShape extends BaseShapeTool {
82
82
  useStroke: boolean | undefined;
83
83
  strokeType: EStrokeType | undefined;
84
84
  } | {
85
+ workId: string;
86
+ toolsType: EToolsKey;
87
+ opt: import("./utils").ShapeOptions;
85
88
  type: EPostMessageType;
89
+ dataType: EDataType;
86
90
  };
87
91
  consumeService(): undefined;
88
92
  private updateTempPointsForSubWorker;
@@ -214,6 +214,9 @@ export interface IMainMessage extends INormalPushMsg {
214
214
  nextTasks?: IMainMessage[];
215
215
  setFontFaceResult?: boolean;
216
216
  needUndoTicker?: number;
217
+ collectUndoTicker?: number;
218
+ undoScopeIds?: string[];
219
+ undoScopePhase?: "collect" | "finalize";
217
220
  clearPreviewLocalWork?: boolean;
218
221
  autoShapeResult?: AutoShapeResult;
219
222
  [key: string]: any;
@@ -262,12 +265,14 @@ export interface IUpdateSelectorPropsType {
262
265
  willSyncService?: boolean;
263
266
  willSerializeData?: boolean;
264
267
  emitEventType?: EmitEventType;
268
+ requestId?: string;
265
269
  isSync?: boolean;
266
270
  textUpdateForWoker?: boolean;
267
271
  /** 平滑同步 */
268
272
  smoothSync?: boolean;
269
273
  /** 记录撤销重做id */
270
274
  needUndoTicker?: number;
275
+ collectUndoTicker?: number;
271
276
  }
272
277
  export interface IUpdateSelectorCallbackPropsType {
273
278
  res?: IMainMessage;
@@ -293,6 +298,7 @@ export interface IActiveWorkDataType {
293
298
  toolsOpt?: ShapeOptions;
294
299
  viewId?: string;
295
300
  workId?: IworkId;
301
+ undoTickerId?: number;
296
302
  }
297
303
  export type IServiceWorkItem = {
298
304
  toolsType: EToolsKey;
@@ -1,4 +1,4 @@
1
- import { IWorkerMessage, IMainMessage, IRectType, EToolsKey, IBatchMainMessage, IUpdateSelectorPropsType } from "..";
1
+ import { IWorkerMessage, IMainMessage, IRectType, EToolsKey, IBatchMainMessage, EventWorkState, IUpdateSelectorPropsType } from "..";
2
2
  import { BaseShapeOptions, SelectorShape } from "../tools";
3
3
  import { ISubWorkerInitOption, LocalWork } from "./base";
4
4
  import { ServiceWorkForFullWorker } from "./fullWorkerService";
@@ -50,12 +50,12 @@ export declare class LocalWorkForFullWorker extends LocalWork {
50
50
  reRenderSelector(willSyncService?: boolean): Promise<void>;
51
51
  updateFullSelectWork(data: IWorkerMessage): Promise<void>;
52
52
  destroy(): void;
53
- protected drawEraserCombine(workId: string, drawCount: number): Promise<void>;
53
+ protected drawEraserCombine(workId: string, drawCount: number, needUndoTicker?: number, collectUndoTicker?: number): Promise<void>;
54
54
  protected drawPencilCombine(workId: string, drawCount: number): Promise<void>;
55
- protected drawSelector(res: IMainMessage, isLockSentEventCursor?: boolean): Promise<void>;
55
+ protected drawSelector(res: IMainMessage, workState: EventWorkState, isLockSentEventCursor?: boolean): Promise<void>;
56
56
  protected drawPencilFull(res: IMainMessage, isLockSentEventCursor?: boolean, needUndoTicker?: number): Promise<void>;
57
57
  protected drawEraserFull(workShapeNode: BitMapEraserShape | PencilEraserShape, res: IMainMessage, isLockSentEventCursor?: boolean, needUndoTicker?: number): Promise<void>;
58
- protected drawEraser(result: IMainMessage, isLockSentEventCursor?: boolean, needUndoTicker?: number): Promise<void>;
58
+ protected drawEraser(result: IMainMessage, isLockSentEventCursor?: boolean, needUndoTicker?: number, collectUndoTicker?: number): Promise<void>;
59
59
  protected drawShape(res: IMainMessage): Promise<void>;
60
60
  protected drawPencil(res: IMainMessage): Promise<void>;
61
61
  protected runEffectSelectWork(willSyncService?: boolean): Promise<void>;
@@ -1,4 +1,4 @@
1
- import { IActiveToolsDataType, IMainMessage, IMainMessageRenderData, IWorkerMessage } from "../index";
1
+ import { EventWorkState, IActiveToolsDataType, IMainMessage, IMainMessageRenderData, IWorkerMessage } from "../index";
2
2
  import { ISubWorkerInitOption } from "./base";
3
3
  import { LocalWorkForFullWorker } from "./fullWorkerLocal";
4
4
  import { ServiceWorkForFullWorker } from "./fullWorkerService";
@@ -15,7 +15,7 @@ export declare class LocalWorkForSimpleWorker extends LocalWorkForFullWorker {
15
15
  }): 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 | PencilEraserShape | BitMapEraserShape | SelectorShape | ImageShape | ISvgShadowShape | undefined;
16
16
  protected drawPencil(res: IMainMessage, workId?: string): Promise<void>;
17
17
  protected drawShape(res: IMainMessage): Promise<void>;
18
- protected drawSelector(res: IMainMessage, isLockSentEventCursor?: boolean, render?: IMainMessageRenderData[]): Promise<void>;
18
+ protected drawSelector(res: IMainMessage, workState: EventWorkState, isLockSentEventCursor?: boolean, render?: IMainMessageRenderData[]): Promise<void>;
19
19
  protected drawEraserCombine(workId: string): Promise<void>;
20
20
  consumeDraw(data: IWorkerMessage, serviceWork: ServiceWorkForFullWorker): Promise<void>;
21
21
  consumeDrawAll(data: IWorkerMessage, serviceWork: ServiceWorkForFullWorker): Promise<void>;
@@ -0,0 +1,13 @@
1
+ type SelectorTextActivationManagerLike = {
2
+ viewId: string;
3
+ control: {
4
+ worker: {
5
+ now: number;
6
+ };
7
+ textEditorManager: {
8
+ active: (workId: string, undoTickerId?: number) => void;
9
+ };
10
+ };
11
+ };
12
+ export declare function activateSelectorTextEditor(mananger: SelectorTextActivationManagerLike, workId: string): number;
13
+ export {};
@@ -0,0 +1,19 @@
1
+ type SelectorSwitchManagerLike = {
2
+ viewId: string;
3
+ control: {
4
+ internalMsgEmitter: {
5
+ emit: (event: string, undoTickerId: number, viewId: string, scenePath: string) => void;
6
+ };
7
+ worker: {
8
+ abled: () => void;
9
+ };
10
+ viewContainerManager: {
11
+ getView: (viewId: string) => {
12
+ focusScenePath?: string;
13
+ } | undefined;
14
+ getUndoTickerId: (viewId: string) => number | undefined;
15
+ };
16
+ };
17
+ };
18
+ export declare function cancelSelectorTranslateUndo(mananger?: SelectorSwitchManagerLike): void;
19
+ export {};