@idraw/util 0.2.0-alpha.2 → 0.2.0-alpha.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/index.d.ts CHANGED
@@ -1,10 +1,112 @@
1
+ import { TypeBoardSizeOptions } from '@idraw/types';
2
+ import { TypeContext } from '@idraw/types';
3
+
1
4
  declare function compose(middleware: Middleware[]): (context: any, next?: Middleware) => any;
2
5
 
6
+ declare class Context implements TypeContext {
7
+ private _opts;
8
+ private _ctx;
9
+ private _transform;
10
+ constructor(ctx: CanvasRenderingContext2D, opts: Options);
11
+ getContext(): CanvasRenderingContext2D;
12
+ resetSize(opts: TypeBoardSizeOptions): void;
13
+ calcDeviceNum(num: number): number;
14
+ calcScreenNum(num: number): number;
15
+ getSize(): {
16
+ width: number;
17
+ height: number;
18
+ contextWidth: number;
19
+ contextHeight: number;
20
+ devicePixelRatio: number;
21
+ };
22
+ setTransform(config: Transform): void;
23
+ getTransform(): {
24
+ scale: number;
25
+ scrollX: number;
26
+ scrollY: number;
27
+ };
28
+ setFillStyle(color: string | CanvasPattern | CanvasGradient): void;
29
+ fill(fillRule?: CanvasFillRule | undefined): void;
30
+ arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean | undefined): void;
31
+ rect(x: number, y: number, w: number, h: number): void;
32
+ fillRect(x: number, y: number, w: number, h: number): void;
33
+ clearRect(x: number, y: number, w: number, h: number): void;
34
+ beginPath(): void;
35
+ closePath(): void;
36
+ lineTo(x: number, y: number): void;
37
+ moveTo(x: number, y: number): void;
38
+ arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
39
+ setLineWidth(w: number): number;
40
+ setLineDash(nums: number[]): void;
41
+ isPointInPath(x: number, y: number): boolean;
42
+ isPointInPathWithoutScroll(x: number, y: number): boolean;
43
+ setStrokeStyle(color: string): void;
44
+ stroke(): void;
45
+ translate(x: number, y: number): void;
46
+ rotate(angle: number): void;
47
+ drawImage(...args: any[]): void;
48
+ createPattern(image: CanvasImageSource, repetition: string | null): CanvasPattern | null;
49
+ measureText(text: string): TextMetrics;
50
+ setTextAlign(align: CanvasTextAlign): void;
51
+ fillText(text: string, x: number, y: number, maxWidth?: number | undefined): void;
52
+ strokeText(text: string, x: number, y: number, maxWidth?: number | undefined): void;
53
+ setFont(opts: {
54
+ fontSize: number;
55
+ fontFamily?: string;
56
+ fontWeight?: 'bold';
57
+ }): void;
58
+ setTextBaseline(baseline: CanvasTextBaseline): void;
59
+ setGlobalAlpha(alpha: number): void;
60
+ save(): void;
61
+ restore(): void;
62
+ scale(ratioX: number, ratioY: number): void;
63
+ setShadowColor(color: string): void;
64
+ setShadowOffsetX(offsetX: number): void;
65
+ setShadowOffsetY(offsetY: number): void;
66
+ setShadowBlur(blur: number): void;
67
+ ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean | undefined): void;
68
+ private _doSize;
69
+ private _doX;
70
+ private _doY;
71
+ }
72
+
3
73
  declare function createUUID(): string;
4
74
 
5
75
  declare function deepClone(target: any): any;
6
76
 
7
77
  declare const _default: {
78
+ is: {
79
+ x: (value: any) => boolean;
80
+ y: (value: any) => boolean;
81
+ w: (value: any) => boolean;
82
+ h: (value: any) => boolean;
83
+ angle: (value: any) => boolean;
84
+ number: (value: any) => boolean;
85
+ borderWidth: (value: any) => boolean;
86
+ borderRadius: (value: any) => boolean;
87
+ color: (value: any) => boolean;
88
+ imageSrc: (value: any) => boolean;
89
+ imageURL: (value: any) => boolean;
90
+ imageBase64: (value: any) => boolean;
91
+ svg: (value: any) => boolean;
92
+ html: (value: any) => boolean;
93
+ text: (value: any) => boolean;
94
+ fontSize: (value: any) => boolean;
95
+ lineHeight: (value: any) => boolean;
96
+ textAlign: (value: any) => boolean;
97
+ fontFamily: (value: any) => boolean;
98
+ fontWeight: (value: any) => boolean;
99
+ strokeWidth: (value: any) => boolean;
100
+ };
101
+ check: {
102
+ attrs: (attrs: any) => boolean;
103
+ textDesc: (desc: any) => boolean;
104
+ rectDesc: (desc: any) => boolean;
105
+ circleDesc: (desc: any) => boolean;
106
+ imageDesc: (desc: any) => boolean;
107
+ svgDesc: (desc: any) => boolean;
108
+ htmlDesc: (desc: any) => boolean;
109
+ };
8
110
  time: {
9
111
  delay: typeof delay;
10
112
  compose: typeof compose;
@@ -37,12 +139,11 @@ declare const _default: {
37
139
  undefined(data: any): boolean;
38
140
  null(data: any): boolean;
39
141
  promise(data: any): boolean;
40
- nodeList(data: any): boolean;
41
- imageData(data: any): boolean;
42
142
  };
43
143
  data: {
44
144
  deepClone: typeof deepClone;
45
145
  };
146
+ Context: typeof Context;
46
147
  };
47
148
  export default _default;
48
149
 
@@ -68,10 +169,24 @@ declare function loadSVG(svg: string): Promise<HTMLImageElement>;
68
169
 
69
170
  declare type Middleware = (ctx: any, next: Middleware) => any;
70
171
 
172
+ declare type Options = {
173
+ width: number;
174
+ height: number;
175
+ contextWidth: number;
176
+ contextHeight: number;
177
+ devicePixelRatio: number;
178
+ };
179
+
71
180
  declare function throttle(fn: (...args: any[]) => any, timeout: number): (...args: any[]) => any;
72
181
 
73
182
  declare function toColorHexNum(color: string): number;
74
183
 
75
184
  declare function toColorHexStr(color: number): string;
76
185
 
186
+ declare type Transform = {
187
+ scale?: number;
188
+ scrollX?: number;
189
+ scrollY?: number;
190
+ };
191
+
77
192
  export { }