@silurus/ooxml 0.48.0 → 0.49.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.
@@ -0,0 +1,1388 @@
1
+ //#region packages/core/src/shape/custGeom.ts
2
+ function e(e, t, n, r, i, a) {
3
+ for (let o of t) {
4
+ let t = 0, s = 0;
5
+ for (let c of o) switch (c.cmd) {
6
+ case "moveTo":
7
+ e.moveTo(n + c.x * i, r + c.y * a), t = c.x, s = c.y;
8
+ break;
9
+ case "lineTo":
10
+ e.lineTo(n + c.x * i, r + c.y * a), t = c.x, s = c.y;
11
+ break;
12
+ case "cubicBezTo":
13
+ e.bezierCurveTo(n + c.x1 * i, r + c.y1 * a, n + c.x2 * i, r + c.y2 * a, n + c.x * i, r + c.y * a), t = c.x, s = c.y;
14
+ break;
15
+ case "arcTo": {
16
+ let o = c.wr * i, l = c.hr * a;
17
+ if (o <= 0 || l <= 0) break;
18
+ let u = c.stAng * Math.PI / 180, d = c.swAng * Math.PI / 180, f = n + t * i, p = r + s * a, m = f - o * Math.cos(u), h = p - l * Math.sin(u), g = u + d;
19
+ e.ellipse(m, h, o, l, 0, u, g, d < 0), t = (m + o * Math.cos(g) - n) / i, s = (h + l * Math.sin(g) - r) / a;
20
+ break;
21
+ }
22
+ case "close":
23
+ e.closePath();
24
+ break;
25
+ }
26
+ }
27
+ }
28
+ //#endregion
29
+ //#region packages/core/src/shape/pattern-bitmaps.ts
30
+ var t = {
31
+ pct5: [
32
+ 0,
33
+ 16,
34
+ 0,
35
+ 0,
36
+ 0,
37
+ 1,
38
+ 0,
39
+ 0
40
+ ],
41
+ pct10: [
42
+ 136,
43
+ 0,
44
+ 34,
45
+ 0,
46
+ 136,
47
+ 0,
48
+ 34,
49
+ 0
50
+ ],
51
+ pct20: [
52
+ 136,
53
+ 34,
54
+ 136,
55
+ 34,
56
+ 136,
57
+ 34,
58
+ 136,
59
+ 34
60
+ ],
61
+ pct25: [
62
+ 136,
63
+ 85,
64
+ 34,
65
+ 85,
66
+ 136,
67
+ 85,
68
+ 34,
69
+ 85
70
+ ],
71
+ pct30: [
72
+ 170,
73
+ 85,
74
+ 170,
75
+ 85,
76
+ 170,
77
+ 85,
78
+ 170,
79
+ 85
80
+ ],
81
+ pct40: [
82
+ 170,
83
+ 119,
84
+ 170,
85
+ 221,
86
+ 170,
87
+ 119,
88
+ 170,
89
+ 221
90
+ ],
91
+ pct50: [
92
+ 170,
93
+ 85,
94
+ 170,
95
+ 85,
96
+ 170,
97
+ 85,
98
+ 170,
99
+ 85
100
+ ],
101
+ pct60: [
102
+ 221,
103
+ 85,
104
+ 119,
105
+ 85,
106
+ 221,
107
+ 85,
108
+ 119,
109
+ 85
110
+ ],
111
+ pct70: [
112
+ 238,
113
+ 85,
114
+ 187,
115
+ 85,
116
+ 238,
117
+ 85,
118
+ 187,
119
+ 85
120
+ ],
121
+ pct75: [
122
+ 238,
123
+ 170,
124
+ 187,
125
+ 170,
126
+ 238,
127
+ 170,
128
+ 187,
129
+ 170
130
+ ],
131
+ pct80: [
132
+ 254,
133
+ 239,
134
+ 251,
135
+ 191,
136
+ 254,
137
+ 239,
138
+ 251,
139
+ 191
140
+ ],
141
+ pct90: [
142
+ 255,
143
+ 239,
144
+ 255,
145
+ 251,
146
+ 255,
147
+ 239,
148
+ 255,
149
+ 251
150
+ ],
151
+ horz: [
152
+ 255,
153
+ 0,
154
+ 0,
155
+ 0,
156
+ 255,
157
+ 0,
158
+ 0,
159
+ 0
160
+ ],
161
+ vert: [
162
+ 136,
163
+ 136,
164
+ 136,
165
+ 136,
166
+ 136,
167
+ 136,
168
+ 136,
169
+ 136
170
+ ],
171
+ ltHorz: [
172
+ 0,
173
+ 255,
174
+ 0,
175
+ 0,
176
+ 0,
177
+ 0,
178
+ 0,
179
+ 0
180
+ ],
181
+ ltVert: [
182
+ 32,
183
+ 32,
184
+ 32,
185
+ 32,
186
+ 32,
187
+ 32,
188
+ 32,
189
+ 32
190
+ ],
191
+ dkHorz: [
192
+ 255,
193
+ 255,
194
+ 0,
195
+ 0,
196
+ 255,
197
+ 255,
198
+ 0,
199
+ 0
200
+ ],
201
+ dkVert: [
202
+ 204,
203
+ 204,
204
+ 204,
205
+ 204,
206
+ 204,
207
+ 204,
208
+ 204,
209
+ 204
210
+ ],
211
+ narHorz: [
212
+ 255,
213
+ 0,
214
+ 255,
215
+ 0,
216
+ 255,
217
+ 0,
218
+ 255,
219
+ 0
220
+ ],
221
+ narVert: [
222
+ 170,
223
+ 170,
224
+ 170,
225
+ 170,
226
+ 170,
227
+ 170,
228
+ 170,
229
+ 170
230
+ ],
231
+ cross: [
232
+ 255,
233
+ 136,
234
+ 136,
235
+ 136,
236
+ 255,
237
+ 136,
238
+ 136,
239
+ 136
240
+ ],
241
+ lgGrid: [
242
+ 255,
243
+ 128,
244
+ 128,
245
+ 128,
246
+ 128,
247
+ 128,
248
+ 128,
249
+ 128
250
+ ],
251
+ smGrid: [
252
+ 255,
253
+ 136,
254
+ 136,
255
+ 136,
256
+ 255,
257
+ 136,
258
+ 136,
259
+ 136
260
+ ],
261
+ dotGrid: [
262
+ 136,
263
+ 0,
264
+ 0,
265
+ 0,
266
+ 136,
267
+ 0,
268
+ 0,
269
+ 0
270
+ ],
271
+ dnDiag: [
272
+ 128,
273
+ 64,
274
+ 32,
275
+ 16,
276
+ 8,
277
+ 4,
278
+ 2,
279
+ 1
280
+ ],
281
+ upDiag: [
282
+ 1,
283
+ 2,
284
+ 4,
285
+ 8,
286
+ 16,
287
+ 32,
288
+ 64,
289
+ 128
290
+ ],
291
+ ltDnDiag: [
292
+ 136,
293
+ 68,
294
+ 34,
295
+ 17,
296
+ 136,
297
+ 68,
298
+ 34,
299
+ 17
300
+ ],
301
+ ltUpDiag: [
302
+ 17,
303
+ 34,
304
+ 68,
305
+ 136,
306
+ 17,
307
+ 34,
308
+ 68,
309
+ 136
310
+ ],
311
+ dkDnDiag: [
312
+ 195,
313
+ 129,
314
+ 0,
315
+ 129,
316
+ 195,
317
+ 129,
318
+ 0,
319
+ 129
320
+ ],
321
+ dkUpDiag: [
322
+ 195,
323
+ 129,
324
+ 0,
325
+ 129,
326
+ 195,
327
+ 129,
328
+ 0,
329
+ 129
330
+ ],
331
+ wdDnDiag: [
332
+ 128,
333
+ 64,
334
+ 32,
335
+ 16,
336
+ 8,
337
+ 4,
338
+ 2,
339
+ 129
340
+ ],
341
+ wdUpDiag: [
342
+ 1,
343
+ 2,
344
+ 4,
345
+ 8,
346
+ 16,
347
+ 32,
348
+ 64,
349
+ 129
350
+ ],
351
+ diagCross: [
352
+ 129,
353
+ 66,
354
+ 36,
355
+ 24,
356
+ 24,
357
+ 36,
358
+ 66,
359
+ 129
360
+ ],
361
+ horzBrick: [
362
+ 255,
363
+ 16,
364
+ 16,
365
+ 16,
366
+ 255,
367
+ 1,
368
+ 1,
369
+ 1
370
+ ],
371
+ diagBrick: [
372
+ 129,
373
+ 66,
374
+ 36,
375
+ 24,
376
+ 36,
377
+ 66,
378
+ 129,
379
+ 0
380
+ ],
381
+ lgCheck: [
382
+ 240,
383
+ 240,
384
+ 240,
385
+ 240,
386
+ 15,
387
+ 15,
388
+ 15,
389
+ 15
390
+ ],
391
+ smCheck: [
392
+ 204,
393
+ 204,
394
+ 51,
395
+ 51,
396
+ 204,
397
+ 204,
398
+ 51,
399
+ 51
400
+ ],
401
+ trellis: [
402
+ 165,
403
+ 90,
404
+ 165,
405
+ 90,
406
+ 165,
407
+ 90,
408
+ 165,
409
+ 90
410
+ ]
411
+ };
412
+ function n(e, n, a) {
413
+ let o = t[e];
414
+ if (!o) return null;
415
+ let s = r(8, 8);
416
+ if (!s) return null;
417
+ let c = s.getContext("2d");
418
+ if (!c) return null;
419
+ c.fillStyle = i(a), c.fillRect(0, 0, 8, 8), c.fillStyle = i(n);
420
+ for (let e = 0; e < 8; e++) {
421
+ let t = o[e];
422
+ for (let n = 0; n < 8; n++) t & 1 << 7 - n && c.fillRect(n, e, 1, 1);
423
+ }
424
+ return s;
425
+ }
426
+ function r(e, t) {
427
+ if (typeof OffscreenCanvas < "u") return new OffscreenCanvas(e, t);
428
+ if (typeof document < "u") {
429
+ let n = document.createElement("canvas");
430
+ return n.width = e, n.height = t, n;
431
+ }
432
+ return null;
433
+ }
434
+ function i(e) {
435
+ return `rgba(${parseInt(e.slice(0, 2), 16)},${parseInt(e.slice(2, 4), 16)},${parseInt(e.slice(4, 6), 16)},${e.length >= 8 ? parseInt(e.slice(6, 8), 16) / 255 : 1})`;
436
+ }
437
+ //#endregion
438
+ //#region packages/core/src/shape/paint.ts
439
+ function a(e, t = 1) {
440
+ return `rgba(${parseInt(e.slice(0, 2), 16)},${parseInt(e.slice(2, 4), 16)},${parseInt(e.slice(4, 6), 16)},${e.length >= 8 ? parseInt(e.slice(6, 8), 16) / 255 : t})`;
441
+ }
442
+ function o(e, t, n, r, i, o) {
443
+ if (!e || e.fillType === "none") return null;
444
+ if (e.fillType === "solid") return a(e.color);
445
+ if (e.fillType === "pattern") return c(e, t);
446
+ if (e.fillType === "gradient") {
447
+ let s = e.stops;
448
+ if (s.length === 0) return null;
449
+ if (s.length === 1) return a(s[0].color);
450
+ let c;
451
+ if (e.gradType === "radial") {
452
+ let e = n + i / 2, a = r + o / 2, s = Math.sqrt(i * i + o * o) / 2;
453
+ c = t.createRadialGradient(e, a, 0, e, a, s);
454
+ } else {
455
+ let a = e.angle * Math.PI / 180, s = n + i / 2, l = r + o / 2, u = (Math.abs(Math.cos(a)) * i + Math.abs(Math.sin(a)) * o) / 2;
456
+ c = t.createLinearGradient(s - Math.cos(a) * u, l - Math.sin(a) * u, s + Math.cos(a) * u, l + Math.sin(a) * u);
457
+ }
458
+ for (let e of s) c.addColorStop(Math.min(1, Math.max(0, e.position)), a(e.color));
459
+ return c;
460
+ }
461
+ return null;
462
+ }
463
+ var s = /* @__PURE__ */ new WeakMap();
464
+ function c(e, t) {
465
+ let r = `${e.preset}|${e.fg}|${e.bg}`, i = s.get(t);
466
+ i || (i = /* @__PURE__ */ new Map(), s.set(t, i));
467
+ let o = i.get(r);
468
+ if (o) return o;
469
+ let c = n(e.preset, e.fg, e.bg);
470
+ if (!c) return a(e.fg);
471
+ let l = t.createPattern(c, "repeat");
472
+ return l ? (i.set(r, l), l) : a(e.fg);
473
+ }
474
+ var l = {
475
+ dash: [6, 3],
476
+ dot: [1.5, 3],
477
+ dashDot: [
478
+ 6,
479
+ 3,
480
+ 1.5,
481
+ 3
482
+ ],
483
+ lgDash: [10, 4],
484
+ lgDashDot: [
485
+ 10,
486
+ 4,
487
+ 1.5,
488
+ 4
489
+ ],
490
+ lgDashDotDot: [
491
+ 10,
492
+ 4,
493
+ 1.5,
494
+ 4,
495
+ 1.5,
496
+ 4
497
+ ],
498
+ sysDash: [4, 2],
499
+ sysDot: [1, 2],
500
+ sysDashDot: [
501
+ 4,
502
+ 2,
503
+ 1,
504
+ 2
505
+ ]
506
+ };
507
+ function u(e, t, n) {
508
+ if (!t) {
509
+ e.strokeStyle = "transparent", e.lineWidth = 0, e.setLineDash([]);
510
+ return;
511
+ }
512
+ e.strokeStyle = a(t.color);
513
+ let r = Math.max(.5, t.width * n);
514
+ e.lineWidth = r;
515
+ let i = t.dashStyle ? l[t.dashStyle] : null;
516
+ e.setLineDash(i ? i.map((e) => e * r) : []);
517
+ }
518
+ //#endregion
519
+ //#region packages/core/src/shape/preset.ts
520
+ function d(e, t, n, r, i, a, o, s = -Math.PI / 2) {
521
+ let c = a * 2;
522
+ for (let l = 0; l < c; l++) {
523
+ let c = s + l * Math.PI / a, u = l % 2 == 0 ? 1 : o, d = t + r * u * Math.cos(c), f = n + i * u * Math.sin(c);
524
+ l === 0 ? e.moveTo(d, f) : e.lineTo(d, f);
525
+ }
526
+ e.closePath();
527
+ }
528
+ function f(e, t, n, r, i, a, o = -Math.PI / 2) {
529
+ for (let s = 0; s < a; s++) {
530
+ let c = o + s * 2 * Math.PI / a, l = t + r * Math.cos(c), u = n + i * Math.sin(c);
531
+ s === 0 ? e.moveTo(l, u) : e.lineTo(l, u);
532
+ }
533
+ e.closePath();
534
+ }
535
+ function p(e, t, n, r, i, a, o) {
536
+ let s = (e) => Math.atan2(r * Math.sin(e), i * Math.cos(e)), c = s(a), l = s(a + o), u = t - r * Math.cos(c), d = n - i * Math.sin(c);
537
+ return e.ellipse(u, d, Math.abs(r), Math.abs(i), 0, c, l, o < 0), {
538
+ x: u + r * Math.cos(l),
539
+ y: d + i * Math.sin(l)
540
+ };
541
+ }
542
+ function m(e, t, n, r, i, a, o = null, s = null, c = null, l = null) {
543
+ let u = n + i / 2, m = r + a / 2;
544
+ switch (t) {
545
+ case "ellipse":
546
+ case "oval":
547
+ e.ellipse(u, m, i / 2, a / 2, 0, 0, Math.PI * 2);
548
+ break;
549
+ case "rtriangle":
550
+ e.moveTo(n, r + a), e.lineTo(n + i, r + a), e.lineTo(n, r), e.closePath();
551
+ break;
552
+ case "triangle": {
553
+ let t = n + (o ?? 5e4) / 1e5 * i;
554
+ e.moveTo(t, r), e.lineTo(n + i, r + a), e.lineTo(n, r + a), e.closePath();
555
+ break;
556
+ }
557
+ case "diamond":
558
+ e.moveTo(u, r), e.lineTo(n + i, m), e.lineTo(u, r + a), e.lineTo(n, m), e.closePath();
559
+ break;
560
+ case "parallelogram": {
561
+ let t = i * Math.min(.5, (o ?? 25e3) / 1e5);
562
+ e.moveTo(n + t, r), e.lineTo(n + i, r), e.lineTo(n + i - t, r + a), e.lineTo(n, r + a), e.closePath();
563
+ break;
564
+ }
565
+ case "trapezoid": {
566
+ let t = Math.min(i, a), s = Math.min(i / 2, (o ?? 25e3) / 1e5 * t);
567
+ e.moveTo(n + s, r), e.lineTo(n + i - s, r), e.lineTo(n + i, r + a), e.lineTo(n, r + a), e.closePath();
568
+ break;
569
+ }
570
+ case "roundrect":
571
+ case "roundrectangle": {
572
+ let t = Math.min(i, a) * Math.min(5e4, Math.max(0, o ?? 16667)) / 1e5;
573
+ e.roundRect(n, r, i, a, t);
574
+ break;
575
+ }
576
+ case "pentagon":
577
+ f(e, u, m, i / 2, a / 2, 5);
578
+ break;
579
+ case "hexagon":
580
+ f(e, u, m, i / 2, a / 2, 6, 0);
581
+ break;
582
+ case "heptagon":
583
+ f(e, u, m, i / 2, a / 2, 7);
584
+ break;
585
+ case "octagon":
586
+ f(e, u, m, i / 2, a / 2, 8, -Math.PI / 8);
587
+ break;
588
+ case "decagon":
589
+ f(e, u, m, i / 2, a / 2, 10);
590
+ break;
591
+ case "dodecagon":
592
+ f(e, u, m, i / 2, a / 2, 12);
593
+ break;
594
+ case "star4":
595
+ d(e, u, m, i / 2, a / 2, 4, (o ?? 12500) / 5e4);
596
+ break;
597
+ case "star5":
598
+ case "star":
599
+ d(e, u, m, i / 2, a / 2, 5, (o ?? 19098) / 5e4);
600
+ break;
601
+ case "star6":
602
+ d(e, u, m, i / 2, a / 2, 6, (o ?? 28868) / 5e4, 0);
603
+ break;
604
+ case "star7":
605
+ d(e, u, m, i / 2, a / 2, 7, (o ?? 34142) / 5e4);
606
+ break;
607
+ case "star8":
608
+ d(e, u, m, i / 2, a / 2, 8, (o ?? 37500) / 5e4, -Math.PI / 2);
609
+ break;
610
+ case "star10":
611
+ d(e, u, m, i / 2, a / 2, 10, (o ?? 41421) / 5e4);
612
+ break;
613
+ case "star12":
614
+ d(e, u, m, i / 2, a / 2, 12, (o ?? 37500) / 5e4, 0);
615
+ break;
616
+ case "star16":
617
+ d(e, u, m, i / 2, a / 2, 16, (o ?? 37500) / 5e4, -Math.PI / 2);
618
+ break;
619
+ case "star24":
620
+ d(e, u, m, i / 2, a / 2, 24, (o ?? 37500) / 5e4, 0);
621
+ break;
622
+ case "star32":
623
+ d(e, u, m, i / 2, a / 2, 32, (o ?? 37500) / 5e4, -Math.PI / 2);
624
+ break;
625
+ case "rightarrow": {
626
+ let t = a * Math.min(1, (o ?? 5e4) / 1e5), c = i * Math.min(1, (s ?? 5e4) / 1e5), l = r + (a - t) / 2;
627
+ e.moveTo(n, l), e.lineTo(n + i - c, l), e.lineTo(n + i - c, r), e.lineTo(n + i, m), e.lineTo(n + i - c, r + a), e.lineTo(n + i - c, l + t), e.lineTo(n, l + t), e.closePath();
628
+ break;
629
+ }
630
+ case "leftarrow": {
631
+ let t = a * Math.min(1, (o ?? 5e4) / 1e5), c = i * Math.min(1, (s ?? 5e4) / 1e5), l = r + (a - t) / 2;
632
+ e.moveTo(n + i, l), e.lineTo(n + c, l), e.lineTo(n + c, r), e.lineTo(n, m), e.lineTo(n + c, r + a), e.lineTo(n + c, l + t), e.lineTo(n + i, l + t), e.closePath();
633
+ break;
634
+ }
635
+ case "uparrow": {
636
+ let t = i * Math.min(1, (o ?? 5e4) / 1e5), c = a * Math.min(1, (s ?? 5e4) / 1e5), l = n + (i - t) / 2;
637
+ e.moveTo(u, r), e.lineTo(n + i, r + c), e.lineTo(l + t, r + c), e.lineTo(l + t, r + a), e.lineTo(l, r + a), e.lineTo(l, r + c), e.lineTo(n, r + c), e.closePath();
638
+ break;
639
+ }
640
+ case "downarrow": {
641
+ let t = i * Math.min(1, (o ?? 5e4) / 1e5), c = a * Math.min(1, (s ?? 5e4) / 1e5), l = n + (i - t) / 2;
642
+ e.moveTo(u, r + a), e.lineTo(n + i, r + a - c), e.lineTo(l + t, r + a - c), e.lineTo(l + t, r), e.lineTo(l, r), e.lineTo(l, r + a - c), e.lineTo(n, r + a - c), e.closePath();
643
+ break;
644
+ }
645
+ case "leftrightarrow": {
646
+ let t = a * Math.min(1, (o ?? 5e4) / 1e5), c = i * Math.min(.5, (s ?? 25e3) / 1e5), l = r + (a - t) / 2;
647
+ e.moveTo(n, m), e.lineTo(n + c, r), e.lineTo(n + c, l), e.lineTo(n + i - c, l), e.lineTo(n + i - c, r), e.lineTo(n + i, m), e.lineTo(n + i - c, r + a), e.lineTo(n + i - c, l + t), e.lineTo(n + c, l + t), e.lineTo(n + c, r + a), e.closePath();
648
+ break;
649
+ }
650
+ case "updownarrow": {
651
+ let t = i * Math.min(1, (o ?? 5e4) / 1e5), c = a * Math.min(.5, (s ?? 25e3) / 1e5), l = n + (i - t) / 2;
652
+ e.moveTo(u, r), e.lineTo(n + i, r + c), e.lineTo(l + t, r + c), e.lineTo(l + t, r + a - c), e.lineTo(n + i, r + a - c), e.lineTo(u, r + a), e.lineTo(n, r + a - c), e.lineTo(l, r + a - c), e.lineTo(l, r + c), e.lineTo(n, r + c), e.closePath();
653
+ break;
654
+ }
655
+ case "notchedrightarrow": {
656
+ let t = a * Math.min(1, (o ?? 5e4) / 1e5), c = i * Math.min(1, (s ?? 35e3) / 1e5), l = r + (a - t) / 2, u = c * .43;
657
+ e.moveTo(n, l), e.lineTo(n + i - c, l), e.lineTo(n + i - c, r), e.lineTo(n + i, m), e.lineTo(n + i - c, r + a), e.lineTo(n + i - c, l + t), e.lineTo(n, l + t), e.lineTo(n + u, m), e.closePath();
658
+ break;
659
+ }
660
+ case "chevron": {
661
+ let t = i * Math.min(1, Math.max(0, (o ?? 5e4) / 1e5));
662
+ e.moveTo(n, r), e.lineTo(n + t, r), e.lineTo(n + i, m), e.lineTo(n + t, r + a), e.lineTo(n, r + a), t > 0 && e.lineTo(n + t, m), e.closePath();
663
+ break;
664
+ }
665
+ case "homeplate": {
666
+ let t = a * .4;
667
+ e.moveTo(n, r), e.lineTo(n + i, r), e.lineTo(n + i, r + a - t), e.lineTo(u, r + a), e.lineTo(n, r + a - t), e.closePath();
668
+ break;
669
+ }
670
+ case "leftbracket": {
671
+ let t = Math.min(a * Math.min(5e4, Math.max(0, o ?? 8333)) / 1e5, a / 2);
672
+ e.moveTo(n + i, r), e.quadraticCurveTo(n, r, n, r + t), a - 2 * t > .5 && e.lineTo(n, r + a - t), e.quadraticCurveTo(n, r + a, n + i, r + a);
673
+ break;
674
+ }
675
+ case "rightbracket": {
676
+ let t = Math.min(a * Math.min(5e4, Math.max(0, o ?? 8333)) / 1e5, a / 2);
677
+ e.moveTo(n, r), e.quadraticCurveTo(n + i, r, n + i, r + t), a - 2 * t > .5 && e.lineTo(n + i, r + a - t), e.quadraticCurveTo(n + i, r + a, n, r + a);
678
+ break;
679
+ }
680
+ case "leftbrace": {
681
+ let t = m, o = i * .45;
682
+ e.moveTo(n + i, r), e.bezierCurveTo(n + i - o, r, n + i - o, t - a * .08, n, t), e.bezierCurveTo(n + i - o, t + a * .08, n + i - o, r + a, n + i, r + a);
683
+ break;
684
+ }
685
+ case "rightbrace": {
686
+ let t = m, o = i * .45;
687
+ e.moveTo(n, r), e.bezierCurveTo(n + o, r, n + o, t - a * .08, n + i, t), e.bezierCurveTo(n + o, t + a * .08, n + o, r + a, n, r + a);
688
+ break;
689
+ }
690
+ case "callout1":
691
+ case "bordercallout1":
692
+ case "accentcallout1":
693
+ case "accentbordercallout1": {
694
+ let u = (s === null ? -8333 : s) / 1e5, d = (o === null ? 18750 : o) / 1e5, f = (l === null ? -38333 : l) / 1e5, p = (c === null ? 112500 : c) / 1e5;
695
+ if (e.rect(n, r, i, a), t.startsWith("accent")) {
696
+ let t = n + i * .08;
697
+ e.moveTo(t, r), e.lineTo(t, r + a);
698
+ }
699
+ e.moveTo(n + u * i, r + d * a), e.lineTo(n + f * i, r + p * a);
700
+ break;
701
+ }
702
+ case "wedgerectcallout": {
703
+ e.rect(n, r, i, a * .8);
704
+ let t = n + i * .2, o = r + a;
705
+ e.moveTo(n + i * .1, r + a * .8), e.lineTo(t, o), e.lineTo(n + i * .3, r + a * .8), e.closePath();
706
+ break;
707
+ }
708
+ case "wedgeellipsecallout": {
709
+ let t = (o ?? -2e4) / 1e5 * i, n = (s ?? 12e4) / 1e5 * a, r = u + t, c = m + n;
710
+ e.ellipse(u, m, i / 2, a / 2, 0, 0, Math.PI * 2);
711
+ let l = Math.atan2(n, t), d = Math.PI / 10, f = i / 2, p = a / 2, h = u + f * Math.cos(l - d), g = m + p * Math.sin(l - d), _ = u + f * Math.cos(l + d), v = m + p * Math.sin(l + d);
712
+ e.moveTo(h, g), e.lineTo(r, c), e.lineTo(_, v), e.closePath();
713
+ break;
714
+ }
715
+ case "cloudcallout": {
716
+ let t = Math.min(i, a) * .22, n = [
717
+ [u - i * .25, r + a * .35],
718
+ [u - i * .1, r + a * .15],
719
+ [u + i * .1, r + a * .1],
720
+ [u + i * .28, r + a * .2],
721
+ [u + i * .35, r + a * .4]
722
+ ];
723
+ e.moveTo(n[0][0] - t, n[0][1]);
724
+ for (let [r, i] of n) e.arc(r, i, t, Math.PI, 0);
725
+ e.arc(u, r + a * .65, i * .45, 0, Math.PI), e.closePath();
726
+ let c = u + (o ?? -2e4) / 1e5 * i, l = m + (s ?? 12e4) / 1e5 * a;
727
+ e.moveTo(u + i * .05, r + a * .8), e.arc(c, l, Math.min(i, a) * .07, 0, Math.PI * 2);
728
+ break;
729
+ }
730
+ case "line":
731
+ case "straightconnector1":
732
+ case "bentconnector2":
733
+ case "bentconnector3":
734
+ case "bentconnector4":
735
+ case "bentconnector5":
736
+ case "curvedconnector2":
737
+ case "curvedconnector3":
738
+ case "curvedconnector4":
739
+ case "curvedconnector5":
740
+ e.moveTo(n, r), e.lineTo(n + i, r + a);
741
+ break;
742
+ case "heart":
743
+ e.moveTo(u, r + a * .32), e.bezierCurveTo(u, r, n + i * .05, r, n, r + a * .3), e.bezierCurveTo(n, r + a * .68, u - i * .05, r + a * .78, u, r + a), e.bezierCurveTo(u + i * .05, r + a * .78, n + i, r + a * .68, n + i, r + a * .3), e.bezierCurveTo(n + i - i * .05, r, u, r, u, r + a * .32);
744
+ break;
745
+ case "donut": {
746
+ let t = i / 2, n = a / 2, r = Math.min(t, n) * (o ?? 25e3) / 1e5, s = t - r, c = n - r;
747
+ e.ellipse(u, m, t, n, 0, 0, Math.PI * 2, !1), e.moveTo(u + s, m), e.ellipse(u, m, s, c, 0, 0, Math.PI * 2, !0);
748
+ break;
749
+ }
750
+ case "nosmoking":
751
+ case "nosmokingsign": {
752
+ let t = (o ?? 18750) / 1e5, n = i / 2, r = a / 2, s = n * (1 - 2 * t), c = r * (1 - 2 * t);
753
+ e.ellipse(u, m, n, r, 0, 0, Math.PI * 2, !1), e.moveTo(u + s, m), e.ellipse(u, m, s, c, 0, 0, Math.PI * 2, !0), e.moveTo(u + s, m), e.ellipse(u, m, s, c, 0, 0, Math.PI / 2, !1), e.lineTo(u - s, m), e.ellipse(u, m, s, c, 0, Math.PI, 3 * Math.PI / 2, !1), e.closePath();
754
+ break;
755
+ }
756
+ case "pie":
757
+ case "pieWedge": {
758
+ let t = (o ?? 0) / 216e5 * Math.PI * 2, n = (s ?? 162e5) / 216e5 * Math.PI * 2;
759
+ e.moveTo(u, m), e.arc(u, m, Math.min(i, a) / 2, t, n), e.closePath();
760
+ break;
761
+ }
762
+ case "cloud": {
763
+ let t = a * .28;
764
+ e.arc(n + i * .25, r + a * .55, t, Math.PI, Math.PI * 1.8), e.arc(n + i * .45, r + a * .35, t * 1.1, Math.PI * 1.3, Math.PI * 1.9), e.arc(n + i * .65, r + a * .4, t, Math.PI * 1.5, Math.PI * 2), e.arc(n + i * .8, r + a * .6, t * .9, Math.PI * 1.6, Math.PI * .1), e.arc(n + i * .55, r + a * .75, t, 0, Math.PI * .7), e.arc(n + i * .25, r + a * .7, t * .9, 0, Math.PI), e.closePath();
765
+ break;
766
+ }
767
+ case "funnel":
768
+ e.moveTo(n, r), e.lineTo(n + i, r), e.lineTo(u + i * .15, r + a), e.lineTo(u - i * .15, r + a), e.closePath();
769
+ break;
770
+ case "smileyface": {
771
+ e.ellipse(u, m, i / 2, a / 2, 0, 0, Math.PI * 2), e.closePath();
772
+ let t = i * .05, n = a * .05, r = m - a * .12;
773
+ e.moveTo(u - i * .2 + t, r), e.ellipse(u - i * .2, r, t, n, 0, 0, Math.PI * 2), e.moveTo(u + i * .2 + t, r), e.ellipse(u + i * .2, r, t, n, 0, 0, Math.PI * 2), e.moveTo(u - i * .25, m + a * .05), e.quadraticCurveTo(u, m + a * .3, u + i * .25, m + a * .05);
774
+ break;
775
+ }
776
+ case "document":
777
+ case "foldedcorner": {
778
+ let t = Math.min(i, a) * .15;
779
+ e.moveTo(n, r), e.lineTo(n + i - t, r), e.lineTo(n + i, r + t), e.lineTo(n + i, r + a), e.lineTo(n, r + a), e.closePath(), e.moveTo(n + i - t, r), e.lineTo(n + i - t, r + t), e.lineTo(n + i, r + t);
780
+ break;
781
+ }
782
+ case "snip1rect": {
783
+ let t = Math.min(i, a) * Math.min(5e4, Math.max(0, o ?? 16667)) / 1e5;
784
+ e.moveTo(n, r), e.lineTo(n + i - t, r), e.lineTo(n + i, r + t), e.lineTo(n + i, r + a), e.lineTo(n, r + a), e.closePath();
785
+ break;
786
+ }
787
+ case "snip2samerect": {
788
+ let t = Math.min(i, a) * Math.min(5e4, Math.max(0, o ?? 16667)) / 1e5;
789
+ e.moveTo(n, r), e.lineTo(n + i - t, r), e.lineTo(n + i, r + t), e.lineTo(n + i, r + a), e.lineTo(n + t, r + a), e.lineTo(n, r + a - t), e.closePath();
790
+ break;
791
+ }
792
+ case "snip2diagrect": {
793
+ let t = Math.min(i, a) * Math.min(5e4, Math.max(0, o ?? 16667)) / 1e5;
794
+ e.moveTo(n + t, r), e.lineTo(n + i - t, r), e.lineTo(n + i, r + t), e.lineTo(n + i, r + a - t), e.lineTo(n + i - t, r + a), e.lineTo(n + t, r + a), e.lineTo(n, r + a - t), e.lineTo(n, r + t), e.closePath();
795
+ break;
796
+ }
797
+ case "snipRoundRect":
798
+ case "sniproundrect": {
799
+ let t = Math.min(i, a) * Math.min(5e4, Math.max(0, o ?? 16667)) / 1e5;
800
+ e.moveTo(n + t, r), e.lineTo(n + i - t, r), e.lineTo(n + i, r + t), e.lineTo(n + i, r + a), e.lineTo(n, r + a), e.quadraticCurveTo(n, r, n + t, r), e.closePath();
801
+ break;
802
+ }
803
+ case "round1rect": {
804
+ let t = Math.min(i, a) * Math.min(5e4, Math.max(0, o ?? 16667)) / 1e5;
805
+ e.moveTo(n + t, r), e.lineTo(n + i, r), e.lineTo(n + i, r + a), e.lineTo(n, r + a), e.lineTo(n, r + t), e.quadraticCurveTo(n, r, n + t, r), e.closePath();
806
+ break;
807
+ }
808
+ case "round2samerect": {
809
+ let t = Math.min(i, a) * Math.min(5e4, Math.max(0, o ?? 16667)) / 1e5;
810
+ e.moveTo(n + t, r), e.lineTo(n + i - t, r), e.quadraticCurveTo(n + i, r, n + i, r + t), e.lineTo(n + i, r + a), e.lineTo(n, r + a), e.lineTo(n, r + t), e.quadraticCurveTo(n, r, n + t, r), e.closePath();
811
+ break;
812
+ }
813
+ case "round2diagrect": {
814
+ let t = Math.min(i, a) * Math.min(5e4, Math.max(0, o ?? 16667)) / 1e5;
815
+ e.moveTo(n + t, r), e.lineTo(n + i, r), e.lineTo(n + i, r + a - t), e.quadraticCurveTo(n + i, r + a, n + i - t, r + a), e.lineTo(n, r + a), e.lineTo(n, r + t), e.quadraticCurveTo(n, r, n + t, r), e.closePath();
816
+ break;
817
+ }
818
+ case "plaque": {
819
+ let t = Math.min(i, a) * .25;
820
+ e.moveTo(n + t, r), e.lineTo(n + i - t, r), e.quadraticCurveTo(n + i, r, n + i, r + t), e.lineTo(n + i, r + a - t), e.quadraticCurveTo(n + i, r + a, n + i - t, r + a), e.lineTo(n + t, r + a), e.quadraticCurveTo(n, r + a, n, r + a - t), e.lineTo(n, r + t), e.quadraticCurveTo(n, r, n + t, r), e.closePath();
821
+ break;
822
+ }
823
+ case "can": {
824
+ let t = a * .1;
825
+ e.ellipse(u, r + t, i / 2, t, 0, 0, Math.PI * 2), e.moveTo(n, r + t), e.lineTo(n, r + a - t), e.ellipse(u, r + a - t, i / 2, t, 0, Math.PI, 2 * Math.PI), e.lineTo(n + i, r + t);
826
+ break;
827
+ }
828
+ case "cube": {
829
+ let t = Math.min(i, a) * .2;
830
+ e.moveTo(n + t, r), e.lineTo(n + i, r), e.lineTo(n + i, r + a - t), e.lineTo(n + i - t, r + a), e.lineTo(n, r + a), e.lineTo(n, r + t), e.closePath(), e.moveTo(n + t, r), e.lineTo(n + t, r + t), e.lineTo(n + i - t, r + t), e.moveTo(n + t, r + t), e.lineTo(n, r + t);
831
+ break;
832
+ }
833
+ case "bevel": {
834
+ let t = Math.min(i, a) * .1;
835
+ e.rect(n, r, i, a), e.moveTo(n, r), e.lineTo(n + t, r + t), e.lineTo(n + i - t, r + t), e.lineTo(n + i, r), e.moveTo(n + i - t, r + t), e.lineTo(n + i - t, r + a - t), e.lineTo(n + i, r + a), e.moveTo(n + i - t, r + a - t), e.lineTo(n + t, r + a - t), e.lineTo(n, r + a), e.moveTo(n + t, r + a - t), e.lineTo(n + t, r + t);
836
+ break;
837
+ }
838
+ case "halfframe": {
839
+ let t = Math.min(i, a) * .25;
840
+ e.moveTo(n, r), e.lineTo(n + i, r), e.lineTo(n + i, r + t), e.lineTo(n + t, r + t), e.lineTo(n + t, r + a), e.lineTo(n, r + a), e.closePath();
841
+ break;
842
+ }
843
+ case "corner": {
844
+ let t = Math.min(i, a) * .25;
845
+ e.moveTo(n, r), e.lineTo(n + i, r), e.lineTo(n + i, r + t), e.lineTo(n + t, r + t), e.lineTo(n + t, r + a), e.lineTo(n, r + a), e.closePath();
846
+ break;
847
+ }
848
+ case "irregularSeal1":
849
+ case "irregularseal1":
850
+ [
851
+ [10800, 5800],
852
+ [14522, 0],
853
+ [14155, 5325],
854
+ [18380, 4457],
855
+ [16702, 7315],
856
+ [21097, 8137],
857
+ [17607, 10475],
858
+ [21600, 13290],
859
+ [16837, 12942],
860
+ [18145, 18095],
861
+ [14020, 14457],
862
+ [13247, 19737],
863
+ [10532, 14935],
864
+ [8485, 21600],
865
+ [7715, 15627],
866
+ [4762, 17617],
867
+ [5667, 13937],
868
+ [135, 14587],
869
+ [3722, 11775],
870
+ [0, 8615],
871
+ [4627, 7617],
872
+ [370, 2295],
873
+ [7312, 6320],
874
+ [8352, 2295]
875
+ ].forEach(([t, o], s) => {
876
+ let c = n + i * t / 21600, l = r + a * o / 21600;
877
+ s === 0 ? e.moveTo(c, l) : e.lineTo(c, l);
878
+ }), e.closePath();
879
+ break;
880
+ case "irregularSeal2":
881
+ case "irregularseal2":
882
+ [
883
+ [11462, 4342],
884
+ [14790, 0],
885
+ [14525, 5777],
886
+ [18007, 3172],
887
+ [16380, 6532],
888
+ [21600, 6645],
889
+ [16985, 9402],
890
+ [18270, 11290],
891
+ [16380, 12310],
892
+ [18877, 15632],
893
+ [14640, 14350],
894
+ [14942, 17370],
895
+ [12180, 15935],
896
+ [11612, 18842],
897
+ [9872, 17370],
898
+ [8700, 19712],
899
+ [7527, 18125],
900
+ [4917, 21600],
901
+ [4805, 18240],
902
+ [1285, 17825],
903
+ [3330, 15370],
904
+ [0, 12877],
905
+ [3935, 11592],
906
+ [1172, 8270],
907
+ [5372, 7817],
908
+ [4502, 3625],
909
+ [8550, 6382],
910
+ [9722, 1887]
911
+ ].forEach(([t, o], s) => {
912
+ let c = n + i * t / 21600, l = r + a * o / 21600;
913
+ s === 0 ? e.moveTo(c, l) : e.lineTo(c, l);
914
+ }), e.closePath();
915
+ break;
916
+ case "flowchartalternateprocess":
917
+ case "flowchartprocess": {
918
+ let t = Math.min(i, a) * Math.min(5e4, Math.max(0, o ?? 16667)) / 1e5;
919
+ e.roundRect(n, r, i, a, [{
920
+ x: t,
921
+ y: t
922
+ }]);
923
+ break;
924
+ }
925
+ case "flowchartdecision":
926
+ e.moveTo(u, r), e.lineTo(n + i, m), e.lineTo(u, r + a), e.lineTo(n, m), e.closePath();
927
+ break;
928
+ case "flowchartterminator": {
929
+ let t = Math.min(i, a) / 2;
930
+ e.roundRect(n, r, i, a, [{
931
+ x: t,
932
+ y: t
933
+ }]);
934
+ break;
935
+ }
936
+ case "flowchartdocument": {
937
+ let t = a * .1;
938
+ e.moveTo(n, r), e.lineTo(n + i, r), e.lineTo(n + i, r + a - t), e.bezierCurveTo(n + i * .75, r + a, n + i * .25, r + a - t * 2, n, r + a - t), e.closePath();
939
+ break;
940
+ }
941
+ case "flowchartpredefinedprocess": {
942
+ let t = i * .1;
943
+ e.rect(n, r, i, a), e.moveTo(n + t, r), e.lineTo(n + t, r + a), e.moveTo(n + i - t, r), e.lineTo(n + i - t, r + a);
944
+ break;
945
+ }
946
+ case "flowchartsort":
947
+ e.moveTo(u, r), e.lineTo(n + i, m), e.lineTo(u, r + a), e.lineTo(n, m), e.closePath(), e.moveTo(n, m), e.lineTo(n + i, m);
948
+ break;
949
+ case "flowchartmanualinput": {
950
+ let t = a * .2;
951
+ e.moveTo(n, r + t), e.lineTo(n + i, r), e.lineTo(n + i, r + a), e.lineTo(n, r + a), e.closePath();
952
+ break;
953
+ }
954
+ case "moon":
955
+ e.arc(u, m, Math.min(i, a) / 2, -Math.PI / 2, Math.PI / 2), e.arc(u - i * .2, m, Math.min(i, a) / 2, Math.PI / 2, -Math.PI / 2, !0), e.closePath();
956
+ break;
957
+ case "arc": {
958
+ let t = 216e5, n = (o ?? 162e5) / t * Math.PI * 2, r = (s ?? 54e5) / t * Math.PI * 2;
959
+ e.ellipse(u, m, i / 2, a / 2, 0, n, n + r, r < 0);
960
+ break;
961
+ }
962
+ case "mathequal": {
963
+ let t = Math.min(36745, Math.max(0, o ?? 23520)), n = 1e5 - 2 * t, r = Math.min(n, Math.max(0, s ?? 11760)), c = a * t / 1e5, l = a * r / 2e5, d = i * 73490 / 2e5, f = u - d, p = u + d, h = m - l, g = m + l, _ = h - c, v = g + c;
964
+ e.rect(f, _, p - f, h - _), e.rect(f, g, p - f, v - g);
965
+ break;
966
+ }
967
+ case "mathmultiply": {
968
+ let t = Math.min(i, a) * Math.min(51965, Math.max(0, o ?? 23520)) / 1e5, s = Math.atan2(a, i), c = Math.sin(s), l = Math.cos(s), u = t / 2 * c, d = t / 2 * l;
969
+ e.moveTo(n + u, r - d), e.lineTo(n - u, r + d), e.lineTo(n + i - u, r + a + d), e.lineTo(n + i + u, r + a - d), e.closePath(), e.moveTo(n + i - u, r - d), e.lineTo(n + i + u, r + d), e.lineTo(n + u, r + a + d), e.lineTo(n - u, r + a - d), e.closePath();
970
+ break;
971
+ }
972
+ case "mathplus": {
973
+ let t = Math.min(73490, Math.max(0, o ?? 23520)), n = i * 73490 / 2e5, r = a * 73490 / 2e5, s = Math.min(i, a) * t / 2e5, c = u - n, l = u + n, d = m - r, f = m + r, p = u - s, h = u + s, g = m - s, _ = m + s;
974
+ e.moveTo(c, g), e.lineTo(p, g), e.lineTo(p, d), e.lineTo(h, d), e.lineTo(h, g), e.lineTo(l, g), e.lineTo(l, _), e.lineTo(h, _), e.lineTo(h, f), e.lineTo(p, f), e.lineTo(p, _), e.lineTo(c, _), e.closePath();
975
+ break;
976
+ }
977
+ case "mathminus": {
978
+ let t = Math.min(1e5, Math.max(0, o ?? 23520)), n = i * 73490 / 2e5, r = a * t / 2e5, s = u - n, c = u + n, l = m - r, d = m + r;
979
+ e.rect(s, l, c - s, d - l);
980
+ break;
981
+ }
982
+ case "mathdivide": {
983
+ let t = Math.min(36745, Math.max(1e3, o ?? 23520)), n = (73490 + -t) / 4, l = 36745 * i / a, d = Math.min(Math.min(n, l), Math.max(1e3, c ?? 11760)), f = 73490 + 4 * d - t, p = Math.min(f, Math.max(0, s ?? 5880)), h = a * t / 2e5, g = a * p / 1e5, _ = a * d / 1e5, v = i * 73490 / 2e5, y = m - h, b = m + h, x = y - (g + _) - _, S = r + a - x, C = u - v, w = u + v;
984
+ e.rect(C, y, w - C, b - y), e.moveTo(u + _, x + _), e.arc(u, x + _, _, 0, Math.PI * 2), e.moveTo(u + _, S - _), e.arc(u, S - _, _, 0, Math.PI * 2);
985
+ break;
986
+ }
987
+ case "quadarrow": {
988
+ let t = i * (o ?? 23e3) / 1e5, c = i * (s ?? 3e4) / 1e5, l = n + (i - t) / 2, d = r + (a - t) / 2;
989
+ e.moveTo(u, r), e.lineTo(n + i - c, r + c), e.lineTo(n + i - c, d), e.lineTo(l + t, d), e.lineTo(l + t, r + c), e.lineTo(n + c, r + c), e.lineTo(n + i, m), e.lineTo(n + i - c, r + a - c), e.lineTo(l + t, r + a - c), e.lineTo(l + t, d + t), e.lineTo(n + i - c, d + t), e.lineTo(n + i - c, r + a - c), e.lineTo(u, r + a), e.lineTo(n + c, r + a - c), e.lineTo(n + c, d + t), e.lineTo(l, d + t), e.lineTo(l, r + a - c), e.lineTo(n, m), e.lineTo(n + c, r + c), e.lineTo(l, r + c), e.lineTo(l, d), e.lineTo(n + c, d), e.closePath();
990
+ break;
991
+ }
992
+ case "quadarrowcallout": {
993
+ let t = Math.min(i, a), d = Math.min(5e4, Math.max(0, s ?? 18515)), f = d * 2, p = Math.min(f, Math.max(0, o ?? 18515)), h = 5e4 - d, g = Math.min(h, Math.max(0, c ?? 18515)), _ = 1e5 - 2 * g, v = Math.min(_, Math.max(p, l ?? 48123)), y = t * d / 1e5, b = t * p / 2e5, x = t * g / 1e5, S = i * v / 2e5, C = a * v / 2e5, w = u - S, T = u + S, E = u - y, D = u + y, O = u - b, k = u + b, A = n + i - x, j = m - C, M = m + C, N = m - y, P = m + y, F = m - b, I = m + b, L = r + a - x;
994
+ e.moveTo(n, m), e.lineTo(n + x, N), e.lineTo(n + x, F), e.lineTo(w, F), e.lineTo(w, j), e.lineTo(O, j), e.lineTo(O, r + x), e.lineTo(E, r + x), e.lineTo(u, r), e.lineTo(D, r + x), e.lineTo(k, r + x), e.lineTo(k, j), e.lineTo(T, j), e.lineTo(T, F), e.lineTo(A, F), e.lineTo(A, N), e.lineTo(n + i, m), e.lineTo(A, P), e.lineTo(A, I), e.lineTo(T, I), e.lineTo(T, M), e.lineTo(k, M), e.lineTo(k, L), e.lineTo(D, L), e.lineTo(u, r + a), e.lineTo(E, L), e.lineTo(O, L), e.lineTo(O, M), e.lineTo(w, M), e.lineTo(w, I), e.lineTo(n + x, I), e.lineTo(n + x, P), e.closePath();
995
+ break;
996
+ }
997
+ case "wave": {
998
+ let t = a * (o ?? 12500) / 1e5, s = r + t, c = r + a - t;
999
+ e.moveTo(n, s), e.bezierCurveTo(n + i * .25, r, n + i * .25, r + t * 2, n + i * .5, s), e.bezierCurveTo(n + i * .75, r + t * 2, n + i * .75, r, n + i, s), e.lineTo(n + i, c), e.bezierCurveTo(n + i * .75, r + a, n + i * .75, r + a - t * 2, n + i * .5, c), e.bezierCurveTo(n + i * .25, r + a - t * 2, n + i * .25, r + a, n, c), e.closePath();
1000
+ break;
1001
+ }
1002
+ case "doublewave": {
1003
+ let t = a * (o ?? 6250) / 1e5, s = r + t, c = r + a - t;
1004
+ e.moveTo(n, s), e.bezierCurveTo(n + i * .25, r, n + i * .25, r + t * 2, n + i * .5, s), e.bezierCurveTo(n + i * .75, r + t * 2, n + i * .75, r, n + i, s), e.lineTo(n + i, c), e.bezierCurveTo(n + i * .75, r + a, n + i * .75, r + a - t * 2, n + i * .5, c), e.bezierCurveTo(n + i * .25, r + a - t * 2, n + i * .25, r + a, n, c), e.closePath();
1005
+ break;
1006
+ }
1007
+ case "sun": {
1008
+ let t = Math.min(i, a) / 2, n = t * ((o ?? 25e3) / 1e5 + .5), r = Math.min(n, t * .9), s = Math.PI / 16;
1009
+ for (let n = 0; n < 8; n++) {
1010
+ let i = n / 8 * Math.PI * 2;
1011
+ e.moveTo(u + r * Math.cos(i - s), m + r * Math.sin(i - s)), e.lineTo(u + t * Math.cos(i), m + t * Math.sin(i)), e.lineTo(u + r * Math.cos(i + s), m + r * Math.sin(i + s)), e.closePath();
1012
+ }
1013
+ e.moveTo(u + r, m), e.arc(u, m, r, 0, Math.PI * 2);
1014
+ break;
1015
+ }
1016
+ case "lightningbolt":
1017
+ e.moveTo(u + i * .1, r), e.lineTo(n, m - a * .05), e.lineTo(u + i * .05, m - a * .05), e.lineTo(u - i * .1, r + a), e.lineTo(n + i, m + a * .05), e.lineTo(u - i * .05, m + a * .05), e.closePath();
1018
+ break;
1019
+ case "frame": {
1020
+ let t = Math.min(i, a) * (o ?? 12500) / 1e5;
1021
+ e.rect(n, r, i, a), e.rect(n + t, r + t, i - 2 * t, a - 2 * t);
1022
+ break;
1023
+ }
1024
+ case "bracketpair": {
1025
+ let t = a * Math.min(5e4, Math.max(0, o ?? 8333)) / 1e5;
1026
+ e.moveTo(n + i * .4, r), e.quadraticCurveTo(n, r, n, r + t), a - 2 * t > 0 && e.lineTo(n, r + a - t), e.quadraticCurveTo(n, r + a, n + i * .4, r + a), e.moveTo(n + i * .6, r), e.quadraticCurveTo(n + i, r, n + i, r + t), a - 2 * t > 0 && e.lineTo(n + i, r + a - t), e.quadraticCurveTo(n + i, r + a, n + i * .6, r + a);
1027
+ break;
1028
+ }
1029
+ case "bracepair": {
1030
+ let t = i * .2;
1031
+ e.moveTo(n + i * .4, r), e.bezierCurveTo(n + i * .4 - t, r, n + i * .4 - t, m - a * .08, n, m), e.bezierCurveTo(n + i * .4 - t, m + a * .08, n + i * .4 - t, r + a, n + i * .4, r + a), e.moveTo(n + i * .6, r), e.bezierCurveTo(n + i * .6 + t, r, n + i * .6 + t, m - a * .08, n + i, m), e.bezierCurveTo(n + i * .6 + t, m + a * .08, n + i * .6 + t, r + a, n + i * .6, r + a);
1032
+ break;
1033
+ }
1034
+ case "chord": {
1035
+ let t = (o ?? 27e5) / 216e5 * Math.PI * 2, n = (s ?? 162e5) / 216e5 * Math.PI * 2;
1036
+ e.ellipse(u, m, i / 2, a / 2, 0, t, n), e.closePath();
1037
+ break;
1038
+ }
1039
+ case "blockarc": {
1040
+ let t = Math.min(i, a) / 2, n = o ?? 108e5, r = s ?? 0, l = t * (1 - (c ?? 25e3) / 1e5), d = n / 216e5 * Math.PI * 2, f = r / 216e5 * Math.PI * 2;
1041
+ e.arc(u, m, t, d, f, !1), e.arc(u, m, l, f, d, !0), e.closePath();
1042
+ break;
1043
+ }
1044
+ case "teardrop": {
1045
+ let t = Math.min(i, a) * .4, o = n + t, s = r + a - t;
1046
+ e.arc(o, s, t, 0, Math.PI * 2 * .75), e.bezierCurveTo(o - t * .1, s - t, n + i - t, r + t, n + i, r), e.bezierCurveTo(n + i - t * .2, r + t * .5, o + t, s - t * 1.1, o + t, s), e.closePath();
1047
+ break;
1048
+ }
1049
+ case "diagstripe": {
1050
+ let t = a * (o ?? 5e4) / 1e5 * i / a;
1051
+ e.moveTo(n + t, r), e.lineTo(n + i, r), e.lineTo(n + i - t, r + a), e.lineTo(n, r + a), e.closePath();
1052
+ break;
1053
+ }
1054
+ case "wedgeroundrectcallout": {
1055
+ let t = Math.min(i, a) * .1;
1056
+ e.roundRect(n, r, i, a * .85, t), e.moveTo(n + i * .1, r + a * .85), e.lineTo(n + i * .2, r + a), e.lineTo(n + i * .3, r + a * .85), e.closePath();
1057
+ break;
1058
+ }
1059
+ case "rightarrowcallout": {
1060
+ let t = a * (o ?? 5e4) / 1e5, c = i * (s ?? 5e4) / 1e5, l = r + (a - t) / 2;
1061
+ e.rect(n, l, c, t), e.moveTo(n + c, r), e.lineTo(n + i, m), e.lineTo(n + c, r + a), e.closePath();
1062
+ break;
1063
+ }
1064
+ case "leftarrowcallout": {
1065
+ let t = a * (o ?? 5e4) / 1e5, c = i * (s ?? 5e4) / 1e5, l = r + (a - t) / 2;
1066
+ e.rect(n + i - c, l, c, t), e.moveTo(n + i - c, r), e.lineTo(n, m), e.lineTo(n + i - c, r + a), e.closePath();
1067
+ break;
1068
+ }
1069
+ case "uparrowcallout": {
1070
+ let t = i * (o ?? 5e4) / 1e5, c = a * (s ?? 5e4) / 1e5, l = n + (i - t) / 2;
1071
+ e.rect(l, r + c, t, a - c), e.moveTo(n, r + c), e.lineTo(u, r), e.lineTo(n + i, r + c), e.closePath();
1072
+ break;
1073
+ }
1074
+ case "downarrowcallout": {
1075
+ let t = i * (o ?? 5e4) / 1e5, c = a * (s ?? 5e4) / 1e5, l = n + (i - t) / 2;
1076
+ e.rect(l, r, t, a - c), e.moveTo(n, r + a - c), e.lineTo(u, r + a), e.lineTo(n + i, r + a - c), e.closePath();
1077
+ break;
1078
+ }
1079
+ case "leftrightarrowcallout": {
1080
+ let t = a * (o ?? 5e4) / 1e5, c = i * (s ?? 25e3) / 1e5, l = r + (a - t) / 2;
1081
+ e.rect(n + c, l, i - 2 * c, t), e.moveTo(n + c, r), e.lineTo(n, m), e.lineTo(n + c, r + a), e.closePath(), e.moveTo(n + i - c, r), e.lineTo(n + i, m), e.lineTo(n + i - c, r + a), e.closePath();
1082
+ break;
1083
+ }
1084
+ case "leftrightuparrow": {
1085
+ let t = i * (o ?? 25e3) / 1e5, c = a * (s ?? 3e4) / 1e5, l = n + (i - t) / 2;
1086
+ e.moveTo(u, r), e.lineTo(n + i, r + c), e.lineTo(l + t, r + c), e.lineTo(l + t, r + a), e.lineTo(l, r + a), e.lineTo(l, r + c), e.lineTo(n, r + c), e.closePath();
1087
+ break;
1088
+ }
1089
+ case "leftuparrow": {
1090
+ let t = Math.min(i, a), l = Math.min(5e4, Math.max(0, s ?? 25e3)), u = l * 2, d = Math.min(u, Math.max(0, o ?? 25e3)), f = 1e5 - u, p = t * Math.min(f, Math.max(0, c ?? 25e3)) / 1e5, m = t * l / 5e4, h = i - m, g = a - m, _ = t * l / 1e5, v = i - _, y = a - _, b = t * d / 2e5, x = v - b, S = v + b, C = y - b, w = y + b;
1091
+ e.moveTo(n, r + y), e.lineTo(n + p, r + g), e.lineTo(n + p, r + C), e.lineTo(n + x, r + C), e.lineTo(n + x, r + p), e.lineTo(n + h, r + p), e.lineTo(n + v, r), e.lineTo(n + i, r + p), e.lineTo(n + S, r + p), e.lineTo(n + S, r + w), e.lineTo(n + p, r + w), e.lineTo(n + p, r + a), e.closePath();
1092
+ break;
1093
+ }
1094
+ case "uturnarrow": {
1095
+ let t = i * (o ?? 25e3) / 1e5, s = (i - t) / 2, c = Math.max(0, s - t), l = n + t + s, u = r + t + s, d = t * 2, f = r + a - t * 2.5;
1096
+ e.moveTo(n, r + a), e.lineTo(n, u), e.arc(l, u, s, Math.PI, 0), e.lineTo(n + i, f), e.lineTo(n + i + (d - t) / 2, f), e.lineTo(l + t / 2, r + a), e.lineTo(n + i - (d - t) / 2 - t, f), e.lineTo(n + i - t, f), e.lineTo(n + i - t, u), e.arc(l, u, c, 0, Math.PI, !0), e.lineTo(n + t, r + a), e.closePath();
1097
+ break;
1098
+ }
1099
+ case "bentarrow":
1100
+ case "bentuparrow": {
1101
+ let t = Math.min(i, a) * .25;
1102
+ e.moveTo(n, m - t / 2), e.lineTo(n + i - t * 2, m - t / 2), e.lineTo(n + i - t * 2, r + t), e.lineTo(n + i, m), e.lineTo(n + i - t * 2, r + a - t), e.lineTo(n + i - t * 2, m + t / 2), e.lineTo(n, m + t / 2), e.closePath();
1103
+ break;
1104
+ }
1105
+ case "plus": {
1106
+ let t = Math.min(i, a) * (o ?? 25e3) / 1e5;
1107
+ e.rect(u - t, r, 2 * t, a), e.rect(n, m - t, i, 2 * t);
1108
+ break;
1109
+ }
1110
+ case "mathnotequal": {
1111
+ let t = Math.min(5e4, Math.max(0, o ?? 23520)), n = Math.min(66e5, Math.max(42e5, s ?? 66e5)), l = Math.min(1e5 - 2 * t, Math.max(0, c ?? 11760)), d = a * t / 1e5, f = a * l / 2e5, p = i * 73490 / 2e5, h = a / 2, g = (n / 6e4 - 90) * Math.PI / 180, _ = h * Math.tan(g), v = Math.hypot(_, h) * d / h;
1112
+ e.rect(u - p, m - f - d, 2 * p, d), e.rect(u - p, m + f, 2 * p, d), e.moveTo(u + _ - v / 2, r), e.lineTo(u + _ + v / 2, r), e.lineTo(u - _ + v / 2, r + a), e.lineTo(u - _ - v / 2, r + a), e.closePath();
1113
+ break;
1114
+ }
1115
+ case "flowchartconnector":
1116
+ e.ellipse(u, m, i / 2, a / 2, 0, 0, Math.PI * 2);
1117
+ break;
1118
+ case "flowchartdelay": {
1119
+ let t = a / 2;
1120
+ e.moveTo(n, r), e.lineTo(n + i - t, r), e.arc(n + i - t, m, t, -Math.PI / 2, Math.PI / 2), e.lineTo(n, r + a), e.closePath();
1121
+ break;
1122
+ }
1123
+ case "flowchartdisplay": {
1124
+ let t = i * .2, o = i * .15;
1125
+ e.moveTo(n + t, r), e.lineTo(n + i - o, r), e.arc(n + i - o, m, a / 2, -Math.PI / 2, Math.PI / 2), e.lineTo(n + t, r + a), e.lineTo(n, m), e.closePath();
1126
+ break;
1127
+ }
1128
+ case "flowchartinputoutput":
1129
+ case "flowchartpunchedcard": {
1130
+ let t = i * .2;
1131
+ e.moveTo(n + t, r), e.lineTo(n + i, r), e.lineTo(n + i - t, r + a), e.lineTo(n, r + a), e.closePath();
1132
+ break;
1133
+ }
1134
+ case "flowchartmerge":
1135
+ e.moveTo(n, r), e.lineTo(n + i, r), e.lineTo(u, r + a), e.closePath();
1136
+ break;
1137
+ case "flowchartextract":
1138
+ e.moveTo(u, r), e.lineTo(n + i, r + a), e.lineTo(n, r + a), e.closePath();
1139
+ break;
1140
+ case "flowchartoffpageconnector": {
1141
+ let t = a * .3;
1142
+ e.moveTo(n, r), e.lineTo(n + i, r), e.lineTo(n + i, r + a - t), e.lineTo(u, r + a), e.lineTo(n, r + a - t), e.closePath();
1143
+ break;
1144
+ }
1145
+ case "flowchartonlinestorage":
1146
+ case "flowchartmanuallabel":
1147
+ case "flowchartpuncheddisk":
1148
+ e.rect(n, r, i, a);
1149
+ break;
1150
+ case "horizontalscroll": {
1151
+ let t = Math.min(i, a) * .15;
1152
+ e.roundRect(n + t, r, i - t, a, t), e.moveTo(n + t, r + t * 2), e.arc(n + t, r + t, t, Math.PI / 2, Math.PI * 2.5);
1153
+ break;
1154
+ }
1155
+ case "verticalscroll": {
1156
+ let t = Math.min(i, a) * .15;
1157
+ e.roundRect(n, r + t, i, a - t, t), e.moveTo(n + t * 2, r + t), e.arc(n + t, r + t, t, 0, Math.PI * 2);
1158
+ break;
1159
+ }
1160
+ case "ribbon": {
1161
+ let t = Math.min(33333, Math.max(0, o ?? 16667)), c = i * Math.min(75e3, Math.max(25e3, s ?? 5e4)) / 2e5, l = i / 8, u = i / 32, d = i / 2 - c, f = i / 2 + c, p = d + u, m = f - u, h = d + l, g = f - l, _ = h - u, v = g + u, y = i - l, b = a * t / 2e5, x = a * t / 1e5, S = a - x, C = S / 2;
1162
+ e.moveTo(n, r), e.lineTo(n + _, r), e.lineTo(n + p, r + b), e.lineTo(n + m, r + x), e.lineTo(n + v, r + b), e.lineTo(n + i, r), e.lineTo(n + y, r + C), e.lineTo(n + i, r + S), e.lineTo(n + f, r + S), e.lineTo(n + f, r + a), e.lineTo(n + p, r + a), e.lineTo(n + d, r + S), e.lineTo(n, r + S), e.lineTo(n + l, r + C), e.closePath();
1163
+ break;
1164
+ }
1165
+ case "ribbon2": {
1166
+ let t = Math.min(33333, Math.max(0, o ?? 16667)), c = i * Math.min(75e3, Math.max(25e3, s ?? 5e4)) / 2e5, l = i / 8, u = i / 32, d = i / 2 - c, f = i / 2 + c, p = d + u, m = f - u, h = d + l, g = f - l, _ = h - u, v = g + u, y = i - l, b = a * t / 2e5, x = a * t / 1e5, S = a - b, C = a - x, w = x, T = (w + a) / 2;
1167
+ e.moveTo(n, r + a), e.lineTo(n + _, r + a), e.lineTo(n + p, r + S), e.lineTo(n + m, r + C), e.lineTo(n + v, r + S), e.lineTo(n + i, r + a), e.lineTo(n + y, r + T), e.lineTo(n + i, r + w), e.lineTo(n + f, r + w), e.lineTo(n + f, r), e.lineTo(n + p, r), e.lineTo(n + d, r + w), e.lineTo(n, r + w), e.lineTo(n + l, r + T), e.closePath();
1168
+ break;
1169
+ }
1170
+ case "ellipseribbon": {
1171
+ let t = Math.min(1e5, Math.max(0, o ?? 25e3)), l = Math.min(75e3, Math.max(25e3, s ?? 5e4)), u = Math.max(0, t - (1e5 - t) / 2), d = Math.min(t, Math.max(u, c ?? 12500)), f = i / 8, p = i * l / 2e5, m = i / 2 - p, h = m + f, g = i - h, _ = i - m, v = i - f, y = a * d / 1e5, b = 4 * y / i, x = b * (h - h * h / i), S = h / 2, C = b * S, w = i - S, T = a * t / 1e5, E = T - y, D = b * (m - m * m / i), O = D + E, k = y + E - O + y + E, A = a - T, j = (y * 14 / 16 + A) / 2, M = D + A, N = O + A, P = m / 2, F = b * P + A, I = i - P, L = k + A;
1172
+ e.moveTo(n, r), e.quadraticCurveTo(n + S, r + C, n + h, r + x), e.lineTo(n + m, r + O), e.quadraticCurveTo(n + i / 2, r + k, n + _, r + O), e.lineTo(n + g, r + x), e.quadraticCurveTo(n + w, r + C, n + i, r), e.lineTo(n + v, r + j), e.lineTo(n + i, r + A), e.quadraticCurveTo(n + I, r + F, n + _, r + M), e.lineTo(n + _, r + N), e.quadraticCurveTo(n + i / 2, r + L, n + m, r + N), e.lineTo(n + m, r + M), e.quadraticCurveTo(n + P, r + F, n, r + A), e.lineTo(n + f, r + j), e.closePath();
1173
+ break;
1174
+ }
1175
+ case "ellipseribbon2": {
1176
+ let t = Math.min(1e5, Math.max(0, o ?? 25e3)), l = Math.min(75e3, Math.max(25e3, s ?? 5e4)), u = Math.max(0, t - (1e5 - t) / 2), d = Math.min(t, Math.max(u, c ?? 12500)), f = i / 8, p = i * l / 2e5, m = i / 2 - p, h = m + f, g = i - h, _ = i - m, v = i - f, y = a * d / 1e5, b = 4 * y / i, x = a - b * (h - h * h / i), S = h / 2, C = a - b * S, w = i - S, T = a * t / 1e5, E = T - y, D = b * (m - m * m / i), O = D + E, k = a - O, A = y + E - O + y + E, j = a - A, M = a - T, N = a - (y * 14 / 16 + M) / 2, P = a - (D + M), F = a - (O + M), I = m / 2, L = a - (b * I + M), R = i - I, z = a - (A + M);
1177
+ e.moveTo(n, r + a), e.quadraticCurveTo(n + S, r + C, n + h, r + x), e.lineTo(n + m, r + k), e.quadraticCurveTo(n + i / 2, r + j, n + _, r + k), e.lineTo(n + g, r + x), e.quadraticCurveTo(n + w, r + C, n + i, r + a), e.lineTo(n + v, r + N), e.lineTo(n + i, r + T), e.quadraticCurveTo(n + R, r + L, n + _, r + P), e.lineTo(n + _, r + F), e.quadraticCurveTo(n + i / 2, r + z, n + m, r + F), e.lineTo(n + m, r + P), e.quadraticCurveTo(n + I, r + L, n, r + T), e.lineTo(n + f, r + N), e.closePath();
1178
+ break;
1179
+ }
1180
+ case "circulararrow": {
1181
+ let t = (s ?? 0) / 6e4 * Math.PI / 180, n = (o ?? 162e5) / 6e4 * Math.PI / 180, r = (c ?? 5e4) / 1e5, l = Math.min(i, a) / 2, d = l * (1 - r), f = (l + d) / 2, p = l - d, h = t + n;
1182
+ e.arc(u, m, l, t, h, !1), e.arc(u, m, d, h, t, !0), e.closePath();
1183
+ let g = Math.sin(h), _ = -Math.cos(h), v = p * 1.5, y = u + f * Math.cos(h) + v * g, b = m + f * Math.sin(h) + v * _;
1184
+ e.moveTo(y, b), e.lineTo(u + l * Math.cos(h), m + l * Math.sin(h)), e.lineTo(u + d * Math.cos(h), m + d * Math.sin(h)), e.closePath();
1185
+ break;
1186
+ }
1187
+ case "curvedrightarrow": {
1188
+ let t = Math.min(i, a), l = a / 2, u = 5e4 * a / t, d = Math.min(u, Math.max(0, s ?? 5e4)), f = t * Math.min(d, Math.max(0, o ?? 25e3)) / 1e5, m = t * d / 1e5, h = l - (f + m) / 4, g = (2 * h) ** 2 - f ** 2, _ = 1e5 * (Math.sqrt(Math.max(0, g)) * i / (2 * h)) / t, v = t * Math.min(_, Math.max(0, c ?? 25e3)) / 1e5, y = Math.sqrt(Math.max(0, i * i - v * v)) * h / i, b = h + f, x = h + y, S = b + y, C = (m - f) / 2, w = x - C, T = S + C, E = a - m / 2, D = i - v, O = Math.atan2(v, y), k = -O, A = Math.PI - O;
1189
+ e.moveTo(n, r + h), p(e, n, r + h, i, h, Math.PI, k), e.lineTo(n + D, r + w), e.lineTo(n + i, r + E), e.lineTo(n + D, r + T), e.lineTo(n + D, r + S), p(e, n + D, r + S, i, h, A, O), e.closePath();
1190
+ break;
1191
+ }
1192
+ case "curvedleftarrow": {
1193
+ let t = Math.min(i, a), l = a / 2, u = 5e4 * a / t, d = Math.min(u, Math.max(0, s ?? 5e4)), f = t * Math.min(d, Math.max(0, o ?? 25e3)) / 1e5, m = t * d / 1e5, h = l - (f + m) / 4, g = (2 * h) ** 2 - f ** 2, _ = Math.sqrt(Math.max(0, g)) * i / (2 * h), v = 1e5 * _ / t, y = t * Math.min(v, Math.max(0, c ?? 25e3)) / 1e5, b = Math.sqrt(Math.max(0, i * i - y * y)) * h / i, x = h + f, S = h + b, C = x + b, w = (m - f) / 2, T = S - w, E = C + w, D = a - m / 2, O = y, k = Math.atan2(y, b), A = f / 2, j = Math.atan2(A, _), M = j - k, N = k - j, P = -j;
1194
+ e.moveTo(n, r + D), e.lineTo(n + O, r + T), e.lineTo(n + O, r + S);
1195
+ let F = p(e, n + O, r + S, i, h, k, M);
1196
+ p(e, F.x, F.y, i, h, P, N), e.lineTo(n + O, r + E), e.closePath();
1197
+ break;
1198
+ }
1199
+ case "curveduparrow": {
1200
+ let t = Math.min(i, a), l = i / 2, u = 5e4 * i / t, d = Math.min(u, Math.max(0, s ?? 5e4)), f = t * Math.min(1e5, Math.max(0, o ?? 25e3)) / 1e5, m = t * d / 1e5, h = l - (f + m) / 4, g = (2 * h) ** 2 - f ** 2, _ = Math.sqrt(Math.max(0, g)) * a / (2 * h), v = 1e5 * _ / t, y = t * Math.min(v, Math.max(0, c ?? 25e3)) / 1e5, b = Math.sqrt(Math.max(0, a * a - y * y)) * h / a, x = h + f, S = h + b, C = x + b, w = (m - f) / 2, T = S - w, E = C + w, D = i - m / 2, O = y, k = Math.atan2(y, b), A = f / 2, j = Math.atan2(A, _), M = j - k, N = k - j, P = Math.PI / 2 - k, F = Math.PI / 2 - j;
1201
+ e.moveTo(n + D, r), e.lineTo(n + E, r + O), e.lineTo(n + C, r + O);
1202
+ let I = p(e, n + C, r + O, h, a, P, N);
1203
+ p(e, I.x, I.y, h, a, F, M), e.lineTo(n + T, r + O), e.closePath();
1204
+ break;
1205
+ }
1206
+ case "curveddownarrow": {
1207
+ let t = Math.min(i, a), l = i / 2, u = 5e4 * i / t, d = Math.min(u, Math.max(0, s ?? 5e4)), f = t * Math.min(1e5, Math.max(0, o ?? 25e3)) / 1e5, m = t * d / 1e5, h = l - (f + m) / 4, g = (2 * h) ** 2 - f ** 2, _ = Math.sqrt(Math.max(0, g)) * a / (2 * h), v = 1e5 * _ / t, y = t * Math.min(v, Math.max(0, c ?? 25e3)) / 1e5, b = Math.sqrt(Math.max(0, a * a - y * y)) * h / a, x = h + f, S = h + b, C = x + b, w = (m - f) / 2, T = S - w, E = C + w, D = i - m / 2, O = a - y, k = Math.atan2(y, b), A = f / 2, j = Math.atan2(A, _), M = 3 * Math.PI / 2 + k;
1208
+ 3 * Math.PI / 2 - j, j - Math.PI / 2, Math.PI / 2 - j, e.moveTo(n + D, r + a), e.lineTo(n + T, r + O), e.lineTo(n + S, r + O), p(e, n + S, r + O, h, a, M, -k), e.lineTo(n + x, r), p(e, n + x, r, h, a, 3 * Math.PI / 2, k), e.lineTo(n + E, r + O), e.closePath();
1209
+ break;
1210
+ }
1211
+ case "stripedrightarrow": {
1212
+ let t = Math.min(i, a), c = t / 32, l = t / 16, u = t / 8, d = t * (o ?? 5e4) / 1e5, f = i * (s ?? 5e4) / 1e5, p = m - d / 2, h = m + d / 2, g = n + i - f;
1213
+ e.rect(n, p, c, d), e.rect(n + l, p, l, d), e.rect(n + u, p, u, d), e.moveTo(g, p), e.lineTo(g, r), e.lineTo(n + i, m), e.lineTo(g, r + a), e.lineTo(g, h), e.lineTo(n + u * 2, h), e.lineTo(n + u * 2, p), e.closePath();
1214
+ break;
1215
+ }
1216
+ case "flowchartpreparation": {
1217
+ let t = i * .2;
1218
+ e.moveTo(n + t, r), e.lineTo(n + i - t, r), e.lineTo(n + i, m), e.lineTo(n + i - t, r + a), e.lineTo(n + t, r + a), e.lineTo(n, m), e.closePath();
1219
+ break;
1220
+ }
1221
+ case "flowchartcollate":
1222
+ e.moveTo(n, r), e.lineTo(n + i, r), e.lineTo(n, r + a), e.lineTo(n + i, r + a), e.closePath();
1223
+ break;
1224
+ case "flowchartmagneticdisk": {
1225
+ let t = a * .15;
1226
+ e.moveTo(n, r + t), e.ellipse(u, r + t, i / 2, t, 0, Math.PI, 0), e.lineTo(n + i, r + a - t), e.ellipse(u, r + a - t, i / 2, t, 0, 0, Math.PI), e.lineTo(n, r + t), e.closePath(), e.moveTo(n + i, r + t), e.ellipse(u, r + t, i / 2, t, 0, 0, Math.PI);
1227
+ break;
1228
+ }
1229
+ case "flowchartinternalstorage": {
1230
+ e.rect(n, r, i, a);
1231
+ let t = i * .15, o = a * .15;
1232
+ e.moveTo(n + t, r), e.lineTo(n + t, r + a), e.moveTo(n, r + o), e.lineTo(n + i, r + o);
1233
+ break;
1234
+ }
1235
+ case "flowchartmagneticdrum": {
1236
+ let t = i * .15;
1237
+ e.moveTo(n + t, r), e.lineTo(n + i, r), e.lineTo(n + i, r + a), e.lineTo(n + t, r + a), e.ellipse(n + t, m, t, a / 2, 0, Math.PI / 2, -Math.PI / 2, !0), e.closePath(), e.moveTo(n + i, r), e.ellipse(n + i, m, t, a / 2, 0, -Math.PI / 2, Math.PI / 2);
1238
+ break;
1239
+ }
1240
+ case "flowchartsumingjunction":
1241
+ case "flowchartsummingjunction": {
1242
+ e.ellipse(u, m, i / 2, a / 2, 0, 0, Math.PI * 2);
1243
+ let t = Math.min(i, a) / 2 * .65;
1244
+ e.moveTo(u - t, m - t), e.lineTo(u + t, m + t), e.moveTo(u + t, m - t), e.lineTo(u - t, m + t);
1245
+ break;
1246
+ }
1247
+ case "flowchartmagnetictape": {
1248
+ let t = Math.min(i, a) / 2, n = u + t * .5;
1249
+ e.moveTo(u, r + a), e.arc(u, m, t, Math.PI / 2, Math.PI / 2 + Math.PI * 2 * .875), e.lineTo(n, m + t * .5), e.lineTo(n, r + a), e.closePath();
1250
+ break;
1251
+ }
1252
+ case "flowchartpunchedtape": {
1253
+ let t = a * .12;
1254
+ e.moveTo(n, r), e.lineTo(n + i, r), e.lineTo(n + i, r + a - t), e.bezierCurveTo(n + i * .75, r + a, n + i * .25, r + a - t * 2, n, r + a - t), e.closePath(), e.moveTo(n, r + t), e.bezierCurveTo(n + i * .25, r, n + i * .75, r + t * 2, n + i, r + t);
1255
+ break;
1256
+ }
1257
+ case "flowchartmanualoperation": {
1258
+ let t = i * .15;
1259
+ e.moveTo(n + t, r), e.lineTo(n + i - t, r), e.lineTo(n + i, r + a), e.lineTo(n, r + a), e.closePath();
1260
+ break;
1261
+ }
1262
+ case "flowchartmultidocument": {
1263
+ let t = a * .1, o = i * .04;
1264
+ e.rect(n + o * 2, r - a * .08, i - o * 2, a * .1), e.rect(n + o, r - a * .04, i - o, a * .06), e.moveTo(n, r), e.lineTo(n + i, r), e.lineTo(n + i, r + a - t), e.bezierCurveTo(n + i * .75, r + a, n + i * .25, r + a - t * 2, n, r + a - t), e.closePath();
1265
+ break;
1266
+ }
1267
+ case "rttriangle":
1268
+ e.moveTo(n, r), e.lineTo(n, r + a), e.lineTo(n + i, r + a), e.closePath();
1269
+ break;
1270
+ default:
1271
+ e.rect(n, r, i, a);
1272
+ break;
1273
+ }
1274
+ }
1275
+ //#endregion
1276
+ //#region packages/core/src/math/mathml.ts
1277
+ var h = {
1278
+ "&": "&amp;",
1279
+ "<": "&lt;",
1280
+ ">": "&gt;",
1281
+ "\"": "&quot;"
1282
+ }, g = (e) => e.replace(/[&<>"]/g, (e) => h[e]);
1283
+ function _(e) {
1284
+ switch (e) {
1285
+ case "roman": return "normal";
1286
+ case "bold": return "bold";
1287
+ case "boldItalic": return "bold-italic";
1288
+ case "italic": return null;
1289
+ }
1290
+ }
1291
+ var v = new Set([..."⏞⏟⎴⎵︷︸⏜⏝{}[]()¯_‾"]), y = "+−±∓×÷·∗⋅∘∙*/", b = "=≠<>≤≥≈≡∼≅≃→←↔⇒∈∉⊂⊆⊃⊇∝≪≫⊥≔", x = "([{⟨⌈⌊", S = ")]}⟩⌉⌋", C = ",;";
1292
+ function w(e, t) {
1293
+ let n = _(t), r = n ? ` mathvariant="${n}"` : "", i = "", a = "", o = () => {
1294
+ a &&= (i += `<mn${r}>${g(a)}</mn>`, "");
1295
+ };
1296
+ for (let t of e) {
1297
+ if (t === " ") {
1298
+ o();
1299
+ continue;
1300
+ }
1301
+ if (t >= "0" && t <= "9") {
1302
+ a += t;
1303
+ continue;
1304
+ }
1305
+ o(), y.includes(t) || b.includes(t) || C.includes(t) ? i += `<mo>${g(t)}</mo>` : x.includes(t) || S.includes(t) ? i += `<mo fence="true" stretchy="false">${g(t)}</mo>` : i += `<mi${r}>${g(t)}</mi>`;
1306
+ }
1307
+ return o(), i;
1308
+ }
1309
+ function T(e) {
1310
+ return e.map(D).join("");
1311
+ }
1312
+ function E(e) {
1313
+ return `<mrow>${T(e)}</mrow>`;
1314
+ }
1315
+ function D(e) {
1316
+ switch (e.kind) {
1317
+ case "run": return w(e.text, e.style);
1318
+ case "group": return E(e.items);
1319
+ case "fraction": return `<mfrac${e.bar === !1 ? " linethickness=\"0\"" : ""}>${E(e.num)}${E(e.den)}</mfrac>`;
1320
+ case "sup": return `<msup>${E(e.base)}${E(e.sup ?? [])}</msup>`;
1321
+ case "sub": return `<msub>${E(e.base)}${E(e.sub ?? [])}</msub>`;
1322
+ case "subSup": return `<msubsup>${E(e.base)}${E(e.sub ?? [])}${E(e.sup ?? [])}</msubsup>`;
1323
+ case "nary": return P(e);
1324
+ case "delimiter": return F(e);
1325
+ case "radical": return e.index && e.index.length ? `<mroot>${E(e.radicand)}${E(e.index)}</mroot>` : `<msqrt>${T(e.radicand)}</msqrt>`;
1326
+ case "limit": return j(e);
1327
+ case "array": return M(e);
1328
+ case "groupChr": {
1329
+ let t = E(e.base), n = v.has(e.char), r = e.pos === "top" ? "mover" : "munder", i = `<mo stretchy="${n}">${g(e.char)}</mo>`;
1330
+ return n ? `<${r}>${t}${i}</${r}>` : `<${r} accent="true">${t}${i}</${r}>`;
1331
+ }
1332
+ case "bar": {
1333
+ let t = E(e.base), n = "<mo stretchy=\"true\">&#x2015;</mo>";
1334
+ return e.pos === "bot" ? `<munder>${t}${n}</munder>` : `<mover>${t}${n}</mover>`;
1335
+ }
1336
+ case "accent": return A(e);
1337
+ case "func": return `<mrow>${E(e.name)}<mo>&#x2061;</mo>${E(e.arg)}</mrow>`;
1338
+ }
1339
+ }
1340
+ var O = {
1341
+ "̀": "`",
1342
+ "́": "´",
1343
+ "̂": "^",
1344
+ "̃": "~",
1345
+ "̆": "˘",
1346
+ "̇": "˙",
1347
+ "̈": "¨",
1348
+ "̌": "ˇ",
1349
+ "⃗": "→",
1350
+ "⃖": "←"
1351
+ }, k = new Set([
1352
+ "̅",
1353
+ "̄",
1354
+ "¯",
1355
+ "‾",
1356
+ "̲",
1357
+ "̳"
1358
+ ]);
1359
+ function A(e) {
1360
+ let t = E(e.base);
1361
+ if (k.has(e.char)) return `<mover>${t}<mo stretchy="true">&#x2015;</mo></mover>`;
1362
+ let n = O[e.char] ?? e.char;
1363
+ return `<mover accent="true">${t}<mo stretchy="${n === "→" || n === "←" ? "true" : "false"}">${g(n)}</mo></mover>`;
1364
+ }
1365
+ function j(e) {
1366
+ let t = E(e.base), n = e.lower && e.lower.length ? E(e.lower) : null, r = e.upper && e.upper.length ? E(e.upper) : null;
1367
+ return n && r ? `<munderover>${t}${n}${r}</munderover>` : n ? `<munder>${t}${n}</munder>` : r ? `<mover>${t}${r}</mover>` : t;
1368
+ }
1369
+ function M(e) {
1370
+ let t = Math.max(1, ...e.rows.map((e) => e.length)), n;
1371
+ n = e.align === "eq" ? Array.from({ length: t }, (e, t) => t % 2 == 0 ? "right" : "left").join(" ") : e.align === "left" ? "left" : "center";
1372
+ let r = e.rows.map((e) => `<mtr>${e.map((e) => `<mtd>${T(e)}</mtd>`).join("")}</mtr>`).join("");
1373
+ return `<mtable columnalign="${n}" rowspacing="0.2em" columnspacing="0.3em">${r}</mtable>`;
1374
+ }
1375
+ var N = new Set([..."∫∬∭∮∯∰∱∲∳⨌⨍⨎⨏⨐⨑⨒⨓⨔⨕⨖⨗"]);
1376
+ function P(e) {
1377
+ let t = e.limLoc === "subSup" ? !0 : e.limLoc === "undOvr" ? !1 : N.has(e.op), n = `<mo largeop="true">${g(e.op)}</mo>`, r = e.sub ?? [], i = e.sup ?? [], a;
1378
+ return a = t ? r.length && i.length ? `<msubsup>${n}${E(r)}${E(i)}</msubsup>` : r.length ? `<msub>${n}${E(r)}</msub>` : i.length ? `<msup>${n}${E(i)}</msup>` : n : r.length && i.length ? `<munderover>${n}${E(r)}${E(i)}</munderover>` : r.length ? `<munder>${n}${E(r)}</munder>` : i.length ? `<mover>${n}${E(i)}</mover>` : n, `<mrow>${a}${T(e.body)}</mrow>`;
1379
+ }
1380
+ function F(e) {
1381
+ let t = (e) => `<mo fence="true" stretchy="true">${g(e)}</mo>`, n = e.items.map((e) => E(e)).join("<mo separator=\"true\">,</mo>");
1382
+ return `<mrow>${t(e.begChar)}${n}${t(e.endChar)}</mrow>`;
1383
+ }
1384
+ function I(e, t) {
1385
+ return `<math xmlns="http://www.w3.org/1998/Math/MathML" display="${t ? "block" : "inline"}">${T(e)}</math>`;
1386
+ }
1387
+ //#endregion
1388
+ export { o as a, a as i, m as n, e as o, u as r, I as t };