svg-path-commander 2.1.2 → 2.1.5
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/README.md +4 -4
- package/dist/svg-path-commander.cjs +1 -1
- package/dist/svg-path-commander.cjs.map +1 -1
- package/dist/svg-path-commander.d.ts +755 -849
- package/dist/svg-path-commander.js +1 -1
- package/dist/svg-path-commander.js.map +1 -1
- package/dist/svg-path-commander.mjs +947 -611
- package/dist/svg-path-commander.mjs.map +1 -1
- package/package.json +14 -22
- package/.eslintrc.cjs +0 -225
- package/.prettierrc.json +0 -15
- package/dts.config.ts +0 -15
- package/src/convert/pathToAbsolute.ts +0 -18
- package/src/convert/pathToCurve.ts +0 -43
- package/src/convert/pathToRelative.ts +0 -18
- package/src/convert/pathToString.ts +0 -50
- package/src/index.ts +0 -454
- package/src/interface.ts +0 -130
- package/src/math/arcTools.ts +0 -396
- package/src/math/bezier.ts +0 -261
- package/src/math/cubicTools.ts +0 -124
- package/src/math/distanceSquareRoot.ts +0 -15
- package/src/math/lineTools.ts +0 -69
- package/src/math/midPoint.ts +0 -18
- package/src/math/polygonTools.ts +0 -48
- package/src/math/quadTools.ts +0 -100
- package/src/math/rotateVector.ts +0 -17
- package/src/math/roundTo.ts +0 -7
- package/src/options/options.ts +0 -9
- package/src/parser/error.ts +0 -2
- package/src/parser/finalizeSegment.ts +0 -35
- package/src/parser/invalidPathValue.ts +0 -2
- package/src/parser/isArcCommand.ts +0 -11
- package/src/parser/isDigit.ts +0 -12
- package/src/parser/isDigitStart.ts +0 -14
- package/src/parser/isMoveCommand.ts +0 -17
- package/src/parser/isPathCommand.ts +0 -28
- package/src/parser/isSpace.ts +0 -23
- package/src/parser/paramsCount.ts +0 -16
- package/src/parser/paramsParser.ts +0 -14
- package/src/parser/parsePathString.ts +0 -33
- package/src/parser/pathParser.ts +0 -29
- package/src/parser/scanFlag.ts +0 -29
- package/src/parser/scanParam.ts +0 -102
- package/src/parser/scanSegment.ts +0 -84
- package/src/parser/skipSpaces.ts +0 -17
- package/src/process/absolutizeSegment.ts +0 -63
- package/src/process/arcToCubic.ts +0 -128
- package/src/process/getSVGMatrix.ts +0 -70
- package/src/process/iterate.ts +0 -58
- package/src/process/lineToCubic.ts +0 -17
- package/src/process/normalizePath.ts +0 -33
- package/src/process/normalizeSegment.ts +0 -84
- package/src/process/optimizePath.ts +0 -63
- package/src/process/projection2d.ts +0 -52
- package/src/process/quadToCubic.ts +0 -31
- package/src/process/relativizeSegment.ts +0 -59
- package/src/process/reverseCurve.ts +0 -24
- package/src/process/reversePath.ts +0 -114
- package/src/process/roundPath.ts +0 -33
- package/src/process/roundSegment.ts +0 -9
- package/src/process/segmentToCubic.ts +0 -48
- package/src/process/shortenSegment.ts +0 -71
- package/src/process/splitCubic.ts +0 -29
- package/src/process/splitPath.ts +0 -63
- package/src/process/transformPath.ts +0 -110
- package/src/types.ts +0 -228
- package/src/util/distanceEpsilon.ts +0 -3
- package/src/util/getClosestPoint.ts +0 -15
- package/src/util/getDrawDirection.ts +0 -16
- package/src/util/getPathArea.ts +0 -70
- package/src/util/getPathBBox.ts +0 -98
- package/src/util/getPointAtLength.ts +0 -110
- package/src/util/getPropertiesAtLength.ts +0 -67
- package/src/util/getPropertiesAtPoint.ts +0 -84
- package/src/util/getSegmentAtLength.ts +0 -15
- package/src/util/getSegmentOfPoint.ts +0 -18
- package/src/util/getTotalLength.ts +0 -68
- package/src/util/isAbsoluteArray.ts +0 -18
- package/src/util/isCurveArray.ts +0 -15
- package/src/util/isNormalizedArray.ts +0 -16
- package/src/util/isPathArray.ts +0 -24
- package/src/util/isPointInStroke.ts +0 -16
- package/src/util/isRelativeArray.ts +0 -18
- package/src/util/isValidPath.ts +0 -27
- package/src/util/shapeParams.ts +0 -16
- package/src/util/shapeToPath.ts +0 -86
- package/src/util/shapeToPathArray.ts +0 -183
- package/test/class.test.ts +0 -504
- package/test/fixtures/getMarkup.ts +0 -17
- package/test/fixtures/shapeObjects.ts +0 -11
- package/test/fixtures/shapes.js +0 -104
- package/test/fixtures/simpleShapes.js +0 -75
- package/test/static.test.ts +0 -330
- package/vite.config.mts +0 -41
- package/vitest.config-ui.mts +0 -26
- package/vitest.config.mts +0 -26
|
@@ -1,854 +1,760 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as arcTools from './math/arcTools';
|
|
2
|
+
import { default as default_2 } from '@thednp/dommatrix';
|
|
3
|
+
import { default as default_3 } from './parser/pathParser';
|
|
4
|
+
|
|
5
|
+
export declare type AbsoluteArray = [MSegment, ...AbsoluteSegment[]];
|
|
6
|
+
|
|
7
|
+
export declare type AbsoluteCommand = MCommand | LCommand | VCommand | HCommand | ZCommand | CCommand | SCommand | QCommand | TCommand | ACommand;
|
|
8
|
+
|
|
9
|
+
export declare type AbsoluteSegment = MSegment | LSegment | VSegment | HSegment | CSegment | SSegment | QSegment | TSegment | ASegment | ZSegment;
|
|
10
|
+
|
|
11
|
+
export declare type ACommand = "A";
|
|
12
|
+
|
|
13
|
+
export declare type aCommand = "a";
|
|
14
|
+
|
|
15
|
+
export declare type ArcCoordinates = [
|
|
16
|
+
number,
|
|
17
|
+
number,
|
|
18
|
+
number,
|
|
19
|
+
number,
|
|
20
|
+
number,
|
|
21
|
+
number,
|
|
22
|
+
number,
|
|
23
|
+
number,
|
|
24
|
+
number
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
export declare type ArcSegment = ASegment | aSegment;
|
|
28
|
+
|
|
29
|
+
export declare type ASegment = [
|
|
30
|
+
ACommand,
|
|
31
|
+
number,
|
|
32
|
+
number,
|
|
33
|
+
number,
|
|
34
|
+
number,
|
|
35
|
+
number,
|
|
36
|
+
number,
|
|
37
|
+
number
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
export declare type aSegment = [
|
|
41
|
+
aCommand,
|
|
42
|
+
number,
|
|
43
|
+
number,
|
|
44
|
+
number,
|
|
45
|
+
number,
|
|
46
|
+
number,
|
|
47
|
+
number,
|
|
48
|
+
number
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
export declare type CCommand = "C";
|
|
52
|
+
|
|
53
|
+
export declare type cCommand = "c";
|
|
54
|
+
|
|
55
|
+
export declare type CircleAttr = {
|
|
56
|
+
type: "circle";
|
|
57
|
+
cx: number;
|
|
58
|
+
cy: number;
|
|
59
|
+
r: number;
|
|
60
|
+
[key: string]: string | number;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export declare type CloseSegment = ZSegment | zSegment;
|
|
64
|
+
|
|
65
|
+
export declare type CSegment = [
|
|
66
|
+
CCommand,
|
|
67
|
+
number,
|
|
68
|
+
number,
|
|
69
|
+
number,
|
|
70
|
+
number,
|
|
71
|
+
number,
|
|
72
|
+
number
|
|
73
|
+
];
|
|
74
|
+
|
|
75
|
+
export declare type cSegment = [
|
|
76
|
+
cCommand,
|
|
77
|
+
number,
|
|
78
|
+
number,
|
|
79
|
+
number,
|
|
80
|
+
number,
|
|
81
|
+
number,
|
|
82
|
+
number
|
|
83
|
+
];
|
|
84
|
+
|
|
85
|
+
export declare type CubicCoordinates = [
|
|
86
|
+
number,
|
|
87
|
+
number,
|
|
88
|
+
number,
|
|
89
|
+
number,
|
|
90
|
+
number,
|
|
91
|
+
number,
|
|
92
|
+
number,
|
|
93
|
+
number
|
|
94
|
+
];
|
|
95
|
+
|
|
96
|
+
export declare type CubicPoints = [
|
|
97
|
+
Point,
|
|
98
|
+
Point,
|
|
99
|
+
Point,
|
|
100
|
+
Point,
|
|
101
|
+
Point,
|
|
102
|
+
Point,
|
|
103
|
+
Point,
|
|
104
|
+
Point
|
|
105
|
+
];
|
|
106
|
+
|
|
107
|
+
export declare type CubicSegment = CSegment | cSegment;
|
|
108
|
+
|
|
109
|
+
export declare type CurveArray = [MSegment, ...CSegment[]];
|
|
110
|
+
|
|
111
|
+
export declare type DeriveCallback = (t: number) => Point;
|
|
112
|
+
|
|
113
|
+
export declare type DerivedCubicPoints = [
|
|
114
|
+
DerivedPoint,
|
|
115
|
+
DerivedPoint,
|
|
116
|
+
DerivedPoint,
|
|
117
|
+
DerivedPoint,
|
|
118
|
+
DerivedPoint,
|
|
119
|
+
DerivedPoint,
|
|
120
|
+
DerivedPoint,
|
|
121
|
+
DerivedPoint
|
|
122
|
+
];
|
|
123
|
+
|
|
124
|
+
export declare type DerivedPoint = Point & {
|
|
125
|
+
t: number;
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
export declare type DerivedQuadPoints = [
|
|
129
|
+
DerivedPoint,
|
|
130
|
+
DerivedPoint,
|
|
131
|
+
DerivedPoint,
|
|
132
|
+
DerivedPoint,
|
|
133
|
+
DerivedPoint,
|
|
134
|
+
DerivedPoint
|
|
135
|
+
];
|
|
136
|
+
|
|
137
|
+
export declare type DigitNumber = 0x30 | 0x31 | 0x32 | 0x33 | 0x34 | 0x35 | 0x36 | 0x37 | 0x38 | 0x39;
|
|
138
|
+
|
|
139
|
+
export declare type EllipseAttr = {
|
|
140
|
+
type: "ellipse";
|
|
141
|
+
cx: number;
|
|
142
|
+
cy: number;
|
|
143
|
+
rx: number;
|
|
144
|
+
ry?: number;
|
|
145
|
+
[key: string]: string | number | undefined;
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
export declare type GlyphAttr = {
|
|
149
|
+
type: "glyph";
|
|
150
|
+
d: string;
|
|
151
|
+
[key: string]: string | number;
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
export declare type HCommand = "H";
|
|
155
|
+
|
|
156
|
+
export declare type hCommand = "h";
|
|
157
|
+
|
|
158
|
+
export declare type HorLineSegment = HSegment | hSegment;
|
|
159
|
+
|
|
160
|
+
export declare type HSegment = [HCommand, number];
|
|
161
|
+
|
|
162
|
+
export declare type hSegment = [hCommand, number];
|
|
163
|
+
|
|
164
|
+
export declare type IteratorCallback = (segment: PathSegment, index: number, lastX: number, lastY: number) => PathSegment | false | void | undefined;
|
|
165
|
+
|
|
166
|
+
export declare type LCommand = "L";
|
|
167
|
+
|
|
168
|
+
export declare type lCommand = "l";
|
|
169
|
+
|
|
170
|
+
export declare type LengthFactory = {
|
|
171
|
+
length: number;
|
|
172
|
+
point: {
|
|
173
|
+
x: number;
|
|
174
|
+
y: number;
|
|
175
|
+
};
|
|
176
|
+
min: {
|
|
177
|
+
x: number;
|
|
178
|
+
y: number;
|
|
179
|
+
};
|
|
180
|
+
max: {
|
|
181
|
+
x: number;
|
|
182
|
+
y: number;
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
export declare type LineAttr = {
|
|
187
|
+
type: "line";
|
|
188
|
+
x1: number;
|
|
189
|
+
y1: number;
|
|
190
|
+
x2: number;
|
|
191
|
+
y2: number;
|
|
192
|
+
[key: string]: string | number;
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
export declare type LineCoordinates = [number, number, number, number];
|
|
196
|
+
|
|
197
|
+
export declare type LineSegment = LSegment | lSegment;
|
|
198
|
+
|
|
199
|
+
export declare type LSegment = [LCommand, number, number];
|
|
200
|
+
|
|
201
|
+
export declare type lSegment = [lCommand, number, number];
|
|
202
|
+
|
|
203
|
+
export declare type MCommand = "M";
|
|
204
|
+
|
|
205
|
+
export declare type mCommand = "m";
|
|
206
|
+
|
|
207
|
+
export declare type MoveSegment = MSegment | mSegment;
|
|
208
|
+
|
|
209
|
+
export declare type MSegment = [MCommand, number, number];
|
|
210
|
+
|
|
211
|
+
export declare type mSegment = [mCommand, number, number];
|
|
212
|
+
|
|
213
|
+
export declare type NormalArray = [MSegment, ...NormalSegment[]];
|
|
214
|
+
|
|
215
|
+
export declare type NormalSegment = MSegment | LSegment | CSegment | QSegment | ASegment | ZSegment;
|
|
216
|
+
|
|
217
|
+
export declare type Options = {
|
|
218
|
+
round: "off" | number;
|
|
219
|
+
origin: number[];
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
export declare type ParserParams = {
|
|
223
|
+
x1: number;
|
|
224
|
+
y1: number;
|
|
225
|
+
x2: number;
|
|
226
|
+
y2: number;
|
|
227
|
+
x: number;
|
|
228
|
+
y: number;
|
|
229
|
+
qx: number | null;
|
|
230
|
+
qy: number | null;
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
export declare type PathArray = [MSegment | mSegment, ...PathSegment[]];
|
|
234
|
+
|
|
235
|
+
export declare type PathBBox = {
|
|
236
|
+
width: number;
|
|
237
|
+
height: number;
|
|
238
|
+
x: number;
|
|
239
|
+
y: number;
|
|
240
|
+
x2: number;
|
|
241
|
+
y2: number;
|
|
242
|
+
cx: number;
|
|
243
|
+
cy: number;
|
|
244
|
+
cz: number;
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
export declare type PathCommand = AbsoluteCommand | RelativeCommand;
|
|
248
|
+
|
|
249
|
+
export declare type PathCommandNumber = 0x6d | 0x7a | 0x6c | 0x68 | 0x76 | 0x63 | 0x73 | 0x71 | 0x74 | 0x61;
|
|
250
|
+
|
|
251
|
+
export declare type PathSegment = MoveSegment | LineSegment | VertLineSegment | HorLineSegment | CloseSegment | CubicSegment | ShortCubicSegment | QuadSegment | ShortQuadSegment | ArcSegment;
|
|
252
|
+
|
|
253
|
+
export declare type PathTransform = {
|
|
254
|
+
s: PathSegment;
|
|
255
|
+
c: string;
|
|
256
|
+
x: number;
|
|
257
|
+
y: number;
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
export declare type Point = {
|
|
261
|
+
x: number;
|
|
262
|
+
y: number;
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
export declare type PointProperties = {
|
|
266
|
+
closest: {
|
|
267
|
+
x: number;
|
|
268
|
+
y: number;
|
|
269
|
+
};
|
|
270
|
+
distance: number;
|
|
271
|
+
segment?: SegmentProperties;
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
export declare type PointTuple = [number, number];
|
|
275
|
+
|
|
276
|
+
export declare type PolyAttr = {
|
|
277
|
+
type: "polygon" | "polyline";
|
|
278
|
+
points: string;
|
|
279
|
+
[key: string]: string | number;
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
export declare type PolygonArray = [MSegment, ...LSegment[], ZSegment];
|
|
283
|
+
|
|
284
|
+
export declare type PolylineArray = [MSegment, ...LSegment[]];
|
|
285
|
+
|
|
286
|
+
export declare type QCommand = "Q";
|
|
287
|
+
|
|
288
|
+
export declare type qCommand = "q";
|
|
289
|
+
|
|
290
|
+
export declare type QSegment = [QCommand, number, number, number, number];
|
|
291
|
+
|
|
292
|
+
export declare type qSegment = [qCommand, number, number, number, number];
|
|
293
|
+
|
|
294
|
+
export declare type QuadCoordinates = [number, number, number, number, number, number];
|
|
295
|
+
|
|
296
|
+
export declare type QuadPoints = [Point, Point, Point, Point, Point, Point];
|
|
297
|
+
|
|
298
|
+
export declare type QuadSegment = QSegment | qSegment;
|
|
299
|
+
|
|
300
|
+
export declare type RectAttr = {
|
|
301
|
+
type: "rect";
|
|
302
|
+
width: number;
|
|
303
|
+
height: number;
|
|
304
|
+
x: number;
|
|
305
|
+
y: number;
|
|
306
|
+
rx?: number;
|
|
307
|
+
ry?: number;
|
|
308
|
+
[key: string]: string | number | undefined;
|
|
309
|
+
};
|
|
310
|
+
|
|
311
|
+
export declare type RelativeArray = [MSegment, ...RelativeSegment[]];
|
|
312
|
+
|
|
313
|
+
export declare type RelativeCommand = mCommand | lCommand | vCommand | hCommand | zCommand | cCommand | sCommand | qCommand | tCommand | aCommand;
|
|
314
|
+
|
|
315
|
+
export declare type RelativeSegment = mSegment | lSegment | vSegment | hSegment | cSegment | sSegment | qSegment | tSegment | aSegment | zSegment;
|
|
316
|
+
|
|
317
|
+
export declare type SCommand = "S";
|
|
318
|
+
|
|
319
|
+
export declare type sCommand = "s";
|
|
320
|
+
|
|
321
|
+
export declare type SegmentLimits = {
|
|
322
|
+
min: {
|
|
323
|
+
x: number;
|
|
324
|
+
y: number;
|
|
325
|
+
};
|
|
326
|
+
max: {
|
|
327
|
+
x: number;
|
|
328
|
+
y: number;
|
|
329
|
+
};
|
|
330
|
+
};
|
|
331
|
+
|
|
332
|
+
export declare type SegmentProperties = {
|
|
333
|
+
segment: PathSegment;
|
|
334
|
+
index: number;
|
|
335
|
+
length: number;
|
|
336
|
+
lengthAtSegment: number;
|
|
337
|
+
};
|
|
338
|
+
|
|
339
|
+
export declare type ShapeOps = LineAttr | PolyAttr | PolyAttr | EllipseAttr | CircleAttr | RectAttr | GlyphAttr;
|
|
340
|
+
|
|
341
|
+
export declare type ShapeParams = {
|
|
342
|
+
line: ["x1", "y1", "x2", "y2"];
|
|
343
|
+
circle: ["cx", "cy", "r"];
|
|
344
|
+
ellipse: ["cx", "cy", "rx", "ry"];
|
|
345
|
+
rect: ["width", "height", "x", "y", "rx", "ry"];
|
|
346
|
+
polygon: ["points"];
|
|
347
|
+
polyline: ["points"];
|
|
348
|
+
glyph: ["d"];
|
|
349
|
+
};
|
|
350
|
+
|
|
351
|
+
export declare type ShapeTags = "line" | "polyline" | "polygon" | "ellipse" | "circle" | "rect" | "glyph";
|
|
352
|
+
|
|
353
|
+
export declare type ShapeTypes = SVGPolylineElement | SVGPolygonElement | SVGLineElement | SVGEllipseElement | SVGCircleElement | SVGRectElement;
|
|
354
|
+
|
|
355
|
+
export declare type ShortCubicSegment = SSegment | sSegment;
|
|
356
|
+
|
|
357
|
+
export declare type ShortQuadSegment = TSegment | tSegment;
|
|
358
|
+
|
|
359
|
+
export declare type ShortSegment = VertLineSegment | HorLineSegment | ShortCubicSegment | ShortQuadSegment | CloseSegment;
|
|
360
|
+
|
|
361
|
+
export declare type SpaceNumber = 0x1680 | 0x180e | 0x2000 | 0x2001 | 0x2002 | 0x2003 | 0x2004 | 0x2005 | 0x2006 | 0x2007 | 0x2008 | 0x2009 | 0x200a | 0x202f | 0x205f | 0x3000 | 0xfeff | 0x0a | 0x0d | 0x2028 | 0x2029 | 0x20 | 0x09 | 0x0b | 0x0c | 0xa0 | 0x1680;
|
|
362
|
+
|
|
363
|
+
export declare type SSegment = [SCommand, number, number, number, number];
|
|
364
|
+
|
|
365
|
+
export declare type sSegment = [sCommand, number, number, number, number];
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* Creates a new SVGPathCommander instance with the following properties:
|
|
369
|
+
* * segments: `pathArray`
|
|
370
|
+
* * round: number
|
|
371
|
+
* * origin: [number, number, number?]
|
|
372
|
+
*
|
|
373
|
+
* @class
|
|
374
|
+
* @author thednp <https://github.com/thednp/svg-path-commander>
|
|
375
|
+
* @returns a new SVGPathCommander instance
|
|
376
|
+
*/
|
|
377
|
+
declare class SVGPathCommander_2 {
|
|
378
|
+
static CSSMatrix: typeof default_2;
|
|
379
|
+
static pathToAbsolute: (pathInput: string | PathArray) => AbsoluteArray;
|
|
380
|
+
static pathToRelative: (pathInput: string | PathArray) => RelativeArray;
|
|
381
|
+
static pathToCurve: (pathInput: string | PathArray) => CurveArray;
|
|
382
|
+
static pathToString: (path: PathArray, roundOption?: number | "off") => string;
|
|
383
|
+
static arcTools: typeof arcTools;
|
|
384
|
+
static bezierTools: {
|
|
385
|
+
Cvalues: number[];
|
|
386
|
+
Tvalues: number[];
|
|
387
|
+
minmaxC: ([v1, cp1, cp2, v2]: [number, number, number, number]) => PointTuple;
|
|
388
|
+
minmaxQ: ([v1, cp, v2]: [number, number, number]) => PointTuple;
|
|
389
|
+
getBezierLength: (curve: CubicCoordinates | QuadCoordinates) => number;
|
|
390
|
+
bezierLength: (derivativeFn: DeriveCallback) => number;
|
|
391
|
+
calculateBezier: (derivativeFn: DeriveCallback, t: number) => number;
|
|
392
|
+
computeBezier: (points: DerivedQuadPoints | DerivedCubicPoints, t: number) => DerivedPoint;
|
|
393
|
+
deriveBezier: (points: QuadPoints | CubicPoints) => (DerivedQuadPoints | DerivedCubicPoints)[];
|
|
394
|
+
CBEZIER_MINMAX_EPSILON: number;
|
|
395
|
+
};
|
|
396
|
+
static cubicTools: {
|
|
397
|
+
getCubicLength: (x1: number, y1: number, c1x: number, c1y: number, c2x: number, c2y: number, x2: number, y2: number) => number;
|
|
398
|
+
getCubicBBox: (x1: number, y1: number, c1x: number, c1y: number, c2x: number, c2y: number, x2: number, y2: number) => [number, number, number, number];
|
|
399
|
+
getPointAtCubicLength: (x1: number, y1: number, c1x: number, c1y: number, c2x: number, c2y: number, x2: number, y2: number, distance?: number) => {
|
|
400
|
+
x: number;
|
|
401
|
+
y: number;
|
|
402
|
+
};
|
|
403
|
+
getPointAtCubicSegmentLength: ([x1, y1, c1x, c1y, c2x, c2y, x2, y2]: CubicCoordinates, t: number) => {
|
|
404
|
+
x: number;
|
|
405
|
+
y: number;
|
|
406
|
+
};
|
|
407
|
+
};
|
|
408
|
+
static lineTools: {
|
|
409
|
+
getPointAtLineLength: (x1: number, y1: number, x2: number, y2: number, distance?: number) => {
|
|
410
|
+
x: number;
|
|
411
|
+
y: number;
|
|
412
|
+
};
|
|
413
|
+
getLineBBox: (x1: number, y1: number, x2: number, y2: number) => [number, number, number, number];
|
|
414
|
+
getLineLength: (x1: number, y1: number, x2: number, y2: number) => number;
|
|
415
|
+
};
|
|
416
|
+
static quadTools: {
|
|
417
|
+
getPointAtQuadSegmentLength: ([x1, y1, cx, cy, x2, y2]: QuadCoordinates, t: number) => {
|
|
418
|
+
x: number;
|
|
419
|
+
y: number;
|
|
420
|
+
};
|
|
421
|
+
getQuadLength: (x1: number, y1: number, cx: number, cy: number, x2: number, y2: number) => number;
|
|
422
|
+
getQuadBBox: (x1: number, y1: number, cx: number, cy: number, x2: number, y2: number) => [number, number, number, number];
|
|
423
|
+
getPointAtQuadLength: (x1: number, y1: number, cx: number, cy: number, x2: number, y2: number, distance?: number) => {
|
|
424
|
+
x: number;
|
|
425
|
+
y: number;
|
|
426
|
+
};
|
|
427
|
+
};
|
|
428
|
+
static polygonTools: {
|
|
429
|
+
polygonArea: (polygon: PointTuple[]) => number;
|
|
430
|
+
polygonLength: (polygon: PointTuple[]) => number;
|
|
431
|
+
};
|
|
432
|
+
static distanceSquareRoot: (a: PointTuple, b: PointTuple) => number;
|
|
433
|
+
static distanceEpsilon: number;
|
|
434
|
+
static midPoint: (a: PointTuple, b: PointTuple, t: number) => PointTuple;
|
|
435
|
+
static rotateVector: (x: number, y: number, rad: number) => {
|
|
436
|
+
x: number;
|
|
437
|
+
y: number;
|
|
438
|
+
};
|
|
439
|
+
static roundTo: (n: number, round: number) => number;
|
|
440
|
+
static finalizeSegment: (path: default_3) => void;
|
|
441
|
+
static invalidPathValue: string;
|
|
442
|
+
static isArcCommand: (code: number) => code is 97;
|
|
443
|
+
static isDigit: (code: number) => code is DigitNumber;
|
|
444
|
+
static isDigitStart: (code: number) => code is DigitNumber | 43 | 45 | 46;
|
|
445
|
+
static isMoveCommand: (code: number) => code is 109 | 77;
|
|
446
|
+
static isPathCommand: (code: number) => code is PathCommandNumber;
|
|
447
|
+
static isSpace: (ch: number) => ch is SpaceNumber;
|
|
448
|
+
static paramsCount: {
|
|
449
|
+
a: number;
|
|
450
|
+
c: number;
|
|
451
|
+
h: number;
|
|
452
|
+
l: number;
|
|
453
|
+
m: number;
|
|
454
|
+
r: number;
|
|
455
|
+
q: number;
|
|
456
|
+
s: number;
|
|
457
|
+
t: number;
|
|
458
|
+
v: number;
|
|
459
|
+
z: number;
|
|
460
|
+
};
|
|
461
|
+
static paramsParser: ParserParams;
|
|
462
|
+
static pathParser: typeof default_3;
|
|
463
|
+
static scanFlag: (path: default_3) => void;
|
|
464
|
+
static scanParam: (path: default_3) => void;
|
|
465
|
+
static scanSegment: (path: default_3) => void;
|
|
466
|
+
static skipSpaces: (path: default_3) => void;
|
|
467
|
+
static getPathBBox: (pathInput: PathArray | string) => {
|
|
468
|
+
x: number;
|
|
469
|
+
y: number;
|
|
470
|
+
width: number;
|
|
471
|
+
height: number;
|
|
472
|
+
x2: number;
|
|
473
|
+
y2: number;
|
|
474
|
+
cx: number;
|
|
475
|
+
cy: number;
|
|
476
|
+
cz: number;
|
|
477
|
+
};
|
|
478
|
+
static getPathArea: (path: PathArray) => number;
|
|
479
|
+
static getTotalLength: (pathInput: string | PathArray) => number;
|
|
480
|
+
static getDrawDirection: (path: string | PathArray) => boolean;
|
|
481
|
+
static getPointAtLength: (pathInput: string | PathArray, distance?: number) => {
|
|
482
|
+
x: number;
|
|
483
|
+
y: number;
|
|
484
|
+
};
|
|
485
|
+
static getPropertiesAtLength: (pathInput: string | PathArray, distance?: number) => SegmentProperties;
|
|
486
|
+
static getPropertiesAtPoint: (pathInput: string | PathArray, point: Point) => PointProperties;
|
|
487
|
+
static getClosestPoint: (pathInput: string | PathArray, point: {
|
|
488
|
+
x: number;
|
|
489
|
+
y: number;
|
|
490
|
+
}) => {
|
|
491
|
+
x: number;
|
|
492
|
+
y: number;
|
|
493
|
+
};
|
|
494
|
+
static getSegmentOfPoint: (path: string | PathArray, point: {
|
|
495
|
+
x: number;
|
|
496
|
+
y: number;
|
|
497
|
+
}) => SegmentProperties | undefined;
|
|
498
|
+
static getSegmentAtLength: (pathInput: string | PathArray, distance?: number) => PathSegment | undefined;
|
|
499
|
+
static isPointInStroke: (pathInput: string | PathArray, point: {
|
|
500
|
+
x: number;
|
|
501
|
+
y: number;
|
|
502
|
+
}) => boolean;
|
|
503
|
+
static isValidPath: (pathString: string) => boolean;
|
|
504
|
+
static isPathArray: (path: unknown) => path is PathArray;
|
|
505
|
+
static isAbsoluteArray: (path: unknown) => path is AbsoluteArray;
|
|
506
|
+
static isRelativeArray: (path: unknown) => path is RelativeArray;
|
|
507
|
+
static isCurveArray: (path: unknown) => path is CurveArray;
|
|
508
|
+
static isNormalizedArray: (path: unknown) => path is NormalArray;
|
|
509
|
+
static shapeToPath: (element: ShapeTypes | ShapeOps, replace?: boolean, ownerDocument?: Document) => SVGPathElement | false;
|
|
510
|
+
static shapeToPathArray: (element: ShapeTypes | ShapeOps, ownerDocument?: Document) => false | PathArray;
|
|
511
|
+
static shapeParams: ShapeParams;
|
|
512
|
+
static parsePathString: <T extends PathArray>(pathInput: string | T) => PathArray;
|
|
513
|
+
static absolutizeSegment: (segment: PathSegment, index: number, lastX: number, lastY: number) => AbsoluteSegment;
|
|
514
|
+
static arcToCubic: (X1: number, Y1: number, RX: number, RY: number, angle: number, LAF: number, SF: number, X2: number, Y2: number, recursive?: [number, number, number, number]) => number[];
|
|
515
|
+
static getSVGMatrix: (transform: TransformObjectValues) => default_2;
|
|
516
|
+
static iterate: <T extends PathArray>(path: PathArray, iterator: IteratorCallback) => T;
|
|
517
|
+
static lineToCubic: (x1: number, y1: number, x2: number, y2: number) => number[];
|
|
518
|
+
static normalizePath: (pathInput: string | PathArray) => NormalArray;
|
|
519
|
+
static normalizeSegment: (segment: PathSegment, params: ParserParams) => NormalSegment;
|
|
520
|
+
static optimizePath: (pathInput: PathArray, roundOption?: number) => PathArray;
|
|
521
|
+
static projection2d: (m: default_2, point2D: PointTuple, origin: [number, number, number]) => PointTuple;
|
|
522
|
+
static quadToCubic: (x1: number, y1: number, qx: number, qy: number, x2: number, y2: number) => [number, number, number, number, number, number];
|
|
523
|
+
static relativizeSegment: (segment: PathSegment, index: number, lastX: number, lastY: number) => MSegment | RelativeSegment;
|
|
524
|
+
static reverseCurve: (path: CurveArray) => CurveArray;
|
|
525
|
+
static reversePath: (pathInput: PathArray) => PathArray;
|
|
526
|
+
static roundPath: (path: PathArray, roundOption?: number | "off") => PathArray;
|
|
527
|
+
static roundSegment: <T extends PathSegment>(segment: T, roundOption: number) => T;
|
|
528
|
+
static segmentToCubic: (segment: PathSegment, params: ParserParams) => MSegment | CSegment;
|
|
529
|
+
static shortenSegment: (segment: AbsoluteSegment, normalSegment: NormalSegment, params: ParserParams, prevCommand: PathCommand) => ShortSegment;
|
|
530
|
+
static splitCubic: (pts: number[], ratio?: number) => [CubicSegment, CubicSegment];
|
|
531
|
+
static splitPath: (pathInput: PathArray) => PathArray[];
|
|
532
|
+
static transformPath: (pathInput: PathArray | string, transform?: Partial<TransformObject>) => PathArray;
|
|
533
|
+
segments: PathArray;
|
|
534
|
+
round: number | "off";
|
|
535
|
+
origin: [number, number, number];
|
|
536
|
+
/**
|
|
537
|
+
* @constructor
|
|
538
|
+
* @param pathValue the path string
|
|
539
|
+
* @param config instance options
|
|
540
|
+
*/
|
|
541
|
+
constructor(pathValue: string, config?: Partial<Options>);
|
|
542
|
+
get bbox(): {
|
|
543
|
+
x: number;
|
|
544
|
+
y: number;
|
|
545
|
+
width: number;
|
|
546
|
+
height: number;
|
|
547
|
+
x2: number;
|
|
548
|
+
y2: number;
|
|
549
|
+
cx: number;
|
|
550
|
+
cy: number;
|
|
551
|
+
cz: number;
|
|
552
|
+
};
|
|
553
|
+
get length(): number;
|
|
554
|
+
/**
|
|
555
|
+
* Returns the path bounding box, equivalent to native `path.getBBox()`.
|
|
556
|
+
*
|
|
557
|
+
* @public
|
|
558
|
+
* @returns the pathBBox
|
|
559
|
+
*/
|
|
560
|
+
getBBox(): {
|
|
561
|
+
x: number;
|
|
562
|
+
y: number;
|
|
563
|
+
width: number;
|
|
564
|
+
height: number;
|
|
565
|
+
x2: number;
|
|
566
|
+
y2: number;
|
|
567
|
+
cx: number;
|
|
568
|
+
cy: number;
|
|
569
|
+
cz: number;
|
|
570
|
+
};
|
|
571
|
+
/**
|
|
572
|
+
* Returns the total path length, equivalent to native `path.getTotalLength()`.
|
|
573
|
+
*
|
|
574
|
+
* @public
|
|
575
|
+
* @returns the path total length
|
|
576
|
+
*/
|
|
577
|
+
getTotalLength(): number;
|
|
578
|
+
/**
|
|
579
|
+
* Returns an `{x,y}` point in the path stroke at a given length,
|
|
580
|
+
* equivalent to the native `path.getPointAtLength()`.
|
|
581
|
+
*
|
|
582
|
+
* @public
|
|
583
|
+
* @param length the length
|
|
584
|
+
* @returns the requested point
|
|
585
|
+
*/
|
|
586
|
+
getPointAtLength(length: number): {
|
|
587
|
+
x: number;
|
|
588
|
+
y: number;
|
|
589
|
+
};
|
|
590
|
+
/**
|
|
591
|
+
* Convert path to absolute values
|
|
592
|
+
*
|
|
593
|
+
* @public
|
|
594
|
+
*/
|
|
595
|
+
toAbsolute(): this;
|
|
596
|
+
/**
|
|
597
|
+
* Convert path to relative values
|
|
598
|
+
*
|
|
599
|
+
* @public
|
|
600
|
+
*/
|
|
601
|
+
toRelative(): this;
|
|
602
|
+
/**
|
|
603
|
+
* Convert path to cubic-bezier values. In addition, un-necessary `Z`
|
|
604
|
+
* segment is removed if previous segment extends to the `M` segment.
|
|
605
|
+
*
|
|
606
|
+
* @public
|
|
607
|
+
*/
|
|
608
|
+
toCurve(): this;
|
|
609
|
+
/**
|
|
610
|
+
* Reverse the order of the segments and their values.
|
|
611
|
+
*
|
|
612
|
+
* @param onlySubpath option to reverse all sub-paths except first
|
|
613
|
+
* @public
|
|
614
|
+
*/
|
|
615
|
+
reverse(onlySubpath?: boolean): this;
|
|
616
|
+
/**
|
|
617
|
+
* Normalize path in 2 steps:
|
|
618
|
+
* * convert `pathArray`(s) to absolute values
|
|
619
|
+
* * convert shorthand notation to standard notation
|
|
620
|
+
*
|
|
621
|
+
* @public
|
|
622
|
+
*/
|
|
623
|
+
normalize(): this;
|
|
624
|
+
/**
|
|
625
|
+
* Optimize `pathArray` values:
|
|
626
|
+
* * convert segments to absolute and/or relative values
|
|
627
|
+
* * select segments with shortest resulted string
|
|
628
|
+
* * round values to the specified `decimals` option value
|
|
629
|
+
*
|
|
630
|
+
* @public
|
|
631
|
+
*/
|
|
632
|
+
optimize(): this;
|
|
633
|
+
/**
|
|
634
|
+
* Transform path using values from an `Object` defined as `transformObject`.
|
|
635
|
+
*
|
|
636
|
+
* @see TransformObject for a quick refference
|
|
637
|
+
*
|
|
638
|
+
* @param source a `transformObject`as described above
|
|
639
|
+
* @public
|
|
640
|
+
*/
|
|
641
|
+
transform(source?: Partial<TransformObject>): this;
|
|
642
|
+
/**
|
|
643
|
+
* Rotate path 180deg vertically
|
|
644
|
+
*
|
|
645
|
+
* @public
|
|
646
|
+
*/
|
|
647
|
+
flipX(): this;
|
|
648
|
+
/**
|
|
649
|
+
* Rotate path 180deg horizontally
|
|
650
|
+
*
|
|
651
|
+
* @public
|
|
652
|
+
*/
|
|
653
|
+
flipY(): this;
|
|
654
|
+
/**
|
|
655
|
+
* Export the current path to be used
|
|
656
|
+
* for the `d` (description) attribute.
|
|
657
|
+
*
|
|
658
|
+
* @public
|
|
659
|
+
* @return the path string
|
|
660
|
+
*/
|
|
661
|
+
toString(): string;
|
|
662
|
+
/**
|
|
663
|
+
* Remove the instance.
|
|
664
|
+
*
|
|
665
|
+
* @public
|
|
666
|
+
* @return void
|
|
667
|
+
*/
|
|
668
|
+
dispose(): void;
|
|
669
|
+
}
|
|
670
|
+
export default SVGPathCommander_2;
|
|
671
|
+
|
|
672
|
+
export declare type TCommand = "T";
|
|
673
|
+
|
|
674
|
+
export declare type tCommand = "t";
|
|
675
|
+
|
|
676
|
+
export declare type TransformEntries = [
|
|
677
|
+
TransformProps,
|
|
678
|
+
TransformObject[TransformProps]
|
|
679
|
+
][];
|
|
680
|
+
|
|
681
|
+
export declare type TransformObject = {
|
|
682
|
+
translate: number | number[];
|
|
683
|
+
rotate: number | number[];
|
|
684
|
+
scale: number | number[];
|
|
685
|
+
skew: number | number[];
|
|
686
|
+
origin: number[];
|
|
687
|
+
};
|
|
688
|
+
|
|
689
|
+
export declare type TransformObjectValues = Partial<TransformObject> & {
|
|
690
|
+
origin: [number, number, number];
|
|
691
|
+
};
|
|
692
|
+
|
|
693
|
+
export declare type TransformProps = keyof TransformObject;
|
|
694
|
+
|
|
695
|
+
export declare type TSegment = [TCommand, number, number];
|
|
696
|
+
|
|
697
|
+
export declare type tSegment = [tCommand, number, number];
|
|
698
|
+
|
|
699
|
+
export declare type VCommand = "V";
|
|
700
|
+
|
|
701
|
+
export declare type vCommand = "v";
|
|
702
|
+
|
|
703
|
+
export declare type VertLineSegment = vSegment | VSegment;
|
|
704
|
+
|
|
705
|
+
export declare type VSegment = [VCommand, number];
|
|
706
|
+
|
|
707
|
+
export declare type vSegment = [vCommand, number];
|
|
708
|
+
|
|
709
|
+
export declare type ZCommand = "Z";
|
|
710
|
+
|
|
711
|
+
export declare type zCommand = "z";
|
|
712
|
+
|
|
713
|
+
export declare type ZSegment = [ZCommand];
|
|
714
|
+
|
|
715
|
+
export declare type zSegment = [zCommand];
|
|
716
|
+
|
|
717
|
+
export { }
|
|
2
718
|
|
|
3
|
-
export type SegmentProperties = {
|
|
4
|
-
segment: PathSegment;
|
|
5
|
-
index: number;
|
|
6
|
-
length: number;
|
|
7
|
-
lengthAtSegment: number;
|
|
8
|
-
};
|
|
9
|
-
export type PointProperties = {
|
|
10
|
-
closest: {
|
|
11
|
-
x: number;
|
|
12
|
-
y: number;
|
|
13
|
-
};
|
|
14
|
-
distance: number;
|
|
15
|
-
segment?: SegmentProperties;
|
|
16
|
-
};
|
|
17
|
-
export type LineAttr = {
|
|
18
|
-
type: "line";
|
|
19
|
-
x1: number;
|
|
20
|
-
y1: number;
|
|
21
|
-
x2: number;
|
|
22
|
-
y2: number;
|
|
23
|
-
[key: string]: string | number;
|
|
24
|
-
};
|
|
25
|
-
export type PolyAttr = {
|
|
26
|
-
type: "polygon" | "polyline";
|
|
27
|
-
points: string;
|
|
28
|
-
[key: string]: string | number;
|
|
29
|
-
};
|
|
30
|
-
export type CircleAttr = {
|
|
31
|
-
type: "circle";
|
|
32
|
-
cx: number;
|
|
33
|
-
cy: number;
|
|
34
|
-
r: number;
|
|
35
|
-
[key: string]: string | number;
|
|
36
|
-
};
|
|
37
|
-
export type EllipseAttr = {
|
|
38
|
-
type: "ellipse";
|
|
39
|
-
cx: number;
|
|
40
|
-
cy: number;
|
|
41
|
-
rx: number;
|
|
42
|
-
ry?: number;
|
|
43
|
-
[key: string]: string | number | undefined;
|
|
44
|
-
};
|
|
45
|
-
export type RectAttr = {
|
|
46
|
-
type: "rect";
|
|
47
|
-
width: number;
|
|
48
|
-
height: number;
|
|
49
|
-
x: number;
|
|
50
|
-
y: number;
|
|
51
|
-
rx?: number;
|
|
52
|
-
ry?: number;
|
|
53
|
-
[key: string]: string | number | undefined;
|
|
54
|
-
};
|
|
55
|
-
export type GlyphAttr = {
|
|
56
|
-
type: "glyph";
|
|
57
|
-
d: string;
|
|
58
|
-
[key: string]: string | number;
|
|
59
|
-
};
|
|
60
|
-
export type ShapeParams = {
|
|
61
|
-
line: [
|
|
62
|
-
"x1",
|
|
63
|
-
"y1",
|
|
64
|
-
"x2",
|
|
65
|
-
"y2"
|
|
66
|
-
];
|
|
67
|
-
circle: [
|
|
68
|
-
"cx",
|
|
69
|
-
"cy",
|
|
70
|
-
"r"
|
|
71
|
-
];
|
|
72
|
-
ellipse: [
|
|
73
|
-
"cx",
|
|
74
|
-
"cy",
|
|
75
|
-
"rx",
|
|
76
|
-
"ry"
|
|
77
|
-
];
|
|
78
|
-
rect: [
|
|
79
|
-
"width",
|
|
80
|
-
"height",
|
|
81
|
-
"x",
|
|
82
|
-
"y",
|
|
83
|
-
"rx",
|
|
84
|
-
"ry"
|
|
85
|
-
];
|
|
86
|
-
polygon: [
|
|
87
|
-
"points"
|
|
88
|
-
];
|
|
89
|
-
polyline: [
|
|
90
|
-
"points"
|
|
91
|
-
];
|
|
92
|
-
glyph: [
|
|
93
|
-
"d"
|
|
94
|
-
];
|
|
95
|
-
};
|
|
96
|
-
export type PathBBox = {
|
|
97
|
-
width: number;
|
|
98
|
-
height: number;
|
|
99
|
-
x: number;
|
|
100
|
-
y: number;
|
|
101
|
-
x2: number;
|
|
102
|
-
y2: number;
|
|
103
|
-
cx: number;
|
|
104
|
-
cy: number;
|
|
105
|
-
cz: number;
|
|
106
|
-
};
|
|
107
|
-
export type SegmentLimits = {
|
|
108
|
-
min: {
|
|
109
|
-
x: number;
|
|
110
|
-
y: number;
|
|
111
|
-
};
|
|
112
|
-
max: {
|
|
113
|
-
x: number;
|
|
114
|
-
y: number;
|
|
115
|
-
};
|
|
116
|
-
};
|
|
117
|
-
export type ParserParams = {
|
|
118
|
-
x1: number;
|
|
119
|
-
y1: number;
|
|
120
|
-
x2: number;
|
|
121
|
-
y2: number;
|
|
122
|
-
x: number;
|
|
123
|
-
y: number;
|
|
124
|
-
qx: number | null;
|
|
125
|
-
qy: number | null;
|
|
126
|
-
};
|
|
127
|
-
export type LengthFactory = {
|
|
128
|
-
length: number;
|
|
129
|
-
point: {
|
|
130
|
-
x: number;
|
|
131
|
-
y: number;
|
|
132
|
-
};
|
|
133
|
-
min: {
|
|
134
|
-
x: number;
|
|
135
|
-
y: number;
|
|
136
|
-
};
|
|
137
|
-
max: {
|
|
138
|
-
x: number;
|
|
139
|
-
y: number;
|
|
140
|
-
};
|
|
141
|
-
};
|
|
142
|
-
export type Options = {
|
|
143
|
-
round: "off" | number;
|
|
144
|
-
origin: number[];
|
|
145
|
-
};
|
|
146
|
-
export type PathTransform = {
|
|
147
|
-
s: PathSegment;
|
|
148
|
-
c: string;
|
|
149
|
-
x: number;
|
|
150
|
-
y: number;
|
|
151
|
-
};
|
|
152
|
-
export type TransformObject = {
|
|
153
|
-
translate: number | number[];
|
|
154
|
-
rotate: number | number[];
|
|
155
|
-
scale: number | number[];
|
|
156
|
-
skew: number | number[];
|
|
157
|
-
origin: number[];
|
|
158
|
-
};
|
|
159
|
-
export type TransformProps = keyof TransformObject;
|
|
160
|
-
export type TransformEntries = [
|
|
161
|
-
TransformProps,
|
|
162
|
-
TransformObject[TransformProps]
|
|
163
|
-
][];
|
|
164
|
-
export type SpaceNumber = 5760 | 6158 | 8192 | 8193 | 8194 | 8195 | 8196 | 8197 | 8198 | 8199 | 8200 | 8201 | 8202 | 8239 | 8287 | 12288 | 65279 | 10 | 13 | 8232 | 8233 | 32 | 9 | 11 | 12 | 160 | 5760;
|
|
165
|
-
export type PathCommandNumber = 109 | 122 | 108 | 104 | 118 | 99 | 115 | 113 | 116 | 97;
|
|
166
|
-
export type DigitNumber = 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57;
|
|
167
|
-
export type MCommand = "M";
|
|
168
|
-
export type mCommand = "m";
|
|
169
|
-
export type LCommand = "L";
|
|
170
|
-
export type lCommand = "l";
|
|
171
|
-
export type VCommand = "V";
|
|
172
|
-
export type vCommand = "v";
|
|
173
|
-
export type HCommand = "H";
|
|
174
|
-
export type hCommand = "h";
|
|
175
|
-
export type ZCommand = "Z";
|
|
176
|
-
export type zCommand = "z";
|
|
177
|
-
export type CCommand = "C";
|
|
178
|
-
export type cCommand = "c";
|
|
179
|
-
export type SCommand = "S";
|
|
180
|
-
export type sCommand = "s";
|
|
181
|
-
export type QCommand = "Q";
|
|
182
|
-
export type qCommand = "q";
|
|
183
|
-
export type TCommand = "T";
|
|
184
|
-
export type tCommand = "t";
|
|
185
|
-
export type ACommand = "A";
|
|
186
|
-
export type aCommand = "a";
|
|
187
|
-
export type AbsoluteCommand = MCommand | LCommand | VCommand | HCommand | ZCommand | CCommand | SCommand | QCommand | TCommand | ACommand;
|
|
188
|
-
export type RelativeCommand = mCommand | lCommand | vCommand | hCommand | zCommand | cCommand | sCommand | qCommand | tCommand | aCommand;
|
|
189
|
-
export type PathCommand = AbsoluteCommand | RelativeCommand;
|
|
190
|
-
export type MSegment = [
|
|
191
|
-
MCommand,
|
|
192
|
-
number,
|
|
193
|
-
number
|
|
194
|
-
];
|
|
195
|
-
export type mSegment = [
|
|
196
|
-
mCommand,
|
|
197
|
-
number,
|
|
198
|
-
number
|
|
199
|
-
];
|
|
200
|
-
export type MoveSegment = MSegment | mSegment;
|
|
201
|
-
export type LSegment = [
|
|
202
|
-
LCommand,
|
|
203
|
-
number,
|
|
204
|
-
number
|
|
205
|
-
];
|
|
206
|
-
export type lSegment = [
|
|
207
|
-
lCommand,
|
|
208
|
-
number,
|
|
209
|
-
number
|
|
210
|
-
];
|
|
211
|
-
export type LineSegment = LSegment | lSegment;
|
|
212
|
-
export type VSegment = [
|
|
213
|
-
VCommand,
|
|
214
|
-
number
|
|
215
|
-
];
|
|
216
|
-
export type vSegment = [
|
|
217
|
-
vCommand,
|
|
218
|
-
number
|
|
219
|
-
];
|
|
220
|
-
export type VertLineSegment = vSegment | VSegment;
|
|
221
|
-
export type HSegment = [
|
|
222
|
-
HCommand,
|
|
223
|
-
number
|
|
224
|
-
];
|
|
225
|
-
export type hSegment = [
|
|
226
|
-
hCommand,
|
|
227
|
-
number
|
|
228
|
-
];
|
|
229
|
-
export type HorLineSegment = HSegment | hSegment;
|
|
230
|
-
export type ZSegment = [
|
|
231
|
-
ZCommand
|
|
232
|
-
];
|
|
233
|
-
export type zSegment = [
|
|
234
|
-
zCommand
|
|
235
|
-
];
|
|
236
|
-
export type CloseSegment = ZSegment | zSegment;
|
|
237
|
-
export type CSegment = [
|
|
238
|
-
CCommand,
|
|
239
|
-
number,
|
|
240
|
-
number,
|
|
241
|
-
number,
|
|
242
|
-
number,
|
|
243
|
-
number,
|
|
244
|
-
number
|
|
245
|
-
];
|
|
246
|
-
export type cSegment = [
|
|
247
|
-
cCommand,
|
|
248
|
-
number,
|
|
249
|
-
number,
|
|
250
|
-
number,
|
|
251
|
-
number,
|
|
252
|
-
number,
|
|
253
|
-
number
|
|
254
|
-
];
|
|
255
|
-
export type CubicSegment = CSegment | cSegment;
|
|
256
|
-
export type SSegment = [
|
|
257
|
-
SCommand,
|
|
258
|
-
number,
|
|
259
|
-
number,
|
|
260
|
-
number,
|
|
261
|
-
number
|
|
262
|
-
];
|
|
263
|
-
export type sSegment = [
|
|
264
|
-
sCommand,
|
|
265
|
-
number,
|
|
266
|
-
number,
|
|
267
|
-
number,
|
|
268
|
-
number
|
|
269
|
-
];
|
|
270
|
-
export type ShortCubicSegment = SSegment | sSegment;
|
|
271
|
-
export type QSegment = [
|
|
272
|
-
QCommand,
|
|
273
|
-
number,
|
|
274
|
-
number,
|
|
275
|
-
number,
|
|
276
|
-
number
|
|
277
|
-
];
|
|
278
|
-
export type qSegment = [
|
|
279
|
-
qCommand,
|
|
280
|
-
number,
|
|
281
|
-
number,
|
|
282
|
-
number,
|
|
283
|
-
number
|
|
284
|
-
];
|
|
285
|
-
export type QuadSegment = QSegment | qSegment;
|
|
286
|
-
export type TSegment = [
|
|
287
|
-
TCommand,
|
|
288
|
-
number,
|
|
289
|
-
number
|
|
290
|
-
];
|
|
291
|
-
export type tSegment = [
|
|
292
|
-
tCommand,
|
|
293
|
-
number,
|
|
294
|
-
number
|
|
295
|
-
];
|
|
296
|
-
export type ShortQuadSegment = TSegment | tSegment;
|
|
297
|
-
export type ASegment = [
|
|
298
|
-
ACommand,
|
|
299
|
-
number,
|
|
300
|
-
number,
|
|
301
|
-
number,
|
|
302
|
-
number,
|
|
303
|
-
number,
|
|
304
|
-
number,
|
|
305
|
-
number
|
|
306
|
-
];
|
|
307
|
-
export type aSegment = [
|
|
308
|
-
aCommand,
|
|
309
|
-
number,
|
|
310
|
-
number,
|
|
311
|
-
number,
|
|
312
|
-
number,
|
|
313
|
-
number,
|
|
314
|
-
number,
|
|
315
|
-
number
|
|
316
|
-
];
|
|
317
|
-
export type ArcSegment = ASegment | aSegment;
|
|
318
|
-
export type PathSegment = MoveSegment | LineSegment | VertLineSegment | HorLineSegment | CloseSegment | CubicSegment | ShortCubicSegment | QuadSegment | ShortQuadSegment | ArcSegment;
|
|
319
|
-
export type ShortSegment = VertLineSegment | HorLineSegment | ShortCubicSegment | ShortQuadSegment | CloseSegment;
|
|
320
|
-
export type AbsoluteSegment = MSegment | LSegment | VSegment | HSegment | CSegment | SSegment | QSegment | TSegment | ASegment | ZSegment;
|
|
321
|
-
export type RelativeSegment = mSegment | lSegment | vSegment | hSegment | cSegment | sSegment | qSegment | tSegment | aSegment | zSegment;
|
|
322
|
-
export type NormalSegment = MSegment | LSegment | CSegment | QSegment | ASegment | ZSegment;
|
|
323
|
-
export type PathArray = [
|
|
324
|
-
MSegment | mSegment,
|
|
325
|
-
...PathSegment[]
|
|
326
|
-
];
|
|
327
|
-
export type AbsoluteArray = [
|
|
328
|
-
MSegment,
|
|
329
|
-
...AbsoluteSegment[]
|
|
330
|
-
];
|
|
331
|
-
export type RelativeArray = [
|
|
332
|
-
MSegment,
|
|
333
|
-
...RelativeSegment[]
|
|
334
|
-
];
|
|
335
|
-
export type NormalArray = [
|
|
336
|
-
MSegment,
|
|
337
|
-
...NormalSegment[]
|
|
338
|
-
];
|
|
339
|
-
export type CurveArray = [
|
|
340
|
-
MSegment,
|
|
341
|
-
...CSegment[]
|
|
342
|
-
];
|
|
343
|
-
export type PolygonArray = [
|
|
344
|
-
MSegment,
|
|
345
|
-
...LSegment[],
|
|
346
|
-
ZSegment
|
|
347
|
-
];
|
|
348
|
-
export type PolylineArray = [
|
|
349
|
-
MSegment,
|
|
350
|
-
...LSegment[]
|
|
351
|
-
];
|
|
352
|
-
export type ShapeTypes = SVGPolylineElement | SVGPolygonElement | SVGLineElement | SVGEllipseElement | SVGCircleElement | SVGRectElement;
|
|
353
|
-
export type ShapeTags = "line" | "polyline" | "polygon" | "ellipse" | "circle" | "rect" | "glyph";
|
|
354
|
-
export type ShapeOps = LineAttr | PolyAttr | PolyAttr | EllipseAttr | CircleAttr | RectAttr | GlyphAttr;
|
|
355
|
-
export type TransformObjectValues = Partial<TransformObject> & {
|
|
356
|
-
origin: [
|
|
357
|
-
number,
|
|
358
|
-
number,
|
|
359
|
-
number
|
|
360
|
-
];
|
|
361
|
-
};
|
|
362
|
-
export type Point = {
|
|
363
|
-
x: number;
|
|
364
|
-
y: number;
|
|
365
|
-
};
|
|
366
|
-
export type PointTuple = [
|
|
367
|
-
number,
|
|
368
|
-
number
|
|
369
|
-
];
|
|
370
|
-
export type DerivedPoint = Point & {
|
|
371
|
-
t: number;
|
|
372
|
-
};
|
|
373
|
-
export type QuadPoints = [
|
|
374
|
-
Point,
|
|
375
|
-
Point,
|
|
376
|
-
Point,
|
|
377
|
-
Point,
|
|
378
|
-
Point,
|
|
379
|
-
Point
|
|
380
|
-
];
|
|
381
|
-
export type CubicPoints = [
|
|
382
|
-
Point,
|
|
383
|
-
Point,
|
|
384
|
-
Point,
|
|
385
|
-
Point,
|
|
386
|
-
Point,
|
|
387
|
-
Point,
|
|
388
|
-
Point,
|
|
389
|
-
Point
|
|
390
|
-
];
|
|
391
|
-
export type DerivedQuadPoints = [
|
|
392
|
-
DerivedPoint,
|
|
393
|
-
DerivedPoint,
|
|
394
|
-
DerivedPoint,
|
|
395
|
-
DerivedPoint,
|
|
396
|
-
DerivedPoint,
|
|
397
|
-
DerivedPoint
|
|
398
|
-
];
|
|
399
|
-
export type DerivedCubicPoints = [
|
|
400
|
-
DerivedPoint,
|
|
401
|
-
DerivedPoint,
|
|
402
|
-
DerivedPoint,
|
|
403
|
-
DerivedPoint,
|
|
404
|
-
DerivedPoint,
|
|
405
|
-
DerivedPoint,
|
|
406
|
-
DerivedPoint,
|
|
407
|
-
DerivedPoint
|
|
408
|
-
];
|
|
409
|
-
export type QuadCoordinates = [
|
|
410
|
-
number,
|
|
411
|
-
number,
|
|
412
|
-
number,
|
|
413
|
-
number,
|
|
414
|
-
number,
|
|
415
|
-
number
|
|
416
|
-
];
|
|
417
|
-
export type CubicCoordinates = [
|
|
418
|
-
number,
|
|
419
|
-
number,
|
|
420
|
-
number,
|
|
421
|
-
number,
|
|
422
|
-
number,
|
|
423
|
-
number,
|
|
424
|
-
number,
|
|
425
|
-
number
|
|
426
|
-
];
|
|
427
|
-
export type ArcCoordinates = [
|
|
428
|
-
number,
|
|
429
|
-
number,
|
|
430
|
-
number,
|
|
431
|
-
number,
|
|
432
|
-
number,
|
|
433
|
-
number,
|
|
434
|
-
number,
|
|
435
|
-
number,
|
|
436
|
-
number
|
|
437
|
-
];
|
|
438
|
-
export type LineCoordinates = [
|
|
439
|
-
number,
|
|
440
|
-
number,
|
|
441
|
-
number,
|
|
442
|
-
number
|
|
443
|
-
];
|
|
444
|
-
export type DeriveCallback = (t: number) => Point;
|
|
445
|
-
export type IteratorCallback = (segment: PathSegment, index: number, lastX: number, lastY: number) => PathSegment | false | void | undefined;
|
|
446
|
-
declare const arcLength: (rx: number, ry: number, theta: number) => number;
|
|
447
|
-
declare const arcPoint: (cx: number, cy: number, rx: number, ry: number, alpha: number, theta: number) => {
|
|
448
|
-
x: number;
|
|
449
|
-
y: number;
|
|
450
|
-
};
|
|
451
|
-
declare const angleBetween: (v0: Point, v1: Point) => number;
|
|
452
|
-
declare const getArcProps: (x1: number, y1: number, RX: number, RY: number, angle: number, LAF: number, SF: number, x: number, y: number) => {
|
|
453
|
-
rx: number;
|
|
454
|
-
ry: number;
|
|
455
|
-
startAngle: number;
|
|
456
|
-
endAngle: number;
|
|
457
|
-
center: {
|
|
458
|
-
x: number;
|
|
459
|
-
y: number;
|
|
460
|
-
};
|
|
461
|
-
};
|
|
462
|
-
declare const getArcLength: (x1: number, y1: number, RX: number, RY: number, angle: number, LAF: number, SF: number, x: number, y: number) => number;
|
|
463
|
-
declare const getPointAtArcLength: (x1: number, y1: number, RX: number, RY: number, angle: number, LAF: number, SF: number, x: number, y: number, distance?: number) => {
|
|
464
|
-
x: number;
|
|
465
|
-
y: number;
|
|
466
|
-
};
|
|
467
|
-
declare const getArcBBox: (x1: number, y1: number, RX: number, RY: number, angle: number, LAF: number, SF: number, x: number, y: number) => {
|
|
468
|
-
min: {
|
|
469
|
-
x: number;
|
|
470
|
-
y: number;
|
|
471
|
-
};
|
|
472
|
-
max: {
|
|
473
|
-
x: number;
|
|
474
|
-
y: number;
|
|
475
|
-
};
|
|
476
|
-
};
|
|
477
|
-
declare class PathParser {
|
|
478
|
-
segments: PathArray | PathSegment[];
|
|
479
|
-
pathValue: string;
|
|
480
|
-
max: number;
|
|
481
|
-
index: number;
|
|
482
|
-
param: number;
|
|
483
|
-
segmentStart: number;
|
|
484
|
-
data: (string | number)[];
|
|
485
|
-
err: string;
|
|
486
|
-
constructor(pathString: string);
|
|
487
|
-
}
|
|
488
|
-
/**
|
|
489
|
-
* Creates a new SVGPathCommander instance with the following properties:
|
|
490
|
-
* * segments: `pathArray`
|
|
491
|
-
* * round: number
|
|
492
|
-
* * origin: [number, number, number?]
|
|
493
|
-
*
|
|
494
|
-
* @class
|
|
495
|
-
* @author thednp <https://github.com/thednp/svg-path-commander>
|
|
496
|
-
* @returns a new SVGPathCommander instance
|
|
497
|
-
*/
|
|
498
|
-
declare class SVGPathCommander {
|
|
499
|
-
static CSSMatrix: typeof CSSMatrix$1;
|
|
500
|
-
static pathToAbsolute: (pathInput: string | PathArray) => AbsoluteArray;
|
|
501
|
-
static pathToRelative: (pathInput: string | PathArray) => RelativeArray;
|
|
502
|
-
static pathToCurve: (pathInput: string | PathArray) => CurveArray;
|
|
503
|
-
static pathToString: (path: PathArray, roundOption?: number | "off") => string;
|
|
504
|
-
static arcTools: typeof arcTools;
|
|
505
|
-
static bezierTools: {
|
|
506
|
-
Cvalues: number[];
|
|
507
|
-
Tvalues: number[];
|
|
508
|
-
minmaxC: ([v1, cp1, cp2, v2]: [
|
|
509
|
-
number,
|
|
510
|
-
number,
|
|
511
|
-
number,
|
|
512
|
-
number
|
|
513
|
-
]) => PointTuple;
|
|
514
|
-
minmaxQ: ([v1, cp, v2]: [
|
|
515
|
-
number,
|
|
516
|
-
number,
|
|
517
|
-
number
|
|
518
|
-
]) => PointTuple;
|
|
519
|
-
getBezierLength: (curve: CubicCoordinates | QuadCoordinates) => number;
|
|
520
|
-
bezierLength: (derivativeFn: DeriveCallback) => number;
|
|
521
|
-
calculateBezier: (derivativeFn: DeriveCallback, t: number) => number;
|
|
522
|
-
computeBezier: (points: DerivedQuadPoints | DerivedCubicPoints, t: number) => DerivedPoint;
|
|
523
|
-
deriveBezier: (points: QuadPoints | CubicPoints) => (DerivedQuadPoints | DerivedCubicPoints)[];
|
|
524
|
-
CBEZIER_MINMAX_EPSILON: number;
|
|
525
|
-
};
|
|
526
|
-
static cubicTools: {
|
|
527
|
-
getCubicLength: (x1: number, y1: number, c1x: number, c1y: number, c2x: number, c2y: number, x2: number, y2: number) => number;
|
|
528
|
-
getCubicBBox: (x1: number, y1: number, c1x: number, c1y: number, c2x: number, c2y: number, x2: number, y2: number) => {
|
|
529
|
-
min: {
|
|
530
|
-
x: number;
|
|
531
|
-
y: number;
|
|
532
|
-
};
|
|
533
|
-
max: {
|
|
534
|
-
x: number;
|
|
535
|
-
y: number;
|
|
536
|
-
};
|
|
537
|
-
};
|
|
538
|
-
getPointAtCubicLength: (x1: number, y1: number, c1x: number, c1y: number, c2x: number, c2y: number, x2: number, y2: number, distance?: number) => {
|
|
539
|
-
x: number;
|
|
540
|
-
y: number;
|
|
541
|
-
};
|
|
542
|
-
getPointAtCubicSegmentLength: ([x1, y1, c1x, c1y, c2x, c2y, x2, y2]: CubicCoordinates, t: number) => {
|
|
543
|
-
x: number;
|
|
544
|
-
y: number;
|
|
545
|
-
};
|
|
546
|
-
};
|
|
547
|
-
static lineTools: {
|
|
548
|
-
getPointAtLineLength: (x1: number, y1: number, x2: number, y2: number, distance?: number) => {
|
|
549
|
-
x: number;
|
|
550
|
-
y: number;
|
|
551
|
-
};
|
|
552
|
-
getLineBBox: (x1: number, y1: number, x2: number, y2: number) => {
|
|
553
|
-
min: {
|
|
554
|
-
x: number;
|
|
555
|
-
y: number;
|
|
556
|
-
};
|
|
557
|
-
max: {
|
|
558
|
-
x: number;
|
|
559
|
-
y: number;
|
|
560
|
-
};
|
|
561
|
-
};
|
|
562
|
-
getLineLength: (x1: number, y1: number, x2: number, y2: number) => number;
|
|
563
|
-
};
|
|
564
|
-
static quadTools: {
|
|
565
|
-
getPointAtQuadSegmentLength: ([x1, y1, cx, cy, x2, y2]: QuadCoordinates, t: number) => {
|
|
566
|
-
x: number;
|
|
567
|
-
y: number;
|
|
568
|
-
};
|
|
569
|
-
getQuadLength: (x1: number, y1: number, cx: number, cy: number, x2: number, y2: number) => number;
|
|
570
|
-
getQuadBBox: (x1: number, y1: number, cx: number, cy: number, x2: number, y2: number) => {
|
|
571
|
-
min: {
|
|
572
|
-
x: number;
|
|
573
|
-
y: number;
|
|
574
|
-
};
|
|
575
|
-
max: {
|
|
576
|
-
x: number;
|
|
577
|
-
y: number;
|
|
578
|
-
};
|
|
579
|
-
};
|
|
580
|
-
getPointAtQuadLength: (x1: number, y1: number, cx: number, cy: number, x2: number, y2: number, distance?: number) => {
|
|
581
|
-
x: number;
|
|
582
|
-
y: number;
|
|
583
|
-
};
|
|
584
|
-
};
|
|
585
|
-
static polygonTools: {
|
|
586
|
-
polygonArea: (polygon: PointTuple[]) => number;
|
|
587
|
-
polygonLength: (polygon: PointTuple[]) => number;
|
|
588
|
-
};
|
|
589
|
-
static distanceSquareRoot: (a: PointTuple, b: PointTuple) => number;
|
|
590
|
-
static distanceEpsilon: number;
|
|
591
|
-
static midPoint: (a: PointTuple, b: PointTuple, t: number) => PointTuple;
|
|
592
|
-
static rotateVector: (x: number, y: number, rad: number) => {
|
|
593
|
-
x: number;
|
|
594
|
-
y: number;
|
|
595
|
-
};
|
|
596
|
-
static roundTo: (n: number, round: number) => number;
|
|
597
|
-
static finalizeSegment: (path: PathParser) => void;
|
|
598
|
-
static invalidPathValue: string;
|
|
599
|
-
static isArcCommand: (code: number) => code is 97;
|
|
600
|
-
static isDigit: (code: number) => code is DigitNumber;
|
|
601
|
-
static isDigitStart: (code: number) => code is DigitNumber | 43 | 45 | 46;
|
|
602
|
-
static isMoveCommand: (code: number) => code is 109 | 77;
|
|
603
|
-
static isPathCommand: (code: number) => code is PathCommandNumber;
|
|
604
|
-
static isSpace: (ch: number) => ch is SpaceNumber;
|
|
605
|
-
static paramsCount: {
|
|
606
|
-
a: number;
|
|
607
|
-
c: number;
|
|
608
|
-
h: number;
|
|
609
|
-
l: number;
|
|
610
|
-
m: number;
|
|
611
|
-
r: number;
|
|
612
|
-
q: number;
|
|
613
|
-
s: number;
|
|
614
|
-
t: number;
|
|
615
|
-
v: number;
|
|
616
|
-
z: number;
|
|
617
|
-
};
|
|
618
|
-
static paramsParser: ParserParams;
|
|
619
|
-
static pathParser: typeof PathParser;
|
|
620
|
-
static scanFlag: (path: PathParser) => void;
|
|
621
|
-
static scanParam: (path: PathParser) => void;
|
|
622
|
-
static scanSegment: (path: PathParser) => void;
|
|
623
|
-
static skipSpaces: (path: PathParser) => void;
|
|
624
|
-
static getPathBBox: (pathInput: PathArray | string) => {
|
|
625
|
-
x: number;
|
|
626
|
-
y: number;
|
|
627
|
-
width: number;
|
|
628
|
-
height: number;
|
|
629
|
-
x2: number;
|
|
630
|
-
y2: number;
|
|
631
|
-
cx: number;
|
|
632
|
-
cy: number;
|
|
633
|
-
cz: number;
|
|
634
|
-
};
|
|
635
|
-
static getPathArea: (path: PathArray) => number;
|
|
636
|
-
static getTotalLength: (pathInput: string | PathArray) => number;
|
|
637
|
-
static getDrawDirection: (path: string | PathArray) => boolean;
|
|
638
|
-
static getPointAtLength: (pathInput: string | PathArray, distance?: number) => {
|
|
639
|
-
x: number;
|
|
640
|
-
y: number;
|
|
641
|
-
};
|
|
642
|
-
static getPropertiesAtLength: (pathInput: string | PathArray, distance?: number) => SegmentProperties;
|
|
643
|
-
static getPropertiesAtPoint: (pathInput: string | PathArray, point: Point) => PointProperties;
|
|
644
|
-
static getClosestPoint: (pathInput: string | PathArray, point: {
|
|
645
|
-
x: number;
|
|
646
|
-
y: number;
|
|
647
|
-
}) => {
|
|
648
|
-
x: number;
|
|
649
|
-
y: number;
|
|
650
|
-
};
|
|
651
|
-
static getSegmentOfPoint: (path: string | PathArray, point: {
|
|
652
|
-
x: number;
|
|
653
|
-
y: number;
|
|
654
|
-
}) => SegmentProperties | undefined;
|
|
655
|
-
static getSegmentAtLength: (pathInput: string | PathArray, distance?: number) => PathSegment | undefined;
|
|
656
|
-
static isPointInStroke: (pathInput: string | PathArray, point: {
|
|
657
|
-
x: number;
|
|
658
|
-
y: number;
|
|
659
|
-
}) => boolean;
|
|
660
|
-
static isValidPath: (pathString: string) => boolean;
|
|
661
|
-
static isPathArray: (path: unknown) => path is PathArray;
|
|
662
|
-
static isAbsoluteArray: (path: unknown) => path is AbsoluteArray;
|
|
663
|
-
static isRelativeArray: (path: unknown) => path is RelativeArray;
|
|
664
|
-
static isCurveArray: (path: unknown) => path is CurveArray;
|
|
665
|
-
static isNormalizedArray: (path: unknown) => path is NormalArray;
|
|
666
|
-
static shapeToPath: (element: ShapeTypes | ShapeOps, replace?: boolean, ownerDocument?: Document) => SVGPathElement | false;
|
|
667
|
-
static shapeToPathArray: (element: ShapeTypes | ShapeOps, ownerDocument?: Document) => false | PathArray;
|
|
668
|
-
static shapeParams: ShapeParams;
|
|
669
|
-
static parsePathString: <T extends PathArray>(pathInput: string | T) => PathArray;
|
|
670
|
-
static absolutizeSegment: (segment: PathSegment, index: number, lastX: number, lastY: number) => AbsoluteSegment;
|
|
671
|
-
static arcToCubic: (X1: number, Y1: number, RX: number, RY: number, angle: number, LAF: number, SF: number, X2: number, Y2: number, recursive?: [
|
|
672
|
-
number,
|
|
673
|
-
number,
|
|
674
|
-
number,
|
|
675
|
-
number
|
|
676
|
-
]) => number[];
|
|
677
|
-
static getSVGMatrix: (transform: TransformObjectValues) => CSSMatrix$1;
|
|
678
|
-
static iterate: <T extends PathArray>(path: PathArray, iterator: IteratorCallback) => T;
|
|
679
|
-
static lineToCubic: (x1: number, y1: number, x2: number, y2: number) => number[];
|
|
680
|
-
static normalizePath: (pathInput: string | PathArray) => NormalArray;
|
|
681
|
-
static normalizeSegment: (segment: PathSegment, params: ParserParams) => NormalSegment;
|
|
682
|
-
static optimizePath: (pathInput: PathArray, roundOption: number) => PathArray;
|
|
683
|
-
static projection2d: (m: CSSMatrix$1, point2D: PointTuple, origin: [
|
|
684
|
-
number,
|
|
685
|
-
number,
|
|
686
|
-
number
|
|
687
|
-
]) => PointTuple;
|
|
688
|
-
static quadToCubic: (x1: number, y1: number, qx: number, qy: number, x2: number, y2: number) => [
|
|
689
|
-
number,
|
|
690
|
-
number,
|
|
691
|
-
number,
|
|
692
|
-
number,
|
|
693
|
-
number,
|
|
694
|
-
number
|
|
695
|
-
];
|
|
696
|
-
static relativizeSegment: (segment: PathSegment, index: number, lastX: number, lastY: number) => MSegment | RelativeSegment;
|
|
697
|
-
static reverseCurve: (path: CurveArray) => CurveArray;
|
|
698
|
-
static reversePath: (pathInput: PathArray) => PathArray;
|
|
699
|
-
static roundPath: (path: PathArray, roundOption?: number | "off") => PathArray;
|
|
700
|
-
static roundSegment: <T extends PathSegment>(segment: T, roundOption: number) => T;
|
|
701
|
-
static segmentToCubic: (segment: PathSegment, params: ParserParams) => MSegment | CSegment;
|
|
702
|
-
static shortenSegment: (segment: AbsoluteSegment, normalSegment: NormalSegment, params: ParserParams, prevCommand: PathCommand) => ShortSegment;
|
|
703
|
-
static splitCubic: (pts: number[], ratio?: number) => [
|
|
704
|
-
CubicSegment,
|
|
705
|
-
CubicSegment
|
|
706
|
-
];
|
|
707
|
-
static splitPath: (pathInput: PathArray) => PathArray[];
|
|
708
|
-
static transformPath: (pathInput: PathArray | string, transform?: Partial<TransformObject>) => PathArray;
|
|
709
|
-
segments: PathArray;
|
|
710
|
-
round: number | "off";
|
|
711
|
-
origin: [
|
|
712
|
-
number,
|
|
713
|
-
number,
|
|
714
|
-
number
|
|
715
|
-
];
|
|
716
|
-
/**
|
|
717
|
-
* @constructor
|
|
718
|
-
* @param pathValue the path string
|
|
719
|
-
* @param config instance options
|
|
720
|
-
*/
|
|
721
|
-
constructor(pathValue: string, config?: Partial<Options>);
|
|
722
|
-
get bbox(): {
|
|
723
|
-
x: number;
|
|
724
|
-
y: number;
|
|
725
|
-
width: number;
|
|
726
|
-
height: number;
|
|
727
|
-
x2: number;
|
|
728
|
-
y2: number;
|
|
729
|
-
cx: number;
|
|
730
|
-
cy: number;
|
|
731
|
-
cz: number;
|
|
732
|
-
};
|
|
733
|
-
get length(): number;
|
|
734
|
-
/**
|
|
735
|
-
* Returns the path bounding box, equivalent to native `path.getBBox()`.
|
|
736
|
-
*
|
|
737
|
-
* @public
|
|
738
|
-
* @returns the pathBBox
|
|
739
|
-
*/
|
|
740
|
-
getBBox(): {
|
|
741
|
-
x: number;
|
|
742
|
-
y: number;
|
|
743
|
-
width: number;
|
|
744
|
-
height: number;
|
|
745
|
-
x2: number;
|
|
746
|
-
y2: number;
|
|
747
|
-
cx: number;
|
|
748
|
-
cy: number;
|
|
749
|
-
cz: number;
|
|
750
|
-
};
|
|
751
|
-
/**
|
|
752
|
-
* Returns the total path length, equivalent to native `path.getTotalLength()`.
|
|
753
|
-
*
|
|
754
|
-
* @public
|
|
755
|
-
* @returns the path total length
|
|
756
|
-
*/
|
|
757
|
-
getTotalLength(): number;
|
|
758
|
-
/**
|
|
759
|
-
* Returns an `{x,y}` point in the path stroke at a given length,
|
|
760
|
-
* equivalent to the native `path.getPointAtLength()`.
|
|
761
|
-
*
|
|
762
|
-
* @public
|
|
763
|
-
* @param length the length
|
|
764
|
-
* @returns the requested point
|
|
765
|
-
*/
|
|
766
|
-
getPointAtLength(length: number): {
|
|
767
|
-
x: number;
|
|
768
|
-
y: number;
|
|
769
|
-
};
|
|
770
|
-
/**
|
|
771
|
-
* Convert path to absolute values
|
|
772
|
-
*
|
|
773
|
-
* @public
|
|
774
|
-
*/
|
|
775
|
-
toAbsolute(): this;
|
|
776
|
-
/**
|
|
777
|
-
* Convert path to relative values
|
|
778
|
-
*
|
|
779
|
-
* @public
|
|
780
|
-
*/
|
|
781
|
-
toRelative(): this;
|
|
782
|
-
/**
|
|
783
|
-
* Convert path to cubic-bezier values. In addition, un-necessary `Z`
|
|
784
|
-
* segment is removed if previous segment extends to the `M` segment.
|
|
785
|
-
*
|
|
786
|
-
* @public
|
|
787
|
-
*/
|
|
788
|
-
toCurve(): this;
|
|
789
|
-
/**
|
|
790
|
-
* Reverse the order of the segments and their values.
|
|
791
|
-
*
|
|
792
|
-
* @param onlySubpath option to reverse all sub-paths except first
|
|
793
|
-
* @public
|
|
794
|
-
*/
|
|
795
|
-
reverse(onlySubpath?: boolean): this;
|
|
796
|
-
/**
|
|
797
|
-
* Normalize path in 2 steps:
|
|
798
|
-
* * convert `pathArray`(s) to absolute values
|
|
799
|
-
* * convert shorthand notation to standard notation
|
|
800
|
-
*
|
|
801
|
-
* @public
|
|
802
|
-
*/
|
|
803
|
-
normalize(): this;
|
|
804
|
-
/**
|
|
805
|
-
* Optimize `pathArray` values:
|
|
806
|
-
* * convert segments to absolute and/or relative values
|
|
807
|
-
* * select segments with shortest resulted string
|
|
808
|
-
* * round values to the specified `decimals` option value
|
|
809
|
-
*
|
|
810
|
-
* @public
|
|
811
|
-
*/
|
|
812
|
-
optimize(): this;
|
|
813
|
-
/**
|
|
814
|
-
* Transform path using values from an `Object` defined as `transformObject`.
|
|
815
|
-
*
|
|
816
|
-
* @see TransformObject for a quick refference
|
|
817
|
-
*
|
|
818
|
-
* @param source a `transformObject`as described above
|
|
819
|
-
* @public
|
|
820
|
-
*/
|
|
821
|
-
transform(source?: Partial<TransformObject>): this;
|
|
822
|
-
/**
|
|
823
|
-
* Rotate path 180deg vertically
|
|
824
|
-
*
|
|
825
|
-
* @public
|
|
826
|
-
*/
|
|
827
|
-
flipX(): this;
|
|
828
|
-
/**
|
|
829
|
-
* Rotate path 180deg horizontally
|
|
830
|
-
*
|
|
831
|
-
* @public
|
|
832
|
-
*/
|
|
833
|
-
flipY(): this;
|
|
834
|
-
/**
|
|
835
|
-
* Export the current path to be used
|
|
836
|
-
* for the `d` (description) attribute.
|
|
837
|
-
*
|
|
838
|
-
* @public
|
|
839
|
-
* @return the path string
|
|
840
|
-
*/
|
|
841
|
-
toString(): string;
|
|
842
|
-
}
|
|
843
719
|
|
|
844
|
-
declare namespace
|
|
845
|
-
|
|
720
|
+
declare namespace shapes {
|
|
721
|
+
let initial: string[];
|
|
722
|
+
let normalized: string[];
|
|
723
|
+
let optimized: string[];
|
|
724
|
+
let relative: string[];
|
|
725
|
+
let absolute: string[];
|
|
726
|
+
let curve: string[];
|
|
727
|
+
let scaled: string[];
|
|
728
|
+
let translated: string[];
|
|
729
|
+
let length: number[];
|
|
730
|
+
let pointAt50: {
|
|
731
|
+
x: number;
|
|
732
|
+
y: number;
|
|
733
|
+
}[];
|
|
846
734
|
}
|
|
847
735
|
|
|
848
|
-
export {
|
|
849
|
-
SVGPathCommander as default,
|
|
850
|
-
};
|
|
851
736
|
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
737
|
+
declare namespace simpleShapes {
|
|
738
|
+
let initial: string[];
|
|
739
|
+
let normalized: string[];
|
|
740
|
+
let transformed: string[];
|
|
741
|
+
let scaled3d: string[];
|
|
742
|
+
let skewedX: string[];
|
|
743
|
+
let skewedY: string[];
|
|
744
|
+
let reversed: string[];
|
|
745
|
+
let length: number[];
|
|
746
|
+
let width: number[];
|
|
747
|
+
let height: number[];
|
|
748
|
+
let pointAt0: {
|
|
749
|
+
x: number;
|
|
750
|
+
y: number;
|
|
751
|
+
}[];
|
|
752
|
+
let pointAt400: {
|
|
753
|
+
x: number;
|
|
754
|
+
y: number;
|
|
755
|
+
}[];
|
|
756
|
+
let pointAt50: {
|
|
757
|
+
x: number;
|
|
758
|
+
y: number;
|
|
759
|
+
}[];
|
|
760
|
+
}
|