@twick/video-editor 0.15.19 → 0.15.20
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/components/timeline/timeline-view.d.ts +12 -2
- package/dist/components/track/track-base.d.ts +4 -9
- package/dist/components/track/track-element.d.ts +14 -8
- package/dist/hooks/use-edge-auto-scroll.d.ts +12 -0
- package/dist/hooks/use-player-manager.d.ts +1 -0
- package/dist/hooks/use-timeline-manager.d.ts +14 -3
- package/dist/index.js +356 -69
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +357 -70
- package/dist/index.mjs.map +1 -1
- package/dist/utils/drop-target.d.ts +12 -0
- package/package.json +5 -5
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Track, TrackElement, Size } from '@twick/timeline';
|
|
2
2
|
import { ElementColors } from '../../helpers/types';
|
|
3
|
+
import { DropTarget } from '../../utils/drop-target';
|
|
3
4
|
|
|
4
|
-
declare function TimelineView({ zoomLevel, selectedItem, duration, tracks, seekTrack, onAddTrack, onReorder, onItemSelect, onEmptyClick, onMarqueeSelect, onElementDrag, elementColors, selectedIds, playheadPositionPx, isPlayheadActive, onDropOnTimeline, videoResolution, enableDropOnTimeline, }: {
|
|
5
|
+
declare function TimelineView({ zoomLevel, selectedItem, duration, tracks, seekTrack, onAddTrack, onReorder, onItemSelect, onEmptyClick, onMarqueeSelect, onElementDrag, onElementDrop, elementColors, selectedIds, playheadPositionPx, isPlayheadActive, onDropOnTimeline, videoResolution, enableDropOnTimeline, }: {
|
|
5
6
|
zoomLevel: number;
|
|
6
7
|
duration: number;
|
|
7
8
|
tracks: Track[];
|
|
@@ -9,7 +10,7 @@ declare function TimelineView({ zoomLevel, selectedItem, duration, tracks, seekT
|
|
|
9
10
|
seekTrack?: React.ReactNode;
|
|
10
11
|
onAddTrack: () => void;
|
|
11
12
|
onReorder: (tracks: Track[]) => void;
|
|
12
|
-
onElementDrag: (
|
|
13
|
+
onElementDrag: (params: {
|
|
13
14
|
element: TrackElement;
|
|
14
15
|
dragType: string;
|
|
15
16
|
updates: {
|
|
@@ -17,6 +18,15 @@ declare function TimelineView({ zoomLevel, selectedItem, duration, tracks, seekT
|
|
|
17
18
|
end: number;
|
|
18
19
|
};
|
|
19
20
|
}) => void;
|
|
21
|
+
onElementDrop?: (params: {
|
|
22
|
+
element: TrackElement;
|
|
23
|
+
dragType: string;
|
|
24
|
+
updates: {
|
|
25
|
+
start: number;
|
|
26
|
+
end: number;
|
|
27
|
+
};
|
|
28
|
+
dropTarget: DropTarget | null;
|
|
29
|
+
}) => Promise<void>;
|
|
20
30
|
onSeek: (time: number) => void;
|
|
21
31
|
onItemSelect: (item: Track | TrackElement, event: React.MouseEvent) => void;
|
|
22
32
|
onEmptyClick: () => void;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Track, TrackElement } from '@twick/timeline';
|
|
2
2
|
import { ElementColors } from '../../helpers/types';
|
|
3
|
+
import { TrackElementDragPayload, DropPointer } from './track-element';
|
|
3
4
|
|
|
4
5
|
interface TrackBaseProps {
|
|
5
6
|
duration: number;
|
|
@@ -10,15 +11,9 @@ interface TrackBaseProps {
|
|
|
10
11
|
selectedIds: Set<string>;
|
|
11
12
|
allowOverlap?: boolean;
|
|
12
13
|
onItemSelection: (element: TrackElement, event: React.MouseEvent) => void;
|
|
13
|
-
onDrag: (
|
|
14
|
-
|
|
15
|
-
dragType: string;
|
|
16
|
-
updates: {
|
|
17
|
-
start: number;
|
|
18
|
-
end: number;
|
|
19
|
-
};
|
|
20
|
-
}) => void;
|
|
14
|
+
onDrag: (payload: TrackElementDragPayload, dropPointer?: DropPointer) => void;
|
|
15
|
+
onDragStateChange?: (isDragging: boolean, element?: TrackElement) => void;
|
|
21
16
|
elementColors?: ElementColors;
|
|
22
17
|
}
|
|
23
|
-
declare const TrackBase: ({ duration, zoom, track, trackWidth, selectedItem, selectedIds, onItemSelection, onDrag, allowOverlap, elementColors, }: TrackBaseProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
declare const TrackBase: ({ duration, zoom, track, trackWidth, selectedItem, selectedIds, onItemSelection, onDrag, allowOverlap, onDragStateChange, elementColors, }: TrackBaseProps) => import("react/jsx-runtime").JSX.Element;
|
|
24
19
|
export default TrackBase;
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import { TrackElement } from '@twick/timeline';
|
|
2
2
|
import { ElementColors } from '../../helpers/types';
|
|
3
3
|
|
|
4
|
+
export interface TrackElementDragPayload {
|
|
5
|
+
element: TrackElement;
|
|
6
|
+
dragType: string;
|
|
7
|
+
updates: {
|
|
8
|
+
start: number;
|
|
9
|
+
end: number;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export interface DropPointer {
|
|
13
|
+
clientX: number;
|
|
14
|
+
clientY: number;
|
|
15
|
+
}
|
|
4
16
|
export declare const TrackElementView: React.FC<{
|
|
5
17
|
element: TrackElement;
|
|
6
18
|
selectedItem: TrackElement | null;
|
|
@@ -11,14 +23,8 @@ export declare const TrackElementView: React.FC<{
|
|
|
11
23
|
prevEnd: number;
|
|
12
24
|
allowOverlap: boolean;
|
|
13
25
|
onSelection: (element: TrackElement, event: React.MouseEvent) => void;
|
|
14
|
-
onDrag: (
|
|
15
|
-
|
|
16
|
-
dragType: string;
|
|
17
|
-
updates: {
|
|
18
|
-
start: number;
|
|
19
|
-
end: number;
|
|
20
|
-
};
|
|
21
|
-
}) => void;
|
|
26
|
+
onDrag: (payload: TrackElementDragPayload, dropPointer?: DropPointer) => void;
|
|
27
|
+
onDragStateChange?: (isDragging: boolean, element?: TrackElement) => void;
|
|
22
28
|
elementColors?: ElementColors;
|
|
23
29
|
}>;
|
|
24
30
|
export default TrackElementView;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface UseEdgeAutoScrollParams {
|
|
2
|
+
isActive: boolean;
|
|
3
|
+
getMouseClientX: () => number;
|
|
4
|
+
scrollContainerRef: React.RefObject<HTMLDivElement | null>;
|
|
5
|
+
contentWidth: number;
|
|
6
|
+
edgeThreshold?: number;
|
|
7
|
+
maxScrollSpeed?: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Auto-scrolls the timeline horizontally when the pointer is near the left/right edge during drag (OpenVideo-style).
|
|
11
|
+
*/
|
|
12
|
+
export declare function useEdgeAutoScroll({ isActive, getMouseClientX, scrollContainerRef, contentWidth, edgeThreshold, maxScrollSpeed, }: UseEdgeAutoScrollParams): void;
|
|
@@ -30,6 +30,7 @@ export declare const usePlayerManager: ({ videoProps, canvasConfig, }: {
|
|
|
30
30
|
updateCanvas: (seekTime: number, forceRefresh?: boolean) => void;
|
|
31
31
|
buildCanvas: any;
|
|
32
32
|
resizeCanvas: any;
|
|
33
|
+
setBackgroundColor: any;
|
|
33
34
|
onPlayerUpdate: (event: CustomEvent) => void;
|
|
34
35
|
playerUpdating: boolean;
|
|
35
36
|
handleDropOnCanvas: (payload: CanvasDropPayload) => Promise<void>;
|
|
@@ -1,19 +1,30 @@
|
|
|
1
1
|
import { TrackElement, Track } from '@twick/timeline';
|
|
2
|
+
import { DropTarget } from '../utils/drop-target';
|
|
2
3
|
|
|
4
|
+
export interface ElementDropParams {
|
|
5
|
+
element: TrackElement;
|
|
6
|
+
dragType: string;
|
|
7
|
+
updates: {
|
|
8
|
+
start: number;
|
|
9
|
+
end: number;
|
|
10
|
+
};
|
|
11
|
+
dropTarget: DropTarget | null;
|
|
12
|
+
}
|
|
3
13
|
interface TimelineManagerReturn {
|
|
4
14
|
timelineData: {
|
|
5
15
|
tracks: Track[];
|
|
6
16
|
version: number;
|
|
7
17
|
} | null;
|
|
8
18
|
onAddTrack: () => void;
|
|
9
|
-
onElementDrag: (
|
|
19
|
+
onElementDrag: (params: {
|
|
20
|
+
element: TrackElement;
|
|
21
|
+
dragType: string;
|
|
10
22
|
updates: {
|
|
11
23
|
start: number;
|
|
12
24
|
end: number;
|
|
13
25
|
};
|
|
14
|
-
element: TrackElement;
|
|
15
|
-
dragType: string;
|
|
16
26
|
}) => void;
|
|
27
|
+
onElementDrop: (params: ElementDropParams) => Promise<void>;
|
|
17
28
|
onReorder: (reorderedItems: Track[]) => void;
|
|
18
29
|
onSeek: (time: number) => void;
|
|
19
30
|
onSelectionChange: (selectedItem: TrackElement | Track | null) => void;
|