cafe-video-player 2.0.21 → 2.0.23
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/backwardForward-3HROPSFK.js +2 -0
- package/{backwardForward-FW25LAUC.js.map → backwardForward-3HROPSFK.js.map} +1 -1
- package/backwardForward-4K2JDYXO.mjs +2 -0
- package/{backwardForward-6U6VETTV.mjs.map → backwardForward-4K2JDYXO.mjs.map} +1 -1
- package/chunk-2UQZ2IND.js +2 -0
- package/{chunk-4AXKM55A.js.map → chunk-2UQZ2IND.js.map} +1 -1
- package/chunk-4WSW2YML.js +2 -0
- package/{chunk-AJG5T24R.js.map → chunk-4WSW2YML.js.map} +1 -1
- package/chunk-5OIS455P.mjs +3 -0
- package/chunk-5OIS455P.mjs.map +1 -0
- package/{chunk-3ZNIRSH3.mjs → chunk-6ZKKSIBV.mjs} +2 -2
- package/{chunk-3ZNIRSH3.mjs.map → chunk-6ZKKSIBV.mjs.map} +1 -1
- package/chunk-AOOXGUAJ.js +2 -0
- package/{chunk-J7CRSGHN.js.map → chunk-AOOXGUAJ.js.map} +1 -1
- package/{chunk-P6UV7U4E.mjs → chunk-AUZAI7ZJ.mjs} +2 -2
- package/{chunk-P6UV7U4E.mjs.map → chunk-AUZAI7ZJ.mjs.map} +1 -1
- package/{chunk-7CZEUDNW.mjs → chunk-BMC7X7BK.mjs} +3 -3
- package/{chunk-7CZEUDNW.mjs.map → chunk-BMC7X7BK.mjs.map} +1 -1
- package/chunk-DQ4YH4BY.mjs +9 -0
- package/chunk-DQ4YH4BY.mjs.map +1 -0
- package/{chunk-LAFBWF7M.js → chunk-G5R3U2OG.js} +2 -2
- package/{chunk-LAFBWF7M.js.map → chunk-G5R3U2OG.js.map} +1 -1
- package/{chunk-NFS5ZBFX.mjs → chunk-IOYUXRGD.mjs} +2 -2
- package/{chunk-NFS5ZBFX.mjs.map → chunk-IOYUXRGD.mjs.map} +1 -1
- package/{chunk-R65WA2TV.mjs → chunk-Q52RFNV3.mjs} +2 -2
- package/{chunk-R65WA2TV.mjs.map → chunk-Q52RFNV3.mjs.map} +1 -1
- package/{chunk-NTINJ2J6.js → chunk-QHLPSV6I.js} +2 -2
- package/{chunk-NTINJ2J6.js.map → chunk-QHLPSV6I.js.map} +1 -1
- package/{chunk-ELG5PCR2.mjs → chunk-TUYGEJVR.mjs} +2 -2
- package/{chunk-ELG5PCR2.mjs.map → chunk-TUYGEJVR.mjs.map} +1 -1
- package/chunk-WG7PYZXW.js +3 -0
- package/chunk-WG7PYZXW.js.map +1 -0
- package/chunk-ZK5BOK4Y.js +3 -0
- package/{chunk-S3ULKQPB.js.map → chunk-ZK5BOK4Y.js.map} +1 -1
- package/chunk-ZPH2HWHV.js +9 -0
- package/chunk-ZPH2HWHV.js.map +1 -0
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/index.mjs +1 -1
- package/index.mjs.map +1 -1
- package/nonStaticVideoTag-I5AI5KU3.js +2 -0
- package/{nonStaticVideoTag-6IOIANAD.js.map → nonStaticVideoTag-I5AI5KU3.js.map} +1 -1
- package/{nonStaticVideoTag-JKZGTEQK.mjs → nonStaticVideoTag-URXCYYXT.mjs} +2 -2
- package/{nonStaticVideoTag-JKZGTEQK.mjs.map → nonStaticVideoTag-URXCYYXT.mjs.map} +1 -1
- package/package.json +1 -1
- package/staticPlayer-GU5RRZIR.js +2 -0
- package/{staticPlayer-L6ZHTYIE.js.map → staticPlayer-GU5RRZIR.js.map} +1 -1
- package/staticPlayer-YU2BZCDF.mjs +2 -0
- package/{staticPlayer-4IVOGXWC.mjs.map → staticPlayer-YU2BZCDF.mjs.map} +1 -1
- package/staticVideoTag-DYKLVJRS.js +2 -0
- package/{staticVideoTag-4I2J2KRA.js.map → staticVideoTag-DYKLVJRS.js.map} +1 -1
- package/{staticVideoTag-GJF26BZ3.mjs → staticVideoTag-ZNZBQ7WW.mjs} +2 -2
- package/{staticVideoTag-GJF26BZ3.mjs.map → staticVideoTag-ZNZBQ7WW.mjs.map} +1 -1
- package/{touchVolumeBrightness-77BH7B3T.js → touchVolumeBrightness-BHL4CXCQ.js} +3 -3
- package/{touchVolumeBrightness-77BH7B3T.js.map → touchVolumeBrightness-BHL4CXCQ.js.map} +1 -1
- package/{touchVolumeBrightness-VSJS4WWO.mjs → touchVolumeBrightness-THRKUQFI.mjs} +3 -3
- package/{touchVolumeBrightness-VSJS4WWO.mjs.map → touchVolumeBrightness-THRKUQFI.mjs.map} +1 -1
- package/videoArea-JBENXGDZ.mjs +2 -0
- package/{videoArea-E7A4UFKZ.mjs.map → videoArea-JBENXGDZ.mjs.map} +1 -1
- package/videoArea-ZU4LKPTL.js +2 -0
- package/{videoArea-AXJIXBW5.js.map → videoArea-ZU4LKPTL.js.map} +1 -1
- package/videoPlayerStyles.css +6 -3
- package/vodPlayer-62FEZN5H.js +2 -0
- package/{vodPlayer-YZ7XNHKT.js.map → vodPlayer-62FEZN5H.js.map} +1 -1
- package/{vodPlayer-LEY3FMUD.mjs → vodPlayer-SQSP4JD5.mjs} +2 -2
- package/{vodPlayer-LEY3FMUD.mjs.map → vodPlayer-SQSP4JD5.mjs.map} +1 -1
- package/backwardForward-6U6VETTV.mjs +0 -2
- package/backwardForward-FW25LAUC.js +0 -2
- package/chunk-4AXKM55A.js +0 -2
- package/chunk-AJG5T24R.js +0 -2
- package/chunk-J7CRSGHN.js +0 -2
- package/chunk-KODWZOFT.js +0 -3
- package/chunk-KODWZOFT.js.map +0 -1
- package/chunk-LHO7HY26.mjs +0 -3
- package/chunk-LHO7HY26.mjs.map +0 -1
- package/chunk-S3ULKQPB.js +0 -3
- package/chunk-UTQQHPIT.mjs +0 -9
- package/chunk-UTQQHPIT.mjs.map +0 -1
- package/chunk-Y3GDFXWU.js +0 -9
- package/chunk-Y3GDFXWU.js.map +0 -1
- package/nonStaticVideoTag-6IOIANAD.js +0 -2
- package/staticPlayer-4IVOGXWC.mjs +0 -2
- package/staticPlayer-L6ZHTYIE.js +0 -2
- package/staticVideoTag-4I2J2KRA.js +0 -2
- package/videoArea-AXJIXBW5.js +0 -2
- package/videoArea-E7A4UFKZ.mjs +0 -2
- package/vodPlayer-YZ7XNHKT.js +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunkG5R3U2OG_js=require('./chunk-G5R3U2OG.js');require('./chunk-2UQZ2IND.js'),require('./chunk-WG7PYZXW.js'),require('./chunk-DQNYU4AM.js'),require('./chunk-WO4IQUGO.js');module.exports=chunkG5R3U2OG_js.a;//# sourceMappingURL=backwardForward-3HROPSFK.js.map
|
|
2
|
+
//# sourceMappingURL=backwardForward-3HROPSFK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"backwardForward-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"backwardForward-3HROPSFK.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"backwardForward-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"backwardForward-4K2JDYXO.mjs"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunkWG7PYZXW_js=require('./chunk-WG7PYZXW.js'),chunkWO4IQUGO_js=require('./chunk-WO4IQUGO.js');chunkWO4IQUGO_js.e();var B=e=>{if(e===null||e.target.nodeName!=="INPUT"){let t=chunkWG7PYZXW_js.M.dispatch;e!==null&&(e.stopPropagation(),e.preventDefault()),chunkWG7PYZXW_js.fa().paused?chunkWG7PYZXW_js.fa().play():chunkWG7PYZXW_js.fa().pause(),t(chunkWG7PYZXW_js.a(!chunkWG7PYZXW_js.fa().paused)),chunkWG7PYZXW_js.ga()&&chunkWG7PYZXW_js.ga().played&&(chunkWG7PYZXW_js.ga().pause(),t(chunkWG7PYZXW_js.K(!1)));}},G=()=>{let e=chunkWG7PYZXW_js.M.dispatch,{play:t}=chunkWG7PYZXW_js.M.getState().controller;e(chunkWG7PYZXW_js.a(t)),setTimeout(()=>{chunkWG7PYZXW_js.fa()&&(t?chunkWG7PYZXW_js.fa().play():chunkWG7PYZXW_js.fa().pause());},0);},H=e=>{if(e===null||e.target.nodeName!=="INPUT"){let t=chunkWG7PYZXW_js.M.dispatch;chunkWG7PYZXW_js.ga().paused?chunkWG7PYZXW_js.ga().play():chunkWG7PYZXW_js.ga().pause(),t(chunkWG7PYZXW_js.K(!chunkWG7PYZXW_js.ga().paused)),chunkWG7PYZXW_js.fa()&&chunkWG7PYZXW_js.fa().played&&(chunkWG7PYZXW_js.fa().pause(),t(chunkWG7PYZXW_js.a(!1)));}};var J=e=>{let t=chunkWG7PYZXW_js.M.dispatch,{settings:r}=chunkWG7PYZXW_js.M.getState().user;t(chunkWG7PYZXW_js.G({...r,volume:e})),chunkWG7PYZXW_js.ca("isIOS")?chunkWG7PYZXW_js.fa().muted=!chunkWG7PYZXW_js.fa().muted:chunkWG7PYZXW_js.fa().volume=e/100;},K=(e,t=15,r)=>{if(e==="touchBackward"?e="backward":e==="touchForward"&&(e="forward"),r&&r.target.nodeName==="INPUT"||e==="backward"&&chunkWG7PYZXW_js.fa().currentTime<15||e==="forward"&&chunkWG7PYZXW_js.fa().duration-chunkWG7PYZXW_js.fa().currentTime<15)return;chunkWG7PYZXW_js.la(chunkWG7PYZXW_js.pa(e));let n=0;e==="backward"?t===0?n=0:n=chunkWG7PYZXW_js.fa().currentTime-t:e==="forward"&&(t===chunkWG7PYZXW_js.fa().duration?n=t:n=chunkWG7PYZXW_js.fa().currentTime+t),chunkWG7PYZXW_js.fa().currentTime=n;},w=()=>{let e=chunkWG7PYZXW_js.M.dispatch,t=document.fullscreenElement;chunkWG7PYZXW_js.ca("isIOS")?chunkWG7PYZXW_js.fa().webkitEnterFullScreen?(e(chunkWG7PYZXW_js.a(!1)),chunkWG7PYZXW_js.fa().webkitEnterFullScreen()):(e(chunkWG7PYZXW_js.F()),chunkWG7PYZXW_js.la(chunkWG7PYZXW_js.qa("fullScreen"))):t?(e(chunkWG7PYZXW_js.h(!1)),document.exitFullscreen()):(e(chunkWG7PYZXW_js.F()),document.documentElement.requestFullscreen(),e(chunkWG7PYZXW_js.h(!0)),chunkWG7PYZXW_js.la(chunkWG7PYZXW_js.qa("fullScreen")));},Q=()=>{chunkWG7PYZXW_js.ca("isTouchScreen")&&!chunkWG7PYZXW_js.ca("isIOS")&&(chunkWG7PYZXW_js.ca("isLandscape")&&!chunkWG7PYZXW_js.ca("isFullScreen")?window.screen.orientation.lock("portrait"):window.screen.orientation.lock("landscape"));},W=e=>{let t=chunkWG7PYZXW_js.M.dispatch;t(chunkWG7PYZXW_js.o(e==="lock")),chunkWG7PYZXW_js.la(chunkWG7PYZXW_js.ta(e)),e==="unlock"&&localStorage.setItem("unlock-click","true");},X=(e,t)=>{if(chunkWG7PYZXW_js.ca("isSendTimelineLog")){let r=chunkWG7PYZXW_js.M.dispatch,{videoTimelines:n}=chunkWG7PYZXW_js.M.getState().videoData,d=Math.floor(e),u=Math.floor(t);n.length===0?r(chunkWG7PYZXW_js.w([d>=chunkWG7PYZXW_js.fa().duration?u:d])):(n[0]<d&&chunkWG7PYZXW_js.Da({url:chunkWG7PYZXW_js.ka().videoTimelineLog,method:"post",data:chunkWG7PYZXW_js.ua(n[0],d)}),u&&u>=chunkWG7PYZXW_js.fa().duration?r(chunkWG7PYZXW_js.w([])):r(chunkWG7PYZXW_js.w([u])));}},Y=()=>{let e=chunkWG7PYZXW_js.M.dispatch,t=document.getElementById("video-area")?.getBoundingClientRect();t.height=t.width*9/16,t&&e(chunkWG7PYZXW_js.t(t));},Z=e=>{!chunkWG7PYZXW_js.ca("isTouchScreen")&&e.target.nodeName!=="INPUT"&&w();};exports.a=B;exports.b=G;exports.c=H;exports.d=J;exports.e=K;exports.f=w;exports.g=Q;exports.h=W;exports.i=X;exports.j=Y;exports.k=Z;//# sourceMappingURL=chunk-2UQZ2IND.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-2UQZ2IND.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/videoPlayerLibrary/helpers/redux/actions/controller.actions.ts"],"names":["init_cjs_shims","handlePlayPause","event","dispatch","store_default","mainPlayerVideoTag","setPlay","miniPlayerVideoTag","setPlayMiniPlayer","handlePlayPauseAfterChangeVideo","play","handlePlayerPauseMiniPlayer","handleChangeSoundVolume","volume","settings","setUserSettings","conditions","handleBackwardForward","type","forwardBackwardCount","sendFluentLog","backwardForwardLog","currentTime","handleFullScreen","isFullScreen","setClearPopoversSlice","fullscreenLog","setIsFullScreen","handleLockOrientation","handleLock","setLock","lockLog","handleVideoTimeline","currentTimeValue","movedTimeValue","videoTimelines","movedTime","setVideoTimelines","apiCaller","API","videoTimelineLog","handleVideoElementSizeInfo","element","setVideoElementSizeInfo","handleDoubleClick"],"mappings":"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","file":"chunk-4AXKM55A.js","sourcesContent":["import { setIsFullScreen, setLock, setPlay } from \"../slices/controllerSlice\";\r\nimport store from \"../store\";\r\nimport { setVideoElementSizeInfo, setVideoTimelines } from \"../slices/videoDataSlice\";\r\nimport { ConditionName } from \"../../interfaces/enums\";\r\nimport { apiCaller } from \"../../services/apiCaller\";\r\nimport { API } from \"../../services/services\";\r\nimport { setUserSettings } from \"../slices/userSlice\";\r\nimport { setClearPopoversSlice } from \"../slices/popoversSlice\";\r\nimport { conditions } from \"../../conditions/conditions\";\r\nimport { backwardForwardLog, fullscreenLog, lockLog, videoTimelineLog } from \"../../logs/logs\";\r\nimport { sendFluentLog } from \"../../logs/fluentdLogger\";\r\nimport { mainPlayerVideoTag, miniPlayerVideoTag } from \"../../constants\";\r\nimport { setPlayMiniPlayer } from \"../slices/miniPlayerSlice\";\r\n\r\nexport const handlePlayPause = (event: any) => {\r\n if (event === null || event.target.nodeName !== \"INPUT\") {\r\n const dispatch = store.dispatch;\r\n if (event !== null) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n mainPlayerVideoTag().paused ? mainPlayerVideoTag().play() : mainPlayerVideoTag().pause();\r\n dispatch(setPlay(!mainPlayerVideoTag().paused));\r\n if(miniPlayerVideoTag() && miniPlayerVideoTag().played) {\r\n miniPlayerVideoTag().pause();\r\n dispatch(setPlayMiniPlayer(false));\r\n }\r\n }\r\n};\r\n\r\nexport const handlePlayPauseAfterChangeVideo = () => {\r\n const dispatch = store.dispatch;\r\n const {play} = store.getState().controller;\r\n dispatch(setPlay(play));\r\n setTimeout(() => {\r\n if(mainPlayerVideoTag()) {\r\n if(play) mainPlayerVideoTag().play();\r\n else mainPlayerVideoTag().pause();\r\n }\r\n },0)\r\n}\r\n\r\nexport const handlePlayerPauseMiniPlayer = (event:any) => {\r\n if (event === null || event.target.nodeName !== \"INPUT\") {\r\n const dispatch = store.dispatch;\r\n miniPlayerVideoTag().paused ? miniPlayerVideoTag().play() : miniPlayerVideoTag().pause();\r\n dispatch(setPlayMiniPlayer(!miniPlayerVideoTag().paused))\r\n if(mainPlayerVideoTag() && mainPlayerVideoTag().played) {\r\n mainPlayerVideoTag().pause();\r\n dispatch(setPlay(false));\r\n }\r\n }\r\n}\r\n\r\nexport const handlePlayPauseInDOM = (type: boolean) => {\r\n const dispatch = store.dispatch;\r\n if (type) {\r\n mainPlayerVideoTag().play();\r\n dispatch(setPlay(true));\r\n return true;\r\n } else {\r\n mainPlayerVideoTag().pause();\r\n dispatch(setPlay(false));\r\n return false;\r\n }\r\n};\r\n\r\nexport const handleChangeSoundVolume = (volume: number) => {\r\n const dispatch = store.dispatch;\r\n const { settings } = store.getState().user;\r\n dispatch(setUserSettings({ ...settings, volume }));\r\n if (conditions(ConditionName.isIOS)) mainPlayerVideoTag().muted = !mainPlayerVideoTag().muted;\r\n else mainPlayerVideoTag().volume = volume / 100;\r\n};\r\n\r\nexport const handleBackwardForward = (type: string, forwardBackwardCount: number = 15, event?: any) => {\r\n if (type === \"touchBackward\") type = \"backward\";\r\n else if (type === \"touchForward\") type = \"forward\";\r\n if ((event && event.target.nodeName === \"INPUT\") || (type === \"backward\" && mainPlayerVideoTag().currentTime < 15) || (type === \"forward\" && mainPlayerVideoTag().duration - mainPlayerVideoTag().currentTime < 15 )) return;\r\n sendFluentLog(backwardForwardLog(type));\r\n let currentTime = 0;\r\n if (type === \"backward\") {\r\n if (forwardBackwardCount === 0) currentTime = 0;\r\n else currentTime = mainPlayerVideoTag().currentTime - forwardBackwardCount;\r\n } else if (type === \"forward\") {\r\n if (forwardBackwardCount === mainPlayerVideoTag().duration) currentTime = forwardBackwardCount;\r\n else currentTime = mainPlayerVideoTag().currentTime + forwardBackwardCount;\r\n }\r\n mainPlayerVideoTag().currentTime = currentTime;\r\n};\r\n\r\nexport const handleFullScreen = () => {\r\n const dispatch = store.dispatch;\r\n const isFullScreen = document.fullscreenElement;\r\n if (conditions(ConditionName.isIOS)) {\r\n if ((mainPlayerVideoTag() as any).webkitEnterFullScreen) {\r\n dispatch(setPlay(false));\r\n // Toggle fullscreen in Safari for iPad\r\n (mainPlayerVideoTag() as any).webkitEnterFullScreen();\r\n } else {\r\n dispatch(setClearPopoversSlice());\r\n sendFluentLog(fullscreenLog(\"fullScreen\"));\r\n }\r\n } else {\r\n if (isFullScreen) {\r\n dispatch(setIsFullScreen(false));\r\n document.exitFullscreen();\r\n } else {\r\n dispatch(setClearPopoversSlice());\r\n document.documentElement.requestFullscreen();\r\n dispatch(setIsFullScreen(true));\r\n sendFluentLog(fullscreenLog(\"fullScreen\"));\r\n }\r\n }\r\n};\r\n\r\nexport const handleLockOrientation = () => {\r\n if (conditions(ConditionName.isTouchScreen) && !conditions(ConditionName.isIOS)) {\r\n if (conditions(ConditionName.isLandscape) && !conditions(ConditionName.isFullScreen)) (window.screen.orientation as any).lock(\"portrait\");\r\n else (window.screen.orientation as any).lock(\"landscape\");\r\n }\r\n};\r\n\r\nexport const handleLock = (type: string) => {\r\n const dispatch = store.dispatch;\r\n dispatch(setLock(type === \"lock\"));\r\n sendFluentLog(lockLog(type));\r\n if(type === \"unlock\") localStorage.setItem(\"unlock-click\",\"true\");\r\n};\r\n\r\nexport const handleVideoTimeline = (currentTimeValue: number, movedTimeValue?: number) => {\r\n if (conditions(ConditionName.isSendTimelineLog)) {\r\n const dispatch = store.dispatch;\r\n const { videoTimelines } = store.getState().videoData;\r\n let currentTime = Math.floor(currentTimeValue);\r\n let movedTime = Math.floor(movedTimeValue!);\r\n if (videoTimelines.length === 0) {\r\n dispatch(setVideoTimelines([currentTime >= mainPlayerVideoTag().duration ? movedTime! : currentTime]));\r\n } else {\r\n if (videoTimelines[0] < currentTime)\r\n apiCaller({ url: API().videoTimelineLog, method: \"post\", data: videoTimelineLog(videoTimelines[0], currentTime) });\r\n if (movedTime && movedTime >= mainPlayerVideoTag().duration) dispatch(setVideoTimelines([]));\r\n else dispatch(setVideoTimelines([movedTime!]));\r\n }\r\n }\r\n};\r\n\r\nexport const handleVideoElementSizeInfo = () => {\r\n const dispatch = store.dispatch;\r\n const element: any = document.getElementById(\"video-area\")?.getBoundingClientRect();\r\n element.height = (element.width * 9) / 16;\r\n if (element) dispatch(setVideoElementSizeInfo(element));\r\n};\r\n\r\nexport const handleDoubleClick = (event: any) => {\r\n if (!conditions(ConditionName.isTouchScreen) && event.target.nodeName !== \"INPUT\") handleFullScreen();\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/videoPlayerLibrary/helpers/redux/actions/controller.actions.ts"],"names":["init_cjs_shims","handlePlayPause","event","dispatch","store_default","mainPlayerVideoTag","setPlay","miniPlayerVideoTag","setPlayMiniPlayer","handlePlayPauseAfterChangeVideo","play","handlePlayerPauseMiniPlayer","handleChangeSoundVolume","volume","settings","setUserSettings","conditions","handleBackwardForward","type","forwardBackwardCount","sendFluentLog","backwardForwardLog","currentTime","handleFullScreen","isFullScreen","setClearPopoversSlice","fullscreenLog","setIsFullScreen","handleLockOrientation","handleLock","setLock","lockLog","handleVideoTimeline","currentTimeValue","movedTimeValue","videoTimelines","movedTime","setVideoTimelines","apiCaller","API","videoTimelineLog","handleVideoElementSizeInfo","element","setVideoElementSizeInfo","handleDoubleClick"],"mappings":"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","file":"chunk-2UQZ2IND.js","sourcesContent":["import { setIsFullScreen, setLock, setPlay } from \"../slices/controllerSlice\";\r\nimport store from \"../store\";\r\nimport { setVideoElementSizeInfo, setVideoTimelines } from \"../slices/videoDataSlice\";\r\nimport { ConditionName } from \"../../interfaces/enums\";\r\nimport { apiCaller } from \"../../services/apiCaller\";\r\nimport { API } from \"../../services/services\";\r\nimport { setUserSettings } from \"../slices/userSlice\";\r\nimport { setClearPopoversSlice } from \"../slices/popoversSlice\";\r\nimport { conditions } from \"../../conditions/conditions\";\r\nimport { backwardForwardLog, fullscreenLog, lockLog, videoTimelineLog } from \"../../logs/logs\";\r\nimport { sendFluentLog } from \"../../logs/fluentdLogger\";\r\nimport { mainPlayerVideoTag, miniPlayerVideoTag } from \"../../constants\";\r\nimport { setPlayMiniPlayer } from \"../slices/miniPlayerSlice\";\r\n\r\nexport const handlePlayPause = (event: any) => {\r\n if (event === null || event.target.nodeName !== \"INPUT\") {\r\n const dispatch = store.dispatch;\r\n if (event !== null) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n mainPlayerVideoTag().paused ? mainPlayerVideoTag().play() : mainPlayerVideoTag().pause();\r\n dispatch(setPlay(!mainPlayerVideoTag().paused));\r\n if(miniPlayerVideoTag() && miniPlayerVideoTag().played) {\r\n miniPlayerVideoTag().pause();\r\n dispatch(setPlayMiniPlayer(false));\r\n }\r\n }\r\n};\r\n\r\nexport const handlePlayPauseAfterChangeVideo = () => {\r\n const dispatch = store.dispatch;\r\n const {play} = store.getState().controller;\r\n dispatch(setPlay(play));\r\n setTimeout(() => {\r\n if(mainPlayerVideoTag()) {\r\n if(play) mainPlayerVideoTag().play();\r\n else mainPlayerVideoTag().pause();\r\n }\r\n },0)\r\n}\r\n\r\nexport const handlePlayerPauseMiniPlayer = (event:any) => {\r\n if (event === null || event.target.nodeName !== \"INPUT\") {\r\n const dispatch = store.dispatch;\r\n miniPlayerVideoTag().paused ? miniPlayerVideoTag().play() : miniPlayerVideoTag().pause();\r\n dispatch(setPlayMiniPlayer(!miniPlayerVideoTag().paused))\r\n if(mainPlayerVideoTag() && mainPlayerVideoTag().played) {\r\n mainPlayerVideoTag().pause();\r\n dispatch(setPlay(false));\r\n }\r\n }\r\n}\r\n\r\nexport const handlePlayPauseInDOM = (type: boolean) => {\r\n const dispatch = store.dispatch;\r\n if (type) {\r\n mainPlayerVideoTag().play();\r\n dispatch(setPlay(true));\r\n return true;\r\n } else {\r\n mainPlayerVideoTag().pause();\r\n dispatch(setPlay(false));\r\n return false;\r\n }\r\n};\r\n\r\nexport const handleChangeSoundVolume = (volume: number) => {\r\n const dispatch = store.dispatch;\r\n const { settings } = store.getState().user;\r\n dispatch(setUserSettings({ ...settings, volume }));\r\n if (conditions(ConditionName.isIOS)) mainPlayerVideoTag().muted = !mainPlayerVideoTag().muted;\r\n else mainPlayerVideoTag().volume = volume / 100;\r\n};\r\n\r\nexport const handleBackwardForward = (type: string, forwardBackwardCount: number = 15, event?: any) => {\r\n if (type === \"touchBackward\") type = \"backward\";\r\n else if (type === \"touchForward\") type = \"forward\";\r\n if ((event && event.target.nodeName === \"INPUT\") || (type === \"backward\" && mainPlayerVideoTag().currentTime < 15) || (type === \"forward\" && mainPlayerVideoTag().duration - mainPlayerVideoTag().currentTime < 15 )) return;\r\n sendFluentLog(backwardForwardLog(type));\r\n let currentTime = 0;\r\n if (type === \"backward\") {\r\n if (forwardBackwardCount === 0) currentTime = 0;\r\n else currentTime = mainPlayerVideoTag().currentTime - forwardBackwardCount;\r\n } else if (type === \"forward\") {\r\n if (forwardBackwardCount === mainPlayerVideoTag().duration) currentTime = forwardBackwardCount;\r\n else currentTime = mainPlayerVideoTag().currentTime + forwardBackwardCount;\r\n }\r\n mainPlayerVideoTag().currentTime = currentTime;\r\n};\r\n\r\nexport const handleFullScreen = () => {\r\n const dispatch = store.dispatch;\r\n const isFullScreen = document.fullscreenElement;\r\n if (conditions(ConditionName.isIOS)) {\r\n if ((mainPlayerVideoTag() as any).webkitEnterFullScreen) {\r\n dispatch(setPlay(false));\r\n // Toggle fullscreen in Safari for iPad\r\n (mainPlayerVideoTag() as any).webkitEnterFullScreen();\r\n } else {\r\n dispatch(setClearPopoversSlice());\r\n sendFluentLog(fullscreenLog(\"fullScreen\"));\r\n }\r\n } else {\r\n if (isFullScreen) {\r\n dispatch(setIsFullScreen(false));\r\n document.exitFullscreen();\r\n } else {\r\n dispatch(setClearPopoversSlice());\r\n document.documentElement.requestFullscreen();\r\n dispatch(setIsFullScreen(true));\r\n sendFluentLog(fullscreenLog(\"fullScreen\"));\r\n }\r\n }\r\n};\r\n\r\nexport const handleLockOrientation = () => {\r\n if (conditions(ConditionName.isTouchScreen) && !conditions(ConditionName.isIOS)) {\r\n if (conditions(ConditionName.isLandscape) && !conditions(ConditionName.isFullScreen)) (window.screen.orientation as any).lock(\"portrait\");\r\n else (window.screen.orientation as any).lock(\"landscape\");\r\n }\r\n};\r\n\r\nexport const handleLock = (type: string) => {\r\n const dispatch = store.dispatch;\r\n dispatch(setLock(type === \"lock\"));\r\n sendFluentLog(lockLog(type));\r\n if(type === \"unlock\") localStorage.setItem(\"unlock-click\",\"true\");\r\n};\r\n\r\nexport const handleVideoTimeline = (currentTimeValue: number, movedTimeValue?: number) => {\r\n if (conditions(ConditionName.isSendTimelineLog)) {\r\n const dispatch = store.dispatch;\r\n const { videoTimelines } = store.getState().videoData;\r\n let currentTime = Math.floor(currentTimeValue);\r\n let movedTime = Math.floor(movedTimeValue!);\r\n if (videoTimelines.length === 0) {\r\n dispatch(setVideoTimelines([currentTime >= mainPlayerVideoTag().duration ? movedTime! : currentTime]));\r\n } else {\r\n if (videoTimelines[0] < currentTime)\r\n apiCaller({ url: API().videoTimelineLog, method: \"post\", data: videoTimelineLog(videoTimelines[0], currentTime) });\r\n if (movedTime && movedTime >= mainPlayerVideoTag().duration) dispatch(setVideoTimelines([]));\r\n else dispatch(setVideoTimelines([movedTime!]));\r\n }\r\n }\r\n};\r\n\r\nexport const handleVideoElementSizeInfo = () => {\r\n const dispatch = store.dispatch;\r\n const element: any = document.getElementById(\"video-area\")?.getBoundingClientRect();\r\n element.height = (element.width * 9) / 16;\r\n if (element) dispatch(setVideoElementSizeInfo(element));\r\n};\r\n\r\nexport const handleDoubleClick = (event: any) => {\r\n if (!conditions(ConditionName.isTouchScreen) && event.target.nodeName !== \"INPUT\") handleFullScreen();\r\n};\r\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunk2UQZ2IND_js=require('./chunk-2UQZ2IND.js'),chunkWG7PYZXW_js=require('./chunk-WG7PYZXW.js'),chunkWO4IQUGO_js=require('./chunk-WO4IQUGO.js');chunkWO4IQUGO_js.e();var me=e=>{e.preventDefault();let t=(chunkWG7PYZXW_js.fa()||chunkWG7PYZXW_js.ga()).error;if(t)switch(t.code){case t.MEDIA_ERR_ABORTED:chunkWG7PYZXW_js.Ca({type:"videoTagError",message:"You aborted the video playback."});break;case t.MEDIA_ERR_NETWORK:chunkWG7PYZXW_js.Ca({type:"videoTagError",message:"A network error caused the video download to fail part-way."});break;case t.MEDIA_ERR_DECODE:chunkWG7PYZXW_js.Ca({type:"videoTagError",message:"The video playback was aborted due to a corruption problem or because the video used features your browser did not support."});break;case t.MEDIA_ERR_SRC_NOT_SUPPORTED:chunkWG7PYZXW_js.Ca({type:"videoTagError",message:"The video could not be loaded, either because the server or network failed or because the format is not supported."});break;default:chunkWG7PYZXW_js.Ca({type:"videoTagError",message:"An unknown error occurred."});break}else chunkWG7PYZXW_js.Ca({type:"videoTagError",message:"An error occurred, but the error object is not available."});},$=()=>{let e=chunkWG7PYZXW_js.M.dispatch,{params:t}=chunkWG7PYZXW_js.M.getState().videoData,a=n=>{n.requestFullScreen?n.requestFullScreen():n.mozRequestFullScreen?n.mozRequestFullScreen():n.webkitRequestFullScreen&&n.webkitRequestFullScreen();};e(chunkWG7PYZXW_js.F()),a(document.documentElement),e(chunkWG7PYZXW_js.h(t.fullscreen==="true"));},fe=()=>{let e=".ts",t=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(){arguments[1].endsWith(e)&&(arguments[1]=arguments[1]+"?uuid="+chunkWG7PYZXW_js.N()),t.apply(this,arguments);};},Y=(e,t)=>{let a=chunkWG7PYZXW_js.M.dispatch;t.current=setInterval(()=>{let s=e.target.buffered.end(0)/chunkWG7PYZXW_js.fa().duration*100;a(chunkWG7PYZXW_js.i(s));},500);},he=()=>{let e=chunkWG7PYZXW_js.S("mainPlayer");return {xhrSetup:(t,a)=>{a.split("m3u8")[1]||(a=`${a}${e}`),t.open("GET",a,!0);},startLevel:-1,debug:!1,enableWorker:!0,abrBandWidthUpFactor:.7,abrBandWidthFactor:.95,backBufferLength:1/0,maxBufferLength:30,maxMaxBufferLength:60,manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:10,retryDelayMs:5e3,maxRetryDelayMs:1e4},errorRetry:{maxNumRetry:10,retryDelayMs:5e3,maxRetryDelayMs:1e4}}},fragLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:12e4,timeoutRetry:{maxNumRetry:10,retryDelayMs:5e3,maxRetryDelayMs:1e4},errorRetry:{maxNumRetry:10,retryDelayMs:5e3,maxRetryDelayMs:1e4}}},playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:10,retryDelayMs:5e3,maxRetryDelayMs:1e4},errorRetry:{maxNumRetry:10,retryDelayMs:5e3,maxRetryDelayMs:1e4}}}}},ge=()=>{let e=chunkWG7PYZXW_js.S("miniPlayer");return {xhrSetup:(t,a)=>{a=`${a}${e}`,t.open("GET",a,!0);},startLevel:1,debug:!1,maxMaxBufferLength:60,playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:1e3,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1e3,retryDelayMs:1e3,maxRetryDelayMs:1e3}}}}},J=(e,t)=>{let a=chunkWG7PYZXW_js.M.dispatch,n=[],s=[];e.levels.map(i=>{n.push(i.attrs.RESOLUTION.split("x")[1].trim()),s.push(i.attrs.RESOLUTION);}),e.autoLevelCapping=chunkWG7PYZXW_js.Y(s,window.innerWidth,window.innerHeight),a(chunkWG7PYZXW_js.d(n)),["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","msfullscreenchange"].forEach(i=>document.addEventListener(i,c=>{chunkWG7PYZXW_js.ca("isAutoQuality")&&(e.autoLevelCapping=chunkWG7PYZXW_js.Y(s,window.innerWidth,window.innerHeight),e.nextLevel=-1);},!1));},xe=(e,t)=>{let{params:a,details:n}=chunkWG7PYZXW_js.M.getState().videoData,s=n.stream_link;t.loadSource(s),t.on(e.Events.MANIFEST_PARSED,(i,c)=>J(t));},z=(e,t,a)=>{if(t.frag.type!=="audio"){let n=chunkWG7PYZXW_js.M.dispatch,{settings:s}=chunkWG7PYZXW_js.M.getState().user,{qualityLevels:i,manualQuality:c,autoQuality:x}=chunkWG7PYZXW_js.M.getState().controller;chunkWG7PYZXW_js.ca("isAutoQuality")?chunkWG7PYZXW_js.ca("isAutoQuality")&&x===void 0?(e.nextLevel=-1,a(i[t.frag.level]),n(chunkWG7PYZXW_js.e(t.frag.level))):chunkWG7PYZXW_js.ca("isAutoQuality")&&(a(i[t.frag.level]),x!==t.frag.level&&n(chunkWG7PYZXW_js.e(t.frag.level))):(t.frag.level!==c&&(e.nextLevel=i[s.quality]?s.quality:-1),i[s.quality]?(n(chunkWG7PYZXW_js.m(s.quality)),n(chunkWG7PYZXW_js.e(void 0))):(a(i[t.frag.level]),n(chunkWG7PYZXW_js.e(t.frag.level)),n(chunkWG7PYZXW_js.G({...s,quality:-1}))));}},ve=e=>{let t=chunkWG7PYZXW_js.M.dispatch,n=e.mainForwardBufferInfo?.end/chunkWG7PYZXW_js.fa().duration*100;t(chunkWG7PYZXW_js.i(n));},De=(e,t,a)=>{let{params:n}=chunkWG7PYZXW_js.M.getState().videoData;n.type&&z(e,t,a);},Se=(e,t,a)=>{let{type:n}=chunkWG7PYZXW_js.M.getState().videoData.params;n&&z(e,t,a);},Te=e=>{if(e.event!=="hlsAudioTrackLoading")return {type:"HLS_"+e.type,message:e.error.message}},Pe=(e,t)=>{let a=chunkWG7PYZXW_js.M.dispatch;e.preventDefault(),t.current=Date.now(),a(chunkWG7PYZXW_js.g(!0));},be=(e,t)=>{let a=chunkWG7PYZXW_js.M.dispatch;e.preventDefault(),t.current=0,a(chunkWG7PYZXW_js.g(!0));},Le=(e,t)=>{let a=chunkWG7PYZXW_js.M.dispatch,{videoSettings:n}=chunkWG7PYZXW_js.M.getState().user,{params:s}=chunkWG7PYZXW_js.M.getState().videoData;e.preventDefault(),t.current=Date.now(),a(chunkWG7PYZXW_js.a(!0)),chunkWG7PYZXW_js.ca("hasOnPlayParams")&&s.onPlay(),chunkWG7PYZXW_js.ca("isFirstPlay")&&(chunkWG7PYZXW_js.ca("hasCurrentTimeParams")||(chunkWG7PYZXW_js.fa().currentTime=n.time,a(chunkWG7PYZXW_js.c(n.time))),chunkWG7PYZXW_js.ca("hasFullScreenParams")&&$(),chunkWG7PYZXW_js.ca("isFullScreen")&&chunk2UQZ2IND_js.g(),a(chunkWG7PYZXW_js.w([Math.floor(chunkWG7PYZXW_js.fa().currentTime)]))),chunkWG7PYZXW_js.la(chunkWG7PYZXW_js.xa(!0)),a(chunkWG7PYZXW_js.z(""));},Me=(e,t,a,n,s,i,c,x)=>{let G=chunkWG7PYZXW_js.M.dispatch,{autoQuality:V,canPlayVideo:X,firstPlay:K,qualityLevels:O}=chunkWG7PYZXW_js.M.getState().controller,{settings:A}=chunkWG7PYZXW_js.M.getState().user,I=A.quality===-1&&V?O[V]:O[A.quality],v=0;c.current&&(v=Date.now()-c.current),K&&chunkWG7PYZXW_js.fa().played&&chunkWG7PYZXW_js.la(chunkWG7PYZXW_js.ya(t.current,Date.now()-a.current,n.current-a.current,Date.now()-s.current,s)),G(chunkWG7PYZXW_js.j(!1)),X&&v>0&&I!==void 0&&(i.current=v,c.current=0,chunkWG7PYZXW_js.la(chunkWG7PYZXW_js.za(v,I,s,e,x.current)),e.current=e.current+1,s.current=Date.now());},Ee=e=>{let t=chunkWG7PYZXW_js.M.dispatch,{params:a}=chunkWG7PYZXW_js.M.getState().videoData;e.preventDefault(),chunkWG7PYZXW_js.la(chunkWG7PYZXW_js.xa(!1)),t(chunkWG7PYZXW_js.a(!1)),chunkWG7PYZXW_js.ca("hasOnPauseParams")&&a.onPause();},Re=e=>{let t=chunkWG7PYZXW_js.M.dispatch,{selectedSubtitle:a}=chunkWG7PYZXW_js.M.getState().videoData;e.preventDefault(),t(chunkWG7PYZXW_js.c(e.target.currentTime)),chunkWG7PYZXW_js.ca("hasActiveCue")&&t(chunkWG7PYZXW_js.z(a.activeCues[0].text));},Fe=e=>{let t=chunkWG7PYZXW_js.M.dispatch,{settings:a}=chunkWG7PYZXW_js.M.getState().user;if(e.preventDefault(),t(chunkWG7PYZXW_js.g(!1)),t(chunkWG7PYZXW_js.n(!0)),chunkWG7PYZXW_js.fa().volume=a.volume/100,t(chunkWG7PYZXW_js.b(e.target.duration)),chunkWG7PYZXW_js.ca("isIOS")){let n=Object.values(e.target.textTracks);n&&n.length&&t(chunkWG7PYZXW_js.y(Object.values(n[0]).length?n:[]));}else t(chunkWG7PYZXW_js.y(Object.values(e.target.textTracks)));},ke=e=>{let t=chunkWG7PYZXW_js.M.dispatch,{params:a}=chunkWG7PYZXW_js.M.getState().videoData;e.preventDefault(),t(chunkWG7PYZXW_js.p(!0)),t(chunkWG7PYZXW_js.f(!0)),chunk2UQZ2IND_js.i(chunkWG7PYZXW_js.fa().duration),chunkWG7PYZXW_js.ca("hasOnFinishedParams")&&a.onFinished();},we=(e,t)=>{let a=chunkWG7PYZXW_js.M.dispatch;e.preventDefault(),t.current=Date.now(),a(chunkWG7PYZXW_js.j(!1));},Ve=()=>{let e=chunkWG7PYZXW_js.M.dispatch;e(chunkWG7PYZXW_js.g(!1));},Oe=e=>{let t=chunkWG7PYZXW_js.M.dispatch;e.preventDefault(),t(chunkWG7PYZXW_js.c(e.target.currentTime));},Ae=()=>{let e=chunkWG7PYZXW_js.M.dispatch,{params:t}=chunkWG7PYZXW_js.M.getState().videoData;e(chunkWG7PYZXW_js.p(!0)),e(chunkWG7PYZXW_js.f(!0)),chunkWG7PYZXW_js.ca("hasOnFinishedParams")&&t.onFinished();},Ie=e=>{let t=chunkWG7PYZXW_js.M.dispatch;e.preventDefault(),t(chunkWG7PYZXW_js.a(!1));},qe=(e,t)=>{let a=chunkWG7PYZXW_js.M.dispatch;e.preventDefault(),a(chunkWG7PYZXW_js.a(!0)),t.current=Date.now(),a(chunkWG7PYZXW_js.z("")),chunkWG7PYZXW_js.ca("isFirstPlay")&&chunkWG7PYZXW_js.ca("hasFullScreenParams")&&($(),chunkWG7PYZXW_js.ca("isFullScreen")&&chunk2UQZ2IND_js.g());},Ce=(e,t,a)=>{let n=chunkWG7PYZXW_js.M.dispatch,{firstPlay:s}=chunkWG7PYZXW_js.M.getState().controller;n(chunkWG7PYZXW_js.g(!1)),s&&chunkWG7PYZXW_js.fa().played&&chunkWG7PYZXW_js.la(chunkWG7PYZXW_js.ya(Math.round(e.current),Date.now()-t.current,0,Date.now()-a.current,a)),n(chunkWG7PYZXW_js.j(!1));},Be=e=>{let t=chunkWG7PYZXW_js.M.dispatch,{selectedSubtitle:a}=chunkWG7PYZXW_js.M.getState().videoData;e.preventDefault(),t(chunkWG7PYZXW_js.c(e.target.currentTime)),t(chunkWG7PYZXW_js.b(e.target.duration)),chunkWG7PYZXW_js.ca("hasActiveCue")&&t(chunkWG7PYZXW_js.z(a.activeCues[0].text));},Ne=e=>{let t=chunkWG7PYZXW_js.M.dispatch;if(e.preventDefault(),t(chunkWG7PYZXW_js.g(!1)),t(chunkWG7PYZXW_js.n(!0)),chunkWG7PYZXW_js.ca("isIOS")){let a=Object.values(e.target.textTracks);a&&a.length&&t(chunkWG7PYZXW_js.y(Object.values(a[0]).length?a:[]));}else t(chunkWG7PYZXW_js.y(Object.values(e.target.textTracks)));},_e=(e,t)=>{e.preventDefault(),Y(e,t);};var Qe=async e=>{let{stream_link:t}=chunkWG7PYZXW_js.M.getState().miniPlayer.details;e.loadSource(t);},Ue=e=>{chunk2UQZ2IND_js.i(chunkWG7PYZXW_js.fa().currentTime);};exports.A=Ne;exports.B=_e;exports.C=Qe;exports.D=Ue;exports.a=me;exports.b=fe;exports.c=he;exports.d=ge;exports.e=J;exports.f=xe;exports.g=ve;exports.h=De;exports.i=Se;exports.j=Te;exports.k=Pe;exports.l=be;exports.m=Le;exports.n=Me;exports.o=Ee;exports.p=Re;exports.q=Fe;exports.r=ke;exports.s=we;exports.t=Ve;exports.u=Oe;exports.v=Ae;exports.w=Ie;exports.x=qe;exports.y=Ce;exports.z=Be;//# sourceMappingURL=chunk-4WSW2YML.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-4WSW2YML.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/videoPlayerLibrary/helpers/redux/actions/playerCore.actions.ts"],"names":["init_cjs_shims","handleVideoError","event","error","mainPlayerVideoTag","miniPlayerVideoTag","errorLogProvider","handleAutoFullScreen","dispatch","store_default","params","launchFullScreen","element","setClearPopoversSlice","setIsFullScreen","appendQueryParamsToChunksIOS","fragmentExtension","originalOpen","getUUID","handleBufferedTime","intervalRef","bufferedTimeWidth","setBufferedTimeWidth","handleHlsConfig","streamLinkParams","splitQueryParamsFromStreamLink","xhr","url","handleMiniPlayerHlsConfig","handleManifestParsed","hls","data","qualityLevels","resolutions","level","highestResolutionSupported","setQualityLevels","eventType","conditions","handleMediaAttached","Hls","details","streamLink","handleLevels","setQualityLevel","settings","manualQuality","autoQuality","setAutoQuality","setManualQuality","setUserSettings","handleFragBuffered","handleFragChanged","handleFragParsed","type","handleHlsErrors","handleVideoWaiting","waitingTimerRef","setIsLoading","handleVideoSeeking","handleVideoPlay","timerRef","videoSettings","setPlay","setCurrentTime","handleLockOrientation","setVideoTimelines","sendFluentLog","pausePlayLog","setSubtitleText","handleVideoPlaying","loadingCounterRef","loadingDurationRef","initialWaitingDurationRef","bannerLoadingDurationRef","waitingDurationRef","videoEntranceTimeRef","canPlayVideo","firstPlay","qualityLevel","waitingDuration","initLog","setFirstPlay","loadingLog","handleVideoPause","handleVideoTimeUpdate","selectedSubtitle","handleVideoCanPlay","setCanPlayVideo","setDuration","subtitle","setSubtitles","handleVideoEnded","setIsEnded","setActiveElements","handleVideoTimeline","handleIosVideoPlay","handleIosVideoPlaying","handleIosVideoTimeUpdate","handleIosVideoEnded","handleStaticVideoPause","handleStaticVideoPlay","handleStaticVideoPlaying","handleStaticVideoTimeUpdate","handleStaticVideoCanPlay","handleStaticVideoLoadedData","handleMiniPlayerMediaAttached","stream_link","handleVideoVisibilityChange"],"mappings":"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","file":"chunk-AJG5T24R.js","sourcesContent":["import { conditions } from \"../../conditions/conditions\";\r\nimport { mainPlayerVideoTag, miniPlayerVideoTag } from \"../../constants\";\r\nimport { errorLogProvider } from \"../../errorBoundary/errorBoundaryFunctions\";\r\nimport {\r\n getUUID,\r\n highestResolutionSupported,\r\n splitQueryParamsFromStreamLink,\r\n} from \"../../helpers\";\r\nimport { ConditionName } from \"../../interfaces/enums\";\r\nimport { sendFluentLog } from \"../../logs/fluentdLogger\";\r\nimport { initLog, loadingLog, pausePlayLog } from \"../../logs/logs\";\r\nimport {\r\n setActiveElements,\r\n setAutoQuality,\r\n setBufferedTimeWidth,\r\n setCanPlayVideo,\r\n setCurrentTime,\r\n setDuration,\r\n setFirstPlay,\r\n setIsEnded,\r\n setIsFullScreen,\r\n setIsLoading,\r\n setManualQuality,\r\n setPlay,\r\n setQualityLevels,\r\n} from \"../slices/controllerSlice\";\r\nimport { setClearPopoversSlice } from \"../slices/popoversSlice\";\r\nimport { setUserSettings } from \"../slices/userSlice\";\r\nimport {\r\n setSubtitleText,\r\n setSubtitles,\r\n setVideoTimelines,\r\n} from \"../slices/videoDataSlice\";\r\nimport store from \"../store\";\r\nimport {\r\n handleLockOrientation,\r\n handleVideoTimeline,\r\n} from \"./controller.actions\";\r\n\r\nexport const handleVideoError = (event: any) => {\r\n event.preventDefault();\r\n // Access the error property from the video element\r\n let error = (mainPlayerVideoTag() || miniPlayerVideoTag()).error;\r\n if (error) {\r\n switch (error.code) {\r\n case error.MEDIA_ERR_ABORTED:\r\n errorLogProvider({ type: \"videoTagError\", message: \"You aborted the video playback.\" });\r\n break;\r\n case error.MEDIA_ERR_NETWORK:\r\n errorLogProvider({ type: \"videoTagError\", message: \"A network error caused the video download to fail part-way.\" });\r\n break;\r\n case error.MEDIA_ERR_DECODE:\r\n errorLogProvider({\r\n type: \"videoTagError\",\r\n message:\r\n \"The video playback was aborted due to a corruption problem or because the video used features your browser did not support.\"\r\n });\r\n break;\r\n case error.MEDIA_ERR_SRC_NOT_SUPPORTED:\r\n errorLogProvider({\r\n type: \"videoTagError\",\r\n message: \"The video could not be loaded, either because the server or network failed or because the format is not supported.\"\r\n });\r\n break;\r\n default:\r\n errorLogProvider({ type: \"videoTagError\", message: \"An unknown error occurred.\" });\r\n break;\r\n }\r\n } else {\r\n errorLogProvider({ type: \"videoTagError\", message: \"An error occurred, but the error object is not available.\" });\r\n }\r\n};\r\n\r\nexport const handleAutoFullScreen = () => {\r\n const dispatch = store.dispatch;\r\n const { params } = store.getState().videoData;\r\n const launchFullScreen = (element: any) => {\r\n if (element.requestFullScreen) element.requestFullScreen();\r\n else if (element.mozRequestFullScreen) element.mozRequestFullScreen();\r\n else if (element.webkitRequestFullScreen) element.webkitRequestFullScreen();\r\n };\r\n dispatch(setClearPopoversSlice());\r\n launchFullScreen(document.documentElement);\r\n dispatch(setIsFullScreen(params.fullscreen === \"true\"));\r\n};\r\n\r\nexport const appendQueryParamsToChunksIOS = () => {\r\n let fragmentExtension = \".ts\";\r\n let originalOpen = XMLHttpRequest.prototype.open;\r\n XMLHttpRequest.prototype.open = function () {\r\n if (arguments[1].endsWith(fragmentExtension))\r\n arguments[1] = arguments[1] + \"?uuid=\" + getUUID!();\r\n originalOpen.apply(this, arguments as any);\r\n };\r\n};\r\n\r\nexport const handleBufferedTime = (event: any, intervalRef: any) => {\r\n const dispatch = store.dispatch;\r\n intervalRef.current = setInterval(() => {\r\n const bufferedTime = event.target.buffered.end(0);\r\n const bufferedTimeWidth =\r\n (bufferedTime / mainPlayerVideoTag().duration) * 100;\r\n dispatch(setBufferedTimeWidth(bufferedTimeWidth));\r\n }, 500);\r\n};\r\n\r\n// ************* Hls Config Handlers ************* //\r\nexport const handleHlsConfig = () => {\r\n const streamLinkParams = splitQueryParamsFromStreamLink(\"mainPlayer\");\r\n return {\r\n xhrSetup: (xhr: any, url: any) => {\r\n if (!url.split(\"m3u8\")[1]) url = `${url}${streamLinkParams}`;\r\n xhr.open(\"GET\", url, true);\r\n },\r\n startLevel: -1,\r\n debug: false,\r\n enableWorker: true,\r\n abrBandWidthUpFactor: 0.7,\r\n abrBandWidthFactor: 0.95,\r\n backBufferLength: Infinity,\r\n maxBufferLength: 30,\r\n maxMaxBufferLength: 60,\r\n manifestLoadPolicy: {\r\n default: {\r\n maxTimeToFirstByteMs: Infinity,\r\n maxLoadTimeMs: 20000,\r\n timeoutRetry: {\r\n maxNumRetry: 10,\r\n retryDelayMs: 5000,\r\n maxRetryDelayMs: 10000,\r\n },\r\n errorRetry: {\r\n maxNumRetry: 10,\r\n retryDelayMs: 5000,\r\n maxRetryDelayMs: 10000,\r\n },\r\n },\r\n },\r\n fragLoadPolicy: {\r\n default: {\r\n maxTimeToFirstByteMs: 10000,\r\n maxLoadTimeMs: 120000,\r\n timeoutRetry: {\r\n maxNumRetry: 10,\r\n retryDelayMs: 5000,\r\n maxRetryDelayMs: 10000,\r\n },\r\n errorRetry: {\r\n maxNumRetry: 10,\r\n retryDelayMs: 5000,\r\n maxRetryDelayMs: 10000,\r\n },\r\n },\r\n },\r\n playlistLoadPolicy: {\r\n default: {\r\n maxTimeToFirstByteMs: 10000,\r\n maxLoadTimeMs: 20000,\r\n timeoutRetry: {\r\n maxNumRetry: 10,\r\n retryDelayMs: 5000,\r\n maxRetryDelayMs: 10000,\r\n },\r\n errorRetry: {\r\n maxNumRetry: 10,\r\n retryDelayMs: 5000,\r\n maxRetryDelayMs: 10000,\r\n },\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport const handleMiniPlayerHlsConfig = () => {\r\n const streamLinkParams = splitQueryParamsFromStreamLink(\"miniPlayer\");\r\n return {\r\n xhrSetup: (xhr: any, url: any) => {\r\n url = `${url}${streamLinkParams}`;\r\n xhr.open(\"GET\", url, true);\r\n },\r\n startLevel: 1,\r\n debug: false,\r\n maxMaxBufferLength: 60,\r\n playlistLoadPolicy: {\r\n default: {\r\n maxTimeToFirstByteMs: 10000,\r\n maxLoadTimeMs: 20000,\r\n timeoutRetry: {\r\n maxNumRetry: 1000,\r\n retryDelayMs: 0,\r\n maxRetryDelayMs: 0,\r\n },\r\n errorRetry: {\r\n maxNumRetry: 1000,\r\n retryDelayMs: 1000,\r\n maxRetryDelayMs: 1000,\r\n },\r\n },\r\n },\r\n };\r\n};\r\n\r\n// ************* Manifest Handlers ************* //\r\n\r\nexport const handleManifestParsed = (hls: any, data: any) => {\r\n const dispatch = store.dispatch;\r\n let qualityLevels: any[] = [];\r\n let resolutions: any[] = [];\r\n hls.levels.map((level: any) => {\r\n qualityLevels.push(level.attrs.RESOLUTION!.split(\"x\")[1].trim());\r\n resolutions.push(level.attrs.RESOLUTION!);\r\n });\r\n hls.autoLevelCapping = highestResolutionSupported(\r\n resolutions,\r\n window.innerWidth,\r\n window.innerHeight\r\n );\r\n dispatch(setQualityLevels(qualityLevels));\r\n [\r\n \"fullscreenchange\",\r\n \"webkitfullscreenchange\",\r\n \"mozfullscreenchange\",\r\n \"msfullscreenchange\",\r\n ].forEach((eventType) =>\r\n document.addEventListener(\r\n eventType,\r\n (event: any) => {\r\n if (conditions(ConditionName.isAutoQuality)) {\r\n hls.autoLevelCapping = highestResolutionSupported(\r\n resolutions,\r\n window.innerWidth,\r\n window.innerHeight\r\n );\r\n hls.nextLevel = -1;\r\n }\r\n },\r\n false\r\n )\r\n );\r\n};\r\n\r\nexport const handleMediaAttached = (Hls: any, hls: any) => {\r\n const { params, details } = store.getState().videoData;\r\n let streamLink = details.stream_link;\r\n hls.loadSource(streamLink);\r\n hls.on(Hls.Events.MANIFEST_PARSED, (event: any, data: any) =>\r\n handleManifestParsed(hls, data)\r\n );\r\n};\r\n\r\n// ************* Level Handlers ************* //\r\n\r\nexport const handleLevels = (hls: any, data: any, setQualityLevel: any) => {\r\n if (data.frag.type !== \"audio\") {\r\n const dispatch = store.dispatch;\r\n const { settings } = store.getState().user;\r\n const { qualityLevels, manualQuality, autoQuality } =\r\n store.getState().controller;\r\n if (!conditions(ConditionName.isAutoQuality)) {\r\n if (data.frag.level !== manualQuality)\r\n hls.nextLevel = qualityLevels[settings.quality!]\r\n ? settings.quality\r\n : -1;\r\n if (qualityLevels[settings.quality!]) {\r\n dispatch(setManualQuality(settings.quality!));\r\n dispatch(setAutoQuality(undefined));\r\n } else {\r\n setQualityLevel(qualityLevels[data.frag.level]);\r\n dispatch(setAutoQuality(data.frag.level));\r\n dispatch(setUserSettings({ ...settings, quality: -1 }));\r\n }\r\n } else if (\r\n conditions(ConditionName.isAutoQuality) &&\r\n autoQuality === undefined\r\n ) {\r\n hls.nextLevel = -1;\r\n setQualityLevel(qualityLevels[data.frag.level]);\r\n dispatch(setAutoQuality(data.frag.level));\r\n } else if (conditions(ConditionName.isAutoQuality)) {\r\n setQualityLevel(qualityLevels[data.frag.level]);\r\n if (autoQuality !== data.frag.level)\r\n dispatch(setAutoQuality(data.frag.level));\r\n }\r\n }\r\n};\r\n\r\n// ************* Fragment Handlers ************* //\r\n\r\nexport const handleFragBuffered = (hls: any) => {\r\n const dispatch = store.dispatch;\r\n const bufferedTime = hls.mainForwardBufferInfo?.end;\r\n const bufferedTimeWidth =\r\n (bufferedTime! / mainPlayerVideoTag().duration) * 100;\r\n dispatch(setBufferedTimeWidth(bufferedTimeWidth));\r\n};\r\n\r\nexport const handleFragChanged = (\r\n hls: any,\r\n data: any,\r\n setQualityLevel: any\r\n) => {\r\n const { params } = store.getState().videoData;\r\n\r\n if (params.type) handleLevels(hls, data, setQualityLevel);\r\n};\r\n\r\nexport const handleFragParsed = (hls: any, data: any, setQualityLevel: any) => {\r\n const { type } = store.getState().videoData.params;\r\n if (type) handleLevels(hls, data, setQualityLevel);\r\n};\r\n\r\n// ************* HLS Error Handlers ************* //\r\n\r\nexport const handleHlsErrors = (data: any) => {\r\n if (data.event !== \"hlsAudioTrackLoading\")\r\n return { type: \"HLS_\" + data.type, message: data.error.message };\r\n return undefined;\r\n};\r\n\r\n// ************* Video Tag Handlers ************* //\r\n\r\nexport const handleVideoWaiting = (event: any, waitingTimerRef: any) => {\r\n const dispatch = store.dispatch;\r\n event.preventDefault();\r\n waitingTimerRef.current = Date.now();\r\n dispatch(setIsLoading(true));\r\n};\r\n\r\nexport const handleVideoSeeking = (event: any, waitingTimerRef: any) => {\r\n const dispatch = store.dispatch;\r\n event.preventDefault();\r\n waitingTimerRef.current = 0;\r\n dispatch(setIsLoading(true));\r\n};\r\n\r\nexport const handleVideoPlay = (event: any, timerRef: any) => {\r\n const dispatch = store.dispatch;\r\n const { videoSettings } = store.getState().user;\r\n const { params } = store.getState().videoData;\r\n event.preventDefault();\r\n timerRef.current = Date.now();\r\n dispatch(setPlay(true));\r\n if (conditions(ConditionName.hasOnPlayParams)) params.onPlay!();\r\n if (conditions(ConditionName.isFirstPlay)) {\r\n if(!conditions(ConditionName.hasCurrentTimeParams)) {\r\n mainPlayerVideoTag().currentTime = videoSettings.time;\r\n dispatch(setCurrentTime(videoSettings.time));\r\n }\r\n if (conditions(ConditionName.hasFullScreenParams)) handleAutoFullScreen();\r\n if (conditions(ConditionName.isFullScreen)) handleLockOrientation();\r\n dispatch(setVideoTimelines([Math.floor(mainPlayerVideoTag().currentTime)]));\r\n }\r\n sendFluentLog(pausePlayLog(true));\r\n dispatch(setSubtitleText(\"\"));\r\n};\r\n\r\nexport const handleVideoPlaying = (\r\n loadingCounterRef: any,\r\n loadingDurationRef: any,\r\n initialWaitingDurationRef: any,\r\n bannerLoadingDurationRef: any,\r\n timerRef: any,\r\n waitingDurationRef: any,\r\n waitingTimerRef: any,\r\n videoEntranceTimeRef: any\r\n) => {\r\n const dispatch = store.dispatch;\r\n const { autoQuality, canPlayVideo, firstPlay, qualityLevels } =\r\n store.getState().controller;\r\n const { settings } = store.getState().user;\r\n const qualityLevel =\r\n settings.quality === -1 && autoQuality\r\n ? qualityLevels[autoQuality]\r\n : qualityLevels[settings.quality!];\r\n let waitingDuration = 0;\r\n if (!!waitingTimerRef.current)\r\n waitingDuration = Date.now() - waitingTimerRef.current;\r\n if (firstPlay && !!mainPlayerVideoTag().played)\r\n sendFluentLog(\r\n initLog(\r\n loadingDurationRef.current,\r\n Date.now() - initialWaitingDurationRef.current,\r\n bannerLoadingDurationRef.current - initialWaitingDurationRef.current,\r\n Date.now() - timerRef.current,\r\n timerRef\r\n )\r\n );\r\n dispatch(setFirstPlay(false));\r\n if (canPlayVideo && waitingDuration > 0 && qualityLevel !== undefined) {\r\n waitingDurationRef.current = waitingDuration;\r\n waitingTimerRef.current = 0;\r\n sendFluentLog(\r\n loadingLog(\r\n waitingDuration,\r\n qualityLevel,\r\n timerRef,\r\n loadingCounterRef,\r\n videoEntranceTimeRef.current\r\n )\r\n );\r\n loadingCounterRef.current = loadingCounterRef.current + 1;\r\n timerRef.current = Date.now();\r\n }\r\n};\r\n\r\nexport const handleVideoPause = (event: any) => {\r\n const dispatch = store.dispatch;\r\n const { params } = store.getState().videoData;\r\n event.preventDefault();\r\n sendFluentLog(pausePlayLog(false));\r\n dispatch(setPlay(false));\r\n if (conditions(ConditionName.hasOnPauseParams)) params.onPause!();\r\n};\r\n\r\nexport const handleVideoTimeUpdate = (event: any) => {\r\n const dispatch = store.dispatch;\r\n const { selectedSubtitle } = store.getState().videoData;\r\n event.preventDefault();\r\n dispatch(setCurrentTime(event.target.currentTime));\r\n if (conditions(ConditionName.hasActiveCue))\r\n dispatch(setSubtitleText((selectedSubtitle!.activeCues![0] as any).text));\r\n};\r\n\r\nexport const handleVideoCanPlay = (event: any) => {\r\n const dispatch = store.dispatch;\r\n const { settings } = store.getState().user;\r\n event.preventDefault();\r\n dispatch(setIsLoading(false));\r\n dispatch(setCanPlayVideo(true));\r\n mainPlayerVideoTag().volume = settings.volume / 100;\r\n dispatch(setDuration(event.target.duration));\r\n if (conditions(ConditionName.isIOS)) {\r\n const subtitle: TextTrack[] = Object.values(event.target.textTracks);\r\n if (!!subtitle && subtitle.length)\r\n dispatch(\r\n setSubtitles(!!Object.values(subtitle[0]).length ? subtitle : [])\r\n );\r\n } else dispatch(setSubtitles(Object.values(event.target.textTracks)));\r\n};\r\n\r\nexport const handleVideoEnded = (event: any) => {\r\n const dispatch = store.dispatch;\r\n const { params } = store.getState().videoData;\r\n event.preventDefault();\r\n dispatch(setIsEnded(true));\r\n dispatch(setActiveElements(true));\r\n handleVideoTimeline(mainPlayerVideoTag().duration);\r\n if (conditions(ConditionName.hasOnFinishedParams)) params.onFinished!();\r\n};\r\n\r\n// ************* IOS Video Tag Handlers ************* //\r\n\r\nexport const handleIosVideoPlay = (event: any, timerRef: any) => {\r\n const dispatch = store.dispatch;\r\n event.preventDefault();\r\n timerRef.current = Date.now();\r\n dispatch(setFirstPlay(false));\r\n};\r\n\r\nexport const handleIosVideoPlaying = () => {\r\n const dispatch = store.dispatch;\r\n dispatch(setIsLoading(false));\r\n};\r\n\r\nexport const handleIosVideoTimeUpdate = (event: any) => {\r\n const dispatch = store.dispatch;\r\n event.preventDefault();\r\n dispatch(setCurrentTime(event.target.currentTime));\r\n};\r\n\r\nexport const handleIosVideoEnded = () => {\r\n const dispatch = store.dispatch;\r\n const { params } = store.getState().videoData;\r\n dispatch(setIsEnded(true));\r\n dispatch(setActiveElements(true));\r\n if (conditions(ConditionName.hasOnFinishedParams)) params.onFinished!();\r\n};\r\n\r\n// ************* Static Video Tag Handlers ************* //\r\n\r\nexport const handleStaticVideoPause = (event: any) => {\r\n const dispatch = store.dispatch;\r\n event.preventDefault();\r\n dispatch(setPlay(false));\r\n};\r\n\r\nexport const handleStaticVideoPlay = (event: any, timerRef: any) => {\r\n const dispatch = store.dispatch;\r\n event.preventDefault();\r\n dispatch(setPlay(true));\r\n timerRef.current = Date.now();\r\n dispatch(setSubtitleText(\"\"));\r\n\r\n if (conditions(ConditionName.isFirstPlay) && conditions(ConditionName.hasFullScreenParams)) {\r\n handleAutoFullScreen();\r\n if (conditions(ConditionName.isFullScreen)) handleLockOrientation();\r\n }\r\n\r\n\r\n};\r\n\r\nexport const handleStaticVideoPlaying = (\r\n loadingDurationRef: any,\r\n initialWaitingDurationRef: any,\r\n timerRef: any\r\n) => {\r\n const dispatch = store.dispatch;\r\n const { firstPlay } = store.getState().controller;\r\n dispatch(setIsLoading(false));\r\n if (firstPlay && !!mainPlayerVideoTag().played)\r\n sendFluentLog(\r\n initLog(\r\n Math.round(loadingDurationRef.current),\r\n Date.now() - initialWaitingDurationRef.current,\r\n 0,\r\n Date.now() - timerRef.current,\r\n timerRef\r\n )\r\n );\r\n dispatch(setFirstPlay(false));\r\n};\r\n\r\nexport const handleStaticVideoTimeUpdate = (event: any) => {\r\n const dispatch = store.dispatch;\r\n const { selectedSubtitle } = store.getState().videoData;\r\n event.preventDefault();\r\n dispatch(setCurrentTime(event.target.currentTime));\r\n dispatch(setDuration(event.target.duration));\r\n if (conditions(ConditionName.hasActiveCue))\r\n dispatch(setSubtitleText((selectedSubtitle!.activeCues![0] as any).text));\r\n};\r\n\r\nexport const handleStaticVideoCanPlay = (event: any) => {\r\n const dispatch = store.dispatch;\r\n event.preventDefault();\r\n dispatch(setIsLoading(false));\r\n dispatch(setCanPlayVideo(true));\r\n if (conditions(ConditionName.isIOS)) {\r\n const subtitle: TextTrack[] = Object.values(event.target.textTracks);\r\n if (!!subtitle && subtitle.length)\r\n dispatch(\r\n setSubtitles(!!Object.values(subtitle[0]).length ? subtitle : [])\r\n );\r\n } else dispatch(setSubtitles(Object.values(event.target.textTracks)));\r\n};\r\n\r\nexport const handleStaticVideoLoadedData = (event: any, intervalRef: any) => {\r\n event.preventDefault();\r\n handleBufferedTime(event, intervalRef);\r\n};\r\n\r\nexport const handleStaticVideoEnded = (event: any) => {\r\n const { params } = store.getState().videoData;\r\n if (conditions(ConditionName.hasOnFinishedParams)) params.onFinished!();\r\n event.preventDefault();\r\n};\r\n\r\nexport const handleMiniPlayerMediaAttached = async (hls: any) => {\r\n const { stream_link } = store.getState().miniPlayer.details;\r\n hls.loadSource(stream_link);\r\n};\r\n\r\nexport const handleVideoVisibilityChange = (hls: any) => {\r\n handleVideoTimeline(mainPlayerVideoTag().currentTime);\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/videoPlayerLibrary/helpers/redux/actions/playerCore.actions.ts"],"names":["init_cjs_shims","handleVideoError","event","error","mainPlayerVideoTag","miniPlayerVideoTag","errorLogProvider","handleAutoFullScreen","dispatch","store_default","params","launchFullScreen","element","setClearPopoversSlice","setIsFullScreen","appendQueryParamsToChunksIOS","fragmentExtension","originalOpen","getUUID","handleBufferedTime","intervalRef","bufferedTimeWidth","setBufferedTimeWidth","handleHlsConfig","streamLinkParams","splitQueryParamsFromStreamLink","xhr","url","handleMiniPlayerHlsConfig","handleManifestParsed","hls","data","qualityLevels","resolutions","level","highestResolutionSupported","setQualityLevels","eventType","conditions","handleMediaAttached","Hls","details","streamLink","handleLevels","setQualityLevel","settings","manualQuality","autoQuality","setAutoQuality","setManualQuality","setUserSettings","handleFragBuffered","handleFragChanged","handleFragParsed","type","handleHlsErrors","handleVideoWaiting","waitingTimerRef","setIsLoading","handleVideoSeeking","handleVideoPlay","timerRef","videoSettings","setPlay","setCurrentTime","handleLockOrientation","setVideoTimelines","sendFluentLog","pausePlayLog","setSubtitleText","handleVideoPlaying","loadingCounterRef","loadingDurationRef","initialWaitingDurationRef","bannerLoadingDurationRef","waitingDurationRef","videoEntranceTimeRef","canPlayVideo","firstPlay","qualityLevel","waitingDuration","initLog","setFirstPlay","loadingLog","handleVideoPause","handleVideoTimeUpdate","selectedSubtitle","handleVideoCanPlay","setCanPlayVideo","setDuration","subtitle","setSubtitles","handleVideoEnded","setIsEnded","setActiveElements","handleVideoTimeline","handleIosVideoPlay","handleIosVideoPlaying","handleIosVideoTimeUpdate","handleIosVideoEnded","handleStaticVideoPause","handleStaticVideoPlay","handleStaticVideoPlaying","handleStaticVideoTimeUpdate","handleStaticVideoCanPlay","handleStaticVideoLoadedData","handleMiniPlayerMediaAttached","stream_link","handleVideoVisibilityChange"],"mappings":"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","file":"chunk-4WSW2YML.js","sourcesContent":["import { conditions } from \"../../conditions/conditions\";\r\nimport { mainPlayerVideoTag, miniPlayerVideoTag } from \"../../constants\";\r\nimport { errorLogProvider } from \"../../errorBoundary/errorBoundaryFunctions\";\r\nimport {\r\n getUUID,\r\n highestResolutionSupported,\r\n splitQueryParamsFromStreamLink,\r\n} from \"../../helpers\";\r\nimport { ConditionName } from \"../../interfaces/enums\";\r\nimport { sendFluentLog } from \"../../logs/fluentdLogger\";\r\nimport { initLog, loadingLog, pausePlayLog } from \"../../logs/logs\";\r\nimport {\r\n setActiveElements,\r\n setAutoQuality,\r\n setBufferedTimeWidth,\r\n setCanPlayVideo,\r\n setCurrentTime,\r\n setDuration,\r\n setFirstPlay,\r\n setIsEnded,\r\n setIsFullScreen,\r\n setIsLoading,\r\n setManualQuality,\r\n setPlay,\r\n setQualityLevels,\r\n} from \"../slices/controllerSlice\";\r\nimport { setClearPopoversSlice } from \"../slices/popoversSlice\";\r\nimport { setUserSettings } from \"../slices/userSlice\";\r\nimport {\r\n setSubtitleText,\r\n setSubtitles,\r\n setVideoTimelines,\r\n} from \"../slices/videoDataSlice\";\r\nimport store from \"../store\";\r\nimport {\r\n handleLockOrientation,\r\n handleVideoTimeline,\r\n} from \"./controller.actions\";\r\n\r\nexport const handleVideoError = (event: any) => {\r\n event.preventDefault();\r\n // Access the error property from the video element\r\n let error = (mainPlayerVideoTag() || miniPlayerVideoTag()).error;\r\n if (error) {\r\n switch (error.code) {\r\n case error.MEDIA_ERR_ABORTED:\r\n errorLogProvider({ type: \"videoTagError\", message: \"You aborted the video playback.\" });\r\n break;\r\n case error.MEDIA_ERR_NETWORK:\r\n errorLogProvider({ type: \"videoTagError\", message: \"A network error caused the video download to fail part-way.\" });\r\n break;\r\n case error.MEDIA_ERR_DECODE:\r\n errorLogProvider({\r\n type: \"videoTagError\",\r\n message:\r\n \"The video playback was aborted due to a corruption problem or because the video used features your browser did not support.\"\r\n });\r\n break;\r\n case error.MEDIA_ERR_SRC_NOT_SUPPORTED:\r\n errorLogProvider({\r\n type: \"videoTagError\",\r\n message: \"The video could not be loaded, either because the server or network failed or because the format is not supported.\"\r\n });\r\n break;\r\n default:\r\n errorLogProvider({ type: \"videoTagError\", message: \"An unknown error occurred.\" });\r\n break;\r\n }\r\n } else {\r\n errorLogProvider({ type: \"videoTagError\", message: \"An error occurred, but the error object is not available.\" });\r\n }\r\n};\r\n\r\nexport const handleAutoFullScreen = () => {\r\n const dispatch = store.dispatch;\r\n const { params } = store.getState().videoData;\r\n const launchFullScreen = (element: any) => {\r\n if (element.requestFullScreen) element.requestFullScreen();\r\n else if (element.mozRequestFullScreen) element.mozRequestFullScreen();\r\n else if (element.webkitRequestFullScreen) element.webkitRequestFullScreen();\r\n };\r\n dispatch(setClearPopoversSlice());\r\n launchFullScreen(document.documentElement);\r\n dispatch(setIsFullScreen(params.fullscreen === \"true\"));\r\n};\r\n\r\nexport const appendQueryParamsToChunksIOS = () => {\r\n let fragmentExtension = \".ts\";\r\n let originalOpen = XMLHttpRequest.prototype.open;\r\n XMLHttpRequest.prototype.open = function () {\r\n if (arguments[1].endsWith(fragmentExtension))\r\n arguments[1] = arguments[1] + \"?uuid=\" + getUUID!();\r\n originalOpen.apply(this, arguments as any);\r\n };\r\n};\r\n\r\nexport const handleBufferedTime = (event: any, intervalRef: any) => {\r\n const dispatch = store.dispatch;\r\n intervalRef.current = setInterval(() => {\r\n const bufferedTime = event.target.buffered.end(0);\r\n const bufferedTimeWidth =\r\n (bufferedTime / mainPlayerVideoTag().duration) * 100;\r\n dispatch(setBufferedTimeWidth(bufferedTimeWidth));\r\n }, 500);\r\n};\r\n\r\n// ************* Hls Config Handlers ************* //\r\nexport const handleHlsConfig = () => {\r\n const streamLinkParams = splitQueryParamsFromStreamLink(\"mainPlayer\");\r\n return {\r\n xhrSetup: (xhr: any, url: any) => {\r\n if (!url.split(\"m3u8\")[1]) url = `${url}${streamLinkParams}`;\r\n xhr.open(\"GET\", url, true);\r\n },\r\n startLevel: -1,\r\n debug: false,\r\n enableWorker: true,\r\n abrBandWidthUpFactor: 0.7,\r\n abrBandWidthFactor: 0.95,\r\n backBufferLength: Infinity,\r\n maxBufferLength: 30,\r\n maxMaxBufferLength: 60,\r\n manifestLoadPolicy: {\r\n default: {\r\n maxTimeToFirstByteMs: Infinity,\r\n maxLoadTimeMs: 20000,\r\n timeoutRetry: {\r\n maxNumRetry: 10,\r\n retryDelayMs: 5000,\r\n maxRetryDelayMs: 10000,\r\n },\r\n errorRetry: {\r\n maxNumRetry: 10,\r\n retryDelayMs: 5000,\r\n maxRetryDelayMs: 10000,\r\n },\r\n },\r\n },\r\n fragLoadPolicy: {\r\n default: {\r\n maxTimeToFirstByteMs: 10000,\r\n maxLoadTimeMs: 120000,\r\n timeoutRetry: {\r\n maxNumRetry: 10,\r\n retryDelayMs: 5000,\r\n maxRetryDelayMs: 10000,\r\n },\r\n errorRetry: {\r\n maxNumRetry: 10,\r\n retryDelayMs: 5000,\r\n maxRetryDelayMs: 10000,\r\n },\r\n },\r\n },\r\n playlistLoadPolicy: {\r\n default: {\r\n maxTimeToFirstByteMs: 10000,\r\n maxLoadTimeMs: 20000,\r\n timeoutRetry: {\r\n maxNumRetry: 10,\r\n retryDelayMs: 5000,\r\n maxRetryDelayMs: 10000,\r\n },\r\n errorRetry: {\r\n maxNumRetry: 10,\r\n retryDelayMs: 5000,\r\n maxRetryDelayMs: 10000,\r\n },\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport const handleMiniPlayerHlsConfig = () => {\r\n const streamLinkParams = splitQueryParamsFromStreamLink(\"miniPlayer\");\r\n return {\r\n xhrSetup: (xhr: any, url: any) => {\r\n url = `${url}${streamLinkParams}`;\r\n xhr.open(\"GET\", url, true);\r\n },\r\n startLevel: 1,\r\n debug: false,\r\n maxMaxBufferLength: 60,\r\n playlistLoadPolicy: {\r\n default: {\r\n maxTimeToFirstByteMs: 10000,\r\n maxLoadTimeMs: 20000,\r\n timeoutRetry: {\r\n maxNumRetry: 1000,\r\n retryDelayMs: 0,\r\n maxRetryDelayMs: 0,\r\n },\r\n errorRetry: {\r\n maxNumRetry: 1000,\r\n retryDelayMs: 1000,\r\n maxRetryDelayMs: 1000,\r\n },\r\n },\r\n },\r\n };\r\n};\r\n\r\n// ************* Manifest Handlers ************* //\r\n\r\nexport const handleManifestParsed = (hls: any, data: any) => {\r\n const dispatch = store.dispatch;\r\n let qualityLevels: any[] = [];\r\n let resolutions: any[] = [];\r\n hls.levels.map((level: any) => {\r\n qualityLevels.push(level.attrs.RESOLUTION!.split(\"x\")[1].trim());\r\n resolutions.push(level.attrs.RESOLUTION!);\r\n });\r\n hls.autoLevelCapping = highestResolutionSupported(\r\n resolutions,\r\n window.innerWidth,\r\n window.innerHeight\r\n );\r\n dispatch(setQualityLevels(qualityLevels));\r\n [\r\n \"fullscreenchange\",\r\n \"webkitfullscreenchange\",\r\n \"mozfullscreenchange\",\r\n \"msfullscreenchange\",\r\n ].forEach((eventType) =>\r\n document.addEventListener(\r\n eventType,\r\n (event: any) => {\r\n if (conditions(ConditionName.isAutoQuality)) {\r\n hls.autoLevelCapping = highestResolutionSupported(\r\n resolutions,\r\n window.innerWidth,\r\n window.innerHeight\r\n );\r\n hls.nextLevel = -1;\r\n }\r\n },\r\n false\r\n )\r\n );\r\n};\r\n\r\nexport const handleMediaAttached = (Hls: any, hls: any) => {\r\n const { params, details } = store.getState().videoData;\r\n let streamLink = details.stream_link;\r\n hls.loadSource(streamLink);\r\n hls.on(Hls.Events.MANIFEST_PARSED, (event: any, data: any) =>\r\n handleManifestParsed(hls, data)\r\n );\r\n};\r\n\r\n// ************* Level Handlers ************* //\r\n\r\nexport const handleLevels = (hls: any, data: any, setQualityLevel: any) => {\r\n if (data.frag.type !== \"audio\") {\r\n const dispatch = store.dispatch;\r\n const { settings } = store.getState().user;\r\n const { qualityLevels, manualQuality, autoQuality } =\r\n store.getState().controller;\r\n if (!conditions(ConditionName.isAutoQuality)) {\r\n if (data.frag.level !== manualQuality)\r\n hls.nextLevel = qualityLevels[settings.quality!]\r\n ? settings.quality\r\n : -1;\r\n if (qualityLevels[settings.quality!]) {\r\n dispatch(setManualQuality(settings.quality!));\r\n dispatch(setAutoQuality(undefined));\r\n } else {\r\n setQualityLevel(qualityLevels[data.frag.level]);\r\n dispatch(setAutoQuality(data.frag.level));\r\n dispatch(setUserSettings({ ...settings, quality: -1 }));\r\n }\r\n } else if (\r\n conditions(ConditionName.isAutoQuality) &&\r\n autoQuality === undefined\r\n ) {\r\n hls.nextLevel = -1;\r\n setQualityLevel(qualityLevels[data.frag.level]);\r\n dispatch(setAutoQuality(data.frag.level));\r\n } else if (conditions(ConditionName.isAutoQuality)) {\r\n setQualityLevel(qualityLevels[data.frag.level]);\r\n if (autoQuality !== data.frag.level)\r\n dispatch(setAutoQuality(data.frag.level));\r\n }\r\n }\r\n};\r\n\r\n// ************* Fragment Handlers ************* //\r\n\r\nexport const handleFragBuffered = (hls: any) => {\r\n const dispatch = store.dispatch;\r\n const bufferedTime = hls.mainForwardBufferInfo?.end;\r\n const bufferedTimeWidth =\r\n (bufferedTime! / mainPlayerVideoTag().duration) * 100;\r\n dispatch(setBufferedTimeWidth(bufferedTimeWidth));\r\n};\r\n\r\nexport const handleFragChanged = (\r\n hls: any,\r\n data: any,\r\n setQualityLevel: any\r\n) => {\r\n const { params } = store.getState().videoData;\r\n\r\n if (params.type) handleLevels(hls, data, setQualityLevel);\r\n};\r\n\r\nexport const handleFragParsed = (hls: any, data: any, setQualityLevel: any) => {\r\n const { type } = store.getState().videoData.params;\r\n if (type) handleLevels(hls, data, setQualityLevel);\r\n};\r\n\r\n// ************* HLS Error Handlers ************* //\r\n\r\nexport const handleHlsErrors = (data: any) => {\r\n if (data.event !== \"hlsAudioTrackLoading\")\r\n return { type: \"HLS_\" + data.type, message: data.error.message };\r\n return undefined;\r\n};\r\n\r\n// ************* Video Tag Handlers ************* //\r\n\r\nexport const handleVideoWaiting = (event: any, waitingTimerRef: any) => {\r\n const dispatch = store.dispatch;\r\n event.preventDefault();\r\n waitingTimerRef.current = Date.now();\r\n dispatch(setIsLoading(true));\r\n};\r\n\r\nexport const handleVideoSeeking = (event: any, waitingTimerRef: any) => {\r\n const dispatch = store.dispatch;\r\n event.preventDefault();\r\n waitingTimerRef.current = 0;\r\n dispatch(setIsLoading(true));\r\n};\r\n\r\nexport const handleVideoPlay = (event: any, timerRef: any) => {\r\n const dispatch = store.dispatch;\r\n const { videoSettings } = store.getState().user;\r\n const { params } = store.getState().videoData;\r\n event.preventDefault();\r\n timerRef.current = Date.now();\r\n dispatch(setPlay(true));\r\n if (conditions(ConditionName.hasOnPlayParams)) params.onPlay!();\r\n if (conditions(ConditionName.isFirstPlay)) {\r\n if(!conditions(ConditionName.hasCurrentTimeParams)) {\r\n mainPlayerVideoTag().currentTime = videoSettings.time;\r\n dispatch(setCurrentTime(videoSettings.time));\r\n }\r\n if (conditions(ConditionName.hasFullScreenParams)) handleAutoFullScreen();\r\n if (conditions(ConditionName.isFullScreen)) handleLockOrientation();\r\n dispatch(setVideoTimelines([Math.floor(mainPlayerVideoTag().currentTime)]));\r\n }\r\n sendFluentLog(pausePlayLog(true));\r\n dispatch(setSubtitleText(\"\"));\r\n};\r\n\r\nexport const handleVideoPlaying = (\r\n loadingCounterRef: any,\r\n loadingDurationRef: any,\r\n initialWaitingDurationRef: any,\r\n bannerLoadingDurationRef: any,\r\n timerRef: any,\r\n waitingDurationRef: any,\r\n waitingTimerRef: any,\r\n videoEntranceTimeRef: any\r\n) => {\r\n const dispatch = store.dispatch;\r\n const { autoQuality, canPlayVideo, firstPlay, qualityLevels } =\r\n store.getState().controller;\r\n const { settings } = store.getState().user;\r\n const qualityLevel =\r\n settings.quality === -1 && autoQuality\r\n ? qualityLevels[autoQuality]\r\n : qualityLevels[settings.quality!];\r\n let waitingDuration = 0;\r\n if (!!waitingTimerRef.current)\r\n waitingDuration = Date.now() - waitingTimerRef.current;\r\n if (firstPlay && !!mainPlayerVideoTag().played)\r\n sendFluentLog(\r\n initLog(\r\n loadingDurationRef.current,\r\n Date.now() - initialWaitingDurationRef.current,\r\n bannerLoadingDurationRef.current - initialWaitingDurationRef.current,\r\n Date.now() - timerRef.current,\r\n timerRef\r\n )\r\n );\r\n dispatch(setFirstPlay(false));\r\n if (canPlayVideo && waitingDuration > 0 && qualityLevel !== undefined) {\r\n waitingDurationRef.current = waitingDuration;\r\n waitingTimerRef.current = 0;\r\n sendFluentLog(\r\n loadingLog(\r\n waitingDuration,\r\n qualityLevel,\r\n timerRef,\r\n loadingCounterRef,\r\n videoEntranceTimeRef.current\r\n )\r\n );\r\n loadingCounterRef.current = loadingCounterRef.current + 1;\r\n timerRef.current = Date.now();\r\n }\r\n};\r\n\r\nexport const handleVideoPause = (event: any) => {\r\n const dispatch = store.dispatch;\r\n const { params } = store.getState().videoData;\r\n event.preventDefault();\r\n sendFluentLog(pausePlayLog(false));\r\n dispatch(setPlay(false));\r\n if (conditions(ConditionName.hasOnPauseParams)) params.onPause!();\r\n};\r\n\r\nexport const handleVideoTimeUpdate = (event: any) => {\r\n const dispatch = store.dispatch;\r\n const { selectedSubtitle } = store.getState().videoData;\r\n event.preventDefault();\r\n dispatch(setCurrentTime(event.target.currentTime));\r\n if (conditions(ConditionName.hasActiveCue))\r\n dispatch(setSubtitleText((selectedSubtitle!.activeCues![0] as any).text));\r\n};\r\n\r\nexport const handleVideoCanPlay = (event: any) => {\r\n const dispatch = store.dispatch;\r\n const { settings } = store.getState().user;\r\n event.preventDefault();\r\n dispatch(setIsLoading(false));\r\n dispatch(setCanPlayVideo(true));\r\n mainPlayerVideoTag().volume = settings.volume / 100;\r\n dispatch(setDuration(event.target.duration));\r\n if (conditions(ConditionName.isIOS)) {\r\n const subtitle: TextTrack[] = Object.values(event.target.textTracks);\r\n if (!!subtitle && subtitle.length)\r\n dispatch(\r\n setSubtitles(!!Object.values(subtitle[0]).length ? subtitle : [])\r\n );\r\n } else dispatch(setSubtitles(Object.values(event.target.textTracks)));\r\n};\r\n\r\nexport const handleVideoEnded = (event: any) => {\r\n const dispatch = store.dispatch;\r\n const { params } = store.getState().videoData;\r\n event.preventDefault();\r\n dispatch(setIsEnded(true));\r\n dispatch(setActiveElements(true));\r\n handleVideoTimeline(mainPlayerVideoTag().duration);\r\n if (conditions(ConditionName.hasOnFinishedParams)) params.onFinished!();\r\n};\r\n\r\n// ************* IOS Video Tag Handlers ************* //\r\n\r\nexport const handleIosVideoPlay = (event: any, timerRef: any) => {\r\n const dispatch = store.dispatch;\r\n event.preventDefault();\r\n timerRef.current = Date.now();\r\n dispatch(setFirstPlay(false));\r\n};\r\n\r\nexport const handleIosVideoPlaying = () => {\r\n const dispatch = store.dispatch;\r\n dispatch(setIsLoading(false));\r\n};\r\n\r\nexport const handleIosVideoTimeUpdate = (event: any) => {\r\n const dispatch = store.dispatch;\r\n event.preventDefault();\r\n dispatch(setCurrentTime(event.target.currentTime));\r\n};\r\n\r\nexport const handleIosVideoEnded = () => {\r\n const dispatch = store.dispatch;\r\n const { params } = store.getState().videoData;\r\n dispatch(setIsEnded(true));\r\n dispatch(setActiveElements(true));\r\n if (conditions(ConditionName.hasOnFinishedParams)) params.onFinished!();\r\n};\r\n\r\n// ************* Static Video Tag Handlers ************* //\r\n\r\nexport const handleStaticVideoPause = (event: any) => {\r\n const dispatch = store.dispatch;\r\n event.preventDefault();\r\n dispatch(setPlay(false));\r\n};\r\n\r\nexport const handleStaticVideoPlay = (event: any, timerRef: any) => {\r\n const dispatch = store.dispatch;\r\n event.preventDefault();\r\n dispatch(setPlay(true));\r\n timerRef.current = Date.now();\r\n dispatch(setSubtitleText(\"\"));\r\n\r\n if (conditions(ConditionName.isFirstPlay) && conditions(ConditionName.hasFullScreenParams)) {\r\n handleAutoFullScreen();\r\n if (conditions(ConditionName.isFullScreen)) handleLockOrientation();\r\n }\r\n\r\n\r\n};\r\n\r\nexport const handleStaticVideoPlaying = (\r\n loadingDurationRef: any,\r\n initialWaitingDurationRef: any,\r\n timerRef: any\r\n) => {\r\n const dispatch = store.dispatch;\r\n const { firstPlay } = store.getState().controller;\r\n dispatch(setIsLoading(false));\r\n if (firstPlay && !!mainPlayerVideoTag().played)\r\n sendFluentLog(\r\n initLog(\r\n Math.round(loadingDurationRef.current),\r\n Date.now() - initialWaitingDurationRef.current,\r\n 0,\r\n Date.now() - timerRef.current,\r\n timerRef\r\n )\r\n );\r\n dispatch(setFirstPlay(false));\r\n};\r\n\r\nexport const handleStaticVideoTimeUpdate = (event: any) => {\r\n const dispatch = store.dispatch;\r\n const { selectedSubtitle } = store.getState().videoData;\r\n event.preventDefault();\r\n dispatch(setCurrentTime(event.target.currentTime));\r\n dispatch(setDuration(event.target.duration));\r\n if (conditions(ConditionName.hasActiveCue))\r\n dispatch(setSubtitleText((selectedSubtitle!.activeCues![0] as any).text));\r\n};\r\n\r\nexport const handleStaticVideoCanPlay = (event: any) => {\r\n const dispatch = store.dispatch;\r\n event.preventDefault();\r\n dispatch(setIsLoading(false));\r\n dispatch(setCanPlayVideo(true));\r\n if (conditions(ConditionName.isIOS)) {\r\n const subtitle: TextTrack[] = Object.values(event.target.textTracks);\r\n if (!!subtitle && subtitle.length)\r\n dispatch(\r\n setSubtitles(!!Object.values(subtitle[0]).length ? subtitle : [])\r\n );\r\n } else dispatch(setSubtitles(Object.values(event.target.textTracks)));\r\n};\r\n\r\nexport const handleStaticVideoLoadedData = (event: any, intervalRef: any) => {\r\n event.preventDefault();\r\n handleBufferedTime(event, intervalRef);\r\n};\r\n\r\nexport const handleStaticVideoEnded = (event: any) => {\r\n const { params } = store.getState().videoData;\r\n if (conditions(ConditionName.hasOnFinishedParams)) params.onFinished!();\r\n event.preventDefault();\r\n};\r\n\r\nexport const handleMiniPlayerMediaAttached = async (hls: any) => {\r\n const { stream_link } = store.getState().miniPlayer.details;\r\n hls.loadSource(stream_link);\r\n};\r\n\r\nexport const handleVideoVisibilityChange = (hls: any) => {\r\n handleVideoTimeline(mainPlayerVideoTag().currentTime);\r\n};\r\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import {b as b$1,e,c,a,d}from'./chunk-DBPGS72Q.mjs';import {createSlice,configureStore}from'@reduxjs/toolkit';import {useDispatch,useSelector}from'react-redux';import Re from'axios';var le=b$1((Pa,ne)=>{e();ne.exports={baseUrl:"https://hamrahi.cloud",fluentdUrl:"https://hamrahi.cloud"};});var ce={};c(ce,{isNpmPackage:()=>Ue});var Ue,ue=a(()=>{e();Ue=!1;});e();var Q={play:!1,isAutoPlay:!0,duration:0,currentTime:0,qualityLevels:[],manualQuality:void 0,autoQuality:void 0,activeElements:!0,isLoading:!1,isFullScreen:!1,bufferedTimeWidth:0,firstPlay:!0,activePointerProgressBar:!1,delayTurnOffControlbar:!1,canPlayVideo:!1,lock:!1,isEnded:!1,tooltipTime:0},B=createSlice({name:"controller",initialState:Q,reducers:{setPlay:(e,t)=>{e.play=t.payload;},setIsAutoPlay:(e,t)=>{e.isAutoPlay=t.payload;},setDuration:(e,t)=>{e.duration=t.payload;},setCurrentTime:(e,t)=>{e.currentTime=t.payload;},setManualQuality:(e,t)=>{e.manualQuality=t.payload;},setAutoQuality:(e,t)=>{e.autoQuality=t.payload;},setQualityLevels:(e,t)=>{e.qualityLevels=t.payload;},setActiveElements:(e,t)=>{e.activeElements=t.payload;},setIsLoading:(e,t)=>{e.isLoading=t.payload;},setIsFullScreen:(e,t)=>{e.isFullScreen=t.payload;},setBufferedTimeWidth:(e,t)=>{e.bufferedTimeWidth=t.payload;},setFirstPlay:(e,t)=>{e.firstPlay=t.payload;},setActivePointerProgressBar:(e,t)=>{e.activePointerProgressBar=t.payload;},setDelayTurnOffControlbar:(e,t)=>{e.delayTurnOffControlbar=t.payload;},setCanPlayVideo:(e,t)=>{e.canPlayVideo=t.payload;},setLock:(e,t)=>{e.lock=t.payload;},setIsEnded:(e,t)=>{e.isEnded=t.payload;},setTooltipTime:(e,t)=>{e.tooltipTime=t.payload;},setClearControllerSlice:()=>Q}}),{setPlay:Qe,setIsAutoPlay:Be,setDuration:Oe,setCurrentTime:$e,setQualityLevels:Ke,setAutoQuality:qe,setActiveElements:Ce,setIsLoading:je,setIsFullScreen:He,setBufferedTimeWidth:We,setFirstPlay:Xe,setActivePointerProgressBar:Ye,setDelayTurnOffControlbar:Ge,setManualQuality:Je,setCanPlayVideo:Ze,setLock:ze,setIsEnded:Ne,setTooltipTime:et,setClearControllerSlice:O}=B.actions,$=B.reducer;e();var K={details:{stream_link:"",type:"",banner:"",id:void 0,title:void 0,vtt:void 0,vtt_mobile:void 0,user_id:null,content_id:void 0,content_type:null,duration:0,subtitles:void 0},params:{type:"",id:"",bannerAlt:"",fullscreen:"",autoplay:"",banner:"",provider:"cafevdo",onFinished:void 0,onPlay:void 0,onPause:void 0,playStatus:void 0,currentTime:void 0,daaniHashCode:void 0},markers:[],videoElementSizeInfo:{bottom:0,top:0,right:0,left:0,width:0,height:0},isFetchDetails:!1,isValidAddress:!1,videoTimelines:[],isReady:!1,subtitles:[],selectedSubtitle:void 0,subtitleText:void 0},q=createSlice({name:"videoData",initialState:K,reducers:{setInfo:(e,t)=>{e.details=t.payload;},setPlayerParams:(e,t)=>{e.params=t.payload;},setMarkers:(e,t)=>{e.markers=t.payload;},setVideoElementSizeInfo:(e,t)=>{e.videoElementSizeInfo=t.payload;},setIsFetchDetails:(e,t)=>{e.isFetchDetails=t.payload;},setIsValidAddress:(e,t)=>{e.isValidAddress=t.payload;},setVideoTimelines:(e,t)=>{e.videoTimelines=t.payload;},setIsReady:(e,t)=>{e.isReady=t.payload;},setSubtitles:(e,t)=>{e.subtitles=t.payload;},setSelectedSubtitle:(e,t)=>{e.selectedSubtitle=t.payload;},setSubtitleText:(e,t)=>{e.subtitleText=t.payload;},setClearVideoDataSlice:e=>K}}),{setInfo:ot,setPlayerParams:it,setVideoElementSizeInfo:nt,setMarkers:lt,setIsFetchDetails:ct,setIsValidAddress:ut,setVideoTimelines:dt,setIsReady:pt,setSubtitles:mt,setSubtitleText:yt,setSelectedSubtitle:gt,setClearVideoDataSlice:C}=q.actions,j=q.reducer;e();var H={settings:{quality:-1,brightness:100,volume:100,speed:1},videoSettings:{time:0}},W=createSlice({name:"user",initialState:H,reducers:{setUserSettings:(e,t)=>{e.settings=t.payload;},setVideoSettings:(e,t)=>{e.videoSettings=t.payload;},setClearUserSlice:()=>H}}),{setUserSettings:vt,setVideoSettings:bt,setClearUserSlice:X}=W.actions,Y=W.reducer;e();e();e();var ke={settingPopover:!1,speedPopover:!1,qualityLevelsPopover:!1,markersListPopover:!1},G=createSlice({name:"popover",initialState:ke,reducers:{setSettingPopover:(e,t)=>{e.settingPopover=t.payload;},setSpeedPopover:(e,t)=>{e.speedPopover=t.payload;},setQualityLevelsPopover:(e,t)=>{e.qualityLevelsPopover=t.payload;},setMarkersListPopover:(e,t)=>{e.markersListPopover=t.payload;},setClearPopoversSlice:e=>{e.settingPopover=!1,e.speedPopover=!1,e.qualityLevelsPopover=!1,e.markersListPopover=!1;}}}),{setSettingPopover:Tt,setSpeedPopover:Mt,setQualityLevelsPopover:It,setMarkersListPopover:Ft,setClearPopoversSlice:J}=G.actions,Z=G.reducer;e();var z={params:{id:"0",type:"",currentTime:0,autoPlay:!1,onClose:()=>{}},details:{},play:!1},N=createSlice({name:"user",initialState:z,reducers:{setMiniPlayerInfo:(e,t)=>{e.params={...t.payload,id:t.payload.type==="static"?window.atob(t.payload.id):t.payload.id,banner:t.payload.banner?t.payload.banner:void 0};},setDetailsMiniPlayer:(e,t)=>{e.details=t.payload;},setPlayMiniPlayer:(e,t)=>{e.play=t.payload;},setClearMiniPlayerSlice:e=>z}}),{setMiniPlayerInfo:Qt,setDetailsMiniPlayer:Bt,setPlayMiniPlayer:Ot,setClearMiniPlayerSlice:$t}=N.actions,ee=N.reducer;var Me=configureStore({reducer:{controller:$,videoData:j,popovers:Z,user:Y,miniPlayer:ee},devTools:!0,middleware:e=>e({serializableCheck:!1})}),s=Me;e();e();var u=e=>{let{params:t,details:r,isValidAddress:a,isFetchDetails:i,isReady:n,subtitles:p,selectedSubtitle:l,markers:P}=s.getState().videoData,{firstPlay:m,lock:c,canPlayVideo:d,manualQuality:S,activeElements:v,isLoading:h,isEnded:U,isAutoPlay:pe,play:me,isFullScreen:L}=s.getState().controller,{settingPopover:_,speedPopover:ye,qualityLevelsPopover:ge,markersListPopover:he}=s.getState().popovers,{settings:E}=s.getState().user,k=s.getState().miniPlayer;switch(e){case"showHeader":return !m&&d;case"showMain":return !c||m;case"showFooter":return !m&&d;case"showTouchVolumeBrightness":return !m&&x()&&!c&&!U;case"showBackwardForward":return !m&&b()&&!c;case"showTitle":return t.type!=="static"&&L&&!c;case"showSettingPopover":return _;case"showSpeedPopover":return ye;case"showQualityLevelsPopover":return ge;case"showSettingIcon":return t.type!=="static"&&!w()&&!L;case"showBanner":return m&&(r.banner||t.banner);case"showProgressbar":return !w();case"showPictureInPicture":return !w()&&!b();case"showSubtitle":return !!l;case"showMarkerListPopover":return he;case"hidePopovers":return !_;case"isLandscape":return window.innerHeight<=window.innerWidth;case"isTouchScreen":return b();case"isTouchScreenPortrait":return re();case"isTouchScreenLandscape":return x();case"isActiveElements":return v;case"isPlay":return me;case"isPlayMiniPlayer":return k.play;case"isFirstPlay":return m;case"isLock":return c;case"isIOS":return w();case"isLoading":return h;case"isStaticFormat":return t.type==="static";case"isEnded":return U;case"isAutoPlay":return pe;case"isFullScreen":return L;case"isValidAddress":return a;case"isFetchDetails":return i;case"isAutoQuality":return E.quality===-1;case"isPressKeySpace":return !c;case"isPressKeyI":return !c&&!m;case"isPressKeyF":return !c&&!m;case"isPressKeyS":return !c&&!m;case"isPressKeyArrowRight":return !m&&!c;case"isPressKeyArrowLeft":return !m&&!c;case"isPressKeyM":return !m&&!c;case"isPressKeyC":return !c&&!m&&!!p&&p.length>0;case"isSendTimelineLog":return t.type!=="static";case"isReady":return n;case"isSelectedSubtitle":return !!p&&p.length>0&&l;case"isMiniPlayerAndMainPlayerSame":return t.id===k.params.id;case"hasTitle":return r.title;case"hasBanner":return r.banner;case"hasStreamLink":return r.stream_link;case"hasManualQuality":return S!=null;case"hasSound":return !!E.volume;case"hasAutoPlay":return t.autoplay==="true";case"hasFullScreenParams":return t.fullscreen==="true";case"hasOnFinishedParams":return !!t.onFinished;case"hasSubtitles":return !!p&&p.length>0;case"hasSubtitlesInDetails":return r.subtitles&&r.subtitles.length>0;case"hasActiveCue":return l&&l.activeCues&&l.activeCues.length>0;case"hasOnPlayParams":return !!t.onPlay;case"hasOnPauseParams":return !!t.onPause;case"hasPlayStatusParams":return t.playStatus!==void 0;case"hasMiniPlayer":return k.params.id;case"hasCurrentTimeParams":return t.currentTime!==void 0;case"hasMarkers":return P.length!==0;case"hasSubtitlesInParams":return t.subtitles&&t.subtitles.length;case"getDetails":return !!t.type&&t.id;case"getMarkers":return String(t.type)==="vod"&&t.id&&i;case"canPlayVideo":return d;case"setSubtitleFirstPlay":return r.subtitles&&r.subtitles.length>0&&!m&&t.type!=="static";}};var ae=e=>new Promise(t=>setTimeout(t,e*1e3)),f=()=>{let e=localStorage.getItem("hamrahiUUID");return e||(e=Ie(),localStorage.setItem("hamrahiUUID",e)),e.toString()},Ie=()=>{let e="xxxxxxxx-xxxx-Mxxx-Nxxx-x".replace(/[xMN]/g,t=>{let r;return t==="M"?r=Math.floor(1+Math.random()*5):t==="N"?r=Math.floor(8+Math.random()*4):r=Math.floor(Math.random()*16),r.toString(16)});return e+=Date.now().toString(16),e},b=()=>"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch,x=()=>{let{isFullScreen:e}=s.getState().controller;return b()&&e},re=()=>{let{isFullScreen:e}=s.getState().controller;return b()&&!e},w=()=>["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document,A=e=>(e<10?"0":"")+e,cr=e=>{let t=Math.floor(e/3600),r=Math.floor(e%3600/60),a=Math.floor(e%3600%60);return t<1?`${A(r)}:${A(a)}`:`${A(t)}:${A(r)}:${A(a)}`},ur=e=>{let t=new URL(e),r=e;return t.search.length?r+=`&uuid=${f()}`:r+=`?uuid=${f()}`},dr=(e,t)=>{try{return [e.target.id,e.target.parentNode.id,e.target.parentNode.parentNode.id,e.target.parentNode.parentNode.parentNode.id,e.target.parentNode.parentNode.parentNode.parentNode.id].includes(t)}catch{return !1}},pr=e=>{let t="";e==="mainPlayer"?t=s.getState().videoData.details.stream_link:t=s.getState().miniPlayer.details.stream_link;let r="";return t&&(r=t.split("m3u8")[1]),r?r=`${r}&uuid=${f()}`:r=`?uuid=${f()}`,r},mr=(e,t)=>{let r=document.getElementById(t),a=document.createElement("span");a.style.width=a.style.height="50px",a.style.left=`${e.touches[0].clientX-r.offsetLeft-25}px`,a.style.top=`${e.touches[0].clientY-r.offsetTop-25}px`,a.classList.add("pl-ripple");let i=r.getElementsByClassName("pl-ripple")[0];i&&i.remove(),r.appendChild(a);};var yr=e=>e>=200&&e<300,gr=()=>{let e=s.dispatch;e(C()),e(O()),e(X()),e(J());},hr=e=>{let t,r=[];for(t=0;t<e.length;t++)r[t]=e[t].weight+(r[t-1]||0);let a=Math.random()*r[r.length-1];for(t=0;t<r.length&&!(r[t]>a);t++);return e[t].domain},Pr=e=>{let t=0;performance&&performance.getEntriesByType("navigation")&&(t=performance.getEntriesByType("navigation")[0].duration),e.current=t;},fr=(e,t,r)=>{let a=t*window.devicePixelRatio,i=r*window.devicePixelRatio,n=[];return u("isTouchScreenPortrait")?n=e.filter(p=>Number(p.split("x")[0].trim())<=a):n=e.filter(p=>Number(p.split("x")[0].trim())<=i||Number(p.split("x")[1].trim())<=a),n.indexOf(n[n.length-1])},D=(e,t)=>{let r={};for(let a in e){let i=t?`${t}_${a}`:a;typeof e[a]=="object"&&!Array.isArray(e[a])?r={...r,...D(e[a],i)}:r[i]=e[a];}return r},Sr=e=>{let t={fa:1,en:2};return e.slice().sort((r,a)=>{let i=t[r.lang]||999,n=t[a.lang]||999;return i-n})},vr=e=>{let t;switch(e){case"fa":t="\u0641\u0627\u0631\u0633\u06CC";break;case"en":t="\u0627\u0646\u06AF\u0644\u06CC\u0633\u06CC";break;case"ar":t="\u0639\u0631\u0628\u06CC";break;case"tr":t="\u062A\u0631\u06A9\u06CC";break;}return t},br=e=>e.split(/\r?\n|\r|\n/g),wr=e=>{if(e){let t=e.offsetLeft-e.offsetWidth/2,r=window.innerWidth-(e.offsetLeft+e.offsetWidth);if(t>=0&&r>=0)return "inViewport";if(t<0)return "OutViewPortFromLeft";if(r<0)return "OutViewPortFromRight"}};var Ar=e=>(e=e.replace(/\d{2}:\d{2}:\d{2}\.\d{3} --> \d{2}:\d{2}:\d{2}\.\d{3}.*\n/g,""),e=e.replace(/<[^>]+>/g,""),e=e.replace(/\n+/g,`
|
|
2
|
+
`),e=e.trim(),e);e();var Tr=()=>useDispatch(),Mr=useSelector;e();var T=()=>document.getElementById("player-tag"),Rr=()=>document.getElementById("mini-player-video-tag"),Ur=()=>document.getElementById("time-progress-bar"),_r=()=>s.getState().videoData.videoElementSizeInfo.width-2;e();e();e();e();var Cr=e=>{let{params:t,details:r}=s.getState().videoData,{settings:a}=s.getState().user;return {category:"speedChange",previousSelectedSpeed:a.speed,selectedSpeed:e,id:Number(t.id),type:t.type,src:u("hasStreamLink")?r.stream_link:t.id,provider:t.provider}},jr=e=>{let{params:t,details:r}=s.getState().videoData,{qualityLevels:a,manualQuality:i,autoQuality:n}=s.getState().controller;return {category:"qualityChangeRequest",currentPlayingQuality:`${a[u("isAutoQuality")?n??i:i]}P`,previousSelectedQuality:u("isAutoQuality")?"auto":`${a[i]}P`,selectedQuality:e,id:Number(t.id),type:t.type,src:u("hasStreamLink")?r.stream_link:t.id,provider:t.provider}},Hr=e=>{let{params:t,details:r}=s.getState().videoData,{qualityLevels:a,autoQuality:i}=s.getState().controller,{settings:n}=s.getState().user;return {category:"catchUpLoading",previousVideoTime:Number(sessionStorage.getItem("previousVideoTime")),currentVideoTime:T().currentTime,duration:e,quality:`${u("isAutoQuality")?a[i]:a[n.quality]}P`,isAutoQuality:u("isAutoQuality"),id:Number(t.id),type:t.type,src:u("hasStreamLink")?r.stream_link:t.id,provider:t.provider}},Wr=e=>{let{params:t,details:r}=s.getState().videoData;return {category:e==="backward"?"backward":"forward",id:Number(t.id),type:t.type,src:r.stream_link?r.stream_link:t.id,provider:t.provider}},Xr=e=>{let{params:t,details:r}=s.getState().videoData;return {category:e,id:Number(t.id),type:t.type,src:u("hasStreamLink")?r.stream_link:t.id}},Yr=(e,t)=>{let{params:r,details:a}=s.getState().videoData;return {category:"brightnessChange",source:e,target:t,id:Number(r.id),type:r.type,src:u("hasStreamLink")?a.stream_link:r.id}},Gr=(e,t)=>{let{params:r,details:a}=s.getState().videoData;return {category:"volumeChange",source:e,target:t,id:Number(r.id),type:r.type,src:u("hasStreamLink")?a.stream_link:r.id}},Jr=e=>{let{params:t,details:r}=s.getState().videoData;return {category:e,id:Number(t.id),type:t.type,src:u("hasStreamLink")?r.stream_link:t.id}},se=(e,t,r,a)=>({category:"player-error",type:e,message:t,statusCode:r,url:a}),Zr=(e,t)=>{let{params:r,details:a}=s.getState().videoData,{duration:i}=s.getState().controller;return {category:"video-timeline",video_id:+r.id,video_type:r.type,start:e,end:t,watchedDuration:t-e,video_duration:Math.floor(i),clientUUID:f(),user_id:a.user_id,content_type:a.content_type,content_id:a.content_id}},zr=(e,t,r)=>{let{params:a,details:i}=s.getState().videoData;return {category:"autoQualityChange",sourceQuality:e,targetQuality:t,diffQuality:r,id:Number(a.id),type:a.type,src:u("hasStreamLink")?i.stream_link:a.id,provider:a.provider}},Nr=(e,t)=>{let{params:r,details:a}=s.getState().videoData;return {category:"pingpong",id:Number(r.id),type:r.type,src:u("hasStreamLink")?a.stream_link:r.id,PingPongDuration:Number((new Date().getTime()-e).toFixed(2)),PingPongSourceQuality:`${t[0]}P`,PingPongTargetQuality:`${t[1]}P`,provider:r.provider}},ea=e=>{let{params:t,details:r}=s.getState().videoData;return {category:e?"playVideo":"pauseVideo",id:Number(t.id),type:t.type,src:r.stream_link?r.stream_link:t.id,provider:t.provider}},ta=(e,t,r,a,i)=>{let{params:n,details:p}=s.getState().videoData,l=Date.now()-i.current+e+t,P=window.performance.memory,m=JSON.parse(JSON.stringify(window.performance.timing));return {category:"initLog",id:Number(n.id),type:n.type,origin:new URL(u("hasStreamLink")?p.stream_link:n.id).origin,src:u("hasStreamLink")?p.stream_link:n.id,loading:e,bannerLoading:!u("hasBanner")||r<0?0:r,waiting:t,firstChunkPlaying:a<0?0:a,totalTime:l,provider:n.provider,performance:D({memory:P,timing:m},"performance"),userAgent:window.navigator.userAgent}},ra=(e,t,r,a,i)=>{let{params:n,details:p}=s.getState().videoData,{settings:l}=s.getState().user,P=Date.now()-r.current;return {category:"loading",id:Number(n.id),type:n.type,src:u("hasStreamLink")?p.stream_link:n.id,duration:e,quality:`${t}P`,isAutoQuality:u("isAutoQuality"),previousLoaderDiff:P,counter:a.current,loadingPercentile:Number((e/P).toFixed(2)),videoTime:T().currentTime,videoEntranceTime:i,speed:l.speed,provider:n.provider}},aa=e=>{let{params:t,details:r}=s.getState().videoData;return {category:"subtitle",language:e,id:Number(t.id),type:t.type,src:u("hasStreamLink")?r.stream_link:t.id}},sa=(e,t,r,a,i)=>{let{params:n,details:p}=s.getState().videoData;return {category:"eventMarkerClick",video_id:Number(n.id),markerId:e,markerTime:t,markerTitle:r,markerDescription:a,markerSticker:i,type:n.type,src:u("hasStreamLink")?p.stream_link:n.id,provider:n.provider}};var ie=e=>{e&&oe(se(e.type,e.message,e.statusCode,e.url));};var M=async({url:e,method:t="GET",data:r,headers:a,retryCount:i=1,maxRetryCount:n=0,errorMessage:p,retryPolicy:l,errorCallback:P,timeoutCount:m})=>{let c={url:e,method:t,headers:{...a,"Content-Type":"application/json"},timeout:m?m*1e3:void 0};r?t==="GET"?c={...c,params:{uuid:s.getState().videoData.params.uuid,provider:s.getState().videoData.params.provider==="unknown"?void 0:s.getState().videoData.params.provider,...r}}:c={...c,data:{uuid:s.getState().videoData.params.uuid,provider:s.getState().videoData.params.provider==="unknown"?void 0:s.getState().videoData.params.provider,...r}}:t==="GET"?c={...c,params:{uuid:s.getState().videoData.params.uuid,provider:s.getState().videoData.params.provider==="unknown"?void 0:s.getState().videoData.params.provider}}:c={...c,data:{uuid:s.getState().videoData.params.uuid,provider:s.getState().videoData.params.provider==="unknown"?void 0:s.getState().videoData.params.provider}};try{return await Re(c)}catch(d){if(ie({type:"API-ERROR",message:d.message?d.message:"",statusCode:d.response&&d.response.status?d.response.status:void 0,url:e}),!(d&&d.response&&d.response.status===401)){P&&P(d.response.status,d.response.message);let S=0,v=0;if(l!==void 0){for(let h=0;h<l.length;h++)if((l[h].codeAbove&&d.response.status>=l[h].codeAbove||l[h].codeBelow&&d.response.status<=l[h].codeBelow)&&(l[h].excludeCodes.length===0||!l[h].excludeCodes.includes(d.response.status))||l[h].includeCodes.length===0||l[h].includeCodes.includes(d.response.status)){v=l[h].count,S=l[h].delay;break}}else v=n,S=i+1;if(i<v)return await ae(S),M({url:e,method:t,data:r,headers:a,retryCount:i+1,newMaxRetryCount:v,errorMessage:p,retryPolicy:l,errorCallback:P});if(d.response)return {data:d.response.data?d.response.data:{detail:"\u0639\u0645\u0644\u06CC\u0627\u062A \u0628\u0627 \u062E\u0637\u0627 \u0645\u0648\u0627\u062C\u0647 \u0634\u062F\u0647 \u0627\u0633\u062A."},status:d.response.status}}}};e();e();var I=le(),F=(ue(),d(ce)),V=()=>(F?I.baseUrl:process.env.baseUrl)+"/live/api",R=()=>F?I.fluentdUrl:process.env.fluentdUrl,va=()=>(F?I.baseUrl:process.env.baseUrl)+"/emoji";var de=()=>({vod:{getVodUrl:`${V()}/v1/live/details/vod/`,getMarkerUrl:e=>`${V()}/v1/live/list-event/vod/${e}/`},videoTimelineLog:`${R()}/video-timeline.log`,logs:`${R()}/drive-endpoint.log`});var oe=e=>{let{details:t,params:r}=s.getState().videoData,a={...e,timestamp:Date.now(),clientUUID:f(),uuid:f(),link:window.location.href,user_id:t.user_id,live_id:null,format:void 0,content_type:t.content_type,content_id:t.content_id,daaniHashCode:r.daaniHashCode};M({url:de().logs,method:"post",data:a});};export{br as $,gt as A,aa as Aa,Tt as B,sa as Ba,Mt as C,ie as Ca,It as D,M as Da,Ft as E,J as F,vt as G,bt as H,Qt as I,Bt as J,Ot as K,$t as L,s as M,f as N,b as O,cr as P,ur as Q,dr as R,pr as S,mr as T,yr as U,gr as V,hr as W,Pr as X,fr as Y,Sr as Z,vr as _,Qe as a,wr as aa,Oe as b,Ar as ba,$e as c,u as ca,Ke as d,Tr as da,qe as e,Mr as ea,Ce as f,T as fa,je as g,Rr as ga,He as h,Ur as ha,We as i,_r as ia,Xe as j,va as ja,Ye as k,de as ka,Ge as l,oe as la,Je as m,Cr as ma,Ze as n,jr as na,ze as o,Hr as oa,Ne as p,Wr as pa,et as q,Xr as qa,ot as r,Yr as ra,it as s,Gr as sa,nt as t,Jr as ta,ct as u,Zr as ua,ut as v,zr as va,dt as w,Nr as wa,pt as x,ea as xa,mt as y,ta as ya,yt as z,ra as za};//# sourceMappingURL=chunk-5OIS455P.mjs.map
|
|
3
|
+
//# sourceMappingURL=chunk-5OIS455P.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/videoPlayerLibrary/helpers/configs/nextConfigs/next.config.js","../src/videoPlayerLibrary/helpers/configs/npmPackage/npmPackage.ts","../src/videoPlayerLibrary/helpers/redux/slices/controllerSlice.ts","../src/videoPlayerLibrary/helpers/redux/slices/videoDataSlice.ts","../src/videoPlayerLibrary/helpers/redux/slices/userSlice.ts","../src/videoPlayerLibrary/helpers/interfaces/enums.ts","../src/videoPlayerLibrary/helpers/redux/store.ts","../src/videoPlayerLibrary/helpers/redux/slices/popoversSlice.ts","../src/videoPlayerLibrary/helpers/redux/slices/miniPlayerSlice.ts","../src/videoPlayerLibrary/helpers/helpers.ts","../src/videoPlayerLibrary/helpers/conditions/conditions.ts","../src/videoPlayerLibrary/helpers/redux/hooks.ts","../src/videoPlayerLibrary/helpers/constants.ts","../src/videoPlayerLibrary/helpers/logs/fluentdLogger.ts","../src/videoPlayerLibrary/helpers/services/apiCaller.ts","../src/videoPlayerLibrary/helpers/errorBoundary/errorBoundaryFunctions.ts","../src/videoPlayerLibrary/helpers/logs/logs.ts","../src/videoPlayerLibrary/helpers/services/services.ts","../src/videoPlayerLibrary/helpers/services/baseUrl.ts"],"names":["require_next_config","__commonJSMin","exports","module","init_esm_shims","npmPackage_exports","__export","isNpmPackage","init_npmPackage","__esmMin","ControllerSliceState","controllerSlice","createSlice","state","action","setPlay","setIsAutoPlay","setDuration","setCurrentTime","setQualityLevels","setAutoQuality","setActiveElements","setIsLoading","setIsFullScreen","setBufferedTimeWidth","setFirstPlay","setActivePointerProgressBar","setDelayTurnOffControlbar","setManualQuality","setCanPlayVideo","setLock","setIsEnded","setTooltipTime","setClearControllerSlice","controllerSlice_default","VideoDataSliceState","videoDataSlice","setInfo","setPlayerParams","setVideoElementSizeInfo","setMarkers","setIsFetchDetails","setIsValidAddress","setVideoTimelines","setIsReady","setSubtitles","setSubtitleText","setSelectedSubtitle","setClearVideoDataSlice","videoDataSlice_default","UserSliceState","userSlice","setUserSettings","setVideoSettings","setClearUserSlice","userSlice_default","PopOversSliceState","popoversSlice","setSettingPopover","setSpeedPopover","setQualityLevelsPopover","setMarkersListPopover","setClearPopoversSlice","popoversSlice_default","MiniPlayerSliceState","setMiniPlayerInfo","setDetailsMiniPlayer","setPlayMiniPlayer","setClearMiniPlayerSlice","miniPlayerSlice_default","store","configureStore","getDefaultMiddleware","store_default","conditions","type","params","details","isValidAddress","isFetchDetails","isReady","subtitles","selectedSubtitle","markers","firstPlay","lock","canPlayVideo","manualQuality","activeElements","isLoading","isEnded","isAutoPlay","play","isFullScreen","settingPopover","speedPopover","qualityLevelsPopover","markersListPopover","settings","miniPlayer","isTouchScreenLandscape","isTouchScreen","isIOS","isTouchScreenPortrait","wait","s","resolve","getUUID","uuid","uuidGenerator","char","val","addZeroBefore","n","secondsToHMS","seconds","h","m","addUuidToSrc","src","urlObject","urlSrc","checkParentTarget","event","target","splitQueryParamsFromStreamLink","playerType","streamLink","queryParams","handleRippleCircle","id","element","circle","ripple","responseValidator","status","clearRedux","dispatch","weighted_random","options","i","weights","random","handlePageLoadTime","loadingDurationRef","pageLoadTime","highestResolutionSupported","resolutions","width","height","w","filteredResolutions","resolution","flattenObject","input","keyName","result","key","newKey","sortLanguages","array","priority","a","b","prioA","prioB","getSubtitleLabel","subtitleLanguage","label","spliteStringPerLine","str","inViewPort","positionLeft","positionRight","cleanVTT","vttText","useAppDispatch","useDispatch","useAppSelector","useSelector","mainPlayerVideoTag","miniPlayerVideoTag","progressBar","progressBarWidth","speedChangeLog","selectedSpeed","qualityChangeRequestLog","selectedQuality","qualityLevels","autoQuality","catchUpLoadingLog","duration","backwardForwardLog","fullscreenLog","category","brightnessLog","source","volumeLog","lockLog","ExceptionsLog","message","statusCode","url","videoTimelineLog","start","end","autoQualityChangeLog","sourceQuality","targetQuality","diffQuality","pingpongLog","startTimer","qualityHistory","pausePlayLog","isPlay","initLog","loadingTime","waitingTime","bannerLoadingTime","firstChunkPlayingTime","timerRef","totalTime","memory","timing","loadingLog","waitingDuration","qualityLevel","loadingCounterRef","videoEntranceTime","previousLoaderDiff","subtitleLog","language","eventMarkerClickLog","markerId","markerTime","markerTitle","markerDescription","markerSticker","errorLogProvider","data","sendFluentLog","apiCaller","method","headers","retryCount","maxRetryCount","errorMessage","retryPolicy","errorCallback","timeoutCount","axiosConfig","axios","error","newRetryDelay","newMaxRetryCount","envs","getRestApiLiveUrl","getFluentdUrl","getEmojiUrl","API","videoId","_data"],"mappings":"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","file":"chunk-5OIS455P.mjs","sourcesContent":["module.exports = {\r\n baseUrl: \"https://hamrahi.cloud\",\r\n fluentdUrl: \"https://hamrahi.cloud\",\r\n};\r\n","export const isNpmPackage = false;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { IControllerSlice } from \"../../interfaces/interfaces\";\r\n\r\nconst ControllerSliceState: IControllerSlice = {\r\n play: false,\r\n isAutoPlay: true,\r\n duration: 0,\r\n currentTime: 0,\r\n qualityLevels: [],\r\n manualQuality: undefined,\r\n autoQuality: undefined,\r\n activeElements: true,\r\n isLoading: false,\r\n isFullScreen: false,\r\n bufferedTimeWidth: 0,\r\n firstPlay: true,\r\n activePointerProgressBar: false,\r\n delayTurnOffControlbar: false,\r\n canPlayVideo: false,\r\n lock: false,\r\n isEnded: false,\r\n tooltipTime: 0,\r\n};\r\n\r\nexport const controllerSlice = createSlice({\r\n name: \"controller\",\r\n initialState: ControllerSliceState,\r\n reducers: {\r\n setPlay: (state, action: PayloadAction<boolean>) => {\r\n state.play = action.payload;\r\n },\r\n setIsAutoPlay: (state, action: PayloadAction<boolean>) => {\r\n state.isAutoPlay = action.payload;\r\n },\r\n setDuration: (state, action: PayloadAction<number>) => {\r\n state.duration = action.payload;\r\n },\r\n setCurrentTime: (state, action: PayloadAction<number>) => {\r\n state.currentTime = action.payload;\r\n },\r\n setManualQuality: (state, action: PayloadAction<number | undefined>) => {\r\n state.manualQuality = action.payload;\r\n },\r\n setAutoQuality: (state, action: PayloadAction<number | undefined>) => {\r\n state.autoQuality = action.payload;\r\n },\r\n setQualityLevels: (state, action: PayloadAction<any[]>) => {\r\n state.qualityLevels = action.payload;\r\n },\r\n setActiveElements: (state, action: PayloadAction<boolean>) => {\r\n state.activeElements = action.payload;\r\n },\r\n setIsLoading: (state, action: PayloadAction<boolean>) => {\r\n state.isLoading = action.payload;\r\n },\r\n setIsFullScreen: (state, action: PayloadAction<boolean>) => {\r\n state.isFullScreen = action.payload;\r\n },\r\n setBufferedTimeWidth: (state, action: PayloadAction<number>) => {\r\n state.bufferedTimeWidth = action.payload;\r\n },\r\n setFirstPlay: (state, action: PayloadAction<boolean>) => {\r\n state.firstPlay = action.payload;\r\n },\r\n setActivePointerProgressBar: (state, action: PayloadAction<boolean>) => {\r\n state.activePointerProgressBar = action.payload;\r\n },\r\n setDelayTurnOffControlbar: (state, action: PayloadAction<boolean>) => {\r\n state.delayTurnOffControlbar = action.payload;\r\n },\r\n setCanPlayVideo: (state, action: PayloadAction<boolean>) => {\r\n state.canPlayVideo = action.payload;\r\n },\r\n setLock: (state, action: PayloadAction<boolean>) => {\r\n state.lock = action.payload;\r\n },\r\n setIsEnded: (state, action: PayloadAction<boolean>) => {\r\n state.isEnded = action.payload;\r\n },\r\n setTooltipTime: (state, action: PayloadAction<number>) => {\r\n state.tooltipTime = action.payload;\r\n },\r\n setClearControllerSlice: () => {\r\n return ControllerSliceState;\r\n }\r\n }\r\n});\r\n\r\nexport const {\r\n setPlay,\r\n setIsAutoPlay,\r\n setDuration,\r\n setCurrentTime,\r\n setQualityLevels,\r\n setAutoQuality,\r\n setActiveElements,\r\n setIsLoading,\r\n setIsFullScreen,\r\n setBufferedTimeWidth,\r\n setFirstPlay,\r\n setActivePointerProgressBar,\r\n setDelayTurnOffControlbar,\r\n setManualQuality,\r\n setCanPlayVideo,\r\n setLock,\r\n setIsEnded,\r\n setTooltipTime,\r\n setClearControllerSlice,\r\n} = controllerSlice.actions;\r\nexport default controllerSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { IVideoElementSizeInfo, IDetails, IVideoDataSlice, IParams, IMarker } from \"../../interfaces/interfaces\";\r\n\r\nexport const VideoDataSliceState: IVideoDataSlice = {\r\n details: {\r\n stream_link: \"\",\r\n type: \"\",\r\n banner: \"\",\r\n id: undefined,\r\n title: undefined,\r\n vtt: undefined,\r\n vtt_mobile: undefined,\r\n user_id: null,\r\n content_id: undefined,\r\n content_type: null,\r\n duration: 0,\r\n subtitles: undefined,\r\n },\r\n params: {\r\n type: \"\",\r\n id: \"\",\r\n bannerAlt: \"\",\r\n fullscreen: \"\",\r\n autoplay: \"\",\r\n banner: \"\",\r\n provider: \"cafevdo\",\r\n onFinished: undefined,\r\n onPlay: undefined,\r\n onPause: undefined,\r\n playStatus: undefined,\r\n currentTime: undefined,\r\n daaniHashCode: undefined\r\n },\r\n markers: [],\r\n videoElementSizeInfo: {\r\n bottom: 0,\r\n top: 0,\r\n right: 0,\r\n left: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n isFetchDetails: false,\r\n isValidAddress: false,\r\n videoTimelines: [],\r\n isReady: false,\r\n subtitles: [],\r\n selectedSubtitle: undefined,\r\n subtitleText: undefined,\r\n};\r\n\r\nexport const videoDataSlice = createSlice({\r\n name: \"videoData\",\r\n initialState: VideoDataSliceState,\r\n reducers: {\r\n setInfo: (state, action: PayloadAction<IDetails>) => {\r\n state.details = action.payload;\r\n },\r\n setPlayerParams: (state, action: PayloadAction<IParams>) => {\r\n state.params = action.payload;\r\n },\r\n setMarkers: (state, action: PayloadAction<IMarker[]>) => {\r\n state.markers = action.payload;\r\n },\r\n setVideoElementSizeInfo: (state, action: PayloadAction<IVideoElementSizeInfo>) => {\r\n state.videoElementSizeInfo = action.payload;\r\n },\r\n setIsFetchDetails: (state, action: PayloadAction<boolean>) => {\r\n state.isFetchDetails = action.payload;\r\n },\r\n setIsValidAddress: (state, action: PayloadAction<boolean>) => {\r\n state.isValidAddress = action.payload;\r\n },\r\n setVideoTimelines: (state, action: PayloadAction<number[]>) => {\r\n state.videoTimelines = action.payload;\r\n },\r\n setIsReady: (state, action: PayloadAction<boolean>) => {\r\n state.isReady = action.payload;\r\n },\r\n setSubtitles: (state, action: PayloadAction<TextTrack[]>) => {\r\n state.subtitles = action.payload;\r\n },\r\n setSelectedSubtitle: (state, action: PayloadAction<any>) => {\r\n state.selectedSubtitle = action.payload;\r\n },\r\n setSubtitleText: (state, action: PayloadAction<string>) => {\r\n state.subtitleText = action.payload;\r\n },\r\n setClearVideoDataSlice: (state) => {\r\n return (state = VideoDataSliceState);\r\n }\r\n }\r\n});\r\n\r\nexport const {\r\n setInfo,\r\n setPlayerParams,\r\n setVideoElementSizeInfo,\r\n setMarkers,\r\n setIsFetchDetails,\r\n setIsValidAddress,\r\n setVideoTimelines,\r\n setIsReady,\r\n setSubtitles,\r\n setSubtitleText,\r\n setSelectedSubtitle,\r\n setClearVideoDataSlice\r\n} = videoDataSlice.actions;\r\nexport default videoDataSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { IUserSettings, IUserSlice, IVideoSettings } from \"../../interfaces/interfaces\";\r\n\r\nconst UserSliceState: IUserSlice = {\r\n settings: {\r\n quality: -1,\r\n brightness: 100,\r\n volume: 100,\r\n speed: 1,\r\n },\r\n videoSettings: {\r\n time: 0\r\n },\r\n};\r\n\r\nexport const userSlice = createSlice({\r\n name: \"user\",\r\n initialState: UserSliceState,\r\n reducers: {\r\n setUserSettings: (state, action: PayloadAction<IUserSettings>) => {\r\n state.settings = action.payload;\r\n },\r\n setVideoSettings: (state, action: PayloadAction<IVideoSettings>) => {\r\n state.videoSettings = action.payload;\r\n },\r\n setClearUserSlice: () => {\r\n return UserSliceState;\r\n }\r\n }\r\n});\r\n\r\nexport const {\r\n setUserSettings,\r\n setVideoSettings,\r\n setClearUserSlice\r\n} = userSlice.actions;\r\n\r\nexport default userSlice.reducer;\r\n","export const enum zIndex {\r\n vttDisable = -2,\r\n backwardForwardInActive = 1,\r\n videoPlayer,\r\n mainIcons,\r\n footer,\r\n vtt,\r\n markers,\r\n videoPlayerInFullScreen = 1000000,\r\n popoverBlurBackground,\r\n backwardForwardActive,\r\n miniPlayer,\r\n popoverContent,\r\n maxPopover,\r\n videoPlayerInPictureInPicture,\r\n}\r\n\r\nexport const enum SettingSections {\r\n main = \"main\",\r\n qualityLevels = \"qualityLevels\",\r\n speed = \"speed\",\r\n subtitles = \"subtitles\"\r\n}\r\n\r\nexport const enum PlayerTypes {\r\n static = \"static\",\r\n vod = \"vod\"\r\n}\r\n\r\nexport const enum ConditionName {\r\n showHeader = \"showHeader\",\r\n showMain = \"showMain\",\r\n showFooter = \"showFooter\",\r\n showTouchVolumeBrightness = \"showTouchVolumeBrightness\",\r\n showBackwardForward = \"showBackwardForward\",\r\n showTitle = \"showTitle\",\r\n showSettingPopover = \"showSettingPopover\",\r\n showSpeedPopover = \"showSpeedPopover\",\r\n showQualityLevelsPopover = \"showQualityLevelsPopover\",\r\n showSettingIcon = \"showSettingIcon\",\r\n showBanner = \"showBanner\",\r\n showProgressbar = \"showProgressbar\",\r\n showPictureInPicture = \"showPictureInPicture\",\r\n showSubtitle = \"showSubtitle\",\r\n showMarkerListPopover = \"showMarkerListPopover\",\r\n hidePopovers = \"hidePopovers\",\r\n isLandscape = \"isLandscape\",\r\n isTouchScreen = \"isTouchScreen\",\r\n isTouchScreenPortrait = \"isTouchScreenPortrait\",\r\n isTouchScreenLandscape = \"isTouchScreenLandscape\",\r\n isActiveElements = \"isActiveElements\",\r\n isPlay = \"isPlay\",\r\n isPlayMiniPlayer = \"isPlayMiniPlayer\",\r\n isFirstPlay = \"isFirstPlay\",\r\n isLock = \"isLock\",\r\n isIOS = \"isIOS\",\r\n isLoading = \"isLoading\",\r\n isStaticFormat = \"isStaticFormat\",\r\n isEnded = \"isEnded\",\r\n isAutoPlay = \"isAutoPlay\",\r\n isFullScreen = \"isFullScreen\",\r\n isValidAddress = \"isValidAddress\",\r\n isFetchDetails = \"isFetchDetails\",\r\n isAutoQuality = \"isAutoQuality\",\r\n isPressKeySpace = \"isPressKeySpace\",\r\n isPressKeyI = \"isPressKeyI\",\r\n isPressKeyF = \"isPressKeyF\",\r\n isPressKeyS = \"isPressKeyS\",\r\n isPressKeyArrowRight = \"isPressKeyArrowRight\",\r\n isPressKeyArrowLeft = \"isPressKeyArrowLeft\",\r\n isPressKeyM = \"isPressKeyM\",\r\n isPressKeyC = \"isPressKeyC\",\r\n isSendTimelineLog = \"isSendTimelineLog\",\r\n isReady = \"isReady\",\r\n isSelectedSubtitle = \"isSelectedSubtitle\",\r\n isMiniPlayerAndMainPlayerSame = \"isMiniPlayerAndMainPlayerSame\",\r\n hasTitle = \"hasTitle\",\r\n hasBanner = \"hasBanner\",\r\n hasStreamLink = \"hasStreamLink\",\r\n hasManualQuality = \"hasManualQuality\",\r\n hasSound = \"hasSound\",\r\n hasAutoPlay = \"hasAutoPlay\",\r\n hasFullScreenParams = \"hasFullScreenParams\",\r\n hasOnFinishedParams = \"hasOnFinishedParams\",\r\n hasSubtitles = \"hasSubtitles\",\r\n hasSubtitlesInDetails = \"hasSubtitlesInDetails\",\r\n hasActiveCue = \"hasActiveCue\",\r\n hasOnPlayParams = \"hasOnPlayParams\",\r\n hasOnPauseParams = \"hasOnPauseParams\",\r\n hasPlayStatusParams = \"hasPlayStatusParams\",\r\n hasMiniPlayer = \"hasMiniPlayer\",\r\n hasCurrentTimeParams = \"hasCurrentTimeParams\",\r\n hasMarkers = \"hasMarkers\",\r\n hasSubtitlesInParams = \"hasSubtitlesInParams\",\r\n getDetails = \"getDetails\",\r\n getMarkers = \"getMarkers\",\r\n canPlayVideo = \"canPlayVideo\",\r\n setSubtitleFirstPlay = \"setSubtitleFirstPlay\"\r\n}","import controllerReducer from \"./slices/controllerSlice\";\r\nimport videoDataReducer from \"./slices/videoDataSlice\";\r\nimport popoversReducer from \"./slices/popoversSlice\";\r\nimport userReducer from \"./slices/userSlice\";\r\nimport miniPlayerReducer from \"./slices/miniPlayerSlice\";\r\n\r\nimport { configureStore } from \"@reduxjs/toolkit\";\r\n\r\nconst store = configureStore({\r\n reducer: {\r\n controller: controllerReducer,\r\n videoData: videoDataReducer,\r\n popovers: popoversReducer,\r\n user: userReducer,\r\n miniPlayer: miniPlayerReducer,\r\n },\r\n devTools: true,\r\n middleware: (getDefaultMiddleware) => getDefaultMiddleware({ serializableCheck: false })\r\n});\r\n\r\nexport type RootState = ReturnType<typeof store.getState>;\r\nexport type AppDispatch = typeof store.dispatch;\r\nexport default store;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { IPopoversSlice } from \"../../interfaces/interfaces\";\r\n\r\nconst PopOversSliceState: IPopoversSlice = {\r\n settingPopover: false,\r\n speedPopover: false,\r\n qualityLevelsPopover: false,\r\n markersListPopover: false\r\n};\r\nexport const popoversSlice = createSlice({\r\n name: \"popover\",\r\n initialState: PopOversSliceState,\r\n reducers: {\r\n setSettingPopover: (state, action: PayloadAction<boolean>) => {\r\n state.settingPopover = action.payload;\r\n },\r\n setSpeedPopover: (state, action: PayloadAction<boolean>) => {\r\n state.speedPopover = action.payload;\r\n },\r\n setQualityLevelsPopover: (state, action: PayloadAction<boolean>) => {\r\n state.qualityLevelsPopover = action.payload;\r\n },\r\n setMarkersListPopover: (state, action: PayloadAction<boolean>) => {\r\n state.markersListPopover = action.payload;\r\n },\r\n setClearPopoversSlice: (state) => {\r\n state.settingPopover = false;\r\n state.speedPopover = false;\r\n state.qualityLevelsPopover = false;\r\n state.markersListPopover = false;\r\n }\r\n }\r\n});\r\n\r\nexport const {\r\n setSettingPopover,\r\n setSpeedPopover,\r\n setQualityLevelsPopover,\r\n setMarkersListPopover,\r\n setClearPopoversSlice\r\n} = popoversSlice.actions;\r\n\r\nexport default popoversSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport {\r\n IDetails,\r\n IMiniPlayerParams,\r\n IMiniPlayerSlice,\r\n} from \"../../interfaces/interfaces\";\r\nimport { PlayerTypes } from \"../../interfaces/enums\";\r\n\r\nconst MiniPlayerSliceState: IMiniPlayerSlice = {\r\n params: {\r\n id: \"0\",\r\n type: \"\",\r\n currentTime: 0,\r\n autoPlay: false,\r\n onClose: () => {},\r\n },\r\n details: {},\r\n play: false,\r\n};\r\n\r\nexport const userSlice = createSlice({\r\n name: \"user\",\r\n initialState: MiniPlayerSliceState,\r\n reducers: {\r\n setMiniPlayerInfo: (state, action: PayloadAction<IMiniPlayerParams>) => {\r\n state.params = {\r\n ...action.payload,\r\n id:\r\n action.payload.type === PlayerTypes.static\r\n ? window.atob(action.payload.id)\r\n : action.payload.id,\r\n banner: action.payload.banner ? action.payload.banner : undefined,\r\n };\r\n },\r\n setDetailsMiniPlayer: (state, action: PayloadAction<IDetails>) => {\r\n state.details = action.payload;\r\n },\r\n setPlayMiniPlayer: (state, action: PayloadAction<boolean>) => {\r\n state.play = action.payload;\r\n },\r\n setClearMiniPlayerSlice: (state) => {\r\n return (state = MiniPlayerSliceState);\r\n },\r\n },\r\n});\r\n\r\nexport const {\r\n setMiniPlayerInfo,\r\n setDetailsMiniPlayer,\r\n setPlayMiniPlayer,\r\n setClearMiniPlayerSlice,\r\n} = userSlice.actions;\r\n\r\nexport default userSlice.reducer;\r\n","import { conditions } from \"./conditions/conditions\";\r\nimport { ConditionName } from \"./interfaces/enums\";\r\nimport store from \"./redux/store\";\r\nimport { setClearVideoDataSlice } from \"./redux/slices/videoDataSlice\";\r\nimport { setClearControllerSlice } from \"./redux/slices/controllerSlice\";\r\nimport { setClearUserSlice } from \"./redux/slices/userSlice\";\r\nimport { setClearPopoversSlice } from \"./redux/slices/popoversSlice\";\r\n\r\nexport const wait = (s: number) => new Promise((resolve) => setTimeout(resolve, s * 1000));\r\n\r\nexport const getUUID = () => {\r\n let uuid = localStorage.getItem(\"hamrahiUUID\");\r\n if (!uuid) {\r\n uuid = uuidGenerator();\r\n localStorage.setItem(\"hamrahiUUID\", uuid);\r\n }\r\n return uuid.toString();\r\n};\r\n\r\nexport const uuidGenerator = () => {\r\n let uuid = \"xxxxxxxx-xxxx-Mxxx-Nxxx-x\".replace(/[xMN]/g, (char) => {\r\n let val: number;\r\n if (char === \"M\") val = Math.floor(1 + Math.random() * 5);\r\n else if (char === \"N\") val = Math.floor(8 + Math.random() * 4);\r\n else val = Math.floor(Math.random() * 16);\r\n return val.toString(16);\r\n });\r\n uuid += Date.now().toString(16);\r\n return uuid;\r\n};\r\n\r\nexport const isTouchScreen = () =>\r\n \"ontouchstart\" in window || ((window as any)[\"DocumentTouch\"] && document instanceof (window as any)[\"DocumentTouch\"]);\r\nexport const isTouchScreenLandscape = () => {\r\n const { isFullScreen } = store.getState().controller;\r\n return isTouchScreen() && isFullScreen;\r\n};\r\nexport const isTouchScreenPortrait = () => {\r\n const { isFullScreen } = store.getState().controller;\r\n return isTouchScreen() && !isFullScreen;\r\n};\r\n\r\nexport const isIOS = () => {\r\n return (\r\n [\"iPad Simulator\", \"iPhone Simulator\", \"iPod Simulator\", \"iPad\", \"iPhone\", \"iPod\"].includes(navigator.platform) ||\r\n // iPad on iOS 13 detection\r\n (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n );\r\n};\r\n\r\nexport const addZeroBefore = (n: number) => {\r\n return (n < 10 ? \"0\" : \"\") + n;\r\n};\r\n\r\nexport const secondsToHMS = (seconds: number) => {\r\n const h = Math.floor(seconds / 3600);\r\n const m = Math.floor((seconds % 3600) / 60);\r\n const s = Math.floor((seconds % 3600) % 60);\r\n return h < 1 ? `${addZeroBefore(m)}:${addZeroBefore(s)}` : `${addZeroBefore(h)}:${addZeroBefore(m)}:${addZeroBefore(s)}`;\r\n};\r\n\r\nexport const addUuidToSrc = (src: string) => {\r\n const urlObject = new URL(src);\r\n let urlSrc = src;\r\n if (urlObject.search.length) return (urlSrc += `&uuid=${getUUID()}`);\r\n else return (urlSrc += `?uuid=${getUUID()}`);\r\n};\r\n\r\nexport const checkParentTarget = (event: any, target: string) => {\r\n try {\r\n return [\r\n event.target.id,\r\n event.target.parentNode.id,\r\n event.target.parentNode.parentNode.id,\r\n event.target.parentNode.parentNode.parentNode.id,\r\n event.target.parentNode.parentNode.parentNode.parentNode.id\r\n ].includes(target);\r\n } catch (error) {\r\n return false;\r\n }\r\n};\r\n\r\nexport const splitQueryParamsFromStreamLink = (playerType: \"mainPlayer\" | \"miniPlayer\") => {\r\n let streamLink = \"\";\r\n if(playerType === \"mainPlayer\") streamLink = store.getState().videoData.details.stream_link!;\r\n else streamLink = store.getState().miniPlayer.details.stream_link!;\r\n let queryParams: string = \"\";\r\n if(streamLink) queryParams = streamLink.split(\"m3u8\")[1];\r\n if (queryParams) queryParams = `${queryParams}&uuid=${getUUID()}`;\r\n else queryParams = `?uuid=${getUUID()}`;\r\n return queryParams;\r\n};\r\n\r\nexport const handleRippleCircle = (event: any, id: string) => {\r\n const element: any = document.getElementById(id);\r\n const circle = document.createElement(\"span\");\r\n circle.style.width = circle.style.height = `50px`;\r\n circle.style.left = `${event.touches[0].clientX - element.offsetLeft - 25}px`;\r\n circle.style.top = `${event.touches[0].clientY - element.offsetTop - 25}px`;\r\n circle.classList.add(\"pl-ripple\");\r\n const ripple = element.getElementsByClassName(\"pl-ripple\")[0];\r\n if (ripple) ripple.remove();\r\n element.appendChild(circle);\r\n};\r\n\r\nexport const handleRipple = (event: any, id: string, size: number = 50) => {\r\n const clientX = event.clientX !== undefined ? event.clientX : event.touches[0].clientX;\r\n const clientY = event.clientY !== undefined ? event.clientY : event.touches[0].clientY;\r\n const element: any = document.getElementById(id);\r\n const circle = document.createElement(\"span\");\r\n circle.style.width = circle.style.height = `${size}px`;\r\n circle.style.left = `${clientX - size / 2}px`;\r\n circle.style.top = `${clientY - element.getBoundingClientRect().top - size / 2}px`;\r\n circle.classList.add(\"pl-ripple\");\r\n const ripple = element.getElementsByClassName(\"pl-ripple\")[0];\r\n if (ripple) ripple.remove();\r\n element.appendChild(circle);\r\n};\r\n\r\nexport const responseValidator = (status: number): boolean => status >= 200 && status < 300;\r\n\r\nexport const clearRedux = () => {\r\n const dispatch = store.dispatch;\r\n dispatch(setClearVideoDataSlice());\r\n dispatch(setClearControllerSlice());\r\n dispatch(setClearUserSlice());\r\n dispatch(setClearPopoversSlice());\r\n};\r\n\r\nexport const weighted_random = (options: any) => {\r\n let i;\r\n\r\n let weights: any[] = [];\r\n\r\n for (i = 0; i < options.length; i++) weights[i] = options[i].weight + (weights[i - 1] || 0);\r\n\r\n let random = Math.random() * weights[weights.length - 1];\r\n\r\n for (i = 0; i < weights.length; i++) if (weights[i] > random) break;\r\n\r\n return options[i].domain;\r\n};\r\n\r\n// ***** Player Core *****\r\n\r\nexport const handlePageLoadTime = (loadingDurationRef: any) => {\r\n let pageLoadTime = 0;\r\n if (performance && performance.getEntriesByType(\"navigation\")) pageLoadTime = performance.getEntriesByType(\"navigation\")[0].duration;\r\n loadingDurationRef.current = pageLoadTime;\r\n};\r\n\r\nexport const highestResolutionSupported = (resolutions: string[], width: number, height: number) => {\r\n const w = width * window.devicePixelRatio;\r\n const h = height * window.devicePixelRatio;\r\n let filteredResolutions: string[] = [];\r\n if (conditions(ConditionName.isTouchScreenPortrait))\r\n filteredResolutions = resolutions.filter((resolution: string) => Number(resolution.split(\"x\")[0].trim()) <= w);\r\n else\r\n filteredResolutions = resolutions.filter(\r\n (resolution: string) => Number(resolution.split(\"x\")[0].trim()) <= h || Number(resolution.split(\"x\")[1].trim()) <= w\r\n );\r\n return filteredResolutions.indexOf(filteredResolutions[filteredResolutions.length - 1]);\r\n};\r\n\r\nexport const flattenObject = (input: any, keyName?: string) => {\r\n let result: any = {};\r\n for (const key in input) {\r\n const newKey = keyName ? `${keyName}_${key}` : key;\r\n if (typeof input[key] === \"object\" && !Array.isArray(input[key])) result = { ...result, ...flattenObject(input[key], newKey) };\r\n else result[newKey] = input[key];\r\n }\r\n return result;\r\n};\r\n\r\nexport const sortLanguages = (array: any) => {\r\n const priority: any = { fa: 1, en: 2 };\r\n\r\n return array.slice().sort((a: any, b: any) => {\r\n const prioA = priority[a.lang] || 999;\r\n const prioB = priority[b.lang] || 999;\r\n\r\n return prioA - prioB;\r\n });\r\n};\r\n\r\nexport const getSubtitleLabel = (subtitleLanguage: string) => {\r\n let label;\r\n switch (subtitleLanguage) {\r\n case \"fa\":\r\n label = \"فارسی\";\r\n break;\r\n case \"en\":\r\n label = \"انگلیسی\";\r\n break;\r\n case \"ar\":\r\n label = \"عربی\";\r\n break;\r\n case \"tr\":\r\n label = \"ترکی\";\r\n break;\r\n default:\r\n break;\r\n }\r\n return label;\r\n};\r\n\r\nexport const spliteStringPerLine = (str: string) => str.split(/\\r?\\n|\\r|\\n/g);\r\n\r\nexport const inViewPort = (element: any) => {\r\n if (element) {\r\n const positionLeft = element.offsetLeft - element.offsetWidth / 2;\r\n const positionRight = window.innerWidth - (element.offsetLeft + element.offsetWidth);\r\n if (positionLeft >= 0 && positionRight >= 0) return \"inViewport\";\r\n else if (positionLeft < 0) return \"OutViewPortFromLeft\";\r\n else if (positionRight < 0) return \"OutViewPortFromRight\";\r\n }\r\n};\r\n\r\nexport const compare = (a: any, b: any) => {\r\n if (a.time < b.time) return -1;\r\n if (a.time > b.time) return 1;\r\n return 0;\r\n};\r\n\r\nexport const cleanVTT = (vttText:string) => {\r\n // Remove all timestamps and alignment/position data\r\n vttText = vttText.replace(/\\d{2}:\\d{2}:\\d{2}\\.\\d{3} --> \\d{2}:\\d{2}:\\d{2}\\.\\d{3}.*\\n/g, '');\r\n \r\n // Remove all HTML tags like <c> and </c>\r\n vttText = vttText.replace(/<[^>]+>/g, '');\r\n \r\n // Remove extra blank lines\r\n vttText = vttText.replace(/\\n+/g, '\\n');\r\n \r\n // Trim leading and trailing whitespace\r\n vttText = vttText.trim();\r\n\r\n return vttText;\r\n}","import {\r\n isIOS,\r\n isTouchScreen,\r\n isTouchScreenLandscape,\r\n isTouchScreenPortrait,\r\n} from \"../helpers\";\r\nimport { ConditionName, PlayerTypes } from \"../interfaces/enums\";\r\nimport store from \"../redux/store\";\r\n\r\nexport const conditions = (type: string) => {\r\n const {\r\n params,\r\n details,\r\n isValidAddress,\r\n isFetchDetails,\r\n isReady,\r\n subtitles,\r\n selectedSubtitle,\r\n markers\r\n } = store.getState().videoData;\r\n const {\r\n firstPlay,\r\n lock,\r\n canPlayVideo,\r\n manualQuality,\r\n activeElements,\r\n isLoading,\r\n isEnded,\r\n isAutoPlay,\r\n play,\r\n isFullScreen,\r\n } = store.getState().controller;\r\n const { settingPopover, speedPopover, qualityLevelsPopover, markersListPopover } =\r\n store.getState().popovers;\r\n const { settings } = store.getState().user;\r\n const miniPlayer = store.getState().miniPlayer;\r\n\r\n switch (type) {\r\n case ConditionName.showHeader:\r\n return !firstPlay && canPlayVideo;\r\n case ConditionName.showMain:\r\n return !lock || firstPlay;\r\n case ConditionName.showFooter:\r\n return !firstPlay && canPlayVideo;\r\n case ConditionName.showTouchVolumeBrightness:\r\n return !firstPlay && isTouchScreenLandscape() && !lock && !isEnded;\r\n case ConditionName.showBackwardForward:\r\n return !firstPlay && isTouchScreen() && !lock;\r\n case ConditionName.showTitle:\r\n return params.type !== \"static\" && isFullScreen && !lock;\r\n case ConditionName.showSettingPopover:\r\n return settingPopover;\r\n case ConditionName.showSpeedPopover:\r\n return speedPopover;\r\n case ConditionName.showQualityLevelsPopover:\r\n return qualityLevelsPopover;\r\n case ConditionName.showSettingIcon:\r\n return params.type !== \"static\" && !isIOS() && !isFullScreen;\r\n case ConditionName.showBanner:\r\n return firstPlay && (details.banner || params.banner);\r\n case ConditionName.showProgressbar:\r\n return !isIOS();\r\n case ConditionName.showPictureInPicture:\r\n return !isIOS() && !isTouchScreen();\r\n case ConditionName.showSubtitle:\r\n return !!selectedSubtitle;\r\n case ConditionName.showMarkerListPopover:\r\n return markersListPopover;\r\n case ConditionName.hidePopovers:\r\n return !settingPopover;\r\n case ConditionName.isLandscape:\r\n return window.innerHeight <= window.innerWidth;\r\n case ConditionName.isTouchScreen:\r\n return isTouchScreen();\r\n case ConditionName.isTouchScreenPortrait:\r\n return isTouchScreenPortrait();\r\n case ConditionName.isTouchScreenLandscape:\r\n return isTouchScreenLandscape();\r\n case ConditionName.isActiveElements:\r\n return activeElements;\r\n case ConditionName.isPlay:\r\n return play;\r\n case ConditionName.isPlayMiniPlayer:\r\n return miniPlayer.play;\r\n case ConditionName.isFirstPlay:\r\n return firstPlay;\r\n case ConditionName.isLock:\r\n return lock;\r\n case ConditionName.isIOS:\r\n return isIOS();\r\n case ConditionName.isLoading:\r\n return isLoading;\r\n case ConditionName.isStaticFormat:\r\n return params.type === PlayerTypes.static;\r\n case ConditionName.isEnded:\r\n return isEnded;\r\n case ConditionName.isAutoPlay:\r\n return isAutoPlay;\r\n case ConditionName.isFullScreen:\r\n return isFullScreen;\r\n case ConditionName.isValidAddress:\r\n return isValidAddress;\r\n case ConditionName.isFetchDetails:\r\n return isFetchDetails;\r\n case ConditionName.isAutoQuality:\r\n return settings.quality === -1;\r\n case ConditionName.isPressKeySpace:\r\n return !lock;\r\n case ConditionName.isPressKeyI:\r\n return !lock && !firstPlay;\r\n case ConditionName.isPressKeyF:\r\n return !lock && !firstPlay;\r\n case ConditionName.isPressKeyS:\r\n return !lock && !firstPlay;\r\n case ConditionName.isPressKeyArrowRight:\r\n return !firstPlay && !lock;\r\n case ConditionName.isPressKeyArrowLeft:\r\n return !firstPlay && !lock;\r\n case ConditionName.isPressKeyM:\r\n return !firstPlay && !lock;\r\n case ConditionName.isPressKeyC:\r\n return !lock && !firstPlay && !!subtitles && subtitles.length > 0;\r\n case ConditionName.isSendTimelineLog:\r\n return params.type !== \"static\";\r\n case ConditionName.isReady:\r\n return isReady;\r\n case ConditionName.isSelectedSubtitle:\r\n return !!subtitles && subtitles.length > 0 && selectedSubtitle;\r\n case ConditionName.isMiniPlayerAndMainPlayerSame:\r\n return params.id === miniPlayer.params.id;\r\n case ConditionName.hasTitle:\r\n return details.title;\r\n case ConditionName.hasBanner:\r\n return details.banner;\r\n case ConditionName.hasStreamLink:\r\n return details.stream_link;\r\n case ConditionName.hasManualQuality:\r\n return manualQuality !== undefined && manualQuality !== null;\r\n case ConditionName.hasSound:\r\n return !!settings.volume;\r\n case ConditionName.hasAutoPlay:\r\n return params.autoplay === \"true\";\r\n case ConditionName.hasFullScreenParams:\r\n return params.fullscreen === \"true\";\r\n case ConditionName.hasOnFinishedParams:\r\n return !!params.onFinished;\r\n case ConditionName.hasSubtitles:\r\n return !!subtitles && subtitles.length > 0;\r\n case ConditionName.hasSubtitlesInDetails:\r\n return details.subtitles && details.subtitles.length > 0;\r\n case ConditionName.hasActiveCue:\r\n return (\r\n selectedSubtitle &&\r\n selectedSubtitle.activeCues &&\r\n selectedSubtitle.activeCues.length > 0\r\n );\r\n case ConditionName.hasOnPlayParams:\r\n return !!params.onPlay;\r\n case ConditionName.hasOnPauseParams:\r\n return !!params.onPause;\r\n case ConditionName.hasPlayStatusParams:\r\n return params.playStatus !== undefined;\r\n case ConditionName.hasMiniPlayer:\r\n return miniPlayer.params.id;\r\n case ConditionName.hasCurrentTimeParams:\r\n return params.currentTime !== undefined;\r\n case ConditionName.hasMarkers:\r\n return markers.length !== 0;\r\n case ConditionName.hasSubtitlesInParams:\r\n return params.subtitles && params.subtitles.length;\r\n case ConditionName.getDetails:\r\n return !!params.type && params.id;\r\n case ConditionName.getMarkers:\r\n return String(params.type) === \"vod\" && params.id && isFetchDetails;\r\n case ConditionName.canPlayVideo:\r\n return canPlayVideo;\r\n case ConditionName.setSubtitleFirstPlay:\r\n return (\r\n details.subtitles &&\r\n details.subtitles.length > 0 &&\r\n !firstPlay &&\r\n params.type !== \"static\"\r\n );\r\n default:\r\n break;\r\n }\r\n};\r\n","import { AppDispatch, RootState } from \"./store\";\r\nimport { TypedUseSelectorHook, useDispatch, useSelector } from \"react-redux\";\r\n\r\nexport const useAppDispatch: any = () => useDispatch<AppDispatch>();\r\nexport const useAppSelector: TypedUseSelectorHook<RootState> = useSelector;\r\n","import store from \"./redux/store\";\r\n\r\nexport const mainPlayerVideoTag = () => document.getElementById(\"player-tag\") as HTMLVideoElement;\r\nexport const miniPlayerVideoTag = () => document.getElementById(\"mini-player-video-tag\") as HTMLVideoElement;\r\nexport const progressBar = () => document.getElementById(\"time-progress-bar\") as any;\r\nexport const progressBarWidth = () => store.getState().videoData.videoElementSizeInfo.width - 2;","import store from \"../redux/store\";\r\nimport { apiCaller } from \"../services/apiCaller\";\r\nimport { API } from \"../services/services\";\r\nimport { getUUID } from \"../helpers\";\r\n\r\nexport const sendFluentLog = (data: any) => {\r\n const { details, params } = store.getState().videoData;\r\n let _data = {\r\n ...data,\r\n timestamp: Date.now(),\r\n clientUUID: getUUID(),\r\n uuid: getUUID(),\r\n link: window.location.href,\r\n user_id: details.user_id,\r\n live_id: null,\r\n format: undefined,\r\n content_type: details.content_type,\r\n content_id: details.content_id,\r\n daaniHashCode: params.daaniHashCode\r\n };\r\n apiCaller({ url: API().logs, method: \"post\", data: _data });\r\n};\r\n","import axios from \"axios\";\r\nimport { IApiCaller, IAxiosConfig, IRetryPolicy } from \"../interfaces/interfaces\";\r\nimport store from \"../redux/store\";\r\nimport { wait } from \"../helpers\";\r\nimport { errorLogProvider } from \"../errorBoundary/errorBoundaryFunctions\";\r\n\r\nexport const apiCaller: any = async ({\r\n url,\r\n method = \"GET\",\r\n data,\r\n headers,\r\n retryCount = 1,\r\n maxRetryCount = 0,\r\n errorMessage,\r\n retryPolicy,\r\n errorCallback,\r\n timeoutCount\r\n}: IApiCaller) => {\r\n let axiosConfig: IAxiosConfig = {\r\n url: url,\r\n method: method,\r\n headers: {\r\n ...headers,\r\n \"Content-Type\": \"application/json\"\r\n },\r\n timeout: timeoutCount ? timeoutCount * 1000 : undefined\r\n };\r\n if (data) {\r\n if (method === \"GET\")\r\n axiosConfig = {\r\n ...axiosConfig,\r\n params: {\r\n uuid: store.getState().videoData.params.uuid,\r\n provider: store.getState().videoData.params.provider === \"unknown\" ? undefined : store.getState().videoData.params.provider,\r\n ...data\r\n }\r\n };\r\n else\r\n axiosConfig = {\r\n ...axiosConfig,\r\n data: {\r\n uuid: store.getState().videoData.params.uuid,\r\n provider: store.getState().videoData.params.provider === \"unknown\" ? undefined : store.getState().videoData.params.provider,\r\n ...data\r\n }\r\n };\r\n } else {\r\n if (method === \"GET\")\r\n axiosConfig = {\r\n ...axiosConfig,\r\n params: {\r\n uuid: store.getState().videoData.params.uuid,\r\n provider: store.getState().videoData.params.provider === \"unknown\" ? undefined : store.getState().videoData.params.provider\r\n }\r\n };\r\n else\r\n axiosConfig = {\r\n ...axiosConfig,\r\n data: {\r\n uuid: store.getState().videoData.params.uuid,\r\n provider: store.getState().videoData.params.provider === \"unknown\" ? undefined : store.getState().videoData.params.provider\r\n }\r\n };\r\n }\r\n try {\r\n return await axios(axiosConfig);\r\n } catch (error: any) {\r\n errorLogProvider({ type: \"API-ERROR\", message: error.message ? error.message : \"\", statusCode:error.response && error.response.status ? error.response.status : undefined, url });\r\n if (error && error.response && error.response.status === 401) {\r\n // \r\n } else {\r\n if (errorCallback) errorCallback(error.response.status, error.response.message);\r\n let newRetryDelay = 0,\r\n newMaxRetryCount = 0;\r\n if (retryPolicy !== undefined) {\r\n for (let i = 0; i < retryPolicy.length; i++) {\r\n if (\r\n (((retryPolicy[i].codeAbove && error.response.status >= retryPolicy[i].codeAbove!) ||\r\n (retryPolicy[i].codeBelow && error.response.status <= retryPolicy[i].codeBelow!)) &&\r\n (retryPolicy[i].excludeCodes.length === 0 || !retryPolicy[i].excludeCodes.includes(error.response.status))) ||\r\n retryPolicy[i].includeCodes.length === 0 ||\r\n retryPolicy[i].includeCodes.includes(error.response.status)\r\n ) {\r\n newMaxRetryCount = retryPolicy[i].count;\r\n newRetryDelay = retryPolicy[i].delay;\r\n break;\r\n }\r\n }\r\n } else {\r\n newMaxRetryCount = maxRetryCount;\r\n newRetryDelay = retryCount + 1;\r\n }\r\n if (retryCount < newMaxRetryCount) {\r\n await wait(newRetryDelay);\r\n return apiCaller({\r\n url,\r\n method,\r\n data,\r\n headers,\r\n retryCount: retryCount + 1,\r\n newMaxRetryCount,\r\n errorMessage,\r\n retryPolicy,\r\n errorCallback\r\n });\r\n } else if (error.response)\r\n return {\r\n data: error.response.data ? error.response.data : { detail: \"عملیات با خطا مواجه شده است.\" },\r\n status: error.response.status\r\n };\r\n }\r\n }\r\n};\r\n\r\nexport function getAll(path: string, retryPolicy?: IRetryPolicy[], params?: any, retryCount: number = 1, maxRetryCount: number = 0) {\r\n return new Promise(async (resolve, reject) => {\r\n // Added reject to the Promise executor function.\r\n try {\r\n const url = new URL(path);\r\n const limit = 1000;\r\n if (params) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key]) {\r\n url.searchParams.set(key, params[key]);\r\n }\r\n });\r\n }\r\n url.searchParams.set(\"limit\", limit.toString());\r\n const response = await fetch(url.href);\r\n if (!response.ok) {\r\n // Check if the response was not ok (status not in the range 200-299).\r\n throw response;\r\n }\r\n const data = await response.json();\r\n const count = data.count;\r\n const requestCount = Math.ceil(count / limit) - 1;\r\n const promises: Array<Promise<any>> = [];\r\n for (let i = 0; i < requestCount; i++) {\r\n const offset = i * limit; // Fixed the offset calculation.\r\n url.searchParams.set(\"offset\", offset.toString());\r\n const promise: Promise<any> = fetch(url.href).then((res) => {\r\n if (res.ok) {\r\n return res.json();\r\n }\r\n return res.json().then((err) => Promise.reject(err));\r\n });\r\n promises.push(promise);\r\n }\r\n Promise.all(promises)\r\n .then((res) => {\r\n const results = res.flatMap((item) => item.results);\r\n resolve([...data.results, ...results]);\r\n })\r\n .catch(reject); // Added catch to handle any errors in the Promise.all.\r\n } catch (error: any) {\r\n let newRetryDelay = 0,\r\n newMaxRetryCount = 0;\r\n if (retryPolicy !== undefined) {\r\n for (let i = 0; i < retryPolicy.length; i++) {\r\n if (\r\n ((retryPolicy[i].codeAbove && error.status >= retryPolicy[i].codeAbove!) ||\r\n (retryPolicy[i].codeBelow && error.status <= retryPolicy[i].codeBelow!)) &&\r\n (retryPolicy[i].excludeCodes.length === 0 || !retryPolicy[i].excludeCodes.includes(error.status)) &&\r\n (retryPolicy[i].includeCodes.length === 0 || retryPolicy[i].includeCodes.includes(error.status))\r\n ) {\r\n newMaxRetryCount = retryPolicy[i].count;\r\n newRetryDelay = retryPolicy[i].delay;\r\n break;\r\n }\r\n }\r\n if (retryCount < newMaxRetryCount) {\r\n await wait(newRetryDelay);\r\n getAll(path, retryPolicy, params, retryCount + 1, newMaxRetryCount);\r\n }\r\n }\r\n }\r\n });\r\n}","import { sendFluentLog } from \"../logs/fluentdLogger\";\r\nimport { ExceptionsLog } from \"../logs/logs\";\r\n\r\nexport const errorLogProvider = (data?: {type:string, message:string, statusCode?:number, url?:string}) => {\r\n if(data) sendFluentLog(ExceptionsLog(data.type, data.message, data.statusCode, data.url));\r\n}\r\n","import { conditions } from \"../conditions/conditions\";\r\nimport { mainPlayerVideoTag } from \"../constants\";\r\nimport { flattenObject, getUUID } from \"../helpers\";\r\nimport { ConditionName } from \"../interfaces/enums\";\r\nimport store from \"../redux/store\";\r\n\r\nexport const speedChangeLog = (selectedSpeed: Number) => {\r\n const { params, details } = store.getState().videoData;\r\n const { settings } = store.getState().user;\r\n return {\r\n category: \"speedChange\",\r\n previousSelectedSpeed: settings.speed,\r\n selectedSpeed: selectedSpeed,\r\n id: Number(params.id),\r\n type: params.type,\r\n src: conditions(ConditionName.hasStreamLink) ? details.stream_link : params.id,\r\n provider: params.provider\r\n };\r\n};\r\n\r\nexport const qualityChangeRequestLog = (selectedQuality: String) => {\r\n const { params, details } = store.getState().videoData;\r\n const { qualityLevels, manualQuality, autoQuality } = store.getState().controller;\r\n return {\r\n category: \"qualityChangeRequest\",\r\n currentPlayingQuality: `${qualityLevels[conditions(ConditionName.isAutoQuality) ? autoQuality ?? manualQuality! : manualQuality!]}P`,\r\n previousSelectedQuality: conditions(ConditionName.isAutoQuality) ? \"auto\" : `${qualityLevels[manualQuality!]}P`,\r\n selectedQuality: selectedQuality,\r\n id: Number(params.id),\r\n type: params.type,\r\n src: conditions(ConditionName.hasStreamLink) ? details.stream_link : params.id,\r\n provider: params.provider\r\n };\r\n};\r\n\r\nexport const catchUpLoadingLog = (duration: number) => {\r\n const { params, details } = store.getState().videoData;\r\n const { qualityLevels, autoQuality } = store.getState().controller;\r\n const { settings } = store.getState().user;\r\n\r\n return {\r\n category: \"catchUpLoading\",\r\n previousVideoTime: Number(sessionStorage.getItem(\"previousVideoTime\")),\r\n currentVideoTime: mainPlayerVideoTag().currentTime,\r\n duration: duration,\r\n quality: `${conditions(ConditionName.isAutoQuality) ? qualityLevels[autoQuality!] : qualityLevels[settings.quality]}P`,\r\n isAutoQuality: conditions(ConditionName.isAutoQuality),\r\n id: Number(params.id),\r\n type: params.type,\r\n src: conditions(ConditionName.hasStreamLink) ? details.stream_link : params.id,\r\n provider: params.provider\r\n };\r\n};\r\n\r\nexport const backwardForwardLog = (type: string) => {\r\n const { params, details } = store.getState().videoData;\r\n return {\r\n category: type === \"backward\" ? \"backward\" : \"forward\",\r\n id: Number(params.id),\r\n type: params.type,\r\n src: details.stream_link ? details.stream_link : params.id,\r\n provider: params.provider\r\n };\r\n};\r\n\r\nexport const fullscreenLog = (category: string) => {\r\n const { params, details } = store.getState().videoData;\r\n return {\r\n category: category,\r\n id: Number(params.id),\r\n type: params.type,\r\n src: conditions(ConditionName.hasStreamLink) ? details.stream_link : params.id\r\n };\r\n};\r\n\r\nexport const brightnessLog = (source: number, target: number) => {\r\n const { params, details } = store.getState().videoData;\r\n return {\r\n category: \"brightnessChange\",\r\n source: source,\r\n target: target,\r\n id: Number(params.id),\r\n type: params.type,\r\n src: conditions(ConditionName.hasStreamLink) ? details.stream_link : params.id\r\n };\r\n};\r\n\r\nexport const volumeLog = (source: number, target: number) => {\r\n const { params, details } = store.getState().videoData;\r\n return {\r\n category: \"volumeChange\",\r\n source: source,\r\n target: target,\r\n id: Number(params.id),\r\n type: params.type,\r\n src: conditions(ConditionName.hasStreamLink) ? details.stream_link : params.id\r\n };\r\n};\r\n\r\nexport const lockLog = (category: string) => {\r\n const { params, details } = store.getState().videoData;\r\n return {\r\n category: category,\r\n id: Number(params.id),\r\n type: params.type,\r\n src: conditions(ConditionName.hasStreamLink) ? details.stream_link : params.id\r\n };\r\n};\r\n\r\nexport const ExceptionsLog = (type: string, message: string, statusCode?:number, url?:string) => {\r\n return {\r\n category: \"player-error\",\r\n type,\r\n message,\r\n statusCode,\r\n url\r\n };\r\n};\r\n\r\nexport const videoTimelineLog = (start: number, end: number) => {\r\n const { params, details } = store.getState().videoData;\r\n const { duration } = store.getState().controller;\r\n return {\r\n category: \"video-timeline\",\r\n video_id: +params.id!,\r\n video_type: params.type,\r\n start: start,\r\n end: end,\r\n watchedDuration: end - start,\r\n video_duration: Math.floor(duration),\r\n clientUUID: getUUID(),\r\n user_id: details.user_id,\r\n content_type: details.content_type,\r\n content_id: details.content_id\r\n };\r\n};\r\n\r\nexport const autoQualityChangeLog = (sourceQuality: String, targetQuality: String, diffQuality: number) => {\r\n const { params, details } = store.getState().videoData;\r\n return {\r\n category: \"autoQualityChange\",\r\n sourceQuality: sourceQuality,\r\n targetQuality: targetQuality,\r\n diffQuality: diffQuality,\r\n id: Number(params.id),\r\n type: params.type,\r\n src: conditions(ConditionName.hasStreamLink) ? details.stream_link : params.id,\r\n provider: params.provider\r\n };\r\n};\r\n\r\nexport const pingpongLog = (startTimer: number, qualityHistory: number[]) => {\r\n const { params, details } = store.getState().videoData;\r\n return {\r\n category: \"pingpong\",\r\n id: Number(params.id),\r\n type: params.type,\r\n src: conditions(ConditionName.hasStreamLink) ? details.stream_link : params.id,\r\n PingPongDuration: Number((new Date().getTime() - startTimer).toFixed(2)),\r\n PingPongSourceQuality: `${qualityHistory[0]}P`, // A A->B && B->A\r\n PingPongTargetQuality: `${qualityHistory[1]}P`, // B,\r\n provider: params.provider\r\n };\r\n};\r\n\r\nexport const pausePlayLog = (isPlay: boolean) => {\r\n const { params, details } = store.getState().videoData;\r\n return {\r\n category: isPlay ? \"playVideo\" : \"pauseVideo\",\r\n id: Number(params.id),\r\n type: params.type,\r\n src: details.stream_link ? details.stream_link : params.id,\r\n provider: params.provider\r\n };\r\n};\r\n\r\nexport const initLog = (loadingTime: number, waitingTime: number, bannerLoadingTime: number, firstChunkPlayingTime: number, timerRef: any) => {\r\n const { params, details } = store.getState().videoData;\r\n const totalTime = Date.now() - timerRef.current + loadingTime + waitingTime;\r\n const memory = (window.performance as any).memory;\r\n const timing = JSON.parse(JSON.stringify((window.performance as any).timing));\r\n return {\r\n category: \"initLog\",\r\n id: Number(params.id),\r\n type: params.type,\r\n origin: new URL(conditions(ConditionName.hasStreamLink) ? details.stream_link : params.id!).origin,\r\n src: conditions(ConditionName.hasStreamLink) ? details.stream_link : params.id,\r\n loading: loadingTime,\r\n bannerLoading: !conditions(ConditionName.hasBanner) || bannerLoadingTime < 0 ? 0 : bannerLoadingTime,\r\n waiting: waitingTime,\r\n firstChunkPlaying: firstChunkPlayingTime < 0 ? 0 : firstChunkPlayingTime,\r\n totalTime: totalTime,\r\n provider: params.provider,\r\n performance: flattenObject({ memory, timing }, \"performance\"),\r\n userAgent: window.navigator.userAgent\r\n };\r\n};\r\n\r\nexport const loadingLog = (waitingDuration: number, qualityLevel: number, timerRef: any, loadingCounterRef: any, videoEntranceTime: number) => {\r\n const { params, details } = store.getState().videoData;\r\n const { settings } = store.getState().user;\r\n const previousLoaderDiff = Date.now() - timerRef.current;\r\n return {\r\n category: \"loading\",\r\n id: Number(params.id),\r\n type: params.type,\r\n src: conditions(ConditionName.hasStreamLink) ? details.stream_link : params.id,\r\n duration: waitingDuration,\r\n quality: `${qualityLevel}P`,\r\n isAutoQuality: conditions(ConditionName.isAutoQuality),\r\n previousLoaderDiff: previousLoaderDiff,\r\n counter: loadingCounterRef.current,\r\n loadingPercentile: Number((waitingDuration / previousLoaderDiff).toFixed(2)),\r\n videoTime: mainPlayerVideoTag().currentTime,\r\n videoEntranceTime: videoEntranceTime,\r\n speed: settings.speed,\r\n provider: params.provider\r\n };\r\n};\r\n\r\nexport const subtitleLog = (language: string) => {\r\n const { params, details } = store.getState().videoData;\r\n return {\r\n category: \"subtitle\",\r\n language: language,\r\n id: Number(params.id),\r\n type: params.type,\r\n src: conditions(ConditionName.hasStreamLink) ? details.stream_link : params.id\r\n };\r\n};\r\n\r\nexport const eventMarkerClickLog = (markerId: Number, markerTime: Number, markerTitle: String, markerDescription: String, markerSticker: String) => {\r\n const { params, details } = store.getState().videoData;\r\n return {\r\n category: \"eventMarkerClick\",\r\n video_id: Number(params.id),\r\n markerId: markerId,\r\n markerTime: markerTime,\r\n markerTitle: markerTitle,\r\n markerDescription: markerDescription,\r\n markerSticker: markerSticker,\r\n type: params.type,\r\n src: conditions(ConditionName.hasStreamLink) ? details.stream_link : params.id,\r\n provider: params.provider\r\n };\r\n};","import {\r\n getFluentdUrl,\r\n getRestApiLiveUrl,\r\n} from \"./baseUrl\";\r\n\r\nexport const API = () => {\r\n return {\r\n vod: {\r\n getVodUrl: `${getRestApiLiveUrl()}/v1/live/details/vod/`,\r\n getMarkerUrl: (videoId:number) => `${getRestApiLiveUrl()}/v1/live/list-event/vod/${videoId}/`\r\n },\r\n videoTimelineLog: `${getFluentdUrl()}/video-timeline.log`,\r\n logs: `${getFluentdUrl()}/drive-endpoint.log`,\r\n };\r\n};","const envs = require(\"../configs/nextConfigs/next.config.js\");\r\nconst isNpmPackage = require(\"../configs/npmPackage/npmPackage\");\r\n\r\nexport const getRestApiLiveUrl = () => (isNpmPackage ? envs.baseUrl : (process.env.baseUrl as string)) + \"/live/api\";\r\nexport const getFluentdUrl = () => (isNpmPackage ? envs.fluentdUrl : (process.env.fluentdUrl as string));\r\nexport const getEmojiUrl = () => (isNpmPackage ? envs.baseUrl : (process.env.baseUrl as string)) + \"/emoji\";\r\n\r\n"]}
|