drawboard-microservice 1.0.21 → 1.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/App.d.ts +2 -0
- package/dist/components/BrushToolbar.d.ts +11 -0
- package/dist/components/LatexEditor.d.ts +69 -0
- package/dist/components/LatexToolbar.d.ts +15 -0
- package/dist/components/OCRPreview.d.ts +17 -0
- package/dist/components/OCRToolbar.d.ts +10 -0
- package/dist/components/RangeToolbar.d.ts +8 -0
- package/dist/components/SelDelToolbar.d.ts +11 -0
- package/dist/components/TextEditor.d.ts +9 -0
- package/dist/components/TextToolbar.d.ts +57 -0
- package/dist/components/ToolsToolbar.d.ts +12 -0
- package/dist/constants/fonts.d.ts +1 -0
- package/dist/constants/latexCategories.d.ts +2 -0
- package/dist/constants/latexSymbols.d.ts +2 -0
- package/dist/hooks/useDrawingHandlers.d.ts +36 -0
- package/dist/hooks/useDrawingState.d.ts +9 -0
- package/dist/hooks/useHistory.d.ts +9 -0
- package/dist/hooks/useKeyboard.d.ts +1 -0
- package/dist/hooks/useLatexSymbols.d.ts +3 -0
- package/dist/hooks/useOutsideClick.d.ts +1 -0
- package/dist/hooks/useTextEditing.d.ts +13 -0
- package/dist/hooks/useTextFormatting.d.ts +6 -0
- package/dist/hooks/useWebSocket.d.ts +17 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +5 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -6
- package/dist/index.mjs.map +1 -1
- package/dist/main.d.ts +1 -0
- package/dist/services/api.d.ts +15 -0
- package/dist/services/statsService.d.ts +38 -0
- package/dist/services/widgetBridge.d.ts +21 -0
- package/dist/types.d.ts +70 -0
- package/dist/utils/colorUtils.d.ts +1 -0
- package/dist/utils/latexUtils.d.ts +5 -0
- package/dist/utils/shapeUtils.d.ts +33 -0
- package/package.json +2 -1
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface ApiResponse {
|
|
2
|
+
success: boolean;
|
|
3
|
+
message?: string;
|
|
4
|
+
data?: any;
|
|
5
|
+
}
|
|
6
|
+
export declare const sendCanvasCommand: (boardId: string, action: "clear" | "undo" | "update", data?: any) => Promise<ApiResponse>;
|
|
7
|
+
export declare const sendOcrImage: (imageData: string) => Promise<ApiResponse>;
|
|
8
|
+
export declare const clearCanvas: (boardId: string) => Promise<ApiResponse>;
|
|
9
|
+
export declare const undoAction: (boardId: string) => Promise<ApiResponse>;
|
|
10
|
+
export declare const updateCanvasData: (boardId: string, data: {
|
|
11
|
+
shapes: any[];
|
|
12
|
+
config?: any;
|
|
13
|
+
history?: any[];
|
|
14
|
+
}) => Promise<ApiResponse>;
|
|
15
|
+
export declare const updateShapes: (boardId: string, shapes: any[]) => Promise<ApiResponse>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export interface MetricsData {
|
|
2
|
+
shapesCount: number;
|
|
3
|
+
toolsUsage: Record<string, number>;
|
|
4
|
+
lastUpdated: string;
|
|
5
|
+
sessionDuration?: number;
|
|
6
|
+
boardId: string;
|
|
7
|
+
widgetId: number | null;
|
|
8
|
+
}
|
|
9
|
+
export interface WidgetConfig {
|
|
10
|
+
shapes: any[];
|
|
11
|
+
config: any;
|
|
12
|
+
lastModified: string;
|
|
13
|
+
version: string;
|
|
14
|
+
}
|
|
15
|
+
declare class StatsService {
|
|
16
|
+
private baseURL;
|
|
17
|
+
private moduleToken;
|
|
18
|
+
private rateLimitCache;
|
|
19
|
+
private readonly RATE_LIMIT_WINDOW;
|
|
20
|
+
private readonly MAX_REQUESTS;
|
|
21
|
+
constructor();
|
|
22
|
+
private loadToken;
|
|
23
|
+
private saveToken;
|
|
24
|
+
createModule(moduleName: string): Promise<{
|
|
25
|
+
moduleId: number;
|
|
26
|
+
moduleName: string;
|
|
27
|
+
token: string;
|
|
28
|
+
tokenExpired: string;
|
|
29
|
+
}>;
|
|
30
|
+
private checkRateLimit;
|
|
31
|
+
sendMetrics(metrics: MetricsData): Promise<{
|
|
32
|
+
moduleId: number;
|
|
33
|
+
metricId: number;
|
|
34
|
+
}>;
|
|
35
|
+
getMetrics(): Promise<any>;
|
|
36
|
+
}
|
|
37
|
+
export declare const statsService: StatsService;
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface WidgetInitPayload {
|
|
2
|
+
widgetId: number;
|
|
3
|
+
userId: number;
|
|
4
|
+
role: string;
|
|
5
|
+
config: any;
|
|
6
|
+
board: {
|
|
7
|
+
id: number;
|
|
8
|
+
name: string;
|
|
9
|
+
parentId: number;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export declare const getInfo: (payload: WidgetInitPayload) => {
|
|
13
|
+
widgetId: number;
|
|
14
|
+
boardId: string;
|
|
15
|
+
userId: number;
|
|
16
|
+
role: string;
|
|
17
|
+
config: any;
|
|
18
|
+
};
|
|
19
|
+
export declare const getWidgetContext: () => WidgetInitPayload;
|
|
20
|
+
export declare const onWidgetInitialized: (callback: (payload: WidgetInitPayload) => void) => () => void;
|
|
21
|
+
export declare const getBoardId: () => string;
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export type ShapeType = 'rectangle' | 'ellipse' | 'line' | 'path' | 'text' | 'latex' | 'highlighter';
|
|
2
|
+
export type ToolMode = 'select' | 'rectangle' | 'ellipse' | 'line' | 'pencil' | 'eraser' | 'text' | 'latex' | 'highlighter' | 'ocr-selection';
|
|
3
|
+
export type AnchorType = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | null;
|
|
4
|
+
export type TextAlign = 'left' | 'center' | 'right';
|
|
5
|
+
export interface Shape {
|
|
6
|
+
id: string;
|
|
7
|
+
type: ShapeType;
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
stroke: string;
|
|
13
|
+
strokeWidth: number;
|
|
14
|
+
fill?: string;
|
|
15
|
+
dash?: number[];
|
|
16
|
+
points?: number[];
|
|
17
|
+
opacity?: number;
|
|
18
|
+
isSelected?: boolean;
|
|
19
|
+
text?: string;
|
|
20
|
+
latex?: string;
|
|
21
|
+
fontSize?: number;
|
|
22
|
+
fontFamily?: string;
|
|
23
|
+
textAlign?: TextAlign;
|
|
24
|
+
isEditing?: boolean;
|
|
25
|
+
fontWeight?: 'normal' | 'bold';
|
|
26
|
+
fontStyle?: 'normal' | 'italic';
|
|
27
|
+
textDecoration?: 'none' | 'underline' | 'line-through' | 'underline line-through';
|
|
28
|
+
isLatex?: boolean;
|
|
29
|
+
latexRendered?: string;
|
|
30
|
+
scaleX?: number;
|
|
31
|
+
scaleY?: number;
|
|
32
|
+
rotation?: number;
|
|
33
|
+
}
|
|
34
|
+
export interface DrawingState {
|
|
35
|
+
isDrawing: boolean;
|
|
36
|
+
startX: number;
|
|
37
|
+
startY: number;
|
|
38
|
+
currentShape: Partial<Shape> | null;
|
|
39
|
+
}
|
|
40
|
+
export interface TransformState {
|
|
41
|
+
isTransforming: boolean;
|
|
42
|
+
shapeId: string | null;
|
|
43
|
+
startWidth: number;
|
|
44
|
+
startHeight: number;
|
|
45
|
+
startX: number;
|
|
46
|
+
startY: number;
|
|
47
|
+
startMouseX: number;
|
|
48
|
+
startMouseY: number;
|
|
49
|
+
anchor: AnchorType;
|
|
50
|
+
originalPoints?: number[];
|
|
51
|
+
originalBbox?: {
|
|
52
|
+
x: number;
|
|
53
|
+
y: number;
|
|
54
|
+
width: number;
|
|
55
|
+
height: number;
|
|
56
|
+
};
|
|
57
|
+
startFontSize?: number;
|
|
58
|
+
}
|
|
59
|
+
export interface LatexSymbol {
|
|
60
|
+
name: string;
|
|
61
|
+
latex: string;
|
|
62
|
+
description: string;
|
|
63
|
+
category: 'fraction' | 'root' | 'superscript' | 'subscript' | 'brackets' | 'operators' | 'symbols';
|
|
64
|
+
placeholder?: string;
|
|
65
|
+
}
|
|
66
|
+
export interface LatexCategory {
|
|
67
|
+
id: string;
|
|
68
|
+
name: string;
|
|
69
|
+
icon: string;
|
|
70
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const hexToRgba: (hex: string, opacity: number) => string;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Shape } from '../types';
|
|
2
|
+
export declare const calculateBoundingBox: (points: number[]) => {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const transformPoints: (points: number[], oldBbox: any, newBbox: any) => number[];
|
|
9
|
+
export declare const distanceToLineSegment: (p: {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
}, a: {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
}, b: {
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
}) => number;
|
|
19
|
+
export declare const isPointInShape: (shape: Shape, point: {
|
|
20
|
+
x: number;
|
|
21
|
+
y: number;
|
|
22
|
+
}) => boolean;
|
|
23
|
+
export declare const isRectInside: (outer: {
|
|
24
|
+
x: number;
|
|
25
|
+
y: number;
|
|
26
|
+
width: number;
|
|
27
|
+
height: number;
|
|
28
|
+
}, inner: {
|
|
29
|
+
x: number;
|
|
30
|
+
y: number;
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
}) => boolean;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drawboard-microservice",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.23",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"module": "dist/index.js",
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"react-dom": "^19.2.0",
|
|
40
40
|
"react-konva": "^19.2.1",
|
|
41
41
|
"reactflow": "^11.11.4",
|
|
42
|
+
"vite-plugin-dts": "^4.5.4",
|
|
42
43
|
"void-elements": "^3.1.0"
|
|
43
44
|
},
|
|
44
45
|
"devDependencies": {
|