@zezosoft/react-player 0.0.7 → 0.0.9

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.
Files changed (43) hide show
  1. package/dist/VideoPlayer/MediaControls/BottomControls.d.ts +5 -0
  2. package/dist/VideoPlayer/MediaControls/ControlsHeader.d.ts +5 -0
  3. package/dist/VideoPlayer/MediaControls/MiddleControls.d.ts +3 -0
  4. package/dist/VideoPlayer/MediaControls/VideoPlayerControls.d.ts +4 -0
  5. package/dist/VideoPlayer/VideoPlayer.d.ts +1 -0
  6. package/dist/VideoPlayer/components/AdOverlay.d.ts +10 -0
  7. package/dist/VideoPlayer/components/Overlay.d.ts +4 -0
  8. package/dist/VideoPlayer/components/SubtitleOverlay.d.ts +7 -0
  9. package/dist/VideoPlayer/components/controls/BottomControls.d.ts +5 -0
  10. package/dist/VideoPlayer/components/controls/ControlsHeader.d.ts +5 -0
  11. package/dist/VideoPlayer/components/controls/MiddleControls.d.ts +3 -0
  12. package/dist/VideoPlayer/components/controls/VideoPlayerControls.d.ts +4 -0
  13. package/dist/VideoPlayer/components/controls/index.d.ts +4 -0
  14. package/dist/VideoPlayer/components/time-line/TimeLine.d.ts +21 -0
  15. package/dist/VideoPlayer/components/time-line/components/HoverTimeWithPreview.d.ts +16 -0
  16. package/dist/VideoPlayer/components/time-line/components/Thumb.d.ts +9 -0
  17. package/dist/VideoPlayer/components/time-line/components/TimeCodeItem.d.ts +21 -0
  18. package/dist/VideoPlayer/components/time-line/components/TimeCodes.d.ts +15 -0
  19. package/dist/VideoPlayer/components/time-line/utils/getEndTimeByIndex.d.ts +2 -0
  20. package/dist/VideoPlayer/components/time-line/utils/getHoverTimePosition.d.ts +3 -0
  21. package/dist/VideoPlayer/components/time-line/utils/getPositionPercent.d.ts +1 -0
  22. package/dist/VideoPlayer/components/time-line/utils/getTimeScale.d.ts +1 -0
  23. package/dist/VideoPlayer/components/time-line/utils/isInRange.d.ts +1 -0
  24. package/dist/VideoPlayer/components/time-line/utils/positionToMs.d.ts +1 -0
  25. package/dist/VideoPlayer/components/time-line/utils/secondsToTime.d.ts +6 -0
  26. package/dist/VideoPlayer/components/time-line/utils/timeToTimeString.d.ts +1 -0
  27. package/dist/VideoPlayer/constants.d.ts +3 -0
  28. package/dist/VideoPlayer/hooks/index.d.ts +2 -0
  29. package/dist/VideoPlayer/hooks/useAdManager.d.ts +8 -0
  30. package/dist/VideoPlayer/hooks/usePrimaryVideoLifecycle.d.ts +17 -0
  31. package/dist/VideoPlayer/hooks/useVideoEvents.d.ts +1 -1
  32. package/dist/VideoPlayer/hooks/useVideoSource.d.ts +1 -1
  33. package/dist/VideoPlayer/types/AdTypes.d.ts +36 -0
  34. package/dist/VideoPlayer/types/VideoPlayerTypes.d.ts +8 -2
  35. package/dist/VideoPlayer/utils/index.d.ts +1 -0
  36. package/dist/VideoPlayer/utils/qualityManager.d.ts +52 -0
  37. package/dist/components/ui/FullScreenToggle.d.ts +1 -1
  38. package/dist/components/ui/PiPictureInPictureToggle.d.ts +1 -1
  39. package/dist/index.js +1836 -228
  40. package/dist/store/slices/adsSlice.d.ts +24 -0
  41. package/dist/store/slices/index.d.ts +1 -0
  42. package/dist/store/types/StoreTypes.d.ts +44 -5
  43. package/package.json +2 -1
@@ -0,0 +1,24 @@
1
+ import { StateCreator } from "zustand";
2
+ import { AdBreak, AdType } from "../../VideoPlayer/types/AdTypes";
3
+ import { VideoState } from "../types/StoreTypes";
4
+ export interface AdsState {
5
+ isAdPlaying: boolean;
6
+ setIsAdPlaying: (isAdPlaying: boolean) => void;
7
+ currentAd: AdBreak | null;
8
+ setCurrentAd: (ad: AdBreak | null) => void;
9
+ adType: AdType | null;
10
+ setAdType: (type: AdType | null) => void;
11
+ adCurrentTime: number;
12
+ setAdCurrentTime: (time: number) => void;
13
+ canSkipAd: boolean;
14
+ setCanSkipAd: (canSkip: boolean) => void;
15
+ skipCountdown: number;
16
+ setSkipCountdown: (countdown: number) => void;
17
+ playedAdBreaks: string[];
18
+ addPlayedAdBreak: (id: string) => void;
19
+ midRollQueue: AdBreak[];
20
+ setMidRollQueue: (queue: AdBreak[]) => void;
21
+ adVideoRef: HTMLVideoElement | null;
22
+ setAdVideoRef: (ref: HTMLVideoElement | null) => void;
23
+ }
24
+ export declare const createAdsSlice: StateCreator<VideoState, [], [], AdsState>;
@@ -6,4 +6,5 @@ export { createVideoQualitySlice } from "./videoQualitySlice";
6
6
  export { createSubtitlesSlice } from "./subtitlesSlice";
7
7
  export { createEpisodesSlice } from "./episodesSlice";
8
8
  export { createIntroSlice } from "./introSlice";
9
+ export { createAdsSlice } from "./adsSlice";
9
10
  export { createResetSlice } from "./resetSlice";
@@ -1,4 +1,7 @@
1
1
  import Hls from "hls.js";
2
+ import * as dashjs from "dashjs";
3
+ import { AdBreak, AdType } from "../../VideoPlayer/types/AdTypes";
4
+ export type StreamType = "hls" | "dash" | "mp4" | "other";
2
5
  export interface VideoRefsState {
3
6
  videoRef: HTMLVideoElement | null;
4
7
  setVideoRef: (ref: HTMLVideoElement) => void;
@@ -32,12 +35,28 @@ export interface VideoControlsState {
32
35
  setIsFullscreen: (isFullscreen: boolean) => void;
33
36
  }
34
37
  export interface VideoQualityState {
35
- hlsInstance?: Hls;
36
- setHlsInstance: (hlsInstance: Hls) => void;
37
- qualityLevels?: Hls["levels"];
38
- setQualityLevels: (qualityLevels: Hls["levels"]) => void;
38
+ hlsInstance: Hls | null;
39
+ setHlsInstance: (hlsInstance: Hls | null) => void;
40
+ dashInstance: dashjs.MediaPlayerClass | null;
41
+ setDashInstance: (dashInstance: dashjs.MediaPlayerClass | null) => void;
42
+ qualityLevels: Array<{
43
+ height: number;
44
+ bitrate?: number;
45
+ originalIndex: number;
46
+ id?: string;
47
+ }>;
48
+ setQualityLevels: (qualityLevels: Array<{
49
+ height: number;
50
+ bitrate?: number;
51
+ originalIndex: number;
52
+ id?: string;
53
+ }>) => void;
39
54
  activeQuality: string;
40
55
  setActiveQuality: (activeQuality: string) => void;
56
+ currentQuality: string;
57
+ setCurrentQuality: (currentQuality: string) => void;
58
+ streamType: StreamType;
59
+ setStreamType: (streamType: StreamType) => void;
41
60
  }
42
61
  export interface SubtitleTrack {
43
62
  lang: string;
@@ -74,5 +93,25 @@ export interface IntroState {
74
93
  export interface StoreResetState {
75
94
  resetStore: () => void;
76
95
  }
77
- export interface VideoState extends VideoRefsState, VideoPlaybackState, VideoTimingState, VideoControlsState, VideoQualityState, SubtitlesState, EpisodesState, IntroState, StoreResetState {
96
+ export interface AdsState {
97
+ isAdPlaying: boolean;
98
+ setIsAdPlaying: (isAdPlaying: boolean) => void;
99
+ currentAd: AdBreak | null;
100
+ setCurrentAd: (ad: AdBreak | null) => void;
101
+ adType: AdType | null;
102
+ setAdType: (type: AdType | null) => void;
103
+ adCurrentTime: number;
104
+ setAdCurrentTime: (time: number) => void;
105
+ canSkipAd: boolean;
106
+ setCanSkipAd: (canSkip: boolean) => void;
107
+ skipCountdown: number;
108
+ setSkipCountdown: (countdown: number) => void;
109
+ playedAdBreaks: string[];
110
+ addPlayedAdBreak: (id: string) => void;
111
+ midRollQueue: AdBreak[];
112
+ setMidRollQueue: (queue: AdBreak[]) => void;
113
+ adVideoRef: HTMLVideoElement | null;
114
+ setAdVideoRef: (ref: HTMLVideoElement | null) => void;
115
+ }
116
+ export interface VideoState extends VideoRefsState, VideoPlaybackState, VideoTimingState, VideoControlsState, VideoQualityState, SubtitlesState, EpisodesState, IntroState, AdsState, StoreResetState {
78
117
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zezosoft/react-player",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "main": "dist/index.js",
5
5
  "type": "module",
6
6
  "types": "dist/index.d.ts",
@@ -57,6 +57,7 @@
57
57
  "zustand": "^5.0.3"
58
58
  },
59
59
  "dependencies": {
60
+ "dashjs": "^5.0.3",
60
61
  "react-icons": "^5.5.0",
61
62
  "screenfull": "^6.0.2"
62
63
  }