@editframe/elements 0.26.2-beta.0 → 0.26.4-beta.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.
- package/dist/elements/EFTimegroup.js +7 -2
- package/dist/elements/EFTimegroup.js.map +1 -1
- package/package.json +2 -2
- package/scripts/build-css.js +3 -3
- package/tsdown.config.ts +1 -1
- package/types.json +1 -1
- package/src/elements/ContextProxiesController.ts +0 -124
- package/src/elements/CrossUpdateController.ts +0 -22
- package/src/elements/EFAudio.browsertest.ts +0 -706
- package/src/elements/EFAudio.ts +0 -56
- package/src/elements/EFCaptions.browsertest.ts +0 -1960
- package/src/elements/EFCaptions.ts +0 -823
- package/src/elements/EFImage.browsertest.ts +0 -120
- package/src/elements/EFImage.ts +0 -113
- package/src/elements/EFMedia/AssetIdMediaEngine.test.ts +0 -224
- package/src/elements/EFMedia/AssetIdMediaEngine.ts +0 -110
- package/src/elements/EFMedia/AssetMediaEngine.browsertest.ts +0 -140
- package/src/elements/EFMedia/AssetMediaEngine.ts +0 -385
- package/src/elements/EFMedia/BaseMediaEngine.browsertest.ts +0 -400
- package/src/elements/EFMedia/BaseMediaEngine.ts +0 -505
- package/src/elements/EFMedia/BufferedSeekingInput.browsertest.ts +0 -386
- package/src/elements/EFMedia/BufferedSeekingInput.ts +0 -430
- package/src/elements/EFMedia/JitMediaEngine.browsertest.ts +0 -226
- package/src/elements/EFMedia/JitMediaEngine.ts +0 -256
- package/src/elements/EFMedia/audioTasks/makeAudioBufferTask.browsertest.ts +0 -679
- package/src/elements/EFMedia/audioTasks/makeAudioBufferTask.ts +0 -117
- package/src/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.ts +0 -246
- package/src/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.browsertest.ts +0 -59
- package/src/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.ts +0 -27
- package/src/elements/EFMedia/audioTasks/makeAudioInputTask.browsertest.ts +0 -55
- package/src/elements/EFMedia/audioTasks/makeAudioInputTask.ts +0 -53
- package/src/elements/EFMedia/audioTasks/makeAudioSeekTask.chunkboundary.regression.browsertest.ts +0 -207
- package/src/elements/EFMedia/audioTasks/makeAudioSeekTask.ts +0 -72
- package/src/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.ts +0 -32
- package/src/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.ts +0 -29
- package/src/elements/EFMedia/audioTasks/makeAudioTasksVideoOnly.browsertest.ts +0 -95
- package/src/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.ts +0 -184
- package/src/elements/EFMedia/shared/AudioSpanUtils.ts +0 -129
- package/src/elements/EFMedia/shared/BufferUtils.ts +0 -342
- package/src/elements/EFMedia/shared/GlobalInputCache.ts +0 -77
- package/src/elements/EFMedia/shared/MediaTaskUtils.ts +0 -44
- package/src/elements/EFMedia/shared/PrecisionUtils.ts +0 -46
- package/src/elements/EFMedia/shared/RenditionHelpers.browsertest.ts +0 -246
- package/src/elements/EFMedia/shared/RenditionHelpers.ts +0 -56
- package/src/elements/EFMedia/shared/ThumbnailExtractor.ts +0 -227
- package/src/elements/EFMedia/tasks/makeMediaEngineTask.browsertest.ts +0 -167
- package/src/elements/EFMedia/tasks/makeMediaEngineTask.ts +0 -88
- package/src/elements/EFMedia/videoTasks/MainVideoInputCache.ts +0 -76
- package/src/elements/EFMedia/videoTasks/ScrubInputCache.ts +0 -61
- package/src/elements/EFMedia/videoTasks/makeScrubVideoBufferTask.ts +0 -114
- package/src/elements/EFMedia/videoTasks/makeScrubVideoInitSegmentFetchTask.ts +0 -35
- package/src/elements/EFMedia/videoTasks/makeScrubVideoInputTask.ts +0 -52
- package/src/elements/EFMedia/videoTasks/makeScrubVideoSeekTask.ts +0 -124
- package/src/elements/EFMedia/videoTasks/makeScrubVideoSegmentFetchTask.ts +0 -44
- package/src/elements/EFMedia/videoTasks/makeScrubVideoSegmentIdTask.ts +0 -32
- package/src/elements/EFMedia/videoTasks/makeUnifiedVideoSeekTask.ts +0 -370
- package/src/elements/EFMedia/videoTasks/makeVideoBufferTask.ts +0 -109
- package/src/elements/EFMedia.browsertest.ts +0 -872
- package/src/elements/EFMedia.ts +0 -341
- package/src/elements/EFSourceMixin.ts +0 -60
- package/src/elements/EFSurface.browsertest.ts +0 -151
- package/src/elements/EFSurface.ts +0 -142
- package/src/elements/EFTemporal.browsertest.ts +0 -215
- package/src/elements/EFTemporal.ts +0 -800
- package/src/elements/EFThumbnailStrip.browsertest.ts +0 -585
- package/src/elements/EFThumbnailStrip.media-engine.browsertest.ts +0 -714
- package/src/elements/EFThumbnailStrip.ts +0 -906
- package/src/elements/EFTimegroup.browsertest.ts +0 -870
- package/src/elements/EFTimegroup.ts +0 -878
- package/src/elements/EFVideo.browsertest.ts +0 -1482
- package/src/elements/EFVideo.ts +0 -564
- package/src/elements/EFWaveform.ts +0 -547
- package/src/elements/FetchContext.browsertest.ts +0 -401
- package/src/elements/FetchMixin.ts +0 -38
- package/src/elements/SampleBuffer.ts +0 -94
- package/src/elements/TargetController.browsertest.ts +0 -230
- package/src/elements/TargetController.ts +0 -224
- package/src/elements/TimegroupController.ts +0 -26
- package/src/elements/durationConverter.ts +0 -35
- package/src/elements/parseTimeToMs.ts +0 -9
- package/src/elements/printTaskStatus.ts +0 -16
- package/src/elements/renderTemporalAudio.ts +0 -108
- package/src/elements/updateAnimations.browsertest.ts +0 -1884
- package/src/elements/updateAnimations.ts +0 -217
- package/src/elements/util.ts +0 -24
- package/src/gui/ContextMixin.browsertest.ts +0 -860
- package/src/gui/ContextMixin.ts +0 -562
- package/src/gui/Controllable.browsertest.ts +0 -258
- package/src/gui/Controllable.ts +0 -41
- package/src/gui/EFConfiguration.ts +0 -40
- package/src/gui/EFControls.browsertest.ts +0 -389
- package/src/gui/EFControls.ts +0 -195
- package/src/gui/EFDial.browsertest.ts +0 -84
- package/src/gui/EFDial.ts +0 -172
- package/src/gui/EFFilmstrip.browsertest.ts +0 -712
- package/src/gui/EFFilmstrip.ts +0 -1349
- package/src/gui/EFFitScale.ts +0 -152
- package/src/gui/EFFocusOverlay.ts +0 -79
- package/src/gui/EFPause.browsertest.ts +0 -202
- package/src/gui/EFPause.ts +0 -73
- package/src/gui/EFPlay.browsertest.ts +0 -202
- package/src/gui/EFPlay.ts +0 -73
- package/src/gui/EFPreview.ts +0 -74
- package/src/gui/EFResizableBox.browsertest.ts +0 -79
- package/src/gui/EFResizableBox.ts +0 -898
- package/src/gui/EFScrubber.ts +0 -151
- package/src/gui/EFTimeDisplay.browsertest.ts +0 -237
- package/src/gui/EFTimeDisplay.ts +0 -55
- package/src/gui/EFToggleLoop.ts +0 -35
- package/src/gui/EFTogglePlay.ts +0 -70
- package/src/gui/EFWorkbench.ts +0 -115
- package/src/gui/PlaybackController.ts +0 -527
- package/src/gui/TWMixin.css +0 -6
- package/src/gui/TWMixin.ts +0 -61
- package/src/gui/TargetOrContextMixin.ts +0 -185
- package/src/gui/currentTimeContext.ts +0 -5
- package/src/gui/durationContext.ts +0 -3
- package/src/gui/efContext.ts +0 -6
- package/src/gui/fetchContext.ts +0 -5
- package/src/gui/focusContext.ts +0 -7
- package/src/gui/focusedElementContext.ts +0 -5
- package/src/gui/playingContext.ts +0 -5
- package/src/otel/BridgeSpanExporter.ts +0 -150
- package/src/otel/setupBrowserTracing.ts +0 -73
- package/src/otel/tracingHelpers.ts +0 -251
- package/src/transcoding/cache/RequestDeduplicator.test.ts +0 -170
- package/src/transcoding/cache/RequestDeduplicator.ts +0 -65
- package/src/transcoding/cache/URLTokenDeduplicator.test.ts +0 -182
- package/src/transcoding/cache/URLTokenDeduplicator.ts +0 -101
- package/src/transcoding/types/index.ts +0 -312
- package/src/transcoding/utils/MediaUtils.ts +0 -63
- package/src/transcoding/utils/UrlGenerator.ts +0 -68
- package/src/transcoding/utils/constants.ts +0 -36
- package/src/utils/LRUCache.test.ts +0 -274
- package/src/utils/LRUCache.ts +0 -696
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
import { LitElement } from "lit";
|
|
2
|
-
import { customElement } from "lit/decorators/custom-element.js";
|
|
3
|
-
import { describe, expect, test, vi } from "vitest";
|
|
4
|
-
import { EFTemporal } from "./EFTemporal.js";
|
|
5
|
-
import "./EFTimegroup.js";
|
|
6
|
-
import { state } from "lit/decorators.js";
|
|
7
|
-
|
|
8
|
-
@customElement("ten-seconds")
|
|
9
|
-
class TenSeconds extends EFTemporal(LitElement) {
|
|
10
|
-
get intrinsicDurationMs() {
|
|
11
|
-
return 10_000;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
declare global {
|
|
16
|
-
interface HTMLElementTagNameMap {
|
|
17
|
-
"ten-seconds": TenSeconds;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
describe("sourcein and sourceout", () => {
|
|
22
|
-
test("sourcein and sourceout are parsed correctly", () => {
|
|
23
|
-
const element = document.createElement("ten-seconds");
|
|
24
|
-
element.setAttribute("sourcein", "1s");
|
|
25
|
-
element.setAttribute("sourceout", "5s");
|
|
26
|
-
expect(element.sourceInMs).toBe(1_000);
|
|
27
|
-
expect(element.sourceOutMs).toBe(5_000);
|
|
28
|
-
expect(element.durationMs).toBe(4_000);
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
test("sourcein='0s' is parsed correctly as 0", () => {
|
|
32
|
-
const element = document.createElement("ten-seconds");
|
|
33
|
-
element.setAttribute("sourcein", "0s");
|
|
34
|
-
expect(element.sourceInMs).toBe(0);
|
|
35
|
-
expect(element.durationMs).toBe(10_000);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
test("sourcein='0ms' is parsed correctly as 0", () => {
|
|
39
|
-
const element = document.createElement("ten-seconds");
|
|
40
|
-
element.setAttribute("sourcein", "0ms");
|
|
41
|
-
expect(element.sourceInMs).toBe(0);
|
|
42
|
-
expect(element.durationMs).toBe(10_000);
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
describe("only srcin is set", () => {
|
|
46
|
-
test("duration is calculated", () => {
|
|
47
|
-
const element = document.createElement("ten-seconds");
|
|
48
|
-
element.sourceInMs = 1_000;
|
|
49
|
-
expect(element.durationMs).toBe(9_000);
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
describe("only srcout is set", () => {
|
|
54
|
-
test("duration is calculated", () => {
|
|
55
|
-
const element = document.createElement("ten-seconds");
|
|
56
|
-
element.sourceOutMs = 5_000;
|
|
57
|
-
expect(element.durationMs).toBe(5_000);
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
describe("srcout is before srcin", () => {
|
|
62
|
-
test("duration is zero", () => {
|
|
63
|
-
const element = document.createElement("ten-seconds");
|
|
64
|
-
element.sourceInMs = 5_000;
|
|
65
|
-
element.sourceOutMs = 1_000;
|
|
66
|
-
expect(element.durationMs).toBe(0);
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
describe("srcin is negative", () => {
|
|
71
|
-
test("srcin is normalized to 0 ", () => {
|
|
72
|
-
const element = document.createElement("ten-seconds");
|
|
73
|
-
element.sourceInMs = -1_000;
|
|
74
|
-
expect(element.sourceInMs).toBe(0);
|
|
75
|
-
expect(element.durationMs).toBe(10_000);
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
describe("srcout is beyond the intrinsic duration", () => {
|
|
80
|
-
test("srcout is normalized to the intrinsic duration", () => {
|
|
81
|
-
const element = document.createElement("ten-seconds");
|
|
82
|
-
element.sourceOutMs = 15_000;
|
|
83
|
-
expect(element.sourceOutMs).toBe(10_000);
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
describe("trimstart and trimend", () => {
|
|
89
|
-
test("trimstart and trimend attributes are parsed correctly", () => {
|
|
90
|
-
const element = document.createElement("ten-seconds");
|
|
91
|
-
element.setAttribute("trimstart", "1s");
|
|
92
|
-
element.setAttribute("trimend", "5s");
|
|
93
|
-
expect(element.trimStartMs).toBe(1_000);
|
|
94
|
-
expect(element.trimEndMs).toBe(5_000);
|
|
95
|
-
expect(element.durationMs).toBe(4_000);
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
describe("trimstart is beyond the intrinsic duration", () => {
|
|
99
|
-
test("trimstart is normalized to the intrinsic duration", () => {
|
|
100
|
-
const element = document.createElement("ten-seconds");
|
|
101
|
-
element.trimStartMs = 15_000;
|
|
102
|
-
expect(element.trimStartMs).toBe(10_000);
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
describe("trimend is beyond the intrinsic duration", () => {
|
|
107
|
-
test("trimend is normalized to the intrinsic duration", () => {
|
|
108
|
-
const element = document.createElement("ten-seconds");
|
|
109
|
-
element.trimEndMs = 15_000;
|
|
110
|
-
expect(element.trimEndMs).toBe(10_000);
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
describe("duration", () => {
|
|
116
|
-
test("duration is parsed correctly", () => {
|
|
117
|
-
const element = document.createElement("ten-seconds");
|
|
118
|
-
element.setAttribute("duration", "10s");
|
|
119
|
-
expect(element.durationMs).toBe(10_000);
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
test("duration can be set directly on the element", () => {
|
|
123
|
-
const element = document.createElement("ten-seconds");
|
|
124
|
-
element.duration = "10s";
|
|
125
|
-
expect(element.durationMs).toBe(10_000);
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
describe("EFVideo sourcein attribute", () => {
|
|
130
|
-
test("EFVideo with sourcein='0s' should parse correctly", () => {
|
|
131
|
-
const element = document.createElement("ef-video");
|
|
132
|
-
element.setAttribute("sourcein", "0s");
|
|
133
|
-
|
|
134
|
-
// The sourcein attribute should be set correctly
|
|
135
|
-
expect(element.getAttribute("sourcein")).toBe("0s");
|
|
136
|
-
|
|
137
|
-
// Note: In the test environment, the property system may not be fully initialized
|
|
138
|
-
// but the attribute is set correctly, which is what we're testing
|
|
139
|
-
});
|
|
140
|
-
|
|
141
|
-
test("Multiple EFVideo elements can be created without conflicts", () => {
|
|
142
|
-
// This test verifies that our fix for the abort signal deduplication issue works
|
|
143
|
-
// Multiple elements should be able to exist without signal conflicts
|
|
144
|
-
|
|
145
|
-
const element1 = document.createElement("ef-video");
|
|
146
|
-
const element2 = document.createElement("ef-video");
|
|
147
|
-
|
|
148
|
-
// Set different sources
|
|
149
|
-
element1.src = "test-video-1.mp4";
|
|
150
|
-
element2.src = "test-video-2.mp4";
|
|
151
|
-
|
|
152
|
-
// Both elements should have their attributes set correctly
|
|
153
|
-
expect(element1.src).toBe("test-video-1.mp4");
|
|
154
|
-
expect(element2.src).toBe("test-video-2.mp4");
|
|
155
|
-
|
|
156
|
-
// Both elements should be valid DOM elements
|
|
157
|
-
expect(element1.tagName).toBe("EF-VIDEO");
|
|
158
|
-
expect(element2.tagName).toBe("EF-VIDEO");
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
@customElement("test-root-lifecycle")
|
|
163
|
-
class TestLifecycleChild extends EFTemporal(LitElement) {
|
|
164
|
-
@state()
|
|
165
|
-
role: "root" | "child" | null = null;
|
|
166
|
-
|
|
167
|
-
didBecomeRoot() {
|
|
168
|
-
this.role = "root";
|
|
169
|
-
}
|
|
170
|
-
didBecomeChild() {
|
|
171
|
-
this.role = "child";
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
declare global {
|
|
176
|
-
interface HTMLElementTagNameMap {
|
|
177
|
-
"test-root-lifecycle": TestLifecycleChild;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
describe("Temporal Lifecycle", () => {
|
|
182
|
-
test("a standalone temporal element becomes a root", async () => {
|
|
183
|
-
const root = document.createElement("test-root-lifecycle");
|
|
184
|
-
document.body.append(root);
|
|
185
|
-
expect(root.role).toBe("root");
|
|
186
|
-
});
|
|
187
|
-
|
|
188
|
-
test("temporal element in a timegroup becomes a child", async () => {
|
|
189
|
-
const timegroup = document.createElement("ef-timegroup");
|
|
190
|
-
vi.spyOn(timegroup as any, "didBecomeRoot");
|
|
191
|
-
vi.spyOn(timegroup as any, "didBecomeChild");
|
|
192
|
-
const child = document.createElement("test-root-lifecycle");
|
|
193
|
-
vi.spyOn(child as any, "didBecomeRoot");
|
|
194
|
-
vi.spyOn(child as any, "didBecomeChild");
|
|
195
|
-
timegroup.append(child);
|
|
196
|
-
document.body.append(timegroup);
|
|
197
|
-
expect((timegroup as any).didBecomeRoot).toHaveBeenCalledOnce();
|
|
198
|
-
expect((timegroup as any).didBecomeChild).not.toHaveBeenCalled();
|
|
199
|
-
expect((child as any).didBecomeChild).toHaveBeenCalledOnce();
|
|
200
|
-
});
|
|
201
|
-
|
|
202
|
-
test("timegroup nested in a timegroup becomes a child", async () => {
|
|
203
|
-
const timegroup = document.createElement("ef-timegroup");
|
|
204
|
-
const child = document.createElement("ef-timegroup");
|
|
205
|
-
vi.spyOn(timegroup as any, "didBecomeRoot");
|
|
206
|
-
vi.spyOn(timegroup as any, "didBecomeChild");
|
|
207
|
-
vi.spyOn(child as any, "didBecomeRoot");
|
|
208
|
-
vi.spyOn(child as any, "didBecomeChild");
|
|
209
|
-
timegroup.append(child);
|
|
210
|
-
document.body.append(timegroup);
|
|
211
|
-
expect((timegroup as any).didBecomeRoot).toHaveBeenCalledOnce();
|
|
212
|
-
expect((timegroup as any).didBecomeChild).not.toHaveBeenCalled();
|
|
213
|
-
expect((child as any).didBecomeChild).toHaveBeenCalledOnce();
|
|
214
|
-
});
|
|
215
|
-
});
|