cafe-video-player 3.0.16 → 3.0.17
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/index.cjs +10 -0
- package/index.cjs.map +1 -0
- package/index.js +9 -1
- package/index.js.map +1 -1
- package/package.json +11 -5
- package/VideoHighLighter-32JJMCVS.mjs +0 -2
- package/VideoHighLighter-32JJMCVS.mjs.map +0 -1
- package/VideoHighLighter-6MYR26HW.js +0 -2
- package/VideoHighLighter-6MYR26HW.js.map +0 -1
- package/backwardForward-3X63XNNJ.mjs +0 -2
- package/backwardForward-3X63XNNJ.mjs.map +0 -1
- package/backwardForward-HTLSZBXC.js +0 -2
- package/backwardForward-HTLSZBXC.js.map +0 -1
- package/chunk-2DV7FRU5.mjs +0 -2
- package/chunk-2DV7FRU5.mjs.map +0 -1
- package/chunk-3TPEXSZV.js +0 -2
- package/chunk-3TPEXSZV.js.map +0 -1
- package/chunk-4QMWBTB5.mjs +0 -2
- package/chunk-4QMWBTB5.mjs.map +0 -1
- package/chunk-5UGSCO4K.js +0 -3
- package/chunk-5UGSCO4K.js.map +0 -1
- package/chunk-6LGS5W4B.mjs +0 -2
- package/chunk-6LGS5W4B.mjs.map +0 -1
- package/chunk-AK5TFAW3.js +0 -2
- package/chunk-AK5TFAW3.js.map +0 -1
- package/chunk-AN6JAJSI.js +0 -2
- package/chunk-AN6JAJSI.js.map +0 -1
- package/chunk-B4IVZEZN.mjs +0 -2
- package/chunk-B4IVZEZN.mjs.map +0 -1
- package/chunk-BNVNO5NH.js +0 -2
- package/chunk-BNVNO5NH.js.map +0 -1
- package/chunk-CG2KA4BX.js +0 -2
- package/chunk-CG2KA4BX.js.map +0 -1
- package/chunk-COYFW7R4.js +0 -3
- package/chunk-COYFW7R4.js.map +0 -1
- package/chunk-FXAWDALE.mjs +0 -2
- package/chunk-FXAWDALE.mjs.map +0 -1
- package/chunk-HOAJ3EFI.mjs +0 -3
- package/chunk-HOAJ3EFI.mjs.map +0 -1
- package/chunk-HZASW2B2.js +0 -2
- package/chunk-HZASW2B2.js.map +0 -1
- package/chunk-K4YPVDEE.js +0 -2
- package/chunk-K4YPVDEE.js.map +0 -1
- package/chunk-KSZ35TPK.js +0 -2
- package/chunk-KSZ35TPK.js.map +0 -1
- package/chunk-NLCBOGTI.mjs +0 -3
- package/chunk-NLCBOGTI.mjs.map +0 -1
- package/chunk-P4O3IKAQ.mjs +0 -2
- package/chunk-P4O3IKAQ.mjs.map +0 -1
- package/chunk-QFADUEGX.mjs +0 -2
- package/chunk-QFADUEGX.mjs.map +0 -1
- package/chunk-QXTVEBKD.mjs +0 -2
- package/chunk-QXTVEBKD.mjs.map +0 -1
- package/chunk-QXX6LI3R.mjs +0 -9
- package/chunk-QXX6LI3R.mjs.map +0 -1
- package/chunk-UL5LQB3G.mjs +0 -2
- package/chunk-UL5LQB3G.mjs.map +0 -1
- package/chunk-VF6ZSAIO.js +0 -9
- package/chunk-VF6ZSAIO.js.map +0 -1
- package/chunk-VUHZVVMS.js +0 -3
- package/chunk-VUHZVVMS.js.map +0 -1
- package/chunk-X7QXUGD2.js +0 -2
- package/chunk-X7QXUGD2.js.map +0 -1
- package/chunk-XKRBXZUB.mjs +0 -3
- package/chunk-XKRBXZUB.mjs.map +0 -1
- package/index.mjs +0 -2
- package/index.mjs.map +0 -1
- package/nonStaticVideoTag-5HEUBWAN.js +0 -2
- package/nonStaticVideoTag-5HEUBWAN.js.map +0 -1
- package/nonStaticVideoTag-P47FI6UV.mjs +0 -2
- package/nonStaticVideoTag-P47FI6UV.mjs.map +0 -1
- package/notActive-DRH5BEL5.js +0 -2
- package/notActive-DRH5BEL5.js.map +0 -1
- package/notActive-DSDPVSW4.mjs +0 -2
- package/notActive-DSDPVSW4.mjs.map +0 -1
- package/staticPlayer-4CLY5WJL.mjs +0 -2
- package/staticPlayer-4CLY5WJL.mjs.map +0 -1
- package/staticPlayer-7UUHF6G2.js +0 -2
- package/staticPlayer-7UUHF6G2.js.map +0 -1
- package/staticVideoTag-JOPHGL3R.mjs +0 -2
- package/staticVideoTag-JOPHGL3R.mjs.map +0 -1
- package/staticVideoTag-OZZU5MWF.js +0 -2
- package/staticVideoTag-OZZU5MWF.js.map +0 -1
- package/videoArea-PC67BM4S.js +0 -2
- package/videoArea-PC67BM4S.js.map +0 -1
- package/videoArea-W2FPLLPE.mjs +0 -2
- package/videoArea-W2FPLLPE.mjs.map +0 -1
- package/vodPlayer-7T7LLFRE.mjs +0 -2
- package/vodPlayer-7T7LLFRE.mjs.map +0 -1
- package/vodPlayer-BXPUGCRK.js +0 -2
- package/vodPlayer-BXPUGCRK.js.map +0 -1
package/chunk-NLCBOGTI.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
package/chunk-P4O3IKAQ.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
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
|
package/chunk-P4O3IKAQ.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
package/chunk-QFADUEGX.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
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
|
package/chunk-QFADUEGX.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
package/chunk-QXTVEBKD.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {a}from'./chunk-XKRBXZUB.mjs';import {t,Y,ea,_,$,Aa,w,H,ya}from'./chunk-NLCBOGTI.mjs';import {e,z,A as A$1}from'./chunk-4QMWBTB5.mjs';import {useState,useRef}from'react';import {shallowEqual}from'react-redux';import {jsx,jsxs}from'react/jsx-runtime';import O from'next/image';e();e();var A=({title:n,className:i})=>jsx("span",{className:`pl-absolute pl-w-max pl-bg-black/75 pl-text-white pl-rounded-[8px] pl-leading-[18px] pl-flex pl-items-center pl-justify-center pl-font-normal ${t("isFullScreen")?"pl-bottom-[150%] pl-h-[34px] pl-px-[9.5px] pl-text-[15px]":"pl-h-6 pl-bottom-[130%] pl-px-[9px] pl-text-[12px]"} ${i}`,children:n}),h=A;var P=({width:n,height:i})=>{let[g,u]=useState(false),m=z(),{settings:l}=A$1(({user:{settings:o}})=>({settings:o}),shallowEqual),s=useRef(l.volume),I=()=>{if(s.current!==l.volume){let{settings:o}=Aa.getState().user;w(H(s.current,o.volume)),s.current=o.volume,m(ya({...o,volume:o.volume}));}},v=o=>{let{settings:b}=Aa.getState().user;o==="mute"?(Y(0),w(H(b.volume,0))):(w(H(b.volume,100)),Y(100));};return jsxs("div",{onMouseOver:()=>!t("isTouchScreen")&&u(true),onMouseLeave:()=>!t("isTouchScreen")&&u(false),id:t("hasSound")?"mute":"unmute",className:ea("pl-relative pl-rounded-full pl-inline-flex pl-items-center pl-justify-center pl-group pl-bg-black/75 pl-sound-icon",{desktop:"pl-min-w-[34px] pl-h-[34px] pl-p-1",desktopFullScreen:"pl-min-w-[48px] pl-h-[48px] pl-p-0 pl-px-1.5"}),children:[jsxs("div",{className:ea("pl-flex pl-items-center pl-justify-center pl-rounded-full group-hover:pl-bg-[#5E5E5E] pl-transition-all",{desktop:"pl-h-[26px] pl-min-w-[26px] group-hover:!pl-ps-1 pl-gap-1",desktopFullScreen:"pl-h-[36px] pl-min-w-[36px] group-hover:!pl-ps-1.5 pl-gap-1.5"}),children:[!t("isTouchScreen")&&jsx("input",{onMouseUp:I,type:"range",min:"0",max:"100",value:l.volume,onChange:o=>Y(+o.target.value),className:`pl-soundVolume ${t("isFullScreen")&&"pl-soundVolume-fullscreen"} pl-cursor-pointer rounded-full`,style:{background:`linear-gradient(to right, white ${l.volume}%, rgba(255,255,255,0.3) 0)`}}),jsx("div",{onClick:()=>t("hasSound")?v("mute"):v("unmute"),onDoubleClick:o=>o.stopPropagation(),style:{paddingInlineEnd:5},className:ea("pl-relative pl-flex pl-items-center pl-shrink-0",{desktop:"",desktopFullScreen:""}),children:jsx(O,{src:t("hasSound")?l.volume>=50?a.unMute:a.lowSound:a.mute,alt:t("hasSound")?"unmute-icon":"mute-icon",className:"pl-flex pl-items-center pl-cursor-pointer",width:n,height:i})})]}),g&&jsx(h,{className:"pl-left-0",title:t("hasSound")?"\u0635\u062F\u0627 (M)":"\u0628\u06CC\u200C\u0635\u062F\u0627 (M)"})]})},se=P;e();var R=({width:n,height:i,className:g})=>{A$1(({controller:{firstPlay:l,isFullScreen:s}})=>({firstPlay:l,isFullScreen:s}),shallowEqual);let[u,m]=useState(false);return jsxs("div",{onDoubleClick:l=>l.preventDefault(),onMouseOver:()=>!t("isTouchScreen")&&m(true),onMouseLeave:()=>!t("isTouchScreen")&&m(false),onClick:()=>{_(),$();},id:t("isFullScreen")?"exit-full-s":"full-s",className:ea(`pl-relative pl-cursor-pointer pl-flex pl-items-center pl-justify-center pl-rounded-full pl-transition-all ${g}`,{desktop:"pl-w-[40px] pl-h-[25px] hover:pl-bg-[#5E5E5E]",desktopFullScreen:"pl-w-[56px] pl-h-[36px]",touch:"pl-w-[32px] pl-h-[22px]",touchFullScreen:"pl-w-[48px] pl-h-[32px]"}),children:[jsx(O,{src:t("isFullScreen")?a.nonFullScreen:a.fullScreen,alt:"fullScreen-icon",width:n,height:i}),u&&jsx(h,{className:"pl-right-5",title:`${t("isFullScreen")?"\u062E\u0631\u0648\u062C \u0627\u0632":""} \u062A\u0645\u0627\u0645 \u0635\u0641\u062D\u0647 (F)`})]})},Ce=R;export{h as a,se as b,Ce as c};//# sourceMappingURL=chunk-QXTVEBKD.mjs.map
|
|
2
|
-
//# sourceMappingURL=chunk-QXTVEBKD.mjs.map
|
package/chunk-QXTVEBKD.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/videoPlayerLibrary/components/custom-components/soundVolume/soundVolume.tsx","../src/videoPlayerLibrary/components/custom-components/footer/controllbar/controllbarTooltip.tsx","../src/videoPlayerLibrary/components/custom-components/fullScreen/fullScreen.tsx"],"names":["init_esm_shims","ControllbarTooltip","title","className","jsx","conditions","controllbarTooltip_default","SoundVolume","width","height","showTooltip","setShowTooltip","useState","dispatch","useAppDispatch","settings","useAppSelector","shallowEqual","primaryVolumeRef","useRef","handleMouseUp","store_default","sendFluentLog","volumeLog","setUserSettings","handleMute","type","handleChangeSoundVolume","jsxs","tw","event","Image","importImages_default","soundVolume_default","FullScreen","firstPlay","isFullScreen","e","handleFullScreen","handleLockOrientation","fullScreen_default"],"mappings":"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","file":"chunk-QXTVEBKD.mjs","sourcesContent":["import { useRef, useState } from \"react\";\r\nimport { shallowEqual } from \"react-redux\";\r\nimport ControllbarTooltip from \"../footer/controllbar/controllbarTooltip\";\r\nimport Image from \"next/image\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport store from \"../../../helpers/redux/store\";\r\nimport { volumeLog } from \"../../../helpers/logs/logs\";\r\nimport { sendFluentLog } from \"../../../helpers/logs/fluentdLogger\";\r\nimport { setUserSettings } from \"../../../helpers/redux/slices/userSlice\";\r\nimport { handleChangeSoundVolume } from \"../../../helpers/redux/actions/controller.actions\";\r\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport { tw } from \"../../../helpers/helpers\";\r\n\r\nconst SoundVolume = ({ width, height }: { width?: number; height?: number }) => {\r\n const [showTooltip, setShowTooltip] = useState<boolean>(false);\r\n\r\n const dispatch = useAppDispatch();\r\n const { settings } = useAppSelector(({ user: { settings } }) => ({ settings }), shallowEqual);\r\n\r\n const primaryVolumeRef = useRef<number>(settings.volume);\r\n\r\n const handleMouseUp = () => {\r\n if (primaryVolumeRef.current !== settings.volume) {\r\n const { settings } = store.getState().user;\r\n sendFluentLog(volumeLog(primaryVolumeRef.current, settings.volume));\r\n primaryVolumeRef.current = settings.volume;\r\n // createSettings({ ...settings, volume: settings.volume });\r\n dispatch(setUserSettings({ ...settings, volume: settings.volume }));\r\n }\r\n };\r\n\r\n const handleMute = (type: string) => {\r\n const { settings } = store.getState().user;\r\n if (type === \"mute\") {\r\n handleChangeSoundVolume(0);\r\n sendFluentLog(volumeLog(settings.volume, 0));\r\n // createSettings({ ...settings, volume: 0 });\r\n } else {\r\n sendFluentLog(volumeLog(settings.volume, 100));\r\n handleChangeSoundVolume(100);\r\n // createSettings({ ...settings, volume: 100 });\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n onMouseOver={() => !conditions(ConditionName.isTouchScreen) && setShowTooltip(true)}\r\n onMouseLeave={() => !conditions(ConditionName.isTouchScreen) && setShowTooltip(false)}\r\n id={conditions(ConditionName.hasSound) ? \"mute\" : \"unmute\"}\r\n className={tw(`pl-relative pl-rounded-full pl-inline-flex pl-items-center pl-justify-center pl-group pl-bg-black/75 pl-sound-icon`, {\r\n desktop: \"pl-min-w-[34px] pl-h-[34px] pl-p-1\",\r\n desktopFullScreen: \"pl-min-w-[48px] pl-h-[48px] pl-p-0 pl-px-1.5\",\r\n })}\r\n >\r\n <div\r\n className={tw(\"pl-flex pl-items-center pl-justify-center pl-rounded-full group-hover:pl-bg-[#5E5E5E] pl-transition-all\", {\r\n desktop: \"pl-h-[26px] pl-min-w-[26px] group-hover:!pl-ps-1 pl-gap-1\",\r\n desktopFullScreen: \"pl-h-[36px] pl-min-w-[36px] group-hover:!pl-ps-1.5 pl-gap-1.5\",\r\n })}\r\n >\r\n {!conditions(ConditionName.isTouchScreen) && (\r\n <input\r\n onMouseUp={handleMouseUp}\r\n type=\"range\"\r\n min=\"0\"\r\n max=\"100\"\r\n value={settings.volume}\r\n onChange={(event) => handleChangeSoundVolume(+event.target.value)}\r\n className={`pl-soundVolume ${conditions(ConditionName.isFullScreen) && \"pl-soundVolume-fullscreen\"} pl-cursor-pointer rounded-full`}\r\n style={{ background: `linear-gradient(to right, white ${settings.volume}%, rgba(255,255,255,0.3) 0)` }}\r\n />\r\n )}\r\n <div\r\n onClick={() => (conditions(ConditionName.hasSound) ? handleMute(\"mute\") : handleMute(\"unmute\"))}\r\n onDoubleClick={(event: any) => event.stopPropagation()}\r\n style={{ paddingInlineEnd: 5 }}\r\n className={tw(\"pl-relative pl-flex pl-items-center pl-shrink-0\", { desktop: \"\", desktopFullScreen: \"\" })}\r\n >\r\n <Image\r\n src={conditions(ConditionName.hasSound) ? (settings.volume >= 50 ? IMAGES.unMute : IMAGES.lowSound) : IMAGES.mute}\r\n alt={conditions(ConditionName.hasSound) ? \"unmute-icon\" : \"mute-icon\"}\r\n className={`pl-flex pl-items-center pl-cursor-pointer`}\r\n width={width}\r\n height={height}\r\n />\r\n </div>\r\n </div>\r\n {showTooltip && <ControllbarTooltip className=\"pl-left-0\" title={conditions(ConditionName.hasSound) ? \"صدا (M)\" : \"بیصدا (M)\"} />}\r\n </div>\r\n );\r\n};\r\n\r\nexport default SoundVolume;\r\n","import { conditions } from \"../../../../helpers/conditions/conditions\";\nimport { ConditionName } from \"../../../../helpers/interfaces/enums\";\nimport { IControllbarTooltipProps } from \"../../../../helpers/interfaces/interfaces\";\n\nconst ControllbarTooltip = ({ title, className }: IControllbarTooltipProps) => (\n <span\n className={`pl-absolute pl-w-max pl-bg-black/75 pl-text-white pl-rounded-[8px] pl-leading-[18px] pl-flex pl-items-center pl-justify-center pl-font-normal ${\n conditions(ConditionName.isFullScreen)\n ? \"pl-bottom-[150%] pl-h-[34px] pl-px-[9.5px] pl-text-[15px]\"\n : \"pl-h-6 pl-bottom-[130%] pl-px-[9px] pl-text-[12px]\"\n } ${className}`}\n >\n {title}\n </span>\n);\n\nexport default ControllbarTooltip;\n","import { useEffect, useState } from \"react\";\r\nimport { shallowEqual } from \"react-redux\";\r\nimport ControllbarTooltip from \"../footer/controllbar/controllbarTooltip\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport { handleFullScreen, handleLockOrientation } from \"../../../helpers/redux/actions/controller.actions\";\r\nimport Image from \"next/image\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport { tw } from \"../../../helpers/helpers\";\r\n\r\nconst FullScreen = ({ width, height, className }: { width?: number; height?: number; className?: string }) => {\r\n useAppSelector(({ controller: { firstPlay, isFullScreen } }) => ({ firstPlay, isFullScreen }), shallowEqual);\r\n\r\n const [showTooltip, setShowTooltip] = useState<boolean>(false);\r\n\r\n // useEffect(() => {\r\n // if (!conditions(ConditionName.isFirstPlay)) dispatch(setActiveElements(false));\r\n // }, [isFullScreen]);\r\n\r\n return (\r\n <div\r\n onDoubleClick={(e) => e.preventDefault()}\r\n onMouseOver={() => !conditions(ConditionName.isTouchScreen) && setShowTooltip(true)}\r\n onMouseLeave={() => !conditions(ConditionName.isTouchScreen) && setShowTooltip(false)}\r\n onClick={() => {\r\n handleFullScreen();\r\n handleLockOrientation();\r\n }}\r\n id={conditions(ConditionName.isFullScreen) ? \"exit-full-s\" : \"full-s\"}\r\n className={tw(`pl-relative pl-cursor-pointer pl-flex pl-items-center pl-justify-center pl-rounded-full pl-transition-all ${className}`, {\r\n desktop: \"pl-w-[40px] pl-h-[25px] hover:pl-bg-[#5E5E5E]\",\r\n desktopFullScreen: \"pl-w-[56px] pl-h-[36px]\",\r\n touch: \"pl-w-[32px] pl-h-[22px]\",\r\n touchFullScreen: \"pl-w-[48px] pl-h-[32px]\",\r\n })}\r\n >\r\n <Image\r\n src={conditions(ConditionName.isFullScreen) ? IMAGES.nonFullScreen : IMAGES.fullScreen}\r\n alt=\"fullScreen-icon\"\r\n width={width}\r\n height={height}\r\n />\r\n\r\n {showTooltip && (\r\n <ControllbarTooltip className=\"pl-right-5\" title={`${conditions(ConditionName.isFullScreen) ? \"خروج از\" : \"\"} تمام صفحه (F)`} />\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default FullScreen;\r\n"]}
|