@editframe/elements 0.20.4-beta.0 → 0.23.6-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/DelayedLoadingState.js +0 -27
- package/dist/EF_FRAMEGEN.d.ts +5 -3
- package/dist/EF_FRAMEGEN.js +49 -11
- package/dist/_virtual/_@oxc-project_runtime@0.94.0/helpers/decorate.js +7 -0
- package/dist/attachContextRoot.d.ts +1 -0
- package/dist/attachContextRoot.js +9 -0
- package/dist/elements/ContextProxiesController.d.ts +1 -2
- package/dist/elements/EFAudio.js +5 -9
- package/dist/elements/EFCaptions.d.ts +1 -3
- package/dist/elements/EFCaptions.js +112 -129
- package/dist/elements/EFImage.js +6 -7
- package/dist/elements/EFMedia/AssetIdMediaEngine.js +2 -5
- package/dist/elements/EFMedia/AssetMediaEngine.js +36 -33
- package/dist/elements/EFMedia/BaseMediaEngine.js +57 -73
- package/dist/elements/EFMedia/BufferedSeekingInput.d.ts +1 -1
- package/dist/elements/EFMedia/BufferedSeekingInput.js +134 -78
- package/dist/elements/EFMedia/JitMediaEngine.js +9 -19
- package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.js +7 -13
- package/dist/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.js +2 -3
- package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.js +1 -1
- package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.js +6 -5
- package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.js +1 -3
- package/dist/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.js +1 -1
- package/dist/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.js +1 -1
- package/dist/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.js +1 -1
- package/dist/elements/EFMedia/shared/AudioSpanUtils.js +9 -25
- package/dist/elements/EFMedia/shared/BufferUtils.js +2 -17
- package/dist/elements/EFMedia/shared/GlobalInputCache.js +0 -24
- package/dist/elements/EFMedia/shared/PrecisionUtils.js +0 -21
- package/dist/elements/EFMedia/shared/ThumbnailExtractor.js +0 -17
- package/dist/elements/EFMedia/tasks/makeMediaEngineTask.js +1 -10
- package/dist/elements/EFMedia/videoTasks/MainVideoInputCache.d.ts +29 -0
- package/dist/elements/EFMedia/videoTasks/MainVideoInputCache.js +32 -0
- package/dist/elements/EFMedia/videoTasks/ScrubInputCache.js +1 -15
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoBufferTask.js +1 -7
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoInputTask.js +8 -5
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoSeekTask.js +12 -13
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentIdTask.js +1 -1
- package/dist/elements/EFMedia/videoTasks/makeUnifiedVideoSeekTask.js +134 -70
- package/dist/elements/EFMedia/videoTasks/makeVideoBufferTask.js +11 -18
- package/dist/elements/EFMedia.d.ts +19 -0
- package/dist/elements/EFMedia.js +44 -25
- package/dist/elements/EFSourceMixin.js +5 -7
- package/dist/elements/EFSurface.js +6 -9
- package/dist/elements/EFTemporal.browsertest.d.ts +11 -0
- package/dist/elements/EFTemporal.d.ts +10 -0
- package/dist/elements/EFTemporal.js +100 -41
- package/dist/elements/EFThumbnailStrip.js +23 -73
- package/dist/elements/EFTimegroup.browsertest.d.ts +3 -3
- package/dist/elements/EFTimegroup.d.ts +35 -14
- package/dist/elements/EFTimegroup.js +138 -181
- package/dist/elements/EFVideo.d.ts +16 -2
- package/dist/elements/EFVideo.js +156 -108
- package/dist/elements/EFWaveform.js +23 -40
- package/dist/elements/SampleBuffer.js +3 -7
- package/dist/elements/TargetController.js +5 -5
- package/dist/elements/durationConverter.js +4 -4
- package/dist/elements/renderTemporalAudio.d.ts +10 -0
- package/dist/elements/renderTemporalAudio.js +35 -0
- package/dist/elements/updateAnimations.js +19 -43
- package/dist/gui/ContextMixin.d.ts +5 -5
- package/dist/gui/ContextMixin.js +167 -162
- package/dist/gui/Controllable.browsertest.d.ts +0 -0
- package/dist/gui/Controllable.d.ts +15 -0
- package/dist/gui/Controllable.js +9 -0
- package/dist/gui/EFConfiguration.js +7 -7
- package/dist/gui/EFControls.browsertest.d.ts +11 -0
- package/dist/gui/EFControls.d.ts +18 -4
- package/dist/gui/EFControls.js +70 -28
- package/dist/gui/EFDial.browsertest.d.ts +0 -0
- package/dist/gui/EFDial.d.ts +18 -0
- package/dist/gui/EFDial.js +141 -0
- package/dist/gui/EFFilmstrip.browsertest.d.ts +11 -0
- package/dist/gui/EFFilmstrip.d.ts +12 -2
- package/dist/gui/EFFilmstrip.js +214 -129
- package/dist/gui/EFFitScale.js +5 -8
- package/dist/gui/EFFocusOverlay.js +4 -4
- package/dist/gui/EFPause.browsertest.d.ts +0 -0
- package/dist/gui/EFPause.d.ts +23 -0
- package/dist/gui/EFPause.js +59 -0
- package/dist/gui/EFPlay.browsertest.d.ts +0 -0
- package/dist/gui/EFPlay.d.ts +23 -0
- package/dist/gui/EFPlay.js +59 -0
- package/dist/gui/EFPreview.d.ts +4 -0
- package/dist/gui/EFPreview.js +18 -9
- package/dist/gui/EFResizableBox.browsertest.d.ts +0 -0
- package/dist/gui/EFResizableBox.d.ts +34 -0
- package/dist/gui/EFResizableBox.js +547 -0
- package/dist/gui/EFScrubber.d.ts +9 -3
- package/dist/gui/EFScrubber.js +13 -13
- package/dist/gui/EFTimeDisplay.d.ts +7 -1
- package/dist/gui/EFTimeDisplay.js +8 -8
- package/dist/gui/EFToggleLoop.d.ts +9 -3
- package/dist/gui/EFToggleLoop.js +7 -5
- package/dist/gui/EFTogglePlay.d.ts +12 -4
- package/dist/gui/EFTogglePlay.js +26 -21
- package/dist/gui/EFWorkbench.js +5 -5
- package/dist/gui/PlaybackController.d.ts +67 -0
- package/dist/gui/PlaybackController.js +310 -0
- package/dist/gui/TWMixin.js +1 -1
- package/dist/gui/TWMixin2.js +1 -1
- package/dist/gui/TargetOrContextMixin.d.ts +10 -0
- package/dist/gui/TargetOrContextMixin.js +98 -0
- package/dist/gui/efContext.d.ts +2 -2
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -1
- package/dist/otel/BridgeSpanExporter.d.ts +13 -0
- package/dist/otel/BridgeSpanExporter.js +87 -0
- package/dist/otel/setupBrowserTracing.d.ts +12 -0
- package/dist/otel/setupBrowserTracing.js +32 -0
- package/dist/otel/tracingHelpers.d.ts +34 -0
- package/dist/otel/tracingHelpers.js +112 -0
- package/dist/style.css +1 -1
- package/dist/transcoding/cache/RequestDeduplicator.js +0 -21
- package/dist/transcoding/cache/URLTokenDeduplicator.js +1 -21
- package/dist/transcoding/utils/UrlGenerator.js +2 -19
- package/dist/utils/LRUCache.js +6 -53
- package/package.json +13 -5
- package/src/elements/ContextProxiesController.ts +10 -10
- package/src/elements/EFAudio.ts +1 -0
- package/src/elements/EFCaptions.browsertest.ts +128 -56
- package/src/elements/EFCaptions.ts +60 -34
- package/src/elements/EFImage.browsertest.ts +1 -2
- package/src/elements/EFMedia/AssetMediaEngine.ts +65 -37
- package/src/elements/EFMedia/BaseMediaEngine.ts +110 -52
- package/src/elements/EFMedia/BufferedSeekingInput.ts +218 -101
- package/src/elements/EFMedia/JitMediaEngine.browsertest.ts +3 -0
- package/src/elements/EFMedia/audioTasks/makeAudioInputTask.ts +7 -3
- package/src/elements/EFMedia/audioTasks/makeAudioSeekTask.chunkboundary.regression.browsertest.ts +1 -1
- package/src/elements/EFMedia/videoTasks/MainVideoInputCache.ts +76 -0
- package/src/elements/EFMedia/videoTasks/makeScrubVideoInputTask.ts +16 -10
- package/src/elements/EFMedia/videoTasks/makeScrubVideoSeekTask.ts +7 -1
- package/src/elements/EFMedia/videoTasks/makeUnifiedVideoSeekTask.ts +222 -116
- package/src/elements/EFMedia.browsertest.ts +8 -15
- package/src/elements/EFMedia.ts +54 -8
- package/src/elements/EFSurface.browsertest.ts +2 -6
- package/src/elements/EFSurface.ts +1 -0
- package/src/elements/EFTemporal.browsertest.ts +58 -1
- package/src/elements/EFTemporal.ts +140 -4
- package/src/elements/EFThumbnailStrip.browsertest.ts +2 -8
- package/src/elements/EFThumbnailStrip.ts +1 -0
- package/src/elements/EFTimegroup.browsertest.ts +16 -15
- package/src/elements/EFTimegroup.ts +281 -275
- package/src/elements/EFVideo.browsertest.ts +162 -74
- package/src/elements/EFVideo.ts +229 -101
- package/src/elements/FetchContext.browsertest.ts +7 -2
- package/src/elements/TargetController.browsertest.ts +1 -0
- package/src/elements/TargetController.ts +1 -0
- package/src/elements/renderTemporalAudio.ts +108 -0
- package/src/elements/updateAnimations.browsertest.ts +181 -6
- package/src/elements/updateAnimations.ts +6 -6
- package/src/gui/ContextMixin.browsertest.ts +274 -27
- package/src/gui/ContextMixin.ts +230 -175
- package/src/gui/Controllable.browsertest.ts +258 -0
- package/src/gui/Controllable.ts +41 -0
- package/src/gui/EFControls.browsertest.ts +294 -80
- package/src/gui/EFControls.ts +139 -28
- package/src/gui/EFDial.browsertest.ts +84 -0
- package/src/gui/EFDial.ts +172 -0
- package/src/gui/EFFilmstrip.browsertest.ts +712 -0
- package/src/gui/EFFilmstrip.ts +213 -23
- package/src/gui/EFPause.browsertest.ts +202 -0
- package/src/gui/EFPause.ts +73 -0
- package/src/gui/EFPlay.browsertest.ts +202 -0
- package/src/gui/EFPlay.ts +73 -0
- package/src/gui/EFPreview.ts +20 -5
- package/src/gui/EFResizableBox.browsertest.ts +79 -0
- package/src/gui/EFResizableBox.ts +898 -0
- package/src/gui/EFScrubber.ts +7 -5
- package/src/gui/EFTimeDisplay.browsertest.ts +19 -19
- package/src/gui/EFTimeDisplay.ts +3 -1
- package/src/gui/EFToggleLoop.ts +6 -5
- package/src/gui/EFTogglePlay.ts +30 -23
- package/src/gui/PlaybackController.ts +522 -0
- package/src/gui/TWMixin.css +3 -0
- package/src/gui/TargetOrContextMixin.ts +185 -0
- package/src/gui/efContext.ts +2 -2
- package/src/otel/BridgeSpanExporter.ts +150 -0
- package/src/otel/setupBrowserTracing.ts +73 -0
- package/src/otel/tracingHelpers.ts +251 -0
- package/test/cache-integration-verification.browsertest.ts +1 -1
- package/types.json +1 -1
- package/dist/elements/ContextProxiesController.js +0 -69
|
@@ -6,9 +6,6 @@ var DelayedLoadingState = class {
|
|
|
6
6
|
this.loadingDelayMs = delayMs;
|
|
7
7
|
this.onStateChange = onStateChange;
|
|
8
8
|
}
|
|
9
|
-
/**
|
|
10
|
-
* Start a delayed loading operation
|
|
11
|
-
*/
|
|
12
9
|
startLoading(operationId, message, options = {}) {
|
|
13
10
|
const isBackground = options.background || false;
|
|
14
11
|
const existingOp = this.operations.get(operationId);
|
|
@@ -34,9 +31,6 @@ var DelayedLoadingState = class {
|
|
|
34
31
|
isBackground: false
|
|
35
32
|
});
|
|
36
33
|
}
|
|
37
|
-
/**
|
|
38
|
-
* Clear a loading operation
|
|
39
|
-
*/
|
|
40
34
|
clearLoading(operationId) {
|
|
41
35
|
const operation = this.operations.get(operationId);
|
|
42
36
|
if (!operation) return;
|
|
@@ -44,36 +38,21 @@ var DelayedLoadingState = class {
|
|
|
44
38
|
this.operations.delete(operationId);
|
|
45
39
|
this.updateLoadingState();
|
|
46
40
|
}
|
|
47
|
-
/**
|
|
48
|
-
* Clear all loading operations
|
|
49
|
-
*/
|
|
50
41
|
clearAllLoading() {
|
|
51
42
|
for (const operation of this.operations.values()) if (operation.timeout) clearTimeout(operation.timeout);
|
|
52
43
|
this.operations.clear();
|
|
53
44
|
this.updateLoadingState();
|
|
54
45
|
}
|
|
55
|
-
/**
|
|
56
|
-
* Get current loading state
|
|
57
|
-
*/
|
|
58
46
|
get isLoading() {
|
|
59
47
|
return this.isCurrentlyLoading;
|
|
60
48
|
}
|
|
61
|
-
/**
|
|
62
|
-
* Get current loading message
|
|
63
|
-
*/
|
|
64
49
|
get message() {
|
|
65
50
|
return this.currentMessage;
|
|
66
51
|
}
|
|
67
|
-
/**
|
|
68
|
-
* Check if any non-background operations are active
|
|
69
|
-
*/
|
|
70
52
|
hasActiveOperations() {
|
|
71
53
|
for (const operation of this.operations.values()) if (!operation.isBackground) return true;
|
|
72
54
|
return false;
|
|
73
55
|
}
|
|
74
|
-
/**
|
|
75
|
-
* Get the message for the most recent non-background operation
|
|
76
|
-
*/
|
|
77
56
|
getCurrentMessage() {
|
|
78
57
|
let latestTime = 0;
|
|
79
58
|
let latestMessage = "";
|
|
@@ -83,9 +62,6 @@ var DelayedLoadingState = class {
|
|
|
83
62
|
}
|
|
84
63
|
return latestMessage;
|
|
85
64
|
}
|
|
86
|
-
/**
|
|
87
|
-
* Trigger loading state (called by timeout)
|
|
88
|
-
*/
|
|
89
65
|
triggerLoadingState() {
|
|
90
66
|
if (this.hasActiveOperations() && !this.isCurrentlyLoading) {
|
|
91
67
|
this.isCurrentlyLoading = true;
|
|
@@ -93,9 +69,6 @@ var DelayedLoadingState = class {
|
|
|
93
69
|
this.onStateChange?.(true, this.currentMessage);
|
|
94
70
|
}
|
|
95
71
|
}
|
|
96
|
-
/**
|
|
97
|
-
* Update loading state based on current operations
|
|
98
|
-
*/
|
|
99
72
|
updateLoadingState() {
|
|
100
73
|
const shouldBeLoading = this.hasActiveOperations();
|
|
101
74
|
if (shouldBeLoading !== this.isCurrentlyLoading) {
|
package/dist/EF_FRAMEGEN.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { VideoRenderOptions } from '../../assets/src/index.ts';
|
|
2
|
+
import { TraceContext } from './otel/tracingHelpers.js';
|
|
2
3
|
interface Bridge {
|
|
3
|
-
onInitialize: (callback: (renderOptions: VideoRenderOptions) => void) => void;
|
|
4
|
+
onInitialize: (callback: (renderOptions: VideoRenderOptions, traceContext?: TraceContext, otelEndpoint?: string) => void) => void;
|
|
4
5
|
initialized(): void;
|
|
5
|
-
onBeginFrame(callback: (frameNumber: number, isLast: boolean) => void): void;
|
|
6
|
-
onTriggerCanvas(callback: () => void): void;
|
|
6
|
+
onBeginFrame(callback: (frameNumber: number, isLast: boolean, traceContext?: TraceContext) => void): void;
|
|
7
|
+
onTriggerCanvas(callback: (traceContext?: TraceContext) => void): void;
|
|
7
8
|
frameReady(frameNumber: number, audioSamples: ArrayBuffer): void;
|
|
8
9
|
error(error: Error): void;
|
|
9
10
|
syncLog(sequence: number, message: string, callback: () => void): void;
|
|
11
|
+
exportSpans?: (endpoint: string, payload: string) => void;
|
|
10
12
|
}
|
|
11
13
|
declare global {
|
|
12
14
|
interface Window {
|
package/dist/EF_FRAMEGEN.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { clearCurrentFrameSpan, enableTracing, extractParentContext, setCurrentFrameSpan, withSpan, withSpanAndContext } from "./otel/tracingHelpers.js";
|
|
1
2
|
import { shallowGetTimegroups } from "./elements/EFTimegroup.js";
|
|
3
|
+
import { setupBrowserTracing } from "./otel/setupBrowserTracing.js";
|
|
2
4
|
var TriggerCanvas = class {
|
|
3
5
|
constructor() {
|
|
4
6
|
this.canvasInitialized = false;
|
|
@@ -91,17 +93,54 @@ var EFFramegen = class {
|
|
|
91
93
|
connectToBridge() {
|
|
92
94
|
const BRIDGE = this.BRIDGE;
|
|
93
95
|
if (!BRIDGE) throw new Error("No BRIDGE when attempting to connect to bridge");
|
|
94
|
-
BRIDGE.onInitialize(async (renderOptions) => {
|
|
95
|
-
|
|
96
|
-
|
|
96
|
+
BRIDGE.onInitialize(async (renderOptions, traceContext, otelEndpoint) => {
|
|
97
|
+
if (renderOptions.enableTracing && otelEndpoint) {
|
|
98
|
+
enableTracing();
|
|
99
|
+
await setupBrowserTracing({
|
|
100
|
+
otelEndpoint,
|
|
101
|
+
serviceName: "telecine-browser",
|
|
102
|
+
bridge: BRIDGE,
|
|
103
|
+
useBatching: true
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
const parentContext = extractParentContext(traceContext);
|
|
107
|
+
await withSpan("browser.initialize", {
|
|
108
|
+
width: renderOptions.encoderOptions.video.width,
|
|
109
|
+
height: renderOptions.encoderOptions.video.height,
|
|
110
|
+
fps: renderOptions.encoderOptions.video.framerate,
|
|
111
|
+
durationMs: renderOptions.encoderOptions.toMs - renderOptions.encoderOptions.fromMs
|
|
112
|
+
}, parentContext, async () => {
|
|
113
|
+
await this.initialize(renderOptions).catch((error) => {
|
|
114
|
+
console.error("[EF_FRAMEGEN.connectToBridge] error initializing", error);
|
|
115
|
+
throw error;
|
|
116
|
+
});
|
|
97
117
|
});
|
|
98
118
|
BRIDGE.initialized();
|
|
99
119
|
});
|
|
100
|
-
BRIDGE.onBeginFrame((frameNumber, isLast) => {
|
|
101
|
-
|
|
120
|
+
BRIDGE.onBeginFrame((frameNumber, isLast, traceContext) => {
|
|
121
|
+
const parentContext = extractParentContext(traceContext);
|
|
122
|
+
withSpanAndContext("browser.frame.render", {
|
|
123
|
+
frameNumber,
|
|
124
|
+
isLast
|
|
125
|
+
}, parentContext, async (span, _spanContext) => {
|
|
126
|
+
setCurrentFrameSpan(span);
|
|
127
|
+
try {
|
|
128
|
+
await this.beginFrame(frameNumber, isLast);
|
|
129
|
+
} finally {
|
|
130
|
+
clearCurrentFrameSpan();
|
|
131
|
+
}
|
|
132
|
+
}).catch((error) => {
|
|
133
|
+
console.error("[EF_FRAMEGEN.beginFrame] error:", error);
|
|
134
|
+
clearCurrentFrameSpan();
|
|
135
|
+
throw error;
|
|
136
|
+
});
|
|
102
137
|
});
|
|
103
|
-
BRIDGE.onTriggerCanvas(() => {
|
|
104
|
-
|
|
138
|
+
BRIDGE.onTriggerCanvas((traceContext) => {
|
|
139
|
+
withSpan("browser.canvas.trigger", {}, extractParentContext(traceContext), async () => {
|
|
140
|
+
this.triggerCanvas.trigger();
|
|
141
|
+
}).catch((error) => {
|
|
142
|
+
console.error("[EF_FRAMEGEN.triggerCanvas] error:", error);
|
|
143
|
+
});
|
|
105
144
|
});
|
|
106
145
|
}
|
|
107
146
|
get showFrameBox() {
|
|
@@ -113,8 +152,7 @@ var EFFramegen = class {
|
|
|
113
152
|
if (!workbench) throw new Error("No workbench found");
|
|
114
153
|
workbench.rendering = true;
|
|
115
154
|
workbench.playing = false;
|
|
116
|
-
const
|
|
117
|
-
const firstGroup = timegroups[0];
|
|
155
|
+
const firstGroup = shallowGetTimegroups(workbench)[0];
|
|
118
156
|
if (!firstGroup) throw new Error("No temporal elements found");
|
|
119
157
|
const startingTimeMs = renderOptions.encoderOptions.fromMs;
|
|
120
158
|
await firstGroup.waitForMediaDurations();
|
|
@@ -142,8 +180,7 @@ var EFFramegen = class {
|
|
|
142
180
|
const workbench = document.querySelector("ef-workbench");
|
|
143
181
|
if (!workbench) throw new Error("No workbench found");
|
|
144
182
|
workbench.rendering = true;
|
|
145
|
-
const
|
|
146
|
-
const firstGroup = timegroups[0];
|
|
183
|
+
const firstGroup = shallowGetTimegroups(workbench)[0];
|
|
147
184
|
if (!firstGroup) throw new Error("No temporal elements found");
|
|
148
185
|
const frameTime = this.renderOptions.encoderOptions.fromMs + frameNumber * this.frameDurationMs;
|
|
149
186
|
firstGroup.currentTimeMs = Number(Number(frameTime).toFixed(5));
|
|
@@ -183,3 +220,4 @@ var EFFramegen = class {
|
|
|
183
220
|
}
|
|
184
221
|
};
|
|
185
222
|
if (typeof window !== "undefined") window.EF_FRAMEGEN = new EFFramegen();
|
|
223
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
function __decorate(decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
}
|
|
7
|
+
export { __decorate };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const attachContextRoot: () => void;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ContextRoot } from "@lit/context";
|
|
2
|
+
var contextRoot = null;
|
|
3
|
+
const attachContextRoot = () => {
|
|
4
|
+
if (typeof window === "undefined") return;
|
|
5
|
+
if (contextRoot !== null) return;
|
|
6
|
+
contextRoot = new ContextRoot();
|
|
7
|
+
contextRoot.attach(document.body);
|
|
8
|
+
};
|
|
9
|
+
export { attachContextRoot };
|
|
@@ -20,7 +20,7 @@ export type ContextProxyConfig = {
|
|
|
20
20
|
* // @ts-expect-error controller is intentionally not referenced directly
|
|
21
21
|
* #contextProxyController = new ContextProxyController(this, {
|
|
22
22
|
* target: () => this.targetElement,
|
|
23
|
-
* contexts: [playingContext, loopContext,
|
|
23
|
+
* contexts: [playingContext, loopContext, targetTemporalContext]
|
|
24
24
|
* });
|
|
25
25
|
* }
|
|
26
26
|
* ```
|
|
@@ -28,7 +28,6 @@ export type ContextProxyConfig = {
|
|
|
28
28
|
export declare class ContextProxyController implements ReactiveController {
|
|
29
29
|
private host;
|
|
30
30
|
private proxyMap;
|
|
31
|
-
private boundHandler;
|
|
32
31
|
private pendingRequests;
|
|
33
32
|
constructor(host: LitElement, config: ContextProxyConfig);
|
|
34
33
|
hostConnected(): void;
|
package/dist/elements/EFAudio.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { EF_INTERACTIVE } from "../EF_INTERACTIVE.js";
|
|
2
|
-
import {
|
|
2
|
+
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.94.0/helpers/decorate.js";
|
|
3
3
|
import { TWMixin } from "../gui/TWMixin2.js";
|
|
4
|
+
import { EFMedia } from "./EFMedia.js";
|
|
4
5
|
import { Task } from "@lit/task";
|
|
5
6
|
import { html } from "lit";
|
|
6
7
|
import { customElement, property } from "lit/decorators.js";
|
|
7
|
-
import _decorate from "@oxc-project/runtime/helpers/decorate";
|
|
8
8
|
import { createRef, ref } from "lit/directives/ref.js";
|
|
9
|
-
|
|
9
|
+
var EFAudio = class EFAudio$1 extends TWMixin(EFMedia) {
|
|
10
10
|
constructor(..._args) {
|
|
11
11
|
super(..._args);
|
|
12
12
|
this._propertyHack = false;
|
|
@@ -31,17 +31,13 @@ let EFAudio = class EFAudio$1 extends TWMixin(EFMedia) {
|
|
|
31
31
|
render() {
|
|
32
32
|
return html`<audio ${ref(this.audioElementRef)}></audio>`;
|
|
33
33
|
}
|
|
34
|
-
/**
|
|
35
|
-
* Legacy getter for fragment index task (maps to audioSegmentIdTask)
|
|
36
|
-
* Still used by EFCaptions
|
|
37
|
-
*/
|
|
38
34
|
get fragmentIndexTask() {
|
|
39
35
|
return this.audioSegmentIdTask;
|
|
40
36
|
}
|
|
41
37
|
};
|
|
42
|
-
|
|
38
|
+
__decorate([property({
|
|
43
39
|
type: Boolean,
|
|
44
40
|
attribute: "dummy-property"
|
|
45
41
|
})], EFAudio.prototype, "_propertyHack", void 0);
|
|
46
|
-
EFAudio =
|
|
42
|
+
EFAudio = __decorate([customElement("ef-audio")], EFAudio);
|
|
47
43
|
export { EFAudio };
|
|
@@ -66,8 +66,6 @@ export declare class EFCaptionsAfterActiveWord extends EFCaptionsSegment {
|
|
|
66
66
|
declare const EFCaptions_base: (new (...args: any[]) => import('./EFSourceMixin.js').EFSourceMixinInterface) & (new (...args: any[]) => import('./EFTemporal.js').TemporalMixinInterface) & (new (...args: any[]) => import('./FetchMixin.js').FetchMixinInterface) & typeof LitElement;
|
|
67
67
|
export declare class EFCaptions extends EFCaptions_base {
|
|
68
68
|
static styles: import('lit').CSSResult[];
|
|
69
|
-
displayMode: "word" | "segment" | "context";
|
|
70
|
-
contextWords: number;
|
|
71
69
|
targetSelector: string;
|
|
72
70
|
set target(value: string);
|
|
73
71
|
wordStyle: string;
|
|
@@ -100,7 +98,7 @@ export declare class EFCaptions extends EFCaptions_base {
|
|
|
100
98
|
private customCaptionsDataTask;
|
|
101
99
|
private transcriptionFragmentDataTask;
|
|
102
100
|
unifiedCaptionsDataTask: Task<readonly [Caption | null | undefined, Caption | null | undefined], Caption | null | undefined>;
|
|
103
|
-
frameTask: Task<TaskStatus
|
|
101
|
+
frameTask: Task<readonly [TaskStatus, number], void>;
|
|
104
102
|
connectedCallback(): void;
|
|
105
103
|
protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
|
|
106
104
|
updateTextContainers(): void;
|