@linker-design-plus/timeline-track 2.1.5 → 2.1.6

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/index.es.js CHANGED
@@ -15330,6 +15330,7 @@ class Au {
15330
15330
  loadStartedSinceRecover: !1,
15331
15331
  hasReadyEventSinceSourceChange: !1,
15332
15332
  hasBufferingSignalSinceSourceChange: !1,
15333
+ pendingClockAlignmentMediaTime: null,
15333
15334
  lastPlaybackResumeAttemptAtMs: -1,
15334
15335
  lastPlaybackProgressCheckAtMs: -1,
15335
15336
  lastPlaybackProgressMediaTimeSeconds: Number.NaN,
@@ -15484,15 +15485,15 @@ class Au {
15484
15485
  });
15485
15486
  }
15486
15487
  applySlotTarget(e, t) {
15487
- const i = ++e.applyToken, r = e.entry, n = _e(e.element) || null, a = r ? this.buildPreviewSourceCacheKey(r.clip) : null, o = t.entry ? this.buildPreviewSourceCacheKey(t.entry.clip) : null;
15488
- if (!!r && !!t.entry && r.clip.id !== t.entry.clip.id && (au(e), e.hasReadyEventSinceSourceChange = !1, e.hasBufferingSignalSinceSourceChange = !1, e.lastPlaybackResumeAttemptAtMs = -1, this.resetSlotPlaybackProgressProbe(e), this.resetSlotMediaPendingProbe(e)), e.entry = t.entry, e.requestedPlayState = t.playState, e.isActive = t.role === "current" && !!t.entry, e.errorMessage = t.entry ? e.errorMessage : null, e.isBuffering = t.entry ? e.isBuffering : !1, e.isSeeking = t.entry ? e.isSeeking : !1, e.consecutiveStalledCount = t.entry ? e.consecutiveStalledCount : 0, !t.entry) {
15488
+ const i = ++e.applyToken, r = e.entry, n = _e(e.element) || null, a = r ? this.buildPreviewSourceCacheKey(r.clip) : null, o = t.entry ? this.buildPreviewSourceCacheKey(t.entry.clip) : null, l = !!r && !!t.entry && r.clip.id !== t.entry.clip.id;
15489
+ if (l && (au(e), e.hasReadyEventSinceSourceChange = !1, e.hasBufferingSignalSinceSourceChange = !1, e.lastPlaybackResumeAttemptAtMs = -1, this.resetSlotPlaybackProgressProbe(e), this.resetSlotMediaPendingProbe(e)), e.entry = t.entry, e.requestedPlayState = t.playState, e.isActive = t.role === "current" && !!t.entry, e.errorMessage = t.entry ? e.errorMessage : null, e.isBuffering = t.entry ? e.isBuffering : !1, e.isSeeking = t.entry ? e.isSeeking : !1, e.consecutiveStalledCount = t.entry ? e.consecutiveStalledCount : 0, this.syncSlotClockAlignmentTarget(e, t, l), !t.entry) {
15489
15490
  this.deferredPreloadSlotKeys.delete(this.getSlotKey(e)), (r || n) && this.emitDiagnostic("info", "playback", "slot.cleared", this.buildSlotTraceData(e, {
15490
15491
  message: "Preview slot cleared",
15491
15492
  extra: {
15492
15493
  previousClipId: (r == null ? void 0 : r.clip.id) ?? null,
15493
15494
  previousSource: n
15494
15495
  }
15495
- })), Le(e.element), e.stableSourceUrl = null, e.desiredSource = null, e.hasReadyEventSinceSourceChange = !1, e.hasBufferingSignalSinceSourceChange = !1, e.lastPlaybackResumeAttemptAtMs = -1, this.resetSlotPlaybackProgressProbe(e), ou(e), this.releaseSlotObjectUrl(e), this.clearPendingRuntimeSource(e), e.element.removeAttribute("src"), Ye(e.element), this.setSlotVisible(e, !1, 0), this.refreshVisualLayout(), this.refreshRuntimeState();
15496
+ })), Le(e.element), e.stableSourceUrl = null, e.desiredSource = null, e.pendingClockAlignmentMediaTime = null, e.hasReadyEventSinceSourceChange = !1, e.hasBufferingSignalSinceSourceChange = !1, e.lastPlaybackResumeAttemptAtMs = -1, this.resetSlotPlaybackProgressProbe(e), ou(e), this.releaseSlotObjectUrl(e), this.clearPendingRuntimeSource(e), e.element.removeAttribute("src"), Ye(e.element), this.setSlotVisible(e, !1, 0), this.refreshVisualLayout(), this.refreshRuntimeState();
15496
15497
  return;
15497
15498
  }
15498
15499
  a && o && a !== o && (this.releaseSlotObjectUrl(e), e.hasReadyEventSinceSourceChange = !1, e.hasBufferingSignalSinceSourceChange = !1, e.lastPlaybackResumeAttemptAtMs = -1, this.resetSlotPlaybackProgressProbe(e));
@@ -16298,7 +16299,23 @@ class Au {
16298
16299
  if (!(t != null && t.entry))
16299
16300
  return this.buildPreviewClockStateFromSlot(null, "unavailable", "no-video-clock");
16300
16301
  const i = this.doesSlotSourceMatchDesired(t, t.desiredSource), r = this.getSlotMediaTimeMs(t), n = this.getSlotTimelineTime(t, r), a = t.requestedPlayState === "playing" && !t.element.ended;
16301
- return e.status === "failed" || t.phase === "failed" ? this.buildPreviewClockStateFromSlot(t, "failed", "failed", n, r) : a ? !i || t.isResolvingSource || t.phase === "binding" ? this.buildPreviewClockStateFromSlot(t, "priming", "resolving-source", n, r) : t.isSeeking || e.reason === "seeking" ? this.buildPreviewClockStateFromSlot(t, "blocked", "seeking", n, r) : t.isBuffering || t.playbackProgressStalled ? this.buildPreviewClockStateFromSlot(t, "blocked", "media-stalled", n, r) : this.isPreviewClockSlotAlignedToPendingTarget(t, n) ? e.status === "loading" ? this.buildPreviewClockStateFromSlot(t, "blocked", this.resolveClockBlockedReason(e.reason), n, r) : t.element.paused ? this.buildPreviewClockStateFromSlot(t, "blocked", "media-paused", n, r) : n === null || r === null ? this.buildPreviewClockStateFromSlot(t, "priming", "media-pending", n, r) : (this.pendingClockAlignmentTargetTime = null, this.buildPreviewClockStateFromSlot(t, "running", null, n, r)) : this.buildPreviewClockStateFromSlot(t, "blocked", "seeking", n, r) : this.buildPreviewClockStateFromSlot(t, "unavailable", null, n, r);
16302
+ return e.status === "failed" || t.phase === "failed" ? this.buildPreviewClockStateFromSlot(t, "failed", "failed", n, r) : a ? !i || t.isResolvingSource || t.phase === "binding" ? this.buildPreviewClockStateFromSlot(t, "priming", "resolving-source", n, r) : t.isSeeking || e.reason === "seeking" ? this.buildPreviewClockStateFromSlot(t, "blocked", "seeking", n, r) : this.isSlotClockAlignedToPendingMediaTarget(t, r) ? t.isBuffering || t.playbackProgressStalled ? this.buildPreviewClockStateFromSlot(t, "blocked", "media-stalled", n, r) : this.isPreviewClockSlotAlignedToPendingTarget(t, n) ? e.status === "loading" ? this.buildPreviewClockStateFromSlot(t, "blocked", this.resolveClockBlockedReason(e.reason), n, r) : t.element.paused ? this.buildPreviewClockStateFromSlot(t, "blocked", "media-paused", n, r) : n === null || r === null ? this.buildPreviewClockStateFromSlot(t, "priming", "media-pending", n, r) : (this.pendingClockAlignmentTargetTime = null, this.buildPreviewClockStateFromSlot(t, "running", null, n, r)) : this.buildPreviewClockStateFromSlot(t, "blocked", "seeking", n, r) : this.buildPreviewClockStateFromSlot(t, "blocked", "seeking", n, r) : this.buildPreviewClockStateFromSlot(t, "unavailable", null, n, r);
16303
+ }
16304
+ syncSlotClockAlignmentTarget(e, t, i) {
16305
+ if (t.role !== "current" || !t.entry) {
16306
+ e.pendingClockAlignmentMediaTime = null;
16307
+ return;
16308
+ }
16309
+ (i || e.pendingClockAlignmentMediaTime !== null) && (e.pendingClockAlignmentMediaTime = t.entry.mediaTime);
16310
+ }
16311
+ isSlotClockAlignedToPendingMediaTarget(e, t) {
16312
+ const i = e.pendingClockAlignmentMediaTime;
16313
+ if (i === null)
16314
+ return !0;
16315
+ if (t === null)
16316
+ return !1;
16317
+ const r = this.getPreviewClockTargetAlignmentThresholdMs(e);
16318
+ return Math.abs(t - i) > r ? !1 : (e.pendingClockAlignmentMediaTime = null, !0);
16302
16319
  }
16303
16320
  buildPreviewClockStateFromSlot(e, t, i, r = null, n = null) {
16304
16321
  var a;
@@ -19202,7 +19219,7 @@ class Xs {
19202
19219
  this.entries.clear();
19203
19220
  }
19204
19221
  }
19205
- const Gp = "@linker-design-plus/timeline-track", Hp = "2.1.4", Wt = {
19222
+ const Gp = "@linker-design-plus/timeline-track", Hp = "2.1.5", Wt = {
19206
19223
  name: Gp,
19207
19224
  version: Hp
19208
19225
  }, zp = 1, $p = 2, Vp = 250, Up = 750, Wp = 1500;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linker-design-plus/timeline-track",
3
- "version": "2.1.5",
3
+ "version": "2.1.6",
4
4
  "description": "A TypeScript-based video editing library with timeline and track functionality",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.es.js",