@linker-design-plus/timeline-track 2.0.17 → 2.0.19

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.
@@ -47,6 +47,7 @@ export declare const CSS_CLASSES: {
47
47
  readonly filterButton: "clip-config-filter-button";
48
48
  readonly voiceCardGrid: "clip-config-voice-grid";
49
49
  readonly voiceCard: "clip-config-voice-card";
50
+ readonly voiceCardPreviewing: "clip-config-voice-card--previewing";
50
51
  readonly voiceCardAvatar: "clip-config-voice-avatar";
51
52
  readonly voiceCardMeta: "clip-config-voice-meta";
52
53
  readonly voiceCardTitle: "clip-config-voice-title";
@@ -60,6 +60,7 @@ export declare const CLIP_CONFIG_CSS_CLASSES: {
60
60
  readonly filterButton: "clip-config-filter-button";
61
61
  readonly voiceCardGrid: "clip-config-voice-grid";
62
62
  readonly voiceCard: "clip-config-voice-card";
63
+ readonly voiceCardPreviewing: "clip-config-voice-card--previewing";
63
64
  readonly voiceCardAvatar: "clip-config-voice-avatar";
64
65
  readonly voiceCardMeta: "clip-config-voice-meta";
65
66
  readonly voiceCardTitle: "clip-config-voice-title";
@@ -7,6 +7,7 @@ export declare class Track {
7
7
  private static readonly DEFAULT_CLIP_SNAP_THRESHOLD;
8
8
  private static readonly AUTO_SCROLL_EDGE_THRESHOLD;
9
9
  private static readonly AUTO_SCROLL_MAX_SPEED;
10
+ private static readonly MIN_CLIP_DURATION_MS;
10
11
  private layer;
11
12
  private trackGroup;
12
13
  private dragOverlayLayer;
@@ -85,7 +86,7 @@ export declare class Track {
85
86
  set lastDragClientX(value: number | null);
86
87
  get lastDragClientY(): number | null;
87
88
  set lastDragClientY(value: number | null);
88
- constructor(layer: Konva.Layer, config: TrackConfig, trackType: TrackType, zoom: number, trackY: number, trackHeight: number, theme: Theme, onClipUpdate: (clip: ClipType, originalClip?: ClipType, clipUpdates?: ClipStateUpdate[]) => void, onClipAdd: (clip: ClipType) => void, onClipRemove: (clipId: string) => void, onClipSplit: (clip1: ClipType, clip2: ClipType) => void, onClipSelect: (clip: ClipType) => void, onTimeJump: (time: TimeMs) => void, onHorizontalDragAutoScroll?: (nextScrollLeft: number) => number, onClipOverlap?: (clip: ClipType, currentTrackId: string) => void, onClipCrossTrackPreview?: (clip: ClipType, targetTrackY: number, currentTrackId: string) => 'self' | 'external' | 'clear', onClipCrossTrack?: (clip: ClipType, originalClip: ClipType | null, targetTrackY: number, currentTrackId: string) => boolean | void, onClearDropPreview?: () => void, onClearSelection?: () => void, onSnapGuideChange?: (guideTime: TimeMs | null) => void, onClipToggleSelection?: (clipId: string) => void, onSetSingleSelection?: (clipId: string) => void, getMultiDragClipIds?: (clipId: string) => string[] | null, onMultiDragMove?: (request: MultiDragMoveRequest) => boolean | void, onMultiDragInteractionEnd?: () => void, dragActivationThreshold?: number, enableClipSnap?: boolean, clipSnapThreshold?: number);
89
+ constructor(layer: Konva.Layer, config: TrackConfig, trackType: TrackType, zoom: number, trackY: number, trackHeight: number, theme: Theme, onClipUpdate: (clip: ClipType, originalClip?: ClipType, clipUpdates?: ClipStateUpdate[]) => void, onClipAdd: (clip: ClipType) => void, onClipRemove: (clipId: string) => void, onClipSplit: (clip1: ClipType, clip2: ClipType) => void, onClipSelect: (clip: ClipType) => void, onTimeJump: (time: TimeMs) => void, onHorizontalDragAutoScroll?: (nextScrollLeft: number) => number, onClipOverlap?: (clip: ClipType, currentTrackId: string, originalClip?: ClipType | null) => void, onClipCrossTrackPreview?: (clip: ClipType, targetTrackY: number, currentTrackId: string) => 'self' | 'external' | 'clear', onClipCrossTrack?: (clip: ClipType, originalClip: ClipType | null, targetTrackY: number, currentTrackId: string) => boolean | void, onClearDropPreview?: () => void, onClearSelection?: () => void, onSnapGuideChange?: (guideTime: TimeMs | null) => void, onClipToggleSelection?: (clipId: string) => void, onSetSingleSelection?: (clipId: string) => void, getMultiDragClipIds?: (clipId: string) => string[] | null, onMultiDragMove?: (request: MultiDragMoveRequest) => boolean | void, onMultiDragInteractionEnd?: () => void, dragActivationThreshold?: number, enableClipSnap?: boolean, clipSnapThreshold?: number);
89
90
  private initClips;
90
91
  private getLegacyInteractionSnapshot;
91
92
  private ensureDropPreviewGroup;
@@ -78,6 +78,8 @@ export declare class TimelineManager {
78
78
  private previewActiveClipIds;
79
79
  private playbackAttemptId;
80
80
  private lastPreviewSyncedPlayState;
81
+ private lastPreviewSyncSignature;
82
+ private lastSteadyPlaybackPreviewSyncAt;
81
83
  private previewSyncInteractionMode;
82
84
  private readonly resourceCacheManager;
83
85
  constructor(config?: Partial<TimelineConfig>);
@@ -158,6 +160,8 @@ export declare class TimelineManager {
158
160
  private getNextPreviewAutoAspectRatioOrder;
159
161
  private getAutoAspectRatioClip;
160
162
  private registerPreviewAutoAspectRatioClip;
163
+ private buildPreviewSyncSignature;
164
+ private shouldSkipSteadyPlaybackPreviewSync;
161
165
  private syncPreviewSession;
162
166
  private syncPreviewPlaybackStateIfNeeded;
163
167
  private beginPendingPreview;
@@ -13,7 +13,7 @@ export interface TimelineVerticalScrollView {
13
13
  setScrollTop(scrollTop: number): void;
14
14
  }
15
15
  export declare class TimelinePresentationAdapter {
16
- syncCurrentTime(timeline: TimelineTimeView | null, playhead: TimelineTimeView | null, tracks: TimelineTrackCollection, time: TimeMs): void;
16
+ syncCurrentTime(timeline: TimelineTimeView | null, playhead: TimelineTimeView | null, _tracks: TimelineTrackCollection, time: TimeMs): void;
17
17
  syncZoom(timeline: TimelineZoomView | null, playhead: TimelineZoomView | null, tracks: TimelineTrackCollection, zoom: number): void;
18
18
  syncScrollLeft(playhead: TimelineScrollView | null, tracks: TimelineTrackCollection, scrollLeft: number): void;
19
19
  syncScrollTop(panel: TimelineVerticalScrollView | null, scrollbar: TimelineVerticalScrollView | null, scrollTop: number): void;
@@ -17,7 +17,7 @@ export interface TimelineTrackBridgeHandlers {
17
17
  onClipSelect: (clip: Clip) => void;
18
18
  onTimeJump: (time: TimeMs) => void;
19
19
  onHorizontalDragAutoScroll?: (nextScrollLeft: number) => number;
20
- onClipOverlap?: (clip: Clip, currentTrackId: string) => void;
20
+ onClipOverlap?: (clip: Clip, currentTrackId: string, originalClip?: Clip | null) => void;
21
21
  onClipCrossTrackPreview?: (clip: Clip, targetTrackY: number, currentTrackId: string) => 'self' | 'external' | 'clear';
22
22
  onClipCrossTrack?: (clip: Clip, originalClip: Clip | null, targetTrackY: number, currentTrackId: string) => boolean | void;
23
23
  onClearDropPreview?: () => void;
@@ -41,7 +41,7 @@ export interface TimelineTrackBridgeCreateOptions {
41
41
  enableClipSnap?: boolean;
42
42
  clipSnapThreshold?: number;
43
43
  }
44
- export type TimelineTrackConstructor<TTrack = Track> = new (layer: Konva.Layer, config: TrackConfig, trackType: TrackType, zoom: number, trackY: number, trackHeight: number, theme: Theme, onClipUpdate: (clip: Clip, originalClip?: Clip, clipUpdates?: ClipStateUpdate[]) => void, onClipAdd: (clip: Clip) => void, onClipRemove: (clipId: string) => void, onClipSplit: (clip1: Clip, clip2: Clip) => void, onClipSelect: (clip: Clip) => void, onTimeJump: (time: TimeMs) => void, onHorizontalDragAutoScroll?: (nextScrollLeft: number) => number, onClipOverlap?: (clip: Clip, currentTrackId: string) => void, onClipCrossTrackPreview?: (clip: Clip, targetTrackY: number, currentTrackId: string) => 'self' | 'external' | 'clear', onClipCrossTrack?: (clip: Clip, originalClip: Clip | null, targetTrackY: number, currentTrackId: string) => boolean | void, onClearDropPreview?: () => void, onClearSelection?: () => void, onSnapGuideChange?: (guideTime: TimeMs | null) => void, onClipToggleSelection?: (clipId: string) => void, onSetSingleSelection?: (clipId: string) => void, getMultiDragClipIds?: (clipId: string) => string[] | null, onMultiDragMove?: (request: MultiDragMoveRequest) => boolean | void, onMultiDragInteractionEnd?: () => void, dragActivationThreshold?: number, enableClipSnap?: boolean, clipSnapThreshold?: number) => TTrack;
44
+ export type TimelineTrackConstructor<TTrack = Track> = new (layer: Konva.Layer, config: TrackConfig, trackType: TrackType, zoom: number, trackY: number, trackHeight: number, theme: Theme, onClipUpdate: (clip: Clip, originalClip?: Clip, clipUpdates?: ClipStateUpdate[]) => void, onClipAdd: (clip: Clip) => void, onClipRemove: (clipId: string) => void, onClipSplit: (clip1: Clip, clip2: Clip) => void, onClipSelect: (clip: Clip) => void, onTimeJump: (time: TimeMs) => void, onHorizontalDragAutoScroll?: (nextScrollLeft: number) => number, onClipOverlap?: (clip: Clip, currentTrackId: string, originalClip?: Clip | null) => void, onClipCrossTrackPreview?: (clip: Clip, targetTrackY: number, currentTrackId: string) => 'self' | 'external' | 'clear', onClipCrossTrack?: (clip: Clip, originalClip: Clip | null, targetTrackY: number, currentTrackId: string) => boolean | void, onClearDropPreview?: () => void, onClearSelection?: () => void, onSnapGuideChange?: (guideTime: TimeMs | null) => void, onClipToggleSelection?: (clipId: string) => void, onSetSingleSelection?: (clipId: string) => void, getMultiDragClipIds?: (clipId: string) => string[] | null, onMultiDragMove?: (request: MultiDragMoveRequest) => boolean | void, onMultiDragInteractionEnd?: () => void, dragActivationThreshold?: number, enableClipSnap?: boolean, clipSnapThreshold?: number) => TTrack;
45
45
  export declare class TimelineTrackBridge<TTrack = Track> {
46
46
  private readonly handlers;
47
47
  private readonly TrackCtor;