@twick/2d 0.14.0 → 1.14.3
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/LICENSE +21 -21
- package/editor/editor/tsconfig.build.tsbuildinfo +1 -1
- package/lib/components/Audio.d.ts.map +1 -1
- package/lib/components/Audio.js +33 -3
- package/lib/components/CodeBlock.d.ts +1 -1
- package/lib/components/Img.js +23 -23
- package/lib/components/Line.js +31 -31
- package/lib/components/Media.d.ts +6 -0
- package/lib/components/Media.d.ts.map +1 -1
- package/lib/components/Media.js +277 -61
- package/lib/components/Node.d.ts +1 -1
- package/lib/components/Path.d.ts +1 -1
- package/lib/components/SVG.d.ts +1 -1
- package/lib/components/Shape.d.ts +1 -1
- package/lib/components/Spline.js +25 -25
- package/lib/components/Video.d.ts +0 -1
- package/lib/components/Video.d.ts.map +1 -1
- package/lib/components/Video.js +70 -65
- package/lib/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -5
- package/src/editor/NodeInspectorConfig.tsx +76 -76
- package/src/editor/PreviewOverlayConfig.tsx +67 -67
- package/src/editor/Provider.tsx +93 -93
- package/src/editor/SceneGraphTabConfig.tsx +81 -81
- package/src/editor/icons/CircleIcon.tsx +7 -7
- package/src/editor/icons/CodeBlockIcon.tsx +8 -8
- package/src/editor/icons/CurveIcon.tsx +7 -7
- package/src/editor/icons/GridIcon.tsx +7 -7
- package/src/editor/icons/IconMap.ts +35 -35
- package/src/editor/icons/ImgIcon.tsx +8 -8
- package/src/editor/icons/LayoutIcon.tsx +9 -9
- package/src/editor/icons/LineIcon.tsx +7 -7
- package/src/editor/icons/NodeIcon.tsx +7 -7
- package/src/editor/icons/RayIcon.tsx +7 -7
- package/src/editor/icons/RectIcon.tsx +7 -7
- package/src/editor/icons/ShapeIcon.tsx +7 -7
- package/src/editor/icons/TxtIcon.tsx +8 -8
- package/src/editor/icons/VideoIcon.tsx +7 -7
- package/src/editor/icons/View2DIcon.tsx +10 -10
- package/src/editor/index.ts +17 -17
- package/src/editor/tree/DetachedRoot.tsx +23 -23
- package/src/editor/tree/NodeElement.tsx +74 -74
- package/src/editor/tree/TreeElement.tsx +72 -72
- package/src/editor/tree/TreeRoot.tsx +10 -10
- package/src/editor/tree/ViewRoot.tsx +20 -20
- package/src/editor/tree/index.module.scss +38 -38
- package/src/editor/tree/index.ts +3 -3
- package/src/editor/tsconfig.build.json +5 -5
- package/src/editor/tsconfig.json +12 -12
- package/src/editor/tsdoc.json +4 -4
- package/src/editor/vite-env.d.ts +1 -1
- package/src/lib/code/CodeCursor.ts +445 -445
- package/src/lib/code/CodeDiffer.ts +78 -78
- package/src/lib/code/CodeFragment.ts +97 -97
- package/src/lib/code/CodeHighlighter.ts +75 -75
- package/src/lib/code/CodeMetrics.ts +47 -47
- package/src/lib/code/CodeRange.test.ts +74 -74
- package/src/lib/code/CodeRange.ts +216 -216
- package/src/lib/code/CodeScope.ts +101 -101
- package/src/lib/code/CodeSelection.ts +24 -24
- package/src/lib/code/CodeSignal.ts +327 -327
- package/src/lib/code/CodeTokenizer.ts +54 -54
- package/src/lib/code/DefaultHighlightStyle.ts +98 -98
- package/src/lib/code/LezerHighlighter.ts +113 -113
- package/src/lib/code/diff.test.ts +311 -311
- package/src/lib/code/diff.ts +319 -319
- package/src/lib/code/extractRange.ts +126 -126
- package/src/lib/code/index.ts +13 -13
- package/src/lib/components/Audio.ts +168 -131
- package/src/lib/components/Bezier.ts +105 -105
- package/src/lib/components/Circle.ts +266 -266
- package/src/lib/components/Code.ts +526 -526
- package/src/lib/components/CodeBlock.ts +576 -576
- package/src/lib/components/CubicBezier.ts +112 -112
- package/src/lib/components/Curve.ts +455 -455
- package/src/lib/components/Grid.ts +135 -135
- package/src/lib/components/Icon.ts +96 -96
- package/src/lib/components/Img.ts +319 -319
- package/src/lib/components/Knot.ts +157 -157
- package/src/lib/components/Latex.ts +122 -122
- package/src/lib/components/Layout.ts +1092 -1092
- package/src/lib/components/Line.ts +429 -429
- package/src/lib/components/Media.ts +576 -346
- package/src/lib/components/Node.ts +1940 -1940
- package/src/lib/components/Path.ts +137 -137
- package/src/lib/components/Polygon.ts +171 -171
- package/src/lib/components/QuadBezier.ts +100 -100
- package/src/lib/components/Ray.ts +125 -125
- package/src/lib/components/Rect.ts +187 -187
- package/src/lib/components/Rive.ts +156 -156
- package/src/lib/components/SVG.ts +797 -797
- package/src/lib/components/Shape.ts +143 -143
- package/src/lib/components/Spline.ts +344 -344
- package/src/lib/components/Txt.test.tsx +81 -81
- package/src/lib/components/Txt.ts +203 -203
- package/src/lib/components/TxtLeaf.ts +205 -205
- package/src/lib/components/Video.ts +461 -462
- package/src/lib/components/View2D.ts +98 -98
- package/src/lib/components/__tests__/children.test.tsx +142 -142
- package/src/lib/components/__tests__/clone.test.tsx +126 -126
- package/src/lib/components/__tests__/generatorTest.ts +28 -28
- package/src/lib/components/__tests__/mockScene2D.ts +45 -45
- package/src/lib/components/__tests__/query.test.tsx +122 -122
- package/src/lib/components/__tests__/state.test.tsx +60 -60
- package/src/lib/components/index.ts +28 -28
- package/src/lib/components/types.ts +35 -35
- package/src/lib/curves/ArcSegment.ts +159 -159
- package/src/lib/curves/CircleSegment.ts +77 -77
- package/src/lib/curves/CubicBezierSegment.ts +78 -78
- package/src/lib/curves/CurveDrawingInfo.ts +11 -11
- package/src/lib/curves/CurvePoint.ts +15 -15
- package/src/lib/curves/CurveProfile.ts +7 -7
- package/src/lib/curves/KnotInfo.ts +10 -10
- package/src/lib/curves/LineSegment.ts +62 -62
- package/src/lib/curves/Polynomial.ts +355 -355
- package/src/lib/curves/Polynomial2D.ts +62 -62
- package/src/lib/curves/PolynomialSegment.ts +124 -124
- package/src/lib/curves/QuadBezierSegment.ts +64 -64
- package/src/lib/curves/Segment.ts +17 -17
- package/src/lib/curves/UniformPolynomialCurveSampler.ts +94 -94
- package/src/lib/curves/createCurveProfileLerp.ts +471 -471
- package/src/lib/curves/getBezierSplineProfile.ts +223 -223
- package/src/lib/curves/getCircleProfile.ts +86 -86
- package/src/lib/curves/getPathProfile.ts +178 -178
- package/src/lib/curves/getPointAtDistance.ts +21 -21
- package/src/lib/curves/getPolylineProfile.test.ts +21 -21
- package/src/lib/curves/getPolylineProfile.ts +89 -89
- package/src/lib/curves/getRectProfile.ts +139 -139
- package/src/lib/curves/index.ts +16 -16
- package/src/lib/decorators/canvasStyleSignal.ts +16 -16
- package/src/lib/decorators/colorSignal.ts +9 -9
- package/src/lib/decorators/compound.ts +72 -72
- package/src/lib/decorators/computed.ts +18 -18
- package/src/lib/decorators/defaultStyle.ts +18 -18
- package/src/lib/decorators/filtersSignal.ts +136 -136
- package/src/lib/decorators/index.ts +10 -10
- package/src/lib/decorators/initializers.ts +32 -32
- package/src/lib/decorators/nodeName.ts +13 -13
- package/src/lib/decorators/signal.test.ts +90 -90
- package/src/lib/decorators/signal.ts +345 -345
- package/src/lib/decorators/spacingSignal.ts +15 -15
- package/src/lib/decorators/vector2Signal.ts +30 -30
- package/src/lib/globals.d.ts +2 -2
- package/src/lib/index.ts +8 -8
- package/src/lib/jsx-dev-runtime.ts +2 -2
- package/src/lib/jsx-runtime.ts +46 -46
- package/src/lib/parse-svg-path.d.ts +14 -14
- package/src/lib/partials/Filter.ts +180 -180
- package/src/lib/partials/Gradient.ts +102 -102
- package/src/lib/partials/Pattern.ts +34 -34
- package/src/lib/partials/ShaderConfig.ts +117 -117
- package/src/lib/partials/index.ts +4 -4
- package/src/lib/partials/types.ts +58 -58
- package/src/lib/scenes/Scene2D.ts +242 -242
- package/src/lib/scenes/index.ts +3 -3
- package/src/lib/scenes/makeScene2D.ts +16 -16
- package/src/lib/scenes/useScene2D.ts +6 -6
- package/src/lib/tsconfig.build.json +5 -5
- package/src/lib/tsconfig.json +10 -10
- package/src/lib/tsdoc.json +4 -4
- package/src/lib/utils/CanvasUtils.ts +306 -306
- package/src/lib/utils/diff.test.ts +453 -453
- package/src/lib/utils/diff.ts +148 -148
- package/src/lib/utils/index.ts +2 -2
- package/src/lib/utils/is.ts +11 -11
- package/src/lib/utils/makeSignalExtensions.ts +30 -30
- package/src/lib/utils/video/declarations.d.ts +1 -1
- package/src/lib/utils/video/ffmpeg-client.ts +50 -50
- package/src/lib/utils/video/mp4-parser-manager.ts +72 -72
- package/src/lib/utils/video/parser/index.ts +1 -1
- package/src/lib/utils/video/parser/parser.ts +257 -257
- package/src/lib/utils/video/parser/sampler.ts +72 -72
- package/src/lib/utils/video/parser/segment.ts +302 -302
- package/src/lib/utils/video/parser/sink.ts +29 -29
- package/src/lib/utils/video/parser/utils.ts +31 -31
- package/src/tsconfig.base.json +19 -19
- package/src/tsconfig.build.json +8 -8
- package/src/tsconfig.json +5 -5
- package/tsconfig.project.json +7 -7
- package/lib/components/utils/waitUntil.d.ts +0 -7
- package/lib/components/utils/waitUntil.d.ts.map +0 -1
- package/lib/components/utils/waitUntil.js +0 -15
- package/lib/utils/waitUntil.d.ts +0 -7
- package/lib/utils/waitUntil.d.ts.map +0 -1
- package/lib/utils/waitUntil.js +0 -15
- package/src/lib/utils/waitUntil.ts +0 -18
package/lib/components/Media.js
CHANGED
|
@@ -8,33 +8,34 @@ var Media_1;
|
|
|
8
8
|
import { DependencyContext, PlaybackState, clamp, isReactive, useLogger, useThread, } from '@twick/core';
|
|
9
9
|
import { computed, initial, nodeName, signal } from '../decorators';
|
|
10
10
|
import { Rect } from './Rect';
|
|
11
|
-
const reactivePlaybackRate = `
|
|
12
|
-
The \`playbackRate\` of a \`Video\` cannot be reactive.
|
|
13
|
-
|
|
14
|
-
Make sure to use a concrete value and not a function:
|
|
15
|
-
|
|
16
|
-
\`\`\`ts wrong
|
|
17
|
-
video.playbackRate(() => 7);
|
|
18
|
-
\`\`\`
|
|
19
|
-
|
|
20
|
-
\`\`\`ts correct
|
|
21
|
-
video.playbackRate(7);
|
|
22
|
-
\`\`\`
|
|
23
|
-
|
|
24
|
-
If you're using a signal, extract its value before passing it to the property:
|
|
25
|
-
|
|
26
|
-
\`\`\`ts wrong
|
|
27
|
-
video.playbackRate(mySignal);
|
|
28
|
-
\`\`\`
|
|
29
|
-
|
|
30
|
-
\`\`\`ts correct
|
|
31
|
-
video.playbackRate(mySignal());
|
|
32
|
-
\`\`\`
|
|
11
|
+
const reactivePlaybackRate = `
|
|
12
|
+
The \`playbackRate\` of a \`Video\` cannot be reactive.
|
|
13
|
+
|
|
14
|
+
Make sure to use a concrete value and not a function:
|
|
15
|
+
|
|
16
|
+
\`\`\`ts wrong
|
|
17
|
+
video.playbackRate(() => 7);
|
|
18
|
+
\`\`\`
|
|
19
|
+
|
|
20
|
+
\`\`\`ts correct
|
|
21
|
+
video.playbackRate(7);
|
|
22
|
+
\`\`\`
|
|
23
|
+
|
|
24
|
+
If you're using a signal, extract its value before passing it to the property:
|
|
25
|
+
|
|
26
|
+
\`\`\`ts wrong
|
|
27
|
+
video.playbackRate(mySignal);
|
|
28
|
+
\`\`\`
|
|
29
|
+
|
|
30
|
+
\`\`\`ts correct
|
|
31
|
+
video.playbackRate(mySignal());
|
|
32
|
+
\`\`\`
|
|
33
33
|
`;
|
|
34
34
|
let Media = Media_1 = class Media extends Rect {
|
|
35
35
|
constructor(props) {
|
|
36
36
|
super(props);
|
|
37
37
|
this.lastTime = -1;
|
|
38
|
+
this.isSchedulingPlay = false;
|
|
38
39
|
if (!this.awaitCanPlay()) {
|
|
39
40
|
this.scheduleSeek(this.time());
|
|
40
41
|
}
|
|
@@ -42,7 +43,10 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
42
43
|
this.play();
|
|
43
44
|
}
|
|
44
45
|
this.volume = props.volume ?? 1;
|
|
45
|
-
|
|
46
|
+
// Only set volume immediately if media is ready
|
|
47
|
+
if (!this.awaitCanPlay()) {
|
|
48
|
+
this.setVolume(this.volume);
|
|
49
|
+
}
|
|
46
50
|
}
|
|
47
51
|
isPlaying() {
|
|
48
52
|
return this.playing();
|
|
@@ -51,16 +55,33 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
51
55
|
return this.clampTime(this.time());
|
|
52
56
|
}
|
|
53
57
|
getDuration() {
|
|
54
|
-
|
|
58
|
+
try {
|
|
59
|
+
const mElement = this.mediaElement();
|
|
60
|
+
const isVideo = (mElement instanceof HTMLVideoElement);
|
|
61
|
+
const isAudio = (mElement instanceof HTMLAudioElement);
|
|
62
|
+
return (this.isIOS() && (isVideo || isAudio)) ? 2 /** dummy duration for iOS */ : mElement.duration;
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
// If media element is not ready yet, return a default duration
|
|
66
|
+
return 0;
|
|
67
|
+
}
|
|
55
68
|
}
|
|
56
69
|
getVolume() {
|
|
57
70
|
return this.volume;
|
|
58
71
|
}
|
|
59
72
|
getUrl() {
|
|
60
|
-
|
|
73
|
+
try {
|
|
74
|
+
return this.mediaElement().src;
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
// If media element is not ready yet, return the src signal value
|
|
78
|
+
return this.src();
|
|
79
|
+
}
|
|
61
80
|
}
|
|
62
81
|
dispose() {
|
|
63
|
-
|
|
82
|
+
// Set playing state to false without trying to access media element
|
|
83
|
+
this.playing(false);
|
|
84
|
+
this.time.save();
|
|
64
85
|
this.remove();
|
|
65
86
|
super.dispose();
|
|
66
87
|
}
|
|
@@ -68,33 +89,47 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
68
89
|
return this.clampTime(this.time()) / this.getDuration();
|
|
69
90
|
}
|
|
70
91
|
setCurrentTime(value) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
92
|
+
try {
|
|
93
|
+
const media = this.mediaElement();
|
|
94
|
+
if (media.readyState < 2)
|
|
95
|
+
return;
|
|
96
|
+
media.currentTime = value;
|
|
97
|
+
this.lastTime = value;
|
|
98
|
+
if (media.seeking) {
|
|
99
|
+
DependencyContext.collectPromise(new Promise(resolve => {
|
|
100
|
+
const listener = () => {
|
|
101
|
+
resolve();
|
|
102
|
+
media.removeEventListener('seeked', listener);
|
|
103
|
+
};
|
|
104
|
+
media.addEventListener('seeked', listener);
|
|
105
|
+
}));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
// If media element is not ready yet, just update the lastTime
|
|
110
|
+
this.lastTime = value;
|
|
84
111
|
}
|
|
85
112
|
}
|
|
86
113
|
setVolume(volume) {
|
|
87
114
|
if (volume < 0) {
|
|
88
115
|
console.warn(`volumes cannot be negative - the value will be clamped to 0.`);
|
|
89
116
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
117
|
+
// Store the volume value
|
|
118
|
+
this.volume = volume;
|
|
119
|
+
try {
|
|
120
|
+
const media = this.mediaElement();
|
|
121
|
+
media.volume = Math.min(Math.max(volume, 0), 1);
|
|
122
|
+
if (volume > 1) {
|
|
123
|
+
if (this.allowVolumeAmplificationInPreview()) {
|
|
124
|
+
this.amplify(media, volume);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
console.warn(`you have set the volume of node ${this.key} to ${volume} - your video will be exported with the correct volume, but the browser does not support volumes higher than 1 by default. To enable volume amplification in the preview, set the "allowVolumeAmplificationInPreview" of your <Video/> or <Audio/> tag to true. Note that amplification for previews will not work if you use autoplay within the player due to browser autoplay policies: https://developer.chrome.com/blog/autoplay/#webaudio.`);
|
|
96
128
|
}
|
|
97
|
-
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
// If media element is not ready yet, just store the volume
|
|
132
|
+
// It will be applied when the media becomes available via collectAsyncResources
|
|
98
133
|
}
|
|
99
134
|
}
|
|
100
135
|
amplify(node, volume) {
|
|
@@ -148,12 +183,22 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
148
183
|
}
|
|
149
184
|
}
|
|
150
185
|
scheduleSeek(time) {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
186
|
+
// Defer the media element access to avoid immediate async property access
|
|
187
|
+
setTimeout(() => {
|
|
188
|
+
try {
|
|
189
|
+
const media = this.mediaElement();
|
|
190
|
+
// Use the existing waitForCanPlay method which handles readiness properly
|
|
191
|
+
this.waitForCanPlay(media, () => {
|
|
192
|
+
// Wait until the media is ready to seek again as
|
|
193
|
+
// setting the time before the video doesn't work reliably.
|
|
194
|
+
media.currentTime = time;
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
// If media element is not ready yet, retry after a longer delay
|
|
199
|
+
setTimeout(() => this.scheduleSeek(time), 50);
|
|
200
|
+
}
|
|
201
|
+
}, 0);
|
|
157
202
|
}
|
|
158
203
|
/**
|
|
159
204
|
* Waits for the canplay event to be fired before calling onCanPlay.
|
|
@@ -163,20 +208,28 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
163
208
|
* @returns
|
|
164
209
|
*/
|
|
165
210
|
waitForCanPlay(media, onCanPlay) {
|
|
166
|
-
|
|
211
|
+
// Be more strict - require readyState >= 3 (HAVE_FUTURE_DATA) for better reliability
|
|
212
|
+
if (media.readyState >= 3) {
|
|
167
213
|
onCanPlay();
|
|
168
214
|
return;
|
|
169
215
|
}
|
|
170
216
|
const onCanPlayWrapper = () => {
|
|
171
217
|
onCanPlay();
|
|
172
218
|
media.removeEventListener('canplay', onCanPlayWrapper);
|
|
219
|
+
media.removeEventListener('canplaythrough', onCanPlayWrapper);
|
|
173
220
|
};
|
|
174
221
|
const onError = () => {
|
|
175
222
|
const reason = this.getErrorReason(media.error?.code);
|
|
176
|
-
|
|
223
|
+
const srcValue = this.src();
|
|
224
|
+
console.log(`ERROR: Error loading video: src="${srcValue}", ${reason}`);
|
|
225
|
+
console.log(`Media element src: "${media.src}"`);
|
|
177
226
|
media.removeEventListener('error', onError);
|
|
227
|
+
media.removeEventListener('canplay', onCanPlayWrapper);
|
|
228
|
+
media.removeEventListener('canplaythrough', onCanPlayWrapper);
|
|
178
229
|
};
|
|
230
|
+
// Listen for both canplay and canplaythrough events
|
|
179
231
|
media.addEventListener('canplay', onCanPlayWrapper);
|
|
232
|
+
media.addEventListener('canplaythrough', onCanPlayWrapper);
|
|
180
233
|
media.addEventListener('error', onError);
|
|
181
234
|
}
|
|
182
235
|
/**
|
|
@@ -190,17 +243,151 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
190
243
|
this.view().playbackState() === PlaybackState.Rendering);
|
|
191
244
|
}
|
|
192
245
|
play() {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
const offset = this.time();
|
|
196
|
-
const playbackRate = this.playbackRate();
|
|
246
|
+
console.log('=== Media.play() called ===');
|
|
247
|
+
// Set the playing state first
|
|
197
248
|
this.playing(true);
|
|
198
|
-
|
|
249
|
+
// Schedule the actual play operation for when media is ready
|
|
250
|
+
this.schedulePlay();
|
|
251
|
+
}
|
|
252
|
+
schedulePlay() {
|
|
253
|
+
// Prevent recursive calls
|
|
254
|
+
if (this.isSchedulingPlay) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
this.isSchedulingPlay = true;
|
|
258
|
+
// Check if thread context is available before accessing it
|
|
259
|
+
let timeFunction = null;
|
|
260
|
+
try {
|
|
261
|
+
const time = useThread().time;
|
|
262
|
+
timeFunction = time;
|
|
263
|
+
}
|
|
264
|
+
catch (error) {
|
|
265
|
+
// Reset flag and use simple play without thread time
|
|
266
|
+
this.isSchedulingPlay = false;
|
|
267
|
+
this.simplePlay();
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
// We need to wait for the media to be ready before we can play it
|
|
271
|
+
// Use a setTimeout to defer the operation and avoid immediate async property access
|
|
272
|
+
setTimeout(() => {
|
|
273
|
+
// Check if we're still supposed to be playing (avoid race conditions)
|
|
274
|
+
const isPlaying = this.playing();
|
|
275
|
+
if (!isPlaying) {
|
|
276
|
+
this.isSchedulingPlay = false;
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
// Add another timeout to further defer media element access
|
|
280
|
+
setTimeout(() => {
|
|
281
|
+
try {
|
|
282
|
+
const media = this.mediaElement();
|
|
283
|
+
// Always use waitForCanPlay to ensure media is ready
|
|
284
|
+
this.waitForCanPlay(media, () => {
|
|
285
|
+
// Double-check we're still playing before calling actuallyPlay
|
|
286
|
+
if (this.playing() && timeFunction) {
|
|
287
|
+
this.actuallyPlay(media, timeFunction);
|
|
288
|
+
}
|
|
289
|
+
// Reset the flag when done
|
|
290
|
+
this.isSchedulingPlay = false;
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
catch (error) {
|
|
294
|
+
// Reset flag before retry
|
|
295
|
+
this.isSchedulingPlay = false;
|
|
296
|
+
// If media is not ready yet, retry after a longer delay
|
|
297
|
+
setTimeout(() => this.schedulePlay(), 100);
|
|
298
|
+
}
|
|
299
|
+
}, 10);
|
|
300
|
+
}, 0);
|
|
301
|
+
}
|
|
302
|
+
simplePlay() {
|
|
303
|
+
setTimeout(() => {
|
|
304
|
+
try {
|
|
305
|
+
const media = this.mediaElement();
|
|
306
|
+
// Guard against undefined src
|
|
307
|
+
if (!media.src || media.src.includes('undefined')) {
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
if (media.paused && this.playing()) {
|
|
311
|
+
media.playbackRate = this.playbackRate();
|
|
312
|
+
const playPromise = media.play();
|
|
313
|
+
if (playPromise !== undefined) {
|
|
314
|
+
playPromise.then(() => {
|
|
315
|
+
console.log('Simple play started successfully');
|
|
316
|
+
}).catch(error => {
|
|
317
|
+
if (error.name !== 'AbortError') {
|
|
318
|
+
console.warn('Error in simple play:', error);
|
|
319
|
+
}
|
|
320
|
+
this.playing(false);
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
catch (error) {
|
|
326
|
+
// Stop retries for errors
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
}, 10);
|
|
330
|
+
}
|
|
331
|
+
actuallyPlay(media, timeFunction) {
|
|
332
|
+
console.log('=== actuallyPlay called ===');
|
|
333
|
+
console.log('Media element:', media);
|
|
334
|
+
console.log('Media src:', media.src);
|
|
335
|
+
console.log('Media paused:', media.paused);
|
|
336
|
+
console.log('Media readyState:', media.readyState);
|
|
337
|
+
// Make sure we're still supposed to be playing
|
|
338
|
+
if (!this.playing()) {
|
|
339
|
+
console.log('Playing state is false, aborting actuallyPlay');
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
// Set playback rate on media element
|
|
343
|
+
media.playbackRate = this.playbackRate();
|
|
344
|
+
// Ensure the media is ready to play
|
|
345
|
+
if (media.paused) {
|
|
346
|
+
console.log('Media is paused, calling play()');
|
|
347
|
+
// Start playing the media element
|
|
348
|
+
const playPromise = media.play();
|
|
349
|
+
if (playPromise !== undefined) {
|
|
350
|
+
playPromise.then(() => {
|
|
351
|
+
console.log('Media play() promise resolved - should be playing now');
|
|
352
|
+
console.log('Post-play media paused:', media.paused);
|
|
353
|
+
console.log('Post-play media currentTime:', media.currentTime);
|
|
354
|
+
}).catch(error => {
|
|
355
|
+
// Don't warn about AbortError - it's normal when play() is interrupted by pause()
|
|
356
|
+
if (error.name !== 'AbortError') {
|
|
357
|
+
console.warn('Error playing media:', error);
|
|
358
|
+
}
|
|
359
|
+
this.playing(false);
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
console.log('Media is already playing');
|
|
365
|
+
}
|
|
366
|
+
// Set up time synchronization
|
|
367
|
+
const start = timeFunction();
|
|
368
|
+
const offset = media.currentTime;
|
|
369
|
+
// Update time signal
|
|
370
|
+
this.time(() => {
|
|
371
|
+
const newTime = this.clampTime(offset + (timeFunction() - start) * this.playbackRate());
|
|
372
|
+
return newTime;
|
|
373
|
+
});
|
|
199
374
|
}
|
|
200
375
|
pause() {
|
|
376
|
+
// Set the playing state first
|
|
201
377
|
this.playing(false);
|
|
202
378
|
this.time.save();
|
|
203
|
-
|
|
379
|
+
// Try to pause the media element if it's available
|
|
380
|
+
// Use setTimeout to defer access and avoid async property issues
|
|
381
|
+
setTimeout(() => {
|
|
382
|
+
try {
|
|
383
|
+
const media = this.mediaElement();
|
|
384
|
+
media.pause();
|
|
385
|
+
}
|
|
386
|
+
catch (error) {
|
|
387
|
+
// If media element is not ready yet, just update the state
|
|
388
|
+
// The media won't be playing anyway if it's not ready
|
|
389
|
+
}
|
|
390
|
+
}, 0);
|
|
204
391
|
}
|
|
205
392
|
clampTime(time) {
|
|
206
393
|
const duration = this.getDuration();
|
|
@@ -212,6 +399,26 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
212
399
|
collectAsyncResources() {
|
|
213
400
|
super.collectAsyncResources();
|
|
214
401
|
this.seekedMedia();
|
|
402
|
+
// Ensure volume is set when media becomes available
|
|
403
|
+
this.setVolume(this.volume);
|
|
404
|
+
}
|
|
405
|
+
autoPlayBasedOnTwick() {
|
|
406
|
+
// Auto-start/stop playback based on Twick's playback state
|
|
407
|
+
const playbackState = this.view().playbackState();
|
|
408
|
+
// console.log('autoPlayBasedOnTwick called:', {
|
|
409
|
+
// playbackState,
|
|
410
|
+
// currentlyPlaying: this.playing(),
|
|
411
|
+
// shouldAutoPlay: (playbackState === PlaybackState.Playing || playbackState === PlaybackState.Presenting) && !this.playing(),
|
|
412
|
+
// shouldAutoPause: playbackState === PlaybackState.Paused && this.playing()
|
|
413
|
+
// });
|
|
414
|
+
if ((playbackState === PlaybackState.Playing || playbackState === PlaybackState.Presenting) && !this.playing()) {
|
|
415
|
+
console.log('Auto-starting media playback via play() method');
|
|
416
|
+
this.play(); // Call the full play() method instead of just setting playing(true)
|
|
417
|
+
}
|
|
418
|
+
else if (playbackState === PlaybackState.Paused && this.playing()) {
|
|
419
|
+
console.log('Auto-pausing media playback via pause() method');
|
|
420
|
+
this.pause(); // Call the full pause() method
|
|
421
|
+
}
|
|
215
422
|
}
|
|
216
423
|
getErrorReason(errCode) {
|
|
217
424
|
let reason;
|
|
@@ -235,9 +442,18 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
235
442
|
}
|
|
236
443
|
return reason;
|
|
237
444
|
}
|
|
445
|
+
// Helper method to check if running on iOS
|
|
446
|
+
isIOS() {
|
|
447
|
+
if (typeof navigator === 'undefined')
|
|
448
|
+
return false;
|
|
449
|
+
const isIos = /iPad|iPhone|iPod/.test(navigator.userAgent) ||
|
|
450
|
+
(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
|
|
451
|
+
return isIos;
|
|
452
|
+
}
|
|
238
453
|
};
|
|
239
454
|
Media.amplificationPool = {};
|
|
240
455
|
__decorate([
|
|
456
|
+
initial(''),
|
|
241
457
|
signal()
|
|
242
458
|
], Media.prototype, "src", void 0);
|
|
243
459
|
__decorate([
|
|
@@ -274,4 +490,4 @@ Media = Media_1 = __decorate([
|
|
|
274
490
|
nodeName('Media')
|
|
275
491
|
], Media);
|
|
276
492
|
export { Media };
|
|
277
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVkaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvTWVkaWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsYUFBYSxFQUNiLEtBQUssRUFDTCxVQUFVLEVBQ1YsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFhNUIsTUFBTSxvQkFBb0IsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCNUIsQ0FBQztBQUdLLElBQWUsS0FBSyxhQUFwQixNQUFlLEtBQU0sU0FBUSxJQUFJO0lBMkN0QyxZQUFtQixLQUFpQjtRQUNsQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFITCxhQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFJdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sY0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxT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
|
|
493
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVkaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvTWVkaWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsYUFBYSxFQUNiLEtBQUssRUFDTCxVQUFVLEVBQ1YsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFhNUIsTUFBTSxvQkFBb0IsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCNUIsQ0FBQztBQUdLLElBQWUsS0FBSyxhQUFwQixNQUFlLEtBQU0sU0FBUSxJQUFJO0lBNkN0QyxZQUFtQixLQUFpQjtRQUNsQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFKTCxhQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBSy9CLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2hDLGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsQ0FBQztJ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
|
package/lib/components/Node.d.ts
CHANGED
|
@@ -232,7 +232,7 @@ export declare class Node implements Promisable<Node> {
|
|
|
232
232
|
readonly composite: SimpleSignal<boolean, this>;
|
|
233
233
|
readonly compositeOperation: SimpleSignal<GlobalCompositeOperation, this>;
|
|
234
234
|
private readonly compositeOverride;
|
|
235
|
-
protected tweenCompositeOperation(value: SignalValue<GlobalCompositeOperation>, time: number, timingFunction: TimingFunction): Generator<void | Promise<any> |
|
|
235
|
+
protected tweenCompositeOperation(value: SignalValue<GlobalCompositeOperation>, time: number, timingFunction: TimingFunction): Generator<void | ThreadGenerator | Promise<any> | Promisable<any>, void, any>;
|
|
236
236
|
/**
|
|
237
237
|
* Represents the opacity of this node in the range 0-1.
|
|
238
238
|
*
|
package/lib/components/Path.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare class Path extends Curve {
|
|
|
14
14
|
protected childrenBBox(): BBox;
|
|
15
15
|
protected lineWidthCoefficient(): number;
|
|
16
16
|
protected processSubpath(path: Path2D, startPoint: Vector2 | null, endPoint: Vector2 | null): void;
|
|
17
|
-
protected tweenData(newPath: SignalValue<string>, time: number, timingFunction: TimingFunction): Generator<void |
|
|
17
|
+
protected tweenData(newPath: SignalValue<string>, time: number, timingFunction: TimingFunction): Generator<void | import("@twick/core").ThreadGenerator | Promise<any> | import("@twick/core").Promisable<any>, void, any>;
|
|
18
18
|
drawOverlay(context: CanvasRenderingContext2D, matrix: DOMMatrix): void;
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=Path.d.ts.map
|
package/lib/components/SVG.d.ts
CHANGED
|
@@ -98,7 +98,7 @@ export declare class SVG extends Shape {
|
|
|
98
98
|
* @param timing - The timing function.
|
|
99
99
|
*/
|
|
100
100
|
protected generateTransformer(from: Node, to: Node, duration: number, timing: TimingFunction): Generator<ThreadGenerator>;
|
|
101
|
-
protected tweenSvg(value: SignalValue<string>, time: number, timingFunction: TimingFunction): Generator<void | Promise<any> |
|
|
101
|
+
protected tweenSvg(value: SignalValue<string>, time: number, timingFunction: TimingFunction): Generator<void | ThreadGenerator | Promise<any> | import("@twick/core").Promisable<any>, void, any>;
|
|
102
102
|
private wrapperScale;
|
|
103
103
|
/**
|
|
104
104
|
* Get the current `SVGDocument`.
|
|
@@ -35,6 +35,6 @@ export declare abstract class Shape extends Layout {
|
|
|
35
35
|
protected getPath(): Path2D;
|
|
36
36
|
protected getRipplePath(): Path2D;
|
|
37
37
|
protected drawRipple(context: CanvasRenderingContext2D): void;
|
|
38
|
-
ripple(duration?: number): Generator<void |
|
|
38
|
+
ripple(duration?: number): Generator<void | import("@twick/core").ThreadGenerator | Promise<any> | import("@twick/core").Promisable<any>, void, any>;
|
|
39
39
|
}
|
|
40
40
|
//# sourceMappingURL=Shape.d.ts.map
|
package/lib/components/Spline.js
CHANGED
|
@@ -10,31 +10,31 @@ import { computed, initial, signal } from '../decorators';
|
|
|
10
10
|
import { arc, bezierCurveTo, drawLine, drawPivot, lineTo, moveTo, quadraticCurveTo, } from '../utils';
|
|
11
11
|
import { Curve } from './Curve';
|
|
12
12
|
import { Knot } from './Knot';
|
|
13
|
-
const splineWithInsufficientKnots = `
|
|
14
|
-
The spline won't be visible unless you specify at least two knots:
|
|
15
|
-
|
|
16
|
-
\`\`\`tsx
|
|
17
|
-
<Spline
|
|
18
|
-
stroke="#fff"
|
|
19
|
-
lineWidth={8}
|
|
20
|
-
points={[
|
|
21
|
-
[100, 0],
|
|
22
|
-
[0, 0],
|
|
23
|
-
[0, 100],
|
|
24
|
-
]}
|
|
25
|
-
/>
|
|
26
|
-
\`\`\`
|
|
27
|
-
|
|
28
|
-
For more control over the knot handles, you can alternatively provide the knots
|
|
29
|
-
as children to the spline using the \`Knot\` component:
|
|
30
|
-
|
|
31
|
-
\`\`\`tsx
|
|
32
|
-
<Spline stroke="#fff" lineWidth={8}>
|
|
33
|
-
<Knot x={100} endHandle={[-50, 0]} />
|
|
34
|
-
<Knot />
|
|
35
|
-
<Knot y={100} startHandle={[-100, 50]} />
|
|
36
|
-
</Spline>
|
|
37
|
-
\`\`\`
|
|
13
|
+
const splineWithInsufficientKnots = `
|
|
14
|
+
The spline won't be visible unless you specify at least two knots:
|
|
15
|
+
|
|
16
|
+
\`\`\`tsx
|
|
17
|
+
<Spline
|
|
18
|
+
stroke="#fff"
|
|
19
|
+
lineWidth={8}
|
|
20
|
+
points={[
|
|
21
|
+
[100, 0],
|
|
22
|
+
[0, 0],
|
|
23
|
+
[0, 100],
|
|
24
|
+
]}
|
|
25
|
+
/>
|
|
26
|
+
\`\`\`
|
|
27
|
+
|
|
28
|
+
For more control over the knot handles, you can alternatively provide the knots
|
|
29
|
+
as children to the spline using the \`Knot\` component:
|
|
30
|
+
|
|
31
|
+
\`\`\`tsx
|
|
32
|
+
<Spline stroke="#fff" lineWidth={8}>
|
|
33
|
+
<Knot x={100} endHandle={[-50, 0]} />
|
|
34
|
+
<Knot />
|
|
35
|
+
<Knot y={100} startHandle={[-100, 50]} />
|
|
36
|
+
</Spline>
|
|
37
|
+
\`\`\`
|
|
38
38
|
`;
|
|
39
39
|
/**
|
|
40
40
|
* A node for drawing a smooth line through a number of points.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Video.d.ts","sourceRoot":"","sources":["../../src/lib/components/Video.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAI9E,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAI/C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Video.d.ts","sourceRoot":"","sources":["../../src/lib/components/Video.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAI9E,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAI/C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;CACzD;AAED,qBACa,KAAM,SAAQ,KAAK;IAC9B;;;;;;OAMG;IACH,SAEwB,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1D;;;;;;;;OAQG;IACH,SAEwB,SAAS,EAAE,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE/D;;;;;;;OAOG;IACH,SAEwB,OAAO,EAAE,YAAY,CAC3C,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,EAChC,IAAI,CACL,CAAC;IAEK,gBAAgB,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CACvD;IACZ,OAAO,CAAC,mBAAmB,CAAkB;IAE7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAwC;IAEpE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAEb;gBAEV,KAAK,EAAE,UAAU;cAIjB,WAAW,IAAI,iBAAiB,CAAC,aAAa,CAAC;IAalE,SAAS,CAAC,YAAY,IAAI,gBAAgB;IAI1C,SAAS,CAAC,WAAW,IAAI,gBAAgB;IAIzC,SAAS,CAAC,eAAe,IAAI,gBAAgB;IAK7C,OAAO,CAAC,KAAK;IAuFb,SAAS,CAAC,WAAW,IAAI,gBAAgB;IAoBzC,SAAS,CAAC,eAAe,IAAI,gBAAgB;IAiC7C,SAAS,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAQ;cAE/B,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,CAAC;cAcjD,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC;cA8BzC,YAAY;cA4CH,IAAI,CAAC,OAAO,EAAE,wBAAwB;cA2B5C,SAAS;IAgBZ,MAAM;IAMtB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,cAAc;CAkEvB"}
|