@netless/appliance-plugin 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.
Files changed (128) hide show
  1. package/README.md +138 -0
  2. package/cdn/appliance-plugin.js +1 -0
  3. package/cdn/appliance-plugin.mjs +8639 -0
  4. package/cdn/style.css +1 -0
  5. package/dist/appliance-plugin.js +1 -0
  6. package/dist/appliance-plugin.mjs +8639 -0
  7. package/dist/collector/base.d.ts +20 -0
  8. package/dist/collector/collector.d.ts +53 -0
  9. package/dist/collector/const.d.ts +3 -0
  10. package/dist/collector/enum.d.ts +13 -0
  11. package/dist/collector/eventCollector.d.ts +29 -0
  12. package/dist/collector/index.d.ts +4 -0
  13. package/dist/collector/types.d.ts +70 -0
  14. package/dist/collector/utils/color.d.ts +31 -0
  15. package/dist/collector/utils/index.d.ts +5 -0
  16. package/dist/component/textEditor/index.d.ts +2 -0
  17. package/dist/component/textEditor/manager.d.ts +120 -0
  18. package/dist/component/textEditor/types.d.ts +50 -0
  19. package/dist/component/textEditor/utils.d.ts +3 -0
  20. package/dist/component/textEditor/view.d.ts +68 -0
  21. package/dist/core/const.d.ts +1 -0
  22. package/dist/core/enum.d.ts +135 -0
  23. package/dist/core/index.d.ts +3 -0
  24. package/dist/core/mainEngine.d.ts +163 -0
  25. package/dist/core/msgEvent/activeZIndex/forMain.d.ts +12 -0
  26. package/dist/core/msgEvent/activeZIndex/forWorker.d.ts +8 -0
  27. package/dist/core/msgEvent/base.d.ts +18 -0
  28. package/dist/core/msgEvent/baseForWorker.d.ts +13 -0
  29. package/dist/core/msgEvent/copyNode/forMain.d.ts +47 -0
  30. package/dist/core/msgEvent/copyNode/forWorker.d.ts +8 -0
  31. package/dist/core/msgEvent/deleteNode/forMain.d.ts +11 -0
  32. package/dist/core/msgEvent/deleteNode/forWorker.d.ts +13 -0
  33. package/dist/core/msgEvent/forWorker.d.ts +14 -0
  34. package/dist/core/msgEvent/index.d.ts +15 -0
  35. package/dist/core/msgEvent/rotateNode/forMain.d.ts +16 -0
  36. package/dist/core/msgEvent/rotateNode/forWorker.d.ts +9 -0
  37. package/dist/core/msgEvent/scaleNode/forMain.d.ts +20 -0
  38. package/dist/core/msgEvent/scaleNode/forWorker.d.ts +9 -0
  39. package/dist/core/msgEvent/setColor/forMain.d.ts +18 -0
  40. package/dist/core/msgEvent/setColor/forWorker.d.ts +9 -0
  41. package/dist/core/msgEvent/setFont/forMain.d.ts +18 -0
  42. package/dist/core/msgEvent/setFont/forWorker.d.ts +9 -0
  43. package/dist/core/msgEvent/setLock/forMain.d.ts +12 -0
  44. package/dist/core/msgEvent/setLock/forWorker.d.ts +9 -0
  45. package/dist/core/msgEvent/setPoint/forMain.d.ts +15 -0
  46. package/dist/core/msgEvent/setPoint/forWorker.d.ts +9 -0
  47. package/dist/core/msgEvent/setShape/forMain.d.ts +18 -0
  48. package/dist/core/msgEvent/setShape/forWorker.d.ts +9 -0
  49. package/dist/core/msgEvent/setZIndex/forMain.d.ts +22 -0
  50. package/dist/core/msgEvent/setZIndex/forWorker.d.ts +9 -0
  51. package/dist/core/msgEvent/translateNode/forMain.d.ts +20 -0
  52. package/dist/core/msgEvent/translateNode/forWorker.d.ts +9 -0
  53. package/dist/core/tools/arrow.d.ts +46 -0
  54. package/dist/core/tools/base.d.ts +82 -0
  55. package/dist/core/tools/ellipse.d.ts +44 -0
  56. package/dist/core/tools/eraser.d.ts +41 -0
  57. package/dist/core/tools/image.d.ts +53 -0
  58. package/dist/core/tools/index.d.ts +13 -0
  59. package/dist/core/tools/laserPen.d.ts +42 -0
  60. package/dist/core/tools/pencil.d.ts +66 -0
  61. package/dist/core/tools/polygon.d.ts +45 -0
  62. package/dist/core/tools/rectangle.d.ts +46 -0
  63. package/dist/core/tools/selector.d.ts +83 -0
  64. package/dist/core/tools/speechBalloon.d.ts +49 -0
  65. package/dist/core/tools/star.d.ts +47 -0
  66. package/dist/core/tools/straight.d.ts +46 -0
  67. package/dist/core/tools/text.d.ts +42 -0
  68. package/dist/core/tools/utils.d.ts +39 -0
  69. package/dist/core/types.d.ts +295 -0
  70. package/dist/core/utils/bezier.d.ts +43 -0
  71. package/dist/core/utils/getSvgPathFromPoints.d.ts +10 -0
  72. package/dist/core/utils/index.d.ts +364 -0
  73. package/dist/core/utils/math.d.ts +57 -0
  74. package/dist/core/utils/primitives/Box2d.d.ts +100 -0
  75. package/dist/core/utils/primitives/Point2d.d.ts +71 -0
  76. package/dist/core/utils/primitives/Vec2d.d.ts +146 -0
  77. package/dist/core/utils/primitives/easings.d.ts +24 -0
  78. package/dist/core/utils/proxy.d.ts +21 -0
  79. package/dist/core/utils/spriteNode.d.ts +4 -0
  80. package/dist/core/worker/base.d.ts +103 -0
  81. package/dist/core/worker/fullWorker.d.ts +1 -0
  82. package/dist/core/worker/fullWorkerLocal.d.ts +46 -0
  83. package/dist/core/worker/fullWorkerService.d.ts +41 -0
  84. package/dist/core/worker/subWorker.d.ts +1 -0
  85. package/dist/core/worker/subWorkerLocal.d.ts +20 -0
  86. package/dist/core/worker/vNodeManager.d.ts +32 -0
  87. package/dist/core/worker/workerManager.d.ts +71 -0
  88. package/dist/cursors/index.d.ts +73 -0
  89. package/dist/displayer/const.d.ts +11 -0
  90. package/dist/displayer/cursor/index.d.ts +15 -0
  91. package/dist/displayer/floatBar/index.d.ts +10 -0
  92. package/dist/displayer/floatBtns/colors.d.ts +6 -0
  93. package/dist/displayer/floatBtns/del.d.ts +6 -0
  94. package/dist/displayer/floatBtns/duplicate.d.ts +5 -0
  95. package/dist/displayer/floatBtns/fontSize.d.ts +4 -0
  96. package/dist/displayer/floatBtns/fontStyle.d.ts +4 -0
  97. package/dist/displayer/floatBtns/index.d.ts +11 -0
  98. package/dist/displayer/floatBtns/layer.d.ts +3 -0
  99. package/dist/displayer/floatBtns/lock.d.ts +7 -0
  100. package/dist/displayer/floatBtns/shapeOpt.d.ts +3 -0
  101. package/dist/displayer/highlightBox/index.d.ts +5 -0
  102. package/dist/displayer/icons/index.d.ts +4 -0
  103. package/dist/displayer/resizable/index.d.ts +16 -0
  104. package/dist/displayer/rotate/index.d.ts +4 -0
  105. package/dist/displayer/types.d.ts +51 -0
  106. package/dist/hotkey/index.d.ts +51 -0
  107. package/dist/index.d.ts +1 -0
  108. package/dist/members/index.d.ts +15 -0
  109. package/dist/plugin/applianceMultiPlugin.d.ts +24 -0
  110. package/dist/plugin/applianceSinglePlugin.d.ts +28 -0
  111. package/dist/plugin/baseApplianceManager.d.ts +82 -0
  112. package/dist/plugin/baseViewContainerManager.d.ts +174 -0
  113. package/dist/plugin/displayerView.d.ts +55 -0
  114. package/dist/plugin/external.d.ts +2 -0
  115. package/dist/plugin/index.d.ts +6 -0
  116. package/dist/plugin/multi/applianceMultiManager.d.ts +14 -0
  117. package/dist/plugin/multi/containerManager.d.ts +24 -0
  118. package/dist/plugin/multi/displayer/appViewDisplayerManager.d.ts +24 -0
  119. package/dist/plugin/multi/displayer/mainViewDisplayerManager.d.ts +25 -0
  120. package/dist/plugin/single/applianceDisplayer.d.ts +16 -0
  121. package/dist/plugin/single/applianceSingleManager.d.ts +13 -0
  122. package/dist/plugin/single/containerManager.d.ts +11 -0
  123. package/dist/plugin/single/displayer/mainViewDisplayerManager.d.ts +25 -0
  124. package/dist/plugin/types.d.ts +310 -0
  125. package/dist/plugin/utils.d.ts +6 -0
  126. package/dist/style.css +1 -0
  127. package/dist/undo/index.d.ts +70 -0
  128. package/package.json +59 -0
@@ -0,0 +1,82 @@
1
+ import { Point2d } from "../utils/primitives/Point2d";
2
+ import { EScaleType, EToolsKey } from "../enum";
3
+ import { BaseNodeMapItem, IMainMessage, IRectType, IUpdateNodeOpt, IWorkerMessage } from "../types";
4
+ import { Group } from "spritejs";
5
+ import { VNodeManager } from "../worker/vNodeManager";
6
+ import { ShapeNodes, ShapeOptions } from "./utils";
7
+ import { TextOptions } from "../../component/textEditor/types";
8
+ export interface BaseShapeOptions {
9
+ isOpacity?: boolean;
10
+ fontColor?: string;
11
+ fontBgColor?: string;
12
+ strokeColor?: string;
13
+ fillColor?: string;
14
+ vertex?: string;
15
+ fragment?: string;
16
+ syncUnitTime?: number;
17
+ zIndex?: number;
18
+ scale?: [number, number];
19
+ rotate?: number;
20
+ thickness?: number;
21
+ textOpt?: TextOptions;
22
+ translate?: [number, number];
23
+ }
24
+ export interface BaseShapeToolProps {
25
+ vNodes: VNodeManager;
26
+ toolsOpt: ShapeOptions;
27
+ fullLayer: Group;
28
+ drawLayer?: Group;
29
+ }
30
+ export declare abstract class BaseShapeTool {
31
+ static SafeBorderPadding: number;
32
+ protected abstract tmpPoints: Array<Point2d | number>;
33
+ readonly abstract toolsType: EToolsKey;
34
+ readonly abstract canRotate: boolean;
35
+ readonly abstract scaleType: EScaleType;
36
+ syncUnitTime: number;
37
+ vNodes: VNodeManager;
38
+ protected drawLayer?: Group;
39
+ protected fullLayer: Group;
40
+ protected workId: number | string | undefined;
41
+ protected abstract workOptions: ShapeOptions;
42
+ constructor(props: BaseShapeToolProps);
43
+ /** 消费本地数据,返回绘制结果 */
44
+ abstract consume(props: {
45
+ data: IWorkerMessage;
46
+ isFullWork?: boolean;
47
+ isClearAll?: boolean;
48
+ isSubWorker?: boolean;
49
+ }): IMainMessage;
50
+ /** 消费本地完整数据,返回绘制结果 */
51
+ abstract consumeAll(props: {
52
+ data?: IWorkerMessage;
53
+ hoverId?: string;
54
+ }): IMainMessage;
55
+ /** 消费服务端数据,返回绘制结果 */
56
+ abstract consumeService(props: {
57
+ op: number[];
58
+ isFullWork: boolean;
59
+ replaceId?: string;
60
+ isClearAll?: boolean;
61
+ }): IRectType | undefined;
62
+ /** 清除临时数据 */
63
+ abstract clearTmpPoints(): void;
64
+ /** 设置工作id */
65
+ setWorkId(id: number | string | undefined): void;
66
+ getWorkId(): string | number | undefined;
67
+ /** 获取工作选项配置 */
68
+ getWorkOptions(): ShapeOptions;
69
+ /** 设置工作选项配置 */
70
+ setWorkOptions(workOptions: BaseShapeOptions): void;
71
+ /** 更新服务端同步配置,返回绘制结果 */
72
+ updataOptService(opt?: IUpdateNodeOpt): IRectType | undefined;
73
+ static updateNodeOpt(param: {
74
+ node: ShapeNodes;
75
+ opt: IUpdateNodeOpt;
76
+ vNodes: VNodeManager;
77
+ willSerializeData?: boolean;
78
+ targetNode?: BaseNodeMapItem;
79
+ }): IRectType | undefined;
80
+ static getCenterPos(r: IRectType, layer: Group): [number, number];
81
+ static getRectFromLayer(layer: Group, name: string): IRectType | undefined;
82
+ }
@@ -0,0 +1,44 @@
1
+ import { IWorkerMessage, IMainMessage, IRectType, IUpdateNodeOpt } from "../types";
2
+ import { EScaleType, EToolsKey } from "../enum";
3
+ import { Point2d } from "../utils/primitives/Point2d";
4
+ import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
5
+ import { VNodeManager } from "../worker/vNodeManager";
6
+ import { ShapeNodes } from "./utils";
7
+ export interface EllipseOptions extends BaseShapeOptions {
8
+ thickness: number;
9
+ strokeColor: string;
10
+ fillColor: string;
11
+ }
12
+ export declare class EllipseShape extends BaseShapeTool {
13
+ readonly canRotate: boolean;
14
+ readonly scaleType: EScaleType;
15
+ readonly toolsType: EToolsKey;
16
+ protected tmpPoints: Array<Point2d>;
17
+ protected workOptions: EllipseOptions;
18
+ oldRect?: IRectType;
19
+ private syncTimestamp;
20
+ constructor(props: BaseShapeToolProps);
21
+ consume(props: {
22
+ data: IWorkerMessage;
23
+ isFullWork?: boolean | undefined;
24
+ isClearAll?: boolean | undefined;
25
+ isSubWorker?: boolean | undefined;
26
+ }): IMainMessage;
27
+ consumeAll(props: {
28
+ data?: IWorkerMessage | undefined;
29
+ }): IMainMessage;
30
+ private draw;
31
+ private computDrawPoints;
32
+ private updateTempPoints;
33
+ consumeService(props: {
34
+ op: number[];
35
+ isFullWork: boolean;
36
+ }): IRectType | undefined;
37
+ clearTmpPoints(): void;
38
+ static updateNodeOpt(param: {
39
+ node: ShapeNodes;
40
+ opt: IUpdateNodeOpt;
41
+ vNodes: VNodeManager;
42
+ willSerializeData?: boolean;
43
+ }): IRectType | undefined;
44
+ }
@@ -0,0 +1,41 @@
1
+ import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
2
+ import { EScaleType, EToolsKey } from "../enum";
3
+ import { IWorkerMessage, IMainMessage, IRectType } from "../types";
4
+ import type { ServiceWorkForFullWorker } from "../worker/fullWorkerService";
5
+ export interface EraserOptions extends BaseShapeOptions {
6
+ thickness: number;
7
+ isLine: boolean;
8
+ }
9
+ export declare class EraserShape extends BaseShapeTool {
10
+ readonly canRotate: boolean;
11
+ readonly scaleType: EScaleType;
12
+ readonly toolsType: EToolsKey;
13
+ readonly serviceWork?: ServiceWorkForFullWorker;
14
+ private static readonly eraserSizes;
15
+ protected tmpPoints: Array<number>;
16
+ protected workOptions: EraserOptions;
17
+ worldPosition: [number, number];
18
+ worldScaling: [number, number];
19
+ eraserRect: IRectType | undefined;
20
+ eraserPolyline?: [number, number, number, number];
21
+ constructor(props: BaseShapeToolProps, serviceWork?: ServiceWorkForFullWorker);
22
+ combineConsume(): undefined;
23
+ consumeService(): IRectType | undefined;
24
+ setWorkOptions(setWorkOptions: EraserOptions): void;
25
+ private createEraserRect;
26
+ private computRectCenterPoints;
27
+ private isNear;
28
+ private cutPolyline;
29
+ private isSamePoint;
30
+ private translateIntersect;
31
+ private isLineEraser;
32
+ private remove;
33
+ consume(props: {
34
+ data: IWorkerMessage;
35
+ }): IMainMessage;
36
+ consumeAll(props: {
37
+ data: IWorkerMessage;
38
+ }): IMainMessage;
39
+ clearTmpPoints(): void;
40
+ private getUnLockNodeMap;
41
+ }
@@ -0,0 +1,53 @@
1
+ import { Scene } from "spritejs";
2
+ import { IMainMessage, IRectType, IUpdateNodeOpt, BaseNodeMapItem } from "../types";
3
+ import { EScaleType, EToolsKey } from "../enum";
4
+ import { Point2d } from "../utils/primitives/Point2d";
5
+ import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
6
+ import { VNodeManager } from "../worker/vNodeManager";
7
+ import { ShapeNodes } from "./utils";
8
+ export interface ImageOptions extends BaseShapeOptions {
9
+ /** 图片的唯一识别符 */
10
+ uuid: string;
11
+ /** 图片中点在世界坐标系中的 x 坐标 */
12
+ centerX: number;
13
+ /** 图片中点在世界坐标系中的 y 坐标 */
14
+ centerY: number;
15
+ /** 图片中点在世界坐标系中的宽 */
16
+ width: number;
17
+ /** 图片中点在世界坐标系中的高 */
18
+ height: number;
19
+ /** 图片是否被锁定 */
20
+ locked: boolean;
21
+ /** 图片是否禁止非等比放缩 */
22
+ uniformScale?: boolean;
23
+ /** 是否以跨域方式加载图片 */
24
+ crossOrigin?: boolean | string;
25
+ /** 图片地址 */
26
+ src: string;
27
+ }
28
+ export declare class ImageShape extends BaseShapeTool {
29
+ readonly canRotate: boolean;
30
+ scaleType: EScaleType;
31
+ readonly toolsType: EToolsKey;
32
+ protected tmpPoints: Array<Point2d>;
33
+ protected workOptions: ImageOptions;
34
+ oldRect?: IRectType;
35
+ constructor(props: BaseShapeToolProps);
36
+ consume(): IMainMessage;
37
+ consumeAll(): IMainMessage;
38
+ private draw;
39
+ consumeService(): IRectType | undefined;
40
+ consumeServiceAsync(props: {
41
+ isFullWork: boolean;
42
+ scene: Scene;
43
+ replaceId?: string;
44
+ }): Promise<IRectType | undefined>;
45
+ clearTmpPoints(): void;
46
+ static updateNodeOpt(param: {
47
+ node: ShapeNodes;
48
+ opt: IUpdateNodeOpt;
49
+ vNodes: VNodeManager;
50
+ willSerializeData?: boolean;
51
+ targetNode?: BaseNodeMapItem;
52
+ }): IRectType | undefined;
53
+ }
@@ -0,0 +1,13 @@
1
+ export * from './base';
2
+ export * from './pencil';
3
+ export * from './laserPen';
4
+ export * from './eraser';
5
+ export * from './selector';
6
+ export * from './arrow';
7
+ export * from './ellipse';
8
+ export * from './rectangle';
9
+ export * from './star';
10
+ export * from './polygon';
11
+ export * from './speechBalloon';
12
+ export * from './image';
13
+ export * from './utils';
@@ -0,0 +1,42 @@
1
+ import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
2
+ import { EScaleType, EToolsKey } from "../enum";
3
+ import { IWorkerMessage, IMainMessage, IRectType } from "../types";
4
+ import { EStrokeType } from "../../plugin/types";
5
+ import { Point2d } from "../utils/primitives/Point2d";
6
+ export interface LaserPenOptions extends BaseShapeOptions {
7
+ thickness: number;
8
+ duration: number;
9
+ strokeColor: string;
10
+ strokeType: Omit<EStrokeType, 'Stroke'>;
11
+ }
12
+ export declare class LaserPenShape extends BaseShapeTool {
13
+ readonly toolsType: EToolsKey;
14
+ readonly canRotate: boolean;
15
+ readonly scaleType: EScaleType;
16
+ protected syncTimestamp: number;
17
+ private syncIndex;
18
+ protected tmpPoints: Array<Point2d>;
19
+ protected workOptions: LaserPenOptions;
20
+ private consumeIndex;
21
+ constructor(props: BaseShapeToolProps);
22
+ combineConsume(): undefined;
23
+ setWorkOptions(workOptions: LaserPenOptions): void;
24
+ consume(props: {
25
+ data: IWorkerMessage;
26
+ isFullWork: boolean;
27
+ isSubWorker?: boolean;
28
+ }): IMainMessage;
29
+ consumeAll(): IMainMessage;
30
+ clearTmpPoints(): void;
31
+ consumeService(props: {
32
+ op: number[];
33
+ isFullWork?: boolean;
34
+ replaceId?: string;
35
+ }): IRectType | undefined;
36
+ private computDotStroke;
37
+ private updateTempPoints;
38
+ private draw;
39
+ private getTaskPoints;
40
+ removeLocal(): undefined;
41
+ removeService(key: string): IRectType | undefined;
42
+ }
@@ -0,0 +1,66 @@
1
+ import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
2
+ import { EScaleType, EToolsKey } from "../enum";
3
+ import { Point2d } from "../utils/primitives/Point2d";
4
+ import { IWorkerMessage, IMainMessage, IRectType, IUpdateNodeOpt } from "../types";
5
+ import { EStrokeType } from "../../plugin/types";
6
+ import { ShapeNodes } from "./utils";
7
+ import { VNodeManager } from "../worker/vNodeManager";
8
+ export interface PencilOptions extends BaseShapeOptions {
9
+ thickness: number;
10
+ strokeColor: string;
11
+ strokeType: EStrokeType;
12
+ }
13
+ export declare class PencilShape extends BaseShapeTool {
14
+ readonly canRotate: boolean;
15
+ readonly scaleType: EScaleType;
16
+ readonly toolsType: EToolsKey;
17
+ private syncTimestamp;
18
+ private syncIndex;
19
+ protected tmpPoints: Array<Point2d>;
20
+ private MAX_REPEAR;
21
+ /** 合并原始点的灵敏度 */
22
+ private uniThickness;
23
+ protected workOptions: PencilOptions;
24
+ private centerPos;
25
+ constructor(props: BaseShapeToolProps);
26
+ /** 批量合并消费本地数据,返回绘制结果 */
27
+ combineConsume(): IMainMessage | undefined;
28
+ setWorkOptions(workOptions: PencilOptions): void;
29
+ consume(props: {
30
+ data: IWorkerMessage;
31
+ isFullWork?: boolean;
32
+ isClearAll?: boolean;
33
+ isSubWorker?: boolean;
34
+ }): IMainMessage;
35
+ consumeAll(props: {
36
+ data?: IWorkerMessage;
37
+ }): IMainMessage;
38
+ clearTmpPoints(): void;
39
+ consumeService(params: {
40
+ op: number[];
41
+ isFullWork?: boolean;
42
+ replaceId?: string;
43
+ isClearAll?: boolean;
44
+ }): IRectType | undefined;
45
+ private transformDataAll;
46
+ private draw;
47
+ private computDrawPoints;
48
+ private computNomal;
49
+ private computStroke;
50
+ private computLineStroke;
51
+ private computDotStroke;
52
+ private transformData;
53
+ /** 压力渐变公式 */
54
+ private computRadius;
55
+ private getMinZ;
56
+ private getTaskPoints;
57
+ private updateTempPointsWithPressure;
58
+ private updateTempPoints;
59
+ private updateTempPointsWithPressureWhenDone;
60
+ static updateNodeOpt(param: {
61
+ node: ShapeNodes;
62
+ opt: IUpdateNodeOpt;
63
+ vNodes: VNodeManager;
64
+ willSerializeData?: boolean;
65
+ }): IRectType | undefined;
66
+ }
@@ -0,0 +1,45 @@
1
+ import { IWorkerMessage, IMainMessage, IRectType, IUpdateNodeOpt } from "../types";
2
+ import { EScaleType, EToolsKey } from "../enum";
3
+ import { Point2d } from "../utils/primitives/Point2d";
4
+ import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
5
+ import { VNodeManager } from "../worker/vNodeManager";
6
+ import { ShapeNodes } from "./utils";
7
+ export interface PolygonOptions extends BaseShapeOptions {
8
+ thickness: number;
9
+ vertices: number;
10
+ strokeColor: string;
11
+ fillColor: string;
12
+ }
13
+ export declare class PolygonShape extends BaseShapeTool {
14
+ readonly canRotate: boolean;
15
+ readonly scaleType: EScaleType;
16
+ readonly toolsType: EToolsKey;
17
+ protected tmpPoints: Array<Point2d>;
18
+ protected workOptions: PolygonOptions;
19
+ oldRect?: IRectType;
20
+ private syncTimestamp;
21
+ constructor(props: BaseShapeToolProps);
22
+ consume(props: {
23
+ data: IWorkerMessage;
24
+ isFullWork?: boolean | undefined;
25
+ isClearAll?: boolean | undefined;
26
+ isSubWorker?: boolean | undefined;
27
+ }): IMainMessage;
28
+ consumeAll(props: {
29
+ data?: IWorkerMessage | undefined;
30
+ }): IMainMessage;
31
+ private draw;
32
+ private computDrawPoints;
33
+ private updateTempPoints;
34
+ consumeService(props: {
35
+ op: number[];
36
+ isFullWork: boolean;
37
+ }): IRectType | undefined;
38
+ clearTmpPoints(): void;
39
+ static updateNodeOpt(param: {
40
+ node: ShapeNodes;
41
+ opt: IUpdateNodeOpt;
42
+ vNodes: VNodeManager;
43
+ willSerializeData?: boolean;
44
+ }): IRectType | undefined;
45
+ }
@@ -0,0 +1,46 @@
1
+ import { IWorkerMessage, IMainMessage, IRectType, IUpdateNodeOpt } from "../types";
2
+ import { EScaleType, EToolsKey } from "../enum";
3
+ import { Point2d } from "../utils/primitives/Point2d";
4
+ import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
5
+ import { VNodeManager } from "../worker/vNodeManager";
6
+ import { ShapeNodes } from "./utils";
7
+ export interface RectangleOptions extends BaseShapeOptions {
8
+ thickness: number;
9
+ strokeColor: string;
10
+ fillColor: string;
11
+ }
12
+ export declare class RectangleShape extends BaseShapeTool {
13
+ readonly canRotate: boolean;
14
+ readonly scaleType: EScaleType;
15
+ readonly toolsType: EToolsKey;
16
+ protected tmpPoints: Array<Point2d>;
17
+ protected workOptions: RectangleOptions;
18
+ oldRect?: IRectType;
19
+ private syncTimestamp;
20
+ constructor(props: BaseShapeToolProps);
21
+ private transformData;
22
+ private computDrawPoints;
23
+ consume(props: {
24
+ data: IWorkerMessage;
25
+ isFullWork?: boolean | undefined;
26
+ isClearAll?: boolean | undefined;
27
+ isSubWorker?: boolean | undefined;
28
+ }): IMainMessage;
29
+ consumeAll(props: {
30
+ data?: IWorkerMessage | undefined;
31
+ }): IMainMessage;
32
+ private draw;
33
+ private updateTempPoints;
34
+ consumeService(props: {
35
+ op: number[];
36
+ isFullWork: boolean;
37
+ replaceId?: string;
38
+ }): IRectType | undefined;
39
+ clearTmpPoints(): void;
40
+ static updateNodeOpt(param: {
41
+ node: ShapeNodes;
42
+ opt: IUpdateNodeOpt;
43
+ vNodes: VNodeManager;
44
+ willSerializeData?: boolean;
45
+ }): IRectType | undefined;
46
+ }
@@ -0,0 +1,83 @@
1
+ import { Scene } from "spritejs";
2
+ import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
3
+ import { EDataType, EPostMessageType, EScaleType, EToolsKey } from "../enum";
4
+ import { IWorkerMessage, IMainMessage, IRectType, IUpdateNodeOpt, IServiceWorkItem } from "../types";
5
+ import { Point2d } from "../utils/primitives/Point2d";
6
+ import { VNodeManager } from "../worker/vNodeManager";
7
+ import { TextOptions } from "../../component/textEditor/types";
8
+ import { LocalWorkForFullWorker } from "../worker/fullWorkerLocal";
9
+ import { ShapeOptType } from "../../displayer/types";
10
+ export interface SelectorOptions extends BaseShapeOptions {
11
+ }
12
+ export declare class SelectorShape extends BaseShapeTool {
13
+ readonly toolsType: EToolsKey;
14
+ static selectorId: string;
15
+ static selectorBorderId: string;
16
+ protected tmpPoints: Array<Point2d>;
17
+ protected workOptions: BaseShapeOptions;
18
+ selectIds?: string[];
19
+ selectorColor?: string;
20
+ strokeColor?: string;
21
+ fillColor?: string;
22
+ oldSelectRect?: IRectType;
23
+ canRotate: boolean;
24
+ canTextEdit: boolean;
25
+ canLock: boolean;
26
+ scaleType: EScaleType;
27
+ toolsTypes?: EToolsKey[];
28
+ shapeOpt?: ShapeOptType;
29
+ textOpt?: TextOptions;
30
+ isLocked?: boolean;
31
+ constructor(props: BaseShapeToolProps);
32
+ private computSelector;
33
+ private updateTempPoints;
34
+ private drawSelector;
35
+ private draw;
36
+ private getSelecteorInfo;
37
+ getChildrenPoints(): [number, number][] | undefined;
38
+ consume(props: {
39
+ data: IWorkerMessage;
40
+ }): IMainMessage;
41
+ consumeAll(props?: {
42
+ hoverId?: string;
43
+ }): IMainMessage;
44
+ consumeService(): undefined;
45
+ clearTmpPoints(): void;
46
+ clearSelectData(): void;
47
+ private selectSingleTool;
48
+ private backToFullLayer;
49
+ private sealToDrawLayer;
50
+ private getSelectorRect;
51
+ isCanFillColor(toolsType?: EToolsKey): boolean;
52
+ updateSelector(param: {
53
+ updateSelectorOpt: IUpdateNodeOpt;
54
+ vNodes: VNodeManager;
55
+ selectIds?: string[];
56
+ willSerializeData?: boolean;
57
+ worker?: LocalWorkForFullWorker;
58
+ offset?: [number, number];
59
+ scene?: Scene;
60
+ }): Promise<IMainMessage | undefined>;
61
+ blurSelector(): {
62
+ type: EPostMessageType;
63
+ dataType: EDataType;
64
+ rect: IRectType | undefined;
65
+ selectIds: never[];
66
+ willSyncService: boolean;
67
+ };
68
+ private getRightServiceId;
69
+ selectServiceNode(workId: string, workItem: Pick<IServiceWorkItem, 'selectIds'>, isService: boolean): IRectType | undefined;
70
+ reRenderSelector(): IRectType | undefined;
71
+ updateSelectIds(nextSelectIds: string[]): {
72
+ bgRect: IRectType | undefined;
73
+ selectRect: IRectType | undefined;
74
+ };
75
+ cursorHover(point: [number, number]): {
76
+ type: EPostMessageType;
77
+ dataType: EDataType;
78
+ rect: IRectType | undefined;
79
+ selectorColor: string | undefined;
80
+ willSyncService: boolean;
81
+ } | undefined;
82
+ cursorBlur(): void;
83
+ }
@@ -0,0 +1,49 @@
1
+ import { IWorkerMessage, IMainMessage, IRectType, IUpdateNodeOpt } from "../types";
2
+ import { EScaleType, EToolsKey } from "../enum";
3
+ import { Point2d } from "../utils/primitives/Point2d";
4
+ import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
5
+ import { VNodeManager } from "../worker/vNodeManager";
6
+ import type { SpeechBalloonPlacement } from "../../plugin/types";
7
+ import { ShapeNodes } from "./utils";
8
+ export interface SpeechBalloonOptions extends BaseShapeOptions {
9
+ thickness: number;
10
+ placement: SpeechBalloonPlacement;
11
+ strokeColor: string;
12
+ fillColor: string;
13
+ }
14
+ export declare class SpeechBalloonShape extends BaseShapeTool {
15
+ readonly canRotate: boolean;
16
+ readonly scaleType: EScaleType;
17
+ readonly toolsType: EToolsKey;
18
+ readonly ratio: number;
19
+ protected tmpPoints: Array<Point2d>;
20
+ protected workOptions: SpeechBalloonOptions;
21
+ oldRect?: IRectType;
22
+ private syncTimestamp;
23
+ constructor(props: BaseShapeToolProps);
24
+ consume(props: {
25
+ data: IWorkerMessage;
26
+ isFullWork?: boolean | undefined;
27
+ isClearAll?: boolean | undefined;
28
+ isSubWorker?: boolean | undefined;
29
+ }): IMainMessage;
30
+ consumeAll(props: {
31
+ data?: IWorkerMessage | undefined;
32
+ vNodes: VNodeManager;
33
+ }): IMainMessage;
34
+ private draw;
35
+ private transformControlPoints;
36
+ private computDrawPoints;
37
+ private updateTempPoints;
38
+ consumeService(props: {
39
+ op: number[];
40
+ isFullWork: boolean;
41
+ }): IRectType | undefined;
42
+ clearTmpPoints(): void;
43
+ static updateNodeOpt(param: {
44
+ node: ShapeNodes;
45
+ opt: IUpdateNodeOpt;
46
+ vNodes: VNodeManager;
47
+ willSerializeData?: boolean;
48
+ }): IRectType | undefined;
49
+ }
@@ -0,0 +1,47 @@
1
+ import { IWorkerMessage, IMainMessage, IRectType, IUpdateNodeOpt } from "../types";
2
+ import { EScaleType, EToolsKey } from "../enum";
3
+ import { Point2d } from "../utils/primitives/Point2d";
4
+ import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
5
+ import { VNodeManager } from "../worker/vNodeManager";
6
+ import { ShapeNodes } from "./utils";
7
+ export interface StarOptions extends BaseShapeOptions {
8
+ thickness: number;
9
+ vertices: number;
10
+ innerVerticeStep: number;
11
+ innerRatio: number;
12
+ strokeColor: string;
13
+ fillColor: string;
14
+ }
15
+ export declare class StarShape extends BaseShapeTool {
16
+ readonly canRotate: boolean;
17
+ readonly scaleType: EScaleType;
18
+ readonly toolsType: EToolsKey;
19
+ protected tmpPoints: Array<Point2d>;
20
+ protected workOptions: StarOptions;
21
+ oldRect?: IRectType;
22
+ private syncTimestamp;
23
+ constructor(props: BaseShapeToolProps);
24
+ consume(props: {
25
+ data: IWorkerMessage;
26
+ isFullWork?: boolean | undefined;
27
+ isClearAll?: boolean | undefined;
28
+ isSubWorker?: boolean | undefined;
29
+ }): IMainMessage;
30
+ consumeAll(props: {
31
+ data?: IWorkerMessage | undefined;
32
+ }): IMainMessage;
33
+ private draw;
34
+ private computDrawPoints;
35
+ private updateTempPoints;
36
+ consumeService(props: {
37
+ op: number[];
38
+ isFullWork: boolean;
39
+ }): IRectType | undefined;
40
+ clearTmpPoints(): void;
41
+ static updateNodeOpt(param: {
42
+ node: ShapeNodes;
43
+ opt: IUpdateNodeOpt;
44
+ vNodes: VNodeManager;
45
+ willSerializeData?: boolean;
46
+ }): IRectType | undefined;
47
+ }
@@ -0,0 +1,46 @@
1
+ import { IWorkerMessage, IMainMessage, IRectType, IUpdateNodeOpt } from "../types";
2
+ import { EScaleType, EToolsKey } from "../enum";
3
+ import { Point2d } from "../utils/primitives/Point2d";
4
+ import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
5
+ import { VNodeManager } from "../worker/vNodeManager";
6
+ import { ShapeNodes } from "./utils";
7
+ export interface StraightOptions extends BaseShapeOptions {
8
+ thickness: number;
9
+ strokeColor: string;
10
+ }
11
+ export declare class StraightShape extends BaseShapeTool {
12
+ readonly canRotate: boolean;
13
+ readonly scaleType: EScaleType;
14
+ readonly toolsType: EToolsKey;
15
+ protected tmpPoints: Array<Point2d>;
16
+ protected workOptions: StraightOptions;
17
+ oldRect?: IRectType;
18
+ private straightTipWidth;
19
+ private syncTimestamp;
20
+ constructor(props: BaseShapeToolProps);
21
+ consume(props: {
22
+ data: IWorkerMessage;
23
+ isFullWork?: boolean | undefined;
24
+ isClearAll?: boolean | undefined;
25
+ isSubWorker?: boolean | undefined;
26
+ }): IMainMessage;
27
+ consumeAll(props: {
28
+ data?: IWorkerMessage | undefined;
29
+ }): IMainMessage;
30
+ private draw;
31
+ private computDrawPoints;
32
+ private computFullPoints;
33
+ private computDotPoints;
34
+ private updateTempPoints;
35
+ consumeService(props: {
36
+ op: number[];
37
+ isFullWork: boolean;
38
+ }): IRectType | undefined;
39
+ clearTmpPoints(): void;
40
+ static updateNodeOpt(param: {
41
+ node: ShapeNodes;
42
+ opt: IUpdateNodeOpt;
43
+ vNodes: VNodeManager;
44
+ willSerializeData?: boolean;
45
+ }): IRectType | undefined;
46
+ }