cafe-video-player 3.0.12 → 3.0.14
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/README.md +2 -0
- package/VideoHighLighter-DUJF47R3.js +2 -0
- package/VideoHighLighter-DUJF47R3.js.map +1 -0
- package/VideoHighLighter-ZDZ7LZVD.mjs +2 -0
- package/VideoHighLighter-ZDZ7LZVD.mjs.map +1 -0
- package/backwardForward-3X63XNNJ.mjs +2 -0
- package/backwardForward-3X63XNNJ.mjs.map +1 -0
- package/backwardForward-HTLSZBXC.js +2 -0
- package/backwardForward-HTLSZBXC.js.map +1 -0
- package/chunk-2DV7FRU5.mjs +2 -0
- package/chunk-2DV7FRU5.mjs.map +1 -0
- package/chunk-3TPEXSZV.js +2 -0
- package/chunk-3TPEXSZV.js.map +1 -0
- package/chunk-4QMWBTB5.mjs +2 -0
- package/chunk-4QMWBTB5.mjs.map +1 -0
- package/chunk-5UGSCO4K.js +3 -0
- package/chunk-5UGSCO4K.js.map +1 -0
- package/chunk-6LGS5W4B.mjs +2 -0
- package/chunk-6LGS5W4B.mjs.map +1 -0
- package/chunk-AK5TFAW3.js +2 -0
- package/chunk-AK5TFAW3.js.map +1 -0
- package/chunk-AN6JAJSI.js +2 -0
- package/chunk-AN6JAJSI.js.map +1 -0
- package/chunk-B2LB3L3X.mjs +2 -0
- package/chunk-B2LB3L3X.mjs.map +1 -0
- package/chunk-BNVNO5NH.js +2 -0
- package/chunk-BNVNO5NH.js.map +1 -0
- package/chunk-COYFW7R4.js +3 -0
- package/chunk-COYFW7R4.js.map +1 -0
- package/chunk-EPUUJE7V.mjs +9 -0
- package/chunk-EPUUJE7V.mjs.map +1 -0
- package/chunk-FXAWDALE.mjs +2 -0
- package/chunk-FXAWDALE.mjs.map +1 -0
- package/chunk-HOAJ3EFI.mjs +3 -0
- package/chunk-HOAJ3EFI.mjs.map +1 -0
- package/chunk-HZASW2B2.js +2 -0
- package/chunk-HZASW2B2.js.map +1 -0
- package/chunk-ISVY5ION.js +2 -0
- package/chunk-ISVY5ION.js.map +1 -0
- package/chunk-K4YPVDEE.js +2 -0
- package/chunk-K4YPVDEE.js.map +1 -0
- package/chunk-KSZ35TPK.js +2 -0
- package/chunk-KSZ35TPK.js.map +1 -0
- package/chunk-MVNOUM3G.js +9 -0
- package/chunk-MVNOUM3G.js.map +1 -0
- package/chunk-NLCBOGTI.mjs +3 -0
- package/chunk-NLCBOGTI.mjs.map +1 -0
- package/chunk-P46UX5ND.mjs +2 -0
- package/chunk-P46UX5ND.mjs.map +1 -0
- package/chunk-P4O3IKAQ.mjs +2 -0
- package/chunk-P4O3IKAQ.mjs.map +1 -0
- package/chunk-QFADUEGX.mjs +2 -0
- package/chunk-QFADUEGX.mjs.map +1 -0
- package/chunk-UL5LQB3G.mjs +2 -0
- package/chunk-UL5LQB3G.mjs.map +1 -0
- package/chunk-VUHZVVMS.js +3 -0
- package/chunk-VUHZVVMS.js.map +1 -0
- package/chunk-W5NVHMWX.js +2 -0
- package/chunk-W5NVHMWX.js.map +1 -0
- package/chunk-XKRBXZUB.mjs +3 -0
- package/chunk-XKRBXZUB.mjs.map +1 -0
- package/index.js +1 -7307
- package/index.js.map +1 -1
- package/index.mjs +1 -7292
- package/index.mjs.map +1 -1
- package/nonStaticVideoTag-5HEUBWAN.js +2 -0
- package/nonStaticVideoTag-5HEUBWAN.js.map +1 -0
- package/nonStaticVideoTag-P47FI6UV.mjs +2 -0
- package/nonStaticVideoTag-P47FI6UV.mjs.map +1 -0
- package/notActive-DRH5BEL5.js +2 -0
- package/notActive-DRH5BEL5.js.map +1 -0
- package/notActive-DSDPVSW4.mjs +2 -0
- package/notActive-DSDPVSW4.mjs.map +1 -0
- package/package.json +52 -51
- package/staticPlayer-7LS2DPUR.js +2 -0
- package/staticPlayer-7LS2DPUR.js.map +1 -0
- package/staticPlayer-J7Q3JXQ2.mjs +2 -0
- package/staticPlayer-J7Q3JXQ2.mjs.map +1 -0
- package/staticVideoTag-JOPHGL3R.mjs +2 -0
- package/staticVideoTag-JOPHGL3R.mjs.map +1 -0
- package/staticVideoTag-OZZU5MWF.js +2 -0
- package/staticVideoTag-OZZU5MWF.js.map +1 -0
- package/videoArea-BVYEZUSL.mjs +2 -0
- package/videoArea-BVYEZUSL.mjs.map +1 -0
- package/videoArea-M6ZAWJQW.js +2 -0
- package/videoArea-M6ZAWJQW.js.map +1 -0
- package/videoPlayerStyles.css +4 -8
- package/vodPlayer-B5JRKEU3.js +2 -0
- package/vodPlayer-B5JRKEU3.js.map +1 -0
- package/vodPlayer-GQETGYFT.mjs +2 -0
- package/vodPlayer-GQETGYFT.mjs.map +1 -0
|
@@ -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/videoDataSlice.ts","../src/videoPlayerLibrary/helpers/interfaces/enums.ts","../src/videoPlayerLibrary/helpers/conditions/conditions.ts","../src/videoPlayerLibrary/helpers/helpers.ts","../src/videoPlayerLibrary/helpers/redux/store.ts","../src/videoPlayerLibrary/helpers/redux/slices/popoversSlice.ts","../src/videoPlayerLibrary/helpers/redux/slices/userSlice.ts","../src/videoPlayerLibrary/helpers/redux/slices/miniPlayerSlice.ts","../src/videoPlayerLibrary/helpers/redux/actions/controller.actions.ts","../src/videoPlayerLibrary/helpers/services/apiCaller.ts","../src/videoPlayerLibrary/helpers/errorBoundary/errorBoundaryFunctions.ts","../src/videoPlayerLibrary/helpers/logs/fluentdLogger.ts","../src/videoPlayerLibrary/helpers/services/services.ts","../src/videoPlayerLibrary/helpers/services/baseUrl.ts","../src/videoPlayerLibrary/helpers/logs/logs.ts","../src/videoPlayerLibrary/helpers/constants.ts"],"names":["require_next_config","__commonJSMin","exports","module","init_esm_shims","npmPackage_exports","__export","isNpmPackage","init_npmPackage","__esmMin","VideoDataSliceState","videoDataSlice","createSlice","state","action","setInfo","setPlayerParams","setVideoElementSizeInfo","setMarkers","setIsFetchDetails","setIsValidAddress","setVideoTimelines","setIsReady","setRawSubtitles","setSubtitles","setSubtitleText","setSelectedSubtitle","setMultiAudio","setSelectedAudioId","setHiddenAd","setClearVideoDataSlice","videoDataSlice_default","PopOversSliceState","popoversSlice","setSettingPopover","setSpeedPopover","setQualityLevelsPopover","setMarkersListPopover","setMultiAudioPopover","setClearPopoversSlice","popoversSlice_default","UserSliceState","isDev","userSlice","setUserSettings","setVideoSettings","setClearUserSlice","userSlice_default","MiniPlayerSliceState","setMiniPlayerInfo","setDetailsMiniPlayer","setPlayMiniPlayer","setClearMiniPlayerSlice","miniPlayerSlice_default","store","configureStore","controllerSlice_default","getDefaultMiddleware","store_default","envs","Qe","getRestApiLiveUrl","getFluentdUrl","getEmojiUrl","API","videoId","sendFluentLog","data","details","params","_data","getUUID","apiCaller","mainPlayerVideoTag","miniPlayerVideoTag","progressBar","progressArea","progressBarWidth","progressTrack","speedChangeLog","selectedSpeed","settings","conditions","qualityChangeRequestLog","selectedQuality","qualityLevels","manualQuality","autoQuality","catchUpLoadingLog","duration","backwardForwardLog","type","fullscreenLog","category","volumeLog","source","target","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","flattenObject","loadingLog","waitingDuration","qualityLevel","loadingCounterRef","videoEntranceTime","previousLoaderDiff","subtitleLog","language","eventMarkerClickLog","markerId","markerTime","markerTitle","markerDescription","markerSticker","errorLogProvider","method","headers","retryCount","maxRetryCount","errorMessage","retryPolicy","errorCallback","timeoutCount","axiosConfig","axios","error","AxiosError","newRetryDelay","newMaxRetryCount","i","wait","handlePlayPause","event","dispatch","setPlay","handlePlayerPauseMiniPlayer","firstUnMuteHandler","setFirstMute","handleChangeSoundVolume","volume","videoTag","firstMute","video","handleBackwardForward","forwardBackwardCount","currentTime","handleFullScreen","isFullScreen","setIsFullScreen","handleLockOrientation","handleLock","setLock","handleVideoTimeline","currentTimeValue","movedTimeValue","videoTimelines","movedTime","handleVideoElementSizeInfo","element","handleDoubleClick","PREFIX","twMerge","classLists","input","classes","hadPrefix","cls","withoutPrefix","tailwindMerge","tw","classname","options","config","isTouch","styleMerge","result","s","resolve","uuid","uuidGenerator","char","val","isTouchScreen","isTouchScreenLandscape","isTouchScreenPortrait","isIOS","addZeroBefore","n","secondsToHMS","seconds","h","m","addUuidToSrc","src","urlObject","urlSrc","checkParentTarget","splitQueryParamsFromStreamLink","playerType","streamLink","queryParams","handleRippleCircle","id","circle","ripple","responseValidator","status","clearRedux","setClearControllerSlice","weighted_random","weights","random","handlePageLoadTime","loadingDurationRef","pageLoadTime","highestResolutionSupported","resolutions","width","height","w","filteredResolutions","resolution","keyName","key","newKey","sortLanguages","array","priority","a","b","prioA","prioB","getSubtitleLabel","subtitleLanguage","label","spliteStringPerLine","str","inViewPort","positionLeft","positionRight","cleanVTT","vttText","setupAutoplayBehavior","playPromise","isValidAddress","isFetchDetails","isReady","rawSubtitles","subtitles","selectedSubtitle","markers","multiAudio","hiddenAd","firstPlay","lock","canPlayVideo","activeElements","isLoading","isEnded","isAutoPlay","play","settingPopover","speedPopover","qualityLevelsPopover","markersListPopover","miniPlayer"],"mappings":"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","file":"chunk-NLCBOGTI.mjs","sourcesContent":["module.exports = {\n baseUrl: \"https://hamrahi.cloud\",\n fluentdUrl: \"https://hamrahi.cloud\",\n};\n","export const isNpmPackage = false;\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport {\n IVideoElementSizeInfo,\n IDetails,\n IVideoDataSlice,\n IParams,\n IMarker,\n ISubtitle,\n} from \"../../interfaces/interfaces\";\n\nexport const VideoDataSliceState: IVideoDataSlice = {\n details: {\n stream_link: \"\",\n type: \"\",\n banner: \"\",\n id: undefined,\n title: undefined,\n vtt: undefined,\n vtt_mobile: undefined,\n user_id: null,\n content_id: undefined,\n content_type: null,\n duration: 0,\n subtitles: undefined,\n },\n params: {\n type: \"\",\n id: \"\",\n bannerAlt: \"\",\n fullscreen: \"\",\n autoplay: \"\",\n banner: \"\",\n provider: \"cafevdo\",\n onFinished: undefined,\n onPlay: undefined,\n onPause: undefined,\n playStatus: undefined,\n currentTime: undefined,\n daaniHashCode: undefined,\n advertisement: undefined,\n activeSubtitle: \"fa\",\n vhl_progress: 0,\n },\n markers: [],\n videoElementSizeInfo: {\n bottom: 0,\n top: 0,\n right: 0,\n left: 0,\n width: 0,\n height: 0,\n },\n isFetchDetails: false,\n isValidAddress: false,\n videoTimelines: [],\n isReady: false,\n rawSubtitles: undefined,\n subtitles: [],\n selectedSubtitle: undefined,\n subtitleText: undefined,\n multiAudio: [],\n selectedAudioId: 0,\n hiddenAd: false,\n};\n\nexport const videoDataSlice = createSlice({\n name: \"videoData\",\n initialState: VideoDataSliceState,\n reducers: {\n setInfo: (state, action: PayloadAction<IDetails>) => {\n state.details = action.payload;\n },\n setPlayerParams: (state, action: PayloadAction<IParams>) => {\n state.params = action.payload;\n },\n setMarkers: (state, action: PayloadAction<IMarker[]>) => {\n state.markers = action.payload;\n },\n setVideoElementSizeInfo: (\n state,\n action: PayloadAction<IVideoElementSizeInfo>\n ) => {\n state.videoElementSizeInfo = action.payload;\n },\n setIsFetchDetails: (state, action: PayloadAction<boolean>) => {\n state.isFetchDetails = action.payload;\n },\n setIsValidAddress: (state, action: PayloadAction<boolean>) => {\n state.isValidAddress = action.payload;\n },\n setVideoTimelines: (state, action: PayloadAction<number[]>) => {\n state.videoTimelines = action.payload;\n },\n setIsReady: (state, action: PayloadAction<boolean>) => {\n state.isReady = action.payload;\n },\n setRawSubtitles: (\n state,\n action: PayloadAction<ISubtitle[] | null | undefined>\n ) => {\n state.rawSubtitles = action.payload;\n },\n setSubtitles: (state, action: PayloadAction<TextTrack[]>) => {\n state.subtitles = action.payload;\n },\n setSelectedSubtitle: (state, action: PayloadAction<any>) => {\n state.selectedSubtitle = action.payload;\n },\n setSubtitleText: (state, action: PayloadAction<string>) => {\n state.subtitleText = action.payload;\n },\n setMultiAudio: (state, action: PayloadAction<any>) => {\n state.multiAudio = JSON.parse(JSON.stringify(action.payload));\n },\n setSelectedAudioId: (state, action: PayloadAction<number>) => {\n state.selectedAudioId = action.payload;\n },\n setHiddenAd: (state, action: PayloadAction<boolean>) => {\n state.hiddenAd = action.payload;\n },\n setClearVideoDataSlice: (state) => {\n return (state = VideoDataSliceState);\n },\n },\n});\n\nexport const {\n setInfo,\n setPlayerParams,\n setVideoElementSizeInfo,\n setMarkers,\n setIsFetchDetails,\n setIsValidAddress,\n setVideoTimelines,\n setIsReady,\n setRawSubtitles,\n setSubtitles,\n setSubtitleText,\n setSelectedSubtitle,\n setMultiAudio,\n setSelectedAudioId,\n setHiddenAd,\n setClearVideoDataSlice,\n} = videoDataSlice.actions;\nexport default videoDataSlice.reducer;\n","export const enum zIndex {\n vttDisable = -2,\n videoPlayer,\n videoOpacity,\n backwardForwardInActive,\n mainIcons,\n footer,\n vtt,\n markers,\n videoPlayerInFullScreen = 1000,\n popoverBlurBackground,\n backwardForwardActive,\n miniPlayer,\n popoverContent,\n maxPopover,\n videoPlayerInPictureInPicture,\n}\n\nexport const enum SettingSections {\n main = \"main\",\n qualityLevels = \"qualityLevels\",\n speed = \"speed\",\n subtitles = \"subtitles\",\n multiAudio = \"multiAudio\",\n}\n\nexport const enum PlayerTypes {\n static = \"static\",\n vod = \"vod\",\n}\n\nexport const enum ConditionName {\n showHeader = \"showHeader\",\n showMain = \"showMain\",\n showFooter = \"showFooter\",\n showTouchVolumeBrightness = \"showTouchVolumeBrightness\",\n showBackwardForward = \"showBackwardForward\",\n showTitle = \"showTitle\",\n showSettingPopover = \"showSettingPopover\",\n showSpeedPopover = \"showSpeedPopover\",\n showQualityLevelsPopover = \"showQualityLevelsPopover\",\n showSettingIcon = \"showSettingIcon\",\n showBanner = \"showBanner\",\n showProgressbar = \"showProgressbar\",\n showPictureInPicture = \"showPictureInPicture\",\n showSubtitle = \"showSubtitle\",\n showMarkerListPopover = \"showMarkerListPopover\",\n hidePopovers = \"hidePopovers\",\n isLandscape = \"isLandscape\",\n isTouchScreen = \"isTouchScreen\",\n isTouchScreenPortrait = \"isTouchScreenPortrait\",\n isTouchScreenLandscape = \"isTouchScreenLandscape\",\n isActiveElements = \"isActiveElements\",\n isPlay = \"isPlay\",\n isPlayMiniPlayer = \"isPlayMiniPlayer\",\n isFirstPlay = \"isFirstPlay\",\n isFirstMutePlay = \"isFirstMutePlay\",\n isLock = \"isLock\",\n isIOS = \"isIOS\",\n isLoading = \"isLoading\",\n isStaticFormat = \"isStaticFormat\",\n isEnded = \"isEnded\",\n isAutoPlay = \"isAutoPlay\",\n isFullScreen = \"isFullScreen\",\n isValidAddress = \"isValidAddress\",\n isFetchDetails = \"isFetchDetails\",\n isAutoQuality = \"isAutoQuality\",\n isPressKeySpace = \"isPressKeySpace\",\n isPressKeyI = \"isPressKeyI\",\n isPressKeyF = \"isPressKeyF\",\n isPressKeyS = \"isPressKeyS\",\n isPressKeyArrowRight = \"isPressKeyArrowRight\",\n isPressKeyArrowLeft = \"isPressKeyArrowLeft\",\n isPressKeyM = \"isPressKeyM\",\n isPressKeyC = \"isPressKeyC\",\n isSendTimelineLog = \"isSendTimelineLog\",\n isReady = \"isReady\",\n isSelectedSubtitle = \"isSelectedSubtitle\",\n isMiniPlayerAndMainPlayerSame = \"isMiniPlayerAndMainPlayerSame\",\n isVideoHighLighter = \"isVideoHighLighter\",\n hasTitle = \"hasTitle\",\n hasBanner = \"hasBanner\",\n streamLink = \"streamLink\",\n hasManualQuality = \"hasManualQuality\",\n hasSound = \"hasSound\",\n hasAutoPlay = \"hasAutoPlay\",\n hasFullScreenParams = \"hasFullScreenParams\",\n hasOnFinishedParams = \"hasOnFinishedParams\",\n hasSubtitles = \"hasSubtitles\",\n hasMultipleSubtitles = \"hasMultipleSubtitles\",\n hasSubtitlesInDetails = \"hasSubtitlesInDetails\",\n hasActiveCue = \"hasActiveCue\",\n hasOnPlayParams = \"hasOnPlayParams\",\n hasOnPauseParams = \"hasOnPauseParams\",\n hasMiniPlayer = \"hasMiniPlayer\",\n hasCurrentTimeParams = \"hasCurrentTimeParams\",\n hasMarkers = \"hasMarkers\",\n hasSubtitlesInParams = \"hasSubtitlesInParams\",\n hasOnChangeCurrentTime = \"hasOnChangeCurrentTime\",\n hasMultiAudio = \"hasMultiAudio\",\n hasAdvertisement = \"hasAdvertisement\",\n hasActiveSubtitleInParams = \"hasActiveSubtitleInParams\",\n hasRawSubtitles = \"hasRawSubtitles\",\n skeletonStatusInVhl = \"skeletonStatusInVhl\",\n getDetails = \"getDetails\",\n getMarkers = \"getMarkers\",\n canPlayVideo = \"canPlayVideo\",\n setSubtitleFirstPlay = \"setSubtitleFirstPlay\",\n showSoundVolumeAlert = \"showSoundVolumeAlert\",\n}\n","import { isIOS, isTouchScreen, isTouchScreenLandscape, isTouchScreenPortrait } from \"../helpers\";\nimport { ConditionName, PlayerTypes } from \"../interfaces/enums\";\nimport store from \"../redux/store\";\n\nexport const conditions = (type: string) => {\n const { params, details, isValidAddress, isFetchDetails, isReady, rawSubtitles, subtitles, selectedSubtitle, markers, multiAudio, hiddenAd } =\n store.getState().videoData;\n const { firstPlay, lock, canPlayVideo, manualQuality, activeElements, isLoading, isEnded, isAutoPlay, play, isFullScreen, firstMute } =\n store.getState().controller;\n const { settingPopover, speedPopover, qualityLevelsPopover, markersListPopover } = store.getState().popovers;\n const { settings } = store.getState().user;\n const miniPlayer = store.getState().miniPlayer;\n\n switch (type) {\n case ConditionName.showHeader:\n return canPlayVideo;\n case ConditionName.showMain:\n return !lock || firstPlay;\n case ConditionName.showFooter:\n return isTouchScreen() ? canPlayVideo && !firstPlay : canPlayVideo;\n case ConditionName.showTouchVolumeBrightness:\n return !firstPlay && isTouchScreenLandscape() && !lock && !isEnded;\n case ConditionName.showBackwardForward:\n return !firstPlay && !lock;\n case ConditionName.showTitle:\n return params.type !== \"static\" && isFullScreen && !lock;\n case ConditionName.showSettingPopover:\n return settingPopover;\n case ConditionName.showSpeedPopover:\n return speedPopover;\n case ConditionName.showQualityLevelsPopover:\n return qualityLevelsPopover;\n case ConditionName.showSettingIcon:\n return !isIOS();\n case ConditionName.showBanner:\n return firstPlay && (details.banner || params.banner);\n case ConditionName.showProgressbar:\n return true;\n case ConditionName.showPictureInPicture:\n return !isIOS() && !isTouchScreen();\n case ConditionName.showSubtitle:\n return !!selectedSubtitle;\n case ConditionName.showMarkerListPopover:\n return markersListPopover;\n case ConditionName.hidePopovers:\n return !settingPopover;\n case ConditionName.isLandscape:\n return window.innerHeight <= window.innerWidth;\n case ConditionName.isTouchScreen:\n return isTouchScreen();\n case ConditionName.isTouchScreenPortrait:\n return isTouchScreenPortrait();\n case ConditionName.isTouchScreenLandscape:\n return isTouchScreenLandscape();\n case ConditionName.isActiveElements:\n return activeElements;\n case ConditionName.isPlay:\n return play;\n case ConditionName.isPlayMiniPlayer:\n return miniPlayer.play;\n case ConditionName.isFirstPlay:\n return firstPlay;\n case ConditionName.isLock:\n return lock;\n case ConditionName.isFirstMutePlay:\n return firstMute;\n case ConditionName.isIOS:\n return isIOS();\n case ConditionName.isLoading:\n return isLoading;\n case ConditionName.isStaticFormat:\n return params.type === PlayerTypes.static;\n case ConditionName.isEnded:\n return isEnded;\n case ConditionName.isAutoPlay:\n return isAutoPlay;\n case ConditionName.isFullScreen:\n return isFullScreen;\n case ConditionName.isValidAddress:\n return params.id ? isValidAddress : !!params.stream_link;\n case ConditionName.isFetchDetails:\n return params.id ? isFetchDetails : !!params.stream_link;\n case ConditionName.isAutoQuality:\n return settings.quality === -1;\n case ConditionName.isPressKeySpace:\n return !lock;\n case ConditionName.isPressKeyI:\n return !lock && !firstPlay;\n case ConditionName.isPressKeyF:\n return (!lock && !firstPlay) || !!params.vhl_status;\n case ConditionName.isPressKeyS:\n return !lock && !firstPlay;\n case ConditionName.isPressKeyArrowRight:\n return !firstPlay && !lock;\n case ConditionName.isPressKeyArrowLeft:\n return !firstPlay && !lock;\n case ConditionName.isPressKeyM:\n return !firstPlay && !lock;\n case ConditionName.isPressKeyC:\n return !lock && !firstPlay && !!subtitles && subtitles.length > 0;\n case ConditionName.isSendTimelineLog:\n return params.type !== \"static\";\n case ConditionName.isReady:\n return isReady;\n case ConditionName.isSelectedSubtitle:\n return !!subtitles && subtitles.length > 0 && selectedSubtitle;\n case ConditionName.isMiniPlayerAndMainPlayerSame:\n return params.id === miniPlayer.params.id;\n case ConditionName.isVideoHighLighter:\n return !!params.vhl_status;\n case ConditionName.hasTitle:\n return details.title;\n case ConditionName.hasBanner:\n return details.banner;\n case ConditionName.streamLink:\n return details.stream_link || params.stream_link;\n case ConditionName.hasManualQuality:\n return manualQuality !== undefined && manualQuality !== null;\n case ConditionName.hasSound:\n return !!settings.volume;\n case ConditionName.hasAutoPlay:\n return params.autoplay === \"true\";\n case ConditionName.hasFullScreenParams:\n return params.fullscreen === \"true\";\n case ConditionName.hasOnFinishedParams:\n return !!params.onFinished;\n case ConditionName.hasSubtitles:\n return !!subtitles && subtitles.length > 0;\n case ConditionName.hasMultipleSubtitles:\n return !!subtitles && subtitles.length > 1;\n case ConditionName.hasActiveCue:\n return selectedSubtitle && selectedSubtitle.activeCues && selectedSubtitle.activeCues.length > 0;\n case ConditionName.hasOnPlayParams:\n return !!params.onPlay;\n case ConditionName.hasOnPauseParams:\n return !!params.onPause;\n case ConditionName.hasMiniPlayer:\n return miniPlayer.params.id;\n case ConditionName.hasCurrentTimeParams:\n return params.currentTime !== undefined;\n case ConditionName.hasMarkers:\n return markers.length !== 0;\n case ConditionName.hasSubtitlesInParams:\n return params.subtitles && params.subtitles.length;\n case ConditionName.hasOnChangeCurrentTime:\n return !!params.onChangeCurrentTime;\n case ConditionName.hasMultiAudio:\n return multiAudio && !!multiAudio.length;\n case ConditionName.hasAdvertisement:\n return !!params.advertisement && !!params.advertisement.videoUrl && !hiddenAd;\n case ConditionName.hasActiveSubtitleInParams:\n return !!params.activeSubtitle;\n case ConditionName.hasRawSubtitles:\n return !!rawSubtitles && !!rawSubtitles.length;\n case ConditionName.skeletonStatusInVhl:\n return params.vhl_status === \"skeleton\";\n case ConditionName.getDetails:\n return !!params.type && params.id;\n case ConditionName.getMarkers:\n return String(params.type) === \"vod\" && params.id && isFetchDetails;\n case ConditionName.canPlayVideo:\n return canPlayVideo;\n case ConditionName.showSoundVolumeAlert:\n return firstMute;\n case ConditionName.setSubtitleFirstPlay:\n return (\n ((params.type === PlayerTypes.vod && details.subtitles && details.subtitles.length > 0) ||\n (params.type === PlayerTypes.static && params.subtitles && params.subtitles.length)) &&\n !firstPlay\n );\n default:\n break;\n }\n};\n","import { conditions } from \"./conditions/conditions\";\nimport { ConditionName } from \"./interfaces/enums\";\nimport store from \"./redux/store\";\nimport { setClearVideoDataSlice } from \"./redux/slices/videoDataSlice\";\nimport { setClearControllerSlice, setFirstMute, setPlay } from \"./redux/slices/controllerSlice\";\nimport { setClearUserSlice } from \"./redux/slices/userSlice\";\nimport { setClearPopoversSlice } from \"./redux/slices/popoversSlice\";\nimport { handleChangeSoundVolume } from \"./redux/actions/controller.actions\";\nimport { ClassNameValue } from \"tailwind-merge\";\nimport { twMerge as tailwindMerge } from \"tailwind-merge\";\n\nconst PREFIX = \"pl-\";\n\nconst twMerge = (...classLists: ClassNameValue[]) => {\n const input = classLists.flat(1).filter(Boolean).join(\" \").trim();\n if (!input) return \"\";\n const classes = input?.split(/\\s+/);\n const hadPrefix = new Set(classes.filter((cls) => cls.startsWith(PREFIX)).map((cls) => cls.slice(PREFIX.length)));\n const withoutPrefix = classes.map((cls) => (cls.startsWith(PREFIX) ? cls.slice(PREFIX.length) : cls));\n const merged = tailwindMerge(withoutPrefix.join(\" \"))?.split(\" \");\n const finalClasses = merged.map((cls) => (hadPrefix.has(cls) ? PREFIX + cls : cls));\n return finalClasses.join(\" \").trim();\n};\n\nexport const tw = (classname: string, options?: { touchFullScreen?: string; touch?: string; desktopFullScreen?: string; desktop?: string }) => {\n const config = options || {};\n const isTouch = conditions(ConditionName.isTouchScreen);\n const isFullScreen = conditions(ConditionName.isFullScreen);\n\n if (isTouch) return twMerge(classname, config.touch, isFullScreen ? config.touchFullScreen : undefined);\n else return twMerge(classname, config.desktop, isFullScreen ? config.desktopFullScreen : undefined);\n};\n\nexport const styleMerge = <T extends number | string>(options: { touchFullScreen?: T; touch?: T; desktopFullScreen?: T; desktop?: T }) => {\n const isTouch = conditions(ConditionName.isTouchScreen);\n const isFullScreen = conditions(ConditionName.isFullScreen);\n\n let result: T | undefined;\n\n if (isTouch) result = isFullScreen ? (options.touchFullScreen ?? options.touch) : options.touch;\n else result = isFullScreen ? (options.desktopFullScreen ?? options.desktop) : options.desktop;\n\n return result as T;\n};\n\nexport const wait = (s: number) => new Promise((resolve) => setTimeout(resolve, s * 1000));\n\nexport const getUUID = () => {\n let uuid = localStorage.getItem(\"hamrahiUUID\");\n if (!uuid) {\n uuid = uuidGenerator();\n localStorage.setItem(\"hamrahiUUID\", uuid);\n }\n return uuid.toString();\n};\n\nexport const uuidGenerator = () => {\n let uuid = \"xxxxxxxx-xxxx-Mxxx-Nxxx-x\".replace(/[xMN]/g, (char) => {\n let val: number;\n if (char === \"M\") val = Math.floor(1 + Math.random() * 5);\n else if (char === \"N\") val = Math.floor(8 + Math.random() * 4);\n else val = Math.floor(Math.random() * 16);\n return val.toString(16);\n });\n uuid += Date.now().toString(16);\n return uuid;\n};\n\nexport const isTouchScreen = () =>\n typeof window !== \"undefined\" &&\n (\"ontouchstart\" in window || ((window as any)[\"DocumentTouch\"] && document instanceof (window as any)[\"DocumentTouch\"]));\n\nexport const isTouchScreenLandscape = () => {\n const { isFullScreen } = store.getState().controller;\n return isTouchScreen() && isFullScreen;\n};\nexport const isTouchScreenPortrait = () => {\n const { isFullScreen } = store.getState().controller;\n return isTouchScreen() && !isFullScreen;\n};\n\nexport const isIOS = () => {\n return (\n [\"iPad Simulator\", \"iPhone Simulator\", \"iPod Simulator\", \"iPad\", \"iPhone\", \"iPod\"].includes(navigator.platform) ||\n // iPad on iOS 13 detection\n (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\n );\n};\n\nexport const addZeroBefore = (n: number) => {\n return (n < 10 ? \"0\" : \"\") + n;\n};\n\nexport const secondsToHMS = (seconds: number) => {\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = Math.floor((seconds % 3600) % 60);\n return h < 1 ? `${addZeroBefore(m)}:${addZeroBefore(s)}` : `${addZeroBefore(h)}:${addZeroBefore(m)}:${addZeroBefore(s)}`;\n};\n\nexport const addUuidToSrc = (src: string) => {\n const urlObject = new URL(src);\n let urlSrc = src;\n if (urlObject.search.length) return (urlSrc += `&uuid=${getUUID()}`);\n else return (urlSrc += `?uuid=${getUUID()}`);\n};\n\nexport const checkParentTarget = (event: any, target: string) => {\n try {\n return [\n event.target.id,\n event.target.parentNode.id,\n event.target.parentNode.parentNode.id,\n event.target.parentNode.parentNode.parentNode.id,\n event.target.parentNode.parentNode.parentNode.parentNode.id,\n ].includes(target);\n } catch (error) {\n return false;\n }\n};\n\nexport const splitQueryParamsFromStreamLink = (playerType: \"mainPlayer\" | \"miniPlayer\") => {\n const { params } = store.getState().videoData;\n\n let streamLink = \"\";\n if (!params.id && params.stream_link) streamLink = params.stream_link;\n else {\n if (playerType === \"mainPlayer\") streamLink = store.getState().videoData.details.stream_link!;\n else streamLink = store.getState().miniPlayer.details.stream_link!;\n }\n\n let queryParams: string = \"\";\n if (streamLink) queryParams = streamLink?.split(\"m3u8\")[1];\n if (queryParams) queryParams = `${queryParams}&uuid=${getUUID()}`;\n else queryParams = `?uuid=${getUUID()}`;\n return queryParams;\n};\n\nexport const handleRippleCircle = (event: any, id: string) => {\n const element: any = document.getElementById(id);\n const circle = document.createElement(\"span\");\n circle.style.width = circle.style.height = `50px`;\n circle.style.left = `${event.touches[0].clientX - element.offsetLeft - 25}px`;\n circle.style.top = `${event.touches[0].clientY - element.offsetTop - 25}px`;\n circle.classList.add(\"pl-ripple\");\n const ripple = element.getElementsByClassName(\"pl-ripple\")[0];\n if (ripple) ripple.remove();\n element.appendChild(circle);\n};\n\nexport const handleRipple = (event: any, id: string, size: number = 50) => {\n const clientX = event.clientX !== undefined ? event.clientX : event.touches[0].clientX;\n const clientY = event.clientY !== undefined ? event.clientY : event.touches[0].clientY;\n const element: any = document.getElementById(id);\n const circle = document.createElement(\"span\");\n circle.style.width = circle.style.height = `${size}px`;\n circle.style.left = `${clientX - size / 2}px`;\n circle.style.top = `${clientY - element.getBoundingClientRect().top - size / 2}px`;\n circle.classList.add(\"pl-ripple\");\n const ripple = element.getElementsByClassName(\"pl-ripple\")[0];\n if (ripple) ripple.remove();\n element.appendChild(circle);\n};\n\nexport const responseValidator = (status: number): boolean => status >= 200 && status < 300;\n\nexport const clearRedux = () => {\n const dispatch = store.dispatch;\n dispatch(setClearVideoDataSlice());\n dispatch(setClearControllerSlice());\n dispatch(setClearUserSlice());\n dispatch(setClearPopoversSlice());\n};\n\nexport const weighted_random = (options: any) => {\n let i;\n\n let weights: any[] = [];\n\n for (i = 0; i < options.length; i++) weights[i] = options[i].weight + (weights[i - 1] || 0);\n\n let random = Math.random() * weights[weights.length - 1];\n\n for (i = 0; i < weights.length; i++) if (weights[i] > random) break;\n\n return options[i].domain;\n};\n\n// ***** Player Core *****\n\nexport const handlePageLoadTime = (loadingDurationRef: any) => {\n let pageLoadTime = 0;\n if (performance && performance.getEntriesByType(\"navigation\")) pageLoadTime = performance.getEntriesByType(\"navigation\")[0].duration;\n loadingDurationRef.current = pageLoadTime;\n};\n\nexport const highestResolutionSupported = (resolutions: string[], width: number, height: number) => {\n const w = width * window.devicePixelRatio;\n const h = height * window.devicePixelRatio;\n let filteredResolutions: string[] = [];\n if (conditions(ConditionName.isTouchScreenPortrait))\n filteredResolutions = resolutions.filter((resolution: string) => Number(resolution?.split(\"x\")[0].trim()) <= w);\n else\n filteredResolutions = resolutions.filter(\n (resolution: string) => Number(resolution?.split(\"x\")[0].trim()) <= h || Number(resolution?.split(\"x\")[1].trim()) <= w,\n );\n return filteredResolutions.indexOf(filteredResolutions[filteredResolutions.length - 1]);\n};\n\nexport const flattenObject = (input: any, keyName?: string) => {\n let result: any = {};\n for (const key in input) {\n const newKey = keyName ? `${keyName}_${key}` : key;\n if (typeof input[key] === \"object\" && !Array.isArray(input[key])) result = { ...result, ...flattenObject(input[key], newKey) };\n else result[newKey] = input[key];\n }\n return result;\n};\n\nexport const sortLanguages = (array: any) => {\n const priority: any = { fa: 1, en: 2 };\n\n return array.slice().sort((a: any, b: any) => {\n const prioA = priority[a.lang] || 999;\n const prioB = priority[b.lang] || 999;\n\n return prioA - prioB;\n });\n};\n\nexport const getSubtitleLabel = (subtitleLanguage: string) => {\n let label;\n switch (subtitleLanguage) {\n case \"fa\":\n label = \"فارسی\";\n break;\n case \"en\":\n label = \"انگلیسی\";\n break;\n case \"ar\":\n label = \"عربی\";\n break;\n case \"tr\":\n label = \"ترکی\";\n break;\n default:\n break;\n }\n return label;\n};\n\nexport const spliteStringPerLine = (str: string) => str?.split(/\\r?\\n|\\r|\\n/g);\n\nexport const inViewPort = (element: any) => {\n if (element) {\n const positionLeft = element.offsetLeft - element.offsetWidth / 2;\n const positionRight = window.innerWidth - (element.offsetLeft + element.offsetWidth);\n if (positionLeft >= 0 && positionRight >= 0) return \"inViewport\";\n else if (positionLeft < 0) return \"OutViewPortFromLeft\";\n else if (positionRight < 0) return \"OutViewPortFromRight\";\n }\n};\n\nexport const compare = (a: any, b: any) => {\n if (a.time < b.time) return -1;\n if (a.time > b.time) return 1;\n return 0;\n};\n\nexport const cleanVTT = (vttText: string) => {\n // Remove all timestamps and alignment/position data\n vttText = vttText.replace(/\\d{2}:\\d{2}:\\d{2}\\.\\d{3} --> \\d{2}:\\d{2}:\\d{2}\\.\\d{3}.*\\n/g, \"\");\n\n // Remove all HTML tags like <c> and </c>\n vttText = vttText.replace(/<[^>]+>/g, \"\");\n\n // Remove extra blank lines\n vttText = vttText.replace(/\\n+/g, \"\\n\");\n\n // Trim leading and trailing whitespace\n vttText = vttText.trim();\n\n return vttText;\n};\n\nexport const isDev = process.env.NODE_ENV === \"development\";\n\nexport const setupAutoplayBehavior = (video: HTMLVideoElement) => {\n const dispatch = store.dispatch;\n const { params } = store.getState().videoData;\n if (params.autoplay === \"true\" || params.advertisement) {\n const playPromise = video.play();\n\n dispatch(setPlay(true));\n handleChangeSoundVolume(100, video);\n\n if (playPromise !== undefined)\n playPromise\n .then(() => {\n handleChangeSoundVolume(100, video);\n })\n .catch(() => {\n handleChangeSoundVolume(0, video);\n dispatch(setFirstMute(true));\n if (ConditionName.isIOS) video.play();\n });\n }\n};\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\";\nimport { IPopoversSlice } from \"../../interfaces/interfaces\";\n\nconst PopOversSliceState: IPopoversSlice = {\n settingPopover: false,\n speedPopover: false,\n qualityLevelsPopover: false,\n markersListPopover: false,\n multiAudioPopover: false,\n};\nexport const popoversSlice = createSlice({\n name: \"popover\",\n initialState: PopOversSliceState,\n reducers: {\n setSettingPopover: (state, action: PayloadAction<boolean>) => {\n state.settingPopover = action.payload;\n },\n setSpeedPopover: (state, action: PayloadAction<boolean>) => {\n state.speedPopover = action.payload;\n },\n setQualityLevelsPopover: (state, action: PayloadAction<boolean>) => {\n state.qualityLevelsPopover = action.payload;\n },\n setMarkersListPopover: (state, action: PayloadAction<boolean>) => {\n state.markersListPopover = action.payload;\n },\n setMultiAudioPopover: (state, action: PayloadAction<boolean>) => {\n state.multiAudioPopover = action.payload;\n },\n setClearPopoversSlice: (state) => {\n state.settingPopover = false;\n state.speedPopover = false;\n state.qualityLevelsPopover = false;\n state.markersListPopover = false;\n state.multiAudioPopover = false;\n },\n },\n});\n\nexport const { setSettingPopover, setSpeedPopover, setQualityLevelsPopover, setMarkersListPopover, setMultiAudioPopover, setClearPopoversSlice } = popoversSlice.actions;\n\nexport default popoversSlice.reducer;\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { IUserSettings, IUserSlice, IVideoSettings } from \"../../interfaces/interfaces\";\nimport { isDev } from \"../../helpers\";\n\nconst UserSliceState: IUserSlice = {\n settings: { quality: isDev ? 0 : -1, brightness: 100, volume: 100, speed: 1 },\n videoSettings: { time: 0 },\n};\n\nexport const userSlice = createSlice({\n name: \"user\",\n initialState: UserSliceState,\n reducers: {\n setUserSettings: (state, action: PayloadAction<IUserSettings>) => {\n state.settings = action.payload;\n },\n setVideoSettings: (state, action: PayloadAction<IVideoSettings>) => {\n state.videoSettings = action.payload;\n },\n setClearUserSlice: () => {\n return UserSliceState;\n },\n },\n});\n\nexport const { setUserSettings, setVideoSettings, setClearUserSlice } = userSlice.actions;\n\nexport default userSlice.reducer;\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport {\n IDetails,\n IMiniPlayerParams,\n IMiniPlayerSlice,\n} from \"../../interfaces/interfaces\";\nimport { PlayerTypes } from \"../../interfaces/enums\";\n\nconst MiniPlayerSliceState: IMiniPlayerSlice = {\n params: {\n id: \"0\",\n type: \"\",\n currentTime: 0,\n autoPlay: false,\n onClose: () => {},\n },\n details: {},\n play: false,\n};\n\nexport const userSlice = createSlice({\n name: \"user\",\n initialState: MiniPlayerSliceState,\n reducers: {\n setMiniPlayerInfo: (state, action: PayloadAction<IMiniPlayerParams>) => {\n state.params = {\n ...action.payload,\n id:\n action.payload.type === PlayerTypes.static\n ? window.atob(action.payload.id)\n : action.payload.id,\n banner: action.payload.banner ? action.payload.banner : undefined,\n };\n },\n setDetailsMiniPlayer: (state, action: PayloadAction<IDetails>) => {\n state.details = action.payload;\n },\n setPlayMiniPlayer: (state, action: PayloadAction<boolean>) => {\n state.play = action.payload;\n },\n setClearMiniPlayerSlice: (state) => {\n return (state = MiniPlayerSliceState);\n },\n },\n});\n\nexport const {\n setMiniPlayerInfo,\n setDetailsMiniPlayer,\n setPlayMiniPlayer,\n setClearMiniPlayerSlice,\n} = userSlice.actions;\n\nexport default userSlice.reducer;\n","import { setFirstMute, setIsFullScreen, setLock, setPlay } from \"../slices/controllerSlice\";\nimport store from \"../store\";\nimport { setVideoElementSizeInfo, setVideoTimelines } from \"../slices/videoDataSlice\";\nimport { ConditionName } from \"../../interfaces/enums\";\nimport { apiCaller } from \"../../services/apiCaller\";\nimport { API } from \"../../services/services\";\nimport { setUserSettings } from \"../slices/userSlice\";\nimport { setClearPopoversSlice } from \"../slices/popoversSlice\";\nimport { conditions } from \"../../conditions/conditions\";\nimport { backwardForwardLog, fullscreenLog, lockLog, videoTimelineLog } from \"../../logs/logs\";\nimport { sendFluentLog } from \"../../logs/fluentdLogger\";\nimport { mainPlayerVideoTag, miniPlayerVideoTag } from \"../../constants\";\nimport { setPlayMiniPlayer } from \"../slices/miniPlayerSlice\";\n\nexport const handlePlayPause = (event: any) => {\n if (event === null || event.target.nodeName !== \"INPUT\") {\n const dispatch = store.dispatch;\n if (event !== null) {\n event.stopPropagation();\n event.preventDefault();\n }\n mainPlayerVideoTag()?.paused ? mainPlayerVideoTag().play() : mainPlayerVideoTag()?.pause();\n dispatch(setPlay(!mainPlayerVideoTag()?.paused));\n if (miniPlayerVideoTag() && miniPlayerVideoTag().played) {\n miniPlayerVideoTag()?.pause();\n dispatch(setPlayMiniPlayer(false));\n }\n }\n};\n\nexport const handlePlayerPauseMiniPlayer = (event: any) => {\n if (event === null || event.target.nodeName !== \"INPUT\") {\n const dispatch = store.dispatch;\n miniPlayerVideoTag().paused ? miniPlayerVideoTag().play() : miniPlayerVideoTag()?.pause();\n dispatch(setPlayMiniPlayer(!miniPlayerVideoTag().paused));\n if (mainPlayerVideoTag() && mainPlayerVideoTag().played) {\n mainPlayerVideoTag()?.pause();\n dispatch(setPlay(false));\n }\n }\n};\n\nexport const firstUnMuteHandler = () => {\n const dispatch = store.dispatch;\n dispatch(setFirstMute(false));\n if (conditions(ConditionName.isIOS)) mainPlayerVideoTag().currentTime = mainPlayerVideoTag().currentTime - 0.001;\n};\n\nexport const handleChangeSoundVolume = (volume: number, videoTag?: HTMLVideoElement) => {\n const dispatch = store.dispatch;\n const { settings } = store.getState().user;\n const { firstMute } = store.getState().controller;\n\n const video = videoTag || mainPlayerVideoTag();\n\n dispatch(setUserSettings({ ...settings, volume }));\n\n if (!video) return;\n\n if (firstMute && volume) firstUnMuteHandler();\n if (conditions(ConditionName.isIOS)) video.muted = !volume;\n else video.volume = volume / 100;\n};\n\nexport const handleBackwardForward = (type: string, forwardBackwardCount: number = 15, event?: any) => {\n if (type === \"touchBackward\") type = \"backward\";\n else if (type === \"touchForward\") type = \"forward\";\n if (\n (event && event.target.nodeName === \"INPUT\") ||\n (type === \"backward\" && mainPlayerVideoTag().currentTime < 15) ||\n (type === \"forward\" && mainPlayerVideoTag().duration - mainPlayerVideoTag().currentTime < 15)\n )\n return;\n sendFluentLog(backwardForwardLog(type));\n let currentTime = 0;\n if (type === \"backward\") {\n if (forwardBackwardCount === 0) currentTime = 0;\n else currentTime = mainPlayerVideoTag().currentTime - forwardBackwardCount;\n } else if (type === \"forward\") {\n if (forwardBackwardCount === mainPlayerVideoTag().duration) currentTime = forwardBackwardCount;\n else currentTime = mainPlayerVideoTag().currentTime + forwardBackwardCount;\n }\n mainPlayerVideoTag().currentTime = currentTime;\n};\n\nexport const handleFullScreen = () => {\n const dispatch = store.dispatch;\n\n const isFullScreen = document.fullscreenElement;\n if (conditions(ConditionName.isIOS)) {\n if ((mainPlayerVideoTag() as any).webkitEnterFullScreen) {\n dispatch(setPlay(false));\n // Toggle fullscreen in Safari for iPad\n (mainPlayerVideoTag() as any).webkitEnterFullScreen();\n } else {\n dispatch(setClearPopoversSlice());\n sendFluentLog(fullscreenLog(\"fullScreen\"));\n }\n } else {\n if (isFullScreen) {\n dispatch(setIsFullScreen(false));\n document.exitFullscreen().then(() => (document.body.style.overflow = \"auto\"));\n } else {\n dispatch(setClearPopoversSlice());\n document.documentElement.requestFullscreen().then(() => (document.body.style.overflow = \"hidden\"));\n dispatch(setIsFullScreen(true));\n sendFluentLog(fullscreenLog(\"fullScreen\"));\n }\n }\n};\n\nexport const handleLockOrientation = () => {\n if (conditions(ConditionName.isTouchScreen) && !conditions(ConditionName.isIOS)) {\n if (conditions(ConditionName.isLandscape) && !conditions(ConditionName.isFullScreen)) (window.screen.orientation as any).lock(\"portrait\");\n else (window.screen.orientation as any).lock(\"landscape\");\n }\n};\n\nexport const handleLock = (type: string) => {\n const dispatch = store.dispatch;\n dispatch(setLock(type === \"lock\"));\n sendFluentLog(lockLog(type));\n if (type === \"unlock\") localStorage.setItem(\"unlock-click\", \"true\");\n};\n\nexport const handleVideoTimeline = (currentTimeValue: number, movedTimeValue?: number) => {\n if (conditions(ConditionName.isSendTimelineLog)) {\n const dispatch = store.dispatch;\n const { videoTimelines } = store.getState().videoData;\n let currentTime = Math.floor(currentTimeValue);\n let movedTime = Math.floor(movedTimeValue!);\n if (videoTimelines.length === 0) {\n dispatch(setVideoTimelines([currentTime >= mainPlayerVideoTag()?.duration ? movedTime! : currentTime]));\n } else {\n if (videoTimelines[0] < currentTime)\n apiCaller({\n url: API().videoTimelineLog,\n method: \"post\",\n data: videoTimelineLog(videoTimelines[0], currentTime),\n });\n if (movedTime && movedTime >= mainPlayerVideoTag()?.duration) dispatch(setVideoTimelines([]));\n else dispatch(setVideoTimelines([movedTime!]));\n }\n }\n};\n\nexport const handleVideoElementSizeInfo = () => {\n const dispatch = store.dispatch;\n const element: any = document.getElementById(\"video-area\")?.getBoundingClientRect();\n element.height = (element.width * 9) / 16;\n if (element) dispatch(setVideoElementSizeInfo(element));\n};\n\nexport const handleDoubleClick = (event: any) => {\n if (!conditions(ConditionName.isTouchScreen) && event.target.nodeName !== \"INPUT\") handleFullScreen();\n};\n","import axios, { AxiosError } from \"axios\";\nimport { IApiCaller, IAxiosConfig, IRetryPolicy } from \"../interfaces/interfaces\";\nimport store from \"../redux/store\";\nimport { wait } from \"../helpers\";\nimport { errorLogProvider } from \"../errorBoundary/errorBoundaryFunctions\";\n\nexport const apiCaller: any = async ({\n url,\n method = \"GET\",\n data,\n headers,\n retryCount = 1,\n maxRetryCount = 0,\n errorMessage,\n retryPolicy,\n errorCallback,\n timeoutCount,\n}: IApiCaller) => {\n let axiosConfig: IAxiosConfig = {\n url: url,\n method: method,\n headers: {\n ...headers,\n \"Content-Type\": \"application/json\",\n },\n timeout: timeoutCount ? timeoutCount * 1000 : undefined,\n };\n if (data) {\n if (method === \"GET\")\n axiosConfig = {\n ...axiosConfig,\n params: {\n uuid: store.getState().videoData.params.uuid,\n provider: store.getState().videoData.params.provider === \"unknown\" ? undefined : store.getState().videoData.params.provider,\n ...data,\n },\n };\n else\n axiosConfig = {\n ...axiosConfig,\n data: {\n uuid: store.getState().videoData.params.uuid,\n provider: store.getState().videoData.params.provider === \"unknown\" ? undefined : store.getState().videoData.params.provider,\n ...data,\n },\n };\n } else {\n if (method === \"GET\")\n axiosConfig = {\n ...axiosConfig,\n params: {\n uuid: store.getState().videoData.params.uuid,\n provider: store.getState().videoData.params.provider === \"unknown\" ? undefined : store.getState().videoData.params.provider,\n },\n };\n else\n axiosConfig = {\n ...axiosConfig,\n data: {\n uuid: store.getState().videoData.params.uuid,\n provider: store.getState().videoData.params.provider === \"unknown\" ? undefined : store.getState().videoData.params.provider,\n },\n };\n }\n try {\n return await axios(axiosConfig);\n } catch (error: any) {\n if (error instanceof AxiosError && error.code !== \"ERR_NETWORK\") {\n errorLogProvider({\n type: \"API-ERROR\",\n message: error.message ? error.message : \"\",\n statusCode: error.response && error.response.status ? error.response.status : undefined,\n url,\n });\n }\n\n if (error && error.response && error.response.status === 401) {\n //\n } else {\n if (errorCallback) errorCallback(error.response.status, error.response.message);\n let newRetryDelay = 0,\n newMaxRetryCount = 0;\n if (retryPolicy !== undefined) {\n for (let i = 0; i < retryPolicy.length; i++) {\n if (\n (((retryPolicy[i].codeAbove && error.response.status >= retryPolicy[i].codeAbove!) ||\n (retryPolicy[i].codeBelow && error.response.status <= retryPolicy[i].codeBelow!)) &&\n (retryPolicy[i].excludeCodes.length === 0 || !retryPolicy[i].excludeCodes.includes(error.response.status))) ||\n retryPolicy[i].includeCodes.length === 0 ||\n retryPolicy[i].includeCodes.includes(error.response.status)\n ) {\n newMaxRetryCount = retryPolicy[i].count;\n newRetryDelay = retryPolicy[i].delay;\n break;\n }\n }\n } else {\n newMaxRetryCount = maxRetryCount;\n newRetryDelay = retryCount + 1;\n }\n if (retryCount < newMaxRetryCount) {\n await wait(newRetryDelay);\n return apiCaller({\n url,\n method,\n data,\n headers,\n retryCount: retryCount + 1,\n newMaxRetryCount,\n errorMessage,\n retryPolicy,\n errorCallback,\n });\n } else if (error.response)\n return {\n data: error.response.data ? error.response.data : { detail: \"عملیات با خطا مواجه شده است.\" },\n status: error.response.status,\n };\n }\n }\n};\n\nexport function getAll(path: string, retryPolicy?: IRetryPolicy[], params?: any, retryCount: number = 1, maxRetryCount: number = 0) {\n return new Promise(async (resolve, reject) => {\n // Added reject to the Promise executor function.\n try {\n const url = new URL(path);\n const limit = 1000;\n if (params) {\n Object.keys(params).forEach((key) => {\n if (params[key]) {\n url.searchParams.set(key, params[key]);\n }\n });\n }\n url.searchParams.set(\"limit\", limit.toString());\n const response = await fetch(url.href);\n if (!response.ok) {\n // Check if the response was not ok (status not in the range 200-299).\n throw response;\n }\n const data = await response.json();\n const count = data.count;\n const requestCount = Math.ceil(count / limit) - 1;\n const promises: Array<Promise<any>> = [];\n for (let i = 0; i < requestCount; i++) {\n const offset = i * limit; // Fixed the offset calculation.\n url.searchParams.set(\"offset\", offset.toString());\n const promise: Promise<any> = fetch(url.href).then((res) => {\n if (res.ok) {\n return res.json();\n }\n return res.json().then((err) => Promise.reject(err));\n });\n promises.push(promise);\n }\n Promise.all(promises)\n .then((res) => {\n const results = res.flatMap((item) => item.results);\n resolve([...data.results, ...results]);\n })\n .catch(reject); // Added catch to handle any errors in the Promise.all.\n } catch (error: any) {\n let newRetryDelay = 0,\n newMaxRetryCount = 0;\n if (retryPolicy !== undefined) {\n for (let i = 0; i < retryPolicy.length; i++) {\n if (\n ((retryPolicy[i].codeAbove && error.status >= retryPolicy[i].codeAbove!) ||\n (retryPolicy[i].codeBelow && error.status <= retryPolicy[i].codeBelow!)) &&\n (retryPolicy[i].excludeCodes.length === 0 || !retryPolicy[i].excludeCodes.includes(error.status)) &&\n (retryPolicy[i].includeCodes.length === 0 || retryPolicy[i].includeCodes.includes(error.status))\n ) {\n newMaxRetryCount = retryPolicy[i].count;\n newRetryDelay = retryPolicy[i].delay;\n break;\n }\n }\n if (retryCount < newMaxRetryCount) {\n await wait(newRetryDelay);\n getAll(path, retryPolicy, params, retryCount + 1, newMaxRetryCount);\n }\n }\n }\n });\n}\n","import { sendFluentLog } from \"../logs/fluentdLogger\";\nimport { ExceptionsLog } from \"../logs/logs\";\n\nexport const errorLogProvider = (data?: {type:string, message:string, statusCode?:number, url?:string}) => {\n if(data) sendFluentLog(ExceptionsLog(data.type, data.message, data.statusCode, data.url));\n}\n","import store from \"../redux/store\";\nimport { apiCaller } from \"../services/apiCaller\";\nimport { API } from \"../services/services\";\nimport { getUUID } from \"../helpers\";\n\nexport const sendFluentLog = (data: any) => {\n const { details, params } = store.getState().videoData;\n let _data = {\n ...data,\n timestamp: Date.now(),\n clientUUID: getUUID(),\n uuid: getUUID(),\n link: window.location.href,\n user_id: details.user_id,\n live_id: null,\n format: undefined,\n content_type: details.content_type,\n content_id: details.content_id,\n daaniHashCode: params.daaniHashCode,\n };\n apiCaller({ url: API().logs, method: \"post\", data: _data });\n};\n","import {\n getFluentdUrl,\n getRestApiLiveUrl,\n} from \"./baseUrl\";\n\nexport const API = () => {\n return {\n vod: {\n getVodUrl: `${getRestApiLiveUrl()}/v1/live/details/vod/`,\n getMarkerUrl: (videoId:number) => `${getRestApiLiveUrl()}/v1/live/list-event/vod/${videoId}/`\n },\n videoTimelineLog: `${getFluentdUrl()}/video-timeline.log`,\n logs: `${getFluentdUrl()}/cafevideo-endpoint.log`,\n };\n};","const envs = require(\"../configs/nextConfigs/next.config.js\");\nconst isNpmPackage = require(\"../configs/npmPackage/npmPackage\");\n\nexport const getRestApiLiveUrl = () => (isNpmPackage ? envs.baseUrl : (process.env.baseUrl as string)) + \"/live/api\";\nexport const getFluentdUrl = () => (isNpmPackage ? envs.fluentdUrl : (process.env.fluentdUrl as string));\nexport const getEmojiUrl = () => (isNpmPackage ? envs.baseUrl : (process.env.baseUrl as string)) + \"/emoji\";\n\n","import { conditions } from \"../conditions/conditions\";\nimport { mainPlayerVideoTag } from \"../constants\";\nimport { flattenObject, getUUID } from \"../helpers\";\nimport { ConditionName } from \"../interfaces/enums\";\nimport store from \"../redux/store\";\n\nexport const speedChangeLog = (selectedSpeed: Number) => {\n const { params, details } = store.getState().videoData;\n const { settings } = store.getState().user;\n return {\n category: \"speedChange\",\n previousSelectedSpeed: settings.speed,\n selectedSpeed: selectedSpeed,\n id: Number(params.id),\n type: params.type,\n src: conditions(ConditionName.streamLink) || params.id,\n provider: params.provider,\n };\n};\n\nexport const qualityChangeRequestLog = (selectedQuality: String) => {\n const { params, details } = store.getState().videoData;\n const { qualityLevels, manualQuality, autoQuality } = store.getState().controller;\n return {\n category: \"qualityChangeRequest\",\n currentPlayingQuality: `${qualityLevels[conditions(ConditionName.isAutoQuality) ? (autoQuality ?? manualQuality!) : manualQuality!]}P`,\n previousSelectedQuality: conditions(ConditionName.isAutoQuality) ? \"auto\" : `${qualityLevels[manualQuality!]}P`,\n selectedQuality: selectedQuality,\n id: Number(params.id),\n type: params.type,\n src: conditions(ConditionName.streamLink) || params.id,\n provider: params.provider,\n };\n};\n\nexport const catchUpLoadingLog = (duration: number) => {\n const { params, details } = store.getState().videoData;\n const { qualityLevels, autoQuality } = store.getState().controller;\n const { settings } = store.getState().user;\n\n return {\n category: \"catchUpLoading\",\n previousVideoTime: Number(sessionStorage.getItem(\"previousVideoTime\")),\n currentVideoTime: mainPlayerVideoTag().currentTime,\n duration: duration,\n quality: `${conditions(ConditionName.isAutoQuality) ? qualityLevels[autoQuality!] : qualityLevels[settings.quality]}P`,\n isAutoQuality: conditions(ConditionName.isAutoQuality),\n id: Number(params.id),\n type: params.type,\n src: conditions(ConditionName.streamLink) || params.id,\n provider: params.provider,\n };\n};\n\nexport const backwardForwardLog = (type: string) => {\n const { params, details } = store.getState().videoData;\n return {\n category: type === \"backward\" ? \"backward\" : \"forward\",\n id: Number(params.id),\n type: params.type,\n src: conditions(ConditionName.streamLink) || params.id,\n provider: params.provider,\n };\n};\n\nexport const fullscreenLog = (category: string) => {\n const { params, details } = store.getState().videoData;\n return {\n category: category,\n id: Number(params.id),\n type: params.type,\n src: conditions(ConditionName.streamLink) || params.id,\n };\n};\n\nexport const brightnessLog = (source: number, target: number) => {\n const { params, details } = store.getState().videoData;\n return {\n category: \"brightnessChange\",\n source: source,\n target: target,\n id: Number(params.id),\n type: params.type,\n src: conditions(ConditionName.streamLink) || params.id,\n };\n};\n\nexport const volumeLog = (source: number, target: number) => {\n const { params, details } = store.getState().videoData;\n return {\n category: \"volumeChange\",\n source: source,\n target: target,\n id: Number(params.id),\n type: params.type,\n src: conditions(ConditionName.streamLink) || params.id,\n };\n};\n\nexport const lockLog = (category: string) => {\n const { params, details } = store.getState().videoData;\n return {\n category: category,\n id: Number(params.id),\n type: params.type,\n src: conditions(ConditionName.streamLink) || params.id,\n };\n};\n\nexport const ExceptionsLog = (type: string, message: string, statusCode?: number, url?: string) => {\n return {\n category: \"player-error\",\n type,\n message,\n statusCode,\n url,\n };\n};\n\nexport const videoTimelineLog = (start: number, end: number) => {\n const { params, details } = store.getState().videoData;\n const { duration } = store.getState().controller;\n return {\n category: \"video-timeline\",\n video_id: +params.id!,\n video_type: params.type,\n start: start,\n end: end,\n watchedDuration: end - start,\n video_duration: Math.floor(duration),\n clientUUID: getUUID(),\n user_id: details.user_id,\n content_type: details.content_type,\n content_id: details.content_id,\n };\n};\n\nexport const autoQualityChangeLog = (sourceQuality: String, targetQuality: String, diffQuality: number) => {\n const { params, details } = store.getState().videoData;\n return {\n category: \"autoQualityChange\",\n sourceQuality: sourceQuality,\n targetQuality: targetQuality,\n diffQuality: diffQuality,\n id: Number(params.id),\n type: params.type,\n src: conditions(ConditionName.streamLink) || params.id,\n provider: params.provider,\n };\n};\n\nexport const pingpongLog = (startTimer: number, qualityHistory: number[]) => {\n const { params, details } = store.getState().videoData;\n return {\n category: \"pingpong\",\n id: Number(params.id),\n type: params.type,\n src: conditions(ConditionName.streamLink) || params.id,\n PingPongDuration: Number((new Date().getTime() - startTimer).toFixed(2)),\n PingPongSourceQuality: `${qualityHistory[0]}P`, // A A->B && B->A\n PingPongTargetQuality: `${qualityHistory[1]}P`, // B,\n provider: params.provider,\n };\n};\n\nexport const pausePlayLog = (isPlay: boolean) => {\n const { params, details } = store.getState().videoData;\n return {\n category: isPlay ? \"playVideo\" : \"pauseVideo\",\n id: Number(params.id),\n type: params.type,\n src: conditions(ConditionName.streamLink) || params.id,\n provider: params.provider,\n };\n};\n\nexport const initLog = (loadingTime: number, waitingTime: number, bannerLoadingTime: number, firstChunkPlayingTime: number, timerRef: any) => {\n const { params, details } = store.getState().videoData;\n const totalTime = Date.now() - timerRef.current + loadingTime + waitingTime;\n const memory = (window.performance as any).memory;\n const timing = JSON.parse(JSON.stringify((window.performance as any).timing));\n return {\n category: \"initLog\",\n id: Number(params.id),\n type: params.type,\n origin: new URL(conditions(ConditionName.streamLink) || params.id!).origin,\n src: conditions(ConditionName.streamLink) || params.id,\n loading: loadingTime,\n bannerLoading: !conditions(ConditionName.hasBanner) || bannerLoadingTime < 0 ? 0 : bannerLoadingTime,\n waiting: waitingTime,\n firstChunkPlaying: firstChunkPlayingTime < 0 ? 0 : firstChunkPlayingTime,\n totalTime: totalTime,\n provider: params.provider,\n performance: flattenObject({ memory, timing }, \"performance\"),\n userAgent: window.navigator.userAgent,\n };\n};\n\nexport const loadingLog = (waitingDuration: number, qualityLevel: number, timerRef: any, loadingCounterRef: any, videoEntranceTime: number) => {\n const { params, details } = store.getState().videoData;\n const { settings } = store.getState().user;\n const previousLoaderDiff = Date.now() - timerRef.current;\n return {\n category: \"loading\",\n id: Number(params.id),\n type: params.type,\n src: conditions(ConditionName.streamLink) || params.id,\n duration: waitingDuration,\n quality: `${qualityLevel}P`,\n isAutoQuality: conditions(ConditionName.isAutoQuality),\n previousLoaderDiff: previousLoaderDiff,\n counter: loadingCounterRef.current,\n loadingPercentile: Number((waitingDuration / previousLoaderDiff).toFixed(2)),\n videoTime: mainPlayerVideoTag().currentTime,\n videoEntranceTime: videoEntranceTime,\n speed: settings.speed,\n provider: params.provider,\n };\n};\n\nexport const subtitleLog = (language: string) => {\n const { params, details } = store.getState().videoData;\n return {\n category: \"subtitle\",\n language: language,\n id: Number(params.id),\n type: params.type,\n src: conditions(ConditionName.streamLink) || params.id,\n };\n};\n\nexport const eventMarkerClickLog = (markerId: Number, markerTime: Number, markerTitle: String, markerDescription: String, markerSticker: String) => {\n const { params, details } = store.getState().videoData;\n return {\n category: \"eventMarkerClick\",\n video_id: Number(params.id),\n markerId: markerId,\n markerTime: markerTime,\n markerTitle: markerTitle,\n markerDescription: markerDescription,\n markerSticker: markerSticker,\n type: params.type,\n src: conditions(ConditionName.streamLink) || params.id,\n provider: params.provider,\n };\n};\n","import store from \"./redux/store\";\n\nexport const mainPlayerVideoTag = () => document.getElementById(\"player-tag\") as HTMLVideoElement;\nexport const miniPlayerVideoTag = () => document.getElementById(\"mini-player-video-tag\") as HTMLVideoElement;\n\nexport const playerControllbar = () => document.getElementById(\"player-controllbar\") as any;\n\nexport const progressBar = () => document.getElementById(\"time-progress-bar\") as any;\nexport const progressArea = () => document.getElementById(\"progress-area\") as any;\nexport const progressContainer = () => document.getElementById(\"time-progress-container\") as any;\n\nexport const progressBarWidth = () => store.getState().videoData.videoElementSizeInfo.width;\n\nexport const progressTrack = () => document.getElementById(\"time-progress-area\") as any;\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {a as a$1}from'./chunk-B2LB3L3X.mjs';import {a}from'./chunk-XKRBXZUB.mjs';import {fa,ea,t,Y,X,V}from'./chunk-NLCBOGTI.mjs';import {e,A}from'./chunk-4QMWBTB5.mjs';import z from'next/image';import {jsxs,jsx}from'react/jsx-runtime';import {shallowEqual}from'react-redux';import {useState}from'react';e();var E=({className:s})=>jsxs("div",{className:ea(`pl-cursor-default pl-flex pl-items-center pl-bg-white pl-rounded-[4px] ${s}`,{desktop:"pl-gap-2 pl-absolute pl-z-10 pl-h-9 pl-px-2 pl-top-[28px] pl-right-[18px] ",desktopFullScreen:"pl-h-12 pl-px-3 pl-top-[46px] pl-right-[29px]",touch:"pl-gap-1.5 pl-h-6 pl-px-2",touchFullScreen:"pl-gap-2 pl-h-[36px] pl-px-2"}),children:[jsx(z,{alt:"mute",width:fa({desktop:24,desktopFullScreen:32,touch:16,touchFullScreen:24}),height:fa({desktop:24,desktopFullScreen:32,touch:16,touchFullScreen:24}),src:a.mute2,className:"pl-cursor-pointer"}),jsx("p",{className:ea("pl-font-medium pl-whitespace-nowrap pl-text-black",{desktopFullScreen:"pl-text-[14px]",desktop:"pl-text-[12px]",touch:"pl-text-[10px]",touchFullScreen:"pl-text-[12px]"}),children:"\u0628\u0631\u0627\u06CC \u067E\u062E\u0634 \u0635\u062F\u0627 \u0631\u0648\u06CC \u0648\u06CC\u062F\u06CC\u0648 \u0628\u0632\u0646\u06CC\u062F"})]}),q=E;e();var T=()=>jsx("div",{className:"pl-absolute pl-inset-0 pl-rounded-[12px] pl-flex pl-items-center pl-justify-center pl-size-full pl-overflow-hidden",children:jsx("div",{className:ea("loader-spinner",{desktop:"loader-spinner-desktop",desktopFullScreen:"loader-spinner-fullscreen",touch:"loader-spinner-touch",touchFullScreen:"loader-spinner-touchFullscreen"})})}),j=T;e();var D=({width:s,height:F,disableTooltip:n,disableScale:w,className:y,inverse:N,normalStyle:r})=>{let{firstMute:M}=A(({controller:{play:e,firstMute:a}})=>({play:e,firstMute:a}),shallowEqual);A(({videoData:{videoElementSizeInfo:e,params:a}})=>({videoElementSizeInfo:e,params:a}),shallowEqual);let[C,m]=useState(false),i=N?!t("isPlay"):t("isPlay");return jsxs("div",{onClick:e=>{M?(Y(50),X()):V(e);},onDoubleClick:e=>e.stopPropagation(),onMouseOver:n?void 0:()=>!t("isTouchScreen")&&m(true),onMouseLeave:n?void 0:()=>!t("isTouchScreen")&&m(false),onContextMenu:e=>e.preventDefault(),className:ea(`pl-relative pl-flex pl-items-center pl-justify-center pl-cursor-pointer ${r?"":"pl-bg-black/75 pl-rounded-full pl-group"} ${y}`,r?void 0:{desktop:"pl-size-[34px]",desktopFullScreen:"pl-size-[48px]"}),children:[jsx("div",{className:ea(`pl-flex pl-items-center pl-justify-center pl-transition-all ${r?"":"pl-rounded-full group-hover:pl-bg-[#5E5E5E]"}`,r?void 0:{desktop:"pl-size-[26px]",desktopFullScreen:"pl-size-[36px]"}),children:jsx(z,{alt:"",src:i?a.bigPause:a.bigPlay,width:s,height:F,className:`pl-transition-transform pl-ease-in-out ${i?"pl-big-play-icon":"pl-big-pause-icon"} ${!t("isTouchScreen")&&!w&&"hover:pl-"}`})}),C&&!n&&jsx(a$1,{className:"pl-left-0",title:i?"\u067E\u062E\u0634 (K)":"\u062A\u0648\u0642\u0641 (K)"})]})},se=D;export{j as a,se as b,q as c};//# sourceMappingURL=chunk-P46UX5ND.mjs.map
|
|
2
|
+
//# sourceMappingURL=chunk-P46UX5ND.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/videoPlayerLibrary/components/custom-components/soundVolumeAlert/SoundVolumeAlert.tsx","../src/videoPlayerLibrary/components/custom-components/loader/loader.tsx","../src/videoPlayerLibrary/components/custom-components/playPause/playPause.tsx"],"names":["init_esm_shims","SoundVolumeAlert","className","jsxs","tw","jsx","Image","styleMerge","importImages_default","SoundVolumeAlert_default","Loader","loader_default","PlayPause","width","height","disableTooltip","disableScale","inverse","normalStyle","firstMute","useAppSelector","play","shallowEqual","videoElementSizeInfo","params","showTooltip","setShowTooltip","useState","isPlay","conditions","event","handleChangeSoundVolume","firstUnMuteHandler","handlePlayPause","controllbarTooltip_default","playPause_default"],"mappings":"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","file":"chunk-P46UX5ND.mjs","sourcesContent":["import Image from \"next/image\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport { styleMerge, tw } from \"../../../helpers/helpers\";\r\n\r\nconst SoundVolumeAlert = ({ className }: { className?: string }) => {\r\n return (\r\n <div\r\n className={tw(`pl-cursor-default pl-flex pl-items-center pl-bg-white pl-rounded-[4px] ${className}`, {\r\n desktop: \"pl-gap-2 pl-absolute pl-z-10 pl-h-9 pl-px-2 pl-top-[28px] pl-right-[18px] \",\r\n desktopFullScreen: \"pl-h-12 pl-px-3 pl-top-[46px] pl-right-[29px]\",\r\n touch: \"pl-gap-1.5 pl-h-6 pl-px-2\",\r\n touchFullScreen: \"pl-gap-2 pl-h-[36px] pl-px-2\",\r\n })}\r\n >\r\n <Image\r\n alt=\"mute\"\r\n width={styleMerge({ desktop: 24, desktopFullScreen: 32, touch: 16, touchFullScreen: 24 })}\r\n height={styleMerge({ desktop: 24, desktopFullScreen: 32, touch: 16, touchFullScreen: 24 })}\r\n src={IMAGES.mute2}\r\n className={\"pl-cursor-pointer\"}\r\n />\r\n <p\r\n className={tw(\"pl-font-medium pl-whitespace-nowrap pl-text-black\", {\r\n desktopFullScreen: \"pl-text-[14px]\",\r\n desktop: \"pl-text-[12px]\",\r\n touch: \"pl-text-[10px]\",\r\n touchFullScreen: \"pl-text-[12px]\",\r\n })}\r\n >\r\n برای پخش صدا روی ویدیو بزنید\r\n </p>\r\n </div>\r\n );\r\n};\r\n\r\nexport default SoundVolumeAlert;\r\n","import { tw } from \"../../../helpers/helpers\";\n\nconst Loader = () => {\n return (\n <div className={`pl-absolute pl-inset-0 pl-rounded-[12px] pl-flex pl-items-center pl-justify-center pl-size-full pl-overflow-hidden`}>\n <div\n className={tw(\"loader-spinner\", {\n desktop: \"loader-spinner-desktop\",\n desktopFullScreen: \"loader-spinner-fullscreen\",\n touch: \"loader-spinner-touch\",\n touchFullScreen: \"loader-spinner-touchFullscreen\",\n })}\n ></div>\n </div>\n );\n};\n\nexport default Loader;\n","import { shallowEqual } from \"react-redux\";\r\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport { firstUnMuteHandler, handleChangeSoundVolume, handlePlayPause } from \"../../../helpers/redux/actions/controller.actions\";\r\nimport Image from \"next/image\";\r\nimport ControllbarTooltip from \"../footer/controllbar/controllbarTooltip\";\r\nimport { useState } from \"react\";\r\nimport { tw } from \"../../../helpers/helpers\";\r\n\r\ninterface PlayPauseProps {\r\n width?: number;\r\n height?: number;\r\n disableTooltip?: boolean;\r\n disableScale?: boolean;\r\n className?: string;\r\n normalStyle?: boolean;\r\n inverse?: boolean;\r\n}\r\n\r\nconst PlayPause: React.FC<PlayPauseProps> = ({ width, height, disableTooltip, disableScale, className, inverse, normalStyle }) => {\r\n const { firstMute } = useAppSelector(({ controller: { play, firstMute } }) => ({ play, firstMute }), shallowEqual);\r\n useAppSelector(({ videoData: { videoElementSizeInfo, params } }) => ({ videoElementSizeInfo, params }), shallowEqual);\r\n\r\n const [showTooltip, setShowTooltip] = useState<boolean>(false);\r\n\r\n const isPlay = inverse ? !conditions(ConditionName.isPlay) : conditions(ConditionName.isPlay);\r\n\r\n return (\r\n <div\r\n onClick={(event: any) => {\r\n if (firstMute) {\r\n handleChangeSoundVolume(50);\r\n firstUnMuteHandler();\r\n } else handlePlayPause(event);\r\n }}\r\n onDoubleClick={(event: any) => event.stopPropagation()}\r\n onMouseOver={disableTooltip ? undefined : () => !conditions(ConditionName.isTouchScreen) && setShowTooltip(true)}\r\n onMouseLeave={disableTooltip ? undefined : () => !conditions(ConditionName.isTouchScreen) && setShowTooltip(false)}\r\n onContextMenu={(event) => event.preventDefault()}\r\n className={tw(\r\n `pl-relative pl-flex pl-items-center pl-justify-center pl-cursor-pointer ${\r\n normalStyle ? \"\" : \"pl-bg-black/75 pl-rounded-full pl-group\"\r\n } ${className}`,\r\n normalStyle ? undefined : { desktop: \"pl-size-[34px]\", desktopFullScreen: \"pl-size-[48px]\" }\r\n )}\r\n >\r\n <div\r\n className={tw(\r\n `pl-flex pl-items-center pl-justify-center pl-transition-all ${normalStyle ? \"\" : \"pl-rounded-full group-hover:pl-bg-[#5E5E5E]\"}`,\r\n normalStyle\r\n ? undefined\r\n : {\r\n desktop: \"pl-size-[26px]\",\r\n desktopFullScreen: \"pl-size-[36px]\",\r\n }\r\n )}\r\n >\r\n <Image\r\n alt=\"\"\r\n src={isPlay ? IMAGES.bigPause : IMAGES.bigPlay}\r\n width={width}\r\n height={height}\r\n className={`pl-transition-transform pl-ease-in-out ${isPlay ? \"pl-big-play-icon\" : \"pl-big-pause-icon\"} ${\r\n !conditions(ConditionName.isTouchScreen) && !disableScale && \"hover:pl-\"\r\n }`}\r\n />\r\n </div>\r\n\r\n {showTooltip && !disableTooltip && <ControllbarTooltip className=\"pl-left-0\" title={isPlay ? \"پخش (K)\" : \"توقف (K)\"} />}\r\n </div>\r\n );\r\n};\r\n\r\nexport default PlayPause;\r\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {Aa,ca,w,G}from'./chunk-NLCBOGTI.mjs';import {e,z as z$1,A,m}from'./chunk-4QMWBTB5.mjs';import {useEffect}from'react';import {shallowEqual}from'react-redux';e();var p=()=>{let t=z$1();A(({videoData:{params:e}})=>({params:e}),shallowEqual),useEffect(()=>{let e=()=>{let l=document.fullscreenElement,{params:f}=Aa.getState().videoData;f.onFullscreenChange?.(!!l),l?t(m(true)):(t(m(false)),ca(),w(G("exitFullScreen")),document.body.style.overflow="auto");};document.addEventListener&&(document.addEventListener("webkitfullscreenchange",e,false),document.addEventListener("mozfullscreenchange",e,false),document.addEventListener("fullscreenchange",e,false),document.addEventListener("MSFullscreenChange",e,false));},[]);},z=p;export{z as a};//# sourceMappingURL=chunk-P4O3IKAQ.mjs.map
|
|
2
|
+
//# sourceMappingURL=chunk-P4O3IKAQ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/videoPlayerLibrary/helpers/hooks/useFullScreen.tsx"],"names":["init_esm_shims","useFullScreen","dispatch","useAppDispatch","useAppSelector","params","shallowEqual","useEffect","handleChangeFullScreen","isFullScreen","store_default","setIsFullScreen","handleVideoElementSizeInfo","sendFluentLog","fullscreenLog","useFullScreen_default"],"mappings":"oKAAAA,CAAAA,EAAAA,CASA,IAAMC,CAAAA,CAAgB,IAAM,CAC1B,IAAMC,CAAAA,CAAWC,GAAAA,EAAe,CAChCC,CAAAA,CAAe,CAAC,CAAE,UAAW,CAAE,MAAA,CAAAC,CAAO,CAAE,CAAA,IAAO,CAAE,OAAAA,CAAO,CAAA,CAAA,CAAIC,YAAY,CAAA,CAGxEC,SAAAA,CAAU,IAAM,CACd,IAAMC,CAAAA,CAAyB,IAAM,CACnC,IAAMC,CAAAA,CAAe,SAAS,iBAAA,CACxB,CAAE,MAAA,CAAAJ,CAAO,CAAA,CAAIK,EAAAA,CAAM,QAAA,EAAS,CAAE,SAAA,CACpCL,CAAAA,CAAO,kBAAA,GAAqB,CAAC,CAACI,CAAY,EAEtCA,CAAAA,CAAcP,CAAAA,CAASS,CAAAA,CAAgB,IAAI,CAAC,CAAA,EAE9CT,EAASS,CAAAA,CAAgB,KAAK,CAAC,CAAA,CAC/BC,EAAAA,EAA2B,CAC3BC,EAAcC,CAAAA,CAAc,gBAAgB,CAAC,CAAA,CAC7C,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,QAAA,CAAW,MAAA,EAEnC,CAAA,CAEI,QAAA,CAAS,gBAAA,GACX,QAAA,CAAS,gBAAA,CAAiB,yBAA0BN,CAAAA,CAAwB,KAAK,CAAA,CACjF,QAAA,CAAS,gBAAA,CAAiB,qBAAA,CAAuBA,EAAwB,KAAK,CAAA,CAC9E,QAAA,CAAS,gBAAA,CAAiB,kBAAA,CAAoBA,CAAAA,CAAwB,KAAK,CAAA,CAC3E,QAAA,CAAS,gBAAA,CAAiB,oBAAA,CAAsBA,CAAAA,CAAwB,KAAK,CAAA,EASjF,CAAA,CAAG,EAAE,EACP,CAAA,CAEOO,CAAAA,CAAQd","file":"chunk-P4O3IKAQ.mjs","sourcesContent":["import { useEffect } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nimport { useAppDispatch, useAppSelector } from \"../redux/hooks\";\nimport { setIsFullScreen } from \"../redux/slices/controllerSlice\";\nimport { handleVideoElementSizeInfo } from \"../redux/actions/controller.actions\";\nimport { fullscreenLog } from \"../logs/logs\";\nimport { sendFluentLog } from \"../logs/fluentdLogger\";\nimport store from \"../redux/store\";\n\nconst useFullScreen = () => {\n const dispatch = useAppDispatch();\n useAppSelector(({ videoData: { params } }) => ({ params }), shallowEqual);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n const handleChangeFullScreen = () => {\n const isFullScreen = document.fullscreenElement;\n const { params } = store.getState().videoData;\n params.onFullscreenChange?.(!!isFullScreen);\n\n if (isFullScreen) dispatch(setIsFullScreen(true));\n else {\n dispatch(setIsFullScreen(false));\n handleVideoElementSizeInfo();\n sendFluentLog(fullscreenLog(\"exitFullScreen\"));\n document.body.style.overflow = \"auto\";\n }\n };\n\n if (document.addEventListener) {\n document.addEventListener(\"webkitfullscreenchange\", handleChangeFullScreen, false);\n document.addEventListener(\"mozfullscreenchange\", handleChangeFullScreen, false);\n document.addEventListener(\"fullscreenchange\", handleChangeFullScreen, false);\n document.addEventListener(\"MSFullscreenChange\", handleChangeFullScreen, false);\n }\n\n () => {\n document.removeEventListener(\"webkitfullscreenchange\", handleChangeFullScreen, false);\n document.removeEventListener(\"mozfullscreenchange\", handleChangeFullScreen, false);\n document.removeEventListener(\"fullscreenchange\", handleChangeFullScreen, false);\n document.removeEventListener(\"MSFullscreenChange\", handleChangeFullScreen, false);\n };\n }, []);\n};\n\nexport default useFullScreen;\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {b}from'./chunk-HOAJ3EFI.mjs';import {x,y,P,ga,la,Aa,ra,t,l,$,f as f$1,w,K,j,L,M,ba,ya,s as s$1}from'./chunk-NLCBOGTI.mjs';import {e,i,n,l as l$1,f,h,o,s,g,u,k,j as j$1,r,m}from'./chunk-4QMWBTB5.mjs';e();var ge=e=>{e.preventDefault();let t=(x()||y()).error;if(t)switch(t.code){case t.MEDIA_ERR_ABORTED:P({type:"videoTagError",message:"You aborted the video playback."});break;case t.MEDIA_ERR_NETWORK:P({type:"videoTagError",message:"A network error caused the video download to fail part-way."});break;case t.MEDIA_ERR_DECODE:P({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:P({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:P({type:"videoTagError",message:"An unknown error occurred."});break}else P({type:"videoTagError",message:"An error occurred, but the error object is not available."});},G=()=>{let e=Aa.dispatch,{params:t}=Aa.getState().videoData,a=n=>{n.requestFullScreen?n.requestFullScreen():n.mozRequestFullScreen?n.mozRequestFullScreen():n.webkitRequestFullScreen&&n.webkitRequestFullScreen();};e(s$1()),a(document.documentElement),e(m(t.fullscreen==="true"));},Te=()=>{let e=".ts",t=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(){arguments[1].endsWith(e)&&(arguments[1]=arguments[1]+"?uuid="+ga()),t.apply(this,arguments);};},Z=(e,t)=>{let a=Aa.dispatch;t.current=setInterval(()=>{if(e.buffered.length>0&&e.duration>0){let o=e.buffered.end(e.buffered.length-1)/e.duration*100;a(n(o));}else a(n(0));},500);},xe=()=>{let e=la("mainPlayer");return {xhrSetup:(t,a)=>{a?.split("m3u8")[1]||(a=`${a}${e}`),t.open("GET",a,true);},startLevel:-1,debug:false,enableWorker:true,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}}}}},Se=()=>{let e=la("miniPlayer");return {xhrSetup:(t,a)=>{a=`${a}${e}`,t.open("GET",a,true);},startLevel:1,debug:false,maxMaxBufferLength:60,playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:1e3,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1e3,retryDelayMs:1e3,maxRetryDelayMs:1e3}}}}},De=(e,t$1)=>{let a=Aa.dispatch,n=[],o=[];if(e.levels.map(i=>{n.push(i.attrs.RESOLUTION?.split("x")[1].trim()),o.push(i.attrs.RESOLUTION);}),e.autoLevelCapping=ra(o,window.innerWidth,window.innerHeight),a(i(n)),["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","msfullscreenchange"].forEach(i=>document.addEventListener(i,()=>{t("isAutoQuality")&&(e.autoLevelCapping=ra(o,window.innerWidth,window.innerHeight),e.nextLevel=-1);},false)),t$1.audioTracks.length>0){let i=t$1.audioTracks.sort(l=>l.default===true?-1:1);a(l(i));}},X=(e,t$1,a)=>{if(t$1.frag.type!=="audio"){let n=Aa.dispatch,{settings:o}=Aa.getState().user,{qualityLevels:i,manualQuality:l,autoQuality:h}=Aa.getState().controller;t("isAutoQuality")?t("isAutoQuality")&&h===void 0?(e.nextLevel=-1,a(i[t$1.frag.level]),n(j$1(t$1.frag.level))):t("isAutoQuality")&&(a(i[t$1.frag.level]),h!==t$1.frag.level&&n(j$1(t$1.frag.level))):(t$1.frag.level!==l&&(e.nextLevel=i[o.quality]?o.quality:-1),i[o.quality]?(n(r(o.quality)),n(j$1(void 0))):(a(i[t$1.frag.level]),n(j$1(t$1.frag.level)),n(ya({...o,quality:-1}))));}},ve=(e,t)=>{let a=Aa.dispatch,o=e.mainForwardBufferInfo?.end/t.duration*100;a(n(o));},Pe=(e,t,a)=>{let{params:n,multiAudio:o,selectedAudioId:i}=Aa.getState().videoData;o&&i!==void 0&&i!==e.audioTrack&&(e.audioTrack=i),n.type&&X(e,t,a);},Le=(e,t,a)=>{let{type:n}=Aa.getState().videoData.params;n&&X(e,t,a);},Me=e=>{if(e.event!=="hlsAudioTrackLoading")return {type:"HLS_"+e.type,message:e.error.message}},be=(e,t)=>{let a=Aa.dispatch;e.preventDefault(),t.current=Date.now(),a(l$1(true));},Ee=(e,t$1)=>{if(t("isIOS")&&t("isFirstPlay"))return;let a=Aa.dispatch;e.preventDefault(),t$1.current=0,a(l$1(true));},Re=(e,t$1,a)=>{let n=Aa.dispatch,{videoSettings:o}=Aa.getState().user,{params:i}=Aa.getState().videoData,{currentTime:l}=Aa.getState().controller;e.preventDefault(),t$1.current=Date.now(),n(f(true)),t("hasOnPlayParams")&&i.onPlay(l),t("isFirstPlay")&&(t("hasCurrentTimeParams")||(a.currentTime=o.time,n(h(o.time))),t("hasFullScreenParams")&&G(),t("isFullScreen")&&$(),n(f$1([Math.floor(a.currentTime)])),t("hasRawSubtitles")&&b()),w(K(true)),n(j(""));},Ve=(e,t,a,n,o$1,i,l,h,j)=>{let K=Aa.dispatch,{autoQuality:w$1,canPlayVideo:Y,firstPlay:J,qualityLevels:C}=Aa.getState().controller,{settings:k}=Aa.getState().user,A=k.quality===-1&&w$1?C[w$1]:C[k.quality],g=0;l.current&&(g=Date.now()-l.current),J&&j.played&&w(L(t.current,Date.now()-a.current,n.current-a.current,Date.now()-o$1.current,o$1)),K(o(false)),Y&&g>0&&A!==void 0&&(i.current=g,l.current=0,w(M(g,A,o$1,e,h.current)),e.current=e.current+1,o$1.current=Date.now());},Fe=e=>{let t$1=Aa.dispatch,{params:a}=Aa.getState().videoData;e.preventDefault(),w(K(false)),t$1(f(false)),t("hasOnPauseParams")&&a.onPause();},we=e=>{let t$1=Aa.dispatch,{onChangeCurrentTime:a}=Aa.getState().videoData.params,{selectedSubtitle:n}=Aa.getState().videoData;e.preventDefault(),t$1(h(e.target.currentTime)),t("hasOnChangeCurrentTime")&&a(e.target.currentTime),t("hasActiveCue")&&t$1(j(n.activeCues[0].text));},Ce=e=>{let t=Aa.dispatch,{settings:a}=Aa.getState().user;t(l$1(false)),t(s(true)),e.volume=a.volume/100,t(g(e.duration));},ke=(e,t$1)=>{let a=Aa.dispatch,{params:n}=Aa.getState().videoData;e.preventDefault(),a(u(true)),a(k(true)),ba(t$1.duration),t("hasOnFinishedParams")&&n.onFinished();},Ae=(e,t)=>{e.preventDefault(),t.current=Date.now();},Oe=()=>{let e=Aa.dispatch;e(l$1(false)),e(o(false));},Ie=e=>{let{onChangeCurrentTime:t$1}=Aa.getState().videoData.params,a=Aa.dispatch;e.preventDefault(),t("hasOnChangeCurrentTime")&&t$1(e.target.currentTime),a(h(e.target.currentTime));},qe=()=>{let e=Aa.dispatch,{params:t$1}=Aa.getState().videoData;e(u(true)),e(k(true)),t("hasOnFinishedParams")&&t$1.onFinished();},He=e=>{let t=Aa.dispatch;e.preventDefault(),t(f(false));},Be=(e,t$1)=>{let a=Aa.dispatch,{params:n}=Aa.getState().videoData,{currentTime:o}=Aa.getState().controller;e.preventDefault(),a(f(true)),t$1.current=Date.now(),a(j("")),t("hasOnPlayParams")&&n.onPlay(o),t("isFirstPlay")&&(t("hasRawSubtitles")&&b(),t("hasFullScreenParams")&&(G(),t("isFullScreen")&&$()));},Ne=(e,t,a,n)=>{let o$1=Aa.dispatch,{firstPlay:i}=Aa.getState().controller;o$1(l$1(false)),i&&n.played&&w(L(Math.round(e.current),Date.now()-t.current,0,Date.now()-a.current,a)),o$1(o(false));},_e=e=>{let{onChangeCurrentTime:t$1}=Aa.getState().videoData.params,a=Aa.dispatch,{selectedSubtitle:n}=Aa.getState().videoData;e.preventDefault(),a(h(e.target.currentTime)),a(g(e.target.duration)),t("hasOnChangeCurrentTime")&&t$1(e.target.currentTime),t("hasActiveCue")&&a(j(n.activeCues[0].text));},Qe=()=>{let e=Aa.dispatch;e(l$1(false)),e(s(true));},Ue=(e,t)=>Z(t,e),We=e=>{let t$1=Aa.dispatch,{params:a}=Aa.getState().videoData;t$1(u(true)),t$1(k(true)),t("hasOnFinishedParams")&&a.onFinished(),e.preventDefault();},$e=async e=>{let{stream_link:t}=Aa.getState().miniPlayer.details;e.loadSource(t);},ze=e=>ba(e.currentTime);export{Ue as A,We as B,$e as C,ze as D,ge as a,Te as b,xe as c,Se as d,De as e,ve as f,Pe as g,Le as h,Me as i,be as j,Ee as k,Re as l,Ve as m,Fe as n,we as o,Ce as p,ke as q,Ae as r,Oe as s,Ie as t,qe as u,He as v,Be as w,Ne as x,_e as y,Qe as z};//# sourceMappingURL=chunk-QFADUEGX.mjs.map
|
|
2
|
+
//# sourceMappingURL=chunk-QFADUEGX.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/videoPlayerLibrary/helpers/redux/actions/playerCore.actions.ts"],"names":["init_esm_shims","handleVideoError","event","error","mainPlayerVideoTag","miniPlayerVideoTag","errorLogProvider","handleAutoFullScreen","dispatch","store_default","params","launchFullScreen","element","setClearPopoversSlice","setIsFullScreen","appendQueryParamsToChunksIOS","fragmentExtension","originalOpen","getUUID","handleBufferedTime","video","intervalRef","bufferedTimeWidth","setBufferedTimeWidth","handleHlsConfig","streamLinkParams","splitQueryParamsFromStreamLink","xhr","url","handleMiniPlayerHlsConfig","handleManifestParsed","hls","data","qualityLevels","resolutions","level","highestResolutionSupported","setQualityLevels","eventType","conditions","sortedAudioTracks","a","setMultiAudio","handleLevels","setQualityLevel","settings","manualQuality","autoQuality","setAutoQuality","setManualQuality","setUserSettings","handleFragBuffered","handleFragChanged","multiAudio","selectedAudioId","handleFragParsed","type","handleHlsErrors","handleVideoWaiting","waitingTimerRef","setIsLoading","handleVideoSeeking","handleVideoPlay","timerRef","videoSettings","currentTime","setPlay","setCurrentTime","handleLockOrientation","setVideoTimelines","handleSubtitle","sendFluentLog","pausePlayLog","setSubtitleText","handleVideoPlaying","loadingCounterRef","loadingDurationRef","initialWaitingDurationRef","bannerLoadingDurationRef","waitingDurationRef","videoEntranceTimeRef","canPlayVideo","firstPlay","qualityLevel","waitingDuration","initLog","setFirstPlay","loadingLog","handleVideoPause","handleVideoTimeUpdate","onChangeCurrentTime","selectedSubtitle","handleVideoCanPlay","setCanPlayVideo","setDuration","handleVideoEnded","setIsEnded","setActiveElements","handleVideoTimeline","handleIosVideoPlay","handleIosVideoPlaying","handleIosVideoTimeUpdate","handleIosVideoEnded","handleStaticVideoPause","handleStaticVideoPlay","handleStaticVideoPlaying","handleStaticVideoTimeUpdate","handleStaticVideoCanPlay","handleStaticVideoLoadedData","handleStaticVideoEnded","handleMiniPlayerMediaAttached","stream_link","handleVideoVisibilityChange"],"mappings":"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","file":"chunk-QFADUEGX.mjs","sourcesContent":["import { conditions } from \"../../conditions/conditions\";\nimport { mainPlayerVideoTag, miniPlayerVideoTag } from \"../../constants\";\nimport { errorLogProvider } from \"../../errorBoundary/errorBoundaryFunctions\";\nimport { getUUID, highestResolutionSupported, splitQueryParamsFromStreamLink } from \"../../helpers\";\nimport { ConditionName } from \"../../interfaces/enums\";\nimport { sendFluentLog } from \"../../logs/fluentdLogger\";\nimport { initLog, loadingLog, pausePlayLog } from \"../../logs/logs\";\nimport {\n setActiveElements,\n setAutoQuality,\n setBufferedTimeWidth,\n setCanPlayVideo,\n setCurrentTime,\n setDuration,\n setFirstPlay,\n setIsEnded,\n setIsFullScreen,\n setIsLoading,\n setManualQuality,\n setPlay,\n setQualityLevels,\n} from \"../slices/controllerSlice\";\nimport { setClearPopoversSlice } from \"../slices/popoversSlice\";\nimport { setUserSettings } from \"../slices/userSlice\";\nimport { setMultiAudio, setSubtitleText, setVideoTimelines } from \"../slices/videoDataSlice\";\nimport store from \"../store\";\nimport { handleLockOrientation, handleVideoTimeline } from \"./controller.actions\";\nimport { handleSubtitle } from \"./videoData.actions\";\n\nexport const handleVideoError = (event: any) => {\n event.preventDefault();\n // Access the error property from the video element\n let error = (mainPlayerVideoTag() || miniPlayerVideoTag()).error;\n if (error) {\n switch (error.code) {\n case error.MEDIA_ERR_ABORTED:\n errorLogProvider({\n type: \"videoTagError\",\n message: \"You aborted the video playback.\",\n });\n break;\n case error.MEDIA_ERR_NETWORK:\n errorLogProvider({\n type: \"videoTagError\",\n message: \"A network error caused the video download to fail part-way.\",\n });\n break;\n case error.MEDIA_ERR_DECODE:\n errorLogProvider({\n type: \"videoTagError\",\n message: \"The video playback was aborted due to a corruption problem or because the video used features your browser did not support.\",\n });\n break;\n case error.MEDIA_ERR_SRC_NOT_SUPPORTED:\n errorLogProvider({\n type: \"videoTagError\",\n message: \"The video could not be loaded, either because the server or network failed or because the format is not supported.\",\n });\n break;\n default:\n errorLogProvider({\n type: \"videoTagError\",\n message: \"An unknown error occurred.\",\n });\n break;\n }\n } else {\n errorLogProvider({\n type: \"videoTagError\",\n message: \"An error occurred, but the error object is not available.\",\n });\n }\n};\n\nexport const handleAutoFullScreen = () => {\n const dispatch = store.dispatch;\n const { params } = store.getState().videoData;\n const launchFullScreen = (element: any) => {\n if (element.requestFullScreen) element.requestFullScreen();\n else if (element.mozRequestFullScreen) element.mozRequestFullScreen();\n else if (element.webkitRequestFullScreen) element.webkitRequestFullScreen();\n };\n dispatch(setClearPopoversSlice());\n launchFullScreen(document.documentElement);\n dispatch(setIsFullScreen(params.fullscreen === \"true\"));\n};\n\nexport const appendQueryParamsToChunksIOS = () => {\n let fragmentExtension = \".ts\";\n let originalOpen = XMLHttpRequest.prototype.open;\n XMLHttpRequest.prototype.open = function () {\n if (arguments[1].endsWith(fragmentExtension)) arguments[1] = arguments[1] + \"?uuid=\" + getUUID!();\n originalOpen.apply(this, arguments as any);\n };\n};\n\nexport const handleBufferedTime = (video: any, intervalRef: any) => {\n const dispatch = store.dispatch;\n\n intervalRef.current = setInterval(() => {\n // چک کردن طول buffered قبل از دسترسی\n if (video.buffered.length > 0 && video.duration > 0) {\n const bufferedTime = video.buffered.end(video.buffered.length - 1); // استفاده از آخرین index برای ایمنی\n const bufferedTimeWidth = (bufferedTime / video.duration) * 100;\n dispatch(setBufferedTimeWidth(bufferedTimeWidth));\n } else {\n dispatch(setBufferedTimeWidth(0));\n }\n }, 500);\n};\n\n// ************* Hls Config Handlers ************* //\nexport const handleHlsConfig = () => {\n const streamLinkParams = splitQueryParamsFromStreamLink(\"mainPlayer\");\n\n return {\n xhrSetup: (xhr: any, url: any) => {\n if (!url?.split(\"m3u8\")[1]) url = `${url}${streamLinkParams}`;\n xhr.open(\"GET\", url, true);\n },\n startLevel: -1,\n debug: false,\n enableWorker: true,\n abrBandWidthUpFactor: 0.7,\n abrBandWidthFactor: 0.95,\n backBufferLength: Infinity,\n maxBufferLength: 30,\n maxMaxBufferLength: 60,\n manifestLoadPolicy: {\n default: {\n maxTimeToFirstByteMs: Infinity,\n maxLoadTimeMs: 20000,\n timeoutRetry: {\n maxNumRetry: 10,\n retryDelayMs: 5000,\n maxRetryDelayMs: 10000,\n },\n errorRetry: {\n maxNumRetry: 10,\n retryDelayMs: 5000,\n maxRetryDelayMs: 10000,\n },\n },\n },\n fragLoadPolicy: {\n default: {\n maxTimeToFirstByteMs: 10000,\n maxLoadTimeMs: 120000,\n timeoutRetry: {\n maxNumRetry: 10,\n retryDelayMs: 5000,\n maxRetryDelayMs: 10000,\n },\n errorRetry: {\n maxNumRetry: 10,\n retryDelayMs: 5000,\n maxRetryDelayMs: 10000,\n },\n },\n },\n playlistLoadPolicy: {\n default: {\n maxTimeToFirstByteMs: 10000,\n maxLoadTimeMs: 20000,\n timeoutRetry: {\n maxNumRetry: 10,\n retryDelayMs: 5000,\n maxRetryDelayMs: 10000,\n },\n errorRetry: {\n maxNumRetry: 10,\n retryDelayMs: 5000,\n maxRetryDelayMs: 10000,\n },\n },\n },\n };\n};\n\nexport const handleMiniPlayerHlsConfig = () => {\n const streamLinkParams = splitQueryParamsFromStreamLink(\"miniPlayer\");\n return {\n xhrSetup: (xhr: any, url: any) => {\n url = `${url}${streamLinkParams}`;\n xhr.open(\"GET\", url, true);\n },\n startLevel: 1,\n debug: false,\n maxMaxBufferLength: 60,\n playlistLoadPolicy: {\n default: {\n maxTimeToFirstByteMs: 10000,\n maxLoadTimeMs: 20000,\n timeoutRetry: {\n maxNumRetry: 1000,\n retryDelayMs: 0,\n maxRetryDelayMs: 0,\n },\n errorRetry: {\n maxNumRetry: 1000,\n retryDelayMs: 1000,\n maxRetryDelayMs: 1000,\n },\n },\n },\n };\n};\n\n// ************* Manifest Handlers ************* //\n\nexport const handleManifestParsed = (hls: any, data: any) => {\n const dispatch = store.dispatch;\n let qualityLevels: any[] = [];\n let resolutions: any[] = [];\n hls.levels.map((level: any) => {\n qualityLevels.push(level.attrs.RESOLUTION?.split(\"x\")[1].trim());\n resolutions.push(level.attrs.RESOLUTION!);\n });\n hls.autoLevelCapping = highestResolutionSupported(resolutions, window.innerWidth, window.innerHeight);\n dispatch(setQualityLevels(qualityLevels));\n [\"fullscreenchange\", \"webkitfullscreenchange\", \"mozfullscreenchange\", \"msfullscreenchange\"].forEach((eventType) =>\n document.addEventListener(\n eventType,\n () => {\n if (conditions(ConditionName.isAutoQuality)) {\n hls.autoLevelCapping = highestResolutionSupported(resolutions, window.innerWidth, window.innerHeight);\n hls.nextLevel = -1;\n }\n },\n false,\n ),\n );\n if (data.audioTracks.length > 0) {\n const sortedAudioTracks = data.audioTracks.sort((a: any) => (a.default === true ? -1 : 1));\n dispatch(setMultiAudio(sortedAudioTracks));\n }\n};\n\n// ************* Level Handlers ************* //\n\nexport const handleLevels = (hls: any, data: any, setQualityLevel: any) => {\n if (data.frag.type !== \"audio\") {\n const dispatch = store.dispatch;\n const { settings } = store.getState().user;\n const { qualityLevels, manualQuality, autoQuality } = store.getState().controller;\n if (!conditions(ConditionName.isAutoQuality)) {\n if (data.frag.level !== manualQuality) hls.nextLevel = qualityLevels[settings.quality!] ? settings.quality : -1;\n if (qualityLevels[settings.quality!]) {\n dispatch(setManualQuality(settings.quality!));\n dispatch(setAutoQuality(undefined));\n } else {\n setQualityLevel(qualityLevels[data.frag.level]);\n dispatch(setAutoQuality(data.frag.level));\n dispatch(setUserSettings({ ...settings, quality: -1 }));\n }\n } else if (conditions(ConditionName.isAutoQuality) && autoQuality === undefined) {\n hls.nextLevel = -1;\n setQualityLevel(qualityLevels[data.frag.level]);\n dispatch(setAutoQuality(data.frag.level));\n } else if (conditions(ConditionName.isAutoQuality)) {\n setQualityLevel(qualityLevels[data.frag.level]);\n if (autoQuality !== data.frag.level) dispatch(setAutoQuality(data.frag.level));\n }\n }\n};\n\n// ************* Fragment Handlers ************* //\n\nexport const handleFragBuffered = (hls: any, video: HTMLVideoElement) => {\n const dispatch = store.dispatch;\n const bufferedTime = hls.mainForwardBufferInfo?.end;\n const bufferedTimeWidth = (bufferedTime! / video.duration) * 100;\n dispatch(setBufferedTimeWidth(bufferedTimeWidth));\n};\n\nexport const handleFragChanged = (hls: any, data: any, setQualityLevel: any) => {\n const { params, multiAudio, selectedAudioId } = store.getState().videoData;\n\n if (multiAudio && selectedAudioId !== undefined && selectedAudioId !== hls.audioTrack) hls.audioTrack = selectedAudioId;\n if (params.type) handleLevels(hls, data, setQualityLevel);\n};\n\nexport const handleFragParsed = (hls: any, data: any, setQualityLevel: any) => {\n const { type } = store.getState().videoData.params;\n if (type) handleLevels(hls, data, setQualityLevel);\n};\n\n// ************* HLS Error Handlers ************* //\n\nexport const handleHlsErrors = (data: any) => {\n if (data.event !== \"hlsAudioTrackLoading\") return { type: \"HLS_\" + data.type, message: data.error.message };\n return undefined;\n};\n\n// ************* Video Tag Handlers ************* //\n\nexport const handleVideoWaiting = (event: any, waitingTimerRef: any) => {\n const dispatch = store.dispatch;\n event.preventDefault();\n waitingTimerRef.current = Date.now();\n dispatch(setIsLoading(true));\n};\n\nexport const handleVideoSeeking = (event: any, waitingTimerRef: any) => {\n if (conditions(ConditionName.isIOS) && conditions(ConditionName.isFirstPlay)) return;\n const dispatch = store.dispatch;\n event.preventDefault();\n waitingTimerRef.current = 0;\n dispatch(setIsLoading(true));\n};\n\nexport const handleVideoPlay = (event: any, timerRef: any, video: HTMLVideoElement) => {\n const dispatch = store.dispatch;\n const { videoSettings } = store.getState().user;\n const { params } = store.getState().videoData;\n const { currentTime } = store.getState().controller;\n event.preventDefault();\n timerRef.current = Date.now();\n dispatch(setPlay(true));\n if (conditions(ConditionName.hasOnPlayParams)) params.onPlay!(currentTime);\n if (conditions(ConditionName.isFirstPlay)) {\n if (!conditions(ConditionName.hasCurrentTimeParams)) {\n video.currentTime = videoSettings.time;\n dispatch(setCurrentTime(videoSettings.time));\n }\n if (conditions(ConditionName.hasFullScreenParams)) handleAutoFullScreen();\n if (conditions(ConditionName.isFullScreen)) handleLockOrientation();\n dispatch(setVideoTimelines([Math.floor(video.currentTime)]));\n if (conditions(ConditionName.hasRawSubtitles)) handleSubtitle();\n }\n sendFluentLog(pausePlayLog(true));\n dispatch(setSubtitleText(\"\"));\n};\n\nexport const handleVideoPlaying = (\n loadingCounterRef: any,\n loadingDurationRef: any,\n initialWaitingDurationRef: any,\n bannerLoadingDurationRef: any,\n timerRef: any,\n waitingDurationRef: any,\n waitingTimerRef: any,\n videoEntranceTimeRef: any,\n video: HTMLVideoElement,\n) => {\n const dispatch = store.dispatch;\n const { autoQuality, canPlayVideo, firstPlay, qualityLevels } = store.getState().controller;\n const { settings } = store.getState().user;\n const qualityLevel = settings.quality === -1 && autoQuality ? qualityLevels[autoQuality] : qualityLevels[settings.quality!];\n let waitingDuration = 0;\n if (!!waitingTimerRef.current) waitingDuration = Date.now() - waitingTimerRef.current;\n if (firstPlay && !!video.played) {\n sendFluentLog(\n initLog(\n loadingDurationRef.current,\n Date.now() - initialWaitingDurationRef.current,\n bannerLoadingDurationRef.current - initialWaitingDurationRef.current,\n Date.now() - timerRef.current,\n timerRef,\n ),\n );\n }\n dispatch(setFirstPlay(false));\n\n if (canPlayVideo && waitingDuration > 0 && qualityLevel !== undefined) {\n waitingDurationRef.current = waitingDuration;\n waitingTimerRef.current = 0;\n sendFluentLog(loadingLog(waitingDuration, qualityLevel, timerRef, loadingCounterRef, videoEntranceTimeRef.current));\n loadingCounterRef.current = loadingCounterRef.current + 1;\n timerRef.current = Date.now();\n }\n};\n\nexport const handleVideoPause = (event: any) => {\n const dispatch = store.dispatch;\n const { params } = store.getState().videoData;\n event.preventDefault();\n sendFluentLog(pausePlayLog(false));\n dispatch(setPlay(false));\n if (conditions(ConditionName.hasOnPauseParams)) params.onPause!();\n};\n\nexport const handleVideoTimeUpdate = (event: any) => {\n const dispatch = store.dispatch;\n const { onChangeCurrentTime } = store.getState().videoData.params;\n const { selectedSubtitle } = store.getState().videoData;\n event.preventDefault();\n dispatch(setCurrentTime(event.target.currentTime));\n if (conditions(ConditionName.hasOnChangeCurrentTime)) onChangeCurrentTime!(event.target.currentTime);\n if (conditions(ConditionName.hasActiveCue)) dispatch(setSubtitleText((selectedSubtitle!.activeCues![0] as any).text));\n};\n\nexport const handleVideoCanPlay = (video: HTMLVideoElement) => {\n const dispatch = store.dispatch;\n const { settings } = store.getState().user;\n dispatch(setIsLoading(false));\n dispatch(setCanPlayVideo(true));\n video.volume = settings.volume / 100;\n dispatch(setDuration(video.duration));\n};\n\nexport const handleVideoEnded = (event: any, video: HTMLVideoElement) => {\n const dispatch = store.dispatch;\n const { params } = store.getState().videoData;\n event.preventDefault();\n dispatch(setIsEnded(true));\n dispatch(setActiveElements(true));\n handleVideoTimeline(video.duration);\n if (conditions(ConditionName.hasOnFinishedParams)) params.onFinished!();\n};\n\n// ************* IOS Video Tag Handlers ************* //\n\nexport const handleIosVideoPlay = (event: any, timerRef: any) => {\n event.preventDefault();\n timerRef.current = Date.now();\n};\n\nexport const handleIosVideoPlaying = () => {\n const dispatch = store.dispatch;\n dispatch(setIsLoading(false));\n dispatch(setFirstPlay(false));\n};\n\nexport const handleIosVideoTimeUpdate = (event: any) => {\n const { onChangeCurrentTime } = store.getState().videoData.params;\n const dispatch = store.dispatch;\n event.preventDefault();\n if (conditions(ConditionName.hasOnChangeCurrentTime)) onChangeCurrentTime!(event.target.currentTime);\n dispatch(setCurrentTime(event.target.currentTime));\n};\n\nexport const handleIosVideoEnded = () => {\n const dispatch = store.dispatch;\n const { params } = store.getState().videoData;\n dispatch(setIsEnded(true));\n dispatch(setActiveElements(true));\n if (conditions(ConditionName.hasOnFinishedParams)) params.onFinished!();\n};\n\n// ************* Static Video Tag Handlers ************* //\n\nexport const handleStaticVideoPause = (event: any) => {\n const dispatch = store.dispatch;\n event.preventDefault();\n dispatch(setPlay(false));\n};\n\nexport const handleStaticVideoPlay = (event: any, timerRef: any) => {\n const dispatch = store.dispatch;\n const { params } = store.getState().videoData;\n const { currentTime } = store.getState().controller;\n event.preventDefault();\n dispatch(setPlay(true));\n timerRef.current = Date.now();\n dispatch(setSubtitleText(\"\"));\n if (conditions(ConditionName.hasOnPlayParams)) params.onPlay!(currentTime);\n\n if (conditions(ConditionName.isFirstPlay)) {\n if (conditions(ConditionName.hasRawSubtitles)) handleSubtitle();\n if (conditions(ConditionName.hasFullScreenParams)) {\n handleAutoFullScreen();\n if (conditions(ConditionName.isFullScreen)) handleLockOrientation();\n }\n }\n};\n\nexport const handleStaticVideoPlaying = (loadingDurationRef: any, initialWaitingDurationRef: any, timerRef: any, video: HTMLVideoElement) => {\n const dispatch = store.dispatch;\n const { firstPlay } = store.getState().controller;\n dispatch(setIsLoading(false));\n if (firstPlay && !!video.played) {\n sendFluentLog(\n initLog(Math.round(loadingDurationRef.current), Date.now() - initialWaitingDurationRef.current, 0, Date.now() - timerRef.current, timerRef),\n );\n }\n dispatch(setFirstPlay(false));\n};\n\nexport const handleStaticVideoTimeUpdate = (event: any) => {\n const { onChangeCurrentTime } = store.getState().videoData.params;\n const dispatch = store.dispatch;\n const { selectedSubtitle } = store.getState().videoData;\n event.preventDefault();\n dispatch(setCurrentTime(event.target.currentTime));\n dispatch(setDuration(event.target.duration));\n if (conditions(ConditionName.hasOnChangeCurrentTime)) onChangeCurrentTime!(event.target.currentTime);\n if (conditions(ConditionName.hasActiveCue)) dispatch(setSubtitleText((selectedSubtitle!.activeCues![0] as any).text));\n};\n\nexport const handleStaticVideoCanPlay = () => {\n const dispatch = store.dispatch;\n dispatch(setIsLoading(false));\n dispatch(setCanPlayVideo(true));\n};\n\nexport const handleStaticVideoLoadedData = (intervalRef: any, video: HTMLVideoElement) => handleBufferedTime(video, intervalRef);\n\nexport const handleStaticVideoEnded = (event: any) => {\n const dispatch = store.dispatch;\n const { params } = store.getState().videoData;\n dispatch(setIsEnded(true));\n dispatch(setActiveElements(true));\n if (conditions(ConditionName.hasOnFinishedParams)) params.onFinished!();\n event.preventDefault();\n};\n\nexport const handleMiniPlayerMediaAttached = async (hls: any) => {\n const { stream_link } = store.getState().miniPlayer.details;\n hls.loadSource(stream_link);\n};\n\nexport const handleVideoVisibilityChange = (video: HTMLVideoElement) => handleVideoTimeline(video.currentTime);\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {Aa,x,za}from'./chunk-NLCBOGTI.mjs';import {e}from'./chunk-4QMWBTB5.mjs';e();var f=()=>{let{params:r}=Aa.getState().videoData,t=x().currentTime;if(t!==0){let d=x().duration,i={video_id:+r.id,video_type:2,time:t===d?0:Math.floor(x().currentTime)},o=localStorage.getItem("viewedVideos");if(o){let e=JSON.parse(o);e=e.filter(n=>n.video_id!==i.video_id||n.video_type!==i.video_type),e.length<10||e.shift(),e.push(i),localStorage.setItem("viewedVideos",JSON.stringify(e));}else localStorage.setItem("viewedVideos",JSON.stringify([i]));}},g=()=>{let r=Aa.dispatch,{params:t}=Aa.getState().videoData,d=localStorage.getItem("viewedVideos");if(d){let o=JSON.parse(d).find(e=>e.video_id===Number(t.id)&&e.video_type===2);o&&r(za({time:o.time}));}};export{f as a,g as b};//# sourceMappingURL=chunk-UL5LQB3G.mjs.map
|
|
2
|
+
//# sourceMappingURL=chunk-UL5LQB3G.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/videoPlayerLibrary/helpers/redux/actions/user.actions.ts"],"names":["init_esm_shims","handleContinuousPlayback","params","store_default","currentTime","mainPlayerVideoTag","duration","viewedVideo","viewedVideosInLocalStorage","viewedVideos","video","handleApplyContinuousPlayback","dispatch","setVideoSettings"],"mappings":"gFAAAA,CAAAA,EAAAA,CAKO,IAAMC,CAAAA,CAA2B,IAAM,CAC1C,GAAM,CAAE,MAAA,CAAAC,CAAO,CAAA,CAAIC,GAAM,QAAA,EAAS,CAAE,SAAA,CAC9BC,CAAAA,CAAcC,GAAmB,CAAE,WAAA,CACzC,GAAID,CAAAA,GAAgB,EAAG,CACnB,IAAME,CAAAA,CAAWD,CAAAA,GAAqB,QAAA,CAChCE,CAAAA,CAA4B,CAC9B,QAAA,CAAU,CAACL,CAAAA,CAAO,EAAA,CAClB,UAAA,CAAY,CAAA,CACZ,KAAME,CAAAA,GAAgBE,CAAAA,CAAW,CAAA,CAAI,IAAA,CAAK,MAAMD,CAAAA,EAAmB,CAAE,WAAW,CACpF,EACIG,CAAAA,CAA6B,YAAA,CAAa,OAAA,CAAQ,cAAc,EACpE,GAAIA,CAAAA,CAA4B,CAC5B,IAAIC,EAA+B,IAAA,CAAK,KAAA,CAAMD,CAA0B,CAAA,CACxEC,EAAeA,CAAAA,CAAa,MAAA,CACvBC,CAAAA,EAAwBA,CAAAA,CAAM,WAAaH,CAAAA,CAAY,QAAA,EAAYG,CAAAA,CAAM,UAAA,GAAeH,EAAY,UACzG,CAAA,CACIE,CAAAA,CAAa,MAAA,CAAS,IAEtBA,CAAAA,CAAa,KAAA,EAAM,CACnBA,CAAAA,CAAa,IAAA,CAAKF,CAAW,CAAA,CAEjC,YAAA,CAAa,QAAQ,cAAA,CAAgB,IAAA,CAAK,SAAA,CAAUE,CAAY,CAAC,EACrE,CAAA,KAAO,YAAA,CAAa,OAAA,CAAQ,eAAgB,IAAA,CAAK,SAAA,CAAU,CAACF,CAAW,CAAC,CAAC,EAC7E,CACJ,CAAA,CAEaI,EAAgC,IAAM,CAC/C,IAAMC,CAAAA,CAAWT,GAAM,QAAA,CACjB,CAAE,MAAA,CAAAD,CAAO,EAAIC,EAAAA,CAAM,QAAA,EAAS,CAAE,SAAA,CAChCK,EAA6B,YAAA,CAAa,OAAA,CAAQ,cAAc,CAAA,CACpE,GAAIA,CAAAA,CAA4B,CAE5B,IAAMD,CAAAA,CAD+B,KAAK,KAAA,CAAMC,CAA0B,CAAA,CACzC,IAAA,CAC5BE,GAAwBA,CAAAA,CAAM,QAAA,GAAa,MAAA,CAAOR,CAAAA,CAAO,EAAE,CAAA,EAAKQ,CAAAA,CAAM,UAAA,GAAe,CAC1F,EAEIH,CAAAA,EAAaK,CAAAA,CAASC,EAAAA,CAAiB,CAAE,KAAMN,CAAAA,CAAY,IAAK,CAAC,CAAC,EAC1E,CACJ","file":"chunk-UL5LQB3G.mjs","sourcesContent":["import { IViewedVideo } from \"../../interfaces/interfaces\";\nimport store from \"../store\";\nimport { setVideoSettings } from \"../slices/userSlice\";\nimport { mainPlayerVideoTag } from \"../../constants\";\n\nexport const handleContinuousPlayback = () => {\n const { params } = store.getState().videoData;\n const currentTime = mainPlayerVideoTag().currentTime;\n if (currentTime !== 0) {\n const duration = mainPlayerVideoTag().duration;\n const viewedVideo: IViewedVideo = {\n video_id: +params.id!,\n video_type: 2,\n time: currentTime === duration ? 0 : Math.floor(mainPlayerVideoTag().currentTime),\n };\n let viewedVideosInLocalStorage = localStorage.getItem(\"viewedVideos\");\n if (viewedVideosInLocalStorage) {\n let viewedVideos: IViewedVideo[] = JSON.parse(viewedVideosInLocalStorage);\n viewedVideos = viewedVideos.filter(\n (video: IViewedVideo) => video.video_id !== viewedVideo.video_id || video.video_type !== viewedVideo.video_type\n );\n if (viewedVideos.length < 10) viewedVideos.push(viewedVideo);\n else {\n viewedVideos.shift();\n viewedVideos.push(viewedVideo);\n }\n localStorage.setItem(\"viewedVideos\", JSON.stringify(viewedVideos));\n } else localStorage.setItem(\"viewedVideos\", JSON.stringify([viewedVideo]));\n }\n};\n\nexport const handleApplyContinuousPlayback = () => {\n const dispatch = store.dispatch;\n const { params } = store.getState().videoData;\n let viewedVideosInLocalStorage = localStorage.getItem(\"viewedVideos\");\n if (viewedVideosInLocalStorage) {\n const viewedVideos: IViewedVideo[] = JSON.parse(viewedVideosInLocalStorage);\n const viewedVideo = viewedVideos.find(\n (video: IViewedVideo) => video.video_id === Number(params.id) && video.video_type === 2\n );\n\n if (viewedVideo) dispatch(setVideoSettings({ time: viewedVideo.time }));\n }\n};\n\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use strict';var chunkAN6JAJSI_js=require('./chunk-AN6JAJSI.js'),toolkit=require('@reduxjs/toolkit'),Ye=require('axios'),tailwindMerge=require('tailwind-merge');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Ye__default=/*#__PURE__*/_interopDefault(Ye);var fe=chunkAN6JAJSI_js.b((Jt,ye)=>{chunkAN6JAJSI_js.e();ye.exports={baseUrl:"https://hamrahi.cloud",fluentdUrl:"https://hamrahi.cloud"};});var Se={};chunkAN6JAJSI_js.c(Se,{isNpmPackage:()=>Xe});var Xe,Pe=chunkAN6JAJSI_js.a(()=>{chunkAN6JAJSI_js.e();Xe=false;});chunkAN6JAJSI_js.e();var ee={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,advertisement:void 0,activeSubtitle:"fa",vhl_progress:0},markers:[],videoElementSizeInfo:{bottom:0,top:0,right:0,left:0,width:0,height:0},isFetchDetails:false,isValidAddress:false,videoTimelines:[],isReady:false,rawSubtitles:void 0,subtitles:[],selectedSubtitle:void 0,subtitleText:void 0,multiAudio:[],selectedAudioId:0,hiddenAd:false},te=toolkit.createSlice({name:"videoData",initialState:ee,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;},setRawSubtitles:(e,t)=>{e.rawSubtitles=t.payload;},setSubtitles:(e,t)=>{e.subtitles=t.payload;},setSelectedSubtitle:(e,t)=>{e.selectedSubtitle=t.payload;},setSubtitleText:(e,t)=>{e.subtitleText=t.payload;},setMultiAudio:(e,t)=>{e.multiAudio=JSON.parse(JSON.stringify(t.payload));},setSelectedAudioId:(e,t)=>{e.selectedAudioId=t.payload;},setHiddenAd:(e,t)=>{e.hiddenAd=t.payload;},setClearVideoDataSlice:e=>ee}}),{setInfo:rt,setPlayerParams:st,setVideoElementSizeInfo:re,setMarkers:at,setIsFetchDetails:it,setIsValidAddress:ot,setVideoTimelines:D,setIsReady:nt,setRawSubtitles:lt,setSubtitles:ut,setSubtitleText:ct,setSelectedSubtitle:dt,setMultiAudio:pt,setSelectedAudioId:mt,setHiddenAd:gt,setClearVideoDataSlice:se}=te.actions,ae=te.reducer;chunkAN6JAJSI_js.e();chunkAN6JAJSI_js.e();chunkAN6JAJSI_js.e();chunkAN6JAJSI_js.e();chunkAN6JAJSI_js.e();var Ke={settingPopover:false,speedPopover:false,qualityLevelsPopover:false,markersListPopover:false,multiAudioPopover:false},ie=toolkit.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;},setMultiAudioPopover:(e,t)=>{e.multiAudioPopover=t.payload;},setClearPopoversSlice:e=>{e.settingPopover=false,e.speedPopover=false,e.qualityLevelsPopover=false,e.markersListPopover=false,e.multiAudioPopover=false;}}}),{setSettingPopover:bt,setSpeedPopover:wt,setQualityLevelsPopover:At,setMarkersListPopover:Lt,setMultiAudioPopover:kt,setClearPopoversSlice:k}=ie.actions,oe=ie.reducer;chunkAN6JAJSI_js.e();var ne={settings:{quality:le?0:-1,brightness:100,volume:100,speed:1},videoSettings:{time:0}},ue=toolkit.createSlice({name:"user",initialState:ne,reducers:{setUserSettings:(e,t)=>{e.settings=t.payload;},setVideoSettings:(e,t)=>{e.videoSettings=t.payload;},setClearUserSlice:()=>ne}}),{setUserSettings:ce,setVideoSettings:Ft,setClearUserSlice:de}=ue.actions,pe=ue.reducer;chunkAN6JAJSI_js.e();var me={params:{id:"0",type:"",currentTime:0,autoPlay:false,onClose:()=>{}},details:{},play:false},ge=toolkit.createSlice({name:"user",initialState:me,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=>me}}),{setMiniPlayerInfo:Ot,setDetailsMiniPlayer:_t,setPlayMiniPlayer:B,setClearMiniPlayerSlice:Qt}=ge.actions,he=ge.reducer;var Ce=toolkit.configureStore({reducer:{controller:chunkAN6JAJSI_js.y,videoData:ae,popovers:oe,user:pe,miniPlayer:he},devTools:true,middleware:e=>e({serializableCheck:false})}),a=Ce;chunkAN6JAJSI_js.e();chunkAN6JAJSI_js.e();chunkAN6JAJSI_js.e();chunkAN6JAJSI_js.e();chunkAN6JAJSI_js.e();chunkAN6JAJSI_js.e();var O=fe(),_=(Pe(),chunkAN6JAJSI_js.d(Se)),Q=()=>(_?O.baseUrl:process.env.baseUrl)+"/live/api",$=()=>_?O.fluentdUrl:process.env.fluentdUrl,zt=()=>(_?O.baseUrl:process.env.baseUrl)+"/emoji";var F=()=>({vod:{getVodUrl:`${Q()}/v1/live/details/vod/`,getMarkerUrl:e=>`${Q()}/v1/live/list-event/vod/${e}/`},videoTimelineLog:`${$()}/video-timeline.log`,logs:`${$()}/cafevideo-endpoint.log`});var b=e=>{let{details:t,params:r}=a.getState().videoData,s={...e,timestamp:Date.now(),clientUUID:P(),uuid:P(),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};x({url:F().logs,method:"post",data:s});};chunkAN6JAJSI_js.e();chunkAN6JAJSI_js.e();var c=()=>document.getElementById("player-tag"),v=()=>document.getElementById("mini-player-video-tag");var pr=()=>document.getElementById("time-progress-bar"),mr=()=>document.getElementById("progress-area");var gr=()=>a.getState().videoData.videoElementSizeInfo.width,hr=()=>document.getElementById("time-progress-area");var Ar=e=>{let{params:t,details:r}=a.getState().videoData,{settings:s}=a.getState().user;return {category:"speedChange",previousSelectedSpeed:s.speed,selectedSpeed:e,id:Number(t.id),type:t.type,src:l("streamLink")||t.id,provider:t.provider}},Lr=e=>{let{params:t,details:r}=a.getState().videoData,{qualityLevels:s,manualQuality:i,autoQuality:o}=a.getState().controller;return {category:"qualityChangeRequest",currentPlayingQuality:`${s[l("isAutoQuality")?o??i:i]}P`,previousSelectedQuality:l("isAutoQuality")?"auto":`${s[i]}P`,selectedQuality:e,id:Number(t.id),type:t.type,src:l("streamLink")||t.id,provider:t.provider}},kr=e=>{let{params:t,details:r}=a.getState().videoData,{qualityLevels:s,autoQuality:i}=a.getState().controller,{settings:o}=a.getState().user;return {category:"catchUpLoading",previousVideoTime:Number(sessionStorage.getItem("previousVideoTime")),currentVideoTime:c().currentTime,duration:e,quality:`${l("isAutoQuality")?s[i]:s[o.quality]}P`,isAutoQuality:l("isAutoQuality"),id:Number(t.id),type:t.type,src:l("streamLink")||t.id,provider:t.provider}},ve=e=>{let{params:t,details:r}=a.getState().videoData;return {category:e==="backward"?"backward":"forward",id:Number(t.id),type:t.type,src:l("streamLink")||t.id,provider:t.provider}},q=e=>{let{params:t,details:r}=a.getState().videoData;return {category:e,id:Number(t.id),type:t.type,src:l("streamLink")||t.id}};var xr=(e,t)=>{let{params:r,details:s}=a.getState().videoData;return {category:"volumeChange",source:e,target:t,id:Number(r.id),type:r.type,src:l("streamLink")||r.id}},be=e=>{let{params:t,details:r}=a.getState().videoData;return {category:e,id:Number(t.id),type:t.type,src:l("streamLink")||t.id}},we=(e,t,r,s)=>({category:"player-error",type:e,message:t,statusCode:r,url:s}),Ae=(e,t)=>{let{params:r,details:s}=a.getState().videoData,{duration:i}=a.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:P(),user_id:s.user_id,content_type:s.content_type,content_id:s.content_id}},Tr=(e,t,r)=>{let{params:s,details:i}=a.getState().videoData;return {category:"autoQualityChange",sourceQuality:e,targetQuality:t,diffQuality:r,id:Number(s.id),type:s.type,src:l("streamLink")||s.id,provider:s.provider}},Mr=(e,t)=>{let{params:r,details:s}=a.getState().videoData;return {category:"pingpong",id:Number(r.id),type:r.type,src:l("streamLink")||r.id,PingPongDuration:Number((new Date().getTime()-e).toFixed(2)),PingPongSourceQuality:`${t[0]}P`,PingPongTargetQuality:`${t[1]}P`,provider:r.provider}},Ir=e=>{let{params:t,details:r}=a.getState().videoData;return {category:e?"playVideo":"pauseVideo",id:Number(t.id),type:t.type,src:l("streamLink")||t.id,provider:t.provider}},Dr=(e,t,r,s,i)=>{let{params:o,details:f}=a.getState().videoData,n=Date.now()-i.current+e+t,y=window.performance.memory,w=JSON.parse(JSON.stringify(window.performance.timing));return {category:"initLog",id:Number(o.id),type:o.type,origin:new URL(l("streamLink")||o.id).origin,src:l("streamLink")||o.id,loading:e,bannerLoading:!l("hasBanner")||r<0?0:r,waiting:t,firstChunkPlaying:s<0?0:s,totalTime:n,provider:o.provider,performance:H({memory:y,timing:w},"performance"),userAgent:window.navigator.userAgent}},Fr=(e,t,r,s,i)=>{let{params:o,details:f}=a.getState().videoData,{settings:n}=a.getState().user,y=Date.now()-r.current;return {category:"loading",id:Number(o.id),type:o.type,src:l("streamLink")||o.id,duration:e,quality:`${t}P`,isAutoQuality:l("isAutoQuality"),previousLoaderDiff:y,counter:s.current,loadingPercentile:Number((e/y).toFixed(2)),videoTime:c().currentTime,videoEntranceTime:i,speed:n.speed,provider:o.provider}},Vr=e=>{let{params:t,details:r}=a.getState().videoData;return {category:"subtitle",language:e,id:Number(t.id),type:t.type,src:l("streamLink")||t.id}},Er=(e,t,r,s,i)=>{let{params:o,details:f}=a.getState().videoData;return {category:"eventMarkerClick",video_id:Number(o.id),markerId:e,markerTime:t,markerTitle:r,markerDescription:s,markerSticker:i,type:o.type,src:l("streamLink")||o.id,provider:o.provider}};var Le=e=>{e&&b(we(e.type,e.message,e.statusCode,e.url));};var x=async({url:e,method:t="GET",data:r,headers:s,retryCount:i=1,maxRetryCount:o=0,errorMessage:f,retryPolicy:n,errorCallback:y,timeoutCount:w})=>{let S={url:e,method:t,headers:{...s,"Content-Type":"application/json"},timeout:w?w*1e3:void 0};r?t==="GET"?S={...S,params:{uuid:a.getState().videoData.params.uuid,provider:a.getState().videoData.params.provider==="unknown"?void 0:a.getState().videoData.params.provider,...r}}:S={...S,data:{uuid:a.getState().videoData.params.uuid,provider:a.getState().videoData.params.provider==="unknown"?void 0:a.getState().videoData.params.provider,...r}}:t==="GET"?S={...S,params:{uuid:a.getState().videoData.params.uuid,provider:a.getState().videoData.params.provider==="unknown"?void 0:a.getState().videoData.params.provider}}:S={...S,data:{uuid:a.getState().videoData.params.uuid,provider:a.getState().videoData.params.provider==="unknown"?void 0:a.getState().videoData.params.provider}};try{return await Ye__default.default(S)}catch(d){if(d instanceof Ye.AxiosError&&d.code!=="ERR_NETWORK"&&Le({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)){y&&y(d.response.status,d.response.message);let p=0,m=0;if(n!==void 0){for(let g=0;g<n.length;g++)if((n[g].codeAbove&&d.response.status>=n[g].codeAbove||n[g].codeBelow&&d.response.status<=n[g].codeBelow)&&(n[g].excludeCodes.length===0||!n[g].excludeCodes.includes(d.response.status))||n[g].includeCodes.length===0||n[g].includeCodes.includes(d.response.status)){m=n[g].count,p=n[g].delay;break}}else m=o,p=i+1;if(i<m)return await ke(p),x({url:e,method:t,data:r,headers:s,retryCount:i+1,errorMessage:f,retryPolicy:n,errorCallback:y});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}}}};var is=e=>{if(e===null||e.target.nodeName!=="INPUT"){let t=a.dispatch;e!==null&&(e.stopPropagation(),e.preventDefault()),c()?.paused?c().play():c()?.pause(),t(chunkAN6JAJSI_js.f(!c()?.paused)),v()&&v().played&&(v()?.pause(),t(B(false)));}},os=e=>{if(e===null||e.target.nodeName!=="INPUT"){let t=a.dispatch;v().paused?v().play():v()?.pause(),t(B(!v().paused)),c()&&c().played&&(c()?.pause(),t(chunkAN6JAJSI_js.f(false)));}},Je=()=>{let e=a.dispatch;e(chunkAN6JAJSI_js.x(false)),l("isIOS")&&(c().currentTime=c().currentTime-.001);},V=(e,t)=>{let r=a.dispatch,{settings:s}=a.getState().user,{firstMute:i}=a.getState().controller,o=t||c();r(ce({...s,volume:e})),o&&(i&&e&&Je(),l("isIOS")?o.muted=!e:o.volume=e/100);},ns=(e,t=15,r)=>{if(e==="touchBackward"?e="backward":e==="touchForward"&&(e="forward"),r&&r.target.nodeName==="INPUT"||e==="backward"&&c().currentTime<15||e==="forward"&&c().duration-c().currentTime<15)return;b(ve(e));let s=0;e==="backward"?t===0?s=0:s=c().currentTime-t:e==="forward"&&(t===c().duration?s=t:s=c().currentTime+t),c().currentTime=s;},Ze=()=>{let e=a.dispatch,t=document.fullscreenElement;l("isIOS")?c().webkitEnterFullScreen?(e(chunkAN6JAJSI_js.f(false)),c().webkitEnterFullScreen()):(e(k()),b(q("fullScreen"))):t?(e(chunkAN6JAJSI_js.m(false)),document.exitFullscreen().then(()=>document.body.style.overflow="auto")):(e(k()),document.documentElement.requestFullscreen().then(()=>document.body.style.overflow="hidden"),e(chunkAN6JAJSI_js.m(true)),b(q("fullScreen")));},ls=()=>{l("isTouchScreen")&&!l("isIOS")&&(l("isLandscape")&&!l("isFullScreen")?window.screen.orientation.lock("portrait"):window.screen.orientation.lock("landscape"));},us=e=>{let t=a.dispatch;t(chunkAN6JAJSI_js.t(e==="lock")),b(be(e)),e==="unlock"&&localStorage.setItem("unlock-click","true");},cs=(e,t)=>{if(l("isSendTimelineLog")){let r=a.dispatch,{videoTimelines:s}=a.getState().videoData,i=Math.floor(e),o=Math.floor(t);s.length===0?r(D([i>=c()?.duration?o:i])):(s[0]<i&&x({url:F().videoTimelineLog,method:"post",data:Ae(s[0],i)}),o&&o>=c()?.duration?r(D([])):r(D([o])));}},ds=()=>{let e=a.dispatch,t=document.getElementById("video-area")?.getBoundingClientRect();t.height=t.width*9/16,t&&e(re(t));},ps=e=>{!l("isTouchScreen")&&e.target.nodeName!=="INPUT"&&Ze();};var T="pl-",xe=(...e)=>{let t=e.flat(1).filter(Boolean).join(" ").trim();if(!t)return "";let r=t?.split(/\s+/),s=new Set(r.filter(n=>n.startsWith(T)).map(n=>n.slice(T.length))),i=r.map(n=>n.startsWith(T)?n.slice(T.length):n);return (tailwindMerge.twMerge(i.join(" "))?.split(" ")).map(n=>s.has(n)?T+n:n).join(" ").trim()},Ls=(e,t)=>{let r=t||{},s=l("isTouchScreen"),i=l("isFullScreen");return s?xe(e,r.touch,i?r.touchFullScreen:void 0):xe(e,r.desktop,i?r.desktopFullScreen:void 0)},ks=e=>{let t=l("isTouchScreen"),r=l("isFullScreen"),s;return t?s=r?e.touchFullScreen??e.touch:e.touch:s=r?e.desktopFullScreen??e.desktop:e.desktop,s},ke=e=>new Promise(t=>setTimeout(t,e*1e3)),P=()=>{let e=localStorage.getItem("hamrahiUUID");return e||(e=ze(),localStorage.setItem("hamrahiUUID",e)),e.toString()},ze=()=>{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},L=()=>typeof window<"u"&&("ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),j=()=>{let{isFullScreen:e}=a.getState().controller;return L()&&e},Te=()=>{let{isFullScreen:e}=a.getState().controller;return L()&&!e},E=()=>["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document,M=e=>(e<10?"0":"")+e,xs=e=>{let t=Math.floor(e/3600),r=Math.floor(e%3600/60),s=Math.floor(e%3600%60);return t<1?`${M(r)}:${M(s)}`:`${M(t)}:${M(r)}:${M(s)}`},Ts=e=>{let t=new URL(e),r=e;return t.search.length?r+=`&uuid=${P()}`:r+=`?uuid=${P()}`},Ms=(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 false}},Is=e=>{let{params:t}=a.getState().videoData,r="";!t.id&&t.stream_link?r=t.stream_link:e==="mainPlayer"?r=a.getState().videoData.details.stream_link:r=a.getState().miniPlayer.details.stream_link;let s="";return r&&(s=r?.split("m3u8")[1]),s?s=`${s}&uuid=${P()}`:s=`?uuid=${P()}`,s},Ds=(e,t)=>{let r=document.getElementById(t),s=document.createElement("span");s.style.width=s.style.height="50px",s.style.left=`${e.touches[0].clientX-r.offsetLeft-25}px`,s.style.top=`${e.touches[0].clientY-r.offsetTop-25}px`,s.classList.add("pl-ripple");let i=r.getElementsByClassName("pl-ripple")[0];i&&i.remove(),r.appendChild(s);};var Fs=e=>e>=200&&e<300,Vs=()=>{let e=a.dispatch;e(se()),e(chunkAN6JAJSI_js.w()),e(de()),e(k());},Es=e=>{let t,r=[];for(t=0;t<e.length;t++)r[t]=e[t].weight+(r[t-1]||0);let s=Math.random()*r[r.length-1];for(t=0;t<r.length&&!(r[t]>s);t++);return e[t].domain},Rs=e=>{let t=0;performance&&performance.getEntriesByType("navigation")&&(t=performance.getEntriesByType("navigation")[0].duration),e.current=t;},Us=(e,t,r)=>{let s=t*window.devicePixelRatio,i=r*window.devicePixelRatio,o=[];return l("isTouchScreenPortrait")?o=e.filter(f=>Number(f?.split("x")[0].trim())<=s):o=e.filter(f=>Number(f?.split("x")[0].trim())<=i||Number(f?.split("x")[1].trim())<=s),o.indexOf(o[o.length-1])},H=(e,t)=>{let r={};for(let s in e){let i=t?`${t}_${s}`:s;typeof e[s]=="object"&&!Array.isArray(e[s])?r={...r,...H(e[s],i)}:r[i]=e[s];}return r},Bs=e=>{let t={fa:1,en:2};return e.slice().sort((r,s)=>{let i=t[r.lang]||999,o=t[s.lang]||999;return i-o})},Os=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},_s=e=>e?.split(/\r?\n|\r|\n/g),Qs=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 $s=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),le=process.env.NODE_ENV==="development",Ks=e=>{let t=a.dispatch,{params:r}=a.getState().videoData;if(r.autoplay==="true"||r.advertisement){let s=e.play();t(chunkAN6JAJSI_js.f(true)),V(100,e),s!==void 0&&s.then(()=>{V(100,e);}).catch(()=>{V(0,e),t(chunkAN6JAJSI_js.x(true)),e.play();});}};var l=e=>{let{params:t,details:r,isValidAddress:s,isFetchDetails:i,isReady:o,rawSubtitles:f,subtitles:n,selectedSubtitle:y,markers:w,multiAudio:S,hiddenAd:d}=a.getState().videoData,{firstPlay:p,lock:m,canPlayVideo:g,manualQuality:W,activeElements:Me,isLoading:Ie,isEnded:C,isAutoPlay:De,play:Fe,isFullScreen:X,firstMute:Y}=a.getState().controller,{settingPopover:G,speedPopover:Ve,qualityLevelsPopover:Ee,markersListPopover:Re}=a.getState().popovers,{settings:J}=a.getState().user,R=a.getState().miniPlayer;switch(e){case "showHeader":return g;case "showMain":return !m||p;case "showFooter":return L()?g&&!p:g;case "showTouchVolumeBrightness":return !p&&j()&&!m&&!C;case "showBackwardForward":return !p&&!m;case "showTitle":return t.type!=="static"&&X&&!m;case "showSettingPopover":return G;case "showSpeedPopover":return Ve;case "showQualityLevelsPopover":return Ee;case "showSettingIcon":return !E();case "showBanner":return p&&(r.banner||t.banner);case "showProgressbar":return true;case "showPictureInPicture":return !E()&&!L();case "showSubtitle":return !!y;case "showMarkerListPopover":return Re;case "hidePopovers":return !G;case "isLandscape":return window.innerHeight<=window.innerWidth;case "isTouchScreen":return L();case "isTouchScreenPortrait":return Te();case "isTouchScreenLandscape":return j();case "isActiveElements":return Me;case "isPlay":return Fe;case "isPlayMiniPlayer":return R.play;case "isFirstPlay":return p;case "isLock":return m;case "isFirstMutePlay":return Y;case "isIOS":return E();case "isLoading":return Ie;case "isStaticFormat":return t.type==="static";case "isEnded":return C;case "isAutoPlay":return De;case "isFullScreen":return X;case "isValidAddress":return t.id?s:!!t.stream_link;case "isFetchDetails":return t.id?i:!!t.stream_link;case "isAutoQuality":return J.quality===-1;case "isPressKeySpace":return !m;case "isPressKeyI":return !m&&!p;case "isPressKeyF":return !m&&!p||!!t.vhl_status;case "isPressKeyS":return !m&&!p;case "isPressKeyArrowRight":return !p&&!m;case "isPressKeyArrowLeft":return !p&&!m;case "isPressKeyM":return !p&&!m;case "isPressKeyC":return !m&&!p&&!!n&&n.length>0;case "isSendTimelineLog":return t.type!=="static";case "isReady":return o;case "isSelectedSubtitle":return !!n&&n.length>0&&y;case "isMiniPlayerAndMainPlayerSame":return t.id===R.params.id;case "isVideoHighLighter":return !!t.vhl_status;case "hasTitle":return r.title;case "hasBanner":return r.banner;case "streamLink":return r.stream_link||t.stream_link;case "hasManualQuality":return W!=null;case "hasSound":return !!J.volume;case "hasAutoPlay":return t.autoplay==="true";case "hasFullScreenParams":return t.fullscreen==="true";case "hasOnFinishedParams":return !!t.onFinished;case "hasSubtitles":return !!n&&n.length>0;case "hasMultipleSubtitles":return !!n&&n.length>1;case "hasActiveCue":return y&&y.activeCues&&y.activeCues.length>0;case "hasOnPlayParams":return !!t.onPlay;case "hasOnPauseParams":return !!t.onPause;case "hasMiniPlayer":return R.params.id;case "hasCurrentTimeParams":return t.currentTime!==void 0;case "hasMarkers":return w.length!==0;case "hasSubtitlesInParams":return t.subtitles&&t.subtitles.length;case "hasOnChangeCurrentTime":return !!t.onChangeCurrentTime;case "hasMultiAudio":return S&&!!S.length;case "hasAdvertisement":return !!t.advertisement&&!!t.advertisement.videoUrl&&!d;case "hasActiveSubtitleInParams":return !!t.activeSubtitle;case "hasRawSubtitles":return !!f&&!!f.length;case "skeletonStatusInVhl":return t.vhl_status==="skeleton";case "getDetails":return !!t.type&&t.id;case "getMarkers":return String(t.type)==="vod"&&t.id&&i;case "canPlayVideo":return g;case "showSoundVolumeAlert":return Y;case "setSubtitleFirstPlay":return (t.type==="vod"&&r.subtitles&&r.subtitles.length>0||t.type==="static"&&t.subtitles&&t.subtitles.length)&&!p;}};exports.$=ls;exports.A=mr;exports.Aa=a;exports.B=gr;exports.C=hr;exports.D=Ar;exports.E=Lr;exports.F=kr;exports.G=q;exports.H=xr;exports.I=Tr;exports.J=Mr;exports.K=Ir;exports.L=Dr;exports.M=Fr;exports.N=Vr;exports.O=Er;exports.P=Le;exports.Q=x;exports.R=Ot;exports.S=_t;exports.T=B;exports.U=Qt;exports.V=is;exports.W=os;exports.X=Je;exports.Y=V;exports.Z=ns;exports._=Ze;exports.a=rt;exports.aa=us;exports.b=st;exports.ba=cs;exports.c=re;exports.ca=ds;exports.d=it;exports.da=ps;exports.e=ot;exports.ea=Ls;exports.f=D;exports.fa=ks;exports.g=nt;exports.ga=P;exports.h=lt;exports.ha=L;exports.i=ut;exports.ia=xs;exports.j=ct;exports.ja=Ts;exports.k=dt;exports.ka=Ms;exports.l=pt;exports.la=Is;exports.m=mt;exports.ma=Ds;exports.n=gt;exports.na=Fs;exports.o=bt;exports.oa=Vs;exports.p=wt;exports.pa=Es;exports.q=At;exports.qa=Rs;exports.r=kt;exports.ra=Us;exports.s=k;exports.sa=Bs;exports.t=l;exports.ta=Os;exports.u=zt;exports.ua=_s;exports.v=F;exports.va=Qs;exports.w=b;exports.wa=$s;exports.x=c;exports.xa=Ks;exports.y=v;exports.ya=ce;exports.z=pr;exports.za=Ft;//# sourceMappingURL=chunk-VUHZVVMS.js.map
|
|
3
|
+
//# sourceMappingURL=chunk-VUHZVVMS.js.map
|