cafe-video-player 3.0.13 → 3.0.15
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/{VideoHighLighter-T2LVURER.mjs → VideoHighLighter-JYEEHSUY.mjs} +2 -2
- package/{VideoHighLighter-T2LVURER.mjs.map → VideoHighLighter-JYEEHSUY.mjs.map} +1 -1
- package/{VideoHighLighter-OBD2IGA6.js → VideoHighLighter-SIOPEIR2.js} +2 -2
- package/{VideoHighLighter-OBD2IGA6.js.map → VideoHighLighter-SIOPEIR2.js.map} +1 -1
- package/{backwardForward-ZUVULGGJ.mjs → backwardForward-3X63XNNJ.mjs} +2 -2
- package/{backwardForward-ZUVULGGJ.mjs.map → backwardForward-3X63XNNJ.mjs.map} +1 -1
- package/{backwardForward-S6ZHVC75.js → backwardForward-HTLSZBXC.js} +2 -2
- package/{backwardForward-S6ZHVC75.js.map → backwardForward-HTLSZBXC.js.map} +1 -1
- package/chunk-3TPEXSZV.js +2 -0
- package/{chunk-ZWGZGWEB.js.map → chunk-3TPEXSZV.js.map} +1 -1
- package/{chunk-SKRDEKL2.mjs → chunk-4NYDCAYH.mjs} +4 -4
- package/{chunk-SKRDEKL2.mjs.map → chunk-4NYDCAYH.mjs.map} +1 -1
- package/chunk-5UGSCO4K.js +3 -0
- package/{chunk-BFE2RKVK.js.map → chunk-5UGSCO4K.js.map} +1 -1
- package/{chunk-4XKL6TLO.mjs → chunk-6LGS5W4B.mjs} +2 -2
- package/{chunk-4XKL6TLO.mjs.map → chunk-6LGS5W4B.mjs.map} +1 -1
- package/chunk-7FHLAPSR.js +2 -0
- package/chunk-7FHLAPSR.js.map +1 -0
- package/{chunk-CCO6GDG2.mjs → chunk-HOAJ3EFI.mjs} +3 -3
- package/{chunk-CCO6GDG2.mjs.map → chunk-HOAJ3EFI.mjs.map} +1 -1
- package/chunk-HZASW2B2.js +2 -0
- package/{chunk-DJ6KVZRK.js.map → chunk-HZASW2B2.js.map} +1 -1
- package/{chunk-WFHA2FPC.js → chunk-IKMA6LUH.js} +5 -5
- package/{chunk-WFHA2FPC.js.map → chunk-IKMA6LUH.js.map} +1 -1
- package/chunk-JU5IQH3S.mjs +2 -0
- package/chunk-JU5IQH3S.mjs.map +1 -0
- package/{chunk-IBV5SFIT.js → chunk-K4YPVDEE.js} +2 -2
- package/{chunk-IBV5SFIT.js.map → chunk-K4YPVDEE.js.map} +1 -1
- package/{chunk-QM3W7EYS.js → chunk-KSZ35TPK.js} +2 -2
- package/{chunk-QM3W7EYS.js.map → chunk-KSZ35TPK.js.map} +1 -1
- package/{chunk-BC4366GN.mjs → chunk-NLCBOGTI.mjs} +2 -2
- package/{chunk-BC4366GN.mjs.map → chunk-NLCBOGTI.mjs.map} +1 -1
- package/{chunk-GYUGYOVP.mjs → chunk-P4O3IKAQ.mjs} +2 -2
- package/{chunk-GYUGYOVP.mjs.map → chunk-P4O3IKAQ.mjs.map} +1 -1
- package/{chunk-73KLK4QU.mjs → chunk-QFADUEGX.mjs} +2 -2
- package/{chunk-73KLK4QU.mjs.map → chunk-QFADUEGX.mjs.map} +1 -1
- package/{chunk-PKXJEXKI.mjs → chunk-UL5LQB3G.mjs} +2 -2
- package/{chunk-PKXJEXKI.mjs.map → chunk-UL5LQB3G.mjs.map} +1 -1
- package/{chunk-U3VFRU6R.js → chunk-VUHZVVMS.js} +2 -2
- package/{chunk-U3VFRU6R.js.map → chunk-VUHZVVMS.js.map} +1 -1
- package/chunk-XCFESDIY.js +2 -0
- package/chunk-XCFESDIY.js.map +1 -0
- package/chunk-ZI6O72OM.mjs +2 -0
- package/chunk-ZI6O72OM.mjs.map +1 -0
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/{nonStaticVideoTag-6OHMSJEH.js → nonStaticVideoTag-5HEUBWAN.js} +2 -2
- package/{nonStaticVideoTag-6OHMSJEH.js.map → nonStaticVideoTag-5HEUBWAN.js.map} +1 -1
- package/{nonStaticVideoTag-J6JNATM6.mjs → nonStaticVideoTag-P47FI6UV.mjs} +2 -2
- package/{nonStaticVideoTag-J6JNATM6.mjs.map → nonStaticVideoTag-P47FI6UV.mjs.map} +1 -1
- package/package.json +1 -1
- package/staticPlayer-JLBPTEWE.js +2 -0
- package/{staticPlayer-TNS4JFRP.js.map → staticPlayer-JLBPTEWE.js.map} +1 -1
- package/{staticPlayer-2IO6XEKM.mjs → staticPlayer-W6TBVD5A.mjs} +2 -2
- package/{staticPlayer-2IO6XEKM.mjs.map → staticPlayer-W6TBVD5A.mjs.map} +1 -1
- package/{staticVideoTag-2YYZBRPY.mjs → staticVideoTag-JOPHGL3R.mjs} +2 -2
- package/{staticVideoTag-2YYZBRPY.mjs.map → staticVideoTag-JOPHGL3R.mjs.map} +1 -1
- package/{staticVideoTag-VLNCYNKV.js → staticVideoTag-OZZU5MWF.js} +2 -2
- package/{staticVideoTag-VLNCYNKV.js.map → staticVideoTag-OZZU5MWF.js.map} +1 -1
- package/videoArea-6UF3GOX7.mjs +2 -0
- package/{videoArea-2F2NDD76.mjs.map → videoArea-6UF3GOX7.mjs.map} +1 -1
- package/videoArea-J6ITRRDQ.js +2 -0
- package/{videoArea-35ABV3CM.js.map → videoArea-J6ITRRDQ.js.map} +1 -1
- package/videoPlayerStyles.css +0 -8
- package/{vodPlayer-JTS4WVOB.mjs → vodPlayer-BJ7FLFUB.mjs} +2 -2
- package/{vodPlayer-JTS4WVOB.mjs.map → vodPlayer-BJ7FLFUB.mjs.map} +1 -1
- package/{vodPlayer-337TYSU4.js → vodPlayer-PFFEBJFX.js} +2 -2
- package/{vodPlayer-337TYSU4.js.map → vodPlayer-PFFEBJFX.js.map} +1 -1
- package/chunk-BFE2RKVK.js +0 -3
- package/chunk-DJ6KVZRK.js +0 -2
- package/chunk-OGCKLRYP.js +0 -2
- package/chunk-OGCKLRYP.js.map +0 -1
- package/chunk-WU4GN63P.mjs +0 -2
- package/chunk-WU4GN63P.mjs.map +0 -1
- package/chunk-Y7BIYTQP.mjs +0 -2
- package/chunk-Y7BIYTQP.mjs.map +0 -1
- package/chunk-ZSSCZTW3.js +0 -2
- package/chunk-ZSSCZTW3.js.map +0 -1
- package/chunk-ZWGZGWEB.js +0 -2
- package/staticPlayer-TNS4JFRP.js +0 -2
- package/videoArea-2F2NDD76.mjs +0 -2
- package/videoArea-35ABV3CM.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/videoPlayerLibrary/components/custom-components/videoArea/videoArea.tsx","../src/videoPlayerLibrary/components/custom-components/header/header.tsx","../src/videoPlayerLibrary/components/custom-components/lockUnlock/lock.tsx","../src/videoPlayerLibrary/components/custom-components/main/main.tsx","../src/videoPlayerLibrary/components/custom-components/footer/footer.tsx","../src/videoPlayerLibrary/components/custom-components/footer/progressbar/progressbar.tsx","../src/videoPlayerLibrary/components/custom-components/tooltip/tooltip.tsx","../src/videoPlayerLibrary/helpers/redux/actions/progressbar.actions.ts","../src/videoPlayerLibrary/components/custom-components/footer/progressbar/markers/markers.tsx","../src/videoPlayerLibrary/helpers/hooks/useOnClickOutside.tsx","../src/videoPlayerLibrary/components/custom-components/emoji/emoji.tsx","../src/videoPlayerLibrary/components/custom-components/footer/controllbar/controllbar.tsx","../src/videoPlayerLibrary/components/custom-components/settings/settings.tsx","../src/videoPlayerLibrary/components/custom-components/popover/popover.tsx","../src/videoPlayerLibrary/components/custom-components/qualityLevels/qualityLevels.tsx","../src/videoPlayerLibrary/components/custom-components/speed/speed.tsx","../src/videoPlayerLibrary/components/icon-components/speed.tsx","../src/videoPlayerLibrary/components/custom-components/subtitles/subtitleSettingMenu.tsx","../src/videoPlayerLibrary/components/icon-components/audioIcon.tsx","../src/videoPlayerLibrary/components/custom-components/multiAudio/MultiAudio.tsx","../src/videoPlayerLibrary/components/custom-components/subtitles/subtitleIcon.tsx","../src/videoPlayerLibrary/components/custom-components/elapsedTime/elapsedTime.tsx","../src/videoPlayerLibrary/components/custom-components/subtitles/displaySubtitle.tsx","../src/videoPlayerLibrary/components/custom-components/videoTag/videoTag.tsx","../src/videoPlayerLibrary/helpers/hooks/useActiveInActive.tsx","../src/videoPlayerLibrary/helpers/hooks/useHandleResize.tsx","../src/videoPlayerLibrary/components/icon-components/closeIcon.tsx"],"names":["init_cjs_shims","Lock","jsxs","conditions","jsx","Image","importImages_default","handleLock","lock_default","Header","firstPlay","useAppSelector","lock","activeElements","shallowEqual","tw","header_default","Main","autoplay","play","isLoading","showLoader","setShowLoader","useState","showPlayPause","setShowPlayPause","useEffect","timeout","showLoaderTime","isTouchScreen","loader_default","Fragment","e","handleBackwardForward","playPause_default","main_default","getPointerPosition","event","videoElementSizeInfo","store_default","clientX","hideProgressTooltip","progressTooltip","handlerShowOrHiddenControllbarInTouch","generalStyleTooltipHandler","showProgressTooltip","progressBarTooltip","offset","progressArea","SAFE_OFFSET","pointerX","tooltipWidth","barWidth","left","setTooltipTime","getTimeFromPointer","secondsToHMS","handleTimeTooltip","isTimer","track","progressTrack","duration","rect","handleProgressTime","bar","progressBar","currentTime","handlePointerDown","timeoutIds","setIsPointerDown","dispatch","setActivePointerProgressBar","setDelayTurnOffControlbar","id","show","handlePointerMove","activePointerProgressBar","mainPlayerVideoTag","handlePointerUp","setTimeoutIds","right","params","handleVideoTimeline","handleTimeout","ids","timeoutIdTemp","settingPopover","delayTurnOffControlbar","setActiveElements","activeElementsTime","handleCatchUpLoadingLog","timer","sendFluentLog","catchUpLoadingLog","handleMouseMove","handleMouseOut","deconstructTimestamp","timestamp","splitStampMilliseconds","timePartsSplit","getSecondsFromTimestamp","timestampParts","getPropsFromDef","def","imageDefSplit","imageUrl","splitCoords","getFullyQualifiedUrl","path","base","getVttCss","vttImageDef","vttUrl","cssObj","baseSplit","imageProps","fetchFile","url","setVttPool","response","setInfo","data","processedVtts","vttDef","vttDefSplit","vttTimingSplit","vttTimeStart","vttTimeEnd","vttCssDef","error","getStyleForTime","time","vttPool","cache","item","objectVtt","Tooltip","details","tooltipTime","isFullScreen","setVttUrl","tooltip_default","memo","useOnClickOutside","ref","handler","listener","useOnClickOutside_default","Emoji","name","className","dataMarker","getEmojiUrl","emoji_default","Markers","useAppDispatch","markers","markerTime","setMarkerTime","overlapMarkers","setOverlapMarkers","overlapMarkersPosition","setOverlapMarkersPosition","isOverlapMarkersInViewport","setIsOverlapMarkersInViewport","calculateMarkerPosition","progressBarWidth","handleClick","markerId","markerTitle","markerDescription","markerSticker","result","sumOverlapMarkersTime","marker","handleJumpToMarker","eventMarkerClickLog","markerRef","useRef","isInViewPort","inViewPort","handleContextMenu","overlapMarker","markers_default","ProgressBar","isPointerDown","bufferedTimeWidth","progressbar_default","Popover","forwardRef","children","status","onClose","type","classNames","parentClassNames","styles","isBlurBackground","isFullHeight","isHeader","isHasCatchUpLineOnTop","animation","scrollbar","isFocusOnInput","showPopover","setShowPopover","maxHeight","setMaxHeight","maxHeightOnTouchMove","setMaxHeightOnTouchMove","zIndexOnCatchUp","setZIndexOnCatchUp","handleTouchMove","handleTouchEnd","content","createPortal","popover_default","QualityLevels","setSection","showQualityLevelsIcon","qualityLevels","manualQuality","autoQuality","settings","qualityLevelsPopover","showTooltip","setShowTooltip","handleTickSelectedQuality","index","qualityLevel","qualityLevelsRef","setQualityLevelsPopover","qualityLevelsContent","qualityChangeRequestLog","setUserSettings","controllbarTooltip_default","qualityLevels_default","SpeedIcon","onClick","onMouseOver","onMouseLeave","width","height","speed_default","speeds","Speed","showSpeedIcon","speedPopover","speedRef","setSpeedPopover","speedContent","speed","speedChangeLog","SubtitleSettingMenu","subtitles","selectedSubtitle","setSelectedSubtitle","textTrack","setSubtitleText","subtitleLog","subtitle","subtitleSettingMenu_default","AudioIcon","audioIcon_default","MultiAudio","showMultiAudioIcon","multiAudioPopover","multiAudio","selectedAudioId","setMultiAudioPopover","multiAudioContent","audio","setSelectedAudioId","MultiAudio_default","SubtitleIcon","disableTooltip","normalStyle","handleSubtitle","subtitleIcon_default","Settings","section","settingsRef","setSettingPopover","_","settings_default","ElapsedTime","reveresElapsedTime","setReveresElapsedTime","prev","elapsedTime_default","Controlbar","fullScreen_default","styleMerge","soundVolume_default","controllbar_default","DisplaySubtitle","subtitleText","spliteStringPerLine","text","value","cleanVTT","displaySubtitle_default","Footer","footer_default","StaticVideoTag","dynamic","NonStaticVideoTag","VideoTag","videoTag_default","useActiveInActive","isRightDoubleTouched","isLeftDoubleTouched","timeoutRef","isRightDoubleTouchedRef","isLeftDoubleTouchedRef","shouldInActiveElements","isEnded","handleTouchStart","checkParentTarget","videoArea","useActiveInActive_default","useHandleResize","handleResize","handleVideoElementSizeInfo","useHandleResize_default","CloseIcon","closeIcon_default","BackwardForward","VideoArea","isRightForward","setIsRightForward","isLeftBackward","setIsLeftBackward","firstMute","canPlayVideo","useFullScreen_default","handleChangeSoundVolume","firstUnMuteHandler","handlePlayPause","handleDoubleClick","SoundVolumeAlert_default","handleFullScreen","videoArea_default"],"mappings":"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","file":"chunk-WFHA2FPC.js","sourcesContent":["\"use client\";\n\nimport { MouseEvent, useState } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nimport Header from \"../header/header\";\nimport Main from \"../main/main\";\nimport Footer from \"../footer/footer\";\nimport VideoTag from \"../videoTag/videoTag\";\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\nimport { conditions } from \"../../../helpers/conditions/conditions\";\nimport { ConditionName, zIndex } from \"../../../helpers/interfaces/enums\";\nimport {\n firstUnMuteHandler,\n handleChangeSoundVolume,\n handleDoubleClick,\n handleFullScreen,\n handlePlayPause,\n} from \"../../../helpers/redux/actions/controller.actions\";\nimport useFullScreen from \"../../../helpers/hooks/useFullScreen\";\nimport useActiveInActive from \"../../../helpers/hooks/useActiveInActive\";\nimport dynamic from \"next/dynamic\";\nimport useHandleResize from \"../../../helpers/hooks/useHandleResize\";\nimport { setActiveElements } from \"../../../helpers/redux/slices/controllerSlice\";\nimport { styleMerge, tw } from \"../../../helpers/helpers\";\nimport SoundVolumeAlert from \"../soundVolumeAlert/SoundVolumeAlert\";\nimport CloseIcon from \"../../icon-components/closeIcon\";\nimport Settings from \"../settings/settings\";\nimport SubtitleIcon from \"../subtitles/subtitleIcon\";\n\n// const TouchVolumeBrightness = dynamic(() => import(\"../touchVolumeBrightness/touchVolumeBrightness\"));\nconst BackwardForward = dynamic(() => import(\"../backwardForward/backwardForward\"));\n\nconst VideoArea = () => {\n const [isRightForward, setIsRightForward] = useState<boolean>(false);\n const [isLeftBackward, setIsLeftBackward] = useState<boolean>(false);\n\n const dispatch = useAppDispatch();\n\n useAppSelector(\n ({ videoData: { details, params, videoElementSizeInfo } }) => ({\n details,\n params,\n videoElementSizeInfo,\n }),\n shallowEqual,\n );\n\n const { firstMute, firstPlay, activeElements } = useAppSelector(\n ({ controller: { firstPlay, isFullScreen, isLoading, canPlayVideo, firstMute, activeElements } }) => ({\n firstPlay,\n isFullScreen,\n isLoading,\n canPlayVideo,\n firstMute,\n activeElements,\n }),\n shallowEqual,\n );\n\n useFullScreen();\n useHandleResize();\n useActiveInActive(isRightForward, isLeftBackward);\n\n return (\n <div\n id=\"video-area\"\n style={{ zIndex: conditions(ConditionName.isFullScreen) ? zIndex.videoPlayerInFullScreen : \"unset\" }}\n onClick={(event) => {\n if (isRightForward || isLeftBackward) return;\n\n const popoverElement = document.getElementById(\"popover-content\");\n if (popoverElement) return;\n\n if (firstMute) {\n handleChangeSoundVolume(50);\n firstUnMuteHandler();\n return;\n }\n\n if (conditions(ConditionName.isTouchScreen)) firstPlay ? handlePlayPause(event) : dispatch(setActiveElements(!activeElements));\n else handlePlayPause(event);\n }}\n onDoubleClick={(event: MouseEvent<HTMLDivElement>) => handleDoubleClick(event)}\n className={tw(\n `pl-bg-contain pl-bg-center pl-w-full pl-relative pl-bg-no-repeat pl-h-full pl-max-h-screen pl-aspect-video pl-flex pl-items-center ${\n !conditions(ConditionName.isActiveElements) && \"pl-cursor-none\"\n }`,\n {\n desktop: \"pl-rounded-[12px] pl-overflow-hidden\",\n touchFullScreen: \"pl-fixed pl-w-screen dvh\",\n desktopFullScreen: \"pl-fixed pl-w-screen dvh\",\n },\n )}\n >\n {conditions(ConditionName.isTouchScreen) && (\n <div\n id=\"video-opacity\"\n style={{ zIndex: zIndex.videoOpacity }}\n className={`pl-absolute pl-bg-black/20 pl-size-full pl-aspect-video pl-transition-all pl-duration-500 ${\n conditions(ConditionName.isActiveElements) ? \"pl-opacity-100 pl-visible\" : \"pl-opacity-0 pl-invisible\"\n } `}\n />\n )}\n\n {conditions(ConditionName.showSoundVolumeAlert) && (\n <SoundVolumeAlert\n className={tw(\"\", { touch: \"pl-absolute pl-z-10 pl-top-[12px] pl-left-[16px]\", touchFullScreen: \"pl-top-[16px] pl-left-[24px]\" })}\n />\n )}\n\n {!firstPlay && conditions(ConditionName.isActiveElements) && (\n <div\n className={tw(\"pl-absolute pl-z-10 pl-flex pl-items-center pl-justify-center pl-gap-4\", {\n touch: \"pl-top-3 pl-right-4\",\n touchFullScreen: \"pl-top-5 pl-right-6\",\n })}\n >\n {conditions(ConditionName.isTouchScreen) && conditions(ConditionName.isFullScreen) && (\n <CloseIcon onClick={handleFullScreen} className=\"pl-text-white pl-size-[18px]\" />\n )}\n\n {conditions(ConditionName.showSettingIcon) && conditions(ConditionName.isTouchScreen) && (\n <Settings\n normalStyle\n width={styleMerge({ desktop: 16, desktopFullScreen: 24, touch: 20, touchFullScreen: 24 })}\n height={styleMerge({ desktop: 16, desktopFullScreen: 24, touch: 20, touchFullScreen: 24 })}\n />\n )}\n\n {conditions(ConditionName.isTouchScreen) && (\n <SubtitleIcon\n normalStyle\n width={styleMerge({ desktop: 16, desktopFullScreen: 24, touch: 20, touchFullScreen: 24 })}\n height={styleMerge({ desktop: 16, desktopFullScreen: 24, touch: 20, touchFullScreen: 24 })}\n />\n )}\n </div>\n )}\n\n {/* {conditions(ConditionName.showTouchVolumeBrightness) && <TouchVolumeBrightness />} */}\n {conditions(ConditionName.showBackwardForward) && (\n <div\n className={`pl-absolute pl-top-0 pl-right-0 pl-w-full pl-h-full pl-overflow-hidden pl-flex pl-items-center`}\n style={{\n zIndex: isLeftBackward || isRightForward ? zIndex.backwardForwardActive : zIndex.backwardForwardInActive,\n }}\n >\n <BackwardForward\n type={conditions(ConditionName.isTouchScreen) ? \"touchForward\" : \"forward\"}\n isRightForward={isRightForward}\n setIsRightForward={setIsRightForward}\n />\n\n <BackwardForward\n type={conditions(ConditionName.isTouchScreen) ? \"touchBackward\" : \"backward\"}\n isLeftBackward={isLeftBackward}\n setIsLeftBackward={setIsLeftBackward}\n />\n </div>\n )}\n <VideoTag />\n <div id=\"playerElements\" className={`pl-absolute pl-top-0 pl-right-0 pl-w-full pl-h-full`}>\n <div className={`pl-flex pl-flex-col pl-justify-between pl-w-full pl-h-full`}>\n {conditions(ConditionName.showHeader) && <Header />}\n {conditions(ConditionName.showMain) && <Main />}\n {conditions(ConditionName.showFooter) && <Footer />}\n </div>\n </div>\n </div>\n );\n};\n\nexport default VideoArea;\n","import { shallowEqual } from \"react-redux\";\nimport Title from \"../title/title\";\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\nimport { conditions } from \"../../../helpers/conditions/conditions\";\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\nimport Lock from \"../lockUnlock/lock\";\nimport { tw } from \"../../../helpers/helpers\";\n\nconst Header = () => {\n const { firstPlay } = useAppSelector(({ controller: { lock, activeElements, firstPlay } }) => ({ lock, activeElements, firstPlay }), shallowEqual);\n\n return (\n <div\n // style={{ backgroundImage: \"linear-gradient(180deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0) 100%)\" }}\n className={tw(`pl-duration-300 pl-transition-[opacity] ${firstPlay ? \"pl-opacity-0\" : \"pl-opacity-100\"}`, {\n desktop: \"pl-rounded-t-[12px] pl-pt-8 pl-h-[45.5px]\",\n touch: \"pl-h-[16px]\",\n })}\n >\n <div className=\" pl-mx-8 pl-flex pl-items-start pl-justify-end pl-h-full\">\n {/* {conditions(ConditionName.showTitle) && <Title />} */}\n {conditions(ConditionName.isLock) && <Lock />}\n </div>\n </div>\n );\n};\n\nexport default Header;\n","import Image from \"next/image\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport { handleLock } from \"../../../helpers/redux/actions/controller.actions\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\r\n\r\nconst Lock = () => {\r\n\r\n return (\r\n <div className={`pl-relative animate__animated animate__faster ${conditions(ConditionName.isActiveElements) ? \"animate__fadeIn pl-pointer-events-auto\" : \"animate__fadeOut pl-pointer-events-none\"}`}>\r\n <Image\r\n src={IMAGES.lock}\r\n alt=\"lock-icon\"\r\n width={20}\r\n height={20}\r\n onClick={() => handleLock(\"unlock\")}\r\n />\r\n {!localStorage.getItem(\"unlock-click\") && <p className=\"pl-text-[10px] pl-text-black/[0.87] pl-bg-[#F7F7F7] pl-absolute pl-left-0 pl-px-4 pl-py-3 pl-rounded-[8px] pl-w-max\">برای باز کردن قفل، کلیک کنید</p>}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Lock;\r\n","import { useEffect, useState } from \"react\";\r\nimport { shallowEqual } from \"react-redux\";\r\nimport PlayPause from \"../playPause/playPause\";\r\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport { ConditionName, zIndex } from \"../../../helpers/interfaces/enums\";\r\nimport Loader from \"../loader/loader\";\r\nimport { showLoaderTime } from \"../../../helpers/environment\";\r\nimport Image from \"next/image\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport { handleBackwardForward } from \"../../../helpers/redux/actions/controller.actions\";\r\nimport { isTouchScreen } from \"../../../helpers/helpers\";\r\n\r\nconst Main = () => {\r\n const { firstPlay, autoplay, play, isLoading } = useAppSelector(\r\n ({\r\n controller: { lock, firstPlay, play, activeElements, isLoading },\r\n videoData: {\r\n params: { autoplay },\r\n },\r\n }) => ({ lock, firstPlay, autoplay, play, activeElements, isLoading }),\r\n shallowEqual,\r\n );\r\n\r\n const [showLoader, setShowLoader] = useState<boolean>(true);\r\n const [showPlayPause, setShowPlayPause] = useState<boolean>(!autoplay);\r\n\r\n useEffect(() => {\r\n if (firstPlay || conditions(ConditionName.isTouchScreen)) return;\r\n\r\n let timeout: any = null;\r\n setShowPlayPause(true);\r\n timeout = setTimeout(() => setShowPlayPause(false), 1000);\r\n return () => {\r\n if (timeout) clearTimeout(timeout);\r\n };\r\n }, [play, firstPlay]);\r\n\r\n useEffect(() => {\r\n let timeout: any;\r\n if (isLoading) timeout = setTimeout(() => setShowLoader(true), showLoaderTime);\r\n else setShowLoader(false);\r\n return () => {\r\n clearTimeout(timeout);\r\n };\r\n }, [isLoading, firstPlay]);\r\n\r\n return (\r\n <main className={`pl-flex-1 pl-flex pl-flex-col ${isTouchScreen() ? \"pl-absolute pl-inset-0\" : \"\"}`}>\r\n {showLoader ? (\r\n <Loader />\r\n ) : (\r\n <>\r\n {!conditions(ConditionName.isLock) && (\r\n <div\r\n id=\"main-content\"\r\n className={`pl-h-full pl-flex-1 pl-flex pl-justify-center pl-items-center pl-text-center ${\r\n conditions(ConditionName.isActiveElements) ? \"pl-pointer-events-auto\" : \"pl-pointer-events-none\"\r\n }`}\r\n >\r\n {!conditions(ConditionName.isTouchScreen) ? (\r\n <div className=\"pl-flex pl-justify-center pl-gap-8 pl-items-center pl-w-max\" style={{ zIndex: zIndex.mainIcons }}>\r\n <PlayPause\r\n normalStyle\r\n disableScale\r\n disableTooltip\r\n inverse={!firstPlay}\r\n width={conditions(ConditionName.isFullScreen) ? 81 : 48}\r\n height={conditions(ConditionName.isFullScreen) ? 81 : 48}\r\n className={`pl-flex pl-transition-all pl-duration-300 pl-ease-in-out pl-items-center pl-justify-center pl-rounded-full ${\r\n conditions(ConditionName.isFullScreen) ? \"pl-size-[122px]\" : \"pl-size-[72px]\"\r\n } pl-bg-black/75 ${showPlayPause ? \"pl-opacity-100\" : \"pl-opacity-0 pl-scale-0\"} ${\r\n firstPlay ? \"!pl-cursor-pointer\" : \"!pl-cursor-default\"\r\n }`}\r\n />\r\n </div>\r\n ) : (\r\n <div className=\"pl-flex pl-justify-center pl-gap-8 pl-items-center pl-w-max\" style={{ zIndex: zIndex.mainIcons }}>\r\n {!firstPlay && (\r\n <div\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n handleBackwardForward(\"touchForward\", 10, e);\r\n }}\r\n className={`pl-flex pl-transition-all pl-duration-300 pl-ease-in-out pl-items-center pl-justify-center pl-rounded-full ${\r\n conditions(ConditionName.isFullScreen) ? \"pl-size-[56px]\" : \"pl-size-[40px]\"\r\n } pl-bg-black/75 ${conditions(ConditionName.isActiveElements) ? \"pl-opacity-100\" : \"pl-opacity-0\"}`}\r\n >\r\n <Image\r\n src={IMAGES.forward2}\r\n alt=\"\"\r\n className={\"!pl-cursor-pointer\"}\r\n width={conditions(ConditionName.isFullScreen) ? 28 : 16}\r\n height={conditions(ConditionName.isFullScreen) ? 28 : 16}\r\n />\r\n </div>\r\n )}\r\n\r\n <PlayPause\r\n normalStyle\r\n disableScale\r\n disableTooltip\r\n className={`pl-flex pl-transition-all pl-duration-300 pl-ease-in-out pl-items-center pl-justify-center pl-rounded-full ${\r\n conditions(ConditionName.isFullScreen) ? \"pl-size-[68px]\" : \"pl-size-[48px]\"\r\n } pl-bg-black/75 ${conditions(ConditionName.isActiveElements) ? \"pl-opacity-100\" : \"pl-opacity-0\"}`}\r\n width={conditions(ConditionName.isFullScreen) ? 36 : 24}\r\n height={conditions(ConditionName.isFullScreen) ? 36 : 24}\r\n />\r\n\r\n {!firstPlay && (\r\n <div\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n handleBackwardForward(\"touchBackward\", 10, e);\r\n }}\r\n className={`pl-flex pl-transition-all pl-duration-300 pl-ease-in-out pl-items-center pl-justify-center pl-rounded-full ${\r\n conditions(ConditionName.isFullScreen) ? \"pl-size-[56px]\" : \"pl-size-[40px]\"\r\n } pl-bg-black/75 ${conditions(ConditionName.isActiveElements) ? \"pl-opacity-100\" : \"pl-opacity-0\"}`}\r\n >\r\n <Image\r\n src={IMAGES.backward2}\r\n alt=\"\"\r\n className={\"!pl-cursor-pointer\"}\r\n width={conditions(ConditionName.isFullScreen) ? 28 : 16}\r\n height={conditions(ConditionName.isFullScreen) ? 28 : 16}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </>\r\n )}\r\n </main>\r\n );\r\n};\r\n\r\nexport default Main;\r\n","import { shallowEqual } from \"react-redux\";\nimport ProgressBar from \"./progressbar/progressbar\";\nimport Controllbar from \"./controllbar/controllbar\";\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\nimport { conditions } from \"../../../helpers/conditions/conditions\";\nimport { ConditionName, zIndex } from \"../../../helpers/interfaces/enums\";\nimport DisplaySubtitle from \"../subtitles/displaySubtitle\";\nimport { tw } from \"../../../helpers/helpers\";\n\nconst Footer = () => {\n const { firstPlay } = useAppSelector(\n ({ controller: { lock, isFullScreen, isLoading, activeElements, firstPlay } }) => ({ lock, isFullScreen, isLoading, activeElements, firstPlay }),\n shallowEqual,\n );\n useAppSelector(({ videoData: { subtitles, selectedSubtitle } }) => ({ subtitles, selectedSubtitle }), shallowEqual);\n\n let styles = \"\";\n\n if (conditions(ConditionName.isTouchScreen)) {\n if (conditions(ConditionName.isFullScreen)) styles = \"pl-gap-2.5 pl-mb-8\";\n else styles = \"pl-gap-3\";\n } else {\n if (conditions(ConditionName.isFullScreen)) styles = \"pl-gap-3 pl-mb-3\";\n else styles = \"pl-gap-1.5 pl-mb-1.5\";\n }\n\n return (\n <div\n id=\"footer\"\n className={tw(`pl-relative pl-rounded-b-[12px] pl-duration-300`)}\n onDoubleClick={(event) => conditions(ConditionName.isActiveElements) && event.stopPropagation()}\n onClick={(event) => conditions(ConditionName.isActiveElements) && event.stopPropagation()}\n style={{\n zIndex: zIndex.footer,\n // backgroundImage: \"linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.5) 100%)\",\n backgroundBlendMode: \"multiply\",\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n }}\n >\n <>\n {conditions(ConditionName.showSubtitle) && <DisplaySubtitle />}\n {!conditions(ConditionName.isLock) && (\n <>\n <div\n className={`pl-flex pl-flex-col pl-w-full pl-mx-auto animate__animated animate__faster ${styles} ${\n conditions(ConditionName.isActiveElements) && !conditions(ConditionName.isLoading)\n ? \"animate__fadeIn pl-pointer-events-auto\"\n : \"animate__fadeOut pl-pointer-events-none\"\n }`}\n >\n {conditions(ConditionName.showProgressbar) && <ProgressBar />}\n <Controllbar />\n </div>\n </>\n )}\n </>\n </div>\n );\n};\n\nexport default Footer;\n","import { useEffect, useState } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nimport Tooltip from \"../../tooltip/tooltip\";\nimport {\n handleCatchUpLoadingLog,\n handleMouseMove,\n handleMouseOut,\n handlePointerDown,\n handlePointerMove,\n handlePointerUp,\n hideProgressTooltip,\n} from \"../../../../helpers/redux/actions/progressbar.actions\";\nimport { useAppSelector } from \"../../../../helpers/redux/hooks\";\nimport { ConditionName } from \"../../../../helpers/interfaces/enums\";\nimport { conditions } from \"../../../../helpers/conditions/conditions\";\nimport Markers from \"./markers/markers\";\nimport { tw } from \"../../../../helpers/helpers\";\n\nconst ProgressBar = () => {\n const [isPointerDown, setIsPointerDown] = useState<boolean>(false);\n const [timeoutIds, setTimeoutIds] = useState<any[]>([]);\n\n useEffect(() => {\n hideProgressTooltip(document.querySelector(\".progressTooltip\"));\n }, []);\n\n const { duration, currentTime, bufferedTimeWidth } = useAppSelector(\n ({ controller: { duration, currentTime, bufferedTimeWidth, isFullScreen } }) => ({\n duration,\n currentTime,\n bufferedTimeWidth,\n isFullScreen,\n }),\n shallowEqual,\n );\n useAppSelector(\n ({ videoData: { params, videoElementSizeInfo } }) => ({\n params,\n videoElementSizeInfo,\n }),\n shallowEqual,\n );\n\n return (\n <div\n id=\"time-progress-container\"\n className={tw(`pl-relative ${conditions(ConditionName.isTouchScreenPortrait) ? \"pl-order-1\" : \"pl-order-none\"}`, { desktop: \"pl-px-4\" })}\n >\n <div className=\"pl-relative\">\n <Tooltip />\n <Markers />\n </div>\n\n <div\n className={`pl-flex pl-items-end`}\n onPointerDown={(event: any) => handlePointerDown(event, timeoutIds, setIsPointerDown)}\n onPointerMove={handlePointerMove}\n onPointerUp={(event: any) => handlePointerUp(event, setTimeoutIds, timeoutIds, setIsPointerDown)}\n onMouseMove={handleMouseMove}\n onMouseOut={handleMouseOut}\n onClick={handleCatchUpLoadingLog}\n >\n <div id=\"progress-area\" className={tw(\"pl-w-full\")}>\n <div\n id=\"time-progress-area\"\n className={tw(\"!pl-w-full pl-relative pl-transition-transform pl-duration-300 pl-m-auto pl-cursor-pointer !pl-bg-[#4A4A4A] \", {\n desktop: \"pl-h-[3px] pl-rounded-[8px]\",\n desktopFullScreen: \"!pl-h-[6px]\",\n touch: \"pl-h-[3px]\",\n touchFullScreen: \"\",\n })}\n >\n <div\n style={{ width: `${bufferedTimeWidth}%` }}\n id=\"time-progress-buffer\"\n className={tw(`pl-absolute pl-bg-[#C7C7C7] `, {\n desktop: \"pl-h-[3px] pl-rounded-[8px]\",\n desktopFullScreen: \"!pl-h-[6px]\",\n touch: \"pl-h-[3px]\",\n touchFullScreen: \"\",\n })}\n />\n <div\n style={{ width: currentTime === duration ? \"0%\" : `${(currentTime / duration) * 100}%` }}\n id=\"time-progress-bar\"\n className={tw(`pl-relative pl-cursor-pointer pl-bg-[#FF0033] before:pl-bg-[#FF0033] before:pl-inline-block`, {\n desktop: `pl-h-[3px] before:pl-size-[9px] pl-rounded-[8px] ${isPointerDown && \"before:pl-size-[11px]\"}`,\n desktopFullScreen: `!pl-h-[6px] before:!pl-size-[20px] ${isPointerDown && \"before:!pl-size-[22px]\"}`,\n touch: `pl-h-[3px] before:pl-size-[8px]`,\n touchFullScreen: `before:!pl-size-[9px]`,\n })}\n />\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default ProgressBar;\n","import { useEffect, useState } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nimport { memo } from \"react\";\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\nimport { conditions } from \"../../../helpers/conditions/conditions\";\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\nimport { fetchFile, getStyleForTime } from \"../../../helpers/redux/actions/progressbar.actions\";\nimport { tw } from \"../../../helpers/helpers\";\n\nconst Tooltip = () => {\n const { details } = useAppSelector(({ videoData: { details } }) => ({ details }), shallowEqual);\n const { tooltipTime } = useAppSelector(\n ({ controller: { tooltipTime, activeElements, isFullScreen } }) => ({ tooltipTime, activeElements, isFullScreen }),\n shallowEqual,\n );\n\n const cache: any = {};\n const [vttPool, setVttPool] = useState<any>(undefined);\n const [vttUrl, setVttUrl] = useState<string | undefined>(conditions(ConditionName.isTouchScreen) ? details.vtt_mobile : details.vtt);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n setVttUrl(details.vtt_mobile);\n }, [details.vtt_mobile]);\n\n useEffect(() => {\n if (!!vttUrl) fetchFile(details.vtt_mobile!, setVttPool);\n }, [vttUrl]);\n\n if (conditions(ConditionName.isActiveElements))\n return (\n <div\n className={`pl-flex pl-flex-col pl-items-center pl-justify-center pl-progressTooltip pl-absolute pl-bottom-[calc(100%+10px)] pl-text-white pl-text-[14px] ${\n vttUrl && !!vttPool ? \"\" : \"\"\n } pl-rounded-[6px] pl-opacity-0`}\n >\n {vttUrl && !!vttPool && (\n <div\n className={tw(`pl-flex-1 pl-border-[1.5px] pl-border-white pl-overflow-hidden pl-relative pl-rounded-[12px]`, {\n desktopFullScreen: \"pl-h-[164px] pl-w-[291px] pl-mb-1.5\",\n desktop: \"pl-h-[93px] pl-w-[165px] pl-mb-1\",\n touch: \"pl-h-[70px] pl-w-[135px] pl-mb-1\",\n touchFullScreen: \"pl-h-[137px] pl-w-[244px]\",\n })}\n >\n <div\n style={getStyleForTime(tooltipTime, vttPool, cache)}\n className={tw(`pl-absolute pl-inset-0 pl-top-1/2 pl-left-1/2 -pl-translate-x-1/2 -pl-translate-y-1/2 `, {\n desktop: \"pl-scale-[170%]\",\n touch: \"pl-scale-[130%]\",\n desktopFullScreen: \"pl-scale-[290%]\",\n touchFullScreen: \"pl-scale-[250%]\",\n })}\n />\n </div>\n )}\n\n <div\n className={tw(\n `pl-flex pl-items-center pl-mx-auto pl-w-fit pl-bg-black/75 pl-rounded-[24px] pl-justify-center pl-progressTimeTooltip pl-text-white !pl-opacity-100 `,\n {\n desktop: \"pl-text-[12px] pl-py-1 pl-px-2 pl-font-bold\",\n desktopFullScreen: \"pl-text-base pl-py-1.5 pl-px-3\",\n touchFullScreen: \"pl-text-base pl-py-1.5 pl-px-3\",\n touch: \"pl-text-[12px] pl-py-1 pl-px-2\",\n },\n )}\n />\n </div>\n );\n};\n\nexport default memo(Tooltip);\n","import store from \"../../redux/store\";\nimport { catchUpLoadingLog } from \"../../logs/logs\";\nimport { ConditionName, zIndex } from \"../../interfaces/enums\";\nimport { setActiveElements, setActivePointerProgressBar, setDelayTurnOffControlbar, setTooltipTime } from \"../slices/controllerSlice\";\nimport { handleVideoTimeline } from \"./controller.actions\";\nimport { setInfo } from \"../slices/videoDataSlice\";\nimport { sendFluentLog } from \"../../logs/fluentdLogger\";\nimport { conditions } from \"../../conditions/conditions\";\nimport { activeElementsTime } from \"../../environment\";\nimport {\n mainPlayerVideoTag,\n playerControllbar,\n progressArea,\n progressBar,\n progressBarWidth,\n progressContainer,\n progressTrack,\n} from \"../../constants\";\nimport { secondsToHMS } from \"../../helpers\";\nimport { CSSProperties } from \"react\";\n\nexport const getPointerPosition = (event: any) => {\n const { videoElementSizeInfo } = store.getState().videoData;\n const clientX = event.clientX !== undefined ? event.clientX : event.touches[0].clientX;\n if (clientX <= videoElementSizeInfo.right && clientX > 0) {\n return clientX - videoElementSizeInfo.left;\n }\n};\n\nexport const getMarkerPosition = (markerTime: number) => {\n const { duration } = store.getState().controller;\n return (markerTime * progressBarWidth()) / duration;\n};\n\nexport const hideProgressTooltip = (progressTooltip: any) => {\n if (progressTooltip) {\n progressTooltip.style.opacity = \"0.0\";\n progressTooltip.style.pointerEvents = \"none\";\n progressTooltip.style.zIndex = zIndex.vttDisable;\n handlerShowOrHiddenControllbarInTouch(true);\n }\n};\n\nconst generalStyleTooltipHandler = (progressTooltip: any) => {\n progressTooltip.style.display = \"block\";\n progressTooltip.style.zIndex = zIndex.vtt;\n progressTooltip.style.opacity = !!store.getState().videoData.details.vtt ? \"1.0\" : \"0.6\";\n progressTooltip.style.pointerEvents = \"auto\";\n progressTooltip.style.transition = \"opacity 1s ease-out\";\n handlerShowOrHiddenControllbarInTouch(false);\n};\n\nexport const showProgressTooltip = (event: any, progressTooltip: any, progressBarTooltip: any) => {\n if (progressTooltip) generalStyleTooltipHandler(progressTooltip);\n\n const offset = progressArea()?.offsetLeft || 0;\n const SAFE_OFFSET = offset ? 0 : 16;\n const pointerX = getPointerPosition(event)! - offset;\n const tooltipWidth = progressTooltip.offsetWidth;\n const barWidth = progressTooltip.parentElement.offsetWidth;\n const left = Math.min(Math.max(pointerX - tooltipWidth / 2, 0 + SAFE_OFFSET), barWidth - tooltipWidth - SAFE_OFFSET);\n progressTooltip.style.left = `${left}px`;\n\n store.dispatch(setTooltipTime(Number(getTimeFromPointer(event)!)));\n progressBarTooltip.textContent = `${secondsToHMS(getTimeFromPointer(event)!)}`;\n};\n\nexport const handleTimeTooltip = (event: any, isTimer: boolean = false) => {\n const { videoElementSizeInfo } = store.getState().videoData;\n const progressTooltip: any = document.querySelector(\".pl-progressTooltip\");\n const progressBarTooltip: any = document.querySelector(\".pl-progressTimeTooltip\");\n const clientX = event.clientX !== undefined ? event.clientX : event.touches[0].clientX;\n if (progressTooltip && progressBarTooltip && clientX <= videoElementSizeInfo.right && clientX > videoElementSizeInfo.left) {\n showProgressTooltip(event, progressTooltip, progressBarTooltip);\n if (isTimer) setTimeout(() => hideProgressTooltip(progressTooltip), 2000);\n } else hideProgressTooltip(progressTooltip);\n};\n\nexport const getTimeFromPointer = (event: any) => {\n const track = progressTrack();\n const { duration } = store.getState().controller;\n if (!track || !duration) return 0;\n\n const clientX = event.clientX !== undefined ? event.clientX : event.touches?.[0]?.clientX;\n\n const rect = track.getBoundingClientRect();\n const offsetX = Math.max(0, Math.min(clientX - rect.left, rect.width));\n\n return (offsetX / rect.width) * duration;\n};\n\nexport const handleProgressTime = (event: any) => {\n const { duration } = store.getState().controller;\n const bar = progressBar();\n const currentTime = getTimeFromPointer(event);\n bar.style.width = `${(currentTime / duration) * 100}%`;\n};\n\nexport const handlePointerDown = (event: any, timeoutIds: any, setIsPointerDown: (value: boolean) => void) => {\n event.preventDefault();\n event.stopPropagation();\n setIsPointerDown(true);\n const dispatch = store.dispatch;\n const clientX = event.clientX !== undefined ? event.clientX : event.touches[0].clientX;\n if (clientX <= event.view.innerWidth && clientX > 0) {\n dispatch(setActivePointerProgressBar(true));\n dispatch(setDelayTurnOffControlbar(true));\n\n const currentTime = getTimeFromPointer(event);\n sessionStorage.setItem(\"previousVideoTime\", String(currentTime));\n progressTrack()?.setPointerCapture(event.pointerId);\n if (timeoutIds.length > 0) timeoutIds.map((id: any) => clearTimeout(id));\n }\n};\n\nconst handlerShowOrHiddenControllbarInTouch = (show: boolean) => {\n // if (conditions(ConditionName.isTouchScreen)) {\n // const controllbar = playerControllbar();\n // controllbar.style.opacity = show ? \"1\" : \"0\";\n // }\n};\n\nexport const handlePointerMove = (event: any) => {\n event.preventDefault();\n event.stopPropagation();\n const dispatch = store.dispatch;\n\n const { activePointerProgressBar } = store.getState().controller;\n const { left } = store.getState().videoData.videoElementSizeInfo;\n const clientX = event.clientX !== undefined ? event.clientX : event.touches[0].clientX;\n const progressTooltip: any = document.querySelector(\".pl-progressTooltip\");\n if (clientX > left) {\n if (progressTooltip) {\n handlerShowOrHiddenControllbarInTouch(false);\n progressTooltip.style.display = \"block !important\";\n progressTooltip.style.pointerEvents = \"auto\";\n }\n if (activePointerProgressBar) {\n dispatch(setDelayTurnOffControlbar(true));\n handleTimeTooltip(event);\n handleProgressTime(event);\n mainPlayerVideoTag()?.pause();\n }\n } else if (progressTooltip) {\n handlerShowOrHiddenControllbarInTouch(true);\n progressTooltip.style.display = \"none !important\";\n progressTooltip.style.pointerEvents = \"none\";\n }\n};\n\nexport const handlePointerUp = (\n event: any,\n setTimeoutIds: (timeoutIds: any[]) => void,\n timeoutIds: any,\n setIsPointerDown: (value: boolean) => void,\n) => {\n setIsPointerDown(false);\n event.preventDefault();\n event.stopPropagation();\n const dispatch = store.dispatch;\n const { duration } = store.getState().controller;\n\n const { left, right } = store.getState().videoData.videoElementSizeInfo;\n const params = store.getState().videoData.params;\n event.target.removeEventListener(\"pointermove\", handlePointerMove);\n const clientX = event.clientX !== undefined ? event.clientX : event.touches[0].clientX;\n let currentTime = 0;\n if (clientX > left && clientX < right) currentTime = getTimeFromPointer(event)!;\n else if (clientX < left) currentTime = 0;\n else if (clientX > 0) currentTime = duration;\n if (!conditions(ConditionName.isStaticFormat)) handleVideoTimeline(mainPlayerVideoTag().currentTime, currentTime);\n mainPlayerVideoTag().currentTime = currentTime;\n if (conditions(ConditionName.hasOnChangeCurrentTime)) params.onChangeCurrentTime!(currentTime);\n if (store.getState().controller.activePointerProgressBar) {\n dispatch(setActivePointerProgressBar(false));\n dispatch(setDelayTurnOffControlbar(false));\n mainPlayerVideoTag().play();\n handleTimeTooltip(event, true);\n sessionStorage.setItem(\"current-time\", String(currentTime));\n handleProgressTime(event);\n handleTimeout(event, dispatch, setTimeoutIds, timeoutIds);\n }\n};\n\nconst handleTimeout = (event: any, dispatch: any, setTimeoutIds: (timeoutIds: any[]) => void, timeoutIds: any) => {\n const ids = timeoutIds;\n let timeoutIdTemp = setTimeout(() => {\n const { settingPopover } = store.getState().popovers;\n const { delayTurnOffControlbar } = store.getState().controller;\n if (event.pointerType === \"touch\" && !settingPopover && delayTurnOffControlbar) dispatch(setActiveElements(false));\n }, activeElementsTime);\n ids.push(timeoutIdTemp);\n setTimeoutIds(ids);\n};\n\nexport const handleCatchUpLoadingLog = () => {\n const timer = Date.now();\n mainPlayerVideoTag()\n .play()\n .then(() => sendFluentLog(catchUpLoadingLog(Date.now() - timer)));\n};\n\nexport const handleMouseMove = (event: any) => handleTimeTooltip(event);\n\nexport const handleMouseOut = () => {\n const progressBarTooltip: any = document.querySelector(\".pl-progressTooltip\");\n hideProgressTooltip(progressBarTooltip);\n};\n\n/////// vtt tooltip\nconst deconstructTimestamp = (timestamp: string) => {\n const splitStampMilliseconds = timestamp?.split(\".\");\n const timeParts = splitStampMilliseconds[0];\n const timePartsSplit = timeParts?.split(\":\");\n\n return {\n milliseconds: parseInt(splitStampMilliseconds[1], 10) || 0,\n seconds: parseInt(timePartsSplit.pop()!, 10) || 0,\n minutes: parseInt(timePartsSplit.pop()!, 10) || 0,\n hours: parseInt(timePartsSplit.pop()!, 10) || 0,\n };\n};\n\nconst getSecondsFromTimestamp = (timestamp: string) => {\n const timestampParts: any = deconstructTimestamp(timestamp);\n\n return parseInt(timestampParts.hours * (60 * 60) + timestampParts.minutes * 60 + timestampParts.seconds + timestampParts.milliseconds / 1000, 10);\n};\n\nconst getPropsFromDef = (def: string) => {\n const imageDefSplit = def?.split(/#xywh=/i);\n const imageUrl = imageDefSplit[0];\n const imageCoords = imageDefSplit[1];\n const splitCoords: any = imageCoords.match(/[0-9]+/gi);\n\n return {\n x: splitCoords[0],\n y: splitCoords[1],\n w: splitCoords[2],\n h: splitCoords[3],\n image: imageUrl,\n };\n};\n\nconst getFullyQualifiedUrl = (path: string, base: string) => {\n if (path.indexOf(\"//\") >= 0) {\n // We have a fully qualified path.\n return path;\n }\n\n if (base.indexOf(\"//\") === 0) {\n // We don't have a fully qualified path, but need to\n // be careful with trimming.\n return [base.replace(/\\/$/gi, \"\"), path.trim()].join(\"/\");\n }\n\n if (base.indexOf(\"//\") > 0) {\n // We don't have a fully qualified path, and should\n // trim both sides of base and path.\n return [base.trim(), path.trim()].join(\"/\");\n }\n\n // If all else fails.\n return path;\n};\n\nconst getVttCss = (vttImageDef: string, vttUrl: string) => {\n const cssObj: any = {};\n // If there isn't a protocol, use the VTT source URL.\n let baseSplit: string = vttUrl?.split(/\\/\\w+\\.vtt\\s?/)[0];\n\n /// offset : (vttUrl)?.split(/\\/\\w+\\.vtt\\s?/)[1]\n\n vttImageDef = getFullyQualifiedUrl(vttImageDef, baseSplit);\n\n if (!vttImageDef.match(/#xywh=/i)) {\n cssObj.background = 'url(\"' + vttImageDef + vttUrl?.split(/\\/\\w+\\.vtt\\s?/)[1] + '\")';\n return cssObj;\n }\n\n const imageProps = getPropsFromDef(vttImageDef);\n\n cssObj.background = 'url(\"' + imageProps.image + vttUrl?.split(/\\/\\w+\\.vtt\\s?/)[1] + '\") no-repeat -' + imageProps.x + \"px -\" + imageProps.y + \"px\";\n cssObj.width = imageProps.w + \"px\";\n cssObj.height = imageProps.h + \"px\";\n cssObj.url = imageProps.image;\n\n return cssObj;\n};\n\nexport const fetchFile = (url: string, setVttPool: any) => {\n fetch(url)\n .then((response) => {\n if (!response.ok) {\n store.dispatch(\n setInfo({\n ...store.getState().videoData.details,\n vtt: undefined,\n vtt_mobile: undefined,\n }),\n );\n throw new Error(\"Network response was not ok\");\n }\n return response.text();\n })\n .then((data) => {\n const processedVtts: any[] = [];\n const vttDefinitions = data?.split(/[\\r\\n][\\r\\n]/i);\n vttDefinitions.forEach((vttDef) => {\n if (vttDef.match(/([0-9]{2}:)?([0-9]{2}:)?[0-9]{2}(.[0-9]{3})?( ?--> ?)([0-9]{2}:)?([0-9]{2}:)?[0-9]{2}(.[0-9]{3}).*/gi)) {\n const vttDefSplit = vttDef?.split(/[\\r\\n]/i);\n const vttTiming = vttDefSplit[0];\n const vttTimingSplit = vttTiming?.split(/ ?--> ?/i);\n const vttTimeStart = vttTimingSplit[0];\n const vttTimeEnd = vttTimingSplit[1];\n const vttImageDef = vttDefSplit[1];\n const vttCssDef = getVttCss(vttImageDef, url);\n\n processedVtts.push({\n start: getSecondsFromTimestamp(vttTimeStart),\n end: getSecondsFromTimestamp(vttTimeEnd),\n css: vttCssDef,\n });\n }\n });\n setVttPool(processedVtts);\n })\n .catch((error) => {\n console.error(\"Error fetching file:\", error);\n });\n};\n\nexport const getStyleForTime = (time: number, vttPool: any, cache: any) => {\n for (let i = 0; i < vttPool.length; ++i) {\n const item = vttPool[i];\n if (time >= item.start && time < item.end) {\n // Cache miss\n if (item.css.url && !cache[item.css.url]) {\n const objectVtt: CSSProperties = {\n background: item.css.background,\n width: item.css.width,\n height: item.css.height,\n };\n cache[item.css.url] = objectVtt;\n return objectVtt;\n } else if (item.css.url) return cache[item.css.url];\n }\n }\n};\n","import { useEffect, useRef, useState, memo } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nimport { useAppDispatch, useAppSelector } from \"../../../../../helpers/redux/hooks\";\nimport { mainPlayerVideoTag, progressBar, progressBarWidth } from \"../../../../../helpers/constants\";\nimport { handleTimeTooltip } from \"../../../../../helpers/redux/actions/progressbar.actions\";\nimport { handleVideoTimeline } from \"../../../../../helpers/redux/actions/controller.actions\";\nimport { sendFluentLog } from \"../../../../../helpers/logs/fluentdLogger\";\nimport { conditions } from \"../../../../../helpers/conditions/conditions\";\nimport { ConditionName, zIndex } from \"../../../../../helpers/interfaces/enums\";\nimport useOnClickOutside from \"../../../../../helpers/hooks/useOnClickOutside\";\nimport { eventMarkerClickLog } from \"../../../../../helpers/logs/logs\";\nimport Emoji from \"../../../emoji/emoji\";\nimport { inViewPort } from \"../../../../../helpers/helpers\";\n\nconst Markers = () => {\n const dispatch = useAppDispatch();\n const { duration, activeElements } = useAppSelector(\n ({ controller: { duration, activeElements, isFullScreen } }) => ({\n duration,\n activeElements,\n isFullScreen\n }),\n shallowEqual\n );\n const { markers } = useAppSelector(\n ({ videoData: { markers, videoElementSizeInfo } }) => ({ markers, videoElementSizeInfo }),\n shallowEqual\n );\n // const { sharePopover } = useAppSelector(({ popovers: { sharePopover } }) => ({ sharePopover }), shallowEqual);\n\n const [markerTime, setMarkerTime] = useState<number | undefined>(undefined);\n const [overlapMarkers, setOverlapMarkers] = useState<any[]>([]);\n const [overlapMarkersPosition, setOverlapMarkersPosition] = useState<any>({});\n const [isOverlapMarkersInViewport, setIsOverlapMarkersInViewport] = useState<boolean>(false);\n\n const calculateMarkerPosition = (time: number) => (duration ? (progressBarWidth() * time) / duration : 0);\n\n const handleClick = (\n event: any,\n markerTime: number,\n markerId: number,\n markerTitle: String,\n markerDescription: String,\n markerSticker: String,\n isTimer: boolean,\n markers: any\n ) => {\n event.stopPropagation();\n const eventMarkerWidth = 24;\n const result = (eventMarkerWidth * markerTime) / (progressBarWidth() + 5);\n\n let overlapMarkers: any[] = [];\n let sumOverlapMarkersTime: number = 0;\n\n markers.map((marker: any) => {\n if (marker.time > markerTime - result && marker.time < markerTime + result) {\n overlapMarkers.push(marker);\n sumOverlapMarkersTime += marker.time;\n }\n });\n if (overlapMarkers.length > 1) setOverlapMarkers(overlapMarkers);\n else {\n overlapMarkers = [];\n setOverlapMarkers([]);\n handleJumpToMarker(event, markerTime, markerId, markerTitle, markerDescription, markerSticker, isTimer);\n }\n };\n\n const handleJumpToMarker = (\n event: any,\n markerTime: number,\n markerId: number,\n markerTitle: String,\n markerDescription: String,\n markerSticker: String,\n isTimer: boolean\n ) => {\n event.stopPropagation();\n handleTimeTooltip(event, isTimer);\n handleVideoTimeline(mainPlayerVideoTag().currentTime, markerTime);\n mainPlayerVideoTag().currentTime = markerTime;\n if (progressBar()) progressBar().style.width = calculateMarkerPosition(markerTime);\n sendFluentLog(eventMarkerClickLog(markerId, markerTime, markerTitle, markerDescription, markerSticker));\n };\n\n // useEffect(() => {\n // if (!sharePopover) setMarkerTime(undefined);\n // }, [sharePopover]);\n\n // useEffect(() => {\n // if (!!markerTime) dispatch(setSharePopover(true));\n // }, [markerTime]);\n\n useEffect(() => {\n if (!conditions(ConditionName.isActiveElements)) setOverlapMarkers([]);\n }, [activeElements]);\n\n const markerRef = useRef<any>(null);\n\n useOnClickOutside(markerRef, () => setOverlapMarkers([]));\n\n useEffect(() => {\n if (overlapMarkers.length > 0) {\n const isInViewPort = inViewPort(document.getElementsByClassName(\"pl-overlapMarkers\")[0]);\n if (isInViewPort === \"inViewport\") {\n setIsOverlapMarkersInViewport(true);\n return setOverlapMarkersPosition({ left: calculateMarkerPosition(overlapMarkers[0].time) });\n } else if (isInViewPort === \"OutViewPortFromLeft\") {\n setIsOverlapMarkersInViewport(false);\n return setOverlapMarkersPosition({ left: 0 });\n } else if (isInViewPort === \"OutViewPortFromRight\") {\n setIsOverlapMarkersInViewport(false);\n return setOverlapMarkersPosition({ right: 0 });\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [overlapMarkers, document.getElementsByClassName(\"pl-overlapMarkers\")[0]]);\n\n const handleContextMenu = (event: any) => {\n event.preventDefault();\n if (conditions(ConditionName.isTouchScreen)) setMarkerTime(Number((event.target as any).getAttribute(\"data-marker\")));\n };\n\n \n\n return (\n <>\n {markers.map((marker: any) => (\n <div\n onContextMenu={handleContextMenu}\n key={marker.id}\n data-marker={marker.time}\n onClick={(event) => handleClick(event, marker.time, marker.id, marker.title, marker.description, marker.sticker, true, markers)}\n onDoubleClick={(event: any) => event.stopPropagation()}\n >\n <div\n className={`pl-emoji-image pl-absolute pl-bottom-[200%] pl-bg-z-gray-700/[0.4] pl-rounded-[6px] pl-p-1 ${\n conditions(ConditionName.isTouchScreenPortrait) ? \"pl-mb-5\" : \"pl-mb-5\"\n } pl-ml-[-12px] pl-cursor-pointer`}\n style={{ left: calculateMarkerPosition(marker.time), zIndex: zIndex.markers }}\n data-marker={marker.time}\n >\n {marker.isPersonal !== null && marker.isPersonal !== undefined && (\n <div className=\"pl-absolute pl-rounded-full pl-top-[-2px] pl-right-[-1px] pl-bg-main pl-w-2 pl-h-2\" />\n )}\n <Emoji dataMarker={marker.time} name={marker.sticker} className=\"pl-w-[16px] pl-h-[16px] !pl-max-w-max\" />\n </div>\n </div>\n ))}\n {overlapMarkers.length > 0 && (\n <div\n className={`pl-overlapMarkers ${\n isOverlapMarkersInViewport ? \"pl-overlayMarkersInViewport\" : \"pl-overlayMarkersOutViewport\"\n } pl-absolute pl-bottom-[45px] pl-px-1 pl-py-2 pl-flex pl-gap-3 pl-flex-row-reverse pl-justify-end pl-bg-z-gray-700/[0.4] pl-rounded-[6px] pl-ml-[-10px] animate__animated animate__fadeInUp pl-opacity-100`}\n ref={markerRef}\n style={overlapMarkersPosition}\n >\n {overlapMarkers.map((overlapMarker: any) => (\n <div\n key={overlapMarker.id}\n className=\"pl-emoji-image pl-rounded-[6px] pl-cursor-pointer\"\n data-marker={overlapMarker.time}\n onClick={(event: any) =>\n handleJumpToMarker(\n event,\n overlapMarker.time,\n overlapMarker.id,\n overlapMarker.title,\n overlapMarker.description,\n overlapMarker.sticker,\n true\n )\n }\n onDoubleClick={(event: any) => event.stopPropagation()}\n >\n <Emoji dataMarker={overlapMarker.time} name={overlapMarker.sticker} className=\"pl-w-[24px] pl-h-[24px] !pl-max-w-max\" />\n </div>\n ))}\n </div>\n )}\n {/* {!!sharePopover && markerTime && (\n <ShareDialog\n currentTime={markerTime ? markerTime : undefined}\n markerId={markers.filter((item: IMarker) => item.time === markerTime)[0].id}\n />\n )} */}\n </>\n );\n};\n\nexport default memo(Markers);\n","import { ChangeEvent, RefObject, useEffect } from \"react\";\n\nconst useOnClickOutside = (ref: RefObject<any>, handler: (event: ChangeEvent<HTMLInputElement>) => void) => {\n useEffect(() => {\n const listener = (event: any) => {\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) return;\n handler(event);\n };\n document.addEventListener(\"mousedown\", listener);\n document.addEventListener(\"touchstart\", listener);\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n document.removeEventListener(\"touchstart\", listener);\n };\n }, [ref, handler]);\n};\n\nexport default useOnClickOutside;\n","import { IEmojiProps } from \"../../../helpers/interfaces/interfaces\";\nimport { getEmojiUrl } from \"../../../helpers/services/baseUrl\";\n\nconst Emoji = ({ name, className, dataMarker }: IEmojiProps) => {\n // eslint-disable-next-line @next/next/no-img-element\n return <img data-marker={dataMarker} src={`${getEmojiUrl()}/${name}.png`} alt={name} className={className} />;\n};\n\nexport default Emoji;\n","import { memo } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nimport FullScreen from \"../../fullScreen/fullScreen\";\nimport PictureInPicture from \"../../pictureInPicture/pictureInPicture\";\nimport SoundVolume from \"../../soundVolume/soundVolume\";\nimport Settings from \"../../settings/settings\";\nimport { useAppSelector } from \"../../../../helpers/redux/hooks\";\nimport { ConditionName } from \"../../../../helpers/interfaces/enums\";\nimport { conditions } from \"../../../../helpers/conditions/conditions\";\nimport Speed from \"../../speed/speed\";\nimport QualityLevels from \"../../qualityLevels/qualityLevels\";\nimport ElapsedTime from \"../../elapsedTime/elapsedTime\";\nimport Unlock from \"../../lockUnlock/unlock\";\nimport SubtitleIcon from \"../../subtitles/subtitleIcon\";\nimport MarkersList from \"../../markersList/markersList\";\nimport MultiAudio from \"../../multiAudio/MultiAudio\";\nimport PlayPause from \"../../playPause/playPause\";\nimport { styleMerge, tw } from \"../../../../helpers/helpers\";\n\nconst Controlbar = () => {\n useAppSelector(({ controller: { isFullScreen } }) => ({ isFullScreen }), shallowEqual);\n useAppSelector(({ videoData: { videoElementSizeInfo, params, subtitles } }) => ({ videoElementSizeInfo, params, subtitles }), shallowEqual);\n\n return (\n <div\n id=\"player-controllbar\"\n className={tw(\"pl-flex pl-justify-between pl-items-center\", {\n desktop: \"pl-px-4\",\n desktopFullScreen: \"pl-px-6\",\n touch: \"pl-px-4 \",\n touchFullScreen: \"pl-px-6 pl-absolute pl-w-full pl-bottom-[51px]\",\n })}\n >\n <div\n className={tw(`pl-rounded-full pl-flex pl-items-center pl-justify-center `, {\n desktop: \"pl-p-1 pl-bg-black/75\",\n desktopFullScreen: \"pl-p-1.5\",\n touch: \"pl-bg-[#282828]\",\n })}\n >\n <FullScreen\n width={styleMerge({ desktop: 16, desktopFullScreen: 24, touch: 16, touchFullScreen: 24 })}\n height={styleMerge({ desktop: 16, desktopFullScreen: 24, touch: 16, touchFullScreen: 24 })}\n />\n {/* {conditions(ConditionName.isTouchScreenLandscape) && (\n <Unlock width={conditions(ConditionName.isFullScreen) ? 24 : 16} height={conditions(ConditionName.isFullScreen) ? 24 : 16} />\n )} */}\n {/* {conditions(ConditionName.showPictureInPicture) && (\n <PictureInPicture width={conditions(ConditionName.isFullScreen) ? 24 : 16} height={conditions(ConditionName.isFullScreen) ? 24 : 16} />\n )} */}\n {conditions(ConditionName.showSettingIcon) && !conditions(ConditionName.isTouchScreen) && (\n <Settings width={conditions(ConditionName.isFullScreen) ? 24 : 16} height={conditions(ConditionName.isFullScreen) ? 24 : 16} />\n )}\n {/* {conditions(ConditionName.isFullScreen) && !conditions(ConditionName.isStaticFormat) && <QualityLevels showQualityLevelsIcon={true} />} */}\n {/* {(conditions(ConditionName.isFullScreen) || conditions(ConditionName.isStaticFormat)) && <Speed showSpeedIcon={true} />} */}\n {!conditions(ConditionName.isTouchScreen) && (\n <SubtitleIcon width={conditions(ConditionName.isFullScreen) ? 24 : 16} height={conditions(ConditionName.isFullScreen) ? 24 : 16} />\n )}\n {/* {conditions(ConditionName.hasMultiAudio) && !conditions(ConditionName.isTouchScreenPortrait) && <MultiAudio showMultiAudioIcon={true} />} */}\n </div>\n <div className={`pl-flex pl-items-center pl-gap-4`}>\n <ElapsedTime className=\"pl-relative z-10\" />\n\n {!conditions(ConditionName.isTouchScreen) && (\n <>\n {!conditions(ConditionName.isIOS) && (\n <SoundVolume width={conditions(ConditionName.isFullScreen) ? 24 : 16} height={conditions(ConditionName.isFullScreen) ? 24 : 16} />\n )}\n <PlayPause width={conditions(ConditionName.isFullScreen) ? 24 : 16} height={conditions(ConditionName.isFullScreen) ? 24 : 16} />\n </>\n )}\n\n {/* {conditions(ConditionName.hasMarkers) && <MarkersList />} */}\n </div>\n </div>\n );\n};\n\nexport default memo(Controlbar);\n","import { memo, useRef, useState } from \"react\";\r\nimport { shallowEqual } from \"react-redux\";\r\nimport ControllbarTooltip from \"../footer/controllbar/controllbarTooltip\";\r\nimport Popover from \"../popover/popover\";\r\nimport Image from \"next/image\";\r\nimport QualityLevels from \"../qualityLevels/qualityLevels\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport { ConditionName, SettingSections } from \"../../../helpers/interfaces/enums\";\r\nimport useOnClickOutside from \"../../../helpers/hooks/useOnClickOutside\";\r\nimport { setSettingPopover } from \"../../../helpers/redux/slices/popoversSlice\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport Speed from \"../speed/speed\";\r\nimport SpeedIcon from \"../../icon-components/speed\";\r\nimport SubtitleSettingMenu from \"../subtitles/subtitleSettingMenu\";\r\nimport AudioIcon from \"../../icon-components/audioIcon\";\r\nimport MultiAudio from \"../multiAudio/MultiAudio\";\r\nimport SubtitleIcon from \"../subtitles/subtitleIcon\";\r\nimport { tw } from \"../../../helpers/helpers\";\r\n\r\nconst Settings = ({ width, height, normalStyle }: { width?: number; height?: number; normalStyle?: boolean }) => {\r\n const dispatch = useAppDispatch();\r\n useAppSelector(({ controller: { isFullScreen } }) => ({ isFullScreen }), shallowEqual);\r\n\r\n const { selectedSubtitle, multiAudio, selectedAudioId, subtitles, settingPopover, settings, qualityLevels } = useAppSelector(\r\n ({\r\n user: { settings },\r\n popovers: { settingPopover },\r\n controller: { qualityLevels },\r\n videoData: { params, subtitles, multiAudio, selectedSubtitle, selectedAudioId },\r\n }) => ({\r\n params,\r\n settings,\r\n subtitles,\r\n multiAudio,\r\n qualityLevels,\r\n settingPopover,\r\n selectedAudioId,\r\n selectedSubtitle,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const [section, setSection] = useState<string>(SettingSections.main);\r\n const [showTooltip, setShowTooltip] = useState<boolean>(false);\r\n\r\n const settingsRef = useRef(null);\r\n\r\n useOnClickOutside(settingsRef, () => {\r\n dispatch(setSettingPopover(false));\r\n setTimeout(() => {\r\n setSection(SettingSections.main);\r\n }, 500);\r\n });\r\n\r\n return (\r\n <div className={`pl-inline-flex ${conditions(ConditionName.isLandscape) && \"pl-relative\"}`} ref={settingsRef}>\r\n <div\r\n className={tw(\r\n `pl-relative pl-cursor-pointer pl-flex pl-items-center pl-justify-center pl-rounded-full ${\r\n normalStyle ? \"\" : \"hover:pl-bg-[#5E5E5E] pl-transition-all\"\r\n }`,\r\n normalStyle\r\n ? undefined\r\n : {\r\n desktop: \"pl-w-[40px] pl-h-[25px]\",\r\n desktopFullScreen: \"pl-w-[56px] pl-h-[36px]\",\r\n }\r\n )}\r\n onDoubleClick={(e) => e.preventDefault()}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n dispatch(setSettingPopover(!settingPopover));\r\n }}\r\n onMouseOver={() => !conditions(ConditionName.isTouchScreen) && !conditions(ConditionName.showSettingPopover) && setShowTooltip(true)}\r\n onMouseLeave={() => !conditions(ConditionName.isTouchScreen) && setShowTooltip(false)}\r\n >\r\n <Image src={IMAGES.settings} alt=\"\" width={width} height={height} />\r\n {showTooltip && <ControllbarTooltip title=\"تنظیمات \" />}\r\n </div>\r\n <Popover\r\n classNames={`!pl-p-0 pl-overflow-hidden ${\r\n conditions(ConditionName.isTouchScreen)\r\n ? \"!pl-fixed !pl-bottom-0 !pl-rounded-t-[20px] pl-rounded-b-none !pl-bg-white\"\r\n : \"!pl-w-[272px] pl-right-0 pl-mb-[33px] !pl-rounded-[12px] !pl-bg-black/[75%]\"\r\n } ${conditions(ConditionName.isTouchScreenPortrait) && \"!pl-w-screen tablet:!pl-max-w-[440px] tablet:!pl-mx-auto\"} ${\r\n conditions(ConditionName.isTouchScreenLandscape) && \"pl-w-full pl-max-w-[285px]\"\r\n } !overflow-auto`}\r\n status={settingPopover}\r\n onClose={() => {\r\n dispatch(setSettingPopover(false));\r\n setTimeout(() => setSection(SettingSections.main), 500);\r\n }}\r\n type={conditions(ConditionName.isTouchScreen) ? \"modal\" : \"popover\"}\r\n isBlurBackground={conditions(ConditionName.isTouchScreen)}\r\n ref={conditions(ConditionName.isTouchScreen) ? settingsRef : undefined}\r\n isHeader={conditions(ConditionName.isTouchScreen)}\r\n customHeader={<></>}\r\n isHasCatchUpLineOnTop={conditions(ConditionName.isTouchScreen)}\r\n >\r\n <div>\r\n {section === SettingSections.main && (\r\n <div id={SettingSections.main} className=\"pl-py-2 pl-rounded-[10px] pl-flex pl-flex-col animate__animated animate__fadeIn\">\r\n {!conditions(ConditionName.isStaticFormat) && (\r\n <div\r\n className={`pl-flex pl-items-center pl-gap-2 pl-cursor-pointer pl-h-10 pl-px-2 ${\r\n conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"\r\n } pl-transition-all`}\r\n onClick={() => setSection(SettingSections.qualityLevels)}\r\n >\r\n <Image\r\n width={20}\r\n height={20}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-[0.3]\" : \"\"}\r\n src={IMAGES.qualitySetting}\r\n alt=\"\"\r\n />\r\n <p\r\n className={`pl-ml-auto pl-text-[12px] pl-font-medium ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"\r\n }`}\r\n >\r\n کیفیت پخش\r\n </p>\r\n <span\r\n className={`pl-ml-1 pl-leading-6 pl-font-normal ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121] pl-text-[11px]\" : \"pl-text-white pl-text-[12px]\"\r\n }`}\r\n >\r\n {settings.quality === -1 ? \"خودکار\" : `${qualityLevels.find((_, index) => index === settings.quality)}p`}\r\n </span>\r\n <Image\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-50\" : \"\"}\r\n src={IMAGES.chevronLeft}\r\n alt=\"\"\r\n width={16}\r\n height={16}\r\n />\r\n </div>\r\n )}\r\n {conditions(ConditionName.hasSubtitles) && (\r\n <div\r\n className={`pl-flex pl-items-center pl-gap-2 pl-cursor-pointer pl-h-10 pl-px-2 ${\r\n conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"\r\n } pl-transition-all`}\r\n onClick={() => setSection(SettingSections.subtitles)}\r\n >\r\n <SubtitleIcon\r\n className={`${conditions(ConditionName.isTouchScreen) ? \"pl-brightness-[0.3]\" : \"\"}`}\r\n normalStyle\r\n width={20}\r\n height={20}\r\n disableTooltip\r\n />\r\n <p\r\n className={`pl-ml-auto pl-text-[12px] pl-font-medium ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"\r\n }`}\r\n >\r\n زیرنویس\r\n </p>\r\n <span\r\n className={`pl-ml-1 pl-leading-6 pl-font-normal ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121] pl-text-[11px]\" : \"pl-text-white pl-text-[12px]\"\r\n }`}\r\n >\r\n {selectedSubtitle ? !!subtitles && subtitles.find((item) => item.language === selectedSubtitle.language)?.label : \"خاموش\"}\r\n </span>\r\n <Image\r\n src={IMAGES.chevronLeft}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-50\" : \"\"}\r\n alt=\"\"\r\n width={16}\r\n height={16}\r\n />\r\n </div>\r\n )}\r\n <div\r\n className={`pl-flex pl-items-center pl-gap-2 pl-cursor-pointer pl-h-10 pl-px-2 ${\r\n conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"\r\n } pl-transition-all`}\r\n onClick={() => setSection(SettingSections.speed)}\r\n >\r\n <SpeedIcon className={`${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#4A4A4A]\" : \"pl-text-white\"}`} width={20} height={20} />\r\n <p\r\n className={`pl-ml-auto pl-text-[12px] pl-font-medium ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"\r\n }`}\r\n >\r\n سرعت\r\n </p>\r\n <span\r\n className={`pl-ml-1 pl-leading-6 pl-font-normal ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121] pl-text-[11px]\" : \"pl-text-white pl-text-[12px]\"\r\n }`}\r\n >\r\n {settings?.speed ? (settings.speed === 1 ? \"معمولی\" : `${settings.speed}`) : \"معمولی\"}\r\n </span>\r\n <Image\r\n src={IMAGES.chevronLeft}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-50\" : \"\"}\r\n alt=\"\"\r\n width={16}\r\n height={16}\r\n />\r\n </div>\r\n {conditions(ConditionName.hasMultiAudio) && (\r\n <div\r\n className={`pl-flex pl-items-center pl-gap-2 pl-cursor-pointer pl-h-10 pl-px-2 ${\r\n conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"\r\n } pl-transition-all`}\r\n onClick={() => setSection(SettingSections.multiAudio)}\r\n >\r\n <AudioIcon className={`pl-size-5 ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#4A4A4A]\" : \"pl-text-white\"}`} />\r\n <p\r\n className={`pl-ml-auto pl-text-[12px] pl-font-medium ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"\r\n }`}\r\n >\r\n تغییر صدا\r\n </p>\r\n <span\r\n className={`pl-ml-1 pl-leading-6 pl-font-normal ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121] pl-text-[11px]\" : \"pl-text-white pl-text-[12px]\"\r\n }`}\r\n >\r\n {multiAudio?.find((_: any, index: number) => index === selectedAudioId)?.name}\r\n </span>\r\n <Image\r\n src={IMAGES.chevronLeft}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-50\" : \"\"}\r\n alt=\"\"\r\n width={16}\r\n height={16}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n {section === SettingSections.qualityLevels && <QualityLevels setSection={setSection} />}\r\n {section === SettingSections.subtitles && <SubtitleSettingMenu setSection={setSection} />}\r\n {section === SettingSections.speed && <Speed setSection={setSection} />}\r\n {section === SettingSections.multiAudio && <MultiAudio setSection={setSection} />}\r\n </div>\r\n </Popover>\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(Settings);\r\n","import { TouchEvent, forwardRef, useEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { shallowEqual } from \"react-redux\";\nimport { IPopoverProps } from \"../../../helpers/interfaces/interfaces\";\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\nimport { zIndex } from \"../../../helpers/interfaces/enums\";\nimport { tw } from \"../../../helpers/helpers\";\n\nconst Popover = forwardRef(\n (\n {\n children,\n status,\n onClose,\n type,\n classNames,\n parentClassNames,\n styles,\n isBlurBackground,\n isFullHeight = false,\n isFullScreen,\n isHeader,\n isHasCatchUpLineOnTop = false,\n animation,\n scrollbar = false,\n isFocusOnInput = false,\n }: IPopoverProps,\n ref: any\n ) => {\n const [showPopover, setShowPopover] = useState<boolean>(status!);\n\n const [maxHeight, setMaxHeight] = useState<number>(0);\n const [maxHeightOnTouchMove, setMaxHeightOnTouchMove] = useState<number>(0);\n const [zIndexOnCatchUp, setZIndexOnCatchUp] = useState<number>(0);\n\n const { videoElementSizeInfo } = useAppSelector(({ videoData: { videoElementSizeInfo } }) => ({ videoElementSizeInfo }), shallowEqual);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n let timeout: any = undefined;\n\n if (status) {\n setShowPopover(true);\n } else {\n timeout = setTimeout(() => {\n onClose(false);\n setMaxHeightOnTouchMove(0);\n setShowPopover(false);\n }, 500);\n }\n\n return () => clearTimeout(timeout);\n }, [status]);\n\n const handleTouchMove = (event: any) => {\n if (event.touches[0].clientY >= videoElementSizeInfo.top) setMaxHeightOnTouchMove(window.innerHeight - event.touches[0].clientY);\n else setMaxHeightOnTouchMove(window.innerHeight - videoElementSizeInfo.top);\n setZIndexOnCatchUp(zIndex.maxPopover);\n };\n\n const handleTouchEnd = () => {\n if (maxHeightOnTouchMove !== 0) {\n if (maxHeightOnTouchMove > maxHeight) {\n if (maxHeightOnTouchMove - maxHeight > (window.innerHeight - videoElementSizeInfo.top - maxHeight) / 2) {\n setMaxHeightOnTouchMove(window.innerHeight - videoElementSizeInfo.top);\n setZIndexOnCatchUp(zIndex.maxPopover);\n } else {\n setMaxHeightOnTouchMove(0);\n setTimeout(() => setZIndexOnCatchUp(0), 500);\n }\n } else {\n if (maxHeightOnTouchMove > maxHeight / 2) setMaxHeightOnTouchMove(maxHeight);\n else {\n setMaxHeightOnTouchMove(0);\n setMaxHeight(0);\n onClose();\n }\n setZIndexOnCatchUp(0);\n }\n }\n };\n\n const content = (\n <>\n {isBlurBackground && (\n <div\n className={`pl-bg-black/[0.5] pl-w-screen pl-h-screen pl-fixed pl-top-0 pl-right-0 animate__animated animate__faster ${\n status ? \"animate__fadeIn\" : \"animate__fadeOut\"\n }`}\n style={{\n zIndex: zIndex.popoverBlurBackground,\n backdropFilter: \"blur(4px)\",\n }}\n />\n )}\n <div\n className={`${\n type === \"modal\" && \"pl-fixed pl-top-0 pl-left-0 pl-flex pl-w-full pl-h-full pl-justify-center pl-items-end sm:pl-items-center\"\n } ${parentClassNames}`}\n style={{\n zIndex: isFullHeight && !isFocusOnInput ? zIndexOnCatchUp : zIndex.popoverContent,\n }}\n >\n <div\n className={`pl-flex pl-flex-col pl-rounded-[8px] animate__animated animate__faster pl-bg-white/[0.9] dark:pl-bg-black/[0.7]\n ${isFullHeight && \"pl-h-full\"}\n ${\n animation\n ? animation\n : window.innerWidth > 768 && type === \"modal\"\n ? status\n ? \"animate__fadeIn\"\n : \"animate__fadeOut\"\n : status\n ? \"animate__fadeInUp\"\n : \"animate__fadeOutDown\"\n }\n before:pl-hidden\n ${\n type !== \"modal\" &&\n `pl-absolute ${tw(\"\", {\n desktop: \"pl-bottom-[20px]\",\n desktopFullScreen: \"pl-bottom-[60px]\",\n })} pl-overflow-auto no-scrollbar`\n }\n ${classNames}\n `}\n style={{\n maxHeight: isFullScreen ? \"unset\" : maxHeightOnTouchMove ? maxHeightOnTouchMove : maxHeight ? maxHeight : \"\",\n zIndex: zIndex.popoverContent,\n ...styles,\n }}\n ref={ref}\n id=\"popover-content\"\n >\n <>\n {isHeader && (\n <div\n onTouchMove={isHasCatchUpLineOnTop ? handleTouchMove : () => {}}\n onTouchEndCapture={isHasCatchUpLineOnTop ? handleTouchEnd : () => {}}\n className=\"pl-py-4\"\n >\n {isHasCatchUpLineOnTop && (\n <div className=\"pl-absolute pl-top-[10px] pl-right-[50%] pl-mr-[-25px] pl-text-center pl-w-8 pl-h-1 pl-rounded-[20px] pl-bg-gray-highLight\" />\n )}\n </div>\n )}\n <div\n id=\"popover-content\"\n className={`pl-overflow-y-auto pl-h-full pl-w-full ${!scrollbar && \"no-scrollbar\"}`}\n onTouchMove={(event: TouchEvent<HTMLDivElement>) => event.stopPropagation()}\n >\n {children}\n </div>\n </>\n </div>\n </div>\n </>\n );\n\n return (\n <>\n {showPopover && (\n <>\n {type === \"modal\" ? (\n createPortal(\n <div style={{ fontFamily: \"IRANSansXFaNum\", direction: \"rtl\", overflowX: \"hidden\" }}>{content}</div>,\n document.getElementById(\"dialog-react-root-videoPlayer\")!\n )\n ) : (\n <div id=\"player-popover\">{content}</div>\n )}\n </>\n )}\n </>\n );\n }\n);\n\nPopover.displayName = \"popover\";\n\nexport default Popover;\n","import { shallowEqual } from \"react-redux\";\r\nimport { memo, useRef, useState } from \"react\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport { ConditionName, SettingSections } from \"../../../helpers/interfaces/enums\";\r\nimport { sendFluentLog } from \"../../../helpers/logs/fluentdLogger\";\r\nimport { qualityChangeRequestLog } from \"../../../helpers/logs/logs\";\r\nimport { setActiveElements } from \"../../../helpers/redux/slices/controllerSlice\";\r\nimport { setQualityLevelsPopover, setSettingPopover } from \"../../../helpers/redux/slices/popoversSlice\";\r\nimport { setUserSettings } from \"../../../helpers/redux/slices/userSlice\";\r\nimport Image from \"next/image\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport { IQualityLevel } from \"../../../helpers/interfaces/interfaces\";\r\nimport Popover from \"../popover/popover\";\r\nimport useOnClickOutside from \"../../../helpers/hooks/useOnClickOutside\";\r\nimport ControllbarTooltip from \"../footer/controllbar/controllbarTooltip\";\r\n\r\nconst QualityLevels = ({ setSection, showQualityLevelsIcon }: IQualityLevel) => {\r\n const dispatch = useAppDispatch();\r\n let { qualityLevels } = useAppSelector(\r\n ({ controller: { qualityLevels, manualQuality, autoQuality } }) => ({\r\n qualityLevels,\r\n manualQuality,\r\n autoQuality,\r\n }),\r\n shallowEqual\r\n );\r\n const { settings } = useAppSelector(({ user: { settings } }) => ({ settings }), shallowEqual);\r\n const { qualityLevelsPopover } = useAppSelector(({ popovers: { qualityLevelsPopover } }) => ({ qualityLevelsPopover }), shallowEqual);\r\n const { videoElementSizeInfo } = useAppSelector(\r\n ({ videoData: { params, videoElementSizeInfo } }) => ({ params, videoElementSizeInfo }),\r\n shallowEqual\r\n );\r\n\r\n const [showTooltip, setShowTooltip] = useState<boolean>(false);\r\n\r\n qualityLevels = [-1, ...qualityLevels];\r\n\r\n const handleTickSelectedQuality = (index: number, qualityLevel: number) => {\r\n if (conditions(ConditionName.isAutoQuality) && qualityLevel === -1) return true;\r\n else return !conditions(ConditionName.isAutoQuality) && settings.quality === index;\r\n };\r\n\r\n const qualityLevelsRef = useRef<any>(null);\r\n\r\n useOnClickOutside(qualityLevelsRef, () => dispatch(setQualityLevelsPopover(false)));\r\n\r\n const qualityLevelsContent = (\r\n <div\r\n id={SettingSections.qualityLevels}\r\n className={`animate__animated animate__fadeIn ${conditions(ConditionName.isTouchScreen) ? \"pl-pb-2\" : \"pl-py-2\"}`}\r\n >\r\n <ul className=\"pl-flex pl-flex-col pl-gap-1\">\r\n <li\r\n className={`pl-flex pl-items-center pl-border-b ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-border-b-[#D9D9D9]\" : \"pl-border-b-[#4A4A4A]\"\r\n } pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer pl-h-10`}\r\n onClick={() => setSection && setSection(SettingSections.main)}\r\n >\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image\r\n src={IMAGES.chevronRight}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"}\r\n alt=\"\"\r\n width={16}\r\n height={16}\r\n />\r\n </div>\r\n <span\r\n className={`pl-w-full pl-text-[12px] ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"} pl-pr-[10px]`}\r\n >\r\n کیفیت پخش\r\n </span>\r\n </li>\r\n\r\n <div\r\n className=\"pl-overflow-y-auto no-scrollbar\"\r\n style={{ maxHeight: conditions(ConditionName.isTouchScreenPortrait) ? undefined : videoElementSizeInfo.height - 200 - 70 }}\r\n >\r\n {qualityLevels.map((qualityLevel: number, index: number) => (\r\n <li\r\n key={index}\r\n className={`pl-flex pl-items-center pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer pl-h-10 pl-transition-all ${\r\n conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"\r\n } ${handleTickSelectedQuality(index - 1, qualityLevel) && `!pl-cursor-default`}`}\r\n onClick={() => {\r\n if (handleTickSelectedQuality(index - 1, qualityLevel)) return;\r\n sendFluentLog(qualityChangeRequestLog(qualityLevel === -1 ? \"auto\" : `${qualityLevel}P`));\r\n // dispatch(setActiveElements(false));\r\n // dispatch(setSettingPopover(false));\r\n // dispatch(setQualityLevelsPopover(false));\r\n dispatch(setUserSettings({ ...settings, quality: qualityLevel === -1 ? -1 : index - 1 }));\r\n if (setSection) setSection(SettingSections.main);\r\n }}\r\n >\r\n {!!handleTickSelectedQuality(index - 1, qualityLevel) && (\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image\r\n src={IMAGES.tick}\r\n alt=\"\"\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"}\r\n width={20}\r\n height={20}\r\n />\r\n </div>\r\n )}\r\n\r\n <span\r\n className={`pl-w-full pl-text-[12px] ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"} pl-pr-[10px]`}\r\n >\r\n {qualityLevel === -1 ? (\r\n <span>\r\n <span>خودکار </span>\r\n <span\r\n className={`pl-text-[10px] pl-font-normal ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#737373]\" : \"pl-text-[#C7C7C7]\"\r\n }`}\r\n >\r\n (بر اساس سرعت اینترنت شما)\r\n </span>\r\n </span>\r\n ) : (\r\n `${qualityLevel}p`\r\n )}\r\n </span>\r\n </li>\r\n ))}\r\n </div>\r\n </ul>\r\n </div>\r\n );\r\n\r\n return (\r\n <>\r\n {showQualityLevelsIcon ? (\r\n <div className=\"pl-relative pl-flex pl-items-center\" ref={qualityLevelsRef}>\r\n <Image\r\n src={IMAGES.qualitySetting}\r\n alt=\"speed-icon\"\r\n width={20}\r\n height={20}\r\n onClick={() => dispatch(setQualityLevelsPopover(!qualityLevelsPopover))}\r\n onMouseOver={() =>\r\n !conditions(ConditionName.isTouchScreen) && !conditions(ConditionName.showQualityLevelsPopover) && setShowTooltip(true)\r\n }\r\n onMouseLeave={() => !conditions(ConditionName.isTouchScreen) && setShowTooltip(false)}\r\n className=\"pl-cursor-pointer\"\r\n />\r\n {showTooltip && <ControllbarTooltip title=\"کیفیت\" />}\r\n <Popover\r\n classNames={`!pl-p-0 pl-overflow-hidden !pl-bg-black/[75%] ${\r\n conditions(ConditionName.isTouchScreen)\r\n ? \"!pl-fixed !pl-bottom-0 !pl-rounded-t-[20px] pl-rounded-b-none\"\r\n : \"pl-right-0 pl-mb-[33px] !pl-rounded-[12px] pl-w-[230px]\"\r\n } ${conditions(ConditionName.isTouchScreenPortrait) && \"!pl-w-screen tablet:pl-max-w-[440px]\"} ${\r\n conditions(ConditionName.isTouchScreenLandscape) && \"pl-w-full pl-max-w-[440px]\"\r\n }`}\r\n status={qualityLevelsPopover}\r\n onClose={() => dispatch(setQualityLevelsPopover(false))}\r\n type={conditions(ConditionName.isTouchScreen) ? \"modal\" : \"popover\"}\r\n isBlurBackground={conditions(ConditionName.isTouchScreen)}\r\n ref={conditions(ConditionName.isTouchScreen) ? qualityLevelsRef : undefined}\r\n isHeader={conditions(ConditionName.isTouchScreen)}\r\n customHeader={<></>}\r\n isHasCatchUpLineOnTop={conditions(ConditionName.isTouchScreen)}\r\n styles={{\r\n maxHeight:\r\n !conditions(ConditionName.isTouchScreenPortrait) &&\r\n videoElementSizeInfo.height - (conditions(ConditionName.isTouchScreenLandscape) ? 120 : 75),\r\n }}\r\n >\r\n {qualityLevelsContent}\r\n </Popover>\r\n </div>\r\n ) : (\r\n <>{qualityLevelsContent}</>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default memo(QualityLevels);\r\n","import { useEffect, useRef, useState } from \"react\";\r\nimport { shallowEqual } from \"react-redux\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport useOnClickOutside from \"../../../helpers/hooks/useOnClickOutside\";\r\nimport { setSettingPopover, setSpeedPopover } from \"../../../helpers/redux/slices/popoversSlice\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport { ConditionName, SettingSections } from \"../../../helpers/interfaces/enums\";\r\nimport { setUserSettings } from \"../../../helpers/redux/slices/userSlice\";\r\nimport { sendFluentLog } from \"../../../helpers/logs/fluentdLogger\";\r\nimport { speedChangeLog } from \"../../../helpers/logs/logs\";\r\nimport { ISpeed } from \"../../../helpers/interfaces/interfaces\";\r\nimport Image from \"next/image\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport Popover from \"../popover/popover\";\r\nimport { setActiveElements } from \"../../../helpers/redux/slices/controllerSlice\";\r\nimport ControllbarTooltip from \"../footer/controllbar/controllbarTooltip\";\r\nimport SpeedIcon from \"../../icon-components/speed\";\r\nimport { mainPlayerVideoTag } from \"../../../helpers/constants\";\r\n\r\nexport const speeds = [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2];\r\n\r\nconst Speed = ({ setSection, showSpeedIcon }: ISpeed) => {\r\n const dispatch = useAppDispatch();\r\n const { videoElementSizeInfo, params } = useAppSelector(\r\n ({ videoData: { videoElementSizeInfo, params } }) => ({ videoElementSizeInfo, params }),\r\n shallowEqual\r\n );\r\n const { speedPopover } = useAppSelector(({ popovers: { speedPopover } }) => ({ speedPopover }), shallowEqual);\r\n const { settings } = useAppSelector(({ user: { settings } }) => ({ settings }), shallowEqual);\r\n\r\n const speedRef = useRef<any>(null);\r\n\r\n const [showTooltip, setShowTooltip] = useState<boolean>(false);\r\n\r\n useOnClickOutside(speedRef, () => dispatch(setSpeedPopover(false)));\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n useEffect(() => {\r\n if (mainPlayerVideoTag()) mainPlayerVideoTag().playbackRate = settings.speed;\r\n }, []);\r\n\r\n const speedContent = (\r\n <div\r\n id={SettingSections.speed}\r\n className={`animate__animated animate__fadeIn ${conditions(ConditionName.isTouchScreen) ? \"pl-pb-2\" : \"pl-py-2\"}`}\r\n >\r\n <ul className=\"pl-flex pl-flex-col pl-gap-1\">\r\n <li\r\n className={`pl-flex pl-items-center pl-border-b ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-border-b-[#D9D9D9]\" : \"pl-border-b-[#4A4A4A]\"\r\n } pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer pl-h-10`}\r\n onClick={() => setSection && setSection(SettingSections.main)}\r\n >\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image\r\n src={IMAGES.chevronRight}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"}\r\n alt=\"\"\r\n width={16}\r\n height={16}\r\n />\r\n </div>\r\n <span\r\n className={`pl-w-full pl-text-[12px] ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"} pl-pr-[10px]`}\r\n >\r\n سرعت\r\n </span>\r\n </li>\r\n\r\n <div\r\n className=\"pl-overflow-y-auto no-scrollbar\"\r\n style={{ maxHeight: conditions(ConditionName.isTouchScreenPortrait) ? undefined : videoElementSizeInfo.height - 200 - 70 }}\r\n >\r\n {speeds.map((speed: number, index: number) => (\r\n <li\r\n key={index}\r\n className={`pl-flex pl-items-center pl-h-10 pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer pl-transition-all ${\r\n conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"\r\n } ${settings.speed === speed && ` !pl-cursor-default`}`}\r\n onClick={\r\n settings.speed === speed\r\n ? () => {}\r\n : () => {\r\n if (!conditions(ConditionName.isStaticFormat)) sendFluentLog(speedChangeLog(speed));\r\n // dispatch(setActiveElements(false));\r\n // dispatch(setSettingPopover(false));\r\n // dispatch(setSpeedPopover(false));\r\n dispatch(setUserSettings({ ...settings, speed }));\r\n mainPlayerVideoTag().playbackRate = speed;\r\n if (setSection) setSection(SettingSections.main);\r\n if (params.onSpeedChange) params.onSpeedChange(settings.speed, speed);\r\n }\r\n }\r\n >\r\n {settings.speed === speed && (\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image\r\n src={IMAGES.tick}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"}\r\n alt=\"\"\r\n width={20}\r\n height={20}\r\n />\r\n </div>\r\n )}\r\n <p\r\n className={`pl-text-[12px] ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"\r\n } pl-pr-[10px] pl-w-10 pl-text-center`}\r\n >\r\n {speed}\r\n </p>\r\n </li>\r\n ))}\r\n </div>\r\n </ul>\r\n </div>\r\n );\r\n\r\n return (\r\n <>\r\n {showSpeedIcon ? (\r\n <div className=\"pl-relative pl-flex pl-items-center\" ref={speedRef}>\r\n <SpeedIcon\r\n width={20}\r\n height={20}\r\n className={`pl-cursor-pointer size-5 ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#4A4A4A]\" : \"pl-text-white\"}`}\r\n onClick={() => dispatch(setSpeedPopover(!speedPopover))}\r\n onMouseOver={() => !conditions(ConditionName.isTouchScreen) && !conditions(ConditionName.showSpeedPopover) && setShowTooltip(true)}\r\n onMouseLeave={() => !conditions(ConditionName.isTouchScreen) && setShowTooltip(false)}\r\n />\r\n {showTooltip && <ControllbarTooltip title=\"سرعت\" />}\r\n <Popover\r\n classNames={`!pl-p-0 pl-overflow-hidden !pl-bg-white ${\r\n conditions(ConditionName.isTouchScreen)\r\n ? \"!pl-fixed !pl-bottom-0 !pl-rounded-t-[20px] pl-rounded-b-none\"\r\n : \"!pl-w-[230px] pl-right-0 pl-mb-[33px] !pl-rounded-[12px]\"\r\n } ${conditions(ConditionName.isTouchScreenPortrait) && \"!pl-w-screen tablet:!pl-max-w-[440px] tablet:!pl-mx-auto\"} ${\r\n conditions(ConditionName.isTouchScreenLandscape) && \"pl-w-full pl-max-w-[440px]\"\r\n } !pl-z-[100000]`}\r\n status={speedPopover}\r\n onClose={() => dispatch(setSpeedPopover(false))}\r\n type={conditions(ConditionName.isTouchScreen) ? \"modal\" : \"popover\"}\r\n isBlurBackground={conditions(ConditionName.isTouchScreen)}\r\n ref={conditions(ConditionName.isTouchScreen) ? speedRef : undefined}\r\n isHeader={conditions(ConditionName.isTouchScreen)}\r\n customHeader={<></>}\r\n isHasCatchUpLineOnTop={conditions(ConditionName.isTouchScreen)}\r\n styles={{\r\n maxHeight:\r\n !conditions(ConditionName.isTouchScreenPortrait) &&\r\n videoElementSizeInfo.height - (conditions(ConditionName.isTouchScreenLandscape) ? 120 : 75),\r\n }}\r\n >\r\n {speedContent}\r\n </Popover>\r\n </div>\r\n ) : (\r\n <>{speedContent}</>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default Speed;\r\n","import { ISpeedProps } from \"../../helpers/interfaces/interfaces\";\n\nconst SpeedIcon = ({ className, onClick, onMouseOver, onMouseLeave, width, height }: ISpeedProps) => {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n onClick={onClick}\n viewBox=\"0 0 20 20\"\n className={className}\n onMouseOver={onMouseOver}\n style={{ width, height }}\n onMouseLeave={onMouseLeave}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.83613 12.7885C9.13211 13.0844 9.51329 13.2249 9.97967 13.21C10.4459 13.195 10.7881 13.0267 11.0061 12.7052L15.5284 6.15396L8.96113 10.6602C8.63433 10.8783 8.4578 11.2135 8.43155 11.6658C8.40544 12.1183 8.5403 12.4926 8.83613 12.7885ZM9.99967 3.75C10.7925 3.75 11.5352 3.85389 12.228 4.06167C12.9209 4.26944 13.59 4.58382 14.2353 5.00479L13.0605 5.76438C12.5862 5.51229 12.0945 5.32188 11.5855 5.19313C11.0763 5.06438 10.5477 5 9.99967 5C8.15245 5 6.57954 5.64931 5.28092 6.94792C3.98231 8.24653 3.33301 9.81944 3.33301 11.6667C3.33301 12.25 3.41287 12.8264 3.57259 13.3958C3.73231 13.9653 3.95801 14.5 4.24967 15H15.7497C16.0691 14.4722 16.3018 13.9236 16.4476 13.3542C16.5934 12.7847 16.6663 12.1944 16.6663 11.5833C16.6663 11.0833 16.6047 10.5772 16.4813 10.065C16.3579 9.55264 16.1674 9.06625 15.9099 8.60583L16.6695 7.43104C17.0809 8.10521 17.3894 8.77965 17.5951 9.45438C17.8006 10.1291 17.9077 10.8302 17.9163 11.5577C17.9248 12.312 17.8399 13.0249 17.6616 13.6963C17.4831 14.3678 17.2144 15.0246 16.8555 15.6667C16.7454 15.8472 16.5904 15.9896 16.3907 16.0938C16.1909 16.1979 15.9772 16.25 15.7497 16.25H4.24967C4.02745 16.25 3.8178 16.1966 3.62072 16.0898C3.42363 15.9828 3.26467 15.8311 3.14384 15.6346C2.82551 15.079 2.56912 14.4733 2.37467 13.8173C2.18023 13.1613 2.08301 12.4444 2.08301 11.6667C2.08301 10.5781 2.28954 9.55465 2.70259 8.59646C3.11565 7.63826 3.67947 6.79903 4.39405 6.07875C5.10877 5.35847 5.94898 4.79028 6.91467 4.37417C7.88051 3.95806 8.90884 3.75 9.99967 3.75Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default SpeedIcon;\n","import { shallowEqual } from \"react-redux\";\r\nimport { memo } from \"react\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport { ConditionName, SettingSections } from \"../../../helpers/interfaces/enums\";\r\nimport { setSelectedSubtitle, setSubtitleText } from \"../../../helpers/redux/slices/videoDataSlice\";\r\nimport { mainPlayerVideoTag } from \"../../../helpers/constants\";\r\nimport { subtitleLog } from \"../../../helpers/logs/logs\";\r\nimport { sendFluentLog } from \"../../../helpers/logs/fluentdLogger\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport Image from \"next/image\";\r\n\r\nconst SubtitleSettingMenu = ({ setSection }: any) => {\r\n const dispatch = useAppDispatch();\r\n const { subtitles, selectedSubtitle, videoElementSizeInfo } = useAppSelector(\r\n ({ videoData: { subtitles, selectedSubtitle, videoElementSizeInfo } }) => ({ subtitles, selectedSubtitle, videoElementSizeInfo }),\r\n shallowEqual,\r\n );\r\n\r\n return (\r\n <div\r\n id={SettingSections.subtitles}\r\n className={`animate__animated animate__fadeIn ${conditions(ConditionName.isTouchScreen) ? \"pl-pb-2\" : \"pl-py-2\"}`}\r\n >\r\n <ul className=\"pl-flex pl-flex-col pl-gap-1\">\r\n <li\r\n className={`pl-flex pl-items-center pl-border-b ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-border-b-[#D9D9D9]\" : \"pl-border-b-[#4A4A4A]\"\r\n } pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer pl-h-10`}\r\n onClick={() => setSection && setSection(SettingSections.main)}\r\n >\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image\r\n src={IMAGES.chevronRight}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"}\r\n alt=\"\"\r\n width={16}\r\n height={16}\r\n />\r\n </div>\r\n <span\r\n className={`pl-w-full pl-text-[12px] ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"} pl-pr-[10px]`}\r\n >\r\n زیر نویس\r\n </span>\r\n </li>\r\n\r\n <div\r\n className=\"pl-overflow-y-auto no-scrollbar\"\r\n style={{ maxHeight: conditions(ConditionName.isTouchScreenPortrait) ? undefined : videoElementSizeInfo.height - 200 - 70 }}\r\n >\r\n <li\r\n className={`pl-flex pl-items-center pl-h-10 pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer ${\r\n !selectedSubtitle && `${conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"} !pl-cursor-default`\r\n }`}\r\n onClick={() => {\r\n // dispatch(setActiveElements(false));\r\n // dispatch(setSettingPopover(false));\r\n dispatch(setSelectedSubtitle(undefined));\r\n setSection(SettingSections.main);\r\n const result: any = Object.values(mainPlayerVideoTag().textTracks).find((textTrack: any) => textTrack.mode === \"showing\");\r\n if (result) result.mode = \"disabled\";\r\n dispatch(setSubtitleText(\"\"));\r\n sendFluentLog(subtitleLog(\"empty\"));\r\n }}\r\n >\r\n {!selectedSubtitle && (\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image src={IMAGES.tick} className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"} alt=\"\" width={20} height={20} />\r\n </div>\r\n )}\r\n\r\n <span\r\n className={`pl-w-full pl-text-[12px] ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"} pl-pr-[10px]`}\r\n >\r\n بدون زیرنویس\r\n </span>\r\n </li>\r\n\r\n {subtitles.map((subtitle: any, index: number) => (\r\n <li\r\n key={index}\r\n className={`pl-flex pl-items-center pl-h-10 pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer pl-transition-all ${\r\n conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"\r\n } ${selectedSubtitle && selectedSubtitle.language === subtitle.language && ` !pl-cursor-default`}`}\r\n onClick={() => {\r\n // dispatch(setActiveElements(false));\r\n // dispatch(setSettingPopover(false));\r\n dispatch(setSelectedSubtitle(subtitle));\r\n mainPlayerVideoTag().textTracks[index].mode = \"showing\";\r\n setSection(SettingSections.main);\r\n sendFluentLog(subtitleLog(subtitle.language));\r\n }}\r\n >\r\n {!!selectedSubtitle && selectedSubtitle.language === subtitle.language && (\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image\r\n src={IMAGES.tick}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"}\r\n alt=\"\"\r\n width={20}\r\n height={20}\r\n />\r\n </div>\r\n )}\r\n\r\n <span\r\n className={`pl-w-full pl-text-[12px] ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"} pl-pr-[10px]`}\r\n >\r\n {subtitle.label}\r\n </span>\r\n </li>\r\n ))}\r\n </div>\r\n </ul>\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(SubtitleSettingMenu);\r\n","import { IAudioIconProps } from \"../../helpers/interfaces/interfaces\";\n\nconst AudioIcon = ({ className, onClick, onMouseOver, onMouseLeave }: IAudioIconProps) => {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n onClick={onClick}\n onMouseOver={onMouseOver}\n onMouseLeave={onMouseLeave}\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M10 2.29395C10.3314 2.29395 10.6 2.56257 10.6 2.89395V17.1052C10.6 17.4366 10.3314 17.7052 10 17.7052C9.66866 17.7052 9.40002 17.4366 9.40002 17.1052V2.89395C9.40002 2.56257 9.66866 2.29395 10 2.29395Z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M6.41258 4.95498C6.74396 4.95498 7.01258 5.22361 7.01258 5.55498V14.5565C7.01258 14.8879 6.74396 15.1565 6.41258 15.1565C6.08121 15.1565 5.81258 14.8879 5.81258 14.5565V5.55498C5.81258 5.22361 6.08121 4.95498 6.41258 4.95498Z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M13.5858 4.84247C13.9172 4.84247 14.1858 5.1111 14.1858 5.44247V14.444C14.1858 14.7754 13.9172 15.044 13.5858 15.044C13.2545 15.044 12.9858 14.7754 12.9858 14.444V5.44247C12.9858 5.1111 13.2545 4.84247 13.5858 4.84247Z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M17.1735 7.60177C17.5048 7.60177 17.7735 7.8704 17.7735 8.20177V11.5709C17.7735 11.9023 17.5048 12.1709 17.1735 12.1709C16.8421 12.1709 16.5735 11.9023 16.5735 11.5709V8.20177C16.5735 7.8704 16.8421 7.60177 17.1735 7.60177Z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M2.82656 7.82841C3.15794 7.82841 3.42656 8.09703 3.42656 8.42844V11.7976C3.42656 12.1289 3.15794 12.3976 2.82656 12.3976C2.49519 12.3976 2.22656 12.1289 2.22656 11.7976V8.42844C2.22656 8.09703 2.49519 7.82841 2.82656 7.82841Z\"\n />\n </svg>\n );\n};\n\nexport default AudioIcon;\n","import { shallowEqual } from \"react-redux\";\r\nimport { memo, useRef, useState } from \"react\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport Popover from \"../popover/popover\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport { ConditionName, SettingSections } from \"../../../helpers/interfaces/enums\";\r\nimport Image from \"next/image\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport ControllbarTooltip from \"../footer/controllbar/controllbarTooltip\";\r\nimport useOnClickOutside from \"../../../helpers/hooks/useOnClickOutside\";\r\nimport { setMultiAudioPopover } from \"../../../helpers/redux/slices/popoversSlice\";\r\nimport { setSelectedAudioId } from \"../../../helpers/redux/slices/videoDataSlice\";\r\nimport AudioIcon from \"../../icon-components/audioIcon\";\r\nimport { IMultiAudioProps } from \"../../../helpers/interfaces/interfaces\";\r\n\r\nconst MultiAudio = ({ setSection, showMultiAudioIcon }: IMultiAudioProps) => {\r\n const dispatch = useAppDispatch();\r\n const { multiAudioPopover } = useAppSelector(({ popovers: { multiAudioPopover } }) => ({ multiAudioPopover }), shallowEqual);\r\n\r\n const [showTooltip, setShowTooltip] = useState<boolean>(false);\r\n\r\n const ref = useRef(null);\r\n\r\n const { multiAudio, selectedAudioId, videoElementSizeInfo } = useAppSelector(\r\n ({ videoData: { multiAudio, selectedAudioId, videoElementSizeInfo } }) => ({ multiAudio, selectedAudioId, videoElementSizeInfo }),\r\n shallowEqual\r\n );\r\n\r\n useOnClickOutside(ref, () => dispatch(setMultiAudioPopover(false)));\r\n\r\n const multiAudioContent = (\r\n <div className={`${conditions(ConditionName.isTouchScreen) ? \"pl-pb-2\" : \"pl-py-2\"}`}>\r\n <ul className=\"pl-flex pl-flex-col pl-gap-1\">\r\n <li\r\n className={`pl-flex pl-items-center pl-border-b ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-border-b-[#D9D9D9]\" : \"pl-border-b-[#4A4A4A]\"\r\n } pl-h-10 pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer`}\r\n onClick={() => setSection && setSection(SettingSections.main)}\r\n >\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image\r\n src={IMAGES.chevronRight}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"}\r\n alt=\"\"\r\n width={16}\r\n height={16}\r\n />\r\n </div>\r\n <span\r\n className={`pl-w-full pl-text-[12px] ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"} pl-pr-[10px]`}\r\n >\r\n تغییر صدا\r\n </span>\r\n </li>\r\n\r\n <div\r\n className=\"pl-overflow-y-auto no-scrollbar\"\r\n style={{ maxHeight: conditions(ConditionName.isTouchScreenPortrait) ? undefined : videoElementSizeInfo.height - 200 - 70 }}\r\n >\r\n {conditions(ConditionName.hasMultiAudio) &&\r\n multiAudio.map((audio: any, index: number) => (\r\n <li\r\n key={audio.id}\r\n className={`pl-flex pl-items-center pl-h-10 pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer pl-transition-all ${\r\n conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"\r\n } ${selectedAudioId === index && ` !pl-cursor-default`}`}\r\n onClick={() => {\r\n dispatch(setSelectedAudioId(index));\r\n // dispatch(setActiveElements(false));\r\n // dispatch(setSettingPopover(false));\r\n // dispatch(setMultiAudioPopover(false));\r\n if (setSection) setSection(SettingSections.main);\r\n }}\r\n >\r\n {selectedAudioId === index && (\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image\r\n src={IMAGES.tick}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"}\r\n alt=\"\"\r\n width={20}\r\n height={20}\r\n />\r\n </div>\r\n )}\r\n\r\n <span\r\n className={`pl-w-full pl-text-[12px] ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"\r\n } pl-pr-[10px]`}\r\n >\r\n زبان {audio.name}\r\n </span>\r\n </li>\r\n ))}\r\n </div>\r\n </ul>\r\n </div>\r\n );\r\n\r\n return (\r\n <>\r\n {showMultiAudioIcon ? (\r\n <div className=\"pl-relative pl-flex pl-items-center\" ref={ref}>\r\n <AudioIcon\r\n className={`pl-size-5 pl-fill-white pl-cursor-pointer ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#4A4A4A]\" : \"pl-text-white\"}`}\r\n onClick={() => dispatch(setMultiAudioPopover(!multiAudioPopover))}\r\n onMouseOver={() => !conditions(ConditionName.isTouchScreen) && setShowTooltip(true)}\r\n onMouseLeave={() => !conditions(ConditionName.isTouchScreen) && setShowTooltip(false)}\r\n />\r\n\r\n {showTooltip && <ControllbarTooltip title=\"تغییر صدا\" />}\r\n <Popover\r\n classNames={`!pl-px-0 pl-overflow-hidden !pl-bg-black/[75%] !pl-pb-0 ${\r\n conditions(ConditionName.isTouchScreen)\r\n ? \"!pl-fixed !pl-bottom-0 !pl-rounded-t-[20px] pl-rounded-b-none\"\r\n : \"!pl-w-[200px] pl-right-0 pl-mb-[33px] !pl-rounded-[12px]\"\r\n } ${conditions(ConditionName.isTouchScreenPortrait) && \"!pl-w-screen tablet:!pl-max-w-[440px] tablet:!pl-mx-auto\"} ${\r\n conditions(ConditionName.isTouchScreenLandscape) && \"pl-w-full pl-max-w-[440px]\"\r\n }`}\r\n status={multiAudioPopover}\r\n onClose={() => dispatch(setMultiAudioPopover(false))}\r\n type={conditions(ConditionName.isTouchScreen) ? \"modal\" : \"popover\"}\r\n isBlurBackground={conditions(ConditionName.isTouchScreen)}\r\n ref={conditions(ConditionName.isTouchScreen) ? ref : undefined}\r\n isHeader={conditions(ConditionName.isTouchScreen)}\r\n isHasCatchUpLineOnTop={conditions(ConditionName.isTouchScreen)}\r\n styles={{\r\n maxHeight:\r\n !conditions(ConditionName.isTouchScreenPortrait) &&\r\n videoElementSizeInfo.height - (conditions(ConditionName.isTouchScreenLandscape) ? 120 : 75),\r\n }}\r\n >\r\n {multiAudioContent}\r\n </Popover>\r\n </div>\r\n ) : (\r\n <>{multiAudioContent}</>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default memo(MultiAudio);\r\n","import { useState } from \"react\";\r\nimport ControllbarTooltip from \"../footer/controllbar/controllbarTooltip\";\r\nimport Image from \"next/image\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\r\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport { shallowEqual } from \"react-redux\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport { handleSubtitle } from \"../../../helpers/redux/actions/videoData.actions\";\r\nimport { tw } from \"../../../helpers/helpers\";\r\n\r\nconst SubtitleIcon = ({\r\n className,\r\n disableTooltip,\r\n height,\r\n width,\r\n normalStyle,\r\n}: {\r\n className?: string;\r\n disableTooltip?: boolean;\r\n width?: number;\r\n height?: number;\r\n normalStyle?: boolean;\r\n}) => {\r\n const [showTooltip, setShowTooltip] = useState<boolean>(false);\r\n useAppSelector(\r\n ({ videoData: { selectedSubtitle, videoElementSizeInfo, params } }) => ({ selectedSubtitle, videoElementSizeInfo, params }),\r\n shallowEqual\r\n );\r\n\r\n return (\r\n <div\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n handleSubtitle();\r\n }}\r\n onDoubleClick={(event: any) => event.stopPropagation()}\r\n onMouseOver={disableTooltip ? undefined : () => !conditions(ConditionName.isTouchScreen) && setShowTooltip(true)}\r\n onMouseLeave={disableTooltip ? undefined : () => !conditions(ConditionName.isTouchScreen) && setShowTooltip(false)}\r\n className={tw(\r\n `pl-relative ${\r\n normalStyle ? \"\" : \"pl-rounded-full hover:pl-bg-[#5E5E5E]\"\r\n } pl-cursor-pointer pl-flex pl-items-center pl-justify-center pl-transition-all ${className} ${\r\n conditions(ConditionName.hasSubtitles) ? \"\" : \"pl-pointer-events-none\"\r\n }`,\r\n { desktop: normalStyle ? undefined : \"pl-w-[40px] pl-h-[25px]\", desktopFullScreen: normalStyle ? undefined : \"pl-w-[56px] pl-h-[36px]\" }\r\n )}\r\n >\r\n <Image\r\n alt=\"subtitle-icon\"\r\n src={\r\n !conditions(ConditionName.hasSubtitles)\r\n ? IMAGES.subtitleDisable\r\n : conditions(ConditionName.isSelectedSubtitle)\r\n ? IMAGES.subtitleFill\r\n : IMAGES.subtitleOutline\r\n }\r\n width={width}\r\n height={height}\r\n />\r\n {showTooltip && !disableTooltip && <ControllbarTooltip title=\"زیرنویس\" />}\r\n </div>\r\n );\r\n};\r\n\r\nexport default SubtitleIcon;\r\n","import { shallowEqual } from \"react-redux\";\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\nimport { secondsToHMS, tw } from \"../../../helpers/helpers\";\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\nimport { conditions } from \"../../../helpers/conditions/conditions\";\nimport { useState } from \"react\";\n\nconst ElapsedTime = ({ className = \"\" }) => {\n const { duration, currentTime } = useAppSelector(({ controller: { duration, currentTime } }) => ({ duration, currentTime }), shallowEqual);\n useAppSelector(({ videoData: { videoElementSizeInfo, params } }) => ({ videoElementSizeInfo, params }), shallowEqual);\n const [reveresElapsedTime, setReveresElapsedTime] = useState(false);\n\n return (\n <div\n onDoubleClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setReveresElapsedTime((prev) => !prev);\n }}\n className={tw(`pl-cursor-pointer pl-rounded-full pl-inline-flex pl-items-center pl-justify-center pl-group ${className}`, {\n desktop: \"pl-min-w-[34px] pl-h-[34px] pl-p-1 pl-bg-black/75\",\n desktopFullScreen: \"pl-min-w-[48px] pl-h-[48px] pl-px-1.5\",\n touch: \"pl-min-w-[78px] pl-h-[22px] pl-py-1 pl-px-1.5 pl-bg-[#282828]\",\n touchFullScreen: \"pl-min-w-[103px] pl-h-[32px] pl-px-2\",\n })}\n >\n <div\n className={tw(\"pl-flex pl-gap-0.5 pl-items-center pl-justify-center pl-rounded-full pl-transition-all\", {\n desktop: \"pl-h-[26px] pl-min-w-[26px] pl-p-1.5 group-hover:pl-bg-[#5E5E5E]\",\n desktopFullScreen: \"pl-h-[36px] pl-min-w-[36px] pl-px-3\",\n })}\n >\n <p\n className={tw(`pl-text-white pl-flex pl-items-center pl-justify-center pl-gap-0.5 `, {\n desktop: \"pl-text-[12px] pl-leading-5 pl-font-bold\",\n desktopFullScreen: \"pl-text-base\",\n touch: \"pl-font-medium pl-text-[12px] pl-pt-0.5\",\n touchFullScreen: \"pl-text-[16px] pl-font-normal pl-pt-1\",\n })}\n >\n <span className={tw(\"\", { touch: \"pl-text-[#C4C4C4]\" })}>{secondsToHMS(duration ? duration : 0)}</span>\n <span>/</span>\n {reveresElapsedTime ? (\n <>\n <span>{secondsToHMS((duration || 0) - (currentTime || 0))}</span>\n <span className=\"pl-mt-0.5\">-</span>\n </>\n ) : (\n <span>{secondsToHMS(currentTime ? currentTime : 0)}</span>\n )}\n </p>\n </div>\n </div>\n );\n};\n\nexport default ElapsedTime;\n","import { shallowEqual } from \"react-redux\";\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\nimport { conditions } from \"../../../helpers/conditions/conditions\";\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\nimport { cleanVTT, spliteStringPerLine, tw } from \"../../../helpers/helpers\";\n\nconst DisplaySubtitle = () => {\n const { subtitleText } = useAppSelector(({ videoData: { subtitleText, selectedSubtitle } }) => ({ subtitleText, selectedSubtitle }), shallowEqual);\n useAppSelector(({ controller: { isFullScreen, activeElements } }) => ({ isFullScreen, activeElements }), shallowEqual);\n\n const subtitlePosition = () => {\n let styles = \"\";\n\n if (conditions(ConditionName.isLock)) styles = \"pl-bottom-[50px]\";\n else if (conditions(ConditionName.isActiveElements)) {\n if (conditions(ConditionName.isTouchScreen) && conditions(ConditionName.isFullScreen)) styles = \"pl-bottom-[64px]\";\n else if (conditions(ConditionName.isFullScreen)) styles = \"pl-bottom-[130px]\";\n else if (conditions(ConditionName.isTouchScreen)) styles = \"pl-bottom-[30px]\";\n else styles = \"pl-bottom-[60px]\";\n } else if (!conditions(ConditionName.isActiveElements)) {\n if (conditions(ConditionName.isTouchScreen) && conditions(ConditionName.isFullScreen)) styles = \"pl-bottom-[20px]\";\n else if (conditions(ConditionName.isFullScreen)) styles = \"pl-bottom-[130px]\";\n else if (conditions(ConditionName.isTouchScreen)) styles = \"pl-bottom-[16px]\";\n else styles = \"pl-bottom-[60px]\";\n }\n\n return styles;\n };\n\n return (\n <div\n id={\"subtitle-id\"}\n style={{ direction: \"ltr\" }}\n className={tw(`pl-z-0 pl-absolute pl-w-full pl-text-center pl-text-white pl-font-semibold ${subtitlePosition()}`, {\n desktop: \"pl-text-[14px] pl-leading-6\",\n desktopFullScreen: \"pl-text-base\",\n touch: \"pl-text-[10px] pl-leading-4\",\n })}\n >\n {spliteStringPerLine(subtitleText!)?.map((text, index) => {\n const value = cleanVTT(text);\n if (value)\n return (\n <p\n key={index}\n className={tw(\n `pl-mx-auto pl-bg-[#000000]/[70%] ${\n conditions(ConditionName.isTouchScreen) && conditions(ConditionName.isActiveElements) && \"pl-opacity-50\"\n } pl-text-wrap pl-max-w-full pl-w-max `,\n { desktop: \"pl-px-2 pl-py-1.5\", desktopFullScreen: \"\", touch: \"pl-p-1\", touchFullScreen: \"\" },\n )}\n >\n {value}\n </p>\n );\n })}\n </div>\n );\n};\n\nexport default DisplaySubtitle;\n","import dynamic from \"next/dynamic\";\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\nimport { conditions } from \"../../../helpers/conditions/conditions\";\n\nconst StaticVideoTag = dynamic(() => import(\"./staticVideoTag\"));\nconst NonStaticVideoTag = dynamic(() => import(\"./nonStaticVideoTag\"));\n\nconst VideoTag = () => {\n return <>{conditions(ConditionName.isStaticFormat) ? <StaticVideoTag /> : <NonStaticVideoTag />}</>;\n};\n\nexport default VideoTag;\n","import { useEffect, useRef } from \"react\";\nimport { checkParentTarget, isTouchScreen } from \"../helpers\";\nimport { activeElementsTime } from \"../environment\";\nimport { shallowEqual } from \"react-redux\";\nimport { useAppDispatch, useAppSelector } from \"../redux/hooks\";\nimport { setActiveElements } from \"../redux/slices/controllerSlice\";\nimport store from \"../redux/store\";\n\nconst useActiveInActive = (isRightDoubleTouched: boolean, isLeftDoubleTouched: boolean) => {\n const dispatch = useAppDispatch();\n const { activeElements, play } = useAppSelector(({ controller: { activeElements, play } }) => ({ activeElements, play }), shallowEqual);\n\n const timeoutRef = useRef<any>(null);\n const isRightDoubleTouchedRef = useRef<boolean>(isRightDoubleTouched);\n const isLeftDoubleTouchedRef = useRef<boolean>(isLeftDoubleTouched);\n\n useEffect(() => {\n isRightDoubleTouchedRef.current = isRightDoubleTouched;\n }, [isRightDoubleTouched]);\n\n useEffect(() => {\n isLeftDoubleTouchedRef.current = isLeftDoubleTouched;\n }, [isLeftDoubleTouched]);\n\n useEffect(() => {\n let shouldInActiveElements = false;\n\n const handlePointerMove = (event: any) => {\n const { activeElements, isEnded } = store.getState().controller;\n if (isEnded) dispatch(setActiveElements(true));\n else if (event.pointerType === \"mouse\") {\n clearTimeout(timeoutRef.current);\n if (!activeElements) dispatch(setActiveElements(true));\n else if (\n [\n \"player-tag\",\n \"main-content\",\n \"player-controllbar\",\n \"video-opacity\",\n \"playerElements\",\n \"touchBackward\",\n \"touchForward\",\n \"backward\",\n \"forward\",\n ].includes(event.target.id)\n )\n shouldInActiveElements = true;\n timeoutRef.current = setTimeout(() => {\n const { settingPopover, speedPopover, qualityLevelsPopover, multiAudioPopover } = store.getState().popovers;\n const { play } = store.getState().controller;\n if (!settingPopover && !speedPopover && !qualityLevelsPopover && !multiAudioPopover && play && shouldInActiveElements)\n dispatch(setActiveElements(false));\n }, activeElementsTime);\n }\n };\n\n const handleTouchStart = (event: any) => {\n setTimeout(() => {\n const { activeElements, isEnded, firstPlay } = store.getState().controller;\n clearTimeout(timeoutRef.current);\n if (isEnded) return dispatch(setActiveElements(true));\n if (isTouchScreen() && !firstPlay && !isRightDoubleTouchedRef.current && !isLeftDoubleTouchedRef.current) {\n if (\n [\"player-tag\", \"main-content\", \"video-opacity\", \"touchBackward\", \"touchForward\", \"backward\", \"forward\"].includes(event.target.id) ||\n checkParentTarget(event, \"playerElements\")\n ) {\n // dispatch(setActiveElements(!activeElements));\n timeoutRef.current = setTimeout(() => {\n const { play } = store.getState().controller;\n const { settingPopover, speedPopover, qualityLevelsPopover, multiAudioPopover } = store.getState().popovers;\n if (!settingPopover && !speedPopover && !qualityLevelsPopover && !multiAudioPopover && play) dispatch(setActiveElements(false));\n }, activeElementsTime);\n } else {\n timeoutRef.current = setTimeout(() => {\n const { play } = store.getState().controller;\n const { settingPopover, speedPopover, qualityLevelsPopover, multiAudioPopover } = store.getState().popovers;\n if (!settingPopover && !speedPopover && !qualityLevelsPopover && !multiAudioPopover && play) dispatch(setActiveElements(false));\n }, activeElementsTime);\n }\n }\n }, 200);\n };\n\n const handleTouchMove = () => {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => {\n const { activeElements, isEnded, play } = store.getState().controller;\n const { settingPopover, speedPopover, qualityLevelsPopover } = store.getState().popovers;\n if (isEnded) dispatch(setActiveElements(true));\n else if (!settingPopover && !speedPopover && !qualityLevelsPopover && activeElements && !isEnded && play) dispatch(setActiveElements(false));\n }, activeElementsTime);\n };\n\n document.getElementById(\"video-area\")!.addEventListener(\"touchstart\", handleTouchStart);\n document.getElementById(\"video-area\")!.addEventListener(\"touchmove\", handleTouchMove);\n document.getElementById(\"video-area\")!.addEventListener(\"pointermove\", handlePointerMove);\n\n return () => {\n const videoArea = document.getElementById(\"video-area\")!;\n if (videoArea) {\n videoArea.removeEventListener(\"touchstart\", handleTouchStart);\n videoArea.removeEventListener(\"touchmove\", handleTouchMove);\n videoArea.removeEventListener(\"pointermove\", handlePointerMove);\n }\n };\n }, [activeElements, isRightDoubleTouched, isLeftDoubleTouched]);\n\n useEffect(() => {\n let timeout: any;\n if (!play) dispatch(setActiveElements(true));\n else timeout = setTimeout(() => dispatch(setActiveElements(false)), activeElementsTime);\n return () => {\n if (timeout) clearTimeout(timeout);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [play]);\n};\n\nexport default useActiveInActive;\n","import { useEffect } from \"react\";\nimport { handleVideoElementSizeInfo } from \"../redux/actions/controller.actions\";\nimport { useAppSelector } from \"../redux/hooks\";\nimport { isTouchScreen } from \"../helpers\";\nimport { shallowEqual } from \"react-redux\";\nimport { mainPlayerVideoTag } from \"../constants\";\n\nconst useHandleResize = () => {\n\n const { firstPlay, isFullScreen } = useAppSelector(({ controller: { firstPlay, isFullScreen } }) => ({firstPlay,isFullScreen,}),shallowEqual);\n\n useEffect(() => {\n if (mainPlayerVideoTag()) {\n let timeout: any;\n const handleResize = () => {\n timeout = setTimeout(\n () => {\n handleVideoElementSizeInfo();\n },\n isTouchScreen() ? 0 : 300\n );\n };\n handleResize();\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n clearTimeout(timeout);\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [firstPlay, isFullScreen, mainPlayerVideoTag()]);\n}\n\nexport default useHandleResize;","import { ICloseIconProps } from \"../../helpers/interfaces/interfaces\";\n\nconst CloseIcon = ({ className, onClick }: ICloseIconProps) => {\n return (\n <svg\n className={className}\n onClick={(e) => {\n e.stopPropagation();\n onClick?.();\n }}\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_372_39317)\">\n <path\n d=\"M10.649 9.01462L17.658 2.00555C18.1141 1.54963 18.1141 0.812452 17.658 0.356588C17.2021 -0.0993313 16.4649 -0.0993313 16.009 0.356588L8.99992 7.3656L1.99107 0.356588C1.53493 -0.0993313 0.798022 -0.0993313 0.342103 0.356588C-0.114034 0.812507 -0.114034 1.54963 0.342103 2.00555L7.3509 9.01462L0.342158 16.0236C-0.11398 16.4796 -0.11398 17.2167 0.342158 17.6726C0.450304 17.7811 0.578815 17.8671 0.720306 17.9257C0.861797 17.9843 1.01348 18.0144 1.16664 18.0143C1.46512 18.0143 1.76371 17.9 1.99112 17.6726L8.99992 10.6636L16.009 17.6726C16.1172 17.781 16.2457 17.867 16.3872 17.9257C16.5287 17.9843 16.6804 18.0144 16.8335 18.0143C17.132 18.0143 17.4306 17.9 17.658 17.6726C18.1141 17.2167 18.1141 16.4796 17.658 16.0236L10.649 9.01462Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_372_39317\">\n <rect width=\"18\" height=\"18\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport default CloseIcon;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/videoPlayerLibrary/components/custom-components/videoArea/videoArea.tsx","../src/videoPlayerLibrary/components/custom-components/header/header.tsx","../src/videoPlayerLibrary/components/custom-components/lockUnlock/lock.tsx","../src/videoPlayerLibrary/components/custom-components/main/main.tsx","../src/videoPlayerLibrary/components/custom-components/footer/footer.tsx","../src/videoPlayerLibrary/components/custom-components/footer/progressbar/progressbar.tsx","../src/videoPlayerLibrary/components/custom-components/tooltip/tooltip.tsx","../src/videoPlayerLibrary/helpers/redux/actions/progressbar.actions.ts","../src/videoPlayerLibrary/components/custom-components/footer/progressbar/markers/markers.tsx","../src/videoPlayerLibrary/helpers/hooks/useOnClickOutside.tsx","../src/videoPlayerLibrary/components/custom-components/emoji/emoji.tsx","../src/videoPlayerLibrary/components/custom-components/footer/controllbar/controllbar.tsx","../src/videoPlayerLibrary/components/custom-components/settings/settings.tsx","../src/videoPlayerLibrary/components/custom-components/popover/popover.tsx","../src/videoPlayerLibrary/components/custom-components/qualityLevels/qualityLevels.tsx","../src/videoPlayerLibrary/components/custom-components/speed/speed.tsx","../src/videoPlayerLibrary/components/icon-components/speed.tsx","../src/videoPlayerLibrary/components/custom-components/subtitles/subtitleSettingMenu.tsx","../src/videoPlayerLibrary/components/icon-components/audioIcon.tsx","../src/videoPlayerLibrary/components/custom-components/multiAudio/MultiAudio.tsx","../src/videoPlayerLibrary/components/custom-components/subtitles/subtitleIcon.tsx","../src/videoPlayerLibrary/components/custom-components/elapsedTime/elapsedTime.tsx","../src/videoPlayerLibrary/components/custom-components/subtitles/displaySubtitle.tsx","../src/videoPlayerLibrary/components/custom-components/videoTag/videoTag.tsx","../src/videoPlayerLibrary/helpers/hooks/useActiveInActive.tsx","../src/videoPlayerLibrary/helpers/hooks/useHandleResize.tsx","../src/videoPlayerLibrary/components/icon-components/closeIcon.tsx"],"names":["init_cjs_shims","Lock","jsxs","conditions","jsx","Image","importImages_default","handleLock","lock_default","Header","firstPlay","useAppSelector","lock","activeElements","shallowEqual","tw","header_default","Main","autoplay","play","isLoading","showLoader","setShowLoader","useState","showPlayPause","setShowPlayPause","useEffect","timeout","showLoaderTime","isTouchScreen","loader_default","Fragment","e","handleBackwardForward","playPause_default","main_default","getPointerPosition","event","videoElementSizeInfo","store_default","clientX","hideProgressTooltip","progressTooltip","handlerShowOrHiddenControllbarInTouch","generalStyleTooltipHandler","showProgressTooltip","progressBarTooltip","offset","progressArea","SAFE_OFFSET","pointerX","tooltipWidth","barWidth","left","setTooltipTime","getTimeFromPointer","secondsToHMS","handleTimeTooltip","isTimer","track","progressTrack","duration","rect","handleProgressTime","bar","progressBar","currentTime","handlePointerDown","timeoutIds","setIsPointerDown","dispatch","setActivePointerProgressBar","setDelayTurnOffControlbar","id","show","handlePointerMove","activePointerProgressBar","mainPlayerVideoTag","handlePointerUp","setTimeoutIds","right","params","handleVideoTimeline","handleTimeout","ids","timeoutIdTemp","settingPopover","delayTurnOffControlbar","setActiveElements","activeElementsTime","handleCatchUpLoadingLog","timer","sendFluentLog","catchUpLoadingLog","handleMouseMove","handleMouseOut","deconstructTimestamp","timestamp","splitStampMilliseconds","timePartsSplit","getSecondsFromTimestamp","timestampParts","getPropsFromDef","def","imageDefSplit","imageUrl","splitCoords","getFullyQualifiedUrl","path","base","getVttCss","vttImageDef","vttUrl","cssObj","baseSplit","imageProps","fetchFile","url","setVttPool","response","setInfo","data","processedVtts","vttDef","vttDefSplit","vttTimingSplit","vttTimeStart","vttTimeEnd","vttCssDef","error","getStyleForTime","time","vttPool","cache","item","objectVtt","Tooltip","details","tooltipTime","isFullScreen","setVttUrl","tooltip_default","memo","useOnClickOutside","ref","handler","listener","useOnClickOutside_default","Emoji","name","className","dataMarker","getEmojiUrl","emoji_default","Markers","useAppDispatch","markers","markerTime","setMarkerTime","overlapMarkers","setOverlapMarkers","overlapMarkersPosition","setOverlapMarkersPosition","isOverlapMarkersInViewport","setIsOverlapMarkersInViewport","calculateMarkerPosition","progressBarWidth","handleClick","markerId","markerTitle","markerDescription","markerSticker","result","sumOverlapMarkersTime","marker","handleJumpToMarker","eventMarkerClickLog","markerRef","useRef","isInViewPort","inViewPort","handleContextMenu","overlapMarker","markers_default","ProgressBar","isPointerDown","bufferedTimeWidth","progressbar_default","Popover","forwardRef","children","status","onClose","type","classNames","parentClassNames","styles","isBlurBackground","isFullHeight","isHeader","isHasCatchUpLineOnTop","animation","scrollbar","isFocusOnInput","showPopover","setShowPopover","maxHeight","setMaxHeight","maxHeightOnTouchMove","setMaxHeightOnTouchMove","zIndexOnCatchUp","setZIndexOnCatchUp","handleTouchMove","handleTouchEnd","content","createPortal","popover_default","QualityLevels","setSection","showQualityLevelsIcon","qualityLevels","manualQuality","autoQuality","settings","qualityLevelsPopover","showTooltip","setShowTooltip","handleTickSelectedQuality","index","qualityLevel","qualityLevelsRef","setQualityLevelsPopover","qualityLevelsContent","qualityChangeRequestLog","setUserSettings","controllbarTooltip_default","qualityLevels_default","SpeedIcon","onClick","onMouseOver","onMouseLeave","width","height","speed_default","speeds","Speed","showSpeedIcon","speedPopover","speedRef","setSpeedPopover","speedContent","speed","speedChangeLog","SubtitleSettingMenu","subtitles","selectedSubtitle","setSelectedSubtitle","textTrack","setSubtitleText","subtitleLog","subtitle","subtitleSettingMenu_default","AudioIcon","audioIcon_default","MultiAudio","showMultiAudioIcon","multiAudioPopover","multiAudio","selectedAudioId","setMultiAudioPopover","multiAudioContent","audio","setSelectedAudioId","MultiAudio_default","SubtitleIcon","disableTooltip","normalStyle","handleSubtitle","subtitleIcon_default","Settings","section","settingsRef","setSettingPopover","_","settings_default","ElapsedTime","reveresElapsedTime","setReveresElapsedTime","prev","elapsedTime_default","Controlbar","fullScreen_default","styleMerge","soundVolume_default","controllbar_default","DisplaySubtitle","subtitleText","spliteStringPerLine","text","value","cleanVTT","displaySubtitle_default","Footer","footer_default","StaticVideoTag","dynamic","NonStaticVideoTag","VideoTag","videoTag_default","useActiveInActive","isRightDoubleTouched","isLeftDoubleTouched","timeoutRef","isRightDoubleTouchedRef","isLeftDoubleTouchedRef","shouldInActiveElements","isEnded","handleTouchStart","checkParentTarget","videoArea","useActiveInActive_default","useHandleResize","handleResize","handleVideoElementSizeInfo","useHandleResize_default","CloseIcon","closeIcon_default","BackwardForward","VideoArea","isRightForward","setIsRightForward","isLeftBackward","setIsLeftBackward","firstMute","canPlayVideo","useFullScreen_default","handleChangeSoundVolume","firstUnMuteHandler","handlePlayPause","handleDoubleClick","SoundVolumeAlert_default","handleFullScreen","videoArea_default"],"mappings":"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","file":"chunk-IKMA6LUH.js","sourcesContent":["\"use client\";\n\nimport { MouseEvent, useState } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nimport Header from \"../header/header\";\nimport Main from \"../main/main\";\nimport Footer from \"../footer/footer\";\nimport VideoTag from \"../videoTag/videoTag\";\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\nimport { conditions } from \"../../../helpers/conditions/conditions\";\nimport { ConditionName, zIndex } from \"../../../helpers/interfaces/enums\";\nimport {\n firstUnMuteHandler,\n handleChangeSoundVolume,\n handleDoubleClick,\n handleFullScreen,\n handlePlayPause,\n} from \"../../../helpers/redux/actions/controller.actions\";\nimport useFullScreen from \"../../../helpers/hooks/useFullScreen\";\nimport useActiveInActive from \"../../../helpers/hooks/useActiveInActive\";\nimport dynamic from \"next/dynamic\";\nimport useHandleResize from \"../../../helpers/hooks/useHandleResize\";\nimport { setActiveElements } from \"../../../helpers/redux/slices/controllerSlice\";\nimport { styleMerge, tw } from \"../../../helpers/helpers\";\nimport SoundVolumeAlert from \"../soundVolumeAlert/SoundVolumeAlert\";\nimport CloseIcon from \"../../icon-components/closeIcon\";\nimport Settings from \"../settings/settings\";\nimport SubtitleIcon from \"../subtitles/subtitleIcon\";\n\n// const TouchVolumeBrightness = dynamic(() => import(\"../touchVolumeBrightness/touchVolumeBrightness\"));\nconst BackwardForward = dynamic(() => import(\"../backwardForward/backwardForward\"));\n\nconst VideoArea = () => {\n const [isRightForward, setIsRightForward] = useState<boolean>(false);\n const [isLeftBackward, setIsLeftBackward] = useState<boolean>(false);\n\n const dispatch = useAppDispatch();\n\n useAppSelector(\n ({ videoData: { details, params, videoElementSizeInfo } }) => ({\n details,\n params,\n videoElementSizeInfo,\n }),\n shallowEqual,\n );\n\n const { firstMute, firstPlay, activeElements } = useAppSelector(\n ({ controller: { firstPlay, isFullScreen, isLoading, canPlayVideo, firstMute, activeElements } }) => ({\n firstPlay,\n isFullScreen,\n isLoading,\n canPlayVideo,\n firstMute,\n activeElements,\n }),\n shallowEqual,\n );\n\n useFullScreen();\n useHandleResize();\n useActiveInActive(isRightForward, isLeftBackward);\n\n return (\n <div\n id=\"video-area\"\n style={{ zIndex: conditions(ConditionName.isFullScreen) ? zIndex.videoPlayerInFullScreen : \"unset\" }}\n onClick={(event) => {\n if (isRightForward || isLeftBackward) return;\n\n const popoverElement = document.getElementById(\"popover-content\");\n if (popoverElement) return;\n\n if (firstMute) {\n handleChangeSoundVolume(50);\n firstUnMuteHandler();\n return;\n }\n\n if (conditions(ConditionName.isTouchScreen)) firstPlay ? handlePlayPause(event) : dispatch(setActiveElements(!activeElements));\n else handlePlayPause(event);\n }}\n onDoubleClick={(event: MouseEvent<HTMLDivElement>) => handleDoubleClick(event)}\n className={tw(\n `pl-bg-contain pl-bg-center pl-w-full pl-relative pl-bg-no-repeat pl-h-full pl-max-h-screen pl-aspect-video pl-flex pl-items-center ${\n !conditions(ConditionName.isActiveElements) && \"pl-cursor-none\"\n }`,\n {\n desktop: \"pl-rounded-[12px] pl-overflow-hidden\",\n touchFullScreen: \"pl-fixed pl-w-screen dvh\",\n desktopFullScreen: \"pl-fixed pl-w-screen dvh\",\n },\n )}\n >\n {conditions(ConditionName.isTouchScreen) && (\n <div\n id=\"video-opacity\"\n style={{ zIndex: zIndex.videoOpacity }}\n className={`pl-absolute pl-bg-black/20 pl-size-full pl-aspect-video pl-transition-all pl-duration-500 ${\n conditions(ConditionName.isActiveElements) ? \"pl-opacity-100 pl-visible\" : \"pl-opacity-0 pl-invisible\"\n } `}\n />\n )}\n\n {conditions(ConditionName.showSoundVolumeAlert) && (\n <SoundVolumeAlert\n className={tw(\"\", { touch: \"pl-absolute pl-z-10 pl-top-[12px] pl-left-[16px]\", touchFullScreen: \"pl-top-[16px] pl-left-[24px]\" })}\n />\n )}\n\n {!firstPlay && conditions(ConditionName.isActiveElements) && (\n <div\n className={tw(\"pl-absolute pl-z-10 pl-flex pl-items-center pl-justify-center pl-gap-4\", {\n touch: \"pl-top-3 pl-right-4\",\n touchFullScreen: \"pl-top-5 pl-right-6\",\n })}\n >\n {conditions(ConditionName.isTouchScreen) && conditions(ConditionName.isFullScreen) && (\n <CloseIcon onClick={handleFullScreen} className=\"pl-text-white pl-size-[18px]\" />\n )}\n\n {conditions(ConditionName.showSettingIcon) && conditions(ConditionName.isTouchScreen) && (\n <Settings\n normalStyle\n width={styleMerge({ desktop: 16, desktopFullScreen: 24, touch: 20, touchFullScreen: 24 })}\n height={styleMerge({ desktop: 16, desktopFullScreen: 24, touch: 20, touchFullScreen: 24 })}\n />\n )}\n\n {conditions(ConditionName.isTouchScreen) && (\n <SubtitleIcon\n normalStyle\n width={styleMerge({ desktop: 16, desktopFullScreen: 24, touch: 20, touchFullScreen: 24 })}\n height={styleMerge({ desktop: 16, desktopFullScreen: 24, touch: 20, touchFullScreen: 24 })}\n />\n )}\n </div>\n )}\n\n {/* {conditions(ConditionName.showTouchVolumeBrightness) && <TouchVolumeBrightness />} */}\n {conditions(ConditionName.showBackwardForward) && (\n <div\n className={`pl-absolute pl-top-0 pl-right-0 pl-w-full pl-h-full pl-overflow-hidden pl-flex pl-items-center`}\n style={{\n zIndex: isLeftBackward || isRightForward ? zIndex.backwardForwardActive : zIndex.backwardForwardInActive,\n }}\n >\n <BackwardForward\n type={conditions(ConditionName.isTouchScreen) ? \"touchForward\" : \"forward\"}\n isRightForward={isRightForward}\n setIsRightForward={setIsRightForward}\n />\n\n <BackwardForward\n type={conditions(ConditionName.isTouchScreen) ? \"touchBackward\" : \"backward\"}\n isLeftBackward={isLeftBackward}\n setIsLeftBackward={setIsLeftBackward}\n />\n </div>\n )}\n <VideoTag />\n <div id=\"playerElements\" className={`pl-absolute pl-top-0 pl-right-0 pl-w-full pl-h-full`}>\n <div className={`pl-flex pl-flex-col pl-justify-between pl-w-full pl-h-full`}>\n {conditions(ConditionName.showHeader) && <Header />}\n {conditions(ConditionName.showMain) && <Main />}\n {conditions(ConditionName.showFooter) && <Footer />}\n </div>\n </div>\n </div>\n );\n};\n\nexport default VideoArea;\n","import { shallowEqual } from \"react-redux\";\nimport Title from \"../title/title\";\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\nimport { conditions } from \"../../../helpers/conditions/conditions\";\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\nimport Lock from \"../lockUnlock/lock\";\nimport { tw } from \"../../../helpers/helpers\";\n\nconst Header = () => {\n const { firstPlay } = useAppSelector(({ controller: { lock, activeElements, firstPlay } }) => ({ lock, activeElements, firstPlay }), shallowEqual);\n\n return (\n <div\n // style={{ backgroundImage: \"linear-gradient(180deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0) 100%)\" }}\n className={tw(`pl-duration-300 pl-transition-[opacity] ${firstPlay ? \"pl-opacity-0\" : \"pl-opacity-100\"}`, {\n desktop: \"pl-rounded-t-[12px] pl-pt-8 pl-h-[45.5px]\",\n touch: \"pl-h-[16px]\",\n })}\n >\n <div className=\" pl-mx-8 pl-flex pl-items-start pl-justify-end pl-h-full\">\n {/* {conditions(ConditionName.showTitle) && <Title />} */}\n {conditions(ConditionName.isLock) && <Lock />}\n </div>\n </div>\n );\n};\n\nexport default Header;\n","import Image from \"next/image\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport { handleLock } from \"../../../helpers/redux/actions/controller.actions\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\r\n\r\nconst Lock = () => {\r\n\r\n return (\r\n <div className={`pl-relative animate__animated animate__faster ${conditions(ConditionName.isActiveElements) ? \"animate__fadeIn pl-pointer-events-auto\" : \"animate__fadeOut pl-pointer-events-none\"}`}>\r\n <Image\r\n src={IMAGES.lock}\r\n alt=\"lock-icon\"\r\n width={20}\r\n height={20}\r\n onClick={() => handleLock(\"unlock\")}\r\n />\r\n {!localStorage.getItem(\"unlock-click\") && <p className=\"pl-text-[10px] pl-text-black/[0.87] pl-bg-[#F7F7F7] pl-absolute pl-left-0 pl-px-4 pl-py-3 pl-rounded-[8px] pl-w-max\">برای باز کردن قفل، کلیک کنید</p>}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Lock;\r\n","import { useEffect, useState } from \"react\";\r\nimport { shallowEqual } from \"react-redux\";\r\nimport PlayPause from \"../playPause/playPause\";\r\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport { ConditionName, zIndex } from \"../../../helpers/interfaces/enums\";\r\nimport Loader from \"../loader/loader\";\r\nimport { showLoaderTime } from \"../../../helpers/environment\";\r\nimport Image from \"next/image\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport { handleBackwardForward } from \"../../../helpers/redux/actions/controller.actions\";\r\nimport { isTouchScreen } from \"../../../helpers/helpers\";\r\n\r\nconst Main = () => {\r\n const { firstPlay, autoplay, play, isLoading } = useAppSelector(\r\n ({\r\n controller: { lock, firstPlay, play, activeElements, isLoading },\r\n videoData: {\r\n params: { autoplay },\r\n },\r\n }) => ({ lock, firstPlay, autoplay, play, activeElements, isLoading }),\r\n shallowEqual,\r\n );\r\n\r\n const [showLoader, setShowLoader] = useState<boolean>(true);\r\n const [showPlayPause, setShowPlayPause] = useState<boolean>(!autoplay);\r\n\r\n useEffect(() => {\r\n if (firstPlay || conditions(ConditionName.isTouchScreen)) return;\r\n\r\n let timeout: any = null;\r\n setShowPlayPause(true);\r\n timeout = setTimeout(() => setShowPlayPause(false), 1000);\r\n return () => {\r\n if (timeout) clearTimeout(timeout);\r\n };\r\n }, [play, firstPlay]);\r\n\r\n useEffect(() => {\r\n let timeout: any;\r\n if (isLoading) timeout = setTimeout(() => setShowLoader(true), showLoaderTime);\r\n else setShowLoader(false);\r\n return () => {\r\n clearTimeout(timeout);\r\n };\r\n }, [isLoading, firstPlay]);\r\n\r\n return (\r\n <main className={`pl-flex-1 pl-flex pl-flex-col ${isTouchScreen() ? \"pl-absolute pl-inset-0\" : \"\"}`}>\r\n {showLoader ? (\r\n <Loader />\r\n ) : (\r\n <>\r\n {!conditions(ConditionName.isLock) && (\r\n <div\r\n id=\"main-content\"\r\n className={`pl-h-full pl-flex-1 pl-flex pl-justify-center pl-items-center pl-text-center ${\r\n conditions(ConditionName.isActiveElements) ? \"pl-pointer-events-auto\" : \"pl-pointer-events-none\"\r\n }`}\r\n >\r\n {!conditions(ConditionName.isTouchScreen) ? (\r\n <div className=\"pl-flex pl-justify-center pl-gap-8 pl-items-center pl-w-max\" style={{ zIndex: zIndex.mainIcons }}>\r\n <PlayPause\r\n normalStyle\r\n disableScale\r\n disableTooltip\r\n inverse={!firstPlay}\r\n width={conditions(ConditionName.isFullScreen) ? 81 : 48}\r\n height={conditions(ConditionName.isFullScreen) ? 81 : 48}\r\n className={`pl-flex pl-transition-all pl-duration-300 pl-ease-in-out pl-items-center pl-justify-center pl-rounded-full ${\r\n conditions(ConditionName.isFullScreen) ? \"pl-size-[122px]\" : \"pl-size-[72px]\"\r\n } pl-bg-black/75 ${showPlayPause ? \"pl-opacity-100\" : \"pl-opacity-0 pl-scale-0\"} ${\r\n firstPlay ? \"!pl-cursor-pointer\" : \"!pl-cursor-default\"\r\n }`}\r\n />\r\n </div>\r\n ) : (\r\n <div className=\"pl-flex pl-justify-center pl-gap-8 pl-items-center pl-w-max\" style={{ zIndex: zIndex.mainIcons }}>\r\n {!firstPlay && (\r\n <div\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n handleBackwardForward(\"touchForward\", 10, e);\r\n }}\r\n className={`pl-flex pl-transition-all pl-duration-300 pl-ease-in-out pl-items-center pl-justify-center pl-rounded-full ${\r\n conditions(ConditionName.isFullScreen) ? \"pl-size-[56px]\" : \"pl-size-[40px]\"\r\n } pl-bg-black/75 ${conditions(ConditionName.isActiveElements) ? \"pl-opacity-100\" : \"pl-opacity-0\"}`}\r\n >\r\n <Image\r\n src={IMAGES.forward2}\r\n alt=\"\"\r\n className={\"!pl-cursor-pointer\"}\r\n width={conditions(ConditionName.isFullScreen) ? 28 : 16}\r\n height={conditions(ConditionName.isFullScreen) ? 28 : 16}\r\n />\r\n </div>\r\n )}\r\n\r\n <PlayPause\r\n normalStyle\r\n disableScale\r\n disableTooltip\r\n className={`pl-flex pl-transition-all pl-duration-300 pl-ease-in-out pl-items-center pl-justify-center pl-rounded-full ${\r\n conditions(ConditionName.isFullScreen) ? \"pl-size-[68px]\" : \"pl-size-[48px]\"\r\n } pl-bg-black/75 ${conditions(ConditionName.isActiveElements) ? \"pl-opacity-100\" : \"pl-opacity-0\"}`}\r\n width={conditions(ConditionName.isFullScreen) ? 36 : 24}\r\n height={conditions(ConditionName.isFullScreen) ? 36 : 24}\r\n />\r\n\r\n {!firstPlay && (\r\n <div\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n handleBackwardForward(\"touchBackward\", 10, e);\r\n }}\r\n className={`pl-flex pl-transition-all pl-duration-300 pl-ease-in-out pl-items-center pl-justify-center pl-rounded-full ${\r\n conditions(ConditionName.isFullScreen) ? \"pl-size-[56px]\" : \"pl-size-[40px]\"\r\n } pl-bg-black/75 ${conditions(ConditionName.isActiveElements) ? \"pl-opacity-100\" : \"pl-opacity-0\"}`}\r\n >\r\n <Image\r\n src={IMAGES.backward2}\r\n alt=\"\"\r\n className={\"!pl-cursor-pointer\"}\r\n width={conditions(ConditionName.isFullScreen) ? 28 : 16}\r\n height={conditions(ConditionName.isFullScreen) ? 28 : 16}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </>\r\n )}\r\n </main>\r\n );\r\n};\r\n\r\nexport default Main;\r\n","import { shallowEqual } from \"react-redux\";\nimport ProgressBar from \"./progressbar/progressbar\";\nimport Controllbar from \"./controllbar/controllbar\";\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\nimport { conditions } from \"../../../helpers/conditions/conditions\";\nimport { ConditionName, zIndex } from \"../../../helpers/interfaces/enums\";\nimport DisplaySubtitle from \"../subtitles/displaySubtitle\";\nimport { tw } from \"../../../helpers/helpers\";\n\nconst Footer = () => {\n const { firstPlay } = useAppSelector(\n ({ controller: { lock, isFullScreen, isLoading, activeElements, firstPlay } }) => ({ lock, isFullScreen, isLoading, activeElements, firstPlay }),\n shallowEqual,\n );\n useAppSelector(({ videoData: { subtitles, selectedSubtitle } }) => ({ subtitles, selectedSubtitle }), shallowEqual);\n\n let styles = \"\";\n\n if (conditions(ConditionName.isTouchScreen)) {\n if (conditions(ConditionName.isFullScreen)) styles = \"pl-gap-2.5 pl-mb-8\";\n else styles = \"pl-gap-3\";\n } else {\n if (conditions(ConditionName.isFullScreen)) styles = \"pl-gap-3 pl-mb-3\";\n else styles = \"pl-gap-1.5 pl-mb-1.5\";\n }\n\n return (\n <div\n id=\"footer\"\n className={tw(`pl-relative pl-rounded-b-[12px] pl-duration-300`)}\n onDoubleClick={(event) => conditions(ConditionName.isActiveElements) && event.stopPropagation()}\n onClick={(event) => conditions(ConditionName.isActiveElements) && event.stopPropagation()}\n style={{\n zIndex: zIndex.footer,\n // backgroundImage: \"linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.5) 100%)\",\n backgroundBlendMode: \"multiply\",\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n }}\n >\n <>\n {conditions(ConditionName.showSubtitle) && <DisplaySubtitle />}\n {!conditions(ConditionName.isLock) && (\n <>\n <div\n className={`pl-flex pl-flex-col pl-w-full pl-mx-auto animate__animated animate__faster ${styles} ${\n conditions(ConditionName.isActiveElements) && !conditions(ConditionName.isLoading)\n ? \"animate__fadeIn pl-pointer-events-auto\"\n : \"animate__fadeOut pl-pointer-events-none\"\n }`}\n >\n {conditions(ConditionName.showProgressbar) && <ProgressBar />}\n <Controllbar />\n </div>\n </>\n )}\n </>\n </div>\n );\n};\n\nexport default Footer;\n","import { useEffect, useState } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nimport Tooltip from \"../../tooltip/tooltip\";\nimport {\n handleCatchUpLoadingLog,\n handleMouseMove,\n handleMouseOut,\n handlePointerDown,\n handlePointerMove,\n handlePointerUp,\n hideProgressTooltip,\n} from \"../../../../helpers/redux/actions/progressbar.actions\";\nimport { useAppSelector } from \"../../../../helpers/redux/hooks\";\nimport { ConditionName } from \"../../../../helpers/interfaces/enums\";\nimport { conditions } from \"../../../../helpers/conditions/conditions\";\nimport Markers from \"./markers/markers\";\nimport { tw } from \"../../../../helpers/helpers\";\n\nconst ProgressBar = () => {\n const [isPointerDown, setIsPointerDown] = useState<boolean>(false);\n const [timeoutIds, setTimeoutIds] = useState<any[]>([]);\n\n useEffect(() => {\n hideProgressTooltip(document.querySelector(\".progressTooltip\"));\n }, []);\n\n const { duration, currentTime, bufferedTimeWidth } = useAppSelector(\n ({ controller: { duration, currentTime, bufferedTimeWidth, isFullScreen } }) => ({\n duration,\n currentTime,\n bufferedTimeWidth,\n isFullScreen,\n }),\n shallowEqual,\n );\n useAppSelector(\n ({ videoData: { params, videoElementSizeInfo } }) => ({\n params,\n videoElementSizeInfo,\n }),\n shallowEqual,\n );\n\n return (\n <div\n id=\"time-progress-container\"\n className={tw(`pl-relative ${conditions(ConditionName.isTouchScreenPortrait) ? \"pl-order-1\" : \"pl-order-none\"}`, { desktop: \"pl-px-4\" })}\n >\n <div className=\"pl-relative\">\n <Tooltip />\n <Markers />\n </div>\n\n <div\n className={`pl-flex pl-items-end`}\n onPointerDown={(event: any) => handlePointerDown(event, timeoutIds, setIsPointerDown)}\n onPointerMove={handlePointerMove}\n onPointerUp={(event: any) => handlePointerUp(event, setTimeoutIds, timeoutIds, setIsPointerDown)}\n onMouseMove={handleMouseMove}\n onMouseOut={handleMouseOut}\n onClick={handleCatchUpLoadingLog}\n >\n <div id=\"progress-area\" className={tw(\"pl-w-full\")}>\n <div\n id=\"time-progress-area\"\n className={tw(\"!pl-w-full pl-relative pl-transition-transform pl-duration-300 pl-m-auto pl-cursor-pointer !pl-bg-[#4A4A4A] \", {\n desktop: \"pl-h-[3px] pl-rounded-[8px]\",\n desktopFullScreen: \"!pl-h-[6px]\",\n touch: \"pl-h-[3px]\",\n touchFullScreen: \"\",\n })}\n >\n <div\n style={{ width: `${bufferedTimeWidth}%` }}\n id=\"time-progress-buffer\"\n className={tw(`pl-absolute pl-bg-[#C7C7C7] `, {\n desktop: \"pl-h-[3px] pl-rounded-[8px]\",\n desktopFullScreen: \"!pl-h-[6px]\",\n touch: \"pl-h-[3px]\",\n touchFullScreen: \"\",\n })}\n />\n <div\n style={{ width: currentTime === duration ? \"0%\" : `${(currentTime / duration) * 100}%` }}\n id=\"time-progress-bar\"\n className={tw(`pl-relative pl-cursor-pointer pl-bg-[#FF0033] before:pl-bg-[#FF0033] before:pl-inline-block`, {\n desktop: `pl-h-[3px] before:pl-size-[9px] pl-rounded-[8px] ${isPointerDown && \"before:pl-size-[11px]\"}`,\n desktopFullScreen: `!pl-h-[6px] before:!pl-size-[20px] ${isPointerDown && \"before:!pl-size-[22px]\"}`,\n touch: `pl-h-[3px] before:pl-size-[8px]`,\n touchFullScreen: `before:!pl-size-[9px]`,\n })}\n />\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default ProgressBar;\n","import { useEffect, useState } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nimport { memo } from \"react\";\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\nimport { conditions } from \"../../../helpers/conditions/conditions\";\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\nimport { fetchFile, getStyleForTime } from \"../../../helpers/redux/actions/progressbar.actions\";\nimport { tw } from \"../../../helpers/helpers\";\n\nconst Tooltip = () => {\n const { details } = useAppSelector(({ videoData: { details } }) => ({ details }), shallowEqual);\n const { tooltipTime } = useAppSelector(\n ({ controller: { tooltipTime, activeElements, isFullScreen } }) => ({ tooltipTime, activeElements, isFullScreen }),\n shallowEqual,\n );\n\n const cache: any = {};\n const [vttPool, setVttPool] = useState<any>(undefined);\n const [vttUrl, setVttUrl] = useState<string | undefined>(conditions(ConditionName.isTouchScreen) ? details.vtt_mobile : details.vtt);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n setVttUrl(details.vtt_mobile);\n }, [details.vtt_mobile]);\n\n useEffect(() => {\n if (!!vttUrl) fetchFile(details.vtt_mobile!, setVttPool);\n }, [vttUrl]);\n\n if (conditions(ConditionName.isActiveElements))\n return (\n <div\n className={`pl-flex pl-flex-col pl-items-center pl-justify-center pl-progressTooltip pl-absolute pl-bottom-[calc(100%+10px)] pl-text-white pl-text-[14px] ${\n vttUrl && !!vttPool ? \"\" : \"\"\n } pl-rounded-[6px] pl-opacity-0`}\n >\n {vttUrl && !!vttPool && (\n <div\n className={tw(`pl-flex-1 pl-border-[1.5px] pl-border-white pl-overflow-hidden pl-relative pl-rounded-[12px]`, {\n desktopFullScreen: \"pl-h-[164px] pl-w-[291px] pl-mb-1.5\",\n desktop: \"pl-h-[93px] pl-w-[165px] pl-mb-1\",\n touch: \"pl-h-[70px] pl-w-[135px] pl-mb-1\",\n touchFullScreen: \"pl-h-[137px] pl-w-[244px]\",\n })}\n >\n <div\n style={getStyleForTime(tooltipTime, vttPool, cache)}\n className={tw(`pl-absolute pl-inset-0 pl-top-1/2 pl-left-1/2 -pl-translate-x-1/2 -pl-translate-y-1/2 `, {\n desktop: \"pl-scale-[170%]\",\n touch: \"pl-scale-[130%]\",\n desktopFullScreen: \"pl-scale-[290%]\",\n touchFullScreen: \"pl-scale-[250%]\",\n })}\n />\n </div>\n )}\n\n <div\n className={tw(\n `pl-flex pl-items-center pl-mx-auto pl-w-fit pl-bg-black/75 pl-rounded-[24px] pl-justify-center pl-progressTimeTooltip pl-text-white !pl-opacity-100 `,\n {\n desktop: \"pl-text-[12px] pl-py-1 pl-px-2 pl-font-bold\",\n desktopFullScreen: \"pl-text-base pl-py-1.5 pl-px-3\",\n touchFullScreen: \"pl-text-base pl-py-1.5 pl-px-3\",\n touch: \"pl-text-[12px] pl-py-1 pl-px-2\",\n },\n )}\n />\n </div>\n );\n};\n\nexport default memo(Tooltip);\n","import store from \"../../redux/store\";\nimport { catchUpLoadingLog } from \"../../logs/logs\";\nimport { ConditionName, zIndex } from \"../../interfaces/enums\";\nimport { setActiveElements, setActivePointerProgressBar, setDelayTurnOffControlbar, setTooltipTime } from \"../slices/controllerSlice\";\nimport { handleVideoTimeline } from \"./controller.actions\";\nimport { setInfo } from \"../slices/videoDataSlice\";\nimport { sendFluentLog } from \"../../logs/fluentdLogger\";\nimport { conditions } from \"../../conditions/conditions\";\nimport { activeElementsTime } from \"../../environment\";\nimport {\n mainPlayerVideoTag,\n playerControllbar,\n progressArea,\n progressBar,\n progressBarWidth,\n progressContainer,\n progressTrack,\n} from \"../../constants\";\nimport { secondsToHMS } from \"../../helpers\";\nimport { CSSProperties } from \"react\";\n\nexport const getPointerPosition = (event: any) => {\n const { videoElementSizeInfo } = store.getState().videoData;\n const clientX = event.clientX !== undefined ? event.clientX : event.touches[0].clientX;\n if (clientX <= videoElementSizeInfo.right && clientX > 0) {\n return clientX - videoElementSizeInfo.left;\n }\n};\n\nexport const getMarkerPosition = (markerTime: number) => {\n const { duration } = store.getState().controller;\n return (markerTime * progressBarWidth()) / duration;\n};\n\nexport const hideProgressTooltip = (progressTooltip: any) => {\n if (progressTooltip) {\n progressTooltip.style.opacity = \"0.0\";\n progressTooltip.style.pointerEvents = \"none\";\n progressTooltip.style.zIndex = zIndex.vttDisable;\n handlerShowOrHiddenControllbarInTouch(true);\n }\n};\n\nconst generalStyleTooltipHandler = (progressTooltip: any) => {\n progressTooltip.style.display = \"block\";\n progressTooltip.style.zIndex = zIndex.vtt;\n progressTooltip.style.opacity = !!store.getState().videoData.details.vtt ? \"1.0\" : \"0.6\";\n progressTooltip.style.pointerEvents = \"auto\";\n progressTooltip.style.transition = \"opacity 1s ease-out\";\n handlerShowOrHiddenControllbarInTouch(false);\n};\n\nexport const showProgressTooltip = (event: any, progressTooltip: any, progressBarTooltip: any) => {\n if (progressTooltip) generalStyleTooltipHandler(progressTooltip);\n\n const offset = progressArea()?.offsetLeft || 0;\n const SAFE_OFFSET = offset ? 0 : 16;\n const pointerX = getPointerPosition(event)! - offset;\n const tooltipWidth = progressTooltip.offsetWidth;\n const barWidth = progressTooltip.parentElement.offsetWidth;\n const left = Math.min(Math.max(pointerX - tooltipWidth / 2, 0 + SAFE_OFFSET), barWidth - tooltipWidth - SAFE_OFFSET);\n progressTooltip.style.left = `${left}px`;\n\n store.dispatch(setTooltipTime(Number(getTimeFromPointer(event)!)));\n progressBarTooltip.textContent = `${secondsToHMS(getTimeFromPointer(event)!)}`;\n};\n\nexport const handleTimeTooltip = (event: any, isTimer: boolean = false) => {\n const { videoElementSizeInfo } = store.getState().videoData;\n const progressTooltip: any = document.querySelector(\".pl-progressTooltip\");\n const progressBarTooltip: any = document.querySelector(\".pl-progressTimeTooltip\");\n const clientX = event.clientX !== undefined ? event.clientX : event.touches[0].clientX;\n if (progressTooltip && progressBarTooltip && clientX <= videoElementSizeInfo.right && clientX > videoElementSizeInfo.left) {\n showProgressTooltip(event, progressTooltip, progressBarTooltip);\n if (isTimer) setTimeout(() => hideProgressTooltip(progressTooltip), 2000);\n } else hideProgressTooltip(progressTooltip);\n};\n\nexport const getTimeFromPointer = (event: any) => {\n const track = progressTrack();\n const { duration } = store.getState().controller;\n if (!track || !duration) return 0;\n\n const clientX = event.clientX !== undefined ? event.clientX : event.touches?.[0]?.clientX;\n\n const rect = track.getBoundingClientRect();\n const offsetX = Math.max(0, Math.min(clientX - rect.left, rect.width));\n\n return (offsetX / rect.width) * duration;\n};\n\nexport const handleProgressTime = (event: any) => {\n const { duration } = store.getState().controller;\n const bar = progressBar();\n const currentTime = getTimeFromPointer(event);\n bar.style.width = `${(currentTime / duration) * 100}%`;\n};\n\nexport const handlePointerDown = (event: any, timeoutIds: any, setIsPointerDown: (value: boolean) => void) => {\n event.preventDefault();\n event.stopPropagation();\n setIsPointerDown(true);\n const dispatch = store.dispatch;\n const clientX = event.clientX !== undefined ? event.clientX : event.touches[0].clientX;\n if (clientX <= event.view.innerWidth && clientX > 0) {\n dispatch(setActivePointerProgressBar(true));\n dispatch(setDelayTurnOffControlbar(true));\n\n const currentTime = getTimeFromPointer(event);\n sessionStorage.setItem(\"previousVideoTime\", String(currentTime));\n progressTrack()?.setPointerCapture(event.pointerId);\n if (timeoutIds.length > 0) timeoutIds.map((id: any) => clearTimeout(id));\n }\n};\n\nconst handlerShowOrHiddenControllbarInTouch = (show: boolean) => {\n // if (conditions(ConditionName.isTouchScreen)) {\n // const controllbar = playerControllbar();\n // controllbar.style.opacity = show ? \"1\" : \"0\";\n // }\n};\n\nexport const handlePointerMove = (event: any) => {\n event.preventDefault();\n event.stopPropagation();\n const dispatch = store.dispatch;\n\n const { activePointerProgressBar } = store.getState().controller;\n const { left } = store.getState().videoData.videoElementSizeInfo;\n const clientX = event.clientX !== undefined ? event.clientX : event.touches[0].clientX;\n const progressTooltip: any = document.querySelector(\".pl-progressTooltip\");\n if (clientX > left) {\n if (progressTooltip) {\n handlerShowOrHiddenControllbarInTouch(false);\n progressTooltip.style.display = \"block !important\";\n progressTooltip.style.pointerEvents = \"auto\";\n }\n if (activePointerProgressBar) {\n dispatch(setDelayTurnOffControlbar(true));\n handleTimeTooltip(event);\n handleProgressTime(event);\n mainPlayerVideoTag()?.pause();\n }\n } else if (progressTooltip) {\n handlerShowOrHiddenControllbarInTouch(true);\n progressTooltip.style.display = \"none !important\";\n progressTooltip.style.pointerEvents = \"none\";\n }\n};\n\nexport const handlePointerUp = (\n event: any,\n setTimeoutIds: (timeoutIds: any[]) => void,\n timeoutIds: any,\n setIsPointerDown: (value: boolean) => void,\n) => {\n setIsPointerDown(false);\n event.preventDefault();\n event.stopPropagation();\n const dispatch = store.dispatch;\n const { duration } = store.getState().controller;\n\n const { left, right } = store.getState().videoData.videoElementSizeInfo;\n const params = store.getState().videoData.params;\n event.target.removeEventListener(\"pointermove\", handlePointerMove);\n const clientX = event.clientX !== undefined ? event.clientX : event.touches[0].clientX;\n let currentTime = 0;\n if (clientX > left && clientX < right) currentTime = getTimeFromPointer(event)!;\n else if (clientX < left) currentTime = 0;\n else if (clientX > 0) currentTime = duration;\n if (!conditions(ConditionName.isStaticFormat)) handleVideoTimeline(mainPlayerVideoTag().currentTime, currentTime);\n mainPlayerVideoTag().currentTime = currentTime;\n if (conditions(ConditionName.hasOnChangeCurrentTime)) params.onChangeCurrentTime!(currentTime);\n if (store.getState().controller.activePointerProgressBar) {\n dispatch(setActivePointerProgressBar(false));\n dispatch(setDelayTurnOffControlbar(false));\n mainPlayerVideoTag().play();\n handleTimeTooltip(event, true);\n sessionStorage.setItem(\"current-time\", String(currentTime));\n handleProgressTime(event);\n handleTimeout(event, dispatch, setTimeoutIds, timeoutIds);\n }\n};\n\nconst handleTimeout = (event: any, dispatch: any, setTimeoutIds: (timeoutIds: any[]) => void, timeoutIds: any) => {\n const ids = timeoutIds;\n let timeoutIdTemp = setTimeout(() => {\n const { settingPopover } = store.getState().popovers;\n const { delayTurnOffControlbar } = store.getState().controller;\n if (event.pointerType === \"touch\" && !settingPopover && delayTurnOffControlbar) dispatch(setActiveElements(false));\n }, activeElementsTime);\n ids.push(timeoutIdTemp);\n setTimeoutIds(ids);\n};\n\nexport const handleCatchUpLoadingLog = () => {\n const timer = Date.now();\n mainPlayerVideoTag()\n .play()\n .then(() => sendFluentLog(catchUpLoadingLog(Date.now() - timer)));\n};\n\nexport const handleMouseMove = (event: any) => handleTimeTooltip(event);\n\nexport const handleMouseOut = () => {\n const progressBarTooltip: any = document.querySelector(\".pl-progressTooltip\");\n hideProgressTooltip(progressBarTooltip);\n};\n\n/////// vtt tooltip\nconst deconstructTimestamp = (timestamp: string) => {\n const splitStampMilliseconds = timestamp?.split(\".\");\n const timeParts = splitStampMilliseconds[0];\n const timePartsSplit = timeParts?.split(\":\");\n\n return {\n milliseconds: parseInt(splitStampMilliseconds[1], 10) || 0,\n seconds: parseInt(timePartsSplit.pop()!, 10) || 0,\n minutes: parseInt(timePartsSplit.pop()!, 10) || 0,\n hours: parseInt(timePartsSplit.pop()!, 10) || 0,\n };\n};\n\nconst getSecondsFromTimestamp = (timestamp: string) => {\n const timestampParts: any = deconstructTimestamp(timestamp);\n\n return parseInt(timestampParts.hours * (60 * 60) + timestampParts.minutes * 60 + timestampParts.seconds + timestampParts.milliseconds / 1000, 10);\n};\n\nconst getPropsFromDef = (def: string) => {\n const imageDefSplit = def?.split(/#xywh=/i);\n const imageUrl = imageDefSplit[0];\n const imageCoords = imageDefSplit[1];\n const splitCoords: any = imageCoords.match(/[0-9]+/gi);\n\n return {\n x: splitCoords[0],\n y: splitCoords[1],\n w: splitCoords[2],\n h: splitCoords[3],\n image: imageUrl,\n };\n};\n\nconst getFullyQualifiedUrl = (path: string, base: string) => {\n if (path.indexOf(\"//\") >= 0) {\n // We have a fully qualified path.\n return path;\n }\n\n if (base.indexOf(\"//\") === 0) {\n // We don't have a fully qualified path, but need to\n // be careful with trimming.\n return [base.replace(/\\/$/gi, \"\"), path.trim()].join(\"/\");\n }\n\n if (base.indexOf(\"//\") > 0) {\n // We don't have a fully qualified path, and should\n // trim both sides of base and path.\n return [base.trim(), path.trim()].join(\"/\");\n }\n\n // If all else fails.\n return path;\n};\n\nconst getVttCss = (vttImageDef: string, vttUrl: string) => {\n const cssObj: any = {};\n // If there isn't a protocol, use the VTT source URL.\n let baseSplit: string = vttUrl?.split(/\\/\\w+\\.vtt\\s?/)[0];\n\n /// offset : (vttUrl)?.split(/\\/\\w+\\.vtt\\s?/)[1]\n\n vttImageDef = getFullyQualifiedUrl(vttImageDef, baseSplit);\n\n if (!vttImageDef.match(/#xywh=/i)) {\n cssObj.background = 'url(\"' + vttImageDef + vttUrl?.split(/\\/\\w+\\.vtt\\s?/)[1] + '\")';\n return cssObj;\n }\n\n const imageProps = getPropsFromDef(vttImageDef);\n\n cssObj.background = 'url(\"' + imageProps.image + vttUrl?.split(/\\/\\w+\\.vtt\\s?/)[1] + '\") no-repeat -' + imageProps.x + \"px -\" + imageProps.y + \"px\";\n cssObj.width = imageProps.w + \"px\";\n cssObj.height = imageProps.h + \"px\";\n cssObj.url = imageProps.image;\n\n return cssObj;\n};\n\nexport const fetchFile = (url: string, setVttPool: any) => {\n fetch(url)\n .then((response) => {\n if (!response.ok) {\n store.dispatch(\n setInfo({\n ...store.getState().videoData.details,\n vtt: undefined,\n vtt_mobile: undefined,\n }),\n );\n throw new Error(\"Network response was not ok\");\n }\n return response.text();\n })\n .then((data) => {\n const processedVtts: any[] = [];\n const vttDefinitions = data?.split(/[\\r\\n][\\r\\n]/i);\n vttDefinitions.forEach((vttDef) => {\n if (vttDef.match(/([0-9]{2}:)?([0-9]{2}:)?[0-9]{2}(.[0-9]{3})?( ?--> ?)([0-9]{2}:)?([0-9]{2}:)?[0-9]{2}(.[0-9]{3}).*/gi)) {\n const vttDefSplit = vttDef?.split(/[\\r\\n]/i);\n const vttTiming = vttDefSplit[0];\n const vttTimingSplit = vttTiming?.split(/ ?--> ?/i);\n const vttTimeStart = vttTimingSplit[0];\n const vttTimeEnd = vttTimingSplit[1];\n const vttImageDef = vttDefSplit[1];\n const vttCssDef = getVttCss(vttImageDef, url);\n\n processedVtts.push({\n start: getSecondsFromTimestamp(vttTimeStart),\n end: getSecondsFromTimestamp(vttTimeEnd),\n css: vttCssDef,\n });\n }\n });\n setVttPool(processedVtts);\n })\n .catch((error) => {\n console.error(\"Error fetching file:\", error);\n });\n};\n\nexport const getStyleForTime = (time: number, vttPool: any, cache: any) => {\n for (let i = 0; i < vttPool.length; ++i) {\n const item = vttPool[i];\n if (time >= item.start && time < item.end) {\n // Cache miss\n if (item.css.url && !cache[item.css.url]) {\n const objectVtt: CSSProperties = {\n background: item.css.background,\n width: item.css.width,\n height: item.css.height,\n };\n cache[item.css.url] = objectVtt;\n return objectVtt;\n } else if (item.css.url) return cache[item.css.url];\n }\n }\n};\n","import { useEffect, useRef, useState, memo } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nimport { useAppDispatch, useAppSelector } from \"../../../../../helpers/redux/hooks\";\nimport { mainPlayerVideoTag, progressBar, progressBarWidth } from \"../../../../../helpers/constants\";\nimport { handleTimeTooltip } from \"../../../../../helpers/redux/actions/progressbar.actions\";\nimport { handleVideoTimeline } from \"../../../../../helpers/redux/actions/controller.actions\";\nimport { sendFluentLog } from \"../../../../../helpers/logs/fluentdLogger\";\nimport { conditions } from \"../../../../../helpers/conditions/conditions\";\nimport { ConditionName, zIndex } from \"../../../../../helpers/interfaces/enums\";\nimport useOnClickOutside from \"../../../../../helpers/hooks/useOnClickOutside\";\nimport { eventMarkerClickLog } from \"../../../../../helpers/logs/logs\";\nimport Emoji from \"../../../emoji/emoji\";\nimport { inViewPort } from \"../../../../../helpers/helpers\";\n\nconst Markers = () => {\n const dispatch = useAppDispatch();\n const { duration, activeElements } = useAppSelector(\n ({ controller: { duration, activeElements, isFullScreen } }) => ({\n duration,\n activeElements,\n isFullScreen\n }),\n shallowEqual\n );\n const { markers } = useAppSelector(\n ({ videoData: { markers, videoElementSizeInfo } }) => ({ markers, videoElementSizeInfo }),\n shallowEqual\n );\n // const { sharePopover } = useAppSelector(({ popovers: { sharePopover } }) => ({ sharePopover }), shallowEqual);\n\n const [markerTime, setMarkerTime] = useState<number | undefined>(undefined);\n const [overlapMarkers, setOverlapMarkers] = useState<any[]>([]);\n const [overlapMarkersPosition, setOverlapMarkersPosition] = useState<any>({});\n const [isOverlapMarkersInViewport, setIsOverlapMarkersInViewport] = useState<boolean>(false);\n\n const calculateMarkerPosition = (time: number) => (duration ? (progressBarWidth() * time) / duration : 0);\n\n const handleClick = (\n event: any,\n markerTime: number,\n markerId: number,\n markerTitle: String,\n markerDescription: String,\n markerSticker: String,\n isTimer: boolean,\n markers: any\n ) => {\n event.stopPropagation();\n const eventMarkerWidth = 24;\n const result = (eventMarkerWidth * markerTime) / (progressBarWidth() + 5);\n\n let overlapMarkers: any[] = [];\n let sumOverlapMarkersTime: number = 0;\n\n markers.map((marker: any) => {\n if (marker.time > markerTime - result && marker.time < markerTime + result) {\n overlapMarkers.push(marker);\n sumOverlapMarkersTime += marker.time;\n }\n });\n if (overlapMarkers.length > 1) setOverlapMarkers(overlapMarkers);\n else {\n overlapMarkers = [];\n setOverlapMarkers([]);\n handleJumpToMarker(event, markerTime, markerId, markerTitle, markerDescription, markerSticker, isTimer);\n }\n };\n\n const handleJumpToMarker = (\n event: any,\n markerTime: number,\n markerId: number,\n markerTitle: String,\n markerDescription: String,\n markerSticker: String,\n isTimer: boolean\n ) => {\n event.stopPropagation();\n handleTimeTooltip(event, isTimer);\n handleVideoTimeline(mainPlayerVideoTag().currentTime, markerTime);\n mainPlayerVideoTag().currentTime = markerTime;\n if (progressBar()) progressBar().style.width = calculateMarkerPosition(markerTime);\n sendFluentLog(eventMarkerClickLog(markerId, markerTime, markerTitle, markerDescription, markerSticker));\n };\n\n // useEffect(() => {\n // if (!sharePopover) setMarkerTime(undefined);\n // }, [sharePopover]);\n\n // useEffect(() => {\n // if (!!markerTime) dispatch(setSharePopover(true));\n // }, [markerTime]);\n\n useEffect(() => {\n if (!conditions(ConditionName.isActiveElements)) setOverlapMarkers([]);\n }, [activeElements]);\n\n const markerRef = useRef<any>(null);\n\n useOnClickOutside(markerRef, () => setOverlapMarkers([]));\n\n useEffect(() => {\n if (overlapMarkers.length > 0) {\n const isInViewPort = inViewPort(document.getElementsByClassName(\"pl-overlapMarkers\")[0]);\n if (isInViewPort === \"inViewport\") {\n setIsOverlapMarkersInViewport(true);\n return setOverlapMarkersPosition({ left: calculateMarkerPosition(overlapMarkers[0].time) });\n } else if (isInViewPort === \"OutViewPortFromLeft\") {\n setIsOverlapMarkersInViewport(false);\n return setOverlapMarkersPosition({ left: 0 });\n } else if (isInViewPort === \"OutViewPortFromRight\") {\n setIsOverlapMarkersInViewport(false);\n return setOverlapMarkersPosition({ right: 0 });\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [overlapMarkers, document.getElementsByClassName(\"pl-overlapMarkers\")[0]]);\n\n const handleContextMenu = (event: any) => {\n event.preventDefault();\n if (conditions(ConditionName.isTouchScreen)) setMarkerTime(Number((event.target as any).getAttribute(\"data-marker\")));\n };\n\n \n\n return (\n <>\n {markers.map((marker: any) => (\n <div\n onContextMenu={handleContextMenu}\n key={marker.id}\n data-marker={marker.time}\n onClick={(event) => handleClick(event, marker.time, marker.id, marker.title, marker.description, marker.sticker, true, markers)}\n onDoubleClick={(event: any) => event.stopPropagation()}\n >\n <div\n className={`pl-emoji-image pl-absolute pl-bottom-[200%] pl-bg-z-gray-700/[0.4] pl-rounded-[6px] pl-p-1 ${\n conditions(ConditionName.isTouchScreenPortrait) ? \"pl-mb-5\" : \"pl-mb-5\"\n } pl-ml-[-12px] pl-cursor-pointer`}\n style={{ left: calculateMarkerPosition(marker.time), zIndex: zIndex.markers }}\n data-marker={marker.time}\n >\n {marker.isPersonal !== null && marker.isPersonal !== undefined && (\n <div className=\"pl-absolute pl-rounded-full pl-top-[-2px] pl-right-[-1px] pl-bg-main pl-w-2 pl-h-2\" />\n )}\n <Emoji dataMarker={marker.time} name={marker.sticker} className=\"pl-w-[16px] pl-h-[16px] !pl-max-w-max\" />\n </div>\n </div>\n ))}\n {overlapMarkers.length > 0 && (\n <div\n className={`pl-overlapMarkers ${\n isOverlapMarkersInViewport ? \"pl-overlayMarkersInViewport\" : \"pl-overlayMarkersOutViewport\"\n } pl-absolute pl-bottom-[45px] pl-px-1 pl-py-2 pl-flex pl-gap-3 pl-flex-row-reverse pl-justify-end pl-bg-z-gray-700/[0.4] pl-rounded-[6px] pl-ml-[-10px] animate__animated animate__fadeInUp pl-opacity-100`}\n ref={markerRef}\n style={overlapMarkersPosition}\n >\n {overlapMarkers.map((overlapMarker: any) => (\n <div\n key={overlapMarker.id}\n className=\"pl-emoji-image pl-rounded-[6px] pl-cursor-pointer\"\n data-marker={overlapMarker.time}\n onClick={(event: any) =>\n handleJumpToMarker(\n event,\n overlapMarker.time,\n overlapMarker.id,\n overlapMarker.title,\n overlapMarker.description,\n overlapMarker.sticker,\n true\n )\n }\n onDoubleClick={(event: any) => event.stopPropagation()}\n >\n <Emoji dataMarker={overlapMarker.time} name={overlapMarker.sticker} className=\"pl-w-[24px] pl-h-[24px] !pl-max-w-max\" />\n </div>\n ))}\n </div>\n )}\n {/* {!!sharePopover && markerTime && (\n <ShareDialog\n currentTime={markerTime ? markerTime : undefined}\n markerId={markers.filter((item: IMarker) => item.time === markerTime)[0].id}\n />\n )} */}\n </>\n );\n};\n\nexport default memo(Markers);\n","import { ChangeEvent, RefObject, useEffect } from \"react\";\n\nconst useOnClickOutside = (ref: RefObject<any>, handler: (event: ChangeEvent<HTMLInputElement>) => void) => {\n useEffect(() => {\n const listener = (event: any) => {\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) return;\n handler(event);\n };\n document.addEventListener(\"mousedown\", listener);\n document.addEventListener(\"touchstart\", listener);\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n document.removeEventListener(\"touchstart\", listener);\n };\n }, [ref, handler]);\n};\n\nexport default useOnClickOutside;\n","import { IEmojiProps } from \"../../../helpers/interfaces/interfaces\";\nimport { getEmojiUrl } from \"../../../helpers/services/baseUrl\";\n\nconst Emoji = ({ name, className, dataMarker }: IEmojiProps) => {\n // eslint-disable-next-line @next/next/no-img-element\n return <img data-marker={dataMarker} src={`${getEmojiUrl()}/${name}.png`} alt={name} className={className} />;\n};\n\nexport default Emoji;\n","import { memo } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nimport FullScreen from \"../../fullScreen/fullScreen\";\nimport PictureInPicture from \"../../pictureInPicture/pictureInPicture\";\nimport SoundVolume from \"../../soundVolume/soundVolume\";\nimport Settings from \"../../settings/settings\";\nimport { useAppSelector } from \"../../../../helpers/redux/hooks\";\nimport { ConditionName } from \"../../../../helpers/interfaces/enums\";\nimport { conditions } from \"../../../../helpers/conditions/conditions\";\nimport Speed from \"../../speed/speed\";\nimport QualityLevels from \"../../qualityLevels/qualityLevels\";\nimport ElapsedTime from \"../../elapsedTime/elapsedTime\";\nimport Unlock from \"../../lockUnlock/unlock\";\nimport SubtitleIcon from \"../../subtitles/subtitleIcon\";\nimport MarkersList from \"../../markersList/markersList\";\nimport MultiAudio from \"../../multiAudio/MultiAudio\";\nimport PlayPause from \"../../playPause/playPause\";\nimport { styleMerge, tw } from \"../../../../helpers/helpers\";\n\nconst Controlbar = () => {\n useAppSelector(({ controller: { isFullScreen } }) => ({ isFullScreen }), shallowEqual);\n useAppSelector(({ videoData: { videoElementSizeInfo, params, subtitles } }) => ({ videoElementSizeInfo, params, subtitles }), shallowEqual);\n\n return (\n <div\n id=\"player-controllbar\"\n className={tw(\"pl-flex pl-justify-between pl-items-center\", {\n desktop: \"pl-px-4\",\n desktopFullScreen: \"pl-px-6\",\n touch: \"pl-px-4 \",\n touchFullScreen: \"pl-px-6 pl-absolute pl-w-full pl-bottom-[51px]\",\n })}\n >\n <div\n className={tw(`pl-rounded-full pl-flex pl-items-center pl-justify-center `, {\n desktop: \"pl-p-1 pl-bg-black/75\",\n desktopFullScreen: \"pl-p-1.5\",\n touch: \"pl-bg-[#282828]\",\n })}\n >\n <FullScreen\n width={styleMerge({ desktop: 16, desktopFullScreen: 24, touch: 16, touchFullScreen: 24 })}\n height={styleMerge({ desktop: 16, desktopFullScreen: 24, touch: 16, touchFullScreen: 24 })}\n />\n {/* {conditions(ConditionName.isTouchScreenLandscape) && (\n <Unlock width={conditions(ConditionName.isFullScreen) ? 24 : 16} height={conditions(ConditionName.isFullScreen) ? 24 : 16} />\n )} */}\n {/* {conditions(ConditionName.showPictureInPicture) && (\n <PictureInPicture width={conditions(ConditionName.isFullScreen) ? 24 : 16} height={conditions(ConditionName.isFullScreen) ? 24 : 16} />\n )} */}\n {conditions(ConditionName.showSettingIcon) && !conditions(ConditionName.isTouchScreen) && (\n <Settings width={conditions(ConditionName.isFullScreen) ? 24 : 16} height={conditions(ConditionName.isFullScreen) ? 24 : 16} />\n )}\n {/* {conditions(ConditionName.isFullScreen) && !conditions(ConditionName.isStaticFormat) && <QualityLevels showQualityLevelsIcon={true} />} */}\n {/* {(conditions(ConditionName.isFullScreen) || conditions(ConditionName.isStaticFormat)) && <Speed showSpeedIcon={true} />} */}\n {!conditions(ConditionName.isTouchScreen) && (\n <SubtitleIcon width={conditions(ConditionName.isFullScreen) ? 24 : 16} height={conditions(ConditionName.isFullScreen) ? 24 : 16} />\n )}\n {/* {conditions(ConditionName.hasMultiAudio) && !conditions(ConditionName.isTouchScreenPortrait) && <MultiAudio showMultiAudioIcon={true} />} */}\n </div>\n <div className={`pl-flex pl-items-center pl-gap-4`}>\n <ElapsedTime className=\"pl-relative z-10\" />\n\n {!conditions(ConditionName.isTouchScreen) && (\n <>\n {!conditions(ConditionName.isIOS) && (\n <SoundVolume width={conditions(ConditionName.isFullScreen) ? 24 : 16} height={conditions(ConditionName.isFullScreen) ? 24 : 16} />\n )}\n <PlayPause width={conditions(ConditionName.isFullScreen) ? 24 : 16} height={conditions(ConditionName.isFullScreen) ? 24 : 16} />\n </>\n )}\n\n {/* {conditions(ConditionName.hasMarkers) && <MarkersList />} */}\n </div>\n </div>\n );\n};\n\nexport default memo(Controlbar);\n","import { memo, useRef, useState } from \"react\";\r\nimport { shallowEqual } from \"react-redux\";\r\nimport ControllbarTooltip from \"../footer/controllbar/controllbarTooltip\";\r\nimport Popover from \"../popover/popover\";\r\nimport Image from \"next/image\";\r\nimport QualityLevels from \"../qualityLevels/qualityLevels\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport { ConditionName, SettingSections } from \"../../../helpers/interfaces/enums\";\r\nimport useOnClickOutside from \"../../../helpers/hooks/useOnClickOutside\";\r\nimport { setSettingPopover } from \"../../../helpers/redux/slices/popoversSlice\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport Speed from \"../speed/speed\";\r\nimport SpeedIcon from \"../../icon-components/speed\";\r\nimport SubtitleSettingMenu from \"../subtitles/subtitleSettingMenu\";\r\nimport AudioIcon from \"../../icon-components/audioIcon\";\r\nimport MultiAudio from \"../multiAudio/MultiAudio\";\r\nimport SubtitleIcon from \"../subtitles/subtitleIcon\";\r\nimport { tw } from \"../../../helpers/helpers\";\r\n\r\nconst Settings = ({ width, height, normalStyle }: { width?: number; height?: number; normalStyle?: boolean }) => {\r\n const dispatch = useAppDispatch();\r\n useAppSelector(({ controller: { isFullScreen } }) => ({ isFullScreen }), shallowEqual);\r\n\r\n const { selectedSubtitle, multiAudio, selectedAudioId, subtitles, settingPopover, settings, qualityLevels } = useAppSelector(\r\n ({\r\n user: { settings },\r\n popovers: { settingPopover },\r\n controller: { qualityLevels },\r\n videoData: { params, subtitles, multiAudio, selectedSubtitle, selectedAudioId },\r\n }) => ({\r\n params,\r\n settings,\r\n subtitles,\r\n multiAudio,\r\n qualityLevels,\r\n settingPopover,\r\n selectedAudioId,\r\n selectedSubtitle,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const [section, setSection] = useState<string>(SettingSections.main);\r\n const [showTooltip, setShowTooltip] = useState<boolean>(false);\r\n\r\n const settingsRef = useRef(null);\r\n\r\n useOnClickOutside(settingsRef, () => {\r\n dispatch(setSettingPopover(false));\r\n setTimeout(() => {\r\n setSection(SettingSections.main);\r\n }, 500);\r\n });\r\n\r\n return (\r\n <div className={`pl-inline-flex ${conditions(ConditionName.isLandscape) && \"pl-relative\"}`} ref={settingsRef}>\r\n <div\r\n className={tw(\r\n `pl-relative pl-cursor-pointer pl-flex pl-items-center pl-justify-center pl-rounded-full ${\r\n normalStyle ? \"\" : \"hover:pl-bg-[#5E5E5E] pl-transition-all\"\r\n }`,\r\n normalStyle\r\n ? undefined\r\n : {\r\n desktop: \"pl-w-[40px] pl-h-[25px]\",\r\n desktopFullScreen: \"pl-w-[56px] pl-h-[36px]\",\r\n }\r\n )}\r\n onDoubleClick={(e) => e.preventDefault()}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n dispatch(setSettingPopover(!settingPopover));\r\n }}\r\n onMouseOver={() => !conditions(ConditionName.isTouchScreen) && !conditions(ConditionName.showSettingPopover) && setShowTooltip(true)}\r\n onMouseLeave={() => !conditions(ConditionName.isTouchScreen) && setShowTooltip(false)}\r\n >\r\n <Image src={IMAGES.settings} alt=\"\" width={width} height={height} />\r\n {showTooltip && <ControllbarTooltip title=\"تنظیمات \" />}\r\n </div>\r\n <Popover\r\n classNames={`!pl-p-0 pl-overflow-hidden ${\r\n conditions(ConditionName.isTouchScreen)\r\n ? \"!pl-fixed !pl-bottom-0 !pl-rounded-t-[20px] pl-rounded-b-none !pl-bg-white\"\r\n : \"!pl-w-[272px] pl-right-0 pl-mb-[33px] !pl-rounded-[12px] !pl-bg-black/[75%]\"\r\n } ${conditions(ConditionName.isTouchScreenPortrait) && \"!pl-w-screen tablet:!pl-max-w-[440px] tablet:!pl-mx-auto\"} ${\r\n conditions(ConditionName.isTouchScreenLandscape) && \"pl-w-full pl-max-w-[285px]\"\r\n } !overflow-auto`}\r\n status={settingPopover}\r\n onClose={() => {\r\n dispatch(setSettingPopover(false));\r\n setTimeout(() => setSection(SettingSections.main), 500);\r\n }}\r\n type={conditions(ConditionName.isTouchScreen) ? \"modal\" : \"popover\"}\r\n isBlurBackground={conditions(ConditionName.isTouchScreen)}\r\n ref={conditions(ConditionName.isTouchScreen) ? settingsRef : undefined}\r\n isHeader={conditions(ConditionName.isTouchScreen)}\r\n customHeader={<></>}\r\n isHasCatchUpLineOnTop={conditions(ConditionName.isTouchScreen)}\r\n >\r\n <div>\r\n {section === SettingSections.main && (\r\n <div id={SettingSections.main} className=\"pl-py-2 pl-rounded-[10px] pl-flex pl-flex-col animate__animated animate__fadeIn\">\r\n {!conditions(ConditionName.isStaticFormat) && (\r\n <div\r\n className={`pl-flex pl-items-center pl-gap-2 pl-cursor-pointer pl-h-10 pl-px-2 ${\r\n conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"\r\n } pl-transition-all`}\r\n onClick={() => setSection(SettingSections.qualityLevels)}\r\n >\r\n <Image\r\n width={20}\r\n height={20}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-[0.3]\" : \"\"}\r\n src={IMAGES.qualitySetting}\r\n alt=\"\"\r\n />\r\n <p\r\n className={`pl-ml-auto pl-text-[12px] pl-font-medium ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"\r\n }`}\r\n >\r\n کیفیت پخش\r\n </p>\r\n <span\r\n className={`pl-ml-1 pl-leading-6 pl-font-normal ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121] pl-text-[11px]\" : \"pl-text-white pl-text-[12px]\"\r\n }`}\r\n >\r\n {settings.quality === -1 ? \"خودکار\" : `${qualityLevels.find((_, index) => index === settings.quality)}p`}\r\n </span>\r\n <Image\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-50\" : \"\"}\r\n src={IMAGES.chevronLeft}\r\n alt=\"\"\r\n width={16}\r\n height={16}\r\n />\r\n </div>\r\n )}\r\n {conditions(ConditionName.hasSubtitles) && (\r\n <div\r\n className={`pl-flex pl-items-center pl-gap-2 pl-cursor-pointer pl-h-10 pl-px-2 ${\r\n conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"\r\n } pl-transition-all`}\r\n onClick={() => setSection(SettingSections.subtitles)}\r\n >\r\n <SubtitleIcon\r\n className={`${conditions(ConditionName.isTouchScreen) ? \"pl-brightness-[0.3]\" : \"\"}`}\r\n normalStyle\r\n width={20}\r\n height={20}\r\n disableTooltip\r\n />\r\n <p\r\n className={`pl-ml-auto pl-text-[12px] pl-font-medium ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"\r\n }`}\r\n >\r\n زیرنویس\r\n </p>\r\n <span\r\n className={`pl-ml-1 pl-leading-6 pl-font-normal ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121] pl-text-[11px]\" : \"pl-text-white pl-text-[12px]\"\r\n }`}\r\n >\r\n {selectedSubtitle ? !!subtitles && subtitles.find((item) => item.language === selectedSubtitle.language)?.label : \"خاموش\"}\r\n </span>\r\n <Image\r\n src={IMAGES.chevronLeft}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-50\" : \"\"}\r\n alt=\"\"\r\n width={16}\r\n height={16}\r\n />\r\n </div>\r\n )}\r\n <div\r\n className={`pl-flex pl-items-center pl-gap-2 pl-cursor-pointer pl-h-10 pl-px-2 ${\r\n conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"\r\n } pl-transition-all`}\r\n onClick={() => setSection(SettingSections.speed)}\r\n >\r\n <SpeedIcon className={`${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#4A4A4A]\" : \"pl-text-white\"}`} width={20} height={20} />\r\n <p\r\n className={`pl-ml-auto pl-text-[12px] pl-font-medium ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"\r\n }`}\r\n >\r\n سرعت\r\n </p>\r\n <span\r\n className={`pl-ml-1 pl-leading-6 pl-font-normal ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121] pl-text-[11px]\" : \"pl-text-white pl-text-[12px]\"\r\n }`}\r\n >\r\n {settings?.speed ? (settings.speed === 1 ? \"معمولی\" : `${settings.speed}`) : \"معمولی\"}\r\n </span>\r\n <Image\r\n src={IMAGES.chevronLeft}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-50\" : \"\"}\r\n alt=\"\"\r\n width={16}\r\n height={16}\r\n />\r\n </div>\r\n {conditions(ConditionName.hasMultiAudio) && (\r\n <div\r\n className={`pl-flex pl-items-center pl-gap-2 pl-cursor-pointer pl-h-10 pl-px-2 ${\r\n conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"\r\n } pl-transition-all`}\r\n onClick={() => setSection(SettingSections.multiAudio)}\r\n >\r\n <AudioIcon className={`pl-size-5 ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#4A4A4A]\" : \"pl-text-white\"}`} />\r\n <p\r\n className={`pl-ml-auto pl-text-[12px] pl-font-medium ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"\r\n }`}\r\n >\r\n تغییر صدا\r\n </p>\r\n <span\r\n className={`pl-ml-1 pl-leading-6 pl-font-normal ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121] pl-text-[11px]\" : \"pl-text-white pl-text-[12px]\"\r\n }`}\r\n >\r\n {multiAudio?.find((_: any, index: number) => index === selectedAudioId)?.name}\r\n </span>\r\n <Image\r\n src={IMAGES.chevronLeft}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-50\" : \"\"}\r\n alt=\"\"\r\n width={16}\r\n height={16}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n {section === SettingSections.qualityLevels && <QualityLevels setSection={setSection} />}\r\n {section === SettingSections.subtitles && <SubtitleSettingMenu setSection={setSection} />}\r\n {section === SettingSections.speed && <Speed setSection={setSection} />}\r\n {section === SettingSections.multiAudio && <MultiAudio setSection={setSection} />}\r\n </div>\r\n </Popover>\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(Settings);\r\n","import { TouchEvent, forwardRef, useEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { shallowEqual } from \"react-redux\";\nimport { IPopoverProps } from \"../../../helpers/interfaces/interfaces\";\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\nimport { zIndex } from \"../../../helpers/interfaces/enums\";\nimport { tw } from \"../../../helpers/helpers\";\n\nconst Popover = forwardRef(\n (\n {\n children,\n status,\n onClose,\n type,\n classNames,\n parentClassNames,\n styles,\n isBlurBackground,\n isFullHeight = false,\n isFullScreen,\n isHeader,\n isHasCatchUpLineOnTop = false,\n animation,\n scrollbar = false,\n isFocusOnInput = false,\n }: IPopoverProps,\n ref: any\n ) => {\n const [showPopover, setShowPopover] = useState<boolean>(status!);\n\n const [maxHeight, setMaxHeight] = useState<number>(0);\n const [maxHeightOnTouchMove, setMaxHeightOnTouchMove] = useState<number>(0);\n const [zIndexOnCatchUp, setZIndexOnCatchUp] = useState<number>(0);\n\n const { videoElementSizeInfo } = useAppSelector(({ videoData: { videoElementSizeInfo } }) => ({ videoElementSizeInfo }), shallowEqual);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n let timeout: any = undefined;\n\n if (status) {\n setShowPopover(true);\n } else {\n timeout = setTimeout(() => {\n onClose(false);\n setMaxHeightOnTouchMove(0);\n setShowPopover(false);\n }, 500);\n }\n\n return () => clearTimeout(timeout);\n }, [status]);\n\n const handleTouchMove = (event: any) => {\n if (event.touches[0].clientY >= videoElementSizeInfo.top) setMaxHeightOnTouchMove(window.innerHeight - event.touches[0].clientY);\n else setMaxHeightOnTouchMove(window.innerHeight - videoElementSizeInfo.top);\n setZIndexOnCatchUp(zIndex.maxPopover);\n };\n\n const handleTouchEnd = () => {\n if (maxHeightOnTouchMove !== 0) {\n if (maxHeightOnTouchMove > maxHeight) {\n if (maxHeightOnTouchMove - maxHeight > (window.innerHeight - videoElementSizeInfo.top - maxHeight) / 2) {\n setMaxHeightOnTouchMove(window.innerHeight - videoElementSizeInfo.top);\n setZIndexOnCatchUp(zIndex.maxPopover);\n } else {\n setMaxHeightOnTouchMove(0);\n setTimeout(() => setZIndexOnCatchUp(0), 500);\n }\n } else {\n if (maxHeightOnTouchMove > maxHeight / 2) setMaxHeightOnTouchMove(maxHeight);\n else {\n setMaxHeightOnTouchMove(0);\n setMaxHeight(0);\n onClose();\n }\n setZIndexOnCatchUp(0);\n }\n }\n };\n\n const content = (\n <>\n {isBlurBackground && (\n <div\n className={`pl-bg-black/[0.5] pl-w-screen pl-h-screen pl-fixed pl-top-0 pl-right-0 animate__animated animate__faster ${\n status ? \"animate__fadeIn\" : \"animate__fadeOut\"\n }`}\n style={{\n zIndex: zIndex.popoverBlurBackground,\n backdropFilter: \"blur(4px)\",\n }}\n />\n )}\n <div\n className={`${\n type === \"modal\" && \"pl-fixed pl-top-0 pl-left-0 pl-flex pl-w-full pl-h-full pl-justify-center pl-items-end sm:pl-items-center\"\n } ${parentClassNames}`}\n style={{\n zIndex: isFullHeight && !isFocusOnInput ? zIndexOnCatchUp : zIndex.popoverContent,\n }}\n >\n <div\n className={`pl-flex pl-flex-col pl-rounded-[8px] animate__animated animate__faster pl-bg-white/[0.9] dark:pl-bg-black/[0.7]\n ${isFullHeight && \"pl-h-full\"}\n ${\n animation\n ? animation\n : window.innerWidth > 768 && type === \"modal\"\n ? status\n ? \"animate__fadeIn\"\n : \"animate__fadeOut\"\n : status\n ? \"animate__fadeInUp\"\n : \"animate__fadeOutDown\"\n }\n before:pl-hidden\n ${\n type !== \"modal\" &&\n `pl-absolute ${tw(\"\", {\n desktop: \"pl-bottom-[20px]\",\n desktopFullScreen: \"pl-bottom-[60px]\",\n })} pl-overflow-auto no-scrollbar`\n }\n ${classNames}\n `}\n style={{\n maxHeight: isFullScreen ? \"unset\" : maxHeightOnTouchMove ? maxHeightOnTouchMove : maxHeight ? maxHeight : \"\",\n zIndex: zIndex.popoverContent,\n ...styles,\n }}\n ref={ref}\n id=\"popover-content\"\n >\n <>\n {isHeader && (\n <div\n onTouchMove={isHasCatchUpLineOnTop ? handleTouchMove : () => {}}\n onTouchEndCapture={isHasCatchUpLineOnTop ? handleTouchEnd : () => {}}\n className=\"pl-py-4\"\n >\n {isHasCatchUpLineOnTop && (\n <div className=\"pl-absolute pl-top-[10px] pl-right-[50%] pl-mr-[-25px] pl-text-center pl-w-8 pl-h-1 pl-rounded-[20px] pl-bg-gray-highLight\" />\n )}\n </div>\n )}\n <div\n id=\"popover-content\"\n className={`pl-overflow-y-auto pl-h-full pl-w-full ${!scrollbar && \"no-scrollbar\"}`}\n onTouchMove={(event: TouchEvent<HTMLDivElement>) => event.stopPropagation()}\n >\n {children}\n </div>\n </>\n </div>\n </div>\n </>\n );\n\n return (\n <>\n {showPopover && (\n <>\n {type === \"modal\" ? (\n createPortal(\n <div style={{ fontFamily: \"IRANSansXFaNum\", direction: \"rtl\", overflowX: \"hidden\" }}>{content}</div>,\n document.getElementById(\"dialog-react-root-videoPlayer\")!\n )\n ) : (\n <div id=\"player-popover\">{content}</div>\n )}\n </>\n )}\n </>\n );\n }\n);\n\nPopover.displayName = \"popover\";\n\nexport default Popover;\n","import { shallowEqual } from \"react-redux\";\r\nimport { memo, useRef, useState } from \"react\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport { ConditionName, SettingSections } from \"../../../helpers/interfaces/enums\";\r\nimport { sendFluentLog } from \"../../../helpers/logs/fluentdLogger\";\r\nimport { qualityChangeRequestLog } from \"../../../helpers/logs/logs\";\r\nimport { setActiveElements } from \"../../../helpers/redux/slices/controllerSlice\";\r\nimport { setQualityLevelsPopover, setSettingPopover } from \"../../../helpers/redux/slices/popoversSlice\";\r\nimport { setUserSettings } from \"../../../helpers/redux/slices/userSlice\";\r\nimport Image from \"next/image\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport { IQualityLevel } from \"../../../helpers/interfaces/interfaces\";\r\nimport Popover from \"../popover/popover\";\r\nimport useOnClickOutside from \"../../../helpers/hooks/useOnClickOutside\";\r\nimport ControllbarTooltip from \"../footer/controllbar/controllbarTooltip\";\r\n\r\nconst QualityLevels = ({ setSection, showQualityLevelsIcon }: IQualityLevel) => {\r\n const dispatch = useAppDispatch();\r\n let { qualityLevels } = useAppSelector(\r\n ({ controller: { qualityLevels, manualQuality, autoQuality } }) => ({\r\n qualityLevels,\r\n manualQuality,\r\n autoQuality,\r\n }),\r\n shallowEqual\r\n );\r\n const { settings } = useAppSelector(({ user: { settings } }) => ({ settings }), shallowEqual);\r\n const { qualityLevelsPopover } = useAppSelector(({ popovers: { qualityLevelsPopover } }) => ({ qualityLevelsPopover }), shallowEqual);\r\n const { videoElementSizeInfo } = useAppSelector(\r\n ({ videoData: { params, videoElementSizeInfo } }) => ({ params, videoElementSizeInfo }),\r\n shallowEqual\r\n );\r\n\r\n const [showTooltip, setShowTooltip] = useState<boolean>(false);\r\n\r\n qualityLevels = [-1, ...qualityLevels];\r\n\r\n const handleTickSelectedQuality = (index: number, qualityLevel: number) => {\r\n if (conditions(ConditionName.isAutoQuality) && qualityLevel === -1) return true;\r\n else return !conditions(ConditionName.isAutoQuality) && settings.quality === index;\r\n };\r\n\r\n const qualityLevelsRef = useRef<any>(null);\r\n\r\n useOnClickOutside(qualityLevelsRef, () => dispatch(setQualityLevelsPopover(false)));\r\n\r\n const qualityLevelsContent = (\r\n <div\r\n id={SettingSections.qualityLevels}\r\n className={`animate__animated animate__fadeIn ${conditions(ConditionName.isTouchScreen) ? \"pl-pb-2\" : \"pl-py-2\"}`}\r\n >\r\n <ul className=\"pl-flex pl-flex-col pl-gap-1\">\r\n <li\r\n className={`pl-flex pl-items-center pl-border-b ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-border-b-[#D9D9D9]\" : \"pl-border-b-[#4A4A4A]\"\r\n } pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer pl-h-10`}\r\n onClick={() => setSection && setSection(SettingSections.main)}\r\n >\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image\r\n src={IMAGES.chevronRight}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"}\r\n alt=\"\"\r\n width={16}\r\n height={16}\r\n />\r\n </div>\r\n <span\r\n className={`pl-w-full pl-text-[12px] ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"} pl-pr-[10px]`}\r\n >\r\n کیفیت پخش\r\n </span>\r\n </li>\r\n\r\n <div\r\n className=\"pl-overflow-y-auto no-scrollbar\"\r\n style={{ maxHeight: conditions(ConditionName.isTouchScreenPortrait) ? undefined : videoElementSizeInfo.height - 200 - 70 }}\r\n >\r\n {qualityLevels.map((qualityLevel: number, index: number) => (\r\n <li\r\n key={index}\r\n className={`pl-flex pl-items-center pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer pl-h-10 pl-transition-all ${\r\n conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"\r\n } ${handleTickSelectedQuality(index - 1, qualityLevel) && `!pl-cursor-default`}`}\r\n onClick={() => {\r\n if (handleTickSelectedQuality(index - 1, qualityLevel)) return;\r\n sendFluentLog(qualityChangeRequestLog(qualityLevel === -1 ? \"auto\" : `${qualityLevel}P`));\r\n // dispatch(setActiveElements(false));\r\n // dispatch(setSettingPopover(false));\r\n // dispatch(setQualityLevelsPopover(false));\r\n dispatch(setUserSettings({ ...settings, quality: qualityLevel === -1 ? -1 : index - 1 }));\r\n if (setSection) setSection(SettingSections.main);\r\n }}\r\n >\r\n {!!handleTickSelectedQuality(index - 1, qualityLevel) && (\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image\r\n src={IMAGES.tick}\r\n alt=\"\"\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"}\r\n width={20}\r\n height={20}\r\n />\r\n </div>\r\n )}\r\n\r\n <span\r\n className={`pl-w-full pl-text-[12px] ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"} pl-pr-[10px]`}\r\n >\r\n {qualityLevel === -1 ? (\r\n <span>\r\n <span>خودکار </span>\r\n <span\r\n className={`pl-text-[10px] pl-font-normal ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#737373]\" : \"pl-text-[#C7C7C7]\"\r\n }`}\r\n >\r\n (بر اساس سرعت اینترنت شما)\r\n </span>\r\n </span>\r\n ) : (\r\n `${qualityLevel}p`\r\n )}\r\n </span>\r\n </li>\r\n ))}\r\n </div>\r\n </ul>\r\n </div>\r\n );\r\n\r\n return (\r\n <>\r\n {showQualityLevelsIcon ? (\r\n <div className=\"pl-relative pl-flex pl-items-center\" ref={qualityLevelsRef}>\r\n <Image\r\n src={IMAGES.qualitySetting}\r\n alt=\"speed-icon\"\r\n width={20}\r\n height={20}\r\n onClick={() => dispatch(setQualityLevelsPopover(!qualityLevelsPopover))}\r\n onMouseOver={() =>\r\n !conditions(ConditionName.isTouchScreen) && !conditions(ConditionName.showQualityLevelsPopover) && setShowTooltip(true)\r\n }\r\n onMouseLeave={() => !conditions(ConditionName.isTouchScreen) && setShowTooltip(false)}\r\n className=\"pl-cursor-pointer\"\r\n />\r\n {showTooltip && <ControllbarTooltip title=\"کیفیت\" />}\r\n <Popover\r\n classNames={`!pl-p-0 pl-overflow-hidden !pl-bg-black/[75%] ${\r\n conditions(ConditionName.isTouchScreen)\r\n ? \"!pl-fixed !pl-bottom-0 !pl-rounded-t-[20px] pl-rounded-b-none\"\r\n : \"pl-right-0 pl-mb-[33px] !pl-rounded-[12px] pl-w-[230px]\"\r\n } ${conditions(ConditionName.isTouchScreenPortrait) && \"!pl-w-screen tablet:pl-max-w-[440px]\"} ${\r\n conditions(ConditionName.isTouchScreenLandscape) && \"pl-w-full pl-max-w-[440px]\"\r\n }`}\r\n status={qualityLevelsPopover}\r\n onClose={() => dispatch(setQualityLevelsPopover(false))}\r\n type={conditions(ConditionName.isTouchScreen) ? \"modal\" : \"popover\"}\r\n isBlurBackground={conditions(ConditionName.isTouchScreen)}\r\n ref={conditions(ConditionName.isTouchScreen) ? qualityLevelsRef : undefined}\r\n isHeader={conditions(ConditionName.isTouchScreen)}\r\n customHeader={<></>}\r\n isHasCatchUpLineOnTop={conditions(ConditionName.isTouchScreen)}\r\n styles={{\r\n maxHeight:\r\n !conditions(ConditionName.isTouchScreenPortrait) &&\r\n videoElementSizeInfo.height - (conditions(ConditionName.isTouchScreenLandscape) ? 120 : 75),\r\n }}\r\n >\r\n {qualityLevelsContent}\r\n </Popover>\r\n </div>\r\n ) : (\r\n <>{qualityLevelsContent}</>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default memo(QualityLevels);\r\n","import { useEffect, useRef, useState } from \"react\";\r\nimport { shallowEqual } from \"react-redux\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport useOnClickOutside from \"../../../helpers/hooks/useOnClickOutside\";\r\nimport { setSettingPopover, setSpeedPopover } from \"../../../helpers/redux/slices/popoversSlice\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport { ConditionName, SettingSections } from \"../../../helpers/interfaces/enums\";\r\nimport { setUserSettings } from \"../../../helpers/redux/slices/userSlice\";\r\nimport { sendFluentLog } from \"../../../helpers/logs/fluentdLogger\";\r\nimport { speedChangeLog } from \"../../../helpers/logs/logs\";\r\nimport { ISpeed } from \"../../../helpers/interfaces/interfaces\";\r\nimport Image from \"next/image\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport Popover from \"../popover/popover\";\r\nimport { setActiveElements } from \"../../../helpers/redux/slices/controllerSlice\";\r\nimport ControllbarTooltip from \"../footer/controllbar/controllbarTooltip\";\r\nimport SpeedIcon from \"../../icon-components/speed\";\r\nimport { mainPlayerVideoTag } from \"../../../helpers/constants\";\r\n\r\nexport const speeds = [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2];\r\n\r\nconst Speed = ({ setSection, showSpeedIcon }: ISpeed) => {\r\n const dispatch = useAppDispatch();\r\n const { videoElementSizeInfo, params } = useAppSelector(\r\n ({ videoData: { videoElementSizeInfo, params } }) => ({ videoElementSizeInfo, params }),\r\n shallowEqual\r\n );\r\n const { speedPopover } = useAppSelector(({ popovers: { speedPopover } }) => ({ speedPopover }), shallowEqual);\r\n const { settings } = useAppSelector(({ user: { settings } }) => ({ settings }), shallowEqual);\r\n\r\n const speedRef = useRef<any>(null);\r\n\r\n const [showTooltip, setShowTooltip] = useState<boolean>(false);\r\n\r\n useOnClickOutside(speedRef, () => dispatch(setSpeedPopover(false)));\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n useEffect(() => {\r\n if (mainPlayerVideoTag()) mainPlayerVideoTag().playbackRate = settings.speed;\r\n }, []);\r\n\r\n const speedContent = (\r\n <div\r\n id={SettingSections.speed}\r\n className={`animate__animated animate__fadeIn ${conditions(ConditionName.isTouchScreen) ? \"pl-pb-2\" : \"pl-py-2\"}`}\r\n >\r\n <ul className=\"pl-flex pl-flex-col pl-gap-1\">\r\n <li\r\n className={`pl-flex pl-items-center pl-border-b ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-border-b-[#D9D9D9]\" : \"pl-border-b-[#4A4A4A]\"\r\n } pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer pl-h-10`}\r\n onClick={() => setSection && setSection(SettingSections.main)}\r\n >\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image\r\n src={IMAGES.chevronRight}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"}\r\n alt=\"\"\r\n width={16}\r\n height={16}\r\n />\r\n </div>\r\n <span\r\n className={`pl-w-full pl-text-[12px] ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"} pl-pr-[10px]`}\r\n >\r\n سرعت\r\n </span>\r\n </li>\r\n\r\n <div\r\n className=\"pl-overflow-y-auto no-scrollbar\"\r\n style={{ maxHeight: conditions(ConditionName.isTouchScreenPortrait) ? undefined : videoElementSizeInfo.height - 200 - 70 }}\r\n >\r\n {speeds.map((speed: number, index: number) => (\r\n <li\r\n key={index}\r\n className={`pl-flex pl-items-center pl-h-10 pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer pl-transition-all ${\r\n conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"\r\n } ${settings.speed === speed && ` !pl-cursor-default`}`}\r\n onClick={\r\n settings.speed === speed\r\n ? () => {}\r\n : () => {\r\n if (!conditions(ConditionName.isStaticFormat)) sendFluentLog(speedChangeLog(speed));\r\n // dispatch(setActiveElements(false));\r\n // dispatch(setSettingPopover(false));\r\n // dispatch(setSpeedPopover(false));\r\n dispatch(setUserSettings({ ...settings, speed }));\r\n mainPlayerVideoTag().playbackRate = speed;\r\n if (setSection) setSection(SettingSections.main);\r\n if (params.onSpeedChange) params.onSpeedChange(settings.speed, speed);\r\n }\r\n }\r\n >\r\n {settings.speed === speed && (\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image\r\n src={IMAGES.tick}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"}\r\n alt=\"\"\r\n width={20}\r\n height={20}\r\n />\r\n </div>\r\n )}\r\n <p\r\n className={`pl-text-[12px] ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"\r\n } pl-pr-[10px] pl-w-10 pl-text-center`}\r\n >\r\n {speed}\r\n </p>\r\n </li>\r\n ))}\r\n </div>\r\n </ul>\r\n </div>\r\n );\r\n\r\n return (\r\n <>\r\n {showSpeedIcon ? (\r\n <div className=\"pl-relative pl-flex pl-items-center\" ref={speedRef}>\r\n <SpeedIcon\r\n width={20}\r\n height={20}\r\n className={`pl-cursor-pointer size-5 ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#4A4A4A]\" : \"pl-text-white\"}`}\r\n onClick={() => dispatch(setSpeedPopover(!speedPopover))}\r\n onMouseOver={() => !conditions(ConditionName.isTouchScreen) && !conditions(ConditionName.showSpeedPopover) && setShowTooltip(true)}\r\n onMouseLeave={() => !conditions(ConditionName.isTouchScreen) && setShowTooltip(false)}\r\n />\r\n {showTooltip && <ControllbarTooltip title=\"سرعت\" />}\r\n <Popover\r\n classNames={`!pl-p-0 pl-overflow-hidden !pl-bg-white ${\r\n conditions(ConditionName.isTouchScreen)\r\n ? \"!pl-fixed !pl-bottom-0 !pl-rounded-t-[20px] pl-rounded-b-none\"\r\n : \"!pl-w-[230px] pl-right-0 pl-mb-[33px] !pl-rounded-[12px]\"\r\n } ${conditions(ConditionName.isTouchScreenPortrait) && \"!pl-w-screen tablet:!pl-max-w-[440px] tablet:!pl-mx-auto\"} ${\r\n conditions(ConditionName.isTouchScreenLandscape) && \"pl-w-full pl-max-w-[440px]\"\r\n } !pl-z-[100000]`}\r\n status={speedPopover}\r\n onClose={() => dispatch(setSpeedPopover(false))}\r\n type={conditions(ConditionName.isTouchScreen) ? \"modal\" : \"popover\"}\r\n isBlurBackground={conditions(ConditionName.isTouchScreen)}\r\n ref={conditions(ConditionName.isTouchScreen) ? speedRef : undefined}\r\n isHeader={conditions(ConditionName.isTouchScreen)}\r\n customHeader={<></>}\r\n isHasCatchUpLineOnTop={conditions(ConditionName.isTouchScreen)}\r\n styles={{\r\n maxHeight:\r\n !conditions(ConditionName.isTouchScreenPortrait) &&\r\n videoElementSizeInfo.height - (conditions(ConditionName.isTouchScreenLandscape) ? 120 : 75),\r\n }}\r\n >\r\n {speedContent}\r\n </Popover>\r\n </div>\r\n ) : (\r\n <>{speedContent}</>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default Speed;\r\n","import { ISpeedProps } from \"../../helpers/interfaces/interfaces\";\n\nconst SpeedIcon = ({ className, onClick, onMouseOver, onMouseLeave, width, height }: ISpeedProps) => {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n onClick={onClick}\n viewBox=\"0 0 20 20\"\n className={className}\n onMouseOver={onMouseOver}\n style={{ width, height }}\n onMouseLeave={onMouseLeave}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.83613 12.7885C9.13211 13.0844 9.51329 13.2249 9.97967 13.21C10.4459 13.195 10.7881 13.0267 11.0061 12.7052L15.5284 6.15396L8.96113 10.6602C8.63433 10.8783 8.4578 11.2135 8.43155 11.6658C8.40544 12.1183 8.5403 12.4926 8.83613 12.7885ZM9.99967 3.75C10.7925 3.75 11.5352 3.85389 12.228 4.06167C12.9209 4.26944 13.59 4.58382 14.2353 5.00479L13.0605 5.76438C12.5862 5.51229 12.0945 5.32188 11.5855 5.19313C11.0763 5.06438 10.5477 5 9.99967 5C8.15245 5 6.57954 5.64931 5.28092 6.94792C3.98231 8.24653 3.33301 9.81944 3.33301 11.6667C3.33301 12.25 3.41287 12.8264 3.57259 13.3958C3.73231 13.9653 3.95801 14.5 4.24967 15H15.7497C16.0691 14.4722 16.3018 13.9236 16.4476 13.3542C16.5934 12.7847 16.6663 12.1944 16.6663 11.5833C16.6663 11.0833 16.6047 10.5772 16.4813 10.065C16.3579 9.55264 16.1674 9.06625 15.9099 8.60583L16.6695 7.43104C17.0809 8.10521 17.3894 8.77965 17.5951 9.45438C17.8006 10.1291 17.9077 10.8302 17.9163 11.5577C17.9248 12.312 17.8399 13.0249 17.6616 13.6963C17.4831 14.3678 17.2144 15.0246 16.8555 15.6667C16.7454 15.8472 16.5904 15.9896 16.3907 16.0938C16.1909 16.1979 15.9772 16.25 15.7497 16.25H4.24967C4.02745 16.25 3.8178 16.1966 3.62072 16.0898C3.42363 15.9828 3.26467 15.8311 3.14384 15.6346C2.82551 15.079 2.56912 14.4733 2.37467 13.8173C2.18023 13.1613 2.08301 12.4444 2.08301 11.6667C2.08301 10.5781 2.28954 9.55465 2.70259 8.59646C3.11565 7.63826 3.67947 6.79903 4.39405 6.07875C5.10877 5.35847 5.94898 4.79028 6.91467 4.37417C7.88051 3.95806 8.90884 3.75 9.99967 3.75Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default SpeedIcon;\n","import { shallowEqual } from \"react-redux\";\r\nimport { memo } from \"react\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport { ConditionName, SettingSections } from \"../../../helpers/interfaces/enums\";\r\nimport { setSelectedSubtitle, setSubtitleText } from \"../../../helpers/redux/slices/videoDataSlice\";\r\nimport { mainPlayerVideoTag } from \"../../../helpers/constants\";\r\nimport { subtitleLog } from \"../../../helpers/logs/logs\";\r\nimport { sendFluentLog } from \"../../../helpers/logs/fluentdLogger\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport Image from \"next/image\";\r\n\r\nconst SubtitleSettingMenu = ({ setSection }: any) => {\r\n const dispatch = useAppDispatch();\r\n const { subtitles, selectedSubtitle, videoElementSizeInfo } = useAppSelector(\r\n ({ videoData: { subtitles, selectedSubtitle, videoElementSizeInfo } }) => ({ subtitles, selectedSubtitle, videoElementSizeInfo }),\r\n shallowEqual,\r\n );\r\n\r\n return (\r\n <div\r\n id={SettingSections.subtitles}\r\n className={`animate__animated animate__fadeIn ${conditions(ConditionName.isTouchScreen) ? \"pl-pb-2\" : \"pl-py-2\"}`}\r\n >\r\n <ul className=\"pl-flex pl-flex-col pl-gap-1\">\r\n <li\r\n className={`pl-flex pl-items-center pl-border-b ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-border-b-[#D9D9D9]\" : \"pl-border-b-[#4A4A4A]\"\r\n } pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer pl-h-10`}\r\n onClick={() => setSection && setSection(SettingSections.main)}\r\n >\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image\r\n src={IMAGES.chevronRight}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"}\r\n alt=\"\"\r\n width={16}\r\n height={16}\r\n />\r\n </div>\r\n <span\r\n className={`pl-w-full pl-text-[12px] ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"} pl-pr-[10px]`}\r\n >\r\n زیر نویس\r\n </span>\r\n </li>\r\n\r\n <div\r\n className=\"pl-overflow-y-auto no-scrollbar\"\r\n style={{ maxHeight: conditions(ConditionName.isTouchScreenPortrait) ? undefined : videoElementSizeInfo.height - 200 - 70 }}\r\n >\r\n <li\r\n className={`pl-flex pl-items-center pl-h-10 pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer ${\r\n !selectedSubtitle && `${conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"} !pl-cursor-default`\r\n }`}\r\n onClick={() => {\r\n // dispatch(setActiveElements(false));\r\n // dispatch(setSettingPopover(false));\r\n dispatch(setSelectedSubtitle(undefined));\r\n setSection(SettingSections.main);\r\n const result: any = Object.values(mainPlayerVideoTag().textTracks).find((textTrack: any) => textTrack.mode === \"showing\");\r\n if (result) result.mode = \"disabled\";\r\n dispatch(setSubtitleText(\"\"));\r\n sendFluentLog(subtitleLog(\"empty\"));\r\n }}\r\n >\r\n {!selectedSubtitle && (\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image src={IMAGES.tick} className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"} alt=\"\" width={20} height={20} />\r\n </div>\r\n )}\r\n\r\n <span\r\n className={`pl-w-full pl-text-[12px] ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"} pl-pr-[10px]`}\r\n >\r\n بدون زیرنویس\r\n </span>\r\n </li>\r\n\r\n {subtitles.map((subtitle: any, index: number) => (\r\n <li\r\n key={index}\r\n className={`pl-flex pl-items-center pl-h-10 pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer pl-transition-all ${\r\n conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"\r\n } ${selectedSubtitle && selectedSubtitle.language === subtitle.language && ` !pl-cursor-default`}`}\r\n onClick={() => {\r\n // dispatch(setActiveElements(false));\r\n // dispatch(setSettingPopover(false));\r\n dispatch(setSelectedSubtitle(subtitle));\r\n mainPlayerVideoTag().textTracks[index].mode = \"showing\";\r\n setSection(SettingSections.main);\r\n sendFluentLog(subtitleLog(subtitle.language));\r\n }}\r\n >\r\n {!!selectedSubtitle && selectedSubtitle.language === subtitle.language && (\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image\r\n src={IMAGES.tick}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"}\r\n alt=\"\"\r\n width={20}\r\n height={20}\r\n />\r\n </div>\r\n )}\r\n\r\n <span\r\n className={`pl-w-full pl-text-[12px] ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"} pl-pr-[10px]`}\r\n >\r\n {subtitle.label}\r\n </span>\r\n </li>\r\n ))}\r\n </div>\r\n </ul>\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(SubtitleSettingMenu);\r\n","import { IAudioIconProps } from \"../../helpers/interfaces/interfaces\";\n\nconst AudioIcon = ({ className, onClick, onMouseOver, onMouseLeave }: IAudioIconProps) => {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n onClick={onClick}\n onMouseOver={onMouseOver}\n onMouseLeave={onMouseLeave}\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M10 2.29395C10.3314 2.29395 10.6 2.56257 10.6 2.89395V17.1052C10.6 17.4366 10.3314 17.7052 10 17.7052C9.66866 17.7052 9.40002 17.4366 9.40002 17.1052V2.89395C9.40002 2.56257 9.66866 2.29395 10 2.29395Z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M6.41258 4.95498C6.74396 4.95498 7.01258 5.22361 7.01258 5.55498V14.5565C7.01258 14.8879 6.74396 15.1565 6.41258 15.1565C6.08121 15.1565 5.81258 14.8879 5.81258 14.5565V5.55498C5.81258 5.22361 6.08121 4.95498 6.41258 4.95498Z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M13.5858 4.84247C13.9172 4.84247 14.1858 5.1111 14.1858 5.44247V14.444C14.1858 14.7754 13.9172 15.044 13.5858 15.044C13.2545 15.044 12.9858 14.7754 12.9858 14.444V5.44247C12.9858 5.1111 13.2545 4.84247 13.5858 4.84247Z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M17.1735 7.60177C17.5048 7.60177 17.7735 7.8704 17.7735 8.20177V11.5709C17.7735 11.9023 17.5048 12.1709 17.1735 12.1709C16.8421 12.1709 16.5735 11.9023 16.5735 11.5709V8.20177C16.5735 7.8704 16.8421 7.60177 17.1735 7.60177Z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M2.82656 7.82841C3.15794 7.82841 3.42656 8.09703 3.42656 8.42844V11.7976C3.42656 12.1289 3.15794 12.3976 2.82656 12.3976C2.49519 12.3976 2.22656 12.1289 2.22656 11.7976V8.42844C2.22656 8.09703 2.49519 7.82841 2.82656 7.82841Z\"\n />\n </svg>\n );\n};\n\nexport default AudioIcon;\n","import { shallowEqual } from \"react-redux\";\r\nimport { memo, useRef, useState } from \"react\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport Popover from \"../popover/popover\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport { ConditionName, SettingSections } from \"../../../helpers/interfaces/enums\";\r\nimport Image from \"next/image\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport ControllbarTooltip from \"../footer/controllbar/controllbarTooltip\";\r\nimport useOnClickOutside from \"../../../helpers/hooks/useOnClickOutside\";\r\nimport { setMultiAudioPopover } from \"../../../helpers/redux/slices/popoversSlice\";\r\nimport { setSelectedAudioId } from \"../../../helpers/redux/slices/videoDataSlice\";\r\nimport AudioIcon from \"../../icon-components/audioIcon\";\r\nimport { IMultiAudioProps } from \"../../../helpers/interfaces/interfaces\";\r\n\r\nconst MultiAudio = ({ setSection, showMultiAudioIcon }: IMultiAudioProps) => {\r\n const dispatch = useAppDispatch();\r\n const { multiAudioPopover } = useAppSelector(({ popovers: { multiAudioPopover } }) => ({ multiAudioPopover }), shallowEqual);\r\n\r\n const [showTooltip, setShowTooltip] = useState<boolean>(false);\r\n\r\n const ref = useRef(null);\r\n\r\n const { multiAudio, selectedAudioId, videoElementSizeInfo } = useAppSelector(\r\n ({ videoData: { multiAudio, selectedAudioId, videoElementSizeInfo } }) => ({ multiAudio, selectedAudioId, videoElementSizeInfo }),\r\n shallowEqual\r\n );\r\n\r\n useOnClickOutside(ref, () => dispatch(setMultiAudioPopover(false)));\r\n\r\n const multiAudioContent = (\r\n <div className={`${conditions(ConditionName.isTouchScreen) ? \"pl-pb-2\" : \"pl-py-2\"}`}>\r\n <ul className=\"pl-flex pl-flex-col pl-gap-1\">\r\n <li\r\n className={`pl-flex pl-items-center pl-border-b ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-border-b-[#D9D9D9]\" : \"pl-border-b-[#4A4A4A]\"\r\n } pl-h-10 pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer`}\r\n onClick={() => setSection && setSection(SettingSections.main)}\r\n >\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image\r\n src={IMAGES.chevronRight}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"}\r\n alt=\"\"\r\n width={16}\r\n height={16}\r\n />\r\n </div>\r\n <span\r\n className={`pl-w-full pl-text-[12px] ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"} pl-pr-[10px]`}\r\n >\r\n تغییر صدا\r\n </span>\r\n </li>\r\n\r\n <div\r\n className=\"pl-overflow-y-auto no-scrollbar\"\r\n style={{ maxHeight: conditions(ConditionName.isTouchScreenPortrait) ? undefined : videoElementSizeInfo.height - 200 - 70 }}\r\n >\r\n {conditions(ConditionName.hasMultiAudio) &&\r\n multiAudio.map((audio: any, index: number) => (\r\n <li\r\n key={audio.id}\r\n className={`pl-flex pl-items-center pl-h-10 pl-ps-[24.2px] pl-leading-[28px] pl-text-[12px] pl-font-medium pl-relative pl-cursor-pointer pl-transition-all ${\r\n conditions(ConditionName.isTouchScreen) ? \"\" : \"hover:pl-bg-[#4A4A4A]\"\r\n } ${selectedAudioId === index && ` !pl-cursor-default`}`}\r\n onClick={() => {\r\n dispatch(setSelectedAudioId(index));\r\n // dispatch(setActiveElements(false));\r\n // dispatch(setSettingPopover(false));\r\n // dispatch(setMultiAudioPopover(false));\r\n if (setSection) setSection(SettingSections.main);\r\n }}\r\n >\r\n {selectedAudioId === index && (\r\n <div className=\"pl-absolute pl-right-[10px] pl-top-1/2 -pl-translate-y-1/2 pl-flex pl-items-center pl-justify-center\">\r\n <Image\r\n src={IMAGES.tick}\r\n className={conditions(ConditionName.isTouchScreen) ? \"pl-brightness-0\" : \"\"}\r\n alt=\"\"\r\n width={20}\r\n height={20}\r\n />\r\n </div>\r\n )}\r\n\r\n <span\r\n className={`pl-w-full pl-text-[12px] ${\r\n conditions(ConditionName.isTouchScreen) ? \"pl-text-[#212121]\" : \"pl-text-white\"\r\n } pl-pr-[10px]`}\r\n >\r\n زبان {audio.name}\r\n </span>\r\n </li>\r\n ))}\r\n </div>\r\n </ul>\r\n </div>\r\n );\r\n\r\n return (\r\n <>\r\n {showMultiAudioIcon ? (\r\n <div className=\"pl-relative pl-flex pl-items-center\" ref={ref}>\r\n <AudioIcon\r\n className={`pl-size-5 pl-fill-white pl-cursor-pointer ${conditions(ConditionName.isTouchScreen) ? \"pl-text-[#4A4A4A]\" : \"pl-text-white\"}`}\r\n onClick={() => dispatch(setMultiAudioPopover(!multiAudioPopover))}\r\n onMouseOver={() => !conditions(ConditionName.isTouchScreen) && setShowTooltip(true)}\r\n onMouseLeave={() => !conditions(ConditionName.isTouchScreen) && setShowTooltip(false)}\r\n />\r\n\r\n {showTooltip && <ControllbarTooltip title=\"تغییر صدا\" />}\r\n <Popover\r\n classNames={`!pl-px-0 pl-overflow-hidden !pl-bg-black/[75%] !pl-pb-0 ${\r\n conditions(ConditionName.isTouchScreen)\r\n ? \"!pl-fixed !pl-bottom-0 !pl-rounded-t-[20px] pl-rounded-b-none\"\r\n : \"!pl-w-[200px] pl-right-0 pl-mb-[33px] !pl-rounded-[12px]\"\r\n } ${conditions(ConditionName.isTouchScreenPortrait) && \"!pl-w-screen tablet:!pl-max-w-[440px] tablet:!pl-mx-auto\"} ${\r\n conditions(ConditionName.isTouchScreenLandscape) && \"pl-w-full pl-max-w-[440px]\"\r\n }`}\r\n status={multiAudioPopover}\r\n onClose={() => dispatch(setMultiAudioPopover(false))}\r\n type={conditions(ConditionName.isTouchScreen) ? \"modal\" : \"popover\"}\r\n isBlurBackground={conditions(ConditionName.isTouchScreen)}\r\n ref={conditions(ConditionName.isTouchScreen) ? ref : undefined}\r\n isHeader={conditions(ConditionName.isTouchScreen)}\r\n isHasCatchUpLineOnTop={conditions(ConditionName.isTouchScreen)}\r\n styles={{\r\n maxHeight:\r\n !conditions(ConditionName.isTouchScreenPortrait) &&\r\n videoElementSizeInfo.height - (conditions(ConditionName.isTouchScreenLandscape) ? 120 : 75),\r\n }}\r\n >\r\n {multiAudioContent}\r\n </Popover>\r\n </div>\r\n ) : (\r\n <>{multiAudioContent}</>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default memo(MultiAudio);\r\n","import { useState } from \"react\";\r\nimport ControllbarTooltip from \"../footer/controllbar/controllbarTooltip\";\r\nimport Image from \"next/image\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\r\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport { shallowEqual } from \"react-redux\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport { handleSubtitle } from \"../../../helpers/redux/actions/videoData.actions\";\r\nimport { tw } from \"../../../helpers/helpers\";\r\n\r\nconst SubtitleIcon = ({\r\n className,\r\n disableTooltip,\r\n height,\r\n width,\r\n normalStyle,\r\n}: {\r\n className?: string;\r\n disableTooltip?: boolean;\r\n width?: number;\r\n height?: number;\r\n normalStyle?: boolean;\r\n}) => {\r\n const [showTooltip, setShowTooltip] = useState<boolean>(false);\r\n useAppSelector(\r\n ({ videoData: { selectedSubtitle, videoElementSizeInfo, params } }) => ({ selectedSubtitle, videoElementSizeInfo, params }),\r\n shallowEqual\r\n );\r\n\r\n return (\r\n <div\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n handleSubtitle();\r\n }}\r\n onDoubleClick={(event: any) => event.stopPropagation()}\r\n onMouseOver={disableTooltip ? undefined : () => !conditions(ConditionName.isTouchScreen) && setShowTooltip(true)}\r\n onMouseLeave={disableTooltip ? undefined : () => !conditions(ConditionName.isTouchScreen) && setShowTooltip(false)}\r\n className={tw(\r\n `pl-relative ${\r\n normalStyle ? \"\" : \"pl-rounded-full hover:pl-bg-[#5E5E5E]\"\r\n } pl-cursor-pointer pl-flex pl-items-center pl-justify-center pl-transition-all ${className} ${\r\n conditions(ConditionName.hasSubtitles) ? \"\" : \"pl-pointer-events-none\"\r\n }`,\r\n { desktop: normalStyle ? undefined : \"pl-w-[40px] pl-h-[25px]\", desktopFullScreen: normalStyle ? undefined : \"pl-w-[56px] pl-h-[36px]\" }\r\n )}\r\n >\r\n <Image\r\n alt=\"subtitle-icon\"\r\n src={\r\n !conditions(ConditionName.hasSubtitles)\r\n ? IMAGES.subtitleDisable\r\n : conditions(ConditionName.isSelectedSubtitle)\r\n ? IMAGES.subtitleFill\r\n : IMAGES.subtitleOutline\r\n }\r\n width={width}\r\n height={height}\r\n />\r\n {showTooltip && !disableTooltip && <ControllbarTooltip title=\"زیرنویس\" />}\r\n </div>\r\n );\r\n};\r\n\r\nexport default SubtitleIcon;\r\n","import { shallowEqual } from \"react-redux\";\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\nimport { secondsToHMS, tw } from \"../../../helpers/helpers\";\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\nimport { conditions } from \"../../../helpers/conditions/conditions\";\nimport { useState } from \"react\";\n\nconst ElapsedTime = ({ className = \"\" }) => {\n const { duration, currentTime } = useAppSelector(({ controller: { duration, currentTime } }) => ({ duration, currentTime }), shallowEqual);\n useAppSelector(({ videoData: { videoElementSizeInfo, params } }) => ({ videoElementSizeInfo, params }), shallowEqual);\n const [reveresElapsedTime, setReveresElapsedTime] = useState(false);\n\n return (\n <div\n onDoubleClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setReveresElapsedTime((prev) => !prev);\n }}\n className={tw(`pl-cursor-pointer pl-rounded-full pl-inline-flex pl-items-center pl-justify-center pl-group ${className}`, {\n desktop: \"pl-min-w-[34px] pl-h-[34px] pl-p-1 pl-bg-black/75\",\n desktopFullScreen: \"pl-min-w-[48px] pl-h-[48px] pl-px-1.5\",\n touch: \"pl-min-w-[78px] pl-h-[22px] pl-py-1 pl-px-1.5 pl-bg-[#282828]\",\n touchFullScreen: \"pl-min-w-[103px] pl-h-[32px] pl-px-2\",\n })}\n >\n <div\n className={tw(\"pl-flex pl-gap-0.5 pl-items-center pl-justify-center pl-rounded-full pl-transition-all\", {\n desktop: \"pl-h-[26px] pl-min-w-[26px] pl-p-1.5 group-hover:pl-bg-[#5E5E5E]\",\n desktopFullScreen: \"pl-h-[36px] pl-min-w-[36px] pl-px-3\",\n })}\n >\n <p\n className={tw(`pl-text-white pl-flex pl-items-center pl-justify-center pl-gap-0.5 `, {\n desktop: \"pl-text-[12px] pl-leading-5 pl-font-bold\",\n desktopFullScreen: \"pl-text-base\",\n touch: \"pl-font-medium pl-text-[12px] pl-pt-0.5\",\n touchFullScreen: \"pl-text-[16px] pl-font-normal pl-pt-1\",\n })}\n >\n <span className={tw(\"\", { touch: \"pl-text-[#C4C4C4]\" })}>{secondsToHMS(duration ? duration : 0)}</span>\n <span>/</span>\n {reveresElapsedTime ? (\n <>\n <span>{secondsToHMS((duration || 0) - (currentTime || 0))}</span>\n <span className=\"pl-mt-0.5\">-</span>\n </>\n ) : (\n <span>{secondsToHMS(currentTime ? currentTime : 0)}</span>\n )}\n </p>\n </div>\n </div>\n );\n};\n\nexport default ElapsedTime;\n","import { shallowEqual } from \"react-redux\";\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\nimport { conditions } from \"../../../helpers/conditions/conditions\";\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\nimport { cleanVTT, spliteStringPerLine, tw } from \"../../../helpers/helpers\";\n\nconst DisplaySubtitle = () => {\n const { subtitleText } = useAppSelector(({ videoData: { subtitleText, selectedSubtitle } }) => ({ subtitleText, selectedSubtitle }), shallowEqual);\n useAppSelector(({ controller: { isFullScreen, activeElements } }) => ({ isFullScreen, activeElements }), shallowEqual);\n\n const subtitlePosition = () => {\n let styles = \"\";\n\n if (conditions(ConditionName.isLock)) styles = \"pl-bottom-[50px]\";\n else if (conditions(ConditionName.isActiveElements)) {\n if (conditions(ConditionName.isTouchScreen) && conditions(ConditionName.isFullScreen)) styles = \"pl-bottom-[64px]\";\n else if (conditions(ConditionName.isFullScreen)) styles = \"pl-bottom-[130px]\";\n else if (conditions(ConditionName.isTouchScreen)) styles = \"pl-bottom-[30px]\";\n else styles = \"pl-bottom-[60px]\";\n } else if (!conditions(ConditionName.isActiveElements)) {\n if (conditions(ConditionName.isTouchScreen) && conditions(ConditionName.isFullScreen)) styles = \"pl-bottom-[20px]\";\n else if (conditions(ConditionName.isFullScreen)) styles = \"pl-bottom-[130px]\";\n else if (conditions(ConditionName.isTouchScreen)) styles = \"pl-bottom-[16px]\";\n else styles = \"pl-bottom-[60px]\";\n }\n\n return styles;\n };\n\n return (\n <div\n id={\"subtitle-id\"}\n style={{ direction: \"ltr\" }}\n className={tw(`pl-z-0 pl-absolute pl-w-full pl-text-center pl-text-white pl-font-semibold ${subtitlePosition()}`, {\n desktop: \"pl-text-[14px] pl-leading-6\",\n desktopFullScreen: \"pl-text-base\",\n touch: \"pl-text-[10px] pl-leading-4\",\n })}\n >\n {spliteStringPerLine(subtitleText!)?.map((text, index) => {\n const value = cleanVTT(text);\n if (value)\n return (\n <p\n key={index}\n className={tw(\n `pl-mx-auto pl-bg-[#000000]/[70%] ${\n conditions(ConditionName.isTouchScreen) && conditions(ConditionName.isActiveElements) && \"pl-opacity-50\"\n } pl-text-wrap pl-max-w-full pl-w-max `,\n { desktop: \"pl-px-2 pl-py-1.5\", desktopFullScreen: \"\", touch: \"pl-p-1\", touchFullScreen: \"\" },\n )}\n >\n {value}\n </p>\n );\n })}\n </div>\n );\n};\n\nexport default DisplaySubtitle;\n","import dynamic from \"next/dynamic\";\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\nimport { conditions } from \"../../../helpers/conditions/conditions\";\n\nconst StaticVideoTag = dynamic(() => import(\"./staticVideoTag\"));\nconst NonStaticVideoTag = dynamic(() => import(\"./nonStaticVideoTag\"));\n\nconst VideoTag = () => {\n return <>{conditions(ConditionName.isStaticFormat) ? <StaticVideoTag /> : <NonStaticVideoTag />}</>;\n};\n\nexport default VideoTag;\n","import { useEffect, useRef } from \"react\";\nimport { checkParentTarget, isTouchScreen } from \"../helpers\";\nimport { activeElementsTime } from \"../environment\";\nimport { shallowEqual } from \"react-redux\";\nimport { useAppDispatch, useAppSelector } from \"../redux/hooks\";\nimport { setActiveElements } from \"../redux/slices/controllerSlice\";\nimport store from \"../redux/store\";\n\nconst useActiveInActive = (isRightDoubleTouched: boolean, isLeftDoubleTouched: boolean) => {\n const dispatch = useAppDispatch();\n const { activeElements, play } = useAppSelector(({ controller: { activeElements, play } }) => ({ activeElements, play }), shallowEqual);\n\n const timeoutRef = useRef<any>(null);\n const isRightDoubleTouchedRef = useRef<boolean>(isRightDoubleTouched);\n const isLeftDoubleTouchedRef = useRef<boolean>(isLeftDoubleTouched);\n\n useEffect(() => {\n isRightDoubleTouchedRef.current = isRightDoubleTouched;\n }, [isRightDoubleTouched]);\n\n useEffect(() => {\n isLeftDoubleTouchedRef.current = isLeftDoubleTouched;\n }, [isLeftDoubleTouched]);\n\n useEffect(() => {\n let shouldInActiveElements = false;\n\n const handlePointerMove = (event: any) => {\n const { activeElements, isEnded } = store.getState().controller;\n if (isEnded) dispatch(setActiveElements(true));\n else if (event.pointerType === \"mouse\") {\n clearTimeout(timeoutRef.current);\n if (!activeElements) dispatch(setActiveElements(true));\n else if (\n [\n \"player-tag\",\n \"main-content\",\n \"player-controllbar\",\n \"video-opacity\",\n \"playerElements\",\n \"touchBackward\",\n \"touchForward\",\n \"backward\",\n \"forward\",\n ].includes(event.target.id)\n )\n shouldInActiveElements = true;\n timeoutRef.current = setTimeout(() => {\n const { settingPopover, speedPopover, qualityLevelsPopover, multiAudioPopover } = store.getState().popovers;\n const { play } = store.getState().controller;\n if (!settingPopover && !speedPopover && !qualityLevelsPopover && !multiAudioPopover && play && shouldInActiveElements)\n dispatch(setActiveElements(false));\n }, activeElementsTime);\n }\n };\n\n const handleTouchStart = (event: any) => {\n setTimeout(() => {\n const { activeElements, isEnded, firstPlay } = store.getState().controller;\n clearTimeout(timeoutRef.current);\n if (isEnded) return dispatch(setActiveElements(true));\n if (isTouchScreen() && !firstPlay && !isRightDoubleTouchedRef.current && !isLeftDoubleTouchedRef.current) {\n if (\n [\"player-tag\", \"main-content\", \"video-opacity\", \"touchBackward\", \"touchForward\", \"backward\", \"forward\"].includes(event.target.id) ||\n checkParentTarget(event, \"playerElements\")\n ) {\n // dispatch(setActiveElements(!activeElements));\n timeoutRef.current = setTimeout(() => {\n const { play } = store.getState().controller;\n const { settingPopover, speedPopover, qualityLevelsPopover, multiAudioPopover } = store.getState().popovers;\n if (!settingPopover && !speedPopover && !qualityLevelsPopover && !multiAudioPopover && play) dispatch(setActiveElements(false));\n }, activeElementsTime);\n } else {\n timeoutRef.current = setTimeout(() => {\n const { play } = store.getState().controller;\n const { settingPopover, speedPopover, qualityLevelsPopover, multiAudioPopover } = store.getState().popovers;\n if (!settingPopover && !speedPopover && !qualityLevelsPopover && !multiAudioPopover && play) dispatch(setActiveElements(false));\n }, activeElementsTime);\n }\n }\n }, 200);\n };\n\n const handleTouchMove = () => {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => {\n const { activeElements, isEnded, play } = store.getState().controller;\n const { settingPopover, speedPopover, qualityLevelsPopover } = store.getState().popovers;\n if (isEnded) dispatch(setActiveElements(true));\n else if (!settingPopover && !speedPopover && !qualityLevelsPopover && activeElements && !isEnded && play) dispatch(setActiveElements(false));\n }, activeElementsTime);\n };\n\n document.getElementById(\"video-area\")!.addEventListener(\"touchstart\", handleTouchStart);\n document.getElementById(\"video-area\")!.addEventListener(\"touchmove\", handleTouchMove);\n document.getElementById(\"video-area\")!.addEventListener(\"pointermove\", handlePointerMove);\n\n return () => {\n const videoArea = document.getElementById(\"video-area\")!;\n if (videoArea) {\n videoArea.removeEventListener(\"touchstart\", handleTouchStart);\n videoArea.removeEventListener(\"touchmove\", handleTouchMove);\n videoArea.removeEventListener(\"pointermove\", handlePointerMove);\n }\n };\n }, [activeElements, isRightDoubleTouched, isLeftDoubleTouched]);\n\n useEffect(() => {\n let timeout: any;\n if (!play) dispatch(setActiveElements(true));\n else timeout = setTimeout(() => dispatch(setActiveElements(false)), activeElementsTime);\n return () => {\n if (timeout) clearTimeout(timeout);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [play]);\n};\n\nexport default useActiveInActive;\n","import { useEffect } from \"react\";\nimport { handleVideoElementSizeInfo } from \"../redux/actions/controller.actions\";\nimport { useAppSelector } from \"../redux/hooks\";\nimport { isTouchScreen } from \"../helpers\";\nimport { shallowEqual } from \"react-redux\";\nimport { mainPlayerVideoTag } from \"../constants\";\n\nconst useHandleResize = () => {\n\n const { firstPlay, isFullScreen } = useAppSelector(({ controller: { firstPlay, isFullScreen } }) => ({firstPlay,isFullScreen,}),shallowEqual);\n\n useEffect(() => {\n if (mainPlayerVideoTag()) {\n let timeout: any;\n const handleResize = () => {\n timeout = setTimeout(\n () => {\n handleVideoElementSizeInfo();\n },\n isTouchScreen() ? 0 : 300\n );\n };\n handleResize();\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n clearTimeout(timeout);\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [firstPlay, isFullScreen, mainPlayerVideoTag()]);\n}\n\nexport default useHandleResize;","import { ICloseIconProps } from \"../../helpers/interfaces/interfaces\";\n\nconst CloseIcon = ({ className, onClick }: ICloseIconProps) => {\n return (\n <svg\n className={className}\n onClick={(e) => {\n e.stopPropagation();\n onClick?.();\n }}\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_372_39317)\">\n <path\n d=\"M10.649 9.01462L17.658 2.00555C18.1141 1.54963 18.1141 0.812452 17.658 0.356588C17.2021 -0.0993313 16.4649 -0.0993313 16.009 0.356588L8.99992 7.3656L1.99107 0.356588C1.53493 -0.0993313 0.798022 -0.0993313 0.342103 0.356588C-0.114034 0.812507 -0.114034 1.54963 0.342103 2.00555L7.3509 9.01462L0.342158 16.0236C-0.11398 16.4796 -0.11398 17.2167 0.342158 17.6726C0.450304 17.7811 0.578815 17.8671 0.720306 17.9257C0.861797 17.9843 1.01348 18.0144 1.16664 18.0143C1.46512 18.0143 1.76371 17.9 1.99112 17.6726L8.99992 10.6636L16.009 17.6726C16.1172 17.781 16.2457 17.867 16.3872 17.9257C16.5287 17.9843 16.6804 18.0144 16.8335 18.0143C17.132 18.0143 17.4306 17.9 17.658 17.6726C18.1141 17.2167 18.1141 16.4796 17.658 16.0236L10.649 9.01462Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_372_39317\">\n <rect width=\"18\" height=\"18\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport default CloseIcon;\n"]}
|