@editframe/elements 0.26.3-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/package.json +2 -2
- package/scripts/build-css.js +3 -3
- package/tsdown.config.ts +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 -934
- package/src/elements/EFTimegroup.ts +0 -882
- 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
package/src/gui/EFDial.ts
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { css, html, LitElement } from "lit";
|
|
2
|
-
import { customElement, property, state } from "lit/decorators.js";
|
|
3
|
-
import { styleMap } from "lit/directives/style-map.js";
|
|
4
|
-
|
|
5
|
-
export interface DialChangeDetail {
|
|
6
|
-
value: number;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
@customElement("ef-dial")
|
|
10
|
-
export class EFDial extends LitElement {
|
|
11
|
-
@property({ type: Number })
|
|
12
|
-
set value(newValue: number) {
|
|
13
|
-
// Normalize to 0-360 range
|
|
14
|
-
newValue = newValue % 360;
|
|
15
|
-
if (newValue < 0) {
|
|
16
|
-
newValue += 360;
|
|
17
|
-
}
|
|
18
|
-
// Limit to 6 significant digits
|
|
19
|
-
newValue = Number.parseFloat(newValue.toPrecision(6));
|
|
20
|
-
|
|
21
|
-
const oldValue = this._value;
|
|
22
|
-
this._value = newValue;
|
|
23
|
-
this.requestUpdate("value", oldValue);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
get value() {
|
|
27
|
-
return this._value;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
private _value = 0;
|
|
31
|
-
|
|
32
|
-
@state()
|
|
33
|
-
private isDragging = false;
|
|
34
|
-
|
|
35
|
-
private dragStartAngle = 0;
|
|
36
|
-
private dragStartValue = 0;
|
|
37
|
-
|
|
38
|
-
static styles = css`
|
|
39
|
-
:host {
|
|
40
|
-
display: inline-block;
|
|
41
|
-
width: 200px; /* Default size, can be overridden by CSS */
|
|
42
|
-
height: 200px; /* Default size, can be overridden by CSS */
|
|
43
|
-
}
|
|
44
|
-
.dial-container {
|
|
45
|
-
position: relative;
|
|
46
|
-
width: 100%;
|
|
47
|
-
height: 100%;
|
|
48
|
-
border-radius: 50%;
|
|
49
|
-
background-color: #f3f4f6;
|
|
50
|
-
border: 2px solid #d1d5db;
|
|
51
|
-
}
|
|
52
|
-
.handle {
|
|
53
|
-
position: absolute;
|
|
54
|
-
width: 16px;
|
|
55
|
-
height: 16px;
|
|
56
|
-
border-radius: 50%;
|
|
57
|
-
border: 2px solid #3b82f6;
|
|
58
|
-
background-color: white;
|
|
59
|
-
cursor: grab;
|
|
60
|
-
}
|
|
61
|
-
.handle.dragging {
|
|
62
|
-
background-color: #3b82f6;
|
|
63
|
-
cursor: grabbing;
|
|
64
|
-
}
|
|
65
|
-
.center-text {
|
|
66
|
-
position: absolute;
|
|
67
|
-
top: 50%;
|
|
68
|
-
left: 50%;
|
|
69
|
-
transform: translate(-50%, -50%);
|
|
70
|
-
background-color: white;
|
|
71
|
-
border: 1px solid #d1d5db;
|
|
72
|
-
padding: 2px 4px;
|
|
73
|
-
border-radius: 4px;
|
|
74
|
-
font-family: monospace;
|
|
75
|
-
font-size: 12px;
|
|
76
|
-
}
|
|
77
|
-
`;
|
|
78
|
-
|
|
79
|
-
private getAngleFromPoint(clientX: number, clientY: number, rect: DOMRect) {
|
|
80
|
-
const center = this.clientWidth / 2;
|
|
81
|
-
const x = clientX - rect.left - center;
|
|
82
|
-
const y = clientY - rect.top - center;
|
|
83
|
-
return Math.atan2(y, x);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
private handlePointerDown(e: PointerEvent) {
|
|
87
|
-
e.preventDefault();
|
|
88
|
-
this.isDragging = true;
|
|
89
|
-
const rect = this.getBoundingClientRect();
|
|
90
|
-
this.dragStartAngle = this.getAngleFromPoint(e.clientX, e.clientY, rect);
|
|
91
|
-
this.dragStartValue = this.value;
|
|
92
|
-
this.setPointerCapture(e.pointerId);
|
|
93
|
-
this.addEventListener("pointermove", this.handlePointerMove);
|
|
94
|
-
this.addEventListener("pointerup", this.handlePointerUp);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
private handlePointerMove(e: PointerEvent) {
|
|
98
|
-
if (!this.isDragging) return;
|
|
99
|
-
|
|
100
|
-
const rect = this.getBoundingClientRect();
|
|
101
|
-
const currentAngle = this.getAngleFromPoint(e.clientX, e.clientY, rect);
|
|
102
|
-
const angleDelta = currentAngle - this.dragStartAngle;
|
|
103
|
-
|
|
104
|
-
let newValue = this.dragStartValue + (angleDelta * 180) / Math.PI;
|
|
105
|
-
|
|
106
|
-
if (e.shiftKey) {
|
|
107
|
-
newValue = Math.round(newValue / 15) * 15;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
// Normalize to 0-360 range
|
|
111
|
-
newValue = newValue % 360;
|
|
112
|
-
if (newValue < 0) {
|
|
113
|
-
newValue += 360;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// Limit to 6 significant digits
|
|
117
|
-
newValue = Number.parseFloat(newValue.toPrecision(6));
|
|
118
|
-
|
|
119
|
-
this.value = newValue;
|
|
120
|
-
this.dispatchEvent(
|
|
121
|
-
new CustomEvent<DialChangeDetail>("change", {
|
|
122
|
-
detail: { value: this.value },
|
|
123
|
-
}),
|
|
124
|
-
);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
private handlePointerUp(e: PointerEvent) {
|
|
128
|
-
this.isDragging = false;
|
|
129
|
-
this.releasePointerCapture(e.pointerId);
|
|
130
|
-
this.removeEventListener("pointermove", this.handlePointerMove);
|
|
131
|
-
this.removeEventListener("pointerup", this.handlePointerUp);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
render() {
|
|
135
|
-
const center = this.clientWidth / 2;
|
|
136
|
-
const radius = center - 20;
|
|
137
|
-
const handleAngle = (this.value * Math.PI) / 180;
|
|
138
|
-
const handleX = center + Math.cos(handleAngle) * radius;
|
|
139
|
-
const handleY = center + Math.sin(handleAngle) * radius;
|
|
140
|
-
|
|
141
|
-
const handleStyles = {
|
|
142
|
-
left: `${handleX - 8}px`,
|
|
143
|
-
top: `${handleY - 8}px`,
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
return html`
|
|
147
|
-
<div class="dial-container" @pointerdown=${this.handlePointerDown}>
|
|
148
|
-
<svg class="absolute inset-0 w-full h-full">
|
|
149
|
-
<circle
|
|
150
|
-
cx=${center}
|
|
151
|
-
cy=${center}
|
|
152
|
-
r=${radius}
|
|
153
|
-
fill="none"
|
|
154
|
-
stroke="#94a3b8"
|
|
155
|
-
stroke-width="2"
|
|
156
|
-
stroke-dasharray="4 4"
|
|
157
|
-
/>
|
|
158
|
-
${[0, 90, 180, 270].map((deg) => {
|
|
159
|
-
const angle = (deg * Math.PI) / 180;
|
|
160
|
-
const x1 = center + Math.cos(angle) * (radius - 8);
|
|
161
|
-
const y1 = center + Math.sin(angle) * (radius - 8);
|
|
162
|
-
const x2 = center + Math.cos(angle) * (radius + 8);
|
|
163
|
-
const y2 = center + Math.sin(angle) * (radius + 8);
|
|
164
|
-
return html`<line x1=${x1} y1=${y1} x2=${x2} y2=${y2} stroke="#64748b" stroke-width="2" />`;
|
|
165
|
-
})}
|
|
166
|
-
</svg>
|
|
167
|
-
<div class="handle ${this.isDragging ? "dragging" : ""}" style=${styleMap(handleStyles)}></div>
|
|
168
|
-
<div class="center-text">${this.value.toFixed(0)}°</div>
|
|
169
|
-
</div>
|
|
170
|
-
`;
|
|
171
|
-
}
|
|
172
|
-
}
|