@swf2es/player 0.1.0 → 0.1.1
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/package.json +7 -7
- package/dist/audio.d.ts +0 -22
- package/dist/audio.d.ts.map +0 -1
- package/dist/audio.js +0 -106
- package/dist/audio.js.map +0 -1
- package/dist/bitmap-filters.d.ts +0 -29
- package/dist/bitmap-filters.d.ts.map +0 -1
- package/dist/bitmap-filters.js +0 -906
- package/dist/bitmap-filters.js.map +0 -1
- package/dist/bitmap-ops.d.ts +0 -113
- package/dist/bitmap-ops.d.ts.map +0 -1
- package/dist/bitmap-ops.js +0 -725
- package/dist/bitmap-ops.js.map +0 -1
- package/dist/bitmap.d.ts +0 -98
- package/dist/bitmap.d.ts.map +0 -1
- package/dist/bitmap.js +0 -314
- package/dist/bitmap.js.map +0 -1
- package/dist/bounds.d.ts +0 -26
- package/dist/bounds.d.ts.map +0 -1
- package/dist/bounds.js +0 -300
- package/dist/bounds.js.map +0 -1
- package/dist/color.d.ts +0 -7
- package/dist/color.d.ts.map +0 -1
- package/dist/color.js +0 -42
- package/dist/color.js.map +0 -1
- package/dist/display.d.ts +0 -425
- package/dist/display.d.ts.map +0 -1
- package/dist/display.js +0 -1274
- package/dist/display.js.map +0 -1
- package/dist/drawing.d.ts +0 -52
- package/dist/drawing.d.ts.map +0 -1
- package/dist/drawing.js +0 -204
- package/dist/drawing.js.map +0 -1
- package/dist/filters.d.ts +0 -54
- package/dist/filters.d.ts.map +0 -1
- package/dist/filters.js +0 -155
- package/dist/filters.js.map +0 -1
- package/dist/fonts.d.ts +0 -23
- package/dist/fonts.d.ts.map +0 -1
- package/dist/fonts.js +0 -91
- package/dist/fonts.js.map +0 -1
- package/dist/geometry.d.ts +0 -21
- package/dist/geometry.d.ts.map +0 -1
- package/dist/geometry.js +0 -76
- package/dist/geometry.js.map +0 -1
- package/dist/gradients.d.ts +0 -29
- package/dist/gradients.d.ts.map +0 -1
- package/dist/gradients.js +0 -116
- package/dist/gradients.js.map +0 -1
- package/dist/images.d.ts +0 -22
- package/dist/images.d.ts.map +0 -1
- package/dist/images.js +0 -147
- package/dist/images.js.map +0 -1
- package/dist/input.d.ts +0 -79
- package/dist/input.d.ts.map +0 -1
- package/dist/input.js +0 -366
- package/dist/input.js.map +0 -1
- package/dist/keyboard.d.ts +0 -97
- package/dist/keyboard.d.ts.map +0 -1
- package/dist/keyboard.js +0 -583
- package/dist/keyboard.js.map +0 -1
- package/dist/morph.d.ts +0 -17
- package/dist/morph.d.ts.map +0 -1
- package/dist/morph.js +0 -218
- package/dist/morph.js.map +0 -1
- package/dist/pixi-blend.d.ts +0 -7
- package/dist/pixi-blend.d.ts.map +0 -1
- package/dist/pixi-blend.js +0 -253
- package/dist/pixi-blend.js.map +0 -1
- package/dist/pixi-color.d.ts +0 -54
- package/dist/pixi-color.d.ts.map +0 -1
- package/dist/pixi-color.js +0 -336
- package/dist/pixi-color.js.map +0 -1
- package/dist/pixi-filters.d.ts +0 -40
- package/dist/pixi-filters.d.ts.map +0 -1
- package/dist/pixi-filters.js +0 -953
- package/dist/pixi-filters.js.map +0 -1
- package/dist/pixi-resolve.d.ts +0 -4
- package/dist/pixi-resolve.d.ts.map +0 -1
- package/dist/pixi-resolve.js +0 -76
- package/dist/pixi-resolve.js.map +0 -1
- package/dist/pixi.d.ts +0 -219
- package/dist/pixi.d.ts.map +0 -1
- package/dist/pixi.js +0 -2169
- package/dist/pixi.js.map +0 -1
- package/dist/playerglobal/flash/filters/filters.d.ts +0 -26
- package/dist/playerglobal/flash/filters/filters.d.ts.map +0 -1
- package/dist/playerglobal/flash/filters/filters.js +0 -287
- package/dist/playerglobal/flash/filters/filters.js.map +0 -1
- package/dist/playerglobal/flash/system/FSCommand.d.ts +0 -4
- package/dist/playerglobal/flash/system/FSCommand.d.ts.map +0 -1
- package/dist/playerglobal/flash/system/FSCommand.js +0 -18
- package/dist/playerglobal/flash/system/FSCommand.js.map +0 -1
- package/dist/playerglobal/natives.d.ts +0 -10
- package/dist/playerglobal/natives.d.ts.map +0 -1
- package/dist/playerglobal/natives.js +0 -53
- package/dist/playerglobal/natives.js.map +0 -1
- package/dist/png.d.ts +0 -4
- package/dist/png.d.ts.map +0 -1
- package/dist/png.js +0 -140
- package/dist/png.js.map +0 -1
- package/dist/render/art.d.ts +0 -148
- package/dist/render/art.d.ts.map +0 -1
- package/dist/render/art.js +0 -575
- package/dist/render/art.js.map +0 -1
- package/dist/render/batchers.d.ts +0 -23
- package/dist/render/batchers.d.ts.map +0 -1
- package/dist/render/batchers.js +0 -52
- package/dist/render/batchers.js.map +0 -1
- package/dist/render/bitmaps.d.ts +0 -117
- package/dist/render/bitmaps.d.ts.map +0 -1
- package/dist/render/bitmaps.js +0 -422
- package/dist/render/bitmaps.js.map +0 -1
- package/dist/render/blend.d.ts +0 -37
- package/dist/render/blend.d.ts.map +0 -1
- package/dist/render/blend.js +0 -195
- package/dist/render/blend.js.map +0 -1
- package/dist/render/color.d.ts +0 -111
- package/dist/render/color.d.ts.map +0 -1
- package/dist/render/color.js +0 -533
- package/dist/render/color.js.map +0 -1
- package/dist/render/compositing.d.ts +0 -77
- package/dist/render/compositing.d.ts.map +0 -1
- package/dist/render/compositing.js +0 -188
- package/dist/render/compositing.js.map +0 -1
- package/dist/render/filters.d.ts +0 -98
- package/dist/render/filters.d.ts.map +0 -1
- package/dist/render/filters.js +0 -1326
- package/dist/render/filters.js.map +0 -1
- package/dist/render/hooks.d.ts +0 -4
- package/dist/render/hooks.d.ts.map +0 -1
- package/dist/render/hooks.js +0 -48
- package/dist/render/hooks.js.map +0 -1
- package/dist/render/node.d.ts +0 -139
- package/dist/render/node.d.ts.map +0 -1
- package/dist/render/node.js +0 -59
- package/dist/render/node.js.map +0 -1
- package/dist/render/patches.d.ts +0 -54
- package/dist/render/patches.d.ts.map +0 -1
- package/dist/render/patches.js +0 -154
- package/dist/render/patches.js.map +0 -1
- package/dist/render/planes.d.ts +0 -74
- package/dist/render/planes.d.ts.map +0 -1
- package/dist/render/planes.js +0 -267
- package/dist/render/planes.js.map +0 -1
- package/dist/render/pointer.d.ts +0 -5
- package/dist/render/pointer.d.ts.map +0 -1
- package/dist/render/pointer.js +0 -279
- package/dist/render/pointer.js.map +0 -1
- package/dist/render/pools.d.ts +0 -122
- package/dist/render/pools.d.ts.map +0 -1
- package/dist/render/pools.js +0 -238
- package/dist/render/pools.js.map +0 -1
- package/dist/render/resolve.d.ts +0 -4
- package/dist/render/resolve.d.ts.map +0 -1
- package/dist/render/resolve.js +0 -76
- package/dist/render/resolve.js.map +0 -1
- package/dist/render/saffron.d.ts +0 -135
- package/dist/render/saffron.d.ts.map +0 -1
- package/dist/render/saffron.js +0 -725
- package/dist/render/saffron.js.map +0 -1
- package/dist/render/settle.d.ts +0 -60
- package/dist/render/settle.d.ts.map +0 -1
- package/dist/render/settle.js +0 -128
- package/dist/render/settle.js.map +0 -1
- package/dist/render/shared.d.ts +0 -25
- package/dist/render/shared.d.ts.map +0 -1
- package/dist/render/shared.js +0 -33
- package/dist/render/shared.js.map +0 -1
- package/dist/render/snapshot.d.ts +0 -21
- package/dist/render/snapshot.d.ts.map +0 -1
- package/dist/render/snapshot.js +0 -91
- package/dist/render/snapshot.js.map +0 -1
- package/dist/render/spares.d.ts +0 -56
- package/dist/render/spares.d.ts.map +0 -1
- package/dist/render/spares.js +0 -160
- package/dist/render/spares.js.map +0 -1
- package/dist/render/strokes.d.ts +0 -107
- package/dist/render/strokes.d.ts.map +0 -1
- package/dist/render/strokes.js +0 -448
- package/dist/render/strokes.js.map +0 -1
- package/dist/render/table.d.ts +0 -213
- package/dist/render/table.d.ts.map +0 -1
- package/dist/render/table.js +0 -795
- package/dist/render/table.js.map +0 -1
- package/dist/render/tessellate.d.ts +0 -89
- package/dist/render/tessellate.d.ts.map +0 -1
- package/dist/render/tessellate.js +0 -386
- package/dist/render/tessellate.js.map +0 -1
- package/dist/render/text.d.ts +0 -40
- package/dist/render/text.d.ts.map +0 -1
- package/dist/render/text.js +0 -309
- package/dist/render/text.js.map +0 -1
- package/dist/render/three.d.ts +0 -83
- package/dist/render/three.d.ts.map +0 -1
- package/dist/render/three.js +0 -511
- package/dist/render/three.js.map +0 -1
- package/dist/render/triangles.d.ts +0 -28
- package/dist/render/triangles.d.ts.map +0 -1
- package/dist/render/triangles.js +0 -189
- package/dist/render/triangles.js.map +0 -1
- package/dist/render/view.d.ts +0 -238
- package/dist/render/view.d.ts.map +0 -1
- package/dist/render/view.js +0 -1173
- package/dist/render/view.js.map +0 -1
- package/dist/render/worker/bitmaps.d.ts +0 -43
- package/dist/render/worker/bitmaps.d.ts.map +0 -1
- package/dist/render/worker/bitmaps.js +0 -151
- package/dist/render/worker/bitmaps.js.map +0 -1
- package/dist/render/worker/drawing.d.ts +0 -21
- package/dist/render/worker/drawing.d.ts.map +0 -1
- package/dist/render/worker/drawing.js +0 -356
- package/dist/render/worker/drawing.js.map +0 -1
- package/dist/render/worker/filters.d.ts +0 -7
- package/dist/render/worker/filters.d.ts.map +0 -1
- package/dist/render/worker/filters.js +0 -125
- package/dist/render/worker/filters.js.map +0 -1
- package/dist/render/worker/frames.d.ts +0 -32
- package/dist/render/worker/frames.d.ts.map +0 -1
- package/dist/render/worker/frames.js +0 -124
- package/dist/render/worker/frames.js.map +0 -1
- package/dist/render/worker/host.d.ts +0 -60
- package/dist/render/worker/host.d.ts.map +0 -1
- package/dist/render/worker/host.js +0 -297
- package/dist/render/worker/host.js.map +0 -1
- package/dist/render/worker/libraries.d.ts +0 -36
- package/dist/render/worker/libraries.d.ts.map +0 -1
- package/dist/render/worker/libraries.js +0 -153
- package/dist/render/worker/libraries.js.map +0 -1
- package/dist/render/worker/presentation.d.ts +0 -18
- package/dist/render/worker/presentation.d.ts.map +0 -1
- package/dist/render/worker/presentation.js +0 -47
- package/dist/render/worker/presentation.js.map +0 -1
- package/dist/render/worker/renderer.d.ts +0 -4
- package/dist/render/worker/renderer.d.ts.map +0 -1
- package/dist/render/worker/renderer.js +0 -21
- package/dist/render/worker/renderer.js.map +0 -1
- package/dist/render/worker/scene.d.ts +0 -32
- package/dist/render/worker/scene.d.ts.map +0 -1
- package/dist/render/worker/scene.js +0 -611
- package/dist/render/worker/scene.js.map +0 -1
- package/dist/render/worker/text.d.ts +0 -47
- package/dist/render/worker/text.d.ts.map +0 -1
- package/dist/render/worker/text.js +0 -261
- package/dist/render/worker/text.js.map +0 -1
- package/dist/render/worker/thread.d.ts +0 -23
- package/dist/render/worker/thread.d.ts.map +0 -1
- package/dist/render/worker/thread.js +0 -107
- package/dist/render/worker/thread.js.map +0 -1
- package/dist/render/worker/values.d.ts +0 -18
- package/dist/render/worker/values.d.ts.map +0 -1
- package/dist/render/worker/values.js +0 -64
- package/dist/render/worker/values.js.map +0 -1
- package/dist/sha256.d.ts +0 -5
- package/dist/sha256.d.ts.map +0 -1
- package/dist/sha256.js +0 -96
- package/dist/sha256.js.map +0 -1
- package/dist/shapes.d.ts +0 -71
- package/dist/shapes.d.ts.map +0 -1
- package/dist/shapes.js +0 -340
- package/dist/shapes.js.map +0 -1
- package/dist/static-text.d.ts +0 -33
- package/dist/static-text.d.ts.map +0 -1
- package/dist/static-text.js +0 -105
- package/dist/static-text.js.map +0 -1
- package/dist/text-layout.d.ts +0 -66
- package/dist/text-layout.d.ts.map +0 -1
- package/dist/text-layout.js +0 -315
- package/dist/text-layout.js.map +0 -1
- package/dist/text.d.ts +0 -67
- package/dist/text.d.ts.map +0 -1
- package/dist/text.js +0 -383
- package/dist/text.js.map +0 -1
- package/dist/timeline.d.ts +0 -150
- package/dist/timeline.d.ts.map +0 -1
- package/dist/timeline.js +0 -266
- package/dist/timeline.js.map +0 -1
package/dist/morph.js
DELETED
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
import { shapeLayers } from "./shapes.js";
|
|
2
|
-
/**
|
|
3
|
-
* The layers of blends a morph no longer keeps. The renderer shares a
|
|
4
|
-
* blend's lines while it is kept; one made again for the same ratio has
|
|
5
|
-
* layers of its own, so lines kept for these would never be found again.
|
|
6
|
-
*/
|
|
7
|
-
export const droppedLayers = new WeakSet();
|
|
8
|
-
/** The layers of every blend made, whose lines the renderer watches for their dropping. */
|
|
9
|
-
export const blendLayers = new WeakSet();
|
|
10
|
-
/** How many blends a morph keeps: its latest ratios, enough for instances in step to share them. */
|
|
11
|
-
const KEPT_BLENDS = 16;
|
|
12
|
-
/**
|
|
13
|
-
* The shape `character` is at `ratio`, 0 its start to 65535 its end: made
|
|
14
|
-
* the first time it is asked for and kept while it is among the morph's
|
|
15
|
-
* latest, as a tween asks for a new ratio on each frame.
|
|
16
|
-
*/
|
|
17
|
-
export function morphAt(character, ratio) {
|
|
18
|
-
const blends = character.blends;
|
|
19
|
-
let shape = blends.get(ratio);
|
|
20
|
-
if (shape) {
|
|
21
|
-
// Last in the map's order, the most recently asked for.
|
|
22
|
-
blends.delete(ratio);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
const blended = blend(character.morph, ratio / 65535);
|
|
26
|
-
shape = {
|
|
27
|
-
type: "shape",
|
|
28
|
-
id: character.id,
|
|
29
|
-
shape: blended,
|
|
30
|
-
layers: shapeLayers(blended, character.bitmap),
|
|
31
|
-
};
|
|
32
|
-
for (const layer of shape.layers) {
|
|
33
|
-
blendLayers.add(layer);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
blends.set(ratio, shape);
|
|
37
|
-
if (blends.size > KEPT_BLENDS) {
|
|
38
|
-
const oldest = blends.keys().next().value;
|
|
39
|
-
for (const layer of blends.get(oldest)?.layers ?? []) {
|
|
40
|
-
droppedLayers.add(layer);
|
|
41
|
-
}
|
|
42
|
-
blends.delete(oldest);
|
|
43
|
-
}
|
|
44
|
-
return shape;
|
|
45
|
-
}
|
|
46
|
-
const mix = (a, b, t) => a + (b - a) * t;
|
|
47
|
-
/** Each channel of two 0xAARRGGBB colours mixed, as a byte. */
|
|
48
|
-
function mixColor(a, b, t) {
|
|
49
|
-
let out = 0;
|
|
50
|
-
for (let shift = 24; shift >= 0; shift -= 8) {
|
|
51
|
-
const channel = Math.round(mix((a >>> shift) & 0xff, (b >>> shift) & 0xff, t));
|
|
52
|
-
out = out * 256 + channel;
|
|
53
|
-
}
|
|
54
|
-
return out;
|
|
55
|
-
}
|
|
56
|
-
function mixMatrix(a, b, t) {
|
|
57
|
-
return {
|
|
58
|
-
a: mix(a.a, b.a, t),
|
|
59
|
-
b: mix(a.b, b.b, t),
|
|
60
|
-
c: mix(a.c, b.c, t),
|
|
61
|
-
d: mix(a.d, b.d, t),
|
|
62
|
-
tx: mix(a.tx, b.tx, t),
|
|
63
|
-
ty: mix(a.ty, b.ty, t),
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
function mixRect(a, b, t) {
|
|
67
|
-
return {
|
|
68
|
-
xMin: mix(a.xMin, b.xMin, t),
|
|
69
|
-
xMax: mix(a.xMax, b.xMax, t),
|
|
70
|
-
yMin: mix(a.yMin, b.yMin, t),
|
|
71
|
-
yMax: mix(a.yMax, b.yMax, t),
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
function mixGradient(a, b, t) {
|
|
75
|
-
return {
|
|
76
|
-
matrix: mixMatrix(a.matrix, b.matrix, t),
|
|
77
|
-
spread: a.spread,
|
|
78
|
-
interpolation: a.interpolation,
|
|
79
|
-
stops: a.stops.map((stop, i) => {
|
|
80
|
-
const other = b.stops[i] ?? stop;
|
|
81
|
-
return {
|
|
82
|
-
ratio: Math.round(mix(stop.ratio, other.ratio, t)),
|
|
83
|
-
color: mixColor(stop.color, other.color, t),
|
|
84
|
-
};
|
|
85
|
-
}),
|
|
86
|
-
focal: mix(a.focal, b.focal, t),
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
/** Two fills of one MORPHFILLSTYLE, which share their type. */
|
|
90
|
-
function mixFill(a, b, t) {
|
|
91
|
-
if (a.type === "solid" && b.type === "solid") {
|
|
92
|
-
return { type: "solid", color: mixColor(a.color, b.color, t) };
|
|
93
|
-
}
|
|
94
|
-
if (a.type === "bitmap" && b.type === "bitmap") {
|
|
95
|
-
return { ...a, matrix: mixMatrix(a.matrix, b.matrix, t) };
|
|
96
|
-
}
|
|
97
|
-
if (a.type !== "solid" && a.type !== "bitmap" && b.type === a.type) {
|
|
98
|
-
return { type: a.type, gradient: mixGradient(a.gradient, b.gradient, t) };
|
|
99
|
-
}
|
|
100
|
-
return a;
|
|
101
|
-
}
|
|
102
|
-
function mixLine(a, b, t) {
|
|
103
|
-
return {
|
|
104
|
-
...a,
|
|
105
|
-
width: mix(a.width, b.width, t),
|
|
106
|
-
color: mixColor(a.color, b.color, t),
|
|
107
|
-
fill: a.fill && b.fill ? mixFill(a.fill, b.fill, t) : a.fill,
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
const NO_EDGE = { type: "line", dx: 0, dy: 0 };
|
|
111
|
-
/**
|
|
112
|
-
* An edge from `pen` in absolute twips: its control point, halfway along a straight one, and
|
|
113
|
-
* anchor.
|
|
114
|
-
*/
|
|
115
|
-
function absolute(e, pen) {
|
|
116
|
-
if (e.type === "line") {
|
|
117
|
-
const anchor = { x: pen.x + e.dx, y: pen.y + e.dy };
|
|
118
|
-
return {
|
|
119
|
-
control: { x: (pen.x + anchor.x) / 2, y: (pen.y + anchor.y) / 2 },
|
|
120
|
-
anchor,
|
|
121
|
-
straight: true,
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
const control = { x: pen.x + e.cx, y: pen.y + e.cy };
|
|
125
|
-
return { control, anchor: { x: control.x + e.ax, y: control.y + e.ay }, straight: false };
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Two points mixed, to the twip: whole twips keep the pen's sums exact, and closed paths closed.
|
|
129
|
-
*/
|
|
130
|
-
const mixPoint = (a, b, t) => ({
|
|
131
|
-
x: Math.round(mix(a.x, b.x, t)),
|
|
132
|
-
y: Math.round(mix(a.y, b.y, t)),
|
|
133
|
-
});
|
|
134
|
-
/**
|
|
135
|
-
* The morph at `t`, 0 to 1. The ends' edges pair in order, a straight
|
|
136
|
-
* one with a curve as a curve, and their points are mixed where they lie,
|
|
137
|
-
* not their deltas. A style change is the start's, its move mixed with
|
|
138
|
-
* the end's where the end has one there, else with the end's pen; a move
|
|
139
|
-
* only the end has moves the pen from the start's.
|
|
140
|
-
*/
|
|
141
|
-
function blend(morph, t) {
|
|
142
|
-
const records = [];
|
|
143
|
-
const start = morph.start;
|
|
144
|
-
const end = morph.end;
|
|
145
|
-
let startPen = { x: 0, y: 0 };
|
|
146
|
-
let endPen = { x: 0, y: 0 };
|
|
147
|
-
let pen = { x: 0, y: 0 };
|
|
148
|
-
let i = 0;
|
|
149
|
-
let j = 0;
|
|
150
|
-
while (i < start.length) {
|
|
151
|
-
const s = start[i];
|
|
152
|
-
const e = end[j];
|
|
153
|
-
if (s.type === "style") {
|
|
154
|
-
const endStyle = e?.type === "style" ? e : null;
|
|
155
|
-
if (endStyle) {
|
|
156
|
-
j++;
|
|
157
|
-
endPen = endStyle.moveTo ?? endPen;
|
|
158
|
-
}
|
|
159
|
-
startPen = s.moveTo ?? startPen;
|
|
160
|
-
const moves = s.moveTo !== null || endStyle?.moveTo;
|
|
161
|
-
if (moves) {
|
|
162
|
-
pen = mixPoint(startPen, endPen, t);
|
|
163
|
-
}
|
|
164
|
-
records.push({ ...s, moveTo: moves ? pen : null });
|
|
165
|
-
i++;
|
|
166
|
-
continue;
|
|
167
|
-
}
|
|
168
|
-
if (e?.type === "style") {
|
|
169
|
-
if (e.moveTo) {
|
|
170
|
-
endPen = e.moveTo;
|
|
171
|
-
pen = mixPoint(startPen, endPen, t);
|
|
172
|
-
records.push({
|
|
173
|
-
type: "style",
|
|
174
|
-
moveTo: pen,
|
|
175
|
-
fill0: null,
|
|
176
|
-
fill1: null,
|
|
177
|
-
line: null,
|
|
178
|
-
styles: null,
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
j++;
|
|
182
|
-
continue;
|
|
183
|
-
}
|
|
184
|
-
const a = absolute(s, startPen);
|
|
185
|
-
const b = absolute(e ?? NO_EDGE, endPen);
|
|
186
|
-
const anchor = mixPoint(a.anchor, b.anchor, t);
|
|
187
|
-
if (a.straight && b.straight) {
|
|
188
|
-
records.push({ type: "line", dx: anchor.x - pen.x, dy: anchor.y - pen.y });
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
const control = mixPoint(a.control, b.control, t);
|
|
192
|
-
records.push({
|
|
193
|
-
type: "curve",
|
|
194
|
-
cx: control.x - pen.x,
|
|
195
|
-
cy: control.y - pen.y,
|
|
196
|
-
ax: anchor.x - control.x,
|
|
197
|
-
ay: anchor.y - control.y,
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
startPen = a.anchor;
|
|
201
|
-
endPen = b.anchor;
|
|
202
|
-
pen = anchor;
|
|
203
|
-
i++;
|
|
204
|
-
j++;
|
|
205
|
-
}
|
|
206
|
-
return {
|
|
207
|
-
id: morph.id,
|
|
208
|
-
bounds: mixRect(morph.startBounds, morph.endBounds, t),
|
|
209
|
-
edgeBounds: morph.startEdgeBounds && morph.endEdgeBounds
|
|
210
|
-
? mixRect(morph.startEdgeBounds, morph.endEdgeBounds, t)
|
|
211
|
-
: null,
|
|
212
|
-
fills: morph.fills.map((f) => mixFill(f.start, f.end, t)),
|
|
213
|
-
lines: morph.lines.map((l) => mixLine(l.start, l.end, t)),
|
|
214
|
-
records,
|
|
215
|
-
truncated: morph.truncated,
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
//# sourceMappingURL=morph.js.map
|
package/dist/morph.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"morph.js","sourceRoot":"","sources":["../src/morph.ts"],"names":[],"mappings":"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"}
|
package/dist/pixi-blend.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { type Filter } from "pixi.js";
|
|
2
|
-
/**
|
|
3
|
-
* The filters that composite an object in `mode`: none for normal; for
|
|
4
|
-
* layer one that only makes it a layer; for any other the mode's blend.
|
|
5
|
-
*/
|
|
6
|
-
export declare function blendFilters(mode: string): Filter[] | null;
|
|
7
|
-
//# sourceMappingURL=pixi-blend.d.ts.map
|
package/dist/pixi-blend.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pixi-blend.d.ts","sourceRoot":"","sources":["../src/pixi-blend.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,KAAK,MAAM,EAOZ,MAAM,SAAS,CAAC;AAuQjB;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAoB1D"}
|
package/dist/pixi-blend.js
DELETED
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
// Blend modes as Flash composites them (docs/architecture.md, "Blend
|
|
2
|
-
// modes"): the object drawn as a layer, its children together, then that
|
|
3
|
-
// layer blended with what is below by the mode's formula, which a filter
|
|
4
|
-
// that reads the back buffer computes. Colours are premultiplied.
|
|
5
|
-
import { AlphaFilter, BlendModeFilter, FilterEffect, FilterSystem, RenderTargetSystem, Texture, TexturePool, TextureSource, } from "pixi.js";
|
|
6
|
-
const filterSystem = FilterSystem.prototype;
|
|
7
|
-
// Graphics batch bindings fill their unused slots with EMPTY. Removing a
|
|
8
|
-
// listener from it scans all those slots, every time a blend follows a
|
|
9
|
-
// regular filter. Keep the filter system's empty back texture private.
|
|
10
|
-
const emptyBackTextures = new WeakMap();
|
|
11
|
-
const applyFiltersToTexture = filterSystem._applyFiltersToTexture;
|
|
12
|
-
filterSystem._applyFiltersToTexture = function (data, clear) {
|
|
13
|
-
const back = data.backTexture;
|
|
14
|
-
if (back === Texture.EMPTY) {
|
|
15
|
-
let empty = emptyBackTextures.get(this);
|
|
16
|
-
if (!empty) {
|
|
17
|
-
empty = new Texture({ source: new TextureSource() });
|
|
18
|
-
emptyBackTextures.set(this, empty);
|
|
19
|
-
}
|
|
20
|
-
data.backTexture = empty;
|
|
21
|
-
}
|
|
22
|
-
try {
|
|
23
|
-
applyFiltersToTexture.call(this, data, clear);
|
|
24
|
-
}
|
|
25
|
-
finally {
|
|
26
|
-
data.backTexture = back;
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
const destroyFilterSystem = FilterSystem.prototype.destroy;
|
|
30
|
-
FilterSystem.prototype.destroy = function () {
|
|
31
|
-
const empty = emptyBackTextures.get(this);
|
|
32
|
-
if (empty) {
|
|
33
|
-
const group = this._globalFilterBindGroup;
|
|
34
|
-
group.destroy();
|
|
35
|
-
emptyBackTextures.delete(this);
|
|
36
|
-
empty.destroy(true);
|
|
37
|
-
}
|
|
38
|
-
destroyFilterSystem.call(this);
|
|
39
|
-
};
|
|
40
|
-
// A layer's region holds what its filtered children draw past their shapes,
|
|
41
|
-
// as Flash's layer holds a child's glow whole: Pixi measures a filtered
|
|
42
|
-
// object by its descendants' shapes alone, and cut a blurred child of a
|
|
43
|
-
// blend off at its shapes' edges. Each filter of a descendant grows the
|
|
44
|
-
// region by its padding, in the stage's pixels as Pixi pads; the object's
|
|
45
|
-
// own filters are padded by Pixi after.
|
|
46
|
-
let measuring = null;
|
|
47
|
-
FilterEffect.prototype.addBounds =
|
|
48
|
-
function (bounds) {
|
|
49
|
-
if (this === measuring || !this.filters) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
let padding = 0;
|
|
53
|
-
for (const f of this.filters) {
|
|
54
|
-
if (f.enabled) {
|
|
55
|
-
padding += f.padding;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
bounds.pad(padding | 0);
|
|
59
|
-
};
|
|
60
|
-
const calculateFilterArea = filterSystem._calculateFilterArea;
|
|
61
|
-
filterSystem._calculateFilterArea = function (instruction, bounds) {
|
|
62
|
-
measuring = instruction.filterEffect;
|
|
63
|
-
try {
|
|
64
|
-
calculateFilterArea.call(this, instruction, bounds);
|
|
65
|
-
}
|
|
66
|
-
finally {
|
|
67
|
-
measuring = null;
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
// A filter's region on its texture's texels. Pixi puts the region on them
|
|
71
|
-
// and then pads it by whole pixels, which at a resolution that is no whole
|
|
72
|
-
// number (a stage fitted to its window) leaves it between them: the filter
|
|
73
|
-
// read its input between texels, and a blend nested in a layer, its region
|
|
74
|
-
// starting left of or above the layer's, read along its top and left edge
|
|
75
|
-
// texels of the pooled back texture the copy of what is behind never
|
|
76
|
-
// reached, drawing lines Flash does not. The region is put on the texels
|
|
77
|
-
// again after the padding. Patched for every renderer on the page.
|
|
78
|
-
const SNAP = 1e-6;
|
|
79
|
-
const calculateFilterBounds = filterSystem._calculateFilterBounds;
|
|
80
|
-
filterSystem._calculateFilterBounds = function (data, ...rest) {
|
|
81
|
-
calculateFilterBounds.call(this, data, ...rest);
|
|
82
|
-
if (data.skip) {
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
const r = data.resolution;
|
|
86
|
-
const b = data.bounds;
|
|
87
|
-
b.minX = Math.floor(b.minX * r + SNAP) / r;
|
|
88
|
-
b.minY = Math.floor(b.minY * r + SNAP) / r;
|
|
89
|
-
b.maxX = Math.ceil(b.maxX * r - SNAP) / r;
|
|
90
|
-
b.maxY = Math.ceil(b.maxY * r - SNAP) / r;
|
|
91
|
-
};
|
|
92
|
-
// The copy of what is behind a blend into its back texture, held to both:
|
|
93
|
-
// - The texture is sized with a hair of tolerance for rounding, and the
|
|
94
|
-
// copy without, so at some resolutions the copy is a pixel taller or
|
|
95
|
-
// wider than the texture, which GL refuses (copyTexSubImage2D's offset
|
|
96
|
-
// overflow), and the blend reads nothing.
|
|
97
|
-
// - An object at or past the target's edge asks for pixels the target does
|
|
98
|
-
// not have; Pixi's own clamp then leaves a width or height below zero,
|
|
99
|
-
// which GL refuses (GL_INVALID_VALUE) and WebGPU fails its frame for.
|
|
100
|
-
// What the copy does not reach is not cleared: it lies past what the
|
|
101
|
-
// target has, where what the filter draws is cut off anyway (the
|
|
102
|
-
// `blend-edges` case matches adl without it). Patched for every renderer
|
|
103
|
-
// on the page.
|
|
104
|
-
const copyToTexture = RenderTargetSystem.prototype.copyToTexture;
|
|
105
|
-
RenderTargetSystem.prototype.copyToTexture = function (source, destination, from, size, to) {
|
|
106
|
-
const target = this.getRenderTarget(source);
|
|
107
|
-
const { pixelWidth, pixelHeight } = destination.source;
|
|
108
|
-
// What the texture can take of what was asked, and of that what the target has.
|
|
109
|
-
const reachX = Math.min(to.x + size.width, pixelWidth);
|
|
110
|
-
const reachY = Math.min(to.y + size.height, pixelHeight);
|
|
111
|
-
const skipX = Math.max(0, -from.x, -to.x);
|
|
112
|
-
const skipY = Math.max(0, -from.y, -to.y);
|
|
113
|
-
const x = from.x + skipX;
|
|
114
|
-
const y = from.y + skipY;
|
|
115
|
-
const toX = to.x + skipX;
|
|
116
|
-
const toY = to.y + skipY;
|
|
117
|
-
const width = Math.min(reachX - toX, target.pixelWidth - x);
|
|
118
|
-
const height = Math.min(reachY - toY, target.pixelHeight - y);
|
|
119
|
-
if (width <= 0 || height <= 0) {
|
|
120
|
-
return destination;
|
|
121
|
-
}
|
|
122
|
-
return copyToTexture.call(this, source, destination, { x, y }, { width, height }, { x: toX, y: toY });
|
|
123
|
-
};
|
|
124
|
-
// What is behind a blend is copied from the pixels its bounds cover, which
|
|
125
|
-
// Pixi has put on whole pixels of the target but keeps in stage units, as
|
|
126
|
-
// k · (1/r): at a resolution such as 1.62, as a host fitting the stage to
|
|
127
|
-
// its page gives, k · (1/r) · r can fall a hair short of k, and Pixi's floor
|
|
128
|
-
// took the pixel before it. The blend then read what was behind it a pixel
|
|
129
|
-
// off at those positions alone, so a moving blend shook what showed through
|
|
130
|
-
// it. The corner and the size are rounded instead; the patch above holds
|
|
131
|
-
// the copy to the target and the texture.
|
|
132
|
-
FilterSystem.prototype.getBackTexture = function (target, bounds, previous) {
|
|
133
|
-
const resolution = target.colorTexture.source.resolution;
|
|
134
|
-
const back = TexturePool.getOptimalTexture({
|
|
135
|
-
width: bounds.width,
|
|
136
|
-
height: bounds.height,
|
|
137
|
-
resolution,
|
|
138
|
-
});
|
|
139
|
-
const x = previous ? bounds.minX - previous.minX : bounds.minX;
|
|
140
|
-
const y = previous ? bounds.minY - previous.minY : bounds.minY;
|
|
141
|
-
this.renderer.renderTarget.copyToTexture(target, back, { x: Math.round(x * resolution), y: Math.round(y * resolution) }, {
|
|
142
|
-
width: Math.round(bounds.width * resolution),
|
|
143
|
-
height: Math.round(bounds.height * resolution),
|
|
144
|
-
}, { x: 0, y: 0 });
|
|
145
|
-
return back;
|
|
146
|
-
};
|
|
147
|
-
/** Each separable mode's B(back, front) of straight colours, GLSL and WGSL. */
|
|
148
|
-
const SEPARABLE = {
|
|
149
|
-
multiply: ["cb * cf", "cb * cf"],
|
|
150
|
-
screen: ["cb + cf - cb * cf", "cb + cf - cb * cf"],
|
|
151
|
-
lighten: ["max(cb, cf)", "max(cb, cf)"],
|
|
152
|
-
darken: ["min(cb, cf)", "min(cb, cf)"],
|
|
153
|
-
difference: ["abs(cb - cf)", "abs(cb - cf)"],
|
|
154
|
-
hardlight: ["hardlight(cb, cf)", "hardlight(cb, cf)"],
|
|
155
|
-
overlay: ["hardlight(cf, cb)", "hardlight(cf, cb)"],
|
|
156
|
-
};
|
|
157
|
-
const GL_FUNCTIONS = `
|
|
158
|
-
vec3 straight(vec4 c) { return c.a > 0.0 ? c.rgb / c.a : vec3(0.0); }
|
|
159
|
-
vec3 hardlight(vec3 cb, vec3 cf) {
|
|
160
|
-
vec3 multiply = 2.0 * cb * cf;
|
|
161
|
-
vec3 screen = 1.0 - 2.0 * (1.0 - cb) * (1.0 - cf);
|
|
162
|
-
return mix(multiply, screen, step(0.5, cf));
|
|
163
|
-
}
|
|
164
|
-
`;
|
|
165
|
-
const GPU_FUNCTIONS = `
|
|
166
|
-
fn straight(c: vec4<f32>) -> vec3<f32> { return select(vec3<f32>(0.0), c.rgb / c.a, c.a > 0.0); }
|
|
167
|
-
fn hardlight(cb: vec3<f32>, cf: vec3<f32>) -> vec3<f32> {
|
|
168
|
-
let multiply = 2.0 * cb * cf;
|
|
169
|
-
let screen = 1.0 - 2.0 * (1.0 - cb) * (1.0 - cf);
|
|
170
|
-
return mix(multiply, screen, step(vec3<f32>(0.5), cf));
|
|
171
|
-
}
|
|
172
|
-
`;
|
|
173
|
-
/** The result of a mode that is no separable blend, premultiplied, GLSL and WGSL. */
|
|
174
|
-
const SPECIAL = {
|
|
175
|
-
add: [
|
|
176
|
-
"vec4(min(front.rgb + back.rgb, 1.0), min(front.a + back.a, 1.0))",
|
|
177
|
-
"vec4<f32>(min(front.rgb + back.rgb, vec3<f32>(1.0)), min(front.a + back.a, 1.0))",
|
|
178
|
-
],
|
|
179
|
-
subtract: [
|
|
180
|
-
"vec4(max(back.rgb - front.rgb, 0.0), back.a)",
|
|
181
|
-
"vec4<f32>(max(back.rgb - front.rgb, vec3<f32>(0.0)), back.a)",
|
|
182
|
-
],
|
|
183
|
-
// What is below inverted, as far as the object covers it.
|
|
184
|
-
invert: [
|
|
185
|
-
"vec4((back.a - back.rgb) * front.a + back.rgb * (1.0 - front.a), back.a)",
|
|
186
|
-
"vec4<f32>((back.a - back.rgb) * front.a + back.rgb * (1.0 - front.a), back.a)",
|
|
187
|
-
],
|
|
188
|
-
// The layer below takes the object's alpha where the object has any, or
|
|
189
|
-
// loses it; what the object leaves clear stays, as adl leaves it.
|
|
190
|
-
alpha: ["(front.a > 0.0 ? back * front.a : back)", "select(back, back * front.a, front.a > 0.0)"],
|
|
191
|
-
erase: ["back * (1.0 - front.a)", "back * (1.0 - front.a)"],
|
|
192
|
-
};
|
|
193
|
-
function blendFilter(mode) {
|
|
194
|
-
const special = SPECIAL[mode];
|
|
195
|
-
let gl;
|
|
196
|
-
let gpu;
|
|
197
|
-
if (special) {
|
|
198
|
-
gl = `finalColor = ${special[0]} * uBlend;`;
|
|
199
|
-
gpu = `out = ${special[1]} * blendUniforms.uBlend;`;
|
|
200
|
-
}
|
|
201
|
-
else {
|
|
202
|
-
const [glB, gpuB] = SEPARABLE[mode];
|
|
203
|
-
gl = `
|
|
204
|
-
vec3 cb = straight(back);
|
|
205
|
-
vec3 cf = straight(front);
|
|
206
|
-
vec3 co = front.rgb * (1.0 - back.a) + back.rgb * (1.0 - front.a) + front.a * back.a * (${glB});
|
|
207
|
-
finalColor = vec4(co, blendedAlpha) * uBlend;
|
|
208
|
-
`;
|
|
209
|
-
gpu = `
|
|
210
|
-
let cb = straight(back);
|
|
211
|
-
let cf = straight(front);
|
|
212
|
-
let co = front.rgb * (1.0 - back.a) + back.rgb * (1.0 - front.a) + front.a * back.a * (${gpuB});
|
|
213
|
-
out = vec4<f32>(co, blendedAlpha) * blendUniforms.uBlend;
|
|
214
|
-
`;
|
|
215
|
-
}
|
|
216
|
-
const filter = new BlendModeFilter({
|
|
217
|
-
gl: { functions: GL_FUNCTIONS, main: gl },
|
|
218
|
-
gpu: { functions: GPU_FUNCTIONS, main: gpu },
|
|
219
|
-
});
|
|
220
|
-
// At the target's resolution, as the stage is drawn; its result is the
|
|
221
|
-
// whole composite, back included, so it replaces what is there, which
|
|
222
|
-
// alpha and erase make more transparent.
|
|
223
|
-
filter.resolution = "inherit";
|
|
224
|
-
filter.antialias = "inherit";
|
|
225
|
-
filter.blendMode = "none";
|
|
226
|
-
return filter;
|
|
227
|
-
}
|
|
228
|
-
/** One filter a mode, shared by every object blended so. */
|
|
229
|
-
const filters = new Map();
|
|
230
|
-
/**
|
|
231
|
-
* The filters that composite an object in `mode`: none for normal; for
|
|
232
|
-
* layer one that only makes it a layer; for any other the mode's blend.
|
|
233
|
-
*/
|
|
234
|
-
export function blendFilters(mode) {
|
|
235
|
-
if (mode === "normal" || !(mode === "layer" || SEPARABLE[mode] || SPECIAL[mode])) {
|
|
236
|
-
return null;
|
|
237
|
-
}
|
|
238
|
-
let made = filters.get(mode);
|
|
239
|
-
if (!made) {
|
|
240
|
-
if (mode === "layer") {
|
|
241
|
-
const layer = new AlphaFilter({ alpha: 1 });
|
|
242
|
-
layer.resolution = "inherit";
|
|
243
|
-
layer.antialias = "inherit";
|
|
244
|
-
made = [layer];
|
|
245
|
-
}
|
|
246
|
-
else {
|
|
247
|
-
made = [blendFilter(mode)];
|
|
248
|
-
}
|
|
249
|
-
filters.set(mode, made);
|
|
250
|
-
}
|
|
251
|
-
return made;
|
|
252
|
-
}
|
|
253
|
-
//# sourceMappingURL=pixi-blend.js.map
|
package/dist/pixi-blend.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pixi-blend.js","sourceRoot":"","sources":["../src/pixi-blend.ts"],"names":[],"mappings":"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"}
|
package/dist/pixi-color.d.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import type { ColorTransform } from "@swf2es/format";
|
|
2
|
-
import { Batcher, type BatcherOptions, type Container, type DefaultBatchableMeshElement, type DefaultBatchableQuadElement, ExtensionType, Geometry, Graphics, type GraphicsContext, Shader } from "pixi.js";
|
|
3
|
-
declare class ColorShader extends Shader {
|
|
4
|
-
readonly maxTextures: number;
|
|
5
|
-
constructor(maxTextures: number);
|
|
6
|
-
}
|
|
7
|
-
declare class ColorGeometry extends Geometry {
|
|
8
|
-
constructor();
|
|
9
|
-
}
|
|
10
|
-
export declare class ColorBatcher extends Batcher {
|
|
11
|
-
static extension: {
|
|
12
|
-
type: ExtensionType[];
|
|
13
|
-
name: string;
|
|
14
|
-
};
|
|
15
|
-
name: string;
|
|
16
|
-
vertexSize: number;
|
|
17
|
-
geometry: ColorGeometry;
|
|
18
|
-
shader: ColorShader;
|
|
19
|
-
private underusedBuilds;
|
|
20
|
-
constructor(options: BatcherOptions);
|
|
21
|
-
begin(): void;
|
|
22
|
-
/** The vertex's colour, texture and transform after its position and UV, which `at` holds. */
|
|
23
|
-
private tail;
|
|
24
|
-
packAttributes(element: DefaultBatchableMeshElement, f32: Float32Array, u32: Uint32Array, index: number, textureId: number): void;
|
|
25
|
-
packQuadAttributes(element: DefaultBatchableQuadElement, f32: Float32Array, u32: Uint32Array, index: number, textureId: number): void;
|
|
26
|
-
}
|
|
27
|
-
/** A context destroyed: its batched copy too, if it has one. */
|
|
28
|
-
export declare function dropBatchedCopy(context: GraphicsContext): void;
|
|
29
|
-
/**
|
|
30
|
-
* A Graphics that may show another context than the one it stands for: the
|
|
31
|
-
* shared one it was given (`shared`), and `show` to draw another, as a
|
|
32
|
-
* shape's lines swap theirs (pixi.ts, SharedGraphics).
|
|
33
|
-
*/
|
|
34
|
-
export type SharingGraphics = Graphics & {
|
|
35
|
-
shared?: GraphicsContext;
|
|
36
|
-
show?: (context: GraphicsContext) => void;
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* The context a Graphics should draw under `ct`: an unbatched one, as a
|
|
40
|
-
* shape's are (pixi.ts), Pixi draws with its own shader, which has no
|
|
41
|
-
* colour transform, so under one it draws a batched copy. The context it
|
|
42
|
-
* stands for is shared by every instance of a character, and every text in
|
|
43
|
-
* a font, and is never changed: switched to batched, the Graphics of the
|
|
44
|
-
* others, made unbatched, drew nothing.
|
|
45
|
-
*/
|
|
46
|
-
export declare function showFor(g: SharingGraphics, ct: ColorTransform | null): void;
|
|
47
|
-
/**
|
|
48
|
-
* Draw `leaf` and what is in it under `ct`, or under Pixi's tint again for
|
|
49
|
-
* null. Moving between batchers rebuilds the render group's instructions;
|
|
50
|
-
* another transform in the same batcher packs the vertices again.
|
|
51
|
-
*/
|
|
52
|
-
export declare function setFlashColor(leaf: Container, ct: ColorTransform | null): void;
|
|
53
|
-
export {};
|
|
54
|
-
//# sourceMappingURL=pixi-color.d.ts.map
|
package/dist/pixi-color.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pixi-color.d.ts","sourceRoot":"","sources":["../src/pixi-color.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAGL,OAAO,EACP,KAAK,cAAc,EAGnB,KAAK,SAAS,EAGd,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,aAAa,EAEb,QAAQ,EACR,QAAQ,EACR,KAAK,eAAe,EAMpB,MAAM,EAEP,MAAM,SAAS,CAAC;AAqFjB,cAAM,WAAY,SAAQ,MAAM;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,YAAY,WAAW,EAAE,MAAM,EAa9B;CACF;AAED,cAAM,aAAc,SAAQ,QAAQ;IAClC,cAwBC;CACF;AAmCD,qBAAa,YAAa,SAAQ,OAAO;IACvC,MAAM,CAAC,SAAS;;;MAAiD;IAEjE,IAAI,SAAQ;IACZ,UAAU,SAAe;IACzB,QAAQ,gBAAuB;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,eAAe,CAAK;IAE5B,YAAY,OAAO,EAAE,cAAc,EAUlC;IAEQ,KAAK,IAAI,IAAI,CAkCrB;IAED,8FAA8F;IAC9F,OAAO,CAAC,IAAI;IAoBZ,cAAc,CACZ,OAAO,EAAE,2BAA2B,EACpC,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,IAAI,CAkBN;IAED,kBAAkB,CAChB,OAAO,EAAE,2BAA2B,EACpC,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,IAAI,CAmBN;CACF;AA4CD,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAM9D;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IACvC,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAY3E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAyB9E"}
|